aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author(no author) <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-02 00:35:00 +0000
committer(no author) <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4>2005-07-02 00:35:00 +0000
commit33c6ff0f4f4f35d7dae7bcdac8d429ab312e2b5e (patch)
tree89947b04b5c2fbd530076237357ede702d3d6c22
parent0fcc981fa6eb41869dce802e289b012f4c3726be (diff)
This commit was manufactured by cvs2svn to create tagapple/gcc-5208
'apple-gcc-5208'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tags/apple-gcc-5208@101526 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--CHANGES.Apple2
-rw-r--r--ChangeLog62
-rw-r--r--ChangeLog.apple-ppc317
-rw-r--r--ChangeLog.lno10
-rw-r--r--GNUmakefile90
-rw-r--r--MAINTAINERS10
-rw-r--r--README.Apple464
-rw-r--r--boehm-gc/ChangeLog25
-rw-r--r--boehm-gc/Makefile.in5
-rwxr-xr-xboehm-gc/configure8
-rw-r--r--boehm-gc/configure.ac4
-rw-r--r--boehm-gc/configure.host9
-rw-r--r--boehm-gc/dyn_load.c5
-rw-r--r--boehm-gc/include/Makefile.in29
-rw-r--r--boehm-gc/include/gc_config.h.in3
-rw-r--r--boehm-gc/include/private/gc_priv.h4
-rw-r--r--boehm-gc/include/private/gcconfig.h2
-rwxr-xr-xbuild_gcc499
-rw-r--r--config/ChangeLog8
-rw-r--r--config/acx.m41
-rw-r--r--config/mh-x86-darwin6
-rwxr-xr-xconfigure173
-rw-r--r--configure.in19
-rw-r--r--contrib/ChangeLog34
-rwxr-xr-xcontrib/gcc_update42
-rwxr-xr-xcontrib/gennews5
-rw-r--r--contrib/reghunt/ChangeLog4
-rw-r--r--contrib/regression/ChangeLog4
-rwxr-xr-xcontrib/warn_summary14
-rw-r--r--fastjar/ChangeLog4
-rw-r--r--fixincludes/ChangeLog22
-rw-r--r--fixincludes/Makefile.in6
-rw-r--r--fixincludes/fixincl.x338
-rw-r--r--fixincludes/inclhack.def144
-rw-r--r--fixincludes/tests/base/netinet/in.h24
-rw-r--r--fixincludes/tests/base/pthread.h5
-rw-r--r--gcc/ChangeLog2281
-rw-r--r--gcc/ChangeLog.54
-rw-r--r--gcc/ChangeLog.72
-rw-r--r--gcc/ChangeLog.apple-ppc4531
-rw-r--r--gcc/ChangeLog.lno3390
-rw-r--r--gcc/ChangeLog.tree-ssa8
-rw-r--r--gcc/Makefile.in201
-rw-r--r--gcc/ada/ChangeLog129
-rw-r--r--gcc/ada/Make-lang.in30
-rw-r--r--gcc/ada/Makefile.in50
-rw-r--r--gcc/ada/decl.c163
-rw-r--r--gcc/ada/exp_ch13.adb11
-rw-r--r--gcc/ada/exp_ch3.adb22
-rw-r--r--gcc/ada/exp_ch3.ads10
-rw-r--r--gcc/ada/exp_util.adb11
-rw-r--r--gcc/ada/freeze.adb366
-rw-r--r--gcc/ada/gigi.h6
-rw-r--r--gcc/ada/lang.opt4
-rw-r--r--gcc/ada/misc.c21
-rw-r--r--gcc/ada/s-osinte-linux-hppa.ads533
-rw-r--r--gcc/ada/sem_ch3.adb18
-rw-r--r--gcc/ada/system-hpux.ads2
-rw-r--r--gcc/ada/system-linux-hppa.ads151
-rw-r--r--gcc/ada/system-linux-sparc.ads151
-rw-r--r--gcc/ada/trans.c67
-rw-r--r--gcc/ada/utils.c21
-rw-r--r--gcc/ada/utils2.c6
-rw-r--r--gcc/alias.c222
-rw-r--r--gcc/bb-reorder.c58
-rw-r--r--gcc/bitmap.h11
-rw-r--r--gcc/bt-load.c14
-rw-r--r--gcc/builtins.c192
-rw-r--r--gcc/builtins.def2
-rw-r--r--gcc/c-common.c1266
-rw-r--r--gcc/c-common.h127
-rw-r--r--gcc/c-convert.c3
-rw-r--r--gcc/c-cppbuiltin.c26
-rw-r--r--gcc/c-decl.c378
-rw-r--r--gcc/c-incpath.c195
-rw-r--r--gcc/c-lex.c209
-rw-r--r--gcc/c-objc-common.c3
-rw-r--r--gcc/c-objc-common.h4
-rw-r--r--gcc/c-opts.c139
-rw-r--r--gcc/c-parse.in347
-rw-r--r--gcc/c-pch.c163
-rw-r--r--gcc/c-pragma.c207
-rw-r--r--gcc/c-pragma.h4
-rw-r--r--gcc/c-pretty-print.c67
-rw-r--r--gcc/c-tree.h70
-rw-r--r--gcc/c-typeck.c697
-rw-r--r--gcc/c.opt167
-rw-r--r--gcc/calls.c156
-rw-r--r--gcc/cfg.c61
-rw-r--r--gcc/cfganal.c14
-rw-r--r--gcc/cfgcleanup.c10
-rw-r--r--gcc/cfgexpand.c2
-rw-r--r--gcc/cfghooks.c34
-rw-r--r--gcc/cfglayout.c8
-rw-r--r--gcc/cfgloop.c23
-rw-r--r--gcc/cfgrtl.c8
-rw-r--r--gcc/cgraph.c114
-rw-r--r--gcc/cgraph.h9
-rw-r--r--gcc/cgraphunit.c132
-rw-r--r--gcc/combine.c663
-rw-r--r--gcc/common.opt356
-rw-r--r--gcc/config.gcc165
-rw-r--r--gcc/config.host28
-rw-r--r--gcc/config/alpha/alpha.c35
-rw-r--r--gcc/config/alpha/alpha.h40
-rw-r--r--gcc/config/alpha/t-osf44
-rw-r--r--gcc/config/arm/arm-protos.h1
-rw-r--r--gcc/config/arm/arm.c100
-rw-r--r--gcc/config/arm/arm.h13
-rw-r--r--gcc/config/arm/arm.md159
-rw-r--r--gcc/config/arm/fpa.md37
-rw-r--r--gcc/config/arm/lib1funcs.asm17
-rw-r--r--gcc/config/arm/linux-elf.h6
-rw-r--r--gcc/config/arm/netbsd-elf.h5
-rw-r--r--gcc/config/arm/t-netbsd4
-rw-r--r--gcc/config/avr/avr.c114
-rw-r--r--gcc/config/avr/avr.h4
-rw-r--r--gcc/config/avr/avr.md112
-rw-r--r--gcc/config/cris/cris.c12
-rw-r--r--gcc/config/cris/cris.h12
-rw-r--r--gcc/config/cris/cris.md153
-rw-r--r--gcc/config/darwin-c.c402
-rw-r--r--gcc/config/darwin-driver.c1405
-rw-r--r--gcc/config/darwin-protos.h60
-rw-r--r--gcc/config/darwin.c828
-rw-r--r--gcc/config/darwin.h358
-rw-r--r--gcc/config/darwin8.h10
-rw-r--r--gcc/config/frv/frv.c4
-rw-r--r--gcc/config/host-darwin.c83
-rw-r--r--gcc/config/host-darwin.h30
-rw-r--r--gcc/config/host-linux.c2
-rw-r--r--gcc/config/i386/cygwin1.c8
-rw-r--r--gcc/config/i386/darwin.h125
-rw-r--r--gcc/config/i386/emmintrin.h435
-rwxr-xr-xgcc/config/i386/host-cygwin.c81
-rw-r--r--gcc/config/i386/host-i386-darwin.c33
-rw-r--r--gcc/config/i386/i386-protos.h3
-rw-r--r--gcc/config/i386/i386.c681
-rw-r--r--gcc/config/i386/i386.h33
-rw-r--r--gcc/config/i386/i386.md891
-rw-r--r--gcc/config/i386/lib1funcs.asm28
-rw-r--r--gcc/config/i386/mmintrin.h255
-rw-r--r--gcc/config/i386/mmx.md8
-rw-r--r--gcc/config/i386/pmmintrin.h31
-rw-r--r--gcc/config/i386/predicates.md8
-rw-r--r--gcc/config/i386/sse.md32
-rw-r--r--gcc/config/i386/t-darwin3
-rw-r--r--gcc/config/i386/t-nwld23
-rw-r--r--gcc/config/i386/t-rtems-i38615
-rw-r--r--gcc/config/i386/x-cygwin4
-rw-r--r--gcc/config/i386/x-darwin10
-rw-r--r--gcc/config/i386/xmmintrin.h293
-rw-r--r--gcc/config/ia64/hpux.h17
-rw-r--r--gcc/config/ia64/ia64.c167
-rw-r--r--gcc/config/ia64/ia64.h9
-rw-r--r--gcc/config/ia64/ia64.md20
-rw-r--r--gcc/config/ia64/lib1funcs.asm10
-rw-r--r--gcc/config/ia64/t-hpux19
-rw-r--r--gcc/config/ia64/t-ia643
-rw-r--r--gcc/config/ia64/unwind-ia64.c3
-rw-r--r--gcc/config/ip2k/ip2k.c22
-rw-r--r--gcc/config/iq2000/iq2000.h9
-rw-r--r--gcc/config/m68k/m68k.c10
-rw-r--r--gcc/config/mips/iris6.h5
-rw-r--r--gcc/config/mips/mips.c104
-rw-r--r--gcc/config/mips/mips.h37
-rw-r--r--gcc/config/mips/mips.md29
-rw-r--r--gcc/config/mips/t-slibgcc-irix22
-rw-r--r--gcc/config/mips/t-vr9
-rw-r--r--gcc/config/mips/vr.h18
-rw-r--r--gcc/config/pa/elf.h45
-rw-r--r--gcc/config/pa/pa-protos.h1
-rw-r--r--gcc/config/pa/pa.c265
-rw-r--r--gcc/config/pa/pa.h22
-rw-r--r--gcc/config/pa/pa.md10
-rw-r--r--gcc/config/pa/pa64-hpux.h31
-rw-r--r--gcc/config/pa/som.h72
-rw-r--r--gcc/config/pa/t-hpux-shlib27
-rw-r--r--gcc/config/rs6000/aix.h3
-rw-r--r--gcc/config/rs6000/altivec.h15
-rw-r--r--gcc/config/rs6000/altivec.md219
-rw-r--r--gcc/config/rs6000/builtin.ops297
-rw-r--r--gcc/config/rs6000/darwin-fallback.c115
-rw-r--r--gcc/config/rs6000/darwin-ldouble.c2
-rw-r--r--gcc/config/rs6000/darwin-tramp.asm2
-rw-r--r--gcc/config/rs6000/darwin.h182
-rw-r--r--gcc/config/rs6000/darwin.md92
-rw-r--r--gcc/config/rs6000/host-darwin.c71
-rwxr-xr-xgcc/config/rs6000/ops-to-gp620
-rw-r--r--gcc/config/rs6000/rs6000-c.c162
-rw-r--r--gcc/config/rs6000/rs6000-protos.h17
-rw-r--r--gcc/config/rs6000/rs6000.c3132
-rw-r--r--gcc/config/rs6000/rs6000.h495
-rw-r--r--gcc/config/rs6000/rs6000.md338
-rw-r--r--gcc/config/rs6000/spe.md15
-rw-r--r--gcc/config/rs6000/sysv4.h5
-rw-r--r--gcc/config/rs6000/t-aix4319
-rw-r--r--gcc/config/rs6000/t-aix5219
-rw-r--r--gcc/config/rs6000/t-darwin11
-rw-r--r--gcc/config/rs6000/t-darwin84
-rw-r--r--gcc/config/rs6000/t-rs60003
-rw-r--r--gcc/config/rs6000/t-rtems94
-rw-r--r--gcc/config/rs6000/vec.h4515
-rw-r--r--gcc/config/rs6000/vec.ops1025
-rw-r--r--gcc/config/rs6000/x-darwin10
-rw-r--r--gcc/config/s390/s390-modes.def3
-rw-r--r--gcc/config/s390/s390.c15
-rw-r--r--gcc/config/s390/s390.h20
-rw-r--r--gcc/config/s390/s390.md54
-rw-r--r--gcc/config/s390/tpf.h3
-rw-r--r--gcc/config/sh/lib1funcs.asm13
-rw-r--r--gcc/config/sh/sh.c2
-rw-r--r--gcc/config/sh/t-linux18
-rw-r--r--gcc/config/sparc/linux.h5
-rw-r--r--gcc/config/sparc/linux64.h5
-rw-r--r--gcc/config/sparc/sparc.c122
-rw-r--r--gcc/config/sparc/sparc.h7
-rw-r--r--gcc/config/sparc/sparc.md15
-rw-r--r--gcc/config/sparc/t-elf4
-rw-r--r--gcc/config/t-darwin17
-rw-r--r--gcc/config/t-libunwind-elf19
-rw-r--r--gcc/config/t-slibgcc-darwin39
-rw-r--r--gcc/config/t-slibgcc-elf-ver20
-rw-r--r--gcc/config/t-slibgcc-sld19
-rw-r--r--gcc/config/vax/vax.c201
-rw-r--r--gcc/config/x-darwin5
-rw-r--r--gcc/config/xtensa/xtensa.h9
-rwxr-xr-xgcc/configure470
-rw-r--r--gcc/configure.ac9
-rw-r--r--gcc/conflict.c2
-rw-r--r--gcc/convert.c39
-rw-r--r--gcc/coretypes.h2
-rw-r--r--gcc/cp/ChangeLog604
-rw-r--r--gcc/cp/ChangeLog.apple-ppc491
-rw-r--r--gcc/cp/Make-lang.in50
-rw-r--r--gcc/cp/call.c89
-rw-r--r--gcc/cp/class.c246
-rw-r--r--gcc/cp/cp-objcp-common.c15
-rw-r--r--gcc/cp/cp-objcp-common.h27
-rw-r--r--gcc/cp/cp-tree.def7
-rw-r--r--gcc/cp/cp-tree.h75
-rw-r--r--gcc/cp/decl.c546
-rw-r--r--gcc/cp/decl2.c125
-rw-r--r--gcc/cp/error.c14
-rw-r--r--gcc/cp/except.c7
-rw-r--r--gcc/cp/init.c69
-rw-r--r--gcc/cp/lang-specs.h5
-rw-r--r--gcc/cp/lex.c52
-rw-r--r--gcc/cp/mangle.c17
-rw-r--r--gcc/cp/method.c4
-rw-r--r--gcc/cp/name-lookup.c3
-rw-r--r--gcc/cp/optimize.c190
-rw-r--r--gcc/cp/parser.c2596
-rw-r--r--gcc/cp/pt.c133
-rw-r--r--gcc/cp/semantics.c68
-rw-r--r--gcc/cp/tree.c27
-rw-r--r--gcc/cp/typeck.c590
-rw-r--r--gcc/cp/typeck2.c32
-rw-r--r--gcc/cppdefault.c19
-rw-r--r--gcc/cse.c145
-rw-r--r--gcc/dbxout.c297
-rw-r--r--gcc/ddg.c2
-rw-r--r--gcc/debug.c3
-rw-r--r--gcc/debug.h4
-rw-r--r--gcc/defaults.h15
-rw-r--r--gcc/df.c82
-rw-r--r--gcc/diagnostic.c32
-rw-r--r--gcc/doc/c-tree.texi2
-rw-r--r--gcc/doc/contrib.texi151
-rw-r--r--gcc/doc/cpp.texi18
-rw-r--r--gcc/doc/cppinternals.texi4
-rw-r--r--gcc/doc/cppopts.texi19
-rw-r--r--gcc/doc/extend.texi301
-rw-r--r--gcc/doc/gcc.texi4
-rw-r--r--gcc/doc/gcov.texi32
-rw-r--r--gcc/doc/include/gcc-common.texi2
-rw-r--r--gcc/doc/include/sourcecode.texi36
-rw-r--r--gcc/doc/install.texi239
-rw-r--r--gcc/doc/invoke.texi807
-rw-r--r--gcc/doc/md.texi8
-rw-r--r--gcc/doc/objc.texi4
-rw-r--r--gcc/doc/rtl.texi2
-rw-r--r--gcc/doc/sourcebuild.texi8
-rw-r--r--gcc/doc/standards.texi2
-rw-r--r--gcc/doc/tm.texi105
-rw-r--r--gcc/doc/tree-ssa.texi18
-rw-r--r--gcc/doc/trouble.texi20
-rw-r--r--gcc/dominance.c6
-rw-r--r--gcc/dummy-checksum.c3
-rw-r--r--gcc/dwarf2out.c205
-rw-r--r--gcc/emit-rtl.c7
-rw-r--r--gcc/except.c3
-rw-r--r--gcc/explow.c15
-rw-r--r--gcc/expmed.c48
-rw-r--r--gcc/expr.c64
-rw-r--r--gcc/final.c53
-rw-r--r--gcc/flags.h58
-rw-r--r--gcc/flow.c179
-rw-r--r--gcc/fold-const.c327
-rw-r--r--gcc/fortran/ChangeLog398
-rw-r--r--gcc/fortran/ChangeLog.lno2
-rw-r--r--gcc/fortran/Make-lang.in8
-rw-r--r--gcc/fortran/arith.c41
-rw-r--r--gcc/fortran/array.c42
-rw-r--r--gcc/fortran/check.c281
-rw-r--r--gcc/fortran/decl.c55
-rw-r--r--gcc/fortran/dependency.c6
-rw-r--r--gcc/fortran/dump-parse-tree.c12
-rw-r--r--gcc/fortran/expr.c106
-rw-r--r--gcc/fortran/f95-lang.c22
-rw-r--r--gcc/fortran/gfortran.h56
-rw-r--r--gcc/fortran/gfortran.texi49
-rw-r--r--gcc/fortran/interface.c19
-rw-r--r--gcc/fortran/intrinsic.c132
-rw-r--r--gcc/fortran/intrinsic.h44
-rw-r--r--gcc/fortran/intrinsic.texi1904
-rw-r--r--gcc/fortran/invoke.texi57
-rw-r--r--gcc/fortran/io.c11
-rw-r--r--gcc/fortran/iresolve.c230
-rw-r--r--gcc/fortran/lang.opt22
-rw-r--r--gcc/fortran/match.c35
-rw-r--r--gcc/fortran/match.h2
-rw-r--r--gcc/fortran/matchexp.c10
-rw-r--r--gcc/fortran/module.c91
-rw-r--r--gcc/fortran/options.c18
-rw-r--r--gcc/fortran/parse.c4
-rw-r--r--gcc/fortran/primary.c32
-rw-r--r--gcc/fortran/resolve.c141
-rw-r--r--gcc/fortran/simplify.c84
-rw-r--r--gcc/fortran/st.c2
-rw-r--r--gcc/fortran/symbol.c54
-rw-r--r--gcc/fortran/trans-array.c53
-rw-r--r--gcc/fortran/trans-array.h5
-rw-r--r--gcc/fortran/trans-common.c63
-rw-r--r--gcc/fortran/trans-decl.c40
-rw-r--r--gcc/fortran/trans-expr.c43
-rw-r--r--gcc/fortran/trans-intrinsic.c27
-rw-r--r--gcc/fortran/trans-io.c8
-rw-r--r--gcc/fortran/trans-stmt.c23
-rw-r--r--gcc/fortran/trans-types.c45
-rw-r--r--gcc/fortran/trans-types.h4
-rw-r--r--gcc/fortran/trans.h7
-rw-r--r--gcc/function.c135
-rw-r--r--gcc/function.h30
-rw-r--r--gcc/gcc.c615
-rw-r--r--gcc/gcc.h2
-rw-r--r--gcc/gcov.c9
-rw-r--r--gcc/gcse.c176
-rw-r--r--gcc/genautomata.c14
-rw-r--r--gcc/genchecksum.c79
-rw-r--r--gcc/gengtype.c15
-rw-r--r--gcc/genpreds.c9
-rw-r--r--gcc/ggc-page.c3
-rw-r--r--gcc/gimplify.c181
-rw-r--r--gcc/ginclude/tgmath.h175
-rw-r--r--gcc/global.c98
-rw-r--r--gcc/gthr-posix.c27
-rw-r--r--gcc/haifa-sched.c16
-rw-r--r--gcc/hooks.c20
-rw-r--r--gcc/hooks.h4
-rw-r--r--gcc/java/ChangeLog115
-rw-r--r--gcc/java/ChangeLog.lno4
-rw-r--r--gcc/java/Make-lang.in3
-rw-r--r--gcc/java/builtins.c10
-rw-r--r--gcc/java/class.c20
-rw-r--r--gcc/java/decl.c36
-rw-r--r--gcc/java/expr.c33
-rw-r--r--gcc/java/gcj.texi129
-rw-r--r--gcc/java/jcf-io.c10
-rw-r--r--gcc/java/lang.c50
-rw-r--r--gcc/java/verify-glue.c54
-rw-r--r--gcc/java/verify-impl.c262
-rw-r--r--gcc/java/verify.h4
-rw-r--r--gcc/lambda-code.c17
-rw-r--r--gcc/lambda.h2
-rw-r--r--gcc/langhooks-def.h24
-rw-r--r--gcc/langhooks.c32
-rw-r--r--gcc/langhooks.h25
-rw-r--r--gcc/libgcc2.c271
-rw-r--r--gcc/libgcc2.h107
-rw-r--r--gcc/loop-doloop.c18
-rw-r--r--gcc/loop-invariant.c28
-rw-r--r--gcc/loop.c127
-rw-r--r--gcc/mklibgcc.in240
-rw-r--r--gcc/modulo-sched.c38
-rw-r--r--gcc/objc/ChangeLog18
-rw-r--r--gcc/objc/ChangeLog.apple-ppc326
-rw-r--r--gcc/objc/Make-lang.in38
-rw-r--r--gcc/objc/config-lang.in6
-rw-r--r--gcc/objc/lang-specs.h3
-rw-r--r--gcc/objc/objc-act.c2194
-rw-r--r--gcc/objc/objc-act.h92
-rw-r--r--gcc/objc/objc-lang.c11
-rw-r--r--gcc/objcp/ChangeLog7
-rw-r--r--gcc/objcp/ChangeLog.apple-ppc22
-rw-r--r--gcc/objcp/Make-lang.in165
-rw-r--r--gcc/objcp/config-lang.in47
-rw-r--r--gcc/objcp/lang-specs.h62
-rw-r--r--gcc/objcp/objcp-decl.c128
-rw-r--r--gcc/objcp/objcp-decl.h93
-rw-r--r--gcc/objcp/objcp-lang.c144
-rw-r--r--gcc/opt-functions.awk39
-rw-r--r--gcc/optc-gen.awk123
-rw-r--r--gcc/opth-gen.awk96
-rw-r--r--gcc/opts.c433
-rw-r--r--gcc/opts.h14
-rw-r--r--gcc/params.def44
-rw-r--r--gcc/passes.c88
-rw-r--r--gcc/po/ChangeLog37
-rw-r--r--gcc/po/be.po7485
-rw-r--r--gcc/po/ca.po7598
-rw-r--r--gcc/po/da.po7614
-rw-r--r--gcc/po/de.po8701
-rw-r--r--gcc/po/el.po7573
-rw-r--r--gcc/po/es.po14558
-rw-r--r--gcc/po/fr.po7630
-rw-r--r--gcc/po/gcc.pot8374
-rw-r--r--gcc/po/ja.po7531
-rw-r--r--gcc/po/nl.po7542
-rw-r--r--gcc/po/rw.po24887
-rw-r--r--gcc/po/sv.po7510
-rw-r--r--gcc/po/tr.po11587
-rw-r--r--gcc/predict.c16
-rw-r--r--gcc/print-tree.c45
-rw-r--r--gcc/recog.c27
-rw-r--r--gcc/reg-notes.def5
-rw-r--r--gcc/regrename.c17
-rw-r--r--gcc/reload.c48
-rw-r--r--gcc/reload1.c34
-rw-r--r--gcc/rtl.h6
-rw-r--r--gcc/rtlanal.c116
-rw-r--r--gcc/scan-decls.c7
-rw-r--r--gcc/sched-rgn.c5
-rw-r--r--gcc/sdbout.c3
-rw-r--r--gcc/simplify-rtx.c122
-rw-r--r--gcc/stmt.c65
-rw-r--r--gcc/stor-layout.c117
-rw-r--r--gcc/stub-objc.c93
-rw-r--r--gcc/system.h6
-rw-r--r--gcc/target-def.h41
-rw-r--r--gcc/target.h38
-rw-r--r--gcc/targhooks.c21
-rw-r--r--gcc/targhooks.h7
-rw-r--r--gcc/testsuite/ChangeLog994
-rw-r--r--gcc/testsuite/ChangeLog.apple-ppc1346
-rw-r--r--gcc/testsuite/ChangeLog.lno203
-rw-r--r--gcc/testsuite/README2
-rw-r--r--gcc/testsuite/UNTESTABLE57
-rw-r--r--gcc/testsuite/ada/acats/tests/cxa/cxa3004.a235
-rw-r--r--gcc/testsuite/ada/acats/tests/cxb/cxb30061.am404
-rw-r--r--gcc/testsuite/bugs/powerpc/g++.xfail108
-rw-r--r--gcc/testsuite/bugs/powerpc/gcc.xfail312
-rw-r--r--gcc/testsuite/bugs/powerpc/libstdc++-v3.xfail34
-rw-r--r--gcc/testsuite/bugs/powerpc/obj-c++.xfail12
-rw-r--r--gcc/testsuite/bugs/powerpc/objc.xfail21
-rw-r--r--gcc/testsuite/g++.dg/4080945a.C43
-rw-r--r--gcc/testsuite/g++.dg/abi/param2.C18
-rw-r--r--gcc/testsuite/g++.dg/abi/vague1.C2
-rw-r--r--gcc/testsuite/g++.dg/align-test-1.C295
-rw-r--r--gcc/testsuite/g++.dg/altivec-1.C12
-rw-r--r--gcc/testsuite/g++.dg/altivec-2.C15
-rw-r--r--gcc/testsuite/g++.dg/altivec-3.C21
-rw-r--r--gcc/testsuite/g++.dg/altivec-4.C129
-rw-r--r--gcc/testsuite/g++.dg/altivec-5.C19
-rw-r--r--gcc/testsuite/g++.dg/altivec-7.C66
-rw-r--r--gcc/testsuite/g++.dg/altivec-8.C31
-rw-r--r--gcc/testsuite/g++.dg/apple-altivec-1.C9
-rw-r--r--gcc/testsuite/g++.dg/apple-altivec-2.C32
-rw-r--r--gcc/testsuite/g++.dg/apple-altivec-6.C15
-rw-r--r--gcc/testsuite/g++.dg/apple-altivec-7.C21
-rw-r--r--gcc/testsuite/g++.dg/apple-altivec-test.C57
-rw-r--r--gcc/testsuite/g++.dg/asm-array-ref.C21
-rw-r--r--gcc/testsuite/g++.dg/asm-block-1.C75
-rw-r--r--gcc/testsuite/g++.dg/asm-block-2.C101
-rw-r--r--gcc/testsuite/g++.dg/asm-block-3.C24
-rw-r--r--gcc/testsuite/g++.dg/asm-block-4.C13
-rw-r--r--gcc/testsuite/g++.dg/asm-block-5.C11
-rw-r--r--gcc/testsuite/g++.dg/asm-block-6.C14
-rw-r--r--gcc/testsuite/g++.dg/asm-function-1.C39
-rw-r--r--gcc/testsuite/g++.dg/asm-function-10.C21
-rw-r--r--gcc/testsuite/g++.dg/asm-function-11.C24
-rw-r--r--gcc/testsuite/g++.dg/asm-function-12.C18
-rw-r--r--gcc/testsuite/g++.dg/asm-function-13.C26
-rw-r--r--gcc/testsuite/g++.dg/asm-function-14.C19
-rw-r--r--gcc/testsuite/g++.dg/asm-function-15.C21
-rw-r--r--gcc/testsuite/g++.dg/asm-function-2.C75
-rw-r--r--gcc/testsuite/g++.dg/asm-function-3.C26
-rw-r--r--gcc/testsuite/g++.dg/asm-function-4.C62
-rw-r--r--gcc/testsuite/g++.dg/asm-function-5.C55
-rw-r--r--gcc/testsuite/g++.dg/asm-function-6.C33
-rw-r--r--gcc/testsuite/g++.dg/asm-function-7.C17
-rw-r--r--gcc/testsuite/g++.dg/asm-function-8.C14
-rw-r--r--gcc/testsuite/g++.dg/asm-function-9.C12
-rw-r--r--gcc/testsuite/g++.dg/bincl-1.C19
-rw-r--r--gcc/testsuite/g++.dg/bincl-1.h3
-rw-r--r--gcc/testsuite/g++.dg/charset/asm1.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/asm2.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/asm3.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/asm4.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/asm5.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/attribute1.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/attribute2.c2
-rw-r--r--gcc/testsuite/g++.dg/charset/charset.exp2
-rw-r--r--gcc/testsuite/g++.dg/charset/extern1.cc2
-rw-r--r--gcc/testsuite/g++.dg/charset/extern2.cc2
-rw-r--r--gcc/testsuite/g++.dg/charset/extern3.cc2
-rw-r--r--gcc/testsuite/g++.dg/charset/function.cc2
-rw-r--r--gcc/testsuite/g++.dg/charset/string.c2
-rw-r--r--gcc/testsuite/g++.dg/const-cfstring-1.C26
-rw-r--r--gcc/testsuite/g++.dg/cpp/normalize-1.C36
-rw-r--r--gcc/testsuite/g++.dg/cpp/ucnid-1.C19
-rw-r--r--gcc/testsuite/g++.dg/debug/const2.C15
-rw-r--r--gcc/testsuite/g++.dg/debug/using1.C15
-rw-r--r--gcc/testsuite/g++.dg/dg.exp1
-rw-r--r--gcc/testsuite/g++.dg/eh/uncaught1.C83
-rw-r--r--gcc/testsuite/g++.dg/expr/align68k-1.C53
-rw-r--r--gcc/testsuite/g++.dg/expr/align68k-2.C45
-rw-r--r--gcc/testsuite/g++.dg/expr/cast-ptr-1.C15
-rw-r--r--gcc/testsuite/g++.dg/expr/cast3.C24
-rw-r--r--gcc/testsuite/g++.dg/expr/fieldref1.C23
-rw-r--r--gcc/testsuite/g++.dg/expr/lval2.C27
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-apple-11.C18
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-1.C43
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-2.C398
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-3.C18
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-4.C15
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-5.C31
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-6.C15
-rw-r--r--gcc/testsuite/g++.dg/ext/attrib20.C23
-rw-r--r--gcc/testsuite/g++.dg/ext/attrib21.C17
-rw-r--r--gcc/testsuite/g++.dg/ext/lvalue-cast-1.C34
-rw-r--r--gcc/testsuite/g++.dg/ext/lvalue-cast-2.C14
-rw-r--r--gcc/testsuite/g++.dg/ext/lvalue-cond-1.C32
-rw-r--r--gcc/testsuite/g++.dg/ext/new-delete-1.C28
-rw-r--r--gcc/testsuite/g++.dg/ext/new-delete-2.C28
-rw-r--r--gcc/testsuite/g++.dg/ext/opt-pragma-2.C27
-rw-r--r--gcc/testsuite/g++.dg/ext/opt-pragma-3.C27
-rw-r--r--gcc/testsuite/g++.dg/ext/opt-pragma-4.C26
-rw-r--r--gcc/testsuite/g++.dg/ext/stmtexpr4.C8
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/visibility-7.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/weak2.C17
-rw-r--r--gcc/testsuite/g++.dg/f-asm-blocks-test.C33
-rw-r--r--gcc/testsuite/g++.dg/inherit/covariant12.C18
-rw-r--r--gcc/testsuite/g++.dg/inherit/volatile1.C14
-rw-r--r--gcc/testsuite/g++.dg/init/array18.C22
-rw-r--r--gcc/testsuite/g++.dg/init/array19.C4
-rw-r--r--gcc/testsuite/g++.dg/init/const1.C8
-rw-r--r--gcc/testsuite/g++.dg/init/const2.C7
-rw-r--r--gcc/testsuite/g++.dg/init/dso_handle1.C1
-rw-r--r--gcc/testsuite/g++.dg/init/ptrmem2.C12
-rw-r--r--gcc/testsuite/g++.dg/kext1.C11
-rw-r--r--gcc/testsuite/g++.dg/kext10.C23
-rw-r--r--gcc/testsuite/g++.dg/kext11.C39
-rw-r--r--gcc/testsuite/g++.dg/kext2.C13
-rw-r--r--gcc/testsuite/g++.dg/kext3.C18
-rw-r--r--gcc/testsuite/g++.dg/kext4.C27
-rw-r--r--gcc/testsuite/g++.dg/kext5.C16
-rw-r--r--gcc/testsuite/g++.dg/kext6.C29
-rw-r--r--gcc/testsuite/g++.dg/kext7.C20
-rw-r--r--gcc/testsuite/g++.dg/kext8.C36
-rw-r--r--gcc/testsuite/g++.dg/kext9.C13
-rw-r--r--gcc/testsuite/g++.dg/lookup/anon2.C7
-rw-r--r--gcc/testsuite/g++.dg/lookup/using13.C12
-rw-r--r--gcc/testsuite/g++.dg/opt/20050511-1.C65
-rw-r--r--gcc/testsuite/g++.dg/opt/covariant1.C47
-rw-r--r--gcc/testsuite/g++.dg/opt/crossjump1.C36
-rw-r--r--gcc/testsuite/g++.dg/opt/max1.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr13066-1.C22
-rw-r--r--gcc/testsuite/g++.dg/opt/pr19108.C19
-rw-r--r--gcc/testsuite/g++.dg/opt/pr20991.C34
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-2.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-3.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-4.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-5.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/switch3.C16
-rw-r--r--gcc/testsuite/g++.dg/opt/switch4.C30
-rw-r--r--gcc/testsuite/g++.dg/opt/thunk2.C44
-rw-r--r--gcc/testsuite/g++.dg/other/access3.C13
-rw-r--r--gcc/testsuite/g++.dg/other/anon3.C2
-rw-r--r--gcc/testsuite/g++.dg/other/cv_func.C32
-rw-r--r--gcc/testsuite/g++.dg/other/offsetof3.C2
-rw-r--r--gcc/testsuite/g++.dg/other/stdarg3.C16
-rw-r--r--gcc/testsuite/g++.dg/other/ucnid-1.C27
-rw-r--r--gcc/testsuite/g++.dg/overload/using2.C87
-rw-r--r--gcc/testsuite/g++.dg/parse/cond2.C14
-rw-r--r--gcc/testsuite/g++.dg/parse/constant6.C23
-rw-r--r--gcc/testsuite/g++.dg/parse/constant7.C9
-rw-r--r--gcc/testsuite/g++.dg/parse/crash24.C6
-rw-r--r--gcc/testsuite/g++.dg/parse/crash25.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/error11.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/error16.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/error26.C12
-rw-r--r--gcc/testsuite/g++.dg/parse/error27.C7
-rw-r--r--gcc/testsuite/g++.dg/pascal-strings-1.C44
-rw-r--r--gcc/testsuite/g++.dg/pascal-strings-2.C43
-rw-r--r--gcc/testsuite/g++.dg/pascal-strings-3.C20
-rw-r--r--gcc/testsuite/g++.dg/pascal-strings-4.C20
-rw-r--r--gcc/testsuite/g++.dg/pch/debug-1.C6
-rw-r--r--gcc/testsuite/g++.dg/pch/debug-1.Hs4
-rw-r--r--gcc/testsuite/g++.dg/preserve-PPC-CR.C41
-rw-r--r--gcc/testsuite/g++.dg/ss/one.C17
-rw-r--r--gcc/testsuite/g++.dg/ss/one.ssh11
-rw-r--r--gcc/testsuite/g++.dg/ss/one_part_2.C12
-rw-r--r--gcc/testsuite/g++.dg/ss/ss-cmd1.c9
-rw-r--r--gcc/testsuite/g++.dg/ss/ss.exp230
-rw-r--r--gcc/testsuite/g++.dg/tc1/dr108.C2
-rw-r--r--gcc/testsuite/g++.dg/template/array13.C14
-rw-r--r--gcc/testsuite/g++.dg/template/crash34.C12
-rw-r--r--gcc/testsuite/g++.dg/template/crash35.C9
-rw-r--r--gcc/testsuite/g++.dg/template/crash36.C9
-rw-r--r--gcc/testsuite/g++.dg/template/dtor4.C9
-rw-r--r--gcc/testsuite/g++.dg/template/error17.C8
-rw-r--r--gcc/testsuite/g++.dg/template/error18.C11
-rw-r--r--gcc/testsuite/g++.dg/template/local4.C2
-rw-r--r--gcc/testsuite/g++.dg/template/local5.C13
-rw-r--r--gcc/testsuite/g++.dg/template/mem_func_ptr.C57
-rw-r--r--gcc/testsuite/g++.dg/template/non-dependent11.C18
-rw-r--r--gcc/testsuite/g++.dg/template/non-dependent12.C10
-rw-r--r--gcc/testsuite/g++.dg/template/nontype6.C2
-rw-r--r--gcc/testsuite/g++.dg/template/overload4.C20
-rw-r--r--gcc/testsuite/g++.dg/template/ptrmem12.C29
-rw-r--r--gcc/testsuite/g++.dg/template/ptrmem13.C11
-rw-r--r--gcc/testsuite/g++.dg/template/qualttp15.C4
-rw-r--r--gcc/testsuite/g++.dg/template/qualttp20.C3
-rw-r--r--gcc/testsuite/g++.dg/template/redecl3.C7
-rw-r--r--gcc/testsuite/g++.dg/template/sizeof9.C6
-rw-r--r--gcc/testsuite/g++.dg/template/templ-deref-1.C68
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr19786.C48
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr19952.C24
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr20280.C63
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C86
-rw-r--r--gcc/testsuite/g++.dg/vect/pr19951.cc17
-rw-r--r--gcc/testsuite/g++.dg/vect/vect.exp95
-rw-r--r--gcc/testsuite/g++.dg/warn/Wbraces2.C15
-rw-r--r--gcc/testsuite/g++.dg/warn/Wdtor1.C22
-rw-r--r--gcc/testsuite/g++.dg/warn/Wnvdtor.C10
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-11.C11
-rw-r--r--gcc/testsuite/g++.dg/warn/deprecated.C10
-rw-r--r--gcc/testsuite/g++.dg/warn/minmax.C15
-rw-r--r--gcc/testsuite/g++.dg/warn/weak1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.abi/align.C3
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/warning9.C5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/pascal.C5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog9
-rw-r--r--gcc/testsuite/g++.old-deja/g++.oliva/expr2.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/struct1.C20
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.warn/compare1.C2
-rw-r--r--gcc/testsuite/gcc.apple/4090661.c9
-rw-r--r--gcc/testsuite/gcc.apple/4100712.c37
-rw-r--r--gcc/testsuite/gcc.apple/4101687.c26
-rw-r--r--gcc/testsuite/gcc.apple/4102133.c22
-rw-r--r--gcc/testsuite/gcc.apple/4104248.c9
-rw-r--r--gcc/testsuite/gcc.apple/4113078.c17
-rw-r--r--gcc/testsuite/gcc.apple/Wextra-tokens.c21
-rw-r--r--gcc/testsuite/gcc.apple/Wfour-char-constants-1.c12
-rw-r--r--gcc/testsuite/gcc.apple/Wfour-char-constants-2.c12
-rw-r--r--gcc/testsuite/gcc.apple/Wmost.c19
-rw-r--r--gcc/testsuite/gcc.apple/Wno-newline-1.c3
-rw-r--r--gcc/testsuite/gcc.apple/Wno-newline-2.c4
-rw-r--r--gcc/testsuite/gcc.apple/align-func.c4
-rw-r--r--gcc/testsuite/gcc.apple/align-test-1.c613
-rw-r--r--gcc/testsuite/gcc.apple/align-test-2.c163
-rw-r--r--gcc/testsuite/gcc.apple/align-test-3.c136
-rw-r--r--gcc/testsuite/gcc.apple/align-test-4.c233
-rw-r--r--gcc/testsuite/gcc.apple/align-test-4.h43
-rw-r--r--gcc/testsuite/gcc.apple/align-test-5a.c87
-rw-r--r--gcc/testsuite/gcc.apple/align-test-5b.c87
-rw-r--r--gcc/testsuite/gcc.apple/align-test-5c.c87
-rw-r--r--gcc/testsuite/gcc.apple/align-test-5d.c90
-rw-r--r--gcc/testsuite/gcc.apple/altivec-1.c124
-rw-r--r--gcc/testsuite/gcc.apple/altivec-19.c15
-rw-r--r--gcc/testsuite/gcc.apple/altivec-2.c22
-rw-r--r--gcc/testsuite/gcc.apple/altivec-20.c7
-rw-r--r--gcc/testsuite/gcc.apple/altivec-3.c14
-rw-r--r--gcc/testsuite/gcc.apple/altivec-4.c23
-rw-r--r--gcc/testsuite/gcc.apple/altivec-5.c33
-rw-r--r--gcc/testsuite/gcc.apple/altivec-faltivec-1.c135
-rw-r--r--gcc/testsuite/gcc.apple/altivec-faltivec-2.c135
-rw-r--r--gcc/testsuite/gcc.apple/altivec-maltivec-1.c135
-rw-r--r--gcc/testsuite/gcc.apple/altivec-test-macro.c30
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-1.c64
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-10.c81
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-11.c23
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-12.c395
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-13.c43
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-14.c15
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-15.c39
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-2.c95
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-3.c14
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-4.c20
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-5.c31
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-6.c31
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-7.c34
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-8.c36
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-9.c9
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-abi-test.c39
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-abi.c66
-rw-r--r--gcc/testsuite/gcc.apple/apple-altivec-builtin-nanf.c8
-rw-r--r--gcc/testsuite/gcc.apple/applecc.c14
-rw-r--r--gcc/testsuite/gcc.apple/asm-array-ref.c20
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-1.c75
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-2.c88
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-3.c11
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-4.c11
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-5.c19
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-1.c51
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-10.c16
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-11.c24
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-12.c18
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-13.c26
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-14.c11
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-15.c19
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-16.c21
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-17.c23
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-18.c84
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-2.c73
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-3.c26
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-4.c62
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-5.c49
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-6.c33
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-7.c17
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-8.c14
-rw-r--r--gcc/testsuite/gcc.apple/asm-function-9.c12
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-0.c76
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-1.c96
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-2.c88
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-3.c80
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-4.c92
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-5.c92
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-6.c93
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-7.c94
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-8.c90
-rw-r--r--gcc/testsuite/gcc.apple/bitreverse-9.c92
-rw-r--r--gcc/testsuite/gcc.apple/comma-expr-1.c6
-rw-r--r--gcc/testsuite/gcc.apple/const-cfstring-1.c29
-rw-r--r--gcc/testsuite/gcc.apple/const-cfstring-2.c13
-rw-r--r--gcc/testsuite/gcc.apple/const-cfstring-3.c29
-rw-r--r--gcc/testsuite/gcc.apple/const-cfstring-4.c30
-rw-r--r--gcc/testsuite/gcc.apple/cw-altivec-asm-block.c35
-rw-r--r--gcc/testsuite/gcc.apple/darwin-fsel-3.c12
-rw-r--r--gcc/testsuite/gcc.apple/dg.exp40
-rw-r--r--gcc/testsuite/gcc.apple/dynamic-no-pic-1.c18
-rw-r--r--gcc/testsuite/gcc.apple/execute/bitfield-1.c52
-rw-r--r--gcc/testsuite/gcc.apple/execute/execute.exp43
-rw-r--r--gcc/testsuite/gcc.apple/falign-jumps-max-skip-1.c7
-rw-r--r--gcc/testsuite/gcc.apple/falign-jumps-max-skip-2.c7
-rw-r--r--gcc/testsuite/gcc.apple/falign-loops-max-skip-1.c7
-rw-r--r--gcc/testsuite/gcc.apple/falign-loops-max-skip-2.c7
-rw-r--r--gcc/testsuite/gcc.apple/falign-loops-max-skip-3.c13
-rw-r--r--gcc/testsuite/gcc.apple/fenv-minmax-1.c11
-rw-r--r--gcc/testsuite/gcc.apple/framework1.c12
-rw-r--r--gcc/testsuite/gcc.apple/fwritable-strings.c19
-rw-r--r--gcc/testsuite/gcc.apple/i386-builtin-shufps.c21
-rw-r--r--gcc/testsuite/gcc.apple/i386-deep-branch-predict-1.c18
-rw-r--r--gcc/testsuite/gcc.apple/i386-leaf-stack-opt.c10
-rw-r--r--gcc/testsuite/gcc.apple/i386-ssetype-6.c24
-rw-r--r--gcc/testsuite/gcc.apple/import.c9
-rw-r--r--gcc/testsuite/gcc.apple/importee.h3
-rw-r--r--gcc/testsuite/gcc.apple/inttypes-1.c21
-rw-r--r--gcc/testsuite/gcc.apple/inttypes-2.c45
-rw-r--r--gcc/testsuite/gcc.apple/inttypes-3.c51
-rw-r--r--gcc/testsuite/gcc.apple/inttypes-4.c43
-rw-r--r--gcc/testsuite/gcc.apple/inttypes-wchar-1.c26
-rw-r--r--gcc/testsuite/gcc.apple/inttypes-wchar-2.c26
-rw-r--r--gcc/testsuite/gcc.apple/lazy-ptr-test.c18
-rw-r--r--gcc/testsuite/gcc.apple/mac68k-align-unsup.c9
-rw-r--r--gcc/testsuite/gcc.apple/no-math-errno.c8
-rw-r--r--gcc/testsuite/gcc.apple/no-warning.c8
-rw-r--r--gcc/testsuite/gcc.apple/non-lazy-ptr-test.c40
-rw-r--r--gcc/testsuite/gcc.apple/notailcall-1.c73
-rw-r--r--gcc/testsuite/gcc.apple/objc-negtest.c8
-rw-r--r--gcc/testsuite/gcc.apple/objcpp.c6
-rw-r--r--gcc/testsuite/gcc.apple/one.framework/Headers/one.h3
-rw-r--r--gcc/testsuite/gcc.apple/opt-pragma-1.c15
-rw-r--r--gcc/testsuite/gcc.apple/opt-pragma-2.c26
-rw-r--r--gcc/testsuite/gcc.apple/opt-pragma-3.c26
-rw-r--r--gcc/testsuite/gcc.apple/opt-pragma-4.c25
-rw-r--r--gcc/testsuite/gcc.apple/opt-pragma-5.c25
-rw-r--r--gcc/testsuite/gcc.apple/pack-test-1.c76
-rw-r--r--gcc/testsuite/gcc.apple/pascal-strings-1.c46
-rw-r--r--gcc/testsuite/gcc.apple/pascal-strings-2.c45
-rw-r--r--gcc/testsuite/gcc.apple/pascal-strings-3.c20
-rw-r--r--gcc/testsuite/gcc.apple/power-align-unsup.c8
-rw-r--r--gcc/testsuite/gcc.apple/ppc-ignored-options.c11
-rw-r--r--gcc/testsuite/gcc.apple/ppc_intrinsics-1.c35
-rw-r--r--gcc/testsuite/gcc.apple/ppc_intrinsics-2.c66
-rw-r--r--gcc/testsuite/gcc.apple/preprocess.s16
-rw-r--r--gcc/testsuite/gcc.apple/shorten.c20
-rw-r--r--gcc/testsuite/gcc.apple/special/liblongcall.c10
-rw-r--r--gcc/testsuite/gcc.apple/special/longcall-prog.c18
-rw-r--r--gcc/testsuite/gcc.apple/special/longcall.exp69
-rw-r--r--gcc/testsuite/gcc.apple/special/special.exp42
-rw-r--r--gcc/testsuite/gcc.apple/special/zerofill.c5
-rw-r--r--gcc/testsuite/gcc.apple/string-insns.c9
-rw-r--r--gcc/testsuite/gcc.apple/test-ldouble.c24
-rw-r--r--gcc/testsuite/gcc.apple/test-local-static-longlong.c19
-rw-r--r--gcc/testsuite/gcc.apple/very-long-comment.c14
-rw-r--r--gcc/testsuite/gcc.apple/x86-ignored-options.c11
-rw-r--r--gcc/testsuite/gcc.apple/x86-no-math-errno.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20011119-1.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20011119-2.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20040323-1.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050215-1.c4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050215-2.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050215-3.c8
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050217-1.c14
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050303-1.c11
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/981001-2.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr13066-1.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr20203.c16
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr20412.c20
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr20539-1.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/simd-4.x4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20020720-1.x2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050119-2.c40
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050215-1.c25
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050218-1.c30
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050224-1.c33
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050316-1.c69
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050410-1.c13
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050414-1.c47
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x6
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c30
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c50
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/medce-2.c42
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr17133.c28
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr20100-1.c76
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr20527-1.c81
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr20601-1.c122
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr21173.c22
-rw-r--r--gcc/testsuite/gcc.dg/20050307-1.c52
-rw-r--r--gcc/testsuite/gcc.dg/20050309-1.c37
-rw-r--r--gcc/testsuite/gcc.dg/20050321-1.c26
-rw-r--r--gcc/testsuite/gcc.dg/20050321-2.c54
-rw-r--r--gcc/testsuite/gcc.dg/20050325-1.c19
-rw-r--r--gcc/testsuite/gcc.dg/20050330-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/20050409-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/20050603-1.c25
-rw-r--r--gcc/testsuite/gcc.dg/20050607-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/Foundation.framework/empty2
-rw-r--r--gcc/testsuite/gcc.dg/alias-3.c11
-rw-r--r--gcc/testsuite/gcc.dg/alias-4.c11
-rw-r--r--gcc/testsuite/gcc.dg/alias-5.c7
-rw-r--r--gcc/testsuite/gcc.dg/alias-6.c7
-rw-r--r--gcc/testsuite/gcc.dg/alias-7.c16
-rw-r--r--gcc/testsuite/gcc.dg/altivec-20.c23
-rw-r--r--gcc/testsuite/gcc.dg/altivec-21.c16
-rw-r--r--gcc/testsuite/gcc.dg/altivec-22.c16
-rw-r--r--gcc/testsuite/gcc.dg/altivec-cpusubtype.c10
-rw-r--r--gcc/testsuite/gcc.dg/altivec-nomfcr.c12
-rw-r--r--gcc/testsuite/gcc.dg/anon-struct-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/array-8.c4
-rw-r--r--gcc/testsuite/gcc.dg/asm-b.c39
-rw-r--r--gcc/testsuite/gcc.dg/bincl-1.c19
-rw-r--r--gcc/testsuite/gcc.dg/bincl-1.h3
-rw-r--r--gcc/testsuite/gcc.dg/bitfld-14.c11
-rw-r--r--gcc/testsuite/gcc.dg/builtin-apply4.c30
-rw-r--r--gcc/testsuite/gcc.dg/c99-tgmath-1.c248
-rw-r--r--gcc/testsuite/gcc.dg/c99-tgmath-2.c15
-rw-r--r--gcc/testsuite/gcc.dg/c99-tgmath-3.c15
-rw-r--r--gcc/testsuite/gcc.dg/c99-tgmath-4.c15
-rw-r--r--gcc/testsuite/gcc.dg/cast-lvalue-2.c6
-rw-r--r--gcc/testsuite/gcc.dg/cast-ptr-1.c15
-rw-r--r--gcc/testsuite/gcc.dg/charset/asm1.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/asm2.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/asm3.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/asm4.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/asm5.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/asm6.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/attribute1.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/attribute2.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/builtin1.c26
-rw-r--r--gcc/testsuite/gcc.dg/charset/charset.exp2
-rw-r--r--gcc/testsuite/gcc.dg/charset/extern.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/function.c2
-rw-r--r--gcc/testsuite/gcc.dg/charset/string.c2
-rw-r--r--gcc/testsuite/gcc.dg/cond-lvalue-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/const-compare.c30
-rw-r--r--gcc/testsuite/gcc.dg/cpp/19940712-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/19951025-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/assert4.c4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/c++98-pedantic.cc11
-rw-r--r--gcc/testsuite/gcc.dg/cpp/c++98.cc11
-rw-r--r--gcc/testsuite/gcc.dg/cpp/cpp.exp7
-rw-r--r--gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/extratokens.c3
-rw-r--r--gcc/testsuite/gcc.dg/cpp/headermap-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/cpp/headermap-2.c16
-rw-r--r--gcc/testsuite/gcc.dg/cpp/headermap.hmapbin0 -> 932 bytes
-rw-r--r--gcc/testsuite/gcc.dg/cpp/if-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/inc/A.h6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/inc/bA.h6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/inc/c.h6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/inc/d/d.h7
-rw-r--r--gcc/testsuite/gcc.dg/cpp/include2.c6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c1
-rw-r--r--gcc/testsuite/gcc.dg/cpp/macspace1.c61
-rw-r--r--gcc/testsuite/gcc.dg/cpp/macspace2.c61
-rw-r--r--gcc/testsuite/gcc.dg/cpp/normalize-1.c36
-rw-r--r--gcc/testsuite/gcc.dg/cpp/normalize-2.c36
-rw-r--r--gcc/testsuite/gcc.dg/cpp/normalize-3.c36
-rw-r--r--gcc/testsuite/gcc.dg/cpp/normalize-4.c36
-rw-r--r--gcc/testsuite/gcc.dg/cpp/skipping2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/tr-warn6.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/trad/comment-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-1.c28
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-2.c18
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-3.c9
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-4.c19
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-5.c19
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-6.c7
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-7.c7
-rw-r--r--gcc/testsuite/gcc.dg/darwin-altivec-vsplt-1.c31
-rw-r--r--gcc/testsuite/gcc.dg/darwin64-abi.c627
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c13
-rw-r--r--gcc/testsuite/gcc.dg/deprecated.c10
-rw-r--r--gcc/testsuite/gcc.dg/enum3.c11
-rw-r--r--gcc/testsuite/gcc.dg/framework-2.c5
-rw-r--r--gcc/testsuite/gcc.dg/i386-387-7.c1
-rw-r--r--gcc/testsuite/gcc.dg/i386-3dnowA-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/i386-3dnowA-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/i386-darwin-fpmath.c10
-rw-r--r--gcc/testsuite/gcc.dg/i386-sse-11.c17
-rw-r--r--gcc/testsuite/gcc.dg/i386-xorps.c33
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-3.c12
-rw-r--r--gcc/testsuite/gcc.dg/loop-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/lvalue-cast-1.c23
-rw-r--r--gcc/testsuite/gcc.dg/lvalue-cast-2.c14
-rw-r--r--gcc/testsuite/gcc.dg/lvalue-cond-1.c30
-rw-r--r--gcc/testsuite/gcc.dg/lvalue1.c2
-rw-r--r--gcc/testsuite/gcc.dg/m-un-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/mac68k-pragma-unsup-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/old-style-then-proto-1.c44
-rw-r--r--gcc/testsuite/gcc.dg/pack-test-1.c3
-rw-r--r--gcc/testsuite/gcc.dg/parm-mismatch-1.c8
-rw-r--r--gcc/testsuite/gcc.dg/pch/apple-altivec-1.c126
-rw-r--r--gcc/testsuite/gcc.dg/pch/apple-altivec-1.hs2
-rw-r--r--gcc/testsuite/gcc.dg/pch/faltivec-1.c17
-rw-r--r--gcc/testsuite/gcc.dg/pch/faltivec-1.hs3
-rw-r--r--gcc/testsuite/gcc.dg/pch/pch.exp23
-rw-r--r--gcc/testsuite/gcc.dg/pr12092-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr18628.c31
-rw-r--r--gcc/testsuite/gcc.dg/pr19345.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr19967.c26
-rw-r--r--gcc/testsuite/gcc.dg/pr20017.c41
-rw-r--r--gcc/testsuite/gcc.dg/pr20054.c23
-rw-r--r--gcc/testsuite/gcc.dg/pr20100.c32
-rw-r--r--gcc/testsuite/gcc.dg/pr20115-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/pr20115.c28
-rw-r--r--gcc/testsuite/gcc.dg/pr20204.c34
-rw-r--r--gcc/testsuite/gcc.dg/pr20216.c16
-rw-r--r--gcc/testsuite/gcc.dg/pr20368-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr20368-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr20368-3.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr20927.c23
-rw-r--r--gcc/testsuite/gcc.dg/pragma-darwin.c22
-rw-r--r--gcc/testsuite/gcc.dg/redecl-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/short-compare-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/short-compare-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/smod-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/sparc-reg-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/ss/one.c17
-rw-r--r--gcc/testsuite/gcc.dg/ss/one.ssh11
-rw-r--r--gcc/testsuite/gcc.dg/ss/one_part_2.c12
-rw-r--r--gcc/testsuite/gcc.dg/ss/ss-cmd1.c9
-rw-r--r--gcc/testsuite/gcc.dg/ss/ss.exp230
-rw-r--r--gcc/testsuite/gcc.dg/stabs-attrib-vect-darwin.c12
-rw-r--r--gcc/testsuite/gcc.dg/stmt-expr-label-1.c404
-rw-r--r--gcc/testsuite/gcc.dg/stmt-expr-label-2.c27
-rw-r--r--gcc/testsuite/gcc.dg/stmt-expr-label-3.c8
-rw-r--r--gcc/testsuite/gcc.dg/titype-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/asm-subreg-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/torture/badshift.c29
-rw-r--r--gcc/testsuite/gcc.dg/torture/builtin-noret-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/builtin-noret-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr19683-1.c42
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr20314-1.c56
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr20314-2.c47
-rw-r--r--gcc/testsuite/gcc.dg/torture/tree-loop-1.c21
-rw-r--r--gcc/testsuite/gcc.dg/transparent-union-1.c83
-rw-r--r--gcc/testsuite/gcc.dg/transparent-union-2.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/20040216-1.c27
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-01.c36
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-02.c29
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-03.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-04.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-05.c33
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-06.c51
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-07.c28
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-08.c32
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-09.c42
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-10.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-11.c60
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-12.c33
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-13.c33
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-14.c37
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-15.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-16.c27
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-17.c36
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-18.c32
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-19.c21
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-20.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-21.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-22.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-23.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-24.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-25.c29
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-26.c26
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-27.c41
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-28.c40
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-29.c41
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-37.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-38.c49
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-39.c46
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-40.c23
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-41.c53
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-42.c31
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-43.c65
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-44.c39
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-45.c45
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-46.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-47.c36
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-48.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-49.c26
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-50.c27
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-51.c23
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-53.c129
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-54.c34
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-55.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-56.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-57.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-58.c23
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-chrec/tree-ssa-scev.exp36
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-01.c55
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-02.c49
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/pr16105.c23
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-31.c44
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-35.c43
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect.exp36
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa-vect/tree-vect.h25
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20040308-1.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20040308-2.c19
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20040308-3.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c39
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c13
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/complex-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/complex-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c17
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c38
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-7.c34
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr20739.c24
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-1.c27
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-2.c28
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-3.c28
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-4.c28
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-5.c16
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-6.c28
-rw-r--r--gcc/testsuite/gcc.dg/uninit-C.c2
-rw-r--r--gcc/testsuite/gcc.dg/vec_merge_opt_test.c583
-rw-r--r--gcc/testsuite/gcc.dg/vec_mergel_opt_test.c583
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr20122.c38
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-11.c6
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-11a.c52
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-98.c41
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-dv-1.c21
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-1.c76
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c33
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c32
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c33
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c33
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c33
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c33
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-8.c37
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c40
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-none.c12
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-shift-1.c29
-rw-r--r--gcc/testsuite/gcc.dg/verbose-asm-2.c13
-rw-r--r--gcc/testsuite/gcc.dg/visibility-7.c2
-rw-r--r--gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c34
-rw-r--r--gcc/testsuite/gcc.dg/warn-discard-qual.c16
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-12.c17
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-3.c4
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-9.c9
-rw-r--r--gcc/testsuite/gcc.dg/winline-6.c2
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-1.c9
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-2.c9
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-3.c9
-rw-r--r--gcc/testsuite/gcc.target/mips/fix-vr4130-4.c9
-rw-r--r--gcc/testsuite/gfortran.dg/PR19754_1.f909
-rw-r--r--gcc/testsuite/gfortran.dg/PR19754_2.f9022
-rw-r--r--gcc/testsuite/gfortran.dg/achar_1.f908
-rw-r--r--gcc/testsuite/gfortran.dg/assign.f908
-rw-r--r--gcc/testsuite/gfortran.dg/assign_2.f9011
-rw-r--r--gcc/testsuite/gfortran.dg/assign_3.f9011
-rw-r--r--gcc/testsuite/gfortran.dg/backspace.f82
-rw-r--r--gcc/testsuite/gfortran.dg/bound_1.f9020
-rw-r--r--gcc/testsuite/gfortran.dg/boz_1.f9038
-rw-r--r--gcc/testsuite/gfortran.dg/boz_3.f9034
-rw-r--r--gcc/testsuite/gfortran.dg/boz_4.f9029
-rw-r--r--gcc/testsuite/gfortran.dg/deftype_1.f906
-rw-r--r--gcc/testsuite/gfortran.dg/do_iterator.f908
-rw-r--r--gcc/testsuite/gfortran.dg/dos_eol.f19
-rw-r--r--gcc/testsuite/gfortran.dg/e_d_fmt.f9013
-rw-r--r--gcc/testsuite/gfortran.dg/eor_1.f902
-rw-r--r--gcc/testsuite/gfortran.dg/func_result_1.f9019
-rw-r--r--gcc/testsuite/gfortran.dg/g77/12002.f2
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990313-1.f2
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990313-2.f2
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990313-3.f2
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990525-0.f22
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990826-0.f4
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990826-2.f2
-rw-r--r--gcc/testsuite/gfortran.dg/g77/19990826-3.f493
-rw-r--r--gcc/testsuite/gfortran.dg/g77/20000511-1.f8
-rw-r--r--gcc/testsuite/gfortran.dg/g77/20000511-2.f18
-rw-r--r--gcc/testsuite/gfortran.dg/g77/970625-2.f4
-rw-r--r--gcc/testsuite/gfortran.dg/g77/980310-2.f14
-rw-r--r--gcc/testsuite/gfortran.dg/g77/980310-3.f8
-rw-r--r--gcc/testsuite/gfortran.dg/g77/980310-8.f27
-rw-r--r--gcc/testsuite/gfortran.dg/g77/980519-2.f8
-rw-r--r--gcc/testsuite/gfortran.dg/g77/alpha1.f4
-rw-r--r--gcc/testsuite/gfortran.dg/g77/claus.f8
-rw-r--r--gcc/testsuite/gfortran.dg/g77/erfc.f44
-rw-r--r--gcc/testsuite/gfortran.dg/g77/short.f12
-rw-r--r--gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f51
-rw-r--r--gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f82
-rw-r--r--gcc/testsuite/gfortran.dg/implicit_3.f9012
-rw-r--r--gcc/testsuite/gfortran.dg/int_1.f90172
-rw-r--r--gcc/testsuite/gfortran.dg/ishft.f902
-rw-r--r--gcc/testsuite/gfortran.dg/largeequiv_1.f9013
-rw-r--r--gcc/testsuite/gfortran.dg/list_read_4.f9054
-rw-r--r--gcc/testsuite/gfortran.dg/negative_unit.f22
-rw-r--r--gcc/testsuite/gfortran.dg/nesting_1.f9018
-rw-r--r--gcc/testsuite/gfortran.dg/open-options-blanks.f7
-rw-r--r--gcc/testsuite/gfortran.dg/open_new.f902
-rw-r--r--gcc/testsuite/gfortran.dg/pr15332.f12
-rw-r--r--gcc/testsuite/gfortran.dg/pr15754.f904
-rw-r--r--gcc/testsuite/gfortran.dg/pr15959.f905
-rw-r--r--gcc/testsuite/gfortran.dg/pr17229.f23
-rw-r--r--gcc/testsuite/gfortran.dg/pr17708.f904
-rw-r--r--gcc/testsuite/gfortran.dg/pr18025.f908
-rw-r--r--gcc/testsuite/gfortran.dg/pr19936_1.f905
-rw-r--r--gcc/testsuite/gfortran.dg/pr19936_2.f905
-rw-r--r--gcc/testsuite/gfortran.dg/pr19936_3.f905
-rw-r--r--gcc/testsuite/gfortran.dg/pr20086.f9014
-rw-r--r--gcc/testsuite/gfortran.dg/pr20124.f908
-rw-r--r--gcc/testsuite/gfortran.dg/pr20163-2.f5
-rw-r--r--gcc/testsuite/gfortran.dg/pr20257.f909
-rw-r--r--gcc/testsuite/gfortran.dg/pr20480.f909
-rw-r--r--gcc/testsuite/gfortran.dg/pr20755.f10
-rw-r--r--gcc/testsuite/gfortran.dg/promotion.f9012
-rw-r--r--gcc/testsuite/gfortran.dg/real_index_1.f907
-rw-r--r--gcc/testsuite/gfortran.dg/select_4.f9012
-rw-r--r--gcc/testsuite/gfortran.dg/spec_expr_1.f9012
-rw-r--r--gcc/testsuite/gfortran.dg/stfunc_2.f906
-rw-r--r--gcc/testsuite/gfortran.dg/string_pad_trunc.f9020
-rw-r--r--gcc/testsuite/gfortran.dg/tiny_1.f909
-rw-r--r--gcc/testsuite/gfortran.dg/tiny_2.f909
-rw-r--r--gcc/testsuite/gfortran.dg/write_0_pe_format.f909
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/backspace.f902
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f9021
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/data.f9010
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f9036
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f902
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f909
-rw-r--r--gcc/testsuite/lib/c-torture.exp3
-rw-r--r--gcc/testsuite/lib/file-format.exp10
-rw-r--r--gcc/testsuite/lib/g++.exp5
-rw-r--r--gcc/testsuite/lib/gcc.exp5
-rw-r--r--gcc/testsuite/lib/gfortran-dg.exp48
-rw-r--r--gcc/testsuite/lib/obj-c++-dg.exp29
-rw-r--r--gcc/testsuite/lib/obj-c++.exp366
-rw-r--r--gcc/testsuite/lib/objc-torture.exp3
-rw-r--r--gcc/testsuite/lib/scantree.exp63
-rw-r--r--gcc/testsuite/lib/target-supports-dg.exp2
-rw-r--r--gcc/testsuite/lib/target-supports.exp81
-rw-r--r--gcc/testsuite/obj-c++.dg/basic.mm22
-rw-r--r--gcc/testsuite/obj-c++.dg/bitfield-1.mm114
-rw-r--r--gcc/testsuite/obj-c++.dg/bitfield-2.mm79
-rw-r--r--gcc/testsuite/obj-c++.dg/bitfield-3.mm58
-rw-r--r--gcc/testsuite/obj-c++.dg/bitfield-4.mm52
-rw-r--r--gcc/testsuite/obj-c++.dg/bitfield-5.mm29
-rw-r--r--gcc/testsuite/obj-c++.dg/class-protocol-1.mm442
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-1.mm16
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-10.mm20
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-11.mm30
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-12.mm15
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-2.mm88
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-3.mm38
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-4.mm64
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-5.mm74
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-6.mm33
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-7.mm38
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-8.mm33
-rw-r--r--gcc/testsuite/obj-c++.dg/comp-types-9.mm25
-rw-r--r--gcc/testsuite/obj-c++.dg/const-cfstring-1.mm57
-rw-r--r--gcc/testsuite/obj-c++.dg/const-cfstring-2.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/const-cfstring-3.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/const-cfstring-4.mm12
-rw-r--r--gcc/testsuite/obj-c++.dg/const-cfstring-5.mm25
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-1.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-10.mm29
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-11.mm28
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-12.mm27
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-2.mm8
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-3.mm49
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-4.mm32
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-5.mm28
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-6.mm28
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-7.mm47
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-8.mm40
-rw-r--r--gcc/testsuite/obj-c++.dg/const-str-9.mm21
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-class-1.mm20
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm42
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm77
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm46
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-scope-1.mm53
-rw-r--r--gcc/testsuite/obj-c++.dg/cxx-scope-2.mm19
-rw-r--r--gcc/testsuite/obj-c++.dg/defs.mm44
-rw-r--r--gcc/testsuite/obj-c++.dg/dg.exp38
-rw-r--r--gcc/testsuite/obj-c++.dg/empty-private-1.mm9
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-1.mm23
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-2.mm16
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-3.mm31
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-4.mm105
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-5.mm75
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-6.mm76
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-7.mm79
-rw-r--r--gcc/testsuite/obj-c++.dg/encode-8.mm24
-rw-r--r--gcc/testsuite/obj-c++.dg/extern-c-1.mm19
-rw-r--r--gcc/testsuite/obj-c++.dg/extra-semi.mm10
-rw-r--r--gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm25
-rw-r--r--gcc/testsuite/obj-c++.dg/isa-field-1.mm44
-rw-r--r--gcc/testsuite/obj-c++.dg/ivar-list-semi.mm13
-rw-r--r--gcc/testsuite/obj-c++.dg/layout-1.mm16
-rw-r--r--gcc/testsuite/obj-c++.dg/local-decl-1.mm43
-rw-r--r--gcc/testsuite/obj-c++.dg/lookup-1.mm9
-rw-r--r--gcc/testsuite/obj-c++.dg/lookup-2.mm57
-rw-r--r--gcc/testsuite/obj-c++.dg/lvalue-cast-1.mm32
-rw-r--r--gcc/testsuite/obj-c++.dg/method-1.mm30
-rw-r--r--gcc/testsuite/obj-c++.dg/method-10.mm46
-rw-r--r--gcc/testsuite/obj-c++.dg/method-11.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/method-12.mm34
-rw-r--r--gcc/testsuite/obj-c++.dg/method-13.mm29
-rw-r--r--gcc/testsuite/obj-c++.dg/method-14.mm15
-rw-r--r--gcc/testsuite/obj-c++.dg/method-15.mm46
-rw-r--r--gcc/testsuite/obj-c++.dg/method-16.mm34
-rw-r--r--gcc/testsuite/obj-c++.dg/method-17.mm33
-rw-r--r--gcc/testsuite/obj-c++.dg/method-18.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/method-19.mm82
-rw-r--r--gcc/testsuite/obj-c++.dg/method-2.mm56
-rw-r--r--gcc/testsuite/obj-c++.dg/method-20.mm18
-rw-r--r--gcc/testsuite/obj-c++.dg/method-21.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/method-3.mm24
-rw-r--r--gcc/testsuite/obj-c++.dg/method-4.mm24
-rw-r--r--gcc/testsuite/obj-c++.dg/method-5.mm30
-rw-r--r--gcc/testsuite/obj-c++.dg/method-6.mm18
-rw-r--r--gcc/testsuite/obj-c++.dg/method-7.mm21
-rw-r--r--gcc/testsuite/obj-c++.dg/method-8.mm31
-rw-r--r--gcc/testsuite/obj-c++.dg/method-9.mm34
-rw-r--r--gcc/testsuite/obj-c++.dg/no-extra-load.mm23
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-fast-1.mm24
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-fast-2.mm29
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-fast-3.mm33
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-fast-4.mm13
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-gc-1.mm146
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-gc-2.mm60
-rw-r--r--gcc/testsuite/obj-c++.dg/objc-gc-3.mm64
-rw-r--r--gcc/testsuite/obj-c++.dg/overload-1.mm11
-rw-r--r--gcc/testsuite/obj-c++.dg/pascal-strings-1.mm20
-rw-r--r--gcc/testsuite/obj-c++.dg/pascal-strings-2.mm20
-rw-r--r--gcc/testsuite/obj-c++.dg/pragma-1.mm12
-rw-r--r--gcc/testsuite/obj-c++.dg/pragma-2.mm24
-rw-r--r--gcc/testsuite/obj-c++.dg/private-1.mm59
-rw-r--r--gcc/testsuite/obj-c++.dg/private-2.mm55
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-1.mm45
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-2.mm21
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-3.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-4.mm52
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-lossage-5.mm23
-rw-r--r--gcc/testsuite/obj-c++.dg/proto-qual-1.mm52
-rw-r--r--gcc/testsuite/obj-c++.dg/qual-types-1.mm72
-rw-r--r--gcc/testsuite/obj-c++.dg/selector-1.mm32
-rw-r--r--gcc/testsuite/obj-c++.dg/selector-2.mm18
-rw-r--r--gcc/testsuite/obj-c++.dg/selector-3.mm27
-rw-r--r--gcc/testsuite/obj-c++.dg/selector-4.mm27
-rw-r--r--gcc/testsuite/obj-c++.dg/stubify-1.mm37
-rw-r--r--gcc/testsuite/obj-c++.dg/stubify-2.mm30
-rw-r--r--gcc/testsuite/obj-c++.dg/super-class-1.mm30
-rw-r--r--gcc/testsuite/obj-c++.dg/super-class-2.mm35
-rw-r--r--gcc/testsuite/obj-c++.dg/super-dealloc-1.mm47
-rw-r--r--gcc/testsuite/obj-c++.dg/super-dealloc-2.mm47
-rw-r--r--gcc/testsuite/obj-c++.dg/template-1.mm49
-rw-r--r--gcc/testsuite/obj-c++.dg/template-2.mm29
-rw-r--r--gcc/testsuite/obj-c++.dg/template-3.mm80
-rw-r--r--gcc/testsuite/obj-c++.dg/template-4.mm82
-rw-r--r--gcc/testsuite/obj-c++.dg/template-5.mm17
-rw-r--r--gcc/testsuite/obj-c++.dg/template-6.mm16
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-1.mm42
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-10.mm26
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-2.mm80
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-3.mm20
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-4.mm27
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-5.mm28
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-6.mm14
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-7.mm29
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-8.mm28
-rw-r--r--gcc/testsuite/obj-c++.dg/try-catch-9.mm65
-rw-r--r--gcc/testsuite/obj-c++.dg/typedef-alias-1.mm17
-rw-r--r--gcc/testsuite/obj-c++.dg/va-meth-1.mm74
-rw-r--r--gcc/testsuite/objc.dg/bitfield-5.m114
-rw-r--r--gcc/testsuite/objc.dg/class-protocol-1.m36
-rw-r--r--gcc/testsuite/objc.dg/comp-types-1.m30
-rw-r--r--gcc/testsuite/objc.dg/comp-types-10.m30
-rw-r--r--gcc/testsuite/objc.dg/comp-types-11.m15
-rw-r--r--gcc/testsuite/objc.dg/comp-types-5.m6
-rw-r--r--gcc/testsuite/objc.dg/comp-types-6.m6
-rw-r--r--gcc/testsuite/objc.dg/comp-types-8.m25
-rw-r--r--gcc/testsuite/objc.dg/comp-types-9.m20
-rw-r--r--gcc/testsuite/objc.dg/const-cfstring-1.m57
-rw-r--r--gcc/testsuite/objc.dg/const-cfstring-2.m26
-rw-r--r--gcc/testsuite/objc.dg/const-cfstring-3.m26
-rw-r--r--gcc/testsuite/objc.dg/const-cfstring-4.m12
-rw-r--r--gcc/testsuite/objc.dg/const-cfstring-5.m25
-rw-r--r--gcc/testsuite/objc.dg/const-str-10.m29
-rw-r--r--gcc/testsuite/objc.dg/const-str-11.m28
-rw-r--r--gcc/testsuite/objc.dg/const-str-12.m27
-rw-r--r--gcc/testsuite/objc.dg/dg.exp3
-rw-r--r--gcc/testsuite/objc.dg/encode-1.m13
-rw-r--r--gcc/testsuite/objc.dg/encode-6.m23
-rw-r--r--gcc/testsuite/objc.dg/extra-semi.m11
-rw-r--r--gcc/testsuite/objc.dg/fix-and-continue-1.m91
-rw-r--r--gcc/testsuite/objc.dg/fix-and-continue-2.m25
-rw-r--r--gcc/testsuite/objc.dg/isa-field-1.m45
-rw-r--r--gcc/testsuite/objc.dg/layout-1.m16
-rw-r--r--gcc/testsuite/objc.dg/lookup-1.m55
-rw-r--r--gcc/testsuite/objc.dg/lvalue-cast-1.m32
-rw-r--r--gcc/testsuite/objc.dg/method-15.m57
-rw-r--r--gcc/testsuite/objc.dg/method-16.m24
-rw-r--r--gcc/testsuite/objc.dg/method-17.m27
-rw-r--r--gcc/testsuite/objc.dg/method-18.m30
-rw-r--r--gcc/testsuite/objc.dg/method-19.m18
-rw-r--r--gcc/testsuite/objc.dg/method-5.m6
-rw-r--r--gcc/testsuite/objc.dg/method-6.m6
-rw-r--r--gcc/testsuite/objc.dg/method-7.m6
-rw-r--r--gcc/testsuite/objc.dg/method-9.m10
-rw-r--r--gcc/testsuite/objc.dg/next-runtime-1.m18
-rw-r--r--gcc/testsuite/objc.dg/no-extra-load.m7
-rw-r--r--gcc/testsuite/objc.dg/nopicsetup.m17
-rw-r--r--gcc/testsuite/objc.dg/objc-fast-1.m24
-rw-r--r--gcc/testsuite/objc.dg/objc-fast-2.m29
-rw-r--r--gcc/testsuite/objc.dg/objc-fast-3.m33
-rw-r--r--gcc/testsuite/objc.dg/objc-fast-4.m13
-rw-r--r--gcc/testsuite/objc.dg/objc-gc-1.m146
-rw-r--r--gcc/testsuite/objc.dg/objc-gc-2.m172
-rw-r--r--gcc/testsuite/objc.dg/objc-gc-3.m54
-rw-r--r--gcc/testsuite/objc.dg/objc-gc-4.m64
-rw-r--r--gcc/testsuite/objc.dg/objc.c6
-rw-r--r--gcc/testsuite/objc.dg/pascal-strings-1.m20
-rw-r--r--gcc/testsuite/objc.dg/pragma-1.m24
-rw-r--r--gcc/testsuite/objc.dg/proto-lossage-5.m23
-rw-r--r--gcc/testsuite/objc.dg/selector-2.m6
-rw-r--r--gcc/testsuite/objc.dg/selector-3.m27
-rw-r--r--gcc/testsuite/objc.dg/selector-4.m31
-rw-r--r--gcc/testsuite/objc.dg/stabs-1.m4
-rw-r--r--gcc/testsuite/objc.dg/stret-2.m5
-rw-r--r--gcc/testsuite/objc.dg/stubify-1.m34
-rw-r--r--gcc/testsuite/objc.dg/stubify-2.m32
-rw-r--r--gcc/testsuite/objc.dg/super-class-4.m35
-rw-r--r--gcc/testsuite/objc.dg/super-dealloc-1.m47
-rw-r--r--gcc/testsuite/objc.dg/super-dealloc-2.m47
-rw-r--r--gcc/testsuite/objc.dg/symtab-1.m3
-rw-r--r--gcc/testsuite/objc.dg/try-catch-6.m26
-rw-r--r--gcc/testsuite/objc.dg/try-catch-7.m28
-rw-r--r--gcc/testsuite/objc.dg/try-catch-8.m66
-rw-r--r--gcc/testsuite/objc.dg/try-catch-9.m26
-rw-r--r--gcc/testsuite/objc.dg/typedef-alias-1.m17
-rw-r--r--gcc/testsuite/objc.dg/volatile-1.m2
-rw-r--r--gcc/testsuite/objc/execute/next_mapping.h34
-rw-r--r--gcc/testsuite/treelang/ChangeLog32
-rw-r--r--gcc/testsuite/treelang/compile/exit.tree12
-rw-r--r--gcc/testsuite/treelang/compile/extrafunc.tree24
-rw-r--r--gcc/testsuite/treelang/compile/extravar.tree13
-rw-r--r--gcc/testsuite/treelang/compile/extref.tree9
-rw-r--r--gcc/testsuite/treelang/compile/function-1.tree14
-rw-r--r--gcc/testsuite/treelang/compile/syntax-1.tree9
-rw-r--r--gcc/testsuite/treelang/compile/unsigned.tree19
-rw-r--r--gcc/testsuite/treelang/compile/var_defs.tree6
-rw-r--r--gcc/timevar.c66
-rw-r--r--gcc/timevar.def9
-rw-r--r--gcc/toplev.c237
-rw-r--r--gcc/toplev.h16
-rw-r--r--gcc/tree-cfg.c93
-rw-r--r--gcc/tree-chrec.c209
-rw-r--r--gcc/tree-chrec.h6
-rw-r--r--gcc/tree-data-ref.c14
-rw-r--r--gcc/tree-data-ref.h7
-rw-r--r--gcc/tree-dfa.c4
-rw-r--r--gcc/tree-eh.c118
-rw-r--r--gcc/tree-flow.h14
-rw-r--r--gcc/tree-gimple.c3
-rw-r--r--gcc/tree-if-conv.c30
-rw-r--r--gcc/tree-inline.c117
-rw-r--r--gcc/tree-inline.h1
-rw-r--r--gcc/tree-into-ssa.c1471
-rw-r--r--gcc/tree-loop-linear.c1
-rw-r--r--gcc/tree-nested.c10
-rw-r--r--gcc/tree-optimize.c38
-rw-r--r--gcc/tree-outof-ssa.c107
-rw-r--r--gcc/tree-pass.h15
-rw-r--r--gcc/tree-scalar-evolution.c51
-rw-r--r--gcc/tree-sra.c57
-rw-r--r--gcc/tree-ssa-alias.c168
-rw-r--r--gcc/tree-ssa-ccp.c44
-rw-r--r--gcc/tree-ssa-dce.c25
-rw-r--r--gcc/tree-ssa-dom.c47
-rw-r--r--gcc/tree-ssa-dse.c4
-rw-r--r--gcc/tree-ssa-forwprop.c237
-rw-r--r--gcc/tree-ssa-live.c22
-rw-r--r--gcc/tree-ssa-loop-ch.c3
-rw-r--r--gcc/tree-ssa-loop-im.c44
-rw-r--r--gcc/tree-ssa-loop-ivcanon.c3
-rw-r--r--gcc/tree-ssa-loop-ivopts.c91
-rw-r--r--gcc/tree-ssa-loop-manip.c16
-rw-r--r--gcc/tree-ssa-loop-memset.c733
-rw-r--r--gcc/tree-ssa-loop-niter.c83
-rw-r--r--gcc/tree-ssa-loop-prefetch.c891
-rw-r--r--gcc/tree-ssa-loop.c155
-rw-r--r--gcc/tree-ssa-operands.c48
-rw-r--r--gcc/tree-ssa-pre.c60
-rw-r--r--gcc/tree-ssa.c33
-rw-r--r--gcc/tree-ssanames.c8
-rw-r--r--gcc/tree-vect-analyze.c2601
-rw-r--r--gcc/tree-vect-transform.c1893
-rw-r--r--gcc/tree-vectorizer.c4286
-rw-r--r--gcc/tree-vectorizer.h72
-rw-r--r--gcc/tree-vn.c2
-rw-r--r--gcc/tree.c47
-rw-r--r--gcc/tree.def8
-rw-r--r--gcc/tree.h51
-rw-r--r--gcc/treelang/ChangeLog91
-rw-r--r--gcc/treelang/Make-lang.in22
-rw-r--r--gcc/treelang/lang-specs.h1
-rw-r--r--gcc/treelang/parse.y54
-rw-r--r--gcc/treelang/spec.c63
-rw-r--r--gcc/treelang/treelang.texi261
-rw-r--r--gcc/treelang/treetree.c137
-rw-r--r--gcc/treelang/treetree.h10
-rw-r--r--gcc/unwind-dw2-fde-glibc.c137
-rw-r--r--gcc/value-prof.c5
-rw-r--r--gcc/varasm.c511
-rw-r--r--gcc/version.c18
-rw-r--r--gcc/vmsdbgout.c3
-rw-r--r--include/ChangeLog4
-rw-r--r--include/demangle.h4
-rw-r--r--intl/ChangeLog4
-rw-r--r--libada/ChangeLog4
-rw-r--r--libcpp/ChangeLog52
-rw-r--r--libcpp/ChangeLog.apple-ppc93
-rw-r--r--libcpp/charset.c330
-rwxr-xr-xlibcpp/configure5
-rw-r--r--libcpp/configure.ac5
-rw-r--r--libcpp/directives.c80
-rw-r--r--libcpp/errors.c27
-rw-r--r--libcpp/files.c210
-rw-r--r--libcpp/include/cpplib.h175
-rw-r--r--libcpp/init.c29
-rw-r--r--libcpp/internal.h47
-rw-r--r--libcpp/lex.c384
-rw-r--r--libcpp/line-map.c11
-rw-r--r--libcpp/macro.c140
-rw-r--r--libcpp/makedepend.c7
-rw-r--r--libcpp/makeucnid.c344
-rw-r--r--libcpp/pch.c32
-rw-r--r--libcpp/po/ChangeLog30
-rw-r--r--libcpp/po/be.po185
-rw-r--r--libcpp/po/ca.po188
-rw-r--r--libcpp/po/cpplib.pot216
-rw-r--r--libcpp/po/da.po191
-rw-r--r--libcpp/po/de.po204
-rw-r--r--libcpp/po/el.po189
-rw-r--r--libcpp/po/es.po195
-rw-r--r--libcpp/po/fr.po188
-rw-r--r--libcpp/po/ja.po191
-rw-r--r--libcpp/po/nl.po189
-rw-r--r--libcpp/po/rw.po967
-rw-r--r--libcpp/po/sv.po188
-rw-r--r--libcpp/po/tr.po193
-rw-r--r--libcpp/po/vi.po825
-rw-r--r--libcpp/ucnid.h1121
-rw-r--r--libcpp/ucnid.pl132
-rw-r--r--libcpp/ucnid.tab75
-rw-r--r--libffi/ChangeLog14
-rw-r--r--libffi/src/powerpc/ffi.c10
-rw-r--r--libffi/testsuite/libffi.call/return_ll1.c42
-rw-r--r--libgfortran/ChangeLog177
-rw-r--r--libgfortran/Makefile.am14
-rw-r--r--libgfortran/Makefile.in67
-rw-r--r--libgfortran/aclocal.m44
-rw-r--r--libgfortran/config.h.in33
-rwxr-xr-xlibgfortran/configure237
-rw-r--r--libgfortran/configure.ac13
-rw-r--r--libgfortran/intrinsics/args.c8
-rw-r--r--libgfortran/intrinsics/c99_functions.c2
-rw-r--r--libgfortran/intrinsics/chdir.c118
-rw-r--r--libgfortran/intrinsics/date_and_time.c192
-rw-r--r--libgfortran/intrinsics/gerror.c67
-rw-r--r--libgfortran/intrinsics/getlog.c65
-rw-r--r--libgfortran/intrinsics/hostnm.c110
-rw-r--r--libgfortran/intrinsics/ierrno.c57
-rw-r--r--libgfortran/intrinsics/kill.c107
-rw-r--r--libgfortran/intrinsics/link.c138
-rw-r--r--libgfortran/intrinsics/perror.c64
-rw-r--r--libgfortran/intrinsics/rename.c132
-rw-r--r--libgfortran/intrinsics/sleep.c68
-rw-r--r--libgfortran/intrinsics/symlnk.c138
-rw-r--r--libgfortran/intrinsics/time.c72
-rw-r--r--libgfortran/io/backspace.c24
-rw-r--r--libgfortran/io/format.c1
-rw-r--r--libgfortran/io/inquire.c7
-rw-r--r--libgfortran/io/io.h7
-rw-r--r--libgfortran/io/list_read.c19
-rw-r--r--libgfortran/io/open.c5
-rw-r--r--libgfortran/io/transfer.c10
-rw-r--r--libgfortran/io/write.c39
-rw-r--r--libgfortran/runtime/environ.c63
-rw-r--r--libgfortran/runtime/string.c14
-rw-r--r--libiberty/ChangeLog4
-rw-r--r--libjava/ChangeLog4294
-rw-r--r--libjava/Makefile.am419
-rw-r--r--libjava/Makefile.in4033
-rw-r--r--libjava/NEWS208
-rw-r--r--libjava/boehm.cc6
-rwxr-xr-xlibjava/configure152
-rw-r--r--libjava/configure.ac38
-rw-r--r--libjava/configure.host1
-rw-r--r--libjava/external/Makefile.in4
-rw-r--r--libjava/external/sax/Makefile.am18
-rw-r--r--libjava/external/sax/Makefile.in305
-rw-r--r--libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java5
-rw-r--r--libjava/external/w3c_dom/Makefile.am18
-rw-r--r--libjava/external/w3c_dom/Makefile.in1083
-rw-r--r--libjava/gcj/Makefile.in4
-rw-r--r--libjava/gcj/cni.h12
-rw-r--r--libjava/gcj/javaprims.h25
-rw-r--r--libjava/gcj/method.h2
-rw-r--r--libjava/gij.cc307
-rw-r--r--libjava/gnu/awt/xlib/XEventLoop.java36
-rw-r--r--libjava/gnu/awt/xlib/XFramePeer.java2
-rw-r--r--libjava/gnu/awt/xlib/XToolkit.java26
-rw-r--r--libjava/gnu/gcj/convert/Convert.java4
-rw-r--r--libjava/gnu/gcj/runtime/BootClassLoader.java71
-rw-r--r--libjava/gnu/gcj/runtime/ExtensionClassLoader.java40
-rw-r--r--libjava/gnu/gcj/runtime/HelperClassLoader.java67
-rw-r--r--libjava/gnu/gcj/runtime/PersistentByteMap.java187
-rw-r--r--libjava/gnu/gcj/runtime/SharedLibHelper.java26
-rw-r--r--libjava/gnu/gcj/runtime/SharedLibLoader.java2
-rw-r--r--libjava/gnu/gcj/runtime/VMClassLoader.java135
-rw-r--r--libjava/gnu/gcj/runtime/natVMClassLoader.cc79
-rw-r--r--libjava/gnu/gcj/tools/gcj_dbtool/Main.java332
-rw-r--r--libjava/gnu/gcj/tools/gcj_dbtool/natMain.cc24
-rw-r--r--libjava/gnu/gcj/xlib/XAnyEvent.java4
-rw-r--r--libjava/gnu/gcj/xlib/natXAnyEvent.cc60
-rw-r--r--libjava/gnu/java/awt/ClasspathToolkit.java17
-rw-r--r--libjava/gnu/java/awt/EmbeddedWindow.java1
-rw-r--r--libjava/gnu/java/awt/color/ClutProfileConverter.java1
-rw-r--r--libjava/gnu/java/awt/image/ImageDecoder.java42
-rw-r--r--libjava/gnu/java/awt/peer/ClasspathTextLayoutPeer.java7
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java5
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.java15
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkFontPeer.java48
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGlyphVector.java243
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGraphics.java41
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java1626
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java138
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java28
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java524
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.java94
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java82
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkTextLayout.java15
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java1
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java18
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java2
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.java5
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkClipboard.java8
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java22
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java2
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java4
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java13
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java5
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java11
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.java8
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java6
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkMainThread.java111
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java4
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java2
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java10
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.java6
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java9
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java10
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java5
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkToolkit.java97
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java64
-rw-r--r--libjava/gnu/java/beans/DummyAppletContext.java200
-rw-r--r--libjava/gnu/java/beans/DummyAppletStub.java115
-rw-r--r--libjava/gnu/java/beans/EmptyBeanInfo.java70
-rw-r--r--libjava/gnu/java/beans/IntrospectionIncubator.java3
-rw-r--r--libjava/gnu/java/beans/info/ComponentBeanInfo.java75
-rw-r--r--libjava/gnu/java/io/Base64InputStream.java28
-rw-r--r--libjava/gnu/java/lang/MainThread.java5
-rw-r--r--libjava/gnu/java/locale/LocaleInformation_en.java2
-rw-r--r--libjava/gnu/java/net/CRLFInputStream.java205
-rw-r--r--libjava/gnu/java/net/CRLFOutputStream.java183
-rw-r--r--libjava/gnu/java/net/GetLocalHostAction.java65
-rw-r--r--libjava/gnu/java/net/PlainSocketImpl.java14
-rw-r--r--libjava/gnu/java/net/natPlainSocketImplPosix.cc5
-rw-r--r--libjava/gnu/java/net/natPlainSocketImplWin32.cc5
-rw-r--r--libjava/gnu/java/net/protocol/http/Cookie.java1
-rw-r--r--libjava/gnu/java/net/protocol/http/HTTPConnection.java2
-rw-r--r--libjava/gnu/java/net/protocol/http/HTTPDateFormat.java12
-rw-r--r--libjava/gnu/java/net/protocol/http/Request.java1
-rw-r--r--libjava/gnu/java/nio/ChannelReader.java211
-rw-r--r--libjava/gnu/java/nio/PipeImpl.java7
-rw-r--r--libjava/gnu/java/nio/SelectorImpl.java24
-rw-r--r--libjava/gnu/java/nio/channels/FileChannelImpl.java103
-rw-r--r--libjava/gnu/java/nio/charset/UTF_8.java4
-rw-r--r--libjava/gnu/java/rmi/dgc/DGCImpl.java1
-rw-r--r--libjava/gnu/java/rmi/registry/RegistryImpl.java5
-rw-r--r--libjava/gnu/java/rmi/rmic/RMIC.java4
-rw-r--r--libjava/gnu/java/rmi/server/ConnectionRunnerPool.java4
-rw-r--r--libjava/gnu/java/rmi/server/UnicastConnectionManager.java1
-rw-r--r--libjava/gnu/java/security/PolicyFile.java16
-rw-r--r--libjava/gnu/java/security/der/DERReader.java46
-rw-r--r--libjava/gnu/java/security/der/DERWriter.java3
-rw-r--r--libjava/gnu/java/security/provider/EncodedKeyFactory.java14
-rw-r--r--libjava/gnu/java/security/provider/Gnu.java3
-rw-r--r--libjava/gnu/java/security/provider/GnuDHPublicKey.java1
-rw-r--r--libjava/gnu/java/security/provider/GnuDSAPrivateKey.java73
-rw-r--r--libjava/gnu/java/security/provider/GnuDSAPublicKey.java63
-rw-r--r--libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.java37
-rw-r--r--libjava/gnu/java/security/x509/X500DistinguishedName.java1
-rw-r--r--libjava/gnu/java/security/x509/X509CRL.java1
-rw-r--r--libjava/gnu/java/security/x509/X509CRLEntry.java1
-rw-r--r--libjava/gnu/java/security/x509/X509Certificate.java5
-rw-r--r--libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.java1
-rw-r--r--libjava/gnu/java/security/x509/ext/CertificatePolicies.java1
-rw-r--r--libjava/gnu/java/security/x509/ext/PolicyConstraint.java2
-rw-r--r--libjava/gnu/java/text/FormatCharacterIterator.java6
-rw-r--r--libjava/gnu/regexp/RE.java19
-rw-r--r--libjava/gnu/xml/aelfred2/JAXPFactory.java273
-rw-r--r--libjava/gnu/xml/aelfred2/SAXDriver.java2437
-rw-r--r--libjava/gnu/xml/aelfred2/XmlParser.java10240
-rw-r--r--libjava/gnu/xml/aelfred2/XmlReader.java515
-rw-r--r--libjava/gnu/xml/dom/Consumer.java5
-rw-r--r--libjava/gnu/xml/dom/DomAttr.java7
-rw-r--r--libjava/gnu/xml/dom/DomCDATASection.java (renamed from libjava/gnu/xml/dom/DomCDATA.java)10
-rw-r--r--libjava/gnu/xml/dom/DomCharacterData.java25
-rw-r--r--libjava/gnu/xml/dom/DomDOMException.java (renamed from libjava/gnu/xml/dom/DomEx.java)8
-rw-r--r--libjava/gnu/xml/dom/DomDoctype.java5
-rw-r--r--libjava/gnu/xml/dom/DomDocument.java111
-rw-r--r--libjava/gnu/xml/dom/DomDocumentBuilder.java1
-rw-r--r--libjava/gnu/xml/dom/DomDocumentConfiguration.java9
-rw-r--r--libjava/gnu/xml/dom/DomDocumentFragment.java (renamed from libjava/gnu/xml/dom/DomFragment.java)6
-rw-r--r--libjava/gnu/xml/dom/DomElement.java15
-rw-r--r--libjava/gnu/xml/dom/DomImpl.java3
-rw-r--r--libjava/gnu/xml/dom/DomIterator.java9
-rw-r--r--libjava/gnu/xml/dom/DomNamedNodeMap.java13
-rw-r--r--libjava/gnu/xml/dom/DomNode.java83
-rw-r--r--libjava/gnu/xml/dom/DomNsNode.java29
-rw-r--r--libjava/gnu/xml/dom/DomProcessingInstruction.java (renamed from libjava/gnu/xml/dom/DomPI.java)10
-rw-r--r--libjava/gnu/xml/dom/DomText.java4
-rw-r--r--libjava/gnu/xml/dom/DomXPathExpression.java1
-rw-r--r--libjava/gnu/xml/dom/DomXPathResult.java2
-rw-r--r--libjava/gnu/xml/dom/JAXPFactory.java1
-rw-r--r--libjava/gnu/xml/dom/ls/DomLSException.java (renamed from libjava/gnu/xml/dom/ls/DomLSEx.java)28
-rw-r--r--libjava/gnu/xml/dom/ls/DomLSParser.java22
-rw-r--r--libjava/gnu/xml/dom/ls/DomLSSerializer.java8
-rw-r--r--libjava/gnu/xml/dom/ls/SAXEventSink.java7
-rw-r--r--libjava/gnu/xml/pipeline/CallFilter.java17
-rw-r--r--libjava/gnu/xml/pipeline/DomConsumer.java27
-rw-r--r--libjava/gnu/xml/pipeline/LinkFilter.java1
-rw-r--r--libjava/gnu/xml/pipeline/NSFilter.java9
-rw-r--r--libjava/gnu/xml/pipeline/TeeConsumer.java14
-rw-r--r--libjava/gnu/xml/pipeline/ValidationConsumer.java21
-rw-r--r--libjava/gnu/xml/pipeline/WellFormednessFilter.java9
-rw-r--r--libjava/gnu/xml/pipeline/XIncludeFilter.java1
-rw-r--r--libjava/gnu/xml/pipeline/XsltFilter.java1
-rw-r--r--libjava/gnu/xml/transform/ApplyImportsNode.java6
-rw-r--r--libjava/gnu/xml/transform/Bindings.java4
-rw-r--r--libjava/gnu/xml/transform/DocumentFunction.java6
-rw-r--r--libjava/gnu/xml/transform/FormatNumberFunction.java1
-rw-r--r--libjava/gnu/xml/transform/NodeNumberNode.java3
-rw-r--r--libjava/gnu/xml/transform/NumberNode.java1
-rw-r--r--libjava/gnu/xml/transform/Stylesheet.java2
-rw-r--r--libjava/gnu/xml/transform/SystemPropertyFunction.java1
-rw-r--r--libjava/gnu/xml/transform/Template.java2
-rw-r--r--libjava/gnu/xml/transform/TemplatesImpl.java3
-rw-r--r--libjava/gnu/xml/transform/TransformerImpl.java6
-rw-r--r--libjava/gnu/xml/transform/ValueOfNode.java3
-rw-r--r--libjava/gnu/xml/transform/XSLURIResolver.java1
-rw-r--r--libjava/gnu/xml/util/DoParse.java18
-rw-r--r--libjava/gnu/xml/util/Resolver.java10
-rw-r--r--libjava/gnu/xml/util/SAXNullTransformerFactory.java5
-rw-r--r--libjava/gnu/xml/xpath/Expr.java2
-rw-r--r--libjava/gnu/xml/xpath/FunctionCall.java1
-rw-r--r--libjava/gnu/xml/xpath/Predicate.java2
-rw-r--r--libjava/gnu/xml/xpath/RelationalExpr.java1
-rw-r--r--libjava/gnu/xml/xpath/Selector.java2
-rw-r--r--libjava/gnu/xml/xpath/XPathParser.java1
-rw-r--r--libjava/include/Makefile.in4
-rw-r--r--libjava/include/config.h.in6
-rw-r--r--libjava/include/java-interp.h8
-rw-r--r--libjava/include/java-props.h4
-rw-r--r--libjava/include/jawt.h6
-rw-r--r--libjava/include/jawt_md.h1
-rw-r--r--libjava/include/jvm.h19
-rw-r--r--libjava/java/applet/Applet.java8
-rw-r--r--libjava/java/awt/AWTError.java4
-rw-r--r--libjava/java/awt/AWTEvent.java4
-rw-r--r--libjava/java/awt/AWTEventMulticaster.java4
-rw-r--r--libjava/java/awt/AWTException.java4
-rw-r--r--libjava/java/awt/AWTKeyStroke.java21
-rw-r--r--libjava/java/awt/AWTPermission.java2
-rw-r--r--libjava/java/awt/ActiveEvent.java2
-rw-r--r--libjava/java/awt/Adjustable.java4
-rw-r--r--libjava/java/awt/AlphaComposite.java4
-rw-r--r--libjava/java/awt/AttributeValue.java4
-rw-r--r--libjava/java/awt/BasicStroke.java28
-rw-r--r--libjava/java/awt/BorderLayout.java4
-rw-r--r--libjava/java/awt/BufferCapabilities.java4
-rw-r--r--libjava/java/awt/Button.java21
-rw-r--r--libjava/java/awt/Canvas.java9
-rw-r--r--libjava/java/awt/Checkbox.java182
-rw-r--r--libjava/java/awt/CheckboxGroup.java4
-rw-r--r--libjava/java/awt/CheckboxMenuItem.java42
-rw-r--r--libjava/java/awt/Choice.java86
-rw-r--r--libjava/java/awt/Color.java4
-rw-r--r--libjava/java/awt/ColorPaintContext.java4
-rw-r--r--libjava/java/awt/Component.java81
-rw-r--r--libjava/java/awt/ComponentOrientation.java2
-rw-r--r--libjava/java/awt/Composite.java4
-rw-r--r--libjava/java/awt/CompositeContext.java4
-rw-r--r--libjava/java/awt/Container.java69
-rw-r--r--libjava/java/awt/ContainerOrderFocusTraversalPolicy.java4
-rw-r--r--libjava/java/awt/DefaultFocusTraversalPolicy.java4
-rw-r--r--libjava/java/awt/DefaultKeyboardFocusManager.java2
-rw-r--r--libjava/java/awt/Dialog.java44
-rw-r--r--libjava/java/awt/Dimension.java6
-rw-r--r--libjava/java/awt/DisplayMode.java4
-rw-r--r--libjava/java/awt/EventDispatchThread.java11
-rw-r--r--libjava/java/awt/EventQueue.java100
-rw-r--r--libjava/java/awt/FileDialog.java4
-rw-r--r--libjava/java/awt/Font.java7
-rw-r--r--libjava/java/awt/FontFormatException.java4
-rw-r--r--libjava/java/awt/Frame.java124
-rw-r--r--libjava/java/awt/Graphics.java4
-rw-r--r--libjava/java/awt/Graphics2D.java2
-rw-r--r--libjava/java/awt/GraphicsConfigTemplate.java4
-rw-r--r--libjava/java/awt/GraphicsConfiguration.java2
-rw-r--r--libjava/java/awt/GraphicsDevice.java4
-rw-r--r--libjava/java/awt/GridBagLayout.java6
-rw-r--r--libjava/java/awt/GridBagLayoutInfo.java4
-rw-r--r--libjava/java/awt/GridLayout.java2
-rw-r--r--libjava/java/awt/HeadlessException.java4
-rw-r--r--libjava/java/awt/IllegalComponentStateException.java4
-rw-r--r--libjava/java/awt/Image.java4
-rw-r--r--libjava/java/awt/Insets.java6
-rw-r--r--libjava/java/awt/ItemSelectable.java4
-rw-r--r--libjava/java/awt/JobAttributes.java4
-rw-r--r--libjava/java/awt/KeyEventDispatcher.java4
-rw-r--r--libjava/java/awt/KeyEventPostProcessor.java4
-rw-r--r--libjava/java/awt/KeyboardFocusManager.java6
-rw-r--r--libjava/java/awt/Label.java11
-rw-r--r--libjava/java/awt/LayoutManager.java4
-rw-r--r--libjava/java/awt/List.java184
-rw-r--r--libjava/java/awt/Menu.java12
-rw-r--r--libjava/java/awt/MenuBar.java13
-rw-r--r--libjava/java/awt/MenuComponent.java8
-rw-r--r--libjava/java/awt/MenuContainer.java4
-rw-r--r--libjava/java/awt/MenuItem.java21
-rw-r--r--libjava/java/awt/PageAttributes.java4
-rw-r--r--libjava/java/awt/Paint.java2
-rw-r--r--libjava/java/awt/PaintContext.java2
-rw-r--r--libjava/java/awt/Panel.java4
-rw-r--r--libjava/java/awt/Point.java6
-rw-r--r--libjava/java/awt/Polygon.java6
-rw-r--r--libjava/java/awt/PopupMenu.java11
-rw-r--r--libjava/java/awt/PrintGraphics.java4
-rw-r--r--libjava/java/awt/PrintJob.java4
-rw-r--r--libjava/java/awt/Rectangle.java6
-rw-r--r--libjava/java/awt/RenderingHints.java4
-rw-r--r--libjava/java/awt/Robot.java368
-rw-r--r--libjava/java/awt/ScrollPane.java24
-rw-r--r--libjava/java/awt/Scrollbar.java1296
-rw-r--r--libjava/java/awt/Shape.java4
-rw-r--r--libjava/java/awt/Stroke.java4
-rw-r--r--libjava/java/awt/SystemColor.java6
-rw-r--r--libjava/java/awt/TextArea.java11
-rw-r--r--libjava/java/awt/TextComponent.java16
-rw-r--r--libjava/java/awt/Toolkit.java8
-rw-r--r--libjava/java/awt/Transparency.java2
-rw-r--r--libjava/java/awt/Window.java114
-rw-r--r--libjava/java/awt/color/CMMException.java4
-rw-r--r--libjava/java/awt/color/ColorSpace.java2
-rw-r--r--libjava/java/awt/color/ICC_ColorSpace.java2
-rw-r--r--libjava/java/awt/color/ICC_Profile.java4
-rw-r--r--libjava/java/awt/color/ProfileDataException.java4
-rw-r--r--libjava/java/awt/datatransfer/FlavorTable.java4
-rw-r--r--libjava/java/awt/datatransfer/MimeTypeParseException.java4
-rw-r--r--libjava/java/awt/datatransfer/Transferable.java4
-rw-r--r--libjava/java/awt/datatransfer/UnsupportedFlavorException.java4
-rw-r--r--libjava/java/awt/dnd/Autoscroll.java4
-rw-r--r--libjava/java/awt/dnd/DnDConstants.java11
-rw-r--r--libjava/java/awt/dnd/DragGestureListener.java4
-rw-r--r--libjava/java/awt/dnd/DragSourceAdapter.java4
-rw-r--r--libjava/java/awt/dnd/DragSourceDropEvent.java4
-rw-r--r--libjava/java/awt/dnd/DragSourceListener.java4
-rw-r--r--libjava/java/awt/dnd/DragSourceMotionListener.java4
-rw-r--r--libjava/java/awt/dnd/DropTarget.java9
-rw-r--r--libjava/java/awt/dnd/DropTargetAdapter.java4
-rw-r--r--libjava/java/awt/dnd/DropTargetContext.java2
-rw-r--r--libjava/java/awt/dnd/DropTargetListener.java4
-rw-r--r--libjava/java/awt/dnd/InvalidDnDOperationException.java4
-rw-r--r--libjava/java/awt/dnd/MouseDragGestureRecognizer.java4
-rw-r--r--libjava/java/awt/dnd/peer/DropTargetContextPeer.java4
-rw-r--r--libjava/java/awt/event/AWTEventListener.java4
-rw-r--r--libjava/java/awt/event/AWTEventListenerProxy.java4
-rw-r--r--libjava/java/awt/event/ActionEvent.java4
-rw-r--r--libjava/java/awt/event/AdjustmentEvent.java4
-rw-r--r--libjava/java/awt/event/AdjustmentListener.java4
-rw-r--r--libjava/java/awt/event/ComponentAdapter.java4
-rw-r--r--libjava/java/awt/event/ComponentEvent.java4
-rw-r--r--libjava/java/awt/event/ComponentListener.java4
-rw-r--r--libjava/java/awt/event/ContainerAdapter.java4
-rw-r--r--libjava/java/awt/event/ContainerEvent.java4
-rw-r--r--libjava/java/awt/event/ContainerListener.java4
-rw-r--r--libjava/java/awt/event/FocusAdapter.java4
-rw-r--r--libjava/java/awt/event/FocusEvent.java4
-rw-r--r--libjava/java/awt/event/FocusListener.java4
-rw-r--r--libjava/java/awt/event/InputEvent.java4
-rw-r--r--libjava/java/awt/event/InputMethodEvent.java4
-rw-r--r--libjava/java/awt/event/InputMethodListener.java4
-rw-r--r--libjava/java/awt/event/InvocationEvent.java4
-rw-r--r--libjava/java/awt/event/ItemEvent.java4
-rw-r--r--libjava/java/awt/event/ItemListener.java4
-rw-r--r--libjava/java/awt/event/KeyAdapter.java4
-rw-r--r--libjava/java/awt/event/KeyEvent.java6
-rw-r--r--libjava/java/awt/event/KeyListener.java4
-rw-r--r--libjava/java/awt/event/MouseAdapter.java4
-rw-r--r--libjava/java/awt/event/MouseEvent.java6
-rw-r--r--libjava/java/awt/event/MouseListener.java4
-rw-r--r--libjava/java/awt/event/MouseMotionAdapter.java4
-rw-r--r--libjava/java/awt/event/MouseMotionListener.java4
-rw-r--r--libjava/java/awt/event/MouseWheelEvent.java4
-rw-r--r--libjava/java/awt/event/MouseWheelListener.java4
-rw-r--r--libjava/java/awt/event/PaintEvent.java4
-rw-r--r--libjava/java/awt/event/TextEvent.java4
-rw-r--r--libjava/java/awt/event/TextListener.java4
-rw-r--r--libjava/java/awt/event/WindowAdapter.java4
-rw-r--r--libjava/java/awt/event/WindowEvent.java4
-rw-r--r--libjava/java/awt/event/WindowFocusListener.java4
-rw-r--r--libjava/java/awt/event/WindowListener.java4
-rw-r--r--libjava/java/awt/event/WindowStateListener.java4
-rw-r--r--libjava/java/awt/font/TextAttribute.java300
-rw-r--r--libjava/java/awt/font/TextHitInfo.java4
-rw-r--r--libjava/java/awt/font/TransformAttribute.java37
-rw-r--r--libjava/java/awt/geom/Area.java4
-rw-r--r--libjava/java/awt/geom/CubicCurve2D.java8
-rw-r--r--libjava/java/awt/geom/Dimension2D.java4
-rw-r--r--libjava/java/awt/geom/Ellipse2D.java6
-rw-r--r--libjava/java/awt/geom/IllegalPathStateException.java2
-rw-r--r--libjava/java/awt/geom/Line2D.java8
-rw-r--r--libjava/java/awt/geom/NoninvertibleTransformException.java2
-rw-r--r--libjava/java/awt/geom/PathIterator.java4
-rw-r--r--libjava/java/awt/geom/Point2D.java4
-rw-r--r--libjava/java/awt/geom/QuadCurve2D.java9
-rw-r--r--libjava/java/awt/geom/Rectangle2D.java14
-rw-r--r--libjava/java/awt/geom/RectangularShape.java4
-rw-r--r--libjava/java/awt/geom/RoundRectangle2D.java2
-rw-r--r--libjava/java/awt/im/InputContext.java8
-rw-r--r--libjava/java/awt/im/InputMethodHighlight.java4
-rw-r--r--libjava/java/awt/im/InputMethodRequests.java4
-rw-r--r--libjava/java/awt/im/InputSubset.java4
-rw-r--r--libjava/java/awt/im/spi/InputMethod.java4
-rw-r--r--libjava/java/awt/im/spi/InputMethodDescriptor.java4
-rw-r--r--libjava/java/awt/image/BandCombineOp.java2
-rw-r--r--libjava/java/awt/image/BandedSampleModel.java2
-rw-r--r--libjava/java/awt/image/ByteLookupTable.java4
-rw-r--r--libjava/java/awt/image/ComponentSampleModel.java2
-rw-r--r--libjava/java/awt/image/DataBuffer.java2
-rw-r--r--libjava/java/awt/image/DataBufferByte.java2
-rw-r--r--libjava/java/awt/image/DataBufferDouble.java4
-rw-r--r--libjava/java/awt/image/DataBufferFloat.java4
-rw-r--r--libjava/java/awt/image/DataBufferInt.java2
-rw-r--r--libjava/java/awt/image/DataBufferShort.java2
-rw-r--r--libjava/java/awt/image/DataBufferUShort.java2
-rw-r--r--libjava/java/awt/image/ImagingOpException.java4
-rw-r--r--libjava/java/awt/image/IndexColorModel.java12
-rw-r--r--libjava/java/awt/image/Kernel.java4
-rw-r--r--libjava/java/awt/image/LookupTable.java4
-rw-r--r--libjava/java/awt/image/MemoryImageSource.java656
-rw-r--r--libjava/java/awt/image/MultiPixelPackedSampleModel.java11
-rw-r--r--libjava/java/awt/image/PackedColorModel.java2
-rw-r--r--libjava/java/awt/image/PixelInterleavedSampleModel.java4
-rw-r--r--libjava/java/awt/image/RGBImageFilter.java6
-rw-r--r--libjava/java/awt/image/Raster.java2
-rw-r--r--libjava/java/awt/image/RasterFormatException.java4
-rw-r--r--libjava/java/awt/image/ReplicateScaleFilter.java16
-rw-r--r--libjava/java/awt/image/SampleModel.java2
-rw-r--r--libjava/java/awt/image/ShortLookupTable.java4
-rw-r--r--libjava/java/awt/image/SinglePixelPackedSampleModel.java2
-rw-r--r--libjava/java/awt/image/WritableRaster.java2
-rw-r--r--libjava/java/awt/peer/RobotPeer.java12
-rw-r--r--libjava/java/awt/print/Book.java255
-rw-r--r--libjava/java/awt/print/PrinterAbortException.java4
-rw-r--r--libjava/java/awt/print/PrinterException.java4
-rw-r--r--libjava/java/awt/print/PrinterIOException.java6
-rw-r--r--libjava/java/awt/print/PrinterJob.java18
-rw-r--r--libjava/java/beans/AppletInitializer.java4
-rw-r--r--libjava/java/beans/Beans.java481
-rw-r--r--libjava/java/beans/ExceptionListener.java4
-rw-r--r--libjava/java/beans/PropertyChangeEvent.java4
-rw-r--r--libjava/java/beans/PropertyChangeListenerProxy.java4
-rw-r--r--libjava/java/beans/PropertyChangeSupport.java4
-rw-r--r--libjava/java/beans/PropertyDescriptor.java24
-rw-r--r--libjava/java/beans/VetoableChangeListenerProxy.java4
-rw-r--r--libjava/java/beans/VetoableChangeSupport.java4
-rw-r--r--libjava/java/beans/XMLDecoder.java307
-rw-r--r--libjava/java/io/BufferedInputStream.java100
-rw-r--r--libjava/java/io/BufferedReader.java6
-rw-r--r--libjava/java/io/ByteArrayInputStream.java4
-rw-r--r--libjava/java/io/ByteArrayOutputStream.java4
-rw-r--r--libjava/java/io/CharArrayReader.java4
-rw-r--r--libjava/java/io/CharArrayWriter.java4
-rw-r--r--libjava/java/io/CharConversionException.java4
-rw-r--r--libjava/java/io/DataInput.java4
-rw-r--r--libjava/java/io/DataInputStream.java4
-rw-r--r--libjava/java/io/DataOutput.java4
-rw-r--r--libjava/java/io/DataOutputStream.java6
-rw-r--r--libjava/java/io/EOFException.java4
-rw-r--r--libjava/java/io/Externalizable.java2
-rw-r--r--libjava/java/io/FileDescriptor.java2
-rw-r--r--libjava/java/io/FileInputStream.java6
-rw-r--r--libjava/java/io/FileNotFoundException.java6
-rw-r--r--libjava/java/io/FileOutputStream.java6
-rw-r--r--libjava/java/io/FilenameFilter.java4
-rw-r--r--libjava/java/io/FilterInputStream.java4
-rw-r--r--libjava/java/io/FilterOutputStream.java4
-rw-r--r--libjava/java/io/FilterReader.java4
-rw-r--r--libjava/java/io/FilterWriter.java4
-rw-r--r--libjava/java/io/IOException.java4
-rw-r--r--libjava/java/io/InputStream.java4
-rw-r--r--libjava/java/io/InputStreamReader.java6
-rw-r--r--libjava/java/io/InterruptedIOException.java6
-rw-r--r--libjava/java/io/LineNumberInputStream.java4
-rw-r--r--libjava/java/io/LineNumberReader.java6
-rw-r--r--libjava/java/io/ObjectInputStream.java169
-rw-r--r--libjava/java/io/ObjectOutputStream.java62
-rw-r--r--libjava/java/io/ObjectStreamClass.java102
-rw-r--r--libjava/java/io/ObjectStreamException.java4
-rw-r--r--libjava/java/io/ObjectStreamField.java81
-rw-r--r--libjava/java/io/OptionalDataException.java4
-rw-r--r--libjava/java/io/OutputStream.java4
-rw-r--r--libjava/java/io/OutputStreamWriter.java4
-rw-r--r--libjava/java/io/PipedInputStream.java23
-rw-r--r--libjava/java/io/PrintStream.java6
-rw-r--r--libjava/java/io/PrintWriter.java4
-rw-r--r--libjava/java/io/PushbackInputStream.java4
-rw-r--r--libjava/java/io/PushbackReader.java4
-rw-r--r--libjava/java/io/RandomAccessFile.java6
-rw-r--r--libjava/java/io/Reader.java2
-rw-r--r--libjava/java/io/SequenceInputStream.java4
-rw-r--r--libjava/java/io/Serializable.java5
-rw-r--r--libjava/java/io/StreamCorruptedException.java4
-rw-r--r--libjava/java/io/StreamTokenizer.java2
-rw-r--r--libjava/java/io/StringBufferInputStream.java4
-rw-r--r--libjava/java/io/StringWriter.java4
-rw-r--r--libjava/java/io/SyncFailedException.java4
-rw-r--r--libjava/java/io/UTFDataFormatException.java4
-rw-r--r--libjava/java/io/UnsupportedEncodingException.java4
-rw-r--r--libjava/java/io/VMObjectStreamClass.java92
-rw-r--r--libjava/java/io/WriteAbortedException.java4
-rw-r--r--libjava/java/io/Writer.java4
-rw-r--r--libjava/java/io/natObjectInputStream.cc44
-rw-r--r--libjava/java/io/natVMObjectStreamClass.cc64
-rw-r--r--libjava/java/lang/AbstractMethodError.java4
-rw-r--r--libjava/java/lang/ArithmeticException.java4
-rw-r--r--libjava/java/lang/ArrayIndexOutOfBoundsException.java4
-rw-r--r--libjava/java/lang/ArrayStoreException.java4
-rw-r--r--libjava/java/lang/AssertionError.java4
-rw-r--r--libjava/java/lang/Boolean.java4
-rw-r--r--libjava/java/lang/Byte.java4
-rw-r--r--libjava/java/lang/Class.h10
-rw-r--r--libjava/java/lang/Class.java4
-rw-r--r--libjava/java/lang/ClassCastException.java4
-rw-r--r--libjava/java/lang/ClassCircularityError.java4
-rw-r--r--libjava/java/lang/ClassLoader.java52
-rw-r--r--libjava/java/lang/ClassNotFoundException.java4
-rw-r--r--libjava/java/lang/CloneNotSupportedException.java6
-rw-r--r--libjava/java/lang/Cloneable.java6
-rw-r--r--libjava/java/lang/Comparable.java4
-rw-r--r--libjava/java/lang/Compiler.java4
-rw-r--r--libjava/java/lang/Double.java6
-rw-r--r--libjava/java/lang/Error.java6
-rw-r--r--libjava/java/lang/Exception.java6
-rw-r--r--libjava/java/lang/ExceptionInInitializerError.java6
-rw-r--r--libjava/java/lang/Float.java6
-rw-r--r--libjava/java/lang/IllegalAccessError.java4
-rw-r--r--libjava/java/lang/IllegalAccessException.java4
-rw-r--r--libjava/java/lang/IllegalArgumentException.java4
-rw-r--r--libjava/java/lang/IllegalMonitorStateException.java4
-rw-r--r--libjava/java/lang/IllegalStateException.java4
-rw-r--r--libjava/java/lang/IllegalThreadStateException.java4
-rw-r--r--libjava/java/lang/IncompatibleClassChangeError.java4
-rw-r--r--libjava/java/lang/IndexOutOfBoundsException.java4
-rw-r--r--libjava/java/lang/InheritableThreadLocal.java6
-rw-r--r--libjava/java/lang/InstantiationError.java4
-rw-r--r--libjava/java/lang/InstantiationException.java4
-rw-r--r--libjava/java/lang/Integer.java4
-rw-r--r--libjava/java/lang/InternalError.java4
-rw-r--r--libjava/java/lang/InterruptedException.java4
-rw-r--r--libjava/java/lang/LinkageError.java4
-rw-r--r--libjava/java/lang/Long.java4
-rw-r--r--libjava/java/lang/NegativeArraySizeException.java4
-rw-r--r--libjava/java/lang/NoClassDefFoundError.java4
-rw-r--r--libjava/java/lang/NoSuchFieldError.java4
-rw-r--r--libjava/java/lang/NoSuchFieldException.java4
-rw-r--r--libjava/java/lang/NoSuchMethodError.java4
-rw-r--r--libjava/java/lang/NoSuchMethodException.java4
-rw-r--r--libjava/java/lang/NullPointerException.java4
-rw-r--r--libjava/java/lang/Number.java4
-rw-r--r--libjava/java/lang/NumberFormatException.java4
-rw-r--r--libjava/java/lang/Object.h5
-rw-r--r--libjava/java/lang/OutOfMemoryError.java4
-rw-r--r--libjava/java/lang/Process.java4
-rw-r--r--libjava/java/lang/Runnable.java4
-rw-r--r--libjava/java/lang/Runtime.java4
-rw-r--r--libjava/java/lang/RuntimeException.java6
-rw-r--r--libjava/java/lang/RuntimePermission.java4
-rw-r--r--libjava/java/lang/SecurityException.java4
-rw-r--r--libjava/java/lang/SecurityManager.java4
-rw-r--r--libjava/java/lang/Short.java4
-rw-r--r--libjava/java/lang/StackOverflowError.java4
-rw-r--r--libjava/java/lang/StackTraceElement.java6
-rw-r--r--libjava/java/lang/StringBuffer.java4
-rw-r--r--libjava/java/lang/StringIndexOutOfBoundsException.java4
-rw-r--r--libjava/java/lang/ThreadDeath.java4
-rw-r--r--libjava/java/lang/ThreadGroup.java4
-rw-r--r--libjava/java/lang/Throwable.java4
-rw-r--r--libjava/java/lang/UnsatisfiedLinkError.java4
-rw-r--r--libjava/java/lang/UnsupportedOperationException.java4
-rw-r--r--libjava/java/lang/VMClassLoader.java56
-rw-r--r--libjava/java/lang/VMCompiler.java36
-rw-r--r--libjava/java/lang/VerifyError.java4
-rw-r--r--libjava/java/lang/VirtualMachineError.java4
-rw-r--r--libjava/java/lang/natClass.cc8
-rw-r--r--libjava/java/lang/natClassLoader.cc64
-rw-r--r--libjava/java/lang/natDouble.cc19
-rw-r--r--libjava/java/lang/natRuntime.cc75
-rw-r--r--libjava/java/lang/natVMClassLoader.cc99
-rw-r--r--libjava/java/lang/reflect/AccessibleObject.java6
-rw-r--r--libjava/java/lang/reflect/Array.java6
-rw-r--r--libjava/java/lang/reflect/Field.java58
-rw-r--r--libjava/java/lang/reflect/InvocationTargetException.java6
-rw-r--r--libjava/java/lang/reflect/Member.java6
-rw-r--r--libjava/java/lang/reflect/Modifier.java6
-rw-r--r--libjava/java/lang/reflect/Proxy.java12
-rw-r--r--libjava/java/lang/reflect/ReflectPermission.java6
-rw-r--r--libjava/java/lang/reflect/UndeclaredThrowableException.java4
-rw-r--r--libjava/java/lang/reflect/natField.cc94
-rw-r--r--libjava/java/lang/reflect/natMethod.cc4
-rw-r--r--libjava/java/math/BigInteger.java6
-rw-r--r--libjava/java/net/NetworkInterface.java4
-rw-r--r--libjava/java/net/URL.java8
-rw-r--r--libjava/java/net/URLClassLoader.java54
-rw-r--r--libjava/java/nio/ByteBufferHelper.java4
-rw-r--r--libjava/java/nio/ByteBufferImpl.java11
-rw-r--r--libjava/java/nio/CharBufferImpl.java3
-rw-r--r--libjava/java/nio/CharViewBufferImpl.java5
-rw-r--r--libjava/java/nio/DirectByteBufferImpl.java38
-rw-r--r--libjava/java/nio/DoubleBufferImpl.java7
-rw-r--r--libjava/java/nio/DoubleViewBufferImpl.java5
-rw-r--r--libjava/java/nio/FloatBufferImpl.java7
-rw-r--r--libjava/java/nio/FloatViewBufferImpl.java5
-rw-r--r--libjava/java/nio/IntBufferImpl.java7
-rw-r--r--libjava/java/nio/IntViewBufferImpl.java5
-rw-r--r--libjava/java/nio/LongBufferImpl.java7
-rw-r--r--libjava/java/nio/LongViewBufferImpl.java5
-rw-r--r--libjava/java/nio/MappedByteBufferImpl.java7
-rw-r--r--libjava/java/nio/ShortBufferImpl.java7
-rw-r--r--libjava/java/nio/ShortViewBufferImpl.java5
-rw-r--r--libjava/java/nio/channels/Channel.java4
-rw-r--r--libjava/java/nio/channels/Channels.java12
-rw-r--r--libjava/java/nio/channels/IllegalBlockingModeException.java4
-rw-r--r--libjava/java/nio/charset/Charset.java31
-rw-r--r--libjava/java/nio/charset/spi/CharsetProvider.java2
-rw-r--r--libjava/java/rmi/server/RemoteObject.java34
-rw-r--r--libjava/java/rmi/server/RemoteRef.java2
-rw-r--r--libjava/java/rmi/server/ServerRef.java2
-rw-r--r--libjava/java/rmi/server/UID.java2
-rw-r--r--libjava/java/rmi/server/UnicastRemoteObject.java11
-rw-r--r--libjava/java/security/AccessControlException.java4
-rw-r--r--libjava/java/security/AlgorithmParameterGenerator.java2
-rw-r--r--libjava/java/security/AlgorithmParameters.java2
-rw-r--r--libjava/java/security/AllPermission.java114
-rw-r--r--libjava/java/security/BasicPermission.java203
-rw-r--r--libjava/java/security/DigestException.java4
-rw-r--r--libjava/java/security/DigestInputStream.java4
-rw-r--r--libjava/java/security/DigestOutputStream.java4
-rw-r--r--libjava/java/security/GeneralSecurityException.java4
-rw-r--r--libjava/java/security/Guard.java4
-rw-r--r--libjava/java/security/GuardedObject.java4
-rw-r--r--libjava/java/security/InvalidAlgorithmParameterException.java4
-rw-r--r--libjava/java/security/InvalidKeyException.java2
-rw-r--r--libjava/java/security/InvalidParameterException.java2
-rw-r--r--libjava/java/security/Key.java4
-rw-r--r--libjava/java/security/KeyException.java4
-rw-r--r--libjava/java/security/KeyFactory.java2
-rw-r--r--libjava/java/security/KeyManagementException.java4
-rw-r--r--libjava/java/security/KeyStore.java2
-rw-r--r--libjava/java/security/KeyStoreException.java4
-rw-r--r--libjava/java/security/MessageDigestSpi.java4
-rw-r--r--libjava/java/security/NoSuchAlgorithmException.java4
-rw-r--r--libjava/java/security/NoSuchProviderException.java4
-rw-r--r--libjava/java/security/Permission.java4
-rw-r--r--libjava/java/security/PermissionCollection.java6
-rw-r--r--libjava/java/security/Permissions.java113
-rw-r--r--libjava/java/security/Principal.java4
-rw-r--r--libjava/java/security/PrivateKey.java4
-rw-r--r--libjava/java/security/PrivilegedActionException.java6
-rw-r--r--libjava/java/security/ProviderException.java4
-rw-r--r--libjava/java/security/PublicKey.java4
-rw-r--r--libjava/java/security/SecureClassLoader.java26
-rw-r--r--libjava/java/security/SecureRandom.java10
-rw-r--r--libjava/java/security/SecureRandomSpi.java4
-rw-r--r--libjava/java/security/SignatureException.java4
-rw-r--r--libjava/java/security/SignatureSpi.java2
-rw-r--r--libjava/java/security/SignedObject.java2
-rw-r--r--libjava/java/security/Signer.java2
-rw-r--r--libjava/java/security/UnrecoverableKeyException.java4
-rw-r--r--libjava/java/security/UnresolvedPermission.java4
-rw-r--r--libjava/java/security/acl/AclNotFoundException.java4
-rw-r--r--libjava/java/security/acl/LastOwnerException.java4
-rw-r--r--libjava/java/security/acl/NotOwnerException.java4
-rw-r--r--libjava/java/security/cert/CertPath.java6
-rw-r--r--libjava/java/security/cert/CertPathBuilderException.java4
-rw-r--r--libjava/java/security/cert/CertPathValidatorException.java4
-rw-r--r--libjava/java/security/cert/CertStoreException.java4
-rw-r--r--libjava/java/security/cert/CertificateFactory.java2
-rw-r--r--libjava/java/security/interfaces/DSAPrivateKey.java5
-rw-r--r--libjava/java/security/interfaces/DSAPublicKey.java5
-rw-r--r--libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java1
-rw-r--r--libjava/java/security/interfaces/RSAPrivateCrtKey.java2
-rw-r--r--libjava/java/security/interfaces/RSAPrivateKey.java2
-rw-r--r--libjava/java/security/interfaces/RSAPublicKey.java2
-rw-r--r--libjava/java/text/BreakIterator.java4
-rw-r--r--libjava/java/text/ChoiceFormat.java4
-rw-r--r--libjava/java/text/CollationElementIterator.java11
-rw-r--r--libjava/java/text/CollationKey.java6
-rw-r--r--libjava/java/text/Collator.java4
-rw-r--r--libjava/java/text/DateFormat.java224
-rw-r--r--libjava/java/text/DateFormatSymbols.java4
-rw-r--r--libjava/java/text/DecimalFormat.java3
-rw-r--r--libjava/java/text/DecimalFormatSymbols.java2
-rw-r--r--libjava/java/text/FieldPosition.java4
-rw-r--r--libjava/java/text/Format.java4
-rw-r--r--libjava/java/text/MessageFormat.java194
-rw-r--r--libjava/java/text/NumberFormat.java2
-rw-r--r--libjava/java/text/ParseException.java4
-rw-r--r--libjava/java/text/ParsePosition.java4
-rw-r--r--libjava/java/text/RuleBasedCollator.java101
-rw-r--r--libjava/java/text/SimpleDateFormat.java906
-rw-r--r--libjava/java/text/StringCharacterIterator.java4
-rw-r--r--libjava/java/util/AbstractCollection.java4
-rw-r--r--libjava/java/util/AbstractList.java925
-rw-r--r--libjava/java/util/AbstractMap.java6
-rw-r--r--libjava/java/util/AbstractSequentialList.java4
-rw-r--r--libjava/java/util/AbstractSet.java4
-rw-r--r--libjava/java/util/ArrayList.java4
-rw-r--r--libjava/java/util/Arrays.java8
-rw-r--r--libjava/java/util/BitSet.java6
-rw-r--r--libjava/java/util/Calendar.java283
-rw-r--r--libjava/java/util/Collection.java4
-rw-r--r--libjava/java/util/Collections.java58
-rw-r--r--libjava/java/util/Comparator.java6
-rw-r--r--libjava/java/util/ConcurrentModificationException.java6
-rw-r--r--libjava/java/util/Currency.java10
-rw-r--r--libjava/java/util/Date.java3
-rw-r--r--libjava/java/util/EmptyStackException.java6
-rw-r--r--libjava/java/util/Enumeration.java6
-rw-r--r--libjava/java/util/EventListener.java4
-rw-r--r--libjava/java/util/EventListenerProxy.java4
-rw-r--r--libjava/java/util/EventObject.java4
-rw-r--r--libjava/java/util/GregorianCalendar.java816
-rw-r--r--libjava/java/util/HashMap.java6
-rw-r--r--libjava/java/util/HashSet.java4
-rw-r--r--libjava/java/util/Hashtable.java4
-rw-r--r--libjava/java/util/IdentityHashMap.java12
-rw-r--r--libjava/java/util/Iterator.java4
-rw-r--r--libjava/java/util/LinkedHashMap.java2
-rw-r--r--libjava/java/util/LinkedHashSet.java4
-rw-r--r--libjava/java/util/LinkedList.java6
-rw-r--r--libjava/java/util/List.java4
-rw-r--r--libjava/java/util/ListIterator.java4
-rw-r--r--libjava/java/util/ListResourceBundle.java4
-rw-r--r--libjava/java/util/Map.java6
-rw-r--r--libjava/java/util/MissingResourceException.java4
-rw-r--r--libjava/java/util/NoSuchElementException.java6
-rw-r--r--libjava/java/util/Observable.java6
-rw-r--r--libjava/java/util/Observer.java4
-rw-r--r--libjava/java/util/Properties.java4
-rw-r--r--libjava/java/util/PropertyPermission.java25
-rw-r--r--libjava/java/util/PropertyPermissionCollection.java4
-rw-r--r--libjava/java/util/RandomAccess.java4
-rw-r--r--libjava/java/util/Set.java4
-rw-r--r--libjava/java/util/SimpleTimeZone.java334
-rw-r--r--libjava/java/util/SortedMap.java4
-rw-r--r--libjava/java/util/SortedSet.java4
-rw-r--r--libjava/java/util/Stack.java6
-rw-r--r--libjava/java/util/StringTokenizer.java4
-rw-r--r--libjava/java/util/TimeZone.java1
-rw-r--r--libjava/java/util/Timer.java11
-rw-r--r--libjava/java/util/TooManyListenersException.java4
-rw-r--r--libjava/java/util/TreeMap.java10
-rw-r--r--libjava/java/util/TreeSet.java4
-rw-r--r--libjava/java/util/Vector.java4
-rw-r--r--libjava/java/util/jar/JarFile.java736
-rw-r--r--libjava/java/util/logging/FileHandler.java4
-rw-r--r--libjava/java/util/logging/Level.java4
-rw-r--r--libjava/java/util/logging/Logger.java16
-rw-r--r--libjava/java/util/logging/natLogger.cc55
-rw-r--r--libjava/java/util/prefs/AbstractPreferences.java2
-rw-r--r--libjava/java/util/prefs/BackingStoreException.java4
-rw-r--r--libjava/java/util/prefs/InvalidPreferencesFormatException.java5
-rw-r--r--libjava/java/util/prefs/Preferences.java6
-rw-r--r--libjava/javax/accessibility/Accessible.java4
-rw-r--r--libjava/javax/accessibility/AccessibleAction.java4
-rw-r--r--libjava/javax/accessibility/AccessibleBundle.java4
-rw-r--r--libjava/javax/accessibility/AccessibleComponent.java4
-rw-r--r--libjava/javax/accessibility/AccessibleContext.java2
-rw-r--r--libjava/javax/accessibility/AccessibleEditableText.java4
-rw-r--r--libjava/javax/accessibility/AccessibleExtendedComponent.java4
-rw-r--r--libjava/javax/accessibility/AccessibleExtendedTable.java4
-rw-r--r--libjava/javax/accessibility/AccessibleHyperlink.java4
-rw-r--r--libjava/javax/accessibility/AccessibleHypertext.java4
-rw-r--r--libjava/javax/accessibility/AccessibleIcon.java4
-rw-r--r--libjava/javax/accessibility/AccessibleKeyBinding.java4
-rw-r--r--libjava/javax/accessibility/AccessibleRelation.java2
-rw-r--r--libjava/javax/accessibility/AccessibleRelationSet.java2
-rw-r--r--libjava/javax/accessibility/AccessibleResourceBundle.java4
-rw-r--r--libjava/javax/accessibility/AccessibleRole.java2
-rw-r--r--libjava/javax/accessibility/AccessibleSelection.java4
-rw-r--r--libjava/javax/accessibility/AccessibleState.java2
-rw-r--r--libjava/javax/accessibility/AccessibleStateSet.java2
-rw-r--r--libjava/javax/accessibility/AccessibleTable.java4
-rw-r--r--libjava/javax/accessibility/AccessibleTableModelChange.java4
-rw-r--r--libjava/javax/accessibility/AccessibleText.java4
-rw-r--r--libjava/javax/accessibility/AccessibleValue.java4
-rw-r--r--libjava/javax/crypto/SecretKey.java1
-rw-r--r--libjava/javax/imageio/IIOException.java4
-rw-r--r--libjava/javax/imageio/ImageIO.java12
-rw-r--r--libjava/javax/imageio/spi/IIOServiceProvider.java4
-rw-r--r--libjava/javax/imageio/spi/ImageInputStreamSpi.java4
-rw-r--r--libjava/javax/imageio/spi/ImageOutputStreamSpi.java4
-rw-r--r--libjava/javax/imageio/spi/ImageReaderWriterSpi.java4
-rw-r--r--libjava/javax/imageio/spi/ImageTranscoderSpi.java4
-rw-r--r--libjava/javax/imageio/spi/RegisterableService.java4
-rw-r--r--libjava/javax/imageio/spi/ServiceRegistry.java10
-rw-r--r--libjava/javax/imageio/stream/IIOByteBuffer.java4
-rw-r--r--libjava/javax/imageio/stream/ImageInputStream.java4
-rw-r--r--libjava/javax/imageio/stream/ImageOutputStream.java4
-rw-r--r--libjava/javax/naming/Binding.java4
-rw-r--r--libjava/javax/naming/CannotProceedException.java4
-rw-r--r--libjava/javax/naming/CompositeName.java4
-rw-r--r--libjava/javax/naming/CompoundName.java4
-rw-r--r--libjava/javax/naming/LinkException.java4
-rw-r--r--libjava/javax/naming/LinkRef.java4
-rw-r--r--libjava/javax/naming/NameClassPair.java4
-rw-r--r--libjava/javax/naming/Reference.java4
-rw-r--r--libjava/javax/naming/ReferralException.java4
-rw-r--r--libjava/javax/naming/directory/Attribute.java4
-rw-r--r--libjava/javax/naming/directory/AttributeModificationException.java4
-rw-r--r--libjava/javax/naming/directory/Attributes.java4
-rw-r--r--libjava/javax/naming/directory/BasicAttributes.java30
-rw-r--r--libjava/javax/naming/directory/DirContext.java4
-rw-r--r--libjava/javax/naming/directory/ModificationItem.java4
-rw-r--r--libjava/javax/naming/directory/SearchControls.java4
-rw-r--r--libjava/javax/naming/directory/SearchResult.java4
-rw-r--r--libjava/javax/naming/event/EventContext.java4
-rw-r--r--libjava/javax/naming/event/EventDirContext.java4
-rw-r--r--libjava/javax/naming/event/NamespaceChangeListener.java4
-rw-r--r--libjava/javax/naming/event/NamingExceptionEvent.java4
-rw-r--r--libjava/javax/naming/event/NamingListener.java4
-rw-r--r--libjava/javax/naming/event/ObjectChangeListener.java4
-rw-r--r--libjava/javax/naming/ldap/Control.java4
-rw-r--r--libjava/javax/naming/ldap/ExtendedResponse.java4
-rw-r--r--libjava/javax/naming/ldap/HasControls.java4
-rw-r--r--libjava/javax/naming/ldap/LdapContext.java4
-rw-r--r--libjava/javax/naming/ldap/UnsolicitedNotification.java4
-rw-r--r--libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java4
-rw-r--r--libjava/javax/naming/ldap/UnsolicitedNotificationListener.java4
-rw-r--r--libjava/javax/naming/spi/DirectoryManager.java4
-rw-r--r--libjava/javax/naming/spi/ResolveResult.java4
-rw-r--r--libjava/javax/naming/spi/Resolver.java4
-rw-r--r--libjava/javax/print/attribute/standard/Chromaticity.java86
-rw-r--r--libjava/javax/print/attribute/standard/Destination.java82
-rw-r--r--libjava/javax/print/attribute/standard/MediaPrintableArea.java146
-rw-r--r--libjava/javax/print/attribute/standard/MediaSize.java114
-rw-r--r--libjava/javax/security/auth/Subject.java4
-rw-r--r--libjava/javax/security/auth/callback/Callback.java1
-rw-r--r--libjava/javax/security/auth/callback/CallbackHandler.java1
-rw-r--r--libjava/javax/security/auth/callback/ChoiceCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/ConfirmationCallback.java5
-rw-r--r--libjava/javax/security/auth/callback/LanguageCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/NameCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/PasswordCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/TextInputCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/TextOutputCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/UnsupportedCallbackException.java1
-rw-r--r--libjava/javax/security/sasl/Sasl.java11
-rw-r--r--libjava/javax/security/sasl/SaslServerFactory.java4
-rw-r--r--libjava/javax/swing/AbstractAction.java8
-rw-r--r--libjava/javax/swing/AbstractButton.java56
-rw-r--r--libjava/javax/swing/AbstractCellEditor.java2
-rw-r--r--libjava/javax/swing/AbstractListModel.java79
-rw-r--r--libjava/javax/swing/AbstractSet.java103
-rw-r--r--libjava/javax/swing/ActionMap.java90
-rw-r--r--libjava/javax/swing/BoundedRangeModel.java219
-rw-r--r--libjava/javax/swing/ComponentInputMap.java10
-rw-r--r--libjava/javax/swing/DebugGraphics.java612
-rw-r--r--libjava/javax/swing/DefaultBoundedRangeModel.java45
-rw-r--r--libjava/javax/swing/DefaultButtonModel.java10
-rw-r--r--libjava/javax/swing/DefaultCellEditor.java2
-rw-r--r--libjava/javax/swing/DefaultComboBoxModel.java17
-rw-r--r--libjava/javax/swing/DefaultDesktopManager.java59
-rw-r--r--libjava/javax/swing/DefaultListCellRenderer.java7
-rw-r--r--libjava/javax/swing/DefaultListModel.java24
-rw-r--r--libjava/javax/swing/DefaultListSelectionModel.java31
-rw-r--r--libjava/javax/swing/DefaultSingleSelectionModel.java69
-rw-r--r--libjava/javax/swing/ImageIcon.java13
-rw-r--r--libjava/javax/swing/InputMap.java90
-rw-r--r--libjava/javax/swing/InternalFrameFocusTraversalPolicy.java (renamed from libjava/gnu/java/awt/peer/gtk/GtkArg.java)34
-rw-r--r--libjava/javax/swing/JApplet.java80
-rw-r--r--libjava/javax/swing/JButton.java150
-rw-r--r--libjava/javax/swing/JCheckBox.java56
-rw-r--r--libjava/javax/swing/JCheckBoxMenuItem.java2
-rw-r--r--libjava/javax/swing/JComboBox.java247
-rw-r--r--libjava/javax/swing/JComponent.java63
-rw-r--r--libjava/javax/swing/JEditorPane.java83
-rw-r--r--libjava/javax/swing/JFileChooser.java6
-rw-r--r--libjava/javax/swing/JFormattedTextField.java103
-rw-r--r--libjava/javax/swing/JFrame.java6
-rw-r--r--libjava/javax/swing/JInternalFrame.java25
-rw-r--r--libjava/javax/swing/JLabel.java107
-rw-r--r--libjava/javax/swing/JLayeredPane.java61
-rw-r--r--libjava/javax/swing/JList.java253
-rw-r--r--libjava/javax/swing/JMenu.java48
-rw-r--r--libjava/javax/swing/JMenuBar.java50
-rw-r--r--libjava/javax/swing/JMenuItem.java22
-rw-r--r--libjava/javax/swing/JOptionPane.java4
-rw-r--r--libjava/javax/swing/JPasswordField.java12
-rw-r--r--libjava/javax/swing/JPopupMenu.java108
-rw-r--r--libjava/javax/swing/JProgressBar.java33
-rw-r--r--libjava/javax/swing/JRadioButton.java8
-rw-r--r--libjava/javax/swing/JRootPane.java61
-rw-r--r--libjava/javax/swing/JScrollBar.java100
-rw-r--r--libjava/javax/swing/JScrollPane.java74
-rw-r--r--libjava/javax/swing/JSlider.java56
-rw-r--r--libjava/javax/swing/JSpinner.java9
-rw-r--r--libjava/javax/swing/JTabbedPane.java30
-rw-r--r--libjava/javax/swing/JTable.java355
-rw-r--r--libjava/javax/swing/JTextArea.java6
-rw-r--r--libjava/javax/swing/JTextField.java59
-rw-r--r--libjava/javax/swing/JToggleButton.java9
-rw-r--r--libjava/javax/swing/JToolBar.java288
-rw-r--r--libjava/javax/swing/JTree.java743
-rw-r--r--libjava/javax/swing/JViewport.java24
-rw-r--r--libjava/javax/swing/JWindow.java286
-rw-r--r--libjava/javax/swing/KeyStroke.java29
-rw-r--r--libjava/javax/swing/LayoutFocusTraversalPolicy.java (renamed from libjava/javax/swing/DefaultCellRenderer.java)71
-rw-r--r--libjava/javax/swing/LookAndFeel.java6
-rw-r--r--libjava/javax/swing/MenuSelectionManager.java8
-rw-r--r--libjava/javax/swing/OverlayLayout.java2
-rw-r--r--libjava/javax/swing/RepaintManager.java2
-rw-r--r--libjava/javax/swing/ScrollPaneLayout.java16
-rw-r--r--libjava/javax/swing/SizeRequirements.java2
-rw-r--r--libjava/javax/swing/SortingFocusTraversalPolicy.java333
-rw-r--r--libjava/javax/swing/SpinnerDateModel.java237
-rw-r--r--libjava/javax/swing/SpinnerListModel.java4
-rw-r--r--libjava/javax/swing/SwingUtilities.java173
-rw-r--r--libjava/javax/swing/Timer.java17
-rw-r--r--libjava/javax/swing/TransferHandler.java102
-rw-r--r--libjava/javax/swing/UIDefaults.java128
-rw-r--r--libjava/javax/swing/UIManager.java8
-rw-r--r--libjava/javax/swing/ViewportLayout.java15
-rw-r--r--libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java4
-rw-r--r--libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java4
-rw-r--r--libjava/javax/swing/event/EventListenerList.java6
-rw-r--r--libjava/javax/swing/event/MouseInputAdapter.java144
-rw-r--r--libjava/javax/swing/plaf/basic/BasicButtonListener.java18
-rw-r--r--libjava/javax/swing/plaf/basic/BasicButtonUI.java11
-rw-r--r--libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java2
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java1
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java1
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboBoxUI.java26
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboPopup.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicEditorPaneUI.java (renamed from libjava/gnu/java/awt/peer/gtk/GtkArgList.java)43
-rw-r--r--libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java8
-rw-r--r--libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicLabelUI.java12
-rw-r--r--libjava/javax/swing/plaf/basic/BasicListUI.java2
-rw-r--r--libjava/javax/swing/plaf/basic/BasicLookAndFeel.java2
-rw-r--r--libjava/javax/swing/plaf/basic/BasicMenuBarUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicMenuItemUI.java8
-rw-r--r--libjava/javax/swing/plaf/basic/BasicMenuUI.java10
-rw-r--r--libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java20
-rw-r--r--libjava/javax/swing/plaf/basic/BasicProgressBarUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java8
-rw-r--r--libjava/javax/swing/plaf/basic/BasicRootPaneUI.java18
-rw-r--r--libjava/javax/swing/plaf/basic/BasicScrollBarUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java60
-rw-r--r--libjava/javax/swing/plaf/basic/BasicSliderUI.java132
-rw-r--r--libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java1
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java16
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java4
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTableUI.java43
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTextPaneUI.java11
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTextUI.java34
-rw-r--r--libjava/javax/swing/plaf/basic/BasicToolBarUI.java259
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTreeUI.java5
-rw-r--r--libjava/javax/swing/plaf/metal/DefaultMetalTheme.java143
-rw-r--r--libjava/javax/swing/plaf/metal/MetalLookAndFeel.java288
-rw-r--r--libjava/javax/swing/plaf/metal/MetalTheme.java259
-rw-r--r--libjava/javax/swing/table/DefaultTableCellRenderer.java6
-rw-r--r--libjava/javax/swing/table/DefaultTableColumnModel.java370
-rw-r--r--libjava/javax/swing/table/DefaultTableModel.java367
-rw-r--r--libjava/javax/swing/table/JTableHeader.java14
-rw-r--r--libjava/javax/swing/table/TableColumn.java377
-rw-r--r--libjava/javax/swing/table/TableColumnModel.java198
-rw-r--r--libjava/javax/swing/table/TableModel.java152
-rw-r--r--libjava/javax/swing/text/AbstractDocument.java163
-rw-r--r--libjava/javax/swing/text/DefaultEditorKit.java77
-rw-r--r--libjava/javax/swing/text/DefaultStyledDocument.java195
-rw-r--r--libjava/javax/swing/text/EditorKit.java20
-rw-r--r--libjava/javax/swing/text/GapContent.java2
-rw-r--r--libjava/javax/swing/text/JTextComponent.java173
-rw-r--r--libjava/javax/swing/text/PasswordView.java32
-rw-r--r--libjava/javax/swing/text/PlainDocument.java36
-rw-r--r--libjava/javax/swing/text/PlainView.java26
-rw-r--r--libjava/javax/swing/text/Position.java8
-rw-r--r--libjava/javax/swing/text/Segment.java12
-rw-r--r--libjava/javax/swing/text/StringContent.java304
-rw-r--r--libjava/javax/swing/text/StyledEditorKit.java522
-rw-r--r--libjava/javax/swing/text/TextAction.java69
-rw-r--r--libjava/javax/swing/text/Utilities.java4
-rw-r--r--libjava/javax/swing/text/View.java153
-rw-r--r--libjava/javax/swing/text/ViewFactory.java2
-rw-r--r--libjava/javax/swing/tree/DefaultMutableTreeNode.java1865
-rw-r--r--libjava/javax/swing/tree/MutableTreeNode.java103
-rw-r--r--libjava/javax/swing/tree/TreeCellEditor.java30
-rw-r--r--libjava/javax/swing/undo/UndoManager.java4
-rw-r--r--libjava/javax/swing/undo/UndoableEditSupport.java6
-rw-r--r--libjava/javax/transaction/HeuristicCommitException.java4
-rw-r--r--libjava/javax/transaction/HeuristicMixedException.java4
-rw-r--r--libjava/javax/transaction/HeuristicRollbackException.java4
-rw-r--r--libjava/javax/transaction/InvalidTransactionException.java4
-rw-r--r--libjava/javax/transaction/NotSupportedException.java4
-rw-r--r--libjava/javax/transaction/RollbackException.java4
-rw-r--r--libjava/javax/transaction/Status.java4
-rw-r--r--libjava/javax/transaction/Synchronization.java4
-rw-r--r--libjava/javax/transaction/SystemException.java4
-rw-r--r--libjava/javax/transaction/Transaction.java4
-rw-r--r--libjava/javax/transaction/TransactionManager.java4
-rw-r--r--libjava/javax/transaction/TransactionRequiredException.java4
-rw-r--r--libjava/javax/transaction/TransactionRolledbackException.java4
-rw-r--r--libjava/javax/transaction/UserTransaction.java4
-rw-r--r--libjava/javax/transaction/xa/XAException.java4
-rw-r--r--libjava/javax/transaction/xa/XAResource.java4
-rw-r--r--libjava/javax/transaction/xa/Xid.java4
-rw-r--r--libjava/javax/xml/XMLConstants.java4
-rw-r--r--libjava/javax/xml/datatype/DatatypeConfigurationException.java4
-rw-r--r--libjava/javax/xml/datatype/DatatypeConstants.java4
-rw-r--r--libjava/javax/xml/datatype/DatatypeFactory.java4
-rw-r--r--libjava/javax/xml/datatype/Duration.java4
-rw-r--r--libjava/javax/xml/datatype/XMLGregorianCalendar.java4
-rw-r--r--libjava/javax/xml/namespace/NamespaceContext.java4
-rw-r--r--libjava/javax/xml/namespace/QName.java4
-rw-r--r--libjava/javax/xml/parsers/DocumentBuilder.java5
-rw-r--r--libjava/javax/xml/parsers/DocumentBuilderFactory.java7
-rw-r--r--libjava/javax/xml/parsers/FactoryConfigurationError.java4
-rw-r--r--libjava/javax/xml/parsers/ParserConfigurationException.java4
-rw-r--r--libjava/javax/xml/parsers/SAXParser.java4
-rw-r--r--libjava/javax/xml/parsers/SAXParserFactory.java4
-rw-r--r--libjava/javax/xml/transform/ErrorListener.java4
-rw-r--r--libjava/javax/xml/transform/OutputKeys.java4
-rw-r--r--libjava/javax/xml/transform/Result.java4
-rw-r--r--libjava/javax/xml/transform/Source.java4
-rw-r--r--libjava/javax/xml/transform/SourceLocator.java4
-rw-r--r--libjava/javax/xml/transform/Templates.java4
-rw-r--r--libjava/javax/xml/transform/Transformer.java4
-rw-r--r--libjava/javax/xml/transform/TransformerConfigurationException.java4
-rw-r--r--libjava/javax/xml/transform/TransformerException.java4
-rw-r--r--libjava/javax/xml/transform/TransformerFactory.java4
-rw-r--r--libjava/javax/xml/transform/TransformerFactoryConfigurationError.java4
-rw-r--r--libjava/javax/xml/transform/URIResolver.java4
-rw-r--r--libjava/javax/xml/transform/dom/DOMLocator.java4
-rw-r--r--libjava/javax/xml/transform/dom/DOMResult.java4
-rw-r--r--libjava/javax/xml/transform/dom/DOMSource.java4
-rw-r--r--libjava/javax/xml/transform/sax/SAXResult.java4
-rw-r--r--libjava/javax/xml/transform/sax/SAXSource.java4
-rw-r--r--libjava/javax/xml/transform/sax/SAXTransformerFactory.java7
-rw-r--r--libjava/javax/xml/transform/sax/TemplatesHandler.java4
-rw-r--r--libjava/javax/xml/transform/sax/TransformerHandler.java4
-rw-r--r--libjava/javax/xml/transform/stream/StreamResult.java4
-rw-r--r--libjava/javax/xml/transform/stream/StreamSource.java4
-rw-r--r--libjava/javax/xml/validation/Schema.java4
-rw-r--r--libjava/javax/xml/validation/SchemaFactory.java4
-rw-r--r--libjava/javax/xml/validation/TypeInfoProvider.java4
-rw-r--r--libjava/javax/xml/validation/Validator.java4
-rw-r--r--libjava/javax/xml/validation/ValidatorHandler.java4
-rw-r--r--libjava/javax/xml/xpath/XPathConstants.java4
-rw-r--r--libjava/javax/xml/xpath/XPathException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathExpression.java4
-rw-r--r--libjava/javax/xml/xpath/XPathExpressionException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFactory.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFactoryConfigurationException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFunction.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFunctionException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFunctionResolver.java4
-rw-r--r--libjava/jawt.c19
-rw-r--r--libjava/jni.cc53
-rw-r--r--libjava/jni/classpath/classpath_jawt.h1
-rw-r--r--libjava/jni/classpath/jcl.c144
-rw-r--r--libjava/jni/classpath/jcl.h64
-rw-r--r--libjava/jni/classpath/jnilink.c117
-rw-r--r--libjava/jni/classpath/jnilink.h86
-rw-r--r--libjava/jni/classpath/primlib.c463
-rw-r--r--libjava/jni/classpath/primlib.h102
-rw-r--r--libjava/jni/gtk-peer/gdkfont.h25
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c2
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c115
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c250
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c696
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c18
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c505
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c187
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c328
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c16
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c2
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c12
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c18
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c10
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c109
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c90
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c44
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c15
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c8
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c307
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c2
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c2
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c4
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c366
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c185
-rw-r--r--libjava/jni/gtk-peer/gthread-jni.c4
-rw-r--r--libjava/jni/gtk-peer/gtk_jawt.c34
-rw-r--r--libjava/jni/gtk-peer/gtkcairopeer.h13
-rw-r--r--libjava/jni/gtk-peer/gtkpeer.h13
-rw-r--r--libjava/libltdl/ChangeLog4
-rw-r--r--libjava/link.cc155
-rw-r--r--libjava/posix-threads.cc26
-rw-r--r--libjava/prims.cc331
-rw-r--r--libjava/testsuite/Makefile.in4
-rw-r--r--libjava/testsuite/lib/libjava.exp4
-rw-r--r--libjava/testsuite/libjava.jni/jni.exp114
-rw-r--r--libjava/testsuite/libjava.lang/PR20056.java13
-rw-r--r--libjava/testsuite/libjava.lang/PR20056.out1
-rw-r--r--libjava/testsuite/libjava.lang/bytearray.java10
-rw-r--r--libjava/testsuite/libjava.lang/bytearray.out2
-rw-r--r--libjava/verify.cc96
-rw-r--r--libmudflap/ChangeLog4
-rw-r--r--libobjc/ChangeLog30
-rw-r--r--libobjc/Makefile.in8
-rw-r--r--libobjc/archive.c135
-rw-r--r--libobjc/encoding.c21
-rw-r--r--libobjc/hash.c34
-rw-r--r--libobjc/hash_compat.c97
-rw-r--r--libobjc/init.c11
-rw-r--r--libobjc/libobjc.def7
-rw-r--r--libobjc/objc/hash.h129
-rw-r--r--libobjc/selector.c16
-rw-r--r--libstdc++-v3/ChangeLog556
-rw-r--r--libstdc++-v3/acconfig.h2
-rw-r--r--libstdc++-v3/acinclude.m44
-rw-r--r--libstdc++-v3/config.h.in2
-rw-r--r--libstdc++-v3/config/cpu/cris/atomicity.h10
-rw-r--r--libstdc++-v3/config/cpu/s390/atomicity.h3
-rw-r--r--libstdc++-v3/config/linker-map.gnu8
-rw-r--r--libstdc++-v3/config/os/bsd/darwin/os_defines.h138
-rw-r--r--libstdc++-v3/config/os/mingw32/os_defines.h5
-rw-r--r--libstdc++-v3/config/os/newlib/os_defines.h5
-rwxr-xr-xlibstdc++-v3/configure19
-rw-r--r--libstdc++-v3/configure.ac11
-rw-r--r--libstdc++-v3/configure.host4
-rw-r--r--libstdc++-v3/docs/doxygen/user.cfg.in10
-rw-r--r--libstdc++-v3/docs/html/ext/howto.html6
-rw-r--r--libstdc++-v3/docs/html/faq/index.html3
-rw-r--r--libstdc++-v3/include/Makefile.am15
-rw-r--r--libstdc++-v3/include/Makefile.in15
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc6
-rw-r--r--libstdc++-v3/include/bits/c++config2
-rw-r--r--libstdc++-v3/include/bits/fstream.tcc19
-rw-r--r--libstdc++-v3/include/bits/locale_facets.tcc6
-rw-r--r--libstdc++-v3/include/bits/stl_algobase.h9
-rw-r--r--libstdc++-v3/include/ext/bitmap_allocator.h34
-rw-r--r--libstdc++-v3/include/std/std_complex.h36
-rw-r--r--libstdc++-v3/include/std/std_fstream.h18
-rw-r--r--libstdc++-v3/include/tr1/bind_iterate.h78
-rw-r--r--libstdc++-v3/include/tr1/bind_repeat.h192
-rw-r--r--libstdc++-v3/include/tr1/boost_shared_ptr.h981
-rw-r--r--libstdc++-v3/include/tr1/functional1103
-rw-r--r--libstdc++-v3/include/tr1/functional_iterate.h923
-rw-r--r--libstdc++-v3/include/tr1/hashtable1431
-rw-r--r--libstdc++-v3/include/tr1/memory51
-rw-r--r--libstdc++-v3/include/tr1/mu_iterate.h51
-rw-r--r--libstdc++-v3/include/tr1/ref_fwd.h59
-rw-r--r--libstdc++-v3/include/tr1/ref_wrap_iterate.h44
-rw-r--r--libstdc++-v3/include/tr1/repeat.h636
-rw-r--r--libstdc++-v3/include/tr1/tuple1654
-rw-r--r--libstdc++-v3/include/tr1/tuple_iterate.h158
-rw-r--r--libstdc++-v3/include/tr1/type_traits429
-rw-r--r--libstdc++-v3/include/tr1/type_traits_fwd.h13
-rw-r--r--libstdc++-v3/include/tr1/unordered_map166
-rw-r--r--libstdc++-v3/include/tr1/unordered_set160
-rw-r--r--libstdc++-v3/include/tr1/utility9
-rw-r--r--libstdc++-v3/libsupc++/eh_alloc.cc14
-rw-r--r--libstdc++-v3/libsupc++/eh_catch.cc23
-rw-r--r--libstdc++-v3/libsupc++/eh_globals.cc44
-rw-r--r--libstdc++-v3/libsupc++/eh_terminate.cc47
-rw-r--r--libstdc++-v3/libsupc++/eh_throw.cc5
-rw-r--r--libstdc++-v3/libsupc++/new_handler.cc20
-rw-r--r--libstdc++-v3/libsupc++/new_op.cc25
-rw-r--r--libstdc++-v3/libsupc++/new_opnt.cc13
-rw-r--r--libstdc++-v3/libsupc++/pure.cc12
-rw-r--r--libstdc++-v3/libsupc++/unwind-cxx.h1
-rwxr-xr-xlibstdc++-v3/scripts/check_performance38
-rw-r--r--libstdc++-v3/scripts/gen_bind_includers.pl30
-rw-r--r--libstdc++-v3/scripts/gen_includers.pl108
-rw-r--r--libstdc++-v3/src/bitmap_allocator.cc22
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc4
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc1
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc79
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc79
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc9
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc9
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc4
-rw-r--r--libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc8
-rw-r--r--libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc10
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp90
-rw-r--r--libstdc++-v3/testsuite/testsuite_abi.cc1
-rw-r--r--libstdc++-v3/testsuite/testsuite_tr1.h94
-rw-r--r--libstdc++-v3/testsuite/thread/pthread1.cc2
-rw-r--r--libstdc++-v3/testsuite/thread/pthread2.cc2
-rw-r--r--libstdc++-v3/testsuite/thread/pthread3.cc2
-rw-r--r--libstdc++-v3/testsuite/thread/pthread4.cc2
-rw-r--r--libstdc++-v3/testsuite/thread/pthread5.cc2
-rw-r--r--libstdc++-v3/testsuite/thread/pthread6.cc2
-rw-r--r--libstdc++-v3/testsuite/thread/pthread7-rope.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/is_function.cc1
-rwxr-xr-xltconfig3
-rw-r--r--ltmain.sh102
-rw-r--r--maintainer-scripts/ChangeLog4
-rw-r--r--more-hdrs/assert.h71
-rw-r--r--more-hdrs/float.h9
-rw-r--r--more-hdrs/inttypes.h299
-rw-r--r--more-hdrs/machine/limits.h11
-rw-r--r--more-hdrs/ppc_intrinsics.h1026
-rw-r--r--more-hdrs/stdarg.h6
-rw-r--r--more-hdrs/stdbool.h10
-rw-r--r--more-hdrs/stdint.h245
-rw-r--r--more-hdrs/varargs.h6
-rw-r--r--order-files/HOW TO BUILD170
-rw-r--r--order-files/cc1.order1188
-rw-r--r--order-files/cc1obj.order2163
-rw-r--r--order-files/cc1objplus.order952
-rw-r--r--order-files/cc1plus.order1356
-rw-r--r--zlib/ChangeLog4
2708 files changed, 236462 insertions, 97851 deletions
diff --git a/CHANGES.Apple b/CHANGES.Apple
new file mode 100644
index 00000000000..98427f492d2
--- /dev/null
+++ b/CHANGES.Apple
@@ -0,0 +1,2 @@
+#APPLE LOCAL file metadata (see Apple_Local_GCC_Change_Organization/Metadata in Wiki)
+
diff --git a/ChangeLog b/ChangeLog
index e238396cf40..4b4eb0a8ee1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,65 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-20 Geoffrey Keating <geoffk@apple.com>
+
+ * configure.in (powerpc-*-darwin*): Add ${libgcj} to noconfigdirs.
+ * configure: Regenerated.
+
+2005-04-19 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure: Regenerate after change to config/acx.m4.
+
+2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
+
+ * MAINTAINERS (Various Maintainers): Add self as i18n maintainer.
+
+2005-04-04 Thomas Koenig <Thomas.Koenig@online.de>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2005-03-25 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.in (RPATH_ENVVAR): Set to DYLD_LIBRARY_PATH on Darwin.
+ * configure: Regenerate.
+
+2005-03-14 Feng Wang <fengwang@nudt.edu.cn>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2005-03-03 David Ayers <d.ayers@inode.at>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2005-03-01 Alexandre Oliva <aoliva@redhat.com>
+
+ PR libgcj/20160
+ * ltmain.sh: Avoid creating archives with components that have
+ duplicate basenames.
+
+2005-02-24 James A. Morrison <phython@gcc.gnu.org>
+
+ * MAINTAINERS (Language Front Ends Maintainers): Add myself as
+ treelang maintainer.
+ (Write After Approval): Remove myself.
+
+2005-02-23 Paul Schlie <schlie@comcast.net>
+
+ * configure.in: Allow darwin targeted ports to build tk, itcl and
+ libgui.
+ * configure: Regenerate.
+
+2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR libgcj/10353
+ * configure.in (noconfigdirs) <sparc-*-solaris2.[0-6]>: Add libgcj.
+ * configure: Regenerate.
+
+2005-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
2005-02-10 Ian Lance Taylor <ian@airs.com>
* MAINTAINERS: Update my e-mail address.
diff --git a/ChangeLog.apple-ppc b/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..05562d05a2a
--- /dev/null
+++ b/ChangeLog.apple-ppc
@@ -0,0 +1,317 @@
+2005-06-19 Geoffrey Keating <geoffk@apple.com>
+
+ * more-hdrs/stdint.h (INT32_C): Don't use ##L.
+ (UINT32_C): Likewise.
+
+2005-06-16 Geoffrey Keating <geoffk@apple.com>
+
+ * build_gcc: Use -Werror when building with ourself.
+
+2005-06-01 Mike Stump <mrs@apple.com>
+
+ Merge in chablis-branchpoint->chablis-merge-2005-06-01.
+
+2005-05-18 Mike Stump <mrs@apple.com>
+
+ Radar 4110533
+ * build-gcc: Don't strip shell scripts, chgrp to wheel when done,
+ and rebuild less when doing a rebuild.
+
+2005-04-13 Geoff Keating <dalej@apple.com>
+
+ Radar 4071716
+ * build_gcc (I386_CPU): Make prescott the default.
+
+2005-04-11 Geoffrey Keating <geoffk@apple.com>
+
+ * build_gcc: Use I386_CPU each time something is configured
+ to target x86.
+ (I386_CPU): New.
+
+2005-02-28 Stan Shebs <shebs@apple.com>
+ Ian Ollmann <iano@apple.com>
+
+ Radar 3951637
+ * more-hdrs/ppc_intrinsic.h: Make 64-bit friendly:
+ (__lwbrx, __rlwnm, __rlwinm, __mulhw, __mulhwu): Use int
+ instead of long for 32-bit values.
+ (__cntlzw, __cntlzd): Use existing builtins.
+
+2005-01-24 Robert Bowdidge <bowdidge@apple.com>
+ Radar 3971437
+ * build_gcc: run nmedit on libcc_kext.a so that dependent kexts can
+ all have their own copy of (say) divdi3. This returns libcc_kext.a to
+ how things were done in gcc-3.3.
+
+2005-01-18 Stuart Hastings <stuart@apple.com>
+
+ Radar 3939868
+ * more-hdrs/stdint.h (intmax_t, unitmax_t): Derive from __INTMAX_TYPE__,
+ __UINTMAX_TYPE__ if available.
+
+2004-12-16 Stan Shebs <shebs@apple.com>
+
+ * build_gcc: Lipo in the ppc64 libstdc++ dylib if it exists.
+
+2004-12-16 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3920294
+ * more-hdrs/float.h: Replace by stub for Metrowerks.
+ Radar 3920035
+ * more-hdrs/stdbool.h: Add Metrowerks stub-ness.
+
+2004-12-06 Mike Stump <mrs@apple.com>
+
+ Radar 3891870
+ * more-hdrs/machine/limits.h: Instead of fixincluding files we own,
+ just fix it.
+ * build_gcc (more-hdrs): Fix up nested header support.
+ * fixincludes/fixinc.in: Add apple local markers, avoid 64bit hack
+ when possible.
+
+2004-11-27 Stan Shebs <shebs@apple.com>
+
+ libstdc++-v3/configure.ac: Always treat Darwin 8.x targets as if they
+ were cross-compiling.
+ libstdc++-v3/configure: Regenerate.
+
+2004-11-23 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3893528
+ * build_gcc: Don't install any header from more-hdrs
+ that Libc has already provided.
+
+ * fixincludes/inclhack.def (darwin_stdint_guards_intn): Remove
+ _DECLARED from end of guard macro names.
+ (darwin_stdint_guards_intptr): Likewise.
+ (darwin_stdint_guards_uintptr): Likewise.
+ * more-hdrs/stdint.h: Likewise.
+ * fixincludes/fixincl.x: Regenerate.
+
+2004-11-23 Stan Shebs <shebs@apple.com>
+
+ * build_gcc: Detect Darwin version (7 vs 8), and append
+ version to all the "-apple-darwin" pathnames.
+ * libstdc++-v3/configure: Remove bringup hack.
+
+2004-11-13 Stan Shebs <shebs@apple.com>
+
+ * fixincludes/fixinc.in: Revive 64-bit bandaid.
+
+2004-11-12 Matt Austern <austern@apple.com>
+
+ * build_gcc: don't install more_hdrs/assert.h on Tiger systems.
+
+2004-11-09 Geoffrey Keating <geoffk@apple.com>
+
+ * build_gcc: lipo the libexec/.../install-tools files together.
+
+2004-11-08 Geoffrey Keating <geoffk@apple.com>
+
+ * fixincludes/inclhack.def (darwin_macosx_deployment_target): New.
+ * fixincludes/fixincl.x: Regenerate.
+
+2004-11-05 Geoffrey Keating <geoffk@apple.com>
+
+ * GNUmakefile: Say 'install' and 'clean' are phony targets.
+
+2004-11-02 Stan Shebs <shebs@apple.com>
+
+ * configure.in: Disable target-libobjc on Darwin for now.
+ * configure: Likewise.
+
+2004-10-13 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3476357
+ * more-hdrs/stdint.h: Don't include sys/types.h. Define
+ int*_t, intptr_t, and uintptr_t here, with guards. Define
+ WINT_{MIN,MAX} and SIG_ATOMIC_{MIN,MAX}.
+ * fixincludes/inclhack.def (darwin_stdint_guards_intn): New.
+ (darwin_stdint_guards_intptr): New.
+ (darwin_stdint_guards_uintptr): New.
+ * fixincludes/fixincl.x: Regenerate.
+
+2004-10-11 Devang Patel <dpatel@apple.com>
+
+ Radar 3208244
+ * more-hdrs/ppc_intrinsics.h (__lwsync, __cntlzd, __dcbzl,
+ __fctidz, __fctid, __fcfid, __nop): New.
+
+2004-10-07 Robert Bowdidge <bowdidge@apple.com>
+
+ * build_gcc: remove directories /usr/libexec/gcc/darwin/arch/4.0 and
+ /usr/lib/gcc/darwin/arch/4.0 that are no longer needed.
+
+2004-10-07 Robert Bowdidge <bowdidge@apple.com>
+
+ * build_gcc: Remove earlier patch for copying cpp into
+ /usr/libexec/blah. /usr/bin/cpp will now use gcc -E to do preprocessing
+ rather than each compiler's cpp.
+
+2004-09-27 Robert Bowdidge <bowdidge@apple.com>
+
+ * build_gcc: change cp -r to cp -R to ensure we copy symbolic links
+
+2004-09-27 Robert Bowdidge <bowdidge@apple.com>
+
+ * build_gcc: set install names and dependent library references
+ to the major name for each of the gcc-produced dylibs.
+
+2004-09-24 Stan Shebs <shebs@apple.com>
+
+ * more-hdrs/ppc_intrinsics.h: Test __ppc64__ also.
+
+2004-09-23 Stan Shebs <shebs@apple.com>
+
+ * build_gcc: Detect version 3.5.0, enable 64-bit bringup option
+ and disable dylib building, also manually copy ppc64 archives
+ to their preferred locations, and don't run strip on 64-bit
+ archives.
+ * libstdc++-v3/configure: Filter out -m64 option when configuring,
+ then add back for compilation proper.
+
+2004-09-23 Robert Bowdidge <bowdidge@apple.com>
+
+ Change build_gcc so it continues to put cpp in
+ /usr/libexec/gcc/darwin/(architecture)/(version).
+ This is neeed so /usr/bin/cpp will continue to work when changing
+ to gcc-3.5 or gcc-4.0. Radar 3763777.
+
+2004-09-23 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3784876
+ Merge in updated ObjC/ObjC++ bits from mainline.
+
+2004-09-15 Mike Stump <mrs@apple.com>
+
+ Merge in changes from mainline, from apple-ppc-merge-20040821
+ to apple-ppc-merge-20040907.
+
+2004-08-29 Andrew Pinski <apinski@apple.com>
+
+ * more-hdrs/ppc_intrinsics.h (__mfspr): Put __extension
+ in front of the statement expression.
+
+2004-08-23 Mike Stump <mrs@apple.com>
+
+ Merge in changes from mainline, from apple-ppc-mergepoint-20040816
+ to apple-ppc-merge-20040821.
+
+2004-08-19 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3719364
+ * more-hdrs/inttypes.h: Update copyright notice, revise handling
+ of macros for which Jaguar doesn't support the C99 modifiers,
+ correct *FASTn for n < 32, correct *PTR.
+
+2004-08-19 Geoffrey Keating <geoffk@apple.com>
+
+ * more-hdrs/stdint.h: Correct some typos in comments.
+
+2004-08-18 Matthew Sachs <msachs@apple.com>
+
+ * Merge apple-ppc-branch 2004-08-17\ 03:07:00Z
+ with -j lno-merge-20040718 -j apple-ppc-mergepoint-20040816 .
+ The first tag is the point on mainline which LNO merged from right
+ before our last merge with lno-branch; the second point is
+ HEAD:2004-08-15T17:16:16Z
+
+2004-08-16 Matthew Sachs <msachs@apple.com>
+
+ * Mark unmarked APPLE LOCAL changes and remove some ancient cruft
+
+2004-08-05 Robert Bowdidge <bowdidge@apple.com>
+
+ * Merge lno-branch as of 2004-07-19\ 00:00Z into
+ apple-ppc-branch. The merged compiler is tagged as
+ after-lno-20040719-merge-to-apple-ppc. The pre-merge compiler is
+ tagged as before-lno-20040719-merge-to-apple-ppc. The merge point
+ is tagged as apple-ppc-merge-20040719 on the lno-branch.
+
+ Merge lno-branch as of 2004:05:29 00:00 GMT into
+ apple-ppc-branch. Pre-merge apple-ppc-branch
+ is tagged as: before-lno-20040530-merge-to-apple-ppc
+
+2004-07-28 Matt Austern <austern@apple.com>
+
+ Backport radar 3721776 patch from FSF mainline.
+ * config/darwin.c (darwin_one_byte_bool): New global variable.
+ * config/darwin.h (darwin_one_byte_bool): Declare.
+ (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.)
+ * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
+ value of darwin_one_byte_bool.
+ * doc/invoke.texi: Document -mone-byte-bool flag.
+ * testsuite/gcc.dg/darwin-bool-1.c: New test.
+ * testsuite/gcc.dg/darwin-bool-2.c: New test.
+
+2004-07-26 Matt Austern <austern@apple.com>
+
+ Radar 3739315 and 3739328
+ * Forward-port dead-code-stripping changes in config/darwin.[ch]
+ from 3.3.
+
+2004-07-13 Matt Austern <austern@apple.com>
+
+ Radar 3278745, 3419910, 3432773
+ * Fix small problems in more-hdrs/stdint.h and more-hdrs/inttypes.h
+
+2004-06-25 Matthew Sachs <msachs@apple.com>
+
+ Radar 3693177
+ * Clean up APPLE LOCAL markers.
+
+2004-06-17 Jon Ziegler <jonz@apple.com>
+
+ Radar 3693664
+ * Update pointers to source code in documentation to reflect new location.
+
+2004-06-16 Jon Ziegler <jonz@apple.com>
+
+ Radar 3619941
+ * Revert to apple-gcc-1762 plus Dorit/Devang's 2004-06-15 patch.
+
+2004-06-15 Jon Ziegler <jonz@apple.com>
+
+ Radar 3646298
+ * build_gcc: run ranlib on archives after strip(1)
+
+2004-06-07 Jon Ziegler <jonz@apple.com>
+
+ Radar 3678979
+ * build_gcc: Change directory for developer docs.
+
+2005-06-04 Fariborz Jahanian <fjahanian@apple.com>
+
+ Merge lno-branch as of 2004:05:29 00:00 GMT into
+ apple-ppc-branch. Pre-merge apple-ppc-branch
+ is tagged as: before-lno-20040530-merge-to-apple-ppc
+
+2004-05-11 Devang Patel <dpatel@apple.com>
+
+ * build_gcc: Revert previous fix for g++ man page.
+ Fix name of installed g++ name page.
+
+2004-05-06 Mike Stump <mrs@apple.com>
+
+ * build_gcc: Fix manual page name for g++.1.
+
+2004-04-29 Robert Bowdidge <bowdidge@apple.com>
+
+ Radar 3628023
+ * build_gcc: correctly lipo gcov
+
+2004-04-29 Devang Patel <dpatel@apple.com>
+
+ Merge lno-branch as of 2004:04:18 00:00 into
+ apple-ppc-branch.
+
+2004-04-22 Devang Patel <dpatel@apple.com>
+
+ Radar 3401402 and 3511029
+ * build_gcc: Add support to build darwin driver.
+
+2004-04-21 Robert Bowdidge <bowdidge@apple.com>
+
+ * build_gcc: Add --disable-libmudflap to the list of options to
+ configure. Option needed to keep gcc building on recent internal
+ builds of the OS. [Radar 3630321]
diff --git a/ChangeLog.lno b/ChangeLog.lno
new file mode 100644
index 00000000000..262a07e9bd2
--- /dev/null
+++ b/ChangeLog.lno
@@ -0,0 +1,10 @@
+2004-05-19 Daniel Jacobowitz <drow@false.org>
+ Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.tpl (configure-build-[+module+]): Export aliases
+ for build targets.
+ (configure-target-[+module+]): Likewise for target modules.
+ (configure-[+module+], configure-gcc, configure-stage1-gcc)
+ (configure-stage2-gcc, configure-stage3-gcc): Likewise for host
+ modules.
+ * Makefile.in: Regenerated.
diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 00000000000..5b9f57d4926
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,90 @@
+# APPLE LOCAL file build machinery
+# Apple GCC Compiler Makefile for use by buildit.
+#
+# This makefile is intended only for use with B&I buildit. For "normal"
+# builds use the conventional FSF top-level makefile.
+#
+# You can specify TARGETS=ppc (or i386) on the buildit command line to
+# limit the build to just one target. The default is for ppc and i386.
+# The compiler targetted at this host gets built anyway, but not installed
+# unless it's listed in TARGETS.
+
+# Include the set of standard Apple makefile definitions.
+ifndef CoreOSMakefiles
+CoreOSMakefiles = $(MAKEFILEPATH)/CoreOS
+endif
+include $(CoreOSMakefiles)/Standard/Standard.make
+
+# Enable Apple extensions to (gnu)make.
+USE_APPLE_PB_SUPPORT = all
+
+HOSTS = ppc i386 # `arch`
+targets = echo $${TARGETS:-'ppc i386'}
+TARGETS := $(shell $(targets))
+
+RC_ARCHS = $(HOSTS)
+
+SRCROOT = .
+
+SRC = `cd $(SRCROOT) && pwd | sed s,/private,,`
+OBJROOT = $(SRC)/obj
+SYMROOT = $(OBJROOT)/../sym
+DSTROOT = $(OBJROOT)/../dst
+
+PREFIX = /usr
+
+#######################################################################
+
+install: $(OBJROOT) $(SYMROOT) $(DSTROOT)
+ cd $(OBJROOT) && \
+ $(SRC)/build_gcc "$(RC_ARCHS)" "$(TARGETS)" \
+ $(SRC) $(PREFIX) $(DSTROOT) $(SYMROOT)
+
+# installhdrs does nothing, because the headers aren't useful until
+# the compiler is installed.
+installhdrs:
+
+# We build and install in one shell script.
+build:
+
+installsrc:
+ @echo
+ @echo ++++++++++++++++++++++
+ @echo + Installing sources +
+ @echo ++++++++++++++++++++++
+ @echo
+ if [ $(SRCROOT) != . ]; then \
+ $(PAX) -rw . $(SRCROOT); \
+ fi
+ find -d "$(SRCROOT)" \( -type d -a -name CVS -o \
+ -type f -a -name .DS_Store -o \
+ -name \*~ -o -name .\#\* \) \
+ -exec rm -rf {} \;
+
+#######################################################################
+
+clean:
+ @echo
+ @echo ++++++++++++
+ @echo + Cleaning +
+ @echo ++++++++++++
+ @echo
+ @if [ -d $(OBJROOT) -a "$(OBJROOT)" != / ]; then \
+ echo '*** DELETING ' $(OBJROOT); \
+ rm -rf $(OBJROOT); \
+ fi
+ @if [ -d $(SYMROOT) -a "$(SYMROOT)" != / ]; then \
+ echo '*** DELETING ' $(SYMROOT); \
+ rm -rf $(SYMROOT); \
+ fi
+ @if [ -d $(DSTROOT) -a "$(DSTROOT)" != / ]; then \
+ echo '*** DELETING ' $(DSTROOT); \
+ rm -rf $(DSTROOT); \
+ fi
+
+#######################################################################
+
+$(OBJROOT) $(SYMROOT) $(DSTROOT):
+ mkdir -p $@
+
+.PHONY: install installsrc clean
diff --git a/MAINTAINERS b/MAINTAINERS
index 0dafd18ed94..2872a49a06a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -122,6 +122,7 @@ objective-c Stan Shebs shebs@apple.com
objective-c Ovidiu Predescu ovidiu@cup.hp.com
objective-c Ziemowit Laski zlaski@apple.com
treelang Tim Josling tej@melbpc.org.au
+treelang James A. Morrison phython@gcc.gnu.org
Various Maintainers
@@ -161,6 +162,7 @@ build status lists Janis Johnson janis187@us.ibm.com
config.sub/config.guess Ben Elliston config-patches@gnu.org
basic block reordering Jason Eckhardt jle@rice.edu
i18n Philipp Thomas pthomas@suse.de
+i18n Joseph Myers jsm@polyomino.org.uk
diagnostic messages Gabriel Dos Reis gdr@integrable-solutions.net
libiberty DJ Delorie dj@redhat.com
libiberty Ian Lance Taylor ian@airs.com
@@ -193,6 +195,7 @@ in changes outside of the parts of the compiler they maintain.
Mark G. Adams mark.g.adams@sympatico.ca
Matt Austern austern@apple.com
+David Ayers d.ayers@inode.at
Giovanni Bajo giovannibajo@gcc.gnu.org
Scott Bambrough scottb@netwinder.org
Wolfgang Bangerth bangerth@dealii.org
@@ -216,6 +219,7 @@ Chandra Chavva cchavva@redhat.com
William Cohen wcohen@redhat.com
R. Kelley Cook kcook@gcc.gnu.org
Christian Cornelssen ccorn@cs.tu-berlin.de
+François-Xavier Coudert coudert@clipper.ens.fr
David Daney ddaney@avtrex.com
Bud Davis bdavis9659@comcast.net
Chris Demetriou cgd@broadcom.com
@@ -229,6 +233,7 @@ Brian Ford ford@vss.fsi.com
Kaveh Ghazi ghazi@caip.rutgers.edu
Matthew Gingell gingell@gnat.com
Anthony Green green@redhat.com
+Doug Gregor doug.gregor@gmail.com
Richard Guenther rguenth@gcc.gnu.org
Laurent Guerby laurent@guerby.net
Mostafa Hagog hagog@gcc.gnu.org
@@ -242,11 +247,13 @@ Daniel Jacobowitz dan@debian.org
Andreas Jaeger aj@suse.de
Fariborz Jahanian fjahanian@apple.com
Klaus Kaempf kkaempf@progis.de
+Steve Kargl sgk@troutmask.apl.washington.edu
Brendan Kehoe brendan@zen.org
Mumit Khan khan@xraylith.wisc.edu
Matthias Klose doko@debian.org
Jeff Knaggs jknaggs@redhat.com
Michael Koch konqueror@gmx.de
+Thomas Koenig Thomas.Koenig@online.de
Matt Kraai kraai@ftbfs.org
Scott Robert Ladd scott.ladd@coyotegulch.com
Razya Ladelsky razya@gcc.gnu.org
@@ -268,7 +275,6 @@ Greg McGary gkm@gnu.org
Adam Megacz adam@xwt.org
Alan Modra amodra@bigpond.net.au
Catherine Moore clm@redhat.com
-James A. Morrison ja2morri@uwaterloo.ca
Dorit Naishlos dorit@il.ibm.com
Adam Nemet anemet@lnxw.com
Dan Nicolaescu dann@ics.uci.edu
@@ -287,6 +293,7 @@ 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 Rosen irar@il.ibm.com
Ira Ruben ira@apple.com
Douglas Rupp rupp@gnat.com
Matthew Sachs msachs@apple.com
@@ -305,6 +312,7 @@ Caroline Tice ctice@apple.com
Michael Tiemann tiemann@redhat.com
Jonathan Wakely redi@gcc.gnu.org
Krister Walfridsson cato@df.lth.se
+Feng Wang fengwang@nudt.edu.cn
John Wehle john@feith.com
Florian Weimer fw@deneb.enyo.de
Mark Wielaard mark@gcc.gnu.org
diff --git a/README.Apple b/README.Apple
new file mode 100644
index 00000000000..fc850b66c87
--- /dev/null
+++ b/README.Apple
@@ -0,0 +1,464 @@
+APPLE LOCAL file documentation
+
+This file describes Apple's version of GCC 3.x modified for Darwin /
+Mac OS X. Although Apple's stated policy is to contribute all of its
+GCC work to the FSF GCC mainstream, at any given moment there will be
+changes that are permanently unacceptable for FSF GCC, in need of
+rework before acceptance, or that we simply aren't ready to send in.
+This version of GCC contains all those changes.
+
+In keeping with provision 2a of the GPL, each Apple change is marked
+with a comment saying "APPLE LOCAL", followed by optional words "begin",
+"end", or "file", followed by a short phrase describing the change
+generally ("AltiVec" for instance, if the change is related to AltiVec
+support), followed by an optional date in the form yyyy-mm-dd,
+optionally followed by the initials or email address of the person
+making the change. The words "begin" and "end" indicate that the
+comments delimit a multi-line change, while the word "file" indicates
+that the entire file is an Apple addition. Additional explanatory
+comments should be in a separate comment.
+
+You may also isolate Apple's changes by diffing with the FSF mainline
+sources as of the date mentioned in gcc/version.c; this date is
+updated in the FSF repository daily, and is preserved when we import
+FSF sources into Apple's repository (the tag for the imported source
+is "fsf-cvs").
+
+The primary purpose of this version of GCC is to be the main system
+compiler for Darwin and Mac OS X. However, since additions such as
+PFE precompiled headers and Objective-C++ are of interest on other
+platforms, we have generally conditionalized Mac-specific code so that
+the compiler will build and run elsewhere. You may however run into
+mistakes; please let us know about them and we will
+fix these if possible.
+
+NOTE! It's best to assume that this code has been updated from FSF
+development sources recently, and has received very little testing
+before being imported. There is a good chance that your favorite
+program will not compile or run when compiled with this program. The
+version of the compiler that ships with OS X is the standard for
+correctness; any time something works with that compiler but fails
+with this one is probably a bug, and should be reported to
+darwin-development@lists.apple.com.
+
+PREREQUISITES
+
+Presumably if you're reading this, you've figured out how to get the
+sources. :-) But just to be complete, these sources are available from
+the Darwin repository at opensource.apple.com, CVS module "gcc",
+branch "apple-ppc-branch". See
+http://www.opensource.apple.com/tools/cvs if this isn't enough info
+yet.
+
+If you want C++ exception handling to work, you will need a modified
+crt1.o. (crt1.o is the bit of code that sets up for execution and
+calls your program's main().) The modified crt1.o is standard in 10.2,
+but 10.1, you will need to set it up yourself.
+
+If you can't get a modified crt1.o from somebody else, you can patch a
+copy of the sources to the "Csu" project and build it yourself. The
+patch is included in this directory, as "csu-patch". The build is
+easy, just say "make" in the Csu directory, and then copy the crt1.o
+to /usr/lib/crt1.o (as usual, it's prudent to keep around a copy of
+the original crt1.o, just in case). You will need to have built the
+"cctools" project as well, in order to get the helper tool "indr"
+(which is expected to be installed as /usr/local/bin/indr).
+
+BUILDING, THE APPLE WAY
+
+To build things the Apple way, just say (in the source directory)
+
+ mkdir -p build/obj build/dst build/sym
+ gnumake install RC_OS=macos RC_ARCHS=ppc TARGETS=ppc \
+ SRCROOT=`pwd` OBJROOT=`pwd`/build/obj \
+ DSTROOT=`pwd`/build/dst SYMROOT=`pwd`/build/sym
+
+This will configure and then do a full bootstrap build, with all the
+results going into the subdirectory build/ that you created. The
+final results will be in the "dest root" directory build/dst, in the
+form of an image of the installed directory structure. The drivers
+and other user-visible tools have a "3" suffixed, so for instance the
+driver is /usr/bin/gcc3, and the demangler is /usr/bin/c++filt3.
+
+To install the results, become root and do
+
+ ditto build/dst /
+
+Various knobs and switches are available, but even so, the Apple
+makefile machinery is mainly designed for mass builds of all the
+projects that make up Darwin and/or Mac OS X, and is thus not as
+flexible as the standard GCC build process.
+
+To build for i386 Darwin, set TARGETS=i386. To build fat, set
+RC_ARCHS='i386 ppc' TARGETS='i386 ppc'. Note that you must have a
+complete set of fat libraries and i386-targeting cctools for this
+all to work.
+
+You can set the four *ROOT variables to point anywhere, but they must
+always be absolute pathnames.
+
+This way of building may or may not work on non-Macs, and if it
+doesn't, you're on your own.
+
+BUILDING, THE FSF WAY
+
+In general, standard GCC procedures work for building this version.
+We recommend that you build in a separate objdir; create a sibling
+to the toplevel source dir, call it whatever you want, cd into it,
+and say "../gcc/configure". This way you can have more than one
+build using the same set of sources.
+
+If you insist on building in the source directory using "./configure",
+the GNUmakefile that supports the Apple build process (see above) will
+shadow your makefile, and you will need to override this behavior by
+saying "make -f Makefile" (or by moving GNUmakefile out of the way).
+
+For instance:
+
+ mkdir darwin
+ cd darwin
+ ../configure --prefix=/tmp/testplace
+ make bootstrap
+ make install
+
+does a full build, plus two generations of self-compilation for
+GCC proper, then an install.
+
+To avoid building every language, use --enable-languages argument to
+configure. For instance, '--enable-languages=objc,c++,objc++' skips
+the Fortran and Java compilers. (The C compiler will always be
+built.)
+
+To build an x86 cross-compiler, add "--target=i386-darwin" to the
+configure line. The x86 compiler works, but to make it useful you
+will need libraries and such from x86 Darwin.
+
+There is a ProjectBuilder (PB) project also, but at the moment it's
+only useful for browsing. We expect to make it useful for building
+eventually. To keep it out of the way until then, it's in
+"pbproj/gcc3.pbproj".
+
+Tools built the FSF way are *not* usually going to be dropin
+replacements for already-installed tools built the Apple way, because
+search paths and other details will be different.
+
+TESTING
+
+This package includes a copy of the test framework of DejaGNU, for
+convenience in running GCC's testsuite. If you've done a make
+from the top, DejaGNU will have been built already; otherwise at
+the top of the objdir say "make all-dejagnu".
+
+Once the DejaGNU is available, you can cd into the gcc objdir and type
+"make check" to run all the tests. This will take several hours. You
+can do things like "make check-gcc" just to run C tests, or "make
+check-g77" for Fortran tests, which take less time.
+
+USING
+
+While this compiler can be used with 10.1, it is aimed at 10.2
+(Jaguar) and later releases. Built correctly, using the "Apple way",
+it can be a dropin replacement for the 10.2 system compiler.
+
+* Compatibility Issues
+
+This section lists areas where this compiler behaves differently
+from other versions of GCC.
+
+Built-in functions are not automatically declared
+
+GCC knows about some functions, such as memcpy, so it can generate
+better code for them. However, 2.95.2 let C++ programs refer to them
+without ever declaring them. The current C++ compiler now does the
+right thing by requiring you to declare all functions.
+
+alloca is a built-in function
+
+Normally only __builtin_alloca is a built-in function, and user
+code #defines alloca as __builtin_alloca. This version of GCC
+also recognizes alloca as built-in, and compiles it into a single
+stack adjustment.
+
+va_arg cannot take chars, shorts, or floats
+
+You can no longer pass "char", "short", or "float" as the second
+argument to va_arg() when using varargs.
+
+#pragma once is silently accepted
+
+GCC handles #pragma once correctly, but the standard compiler warns
+that the pragma is obsolete. This version of GCC is silent by
+default. Use -Wpragma-once to see the warnings again.
+
+#import is silently accepted
+
+GCC handles #import correctly, but the standard compiler warns that
+the directive is obsolete. This version of GCC is silent by default.
+Use -Wimport to see the warnings again.
+
+Extra tokens after #endif and friends are silently accepted
+
+Standard GCC now warns about extra tokens after #endif and other
+preprocessor directives. This version of GCC is silent by default.
+Use -Wextra-tokens to see these warnings.
+
+Files with missing newlines are silently accepted
+
+Standard GCC warns about files that do not end with a newline.
+This seems to be common in Apple headers and sources, so this
+version does not warn. Use -Wnewline-eof to see these warnings.
+
+-fpermissive by default
+
+The C++ compiler is normally strict about adherence to the language
+standard, but the -fpermissive flag is available to convert many
+errors into warnings. Apple's compiler is set to be permissive
+by default. This is temporary as of 1/27/02.
+
+GNU stddef.h not installed
+
+If built the Apple way, GCC's stddef.h is installed as "gnu-stddef.h",
+and so by default you will get the /usr/include/stddef.h that comes
+with Darwin.
+
+libobjc not built
+
+Since GNU libobjc and its headers would mask the system library
+and headers, this version of GCC does not build or install them
+if targeting Darwin.
+
+Objective-C structure returns
+
+When using the NeXT runtime, methods returning structures will work,
+while they will fail when using FSF GCC.
+
+All assembly files are preprocessed
+
+FSF GCC only runs the C preprocessor on files with extension .S, and
+does not run it on files ending in .s. Apple GCC runs the
+preprocessor on .s files also.
+
+Bug reporting address different
+
+If the compiler gets an internal error, it will ask you to report the
+error to Apple, rather than to the FSF.
+
+* Extensions
+
+This section briefly describes Apple's extensions to GCC. Further
+details may be found in the GCC manual (usually).
+
+__APPLE_CC__
+
+The preprocessor symbol __APPLE_CC__ identifies a specific "build
+number" of the compiler. These numbers are finer-grained than the
+generic GCC version numbers, and for gcc3 they range from 1000 up
+(2.95.2 versions are in the 900s).
+
+Framework includes
+
+Headers may be found by pathname in the usual way, or as part of
+"frameworks" which are assemblages of library/headers/resources. For
+instance, #include <IOKit/IOTypes.h> will be found as
+/System/Library/Frameworks/IOKit.framework/Headers/IOTypes.h. The
+-F<pathname> adds <pathname> as a place to search for frameworks; by
+default, the compiler will look in /System/Library/Frameworks,
+/Library/Frameworks, and /Local/Library/Frameworks.
+
+Frameworks may also have subframeworks, and the framework include
+machinery will find headers in subframeworks if the outer framework
+(known as an "umbrella framework) is being included.
+
+Objective-C++
+
+Objective-C++ is C++ extended to understand Objective-C constructs.
+The two object models are separate and "mutually oblivious", so C++
+code generally works unchanged, as well as Objective-C code that
+conforms to C++ restrictions (similar to the restrictions placed on
+plain C code by C++). Objective-C++ files must have the extension .mm
+or .M (but note that .M will conflict with .m files on HFS
+filesystems, so .mm is preferred).
+
+Pascal strings
+
+The flag -fpascal-strings enables the use of "\p" to designate a
+length byte, originally used for C-Pascal interoperation on Macs, but
+now mostly a human-appendix-like compatibility option.
+
+Macintosh alignment
+
+The options -malign-mac68k, -malign-power, and -malign-natural are
+available to control whether the alignment of structure fields
+follows 68K, PowerPC, or "natural" rules. These options are
+useful to applications which need to be binary-compatible with
+very old Mac applications, libraries, or resources. The "natural"
+alignment mode may be useful to applications whose performance is
+sensitive to misaligned data accesses.
+
+In addition, #pragma options align=<option> is available, where
+<option> may be mac68k, native, natural, packed, power, or reset.
+(native == power on a PowerPC.) The pragma effectively pushes the
+alignment onto a stack, while align=reset pops the alignment, thus
+allowing nested pragmas to work. #pragma pack is also available and
+works with the same stack.
+
+private extern symbols
+
+You can declare symbols as "private extern", which means that they
+behave as extern until linking, then they are made private, and are
+not visible outside the library. To declare something as private
+extern, add "__private_extern__" where you might normally say
+"extern".
+
+Coalescing
+
+Using "-fcoalesce", "-fcoalesce-templates" and "-fweak-coalesced"
+flags can reduce the amount of duplicated code. Coalescing and C++
+template coalescing are enabled by default, at least if a
+recent-enough cctools version (10.2 or later) has been installed.
+
+-dynamiclib
+
+You can build shared libraries (aka dylibs) by using -dynamiclib.
+This invokes libtool (not to be confused with GNU libtool) instead of
+ld. See the libtool man page for more detail on options that can be
+passed to libtool.
+
+Linker flags
+
+This version of GCC understands the plethora of linker-related flags,
+such as -framework, -flat_namespace, etc. The functionality should be
+the same as for 2.95.2 and as documented in the linker man page; any
+discrepancies are probably bugs.
+
+AltiVec
+
+The complete AltiVec programming interface, as defined in the PIM, is
+available. Use -faltivec to enable it.
+
+Note that the PIM, section 2.1 mentions that AltiVec data types using
+the 'long' keyword (i.e., vector [un]signed long) are deprecated and
+that the 'int' should be used. The compiler will thus issue a warning
+for these cases. The warning may be suppressed by specifying
+-Wno-altivec-long-deprecated.
+
+-mdynamic-no-pic
+
+The option -mdynamic-no-pic generates code that make references to
+PIC, but is not itself position-independent and thus more efficient.
+This option is suitable for applications but not dylibs.
+
+unavailable attribute
+
+The attribute "unavailable" is available :-) to declare that a
+symbol is not available.
+
+weak_import attribute
+
+The attribute weak_import is available to declare that a symbol
+should be designated as a weak reference.
+
+CALL_ON_LOAD and CALL_ON_UNLOAD pragmas
+
+The pragmas CALL_ON_LOAD and CALL_ON_UNLOAD allow you to declare
+that a given name is the name of a function to be called when
+a module is loaded or unloaded by the system.
+
+IOKit support
+
+There are a number of changes to support the building of IOKit drivers.
+
+The option -findirect-virtual-calls forces all virtual calls to go
+through the vtable, while the option -fterminated-vtables adds a null
+termination to vtables. -fapple-kext turns on all of these, plus any
+future options that may be needed to compile kexts.
+
+There is a library libcc_kext.a that is libgcc.a compiled static and
+including only routines that are allowed in the kernel.
+
+The PowerPC-only option -mlong-branch is available to generate full
+32-bit jumps, since kexts may not be loaded at addresses close to the
+kernel.
+
+Dependency file names
+
+When you use -MD to output dependencies, you can also use
+-dependency-file <name> to write the dependencies into the file named
+<name>. (By default, they go into <inputfilename>.d .)
+
+Fat builds
+
+You can compile for a specific target type by using -arch <archname>.
+Multiple -arch options also work, and result in "fat binaries". -arch
+works with -c, -precomp (to make fat precomps), but not -S or
+-save-temps.
+
+At present, only "i386" and "ppc" may be used as architecture names.
+Note that building for a specific arch will only work if you have
+assembler and libraries for that arch.
+
+-ObjC, -ObjC++
+
+These options set the default language to be Objective-C and
+Objective-C++, respectively. Note that this behavior is slightly
+different from the -x options, because -x affects only the files
+appearing after it on the command line, while -ObjC and -ObjC++ affect
+all input files. Nevertheless, -x is standard and thus preferable.
+(-fobjc works and is equivalent to -ObjC, but it's even more
+deprecated.)
+
+-Wmost
+
+The option -Wmost is equivalent to -Wall -Wno-parentheses. It is
+present for compatibility with some existing Mac OS X projects.
+
+-Wno-#warnings
+
+The option -Wno-#warnings suppresses warnings issued by #warning.
+
+-Wno-altivec-long-deprecated
+
+The option -Wno-altivec-long-deprecated suppresses warnings about
+'int' being preferred to 'long' in AltiVec vector types.
+
+-Werror suppression
+
+The environment variable QA_DISABLE_WERROR, if set (to any value),
+disables the effect of -Werror on the command line; warnings will
+not result in an error.
+
+PB indexing
+
+If the environment variable PB_INDEX_SOCKET_PORT is defined, then the
+compiler will output PB indexing information to that port. The option
+-fdebug-gen-index will do the same port, but sending the information
+to standard output, for debugging indexing.
+
+Header mapfiles
+
+This is the support for a PB feature where actual pathnames for
+headers come from a given file rather than being searched for in the
+various include paths. It's not useful outside of the PB environment.
+
+QA_OVERRIDE_GCC3_OPTIONS environment variable
+
+Allows overriding, adding, or changing options sent to toplev.c. This
+allows you, for example, to override the -O setting that the driver
+sends to the command line. Documentation is in toplev.c.
+
+* Miscellaneous Issues
+
+GCC uses a syntax for rlwinm instructions that is only supported
+by the assembler in 10.1 or later. If you need to run 10.0, and
+can't build cctools-364, then you can try to dig up the workaround;
+versions of gcc3 before December 2001 have it, look for references
+to rlwinm in gcc/config/rs6000/rs6000.md.
+
+TO DO
+
+This section lists specific features that we're still working on.
+
+Make fat building work when the compiler is built the FSF way.
+
+Implement floating point precision control (-ffppc) for i386.
+
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index b9c7c46ae05..a5a7c90d4a9 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,28 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-12 Richard Henderson <rth@redhat.com>
+
+ * include/private/gcconfig.h (alpha-linux): Use LINUX_STACKBOTTOM.
+
+2005-03-01 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Makefile.in, include/Makefile.in: Regenerate.
+
+2005-02-26 Richard Earnshaw <rearnsha@arm.com>
+
+ * dyn_load.c: On NetBSD, include machine/elf_machdep.h and define
+ ELFSIZE in terms of ARCH_ELFSIZE (back-ported from gc7.0alpha1).
+
+2005-02-15 Bryce McKinlay <mckinlay@redhat.com>
+
+ PR libgcj/19823
+ * configure.host: Set gc_use_mmap on *-linux*.
+ * configure.ac: Define USE_MMAP if gc_use_mmap is set.
+ * include/private/gc_priv.h: Include gc_config.h.
+ * configure, include/gc_config.h.in: Rebuilt.
+
2005-02-07 Hans Boehm <Hans.Boehm@hp.com>
* allchblk.c (GC_allochblk_nth): Dont overlook available space if
diff --git a/boehm-gc/Makefile.in b/boehm-gc/Makefile.in
index a81e3d0b466..6f842205efe 100644
--- a/boehm-gc/Makefile.in
+++ b/boehm-gc/Makefile.in
@@ -77,7 +77,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
-CONFIG_HEADER = $(top_builddir)/include/gc_config.h
+CONFIG_HEADER = $(top_builddir)/include/gc_config.h \
+ $(top_builddir)/include/gc_ext_config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
@@ -100,7 +101,7 @@ am_gctest_OBJECTS = tests/test.$(OBJEXT)
gctest_OBJECTS = $(am_gctest_OBJECTS)
gctest_DEPENDENCIES = ./libgcjgc.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_builddir)/include
depcomp =
am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
diff --git a/boehm-gc/configure b/boehm-gc/configure
index 36243d4c58b..b205d328c03 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -6558,6 +6558,14 @@ _ACEOF
fi
fi;
+if test "${gc_use_mmap}" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_MMAP 1
+_ACEOF
+
+fi
+
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
diff --git a/boehm-gc/configure.ac b/boehm-gc/configure.ac
index 208a9160872..dfb0e17e261 100644
--- a/boehm-gc/configure.ac
+++ b/boehm-gc/configure.ac
@@ -446,6 +446,10 @@ AC_ARG_ENABLE(gc-debug,
esac
fi])
+if test "${gc_use_mmap}" = "yes"; then
+ AC_DEFINE(USE_MMAP, 1, [use MMAP instead of sbrk to get new memory])
+fi
+
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
diff --git a/boehm-gc/configure.host b/boehm-gc/configure.host
index a98a0a7cb30..97f4dacb6de 100644
--- a/boehm-gc/configure.host
+++ b/boehm-gc/configure.host
@@ -18,8 +18,11 @@
# It sets the following shell variables:
# gc_cflags Special CFLAGS to use when building
+# gc_use_mmap Set to "yes" on platforms where mmap should be used instead
+# of sbrk. This will define USE_MMAP.
gc_cflags=""
+gc_use_mmap=
# We should set -fexceptions if we are using gcc and might be used
# inside something like gcj. This is the zeroth approximation:
@@ -37,6 +40,12 @@ else
esac
fi
+case "${host}" in
+ *-linux*)
+ gc_use_mmap=yes
+ ;;
+esac
+
case "${target_optspace}:${host}" in
yes:*)
gc_cflags="${gc_cflags} -Os"
diff --git a/boehm-gc/dyn_load.c b/boehm-gc/dyn_load.c
index dfe0a3c87e8..c5139aa80a8 100644
--- a/boehm-gc/dyn_load.c
+++ b/boehm-gc/dyn_load.c
@@ -80,6 +80,11 @@
# define l_name lm_name
#endif
+#if defined(NETBSD)
+# include <machine/elf_machdep.h>
+# define ELFSIZE ARCH_ELFSIZE
+#endif
+
#if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
(defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
(defined(NETBSD) && defined(__ELF__)) || defined(HURD)
diff --git a/boehm-gc/include/Makefile.in b/boehm-gc/include/Makefile.in
index 66aacac205a..4c823287b32 100644
--- a/boehm-gc/include/Makefile.in
+++ b/boehm-gc/include/Makefile.in
@@ -39,14 +39,15 @@ host_triplet = @host@
target_triplet = @target@
subdir = include
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/gc_config.h.in
+ $(srcdir)/Makefile.in $(srcdir)/gc_config.h.in \
+ $(srcdir)/gc_ext_config.h.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-CONFIG_HEADER = gc_config.h
+CONFIG_HEADER = gc_config.h gc_ext_config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
@@ -179,7 +180,7 @@ AUTOMAKE_OPTIONS = foreign
noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
gc_pthread_redirects.h gc_cpp.h
-all: gc_config.h
+all: gc_config.h gc_ext_config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
@@ -227,8 +228,18 @@ $(srcdir)/gc_config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
rm -f stamp-h1
touch $@
+gc_ext_config.h: stamp-h2
+ @if test ! -f $@; then \
+ rm -f stamp-h2; \
+ $(MAKE) stamp-h2; \
+ else :; fi
+
+stamp-h2: $(srcdir)/gc_ext_config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h2
+ cd $(top_builddir) && $(SHELL) ./config.status include/gc_ext_config.h
+
distclean-hdr:
- -rm -f gc_config.h stamp-h1
+ -rm -f gc_config.h stamp-h1 gc_ext_config.h stamp-h2
mostlyclean-libtool:
-rm -f *.lo
@@ -250,11 +261,11 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
mkid -fID $$unique
tags: TAGS
-TAGS: $(HEADERS) $(SOURCES) gc_config.h.in $(TAGS_DEPENDENCIES) \
+TAGS: $(HEADERS) $(SOURCES) gc_config.h.in gc_ext_config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) gc_config.h.in $(LISP) $(TAGS_FILES)'; \
+ list='$(SOURCES) $(HEADERS) gc_config.h.in gc_ext_config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
@@ -266,11 +277,11 @@ TAGS: $(HEADERS) $(SOURCES) gc_config.h.in $(TAGS_DEPENDENCIES) \
$$tags $$unique; \
fi
ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) gc_config.h.in $(TAGS_DEPENDENCIES) \
+CTAGS: $(HEADERS) $(SOURCES) gc_config.h.in gc_ext_config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) gc_config.h.in $(LISP) $(TAGS_FILES)'; \
+ list='$(SOURCES) $(HEADERS) gc_config.h.in gc_ext_config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
@@ -317,7 +328,7 @@ distdir: $(DISTFILES)
done
check-am: all-am
check: check-am
-all-am: Makefile $(HEADERS) gc_config.h
+all-am: Makefile $(HEADERS) gc_config.h gc_ext_config.h
installdirs:
install: install-am
install-exec: install-exec-am
diff --git a/boehm-gc/include/gc_config.h.in b/boehm-gc/include/gc_config.h.in
index 60ffb9741b6..92f1b2cf460 100644
--- a/boehm-gc/include/gc_config.h.in
+++ b/boehm-gc/include/gc_config.h.in
@@ -145,6 +145,9 @@
/* define GC_local_malloc() & GC_local_malloc_atomic() */
#undef THREAD_LOCAL_ALLOC
+/* use MMAP instead of sbrk to get new memory */
+#undef USE_MMAP
+
/* POSIX version of C Source */
#undef _POSIX_C_SOURCE
diff --git a/boehm-gc/include/private/gc_priv.h b/boehm-gc/include/private/gc_priv.h
index e5bd52b62b7..c336ce5c433 100644
--- a/boehm-gc/include/private/gc_priv.h
+++ b/boehm-gc/include/private/gc_priv.h
@@ -19,6 +19,10 @@
# ifndef GC_PRIVATE_H
# define GC_PRIVATE_H
+/* Autoconf definitions. */
+/* FIXME: This should really be included directly from each .c file. */
+#include <gc_config.h>
+
#if defined(mips) && defined(SYSTYPE_BSD) && defined(sony_news)
/* sony RISC NEWS, NEWSOS 4 */
# define BSD_TIME
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index 64cbde22c30..eeba4bc720b 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -1544,7 +1544,7 @@
# endif
# ifdef LINUX
# define OS_TYPE "LINUX"
-# define STACKBOTTOM ((ptr_t) 0x120000000)
+# define LINUX_STACKBOTTOM
# ifdef __ELF__
# define SEARCH_FOR_DATA_START
# define DYNAMIC_LOADING
diff --git a/build_gcc b/build_gcc
new file mode 100755
index 00000000000..cd7b8d02b1b
--- /dev/null
+++ b/build_gcc
@@ -0,0 +1,499 @@
+#!/bin/sh
+# APPLE LOCAL file B&I
+
+set -x
+
+# -arch arguments are different than configure arguments. We need to
+# translate them.
+
+TRANSLATE_ARCH="sed -e s/ppc/powerpc/ -e s/i386/i686/"
+
+# Build GCC the "Apple way".
+# Parameters:
+
+# The first parameter is a space-separated list of the architectures
+# the compilers will run on. For instance, "ppc i386". If the
+# current machine isn't in the list, it will (effectively) be added.
+HOSTS=`echo $1 | $TRANSLATE_ARCH `
+
+# The second parameter is a space-separated list of the architectures the
+# compilers will generate code for. If the current machine isn't in
+# the list, a compiler for it will get built anyway, but won't be
+# installed.
+TARGETS=`echo $2 | $TRANSLATE_ARCH`
+
+# The GNU makefile target ('bootstrap' by default).
+BOOTSTRAP=${BOOTSTRAP-bootstrap}
+
+# The B&I build srcript (~rc/bin/buildit) accepts an '-othercflags'
+# command-line flag, and captures the argument to that flag in
+# $RC_NONARCH_CFLAGS (and mysteriously prepends '-pipe' thereto).
+# We will allow this to override the default $CFLAGS and $CXXFLAGS.
+
+CFLAGS=${RC_NONARCH_CFLAGS/-pipe/}
+CFLAGS=${CFLAGS:-"-g -O2"}
+
+# This isn't a parameter; it is the architecture of the current machine.
+BUILD=`arch | $TRANSLATE_ARCH`
+
+# The third parameter is the path to the compiler sources. There should
+# be a shell script named 'configure' in this directory. This script
+# makes a copy...
+ORIG_SRC_DIR="$3"
+
+# The fourth parameter is the location where the compiler will be installed,
+# normally "/usr". You can move it once it's built, so this mostly controls
+# the layout of $DEST_DIR.
+DEST_ROOT="$4"
+
+# The fifth parameter is the place where the compiler will be copied once
+# it's built.
+DEST_DIR="$5"
+
+# The sixth parameter is a directory in which to place information (like
+# unstripped executables and generated source files) helpful in debugging
+# the resulting compiler.
+SYM_DIR="$6"
+
+# The current working directory is where the build will happen.
+# It may already contain a partial result of an interrupted build,
+# in which case this script will continue where it left off.
+DIR=`pwd`
+
+# This isn't a parameter; it's the version of the compiler that we're
+# about to build. It's included in the names of various files and
+# directories in the installed image.
+VERS=`sed -n -e '/version_string/s/.*\"\([^ \"]*\)[ \"].*/\1/p' \
+ < $ORIG_SRC_DIR/gcc/version.c || exit 1`
+
+# This isn't a parameter either, it's the major version of the compiler
+# to be built. It's VERS but only up to the second '.' (if there is one).
+MAJ_VERS=`echo $VERS | sed 's/\([0-9]*\.[0-9]*\)[.-].*/\1/'`
+
+# This is the default architecture for i386 configurations.
+I386_CPU="--with-arch=pentium4 --with-tune=prescott"
+
+# Sniff to see if we can do ppc64 building.
+DARWIN_VERS=8
+if [ x"`file /usr/lib/crt1.o | grep 'architecture ppc64'`" == x ]; then
+ DARWIN_VERS=7
+fi
+
+echo DARWIN_VERS = $DARWIN_VERS
+
+########################################
+# Run the build.
+
+# Create the source tree we'll actually use to build, deleting
+# tcl since it doesn't actually build properly in a cross environment
+# and we don't really need it.
+SRC_DIR=$DIR/src
+rm -rf $SRC_DIR || exit 1
+mkdir $SRC_DIR || exit 1
+ln -s $ORIG_SRC_DIR/* $SRC_DIR/ || exit 1
+rm -rf $SRC_DIR/tcl $SRC_DIR/expect $SRC_DIR/dejagnu || exit 1
+# Clean out old specs files
+rm -f /usr/lib/gcc/*/4.0.0/specs
+
+# These are the configure and build flags that are used.
+CONFIGFLAGS="--disable-checking -enable-werror \
+ --prefix=$DEST_ROOT \
+ --mandir=\${prefix}/share/man \
+ --enable-languages=c,objc,c++,obj-c++ \
+ --program-transform-name=/^[cg][^+.-]*$/s/$/-$MAJ_VERS/ \
+ --with-gxx-include-dir=\${prefix}/include/gcc/darwin/$MAJ_VERS/c++ \
+ --build=$BUILD-apple-darwin$DARWIN_VERS"
+
+# Figure out how many make processes to run.
+SYSCTL=`sysctl -n hw.activecpu`
+
+# hw.activecpu only available in 10.2.6 and later
+if [ -z "$SYSCTL" ]; then
+ SYSCTL=`sysctl -n hw.ncpu`
+fi
+
+# sysctl -n hw.* does not work when invoked via B&I chroot /BuildRoot.
+# Builders can default to 2, since even if they are single processor,
+# nothing else is running on the machine.
+if [ -z "$SYSCTL" ]; then
+ SYSCTL=2
+fi
+
+# The $LOCAL_MAKEFLAGS variable can be used to override $MAKEFLAGS.
+MAKEFLAGS=${LOCAL_MAKEFLAGS-"-j $SYSCTL"}
+
+# Build the native GCC. Do this even if the user didn't ask for it
+# because it'll be needed for the bootstrap.
+mkdir -p $DIR/obj-$BUILD-$BUILD $DIR/dst-$BUILD-$BUILD || exit 1
+cd $DIR/obj-$BUILD-$BUILD || exit 1
+if [ \! -f Makefile ]; then
+ $SRC_DIR/configure $CONFIGFLAGS \
+ `if [ $BUILD = i686 ] ; then echo $I386_CPU ; fi` \
+ --host=$BUILD-apple-darwin$DARWIN_VERS --target=$BUILD-apple-darwin$DARWIN_VERS || exit 1
+fi
+make $MAKEFLAGS $BOOTSTRAP CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+make $MAKEFLAGS html CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+make $MAKEFLAGS DESTDIR=$DIR/dst-$BUILD-$BUILD install-gcc install-target \
+ CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+
+# Add the compiler we just built to the path, giving it appropriate names.
+D=$DIR/dst-$BUILD-$BUILD/usr/bin
+ln -f $D/gcc-$MAJ_VERS $D/gcc || exit 1
+ln -f $D/gcc $D/$BUILD-apple-darwin$DARWIN_VERS-gcc || exit 1
+PATH=$DIR/dst-$BUILD-$BUILD/usr/bin:$PATH
+
+# The cross-tools' build process expects to find certain programs
+# under names like 'i386-apple-darwin$DARWIN_VERS-ar'; so make them.
+# Annoyingly, ranlib changes behaviour depending on what you call it,
+# so we have to use a shell script for indirection, grrr.
+rm -rf $DIR/bin || exit 1
+mkdir $DIR/bin || exit 1
+for prog in ar nm ranlib ; do
+ for t in `echo $TARGETS $HOSTS | sort -u`; do
+ P=$DIR/bin/${t}-apple-darwin$DARWIN_VERS-${prog}
+ echo '#!/bin/sh' > $P || exit 1
+ echo 'exec /usr/bin/'${prog}' $*' >> $P || exit 1
+ chmod a+x $P || exit 1
+ done
+done
+for t in `echo $1 $2 | sort -u`; do
+ gt=`echo $t | $TRANSLATE_ARCH`
+ P=$DIR/bin/${gt}-apple-darwin$DARWIN_VERS-as
+ echo '#!/bin/sh' > $P || exit 1
+ echo 'exec /usr/bin/as -arch '${t}' $*' >> $P || exit 1
+ chmod a+x $P || exit 1
+done
+PATH=$DIR/bin:$PATH
+
+# Build the cross-compilers, using the compiler we just built.
+for t in $TARGETS ; do
+ if [ $t != $BUILD ] ; then
+ mkdir -p $DIR/obj-$BUILD-$t $DIR/dst-$BUILD-$t || exit 1
+ cd $DIR/obj-$BUILD-$t || exit 1
+ if [ \! -f Makefile ]; then
+ $SRC_DIR/configure $CONFIGFLAGS --enable-werror-always \
+ `if [ $t = i686 ] ; then echo $I386_CPU ; fi` \
+ --program-prefix=$t-apple-darwin$DARWIN_VERS- \
+ --host=$BUILD-apple-darwin$DARWIN_VERS --target=$t-apple-darwin$DARWIN_VERS || exit 1
+ fi
+ make $MAKEFLAGS all CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+ make $MAKEFLAGS DESTDIR=$DIR/dst-$BUILD-$t install-gcc install-target \
+ CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+
+ # Add the compiler we just built to the path.
+ PATH=$DIR/dst-$BUILD-$t/usr/bin:$PATH
+ fi
+done
+
+# Rearrange various libraries, for no really good reason.
+for t in $TARGETS ; do
+ DT=$DIR/dst-$BUILD-$t
+ D=`echo $DT/usr/lib/gcc/$t-apple-darwin$DARWIN_VERS/$VERS`
+ if [ $t == $BUILD ] ; then
+ mv $DT/usr/lib/libstdc++.a $D || exit 1
+ mv $DT/usr/lib/libsupc++.a $D || exit 1
+ # 64-bit bringup
+ if [ -f $DT/usr/lib/ppc64/libstdc++.a ]; then
+ mv $DT/usr/lib/ppc64/libstdc++.a $D/ppc64 || exit 1
+ mv $DT/usr/lib/ppc64/libsupc++.a $D/ppc64 || exit 1
+ fi
+ else
+ DD=$DT/usr/${t}-apple-darwin$DARWIN_VERS/lib
+ mv $DD/libstdc++.a $D || exit 1
+ mv $DD/libsupc++.a $D || exit 1
+ # 64-bit bringup
+ if [ -f $DD/ppc64/libstdc++.a ]; then
+ mv $DD/ppc64/libstdc++.a $D/ppc64 || exit 1
+ mv $DD/ppc64/libsupc++.a $D/ppc64 || exit 1
+ fi
+ fi
+ mv $D/static/libgcc.a $D/libgcc_static.a || exit 1
+ mv $D/kext/libgcc.a $D/libcc_kext.a || exit 1
+ rm -r $D/static $D/kext || exit 1
+done
+
+# Build the cross-hosted compilers.
+for h in $HOSTS ; do
+ if [ $h != $BUILD ] ; then
+ for t in $TARGETS ; do
+ mkdir -p $DIR/obj-$h-$t $DIR/dst-$h-$t || exit 1
+ cd $DIR/obj-$h-$t || exit 1
+ if [ $h = $t ] ; then
+ pp=
+ else
+ pp=$t-apple-darwin$DARWIN_VERS-
+ fi
+
+ if [ \! -f Makefile ]; then
+ $SRC_DIR/configure $CONFIGFLAGS \
+ `if [ $t = i686 ] ; then echo $I386_CPU ; fi` \
+ --program-prefix=$pp \
+ --host=$h-apple-darwin$DARWIN_VERS --target=$t-apple-darwin$DARWIN_VERS || exit 1
+ fi
+ make $MAKEFLAGS all-gcc CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+ make $MAKEFLAGS DESTDIR=$DIR/dst-$h-$t install-gcc \
+ CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+ done
+ fi
+done
+
+########################################
+# Construct the actual destination root, by copying stuff from
+# $DIR/dst-* to $DEST_DIR, with occasional 'lipo' commands.
+
+cd $DEST_DIR || exit 1
+
+# Clean out DEST_DIR in case -noclean was passed to buildit.
+rm -rf * || exit 1
+
+# HTML documentation
+HTMLDIR="/Developer/ADC Reference Library/documentation/DeveloperTools"
+mkdir -p ".$HTMLDIR" || exit 1
+cp -Rp $DIR/obj-$BUILD-$BUILD/gcc/HTML/* ".$HTMLDIR/" || exit 1
+
+# Manual pages
+mkdir -p .$DEST_ROOT/share || exit 1
+cp -Rp $DIR/dst-$BUILD-$BUILD$DEST_ROOT/share/man .$DEST_ROOT/share/ \
+ || exit 1
+
+# libexec
+cd $DIR/dst-$BUILD-$BUILD$DEST_ROOT/libexec/gcc/$BUILD-apple-darwin$DARWIN_VERS/$VERS \
+ || exit 1
+LIBEXEC_FILES=`find . -type f -print || exit 1`
+LIBEXEC_DIRS=`find . -type d -print || exit 1`
+cd $DEST_DIR || exit 1
+for t in $TARGETS ; do
+ DL=$DEST_ROOT/libexec/gcc/$t-apple-darwin$DARWIN_VERS/$VERS
+ for d in $LIBEXEC_DIRS ; do
+ mkdir -p .$DL/$d || exit 1
+ done
+ for f in $LIBEXEC_FILES ; do
+ if file $DIR/dst-*-$t$DL/$f | grep -q 'Mach-O executable' ; then
+ lipo -output .$DL/$f -create $DIR/dst-*-$t$DL/$f || exit 1
+ else
+ cp -p $DIR/dst-$BUILD-$t$DL/$f .$DL/$f || exit 1
+ fi
+ done
+done
+
+# bin
+# The native drivers ('native' is different in different architectures).
+BIN_FILES=`ls $DIR/dst-$BUILD-$BUILD$DEST_ROOT/bin | grep '^[^-]*-[0-9.]*$' \
+ | grep -v gccbug | grep -v gcov || exit 1`
+mkdir .$DEST_ROOT/bin
+for f in $BIN_FILES ; do
+ lipo -output .$DEST_ROOT/bin/$f -create $DIR/dst-*$DEST_ROOT/bin/$f || exit 1
+done
+# gcov, which is special only because it gets built multiple times and lipo
+# will complain if we try to add two architectures into the same output.
+TARG0=`echo $TARGETS | cut -d ' ' -f 1`
+lipo -output .$DEST_ROOT/bin/gcov-$MAJ_VERS -create \
+ $DIR/dst-*-$TARG0$DEST_ROOT/bin/*gcov* || exit 1
+# The fully-named drivers, which have the same target on every host.
+for t in $TARGETS ; do
+ lipo -output .$DEST_ROOT/bin/$t-apple-darwin$DARWIN_VERS-gcc-$VERS -create \
+ $DIR/dst-*-$t$DEST_ROOT/bin/$t-apple-darwin$DARWIN_VERS-gcc-$VERS || exit 1
+ lipo -output .$DEST_ROOT/bin/$t-apple-darwin$DARWIN_VERS-g++-$VERS -create \
+ $DIR/dst-*-$t$DEST_ROOT/bin/$t-apple-darwin$DARWIN_VERS-g++ || exit 1
+done
+
+# lib
+mkdir -p .$DEST_ROOT/lib/gcc || exit 1
+for t in $TARGETS ; do
+ cp -Rp $DIR/dst-$BUILD-$t$DEST_ROOT/lib/gcc/$t-apple-darwin$DARWIN_VERS \
+ .$DEST_ROOT/lib/gcc || exit 1
+done
+
+SHARED_LIBS=`ls $DIR/dst-$BUILD-$BUILD$DEST_ROOT/lib | grep '\.dylib$'`
+for l in $SHARED_LIBS ; do
+ F=$DIR/dst-$BUILD-$BUILD$DEST_ROOT/lib/$l
+ if [ \! -L $F ] ; then
+ # The following bit sniffs for a ppc64 libstdc++ dylib to lipo in.
+ multi=$DIR/dst-$BUILD-$BUILD$DEST_ROOT/lib/ppc64/$l
+ if [ \! -f $multi ] ; then
+ multi=
+ fi
+ if [ -f $DIR/dst-$BUILD-*$DEST_ROOT/*-apple-darwin$DARWIN_VERS/lib/$l ] ; then
+ lipo -output .$DEST_ROOT/lib/$l -create $F $multi \
+ $DIR/dst-$BUILD-*$DEST_ROOT/*-apple-darwin$DARWIN_VERS/lib/$l || exit 1
+ else
+ cp -p $F .$DEST_ROOT/lib/$l || exit 1
+ fi
+ F1=`echo $l \
+ | sed 's/\(\.[0-9]\{1,\}\)\(\.[0-9]\{1,\}\)\{1,\}\.dylib/\1.dylib/'`
+ F0=`echo $l | sed 's/\(\.[0-9]\{1,\}\)\{1,\}\.dylib/.dylib/'`
+ ln -s $l .$DEST_ROOT/lib/$F1 || exit 1
+ for t in $TARGETS ; do
+ ln -s ../../../$F1 .$DEST_ROOT/lib/gcc/$t-apple-darwin$DARWIN_VERS/$VERS/$F0 \
+ || exit 1
+ done
+ fi
+done
+
+for l in $SHARED_LIBS ; do
+ F=$DEST_ROOT/lib/$l
+ F1=`echo $l \
+ | sed 's/\(\.[0-9]\{1,\}\)\(\.[0-9]\{1,\}\)\{1,\}\.dylib/\1.dylib/'`
+ if [ -f .$F ] ; then
+
+ # Now that we've lipo'ed things together, change the install name
+ # to match the official path. The destination should always be
+ # shorter than the full name, so this should always work. The
+ # install name should be the symlink with the major version number
+ # so that apps using the library (and the install name) will link
+ # against the symlink and get the latest version.
+ # Also change dependent library names so that libstdc++.6.0.2.dylib
+ # (for example) links against libgcc.1.dylib to avoid link errors.
+
+ install_name_tool -id $DEST_ROOT/lib/$F1 .$F || exit 1
+
+ # At this point, l is the name of the library we're rewriting.
+ # .$DEST_ROOT/lib/$F1 is the major version of the library.
+
+ # For every other shared library: change the name from short name to major
+ for subl in $SHARED_LIBS ; do
+ SUBF=.$DEST_ROOT/lib/$subl
+ if [ -f $SUBF ] ; then
+ install_name_tool -change $DEST_ROOT/lib/$l $DEST_ROOT/lib/$F1 $SUBF \
+ || exit 1
+ fi
+ done
+
+ # For every other library and architecture, check to see if any of the
+ # dependent library names happens to be the bogus name given during a cross
+ # compile.
+ for usinglib in $SHARED_LIBS ; do
+ USINGPATH=.$DEST_ROOT/lib/$usinglib
+ if [ -f $USINGPATH ] ; then
+ for t in $TARGETS ; do
+ BADPATH=$DEST_ROOT/$t-apple-darwin$DARWIN_VERS/lib/$l
+ GOODPATH=$DEST_ROOT/lib/$F1
+ # Deal with the weird names generated for cross compiler portions.
+ install_name_tool -change $BADPATH $GOODPATH $USINGPATH || exit 1
+ done
+ fi
+ done
+ fi
+done
+
+# include
+HEADERPATH=$DEST_ROOT/include/gcc/darwin/$MAJ_VERS
+mkdir -p .$HEADERPATH || exit 1
+cp -Rp $DIR/dst-$BUILD-$BUILD$HEADERPATH/c++ \
+ .$HEADERPATH/ || exit 1
+for t in $TARGETS ; do
+ DS=$HEADERPATH/c++
+ [ $t = $BUILD ] || \
+ cp -Rp $DIR/dst-$BUILD-$t$DS/$t-apple-darwin$DARWIN_VERS .$DS/ || exit 1
+done
+
+# Some headers are installed from more-hdrs/. They all share
+# one common feature: they shouldn't be installed here. Sometimes,
+# they should be part of FSF GCC and installed from there; sometimes,
+# they should be installed by some completely different package; sometimes,
+# they only exist for codewarrior compatibility and codewarrior should provide
+# its own. We take care not to install the headers if Libc is already
+# providing them.
+cd $SRC_DIR/more-hdrs
+for h in `echo *.h` ; do
+ if [ ! -f /usr/include/$h -o -L /usr/include/$h ] ; then
+ cp -R $h $DEST_DIR$HEADERPATH/$h || exit 1
+ for t in $TARGETS ; do
+ THEADERPATH=$DEST_DIR$DEST_ROOT/lib/gcc/${t}-apple-darwin$DARWIN_VERS/$VERS/include
+ [ -f $THEADERPATH/$h ] || \
+ ln -s ../../../../../include/gcc/darwin/$MAJ_VERS/$h $THEADERPATH/$h || \
+ exit 1
+ done
+ fi
+done
+mkdir -p $DEST_DIR$HEADERPATH/machine
+for h in `echo */*.h` ; do
+ if [ ! -f /usr/include/$h -o -L /usr/include/$h ] ; then
+ cp -R $h $DEST_DIR$HEADERPATH/$h || exit 1
+ for t in $TARGETS ; do
+ THEADERPATH=$DEST_DIR$DEST_ROOT/lib/gcc/${t}-apple-darwin$DARWIN_VERS/$VERS/include
+ mkdir -p $THEADERPATH/machine
+ # In fixincludes/fixinc.in we created this file... always link for now
+ [ -f /disable/$THEADERPATH/$h ] || \
+ ln -f -s ../../../../../../include/gcc/darwin/$MAJ_VERS/$h $THEADERPATH/$h || \
+ exit 1
+ done
+ fi
+done
+
+# Install man pages using version number.
+# Only g++ man page needs rename. gcc, cpp and gcov man page are already
+# installed using proper name.
+MDIR=$DEST_DIR$DEST_ROOT/share/man/man1
+mv $MDIR/g++.1 $MDIR/g++-$MAJ_VERS.1 || exit 1
+ln -f $MDIR/g++-$MAJ_VERS.1 $MDIR/c++-$MAJ_VERS.1 || exit 1
+for t in $TARGETS ; do
+ ln -f $MDIR/gcc-$MAJ_VERS.1 $MDIR/$t-apple-darwin$DARWIN_VERS-gcc-$VERS.1 \
+ || exit 1
+ ln -f $MDIR/g++-$MAJ_VERS.1 $MDIR/$t-apple-darwin$DARWIN_VERS-g++-$VERS.1 \
+ || exit 1
+done
+
+# Build driver-driver using fully-named drivers
+for t in $TARGETS ; do
+ $DEST_DIR$DEST_ROOT/bin/$t-apple-darwin$DARWIN_VERS-gcc-$VERS \
+ $ORIG_SRC_DIR/gcc/config/darwin-driver.c \
+ -DPDN="\"-apple-darwin$DARWIN_VERS-gcc-$VERS\"" \
+ -DIL="\"$DEST_ROOT/bin/\"" -I $ORIG_SRC_DIR/include \
+ -I $ORIG_SRC_DIR/gcc -I $ORIG_SRC_DIR/gcc/config \
+ -liberty -L$DIR/dst-$BUILD-$t$DEST_ROOT/lib/ \
+ -L$DIR/dst-$BUILD-$t$DEST_ROOT/$t-apple-darwin$DARWIN_VERS/lib/ \
+ -o $DEST_DIR/$DEST_ROOT/bin/tmp-$t-gcc-$MAJ_VERS || exit 1
+
+ $DEST_DIR$DEST_ROOT/bin/$t-apple-darwin$DARWIN_VERS-gcc-$VERS \
+ $ORIG_SRC_DIR/gcc/config/darwin-driver.c \
+ -DPDN="\"-apple-darwin$DARWIN_VERS-g++-$VERS\"" \
+ -DIL="\"$DEST_ROOT/bin/\"" -I $ORIG_SRC_DIR/include \
+ -I $ORIG_SRC_DIR/gcc -I $ORIG_SRC_DIR/gcc/config \
+ -liberty -L$DIR/dst-$BUILD-$t$DEST_ROOT/lib/ \
+ -L$DIR/dst-$BUILD-$t$DEST_ROOT/$t-apple-darwin$DARWIN_VERS/lib/ \
+ -o $DEST_DIR/$DEST_ROOT/bin/tmp-$t-g++-$MAJ_VERS || exit 1
+done
+
+lipo -output $DEST_DIR/$DEST_ROOT/bin/gcc-$MAJ_VERS -create \
+ $DEST_DIR/$DEST_ROOT/bin/tmp-*-gcc-$MAJ_VERS || exit 1
+
+lipo -output $DEST_DIR/$DEST_ROOT/bin/g++-$MAJ_VERS -create \
+ $DEST_DIR/$DEST_ROOT/bin/tmp-*-g++-$MAJ_VERS || exit 1
+
+ln -f $DEST_DIR/$DEST_ROOT/bin/g++-$MAJ_VERS $DEST_DIR/$DEST_ROOT/bin/c++-$MAJ_VERS || exit 1
+
+rm $DEST_DIR/$DEST_ROOT/bin/tmp-*-gcc-$MAJ_VERS || exit 1
+rm $DEST_DIR/$DEST_ROOT/bin/tmp-*-g++-$MAJ_VERS || exit 1
+
+
+########################################
+# Save the source files and objects needed for debugging
+
+cd $SYM_DIR || exit 1
+
+# Clean out SYM_DIR in case -noclean was passed to buildit.
+rm -rf * || exit 1
+
+# Save executables and libraries.
+cd $DEST_DIR || exit 1
+find . \( -perm -0111 -or -name \*.a \) -type f -print \
+ | cpio -pdml $SYM_DIR || exit 1
+# Save source files.
+mkdir $SYM_DIR/src || exit 1
+cd $DIR || exit 1
+find obj-* -name \*.\[chy\] -print | cpio -pdml $SYM_DIR/src || exit 1
+
+########################################
+# Strip the executables and libraries
+find $DEST_DIR -perm -0111 \! -name \*.dylib \! -name fixinc.sh \! -name mkheaders -type f -print \
+ | xargs strip || exit 1
+find $DEST_DIR \( -name \*.a -or -name \*.dylib \) -type f -print \
+ | xargs strip -SX || exit 1
+find $DEST_DIR -name \*.a -type f -print \
+ | xargs ranlib || exit 1
+chgrp -h -R wheel $DEST_DIR
+chgrp -R wheel $DEST_DIR
+
+# Done!
+exit 0
diff --git a/config/ChangeLog b/config/ChangeLog
index c6885d131da..3c8c7ba6f61 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,11 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-16 Paolo Bonzini <bonzini@gnu.org>
+
+ * acx.m4 (ACX_PROG_GNAT): Remove spurious break.
+
2005-01-23 Joseph S. Myers <joseph@codesourcery.com>
* warnings.m4 (ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Don't do
diff --git a/config/acx.m4 b/config/acx.m4
index d4a583dc67f..a7d425c7e29 100644
--- a/config/acx.m4
+++ b/config/acx.m4
@@ -207,7 +207,6 @@ acx_cv_cc_gcc_supports_ada=no
errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
if test x"$errors" = x && test -f conftest.$ac_objext; then
acx_cv_cc_gcc_supports_ada=yes
- break
fi
rm -f conftest.*])
diff --git a/config/mh-x86-darwin b/config/mh-x86-darwin
new file mode 100644
index 00000000000..3ca21bab8fb
--- /dev/null
+++ b/config/mh-x86-darwin
@@ -0,0 +1,6 @@
+# APPLE LOCAL file dynamic-no-pic
+# The -mdynamic-no-pic ensures that the compiler executable is built without
+# position-independent-code -- the usual default on Darwin.
+
+BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
+
diff --git a/configure b/configure
index 24cfc0175fe..cec60cc3761 100755
--- a/configure
+++ b/configure
@@ -50,7 +50,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -165,7 +164,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
@@ -336,11 +334,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=*)
@@ -506,16 +499,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
@@ -602,7 +591,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:606: checking host system type" >&5
+echo "configure:595: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -623,7 +612,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:627: checking target system type" >&5
+echo "configure:616: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -641,7 +630,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:645: checking build system type" >&5
+echo "configure:634: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -696,7 +685,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
# 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:700: checking for a BSD compatible install" >&5
+echo "configure:689: 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
@@ -749,7 +738,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ln works""... $ac_c" 1>&6
-echo "configure:753: checking whether ln works" >&5
+echo "configure:742: checking whether ln works" >&5
if eval "test \"`echo '$''{'acx_cv_prog_LN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -773,7 +762,7 @@ else
fi
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:777: checking whether ln -s works" >&5
+echo "configure:766: 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
@@ -1106,9 +1095,6 @@ case "${host}" in
powerpc-*-beos*)
noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
;;
- *-*-darwin*)
- noconfigdirs="$noconfigdirs tk itcl libgui"
- ;;
esac
@@ -1169,11 +1155,14 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
powerpc-*-darwin*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof ${libgcj}"
+ # APPLE LOCAL 64-bit bringup
+ noconfigdirs="$noconfigdirs target-libobjc"
;;
*-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
- noconfigdirs="$noconfigdirs ${libgcj}"
+ # APPLE LOCAL 64-bit bringup
+ noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
;;
*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
@@ -1555,6 +1544,9 @@ case "${target}" in
use_gnu_ld=no
fi
;;
+ sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
;;
v810-*-*)
@@ -1743,6 +1735,11 @@ case "${host}" in
powerpc-*-darwin*)
host_makefile_frag="config/mh-ppc-darwin"
;;
+ # APPLE LOCAL begin dynamic-no-pic
+ i[3456789]86-*-darwin*)
+ host_makefile_frag="config/mh-x86-darwin"
+ ;;
+ # APPLE LOCAL end dynamic-no-pic
*-*-lynxos*)
# /bin/cc is less than useful for our purposes. Always use GCC
tentative_cc="/bin/gcc"
@@ -1810,7 +1807,7 @@ else
# 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:1814: checking for $ac_word" >&5
+echo "configure:1811: 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
@@ -1840,7 +1837,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:1844: checking for $ac_word" >&5
+echo "configure:1841: 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
@@ -1891,7 +1888,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:1895: checking for $ac_word" >&5
+echo "configure:1892: 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
@@ -1923,7 +1920,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1927: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1924: 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.
@@ -1934,12 +1931,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 1938 "configure"
+#line 1935 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1940: \"$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
@@ -1965,12 +1962,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:1969: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1966: 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:1974: checking whether we are using GNU C" >&5
+echo "configure:1971: 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
@@ -1979,7 +1976,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1983: \"$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:1980: \"$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
@@ -1998,7 +1995,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:2002: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1999: 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
@@ -2065,7 +2062,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:2069: checking for $ac_word" >&5
+echo "configure:2066: 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
@@ -2097,7 +2094,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:2101: checking for $ac_word" >&5
+echo "configure:2098: 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
@@ -2130,7 +2127,7 @@ fi
fi
echo $ac_n "checking whether compiler driver understands Ada""... $ac_c" 1>&6
-echo "configure:2134: checking whether compiler driver understands Ada" >&5
+echo "configure:2131: checking whether compiler driver understands Ada" >&5
if eval "test \"`echo '$''{'acx_cv_cc_gcc_supports_ada'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2149,7 +2146,6 @@ acx_cv_cc_gcc_supports_ada=no
errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
if test x"$errors" = x && test -f conftest.$ac_objext; then
acx_cv_cc_gcc_supports_ada=yes
- break
fi
rm -f conftest.*
fi
@@ -2163,7 +2159,7 @@ else
fi
echo $ac_n "checking how to compare bootstrapped objects""... $ac_c" 1>&6
-echo "configure:2167: checking how to compare bootstrapped objects" >&5
+echo "configure:2163: checking how to compare bootstrapped objects" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_cmp_skip'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2261,9 +2257,9 @@ saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $gmpinc"
# Check GMP actually works
echo $ac_n "checking for correct version of gmp.h""... $ac_c" 1>&6
-echo "configure:2265: checking for correct version of gmp.h" >&5
+echo "configure:2261: checking for correct version of gmp.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 2267 "configure"
+#line 2263 "configure"
#include "confdefs.h"
#include "gmp.h"
int main() {
@@ -2274,7 +2270,7 @@ choke me
; return 0; }
EOF
-if { (eval echo configure:2278: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2274: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
@@ -2287,12 +2283,12 @@ rm -f conftest*
if test x"$have_gmp" = xyes; then
echo $ac_n "checking for MPFR""... $ac_c" 1>&6
-echo "configure:2291: checking for MPFR" >&5
+echo "configure:2287: checking for MPFR" >&5
saved_LIBS="$LIBS"
LIBS="$LIBS $gmplibs"
cat > conftest.$ac_ext <<EOF
-#line 2296 "configure"
+#line 2292 "configure"
#include "confdefs.h"
#include <gmp.h>
#include <mpfr.h>
@@ -2300,7 +2296,7 @@ int main() {
mpfr_t n; mpfr_init(n);
; return 0; }
EOF
-if { (eval echo configure:2304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
@@ -2787,7 +2783,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:2791: checking for $ac_word" >&5
+echo "configure:2787: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_BISON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2822,7 +2818,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:2826: checking for $ac_word" >&5
+echo "configure:2822: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2857,7 +2853,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:2861: checking for $ac_word" >&5
+echo "configure:2857: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_M4'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2892,7 +2888,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:2896: checking for $ac_word" >&5
+echo "configure:2892: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_FLEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2927,7 +2923,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:2931: checking for $ac_word" >&5
+echo "configure:2927: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2962,7 +2958,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:2966: checking for $ac_word" >&5
+echo "configure:2962: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3083,6 +3079,7 @@ esac
case "${host}" in
*-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
+ *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
*) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
esac
@@ -3608,7 +3605,7 @@ test -n "$target_alias" && ncn_target_tool_prefix=$target_alias-
# Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args.
set dummy ${ncn_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3612: checking for $ac_word" >&5
+echo "configure:3609: 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
@@ -3641,7 +3638,7 @@ if test -z "$ac_cv_prog_AR" ; then
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3645: checking for $ac_word" >&5
+echo "configure:3642: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3680,7 +3677,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args.
set dummy ${ncn_tool_prefix}as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3684: checking for $ac_word" >&5
+echo "configure:3681: 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
@@ -3713,7 +3710,7 @@ if test -z "$ac_cv_prog_AS" ; 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:3717: checking for $ac_word" >&5
+echo "configure:3714: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3752,7 +3749,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ncn_tool_prefix}dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3756: checking for $ac_word" >&5
+echo "configure:3753: 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
@@ -3785,7 +3782,7 @@ if test -z "$ac_cv_prog_DLLTOOL" ; 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:3789: checking for $ac_word" >&5
+echo "configure:3786: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3824,7 +3821,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args.
set dummy ${ncn_tool_prefix}ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3828: checking for $ac_word" >&5
+echo "configure:3825: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3857,7 +3854,7 @@ if test -z "$ac_cv_prog_LD" ; then
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3861: checking for $ac_word" >&5
+echo "configure:3858: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3896,7 +3893,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args.
set dummy ${ncn_tool_prefix}nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3900: checking for $ac_word" >&5
+echo "configure:3897: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3929,7 +3926,7 @@ if test -z "$ac_cv_prog_NM" ; then
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3933: checking for $ac_word" >&5
+echo "configure:3930: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3968,7 +3965,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ncn_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3972: checking for $ac_word" >&5
+echo "configure:3969: 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
@@ -4001,7 +3998,7 @@ if test -z "$ac_cv_prog_RANLIB" ; 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:4005: checking for $ac_word" >&5
+echo "configure:4002: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4040,7 +4037,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args.
set dummy ${ncn_tool_prefix}windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4044: checking for $ac_word" >&5
+echo "configure:4041: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4073,7 +4070,7 @@ if test -z "$ac_cv_prog_WINDRES" ; then
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4077: checking for $ac_word" >&5
+echo "configure:4074: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4112,7 +4109,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args.
set dummy ${ncn_tool_prefix}objcopy; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4116: checking for $ac_word" >&5
+echo "configure:4113: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4145,7 +4142,7 @@ if test -z "$ac_cv_prog_OBJCOPY" ; then
# Extract the first word of "objcopy", so it can be a program name with args.
set dummy objcopy; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4149: checking for $ac_word" >&5
+echo "configure:4146: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4184,7 +4181,7 @@ fi
# Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ncn_tool_prefix}objdump; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4188: checking for $ac_word" >&5
+echo "configure:4185: 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
@@ -4217,7 +4214,7 @@ if test -z "$ac_cv_prog_OBJDUMP" ; 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:4221: checking for $ac_word" >&5
+echo "configure:4218: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4263,7 +4260,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4267: checking for $ac_word" >&5
+echo "configure:4264: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4296,7 +4293,7 @@ if test -z "$ac_cv_prog_CONFIGURED_AR_FOR_TARGET" ; then
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4300: checking for $ac_word" >&5
+echo "configure:4297: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4335,7 +4332,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4339: checking for $ac_word" >&5
+echo "configure:4336: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4368,7 +4365,7 @@ if test -z "$ac_cv_prog_CONFIGURED_AS_FOR_TARGET" ; 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:4372: checking for $ac_word" >&5
+echo "configure:4369: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4407,7 +4404,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4411: checking for $ac_word" >&5
+echo "configure:4408: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4440,7 +4437,7 @@ if test -z "$ac_cv_prog_CONFIGURED_DLLTOOL_FOR_TARGET" ; 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:4444: checking for $ac_word" >&5
+echo "configure:4441: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4479,7 +4476,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4483: checking for $ac_word" >&5
+echo "configure:4480: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4512,7 +4509,7 @@ if test -z "$ac_cv_prog_CONFIGURED_LD_FOR_TARGET" ; then
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4516: checking for $ac_word" >&5
+echo "configure:4513: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4551,7 +4548,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4555: checking for $ac_word" >&5
+echo "configure:4552: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4584,7 +4581,7 @@ if test -z "$ac_cv_prog_CONFIGURED_NM_FOR_TARGET" ; then
# Extract the first word of "nm", so it can be a program name with args.
set dummy nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4588: checking for $ac_word" >&5
+echo "configure:4585: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4623,7 +4620,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4627: checking for $ac_word" >&5
+echo "configure:4624: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4656,7 +4653,7 @@ if test -z "$ac_cv_prog_CONFIGURED_RANLIB_FOR_TARGET" ; 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:4660: checking for $ac_word" >&5
+echo "configure:4657: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4695,7 +4692,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4699: checking for $ac_word" >&5
+echo "configure:4696: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4728,7 +4725,7 @@ if test -z "$ac_cv_prog_CONFIGURED_WINDRES_FOR_TARGET" ; then
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4732: checking for $ac_word" >&5
+echo "configure:4729: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4813,7 +4810,7 @@ RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:4817: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:4814: 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"
@@ -4860,7 +4857,7 @@ esac
# gcc for stageN-gcc and stagePREV-gcc for stage(N-1). In case this is not
# possible, however, we can resort to mv.
echo $ac_n "checking if symbolic links between directories work""... $ac_c" 1>&6
-echo "configure:4864: checking if symbolic links between directories work" >&5
+echo "configure:4861: checking if symbolic links between directories work" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_ln_s_dir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
diff --git a/configure.in b/configure.in
index e5068f22f48..1cd095f9a4d 100644
--- a/configure.in
+++ b/configure.in
@@ -308,9 +308,6 @@ case "${host}" in
powerpc-*-beos*)
noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
;;
- *-*-darwin*)
- noconfigdirs="$noconfigdirs tk itcl libgui"
- ;;
esac
@@ -367,11 +364,14 @@ case "${target}" in
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
;;
powerpc-*-darwin*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof ${libgcj}"
+ # APPLE LOCAL 64-bit bringup
+ noconfigdirs="$noconfigdirs target-libobjc"
;;
*-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
- noconfigdirs="$noconfigdirs ${libgcj}"
+ # APPLE LOCAL 64-bit bringup
+ noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
;;
*-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
@@ -753,6 +753,9 @@ case "${target}" in
use_gnu_ld=no
fi
;;
+ sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
;;
v810-*-*)
@@ -941,6 +944,11 @@ case "${host}" in
powerpc-*-darwin*)
host_makefile_frag="config/mh-ppc-darwin"
;;
+ # APPLE LOCAL begin dynamic-no-pic
+ i[[3456789]]86-*-darwin*)
+ host_makefile_frag="config/mh-x86-darwin"
+ ;;
+ # APPLE LOCAL end dynamic-no-pic
*-*-lynxos*)
# /bin/cc is less than useful for our purposes. Always use GCC
tentative_cc="/bin/gcc"
@@ -1666,6 +1674,7 @@ esac
case "${host}" in
*-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
+ *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
*) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
esac
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index da4eae5166f..0fa90481100 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,37 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-17 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gennews (files): Update for GCC 4.0.
+
+2005-03-21 Zack Weinberg <zack@codesourcery.com>
+
+ Merge from mainline:
+
+ 2005-03-18 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcc_update (silent): Unset instead of initializing to null.
+
+ 2005-03-18 Andreas Schwab <schwab@suse.de>
+
+ * gcc_update (apply_patch): Properly quote $1.
+
+ 2005-03-18 Zack Weinberg <zack@codesourcery.com>
+
+ * gcc_update: Add --silent option.
+
+2005-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * warn_summary (keywordFilter): Update sed pattern for new quoting
+ style in warnings.
+
+2005-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * warn_summary: Add -fortran subdir flag.
+ (subdirectoryFilter): Fix missing ada subdir.
+
2004-11-20 Hans-Peter Nilsson <hp@bitrange.com>
* gcc_update (touch_files): Don't rely on "make" being GNU make;
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 7e0e837e1af..cab6c47ec12 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -19,6 +19,9 @@
# If the first parameter is --list, a list of the generated files and
# their dependencies will be printed; --help prints this message.
#
+# If the first parameter is --silent, this script prints nothing other
+# than error messages; the second parameter is then interpreted as above.
+#
# Examples:
#
# contrib/gcc_update -r gcc_latest_snapshot
@@ -29,7 +32,7 @@
# contrib/gcc_update --list
#
#
-# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
+# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 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
@@ -51,6 +54,15 @@ UPDATE_OPTIONS=-Pd
# Arrange for the value of $0 to be available for functions
self=$0
+# This function prints its arguments to standard output unless
+# "silent" is set.
+unset silent
+chat () {
+ if [ -z "$silent" ]; then
+ echo "$@"
+ fi
+}
+
# This function prints a list of all generated files, along with their
# dependencies. Note that only one target is supported per line: the
# colon is stripped from the output.
@@ -125,7 +137,7 @@ touch_files () {
echo ':' >> Makefile.$$
echo ' @for f in $? $@; do test -f $$f || exit 0; done; \' >> Makefile.$$
echo ' echo Touching $@...; \' >> Makefile.$$
- echo ' echo Touching $@... 1>&2; \' >> Makefile.$$
+ chat ' echo Touching $@... 1>&2; \' >> Makefile.$$
echo ' touch $@' >> Makefile.$$
files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$
@@ -148,21 +160,21 @@ touch_files () {
# this script. By re-execing it, we ensure that the appropriate
# dependencies and rules will be used.
touch_files_reexec () {
- echo "Adjusting file timestamps"
- exec ${CONFIG_SHELL-/bin/sh} $self --touch
+ chat "Adjusting file timestamps"
+ exec ${CONFIG_SHELL-/bin/sh} $self ${silent+"--silent"} --touch
}
# This functions applies a patch to an existing tree.
apply_patch () {
- if [ -f $1 ]; then
+ if [ -f "$1" ]; then
echo "Applying patch file $1"
- case "$1" in
+ case $1 in
*gz)
- gzip -d -c $1 | patch -p1 ;;
+ gzip -d -c "$1" | patch -p1 ;;
*bz2)
- bzip2 -d -c $1 | patch -p1 ;;
+ bzip2 -d -c "$1" | patch -p1 ;;
*)
- cat $1 | patch -p1 ;;
+ patch -p1 < "$1";;
esac
fi
touch_files_reexec
@@ -175,6 +187,13 @@ if [ ! -f gcc/version.c ]; then
fi
case "$1" in
+--silent)
+ silent=t
+ shift
+ ;;
+esac
+
+case "$1" in
# First of all, check whether we are going to process a patch.
--patch)
if test "$#" != 2; then
@@ -228,8 +247,9 @@ else
set -- $UPDATE_OPTIONS ${1+"$@"}
fi
-echo "Updating CVS tree"
-$GCC_CVS -q update ${1+"$@"}
+chat "Updating CVS tree"
+
+$GCC_CVS -q ${silent+-Q} update ${1+"$@"}
if [ $? -ne 0 ]; then
(touch_files_reexec)
echo "CVS update of full tree failed." >&2
diff --git a/contrib/gennews b/contrib/gennews
index 37eb659134b..14a76b22510 100755
--- a/contrib/gennews
+++ b/contrib/gennews
@@ -3,7 +3,7 @@
# Script to generate the NEWS file from online release notes.
# Contributed by Joseph Myers <jsm28@cam.ac.uk>.
#
-# Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
@@ -22,7 +22,8 @@
# Boston, MA 02111-1307, USA.
website=http://gcc.gnu.org/
-files="gcc-3.4/index.html gcc-3.4/changes.html
+files="gcc-4.0/index.html gcc-4.0/changes.html
+ gcc-3.4/index.html gcc-3.4/changes.html
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
diff --git a/contrib/reghunt/ChangeLog b/contrib/reghunt/ChangeLog
index 6e3c3e980fd..71afa5b4cff 100644
--- a/contrib/reghunt/ChangeLog
+++ b/contrib/reghunt/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
* reg_periodic, reg_search: Fix the uses of date command.
diff --git a/contrib/regression/ChangeLog b/contrib/regression/ChangeLog
index 23e1e287fd2..1faa7fc0c48 100644
--- a/contrib/regression/ChangeLog
+++ b/contrib/regression/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2004-11-07 James A. Morrison <phython@gcc.gnu.org>
* README: Update website URL.
diff --git a/contrib/warn_summary b/contrib/warn_summary
index 10b4c0d7831..253d244c3dd 100755
--- a/contrib/warn_summary
+++ b/contrib/warn_summary
@@ -3,7 +3,7 @@
# This script parses the output of a gcc bootstrap when using warning
# flags and determines various statistics.
#
-# usage: warn_summary [-llf] [-s stage] [-nosub|-ch|-cp|-f|-java|-ada|-intl|-fixinc]
+# usage: warn_summary [-llf] [-s stage] [-nosub|-ch|-cp|-f|-fortran|-java|-ada|-intl|-fixinc]
# [-pass|-wpass] [file(s)]
#
# -llf
@@ -19,8 +19,8 @@
#
# -nosub
# Only show warnings from the gcc top level directory.
-# -ch|-cp|-f|-java|-ada|-intl|-fixinc
-# Only show warnings from the specified language subdirectory.
+# -ch|-cp|-f|-fortran|-java|-ada|-intl|-fixinc
+# Only show warnings from the specified gcc subdirectory.
# These override each other so only the last one passed takes effect.
#
# -pass
@@ -57,7 +57,7 @@ subdirectoryFilter()
else
if test "$filter" = nosub ; then
# Omit all subdirectories.
- egrep -v '/gcc/(ch|cp|f|java|intl|fixinc)/'
+ egrep -v '/gcc/(ch|cp|f|fortran|java|ada|intl|fixinc)/'
else
# Pass through only subdir $filter.
grep "/gcc/$filter/"
@@ -107,7 +107,7 @@ keywordFilter() {
s/`\(const\)'"'"'/"\1"/g;
s/`\(noreturn\)'"'"'/"\1"/g;
s/`\(longjmp\)'"'"' or `\(vfork\)'"'"'/"\1" or "\2"/g;
- s/`'"[^']*'/"'`???'"'/g;"'
+ s/'"[\`'][^']*'/"'"???"/g;
s/.*format, .* arg (arg [0-9][0-9]*)/??? format, ??? arg (arg ???)/;
s/\([( ]\)arg [0-9][0-9]*\([) ]\)/\1arg ???\2/;
s/"\([^"]*\)"/`\1'"'"'/g'
@@ -132,7 +132,7 @@ s%^[^ ]*/\(lib[a-z23+-]*/\)%\1%;'
# Start the main section.
-usage="usage: `basename $0` [-llf] [-s stage] [-nosub|-ch|-cp|-f|-java|-ada|-intl|-fixinc] [-pass|-wpass] [file(s)]"
+usage="usage: `basename $0` [-llf] [-s stage] [-nosub|-ch|-cp|-f|-fortran|-java|-ada|-intl|-fixinc] [-pass|-wpass] [file(s)]"
stageN=3
tmpfile=/tmp/tmp-warn.$$
@@ -158,7 +158,7 @@ while test -n "$1" ; do
-s) if test -z "$2"; then echo $usage 1>&2; exit 1; fi
stageN="$2"; shift 2 ;;
-s*) stageN="`expr $1 : '-s\(.*\)'`" ; shift ;;
- -nosub|-ch|-cp|-f|-java|-ada|-intl|-fixinc) filter="`expr $1 : '-\(.*\)'`" ; shift ;;
+ -nosub|-ch|-cp|-f|-fortran|-java|-ada|-intl|-fixinc) filter="`expr $1 : '-\(.*\)'`" ; shift ;;
-pass) pass=1 ; shift ;;
-wpass) pass=w ; shift ;;
-*) echo $usage 1>&2 ; exit 1 ;;
diff --git a/fastjar/ChangeLog b/fastjar/ChangeLog
index a429a6369cb..88da10f8b9e 100644
--- a/fastjar/ChangeLog
+++ b/fastjar/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2004-12-02 Richard Sandiford <rsandifo@redhat.com>
* configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index 9262818e9fd..7f09f67a74c 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,25 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
+
+ PR target/20166
+ * inclhack.def: Add fix for array of incomplete structures
+ in function prototype in pthread.h.
+ * fixincl.x: Regenerate.
+ * tests/base/pthread.h: Adjust.
+
+2005-03-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * inclhack.def (hpux_htonl): New fix.
+ * tests/base/netinet/in.h: New test.
+ * fixincl.x: Regenerate.
+
+2005-02-23 James E Wilson <wilson@specifixinc.com>
+
+ * Makefile.in (full-stamp, test-stamp, $(AF)): Add $(CFLAGS) to link.
+
2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
PR 18458
diff --git a/fixincludes/Makefile.in b/fixincludes/Makefile.in
index b60665bc4bf..1383ef61b61 100644
--- a/fixincludes/Makefile.in
+++ b/fixincludes/Makefile.in
@@ -102,15 +102,15 @@ oneprocess : full-stamp
twoprocess : test-stamp $(AF)
full-stamp : $(ALLOBJ) $(LIBIBERTY)
- $(CC) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
$(STAMP) $@
test-stamp : $(TESTOBJ) $(LIBIBERTY)
- $(CC) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
$(STAMP) $@
$(AF): $(FIXOBJ) $(LIBIBERTY)
- $(CC) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBIBERTY)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBIBERTY)
$(ALLOBJ) : $(HDR)
fixincl.o : fixincl.c $(srcdir)/fixincl.x
diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
index 2eabf1f572e..0a93761f15e 100644
--- a/fixincludes/fixincl.x
+++ b/fixincludes/fixincl.x
@@ -2,11 +2,11 @@
*
* DO NOT EDIT THIS FILE (fixincl.x)
*
- * It has been AutoGen-ed Friday November 26, 2004 at 09:59:26 PM UTC
+ * It has been AutoGen-ed Thursday April 7, 2005 at 12:17:27 PM PDT
* From the definitions inclhack.def
* and the template file fixincl
*/
-/* DO NOT CVS-MERGE THIS FILE, EITHER Fri Nov 26 21:59:26 UTC 2004
+/* DO NOT CVS-MERGE THIS FILE, EITHER Thu Apr 7 12:17:27 PDT 2005
*
* You must regenerate it. Use the ./genfixes script.
*
@@ -15,7 +15,7 @@
* certain ANSI-incompatible system header files which are fixed to work
* correctly with ANSI C and placed in a directory that GNU C will search.
*
- * This file contains 177 fixup descriptions.
+ * This file contains 184 fixup descriptions.
*
* See README for more information.
*
@@ -42,6 +42,50 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Aab_Darwin_Fenv_H fix
+ */
+tSCC zAab_Darwin_Fenv_HName[] =
+ "AAB_darwin_fenv_h";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAab_Darwin_Fenv_HList[] =
+ "|fenv.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAab_Darwin_Fenv_HMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAab_Darwin_Fenv_HBypass0[] =
+ "#pragma GCC fenv";
+
+#define AAB_DARWIN_FENV_H_TEST_CT 1
+static tTestDesc aAab_Darwin_Fenv_HTests[] = {
+ { TT_NEGREP, zAab_Darwin_Fenv_HBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Aab_Darwin_Fenv_H
+ */
+static const char* apzAab_Darwin_Fenv_HPatch[] = {
+"/* This file is a backwards compability hack to allow \n\
+ no-trapping-math to be the default. */\n\
+#ifndef _DARWIN_FENV_H_WRAPPER\n\
+#if defined(__GNUC__) && __GNUC__ >= 4\n\
+#pragma GCC fenv\n\
+#endif\n\
+#include_next <fenv.h>\n\
+#define _DARWIN_FENV_H_WRAPPER\n\
+#endif /* _DARWIN_FENV_H_WRAPPER */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
*/
tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] =
@@ -1720,6 +1764,46 @@ static const char* apzDarwin_Gcc4_BreakagePatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Darwin_Macosx_Deployment_Target fix
+ */
+tSCC zDarwin_Macosx_Deployment_TargetName[] =
+ "darwin_macosx_deployment_target";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Macosx_Deployment_TargetList[] =
+ "|AvailabilityMacros.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Macosx_Deployment_TargetMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zDarwin_Macosx_Deployment_TargetBypass0[] =
+ "__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__";
+
+#define DARWIN_MACOSX_DEPLOYMENT_TARGET_TEST_CT 1
+static tTestDesc aDarwin_Macosx_Deployment_TargetTests[] = {
+ { TT_NEGREP, zDarwin_Macosx_Deployment_TargetBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Macosx_Deployment_Target
+ */
+static const char* apzDarwin_Macosx_Deployment_TargetPatch[] = {
+ "format",
+ "#if ! defined (MAC_OS_X_VERSION_MIN_REQUIRED) && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)\n\
+ #define MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n\
+#elif ! defined (MAC_OS_X_VERSION_MIN_REQUIRED)\n",
+ "#ifndef MAC_OS_X_VERSION_MIN_REQUIRED\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Darwin_Private_Extern fix
*/
tSCC zDarwin_Private_ExternName[] =
@@ -1758,6 +1842,132 @@ static const char* apzDarwin_Private_ExternPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Darwin_Stdint_Guards_Intn fix
+ */
+tSCC zDarwin_Stdint_Guards_IntnName[] =
+ "darwin_stdint_guards_intn";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_Guards_IntnList[] =
+ "|ppc/types.h|i386/types.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_Guards_IntnMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zDarwin_Stdint_Guards_IntnBypass0[] =
+ "_INT32_T[ \n\
+]";
+
+#define DARWIN_STDINT_GUARDS_INTN_TEST_CT 1
+static tTestDesc aDarwin_Stdint_Guards_IntnTests[] = {
+ { TT_NEGREP, zDarwin_Stdint_Guards_IntnBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_Guards_Intn
+ */
+static const char* apzDarwin_Stdint_Guards_IntnPatch[] = {
+ "format",
+ "#ifndef _INT%2_T\n\
+#define _INT%2_T\n\
+%0\n\
+#endif",
+ "typedef[ \t]([_a-z ]*\t+)int([0-9]+)_t;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_Guards_Intptr fix
+ */
+tSCC zDarwin_Stdint_Guards_IntptrName[] =
+ "darwin_stdint_guards_intptr";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_Guards_IntptrList[] =
+ "|ppc/types.h|i386/types.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_Guards_IntptrMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zDarwin_Stdint_Guards_IntptrBypass0[] =
+ "_INTPTR_T[ \n\
+]";
+
+#define DARWIN_STDINT_GUARDS_INTPTR_TEST_CT 1
+static tTestDesc aDarwin_Stdint_Guards_IntptrTests[] = {
+ { TT_NEGREP, zDarwin_Stdint_Guards_IntptrBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_Guards_Intptr
+ */
+static const char* apzDarwin_Stdint_Guards_IntptrPatch[] = {
+ "format",
+ "#ifndef _INTPTR_T\n\
+#define _INTPTR_T\n\
+%0\n\
+#endif",
+ "typedef[ \t]([_a-z \t]+)[ \t]+intptr_t;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Darwin_Stdint_Guards_Uintptr fix
+ */
+tSCC zDarwin_Stdint_Guards_UintptrName[] =
+ "darwin_stdint_guards_uintptr";
+
+/*
+ * File name selection pattern
+ */
+tSCC zDarwin_Stdint_Guards_UintptrList[] =
+ "|ppc/types.h|i386/types.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzDarwin_Stdint_Guards_UintptrMachs[] = {
+ "*-*-darwin*",
+ (const char*)NULL };
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zDarwin_Stdint_Guards_UintptrBypass0[] =
+ "_UINTPTR_T[ \n\
+]";
+
+#define DARWIN_STDINT_GUARDS_UINTPTR_TEST_CT 1
+static tTestDesc aDarwin_Stdint_Guards_UintptrTests[] = {
+ { TT_NEGREP, zDarwin_Stdint_Guards_UintptrBypass0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Darwin_Stdint_Guards_Uintptr
+ */
+static const char* apzDarwin_Stdint_Guards_UintptrPatch[] = {
+ "format",
+ "#ifndef _UINTPTR_T\n\
+#define _UINTPTR_T\n\
+%0\n\
+#endif",
+ "typedef[ \t]([_a-z \t]+)[ \t]+uintptr_t;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Dec_Intern_Asm fix
*/
tSCC zDec_Intern_AsmName[] =
@@ -2648,6 +2858,46 @@ static const char* apzHpux_Ctype_MacrosPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Hpux_Htonl fix
+ */
+tSCC zHpux_HtonlName[] =
+ "hpux_htonl";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_HtonlList[] =
+ "|netinet/in.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux_HtonlMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_HtonlSelect0[] =
+ "#ifndef _XOPEN_SOURCE_EXTENDED\n\
+(/\\*\n\
+ \\* Macros for number representation conversion\\.\n\
+ \\*/\n\
+#ifndef ntohl)";
+
+#define HPUX_HTONL_TEST_CT 1
+static tTestDesc aHpux_HtonlTests[] = {
+ { TT_EGREP, zHpux_HtonlSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Htonl
+ */
+static const char* apzHpux_HtonlPatch[] = {
+ "format",
+ "#if 1\n\
+%1",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Hpux_Long_Double fix
*/
tSCC zHpux_Long_DoubleName[] =
@@ -4143,6 +4393,42 @@ static const char* apzPthread_Page_SizePatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Pthread_Incomplete_Struct_Argument fix
+ */
+tSCC zPthread_Incomplete_Struct_ArgumentName[] =
+ "pthread_incomplete_struct_argument";
+
+/*
+ * File name selection pattern
+ */
+tSCC zPthread_Incomplete_Struct_ArgumentList[] =
+ "|pthread.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzPthread_Incomplete_Struct_ArgumentMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] =
+ "struct __jmp_buf_tag";
+
+#define PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT 1
+static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = {
+ { TT_EGREP, zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Pthread_Incomplete_Struct_Argument
+ */
+static const char* apzPthread_Incomplete_Struct_ArgumentPatch[] = {
+ "format",
+ "%1 *%2%3",
+ "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Read_Ret_Type fix
*/
tSCC zRead_Ret_TypeName[] =
@@ -7085,14 +7371,15 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
-#define REGEX_COUNT 207
+#define REGEX_COUNT 214
#define MACH_LIST_SIZE_LIMIT 261
-#define FIX_COUNT 177
+#define FIX_COUNT 184
/*
* Enumerate the fixes
*/
typedef enum {
+ AAB_DARWIN_FENV_H_FIXIDX,
AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
@@ -7133,7 +7420,11 @@ typedef enum {
CTRL_QUOTES_USE_FIXIDX,
CXX_UNREADY_FIXIDX,
DARWIN_GCC4_BREAKAGE_FIXIDX,
+ DARWIN_MACOSX_DEPLOYMENT_TARGET_FIXIDX,
DARWIN_PRIVATE_EXTERN_FIXIDX,
+ DARWIN_STDINT_GUARDS_INTN_FIXIDX,
+ DARWIN_STDINT_GUARDS_INTPTR_FIXIDX,
+ DARWIN_STDINT_GUARDS_UINTPTR_FIXIDX,
DEC_INTERN_ASM_FIXIDX,
DJGPP_WCHAR_H_FIXIDX,
ECD_CURSOR_FIXIDX,
@@ -7156,6 +7447,7 @@ typedef enum {
HPUX11_VSNPRINTF_FIXIDX,
HPUX8_BOGUS_INLINES_FIXIDX,
HPUX_CTYPE_MACROS_FIXIDX,
+ HPUX_HTONL_FIXIDX,
HPUX_LONG_DOUBLE_FIXIDX,
HPUX_SYSTIME_FIXIDX,
INT_ABORT_FREE_AND_EXIT_FIXIDX,
@@ -7195,6 +7487,7 @@ typedef enum {
OSF_NAMESPACE_A_FIXIDX,
OSF_NAMESPACE_C_FIXIDX,
PTHREAD_PAGE_SIZE_FIXIDX,
+ PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_FIXIDX,
READ_RET_TYPE_FIXIDX,
RPC_XDR_LVALUE_CAST_A_FIXIDX,
RPC_XDR_LVALUE_CAST_B_FIXIDX,
@@ -7273,6 +7566,11 @@ typedef enum {
} t_fixinc_idx;
tFixDesc fixDescList[ FIX_COUNT ] = {
+ { zAab_Darwin_Fenv_HName, zAab_Darwin_Fenv_HList,
+ apzAab_Darwin_Fenv_HMachs,
+ AAB_DARWIN_FENV_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
+ aAab_Darwin_Fenv_HTests, apzAab_Darwin_Fenv_HPatch, 0 },
+
{ zAab_Fd_Zero_Asm_Posix_Types_HName, zAab_Fd_Zero_Asm_Posix_Types_HList,
apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
@@ -7473,11 +7771,31 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aDarwin_Gcc4_BreakageTests, apzDarwin_Gcc4_BreakagePatch, 0 },
+ { zDarwin_Macosx_Deployment_TargetName, zDarwin_Macosx_Deployment_TargetList,
+ apzDarwin_Macosx_Deployment_TargetMachs,
+ DARWIN_MACOSX_DEPLOYMENT_TARGET_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Macosx_Deployment_TargetTests, apzDarwin_Macosx_Deployment_TargetPatch, 0 },
+
{ zDarwin_Private_ExternName, zDarwin_Private_ExternList,
apzDarwin_Private_ExternMachs,
DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aDarwin_Private_ExternTests, apzDarwin_Private_ExternPatch, 0 },
+ { zDarwin_Stdint_Guards_IntnName, zDarwin_Stdint_Guards_IntnList,
+ apzDarwin_Stdint_Guards_IntnMachs,
+ DARWIN_STDINT_GUARDS_INTN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_Guards_IntnTests, apzDarwin_Stdint_Guards_IntnPatch, 0 },
+
+ { zDarwin_Stdint_Guards_IntptrName, zDarwin_Stdint_Guards_IntptrList,
+ apzDarwin_Stdint_Guards_IntptrMachs,
+ DARWIN_STDINT_GUARDS_INTPTR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_Guards_IntptrTests, apzDarwin_Stdint_Guards_IntptrPatch, 0 },
+
+ { zDarwin_Stdint_Guards_UintptrName, zDarwin_Stdint_Guards_UintptrList,
+ apzDarwin_Stdint_Guards_UintptrMachs,
+ DARWIN_STDINT_GUARDS_UINTPTR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aDarwin_Stdint_Guards_UintptrTests, apzDarwin_Stdint_Guards_UintptrPatch, 0 },
+
{ zDec_Intern_AsmName, zDec_Intern_AsmList,
apzDec_Intern_AsmMachs,
DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
@@ -7588,6 +7906,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aHpux_Ctype_MacrosTests, apzHpux_Ctype_MacrosPatch, 0 },
+ { zHpux_HtonlName, zHpux_HtonlList,
+ apzHpux_HtonlMachs,
+ HPUX_HTONL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_HtonlTests, apzHpux_HtonlPatch, 0 },
+
{ zHpux_Long_DoubleName, zHpux_Long_DoubleList,
apzHpux_Long_DoubleMachs,
HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY,
@@ -7783,6 +8106,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
PTHREAD_PAGE_SIZE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aPthread_Page_SizeTests, apzPthread_Page_SizePatch, 0 },
+ { zPthread_Incomplete_Struct_ArgumentName, zPthread_Incomplete_Struct_ArgumentList,
+ apzPthread_Incomplete_Struct_ArgumentMachs,
+ PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aPthread_Incomplete_Struct_ArgumentTests, apzPthread_Incomplete_Struct_ArgumentPatch, 0 },
+
{ zRead_Ret_TypeName, zRead_Ret_TypeList,
apzRead_Ret_TypeMachs,
READ_RET_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
index 28dbd46533e..23a1d95abf7 100644
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -20,6 +20,43 @@ autogen definitions fixincl;
FIXINC_DEBUG = yes;
#endif
+/* APPLE LOCAL begin pragma fenv */
+/*
+ * This adds #pragma GCC fenv to <fenv.h>. This is part of a
+ * kludge to allow no-trapping-math be the default, yet handle
+ * all the edge cases in C99 right, although FENV_ACCESS doesn't
+ * work in a useful fashion. It should be possible to remove
+ * this if and when FENV_ACCESS is fully implemented.
+ *
+ * For Tiger the macro is already added to the standard header.
+ * This exists to support backwards compatibility in SDKs.
+ */
+fix = {
+ hackname = AAB_darwin_fenv_h;
+ files = fenv.h;
+ mach = '*-*-darwin*';
+ bypass = '#pragma GCC fenv';
+
+ /*
+ * Define _DARWIN_FENV_H_WRAPPER at the end of the wrapper, not
+ * the start, so that if #include_next gets another instance of
+ * the wrapper, this will follow the #include_next chain until
+ * we arrive at the real <fenv.h>.
+ */
+ replace = <<- _EndOfHeader_
+ /* This file is a backwards compability hack to allow
+ no-trapping-math to be the default. */
+ #ifndef _DARWIN_FENV_H_WRAPPER
+ #if defined(__GNUC__) && __GNUC__ >= 4
+ #pragma GCC fenv
+ #endif
+ #include_next <fenv.h>
+ #define _DARWIN_FENV_H_WRAPPER
+ #endif /* _DARWIN_FENV_H_WRAPPER */
+ _EndOfHeader_;
+};
+/* APPLE LOCAL end pragma fenv */
+
/*
* This fixes __FD_ZERO bug for linux 2.x.y (x <= 2 && y <= some n)
*/
@@ -1038,6 +1075,26 @@ fix = {
};
+/* APPLE LOCAL begin deployment target */
+/*
+ * GCC used to set MAC_OS_X_VERSION_MIN_REQUIRED directly, but that isn't
+ * namespace-clean.
+ */
+fix = {
+ hackname = darwin_macosx_deployment_target;
+ mach = "*-*-darwin*";
+ files = AvailabilityMacros.h;
+ bypass = "__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__";
+ c_fix = format;
+ c_fix_arg = "#if ! defined (MAC_OS_X_VERSION_MIN_REQUIRED) && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)\n #define MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n#elif ! defined (MAC_OS_X_VERSION_MIN_REQUIRED)\n";
+ c_fix_arg = "#ifndef MAC_OS_X_VERSION_MIN_REQUIRED\n";
+ test_text = "__private_extern__ int _dyld_func_lookup(\n"
+ "const char *dyld_func_name,\n"
+ "unsigned long *address);\n";
+};
+/* APPLE LOCAL end deployment target */
+
+
/*
* __private_extern__ doesn't exist in FSF GCC. Even if it did,
* why would you ever put it in a system header file?
@@ -1056,6 +1113,52 @@ fix = {
};
+/* APPLE LOCAL begin stdint.h */
+/*
+ * To support a fully namespace-clean stdint.h, <machine/types.h> can't
+ * be included; and that means that the various types.h files must
+ * cooperate with stdint.h.
+ */
+fix = {
+ hackname = darwin_stdint_guards_intn;
+ mach = "*-*-darwin*";
+ files = ppc/types.h;
+ files = i386/types.h;
+ bypass = "_INT32_T[ \n]";
+ c_fix = format;
+ c_fix_arg = "#ifndef _INT%2_T\n#define _INT%2_T\n%0\n#endif";
+ c_fix_arg = "typedef[ \t]([_a-z ]*\t+)int([0-9]+)_t;";
+ test_text = "typedef\t__signed char\t\tint8_t;\n";
+};
+
+
+fix = {
+ hackname = darwin_stdint_guards_intptr;
+ mach = "*-*-darwin*";
+ files = ppc/types.h;
+ files = i386/types.h;
+ bypass = "_INTPTR_T[ \n]";
+ c_fix = format;
+ c_fix_arg = "#ifndef _INTPTR_T\n#define _INTPTR_T\n%0\n#endif";
+ c_fix_arg = "typedef[ \t]([_a-z \t]+)[ \t]+intptr_t;";
+ test_text = "typedef long int\t\tintptr_t;\n";
+};
+
+
+fix = {
+ hackname = darwin_stdint_guards_uintptr;
+ mach = "*-*-darwin*";
+ files = ppc/types.h;
+ files = i386/types.h;
+ bypass = "_UINTPTR_T[ \n]";
+ c_fix = format;
+ c_fix_arg = "#ifndef _UINTPTR_T\n#define _UINTPTR_T\n%0\n#endif";
+ c_fix_arg = "typedef[ \t]([_a-z \t]+)[ \t]+uintptr_t;";
+ test_text = "typedef unsigned long int\tuintptr_t;\n";
+};
+/* APPLE LOCAL end stdint.h */
+
+
/*
* Fix <c_asm.h> on Digital UNIX V4.0:
* It contains a prototype for a DEC C internal asm() function,
@@ -1507,6 +1610,34 @@ fix = {
/*
+ * Fix hpux broken #ifndef _XOPEN_SOURCE_EXTENDED conditional on htonl etc.
+ */
+fix = {
+ hackname = hpux_htonl;
+ files = netinet/in.h;
+ select = "#ifndef _XOPEN_SOURCE_EXTENDED\n"
+ "(/\\*\n"
+ " \\* Macros for number representation conversion\\.\n"
+ " \\*/\n"
+ "#ifndef ntohl)";
+ c_fix = format;
+ c_fix_arg = "#if 1\n%1";
+
+ test_text = "#ifndef _XOPEN_SOURCE_EXTENDED\n"
+ "/*\n"
+ " * Macros for number representation conversion.\n"
+ " */\n"
+ "#ifndef ntohl\n"
+ "#define ntohl(x) (x)\n"
+ "#define ntohs(x) (x)\n"
+ "#define htonl(x) (x)\n"
+ "#define htons(x) (x)\n"
+ "#endif\n"
+ "#endif /* ! _XOPEN_SOURCE_EXTENDED */";
+};
+
+
+/*
* HP-UX long_double
*/
fix = {
@@ -2287,6 +2418,19 @@ fix = {
test_text = "int __page_size;";
};
+/*
+ * On broken glibc-2.3.3 systems an array of incomplete structures is
+ * passed to __sigsetjmp. Fix that to take a pointer instead.
+ */
+fix = {
+ hackname = pthread_incomplete_struct_argument;
+ files = pthread.h;
+ select = "struct __jmp_buf_tag";
+ c_fix = format;
+ c_fix_arg = "%1 *%2%3";
+ c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$";
+ test_text = "extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask);";
+};
/*
* On DYNIX/ptx, sys/mc_param.h has an embedded asm for the cpuid instruction
diff --git a/fixincludes/tests/base/netinet/in.h b/fixincludes/tests/base/netinet/in.h
new file mode 100644
index 00000000000..2d7f7b8522f
--- /dev/null
+++ b/fixincludes/tests/base/netinet/in.h
@@ -0,0 +1,24 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/netinet/in.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX_HTONL_CHECK )
+#if 1
+/*
+ * Macros for number representation conversion.
+ */
+#ifndef ntohl
+#define ntohl(x) (x)
+#define ntohs(x) (x)
+#define htonl(x) (x)
+#define htons(x) (x)
+#endif
+#endif /* ! _XOPEN_SOURCE_EXTENDED */
+#endif /* HPUX_HTONL_CHECK */
diff --git a/fixincludes/tests/base/pthread.h b/fixincludes/tests/base/pthread.h
index 767c6e2774b..9998f660c7c 100644
--- a/fixincludes/tests/base/pthread.h
+++ b/fixincludes/tests/base/pthread.h
@@ -61,6 +61,11 @@ extern int __page_size;
#endif /* PTHREAD_PAGE_SIZE_CHECK */
+#if defined( PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK )
+extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask);
+#endif /* PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK */
+
+
#if defined( SOLARIS_MUTEX_INIT_1_CHECK )
#ident "@(#)pthread.h 1.16 97/05/05 SMI"
#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f6a8cdd002..6caf0ca7a65 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,2225 @@
+2005-05-18 Geoffrey Keating <geoffk@apple.com>
+
+ * dummy-checksum.c: New.
+ * genchecksum.c: New.
+ * c.opt (print_pch_checksum): New flag.
+ * c-pch.c (struct c_pch_validity): Make much shorter.
+ (no_checksum): New.
+ (host_machine): Remove.
+ (target_machine): Remove.
+ (get_ident): Change PCH version number.
+ (pch_init): When -fverbose-asm, print out the compiler fingerprint.
+ Don't put triplets or version string in PCH validity data.
+ Do put the compiler checksum in the validity data.
+ (c_common_valid_pch): Don't check triplets or version string. Do
+ check checksum.
+ (c_common_print_pch_checksum): New.
+ * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
+ Print fingerprint with -v.
+ * c-common.h (c_common_print_pch_checksum): New.
+ (executable_checksum): New.
+ * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
+ (cc1-dummy): New rule.
+ (cc1-checksum.c): New rule.
+ (cc1-checksum.o): New rule.
+ (cc1): Add checksum support.
+ (build/genchecksum): New.
+ (build/genchecksum.o): New.
+ (dummy-checksum.o): New.
+ (genobjnames): Add genchecksum.o.
+ (mostlyclean): Remove *-checksum.c.
+ (gnucompare): Add libgcc to list of directories checked.
+ Make comparison problems in libgcc/ and with checksum files only
+ be warnings.
+ * doc/invoke.texi (Precompiled Headers): Remove caution.
+ Document that it must be the exact same binary. Add a few
+ known-safe flags to the list.
+
+2005-06-13 Geoffrey Keating <geoffk@apple.com>
+
+ * Makefile.in (install-man): Doesn't really depend on installdirs.
+ (various rules for installing manpages): Do depend on installdirs.
+
+2005-05-07 Anthony Green <green@redhat.com>
+
+ PR bootstrap/21403
+ * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
+ x$STMP_FIXPROTO test.
+ * configure: Rebuilt.
+
+2005-06-03 Geoffrey Keating <geoffk@apple.com>
+
+ * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
+ when -isysroot passed.
+
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/20991
+ * tree-ssa-ccp.c (fold_stmt): Don't optimize OBJ_TYPE_REFs if that
+ would result in an already finalized unreachable node becoming
+ reachable while cgraph_global_info_ready.
+
+2005-04-19 Ben Elliston <bje@au.ibm.com>
+
+ * doc/invoke.texi (Optimize Options): Refer to the correct
+ optimisation flag -ftree-dominator-opts, not -ftree-dom.
+
+2005-04-17 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/20490
+ Fix PR tree-optimization/20929
+
+ * tree-ssa-pre.c (create_expression_by_pieces): Use
+ force_gimple_operand on result of fold, value number
+ gimple_operand result.
+
+2005-04-17 Joseph S. Myers <joseph@codesourcery.com>
+
+ Merge from mainline:
+
+ 2005-02-28 Geert Bosch <bosch@gnat.com>
+
+ PR ada/15977
+ * doc/contrib.texi: List contributors for Ada front end
+
+ 2005-03-14 Geoffrey Keating <geoffk@apple.com>
+
+ * doc/cppopts.texi (-fexec-charset): Add concept index
+ entry.
+ (-fwide-exec-charset): Likewise.
+ (-finput-charset): Likewise.
+
+ 2005-04-15 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/install.texi (*-ibm-aix*): Add comment about system
+ limits.
+
+2005-04-17 Richard Sandiford <rsandifo@redhat.com>
+
+ * combine.c (combine_simplify_rtx): Remove a transformation that
+ relies on an invalid assumption about rtl sign-extension semantics.
+
+2005-04-17 Richard Henderson <rth@redhat.com>
+
+ PR target/20375
+ * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
+ of CUMULATIVE_ARGS past the last named argument.
+ (alpha_va_start): Expect pretend_args_size only if strictly less than
+ 6 named arguments.
+ * config/alpha/alpha.h (TARGET_FP, TARGET_FPREGS, TARGET_GAS,
+ TARGET_IEEE_CONFORMANT, TARGET_IEEE, TARGET_IEEE_WITH_INEXACT,
+ TARGET_BUILD_CONSTANTS, TARGET_FLOAT_VAX, TARGET_BWX, TARGET_MAX,
+ TARGET_FIX, TARGET_CIX, TARGET_EXPLICIT_RELOCS, TARGET_SMALL_DATA,
+ TARGET_TLS_KERNEL, TARGET_SMALL_TEXT, TARGET_LONG_DOUBLE_128,
+ TARGET_CPU_EV5, TARGET_CPU_EV6, TARGET_SUPPORT_ARCH): Booleanize.
+
+2005-04-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/20739
+ * gimplify.c (gimplify_addr_expr): Compensate for removal of
+ e.g. cv-qualification conversions.
+
+2005-04-16 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/install.texi (Specific): Avoid using asterisks in @anchor
+ names related to target triplets.
+ Remove i?86-*-esix from platform directory.
+ Remove powerpc-*-eabiaix from platform directory.
+
+2005-04-16 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR middle-end/20491
+ * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
+ falling through from SUBREG case to REG.
+
+2005-04-15 Dave Korn <dave.korn@artimi.com>
+
+ * gcc.c (default_compilers): Clarify obscure error message when
+ reading from standard input.
+
+2005-04-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * gthr-posix.c (pthread_cancel): Define.
+ (pthread_mutexattr_init): Likewise.
+ (pthread_mutexattr_settype): Likewise.
+ (pthread_mutexattr_destroy): Likewise.
+
+2005-04-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/invoke.texi: Fix typos.
+ * doc/md.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+ * doc/tm.texi: Likewise.
+
+2005-04-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-eh.c (lower_try_finally_copy): Generate new code in
+ response to goto_queue entries as if the queue was sorted by
+ index, not pointers.
+ (lower_try_finally_switch): Likewise.
+
+2005-04-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
+ (JUMP_TABLES_IN_TEXT_SECTION): Define.
+ * config/mips/mips.c (mips16_insn_length): Remove reference to
+ JUMP_TABLES_IN_TEXT_SECTION.
+
+2005-04-14 Joseph S. Myers <joseph@codesourcery.com>
+
+ * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
+ refer to 4.0.
+
+2005-04-14 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/20924
+ * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
+ fpsr 0 instead of fpsr 1.
+ (divsf3_internal_thr): Ditto.
+ (divdf3_internal_lat): Ditto.
+ (divdf3_internal_thr): Ditto.
+ (divxf3_internal_lat): Ditto.
+ (divxf3_internal_thr): Ditto.
+
+2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/20927
+ * config/s390/s390-modes.def: Define TFmode.
+
+2005-04-14 Alexandre Oliva <aoliva@redhat.com>
+ Roger Sayle <roger@eyesopen.com>
+
+ PR target/20126
+ * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
+ signal that all GIVs couldn't be reduced.
+
+2005-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
+ * config/sparc/sparc.md (untyped_call): Save the registers manually.
+
+ * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
+
+2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR middle-end/20917
+ * config/s390/s390.md ("*set_tp"): Use SET in pattern.
+ ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
+
+2005-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20795
+ * config/i386/i386.c (construct_container): Pass empty aligned
+ struct, union or class in memory.
+
+2005-04-08 Ulrich Weigand <uweigand@de.ibm.com>
+
+ Backport from mainline:
+ * config/s390/tpf.h (ASM_SPEC): Define.
+
+2005-04-07 Andreas Schwab <schwab@suse.de>
+
+ Backport from mainline:
+
+ 2005-04-03 Steven Bosscher <stevenb@suse.de>
+
+ PR middle-end/20648
+ * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
+ a computed goto if the edge to the computed goto block has
+ incoming abnormal edges. Clarify how the function works.
+
+2005-04-07 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR target/20093
+ * simplify-rtx.c (simplify_unary_operation): Check
+ SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
+
+2005-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/18659
+ PR ada/18819
+ * doc/invoke.texi (Optimize Options): Document that
+ -ftree-sra is not automatically enabled for the Ada compiler.
+
+2005-04-06 Richard Sandiford <rsandifo@redhat.com>
+
+ * c.opt (-F): Remove trailing whitespace from help string.
+ (-finput-charset): Use a tab to separate the switch name and help
+ string.
+ * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
+ (-ftree-vectorizer-verbose): Likewise.
+
+2005-04-06 Dale Johannesen <dalej@apple.com>
+
+ * doc/invoke.texi (Optimization Options): Remove
+ duplicate -fcse-follow-jumps. Add -fweb.
+ (-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
+ (-fivcanon): Fix spelling (-ftree-loop-ivcanon).
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
+ scope.
+
+2005-04-06 Ranjit Mathew <rmathew@hotmail.com>
+
+ * doc/install.texi: Update the URL for Jacks.
+ * doc/sourcebuild.texi: Likewise.
+
+2005-04-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/17245
+ * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
+ Revert 2004-10-08 patch. Reject TFmode LO_SUM in 32-bit mode.
+
+2005-04-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/20076
+ * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
+ that call __builtin_return or __builtin_apply_args.
+
+2005-04-06 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/20421
+ * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
+ (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
+ Allocate local stack slots here. Set ix86_optimize_mode_switching.
+ flag here. Implement using define_insn_and_split.
+ (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
+ (frndintxf2_mask_pm_i387): New insn patterns.
+ (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
+ Do not set ix86_optimize_mode_switching flag.
+ (ceilsf2, ceildf2, ceilxf2): Same.
+ (btruncsf2, btruncdf2, btruncxf2): Same.
+ (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
+
+2005-04-05 James E. Wilson <wilson@specifixinc.com>
+
+ PR target/20670
+ * unwind-ia64.c (uw_intall_context): Add missing load of r27.
+
+2005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * doc/install.texi (Configuration): Document --with-java-home.
+
+2005-04-05 Dale Johannesen <dalej@apple.com>
+
+ PR middle-end/19225
+ * calls.c (expand_call): Flush pending deferrals before
+ throwing call.
+
+2005-04-06 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR target/20625
+ * tree-ssa-loop-ivopts.c (generic_type_for): New function.
+ (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
+
+2005-04-05 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
+
+2005-04-05 Ben Elliston <bje@au.ibm.com>
+
+ * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
+ -ftree-live_range_split. Perhaps renamed at some point?
+
+2005-04-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/19317
+ * calls.c (expand_call): Disable return slot optimization.
+
+2005-04-05 Richard Henderson <rth@redhat.com>
+
+ PR target/20342
+ PR target/20447
+ * config/i386/i386.c (print_operand): Handle vector zeros.
+ (ix86_split_to_parts): Handle CONST_VECTOR.
+ (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
+ (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
+ what modes to tie for MMX and SSE registers.
+ * config/i386/i386.h (MMX_REG_MODE_P): Remove.
+ * config/i386/i386.md: Extend move 0 -> xor peephole to apply
+ to vector modes as well.
+ * config/i386/predicates.md (const0_operand): Handle VOIDmode
+ properly as an input mode.
+
+2005-04-05 Hans-Peter Nilsson <hp@axis.com>
+
+ PR rtl-optimization/20527
+ * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
+ REG_INC note, test that the register also isn't mentioned in PRED
+ or SUCC.
+
+2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
+ overriding.
+
+2005-04-05 Olivier Hainque <hainque@adacore.com>
+
+ * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
+ match what the system unwinder expects.
+ * config/mips/mips.c (mips_frame_set): If we're saving the return
+ address register and the dwarf return address column number differs
+ from the hard register number, adjust the note reg to refer to the
+ former.
+
+2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Sebastian Pop <sebastian.pop@cri.ensmp.fr>
+
+ PR tree-optimization/19903
+ * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
+ that don't fit in their type after conversion.
+
+2005-04-04 Roger Sayle <roger@eyesopen.com>
+ Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/19199
+ * fold-const.c (non_lvalue): Split tests into...
+ (maybe_lvalue_p): New function.
+ (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
+ C++ front-end prior to lowering into gimple form.
+
+2004-04-04 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/19537
+ * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
+ * tree-ssa-loop-ivopts.c: Include langhooks.h.
+ (add_standard_iv_candidates_for_size): New function, extracting code
+ from add_standard_iv_candidates and parameterizing it by type size.
+ (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
+
+2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/invoke.texi (SPARC options): Document that
+ -mlittle-endian is not supported on Linux either.
+
+2005-04-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/20446
+ * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
+ * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
+ (NEED_INDICATE_EXEC_STACK): Define to 1.
+ * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
+ (NEED_INDICATE_EXEC_STACK): Define to 1.
+ * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
+ (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
+ (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
+ (pic_helper_emitted_p): New global.
+ (emit_pic_helper): New function extracted from...
+ (load_pic_register): ...here. Add 'delay_pic_helper' parameter.
+ Do not call emit_pic_helper if delay_pic_helper is true.
+ (sparc_expand_prologue): Pass 'false' to load_pic_register.
+ (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
+ (sparc_file_end): New function.
+
+2005-04-04 Richard Henderson <rth@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/16104
+ * fold-const.c (fold_unary): Fix folding of vector conversions.
+
+2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR debug/20505
+ * dwarf2out.c (tree_add_const_value_attribute): Only add if it's
+ an INTEGER_CST.
+
+2005-04-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/18644
+ * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
+ semantics.
+
+2005-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/19345
+ * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
+ (remap_decl): Insert type decl in map earlier.
+
+2005-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR tree-optimization/20640
+ * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
+ post-dominator if it has phi nodes.
+ (eliminate_unnecessary_stmts): Remove dead phis in all blocks
+ before dead statements.
+
+2005-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/20491
+ * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
+
+2005-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/20290
+ * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
+ in every iteration if the entry point is the exit test.
+
+2005-04-02 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
+ * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
+
+2005-04-02 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/t-darwin8: Comment out ppc64 multilib.
+
+2005-04-01 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
+ Jan Hubicka <jh@suse.cz>
+ Steven Bosscher <stevenb@suse.de>
+
+ * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
+ call cost based on argument sizes.
+ (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
+ inlining.
+ * params.def: (max-inline-inssn-single): Set to 450.
+ (max-inline-insns-auto): Set to 90.
+ (max-inline-insns-recursive): Set to 450
+ (max-inline-insns-recursive-auto): Set to 450.
+ (large-function-insns): Set to 2700.
+ (inline-call-cost): New parameter.
+ * tree-inline.c (estimate_move_cost): New function.
+ (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
+ for non-gimple-regs, set cost to 0 for gimple-regs. Compute call size
+ based on arguments.
+ * tree-inline.h (estimate_move_cost): Declare.
+ * invoke.texi: (max-inline-inssn-single): Change default to 450.
+ (max-inline-insns-auto): Change default to 90.
+ (max-inline-insns-recursive): Change default to 450
+ (max-inline-insns-recursive-auto): Change default to 450.
+ (large-function-insns): Change default to 2700.
+ (inline-call-cost): Document new parameter.
+
+2005-04-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (thumb_call_via_label): Include space for SP.
+ (arm_output_function_epilogue): Allow call_via_SP.
+ (thumb_call_via_reg, arm_file_end): Ditto.
+ * config/arm/arm.h (struct machine_function): Include space for SP.
+ (thumb_call_via_label): Update declaration.
+
+2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c-decl.c (validate_proto_after_old_defn): Look at
+ TYPE_MAIN_VARIANT of argument types.
+
+2005-04-01 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/20635
+ * varasm.c (mark_decl_referenced): Do not mark extern inline functions
+ as needed.
+
+2005-04-01 Paolo Bonzini <bonzini@gnu.org>
+
+ PR middle-end/19454
+ PR rtl-optimization/20600
+
+ * combine.c (gen_binary): Remove.
+ (known_cond, simplify_shift_const, find_split_point,
+ combine_simplify_rtx, simplify_if_then_else, simplify_set,
+ simplify_logical, expand_field_assignment, extract_left_shift,
+ force_to_mode, if_then_else_cond, apply_distributive_law,
+ simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
+ simplify_comparison, reversed_comparison): Replace with
+ simplify_gen_binary, simplify_gen_relational or
+ distribute_and_simplify_rtx.
+ (distribute_and_simplify_rtx): New function.
+
+ * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
+ to fix addresses involving EBP and ESP.
+ (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
+ for SUBREGed registers.
+ (legitimate_address_p): Accept SUBREGed registers.
+
+2005-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/19406
+ * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
+ (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
+ for FIELD_DECLs.
+
+2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
+
+2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/17855
+ * gimplify.c (gimplify_expr): Create a temporary for lvalue
+ COND_EXPR and CALL_EXPR.
+
+2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/tree-ssa.texi: Fix a typo.
+
+2005-03-31 Olivier Hainque <hainque@adacore.com>
+
+ * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
+ defined and non-zero.
+
+2005-03-31 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/20611
+ * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
+ label operand. Remove (use (unspec..)). Don't emit a label on
+ the offset word.
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
+ generate inline label for load_toc_v4_PIC_1b.
+ (rs6000_emit_load_toc_table): Likewise.
+
+2005-03-31 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
+ ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
+
+2005-03-31 Alan Modra <amodra@bigpond.net.au>
+
+ * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
+ (powerpc64-*-linux*): Use it. Rearrange tm_file assignment.
+ (powerpc-*-linux*): Build a biarch compiler when --enable-targets
+ is given with "powerpc64*" or "all", or when --with-cpu chooses
+ a 64-bit cpu.
+
+2005-03-30 Richard Henderson <rth@redhat.com>
+
+ * cgraph.h (struct cgraph_node): Add alias.
+ * varasm.c (assemble_alias): Set it.
+ * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
+ avoid calling cgraph_expand_function.
+
+2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/772
+ PR c/17913
+ * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
+ C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
+ c_label_context, label_context_stack): New.
+ * c-decl.c (define_label): Check for jumps into statement
+ expressions. Add label to list of defined labels.
+ (start_function): Push context on label_context_stack.
+ (finish_function): Pop context from label_context_stack.
+ * c-typeck.c (label_context_stack): New.
+ (c_finish_goto_label): Check for jumps into statement
+ expressions. Add label to list of jumped to labels.
+ (struct c_switch): Add blocked_stmt_expr.
+ (c_start_case): Initialize it.
+ (do_case): Check it.
+ (c_finish_case): Verify !blocked_stmt_expr.
+ (c_begin_stmt_expr): Push context on label_context_stack.
+ Increment blocked_stmt_expr. Mark labels jumped to from outside
+ as undefinable.
+ (c_finish_stmt_expr): December blocked_stmt_expr. Mark labels
+ defined in the statement expression and no longer jumpable to.
+ Mark labels jumped to from just outside the statement expression
+ as again definable. Pop context from label_context_stack.
+ * doc/extend.texi (Statement Exprs): Update.
+
+2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/20368
+ * c-decl.c (start_function): Check for old_decl being
+ error_mark_node.
+
+2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
+
+ PR middle-end/20177
+ * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
+ * modulo-sched.c (const_iteration_count): Return on NULL
+ pre-header.
+ (print_node_sched_params): Return on NULL dump_file.
+ (generate_reg_moves): Handle reg-anti dependencies and disregard
+ closing branch when generating register moves.
+ (sms_schedule): Mark the SMSed block dirty.
+ * passes.c (rest_of_handle_sms): Call update_life_info for all
+ basic-blocks.
+ * testsuite/gcc.dg/20050321-1.c: New test.
+ * testsuite/gcc.dg/20050330-1.c: New test.
+
+2005-03-30 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-scalar-evolution.c (instantiate_parameters_1): Return
+ as soon as a chrec_dont_know is detected.
+
+2005-03-30 Alan Modra <amodra@bigpond.net.au>
+
+ * doc/install.texi: Update binutils requirement for powerpc*-linux.
+
+2005-03-30 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/20203
+ * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
+ Remove convert_memory_address call duplicating that in memory_address.
+
+2005-03-29 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/20532
+ * simplify-rtx.c (simplify_binary_operation): Protect from
+ overflow when adding coefficients for PLUS or MINUS. Handle
+ CONST_DOUBLE exact power of two as multiplier.
+
+2005-03-29 Richard Henderson <rth@redhat.com>
+
+ PR c/20519
+ * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
+ (build_compound_literal): Likewise. Propagate decl type into the
+ initializer.
+ (finish_decl): Likewise. Use new return value from complete_array_type
+ for zero sized arrays.
+ (complete_array_type): Move ...
+ * c-common.c (complete_array_type): ... here. Change first argument
+ to pointer-to-type-node. Consistently use sizetype for the index
+ except for zero sized arrays. Detect zero sized arrays for pedantic
+ mode diagnostics. Create a new type node instead of modifying the
+ old node in place.
+ * c-tree.h (complete_array_type): Move decl ...
+ * c-common.h (complete_array_type): ... here.
+
+2005-03-29 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/19108
+ * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
+
+2005-03-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/20622
+ * cgraph.h (struct cgraph_varpool_node): Add alias field.
+ * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
+ assemble_variable on aliases.
+ * varasm.c (assemble_alias): Set node->alias.
+ * toplev.c (wrapup_global_declarations): Don't call
+ rest_of_decl_compilation on aliases again.
+
+2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/20263
+ * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
+ the DECL_NAME, not the DECL_ASSEMBLER_NAME.
+
+2005-03-24 Geoffrey Keating <geoffk@apple.com>
+
+ * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
+
+ * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
+ MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
+
+2005-03-25 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
+
+ PR target/15491
+ * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
+ (vax_rtx_costs): Return false when passed unsupported rtx's. Handle
+ FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE. Fix costs for POST_INC,
+ PRE_DEC, NEG and NOT.
+
+2005-03-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/20249
+ * cse.c (insert_regs): Do not record equivalence of registers in
+ different modes.
+
+2005-03-24 James E Wilson <wilson@specifixinc.com>
+
+ * doc/install.texi (--enable-altivec): Delete docs.
+
+2005-03-24 J"orn Rennecke <joern.rennecke@st.com>
+
+ Band aid for PR target/20617:
+ * config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.
+
+2005-03-23 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/20601
+
+ * tree-ssa-pre.c (insert_aux): Add missing condition to
+ constification.
+
+2005-03-22 James E Wilson <wilson@specifixinc.com>
+
+ PR c++/19769
+ * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
+ origin.
+
+2005-03-22 Daniel Berlin <dberlin@dberlin.org>
+
+ * c-opts.c (c_common_parse_file): Only start/end main source file
+ if debug hooks says the writer wants it.
+ * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
+ member.
+ (xcoff_debug_hooks): Ditto.
+ * debug.c (do_nothing_hooks): Ditto.
+ * debug.h (gcc_debug_hooks): Ditto.
+ * dwarf2out.c (dwarf2_debug_hooks): Ditto.
+ * sdbout.c (sdb_debug_hooks): Ditto.
+ * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
+
+2005-03-22 Mark Mitchell <mark@codesourcery.com>
+
+ * doc/extend.texi: Deprecate C++ min/max operators.
+
+2005-03-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20561
+ * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
+ between jump table and its label.
+ * final.c (shorten_branches): Handle notes in between ADDR_VEC
+ resp. ADDR_DIFF_VEC and the label preceeding it.
+ (final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
+ is emitted in the right section.
+
+2005-03-21 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/20539
+ * fold-const.c (fold_binary): Fix type mismatch between
+ TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
+ (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
+ for non-truth-valued expressions.
+
+ * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
+ and FUNCTION_DECL in the main switch.
+ <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
+ TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
+ we also need to convert their operands to match.
+ <TRUTH_NOT_EXPR>: Likewise.
+
+2005-03-21 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/20557
+ * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
+ to determine whether a block can be duplicated, rather than test
+ whether the block contains noncopyable insns ourselves.
+
+2005-03-21 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
+ unrolling if -fpeel-loops is specified, too.
+ * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
+ Remove superfluous check for flag_unroll_loops.
+
+2005-03-21 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR other/20564
+ * gcov.c (output_lines): Only output function block summary when
+ outputting branch information.
+ * doc/gcov.texi: Document format of preamble and additional block
+ information lines.
+
+2005-03-21 Richard Sandiford <rsandifo@redhat.com>
+
+ * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
+ (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
+ the defaults false if BITS_PER_UNIT != 8.
+ (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
+ (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
+ than BITS_PER_UNIT != 8.
+ (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
+ (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
+ (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
+ #undefs.
+ * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
+ (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
+
+2005-03-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ PR target/18551
+ * config/avr/avr.c (avr_output_function_prologue): Do not use
+ current_function_name() in a label, use a local label instead.
+
+2005-03-08 Dorit Naishlos <dorit@il.ibm.com>
+ Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/20474
+ * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
+ size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
+
+2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c-decl.c (check_bitfield_type_and_width): Require bit-field
+ width to have integer type.
+ (build_enumerator): Require enumerator value to have integer type.
+
+2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * doc/extend.texi (__builtin_inf): Move statement about INFINITY
+ to __builtin_inff.
+
+2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
+ std=iso9899:199x): Correct descriptions.
+
+2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config.gcc: Consistently use solaris2.1[0-9]* instead of
+ solaris2.1[0-9].
+
+2005-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/20493
+ * fold-const.c (fold_widened_comparison): Don't optimize casts of
+ function pointers on targets that require function pointer
+ canonicalization.
+ (fold_sign_changed_comparison): Likewise.
+
+2005-03-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
+
+ PR target/18251
+ * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
+ (*movmemqi_insn): Delete.
+ (*movmemhi): Delete.
+
+2005-03-18 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/20225
+ * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
+ too late.
+ * varasm.c (find_decl_and_mark_needed): Mark needed only when not
+ called too late.
+
+2005-03-18 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
+ mno-fp-ret-in-387 multilib variants.
+
+2005-03-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/18380
+ * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
+
+2005-03-17 Richard Henderson <rth@redhat.com>
+
+ * doc/extend.texi (Weak Pragmas): New section.
+ (attribute alias): Clarify that target must be in the same
+ translation unit.
+
+2005-03-16 James E. Wilson <wilson@specifixinc.com>
+
+ * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
+ and return without creating new state if before_nops_num is nonzero.
+ * config/ia64/ia64.md (first_insn): New attribute.
+ (alloc): Set it to yes.
+
+2005-03-16 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/15700
+ * varasm.c (struct alias_pair): Rename from struct output_def_pair.
+ (alias_pairs): Rename from output_defs.
+ (find_decl_and_mark_needed): Split out from assemble_alias.
+ (do_assemble_alias): New.
+ (assemble_output_def): Remove.
+ (finish_aliases_1, finish_aliases_2): New.
+ (process_pending_assemble_output_defs): Remove.
+ (assemble_alias): Defer aliases for which we don't yet have a
+ non-external decl for the target symbol.
+ * passes.c (rest_of_decl_compilation): Register variables with cgraph.
+ * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
+ * toplev.c (compile_file): Use finish_aliases_2 instead of
+ process_pending_assemble_output_defs.
+ * tree.h (finish_aliases_1, finish_aliases_2): Declare.
+ (process_pending_assemble_output_defs): Remove.
+
+2005-03-16 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
+ of closing parenthesis.
+
+2005-03-16 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/17454
+ * tree.c (tree_size): Add case for TREE_BINFO.
+ * fold-const.c (fold_checksum_tree): Only clear the overloaded
+ field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
+
+2005-03-15 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
+ STACK_GROWS_DOWNWARD.
+
+2005-03-15 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
+ call_used_regs for wCG registers.
+
+2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
+ for non-offsettable memory references to cope with outstanding reload
+ replacements, take 2.
+
+2005-03-14 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/20280
+ * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a
+ temporary variable of pointer type if an lvalues is required.
+ (gimplify_modify_expr_rhs): Request an rvalue from it.
+ (gimplify_expr): Pass fallback on.
+
+2005-03-14 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/18628
+ * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
+ register.
+
+2005-03-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
+ * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
+ (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
+ (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
+ (ASM_SPEC): Pass down -msym32 and -mno-sym32.
+
+2005-03-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.h (mips_fix_vr4130_string): Declare.
+ (TARGET_FIX_VR4130): New macro.
+ (TARGET_OPTIONS): Add -mfix-vr4130.
+ (ISA_HAS_MACCHI): New macro.
+ (ASM_SPEC): Add -mfix-vr4130.
+ * config/mips/mips.c (mips_fix_vr4130_string): New variable.
+ (override_options): Handle mips_fix_vr4130_string.
+ (mips_avoid_hazards): Clear all_noreorder_p
+ if we're working around VR4130 errata and the macc alternatives
+ are not available.
+ * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
+ (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
+ * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
+ (MULTILIB_DEFAULTS): Remove leading "march=".
+ (DRIVER_SELF_SPECS): Likewise. Make -mfix-vr4130 imply -march=vr4130
+ if no architecture option is given.
+ * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
+ VR4130 multilibs.
+ (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
+ * doc/invoke.texi: Document -mfix-vr4130.
+
+2005-03-13 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/19331
+ * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
+ * fold-const.c (fold_sign_changed_comparison): Likewise.
+ (fold_binary): Optimize comparisons against widened operands if
+ the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
+
+2005-03-14 Alan Modra <amodra@bigpond.net.au>
+
+ * config.gcc: Remove excess indentation.
+ (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
+
+2005-03-13 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ PR target/20288
+ * config/avr/avr.c (print_operand): Add 'p' and 'r'.
+ (out_movhi_r_mr): Read low byte of volatile MEM first.
+ (out_movhi_mr_r): Write high byte of volatile MEM first.
+
+2005-03-11 David Edelsohn <edelsohn@gnu.org>
+
+ PR rtl-optimization/20306
+ * expr.c (emit_move_complex): Set try_int false if mode is
+ MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
+ emit_block_move if try_int is true.
+
+2005-03-11 Richard Henderson <rth@redhat.com>
+
+ PR target/20415
+ * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
+ * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
+ to match.
+
+2005-03-11 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.c (override_options): Only warn about -mint64
+ deprecation if TARGET_INT64.
+
+2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR rtl-opt/20412
+ * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
+ correct mode.
+
+2005-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20322
+ * combine.c (try_combine): If recog_for_combine added CLOBBERs
+ to NEWI2PAT, fail to combine if they are used by NEWPAT.
+
+2005-03-10 Aldy Hernandez <aldyh@redhat.com>
+
+ * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
+
+2005-03-10 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
+
+2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20375
+ * function.c (struct assign_parm_data_one): Remove last_named
+ field.
+ (assign_parm_find_data_types): Don't determine last_named.
+ Reorder named_parm determination.
+ (assign_parms): Only setup varargs on the last non-varadic
+ parameter.
+
+2005-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR inline-asm/20314
+ * gimplify.c (gimplify_asm_expr): Handle input/output constraints
+ with multiple alternatives.
+
+ * stmt.c (parse_output_constraint): Fix a typo.
+
+2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
+ for non-offsettable memory references to cope with outstanding reload
+ replacements.
+ * config/s390/s390.md ("reload_outti"): Call find_replacement to
+ avoid losing outstanding address reloads.
+ ("reload_outdi", "reload_outdf"): Likewise.
+
+2005-03-08 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/20122
+ * tree-vect-analyze.c (vect_object_analysis): Analyze initial
+ condition of access function instead of base.
+
+2005-03-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
+ output_e500_flip_gt_bit.
+
+ * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
+ as bit 31.
+ (rs6000_generate_compare): Fix logic to look at the correct bits.
+ (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
+ Look at GT bit.
+ (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
+ gen_e500_flip_gt_bit. Rename gen_move_from_CR_eq_bit to
+ gen_move_from_CR_gt_bit.
+
+ * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
+ ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
+ (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
+
+ * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
+ (E500_CR_IOR_COMPARE): New constant.
+
+2005-03-08 Earl Chew <earl_chew@agilent.com>
+ David Billinghurst <David.Billinghurst@riotinto.com>
+
+ * config/i386/host-cygwin.c: New file to support precompiled
+ headers on cygwin
+ * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
+ * config.host: Use above files for cygwin host.
+
+2005-03-07 Richard Sandiford <rsandifo@redhat.com>
+
+ PR rtl-optimization/19683
+ * reload1.c (choose_reload_regs): Pass the number of bits, not the
+ number of bytes, to smallest_int_for_mode. Fix arguments to
+ REG_CANNOT_CHANGE_MODE_P.
+
+2005-03-07 David Billinghurst <David.Billinghurst@riotinto.com>
+
+ * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
+
+2005-03-07 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/ia64/hpux.h (LINK_SPEC): Add -z.
+ * config/ia64/ia64.c (ia64_function_value): Return a REG not a
+ PARALLEL for an empty structure.
+
+2005-03-05 James A. Morrison <phython@gcc.gnu.org>
+
+ * doc/c-tree.texi: Wrap comments in @r{}.
+ * doc/cpp.texi: Likewise.
+ * doc/cppinternals.texi: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/objc.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+ * doc/tm.texi: Likewise.
+ * doc/tree-ssa.texi
+
+2005-03-04 Devang Patel <dpatel@apple.com>
+
+ PR tree-optimization/18815
+ * tree-if-conv.c (combine_blocks): Adjust loop header edges for
+ loops with zero exit edges.
+
+2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
+ *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
+
+2005-03-05 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c++/19797
+ * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
+ (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
+ * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
+ * pa.c (get_plabel): Change argument to symbol_ref. Call
+ maybe_get_identifier instead of get_identifier.
+ (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
+ (struct deferred_plabel): Replace name field with symbol field.
+ (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
+ ASM_OUTPUT_EXTERNAL_REAL is defined.
+ (output_global_address): Use output_addr_const for output of all
+ symbol_refs.
+ (output_deferred_plabels): Use symbol_ref instead of name for address
+ output.
+ * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
+ ASM_OUTPUT_SYMBOL_REF): New macros.
+ * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw. Update
+ comment.
+ (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
+ label.
+
+2005-03-04 Andrew Haley <aph@redhat.com>
+
+ * unwind-dw2-fde-glibc.c (struct
+ unw_eh_callback_data.check_cache):
+ (frame_hdr_cache): New.
+ (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
+ Cache frame header info.
+
+2005-03-04 Daniel Jacobowitz <dan@codesourcery.com>
+
+ 2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
+ * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
+ for Thumb.
+ * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
+
+2005-03-04 Daniel Berlin <dberlin@dbrelin.org>
+
+ Fix PR debug/20253
+
+ * c-opts.c (c_common_parse_file): Call start_source_file
+ and end_source_file at the approriate times.
+
+ * dwarf2out.c (dwarf2out_finish): Don't auto-end
+ the main file, it will be done for us now.
+
+2005-03-03 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/20277
+ * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
+ -mcpu to override any other explicitly given flags.
+
+2005-03-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19916
+ * varasm.c (initializer_constant_valid_p): Allow conversions
+ between OFFSET_TYPEs. Tidy.
+
+2005-03-02 Geoffrey Keating <geoffk@apple.com>
+
+ * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
+
+2005-03-02 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * cgraph.h (struct cgraph_edge): Add prev_caller and
+ prev_callee fields.
+ (cgraph_node_remove_callees): Export.
+ * cgraph.c (cgraph_create_edge): Initialize prev_caller
+ and prev_callee.
+ (cgraph_edge_remove_callee): New function.
+ (cgraph_edge_remove_caller): Likewise.
+ (cgraph_remove_edge): Use.
+ (cgraph_redirect_edge_callee): Likewise.
+ (cgraph_node_remove_callees): New function.
+ (cgraph_node_remove_callers): Likewise.
+ (cgraph_remove_node): Use.
+ * tree-optimize.c (tree_rest_of_compilation): Use
+ cgraph_node_remove_callees instead of manual loop.
+ * cgraphunit.c (cgraph_finalize_function): Likewise.
+ (cgraph_expand_function): Likewise.
+ (cgraph_remove_unreachable_nodes): Likewise.
+
+2005-03-01 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/20216
+ * tree-chrec.c (tree_fold_factorial): Delete.
+ (tree_fold_binomial): Change argument list to take a return type
+ and change the type of K to unsigned int. Rewrite to avoid explicit
+ evaluation of factorials, and (recursively) calling fold to perform
+ compile-time arithmetic. Return NULL on (internal) overflow.
+ (chrec_evaluate): Change type of K to an unsigned int. Avoid
+ calling tree_fold_binomial unnecessarily. Return chrec_dont_know
+ if any intermediate calculation overflows.
+ (chrec_apply): Update call to chrec_evaluate.
+
+2005-03-01 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/19065.
+ * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
+ not including (reg). Do not check for reg being CRIS_PC_REGNUM.
+ (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
+ * config/cris/cris.md: Tweak comments referring to Q.
+ ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
+ ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
+ ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
+ ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
+ ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
+ Insert spaces in constraints to align alternatives vertically for
+ readability.
+ ("cmphi"): Ditto. Add separate alternative for operand 0 "r",
+ operand 1: "M".
+
+2005-02-28 Dale Johannesen <dalej@apple.com>
+ Stan Shebs <shebs@apple.com>
+
+ Rewrite of 64-bit Darwin structure-by-value pass/return.
+ * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
+ intoffset, use_stack, named.
+ * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
+ (rs6000_darwin64_record_arg_advance_flush): New.
+ (rs6000_darwin64_record_arg_advance_recurse): New.
+ (rs6000_darwin64_record_arg_flush): New.
+ (rs6000_darwin64_record_arg_recurse): New.
+ (rs6000_darwin64_record_arg): New.
+ (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
+ (function_arg_boundary): Handle 128-bit aligned structs.
+ (function_arg_advance): Rewrite darwin64 struct handling.
+ (function_arg): Call rs6000_darwin64_record_arg.
+ (function_arg_partial_nregs): Handle darwin64 structs.
+ (rs6000_darwin64_function_value): Remove.
+ (rs6000_function_value): Call rs6000_darwin64_record_arg.
+
+2005-02-28 John David Anglin <dave.anglin#nrc-cnrc.gc.ca>
+
+ PR target/19819
+ * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
+ and after reload in REG+REG indexed addresses without REG_POINTER
+ set in the base and not set in the index.
+
+2005-02-28 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/19874
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
+ between different machine modes is never a "useless" conversion.
+
+2005-02-27 Zack Weinberg <zack@codesourcery.com>
+
+ * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
+ * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
+ installation directory first.
+
+2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR rtl-optimization/17728
+ * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
+ operand 0 from general_operand to move_dest_operand.
+
+2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
+ instead of trying to save and restore TREE_SYMBOL_REFERENCED.
+ * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
+ (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
+
+2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/20188
+ * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
+ for the lhs, also walk over the tree. Likewise for rhs.
+
+2005-02-26 Joseph S. Myers <joseph@codesourcery.com>
+
+ * doc/invoke.texi, doc/standards.texi: Refer to
+ gcc-4.0/c99status.html.
+
+2005-02-26 Paolo Carlini <pcarlini@suse.de>
+
+ * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
+ Clarify that the alternative way doesn't work in GNU C++.
+
+2005-02-25 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/19930
+ * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
+ (LIBGCC2_HAS_DF_MODE): New.
+ (LIBGCC2_HAS_XF_MODE): New.
+ (LIBGCC2_HAS_TF_MODE): New.
+ * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
+ (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
+ * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
+ (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
+ (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
+ * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
+ and add _fixtfdi, _fixunstfdi, _floatditf
+ * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
+ L_fixunstfdi, L_floatditf.
+ * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
+ (LIBGCC2_HAS_TF_MODE): Define.
+
+2005-02-25 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/20204
+ * tree-into-ssa.c (insert_phi_nodes_for): Do not use
+ REWRITE_THIS_STMT markers on PHI nodes.
+ (rewrite_initialize_block): Likewise.
+
+2005-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * version.c (version_string): Mark as prerelease.
+ * doc/include/gcc-common.texi (DEVELOPMENT): @clear it.
+ * configure.ac (is_release): Set to 1.
+ * configure: Regenerated.
+
+2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/19937
+ * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
+ to the type of the induction variable.
+
+2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/20117
+ * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
+ the block including noncopyable insn.
+
+2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cse.c (delete_trivially_dead_insns): Speed up by minimizing
+ calls to find_reg_note.
+
+2005-02-24 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/20127
+ * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
+ the type.
+
+2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
+ vector types if to use base reg for misaligned non-word ld/std.
+
+2005-02-24 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14619
+ * config/cris/cris.c (cris_target_asm_function_prologue): Create
+ dwarf2 label manually and put it after, not before the prologue.
+
+2005-02-24 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/19019
+ * reload.c (operands_match_p): Only increment register number for
+ SCALAR_INT_MODE_P modes in multiple hard registers.
+
+ * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
+ Fix formatting.
+
+2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * ChangeLog.5: Fix log message typo(s).
+ * ChangeLog.7: Likewise.
+ * ChangeLog.tree-ssa: Likewise.
+ * cfgexpand.c: Fix comment typo(s).
+ * conflict.c: Likewise.
+ * defaults.h: Likewise.
+ * dwarf2out.c: Likewise.
+ * gcse.c: Likewise.
+ * ggc-page.c: Likewise.
+ * tree-eh.c: Likewise.
+ * tree-ssa-dom.c: Likewise.
+
+2005-02-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/19019
+ * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
+ * config/rs6000/darwin-ldouble.c: Only use the .symver directives
+ if SHARED is defined.
+
+ PR target/20196
+ * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
+ allow splitting only if operands 0 and 3 don't overlap.
+
+2005-02-24 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/19953
+ * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
+ (fold_builtin_1): Call them.
+ * fold-const.c (fold_complex_mult_parts): Split out from ...
+ (fold_complex_mult): ... here. Fix typo in both imaginary case.
+ (fold_complex_div_parts, fold_complex_div): New.
+ (fold): Use them.
+ * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
+
+2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * tree-ssa-ccp.c (visit_assignment): Verify that result of
+ VIEW_CONVERT_EXPR is_gimple_min_invariant.
+
+ * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
+ (print_node): Likewise.
+ Print TYPE_SIZES_GIMPLIFIED.
+
+2005-02-24 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
+ ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
+ operands as commutative in constraints.
+
+2005-02-24 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-into-ssa.c: Re-organize internal functions.
+
+2005-02-24 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/18902
+ * c-opts.c (c_common_post_options): Set flag_complex_method to 2
+ for c99.
+ * common.opt (fcx-limited-range): New.
+ * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
+ * toplev.c (flag_complex_method): Initialize to 1.
+ (process_options): Set flag_complex_method to 0 if
+ flag_cx_limited_range.
+ * doc/invoke.texi (-fcx-limited-range): New.
+
+2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cse.c (delete_trivially_dead_insns): Speed up by using
+ NEXT_INSN and PREV_INSN directly instead of next_real_insn and
+ prev_real_insn.
+
+2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
+
+ * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
+ functions when -mid-shared-library is being used.
+
+2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
+ (LINK_LIBGCC_SPECIAL_1): Don't mention it.
+ * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
+ * system.h: Poison LINK_LIBGCC_SPECIAL.
+
+2005-02-23 James E Wilson <wilson@specifixinc.com>
+
+ * gengtype.c (note_insn_name): Make 1 element larger.
+
+2005-02-23 Roger Sayle <roger@eyesopen.com>
+
+ PR target/20018
+ PR rtl-optimization/20097
+ * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
+ BImode SUBREGs of SImode registers which confuse the ia64 backend.
+
+2005-02-23 David Edelsohn <edelsohn@gnu.org>
+
+ * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
+ * t-aix52 (SHLIB_INSTALL): Same.
+
+2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * genpreds.c: Update copyright.
+
+2005-02-23 Michael Beach <michaelb@ieee.org>
+
+ PR target/20159
+ * config/sparc/t-elf (startup files): Assemble with CPP.
+
+2005-02-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
+ (write_predicate_expr): Likewise.
+
+2005-02-22 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/20100
+ PR tree-optimization/20115
+ * tree-optimize.c (init_tree_optimization_passes): Remove
+ pass_maybe_create_global_var.
+ * tree-pass.h (pass_maybe_create_global_var): Remove.
+ * tree-ssa-alias.c (aliases_computed_p): Declare.
+ (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
+ (count_calls_and_maybe_create_global_var): Remove.
+ (pass_maybe_create_global_var): Remove.
+ (init_alias_info): Do not declare aliases_computed_p.
+ (maybe_create_global_var): If the function contains no
+ call-clobbered variables and a mix of pure/const and regular
+ function calls, create .GLOBAL_VAR.
+ Mark all call-clobbered variables for renaming.
+ (merge_pointed_to_info): Update comment.
+ (add_pointed_to_var): Likewise.
+ (is_escape_site): Likewise.
+ Accept struct alias_info * instead of size_t *.
+ Update all users.
+ Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
+ as necessary.
+ * tree-ssa-operands.c (get_call_expr_operands): If
+ ALIASES_COMPUTED_P is false, do not add call-clobbering
+ operands.
+ * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
+ (delete_tree_ssa): Likewise.
+
+2005-02-22 James E Wilson <wilson@specifixinc.com>
+
+ * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
+ (do_compile): Do call it here.
+
+2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR rtl-optimization/20017.
+ * passes.c (rest_of_handle_combine, rest_of_handle_cse,
+ rest_of_handle_cse2, rest_of_handle_gcse): Call
+ delete_dead_jumptables immediately before calling cleanup_cfg.
+
+2005-02-22 Devang Patel <dpatel@apple.com>
+
+ PR 19952
+ * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
+ all labels
+
+2005-02-22 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/aix.h (WINT_TYPE): Define.
+
+2005-02-22 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Default to
+ natural alignment for 64-bit Darwin.
+ (rs6000_parse_alignment_option): Warn about uses of -malign-power
+ on 64-bit Darwin.
+ * doc/invoke.texi: Document this.
+
+2005-02-22 DJ Delorie <dj@redhat.com>
+
+ * c-common.c (c_common_type_for_mode): Pass the mode's precision
+ to make_[un]signed_type, not the mode itself.
+
+2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cfg.c (cached_make_edge): Call make_edge if edge cache is
+ not available. Use tail calls wherever possible.
+ (make_edge): Call unchecked_make_edge to create an edge.
+
+ * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
+ (coalesce_ssa_name): Don't check for
+ SSANORM_USE_COALESCE_LIST.
+ (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
+
+2005-02-22 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
+ (rewrite_into_ssa): ... here.
+
+2005-02-21 Alexandre Oliva <aoliva@redhat.com>
+
+ PR tree-optimization/19786
+ * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
+ tag to another's may-alias bitmap when adding to the other's list.
+
+2005-02-21 DJ Delorie <dj@redhat.com>
+
+ * tree-ssa-loop-ivopts.c (computation_cost): Start register
+ numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
+ registers in unsupported ways.
+ * expmed.c (init_expmed): Likewise.
+
+2005-02-21 Stan Cox <scox@redhat.com>
+
+ * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
+
+2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-cfg.c (fold_cond_expr_cond): New.
+ (make_edges): Call fold_cond_expr_cond.
+ (find_taken_edge): Accept nothing but INTEGER_CST.
+ (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
+ and 1.
+ (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
+
+ * flow.c (delete_dead_jumptables): Speed up by scanning insns
+ that do not belong to any basic block.
+
+2005-02-21 Jeff Law <law@redhat.com>
+
+ * cfganal.c (find_unreachable_blocks): Manually CSE load of
+ e->dest.
+
+2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
+ (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
+ Adjust their definitions.
+ (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
+ (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
+
+ * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
+ genautomata.c, langhooks.c, langhooks.h, system.h,
+ config/arm/lib1funcs.asm: Update copyright.
+
+2005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * dbxout.c (dbxout_function_end): Emit Lscope label always.
+
+2005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
+
+ PR bootstrap/13770
+ * doc/install.texi: Document --with-gc.
+
+2005-02-21 Paolo Bonzini <bonzini@gnu.org>
+
+ * simplify-rtx.c (simplify_unary_operation): Add a missing
+ "break" statement.
+
+2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR tree-optimization/18663
+ * tree-ssa-dom.c (extract_range_from_cond): Return 0
+ if the type has variable bounds.
+
+2005-02-20 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcse.c: Remove an obsolete comment.
+
+ * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
+
+2005-02-20 Hans-Peter Nilsson <hp@axis.com>
+
+ * doc/extend.texi (Function Attributes) <Attribute const>: The
+ attribute "pure" is below this text, not above.
+
+2005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
+ (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
+ * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
+
+2005-02-20 Zack Weinberg <zack@codesourcery.com>
+
+ PR 18785
+ * langhooks.h (struct lang_hooks): Add to_target_charset.
+ * langhooks.c (lhd_to_target_charset): New function.
+ * langhooks-def.h: Declare lhd_to_target_charset.
+ (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
+ (LANG_HOOKS_INITIALIZER): Update.
+ * c-common.c (c_common_to_target_charset): New function.
+ * c-common.h: Declare it.
+ * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
+ c_common_to_target_charset.
+
+ * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
+ (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
+ Delete definitions.
+ * system.h: Poison them.
+ * doc/tm.texi: Don't discuss them.
+ * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
+ * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
+ (pp_c_char): Do not attempt to generate letter escapes for
+ newline, tab, etc.
+ * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
+ * config/mips/mips.c (mips_output_ascii): Likewise.
+
+2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-optimization/19951
+ * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
+ is abnormal.
+
+2005-02-19 Steven Bosscher <stevenb@suse.de>
+
+ PR middle-end/19698
+ * function.h (struct function): New field `max_loop_depth'.
+ * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
+ (flow_loops_find): Reset the max loop depth count before finding loops.
+ * flow.c (MAX_LIVENESS_ROUNDS): New constant.
+ (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
+ (calculate_global_regs_live): Make sure the loop will terminate
+ when the initial sets are not empty.
+
+2005-02-19 Zack Weinberg <zack@codesourcery.com>
+
+ * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
+ object inside.
+ * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
+
+2005-02-19 Richard Sandiford <rsandifo@redhat.com>
+
+ PR other/19525
+ * doc/invoke.texi: Remove documentation of %M spec.
+ * gcc.c: Likewise.
+ (init_spec): Remove %M suffix from -lgcc_s.
+ (do_spec_1): Remove 'M' case.
+ * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
+ to put shared libraries in the multilib directory. Remove the
+ shlib_so_soname substitution variable. Don't add a multilib encoding
+ to shlib_base_name. Set shlib_slibdir_qual to the full pathname
+ reported by -print-multi-os-directory. Pass @multilib_dir@ to
+ SHLIB_INSTALL as well as SHLIB_LINK.
+ * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
+ (SHLIB_NAME): Delete.
+ (SHLIB_DIR): New macro.
+ (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
+ (SHLIB_INSTALL): Adjust accordingly.
+ * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
+ * config/t-slibgcc-sld: Likewise.
+ * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
+ (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
+ (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
+ in $(SHLIB_DIR).
+ (SHLIBUNWIND_INSTALL): Adjust accordingly.
+ * config/i386/t-nwld (SHLIB_SONAME): Delete.
+ (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
+ Use @shlib_base_name@ instead of @shlib_so_name@.
+ * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
+ and @shlib_base_name@.so in @multilib_dir@.
+ (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
+ to the install path.
+ * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
+ (SHLIB_LINK): Remove previous workaround.
+ * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
+ (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
+ (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
+ the install path.
+ * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
+ @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
+ (SHLIB_INSTALL): Adjust accordingly.
+ (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
+ * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
+ * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
+ config/t-slibgcc-elf-ver.
+
+2005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/19828
+ * tree-ssa-loop-im.c: Add a TODO comment.
+ (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
+ without side-effects.
+
+2005-02-18 James A. Morrison <phython@gcc.gnu.org>
+
+ * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
+ call fold_convert.
+
+2005-02-18 James E. Wilson <wilson@specifixinc.com>
+
+ * doc/invoke.texi (IA-64 Options): Delete -mb-step.
+ * config/ia64/ia64.c (last_group, group_idx): Delete variables.
+ (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
+ functions.
+ (ia64_reorg): Delete fixup_errata call.
+ * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
+ (TARGET_SWITCHES): Delete -mb-step entry.
+
+2005-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/20043
+ * c-typeck.c (composite_type): Handle quals in transparent unions.
+ (type_lists_compatible_p): Likewise.
+
+2005-02-18 Stan Shebs <shebs@apple.com>
+
+ * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
+ expressions in the .literal8 section.
+
+2005-02-18 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
+
+2005-02-18 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (constant_boolean_node): Always create values of the
+ specified type, don't bother calling truthvalue_conversion.
+
+2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * except.c (output_function_exception_table): Call
+ assemble_external_libcall (eh_personality_libfunc).
+
+2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR target/19886
+ * config/ia64/ia64.h (struct machine_function): Add state_num.
+ * config/ia64/ia64.c (process_epilogue,
+ process_for_unwind_directive): Use new unwind state numbers each
+ time rather than state 1.
+
+2005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/20054
+ * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
+ before the "*llgt_didi" pattern.
+
+2005-02-18 Jason Merrill <jason@redhat.com>
+
+ * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
+
+2005-02-18 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
+ (div0): Use it in place of ARM_FUNC_ALIAS.
+ (lshrdi3, ashrdi3, ashlrdi3): Likewise.
+
+2005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/20030
+ * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
+ access, the lower bound of the array type if it exists.
+
+2005-02-18 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/20008
+ * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
+ cases that are out-of-range for the index type.
+
+2005-02-18 James A. Morrison <phython@gcc.gnu.org>
+
+ * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
+ (estimate_case_costs): Don't call convert.
+ * expmed.c (expand_shift): Likewise.
+ (make_tree): Call fold_convert instead of convert.
+
+2005-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/19813
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
+ that ref to be marked MEM_READONLY_P doesn't have base that needs
+ constructing.
+
+2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * genautomata.c (output_get_cpu_unit_code_func,
+ output_cpu_unit_reservation_p): Don't generate old-style function
+ definitions.
+
+2005-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/20023
+ PR tree-optimization/20009
+ * convert.c (convert_to_integer): Revert 2005-02-16 change.
+
+ PR tree-optimization/18947
+ * cgraphunit.c (cgraph_finalize_function): When redefining an extern
+ inline, remove all nodes that are inlined into the extern inline
+ being redefined.
+
+2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
+ loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
+ tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
+ config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
+ Update copyright.
+
+2005-02-17 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/19917
+ * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
+ to be potentially trapping.
+
+2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
+
+2005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * builtins.c (expand_builtin_return_addr): Remove tem parameter.
+ tem becomes a local variable which is set to the value of the
+ back end defined INITIAL_FRAME_ADDRESS macro.
+ (expand_builtin_frame_address): Omit the base parameter to
+ expand_builtin_return_addr.
+ (expand_builtin_profile_func): Likewise.
+ * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
+ (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
+ * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
+
+2005-02-17 Jakub Jelinek <jakub@redhat.com>
+
+ * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
+ s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
+ * config/frv/frv.c (frv_function_epilogue): Likewise.
+
+2005-02-17 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code (perfect_nestify): Remove mark/unmark
+ for rewriting hack.
+ * tree-loop-linear.c (linear_transform_loops): Add
+ rewrite_into_ssa call so that ssa is correct for
+ rewriting into loop closed.
+
+2005-02-17 Nathan Sidwell <nathan@codesourcery.com>
+
+ * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
+ * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
+ BITMAP_FREE.
+ * bt-load.c (btr_def_live_range, combine_btr_defs,
+ migrate_btr_def, migrate_btr_defs): Likewise.
+ * cfgcleanup.c (thread_jump): Likewise.
+ * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
+ * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
+ df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
+ df_rd_local_compute, df_reg_info_compute): Likewise.
+ * dominance.c (init_dom_info, free_dom_info): Likewise.
+ * flow.c (init_propagate_block_info,
+ free_propagate_block_info): Likewise.
+ * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
+ * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
+ modify_reg_pav): Likewise.
+ * loop-invariant.c (find_defs, find_invariant_insn,
+ find_invariants, free_inv_motion_data): Likewise.
+ * predict.c (tree_predict_by_opcode,
+ estimate_bb_frequencies): Likewise.
+ * stmt.c (expand_case): Likewise.
+ * tree-cfg.c (tree_duplicate_sese_region): Likewise.
+ * tree-dfa.c (mark_new_vars_to_rename): Likewise.
+ * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
+ * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
+ get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
+ rewrite_ssa_into_ssa): Likewise.
+ * tree-optimize.c (tree_rest_of_compilation): Likewise.
+ * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
+ analyze_edges_for_bb, perform_edge_inserts): Likewise.
+ * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
+ * tree-sra.c (tree_sra): Likewise.
+ * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
+ * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
+ * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
+ * tree-ssa-dse.c (tree_ssa_dse): Likewise.
+ * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
+ Likewise.
+ * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
+ calculate_live_on_entry, calculate_live_on_exit,
+ build_tree_conflict_graph): Likewise.
+ * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
+ record_important_candidates, set_use_iv_cost, find_depends,
+ determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
+ tree_ssa_iv_optimize_finalize): Likewise.
+ * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
+ find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
+ tree_duplicate_loop_to_header_edge): Likewise.
+ * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
+ * tree-ssa.c (verify_flow_insensitive_alias_info,
+ verify_name_tags, verify_ssa, init_tree_ssa,
+ delete_tree_ssa): Likewise.
+ * tree-ssanames.c (marked_ssa_names, init_ssanames,
+ fini_ssanames): Likewise.
+ * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
+
+2005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/rs6000/t-rtems: Completely reworked.
+
+2005-02-17 Ira Rosen <irar@il.ibm.com>
+
+ * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
+
+2005-02-17 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
+ POINTER_TYPE_P when checking that type is a pointer.
+ (vect_get_memtag): Remove.
+ (vect_address_analysis): Use POINTER_TYPE_P. Call
+ vect_object_analysis with dummy parameter for memtag.
+ (vect_object_analysis): Extract memtag (functionality that
+ used to be in vect_get_memtag and moved here). Fix printings.
+ (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
+ with correct parameters. Remove call to vect_get_memtag.
+
+2005-02-17 Dorit Naishlos <dorit@il.ibm.com>
+
+ * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
+ (tree-vectorizer.o): Added missing dependencies.
+
+ * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
+ decleration.
+ (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
+ declaration in tree-vectorizer.c, now has an extern declaration in
+ tree-vectorizer.h).
+ (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
+ slpeel_verify_cfg_after_peeling, vect_strip_conversion,
+ get_vectype_for_scalar_type, vect_is_simple_use,
+ vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
+ vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
+ new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
+ vectorizable_store, vectorizable_operation, vectorizable_assignment,
+ vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
+ find_loop_location): Likewise.
+
+ * tree-vectorizer.c (langhooks.h): #include removed.
+ (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
+ moved to tree-vectorized.h.
+ (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
+ slpeel_verify_cfg_after_peeling, vect_strip_conversion,
+ get_vectype_for_scalar_type, vect_is_simple_use,
+ vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
+ vect_supportable_dr_alignment, new_loop_vec_info,
+ destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
+ vect_set_verbosity_level, find_loop_location): Likewise.
+
+ (vect_analyze_loop): Function externalized. Declaration moved to
+ tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
+ (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
+ (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
+ vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
+ vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
+ vect_enhance_data_refs_alignment, vect_analyze_operations,
+ exist_non_indexing_operands_for_use_p, vect_mark_relevant,
+ vect_stmt_relevant_p, vect_get_loop_niters,
+ vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
+ vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
+ vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
+ vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
+ vect_get_memtag): Likewise.
+
+ (vectorizable_load): Function externalized. Declaration moved to
+ tree-vectorized.h. Function definition moved to tree-vect-transform.c.
+ (vectorizable_store, vectorizable_operation, vectorizable_assignment,
+ vect_transform_loop): Likewise.
+ (vect_transform_stmt): Moved to tree-vect-transform.c.
+ (vect_align_data_ref, vect_create_destination_var,
+ vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
+ vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
+ vect_get_vec_def_for_operand, vect_init_vector,
+ vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
+ vect_build_loop_niters, vect_update_ivs_after_vectorizer,
+ vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
+ vect_update_inits_of_drs, vect_do_peeling_for_alignment,
+ vect_do_peeling_for_loop_bound): Likewise.
+
+ * tree-vect-analyze.c: New file.
+ * tree-vect-transform.c: New file.
+
+2005-02-17 Jason Merrill <jason@redhat.com>
+
+ PR mudflap/19319, c++/19317
+ * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
+ slot explicit.
+
+2005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/install.texi (Specific): Update link for Darwin-specific
+ tool binary site.
+
+2005-02-16 James A. Morrison <phython@gcc.gnu.org>
+
+ * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
+ constant_boolean_node.
+
+2005-02-16 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/19019
+ * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
+ * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
+
+2005-02-16 Richard Henderson <rth@redhat.com>
+
+ PR 19920
+ * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
+ with W_TYPE_SIZE.
+ (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
+ replace uses with Wtype_MAXp1_F.
+ (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
+ L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
+ L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
+ L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
+ and HAVE_TFMODE as appropriate.
+ (__fixunssfDI): Provide an implementation that doesn't need DFmode.
+ (__floatdisf): Likewise.
+ * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
+ (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
+ (Wtype_MAXp1_F): New.
+ (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
+ __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
+
+2005-02-16 Richard Earnshaw <rearnsha@arm.com>
+
+ * PR target/19162
+ * arm.c (arm_apply_result_size): New function.
+ * arm.h (APPLY_RESULT_SIZE): Define.
+ * arm-protos.h (arm_apply_result_size): Add prototype.
+ * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
+ (movxf): New expand.
+ (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
+ (call_value_symbol): Remove predicate for operand 0.
+ (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
+ (untyped_call): Rework to correclty return values for any type.
+ (untyped_return): New expand.
+ * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
+
+2005-02-16 Stan Shebs <shebs@apple.com>
+
+ * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
+ * config/rs6000/t-darwin8: New, for 64-bit multilib.
+
+2005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (sparc-sun-solaris2*): Document required GMP
+ configure settings on Solaris 7 and later.
+
+2005-02-16 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/19865
+ * tree-optimize.c (init_tree_optimization_passes): Run
+ pass_may_alias after pass_sra.
+
+2005-02-16 Richard Henderson <rth@redhat.com>
+ Stuart Hastings <stuart@apple.com>
+
+ PR debug/19521
+ * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
+ Do nothing if debug info suppressed for this function.
+ (dbxout_begin_function): Early exit if debug info suppressed for
+ this function.
+
+2005-02-16 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR target/20007
+ * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
+ find_basic_blocks.
+ * config/sh/sh.c (sh_output_mi_thunk): Likewise.
+
+ PR tree-optimization/19967
+ * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
+ expand_builtin_strchr, expand_builtin_strrchr): Take a new
+ argument TYPE. Adjust calls to fold_builtin_XXX.
+ (expand_builtin, fold_builtin_1): Adjust calls to
+ expand_builtin_XXX.
+ (fold_builtin_strchr, fold_builtin_strpbrk,
+ fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
+ result to a requested type TYPE.
+
+2005-02-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/19857
+ * fold-const.c (fold): Don't optimize (T)(x & cst) to
+ (T)x & (T)cst if (T)cst overflows.
+ * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
+ TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
+
+2005-02-15 Jeff Law <law@redhat.com>
+
+ * gcse.c (blocks_with_calls): New bitmap.
+ (alloc_gcse_mem): Allocate it.
+ (free_gcse_mem): Free it.
+ (clear_modifY_mem_tables): Clear it.
+ (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
+ when we encounter CALL_INSNs.
+ (compute_transp, case MEM): Handle blocks with calls separate
+ from blocks without calls. Use bitmap iterators rather than
+ FOR_EACH_BB.
+
+2005-02-15 Peter O'Gorman <peter@pogma.com>
+
+ PR bootstrap/18810
+ * mklibgcc.in (vis_hide): Use a temporary object file, not
+ -o /dev/null.
+
+2005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
+
+ PR target/19924
+ * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
+ access optimization.
+
2005-02-15 David Edelsohn <edelsohn@gnu.org>
Alan Modra <amodra@bigpond.net.au>
@@ -51,7 +2273,7 @@
2005-02-15 Richard Henderson <rth@redhat.com>
- * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
+ * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
call to be best_edge.
2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
@@ -67,7 +2289,7 @@
* rtl.h: Adjust the prototype for recompute_reg_usage.
2005-02-14 Daniel Berlin <dberlin@dberlin.org>
-
+
* tree-dump.c (dump_files): Update to reflect new member
of dump_file_info.
(dump_register): Add new argument.
@@ -162,11 +2384,6 @@
2005-02-13 Jason Merrill <jason@redhat.com>
- [reverted temporarily]
- PR mudflap/19319
- * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
- slot explicit.
-
PR c++/16405
* fold-const.c (fold_indirect_ref_1): Split out from...
(build_fold_indirect_ref): Here.
@@ -284,7 +2501,7 @@
* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
__mulsc3, __muldc3, __mulxc3, __multc3): New.
* libgcc2.h: Declare them.
- * libgcc-std.ver: Export them.
+ * libgcc-std.ver: Export them.
* mklibgcc.in (lib2funcs): Build them.
2005-02-11 Steven Bosscher <stevenb@suse.de>
@@ -338,7 +2555,7 @@
* config/rs6000/t-rtems:
(MULTILIB_OPTIONS): Remove mcpu=602.
(MUTLILIB_DIRNAMES): Remove m602.
- (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
+ (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
Let mcpu=602 match mcpu=603.
(MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
@@ -515,7 +2732,7 @@
2005-02-09 Dorit Naishlos <dorit@il.ibm.com>
- * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
+ * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
exists.
2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
@@ -626,8 +2843,8 @@
(slpeel_tree_peel_loop_to_edge): Likewise.
(vect_analyze_offset_expr): Call to vect_print_dump_info with
- appropriate verbosity level instead of call to vect_debug_details
- or vect_debug_stats.
+ appropriate verbosity level instead of call to vect_debug_details
+ or vect_debug_stats.
(vect_get_base_and_offset):
(vect_create_addr_base_for_vector_ref):
(get_vectype_for_scalar_type):
@@ -681,7 +2898,7 @@
(vect_mark_stmts_to_be_vectorized):
(vect_get_loop_niters):
(vect_analyze_loop_form):
- (vect_analyze_loop): Likewise.
+ (vect_analyze_loop): Likewise.
(vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
2005-02-07 Richard Sandiford <rsandifo@redhat.com>
@@ -711,7 +2928,7 @@
2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
- * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
+ * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2005-02-06 Roger Sayle <roger@eyesopen.com>
@@ -872,7 +3089,7 @@
(vect_analyze_loop_form): Argument in call to vect_debug_details/stats
changed from loop to loop_loc.
- (vect_enhance_data_refs_alignment): Removed unused variable loop.
+ (vect_enhance_data_refs_alignment): Removed unused variable loop.
2005-02-03 Leehod Baruch <leehod@il.ibm.com>
Dorit Naishlos <dorit@il.ibm.com>
@@ -887,7 +3104,7 @@
(vect_create_index_for_vector_ref): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
(new_stmt_vec_info): Likewise.
-
+
(new_loop_vec_info): Second argument in call to new_stmt_vec_info was
changed from loop to loop_vinfo.
(vect_create_data_ref_ptr): First argument in call to
@@ -903,7 +3120,7 @@
was changed from loop to loop_vinfo.
(vect_analyze_data_ref_dependences): Third argument in call to
vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
-
+
(vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
(vect_create_data_ref_ptr): Likewise.
(vect_init_vector): Likewise.
@@ -982,11 +3199,11 @@
2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
- standard_iv_increment_position. Remove call to bsi_next
+ standard_iv_increment_position. Remove call to bsi_next
(no need to bump the iterator anymore).
(vect_create_index_for_vector_ref): Call
standard_iv_increment_position. Remove second function argument.
- (vect_finish_stmt_generation): Remove call to bsi_next
+ (vect_finish_stmt_generation): Remove call to bsi_next
(no need to bump the iterator anymore).
(vect_create_data_ref_ptr): Remove second argument (bsi) in call
to vect_create_index_for_vector_ref.
@@ -1254,16 +3471,16 @@
* config.gcc: Don't include embedded systems fragment, switches default
debugging format to ELF.
- * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
+ * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
longer pick it up there.
2005-01-31 Dale Johannesen <dalej@apple.com>
-
+
* doc/extend.texi (nested functions): Fix linkage description.
Clarify that static is not allowed.
2005-01-31 Dale Johannesen <dalej@apple.com>
-
+
* config/rs6000/darwin.md (movsf_low_di): Make work.
(movdf_low_di): Make work.
@@ -1344,7 +3561,7 @@
2005-01-30 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/19624
-
+
* Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
* tree-ssa-pre.c: Add cfgloop.h.
Update comment.
@@ -1377,7 +3594,7 @@
PR target/19700
* config/i386/i386.c (ix86_expand_copysign): New.
(ix86_split_copysign_const): New.
- (ix86_split_copysign_var): Rename from ix86_split_copysign,
+ (ix86_split_copysign_var): Rename from ix86_split_copysign,
rearrange op1/nmask operands.
* config/i386/i386-protos.h: Update.
* config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
@@ -1753,7 +3970,7 @@
2005-01-26 Steven Bosscher <stevenb@suse.de>
- PR middle-end/19616
+ PR middle-end/19616
* tree.h (CALL_EXPR_TAILCALL): Add comment.
* calls.c (check_sibcall_argument_overlap_1): Revert the change
to this function from 2004-07-10.
@@ -2149,7 +4366,7 @@
2005-01-21 Mark Dettinger <dettinge@de.ibm.com>
- * config/s390/s390.c (struct processor_costs): New fields
+ * config/s390/s390.c (struct processor_costs): New fields
dlgr, dlr, dr, dsgfr, dsgr.
(z900_cost, z990_cost): Values for new fields.
(s390_rtx_costs): New cases MEM und COMPARE in switch
@@ -2333,7 +4550,7 @@
(add_location_or_const_value_attribute): Use it.
Also try to generate a frame_base from a single element location
list.
-
+
2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/15349
@@ -2473,7 +4690,7 @@
2005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
PR target/19529
- * config/sh/t-rtems: New.
+ * config/sh/t-rtems: New.
* config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
@@ -2895,7 +5112,7 @@
2005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
* config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
- * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
+ * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
Remove little endian multilib variants.
Add mips32 multilib variant.
@@ -3007,7 +5224,7 @@
(TARGET_ASM_FILE_END): Call arm_file_end.
(aof_file_end): Likewise.
* arm-protos.h (thumb_call_via_reg): Declare.
- * arm.md (call_reg_thumb, call_value_reg_thumb): Call
+ * arm.md (call_reg_thumb, call_value_reg_thumb): Call
thumb_call_via_reg in normal case.
2005-01-14 Jakub Jelinek <jakub@redhat.com>
@@ -3094,7 +5311,7 @@
IX86_BUILTIN_MOVDQ2Q): Remove.
(IX86_BUILTIN_VEC_EXT_V4SI): New.
(ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
- (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
+ (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
shuffling.
* config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
(sse2_pextrw): Fix immediate constraint.
@@ -3255,7 +5472,7 @@
vec_extractv16qi, vec_initv16qi): New.
* config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
- (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
+ (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
constructor form.
(_mm_load_pd, _mm_store_pd): Use plain dereference.
diff --git a/gcc/ChangeLog.5 b/gcc/ChangeLog.5
index e5c26cc1cd2..c5f3b54200f 100644
--- a/gcc/ChangeLog.5
+++ b/gcc/ChangeLog.5
@@ -3405,8 +3405,8 @@ Fri May 18 15:39:16 CEST 2001 Jan Hubicka <jh@suse.cz>
what a basic block is, and what the various fields are used for.
* flow.c (calculate_globlal_regs_live): Add documentation about
how the algorithm works, and how we know that it will terminate.
- Check that the the inductive assumption that guarantees
- termination actually holds.
+ Check that the inductive assumption that guarantees termination
+ actually holds.
(mark_used_regs): Treat conditionally set registers as used.
(debug_regset): Add comment.
* rtl.texi (cond_exec): Add documentation.
diff --git a/gcc/ChangeLog.7 b/gcc/ChangeLog.7
index f9c6a7dbcb0..022212bfa87 100644
--- a/gcc/ChangeLog.7
+++ b/gcc/ChangeLog.7
@@ -1717,7 +1717,7 @@ Tue Jun 11 21:53:37 CEST 2002 Jan Hubicka <jh@suse.cz>
last insn created by the splitter.
* caller-save.c (init_caller_save): Move creation of SAVEINSN
- and RESTINSN into into the scope of the sequence.
+ and RESTINSN into the scope of the sequence.
* mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
RETURN insns.
diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..bff535f5662
--- /dev/null
+++ b/gcc/ChangeLog.apple-ppc
@@ -0,0 +1,4531 @@
+2005-06-30 Devang Patel <dpatel@apple.com>
+
+ * doc/invoke.texi: Document -fsave-repository.
+
+2005-06-30 Devang Patel <dpatel@apple.com>
+
+ * c-opts.c (c_common_handle_option): Handle OPT_fsave_repository.
+ Set flag_pch_file.
+ * c.opt (fsave-repository=): New.
+ * dbxout.c: Use dbx_out_file instead of asm_out_file.
+ (dbx_out_file): New.
+ (dbxout_init): Open dbx_out_file for writing.
+ (emit_bincl_stab): Emit EXCL and BINCL stabs with checksum.
+ (dbxout_finish): Close dbx_out_file.
+ * flags.h (flag_pch_file, flag_save_repository): New.
+ * gcc.c (pch): Invoke as when -fsave-repository is used.
+ * toplev.c (asm_file_name2, flag_pch_file, flag_save_repository): New.
+ (init_asm_output): Handle -fsave-repository.
+
+2005-06-30 Fariborz Jahanian <fjahanian@apple.com>
+
+ * opts.c (decode_options): Don't set -fforce-mem with -O2 and more.
+
+2005-06-30 Stuart Hastings <stuart@apple.com>
+
+ Radar 4131077, copied from FSF mainline.
+ * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
+ * gcc/config/i386/emmintrin.h: Likewise.
+ * gcc/config/i386/pmmintrin.h: Likewise.
+ * gcc/config/i386/xmmintrin.h: Likewise.
+
+2005-06-28 Dale Johannesen <dalej@apple.com>
+
+ Radar 4163069
+ * config/darwin-c.c (darwin_pragma_options):
+ Add handling for second parameter.
+
+2005-06-22 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4154928
+ * c-common.h (objc_common_type): New prototype.
+ * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
+ use their ObjC common type.
+ * stub-objc.c (objc_common_type): New stub.
+
+2005-06-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4149909
+ * config/darwin.c (machopic_select_section): constant ObjC string
+ objects now always have type "__builtin_ObjCString".
+
+2005-06-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 4087330
+ * calls.c (expand_call): Enable indirect sibcalls unconditionally.
+ * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
+ indirect sibcalls on Darwin when PLT considerations prohibit
+ them on other OSs.
+
+2005-06-20 Stuart Hastings <stuart@apple.com>
+
+ Radar 4146993
+ * gcc/gcc/config/i386/i386.c (machopic_output_stub): Use only %ecx.
+
+2005-06-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 4151537
+ * config/rs6000/rs6000.md (UNSPEC_LD_MPIC_L): New.
+ * config/rs6000/darwin.md (load_macho_picbase_label): New.
+ (load_macho_picbase_label_si): New.
+ (load_macho_picbase_label_di): New.
+ * config/rs6000/rs6000.c (objc_method_using_pic): Remove.
+ (name_encodes_objc_method_p): Rewrite.
+ (rs6000_emit_prologue): Rewrite "ObjC method use of R12".
+
+2005-06-15 Devang Patel <dpatel@apple.com>
+
+ Undo
+ 2005-06-04 Devang Patel <dpatel@apple.com>
+ * dbxout.c (struct dbx_file): Apply GTY markers.
+ (dbxout_init, dbxout_start_source_file): Use ggc_alloc instead of xmalloc.
+
+2005-06-15 Geoffrey Keating <geoffk@apple.com>
+
+ * varasm.c (replace_weak): Make 'static'.
+
+2005-06-10 Dale Johannesen <dalej@apple.com>
+
+ Fixes from mainline.
+ Radar 4137102, 4141805, 4104248
+ * config/i386/i386.md (movqi_1): Fix case where source
+ is memory and destination EDI.
+ * tree-nested.c (finalize_nesting_tree_1): Disable
+ warn_padded around layout_type call.
+ * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
+ src2 if src2 has been split.
+
+2005-06-04 Devang Patel <dpatel@apple.com>
+
+ * dbxout.c (struct dbx_file): Apply GTY markers.
+ (dbxout_init, dbxout_start_source_file): Use ggc_alloc instead of xmalloc.
+
+2005-06-04 Dale Johannesen <dalej@apple.com>
+
+ Radar 4131839 (from mainline)
+ * config/rs6000/rs6000.c (insn-addr.h): Don't include.
+ (no_global_regs_above): New.
+ (rs6000_emit_prologue): Use it; cosmetic formatting fixes.
+ (rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
+ (rs6000_conditional_register_usage): Don't put Darwin PIC
+ register in global_regs.
+ (rs6000_override_options): Add -fgcse-las to -fast.
+ Remove clear of -fspeculative-prefetching.
+ (rs6000_rtx_mult_cost): Remove.
+ (rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
+ Adjust LOCAL comments.
+ (rs6000_is_costly_dependence): Look under ZERO/SIGN_EXTEND for MEMs.
+ * config/rs6000/rs6000-protos.h (rs6000_rtx_mult_cost): Remove.
+
+2005-06-03 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c (macosx_vers_tbl): Handle '10.5'.
+
+2005-06-02 Stuart Hastings <stuart@apple.com>
+
+ * gcc/simplify-rtx.c(simplify_binary_operation, simplify_immed_subreg):
+ Back out these extra checks (Chablis branch).
+
+2005-05-31 Stuart Hastings <stuart@apple.com>
+
+ Copy 2004-05-19 patch from Karma mainline onto Chablis branch:
+ Radar 4124883, 4122515
+ * gcc/config/i386/i386.md(UNSPEC_LDQ, UNSPEC_MOVQ, UNSPEC_STOQ): New.
+ * gcc/config/i386/sse.md(sse_loadqv4si, sse_storeqv4si, sse_movqv4si):
+ Move UNSPECs inside patterns, incorporate new UNSPEC_ constants.
+
+2005-05-27 Stuart Hastings <stuart@apple.com>
+
+ Radar 41216124
+ * gcc/config.gcc: Darwin/x86 sets need_64bit_hwint=yes.
+ * gcc/config.host: Darwin/x86 sets use_long_long_for_widest_fast_int=yes.
+ * libcpp/configure.ac: Darwin/x86 sets need_64bit_hwint=yes.
+ * libcpp/configure: Regenerated with autoconf.
+
+2005-05-25 Ziemowit Laski <zlaski@apple.com>
+
+ * stub-objc.c (objc_comptypes): Remove for real.
+
+2005-05-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4035492
+ * c-common.h (objc_comptypes): Remove prototype.
+ (objc_compare_types, objc_volatilized_decl, objc_type_quals_match):
+ New prototypes.
+ * c-decl.c (objc_mark_locals_volatile): Streamline by calling
+ objc_volatilize_decl().
+ * c-typeck.c (comp_target_types): Remove third parameter; do not
+ call objc_comptypes().
+ (comptypes): Remove calls to objc_comptypes().
+ (build_function_call): Extend compatible prototype check to ObjC.
+ (build_conditional_expr): Adjust call to comp_target_types().
+ (convert_for_assignment): Call objc_compare_types() instead of
+ objc_comptypes(); adjust calls to comp_target_types(); call
+ objc_type_quals_match() before issuing qualifier mismatch warnings.
+ (build_binary_op): Call objc_compare_types() before issuing
+ pointer mismatch warnings; adjust calls to comp_target_types().
+ * gimplify.c (gimplify_expr): Adjust APPLE LOCAL markers to
+ point at new culprit.
+ * stub-objc.c (objc_comptypes): Remove stub.
+ (objc_compare_types, objc_volatilized_decl, objc_type_quals_match):
+ New stubs.
+
+2005-05-17 Devang Patel <dpatel@apple.com>
+
+ Radar 4119059
+ * config/altivec.md: Use u5bit_cint_operand and s5bit_cint_operand.
+ * config/rs6000/rs6000.c (s5bit_cint_operand, u5bit_cint_operand): New.
+ (rs6000_expand_unop_builtin): Fix signed 5 bits literal validation.
+
+2005-06-01 Devang Patel <dpatel@apple.com>
+
+ Radar 4133801
+ * Makefile.in (c-lex.o): Depend on langhooks.h.
+ (langhooks.o): Depend on debug.h.
+ * c-lex.c (langhooks.h): Include.
+ (fe_file_change): Use lang hooks instead of debug hooks.
+ * langhooks-def.h (lhd_start_source_file, lhd_end_source_file,
+ LANG_HOOKS_START_SOURCE_FILE, LANG_HOOKS_END_SOURCE_FILE): New.
+ * langhooks.c (debug.h): Include.
+ (lhd_start_source_file, lhd_end_source_file): New.
+ * langhooks.h (struct lang_hooks): Two new members.
+
+2005-05-19 Devang Patel <dpatel@apple.com>
+
+ Radar 4123684
+ * config/rs6000/rs6000.md (insvsi_internal1): Remove.
+
+2005-05-19 Stuart Hastings <stuart@apple.com>
+
+ Radar 4124883, 4122515
+ * gcc/simplify-rtx.c(simplify_binary_operation): Can't simplify vector shifts yet.
+ (simplify_immed_subreg): Fail instead of asserting when asked for a TImode constant.
+ * gcc/config/i386/i386.md(UNSPEC_LDQ, UNSPEC_MOVQ, UNSPEC_STOQ): New.
+ * gcc/config/i386/sse.md(sse_loadqv4si, sse_storeqv4si, sse_movqv4si):
+ Move UNSPECs inside patterns, incorporate new UNSPEC_ constants.
+
+2005-05-12 Dale Johannesen <dalej@apple.com>
+ Stuart Hastings <stuart@apple.com>
+
+ * stor-layout.c (compute_record_mode): Put back 8-byte struct
+ "hack", merged with FSF and 64-bit ABI changes.
+
+2005-05-11 Stan Shebs <shebs@apple.com>
+
+ Fix 64-bit varargs for Darwin (Radar 4028089).
+ * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
+ * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
+ Add argument, add case for 8-byte register half-filled with a float.
+ (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
+ single-precision floats specially.
+
+2005-05-11 Devang Patel <dpatel@apple.com>
+
+ Radar 4110735
+ * config/rs6000/rs6000.md (insvsi_internal1): Fix operand[1].
+
+2005-05-10 Dale Johannesen <dalej@apple.com>
+
+ Radar 4111151
+ * toplev.c (backend_init): Call init_caller_save unconditionally.
+
+2005-05-10 Stuart Hastings <stuart@apple.com>
+
+ Radar 4099020
+ Reinstall patch, omitting simplify-rtx change.
+ * gcc/config/i386/sse.md (sse_loadqv4s, sse_storeqv4si, sse_movqv4si): New.
+ * gcc/config/i386/i386.c: (IX86_BUILTIN_MOVQ,
+ IX86_BUILTIN_LOADQ, IX86_BUILTIN_STOREQ): New.
+ (__builtin_ia32_movqv4si, __builtin_ia32_loadlv4si, __builtin_ia32_storelv4si): New.
+ * emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64, _mm_move_epi64): Use them.
+ * gcc/config/i386/mmx.md: Exempt SSE subregs from multiword split.
+
+2005-05-10 Stuart Hastings <stuart@apple.com>
+
+ Radar 4078600
+ * gcc/stor-layout.c(compute_record_mode): Delete the "8-byte struct hack".
+
+2005-05-10 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4095567
+ * passes.c (rest_of_compilation): Readjust default stack boundaries for
+ leaf functions with no vector code.
+
+2005-05-09 Jon Ziegler <jonz@apple.com>
+
+ Radar 4099020
+ Revert Stuart's patch for 4099020.
+
+2005-05-09 Dale Johannesen <dalej@apple.com>
+
+ Radar 4113078
+ * tree-inline.c (expand_call_inline): Propagate uses_vector bit correctly.
+
+2005-05-07 Stuart Hastings <stuart@apple.com>
+
+ Radar 4099020
+ * gcc/config/i386/sse.md (sse_loadqv4s, sse_storeqv4si, sse_movqv4si): New.
+ * gcc/config/i386/i386.c: (IX86_BUILTIN_MOVQ,
+ IX86_BUILTIN_LOADQ, IX86_BUILTIN_STOREQ): New.
+ (__builtin_ia32_movqv4si, __builtin_ia32_loadlv4si, __builtin_ia32_storelv4si): New.
+ * emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64, _mm_move_epi64): Use them.
+ * gcc/config/i386/mmx.md: Exempt SSE subregs from multiword split.
+ * gcc/simplify-rtx.c(simplify_immed_subreg): Exit cleanly if outermode too wide.
+
+2005-05-06 Dale Johannesen <dalej@apple.com>
+
+ Radar 4090661
+ * config/i386/i386.c (ix86_constant_alignment): Max out
+ alignment of string constants at 4 bytes.
+
+2005-05-05 Stuart Hastings <stuart@apple.com>
+
+ * Radar 4078600
+ * gcc/stor-layout.c(compute_record_mode): Revert previous patch.
+
+2005-04-04 Devang Patel <dpatel@apple.com>
+
+ * Radar 4095052
+ * varasm.c (replace_weak): New.
+ (merge_weak): Use replace_weak.
+
+2005-05-04 Stuart Hastings <stuart@apple.com>
+
+ * Radar 4078600
+ * gcc/stor-layout.c(compute_record_mode): Remove flag_pic from "8-byte struct hack" test.
+
+2005-05-03 Dale Johannesen <dalej@apple.com>
+
+ Radar 4104248
+ * objc/objc-act.c: Include opts.h.
+ * objc/Make-lang.in (objc-act.o): Ditto.
+ * config/darwin-protos.h (machopic_picsymbol_stub2_section): New.
+ * config/i386/i386.c: Include params.h.
+ * config/i386/i386.md (movqi_1): Handle ESI/EDI destination.
+
+2005-05-02 Mike Stump <mrs@apple.com>
+
+ * Radar 4099000
+ * config/i386/lib1funcs.asm: Add ___i686.get_pc_thunk.<reg> to
+ libgcc.
+ * config/i386/t-darwin: Add.
+ * config.gcc: Add i386/t-darwin.
+
+2005-05-02 Dale Johannesen <dalej@apple.com>
+
+ Radar 4102133 (PR 21293, Zdenek's patch)
+ * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
+ integer_zerop.
+ * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
+ constants invariant.
+ * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
+ the argument of the shift to the unsigned type.
+
+2005-04-28 Devang Patel <dpatel@apple.com>
+
+ Radar 4086969
+ * c-typeck.c (convert_for_assignment): Fix warn_discard_qual.
+
+2005-04-28 Devang Patel <dpatel@apple.com>
+
+ Radar 4086969
+ * c-typeck.c (convert_for_assignment): Check warn_discard_qual.
+ * c.opt (Wdiscard-qual): New.
+ * doc/invoke.texi: Dcoument -Wdiscard-qual.
+
+2005-04-28 Dale Johannesen <dalej@apple.com>
+
+ Radar 4101687
+ * i386.c (legitimize_address): Canonicalize shifts correctly.
+
+2005-04-28 Dale Johannesen <dalej@apple.com>
+
+ Radar 4100712 (PR 21173, Dan Berlin's patch)
+ * tree-ssa-pre.c (create_expression_by_pieces): Call unshare_expr
+ on things we pass to force_gimple_operand. Don't try to special
+ case min_invariants.
+
+2005-04-28 Dale Johannesen <dalej@apple.com>
+
+ Radar 4101973
+ * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS):
+ Back out patch for 4096578.
+ * config/i386/i386.c (reset_optimization_options): Ditto.
+
+2005-04-26 Dale Johannesen <dalej@apple.com>
+
+ Radar 4099768
+ * config/i386/i386.c (ix86_split_long_mode): Adjust
+ stack offsets for 128-bit long doubles correctly.
+
+2005-04-26 Dale Johannesen <dalej@apple.com>
+
+ Radar 4096578
+ * config/i386/darwin.h (SUBTARGET_OVERRIDE_OPTIONS):
+ Default omit-frame-pointer on with optimization.
+ * config/i386/i386.c (reset_optimization_options): Ditto.
+
+2005-04-26 Stuart Hastings <stuart@apple.com>
+
+ Radar 4010496
+ * gcc/config/i386/x-darwin: Add -mdynamic-no-pic.
+
+2005-04-25 Devang Patel <dpatel@apple.com>
+
+ Radar 4095956
+ * config/rs6000/darwin.h (REAL_LIBGCC_GCC): Use -lgcc_static.
+
+2005-04-26 Stuart Hastings <stuart@apple.com>
+
+ Radar 4096118
+ * build_gcc: Default to --with-arch=pentium4 --with-tune=prescott.
+ * gcc/config/i386/darwin.h: Override OPTIONS_DEFAULT_SPECS.
+
+2005-04-25 Devang Patel <dpatel@apple.com>
+
+ Radar 4095956
+ * config/darwin.h (REAL_LIBGCC_GCC): Use -lgcc_static.
+
+2005-04-25 Devang Patel <dpatel@apple.com>
+
+ Radar 3954848
+ * dbxout.c (dbxout_type): Emit attribute vector.
+
+2005-04-23 Dale Johannesen <dalej@apple.com>
+
+ Radar 4097111
+ * opts.c (decode_options): Move cl_pf_opts_cooked setup...
+ * toplev.c (process_options): ...to here.
+
+2005-04-22 Dale Johannesen <dalej@apple.com>
+
+ * common.opt (falign-functions=): Fix it.
+
+2005-04-22 Devang Patel <dpatel@apple.com>
+
+ * config/rs6000/darwin.h: Update APPLE LOCAL markers to reflect
+ FSF mainline check-in.
+
+2005-04-21 Dale Johannesen <dalej@apple.com>
+
+ Radar 3124235
+ * Makefile.in (options.o): New dependencies.
+ (tree-optimize.o): Ditto.
+ * c-decl.c (start_function): Record perfunc flags.
+ * common.opt (falign-jumps, falign-labels, falign-loops):
+ Add PerFunc, VarUint, VarExists.
+ (fbranch-count-reg, fbranch-target-load-optimize,
+ fbranch-target-load-optimize2, fbtr-bb-exclusive,
+ fcaller-saves, fcprop-registers, fcrossjumping,
+ fcse-follow-jumps, fcse-skip-blocks, fcx-limited-range,
+ fdefer-pop, fdelayed-branch, fdelete-null-pointer-checks,
+ fexpensive-optimizations, ffinite-math-only, ffloat-store,
+ fforce-addr, fforce-mem, ffunction-cse, fgcse, fgcse-lm,
+ fgcse-sm, fgcse-las, fgcse-after-reload,
+ fguess-branch-probability, fif-conversion, fif-conversion2,
+ fivopts, floop-optimize, floop-optimize2, fmath-errno,
+ fmodulo-sched, fmove-loop-invariants,
+ freschedule-modulo-scheduled-loops, fomit-frame-pointer,
+ foptimize-register-move, foptimize-sibling-calls, fpeel-loops,
+ fpeephole, fpeephole2, fprefetch-loop-arrays, fregmove,
+ frename-registers, freorder-blocks, freorder-blocks-and-partition,
+ frerun-cse-after-loop, frerun-loop-opt, frounding-math,
+ fsched-interblock, fsched-spec, fsched-spec-load,
+ fsched-spec-load-dangerous, fsched2-use-superblocks,
+ fsched2-use-traces, fschedule-insns, fschedule-insns2,
+ fsignaling-nans, fsplit-ivs-in-unroller,
+ fvariable-expansion-in-unroller, fstrength-reduce,
+ fthread-jumps, ftracer, ftrapping-math, ftrapv, ftree-ccp,
+ ftree-ch, ftree-combine-temps, ftree-copyrename, ftree-dce,
+ ftree-dominator-opts, ftree-dse, ftree-fre, ftree-loop-im,
+ ftree-loop-linear, ftree-loop-ivcanon, ftree-loop-memset,
+ ftree-loop-optimize, ftree-pre, ftree-sra, ftree-ter,
+ ftree-lrs, funroll-loops, funroll-all-loops,
+ funsafe-math-optimizations, funswitch-loops, ftree-vectorize,
+ fweb, fwrapv): Add PerFunc.
+ (fsched-verbose): Add Var, UInteger, PerFunc, VarUint.
+ (fsched-stalled-insns-dep): Add PerFunc, VarUint.
+ (p): Add VarExists.
+ * final.c (asm_insn_count): Replace "optimize" by "optimizing".
+ (final): Ditto.
+ (final_scan_insn): Ditto.
+ * flags.h (optimize, optimize_size): Remove.
+ * haifa-sched.c (sched_verbose_param): Remove.
+ (fix_sched_param): Remove.
+ * loop.c (struct loop_mem_info): Replace "optimize" by "optimizable".
+ (insert_loop_mem, load_mems): Adjust references.
+ * opt-functions.awk (flag_set_p): New.
+ (switch_flags): Add VarUint, PerFunc.
+ (var_ref): Handle them.
+ (access_ref): New.
+ * optc-gen.awk (END): Substantial rewrite to handle PerFunc,
+ VarUint.
+ * opth-gen.awk (END): Ditto.
+ * opts.c (hashtab.h): New include.
+ (handle_option): Use access_flag.
+ (set_flags_from_O): New.
+ (decode_options): Split out set_flags_from_O. Save
+ cl_pf_opts_cooked.
+ (common_handle_options): Remove special cases for
+ align-functions, align-jumps, align-labels,
+ align-loops, sched-verbose, sched-stalled-insns-dep.
+ Use access_flag.
+ (cl_perfunc_opts_hash_table, hash_cl_perfunc_opts,
+ cmp_cl_perfunc_opts, make_perfunc_opts,
+ func_cl_pf_opts_mapping_hash_table, struct func_cl_pf_opts_mapping,
+ func_cl_pf_opts_mapping_hash, func_cl_pf_opts_mapping_eq,
+ record_func_cl_pf_opts_mapping, restore_func_cl_pf_opts_mapping,
+ copy_func_cl_pf_opts_mapping): New.
+ * opts.h (set_flags_from_O, record_func_cl_pf_opts_mapping,
+ restore_func_cl_pf_opts_mapping, copy_func_cl_pf_opts_mapping): New.
+ (struct cl_option): Add access_flag.
+ (CL_VARUINT, CL_PERFUNC): New.
+ * toplev.c (optimize, optimize_size): Remove.
+ (print_switch_values): Use access_flag.
+ * toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
+ flag_if_conversion2, flag_peel_loops, flag_rerun_cse_after_loops,
+ flag_thread_jumps, flag_tracer, flag_unroll_loops,
+ flag_unroll_all_loops, flag_unswitch_loops, flag_cprop_registers,
+ flag_loop_optimize2): Remove.
+ * tree-optimize.c (opts.h): New include.
+ (tree_rest_of_compilation): Restore saved opts from definition.
+ * config/darwin-c.c (flags.h, opts.h, varray.h): New includes.
+ (darwin_pragma_reverse_bitfields): Fix obvious spelling bug.
+ (va_opt, push_opt_level, pop_opt_level, darwin_pragma_opt_level,
+ darwin_pragma_opt_size): New.
+ * config/darwin-protos.h (darwin_pragma_opt_level,
+ darwin_pragma_opt_size, reset_optimization_options): New.
+ * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
+ Add optimization_level, optimize_for_size.
+ * config/t-darwin (darwin-c.o): New dependencies.
+ * config/i386/i386.c (reset_optimization_options): New.
+ * config/rs6000/rs6000.c (reset_optimization_options): New.
+ * config/rs6000/rs6000.h (optimize, flag_expensive_optimizations): Remove.
+ * cp/Make-lang.in (cp/decl.o): New dependency.
+ * cp/decl.c (opts.h): New include.
+ (build_library_fn_1): Record perfunc opts.
+ (start_preparsed_function): Propagate saved opts to existing forward decl.
+ (start_function): Record perfunc opts.
+ * doc/extend.texi (pragma optimization_level, optimize_for_size):
+ Document.
+ * objc/objc-act.c (objc_start_function): Record perfunc opts.
+
+2005-04-21 Dale Johannesen <dalej@apple.com>
+
+ Radar 4080945
+ PR 20742
+ * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New.
+ * tree-chrec.c (params.h): New include.
+ (chrec_fold_plus_1): Avoid too deep recursion.
+ (reset_evolution_in_loop): Use build2 not build.
+ (tree_contains_chrecs): Add size argument.
+ * tree-chrec.h (tree_constains_chrecs): Add size argument.
+ (tree_does_not_contain_chrecs): Adjust call to it.
+ * tree-scalar-evolution.c (simple_iv): Ditto.
+ * doc/invoke.texi (scev-max-expr-size): Document.
+
+2005-04-21 Devang Patel <dpatel@apple.com>
+
+ Radar 4080840
+ * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
+
+2005-04-20 Mike Stump <mrs@apple.com>
+
+ Radar 4077104
+ * c-common.c (print_cw_asm_operand): Handle -40(sp) in C++ CW asms better.
+
+2005-04-20 Stuart Hastings <stuart@apple.com>
+
+ * Radar 4067496
+ * gcc/config/i386/i386.c (optimization_options): Raise inlining limits under -Os.
+
+2005-04-20 Fariborz Jahanian <fjahanian@apple.com>
+
+ * expr.c (emit_single_push_insn): Radar 4087332.
+
+2005-04-18 Devang Patel <dpatel@apple.com>
+
+ * config/rs6000/atlivec.md (mulv4si3): Update APPLE LOCAL markers to
+ reflect check-in on mainline.
+
+2005-04-15 Devang Patel <dpatel@apple.com>
+
+ Radar 3972875
+ * config/rs6000/atlivec.md (mulv4si3): New pattern.
+
+2005-04-15 Stuart Hastings <stuart@apple.com>
+
+ Radar 4087864
+ * config/darwin-protos.h: Extern for machopic_symbol_stub2_section.
+ * config/i386/i386.c (machopic_output_stub): Fix stubs targeted for
+ deeply-pipelined CPUs.
+
+2005-04-15 Caroline Tice <ctice@apple.com>
+
+ Radar 4078608
+ * config/darwin.c (machopic_select_section): Change name for function
+ to switch to cold text section to unlikely_text_section
+ (the correct function name, in varasm.c).
+ * config/darwin.h (SECTION_FUNCTION): Remove code that created a second
+ (incorrect) function for switching to cold text section.
+
+2005-04-14 Devang Patel <dpatel@apple.com>
+
+ Radar 4080840
+ * common.opt (falign-jumps-max-skip, falign-jumps-max-skip=,
+ falign-loops-max-skip, falign-loops-max-skip=): New.
+ * opts.c (common_handle_option): Handle new falign-loops-max-skip
+ and falign-jumps-max-skip options.
+ * doc/invoke.texi: Document -falign-jumps-max-skip and
+ -falign-loops-max-skip.
+ * toplev.c (align_jumps_max_skip, align_loops_max_skip): Remove.
+
+2005-04-14 Devang Patel <dpatel@apple.com>
+
+ Radar 3972515
+ * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
+ (lhsr<mode>3): ... new name.
+ (altivec_vsra<VI_char>): Rename to ..
+ (ashr<mode>3): ... new name.
+ * config/rs6000/rs6000.c (builtin_description): Rename shift
+ operations.
+
+2005-04-12 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 4087079
+ * rtlanal.c (subreg_regno_offset): Compute offset into float
+ subregs on x86 properly.
+ (subreg_offset_representable_p): Likewise.
+
+2005-04-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4055183
+ * c-common.h (objc_rewrite_function_call): New prototype.
+ * c-typeck.c (build_function_call):
+ Call objc_rewrite_function_call() to handle casts.
+ * stub-objc.c (objc_rewrite_function_call): New stub.
+
+2005-04-08 Devang Patel <dpatel@apple.com>
+
+ Radar 4044861
+ * config/darwin-drver.c (save_temps_seen): New.
+ (main): Reject -save-temps with multiple -arch options.
+
+2005-04-07 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4063657 (part 2).
+ * c-common.c (cw_process_arg): Remove from 'uses' list any
+ register which ends up on an output or input list.
+ (cw_asm_stmt): New 'uses' argument is passed to cw_process_arg.
+ 'uses' list is added to 'clobber' list.
+ (print_cw_asm_operand): When building 'uses' list do not
+ duplicate a hard register on this list.
+
+2005-04-07 Devang Patel <dpatel@apple.com>
+
+ Radar 4069922
+ * tree-sra.c (decide_block_copy): Disable scalarization of sub-elements.
+
+2005-04-05 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 4063657 (part 1).
+ * c-common.c (print_cw_asm_operand): Added a new argument to
+ track use of hard registers. Return any use of hard register
+ to caller in a tree-list form.
+ (cw_asm_stmt): Add tree-list of hard register register uses to
+ ASM_EXPR statement tree.
+ (cw_asm_label): Add the extra argument when building ASM_EXPR.
+ (cw_asm_entry): Ditto.
+ * c-typeck.c (build_asm_expr): Ditto.
+ * cp/semantics.c (finish_asm_stmt): Ditto.
+ * recog.c (asm_noperands): Bypass USE seen in asm_operand.
+ (decode_asm_operands): Ditto.
+ * stmt.c (expand_asm_operands): Insert list of use of hard
+ registers in the asm_operand rtl following the clobber list.
+ (expand_asm_expr): Pass hard register usage tree-list to
+ expand_asm_operands.
+ * tree.def (ASM_EXPR): Tree now takes an extra argument.
+ * tree.h (ASM_USES): New macro defined.
+
+2005-04-02 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4072153
+ * tree.c (build2_stat): Never mark tcc_expression-class nodes
+ as constant, unless AltiVec PIM support has been selected
+ and we have a compound expression with constant elements.
+
+2005-04-01 Jon Ziegler <jonz@apple.com>
+
+ Radar 4075524
+ * ginclude/tgmath.h (scalbn) Change to use __TGMATH_REAL_1_2 macro.
+ (scalbln) Likewise.
+
+2005-03-31 Dale Johannesen <dalej@apple.com>
+
+ * print-tree.c (print_node): Handle STATEMENT_LIST (mainline).
+
+2005-03-29 Dale Johannesen <dalej@apple.com>
+
+ Radar 3955567
+ * stor-layout.c (place_field): Reverse bitfields if pragma was set.
+ * target-def.h (TARGET_REVERSE_BITFIELDS_P): New, defaults to false.
+ * target.h (struct gcc_target): Add reverse_bitfields_p.
+ * config/darwin-c.c (darwin_pragma_reverse_bitfields): New.
+ * config/darwin-protos.h: Declare it.
+ * config/darwin.c (darwin_reverse_bitfields): Define, initialize to 0.
+ * config/darwin.h: Declare it.
+ (DARWIN_REGISTER_TARGET_PRAGMAS): Add reverse_bitfields.
+ * config/rs6000/rs6000.c (rs6000_reverse_bitfields_p): New.
+ (TARGET_REVERSE_BITFIELDS_P): Use it.
+ (rs6000_override_options): Set darwin_reverse_bitfields to 0.
+
+2005-03-24 Dale Johannesen <dalej@apple.com>
+
+ Radar 3982365
+ * cp/tree.c (cp_tree_equal): Fix from mainline.
+
+2005-03-22 Devang Patel <dpatel@apple.com>
+
+ Radar 4023104
+ * config/darwin-driver.c (dash_capital_m_seen): Remove.
+ (main) : Do not handle -M options.
+
+2005-03-21 Stuart Hastings <stuart@apple.com>
+
+ Radars 3805723 4010664 3965893 4010496 4015764
+ * config/mh-x86-darwin: New; now bootstraps with -mdynamic-no-pic on Darwin/x86.
+ * configure.in: Now bootstraps with -mdynamic-no-pic on Darwin/x86.
+ * configure: Re-autoconfiscated with above.
+ * gcc/config/darwin-protos.h (machopic_lazy_symbol_ptr2, machopic_lazy_symbol_ptr3):
+ New lazy_symbol_ptr sections for new Darwin/x86 stubs.
+ (darwin_texcoal_nt_section): New section for set_pc_thunk pic-base settors.
+ * gcc/config/darwin.c (machopic_symbol_defined_p): No longer static.
+ (machopic_indirect_data_reference): Revise to support -mdynamic-no-pic for x86.
+ * gcc/config/darwin.h (machopic_lazy_symbol_ptr2, machopic_lazy_symbol_ptr3,
+ machopic_picsymbol_stub2, darwin_textcoal_nt): New sections.
+ * gcc/config/i386/darwin.h (CC1_SPEC): Un-disable -mdynamic-no-pic option.
+ (TARGET_ASM_FILE_END): Use darwin_x86_file_end. (darwin_x86_file_end): New.
+ (TARGET_DEEP_BRANCH_PREDICTION, MASK_MACHO_DYNAMIC_NO_PIC, TARGET_DYNAMIC_NO_PIC):
+ Un-disable for x86. (SUBTARGET_OVERRIDE_OPTIONS): New arch/tune/fpmath defaults for Darwin/x86.
+ * gcc/config/i386/i386.c (override_options): New diagnostic for "-fPIC -mdynamic-no-pic."
+ (get_pc_thunk_name): Mach-O support. (ix86_output_function_epilogue): Isolate labels
+ from the end of Mach-O sections with a NOP.
+ (legitimate_constant_p, legitimze_address, print_operand, ix86_expand_move,
+ machopic_output_stub): Darwin -mdynamic-no-pic support.
+ (darwin_x86_file_end): New; appends set_pc_thunks at end of compilation.
+ * gcc/config/i386/i386.h: Update unused-bits comment.
+ * gcc/cp/optimize.c: Wire the decloner OFF.
+
+2005-03-18 Geoffrey Keating <geoffk@apple.com>
+
+ * doc/include/sourcecode.texi: Update branch name.
+
+2005-03-17 Geoffrey Keating <geoffk@apple.com>
+
+ * c-parse.in: Change number of expected conflicts to 15.
+
+2005-03-14 Dale Johannesen <dalej@apple.com>
+
+ Radar 4045984
+ * rtlanal.c (find_first_parameter_load): Rewrite to
+ return actual first param load or the call if none,
+ instead of first in block, when not all loads exist.
+
+2005-03-11 Devang Patel <dpatel@apple.com>
+
+ * target.h: Reinsert one line comment.
+
+2005-03-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3995882
+ * c-decl.c (objc_mark_locals_volatile): Mark local variables and
+ parameters 'volatile' in ways expected by the C front-end.
+
+2005-03-10 Devang Patel <dpatel@apple.com>
+
+ Radar 4040918
+ * c-opts.c (set_std_c89): Do not set lang if it is already set as CLK_ASM.
+
+2005-03-09 Devang Patel <dpatel@apple.com>
+
+ * tree-vectorizer.c (vect_analyze_loop): Reorder data refs alignment analysis.
+
+2005-03-08 Dale Johannesen <dalej@apple.com>
+
+ * Makefile.in: Remove useless code from LNO branch.
+ * tree-ssa-loop-ch.c: Local marker cleanup.
+ * tree-pass.h: Ditto.
+ * tree-ssa-loop.c: Ditto both the above.
+
+2005-03-08 Dale Johannesen <dalej@apple.com>
+
+ * Makefile.in: Remove useless code from LNO branch.
+ * cfgloop.h: Ditto.
+ * cfgloopmanip.c: Ditto.
+ * common.opt: Ditto.
+ * lambda-trans.c: Ditto.
+ * opts.c: Ditto.
+ * rtl.h: Ditto.
+ * timevar.def: Ditto.
+ * toplev.c: Ditto.
+ * toplev.h: Ditto.
+ * tree-flow.h: Ditto.
+ * tree-optimize.c: Ditto.
+ * tree-pass.h: Ditto.
+ * tree-ssa-loop-ch.c: Ditto.
+ * tree-ssa-loop.c: Ditto.
+ * tree.h: Ditto.
+ * varray.h: Ditto.
+
+2005-03-07 Devang Patel <dpatel@apple.com>
+
+ * target-def.h (TARGET_VECT): Remove.
+ * target.h (tree.h, tree-flow.h): Do not include.
+ (struct gcc_target): Remove struct vect.
+ * config/rs6000/rs6000.c (cfgloop.h): Do not include.
+ (rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads,
+ rs6000_build_builtin_lvsl, rs6000_build_builtin_lvsr,
+ rs6000_build_builtin_vperm, rs6000_support_vmul_uch_p,
+ rs6000_build_vmul_uch, rs6000_support_vector_init_p,
+ get_vector_init_fns_for_type, rs6000_build_vector_init): Remove.
+ (TARGET_VECT_SUPPORT_MISALIGNED_LOADS, TARGET_VECT_PERMUTE_MISALIGNED_LOADS,
+ TARGET_VECT_BUILD_BUILTIN_LVSL, TARGET_VECT_BUILD_BUILTIN_LVSR,
+ TARGET_VECT_BUILD_BUILTIN_VPERM, TARGET_VECT_SUPPORT_VMUL_UCH_P,
+ TARGET_VECT_BUILD_VMUL_UCH, TARGET_VECT_SUPPORT_VECTOR_INIT_P,
+ TARGET_VECT_BUILD_VECTOR_INIT, TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
+ * c-incpath.c (errors.h): Include.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (LINK_COMMAND_SPEC): Remove foutput-dbg.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ * target-def.h (TARGET_VECT_SUPPORT_MISALIGNED_LOADS,
+ TARGET_VECT_PERMUTE_MISALIGNED_LOADS, TARGET_VECT_BUILD_BUILTIN_LVSL,
+ TARGET_VECT_BUILD_BUILTIN_LVSR, TARGET_VECT_BUILD_BUILTIN_VPERM,
+ TARGET_VECT_SUPPORT_VMUL_UCH_P, TARGET_VECT_BUILD_VMUL_UCH,
+ TARGET_VECT_SUPPORT_VECTOR_INIT_P, TARGET_VECT_BUILD_VECTOR_INIT): Remove
+ redundant macros.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ Radar 4025991
+ * tree-vectorizer.c (vect_is_simple_cond): Now second parameter is
+ loop_vec_info instead of loop *.
+ (vectorizable_select): Supply loop_vec_info to vect_is_simple_use.
+ (vect_build_dist_vector): Use loop nest's depth.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ * c-opts.c (c_common_handle_option): Remove QA_DISABLE_WERROR.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ * tree-ssa-operands.h (add_vdef): Remove.
+ * tree.h (get_array_base): Remove.
+ (swap_tree_comparison): Remove redundant decl.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ * varray.h (VARRAY_DG_INIT, VARRAY_DG): Remove.
+
+2005-03-04 Dale Johannesen <dalej@apple.com>
+
+ Radar 4025985 (partial)
+ * config/rs6000/rs6000.c: Restore 64-bit ABI from mainline.
+ * config/rs6000/rs6000.h: Ditto.
+
+2005-03-03 Dale Johannesen <dalej@apple.com>
+
+ Radar 3897244
+ * config/i386/darwin.h: Define REGISTER_TARGET_PRAGMAS
+ and ROUND_TYPE_ALIGN.
+ * config/i386/i386.c (x86_field_alignment): Support Mac68K alignment.
+
+2005-03-02 Devang Patel <dpatel@apple.com>
+
+ Undo Radar 4023104
+ * config/darwin-driver.c (dash_capital_m_seen): Remove.
+ (main) : Do not handle -M options.
+
+2005-02-28 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4015382
+ * config/darwin.c (machopic_select_section): Do not place
+ non-weak '::operator new' and '::operator delete' definitions
+ in the coalesced section.
+
+2005-02-27 Dale Johannesen <dalej@apple.com>
+
+ Radar 4015911
+ * config/i386/i386.c (ix86_binds_local_p): New.
+ (TARGET_BINDS_LOCAL_P): Use it.
+
+2005-02-26 Dale Johanensen <dalej@apple.com>
+
+ Radar 3988125
+ PR 19360 (from mainline)
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
+ at the end of the main DOM loop rather than just before DOM exits.
+
+2005-02-25 Devang Patel <dpatel@apple.com>
+
+ Radar 4023104
+ * config/darwin-driver.c (dash_capital_m_seen): New.
+ (main) : Handle -M options.
+
+2005-02-24 Dale Johannesen <dalej@apple.com>
+
+ * doc/extend.texi (nested function description): Improvement
+ from mainline.
+
+2005-02-23 Dale Johannesen <dalej@apple.com>
+
+ Radar 4011924
+ PR 19241 (patch from mainline)
+ * tree-inline.c (copy_body_r): Don't recurse when
+ remapping variables.
+
+2005-02-23 Devang Patel <dpatel@apple.com>
+
+ Radar 4021019
+ * config/rs6000/darwin.h (CC1_SPEC): Ignore -march=pentium4 and
+ -mcpu=pentium4.
+ * config/i386/darwin.h (CC1_SPEC): Ignore -mno-fused-madd.
+
+2005-02-23 Devang Patel <dpatel@apple.com>
+
+ Radar 3841402 3841397 3841275
+ * config/darwin-driver.c (add_arch_options): Do not supply
+ -march=i386. Interpret -arch pentIIm3 appropriately.
+
+2005-02-22 Devang Patel <dpatel@apple.com>
+
+ Radar 3844827
+ Backport from Mainline.
+
+ 2005-01-18 Andi Kleen <ak@muc.de>
+
+ * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
+ * c.opt (-Wpointer-sign): Add.
+ * doc/invoke.texi: (-Wpointer-sign): Add.
+
+2005-02-21 Dale Johannesen <dalej@apple.com>
+
+ Radar 4015820 (missing piece)
+ * objcp/objcp-lang.c: Use objc_gimplify_expr.
+
+2005-02-21 Dale Johannesen <dalej@apple.com>
+
+ Radar 4015820
+ * objc/objc-act.c (objc_gimplify_expr): New.
+ * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Use it.
+ * objc/objc-act.h: Declare it. Include tree-gimple.h.
+ * objc/Make-lang.in: Add required tree-gimple.h's.
+ * objcp/Make-lang.in: Ditto.
+
+2005-02-21 Stan Shebs <shebs@apple.com>
+
+ * config/darwin-c.c (darwin_pragma_options): Warn about uses
+ of mac68k alignment pragma when 64-bit.
+
+2005-02-21 Devang Patel <dpatel@apple.com>
+
+ Radar 3964387
+ * config/rs6000/darwin.h (CC1_SPEC): Ignore -msse and -msse2.
+
+2005-02-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4014879
+ * config/rs6000/rs6000.md (call_nonlocal_sysv,
+ sibcall_symbolic): Add handling of ABSCALL annotations.
+
+2005-02-17 Devang Patel <dpatel@apple.com>
+
+ Radar 4008460
+ * tree-vectorizer.c (vect_analyze_data_ref_dependence): Check for NULL
+ distance vector.
+
+2005-02-17 Devang Patel <dpatel@apple.com>
+
+ Undo Radar 3964387 fix.
+
+2005-02-17 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3971074
+
+ * c-common.c (cw_asm_stmt): Generate .file and .line
+ directives. Remove cw_asm_lineno declaration.
+ * c-common.h: Add argument to cw_asm_stmt declaration, remove
+ cw_asm_lineno declaration.
+ * c-parse.in: Accurately pass line no information to
+ cw_asm_stmt routine.
+
+2005-02-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3635843, 3922342
+ * c-common.h (objc_generate_write_barrier): New prototype.
+ * c-typeck.c (lvalue_or_else): Do not emit warning if
+ '-Wno-non-lvalue-assign' has been specified.
+ (build_modify_expr): Call objc_generate_write_barrier() if
+ '-fobjc-gc' has been specified.
+ * c.opt (-Wassign-intercept, -Wnon-lvalue-assign,
+ -fobjc-direct-dispatch, -fobjc-gc): New options.
+ * calls.c (emit_call_1): For functions with 'hard_coded_address'
+ attribute, annotate the RTL call instruction with the address
+ to use.
+ * reg-notes.def (ABSCALL): New RTL annotation.
+ * stub-objc.c (objc_generate_write_barrier): New stub.
+ * config/darwin-protos.h (darwin_handle_objc_gc_attribute):
+ New prototype.
+ * config/darwin.c (darwin_handle_objc_gc_attribute): New function.
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
+ '-Wno-non-lvalue-assign' whenever '-fobjc-gc' is seen.
+ (SUBTARGET_OS_CPP_BUILTINS): Define '__strong' and '__OBJC_GC__'
+ macros as needed.
+ (SUBTARGET_ATTRIBUTE_TABLE): Add 'objc_gc' attribute.
+ * config/rs6000/rs6000.md (call_value_nonlocal_sysv,
+ sibcall_value_symbolic): Add handling of ABSCALL annotations.
+
+2005-02-16 Dale Johannesen <dalej@apple.com>
+
+ Radar 4006687
+ PR 17767 et al (fix from mainline)
+ * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
+ any simplifications of vector mode comparison operators.
+ * simplify-rtx.c (simplify_relational_operation): Fix variable name.
+
+2005-02-15 Dale Johannesen <dalej@apple.com>
+
+ Radar 3991611
+ Radar 3990578
+ PRs 19084 and 19348 (fix from mainline)
+ * recog.c (peephole2_optimize): Do global life update if some peephole
+ decides it doesn't need at least one of its inputs and that change
+ influences liveness at the start of the basic block.
+ * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
+ arguments instead of 1.
+
+2005-02-15 Dale Johannesen <dalej@apple.com>
+
+ Radar 3876378
+ Radar 3838108
+ PR 18109 (fix from mainline)
+ * config/i386/i386.md (movhi_1): Remove previous attempt at a fix.
+ (movqi_1): Ditto. Don't use 4-byte load when unsafe.
+
+2004-02-16 Devang Patel <dpatel@apple.com>
+
+ Radar 3964387
+ * build_gcc: Build darwin-driver-rs6000.c and darwin-driver-i386.c
+ * config/darwin-driver-rs6000.c: New file
+ * config/darwin-driver-i386.c: New file
+ * config/darwin-driver.h: New file
+ * config/darwin-driver.c (darwin-driver.h): Include.
+ (ppc_specific_args, ppc_specific_args_size, ppc_specific_arg_count,
+ x86_specific_args, x86_specific_args_size, x86_specific_arg_count,
+ is_ppc_specific_option, is_x86_specific_option): New.
+ (remove_arch_options): New parameter.
+ (add_arch_options): Insert arch specific options.
+ (main): Interpret arch specific options.
+
+2005-02-16 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3970655
+
+ * c-common.c (prepend_char_identifier): Modified old
+ get_atsign_identifier to handle any character.
+ * c-common.h (prepend_char_identifier): New function declaration.
+ Removed get_atsign_identifier declaration.
+ * c-lex.c (c_lex_with_flags): Add '.' to those tokens which
+ can start a CW asm statement.
+ * c-parse.in (cw_identifier): New CW identifier syntax.
+
+2005-02-15 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3970646
+ * c-common.c (cw_asm_identifier): New routine.
+ (cw_asm_stmt): call cw_asm_identifier on asm operator.
+ * cp/parser.c (cp_parser_cw_asm_relative_branch): New routine.
+ (cp_parser_cw_asm_postfix_expression): Call
+ cp_parser_cw_asm_relative_branch to parse relative branch
+ operand.
+
+2005-02-14 Devang Patel <dpatel@apple.com>
+
+ Radar 4002184
+ * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove
+ -ffix-and-continue.
+
+2005-02-14 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3971053
+ * cp/parser.c (cp_parser_unary_expression): Defer 'sizeof' in asm
+ block to cp_parser_cw_asm_postfix_expression.
+ (cp_parser_cw_asm_postfix_expression): Process sizeof here.
+
+ Radar 3971060
+ c-common.c (cw_asm_expr_val): New routine.
+ (print_cw_asm_operand): Call cw_asm_expr_val to evaluate complex
+ numeric expressions used in asm block.
+
+ Radar 3971070
+ gcc/c-parse.in (cw_asm_unary_expr): Error on undeclared type used
+ in sizeof.
+ c-typeck.c (parser_build_binary_op): Check for use of undefined
+ in asm block.
+ cp/typeck.c (build_x_binary_op): Ditto
+
+2005-02-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3962013 (Part 2)
+ * doc/invoke.texi: Document '-Wstrict-selector-match'.
+
+2005-02-11 Devang Patel <dpatel@apple.com>
+
+ Radar 3996800
+ * gcc.c (cpp_uniq_options): Emit '-mconstant-cfstrings' option,
+ if needed.
+
+2005-02-09 Dale Johannesen <dalej@apple.com>
+
+ Radar 3985162
+ Radar 3990505
+ * cselib.c (cselib_process_insn): Clear out regs where
+ HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
+ * reload.c (find_equiv_reg): Ditto.
+
+2005-02-06 Dale Johannesen <dalej@apple.com>
+
+ Radar 3988061
+ * langhooks-def.h: add lhd_vtable_p, LANG_HOOKS_VTABLE_P
+ langhooks.c (lhd_vtable_p): New.
+ langhooks.h (struct lang_hooks): Add vtable_p.
+ config/rs6000/rs6000.c (rs6000_binds_local_p): Treat kext
+ vtables as non-local-binding.
+ cp/cp-objcp-common.c (cp_vtable_p): New.
+ cp/cp-objcp-common.h: Use it for LANG_HOOKS_VTABLE_P.
+ cp/cp-tree.h: Declare it.
+
+2005-02-06 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3984134 (again)
+ * config/darwin-driver.c (do_compile): Update argc_count for
+ target-specific options.
+ (add_arch_options): Improve debug output.
+
+2005-02-02 Mike Stump <mrs@apple.com>
+
+ Radar 3981486
+ * objcp/lang-specs.h ("@objc++-cpp-output"): Add support for 3.3
+ language name for distributed builds.
+
+2005-02-02 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3984134
+ * config/darwin-driver.c (initialize): Allow for extra NULL in
+ new_argv. Update comment for lipo_argv.
+ (do_lipo): Add NULL at end. Check for NULL at end when printing.
+ (do_compile): Add NULL at end of current_argv.
+ (main): Add NULL at end of new_argv.
+
+2005-02-01 Devang Patel <dpatel@apple.com>
+
+ Radar 3983593
+ * c-pch.c (pch_matching[]): Add -faltivec.
+ * c.opt (faltivec): Use flag_altivec as variable.
+ * toplev.c (flag_disable_opts_for_faltivec): New.
+ * flags.h (flag_disable_opts_for_faltivec): Same.
+
+2005-01-31 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978168
+ * c-typeck.c (lvalue_or_else): Allow certain non-lvalues
+ as arguments to '&', and print appropriate warning.
+
+2004-01-31 Devang Patel <dpatel@apple.com>
+
+ Radar 3978580
+ * varasm.c (const_hash_1): Check constant cfstring.
+ (compare_constant): Same.
+ * config/darwin-protos.h (darwin_constant_cfstring_p): New.
+ * config/darwin.c (darwin_constant_cfstring_p): New.
+
+2005-01-31 Roger Sayle <roger@eyesopen.com>
+ Dale Johannesen <dalej@apple.com>
+
+ Radar 3974393
+ * fold-const.c (fold_binary_op_with_conditional_arg):
+ Make types match original operands, before STRIP_NOPS.
+ (From mainline.)
+
+2005-01-30 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3962013
+ * c.opt (Wstrict-selector-match): New option.
+
+2005-01-28 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3979484
+
+ * cp/typeck2.c (digest_init): Convert AltiVec-style
+ vector constant to its internal tree representation.
+
+2005-01-28 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3967653
+ * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
+ Diagnose 'long long' and 64bit 'long' vector declarations.
+
+2005-01-26 Dale Johannesen <dalej@apple.com>
+
+ Back out preceding change, which is wrong.
+
+2005-01-26 Dale Johannesen <dalej@apple.com>
+
+ Radar 3974393
+ PR 19650
+ * fold-const.c (fold_binary_op_with_conditional_arg):
+ Make constant 0 or 1 be of correct type.
+
+2005-01-27 Mike Stump <mrs@apple.com>
+
+ Radar 3978098
+ * config/darwin.h (SUBTARGET_OS_CPP_BUILTINS): Move setting
+ pascal_string for cpp from here...
+ * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): ..to here.
+ * c-cppbuiltin.c: Remove includes for pascal strings.
+ * config/rs6000/rs6000.c (parse_in): Add.
+ * config/i386/i386.c (parse_in): Add.
+
+2005-01-26 Stuart Hastings <stuart@apple.com>
+
+ Radar 3967989
+ * gcc/gimplify.c (shortcut_cond_expr): Re-compute side-effects.
+ * gcc/testsuite/gcc.c-torture/execute/20050125-1.c: New.
+
+2005-01-26 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3970884
+ * tree.c (reconstruct_complex_type): Reconstruct
+ REFERENCE_TYPEs correctly, instead of turning them
+ into POINTER_TYPEs.
+ * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
+ Propagate all qualifiers from element type onto vector type.
+
+2005-01-25 Dale Johannesen <dalej@apple.com>
+
+ Radar 3941199
+ * config/rs6000/darwin-tramp.asm (__trampoline_setup):
+ Make work for 64 bit.
+
+2005-01-25 Dale Johannesen <dalej@apple.com>
+
+ Radar 3944688
+ PR 19147
+ * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
+
+2005-01-25 Dale Johannesen <dalej@apple.com>
+
+ Radar 3970057
+ * config/rs6000/rs6000.c (rs6000_return_in_memory):
+ Implement Darwin 64-bit convention correctly.
+ (rs6000_darwin64_record_arg_flush_pending):
+ Compute correct reg for int field following doubles.
+
+2005-01-24 Stuart Hastings <stuart@apple.com>
+
+ Radar 3939078
+ * gcc/cgraphunit.c (cgraph_build_static_cdtor) Don't set DECL_IGNORED_P.
+
+2005-01-24 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3961973 (Part 2)
+ * c-typeck.c (lvalue_or_else): Acccept NON_LVALUE_EXPRs
+ as cast expressions.
+
+2005-01-23 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3961973
+ * c-common.c (flag_lvalue_cast_assign): Remove.
+ * c-common.h (flag_lvalue_cast_assign): Remove.
+ * c-opts.c (c_common_handle_option): Remove
+ '-flvalue-cast-assign' handling.
+ * c-typeck.c (lvalue_or_else): Change first parameter from
+ 'tree' to 'tree *'; handle conditional lvalues in addition
+ to lvalue casts; when rewriting expressions, create a new
+ tree instead of clobbering an existing one.
+ (build_unary_op, build_modify_expr, build_asm_expr):
+ Adjust calls to lvalue_or_else().
+ * c.opt: Rename -flvalue-cast-assign to -fnon-lvalue-assign
+ and add Var(...) and Init(...) annotation to create a flag.
+ * doc/invoke.texi: Likewise; add description of lvalue
+ conditional expressions and how they are transformed.
+
+2005-01-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3951887
+ * gimplify.c (gimplify_expr): Adjust the type of
+ INDIRECT_REFs after their argument is gimplified.
+
+2005-01-19 Robert Bowdidge <bowdidge@apple.com>
+
+ * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS) Turn off
+ -fweak whenever we're building kexts.
+ * Makefile.in: Add -fno-non-call-exceptions to flags passed when
+ building files for libcc_kext.a
+ * mklibgcc: Move -fexception and -fnon-call-exceptions to start of
+ command line so multilib machinery can override
+
+2005-01-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 3966230
+ * config/rs6000/darwin.md (movsf_low_di): Make work.
+
+2005-01-19 Dale Johannesen <dalej@apple.com>
+
+ Radar 3961638
+ * config/rs6000/darwin.md (movdf_low_di): Make work.
+
+2005-01-19 Mike Stump <mrs@apple.com>
+
+ Radar 3962625
+ * c-incpath.c (hmap_construct_pathname): Warn when headermaps find
+ files with mismatched case.
+
+2005-01-13 Dale Johannesen <dalej@apple.com>
+
+ Radars 3942172 3897795 3944716 3941494
+ * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
+ intoffset, use_stack, named.
+ * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
+ rs6000_darwin64_record_arg_advance_flush_pending_int_fields: New.
+ rs6000_darwin64_record_arg_advance_recurs: New.
+ rs6000_darwin64_record_arg_flush_pending_int_fields: New.
+ rs6000_darwin64_record_arg_recurs: New.
+ rs6000_darwin64_record_arg: New.
+ rs6000_return_in_memory: Remove AGGREGATE_TYPE_P check.
+ function_arg_boundary: Handle 128-bit aligned structs.
+ function_arg_advance: Rewrite darwin-64 struct handling.
+ function_arg: Call rs6000_darwin64_record_arg.
+ function_arg_partial_nregs: Handle darwin-64 structs.
+ rs6000_darwin64_function_value: Remove.
+ rs6000_function_value: Call rs6000_darwin64_record_arg.
+
+2005-01-04 Anders Bertelrud <anders@apple.com>
+
+ Radar 3871393
+ * gcc/c-incpath.c: Merged in headermap code from GCC 3.3 source
+ base, modifying it somewhat to work in GCC 4.0.
+ (hmap_hash_string): Copied from GCC 3.3.
+ (hmap_compare_strings): Copied from GCC 3.3.
+ (hmap_load_header_map): Copied from GCC 3.3.
+ (hmap_construct_pathname): Copied from GCC 3.3 and modified
+ to have calling convensions for cpp_dir's 'construct' field.
+ (remove_duplicates): If a search path refers to a file rather than
+ a directory, we check if it's a headermap file immediately before
+ we would have reported an error. If it is, call hmap_load_header_map
+ and set up the 'construct' field of the cpp_dir. Otherwise, report
+ the error as usual.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3951689
+ * c-common.h (objc_finish_try_stmt, objc_build_synchronized):
+ Return 'tree' instead of 'void'.
+ * stub-objc.c (objc_build_throw_stmt, objc_begin_try_stmt,
+ objc_finish_try_stmt, objc_begin_catch_clause,
+ objc_finish_catch_clause, objc_build_finally_clause,
+ objc_build_synchronized: New stubs.
+
+2005-01-15 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c (macosx_version_min_required): Make static.
+
+2005-01-14 Dale Johannesen <dalej@apple.com>
+
+ Radar 3953308
+ * tree-ssa-dce.c: Remove all vestiges of LNO branch.
+ * tree-flow.h (tree_ssa_dce_no_cfg_changes): Remove declaration.
+
+2005-01-13 Stuart Hastings <stuart@apple.com>
+
+ Radar 3236762
+ * gcc/config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Revert Mach-O arch back to i386,
+ regardless of -force_cpusubtype_ALL.
+
+2005-01-11 Stuart Hastings <stuart@apple.com>
+
+ Radar 3943021
+ * gcc/config/rs6000/rs6000.md (maxsf3, minsf3, split, maxdf3, mindf3, split):
+ disable when -flag-trapping-math.
+ * gcc/config/rs6000/rs6000.c (rs6000_emit_minmax): Don't abort
+ when #pragma fenv (-ftrapping-math) causes failure.
+
+2005-01-11 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3903960
+ * fold-const.c (fold_widened_comparison) Replace it with the
+ one from FSF mainline.
+ (fold_sign_changed_comparison): Ditto.
+ (fold): Remove APPLE LOCAL lno marker.
+
+2005-01-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3943452
+ * config/rs6000/rs6000.c (altivec_convert_args): Clear any oveflows
+ caused by integer literal conversions.
+
+2005-01-09 Mike Stump <mrs@apple.com>
+
+ Radar 3926955
+ * c-opts.c (c_common_handle_option): Remove wrong -faltivec code.
+ * c.opt (faltivec): Remove wrong set 0.
+ config/rs6000/rs6000.c (rs6000_altivec_switch): Move -maltivec back
+ into TARGET_SWITCHES.
+ (rs6000_override_options): Likewise.
+ * config/rs6000/rs6000.h (TARGET_SWITCHES): Likewise.
+ (TARGET_OPTIONS): Likewise.
+ (rs6000_altivec_switch): Likewise.
+
+2005-01-10 Stuart Hastings <stuart@apple.com>
+
+ Radar 3236762
+ * gcc/config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Revert Mach-O arch back to i386.
+
+2005-01-09 Dale Johannesen <dalej@apple.com>
+
+ Radar 3941146
+ Following patches from mainline:
+ 2004-10-27 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/17133
+
+ * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
+ def kill operand.
+
+ * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
+ (get_v_must_def_result_ptr): Modify for new structure of
+ v_must_defs array.
+ (get_v_must_def_kill_ptr): New.
+ (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
+ (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
+ (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
+ (op_iter_init): Initialize new mustu members.
+ (op_iter_next_mustdef): New function.
+ (op_iter_init_mustdef): Ditto.
+
+ * tree-flow.h (rewrite_def_def_chains): New function.
+
+ * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
+ (ssa_mark_def_sites): Ditto.
+ (rewrite_stmt): Ditto.
+ (ssa_rewrite_stmt): Ditto.
+ (rewrite_blocks): Factor out from rewrite_into_ssa.
+ (mark_def_block_sites): Ditto.
+ (rewrite_def_def_chains): New function, just rewrites def-def
+ chains without phi node insertion.
+
+ * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
+
+ * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
+
+ * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
+ they include the rhs now.
+
+ * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
+ V_MUST_DEF_RESULT.
+
+ * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
+ Update callers.
+ (mark_really_necessary_kill_operand_phis): New function.
+ (perform_tree_ssa_dce): Call it.
+ (pass_dce): Add TODO_fix_def_def_chains.
+ (pass_cd_dce): Ditto.
+
+ * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
+ well.
+ (rewrite_mem_refs): Ditto.
+
+ * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
+ as well.
+
+ * tree-ssa-operands.c (allocate_v_may_def_optype):
+ v_may_def_operand_type_t became v_def_use_operand_type_t.
+ (allocate_v_must_def_optype) Ditto.
+ (finalize_ssa_v_must_defs): Update for new operand type, as well
+ as setting the use portion as well.
+ (copy_virtual_operands): Copy the kill operand as well.
+ (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
+ V_MUST_DEF_RESULT.
+
+ * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
+ v_def_use_operand_type.
+ (v_must_def_optype_d): Use v_def_use_operand_type.
+ (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
+ (V_MUST_DEF_KILL_*): New macros.
+ (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
+ members.
+ Rename existing must_i and num_v_must members to mustd_i and
+ num_v_mustd.
+ (SSA_OP_VMUSTDEFKILL): New flag.
+ (SSA_OP_VIRTUAL_KILLS): New flag.
+ (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
+ (SSA_OP_ALL_KILLS): New flag.
+ (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
+
+ * tree-ssa.c (verify_ssa): Verify virtual kills as well.
+
+ * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
+ became V_MUST_DEF_RESULT.
+ (rename_variables_in_bb): Rename kill pointer as well.
+
+ * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
+ immediate uses.
+
+ 2004-10-28 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
+ (rewrite_blocks): Modify argument, and use it to decide which
+ function to call.
+ (rewrite_def_def_chains): Call rewrite_blocks with true here.
+ (rewrite_into_ssa): and call it with false here.
+
+ 2004-11-16 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/18519
+
+ * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
+ * tree-pass.h: Add TODO_cleanup_cfg.
+ * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
+ (ccp_finalize): Remove call to cleanup_cfg.
+ * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
+ (pass_cd_dce): Ditto.
+ (perform_tree_ssa_dce): Remove call to cleanup_cfg,
+ dump_function_to_file.
+ * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
+ to cleanup_cfg.
+ (pass_ch): Add TODO_cleanup_cfg.
+ * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
+ cleanup_cfg.
+ (pass_loop_done): Add TODO_cleanup_cfg.
+ * tree-ssa-phiopt.c (pass_phiopt): Ditto.
+ (tree_ssa_phiopt): Remove call to cleanup_cfg.
+
+2005-01-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3913725
+ * c-common.c (flag_lvalue_cast_assign): New global variable.
+ * c-common.h (flag_lvalue_cast_assign): Forward declare.
+ * c-opts.c (c_common_handle_option): Handle
+ '-f[no-]lvalue-cast-assign'.
+ * c-typeck.c (lvalue_or_else): If expression is not an lvalue,
+ check if it is a cast of an lvalue; if so, and if the cast
+ involves POD types with identical size and aligment,
+ rewrite '(type)expr' into '*(type *)&expr' and allow the
+ result as an lvalue.
+ * c.opt (flvalue-cast-assign): New flag.
+ * invoke.texi: Document '-f[no-]lvalue-cast assign' flag.
+
+2005-01-07 Devang Patel <dpatel@apple.com>
+
+ Radar 3943502
+ * stub-objc.c (objc_get_class_ivars): New.
+
+2005-01-06 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3926755
+ * c-decl.c (builtin_function): Do not require AltiVec
+ builtins to be explicitly declared.
+ * config/rs6000/rs6000.c (altivec_cov_rt_1h): New function.
+ (pim_flags): Add pim_rt_1h enumeration constant; renumber
+ all pim_rt_... constants.
+ (rs6000_fold_builtin): Select overload candidate before
+ determining return type; call altivec_cov_rt_1h() during
+ latter.
+ (altivec_init_builtins): Create builtins corresponding
+ to "specific operations" listed in AltiVec PIM; fix
+ entry for "vec_re" to return a 'vector float'; fix
+ entries for "vec_pack" to compute return vector type
+ as having twice as many elements as the first argument.
+ * config/rs6000/rs6000.h (rs6000_builtins): Add enumeration
+ constants corresponding to AltiVec PIM "specific operations".
+
+2005-01-06 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't skip
+ saving r31 if we must do a full stack frame.
+ (rs6000_emit_epilogue): Similarly for restoring r31.
+
+2005-01-06 Andrew Pinski <pinskia@physics.uc.edu>
+ Stuart Hastings <stuart@apple.com>
+
+ Radar 3830232
+ * gcc/testsuite/gcc.apple/notailcall-1.c: New testcase.
+
+2005-01-06 Stuart Hastings <stuart@apple.com>
+
+ Radar 3941684
+ * gcc/c-common.c (print_cw_asm_operand): Casts for long long format.
+ * gcc/gcc.c (process_command): Malloc overflowing static char array.
+ * gcc/config/i386/dariwn.h (ASM_SPEC): Revert to i386.
+ * gcc/config/i386/i386.h (STACK_BOUNDARY): Must be of indeterminate signedness.
+
+2005-01-06 Mike Stump <mrs@apple.com>
+
+ Radar 3929334
+ * c-pch.c (c_common_pch_pragma): Add indirection for pch files for distcc.
+
+2005-01-04 Devang Patel <dpatel@apple.com>
+
+ Radar 3886137 Part 2.
+ * cppdefault.c (INCLUDE_DEFAULTS): Enable isysroot override by default
+ for all include paths.
+
+2005-01-03 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3936917
+ * config/rs6000/altivec.md (altivec_vandc): Correct RTL
+ pattern and use its canonical form.
+
+2005-01-03 Stuart Hastings <stuart@apple.com>
+
+ Radar 3830232, Bugzilla 17526
+ * tree-gimple.c (is_gimple_mem_rhs): Force a temp for every
+ register-candidate to prevent bad tailcalls.
+
+2004-12-23 Dale Johannesen <dalej@apple.com>
+
+ * config/darwin-c.c: Include options.h.
+ (darwin_pragma_fenv): New.
+ * config/darwin-protos.h: Declare it.
+ * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register it.
+ * config/t-darwin: Add new dependency.
+ * config/rs6000/rs6000.c (optimization_options):
+ Default trapping-math off.
+ * config/i386/i386.c (optimization_options): Ditto.
+ * fixincludes/inclhack.def: Add #pragma GCC fenv to <fenv.h>.
+ * fixincludes/fixincl.x: Regenerate.
+ * testsuite/gcc.apple/apple-altivec-9.c: Add -ftrapping-math.
+ * testsuite/gcc.apple/darwin-fsel-3.c: New.
+
+2004-12-23 Dale Johannesen <dalej@apple.com>
+
+ Radar 3926600
+ Following patches brought in from mainline
+ * tree.c (iterative_hash_expr): Canonicalize builtins.
+ PR tree-opt/16951
+ * tree-inline.c (setup_one_parameter): Don't directly map a
+ parameter to the address of another variable of the same
+ function.
+
+2004-12-22 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3765572
+ * expr.c (emit_push_insn): Remove unnecessary apple
+ local stuff which previously handled partial
+ arguments in mixed mode.
+
+2004-12-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 3926484
+ * objc/objc-act.c (objc_get_callee_fndecl): New.
+ * objc/objc-act.h: Declare it.
+ * objc/objc-lang.c: Use it.
+ * objcp/objcp-lang.c: Ditto.
+
+2004-12-20 Matt Austern <austern@apple.com>
+
+ Radar 3845716
+ PR c++/19044
+ * c-common.c (set_builtin_user_assembler_name): New.
+ * c-common.h (set_builtin_user_assembler_name): Declare.
+ * c-decl.c (finish_decl): Use set_builtin_user_assembler_name
+
+2004-12-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 3926488
+ * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Don't
+ reference operand 1 of ADDR_EXPRs.
+
+2004-12-20 Devang Patel <dpatel@apple.com>
+
+ Backport vectorizatin patches from Mainline.
+ Radar 3907012 3917979 3917991 3917994 3917999
+
+ PR tree-optimization/18009
+ 2004-11-03 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.h (enum dr_alignment_support): New type.
+ (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
+ (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
+ single data_reference (instead of a varray of references).
+ * tree-vectorizer.c (new_loop_vec_info): Likewise.
+ (vect_gen_niters_for_prolog_loop): Likewise.
+ (vect_update_inits_of_drs): Likewise.
+
+ (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
+ vect_enhance_data_refs_alignment.
+ (vect_do_peeling_for_alignment): Likewise.
+ (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
+ this functionality used to be in vect_analyze_data_refs_alignment.
+ Also update DR_MISALIGNMENT due to peeling; this functionality used to
+ be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
+ (vect_analyze_data_refs_alignment): Decision on whether and by how much
+ to peel moved to vect_enhance_data_refs_alignment. Call
+ vect_supportable_dr_alignment.
+
+ (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
+ (vect_compute_data_refs_alignment): Return bool. Consider return value
+ of vect_compute_data_ref_alignment and return true/false accordingly.
+ (vect_enhance_data_refs_alignment): Consider return value of
+ vect_compute_data_refs_alignment and return true/false accordingly.
+
+ (vect_supportable_dr_alignment): New function.
+ (vectorizable_store): Call vect_supportable_dr_alignment.
+ (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
+ support checks moved from here to vect_supportable_dr_alignment.
+
+ (vect_transform_loop): Avoid 80 columns overflow.
+
+ 2004-11-11 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
+ (vect_update_ivs_after_vectorizer): Update function documentation.
+ Avoid quadratic behavior and direct write to PHI_ARG_DEF.
+
+ 2004-11-14 Dorit Naishlos <dorit@il.ibm.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/18425
+ * tree-vectorize.c (vect_build_loop_niters): Do not insert
+ NULL into the instruction stream. Initialize new_bb to NULL.
+ (vect_update_ivs_after_vectorizer): Likewise.
+ (vect_gen_niters_for_prolog_loop): Likewise.
+
+ PR tree-opt/18400
+ * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
+ (vect_transform_loop_bound): Set loop->nb_iterations.
+
+ 2004-11-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-opt/18400
+ * gcc.dg/vect/pr18400.c: New test.
+
+ 2004-11-14 Dorit Naishlos <dorit@il.ibm.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/18425
+ * gcc.dg/vect/pr18425.c: New test.
+
+ 2004-11-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/vect/vect-78.c: Now vectorized on powerpc*.
+
+ 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
+ function previously called tree_duplicate_loop_to_edge.
+ (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
+ previously called tree_duplicate_loop_to_edge_cfg.
+ (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
+ function name.
+ (slpeel_update_phi_nodes_for_guard): Likewise.
+ (slpeel_make_loop_iterate_ntimes): Likewise.
+ (slpeel_add_loop_guard): Likewise.
+ (allocate_new_names, free_new_names): Function declaration moved to top
+ of file.
+ (rename_use_op, rename_def_op): Likewise.
+ (rename_variables_in_bb, rename_variables_in_loop): Likewise.
+ (vect_generate_tmps_on_preheader): Function declaration moved.
+ (vect_transform_for_unknown_loop_bound): Added missing function
+ declaration.
+
+ 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
+ previously called verify_loop_for_duplication. All conditions compacted
+ into one compound condition. Removed debug dumps.
+ (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
+ functionality moved to vect_can_advance_ivs_p, and some to
+ vect_analyze_loop_form.
+ (vect_can_advance_ivs_p): New function. Contains functionality that was
+ taken out of vect_analyze_loop_with_symbolic_num_of_iters.
+ (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
+ (vect_analyze_operations): Call vect_can_advance_ivs_p and
+ slpeel_can_duplicate_loop_p.
+ (vect_get_loop_niters): Added documentation.
+ (vect_analyze_loop_form): Check the loop entry always - not only in case
+ of unknown loop bound. Create preheader and exit bb if necessary. Apply
+ a check that used to take place in
+ vect_analyze_loop_with_symbolic_num_of_iters.
+ (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
+ Remove redundant call to rewrite_into_loop_closed_ssa.
+ (vect_compute_data_refs_alignment): Removed obsolete comment.
+
+
+ 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
+ arguments removed.
+ (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
+ without last two arguments. Update single_exit of loops.
+ (vect_update_niters_after_peeling): Removed. Its functionality was
+ moved to vect_do_peeling_for_alignment.
+ (vect_do_peeling_for_loop_bound): New name for function previously
+ called vect_transform_for_unknown_loop_bound.
+ (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
+ instead of code that duplicates the same functionality.
+ (vect_do_peeling_for_alignment): Functionality of
+ vect_update_niters_after_peeling moved here.
+ (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
+ previously named vect_transform_for_unknown_loop_bound - for both known
+ and unknown loop bound cases.
+
+ 2004-11-19 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
+ if checking is enabled.
+
+ 2004-11-22 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-opt/18544
+ * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
+
+ 2004-11-22 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-opt/18536
+ * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
+ creating iv instead of integer_type.
+ (vect_build_loop_niters): Remove redundant code.
+ (vect_transform_loop_bound): Removed (duplicates functionality of
+ make_loop_iterate_ntimes.
+ (vect_gen_niters_for_prolog_loop): Add documentation. Call
+ lang_hooks.types.type_for_size to create a type of the required size.
+ Use that type instead of integer_type. Remove redundant code.
+ (vect_update_niters_after_peeling): Use type of niters instead of
+ integer_type.
+ (vect_transform_loop): Unify handling of known and unknown loop bound
+ cases. Call make_loop_iterate_ntimes instead of
+ vect_transform_loop_bound.
+
+ 2004-11-23 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-opt/18403
+ PR tree-opt/18505
+ * tree-vectorizer.c (vect_create_data_ref_ptr): Use
+ lang_hooks.types.type_for_size instead of integer_type_node for the
+ type of ptr_update.
+
+ 2004-11-23 Dorit Naishlos <dorit@il.ibm.com>
+ * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
+ the vectorization factor is greater than the iteration count.
+ (vect_gen_niters_for_prolog_loop): No need to calculate min if the
+ iteration count is known.
+
+ (vect_build_symbol_bound): Removed. Its functionality moved to
+ vect_generate_tmps_on_preheader.
+ (vect_generate_tmps_on_preheader): Moved content of
+ vect_build_symbol_bound here instead of calling it. Changed some
+ variables names.
+
+ (vect_build_loop_niters): We don't expect a new_bb to be generated -
+ use gcc_assert.
+ (vect_gen_niters_for_prolog_loop): Likewise.
+ (vect_gen_niters_for_prolog_loo): Likewise.
+
+ (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
+ (slpeel_add_loop_guard): Likewise.
+ (slpeel_tree_peel_loop_to_edge): Likewise.
+ (vect_do_peeling_for_alignment): Likewise.
+
+ (vect_get_first_index): Missing space.
+
+ 2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
+ PR tree-opt/18173
+
+ * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
+ decls that are assembled before vectorization takes place.
+ (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
+
+ 2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
+ * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
+ tree_low_cst instead of TREE_INT_CST_LOW.
+
+ 2004-11-30 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-opt/18607
+ * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
+ variable for data_reference when looking for memtag.
+
+ 2004-12-02 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-opt/18716
+ * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
+ then and else labels.
+
+2004-12-17 Mike Stump <mrs@apple.com>
+
+ Radar 3549855
+ * c-lex.c (c_lex_with_flags): Always do BOL processing for CW
+ asms.
+
+2004-12-17 Dale Johannesen <dalej@apple.com>
+
+ Radar 3851659
+ * c-decl.c (disagnose_mismatched_decls): Fix from mainline.
+
+2004-12-17 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3914905
+ * c-typeck.c (digest_init): Handle case of vector literal
+ initializer initializing a const variable.
+ * convert.c (build_compound_literal_vector): New routine to generate a
+ COMPOUND_LITERAL_EXPR expression for a vector constant.
+ (convert_to_vector); call build_compound_literal_vector.
+
+2004-12-16 Stuart Hastings <stuart@apple.com>
+
+ Radar 3910248, 3915171
+ * gcc/config/rs6000/rs6000.c (output_call): correctly skip
+ non-line-number notes.
+
+2004-12-16 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3921172
+ * dbxout.c (dbxout_finish): Switch to .text section before
+ emitting final SO STABS record.
+
+2004-12-15 Dale Johannesen <dalej@apple.com>
+
+ Radar 3619824
+ * config/rs6000/rs6000.c (optimization_options): Clear
+ flag_errno_math.
+ * doc/invoke.texi: Document that -fno-math-errno is the default.
+
+2004-12-15 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3918376
+ * config/rs6000/rs6000.c (altivec_ovl_resolve): When matching
+ 4-element vectors, allow V4SF in addition to V4SI modes.
+ (rs6000_fold_builtin): If invalid arguments are provided, use
+ the return type for the first overload candidate, if available.
+
+2004-12-15 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3913672
+ * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): For
+ '-faltivec', pass in '-pim-altivec' instead of '-maltivec
+ -maltivec-pim'.
+ * config/rs6000/rs6000.c (rs6000_altivec_switch): New.
+ (rs6000_override_options): Handle '-m(no)altivec' explicitly
+ (rather than via TARGET_SWITCHES); for '-maltivec' and
+ '-mcpu=xxx' (where xxx supports AltiVec), clear the
+ flag_disable_opts_for_faltivec flag, move handling of
+ '-m(no-)pim-altivec' (formerly '-m(no-)altivec-pim')
+ before handling of -maltivec and -mcpu, and have it
+ set MASK_ALTIVEC and flag_disable_opts_for_faltivec.
+ * config/rs6000/rs6000.h (TARGET_SWITCHES): Move
+ '-m(no-)altivec' to TARGET_OPTIONS.
+ (TARGET_OPTIONS): Rename '-m(no-)altivec-pim' to
+ '-m(no-)pim-altivec'; add in '-m(no-)altivec'.
+ (rs6000_altivec_switch): New forward declaration.
+ * doc/invoke.texi: Rename '-m(no-)altivec-pim' to
+ '-m(no-)pim-altivec'; move description of disabled
+ optimizations from '-faltivec' to '-mpim-altivec'.
+
+2004-12-14 Stuart Hastings <stuart@apple.com>
+
+ Radar 3910248
+ * gcc/config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): ignore
+ -mlongcall when -m64 in use.
+
+2004-12-14 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3889727
+ brought in fix for PR target/18641 from FSF
+ below.
+
+2004-12-11 David Edelsohn <edelsohn@gnu.org>
+ Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/18641
+ * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
+ constants into all register classes intersecting with FLOAT_REGS
+ via memory.
+ * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
+ * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
+ choosing register preferences.
+ (movdi_internal64): Same.
+
+2004-12-13 Mike Stump <mrs@apple.com>
+
+ Radar 3865314
+ * c-common.c (convert_and_check): Add support for -Wshorten-64-to-32.
+ * c.opt (Wshorten-64-to-32): Likewise.
+ * doc/invoke.texi (Warning Options): Likewise.
+ * Makefile.in (c-common.o): Added dependancy for options.h.
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ Radar 3572046 (related)
+ * tree-ssa-forwprop.c (cast_conversion_assignment_p): New.
+ (replace_use_in_cond_expr): New.
+ (all_uses_are_replacable): New.
+ (eliminate_unnecessary_casts): New.
+ (tree_ssa_forward_propagate_single_use_var): Eliminate unnecessary
+ casts.
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ Radar 3572046 (last patch)
+ * config/rs6000/rs6000.c (rs6000_emit_vector_select): Adjust
+ vector select insn parameters.
+
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ Radar 3893659
+ * gcc.c (main): Do not break out of loop when error is reported while
+ processing one source file.
+
+2004-12-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3640156, 3877958
+ * config/rs6000/altivec.h: Skip contents of file
+ #ifdef __APPLE_ALTIVEC__, and issue a warning.
+ * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Do not
+ 'include altivec.h' upon seeing '-faltivec'; instead, specify
+ '-maltivec-pim'.
+ * config/rs6000/rs6000-c.c: Include options.h.
+ (rs6000_cpu_cpp_builtins): Define __APPLE_ALTIVEC__ and 'vec_step'
+ macro only if '-maltivec-pim' has been specified.
+ * config/rs6000/rs6000-protos.h (rs6000_fold_builtin): New prototype.
+ * config/rs6000/rs6000.c (altivec_cov_rt_12, altivec_cov_rt_2p,
+ altivec_cov_rt_1d, altivec_ovl_resolve, altivec_convert_args,
+ rs6000_fold_builtin): New functions.
+ (rs6000_altivec_inline_etc, rs6000_altivec_pim,
+ rs6000_altivec_pim_switch): New variables.
+ (rs6000_override_options): Handle '-m(no-)altivec-pim'.
+ (vector_builtin_fns): Decorate with GTY(()) voodoo; do not reserve
+ extra space for AltiVec PIM built-ins (since they won't be stored
+ there.)
+ (TARGET_FOLD_BUILTIN): Point at rs6000_fold_builtin().
+ (enum pim_flags, struct altivec_pim_info): New data types.
+ (altivec_pim_table): New global variable.
+ (def_pim_builtin): New macro.
+ (altivec_init_builtins): If '-maltivec-pim' was specified, define
+ AltiVec PIM operations and predicates as built-ins.
+ (rs6000_handle_altivec_attribute): Add handling for 'element__'
+ argument, which returns the element type of the vector type passed in.
+ * config/rs6000/rs6000.h (enum rs6000_builtins): Append a new range,
+ ALTIVEC_PIM__FIRST... ALTIVEC_PIM__LAST, representing built-in codes
+ for AltiVec PIM operations and predicates.
+ (TARGET_OPTIONS): Add '-m(no-)altivec-pim' option.
+ (rs6000_altivec_inline_etc, rs6000_altivec_pim,
+ rs6000_altivec_pim_switch): Forward-declare.
+ * config/rs6000/t-rs6000 (rs6000-c.o): Depend on options.h.
+ * doc/invoke.texi: Update '-faltivec' description; add description
+ for '-maltivec-pim'.
+
+2004-12-08 Mike Stump <mrs@apple.com>
+
+ Radar 3679243
+ * varasm.c (assemble_variable): Don't use .zerofill for weak
+ symbols as it isn't supported in the assembler. Also, key off
+ !DECL_COMMON directly instead of flag_no_common so that C++ works.
+
+2004-12-08 Devang Patel <dpatel@apple.com>
+
+ Radar 3903799
+ * config/darwin.h (ASM_SPEC): Supply -force_cpusubtype_ALL.
+
+2004-12-07 Dale Johannesen <dalej@apple.com>
+
+ Radar 3888787
+ * doc/invoke.texi (-msoft-float): Rewrite to reflect reality.
+
+2004-12-07 Mike Stump <mrs@apple.com>
+
+ Radar 3603833, 3896176, 3518821.
+ * c-common.c (cw_asm_operands_arg): New.
+ (print_cw_asm_operand): Add support for figuring out if the
+ argument must be a register or a memory reference.
+ (cw_asm_get_register_var): Likewise.
+ (cw_op_constraint): Likewise.
+ (cw_op_comp): Likewise.
+ (cw_constraint_for): Likewise.
+ (cw_process_arg): Likewise.
+ (cw_asm_stmt): Likewise.
+ (print_cw_asm_operand): Likewise.
+ (cw_asm_get_register_var): Likewise.
+ (cw_memory_clobber): Add support for figuring out if the
+ instruction needs a memory clobber.
+ (cw_asm_stmt): Likewise.
+ (print_cw_asm_operand): Add support for static duration variables.
+
+ (cw_get_identifier): New.
+ (cw_ha16, cw_hi16, cw_lo16): New.
+ (get_cw_asm_label): Add support for ha16(x), hi16(x) and lo16(x).
+ * c-common.h (cw_get_identifier): New.
+ * c-parse.in (cw_identifier): Add support for '+', '-' and '.' in
+ C CW opcodes to allow for a less tightly coupled lexer.
+ (single_cw_asm_stmt): Likewise.
+ (cw_asm_operand): Add support for ha16(x)(r).
+
+ * doc/extend.texi (Asm Blocks and Functions): Document memory
+ clobbers and instructions that take a memory operand.
+
+2004-12-06 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3893215
+ Following FSF mainline patch fixes it.
+
+2004-11-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/17742
+ * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
+ MINUS_EXPR correctly.
+
+2004-12-03 Dale Johannesen <dalej@apple.com>
+
+ Radar 3905019
+ * opts.c (common_handle_option): Fix from mainline.
+
+2004-12-03 Stuart Hastings <stuart@apple.com>
+
+ Radar 3855246
+ * gcc/config/rs6000/rs6000.c (init_cumulative_args): Remove APPLE LOCAL.
+ * gcc/config/rs6000/rs6000.h (target_flags): Remove APPLE LOCAL.
+ (TARGET_OPTIONS): Add -mlong-branch as a synonym for -mlongcall.
+
+2004-12-03 Caroline Tice <ctice@apple.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ Radar 3469752 (Adding loops-to-memset optimization)
+ * Makefile.in (OBJS-common): Add tree-ssa-loo-memset.o to list
+ (tree-ssa-loop-memset.o): Add rule for making this.
+ * bitmap.h (bitmap_empty_p): New macro.
+ * common.opt (ftree-loop-memset): Add new flag for optimization.
+ * tree-flow.h (tree_ssa_memset): Add function declaration.
+ * tree-optimize.c (init_tree_optimization_passes): Add loops-to-memset
+ pass.
+ * tree-pass.h (pass_memset): Add extern declaration for loops-to-memset
+ pass.
+ * tree-ssa-loop.c (tree_ssa_loop_memset, gate_tree_ssa_loop_memset): New
+ functions.
+ (pass_memset): Define new pass.
+ * tree-ssa-loop-memset.c: New file.
+ * tree-vectorizer.c (vect_is_simple_iv_evolution): Remove static
+ forward declaration; make the function globally visible.
+ (vect_get_loop_niters): Likewise.
+ (vect_analyze_pointer_ref_access): Likewise.
+ * tree-vectorizer.h (vect_is_simple_iv_evolution): Add external function
+ declaration.
+ (vect_get_loop_niters): Likewise.
+ (vect_analyze_pointer_ref_access): Likewise.
+
+2004-12-02 Devang Patel <dpatel@apple.com>
+
+ Radar 3855723 and 3886718
+
+ Backport from Mainline
+ 2004-12-02 Devang Patel <dpatel@apple.com>
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
+ * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
+ * config/i386/darwin.h (CC1_SPEC): Same.
+
+2004-12-02 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3893215 - part 1
+ * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
+ Added missing check for unknown evolution_of_loop.
+ (from FSF mainline).
+
+2004-11-30 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3893125
+ * loop.c (loop_giv_reduce_benefit): Remove APPLE LOCAL
+ patch which caused regression in galaxy(VMX) of skidmarks.
+
+2004-11-24 Devang Patel <dpatel@apple.com>
+
+ * gcc.h: APPLE LOCAL marker cleanup.
+
+2004-11-24 Devang Patel <dpatel@apple.com>
+
+ Radar 3876218
+ * gcc.c (process_command): Supply -v to linker.
+
+2004-11-23 Stan Shebs <shebs@apple.com>
+
+ * config.gcc (powerpc-*-darwin*): Remove bringup conditional.
+ * mklibgcc.in: Don't try to make dylibs from static/kext
+ libgcc.
+ * config/t-slibgcc-darwin: Don't use SHLIB_MULTILIB.
+
+2004-11-23 Devang Patel <dpatel@apple.com>
+
+ Radar 3886137
+ * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
+ * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
+
+2004-11-22 Devang Patel <dpatel@apple.com>
+
+ Radar 3846092
+ * doc/invoke.text: Remove outdated docs for -fscalar-evolutions and
+ -fall-data-deps. Document not disabling of -fstrict-aliasing, when
+ auto vectorization is used, in Apple GCC compiler.
+ * opts.c (decode_options): Disable -fstrict-aliasing only if -ftree-vectorize
+ is not used.
+
+2004-11-22 Dale Johannesen <dalej@apple.com>
+
+ * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Conditionalize
+ properly and comment.
+
+2004-11-21 Dale Johannesen <dalej@apple.com>
+
+ * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
+ (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Remove dup definition.
+
+2004-11-18 Dale Johannese <dalej@apple.com>
+
+ * lambda-code.c: cosmetic changes to match mainline.
+
+2004-11-17 Stuart Hastings <stuart@apple.com>
+
+ Radar 3837835
+ * cgraph.c: add "#include <function.h>".
+ (dump_cgraph_node) Add uses_vector bit to dump.
+ * cgraphunit.c:(altivec_infection, fndecl_uses_vector_p) New.
+ (record_call_1) Set uses_vector.
+ (cgraph_create_edges) Set uses_vector.
+ (cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
+ cgraph_decide_inlining_incrementally) Check for altivec_infection.
+ * gcc/testsuite/lib/scantree.exp (diff-tree-dumps):
+ Expand globbing of 't??' dumpfile names to include 'ipa'.
+
+2004-11-16 Devang Patel <dpatel@apple.com>
+
+ Merge stuff from autovect-branch.
+
+ 2004-11-12 Devang Patel <dpatel@apple.com>
+
+ * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
+
+ 2004-11-12 Devang Patel <dpatel@apple.com>
+
+ Backport from Mainline.
+
+ 2004-11-12 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
+ compute the first overlapping iterations.
+
+ 2004-11-12 Devang Patel <dpatel@apple.com>
+
+ * tree-data-ref.c (compute_subscript_distance): Make externally visible.
+ (build_class_dist_vector): Same.
+ * tree-data-ref.h (compute_subscript_distance): New external decl.
+ (build_class_dist_vector): Same.
+ * tree-vectorizer.c (loops_num): New variable.
+ (vect_build_dist_vector): New function.
+ (vect_analyze_data_ref_dependence): Use distance vector to determine
+ dependence.
+ (vect_analyze_data_ref_dependences): Remove local variable loop.
+ (vect_analyze_loop): Analyze operations before data dependences
+ (vectorize_loops): Remove local variable loops_num.
+
+ 2004-11-12 Devang Patel <dpatel@apple.com>
+
+ * tree-vectorizer.c (vectorizable_select): New function.
+ (vect_is_simple_cond): New function.
+ (vect_analyze_operations): Handle conditional expr.
+ * tree-vectorizer.h (stmt_vec_info_type): New member, select_vec_info_type.
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * tree-ssa.c (flush_pending_stmts): New.
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options):
+ Put -ftree-loop-linear into -fast.
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * lambda-code.c: Make identical to mainline as of
+ Nov 11, plus Dan Berlin's patch for swim.
+ * tree-loop-linear.c: Make identical to mainline.
+ * tree-data-ref.c: Make identical to mainline as
+ of Nov 11.
+ * tree-optimize.c (init_tree_optimization_passes):
+ Make order of passes same as mainline.
+ * tree-ssa-loop-ivopts.c (try_add_cand_for): Roll in
+ Zdenek's patch for important candidates.
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * fold-const.c (try_move_mult_to_index): New.
+ (fold): Use it (2 places).
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * tree.c (build_low_bits_mask): New.
+ tree.h: Declare it.
+ tree-ssa-loop-niter.c (number_of_iterations_cond): Use it.
+
+2004-11-16 Devang Patel <dpatel@apple.com>
+
+ Related to Radar 3837835.
+ * tree-cfg.c (ivu_gate, fndecl_uses_vector_p, identify_vector_use,
+ pass_identify_vector_use): Remove.
+ * tree-optimzie.c (init_tree_optimization_passes): Remove pass_identify_vector_use.
+ * tree-pass.h (pass_identify_vector_use): Remove extern decl.
+
+2004-11-16 Caroline Tice <ctice@apple.com>
+
+ * varasm.c (assemble_start_function): Don't print out section label
+ when aligning cold section.
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * dbxout.c (dbxout_source_file): Restore local patch
+ for hot/cold partitioning.
+
+2004-11-16 Dale Johannesen <dalej@apple.com>
+
+ * calls.c (expand_call): Fix ICE building crafty.
+
+2004-11-15 Dale Johannesen <dalej@apple.com>
+
+ * profile.c (compute_branch_probabilities): Roll in fix from mainline.
+
+2004-11-15 Dale Johannesen <dalej@apple.com>
+
+ * tree-flow.h (stmt_bsi): Remove.
+ (basic_block bsi_insert_on_edge_immediate): Remove duplicate decl.
+ (tree_block_label): Remove name in prototype.
+ (add_referenced_tmp_var): Ditto.
+ (TDFA_USE_OPS): Parenthesize.
+ (TDFA_USE_VOPS): Parenthesize.
+ (flush_pending_stmts): New.
+ (tree_duplicate_loop_to_exit): Remove.
+ (update_lv_condition): Ditto.
+ (estimate_loop_size): Ditto.
+ (insert_edge_copies): Remove name in prototype.
+ (expr_invariant_in_loop_p): Ditto.
+
+2004-11-15 Dale Johannesen <dalej@apple.com>
+
+ * c-decl.c (find_tree_with_code_1): Remove.
+ (find_tree_with_code): Ditto.
+ (find_pointer): Ditto.
+ (struct should_transpose_for_loops_t): Ditto.
+ (should_transpose_for_loops_1): Ditto.
+ (should_transpose_for_loops): Ditto.
+ (tree_contains_1): Ditto.
+ (tree_contains): Ditto.
+ (perform_loop_transpose): Ditto.
+ (loop_transpose): Ditto.
+ (finish_function): Don't call it.
+ * common.opt (-floop-transpose): Remove.
+ * flags.h (flag_loop_transpose): Remove.
+ * opts.c (OPT_floop_transpose): Remove.
+ * toplev.c (flag_loop_transpose): Remove.
+ * config/rs6000/rs6000.c (rs6000_override_options): Don't set it.
+ * doc/invoke.texi (-fast): Remove reference.
+ * testsuite/gcc.apple/loop-transpose-1.c: Remove.
+
+2004-11-15 Matt Austern <austern@apple.com>
+
+ Radar 3878983
+ * ginclude/tgmath.h (fdim) Use __TGMATH_REAL_2 macro.
+ (hypot) Likewise.
+ (remainder) Likewise.
+ (nexttoward) Use proper number of arguments for TGMATH_REAL_1_2.
+
+2004-11-11 Dale Johannesen <dalej@apple.com>
+
+ Radar 3875337
+ * tree-cfg.c (cleanup_control_expr_graph): Remove redundant
+ local patch from LNO.
+ (thread_jumps_from_bb): Remove wrong local patch from LNO;
+ make identical to mainline.
+ (thread_jumps): Make identical to mainline.
+
+2004-11-11 Stuart Hastings <stuart@apple.com>
+
+ * i386.md (*movqi_1): Short-term fix for 3838108.
+
+2004-11-11 Stuart Hastings <stuart@apple.com>
+
+ * tree.c (build_vector): Proper initialization for 'list'
+
+2004-11-10 Fariborz Jahanian <fjahanian@apple.com>
+
+ * c-common.c (vector_constructor_from_expr): Remove replication
+ of missing initializer.
+ * tree.c (build_vector): Replicate missing initializer.
+ * cp/typeck.c (build_c_cast): Move building of vector constant
+ past checking for processing of template declaration.
+
+2004-11-08 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c: Improve local markers.
+ (process_command): Set __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+ rather than MAC_OS_X_VERSION_MIN_REQUIRED.
+
+2004-11-08 Devang Patel <dpatel@apple.com>
+
+ Radar 3846514
+ * tree-if-conv.c (clean_predicate_lists): Use loop header and latch
+ directly.
+
+2004-11-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3853429
+ * varasm.c (output_addressed_constants): For CONST_DECLs,
+ output the initializer if present.
+ * config/darwin.c (machopic_select_section): Ensure that
+ constant Objective-C strings and constant CFStrings get emitted
+ into correct sections.
+
+2004-11-05 Devang Patel <dpatel@apple.com>
+
+ Radar 3853509.
+ * cp/parser.c (cp_parser_objc_method_prototype_list): Handle #pragma.
+ (cp_parser_objc_class_interface): Get protocol qualified type.
+
+2004-11-05 Stuart Hastings <stuart@apple.com>
+
+ Radar 3848818
+ * gcc/cfgcleanup.c(merge_memattrs): copied from FSF mainline.
+
+2004-11-04 Dale Johannesen <dalej@apple.com>
+
+ * config/darwin.h (EXTRA_SECTION_FUNCTIONS):
+ Fix text_unlikely_section.
+
+2004-11-04 Dale Johannesen <dalej@apple.com>
+
+ Radar 3759876
+ * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Enable
+ indirect sibcalls.
+ * config/rs6000/rs6000.md (*sibcall_symbolic): Make them work.
+ (*sibcall_value_symbolic): Ditto.
+
+2004-11-04 Dale Johannesen <dalej@apple.com>
+
+ * opts.c (decode_options): Use mainline-style loop opts.
+
+2004-11-04 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.md (*save_fpregs_with_label_si):
+ Use any_parallel_operand to remove a warning.
+ * config/rs6000/darwin.md (*save_fpregs_with_label_di): Ditto.
+ (*save_vregs_di): Ditto.
+ (*restore_vregs_di): Ditto.
+ (*save_vregs_with_label_di): Ditto.
+
+2004-11-04 Devang Patel <dpatel@apple.com>
+
+ Partial 3837835 fix.
+ * function.h (struct function): New member, uses_vector.
+ * tree-cfg.c (ivu_gate, fndecl_uses_vector_p, identify_vector_use,
+ pass_identify_vector_use): New.
+ * tree-optimzie.c (init_tree_optimization_passes): Add pass_identify_vector_use.
+ * tree-pass.h (pass_identify_vector_use): New extern decl.
+
+2004-11-04 Devang Patel <dpatel@apple.com>
+
+ Back out 3837840 fix.
+ * c-opts.c (c_common_handle_option): Update APPLE LOCAL marker.
+ * flags.h (flag_inline_trees): Remove extern decl.
+ * toplev.c (process_optiosn): Do not disable inlining with -faltivec.
+
+2004-11-03 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3863563 (fix from mainline)
+ * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
+ (c_types_compatible_p): Move function definition...
+ * c-objc-common.c (c_types_compatible_p): ...here.
+ * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
+ c-lang.c.
+
+2004-11-02 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3857727
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Remove
+ setting of targetm.cast_expr_as_vector_init.
+ * config/rs6000/rs6000.c (rs6000_override_options): Set
+ targetm.cast_expr_as_vector_init.
+
+2004-11-02 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3846637
+ * config/rs6000/rs6000.md: Remove condition for
+ HONOR_SIGNED_ZEROS from fnmsub generation.
+
+2004-11-01 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 2810013 (fix from mainline)
+ * c-common.h (objc_lookup_ivar): Add second parameter to
+ prototype.
+ * c-typeck.c (build_external_ref): After looking up symbol,
+ pass it to objc_lookup_ivar() to decide whether it or the
+ ivar should be used, rather than deciding the issue locally.
+ * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
+ which is simply returned in the non-ObjC case.
+
+2004-10-29 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3848842
+ * cp/call.c (build_over_call): Don't change type of
+ the function pointer built by call to build_vfn_ref_using_vtable.
+ * testsuite/g++.dg/kext6.C: New test
+
+2004-10-27 Geoffrey Keating <geoffk@apple.com>
+
+ * c-common.c (handle_weak_import_attribute): Delete.
+ (c_common_attribute_table): Remove 'weak_import'.
+ * c-decl.c (start_function): Remove local change for weak_import.
+ * dbxout.c (dbxout_source_file): Remove local change for
+ hot/cold partitioning, sync with FSF GCC.
+ * dmp-tree.c (print_decl): Remove local change for weak_import.
+ * idebug.c: Remove local change for weak_import.
+ * rtl.h (struct rtx_def): Remove local change for weak_import.
+ (SYMBOL_REF_WEAK_IMPORT): Delete.
+ * tree.h (DECL_WEAK_IMPORT): Delete.
+ (IDENTIFIER_WEAK_IMPORT): Delete.
+ (struct tree_decl): Delete weak_import_flag.
+ (enum attribute_flags): Delete ATTR_FLAG_FUNCTION_DEF.
+ * varasm.c (merge_weak): Remove local change for weak_import.
+ * config/darwin.c (machopic_output_indirection): Remove local change
+ for weak_import.
+ (darwin_set_section_for_var_p): Do nothing if symbol is weak.
+ * config/rs6000/rs6000.c (find_weak_imports): Delete.
+ (rs6000_assemble_integer): Remove local change for weak_import.
+ (local_label_unique_number): Delete.
+ (macho_branch_islands): Remove local change for weak_import.
+
+2004-10-26 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3840704
+ * c-opts.c (c_common_handle_option): Rename flag_altivec to
+ flag_disable_opts_for_faltivec.
+ * c.opt (faltivec): Likewise.
+ * toplev.c (process_options): Likewise, and update comment.
+ * config/rs6000/rs6000.c (expand_block_clear): Handle
+ flag_disable_opts_for_faltivec.
+ (expand_block_move): Likewise.
+
+2004-10-26 Devang Patel <dpatel@apple.com>
+
+ Radar 3233789
+ * dbxout.c (dbxout_init): Remove APPLE LOCAL patch that suppresses
+ SO stab address.
+
+2004-10-26 Devang Patel <dpatel@apple.com>
+
+ Radar 3760592
+
+ Backport from mainline.
+ 2004-10-21 Dndrew Pinksi <pinskia@physics.uc.edu>
+ * c-opts.c (push_command_line_include): Use the current file
+ name instead of the main one.
+
+2004-10-26 Matt Austern <austern@apple.com>
+
+ * ginclude/tgmath.h (fabs): Fix typo (complex abs is cabs, not cfabs)
+
+2004-10-22 Fariborz Jahanian <fjahanian@apple.com>
+
+ * config/rs6000/darwin.md: Remove vecstore/vecload patterns
+ specific to 64-bit Darwin.
+
+2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
+ Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3845826 (includes PR objc/17923)
+ * tree.c (staticp): A CONST_DECL has static storage if either
+ TREE_STATIC or DECL_EXTERNAL is set.
+ * config/darwin.c (darwin_build_constant_cfstring): Build a global
+ CONST_DECL to hold each constructed CFString.
+ * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
+ have null names.
+
+2004-10-21 Fariborz Jahanian <fjahanian@apple.com>
+
+ * c-common.c (vector_constructor_from_expr): In building vector expressions,
+ fold no_expr of nanf into a cst_real expression tree.
+
+2004-10-21 Fariborz Jahanian <fjahanian@apple.com>
+
+ * function.c (assign_parms): Iterate over all non-vector args first,
+ then over vector args.
+
+2004-10-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3540965
+ * c-common.c (flag_objc_call_cxx_cdtors): New variable.
+ * c-common.h (flag_objc_call_cxx_cdtors): New forward declaration.
+ * c-opts.c (c_common_handle_option): Process '-fobjc-call-cxx-cdtors'
+ option.
+ * c.opt (fobjc-call-cxx-cdtors): New option.
+ * doc/invoke.texi (fobjc-call-cxx-cdtors): Document.
+
+2004-10-19 Devang Patel <dpatel@apple.com>
+
+ Radar 3837840
+ * c-opts.c (c_common_handle_option): Update APPLE LOCAL marker.
+ * c.opt (faltivec): Same.
+ * toplev.c (process_options): Same.
+ * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE):
+ Same.
+
+
+2004-10-19 Devang Patel <dpatel@apple.com>
+
+ Radar 3837840
+ * c-opts.c (c_common_handle_option): Handle OPT_faltivec.
+ * c.opt (faltivec): New option.
+ * toplev.c (process_options): Disable inlining when -faltivec
+ is used.
+ * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE):
+ Supply -faltivec to cc1* also.
+
+2004-10-19 Fariborz Jahanian <fjahanian@apple.com>
+
+ * c-common.c (cw_asm_stmt): Set correct constraint for
+ vector arguments.
+
+2004-10-18 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3832999 (fix from mainline)
+ * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
+
+2004-10-18 Devang Patel <dpatel@apple.com>
+
+ Radar 3753408
+ * Makefile.in (GTFILES): Remove APPLE LOCAL comments.
+ * target-def.h (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P,
+ TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_P,
+ TARGET_VECTOR_SELECT_FOR_P, TARGET_VECTOR_SELECT_STMT): Remove #defines.
+ (TARGET_VECT): Remove vector select and compare members.
+ * target.h (struct gcc_target): Remove vector select and
+ compare members.
+ * tree-dfa.c (dump_immediate_uses_for): Do not print block number.
+ * tree-gimple.c (is_gimple_stmt): Handle COND_EXPR properly.
+ * tree-ssa-operands.c (add_vdef): Remove.
+ (build_ssa_operands): Remove local patch to handle COND_EXPR inside
+ MODIFY_EXPR case.
+ (get_expr_operands): Same.
+ * tree.c (get_array_base): Remove.
+ * config/rs6000/rs6000.c (rs6000_vector_compare_p,
+ rs6000_vector_compare_for_p, rs6000_vector_compare_stmt,
+ rs6000_vector_select_p, rs6000_vector_select_for_p,
+ rs6000_vector_select_stmt, get_vector_compare_for,
+ get_vector_select_for): Remove.
+ (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P,
+ TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_FOR_P,
+ TARGET_VECTOR_SELECT_STMT): Remove #defines.
+
+2004-10-16 Dale Johannesen <dalej@apple.com>
+
+ * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table.
+
+2004-10-15 Dale Johannesen <dalej@apple.com>
+
+ * objcp/objcp-lang.c (tree_code_type): Fix merge omission.
+
+2004-10-15 Mike Stump FIXME
+
+ merge
+
+2004-10-15 Stuart Hastings <stuart@apple.com>
+
+ * gcc/simplify-rtx.c(simplify_relational_operation): copied from FSF mainline.
+
+2004-10-15 Stuart Hastings <stuart@apple.com>
+
+ * gcc/c-common.c(print_cw_asm_operand): proper casting.
+ * gcc/expr.c(expand_expr_addr_expr): delete problematic assertions.
+
+2004-10-14 Robert Bowdidge <bowdidge@apple.com>
+
+ * config/darwin-driver.c: Remove off-by-one error in QA_OVERIDE...
+ machinery.
+
+2004-10-15 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3719208
+ * stor-layout.c (update_alignment_for_field): Don't use
+ first-field alignment adjustment for union.
+
+2004-10-13 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3677258
+ * c-decl.c (struct lang_identifier): Move definition to c-tree.h.
+ * c-tree.h (struct lang_identifier): Moved here from c-decl.c;
+ add 'interface_value' field.
+ (C_SIZEOF_STRUCT_LANG_IDENTIFIER): Update to reflect increased size.
+
+2004-10-11 Caroline Tice <ctice@apple.com>
+
+ * passes.c (rest_of_compilation): Move hot/cold partitioning to
+ occur after scheduling (and SMS), but still before register
+ allocation.
+
+2004-10-10 Dale Johannesen <dalej@apple.com>
+
+ * alias.c (write_dependence_p): Refs to same FE object interfere.
+
+2004-09-29 Stan Shebs <shebs@apple.com>
+
+ * config/darwin.h (REAL_LIBGCC_SPEC): Add non-shared libgcc case for
+ use during 64-bit bringup.
+
+2004-09-27 Robert Bowdidge <bowdidge@apple.com>
+
+ * opts.c: Remove QA_OVERRIDE_GCC3_OPTIONS machinery.
+ * config/darwin-driver.c: Reimplement QA_OVERRIDE_GCC3_OPTIONS in
+ driver-driver.
+
+2004-09-27 Dale Johannesen <dalej@apple.com>
+
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
+ Roll in fix from mainline.
+
+2004-09-26 Caroline Tice <ctice@apple.com>
+ Dale Johannesen <dalej@apple.com>
+
+ * value-prof.c (insn_prefetch_values_to_profile):
+ Don't instrument clobbers.
+
+2004-09-26 Dale Johannesen <dalej@apple.com>
+
+ * gcc.c (default_compilers): Handle -fast, -fastcp same as -fast.
+ (process_command): Make -fastf, -fastcp imply -combine.
+ * tree-ssa-loop-ivopts.c (find_interesting_uses_stmt): Roll in
+ fix from mainline.
+ * print-rtl.c (print_rtx): Print REG_NOTES right (from mainline).
+
+2004-09-24 Dale Johannesen <dalej@apple.com>
+
+ Radar 3811274
+ PR 17625
+ * loop-doloop.c (doloop-modify): roll in fix from FSF.
+
+2004-09-23 Stan Shebs <shebs@apple.com>
+
+ * Makefile.in: Use --print-multi-lib to collect
+ compiled-in multilibs.
+ * config.gcc: Add in a Darwin 8.x makefile fragment.
+ * fixinc.in: Bandaid for a missing __ppc64__ in limits.h
+ * config/rs6000/t-darwin8: New file, adds -m64 multilib.
+
+2004-09-23 Devang Patel <dpatel@apple.com>
+
+ Radar 3765210.
+ * gcc.c (main): Handle -E when combine_flag is set.
+
+2004-09-22 Stan Shebs <shebs@apple.com>
+
+ * config/darwin.h (STARTFILE_SPEC): Don't link in crt2.o if -m64.
+
+2003-09-21 Matt Austern <austern@apple.com>
+
+ Radar 3807942, backported from FSF mainline
+ * config/darwin.c (darwin_make_decl_one_only)
+ Allow coalesced symbol to appear in static archive's table of contents
+
+2004-09-17 Devang Patel <dpatel@apple.com>
+
+ * gcc.c: Use .gch extension instead of .pch.
+
+2004-09-13 Dale Johannesen <dalej@apple.com>
+
+ Radar 3793575
+ * c-decl.c (start_decl): Fix from mainline (PR 17408).
+
+2004-09-13 Andrew Pinski <apinski@apple.com>
+
+ Part of radar 3753405 and all of 3767339
+ * Makefile.in (c-parse.y): Remove ifcwasm as it is no longer used.
+ * objc/Makefile.in (objc/objc-parse.y): Likewise.
+ * c-parse.in: Remove all of @@ifcwasm. Remove all of the MERGE FIXME
+ comments as they are fixed.
+ (cw_asm_expr_no_commas, cw_asm_unary_expr, cw_asm_primary,
+ cw_asm_operand): Change type to be exprtype.
+ (cw_asm_compstmt_nostart): Remove type.
+ (single_cw_asm_stmt): For cw_asm_operand use .value for the third
+ argument of cw_asm_entry.
+ (cw_asm_compstmt_start): Remove increment of compstmt_count.
+ Call c_begin_compound_stmt always and pass true.
+ (cw_asm_compstmt_nostart): Just set cw_asm_block to zero.
+ (cw_asm_compstmt): Call c_end_compound_stmt.
+ (cw_nonnull_asm_operands): use .value for the exprtype.
+ (cw_asm_operand): Set .value to cw_asm_build_register_offset
+ and .original_code to ERROR_MARK.
+ (stmt_nocomp): For cw_asm_compstmt and cw_asm_stmt, call
+ c_finish_expr_stmt.
+ (cw_asm_expr_no_commas): Remove extraneous curly braces.
+ Update return exprtype instead of just a tree.
+ (cw_asm_unary_expr): Likewise.
+ (cw_asm_primary): Likewise.
+ * c-typeck.c (cw_asm_c_build_component_ref): Change build2 to build3 and
+ add NULL as the last argument for COMPONENT_REF.
+
+2004-09-10 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/power4.md: Increase store latency (mainline).
+
+2004-09-08 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/darwin-worldsave.asm: Remove, no longer used.
+
+2004-09-07 Caroline Tice <ctice@apple.com>
+
+ * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
+ EDGE_CROSSING, to flags test case.
+
+2004-08-31 Devang Patel <dpatel@apple.com>
+
+ * config/darwin-driver.c (get_arch_name): Replace abort() with
+ fatal("message").
+ (get_driver_name): Same.
+
+2004-08-30 Fariborz Jahanian <fjahanian@apple.com>
+
+ * c-common.c (vector_constructor_from_expr): Adapt to new representation
+ of comma-expression in c.
+
+2004-08-29 Andrew Pinski <apinski@apple.com>
+
+ * loop-doloop.c (add_test): Take the mainline change.
+ * loop-invariant.c (find_exits, find_invariants_bb): Take the
+ mainline change, use CALL_P.
+ * tree-alias-common.c (HAVE_BANSHEE): Take the mainline change.
+ * tree-into-ssa.c (compute_global_livein): Take the mainline
+ reformatting.
+ * tree-pretty-print.c: Remove include for tree-chrec.h as it is
+ there later on.
+ * tree-ssa-loop-ivopts.c (zero_p): Make static.
+ * tree-ssa-loop-niter.c (zero_p): Add back, take the mainline change.
+ (number_of_iterations_exit): Take the mainline change for getting
+ a boolean false.
+ (MAX_ITERATIONS_TO_TRACK): Take the mainline change as it is now
+ configurable.
+ (struct nb_iter_bound): Take the mainline comment changes.
+ * tree-ssa-loop-prefetch.c (zero_p): Add to minimize changes
+ from the mainline.
+ * tree-ssa-loop.c (gate_loop): Take the mainline changes as we
+ want the gate so we can turn them on and off easier.
+ * tree.h (struct tree_phi_node, rewritten): Take the mainline change
+ as there are no other integer fields in this struct.
+ (build_vector_type): Remove duplicated prototype.
+ (zero_p): Remove prototype.
+
+ * timevar.c (ppc_intrinsic_time): Correct definition and
+ make static. Cast __mftbu to unsigned.
+
+2004-08-28 Andrew Pinski <apinski@apple.com>
+
+ * config.in: Regenerate.
+
+2004-08-23 Richard Henderson <rth@redhat.com>
+ Andrew Pinski <apinski@apple.com>
+
+ * gimplify.c (gimplify_array_ref_to_plus): Delete.
+ (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
+ for ARRAY_REF.
+
+ * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
+ ARRAY_REF also to get to the STRING_CST.
+
+2004-08-24 Stan Shebs <shebs@apple.com>
+
+ * Makefile.in (libgcc.mk): Add ppc64 and ppc64_static libraries.
+ (libgcc.a): Move libraries so they will be found in testing.
+ * config/darwin.h (REAL_LIBGCC_SPEC): Add -m64 cases.
+ * config/darwin7.h (LIB_SPEC): Add -m64 -static case.
+
+ * calls.c (emit_call_1): Use Pmode instead of SImode in Apple local
+ indirect call code.
+ (expand_call): Likewise.
+
+2004-08-23 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Add 64-bit
+ cases to optimizations for FP save and picbase setup.
+ (rs6000_emit_epilogue): Adjust the LR save offset to be correct
+ for 64-bit frames.
+
+2004-08-22 Stan Shebs <shebs@apple.com>
+
+ * config/darwin-driver.c (arch_config): Add ppc64.
+ (add_arch_options): Similarly.
+
+2004-08-22 Andrew Pinski <apinski@apple.com>
+
+ PR c/15262
+ * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
+ expression is not constant.
+ (c_finish_return): Do not go through INDIRECT_REF when looking
+ for the inner expression of an ADDR_EXPR for warning about.
+
+ PR tree-opt/17138
+ * tree-ssa-loop-ivopts.c (peel_address): Handle REALPART_EXPR
+ and IMAGPART_EXPR.
+
+2004-08-20 Stan Shebs <shebs@apple.com>
+
+ * config/rs6000/darwin.h (DARWIN_ARCH_LD_SPEC): Pass -arch ppc64
+ to linker if -m64.
+ (DARWIN_ARCH_ASM_SPEC): Similarly.
+
+2004-08-20 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix from mainline.
+
+2004-08-19 Dale Johannesen <dalej@apple.com>
+
+ * c-decl.c (implicitly_declare): Reduce error to warning when
+ disable_typechecking_for_spec_flag is on.
+
+2004-08-18 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3753413
+ * config/darwin.c (darwin_build_constant_cfstring): Strip NOP_EXPRs
+ and dereference string literal argument; mark the ADDR_EXPR of
+ each constant CFString TREE_CONSTANT to squash initializer warnings.
+
+2004-08-18 Devang Patel <dpatel@apple.com>
+
+ * config/darwin-driver.c (verbose_flag): New.
+ (do_lipo): Interpret -v.
+ (main): Set verbose_flag.
+
+2004-08-18 Dale Johannesen <dalej@apple.com>
+
+ * tree-cfg.c (tree_block_ends_with_call_p): Fix comments.
+ (tree_block_ends_with_condjump_p): Ditto.
+
+2004-08-18 Matthew Sachs <msachs@apple.com>
+
+ * Merge from mainline.
+
+2004-08-17 Devang Patel <dpatel@apple.com>
+
+ * config/darwin-driver.c (main): Do not handle -x separately.
+
+2004-08-16 Robert Bowdidge <bowdidge@apple.com>
+
+ * Add -mdynamic-no-pic to Darwin-specific options
+
+2004-08-16 Caroline Tice <ctice@apple.com>
+
+ Add hot/cold partitioning update that was accepted in FSF Mainline.
+ * varasm.c (text_section): Remove alignment statement.
+ (assemble_start_function): Remove APPLE LOCAL markers from code
+ added to FSF mainline; Add code to properly align cold section at
+ start of function.
+
+2004-08-16 Devang Patel <dpatel@apple.com>
+
+ Merge from mainlne.
+ 2004-08-16 Devang Patel <dpatel@apple.com>
+
+ * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
+ * print-tree.c (print_node): Print DECL_PRESERVE_P.
+ * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
+ (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
+ * target.h (struct gcc_target): New member, mark_decl_preserved.
+ * hooks.c (hook_void_charptr): Rename to ...
+ (hook_void_constcharptr): ... new name.
+ * hooks.h (hook_void_charptr): Rename to ..
+ (hook_void_constcharptr): ... new name.
+ * tree.h (DECL_PRESERVE_P): New #define.
+ (struct tree_decl): New member, preserve_flag.
+ * varasm.c (assemble_start_function): Mark decl preserved.
+ (assemble_variable): Same.
+ * darwin.c (darwin_mark_decl_preserved): New function.
+ * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
+ * darwin-protos.h (darwin_mark_decl_preserved): New decl.
+ * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
+
+2004-08-13 Matt Austern <austern@apple.com>
+
+ Radar 2872232
+ * ginclude/tgmath.h: New file.
+ * Makefile.in: Add tgmath.h to list of installed headers.
+
+2004-08-13 Devang Patel <dpatel@apple.com>
+
+ Radar 3729261. Reviewed by Dale.
+ * dbxout.c (get_lang_number): New.
+ (dbxout_init): Include lang number in N_SO stab.
+ * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
+ N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
+
+2004-08-13 Devang Patel <dpatel@apple.com>
+
+ Merge from mainline. Radar 3739309.
+ 2004-08-11 Devang Patel <dpatel@apple.com>
+
+ * dbxout.c (dbxout_begin_prologue): New function.
+ (dbx_debug_hooks): Use new begin prologue hook.
+ (dbxout_function_end): Emit N_ENSYM.
+ * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
+
+2004-08-13 Devang Patel <dpatel@apple.com>
+
+ Merge from mainline. Radar 3739302.
+ 2004-08-10 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
+ and -no_dead_strip_inits_and_terms.
+ (LINK_SPEC): Same.
+ * doc/invoke.text (Darwin Options): Document -dead_strip and
+ -no_dead_strip_inits_and_terms.
+
+2004-08-12 Stan Shebs <shebs@apple.com>
+
+ Basic support for 64-bit Darwin.
+ * config/darwin.c (macho_indirect_data_reference): Add DImode case.
+ (machopic_legitimize_pic_address): Similarly, plus use Pmode
+ instead of SImode.
+ * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
+ (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
+ (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
+ (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
+ (PROCESSOR_DEFAULT64): Define.
+ * config/rs6000/darwin.md: New file, patterns specific to 64-bit
+ Darwin.
+ * config/rs6000/rs6000.md: Include darwin.md.
+ (builtin_setjmp_receiver): Add DImode case.
+ * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
+ Darwin.
+ (TARGET_ASM_ALIGNED_DI_OP): Ditto.
+ (rs6000_emit_move): Add DImode case to Darwin bits.
+ (machopic_output_stub): Use .quad if 64-bit.
+ * invoke.texi: Document -m32 and -m64.
+
+2004-08-12 Dale Johannesen <dalej@apple.com>
+
+ * c-decl.c (diagnose_mismatched_decls): Improve
+ -fdisable-typechecking-for-spec.
+
+2004-08-12 Dale Johannesen <dalej@apple.com>
+
+ * gcc.c (default_compilers): Handle -fast same as -combine.
+ (process_command): Make -fast imply -combine.
+ * tree-scalar-evolution.c (number_of_iterations_in_loop):
+ Don't compute iteration count for multiple-exit loops.
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Replace from mainline.
+
+2004-08-10 Devang Patel <dpatel@apple.com>
+
+ Remove Symbol Separation.
+ Radar 3555440. Reviewed by Mike Stump.
+ * c-common.c (cb_restore_write_symbols, cb_clear_write_symbols,
+ cb_start_symbol_repository, cb_end_symbol_repository,
+ cb_is_builtin_identifier). Remove.
+ (debug.h): Do not include.
+ * c-common.h (dbg_dir): Remove.
+ (dbg_ss_init, c_common_write_context, cb_clear_write_sybols,
+ cb_restor_write_symbols, cb_start_symbol_repository, c_valid_cinfo,
+ cb_end_symbol_repository, cb_is_builtin_identifier): Remove extern
+ decls.
+ * c-lex.c (init_c_lex): Do not set up symbol separation call backs.
+ (c_common_write_context): Remove.
+ * c-objc-common.c (c_objc_common_finish_file): Do not write context.
+ * c-opts.c (dbg_dir): Remove.
+ (c_common_handle_option): Remove symbol separation option handling.
+ (c_common_parse_file): Do not initialize symbol repository.
+ * c.opt (Winvalid-sr, fsave-repository=): Remove.
+ * dbxout.c (dbxout_restore_write_symbols, dbxout_clear_write_symbols,
+ dbxout_start_symbol_repository, dbxout_end_symbol_repository) Remove.
+ (dbx_debug_h): Remove symbol separation hoooks.
+ (xcoff_debug): Same.
+ * debug.c (do_nothing_): Remove symbol separation hooks.
+ * debug.h (gcc_debug_hooks): Same.
+ * dwarf2out.c (dwarf2_debug): Same.
+ * flags.h (orig_write_symbols, flag_grepository): Same.
+ * gcc.c (pch): Remove fsave-repository support.
+ (cc1_options): Same.
+ (asm_options): Same.
+ (default_compilers): Same.
+ (option_map): Same.
+ (dbg_ss): Remove.
+ (static_specs): Remove dbg_ss.
+ * opts.c (orig_write_symbols, flag_grepository): Remove.
+ (set_debug_level): Remove symbol separation support.
+ * doc/invoke.texi: Remove symbol separation documentation.
+
+2004-08-09 Geoffrey Keating <geoffk@apple.com>
+
+ * ginclude/stdarg.h: Remove APPLE LOCAL change.
+ * ginclude/varargs.h: Likewise.
+
+2004-08-08 Dale Johannesen <dalej@apple.com>
+
+ * c-common.c (c_common_get_alias_set): Fixes from mainline.
+ * toplev.c: Ditto.
+ * tree.h: Ditto.
+ * coverage.c (tree_coverage_counter_ref): Ditto.
+ * tree-cfg.c (tree_block_ends_will_call_p): Ditto.
+ (tree_block_ends_with_condjump_p): Ditto.
+
+2004-08-08 Andrew Pinski <apinski@apple.com>
+
+ * c-objc-common.c (c_objc_common_init): Remove APPLE LOCAL for setting -gused
+ by default as it is handled in CC1_SPECs now.
+ * opts.c (set_debug_level): Remove the handling of -gused and -gfull as they
+ are already handled in CC1_SPECs.
+ * config/rs6000/darwin.h (CC1_SPEC): Change the APPLE LOCAL tag to be what is
+ really local now.
+
+2004-08-06 Dale Johannesen <dalej@apple.com>
+
+ * c-typeck.c (tagged_types_tu_compatible_p): Fix from mainline.
+
+2004-08-06 Andrew Pinski <apinski@apple.com>
+
+ * config/darwin.h: Fix misplaced #endif which came in via the merge.
+
+2004-08-04 Fariborz Jahanian <fjahanian@apple.com>
+
+ c-common.c (vector_constructor_from_expr): Treat all constant
+ vector expression tree as a constant tree.
+
+2004-08-03 Stan Shebs <shebs@apple.com>
+
+ Support for CodeWarrior-style assembly language blocks and
+ functions. Radar 3368707.
+
+ * c.opt (-fasm-blocks): New option.
+ * c-common.h (enum cw_asm_states): New enum, state values.
+ * c-tree.h: Declare some functions.
+ * c-common.c (flag_cw_asm_blocks): New flag.
+ (cw_asm_states, cw_asm_in_decl, cw_asm_block, cw_asm_at_bol,
+ cw_asm_in_operands, cw_asm_labelno, cw_asm_buffer,
+ cw_asm_operands, cw_asm_labels, cw_asm_labels_uniq): New globals.
+ (cw_asm_default_function_conversion, cw_asm_stmt,
+ cw_asm_field_offset, cw_asm_field_offset, print_cw_asm_operand,
+ cw_asm_get_register_var, cw_asm_reg_name, cw_asm_label,
+ get_atsign_identifier, clear_cw_asm_labels, get_cw_asm_label,
+ cw_asm_build_register_offset, cw_asm_entry): New functions.
+ c-decl.c: (grokdeclarator): Recognize asm keyword, set flag
+ on function decl if seen.
+ (start_function): Change asm state to expect local decls.
+ (lookup_struct_or_union_tag): New function.
+ c-lex.c (cw_asm_saved_token, c_lex_depth): New globals.
+ (c_lex_with_flags): Add state machine to return BOL and EOL
+ tokens at appropriate moments, return CPP_ATSIGN as its own
+ token if in asm block.
+ c-opts.c (c_common_handle_option): Recognize -fasm-blocks.
+ c-parse.in: Add rules for parsing CW asm blocks.
+ (CW_ASM_KEYWORD, CW_ASM_BOL, CW_ASM_EOL): New tokens.
+ (cw_asm_expr_no_commas, cw_asm_unary_expr, cw_asm_primary,
+ cw_asm_operands, cw_nonnull_asm_operands, cw_asm_operand, cw_asm_stmt,
+ single_cw_asm_stmt, cw_asm_compstmt, cw_asm_compstmt_start,
+ cw_asm_compstmt_nostart): New nonterminals.
+ (lineno_decl): Flag no longer in decls part.
+ (scspec): Add CW_ASM_KEYWORD.
+ (stmt): Add cw_asm_compstmt and cw_asm_stmt alternatives.
+ (yylexname): Detect asm functions and return CW_ASM_KEYWORD.
+ (_yylex): Return '@' as token if CW asm, return BOL/EOL.
+ c-typeck.c (build_external_ref): Handle asm register names
+ and labels specially.
+ (cw_asm_typename_or_reserved, cw_asm_c_build_component_ref):
+ New functions.
+
+ * function.h (struct function): New fields cw_asm_function,
+ cw_asm_noreturn, cw_asm_frame_size.
+ * tree.h (DECL_CW_ASM_FUNCTION, DECL_CW_ASM_NORETURN,
+ DECL_CW_ASM_FRAME_SIZE): New macros.
+ (struct tree_decl): New fields cw_asm_function_flag,
+ cw_asm_noreturn_flag, cw_asm_frame_size.
+ * config/darwin.h (CW_ASM_SPECIAL_LABEL): Define.
+ * config/darwin-protos.h (darwin_cw_asm_special_label): Declare.
+ * config/darwin.c (darwin_cw_asm_special_label): New function.
+ * rs6000/rs6000-protos.h (rs6000_cw_asm_register_name): Declare.
+ * rs6000/rs6000.c (rs6000_cw_asm_register_name): New function.
+ * rs6000/rs6000.h (CW_ASM_REGISTER_NAME): Define.
+ * scan-decls.c (flag_cw_asm_blocks, etc): Dummy definitions.
+
+ * doc/extend.texi, doc/invoke.texi: Document.
+
+2004-08-01 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
+ if trying to *store* to a non-offsettable address.
+ * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
+ a nonoffsettable address.
+ (movdi_internal32): Don't move GPRs to a nonoffsettable address.
+ Clean up.
+ (movti_string): Don't move GPRs to a nonoffsettable address.
+ (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
+
+2004-08-01 Devang Patel <dpatel@apple.com>
+
+ Re-implement -fwritable-strings support.
+ Radar : 3699482
+
+ * c-common.c (fix_string_type): Check flag_writable_strings.
+ (fix_string_type): Likewise.
+ * c-opts.c (set_std_c89): Initialize flag_writable_strings.
+ (set_std_c99): Likewise.
+ * common.opt (fwritable-strings): Add.
+ * flags.h: Add the external declaration of
+ flag_writable_strings.
+ * opts.c (common_handle_option) <OPT_fwritable_strings>:
+ Add.
+ * toplev.c (flag_writable_strings): Add.
+ (f_options): Add an entry for writable-strings.
+ * varasm.c (const_hash_1) <STRING_CST>: Check
+ flag_writable_strings.
+ (compare_constant) <STRING_CST>: Likewise.
+ (build_constant_desc): Likewise.
+ * config/darwin.c (machopic_select_section): Likewise.
+ * doc/invoke.texi (-fwritable-strings): Add.
+ (-fno-const-strings): Document -fwritable-strings.
+ * doc/trouble.texi: Document -fwritable-strings.
+
+2004-08-01 Geoffrey Keating <geoffk@apple.com>
+
+ * c-common.c (warn_long_double): Remove.
+ (warn_about_long_double): Remove.
+ * c-common.h (warn_long_double): Remove.
+ (warn_about_long_double): Remove.
+ * c-decl.c (grokdeclarator): Don't call warn_long_double.
+ * c-opts.c (c_common_handle_option): Remove case for OPT_Wlong_double.
+ * doc/invoke.texi: Don't document -Wlong-double.
+
+2004-07-30 Geoffrey Keating <geoffk@apple.com>
+ Fariborz Jahanian <fjahanian@apple.com>
+
+ * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
+ non-offsettable addresses even for DImode.
+ (rs6000_split_multireg_move): Cope with non-offsettable addresses
+ being moved into multiple GPRs.
+
+ * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
+ to 64.
+ (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
+ * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
+ to 128.
+ * config/rs6000/darwin-ldouble.c (isless): New macro.
+ (inf): New macro.
+ (nonfinite): New macro.
+ (FPKINF): Delete.
+ (_xlqadd): Completely rewrite.
+ (_xlqmul): Correct overflow handling.
+ (_xlqdiv): Correct overflow handling.
+ * config/rs6000/darwin-ldouble-format: New file.
+
+2004-07-30 Matt Austern <austern@apple.com>
+
+ * config/darwin-c.c (darwin_pragma_call_on_load): Deprecate.
+ (darwin_pragma_call_on_unload): Likewise.
+
+2004-07-15 Devang Patel <dpatel@apple.com>
+
+ * tree-if-conv.c: Add brief description at the beginning.
+ (is_appropriate_for_if_conv): Rename to ..
+ (if_convertable_loop_p): ... new name.
+ (bb_with_exit_edge): Rename to ..
+ (bb_with_exit_edge_p): ... new name.
+ (make_cond_modify_expr): Update comment before function body.
+ (replace_phi_with_cond_modify_expr): Same.
+ (tree_if_convert_stmt): Same. Use new fn name, bb_with_exit_edge_p.
+ (if_convertable_loop_p): New function name. Remove some dead code.
+ (collapse_blocks): Update comment before function body. Format code.
+ Use bb_with_exit_edge_p.
+ (tree_if_conversion): Move this function body at the end of file.
+ (handle_siblint_pattern): Update comment before function body.
+ (fold_sibling_stmts): Same. Update dump info.
+
+2004-07-14 Devang Patel <dpatel@apple.com>
+
+ * target.h (gcc_target): Additional parameter for
+ support_vector_compare_for_p.
+ * tree-if-conv.c (handle_sibling_pattern): New.
+ (fold_sibling_stmts): New.
+ (make_cond_modify_expr): Dump debugging info.
+ (tree_if_convert_stmt): Same.
+ (is_appropriate_for_if_conv): Remove filters that eliminated
+ loops becase of memory tags and difficult dominance relation.
+ (collapse_blocks): Handle memory tags.
+ (tree_if_conversion): Optimize sibling statements.
+ * tree-vectorizer.c (vect_init_vector): Additional parameter.
+ (vect_get_vec_def_for_operand): Supply vectype to vect_init_vector().
+ (vect_init_vecotr): Use input parameter vectype.
+ (vect_transform_compare): Fix type in dump info.
+ (vect_transform_select): Handle ARRAY_REF as scalar dest. Handle
+ NOP_EXPR as an operand.
+ (vect_is_supportable_compare): Use operand's type to decide
+ second vector type for support_vector_compare_for_p().
+ (vect_is_supportable_select): Fix typo. Allow SSA_NAME as 2nd
+ operand.
+ (exist_non_indexing_operands_for_use_p): Handle conditional modify
+ expr.
+ config/rs6000/rs6000.c (rs6000_vector_compare_for_p): New parameter.
+ (get_vector_compare_for): New parameter. Use it to find appropriate
+ builtin.
+
+2004-06-26 Fariborz Jahanian <fjahanian@apple.com>
+
+ * gcc.c: Don't use -fpredictive-compilation when
+ -fpreprocessed appears on command line.
+
+2004-07-01 Devang Patel <dpatel@apple.com>
+
+ * tree-if-conv.c (mark_vdefs_vuses_for_rename): New function.
+ (make_ifcvt_temp_variable): Mark vdefs and vuses for renaming.
+
+2004-07-01 Devang Patel <dpatel@apple.com>
+
+ Radar 3236762
+ * config/darwin-driver.c (do_lipo): Do not supply -arch <arch_name>
+ to lipo.
+
+2004-06-29 Andrew Pinski <apinski@apple.com>
+
+ * c-decl.c (perform_loop_transpose): Save chain of right_before_inner_loop
+ and set to NULL. Restore the chain before rejecting the loop.
+
+2004-06-29 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_create_data_ref) INDIRECT_REF check moved to
+ analysis. Redundant checks removed.
+ (vect_analyze_data_refs): Make sure we have a mem_tag.
+ (vect_transform_loop): Make sure that we have a preheader bb.
+ (vect_init_vector): Insert on preheader edge instead of using bsi.
+ (vect_finish_stmt_generation_in_preheader): Now that a preheader bb is
+ created before vectorizing stmts, we do not expect a new bb to be
+ created (thereofore, abort instead of add_bb_to_loop).
+ * config/rs6000/rs6000.c (rs6000_build_vmul_uch): Likewise.
+ (rs6000_build_vector_init): Likewise. Also replace mark_call_clobbered
+ with direct setting of DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL.
+
+2004-06-28 Devang Patel <dpatel@apple.com>
+
+ * Makefile.in (tree-ssa-loop-manip.o): Depend on tree-scalar-evolution.h
+ * tree-if-conv.c (collapse_blocks): Use release_phi_node instead of
+ remove_phie_node.
+ * tree-ssaname.c (make_ssa_name): Re-enable free_ssanames.
+ (release_ssa_name): Same.
+ * tree-scalar-evolution.c (scev_reset): Check current_loops and
+ scalar_evolution_info.
+ * tree-ssa-loop-manip.c (tree-scalar-evolution.h): Include.
+ (tree_duplicate_loop_to_header_edge): Call scev_reset().
+
+2004-06-28 Devang Patel <dpatel@apple.com>
+
+ * tree-if-conv.c (make_ifcvt_temp_variable): Fix formatting.
+
+2004-06-28 Devang Patel <dpatel@apple.com>
+
+ * tree-if-conv.c (make_ifcvt_temp_variable): Add new parameter for
+ original stmt. Update new statement's vuse approritatly based on
+ original stmt.
+ (make_cond_modify_expr): Supply current statement as additional
+ parameter to make_ifcvt_temp_variable call.
+ (tree_if_convert_stmt): Same.
+ (replace_phi_with_cond_modify_expr): Update vuse and vdefs.
+ (is_appropriate_for_if_conv): Lift, first phi node needs to be constant
+ node, restriction.
+ * tree-ssa-operands.c (add_vdef): New function.
+ * tree-ssa-operands.h (add_vdef): Same.
+
+2004-06-25 Mike Stump <mrs@apple.com>
+
+ * objcp/Make-lang.in (objcp/objcp-parse.y): Update to use
+ move-if-change from top directory.
+
+2004-06-25 Stuart Hastings <stuart@apple.com>
+
+ Radar 3680191
+ * gcc/tree-nested.c: Cast STACK_BOUNDARY for portability.
+ * gcc/config/i386/i386.c (output_pic_addr_const): Stubify optimized symbols.
+ * gcc/target-def.h: (TARGET_BECT_BUILD_VECTOR_INIT) Initialize correctly.
+
+2004-06-25 Dale Johannesen <dalej@apple.com>
+
+ * objc/Make-lang.in: use $(srcdir)/../move-if-change.
+
+2004-06-25 Dale Johannesen <dalej@apple.com>
+
+ * Makefile.in: replace $(SHELL) ${srcdir}/mkinstalldirs
+ with $(mkinstalldirs) throughout.
+
+2004-06-25 Stuart Hastings <stuart@apple.com
+
+ Radar 3690727
+ * gcc/config/rs6000/rs6000.md: Add missing APPLE LOCAL markers.
+ * gcc/config/t-darwin.h: Ditto.
+ * gcc/ChangeLog.apple-ppc: Minor formatting cleanup.
+
+2004-06-24 Dale Johannesen <dalej@apple.com>
+
+ Radar #: 3696823, 3673318, 3672998
+ Roll in changes from mainline:
+ * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
+ global, rename rs6000_legitimate_offset_address_p.
+ (rs6000_legitimate_address_p): Adjust calls to it.
+ (lmw_operation): Ditto.
+ (stmw_operation): Ditto.
+ * config/rs6000/rs6000-protos.h: Declare it.
+ * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
+ instead of offsettable_memref_p.
+ * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
+ [reg+reg] mode for TFmode memory accesses.
+ (rs6000_eliminate_indexed_memrefs): New.
+ (rs6000_emit_move): Call preceding for TImode and TFmode.
+
+2004-06-24 Andrew Pinski <apinski@apple.com>
+
+ Radar #: 3699721
+ * config/darwin.c (machopic_indirect_data_reference): Copy
+ the SYMBOL_REF_DECL from the original RTX for the new
+ non-lazy pointer RTX.
+
+2004-06-24 Ayal Zaks <zaks@il.ibm.com>
+
+ * target-def.h (TARGET_VECT_BUILD_BUILTIN_LVSR): New macro.
+ * target.h (build_builtin_lvsr): New function.
+ * tree-vectorizer.c (vect_create_index_for_array_ref): Add option
+ to only calculate init_val without creating the iv.
+ (vect_create_data_ref): Deal with unknown alignment; allow creating
+ data refs for initial access only.
+ (vect_transform_store): Call vect_create_data_ref accordingly.
+ (vect_finish_stmt_generation_in_preheader): New function.
+ (vect_finish_stmt_generation): Need to optionally bump bsi again.
+ (vect_transform_load): Replace call to lvsl by a call to lvsr(16-a)
+ in preheader. Move load of msq out to preheader. Removed TREE_INVARIANT.
+ (vect_analyze_data_refs_alignment): Allow unknown aligned loads.
+ * rs6000.c (rs6000_build_builtin_lvsr): New function.
+ (rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads):
+ Check if TARGET_ALTIVEC.
+ (get_vector_init_fns_for_type): Initialize lve_fn, splt_fn vars.
+
+2004-06-22 Andrew Pinski <apinski@apple.com>
+
+ Radar #: 3661615, 3623788
+ * c-decl.c (perform_loop_transpose): Do not
+ change TREE_CHAIN (right_before_inner_loop)
+ until after we know we are going to do the
+ transformation.
+
+ * c-decl.c (perform_loop_transpose): Fix formatting and cleanup.
+
+2004-06-22 Andrew Pinski <apinski@apple.com>
+
+ Radar #: 3701874
+ * c-decl.c (push_file_scope): Return early if we already
+ have a file scope.
+
+2004-06-22 Devang Patel <dpatel@apple.com>
+
+ PR 16105
+ * tree-vectorizer.c (vect_analyze_operations): Type of MODIFY_EXPR is
+ not reliable. Use LHS's type.
+
+2004-06-21 Dorit Naishlos <DORIT@il.ibm.com>
+
+ * tree.def (MULT_UCH_EXPR): New tree code.
+ * tree-vectorizer.h (stmt_vec_info): New fields part_of_pattern,
+ related_stmt, v.vect_target_hook_for_pattern, and v.vectorized_stmt.
+ (STMT_VINFO_IN_PATTERN_P): New macro.
+ (STMT_VINFO_VEC_HOOK): New macro.
+ (STMT_VINFO_RELATED_STMT): New macro.
+ * tree-vectorizer.c (vect_pattern_recog): New function.
+ (vect_recog_mul_uch_to_uch): New function.
+ (vect_recog_mul_uch_to_uch1): New function.
+ (new_stmt_vec_info): Initialize new fields in stmt_vec_info.
+ (vect_transform_op): Call target hook recorded in STMT_VINFO_VEC_HOOK.
+ (vect_is_supportable_op): Use new field STMT_VINFO_VEC_HOOK to record
+ target support for the "mul_uch" pattern.
+ (vect_mark_relevant): Don't mark stmts involved in a pattern as
+ relevant.
+ (vect_mark_stmts_to_be_vectorized): Likewise.
+ (vect_create_data_ref): Fix alias-sets bug.
+ (vect_get_vec_def_for_operand): Call new hook support_vector_init_p.
+ * target.h (support_vmul_uch_p): New entry for target hook.
+ (build_vmul_uch): New entry for target hook.
+ (support_vector_init_p): New entry for target hook.
+ (build_vector_init): New entry for target hook.
+ * target-def.h (TARGET_VECT_SUPPORT_VMUL_UCH_P): New target hook.
+ (TARGET_VECT_BUILD_VMUL_UCH): New target hook.
+ (TARGET_VECT_SUPPORT_VECTOR_INIT_P): New target hook.
+ (TARGET_VECT_BUILD_VECTOR_INIT): New target hook.
+ * config/rs6000/rs6000.c (rs6000_support_vmul_uch_p): New function.
+ (rs6000_build_vmul_uch) New function.
+ (rs6000_support_vector_init_p) New function.
+ (get_vector_init_fns_for_type) New function.
+ (rs6000_build_vector_init) New function.
+
+
+2004-06-17 Jon Ziegler <jonz@apple.com>
+
+ Radar 3691917
+ * Revert version string in gcc/version.c to as of apple-gcc-1762.
+
+2004-06-16 Jon Ziegler <jonz@apple.com>
+ Radar 3619941
+ * Revert to apple-gcc-1762 plus Dorit/Devang's 2004-06-15 patch.
+ Radar 3691917
+ * Update version string in gcc/version.c
+
+2004-06-16 Dale Johannesen <dalej@apple.com>
+ Radar 3661015/PR 15993
+ * tree-ssa-dom.c (thread_across_edge): fix from FSF.
+
+2004-06-15 Dorit Naishlos <DORIT@il.ibm.com>
+
+ Radar 3619941
+ * tree-data-ref.c (init_data_ref): New function.
+ * tree-data-ref.h (init_data_ref): New function.
+ * tree-vectorizer.c (vect_get_array_first_index): Return index instead
+ of success status, and support pointers.
+ (vect_create_index_for_array_ref): Remove ARRAY_REF restriction, and
+ change call to vect_get_array_first_index.
+ (vect_create_data_ref): Handle INDIRECT_REFs.
+ (vect_is_supportable_store): Handle INDIRECT_REFs.
+ (vect_is_supportable_load): Handle INDIRECT_REFs.
+ (vect_analyze_data_ref_dependence): Handle INDIRECT_REFs.
+ (vect_analyze_data_ref_dependences): Remove usage of variable 'ok'.
+ (get_array_base): Removed (not used anymore).
+ (vect_force_dr_alignment_p): Use DR_BASE_NAME instead of
+ get_array_base.
+ (vect_align_data_ref): Likewise.
+ (vect_transform_store): Remove ARRAY_REF restriction.
+ (vect_transform_load): Remove ARRAY_REF restriction.
+ (vect_compute_data_ref_alignment): Support pointers.
+ (vect_analyze_data_refs): Support pointers.
+ (vect_debug_stats): New Function.
+ (vect_debug_details): New Function.
+ (vect_transform_loop): Use vect_debug_stats and vec_debug_details.
+ (vect_analyze_loop): Use vect_debug_details.
+ (vect_analyze_scalar_cycles): Use vect_debug_stats.
+ (vect_analyze_data_ref_dependence): Likewse.
+ (vect_analyze_data_refs_alignment): Likewise.
+ (vect_analyze_data_ref_accesses): Likewise.
+ (vect_analyze_data_refs): Likewise.
+ (vect_analyze_loop_form): Likewise.
+ (vect_gen_if_guard): Formatting fixes (avoid 80 column overflow).
+ (vect_update_initial_conditions_of_duplicatd_loop): Likewise.
+ (vect_transform_loop): Likewise.
+ (vect_analyze_loop_form): Likewise.
+
+2004-06-14 Caroline Tice <ctice@apple.com>
+
+ Radar 3690727 (partial)
+ * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove.
+ * passes.c (rest_of_compilation): Add missing APPLE LOCAL.
+ * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove definition.
+ (SECTION_FORMAT_STRING): Likewise.
+ * config/rs6000/sysv4.h (NORMAL_TEXT_SECTION_NAME): Likewise.
+ (SECTION_FORMAT_STRING): Likewise.
+ * doc/tm.texi (NORMAL_TEXT_SECTION_STRING): Remove documentation.
+ (SECTION_FORMAT_STRING): Likewise.
+
+2004-06-14 Dale Johannesen <dalej@apple.com>
+
+ Radar 3661661
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1): fix from FSF.
+
+2004-06-14 Dale Johannesen <dalej@apple.com>
+
+ Radar 3690727 (partial)
+ * gimplify.c (copy_if_shared_r): Add missing APPLE LOCAL.
+ * config/rs6000/t-darwin: Ditto.
+
+2004-06-14 Fariborz Jahanian <fjahanian@apple.com>
+
+ * version.c: Remove word tree-ssa from version string.
+
+2004-06-12 Devang Patel <dpatel@apple.com>
+
+ * Makefile.in (OBJS-common): Add tree-if-conv.o.
+ (tree-if-conv.o): New rule.
+ * target-def.h (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P,
+ TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_P,
+ TARGET_VECTOR_SELECT_FOR_P, TARGET_VECTOR_SELECT_STMT): New.
+ (TARGET_INITIALIZER): New members.
+ * target.h (tree.h): Include.
+ (struct gcc_target.vect): New members - support_vector_compare_p,
+ support_vector_compare_for_p, vector_compare_stmt, support_vector_select_p,
+ support_vector_select_for_p, vector_select_stmt.
+ * tree-dfa.c (dump_immediate_uses_for): Print block index.
+ * tree-flow.h (enum move_pos): Move from ...
+ * tree-ssa-loop-im.c (enum move_pos): here.
+ * tree-if-conv.c: New file.
+ * tree-simple.c (is_gimple_stmt): Make COND_EXPR valid gimple.
+ * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Check t.
+ * tree-ssa-live.c (debug_var_map): New function.
+ * tree-ssa-live.h (debug_var_map): New function declaration.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variable): Add
+ flow_loop_scan() call.
+ * tree-ssa-operands (get_stmt_operands): Handle MODIFY_EXPR when COND_EXPR
+ is RHS.
+ (get_expr_operands): Same.
+ * tree-ssanames.c (make_ssa_name): Do not use free_ssanames.
+ (release_ssa_name): Same.
+ * tree-vectorizer.c (vect_transform_select): New function.
+ (vect_transform_compare): New function
+ (vect_is_supportable_operation): New function.
+ (vect_is_supportable_compare): New function.
+ (vect_is_supportable_select): New function.
+ (get_array_base): Move into tree.c.
+ (vect_loop_version): New function.
+ (second_loop_vers_available): New variable.
+ (default_vector_compare_p): New function.
+ (default_vector_compare_for_p): New function.
+ (default_vector_comapre_stmt): New function.
+ (default_vector_select_p): New function.
+ (default_vector_select_for_p): New function.
+ (default_vector_select_stmt): New function.
+ (vect_transform_stmt): Handle select_vec_info_type and
+ compare_vec_info_type.
+ (vect_is_supportable_op): Use vect_is_supportable_operation.
+ (vect_analyze_operations): Check select and compare support.
+ (vect_analyze_data_refs_alignment): Print data reference in dump file.
+ (vect_analyze_loop_form): Use if-conversion and update loop->num_nodes
+ check.
+ (vectorize_loops): Use vect_loop_version. Handle second loop version.
+ * tree-vectorizer.h (struct _stmt_vec_info): New members -
+ select_vec_info_type and compare_vec_info_type.
+ (default_vector_compare_p): New function decl.
+ (default_vector_compare_for_p): New function decl.
+ (default_vector_comapre_stmt): New function decl.
+ (default_vector_select_p): New function decl.
+ (default_vector_select_for_p): New function decl.
+ (default_vector_select_stmt): New function decl.
+ * tree.c (get_array_base): Move from tree-vectorizer to here.
+ * tree.h (get_array_base): New function decl.
+ * config/rs6000 (vector_builtin_fns): New.
+ (rs6000_vector_compare_p): New function.
+ (rs6000_vector_compare_for_p): New function.
+ (rs6000_vector_compare_stmt): New function.
+ (rs6000_vector_select_p): New function.
+ (rs6000_vector_select_for_p): New function.
+ (rs6000_vector_select_stmt): New function.
+ (TARGET_VECTOR_COMPARE_P, TARGET_VECTOR_COMPARE_FOR_P,
+ TARGET_VECTOR_COMPARE_STMT, TARGET_VECTOR_SELECT_P,
+ TARGET_VECTOR_SELECT_FOR_P, TARGET_VECTOR_SELECT_STMT): Define.
+ (def_builtin): Record builtin fn node in vector_builtin_fns.
+ * rs6000.h (enum rs6000_builtins): New entry - RS6000_BUILTIN_MAX.
+
+2004-06-12 Devang Patel <dpatel@apple.com>
+
+ Radar 3681611
+ * gcc.c (do_spec_1): Disable local IMA patch that creats new temp. file for
+ each source file.
+
+2004-06-12 Dorit Naishlos <DORIT@il.ibm.com>
+ Olga Golovanevsky <OLGA@il.ibm.com>
+ Ayal Zaks <ZAKS@il.ibm.com>
+
+ * tree-vectorize.c (vect_build_symbl_bound, vect_gen_if_guard): New.
+ (vect_create_index_for_array_ref): Use integer_zer_node as init.
+ (vect_update_initial_conditions_of_duplicated_loop): Update phis of epilog
+ loop header and new loop exit destination.
+ (vect_transform_loop): Remove code that now belongs to
+ vect_generate_tmps_on_preheader () function. Use
+ vect_gen_if_guard function twice.
+
+2004-06-11 Dale Johannesen <dalej.@apple.com>
+
+ * tree-ssa-loop-niter.c (number-of_iterations_cond): Apply Zdenek's
+ patch from 5/28 lno-branch.
+
+2004-06-10 Dale Johannesen <dalej@apple.com>
+ * tree-scalar-evolution.c (scev_finalize): Remove wild load.
+
+2004-06-10 Fariborz Jahanian <fjahanian@apple.com>
+
+ * version.c: Change version date to 20040529 (date of
+ last merge).
+
+2004-06-09 Dale Johannesen <dalej@apple.com>
+
+ * df.c (df_def_record_1): Handle DImode parallel.
+
+2004-06-09 Fariborz Jahanian <fjahanian@apple.com>
+
+ * gengtype.c (get_output_file_with_visibility): Removed dead code.
+ * gimplify.c (copy_if_shared_r): brought in patch to PR15884 done
+ by RTH to fix perlbmk crash.
+
+2004-06-08 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/t-darwin: Remove duplicate fpsave.
+
+2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
+
+ approved Dale Johannesen <dalej@apple.com>
+ Radar 3683113, PR 15881.
+ * fold.const.c (fold_convert): Handle ptr-to-member.
+ * tree-scalar-evolution.c (count_ev_in_wider_type): Use
+ fold_convert not convert.
+ (compute_overall_effect_of_inner_loop): Ditto.
+ (chrec_is_positive): Ditto.
+ (add_to_evolution_1): Ditto.
+ (add_to_evolution): Ditto.
+ (first_iteration_non_satisfying_1): Ditto.
+ (follow_ssa_edge_in_rhs): Ditto.
+ (interpret_rhs_modify_expr): Ditto.
+ (number_of_iterations_in_loop): Ditto.
+
+2004-06-08 Robert Bowdidge <bowdidge@apple.com>
+
+ * config/darwin.c (machopic_indirect_call_target): Added patch from
+ PR/15720 (function marked inline which is called directly isn't
+ emitted).
+
+2004-06-08 Fariborz Jahanian <fjahanian@apple.com>
+
+ * varasm.c (assemble_variable): Resotored zerofill size optimization.
+ * config/rs6000/rs6000.c (rs6000_override_options): Place
+ rs6000_init_hard_regno_mode_ok after setting of -fast flags.
+
+2004-06-08 Caroline Tice <ctice@apple.com>
+
+ * common.opt (fcreate-profile): Add new command line option.
+ (fuse-profile): Likewise.
+ * gcc.c (LINK_COMMAND_SPEC): Add fcreate-profile to list of flags
+ that causes "-lgcov" to be included in link command.
+ * opts.c (commmon_handle_option): Add cases for fcreate-profile and
+ fuse-profile; make them fall into the cases for fprofile-generate
+ and fprofile-use, respectively.
+ * config/darwin.h (LINK_COMMABND_SPEC): Add fcreate-profile to list
+ of flags that causes "-lgcov" to be included in link command.
+ * doc/invoke.texi (fcreate-profile, fuse-profile): Add documentation
+ for the new command line options. Indicates they are obsolete and
+ should not be used.
+
+2004-06-07 Fariborz Jahanian <fjahanian@apple.com>
+
+ * gcc.c: Removed setting of -combine option with -fast.
+
+2004-06-07 Fariborz Jahanian <fjahanian@apple.com>
+
+ * decl.c (maybe_commonize_var): Removed APPLE LOCAL coalescing stuff.
+ * method.c (use_thunk): ditto.
+ * rtti.c (tinfo_base_init): ditto.
+ * common.opt: ditto.
+
+2004-06-07 Dale Johannesen <dalej@apple.com>
+
+ * cse.c (cse_insn): Make sure there's a ZERO_EXTEND before looking
+ under it. (176.gcc spec regression)
+
+2004-06-07 Ayal Zaks <zaks@il.ibm.com>
+
+ Radar 3619935 - Part 1
+ * target-def.h (TARGET_VECT, TARGET_VECT_BUILD_BUILTIN_LVSL,
+ TARGET_VECT_SUPPORT_MISALIGNED_LOADS,
+ TARGET_VECT_PERMUTE_MISALIGNED_LOADS,
+ TARGET_VECT_BUILD_BUILTIN_VPERM): New macros for
+ TARGET_INITIALIZER.
+ * target.h (struct vect): New substruct of gcc_target.
+ * tree-vectorizer.c (vect_create_index_for_array_ref): Return also the
+ initial value of the iv.
+ (vect_create_data_ref): Return also the created pointer; don't call
+ vect_align_data_ref.
+ (vect_finish_stmt_generation): New.
+ (vect_transform_load): Handle misaligned loads too.
+ (vect_analyze_data_refs_alignment): Allow loads to be misaligned.
+ * config/rs6000/rs6000.c (TARGET_VECT_BUILD_BUILTIN_LVSL,
+ TARGET_VECT_SUPPORT_MISALIGNED_LOADS,
+ TARGET_VECT_PERMUTE_MISALIGNED_LOADS,
+ TARGET_VECT_BUILD_BUILTIN_VPERM): Redefine.
+ (rs6000_support_misaligned_vloads, rs6000_permute_misaligned_vloads,
+ rs6000_build_builtin_lvsl, rs6000_build_builtin_vperm): New.
+
+2004-06-07 Olga Golovanevsky <OLGA@il.ibm.com>
+
+ * tree-vectorizer.c (vect_update_initial_conditions_of_duplicated_loop):
+ Handle general form of "init" and "step" of access function.
+ * tree-ssa-loop-manip.c (tree_duplicate_loop_to_exit_cfg):
+ The exit from loop is taken from bb previous to latch instead
+ of latch itself.
+
+2004-06-07 Devang Patel <dpatel@apple.com>
+
+ Radar 3673334
+ * config/darwin-driver.c (add_arch): New.
+ (strip_path_and_suffix): Use strcpy.
+ (main): Use add_arch().
+
+2004-06-07 Devang Patel <dpatel@apple.com>
+
+ Radar 3668208 and 3668213
+ * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
+ * config/i386/darwin.h (CC1_SPEC): Same.
+
+2004-06-07 Caroline Tice <ctice@apple.com>
+
+ * doc/invoke.texi (-fast): Add documentation for "-fast" option.
+
+2004-05-29 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Enable
+ hot/cold partitioning with -fast -profile-use.
+
+2004-05-28 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3665286
+ * cpplex.c (_cpp_peek_token): Fix bug in computing context size;
+ increment/decrement 'keep_tokens' state instead of saving/restoring it.
+ * cpplib.h (cpp_callbacks): Change 'expand_macro_p' hook to
+ 'macro_to_expand', returning a cpp_hashnode pointer.
+ * cppmacro.c (cpp_get_token): Call 'macro_to_expand' hook instead of
+ 'expand_macro_p'.
+ (warn_of_redefinition): Do not warn if redefining a conditional macro.
+ * config/rs6000/rs6000-c.c (altivec_categorize_keyword): New function.
+ (rs6000_expand_macro_p): Renamed to 'rs6000_macro_to_expand'; rewritten
+ to call altivec_categorize_keyword() and return one of the three
+ canonical macros ('__vector', '__pixel' and '__bool') as needed.
+ (rs6000_cpu_cpp_builtins): Mark all AltiVec keyword variants as
+ conditional macros, some expanding to themselves (e.g., '#define
+ bool bool') by default.
+ * config/rs6000/rs6000-protos.h (rs6000_expand_macro_p): Renamed to
+ 'rs6000_macro_to_expand'.
+
+2004-05-28 Fariborz Jahanian <fjahanian@apple.com>
+
+ * explow.c (copy_to_mode_reg): For PARALLEL patterns, copy
+ to reg via a temprary.
+
+2004-05-27 Dale Johannesen <dalej@apple.com>
+
+ * loop-invariant.c (check_maybe_invariant): Disallow CALL hoists.
+ * varasm.c (assemble_start_function): Construct unlikely_section_label
+ unconditionally.
+
+2004-05-26 Caroline Tice <ctice@apple.com>
+
+ * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
+ Initialize variable 'has_hot_blocks'.
+ (fix_up_fall_thru_edges): Initialize variable'cond_jump'.
+ * cfgcleanup.c (try_forward_edges): Add code/tests to make sure the
+ optimization is not attempted across section boundaries.
+ * cfglayout.c (fixup_reorder_chain): Correct comments.
+ * cfgrtl.c (try_redirect_by_replacing_jump): Fix test to make sure
+ optimization is not attempted across section boundaries.
+ * final.c (final_scan_instruction): Replace calls to text_section with
+ calls to function_section.
+ * predict.c (probably_never_executed_bb_p): Change criterion to be
+ basic block count equals zero.
+ * varasm.c (unlikely_text_section_name): New global variable.
+ (text_section): Remove call to assemble_align.
+ (unlikely_text_section): Modify to build & use unlikely_text_section_name
+ rather than directly using UNLIKELY_EXECUTED_TEXT_SECTION NAME; remove
+ call to assemble_align; move code to free/initialize
+ unlikely_section_label to assemble_start_function.
+ (in_unlikely_text_section): Modify to use unlikely_text_section_name.
+ (named_section): Add code to initialize unlikely_text_section_name if
+ appropriate.
+ (function_section): Reorder clauses in if statement to make sure
+ functions containing only cold blocks end up in the correct section.
+ (assemble_start_function): Add code to correctly initialize/free
+ unlikely_text_section_name. Also make sure the cold label is printed
+ out at the start of cold functions.
+ (default_section_type_flags_1): Modify to use unlikely_text_section_name.
+ * config/rs6000/darwin.h (HAS_LONG_UNCOND_BRANCH): Add darwin-specific
+ definition, based on the TARGET_LONG_BRANCH (-mlongcall) flag.
+
+2004-05-25 Dale Johannesen <dalej@apple.com>
+
+ * tree-ssa-loop-niter.c: Add. New in lno branch. Oops.
+
+2004-05-25 Mike Stump <mrs@apple.com>
+
+ Radar 3665096
+ * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Change default
+ for long double type size to be 128.
+
+2004-05-25 Dale Johannesen <dalej@apple.com>
+
+ Merge from LNO branch as of 05-18.
+ --The following files are identical to lno branch:
+ df.c: Merge.
+ lambda-code.c: Merge.
+ loop-iv.c: Merge.
+ tree-chrec.c: Merge.
+ tree-chrec.h: Merge.
+ tree-data-ref.c: Merge.
+ tree-data-ref.h: Merge.
+ tree-elim-check.c: Merge.
+ tree-fold-const.h: Merge.
+ tree-scalar-evolution.c: Merge.
+ tree-scalar-evolution.h: Merge.
+ tree-ssa-loop-ivcanon.c: Merge.
+ tree-ssa-loop-ivopts.c: Merge.
+ tree-vectorizer.c: Merge.
+ --These files were merged selectively, see lno branch ChangeLog.lno.
+ Makefile.in: Add tree-ssa-loop-niter.
+ cfgloop.c: Merge changes from Devang's 05-13 patch.
+ cfgloop.h: Ditto, also Zdenek's 04-30 patch.
+ expr.c: Merge changes from Zdenek's 05-13 patch.
+ tree-cfg.c: Ditto.
+ tree-flow.h: Ditto. Also from Zdenek's 04-30 patch.
+ loop-invariant.c: Merge. Add DF_EQUIV_NOTES.
+ rtl.h: Merge change from Zdenek's 05-09 patch.
+ stor-layout.c: Ditto.
+ tree.c: Merge change from Sebastian's 04-27 patch.
+ tree.h: Ditto. Also Zdenek's 05-13 patch. Add TYPE_UNSIGNED.
+ varasm.c: Merge change from Zdenek's 04-30 patch.
+ config/rs6000/rs6000.c: Ditto.
+ -- Other stuff:
+ fold-const.c: Remove unused variable.
+ config/rs6000/rs6000-c.c: Make #define of bool work.
+ config/rs6000/t-rs6000: Make #define of bool work. Remove
+ -Wno-error requirements.
+
+2004-05-25 Mike Stump <mrs@apple.com>
+
+ Radar 3667005
+ * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Move long
+ double size default from here...
+ * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): to here.
+
+2004-05-24 Devang Patel <dpatel@apple.com>
+
+ Radar 3665390
+ * config/darwin-driver.h (main): While reinserting output filename
+ do not forget -o.
+
+2004-05-24 Mike Stump <mrs@apple.com>
+
+ Radar 3589079
+ * config/darwin.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Change default
+ for long double type size to be 128.
+ * c-common.c: Change default for -Wwarn-long-double to off.
+ (warn_about_long_double): Change wording to account for new long
+ double size.
+ * doc/invoke.texi (-Wlong-double): Likewise.
+
+2004-05-22 Devang Patel <dpatel@apple.com>
+
+ Radar 3644687
+ * config/darwin-driver.c (main): Reinsert output filename
+ only if user supplied one.
+
+2004-05-22 Dale Johannesen <dalej@apple.com>
+
+ * simplify-rtx.c (simplify_unary_operation): Don't create NOT(SYM)
+ or (MINUS(CON SYM)).
+ * config/rs6000/rs6000.h (machine_function): Make substitute_pic_base_reg
+ unsigned.
+ * config/rs6000/rs6000.md: Compare it to INVALID_REGNUM not -1.
+ * config/rs6000/rs6000.c (throughout): Ditto.
+
+2004-05-21 Ziemowit Laski <zlaski@apple.com>
+
+ * opts.c (common_handle_option): Do not const-qualify a char buffer
+ that has sprintf() and free() called on it.
+
+2004-05-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3621323
+ * c-lex.c: Do not include target.h.
+ (C_LEX_BUFCAPACITY, C_LEX_OFFS_BOUND, c_lex_buf_beg, c_lex_buf_end,
+ c_lex_buf, c_lex_peek, c_lex_prepend): Remove.
+ (get_nonpadding_token): Get rid of int argument; adjust call sites
+ accordingly.
+ * cpplex.c (_cpp_peek_token): New function.
+ (_cpp_temp_token): Account for existence of lookaheads when allocating
+ token.
+ * cpplib.h (cpp_callbacks): Add new 'expand_macro_p' hook.
+ (NODE_CONDITIONAL): New flag for macro nodes.
+ (_cpp_peek_token, _cpp_backup_tokens_direct): New prototypes.
+ * cppmacro.c (cpp_get_token): For macros marked NODE_CONDITIONAL,
+ call the 'expand_macro_p' predicate to see if they should be
+ expanded.
+ (_cpp_backup_tokens_direct): New function, broken off from
+ _cpp_backup_tokens().
+ (_cpp_backup_tokens): Call _cpp_backup_tokens_direct().
+ * config/rs6000/rs6000-c.c (rs6000_expand_macro_p): Add cpp_reader
+ parameter; call _cpp_peek_token() instead of c_lex_peek().
+ (rs6000_cpu_cpp_builtins): Attach rs6000_expand_macro_p() to a
+ cpplib callback instead of a target hook.
+ * config/rs6000/rs6000-protos.h (rs6000_expand_macro_p): Add cpp_reader
+ parameter to prototype.
+ * hooks.c (hook_bool_constcpp_tokenp_false): Remove.
+ * hooks.h (hook_bool_constcpp_tokenp_false): Remove prototype.
+ * target-def.h (TARGET_EXPAND_MACRO_P): Remove.
+ * target.h (gcc_target): Remove 'expand_macro_p' target hook.
+
+2004-05-20 Devang Patel <dpatel@apple.com>
+
+ * config/darwin-driver.c (main): Prepand "-Wl," before
+ -final_output to make it linker option.
+
+2004-05-20 Fariborz Jahanian <fjahanian.apple.com>
+
+ * c-opts.c (c_common_post_options): Remove old declaration and
+ use of stdin_filename. Add new call to set_stdin_option.
+ * common.opt: Add fpredictive-compilation=n option.
+ * cppfiles.c (STAT_SIZE_RELIABLE macro): Change definition.
+ (pch_open_file): No pch stuff with stdin file.
+ (find_file_in_dir): When opening the main file, revert
+ to opening stdin instead, in predictive compilation mode.
+ (read_file_guts): Support for reading from stdin for predictive
+ compilation sizes are added. (read_file): Don't close stdin.
+ (read_from_stdin): New routine.
+ * cpphash.h: New field declaration 'is_main_file' added.
+ * cppinit.c (cpp_read_main_file): Set is_main_file to true,
+ and then to false in predictive compilation mode.
+ * cpplex.c (_cpp_get_fresh_line): Read more from stdin when
+ in predictive compilation mode.
+ * cpplib.c (set_stdin_option): New definition.
+ * cpplib.h: Declaration updates.
+ * flags.h: Declaration of predictive_compilation.
+ * opts.c (common_handle_option): Processing -fprdictive-compilation=n
+ options.
+ * toplev.c: Definition of predictive_compilation added.
+
+2004-05-14 Dale Johannesen <dalej@apple.com>
+
+ * Makefile.in: Remove local -Wno-error dependencies.
+
+2004-05-13 Caroline Tice <ctice@apple.com>
+
+ * c-common.c (builtin_function_disabled_p): Remove "static" from
+ function declaration and definition.
+ * c-common.h (builtin_function_disabled_p): Add extern function
+ definition.
+ * c-decl.c (merge_translation_unit_decls): Add code to test
+ function decls to see if they are builtin and the builtin is
+ supposed to be disabled before attempting to merge the decls.
+
+2004-05-12 Devang Patel <dpatel@apple.com>
+
+ * opts.c (common_handle_option): Handle OPT_arch.
+
+2004-05-12 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (darwin_builtins): Move to ...
+ * config/darwin.c (darwin_builtins); here.
+
+2004-05-12 Dale Johannesen <dalej@apple.com>
+
+ Radar 3509006
+
+ * config/rs6000/rs6000.c (rs6000_override_options):
+ Don't enable string insns with -Os.
+ * doc/invoke.texi: Document this behavior.
+ * testsuite/gcc.apple/string-insns.c: New.
+
+2004-05-12 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Restore an
+ optimization lost in merge.
+
+2004-05-11 Ziemowit Laski <zlaski@apple.com>
+
+ * gcc.c (process_command): Do not define __CONSTANT_CFSTRINGS__,
+ since config/darwin.h already does this.
+ (do_spec_1): Emit "-mconstant-cfstrings" instead of
+ "-fconstant-cfstrings".
+
+2004-05-11 Devang Patel <dpatel@apple.com>
+
+ * gcc.c (optiom_map): Remove -precomp-trustfile support.
+ * c-opts.c (c_common_handle_option): Remove -precomp-trustfile and
+ -header-mapfile support.
+ * common.opt: Same.
+ * c.opt: Remove -header-mapfile support.
+
+2004-05-11 Caroline Tice <ctice@apple.com>
+
+ * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): Add this note back
+ in; it seems to have vanished during a merge.
+
+2004-05-10 Ziemowit Laski <zlaski@apple.com>
+
+ * config/rs6000/altivec.h: Bring over from mainline.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+ __APPLE_ALTIVEC__ to indicate Apple syntax support.
+
+2004-05-10 Dale Johannesen <dalej@apple.com>
+ * config/darwin.c: ANSIfy syntax (eliminate warnings).
+ config/darwin-c.c: Ditto.
+ rs6000.c: Small cosmetic change in local code.
+
+2004-05-06 Caroline Tice <ctice@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Modify to
+ not turn on hot/cold partitioning in the presence of exception
+ handling.
+
+2004-05-06 Dale Johannesen <dalej@apple.com>
+
+ * Merge from lno branch as of 04-24. Files changed:
+ lambda-code.c
+ lambda.h
+ tree-chrec.c
+ tree-chrec.h
+ tree-data-ref.c
+ tree-elim-check.c
+ tree-flow.h
+ tree-loop-linear.c
+ tree-scalar-evolution.c
+ tree-ssa-loop-im.c
+ tree-ssa-loop-ivopts.c
+ tree-ssa-loop-manip.c
+ tree-ssa-loop.c
+ tree-vectorizer.c
+ tree-vectorizer.h
+
+2004-05-04 Caroline Tice <ctice@apple.com>
+
+ * config/rs6000/darwin.h (FP_SAVE_INLINE): Modify this to
+ always be 1 ("on") if the optimization level is -O3 or
+ higher.
+
+2004-04-30 Dale Johannesen <dalej@apple.com>
+
+ * cse.c (cse_insn): Don't add REG_EQUAL note for
+ (CONST (MINUS (LABEL_REF) (0))).
+
+2004-04-30 Caroline Tice <ctice@apple.com>
+
+ * varasm.c (unlikely_section_label): New global variable.
+ (unlikely_text_section): Change variable name from
+ 'unlikely_section_name' to 'unlikely_section_label', make it a global
+ variable, and move the code to generate its value to
+ assemble_start_function.
+ (assemble_start_function): Add code to generate *correct* value for
+ 'unlikely_section_label'. Now makes use of value from 'fnname'
+ parameter.
+
+2004-04-29 Devang Patel <dpatel@apple.com>
+
+ gcc/loop-iv.c : Merge from lno-branch as of 2004:04:19 00:00.
+ gcc/tree-pass.h : Merge from lno-branch as of 2004:04:19 00:00.
+ gcc/tree-ssa-alias.c : Merge from lno-branch as of 2004:04:19 00:00.
+ gcc/tree-ssa-phiopt.c : Merge from lno-branch as of 2004:04:19 00:00.
+
+2004-04-29 Devang Patel <dpatel@apple.com>
+
+ Merge lno-branch as of 2004:04:18 00:00 into
+ apple-ppc-branch.
+
+
+2004-04-28 Fariborz Jahanian <fjahanian@apple.com>
+
+ * function.c (assign_parms): Add 2nd iteration over vector args
+ if needed.
+ * calls.c (initialize_argument_information): Add new argument,
+ add 2nd iteration over vector arguments if needed.
+ * target-def.h (default_skip_vec_args, TARGET_SKIP_VEC_ARGS): New.
+ * target.h (skip_vec_args): Added to calls structure.
+ * targhooks.c (default_skip_vec_args): Default
+ definition.
+ * targhooks.h (default_skip_vec_args): Declaration.
+ * config/rs6000/rs6000.c (skip_vec_args): New definition.
+
+2004-04-28 Stuart Hastings <stuart@apple.com>
+
+ * config/rs6000/rs6000.c (macho_branch_islands): Fix sprintf arguments.
+ * config/rs6000/rs6000.md (output_call): Fix arguments.
+
+2004-04-27 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (LINK_COMMAND_SPEC): Use darwin_arch_ld_spec.
+ * config/rs6000/darwin.h (DARWIN_ARCH_ASM_SPEC): New.
+ (DARWIN_ARCH_SPEC): Rename as...
+ (DARWIN_ARCH_LD_SPEC): New name.
+ * config/i386/darwin.h (DARWIN_ARCH_ASM_SPEC): New.
+ (DARWIN_ARCH_SPEC): Rename as...
+ (DARWIN_ARCH_LD_SPEC): New name.
+
+2004-04-26 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * configure.ac: Add test for -Wno-long-double.
+ * Makefile.in (STRICT2_WARN): Add -Wno-long-double.
+ (alloc-pool.o-warn): Delete.
+ (ggc-page.o-warn): Delete.
+ * configure: Regenerate.
+
+2004-04-23 Dale Johannesen <dalej@apple.com>
+
+ Radars 3480058, 3178986
+
+ * c-decl.c (merge_decls): Preserve duplicate_decl bit.
+ (merge_translation_unit_decls): Rewritten so -fno-common works.
+ * opts.c (decode_options): Turn on flag_no_common with -fast or -fastcp.
+ * tree.h (struct tree_decl): Add duplicate_decl bit and DECL_DUPLICATE_DECL.
+ * varasm.c (assemble_variable): Use it.
+ * config/rs6000/rs6000.c (rs6000_override_options): Remove
+ reorder-blocks-and-partition from -fast*. Enable align-natural with -fastcp.
+ * ../libstdc++-v3/include/std/std_fstream.h (basic_ifstream): Make
+ _M_filebuf 8-byte aligned.
+ (basic_ofstream): Ditto.
+
+2004-04-22 Devang Patel <dpatel@apple.com>
+
+ Radar 3401402 and 3511029
+
+ Remove FAT Build support from gcc.c
+
+ * gcc.c (struct arch_config_out): Remove.
+ (struct arch_out): Remove.
+ (num_arches, curent_arch, final_output): Remove.
+ (set_new_arch): Remove.
+ (%T support): Remove.
+ (%f support): Remove.
+ (%F support): Remove.
+ ('@' support in specs): Remove.
+ (ofile_merge_spec): Remove.
+ (exec_merge_spec): Remove.
+ (build_search_list): Remove fat builds readibility change.
+ (SWITCH_IGNORE_RESTORE): Remove.
+ (-arch support): Remove.
+ * config/darwin.h (LINK_COMMAND_SPEC): Remove -arch*. Add %(darwin_arch_spec).
+ * confiig/i386/darwin.h (ASM_SPEC): Add %(darwin_arch_spec).
+ (DARWIN_ARCH_SPEC): New.
+ * confiig/rs6000/darwin.h (ASM_SPEC): Add %(darwin_arch_spec).
+ (DARWIN_ARCH_SPEC): New.
+ * config/rs6000/rs6000.h (SUBTARGET_EXTRA_SPECS): Surround it with #ifndef.
+ * config/darwin-driver.c: New file.
+
+2004-04-20 Geoffrey Keating <geoffk@apple.com>
+
+ * c-cppbuiltin.c (define__GNUC__): Better precision and more
+ error checking for code defining __APPLE_CC__.
+ * testsuite/gcc.apple/applecc.c: New.
+
+2004-04-15 Devang Patel <dpatel@apple.com>
+
+ * config/i386.h: Add static tree nodes for vector types to
+ accomodate tree.h changes due to local Altivec patch.
+
+2004-04-15 Caroline Tice <ctice@apple.com>
+
+ Fix various problems related to hot/cold partitioning (but not all of
+ them yet).
+ * bb-reorder.c (tm_p.h): Add new include statement.
+ (HAVE_return): Define HAVE_return appropriately if not already defined.
+ (find_rarely_executed_basic_blocks_and_crossing_edges): Modify to
+ only mark crossing edges if architecture supports named sections.
+ (fix_crossing_conditional_branches): Add test for HAVE_return before
+ calling gen_return.
+ (fix_crossing_unconditional_branches): Change VOIDmode to Pmode in call
+ to gen_rtl_LABEL_REF.
+ (fix_edges_for_rarely_executed_code): Only "fix" branches and add
+ REG_CROSSING_JUMP notes if the architecture supports named sections.
+ (reorder_basic_blocks): Change (* targetm.cannot_modify_jumps_p ())
+ into (targetm.cannot_modify_jumps_p ()). Modify to only add
+ NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture supports
+ named sections.
+ * cfglayout.c (fixup_reorder_chain): Modify code that adds
+ NOTE_INSN_UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes, to only
+ do so if architecture supports named sections.
+ * cfgrtl.c (target.h): Add new include statement.
+ (force_nonfallthru_and_redirect): Modify code that adds
+ NOTE_INSN_UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes, to only
+ do so if architecture supports named sections.
+ (commit_one_edge_insertion): Likewise.
+ * dbxout.c (dbxout_source_file): Fix bug, when writing out source
+ location debug information, to not change to the wrong section.
+ * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this definition.
+ (SECTION_FORMAT_STRING): Remove this definition.
+ * final.c (final_scan_insn): Remove unnecessary in_unlikely_text_section
+ test from if statement. Modify code that switches sections to not
+ do so if architecture does not support named sections. Cleaned up
+ if statement.
+ * ifcvt.c (if_convert): Modified test that disables optimization when
+ partitioning, to not disable it if the architecture does not support
+ named sections.
+ * passes.c (rest_of_compilation): Removed flag_exceptions test from
+ code that calls partitioning, as this is already taken care of
+ in decode_options.
+ * predict.c (choose_function_section): Modify to NOT choose hot or
+ cold sections for the function decl if we are doing partitioning
+ optimization (want to leave it up to the hot/cold partitioning
+ optimization, which is more fine-grained).
+ * varasm.c (text_section): Restore code that outputs assembly for
+ the text section to its original code.
+ (unlikely_text_section): Modify to always use named_section for
+ writing out section directive, remove unnecessary ifdef, and
+ use ASM_OUTPUT_LABEL for labelling the start of the
+ cold section.
+ (in_unlikely_text_section): Modify to deal correctly with being in
+ a named section.
+ (function_section): Restore code for generating section directives
+ to its original order.
+ * config/darwin.c (darwin_asm_named_section): Restore code that
+ generates section directive to its original state.
+ * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Add in_unlikely_text_section ()
+ to an if test that tests for in_text_section ().
+ * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove definition.
+ (SECTION_FORMAT_STRING): Remove definition.
+
+2004-04-10 Paolo Bonzini <bonzini@gnu.org>
+ Richard Henderson <rth@redhat.com>
+
+ PR target/14899
+
+ * c-common.c (vector_types_compatible_p): New function.
+ * c-typeck.c (comptypes): Recurse on vector types,
+ treat a non-opaque type as equivalent to an opaque type.
+ (convert_for_assignment): Use vector_types_compatible_p.
+ (digest_init): Use vector_types_compatible_p to check
+ validness of constant vector initializers; otherwise treat
+ them as scalars
+ * tree.c (make_or_reuse_type): New.
+ (build_common_tree_nodes): Use it.
+ * cp/call.c (standard_conversion): Likewise.
+ * cp/typeck.c (comptypes): Recurse on vector types, do not
+ treat a non-opaque type as equivalent to an opaque type.
+ (convert_for_assignment): Use vector_types_compatible_p.
+
+2004-04-13 Fariborz Jahanian <fjahanian@apple.com>
+
+ * combine.c (combine_instructions):
+ Try insn with each REG_EQUAL note it links back to.
+ (unmentioned_reg_p_1, unmentioned_reg_p): New functions.
+ Brought from tree-ssa branch.
+
+2004-04-09 Dale Johannesen <dalej@apple.com>
+
+ Roll in gcc-1552 enhancement for separate stack temps.
+ Turn on -fstrict-aliasing with -fast.
+ * function.c (assign_stack_local_with_alias): New function.
+ * rtl.h (assign_stack_local_with_alias): Declare it.
+ * config/rs6000/rs6000.c (rs6000_override_options): Turn on strict
+ aliasing with -fast.
+ * config/rs6000/rs6000.md (floatsidf2): Use
+ assign_stack_local_with_alias.
+ (floatunssidf2): Ditto.
+ (fix_truncdfsi2): Ditto.
+
+2004-04-07 Fariborz Jahanian <fjahanian@apple.com>
+
+ Roll in Ziem Laski's Altivec front-end fixes to
+ support MOTOROLA's Altivec syntax.
+ * Makefile.in: Add c-lex.o dependencies.
+ * c-common.c (vector_constructor_from_expr): New function.
+ * c-common.h (vector_constructor_from_expr): Add declaration.
+ * c-lex.c: include target.h, cpphash.h. Add lexer support
+ for new syntax.
+ (c_lex_prepend): new function. (c_lex_peek): new function.
+ * c-pragma.h: add (c_lex_peek, c_lex_prepend) declarations.
+
+2004-04-06 Dale Johannesen <dalej@apple.com>
+
+ Roll in Zdenek Dvorak's rewrite of doloop optimization.
+ * Makefile.in: add loop-doloop.*, remove doloop.*
+ * loop-doloop.c: New.
+ * doloop.c: Remove.
+ * cfgloop.h: Add new function declarations.
+ * cfgloopanal.c: Add get_loop_level.
+ * loop-iv.c: Recognize unexecuted loops.
+ * loop.c: Remove call to old doloop optimization.
+ * loop.h: Remove LOOP_BCT.
+ * passes.c: Ditto. Call new doloop optimization.
+ * config/rs6000/rs6000-protos.h: Remove duplicate declarations.
+ * config/rs6000/rs6000.c: Cosmetic cleanups. Add -freorder-blocks
+ to -fast.
+
+2004-04-02 Ziemowit Laski <zlaski@apple.com>
+
+ Remove APPLE LOCAL AltiVec code whenever possible; merge in
+ AltiVec/VECTOR_TYPE-handling code from mainline.
+
+2004-04-01 Fariborz Jahanian <fjahanian@apple.com>
+
+ * Makefile.in: add $(PARAMS_H) $(TM_P_H) dependencies
+ for sched-rgn.o.
+ * params.def: add definitions for
+ max-sched-region-blocks and max-sched-region-insns.
+ * sched-rgn.c (too_large): change return type to bool.
+ Use the parametrized values of max-sched-region-blocks,
+ max-sched-region-insns for computing upper limits for
+ interblock scheduling.
+ * doc/invoke.texi: Document max-sched-region-blocks,
+ max-sched-region-insns.
+
+2004-04-01 Caroline Tice <ctice@apple.com>
+
+ * basic-block.h (struct edge_def): Add new field, crossing_edge.
+ (struct basic_block_def): Add new field, partition.
+ (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
+ definitions.
+ (partition_hot_cold_basic_blocks): Add extern function
+ declaration.
+ * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
+ include statements.
+ (N_ROUNDS): Increase the maximum number of rounds by 1.
+ (branch_threshold): Add array value for new round.
+ (exec_threshold): Add array value for new round.
+ (push_to_next_round_p): New function.
+ (add_unlikely_executed_notes): New function.
+ (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
+ (mark_bb_for_unlikely_executed_section): New function.
+ (add_labels_and_missing_jumps): New function.
+ (add_reg_crossing_jump_notes): New function.
+ (fix_up_fall_thru_edges): New function.
+ (find_jump_block): New function.
+ (fix_crossing_conditional_branches): New function.
+ (fix_crossing_unconditional_branches): New function.
+ (fix_edges_for_rarely_executed_code): New function.
+ (partition_hot_cold_basic_blocks): New function.
+ (find_traces): Add an extra round for partitioning hot/cold
+ basic blocks.
+ (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
+ and only cold blocks, into the last (extra) round of collecting traces.
+ (better_edge_p): Add a parameter. Modify to favor non-crossing edges
+ over crossing edges.
+ (bb_to_key): Add code to correctly identify cold blocks when
+ doing partitioning.
+ (connect_traces): Modify to connect all the non-cold traces first, then
+ go back and connect up all the cold traces.
+ (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
+ * cfg.c (entry_exit_blocks): Add initialization for partition field in
+ entry and exit blocks.
+ * cfgbuild.c (make_edges): Update current_function_has_computed_jump
+ if we are doing hot/cold partitioning.
+ * cfgcleanup.c (cfglayout.h): Add new include statement.
+ (try_simplify_condjump): Modify to not attempt on blocks with jumps
+ that cross section boundaries.
+ (try_forward_edges): Likewise.
+ (merge_blocks_move_predecessor_nojumps): Likewise.
+ (merge_blocks_move_successor_nojumps): Likewise.
+ (merge_blocks_move): Likewise.
+ (try_crossjump_to_edge): Modify to not attempt after we have done
+ the block partitioning.
+ (try_crossjump_bb): Modify to not attempt on blocks with jumps that
+ cross section boundaries.
+ (try_optimize_cfg): Likewise.
+ * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
+ jumps that cross section boundaries.
+ * cfglayout.c (flags.h): Add new include statement.
+ (update_unlikely_executed_notes): New function.
+ (fixup_reorder_chain): Add code so when a new jumping basic block is
+ added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
+ updated appropriately.
+ (duplicate_insn_chain): Add code to duplicate the new NOTE insn
+ introduced by this optimization.
+ * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
+ extern function declaration.
+ * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
+ list of notes that can be deleted.
+ (create_basic_block_structure): Add initialization for partition field.
+ (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
+ section boundaries.
+ (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
+ cross section boundaries.
+ (commit_one_edge_insertion): Add code so newly created basic block
+ ends up in correct (hot or cold) section. Modify to disallow
+ insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
+ (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
+ crosses section boundaries.
+ (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
+ cross section boundaries.
+ (force_nonfallthru_and_redirect): Modify to make sure new basic block
+ ends up in correct section, with correct notes attached.
+ * common.opt (freorder-blocks-and-partition): Add new flag for this
+ optimization.
+ * dbxout.c (dbx_function_end): Add code to make sure scope labels at
+ the end of functions are written into the correct (hot or cold)
+ section.
+ (dbx_source_file): Add code so writing debug file information
+ doesn't incorrectly change sections.
+ * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
+ in partitioning hot/cold basic blocks into separate sections.
+ (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
+ section partitioning.
+ (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
+ conditional branches can span all of memory.
+ (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
+ unconditional branches can span all of memory.
+ * final.c (scan_ahead_for_unlikely_executed_note): New function.
+ (final_scan_insn): Add code to check for NOTE instruction indicating
+ whether basic block belongs in hot or cold section, and to make sure
+ the current basic block is being written to the appropriate section.
+ Also added code to ensure that jump table basic blocks end up in the
+ correct section.
+ * flags.h (flag_reorder_blocks_and_partition): New flag.
+ * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
+ one of the branches has a jump that crosses between sections.
+ (find_if_case_2): Likewise.
+ (ifcvt): Modify to not attempt to mark loop exit edges after
+ hot/cold partitioning has occurred.
+ * opts.c (decode_options): Code to handle new flag,
+ flag_reorder_blocks_and_partition; also to turn it off if
+ flag_exceptions is on.
+ (common_handle_option): Code to handle new flag,
+ flag_reorder_blocks_and_partition.
+ * output.h (unlikely_text_section): New extern function declaration.
+ (in_unlikely_text_section): New extern function declaration.
+ * passes.c (rest_of_handle_stack_regs): Add
+ flag_reorder_blocks_and_partition as an 'or' condition for calling
+ reorder_basic_blocks.
+ (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
+ as an 'or' condition for calling reorder_basic_blocks.
+ (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
+ * print-rtl.c (print_rtx): Add code for handling new note,
+ NOTE_INSN_UNLIKELY_EXECUTED_CODE
+ * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
+ (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
+ cross between section boundaries.
+ * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
+ indicating the basic block containing it belongs in the cold section.
+ (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
+ between hot and cold sections.
+ * toplev.c (flag_reorder_blocks_and_partition): Add code to
+ initialize this flag, and to tie it to the command-line option
+ freorder-blocks-and-partition.
+ * varasm.c (cfglayout.h): Add new include statement.
+ (unlikely_section_label_printed): New global variable, used for
+ determining when to output section name labels for cold sections.
+ (in_section): Add in_unlikely_executed_text to enum data structure.
+ (text_section): Modify code to use SECTION_FORMAT_STRING and
+ NORMAL_TEXT_SECTION_NAME macros.
+ (unlikely_text_section): New function.
+ (in_unlikely_text_section): New function.
+ (function_section): Add code to make sure beginning of function is
+ written into correct section (hot or cold).
+ (assemble_start_function): Add code to make sure stuff is written to
+ the correct section.
+ (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
+ to an if statement that was checking 'in_text_section'.
+ (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
+ condition to an if statement that was checking 'in_text_section'.
+ (default_section_type_flags_1): Add check: if in cold section
+ flags = SECTION_CODE.
+ * config/darwin.c (darwin_asm_named_section): Modify to use
+ SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
+ * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
+ specifically for the i386.
+ (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
+ * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
+ text string to something more informative.
+ (NORMAL_TEXT_SECTION_NAME): Add new definition.
+ (SECTION_FORMAT_STRING): Add new definition.
+ * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
+ '!in_unlikely_text_section' as an 'and' condition to an if statement
+ that was already checking '!in_text_section'.
+ (rs6000_override_options): Turn on flag_reorder_blocks_and_partition
+ with "-fast".
+ * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
+ UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
+ sure these are properly defined for linux on ppc.
+ * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
+ for this new flag.
+ * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
+ reg_note.
+ * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
+ HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
+ these new macros.
diff --git a/gcc/ChangeLog.lno b/gcc/ChangeLog.lno
new file mode 100644
index 00000000000..d20a04f1cd8
--- /dev/null
+++ b/gcc/ChangeLog.lno
@@ -0,0 +1,3390 @@
+APPLE LOCAL file lno
+2004-07-18 Sebastian Pop <pop@cri.ensmp.fr>
+
+ Merge from mainline (lno-merge-20040718).
+
+2004-07-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
+ * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
+ free the dominators.
+ * passes.c (rest_of_handle_loop2): Free the dominators.
+ * sched-rgn.c (compute_trg_info): Initialize fields of variable el.
+ * tree-cfg.c: Include cfglayout.h.
+ (tree_duplicate_bb): Copy also phi nodes.
+ (struct ssa_name_map_entry): New type.
+ (collect_defs, add_phi_args_after_copy, ssa_name_map_entry_hash,
+ ssa_name_map_entry_eq, allocate_ssa_names,
+ rewrite_to_new_ssa_names_def, rewrite_to_new_ssa_names_use,
+ rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
+ * tree-flow.h (tree_duplicate_sese_region): Declare.
+ * tree-ssa-loop-ch.c (mark_defs_for_rewrite, duplicate_blocks): Removed.
+ (copy_loop_headers): Use tree_duplicate_sese_region.
+ * tree-ssa-loop-manip.c (copy_phi_nodes): Only copy the phi node
+ arguments.
+ * tree-ssa-pre.c (gate_pre): Disable the optimization.
+
+2004-07-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_is_simple_use): Additional argument.
+ (vect_is_supportable_op): Call vect_is_simple_use with extra argument.
+ (vect_is_supportbale_store): Likewise.
+ (vect_is_supportbale_assignment): Likewise.
+ (vect_mark_stmts_to_be_vectorized): Cleanup - use vect_is_simple_use.
+ (vect_get_vec_def_for_operand): Cleanup.
+
+ (vect_analyze_data_refs): Support certain forms of COMPONENT_REF as
+ array_base. Use force_gimple in handling of data-refs.
+ (vect_force_dr_alignment_p): Support certain forms of COMPONENT_REF.
+ (vect_align_data_ref): Likewise.
+ (vect_analyze_data_ref_dependence): Likewise.
+
+ (vect_analyze_operations): Remove duplicate calls to vect_debug_details.
+ (vect_analyze_scalar_cycles): Likewise.
+ (vect_analyze_data_ref_dependence): Likewise.
+ (vect_analyze_data_refs_alignment): Likewise.
+ (vect_analyze_pointer_ref_access): Likewise.
+ (vect_analyze_pointer_ref_access): Likewise.
+ (vect_analyze_data_refs): Likewise.
+ (vect_analyze_loop_form): Likewise.
+
+2004-07-13 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-data-ref.c: Fix some comments for inclusion in mainline.
+ (tree_fold_gcd): Moved...
+ * tree.c (tree_fold_gcd): ...here.
+ * tree.h (tree_fold_gcd): Declared here.
+
+2004-07-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-niter.c (mark_maybe_infinite_loops): Handle abnormal
+ edges.
+
+2004-07-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (tree-ssa-loop.o, tree-ssa-dce.o): Add function.h
+ dependency.
+ * builtins.c (expand_builtin): Handle BUILT_IN_MAYBE_INFINITE_LOOP.
+ * builtins.def (BUILT_IN_MAYBE_INFINITE_LOOP): New builtin.
+ * function.h (struct function): Add marked_maybe_inf_loops field.
+ * timevar.def (TV_MARK_MILOOPS): New timevar.
+ * tree-flow.h (mark_maybe_infinite_loops): Declare.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_mark_maybe_inf_loops.
+ * tree-pass.h (pass_mark_maybe_inf_loops): Declare.
+ * tree-ssa-dce.c: Include function.h.
+ (find_obviously_necessary_stmts): Mark back edges only if they were
+ not marked already.
+ (perform_tree_ssa_dce): Do not call mark_dfs_back_edges here.
+ * tree-ssa-loop-niter.c (unmark_surely_finite_loop,
+ mark_maybe_infinite_loops): New functions.
+ * tree-ssa-loop.c: Include function.h.
+ (tree_mark_maybe_inf_loops, gate_tree_mark_maybe_inf_loops,
+ pass_mark_maybe_inf_loops): New pass.
+ * tree-ssa-operands.c (function_ignores_memory_p): Add
+ BUILT_IN_MAYBE_INFINITE_LOOP.
+
+2004-07-12 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * Makefile.in (tree-scalar-evolution.o): Remove dependences on
+ tree-vectorizer.h and tree-data-ref.h.
+ (tree-data-ref.o): Add dependence on lambda.h.
+ * lambda-trans.c, lambda.h: Add missing copyright notice.
+ * tree-scalar-evolution.c: Don't include tree-data-ref.h and
+ tree-vectorizer.h. Fix some comments.
+ * tree-scalar-evolution.h (simple_iv): Modified to match the
+ declaration that is in mainline.
+
+2004-07-11 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: Update documentation. Use '#ifdef
+ ENABLE_CHECKING' to guard checks that are expected to have been
+ verified during analysis. Use vect_debug_details/vect_debug_stats
+ for dumping information.
+
+ * tree-vectorizer.h (struct _stmt_vec_info): New field "memtag".
+ (STMT_VINFO_MEMTAG): Access macro for new field "memtag".
+ * tree-vectorizer.c (vect_create_data_ref): Get tag from new field.
+ (vect_analyze_data_refs): Record the tag in the new memtag field.
+
+ (vect_align_data_ref): Remove unused argument.
+ (vect_analyze_data_refs): Call vect_align_data_ref with one argument.
+ (vect_get_array_first_index): Additional argument to return the
+ index rather than as the return value of the function.
+ (create_index_for_array_ref): Call vect_get_array_first_index with
+ an extra argument.
+ (vect_create_data_ref): Remove unused argument.
+ (vect_debug_stats, vect_debug_details): Argument "string" removed.
+
+ (vect_analyze_pointer_ref_access): New function.
+ (vect_analyze_data_refs): Call vect_analyze_pointer_ref_access.
+
+ (vect_finish_stmt_generation): New function.
+ (vect_transform_assignment, vect_transform_op, vect_transform_store):
+ (vect_transform_load): Call vect_finish_stmt_generation.
+
+ (get_vectype_for_scalar_type): No need to iterate through the
+ different modes - build_vector_type already does that.
+
+ (vect_transform_loop_bound): Check which edge is actually the 'then'.
+
+ (vect_analyze_operations): Temporarily disable vectorization of loops
+ with unknown loop bound.
+
+2004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (determine_biv_step): Use simple_iv.
+
+2004-07-09 Devang Patel <dpatel@apple.com>
+
+ * Makefile.in (tree-ssa-loop-manip.o): Add tree-scalar-evolution.h
+ dependency.
+ * tree-scalar-evolution.c (scev_rest): Check scalar_evolution_info
+ and current_loops.
+ * tree-ssa-loop-manip.c (tree-scalar-evolution.h): Include.
+ (tree_duplicate_loop_to_header_edge): scev_reset () in the end.
+
+2004-07-09 Steven Bosscher <stevenb@suse.de>,
+ Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-pre.c: Merge changes from mainline.
+
+2004-07-09 Steven Bosscher <stevenb@suse.de>
+
+ * varray.h (varray_data_enum): Remove VARRAY_DATA_DG.
+
+2004-07-08 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * varray.c (element): Don't include dependence_node_def.
+
+2004-07-08 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * Makefile.in (OBJS-common): Remove tree-dg.o.
+ (tree-dg.o): Removed.
+ (GTFILES): Remove tree-dg.h.
+ * gengtype.c (open_base_files): Remove tree-dg.h.
+ * tree-data-ref.c (subscript_dependence_tester): Don't define.
+ (dump_data_dependence_relation): Print data references only
+ when they are not NULL.
+ (analyze_array_top): Removed.
+ (initialize_data_dependence_relation): Is extern now.
+ When the data references are NULL the relation is not known.
+ (compute_affine_dependence): Is extern now.
+ (find_data_references_in_loop): Returns chrec_dont_know when
+ failing to analyze a difficult case.
+ (compute_data_dependences_for_loop): Terminate earlier when
+ find_data_references_in_loop fails.
+ * tree-data-ref.h (data_dependence_relation): Update comments.
+ (initialize_data_dependence_relation, compute_affine_dependence):
+ Declared extern.
+ * tree-dg.c, tree-dg.h: Removed.
+ * tree-flow-inline.h (dg_node_for_stmt): Removed.
+ * tree-flow.h: Don't include tree-dg.h.
+ (stmt_ann_d): Remove dependence_node field.
+ * tree-ssa-loop.c: Include tree-data-ref.h.
+ (tree_vectorize, tree_linear_transform): Don't construct the dg_graph.
+ * tree-vectorizer.c: Remove some declarations of static functions.
+ (vect_analyze_data_ref_dependence): Extra parameter for the vectorized
+ loop. Don't rely on the information provided by the data
+ reference structure. Compute directly the relation between
+ the data references instead of querying this information in
+ the dg_graph.
+ (vect_analyze_data_ref_dependences): Pass to
+ vect_analyze_data_ref_dependence the information about the
+ vectorized loop.
+ * varray.h (varray_data_tag): Remove dependence_node_def.
+
+2004-07-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (cand_value_at): Handle types correctly.
+ (may_eliminate_iv): Verify there is no overflow.
+
+2004-07-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev):
+ Ensure that step of the iv satisfies cst_and_fits_in_hwi.
+ (determine_use_iv_cost_outer): Preserve the fact that the cost
+ is infinity.
+ * tree-ssa-loop-prefetch.c (WRITE_CAN_USE_READ_PREFETCH,
+ READ_CAN_USE_WRITE_PREFETCH, HAVE_FORWARD_PREFETCH,
+ HAVE_BACKWARD_PREFETCH, ACCEPTABLE_MISS_RATE): New macros.
+ (struct mem_ref_group): Type of step changed to HOST_WIDE_INT.
+ (struct mem_ref): Type of delta changed to HOST_WIDE_INT.
+ (dump_mem_ref, find_or_create_group, record_ref,
+ struct ar_data, idx_analyze_ref, analyze_ref,
+ gather_memory_references_ref, issue_prefetch_ref): Updated to reflect
+ this.
+ (ddown): New function.
+ (prune_ref_by_self_reuse, prune_ref_by_group_reuse):
+ Implement.
+ (prune_ref_by_reuse): Use WRITE_CAN_USE_READ_PREFETCH and
+ READ_CAN_USE_WRITE_PREFETCH.
+ (prune_group_by_reuse): Add dumps.
+ (issue_prefetch_ref): Assert that PREFETCH_BLOCK is a power of 2.
+ * tree.c (cst_and_fits_in_hwi): Update comment and fix semantics.
+ (int_cst_value, build_int_cst): Check that we use them only for
+ types representable in HOST_WIDE_INT.
+
+2004-07-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Remove bogus check for chrec_contains_undetermined.
+
+2004-07-06 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * basic-block.h (edge_source, edge_destination): Removed.
+ * cfgloop.c (superloop_at_depth): Fix comment.
+ * cfgloop.h (loop_from_num, outer_loop, inner_loop, next_loop,
+ loop_num, loop_depth, loop_header, loop_nb_iterations,
+ loop_num_exits, loop_exit_edges, loop_exit_edge): Removed.
+ * lambda-code.c, tree-cfg.c, tree-data-ref.c, tree-dg.c,
+ tree-elim-check.c, tree-scalar-evolution.c, tree-ssa-dom.c,
+ tree-ssa-loop-ivcanon.c, tree-vectorizer.c: Inline removed functions.
+ * tree-data-ref.c: Rewrite some comments.
+ * tree-flow-inline.h (loop_of_stmt): Renamed loop_containing_stmt.
+
+2004-07-04 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_create_data_ref, vect_init_vector):
+ Use insert_on_edge to add code in loop preheader.
+ (vect_transform_loop): Make sure there's a preheader BB.
+
+2004-06-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-prefetch.c: New file.
+ * Makefile.in (tree-ssa-loop-prefetch.o): Add.
+ * timevar.def (TV_TREE_PREFETCH): New.
+ * tree-flow.h (tree_ssa_prefetch_arrays,
+ standard_iv_increment_position): Declare.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_loop_prefetch.
+ * tree-pass.h (pass_loop_prefetch): Declare.
+ * tree-ssa-loop-ivcanon.c (estimate_loop_size): Force the size to be
+ nonzero.
+ * tree-ssa-loop-ivopts.c (cst_and_fits_in_hwi): Moved to tree.c.
+ (standard_iv_increment_position): New function.
+ (zero_p): Export.
+ * tree-ssa-loop-niter.c (zero_p): Remove duplicate function.
+ * tree-ssa-loop.c (tree_ssa_loop_prefetch,
+ gate_tree_ssa_loop_prefetch): New functions.
+ (pass_loop_prefetch): New pass structure.
+ * tree-ssa-operands.c (function_ignores_memory_p): New function.
+ (get_expr_operands): Use it.
+ * tree.c (cst_and_fits_in_hwi): Moved from tree-ssa-loop-ivopts.c.
+ * tree.h (zero_p, cst_and_fits_in_hwi): Declare.
+
+2004-06-28 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code.c (print_linear_expression): Rename a few variables,
+ simplify some code.
+ (print_lambda_loop): Ditto.
+ (lambda_compute_auxillary_space): Update a comment.
+ (gcc_loop_to_lambda_loop): Update code for chrec_dont_know change.
+ (struct dir_dist_pair): New.
+ (reverse_dep): Ditto.
+ (lambda_dep_mult_constant): New function.
+ (lambda_dep_add): Ditto.
+ (lambda_vec_distdirvec_mult): Ditto.
+ (lambda_vec_distdirmat_mult): Ditto.
+ (lambda_deps_positive): Ditto.
+ (lambda_transform_legal_p): Ditto.
+ * lambda-mat.c (lambda_matrix_mult): Cleanup
+ (lambda_matrix_delete_rows): Ditto.
+ (lambda_matrix_row_add): Ditto.
+ (lambda_matrix_col_exchange): Ditto.
+ (lambda_trans_matrix_is_nonsingular): Rename to standard gcc predicate
+ naming.
+ (lambda_trans_matrix_is_fullrank): Ditto.
+ (lambda_trans_matrix_base): Rename to reflect actual computation.
+ * lambda.h (lambda_transform_legal_p): Add prototype.
+ * tree-loop-linear.c (linear_transform_loops): Rewrite a bit, use legality
+ tester to test transforms.
+
+2004-06-28 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-data-ref.c (build_classic_dist_vector): Add argument, stop
+ making out-of-bounds array accesses when analyzing less than
+ all the loops. Add checks to verify.
+ (build_classic_dir_vector): Ditto.
+ (compute_data_dependences_for_loop): Pass in starting loop number
+ to build_classic_*.
+
+2004-06-27 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree.def (INTERVAL_CHREC): Removed.
+ (SCEV_KNOWN, SCEV_NOT_KNOWN): New nodes.
+ * tree-pretty-print.c (dump_generic_node): Handle SCEV_KNOWN and
+ SCEV_NOT_KNOWN nodes.
+ * tree-chrec.h (build_polynomial_chrec): When one of the
+ operands is chrec_dont_know, return directly chrec_dont_know.
+ * tree-scalar-evolution.c (instantiate_parameters_1): Same.
+ (initialize_scalar_evolutions_analyzer): Build chrec_dont_know using a
+ SCEV_NOT_KNOWN node, and chrec_known with a SCEV_KNOWN node.
+
+2004-06-24 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.c (chrec_fold_automatically_generated_operands,
+ chrec_merge):
+ Use chrec_dont_know instead of a call to chrec_contains_undetermined.
+ (tree_fold_factorial, tree_fold_binomial, chrec_evaluate): Resurrect.
+ (chrec_apply): Reinsert the cases that were removed.
+ (chrec_convert): Remove the check for NULL_TREE inserted two days ago.
+ * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): As a sequel of
+ removing the tree_fold_* functions, the analyzed trees can contain
+ NON_LVALUE_EXPR nodes. Use STRIP_TYPE_NOPS for avoiding these nodes.
+ (number_of_iterations_in_loop): Add the missing open parenthesis in
+ the debugging dumps.
+ (initialize_scalar_evolutions_analyzer): Use an INTERVAL_CHREC for
+ constructing the chrec_dont_know node. This fixes some strange
+ problems that arise when chrec_dont_know is an INTEGER_CST.
+ * tree.def (INTERVAL_CHREC): Resurrect.
+
+2004-06-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-chrec.c (chrec_merge): Handle case when one of the arguments
+ was not analyzed yet correctly.
+
+2004-06-23 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.c (chrec_fold_automatically_generated_operands): Now
+ static. Clean comments.
+ (hide_evolution_in_loop, chrec_merge_types): Removed.
+ * tree-chrec.h (hide_evolution_in_loop,
+ chrec_fold_automatically_generated_operands): Remove declarations.
+ * tree-scalar-evolution.c: Remove an old part of the comment at the
+ beginning of the file.
+ (compute_overall_effect_of_inner_loop,
+ compute_overall_effect_of_inner_loop, add_to_evolution_1,
+ analyze_scalar_evolution_1, analyze_scalar_evolution): Test for
+ chrec_dont_know instead of calling chrec_contains_undetermined.
+
+2004-06-22 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_create_data_ref): Fix setting of mem_tag.
+ (vect_analyze_data_refs): Make sure we have a mem_tag.
+
+2004-06-22 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-fold-const.c, tree-fold-const.h: Removed.
+ * Makefile.in (SCEV_H, tree-chrec.o): Remove tree-fold-const.h.
+ (OBJS-common): Remove tree-fold-const.o.
+ (tree-fold-const.o): Removed.
+ * gengtype.c (open_base_files): Remove tree-fold-const.h.
+ * lambda-code.c, tree-chrec.c, tree-data-ref.c, tree-dg.c,
+ tree-elim-check.c, tree-loop-linear.c, tree-pretty-print.c,
+ tree-scalar-evolution.c, tree-ssa-loop-ivcanon.c,
+ tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c, tree-vectorizer.c:
+ Don't include tree-fold-const.h.
+ * tree-chrec.c, tree-data-ref.c: Replace uses of tree_fold_* with
+ fold (build (*, ...))
+ * tree-data-ref.c (tree_fold_gcd, tree_fold_divides_p,
+ tree_fold_bezout): Saved from deletion here.
+
+2004-06-22 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.c, tree-chrec.h, tree-data-ref.c, tree-dg.c,
+ tree-elim-check.c, tree-scalar-evolution.c, tree-ssa-loop-niter.c,
+ tree-vectorizer.c: Replace chrec_top with chrec_dont_know,
+ and chrec_bot with chrec_known. Replace the checks of chrec_top
+ with calls to chrec_contains_undetermined.
+ * tree.def (INTERVAL_CHREC): Removed.
+ * cfgloop.h (loop): Update comments around nb_iterations field.
+ * lambda-code.c (gcc_loop_to_lambda_loop): Always check for
+ undetermined chrec after calling number_of_iterations_in_loop.
+ * tree-chrec.c (chrec_fold_multiply_ival_cst,
+ chrec_fold_multiply_ival_ival,
+ chrec_merge_types, chrec_contains_intervals, chrec_evaluate,
+ chrec_merge_intervals): Removed.
+ (chrec_fold_plus_1, chrec_fold_plus, chrec_fold_minus,
+ chrec_fold_multiply, chrec_merge,
+ evolution_function_is_affine_multivariat, chrec_convert):
+ Remove uses of INTERVAL_CHREC nodes.
+ (chrec_apply): Classify as unknown all the non-affine cases.
+ * tree-fold-const.h (tree_fold_binomial): Removed.
+ * tree-chrec.h (CHREC_LOW, CHREC_UP,
+ chrec_contains_intervals, build_interval_chrec,
+ build_chrec_top_type, evolution_function_is_multivariate,
+ chrec_should_remain_symbolic): Removed.
+ (tree_is_chrec, chrec_zerop, evolution_function_is_affine_p):
+ Remove uses of INTERVAL_CHREC nodes.
+ * tree-data-ref.c (analyze_ziv_subscript,
+ analyze_overlapping_iterations): Same.
+ * tree-pretty-print.c (dump_generic_node): Same.
+ * tree-scalar-evolution.c (chrec_is_positive,
+ instantiate_parameters_1, gather_chrec_stats,
+ initialize_scalar_evolutions_analyzer): Same.
+ (analyze_scalar_evolution_in_loop): Make it static.
+ (resolve_mixers): Fix comments.
+ (chrec_stats, reset_chrecs_counters, dump_chrecs_stats):
+ Remove nb_interval_chrec counter.
+ (chrec_is_positive, simple_iv): Always check for undetermined after
+ a call to number_of_iterations_in_loop or analyze_scalar_evolution.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
+ canonicalize_loop_induction_variables): Same.
+ * tree-ssa-loop-ivopts.c (determine_biv_step): Same.
+ * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Same.
+ (estimate_numbers_of_iterations_loop): Remove redundant call to
+ number_of_iterations_in_loop.
+ * tree-scalar-evolution.h (analyze_scalar_evolution_in_loop):
+ Remove declaration, the function is now static.
+ * tree-vectorizer.c (vect_analyze_loop_with_symbolic_num_of_iters):
+ Don't test for INTERVAL_CHREC nodes.
+
+2004-06-22 Devang Patel <dpatel@apple.com>
+
+ PR 16105
+ * tree-vectorizer.c (vect_analyze_operations): Type of MODIFY_EXPR is
+ not reliable. Use LHS's type.
+
+2004-06-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR rtl-optimization/16001
+ * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
+ niter_expr.
+
+2004-06-21 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree.def (PEELED_CHREC): Removed.
+ * tree-chrec.c (is_not_constant_evolution, chrec_fold_plus_1,
+ chrec_fold_multiply, chrec_replace_initial_condition, chrec_convert):
+ Don't handle PEELED_CHREC nodes.
+ (chrec_fold_plus_peel_cst, chrec_fold_plus_poly_peel,
+ chrec_fold_plus_peel_poly, chrec_fold_plus_peel_peel,
+ chrec_fold_multiply_peel_cst, chrec_fold_multiply_poly_peel,
+ chrec_fold_multiply_peel_peel, simplify_peeled_chrec): Removed.
+ * tree-chrec.h (tree_is_chrec): Don't handle PEELED_CHREC nodes.
+ (build_peeled_chrec, evolution_function_is_peeled_affine_p): Removed.
+ * tree-pretty-print.c (dump_generic_node): Don't handle
+ PEELED_CHREC nodes.
+ * tree-scalar-evolution.c (analyze_evolution_in_loop,
+ instantiate_parameters_1): Same.
+ (chrec_stats, reset_chrecs_counters, dump_chrecs_stats,
+ gather_chrec_stats): Don't count the number of PEELED_CHREC nodes.
+
+2004-06-18 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * Makefile.in (OBJS-common): Remove tree-elim-check.o.
+ * tree-scalar-evolution.c (first_iteration_non_satisfying_noev_noev,
+ first_iteration_non_satisfying_noev_ev,
+ first_iteration_non_satisfying_ev_noev,
+ first_iteration_non_satisfying_ev_ev,
+ first_iteration_non_satisfying_1,
+ first_iteration_non_satisfying): Removed.
+ (number_of_iterations_in_loop): Clean up.
+ * tree-scalar-evolution.h (first_iteration_non_satisfying): Removed.
+ * tree-ssa-loop-ivopts.c (zero_p): Compare tree pointer
+ against NULL_TREE.
+ * tree-ssa-loop.c (tree_ssa_loop_test): Return when loops
+ structure is not available.
+ (tree_elim_checks): Disabled for the moment. Don't call
+ eliminate_redundant_checks.
+
+2004-06-17 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT.
+ * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p.
+ (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers.
+ (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'.
+ (get_v_may_def_result_ptr): Return a def_operand_p.
+ (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p.
+ (get_v_must_def_op_ptr): Return a def_operand_p.
+ (get_phi_result_ptr): New. Return a pointer to the result of a PHI.
+ (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI.
+ (phi_element_for_edge): Remove.
+ * tree-flow.h (propagate_value, replace_exp): Change prototype.
+ (propagate_tree_value): Add new prototype.
+ (phi_element_for_edge): Remove prototype.
+ * tree-into-ssa.c (mark_def_sites): Use new operand types.
+ (prepare_operand_for_rename): Split into two functions.
+ (prepare_use_operand_for_rename): Prepare use operands.
+ (prepare_def_operand_for_rename): Prepare def operands.
+ (rewrite_stmt): Use new operand types.
+ (rewrite_operand): Use new operand types, change parameter type.
+ * tree-outof-ssa.c (replace_variable): Split into two functions.
+ (replace_use_variable): Rewrite uses.
+ (replace_def_variable): Rewrite defs.
+ (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types.
+ * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types.
+ (add_phi_arg, remove_phi_arg_num): Use new operand types.
+ * tree-ssa-ccp.c (substitute_and_fold): Use new operand types.
+ (ccp_fold, replace_uses_in): Use new operand types.
+ * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann
+ and no longer set the value, change parameter type.
+ (replace_exp_1): Use new operand types.
+ (propagate_value): Change parameter type, use new operand types.
+ (propagate_tree_value): Propagate_value without SSA operands.
+ (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types.
+ (cprop_into_successor_phis): Use new operand types.
+ * tree-ssa-dom.c (thread_across_edge): Use new operand types.
+ (eliminate_redundant_computations): Use new operand types.
+ * tree-ssa-dse.c (fix_phi_uses): Use new operand_types.
+ (fix_stmt_v_may_defs): Use new operand_types.
+ * tree-ssa-live.c (create_ssa_var_map): Use new operand_types.
+ (build_tree_conflict_graph): Use new operand_types.
+ * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE.
+ * tree-ssa-operands.c (struct freelist_d): Remove.
+ (check_optype_freelist, add_optype_freelist): Remove.
+ (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
+ allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc.
+ (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
+ Call ggc_free instead of add_optype_freelist.
+ (init_ssa_operands, fini_ssa_operands): Remove free list code.
+ (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands.
+ * tree-ssa-operands.h (struct def_optype_d): Change underlying type.
+ (struct use_optype_d): Change underlying type.
+ (def_operand_p, use_operand_p): New types for pointers to operands.
+ (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
+ V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
+ (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
+ pointer types.
+ (SET_USE, SET_DEF): New macros to set operands from their pointer.
+ (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
+ SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
+ (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the
+ PHI result as an operand.
+ (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
+ PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments.
+ * tree-ssa-pre.c (eliminate): Call propagate_tree_value.
+ * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use
+ PHI_ARG_DEF_FROM_EDGE.
+ * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE.
+ (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE.
+
+ * tree-ssa-loop-ivopts.c (find_bivs, mark_bivs,
+ find_interesting_uses_outer_or_nonlin, find_interesting_uses_stmt,
+ find_interesting_uses_outside, add_old_iv_candidates,
+ remove_statement, rewrite_use_nonlinear_expr, split_loop_exit_edge,
+ protect_loop_closed_ssa_form_use, compute_phi_arg_on_exit,
+ rewrite_use_outer): Use new operand types.
+
+2004-06-16 Dale Johannesen <dalej@apple.com>
+
+ * Makefile.in (GTFILES): Add tree-chrec.h.
+ * tree-chrec.h (chrec_top, chrec_bot): Add GTY.
+ * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
+ Set chrec_top, chrec_bot once per compilation.
+ * gengtype.c (ifiles): Add tree-fold-const.h, tree-chrec.h.
+
+2004-06-16 Dale Johannesen <dalej@apple.com>
+ * tree-flow.h (tree_ann_common-d.aux): Document required behavior.
+ * tree-ssa-loop-manip.c (allocate_new_names): Don't propagate
+ new_names into copies.
+
+2004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR tree-optimization/15993
+ * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
+ destination is unchanged.
+
+2004-06-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_analyze_data_refs): Minor fix.
+
+2004-06-14 Andrew Pinski <apinski@apple.com>
+
+ * tree-ssa-return.c: Remove.
+ * Makefile.in (OBJS-common): Remove tree-ssa-return.o
+ (tree-ssa-return.o): Remove.
+ * timevar.def (TV_TREE_RETURN): Remove.
+ * tree-optimize.c (init_tree_optimization_passes):
+ Do not run pass_return.
+ * tree-pass.h (pass_return): Remove declaration.
+
+2004-06-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-data-ref.c (init_data_ref): New function.
+ * tree-data-ref.h (init_data_ref): New function.
+ * tree-vectorizer.c (vect_get_array_first_index): Return index instead
+ of success status, and support pointers.
+ (vect_create_index_for_array_ref): Remove ARRAY_REF restriction, and
+ change call to vect_get_array_first_index.
+ (vect_create_data_ref): Handle INDIRECT_REFs.
+ (vect_is_supportable_store): Handle INDIRECT_REFs.
+ (vect_is_supportable_load): Handle INDIRECT_REFs.
+ (vect_analyze_data_ref_dependence): Handle INDIRECT_REFs.
+ (vect_analyze_data_ref_dependences): Remove usage of variable 'ok'.
+ (get_array_base): Removed (not used anymore).
+ (vect_force_dr_alignment_p): Use DR_BASE_NAME instead of
+ get_array_base.
+ (vect_align_data_ref): Likewise.
+ (vect_transform_store): Remove ARRAY_REF restriction.
+ (vect_transform_load): Remove ARRAY_REF restriction.
+ (vect_compute_data_ref_alignment): Support pointers.
+ (vect_analyze_data_refs): Support pointers.
+
+ (vect_debug_stats): New Function.
+ (vect_debug_details): New Function.
+ (vect_transform_loop): Use vect_debug_stats and vec_debug_details.
+ (vect_analyze_loop): Use vect_debug_details.
+ (vect_analyze_scalar_cycles): Use vect_debug_stats.
+ (vect_analyze_data_ref_dependence): Likewse.
+ (vect_analyze_data_refs_alignment): Likewise.
+ (vect_analyze_data_ref_accesses): Likewise.
+ (vect_analyze_data_refs): Likewise.
+ (vect_analyze_loop_form): Likewise.
+
+ (vect_gen_if_guard): Formatting fixes (avoid 80 column overflow).
+ (vect_update_initial_conditions_of_duplicatd_loop): Likewise.
+ (vect_transform_loop): Likewise.
+ (vect_analyze_loop_form): Likewise.
+
+2004-06-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Merge from mainline (lno-merge-20040612).
+
+2004-06-13 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-chrec.c (evolution_function_is_affine_multivariat): Add check
+ for POLYNOMIAL_CHREC.
+ * tree-dg.c (ddg_direction_between_stmts): Add check for chrec_top.
+
+ * tree-pass.h (TODO_write_loop_closed): New to-do flag.
+ * tree-optimize.c (execute_todo): Handle new to-do flag
+ TODO_write_loop_closed.
+ * tree-ssa-loop.c (struct tree_opt_pass pass_vectorize): Set
+ TODO_write_loop_closed.
+
+ * tree-vectorizer.c (vect_transform_loop): Add calls to
+ add_bb_to_loop.
+ (vect_analyze_data_ref_dependence): Fix last argument in call to
+ ddg_direction_between_stmts.
+
+2004-06-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR target/15944
+ * loop-invariant.c (may_assign_reg_p): Use can_copy_p.
+
+2004-06-11 Olga Golovanevsky <olga@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_generate_tmps_on_preheader):
+ (vect_gen_if_guard): New functions.
+ (vect_update_initial_conditions_of_duplicated_loop):
+ Update also phis of bb at the exit of epilog loop.
+ (vect_transform_loop): Remove code that now belongs to
+ vect_generate_tmps_on_preheader () function. Use
+ vect_gen_if_guard function twice.
+
+2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ch.c: New file.
+ * Makefile.in (tree-ssa-loop-ch.o): Add.
+ (tree-ssa-loop.o): Add SCEV_H and tree-vectorizer.h dependency.
+ * cfgloop.h (current_loops): Declare.
+ * common.opt (fivcanon, fivopts, floop-test, ftree-lim): Add.
+ (ftree-loop-optimize, fscalar-evolutions, fall-data-deps,
+ ftree-ddg): Remove.
+ * flags.h (flag_scalar_evolutions, flag_all_data_deps,
+ flag_tree_loop, flag_ddg): Removed.
+ (flag_tree_lim, flag_ivcanon, flag_ivopts,
+ flag_tree_ssa_loop_test): New.
+ (f_options): Remove scalar-evolutions, all-data-deps,
+ tree-ddg, tree-loop-optimize.
+ * toplev.c (flag_scalar_evolutions, flag_all_data_deps,
+ flag_tree_loop, flag_ddg): Removed.
+ (flag_tree_lim, flag_ivcanon, flag_ivopts,
+ flag_tree_ssa_loop_test): New.
+ * opts.c (decode_options, common_handle_option): Initialize new
+ options.
+ * timevar.def (TV_SCALAR_EVOLUTIONS, TV_ALL_DATA_DEPS): Removed.
+ (TV_TREE_ELIM_CHECKS, TV_DEP_GRAPH, TV_LIM, TV_COMPLETE_UNROLL,
+ TV_UNSWITCH): Added.
+ * tree-flow.h (test_unrolling_and_peeling, test_loop_versioning):
+ Removed.
+ (tree_unroll_loops_completely): Declare.
+ * tree-optimize.c (init_tree_optimization_passes): Reorganize loop
+ optimizer passes.
+ * tree-pass.h (pass_scev, pass_scev_init, pass_scev_anal,
+ pass_scev_depend, pass_scev_linear_transform, pass_scev_iv_canon,
+ pass_scev_elim_checks, pass_scev_vectorize, pass_scev_done, pass_ddg,
+ pass_delete_ddg): Removed.
+ (pass_loop_init, pass_loop_test, pass_lim, pass_unswitch,
+ pass_iv_canon, pass_record_bounds, pass_elim_checks, pass_vectorize,
+ pass_complete_unroll, pass_linear_transform, pass_iv_optimize,
+ pass_loop_done): Declare.
+ * tree-scalar-evolution.c (current_loops): Moved to tree-ssa-loop.c.
+ (dd_info_available): Removed.
+ (scev_init, scev_depend, scev_elim_checks, scev_vectorize, scev_done,
+ gate_scev, gate_scev_analysis, gate_scev_depend, gate_scev_elim_checks,
+ gate_scev_vectorize): Removed.
+ (pass_scev, pass_scev_init, pass_scev_anal, pass_scev_depend,
+ pass_scev_vectorize, pass_scev_linear_transform,
+ pass_scev_iv_canon, pass_scev_elim_checks, pass_scev_done,
+ pass_ddg, pass_delete_ddg): Removed.
+ * tree-scalar-evolution.h (scev_analysis): Declare.
+ (scev_analysis): Export.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Add parameter to control whether find_loop_niter_by_eval is run.
+ (canonicalize_induction_variables): Do not unroll loops.
+ (tree_unroll_loops_completely): Split from
+ canonicalize_induction_variables.
+ * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init,
+ tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize,
+ tree_ssa_iv_optimize): Global initialization/finalization removed.
+ * tree-ssa-loop-manip.c (test_unrolling_and_peeling,
+ test_loop_versioning): Removed.
+ * tree-ssa-loop.c: Include tree-scalar-evolution.h and
+ tree-vectorizer.h.
+ (current_loops): Moved from tree-scalar-evolution.c.
+ (tree_ssa_loop_opt): Removed.
+ (gate_loop): Removed.
+ (pass_loop): Modified.
+ (should_duplicate_loop_header_p, mark_defs_for_rewrite,
+ duplicate_blocks, do_while_loop_p, copy_loop_headers,
+ gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c.
+ (tree_ssa_loop_init, pass_loop_init, tree_ssa_loop_im,
+ gate_tree_ssa_loop_im, pass_lim, tree_ssa_loop_unswitch,
+ gate_tree_ssa_loop_unswitch, pass_unswitch, tree_ssa_loop_ivcanon,
+ gate_tree_ssa_loop_ivcanon, pass_iv_canon, tree_ssa_loop_bounds,
+ pass_record_bounds, tree_ssa_loop_test, pass_loop_test,
+ tree_elim_checks, gate_tree_elim_checks, pass_elim_checks,
+ tree_vectorize, gate_tree_vectorize, pass_vectorize,
+ tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll,
+ tree_linear_transform, gate_tree_linear_transform,
+ pass_linear_transform, tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
+ pass_iv_optimize, tree_ssa_loop_done, pass_loop_done): New.
+ * testsuite/gcc.dg/tree-ssa-chrec/*: Updated.
+
+2004-06-10 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree.def: Remove EXPONENTIAL_CHREC node.
+ * tree-chrec.c (is_not_constant_evolution, chrec_fold_plus_1,
+ chrec_fold_multiply, chrec_evaluate, chrec_apply,
+ chrec_replace_initial_condition, initial_condition,
+ hide_evolution_in_loop, hide_evolution_in_other_loops_than_loop,
+ evolution_part_in_loop_num, reset_evolution_in_loop,
+ reset_evolution_in_loop, chrec_merge, is_multivariate_chrec_rec,
+ is_multivariate_chrec, evolution_function_is_affine_multivariate_p,
+ evolution_function_is_univariate_p, chrec_convert): Don't
+ handle EXPONENTIAL_CHREC nodes.
+ (chrec_fold_plus_expo_cst, chrec_fold_plus_cst_expo,
+ chrec_fold_plus_poly_expo, chrec_fold_plus_expo_poly,
+ chrec_fold_plus_expo_expo, chrec_fold_multiply_poly_expo,
+ chrec_fold_multiply_expo_expo, is_pure_sum_chrec): Removed.
+ * tree-chrec.h (tree_is_chrec, evolution_function_is_affine_p):
+ Don't handle EXPONENTIAL_CHREC nodes.
+ (build_exponential_chrec): Removed.
+ (no_evolution_in_loop_p): Use a call to tree_is_chrec for
+ determining when a node represents a scalar evolution.
+ * tree-data-ref.c (siv_subscript_p): Don't handle
+ EXPONENTIAL_CHREC nodes.
+ * tree-pretty-print.c (dump_generic_node): Same.
+ * tree-scalar-evolution.c: Remove FIXME comments about
+ EXPONENTIAL_CHREC nodes. Add a pointer to the slides
+ presented at the GCC Summit 2004 about the scalar evolutions.
+ (compute_overall_effect_of_inner_loop): Clarify the leading comment.
+ (chrec_is_positive, add_to_evolution_1, add_to_evolution,
+ instantiate_parameters_1): Don't handle EXPONENTIAL_CHREC nodes.
+ (multiply_evolution_1, multiply_evolution): Removed.
+ (first_iteration_non_satisfying_ev_ev): Handle only affine
+ functions.
+ (follow_ssa_edge_in_rhs): Cases that were detected as
+ EXPONENTIAL_CHREC nodes are now mapped to the unknown element
+ (be it top or bottom) called chrec_top.
+ (chrec_stats, reset_chrecs_counters, dump_chrecs_stats,
+ gather_chrec_stats): Don't count the EXPONENTIAL_CHREC nodes.
+ * tree-vectorizer.c (vect_is_simple_iv_evolution,
+ vect_analyze_loop_with_symbolic_num_of_iters): Use
+ tree_is_chrec for determining whether the given node has an
+ evolution.
+
+2004-06-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR middle-end/15876
+ * tree-ssa-loop-ivopts.c (force_var_cost): Initialize DECL_RTL
+ correctly.
+
+2004-06-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * passes.c (rest_of_handle_loop2): Run loop optimizations always.
+
+2004-06-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * ra-build.c (livethrough_conflicts_bb): Check also contains_call.
+
+2004-06-09 Olga Golovanevsky <olga@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vctorizer.c
+ (vect_update_initial_conditions_of_duplicated_loop):
+ Handle general form of "init" and "step" of access function.
+ * tree-ssa-loop-manip.c (tree_duplicate_loop_to_exit_cfg):
+ The exit from loop is taken from bb previous to latch instead
+ of latch itself.
+
+2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/15881
+ * tree-scalar-evolution.c (count_ev_in_wider_type): Use
+ fold_convert instead of convert.
+ (compute_overall_effect_of_inner_loop): Likewise.
+ (chrec_is_positive): Likewise.
+ (add_to_evolution_1): Likewise.
+ (add_to_evolution): Likewise.
+ (first_iteration_non_satisfying_1): Likewise.
+ (follow_ssa_edge_in_rhs): Likewise.
+ (interpret_rhs_modify_expr): Likewise.
+ (number_of_iterations_in_loop): Likewise.
+
+2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR tree-optimization/15779
+ * tree-scalar-evolution.c (scev_initialize): Clean the nb_iterations
+ field.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Do
+ not clean nb_iterations field.
+
+2004-06-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * version.c (version_string): Update "merged" stamp.
+
+2004-05-30 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-loop-linear.c (linear_transform_loops): We don't handle sibling
+ loops, or loops with multiple exits, yet.
+ * lambda-code.c (invariant_in_loop): Check outer loops too for
+ right now.
+ (lle_to_gcc_expression): Special case the coefficient == 1 cases.
+ (lambda_loopnest_to_gcc_loopnest): Use correct test.
+
+2004-05-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+ Jeff Law <law@redhat.com>
+
+ * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
+ If the operand is for a use, then strip away the SSA_NAME, do not
+ strip away the SSA_NAME for a set. Never call release_ssa_name.
+ (mark_def_sites): Appropriately pass additional argument to
+ prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
+ then set the VDEF_RESULT to the VDEF_OP.
+ (set_def_block): Strip away any SSA_NAME to get to the real
+ underlying variable.
+ (ssa_mark_def_sites): Prevent set_def_block from doing so.
+
+ * tree-ssa-loop.c (mark_defs_for_rewrite): Record defined ssa names.
+ (duplicate_blocks): Use rewrite_ssa_into_ssa.
+ (pass_ch): Remove TODO_rename_vars.
+
+2004-05-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * opts.c (decode_options): Enable flag_scalar_evolutions by default.
+
+2004-05-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * fold-const.c (fold_widened_comparison,
+ fold_sign_changed_comparison): New.
+ (fold): Use them.
+ * tree-flow.h (struct tree_niter_desc): New field additional_info.
+ * tree-ssa-loop-niter.c (simplify_using_outer_evolutions): Do not
+ rewrite expressions in-place.
+ (tree_simplify_using_condition, simplify_using_initial_conditions):
+ New functions.
+ (number_of_iterations_exit): Use simplify_using_initial_conditions.
+ (struct nb_iter_bound): New field additional.
+ (record_estimate, estimate_numbers_of_iterations_loop): Initialize
+ field additional.
+ (upper_bound_in_type, lower_bound_in_type): Export. Handle
+ unsigned->signed conversion correctly.
+ (can_count_iv_in_wider_type): Pass the additional info to
+ can_count_iv_in_wider_type_bound.
+ (can_count_iv_in_wider_type_bound): Use the additional info.
+ * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
+ * config/i386/i386.c (legitimate_constant_p): Do not allow
+ integer - symbol.
+
+2004-05-29 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * lambda-code.c: Spell check.
+ * lambda-trans.c: Same.
+ * tree-chrec.c: Same.
+ * tree-dg.c: Same.
+ * tree-loop-linear.c: Same.
+ * tree-ssa-loop-im.c: Same.
+ * tree-ssa-loop-ivcanon.c: Same.
+ * tree-ssa-loop-ivopts.c: Same.
+ * tree-ssa-loop-manip.c: Same.
+ * tree-ssa-loop.c: Same.
+ * tree-vectorizer.c: Same.
+
+2004-05-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-niter.c (number_of_iterations_cond): Record correct
+ assumptions.
+
+2004-05-28 Dale Johannesen <dalej@apple.com>
+
+ * loop-invariant.c (check_maybe_invariant): Disallow hoisting CALLs.
+
+2004-05-27 Sebastian Pop <pop@cri.ensmp.fr>
+
+ Merge from mainline (lno-merge-20040526).
+ * tree-scalar-evolution.c (draw_tree_cfg): Removed.
+ * tree-into-ssa.c: Didn't merged
+ http://gcc.gnu.org/ml/gcc-patches/2004-05/msg01231.html
+
+2004-05-25 Sebastian Pop <pop@cri.ensmp.fr>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-scalar-evolution.c (first_iteration_non_satisfying_1):
+ Include the evolution of the non varying chrec in other_evs.
+ (number_of_iterations_in_loop): Don't instantiate the chrecs
+ before the computation of loop counts.
+
+2004-05-25 Olga Golovanevsky <olga@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_transform_loop_bound): Advance IVs
+ by correct amount.
+ (vect_transform_loop, vect_build_symbl_bound): Use shifts
+ instead of division/multiplication to advance IVs.
+
+2004-05-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (number_of_iterations_in_loop):
+ Do not produce COND_EXPRs.
+
+2004-05-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (resolve_mixers): New function.
+ (already_instantiated): Type changed to bitmap.
+ (scev_initialize, scev_finalize): Reflect the change.
+ (analyze_scalar_evolution_in_loop): Use resolve_mixers.
+ (instantiate_parameters_1): Add possibility to just resolve mixers.
+ Fold the results.
+ (number_of_iterations_in_loop): Use number_of_iterations_exit.
+ * tree-ssa-loop-niter.c (simplify_using_outer_evolutions): New
+ function.
+ (number_of_iterations_exit): Use it.
+
+2004-05-24 Dale Johannesen <dalej@apple.com>
+ * loop-invariant.c (find_defs): Add DF_EQUIV_NOTES.
+
+2004-05-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (tree-ssa-loop-manip.o): Add cfglayout.h dependency.
+ * tree-flow.h (collect_defs, rename_variables_in_bb, rename_op,
+ allocate_new_names, free_new_names): Declaration removed.
+ (tree_duplicate_loop_to_exit): Declare.
+ * tree-ssa-loop-manip.c: Include cfglayout.h.
+ (collect_defs, rename_variables_in_bb, rename_op,
+ allocate_new_names, free_new_names): Made static.
+ (tdlte_rename_variables_in_loop, tdlte_copy_phi_nodes,
+ tree_duplicate_loop_to_exit_cfg, tree_duplicate_loop_to_exit):
+ Moved from tree-vectorizer.c.
+ * tree-vectorizer.c (vect_duplicate_loopm vect_copy_phi_nodes,
+ vect_rename_variables_in_loop, vect_tree_duplicate_loop): Moved
+ to tree-ssa-loop-manip.c and renamed.
+
+2004-05-20 Olga Golovanevsky <olga@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_transform_loop): New parameter;
+ if bound is unknown, duplicates loop before vectorizing.
+ (vect_transfrom_loop_bound): New parameter; now deal with
+ symbolic loop bound.
+ (vect_analyze_loop_with_symbolic_num_of_iters)
+ (vect_duplicate_loop, vect_copy_phi_nodes)
+ (vect_rename_variables_in_loop, vect_tree_split_edge)
+ (vect_update_initial_conditions_of_duplicated_loop):
+ (vect_tree_duplicate_loop, vect_build_symbl_bound): New functions.
+ (new_loop_vec_info): Initialize the new field loop_vec_info:
+ symb_numb_of_iters.
+ * tree-vectorizer.h (loop_vec_info: symb_numb_of_iters): Added.
+ (LOOP_VINFO_SYMB_NUM_OF_ITERS): Added.
+ * cfgloopmanip.c (duplicate_loop): Made non-static.
+ * tree-ssa-loop-manip.c (collect_defs): Made non-static.
+ (allocate_new_names): Made non-static. Added option to allocate
+ for original loop or not.
+ (rename_op): Made non-static. Added input check.
+ (rename_variables_in_bb): Made mpm-static.
+ original loop were also renamed.
+ (free_new_names): release_ssa_name only if defs of original
+ loop were also renamed.
+ * cfgloop.h (duplicate_loop): Declare.
+ * tree-flow.h (collect_defs, allocate_new_names, rename_op)
+ (rename_variables_in_bb, free_new_names): Declare.
+
+2004-05-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (first_iteration_non_satisfying_noev_ev,
+ first_iteration_non_satisfying_ev_noev,
+ first_iteration_non_satisfying_ev_ev): Check the assumptions returned
+ by number_of_iterations_cond.
+
+2004-05-13 Devang Patel <dpatel@apple.com>
+
+ * cfgloop.c (get_loop_body_in_bfs_order): New.
+ (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT.
+ * cfgloop.h (get_loop_body_in_bfs_order): New.
+
+2004-05-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * expr.c (expand_expr_real_1): Use REF_ORIGINAL information
+ from INDIRECT_REFS.
+ * tree-flow.h (force_gimple_operand, rewrite_address_base): Declare.
+ * tree-ssa-loop-ivopts.c (force_gimple_operand): Expand.
+ (add_address_candidates): Add candidates with constant offset
+ stripped.
+ (idx_remove_ssa_names, unshare_and_remove_ssa_names,
+ rewrite_address_base): New.
+ (rewrite_use_address): Use rewrite_address_base.
+ * tree-into-ssa.c (register_new_def): Remove unused code.
+ * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
+ Handle invariants correctly.
+ * tree-cfg.c (tree_split_block): Do not modify the statements.
+ * tree.h (REF_ORIGINAL): New macro.
+
+2004-05-12 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.c (chrec_evaluate): Use the type of the chrec
+ instead of integer_type_node when folding operations.
+ (chrec_apply): Factor chrec_type calls.
+ (chrec_eval_next_init_cond): Removed.
+ (chrec_convert): Don't propagate overflows introduced by convert.
+ * tree-chrec.h (chrec_eval_next_init_cond): Removed.
+ * tree-scalar-evolution.c (first_iteration_non_satisfying_noev_ev,
+ first_iteration_non_satisfying_ev_noev,
+ first_iteration_non_satisfying_ev_ev): Use number_of_iterations_cond
+ instead of computing the loop counts.
+
+2004-05-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-invariant.c (find_invariant_insn): Handle trapping insns
+ correctly.
+
+2004-05-10 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.h (build_chrec_top_type): Disabled, return chrec_top.
+ * tree-scalar-evolution.c (first_iteration_non_satisfying_noev_ev,
+ first_iteration_non_satisfying_ev_noev): Use the type of the chrec
+ instead of integer_type_node when folding operations.
+ (number_of_iterations_to_overflow): New.
+ (first_iteration_non_satisfying_ev_ev): Implement some cases.
+ (set_nb_iterations_in_loop): Return chrec_top on overflow.
+ (follow_ssa_edge_in_rhs): Handle type conversions "a = (type) rhs".
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Convert the result of find_loop_niter_by_eval to the same type as niter
+ before comparing.
+
+2004-05-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-iv.c (determine_max_iter, shorten_into_mode,
+ iv_number_of_iterations): Handle constants correctly.
+ * rtl.h (get_mode_bounds): Declaration changed. Duplicate declaration
+ removed.
+ * stor-layout.c (get_mode_bounds): Return a constant suitable for
+ a target mode.
+
+2004-05-06 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.h (build_chrec_top_type): Check that the type has
+ min and max values before taking their values.
+
+2004-05-06 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-chrec.h (build_chrec_top_type): New.
+ * tree-chrec.c (chrec_fold_multiply_ival_cst,
+ chrec_fold_multiply_ival_ival, chrec_fold_plus_1): Use
+ build_chrec_top_type instead of returning chrec_top.
+
+ * tree-data-ref.c (dump_data_dependence_relation): Don't dump
+ direction per subscript.
+ (analyze_array): Use an extra boolean parameter for the access
+ mode: read or write.
+ (analyze_array_top, finalize_ddr_dependent): New.
+ (compute_direction_vector, set_all_subscripts_to): Removed.
+ (initialize_data_dependence_relation): The dependence relation
+ is unknown when one of the references base name is NULL_TREE.
+ (subscript_dependence_tester, build_classic_dist_vector,
+ build_classic_dir_vector, compute_affine_dependence):
+ Use finalize_ddr_dependent.
+ (build_classic_dir_vector): When one of the directions is
+ dir_star, the subscript coupling cannot deduce independence.
+ (compute_all_dependences): Renamed compute_rw_wr_ww_dependences.
+ (compute_rw_wr_ww_dependences): Don't compute read-read
+ relations. Don't compute the reversed dependence relation.
+ (find_data_references_in_loop): Use analyze_array_top when the
+ MODIFY_EXPR contains a VUSE/VDEF that is not an ARRAY_REF.
+ * tree-data-ref.h (data_reference): Add a field is_read.
+ (DR_IS_READ): New.
+ (DDR_SUBSCRIPTS_VECTOR_FINALIZE): Removed.
+ (analyze_array): Change declaration.
+ * tree-vectorizer.c (vect_analyze_data_refs): Adapt the use of
+ analyze_array to the new prototype. Pass in the read or write
+ mode.
+
+2004-04-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-niter.c: New file.
+ * Makefile.in (tree-ssa-loop-niter.o): New.
+ * cfgloop.h (struct loop): Add bounds field.
+ * df.c (df_reg_clobber_gen): Removed.
+ (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
+ Make more effective for hard regs.
+ * loop-invariant.c (check_maybe_invariant, find_defs,
+ find_invariant_insn): Handle hard regs.
+ * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_multiply,
+ chrec_fold_multiply, chrec_merge): Handle types correctly.
+ (chrec_convert): Use count_ev_in_wider_type.
+ * tree-chrec.h (count_ev_in_wider_type): Declare.
+ * tree-flow.h (struct tree_niter_desc): Moved from
+ tree-ssa-loop-ivopts.c.
+ (number_of_iterations_cond, number_of_iterations_exit,
+ loop_niter_by_eval, find_loop_niter_by_eval,
+ estimate_numbers_of_iterations, can_count_iv_in_wider_type,
+ free_numbers_of_iterations_estimates): Declare.
+ * tree-scalar-evolution.c (count_ev_in_wider_type, scev_reset,
+ simple_iv): New.
+ (number_of_iterations_in_loop): Check that the exit condition
+ is tested in every iteration.
+ * tree-scalar-evolution.h (scev_reset, simple_iv): Declare.
+ * tree-ssa-loop-ivcanon.c (MAX_ITERATIONS_TO_TRACK,
+ chain_of_csts_start, get_base_for, get_val_for,
+ loop_niter_by_eval, find_loop_niter_by_eval): Moved to
+ tree-ssa-loop-niter.c.
+ * tree-ssa-loop-ivopts.c (struct tree_niter_desc): Moved to
+ tree-flow.h.
+ (force_gimple_operand): Accept a variable for the target of
+ the assignment.
+ (create_iv, rewrite_use_nonlinear_expr,
+ rewrite_use_address, rewrite_use_compare,
+ rewrite_use_outer): Changed due to this.
+ (tree_ssa_iv_optimize_init): Call estimate_numbers_of_iterations.
+ (get_var_def): Removed.
+ (find_givs_in_stmt_scev): Use simple_iv.
+ (inverse, number_of_iterations_cond): Moved to tree-ssa-loop-niter.c.
+ (determine_number_of_iterations): Use number_of_iterations_exit.
+ (idx_find_step, find_interesting_uses_address): Use
+ can_count_iv_in_wider_type.
+ (force_var_cost): Determine the costs more precisely.
+ (tree_ssa_iv_optimize_finalize): Call
+ free_numbers_of_iterations_estimates.
+ (tree_ssa_iv_optimize_loop): Call scev_reset.
+ * varasm.c (force_const_mem): Set MEM_NOTRAP_P flag.
+ * config/rs6000/rs6000.c (rs6000_emit_move): Set MEM_NOTRAP_P flag.
+
+2004-04-27 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * lambda-code.c (build_int_cst): Moved...
+ * tree-data-ref.c (int_cst_value): Moved...
+ * tree-ssa-loop-ivopts.c (int_cst_value, build_int_cst): Moved...
+ * tree.c (int_cst_value, build_int_cst): ...here.
+ * tree.h (int_cst_value, build_int_cst): Declare.
+
+ * tree-chrec.h (is_chrec, symbolic_parameter_expr_p): Removed.
+
+ * tree-chrec.c (evolution_function_is_affine_multivariat): Check that
+ the left part is a polynomial before taking its variable.
+
+ * tree-elim-check.c (prove_truth_value): Update the use of
+ tree_is_* functions.
+ * tree-fold-const.h (tree_is_ge, tree_is_gt, tree_is_le, tree_is_lt,
+ tree_is_eq, tree_is_ne): Return true when decidable, and use a
+ parameter for returning the result.
+
+ * tree-scalar-evolution.c (types_forbid_solutions_p): Removed.
+ (first_iteration_non_satisfying_noev_noev,
+ first_iteration_non_satisfying_noev_ev,
+ first_iteration_non_satisfying_ev_noev): Update the use of
+ tree_is_* functions. Use no_evolution_in_loop_p instead of
+ evolution_function_is_constant_p. Extends the analyzer to
+ symbolic loop counts.
+ (first_iteration_non_satisfying): Factorize code.
+
+2004-04-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * config/rs6000/altivec.md: Fix merge problem.
+
+2004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Merge from tree-ssa branch (lno-merge-20040425).
+
+2004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (force_gimple_operand): Strip useless type
+ conversions.
+ (number_of_iterations_cond): Fix typo.
+ (rewrite_use_address): Fix.
+
+2004-04-23 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-loop-linear.c (linear_transform_loops): Add invariants array.
+ * lambda-code.c (gcc_tree_to_linear_expression): Change arguments
+ to include invariants array, and an int, instead of a bool.
+ Handle invariants.
+ (invariant_in_loop): New function.
+ (gcc_loop_to_lambda_loop): Add support for invariants as bounds,
+ and NE_EXPR tests.
+ (gcc_loopnest_to_lambda_loopnest): Add invariants argument,
+ init the invariants array, and pass it along to gcc_loop_to_lambda_loop.
+ (lle_to_gcc_expression): Handle invariants and simple linear offsets.
+ (lambda_loopnest_to_gcc_loopnest): Ditto.
+ Also use the right test if the step is negative.
+
+2004-04-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (instantiate_parameters_1): Handle changed
+ semantics of analyze_scalar_evolution. Split off from ...
+ (instantiate_parameters): ... here.
+
+2004-04-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (analyze_scalar_evolution_1): Keep
+ loop invariants in symbolic form. Use
+ compute_scalar_evolution_in_loop for expressions defined in subloops.
+ (chrec_contains_symbols_defined_in_loop): Check for non-strict
+ nestedness.
+ (compute_scalar_evolution_after_loop): Renamed back to
+ compute_overall_effect_of_inner_loop.
+ (follow_ssa_edge_inner_loop_phi, interpret_loop_phi):
+ Changed due to the renaming.
+ (get_scalar_evolution): Return chrec_not_analyzed_yet for complicated
+ expressions.
+ (compute_scalar_evolution_in_loop): Compute the evolution of the
+ expression returned by compute_overall_effect_of_inner_loop.
+
+2004-04-22 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-elim-check.c (prove_truth_value_gt, prove_truth_value_lt,
+ prove_truth_value_le, prove_truth_value_ge, prove_truth_value_eq,
+ prove_truth_value_ne): Resurrect.
+ (prove_truth_value_symbolic): New. Disabled for the moment.
+ (prove_truth_value): Use it when this function fails on unknown.
+ (try_eliminate_check): Factorize the code.
+ * tree-scalar-evolution.c (compute_scalar_evolution_after_loop):
+ Fix the description comment.
+
+2004-04-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-flow.h (linear_transform_loops): Prototype changed.
+ * tree-vectorizer.h (vectorize_loops): Ditto.
+ * tree-loop-linear.c (linear_transform_loops): Remove unused
+ argument.
+ * tree-vectorizer.c (vectorize_loops): Ditto.
+ * tree-scalar-evolution.c (scalar_evolution_info): Type changed
+ to hash table.
+ (new_scev_info_str): Use xmalloc instead of ggc_alloc.
+ (hash_scev_info, eq_scev_info, del_scev_info,
+ gather_stats_on_scev_database_1): New functions.
+ (find_var_scev_info, dump_chrecs_stats, gather_stats_on_scev_database,
+ scev_initialize, scev_finalize): Work with hash table instead of a
+ list.
+ (scev_elim_checks, scev_vectorize): Do not pass unused arguments to
+ functions.
+
+
+2004-04-21 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-chrec.c (chrec_apply): Fail on chrec_top when the chrec
+ contains symbols defined in the inner loop. Otherwise perform
+ the computation with symbols.
+ (no_evolution_in_loop_p): Same. Moved from here...
+ * tree-chrec.h (no_evolution_in_loop_p): ...there. Define it inline.
+ (chrec_contains_symbols_defined_in_loop): Declare.
+ * tree-scalar-evolution.c (nb_set_scev, nb_get_scev): New counters.
+ (set_scalar_evolution, get_scalar_evolution): Count the number of calls.
+ (chrec_contains_symbols_defined_in_loop): Defined.
+ (compute_scalar_evolution_after_loop, first_iteration_non_satisfying_1,
+ analyze_scalar_evolution_in_loop): Initialize boolean values.
+ (dump_chrecs_stats): Dump the get/set counters.
+
+2004-04-21 Sebastian Pop <sebastian.pop@ensmp.fr>
+ Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (compute_scalar_evolution_in_loop):
+ Use superloop_at_depth.
+ (analyze_scalar_evolution): Keep a symbolic form instead of
+ chrec_top.
+
+2004-04-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (instantiate_parameters): Handle casts
+ correctly.
+ * tree-ssa-loop-manip.c (add_exit_phis_edge): Do not add unnecessary
+ phi nodes.
+ * tree-ssa-loop.c (tree_ssa_loop_opt): Do not call create_preheaders.
+
+2004-04-20 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-scalar-evolution.c (scev_info_str, new_scev_info_str,
+ find_var_scev_info, set_scalar_evolution, get_scalar_evolution):
+ Store a single scalar evolution per definition.
+ (compute_overall_effect_of_inner_loop): Renamed
+ compute_scalar_evolution_after_loop.
+ (compute_scalar_evolution_in_loop): New.
+ (analyze_scalar_evolution): Use the helper function.
+ (analyze_scalar_evolution_1): Helper recursive function.
+ Avoid multiple set/get in the scev database when recursively called.
+
+2004-04-20 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_create_index_for_array_ref): Use create_iv
+ instead of creating iv's from scratch.
+ (vect_transform_loop_bound): Likewise.
+
+2004-04-20 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-chrec.c (chrec_fold_multiply_ival_cst,
+ chrec_fold_multiply_ival_ival, chrec_fold_plus_1): When the fold
+ resulted in an overflow, conservatively answer chrec_top.
+
+2004-04-20 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-chrec.c (chrec_fold_multiply_ival_cst): Compute the min
+ and max on the multiplication result.
+ (chrec_fold_negate): Removed.
+ * tree-chrec.h (chrec_fold_negate): Removed.
+ * tree-scalar-evolution.c (interpret_rhs_modify_expr):
+ Use chrec_fold_minus instead of chrec_fold_negate.
+
+2004-04-20 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-chrec.h (evolution_function_is_constant_p): Be careful.
+ * tree-data-ref.c (analyze_siv_subscript_affine_affine): Renamed
+ analyze_subscript_affine_affine. Exchange the CHREC_VARIABLEs for
+ overlaps.
+ (analyze_miv_subscript): Use directly analyze_subscript_affine_affine,
+ and avoid the call to evolution_function_is_constant_p.
+
+2004-04-20 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-chrec.c (chrec_apply): Fail on chrec_top for symbolic chrecs.
+ (no_evolution_in_loop_p): Return false when non decidable, use
+ a parameter for returning the result.
+ * tree-chrec.h (no_evolution_in_loop_p): Modify its declaration.
+ * tree-scalar-evolution.c (add_to_evolution, multiply_evolution):
+ Avoid the use of no_evolution_in_loop_p.
+ (add_to_evolution_1, multiply_evolution_1): New.
+ (multiply_by_expr_the_loop_evolution, add_expr_to_loop_evolution,
+ build_exponential_evolution_in_loop,
+ build_polynomial_evolution_in_loop): Removed.
+ (first_iteration_non_satisfying_1, analyze_scalar_evolution_in_loop):
+ Modify the use of no_evolution_in_loop_p.
+ * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev,
+ find_givs_in_stmt_scev): Check that the result of scev analysis
+ does not contain symbols.
+
+2004-04-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p,
+ contains_abnormal_ssa_name_p): New functions.
+ (find_bivs, find_bivs, find_givs_in_stmt_scev):
+ Handle ssa names occuring in abnormal phis.
+ * tree-ssa-loop-im.c (movement_possibility): Ditto.
+
+2004-04-18 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (create_index_for_array_ref): Remove code under
+ #ifdef POINTER_ARITHMETIC.
+ (vect_create_data_ref): Likewise. Support array addressing
+ instead of pointer arithmetic in vectorized code.
+
+2004-04-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Merge from tree-ssa branch:
+
+ 2004-03-25 Diego Novillo <dnovillo@redhat.com>
+ * tree-ssa-alias.c (struct alias_info): Change type of field
+ 'num_references' to varray_type. Update all users.
+
+2004-04-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-into-ssa.c (struct mark_def_sites_global_data): Change type of
+ names_to_rename to sbitmap.
+ (insert_phi_nodes_for, insert_phi_nodes_1, insert_phi_nodes):
+ Allocate worklist globally.
+ (ssa_mark_def_sites_initialize_block, ssa_mark_phi_uses,
+ ssa_mark_def_sites, ssa_rewrite_initialize_block,
+ ssa_rewrite_phi_arguments, ssa_rewrite_stmt, rewrite_ssa_into_ssa):
+ Use sbitmaps instead of bitmaps.
+
+2004-04-15 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-scalar-evolution.c (instantiate_parameters): Don't keep
+ symbols after instantiation. Fully instantiate parameters,
+ or fail on chrec_top.
+
+2004-04-15 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-fold-const.h (chrec_merge_types): Move it...
+ * tree-chrec.c (multiply_int, divide_int, add_int, substract_int,
+ integer_divides_p, lcm, gcd, update_initial_condition_to_origin,
+ remove_initial_condition, ): Removed.
+ (evolution_function_in_loop_num): Renamed into
+ hide_evolution_in_other_loops_than_loop.
+ (hide_evolution_in_loop, hide_evolution_in_other_loops_than_loop): New.
+ (chrec_merge_types): ... here.
+ (chrec_merge): Answer chrec_top on EXPONENTIAL_CHREC.
+ (ziv_subscript_p, siv_subscript_p, analyze_ziv_subscript,
+ analyze_siv_subscript, analyze_siv_subscript_cst_affine,
+ analyze_siv_subscript_affine_cst, analyze_siv_subscript_affine_affine,
+ chrec_steps_divide_constant_p, analyze_miv_subscript,
+ analyze_overlapping_iterations): Moved from here...
+ * tree-chrec.h (evolution_function_in_loop_num): Rename declaration.
+ (hide_evolution_in_other_loops_than_loop, hide_evolution_in_loop): New.
+ (analyze_overlapping_iterations): No longer extern.
+
+ * tree-data-ref.c (ziv_subscript_p, siv_subscript_p,
+ analyze_ziv_subscript,
+ analyze_siv_subscript, analyze_siv_subscript_cst_affine,
+ analyze_siv_subscript_affine_cst, analyze_siv_subscript_affine_affine,
+ chrec_steps_divide_constant_p, analyze_miv_subscript,
+ analyze_overlapping_iterations): ... there.
+ (initialize_data_dependence_relation,
+ access_functions_are_affine_or_constant_p): Moved down.
+ (compute_all_dependences): Moved down. Now is static.
+ (build_classic_dir_vector): New.
+ (build_classic_dist_vector):
+ (find_data_references): Renamed find_data_references_in_loop.
+ Now is static.
+ (compute_data_dependences_for_loop): New.
+ (analyze_all_data_dependences): Use compute_data_dependences_for_loop.
+ * tree-data-ref.h (dd_info_available): Don't declare it extern.
+
+ * tree-scalar-evolution.c (dd_info_available): Declare static.
+ (select_outer_and_current_evolutions): Removed.
+ (stats_*): Move the static variables in the chrec_stats structure.
+ (chrec_stats): New structure.
+ (first_iteration_non_satisfying_1): In the multivariate case,
+ don't forget that the outer loops can change the number of iterations.
+ (cannot_analyze_loop_nb_iterations_yet): Removed.
+ (follow_ssa_edge_inner_loop_phi): Refine the case where the
+ evolution of the inner loop is symbolic.
+ (number_of_iterations_in_loop): Factor the end of the cases.
+
+ * tree-dg.c (classic_dist, classic_dir): Declared static.
+ (dg_delete_graph): Delete the classic_dist and classic_dir.
+ (dg_create_graph): Adapt to use compute_data_dependences_for_loop.
+ (gate_ddg, gate_delete_ddg, pass_ddg, pass_delete_ddg): Moved in
+ tree-scalar-evolution.c.
+ * tree-dg.h (dg_create_graph): Pass in struct loops.
+
+2004-04-15 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-data-ref.h (struct data_reference): New field "aux".
+ * tree-vectorizer.h (aligned_access_p, unknown_alignment_for_access_p):
+ New functions.
+ (DR_MISLAIGNMENT): New macro, for accessing the new 'aux' field in
+ data_reference.
+ * tree-vectorizer.c: (vect_analyze_data_refs_alignment): New function.
+ (vect_compute_data_refs_alignment): New function.
+ (vect_compute_data_ref_alignment): New function.
+ (vect_enhance_data_refs_alignment): New function.
+ (vect_force_dr_alignment_p): New function.
+ (vect_align_data_ref): Use new functions aligned_access_p and
+ vect_force_dr_alignment_p.
+ (vect_analyze_data_ref_access): Alignment related checks moved to new
+ functions that deal with alignment.
+ (vect_analyze_data_refs): Likewise.
+ (vect_analyze_loop): Call vect_analyze_data_refs_alignment.
+
+2004-04-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-invariant.c (may_assign_reg_p): Prevent unused parameter
+ warning.
+ * tree-ssa-loop-manip.c (find_use_block, find_use_blocks,
+ defined_inside_loop_p): Removed.
+ (add_exit_phis_var, add_exit_phis, rewrite_into_loop_closed_ssa):
+ Make more efficient.
+ (find_uses_to_rename_use, find_uses_to_rename_stmt,
+ find_uses_to_rename): New functions.
+
+2004-04-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-flow.h (compute_global_livein): Declare.
+ * tree-into-ssa.c (struct def_blocks_d): New field
+ phi_blocks.
+ (compute_global_livein): Export.
+ (set_def_block): Record phi_blocks.
+ (get_def_blocks_for): Allocate phi_blocks.
+ (mark_def_sites): Changed due to set_def_block change.
+ (ssa_mark_def_sites_initialize_block, ssa_mark_def_sites):
+ Make virtual defs be kills.
+ (insert_phi_nodes_for): Handle old phi nodes more efficiently.
+ (def_blocks_free): XFREE the bitmaps.
+ * tree-ssa-loop-manip.c (add_exit_phis_use, add_exit_phis_stmt):
+ Removed.
+ (get_loops_exits): Return bitmap.
+ (add_exit_phis_var, find_use_block, find_use_blocks,
+ defined_inside_loop_p): New functions.
+ (add_exit_phis): Use add_exit_phis_var.
+ (rewrite_into_loop_closed_ssa): Reorganize.
+ * tree-ssa-loop.c (pass_loop): Add garbage collection.
+
+2004-04-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-chrec.c (chrec_convert): Handle extending correctly.
+ * tree-scalar-evolution.c (set_scev_keep_symbolic): Removed.
+ (set_scalar_evolution): Do not use it.
+ (get_scalar_evolution): Only handle ssa names and constants.
+ (interpret_loop_phi): When interpreting subloop, compute the
+ evolution in outer loop afterwards.
+ (analyze_scalar_evolution_in_loop): New.
+ * tree-scalar-evolution.h (analyze_scalar_evolution_in_loop): Declare.
+ * tree-ssa-loop-ivopts.c: Include tree-fold-const.h, tree-chrec.h
+ and tree-scalar-evolution.h.
+ (tree_ssa_iv_optimize_init): Call scev_initialize.
+ (determine_biv_step, find_bivs, mark_bivs,
+ find_givs_in_stmt): Use scev analyzer.
+ (find_givs_in_stmt_scev): New function.
+ (find_induction_variables): Remove TODO comment.
+ (force_var_cost): Test for TREE_INVARIANT, not for
+ is_gimple_min_invariant.
+ (find_optimal_iv_set): Update comment.
+ (tree_ssa_iv_optimize_finalize): Call scev_finalize.
+
+2004-04-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa.c (raise_value): Removed.
+ (get_eq_name, check_phi_redundancy): New.
+ (kill_redundant_phi_nodes): Use standard algorithm.
+
+2004-04-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-manip.c (allocate_new_names): Use duplicate_ssa_name.
+ Preserve SSA_NAME_OCCURS_IN_ABNORMAL_PHI flag.
+
+2004-04-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda-code.c (lambda_loopnest_transform): Add comments.
+
+2004-04-09 David Edelsohn <edelsohn@gnu.org>
+
+ Backport from mainline:
+ * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
+ 32-bit builds when defaulting to 32-bit.
+
+2004-04-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-iv.c (iv_number_of_iterations): Sign extend the constant value
+ appropriately for the target mode.
+ * tree-fold-const.c (tree_fold_gcd): Make more efficient.
+ * tree-ssa-loop-manip.c (add_exit_phis_use): Do not add unnecessary
+ phis.
+ (rewrite_into_loop_closed_ssa): Fix comment.
+
+2004-04-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfgrtl.c (purge_dead_edges): Clean the EDGE_ABNORMAL_CALL flags.
+ * loop-iv.c (iv_number_of_iterations): Handle the case when we prove
+ that the loop does not roll.
+ * opts.c (decode_options): Enable -floop-optimize2 and
+ -ftree-loop-optimize by default.
+ * tree-cfg.c (factored_computed_goto_label,
+ factored_computed_goto): Removed.
+ (factor_computed_gotos): Do not record them.
+ (disband_implicit_edges): Do not unfactor computed jumps.
+ * tree-ssa-loop-ivopts.c (force_gimple_operand): Give correct types
+ to temporary variables.
+ (idx_force_simple, create_iv, rewrite_use_nonlinear_expr,
+ rewrite_use_address, rewrite_use_compare, rewrite_use_outer):
+ Changed due to force_gimple_operand change.
+ (find_bivs): Handle ill-typed assignments correctly.
+
+2004-04-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * passes.c (rest_of_compilation): Enable rest_of_handle_loop2 by
+ flag_loop_optimize2.
+ * tree-scalar-evolution.c (scev_initialize): Find loop exits.
+
+2004-04-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (rewrite_use_outer): Do not remove ssa names
+ prematurely.
+
+2004-04-01 Mostafa Hagog <mustafa@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * config/rs6000/rs6000.md ("*ctrsi_internal1", "*ctrsi_internal2",
+ "*ctrdi_internal1", "*ctrdi_internal2", "*ctrsi_internal3",
+ "*ctrsi_internal4", "*ctrdi_internal3", "*ctrdi_internal4",
+ "*ctrsi_internal5", "*ctrsi_internal6", "*ctrdi_internal5",
+ "*ctrdi_internal6"): Replace register_operand with nonimmediate_operand
+
+2004-03-31 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-into-ssa.c (ssa_rewrite_initialize_block): Update
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
+ (ssa_rewrite_phi_arguments): Ditto.
+ * tree-ssa.c (kill_redundant_phi_nodes): Prevent replacing
+ ssa names that occur in abnormal phi nodes.
+ * tree-ssa-loop-ivopts.c (get_var_def): Handle non-invariant
+ non-ssa name operands.
+ * java/decl.c (java_init_decl_processing): Initialize
+ long_integer_type_node.
+
+2004-03-31 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (idx_find_step): Prevent misscompilation
+ in case the index overflows.
+
+2004-03-31 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>,
+ Dorit Naishlos <DORIT@il.ibm.com>
+
+ * tree-scalar-evolution.c (dump_chrecs_stats): Prevent format warning.
+
+2004-03-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * lambda-code.c (gcc_loop_to_lambda_loop): Changed due to changes in
+ scev.
+ * tree-data-ref.c (analyze_array_indexes, analyze_array): Ditto.
+ * tree-elim-check.c (try_eliminate_check): Ditto.
+ * tree-vectorizer.c (vect_analyze_scalar_cycles): Ditto.
+ * tree-chrec.c (chrec_fold_plus_1): Handle exponential + peeled chrec
+ correctly. Use correct types.
+ (chrec_fold_negate): New.
+ (chrec_merge): Short-circuit the case when the merged values are
+ identical.
+ (no_evolution_in_loop_p): Handle chrec_top correctly.
+ (chrec_convert): Handle polynomial and exponential chrecs corectly.
+ (chrec_type): Use TREE_TYPE.
+ * tree-chrec.h (chrec_fold_negate): Declare.
+ * tree-phinodes.c (create_phi_node): Do not initialize PHI_MARKED.
+ * tree-scalar-evolution.c: Handle evolutions analysed from different
+ loops correctly. Do not use PHI_MARKED. Use correct types.
+ * tree-scalar-evolution.h (analyze_scalar_evolution,
+ instantiate_parameters): Declaration changed.
+ (struct scev_info_str): Moved to tree-scalar-evolution.c.
+ (MI_VAR, MI_INNER_LOOPS_CHREC, MI_OUTER_LOOPS_CHREC): Removed.
+ (new_scev_info_str): Moved to tree-scalar-evolution.c.
+ * tree-ssa-loop-manip.c (add_exit_phis_use): Just add exit phis for
+ superloops of the loop containing the definition.
+ * tree.h (PHI_MARKED): Removed.
+ (tree_phi_node): Field 'marked' removed.
+
+2004-03-30 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-chrec.c (chrec_contains_symbols): Factorize conditions,
+ chrec_not_analyzed_yet is a NULL_TREE.
+ * tree-chrec.h (prove_truth_value_{lt, le, ge, ne, gt, eq}.c):
+ Removed.
+ (evolution_function_is_multivariate,
+ evolution_function_is_peeled_affine_p): New.
+ * tree-data-ref.c (analyze_all_data_dependences): Dump some
+ statistics on the data dependences.
+ * tree-elim-check.c (not_code, prove_truth_value): New.
+ (try_eliminate_check): Use prove_truth_value.
+ * tree-fold-const.h (tree_is_ne): New.
+ * tree-scalar-evolution.c (types_forbid_solutions_p,
+ first_iteration_non_satisfying_noev_noev,
+ first_iteration_non_satisfying_noev_ev,
+ first_iteration_non_satisfying_ev_noev,
+ first_iteration_non_satisfying_ev_ev,
+ first_iteration_non_satisfying_1,
+ first_iteration_non_satisfying,
+ gather_stats_on_scev_database): New functions.
+ (nb_iterations_less, nb_iterations_eq, nb_iterations_ne): Removed.
+ (set_nb_iterations_in_loop): Be more careful on overflow.
+ (number_of_iterations_in_loop): Use first_iteration_non_satisfying.
+ * tree-scalar-evolution.h (first_iteration_non_satisfying,
+ gather_stats_on_scev_database): Declared.
+
+2004-03-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (iv_value): Use correct type.
+ (may_eliminate_iv): Add a fixme comment.
+
+2004-03-29 Devang Patel <dpatel@apple.com>
+
+ * tree-flow.h (tree_ssa_loop_version): Add new parameter, basic_block *.
+ (update_lv_condition): New.
+ * tree-ssa-loop-manip.c (copy_phi_nodes): nreverse copied phi nodes list
+ to ensure that phi nodes remain in same order.
+ (lv_update_pending_stmts): Do not nreverse pending list.
+ (lv_adjust_loop_header_phi): Walk two phi nodes list in parallel.
+ (tree_ssa_loop_version): Now condition_bb is input parameter.
+ (update_lv_condition): New.
+ (test_loop_versioning): Use update_lv_condition.
+ * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update function
+ tree_ssa_loop_version () call by adding 4th parameter.
+
+2004-03-29 Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
+
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Fix unused vars warning with -disable-checking.
+ * df.c (df_reg_def_chain_create, df_reg_use_chain_create): Ditto.
+
+2004-03-27 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
+ * tree-flow-inline.h (bsi_after_labels): New.
+ * tree-flow.h (struct ssa_name_ann_d): Add need_phi_state field.
+ (bsi_after_labels, rewrite_ssa_into_ssa, duplicate_ssa_name,
+ tree_ssa_dce_no_cfg_changes, rewrite_into_loop_closed_ssa,
+ verify_loop_closed_ssa, compute_phi_arg_on_exit): Declare.
+ (tree_loop_optimizer_init): Declaration changed.
+ * tree-into-ssa.c (struct mark_def_sites_global_data): Add
+ names_to_rename and ssa_names fields.
+ (insert_phi_nodes, get_value_for, set_value_for, set_def_block,
+ set_livein_block, insert_phi_nodes_1, insert_phi_nodes_for,
+ register_new_def, get_reaching_def, rewrite_into_ssa): Handle
+ rewriting of ssa names.
+ (get_phi_state, set_phi_state, ssa_mark_def_sites_initialize_block,
+ ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name,
+ ssa_rewrite_initialize_block, ssa_rewrite_phi_arguments,
+ ssa_rewrite_finalize_block, ssa_rewrite_stmt, rewrite_ssa_into_ssa):
+ New functions.
+ * tree-scalar-evolution.c (scev_initialize): Changed due to
+ tree_loop_optimizer_init change.
+ * tree-ssa-dce.c (perform_tree_ssa_dce, perform_tree_ssa_dce,
+ tree_ssa_cd_dce): Handle no cfg changes mode.
+ (tree_ssa_dce_no_cfg_changes): Resurrect.
+ * tree-ssa-loop-im.c (move_computations): Preserve loop closed ssa.
+ * tree-ssa-loop-ivopts.c (struct version_info): Field outermost_usage
+ removed.
+ (update_outermost_usage, find_outermost_usage): Removed.
+ (ip_normal_pos): Fix.
+ (tree_ssa_iv_optimize_init): Do not call find_outermost_usage.
+ (find_interesting_uses_stmt): Use loop closed ssa form.
+ (find_interesting_uses_outside): New.
+ (find_interesting_uses): Use it.
+ (determine_iv_cost): Prefer IP_NORMAL to IP_END.
+ (split_loop_exit_edge, protect_loop_closed_ssa_form_use,
+ protect_loop_closed_ssa_form, compute_phi_arg_on_exit): New functions.
+ (rewrite_use_outer): Preserve loop closed ssa form.
+ (tree_ssa_iv_optimize): Verify loop closed ssa form.
+ * tree-ssa-loop-manip.c (mfb_redirect_exit_edges): Removed.
+ (free_new_names): Free old ssa names.
+ (extend_exit_phi_nodes, add_exit_phis_edge,
+ add_exit_phis_use, add_exit_phis_stmt, add_exit_phis,
+ get_loops_exits, rewrite_into_loop_closed_ssa,
+ check_loop_closed_ssa_use, check_loop_closed_ssa_stmt,
+ verify_loop_closed_ssa): New functions.
+ (tree_duplicate_loop_to_header_edge): Use loop closed ssa form.
+ (tree_ssa_loop_version): Handle irreducible loops correctly.
+ * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
+ form.
+ (tree_ssa_loop_opt, copy_loop_headers): Changed due to
+ tree_loop_optimizer_init change.
+
+2004-03-25 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-data-ref.c (subscript_dependence_tester): Removed.
+ (build_classic_dist_vector): Implement the subscript tester:
+ test for different distances carried by the same loop.
+
+2004-03-23 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-cfg.c (print_loop): Modify dump formatting.
+ (debug_loop_ir): Renamed tree_debug_loops.
+ (tree_debug_loop): New.
+ * tree-chrec.c: Restructure for handling more carefully types.
+ * tree-chre.h: Same.
+ * tree-fold-const.h: Same.
+ * tree-fold-const.c: Same.
+ * tree-scalar-evolution.c: Same.
+ * tree-scalar-evolution.h: Same.
+ * tree-data-ref.c (dump_data_dependence_relation): Remove the
+ dump of the base_name because it produces too many conflicts in
+ the diffs of the testsuite.
+ (compute_all_dependences): Use pointers to the dependence_relations varray.
+ (int_cst_value, build_classic_dist_vector): New.
+ (find_data_references): Use pointers to datarefs varray.
+ (analyze_all_data_dependences): Compute the classic distances.
+ * tree-data-ref.h: Declare functions.
+ * tree-dg.c (dg_create_graph): Update the uses of the data-ref functions.
+ * tree-flow.h (debug_loop_ir): Renamed to tree_debug_loops.
+ (tree_debug_loop): Declare.
+
+2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-flow.h (tree_ssa_dce_no_cfg_changes): Declaration removed.
+ * tree-ssa-dce.c (remove_dead_stmt): Invalidate dominators if we
+ thread the edge.
+ (tree_ssa_dce_no_cfg_changes): Removed.
+ (perform_tree_ssa_dce, tree_ssa_dce, perform_tree_ssa_dce): Remove
+ no cfg changes mode.
+ * tree-ssa-loop-ivopts.c (force_gimple_operand): Handle overflowed
+ constants.
+ (find_interesting_uses_outer_or_nonlin): New.
+ (find_interesting_uses_op, find_interesting_uses_outer): Use it.
+ (find_interesting_uses_cond, idx_record_use,
+ find_interesting_uses_stmt): Changed due to find_interesting_uses_op
+ change.
+ (create_new_iv, remove_statement, rewrite_use_nonlinear_expr,
+ rewrite_use_outer, tree_ssa_iv_optimize): Handle direct removal of
+ unused ivs.
+ (remove_unused_ivs): New.
+ (tree_ssa_iv_optimize_loop): Call it.
+
+2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (SCEV_H): New.
+ (tree-ssa-loop-ivcanon.o, tree-ssa-loop-ivopts.o,
+ tree-scalar-evolution.o, tree-data-ref.o, tree-dg.o,
+ tree-elim-check.o, tree-vectorizer.o, tree-loop-linear.o,
+ lambda-code.o): Use it.
+ * tree-chrec.h (build_interval_chrec, build_polynomial_chrec,
+ build_exponential_chrec, build_peeled_chrec): Give a type to the
+ chrec node.
+ * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Preserve correct
+ type.
+ (analyze_evolution_in_loop): Fix test for edges from inside the loop.
+ (scev_initialize): New.
+ (scev_init): Use it.
+ (scev_finalize): New.
+ (scev_done): Use it.
+ * tree-flow-inline.h (loop_of_stmt): Handle initialization statements
+ without crash.
+ * tree-scalar-evolution.h (scev_initialize, scev_finalize): Declare.
+
+2004-03-23 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: (vect_align_data_ref): Check for DECL_ALIGN
+ instead of TYPE_ALIGN. Check for DECL_EXTERNAL.
+ (vect_analyze_data_refs): Check for DECL_EXTERNAL.
+
+ Add documentation for functions.
+
+2004-03-22 Dale Johannesen <dalej@apple.com>
+
+ * Makefile.in (OBJS-common): Remove duplicate loop-iv.o.
+
+2004-03-22 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c: Avoid usage of global variables.
+
+2004-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-unswitch.o: New file.
+ * Makefile.in (tree-ssa-loop-unswitch.o): Add.
+ (tree-ssa-loop-im.o): Add flags.h dependency.
+ * flags.h (flag_unswitch_loops): Declaration moved from ...
+ * toplev.h (flag_unswitch_loops): ... here.
+ * tree-flow.h (tree_ssa_loop_version): Declaration changed.
+ (tree_ssa_unswitch_loops, estimate_loop_size): Declare.
+ * tree-ssa-loop-im.c: Include flags.h.
+ (movement_possibility, stmt_cost, move_computations_stmt):
+ Handle unswitchable conditions.
+ * tree-ssa-loop-ivcanon.c (estimate_loop_size): Export.
+ * tree-ssa-loop-ivopts.c (find_interesting_uses_cond): Handle
+ if (0) and if (1).
+ * tree-ssa-loop-manip.c (tree_ssa_loop_version): Return the newly
+ created loop.
+ * tree-ssa-loop.c (tree_ssa_loop_opt): Call tree_ssa_unswitch_loops.
+
+2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Merge from tree-ssa branch (lno-merge-20040321).
+
+2004-03-20 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: (vect_init_vector): New function.
+ (vect_get_vec_def_for_operand): Support loop invariant uses.
+ (vect_is_simple_use): Likewise.
+ (vect_mark_stmts_to_be_vectorized): Likewise.
+ (vect_analyze_scalar_cycles): Redundant check removed.
+
+ (vect_analyze_operations): Don't fail for vdefs that have uses
+ outside the loop.
+
+ (vect_stmt_relevant_p): A call to get_stmt_operands removed (already
+ performed at new_loop_vec_info).
+ (vect_mark_stmts_to_be_vectorized): Likewise.
+
+ (need_imm_uses_for): New Function.
+ (vectorize_loops): Add call to compute_immediate_uses and free_df.
+
+2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-chrec.c (chrec_fold_multiply_ival_cst): Handle negative
+ constants correctly.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Enable use of scev.
+
+2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR optimization/14658
+ * loop-invariant.c (move_invariant_reg): Handle assignments
+ with nontrivial lhs correctly.
+
+2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * df.c (df_reg_def_chain_create, df_reg_use_chain_create): Do not clean
+ up the old information here.
+ (df_reg_def_chain_clean, df_reg_use_chain_clean): New.
+ (df_analyse_subcfg): Call them.
+
+2003-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-flow.h (loop_commit_inserts): Declare.
+ * tree-ssa-loop-im.c (commit_inserts): Rename to...
+ (loop_commit_inserts): ... this.
+ * move_computations (move_computations, determine_lsm): Use
+ loop_commit_inserts.
+ * tree-ssa-loop-ivopts.c (AVG_LOOP_NITER): New macro.
+ (struct iv): New field use_id.
+ (struct version_info): New field preserve_biv.
+ (alloc_iv, record_use, free_loop_data): Initialize new fields.
+ (enum use_type): Add USE_OUTER.
+ (dump_use, find_interesting_uses_op, add_derived_ivs_candidates,
+ determine_use_iv_cost, rewrite_use): Handle USE_OUTER.
+ (dump_cand, find_interesting_uses_stmt, add_candidate_1,
+ determine_use_iv_cost_condition, determine_iv_cost, set_cost,
+ create_new_iv, rewrite_use_nonlinear_expr): Handle final value
+ replacement.
+ (find_interesting_uses_outer, add_iv_outer_candidates,
+ may_replace_final_value, determine_use_iv_cost_outer,
+ remove_statement, rewrite_use_outer): New functions.
+ (var_at_use): Replaced by ...
+ (var_at_stmt): ... this.
+ (get_computation_at): Split from ...
+ (get_computation): ... here.
+ (get_computation_cost_at): Split from ...
+ (get_computation_cost): ... here.
+ (iv_value): Split from ...
+ (cand_value_at): ... here.
+ (may_eliminate_iv, rewrite_use_compare): Reflect these changes.
+ (tree_ssa_iv_optimize_loop): Call loop_commit_inserts.
+ * tree-ssanames.c (make_ssa_name): Handle NULL argument.
+
+2003-03-18 Devang Patel <dpatel@apple.com>
+
+ * tree-ssa-live.c (new_tree_live_info): Set num_blocks to
+ last_basic_block instead of n_basic_blocks.
+ (calculate_live_on_entry): Use last_basic_block instead of
+ n_basic_blocks.
+ (calculate_live_on_exit): Same.
+
+2004-03-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-cfg.c (thread_jumps): Don't thread jumps over loop headers.
+ * tree-flow.h (rewrite_into_ssa): Declaration changed.
+ (kill_redundant_phi_nodes, tree_loop_optimizer_init): Declare.
+ * tree-optimize.c (execute_todo): Do not free vars_to_rename.
+ (execute_one_pass): Do not allocate vars_to_rename.
+ (tree_rest_of_compilation): Allocate vars_to_rename.
+ * tree-scalar-evolution.c (number_of_iterations_in_loop): Handle
+ loops exited when condition is true.
+ (initialize_scalar_evolutions_analyzer): Use tree_loop_optimizer_init.
+ * tree-ssa-chrec.c (how_far_to_positive): Handle chrec_top correctly.
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Changed due to
+ rewrite_into_ssa change.
+ * tree-ssa-loop-im.c (move_computations, determine_lsm): Ditto.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ Use scev analyser.
+ * tree-ssa-loop-manip.c (allocate_new_names): Update name memory
+ tags.
+ * tree-ssa-loop.c (tree_loop_optimizer_init): New.
+ (tree_ssa_loop_opt, copy_loop_headers): Use it.
+ * tree-ssa.c (rewrite_into_ssa): Use argument to decide whether
+ to rename all variables.
+ (rewrite_all_into_ssa): New.
+ (pass_build_ssa): Use it.
+ (kill_redundant_phi_nodes): Export.
+
+2004-03-15 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree-ssa-return.c (tree_ssa_return):
+ Move check for NULL return value above check
+ for a modify expr.
+
+2004-03-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (gate_scev_iv_canon): Do not check rtl
+ level flags here.
+ * tree-ssa-loop-ivcanon.c (get_base_for): Verfify that the argument
+ of the phi node is a constant.
+ (loop_niter_by_eval, create_canonical_iv, try_unroll_loop_completely,
+ canonicalize_loop_induction_variables): Handle loops with more than
+ one exit.
+ (find_loop_niter_by_eval): New.
+ (canonicalize_induction_variables): Check rtl level flags here.
+
+2004-03-12 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree-ssa-return.c (tree_ssa_return):
+ Only do it when we have a modify expr.
+
+ * tree-ssa-return.c (tree_ssa_return):
+ Add new comments and fix some old ones.
+
+2004-03-12 Falk Hueffner <falk@debian.org>
+
+ * tree-pass.h: Declare pass_return.
+
+2004-03-11 Andrew Pinski <apinski@apple.com>
+
+ PR optimization/14135
+ * tree-ssa-return.c: New file.
+ * Makefile.in (tree-ssa-return.o): Add.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_return.
+ * timevar.def (TV_TREE_RETURN): New.
+
+2004-03-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivcanon.o: New file.
+ * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
+ * flags.h (flag_unroll_loops): Declare.
+ * loop-invariant.c (record_use): Fix.
+ * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increment.
+ * timevar.def (TV_TREE_LOOP_IVCANON): New.
+ * toplev.h (flag_unroll_loops): Declaration moved to flags.h.
+ * tree-flow.h (enum tree_ann_type): Remove MISC_ANN.
+ (struct tree_ann_common_d): Add aux field.
+ (struct misc_ann_d): Removed.
+ (struct stmt_ann_d): Removed aux field.
+ (union tree_ann_d): Removed misc field.
+ (canonicalize_induction_variables): Declare.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_scev_iv_canon.
+ * tree-pass.h (pass_scev_iv_canon): Declare.
+ * tree-scalar-evolution.c (scev_iv_canon, gate_scev_iv_canon,
+ pass_scev_iv_canon): New.
+ (scev_done): Run cfg cleanup.
+ * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
+ move_computations_stmt, schedule_sm): Use aux field in common
+ part of annotations.
+ * tree-ssa-loop-manip.c (allocate_new_names, rename_op,
+ free_new_names): Use common aux field.
+ (tree_duplicate_loop_to_header_edge): Fix memory leak.
+ * tree-ssa.c (mark_def_sites): Fix.
+ * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Use aux field in
+ common part of annotations.
+ * gcc.dg/tree-ssa/ivcanon-1.c: New test.
+
+2004-03-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (lambda-mat.o, lambda-trans.o, lambda-code.o): Add TM_H
+ dependency.
+
+2004-03-09 Olga Golovonevsky <olga@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: (vect_transform_binop): Removed.
+ (vect_transform_op): New function instead of vect_transform_binop,
+ to support both unary and binary operations.
+ (vect_is_supportable_binop): Removed.
+ (vect_is_supportable_op): New function instead of
+ vect_is_supportable_binop to support additional codes.
+ * tree-vectorizer.h: (operation_type): New enum type declared.
+ * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
+ one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
+ (*movv4si_internal): Relax condition.
+ (*movv8hi_internal1): Likewise.
+ (*movv16qi_internal1): Likewise.
+ (*movv4sf_internal1): Likewise.
+
+2004-03-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (df.o): Remove FIBHEAP_H dependency.
+ (invariant.o): Add df.h dependency.
+ * df.c: Do not include fibheap.h.
+ (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
+ prune_to_subcfg, df_bb_modify, df_find_def, dataflow_set_a_op_b,
+ dataflow_set_copy): New functions.
+ (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
+ df_refs_update, df_reg_table_realloc, df_ref_create,
+ df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
+ df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
+ df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
+ (df_rd_transfer_function, df_ru_transfer_function,
+ df_lr_transfer_function): Type of bitmaps changed to void *.
+ (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
+ (hybrid_search): ... new function.
+ (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
+ (iterative_dataflow): ... new function. Avoid use of fibheaps for
+ a worklist. Do not process basic blocks unnecessarily.
+ * df.h (struct ref): Add data field.
+ (DF_REF_DATA): New macro.
+ (df_analyse_subcfg, df_find_def): Declare.
+ (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
+ (transfer_function): ... declare.
+ (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
+ (iterative_dataflow): ... declare.
+ (enum set_representation, struct dataflow): New.
+ * loop-invariant.c: Include df.h.
+ (struct loop_data): Remove modified_regs field.
+ (struct def): Remove redundant fields.
+ (struct use): Add insn field.
+ (defs, adef, last_def, m_reg_info, reg_info): Removed.
+ (struct reg): Removed.
+ (record_def, note_insn_stores, find_defs_insn, find_defs_bb,
+ get_current_def, record_dependencies_fer, record_dependencies,
+ move_actual_defs): Removed.
+ (find_defs, find_invariants_insn, create_new_invariant,
+ find_invariants_bb, find_invariants_body, find_invariants,
+ find_invariants_to_move, move_invariant_reg,
+ move_invariants, move_single_loop_invariants,
+ move_loop_invariants): Use df.c.
+ (init_inv_motion_data): Do not initialize removed structures.
+ (free_inv_motion_data, free_loop_data): Do not cleanup removed
+ structures.
+ (check_dependencies, find_invariant_insn, record_uses): New.
+ (record_use): Record the insn.
+ (get_inv_cost): Update comments.
+
+2004-03-09 Andreas Jaeger <aj@suse.de>
+
+ * common.opt: Put tree-loop-linear at right place.
+
+2004-03-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * Makefile.in: Add lambda-mat.o, lambda-code.o, and tree-loop-linear.o.
+ * common.opt: Add -ftree-loop-linear.
+ * flags.h: Add flag_tree_loop_linear.
+ * opts.c: Handle tree-loop-linear option.
+ * timevar.def (TV_TREE_LINEAR_TRANSFORM): New.
+ * tree-flow.h (linear_transform_loops): New prototype.
+ * tree-optimize.c (pass_scev_linear_transform): New.
+ * tree-pass.h (pass_scev_linear_transform): Ditto.
+ * tree-scalar-evolution.c (scev_linear_transform): Ditto.
+ (gate_scev): Add check for flag_tree_loop_linear.
+ (gate_scev_linear_transform): New.
+ * lambda-code.c: New file.
+ * lambda-mat.c: New file.
+ * lambda-trans.c: New file.
+ * lambda.h: New file.
+ * tree-loop-linear.c: New file.
+
+2004-03-09 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree-ssa-phiopt.c (conditional_replacement):
+ Initialize new_var to NULL to prevent the
+ uninitialized warning.
+
+ * tree-ssa-phiopt.c (conditional_replacement):
+ Disable the making a new variable for different
+ types.
+
+ * tree-ssa-phiopt.c (conditional_replacement):
+ Disable the use of non-gimple of invert_truthvalue.
+
+2004-03-08 Andrew Pinski <apinski@apple.com>
+
+ * tree-ssa-phiopt.c (make_temp): New function.
+ (tree_ssa_phiopt): Use absolute_replacement
+ and value_replacement.
+ (conditional_replacement): Handle the case
+ the conditional is not a variable and
+ the types do not match.
+ Handle the case where invert_truthvalue
+ would create non-gimple.
+ (absolute_replacement): New function.
+ (value_replacement): New function.
+
+2004-03-08 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * tree-scalar-evolution.c (set_scalar_evolution,
+ set_scalar_evolution_outer_value): Compute the loop number
+ instead of passing it as a parameter.
+
+2004-03-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-live.c (coalesce_tpa_members): Update the root
+ variable of the partition.
+
+2004-03-03 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (enum iv_position): Add IP_ORIGINAL.
+ (struct iv_cand): Add incremented_at.
+ (dump_cand, add_candidate_1, add_candidate, add_old_iv_candidates,
+ var_at_use, get_computation, get_computation_cost,
+ cand_value_at, determine_iv_cost, find_best_candidate,
+ create_new_iv): Handle IP_ORIGINAL.
+ (stmt_after_ip_original_pos, stmt_after_increment): New functions.
+ (find_givs_in_stmt): Cast the values to the result type.
+ (record_invariant): Do not record virtual operands.
+
+2004-03-03 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-scalar-evolution.c: Use pointers to varray instead of
+ varrays for functions that insert in the scev database.
+
+2004-03-03 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * Makefile.in (OBJS-common): Add tree-elim-check.o.
+ (tree-chrec.o): Add dependence on tree-pass.h.
+ (tree-elim-check.o): New rule.
+ * tree-elim-check.c: New file.
+ * basic-block.h (edge_source, edge_destination): New inlined
+ functions.
+ * cfgloop.h (loop_nb_iterations): Added a comment on the use
+ of this accessor.
+ * common.opt (ftree-elim-checks): New flag.
+ * flags.h (flag_tree_elim_checks): Declared here.
+ * opts.c (decode_options): Set flag_tree_elim_checks to zero.
+ (common_handle_option): Add case OPT_ftree_elim_checks.
+ * timevar.def (TV_TREE_ELIM_CHECKS): Defined.
+ * toplev.c (flag_tree_elim_checks): Defined.
+ * tree-cfg.c (print_pred_bbs, print_succ_bbs, print_loop):
+ Modify the dumping style. Print nb_iterations.
+ * tree-chrec.c, tree-chrec.h, tree-scalar-evolution.c,
+ tree-scalar-evolution.h, tree-data-ref.c: New version of the
+ scalar evolution algorithm. Don't use a schedule for
+ analyzing the scalar variables.
+ * tree-fold-const.c (tree_fold_bezout): Define.
+ * tree-fold-const.h (tree_fold_int_round_div,
+ tree_fold_int_trunc_mod, tree_fold_int_ceil_mod,
+ tree_fold_int_floor_mod, tree_fold_int_round_mod): Removed, because
+ not used for the moment.
+ (chrec_merge_types): New function.
+ * tree-optimize.c (pass_scev_elim_checks): Register the pass.
+ * tree-pass.h (pass_scev_elim_checks): Declare the pass.
+ * tree-pretty-print.c (dump_generic_node): Print
+ PEELED_CHREC. Remove PERIODIC_CHREC.
+ * tree-vectorizer.c: Modify the use of
+ analyze_scalar_evolution.
+ * tree.def (POLYNOMIAL_CHREC, EXPONENTIAL_CHREC): Store the
+ evolution loop in a third leaf instead of in TREE_TYPE.
+ TREE_TYPE is then used in storing the type of the chrec.
+ (PERIODIC_CHREC): Removed since it is not used for the moment.
+ (PEELED_CHREC): New node.
+ * doc/invoke.texi (fdump-tree-scev, fdump-tree-ddall): Correct
+ the name of these flags.
+ (ftree-elim-checks, fdump-tree-elck): Document.
+
+2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (number_of_iterations_cond, cand_value_at):
+ Cast the constants.
+
+2004-03-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (tree-ssa-loop-ivopts.o): Add HASHTAB_H dependency.
+ * tree-ssa-loop-ivopts.c: Include hashtab.h.
+ (old_highest_ssa_version): Rename to version_info_size.
+ (struct tree_niter_desc): Split from ...
+ (struct loop_data): ... here.
+ (relevant): New variable.
+ (tree_ssa_iv_optimize_init, set_iv, find_induction_variables,
+ record_invariant, find_interesting_uses, add_old_ivs_candidates,
+ determine_set_costs, free_loop_data, tree_ssa_iv_optimize_finalize):
+ Use bitmap of relevant ssa names.
+ (var_at_use): New function.
+ (get_computation): Use it.
+ (multiply_by_cost): Cache all results.
+ (mbc_entry_hash, mbc_entry_eq): New functions.
+ (number_of_iterations_cond): Split from ...
+ (determine_number_of_iterations): ... here.
+ (cand_value_at, may_eliminate_iv): New functions.
+ (determine_use_iv_cost_condition, rewrite_use_compare): Implement iv
+ elimination.
+
+2004-03-01 Devang Patel <dpatel@apple.com>
+
+ * tree-dg.c (dg_delete_graph): Reset varrays.
+ (gate_ddg) : Check current loops.
+
+2004-02-27 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-cfg.c (cleanup_control_expr_graph): Prevent probability from
+ overflowing.
+ * loop-invariant.c (get_current_def): Fix.
+ * tree-ssa-loop-im.c (move_computations): Only call rewrite_into_ssa
+ if vars_to_rename is nonempty.
+ * tree-ssa-loop-ivopts.c (outermost_usage, ivs): Removed.
+ (struct version_info): New.
+ (version_info, max_inv_id): New variables.
+ (struct cost_pair): Added depends_on field.
+ (struct iv_use): Removed fields choices, n_choices, min_cost and
+ min_cost_cand.
+ (enum iv_position, dump_cand, ip_end_pos, add_candidate_1,
+ determine_iv_cost, create_new_iv): IP_START position disabled.
+ (find_optimal_iv_set_1, min_remaining_cost, undo_changes,
+ execute_removal, add_forbidden_ivs, try_candidate): Removed.
+ (dump_use): Do not dump removed fields.
+ (ver_info, name_info, update_outermost_usage, record_invariant,
+ find_invariants_stmt, find_depends, try_improve_iv_set): New functions.
+ (find_outermost_usage): Handle uses in phis.
+ (divide): Update comment.
+ (tree_ssa_iv_optimize_init): Initialize version_info instead of ivs
+ and outermost_usage.
+ (set_iv, get_iv, find_induction_variables, add_old_ivs_candidates):
+ Use version_info instead of ivs.
+ (record_use): Do not initialize removed fields.
+ (find_interesting_uses_op): Call record_use.
+ (find_interesting_uses_stmt): Call find_invariants_stmt.
+ (find_interesting_uses): Scan just the current loop.
+ (set_use_iv_cost): Initialize depends_on field.
+ (get_use_iv_cost): Return depends_on field.
+ (get_computation): Handle special cases.
+ (force_var_cost, split_address_cost, ptr_difference_cost,
+ difference_cost, get_computation_cost, determine_use_iv_cost_generic,
+ determine_use_iv_cost_address, determine_use_iv_cost_condition):
+ Determine depends_on bitmap.
+ (determine_use_iv_costs): Dump depends_on bitmap.
+ (init_set_costs): Use information about invariants.
+ (find_best_candidate, set_cost, get_initial_solution,
+ find_optimal_iv_set): Take depends_on into account.
+ (rewrite_uses): Use use->selected to select candidate.
+ (free_loop_data, tree_ssa_iv_optimize_finalize): Cleanup version_info
+ instead of ivs. Free depends_on bitmaps.
+ (tree_ssa_iv_optimize_loop): Do not pass iv_set to rewrite_uses.
+
+2004-02-27 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfgloopmanip.c (loopify): Fix comment.
+ * loop-iv.c (lowpart_byte, lowpart_subreg_p): Removed.
+ (lowpart_subreg, simple_reg_p, iv_get_reaching_def, get_biv_step_1,
+ iv_analyse_op, iv_analyse, get_iv_value): Use standard subreg
+ manipulation functions.
+ (simplify_using_assignment): Handle hardregs correctly.
+ (canon_condition): Use swap_commutative_operands_p.
+ (iv_number_of_iterations): Avoid overflow.
+ * loop-unroll.c (unroll_loop_runtime_iterations): Pass additional
+ argument to compare_and_jump_seq.
+ * loop-unswitch.c (unswitch_loop, may_unswitch_on,
+ unswitch_single_loop, compare_and_jump_seq): Handle comparisons of
+ ccmode registers.
+ * rtl.h (compare_and_jump_seq): Declaration changed.
+
+2004-02-25 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.h (assignment_vec_info_type): New enum value for
+ stmt_vec_info_type.
+ * tree-vectorizer.c (vect_transform_assignment): New function.
+ Support vectorization of assignment stmts.
+ (vect_transform_stmt): Call vect_transform_assignment.
+ (vect_is_supportable_assignment): New function.
+ (vect_analyze_operations): Call vect_is_supportable_assignment.
+
+ (vect_create_index_for_array_ref): Replace unsigned_intSI_type_node
+ with size_type_node.
+ (vect_transform_loop_bound): Likewise.
+
+ (get_vectype_for_scalar_type): Avoid division by 0.
+
+ (vect_analyze_operations): Apply check for no-out-of-loop-uses also
+ to stmts that are marked irrelevant.
+
+2004-02-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-flow.h (for_each_index): Declare.
+ * tree-ssa-loop-im.c (struct lim_aux_data): Add always_executed_in
+ and sm_done fields.
+ (struct use): New.
+ (max_uid): New static variable.
+ (outermost_invariant_loop, commit_inserts, may_move_till,
+ force_move_till, record_use, free_uses, single_reachable_address,
+ rewrite_uses, schedule_sm, determine_lsm_reg,
+ loop_suitable_for_sm, determine_lsm_loop, determine_lsm): New functions.
+ (add_dependency): Use outermost_invariant_loop.
+ (set_level): Add sanity checking.
+ (determine_invariantness_stmt): Set always_executed_in field.
+ (move_computations_stmt): Modified.
+ (move_computations): Use commit_inserts.
+ (fill_always_executed_in): Take possibility of an infinite loop into
+ account.
+ (tree_ssa_lim): Call determine_lsm.
+ * tree-ssa-loop-ivopts.c (for_each_index): Export.
+ (rewrite_use_address): Improve handling of memory tags.
+
+ * tree-ssa-loop.c (do_while_loop_p): Readd.
+ (copy_loop_headers): Readd check for do_while_loop_p.
+ * tree-ssa-operands.c (add_stmt_operand): Modified.
+
+2004-02-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Merge from tree-ssa branch (lno-merge-20040221).
+
+2004-02-20 Devang Patel <dpatel@apple.com>
+
+ * tree-vectorizer.c (vect_analyze_data_ref_dependence): Use
+ ddg_direction_between_stmts ().
+
+2004-02-20 Devang Patel <dpatel@apple.com>
+
+ * tree-data-ref.h (data_dependence_direction): Add new member
+ dir_independent.
+ * tree-dg.h (tree-data-ref.h): Include.
+ (ddg_direction_between_stmts, ddg_distance_between_stmts): New decls.
+ * tree-dg.c (find_ddr_between_stmts, ddg_direction_between_stmts,
+ ddg_distance_between_stmts): New functions.
+
+2004-02-19 Devang Patel <dpatel@apple.com>
+
+ * tree-dg.c (dg_delete_edges, dg_delete_node, dg_delete_graph,
+ dg_delete_edge, gate_delete_ddg): New functions.
+ (pass_delete_ddg): New.
+ * tree-dg.h (dg_delete_graph, dg_delete_edge): New extern decls.
+ * tree-optimize.c (init_tree_optimization_passes): Add new pass
+ pass_delete_ddg.
+ * tree-pass.h (pass_delete_ddg): New extern.
+
+2004-02-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-flow.h (create_iv): Declare.
+ * tree-ssa-loop-ivopts.c (create_iv): New function.
+ (create_new_iv): Use create_iv.
+
+2004-02-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop.c (do_while_loop_p): New function.
+ (copy_loop_headers): Do not peel do-while loops.
+
+2004-02-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-invariant.c: New file.
+ * Makefile.in (loop-invariant.o): New.
+ * cfgloop.h (init_set_costs, global_cost_for_size,
+ move_loop_invariants): Declare.
+ * toplev.c (rest_of_handle_loop2): Call move_loop_invariants.
+ (lang_dependent_init): Call init_set_costs.
+ * tree-ssa-loop-ivopts.c (avail_regs, res_regs, small_cost, pres_cost,
+ spill_cost): Made static.
+ (global_cost_for_size): Export.
+ (ivopts_global_cost_for_size, init_set_costs): New functions.
+ (determine_set_costs): Do not initialize set cost constants.
+ Use ivopts_global_cost_for_size.
+ (try_candidate, find_optimal_iv_set_1, set_cost): Use
+ ivopts_global_cost_for_size.
+
+ * cfgloop.c (fill_sons_in_loop): Fix typo in comment.
+
+2004-02-17 Devang Patel <dpatel@apple.com>
+
+ * tree-vectorize.c (vect_create_data_ref): Set TREE_ADDRESSABLE bit.
+ (vectorize_loops): Reset loop->aux.
+
+2004-02-16 Devang Patel <dpatel@apple.com>
+
+ * Makefile.in (TREE_FLOW_H): Add tree-dg.h
+ (OBJS-common): Add tree-dg.o
+ (gtype-desc.o): Depend on tree-dg.h
+ (tree-dg.o): New rule.
+ (GTFILES): Add tree-data-ref.h, tree-data-ref.h
+ * common.opt (ftree-ddg): Add new option.
+ * flags.h (flag_ddg): New extern.
+ * gengtype.c (open_base_files): Add tree-dg.h and tree-data-ref.h in
+ the list.
+ * opts.c (decode_option): Set flag_ddg to zero.
+ (common_handle_option): Handle OPT_ftree_ddg.
+ * timevar.def (TV_DEP_GRAPH): New.
+ * toplev.c (flag_ddg): New flag.
+ (lang_independent_options): Add entry for -ftree-ddg.
+ * tree-data-ref.c (compute_all_dependences): Make externally visible.
+ * tree-data-ref.h (data_reference, subscript, data_dependence_relation)
+ Add GTY markers.
+ (compute_all_dependences): Make externally visible.
+ * tree-dg.c: New file.
+ * tree-dg.h: New file.
+ * tree-flow-inline.h (dg_node_for_stmt): New function.
+ * tree-flow.h (tree-dg.h): Include.
+ (stmt_ann_d): New member, dg_node.
+ * tree-optimize.c (init_tree_optimization_passes): Add pass_ddg.
+ * tree-pass.h (PROP_scev): Define.
+ (tree_opt_pass pass_ddg): Extern decl.
+ * tree-scalar-evolution.c (pass_scev_anal): Provide PROP_scev property.
+ * varray.c (element[NUM_VARRAY_DATA]): Add new member for dependence
+ graph.
+ * varray.h (varray_data_enum): New member VARRAY_DATA_DG.
+ (varray_data_tag): New member dg.
+ (VARRAY_DG_INIT): New #define.
+ (VARRAY_DG): New #define.
+ (VARRAY_PUSH_DG): New #define.
+
+2004-02-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-optimize.c (init_tree_optimization_passes): Move ch after
+ the first dominator optimization pass.
+ * tree-ssa-loop.c (should_duplicate_loop_header_p,
+ copy_loop_headers): Work over ssa.
+ (pass_ch): Require and update ssa form.
+ (mark_defs_for_rewrite, duplicate_blocks): New.
+
+2004-02-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (for_each_index, prepare_decl_rtl,
+ peel_address): Handle RESULT_DECL.
+
+2004-02-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-doloop.c (doloop_optimize): Use get_simple_loop_desc.
+ * loop-init.c (loop_optimizer_finalize): Free the simple loop
+ descriptions.
+ * loop-unroll.c (unroll_and_peel_loops): Do not free the simple loop
+ descriptions.
+ (decide_peel_once_rolling, decide_peel_completely,
+ decide_unroll_stupid): Test assumptions.
+ decide_unroll_constant_iterations, decide_unroll_runtime_iterations,
+ decide_peel_simple, peel_loop_simple, unroll_loop_stupid): Update
+ number of iterations info.
+ (unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
+ (loop_exit_at_end_p): Use get_simple_loop_desc.
+
+2004-02-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfgloop.h (struct niter_desc): Add first_special, extend,
+ extend_mode, delta and mult fields.
+ (get_iv_value): Declare.
+ * expr.c (force_operand): Handle subregs of expressions.
+ * loop-doloop.c (doloop_valid_p): Test desc->infinite properly.
+ * loop-iv.c (dump_iv_info): Dump new fields.
+ (lowpart_byte, lowpart_subreg_p, lowpart_subreg,
+ iv_constant, iv_subreg, iv_extend, iv_neg, iv_add, iv_mult,
+ get_biv_step_1, get_biv_step, shorten_into_mode,
+ canonicalize_iv_subregs): New functions.
+ (simple_reg_p, simple_set_p, iv_get_reaching_def, iv_analyse_biv,
+ iv_analyse_op, iv_analyse, iv_number_of_iterations): Handle subregs.
+ * loop-unswitch.c (may_unswitch_on): Handle subregs.
+
+2004-02-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (tree-ssa-loop-ivopts.o): Add RECOG_H and insn-config.h
+ dependency.
+ * loop-iv.c (iv_analysis_loop_init): Ensure we only care about
+ increments that are done just once each iteration.
+ * timevar.def (TV_TREE_LOOP_IVOPTS, TV_TREE_CH): New.
+ * tree-ssa-loop-ivopts.c: Include insn-config.h and recog.h.
+ (INFTY): Increase.
+ (struct iv_use): Add choices, n_choices, min_cost_cand and selected
+ fields. Rename field best_cost to min_cost.
+ (CONSIDER_ALL_CANDIDATES_BOUND): Decrease.
+ (dump_use): Dump new fields.
+ (dump_uses, cst_and_fits_in_hwi, int_cst_value, build_int_cst,
+ divide, strip_offset, add_cost, multiply_by_cost, get_address_cost,
+ force_var_cost, peel_address, ptr_difference_const,
+ split_address_cost, ptr_difference_cost, difference_cost,
+ get_computation_cost): New functions.
+ (find_induction_variables): Formating changes.
+ (record_use): Initialize new fields.
+ (add_old_ivs_candidates): Do not add invariants.
+ (set_use_iv_cost): Set min_cost.
+ (get_use_iv_cost): Fix.
+ (get_computation): Use less memory.
+ (determine_use_iv_cost_generic, determine_use_iv_cost_address,
+ determine_use_iv_cost_condition, determine_iv_cost): Use
+ new cost estimation functions.
+ (compute_iv_set_cost): Removed.
+ (struct undo_record): New.
+ (use_with_min_choices, min_remaining_cost, undo_changes,
+ execute_removal, add_forbidden_ivs, try_candidate, set_cost,
+ get_initial_solution): New functions.
+ (find_optimal_iv_set_1, find_optimal_iv_set): Made more effective.
+ (create_new_ivs, rewrite_use_nonlinear_expr, rewrite_use_address):
+ Unshare created expressions.
+ (free_loop_data): Free new structures.
+ (tree_ssa_iv_optimize_loop): Remove garbage collection.
+ (tree_ssa_iv_optimize): Use TV_TREE_LOOP_IVOPTS timevar.
+ * tree-ssa-loop.c (pass_ch): Use TV_TREE_CH timevar.
+
+2004-02-02 Steven Bosscher <stevenb@suse.de>
+
+ * common.opt: Re-order some options in ASCII collating order.
+
+2004-01-30 Devang Patel <dpatel@apple.com>
+
+ * cfgloopmanip.c (loopify): Always redirect switch_bb's BRANCH_EDGE,
+ however redirect FALLTHRU_EDGE only if asked.
+ * tree-ssa-loop-manip.c (tree_ssa_loop_version): Update FALLTHRU_EDGE
+ pending stmts.
+
+2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (find_optimal_iv_set_1, compute_iv_set_cost):
+ Fix memory leak, speed up.
+ (tree_ssa_iv_optimize_finalize): Move reseting of DECL_RTL...
+ (free_loop_data): ... here.
+
+2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * basic-block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
+ * cfgloop.c (num_loop_branches): New function.
+ * cfgloop.h (struct loop_desc): Add field strange.
+ (struct loop): Remove fields simple, desc, has_desc.
+ (num_loop_branches, get_simple_loop_desc, free_simple_loop_desc):
+ Declare.
+ (simple_loop_desc): New inline function.
+ * cfgloopanal.c (count_loop_iterations): Set field strange.
+ (simple_loop_exit_p): Initialize postincr properly.
+ * loop-iv.c (assign_luids, mark_sets, simplify_using_initial_values):
+ Use FOR_BB_INSNS/FOR_BB_INSNS_REVERSE.
+ (iv_number_of_iterations): Restrict the number of iterations to the
+ actual mode.
+ (find_simple_exit): Check results with the old simple loop analyser.
+ (get_simple_loop_desc, free_simple_loop_desc): New functions.
+ * loop-unroll.c (loop_exit_at_end_p): New function.
+ (unroll_and_peel_loops, peel_loops_completely,
+ decide_unrolling_and_peeling, decide_peel_once_rolling,
+ decide_peel_completely, peel_loop_completely,
+ decide_unroll_constant_iterations, unroll_loop_constant_iterations,
+ decide_unroll_runtime_iterations, unroll_loop_runtime_iterations,
+ decide_peel_simple, decide_unroll_stupid): Use new iv analysis.
+ * predict.c (predict_loops): Use new iv analysis.
+
+ * tree-ssa-loop.c (copy_loop_headers): Predict entry edge from
+ copied loop header to be taken.
+
+ * tree-cfg.c (tree_find_edge_insert_loc,
+ bsi_insert_on_edge_immediate): Return the newly created block.
+ (bsi_commit_edge_inserts_1): Add parameter to
+ tree_find_edge_insert_loc call.
+ * tree-flow.h (bsi_insert_on_edge_immediate): Declaration changed.
+ * tree-ssa-loop-ivopts.c (create_new_iv): Update loop for newly
+ created block.
+
+ * cfg.c (unlink_block): Clean prev_bb and next_bb fields.
+
+2004-01-29 Devang Patel <dpatel@apple.com>
+
+ * cfglayout.h (loopify): Add new bool parameter.
+ * cfgloopmanip.c (loopify): Support new bool argument.
+ * loop-unswitch.c (unswitch_loop): Supply additional argument 'true'
+ to loopify.
+ * tree-cfg.c (tree_block_label): Make externally visible.
+ * tree-flow.h (tree_block_label, test_loop_versioning, tree_ssa_loop_version): New
+ extern decls.
+ * tree-ssa-loop-manip.c (lv_adjust_loop_entry_edge, lv_udate_pending_stmts,
+ lv_adjust_loop_header_phi, tree_ssa_loop_version): New functions.
+ * tree-ssa-loop.c (tree_ssa_loop_opt): Test loop versioning.
+
+2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-scalar-evolution.c (scev_analyze_inner_loop_phi): Add ;.
+
+2004-01-29 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * Makefile.in (tree-ssa-dom.o): Depends on cfgloop.h.
+ * tree-flow-inline.h (loop_of_stmt): New function.
+ * tree-ssa-dom.c: Include cfgloop.h.
+ (tree_ssa_dominator_optimize): Detect and finalize the natural
+ loops structure.
+ (simplify_rhs_and_lookup_avail_expr): Verify that the folded
+ operations belong to the same loop.
+
+ * cfgloop.h (loop): Rewrite comments for the nb_iterations field.
+ * tree-data-ref.c (analyze_all_data_dependences): Increase the size
+ of the dependence graph when computing all the dependences.
+ * tree-optimize.c (init_tree_optimization_passes): Move the
+ pass_scev after the pass_pre.
+ * tree-scalar-evolution.h: Update comments.
+ * tree-scalar-evolution.c (symbolically_analyze,
+ scev_follow_ssa_edge_same_loop, scev_follow_ssa_edge_inner_loop,
+ loop_is_strictly_included_in, scev_analyze_inner_loop_phi,
+ draw_tree_cfg): New functions.
+ (compute_value_on_exit_of_loop): Removed.
+ (analyze_evolution): Mark phi nodes instead of looking into
+ the already_visited array.
+ (analyze_evolution_in_loop): Use scev_follow_ssa_edge_same_loop,
+ scev_follow_ssa_edge_inner_loop.
+ (scev_analyze_modify_expr): Refine the wrap-around case.
+ (scev_follow_ssa_edge): Handle edges to the current and inner loops
+ separately calling scev_follow_ssa_edge_same_loop or
+ scev_follow_ssa_edge_inner_loop.
+ (merge_branches_of_condition_phi_node): Restructure.
+ (set_nb_iterations_in_loop): Add one to the number of iterations.
+ When the loop copy headers is on, we always exit the loop after
+ having executed once its body.
+ (record_dependences_for_opnd): Do not record dependences on variables
+ that are not in the current loop.
+ (pass_scev_depend): Rename the pass from alldd to ddall.
+ * tree-ssa-loop.c (gate_ch): New function.
+ (pass_ch): Use gate_ch.
+ * doc/invoke.texi (-ftree-ch, -fdump-tree-ch): Document flags.
+ (fdump-tree-scev, fdump-tree-ddall): Update names, and comments.
+
+ * common.opt (ftree-ch): Document.
+ * flags.h (flag_tree_ch): Declare.
+ * opts.c (flag_tree_ch): Set it on by default.
+ (flag_scalar_evolutions, flag_all_data_deps): Turn off by default.
+ (OPT_ftree_ch): Handle this case.
+ * toplev.c (lang_independent_options): Register flag_tree_ch.
+
+2004-01-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfghooks.c (split_block): Update probabilities.
+
+ * cfgloopmanip.c (loopify): Always redirect branch edge to the new
+ loop.
+ * loop-iv.c (canon_condition, simplify_using_condition): Export.
+ (check_simple_exit): Do not allow cc mode registers.
+ * loop-unroll.c (unroll_loop_runtime_iterations): Use
+ compare_and_jump_seq.
+ * loop-unswitch.c (may_unswitch_on_p): Renamed to may_unswitch_on,
+ returns the condition, use iv_analyse.
+ (compare_and_jump_seq): New function.
+ (unswitch_loops): Call iv_analysis_done.
+ (unswitch_single_loop, unswitch_loop): Handle nontrivial invariants.
+ * rtl.h (compare_and_jump_seq, canon_condition,
+ simplify_using_condition): Declare.
+
+2004-01-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-iv.c: New.
+ * loop-doloop.c: New.
+ * Makefile.in (loop-doloop.o, loop-iv.o): Add.
+ * alias.c (init_alias_analysis): Test flag_unroll_loops instead of
+ flag_old_unroll_loops.
+ * cfgloop.h (struct rtx_iv, struct niter_desc): New.
+ (get_loop_level, iv_analysis_loop_init, iv_get_reaching_def,
+ iv_analyse, find_simple_exit, iv_number_of_iterations,
+ iv_analysis_done, doloop_optimize_loops): Declare.
+ * cfgloopanal.c (get_loop_level): New.
+ * common.opt (floop-optimize2): New.
+ (fold-unroll-loops, fold-unroll-all-loops): Remove.
+ * doloop.c (doloop_condition_get): Export.
+ * flags.h (flag_old_unroll_loops, flag_old_unroll_all_loops):
+ Declaration removed.
+ * loop-unswitch.c (reversed_condition): Export.
+ * loop.c (loop_invariant_p): Use flag_unroll_loops instead
+ of flag_old_unroll_loops.
+ * opts.c (common_handle_option): Handle -floop-optimize2,
+ do not handle -fold-unroll-loops and -fold-unroll-all-loops.
+ * params.def (PARAM_MAX_DOLOOP_INSNS): New.
+ * rtl.h (get_mode_bounds, doloop_condition_get,
+ reversed_condition): Declare.
+ * stor-layout.c (get_mode_bounds): New function.
+ * toplev.c (flag_old_unroll_loops, flag_old_unroll_all_loops):
+ Remove.
+ (flag_loop_optimize2): New.
+ (rest_of_handle_loop_optimize): Use flag_unroll_loops instead
+ of flag_old_unroll_loops.
+ (rest_of_handle_loop2): Call doloop_optimize_loops.
+ (rest_of_compilation): Use flag_loop_optimize2.
+ (process_options): Remove flag_old_unroll_loops handling, add
+ flag_loop_optimize2 handling.
+ * toplev.h (flag_loop_optimize2): Declare.
+ * unroll.c (unroll_loop): Use flag_unroll_all_loops instead of
+ flag_old_unroll_all_loops.
+
+2004-01-26 Dorit Naishlos <dorit@il.ibm.com>
+
+ * Makefile.in: (tree-vectorizer.o): Remove dependency on real.h.
+ * tree-vectorizer.c: (real.h): Remove included file.
+ (vect_get_vec_def_for_operand): No need to explicitly use build_int_2
+ and build_real.
+
+ (vect_transform_loop_bound): Create loop IV update at loop exit
+ block, following changes in loop control.
+
+ (vectorize_loops): Remove debug printout.
+
+ * config/rs6000/altivec.md: (*movv4si_internal): More complex
+ condition.
+ (*movv8hi_internal1): Likewise.
+ (*movv16qi_internal1): Likewise.
+ (*movv4sf_internal1): Likewise.
+
+2004-01-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c (determine_set_costs): Do not use
+ GENERAL_REGNO_P.
+
+2004-01-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-ivopts.c: New file.
+ * Makefile.in (tree-ssa-loop-ivopts.o): Add.
+ * expr.c (expand_expr_1): Handle expand_expr_1.
+ * fold-const.c (invert_tree_comparison, invert_tree_comparison):
+ Export.
+ * tree-cfg.c (stmt_bsi): New function.
+ * tree-flow.h (stmt_bsi, tree_ssa_dce_no_cfg_changes,
+ tree_ssa_iv_optimize): Declare.
+ * tree-simple.c (get_base_symbol): Handle INDIRECT_REF.
+ * tree-ssa-dce.c (tree_ssa_dce_no_cfg_changes): Split from ...
+ (tree_ssa_dce): ... here.
+ * tree-ssa-loop.c (tree_ssa_loop_opt): Call tree_ssa_iv_optimize.
+ * tree-ssanames.c (make_ssa_name): Allow creating ssa name without
+ statement.
+ * tree.h (invert_tree_comparison, swap_tree_comparison): Declare.
+
+2004-01-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * doloop.c (doloop_optimize): Test for loop->top instead of
+ loop->scan_start.
+
+2004-01-22 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-alias-common.c (HAVE_BANSHEE): Do not define it.
+ (create_alias_vars): Do not test HAVE_BANSHEE value.
+
+2004-01-22 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-loop-manip.c: New file.
+ * Makefile.in (tree-ssa-loop-manip.o): Add.
+ * basic-block.h (struct reorder_block_def): New field copy_number.
+ * cfghooks.c (split_block, make_forwarder_block): Update irreducible
+ loop information.
+ * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
+ * tree-cfg.c (tree_duplicate_bb): Duplicate also virtual operands.
+ * tree-flow.h (enum tree_ann_type): Add MISC_ANN.
+ (struct misc_ann_d): New.
+ (union tree_ann_d): Add misc field.
+ (test_unrolling_and_peeling, tree_duplicate_loop_to_header_edge):
+ Declare.
+ * tree-ssa-loop.c (tree_ssa_loop_opt): Call
+ test_unrolling_and_peeling.
+ * tree-ssa-operands.c (copy_virtual_operands): New.
+ * tree-ssa-operands.h (copy_virtual_operands): Declare.
+
+ * dominance.c: Fix comment.
+
+ * cfgloopanal.c (mark_irreducible_loops): Rewriten.
+ (struct edge, struct vertex, struct graph): New.
+ (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
+ free_graph): New functions.
+
+2004-01-21 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-scalar-evolution.c (pass_scev): Don't use a name.
+ (pass_scev_anal): Named this pass "scev".
+
+2004-01-21 Dorit Naishlos <dorit@il.ibm.com>
+
+ * Makefile.in: (tree-vectorizer.o): Add dependency on real.h.
+ * tree-vectorizer.c: (vect_is_simple_use): Allow constants.
+ (real.h): Included to support constants vectorization.
+ (vect_get_vec_def_for_operand): New function.
+ (vect_transform_binop): Use above new function.
+ (vect_transform_store): Likewise.
+ (vect_transform_load): Likewise.
+
+ (vect_get_new_vect_var): Allow more flexibility in naming scheme.
+ (vect_create_index_for_array_ref): Call vect_get_new_vect_var with a
+ name prefix instead of a variable.
+ (vect_create_data_ref): Likewise.
+ (vect_create_destination_var): Likewise.
+
+ (vect_analyze_data_refs): Temporarily restrict vectorizable data refs
+ to ARRYA_RES which base is a VAR_DECL.
+ (vect_create_data_ref): Support only VAR_DECL array base. Mark all
+ vops for renaming.
+
+ (vect_get_array_first_index): New function.
+ (vect_create_index_for_array_ref): Consider array_first_index.
+ (vect_analyze_data_ref_access): Likewise.
+
+ (vect_get_loop_niters): Use number_of_iterations_in_loop.
+ (vect_analyze_loop_form): Don't attempt to vectorize if
+ number_of_iterations == 0.
+
+ (vect_analyze_operations): Fix vectype analysis.
+
+ (vect_create_index_for_array_ref): Fix code insertion in loop prolog.
+ (vect_transform_loop_bound): Likewise.
+
+2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>,
+ Devang Patel <dpatel@apple.com>
+
+ * basic-block.h (struct reorder_block_def): Moved from cfglayout.h.
+ (alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
+ * bb-reorder.c (copy_bb, copy_bb_p): Use duplicate_block hooks.
+ * loop-unswitch.c (unswitch_loop): Ditto.
+ * tracer.c (tail_duplicate): Ditto.
+ * tree-ssa-loop.c (copy_loop_headers): Ditto.
+ * cfg.c (rbi_pool): New.
+ (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New functions.
+ * cfghooks.c (can_duplicate_block_p, duplicate_block): New functions.
+ * cfghooks.h (struct cfg_hooks): Add can_duplicate_block_p and
+ duplicate_block hooks.
+ (can_duplicate_block_p, duplicate_block): Declare.
+ * cfglayout.c (cfg_layout_pool): Removed.
+ (cfg_layout_initialize_rbi): Removed.
+ (fixup_reorder_chain): Use initialize_bb_rbi.
+ (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb):
+ Ir-independent parts moved to cfghooks.c.
+ (cfg_layout_initialize): Use alloc_rbi_pool and initialize_bb_rbi.
+ (cfg_layout_finalize): Use free_rbi_pool.
+ (can_copy_bbs_p): Use can_duplicate_block_p.
+ (copy_bbs): Use duplicate_block.
+ * cfglayout.h (struct reorder_block_def): Moved to basic-block.h
+ (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb,
+ cfg_layout_initialize_rbi): Declaration removed.
+ * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
+ (cfg_layout_rtl_cfg_hooks): Add cfg_layout_can_duplicate_bb_p and
+ cfg_layout_duplicate_bb.
+ * tree-cfg.c (build_tree_cfg): Call alloc_rbi_pool.
+ (create_bb): Call initialize_bb_rbi.
+ (delete_tree_cfg): Call free_rbi_pool.
+ (tree_duplicate_bb): Ir independent parts moved to cfghooks.c.
+ (tree_cfg_hooks): Add tree_can_duplicate_bb_p and tree_duplicate_bb.
+ * tree-flow.h (tree_duplicate_bb): Declaration removed.
+
+2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-alias-common.c (create_alias_vars): Don't use
+ andersen_alias_ops when we don't HAVE_BANSHEE.
+
+ * tree-ssa-loop.c (pass_ch): Remove TODO_verify_ssa.
+
+2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Merge from tree-ssa branch (lno-merge-20040120).
+
+2004-01-18 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-scalar-evolution.c: (get_loop_exit_condition): Exposed to
+ external usage.
+ * tree-scalar-evolution.h: (get_loop_exit_condition): Exposed to
+ external usage.
+ * tree-vectorizer.c: (vect_is_simple_iv_evolution): Additional argument
+ to control how strict this function would be.
+ (vect_create_index_for_array_ref): Invoke vect_is_simple_iv_evolution
+ with "strict" set to true.
+ (vect_transform_loop_bound): More general loop bound transformation
+ scheme, independent of the loop exit condition form.
+ (vect_analyze_scalar_cycles): Invoke vect_is_simple_iv_evolution with
+ "strict" set to false.
+ (vect_get_loop_niters): Use monev utilities/precomputed info -
+ loop->nb_iterations and get_loop_exit_condition.
+
+2004-01-17 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: (vect_get_name_for_new_var): Removed.
+ (vect_get_new_vect_var): New function. Replaces above function.
+ (vect_create_index_for_array_ref): Call vect_get_new_vect_var
+ instead of vect_get_name_for_new_var.
+ (vect_create_data_ref): Likewise.
+ (vect_create_destination_var): Likewise.
+ * tree-vectorizer.h: (vect_var_kind): New enum type.
+
+2004-01-15 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-chrec.c (remove_initial_condition,
+ add_expr_to_loop_evolution_1, add_expr_to_loop_evolution_2): New functions.
+ (add_expr_to_loop_evolution): Use these functions.
+ (build_polynomial_evolution_in_loop,
+ build_exponential_evolution_in_loop): Move from here...
+ * tree-chrec.h (build_polynomial_evolution_in_loop,
+ build_exponential_evolution_in_loop): Remove declarations.
+ * tree-scalar-evolution.c (build_polynomial_evolution_in_loop,
+ build_exponential_evolution_in_loop): ... to here. Declare
+ these functions static.
+ (select_outer_and_current_evolutions): New function.
+ (matched_an_increment, scev_analyze_modify_expr,
+ compute_overall_effect_of_inner_loop,
+ analyze_scalar_evolution): Use this function.
+ (add_to_evolution, multiply_evolution): Construct canonical
+ chains of recurrences.
+
+2004-01-14 Dorit Naishlos <dorit@il.ibm.com>
+ Sebastian Pop <s.pop@laposte.net>
+
+ * tree-vectorizer.c: (vect_is_simple_iv_evolution): Correctly use
+ APIs of the new monev analyzer. Additional argument (loop_num).
+ (vect_transform_loop_bound): Additional argument to
+ vect_is_simple_iv_evolution.
+ (vect_analyze_scalar_cycles): Likewise.
+ (vect_analyze_data_ref_access): Likewise.
+ (vect_get_loop_niters): Likewise.
+
+2004-01-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-optimize.c: (optimize_function_tree): Cleanup.
+
+ * tree-vectorizer.h: (DBG_VECT, DBG_VECT2): Removed.
+ (vec_array_base_name_differ_p): Removed.
+ (vec_analyze_array): Removed.
+ (struct _stmt_vec_info): New field: loop.
+ (STMT_VINFO_LOOP): New access function to above new field.
+ (new_stmt_vec_info): Additional argument.
+
+ * tree-vectorizer.c: (vect_is_simple_use): New function.
+ (vect_is_supportable_binop): Added call to vect_is_simple_use().
+ (vect_is_supportable_store): Added call to vect_is_simple_use().
+ (vect_is_supportable_load): Added call to vect_is_simple_use().
+
+ (vect_create_index_for_array_ref): Correct handling of accesses with
+ an offset (e.g, a[i+OFF]).
+ (vect_create_data_ref): Pass STMT as an argument to
+ vect_create_index_for_array_ref, instead of an operand.
+ (vect_transform_store): Handle accesses with an offset.
+ (vect_transform_load): Handle accesses with an offset.
+
+ (vect_create_data_ref): Set the mem_tag of the pointer used for the
+ vector data-access to reflect correct may-alias info.
+
+ (get_address_calculation_operands): Removed.
+ (exist_non_indexing_operands_for_use_p): New function, in place of
+ get_address_calculation_operands() to correctly handle induction (for
+ now this means to detect and not attempt to vectorize computations
+ like a[i]=i).
+ (vect_analyze_scalar_cycles): call above new function instead of
+ get_address_calculation_operands().
+ (vect_mark_stmts_to_be_vectorized): Likewise.
+
+ (get_vectype_for_scalar_type): Added test of VECTOR_MODE_SUPPORTED_P.
+
+ (new_stmt_vec_info): Takes also LOOP as an argument and initializes
+ new field STMT_VINFO_LOOP.
+ (new_loop_vec_info): Pass additional argument to new_stmt_vec_info.
+
+ (vect_stmt_relevant_p): Use flow_bb_inside_loop_p instead of comparing
+ loop->depth's.
+ (vect_analyze_operations): Likewise.
+
+ (vect_align_data_ref): Removed stderr debug printouts, some of which
+ replaced with code dumping dependending on TDF_DETAILS to dump_file.
+ (vect_create_index_for_array_ref): Likewise.
+ (vect_create_destination_var): Likewise.
+ (vect_create_data_ref): Likewise.
+ (vect_transform_binop): Likewise.
+ (vect_transform_store): Likewise.
+ (vect_transform_load): Likewise.
+ (vect_transform_stmt): Likewise.
+ (vect_transform_loop_bound): Likewise.
+ (vect_transform_loop): Likewise.
+ (vect_analyze_operations): Likewise.
+ (vect_is_simple_iv_evolution): Likewise.
+ (vect_analyze_scalar_cycles): Likewise.
+ (vect_analyze_data_ref_dependences): Likewise.
+ (vect_analyze_data_refs): Likewise.
+ (vect_mark_relevant): Likewise.
+ (vect_stmt_relevant_p): Likewise.
+ (vect_mark_stmts_to_be_vectorized): Likewise.
+ (vect_get_loop_niters): Likewise.
+ (vectorize_loops): Likewise.
+
+2004-01-13 Sebastian Pop <s.pop@laposte.net>
+ Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-fold-const.h (tree_fold_int_plus, tree_fold_int_minus,
+ tree_fold_int_multiply): Remove NON_LVALUE_EXPR from the
+ answers of the folder. Fixes bootstraps for powerpc.
+
+2004-01-12 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-chrec.c (chrec_fold_plus, chrec_fold_multiply): Verify
+ that there is no chrecs nested in the operands before calling
+ the folder.
+ (evolution_function_in_loop_num): When there is no evolution
+ in the loop, return the initial condition.
+ (evolution_part_in_loop_num): When there is no evolution
+ in the loop, return NULL_TREE.
+ (chrec_eval_next_init_cond): Adapt the function for the
+ multivariate case.
+ (tree_contains_chrecs): Avoid the use of double negation.
+ * tree-chrec.h (chrec_eval_next_init_cond): Add a parameter
+ for the dimension in which to evaluate the variation.
+ * tree-scalar-evolution.c (is_ssa_name_a_version_of_variable,
+ expression_contains_variable_p, remove_variable_from_expression,
+ analyze_non_gimple_initial_condition, matched_an_increment,
+ matched_an_exponentiation, matched_a_wrap_around,
+ matched_an_arithmetic_wrap_around,
+ evolution_of_phi_already_analyzed_p): New static functions.
+ (scev_analyze_modify_expr): Use these functions. Refine the
+ cases detected as wrap-around variables.
+ (analyze_initial_condition): Don't erase the evolution in the
+ previous dimensions when computing the initial condition for a
+ new loop.
+ (analyze_evolution_in_loop): Call the scev_analyze_modify_expr
+ on the tree node, not on its evolution.
+ (scev_follow_ssa_edge): In the case of an inner loop-phi-node,
+ when the outer edge is a phi-node follow up the edge.
+ (scev_follow_ssa_edge): Avoid the analysis of the inner loop
+ when it has already been analyzed.
+ (merge_evolutions): Refine the operation for zero, one, and
+ more branches of evolutions.
+
+2004-01-09 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-scalar-evolution.c: New version of the analyzer.
+ * tree-scalar-evolution.h: Same.
+ * tree-chrec.c: Same.
+ * tree-data-ref.c: Same.
+ * tree-chrec.h: Same.
+ * tree-data-ref.h: Same.
+ * tree-fold-const.h: Same.
+
+ * tree-vectorizer.c (vect_transform_loop_bound,
+ vect_analyze_scalar_cycles, vect_analyze_data_ref_access,
+ vect_analyze_data_refs, vect_get_loop_niters): Use the new
+ interface of the analyzer.
+ * tree-optimize.c (optimize_function_tree): Same.
+
+2004-01-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfgloop.h (loop_is_included_in): Declaration removed.
+ * tree-scalar-evolution.c (stmt_is_in_loop, stmt_is_not_in_loop,
+ loop_is_included_in): Use existing functions to implement
+ them.
+
+2004-01-06 Sebastian Pop <s.pop@laposte.net>
+
+ * cfgloop.h (loop_is_included_in, outer_loop, inner_loop,
+ next_loop, loop_num, loop_depth, loop_header,
+ loop_nb_iterations, loop_num_exits, loop_exit_edges,
+ loop_exit_edge): New inline functions.
+ (loop_is_included_in): Declare here.
+ * tree-flow-inline.h (loop_of_stmt): New inline function.
+ * tree-scalar-evolution.c (loop_is_included_in): Remove declaration.
+ (stmt_is_in_loop, stmt_is_not_in_loop): New functions.
+ (loop_is_included_in, loop_is_included_in_rec): Moved up in the same file.
+
+2004-01-06 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: Fix typos.
+
+2004-01-05 Andreas Jaeger <aj@suse.de>
+
+ * tree-vectorizer.h: Follow coding standards, remove extra
+ whitespace.
+ * tree-vectorizer.c: Likewise.
+
+ * tree-vectorizer.c (vectorize_loops): Output statistics to
+ dump_file, fix printf string.
+ (vect_transform_loop): Replace DBG_VECT code with code dumping
+ dependend on TDF_DETAILS to dump_file.
+ (vect_is_supportable_binop): Likewise.
+ (vect_analyze_operations): Likewise.
+ (get_address_calculation_operands): Likewise.
+ (vect_analyze_scalar_cycles): Likewise.
+ (vect_analyze_data_ref_dependence): Likewise.
+ (vect_analyze_data_ref_access): Likewise.
+ (vect_analyze_data_ref_accesses): Likewise.
+ (vect_analyze_data_refs): Likewise.
+ (vect_mark_relevant): Likewise.
+ (vect_get_loop_niters): Likewise.
+ (vect_mark_stmts_to_be_vectorized): Likewise.
+ (vect_analyze_loop_form): Likewise.
+ (vectorize_loops): Likewise.
+
+ * tree-vectorizer.h (DBG_VEC): Remove.
+
+2004-01-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * doloop.c (doloop_optimize): Update number of iterations for the
+ loops entered at bottom.
+
+2004-01-04 Andreas Jaeger <aj@suse.de>
+
+ * common.opt: Re-order some options in ASCII collating orders.
+
+2004-01-03 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfghooks.h (struct cfg_hooks): New fields split_block_after_labels
+ and move_block_after, type of cfgh_make_forwarder_block field changed.
+ (HEADER_BLOCK, LATCH_EDGE): Moved to cfgloop.c.
+ (split_block_after_labels, move_block_after): New macros.
+ (make_forwarder_block): Changed.
+ * cfgloop.c (HEADER_BLOCK, LATCH_EDGE): Moved from cfghooks.h.
+ (update_latch_info, mfb_keep_just, mfb_keep_nonlatch,
+ fill_sons_in_loop): New functions.
+ (canonicalize_loop_headers): Changed due to changes in
+ make_forwarder_block.
+ * cfgloopmanip.c (split_loop_bb): Don't update dominators.
+ (create_preheader): Use make_forwarder_block.
+ (mfb_keep_just, mfb_update_loops): New.
+ * cfgrtl.c (rtl_split_block_after_labels): New.
+ (redirect_edge_with_latch_update): Removed.
+ (rtl_make_forwarder_block): New sematics.
+ (rtl_split_block): Update dominators.
+ (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks):
+ Add rtl_split_block_after_labels.
+ * tree-cfg.c (tree_make_forwarder_block): Changed semantics.
+ (create_blocks_annotations): Removed.
+ (build_tree_cfg): Don't call create_blocks_annotations.
+ (create_bb): Create annotations for a new block.
+ (tree_split_edge): Don't call create_block_annotation.
+ Update irreducible loop information.
+ (tree_loop_optimizer_finalize): Add loop structure check.
+ (tree_redirect_edge_and_branch_1): Return the original edge if
+ no redirecting is neccessary.
+ (tree_split_block): Make the semantics same as for rtl_split_block.
+ (tree_split_block_after_labels, tree_move_block_after): New.
+ (tree_cfg_hooks): Add tree_split_block_after_labels and
+ tree_move_block_after.
+
+ * cfgloopanal.c (mark_irreducible_loops): Fix.
+ * loop-unswitch.c (unswitch_loop): Fix.
+
+ * Makefile.in (tree-ssa-loop.o): Add cfgloop.h and tree-inline.h
+ dependency.
+ * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
+ copy_loop_headers): Removed.
+ * rtl.h (copy_loop_headers): Declaration removed.
+ * toplev.c (rest_of_compilation): Do not call loop header copying.
+ * tree-dump.c (dump_files): Add .ch dump.
+ * tree-flow.h (tree_duplicate_bb, copy_loop_headers): Declare.
+ * tree-optimize.c (optimize_function_tree): Add loop header copying
+ pass.
+ * tree-ssa-loop.c: Include cfgloop.h and tree-inline.h.
+ (dump_file, dump_flags): Renamed to loop_dump_file and
+ loop_dump_flags.
+ (call_expr_p, should_duplicate_loop_header_p, copy_loop_headers):
+ New.
+ * tree.h (enum tree_dump_index): Add ch dump.
+ * doc/invoke.texi (-fdump-tree-copy-headers): Document.
+ * testsuite/gcc.dg/tree-ssa/20030711-1.c: Update test outcome.
+ * testsuite/gcc.dg/tree-ssa/20030714-2.c: Ditto.
+ * testsuite/gcc.dg/tree-ssa/copy-headers.c: New test.
+ * tree-cfg.c (tree_duplicate_bb): New function.
+
+ * tree-ssa-loop-im.c: New file.
+ * Makefile.in (tree-ssa-loop-im.o): Add.
+ * params.def (PARAM_LIM_EXPENSIVE): New parameter.
+ * tree-dump.c (dump_files): Move .loop dump.
+ * cfgloop.h (superloop_at_depth, get_loop_body_in_dom_order): Declare.
+ (loop_dump_file, loop_dump_flags): Declare variables.
+ * cfgloop.c (superloop_at_depth, get_loop_body_in_dom_order): New
+ functions.
+ * tree-flow.h (struct stmt_ann_d): Add aux field.
+ (bsi_commit_edge_inserts): Declaration changed.
+ (tree_ssa_lim): Declare.
+ * tree-mudflap.c (mf_xform_derefs_1): Use in_array_bounds_p.
+ * tree-optimize.c (optimize_function_tree): Move loop optimization
+ pass.
+ * tree-sra.c (scalarize_structures): Modified due to
+ bsi_commit_edge_inserts change.
+ * tree-ssa-loop.c (tree_ssa_loop_opt): Call tree_ssa_lim.
+ * tree-ssa.c (rewrite_trees, rewrite_vars_out_of_ssa): Modified due to
+ bsi_commit_edge_inserts change.
+ * tree.c (in_array_bounds_p): New function.
+ * tree.h (in_array_bounds_p): Declare.
+ (enum tree_dump_index): Move loop dump.
+ * tree-cfg.c (bsi_commit_edge_inserts): Don't take update_annotations
+ argument.
+
+ * tree-ssa.c (rewrite_into_ssa, rewrite_out_of_ssa): Ensure that the
+ closed files are not used.
+
+ * tree-tailcall.c (find_tail_calls, eliminate_tail_call): Update
+ phi nodes for vdefs of the eliminated call.
+
+2004-01-03 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-optimize.c (optimize_function_tree): Move the closing brace of
+ DCE2 to the right place.
+
+2004-01-03 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-vectorizer.c (vect_analyze_operations): Test vectorization_factor
+ before computing modulo.
+
+2004-01-02 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-vectorizer.c (vect_is_supportable_binop): Returns false instead
+ of NULL.
+
+2004-01-02 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.h (UNITS_PER_SIMD_WORD): New.
+
+2004-01-02 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-data-ref.c (vec_analyze_array, vec_array_base_name_differ_p,
+ array_base_name_differ_p): Removed for fixing the previous patch.
+
+2004-01-02 Richard Henderson <rth@redhat.com>
+
+ * target.h (struct gcc_target): Remove vectype_for_scalar_type.
+ * target-def.h (TARGET_VECTYPE_FOR_SCALAR_TYPE): Remove.
+ * config/rs6000/rs6000.c (rs6000_vectype_for_scalar_type): Remove.
+ (TARGET_VECTYPE_FOR_SCALAR_TYPE): Remove.
+
+ * tree.c (build_vector_type_with_mode): Rename from make_vector,
+ remove unsignedp argument, update callers.
+ (build_vector_type): New.
+ * tree.h (build_vector_type): Declare it.
+ * tree-vectorizer.c (get_vectype_for_scalar_type): Use it.
+
+2004-01-02 Richard Henderson <rth@redhat.com>
+
+ * tree-scalar-evolution.c (finalize_scalar_evolutions_analyzer):
+ Clear dump_file.
+
+2004-01-02 Sebastian Pop <s.pop@laposte.net>
+
+ * tree-data-ref.c (vec_analyze_array): Renamed to analyze_array.
+ (analyze_array): Removed.
+ (find_data_references): Adapted to use the new analyze_array
+ function.
+ (array_base_name_differ_p): Moved to tree-data-ref.h.
+ (vec_array_base_name_differ_p): Removed.
+ * tree-data-ref.h (array_base_name_differ_p): Moved here.
+ * tree-vectorizer.c (vect_analyze_data_ref_dependence): Use
+ array_base_name_differ_p instead of vec_array_base_name_differ_p.
+ (vect_analyze_data_refs): Use analyze_array instead of
+ vec_analyze_array.
+ (vectorize_loops): Remove the initializers and finalizers of the
+ scalar evolution analyzer.
+
+2004-01-01 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c: New file. Implements loop vectorization
+ pass.
+ * tree-vectorizer.h: New file.
+ * Makefile.in: (tree-vectorizer.c,tree-vectorizer.h): New files.
+ * tree-dump.c: (dump_files): New dump file for the new
+ vectorization pass.
+ * tree.h: (TDI_vect): New dump index for the new vectorization
+ pass.
+ * timevar.def (TV_TREE_VECTORIZATION): Support new
+ vectorization pass.
+ * opts.c: (flag_tree_vetorize): New flag to enable/disable the
+ new vectorization pass.
+ * flags.h: Same.
+ * toplev.c: Same.
+ * common.opt: (ftree-vectorize): Same.
+ * doc/invoke.texi: Document above new options.
+ * tree-optimize.c: (optimize_function_tree): Invoke the new
+ vetorization pass.
+ * tree-flow.h: (struct stmt_ann_d): New field (aux) to allow
+ recording information per stmt.
+ * tree-data-ref.c (vec_analyze_array): New function, exposing
+ API to the vectorizer.
+ (vec_array_base_name_differ_p): New function, exposing API to
+ the vectorizer.
+ * tree-data-ref.h: Same.
+ * defaults.h: (UNITS_PER_SIMD_WORD): Define.
+ * config/rs6000/rs6000.h: (UNITS_PER_SIMD_WORD): Same.
+ * target-def.h (TARGET_VECTYPE_FOR_SCALAR_TYPE): Declare a new
+ target hook for vectorization.
+ * target.h (vectype_for_scalar_type): Same.
+ * config/rs6000/rs6000.c: (rs6000_vectype_for_scalar_type):
+ Implement the above new target hook.
+
+2003-12-31 Sebastian Pop <s.pop@laposte.net>
+
+ * version.c (version_string): Change the identifier for the
+ sub-branch.
+
+2003-12-31 Sebastian Pop <s.pop@laposte.net>
+ Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-phinodes.c (create_phi_node): Initialise PHI_MARKED to 0.
+ * tree-scalar-evolution.c (already_visited,
+ node_already_visited_by_ssa_path): Removed.
+ (analyze_evolution): Remove initialisation of already_visited.
+ (construct_schedule): idem.
+ (monev_follow_ssa_edge): use PHI_MARKED for deciding whether
+ to analyze the phi-node.
+ (follow_ssa_edge_and_record_dependences_rec): idem.
+ * tree.h (PHI_MARKED): New macro.
+ (tree_phi_node): Add a field marked.
+
+2003-12-27 Sebastian Pop <s.pop@laposte.net>
+
+ * Makefile.in (OBJS-common): Added tree-chrec.o
+ tree-scalar-evolution.o, tree-data-ref.o, tree-fold-const.o.
+ (tree-optimize.o): Add dependencies on tree-fold-const.h
+ tree-chrec.h tree-scalar-evolution.h tree-data-ref.h
+ (tree-chrec.o, tree-scalar-evolution.o, tree-data-ref.o,
+ tree-fold-const.o): New rules.
+ * cfgloop.h (loop): New field nb_iterations.
+ (loop_from_num): New function.
+ * common.opt (fscalar-evolutions, fall-data-deps): Added.
+ * flags.h (flag_scalar_evolutions, flag_all_data_deps): Declared.
+ * opts.c (decode_options, common_handle_option): Initialize
+ flag_scalar_evolutions and flag_all_data_deps.
+ * timevar.def (TV_SCALAR_EVOLUTIONS, TV_ALL_DATA_DEPS): New.
+ * toplev.c (flag_scalar_evolutions, flag_all_data_deps): Defined.
+ (lang_independent_options): Add flag_scalar_evolutions and
+ flag_all_data_deps.
+ * tree-dump.c (scev, alldd): New extensions.
+ * tree.h (tree_dump_index): Added TDI_scev and TDI_alldd.
+ * tree-optimize.c (tree-fold-const.h, tree-chrec.h,
+ tree-scalar-evolution.h, tree-data-ref.h): Included.
+ (optimize_function_tree): Added the entry point for the analysis of
+ scalar evolutions and data dependences.
+ * tree-pretty-print.c (tree-fold-const.h, tree-chrec.h): Included.
+ (dump_generic_node): Added code for dumping POLYNOMIAL_CHREC,
+ EXPONENTIAL_CHREC, PERIODIC_CHREC, and INTERVAL_CHREC.
+ * tree.def (INTERVAL_CHREC, POLYNOMIAL_CHREC, EXPONENTIAL_CHREC,
+ PERIODIC_CHREC): New tree nodes.
+ * varray.h (index_in_varray_tree, tree_is_in_varray_tree_p,
+ index_in_varray_int, int_is_in_varray_int_p): New inlined functions.
+ * tree-chrec.c, tree-chrec.h, tree-data-ref.c, tree-data-ref.h,
+ tree-fold-const.c, tree-fold-const.h, tree-scalar-evolution.c,
+ tree-scalar-evolution.h: New files.
+ * doc/invoke.texi (-fdump-scalar-evolutions, -fdump-all-data-deps):
+ Documented.
+ * testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-[01..50].c : New testcases.
+ * testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-[01..50].c.scev: Expected
+ outputs for the scalar evolution analyzer.
+ * testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-{10, 30, 31, 32, 33, 34,
+ 35, 36}.c.alldd: Expected outputs for the data dependence analyzer.
+ * testsuite/gcc.dg/tree-ssa-chrec/tree-ssa-scev.exp: New file.
+ * testsuite/lib/scantree.exp (diff-tree-dumps): New procedure.
+ * ChangeLog.lno: New file.
diff --git a/gcc/ChangeLog.tree-ssa b/gcc/ChangeLog.tree-ssa
index cf077aa1e36..4f22a6e77c8 100644
--- a/gcc/ChangeLog.tree-ssa
+++ b/gcc/ChangeLog.tree-ssa
@@ -3420,7 +3420,7 @@
* tree-alias-common.c (find_func_aliases): Do not call
intra_function_call for languages assuring no aliasing between
- arguments (by themselves) and and global memory.
+ arguments (by themselves) and global memory.
2003-12-21 Jan Hubicka <jh@suse.cz>
@@ -7693,7 +7693,7 @@
(finalize): Free allocations.
(cfg_blocks_empty): New. Is cfg_blocks queue list.
(cfg_blocks_add): New. Add a basic block to cfg_blocks list.
- (cfg_blocks_pop): New. Get a a basic_block form the list.
+ (cfg_blocks_pop): New. Get a basic_block from the list.
2003-09-18 Richard Henderson <rth@redhat.com>
@@ -9565,7 +9565,7 @@
(optimize_stmt): Don't abort if a statement makes more than one
definition.
Check for MODIFY_EXPR statements directly, instead of relying on
- the the presence of a single definition.
+ the presence of a single definition.
* tree-ssa-pre.c (tree_perform_ssapre): Call dump_function_to_file
instead of dump_function.
* tree-ssa.c (rewrite_into_ssa): Likewise.
@@ -15291,7 +15291,7 @@
* tree-ssa-dce (tree_ssa_eliminate_dead_code): Initialize prev to
NULL_TREE.
Don't close dump_file until end of function.
- Dump the the tree after DCE for -fdump-tree-dce.
+ Dump the tree after DCE for -fdump-tree-dce.
2002-10-08 Richard Henderson <rth@redhat.com>
Jason Merrill <jason@redhat.com>
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 44a954a21f3..2790b142768 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -301,14 +301,17 @@ INSTALL_HEADERS_DIR = @build_install_headers_dir@
# Header files that are made available under the same name
# to programs compiled with GCC.
+# APPLE LOCAL begin radar 2872232 add tgmath.h
USER_H = $(srcdir)/ginclude/float.h \
$(srcdir)/ginclude/iso646.h \
$(srcdir)/ginclude/stdarg.h \
$(srcdir)/ginclude/stdbool.h \
$(srcdir)/ginclude/stddef.h \
+ $(srcdir)/ginclude/tgmath.h \
$(srcdir)/ginclude/varargs.h \
$(srcdir)/unwind.h \
$(EXTRA_HEADERS)
+# APPLE LOCAL end radar 2872232 add tgmath.h
# The GCC to use for compiling libgcc.a and crt*.o.
# Usually the one we just built.
@@ -518,11 +521,14 @@ INSTALL_LIBGCC = install-libgcc
# Options to use when compiling libgcc2.a.
#
LIBGCC2_DEBUG_CFLAGS = -g
-LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@
+# APPLE LOCAL control opt level. --ilr
+LIBGCC2_CFLAGS = $(LIBGCC2_OPT) $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@
# Additional options to use when compiling libgcc2.a.
# Some targets override this to -isystem include
LIBGCC2_INCLUDES =
+# APPLE LOCAL control opt level. --ilr
+LIBGCC2_OPT = -O2
# Additional target-dependent options for compiling libgcc2.a.
TARGET_LIBGCC2_CFLAGS =
@@ -635,6 +641,24 @@ UNPROTOIZE_INSTALL_NAME := $(shell echo unprotoize|sed '$(program_transform_name
GCOV_INSTALL_NAME := $(shell echo gcov|sed '$(program_transform_name)')
GCCBUG_INSTALL_NAME := $(shell echo gccbug|sed '$(program_transform_name)')
+# APPLE LOCAL begin order files --ilr
+# When configure --enable-build_gcc is specified then we know that the
+# makefile was created as a result of using build_gcc. For such builds
+# we want to use the order files in the order-files directory. The
+# makefile will test ORDER_FILES. If it is not null then the appropriate
+# order file is added to the cc1* link.
+#ORDER_FILES = @enable_build_gcc@
+### ORDER FILES ARE CURRENTLY DISABLED. TO ENABLE THEM REMOVE THE LINE ###
+### BELOW AND UNCOMMENT THE LINE ABOVE. ###
+ORDER_FILES =
+ifeq ($(ORDER_FILES),yes)
+CC1_ORDER_FLAGS = `if [ -f $(srcdir)/../order-files/cc1.order ]; then \
+ echo -sectorder __TEXT __text $(srcdir)/../order-files/cc1.order -e start ; fi`
+else
+CC1_ORDER_FLAGS =
+endif
+# APPLE LOCAL end order files --ilr
+
# Setup the testing framework, if you have one
EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \
echo $${rootme}/../expect/expect ; \
@@ -891,6 +915,7 @@ C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
C_OBJS = c-parse.o c-lang.o stub-objc.o $(C_AND_OBJC_OBJS)
# Language-independent object files.
+# APPLE LOCAL begin lno, loops-to-memset
OBJS-common = \
tree-chrec.o tree-scalar-evolution.o tree-data-ref.o \
tree-cfg.o tree-dfa.o tree-eh.o tree-ssa.o tree-optimize.o tree-gimple.o \
@@ -902,12 +927,14 @@ OBJS-common = \
tree-ssa-dom.o domwalk.o tree-tailcall.o gimple-low.o tree-iterator.o \
tree-phinodes.o tree-ssanames.o tree-sra.o tree-complex.o tree-ssa-loop.o \
tree-ssa-loop-niter.o tree-ssa-loop-manip.o tree-ssa-threadupdate.o \
- tree-vectorizer.o tree-ssa-loop-ivcanon.o tree-ssa-propagate.o \
+ tree-vectorizer.o tree-vect-analyze.o tree-vect-transform.o \
+ tree-ssa-loop-ivcanon.o tree-ssa-propagate.o \
tree-ssa-loop-ivopts.o tree-if-conv.o tree-ssa-loop-unswitch.o \
alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o \
cfg.o cfganal.o cfgbuild.o cfgcleanup.o cfglayout.o cfgloop.o \
cfgloopanal.o cfgloopmanip.o loop-init.o loop-unswitch.o loop-unroll.o \
cfgrtl.o combine.o conflict.o convert.o coverage.o cse.o cselib.o \
+ tree-ssa-loop-prefetch.o tree-ssa-loop-memset.o \
dbxout.o ddg.o tree-ssa-loop-ch.o loop-invariant.o tree-ssa-loop-im.o \
debug.o df.o diagnostic.o dojump.o dominance.o loop-doloop.o \
dwarf2asm.o dwarf2out.o emit-rtl.o except.o explow.o loop-iv.o \
@@ -929,6 +956,7 @@ OBJS-common = \
et-forest.o cfghooks.o bt-load.o pretty-print.o $(GGC) web.o passes.o \
rtl-profile.o tree-profile.o rtlhooks.o cfgexpand.o lambda-mat.o \
lambda-trans.o lambda-code.o tree-loop-linear.o
+# APPLE LOCAL end lno, loops-to-memset
OBJS-md = $(out_object_file)
OBJS-archive = $(EXTRA_OBJS) $(host_hook_obj) tree-inline.o \
@@ -949,14 +977,16 @@ STAGECOPYSTUFF = insn-flags.h insn-config.h insn-codes.h \
genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h
# Files to be moved away after each stage in building.
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
STAGEMOVESTUFF = *$(objext) s-* \
- xgcc$(exeext) cpp$(exeext) cc1$(exeext) $(EXTRA_PASSES) \
+ xgcc$(exeext) cpp$(exeext) cc1$(exeext) cc1*-dummy$(exeext) $(EXTRA_PASSES) \
$(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) \
protoize$(exeext) unprotoize$(exeext) \
$(SPECS) collect2$(exeext) \
gcov-iov$(build_exeext) gcov$(exeext) gcov-dump$(exeext) \
- *.[0-9][0-9].* *.[si] libbackend.a libgcc.mk \
+ *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk \
$(LANG_STAGESTUFF)
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
# Defined in libgcc2.c, included only in the static library.
LIB2FUNCS_ST = _eprintf __gcc_bcmp
@@ -1182,9 +1212,22 @@ $(SPECS): xgcc$(exeext)
gcc-cross: xgcc$(exeext)
cp xgcc$(exeext) gcc-cross$(exeext)
-cc1$(exeext): $(C_OBJS) $(BACKEND) $(LIBDEPS)
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cc1$(exeext) \
- $(C_OBJS) $(BACKEND) $(LIBS)
+# APPLE LOCAL begin order files --ilr
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+cc1-dummy$(exeext): $(C_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) dummy-checksum.o \
+ $(BACKEND) $(LIBS) $(CC1_ORDER_FLAGS)
+
+cc1-checksum.c : cc1-dummy$(exeext) build/genchecksum$(exeext)
+ build/genchecksum$(exeext) cc1-dummy$(exeext) > $@
+
+cc1-checksum.o : cc1-checksum.c
+
+cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) cc1-checksum.o \
+ $(BACKEND) $(LIBS) $(CC1_ORDER_FLAGS)
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
+# APPLE LOCAL end order files --ilr
# Build the version of limits.h that we will install.
xlimits.h: glimits.h limitx.h limity.h
@@ -1222,7 +1265,8 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext
DPBIT_FUNCS='$(DPBIT_FUNCS)' \
TPBIT='$(TPBIT)' \
TPBIT_FUNCS='$(TPBIT_FUNCS)' \
- MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
+ APPLE_LOCAL='APPLE LOCAL libcc_kext' \
+ MULTILIBS="`$(GCC_FOR_TARGET) --print-multi-lib` static;@static@fno-pic kext;@Dmalloc=kern_os_malloc@Dfree=kern_os_free@DLIBCC_KEXT@static@fno-pic@fno-exceptions@fno-non-call-exceptions$(KEXT_EXTRA_FLAGS)" \
EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
SHLIB_LINK='$(SHLIB_LINK)' \
SHLIB_INSTALL='$(SHLIB_INSTALL)' \
@@ -1382,10 +1426,14 @@ c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
c-objc-common.h c-pragma.h
stub-objc.o : stub-objc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
$(GGC_H) $(C_COMMON_H)
+# APPLE LOCAL begin 4133801
c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(RTL_H) debug.h $(C_TREE_H) $(C_COMMON_H) real.h c-incpath.h cppdefault.h \
$(C_PRAGMA_H) input.h intl.h $(FLAGS_H) toplev.h output.h \
- $(CPPLIB_H) $(EXPR_H) $(TM_P_H)
+ $(CPPLIB_H) $(EXPR_H) $(TM_P_H) langhooks.h
+# APPLE LOCAL end 4133801
+# APPLE LOCAL AltiVec
+c-lex.o: $(TARGET_H) ../libcpp/internal.h
c-ppoutput.o : c-ppoutput.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(C_COMMON_H) $(TREE_H) $(CPPLIB_H) $(srcdir)/../libcpp/internal.h $(TM_P_H) $(C_PRAGMA_H)
c-objc-common.o : c-objc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
@@ -1430,6 +1478,8 @@ c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \
intl.h opts.h real.h $(CPPLIB_H) tree-inline.h $(HASHTAB_H) \
builtins.def
+# APPLE LOCAL 64bit shorten warning 3865314
+c-common.o : options.h
c-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \
$(C_COMMON_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) real.h \
@@ -1445,6 +1495,8 @@ c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) $(FLAGS_H) toplev.h \
langhooks.h output.h except.h real.h $(TARGET_H) $(TM_P_H)
+# APPLE LOCAL pascal strings
+c-cppbuiltin.o : ../libcpp/include/cpplib.h ../libcpp/internal.h
# A file used by all variants of C and some other languages.
@@ -1501,6 +1553,16 @@ gccspec.o: gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
cppspec.o: cppspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H)
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+build/genchecksum$(build_exeext) : build/genchecksum.o $(BUILD_LIBDEPS)
+ $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o $@ \
+ build/genchecksum.o $(BUILD_LIBS)
+
+build/genchecksum.o : genchecksum.c $(BCONFIG_H) $(SYSTEM_H) $(MD5_H)
+
+dummy-checksum.o : dummy-checksum.c
+
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
tree-check.h: s-check ; @true
s-check : build/gencheck$(build_exeext)
$(RUN_GEN) build/gencheck$(build_exeext) > tmp-check.h
@@ -1545,7 +1607,8 @@ options.h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk
$(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/opth-gen.awk \
< $< > $@
-options.o: options.c options.h opts.h intl.h
+# APPLE LOCAL optimization pragmas 3124235/3420242
+options.o: options.c options.h opts.h intl.h config.h system.h hwint.h coretypes.h
dumpvers: dumpvers.c
@@ -1576,12 +1639,15 @@ prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) Makefile prefix.h
-DPREFIX=\"$(prefix)\" \
-c $(srcdir)/prefix.c $(OUTPUT_OPTION)
+# APPLE LOCAL begin AltiVec
convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(FLAGS_H) \
- convert.h toplev.h langhooks.h
-
+ convert.h toplev.h langhooks.h c-tree.h c-common.h
+# APPLE LOCAL end AltiVec
+# APPLE LOCAL begin 4133801
langhooks.o : langhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) toplev.h \
tree-inline.h $(RTL_H) insn-config.h $(INTEGRATE_H) langhooks.h \
- $(LANGHOOKS_DEF_H) $(FLAGS_H) $(GGC_H) diagnostic.h intl.h
+ $(LANGHOOKS_DEF_H) $(FLAGS_H) $(GGC_H) diagnostic.h intl.h debug.h
+# APPLE LOCAL end 4133801
tree.o : tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(FLAGS_H) function.h $(PARAMS_H) \
toplev.h $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) langhooks.h \
@@ -1636,11 +1702,14 @@ tree-ssa-propagate.o : tree-ssa-propagate.c $(TREE_FLOW_H) $(CONFIG_H) \
diagnostic.h errors.h function.h $(TIMEVAR_H) $(TM_H) coretypes.h \
$(TREE_DUMP_H) $(BASIC_BLOCK_H) tree-pass.h langhooks.h \
tree-ssa-propagate.h vec.h gt-tree-ssa-propagate.h
+# APPLE LOCAL begin lno
tree-ssa-dom.o : tree-ssa-dom.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h diagnostic.h \
errors.h function.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
$(BASIC_BLOCK_H) domwalk.h real.h tree-pass.h $(FLAGS_H) langhooks.h \
- tree-ssa-propagate.h
+ tree-ssa-propagate.h \
+ cfgloop.h
+# APPLE LOCAL end lno
tree-ssa-threadupdate.o : tree-ssa-threadupdate.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \
diagnostic.h errors.h function.h $(TM_H) coretypes.h $(TREE_DUMP_H) \
@@ -1696,14 +1765,20 @@ tree-ssa-operands.o : tree-ssa-operands.c $(TREE_FLOW_H) $(CONFIG_H) \
tree-eh.o : tree-eh.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(RTL_H) $(TREE_H) $(TM_H) $(FLAGS_H) function.h except.h langhooks.h \
$(GGC_H) tree-pass.h gt-tree-eh.h
+# APPLE LOCAL begin lno
tree-ssa-loop.o : tree-ssa-loop.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
- tree-pass.h $(FLAGS_H) tree-inline.h $(SCEV_H)
+ tree-pass.h $(FLAGS_H) tree-inline.h $(SCEV_H) function.h
tree-ssa-loop-unswitch.o : tree-ssa-loop-unswitch.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) domwalk.h $(PARAMS_H)\
output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
tree-pass.h
+tree-ssa-loop-prefetch.o : tree-ssa-loop-prefetch.c $(TREE_FLOW_H) $(CONFIG_H) \
+ $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) varray.h $(EXPR_H) \
+ output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
+ tree-pass.h $(GGC_H) $(RECOG_H) insn-config.h $(HASHTAB_H) $(SCEV_H)
+# APPLE LOCAL end lno
tree-ssa-loop-niter.o : tree-ssa-loop-niter.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) cfgloop.h $(PARAMS_H) tree-inline.h \
output.h diagnostic.h $(TM_H) coretypes.h $(TREE_DUMP_H) $(FLAGS_H) \
@@ -1712,6 +1787,12 @@ tree-ssa-loop-ivcanon.o : tree-ssa-loop-ivcanon.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) tree-inline.h \
output.h diagnostic.h $(TM_H) coretypes.h $(TREE_DUMP_H) $(FLAGS_H) \
tree-pass.h $(SCEV_H)
+# APPLE LOCAL begin loops-to-memset
+tree-ssa-loop-memset.o : tree-ssa-loop-memset.c $(TREE_FLOW_H) $(CONFIG_H) \
+ $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) cfgloop.h $(PARAMS_H) tree-inline.h \
+ output.h diagnostic.h $(TM_H) coretypes.h $(TREE_DUMP_H) flags.h \
+ tree-pass.h $(SCEV_H)
+# APPLE LOCAL end loops-to-memset
tree-ssa-loop-ch.o : tree-ssa-loop-ch.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) tree-inline.h \
output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
@@ -1720,11 +1801,13 @@ tree-ssa-loop-ivopts.o : tree-ssa-loop-ivopts.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) varray.h $(EXPR_H) \
output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
tree-pass.h $(GGC_H) $(RECOG_H) insn-config.h $(HASHTAB_H) $(SCEV_H) \
- cfgloop.h $(PARAMS_H) sbitmap.h
+ cfgloop.h $(PARAMS_H) sbitmap.h langhooks.h
+# APPLE LOCAL begin lno added tree-inline.h $(FLAGS_H)
tree-ssa-loop-manip.o : tree-ssa-loop-manip.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) \
output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
- tree-pass.h cfglayout.h $(SCEV_H)
+ tree-pass.h cfglayout.h $(SCEV_H) tree-inline.h $(FLAGS_H)
+# APPLE LOCAL end lno added tree-inline.h $(FLAGS_H)
tree-ssa-loop-im.o : tree-ssa-loop-im.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) domwalk.h $(PARAMS_H)\
output.h diagnostic.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \
@@ -1733,12 +1816,14 @@ tree-ssa-alias.o : tree-ssa-alias.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
$(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) tree-inline.h $(FLAGS_H) \
function.h $(TIMEVAR_H) convert.h $(TM_H) coretypes.h \
langhooks.h $(TREE_DUMP_H) tree-pass.h params.h
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) \
$(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) \
$(GGC_H) output.h diagnostic.h errors.h $(FLAGS_H) \
$(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) toplev.h function.h \
langhooks.h $(FLAGS_H) $(CGRAPH_H) tree-inline.h tree-mudflap.h $(GGC_H) \
- $(CGRAPH_H) tree-pass.h
+ $(CGRAPH_H) tree-pass.h opts.h
+# APPLE LOCAL end optimization pragmas 3124235/3420242
c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) errors.h \
$(C_TREE_H) $(C_COMMON_H) diagnostic.h $(TREE_GIMPLE_H) varray.h $(FLAGS_H) \
langhooks.h toplev.h rtl.h $(TREE_FLOW_H) langhooks-def.h \
@@ -1765,10 +1850,18 @@ tree-data-ref.o: tree-data-ref.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
errors.h $(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \
$(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h \
tree-data-ref.h $(SCEV_H) tree-pass.h $(LAMBDA_H)
+tree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+ errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \
+ $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h \
+ tree-vectorizer.h tree-data-ref.h $(SCEV_H) $(EXPR_H)
+tree-vect-transform.o: tree-vect-transform.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+ errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \
+ $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h target.h tree-pass.h $(EXPR_H) \
+ tree-vectorizer.h tree-data-ref.h $(SCEV_H) langhooks.h toplev.h
tree-vectorizer.o: tree-vectorizer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \
$(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h tree-pass.h $(EXPR_H) \
- tree-vectorizer.h tree-data-ref.h $(SCEV_H)
+ tree-vectorizer.h tree-data-ref.h $(SCEV_H) input.h target.h cfglayout.h
tree-loop-linear.o: tree-loop-linear.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \
$(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h tree-pass.h \
@@ -2501,13 +2594,16 @@ genprognames=genconfig genflags gencodes genemit genopinit genrecog \
genprogs=$(genprognames:%=build/%$(build_exeext))
# Object files used in those programs.
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
genobjnames=$(genprognames:%=%.o) read-rtl.o gensupport.o genattrtab.o \
genautomata.o gengenrtl.o genmodes.o genpreds.o gengtype.o \
genconstants.o gen-protos.o scan.o fix-header.o scan-decls.o \
gencheck.o dummy-conditions.o genconditions.o errors.o ggc-none.o \
min-insn-modes.o rtl.o print-rtl.o varray.o gcov-iov.o \
- insn-conditions.o gengtype-lex.o gengtype-yacc.o genmddeps.o
+ insn-conditions.o gengtype-lex.o gengtype-yacc.o genmddeps.o \
+ genchecksum.o
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
genobjs=$(genobjnames:%=build/%)
$(genprogs): %$(build_exeext): %.o $(BUILD_RTL) $(BUILD_SUPPORT) \
@@ -2956,11 +3052,13 @@ srcinfo: $(INFOFILES)
TEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi
+# APPLE LOCAL begin GPL compliance
TEXI_GCC_FILES = gcc.texi gcc-common.texi frontends.texi standards.texi \
invoke.texi extend.texi md.texi objc.texi gcov.texi trouble.texi \
bugreport.texi service.texi contribute.texi compat.texi funding.texi \
gnu.texi gpl.texi fdl.texi contrib.texi cppenv.texi cppopts.texi \
- implement-c.texi
+ implement-c.texi sourcecode.texi
+# APPLE LOCAL end GPL compliance
TEXI_GCCINT_FILES = gccint.texi gcc-common.texi contribute.texi makefile.texi \
configterms.texi portability.texi interface.texi passes.texi \
@@ -3120,6 +3218,10 @@ mostlyclean: lang.mostlyclean
# Delete files generated by gengtype.c
-rm -f gtype-*
-rm -f gt-*
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+# Delete genchecksum outputs
+ -rm -f *-checksum.c
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
# Delete all files made by compilation
# that don't exist in the distribution.
@@ -3193,7 +3295,8 @@ install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
lang.install-normal install-driver
# Handle cpp installation.
-install-cpp: cpp$(exeext)
+# APPLE LOCAL install-cpp bug
+install-cpp: cpp$(exeext) installdirs
-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 \
@@ -3305,7 +3408,8 @@ $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
else true; fi;
# Install the man pages.
-install-man: installdirs lang.install-man \
+ # APPLE LOCAL mainline 4.1 2005-06-16
+install-man: lang.install-man \
$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) \
$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext) \
$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext) \
@@ -3313,22 +3417,26 @@ install-man: installdirs lang.install-man \
$(DESTDIR)$(man7dir)/gfdl$(man7ext) \
$(DESTDIR)$(man7dir)/gpl$(man7ext)
-$(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7
+ # APPLE LOCAL mainline 4.1 2005-06-16
+$(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7 installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@
-$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext): doc/gcc.1
+ # APPLE LOCAL mainline 4.1 2005-06-16
+$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext): doc/gcc.1 installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@
-$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext): doc/cpp.1
+ # APPLE LOCAL mainline 4.1 2005-06-16
+$(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext): doc/cpp.1 installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@
-$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext): doc/gcov.1
+ # APPLE LOCAL mainline 4.1 2005-06-16
+$(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext): doc/gcov.1 installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@
@@ -3883,28 +3991,39 @@ slowcompare slowcompare3 slowcompare4 slowcompare-lean slowcompare3-lean slowcom
fastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean fastcompare4-lean \
gnucompare gnucompare3 gnucompare4 gnucompare-lean gnucompare3-lean gnucompare4-lean: force
-rm -f .bad_compare
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
- for dir in . $(SUBDIRS); do \
+ for dir in . $(SUBDIRS) libgcc; do \
if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
for file in $$dir/*$(objext); do \
- case "$@" in \
- slowcompare* ) \
- tail +16c ./$$file > tmp-foo1; \
- tail +16c stage$$stage/$$file > tmp-foo2 \
- && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 || echo $$file differs >> .bad_compare) || true; \
- ;; \
- fastcompare* ) \
- cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
- test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
- ;; \
- gnucompare* ) \
- cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1; \
- test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
+ case $$file in \
+ ./cc*-checksum$(objext) | libgcc/* ) \
+ tail +16c ./$$file > tmp-foo1 \
+ && tail +16c stage$$stage/$$file > tmp-foo2 \
+ && ( cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 \
+ || echo warning: $$file differs || true ) \
;; \
+ *) case "$@" in \
+ slowcompare* ) \
+ tail +16c ./$$file > tmp-foo1; \
+ tail +16c stage$$stage/$$file > tmp-foo2 \
+ && (cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1 \
+ || echo $$file differs >> .bad_compare) || true; \
+ ;; \
+ fastcompare* ) \
+ cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
+ test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
+ ;; \
+ gnucompare* ) \
+ cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1; \
+ test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
+ ;; \
+ esac ; \
esac ; \
done; \
else true; fi; \
done
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
-rm -f tmp-foo*
case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
if [ -f .bad_compare ]; then \
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a1bab757948..8d0924e2403 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,132 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-07 Laurent GUERBY <laurent@guerby.net>
+ John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * Makefile.in: Add make ifeq define for hppa linux tasking support.
+ * system-hpux.ads: Define Signed_Zeros to be True.
+ * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
+
+2005-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/18659
+ PR ada/18819
+ * misc.c (tree_sra_requested): New global.
+ (gnat_init_options): Detect -ftree-sra.
+ (gnat_post_options): Enable Tree-SRA only if specifically requested.
+
+2005-04-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/19956
+ Backport from mainline:
+
+ 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * utils.c (finish_record_type): Use variable_size when setting sizes.
+
+2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/20255
+ Backport from mainline:
+
+ 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
+ * utils.c (convert) <UNION_TYPE>: Accept slight type variations when
+ converting to an unchecked union type.
+
+2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/18727
+ Backport from mainline:
+
+ 2005-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
+ replace the N_Freeze_Entity with a null statement.
+ * exp_ch3.adb (Freeze_Type): Now a function that returns True if
+ the N_Freeze_Entity is to be deleted.
+ * exp_ch3.ads (Freeze_Type): Now a function that returns Boolean.
+ * freeze.adb (Undelay_Type): New Subprogram.
+ (Set_Small_Size): Pass T, the type to modify; all callers changed.
+ (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
+ within records; allow them to have freeze nodes if their base types
+ aren't frozen yet.
+ * sem_ch3.adb (Constrain_Access, Constrain_Array): Allow itypes to be
+ delayed.
+ * gigi.h (gnat_to_gnu_field_decl): New decl.
+ * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Call
+ copy_alias_set.
+ (gnat_to_gnu_field_decl): New function.
+ (substitution_list, annotate_rep): Call it.
+ (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
+ (gnat_to_gnu_entity, case E_Record_Type): Likewise.
+ No longer update discriminants to not be a COMPONENT_REF.
+ (copy_alias_set): Strip padding from input type; also handle
+ unconstrained arrays properly.
+ * trans.c (gnat_to_gnu, case N_Selected_Component): Call
+ gnat_to_gnu_field_decl.
+ (assoc_to_constructor): Likewise.
+
+2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/19408
+ PR ada/19900
+ Backport from mainline:
+
+ 2005-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * exp_util.adb (Remove_Side_Effects): Properly test for
+ Expansion_Delayed and handle case when it's inside an
+ N_Qualified_Expression.
+ * decl.c (gnat_to_gnu_entity, case E_Component): Always look at
+ Original_Record_Component if Present and not the entity.
+ (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtype
+ of tagged extension types by not making field for components that are
+ inside the parent.
+ * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
+ Expansion_Delayed is False.
+ (assoc_to_constructor): Ignore fields that have a
+ Corresponding_Discriminant.
+
+2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/19140
+ Backport from mainline:
+
+ 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
+ * decl.c (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
+ expression to the type of the object when the object is constant.
+ * trans.c (gnat_to_gnu) <N_Return_Statement>: Restructure. Set
+ gnu_result to NULL_TREE on entry. If the function returns "by
+ target", dereference the target pointer using the type of the
+ actual return value.
+ <all>: Be prepared for a null gnu_result.
+ * utils2.c (build_binary_op): Fix typo.
+
+2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/20344
+ Backport from mainline:
+
+ 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
+ * lang.opt: Fix specification of -fRTS=.
+ * misc.c (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
+
+2005-03-15 Jakub Jelinek <jakub@redhat.com>
+
+ * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
+ ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
+ ada/bldtools to avoid make -jN failures.
+
+2005-03-08 Laurent Guerby <laurent@guerby.net>
+
+ * system-linux-sparc.ads: Fix typo in previous commit.
+
+2005-03-07 James A. Morrison <phython@gcc.gnu.org>
+ Laurent Guerby <laurent@guerby.net>
+
+ PR ada/20035
+ * system-linux-sparc.ads: New.
+ * Makefile.in: Add sparc linux entry.
+
2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
PR ada/19942
diff --git a/gcc/ada/Make-lang.in b/gcc/ada/Make-lang.in
index 220b3563a29..030c82f406d 100644
--- a/gcc/ada/Make-lang.in
+++ b/gcc/ada/Make-lang.in
@@ -878,29 +878,29 @@ ada/b_gnatb.c : $(GNATBIND_OBJS) ada/gnatbind.o ada/interfac.o
ada/b_gnatb.o : ada/b_gnatb.c
ada/treeprs.ads : ada/treeprs.adt ada/sinfo.ads ada/xtreeprs.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xtreeprs ; ./xtreeprs ../treeprs.ads )
+ -$(MKDIR) ada/bldtools/treeprs
+ $(CP) $^ ada/bldtools/treeprs
+ (cd ada/bldtools/treeprs; gnatmake -q xtreeprs ; ./xtreeprs ../../treeprs.ads )
ada/einfo.h : ada/einfo.ads ada/einfo.adb ada/xeinfo.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xeinfo ; ./xeinfo ../einfo.h )
+ -$(MKDIR) ada/bldtools/einfo
+ $(CP) $^ ada/bldtools/einfo
+ (cd ada/bldtools/einfo; gnatmake -q xeinfo ; ./xeinfo ../../einfo.h )
ada/sinfo.h : ada/sinfo.ads ada/xsinfo.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xsinfo ; ./xsinfo ../sinfo.h )
+ -$(MKDIR) ada/bldtools/sinfo
+ $(CP) $^ ada/bldtools/sinfo
+ (cd ada/bldtools/sinfo; gnatmake -q xsinfo ; ./xsinfo ../../sinfo.h )
ada/nmake.adb : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xnmake ; ./xnmake -b ../nmake.adb )
+ -$(MKDIR) ada/bldtools/nmake_b
+ $(CP) $^ ada/bldtools/nmake_b
+ (cd ada/bldtools/nmake_b; gnatmake -q xnmake ; ./xnmake -b ../../nmake.adb )
ada/nmake.ads : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb ada/nmake.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
- (cd ada/bldtools; gnatmake -q xnmake ; ./xnmake -s ../nmake.ads )
+ -$(MKDIR) ada/bldtools/nmake_s
+ $(CP) $^ ada/bldtools/nmake_s
+ (cd ada/bldtools/nmake_s; gnatmake -q xnmake ; ./xnmake -s ../../nmake.ads )
update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \
ada/nmake.ads
diff --git a/gcc/ada/Makefile.in b/gcc/ada/Makefile.in
index 1e6e5350f3d..91c8b65b2b4 100644
--- a/gcc/ada/Makefile.in
+++ b/gcc/ada/Makefile.in
@@ -1341,6 +1341,56 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(arch) $(osys))),)
LIBRARY_VERSION := $(LIB_VERSION)
endif
+ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-intnam.ads<a-intnam-linux.ads \
+ s-inmaop.adb<s-inmaop-posix.adb \
+ s-intman.adb<s-intman-posix.adb \
+ s-osinte.adb<s-osinte-posix.adb \
+ s-osinte.ads<s-osinte-linux.ads \
+ s-osprim.adb<s-osprim-posix.adb \
+ s-taprop.adb<s-taprop-linux.adb \
+ s-taspri.ads<s-taspri-linux.ads \
+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ s-parame.adb<s-parame-linux.adb \
+ system.ads<system-linux-sparc.ads
+
+ TOOLS_TARGET_PAIRS = \
+ mlib-tgt.adb<mlib-tgt-linux.adb \
+ indepsw.adb<indepsw-linux.adb
+
+ THREADSLIB = -lpthread
+ GNATLIB_SHARED = gnatlib-shared-dual
+ GMEM_LIB = gmemlib
+ PREFIX_OBJS = $(PREFIX_REAL_OBJS)
+ LIBRARY_VERSION := $(LIB_VERSION)
+endif
+
+ifeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-intnam.ads<a-intnam-linux.ads \
+ s-inmaop.adb<s-inmaop-posix.adb \
+ s-intman.adb<s-intman-posix.adb \
+ s-osinte.adb<s-osinte-posix.adb \
+ s-osinte.ads<s-osinte-linux-hppa.ads \
+ s-osprim.adb<s-osprim-posix.adb \
+ s-taprop.adb<s-taprop-linux.adb \
+ s-taspri.ads<s-taspri-linux.ads \
+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ s-parame.adb<s-parame-linux.adb \
+ system.ads<system-linux-hppa.ads
+
+ TOOLS_TARGET_PAIRS = \
+ mlib-tgt.adb<mlib-tgt-linux.adb \
+ indepsw.adb<indepsw-linux.adb
+
+ THREADSLIB = -lpthread
+ GNATLIB_SHARED = gnatlib-shared-dual
+ GMEM_LIB = gmemlib
+ PREFIX_OBJS = $(PREFIX_REAL_OBJS)
+ LIBRARY_VERSION := $(LIB_VERSION)
+endif
+
ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-linux.ads \
diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c
index 6edda454a0c..3224daf771c 100644
--- a/gcc/ada/decl.c
+++ b/gcc/ada/decl.c
@@ -390,11 +390,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
stored discriminant. Also use Original_Record_Component
if the record has a private extension. */
- if ((Base_Type (gnat_record) == gnat_record
- || Ekind (Scope (gnat_entity)) == E_Private_Subtype
- || Ekind (Scope (gnat_entity)) == E_Record_Subtype_With_Private
- || Ekind (Scope (gnat_entity)) == E_Record_Type_With_Private)
- && Present (Original_Record_Component (gnat_entity))
+ if (Present (Original_Record_Component (gnat_entity))
&& Original_Record_Component (gnat_entity) != gnat_entity)
{
gnu_decl
@@ -1011,6 +1007,10 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
const_flag = true;
}
+ if (const_flag)
+ gnu_type = build_qualified_type (gnu_type, (TYPE_QUALS (gnu_type)
+ | TYPE_QUAL_CONST));
+
/* Convert the expression to the type of the object except in the
case where the object's type is unconstrained or the object's type
is a padded record whose field is of self-referential size. In
@@ -1038,14 +1038,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
|| Is_Exported (gnat_entity)))))
gnu_ext_name = create_concat_name (gnat_entity, 0);
- if (const_flag)
- {
- gnu_type = build_qualified_type (gnu_type, (TYPE_QUALS (gnu_type)
- | TYPE_QUAL_CONST));
- if (gnu_expr)
- gnu_expr = convert (gnu_type, gnu_expr);
- }
-
/* If this is constant initialized to a static constant and the
object has an aggregrate type, force it to be statically
allocated. */
@@ -1113,7 +1105,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
/* Back-annotate the Alignment of the object if not already in the
tree. Likewise for Esize if the object is of a constant size.
But if the "object" is actually a pointer to an object, the
- alignment and size are the same as teh type, so don't back-annotate
+ alignment and size are the same as the type, so don't back-annotate
the values for the pointer. */
if (!used_by_ref && Unknown_Alignment (gnat_entity))
Set_Alignment (gnat_entity,
@@ -2221,6 +2213,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
gnu_type
= build_array_type (gnat_to_gnu_type (Component_Type (gnat_entity)),
gnu_index_type);
+ copy_alias_set (gnu_type, gnu_string_type);
}
break;
@@ -2387,9 +2380,8 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
build3 (COMPONENT_REF,
get_unpadded_type (Etype (gnat_field)),
gnu_get_parent,
- gnat_to_gnu_entity (Corresponding_Discriminant
- (gnat_field),
- NULL_TREE, 0),
+ gnat_to_gnu_field_decl (Corresponding_Discriminant
+ (gnat_field)),
NULL_TREE),
true);
@@ -2449,30 +2441,13 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
gnu_field_list, packed, definition, NULL,
false, all_rep);
+ /* We used to remove the associations of the discriminants and
+ _Parent for validity checking, but we may need them if there's
+ Freeze_Node for a subtype used in this record. */
+
TYPE_VOLATILE (gnu_type) = Treat_As_Volatile (gnat_entity);
TYPE_BY_REFERENCE_P (gnu_type) = Is_By_Reference_Type (gnat_entity);
- /* If this is an extension type, reset the tree for any
- inherited discriminants. Also remove the PLACEHOLDER_EXPR
- for non-inherited discriminants. */
- if (!Is_Unchecked_Union (gnat_entity)
- && Has_Discriminants (gnat_entity))
- for (gnat_field = First_Stored_Discriminant (gnat_entity);
- Present (gnat_field);
- gnat_field = Next_Stored_Discriminant (gnat_field))
- {
- if (Present (Parent_Subtype (gnat_entity))
- && Present (Corresponding_Discriminant (gnat_field)))
- save_gnu_tree (gnat_field, NULL_TREE, false);
- else
- {
- gnu_field = get_gnu_tree (gnat_field);
- save_gnu_tree (gnat_field, NULL_TREE, false);
- save_gnu_tree (gnat_field, TREE_OPERAND (gnu_field, 1),
- false);
- }
- }
-
/* If it is a tagged record force the type to BLKmode to insure
that these objects will always be placed in memory. Do the
same thing for limited record types. */
@@ -2581,7 +2556,6 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
&& Present (Discriminant_Constraint (gnat_entity)))
{
Entity_Id gnat_field;
- Entity_Id gnat_root_type;
tree gnu_field_list = 0;
tree gnu_pos_list
= compute_field_positions (gnu_orig_type, NULL_TREE,
@@ -2590,41 +2564,9 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
tree gnu_subst_list
= substitution_list (gnat_entity, gnat_base_type, NULL_TREE,
definition);
- bool possibly_overlapping_fields = false;
tree gnu_temp;
- /* If this is a derived type, we may be seeing fields from any
- original records, so add those positions and discriminant
- substitutions to our lists. */
- for (gnat_root_type = gnat_base_type;
- Underlying_Type (Etype (gnat_root_type)) != gnat_root_type;
- gnat_root_type = Underlying_Type (Etype (gnat_root_type)))
- {
- gnu_pos_list
- = compute_field_positions
- (gnat_to_gnu_type (Etype (gnat_root_type)),
- gnu_pos_list, size_zero_node, bitsize_zero_node,
- BIGGEST_ALIGNMENT);
-
- if (Present (Parent_Subtype (gnat_root_type)))
- {
- gnu_subst_list
- = substitution_list (Parent_Subtype (gnat_root_type),
- Empty, gnu_subst_list,
- definition);
-
- /* If there's a _Parent field, it may overlap the
- fields we have that appear to be in this record but
- actually are from the parent. So make note of that
- fact and later we'll make a UNION_TYPE instead of
- a RECORD_TYPE, since the latter may not have
- overlapping fields. */
- possibly_overlapping_fields = true;
- }
- }
-
- gnu_type = make_node (possibly_overlapping_fields
- ? UNION_TYPE : RECORD_TYPE);
+ gnu_type = make_node (RECORD_TYPE);
TYPE_NAME (gnu_type) = gnu_entity_id;
TYPE_STUB_DECL (gnu_type)
= create_type_decl (NULL_TREE, gnu_type, NULL, false, false,
@@ -2633,12 +2575,17 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
for (gnat_field = First_Entity (gnat_entity);
Present (gnat_field); gnat_field = Next_Entity (gnat_field))
- if (Ekind (gnat_field) == E_Component
- || Ekind (gnat_field) == E_Discriminant)
+ if ((Ekind (gnat_field) == E_Component
+ || Ekind (gnat_field) == E_Discriminant)
+ && (Underlying_Type (Scope (Original_Record_Component
+ (gnat_field)))
+ == gnat_base_type)
+ && (No (Corresponding_Discriminant (gnat_field))
+ || !Is_Tagged_Type (gnat_base_type)))
{
tree gnu_old_field
- = gnat_to_gnu_entity
- (Original_Record_Component (gnat_field), NULL_TREE, 0);
+ = gnat_to_gnu_field_decl (Original_Record_Component
+ (gnat_field));
tree gnu_offset
= TREE_VALUE (purpose_member (gnu_old_field,
gnu_pos_list));
@@ -2728,6 +2675,16 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
save_gnu_tree (gnat_field, gnu_field, false);
}
+ /* Now go through the entities again looking for Itypes that
+ we have not elaborated but should (e.g., Etypes of fields
+ that have Original_Components). */
+ for (gnat_field = First_Entity (gnat_entity);
+ Present (gnat_field); gnat_field = Next_Entity (gnat_field))
+ if ((Ekind (gnat_field) == E_Discriminant
+ || Ekind (gnat_field) == E_Component)
+ && !present_gnu_tree (Etype (gnat_field)))
+ gnat_to_gnu_entity (Etype (gnat_field), NULL_TREE, 0);
+
finish_record_type (gnu_type, nreverse (gnu_field_list),
true, false);
@@ -2812,7 +2769,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
&& !Is_Unchecked_Union (gnat_base_type))
|| Ekind (gnat_temp) == E_Component)
save_gnu_tree (gnat_temp,
- get_gnu_tree
+ gnat_to_gnu_field_decl
(Original_Record_Component (gnat_temp)), false);
}
break;
@@ -4176,6 +4133,20 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
return gnu_decl;
}
+
+/* Similar, but if the returned value is a COMPONENT_REF, return the
+ FIELD_DECL. */
+
+tree
+gnat_to_gnu_field_decl (Entity_Id gnat_entity)
+{
+ tree gnu_field = gnat_to_gnu_entity (gnat_entity, NULL_TREE, 0);
+
+ if (TREE_CODE (gnu_field) == COMPONENT_REF)
+ gnu_field = TREE_OPERAND (gnu_field, 1);
+
+ return gnu_field;
+}
/* Given GNAT_ENTITY, elaborate all expressions that are required to
be elaborated at the point of its definition, but do nothing else. */
@@ -4292,19 +4263,26 @@ mark_out_of_scope (Entity_Id gnat_entity)
static void
copy_alias_set (tree gnu_new_type, tree gnu_old_type)
{
+ /* Remove any padding from GNU_OLD_TYPE. It doesn't matter in the case
+ of a one-dimensional array, since the padding has the same alias set
+ as the field type, but if it's a multi-dimensional array, we need to
+ see the inner types. */
+ while (TREE_CODE (gnu_old_type) == RECORD_TYPE
+ && (TYPE_JUSTIFIED_MODULAR_P (gnu_old_type)
+ || TYPE_IS_PADDING_P (gnu_old_type)))
+ gnu_old_type = TREE_TYPE (TYPE_FIELDS (gnu_old_type));
+
+ /* We need to be careful here in case GNU_OLD_TYPE is an unconstrained
+ array. In that case, it doesn't have the same shape as GNU_NEW_TYPE,
+ so we need to go down to what does. */
+ if (TREE_CODE (gnu_old_type) == UNCONSTRAINED_ARRAY_TYPE)
+ gnu_old_type
+ = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_old_type))));
+
if (TREE_CODE (gnu_new_type) == ARRAY_TYPE
&& TREE_CODE (TREE_TYPE (gnu_new_type)) == ARRAY_TYPE
&& TYPE_MULTI_ARRAY_P (TREE_TYPE (gnu_new_type)))
- {
- /* We need to be careful here in case GNU_OLD_TYPE is an unconstrained
- array. In that case, it doesn't have the same shape as GNU_NEW_TYPE,
- so we need to go down to what does. */
- if (TREE_CODE (gnu_old_type) == UNCONSTRAINED_ARRAY_TYPE)
- gnu_old_type
- = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_old_type))));
-
- copy_alias_set (TREE_TYPE (gnu_new_type), TREE_TYPE (gnu_old_type));
- }
+ copy_alias_set (TREE_TYPE (gnu_new_type), TREE_TYPE (gnu_old_type));
TYPE_ALIAS_SET (gnu_new_type) = get_alias_set (gnu_old_type);
record_component_aliases (gnu_new_type);
@@ -4336,8 +4314,8 @@ substitution_list (Entity_Id gnat_subtype, Entity_Id gnat_type,
gnat_value = Next_Elmt (gnat_value))
/* Ignore access discriminants. */
if (!Is_Access_Type (Etype (Node (gnat_value))))
- gnu_list = tree_cons (gnat_to_gnu_entity (gnat_discrim, NULL_TREE, 0),
- elaborate_expression
+ gnu_list = tree_cons (gnat_to_gnu_field_decl (gnat_discrim),
+ elaborate_expression
(Node (gnat_value), gnat_subtype,
get_entity_name (gnat_discrim), definition,
1, 0),
@@ -5781,7 +5759,7 @@ annotate_rep (Entity_Id gnat_entity, tree gnu_type)
tree gnu_entry;
Entity_Id gnat_field;
- /* We operate by first making a list of all field and their positions
+ /* We operate by first making a list of all fields and their positions
(we can get the sizes easily at any time) by a recursive call
and then update all the sizes into the tree. */
gnu_list = compute_field_positions (gnu_type, NULL_TREE,
@@ -5796,9 +5774,8 @@ annotate_rep (Entity_Id gnat_entity, tree gnu_type)
{
tree parent_offset = bitsize_zero_node;
- gnu_entry
- = purpose_member (gnat_to_gnu_entity (gnat_field, NULL_TREE, 0),
- gnu_list);
+ gnu_entry = purpose_member (gnat_to_gnu_field_decl (gnat_field),
+ gnu_list);
if (gnu_entry)
{
diff --git a/gcc/ada/exp_ch13.adb b/gcc/ada/exp_ch13.adb
index 60a11478cb7..4e4ff664847 100644
--- a/gcc/ada/exp_ch13.adb
+++ b/gcc/ada/exp_ch13.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2004, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- --
-- GNAT 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- --
@@ -243,6 +243,7 @@ package body Exp_Ch13 is
In_Other_Scope : Boolean;
In_Outer_Scope : Boolean;
Decl : Node_Id;
+ Delete : Boolean := False;
begin
-- For object, with address clause, check alignment is OK
@@ -317,7 +318,7 @@ package body Exp_Ch13 is
-- If type, freeze the type
if Is_Type (E) then
- Freeze_Type (N);
+ Delete := Freeze_Type (N);
-- And for enumeration type, build the enumeration tables
@@ -388,6 +389,12 @@ package body Exp_Ch13 is
end loop;
end if;
+ -- If we are to delete this N_Freeze_Entity, do so by rewriting
+ -- so that a loop on all nodes being inserted will work propertly.
+ if Delete then
+ Rewrite (N, Make_Null_Statement (Sloc (N)));
+ end if;
+
if In_Other_Scope then
if Ekind (Current_Scope) = E_Package then
End_Package_Scope (E_Scope);
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index 1d027d05176..a25e10e6fb9 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -4531,9 +4531,10 @@ package body Exp_Ch3 is
-- for initialization) are chained in the Acions field list of the freeze
-- node using Append_Freeze_Actions.
- procedure Freeze_Type (N : Node_Id) is
+ function Freeze_Type (N : Node_Id) return Boolean is
Def_Id : constant Entity_Id := Entity (N);
RACW_Seen : Boolean := False;
+ Result : Boolean := False;
begin
-- Process associated access types needing special processing
@@ -4596,6 +4597,18 @@ package body Exp_Ch3 is
end if;
end;
+ if Is_Itype (Def_Id)
+ and then Is_Record_Type (Underlying_Type (Scope (Def_Id)))
+ then
+ -- The freeze node is only used to introduce the controller,
+ -- the back-end has no use for it for a discriminated
+ -- component.
+
+ Set_Freeze_Node (Def_Id, Empty);
+ Set_Has_Delayed_Freeze (Def_Id, False);
+ Result := True;
+ end if;
+
-- Similar process if the controller of the subtype is not
-- present but the parent has it. This can happen with constrained
-- record components where the subtype is an itype.
@@ -4620,7 +4633,7 @@ package body Exp_Ch3 is
Set_Freeze_Node (Def_Id, Empty);
Set_Has_Delayed_Freeze (Def_Id, False);
- Remove (N);
+ Result := True;
end;
end if;
@@ -4864,7 +4877,7 @@ package body Exp_Ch3 is
and then Freeze_Node (Full_View (Def_Id)) = N
then
Set_Entity (N, Full_View (Def_Id));
- Freeze_Type (N);
+ Result := Freeze_Type (N);
Set_Entity (N, Def_Id);
-- All other types require no expander action. There are such
@@ -4874,10 +4887,11 @@ package body Exp_Ch3 is
end if;
Freeze_Stream_Operations (N, Def_Id);
+ return Result;
exception
when RE_Not_Available =>
- return;
+ return False;
end Freeze_Type;
-------------------------
diff --git a/gcc/ada/exp_ch3.ads b/gcc/ada/exp_ch3.ads
index 59f8ef71008..fcb7c9375ad 100644
--- a/gcc/ada/exp_ch3.ads
+++ b/gcc/ada/exp_ch3.ads
@@ -82,9 +82,13 @@ package Exp_Ch3 is
-- initialization call corresponds to a default initialized component
-- of an aggregate.
- procedure Freeze_Type (N : Node_Id);
- -- This procedure executes the freezing actions associated with the given
- -- freeze type node N.
+ function Freeze_Type (N : Node_Id) return Boolean;
+ -- This function executes the freezing actions associated with the given
+ -- freeze type node N and returns True if the node is to be deleted.
+ -- We delete the node if it is present just for front end purpose and
+ -- we don't want Gigi to see the node. This function can't delete the
+ -- node itself since it would confuse any remaining processing of the
+ -- freeze node.
function Needs_Simple_Initialization (T : Entity_Id) return Boolean;
-- Certain types need initialization even though there is no specific
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index 162b939f125..051c0c86a41 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -29,6 +29,7 @@ with Checks; use Checks;
with Einfo; use Einfo;
with Elists; use Elists;
with Errout; use Errout;
+with Exp_Aggr; use Exp_Aggr;
with Exp_Ch7; use Exp_Ch7;
with Exp_Ch11; use Exp_Ch11;
with Exp_Tss; use Exp_Tss;
@@ -3706,8 +3707,14 @@ package body Exp_Util is
New_Exp := Make_Reference (Loc, E);
end if;
- if Nkind (E) = N_Aggregate and then Expansion_Delayed (E) then
- Set_Expansion_Delayed (E, False);
+ if Is_Delayed_Aggregate (E) then
+ if Nkind (E) = N_Qualified_Expression then
+ Set_Expansion_Delayed (Expression (E), False);
+ Set_Analyzed (Expression (E), False);
+ else
+ Set_Expansion_Delayed (E, False);
+ end if;
+
Set_Analyzed (E, False);
end if;
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index e49ec85e4c6..b0e1565758b 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2004, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- --
-- GNAT 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- --
@@ -164,6 +164,11 @@ package body Freeze is
-- needed -- see body for details). Never has any effect on T if the
-- Debug_Info_Off flag is set.
+ procedure Undelay_Type (T : Entity_Id);
+ -- T is a type of a component that we know to be an Itype.
+ -- We don't want this to have a Freeze_Node, so ensure it doesn't.
+ -- Do the same for any Full_View or Corresponding_Record_Type.
+
procedure Warn_Overlay
(Expr : Node_Id;
Typ : Entity_Id;
@@ -506,9 +511,9 @@ package body Freeze is
procedure Check_Compile_Time_Size (T : Entity_Id) is
- procedure Set_Small_Size (S : Uint);
+ procedure Set_Small_Size (T : Entity_Id; S : Uint);
-- Sets the compile time known size (32 bits or less) in the Esize
- -- field, checking for a size clause that was given which attempts
+ -- field, of T checking for a size clause that was given which attempts
-- to give a smaller size.
function Size_Known (T : Entity_Id) return Boolean;
@@ -525,7 +530,7 @@ package body Freeze is
-- Set_Small_Size --
--------------------
- procedure Set_Small_Size (S : Uint) is
+ procedure Set_Small_Size (T : Entity_Id; S : Uint) is
begin
if S > 32 then
return;
@@ -576,7 +581,8 @@ package body Freeze is
elsif Is_Array_Type (T) then
if Ekind (T) = E_String_Literal_Subtype then
- Set_Small_Size (Component_Size (T) * String_Literal_Length (T));
+ Set_Small_Size (T, Component_Size (T)
+ * String_Literal_Length (T));
return True;
elsif not Is_Constrained (T) then
@@ -632,7 +638,7 @@ package body Freeze is
Next_Index (Index);
end loop;
- Set_Small_Size (Esiz);
+ Set_Small_Size (T, Esiz);
return True;
end;
@@ -864,7 +870,7 @@ package body Freeze is
end loop;
if Packed_Size_Known then
- Set_Small_Size (Packed_Size);
+ Set_Small_Size (T, Packed_Size);
end if;
return True;
@@ -1365,6 +1371,7 @@ package body Freeze is
-------------------
function Freeze_Entity (E : Entity_Id; Loc : Source_Ptr) return List_Id is
+ Test_E : Entity_Id := E;
Comp : Entity_Id;
F_Node : Node_Id;
Result : List_Id;
@@ -1460,6 +1467,7 @@ package body Freeze is
IR : Node_Id;
Junk : Boolean;
ADC : Node_Id;
+ Prev : Entity_Id;
Unplaced_Component : Boolean := False;
-- Set True if we find at least one component with no component
@@ -1537,80 +1545,14 @@ package body Freeze is
end if;
end if;
- -- Freeze components and embedded subtypes
+ -- Freeze components and embedded subtypes.
Comp := First_Entity (Rec);
- while Present (Comp) loop
- if not Is_Type (Comp) then
- Freeze_And_Append (Etype (Comp), Loc, Result);
- end if;
+ Prev := Empty;
- -- If the component is an access type with an allocator
- -- as default value, the designated type will be frozen
- -- by the corresponding expression in init_proc. In order
- -- to place the freeze node for the designated type before
- -- that for the current record type, freeze it now.
-
- -- Same process if the component is an array of access types,
- -- initialized with an aggregate. If the designated type is
- -- private, it cannot contain allocators, and it is premature
- -- to freeze the type, so we check for this as well.
-
- if Is_Access_Type (Etype (Comp))
- and then Present (Parent (Comp))
- and then Present (Expression (Parent (Comp)))
- and then Nkind (Expression (Parent (Comp))) = N_Allocator
- then
- declare
- Alloc : constant Node_Id := Expression (Parent (Comp));
-
- begin
- -- If component is pointer to a classwide type, freeze
- -- the specific type in the expression being allocated.
- -- The expression may be a subtype indication, in which
- -- case freeze the subtype mark.
-
- if Is_Class_Wide_Type (Designated_Type (Etype (Comp))) then
- if Is_Entity_Name (Expression (Alloc)) then
- Freeze_And_Append
- (Entity (Expression (Alloc)), Loc, Result);
- elsif
- Nkind (Expression (Alloc)) = N_Subtype_Indication
- then
- Freeze_And_Append
- (Entity (Subtype_Mark (Expression (Alloc))),
- Loc, Result);
- end if;
-
- elsif Is_Itype (Designated_Type (Etype (Comp))) then
- Check_Itype (Designated_Type (Etype (Comp)));
-
- else
- Freeze_And_Append
- (Designated_Type (Etype (Comp)), Loc, Result);
- end if;
- end;
-
- elsif Is_Access_Type (Etype (Comp))
- and then Is_Itype (Designated_Type (Etype (Comp)))
- then
- Check_Itype (Designated_Type (Etype (Comp)));
-
- elsif Is_Array_Type (Etype (Comp))
- and then Is_Access_Type (Component_Type (Etype (Comp)))
- and then Present (Parent (Comp))
- and then Nkind (Parent (Comp)) = N_Component_Declaration
- and then Present (Expression (Parent (Comp)))
- and then Nkind (Expression (Parent (Comp))) = N_Aggregate
- and then Is_Fully_Defined
- (Designated_Type (Component_Type (Etype (Comp))))
- then
- Freeze_And_Append
- (Designated_Type
- (Component_Type (Etype (Comp))), Loc, Result);
- end if;
+ while Present (Comp) loop
- -- Processing for real components (exclude anonymous subtypes)
+ -- First handle the (real) component case.
if Ekind (Comp) = E_Component
or else Ekind (Comp) = E_Discriminant
@@ -1619,6 +1561,22 @@ package body Freeze is
CC : constant Node_Id := Component_Clause (Comp);
begin
+ -- Freezing a record type freezes the type of each of its
+ -- components. However, if the type of the component is
+ -- part of this record, we do not want or need a separate
+ -- Freeze_Node. Note that Is_Itype is wrong because that's
+ -- also set in private type cases. We also can't check
+ -- for the Scope being exactly Rec because of private types
+ -- and record extensions.
+ if Is_Itype (Etype (Comp))
+ and then Is_Record_Type (Underlying_Type
+ (Scope (Etype (Comp))))
+ then
+ Undelay_Type (Etype (Comp));
+ end if;
+
+ Freeze_And_Append (Etype (Comp), Loc, Result);
+
-- Check for error of component clause given for variable
-- sized type. We have to delay this test till this point,
-- since the component type has to be frozen for us to know
@@ -1779,6 +1737,133 @@ package body Freeze is
end;
end if;
+ -- If the component is an Itype with Delayed_Freeze and is
+ -- either a record or array subtype and its base type has not
+ -- yet been frozen, we must remove this from the entity list
+ -- of this record and put it on the entity list of the scope of
+ -- its base type. Note that we know that this is not the type
+ -- of a component since we cleared Has_Delayed_Freeze for it
+ -- in the previous loop. Thus this must be the Designated_Type
+ -- of an access type, which is the type of a component.
+ if Is_Itype (Comp)
+ and then Is_Type (Scope (Comp))
+ and then Is_Composite_Type (Comp)
+ and then Base_Type (Comp) /= Comp
+ and then Has_Delayed_Freeze (Comp)
+ and then not Is_Frozen (Base_Type (Comp))
+ then
+ declare
+ Will_Be_Frozen : Boolean := False;
+ S : Entity_Id := Scope (Rec);
+
+ begin
+ -- We have a pretty bad kludge here. Suppose Rec is a
+ -- subtype being defined in a subprogram that's created
+ -- as part of the freezing of Rec'Base. In that case,
+ -- we know that Comp'Base must have already been frozen by
+ -- the time we get to elaborate this because Gigi doesn't
+ -- elaborate any bodies until it has elaborated all of the
+ -- declarative part. But Is_Frozen will not be set at this
+ -- point because we are processing code in lexical order.
+
+ -- We detect this case by going up the Scope chain of
+ -- Rec and seeing if we have a subprogram scope before
+ -- reaching the top of the scope chain or that of Comp'Base.
+ -- If we do, then mark that Comp'Base will actually be
+ -- frozen. If so, we merely undelay it.
+ while Present (S) loop
+ if Is_Subprogram (S) then
+ Will_Be_Frozen := True;
+ exit;
+ elsif S = Scope (Base_Type (Comp)) then
+ exit;
+ end if;
+
+ S := Scope (S);
+ end loop;
+
+ if Will_Be_Frozen then
+ Undelay_Type (Comp);
+ else
+ if Present (Prev) then
+ Set_Next_Entity (Prev, Next_Entity (Comp));
+ else
+ Set_First_Entity (Rec, Next_Entity (Comp));
+ end if;
+
+ -- Insert in entity list of scope of base type (which
+ -- must be an enclosing scope, because still unfrozen).
+
+ Append_Entity (Comp, Scope (Base_Type (Comp)));
+ end if;
+ end;
+
+ -- If the component is an access type with an allocator
+ -- as default value, the designated type will be frozen
+ -- by the corresponding expression in init_proc. In order
+ -- to place the freeze node for the designated type before
+ -- that for the current record type, freeze it now.
+
+ -- Same process if the component is an array of access types,
+ -- initialized with an aggregate. If the designated type is
+ -- private, it cannot contain allocators, and it is premature
+ -- to freeze the type, so we check for this as well.
+
+ elsif Is_Access_Type (Etype (Comp))
+ and then Present (Parent (Comp))
+ and then Present (Expression (Parent (Comp)))
+ and then Nkind (Expression (Parent (Comp))) = N_Allocator
+ then
+ declare
+ Alloc : constant Node_Id := Expression (Parent (Comp));
+
+ begin
+ -- If component is pointer to a classwide type, freeze
+ -- the specific type in the expression being allocated.
+ -- The expression may be a subtype indication, in which
+ -- case freeze the subtype mark.
+
+ if Is_Class_Wide_Type (Designated_Type (Etype (Comp))) then
+ if Is_Entity_Name (Expression (Alloc)) then
+ Freeze_And_Append
+ (Entity (Expression (Alloc)), Loc, Result);
+ elsif
+ Nkind (Expression (Alloc)) = N_Subtype_Indication
+ then
+ Freeze_And_Append
+ (Entity (Subtype_Mark (Expression (Alloc))),
+ Loc, Result);
+ end if;
+
+ elsif Is_Itype (Designated_Type (Etype (Comp))) then
+ Check_Itype (Designated_Type (Etype (Comp)));
+
+ else
+ Freeze_And_Append
+ (Designated_Type (Etype (Comp)), Loc, Result);
+ end if;
+ end;
+
+ elsif Is_Access_Type (Etype (Comp))
+ and then Is_Itype (Designated_Type (Etype (Comp)))
+ then
+ Check_Itype (Designated_Type (Etype (Comp)));
+
+ elsif Is_Array_Type (Etype (Comp))
+ and then Is_Access_Type (Component_Type (Etype (Comp)))
+ and then Present (Parent (Comp))
+ and then Nkind (Parent (Comp)) = N_Component_Declaration
+ and then Present (Expression (Parent (Comp)))
+ and then Nkind (Expression (Parent (Comp))) = N_Aggregate
+ and then Is_Fully_Defined
+ (Designated_Type (Component_Type (Etype (Comp))))
+ then
+ Freeze_And_Append
+ (Designated_Type
+ (Component_Type (Etype (Comp))), Loc, Result);
+ end if;
+
+ Prev := Comp;
Next_Entity (Comp);
end loop;
@@ -1882,6 +1967,17 @@ package body Freeze is
-- Start of processing for Freeze_Entity
begin
+ -- We are going to test for various reasons why this entity need
+ -- not be frozen here, but in the case of an Itype that's defined
+ -- within a record, that test actually applies to the record.
+ if Is_Itype (E) and then Is_Record_Type (Scope (E)) then
+ Test_E := Scope (E);
+ elsif Is_Itype (E) and then Present (Underlying_Type (Scope (E)))
+ and then Is_Record_Type (Underlying_Type (Scope (E)))
+ then
+ Test_E := Underlying_Type (Scope (E));
+ end if;
+
-- Do not freeze if already frozen since we only need one freeze node
if Is_Frozen (E) then
@@ -1892,7 +1988,7 @@ package body Freeze is
-- The entity will be frozen in the proper scope after the current
-- generic is analyzed.
- elsif Inside_A_Generic and then External_Ref_In_Generic (E) then
+ elsif Inside_A_Generic and then External_Ref_In_Generic (Test_E) then
return No_List;
-- Do not freeze a global entity within an inner scope created during
@@ -1906,9 +2002,9 @@ package body Freeze is
-- comes from source, or is a generic instance, then the freeze point
-- is the one mandated by the language. and we freze the entity.
- elsif In_Open_Scopes (Scope (E))
- and then Scope (E) /= Current_Scope
- and then Ekind (E) /= E_Constant
+ elsif In_Open_Scopes (Scope (Test_E))
+ and then Scope (Test_E) /= Current_Scope
+ and then Ekind (Test_E) /= E_Constant
then
declare
S : Entity_Id := Current_Scope;
@@ -1940,10 +2036,10 @@ package body Freeze is
elsif Front_End_Inlining
and then In_Instance_Body
- and then Present (Scope (E))
+ and then Present (Scope (Test_E))
then
declare
- S : Entity_Id := Scope (E);
+ S : Entity_Id := Scope (Test_E);
begin
while Present (S) loop
if Is_Generic_Instance (S) then
@@ -2694,6 +2790,12 @@ package body Freeze is
Freeze_And_Append (Comp, Loc, Result);
elsif (Ekind (Comp)) /= E_Function then
+ if Is_Itype (Etype (Comp))
+ and then Underlying_Type (Scope (Etype (Comp))) = E
+ then
+ Undelay_Type (Etype (Comp));
+ end if;
+
Freeze_And_Append (Etype (Comp), Loc, Result);
end if;
@@ -2904,66 +3006,8 @@ package body Freeze is
Check_Restriction (No_Standard_Storage_Pools, E);
end if;
- -- If the current entity is an array or record subtype and has
- -- discriminants used to constrain it, it must not freeze, because
- -- Freeze_Entity nodes force Gigi to process the frozen type.
-
if Is_Composite_Type (E) then
- if Is_Array_Type (E) then
- declare
- Index : Node_Id := First_Index (E);
- Expr1 : Node_Id;
- Expr2 : Node_Id;
-
- begin
- while Present (Index) loop
- if Etype (Index) /= Any_Type then
- Get_Index_Bounds (Index, Expr1, Expr2);
-
- for J in 1 .. 2 loop
- if Nkind (Expr1) = N_Identifier
- and then Ekind (Entity (Expr1)) = E_Discriminant
- then
- Set_Has_Delayed_Freeze (E, False);
- Set_Freeze_Node (E, Empty);
- Check_Debug_Info_Needed (E);
- return Result;
- end if;
-
- Expr1 := Expr2;
- end loop;
- end if;
-
- Next_Index (Index);
- end loop;
- end;
-
- elsif Has_Discriminants (E)
- and Is_Constrained (E)
- then
- declare
- Constraint : Elmt_Id;
- Expr : Node_Id;
-
- begin
- Constraint := First_Elmt (Discriminant_Constraint (E));
- while Present (Constraint) loop
- Expr := Node (Constraint);
- if Nkind (Expr) = N_Identifier
- and then Ekind (Entity (Expr)) = E_Discriminant
- then
- Set_Has_Delayed_Freeze (E, False);
- Set_Freeze_Node (E, Empty);
- Check_Debug_Info_Needed (E);
- return Result;
- end if;
-
- Next_Elmt (Constraint);
- end loop;
- end;
- end if;
-
-- AI-117 requires that all new primitives of a tagged type
-- must inherit the convention of the full view of the type.
-- Inherited and overriding operations are defined to inherit
@@ -3065,7 +3109,7 @@ package body Freeze is
-- in particular the size and alignment values. This processing is
-- not required for generic types, since generic types do not play
-- any part in code generation, and so the size and alignment values
- -- for suhc types are irrelevant.
+ -- for such types are irrelevant.
if Is_Generic_Type (E) then
return Result;
@@ -4728,6 +4772,44 @@ package body Freeze is
end Set_Debug_Info_Needed;
------------------
+ -- Undelay_Type --
+ ------------------
+
+ procedure Undelay_Type (T : Entity_Id) is
+ begin
+ Set_Has_Delayed_Freeze (T, False);
+ Set_Freeze_Node (T, Empty);
+
+ -- Since we don't want T to have a Freeze_Node, we don't want its
+ -- Full_View or Corresponding_Record_Type to have one either.
+
+ -- ??? Fundamentally, this whole handling is a kludge. What we really
+ -- want is to be sure that for an Itype that's part of record R and
+ -- is a subtype of type T, that it's frozen after the later of the
+ -- freeze points of R and T. We have no way of doing that directly,
+ -- so what we do is force most such Itypes to be frozen as part of
+ -- freezing R via this procedure and only delay the ones that need
+ -- to be delayed (mostly the designated types of access types that are
+ -- defined as part of the record).
+
+ if Is_Private_Type (T)
+ and then Present (Full_View (T))
+ and then Is_Itype (Full_View (T))
+ and then Is_Record_Type (Scope (Full_View (T)))
+ then
+ Undelay_Type (Full_View (T));
+ end if;
+
+ if Is_Concurrent_Type (T)
+ and then Present (Corresponding_Record_Type (T))
+ and then Is_Itype (Corresponding_Record_Type (T))
+ and then Is_Record_Type (Scope (Corresponding_Record_Type (T)))
+ then
+ Undelay_Type (Corresponding_Record_Type (T));
+ end if;
+ end Undelay_Type;
+
+ ------------------
-- Warn_Overlay --
------------------
diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h
index bb03912a637..2248c9e0654 100644
--- a/gcc/ada/gigi.h
+++ b/gcc/ada/gigi.h
@@ -6,7 +6,7 @@
* *
* C Header File *
* *
- * Copyright (C) 1992-2004 Free Software Foundation, Inc. *
+ * Copyright (C) 1992-2005 Free Software Foundation, Inc. *
* *
* GNAT 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- *
@@ -75,6 +75,10 @@ extern void init_dummy_type (void);
the code. */
extern tree gnat_to_gnu_entity (Entity_Id, tree, int);
+/* Similar, but if the returned value is a COMPONENT_REF, return the
+ FIELD_DECL. */
+extern tree gnat_to_gnu_field_decl (Entity_Id);
+
/* Given GNAT_ENTITY, an entity in the incoming GNAT tree, return a
GCC type corresponding to that entity. GNAT_ENTITY is assumed to
refer to an Ada type. */
diff --git a/gcc/ada/lang.opt b/gcc/ada/lang.opt
index 7ac89f96426..e723631ef11 100644
--- a/gcc/ada/lang.opt
+++ b/gcc/ada/lang.opt
@@ -57,8 +57,8 @@ nostdlib
Ada
; Don't look for object files
-fRTS
-Ada RejectNegative
+fRTS=
+Ada Joined RejectNegative
gant
Ada Joined Undocumented
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c
index e63277dc345..4a8c0ded5dc 100644
--- a/gcc/ada/misc.c
+++ b/gcc/ada/misc.c
@@ -289,7 +289,7 @@ gnat_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED)
gnat_argc++;
break;
- case OPT_fRTS:
+ case OPT_fRTS_:
gnat_argv[gnat_argc] = xstrdup ("-fRTS");
gnat_argc++;
break;
@@ -322,11 +322,15 @@ gnat_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED)
return 1;
}
+static bool tree_sra_requested = false;
+
/* Initialize for option processing. */
static unsigned int
gnat_init_options (unsigned int argc, const char **argv)
{
+ int i;
+
/* Initialize gnat_argv with save_argv size. */
gnat_argv = (char **) xmalloc ((argc + 1) * sizeof (argv[0]));
gnat_argv[0] = xstrdup (argv[0]); /* name of the command */
@@ -338,6 +342,16 @@ gnat_init_options (unsigned int argc, const char **argv)
/* Uninitialized really means uninitialized in Ada. */
flag_zero_initialized_in_bss = 0;
+ /* Find last option mentioning Tree-SRA. */
+ for (i = argc - 1; i > 0; i--)
+ if (strcmp(argv[i], "-ftree-sra") == 0)
+ {
+ tree_sra_requested = true;
+ break;
+ }
+ else if (strcmp(argv[i], "-fno-tree-sra") == 0)
+ break;
+
return CL_Ada;
}
@@ -353,6 +367,11 @@ gnat_post_options (const char **pfilename ATTRIBUTE_UNUSED)
if (flag_inline_functions)
flag_inline_trees = 2;
+ /* Do not enable Tree-SRA unless specifically requested as it
+ is known to badly interact with some Ada constructs. */
+ if (!tree_sra_requested)
+ flag_tree_sra = 0;
+
return false;
}
diff --git a/gcc/ada/s-osinte-linux-hppa.ads b/gcc/ada/s-osinte-linux-hppa.ads
new file mode 100644
index 00000000000..327fd5bd990
--- /dev/null
+++ b/gcc/ada/s-osinte-linux-hppa.ads
@@ -0,0 +1,533 @@
+------------------------------------------------------------------------------
+-- --
+-- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
+-- --
+-- S Y S T E M . O S _ I N T E R F A C E --
+-- --
+-- S p e c --
+-- (GNU/Linux-HPPA Version) --
+-- --
+-- Copyright (C) 1991-1994, Florida State University --
+-- Copyright (C) 1995-2005, Free Software Foundation, Inc. --
+-- --
+-- 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. --
+-- Extensive contributions were provided by Ada Core Technologies, Inc. --
+-- --
+------------------------------------------------------------------------------
+
+-- This is a GNU/Linux (GNU/LinuxThreads) version of this package
+
+-- This package encapsulates all direct interfaces to OS services
+-- that are needed by children of System.
+
+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma
+-- Preelaborate. This package is designed to be a bottom-level (leaf) package.
+
+with Interfaces.C;
+with Unchecked_Conversion;
+
+package System.OS_Interface is
+ pragma Preelaborate;
+
+ pragma Linker_Options ("-lpthread");
+
+ subtype int is Interfaces.C.int;
+ subtype char is Interfaces.C.char;
+ subtype short is Interfaces.C.short;
+ subtype long is Interfaces.C.long;
+ subtype unsigned is Interfaces.C.unsigned;
+ subtype unsigned_short is Interfaces.C.unsigned_short;
+ subtype unsigned_long is Interfaces.C.unsigned_long;
+ subtype unsigned_char is Interfaces.C.unsigned_char;
+ subtype plain_char is Interfaces.C.plain_char;
+ subtype size_t is Interfaces.C.size_t;
+
+ -----------
+ -- Errno --
+ -----------
+
+ function errno return int;
+ pragma Import (C, errno, "__get_errno");
+
+ EAGAIN : constant := 11;
+ EINTR : constant := 4;
+ EINVAL : constant := 22;
+ ENOMEM : constant := 12;
+ EPERM : constant := 1;
+ ETIMEDOUT : constant := 238;
+
+ -------------
+ -- Signals --
+ -------------
+
+ Max_Interrupt : constant := 63;
+ type Signal is new int range 0 .. Max_Interrupt;
+ for Signal'Size use int'Size;
+
+ SIGHUP : constant := 1; -- hangup
+ SIGINT : constant := 2; -- interrupt (rubout)
+ SIGQUIT : constant := 3; -- quit (ASCD FS)
+ SIGILL : constant := 4; -- illegal instruction (not reset)
+ SIGTRAP : constant := 5; -- trace trap (not reset)
+ SIGIOT : constant := 6; -- IOT instruction
+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future
+ SIGEMT : constant := 7; -- EMT
+ SIGFPE : constant := 8; -- floating point exception
+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored)
+ SIGBUS : constant := 10; -- bus error
+ SIGSEGV : constant := 11; -- segmentation violation
+ SIGSYS : constant := 12; -- bad system call
+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it
+ SIGALRM : constant := 14; -- alarm clock
+ SIGTERM : constant := 15; -- software termination signal from kill
+ SIGUSR1 : constant := 16; -- user defined signal 1
+ SIGUSR2 : constant := 17; -- user defined signal 2
+ SIGCLD : constant := 18; -- alias for SIGCHLD
+ SIGCHLD : constant := 18; -- child status change
+ SIGPWR : constant := 19; -- power-fail restart
+ SIGVTALRM : constant := 20; -- virtual timer expired
+ SIGPROF : constant := 21; -- profiling timer expired
+ SIGPOLL : constant := 22; -- pollable event occurred
+ SIGIO : constant := 22; -- I/O now possible (4.2 BSD)
+ SIGWINCH : constant := 23; -- window size change
+ SIGSTOP : constant := 24; -- stop (cannot be caught or ignored)
+ SIGTSTP : constant := 25; -- user stop requested from tty
+ SIGCONT : constant := 26; -- stopped process has been continued
+ SIGTTIN : constant := 27; -- background tty read attempted
+ SIGTTOU : constant := 28; -- background tty write attempted
+ SIGURG : constant := 29; -- urgent condition on IO channel
+ SIGLOST : constant := 30; -- File lock lost
+ SIGUNUSED : constant := 31; -- unused signal (GNU/Linux)
+ SIGXCPU : constant := 33; -- CPU time limit exceeded
+ SIGXFSZ : constant := 34; -- filesize limit exceeded
+ SIGSTKFLT : constant := 36; -- coprocessor stack fault (Linux)
+ SIGLTHRRES : constant := 37; -- GNU/LinuxThreads restart signal
+ SIGLTHRCAN : constant := 38; -- GNU/LinuxThreads cancel signal
+ SIGLTHRDBG : constant := 39; -- GNU/LinuxThreads debugger signal
+
+ SIGADAABORT : constant := SIGABRT;
+ -- Change this if you want to use another signal for task abort.
+ -- SIGTERM might be a good one.
+
+ type Signal_Set is array (Natural range <>) of Signal;
+
+ Unmasked : constant Signal_Set := (
+ SIGTRAP,
+ -- To enable debugging on multithreaded applications, mark SIGTRAP to
+ -- be kept unmasked.
+
+ SIGBUS,
+
+ SIGTTIN, SIGTTOU, SIGTSTP,
+ -- Keep these three signals unmasked so that background processes
+ -- and IO behaves as normal "C" applications
+
+ SIGPROF,
+ -- To avoid confusing the profiler
+
+ SIGKILL, SIGSTOP,
+ -- These two signals actually cannot be masked;
+ -- POSIX simply won't allow it.
+
+ SIGLTHRRES, SIGLTHRCAN, SIGLTHRDBG);
+ -- These three signals are used by GNU/LinuxThreads starting from
+ -- glibc 2.1 (future 2.2).
+
+ Reserved : constant Signal_Set :=
+ -- I am not sure why the following two signals are reserved.
+ -- I guess they are not supported by this version of GNU/Linux.
+ (SIGVTALRM, SIGUNUSED);
+
+ type sigset_t is private;
+
+ function sigaddset (set : access sigset_t; sig : Signal) return int;
+ pragma Import (C, sigaddset, "sigaddset");
+
+ function sigdelset (set : access sigset_t; sig : Signal) return int;
+ pragma Import (C, sigdelset, "sigdelset");
+
+ function sigfillset (set : access sigset_t) return int;
+ pragma Import (C, sigfillset, "sigfillset");
+
+ function sigismember (set : access sigset_t; sig : Signal) return int;
+ pragma Import (C, sigismember, "sigismember");
+
+ function sigemptyset (set : access sigset_t) return int;
+ pragma Import (C, sigemptyset, "sigemptyset");
+
+ type union_type_3 is new String (1 .. 116);
+ type siginfo_t is record
+ si_signo : int;
+ si_code : int;
+ si_errno : int;
+ X_data : union_type_3;
+ end record;
+ pragma Convention (C, siginfo_t);
+
+ type struct_sigaction is record
+ sa_handler : System.Address;
+ sa_flags : unsigned_long;
+ sa_mask : sigset_t;
+ end record;
+ pragma Convention (C, struct_sigaction);
+ type struct_sigaction_ptr is access all struct_sigaction;
+
+ type Machine_State is record
+ eip : unsigned_long;
+ ebx : unsigned_long;
+ esp : unsigned_long;
+ ebp : unsigned_long;
+ esi : unsigned_long;
+ edi : unsigned_long;
+ end record;
+ type Machine_State_Ptr is access all Machine_State;
+
+ SA_SIGINFO : constant := 16;
+
+ SIG_BLOCK : constant := 0;
+ SIG_UNBLOCK : constant := 1;
+ SIG_SETMASK : constant := 2;
+
+ SIG_DFL : constant := 0;
+ SIG_IGN : constant := 1;
+
+ function sigaction
+ (sig : Signal;
+ act : struct_sigaction_ptr;
+ oact : struct_sigaction_ptr) return int;
+ pragma Import (C, sigaction, "sigaction");
+
+ ----------
+ -- Time --
+ ----------
+
+ type timespec is private;
+
+ function To_Duration (TS : timespec) return Duration;
+ pragma Inline (To_Duration);
+
+ function To_Timespec (D : Duration) return timespec;
+ pragma Inline (To_Timespec);
+
+ type struct_timeval is private;
+
+ function To_Duration (TV : struct_timeval) return Duration;
+ pragma Inline (To_Duration);
+
+ function To_Timeval (D : Duration) return struct_timeval;
+ pragma Inline (To_Timeval);
+
+ function gettimeofday
+ (tv : access struct_timeval;
+ tz : System.Address := System.Null_Address) return int;
+ pragma Import (C, gettimeofday, "gettimeofday");
+
+ function sysconf (name : int) return long;
+ pragma Import (C, sysconf);
+
+ SC_CLK_TCK : constant := 2;
+
+ -------------------------
+ -- Priority Scheduling --
+ -------------------------
+
+ SCHED_OTHER : constant := 0;
+ SCHED_FIFO : constant := 1;
+ SCHED_RR : constant := 2;
+
+ -------------
+ -- Process --
+ -------------
+
+ type pid_t is private;
+
+ function kill (pid : pid_t; sig : Signal) return int;
+ pragma Import (C, kill, "kill");
+
+ function getpid return pid_t;
+ pragma Import (C, getpid, "getpid");
+
+ -------------
+ -- Threads --
+ -------------
+
+ type Thread_Body is access
+ function (arg : System.Address) return System.Address;
+
+ function Thread_Body_Access is new
+ Unchecked_Conversion (System.Address, Thread_Body);
+
+ type pthread_t is new unsigned_long;
+ subtype Thread_Id is pthread_t;
+
+ function To_pthread_t is new Unchecked_Conversion
+ (unsigned_long, pthread_t);
+
+ type pthread_mutex_t is limited private;
+ type pthread_cond_t is limited private;
+ type pthread_attr_t is limited private;
+ type pthread_mutexattr_t is limited private;
+ type pthread_condattr_t is limited private;
+ type pthread_key_t is private;
+
+ PTHREAD_CREATE_DETACHED : constant := 1;
+
+ -----------
+ -- Stack --
+ -----------
+
+ function Get_Stack_Base (thread : pthread_t) return Address;
+ pragma Inline (Get_Stack_Base);
+ -- This is a dummy procedure to share some GNULLI files
+
+ ---------------------------------------
+ -- Nonstandard Thread Initialization --
+ ---------------------------------------
+
+ procedure pthread_init;
+ pragma Inline (pthread_init);
+ -- This is a dummy procedure to share some GNULLI files
+
+ -------------------------
+ -- POSIX.1c Section 3 --
+ -------------------------
+
+ function sigwait (set : access sigset_t; sig : access Signal) return int;
+ pragma Import (C, sigwait, "sigwait");
+
+ function pthread_kill (thread : pthread_t; sig : Signal) return int;
+ pragma Import (C, pthread_kill, "pthread_kill");
+
+ type sigset_t_ptr is access all sigset_t;
+
+ function pthread_sigmask
+ (how : int;
+ set : sigset_t_ptr;
+ oset : sigset_t_ptr) return int;
+ pragma Import (C, pthread_sigmask, "pthread_sigmask");
+
+ --------------------------
+ -- POSIX.1c Section 11 --
+ --------------------------
+
+ function pthread_mutexattr_init
+ (attr : access pthread_mutexattr_t) return int;
+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init");
+
+ function pthread_mutexattr_destroy
+ (attr : access pthread_mutexattr_t) return int;
+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy");
+
+ function pthread_mutex_init
+ (mutex : access pthread_mutex_t;
+ attr : access pthread_mutexattr_t) return int;
+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init");
+
+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int;
+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy");
+
+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int;
+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock");
+
+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock");
+
+ function pthread_condattr_init
+ (attr : access pthread_condattr_t) return int;
+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init");
+
+ function pthread_condattr_destroy
+ (attr : access pthread_condattr_t) return int;
+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy");
+
+ function pthread_cond_init
+ (cond : access pthread_cond_t;
+ attr : access pthread_condattr_t) return int;
+ pragma Import (C, pthread_cond_init, "pthread_cond_init");
+
+ function pthread_cond_destroy (cond : access pthread_cond_t) return int;
+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy");
+
+ function pthread_cond_signal (cond : access pthread_cond_t) return int;
+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal");
+
+ function pthread_cond_wait
+ (cond : access pthread_cond_t;
+ mutex : access pthread_mutex_t) return int;
+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait");
+
+ function pthread_cond_timedwait
+ (cond : access pthread_cond_t;
+ mutex : access pthread_mutex_t;
+ abstime : access timespec) return int;
+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
+
+ --------------------------
+ -- POSIX.1c Section 13 --
+ --------------------------
+
+ type struct_sched_param is record
+ sched_priority : int; -- scheduling priority
+ end record;
+ pragma Convention (C, struct_sched_param);
+
+ function pthread_setschedparam
+ (thread : pthread_t;
+ policy : int;
+ param : access struct_sched_param) return int;
+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam");
+
+ function pthread_attr_setschedpolicy
+ (attr : access pthread_attr_t;
+ policy : int) return int;
+ pragma Import
+ (C, pthread_attr_setschedpolicy, "pthread_attr_setschedpolicy");
+
+ function sched_yield return int;
+ pragma Import (C, sched_yield, "sched_yield");
+
+ ---------------------------
+ -- P1003.1c - Section 16 --
+ ---------------------------
+
+ function pthread_attr_init
+ (attributes : access pthread_attr_t) return int;
+ pragma Import (C, pthread_attr_init, "pthread_attr_init");
+
+ function pthread_attr_destroy
+ (attributes : access pthread_attr_t) return int;
+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy");
+
+ function pthread_attr_setdetachstate
+ (attr : access pthread_attr_t;
+ detachstate : int) return int;
+ pragma Import
+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate");
+
+ function pthread_attr_setstacksize
+ (attr : access pthread_attr_t;
+ stacksize : size_t) return int;
+ pragma Import (C, pthread_attr_setstacksize, "pthread_attr_setstacksize");
+
+ function pthread_create
+ (thread : access pthread_t;
+ attributes : access pthread_attr_t;
+ start_routine : Thread_Body;
+ arg : System.Address) return int;
+ pragma Import (C, pthread_create, "pthread_create");
+
+ procedure pthread_exit (status : System.Address);
+ pragma Import (C, pthread_exit, "pthread_exit");
+
+ function pthread_self return pthread_t;
+ pragma Import (C, pthread_self, "pthread_self");
+
+ --------------------------
+ -- POSIX.1c Section 17 --
+ --------------------------
+
+ function pthread_setspecific
+ (key : pthread_key_t;
+ value : System.Address) return int;
+ pragma Import (C, pthread_setspecific, "pthread_setspecific");
+
+ function pthread_getspecific (key : pthread_key_t) return System.Address;
+ pragma Import (C, pthread_getspecific, "pthread_getspecific");
+
+ type destructor_pointer is access procedure (arg : System.Address);
+
+ function pthread_key_create
+ (key : access pthread_key_t;
+ destructor : destructor_pointer) return int;
+ pragma Import (C, pthread_key_create, "pthread_key_create");
+
+private
+
+ type sigset_t is array (0 .. 31) of unsigned_long;
+ pragma Convention (C, sigset_t);
+
+ type pid_t is new int;
+
+ type time_t is new long;
+
+ type timespec is record
+ tv_sec : time_t;
+ tv_nsec : long;
+ end record;
+ pragma Convention (C, timespec);
+
+ type struct_timeval is record
+ tv_sec : time_t;
+ tv_usec : time_t;
+ end record;
+ pragma Convention (C, struct_timeval);
+
+ type pthread_attr_t is record
+ detachstate : int;
+ schedpolicy : int;
+ schedparam : struct_sched_param;
+ inheritsched : int;
+ scope : int;
+ guardsize : size_t;
+ stackaddr_set : int;
+ stackaddr : System.Address;
+ stacksize : size_t;
+ end record;
+ pragma Convention (C, pthread_attr_t);
+
+ type pthread_condattr_t is record
+ dummy : int;
+ end record;
+ pragma Convention (C, pthread_condattr_t);
+
+ type pthread_mutexattr_t is record
+ mutexkind : int;
+ end record;
+ pragma Convention (C, pthread_mutexattr_t);
+
+ type lock_array is array (1 .. 4) of int;
+ type atomic_lock_t is record
+ lock : lock_array;
+ end record;
+ pragma Convention (C, atomic_lock_t);
+ for atomic_lock_t'Alignment use 8 * 16;
+
+ type struct_pthread_fast_lock is record
+ spinlock : atomic_lock_t;
+ status : long;
+ end record;
+ pragma Convention (C, struct_pthread_fast_lock);
+
+ type pthread_mutex_t is record
+ m_reserved : int;
+ m_count : int;
+ m_owner : System.Address;
+ m_kind : int;
+ m_lock : struct_pthread_fast_lock;
+ end record;
+ pragma Convention (C, pthread_mutex_t);
+
+ type pthread_cond_t is array (0 .. 47) of unsigned_char;
+ pragma Convention (C, pthread_cond_t);
+
+ type pthread_key_t is new unsigned;
+
+end System.OS_Interface;
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 7ac6e268b2d..d99a59d0306 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -7374,12 +7374,7 @@ package body Sem_Ch3 is
Set_Depends_On_Private (Def_Id, Has_Private_Component (Def_Id));
Set_Is_Access_Constant (Def_Id, Is_Access_Constant (T));
- -- Itypes created for constrained record components do not receive
- -- a freeze node, they are elaborated when first seen.
-
- if not Is_Record_Type (Current_Scope) then
- Conditional_Delay (Def_Id, T);
- end if;
+ Conditional_Delay (Def_Id, T);
end Constrain_Access;
---------------------
@@ -7474,17 +7469,12 @@ package body Sem_Ch3 is
Set_Is_Private_Composite (Def_Id, Is_Private_Composite (T));
Set_Is_Limited_Composite (Def_Id, Is_Limited_Composite (T));
- -- If the subtype is not that of a record component, build a freeze
- -- node if parent still needs one.
-
- -- If the subtype is not that of a record component, make sure
+ -- Build a freeze node if parent still needs one. Also, make sure
-- that the Depends_On_Private status is set (explanation ???)
-- and also that a conditional delay is set.
- if not Is_Type (Scope (Def_Id)) then
- Set_Depends_On_Private (Def_Id, Depends_On_Private (T));
- Conditional_Delay (Def_Id, T);
- end if;
+ Set_Depends_On_Private (Def_Id, Depends_On_Private (T));
+ Conditional_Delay (Def_Id, T);
end Constrain_Array;
diff --git a/gcc/ada/system-hpux.ads b/gcc/ada/system-hpux.ads
index e9664f09a45..7f473b17b63 100644
--- a/gcc/ada/system-hpux.ads
+++ b/gcc/ada/system-hpux.ads
@@ -129,7 +129,7 @@ private
Machine_Rounds : constant Boolean := True;
OpenVMS : constant Boolean := False;
Preallocated_Stacks : constant Boolean := False;
- Signed_Zeros : constant Boolean := False;
+ Signed_Zeros : constant Boolean := True;
Stack_Check_Default : constant Boolean := False;
Stack_Check_Probes : constant Boolean := False;
Support_64_Bit_Divides : constant Boolean := True;
diff --git a/gcc/ada/system-linux-hppa.ads b/gcc/ada/system-linux-hppa.ads
new file mode 100644
index 00000000000..fde1129b7b5
--- /dev/null
+++ b/gcc/ada/system-linux-hppa.ads
@@ -0,0 +1,151 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- S Y S T E M --
+-- --
+-- S p e c --
+-- (GNU/Linux-HPPA Version) --
+-- --
+-- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
+-- --
+-- GNAT 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. GNAT 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 GNAT; 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. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package System is
+pragma Pure (System);
+-- Note that we take advantage of the implementation permission to
+-- make this unit Pure instead of Preelaborable, see RM 13.7(36)
+
+ type Name is (SYSTEM_NAME_GNAT);
+ System_Name : constant Name := SYSTEM_NAME_GNAT;
+
+ -- System-Dependent Named Numbers
+
+ Min_Int : constant := Long_Long_Integer'First;
+ Max_Int : constant := Long_Long_Integer'Last;
+
+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size;
+ Max_Nonbinary_Modulus : constant := Integer'Last;
+
+ Max_Base_Digits : constant := Long_Long_Float'Digits;
+ Max_Digits : constant := Long_Long_Float'Digits;
+
+ Max_Mantissa : constant := 63;
+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa);
+
+ Tick : constant := 0.000_001;
+
+ -- Storage-related Declarations
+
+ type Address is private;
+ Null_Address : constant Address;
+
+ Storage_Unit : constant := 8;
+ Word_Size : constant := 32;
+ Memory_Size : constant := 2 ** 32;
+
+ -- Address comparison
+
+ function "<" (Left, Right : Address) return Boolean;
+ function "<=" (Left, Right : Address) return Boolean;
+ function ">" (Left, Right : Address) return Boolean;
+ function ">=" (Left, Right : Address) return Boolean;
+ function "=" (Left, Right : Address) return Boolean;
+
+ pragma Import (Intrinsic, "<");
+ pragma Import (Intrinsic, "<=");
+ pragma Import (Intrinsic, ">");
+ pragma Import (Intrinsic, ">=");
+ pragma Import (Intrinsic, "=");
+
+ -- Other System-Dependent Declarations
+
+ type Bit_Order is (High_Order_First, Low_Order_First);
+ Default_Bit_Order : constant Bit_Order := High_Order_First;
+
+ -- Priority-related Declarations (RM D.1)
+
+ Max_Priority : constant Positive := 30;
+ Max_Interrupt_Priority : constant Positive := 31;
+
+ subtype Any_Priority is Integer range 0 .. 31;
+ subtype Priority is Any_Priority range 0 .. 30;
+ subtype Interrupt_Priority is Any_Priority range 31 .. 31;
+
+ Default_Priority : constant Priority := 15;
+
+private
+
+ type Address is mod Memory_Size;
+ Null_Address : constant Address := 0;
+
+ --------------------------------------
+ -- System Implementation Parameters --
+ --------------------------------------
+
+ -- These parameters provide information about the target that is used
+ -- by the compiler. They are in the private part of System, where they
+ -- can be accessed using the special circuitry in the Targparm unit
+ -- whose source should be consulted for more detailed descriptions
+ -- of the individual switch values.
+
+ AAMP : constant Boolean := False;
+ Backend_Divide_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := False;
+ Command_Line_Args : constant Boolean := True;
+ Configurable_Run_Time : constant Boolean := False;
+ Denorm : constant Boolean := True;
+ Duration_32_Bits : constant Boolean := False;
+ Exit_Status_Supported : constant Boolean := True;
+ Fractional_Fixed_Ops : constant Boolean := False;
+ Frontend_Layout : constant Boolean := False;
+ Functions_Return_By_DSP : constant Boolean := False;
+ Machine_Overflows : constant Boolean := False;
+ Machine_Rounds : constant Boolean := True;
+ OpenVMS : constant Boolean := False;
+ Preallocated_Stacks : constant Boolean := False;
+ Signed_Zeros : constant Boolean := True;
+ Stack_Check_Default : constant Boolean := False;
+ Stack_Check_Probes : constant Boolean := False;
+ Support_64_Bit_Divides : constant Boolean := True;
+ Support_Aggregates : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
+ Suppress_Standard_Library : constant Boolean := False;
+ Use_Ada_Main_Program_Name : constant Boolean := False;
+ ZCX_By_Default : constant Boolean := True;
+ GCC_ZCX_Support : constant Boolean := True;
+ Front_End_ZCX_Support : constant Boolean := False;
+
+ -- Obsolete entries, to be removed eventually (bootstrap issues!)
+
+ High_Integrity_Mode : constant Boolean := False;
+ Long_Shifts_Inlined : constant Boolean := False;
+
+end System;
diff --git a/gcc/ada/system-linux-sparc.ads b/gcc/ada/system-linux-sparc.ads
new file mode 100644
index 00000000000..048ce9055cd
--- /dev/null
+++ b/gcc/ada/system-linux-sparc.ads
@@ -0,0 +1,151 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- S Y S T E M --
+-- --
+-- S p e c --
+-- (GNU/Linux-SPARC Version) --
+-- --
+-- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
+-- --
+-- GNAT 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. GNAT 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 GNAT; 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. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package System is
+pragma Pure (System);
+-- Note that we take advantage of the implementation permission to
+-- make this unit Pure instead of Preelaborable, see RM 13.7(36)
+
+ type Name is (SYSTEM_NAME_GNAT);
+ System_Name : constant Name := SYSTEM_NAME_GNAT;
+
+ -- System-Dependent Named Numbers
+
+ Min_Int : constant := Long_Long_Integer'First;
+ Max_Int : constant := Long_Long_Integer'Last;
+
+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size;
+ Max_Nonbinary_Modulus : constant := Integer'Last;
+
+ Max_Base_Digits : constant := Long_Long_Float'Digits;
+ Max_Digits : constant := Long_Long_Float'Digits;
+
+ Max_Mantissa : constant := 63;
+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa);
+
+ Tick : constant := 0.000_001;
+
+ -- Storage-related Declarations
+
+ type Address is private;
+ Null_Address : constant Address;
+
+ Storage_Unit : constant := 8;
+ Word_Size : constant := 32;
+ Memory_Size : constant := 2 ** 32;
+
+ -- Address comparison
+
+ function "<" (Left, Right : Address) return Boolean;
+ function "<=" (Left, Right : Address) return Boolean;
+ function ">" (Left, Right : Address) return Boolean;
+ function ">=" (Left, Right : Address) return Boolean;
+ function "=" (Left, Right : Address) return Boolean;
+
+ pragma Import (Intrinsic, "<");
+ pragma Import (Intrinsic, "<=");
+ pragma Import (Intrinsic, ">");
+ pragma Import (Intrinsic, ">=");
+ pragma Import (Intrinsic, "=");
+
+ -- Other System-Dependent Declarations
+
+ type Bit_Order is (High_Order_First, Low_Order_First);
+ Default_Bit_Order : constant Bit_Order := High_Order_First;
+
+ -- Priority-related Declarations (RM D.1)
+
+ Max_Priority : constant Positive := 30;
+ Max_Interrupt_Priority : constant Positive := 31;
+
+ subtype Any_Priority is Integer range 0 .. 31;
+ subtype Priority is Any_Priority range 0 .. 30;
+ subtype Interrupt_Priority is Any_Priority range 31 .. 31;
+
+ Default_Priority : constant Priority := 15;
+
+private
+
+ type Address is mod Memory_Size;
+ Null_Address : constant Address := 0;
+
+ --------------------------------------
+ -- System Implementation Parameters --
+ --------------------------------------
+
+ -- These parameters provide information about the target that is used
+ -- by the compiler. They are in the private part of System, where they
+ -- can be accessed using the special circuitry in the Targparm unit
+ -- whose source should be consulted for more detailed descriptions
+ -- of the individual switch values.
+
+ AAMP : constant Boolean := False;
+ Backend_Divide_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := False;
+ Command_Line_Args : constant Boolean := True;
+ Configurable_Run_Time : constant Boolean := False;
+ Denorm : constant Boolean := True;
+ Duration_32_Bits : constant Boolean := False;
+ Exit_Status_Supported : constant Boolean := True;
+ Fractional_Fixed_Ops : constant Boolean := False;
+ Frontend_Layout : constant Boolean := False;
+ Functions_Return_By_DSP : constant Boolean := False;
+ Machine_Overflows : constant Boolean := False;
+ Machine_Rounds : constant Boolean := True;
+ OpenVMS : constant Boolean := False;
+ Preallocated_Stacks : constant Boolean := False;
+ Signed_Zeros : constant Boolean := True;
+ Stack_Check_Default : constant Boolean := False;
+ Stack_Check_Probes : constant Boolean := False;
+ Support_64_Bit_Divides : constant Boolean := True;
+ Support_Aggregates : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
+ Suppress_Standard_Library : constant Boolean := False;
+ Use_Ada_Main_Program_Name : constant Boolean := False;
+ ZCX_By_Default : constant Boolean := True;
+ GCC_ZCX_Support : constant Boolean := True;
+ Front_End_ZCX_Support : constant Boolean := False;
+
+ -- Obsolete entries, to be removed eventually (bootstrap issues!)
+
+ High_Integrity_Mode : constant Boolean := False;
+ Long_Shifts_Inlined : constant Boolean := True;
+
+end System;
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c
index 7446359e90e..f02d454d87c 100644
--- a/gcc/ada/trans.c
+++ b/gcc/ada/trans.c
@@ -2956,7 +2956,7 @@ gnat_to_gnu (Node_Id gnat_node)
NULL_TREE, gnu_prefix);
else
{
- gnu_field = gnat_to_gnu_entity (gnat_field, NULL_TREE, 0);
+ gnu_field = gnat_to_gnu_field_decl (gnat_field);
/* If there are discriminants, the prefix might be
evaluated more than once, which is a problem if it has
@@ -3013,6 +3013,8 @@ gnat_to_gnu (Node_Id gnat_node)
/* ??? It is wrong to evaluate the type now, but there doesn't
seem to be any other practical way of doing it. */
+ gcc_assert (!Expansion_Delayed (gnat_node));
+
gnu_aggr_type = gnu_result_type
= get_unpadded_type (Etype (gnat_node));
@@ -3497,11 +3499,9 @@ gnat_to_gnu (Node_Id gnat_node)
/* The return value from the subprogram. */
tree gnu_ret_val = NULL_TREE;
/* The place to put the return value. */
- tree gnu_lhs
- = (TYPE_RETURNS_BY_TARGET_PTR_P (gnu_subprog_type)
- ? build_unary_op (INDIRECT_REF, NULL_TREE,
- DECL_ARGUMENTS (current_function_decl))
- : DECL_RESULT (current_function_decl));
+ tree gnu_lhs;
+ /* Avoid passing error_mark_node to RETURN_EXPR. */
+ gnu_result = NULL_TREE;
/* If we are dealing with a "return;" from an Ada procedure with
parameters passed by copy in copy out, we need to return a record
@@ -3524,6 +3524,7 @@ gnat_to_gnu (Node_Id gnat_node)
else if (TYPE_CI_CO_LIST (gnu_subprog_type))
{
+ gnu_lhs = DECL_RESULT (current_function_decl);
if (list_length (TYPE_CI_CO_LIST (gnu_subprog_type)) == 1)
gnu_ret_val = TREE_VALUE (TYPE_CI_CO_LIST (gnu_subprog_type));
else
@@ -3543,12 +3544,26 @@ gnat_to_gnu (Node_Id gnat_node)
are doing a call, pass that target to the call. */
if (TYPE_RETURNS_BY_TARGET_PTR_P (gnu_subprog_type)
&& Nkind (Expression (gnat_node)) == N_Function_Call)
- gnu_ret_val = call_to_gnu (Expression (gnat_node),
- &gnu_result_type, gnu_lhs);
+ {
+ gnu_lhs
+ = build_unary_op (INDIRECT_REF, NULL_TREE,
+ DECL_ARGUMENTS (current_function_decl));
+ gnu_result = call_to_gnu (Expression (gnat_node),
+ &gnu_result_type, gnu_lhs);
+ }
else
{
gnu_ret_val = gnat_to_gnu (Expression (gnat_node));
+ if (TYPE_RETURNS_BY_TARGET_PTR_P (gnu_subprog_type))
+ /* The original return type was unconstrained so dereference
+ the TARGET pointer in the return value's type. */
+ gnu_lhs
+ = build_unary_op (INDIRECT_REF, TREE_TYPE (gnu_ret_val),
+ DECL_ARGUMENTS (current_function_decl));
+ else
+ gnu_lhs = DECL_RESULT (current_function_decl);
+
/* Do not remove the padding from GNU_RET_VAL if the inner
type is self-referential since we want to allocate the fixed
size in that case. */
@@ -3591,18 +3606,19 @@ gnat_to_gnu (Node_Id gnat_node)
gnat_node);
}
}
+ }
- gnu_result = build2 (MODIFY_EXPR, TREE_TYPE (gnu_ret_val),
- gnu_lhs, gnu_ret_val);
- if (TYPE_RETURNS_BY_TARGET_PTR_P (gnu_subprog_type))
- {
- add_stmt_with_node (gnu_result, gnat_node);
- gnu_ret_val = NULL_TREE;
- }
+ if (gnu_ret_val)
+ gnu_result = build2 (MODIFY_EXPR, TREE_TYPE (gnu_ret_val),
+ gnu_lhs, gnu_ret_val);
+
+ if (TYPE_RETURNS_BY_TARGET_PTR_P (gnu_subprog_type))
+ {
+ add_stmt_with_node (gnu_result, gnat_node);
+ gnu_result = NULL_TREE;
}
- gnu_result = build1 (RETURN_EXPR, void_type_node,
- gnu_ret_val ? gnu_result : gnu_ret_val);
+ gnu_result = build1 (RETURN_EXPR, void_type_node, gnu_result);
}
break;
@@ -4021,12 +4037,13 @@ gnat_to_gnu (Node_Id gnat_node)
current_function_decl = NULL_TREE;
}
- /* Set the location information into the result. If we're supposed to
- return something of void_type, it means we have something we're
- elaborating for effect, so just return. */
- if (EXPR_P (gnu_result))
+ /* Set the location information into the result. Note that we may have
+ no result if we just expanded a procedure with no side-effects. */
+ if (gnu_result && EXPR_P (gnu_result))
annotate_with_node (gnu_result, gnat_node);
+ /* If we're supposed to return something of void_type, it means we have
+ something we're elaborating for effect, so just return. */
if (TREE_CODE (gnu_result_type) == VOID_TYPE)
return gnu_result;
@@ -5439,13 +5456,19 @@ assoc_to_constructor (Node_Id gnat_assoc, tree gnu_type)
gnat_assoc = Next (gnat_assoc))
{
Node_Id gnat_field = First (Choices (gnat_assoc));
- tree gnu_field = gnat_to_gnu_entity (Entity (gnat_field), NULL_TREE, 0);
+ tree gnu_field = gnat_to_gnu_field_decl (Entity (gnat_field));
tree gnu_expr = gnat_to_gnu (Expression (gnat_assoc));
/* The expander is supposed to put a single component selector name
in every record component association */
gcc_assert (No (Next (gnat_field)));
+ /* Ignore fields that have Corresponding_Discriminants since we'll
+ be setting that field in the parent. */
+ if (Present (Corresponding_Discriminant (Entity (gnat_field)))
+ && Is_Tagged_Type (Scope (Entity (gnat_field))))
+ continue;
+
/* Before assigning a value in an aggregate make sure range checks
are done if required. Then convert to the type of the field. */
if (Do_Range_Check (Expression (gnat_assoc)))
diff --git a/gcc/ada/utils.c b/gcc/ada/utils.c
index 6b44189f7d0..4390b00eed1 100644
--- a/gcc/ada/utils.c
+++ b/gcc/ada/utils.c
@@ -668,10 +668,10 @@ finish_record_type (tree record_type, tree fieldlist, bool has_rep,
TYPE_MODE (record_type) = BLKmode;
if (!had_size_unit)
- TYPE_SIZE_UNIT (record_type) = size_zero_node;
-
+ TYPE_SIZE_UNIT (record_type) = size_zero_node;
if (!had_size)
TYPE_SIZE (record_type) = bitsize_zero_node;
+
/* For all-repped records with a size specified, lay the QUAL_UNION_TYPE
out just like a UNION_TYPE, since the size will be fixed. */
else if (code == QUAL_UNION_TYPE)
@@ -796,9 +796,11 @@ finish_record_type (tree record_type, tree fieldlist, bool has_rep,
: convert (sizetype, size_binop (CEIL_DIV_EXPR, size,
bitsize_unit_node)));
- TYPE_SIZE (record_type) = round_up (size, TYPE_ALIGN (record_type));
+ TYPE_SIZE (record_type)
+ = variable_size (round_up (size, TYPE_ALIGN (record_type)));
TYPE_SIZE_UNIT (record_type)
- = round_up (size_unit, TYPE_ALIGN (record_type) / BITS_PER_UNIT);
+ = variable_size (round_up (size_unit,
+ TYPE_ALIGN (record_type) / BITS_PER_UNIT));
compute_record_mode (record_type);
}
@@ -2919,10 +2921,13 @@ convert (tree type, tree expr)
{
if (TREE_TYPE (tem) == etype)
return build1 (CONVERT_EXPR, type, expr);
- else if (TREE_CODE (TREE_TYPE (tem)) == RECORD_TYPE
- && (TYPE_JUSTIFIED_MODULAR_P (TREE_TYPE (tem))
- || TYPE_IS_PADDING_P (TREE_TYPE (tem)))
- && TREE_TYPE (TYPE_FIELDS (TREE_TYPE (tem))) == etype)
+
+ /* Accept slight type variations. */
+ if (TREE_TYPE (tem) == TYPE_MAIN_VARIANT (etype)
+ || (TREE_CODE (TREE_TYPE (tem)) == RECORD_TYPE
+ && (TYPE_JUSTIFIED_MODULAR_P (TREE_TYPE (tem))
+ || TYPE_IS_PADDING_P (TREE_TYPE (tem)))
+ && TREE_TYPE (TYPE_FIELDS (TREE_TYPE (tem))) == etype))
return build1 (CONVERT_EXPR, type,
convert (TREE_TYPE (tem), expr));
}
diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c
index 008ac6e3ab2..787d01e284a 100644
--- a/gcc/ada/utils2.c
+++ b/gcc/ada/utils2.c
@@ -679,9 +679,9 @@ build_binary_op (enum tree_code op_code, tree result_type,
|| (TREE_CODE (TREE_TYPE (TREE_OPERAND (right_operand, 0)))
== ARRAY_TYPE))
&& (0 == (best_type
- == find_common_type (right_type,
- TREE_TYPE (TREE_OPERAND
- (right_operand, 0))))
+ = find_common_type (right_type,
+ TREE_TYPE (TREE_OPERAND
+ (right_operand, 0))))
|| right_type != best_type))
{
right_operand = TREE_OPERAND (right_operand, 0);
diff --git a/gcc/alias.c b/gcc/alias.c
index a0f77d559a1..dbda2aec741 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -97,7 +97,8 @@ typedef struct alias_set_entry *alias_set_entry;
static int rtx_equal_for_memref_p (rtx, rtx);
static rtx find_symbolic_term (rtx);
-static int memrefs_conflict_p (int, rtx, int, rtx, HOST_WIDE_INT);
+/* APPLE LOCAL nop on true-dependence. */
+static int memrefs_conflict_p (int, rtx, int, rtx, HOST_WIDE_INT, int);
static void record_set (rtx, rtx, void *);
static int base_alias_check (rtx, rtx, enum machine_mode,
enum machine_mode);
@@ -113,6 +114,8 @@ static bool nonoverlapping_component_refs_p (tree, tree);
static tree decl_for_component_ref (tree);
static rtx adjust_offset_for_component_ref (tree, rtx);
static int nonoverlapping_memrefs_p (rtx, rtx);
+/* APPLE LOCAL aliasing improvement */
+static int overlapping_memrefs_p (rtx, rtx);
static int write_dependence_p (rtx, rtx, int);
static int nonlocal_mentioned_p_1 (rtx *, void *);
@@ -1612,6 +1615,8 @@ addr_side_effect_eval (rtx addr, int size, int n_refs)
return addr;
}
+/* APPLE LOCAL begin nop on true-dependence. */
+
/* Return nonzero if X and Y (memory addresses) could reference the
same location in memory. C is an offset accumulator. When
C is nonzero, we are testing aliases between X and Y + C.
@@ -1627,11 +1632,19 @@ addr_side_effect_eval (rtx addr, int size, int n_refs)
being referenced as a side effect. This can happen when using AND to
align memory references, as is done on the Alpha.
+ Caller can decide what value to return by passing memrefs_may_conflist as
+ 0 or 1. If 1, caller wants memrefs_conflict_p to assume conflict if
+ aliasing info is insufficient to decide on memory conflict. If 0,
+ caller wants memrefs_conflict_p to assume no conflict for insufficient
+ aliasing info.
+
Nice to notice that varying addresses cannot conflict with fp if no
local variables had their addresses taken, but that's too hard now. */
+
static int
-memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
+memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c,
+ int memrefs_may_conflist)
{
if (GET_CODE (x) == VALUE)
x = get_addr (x);
@@ -1679,25 +1692,31 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
rtx y1 = XEXP (y, 1);
if (rtx_equal_for_memref_p (x1, y1))
- return memrefs_conflict_p (xsize, x0, ysize, y0, c);
+ return memrefs_conflict_p (xsize, x0, ysize, y0, c,
+ memrefs_may_conflist);
if (rtx_equal_for_memref_p (x0, y0))
- return memrefs_conflict_p (xsize, x1, ysize, y1, c);
+ return memrefs_conflict_p (xsize, x1, ysize, y1, c,
+ memrefs_may_conflist);
if (GET_CODE (x1) == CONST_INT)
{
if (GET_CODE (y1) == CONST_INT)
return memrefs_conflict_p (xsize, x0, ysize, y0,
- c - INTVAL (x1) + INTVAL (y1));
+ c - INTVAL (x1) + INTVAL (y1),
+ memrefs_may_conflist);
else
return memrefs_conflict_p (xsize, x0, ysize, y,
- c - INTVAL (x1));
+ c - INTVAL (x1),
+ memrefs_may_conflist);
}
else if (GET_CODE (y1) == CONST_INT)
- return memrefs_conflict_p (xsize, x, ysize, y0, c + INTVAL (y1));
+ return memrefs_conflict_p (xsize, x, ysize, y0, c + INTVAL (y1),
+ memrefs_may_conflist);
- return 1;
+ return memrefs_may_conflist;
}
else if (GET_CODE (x1) == CONST_INT)
- return memrefs_conflict_p (xsize, x0, ysize, y, c - INTVAL (x1));
+ return memrefs_conflict_p (xsize, x0, ysize, y, c - INTVAL (x1),
+ memrefs_may_conflist);
}
else if (GET_CODE (y) == PLUS)
{
@@ -1707,9 +1726,10 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
rtx y1 = XEXP (y, 1);
if (GET_CODE (y1) == CONST_INT)
- return memrefs_conflict_p (xsize, x, ysize, y0, c + INTVAL (y1));
+ return memrefs_conflict_p (xsize, x, ysize, y0, c + INTVAL (y1),
+ memrefs_may_conflist);
else
- return 1;
+ return memrefs_may_conflist;
}
if (GET_CODE (x) == GET_CODE (y))
@@ -1724,7 +1744,7 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
rtx x1 = canon_rtx (XEXP (x, 1));
rtx y1 = canon_rtx (XEXP (y, 1));
if (! rtx_equal_for_memref_p (x1, y1))
- return 1;
+ return memrefs_may_conflist;
x0 = canon_rtx (XEXP (x, 0));
y0 = canon_rtx (XEXP (y, 0));
if (rtx_equal_for_memref_p (x0, y0))
@@ -1733,11 +1753,12 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
/* Can't properly adjust our sizes. */
if (GET_CODE (x1) != CONST_INT)
- return 1;
+ return memrefs_may_conflist;
xsize /= INTVAL (x1);
ysize /= INTVAL (x1);
c /= INTVAL (x1);
- return memrefs_conflict_p (xsize, x0, ysize, y0, c);
+ return memrefs_conflict_p (xsize, x0, ysize, y0, c,
+ memrefs_may_conflist);
}
case REG:
@@ -1754,7 +1775,8 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
break;
if (! memrefs_conflict_p (xsize, i_x ? i_x : x,
- ysize, i_y ? i_y : y, c))
+ ysize, i_y ? i_y : y, c,
+ memrefs_may_conflist))
return 0;
}
break;
@@ -1771,7 +1793,8 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
{
if (GET_CODE (y) == AND || ysize < -INTVAL (XEXP (x, 1)))
xsize = -1;
- return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)), ysize, y, c);
+ return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)), ysize, y, c,
+ memrefs_may_conflist);
}
if (GET_CODE (y) == AND && GET_CODE (XEXP (y, 1)) == CONST_INT)
{
@@ -1781,7 +1804,8 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
a following reference, so we do nothing with that for now. */
if (GET_CODE (x) == AND || xsize < -INTVAL (XEXP (y, 1)))
ysize = -1;
- return memrefs_conflict_p (xsize, x, ysize, canon_rtx (XEXP (y, 0)), c);
+ return memrefs_conflict_p (xsize, x, ysize, canon_rtx (XEXP (y, 0)), c,
+ memrefs_may_conflist);
}
if (CONSTANT_P (x))
@@ -1797,24 +1821,28 @@ memrefs_conflict_p (int xsize, rtx x, int ysize, rtx y, HOST_WIDE_INT c)
{
if (GET_CODE (y) == CONST)
return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
- ysize, canon_rtx (XEXP (y, 0)), c);
+ ysize, canon_rtx (XEXP (y, 0)), c,
+ memrefs_may_conflist);
else
return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
- ysize, y, c);
+ ysize, y, c,
+ memrefs_may_conflist);
}
if (GET_CODE (y) == CONST)
return memrefs_conflict_p (xsize, x, ysize,
- canon_rtx (XEXP (y, 0)), c);
+ canon_rtx (XEXP (y, 0)), c,
+ memrefs_may_conflist);
if (CONSTANT_P (y))
return (xsize <= 0 || ysize <= 0
|| (rtx_equal_for_memref_p (x, y)
&& ((c >= 0 && xsize > c) || (c < 0 && ysize+c > 0))));
- return 1;
+ return memrefs_may_conflist;
}
- return 1;
+ return memrefs_may_conflist;
}
+/* APPLE LOCAL end nop on true-dependence. */
/* Functions to compute memory dependencies.
@@ -2117,6 +2145,119 @@ nonoverlapping_memrefs_p (rtx x, rtx y)
return sizex >= 0 && offsety >= offsetx + sizex;
}
+/* APPLE LOCAL begin aliasing improvement */
+/* Helper for the following. Return 1 only if we're sure of overlap. */
+
+static int
+overlapping_trees_p (tree exprx, tree expry)
+{
+ /* If no info about either one, can't tell. */
+ if (exprx == 0 || expry == 0)
+ return 0;
+
+ /* Top level code must match. */
+ if (TREE_CODE (exprx) != TREE_CODE (expry))
+ return 0;
+
+ /* Components. */
+ if (TREE_CODE (exprx) == COMPONENT_REF)
+ {
+ /* They must refer to the same field... */
+ if (TREE_OPERAND (exprx, 1) != TREE_OPERAND (expry, 1))
+ return 0;
+ /* ...of the same object. (The object may be null, which
+ will compare as not overlapping.) */
+ return overlapping_trees_p (TREE_OPERAND (exprx, 0),
+ TREE_OPERAND (expry, 0));
+ }
+
+ /* Pointers. */
+ if (TREE_CODE (exprx) == INDIRECT_REF)
+ return overlapping_trees_p (TREE_OPERAND (exprx, 0),
+ TREE_OPERAND (expry, 0));
+
+ if (TREE_CODE (exprx) == VAR_DECL
+ || TREE_CODE (exprx) == PARM_DECL
+ || TREE_CODE (exprx) == CONST_DECL
+ || TREE_CODE (exprx) == FUNCTION_DECL)
+ return exprx == expry;
+
+ return 0;
+}
+
+/* Return 1 if memrefs definitely overlap, 0 otherwise. */
+
+
+static int
+overlapping_memrefs_p (rtx x, rtx y)
+{
+ tree exprx = MEM_EXPR (x), expry = MEM_EXPR (y);
+ rtx offsetx = MEM_OFFSET (x), offsety = MEM_OFFSET (y);
+
+ /* See if offsets collide. Known but different offsets do not
+ overlap. Unknown offsets will if the underlying object is the same. */
+ if (offsetx != 0 && offsety != 0 && !rtx_equal_p (offsetx, offsety))
+ return 0;
+
+ return overlapping_trees_p (exprx, expry);
+}
+/* APPLE LOCAL end aliasing improvement */
+
+
+/* APPLE LOCAL begin nop on true-dependence. */
+/*
+ True dependence: X is read after store in MEM takes place.
+ This is similar to true_dependence. Except that function returns 1
+ only if it can determine the conflict. If it cannot or if there
+ is no conflict, it returns 0.
+*/
+
+int
+must_true_dependence (rtx mem, rtx x)
+{
+ rtx x_addr, mem_addr;
+ enum machine_mode mem_mode;
+
+ if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem))
+ return 1;
+
+ /* (mem:BLK (scratch)) is a special mechanism to conflict with everything.
+ This is used in epilogue deallocation functions. */
+ if (GET_MODE (x) == BLKmode && GET_CODE (XEXP (x, 0)) == SCRATCH)
+ return 1;
+ if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
+ return 1;
+
+ mem_mode = GET_MODE (mem);
+ x_addr = get_addr (XEXP (x, 0));
+ mem_addr = get_addr (XEXP (mem, 0));
+
+ /* APPLE LOCAL begin aliasing improvement */
+ if (overlapping_memrefs_p (mem, x))
+ return 1;
+ /* APPLE LOCAL end */
+
+ if (aliases_everything_p (x))
+ return 1;
+
+ x_addr = canon_rtx (x_addr);
+ mem_addr = canon_rtx (mem_addr);
+
+ /* We cannot use aliases_everything_p to test MEM, since we must look
+ at MEM_MODE, rather than GET_MODE (MEM). */
+ if (mem_mode == QImode || GET_CODE (mem_addr) == AND)
+ return 1;
+
+ /* In true_dependence we also allow BLKmode to alias anything. Why
+ don't we do this in anti_dependence and output_dependence? */
+ if (mem_mode == BLKmode || GET_MODE (x) == BLKmode)
+ return 1;
+
+ return memrefs_conflict_p (GET_MODE_SIZE (mem_mode), mem_addr,
+ SIZE_FOR_MODE (x), x_addr, 0, 0);
+}
+/* APPLE LOCAL end nop on true-dependence. */
+
/* True dependence: X is read after store in MEM takes place. */
int
@@ -2160,6 +2301,11 @@ true_dependence (rtx mem, enum machine_mode mem_mode, rtx x,
&& CONSTANT_POOL_ADDRESS_P (base))))
return 0;
+ /* APPLE LOCAL begin aliasing improvement */
+ if (overlapping_memrefs_p (mem, x))
+ return 1;
+ /* APPLE LOCAL end */
+
if (! base_alias_check (x_addr, mem_addr, GET_MODE (x), mem_mode))
return 0;
@@ -2167,7 +2313,8 @@ true_dependence (rtx mem, enum machine_mode mem_mode, rtx x,
mem_addr = canon_rtx (mem_addr);
if (! memrefs_conflict_p (GET_MODE_SIZE (mem_mode), mem_addr,
- SIZE_FOR_MODE (x), x_addr, 0))
+ /* APPLE LOCAL nop on true-dependence. */
+ SIZE_FOR_MODE (x), x_addr, 0, 1))
return 0;
if (aliases_everything_p (x))
@@ -2223,12 +2370,18 @@ canon_true_dependence (rtx mem, enum machine_mode mem_mode, rtx mem_addr,
x_addr = get_addr (XEXP (x, 0));
+ /* APPLE LOCAL begin aliasing improvement */
+ if (overlapping_memrefs_p (mem, x))
+ return 1;
+ /* APPLE LOCAL end */
+
if (! base_alias_check (x_addr, mem_addr, GET_MODE (x), mem_mode))
return 0;
x_addr = canon_rtx (x_addr);
if (! memrefs_conflict_p (GET_MODE_SIZE (mem_mode), mem_addr,
- SIZE_FOR_MODE (x), x_addr, 0))
+ /* APPLE LOCAL nop on true-dependence. */
+ SIZE_FOR_MODE (x), x_addr, 0, 1))
return 0;
if (aliases_everything_p (x))
@@ -2268,6 +2421,19 @@ write_dependence_p (rtx mem, rtx x, int writep)
if (GET_MODE (mem) == BLKmode && GET_CODE (XEXP (mem, 0)) == SCRATCH)
return 1;
+ /* APPLE LOCAL begin make SPEC gcc work with strict aliasing */
+ x_addr = get_addr (XEXP (x, 0));
+ mem_addr = get_addr (XEXP (mem, 0));
+
+ /* If two addresses are "the same" they conflict, even if type
+ checking says they don't. This is a bit too conservative
+ since there's no guarantee identical registers will have the
+ same values in both addresses. This is required to build
+ the (nonstandard) version of gcc found in SPEC. */
+ if (rtx_equal_p (x_addr, mem_addr))
+ return 1;
+ /* APPLE LOCAL end make SPEC gcc work with strict aliasing */
+
if (DIFFERENT_ALIAS_SETS_P (x, mem))
return 0;
@@ -2290,6 +2456,11 @@ write_dependence_p (rtx mem, rtx x, int writep)
return 0;
}
+ /* APPLE LOCAL begin aliasing improvement */
+ if (overlapping_memrefs_p (mem, x))
+ return 1;
+ /* APPLE LOCAL end */
+
if (! base_alias_check (x_addr, mem_addr, GET_MODE (x),
GET_MODE (mem)))
return 0;
@@ -2298,7 +2469,8 @@ write_dependence_p (rtx mem, rtx x, int writep)
mem_addr = canon_rtx (mem_addr);
if (!memrefs_conflict_p (SIZE_FOR_MODE (mem), mem_addr,
- SIZE_FOR_MODE (x), x_addr, 0))
+ /* APPLE LOCAL nop on true-dependence. */
+ SIZE_FOR_MODE (x), x_addr, 0, 1))
return 0;
fixed_scalar
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index d054ffd9201..00b3112daea 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -2031,33 +2031,51 @@ duplicate_computed_gotos (void)
uncond_jump_length = get_uncond_jump_length ();
max_size = uncond_jump_length * PARAM_VALUE (PARAM_MAX_GOTO_DUPLICATION_INSNS);
- candidates = BITMAP_XMALLOC ();
+ candidates = BITMAP_ALLOC (NULL);
- /* Build the reorder chain for the original order of blocks.
- Look for a computed jump while we are at it. */
+ /* Look for blocks that end in a computed jump, and see if such blocks
+ are suitable for unfactoring. If a block is a candidate for unfactoring,
+ mark it in the candidates. */
FOR_EACH_BB (bb)
{
+ rtx insn;
+ edge e;
+ edge_iterator ei;
+ int size, all_flags;
+
+ /* Build the reorder chain for the original order of blocks. */
if (bb->next_bb != EXIT_BLOCK_PTR)
bb->rbi->next = bb->next_bb;
- /* If the block ends in a computed jump and it is small enough,
- make it a candidate for duplication. */
- if (computed_jump_p (BB_END (bb)))
- {
- rtx insn;
- int size = 0;
+ /* Obviously the block has to end in a computed jump. */
+ if (!computed_jump_p (BB_END (bb)))
+ continue;
- FOR_BB_INSNS (bb, insn)
- {
- if (INSN_P (insn))
- size += get_attr_length (insn);
- if (size > max_size)
- break;
- }
+ /* Only consider blocks that can be duplicated. */
+ if (find_reg_note (BB_END (bb), REG_CROSSING_JUMP, NULL_RTX)
+ || !can_duplicate_block_p (bb))
+ continue;
- if (size <= max_size)
- bitmap_set_bit (candidates, bb->index);
- }
+ /* Make sure that the block is small enough. */
+ size = 0;
+ FOR_BB_INSNS (bb, insn)
+ if (INSN_P (insn))
+ {
+ size += get_attr_length (insn);
+ if (size > max_size)
+ break;
+ }
+ if (size > max_size)
+ continue;
+
+ /* Final check: there must not be any incoming abnormal edges. */
+ all_flags = 0;
+ FOR_EACH_EDGE (e, ei, bb->preds)
+ all_flags |= e->flags;
+ if (all_flags & EDGE_COMPLEX)
+ continue;
+
+ bitmap_set_bit (candidates, bb->index);
}
/* Nothing to do if there is no computed jump here. */
@@ -2094,7 +2112,7 @@ duplicate_computed_gotos (void)
done:
cfg_layout_finalize ();
- BITMAP_XFREE (candidates);
+ BITMAP_FREE (candidates);
timevar_pop (TV_REORDER_BLOCKS);
}
diff --git a/gcc/bitmap.h b/gcc/bitmap.h
index 24e987f420a..1b87007a92c 100644
--- a/gcc/bitmap.h
+++ b/gcc/bitmap.h
@@ -159,16 +159,10 @@ extern unsigned bitmap_first_set_bit (bitmap);
/* Allocate a gc'd bitmap. */
#define BITMAP_GGC_ALLOC() bitmap_gc_alloc ()
-/* Allocate a bitmap with xmalloc. */
-#define BITMAP_XMALLOC() BITMAP_ALLOC (NULL)
-
/* Do any cleanup needed on a bitmap when it is no longer used. */
#define BITMAP_FREE(BITMAP) \
((void)(bitmap_obstack_free (BITMAP), (BITMAP) = NULL))
-/* Do any cleanup needed on an xmalloced bitmap when it is no longer used. */
-#define BITMAP_XFREE(BITMAP) BITMAP_FREE (BITMAP)
-
/* Iterator for bitmaps. */
typedef struct
@@ -556,4 +550,9 @@ bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no)
bmp_iter_and_compl (&(ITER), &(BITNUM)); \
bmp_iter_next (&(ITER), &(BITNUM)))
+/* APPLE LOCAL begin loops-to-memset */
+/* True if MAP is an empty bitmap. */
+#define bitmap_empty_p(MAP) (!(MAP)->first)
+/* APPLE LOCAL end loops-to-memset */
+
#endif /* GCC_BITMAP_H */
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index c3bc3fab542..0fc47a0c88b 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -1,5 +1,5 @@
/* Perform branch target register load optimizations.
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -996,7 +996,7 @@ btr_def_live_range (btr_def def, HARD_REG_SET *btrs_live_in_range)
{
btr_user user;
- def->live_range = BITMAP_XMALLOC ();
+ def->live_range = BITMAP_ALLOC (NULL);
bitmap_set_bit (def->live_range, def->bb->index);
COPY_HARD_REG_SET (*btrs_live_in_range,
@@ -1056,7 +1056,7 @@ combine_btr_defs (btr_def def, HARD_REG_SET *btrs_live_in_range)
target registers live over the merged range. */
int btr;
HARD_REG_SET combined_btrs_live;
- bitmap combined_live_range = BITMAP_XMALLOC ();
+ bitmap combined_live_range = BITMAP_ALLOC (NULL);
btr_user user;
if (other_def->live_range == NULL)
@@ -1114,7 +1114,7 @@ combine_btr_defs (btr_def def, HARD_REG_SET *btrs_live_in_range)
delete_insn (other_def->insn);
}
- BITMAP_XFREE (combined_live_range);
+ BITMAP_FREE (combined_live_range);
}
}
}
@@ -1287,7 +1287,7 @@ migrate_btr_def (btr_def def, int min_cost)
}
btr_def_live_range (def, &btrs_live_in_range);
- live_range = BITMAP_XMALLOC ();
+ live_range = BITMAP_ALLOC (NULL);
bitmap_copy (live_range, def->live_range);
#ifdef INSN_SCHEDULING
@@ -1361,7 +1361,7 @@ migrate_btr_def (btr_def def, int min_cost)
if (dump_file)
fprintf (dump_file, "failed to move\n");
}
- BITMAP_XFREE (live_range);
+ BITMAP_FREE (live_range);
return !give_up;
}
@@ -1420,7 +1420,7 @@ migrate_btr_defs (enum reg_class btr_class, int allow_callee_save)
}
}
else
- BITMAP_XFREE (def->live_range);
+ BITMAP_FREE (def->live_range);
}
free (btrs_live);
diff --git a/gcc/builtins.c b/gcc/builtins.c
index afeb9bc5ce6..6b131543e1e 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -124,10 +124,10 @@ static rtx builtin_memset_gen_str (void *, HOST_WIDE_INT, enum machine_mode);
static rtx expand_builtin_memset (tree, rtx, enum machine_mode);
static rtx expand_builtin_bzero (tree);
static rtx expand_builtin_strlen (tree, rtx, enum machine_mode);
-static rtx expand_builtin_strstr (tree, rtx, enum machine_mode);
-static rtx expand_builtin_strpbrk (tree, rtx, enum machine_mode);
-static rtx expand_builtin_strchr (tree, rtx, enum machine_mode);
-static rtx expand_builtin_strrchr (tree, rtx, enum machine_mode);
+static rtx expand_builtin_strstr (tree, tree, rtx, enum machine_mode);
+static rtx expand_builtin_strpbrk (tree, tree, rtx, enum machine_mode);
+static rtx expand_builtin_strchr (tree, tree, rtx, enum machine_mode);
+static rtx expand_builtin_strrchr (tree, tree, rtx, enum machine_mode);
static rtx expand_builtin_alloca (tree, rtx);
static rtx expand_builtin_unop (enum machine_mode, tree, rtx, rtx, optab);
static rtx expand_builtin_frame_address (tree, tree);
@@ -165,7 +165,7 @@ static tree fold_builtin_bitop (tree);
static tree fold_builtin_memcpy (tree);
static tree fold_builtin_mempcpy (tree, tree, int);
static tree fold_builtin_memmove (tree, tree);
-static tree fold_builtin_strchr (tree);
+static tree fold_builtin_strchr (tree, tree);
static tree fold_builtin_memcmp (tree);
static tree fold_builtin_strcmp (tree);
static tree fold_builtin_strncmp (tree);
@@ -179,9 +179,9 @@ static tree fold_builtin_abs (tree, tree);
static tree fold_builtin_unordered_cmp (tree, enum tree_code, enum tree_code);
static tree fold_builtin_1 (tree, bool);
-static tree fold_builtin_strpbrk (tree);
-static tree fold_builtin_strstr (tree);
-static tree fold_builtin_strrchr (tree);
+static tree fold_builtin_strpbrk (tree, tree);
+static tree fold_builtin_strstr (tree, tree);
+static tree fold_builtin_strrchr (tree, tree);
static tree fold_builtin_strcat (tree);
static tree fold_builtin_strncat (tree);
static tree fold_builtin_strspn (tree);
@@ -453,11 +453,16 @@ builtin_save_expr (tree exp)
address located within it (depending on FNDECL_CODE). */
static rtx
-expand_builtin_return_addr (enum built_in_function fndecl_code, int count,
- rtx tem)
+expand_builtin_return_addr (enum built_in_function fndecl_code, int count)
{
int i;
+#ifdef INITIAL_FRAME_ADDRESS_RTX
+ rtx tem = INITIAL_FRAME_ADDRESS_RTX;
+#else
+ rtx tem = hard_frame_pointer_rtx;
+#endif
+
/* Some machines need special handling before we can access
arbitrary frames. For example, on the sparc, we must first flush
all register windows to the stack. */
@@ -973,12 +978,8 @@ expand_builtin_prefetch (tree arglist)
static rtx
get_memory_rtx (tree exp)
{
- rtx addr = expand_expr (exp, NULL_RTX, ptr_mode, EXPAND_SUM);
- rtx mem;
-
- addr = convert_memory_address (Pmode, addr);
-
- mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
+ rtx addr = expand_expr (exp, NULL_RTX, ptr_mode, EXPAND_NORMAL);
+ rtx mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
/* Get an expression we can use to find the attributes to assign to MEM.
If it is an ADDR_EXPR, use the operand. Otherwise, dereference it if
@@ -2373,6 +2374,8 @@ expand_builtin_powi (tree exp, rtx target, rtx subtarget)
tree arg0, arg1;
rtx op0, op1;
enum machine_mode mode;
+ /* APPLE LOCAL mainline 2005-03-30 */
+ enum machine_mode mode2;
if (! validate_arglist (arglist, REAL_TYPE, INTEGER_TYPE, VOID_TYPE))
return 0;
@@ -2404,19 +2407,24 @@ expand_builtin_powi (tree exp, rtx target, rtx subtarget)
/* Emit a libcall to libgcc. */
+ /* APPLE LOCAL begin mainline 2005-03-30 */
+ /* Mode of the 2nd argument must match that of an int. */
+ mode2 = mode_for_size (INT_TYPE_SIZE, MODE_INT, 0);
+
if (target == NULL_RTX)
target = gen_reg_rtx (mode);
op0 = expand_expr (arg0, subtarget, mode, 0);
if (GET_MODE (op0) != mode)
op0 = convert_to_mode (mode, op0, 0);
- op1 = expand_expr (arg1, 0, word_mode, 0);
- if (GET_MODE (op1) != word_mode)
- op1 = convert_to_mode (word_mode, op1, 0);
+ op1 = expand_expr (arg1, 0, mode2, 0);
+ if (GET_MODE (op1) != mode2)
+ op1 = convert_to_mode (mode2, op1, 0);
target = emit_library_call_value (powi_optab->handlers[(int) mode].libfunc,
target, LCT_CONST_MAKE_BLOCK, mode, 2,
- op0, mode, op1, word_mode);
+ op0, mode, op1, mode2);
+ /* APPLE LOCAL end mainline 2005-03-30 */
return target;
}
@@ -2534,11 +2542,11 @@ expand_builtin_strlen (tree arglist, rtx target,
in TARGET, if convenient (and in mode MODE if that's convenient). */
static rtx
-expand_builtin_strstr (tree arglist, rtx target, enum machine_mode mode)
+expand_builtin_strstr (tree arglist, tree type, rtx target, enum machine_mode mode)
{
if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
{
- tree result = fold_builtin_strstr (arglist);
+ tree result = fold_builtin_strstr (arglist, type);
if (result)
return expand_expr (result, target, mode, EXPAND_NORMAL);
}
@@ -2550,11 +2558,11 @@ expand_builtin_strstr (tree arglist, rtx target, enum machine_mode mode)
in TARGET, if convenient (and in mode MODE if that's convenient). */
static rtx
-expand_builtin_strchr (tree arglist, rtx target, enum machine_mode mode)
+expand_builtin_strchr (tree arglist, tree type, rtx target, enum machine_mode mode)
{
if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
{
- tree result = fold_builtin_strchr (arglist);
+ tree result = fold_builtin_strchr (arglist, type);
if (result)
return expand_expr (result, target, mode, EXPAND_NORMAL);
@@ -2568,11 +2576,11 @@ expand_builtin_strchr (tree arglist, rtx target, enum machine_mode mode)
in TARGET, if convenient (and in mode MODE if that's convenient). */
static rtx
-expand_builtin_strrchr (tree arglist, rtx target, enum machine_mode mode)
+expand_builtin_strrchr (tree arglist, tree type, rtx target, enum machine_mode mode)
{
if (validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
{
- tree result = fold_builtin_strrchr (arglist);
+ tree result = fold_builtin_strrchr (arglist, type);
if (result)
return expand_expr (result, target, mode, EXPAND_NORMAL);
}
@@ -2584,11 +2592,11 @@ expand_builtin_strrchr (tree arglist, rtx target, enum machine_mode mode)
in TARGET, if convenient (and in mode MODE if that's convenient). */
static rtx
-expand_builtin_strpbrk (tree arglist, rtx target, enum machine_mode mode)
+expand_builtin_strpbrk (tree arglist, tree type, rtx target, enum machine_mode mode)
{
if (validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
{
- tree result = fold_builtin_strpbrk (arglist);
+ tree result = fold_builtin_strpbrk (arglist, type);
if (result)
return expand_expr (result, target, mode, EXPAND_NORMAL);
}
@@ -4221,8 +4229,7 @@ expand_builtin_frame_address (tree fndecl, tree arglist)
{
rtx tem
= expand_builtin_return_addr (DECL_FUNCTION_CODE (fndecl),
- tree_low_cst (TREE_VALUE (arglist), 1),
- hard_frame_pointer_rtx);
+ tree_low_cst (TREE_VALUE (arglist), 1));
/* Some ports cannot access arbitrary stack frames. */
if (tem == NULL)
@@ -4855,7 +4862,7 @@ expand_builtin_profile_func (bool exitp)
emit_library_call (which, LCT_NORMAL, VOIDmode, 2, this, Pmode,
expand_builtin_return_addr (BUILT_IN_RETURN_ADDRESS,
- 0, hard_frame_pointer_rtx),
+ 0),
Pmode);
return const0_rtx;
@@ -5482,27 +5489,27 @@ expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode,
break;
case BUILT_IN_STRSTR:
- target = expand_builtin_strstr (arglist, target, mode);
+ target = expand_builtin_strstr (arglist, TREE_TYPE (exp), target, mode);
if (target)
return target;
break;
case BUILT_IN_STRPBRK:
- target = expand_builtin_strpbrk (arglist, target, mode);
+ target = expand_builtin_strpbrk (arglist, TREE_TYPE (exp), target, mode);
if (target)
return target;
break;
case BUILT_IN_INDEX:
case BUILT_IN_STRCHR:
- target = expand_builtin_strchr (arglist, target, mode);
+ target = expand_builtin_strchr (arglist, TREE_TYPE (exp), target, mode);
if (target)
return target;
break;
case BUILT_IN_RINDEX:
case BUILT_IN_STRRCHR:
- target = expand_builtin_strrchr (arglist, target, mode);
+ target = expand_builtin_strrchr (arglist, TREE_TYPE (exp), target, mode);
if (target)
return target;
break;
@@ -5726,6 +5733,12 @@ expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode,
return target;
break;
+ /* APPLE LOCAL begin lno */
+ case BUILT_IN_MAYBE_INFINITE_LOOP:
+ /* This is just a fake statement that expands to nothing. */
+ return const0_rtx;
+ /* APPLE LOCAL end lno */
+
default: /* just do library call, if unknown builtin */
break;
}
@@ -7619,11 +7632,18 @@ fold_builtin_isdigit (tree arglist)
else
{
/* Transform isdigit(c) -> (unsigned)(c) - '0' <= 9. */
- /* According to the C standard, isdigit is unaffected by locale. */
- tree arg = TREE_VALUE (arglist);
- arg = fold_convert (unsigned_type_node, arg);
+ /* According to the C standard, isdigit is unaffected by locale.
+ However, it definitely is affected by the target character set. */
+ tree arg;
+ unsigned HOST_WIDE_INT target_digit0
+ = lang_hooks.to_target_charset ('0');
+
+ if (target_digit0 == 0)
+ return NULL_TREE;
+
+ arg = fold_convert (unsigned_type_node, TREE_VALUE (arglist));
arg = build2 (MINUS_EXPR, unsigned_type_node, arg,
- build_int_cst (unsigned_type_node, TARGET_DIGIT0));
+ build_int_cst (unsigned_type_node, target_digit0));
arg = build2 (LE_EXPR, integer_type_node, arg,
build_int_cst (unsigned_type_node, 9));
arg = fold (arg);
@@ -7832,6 +7852,44 @@ fold_builtin_unordered_cmp (tree exp,
fold (build2 (code, type, arg0, arg1))));
}
+/* Fold a call to one of the external complex multiply libcalls. */
+
+static tree
+fold_builtin_complex_mul (tree type, tree arglist)
+{
+ tree ar, ai, br, bi;
+
+ if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, REAL_TYPE,
+ REAL_TYPE, VOID_TYPE))
+ return NULL;
+
+ ar = TREE_VALUE (arglist); arglist = TREE_CHAIN (arglist);
+ ai = TREE_VALUE (arglist); arglist = TREE_CHAIN (arglist);
+ br = TREE_VALUE (arglist); arglist = TREE_CHAIN (arglist);
+ bi = TREE_VALUE (arglist);
+
+ return fold_complex_mult_parts (type, ar, ai, br, bi);
+}
+
+/* Fold a call to one of the external complex division libcalls. */
+
+static tree
+fold_builtin_complex_div (tree type, tree arglist)
+{
+ tree ar, ai, br, bi;
+
+ if (!validate_arglist (arglist, REAL_TYPE, REAL_TYPE, REAL_TYPE,
+ REAL_TYPE, VOID_TYPE))
+ return NULL;
+
+ ar = TREE_VALUE (arglist); arglist = TREE_CHAIN (arglist);
+ ai = TREE_VALUE (arglist); arglist = TREE_CHAIN (arglist);
+ br = TREE_VALUE (arglist); arglist = TREE_CHAIN (arglist);
+ bi = TREE_VALUE (arglist);
+
+ return fold_complex_div_parts (type, ar, ai, br, bi, RDIV_EXPR);
+}
+
/* Used by constant folding to simplify calls to builtin functions. EXP is
the CALL_EXPR of a call to a builtin function. IGNORE is true if the
result of the function call is ignored. This function returns NULL_TREE
@@ -7843,11 +7901,13 @@ fold_builtin_1 (tree exp, bool ignore)
tree fndecl = get_callee_fndecl (exp);
tree arglist = TREE_OPERAND (exp, 1);
tree type = TREE_TYPE (TREE_TYPE (fndecl));
+ enum built_in_function fcode;
if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD)
return targetm.fold_builtin (exp, ignore);
- switch (DECL_FUNCTION_CODE (fndecl))
+ fcode = DECL_FUNCTION_CODE (fndecl);
+ switch (fcode)
{
case BUILT_IN_FPUTS:
return fold_builtin_fputs (arglist, ignore, false, NULL_TREE);
@@ -7856,7 +7916,7 @@ fold_builtin_1 (tree exp, bool ignore)
return fold_builtin_fputs (arglist, ignore, true, NULL_TREE);
case BUILT_IN_STRSTR:
- return fold_builtin_strstr (arglist);
+ return fold_builtin_strstr (arglist, type);
case BUILT_IN_STRCAT:
return fold_builtin_strcat (arglist);
@@ -7872,11 +7932,11 @@ fold_builtin_1 (tree exp, bool ignore)
case BUILT_IN_STRCHR:
case BUILT_IN_INDEX:
- return fold_builtin_strchr (arglist);
+ return fold_builtin_strchr (arglist, type);
case BUILT_IN_STRRCHR:
case BUILT_IN_RINDEX:
- return fold_builtin_strrchr (arglist);
+ return fold_builtin_strrchr (arglist, type);
case BUILT_IN_STRCPY:
return fold_builtin_strcpy (exp, NULL_TREE);
@@ -7891,7 +7951,7 @@ fold_builtin_1 (tree exp, bool ignore)
return fold_builtin_strncmp (arglist);
case BUILT_IN_STRPBRK:
- return fold_builtin_strpbrk (arglist);
+ return fold_builtin_strpbrk (arglist, type);
case BUILT_IN_BCMP:
case BUILT_IN_MEMCMP:
@@ -8177,7 +8237,17 @@ fold_builtin_1 (tree exp, bool ignore)
break;
default:
- break;
+ if (fcode >= BUILT_IN_COMPLEX_MUL_MIN
+ && fcode <= BUILT_IN_COMPLEX_MUL_MAX)
+ return fold_builtin_complex_mul (type, arglist);
+ if (fcode >= BUILT_IN_COMPLEX_DIV_MIN
+ && fcode <= BUILT_IN_COMPLEX_DIV_MAX)
+ return fold_builtin_complex_div (type, arglist);
+ /* APPLE LOCAL begin constant cfstrings */
+ /* Don't just do the library call if it's unknown, try using
+ our target version, then call the library call if that doesn't work. */
+ return (*targetm.expand_tree_builtin) (fndecl, arglist,NULL_TREE);
+ /* APPLE LOCAL end constant cfstrings */
}
return 0;
@@ -8326,7 +8396,7 @@ readonly_data_expr (tree exp)
form of the builtin function call. */
static tree
-fold_builtin_strstr (tree arglist)
+fold_builtin_strstr (tree arglist, tree type)
{
if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
return 0;
@@ -8344,13 +8414,15 @@ fold_builtin_strstr (tree arglist)
if (p1 != NULL)
{
const char *r = strstr (p1, p2);
+ tree tem;
if (r == NULL)
return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
- return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ tem = fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ return fold_convert (type, tem);
}
if (p2[0] == '\0')
@@ -8390,7 +8462,7 @@ fold_builtin_strstr (tree arglist)
form of the builtin function call. */
static tree
-fold_builtin_strchr (tree arglist)
+fold_builtin_strchr (tree arglist, tree type)
{
if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
return 0;
@@ -8407,6 +8479,7 @@ fold_builtin_strchr (tree arglist)
{
char c;
const char *r;
+ tree tem;
if (target_char_cast (s2, &c))
return 0;
@@ -8417,8 +8490,9 @@ fold_builtin_strchr (tree arglist)
return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
- return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ tem = fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ return fold_convert (type, tem);
}
return 0;
}
@@ -8442,7 +8516,7 @@ fold_builtin_strchr (tree arglist)
form of the builtin function call. */
static tree
-fold_builtin_strrchr (tree arglist)
+fold_builtin_strrchr (tree arglist, tree type)
{
if (!validate_arglist (arglist, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
return 0;
@@ -8460,6 +8534,7 @@ fold_builtin_strrchr (tree arglist)
{
char c;
const char *r;
+ tree tem;
if (target_char_cast (s2, &c))
return 0;
@@ -8470,8 +8545,9 @@ fold_builtin_strrchr (tree arglist)
return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
- return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ tem = fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ return fold_convert (type, tem);
}
if (! integer_zerop (s2))
@@ -8504,7 +8580,7 @@ fold_builtin_strrchr (tree arglist)
form of the builtin function call. */
static tree
-fold_builtin_strpbrk (tree arglist)
+fold_builtin_strpbrk (tree arglist, tree type)
{
if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
return 0;
@@ -8522,13 +8598,15 @@ fold_builtin_strpbrk (tree arglist)
if (p1 != NULL)
{
const char *r = strpbrk (p1, p2);
+ tree tem;
if (r == NULL)
return build_int_cst (TREE_TYPE (s1), 0);
/* Return an offset into the constant string argument. */
- return fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
- s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ tem = fold (build2 (PLUS_EXPR, TREE_TYPE (s1),
+ s1, build_int_cst (TREE_TYPE (s1), r - p1)));
+ return fold_convert (type, tem);
}
if (p2[0] == '\0')
diff --git a/gcc/builtins.def b/gcc/builtins.def
index d422783f91e..36cac6b1e60 100644
--- a/gcc/builtins.def
+++ b/gcc/builtins.def
@@ -583,6 +583,8 @@ DEF_GCC_BUILTIN (BUILT_IN_FRAME_ADDRESS, "frame_address", BT_FN_PTR_UINT,
DEF_GCC_BUILTIN (BUILT_IN_FROB_RETURN_ADDR, "frob_return_addr", BT_FN_PTR_PTR, ATTR_NULL)
DEF_EXT_LIB_BUILTIN (BUILT_IN_GETTEXT, "gettext", BT_FN_STRING_CONST_STRING, ATTR_FORMAT_ARG_1)
DEF_C99_BUILTIN (BUILT_IN_IMAXABS, "imaxabs", BT_FN_INTMAX_INTMAX, ATTR_CONST_NOTHROW_LIST)
+/* APPLE LOCAL lno */
+DEF_GCC_BUILTIN (BUILT_IN_MAYBE_INFINITE_LOOP, "maybe_infinite_loop", BT_FN_VOID, ATTR_NULL)
DEF_GCC_BUILTIN (BUILT_IN_INIT_DWARF_REG_SIZES, "init_dwarf_reg_size_table", BT_FN_VOID_PTR, ATTR_NULL)
DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITE, "finite", BT_FN_INT_DOUBLE, ATTR_CONST_NOTHROW_LIST)
DEF_EXT_LIB_BUILTIN (BUILT_IN_FINITEF, "finitef", BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LIST)
diff --git a/gcc/c-common.c b/gcc/c-common.c
index b414915bc87..147a06f9480 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -47,6 +47,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tree-mudflap.h"
#include "opts.h"
#include "real.h"
+/* APPLE LOCAL 64bit shorten warning 3865314 */
+#include "options.h"
cpp_reader *parse_in; /* Declared in c-pragma.h. */
@@ -158,6 +160,13 @@ cpp_reader *parse_in; /* Declared in c-pragma.h. */
tree char_array_type_node;
+ ** APPLE LOCAL begin pascal strings **
+ Type `unsigned char[SOMENUMBER]'.
+ Used for pascal-type strings ("\pstring").
+
+ tree pascal_string_type_node;
+ ** APPLE LOCAL end pascal strings **
+
Type `int[SOMENUMBER]' or something like it.
Used when an array of int needed and the size is irrelevant.
@@ -254,6 +263,13 @@ int flag_short_double;
int flag_short_wchar;
+/* APPLE LOCAL begin lvalue cast */
+/* Nonzero means allow assignment, increment or decrement of casts of
+ lvalues (e.g., '((foo *)p)++') if both the lvalue and its cast are
+ of POD type with identical size and alignment. */
+int flag_lvalue_cast_assign = 1;
+/* APPLE LOCAL end lvalue cast */
+
/* Nonzero means allow Microsoft extensions without warnings or errors. */
int flag_ms_extensions;
@@ -261,6 +277,11 @@ int flag_ms_extensions;
int flag_no_asm;
+/* APPLE LOCAL begin CW asm blocks */
+/* Nonzero means accept CW-style asm blocks. */
+int flag_cw_asm_blocks;
+/* APPLE LOCAL end CW asm blocks */
+
/* Nonzero means give string constants the type `const char *', as mandated
by the standard. */
@@ -330,6 +351,12 @@ int flag_hosted = 1;
int warn_main;
+/* APPLE LOCAL begin disable_typechecking_for_spec_flag */
+/* This makes type conflicts a warning, instead of an error,
+ to work around some problems with SPEC. */
+
+int disable_typechecking_for_spec_flag;
+/* APPLE LOCAL end disable_typechecking_for_spec_flag */
/* ObjC language option variables. */
@@ -347,6 +374,13 @@ int flag_next_runtime = 1;
int flag_next_runtime = 0;
#endif
+/* APPLE LOCAL begin mainline */
+/* Generate special '- .cxx_construct' and '- .cxx_destruct' methods
+ to initialize any non-POD ivars in ObjC++ classes. */
+
+int flag_objc_call_cxx_cdtors = 0;
+/* APPLE LOCAL end mainline */
+
/* Tells the compiler that this is a special run. Do not perform any
compiling, instead we are to test some platform dependent features
and output a C header file with appropriate definitions. */
@@ -459,6 +493,23 @@ int flag_permissive;
int flag_enforce_eh_specs = 1;
+/* APPLE LOCAL begin private extern Radar 2872481 --ilr */
+/* Nonzero if -fpreproceessed specified. This is needed by
+ init_reswords() so that it can make __private_extern__ have the
+ same rid code as extern when -fpreprocessed is specified. Normally
+ there is a -D on the command line for this. But if -fpreprocessed
+ was specified then macros aren't expanded. So we fake the token
+ value out using the rid code. */
+int flag_preprocessed = 0;
+/* APPLE LOCAL end private extern Radar 2872481 --ilr */
+
+/* APPLE LOCAL begin structor thunks */
+/* Nonzero if we prefer to clone con/de/structors. Alternative is to
+ gen multiple tiny thunk-esque things that call/jump to a unified
+ con/de/structor. This is a classic size/speed tradeoff. */
+int flag_clone_structors = 0;
+/* APPLE LOCAL end structor thunks */
+
/* Nonzero means to generate thread-safe code for initializing local
statics. */
@@ -511,6 +562,45 @@ static int constant_fits_type_p (tree, tree);
static tree check_case_value (tree);
static bool check_case_bounds (tree, tree, tree *, tree *);
+/* APPLE LOCAL begin CW asm blocks */
+/* State variable telling the lexer what to do. */
+enum cw_asm_states cw_asm_state = cw_asm_none;
+
+/* True in an asm block while parsing a decl. */
+int cw_asm_in_decl;
+
+/* This is true exactly within the interior of an asm block. It is
+ not quite the same as any of the states of cw_asm_state. */
+int inside_cw_asm_block;
+
+/* An additional state variable, true when the next token returned
+ should be a BOL, false otherwise. */
+int cw_asm_at_bol;
+
+/* True when the lexer/parser is handling operands. */
+int cw_asm_in_operands;
+
+/* Count used for synthetic labels derived from asm block labels. */
+int cw_asm_labelno;
+
+/* Working buffer for building the assembly string. */
+static char *cw_asm_buffer;
+
+/* An array tracking which variables to list as inputs and outputs. */
+static GTY(()) varray_type cw_asm_operands;
+static GTY(()) varray_type cw_asm_operands_arg;
+
+/* Two arrays used as a map from user-supplied labels, local to an asm
+ block, to unique global labels that the assembler will like. */
+static GTY(()) varray_type cw_asm_labels;
+static GTY(()) varray_type cw_asm_labels_uniq;
+
+static int cw_asm_expr_val (tree arg);
+static void print_cw_asm_operand (char *, tree, unsigned, tree *, bool, bool);
+static int cw_asm_get_register_var (tree, unsigned, bool);
+static tree cw_asm_identifier (tree expr);
+/* APPLE LOCAL end CW asm blocks */
+
static tree handle_packed_attribute (tree *, tree, tree, int, bool *);
static tree handle_nocommon_attribute (tree *, tree, tree, int, bool *);
static tree handle_common_attribute (tree *, tree, tree, int, bool *);
@@ -542,6 +632,9 @@ static tree handle_no_limit_stack_attribute (tree *, tree, tree, int,
static tree handle_pure_attribute (tree *, tree, tree, int, bool *);
static tree handle_deprecated_attribute (tree *, tree, tree, int,
bool *);
+/* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) --ilr */
+static tree handle_unavailable_attribute (tree *, tree, tree, int, bool *);
+/* APPLE LOCAL end "unavailable" attribute --ilr */
static tree handle_vector_size_attribute (tree *, tree, tree, int,
bool *);
static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *);
@@ -613,6 +706,10 @@ const struct attribute_spec c_common_attribute_table[] =
handle_pure_attribute },
{ "deprecated", 0, 0, false, false, false,
handle_deprecated_attribute },
+ /* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) --ilr */
+ { "unavailable", 0, 0, false, false, false,
+ handle_unavailable_attribute },
+ /* APPLE LOCAL end "unavailable" attribute --ilr */
{ "vector_size", 1, 1, false, true, false,
handle_vector_size_attribute },
{ "visibility", 1, 1, false, false, false,
@@ -746,7 +843,8 @@ fname_as_string (int pretty_p)
strname.text = (unsigned char *) namep;
strname.len = len - 1;
- if (cpp_interpret_string (parse_in, &strname, 1, &cstr, false))
+ /* APPLE LOCAL pascal strings add extra flag */
+ if (cpp_interpret_string (parse_in, &strname, 1, &cstr, false, false))
{
XDELETEVEC (namep);
return (char *) cstr.text;
@@ -835,6 +933,8 @@ fix_string_type (tree value)
{
const int wchar_bytes = TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT;
const int wide_flag = TREE_TYPE (value) == wchar_array_type_node;
+ /* APPLE LOCAL pascal strings */
+ const int pascal_flag = TREE_TYPE (value) == pascal_string_type_node;
const int nchars_max = flag_isoc99 ? 4095 : 509;
int length = TREE_STRING_LENGTH (value);
int nchars;
@@ -847,7 +947,8 @@ fix_string_type (tree value)
pedwarn ("string length %qd is greater than the length %qd ISO C%d compilers are required to support",
nchars - 1, nchars_max, flag_isoc99 ? 99 : 89);
- e_type = wide_flag ? wchar_type_node : char_type_node;
+ /* APPLE LOCAL pascal strings */
+ e_type = wide_flag ? wchar_type_node : (pascal_flag ? unsigned_char_type_node : char_type_node);
/* Create the array type for the string constant. flag_const_strings
says make the string constant an array of const char so that
copying it to a non-const pointer will get a warning. For C++,
@@ -861,13 +962,16 @@ fix_string_type (tree value)
unconditionally. */
i_type = build_index_type (build_int_cst (NULL_TREE, nchars - 1));
a_type = build_array_type (e_type, i_type);
- if (flag_const_strings)
+ /* APPLE LOCAL fwritable strings */
+ if (flag_const_strings && ! flag_writable_strings)
a_type = c_build_qualified_type (a_type, TYPE_QUAL_CONST);
TREE_TYPE (value) = a_type;
- TREE_CONSTANT (value) = 1;
- TREE_INVARIANT (value) = 1;
- TREE_READONLY (value) = 1;
+ /* APPLE LOCAL begin fwritable strings */
+ TREE_CONSTANT (value) = !flag_writable_strings;
+ TREE_INVARIANT (value) = !flag_writable_strings;
+ TREE_READONLY (value) = !flag_writable_strings;
+ /* APPLE LOCAL end fwritable strings */
TREE_STATIC (value) = 1;
return value;
}
@@ -981,6 +1085,14 @@ tree
convert_and_check (tree type, tree expr)
{
tree t = convert (type, expr);
+ /* APPLE LOCAL begin 64bit shorten warning 3865314 */
+ if (warn_shorten_64_to_32
+ && TYPE_PRECISION (TREE_TYPE (expr)) == 64
+ && TYPE_PRECISION (type) == 32)
+ {
+ warning ("implicit conversion shortens 64-bit value into a 32-bit value");
+ }
+ /* APPLE LOCAL end 64bit shorten warning 3865314 */
if (TREE_CODE (t) == INTEGER_CST)
{
if (TREE_OVERFLOW (t))
@@ -1606,10 +1718,14 @@ c_common_type_for_mode (enum machine_mode mode, int unsignedp)
return void_type_node;
if (mode == TYPE_MODE (build_pointer_type (char_type_node)))
- return unsignedp ? make_unsigned_type (mode) : make_signed_type (mode);
+ return (unsignedp
+ ? make_unsigned_type (GET_MODE_PRECISION (mode))
+ : make_signed_type (GET_MODE_PRECISION (mode)));
if (mode == TYPE_MODE (build_pointer_type (integer_type_node)))
- return unsignedp ? make_unsigned_type (mode) : make_signed_type (mode);
+ return (unsignedp
+ ? make_unsigned_type (GET_MODE_PRECISION (mode))
+ : make_signed_type (GET_MODE_PRECISION (mode)));
if (COMPLEX_MODE_P (mode))
{
@@ -2315,33 +2431,33 @@ pointer_int_sum (enum tree_code resultcode, tree ptrop, tree intop)
tree
c_common_truthvalue_conversion (tree expr)
{
- if (TREE_CODE (expr) == ERROR_MARK)
- return expr;
-
- if (TREE_CODE (expr) == FUNCTION_DECL)
- expr = build_unary_op (ADDR_EXPR, expr, 0);
-
switch (TREE_CODE (expr))
{
case EQ_EXPR: case NE_EXPR: case UNEQ_EXPR: case LTGT_EXPR:
case LE_EXPR: case GE_EXPR: case LT_EXPR: case GT_EXPR:
case UNLE_EXPR: case UNGE_EXPR: case UNLT_EXPR: case UNGT_EXPR:
case ORDERED_EXPR: case UNORDERED_EXPR:
+ if (TREE_TYPE (expr) == truthvalue_type_node)
+ return expr;
+ return build2 (TREE_CODE (expr), truthvalue_type_node,
+ TREE_OPERAND (expr, 0), TREE_OPERAND (expr, 1));
+
case TRUTH_ANDIF_EXPR:
case TRUTH_ORIF_EXPR:
case TRUTH_AND_EXPR:
case TRUTH_OR_EXPR:
case TRUTH_XOR_EXPR:
- if (TREE_TYPE (expr) != truthvalue_type_node)
- return build2 (TREE_CODE (expr), truthvalue_type_node,
- TREE_OPERAND (expr, 0), TREE_OPERAND (expr, 1));
- return expr;
+ if (TREE_TYPE (expr) == truthvalue_type_node)
+ return expr;
+ return build2 (TREE_CODE (expr), truthvalue_type_node,
+ lang_hooks.truthvalue_conversion (TREE_OPERAND (expr, 0)),
+ lang_hooks.truthvalue_conversion (TREE_OPERAND (expr, 1)));
case TRUTH_NOT_EXPR:
- if (TREE_TYPE (expr) != truthvalue_type_node)
- return build1 (TREE_CODE (expr), truthvalue_type_node,
- TREE_OPERAND (expr, 0));
- return expr;
+ if (TREE_TYPE (expr) == truthvalue_type_node)
+ return expr;
+ return build1 (TREE_CODE (expr), truthvalue_type_node,
+ lang_hooks.truthvalue_conversion (TREE_OPERAND (expr, 0)));
case ERROR_MARK:
return expr;
@@ -2357,6 +2473,10 @@ c_common_truthvalue_conversion (tree expr)
? truthvalue_true_node
: truthvalue_false_node;
+ case FUNCTION_DECL:
+ expr = build_unary_op (ADDR_EXPR, expr, 0);
+ /* Fall through. */
+
case ADDR_EXPR:
{
if (TREE_CODE (TREE_OPERAND (expr, 0)) == FUNCTION_DECL
@@ -3064,6 +3184,10 @@ c_common_nodes_and_builtins (void)
array type. */
char_array_type_node
= build_array_type (char_type_node, array_domain_type);
+ /* APPLE LOCAL begin pascal strings */
+ pascal_string_type_node
+ = build_array_type (unsigned_char_type_node, array_domain_type);
+ /* APPLE LOCAL end pascal strings */
/* Likewise for arrays of ints. */
int_array_type_node
@@ -3299,7 +3423,9 @@ typedef struct disabled_builtin
} disabled_builtin;
static disabled_builtin *disabled_builtins = NULL;
-static bool builtin_function_disabled_p (const char *);
+/* APPLE LOCAL begin IMA built-in decl merging fix (radar 3645899) */
+bool builtin_function_disabled_p (const char *);
+/* APPLE LOCAL end */
/* Disable a built-in function specified by -fno-builtin-NAME. If NAME
begins with "__builtin_", give an error. */
@@ -3321,8 +3447,10 @@ disable_builtin_function (const char *name)
/* Return true if the built-in function NAME has been disabled, false
otherwise. */
-
-static bool
+/* APPLE LOCAL begin IMA built-in decl merging fix (radar 3645899) */
+/* Remove static */
+bool
+/* APPLE LOCAL end */
builtin_function_disabled_p (const char *name)
{
disabled_builtin *p;
@@ -4887,6 +5015,70 @@ handle_deprecated_attribute (tree *node, tree name,
return NULL_TREE;
}
+/* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) --ilr */
+/* Handle a "unavailable" attribute; arguments as in
+ struct attribute_spec.handler. */
+
+static tree
+handle_unavailable_attribute (tree *node, tree name,
+ tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED,
+ bool *no_add_attrs)
+{
+ tree type = NULL_TREE;
+ int warn = 0;
+ const char *what = NULL;
+
+ if (DECL_P (*node))
+ {
+ tree decl = *node;
+ type = TREE_TYPE (decl);
+
+ if (TREE_CODE (decl) == TYPE_DECL
+ || TREE_CODE (decl) == PARM_DECL
+ || TREE_CODE (decl) == VAR_DECL
+ || TREE_CODE (decl) == FUNCTION_DECL
+ || TREE_CODE (decl) == FIELD_DECL)
+ {
+ TREE_DEPRECATED (decl) = 1;
+ TREE_UNAVAILABLE (decl) = 1;
+ }
+ else
+ warn = 1;
+ }
+ else if (TYPE_P (*node))
+ {
+ if (!(flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
+ *node = build_variant_type_copy (*node);
+ TREE_DEPRECATED (*node) = 1;
+ TREE_UNAVAILABLE (*node) = 1;
+ type = *node;
+ }
+ else
+ warn = 1;
+
+ if (warn)
+ {
+ *no_add_attrs = true;
+ if (type && TYPE_NAME (type))
+ {
+ if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
+ what = IDENTIFIER_POINTER (TYPE_NAME (*node));
+ else if (TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
+ && DECL_NAME (TYPE_NAME (type)))
+ what = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
+ }
+ if (what)
+ warning ("`%s' attribute ignored for `%s'",
+ IDENTIFIER_POINTER (name), what);
+ else
+ warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
+ }
+
+ return NULL_TREE;
+}
+/* APPLE LOCAL end "unavailable" attribute --ilr */
+
/* Handle a "vector_size" attribute; arguments as in
struct attribute_spec.handler. */
@@ -5620,6 +5812,27 @@ c_warn_unused_result (tree *top_p)
}
}
+/* Convert a character from the host to the target execution character
+ set. cpplib handles this, mostly. */
+
+HOST_WIDE_INT
+c_common_to_target_charset (HOST_WIDE_INT c)
+{
+ /* Character constants in GCC proper are sign-extended under -fsigned-char,
+ zero-extended under -fno-signed-char. cpplib insists that characters
+ and character constants are always unsigned. Hence we must convert
+ back and forth. */
+ cppchar_t uc = ((cppchar_t)c) & ((((cppchar_t)1) << CHAR_BIT)-1);
+
+ uc = cpp_host_to_exec_charset (parse_in, uc);
+
+ if (flag_signed_char)
+ return ((HOST_WIDE_INT)uc) << (HOST_BITS_PER_WIDE_INT - CHAR_TYPE_SIZE)
+ >> (HOST_BITS_PER_WIDE_INT - CHAR_TYPE_SIZE);
+ else
+ return uc;
+}
+
/* Build the result of __builtin_offsetof. EXPR is a nested sequence of
component references, with an INDIRECT_REF at the bottom; much like
the traditional rendering of offsetof as a macro. Returns the folded
@@ -5685,14 +5898,79 @@ fold_offsetof (tree expr)
return convert (size_type_node, fold_offsetof_1 (expr));
}
-/* Return nonzero if REF is an lvalue valid for this language;
- otherwise, print an error message and return zero. USE says
- how the lvalue is being used and so selects the error message. */
+/* APPLE LOCAL begin non lvalue assign */
+/* Return nonzero if the expression pointed to by REF is an lvalue
+ valid for this language; otherwise, print an error message and return
+ zero. USE says how the lvalue is being used and so selects the error
+ message. If -fnon-lvalue-assign has been specified, certain
+ non-lvalue expression shall be rewritten as lvalues and stored back
+ at the location pointed to by REF. */
int
-lvalue_or_else (tree ref, enum lvalue_use use)
+lvalue_or_else (tree *ref, enum lvalue_use use)
{
- int win = lvalue_p (ref);
+ tree r = *ref;
+ int win = lvalue_p (r);
+
+ /* If -fnon-lvalue-assign is specified, we shall allow assignments
+ to certain constructs that are not (stricly speaking) lvalues. */
+ if (!win && flag_non_lvalue_assign)
+ {
+ /* (1) Assignment to casts of lvalues, as long as both the lvalue and
+ the cast are POD types with identical size and alignment. */
+ if ((TREE_CODE (r) == NOP_EXPR || TREE_CODE (r) == CONVERT_EXPR
+ || TREE_CODE (r) == NON_LVALUE_EXPR)
+ && (use == lv_assign || use == lv_increment || use == lv_decrement
+ || use == lv_addressof)
+ /* APPLE LOCAL non lvalue assign */
+ && lvalue_or_else (&TREE_OPERAND (r, 0), use))
+ {
+ tree cast_to = TREE_TYPE (r);
+ tree cast_from = TREE_TYPE (TREE_OPERAND (r, 0));
+
+ if (simple_cst_equal (TYPE_SIZE (cast_to), TYPE_SIZE (cast_from))
+ && TYPE_ALIGN (cast_to) == TYPE_ALIGN (cast_from))
+ {
+ /* Rewrite '(cast_to)ref' as '*(cast_to *)&ref' so
+ that the back-end need not think too hard... */
+ *ref
+ = build_indirect_ref
+ (convert (build_pointer_type (cast_to),
+ build_unary_op
+ (ADDR_EXPR, TREE_OPERAND (r, 0), 0)), 0);
+
+ goto allow_as_lvalue;
+ }
+ }
+ /* (2) Assignment to conditional expressions, as long as both
+ alternatives are already lvalues. */
+ else if (TREE_CODE (r) == COND_EXPR
+ /* APPLE LOCAL non lvalue assign */
+ && lvalue_or_else (&TREE_OPERAND (r, 1), use)
+ /* APPLE LOCAL non lvalue assign */
+ && lvalue_or_else (&TREE_OPERAND (r, 2), use))
+ {
+ /* Rewrite 'cond ? lv1 : lv2' as '*(cond ? &lv1 : &lv2)' to
+ placate the back-end. */
+ *ref
+ = build_indirect_ref
+ (build_conditional_expr
+ (TREE_OPERAND (r, 0),
+ build_unary_op (ADDR_EXPR, TREE_OPERAND (r, 1), 0),
+ build_unary_op (ADDR_EXPR, TREE_OPERAND (r, 2), 0)),
+ 0);
+
+ allow_as_lvalue:
+ win = 1;
+ if (warn_non_lvalue_assign)
+ warning ("%s not really an lvalue; "
+ "this will be a hard error in the future",
+ (use == lv_addressof
+ ? "argument to '&'"
+ : "target of assignment"));
+ }
+ }
+/* APPLE LOCAL end non-lvalue assign */
if (!win)
{
@@ -5720,5 +5998,933 @@ lvalue_or_else (tree ref, enum lvalue_use use)
return win;
}
+
+/* *PTYPE is an incomplete array. Complete it with a domain based on
+ INITIAL_VALUE. If INITIAL_VALUE is not present, use 1 if DO_DEFAULT
+ is true. Return 0 if successful, 1 if INITIAL_VALUE can't be deciphered,
+ 2 if INITIAL_VALUE was NULL, and 3 if INITIAL_VALUE was empty. */
+
+int
+complete_array_type (tree *ptype, tree initial_value, bool do_default)
+{
+ tree maxindex, type, main_type, elt, unqual_elt;
+ int failure = 0, quals;
+
+ maxindex = size_zero_node;
+ if (initial_value)
+ {
+ if (TREE_CODE (initial_value) == STRING_CST)
+ {
+ int eltsize
+ = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
+ maxindex = size_int (TREE_STRING_LENGTH (initial_value)/eltsize - 1);
+ }
+ else if (TREE_CODE (initial_value) == CONSTRUCTOR)
+ {
+ tree elts = CONSTRUCTOR_ELTS (initial_value);
+
+ if (elts == NULL)
+ {
+ if (pedantic)
+ failure = 3;
+ maxindex = integer_minus_one_node;
+ }
+ else
+ {
+ tree curindex;
+
+ if (TREE_PURPOSE (elts))
+ maxindex = fold_convert (sizetype, TREE_PURPOSE (elts));
+ curindex = maxindex;
+
+ for (elts = TREE_CHAIN (elts); elts; elts = TREE_CHAIN (elts))
+ {
+ if (TREE_PURPOSE (elts))
+ curindex = fold_convert (sizetype, TREE_PURPOSE (elts));
+ else
+ curindex = size_binop (PLUS_EXPR, curindex, size_one_node);
+
+ if (tree_int_cst_lt (maxindex, curindex))
+ maxindex = curindex;
+ }
+ }
+ }
+ else
+ {
+ /* Make an error message unless that happened already. */
+ if (initial_value != error_mark_node)
+ failure = 1;
+ }
+ }
+ else
+ {
+ failure = 2;
+ if (!do_default)
+ return failure;
+ }
+
+ type = *ptype;
+ elt = TREE_TYPE (type);
+ quals = TYPE_QUALS (strip_array_types (elt));
+ if (quals == 0)
+ unqual_elt = elt;
+ else
+ unqual_elt = c_build_qualified_type (elt, TYPE_UNQUALIFIED);
+
+ /* Using build_distinct_type_copy and modifying things afterward instead
+ of using build_array_type to create a new type preserves all of the
+ TYPE_LANG_FLAG_? bits that the front end may have set. */
+ main_type = build_distinct_type_copy (TYPE_MAIN_VARIANT (type));
+ TREE_TYPE (main_type) = unqual_elt;
+ TYPE_DOMAIN (main_type) = build_index_type (maxindex);
+ layout_type (main_type);
+
+ if (quals == 0)
+ type = main_type;
+ else
+ type = c_build_qualified_type (main_type, quals);
+
+ *ptype = type;
+ return failure;
+}
+
+/* APPLE LOCAL begin AltiVec */
+/* Convert the incoming expression EXPR into a vector constructor of
+ type VECTOR_TYPE, casting the individual vector elements as appropriate. */
+
+tree
+vector_constructor_from_expr (tree expr, tree vector_type)
+{
+ tree list = NULL_TREE, elttype = TREE_TYPE (vector_type);
+ int index;
+ bool final;
+ int all_constant = TREE_CONSTANT (expr);
+
+ /* If we already have a vector expression, then the user probably
+ wants to convert it to another. */
+ if (TREE_CODE (TREE_TYPE (expr)) == VECTOR_TYPE)
+ return convert (vector_type, expr);
+
+ /* Walk through the compound expression, gathering initializers. */
+ final = false;
+ for (index = 0; !final; ++index)
+ {
+ tree elem;
+
+ if (TREE_CODE (expr) == COMPOUND_EXPR)
+ {
+ elem = TREE_OPERAND (expr, 1);
+ expr = TREE_OPERAND (expr, 0);
+ }
+ else
+ {
+ final = true;
+ elem = expr;
+ }
+
+ while (TREE_CODE (elem) == COMPOUND_EXPR && TREE_CONSTANT (elem))
+ elem = TREE_OPERAND (elem, 1);
+ while (TREE_CODE (elem) == CONVERT_EXPR)
+ elem = TREE_OPERAND (elem, 0);
+
+ list = chainon (list,
+ build_tree_list (NULL_TREE,
+ convert (elttype, fold (elem))));
+ }
+
+ list = nreverse (list);
+
+ list = build_constructor (vector_type, list);
+ if (c_dialect_cxx ())
+ TREE_LANG_FLAG_4 (list) = 1; /* TREE_HAS_CONSTRUCTOR */
+
+ TREE_CONSTANT (list) = all_constant;
+
+ return list;
+}
+/* APPLE LOCAL end AltiVec */
+
+/* APPLE LOCAL begin CW asm blocks */
+/* Perform the default conversion of functions to pointers; simplified
+ version for use with functions mentioned in CW-style asm.
+ Return the result of converting EXP. For any other expression, just
+ return EXP. */
+
+static tree
+cw_asm_default_function_conversion (tree exp)
+{
+ tree type = TREE_TYPE (exp);
+ enum tree_code code = TREE_CODE (type);
+
+ /* Strip NON_LVALUE_EXPRs and no-op conversions, since we aren't using as
+ an lvalue.
+
+ Do not use STRIP_NOPS here! It will remove conversions from pointer
+ to integer and cause infinite recursion. */
+ while (TREE_CODE (exp) == NON_LVALUE_EXPR
+ || (TREE_CODE (exp) == NOP_EXPR
+ && TREE_TYPE (TREE_OPERAND (exp, 0)) == TREE_TYPE (exp)))
+ exp = TREE_OPERAND (exp, 0);
+
+ if (code == FUNCTION_TYPE)
+ return build_unary_op (ADDR_EXPR, exp, 0);
+
+ return exp;
+}
+
+/* The constraints table for CW style assembly. Things not listed are
+ usually considered as "+b", "+v" or "+f" depending upon context. */
+
+struct cw_op_constraint
+{
+ const char *opcode;
+ unsigned argnum;
+ const char *constraint;
+};
+
+/* Comparison function for bsearch to find an opcode/argument number
+ in the opcode constraint table. */
+
+static int
+cw_op_comp (const void *a, const void *b)
+{
+ const struct cw_op_constraint *x = a;
+ const struct cw_op_constraint *y = b;
+ int c = strcmp (x->opcode, y->opcode);
+ if (c)
+ return c;
+ if (x->argnum < y->argnum)
+ return -1;
+ if (x->argnum > y->argnum)
+ return 1;
+ return 0;
+}
+
+/* We lookup the OPCODE and return the constraint for the ARGNUM
+ argument. This is used only for otherwise ambiguous cases. */
+
+static const char*
+cw_constraint_for (const char *opcode, unsigned argnum)
+{
+ /* This table must be sorted. */
+ static struct cw_op_constraint db[] = {
+ { "la", 2, "m" },
+ { "lbz", 2, "m" },
+ { "lbzu", 2, "m" },
+ { "ld", 2, "m" },
+ { "ldu", 2, "m" },
+ { "lfd", 2, "m" },
+ { "lfdu", 2, "m" },
+ { "lfs", 2, "m" },
+ { "lfsu", 2, "m" },
+ { "lha", 2, "m" },
+ { "lhau", 2, "m" },
+ { "lhz", 2, "m" },
+ { "lhzu", 2, "m" },
+ { "lmw", 2, "m" },
+ { "lwa", 2, "m" },
+ { "lwz", 2, "m" },
+ { "lwzu", 2, "m" },
+ { "stb", 2, "m" },
+ { "stbu", 2, "m" },
+ { "std", 2, "m" },
+ { "stdu", 2, "m" },
+ { "stfd", 2, "m" },
+ { "stfdu", 2, "m" },
+ { "stfs", 2, "m" },
+ { "stfsu", 2, "m" },
+ { "sth", 2, "m" },
+ { "sthu", 2, "m" },
+ { "stmw", 2, "m" },
+ { "stw", 2, "m" },
+ { "stwu", 2, "m" },
+ };
+ struct cw_op_constraint key;
+ struct cw_op_constraint *r;
+
+ key.opcode = opcode;
+ key.argnum = argnum;
+ r = bsearch (&key, db, sizeof (db) / sizeof (db[0]), sizeof (db[0]), cw_op_comp);
+
+ /* Any explicitly listed contraint is always used. */
+ if (r)
+ return r->constraint;
+
+ return NULL;
+}
+
+/* Return true iff the opcode wants memory to be stable. We arrange
+ for a memory clobber in these instances. */
+static bool
+cw_memory_clobber (const char *opcode)
+{
+ return strncmp (opcode, "st", 2) == 0
+ || (strncmp (opcode, "l", 1) == 0 && (strcmp (opcode, "la") != 0
+ && strcmp (opcode, "li") != 0
+ && strcmp (opcode, "lis") != 0))
+ || strcmp (opcode, "sc") == 0
+ || strncmp (opcode, "td", 2) == 0
+ || strcmp (opcode, "trap") == 0
+ || strncmp (opcode, "tw", 2) == 0;
+}
+
+/* MUST_BE_REG is true, iff we know the operand must be a register. */
+
+static void
+cw_process_arg (const char *opcodename, tree var, unsigned argnum,
+ bool must_be_reg,
+ tree *outputsp, tree*inputsp, tree*uses)
+{
+ const char *s;
+ bool was_output = true;
+ tree str, one;
+
+ if (must_be_reg)
+ s = "+b";
+ else
+ s = cw_constraint_for (opcodename, argnum);
+
+ if (TREE_CODE (var) == FUNCTION_DECL)
+ {
+ str = build_string (1, "s");
+ was_output = false;
+ }
+ else
+ {
+ /* This is PowerPC-specific. */
+ if (s)
+ {
+ str = build_string (strlen (s), s);
+ was_output = ((s[0] == '=') | (s[0] == '+'));
+ }
+ else if (TREE_CODE (TREE_TYPE (var)) == REAL_TYPE)
+ str = build_string (2, "+f");
+ else
+ if (TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE)
+ str = build_string (2, "+v");
+ else
+ str = build_string (2, "+b");
+ }
+
+ one = build_tree_list (build_tree_list (NULL_TREE, str), var);
+ if (was_output)
+ *outputsp = chainon (*outputsp, one);
+ else
+ *inputsp = chainon (*inputsp, one);
+ if (TREE_CODE (var) == VAR_DECL && DECL_HARD_REGISTER (var))
+ {
+ /* Remove from 'uses' list any hard register which is going to be on
+ an input or output list. */
+ const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (var));
+ int regno = decode_reg_name (name);
+ if (regno >= 0)
+ {
+ tree tail, pred;
+ for (tail = *uses, pred = *uses; tail; tail = TREE_CHAIN (tail))
+ {
+ if (regno == decode_reg_name (TREE_STRING_POINTER (TREE_VALUE (tail))))
+ break;
+ else
+ pred = tail;
+ }
+ if (tail)
+ {
+ if (tail == pred)
+ *uses = TREE_CHAIN (tail);
+ else
+ {
+ TREE_CHAIN (pred) = TREE_CHAIN (tail);
+ }
+ }
+ }
+ }
+ else if (TREE_CODE (var) == VAR_DECL && !strcmp(TREE_STRING_POINTER (str), "m") )
+ TREE_ADDRESSABLE (var) = 1;
+}
+
+/* CW identifier may include '.', '+' or '-'. Except that an operator
+ can only end in a '.'. This routine creates a new valid operator
+ parsed as a CW identifier. */
+
+static tree
+cw_asm_identifier (tree expr)
+{
+ const char *opcodename = IDENTIFIER_POINTER (expr);
+ int len = IDENTIFIER_LENGTH (expr);
+ int i;
+ for (i = 0; i < len; i++)
+ if (opcodename[i] == '.')
+ break;
+ if (i+1 < len) /* operator. is ok */
+ {
+ char *buf = (char *) alloca (IDENTIFIER_LENGTH (expr) + 1);
+ strncpy (buf, opcodename, i);
+ buf[i] = ' ';
+ strcpy (buf+i+1, opcodename + i);
+ return get_identifier (buf);
+ }
+ return expr;
+}
+
+/* Build an asm statement from CW-syntax bits. */
+tree
+cw_asm_stmt (tree expr, tree args, int lineno)
+{
+ tree sexpr;
+ tree arg, tail;
+ tree inputs, outputs, clobbers, uses;
+ tree stmt;
+ unsigned int n;
+ const char *opcodename;
+
+ cw_asm_in_operands = 0;
+ VARRAY_TREE_INIT (cw_asm_operands, 30, "cw_asm_operands");
+ VARRAY_UINT_INIT (cw_asm_operands_arg, 30, "cw_asm_operands");
+ outputs = NULL_TREE;
+ inputs = NULL_TREE;
+ clobbers = NULL_TREE;
+ uses = NULL_TREE;
+
+ STRIP_NOPS (expr);
+
+ if (TREE_CODE (expr) == ADDR_EXPR)
+ expr = TREE_OPERAND (expr, 0);
+
+ expr = cw_asm_identifier (expr);
+
+ opcodename = IDENTIFIER_POINTER (expr);
+
+ /* Handle special directives specially. */
+ if (strcmp (opcodename, "entry") == 0)
+ return cw_asm_entry (expr, NULL_TREE, TREE_VALUE (args));
+ else if (strcmp (opcodename, "fralloc") == 0)
+ {
+ /* The correct default size is target-specific, so leave this as
+ a cookie for the backend. */
+ DECL_CW_ASM_FRAME_SIZE (current_function_decl) = -1;
+ if (args)
+ {
+ arg = TREE_VALUE (args);
+ STRIP_NOPS (arg);
+ if (TREE_CODE (arg) == INTEGER_CST)
+ {
+ int intval = tree_low_cst (arg, 0);
+ if (intval >= 0)
+ DECL_CW_ASM_FRAME_SIZE (current_function_decl) = intval;
+ else
+ error ("fralloc argument must be nonnegative");
+ }
+ else
+ error ("fralloc argument is not an integer");
+ }
+ return NULL_TREE;
+ }
+ else if (strcmp (opcodename, "frfree") == 0)
+ {
+ DECL_CW_ASM_NORETURN (current_function_decl) = 1;
+ /* Create a default-size frame retroactively. */
+ if (DECL_CW_ASM_FRAME_SIZE (current_function_decl) == (unsigned int)-2)
+ DECL_CW_ASM_FRAME_SIZE (current_function_decl) = (unsigned int)-1;
+ return NULL_TREE;
+ }
+ else if (strcmp (opcodename, "nofralloc") == 0)
+ {
+ DECL_CW_ASM_NORETURN (current_function_decl) = 1;
+ DECL_CW_ASM_FRAME_SIZE (current_function_decl) = -2;
+ return NULL_TREE;
+ }
+ else if (strcmp (opcodename, "machine") == 0)
+ {
+ return NULL_TREE;
+ }
+ else if (strcmp (opcodename, "opword") == 0)
+ {
+ opcodename = ".long";
+ }
+
+ if (cw_asm_buffer == NULL)
+ cw_asm_buffer = xmalloc (4000);
+
+ /* Build .file "file-name" directive. */
+ sprintf(cw_asm_buffer, "%s \"%s\"", ".file", input_filename);
+ sexpr = build_string (strlen (cw_asm_buffer), cw_asm_buffer);
+ stmt = build_stmt (ASM_EXPR, sexpr, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE);
+ ASM_VOLATILE_P (stmt) = 1;
+ (void)add_stmt (stmt);
+
+ /* Build .line "line-number" directive. */
+ sprintf(cw_asm_buffer, "%s %d", ".line", lineno);
+ sexpr = build_string (strlen (cw_asm_buffer), cw_asm_buffer);
+ stmt = build_stmt (ASM_EXPR, sexpr, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE);
+ ASM_VOLATILE_P (stmt) = 1;
+ (void)add_stmt (stmt);
+
+ cw_asm_buffer[0] = '\0';
+ strncat (cw_asm_buffer, opcodename, IDENTIFIER_LENGTH (expr));
+ strcat (cw_asm_buffer, " ");
+ n = 1;
+ /* Iterate through operands, "printing" each into the asm string. */
+ for (tail = args; tail; tail = TREE_CHAIN (tail))
+ {
+ arg = TREE_VALUE (tail);
+ if (tail != args)
+ strcat (cw_asm_buffer, ",");
+ print_cw_asm_operand (cw_asm_buffer, arg, n, &uses,false, false);
+ ++n;
+ }
+
+ sexpr = build_string (strlen (cw_asm_buffer), cw_asm_buffer);
+
+ /* Treat each C function seen as a input, and all parms/locals as
+ both inputs and outputs. */
+ for (n = 0; n < VARRAY_ACTIVE_SIZE (cw_asm_operands); ++n)
+ {
+ tree var = VARRAY_TREE (cw_asm_operands, n);
+ unsigned argnum = VARRAY_UINT (cw_asm_operands_arg, n);
+ bool must_be_reg;
+ must_be_reg = argnum & 1;
+ argnum >>= 1;
+
+ cw_process_arg (opcodename, var, argnum,
+ must_be_reg, &outputs, &inputs, &uses);
+ }
+
+ clobbers = uses;
+ if (cw_memory_clobber (opcodename))
+ {
+ /* To not clobber all of memory, we would need to know what
+ memory locations were accessed; for now, punt. */
+ clobbers = tree_cons (NULL_TREE,
+ build_string (6, "memory"),
+ clobbers);
+ }
+
+ /* Perform default conversions on function inputs.
+ Don't do this for other types as it would screw up operands
+ expected to be in memory. */
+ for (tail = inputs; tail; tail = TREE_CHAIN (tail))
+ TREE_VALUE (tail) = cw_asm_default_function_conversion (TREE_VALUE (tail));
+
+ /* Treat as volatile always. */
+ stmt = build_stmt (ASM_EXPR, sexpr, outputs, inputs, clobbers, uses);
+ ASM_VOLATILE_P (stmt) = 1;
+ stmt = add_stmt (stmt);
+ return stmt;
+}
+
+/* Compute the offset of a field, in bytes. Round down for bit
+ offsets, but that's OK for use in asm code. */
+
+static int
+cw_asm_field_offset (tree arg)
+{
+ return (tree_low_cst (DECL_FIELD_OFFSET (arg), 0)
+ + tree_low_cst (DECL_FIELD_BIT_OFFSET (arg), 0) / BITS_PER_UNIT);
+}
+
+/* Compute the int value for the expression. */
+
+static int
+cw_asm_expr_val (tree arg)
+{
+ if (TREE_CODE (arg) == FIELD_DECL)
+ return cw_asm_field_offset (arg);
+
+ if (TREE_CODE (arg) == INTEGER_CST)
+ return int_cst_value (arg);
+
+ if (TREE_CODE (arg) == REAL_CST)
+ return int_cst_value (convert (integer_type_node, arg));
+
+ if (TREE_CODE (arg) == PLUS_EXPR)
+ return cw_asm_expr_val (TREE_OPERAND (arg, 0))
+ + cw_asm_expr_val (TREE_OPERAND (arg, 1));
+
+ if (TREE_CODE (arg) == MINUS_EXPR)
+ return cw_asm_expr_val (TREE_OPERAND (arg, 0))
+ - cw_asm_expr_val (TREE_OPERAND (arg, 1));
+
+ if (TREE_CODE (arg) == NEGATE_EXPR)
+ return - cw_asm_expr_val (TREE_OPERAND (arg, 0));
+
+ if (TREE_CODE (arg) == ARRAY_REF
+ && TREE_CODE (TREE_OPERAND (arg, 1)) == INTEGER_CST
+ && TREE_INT_CST_LOW (TREE_OPERAND (arg, 1)) == 0)
+ return cw_asm_expr_val (TREE_OPERAND (arg, 0));
+
+ error ("invalid operand for arithmetic in assembly block");
+ return 0;
+}
+
+/* Print an operand according to its tree type. MUST_BE_REG is true,
+ iff we know the operand must be a register. MUST_NOT_BE_REG is true,
+ iff we know the operand must not be a register. */
+
+static void
+print_cw_asm_operand (char *buf, tree arg, unsigned argnum,
+ tree *uses,
+ bool must_be_reg, bool must_not_be_reg)
+{
+ int idnum;
+ HOST_WIDE_INT bitsize, bitpos;
+ tree offset;
+ enum machine_mode mode;
+ int unsignedp, volatilep;
+ tree op0;
+
+ STRIP_NOPS (arg);
+
+ switch (TREE_CODE (arg))
+ {
+ case INTEGER_CST:
+ sprintf (buf + strlen (buf), HOST_WIDE_INT_PRINT_DEC, tree_low_cst (arg, 0));
+ break;
+
+ case IDENTIFIER_NODE:
+ strncat (buf, IDENTIFIER_POINTER (arg), IDENTIFIER_LENGTH (arg));
+ {
+ int regno = decode_reg_name (IDENTIFIER_POINTER (arg));
+ if (regno >= 0)
+ {
+ tree tail;
+ for (tail = *uses; tail; tail = TREE_CHAIN (tail))
+ if (regno == decode_reg_name (TREE_STRING_POINTER (TREE_VALUE (tail))))
+ break;
+ if (!tail)
+ {
+ const char *id = IDENTIFIER_POINTER (arg);
+ *uses = tree_cons (NULL_TREE,
+ build_string (strlen (id), id),
+ *uses);
+ }
+ }
+ }
+ break;
+
+ case VAR_DECL:
+ case PARM_DECL:
+ /* Named non-stack variables always refer to the address of that
+ variable. */
+ if (TREE_CODE (arg) == VAR_DECL
+ && TREE_STATIC (arg)
+ && MEM_P (DECL_RTL (arg)))
+ {
+ /* See assemble_name for details. */
+ const char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (arg));
+ const char *real_name;
+ tree id;
+
+ mark_referenced (DECL_ASSEMBLER_NAME (arg));
+ real_name = targetm.strip_name_encoding (name);
+ id = maybe_get_identifier (real_name);
+ if (id)
+ mark_referenced (id);
+
+ if (name[0] == '*')
+ strncat (buf, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (arg)) + 1,
+ IDENTIFIER_LENGTH (DECL_ASSEMBLER_NAME (arg)) - 1);
+ else
+ {
+ sprintf (buf + strlen (buf), "%s", user_label_prefix);
+ strncat (buf, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (arg)),
+ IDENTIFIER_LENGTH (DECL_ASSEMBLER_NAME (arg)));
+ }
+
+ mark_decl_referenced (arg);
+ }
+ else if ((idnum = cw_asm_get_register_var (arg, argnum, must_be_reg)) >= 0)
+ {
+ strcat (buf, "%");
+ sprintf (buf + strlen (buf), "%d", idnum);
+ }
+ break;
+
+ case FUNCTION_DECL:
+ if ((idnum = cw_asm_get_register_var (arg, argnum, must_be_reg)) >= 0)
+ {
+ strcat (buf, "%z");
+ sprintf (buf + strlen (buf), "%d", idnum);
+ }
+ break;
+
+ case COMPOUND_EXPR:
+ /* "Compound exprs" are really offset+register constructs. */
+ print_cw_asm_operand (buf, TREE_OPERAND (arg, 0), argnum, uses,
+ false, true);
+ strcat (buf, "(");
+ print_cw_asm_operand (buf, TREE_OPERAND (arg, 1), argnum, uses,
+ ! must_not_be_reg, must_not_be_reg);
+ strcat (buf, ")");
+ break;
+
+ case PLUS_EXPR:
+ case MINUS_EXPR:
+ sprintf (buf + strlen (buf), "%d", cw_asm_expr_val (arg));
+ break;
+
+ case FIELD_DECL:
+ sprintf (buf + strlen (buf), "%d", cw_asm_field_offset (arg));
+ break;
+
+ case COMPONENT_REF:
+ get_inner_reference (arg, &bitsize, &bitpos, &offset, &mode, &unsignedp, &volatilep, false);
+ /* Convert bit pos to byte pos, rounding down (this is asm,
+ after all). */
+ /* APPLE LOCAL 32-bit HOST_WIDE_INT */
+ sprintf (buf + strlen (buf), "%lld", (long long int) (bitpos / BITS_PER_UNIT));
+ strcat (buf, "(");
+ op0 = TREE_OPERAND (arg, 0);
+ /* Catch a couple different flavors of component refs. */
+ if (TREE_CODE (op0) == VAR_DECL)
+ print_cw_asm_operand (buf, op0, argnum, uses, true, false);
+ else
+ print_cw_asm_operand (buf, TREE_OPERAND (op0, 0), argnum, uses, true, false);
+ strcat (buf, ")");
+ break;
+
+ case ARRAY_REF:
+ if (TREE_CODE (TREE_OPERAND (arg, 1)) != INTEGER_CST
+ || TREE_INT_CST_LOW (TREE_OPERAND (arg, 1)) != 0)
+ error ("array references, other than [0], not supported");
+ else
+ sprintf (buf + strlen (buf), "%d", cw_asm_field_offset (TREE_OPERAND (arg, 0)));
+ break;
+
+ case NEGATE_EXPR:
+ strcat (buf, "-");
+ print_cw_asm_operand (buf, TREE_OPERAND (arg, 0), argnum, uses,
+ must_be_reg, must_not_be_reg);
+ break;
+
+ default:
+ /* Something is wrong, most likely a user error. */
+ error ("block assembly operand not recognized");
+ break;
+ }
+}
+
+/* Given an identifier name, come up with the index to use for the %0,
+ %1, etc in the asm string. MUST_BE_REG is true, iff we know the
+ operand must be a register. */
+
+static int
+cw_asm_get_register_var (tree var, unsigned argnum, bool must_be_reg)
+{
+ unsigned int n;
+
+ for (n = 0; n < VARRAY_ACTIVE_SIZE (cw_asm_operands); ++n)
+ {
+ if (var == VARRAY_TREE (cw_asm_operands, n))
+ return n;
+ }
+
+ VARRAY_PUSH_TREE (cw_asm_operands, var);
+ VARRAY_PUSH_UINT (cw_asm_operands_arg, (argnum<<1) + must_be_reg);
+ return VARRAY_ACTIVE_SIZE (cw_asm_operands) - 1;
+}
+
+tree
+cw_asm_reg_name (tree id)
+{
+#ifdef CW_ASM_REGISTER_NAME
+ char buf[100];
+ const char *newname = CW_ASM_REGISTER_NAME (IDENTIFIER_POINTER (id), buf);
+ if (newname)
+ return get_identifier (newname);
+#else
+ if (decode_reg_name (IDENTIFIER_POINTER (id)) >= 0)
+ return id;
+#endif
+ return NULL_TREE;
+}
+
+/* Build an asm label from CW-syntax bits. */
+tree
+cw_asm_label (tree labid, int atsign)
+{
+ tree sexpr;
+ tree inputs = NULL_TREE, outputs = NULL_TREE, clobbers = NULL_TREE;
+ tree stmt;
+
+ STRIP_NOPS (labid);
+
+ if (atsign)
+ labid = prepend_char_identifier (labid, '@');
+
+ if (cw_asm_buffer == NULL)
+ cw_asm_buffer = xmalloc (4000);
+
+ cw_asm_buffer[0] = '\0';
+ strcat (cw_asm_buffer, IDENTIFIER_POINTER (get_cw_asm_label (labid)));
+ strcat (cw_asm_buffer, ":");
+
+ sexpr = build_string (strlen (cw_asm_buffer), cw_asm_buffer);
+
+ /* Simple asm statements are treated as volatile. */
+ stmt = build_stmt (ASM_EXPR, sexpr, outputs, inputs, clobbers, NULL_TREE);
+ ASM_VOLATILE_P (stmt) = 1;
+ stmt = add_stmt (stmt);
+ return stmt;
+}
+
+/* Create a new identifier with an 'ch' stuck on the front. */
+
+tree
+prepend_char_identifier (tree ident, char ch)
+{
+ char *buf = (char *) alloca (IDENTIFIER_LENGTH (ident) + 20);
+ buf[0] = ch;
+ strcpy (buf + 1, IDENTIFIER_POINTER (ident));
+ return get_identifier (buf);
+}
+
+/* In CW assembly, '.', '-' and '+ can follow identifiers, and are
+ part of them. This routine joins a normal C identifier with such a
+ suffix. */
+
+tree
+cw_get_identifier (tree id, const char *str)
+{
+ char *buf;
+ int len = strlen (str);
+ buf = (char *) alloca (IDENTIFIER_LENGTH (id) + len + 1);
+ memcpy (buf, IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
+ memcpy (buf + IDENTIFIER_LENGTH (id), str, len);
+ buf[IDENTIFIER_LENGTH (id) + len] = 0;
+ return get_identifier (buf);
+}
+
+void
+clear_cw_asm_labels (void)
+{
+ if (!cw_asm_labels)
+ VARRAY_TREE_INIT (cw_asm_labels, 40, "cw_asm_labels");
+ if (!cw_asm_labels_uniq)
+ VARRAY_TREE_INIT (cw_asm_labels_uniq, 40, "cw_asm_labels_uniq");
+ VARRAY_POP_ALL (cw_asm_labels);
+ VARRAY_POP_ALL (cw_asm_labels_uniq);
+}
+
+static GTY(()) tree cw_ha16;
+static GTY(()) tree cw_hi16;
+static GTY(()) tree cw_lo16;
+
+/* Given a label identifier and a flag indicating whether it had an @
+ preceding it, return a synthetic and unique label that the
+ assembler will like. */
+
+tree
+get_cw_asm_label (tree labid)
+{
+ unsigned int n;
+ const char *labname;
+ char *buf;
+ tree newid;
+
+ if (!cw_ha16)
+ {
+ cw_ha16 = get_identifier ("ha16");
+ cw_hi16 = get_identifier ("hi16");
+ cw_lo16 = get_identifier ("lo16");
+ }
+
+ /* lo16(), ha16() and hi16() should be left unmolested. */
+ if (labid == cw_lo16 || labid == cw_ha16 || labid == cw_hi16)
+ return labid;
+
+ for (n = 0; n < VARRAY_ACTIVE_SIZE (cw_asm_labels); ++n)
+ {
+ if (labid == VARRAY_TREE (cw_asm_labels, n))
+ return VARRAY_TREE (cw_asm_labels_uniq, n);
+ }
+ /* Not already seen, make up a label. */
+ VARRAY_PUSH_TREE (cw_asm_labels, labid);
+ buf = (char *) alloca (IDENTIFIER_LENGTH (labid) + 20);
+ sprintf (buf, "LASM%d$", cw_asm_labelno++);
+ /* Assembler won't like a leading @-sign, so make it into a $ if
+ seen. */
+ labname = IDENTIFIER_POINTER (labid);
+ if (*labname == '@')
+ {
+ strcat (buf, "$");
+ ++labname;
+ }
+ strcat (buf, labname);
+ newid = get_identifier (buf);
+ VARRAY_PUSH_TREE (cw_asm_labels_uniq, newid);
+ return newid;
+}
+
+/* The "offset(reg)" in assembly doesn't have an appropriate tree
+ node, so borrow COMPOUND_EXPR and just detect it when emitting the
+ assembly statement. */
+
+tree
+cw_asm_build_register_offset (tree offset, tree regname)
+{
+ tree t;
+
+ t = make_node (COMPOUND_EXPR);
+ /* No type is associated with this construct. */
+ TREE_TYPE (t) = NULL_TREE;
+ TREE_OPERAND (t, 0) = offset;
+ TREE_OPERAND (t, 1) = regname;
+ return t;
+}
+
+/* Given some bits of info from the parser, determine if this is a
+ valid entry statement, and then generate traditional asm statements
+ to create the label. The entry may be either static or extern. */
+tree
+cw_asm_entry (tree keyword, tree scspec, tree fn)
+{
+ int externify = 0;
+ tree stmt, inputs, str, one, strlab;
+
+ /* Validate all the arguments. The keyword arg should be "entry",
+ but we don't make it a reserved word and parse as a plain old
+ identifier, so need to check it here. */
+ if (strcmp (IDENTIFIER_POINTER (keyword), "entry") != 0)
+ {
+ error ("invalid asm entry statement syntax");
+ return error_mark_node;
+ }
+ if (scspec == NULL || strcmp (IDENTIFIER_POINTER (scspec), "extern") == 0)
+ externify = 1;
+ else if (strcmp (IDENTIFIER_POINTER (scspec), "static") == 0)
+ /* accept, but do nothing special */ ;
+ else
+ {
+ error ("entry point storage class much be `static' or `extern'");
+ return error_mark_node;
+ }
+ if (fn == NULL_TREE || TREE_CODE (fn) != FUNCTION_DECL)
+ {
+ error ("entry point not recognized as a function");
+ return error_mark_node;
+ }
+
+ fn = cw_asm_default_function_conversion (fn);
+ str = build_string (1, "s");
+ one = build_tree_list (build_tree_list (NULL_TREE, str), fn);
+ inputs = chainon (NULL_TREE, one);
+
+ if (externify)
+ {
+ strlab = build_string (9, ".globl %0");
+ /* Treat as volatile always. */
+ stmt = build_stmt (ASM_EXPR, strlab, NULL_TREE, inputs, NULL_TREE, NULL_TREE);
+ ASM_VOLATILE_P (stmt) = 1;
+ stmt = add_stmt (stmt);
+ }
+
+ strlab = build_string (3, "%0:");
+ /* Treat as volatile always. */
+ stmt = build_stmt (ASM_EXPR, strlab, NULL_TREE, inputs, NULL_TREE, NULL_TREE);
+ ASM_VOLATILE_P (stmt) = 1;
+ stmt = add_stmt (stmt);
+ return stmt;
+}
+/* APPLE LOCAL end CW asm blocks */
#include "gt-c-common.h"
diff --git a/gcc/c-common.h b/gcc/c-common.h
index 13377f167fa..8026284a28b 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -26,6 +26,26 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "cpplib.h"
#include "ggc.h"
+/* APPLE LOCAL begin CW asm blocks */
+/* We use a small state machine to inform the lexer when to start
+ returning tokens marking the beginning of each asm line. */
+enum cw_asm_states {
+ /* Normal code. */
+ cw_asm_none,
+ /* '{' of asm block seen, decls may appear. */
+ cw_asm_decls,
+ /* No more decls, in asm block proper, '}' not seen yet. */
+ cw_asm_asm
+};
+
+extern enum cw_asm_states cw_asm_state;
+extern int cw_asm_in_decl;
+extern int inside_cw_asm_block;
+extern int cw_asm_at_bol;
+extern int cw_asm_in_operands;
+extern int cw_asm_labelno;
+/* APPLE LOCAL end CW asm blocks */
+
/* Usage of TREE_LANG_FLAG_?:
0: TREE_NEGATED_INT (in INTEGER_CST).
IDENTIFIER_MARKED (used by search routines).
@@ -56,6 +76,8 @@ enum rid
/* C extensions */
RID_COMPLEX, RID_THREAD,
+ /* APPLE LOCAL private extern */
+ RID_PRIVATE_EXTERN,
/* C++ */
RID_FRIEND, RID_VIRTUAL, RID_EXPLICIT, RID_EXPORT, RID_MUTABLE,
@@ -140,6 +162,8 @@ enum c_tree_index
CTI_WIDEST_UINT_LIT_TYPE,
CTI_CHAR_ARRAY_TYPE,
+ /* APPLE LOCAL pascal strings */
+ CTI_PASCAL_STRING_TYPE, /* for Pascal strings */
CTI_WCHAR_ARRAY_TYPE,
CTI_INT_ARRAY_TYPE,
CTI_STRING_TYPE,
@@ -189,6 +213,8 @@ struct c_common_identifier GTY(())
#define truthvalue_false_node c_global_trees[CTI_TRUTHVALUE_FALSE]
#define char_array_type_node c_global_trees[CTI_CHAR_ARRAY_TYPE]
+/* APPLE LOCAL pascal strings */
+#define pascal_string_type_node c_global_trees[CTI_PASCAL_STRING_TYPE]
#define wchar_array_type_node c_global_trees[CTI_WCHAR_ARRAY_TYPE]
#define int_array_type_node c_global_trees[CTI_INT_ARRAY_TYPE]
#define string_type_node c_global_trees[CTI_STRING_TYPE]
@@ -386,6 +412,13 @@ extern int flag_short_double;
extern int flag_short_wchar;
+/* APPLE LOCAL begin lvalue cast */
+/* Nonzero means allow assignment, increment or decrement of casts of
+ lvalues (e.g., '((foo *)p)++') if both the lvalue and its cast are
+ of POD type with identical size and alignment. */
+extern int flag_lvalue_cast_assign;
+/* APPLE LOCAL end lvalue cast */
+
/* Nonzero means allow Microsoft extensions without warnings or errors. */
extern int flag_ms_extensions;
@@ -393,6 +426,12 @@ extern int flag_ms_extensions;
extern int flag_no_asm;
+/* APPLE LOCAL begin CW asm blocks */
+/* Nonzero means that CodeWarrior-style inline assembler is to be parsed. */
+
+extern int flag_cw_asm_blocks;
+/* APPLE LOCAL end CW asm blocks */
+
/* Nonzero means give string constants the type `const char *', as mandated
by the standard. */
@@ -416,6 +455,12 @@ extern int warn_unknown_pragmas; /* Tri state variable. */
extern int warn_format;
+/* APPLE LOCAL begin disable_typechecking_for_spec_flag */
+/* This makes type conflicts a warning, instead of an error,
+ to work around some problems with SPEC. */
+
+extern int disable_typechecking_for_spec_flag;
+/* APPLE LOCAL end disable_typechecking_for_spec_flag */
/* C/ObjC language option variables. */
@@ -454,6 +499,13 @@ extern int flag_gen_declaration;
extern int flag_next_runtime;
+/* APPLE LOCAL begin mainline */
+/* Generate special '- .cxx_construct' and '- .cxx_destruct' methods
+ to initialize any non-POD ivars in ObjC++ classes. */
+
+extern int flag_objc_call_cxx_cdtors;
+/* APPLE LOCAL end mainline */
+
/* Tells the compiler that this is a special run. Do not perform any
compiling, instead we are to test some platform dependent features
and output a C header file with appropriate definitions. */
@@ -566,6 +618,26 @@ extern int flag_permissive;
extern int flag_enforce_eh_specs;
+/* APPLE LOCAL KEXT */
+extern int flag_apple_kext;
+
+/* APPLE LOCAL begin structor thunks */
+/* Nonzero if we prefer to clone con/de/structors.
+ Alternative is to gen multiple tiny thunk-esque things that
+ call/jump to a unified con/de/structor. This is a classic
+ size/speed tradeoff. */
+extern int flag_clone_structors;
+/* APPLE LOCAL end structor thunks */
+
+/* APPLE LOCAL begin private extern Radar 2872481 --ilr */
+/* Nonzero if -fpreprocessed specified. This is needed by init_reswords()
+ so that it can make __private_extern__ have the same rid code as extern
+ when -fpreprocessed is specified. Normally there is a -D on the command
+ line for this. But if -fpreprocessed was specified then macros aren't
+ expanded. So we fake the token value out using the rid code. */
+extern int flag_preprocessed;
+/* APPLE LOCAL end private extern Radar 2872481 --ilr */
+
/* Nonzero (the default) means to generate thread-safe code for
initializing local statics. */
@@ -688,12 +760,18 @@ extern bool c_promoting_integer_type_p (tree);
extern int self_promoting_args_p (tree);
extern tree strip_array_types (tree);
extern tree strip_pointer_operator (tree);
+extern HOST_WIDE_INT c_common_to_target_charset (HOST_WIDE_INT);
+
+/* APPLE LOCAL begin IMA built-in decl merging fix (radar 3645899) */
+extern bool builtin_function_disabled_p (const char *);
+/* APPLE LOCAL end */
/* This is the basic parsing function. */
extern void c_parse_file (void);
/* This is misnamed, it actually performs end-of-compilation processing. */
extern void finish_file (void);
+
/* These macros provide convenient access to the various _STMT nodes. */
/* Nonzero if this statement should be considered a full-expression,
@@ -885,7 +963,10 @@ enum lvalue_use {
lv_asm
};
-extern int lvalue_or_else (tree, enum lvalue_use);
+/* APPLE LOCAL non-lvalue assign */
+extern int lvalue_or_else (tree *, enum lvalue_use);
+
+extern int complete_array_type (tree *, tree, bool);
/* In c-gimplify.c */
extern void c_genericize (tree);
@@ -900,7 +981,13 @@ extern void c_common_read_pch (cpp_reader *pfile, const char *name, int fd,
extern void c_common_write_pch (void);
extern void c_common_no_more_pch (void);
extern void c_common_pch_pragma (cpp_reader *pfile);
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+extern void c_common_print_pch_checksum (FILE *f);
+
+/* In *-checksum.c */
+extern const unsigned char executable_checksum[16];
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
extern void builtin_define_with_value (const char *, const char *, int);
extern void c_stddef_cpp_builtins (void);
extern void fe_file_change (const struct line_map *);
@@ -914,7 +1001,15 @@ extern tree objc_is_class_name (tree);
extern tree objc_is_object_ptr (tree);
extern void objc_check_decl (tree);
extern int objc_is_reserved_word (tree);
-extern int objc_comptypes (tree, tree, int);
+/* APPLE LOCAL 4154928 */
+extern tree objc_common_type (tree, tree);
+/* APPLE LOCAL begin mainline */
+/* Prototype for 'objc_comptypes' removed. */
+extern bool objc_compare_types (tree, tree, int, tree);
+extern void objc_volatilize_decl (tree);
+extern bool objc_type_quals_match (tree, tree);
+extern tree objc_rewrite_function_call (tree, tree);
+/* APPLE LOCAL end mainline */
extern tree objc_message_selector (void);
extern tree objc_lookup_ivar (tree, tree);
extern void objc_clear_super_receiver (void);
@@ -951,13 +1046,17 @@ extern void objc_add_instance_variable (tree);
extern tree objc_build_keyword_decl (tree, tree, tree);
extern tree objc_build_throw_stmt (tree);
extern void objc_begin_try_stmt (location_t, tree);
-extern void objc_finish_try_stmt (void);
+/* APPLE LOCAL mainline */
+extern tree objc_finish_try_stmt (void);
extern void objc_begin_catch_clause (tree);
extern void objc_finish_catch_clause (void);
extern void objc_build_finally_clause (location_t, tree);
-extern void objc_build_synchronized (location_t, tree, tree);
+/* APPLE LOCAL mainline */
+extern tree objc_build_synchronized (location_t, tree, tree);
extern int objc_static_init_needed_p (void);
extern tree objc_generate_static_init_call (tree);
+/* APPLE LOCAL mainline */
+extern tree objc_generate_write_barrier (tree, enum tree_code, tree);
/* The following are provided by the C and C++ front-ends, and called by
ObjC/ObjC++. */
@@ -970,4 +1069,24 @@ extern void preprocess_file (cpp_reader *);
extern void pp_file_change (const struct line_map *);
extern void pp_dir_change (cpp_reader *, const char *);
+/* APPLE LOCAL begin CW asm blocks */
+extern tree cw_asm_stmt (tree, tree, int);
+extern tree cw_asm_build_register_offset (tree, tree);
+extern tree cw_asm_label (tree, int);
+extern tree prepend_char_identifier (tree, char);
+extern void clear_cw_asm_labels (void);
+extern tree cw_asm_reg_name (tree);
+extern tree get_cw_asm_label (tree);
+extern tree cw_asm_entry (tree, tree, tree);
+extern int cw_asm_typename_or_reserved (tree);
+extern tree cw_asm_c_build_component_ref (tree, tree);
+extern tree cw_get_identifier (tree, const char *);
+/* APPLE LOCAL end CW asm blocks */
+
+/* APPLE LOCAL begin AltiVec */
+/* The following function will convert expressions into
+ vector initializers. */
+extern tree vector_constructor_from_expr (tree, tree);
+/* APPLE LOCAL end AltiVec */
+
#endif /* ! GCC_C_COMMON_H */
diff --git a/gcc/c-convert.c b/gcc/c-convert.c
index 3067137c372..2d422679d5b 100644
--- a/gcc/c-convert.c
+++ b/gcc/c-convert.c
@@ -33,6 +33,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "flags.h"
#include "convert.h"
#include "c-common.h"
+/* APPLE LOCAL begin IMA aggregate types */
+#include "c-tree.h"
+/* APPLE LOCAL end IMA aggregate types */
#include "langhooks.h"
#include "toplev.h"
diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c
index 06904dbb5e5..54a44f390af 100644
--- a/gcc/c-cppbuiltin.c
+++ b/gcc/c-cppbuiltin.c
@@ -294,6 +294,32 @@ define__GNUC__ (void)
builtin_define_with_value_n ("__GNUC_PATCHLEVEL__", "0", 1);
gcc_assert (!*v || *v == ' ' || *v == '-');
+
+ /* APPLE LOCAL begin Apple version */
+ {
+ /* This chunk of code defines __APPLE_CC__ from the version
+ string. It expects to see a substring of the version string of
+ the form "build NNNN)", where each N is a digit, and the first
+ N is nonzero (there can be 4 or 5 digits). It will abort() if
+ these conditions are not met, since that usually means that
+ someone's broken the version string. */
+ const char *vt;
+
+ vt = strstr (version_string, "build ");
+ if (vt == NULL)
+ abort ();
+ vt += strlen ("build ");
+ if (! ISDIGIT (*vt))
+ abort ();
+ for (q = vt; *q != 0 && ISDIGIT (*q); q++)
+ ;
+ if (q == vt || *q != ')')
+ abort ();
+ if ((q - vt != 4 && q - vt != 5) || *vt == '0')
+ abort ();
+ builtin_define_with_value_n ("__APPLE_CC__", vt, q - vt);
+ }
+ /* APPLE LOCAL end Apple version */
}
/* Define macros used by <stdint.h>. Currently only defines limits
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 0b7b97ede23..2e20d5e4c0c 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -225,17 +225,8 @@ struct c_binding GTY((chain_next ("%h.prev")))
#define I_LABEL_DECL(node) \
(I_LABEL_BINDING(node) ? I_LABEL_BINDING(node)->decl : 0)
-/* Each C symbol points to three linked lists of c_binding structures.
- These describe the values of the identifier in the three different
- namespaces defined by the language. */
-
-struct lang_identifier GTY(())
-{
- struct c_common_identifier common_id;
- struct c_binding *symbol_binding; /* vars, funcs, constants, typedefs */
- struct c_binding *tag_binding; /* struct/union/enum tags */
- struct c_binding *label_binding; /* labels */
-};
+/* APPLE LOCAL mainline */
+/* Definition of 'struct lang_identifier' moved to c-tree.h. */
/* Validate c-lang.c's assumptions. */
extern char C_SIZEOF_STRUCT_LANG_IDENTIFIER_isnt_accurate
@@ -414,10 +405,17 @@ static void layout_array_type (tree);
with __attribute__((deprecated)). An object declared as
__attribute__((deprecated)) suppresses warnings of uses of other
deprecated items. */
+/* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+/* Also add an __attribute__((unavailable)). An object declared as
+ __attribute__((unavailable)) suppresses any reports of being
+ declared with unavailable or deprecated items. */
+/* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
enum deprecated_states {
DEPRECATED_NORMAL,
DEPRECATED_SUPPRESS
+ /* APPLE LOCAL "unavailable" attribute (radar 2809697) */
+ , DEPRECATED_UNAVAILABLE_SUPPRESS
};
static enum deprecated_states deprecated_state = DEPRECATED_NORMAL;
@@ -529,7 +527,7 @@ c_finish_incomplete_decl (tree decl)
{
warning ("%Jarray %qD assumed to have one element", decl, decl);
- complete_array_type (type, NULL_TREE, 1);
+ complete_array_type (&TREE_TYPE (decl), NULL_TREE, true);
layout_decl (decl, 0);
}
@@ -558,15 +556,8 @@ objc_mark_locals_volatile (void *enclosing_blk)
scope = scope->outer)
{
for (b = scope->bindings; b; b = b->prev)
- {
- if (TREE_CODE (b->decl) == VAR_DECL
- || TREE_CODE (b->decl) == PARM_DECL)
- {
- C_DECL_REGISTER (b->decl) = 0;
- DECL_REGISTER (b->decl) = 0;
- TREE_THIS_VOLATILE (b->decl) = 1;
- }
- }
+ /* APPLE LOCAL mainline */
+ objc_volatilize_decl (b->decl);
/* Do not climb up past the current function. */
if (scope->function_body)
@@ -1043,8 +1034,7 @@ validate_proto_after_old_defn (tree newdecl, tree newtype, tree oldtype)
tree newargs, oldargs;
int i;
- /* ??? Elsewhere TYPE_MAIN_VARIANT is not used in this context. */
-#define END_OF_ARGLIST(t) (TYPE_MAIN_VARIANT (t) == void_type_node)
+#define END_OF_ARGLIST(t) ((t) == void_type_node)
oldargs = TYPE_ACTUAL_ARG_TYPES (oldtype);
newargs = TYPE_ARG_TYPES (newtype);
@@ -1052,8 +1042,8 @@ validate_proto_after_old_defn (tree newdecl, tree newtype, tree oldtype)
for (;;)
{
- tree oldargtype = TREE_VALUE (oldargs);
- tree newargtype = TREE_VALUE (newargs);
+ tree oldargtype = TYPE_MAIN_VARIANT (TREE_VALUE (oldargs));
+ tree newargtype = TYPE_MAIN_VARIANT (TREE_VALUE (newargs));
if (END_OF_ARGLIST (oldargtype) && END_OF_ARGLIST (newargtype))
break;
@@ -1228,12 +1218,68 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl,
}
else
{
+ /* APPLE LOCAL begin disable typechecking for SPEC --dbj */
+ /* Accept incompatible function declarations, and incompatible
+ global variables provided they are in different files.
+ (Would be nice to check this for functions also, but
+ context is not set for them.) */
+ void (*err) (const char*, ...);
+ if (disable_typechecking_for_spec_flag
+ && TREE_PUBLIC (olddecl)
+ && TREE_PUBLIC (newdecl)
+ && ((TREE_CODE (olddecl) == VAR_DECL
+ && TREE_CODE (newdecl) == VAR_DECL
+ && !same_translation_unit_p (olddecl, newdecl))
+ || (TREE_CODE (olddecl) == FUNCTION_DECL
+ && TREE_CODE (newdecl) == FUNCTION_DECL)))
+ err = warning;
+ else
+ err = error;
if (TYPE_QUALS (newtype) != TYPE_QUALS (oldtype))
- error ("%J conflicting type qualifiers for %qD", newdecl, newdecl);
+ err ("%J conflicting type qualifiers for %qD", newdecl, newdecl);
else
- error ("%Jconflicting types for %qD", newdecl, newdecl);
+ err ("%Jconflicting types for %qD", newdecl, newdecl);
diagnose_arglist_conflict (newdecl, olddecl, newtype, oldtype);
- locate_old_decl (olddecl, error);
+ locate_old_decl (olddecl, *err);
+ /* In the case where we're being lenient, two trees will
+ continue to exist, which represent the same variable.
+ These are currently never used in the same function, but
+ watch out for inlining. */
+ if (err == warning
+ && TREE_CODE (olddecl) == VAR_DECL)
+ {
+ HOST_WIDE_INT newalias;
+ /* To prevent aliasing problems,
+ make both of them have the same alias class right now. */
+ if (TYPE_ALIAS_SET_KNOWN_P (oldtype))
+ {
+ newalias = TYPE_ALIAS_SET (oldtype);
+ if (TYPE_ALIAS_SET_KNOWN_P (newtype)
+ && newalias != TYPE_ALIAS_SET (oldtype))
+ internal_error ("%Jalias set conflict for '%D'",
+ newdecl, newdecl);
+ }
+ else if (TYPE_ALIAS_SET_KNOWN_P (newtype))
+ newalias = TYPE_ALIAS_SET (newtype);
+ else
+ newalias = new_alias_set ();
+ TYPE_ALIAS_SET (oldtype) = newalias;
+ TYPE_ALIAS_SET (newtype) = newalias;
+ /* Set a marker bit so that only one of them gets emitted
+ to the output file. I think this only matters if the
+ sizes are different, in which case we must emit the larger.
+ If a size is unknown, we can mark that one. */
+ if (!DECL_SIZE (newdecl))
+ DECL_DUPLICATE_DECL (newdecl) = 1;
+ else if (!DECL_SIZE (olddecl))
+ DECL_DUPLICATE_DECL (olddecl) = 1;
+ else if (tree_int_cst_lt (DECL_SIZE (newdecl),
+ DECL_SIZE (olddecl)))
+ DECL_DUPLICATE_DECL (newdecl) = 1;
+ else
+ DECL_DUPLICATE_DECL (olddecl) = 1;
+ }
+ /* APPLE LOCAL end disable typechecking for SPEC --dbj */
return false;
}
}
@@ -1646,6 +1692,12 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
if (TREE_DEPRECATED (newdecl))
TREE_DEPRECATED (olddecl) = 1;
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ /* Merge unavailableness. */
+ if (TREE_UNAVAILABLE (newdecl))
+ TREE_UNAVAILABLE (olddecl) = 1;
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
+
/* Keep source location of definition rather than declaration. */
if (DECL_INITIAL (newdecl) == 0 && DECL_INITIAL (olddecl) != 0)
DECL_SOURCE_LOCATION (newdecl) = DECL_SOURCE_LOCATION (olddecl);
@@ -2252,7 +2304,8 @@ implicitly_declare (tree functionid)
implicit_decl_warning (functionid, decl);
C_DECL_IMPLICIT (decl) = 1;
}
- if (DECL_BUILT_IN (decl))
+ /* APPLE LOCAL disable typechecking for SPEC --dbj */
+ if (DECL_BUILT_IN (decl) || disable_typechecking_for_spec_flag)
{
newtype = build_type_attribute_variant (newtype,
TYPE_ATTRIBUTES
@@ -2440,6 +2493,7 @@ define_label (location_t location, tree name)
if there is a containing function with a declared label with
the same name. */
tree label = I_LABEL_DECL (name);
+ struct c_label_list *nlist;
if (label
&& ((DECL_CONTEXT (label) == current_function_decl
@@ -2456,6 +2510,8 @@ define_label (location_t location, tree name)
/* The label has been used or declared already in this function,
but not defined. Update its location to point to this
definition. */
+ if (C_DECL_UNDEFINABLE_STMT_EXPR (label))
+ error ("%Jjump into statement expression", label);
DECL_SOURCE_LOCATION (label) = location;
}
else
@@ -2473,6 +2529,11 @@ define_label (location_t location, tree name)
"identifier %qs conflicts", &location,
IDENTIFIER_POINTER (name));
+ nlist = XOBNEW (&parser_obstack, struct c_label_list);
+ nlist->next = label_context_stack->labels_def;
+ nlist->label = label;
+ label_context_stack->labels_def = nlist;
+
/* Mark label as having been defined. */
DECL_INITIAL (label) = error_mark_node;
return label;
@@ -2703,7 +2764,17 @@ builtin_function (const char *name, tree type, int function_code,
/* Builtins in the implementation namespace are made visible without
needing to be explicitly declared. See push_file_scope. */
- if (name[0] == '_' && (name[1] == '_' || ISUPPER (name[1])))
+ /* APPLE LOCAL begin AltiVec */
+ if ((name[0] == '_' && (name[1] == '_' || ISUPPER (name[1])))
+#ifdef TARGET_POWERPC
+ /* AltiVec PIM builtins, even though they do not begin with
+ underscores, need not be declared either. */
+ || (cl == BUILT_IN_MD
+ && function_code >= ALTIVEC_PIM__FIRST
+ && function_code <= ALTIVEC_PIM__LAST)
+#endif /* TARGET_POWERPC */
+ )
+ /* APPLE LOCAL end AltiVec */
{
TREE_CHAIN (decl) = visible_builtins;
visible_builtins = decl;
@@ -2990,8 +3061,37 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs,
/* An object declared as __attribute__((deprecated)) suppresses
warnings of uses of other deprecated items. */
+
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ /* An object declared as __attribute__((unavailable)) suppresses
+ any reports of being declared with unavailable or deprecated
+ items. An object declared as __attribute__((deprecated))
+ suppresses warnings of uses of other deprecated items. */
+#ifdef A_LESS_INEFFICENT_WAY /* which I really don't want to do! */
if (lookup_attribute ("deprecated", attributes))
deprecated_state = DEPRECATED_SUPPRESS;
+ else if (lookup_attribute ("unavailable", attributes))
+ deprecated_state = DEPRECATED_UNAVAILABLE_SUPPRESS;
+#else /* a more efficient way doing what lookup_attribute would do */
+ tree a;
+
+ for (a = attributes; a; a = TREE_CHAIN (a))
+ {
+ tree name = TREE_PURPOSE (a);
+ if (TREE_CODE (name) == IDENTIFIER_NODE)
+ if (is_attribute_p ("deprecated", name))
+ {
+ deprecated_state = DEPRECATED_SUPPRESS;
+ break;
+ }
+ if (is_attribute_p ("unavailable", name))
+ {
+ deprecated_state = DEPRECATED_UNAVAILABLE_SUPPRESS;
+ break;
+ }
+ }
+#endif
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
decl = grokdeclarator (declarator, declspecs,
NORMAL, initialized, NULL);
@@ -3178,14 +3278,15 @@ finish_decl (tree decl, tree init, tree asmspec_tree)
&& TYPE_DOMAIN (type) == 0
&& TREE_CODE (decl) != TYPE_DECL)
{
- int do_default
+ bool do_default
= (TREE_STATIC (decl)
/* Even if pedantic, an external linkage array
may have incomplete type at first. */
? pedantic && !TREE_PUBLIC (decl)
: !DECL_EXTERNAL (decl));
int failure
- = complete_array_type (type, DECL_INITIAL (decl), do_default);
+ = complete_array_type (&TREE_TYPE (decl), DECL_INITIAL (decl),
+ do_default);
/* Get the completed type made by complete_array_type. */
type = TREE_TYPE (decl);
@@ -3206,14 +3307,12 @@ finish_decl (tree decl, tree init, tree asmspec_tree)
else if (!pedantic && TREE_STATIC (decl) && !TREE_PUBLIC (decl))
DECL_EXTERNAL (decl) = 1;
}
-
- /* TYPE_MAX_VALUE is always one less than the number of elements
- in the array, because we start counting at zero. Therefore,
- warn only if the value is less than zero. */
- else if (pedantic && TYPE_DOMAIN (type) != 0
- && tree_int_cst_sgn (TYPE_MAX_VALUE (TYPE_DOMAIN (type))) < 0)
+ else if (failure == 3)
error ("%Jzero or negative size array %qD", decl, decl);
+ if (DECL_INITIAL (decl))
+ TREE_TYPE (DECL_INITIAL (decl)) = type;
+
layout_decl (decl, 0);
}
@@ -3266,8 +3365,7 @@ finish_decl (tree decl, tree init, tree asmspec_tree)
}
/* If #pragma weak was used, mark the decl weak now. */
- if (current_scope == file_scope)
- maybe_apply_pragma_weak (decl);
+ maybe_apply_pragma_weak (decl);
/* If this is a variable definition, determine its ELF visibility. */
if (TREE_CODE (decl) == VAR_DECL
@@ -3501,17 +3599,19 @@ build_compound_literal (tree type, tree init)
if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type))
{
- int failure = complete_array_type (type, DECL_INITIAL (decl), 1);
-
+ int failure = complete_array_type (&TREE_TYPE (decl),
+ DECL_INITIAL (decl), true);
gcc_assert (!failure);
+
+ type = TREE_TYPE (decl);
+ TREE_TYPE (DECL_INITIAL (decl)) = type;
}
- type = TREE_TYPE (decl);
if (type == error_mark_node || !COMPLETE_TYPE_P (type))
return error_mark_node;
stmt = build_stmt (DECL_EXPR, decl);
- complit = build1 (COMPOUND_LITERAL_EXPR, TREE_TYPE (decl), stmt);
+ complit = build1 (COMPOUND_LITERAL_EXPR, type, stmt);
TREE_SIDE_EFFECTS (complit) = 1;
layout_decl (decl, 0);
@@ -3537,73 +3637,6 @@ build_compound_literal (tree type, tree init)
return complit;
}
-/* Make TYPE a complete type based on INITIAL_VALUE.
- Return 0 if successful, 1 if INITIAL_VALUE can't be deciphered,
- 2 if there was no information (in which case assume 1 if DO_DEFAULT). */
-
-int
-complete_array_type (tree type, tree initial_value, int do_default)
-{
- tree maxindex = NULL_TREE;
- int value = 0;
-
- if (initial_value)
- {
- /* Note MAXINDEX is really the maximum index,
- one less than the size. */
- if (TREE_CODE (initial_value) == STRING_CST)
- {
- int eltsize
- = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
- maxindex = build_int_cst (NULL_TREE,
- (TREE_STRING_LENGTH (initial_value)
- / eltsize) - 1);
- }
- else if (TREE_CODE (initial_value) == CONSTRUCTOR)
- {
- tree elts = CONSTRUCTOR_ELTS (initial_value);
- maxindex = build_int_cst (NULL_TREE, -1);
- for (; elts; elts = TREE_CHAIN (elts))
- {
- if (TREE_PURPOSE (elts))
- maxindex = TREE_PURPOSE (elts);
- else
- maxindex = fold (build2 (PLUS_EXPR, integer_type_node,
- maxindex, integer_one_node));
- }
- }
- else
- {
- /* Make an error message unless that happened already. */
- if (initial_value != error_mark_node)
- value = 1;
-
- /* Prevent further error messages. */
- maxindex = build_int_cst (NULL_TREE, 0);
- }
- }
-
- if (!maxindex)
- {
- if (do_default)
- maxindex = build_int_cst (NULL_TREE, 0);
- value = 2;
- }
-
- if (maxindex)
- {
- TYPE_DOMAIN (type) = build_index_type (maxindex);
-
- gcc_assert (TREE_TYPE (maxindex));
- }
-
- /* Lay out the type now that we can get the real answer. */
-
- layout_type (type);
-
- return value;
-}
-
/* Determine whether TYPE is a structure with a flexible array member,
or a union containing such a structure (possibly recursively). */
@@ -3652,7 +3685,8 @@ check_bitfield_type_and_width (tree *type, tree *width, const char *orig_name)
/* Detect and ignore out of range field width and process valid
field widths. */
- if (TREE_CODE (*width) != INTEGER_CST)
+ if (!INTEGRAL_TYPE_P (TREE_TYPE (*width))
+ || TREE_CODE (*width) != INTEGER_CST)
{
error ("bit-field %qs width not an integer constant", name);
*width = integer_one_node;
@@ -3816,6 +3850,11 @@ grokdeclarator (const struct c_declarator *declarator,
if (decl_context == NORMAL && !funcdef_flag && current_scope->parm_flag)
decl_context = PARM;
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ if (declspecs->unavailable_p)
+ warn_unavailable_use (declspecs->type);
+ else
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
if (declspecs->deprecated_p && deprecated_state != DEPRECATED_SUPPRESS)
warn_deprecated_use (declspecs->type);
@@ -3922,6 +3961,8 @@ grokdeclarator (const struct c_declarator *declarator,
}
else if (storage_class == csc_extern
&& initialized
+ /* APPLE LOCAL private extern */
+ && !declspecs->private_extern_p
&& !funcdef_flag)
{
/* 'extern' with initialization is invalid if not at file scope. */
@@ -4528,6 +4569,14 @@ grokdeclarator (const struct c_declarator *declarator,
if (declspecs->default_int_p)
C_FUNCTION_IMPLICIT_INT (decl) = 1;
+ /* APPLE LOCAL begin private extern */
+ if (declspecs->private_extern_p)
+ {
+ DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
+ DECL_VISIBILITY_SPECIFIED (decl) = 1;
+ }
+ /* APPLE LOCAL end private extern */
+
/* Record presence of `inline', if it is reasonable. */
if (flag_hosted && MAIN_NAME_P (declarator->u.id))
{
@@ -4595,6 +4644,14 @@ grokdeclarator (const struct c_declarator *declarator,
reset later in start_decl. */
DECL_EXTERNAL (decl) = (storage_class == csc_extern);
+ /* APPLE LOCAL begin private extern */
+ if (declspecs->private_extern_p)
+ {
+ DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
+ DECL_VISIBILITY_SPECIFIED (decl) = 1;
+ }
+ /* APPLE LOCAL end private extern */
+
/* At file scope, the presence of a `static' or `register' storage
class specifier, or the absence of all storage class specifiers
makes this declaration a definition (perhaps tentative). Also,
@@ -4632,6 +4689,21 @@ grokdeclarator (const struct c_declarator *declarator,
DECL_REGISTER (decl) = 1;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ if (declspecs->cw_asm_specbit)
+ {
+ /* Record that this is a decl of a CW-style asm function. */
+ if (flag_cw_asm_blocks)
+ {
+ DECL_CW_ASM_FUNCTION (decl) = 1;
+ DECL_CW_ASM_NORETURN (decl) = 0;
+ DECL_CW_ASM_FRAME_SIZE (decl) = -2;
+ }
+ else
+ error ("asm functions not enabled, use `-fasm-blocks'");
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
/* Record constancy and volatility. */
c_apply_type_quals_to_decl (type_quals, decl);
@@ -5644,7 +5716,8 @@ build_enumerator (tree name, tree value)
undeclared identifier) - just ignore the value expression. */
if (value == error_mark_node)
value = 0;
- else if (TREE_CODE (value) != INTEGER_CST)
+ else if (!INTEGRAL_TYPE_P (TREE_TYPE (value))
+ || TREE_CODE (value) != INTEGER_CST)
{
error ("enumerator value for %qE is not an integer constant", name);
value = 0;
@@ -5713,6 +5786,7 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
{
tree decl1, old_decl;
tree restype, resdecl;
+ struct c_label_context *nstack;
current_function_returns_value = 0; /* Assume, until we see it does. */
current_function_returns_null = 0;
@@ -5721,6 +5795,12 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
current_extern_inline = 0;
c_switch_stack = NULL;
+ nstack = XOBNEW (&parser_obstack, struct c_label_context);
+ nstack->labels_def = NULL;
+ nstack->labels_used = NULL;
+ nstack->next = label_context_stack;
+ label_context_stack = nstack;
+
/* Indicate no valid break/continue context by setting these variables
to some non-null, non-label value. We'll notice and emit the proper
error message in c_finish_bc_stmt. */
@@ -5773,11 +5853,13 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
/* Optionally warn of old-fashioned def with no previous prototype. */
if (warn_strict_prototypes
+ && old_decl != error_mark_node
&& TYPE_ARG_TYPES (TREE_TYPE (decl1)) == 0
&& C_DECL_ISNT_PROTOTYPE (old_decl))
warning ("function declaration isn%'t a prototype");
/* Optionally warn of any global def with no previous prototype. */
else if (warn_missing_prototypes
+ && old_decl != error_mark_node
&& TREE_PUBLIC (decl1)
&& !MAIN_NAME_P (DECL_NAME (decl1))
&& C_DECL_ISNT_PROTOTYPE (old_decl))
@@ -5785,7 +5867,9 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
/* Optionally warn of any def with no previous prototype
if the function has already been used. */
else if (warn_missing_prototypes
- && old_decl != 0 && TREE_USED (old_decl)
+ && old_decl != 0
+ && old_decl != error_mark_node
+ && TREE_USED (old_decl)
&& TYPE_ARG_TYPES (TREE_TYPE (old_decl)) == 0)
warning ("%J%qD was used with no prototype before its definition",
decl1, decl1);
@@ -5798,7 +5882,9 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
/* Optionally warn of any def with no previous declaration
if the function has already been used. */
else if (warn_missing_declarations
- && old_decl != 0 && TREE_USED (old_decl)
+ && old_decl != 0
+ && old_decl != error_mark_node
+ && TREE_USED (old_decl)
&& C_DECL_IMPLICIT (old_decl))
warning ("%J%qD was used with no declaration before its definition",
decl1, decl1);
@@ -5888,6 +5974,13 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
current_function_decl = pushdecl (decl1);
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ /* Build a mapping between this decl and the per-function options in
+ effect at this point. */
+
+ record_func_cl_pf_opts_mapping (current_function_decl);
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
push_scope ();
declare_parm_level ();
@@ -5909,6 +6002,16 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator,
DECL_IGNORED_P (resdecl) = 1;
DECL_RESULT (current_function_decl) = resdecl;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* If this was a function declared as an assembly function, change
+ the state to expect to see C decls, possibly followed by assembly
+ code. */
+ if (DECL_CW_ASM_FUNCTION (current_function_decl))
+ {
+ cw_asm_state = cw_asm_decls;
+ cw_asm_in_decl = 0;
+ }
+ /* APPLE LOCAL end CW asm blocks */
start_fname_decls ();
return 1;
@@ -6296,6 +6399,8 @@ finish_function (void)
{
tree fndecl = current_function_decl;
+ label_context_stack = label_context_stack->next;
+
if (TREE_CODE (fndecl) == FUNCTION_DECL
&& targetm.calls.promote_prototypes (TREE_TYPE (fndecl)))
{
@@ -6751,6 +6856,8 @@ build_null_declspecs (void)
ret->tag_defined_p = false;
ret->explicit_signed_p = false;
ret->deprecated_p = false;
+ /* APPLE LOCAL "unavailable" attribute (radar 2809697) */
+ ret->unavailable_p = false;
ret->default_int_p = false;
ret->long_p = false;
ret->long_long_p = false;
@@ -6763,6 +6870,10 @@ build_null_declspecs (void)
ret->const_p = false;
ret->volatile_p = false;
ret->restrict_p = false;
+ /* APPLE LOCAL CW asm blocks */
+ ret->cw_asm_specbit = false;
+ /* APPLE LOCAL private extern */
+ ret->private_extern_p = false;
return ret;
}
@@ -6811,6 +6922,11 @@ declspecs_add_type (struct c_declspecs *specs, struct c_typespec spec)
if (TREE_DEPRECATED (type))
specs->deprecated_p = true;
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ if (TREE_UNAVAILABLE (type))
+ specs->unavailable_p = true;
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
+
/* Handle type specifier keywords. */
if (TREE_CODE (type) == IDENTIFIER_NODE && C_IS_RESERVED_WORD (type))
{
@@ -7110,6 +7226,12 @@ declspecs_add_scspec (struct c_declspecs *specs, tree scspec)
IDENTIFIER_POINTER (scspec));
switch (i)
{
+ /* APPLE LOCAL begin CW asm blocks */
+ case RID_ASM:
+ dupe = specs->cw_asm_specbit;
+ specs->cw_asm_specbit = true;
+ break;
+ /* APPLE LOCAL end CW asm blocks */
case RID_INLINE:
/* C99 permits duplicate inline. Although of doubtful utility,
it seems simplest to permit it in gnu89 mode as well, as
@@ -7138,6 +7260,15 @@ declspecs_add_scspec (struct c_declspecs *specs, tree scspec)
if (specs->thread_p)
error ("%<__thread%> before %<extern%>");
break;
+ /* APPLE LOCAL begin private extern */
+ case RID_PRIVATE_EXTERN:
+ specs->private_extern_p = true;
+ n = csc_extern;
+ /* Diagnose "__thread extern". */
+ if (specs->thread_p)
+ error ("%<__thread%> before %<private_extern%>");
+ break;
+ /* APPLE LOCAL end private extern */
case RID_REGISTER:
n = csc_register;
break;
@@ -7415,4 +7546,21 @@ c_write_global_declarations (void)
cgraph_optimize ();
}
+/* APPLE LOCAL begin CW asm blocks */
+/* Look for a struct or union tag, but quietly; don't complain if neither
+ is found, and don't autocreate. Used to identify struct/union tags
+ mentioned in CW asm operands. */
+tree
+lookup_struct_or_union_tag (tree typename)
+{
+ tree rslt = lookup_tag (RECORD_TYPE, typename, 0);
+
+ pending_invalid_xref = 0;
+ if (!rslt)
+ rslt = lookup_tag (UNION_TYPE, typename, 0);
+ pending_invalid_xref = 0;
+ return rslt;
+}
+/* APPLE LOCAL end CW asm blocks */
+
#include "gt-c-decl.h"
diff --git a/gcc/c-incpath.c b/gcc/c-incpath.c
index 62680bda14a..5896349f679 100644
--- a/gcc/c-incpath.c
+++ b/gcc/c-incpath.c
@@ -29,6 +29,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "intl.h"
#include "c-incpath.h"
#include "cppdefault.h"
+/* APPLE LOCAL headermaps 3871393 */
+#include "errors.h"
/* Windows does not natively support inodes, and neither does MSDOS.
Cygwin's emulation can generate non-unique inodes, so don't use it.
@@ -165,6 +167,168 @@ add_standard_paths (const char *sysroot, const char *iprefix, int cxx_stdinc)
}
}
+
+/* APPLE LOCAL begin headermaps 3871393 */
+/* Private function that hashes the contents of the null-terminated
+ string in a case-insensitive way. For use by headermaps only. */
+
+static inline
+uint32 hmap_hash_string (const char *str)
+{
+ const char *sp;
+ unsigned hash_code = 0;
+
+ for (sp = str; *sp; sp++)
+ hash_code += TOLOWER (*(const unsigned char *)sp) * 13;
+ return hash_code;
+}
+
+/* Private function that case-insensitively compares the null-
+ terminated string STR1 with the null-terminated string STR2.
+ Returns 1 if equal, 0 if not. For use by headermaps only. */
+
+static inline unsigned
+hmap_compare_strings (const char *str1, const char *str2)
+{
+ const char *s1p;
+ const char *s2p;
+
+ for (s1p = str1, s2p = str2; *s1p && *s2p; s1p++, s2p++)
+ {
+ if (TOLOWER (*s1p) != TOLOWER (*s2p))
+ return 0;
+ }
+ return (*s1p == '\0' && *s2p == '\0');
+}
+
+/* Attempts to load a headermap from the file at path FILEPATH, and
+ returns a pointer to the loaded data. Returns NULL if for any
+ reason the headermap cannot be loaded. This function is silent if
+ the given file does not appear to be a headermap; this is useful
+ for checking whether or not it in fact is. */
+
+static struct hmap_header_map *
+hmap_load_header_map (const char *filepath)
+{
+ struct hmap_header_map *headermap = NULL;
+
+ if (filepath != NULL && filepath[0] != '\0')
+ {
+ FILE * f;
+ struct stat f_info;
+
+ /* Try to open the file for reading. */
+ f = fopen (filepath, "rb");
+ if (f != NULL)
+ {
+ /* If it is a regular file and if it is large enough to be a header-
+ map, see if it really is one. */
+ if (fstat (fileno (f), &f_info) == 0 && S_ISREG(f_info.st_mode)
+ && f_info.st_size >= sizeof(struct hmap_header_map))
+ {
+ unsigned headermap_size = f_info.st_size;
+
+ headermap = (struct hmap_header_map *) xmalloc (headermap_size);
+ if (fread (headermap, 1, headermap_size, f) != headermap_size)
+ {
+ /* For some reason we could not read the entire file. */
+ fprintf (stderr,
+ "warning: could not read \"%s\" (%s)\n",
+ filepath, xstrerror (errno));
+ free (headermap);
+ headermap = NULL;
+ }
+ if (headermap->version == 1 && headermap->_reserved == 0)
+ {
+ /* It might be a headermap. */
+ if (headermap->magic == HMAP_OPPOSITE_ENDIANNESS_MAGIC)
+ {
+ /* It's a headermap, but has the wrong endianness. */
+ fprintf (stderr,
+ "warning: headermap \"%s\" has incompatible endianness\n",
+ filepath);
+ free (headermap);
+ headermap = NULL;
+ }
+ else if (headermap->magic != HMAP_SAME_ENDIANNESS_MAGIC)
+ {
+ /* It's not a headermap after all. */
+ free (headermap);
+ headermap = NULL;
+ }
+ }
+ else
+ {
+ /* It's not a headermap after all. */
+ free (headermap);
+ headermap = NULL;
+ }
+ }
+ fclose (f);
+ }
+ }
+ return headermap;
+}
+
+/* Returns a pointer to a malloced string that contains the real pathname
+ to the file, given the DIR that represents the headermap and given the
+ name to be looked up. This function looks in the headermap associated
+ with DIR, if any. If there is no headermap associated with DIR, or if
+ it does not contain FILENAME, this function returns NULL. The CONSTRUCT
+ field of a cpp_dir that represents a headermap points to this function. */
+
+static char *
+hmap_construct_pathname (const char *filename, cpp_dir *dir)
+{
+ if (dir->header_map)
+ {
+ struct hmap_header_map *headermap;
+ const char *strings;
+ struct hmap_bucket *buckets;
+ uint32 bucket_mask;
+ uint32 i;
+ uint32 key_offset;
+
+ headermap = (struct hmap_header_map *)dir->header_map;
+ strings = ((const char *)headermap) + headermap->strings_offset;
+ buckets = headermap->buckets;
+ bucket_mask = headermap->capacity-1;
+ i = hmap_hash_string (filename) & bucket_mask;
+ while ((key_offset = buckets[i].key) != HMAP_NOT_A_KEY)
+ {
+ if (hmap_compare_strings (filename, strings+key_offset))
+ {
+ char *result_path;
+ unsigned prefix_length;
+ unsigned suffix_length;
+
+ if (strcmp (filename, strings+key_offset) != 0)
+ warning ("mismatched case in filenames, wanted \"%s\" but found \"%s\"",
+ filename, strings+key_offset);
+
+ prefix_length = strlen(strings + buckets[i].value.prefix);
+ suffix_length = strlen(strings + buckets[i].value.suffix);
+ result_path = xmalloc(prefix_length + suffix_length + 1);
+ memcpy(result_path,
+ strings + buckets[i].value.prefix,
+ prefix_length);
+ memcpy(result_path + prefix_length,
+ strings + buckets[i].value.suffix,
+ suffix_length);
+ result_path[prefix_length + suffix_length] = '\0';
+ return result_path;
+ }
+ i = (i + 1) & bucket_mask;
+ }
+ /* didn't find header in header map -- return NULL. */
+ return NULL;
+ }
+ else
+ return NULL;
+}
+/* APPLE LOCAL end headermaps 3871393 */
+
+
/* For each duplicate path in chain HEAD, keep just the first one.
Remove each path in chain HEAD that also exists in chain SYSTEM.
Set the NEXT pointer of the last path in the resulting chain to
@@ -201,8 +365,35 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
}
}
else if (!S_ISDIR (st.st_mode))
- cpp_error_with_line (pfile, CPP_DL_ERROR, 0, 0,
- "%s: not a directory", cur->name);
+ /* APPLE LOCAL begin headermaps 3871393 */
+ {
+ /* Only check for headermap if this is a regular file and if there
+ is no path-constructor function in CUR. */
+ if (S_ISREG (st.st_mode) && !cur->construct)
+ {
+ /* Try to load the file as a headermap. We will get back NULL
+ if this fails, and there won't be any warnings/errors emitted
+ unless the load function is fairly sure it's dealing with a
+ headermap file that is malformed. */
+ struct hmap_header_map *header_map;
+
+ header_map = hmap_load_header_map (cur->name);
+ if (header_map)
+ {
+ /* Successfully loaded a headermap. Store a pointer to it
+ and set up the construct function pointer in cur. */
+ cur->header_map = header_map;
+ cur->construct = hmap_construct_pathname;
+ pcur = &cur->next;
+ continue;
+ }
+ }
+
+ /* If we fall through to here, it's some other kind of file. */
+ cpp_error_with_line (pfile, CPP_DL_ERROR, 0, 0,
+ "%s: not a directory", cur->name);
+ }
+ /* APPLE LOCAL end headermaps 3871393 */
else
{
INO_T_COPY (cur->ino, st.st_ino);
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index f5425ce49e9..d2ced37a639 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -39,7 +39,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "intl.h"
#include "tm_p.h"
#include "splay-tree.h"
+/* APPLE LOCAL 4133801 */
+#include "langhooks.h"
#include "debug.h"
+/* APPLE LOCAL AltiVec */
+#include "../libcpp/internal.h"
/* We may keep statistics about how long which files took to compile. */
static int header_time, body_time;
@@ -64,6 +68,18 @@ int c_lex_string_translate = 1;
unmolested (no concatenation, no translation). */
bool c_lex_return_raw_strings = false;
+/* APPLE LOCAL begin CW asm blocks */
+/* This points to the token that we're going to save briefly while
+ returning EOL/BOL tokens. (This is global but static instead
+ static in c_lex() so as to avoid pointless init in non-asm
+ case.) */
+static const cpp_token *cw_asm_saved_token = NULL;
+/* This tracks recursion in c_lex calls. Lexer recursion can happen
+ in pragma processing for instance, but we don't any of the asm
+ special handling to be active then. */
+static int c_lex_depth;
+/* APPLE LOCAL end CW asm blocks */
+
static tree interpret_integer (const cpp_token *, unsigned int);
static tree interpret_float (const cpp_token *, unsigned int);
static enum integer_type_kind narrowest_unsigned_type
@@ -188,7 +204,8 @@ cb_ident (cpp_reader * ARG_UNUSED (pfile),
{
/* Convert escapes in the string. */
cpp_string cstr = { 0, 0 };
- if (cpp_interpret_string (pfile, str, 1, &cstr, false))
+ /* APPLE LOCAL pascal strings */
+ if (cpp_interpret_string (pfile, str, 1, &cstr, false, false))
{
ASM_OUTPUT_IDENT (asm_out_file, (const char *) cstr.text);
free ((void *) cstr.text);
@@ -238,7 +255,8 @@ fe_file_change (const struct line_map *new_map)
input_line = included_at;
push_srcloc (new_map->to_file, 1);
#endif
- (*debug_hooks->start_source_file) (included_at, new_map->to_file);
+ /* APPLE LOCAL 4133801 */
+ lang_hooks.start_source_file (included_at, new_map->to_file);
#ifndef NO_IMPLICIT_EXTERN_C
if (c_header_level)
++c_header_level;
@@ -261,8 +279,8 @@ fe_file_change (const struct line_map *new_map)
}
#endif
pop_srcloc ();
-
- (*debug_hooks->end_source_file) (new_map->to_line);
+ /* APPLE LOCAL 4133801 */
+ lang_hooks.end_source_file (new_map->to_line, new_map->to_file);
}
update_header_times (new_map->to_file);
@@ -337,12 +355,101 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
static bool no_more_pch;
const cpp_token *tok;
enum cpp_ttype type;
+ /* APPLE LOCAL CW asm blocks C++ */
+ const cpp_token *lasttok;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Make a local copy of the flag for efficiency, since the compiler can't
+ figure that it won't change during a compilation. */
+ int flag_cw_asm_blocks_local = flag_cw_asm_blocks;
+ if (flag_cw_asm_blocks_local)
+ ++c_lex_depth;
+ /* APPLE LOCAL end CW asm blocks */
timevar_push (TV_CPP);
retry:
+ /* APPLE LOCAL begin CW asm blocks */
+ if (cw_asm_at_bol)
+ {
+ cw_asm_at_bol = 0;
+ --c_lex_depth;
+ timevar_pop (TV_CPP);
+ return CPP_BOL;
+ }
+ /* If there's a token we saved while returning the special BOL
+ token, return it now. */
+ if (cw_asm_saved_token)
+ {
+ tok = cw_asm_saved_token;
+ type = tok->type;
+ cw_asm_saved_token = NULL;
+ goto bypass;
+ }
+ /* APPLE LOCAL end CW asm blocks */
tok = cpp_get_token (parse_in);
type = tok->type;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* This test should be as efficient as possible, because it affects
+ all lexing with or without CW asm enabled. */
+ if (flag_cw_asm_blocks_local && cw_asm_state != cw_asm_none && c_lex_depth == 1
+ && type != CPP_PADDING)
+ {
+ /* "}" switches us out of our special mode. */
+ if (tok->type == CPP_CLOSE_BRACE && cw_asm_state >= cw_asm_decls)
+ {
+ cw_asm_state = cw_asm_none;
+ cw_asm_saved_token = tok;
+ cw_asm_at_bol = 0;
+ --c_lex_depth;
+ timevar_pop (TV_CPP);
+ return CPP_EOL;
+ }
+
+ /* This is tricky. We're only ready to start parsing assembly
+ instructions if we're in the asm block, we're not in the
+ middle of parsing a C decl, and the next token is plausibly
+ the beginning of an asm line. This works because if we have
+ a "typedef int nop", a nop at the beginning of a line should
+ be taken as an instruction rather than a declaration of type
+ nop. (Doesn't have to go this way, but it's how CW works.)
+ We're not quite as good as CW yet, because CW knows about the
+ complete list of valid opcodes, and will try to take anything
+ as a decl that is not in the opcode list. */
+ if (cw_asm_state == cw_asm_decls
+ && !cw_asm_in_decl)
+ {
+ if ((tok->flags & BOL)
+ && (tok->type == CPP_ATSIGN
+ || tok->type == CPP_DOT
+ || (tok->type == CPP_NAME
+ && (*value = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok->val.node)))
+ && !cw_asm_typename_or_reserved (*value))))
+ {
+ cw_asm_state = cw_asm_asm;
+ inside_cw_asm_block = 1;
+ cw_asm_at_bol = 1;
+ clear_cw_asm_labels ();
+ }
+ else
+ {
+ cw_asm_in_decl = 1;
+ }
+ }
+ /* If we're in the asm block, save the token at the beginning of the
+ line and return a beginning-of-line token instead. */
+ if (cw_asm_state == cw_asm_asm && (tok->flags & BOL))
+ {
+ cw_asm_saved_token = tok;
+ cw_asm_at_bol = !cw_asm_at_bol;
+ --c_lex_depth;
+ /* In between lines, return first the EOL. */
+ timevar_pop (TV_CPP);
+ return (cw_asm_at_bol ? CPP_EOL : CPP_BOL);
+ }
+ }
+ bypass:
+ /* APPLE LOCAL end CW asm blocks */
+
retry_after_at:
switch (type)
{
@@ -379,6 +486,16 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
break;
case CPP_ATSIGN:
+ /* APPLE LOCAL begin CW asm blocks */
+ if (cw_asm_state >= cw_asm_decls)
+ {
+ /* Return the @-sign verbatim. */
+ *value = NULL_TREE;
+ break;
+ }
+ lasttok = tok;
+ /* APPLE LOCAL end CW asm blocks */
+
/* An @ may give the next token special significance in Objective-C. */
if (c_dialect_objc ())
{
@@ -407,20 +524,51 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
/* FALLTHROUGH */
default:
+ /* APPLE LOCAL begin CW asm blocks C++ */
+ if (flag_cw_asm_blocks_local)
+ {
+ /* This is necessary for C++, as we don't have the tight
+ integration between the lexer and the parser... */
+ cw_asm_saved_token = tok;
+ /* Return the @-sign verbatim. */
+ *value = NULL;
+ tok = lasttok;
+ type = tok->type;
+ break;
+ }
+ /* APPLE LOCAL end CW asm blocks C++ */
+
/* ... or not. */
error ("%Hstray %<@%> in program", &atloc);
goto retry_after_at;
}
break;
}
-
+ /* APPLE LOCAL begin CW asm blocks C++ */
+ if (flag_cw_asm_blocks_local)
+ {
+ do
+ tok = cpp_get_token (parse_in);
+ while (tok->type == CPP_PADDING);
+ /* This is necessary for C++, as we don't have the tight
+ integration between the lexer and the parser... */
+ cw_asm_saved_token = tok;
+ /* Return the @-sign verbatim. */
+ *value = NULL;
+ tok = lasttok;
+ type = tok->type;
+ break;
+ }
+ /* APPLE LOCAL end CW asm blocks C++ */
+
/* FALLTHROUGH */
case CPP_HASH:
case CPP_PASTE:
{
unsigned char name[4];
- *cpp_spell_token (parse_in, tok, name) = 0;
+ /* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+ *cpp_spell_token (parse_in, tok, name, false) = 0;
error ("stray %qs in program", name);
}
@@ -459,6 +607,26 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
*value = build_string (tok->val.str.len, (char *) tok->val.str.text);
break;
+ /* APPLE LOCAL begin CW asm blocks */
+ case CPP_MULT:
+ if (inside_cw_asm_block)
+ {
+ /* Check and replace use of '*' with '.' if '*' is followed by '-'
+ or '+'. This is to allow "b *+8" which is disallwed by darwin's
+ assembler but nevertheless is needed to be compatible with CW tools. */
+ lasttok = tok;
+ do
+ tok = cpp_get_token (parse_in);
+ while (tok->type == CPP_PADDING);
+ cw_asm_saved_token = tok;
+ if (tok->type == CPP_PLUS || tok->type == CPP_MINUS)
+ type = CPP_DOT;
+ tok = lasttok;
+ }
+ *value = NULL_TREE;
+ break;
+ /* APPLE LOCAL end CW asm blocks */
+
/* These tokens should not be visible outside cpplib. */
case CPP_HEADER_NAME:
case CPP_COMMENT:
@@ -473,6 +641,11 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
if (cpp_flags)
*cpp_flags = tok->flags;
+ /* APPLE LOCAL begin CW asm blocks */
+ if (flag_cw_asm_blocks_local)
+ --c_lex_depth;
+ /* APPLE LOCAL end CW asm blocks */
+
if (!no_more_pch)
{
no_more_pch = true;
@@ -713,6 +886,8 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string)
tree value;
bool wide = false;
size_t concats = 0;
+ /* APPLE LOCAL pascal strings */
+ bool pascal_p = false;
struct obstack str_ob;
cpp_string istr;
@@ -723,6 +898,11 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string)
if (tok->type == CPP_WSTRING)
wide = true;
+ /* APPLE LOCAL begin pascal strings */
+ else if (CPP_OPTION (parse_in, pascal_strings)
+ && str.text[1] == '\\' && str.text[2] == 'p')
+ pascal_p = true;
+ /* APPLE LOCAL end pascal strings */
retry:
tok = cpp_get_token (parse_in);
@@ -762,12 +942,18 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string)
if (concats)
strs = (cpp_string *) obstack_finish (&str_ob);
+ /* APPLE LOCAL begin pascal strings */
+ if (wide || objc_string)
+ pascal_p = false;
+ /* APPLE LOCAL end pascal strings */
+
if (concats && !objc_string && warn_traditional && !in_system_header)
warning ("traditional C rejects string constant concatenation");
if ((c_lex_string_translate
? cpp_interpret_string : cpp_interpret_string_notranslate)
- (parse_in, strs, concats + 1, &istr, wide))
+ /* APPLE LOCAL pascal strings */
+ (parse_in, strs, concats + 1, &istr, wide, pascal_p))
{
value = build_string (istr.len, (char *) istr.text);
free ((void *) istr.text);
@@ -776,7 +962,8 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string)
{
int xlated = cpp_interpret_string_notranslate (parse_in, strs,
concats + 1,
- &istr, wide);
+ /* APPLE LOCAL pascal strings */
+ &istr, wide, false);
/* Assume that, if we managed to translate the string above,
then the untranslated parsing will always succeed. */
gcc_assert (xlated);
@@ -808,7 +995,11 @@ lex_string (const cpp_token *tok, tree *valp, bool objc_string)
value = build_string (1, "");
}
- TREE_TYPE (value) = wide ? wchar_array_type_node : char_array_type_node;
+ /* APPLE LOCAL begin pascal strings */
+ TREE_TYPE (value) = wide ? wchar_array_type_node
+ : pascal_p ? pascal_string_type_node
+ : char_array_type_node;
+ /* APPLE LOCAL end pascal strings */
*valp = fix_string_type (value);
if (concats)
diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c
index 89fb409878e..8a12d21837e 100644
--- a/gcc/c-objc-common.c
+++ b/gcc/c-objc-common.c
@@ -61,7 +61,8 @@ c_disregard_inline_limits (tree fn)
return 1;
return (!flag_really_no_inline && DECL_DECLARED_INLINE_P (fn)
- && DECL_EXTERNAL (fn));
+ /* APPLE LOCAL obey inline */
+ && (DECL_EXTERNAL (fn) || flag_obey_inline));
}
int
diff --git a/gcc/c-objc-common.h b/gcc/c-objc-common.h
index 4c7be6327ab..5107dce068d 100644
--- a/gcc/c-objc-common.h
+++ b/gcc/c-objc-common.h
@@ -1,5 +1,5 @@
/* Language hooks common to C and ObjC front ends.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
Contributed by Ziemowit Laski <zlaski@apple.com>
This file is part of GCC.
@@ -117,6 +117,8 @@ extern void c_initialize_diagnostics (diagnostic_context *);
#define LANG_HOOKS_TYPE_PROMOTES_TO c_type_promotes_to
#undef LANG_HOOKS_REGISTER_BUILTIN_TYPE
#define LANG_HOOKS_REGISTER_BUILTIN_TYPE c_register_builtin_type
+#undef LANG_HOOKS_TO_TARGET_CHARSET
+#define LANG_HOOKS_TO_TARGET_CHARSET c_common_to_target_charset
/* The C front end's scoping structure is very different from
that expected by the language-independent code; it is best
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index 36c3f5bd68e..27ce7470f2b 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -219,6 +219,13 @@ c_common_init_options (unsigned int argc, const char **argv)
before passing on command-line options to cpplib. */
cpp_opts->warn_dollars = 0;
+ /* APPLE LOCAL begin -Wfour-char-constants */
+#ifdef WARN_FOUR_CHAR_CONSTANTS
+ /* Warn about 4-char constants everywhere except on Macs. */
+ cpp_opts->warn_four_char_constants = WARN_FOUR_CHAR_CONSTANTS;
+#endif
+ /* APPLE LOCAL end -Wfour-char-constants */
+
flag_const_strings = c_dialect_cxx ();
flag_exceptions = c_dialect_cxx ();
warn_pointer_arith = c_dialect_cxx ();
@@ -261,8 +268,16 @@ c_common_handle_option (size_t scode, const char *arg, int value)
result = 0;
break;
+ /* APPLE LOCAL begin ss2 */
+ case OPT_fsave_repository_:
+ flag_save_repository = 1;
+ break;
+ /* APPLE LOCAL end ss2 */
+
case OPT__output_pch_:
pch_file = arg;
+ /* APPLE LOCAL ss2 */
+ flag_pch_file = 1;
break;
case OPT_A:
@@ -349,6 +364,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
flag_no_line_commands = 1;
break;
+ /* APPLE LOCAL begin -Wno-#warnings */
+ case OPT_W_warnings:
+ cpp_opts->no_pound_warnings = !value;
+ break;
+ /* APPLE LOCAL end -Wno-#warnings */
+
case OPT_fworking_directory:
flag_working_directory = value;
break;
@@ -358,12 +379,17 @@ c_common_handle_option (size_t scode, const char *arg, int value)
break;
case OPT_Wall:
+ /* APPLE LOCAL -Wmost */
+ case OPT_Wmost:
set_Wunused (value);
set_Wformat (value);
set_Wimplicit (value);
warn_char_subscripts = value;
warn_missing_braces = value;
- warn_parentheses = value;
+ /* APPLE LOCAL begin -Wmost --dpatel */
+ if (code != OPT_Wmost)
+ warn_parentheses = value;
+ /* APPLE LOCAL end -Wmost --dpatel */
warn_return_type = value;
warn_sequence_point = value; /* Was C only. */
if (c_dialect_cxx ())
@@ -421,6 +447,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
global_dc->warning_as_error_requested = value;
break;
+ /* APPLE LOCAL begin -Wextra-tokens */
+ case OPT_Wextra_tokens:
+ cpp_opts->warn_extra_tokens = value;
+ break;
+ /* APPLE LOCAL end -Wextra-tokens */
+
case OPT_Werror_implicit_function_declaration:
mesg_implicit_function_declaration = 2;
break;
@@ -433,6 +465,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
set_Wformat (atoi (arg));
break;
+ /* APPLE LOCAL begin -Wfour-char-constants */
+ case OPT_Wfour_char_constants:
+ cpp_opts->warn_four_char_constants = value;
+ break;
+ /* APPLE LOCAL end -Wfour-char-constants */
+
case OPT_Wimplicit:
set_Wimplicit (value);
break;
@@ -460,6 +498,27 @@ c_common_handle_option (size_t scode, const char *arg, int value)
cpp_opts->warn_multichar = value;
break;
+ /* APPLE LOCAL begin -Wnewline-eof */
+ case OPT_Wnewline_eof:
+ cpp_opts->warn_newline_at_eof = value;
+ break;
+ /* APPLE LOCAL end -Wnewline-eof */
+
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ case OPT_Wnormalized_:
+ if (!value || (arg && strcasecmp (arg, "none") == 0))
+ cpp_opts->warn_normalize = normalized_none;
+ else if (!arg || strcasecmp (arg, "nfkc") == 0)
+ cpp_opts->warn_normalize = normalized_KC;
+ else if (strcasecmp (arg, "id") == 0)
+ cpp_opts->warn_normalize = normalized_identifier_C;
+ else if (strcasecmp (arg, "nfc") == 0)
+ cpp_opts->warn_normalize = normalized_C;
+ else
+ error ("argument %qs to %<-Wnormalized%> not recognized", arg);
+ break;
+
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
case OPT_Wreturn_type:
warn_return_type = value;
break;
@@ -508,6 +567,11 @@ c_common_handle_option (size_t scode, const char *arg, int value)
set_std_cxx98 (true);
break;
+ /* APPLE LOCAL begin fat builds */
+ case OPT_arch:
+ break;
+ /* APPLE LOCAL end fat builds */
+
case OPT_d:
handle_OPT_d (arg);
break;
@@ -548,6 +612,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
flag_no_asm = !value;
break;
+ /* APPLE LOCAL begin CW asm blocks */
+ case OPT_fasm_blocks:
+ flag_cw_asm_blocks = value;
+ break;
+ /* APPLE LOCAL end CW asm blocks */
+
case OPT_fbuiltin:
flag_no_builtin = !value;
break;
@@ -559,6 +629,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
disable_builtin_function (arg);
break;
+ /* APPLE LOCAL begin disable_typechecking_for_spec_flag */
+ case OPT_fdisable_typechecking_for_spec:
+ disable_typechecking_for_spec_flag = value;
+ break;
+ /* APPLE LOCAL end disable_typechecking_for_spec_flag */
+
case OPT_fdollars_in_identifiers:
cpp_opts->dollars_in_ident = value;
break;
@@ -602,6 +678,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
flag_signed_char = !value;
break;
+ /* APPLE LOCAL begin structor decloning */
+ case OPT_fclone_structors:
+ flag_clone_structors = value;
+ break;
+ /* APPLE LOCAL end structor decloning */
+
case OPT_fcheck_new:
flag_check_new = value;
break;
@@ -682,6 +764,12 @@ c_common_handle_option (size_t scode, const char *arg, int value)
flag_no_nonansi_builtin = !value;
break;
+ /* APPLE LOCAL begin mainline */
+ case OPT_fobjc_call_cxx_cdtors:
+ flag_objc_call_cxx_cdtors = value;
+ break;
+ /* APPLE LOCAL end mainline */
+
case OPT_fobjc_exceptions:
flag_objc_exceptions = value;
break;
@@ -712,6 +800,8 @@ c_common_handle_option (size_t scode, const char *arg, int value)
case OPT_fpreprocessed:
cpp_opts->preprocessed = value;
+ /* APPLE LOCAL private extern Radar 2872481 --ilr */
+ flag_preprocessed = value;
break;
case OPT_freplace_objc_classes:
@@ -854,6 +944,13 @@ c_common_handle_option (size_t scode, const char *arg, int value)
print_struct_values = 1;
break;
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ case OPT_print_pch_checksum:
+ c_common_print_pch_checksum (stdout);
+ exit_after_options = true;
+ break;
+
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
case OPT_remap:
cpp_opts->remap = 1;
break;
@@ -904,6 +1001,13 @@ c_common_handle_option (size_t scode, const char *arg, int value)
case OPT_v:
verbose = true;
break;
+
+ /* APPLE LOCAL begin -fast or -fastf or -fastcp */
+ case OPT_fast:
+ case OPT_fastcp:
+ case OPT_fastf:
+ break;
+ /* APPLE LOCAL end -fast or -fastf or -fastcp */
}
return result;
@@ -921,6 +1025,12 @@ c_common_post_options (const char **pfilename)
in_fnames = XNEWVEC (const char *, 1);
in_fnames[0] = "";
}
+ /* APPLE LOCAL begin predictive compilation */
+ else if (predictive_compilation >= 0)
+ {
+ set_stdin_option(parse_in, predictive_compilation);
+ }
+ /* APPLE LOCAL end predictive compilation */
else if (strcmp (in_fnames[0], "-") == 0)
in_fnames[0] = "";
@@ -978,6 +1088,11 @@ c_common_post_options (const char **pfilename)
if (warn_missing_format_attribute && !warn_format)
warning ("-Wmissing-format-attribute ignored without -Wformat");
+ /* C99 requires special handling of complex multiplication and division;
+ -ffast-math and -fcx-limited-range are handled in process_options. */
+ if (flag_isoc99)
+ flag_complex_method = 2;
+
if (flag_preprocess_only)
{
/* Open the output now. We must do so even if flag_no_output is
@@ -1052,6 +1167,11 @@ c_common_init (void)
are known. */
cpp_init_iconv (parse_in);
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ if (version_flag)
+ c_common_print_pch_checksum (stderr);
+
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
if (flag_preprocess_only)
{
finish_options ();
@@ -1084,13 +1204,18 @@ c_common_parse_file (int set_yydebug)
i = 0;
for (;;)
{
+ /* Start the main input file, if the debug writer wants it. */
+ if (debug_hooks->start_end_main_source_file)
+ (*debug_hooks->start_source_file) (0, this_input_filename);
finish_options ();
pch_init ();
push_file_scope ();
c_parse_file ();
finish_file ();
pop_file_scope ();
-
+ /* And end the main input file, if the debug writer wants it */
+ if (debug_hooks->start_end_main_source_file)
+ (*debug_hooks->end_source_file) (0);
if (++i >= num_in_fnames)
break;
cpp_undef_all (parse_in);
@@ -1385,13 +1510,19 @@ cb_dir_change (cpp_reader * ARG_UNUSED (pfile), const char *dir)
static void
set_std_c89 (int c94, int iso)
{
- cpp_set_lang (parse_in, c94 ? CLK_STDC94: iso ? CLK_STDC89: CLK_GNUC89);
+ /* APPLE LOCAL begin preprocess .s files (radar #3191171) */
+ /* Do not override CLK_ASM if set */
+ if (cpp_opts->lang != CLK_ASM)
+ cpp_set_lang (parse_in, c94 ? CLK_STDC94: iso ? CLK_STDC89: CLK_GNUC89);
+ /* APPLE LOCAL end preprocess .s files (radar #3191171) */
flag_iso = iso;
flag_no_asm = iso;
flag_no_gnu_keywords = iso;
flag_no_nonansi_builtin = iso;
flag_isoc94 = c94;
flag_isoc99 = 0;
+ /* APPLE LOCAL fwritable strings */
+ flag_writable_strings = 0;
}
/* Set the C 99 standard (without GNU extensions if ISO). */
@@ -1404,6 +1535,8 @@ set_std_c99 (int iso)
flag_iso = iso;
flag_isoc99 = 1;
flag_isoc94 = 1;
+ /* APPLE LOCAL fwritable strings */
+ flag_writable_strings = 0;
}
/* Set the C++ 98 standard (without GNU extensions if ISO). */
diff --git a/gcc/c-parse.in b/gcc/c-parse.in
index fe0d51709eb..27aee72ac4c 100644
--- a/gcc/c-parse.in
+++ b/gcc/c-parse.in
@@ -29,7 +29,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
written by AT&T, but I have never seen it. */
@@ifc
-%expect 13 /* shift/reduce conflicts, and no reduce/reduce conflicts. */
+/* APPLE LOCAL CW asm blocks */
+%expect 15 /* shift/reduce conflicts, and no reduce/reduce conflicts. */
@@end_ifc
%{
@@ -150,6 +151,14 @@ do { \
%token REALPART IMAGPART VA_ARG CHOOSE_EXPR TYPES_COMPATIBLE_P
%token FUNC_NAME OFFSETOF
+/* APPLE LOCAL begin CW asm blocks */
+/* This token is a pseudo-storage-class. */
+%token CW_ASM_KEYWORD
+%type <ttype> CW_ASM_KEYWORD
+/* These tokens indicate beginning and end of each asm line. */
+%token CW_ASM_BOL CW_ASM_EOL
+/* APPLE LOCAL end CW asm blocks */
+
/* Add precedence rules to solve dangling else s/r conflict */
%nonassoc IF
%nonassoc ELSE
@@ -242,6 +251,17 @@ do { \
%type <arginfotype> parmlist_or_identifiers parmlist_or_identifiers_1
%type <ttype> identifiers_or_typenames
+/* APPLE LOCAL begin CW asm blocks */
+%type <ttype> cw_identifier
+%type <exprtype> cw_asm_expr_no_commas cw_asm_unary_expr
+%type <exprtype> cw_asm_primary
+%type <ttype> cw_asm_operands cw_nonnull_asm_operands
+%type <exprtype> cw_asm_operand
+%type <ttype> cw_asm_stmt single_cw_asm_stmt
+%type <ttype> cw_asm_compstmt cw_asm_compstmt_start
+/*cw_asm_compstmt_nostart */
+/* APPLE LOCAL end CW asm blocks */
+
%type <itype> setspecs setspecs_fp extension
%type <location> save_location
@@ -358,6 +378,8 @@ static int yylexname (void);
static inline int _yylex (void);
static int yylex (void);
static void init_reswords (void);
+/* APPLE LOCAL CW asm blocks */
+static int cw_asm_lineno = 0;
/* Initialization routine for this file. */
void
@@ -683,7 +705,8 @@ primary:
finish_init ();
maybe_warn_string_init (type, init);
- if (pedantic && !flag_isoc99)
+ /* APPLE LOCAL AltiVec */
+ if (pedantic && TREE_CODE (type) != VECTOR_TYPE && !flag_isoc99)
pedwarn ("ISO C90 forbids compound literals");
$$.value = build_compound_literal (type, constructor);
$$.original_code = ERROR_MARK;
@@ -845,7 +868,8 @@ datadecl:
where statement labels are allowed. */
lineno_decl:
save_location decl
- { }
+ /* APPLE LOCAL CW asm blocks */
+ { if (flag_cw_asm_blocks) cw_asm_in_decl = 0; }
;
/* records the type and storage class specs to use for processing
@@ -1419,6 +1443,8 @@ any_word:
scspec:
STATIC
+ /* APPLE LOCAL CW asm blocks */
+ | CW_ASM_KEYWORD
| SCSPEC
;
@@ -2028,6 +2054,11 @@ compstmt_start: '{' { $$ = c_begin_compound_stmt (true); }
compstmt_nostart: '}'
| maybe_label_decls compstmt_contents_nonempty '}'
+ /* APPLE LOCAL begin CW asm blocks */
+ {
+ if (flag_cw_asm_blocks) inside_cw_asm_block = 0;
+ }
+ /* APPLE LOCAL end CW asm blocks */
;
compstmt_contents_nonempty:
@@ -2051,6 +2082,126 @@ compstmt: compstmt_start compstmt_nostart
{ $$ = c_end_compound_stmt ($1, true); }
;
+/* APPLE LOCAL begin CW asm blocks */
+/* A CW-style asm statement is recognized by having a BOL token preceding it. */
+cw_asm_stmt: CW_ASM_BOL save_location cw_asm_stmt_list CW_ASM_EOL
+
+{ $$ = NULL_TREE; }
+ ;
+
+/* A single line may have multiple statements separated by ';'. */
+cw_asm_stmt_list:
+ /* empty */
+ | single_cw_asm_stmt
+ {}
+ | cw_asm_stmt_list ';' single_cw_asm_stmt
+ | cw_asm_stmt_list ';'
+ ;
+
+cw_identifier:
+ identifier
+ | cw_identifier '.'
+ { $$ = cw_get_identifier ($1, "."); }
+ | cw_identifier '+'
+ { $$ = cw_get_identifier ($1, "+"); }
+ | cw_identifier '-'
+ { $$ = cw_get_identifier ($1, "-"); }
+ | '.' identifier
+ { $$ = prepend_char_identifier ($2, '.'); }
+ ;
+
+/* A single statement consists of one or more labels (identified by a
+ leading '@' and/or a trailing ':'), optionally followed by opcode
+ and operands. */
+single_cw_asm_stmt:
+ cw_identifier
+ { cw_asm_lineno = input_line; cw_asm_in_operands = 1; }
+ cw_asm_operands
+ { $$ = cw_asm_stmt ($1, $3, cw_asm_lineno); }
+ | identifier STATIC cw_asm_operand
+ { $$ = cw_asm_entry ($1, $2, $3.value); }
+ | identifier SCSPEC cw_asm_operand
+ { $$ = cw_asm_entry ($1, $2, $3.value); }
+ | cw_asm_label
+ {}
+ | cw_asm_label single_cw_asm_stmt
+ {}
+ ;
+
+cw_asm_label:
+ identifier ':'
+ { cw_asm_label ($1, 0); }
+ | '@' identifier
+ { cw_asm_label ($2, 1); }
+ | '@' identifier ':'
+ { cw_asm_label ($2, 1); }
+ ;
+
+cw_asm_stmts:
+ stmt
+ {}
+ | cw_asm_stmts stmt
+ {}
+ ;
+
+/* An asm block within a function is simpler than asm functions; no
+ declarations are possible, so we switch to the block interior state
+ immediately. */
+cw_asm_compstmt_start: ASM_KEYWORD '{'
+ {
+ if (flag_cw_asm_blocks)
+ {
+ cw_asm_state = cw_asm_asm;
+ inside_cw_asm_block = 1;
+ cw_asm_at_bol = 1;
+ clear_cw_asm_labels ();
+ }
+ else
+ /* This will probably choke badly... */
+ error ("asm blocks not enabled, use `-fasm-blocks'");
+ $$ = c_begin_compound_stmt (true);
+ }
+ ;
+
+cw_asm_compstmt_nostart:
+ '}'
+ | cw_asm_compstmt_contents_nonempty '}'
+ { inside_cw_asm_block = 0; }
+ ;
+
+cw_asm_compstmt_contents_nonempty:
+ cw_asm_stmts
+ | error
+ ;
+
+cw_asm_compstmt: cw_asm_compstmt_start cw_asm_compstmt_nostart
+ { $$ = c_end_compound_stmt ($1, true); }
+ ;
+
+cw_asm_operands:
+ /* empty */
+ { $$ = NULL_TREE; }
+ | cw_nonnull_asm_operands
+ ;
+
+cw_nonnull_asm_operands:
+ cw_asm_operand
+ { $$ = build_tree_list (NULL_TREE, $1.value); }
+ | cw_nonnull_asm_operands ',' cw_asm_operand
+ { $$ = chainon ($1, build_tree_list (NULL_TREE, $3.value)); }
+ ;
+
+/* Alternatively this could go to the regular expr_no_commas, but then
+ all the semantic actions would need to be tweaked to handle the
+ possibility of CW asm coming through. For example, "offset(reg)"
+ would be handled by function call code (bleah). */
+cw_asm_operand: cw_asm_expr_no_commas
+ | cw_asm_operand '(' cw_asm_expr_no_commas ')'
+ { $$.value = cw_asm_build_register_offset ($1.value, $3.value);
+ $$.original_code = ERROR_MARK; }
+ ;
+/* APPLE LOCAL end CW asm blocks */
+
/* The forced readahead in here is because we might be at the end of a
line, and the line and file won't be bumped until yylex absorbs the
first token on the next line. */
@@ -2233,6 +2384,12 @@ stmt_nocomp:
{ $$ = NULL_TREE; }
| switch_statement
{ $$ = NULL_TREE; }
+ /* APPLE LOCAL begin CW asm blocks */
+ | cw_asm_compstmt
+ { $$ = c_finish_expr_stmt ($1); }
+ | cw_asm_stmt
+ { $$ = c_finish_expr_stmt ($1); }
+ /* APPLE LOCAL end CW asm blocks */
| BREAK ';'
{ $$ = c_finish_bc_stmt (&c_break_label, true); }
| CONTINUE ';'
@@ -2441,6 +2598,139 @@ start_string_translation:
{ c_lex_string_translate = 1; }
;
+/* APPLE LOCAL begin CW asm blocks */
+cw_asm_expr_no_commas:
+ cw_asm_unary_expr
+ | cw_asm_expr_no_commas '+' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '-' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '*' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '/' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '%' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas LSHIFT cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas RSHIFT cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas ARITHCOMPARE cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas EQCOMPARE cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '&' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '|' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas '^' cw_asm_expr_no_commas
+ { $$ = parser_build_binary_op ($2, $1, $3); }
+ | cw_asm_expr_no_commas ANDAND
+ { $1.value = c_common_truthvalue_conversion
+ (default_conversion ($1.value));
+ skip_evaluation += $1.value == boolean_false_node; }
+ cw_asm_expr_no_commas
+ { skip_evaluation -= $1.value == boolean_false_node;
+ $$ = parser_build_binary_op (TRUTH_ANDIF_EXPR, $1, $4); }
+ | cw_asm_expr_no_commas OROR
+ { $1.value = c_common_truthvalue_conversion
+ (default_conversion ($1.value));
+ skip_evaluation += $1.value == boolean_true_node; }
+ cw_asm_expr_no_commas
+ { skip_evaluation -= $1.value == boolean_true_node;
+ $$ = parser_build_binary_op (TRUTH_ORIF_EXPR, $1, $4); }
+ ;
+
+cw_asm_unary_expr:
+ cw_asm_primary
+ | '*' cw_asm_unary_expr %prec UNARY
+ { $$.value = build_indirect_ref ($2.value, "unary *");
+ $$.original_code = ERROR_MARK; }
+ | unop cw_asm_unary_expr %prec UNARY
+ {
+ if (TREE_CODE ($2.value) == COMPOUND_EXPR)
+ {
+ tree neg = build_unary_op ($1, TREE_OPERAND ($2.value, 0), 0);
+ tree reg = TREE_OPERAND ($2.value, 1);
+ $$.value = cw_asm_build_register_offset (neg, reg);
+ }
+ else
+ {
+ $$.value = build_unary_op ($1, $2.value, 0);
+ overflow_warning ($$.value);
+ }
+ $$.original_code = ERROR_MARK;
+ }
+ | sizeof cw_asm_unary_expr %prec UNARY
+ { skip_evaluation--;
+ if (TREE_CODE ($2.value) == COMPONENT_REF
+ && DECL_C_BIT_FIELD (TREE_OPERAND ($2.value, 1)))
+ error ("`sizeof' applied to a bit-field");
+ else if (TREE_CODE ($2.value) == IDENTIFIER_NODE)
+ {
+ undeclared_variable ($2.value);
+ $2.value = error_mark_node;
+ }
+ $$.value = c_sizeof (TREE_TYPE ($2.value));
+ $$.original_code = ERROR_MARK; }
+ | sizeof '(' typename ')' %prec HYPERUNARY
+ { skip_evaluation--;
+ $$.value = c_sizeof (groktypename ($3));
+ $$.original_code = ERROR_MARK; }
+ | alignof cw_asm_unary_expr %prec UNARY
+ { skip_evaluation--;
+ $$.value = c_alignof_expr ($2.value);
+ $$.original_code = ERROR_MARK; }
+ | alignof '(' typename ')' %prec HYPERUNARY
+ { skip_evaluation--;
+ $$.value = c_alignof (groktypename ($3));
+ $$.original_code = ERROR_MARK; }
+ ;
+
+cw_asm_primary:
+ IDENTIFIER
+ {
+ if (yychar == YYEMPTY)
+ yychar = YYLEX;
+ $$.value = build_external_ref ($1, yychar == '(');
+ $$.original_code = ERROR_MARK;
+ }
+ | '@' IDENTIFIER
+ {
+ tree atsignid = prepend_char_identifier ($2, '@');
+ if (yychar == YYEMPTY)
+ yychar = YYLEX;
+ $$.value = build_external_ref (atsignid, yychar == '(');
+ $$.original_code = ERROR_MARK;
+ }
+ | CONSTANT
+ { $$.value = $1; $$.original_code = ERROR_MARK; }
+ | STRING
+ { $$.value = $1; $$.original_code = STRING_CST; }
+ | '(' cw_asm_expr_no_commas ')'
+ { char class = TREE_CODE_CLASS (TREE_CODE ($2.value));
+ if (IS_EXPR_CODE_CLASS (class))
+ $2.original_code = ERROR_MARK;
+ $$ = $2; }
+ | '(' error ')'
+ { $$.value = error_mark_node; $$.original_code = ERROR_MARK; }
+ | cw_asm_primary '[' cw_asm_expr_no_commas ']' %prec '.'
+ { $$.value = build_array_ref ($1.value, $3.value);
+ $$.original_code = ERROR_MARK; }
+ | TYPENAME '.' identifier
+ { $$.value = cw_asm_c_build_component_ref ($1, $3);
+ $$.original_code = ERROR_MARK; }
+ | cw_asm_primary '.' identifier
+ { $$.value = cw_asm_c_build_component_ref ($1.value, $3);
+ $$.original_code = ERROR_MARK; }
+ | cw_asm_primary POINTSAT identifier
+ {
+ tree expr = build_indirect_ref ($1.value, "->");
+ $$.value = build_component_ref (expr, $3);
+ $$.original_code = ERROR_MARK;
+ }
+ ;
+/* APPLE LOCAL end CW asm blocks */
/* This is what appears inside the parens in a function declarator.
Its value is a list of ..._TYPE nodes. Attributes must appear here
@@ -3110,6 +3400,8 @@ static const struct resword reswords[] =
{ "__inline", RID_INLINE, 0 },
{ "__inline__", RID_INLINE, 0 },
{ "__label__", RID_LABEL, 0 },
+ /* APPLE LOCAL private extern */
+ { "__private_extern__", RID_PRIVATE_EXTERN, 0 },
{ "__real", RID_REALPART, 0 },
{ "__real__", RID_REALPART, 0 },
{ "__restrict", RID_RESTRICT, 0 },
@@ -3191,9 +3483,12 @@ static const struct resword reswords[] =
};
#define N_reswords (sizeof reswords / sizeof (struct resword))
+/* APPLE LOCAL begin keep tables in sync comment */
/* Table mapping from RID_* constants to yacc token numbers.
Unfortunately we have to have entries for all the keywords in all
- three languages. */
+ three languages (AND THEY MUST BE KEPT IN PARALLEL - see also
+ cp/lex.c). */
+/* APPLE LOCAL end keep tables in sync comment */
static const short rid_to_yy[RID_MAX] =
{
/* RID_STATIC */ STATIC,
@@ -3213,6 +3508,8 @@ static const short rid_to_yy[RID_MAX] =
/* C extensions */
/* RID_COMPLEX */ TYPESPEC,
/* RID_THREAD */ SCSPEC,
+ /* APPLE LOCAL private extern */
+ /* RID_PRIVATE_EXTERN */ SCSPEC,
/* C++ */
/* RID_FRIEND */ 0,
@@ -3373,8 +3670,30 @@ yylexname (void)
&& (!OBJC_IS_PQ_KEYWORD (rid_code) || objc_pq_context))
@@end_ifobjc
{
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Outside of function bodies, "asm" either indicates a CW asm
+ function, or a GNU asm statement, which must be immediately
+ followed by '(', so sniff the next token to see which kind
+ must be meant, and change the CW keyword to a different
+ token type so we don't have grammar problems. */
+ int yycode = rid_to_yy[(int) rid_code];
+ if (yycode == ASM_KEYWORD && current_function_decl == NULL)
+ {
+ tree next_tok;
+ /* Take a sneak peek at the next token in the stream. */
+ enum cpp_ttype next_tok_type = c_lex (&next_tok);
+ /* Now put it back. */
+ _cpp_backup_tokens (parse_in, 1);
+ /* Change the code. No need to change the name though,
+ won't matter to parser. */
+ if (next_tok_type != CPP_OPEN_PAREN)
+ yycode = CW_ASM_KEYWORD;
+ }
+ /* APPLE LOCAL end CW asm blocks */
/* Return the canonical spelling for this keyword. */
yylval.ttype = ridpointers[(int) rid_code];
+ /* APPLE LOCAL CW asm blocks */
+ return yycode;
return rid_to_yy[(int) rid_code];
}
}
@@ -3465,6 +3784,17 @@ _yylex (void)
case CPP_CLOSE_PAREN: OBJC_NEED_RAW_IDENTIFIER (0); return ')';
case CPP_SEMICOLON: OBJC_NEED_RAW_IDENTIFIER (0); return ';';
+ /* APPLE LOCAL begin CW asm blocks */
+ case CPP_ATSIGN:
+ /* If we're doing CW assembly, return this as a regular token
+ (indicates labels). */
+ /* If we are not doing CW assembly and this symbol is seen. '@' has
+ not been consumed by the objc-lexer. This maybe because user forgot
+ to specify objc as the language or due to user error. Parser will decide.
+ */
+ return '@';
+ /* APPLE LOCAL end CW asm blocks */
+
case CPP_EOF:
return 0;
@@ -3484,6 +3814,15 @@ _yylex (void)
case CPP_WSTRING:
return STRING;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Convert a lexer-returned beginning-of-line token into a
+ parser token. */
+ case CPP_BOL:
+ return CW_ASM_BOL;
+ case CPP_EOL:
+ return CW_ASM_EOL;
+ /* APPLE LOCAL end CW asm blocks */
+
case CPP_OBJC_STRING:
return OBJC_STRING;
diff --git a/gcc/c-pch.c b/gcc/c-pch.c
index 5c71ad107b3..145e6d33fa8 100644
--- a/gcc/c-pch.c
+++ b/gcc/c-pch.c
@@ -45,6 +45,8 @@ static const struct c_pch_matching
const char *flag_name;
} pch_matching[] = {
{ &flag_exceptions, "-fexceptions" },
+ /* APPLE LOCAL Altivec 3837840 */
+ { &flag_faltivec, "-faltivec" },
{ &flag_unit_at_a_time, "-funit-at-a-time" }
};
@@ -52,22 +54,19 @@ enum {
MATCH_SIZE = ARRAY_SIZE (pch_matching)
};
-/* This structure is read very early when validating the PCH, and
- might be read for a PCH which is for a completely different compiler
- for a different operating system. Thus, it should really only contain
- 'unsigned char' entries, at least in the initial entries.
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+/* The value of the checksum in the dummy compiler that is actually
+ checksummed. That compiler should never be run. */
+static const char no_checksum[16] = { 0 };
- If you add or change entries before version_length, you should increase
- the version number in get_ident().
+/* Information about flags and suchlike that affect PCH validity.
- There are a bunch of fields named *_length; those are lengths of data that
- follows this structure in the same order as the fields in the structure. */
+ Before this structure is read, both an initial 8-character identification
+ string, and a 16-byte checksum, have been read and validated. */
struct c_pch_validity
{
- unsigned char host_machine_length;
- unsigned char target_machine_length;
- unsigned char version_length;
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
unsigned char debug_info_type;
signed char match[MATCH_SIZE];
void (*pch_init) (void);
@@ -87,10 +86,8 @@ static FILE *pch_outfile;
/* The position in the assembler output file when pch_init was called. */
static long asm_file_startpos;
-/* The host and target machines. */
-static const char host_machine[] = HOST_MACHINE;
-static const char target_machine[] = TARGET_MACHINE;
-
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
static const char *get_ident (void);
/* Compute an appropriate 8-byte magic number for the PCH file, so that
@@ -102,7 +99,9 @@ static const char *
get_ident (void)
{
static char result[IDENT_LENGTH];
- static const char template[IDENT_LENGTH] = "gpch.012";
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ static const char template[IDENT_LENGTH] = "gpch.013";
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
static const char c_language_chars[] = "Co+O";
memcpy (result, template, IDENT_LENGTH);
@@ -111,9 +110,13 @@ get_ident (void)
return result;
}
-/* Prepare to write a PCH file. This is called at the start of
- compilation. */
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+/* Prepare to write a PCH file, if one is being written. This is
+ called at the start of compilation.
+
+ Also, print out the executable checksum if -fverbose-asm is in effect. */
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
void
pch_init (void)
{
@@ -122,6 +125,17 @@ pch_init (void)
void *target_validity;
static const char partial_pch[IDENT_LENGTH] = "gpcWrite";
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+#ifdef ASM_COMMENT_START
+ if (flag_verbose_asm)
+ {
+ fprintf (asm_out_file, "%s ", ASM_COMMENT_START);
+ c_common_print_pch_checksum (asm_out_file);
+ fputc ('\n', asm_out_file);
+ }
+#endif
+
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
if (!pch_file)
return;
@@ -130,13 +144,10 @@ pch_init (void)
fatal_error ("can%'t create precompiled header %s: %m", pch_file);
pch_outfile = f;
- gcc_assert (strlen (host_machine) < 256
- && strlen (target_machine) < 256
- && strlen (version_string) < 256);
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ gcc_assert (memcmp (executable_checksum, no_checksum, 16) != 0);
- v.host_machine_length = strlen (host_machine);
- v.target_machine_length = strlen (target_machine);
- v.version_length = strlen (version_string);
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
v.debug_info_type = write_symbols;
{
size_t i;
@@ -150,10 +161,10 @@ pch_init (void)
target_validity = targetm.get_pch_validity (&v.target_data_length);
if (fwrite (partial_pch, IDENT_LENGTH, 1, f) != 1
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ || fwrite (executable_checksum, 16, 1, f) != 1
|| fwrite (&v, sizeof (v), 1, f) != 1
- || fwrite (host_machine, v.host_machine_length, 1, f) != 1
- || fwrite (target_machine, v.target_machine_length, 1, f) != 1
- || fwrite (version_string, v.version_length, 1, f) != 1
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
|| fwrite (target_validity, v.target_data_length, 1, f) != 1)
fatal_error ("can%'t write to %s: %m", pch_file);
@@ -234,21 +245,29 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
{
int sizeread;
int result;
- char ident[IDENT_LENGTH];
- char short_strings[256 * 3];
- int strings_length;
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ char ident[IDENT_LENGTH + 16];
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
const char *pch_ident;
struct c_pch_validity v;
/* Perform a quick test of whether this is a valid
precompiled header for the current language. */
- sizeread = read (fd, ident, IDENT_LENGTH);
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ gcc_assert (memcmp (executable_checksum, no_checksum, 16) != 0);
+
+ sizeread = read (fd, ident, IDENT_LENGTH + 16);
if (sizeread == -1)
fatal_error ("can%'t read %s: %m", name);
- else if (sizeread != IDENT_LENGTH)
- return 2;
+ else if (sizeread != IDENT_LENGTH + 16)
+ {
+ cpp_error (pfile, CPP_DL_WARNING, "%s: too short to be a PCH file",
+ name);
+ return 2;
+ }
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
pch_ident = get_ident();
if (memcmp (ident, pch_ident, IDENT_LENGTH) != 0)
{
@@ -269,52 +288,22 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
}
return 2;
}
-
- /* At this point, we know it's a PCH file, so it ought to be long enough
- that we can read a c_pch_validity structure. */
- if (read (fd, &v, sizeof (v)) != sizeof (v))
- fatal_error ("can%'t read %s: %m", name);
-
- strings_length = (v.host_machine_length + v.target_machine_length
- + v.version_length);
- if (read (fd, short_strings, strings_length) != strings_length)
- fatal_error ("can%'t read %s: %m", name);
- if (v.host_machine_length != strlen (host_machine)
- || memcmp (host_machine, short_strings, strlen (host_machine)) != 0)
- {
- if (cpp_get_options (pfile)->warn_invalid_pch)
- cpp_error (pfile, CPP_DL_WARNING,
- "%s: created on host '%.*s', but used on host '%s'", name,
- v.host_machine_length, short_strings, host_machine);
- return 2;
- }
- if (v.target_machine_length != strlen (target_machine)
- || memcmp (target_machine, short_strings + v.host_machine_length,
- strlen (target_machine)) != 0)
- {
- if (cpp_get_options (pfile)->warn_invalid_pch)
- cpp_error (pfile, CPP_DL_WARNING,
- "%s: created for target '%.*s', but used for target '%s'",
- name, v.target_machine_length,
- short_strings + v.host_machine_length, target_machine);
- return 2;
- }
- if (v.version_length != strlen (version_string)
- || memcmp (version_string,
- (short_strings + v.host_machine_length
- + v.target_machine_length),
- v.version_length) != 0)
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+ if (memcmp (ident + IDENT_LENGTH, executable_checksum, 16) != 0)
{
if (cpp_get_options (pfile)->warn_invalid_pch)
cpp_error (pfile, CPP_DL_WARNING,
- "%s: created by version '%.*s', but this is version '%s'",
- name, v.version_length,
- (short_strings + v.host_machine_length
- + v.target_machine_length),
- version_string);
+ "%s: created by a different GCC executable", name);
return 2;
}
+ /* At this point, we know it's a PCH file created by this
+ executable, so it ought to be long enough that we can read a
+ c_pch_validity structure. */
+ if (read (fd, &v, sizeof (v)) != sizeof (v))
+ fatal_error ("can%'t read %s: %m", name);
+
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
/* The allowable debug info combinations are that either the PCH file
was built with the same as is being used now, or the PCH file was
built for some kind of debug info but now none is in use. */
@@ -343,10 +332,14 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
}
}
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
/* If the text segment was not loaded at the same address as it was
when the PCH file was created, function pointers loaded from the
PCH will not be valid. We could in theory remap all the function
- pointers, but no support for that exists at present. */
+ pointers, but no support for that exists at present.
+ Since we have the same executable, it should only be necessary to
+ check one function. */
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
if (v.pch_init != &pch_init)
{
if (cpp_get_options (pfile)->warn_invalid_pch)
@@ -465,6 +458,10 @@ c_common_no_more_pch (void)
}
}
+/* APPLE LOCAL begin distcc pch indirection --mrs */
+const char *indirect_file PARAMS ((const char *, int));
+/* APPLE LOCAL end distcc pch indirection --mrs */
+
/* Handle #pragma GCC pch_preprocess, to load in the PCH file. */
#ifndef O_BINARY
@@ -493,6 +490,10 @@ c_common_pch_pragma (cpp_reader *pfile)
name = TREE_STRING_POINTER (name_t);
+ /* APPLE LOCAL begin distcc pch indirection --mrs */
+ name = indirect_file (name, 0);
+ /* APPLE LOCAL end distcc pch indirection --mrs */
+
fd = open (name, O_RDONLY | O_BINARY, 0666);
if (fd == -1)
fatal_error ("%s: couldn%'t open PCH file: %m\n", name);
@@ -508,3 +509,17 @@ c_common_pch_pragma (cpp_reader *pfile)
close (fd);
}
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+
+/* Print out executable_checksum[]. */
+
+void
+c_common_print_pch_checksum (FILE *f)
+{
+ int i;
+ fputs ("Compiler executable checksum: ", f);
+ for (i = 0; i < 16; i++)
+ fprintf (f, "%02x", executable_checksum[i]);
+ putc ('\n', f);
+}
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c
index cc1dd280359..7893082905b 100644
--- a/gcc/c-pragma.c
+++ b/gcc/c-pragma.c
@@ -48,193 +48,8 @@ typedef struct align_stack GTY(())
static GTY(()) struct align_stack * alignment_stack;
-#ifdef HANDLE_PRAGMA_PACK
-static void handle_pragma_pack (cpp_reader *);
-
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
-/* If we have a "global" #pragma pack(<n>) in effect when the first
- #pragma pack(push,<n>) is encountered, this stores the value of
- maximum_field_alignment in effect. When the final pop_alignment()
- happens, we restore the value to this, not to a value of 0 for
- maximum_field_alignment. Value is in bits. */
-static int default_alignment;
-#define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = *(alignment_stack == NULL \
- ? &default_alignment \
- : &alignment_stack->alignment) = (ALIGN))
-
-static void push_alignment (int, tree);
-static void pop_alignment (tree);
-
-/* Push an alignment value onto the stack. */
-static void
-push_alignment (int alignment, tree id)
-{
- align_stack * entry;
-
- entry = ggc_alloc (sizeof (* entry));
-
- entry->alignment = alignment;
- entry->id = id;
- entry->prev = alignment_stack;
-
- /* The current value of maximum_field_alignment is not necessarily
- 0 since there may be a #pragma pack(<n>) in effect; remember it
- so that we can restore it after the final #pragma pop(). */
- if (alignment_stack == NULL)
- default_alignment = maximum_field_alignment;
-
- alignment_stack = entry;
-
- maximum_field_alignment = alignment;
-}
-
-/* Undo a push of an alignment onto the stack. */
-static void
-pop_alignment (tree id)
-{
- align_stack * entry;
-
- if (alignment_stack == NULL)
- GCC_BAD ("#pragma pack (pop) encountered without matching #pragma pack (push)");
-
- /* If we got an identifier, strip away everything above the target
- entry so that the next step will restore the state just below it. */
- if (id)
- {
- for (entry = alignment_stack; entry; entry = entry->prev)
- if (entry->id == id)
- {
- alignment_stack = entry;
- break;
- }
- if (entry == NULL)
- warning ("\
-#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
- , IDENTIFIER_POINTER (id), IDENTIFIER_POINTER (id));
- }
-
- entry = alignment_stack->prev;
-
- maximum_field_alignment = entry ? entry->alignment : default_alignment;
-
- alignment_stack = entry;
-}
-#else /* not HANDLE_PRAGMA_PACK_PUSH_POP */
-#define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = (ALIGN))
-#define push_alignment(ID, N) \
- GCC_BAD ("#pragma pack(push[, id], <n>) is not supported on this target")
-#define pop_alignment(ID) \
- GCC_BAD ("#pragma pack(pop[, id], <n>) is not supported on this target")
-#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
-
-/* #pragma pack ()
- #pragma pack (N)
-
- #pragma pack (push)
- #pragma pack (push, N)
- #pragma pack (push, ID)
- #pragma pack (push, ID, N)
- #pragma pack (pop)
- #pragma pack (pop, ID) */
-static void
-handle_pragma_pack (cpp_reader * ARG_UNUSED (dummy))
-{
- tree x, id = 0;
- int align = -1;
- enum cpp_ttype token;
- enum { set, push, pop } action;
-
- if (c_lex (&x) != CPP_OPEN_PAREN)
- GCC_BAD ("missing %<(%> after %<#pragma pack%> - ignored");
-
- token = c_lex (&x);
- if (token == CPP_CLOSE_PAREN)
- {
- action = set;
- align = initial_max_fld_align;
- }
- else if (token == CPP_NUMBER)
- {
- align = TREE_INT_CST_LOW (x);
- action = set;
- if (c_lex (&x) != CPP_CLOSE_PAREN)
- GCC_BAD ("malformed %<#pragma pack%> - ignored");
- }
- else if (token == CPP_NAME)
- {
-#define GCC_BAD_ACTION do { if (action != pop) \
- GCC_BAD ("malformed %<#pragma pack(push[, id][, <n>])%> - ignored"); \
- else \
- GCC_BAD ("malformed %<#pragma pack(pop[, id])%> - ignored"); \
- } while (0)
-
- const char *op = IDENTIFIER_POINTER (x);
- if (!strcmp (op, "push"))
- action = push;
- else if (!strcmp (op, "pop"))
- action = pop;
- else
- GCC_BAD2 ("unknown action %qs for %<#pragma pack%> - ignored", op);
-
- while ((token = c_lex (&x)) == CPP_COMMA)
- {
- token = c_lex (&x);
- if (token == CPP_NAME && id == 0)
- {
- id = x;
- }
- else if (token == CPP_NUMBER && action == push && align == -1)
- {
- align = TREE_INT_CST_LOW (x);
- if (align == -1)
- action = set;
- }
- else
- GCC_BAD_ACTION;
- }
-
- if (token != CPP_CLOSE_PAREN)
- GCC_BAD_ACTION;
-#undef GCC_BAD_ACTION
- }
- else
- GCC_BAD ("malformed %<#pragma pack%> - ignored");
-
- if (c_lex (&x) != CPP_EOF)
- warning ("junk at end of %<#pragma pack%>");
-
- if (flag_pack_struct)
- GCC_BAD ("#pragma pack has no effect with -fpack-struct - ignored");
-
- if (action != pop)
- switch (align)
- {
- case 0:
- case 1:
- case 2:
- case 4:
- case 8:
- case 16:
- align *= BITS_PER_UNIT;
- break;
- case -1:
- if (action == push)
- {
- align = maximum_field_alignment;
- break;
- }
- default:
- GCC_BAD2 ("alignment must be a small power of two, not %d", align);
- }
-
- switch (action)
- {
- case set: SET_GLOBAL_ALIGNMENT (align); break;
- case push: push_alignment (align, id); break;
- case pop: pop_alignment (id); break;
- }
-}
-#endif /* HANDLE_PRAGMA_PACK */
+/* APPLE LOCAL Macintosh alignment */
+/* Lots of stuff deleted here. */
static GTY(()) tree pending_weaks;
@@ -679,13 +494,10 @@ c_register_pragma_with_expansion (const char *space, const char *name,
void
init_pragma (void)
{
-#ifdef HANDLE_PRAGMA_PACK
-#ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION
- c_register_pragma_with_expansion (0, "pack", handle_pragma_pack);
-#else
- c_register_pragma (0, "pack", handle_pragma_pack);
-#endif
-#endif
+/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff
+ Remove the handling of pragma pack here because it is handled
+ in config/darwin-c.c.
+ APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
#ifdef HANDLE_PRAGMA_WEAK
c_register_pragma (0, "weak", handle_pragma_weak);
#endif
@@ -696,6 +508,13 @@ init_pragma (void)
c_register_pragma (0, "redefine_extname", handle_pragma_redefine_extname);
c_register_pragma (0, "extern_prefix", handle_pragma_extern_prefix);
+ /* APPLE LOCAL begin OS pragma hook */
+ /* Allow registration of OS-specific but arch-independent pragmas. */
+#ifdef REGISTER_OS_PRAGMAS
+ REGISTER_OS_PRAGMAS ();
+#endif
+ /* APPLE LOCAL end OS pragma hook */
+
c_register_pragma ("GCC", "pch_preprocess", c_common_pch_pragma);
#ifdef REGISTER_TARGET_PRAGMAS
diff --git a/gcc/c-pragma.h b/gcc/c-pragma.h
index f7f609c407f..20cab17ccc7 100644
--- a/gcc/c-pragma.h
+++ b/gcc/c-pragma.h
@@ -65,6 +65,10 @@ extern tree maybe_apply_renaming_pragma (tree, tree);
extern void add_to_renaming_pragma_list (tree, tree);
extern enum cpp_ttype c_lex (tree *);
+/* APPLE LOCAL begin AltiVec */
+extern const struct cpp_token *c_lex_peek (int);
+extern void c_lex_prepend (const struct cpp_token *, int);
+/* APPLE LOCAL end AltiVec */
extern enum cpp_ttype c_lex_with_flags (tree *, unsigned char *);
/* If 1, then lex strings into the execution character set.
diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c
index 7b741244bbf..2176e34850b 100644
--- a/gcc/c-pretty-print.c
+++ b/gcc/c-pretty-print.c
@@ -1,5 +1,5 @@
/* Subroutines common to both C and C++ pretty-printers.
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
This file is part of GCC.
@@ -712,50 +712,37 @@ pp_c_function_definition (c_pretty_printer *pp, tree t)
/* Expressions. */
-/* Print out a c-char. */
+/* Print out a c-char. This is called solely for characters which are
+ in the *target* execution character set. We ought to convert them
+ back to the *host* execution character set before printing, but we
+ have no way to do this at present. A decent compromise is to print
+ all characters as if they were in the host execution character set,
+ and not attempt to recover any named escape characters, but render
+ all unprintables as octal escapes. If the host and target character
+ sets are the same, this produces relatively readable output. If they
+ are not the same, strings may appear as gibberish, but that's okay
+ (in fact, it may well be what the reader wants, e.g. if they are looking
+ to see if conversion to the target character set happened correctly).
+
+ A special case: we need to prefix \, ", and ' with backslashes. It is
+ correct to do so for the *host*'s \, ", and ', because the rest of the
+ file appears in the host character set. */
static void
pp_c_char (c_pretty_printer *pp, int c)
{
- switch (c)
+ if (ISPRINT (c))
{
- case TARGET_NEWLINE:
- pp_string (pp, "\\n");
- break;
- case TARGET_TAB:
- pp_string (pp, "\\t");
- break;
- case TARGET_VT:
- pp_string (pp, "\\v");
- break;
- case TARGET_BS:
- pp_string (pp, "\\b");
- break;
- case TARGET_CR:
- pp_string (pp, "\\r");
- break;
- case TARGET_FF:
- pp_string (pp, "\\f");
- break;
- case TARGET_BELL:
- pp_string (pp, "\\a");
- break;
- case '\\':
- pp_string (pp, "\\\\");
- break;
- case '\'':
- pp_string (pp, "\\'");
- break;
- case '\"':
- pp_string (pp, "\\\"");
- break;
- default:
- if (ISPRINT (c))
- pp_character (pp, c);
- else
- pp_scalar (pp, "\\%03o", (unsigned) c);
- break;
+ switch (c)
+ {
+ case '\\': pp_string (pp, "\\\\"); break;
+ case '\'': pp_string (pp, "\\\'"); break;
+ case '\"': pp_string (pp, "\\\""); break;
+ default: pp_character (pp, c);
+ }
}
+ else
+ pp_scalar (pp, "\\%03o", (unsigned) c);
}
/* Print out a STRING literal. */
@@ -785,7 +772,7 @@ pp_c_integer_constant (c_pretty_printer *pp, tree i)
{
if (tree_int_cst_sgn (i) < 0)
{
- pp_c_char (pp, '-');
+ pp_character (pp, '-');
i = build_int_cst_wide (NULL_TREE,
-TREE_INT_CST_LOW (i),
~TREE_INT_CST_HIGH (i)
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index 1cde4828348..3c6e22f5aef 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -25,10 +25,29 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "c-common.h"
#include "diagnostic.h"
+/* APPLE LOCAL begin mainline */
+/* Definition of 'struct lang_identifier' has been moved here from c-decl.c.
+ so that ObjC can see it. */
+
+/* Each C symbol points to three linked lists of c_binding structures.
+ These describe the values of the identifier in the three different
+ namespaces defined by the language. */
+
+struct lang_identifier GTY(())
+{
+ struct c_common_identifier common_id;
+ struct c_binding *symbol_binding; /* vars, funcs, constants, typedefs */
+ struct c_binding *tag_binding; /* struct/union/enum tags */
+ struct c_binding *label_binding; /* labels */
+ tree interface_value; /* ObjC interface, if any */
+};
+/* APPLE LOCAL end mainline */
+
/* struct lang_identifier is private to c-decl.c, but langhooks.c needs to
know how big it is. This is sanity-checked in c-decl.c. */
#define C_SIZEOF_STRUCT_LANG_IDENTIFIER \
- (sizeof (struct c_common_identifier) + 3 * sizeof (void *))
+ /* APPLE LOCAL mainline */ \
+ (sizeof (struct c_common_identifier) + 4 * sizeof (void *))
/* For gc purposes, return the most likely link for the longest chain. */
#define C_LANG_TREE_NODE_CHAIN_NEXT(T) \
@@ -106,6 +125,17 @@ struct lang_type GTY(())
sizeof and typeof it is set for other function decls as well. */
#define C_DECL_USED(EXP) DECL_LANG_FLAG_5 (EXP)
+/* Record whether a label was defined in a statement expression which
+ has finished and so can no longer be jumped to. */
+#define C_DECL_UNJUMPABLE_STMT_EXPR(EXP) \
+ DECL_LANG_FLAG_6 (LABEL_DECL_CHECK (EXP))
+
+/* Record whether a label was the subject of a goto from outside the
+ current level of statement expression nesting and so cannot be
+ defined right now. */
+#define C_DECL_UNDEFINABLE_STMT_EXPR(EXP) \
+ DECL_LANG_FLAG_7 (LABEL_DECL_CHECK (EXP))
+
/* Nonzero for a decl which either doesn't exist or isn't a prototype.
N.B. Could be simplified if all built-in decls had complete prototypes
(but this is presently difficult because some of them need FILE*). */
@@ -223,6 +253,16 @@ struct c_declspecs {
BOOL_BITFIELD explicit_signed_p : 1;
/* Whether the specifiers include a deprecated typedef. */
BOOL_BITFIELD deprecated_p : 1;
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ /* Whether the specifiers include a unavailable typedef. */
+ BOOL_BITFIELD unavailable_p : 1;
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
+ /* APPLE LOCAL begin private extern */
+ /* Whether the specifiers include __private_extern. */
+ BOOL_BITFIELD private_extern_p : 1;
+ /* APPLE LOCAL end private extern */
+ /* APPLE LOCAL CW asm blocks */
+ BOOL_BITFIELD cw_asm_specbit : 1;
/* Whether the type defaulted to "int" because there were no type
specifiers. */
BOOL_BITFIELD default_int_p;
@@ -345,6 +385,27 @@ struct language_function GTY(())
int extern_inline;
};
+/* Save lists of labels used or defined in particular statement
+ expression contexts. Allocated on the parser obstack. */
+
+struct c_label_list
+{
+ /* The label at the head of the list. */
+ tree label;
+ /* The rest of the list. */
+ struct c_label_list *next;
+};
+
+struct c_label_context
+{
+ /* The labels defined at this level of nesting. */
+ struct c_label_list *labels_def;
+ /* The labels used at this level of nesting. */
+ struct c_label_list *labels_used;
+ /* The next outermost context. */
+ struct c_label_context *next;
+};
+
/* in c-parse.in */
extern void c_parse_init (void);
@@ -373,7 +434,6 @@ extern struct c_declarator *build_array_declarator (tree, struct c_declspecs *,
extern tree build_enumerator (tree, tree);
extern void check_for_loop_decls (void);
extern void mark_forward_parm_decls (void);
-extern int complete_array_type (tree, tree, int);
extern void declare_parm_level (void);
extern void undeclared_variable (tree);
extern tree declare_label (tree);
@@ -448,6 +508,7 @@ extern int in_sizeof;
extern int in_typeof;
extern struct c_switch *c_switch_stack;
+extern struct c_label_context *label_context_stack;
extern tree require_complete_type (tree);
extern int same_translation_unit_p (tree, tree);
@@ -502,6 +563,11 @@ extern tree c_finish_bc_stmt (tree *, bool);
extern tree c_finish_goto_label (tree);
extern tree c_finish_goto_ptr (tree);
+/* APPLE LOCAL begin CW asm blocks */
+extern tree get_structure_offset (tree, tree);
+extern tree lookup_struct_or_union_tag (tree);
+/* APPLE LOCAL end CW asm blocks */
+
/* Set to 0 at beginning of a function definition, set to 1 if
a return statement that specifies a return value is seen. */
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 3a202929e9f..29330d423f5 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -64,6 +64,8 @@ int in_sizeof;
/* The level of nesting inside "typeof". */
int in_typeof;
+struct c_label_context *label_context_stack;
+
/* Nonzero if we've already printed a "missing braces around initializer"
message within this initializer. */
static int missing_braces_mentioned;
@@ -73,7 +75,8 @@ static int require_constant_elements;
static tree qualify_type (tree, tree);
static int tagged_types_tu_compatible_p (tree, tree);
-static int comp_target_types (tree, tree, int);
+/* APPLE LOCAL mainline */
+static int comp_target_types (tree, tree);
static int function_types_compatible_p (tree, tree);
static int type_lists_compatible_p (tree, tree);
static tree decl_constant_value_for_broken_optimization (tree);
@@ -375,29 +378,51 @@ composite_type (tree t1, tree t2)
&& TREE_VALUE (p1) != TREE_VALUE (p2))
{
tree memb;
+ tree mv2 = TREE_VALUE (p2);
+ if (mv2 && mv2 != error_mark_node
+ && TREE_CODE (mv2) != ARRAY_TYPE)
+ mv2 = TYPE_MAIN_VARIANT (mv2);
for (memb = TYPE_FIELDS (TREE_VALUE (p1));
memb; memb = TREE_CHAIN (memb))
- if (comptypes (TREE_TYPE (memb), TREE_VALUE (p2)))
- {
- TREE_VALUE (n) = TREE_VALUE (p2);
- if (pedantic)
- pedwarn ("function types not truly compatible in ISO C");
- goto parm_done;
- }
+ {
+ tree mv3 = TREE_TYPE (memb);
+ if (mv3 && mv3 != error_mark_node
+ && TREE_CODE (mv3) != ARRAY_TYPE)
+ mv3 = TYPE_MAIN_VARIANT (mv3);
+ if (comptypes (mv3, mv2))
+ {
+ TREE_VALUE (n) = composite_type (TREE_TYPE (memb),
+ TREE_VALUE (p2));
+ if (pedantic)
+ pedwarn ("function types not truly compatible in ISO C");
+ goto parm_done;
+ }
+ }
}
if (TREE_CODE (TREE_VALUE (p2)) == UNION_TYPE
&& TREE_VALUE (p2) != TREE_VALUE (p1))
{
tree memb;
+ tree mv1 = TREE_VALUE (p1);
+ if (mv1 && mv1 != error_mark_node
+ && TREE_CODE (mv1) != ARRAY_TYPE)
+ mv1 = TYPE_MAIN_VARIANT (mv1);
for (memb = TYPE_FIELDS (TREE_VALUE (p2));
memb; memb = TREE_CHAIN (memb))
- if (comptypes (TREE_TYPE (memb), TREE_VALUE (p1)))
- {
- TREE_VALUE (n) = TREE_VALUE (p1);
- if (pedantic)
- pedwarn ("function types not truly compatible in ISO C");
- goto parm_done;
- }
+ {
+ tree mv3 = TREE_TYPE (memb);
+ if (mv3 && mv3 != error_mark_node
+ && TREE_CODE (mv3) != ARRAY_TYPE)
+ mv3 = TYPE_MAIN_VARIANT (mv3);
+ if (comptypes (mv3, mv1))
+ {
+ TREE_VALUE (n) = composite_type (TREE_TYPE (memb),
+ TREE_VALUE (p1));
+ if (pedantic)
+ pedwarn ("function types not truly compatible in ISO C");
+ goto parm_done;
+ }
+ }
}
TREE_VALUE (n) = composite_type (TREE_VALUE (p1), TREE_VALUE (p2));
parm_done: ;
@@ -672,10 +697,8 @@ comptypes (tree type1, tree type2)
switch (TREE_CODE (t1))
{
case POINTER_TYPE:
- /* We must give ObjC the first crack at comparing pointers, since
- protocol qualifiers may be involved. */
- if (c_dialect_objc () && (val = objc_comptypes (t1, t2, 0)) >= 0)
- break;
+ /* APPLE LOCAL mainline */
+ /* Call to 'objc_comptypes' removed. */
/* Do not remove mode or aliasing information. */
if (TYPE_MODE (t1) != TYPE_MODE (t2)
|| TYPE_REF_CAN_ALIAS_ALL (t1) != TYPE_REF_CAN_ALIAS_ALL (t2))
@@ -728,10 +751,8 @@ comptypes (tree type1, tree type2)
}
case RECORD_TYPE:
- /* We are dealing with two distinct structs. In assorted Objective-C
- corner cases, however, these can still be deemed equivalent. */
- if (c_dialect_objc () && objc_comptypes (t1, t2, 0) == 1)
- val = 1;
+ /* APPLE LOCAL mainline */
+ /* Call to 'objc_comptypes' removed. */
case ENUMERAL_TYPE:
case UNION_TYPE:
@@ -750,22 +771,20 @@ comptypes (tree type1, tree type2)
return attrval == 2 && val == 1 ? 2 : val;
}
+/* APPLE LOCAL begin mainline */
/* Return 1 if TTL and TTR are pointers to types that are equivalent,
- ignoring their qualifiers. REFLEXIVE is only used by ObjC - set it
- to 1 or 0 depending if the check of the pointer types is meant to
- be reflexive or not (typically, assignments are not reflexive,
- while comparisons are reflexive).
-*/
+ ignoring their qualifiers. */
+/* APPLE LOCAL end mainline */
static int
-comp_target_types (tree ttl, tree ttr, int reflexive)
+/* APPLE LOCAL mainline */
+comp_target_types (tree ttl, tree ttr)
{
int val;
tree mvl, mvr;
- /* Give objc_comptypes a crack at letting these types through. */
- if ((val = objc_comptypes (ttl, ttr, reflexive)) >= 0)
- return val;
+ /* APPLE LOCAL mainline */
+ /* Call to 'objc_comptypes' removed. */
/* Do not lose qualifiers on element types of array types that are
pointer targets by taking their TYPE_MAIN_VARIANT. */
@@ -827,6 +846,10 @@ struct tagged_tu_seen {
const struct tagged_tu_seen * next;
tree t1;
tree t2;
+ /* APPLE LOCAL begin IMA speed up */
+ int isEnum;
+ int enumMatched;
+ /* APPLE LOCAL end IMA speed up */
};
/* Can they be compatible with each other? We choose to break the
@@ -877,45 +900,72 @@ tagged_types_tu_compatible_p (tree t1, tree t2)
const struct tagged_tu_seen * tts_i;
for (tts_i = tagged_tu_seen_base; tts_i != NULL; tts_i = tts_i->next)
if (tts_i->t1 == t1 && tts_i->t2 == t2)
- return 1;
+ /* APPLE LOCAL IMA speed up */
+ return tts_i->isEnum ? tts_i->enumMatched : 1;
}
switch (TREE_CODE (t1))
{
case ENUMERAL_TYPE:
{
-
- /* Speed up the case where the type values are in the same order. */
- tree tv1 = TYPE_VALUES (t1);
- tree tv2 = TYPE_VALUES (t2);
-
- if (tv1 == tv2)
- return 1;
-
+ /* APPLE LOCAL begin IMA speed up */
+ struct tagged_tu_seen *tts;
+ int res;
+ bool done;
+ /* Speed up the case where the type values are in the same order. */
+ tree tv1 = TYPE_VALUES (t1);
+ tree tv2 = TYPE_VALUES (t2);
+ if (tv1 == tv2)
+ return 1;
+
+ res = 0;
+ done = false;
for (;tv1 && tv2; tv1 = TREE_CHAIN (tv1), tv2 = TREE_CHAIN (tv2))
{
if (TREE_PURPOSE (tv1) != TREE_PURPOSE (tv2))
break;
if (simple_cst_equal (TREE_VALUE (tv1), TREE_VALUE (tv2)) != 1)
- return 0;
+ {
+ res = 0;
+ done = true;
+ break;
+ }
}
+
+ if (!done)
+ {
+ if (tv1 == NULL_TREE && tv2 == NULL_TREE)
+ res = 1, done = true;
+ else if (tv1 == NULL_TREE || tv2 == NULL_TREE)
+ res = 0, done = true;
+ }
- if (tv1 == NULL_TREE && tv2 == NULL_TREE)
- return 1;
- if (tv1 == NULL_TREE || tv2 == NULL_TREE)
- return 0;
-
- if (list_length (TYPE_VALUES (t1)) != list_length (TYPE_VALUES (t2)))
- return 0;
-
- for (s1 = TYPE_VALUES (t1); s1; s1 = TREE_CHAIN (s1))
+ if (!done && list_length (TYPE_VALUES (t1)) == list_length (TYPE_VALUES (t2)))
+ {
+ res = 1;
+ for (s1 = TYPE_VALUES (t1); s1; s1 = TREE_CHAIN (s1))
{
s2 = purpose_member (TREE_PURPOSE (s1), TYPE_VALUES (t2));
if (s2 == NULL
|| simple_cst_equal (TREE_VALUE (s1), TREE_VALUE (s2)) != 1)
- return 0;
+ {
+ res = 0;
+ break;
+ }
}
- return 1;
+ }
+ if (tagged_tu_seen_base)
+ {
+ tts = xmalloc(sizeof (struct tagged_tu_seen));
+ tts->next = tagged_tu_seen_base;
+ tts->t1 = t1;
+ tts->t2 = t2;
+ tts->isEnum = 1;
+ tts->enumMatched = res;
+ tagged_tu_seen_base = tts;
+ }
+ return res;
+ /* APPLE LOCAL end IMA speed up */
}
case UNION_TYPE:
@@ -927,10 +977,14 @@ tagged_types_tu_compatible_p (tree t1, tree t2)
{
bool ok = false;
struct tagged_tu_seen tts;
+ /* APPLE LOCAL IMA speed up */
+ const struct tagged_tu_seen * tts_i;
tts.next = tagged_tu_seen_base;
tts.t1 = t1;
tts.t2 = t2;
+ /* APPLE LOCAL IMA speed up */
+ tts.isEnum = 0;
tagged_tu_seen_base = &tts;
if (DECL_NAME (s1) != NULL)
@@ -952,6 +1006,15 @@ tagged_types_tu_compatible_p (tree t1, tree t2)
ok = true;
break;
}
+ /* APPLE LOCAL begin IMA speed up */
+ tts_i = tagged_tu_seen_base;
+ while (tts_i->isEnum)
+ {
+ const struct tagged_tu_seen* p = tts_i->next;
+ free((struct tagged_tu_seen*)tts_i);
+ tts_i = p;
+ }
+ /* APPLE LOCAL end IMA speed up */
tagged_tu_seen_base = tts.next;
if (!ok)
return 0;
@@ -962,10 +1025,14 @@ tagged_types_tu_compatible_p (tree t1, tree t2)
case RECORD_TYPE:
{
struct tagged_tu_seen tts;
+ /* APPLE LOCAL IMA speedup */
+ const struct tagged_tu_seen * tts_i;
tts.next = tagged_tu_seen_base;
tts.t1 = t1;
tts.t2 = t2;
+ /* APPLE LOCAL IMA speedup */
+ tts.isEnum = 0;
tagged_tu_seen_base = &tts;
for (s1 = TYPE_FIELDS (t1), s2 = TYPE_FIELDS (t2);
@@ -987,6 +1054,16 @@ tagged_types_tu_compatible_p (tree t1, tree t2)
DECL_FIELD_BIT_OFFSET (s2)) != 1)
break;
}
+
+ /* APPLE LOCAL begin IMA speed up */
+ tts_i = tagged_tu_seen_base;
+ while (tts_i->isEnum)
+ {
+ const struct tagged_tu_seen* p = tts_i->next;
+ free((struct tagged_tu_seen*)tts_i);
+ tts_i = p;
+ }
+ /* APPLE LOCAL end IMA speed up */
tagged_tu_seen_base = tts.next;
if (s1 && s2)
return 0;
@@ -1122,8 +1199,14 @@ type_lists_compatible_p (tree args1, tree args2)
tree memb;
for (memb = TYPE_FIELDS (a1);
memb; memb = TREE_CHAIN (memb))
- if (comptypes (TREE_TYPE (memb), a2))
- break;
+ {
+ tree mv3 = TREE_TYPE (memb);
+ if (mv3 && mv3 != error_mark_node
+ && TREE_CODE (mv3) != ARRAY_TYPE)
+ mv3 = TYPE_MAIN_VARIANT (mv3);
+ if (comptypes (mv3, mv2))
+ break;
+ }
if (memb == 0)
return 0;
}
@@ -1137,8 +1220,14 @@ type_lists_compatible_p (tree args1, tree args2)
tree memb;
for (memb = TYPE_FIELDS (a2);
memb; memb = TREE_CHAIN (memb))
- if (comptypes (TREE_TYPE (memb), a1))
- break;
+ {
+ tree mv3 = TREE_TYPE (memb);
+ if (mv3 && mv3 != error_mark_node
+ && TREE_CODE (mv3) != ARRAY_TYPE)
+ mv3 = TYPE_MAIN_VARIANT (mv3);
+ if (comptypes (mv3, mv1))
+ break;
+ }
if (memb == 0)
return 0;
}
@@ -1549,6 +1638,11 @@ build_component_ref (tree datum, tree component)
if (TREE_DEPRECATED (subdatum))
warn_deprecated_use (subdatum);
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ if (TREE_UNAVAILABLE (subdatum))
+ warn_unavailable_use (subdatum);
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
+
datum = ref;
field = TREE_CHAIN (field);
@@ -1760,6 +1854,34 @@ build_external_ref (tree id, int fun)
tree ref;
tree decl = lookup_name (id);
+ /* APPLE LOCAL begin CW asm blocks */
+ /* CW assembly has automagical handling of register names. It's
+ also handy to assume undeclared names as labels, although it
+ would be better to have a second pass and complain about names in
+ the block that are not labels. */
+ if (inside_cw_asm_block)
+ {
+ if (decl)
+ {
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ TREE_USED (decl) = 1;
+ /* Locals and parms just need to be left alone for now. */
+ }
+ else
+ {
+ tree newid;
+ if ((newid = cw_asm_reg_name (id)))
+ return newid;
+#ifdef CW_ASM_SPECIAL_LABEL
+ if ((newid = CW_ASM_SPECIAL_LABEL (id)))
+ return newid;
+#endif
+ /* Assume undeclared symbols are labels. */
+ return get_cw_asm_label (id);
+ }
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
/* In Objective-C, an instance variable (ivar) may be preferred to
whatever lookup_name() found. */
decl = objc_lookup_ivar (decl, id);
@@ -1785,6 +1907,11 @@ build_external_ref (tree id, int fun)
if (TREE_DEPRECATED (ref))
warn_deprecated_use (ref);
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ if (TREE_UNAVAILABLE (ref))
+ warn_unavailable_use (ref);
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
+
if (!skip_evaluation)
assemble_external (ref);
TREE_USED (ref) = 1;
@@ -1942,6 +2069,12 @@ build_function_call (tree function, tree params)
else
function = default_conversion (function);
+ /* APPLE LOCAL begin mainline */
+ /* For Objective-C, convert any calls via a cast to OBJC_TYPE_REF
+ expressions, like those used for ObjC messenger dispatches. */
+ function = objc_rewrite_function_call (function, params);
+
+ /* APPLE LOCAL end mainline */
fntype = TREE_TYPE (function);
if (TREE_CODE (fntype) == ERROR_MARK)
@@ -1960,17 +2093,16 @@ build_function_call (tree function, tree params)
/* fntype now gets the type of function pointed to. */
fntype = TREE_TYPE (fntype);
+ /* APPLE LOCAL begin mainline */
/* Check that the function is called through a compatible prototype.
If it is not, replace the call by a trap, wrapped up in a compound
expression if necessary. This has the nice side-effect to prevent
the tree-inliner from generating invalid assignment trees which may
- blow up in the RTL expander later.
+ blow up in the RTL expander later. */
+ /* APPLE LOCAL end mainline */
- ??? This doesn't work for Objective-C because objc_comptypes
- refuses to compare function prototypes, yet the compiler appears
- to build calls that are flagged as invalid by C's comptypes. */
- if (!c_dialect_objc ()
- && TREE_CODE (function) == NOP_EXPR
+ /* APPLE LOCAL mainline */
+ if (TREE_CODE (function) == NOP_EXPR
&& TREE_CODE (tem = TREE_OPERAND (function, 0)) == ADDR_EXPR
&& TREE_CODE (tem = TREE_OPERAND (tem, 0)) == FUNCTION_DECL
&& !comptypes (fntype, TREE_TYPE (tem)))
@@ -2066,6 +2198,8 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
tree result = NULL;
int parmnum;
tree selector;
+ /* APPLE LOCAL mainline 2005-04-14 */
+ const char *invalid_func_diag;
/* Change pointer to function to the function itself for
diagnostics. */
@@ -2238,6 +2372,14 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
< TYPE_PRECISION (double_type_node)))
/* Convert `float' to `double'. */
result = tree_cons (NULL_TREE, convert (double_type_node, val), result);
+ /* APPLE LOCAL begin mainline 2005-04-14 */
+ else if ((invalid_func_diag =
+ targetm.calls.invalid_arg_for_unprototyped_fn (typelist, fundecl, val)))
+ {
+ error (invalid_func_diag);
+ return error_mark_node;
+ }
+ /* APPLE LOCAL end mainline 2005-04-14 */
else
/* Convert `short' and `char' to full-size `int'. */
result = tree_cons (NULL_TREE, default_conversion (val), result);
@@ -2270,6 +2412,17 @@ parser_build_binary_op (enum tree_code code, struct c_expr arg1,
enum tree_code code1 = arg1.original_code;
enum tree_code code2 = arg2.original_code;
+ /* APPLE LOCAL begin CW asm blocks */
+ if (inside_cw_asm_block
+ && (TREE_CODE (arg1.value) == IDENTIFIER_NODE
+ || TREE_CODE (arg2.value) == IDENTIFIER_NODE))
+ {
+ result.value = error_mark_node;
+ result.original_code = code;
+ return result;
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
result.value = build_binary_op (code, arg1.value, arg2.value, 1);
result.original_code = code;
@@ -2619,10 +2772,12 @@ build_unary_op (enum tree_code code, tree xarg, int flag)
inc = convert (argtype, inc);
/* Complain about anything else that is not a true lvalue. */
- if (!lvalue_or_else (arg, ((code == PREINCREMENT_EXPR
- || code == POSTINCREMENT_EXPR)
- ? lv_increment
- : lv_decrement)))
+ /* APPLE LOCAL begin non lvalue assign */
+ if (!lvalue_or_else (&arg, ((code == PREINCREMENT_EXPR
+ || code == POSTINCREMENT_EXPR)
+ ? lv_increment
+ : lv_decrement)))
+ /* APPLE LOCAL end non lvalue assign */
return error_mark_node;
/* Report a read-only lvalue. */
@@ -2667,7 +2822,8 @@ build_unary_op (enum tree_code code, tree xarg, int flag)
/* Anything not already handled and not a true memory reference
or a non-lvalue array is an error. */
else if (typecode != FUNCTION_TYPE && !flag
- && !lvalue_or_else (arg, lv_addressof))
+ /* APPLE LOCAL non lvalue assign */
+ && !lvalue_or_else (&arg, lv_addressof))
return error_mark_node;
/* Ordinary case; arg is a COMPONENT_REF or a decl. */
@@ -2943,7 +3099,8 @@ build_conditional_expr (tree ifexp, tree op1, tree op2)
}
else if (code1 == POINTER_TYPE && code2 == POINTER_TYPE)
{
- if (comp_target_types (type1, type2, 1))
+ /* APPLE LOCAL mainline */
+ if (comp_target_types (type1, type2))
result_type = common_pointer_type (type1, type2);
else if (integer_zerop (op1) && TREE_TYPE (type1) == void_type_node
&& TREE_CODE (orig_op1) != NOP_EXPR)
@@ -2967,6 +3124,11 @@ build_conditional_expr (tree ifexp, tree op1, tree op2)
result_type = build_pointer_type (qualify_type (TREE_TYPE (type2),
TREE_TYPE (type1)));
}
+ /* APPLE LOCAL begin 4154928 */
+ /* Objective-C pointer comparisons are a bit more lenient. */
+ else if (objc_compare_types (type1, type2, -3, NULL_TREE))
+ result_type = objc_common_type (type1, type2);
+ /* APPLE LOCAL end 4154928 */
else
{
pedwarn ("pointer type mismatch in conditional expression");
@@ -3031,6 +3193,11 @@ build_compound_expr (tree expr1, tree expr2)
/* Convert arrays and functions to pointers. */
expr2 = default_function_array_conversion (expr2);
+ /* APPLE LOCAL begin AltiVec */
+ if (targetm.cast_expr_as_vector_init)
+ ;
+ else
+ /* APPLE LOCAL end AltiVec */
if (!TREE_SIDE_EFFECTS (expr1))
{
/* The left-hand operand of a comma expression is like an expression
@@ -3062,6 +3229,15 @@ build_c_cast (tree type, tree expr)
if (type == error_mark_node || expr == error_mark_node)
return error_mark_node;
+ /* APPLE LOCAL begin AltiVec */
+ /* If we are casting to a vector type, treat the expression as a vector
+ initializer if this target supports it. */
+ if (TREE_CODE (type) == VECTOR_TYPE
+ && int_size_in_bytes (type) == 16
+ && targetm.cast_expr_as_vector_init)
+ return vector_constructor_from_expr (expr, type);
+ /* APPLE LOCAL end AltiVec */
+
/* The ObjC front-end uses TYPE_MAIN_VARIANT to tie together types differing
only in <protocol> qualifications. But when constructing cast expressions,
the protocols do matter and must be kept around. */
@@ -3251,6 +3427,13 @@ build_c_cast (tree type, tree expr)
pedwarn ("ISO C forbids conversion of object pointer to function pointer type");
ovalue = value;
+ /* APPLE LOCAL begin don't sign-extend pointers cast to integers */
+ if (TREE_CODE (type) == INTEGER_TYPE
+ && TREE_CODE (otype) == POINTER_TYPE
+ && TYPE_PRECISION (type) > TYPE_PRECISION (otype)
+ && TYPE_UNSIGNED (type))
+ value = convert (c_common_type_for_size (POINTER_SIZE, 1), value);
+ /* APPLE LOCAL end don't sign-extend pointers cast to integers */
value = convert (type, value);
/* Ignore any integer overflow caused by the cast. */
@@ -3332,7 +3515,8 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
newrhs = build_binary_op (modifycode, lhs, rhs, 1);
}
- if (!lvalue_or_else (lhs, lv_assign))
+ /* APPLE LOCAL non lvalue assign */
+ if (!lvalue_or_else (&lhs, lv_assign))
return error_mark_node;
/* Give an error for storing in something that is 'const'. */
@@ -3371,6 +3555,16 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
if (TREE_CODE (newrhs) == ERROR_MARK)
return error_mark_node;
+ /* APPLE LOCAL begin mainline */
+ /* Emit ObjC write barrier, if necessary. */
+ if (c_dialect_objc () && flag_objc_gc)
+ {
+ result = objc_generate_write_barrier (lhs, modifycode, newrhs);
+ if (result)
+ return result;
+ }
+ /* APPLE LOCAL end mainline */
+
/* Scan operands. */
result = build2 (MODIFY_EXPR, lhstype, lhs, newrhs);
@@ -3406,6 +3600,8 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
tree rhstype;
enum tree_code coder;
tree rname = NULL_TREE;
+ /* APPLE LOCAL mainline */
+ bool objc_ok;
if (errtype == ic_argpass || errtype == ic_argpass_nonproto)
{
@@ -3471,14 +3667,41 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
if (coder == ERROR_MARK)
return error_mark_node;
+ /* APPLE LOCAL begin mainline */
+ if (c_dialect_objc ())
+ {
+ int parmno;
+
+ switch (errtype)
+ {
+ case ic_return:
+ parmno = 0;
+ break;
+
+ case ic_assign:
+ parmno = -1;
+ break;
+
+ case ic_init:
+ parmno = -2;
+ break;
+
+ default:
+ parmno = parmnum;
+ break;
+ }
+
+ objc_ok = objc_compare_types (type, rhstype, parmno, rname);
+ }
+ else
+ objc_ok = false;
+
+ /* APPLE LOCAL end mainline */
if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (rhstype))
{
overflow_warning (rhs);
- /* Check for Objective-C protocols. This will automatically
- issue a warning if there are protocol violations. No need to
- use the return value. */
- if (c_dialect_objc ())
- objc_comptypes (type, rhstype, 0);
+ /* APPLE LOCAL mainline */
+ /* Call to 'objc_comptypes' removed. */
return rhs;
}
@@ -3561,7 +3784,8 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
Meanwhile, the lhs target must have all the qualifiers of
the rhs. */
if (VOID_TYPE_P (ttl) || VOID_TYPE_P (ttr)
- || comp_target_types (memb_type, rhstype, 0))
+ /* APPLE LOCAL mainline */
+ || comp_target_types (memb_type, rhstype))
{
/* If this type won't generate any warnings, use it. */
if (TYPE_QUALS (ttl) == TYPE_QUALS (ttr)
@@ -3621,7 +3845,9 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
N_("return makes qualified function "
"pointer from unqualified"));
}
- else if (TYPE_QUALS (ttr) & ~TYPE_QUALS (ttl))
+ /* APPLE LOCAL begin 4086969 */
+ else if (warn_discard_qual
+ && (TYPE_QUALS (ttr) & ~TYPE_QUALS (ttl)))
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE discards "
"qualifiers from pointer target type"),
N_("assignment discards qualifiers "
@@ -3630,6 +3856,7 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
"from pointer target type"),
N_("return discards qualifiers from "
"pointer target type"));
+ /* APPLE LOCAL end 4086969 */
}
if (pedantic && !DECL_IN_SYSTEM_HEADER (fundecl))
@@ -3664,7 +3891,8 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
and vice versa; otherwise, targets must be the same.
Meanwhile, the lhs target must have all the qualifiers of the rhs. */
if (VOID_TYPE_P (ttl) || VOID_TYPE_P (ttr)
- || (target_cmp = comp_target_types (type, rhstype, 0))
+ /* APPLE LOCAL mainline */
+ || (target_cmp = comp_target_types (type, rhstype))
|| is_opaque_pointer
|| (c_common_unsigned_type (mvl)
== c_common_unsigned_type (mvr)))
@@ -3691,15 +3919,25 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
else if (TREE_CODE (ttr) != FUNCTION_TYPE
&& TREE_CODE (ttl) != FUNCTION_TYPE)
{
+ /* APPLE LOCAL begin 4086969 */
if (TYPE_QUALS (ttr) & ~TYPE_QUALS (ttl))
- WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE discards "
- "qualifiers from pointer target type"),
- N_("assignment discards qualifiers "
- "from pointer target type"),
- N_("initialization discards qualifiers "
- "from pointer target type"),
- N_("return discards qualifiers from "
- "pointer target type"));
+ {
+ /* APPLE LOCAL begin mainline */
+ /* Types differing only by the presence of the 'volatile'
+ qualifier are acceptable if the 'volatile' has been added
+ in by the Objective-C EH machinery. */
+ if (warn_discard_qual && !objc_type_quals_match (ttl, ttr))
+ /* APPLE LOCAL end mainline */
+ WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE discards "
+ "qualifiers from pointer target type"),
+ N_("assignment discards qualifiers "
+ "from pointer target type"),
+ N_("initialization discards qualifiers "
+ "from pointer target type"),
+ N_("return discards qualifiers from "
+ "pointer target type"));
+ }
+ /* APPLE LOCAL end 4086969 */
/* If this is not a case of ignoring a mismatch in signedness,
no warning. */
else if (VOID_TYPE_P (ttl) || VOID_TYPE_P (ttr)
@@ -3736,12 +3974,18 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
}
}
else
- WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE from "
- "incompatible pointer type"),
- N_("assignment from incompatible pointer type"),
- N_("initialization from incompatible "
- "pointer type"),
- N_("return from incompatible pointer type"));
+ /* APPLE LOCAL begin mainline */
+ /* Certain combinations of ObjC types do not warrant a
+ warning here. */
+ if (!objc_ok)
+ WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE from "
+ "incompatible pointer type"),
+ N_("assignment from incompatible pointer type"),
+ N_("initialization from incompatible "
+ "pointer type"),
+ N_("return from incompatible pointer type"));
+
+ /* APPLE LOCAL end mainline */
return convert (type, rhs);
}
else if (codel == POINTER_TYPE && coder == ARRAY_TYPE)
@@ -4146,6 +4390,8 @@ digest_init (tree type, tree init, bool strict_string, int require_constant)
{
struct c_expr expr;
bool char_string;
+ /* APPLE LOCAL pascal strings */
+ bool pascal_string;
expr.value = inside_init;
expr.original_code = (strict_string ? STRING_CST : ERROR_MARK);
maybe_warn_string_init (type, expr);
@@ -4154,16 +4400,24 @@ digest_init (tree type, tree init, bool strict_string, int require_constant)
= (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (inside_init)))
== char_type_node);
+ /* APPLE LOCAL begin pascal strings */
+ pascal_string
+ = (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (inside_init)))
+ == unsigned_char_type_node);
+ /* APPLE LOCAL end pascal strings */
+
if (comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
TYPE_MAIN_VARIANT (type)))
return inside_init;
- if (!wchar_array && !char_string)
+ /* APPLE LOCAL pascal strings */
+ if (!wchar_array && !pascal_string && !char_string)
{
error_init ("char-array initialized from wide string");
return error_mark_node;
}
- if (char_string && !char_array)
+ /* APPLE LOCAL pascal strings */
+ if ((char_string || pascal_string) && !char_array)
{
error_init ("wchar_t-array initialized from non-wide string");
return error_mark_node;
@@ -4296,6 +4550,34 @@ digest_init (tree type, tree init, bool strict_string, int require_constant)
if (flag_pedantic_errors)
inside_init = error_mark_node;
}
+ /* APPLE LOCAL begin AltiVec */
+ /* This test catches a Motorola-syntax Altivec vector
+ represented as a constructor of vector type. This tree
+ is not constant but can be initializer to a const vector. */
+ else if (require_constant
+ && (code == VECTOR_TYPE && TREE_CODE (init) == CONSTRUCTOR))
+ return inside_init;
+ else if (require_constant
+ && (code == VECTOR_TYPE && TREE_CODE (init) == NOP_EXPR))
+ {
+ /* User is using FSF style vector const. It must be converted to
+ VECTOR_CST so it is generated at assebly time. */
+ while (TREE_CODE (init) == NOP_EXPR)
+ init = TREE_OPERAND (init, 0);
+ if (TREE_CODE (init) == COMPOUND_LITERAL_EXPR)
+ {
+ init = COMPOUND_LITERAL_EXPR_DECL (init);
+ if (TREE_CODE (init) == VAR_DECL && DECL_INITIAL (init))
+ {
+ init = DECL_INITIAL (init);
+ if (TREE_CODE (init) == VECTOR_CST)
+ return convert (type, init);
+ }
+ }
+ error_init ("initializer element is not constant");
+ inside_init = error_mark_node;
+ }
+ /* APPLE LOCAL end AltiVec */
else if (require_constant
&& !initializer_constant_valid_p (inside_init,
TREE_TYPE (inside_init)))
@@ -6372,7 +6654,8 @@ build_asm_expr (tree string, tree outputs, tree inputs, tree clobbers,
get an error. Gross, but ... */
STRIP_NOPS (output);
- if (!lvalue_or_else (output, lv_asm))
+ /* APPLE LOCAL non lvalue assign */
+ if (!lvalue_or_else (&output, lv_asm))
output = error_mark_node;
constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (tail)));
@@ -6424,7 +6707,8 @@ build_asm_expr (tree string, tree outputs, tree inputs, tree clobbers,
TREE_VALUE (tail) = input;
}
- args = build_stmt (ASM_EXPR, string, outputs, inputs, clobbers);
+ /* APPLE LOCAL CW asm blocks. */
+ args = build_stmt (ASM_EXPR, string, outputs, inputs, clobbers, NULL);
/* Simple asm statements are treated as volatile. */
if (simple)
@@ -6445,6 +6729,23 @@ c_finish_goto_label (tree label)
if (!decl)
return NULL_TREE;
+ if (C_DECL_UNJUMPABLE_STMT_EXPR (decl))
+ {
+ error ("jump into statement expression");
+ return NULL_TREE;
+ }
+
+ if (!C_DECL_UNDEFINABLE_STMT_EXPR (decl))
+ {
+ /* No jump from outside this statement expression context, so
+ record that there is a jump from within this context. */
+ struct c_label_list *nlist;
+ nlist = XOBNEW (&parser_obstack, struct c_label_list);
+ nlist->next = label_context_stack->labels_used;
+ nlist->label = decl;
+ label_context_stack->labels_used = nlist;
+ }
+
TREE_USED (decl) = 1;
return add_stmt (build1 (GOTO_EXPR, void_type_node, decl));
}
@@ -6460,6 +6761,120 @@ c_finish_goto_ptr (tree expr)
return add_stmt (build1 (GOTO_EXPR, void_type_node, expr));
}
+/* APPLE LOCAL begin CW asm blocks */
+int
+cw_asm_typename_or_reserved (tree value)
+{
+ return (C_IS_RESERVED_WORD (value));
+}
+
+/* Given a typename and a component, collect the component's offset.
+ Do this by creating a fake decl with that type and walking it
+ through the usual process. */
+
+tree
+cw_asm_c_build_component_ref (tree typename, tree component)
+{
+ tree val, type, fake_datum;
+ enum tree_code code;
+ tree field = NULL;
+ tree ref;
+
+ /* Intercept variables here and make a component ref instead. */
+ if (TREE_CODE (typename) == VAR_DECL)
+ {
+ return build_component_ref (typename, component);
+ }
+
+ val = lookup_name (typename);
+ if (val)
+ {
+ type = TREE_TYPE (val);
+ }
+ else
+ {
+ /* A structure tag will have been assumed to be a label; pick
+ out the original name. */
+ if (strncmp ("LASM", IDENTIFIER_POINTER (typename), 4) == 0)
+ {
+ char *pos = strchr (IDENTIFIER_POINTER (typename), '$');
+ typename = get_identifier (pos + 1);
+ }
+ type = lookup_struct_or_union_tag (typename);
+ if (!type)
+ {
+ error ("no structure or union tag named `%s'", IDENTIFIER_POINTER (typename));
+ return error_mark_node;
+ }
+ }
+
+ fake_datum = make_node (VAR_DECL);
+ TREE_TYPE (fake_datum) = type;
+
+ code = TREE_CODE (type);
+
+ /* See if there is a field or component with name COMPONENT. */
+
+ if (code == RECORD_TYPE || code == UNION_TYPE)
+ {
+ if (!COMPLETE_TYPE_P (type))
+ {
+ c_incomplete_type_error (NULL_TREE, type);
+ return error_mark_node;
+ }
+
+ field = lookup_field (fake_datum, component);
+
+ if (!field)
+ {
+ error ("%s has no member named `%s'",
+ code == RECORD_TYPE ? "structure" : "union",
+ IDENTIFIER_POINTER (component));
+ return error_mark_node;
+ }
+
+ /* Chain the COMPONENT_REFs if necessary down to the FIELD.
+ This might be better solved in future the way the C++ front
+ 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))
+ {
+ tree subdatum = TREE_VALUE (field);
+
+ if (TREE_TYPE (subdatum) == error_mark_node)
+ return error_mark_node;
+
+ ref = build3 (COMPONENT_REF, TREE_TYPE (subdatum), fake_datum,
+ subdatum, NULL_TREE);
+
+ if (TREE_READONLY (fake_datum) || TREE_READONLY (subdatum))
+ TREE_READONLY (ref) = 1;
+ if (TREE_THIS_VOLATILE (fake_datum) || TREE_THIS_VOLATILE (subdatum))
+ TREE_THIS_VOLATILE (ref) = 1;
+
+ if (TREE_DEPRECATED (subdatum))
+ warn_deprecated_use (subdatum);
+
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ if (TREE_UNAVAILABLE (subdatum))
+ warn_unavailable_use (subdatum);
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
+
+ fake_datum = ref;
+ }
+
+ /* Return the field decl by itself. */
+ return TREE_OPERAND (ref, 1);
+ }
+ else if (code != ERROR_MARK)
+ error ("request for member `%s' in something not a structure or union",
+ IDENTIFIER_POINTER (component));
+
+ return error_mark_node;
+}
+/* APPLE LOCAL end CW asm blocks */
+
/* Generate a C `return' statement. RETVAL is the expression for what
to return, or a null pointer for `return;' with no value. */
@@ -6571,6 +6986,11 @@ struct c_switch {
of the GNU case range extension. */
splay_tree cases;
+ /* Number of nested statement expressions within this switch
+ statement; if nonzero, case and default labels may not
+ appear. */
+ unsigned int blocked_stmt_expr;
+
/* The next node on the stack. */
struct c_switch *next;
};
@@ -6625,6 +7045,7 @@ c_start_case (tree exp)
cs->switch_stmt = build_stmt (SWITCH_STMT, exp, NULL_TREE, orig_type);
cs->orig_type = orig_type;
cs->cases = splay_tree_new (case_compare, NULL, NULL);
+ cs->blocked_stmt_expr = 0;
cs->next = c_switch_stack;
c_switch_stack = cs;
@@ -6638,7 +7059,7 @@ do_case (tree low_value, tree high_value)
{
tree label = NULL_TREE;
- if (c_switch_stack)
+ if (c_switch_stack && !c_switch_stack->blocked_stmt_expr)
{
label = c_add_case_label (c_switch_stack->cases,
SWITCH_STMT_COND (c_switch_stack->switch_stmt),
@@ -6647,6 +7068,15 @@ do_case (tree low_value, tree high_value)
if (label == error_mark_node)
label = NULL_TREE;
}
+ else if (c_switch_stack && c_switch_stack->blocked_stmt_expr)
+ {
+ if (low_value)
+ error ("case label in statement expression not containing "
+ "enclosing switch statement");
+ else
+ error ("%<default%> label in statement expression not containing "
+ "enclosing switch statement");
+ }
else if (low_value)
error ("case label not within a switch statement");
else
@@ -6664,6 +7094,8 @@ c_finish_case (tree body)
SWITCH_STMT_BODY (cs->switch_stmt) = body;
+ gcc_assert (!cs->blocked_stmt_expr);
+
/* Emit warnings as needed. */
c_do_switch_warnings (cs->cases, cs->switch_stmt);
@@ -6930,12 +7362,30 @@ tree
c_begin_stmt_expr (void)
{
tree ret;
+ struct c_label_context *nstack;
+ struct c_label_list *glist;
/* We must force a BLOCK for this level so that, if it is not expanded
later, there is a way to turn off the entire subtree of blocks that
are contained in it. */
keep_next_level ();
ret = c_begin_compound_stmt (true);
+ if (c_switch_stack)
+ {
+ c_switch_stack->blocked_stmt_expr++;
+ gcc_assert (c_switch_stack->blocked_stmt_expr != 0);
+ }
+ for (glist = label_context_stack->labels_used;
+ glist != NULL;
+ glist = glist->next)
+ {
+ C_DECL_UNDEFINABLE_STMT_EXPR (glist->label) = 1;
+ }
+ nstack = XOBNEW (&parser_obstack, struct c_label_context);
+ nstack->labels_def = NULL;
+ nstack->labels_used = NULL;
+ nstack->next = label_context_stack;
+ label_context_stack = nstack;
/* Mark the current statement list as belonging to a statement list. */
STATEMENT_LIST_STMT_EXPR (ret) = 1;
@@ -6948,8 +7398,36 @@ c_finish_stmt_expr (tree body)
{
tree last, type, tmp, val;
tree *last_p;
+ struct c_label_list *dlist, *glist, *glist_prev = NULL;
body = c_end_compound_stmt (body, true);
+ if (c_switch_stack)
+ {
+ gcc_assert (c_switch_stack->blocked_stmt_expr != 0);
+ c_switch_stack->blocked_stmt_expr--;
+ }
+ /* It is no longer possible to jump to labels defined within this
+ statement expression. */
+ for (dlist = label_context_stack->labels_def;
+ dlist != NULL;
+ dlist = dlist->next)
+ {
+ C_DECL_UNJUMPABLE_STMT_EXPR (dlist->label) = 1;
+ }
+ /* It is again possible to define labels with a goto just outside
+ this statement expression. */
+ for (glist = label_context_stack->next->labels_used;
+ glist != NULL;
+ glist = glist->next)
+ {
+ C_DECL_UNDEFINABLE_STMT_EXPR (glist->label) = 0;
+ glist_prev = glist;
+ }
+ if (glist_prev != NULL)
+ glist_prev->next = label_context_stack->labels_used;
+ else
+ label_context_stack->next->labels_used = label_context_stack->labels_used;
+ label_context_stack = label_context_stack->next;
/* Locate the last statement in BODY. See c_end_compound_stmt
about always returning a BIND_EXPR. */
@@ -7149,6 +7627,11 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
/* Nonzero means set RESULT_TYPE to the common type of the args. */
int common = 0;
+ /* APPLE LOCAL begin mainline */
+ /* True means types are compatible as far as ObjC is concerned. */
+ bool objc_ok;
+
+ /* APPLE LOCAL end mainline */
if (convert_p)
{
op0 = default_conversion (orig_op0);
@@ -7178,6 +7661,10 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
if (code0 == ERROR_MARK || code1 == ERROR_MARK)
return error_mark_node;
+ /* APPLE LOCAL begin mainline */
+ objc_ok = objc_compare_types (type0, type1, -3, NULL_TREE);
+
+ /* APPLE LOCAL end mainline */
switch (code)
{
case PLUS_EXPR:
@@ -7194,7 +7681,8 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
/* Subtraction of two similar pointers.
We must subtract them as integers, then divide by object size. */
if (code0 == POINTER_TYPE && code1 == POINTER_TYPE
- && comp_target_types (type0, type1, 1))
+ /* APPLE LOCAL mainline */
+ && comp_target_types (type0, type1))
return pointer_diff (op0, op1);
/* Handle pointer minus int. Just like pointer plus int. */
else if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE)
@@ -7363,7 +7851,8 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
/* Anything compares with void *. void * compares with anything.
Otherwise, the targets must be compatible
and both must be object or both incomplete. */
- if (comp_target_types (type0, type1, 1))
+ /* APPLE LOCAL mainline */
+ if (comp_target_types (type0, type1))
result_type = common_pointer_type (type0, type1);
else if (VOID_TYPE_P (tt0))
{
@@ -7382,7 +7871,12 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
" with function pointer");
}
else
- pedwarn ("comparison of distinct pointer types lacks a cast");
+ /* APPLE LOCAL begin mainline */
+ /* Certain combinations of ObjC types do not warrant a
+ warning here. */
+ if (!objc_ok)
+ pedwarn ("comparison of distinct pointer types lacks a cast");
+ /* APPLE LOCAL end mainline */
if (result_type == NULL_TREE)
result_type = ptr_type_node;
@@ -7415,7 +7909,8 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
short_compare = 1;
else if (code0 == POINTER_TYPE && code1 == POINTER_TYPE)
{
- if (comp_target_types (type0, type1, 1))
+ /* APPLE LOCAL mainline */
+ if (comp_target_types (type0, type1))
{
result_type = common_pointer_type (type0, type1);
if (!COMPLETE_TYPE_P (TREE_TYPE (type0))
diff --git a/gcc/c.opt b/gcc/c.opt
index 8267e0ee497..55bc1cc0314 100644
--- a/gcc/c.opt
+++ b/gcc/c.opt
@@ -102,7 +102,7 @@ C ObjC C++ ObjC++ Undocumented
F
C ObjC C++ ObjC++ Joined Separate
--F <dir> Add <dir> to the end of the main framework include path
+-F <dir> Add <dir> to the end of the main framework include path
H
C ObjC C++ ObjC++
@@ -156,6 +156,12 @@ U
C ObjC C++ ObjC++ Joined Separate
-U<macro> Undefine <macro>
+; APPLE LOCAL begin -Wno-#warnings
+W#warnings
+C ObjC C++ ObjC++
+Enable #warning
+; APPLE LOCAL end -Wno-#warnings
+
Wabi
C++ ObjC++ Var(warn_abi)
Warn about things that will change when compiling with an ABI-compliant compiler
@@ -164,6 +170,12 @@ Wall
C ObjC C++ ObjC++
Enable most warning messages
+; APPLE LOCAL begin mainline
+Wassign-intercept
+ObjC ObjC++ Var(warn_assign_intercept)
+Warn whenever an ObjC assignment is being intercepted by the garbage collector
+; APPLE LOCAL end mainline
+
Wbad-function-cast
C ObjC Var(warn_bad_function_cast)
Warn about casting functions to incompatible types
@@ -188,6 +200,12 @@ Wconversion
C ObjC C++ ObjC++ Var(warn_conversion)
Warn about possibly confusing type conversions
+; APPLE LOCAL begin 64bit shorten warning 3865314
+Wshorten-64-to-32
+C ObjC C++ ObjC++ Var(warn_shorten_64_to_32)
+Warn if a value is implicitly converted from a 64 bit type to a 32 bit type
+; APPLE LOCAL end 64bit shorten warning 3865314
+
Wctor-dtor-privacy
C++ ObjC++ Var(warn_ctor_dtor_privacy)
Warn when all constructors and destructors are private
@@ -200,6 +218,12 @@ Wdeprecated
C++ ObjC++ Var(warn_deprecated) Init(1)
Warn about deprecated compiler features
+; APPLE LOCAL begin 4086969
+Wdiscard-qual
+C ObjC Var(warn_discard_qual) Init(1)
+Warn about discarded qualifiers
+; APPLE LOCAL end 4086969
+
Wdiv-by-zero
C ObjC Var(warn_div_by_zero) Init(1)
Warn about compile-time integer division by zero
@@ -220,6 +244,12 @@ Werror-implicit-function-declaration
C ObjC RejectNegative
Make implicit function declarations an error
+; APPLE LOCAL begin -Wextra-tokens
+Wextra-tokens
+C ObjC C++ ObjC++
+Warn about extra tokens at the end of prepreprocessor directives
+; APPLE LOCAL end -Wextra-tokens
+
Wfloat-equal
C ObjC C++ ObjC++ Var(warn_float_equal)
Warn if testing floating point numbers for equality
@@ -251,6 +281,12 @@ Warn about zero-length formats
Wformat=
C ObjC C++ ObjC++ Joined
+; APPLE LOCAL begin -Wfour-char-constants
+Wfour-char-constants
+C ObjC C++ ObjC++
+Warn about multicharacter constants containing exactly four characters
+; APPLE LOCAL end -Wfour-char-constants
+
Winit-self
C ObjC C++ ObjC++ Var(warn_init_self)
Warn about variables which are initialized to themselves.
@@ -278,6 +314,12 @@ Winvalid-pch
C ObjC C++ ObjC++
Warn about PCH files that are found but not used
+; APPLE LOCAL begin -Wlong-double
+Wlong-double
+C ObjC C++ ObjC++
+Warn about \"long double\"
+; APPLE LOCAL end -Wlong-double
+
Wlong-long
C ObjC C++ ObjC++ Var(warn_long_long) Init(1)
Do not warn about using \"long long\" when -pedantic
@@ -310,6 +352,12 @@ Wmissing-prototypes
C ObjC Var(warn_missing_prototypes)
Warn about global functions without prototypes
+; APPLE LOCAL begin -Wmost
+Wmost
+C ObjC C++ ObjC++
+Like -Wall but without -Wparentheses
+; APPLE LOCAL end -Wmost
+
Wmultichar
C ObjC C++ ObjC++
Warn about use of multi-character character constants
@@ -318,6 +366,18 @@ Wnested-externs
C ObjC Var(warn_nested_externs)
Warn about \"extern\" declarations not at file scope
+; APPLE LOCAL begin -Wnewline-eof
+Wnewline-eof
+C ObjC C++ ObjC++
+Warn about files missing a newline at the end of the file
+; APPLE LOCAL end -Wnewline-eof
+
+; APPLE LOCAL begin non lvalue assign
+Wnon-lvalue-assign
+C ObjC C++ ObjC++ Var(warn_non_lvalue_assign) Init(1)
+Warn about assignment to casts and conditional expressions of lvalues
+; APPLE LOCAL end non lvalue assign
+
Wnon-template-friend
C++ ObjC++ Var(warn_nontemplate_friend) Init(1)
Warn when non-templatized friend functions are declared within a template
@@ -330,6 +390,12 @@ Wnonnull
C ObjC Var(warn_nonnull)
Warn about NULL being passed to argument slots marked as requiring non-NULL
+; APPLE LOCAL begin mainline UCNs 2005-04-17 3892809
+Wnormalized=
+C ObjC C++ ObjC++ Joined
+-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode strings
+; APPLE LOCAL end mainline UCNs 2005-04-17 3892809
+
Wold-style-cast
C++ ObjC++ Var(warn_old_style_cast)
Warn if a C-style cast is used in a program
@@ -390,6 +456,12 @@ Wstrict-prototypes
C ObjC Var(warn_strict_prototypes)
Warn about unprototyped function declarations
+; APPLE LOCAL begin mainline
+Wstrict-selector-match
+ObjC ObjC++ Var(warn_strict_selector_match)
+Warn if type signatures of candidate methods do not match exactly
+; APPLE LOCAL end mainline
+
Wsynth
C++ ObjC++ Var(warn_synth)
Warn when synthesis behavior differs from Cfront
@@ -436,7 +508,13 @@ Warn when a pointer differs in signedness in an assignment.
ansi
C ObjC C++ ObjC++
-A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead
+A synonym for -std=c89 (for C) or -std=c++98 (for C++).
+
+; APPLE LOCAL begin fat builds
+arch
+C ObjC C++ ObjC++ Separate
+The architecture to build for.
+; APPLE LOCAL end fat builds
d
C ObjC C++ ObjC++ Joined
@@ -453,10 +531,36 @@ falt-external-templates
C++ ObjC++
Change when template instances are emitted
+; APPLE LOCAL begin Altivec 3837840
+faltivec
+C ObjC C++ ObjC++ Var(flag_faltivec)
+Enable Altivec
+; APPLE LOCAL end Altivec 3837840
+
fasm
C ObjC C++ ObjC++
Recognize the \"asm\" keyword
+; APPLE LOCAL begin CW asm blocks
+fasm-blocks
+C ObjC C++ ObjC++
+Handle CW-style assembly blocks
+; APPLE LOCAL end CW asm blocks
+
+; APPLE LOCAL begin -fast or -fastf or -fastcp
+fast
+C C++
+Used for c or c++ optimization
+
+fastcp
+C++
+Used when C++ specific optimization is needed
+
+fastf
+C
+Used when c is generated from NAG fortran
+; APPLE LOCAL end -fast or -fastf or -fastcp
+
fbuiltin
C ObjC C++ ObjC++
Recognize built-in functions
@@ -468,6 +572,12 @@ fcheck-new
C++ ObjC++
Check the return value of new
+; APPLE LOCAL begin structor decloning
+fclone-structors
+C++ ObjC++
+Factor out certain duplicate code in constructors and destructors
+; APPLE LOCAL end structor decloning
+
fcond-mismatch
C ObjC C++ ObjC++
Allow the arguments of the '?' operator to have different types
@@ -488,6 +598,12 @@ fdefault-inline
C++ ObjC++
Inline member functions by default
+; APPLE LOCAL begin disable_typechecking_for_spec_flag
+fdisable-typechecking-for-spec
+C C++
+Make crossfile type mismatches warnings not errors (for SPEC)
+; APPLE LOCAL end disable_typechecking_for_spec_flag
+
fdollars-in-identifiers
C ObjC C++ ObjC++
Permit '$' as an identifier character
@@ -508,7 +624,7 @@ C ObjC C++ ObjC++ Joined RejectNegative
finput-charset=
C ObjC C++ ObjC++ Joined RejectNegative
--finput-charset=<cset> Specify the default character set for source files.
+-finput-charset=<cset> Specify the default character set for source files.
fexternal-templates
@@ -586,16 +702,40 @@ fnil-receivers
ObjC ObjC++
Assume that receivers of Objective-C messages may be nil
+; APPLE LOCAL begin non lvalue assign
+fnon-lvalue-assign
+C ObjC C++ ObjC++ Var(flag_non_lvalue_assign) Init(1)
+Allow assignment to casts and conditional expressions of lvalues
+; APPLE LOCAL end non lvalue assign
+
fnonansi-builtins
C++ ObjC++
fnonnull-objects
C++ ObjC++
+; APPLE LOCAL begin mainline
+fobjc-call-cxx-cdtors
+ObjC++
+Generate special ObjC methods to initialize/destroy non-POD C++ ivars, if needed
+; APPLE LOCAL end mainline
+
+; APPLE LOCAL begin mainline
+fobjc-direct-dispatch
+ObjC ObjC++ Var(flag_objc_direct_dispatch)
+Allow fast jumps (via comm page) to the message dispatcher
+; APPLE LOCAL end mainline
+
fobjc-exceptions
ObjC ObjC++
Enable Objective-C exception and synchronization syntax
+; APPLE LOCAL begin mainline
+fobjc-gc
+ObjC ObjC++ Var(flag_objc_gc)
+Enable garbage collection (GC) in ObjC/ObjC++ programs
+; APPLE LOCAL end mainline
+
fobjc-sjlj-exceptions
ObjC ObjC++
Enable Objective-C setjmp exception handling runtime
@@ -635,6 +775,11 @@ frtti
C++ ObjC++
Generate run time type descriptor information
+; APPLE LOCAL begin ss2
+fsave-repository=
+C ObjC C++ ObjC++ Joined Separate
+; APPLE LOCAL end ss2
+
fshort-double
C ObjC C++ ObjC++
Use the same size for double as for float
@@ -695,9 +840,11 @@ fuse-cxa-atexit
C++ ObjC++
Use __cxa_atexit to register destructors
+; APPLE LOCAL begin mainline 4.0 2005-03-25
fvisibility-inlines-hidden
-C++
+C++ ObjC++
Marks all inlined methods as having hidden visibility
+; APPLE LOCAL end mainline 4.0 2005-03-25
fvtable-gc
C++ ObjC++
@@ -797,6 +944,12 @@ print-objc-runtime-info
ObjC ObjC++
Generate C header of platform-specific features
+; APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+print-pch-checksum
+C ObjC C++ ObjC++
+Print a checksum of the executable for PCH validity checking, and stop.
+
+; APPLE LOCAL end mainline 4.1 2005-06-17 3988498
remap
C ObjC C++ ObjC++
Remap file names when including files
@@ -835,7 +988,7 @@ Deprecated in favor of -std=gnu99
std=iso9899:1990
C ObjC
-Deprecated in favor of -std=c89
+Conform to the ISO 1990 C standard
std=iso9899:199409
C ObjC
@@ -843,11 +996,11 @@ Conform to the ISO 1990 C standard as amended in 1994
std=iso9899:1999
C ObjC
-Deprecated in favor of -std=c99
+Conform to the ISO 1999 C standard
std=iso9899:199x
C ObjC
-Deprecated in favor of -std=c99
+Deprecated in favor of -std=iso9899:1999
traditional-cpp
C ObjC C++ ObjC++
diff --git a/gcc/calls.c b/gcc/calls.c
index 291f88cb835..91b73256e7e 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -135,7 +135,8 @@ static void initialize_argument_information (int, struct arg_data *,
struct args_size *, int, tree,
tree, CUMULATIVE_ARGS *, int,
rtx *, int *, int *, int *,
- bool *, bool);
+ /* APPLE LOCAL Altivec */
+ bool *, bool, tree);
static void compute_argument_addresses (struct arg_data *, rtx, int);
static rtx rtx_for_function_call (tree, tree);
static void load_register_parameters (struct arg_data *, int, rtx *, int,
@@ -262,7 +263,15 @@ emit_call_1 (rtx funexp, tree fntree, tree fndecl ATTRIBUTE_UNUSED,
and we don't want to load it into a register as an optimization,
because prepare_call_address already did it if it should be done. */
if (GET_CODE (funexp) != SYMBOL_REF)
+/* APPLE LOCAL begin use R12 as register for indirect calls */
+/* This improves codegen (computation of value will be into R12) and
+ makes indirect sibcalls possible by ensuring a volatile reg is used. */
+#ifdef MAGIC_INDIRECT_CALL_REG
+ funexp = gen_rtx_REG (Pmode, MAGIC_INDIRECT_CALL_REG);
+#else
funexp = memory_address (FUNCTION_MODE, funexp);
+#endif
+/* APPLE LOCAL end use R12 as register for indirect calls */
#if defined (HAVE_sibcall_pop) && defined (HAVE_sibcall_value_pop)
if ((ecf_flags & ECF_SIBCALL)
@@ -408,6 +417,23 @@ emit_call_1 (rtx funexp, tree fntree, tree fndecl ATTRIBUTE_UNUSED,
SIBLING_CALL_P (call_insn) = ((ecf_flags & ECF_SIBCALL) != 0);
+ /* APPLE LOCAL begin ObjC direct dispatch */
+ /* Annotate calls to functions with fixed addresses. */
+ if (fndecl && TREE_CODE (fndecl) == FUNCTION_DECL)
+ {
+ tree t = lookup_attribute ("hard_coded_address",
+ DECL_ATTRIBUTES (fndecl));
+ if (t)
+ /* The constant address stored here has only 32 bits. This
+ is not a limitation, because the bla instruction has an
+ architectural limit of 26 bits. */
+ REG_NOTES (call_insn) = gen_rtx_EXPR_LIST (REG_ABSCALL,
+ gen_rtx_CONST_INT (FUNCTION_MODE,
+ tree_low_cst (TREE_VALUE (t), 0)),
+ REG_NOTES (call_insn));
+ }
+ /* APPLE LOCAL end ObjC direct dispatch */
+
/* Restore this now, so that we do defer pops for this call's args
if the context of the call as a whole permits. */
inhibit_defer_pop = old_inhibit_defer_pop;
@@ -930,7 +956,10 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
int reg_parm_stack_space,
rtx *old_stack_level, int *old_pending_adj,
int *must_preallocate, int *ecf_flags,
- bool *may_tailcall, bool call_from_thunk_p)
+ /* APPLE LOCAL begin Altivec */
+ bool *may_tailcall, bool call_from_thunk_p,
+ tree type_arg_types)
+ /* APPLE LOCAL end Altivec */
{
/* 1 if scanning parms front to back, -1 if scanning back to front. */
int inc;
@@ -941,6 +970,12 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
int i;
tree p;
+ /* APPLE LOCAL begin Altivec */
+ int pass, last_pass;
+ int save_i, save_inc;
+ int stdarg;
+ /* APPLE LOCAL end Altivec */
+
args_size->constant = 0;
args_size->var = 0;
@@ -959,13 +994,31 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
i = 0, inc = 1;
}
- /* I counts args in order (to be) pushed; ARGPOS counts in order written. */
- for (p = actparms, argpos = 0; p; p = TREE_CHAIN (p), i += inc, argpos++)
+ /* APPLE LOCAL begin Altivec */
+ stdarg = (type_arg_types != 0
+ && TREE_VALUE (tree_last (type_arg_types)) != void_type_node);
+ last_pass = 1;
+ save_i = i;
+ save_inc = inc;
+ for (pass = 1; pass <= last_pass; pass++)
+ {
+ i = save_i;
+ inc = save_inc;
+ /* I counts args in order (to be) pushed; ARGPOS counts in order written. */
+ for (p = actparms, argpos = 0; p; p = TREE_CHAIN (p), i += inc, argpos++)
+ /* APPLE LOCAL end Altivec */
{
tree type = TREE_TYPE (TREE_VALUE (p));
int unsignedp;
enum machine_mode mode;
+ /* APPLE LOCAL begin Altivec */
+ /* In 1st iteration over actual arguments, only consider non-vectors.
+ During 2nd iteration, finish off with vector parameters. */
+ if (!stdarg && targetm.calls.skip_vec_args (type, pass, &last_pass))
+ continue;
+ /* APPLE LOCAL end Altivec */
+
args[i].tree_value = TREE_VALUE (p);
/* Replace erroneous argument with constant zero. */
@@ -1148,6 +1201,9 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
FUNCTION_ARG_ADVANCE (*args_so_far, TYPE_MODE (type), type,
argpos < n_named_args);
}
+ /* APPLE LOCAL begin Altivec */
+ }
+ /* APPLE LOCAL end Altivec */
}
/* Update ARGS_SIZE to contain the total size for the argument block.
@@ -1545,6 +1601,8 @@ load_register_parameters (struct arg_data *args, int num_actuals,
&& args[i].locate.where_pad == downward
#else
&& BYTES_BIG_ENDIAN
+ /* APPLE LOCAL fix to regression caused by PR 14262 */
+ && !args[i].pass_on_stack
#endif
)
{
@@ -1802,12 +1860,20 @@ expand_call (tree exp, rtx target, int ignore)
tree actparms = TREE_OPERAND (exp, 1);
/* RTX for the function to be called. */
rtx funexp;
+ /* APPLE LOCAL begin use R12 as register for indirect calls */
+ /* A single rtx to be shared among multiple chains for indirect sibcalls */
+ rtx funexp_keep = NULL_RTX;
+ /* APPLE LOCAL end use R12 as register for indirect calls */
/* Sequence of insns to perform a normal "call". */
rtx normal_call_insns = NULL_RTX;
/* Sequence of insns to perform a tail "call". */
rtx tail_call_insns = NULL_RTX;
/* Data type of the function. */
tree funtype;
+ /* APPLE LOCAL begin objc stret methods */
+ /* Return type of the function. */
+ tree saved_return_type;
+ /* APPLE LOCAL end objc stret methods */
tree type_arg_types;
/* Declaration of the function being called,
or 0 if the function is computed (not known by name). */
@@ -1994,8 +2060,10 @@ expand_call (tree exp, rtx target, int ignore)
structure_value_addr = expand_expr (return_arg, NULL_RTX,
VOIDmode, EXPAND_NORMAL);
}
+#if 0
else if (target && MEM_P (target))
structure_value_addr = XEXP (target, 0);
+#endif
else
{
/* For variable-sized objects, we must be called with a target
@@ -2025,6 +2093,17 @@ expand_call (tree exp, rtx target, int ignore)
gcc_assert (POINTER_TYPE_P (funtype));
funtype = TREE_TYPE (funtype);
+ /* APPLE LOCAL begin objc stret methods */
+ /* Set the return type of the function to the type of the call expression,
+ in case that's different from the function declaration.
+ (This is the case when calling _objc_msgSend_stret, for example,
+ which is declared to return id, but actually returns a struct.)
+ But save the original return type first, so it can be restored later
+ in case it's needed. */
+ saved_return_type = TREE_TYPE (funtype);
+ TREE_TYPE (funtype) = TREE_TYPE (exp);
+ /* APPLE LOCAL end objc stret methods */
+
/* Munge the tree to split complex arguments into their imaginary
and real parts. */
if (targetm.calls.split_complex_arg)
@@ -2127,7 +2206,10 @@ expand_call (tree exp, rtx target, int ignore)
&args_so_far, reg_parm_stack_space,
&old_stack_level, &old_pending_adj,
&must_preallocate, &flags,
- &try_tail_call, CALL_FROM_THUNK_P (exp));
+ /* APPLE LOCAL begin Altivec */
+ &try_tail_call, CALL_FROM_THUNK_P (exp),
+ type_arg_types);
+ /* APPLE LOCAL end Altivec */
if (args_size.var)
{
@@ -2215,6 +2297,15 @@ expand_call (tree exp, rtx target, int ignore)
preferred_unit_stack_boundary = preferred_stack_boundary / BITS_PER_UNIT;
+ /* APPLE LOCAL begin indirect sibcalls */
+ /* Do this before creating the chains, to avoid a branch within them.
+ The paired chains both branch to the same label, but only one
+ chain has a definition of that label, because of the way the
+ infrastructure works. */
+ if ( !fndecl )
+ funexp_keep = rtx_for_function_call (fndecl, addr);
+ /* APPLE LOCAL end indirect sibcalls */
+
/* We want to make two insn chains; one for a sibling call, the other
for a normal call. We will select one of the two chains after
initial RTL generation is complete. */
@@ -2257,10 +2348,14 @@ expand_call (tree exp, rtx target, int ignore)
Also, do all pending adjustments now if there is any chance
this might be a call to alloca or if we are expanding a sibling
call sequence or if we are calling a function that is to return
- with stack pointer depressed. */
+ with stack pointer depressed.
+ Also do the adjustments before a throwing call, otherwise
+ exception handling can fail; PR 19225. */
if (pending_stack_adjust >= 32
|| (pending_stack_adjust > 0
&& (flags & (ECF_MAY_BE_ALLOCA | ECF_SP_DEPRESSED)))
+ || (pending_stack_adjust > 0
+ && flag_exceptions && !(flags & ECF_NOTHROW))
|| pass == 0)
do_pending_stack_adjust ();
@@ -2524,7 +2619,12 @@ expand_call (tree exp, rtx target, int ignore)
be deferred during the evaluation of the arguments. */
NO_DEFER_POP;
- funexp = rtx_for_function_call (fndecl, addr);
+ /* APPLE LOCAL begin indirect sibcalls */
+ if ( !fndecl )
+ funexp = funexp_keep;
+ else
+ funexp = rtx_for_function_call (fndecl, addr);
+ /* APPLE LOCAL end indirect sibcalls */
/* Figure out the register where the value, if any, will come back. */
valreg = 0;
@@ -2659,6 +2759,24 @@ expand_call (tree exp, rtx target, int ignore)
next_arg_reg = FUNCTION_ARG (args_so_far, VOIDmode,
void_type_node, 1);
+ /* APPLE LOCAL begin indirect calls in R12 */
+#ifdef MAGIC_INDIRECT_CALL_REG
+ /* For indirect calls, put the callee address in R12. This is necessary
+ for ObjC methods. This could be handled by patterns in rs6000.md,
+ as in 2.95, but it is better to put this copy in the RTL so the
+ optimizer can see it, and sometimes get rid of it, and the scheduler
+ can move it around. Right now none of these good things seems to
+ happen, but this should be fixable. (But note FSF won't like
+ putting it here.) */
+ if (!fndecl)
+ {
+ rtx magic_reg = gen_rtx_REG (Pmode, MAGIC_INDIRECT_CALL_REG);
+ emit_move_insn (magic_reg, funexp);
+ use_reg (&call_fusage, magic_reg);
+ }
+#endif
+ /* APPLE LOCAL end indirect calls in R12 */
+
/* All arguments and registers used for the call must be set up by
now! */
@@ -2686,6 +2804,12 @@ expand_call (tree exp, rtx target, int ignore)
valreg = gen_rtx_REG (TYPE_MODE (TREE_TYPE (exp)), REGNO (valreg));
}
+ /* APPLE LOCAL begin objc stret methods */
+ /* Restore the function's original return type
+ in case it's needed later on. */
+ TREE_TYPE (funtype) = saved_return_type;
+ /* APPLE LOCAL end objc stret methods */
+
/* If call is cse'able, make appropriate pair of reg-notes around it.
Test valreg so we don't crash; may safely ignore `const'
if return type is void. Disable for PARALLEL return values, because
@@ -3002,6 +3126,24 @@ expand_call (tree exp, rtx target, int ignore)
== stack_pointer_delta - pending_stack_adjust));
}
+ /* APPLE LOCAL begin sibcall optimization stomped CW frames (radar 3007352) */
+ /* GCC for PPC on Darwin has always rounded 'current_function_args_size' up to a multiple of 16.
+ CodeWarrior doesn't.
+ A father() that passes, say, 40 bytes of parameters to daughter() will have eight bytes of
+ padding if compiled with GCC, and zero bytes of padding if compiled with CW.
+ If a GCC-compiled daughter() in turn sibcalls to granddaughter() with, say, 44 bytes of parameters,
+ GCC will generate a store of that extra parameter into padding of the father() parameter area.
+ Alas, if father() was compild by CW, father() will not have the parameter area padding,
+ and something in the father() stackframe will be stomped.
+ Parameter areas are guaranteed to be a minimum of 32 bytes. See Radar 3007352. */
+ if ( ( ! sibcall_failure)
+ && args_size.constant > 32
+ && args_size.constant > cfun->unrounded_args_size)
+ {
+ sibcall_failure = 1;
+ }
+ /* APPLE LOCAL end sibcall optimization stomped CW frames (radar 3007352) */
+
/* If something prevents making this a sibling call,
zero out the sequence. */
if (sibcall_failure)
diff --git a/gcc/cfg.c b/gcc/cfg.c
index bc68faab799..6737003e60c 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -273,43 +273,29 @@ unchecked_make_edge (basic_block src, basic_block dst, int flags)
edge
cached_make_edge (sbitmap *edge_cache, basic_block src, basic_block dst, int flags)
{
- int use_edge_cache;
- edge e;
-
- /* Don't bother with edge cache for ENTRY or EXIT, if there aren't that
- many edges to them, or we didn't allocate memory for it. */
- use_edge_cache = (edge_cache
- && src != ENTRY_BLOCK_PTR && dst != EXIT_BLOCK_PTR);
+ if (edge_cache == NULL
+ || src == ENTRY_BLOCK_PTR
+ || dst == EXIT_BLOCK_PTR)
+ return make_edge (src, dst, flags);
- /* Make sure we don't add duplicate edges. */
- switch (use_edge_cache)
+ /* Does the requested edge already exist? */
+ if (! TEST_BIT (edge_cache[src->index], dst->index))
{
- default:
- /* Quick test for non-existence of the edge. */
- if (! TEST_BIT (edge_cache[src->index], dst->index))
- break;
-
- /* The edge exists; early exit if no work to do. */
- if (flags == 0)
- return NULL;
-
- /* Fall through. */
- case 0:
- e = find_edge (src, dst);
- if (e)
- {
- e->flags |= flags;
- return NULL;
- }
- break;
+ /* The edge does not exist. Create one and update the
+ cache. */
+ SET_BIT (edge_cache[src->index], dst->index);
+ return unchecked_make_edge (src, dst, flags);
}
- e = unchecked_make_edge (src, dst, flags);
-
- if (use_edge_cache)
- SET_BIT (edge_cache[src->index], dst->index);
+ /* At this point, we know that the requested edge exists. Adjust
+ flags if necessary. */
+ if (flags)
+ {
+ edge e = find_edge (src, dst);
+ e->flags |= flags;
+ }
- return e;
+ return NULL;
}
/* Create an edge connecting SRC and DEST with flags FLAGS. Return newly
@@ -318,7 +304,16 @@ cached_make_edge (sbitmap *edge_cache, basic_block src, basic_block dst, int fla
edge
make_edge (basic_block src, basic_block dest, int flags)
{
- return cached_make_edge (NULL, src, dest, flags);
+ edge e = find_edge (src, dest);
+
+ /* Make sure we don't add duplicate edges. */
+ if (e)
+ {
+ e->flags |= flags;
+ return NULL;
+ }
+
+ return unchecked_make_edge (src, dest, flags);
}
/* Create an edge connecting SRC to DEST and set probability by knowing
diff --git a/gcc/cfganal.c b/gcc/cfganal.c
index f2322535243..45e9590b3a3 100644
--- a/gcc/cfganal.c
+++ b/gcc/cfganal.c
@@ -308,11 +308,15 @@ find_unreachable_blocks (void)
basic_block b = *--tos;
FOR_EACH_EDGE (e, ei, b->succs)
- if (!(e->dest->flags & BB_REACHABLE))
- {
- *tos++ = e->dest;
- e->dest->flags |= BB_REACHABLE;
- }
+ {
+ basic_block dest = e->dest;
+
+ if (!(dest->flags & BB_REACHABLE))
+ {
+ *tos++ = dest;
+ dest->flags |= BB_REACHABLE;
+ }
+ }
}
free (worklist);
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index bbe6807627a..c070f6c0dbd 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -353,7 +353,7 @@ thread_jump (int mode, edge e, basic_block b)
if (INSN_P (insn))
cselib_process_insn (insn);
- nonequal = BITMAP_XMALLOC();
+ nonequal = BITMAP_ALLOC (NULL);
CLEAR_REG_SET (nonequal);
/* Now assume that we've continued by the edge E to B and continue
@@ -401,7 +401,7 @@ thread_jump (int mode, edge e, basic_block b)
EXECUTE_IF_SET_IN_REG_SET (nonequal, 0, i, rsi)
goto failed_exit;
- BITMAP_XFREE (nonequal);
+ BITMAP_FREE (nonequal);
cselib_finish ();
if ((comparison_dominates_p (code1, code2) != 0)
!= (XEXP (SET_SRC (set2), 1) == pc_rtx))
@@ -410,7 +410,7 @@ thread_jump (int mode, edge e, basic_block b)
return FALLTHRU_EDGE (b);
failed_exit:
- BITMAP_XFREE (nonequal);
+ BITMAP_FREE (nonequal);
cselib_finish ();
return NULL;
}
@@ -1686,6 +1686,10 @@ try_crossjump_to_edge (int mode, edge e1, edge e2)
delete_basic_block (to_remove);
update_forwarder_flag (redirect_from);
+ /* APPLE LOCAL begin mainline 4141805 */
+ if (redirect_to != src2)
+ update_forwarder_flag (src2);
+ /* APPLE LOCAL end mainline 4141805 */
return true;
}
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index e5776c68947..d429c69661e 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -1138,7 +1138,7 @@ expand_gimple_basic_block (basic_block bb, FILE * dump_file)
do_pending_stack_adjust ();
- /* Find the the block tail. The last insn is the block is the insn
+ /* Find the block tail. The last insn in the block is the insn
before a barrier and/or table jump insn. */
last = get_last_insn ();
if (BARRIER_P (last))
diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c
index 0f0c230fb80..12ffdc87263 100644
--- a/gcc/cfghooks.c
+++ b/gcc/cfghooks.c
@@ -320,6 +320,10 @@ edge
split_block (basic_block bb, void *i)
{
basic_block new_bb;
+ /* APPLE LOCAL begin lno */
+ bool irr = (bb->flags & BB_IRREDUCIBLE_LOOP) != 0;
+ int flags = EDGE_FALLTHRU;
+ /* APPLE LOCAL end lno */
if (!cfg_hooks->split_block)
internal_error ("%s does not support split_block.", cfg_hooks->name);
@@ -331,7 +335,14 @@ split_block (basic_block bb, void *i)
new_bb->count = bb->count;
new_bb->frequency = bb->frequency;
new_bb->loop_depth = bb->loop_depth;
-
+ /* APPLE LOCAL begin lno */
+ if (irr)
+ {
+ new_bb->flags |= BB_IRREDUCIBLE_LOOP;
+ flags |= EDGE_IRREDUCIBLE_LOOP;
+ }
+ /* APPLE LOCAL end lno */
+
if (dom_info_available_p (CDI_DOMINATORS))
{
redirect_immediate_dominators (CDI_DOMINATORS, bb, new_bb);
@@ -451,6 +462,15 @@ split_edge (edge e)
}
};
+ /* APPLE LOCAL begin lno */
+ if (irr)
+ {
+ ret->flags |= BB_IRREDUCIBLE_LOOP;
+ EDGE_PRED (ret, 0)->flags |= EDGE_IRREDUCIBLE_LOOP;
+ EDGE_SUCC (ret, 0)->flags |= EDGE_IRREDUCIBLE_LOOP;
+ }
+ /* APPLE LOCAL end lno */
+
return ret;
}
@@ -570,6 +590,8 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge),
edge e, fallthru;
edge_iterator ei;
basic_block dummy, jump;
+ /* APPLE LOCAL lno */
+ bool fst_irr = false;
if (!cfg_hooks->make_forwarder_block)
internal_error ("%s does not support make_forwarder_block.",
@@ -584,6 +606,8 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge),
{
if (redirect_edge_p (e))
{
+ /* APPLE LOCAL lno */
+ fst_irr |= (e->flags & EDGE_IRREDUCIBLE_LOOP) != 0;
ei_next (&ei);
continue;
}
@@ -603,6 +627,14 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge),
new_bb_cbk (jump);
}
+ /* APPLE LOCAL begin lno */
+ if (!fst_irr)
+ {
+ dummy->flags &= ~BB_IRREDUCIBLE_LOOP;
+ fallthru->flags &= ~EDGE_IRREDUCIBLE_LOOP;
+ }
+ /* APPLE LOCAL end lno */
+
if (dom_info_available_p (CDI_DOMINATORS))
{
basic_block doms_to_fix[2];
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 241e97628e3..e106ba964c2 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -523,6 +523,12 @@ reemit_insn_block_notes (void)
{
tree this_block;
+ /* Avoid putting scope notes between jump table and its label. */
+ if (JUMP_P (insn)
+ && (GET_CODE (PATTERN (insn)) == ADDR_VEC
+ || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC))
+ continue;
+
this_block = insn_scope (insn);
/* For sequences compute scope resulting from merging all scopes
of instructions nested inside. */
@@ -1072,6 +1078,8 @@ duplicate_insn_chain (rtx from, rtx to)
code. */
extern basic_block cfg_layout_duplicate_bb (basic_block);
+/* APPLE LOCAL lno */
+extern basic_block cfg_layout_duplicate_bb (basic_block);
basic_block
cfg_layout_duplicate_bb (basic_block bb)
{
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c
index 26a9cdee898..cba82f7efd5 100644
--- a/gcc/cfgloop.c
+++ b/gcc/cfgloop.c
@@ -1,5 +1,5 @@
/* Natural loop discovery code for GNU compiler.
- Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -25,6 +25,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "rtl.h"
#include "hard-reg-set.h"
#include "obstack.h"
+#include "function.h"
#include "basic-block.h"
#include "toplev.h"
#include "cfgloop.h"
@@ -510,6 +511,10 @@ establish_preds (struct loop *loop)
struct loop *ploop, *father = loop->outer;
loop->depth = father->depth + 1;
+
+ /* Remember the current loop depth if it is the largest seen so far. */
+ cfun->max_loop_depth = MAX (cfun->max_loop_depth, loop->depth);
+
if (loop->pred)
free (loop->pred);
loop->pred = xmalloc (sizeof (struct loop *) * loop->depth);
@@ -819,6 +824,10 @@ flow_loops_find (struct loops *loops, int flags)
memset (loops, 0, sizeof *loops);
+ /* We are going to recount the maximum loop depth,
+ so throw away the last count. */
+ cfun->max_loop_depth = 0;
+
/* Taking care of this degenerate case makes the rest of
this code simpler. */
if (n_basic_blocks == 0)
@@ -960,7 +969,13 @@ flow_loops_find (struct loops *loops, int flags)
loops->num = num_loops;
initialize_loops_parallel_p (loops);
+/* APPLE LOCAL begin lno */
+ }
+ else
+ {
+ free_dominance_info (CDI_DOMINATORS);
}
+/* APPLE LOCAL end lno */
sbitmap_free (headers);
@@ -1103,7 +1118,7 @@ get_loop_body_in_bfs_order (const struct loop *loop)
gcc_assert (loop->latch != EXIT_BLOCK_PTR);
blocks = xcalloc (loop->num_nodes, sizeof (basic_block));
- visited = BITMAP_XMALLOC ();
+ visited = BITMAP_ALLOC (NULL);
bb = loop->header;
while (i < loop->num_nodes)
@@ -1135,7 +1150,7 @@ get_loop_body_in_bfs_order (const struct loop *loop)
bb = blocks[vc++];
}
- BITMAP_XFREE (visited);
+ BITMAP_FREE (visited);
return blocks;
}
@@ -1213,7 +1228,7 @@ remove_bb_from_loops (basic_block bb)
loop->pred[i]->num_nodes--;
bb->loop_father = NULL;
bb->loop_depth = 0;
- }
+}
/* Finds nearest common ancestor in loop tree for given loops. */
struct loop *
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 8de76449941..8eef27d66c8 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -2303,6 +2303,14 @@ purge_dead_edges (basic_block bb)
{
if (can_throw_internal (BB_END (bb)))
{
+ /* APPLE LOCAL begin lno */
+ /* If the call was removed/moved somewhere else, cleanup the
+ EDGE_ABNORMAL_CALL flag. */
+ if ((e->flags & EDGE_ABNORMAL_CALL)
+ && GET_CODE (BB_END (bb)) != CALL_INSN)
+ e->flags &= ~EDGE_ABNORMAL_CALL;
+ /* APPLE LOCAL end lno */
+
ei_next (&ei);
continue;
}
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 7d1cca20df1..61e745c2d82 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -95,6 +95,12 @@ The varpool data structure:
#include "varray.h"
#include "output.h"
#include "intl.h"
+/* APPLE LOCAL Selective inlining of functions that use Altivec 3837835 */
+#include "function.h"
+
+static void cgraph_node_remove_callers (struct cgraph_node *node);
+static inline void cgraph_edge_remove_caller (struct cgraph_edge *e);
+static inline void cgraph_edge_remove_callee (struct cgraph_edge *e);
/* Hash table used to convert declarations into nodes. */
static GTY((param_is (struct cgraph_node))) htab_t cgraph_hash;
@@ -289,30 +295,55 @@ cgraph_create_edge (struct cgraph_node *caller, struct cgraph_node *callee,
edge->caller = caller;
edge->callee = callee;
edge->call_expr = call_expr;
+ edge->prev_caller = NULL;
edge->next_caller = callee->callers;
+ if (callee->callers)
+ callee->callers->prev_caller = edge;
+ edge->prev_callee = NULL;
edge->next_callee = caller->callees;
+ if (caller->callees)
+ caller->callees->prev_callee = edge;
caller->callees = edge;
callee->callers = edge;
return edge;
}
-/* Remove the edge E the cgraph. */
+/* Remove the edge E from the list of the callers of the callee. */
+
+static inline void
+cgraph_edge_remove_callee (struct cgraph_edge *e)
+{
+ if (e->prev_caller)
+ e->prev_caller->next_caller = e->next_caller;
+ if (e->next_caller)
+ e->next_caller->prev_caller = e->prev_caller;
+ if (!e->prev_caller)
+ e->callee->callers = e->next_caller;
+}
+
+/* Remove the edge E from the list of the callees of the caller. */
+
+static inline void
+cgraph_edge_remove_caller (struct cgraph_edge *e)
+{
+ if (e->prev_callee)
+ e->prev_callee->next_callee = e->next_callee;
+ if (e->next_callee)
+ e->next_callee->prev_callee = e->prev_callee;
+ if (!e->prev_callee)
+ e->caller->callees = e->next_callee;
+}
+
+/* Remove the edge E in the cgraph. */
void
cgraph_remove_edge (struct cgraph_edge *e)
{
- struct cgraph_edge **edge, **edge2;
+ /* Remove from callers list of the callee. */
+ cgraph_edge_remove_callee (e);
- for (edge = &e->callee->callers; *edge && *edge != e;
- edge = &((*edge)->next_caller))
- continue;
- gcc_assert (*edge);
- *edge = (*edge)->next_caller;
- for (edge2 = &e->caller->callees; *edge2 && *edge2 != e;
- edge2 = &(*edge2)->next_callee)
- continue;
- gcc_assert (*edge2);
- *edge2 = (*edge2)->next_callee;
+ /* Remove from callees list of the callers. */
+ cgraph_edge_remove_caller (e);
}
/* Redirect callee of E to N. The function does not update underlying
@@ -321,16 +352,46 @@ cgraph_remove_edge (struct cgraph_edge *e)
void
cgraph_redirect_edge_callee (struct cgraph_edge *e, struct cgraph_node *n)
{
- struct cgraph_edge **edge;
+ /* Remove from callers list of the current callee. */
+ cgraph_edge_remove_callee (e);
- for (edge = &e->callee->callers; *edge && *edge != e;
- edge = &((*edge)->next_caller))
- continue;
- gcc_assert (*edge);
- *edge = (*edge)->next_caller;
- e->callee = n;
+ /* Insert to callers list of the new callee. */
+ e->prev_caller = NULL;
+ if (n->callers)
+ n->callers->prev_caller = e;
e->next_caller = n->callers;
n->callers = e;
+ e->callee = n;
+}
+
+/* Remove all callees from the node. */
+
+void
+cgraph_node_remove_callees (struct cgraph_node *node)
+{
+ struct cgraph_edge *e;
+
+ /* It is sufficient to remove the edges from the lists of callers of
+ the callees. The callee list of the node can be zapped with one
+ assignment. */
+ for (e = node->callees; e; e = e->next_callee)
+ cgraph_edge_remove_callee (e);
+ node->callees = NULL;
+}
+
+/* Remove all callers from the node. */
+
+static void
+cgraph_node_remove_callers (struct cgraph_node *node)
+{
+ struct cgraph_edge *e;
+
+ /* It is sufficient to remove the edges from the lists of callees of
+ the callers. The caller list of the node can be zapped with one
+ assignment. */
+ for (e = node->callers; e; e = e->next_caller)
+ cgraph_edge_remove_caller (e);
+ node->callers = NULL;
}
/* Remove the node from cgraph. */
@@ -341,10 +402,8 @@ cgraph_remove_node (struct cgraph_node *node)
void **slot;
bool check_dead = 1;
- while (node->callers)
- cgraph_remove_edge (node->callers);
- while (node->callees)
- cgraph_remove_edge (node->callees);
+ cgraph_node_remove_callers (node);
+ cgraph_node_remove_callees (node);
while (node->nested)
cgraph_remove_node (node->nested);
if (node->origin)
@@ -417,6 +476,7 @@ cgraph_mark_reachable_node (struct cgraph_node *node)
{
notice_global_symbol (node->decl);
node->reachable = 1;
+ gcc_assert (!cgraph_global_info_ready);
node->next_needed = cgraph_nodes_queue;
cgraph_nodes_queue = node;
@@ -511,6 +571,10 @@ dump_cgraph_node (FILE *f, struct cgraph_node *node)
fprintf (f, " inlinable");
if (TREE_ASM_WRITTEN (node->decl))
fprintf (f, " asm_written");
+ /* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+ if (DECL_STRUCT_FUNCTION (node->decl) && DECL_STRUCT_FUNCTION (node->decl)->uses_vector)
+ fprintf (f, " uses_vector");
+ /* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
fprintf (f, "\n called by: ");
for (edge = node->callers; edge; edge = edge->next_caller)
@@ -670,11 +734,11 @@ cgraph_varpool_assemble_pending_decls (void)
while (cgraph_varpool_nodes_queue)
{
- tree decl = cgraph_varpool_nodes_queue->decl;
struct cgraph_varpool_node *node = cgraph_varpool_nodes_queue;
+ tree decl = node->decl;
cgraph_varpool_nodes_queue = cgraph_varpool_nodes_queue->next_needed;
- if (!TREE_ASM_WRITTEN (decl))
+ if (!TREE_ASM_WRITTEN (decl) && !node->alias)
{
assemble_variable (decl, 0, 1, 0);
changed = true;
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index ae902b2ff6c..eae162ec17d 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -117,13 +117,17 @@ struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous")))
bool analyzed;
/* Set when function is scheduled to be assembled. */
bool output;
+ /* Set for aliases once they got through assemble_alias. */
+ bool alias;
};
-struct cgraph_edge GTY((chain_next ("%h.next_caller")))
+struct cgraph_edge GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller")))
{
struct cgraph_node *caller;
struct cgraph_node *callee;
+ struct cgraph_edge *prev_caller;
struct cgraph_edge *next_caller;
+ struct cgraph_edge *prev_callee;
struct cgraph_edge *next_callee;
tree call_expr;
PTR GTY ((skip (""))) aux;
@@ -150,6 +154,8 @@ struct cgraph_varpool_node GTY(())
bool finalized;
/* Set when function is scheduled to be assembled. */
bool output;
+ /* Set for aliases once they got through assemble_alias. */
+ bool alias;
};
extern GTY(()) struct cgraph_node *cgraph_nodes;
@@ -165,6 +171,7 @@ void dump_cgraph (FILE *);
void dump_cgraph_node (FILE *, struct cgraph_node *);
void cgraph_remove_edge (struct cgraph_edge *);
void cgraph_remove_node (struct cgraph_node *);
+void cgraph_node_remove_callees (struct cgraph_node *node);
struct cgraph_edge *cgraph_create_edge (struct cgraph_node *,
struct cgraph_node *,
tree);
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 22b33816caa..956fbc10713 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -1,5 +1,5 @@
/* Callgraph based intraprocedural optimizations.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Jan Hubicka
This file is part of GCC.
@@ -200,6 +200,10 @@ static void cgraph_mark_local_functions (void);
static bool cgraph_default_inline_p (struct cgraph_node *n);
static void cgraph_analyze_function (struct cgraph_node *node);
static void cgraph_decide_inlining_incrementally (struct cgraph_node *);
+/* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+static bool altivec_infection (struct cgraph_edge *);
+static bool fndecl_uses_vector_p (tree);
+/* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
/* Statistics we collect about inlining algorithm. */
static int ncalls_inlined;
@@ -300,7 +304,9 @@ cgraph_assemble_pending_functions (void)
cgraph_nodes_queue = cgraph_nodes_queue->next_needed;
n->next_needed = NULL;
- if (!n->global.inlined_to && !DECL_EXTERNAL (n->decl))
+ if (!n->global.inlined_to
+ && !n->alias
+ && !DECL_EXTERNAL (n->decl))
{
cgraph_expand_function (n);
output = true;
@@ -346,8 +352,17 @@ cgraph_finalize_function (tree decl, bool nested)
memset (&node->rtl, 0, sizeof (node->rtl));
node->analyzed = false;
node->local.redefined_extern_inline = true;
- while (node->callees)
- cgraph_remove_edge (node->callees);
+
+ if (!flag_unit_at_a_time)
+ {
+ struct cgraph_node *n;
+
+ for (n = cgraph_nodes; n; n = n->next)
+ if (n->global.inlined_to == node)
+ cgraph_remove_node (n);
+ }
+
+ cgraph_node_remove_callees (node);
/* We may need to re-queue the node for assembling in case
we already proceeded it and ignored as not needed. */
@@ -398,6 +413,35 @@ cgraph_finalize_function (tree decl, bool nested)
do_warn_unused_parameter (decl);
}
+/* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+static bool
+fndecl_uses_vector_p (tree fndecl)
+{
+ tree arg, vars, var;
+ struct function *my_cfun = DECL_STRUCT_FUNCTION (fndecl);
+
+ if (TREE_CODE (TREE_TYPE (fndecl)) == VECTOR_TYPE)
+ return true;
+
+ arg = DECL_ARGUMENTS (fndecl);
+ while (arg)
+ {
+ if (TREE_CODE (TREE_TYPE (arg)) == VECTOR_TYPE)
+ return true;
+ arg = TREE_CHAIN (arg);
+ }
+
+ for (vars = my_cfun->unexpanded_var_list; vars; vars = TREE_CHAIN (vars))
+ {
+ var = TREE_VALUE (vars);
+ if (TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE)
+ return true;
+ }
+ /* Treewalk part folded into record_call_1 below. */
+ return false;
+}
+/* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
+
/* Walk tree and record all calls. Called via walk_tree. */
static tree
record_call_1 (tree *tp, int *walk_subtrees, void *data)
@@ -407,6 +451,15 @@ record_call_1 (tree *tp, int *walk_subtrees, void *data)
switch (TREE_CODE (t))
{
case VAR_DECL:
+ /* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+ {
+ struct cgraph_node *node = (struct cgraph_node *)data;
+ struct function *my_cfun = DECL_STRUCT_FUNCTION (node->decl);
+
+ if (TREE_CODE (TREE_TYPE (t)) == VECTOR_TYPE)
+ my_cfun->uses_vector = 1;
+ }
+ /* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
/* ??? Really, we should mark this decl as *potentially* referenced
by this function and re-examine whether the decl is actually used
after rtl has been generated. */
@@ -473,6 +526,11 @@ record_call_1 (tree *tp, int *walk_subtrees, void *data)
void
cgraph_create_edges (struct cgraph_node *node, tree body)
{
+ /* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+ if (!DECL_STRUCT_FUNCTION (node->decl)->uses_vector)
+ DECL_STRUCT_FUNCTION (node->decl)->uses_vector = fndecl_uses_vector_p (node->decl);
+ /* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
+
/* The nodes we're interested in are never shared, so walk
the tree ignoring duplicates. */
visited_nodes = pointer_set_create ();
@@ -671,6 +729,8 @@ cgraph_finalize_compilation_unit (void)
{
struct cgraph_node *node;
+ finish_aliases_1 ();
+
if (!flag_unit_at_a_time)
{
cgraph_assemble_pending_functions ();
@@ -833,8 +893,7 @@ cgraph_expand_function (struct cgraph_node *node)
DECL_INITIAL (node->decl) = error_mark_node;
/* Eliminate all call edges. This is important so the call_expr no longer
points to the dead function body. */
- while (node->callees)
- cgraph_remove_edge (node->callees);
+ cgraph_node_remove_callees (node);
}
}
@@ -996,8 +1055,7 @@ cgraph_remove_unreachable_nodes (void)
DECL_STRUCT_FUNCTION (node->decl) = NULL;
DECL_INITIAL (node->decl) = error_mark_node;
}
- while (node->callees)
- cgraph_remove_edge (node->callees);
+ cgraph_node_remove_callees (node);
node->analyzed = false;
}
else
@@ -1021,7 +1079,12 @@ static int
cgraph_estimate_size_after_inlining (int times, struct cgraph_node *to,
struct cgraph_node *what)
{
- return (what->global.insns - INSNS_PER_CALL) * times + to->global.insns;
+ tree fndecl = what->decl;
+ tree arg;
+ int call_insns = PARAM_VALUE (PARAM_INLINE_CALL_COST);
+ for (arg = DECL_ARGUMENTS (fndecl); arg; arg = TREE_CHAIN (arg))
+ call_insns += estimate_move_cost (TREE_TYPE (arg));
+ return (what->global.insns - call_insns) * times + to->global.insns;
}
/* Estimate the growth caused by inlining NODE into all callees. */
@@ -1085,6 +1148,32 @@ cgraph_clone_inlined_nodes (struct cgraph_edge *e, bool duplicate)
cgraph_clone_inlined_nodes (e, duplicate);
}
+/* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+/* Return TRUE if the given edge represents a CALL from a
+ non-Altivec-using function to another that does. We must not
+ inline these CALLs, lest we infect a virgin G3-executable function
+ with AltiVec codes (e.g. prolog & epilog). Only active if
+ -faltivec and not -maltivec. */
+static bool
+altivec_infection (struct cgraph_edge *edge)
+{
+ if (flag_disable_opts_for_faltivec
+ && edge
+ && edge->caller
+ && !DECL_STRUCT_FUNCTION (edge->caller->decl)->uses_vector
+ && edge->callee
+ && DECL_STRUCT_FUNCTION (edge->callee->decl)
+ && DECL_STRUCT_FUNCTION (edge->callee->decl)->uses_vector)
+ {
+ edge->inline_failed = N_(" -faltivec on, callee has AltiVec(tm), caller doesn't; not inlined. Use -maltivec to allow.\n");
+ return true;
+ }
+ else
+ return false;
+}
+/* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
+
+
/* Mark edge E as inlined and update callgraph accordingly. */
void
@@ -1115,7 +1204,8 @@ cgraph_mark_inline_edge (struct cgraph_edge *e)
to->global.insns = new_insns;
}
gcc_assert (what->global.inlined_to == to);
- overall_insns += new_insns - old_insns;
+ if (new_insns > old_insns)
+ overall_insns += new_insns - old_insns;
ncalls_inlined++;
}
@@ -1419,6 +1509,8 @@ cgraph_decide_inlining_of_small_functions (void)
if (cgraph_recursive_inlining_p (e->caller, e->callee,
&e->inline_failed)
+ /* APPLE LOCAL Selective inlining of functions that use Altivec 3837835 */
+ || altivec_infection (e)
|| !cgraph_check_inline_limits (e->caller, e->callee,
&e->inline_failed))
{
@@ -1565,6 +1657,14 @@ cgraph_decide_inlining (void)
node->callers->caller->global.insns);
old_insns = overall_insns;
+ /* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+ if (altivec_infection (node->callers))
+ {
+ if (cgraph_dump_file)
+ fprintf (cgraph_dump_file, node->callers->inline_failed);
+ continue;
+ }
+ /* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
if (cgraph_check_inline_limits (node->callers->caller, node,
NULL))
@@ -1613,6 +1713,11 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node)
/* First of all look for always inline functions. */
for (e = node->callees; e; e = e->next_callee)
+ /* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+ if (altivec_infection (e))
+ continue;
+ else
+ /* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
if (e->callee->local.disregard_inline_limits
&& e->inline_failed
&& !cgraph_recursive_inlining_p (node, e->callee, &e->inline_failed)
@@ -1631,6 +1736,10 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node)
&& cgraph_check_inline_limits (node, e->callee, &e->inline_failed)
&& DECL_SAVED_TREE (e->callee->decl))
{
+ /* APPLE LOCAL begin Selective inlining of functions that use Altivec 3837835 */
+ if (altivec_infection (e))
+ continue;
+ /* APPLE LOCAL end Selective inlining of functions that use Altivec 3837835 */
if (cgraph_default_inline_p (e->callee))
cgraph_mark_inline (e);
else
@@ -1842,7 +1951,8 @@ cgraph_build_static_cdtor (char which, tree body, int priority)
TREE_STATIC (decl) = 1;
TREE_USED (decl) = 1;
DECL_ARTIFICIAL (decl) = 1;
- DECL_IGNORED_P (decl) = 1;
+ /* APPLE LOCAL Radar 3939078 */
+ /* Delete DECL_IGNORED_P (decl) = 1; */
DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl) = 1;
DECL_SAVED_TREE (decl) = body;
TREE_PUBLIC (decl) = ! targetm.have_ctors_dtors;
diff --git a/gcc/combine.c b/gcc/combine.c
index 73b12bb4f0c..c1730557117 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -386,6 +386,7 @@ static rtx known_cond (rtx, enum rtx_code, rtx, rtx);
static int rtx_equal_for_field_assignment_p (rtx, rtx);
static rtx make_field_assignment (rtx);
static rtx apply_distributive_law (rtx);
+static rtx distribute_and_simplify_rtx (rtx, int);
static rtx simplify_and_const_int (rtx, enum machine_mode, rtx,
unsigned HOST_WIDE_INT);
static int merge_outer_ops (enum rtx_code *, HOST_WIDE_INT *, enum rtx_code,
@@ -394,7 +395,6 @@ static rtx simplify_shift_const (rtx, enum rtx_code, enum machine_mode, rtx,
int);
static int recog_for_combine (rtx *, rtx, rtx *);
static rtx gen_lowpart_for_combine (enum machine_mode, rtx);
-static rtx gen_binary (enum rtx_code, enum machine_mode, rtx, rtx);
static enum rtx_code simplify_comparison (enum rtx_code, rtx *, rtx *);
static void update_table_tick (rtx);
static void record_value_for_reg (rtx, rtx, rtx);
@@ -1316,9 +1316,9 @@ can_combine_p (rtx insn, rtx i3, rtx pred ATTRIBUTE_UNUSED, rtx succ,
if (INSN_P (p) && p != succ && volatile_insn_p (PATTERN (p)))
return 0;
- /* If INSN or I2 contains an autoincrement or autodecrement,
- make sure that register is not used between there and I3,
- and not already used in I3 either.
+ /* If INSN contains an autoincrement or autodecrement, make sure that
+ register is not used between there and I3, and not already used in
+ I3 either. Neither must it be used in PRED or SUCC, if they exist.
Also insist that I3 not be a jump; if it were one
and the incremented register were spilled, we would lose. */
@@ -1327,6 +1327,10 @@ can_combine_p (rtx insn, rtx i3, rtx pred ATTRIBUTE_UNUSED, rtx succ,
if (REG_NOTE_KIND (link) == REG_INC
&& (JUMP_P (i3)
|| reg_used_between_p (XEXP (link, 0), insn, i3)
+ || (pred != NULL_RTX
+ && reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (pred)))
+ || (succ != NULL_RTX
+ && reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (succ)))
|| reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i3))))
return 0;
#endif
@@ -2417,6 +2421,20 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
SUBST (*split, newdest);
i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes);
+ /* recog_for_combine might have added CLOBBERs to newi2pat.
+ Make sure NEWPAT does not depend on the clobbered regs. */
+ if (GET_CODE (newi2pat) == PARALLEL)
+ for (i = XVECLEN (newi2pat, 0) - 1; i >= 0; i--)
+ if (GET_CODE (XVECEXP (newi2pat, 0, i)) == CLOBBER)
+ {
+ rtx reg = XEXP (XVECEXP (newi2pat, 0, i), 0);
+ if (reg_overlap_mentioned_p (reg, newpat))
+ {
+ undo_all ();
+ return 0;
+ }
+ }
+
/* If the split point was a MULT and we didn't have one before,
don't use one now. */
if (i2_code_number >= 0 && ! (split_code == MULT && ! have_mult))
@@ -3177,14 +3195,16 @@ find_split_point (rtx *loc, rtx insn)
if (src == mask)
SUBST (SET_SRC (x),
- gen_binary (IOR, mode, dest, GEN_INT (src << pos)));
+ simplify_gen_binary (IOR, mode, dest, GEN_INT (src << pos)));
else
- SUBST (SET_SRC (x),
- gen_binary (IOR, mode,
- gen_binary (AND, mode, dest,
- gen_int_mode (~(mask << pos),
- mode)),
- GEN_INT (src << pos)));
+ {
+ rtx negmask = gen_int_mode (~(mask << pos), mode);
+ SUBST (SET_SRC (x),
+ simplify_gen_binary (IOR, mode,
+ simplify_gen_binary (AND, mode,
+ dest, negmask),
+ GEN_INT (src << pos)));
+ }
SUBST (SET_DEST (x), dest);
@@ -3720,47 +3740,6 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
SUBST (XEXP (x, 1), temp);
}
- /* If this is a PLUS, MINUS, or MULT, and the first operand is the
- sign extension of a PLUS with a constant, reverse the order of the sign
- extension and the addition. Note that this not the same as the original
- code, but overflow is undefined for signed values. Also note that the
- PLUS will have been partially moved "inside" the sign-extension, so that
- the first operand of X will really look like:
- (ashiftrt (plus (ashift A C4) C5) C4).
- We convert this to
- (plus (ashiftrt (ashift A C4) C2) C4)
- and replace the first operand of X with that expression. Later parts
- of this function may simplify the expression further.
-
- For example, if we start with (mult (sign_extend (plus A C1)) C2),
- we swap the SIGN_EXTEND and PLUS. Later code will apply the
- distributive law to produce (plus (mult (sign_extend X) C1) C3).
-
- We do this to simplify address expressions. */
-
- if ((code == PLUS || code == MINUS || code == MULT)
- && GET_CODE (XEXP (x, 0)) == ASHIFTRT
- && GET_CODE (XEXP (XEXP (x, 0), 0)) == PLUS
- && GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 0)) == ASHIFT
- && GET_CODE (XEXP (XEXP (XEXP (XEXP (x, 0), 0), 0), 1)) == CONST_INT
- && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
- && XEXP (XEXP (XEXP (XEXP (x, 0), 0), 0), 1) == XEXP (XEXP (x, 0), 1)
- && GET_CODE (XEXP (XEXP (XEXP (x, 0), 0), 1)) == CONST_INT
- && (temp = simplify_binary_operation (ASHIFTRT, mode,
- XEXP (XEXP (XEXP (x, 0), 0), 1),
- XEXP (XEXP (x, 0), 1))) != 0)
- {
- rtx new
- = simplify_shift_const (NULL_RTX, ASHIFT, mode,
- XEXP (XEXP (XEXP (XEXP (x, 0), 0), 0), 0),
- INTVAL (XEXP (XEXP (x, 0), 1)));
-
- new = simplify_shift_const (NULL_RTX, ASHIFTRT, mode, new,
- INTVAL (XEXP (XEXP (x, 0), 1)));
-
- SUBST (XEXP (x, 0), gen_binary (PLUS, mode, new, temp));
- }
-
/* If this is a simple operation applied to an IF_THEN_ELSE, try
applying it to the arms of the IF_THEN_ELSE. This often simplifies
things. Check for cases where both arms are testing the same
@@ -3815,12 +3794,14 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
/* If the result values are STORE_FLAG_VALUE and zero, we can
just make the comparison operation. */
if (true_rtx == const_true_rtx && false_rtx == const0_rtx)
- x = gen_binary (cond_code, mode, cond, cop1);
+ x = simplify_gen_relational (cond_code, mode, VOIDmode,
+ cond, cop1);
else if (true_rtx == const0_rtx && false_rtx == const_true_rtx
&& ((reversed = reversed_comparison_code_parts
(cond_code, cond, cop1, NULL))
!= UNKNOWN))
- x = gen_binary (reversed, mode, cond, cop1);
+ x = simplify_gen_relational (reversed, mode, VOIDmode,
+ cond, cop1);
/* Likewise, we can make the negate of a comparison operation
if the result values are - STORE_FLAG_VALUE and zero. */
@@ -3828,8 +3809,9 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
&& INTVAL (true_rtx) == - STORE_FLAG_VALUE
&& false_rtx == const0_rtx)
x = simplify_gen_unary (NEG, mode,
- gen_binary (cond_code, mode, cond,
- cop1),
+ simplify_gen_relational (cond_code,
+ mode, VOIDmode,
+ cond, cop1),
mode);
else if (GET_CODE (false_rtx) == CONST_INT
&& INTVAL (false_rtx) == - STORE_FLAG_VALUE
@@ -3838,13 +3820,17 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
(cond_code, cond, cop1, NULL))
!= UNKNOWN))
x = simplify_gen_unary (NEG, mode,
- gen_binary (reversed, mode,
- cond, cop1),
+ simplify_gen_relational (reversed,
+ mode, VOIDmode,
+ cond, cop1),
mode);
else
return gen_rtx_IF_THEN_ELSE (mode,
- gen_binary (cond_code, VOIDmode,
- cond, cop1),
+ simplify_gen_relational (cond_code,
+ mode,
+ VOIDmode,
+ cond,
+ cop1),
true_rtx, false_rtx);
code = GET_CODE (x);
@@ -3947,7 +3933,7 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
}
if (inner)
- return gen_binary (code, mode, other, inner);
+ return simplify_gen_binary (code, mode, other, inner);
}
}
@@ -4049,7 +4035,8 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
if (GET_CODE (XEXP (x, 0)) == XOR
&& XEXP (XEXP (x, 0), 1) == const1_rtx
&& nonzero_bits (XEXP (XEXP (x, 0), 0), mode) == 1)
- return gen_binary (PLUS, mode, XEXP (XEXP (x, 0), 0), constm1_rtx);
+ return simplify_gen_binary (PLUS, mode, XEXP (XEXP (x, 0), 0),
+ constm1_rtx);
temp = expand_compound_operation (XEXP (x, 0));
@@ -4277,8 +4264,9 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
in1 = XEXP (XEXP (XEXP (x, 0), 0), 0);
in2 = XEXP (XEXP (x, 0), 1);
- return gen_binary (MINUS, mode, XEXP (x, 1),
- gen_binary (MULT, mode, in1, in2));
+ return simplify_gen_binary (MINUS, mode, XEXP (x, 1),
+ simplify_gen_binary (MULT, mode,
+ in1, in2));
}
/* If we have (plus (plus (A const) B)), associate it so that CONST is
@@ -4287,10 +4275,11 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
they are now checked elsewhere. */
if (GET_CODE (XEXP (x, 0)) == PLUS
&& CONSTANT_ADDRESS_P (XEXP (XEXP (x, 0), 1)))
- return gen_binary (PLUS, mode,
- gen_binary (PLUS, mode, XEXP (XEXP (x, 0), 0),
- XEXP (x, 1)),
- XEXP (XEXP (x, 0), 1));
+ return simplify_gen_binary (PLUS, mode,
+ simplify_gen_binary (PLUS, mode,
+ XEXP (XEXP (x, 0), 0),
+ XEXP (x, 1)),
+ XEXP (XEXP (x, 0), 1));
/* (plus (xor (and <foo> (const_int pow2 - 1)) <c>) <-c>)
when c is (const_int (pow2 + 1) / 2) is a sign extension of a
@@ -4356,7 +4345,7 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
& nonzero_bits (XEXP (x, 1), mode)) == 0)
{
/* Try to simplify the expression further. */
- rtx tor = gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
+ rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
temp = combine_simplify_rtx (tor, mode, in_dest);
/* If we could, great. If not, do not go ahead with the IOR
@@ -4396,8 +4385,10 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
in1 = XEXP (XEXP (XEXP (x, 1), 0), 0);
in2 = XEXP (XEXP (x, 1), 1);
- return gen_binary (PLUS, mode, gen_binary (MULT, mode, in1, in2),
- XEXP (x, 0));
+ return simplify_gen_binary (PLUS, mode,
+ simplify_gen_binary (MULT, mode,
+ in1, in2),
+ XEXP (x, 0));
}
/* Canonicalize (minus (neg A) (mult B C)) to
@@ -4409,17 +4400,20 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
in1 = simplify_gen_unary (NEG, mode, XEXP (XEXP (x, 1), 0), mode);
in2 = XEXP (XEXP (x, 1), 1);
- return gen_binary (MINUS, mode, gen_binary (MULT, mode, in1, in2),
- XEXP (XEXP (x, 0), 0));
+ return simplify_gen_binary (MINUS, mode,
+ simplify_gen_binary (MULT, mode,
+ in1, in2),
+ XEXP (XEXP (x, 0), 0));
}
/* Canonicalize (minus A (plus B C)) to (minus (minus A B) C) for
integers. */
if (GET_CODE (XEXP (x, 1)) == PLUS && INTEGRAL_MODE_P (mode))
- return gen_binary (MINUS, mode,
- gen_binary (MINUS, mode, XEXP (x, 0),
- XEXP (XEXP (x, 1), 0)),
- XEXP (XEXP (x, 1), 1));
+ return simplify_gen_binary (MINUS, mode,
+ simplify_gen_binary (MINUS, mode,
+ XEXP (x, 0),
+ XEXP (XEXP (x, 1), 0)),
+ XEXP (XEXP (x, 1), 1));
break;
case MULT:
@@ -4429,17 +4423,11 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
if (GET_CODE (XEXP (x, 0)) == PLUS)
{
- x = apply_distributive_law
- (gen_binary (PLUS, mode,
- gen_binary (MULT, mode,
- XEXP (XEXP (x, 0), 0), XEXP (x, 1)),
- gen_binary (MULT, mode,
- XEXP (XEXP (x, 0), 1),
- copy_rtx (XEXP (x, 1)))));
-
- if (GET_CODE (x) != MULT)
- return x;
+ rtx result = distribute_and_simplify_rtx (x, 0);
+ if (result)
+ return result;
}
+
/* Try simplify a*(b/c) as (a*b)/c. */
if (FLOAT_MODE_P (mode) && flag_unsafe_math_optimizations
&& GET_CODE (XEXP (x, 0)) == DIV)
@@ -4448,7 +4436,7 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
XEXP (XEXP (x, 0), 0),
XEXP (x, 1));
if (tem)
- return gen_binary (DIV, mode, tem, XEXP (XEXP (x, 0), 1));
+ return simplify_gen_binary (DIV, mode, tem, XEXP (XEXP (x, 0), 1));
}
break;
@@ -4528,9 +4516,9 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest)
&& nonzero_bits (op0, mode) == 1)
{
op0 = expand_compound_operation (op0);
- return gen_binary (XOR, mode,
- gen_lowpart (mode, op0),
- const1_rtx);
+ return simplify_gen_binary (XOR, mode,
+ gen_lowpart (mode, op0),
+ const1_rtx);
}
else if (STORE_FLAG_VALUE == 1
@@ -4772,7 +4760,8 @@ simplify_if_then_else (rtx x)
/* Simplify storing of the truth value. */
if (comparison_p && true_rtx == const_true_rtx && false_rtx == const0_rtx)
- return gen_binary (true_code, mode, XEXP (cond, 0), XEXP (cond, 1));
+ return simplify_gen_relational (true_code, mode, VOIDmode,
+ XEXP (cond, 0), XEXP (cond, 1));
/* Also when the truth value has to be reversed. */
if (comparison_p
@@ -4922,16 +4911,16 @@ simplify_if_then_else (rtx x)
{
case GE:
case GT:
- return gen_binary (SMAX, mode, true_rtx, false_rtx);
+ return simplify_gen_binary (SMAX, mode, true_rtx, false_rtx);
case LE:
case LT:
- return gen_binary (SMIN, mode, true_rtx, false_rtx);
+ return simplify_gen_binary (SMIN, mode, true_rtx, false_rtx);
case GEU:
case GTU:
- return gen_binary (UMAX, mode, true_rtx, false_rtx);
+ return simplify_gen_binary (UMAX, mode, true_rtx, false_rtx);
case LEU:
case LTU:
- return gen_binary (UMIN, mode, true_rtx, false_rtx);
+ return simplify_gen_binary (UMIN, mode, true_rtx, false_rtx);
default:
break;
}
@@ -5044,12 +5033,14 @@ simplify_if_then_else (rtx x)
if (z)
{
- temp = subst (gen_binary (true_code, m, cond_op0, cond_op1),
+ temp = subst (simplify_gen_relational (true_code, m, VOIDmode,
+ cond_op0, cond_op1),
pc_rtx, pc_rtx, 0, 0);
- temp = gen_binary (MULT, m, temp,
- gen_binary (MULT, m, c1, const_true_rtx));
+ temp = simplify_gen_binary (MULT, m, temp,
+ simplify_gen_binary (MULT, m, c1,
+ const_true_rtx));
temp = subst (temp, pc_rtx, pc_rtx, 0, 0);
- temp = gen_binary (op, m, gen_lowpart (m, z), temp);
+ temp = simplify_gen_binary (op, m, gen_lowpart (m, z), temp);
if (extend_op != UNKNOWN)
temp = simplify_gen_unary (extend_op, mode, temp, m);
@@ -5234,7 +5225,8 @@ simplify_set (rtx x)
PUT_CODE (*cc_use, old_code);
other_changed = 0;
- op0 = gen_binary (XOR, GET_MODE (op0), op0, GEN_INT (mask));
+ op0 = simplify_gen_binary (XOR, GET_MODE (op0),
+ op0, GEN_INT (mask));
}
}
}
@@ -5260,6 +5252,13 @@ simplify_set (rtx x)
SUBST (SET_SRC (x), gen_rtx_COMPARE (compare_mode, op0, op1));
src = SET_SRC (x);
}
+ /* APPLE LOCAL begin radar 4149154 */
+ else if (GET_MODE (op0) == compare_mode && op1 == const0_rtx)
+ {
+ SUBST(SET_SRC (x), op0);
+ src = SET_SRC (x);
+ }
+ /* APPLE LOCAL end radar 4149154 */
else
{
/* Otherwise, update the COMPARE if needed. */
@@ -5398,18 +5397,19 @@ simplify_set (rtx x)
&& rtx_equal_p (XEXP (false_rtx, 1), true_rtx))
term1 = true_rtx, false_rtx = XEXP (false_rtx, 0), true_rtx = const0_rtx;
- term2 = gen_binary (AND, GET_MODE (src),
- XEXP (XEXP (src, 0), 0), true_rtx);
- term3 = gen_binary (AND, GET_MODE (src),
- simplify_gen_unary (NOT, GET_MODE (src),
- XEXP (XEXP (src, 0), 0),
- GET_MODE (src)),
- false_rtx);
+ term2 = simplify_gen_binary (AND, GET_MODE (src),
+ XEXP (XEXP (src, 0), 0), true_rtx);
+ term3 = simplify_gen_binary (AND, GET_MODE (src),
+ simplify_gen_unary (NOT, GET_MODE (src),
+ XEXP (XEXP (src, 0), 0),
+ GET_MODE (src)),
+ false_rtx);
SUBST (SET_SRC (x),
- gen_binary (IOR, GET_MODE (src),
- gen_binary (IOR, GET_MODE (src), term1, term2),
- term3));
+ simplify_gen_binary (IOR, GET_MODE (src),
+ simplify_gen_binary (IOR, GET_MODE (src),
+ term1, term2),
+ term3));
src = SET_SRC (x);
}
@@ -5444,29 +5444,31 @@ simplify_logical (rtx x)
if (GET_CODE (op0) == XOR
&& rtx_equal_p (XEXP (op0, 0), op1)
&& ! side_effects_p (op1))
- x = gen_binary (AND, mode,
- simplify_gen_unary (NOT, mode, XEXP (op0, 1), mode),
- op1);
+ x = simplify_gen_binary (AND, mode,
+ simplify_gen_unary (NOT, mode,
+ XEXP (op0, 1), mode),
+ op1);
if (GET_CODE (op0) == XOR
&& rtx_equal_p (XEXP (op0, 1), op1)
&& ! side_effects_p (op1))
- x = gen_binary (AND, mode,
- simplify_gen_unary (NOT, mode, XEXP (op0, 0), mode),
- op1);
+ x = simplify_gen_binary (AND, mode,
+ simplify_gen_unary (NOT, mode,
+ XEXP (op0, 0), mode),
+ op1);
/* Similarly for (~(A ^ B)) & A. */
if (GET_CODE (op0) == NOT
&& GET_CODE (XEXP (op0, 0)) == XOR
&& rtx_equal_p (XEXP (XEXP (op0, 0), 0), op1)
&& ! side_effects_p (op1))
- x = gen_binary (AND, mode, XEXP (XEXP (op0, 0), 1), op1);
+ x = simplify_gen_binary (AND, mode, XEXP (XEXP (op0, 0), 1), op1);
if (GET_CODE (op0) == NOT
&& GET_CODE (XEXP (op0, 0)) == XOR
&& rtx_equal_p (XEXP (XEXP (op0, 0), 1), op1)
&& ! side_effects_p (op1))
- x = gen_binary (AND, mode, XEXP (XEXP (op0, 0), 0), op1);
+ x = simplify_gen_binary (AND, mode, XEXP (XEXP (op0, 0), 0), op1);
/* We can call simplify_and_const_int only if we don't lose
any (sign) bits when converting INTVAL (op1) to
@@ -5486,8 +5488,9 @@ simplify_logical (rtx x)
&& GET_CODE (XEXP (op0, 1)) == CONST_INT
&& GET_CODE (op1) == CONST_INT
&& (INTVAL (XEXP (op0, 1)) & INTVAL (op1)) != 0)
- return gen_binary (IOR, mode,
- gen_binary (AND, mode, XEXP (op0, 0),
+ return simplify_gen_binary (IOR, mode,
+ simplify_gen_binary
+ (AND, mode, XEXP (op0, 0),
GEN_INT (INTVAL (XEXP (op0, 1))
& ~INTVAL (op1))), op1);
@@ -5506,54 +5509,21 @@ simplify_logical (rtx x)
&& ! side_effects_p (XEXP (op0, 1)))
return op1;
- /* In the following group of tests (and those in case IOR below),
- we start with some combination of logical operations and apply
- the distributive law followed by the inverse distributive law.
- Most of the time, this results in no change. However, if some of
- the operands are the same or inverses of each other, simplifications
- will result.
-
- For example, (and (ior A B) (not B)) can occur as the result of
- expanding a bit field assignment. When we apply the distributive
- law to this, we get (ior (and (A (not B))) (and (B (not B)))),
- which then simplifies to (and (A (not B))).
-
- If we have (and (ior A B) C), apply the distributive law and then
- the inverse distributive law to see if things simplify. */
-
+ /* If we have any of (and (ior A B) C) or (and (xor A B) C),
+ apply the distributive law and then the inverse distributive
+ law to see if things simplify. */
if (GET_CODE (op0) == IOR || GET_CODE (op0) == XOR)
{
- x = apply_distributive_law
- (gen_binary (GET_CODE (op0), mode,
- gen_binary (AND, mode, XEXP (op0, 0), op1),
- gen_binary (AND, mode, XEXP (op0, 1),
- copy_rtx (op1))));
- if (GET_CODE (x) != AND)
- return x;
+ rtx result = distribute_and_simplify_rtx (x, 0);
+ if (result)
+ return result;
}
-
if (GET_CODE (op1) == IOR || GET_CODE (op1) == XOR)
- return apply_distributive_law
- (gen_binary (GET_CODE (op1), mode,
- gen_binary (AND, mode, XEXP (op1, 0), op0),
- gen_binary (AND, mode, XEXP (op1, 1),
- copy_rtx (op0))));
-
- /* Similarly, taking advantage of the fact that
- (and (not A) (xor B C)) == (xor (ior A B) (ior A C)) */
-
- if (GET_CODE (op0) == NOT && GET_CODE (op1) == XOR)
- return apply_distributive_law
- (gen_binary (XOR, mode,
- gen_binary (IOR, mode, XEXP (op0, 0), XEXP (op1, 0)),
- gen_binary (IOR, mode, copy_rtx (XEXP (op0, 0)),
- XEXP (op1, 1))));
-
- else if (GET_CODE (op1) == NOT && GET_CODE (op0) == XOR)
- return apply_distributive_law
- (gen_binary (XOR, mode,
- gen_binary (IOR, mode, XEXP (op1, 0), XEXP (op0, 0)),
- gen_binary (IOR, mode, copy_rtx (XEXP (op1, 0)), XEXP (op0, 1))));
+ {
+ rtx result = distribute_and_simplify_rtx (x, 1);
+ if (result)
+ return result;
+ }
break;
case IOR:
@@ -5576,28 +5546,16 @@ simplify_logical (rtx x)
if (GET_CODE (op0) == AND)
{
- rtx tmp = apply_distributive_law
- (gen_binary (AND, mode,
- gen_binary (IOR, mode, XEXP (op0, 0), op1),
- gen_binary (IOR, mode, XEXP (op0, 1),
- copy_rtx (op1))));
-
- if (GET_CODE (tmp) != IOR
- && rtx_cost (tmp, SET) < rtx_cost (x, SET))
- return tmp;
+ rtx result = distribute_and_simplify_rtx (x, 0);
+ if (result)
+ return result;
}
if (GET_CODE (op1) == AND)
{
- rtx tmp = apply_distributive_law
- (gen_binary (AND, mode,
- gen_binary (IOR, mode, XEXP (op1, 0), op0),
- gen_binary (IOR, mode, XEXP (op1, 1),
- copy_rtx (op0))));
-
- if (GET_CODE (tmp) != IOR
- && rtx_cost (tmp, SET) < rtx_cost (x, SET))
- return tmp;
+ rtx result = distribute_and_simplify_rtx (x, 1);
+ if (result)
+ return result;
}
/* Convert (ior (ashift A CX) (lshiftrt A CY)) where CX+CY equals the
@@ -5646,7 +5604,7 @@ simplify_logical (rtx x)
if (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
&& (nonzero_bits (op0, mode)
& nonzero_bits (op1, mode)) == 0)
- return (gen_binary (IOR, mode, op0, op1));
+ return (simplify_gen_binary (IOR, mode, op0, op1));
/* Convert (XOR (NOT x) (NOT y)) to (XOR x y).
Also convert (XOR (NOT x) y) to (NOT (XOR x y)), similarly for
@@ -5666,7 +5624,8 @@ simplify_logical (rtx x)
}
else if (num_negated == 1)
return
- simplify_gen_unary (NOT, mode, gen_binary (XOR, mode, op0, op1),
+ simplify_gen_unary (NOT, mode,
+ simplify_gen_binary (XOR, mode, op0, op1),
mode);
}
@@ -5677,16 +5636,18 @@ simplify_logical (rtx x)
if (GET_CODE (op0) == AND
&& rtx_equal_p (XEXP (op0, 1), op1)
&& ! side_effects_p (op1))
- return gen_binary (AND, mode,
- simplify_gen_unary (NOT, mode, XEXP (op0, 0), mode),
- op1);
+ return simplify_gen_binary (AND, mode,
+ simplify_gen_unary (NOT, mode,
+ XEXP (op0, 0), mode),
+ op1);
else if (GET_CODE (op0) == AND
&& rtx_equal_p (XEXP (op0, 0), op1)
&& ! side_effects_p (op1))
- return gen_binary (AND, mode,
- simplify_gen_unary (NOT, mode, XEXP (op0, 1), mode),
- op1);
+ return simplify_gen_binary (AND, mode,
+ simplify_gen_unary (NOT, mode,
+ XEXP (op0, 1), mode),
+ op1);
/* (xor (comparison foo bar) (const_int 1)) can become the reversed
comparison if STORE_FLAG_VALUE is 1. */
@@ -5958,7 +5919,7 @@ expand_field_assignment (rtx x)
rtx inner;
rtx pos; /* Always counts from low bit. */
int len;
- rtx mask;
+ rtx mask, cleared, masked;
enum machine_mode compute_mode;
/* Loop until we find something we can't simplify. */
@@ -5996,10 +5957,11 @@ expand_field_assignment (rtx x)
/* If position is ADJUST - X, new position is X. */
pos = XEXP (pos, 0);
else
- pos = gen_binary (MINUS, GET_MODE (pos),
- GEN_INT (GET_MODE_BITSIZE (GET_MODE (inner))
- - len),
- pos);
+ pos = simplify_gen_binary (MINUS, GET_MODE (pos),
+ GEN_INT (GET_MODE_BITSIZE (
+ GET_MODE (inner))
+ - len),
+ pos);
}
}
@@ -6046,30 +6008,30 @@ expand_field_assignment (rtx x)
}
/* Compute a mask of LEN bits, if we can do this on the host machine. */
- if (len < HOST_BITS_PER_WIDE_INT)
- mask = GEN_INT (((HOST_WIDE_INT) 1 << len) - 1);
- else
+ if (len >= HOST_BITS_PER_WIDE_INT)
break;
/* Now compute the equivalent expression. Make a copy of INNER
for the SET_DEST in case it is a MEM into which we will substitute;
we don't want shared RTL in that case. */
- x = gen_rtx_SET
- (VOIDmode, copy_rtx (inner),
- gen_binary (IOR, compute_mode,
- gen_binary (AND, compute_mode,
- simplify_gen_unary (NOT, compute_mode,
- gen_binary (ASHIFT,
- compute_mode,
- mask, pos),
- compute_mode),
- inner),
- gen_binary (ASHIFT, compute_mode,
- gen_binary (AND, compute_mode,
- gen_lowpart
- (compute_mode, SET_SRC (x)),
- mask),
- pos)));
+ mask = GEN_INT (((HOST_WIDE_INT) 1 << len) - 1);
+ cleared = simplify_gen_binary (AND, compute_mode,
+ simplify_gen_unary (NOT, compute_mode,
+ simplify_gen_binary (ASHIFT,
+ compute_mode,
+ mask, pos),
+ compute_mode),
+ inner);
+ masked = simplify_gen_binary (ASHIFT, compute_mode,
+ simplify_gen_binary (
+ AND, compute_mode,
+ gen_lowpart (compute_mode, SET_SRC (x)),
+ mask),
+ pos);
+
+ x = gen_rtx_SET (VOIDmode, copy_rtx (inner),
+ simplify_gen_binary (IOR, compute_mode,
+ cleared, masked));
}
return x;
@@ -6525,8 +6487,8 @@ extract_left_shift (rtx x, int count)
if (GET_CODE (XEXP (x, 1)) == CONST_INT
&& (INTVAL (XEXP (x, 1)) & ((((HOST_WIDE_INT) 1 << count)) - 1)) == 0
&& (tem = extract_left_shift (XEXP (x, 0), count)) != 0)
- return gen_binary (code, mode, tem,
- GEN_INT (INTVAL (XEXP (x, 1)) >> count));
+ return simplify_gen_binary (code, mode, tem,
+ GEN_INT (INTVAL (XEXP (x, 1)) >> count));
break;
@@ -7012,7 +6974,8 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
&& (cval & ((HOST_WIDE_INT) 1 << (width - 1))) != 0)
cval |= (HOST_WIDE_INT) -1 << width;
- y = gen_binary (AND, GET_MODE (x), XEXP (x, 0), GEN_INT (cval));
+ y = simplify_gen_binary (AND, GET_MODE (x),
+ XEXP (x, 0), GEN_INT (cval));
if (rtx_cost (y, SET) < rtx_cost (x, SET))
x = y;
}
@@ -7104,10 +7067,10 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
{
temp = GEN_INT ((INTVAL (XEXP (x, 1)) & mask)
<< INTVAL (XEXP (XEXP (x, 0), 1)));
- temp = gen_binary (GET_CODE (x), GET_MODE (x),
- XEXP (XEXP (x, 0), 0), temp);
- x = gen_binary (LSHIFTRT, GET_MODE (x), temp,
- XEXP (XEXP (x, 0), 1));
+ temp = simplify_gen_binary (GET_CODE (x), GET_MODE (x),
+ XEXP (XEXP (x, 0), 0), temp);
+ x = simplify_gen_binary (LSHIFTRT, GET_MODE (x), temp,
+ XEXP (XEXP (x, 0), 1));
return force_to_mode (x, mode, mask, reg, next_select);
}
@@ -7123,7 +7086,7 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
reg, next_select));
if (op_mode != GET_MODE (x) || op0 != XEXP (x, 0) || op1 != XEXP (x, 1))
- x = gen_binary (code, op_mode, op0, op1);
+ x = simplify_gen_binary (code, op_mode, op0, op1);
break;
case ASHIFT:
@@ -7157,7 +7120,7 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
mask, reg, next_select));
if (op_mode != GET_MODE (x) || op0 != XEXP (x, 0))
- x = gen_binary (code, op_mode, op0, XEXP (x, 1));
+ x = simplify_gen_binary (code, op_mode, op0, XEXP (x, 1));
break;
case LSHIFTRT:
@@ -7184,7 +7147,7 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
inner = force_to_mode (inner, op_mode, inner_mask, reg, next_select);
if (GET_MODE (x) != op_mode || inner != XEXP (x, 0))
- x = gen_binary (LSHIFTRT, op_mode, inner, XEXP (x, 1));
+ x = simplify_gen_binary (LSHIFTRT, op_mode, inner, XEXP (x, 1));
}
/* If we have (and (lshiftrt FOO C1) C2) where the combination of the
@@ -7206,9 +7169,9 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
/* Must be more sign bit copies than the mask needs. */
&& ((int) num_sign_bit_copies (XEXP (x, 0), GET_MODE (XEXP (x, 0)))
>= exact_log2 (mask + 1)))
- x = gen_binary (LSHIFTRT, GET_MODE (x), XEXP (x, 0),
- GEN_INT (GET_MODE_BITSIZE (GET_MODE (x))
- - exact_log2 (mask + 1)));
+ x = simplify_gen_binary (LSHIFTRT, GET_MODE (x), XEXP (x, 0),
+ GEN_INT (GET_MODE_BITSIZE (GET_MODE (x))
+ - exact_log2 (mask + 1)));
goto shiftrt;
@@ -7273,7 +7236,8 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
/* If MASK is 1, convert this to an LSHIFTRT. This can be done
even if the shift count isn't a constant. */
if (mask == 1)
- x = gen_binary (LSHIFTRT, GET_MODE (x), XEXP (x, 0), XEXP (x, 1));
+ x = simplify_gen_binary (LSHIFTRT, GET_MODE (x),
+ XEXP (x, 0), XEXP (x, 1));
shiftrt:
@@ -7338,8 +7302,10 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
{
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));
+ temp = simplify_gen_binary (XOR, GET_MODE (x),
+ XEXP (XEXP (x, 0), 0), temp);
+ x = simplify_gen_binary (LSHIFTRT, GET_MODE (x),
+ temp, XEXP (XEXP (x, 0), 1));
return force_to_mode (x, mode, mask, reg, next_select);
}
@@ -7450,8 +7416,19 @@ if_then_else_cond (rtx x, rtx *ptrue, rtx *pfalse)
else if (cond1 == 0)
true1 = copy_rtx (true1);
- *ptrue = gen_binary (code, mode, true0, true1);
- *pfalse = gen_binary (code, mode, false0, false1);
+ if (COMPARISON_P (x))
+ {
+ *ptrue = simplify_gen_relational (code, mode, VOIDmode,
+ true0, true1);
+ *pfalse = simplify_gen_relational (code, mode, VOIDmode,
+ false0, false1);
+ }
+ else
+ {
+ *ptrue = simplify_gen_binary (code, mode, true0, true1);
+ *pfalse = simplify_gen_binary (code, mode, false0, false1);
+ }
+
return cond0 ? cond0 : cond1;
}
@@ -7481,13 +7458,13 @@ if_then_else_cond (rtx x, rtx *ptrue, rtx *pfalse)
&& rtx_equal_p (XEXP (cond0, 1), XEXP (cond1, 0))))
&& ! side_effects_p (x))
{
- *ptrue = gen_binary (MULT, mode, op0, const_true_rtx);
- *pfalse = gen_binary (MULT, mode,
- (code == MINUS
- ? simplify_gen_unary (NEG, mode, op1,
- mode)
- : op1),
- const_true_rtx);
+ *ptrue = simplify_gen_binary (MULT, mode, op0, const_true_rtx);
+ *pfalse = simplify_gen_binary (MULT, mode,
+ (code == MINUS
+ ? simplify_gen_unary (NEG, mode,
+ op1, mode)
+ : op1),
+ const_true_rtx);
return cond0;
}
}
@@ -8022,8 +7999,8 @@ apply_distributive_law (rtx x)
|| GET_MODE_SIZE (GET_MODE (SUBREG_REG (lhs))) > UNITS_PER_WORD)
return x;
- tem = gen_binary (code, GET_MODE (SUBREG_REG (lhs)),
- SUBREG_REG (lhs), SUBREG_REG (rhs));
+ tem = simplify_gen_binary (code, GET_MODE (SUBREG_REG (lhs)),
+ SUBREG_REG (lhs), SUBREG_REG (rhs));
return gen_lowpart (GET_MODE (x), tem);
default:
@@ -8049,7 +8026,7 @@ apply_distributive_law (rtx x)
return x;
/* Form the new inner operation, seeing if it simplifies first. */
- tem = gen_binary (code, GET_MODE (x), lhs, rhs);
+ tem = simplify_gen_binary (code, GET_MODE (x), lhs, rhs);
/* There is one exception to the general way of distributing:
(a | c) ^ (b | c) -> (a ^ b) & ~c */
@@ -8062,8 +8039,76 @@ apply_distributive_law (rtx x)
/* We may be able to continuing distributing the result, so call
ourselves recursively on the inner operation before forming the
outer operation, which we return. */
- return gen_binary (inner_code, GET_MODE (x),
- apply_distributive_law (tem), other);
+ return simplify_gen_binary (inner_code, GET_MODE (x),
+ apply_distributive_law (tem), other);
+}
+
+/* See if X is of the form (* (+ A B) C), and if so convert to
+ (+ (* A C) (* B C)) and try to simplify.
+
+ Most of the time, this results in no change. However, if some of
+ the operands are the same or inverses of each other, simplifications
+ will result.
+
+ For example, (and (ior A B) (not B)) can occur as the result of
+ expanding a bit field assignment. When we apply the distributive
+ law to this, we get (ior (and (A (not B))) (and (B (not B)))),
+ which then simplifies to (and (A (not B))).
+
+ Note that no checks happen on the validity of applying the inverse
+ distributive law. This is pointless since we can do it in the
+ few places where this routine is called.
+
+ N is the index of the term that is decomposed (the arithmetic operation,
+ i.e. (+ A B) in the first example above). !N is the index of the term that
+ is distributed, i.e. of C in the first example above. */
+static rtx
+distribute_and_simplify_rtx (rtx x, int n)
+{
+ enum machine_mode mode;
+ enum rtx_code outer_code, inner_code;
+ rtx decomposed, distributed, inner_op0, inner_op1, new_op0, new_op1, tmp;
+
+ decomposed = XEXP (x, n);
+ if (!ARITHMETIC_P (decomposed))
+ return NULL_RTX;
+
+ mode = GET_MODE (x);
+ outer_code = GET_CODE (x);
+ distributed = XEXP (x, !n);
+
+ inner_code = GET_CODE (decomposed);
+ inner_op0 = XEXP (decomposed, 0);
+ inner_op1 = XEXP (decomposed, 1);
+
+ /* Special case (and (xor B C) (not A)), which is equivalent to
+ (xor (ior A B) (ior A C)) */
+ if (outer_code == AND && inner_code == XOR && GET_CODE (distributed) == NOT)
+ {
+ distributed = XEXP (distributed, 0);
+ outer_code = IOR;
+ }
+
+ if (n == 0)
+ {
+ /* Distribute the second term. */
+ new_op0 = simplify_gen_binary (outer_code, mode, inner_op0, distributed);
+ new_op1 = simplify_gen_binary (outer_code, mode, inner_op1, distributed);
+ }
+ else
+ {
+ /* Distribute the first term. */
+ new_op0 = simplify_gen_binary (outer_code, mode, distributed, inner_op0);
+ new_op1 = simplify_gen_binary (outer_code, mode, distributed, inner_op1);
+ }
+
+ tmp = apply_distributive_law (simplify_gen_binary (inner_code, mode,
+ new_op0, new_op1));
+ if (GET_CODE (tmp) != outer_code
+ && rtx_cost (tmp, SET) < rtx_cost (x, SET))
+ return tmp;
+
+ return NULL_RTX;
}
/* We have X, a logical `and' of VAROP with the constant CONSTOP, to be done
@@ -8130,11 +8175,15 @@ simplify_and_const_int (rtx x, enum machine_mode mode, rtx varop,
gen_lowpart
(mode,
apply_distributive_law
- (gen_binary (GET_CODE (varop), GET_MODE (varop),
- simplify_and_const_int (NULL_RTX, GET_MODE (varop),
- XEXP (varop, 0), constop),
- simplify_and_const_int (NULL_RTX, GET_MODE (varop),
- XEXP (varop, 1), constop))));
+ (simplify_gen_binary (GET_CODE (varop), GET_MODE (varop),
+ simplify_and_const_int (NULL_RTX,
+ GET_MODE (varop),
+ XEXP (varop, 0),
+ constop),
+ simplify_and_const_int (NULL_RTX,
+ GET_MODE (varop),
+ XEXP (varop, 1),
+ constop))));
/* If VAROP is PLUS, and the constant is a mask of low bite, distribute
the AND and see if one of the operands simplifies to zero. If so, we
@@ -8175,7 +8224,7 @@ simplify_and_const_int (rtx x, enum machine_mode mode, rtx varop,
constop = trunc_int_for_mode (constop, mode);
/* See how much, if any, of X we can use. */
if (x == 0 || GET_CODE (x) != AND || GET_MODE (x) != mode)
- x = gen_binary (AND, mode, varop, GEN_INT (constop));
+ x = simplify_gen_binary (AND, mode, varop, GEN_INT (constop));
else
{
@@ -8694,8 +8743,10 @@ simplify_shift_const (rtx x, enum rtx_code code,
&& exact_log2 (INTVAL (XEXP (varop, 1))) >= 0)
{
varop
- = gen_binary (ASHIFT, GET_MODE (varop), XEXP (varop, 0),
- GEN_INT (exact_log2 (INTVAL (XEXP (varop, 1)))));
+ = simplify_gen_binary (ASHIFT, GET_MODE (varop),
+ XEXP (varop, 0),
+ GEN_INT (exact_log2 (
+ INTVAL (XEXP (varop, 1)))));
continue;
}
break;
@@ -8706,8 +8757,10 @@ simplify_shift_const (rtx x, enum rtx_code code,
&& exact_log2 (INTVAL (XEXP (varop, 1))) >= 0)
{
varop
- = gen_binary (LSHIFTRT, GET_MODE (varop), XEXP (varop, 0),
- GEN_INT (exact_log2 (INTVAL (XEXP (varop, 1)))));
+ = simplify_gen_binary (LSHIFTRT, GET_MODE (varop),
+ XEXP (varop, 0),
+ GEN_INT (exact_log2 (
+ INTVAL (XEXP (varop, 1)))));
continue;
}
break;
@@ -8962,7 +9015,8 @@ simplify_shift_const (rtx x, enum rtx_code code,
rtx rhs = simplify_shift_const (NULL_RTX, code, shift_mode,
XEXP (varop, 1), count);
- varop = gen_binary (GET_CODE (varop), shift_mode, lhs, rhs);
+ varop = simplify_gen_binary (GET_CODE (varop), shift_mode,
+ lhs, rhs);
varop = apply_distributive_law (varop);
count = 0;
@@ -9237,7 +9291,8 @@ simplify_shift_const (rtx x, enum rtx_code code,
else if (GET_RTX_CLASS (outer_op) == RTX_UNARY)
x = simplify_gen_unary (outer_op, result_mode, x, result_mode);
else
- x = gen_binary (outer_op, result_mode, x, GEN_INT (outer_const));
+ x = simplify_gen_binary (outer_op, result_mode, x,
+ GEN_INT (outer_const));
}
return x;
@@ -9471,63 +9526,6 @@ gen_lowpart_for_combine (enum machine_mode omode, rtx x)
return gen_rtx_CLOBBER (imode, const0_rtx);
}
-/* These routines make binary and unary operations by first seeing if they
- fold; if not, a new expression is allocated. */
-
-static rtx
-gen_binary (enum rtx_code code, enum machine_mode mode, rtx op0, rtx 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) == RTX_COMM_ARITH
- && swap_commutative_operands_p (op0, op1))
- tem = op0, op0 = op1, op1 = tem;
-
- if (GET_RTX_CLASS (code) == RTX_COMPARE
- || GET_RTX_CLASS (code) == RTX_COMM_COMPARE)
- {
- enum machine_mode op_mode = GET_MODE (op0);
-
- /* Strip the COMPARE from (REL_OP (compare X Y) 0) to get
- just (REL_OP X Y). */
- if (GET_CODE (op0) == COMPARE && op1 == const0_rtx)
- {
- op1 = XEXP (op0, 1);
- op0 = XEXP (op0, 0);
- op_mode = GET_MODE (op0);
- }
-
- if (op_mode == VOIDmode)
- op_mode = GET_MODE (op1);
- result = simplify_relational_operation (code, mode, op_mode, op0, op1);
- }
- else
- result = simplify_binary_operation (code, mode, op0, op1);
-
- if (result)
- return result;
-
- /* Put complex operands first and constants second. */
- if (GET_RTX_CLASS (code) == RTX_COMM_ARITH
- && swap_commutative_operands_p (op0, op1))
- return gen_rtx_fmt_ee (code, mode, op1, op0);
-
- /* If we are turning off bits already known off in OP0, we need not do
- an AND. */
- else if (code == AND && GET_CODE (op1) == CONST_INT
- && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
- && (nonzero_bits (op0, mode) & ~INTVAL (op1)) == 0)
- return op0;
-
- return gen_rtx_fmt_ee (code, mode, op0, op1);
-}
-
/* Simplify a comparison between *POP0 and *POP1 where CODE is the
comparison code that will be tested.
@@ -10396,9 +10394,9 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
&& c1 != mask
&& c1 != GET_MODE_MASK (tmode))
{
- op0 = gen_binary (AND, tmode,
- SUBREG_REG (XEXP (op0, 0)),
- gen_int_mode (c1, tmode));
+ op0 = simplify_gen_binary (AND, tmode,
+ SUBREG_REG (XEXP (op0, 0)),
+ gen_int_mode (c1, tmode));
op0 = gen_lowpart (mode, op0);
continue;
}
@@ -10542,12 +10540,12 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
{
rtx inner = XEXP (XEXP (XEXP (op0, 0), 0), 0);
rtx add_const = XEXP (XEXP (op0, 0), 1);
- rtx new_const = gen_binary (ASHIFTRT, GET_MODE (op0), add_const,
- XEXP (op0, 1));
+ rtx new_const = simplify_gen_binary (ASHIFTRT, GET_MODE (op0),
+ add_const, XEXP (op0, 1));
- op0 = gen_binary (PLUS, tmode,
- gen_lowpart (tmode, inner),
- new_const);
+ op0 = simplify_gen_binary (PLUS, tmode,
+ gen_lowpart (tmode, inner),
+ new_const);
continue;
}
@@ -10700,11 +10698,11 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
make a new AND in the proper mode. */
if (GET_CODE (op0) == AND
&& !have_insn_for (AND, mode))
- op0 = gen_binary (AND, tmode,
- gen_lowpart (tmode,
- XEXP (op0, 0)),
- gen_lowpart (tmode,
- XEXP (op0, 1)));
+ op0 = simplify_gen_binary (AND, tmode,
+ gen_lowpart (tmode,
+ XEXP (op0, 0)),
+ gen_lowpart (tmode,
+ XEXP (op0, 1)));
op0 = gen_lowpart (tmode, op0);
if (zero_extended && GET_CODE (op1) == CONST_INT)
@@ -10719,10 +10717,11 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
if (op1 == const0_rtx && (code == LT || code == GE)
&& GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT)
{
- op0 = gen_binary (AND, tmode,
- gen_lowpart (tmode, op0),
- GEN_INT ((HOST_WIDE_INT) 1
- << (GET_MODE_BITSIZE (mode) - 1)));
+ op0 = simplify_gen_binary (AND, tmode,
+ gen_lowpart (tmode, op0),
+ GEN_INT ((HOST_WIDE_INT) 1
+ << (GET_MODE_BITSIZE (mode)
+ - 1)));
code = (code == LT) ? NE : EQ;
break;
}
@@ -10769,7 +10768,7 @@ reversed_comparison (rtx exp, enum machine_mode mode, rtx op0, rtx op1)
if (reversed_code == UNKNOWN)
return NULL_RTX;
else
- return gen_binary (reversed_code, mode, op0, op1);
+ return simplify_gen_relational (reversed_code, mode, VOIDmode, op0, op1);
}
/* Utility function for record_value_for_reg. Count number of
diff --git a/gcc/common.opt b/gcc/common.opt
index 10d157ede7d..1f51b7a0390 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -161,6 +161,11 @@ Wunused-variable
Common Var(warn_unused_variable)
Warn when a variable is unused
+; APPLE LOCAL begin fat builds
+arch
+Common Separate
+; APPLE LOCAL end fat builds
+
aux-info
Common Separate
-aux-info <file> Emit declaration information into <file>
@@ -200,29 +205,62 @@ falign-functions
Common Report Var(align_functions,0)
Align the start of functions
+; APPLE LOCAL begin 4096997
falign-functions=
-Common RejectNegative Joined UInteger
+Common RejectNegative Joined UInteger Var(align_functions) VarExists
+; APPLE LOCAL end 4096997
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
falign-jumps
-Common Report Var(align_jumps,0)
+Common Report Var(align_jumps,0) VarUint PerFunc
Align labels which are only reached by jumping
falign-jumps=
+Common RejectNegative Joined UInteger Var(align_jumps) VarExists VarUint PerFunc
+
+; APPLE LOCAL begin falign-jumps-max-skip
+
+falign-jumps-max-skip
+Common Report Var(align_jumps_max_skip,0)
+
+falign-jumps-max-skip=
Common RejectNegative Joined UInteger
+; APPLE LOCAL end falign-jumps-max-skip
+
falign-labels
-Common Report Var(align_labels,0)
+Common Report Var(align_labels,0) VarUint PerFunc
Align all labels
falign-labels=
-Common RejectNegative Joined UInteger
+Common RejectNegative Joined UInteger Var(align_labels) VarExists PerFunc VarUint
falign-loops
-Common Report Var(align_loops)
+Common Report Var(align_loops) VarUint PerFunc
Align the start of loops
falign-loops=
+Common RejectNegative Joined UInteger Var(align_loops) VarExists PerFunc VarUint
+
+; APPLE LOCAL end optimization pragmas 3124235/3420242
+; APPLE LOCAL begin falign-loops-max-skip
+
+falign-loops-max-skip
+Common Report Var(align_loops_max_skip,0)
+
+falign-loops-max-skip=
+Common RejectNegative Joined UInteger
+
+; APPLE LOCAL end falign-loops-max-skip
+
+; APPLE LOCAL begin predictive compilation
+fpredictive-compilation
+Common
+Predictive Compilation
+
+fpredictive-compilation=
Common RejectNegative Joined UInteger
+; APPLE LOCAL end predictive compilation
; This flag is only tested if alias checking is enabled.
; 0 if pointer arguments may alias each other. True in C.
@@ -255,25 +293,29 @@ fbounds-check
Common Report Var(flag_bounds_check)
Generate code to check bounds before indexing arrays
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fbranch-count-reg
-Common Report Var(flag_branch_on_count_reg) Init(1)
+Common Report Var(flag_branch_on_count_reg) Init(1) PerFunc
Replace add, compare, branch with branch on count register
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fbranch-probabilities
Common Report Var(flag_branch_probabilities)
Use profiling information for branch probabilities
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fbranch-target-load-optimize
-Common Report Var(flag_branch_target_load_optimize)
+Common Report Var(flag_branch_target_load_optimize) PerFunc
Perform branch target load optimization before prologue / epilogue threading
fbranch-target-load-optimize2
-Common Report Var(flag_branch_target_load_optimize2)
+Common Report Var(flag_branch_target_load_optimize2) PerFunc
Perform branch target load optimization after prologue / epilogue threading
fbtr-bb-exclusive
-Common Report Var(flag_btr_bb_exclusive)
+Common Report Var(flag_btr_bb_exclusive) PerFunc
Restrict target load migration not to re-use registers in any basic block
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fcall-saved-
Common Joined RejectNegative
@@ -286,47 +328,65 @@ Common Joined RejectNegative
; Nonzero for -fcaller-saves: allocate values in regs that need to
; be saved across function calls, if that produces overall better code.
; Optional now, so people can test it.
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fcaller-saves
-Common Report Var(flag_caller_saves)
+Common Report Var(flag_caller_saves) PerFunc
Save registers around function calls
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fcommon
Common Report Var(flag_no_common,0)
Do not put uninitialized globals in the common section
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fcprop-registers
-Common Report Var(flag_cprop_registers)
+Common Report Var(flag_cprop_registers) PerFunc
Perform a register copy-propagation optimization pass
+; APPLE LOCAL end optimization pragmas 3124235/3420242
+; APPLE LOCAL begin new profiling flag
+fcreate-profile
+Common
+Enable common options for generating profile info for profile feedback directed optimizations
+; APPLE LOCAL end new profiling flag
+
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fcrossjumping
-Common Report Var(flag_crossjumping)
+Common Report Var(flag_crossjumping) PerFunc
Perform cross-jumping optimization
fcse-follow-jumps
-Common Report Var(flag_cse_follow_jumps)
+Common Report Var(flag_cse_follow_jumps) PerFunc
When running CSE, follow jumps to their targets
fcse-skip-blocks
-Common Report Var(flag_cse_skip_blocks)
+Common Report Var(flag_cse_skip_blocks) PerFunc
When running CSE, follow conditional jumps
+fcx-limited-range
+Common Report Var(flag_cx_limited_range) PerFunc
+Omit range reduction step when performing complex division
+; APPLE LOCAL end optimization pragmas 3124235/3420242
+
fdata-sections
Common Report Var(flag_data_sections)
Place data items into their own section
; Nonzero for -fdefer-pop: don't pop args after each function call
; instead save them up to pop many calls' args with one insns.
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fdefer-pop
-Common Report Var(flag_defer_pop)
+Common Report Var(flag_defer_pop) PerFunc
Defer popping functions args from stack until later
fdelayed-branch
-Common Report Var(flag_delayed_branch)
+Common Report Var(flag_delayed_branch) PerFunc
Attempt to fill delay slots of branch instructions
fdelete-null-pointer-checks
-Common Report Var(flag_delete_null_pointer_checks)
+Common Report Var(flag_delete_null_pointer_checks) PerFunc
Delete useless null pointer checks
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fdiagnostics-show-location=
Common Joined RejectNegative
@@ -356,73 +416,81 @@ fexceptions
Common Report Var(flag_exceptions)
Enable exception handling
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fexpensive-optimizations
-Common Report Var(flag_expensive_optimizations)
+Common Report Var(flag_expensive_optimizations) PerFunc
Perform a number of minor, expensive optimizations
+; APPLE LOCAL end optimization pragmas 3124235/3420242
ffast-math
Common
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
ffinite-math-only
-Common Report Var(flag_finite_math_only)
+Common Report Var(flag_finite_math_only) PerFunc
Assume no NaNs or infinities are generated
+; APPLE LOCAL end optimization pragmas 3124235/3420242
ffixed-
Common Joined RejectNegative
-ffixed-<register> Mark <register> as being unavailable to the compiler
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
ffloat-store
-Common Report Var(flag_float_store)
+Common Report Var(flag_float_store) PerFunc
Don't allocate floats and doubles in extended-precision registers
; Nonzero for -fforce-addr: load memory address into a register before
; reference to memory. This makes better cse but slower compilation.
fforce-addr
-Common Report Var(flag_force_addr)
+Common Report Var(flag_force_addr) PerFunc
Copy memory address constants into registers before use
; Nonzero for -fforce-mem: load memory value into a register
; before arithmetic on it. This makes better cse but slower compilation.
fforce-mem
-Common Report Var(flag_force_mem)
+Common Report Var(flag_force_mem) PerFunc
Copy memory operands into registers before use
; Nonzero means don't put addresses of constant functions in registers.
; Used for compiling the Unix kernel, where strange substitutions are
; done on the assembly output.
ffunction-cse
-Common Report Var(flag_no_function_cse,0)
+Common Report Var(flag_no_function_cse,0) PerFunc
Allow function addresses to be held in registers
+; APPLE LOCAL end optimization pragmas 3124235/3420242
ffunction-sections
Common Report Var(flag_function_sections)
Place each function into its own section
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fgcse
-Common Report Var(flag_gcse)
+Common Report Var(flag_gcse) PerFunc
Perform global common subexpression elimination
fgcse-lm
-Common Report Var(flag_gcse_lm) Init(1)
+Common Report Var(flag_gcse_lm) Init(1) PerFunc
Perform enhanced load motion during global common subexpression elimination
fgcse-sm
-Common Report Var(flag_gcse_sm) Init(0)
+Common Report Var(flag_gcse_sm) Init(0) PerFunc
Perform store motion after global common subexpression elimination
fgcse-las
-Common Report Var(flag_gcse_las) Init(0)
+Common Report Var(flag_gcse_las) Init(0) PerFunc
Perform redundant load after store elimination in global common subexpression
elimination
fgcse-after-reload
-Common Report Var(flag_gcse_after_reload)
+Common Report Var(flag_gcse_after_reload) PerFunc
Perform global common subexpression elimination after register allocation
has finished.
fguess-branch-probability
-Common Report Var(flag_guess_branch_prob)
+Common Report Var(flag_guess_branch_prob) PerFunc
Enable guessing of branch probabilities
+; APPLE LOCAL end optimization pragmas 3124235/3420242
; Nonzero means ignore `#ident' directives. 0 means handle them.
; Generate position-independent code for executables if possible
@@ -432,13 +500,15 @@ fident
Common Report Var(flag_no_ident,0)
Process #ident directives
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fif-conversion
-Common Report Var(flag_if_conversion)
+Common Report Var(flag_if_conversion) PerFunc
Perform conversion of conditional jumps to branchless equivalents
fif-conversion2
-Common Report Var(flag_if_conversion2)
+Common Report Var(flag_if_conversion2) PerFunc
Perform conversion of conditional jumps to conditional execution
+; APPLE LOCAL end optimization pragmas 3124235/3420242
; -finhibit-size-directive inhibits output of .size for ELF.
; This is used only for compiling crtstuff.c,
@@ -472,9 +542,11 @@ finstrument-functions
Common Report Var(flag_instrument_function_entry_exit)
Instrument function entry and exit with profiling calls
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fivopts
-Common Report Var(flag_ivopts) Init(1)
+Common Report Var(flag_ivopts) Init(1) PerFunc
Optimize induction variables on trees
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fkeep-inline-functions
Common Report Var(flag_keep_inline_functions)
@@ -488,17 +560,27 @@ fleading-underscore
Common Report Var(flag_leading_underscore) Init(-1)
Give external symbols a leading underscore
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
floop-optimize
-Common Report Var(flag_loop_optimize)
+Common Report Var(flag_loop_optimize) PerFunc
Perform loop optimizations
floop-optimize2
-Common Report Var(flag_loop_optimize2)
+Common Report Var(flag_loop_optimize2) PerFunc
Perform loop optimizations using the new loop optimizer
+; APPLE LOCAL end optimization pragmas 3124235/3420242
+
+; APPLE LOCAL begin lno
+floop-test
+Common Report Var(flag_tree_ssa_loop_test)
+Run loop optimizer tests
+; APPLE LOCAL end lno
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fmath-errno
-Common Report Var(flag_errno_math) Init(1)
+Common Report Var(flag_errno_math) Init(1) PerFunc
Set errno after built-in math functions
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fmem-report
Common Report Var(mem_report)
@@ -519,13 +601,15 @@ fmessage-length=
Common RejectNegative Joined UInteger
-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fmodulo-sched
-Common Report Var(flag_modulo_sched)
+Common Report Var(flag_modulo_sched) PerFunc
Perform SMS based modulo scheduling before the first scheduling pass
fmove-loop-invariants
-Common Report Var(flag_move_loop_invariants)
+Common Report Var(flag_move_loop_invariants) PerFunc
Move loop invariant computations out of loops
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fmudflap
Common RejectNegative Report Var(flag_mudflap)
@@ -539,30 +623,46 @@ fmudflapir
Common RejectNegative Report Var(flag_mudflap_ignore_reads)
Ignore read operations when inserting mudflap instrumentation.
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
freschedule-modulo-scheduled-loops
-Common Report Var(flag_resched_modulo_sched)
+Common Report Var(flag_resched_modulo_sched) PerFunc
Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fnon-call-exceptions
Common Report Var(flag_non_call_exceptions)
Support synchronous non-call exceptions
+; APPLE LOCAL begin -fobey-inline
+fobey-inline
+Common Report Var(flag_obey_inline) VarExists
+Obey 'inline' keyword and always inline, regardless of size
+; APPLE LOCAL end -fobey-inline
+
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fomit-frame-pointer
-Common Report Var(flag_omit_frame_pointer)
+Common Report Var(flag_omit_frame_pointer) PerFunc VarUint
When possible do not generate stack frames
foptimize-register-move
-Common Report Var(flag_regmove)
+Common Report Var(flag_regmove) PerFunc
Do the full register move optimization pass
foptimize-sibling-calls
-Common Report Var(flag_optimize_sibling_calls)
+Common Report Var(flag_optimize_sibling_calls) PerFunc
Optimize sibling and tail recursive calls
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fpack-struct
Common Report Var(flag_pack_struct)
Pack structure members together without holes
+; APPLE LOCAL begin pascal strings
+fpascal-strings
+Common
+Allow Pascal-style string literals
+; APPLE LOCAL end pascal strings
+
fpack-struct=
Common RejectNegative Joined UInteger
-fpack-struct=<number> Set initial maximum structure member alignment
@@ -571,17 +671,19 @@ fpcc-struct-return
Common Report Var(flag_pcc_struct_return,1) VarExists
Return small aggregates in memory, not registers
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fpeel-loops
-Common Report Var(flag_peel_loops)
+Common Report Var(flag_peel_loops) PerFunc
Perform loop peeling
fpeephole
-Common Report Var(flag_no_peephole,0)
+Common Report Var(flag_no_peephole,0) PerFunc
Enable machine specific peephole optimizations
fpeephole2
-Common Report Var(flag_peephole2)
+Common Report Var(flag_peephole2) PerFunc
Enable an RTL peephole pass before sched2
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fPIC
Common Report Var(flag_pic,2)
@@ -599,9 +701,17 @@ fpie
Common Report Var(flag_pie,1) VarExists
Generate position-independent code for executables if possible (small mode)
+; APPLE LOCAL begin -ffppc 2001-08-01 --sts
+fppc
+Common Var(flag_fppc) VarExists
+Perform floating-point precision-control pass
+; APPLE LOCAL end -ffppc 2001-08-01 --sts
+
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fprefetch-loop-arrays
-Common Report Var(flag_prefetch_loop_arrays)
+Common Report Var(flag_prefetch_loop_arrays) PerFunc
Generate prefetch instructions, if available, for arrays in loops
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fprofile
Common Report Var(profile_flag)
@@ -634,73 +744,77 @@ freg-struct-return
Common Report Var(flag_pcc_struct_return,0) VarExists
Return small aggregates in registers
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fregmove
-Common Report Var(flag_regmove)
+Common Report Var(flag_regmove) PerFunc VarExists
Enables a register move optimization
frename-registers
-Common Report Var(flag_rename_registers)
+Common Report Var(flag_rename_registers) PerFunc
Perform a register renaming optimization pass
freorder-blocks
-Common Report Var(flag_reorder_blocks)
+Common Report Var(flag_reorder_blocks) PerFunc
Reorder basic blocks to improve code placement
freorder-blocks-and-partition
-Common Report Var(flag_reorder_blocks_and_partition)
+Common Report Var(flag_reorder_blocks_and_partition) PerFunc
Reorder basic blocks and partition into hot and cold sections
+; APPLE LOCAL end optimization pragmas 3124235/3420242
freorder-functions
Common Report Var(flag_reorder_functions)
Reorder functions to improve code placement
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
frerun-cse-after-loop
-Common Report Var(flag_rerun_cse_after_loop)
+Common Report Var(flag_rerun_cse_after_loop) PerFunc
Add a common subexpression elimination pass after loop optimizations
frerun-loop-opt
-Common Report Var(flag_rerun_loop_opt)
+Common Report Var(flag_rerun_loop_opt) PerFunc
Run the loop optimizer twice
frounding-math
-Common Report Var(flag_rounding_math)
+Common Report Var(flag_rounding_math) PerFunc
Disable optimizations that assume default FP rounding behavior
fsched-interblock
-Common Report Var(flag_schedule_interblock) Init(1)
+Common Report Var(flag_schedule_interblock) Init(1) PerFunc
Enable scheduling across basic blocks
fsched-spec
-Common Report Var(flag_schedule_speculative) Init(1)
+Common Report Var(flag_schedule_speculative) Init(1) PerFunc
Allow speculative motion of non-loads
fsched-spec-load
-Common Report Var(flag_schedule_speculative_load)
+Common Report Var(flag_schedule_speculative_load) PerFunc
Allow speculative motion of some loads
fsched-spec-load-dangerous
-Common Report Var(flag_schedule_speculative_load_dangerous)
+Common Report Var(flag_schedule_speculative_load_dangerous) PerFunc
Allow speculative motion of more loads
fsched-verbose=
-Common RejectNegative Joined
+Common RejectNegative Joined Var(sched_verbose_param) UInteger PerFunc VarUint
-fsched-verbose=<number> Set the verbosity level of the scheduler
fsched2-use-superblocks
-Common Report Var(flag_sched2_use_superblocks)
+Common Report Var(flag_sched2_use_superblocks) PerFunc
If scheduling post reload, do superblock scheduling
fsched2-use-traces
-Common Report Var(flag_sched2_use_traces)
+Common Report Var(flag_sched2_use_traces) PerFunc
If scheduling post reload, do trace scheduling
fschedule-insns
-Common Report Var(flag_schedule_insns)
+Common Report Var(flag_schedule_insns) PerFunc
Reschedule instructions before register allocation
fschedule-insns2
-Common Report Var(flag_schedule_insns_after_reload)
+Common Report Var(flag_schedule_insns_after_reload) PerFunc
Reschedule instructions after register allocation
+; APPLE LOCAL end optimization pragmas 3124235/3420242
; sched_stalled_insns means that insns can be moved prematurely from the queue
; of stalled insns into the ready list.
@@ -710,27 +824,31 @@ Allow premature scheduling of queued insns
fsched-stalled-insns=
Common RejectNegative Joined UInteger
--fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
+-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
; sched_stalled_insns_dep controls how many recently scheduled cycles will
; be examined for a dependency on a stalled insn that is candidate for
; premature removal from the queue of stalled insns into the ready list (has
; an effect only if the flag 'sched_stalled_insns' is set).
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fsched-stalled-insns-dep
-Common Report Var(flag_sched_stalled_insns_dep,1) Init(1)
+Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) PerFunc VarUint
Set dependence distance checking in premature scheduling of queued insns
fsched-stalled-insns-dep=
-Common RejectNegative Joined UInteger
--fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
+Common RejectNegative Joined UInteger Var(flag_sched_stalled_insns_dep) VarExists VarUint PerFunc
+-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fshared-data
Common Report Var(flag_shared_data)
Mark data as shared rather than private
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fsignaling-nans
-Common Report Var(flag_signaling_nans)
+Common Report Var(flag_signaling_nans) PerFunc
Disable optimizations observable by IEEE signaling NaNs
+; APPLE LOCAL end optimization pragmas 3124235/3420242
fsingle-precision-constant
Common Report Var(flag_single_precision_constant)
@@ -740,13 +858,15 @@ fspeculative-prefetching
Common Report Var(flag_speculative_prefetching)
Use value profiling for speculative prefetching
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fsplit-ivs-in-unroller
-Common Report Var(flag_split_ivs_in_unroller) Init(1)
+Common Report Var(flag_split_ivs_in_unroller) Init(1) PerFunc
Split lifetimes of induction variables when loops are unrolled.
fvariable-expansion-in-unroller
-Common Report Var(flag_variable_expansion_in_unroller)
+Common Report Var(flag_variable_expansion_in_unroller) PerFunc
Apply variable expansion when loops are unrolled.
+; APPLE LOCAL end optimization pragmas 3124235/3420242
; Emit code to probe the stack, to help detect stack overflow; also
; may cause large objects to be allocated dynamically.
@@ -765,9 +885,11 @@ fstack-limit-symbol=
Common RejectNegative Joined
-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fstrength-reduce
-Common Report Var(flag_strength_reduce)
+Common Report Var(flag_strength_reduce) PerFunc
Perform strength reduction optimizations
+; APPLE LOCAL end optimization pragmas 3124235/3420242
; Nonzero if we should do (language-dependent) alias analysis.
; Typically, this analysis will assume that expressions of certain
@@ -785,9 +907,11 @@ ftest-coverage
Common Report Var(flag_test_coverage)
Create data files needed by \"gcov\"
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fthread-jumps
-Common Report Var(flag_thread_jumps)
+Common Report Var(flag_thread_jumps) PerFunc
Perform jump threading optimizations
+; APPLE LOCAL end optimization pragmas 3124235/3420242
ftime-report
Common Report Var(time_report)
@@ -797,99 +921,110 @@ ftls-model=
Common Joined RejectNegative
-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
ftracer
-Common Report Var(flag_tracer)
+Common Report Var(flag_tracer) PerFunc
Perform superblock formation via tail duplication
; Zero means that floating-point math operations cannot generate a
; (user-visible) trap. This is the case, for example, in nonstop
; IEEE 754 arithmetic.
ftrapping-math
-Common Report Var(flag_trapping_math) Init(1)
+Common Report Var(flag_trapping_math) Init(1) PerFunc
Assume floating-point operations can trap
ftrapv
-Common Report Var(flag_trapv)
+Common Report Var(flag_trapv) PerFunc
Trap for signed overflow in addition, subtraction and multiplication
+; APPLE LOCAL end optimization pragmas 3124235/3420242
ftree-based-profiling
Common Report Var(flag_tree_based_profiling)
Use tree-ssa based implementation of profiling
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
ftree-ccp
-Common Report Var(flag_tree_ccp)
+Common Report Var(flag_tree_ccp) PerFunc
Enable SSA-CCP optimization on trees
ftree-ch
-Common Report Var(flag_tree_ch)
+Common Report Var(flag_tree_ch) PerFunc
Enable loop header copying on trees
ftree-combine-temps
-Common Report Var(flag_tree_combine_temps)
+Common Report Var(flag_tree_combine_temps) PerFunc
Coalesce memory temporaries in the SSA->normal pass
ftree-copyrename
-Common Report Var(flag_tree_copyrename)
+Common Report Var(flag_tree_copyrename) PerFunc
Replace SSA temporaries with better names in copies.
ftree-dce
-Common Report Var(flag_tree_dce)
+Common Report Var(flag_tree_dce) PerFunc
Enable SSA dead code elimination optimization on trees
ftree-dominator-opts
-Common Report Var(flag_tree_dom)
+Common Report Var(flag_tree_dom) PerFunc
Enable dominator optimizations
ftree-dse
-Common Report Var(flag_tree_dse)
+Common Report Var(flag_tree_dse) PerFunc
Enable dead store elimination
ftree-fre
-Common Report Var(flag_tree_fre)
+Common Report Var(flag_tree_fre) PerFunc
Enable Full Redundancy Elimination (FRE) on trees
ftree-loop-im
-Common Report Var(flag_tree_loop_im) Init(1)
+Common Report Var(flag_tree_loop_im) Init(1) PerFunc
Enable loop invariant motion on trees
ftree-loop-linear
-Common Report Var(flag_tree_loop_linear)
+Common Report Var(flag_tree_loop_linear) PerFunc
Enable linear loop transforms on trees
ftree-loop-ivcanon
-Common Report Var(flag_tree_loop_ivcanon) Init(1)
+Common Report Var(flag_tree_loop_ivcanon) Init(1) PerFunc
Create canonical induction variables in loops
+; APPLE LOCAL begin loops-to-memset
+ftree-loop-memset
+Common Report Var(flag_tree_loop_memset) Init(0) PerFunc
+Transform appropriate loops to memset calls
+; APPLE LOCAL end loops-to-memset
+
ftree-loop-optimize
-Common Report Var(flag_tree_loop_optimize) Init(1)
+Common Report Var(flag_tree_loop_optimize) Init(1) PerFunc
Enable loop optimizations on tree level
ftree-pre
-Common Report Var(flag_tree_pre)
+Common Report Var(flag_tree_pre) PerFunc
Enable SSA-PRE optimization on trees
ftree-sra
-Common Report Var(flag_tree_sra)
+Common Report Var(flag_tree_sra) PerFunc
Perform scalar replacement of aggregates
ftree-ter
-Common Report Var(flag_tree_ter)
+Common Report Var(flag_tree_ter) PerFunc
Replace temporary expressions in the SSA->normal pass
ftree-lrs
-Common Report Var(flag_tree_live_range_split)
+Common Report Var(flag_tree_live_range_split) PerFunc
Perform live range splitting during the SSA->normal pass.
+; APPLE LOCAL end optimization pragmas 3124235/3420242
funit-at-a-time
Common Report Var(flag_unit_at_a_time)
Compile whole compilation unit at a time
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
funroll-loops
-Common Report Var(flag_unroll_loops)
+Common Report Var(flag_unroll_loops) PerFunc
Perform loop unrolling when iteration count is known
funroll-all-loops
-Common Report Var(flag_unroll_all_loops)
+Common Report Var(flag_unroll_all_loops) PerFunc
Perform loop unrolling for all loops
; Nonzero means that unsafe floating-point math optimizations are allowed
@@ -897,28 +1032,37 @@ Perform loop unrolling for all loops
; are allowed to assume that their arguments and results are "normal"
; (e.g., nonnegative for SQRT).
funsafe-math-optimizations
-Common Report Var(flag_unsafe_math_optimizations)
+Common Report Var(flag_unsafe_math_optimizations) PerFunc
Allow math optimizations that may violate IEEE or ISO standards
funswitch-loops
-Common Report Var(flag_unswitch_loops)
+Common Report Var(flag_unswitch_loops) PerFunc
Perform loop unswitching
+; APPLE LOCAL end optimization pragmas 3124235/3420242
funwind-tables
Common Report Var(flag_unwind_tables)
Just generate unwind tables for exception handling
+; APPLE LOCAL begin new profiling flag
+fuse-profile
+Common
+Enable common options for performing profile feedback directed optimizations
+; APPLE LOCAL end new profiling flag
+
fvar-tracking
Common Report Var(flag_var_tracking) VarExists
Perform variable tracking
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
ftree-vectorize
-Common Report Var(flag_tree_vectorize)
+Common Report Var(flag_tree_vectorize) PerFunc
Enable loop vectorization on trees
+; APPLE LOCAL end optimization pragmas 3124235/3420242
ftree-vectorizer-verbose=
Common RejectNegative Joined
--ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
+-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
; -fverbose-asm causes extra commentary information to be produced in
; the generated assembly code (to make it more readable). This option
@@ -939,13 +1083,27 @@ fvpt
Common Report Var(flag_value_profile_transformations)
Use expression value profiles in optimizations
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
fweb
-Common Report Var(flag_web) Init(0)
+Common Report Var(flag_web) Init(0) PerFunc
Construct webs and split unrelated uses of single variable
fwrapv
-Common Report Var(flag_wrapv)
+Common Report Var(flag_wrapv) PerFunc
Assume signed arithmetic overflow wraps around
+; APPLE LOCAL end optimization pragmas 3124235/3420242
+
+; APPLE LOCAL begin fwritable strings
+fwritable-strings
+Common Report Var(flag_writable_strings) VarExists
+Store strings in writable data section
+; APPLE LOCAL end fwritable strings
+
+; APPLE LOCAL begin KEXT
+fapple-kext
+C++ Report Var(flag_apple_kext)
+Generate code for darwin loadable kernel extentions
+; APPLE LOCAL end KEXT
fzero-initialized-in-bss
Common Report Var(flag_zero_initialized_in_bss) Init(1)
@@ -994,9 +1152,11 @@ o
Common Joined Separate
-o <file> Place output into <file>
+; APPLE LOCAL begin optimization pragmas 3124235/3420242
p
-Common Var(profile_flag)
+Common Var(profile_flag) VarExists
Enable function profiling
+; APPLE LOCAL end optimization pragmas 3124235/3420242
pedantic
Common Var(pedantic)
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 51300e25e5b..bc8db6c3347 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -185,6 +185,10 @@ case ${target} in
| sparclite-*-elf* \
| sparc86x-*-elf* \
| sparc-*-openbsd* \
+ | i860-*-sysv4* \
+ | ip2k-*-elf \
+ | ns32k-*-netbsdelf* \
+ | ns32k-*-netbsd* \
)
if test "x$enable_obsolete" != xyes; then
echo "*** Configuration ${target} is obsolete." >&2
@@ -228,6 +232,7 @@ esac
# machines.
tm_p_file=
cpu_type=`echo ${target} | sed 's/-.*$//'`
+cpu_is_64bit=
case ${target} in
alpha*-*-*)
cpu_type=alpha
@@ -284,6 +289,11 @@ powerpc*-*-*)
cpu_type=rs6000
extra_headers="ppc-asm.h altivec.h spe.h"
need_64bit_hwint=yes
+ case x$with_cpu in
+ xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345]|xrs64a)
+ cpu_is_64bit=yes
+ ;;
+ esac
;;
rs6000*-*-*)
need_64bit_hwint=yes
@@ -857,7 +867,7 @@ hppa*64*-*-hpux11*)
pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux11.h"
fi
case ${target} in
- *-*-hpux11.11)
+ *-*-hpux11.[1-9]*)
tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
;;
*)
@@ -896,6 +906,10 @@ hppa[12]*-*-hpux11*)
;;
i[34567]86-*-darwin*)
tm_file="${tm_file} i386/darwin.h"
+ # APPLE LOCAL 4099000
+ tmake_file="${tmake_file} i386/t-darwin"
+ # APPLE LOCAL 4126124
+ need_64bit_hwint=yes
;;
i[34567]86-*-elf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
@@ -1054,12 +1068,12 @@ i[34567]86-*-solaris2*)
tmake_file="$tmake_file t-slibgcc-sld"
fi
case ${target} in
- *-*-solaris2.[789] | *-*-solaris2.1[0-9])
+ *-*-solaris2.[789] | *-*-solaris2.1[0-9]*)
tm_file="$tm_file tm-dwarf2.h"
;;
esac
case ${target} in
- *-*-solaris2.1[0-9])
+ *-*-solaris2.1[0-9]*)
tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h"
tm_defines="${tm_defines} TARGET_BI_ARCH=1"
tmake_file="$tmake_file i386/t-sol2-10"
@@ -1528,12 +1542,10 @@ avr-*-*)
# extra_headers=
# ;;
powerpc64-*-linux*)
- tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
- case x$with_cpu in
- x|xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345]|xrs64a)
- tm_file="${tm_file} rs6000/default64.h";;
- esac
- tm_file="${tm_file} rs6000/linux64.h"
+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
+ test x$with_cpu != x || cpu_is_64bit=yes
+ test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h"
+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h"
tmake_file="rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64"
;;
powerpc64-*-gnu*)
@@ -1549,6 +1561,11 @@ powerpc-*-beos*)
powerpc-*-darwin*)
tm_file="${tm_file} rs6000/darwin.h"
tmake_file="${tmake_file} rs6000/t-darwin"
+ case ${target} in
+ *-darwin1[0-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" ;;
+ *-darwin[0-7]*) ;;
+ *-darwin[8-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" ;;
+ esac
extra_headers=altivec.h
;;
powerpc*-*-freebsd*)
@@ -1607,8 +1624,20 @@ powerpc-*-linux*spe*)
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
;;
powerpc-*-linux*)
- tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+ case ${enable_targets}:${cpu_is_64bit} in
+ *powerpc64* | all:* | *:yes)
+ if test x$cpu_is_64bit = xyes; then
+ tm_file="${tm_file} rs6000/default64.h"
+ fi
+ tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h"
+ tmake_file="$tmake_file rs6000/t-linux64"
+ ;;
+ *)
+ tm_file="${tm_file} rs6000/linux.h"
+ ;;
+ esac
;;
powerpc-*-gnu-gnualtivec*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
@@ -1959,7 +1988,7 @@ sparc-*-solaris2*)
tm_file="${tm_file} sparc/sol26-sld.h"
fi
;;
- *-*-solaris2.[789] | *-*-solaris2.1[0-9])
+ *-*-solaris2.[789] | *-*-solaris2.1[0-9]*)
tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h tm-dwarf2.h"
if test x$gnu_ld = xyes; then
tm_file="${tm_file} sparc/sol2-gld-bi.h"
@@ -2308,24 +2337,24 @@ if test x$with_float = x; then
esac
fi
- # Similarly for --with-schedule.
- if test x$with_schedule = x; then
- case ${target} in
- hppa1* | parisc1*)
- # Override default PA8000 scheduling model.
- with_schedule=7100LC
- ;;
- esac
- fi
+# Similarly for --with-schedule.
+if test x$with_schedule = x; then
+ case ${target} in
+ hppa1* | parisc1*)
+ # Override default PA8000 scheduling model.
+ with_schedule=7100LC
+ ;;
+ esac
+fi
- # Validate and mark as valid any --with options supported
- # by this target. In order to use a particular --with option
- # you must list it in supported_defaults; validating the value
- # is optional. This case statement should set nothing besides
- # supported_defaults.
+# Validate and mark as valid any --with options supported
+# by this target. In order to use a particular --with option
+# you must list it in supported_defaults; validating the value
+# is optional. This case statement should set nothing besides
+# supported_defaults.
- supported_defaults=
- case "${target}" in
+supported_defaults=
+case "${target}" in
alpha*-*-*)
supported_defaults="cpu tune"
for which in cpu tune; do
@@ -2533,13 +2562,12 @@ fi
eval $with_which=
;;
"" | common \
- | power | power2 | power3 | power4 \
- | powerpc | powerpc64 \
+ | power | power[2345] | powerpc | powerpc64 \
| rios | rios1 | rios2 | rsc | rsc1 | rs64a \
| 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \
| 601 | 602 | 603 | 603e | ec603e | 604 \
| 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
- | 8540 | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5)
+ | 854[08] | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5)
# OK
;;
*)
@@ -2638,11 +2666,11 @@ fi
;;
esac
;;
- esac
+esac
- # Set some miscellaneous flags for particular targets.
- target_cpu_default2=
- case ${target} in
+# Set some miscellaneous flags for particular targets.
+target_cpu_default2=
+case ${target} in
alpha*-*-*)
if test x$gas = xyes
then
@@ -2763,44 +2791,45 @@ fi
;;
esac
;;
- esac
+esac
- t=
- all_defaults="abi cpu arch tune schedule float mode fpu divide"
- for option in $all_defaults
- do
- eval "val=\$with_$option"
- if test -n "$val"; then
- case " $supported_defaults " in
- *" $option "*)
- ;;
- *)
- echo "This target does not support --with-$option." 2>&1
- exit 1
- ;;
- esac
+t=
+all_defaults="abi cpu arch tune schedule float mode fpu divide"
+for option in $all_defaults
+do
+ eval "val=\$with_$option"
+ if test -n "$val"; then
+ case " $supported_defaults " in
+ *" $option "*)
+ ;;
+ *)
+ echo "This target does not support --with-$option." 2>&1
+ exit 1
+ ;;
+ esac
- if test "x$t" = x
- then
- t="{ \"$option\", \"$val\" }"
- else
- t="${t}, { \"$option\", \"$val\" }"
- fi
+ if test "x$t" = x
+ then
+ t="{ \"$option\", \"$val\" }"
+ else
+ t="${t}, { \"$option\", \"$val\" }"
fi
- done
- if test "x$t" = x
- then
- configure_default_options="{ { NULL, NULL} }"
- else
- configure_default_options="{ ${t} }"
fi
+done
+
+if test "x$t" = x
+then
+ configure_default_options="{ { NULL, NULL} }"
+else
+ configure_default_options="{ ${t} }"
+fi
- if test "$target_cpu_default2" != ""
+if test "$target_cpu_default2" != ""
+then
+ if test "$target_cpu_default" != ""
then
- if test "$target_cpu_default" != ""
- then
- target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
- else
- target_cpu_default=$target_cpu_default2
- fi
+ target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
+ else
+ target_cpu_default=$target_cpu_default2
fi
+fi
diff --git a/gcc/config.host b/gcc/config.host
index 9024ec1c5e8..5f8caa2b066 100644
--- a/gcc/config.host
+++ b/gcc/config.host
@@ -85,6 +85,17 @@ case ${host} in
;;
esac
+# APPLE LOCAL begin mainline 2005-04-06 4071679
+# Common parts for widely ported systems.
+case ${target} in
+ *-darwin*)
+ # Generic darwin host support.
+ out_host_hook_obj=host-darwin.o
+ host_xmake_file=x-darwin
+ ;;
+esac
+# APPLE LOCAL end mainline 2005-04-06 4071679
+
# Machine-specific settings.
case ${host} in
alpha*-dec-*vms*)
@@ -146,6 +157,8 @@ case ${host} in
;;
i[34567]86-*-pe | i[34567]86-*-cygwin*)
host_xm_file=i386/xm-cygwin.h
+ out_host_hook_obj=host-cygwin.o
+ host_xmake_file=i386/x-cygwin
host_exeext=.exe
;;
i[34567]86-*-mingw32*)
@@ -163,6 +176,14 @@ case ${host} in
i[34567]86-*-interix3*)
host_xmake_file="x-interix"
;;
+# APPLE LOCAL begin mainline 2005-04-06 4071679
+ i[34567]86-*-darwin*)
+ out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
+ host_xmake_file="${host_xmake_file} i386/x-darwin"
+ # APPLE LOCAL 4126124
+ use_long_long_for_widest_fast_int=yes
+ ;;
+# APPLE LOCAL end mainline 2005-04-06 4071679
i860-*-sysv4*)
host_xmake_file=i860/x-sysv4
;;
@@ -170,9 +191,10 @@ case ${host} in
host_can_use_collect2=no
;;
powerpc-*-darwin*)
- # powerpc-darwin host support.
- out_host_hook_obj=host-darwin.o
- host_xmake_file=rs6000/x-darwin
+# APPLE LOCAL begin mainline 2005-04-06 4071679
+ out_host_hook_obj="${out_host_hook_obj} host-ppc-darwin.o"
+ host_xmake_file="${host_xmake_file} rs6000/x-darwin"
+# APPLE LOCAL end mainline 2005-04-06 4071679
;;
*-*-solaris2*)
out_host_hook_obj=host-solaris.o
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 037dc4ad33e..ce08d6734e7 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -5543,22 +5543,24 @@ alpha_build_builtin_va_list (void)
variable number of arguments. */
static void
-alpha_setup_incoming_varargs (CUMULATIVE_ARGS *pcum,
- enum machine_mode mode ATTRIBUTE_UNUSED,
- tree type ATTRIBUTE_UNUSED,
- int *pretend_size, int no_rtl)
+alpha_setup_incoming_varargs (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
+ tree type, int *pretend_size, int no_rtl)
{
+ CUMULATIVE_ARGS cum = *pcum;
+
+ /* Skip the current argument. */
+ FUNCTION_ARG_ADVANCE (cum, mode, type, 1);
+
#if TARGET_ABI_UNICOSMK
/* On Unicos/Mk, the standard subroutine __T3E_MISMATCH stores all register
arguments on the stack. Unfortunately, it doesn't always store the first
one (i.e. the one that arrives in $16 or $f16). This is not a problem
with stdargs as we always have at least one named argument there. */
- int num_reg_words = pcum->num_reg_words;
- if (num_reg_words < 6)
+ if (cum.num_reg_words < 6)
{
if (!no_rtl)
{
- emit_insn (gen_umk_mismatch_args (GEN_INT (num_reg_words + 1)));
+ emit_insn (gen_umk_mismatch_args (GEN_INT (cum.num_reg_words)));
emit_insn (gen_arg_home_umk ());
}
*pretend_size = 0;
@@ -5570,7 +5572,7 @@ alpha_setup_incoming_varargs (CUMULATIVE_ARGS *pcum,
This is not only because we won't need the space, but because AP
includes the current_pretend_args_size and we don't want to mess up
any ap-relative addresses already made. */
- if (pcum->num_args < 6)
+ if (cum.num_args < 6)
{
if (!no_rtl)
{
@@ -5591,8 +5593,6 @@ alpha_setup_incoming_varargs (CUMULATIVE_ARGS *pcum,
not the most efficient way to implement varargs with just one register
class, but it isn't worth doing anything more efficient in this rare
case. */
- CUMULATIVE_ARGS cum = *pcum;
-
if (cum >= 6)
return;
@@ -5602,18 +5602,17 @@ alpha_setup_incoming_varargs (CUMULATIVE_ARGS *pcum,
rtx tmp;
tmp = gen_rtx_MEM (BLKmode,
- plus_constant (virtual_incoming_args_rtx,
- (cum + 6) * UNITS_PER_WORD));
+ plus_constant (virtual_incoming_args_rtx,
+ (cum + 6) * UNITS_PER_WORD));
set_mem_alias_set (tmp, set);
move_block_from_reg (16 + cum, tmp, 6 - cum);
tmp = gen_rtx_MEM (BLKmode,
- plus_constant (virtual_incoming_args_rtx,
- cum * UNITS_PER_WORD));
+ plus_constant (virtual_incoming_args_rtx,
+ cum * UNITS_PER_WORD));
set_mem_alias_set (tmp, set);
- move_block_from_reg (16 + (TARGET_FPREGS ? 32 : 0) + cum, tmp,
- 6 - cum);
- }
+ move_block_from_reg (16 + cum + TARGET_FPREGS*32, tmp, 6 - cum);
+ }
*pretend_size = 12 * UNITS_PER_WORD;
#endif
}
@@ -5642,7 +5641,7 @@ alpha_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED)
integer argument register; that futzes with pretend_args_size,
which changes the meaning of AP. */
- if (NUM_ARGS <= 6)
+ if (NUM_ARGS < 6)
offset = TARGET_ABI_OPEN_VMS ? UNITS_PER_WORD : 6 * UNITS_PER_WORD;
else
offset = -6 * UNITS_PER_WORD + current_function_pretend_args_size;
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 884156f7f97..7b298b77e69 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -156,99 +156,99 @@ extern int alpha_tls_size;
/* This means that floating-point support exists in the target implementation
of the Alpha architecture. This is usually the default. */
#define MASK_FP (1 << 0)
-#define TARGET_FP (target_flags & MASK_FP)
+#define TARGET_FP ((target_flags & MASK_FP) != 0)
/* This means that floating-point registers are allowed to be used. Note
that Alpha implementations without FP operations are required to
provide the FP registers. */
#define MASK_FPREGS (1 << 1)
-#define TARGET_FPREGS (target_flags & MASK_FPREGS)
+#define TARGET_FPREGS ((target_flags & MASK_FPREGS) != 0)
/* This means that gas is used to process the assembler file. */
#define MASK_GAS (1 << 2)
-#define TARGET_GAS (target_flags & MASK_GAS)
+#define TARGET_GAS ((target_flags & MASK_GAS) != 0)
/* This means that we should mark procedures as IEEE conformant. */
#define MASK_IEEE_CONFORMANT (1 << 3)
-#define TARGET_IEEE_CONFORMANT (target_flags & MASK_IEEE_CONFORMANT)
+#define TARGET_IEEE_CONFORMANT ((target_flags & MASK_IEEE_CONFORMANT) != 0)
/* This means we should be IEEE-compliant except for inexact. */
#define MASK_IEEE (1 << 4)
-#define TARGET_IEEE (target_flags & MASK_IEEE)
+#define TARGET_IEEE ((target_flags & MASK_IEEE) != 0)
/* This means we should be fully IEEE-compliant. */
#define MASK_IEEE_WITH_INEXACT (1 << 5)
-#define TARGET_IEEE_WITH_INEXACT (target_flags & MASK_IEEE_WITH_INEXACT)
+#define TARGET_IEEE_WITH_INEXACT ((target_flags & MASK_IEEE_WITH_INEXACT) != 0)
/* This means we must construct all constants rather than emitting
them as literal data. */
#define MASK_BUILD_CONSTANTS (1 << 6)
-#define TARGET_BUILD_CONSTANTS (target_flags & MASK_BUILD_CONSTANTS)
+#define TARGET_BUILD_CONSTANTS ((target_flags & MASK_BUILD_CONSTANTS) != 0)
/* This means we handle floating points in VAX F- (float)
or G- (double) Format. */
#define MASK_FLOAT_VAX (1 << 7)
-#define TARGET_FLOAT_VAX (target_flags & MASK_FLOAT_VAX)
+#define TARGET_FLOAT_VAX ((target_flags & MASK_FLOAT_VAX) != 0)
/* This means that the processor has byte and half word loads and stores
(the BWX extension). */
#define MASK_BWX (1 << 8)
-#define TARGET_BWX (target_flags & MASK_BWX)
+#define TARGET_BWX ((target_flags & MASK_BWX) != 0)
/* This means that the processor has the MAX extension. */
#define MASK_MAX (1 << 9)
-#define TARGET_MAX (target_flags & MASK_MAX)
+#define TARGET_MAX ((target_flags & MASK_MAX) != 0)
/* This means that the processor has the FIX extension. */
#define MASK_FIX (1 << 10)
-#define TARGET_FIX (target_flags & MASK_FIX)
+#define TARGET_FIX ((target_flags & MASK_FIX) != 0)
/* This means that the processor has the CIX extension. */
#define MASK_CIX (1 << 11)
-#define TARGET_CIX (target_flags & MASK_CIX)
+#define TARGET_CIX ((target_flags & MASK_CIX) != 0)
/* This means use !literal style explicit relocations. */
#define MASK_EXPLICIT_RELOCS (1 << 12)
-#define TARGET_EXPLICIT_RELOCS (target_flags & MASK_EXPLICIT_RELOCS)
+#define TARGET_EXPLICIT_RELOCS ((target_flags & MASK_EXPLICIT_RELOCS) != 0)
/* This means use 16-bit relocations to .sdata/.sbss. */
#define MASK_SMALL_DATA (1 << 13)
-#define TARGET_SMALL_DATA (target_flags & MASK_SMALL_DATA)
+#define TARGET_SMALL_DATA ((target_flags & MASK_SMALL_DATA) != 0)
/* This means emit thread pointer loads for kernel not user. */
#define MASK_TLS_KERNEL (1 << 14)
-#define TARGET_TLS_KERNEL (target_flags & MASK_TLS_KERNEL)
+#define TARGET_TLS_KERNEL ((target_flags & MASK_TLS_KERNEL) != 0)
/* This means use direct branches to local functions. */
#define MASK_SMALL_TEXT (1 << 15)
-#define TARGET_SMALL_TEXT (target_flags & MASK_SMALL_TEXT)
+#define TARGET_SMALL_TEXT ((target_flags & MASK_SMALL_TEXT) != 0)
/* 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)
+#define TARGET_LONG_DOUBLE_128 ((target_flags & MASK_LONG_DOUBLE_128) != 0)
/* 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)
-#define TARGET_CPU_EV5 (target_flags & MASK_CPU_EV5)
+#define TARGET_CPU_EV5 ((target_flags & MASK_CPU_EV5) != 0)
/* Likewise for EV6. */
#define MASK_CPU_EV6 (1 << 29)
-#define TARGET_CPU_EV6 (target_flags & MASK_CPU_EV6)
+#define TARGET_CPU_EV6 ((target_flags & MASK_CPU_EV6) != 0)
/* This means we support the .arch directive in the assembler. Only
defined in TARGET_CPU_DEFAULT. */
#define MASK_SUPPORT_ARCH (1 << 30)
-#define TARGET_SUPPORT_ARCH (target_flags & MASK_SUPPORT_ARCH)
+#define TARGET_SUPPORT_ARCH ((target_flags & MASK_SUPPORT_ARCH) != 0)
/* These are for target os support and cannot be changed at runtime. */
#define TARGET_ABI_WINDOWS_NT 0
diff --git a/gcc/config/alpha/t-osf4 b/gcc/config/alpha/t-osf4
index 58ce6c2d8d6..ead38d1237c 100644
--- a/gcc/config/alpha/t-osf4
+++ b/gcc/config/alpha/t-osf4
@@ -25,6 +25,8 @@ 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) $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
+SHLIB_INSTALL = \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir); \
+ $(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/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index 5c040bda1ce..e7811ca8c8e 100644
--- a/gcc/config/arm/arm-protos.h
+++ b/gcc/config/arm/arm-protos.h
@@ -123,6 +123,7 @@ extern void arm_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree);
extern bool arm_needs_doubleword_align (enum machine_mode, tree);
extern rtx arm_function_value(tree, tree);
#endif
+extern int arm_apply_result_size (void);
#if defined AOF_ASSEMBLER
extern rtx aof_pic_entry (rtx);
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 95fe7fe48f1..063055c335e 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -373,7 +373,7 @@ const char * structure_size_string = NULL;
int arm_structure_size_boundary = DEFAULT_STRUCTURE_SIZE_BOUNDARY;
/* Used for Thumb call_via trampolines. */
-rtx thumb_call_via_label[13];
+rtx thumb_call_via_label[14];
static int thumb_call_reg_needed;
/* Bit values used to identify processor capabilities. */
@@ -2283,7 +2283,8 @@ arm_canonicalize_comparison (enum rtx_code code, rtx * op1)
/* Define how to find the value returned by a function. */
-rtx arm_function_value(tree type, tree func ATTRIBUTE_UNUSED)
+rtx
+arm_function_value(tree type, tree func ATTRIBUTE_UNUSED)
{
enum machine_mode mode;
int unsignedp ATTRIBUTE_UNUSED;
@@ -2297,6 +2298,28 @@ rtx arm_function_value(tree type, tree func ATTRIBUTE_UNUSED)
return LIBCALL_VALUE(mode);
}
+/* Determine the amount of memory needed to store the possible return
+ registers of an untyped call. */
+int
+arm_apply_result_size (void)
+{
+ int size = 16;
+
+ if (TARGET_ARM)
+ {
+ if (TARGET_HARD_FLOAT_ABI)
+ {
+ if (TARGET_FPA)
+ size += 12;
+ if (TARGET_MAVERICK)
+ size += 8;
+ }
+ if (TARGET_IWMMXT_ABI)
+ size += 8;
+ }
+
+ return size;
+}
/* Decide whether a type should be returned in memory (true)
or in a register (false). This is called by the macro
@@ -8634,8 +8657,14 @@ int_log2 (HOST_WIDE_INT power)
return shift;
}
-/* Output a .ascii pseudo-op, keeping track of lengths. This is because
- /bin/as is horribly restrictive. */
+/* Output a .ascii pseudo-op, keeping track of lengths. This is
+ because /bin/as is horribly restrictive. The judgement about
+ whether or not each character is 'printable' (and can be output as
+ is) or not (and must be printed with an octal escape) must be made
+ with reference to the *host* character set -- the situation is
+ similar to that discussed in the comments above pp_c_char in
+ c-pretty-print.c. */
+
#define MAX_ASCII_LEN 51
void
@@ -8656,57 +8685,20 @@ output_ascii_pseudo_op (FILE *stream, const unsigned char *p, int len)
len_so_far = 0;
}
- switch (c)
+ if (ISPRINT (c))
{
- case TARGET_TAB:
- fputs ("\\t", stream);
- len_so_far += 2;
- break;
-
- case TARGET_FF:
- fputs ("\\f", stream);
- len_so_far += 2;
- break;
-
- case TARGET_BS:
- fputs ("\\b", stream);
- len_so_far += 2;
- break;
-
- case TARGET_CR:
- fputs ("\\r", stream);
- len_so_far += 2;
- break;
-
- case TARGET_NEWLINE:
- fputs ("\\n", stream);
- c = p [i + 1];
- if ((c >= ' ' && c <= '~')
- || c == TARGET_TAB)
- /* This is a good place for a line break. */
- len_so_far = MAX_ASCII_LEN;
- else
- len_so_far += 2;
- break;
-
- case '\"':
- case '\\':
- putc ('\\', stream);
- len_so_far++;
- /* Drop through. */
-
- default:
- if (c >= ' ' && c <= '~')
+ if (c == '\\' || c == '\"')
{
- putc (c, stream);
+ putc ('\\', stream);
len_so_far++;
}
- else
- {
- fprintf (stream, "\\%03o", c);
- len_so_far += 4;
- }
- break;
+ putc (c, stream);
+ len_so_far++;
+ }
+ else
+ {
+ fprintf (stream, "\\%03o", c);
+ len_so_far += 4;
}
}
@@ -9632,7 +9624,7 @@ arm_output_function_epilogue (FILE *file ATTRIBUTE_UNUSED,
/* Emit any call-via-reg trampolines that are needed for v4t support
of call_reg and call_value_reg type insns. */
- for (regno = 0; regno < SP_REGNUM; regno++)
+ for (regno = 0; regno < LR_REGNUM; regno++)
{
rtx label = cfun->machine->call_via[regno];
@@ -13704,7 +13696,7 @@ thumb_call_via_reg (rtx reg)
int regno = REGNO (reg);
rtx *labelp;
- gcc_assert (regno < SP_REGNUM);
+ gcc_assert (regno < LR_REGNUM);
/* If we are in the normal text section we can use a single instance
per compilation unit. If we are doing function sections, then we need
@@ -13850,7 +13842,7 @@ arm_file_end (void)
asm_fprintf (asm_out_file, "\t.code 16\n");
ASM_OUTPUT_ALIGN (asm_out_file, 1);
- for (regno = 0; regno < SP_REGNUM; regno++)
+ for (regno = 0; regno < LR_REGNUM; regno++)
{
rtx label = thumb_call_via_label[regno];
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 5955d3ced66..f8edcccd968 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -900,7 +900,7 @@ extern const char * structure_size_string;
scratch registers. */ \
for (regno = FIRST_IWMMXT_GR_REGNUM; \
regno <= LAST_IWMMXT_GR_REGNUM; ++ regno) \
- fixed_regs[regno] = call_used_regs[regno] = 0; \
+ fixed_regs[regno] = 0; \
/* The XScale ABI has wR0 - wR9 as scratch registers, \
the rest as call-preserved registers. */ \
for (regno = FIRST_IWMMXT_REGNUM; \
@@ -1617,6 +1617,10 @@ enum reg_class
|| (TARGET_ARM && ((REGNO) == FIRST_FPA_REGNUM) \
&& TARGET_HARD_FLOAT_ABI && TARGET_FPA))
+/* Amount of memory needed for an untyped call to save all possible return
+ registers. */
+#define APPLY_RESULT_SIZE arm_apply_result_size()
+
/* How large values are returned */
/* A C expression which can inhibit the returning of certain function values
in registers, based on the type of value. */
@@ -1704,14 +1708,15 @@ typedef struct machine_function GTY(())
register is needed to preserve stack alignment. */
int sibcall_blocked;
/* Labels for per-function Thumb call-via stubs. One per potential calling
- register. We can never call via SP, LR or PC. */
- rtx call_via[13];
+ register. We can never call via LR or PC. We can call via SP if a
+ trampoline happens to be on the top of the stack. */
+ rtx call_via[14];
}
machine_function;
/* As in the machine_function, a global set of call-via labels, for code
that is in text_section(). */
-extern GTY(()) rtx thumb_call_via_label[13];
+extern GTY(()) rtx thumb_call_via_label[14];
/* 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
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 17b88a64a77..f25846675ee 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -30,12 +30,15 @@
;; Register numbers
(define_constants
- [(IP_REGNUM 12) ; Scratch register
+ [(R0_REGNUM 0) ; First CORE register
+ (IP_REGNUM 12) ; Scratch register
(SP_REGNUM 13) ; Stack pointer
(LR_REGNUM 14) ; Return address register
(PC_REGNUM 15) ; Program counter
(CC_REGNUM 24) ; Condition code pseudo register
- (LAST_ARM_REGNUM 15)
+ (LAST_ARM_REGNUM 15) ;
+ (FPA_F0_REGNUM 16) ; FIRST_FPA_REGNUM
+ (FPA_F7_REGNUM 23) ; LAST_FPA_REGNUM
]
)
;; 3rd operand to select_dominance_cc_mode
@@ -5216,6 +5219,16 @@
(set_attr "pool_range" "*,*,*,1020,*,*")]
)
+(define_expand "movxf"
+ [(set (match_operand:XF 0 "general_operand" "")
+ (match_operand:XF 1 "general_operand" ""))]
+ "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA"
+ "
+ if (GET_CODE (operands[0]) == MEM)
+ operands[1] = force_reg (XFmode, operands[1]);
+ "
+)
+
;; Vector Moves
(define_expand "movv2si"
[(set (match_operand:V2SI 0 "nonimmediate_operand" "")
@@ -5288,6 +5301,24 @@
(set_attr "predicable" "yes")]
)
+(define_insn "*ldmsi_postinc4_thumb"
+ [(match_parallel 0 "load_multiple_operation"
+ [(set (match_operand:SI 1 "s_register_operand" "=l")
+ (plus:SI (match_operand:SI 2 "s_register_operand" "1")
+ (const_int 16)))
+ (set (match_operand:SI 3 "arm_hard_register_operand" "")
+ (mem:SI (match_dup 2)))
+ (set (match_operand:SI 4 "arm_hard_register_operand" "")
+ (mem:SI (plus:SI (match_dup 2) (const_int 4))))
+ (set (match_operand:SI 5 "arm_hard_register_operand" "")
+ (mem:SI (plus:SI (match_dup 2) (const_int 8))))
+ (set (match_operand:SI 6 "arm_hard_register_operand" "")
+ (mem:SI (plus:SI (match_dup 2) (const_int 12))))])]
+ "TARGET_THUMB && XVECLEN (operands[0], 0) == 5"
+ "ldmia\\t%1!, {%3, %4, %5, %6}"
+ [(set_attr "type" "load4")]
+)
+
(define_insn "*ldmsi_postinc3"
[(match_parallel 0 "load_multiple_operation"
[(set (match_operand:SI 1 "s_register_operand" "=r")
@@ -5409,6 +5440,24 @@
(set_attr "type" "store4")]
)
+(define_insn "*stmsi_postinc4_thumb"
+ [(match_parallel 0 "store_multiple_operation"
+ [(set (match_operand:SI 1 "s_register_operand" "=l")
+ (plus:SI (match_operand:SI 2 "s_register_operand" "1")
+ (const_int 16)))
+ (set (mem:SI (match_dup 2))
+ (match_operand:SI 3 "arm_hard_register_operand" ""))
+ (set (mem:SI (plus:SI (match_dup 2) (const_int 4)))
+ (match_operand:SI 4 "arm_hard_register_operand" ""))
+ (set (mem:SI (plus:SI (match_dup 2) (const_int 8)))
+ (match_operand:SI 5 "arm_hard_register_operand" ""))
+ (set (mem:SI (plus:SI (match_dup 2) (const_int 12)))
+ (match_operand:SI 6 "arm_hard_register_operand" ""))])]
+ "TARGET_THUMB && XVECLEN (operands[0], 0) == 5"
+ "stmia\\t%1!, {%3, %4, %5, %6}"
+ [(set_attr "type" "store4")]
+)
+
(define_insn "*stmsi_postinc3"
[(match_parallel 0 "store_multiple_operation"
[(set (match_operand:SI 1 "s_register_operand" "=r")
@@ -7560,7 +7609,7 @@
)
(define_insn "*call_value_symbol"
- [(set (match_operand 0 "s_register_operand" "")
+ [(set (match_operand 0 "" "")
(call (mem:SI (match_operand:SI 1 "" ""))
(match_operand:SI 2 "" "")))
(use (match_operand 3 "" ""))
@@ -7589,7 +7638,7 @@
)
(define_insn "*call_value_insn"
- [(set (match_operand 0 "register_operand" "")
+ [(set (match_operand 0 "" "")
(call (mem:SI (match_operand 1 "" ""))
(match_operand 2 "" "")))
(use (match_operand 3 "" ""))
@@ -7617,7 +7666,7 @@
)
(define_expand "sibcall_value"
- [(parallel [(set (match_operand 0 "register_operand" "")
+ [(parallel [(set (match_operand 0 "" "")
(call (match_operand 1 "memory_operand" "")
(match_operand 2 "general_operand" "")))
(return)
@@ -7643,7 +7692,7 @@
)
(define_insn "*sibcall_value_insn"
- [(set (match_operand 0 "s_register_operand" "")
+ [(set (match_operand 0 "" "")
(call (mem:SI (match_operand:SI 1 "" "X"))
(match_operand 2 "" "")))
(return)
@@ -7749,18 +7798,59 @@
(const_int 0))
(match_operand 1 "" "")
(match_operand 2 "" "")])]
- "TARGET_ARM"
+ "TARGET_EITHER"
"
{
int i;
+ rtx par = gen_rtx_PARALLEL (VOIDmode,
+ rtvec_alloc (XVECLEN (operands[2], 0)));
+ rtx addr = gen_reg_rtx (Pmode);
+ rtx mem;
+ int size = 0;
- emit_call_insn (GEN_CALL (operands[0], const0_rtx, NULL, const0_rtx));
+ emit_move_insn (addr, XEXP (operands[1], 0));
+ mem = change_address (operands[1], BLKmode, addr);
for (i = 0; i < XVECLEN (operands[2], 0); i++)
{
- rtx set = XVECEXP (operands[2], 0, i);
+ rtx src = SET_SRC (XVECEXP (operands[2], 0, i));
- emit_move_insn (SET_DEST (set), SET_SRC (set));
+ /* Default code only uses r0 as a return value, but we could
+ be using anything up to 4 registers. */
+ if (REGNO (src) == R0_REGNUM)
+ src = gen_rtx_REG (TImode, R0_REGNUM);
+
+ XVECEXP (par, 0, i) = gen_rtx_EXPR_LIST (VOIDmode, src,
+ GEN_INT (size));
+ size += GET_MODE_SIZE (GET_MODE (src));
+ }
+
+ emit_call_insn (GEN_CALL_VALUE (par, operands[0], const0_rtx, NULL,
+ const0_rtx));
+
+ size = 0;
+
+ for (i = 0; i < XVECLEN (par, 0); i++)
+ {
+ HOST_WIDE_INT offset = 0;
+ rtx reg = XEXP (XVECEXP (par, 0, i), 0);
+
+ if (size != 0)
+ emit_move_insn (addr, plus_constant (addr, size));
+
+ mem = change_address (mem, GET_MODE (reg), NULL);
+ if (REGNO (reg) == R0_REGNUM)
+ {
+ /* On thumb we have to use a write-back instruction. */
+ emit_insn (arm_gen_store_multiple (R0_REGNUM, 4, addr, TRUE,
+ TARGET_THUMB ? TRUE : FALSE, mem, &offset));
+ size = TARGET_ARM ? 16 : 0;
+ }
+ else
+ {
+ emit_move_insn (mem, reg);
+ size = GET_MODE_SIZE (GET_MODE (reg));
+ }
}
/* The optimizer does not know that the call sets the function value
@@ -7773,6 +7863,55 @@
}"
)
+(define_expand "untyped_return"
+ [(match_operand:BLK 0 "memory_operand" "")
+ (match_operand 1 "" "")]
+ "TARGET_EITHER"
+ "
+ {
+ int i;
+ rtx addr = gen_reg_rtx (Pmode);
+ rtx mem;
+ int size = 0;
+
+ emit_move_insn (addr, XEXP (operands[0], 0));
+ mem = change_address (operands[0], BLKmode, addr);
+
+ for (i = 0; i < XVECLEN (operands[1], 0); i++)
+ {
+ HOST_WIDE_INT offset = 0;
+ rtx reg = SET_DEST (XVECEXP (operands[1], 0, i));
+
+ if (size != 0)
+ emit_move_insn (addr, plus_constant (addr, size));
+
+ mem = change_address (mem, GET_MODE (reg), NULL);
+ if (REGNO (reg) == R0_REGNUM)
+ {
+ /* On thumb we have to use a write-back instruction. */
+ emit_insn (arm_gen_load_multiple (R0_REGNUM, 4, addr, TRUE,
+ TARGET_THUMB ? TRUE : FALSE, mem, &offset));
+ size = TARGET_ARM ? 16 : 0;
+ }
+ else
+ {
+ emit_move_insn (reg, mem);
+ size = GET_MODE_SIZE (GET_MODE (reg));
+ }
+ }
+
+ /* Emit USE insns before the return. */
+ for (i = 0; i < XVECLEN (operands[1], 0); i++)
+ emit_insn (gen_rtx_USE (VOIDmode,
+ SET_DEST (XVECEXP (operands[1], 0, i))));
+
+ /* Construct the return. */
+ expand_naked_return ();
+
+ DONE;
+ }"
+)
+
;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and
;; all of memory. This blocks insns from being moved across this point.
diff --git a/gcc/config/arm/fpa.md b/gcc/config/arm/fpa.md
index 886bba151e3..02d0804b5f0 100644
--- a/gcc/config/arm/fpa.md
+++ b/gcc/config/arm/fpa.md
@@ -1,6 +1,6 @@
;;- Machine description for FPA co-processor for ARM cpus.
;; Copyright 1991, 1993, 1994, 1995, 1996, 1996, 1997, 1998, 1999, 2000,
-;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005 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).
@@ -581,33 +581,31 @@
(set_attr "neg_pool_range" "*,*,*,*,1008,*,*,1008,*,*,*")]
)
-;; Saving and restoring the floating point registers in the prologue should
-;; be done in XFmode, even though we don't support that for anything else
-;; (Well, strictly it's 'internal representation', but that's effectively
-;; XFmode).
-
+;; We treat XFmode as meaning 'internal format'. It's the right size and we
+;; don't use it for anything else. We only support moving between FPA
+;; registers and moving an FPA register to/from memory.
(define_insn "*movxf_fpa"
- [(set (match_operand:XF 0 "nonimmediate_operand" "=f,f,f,m,f,r,r")
- (match_operand:XF 1 "general_operand" "fG,H,m,f,r,f,r"))]
- "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA && reload_completed"
+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,f,m")
+ (match_operand:XF 1 "general_operand" "f,m,f"))]
+ "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_FPA
+ && (register_operand (operands[0], XFmode)
+ || register_operand (operands[1], XFmode))"
"*
switch (which_alternative)
{
default:
case 0: return \"mvf%?e\\t%0, %1\";
- case 1: return \"mnf%?e\\t%0, #%N1\";
- case 2: return \"ldf%?e\\t%0, %1\";
- case 3: return \"stf%?e\\t%1, %0\";
- case 4: return output_mov_long_double_fpa_from_arm (operands);
- case 5: return output_mov_long_double_arm_from_fpa (operands);
- case 6: return output_mov_long_double_arm_from_arm (operands);
+ case 1: if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
+ return \"ldf%?e\\t%0, %1\";
+ return \"lfm%?\\t%0, 1, %1\";
+ case 2: if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
+ return \"stf%?e\\t%1, %0\";
+ return \"sfm%?\\t%1, 1, %0\";
}
"
- [(set_attr "length" "4,4,4,4,8,8,12")
+ [(set_attr "length" "4,4,4")
(set_attr "predicable" "yes")
- (set_attr "type" "ffarith,ffarith,f_load,f_store,r_mem_f,f_mem_r,*")
- (set_attr "pool_range" "*,*,1024,*,*,*,*")
- (set_attr "neg_pool_range" "*,*,1004,*,*,*,*")]
+ (set_attr "type" "ffarith,f_load,f_store")]
)
(define_insn "*cmpsf_fpa"
@@ -749,4 +747,3 @@
(set_attr "type" "ffarith")
(set_attr "conds" "use")]
)
-
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm
index d6bf195ee2d..b8df889d600 100644
--- a/gcc/config/arm/lib1funcs.asm
+++ b/gcc/config/arm/lib1funcs.asm
@@ -1,7 +1,7 @@
@ libgcc routines for ARM cpu.
@ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk)
-/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004
+/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
@@ -223,6 +223,11 @@ SYM (__\name):
.endm
#endif
+.macro FUNC_ALIAS new old
+ .globl SYM (__\new)
+ EQUIV SYM (__\new), SYM (__\old)
+.endm
+
.macro ARM_FUNC_ALIAS new old
.globl SYM (__\new)
EQUIV SYM (__\new), SYM (__\old)
@@ -885,8 +890,8 @@ LSYM(Lover12):
#ifdef L_dvmd_tls
FUNC_START div0
- ARM_FUNC_ALIAS aeabi_idiv0 div0
- ARM_FUNC_ALIAS aeabi_ldiv0 div0
+ FUNC_ALIAS aeabi_idiv0 div0
+ FUNC_ALIAS aeabi_ldiv0 div0
RET
@@ -939,7 +944,7 @@ LSYM(Lover12):
#ifdef L_lshrdi3
FUNC_START lshrdi3
- ARM_FUNC_ALIAS aeabi_llsr lshrdi3
+ FUNC_ALIAS aeabi_llsr lshrdi3
#ifdef __thumb__
lsr al, r2
@@ -971,7 +976,7 @@ LSYM(Lover12):
#ifdef L_ashrdi3
FUNC_START ashrdi3
- ARM_FUNC_ALIAS aeabi_lasr ashrdi3
+ FUNC_ALIAS aeabi_lasr ashrdi3
#ifdef __thumb__
lsr al, r2
@@ -1008,7 +1013,7 @@ LSYM(Lover12):
#ifdef L_ashldi3
FUNC_START ashldi3
- ARM_FUNC_ALIAS aeabi_llsl ashldi3
+ FUNC_ALIAS aeabi_llsl ashldi3
#ifdef __thumb__
lsl ah, r2
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index e85b6d035c6..48b0f016401 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -1,5 +1,6 @@
/* Definitions for ARM running Linux-based GNU systems using ELF
- Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005
Free Software Foundation, Inc.
Contributed by Philip Blundell <philb@gnu.org>
@@ -123,7 +124,8 @@
#undef ARM_FUNCTION_PROFILER
#define ARM_FUNCTION_PROFILER(STREAM, LABELNO) \
{ \
- fprintf (STREAM, "\tbl\tmcount%s\n", NEED_PLT_RELOC ? "(PLT)" : ""); \
+ fprintf (STREAM, "\tbl\tmcount%s\n", \
+ (TARGET_ARM && NEED_PLT_RELOC) ? "(PLT)" : ""); \
}
/* The linux profiler clobbers the link register. Make sure the
diff --git a/gcc/config/arm/netbsd-elf.h b/gcc/config/arm/netbsd-elf.h
index cc69064c70f..9cf47c76188 100644
--- a/gcc/config/arm/netbsd-elf.h
+++ b/gcc/config/arm/netbsd-elf.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GCC.
@@ -97,7 +97,8 @@
{ \
asm_fprintf (STREAM, "\tmov\t%Rip, %Rlr\n"); \
asm_fprintf (STREAM, "\tbl\t__mcount%s\n", \
- NEED_PLT_RELOC ? "(PLT)" : ""); \
+ (TARGET_ARM && NEED_PLT_RELOC) \
+ ? "(PLT)" : ""); \
}
/* VERY BIG NOTE: Change of structure alignment for NetBSD/arm.
diff --git a/gcc/config/arm/t-netbsd b/gcc/config/arm/t-netbsd
index 533fab947a1..ef613902153 100644
--- a/gcc/config/arm/t-netbsd
+++ b/gcc/config/arm/t-netbsd
@@ -20,6 +20,8 @@ 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) $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
+SHLIB_INSTALL = \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir); \
+ $(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/avr/avr.c b/gcc/config/avr/avr.c
index 42dbf0295c7..c8627860289 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -681,14 +681,12 @@ avr_output_function_prologue (FILE *file, HOST_WIDE_INT size)
}
else if (minimize && (frame_pointer_needed || live_seq > 6))
{
- const char *cfun_name = current_function_name ();
fprintf (file, ("\t"
AS1 (ldi, r26) ",lo8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB
AS1 (ldi, r27) ",hi8(" HOST_WIDE_INT_PRINT_DEC ")" CR_TAB), size, size);
- fprintf (file, (AS2 (ldi, r30, pm_lo8(.L_%s_body)) CR_TAB
- AS2 (ldi, r31, pm_hi8(.L_%s_body)) CR_TAB),
- cfun_name, cfun_name);
+ fputs ((AS2 (ldi,r30,pm_lo8(1f)) CR_TAB
+ AS2 (ldi,r31,pm_hi8(1f)) CR_TAB), file);
prologue_size += 4;
@@ -704,7 +702,7 @@ avr_output_function_prologue (FILE *file, HOST_WIDE_INT size)
(18 - live_seq) * 2);
++prologue_size;
}
- fprintf (file, ".L_%s_body:\n", cfun_name);
+ fputs ("1:\n", file);
}
else
{
@@ -1120,6 +1118,16 @@ print_operand (FILE *file, rtx x, int code)
print_operand (file, XEXP (addr, 1), 0);
}
+ else if (code == 'p' || code == 'r')
+ {
+ if (GET_CODE (addr) != POST_INC && GET_CODE (addr) != PRE_DEC)
+ fatal_insn ("bad address, not post_inc or pre_dec:", addr);
+
+ if (code == 'p')
+ print_operand_address (file, XEXP (addr, 0)); /* X, Y, Z */
+ else
+ print_operand (file, XEXP (addr, 0), 0); /* r26, r28, r30 */
+ }
else if (GET_CODE (addr) == PLUS)
{
print_operand_address (file, XEXP (addr,0));
@@ -1835,6 +1843,9 @@ out_movhi_r_mr (rtx insn, rtx op[], int *l)
rtx base = XEXP (src, 0);
int reg_dest = true_regnum (dest);
int reg_base = true_regnum (base);
+ /* "volatile" forces reading low byte first, even if less efficient,
+ for correct operation with 16-bit I/O registers. */
+ int mem_volatile_p = MEM_VOLATILE_P (src);
int tmp;
if (!l)
@@ -1928,6 +1939,25 @@ out_movhi_r_mr (rtx insn, rtx op[], int *l)
if (reg_overlap_mentioned_p (dest, XEXP (base, 0)))
fatal_insn ("incorrect insn:", insn);
+ if (mem_volatile_p)
+ {
+ if (REGNO (XEXP (base, 0)) == REG_X)
+ {
+ *l = 4;
+ return (AS2 (sbiw,r26,2) CR_TAB
+ AS2 (ld,%A0,X+) CR_TAB
+ AS2 (ld,%B0,X) CR_TAB
+ AS2 (sbiw,r26,1));
+ }
+ else
+ {
+ *l = 3;
+ return (AS2 (sbiw,%r1,2) CR_TAB
+ AS2 (ld,%A0,%p1) CR_TAB
+ AS2 (ldd,%B0,%p1+1));
+ }
+ }
+
*l = 2;
return (AS2 (ld,%B0,%1) CR_TAB
AS2 (ld,%A0,%1));
@@ -2508,7 +2538,11 @@ out_movhi_mr_r (rtx insn, rtx op[], int *l)
rtx base = XEXP (dest, 0);
int reg_base = true_regnum (base);
int reg_src = true_regnum (src);
+ /* "volatile" forces writing high byte first, even if less efficient,
+ for correct operation with 16-bit I/O registers. */
+ int mem_volatile_p = MEM_VOLATILE_P (dest);
int tmp;
+
if (!l)
l = &tmp;
if (CONSTANT_ADDRESS_P (base))
@@ -2528,33 +2562,33 @@ out_movhi_mr_r (rtx insn, rtx op[], int *l)
{
if (reg_src == REG_X)
{
- /* "st X+,r26" is undefined */
- if (reg_unused_after (insn, src))
+ /* "st X+,r26" and "st -X,r26" are undefined. */
+ if (!mem_volatile_p && reg_unused_after (insn, src))
return *l=4, (AS2 (mov,__tmp_reg__,r27) CR_TAB
AS2 (st,X,r26) CR_TAB
AS2 (adiw,r26,1) CR_TAB
AS2 (st,X,__tmp_reg__));
else
return *l=5, (AS2 (mov,__tmp_reg__,r27) CR_TAB
- AS2 (st,X,r26) CR_TAB
AS2 (adiw,r26,1) CR_TAB
AS2 (st,X,__tmp_reg__) CR_TAB
- AS2 (sbiw,r26,1));
+ AS2 (sbiw,r26,1) CR_TAB
+ AS2 (st,X,r26));
}
else
{
- if (reg_unused_after (insn, base))
+ if (!mem_volatile_p && reg_unused_after (insn, base))
return *l=2, (AS2 (st,X+,%A1) CR_TAB
AS2 (st,X,%B1));
else
- return *l=3, (AS2 (st ,X+,%A1) CR_TAB
- AS2 (st ,X,%B1) CR_TAB
- AS2 (sbiw,r26,1));
+ return *l=3, (AS2 (adiw,r26,1) CR_TAB
+ AS2 (st,X,%B1) CR_TAB
+ AS2 (st,-X,%A1));
}
}
else
- return *l=2, (AS2 (st ,%0,%A1) CR_TAB
- AS2 (std,%0+1,%B1));
+ return *l=2, (AS2 (std,%0+1,%B1) CR_TAB
+ AS2 (st,%0,%A1));
}
else if (GET_CODE (base) == PLUS)
{
@@ -2567,14 +2601,14 @@ out_movhi_mr_r (rtx insn, rtx op[], int *l)
if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB
- AS2 (std,Y+62,%A1) CR_TAB
AS2 (std,Y+63,%B1) CR_TAB
+ AS2 (std,Y+62,%A1) CR_TAB
AS2 (sbiw,r28,%o0-62));
return *l = 6, (AS2 (subi,r28,lo8(-%o0)) CR_TAB
AS2 (sbci,r29,hi8(-%o0)) CR_TAB
- AS2 (st,Y,%A1) CR_TAB
AS2 (std,Y+1,%B1) CR_TAB
+ AS2 (st,Y,%A1) CR_TAB
AS2 (subi,r28,lo8(%o0)) CR_TAB
AS2 (sbci,r29,hi8(%o0)));
}
@@ -2582,31 +2616,53 @@ out_movhi_mr_r (rtx insn, rtx op[], int *l)
{
/* (X + d) = R */
if (reg_src == REG_X)
- {
+ {
*l = 7;
return (AS2 (mov,__tmp_reg__,r26) CR_TAB
AS2 (mov,__zero_reg__,r27) CR_TAB
- AS2 (adiw,r26,%o0) CR_TAB
- AS2 (st,X+,__tmp_reg__) CR_TAB
+ AS2 (adiw,r26,%o0+1) CR_TAB
AS2 (st,X,__zero_reg__) CR_TAB
+ AS2 (st,-X,__tmp_reg__) CR_TAB
AS1 (clr,__zero_reg__) CR_TAB
- AS2 (sbiw,r26,%o0+1));
+ AS2 (sbiw,r26,%o0));
}
*l = 4;
- return (AS2 (adiw,r26,%o0) CR_TAB
- AS2 (st,X+,%A1) CR_TAB
- AS2 (st,X,%B1) CR_TAB
- AS2 (sbiw,r26,%o0+1));
+ return (AS2 (adiw,r26,%o0+1) CR_TAB
+ AS2 (st,X,%B1) CR_TAB
+ AS2 (st,-X,%A1) CR_TAB
+ AS2 (sbiw,r26,%o0));
}
- return *l=2, (AS2 (std,%A0,%A1) CR_TAB
- AS2 (std,%B0,%B1));
+ return *l=2, (AS2 (std,%B0,%B1) CR_TAB
+ AS2 (std,%A0,%A1));
}
else if (GET_CODE (base) == PRE_DEC) /* (--R) */
return *l=2, (AS2 (st,%0,%B1) CR_TAB
AS2 (st,%0,%A1));
else if (GET_CODE (base) == POST_INC) /* (R++) */
- return *l=2, (AS2 (st,%0,%A1) CR_TAB
- AS2 (st,%0,%B1));
+ {
+ if (mem_volatile_p)
+ {
+ if (REGNO (XEXP (base, 0)) == REG_X)
+ {
+ *l = 4;
+ return (AS2 (adiw,r26,1) CR_TAB
+ AS2 (st,X,%B1) CR_TAB
+ AS2 (st,-X,%A1) CR_TAB
+ AS2 (adiw,r26,2));
+ }
+ else
+ {
+ *l = 3;
+ return (AS2 (std,%p0+1,%B1) CR_TAB
+ AS2 (st,%p0,%A1) CR_TAB
+ AS2 (adiw,%r0,2));
+ }
+ }
+
+ *l = 2;
+ return (AS2 (st,%0,%A1) CR_TAB
+ AS2 (st,%0,%B1));
+ }
fatal_insn ("unknown move insn:",insn);
return "";
}
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index e87ce43d5ea..6b54c37626b 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Contributed by Denis Chertykov (denisc@overta.ru)
@@ -216,7 +216,7 @@ extern int avr_asm_only_p;
#define HARD_REGNO_MODE_OK(REGNO, MODE) avr_hard_regno_mode_ok(REGNO, MODE)
-#define MODES_TIEABLE_P(MODE1, MODE2) 0
+#define MODES_TIEABLE_P(MODE1, MODE2) 1
enum reg_class {
NO_REGS,
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index c6da08aef4a..b6fb1796f0e 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -30,6 +30,8 @@
;; j Branch condition.
;; k Reverse branch condition.
;; o Displacement for (mem (plus (reg) (const_int))) operands.
+;; p POST_INC or PRE_DEC address as a pointer (X, Y, Z)
+;; r POST_INC or PRE_DEC address as a register (r26, r28, r30)
;; ~ Output 'r' if not AVR_MEGA.
;; UNSPEC usage:
@@ -344,75 +346,69 @@
;;=========================================================================
;; move string (like memcpy)
+;; implement as RTL loop
(define_expand "movmemhi"
[(parallel [(set (match_operand:BLK 0 "memory_operand" "")
- (match_operand:BLK 1 "memory_operand" ""))
- (use (match_operand:HI 2 "const_int_operand" ""))
- (use (match_operand:HI 3 "const_int_operand" ""))
- (clobber (match_scratch:HI 4 ""))
- (clobber (match_scratch:HI 5 ""))
- (clobber (match_dup 6))])]
+ (match_operand:BLK 1 "memory_operand" ""))
+ (use (match_operand:HI 2 "const_int_operand" ""))
+ (use (match_operand:HI 3 "const_int_operand" ""))])]
""
"{
- rtx addr0, addr1;
- int cnt8;
+ int prob;
+ HOST_WIDE_INT count;
enum machine_mode mode;
+ rtx label = gen_label_rtx ();
+ rtx loop_reg;
+ rtx jump;
+
+ /* Copy pointers into new psuedos - they will be changed. */
+ rtx addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
+ rtx addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
+
+ /* Create rtx for tmp register - we use this as scratch. */
+ rtx tmp_reg_rtx = gen_rtx_REG (QImode, TMP_REGNO);
if (GET_CODE (operands[2]) != CONST_INT)
FAIL;
- cnt8 = byte_immediate_operand (operands[2], GET_MODE (operands[2]));
- mode = cnt8 ? QImode : HImode;
- operands[6] = gen_rtx_SCRATCH (mode);
- operands[2] = copy_to_mode_reg (mode,
- gen_int_mode (INTVAL (operands[2]), mode));
- addr0 = copy_to_mode_reg (Pmode, XEXP (operands[0], 0));
- addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
- operands[0] = gen_rtx_MEM (BLKmode, addr0);
- operands[1] = gen_rtx_MEM (BLKmode, addr1);
-}")
-
-(define_insn "*movmemqi_insn"
- [(set (mem:BLK (match_operand:HI 0 "register_operand" "e"))
- (mem:BLK (match_operand:HI 1 "register_operand" "e")))
- (use (match_operand:QI 2 "register_operand" "r"))
- (use (match_operand:QI 3 "const_int_operand" "i"))
- (clobber (match_scratch:HI 4 "=0"))
- (clobber (match_scratch:HI 5 "=1"))
- (clobber (match_scratch:QI 6 "=2"))]
- ""
- "ld __tmp_reg__,%a1+
- st %a0+,__tmp_reg__
- dec %2
- brne .-8"
- [(set_attr "length" "4")
- (set_attr "cc" "clobber")])
+ count = INTVAL (operands[2]);
+ if (count <= 0)
+ FAIL;
-(define_insn "*movmemhi"
- [(set (mem:BLK (match_operand:HI 0 "register_operand" "e,e"))
- (mem:BLK (match_operand:HI 1 "register_operand" "e,e")))
- (use (match_operand:HI 2 "register_operand" "!w,d"))
- (use (match_operand:HI 3 "const_int_operand" ""))
- (clobber (match_scratch:HI 4 "=0,0"))
- (clobber (match_scratch:HI 5 "=1,1"))
- (clobber (match_scratch:HI 6 "=2,2"))]
- ""
- "*{
- if (which_alternative==0)
- return (AS2 (ld,__tmp_reg__,%a1+) CR_TAB
- AS2 (st,%a0+,__tmp_reg__) CR_TAB
- AS2 (sbiw,%A2,1) CR_TAB
- AS1 (brne,.-8));
- else
- return (AS2 (ld,__tmp_reg__,%a1+) CR_TAB
- AS2 (st,%a0+,__tmp_reg__) CR_TAB
- AS2 (subi,%A2,1) CR_TAB
- AS2 (sbci,%B2,0) CR_TAB
- AS1 (brne,.-10));
-}"
- [(set_attr "length" "4,5")
- (set_attr "cc" "clobber,clobber")])
+ /* Work out branch probability for latter use. */
+ prob = REG_BR_PROB_BASE - REG_BR_PROB_BASE / count;
+
+ /* See if constant fit 8 bits. */
+ mode = (count < 0x100) ? QImode : HImode;
+ /* Create loop counter register. */
+ loop_reg = copy_to_mode_reg (mode, gen_int_mode (count, mode));
+
+ /* Now create RTL code for move loop. */
+ /* Label at top of loop. */
+ emit_label (label);
+
+ /* Move one byte into scratch and inc pointer. */
+ emit_move_insn (tmp_reg_rtx, gen_rtx_MEM (QImode, addr1));
+ emit_move_insn (addr1, gen_rtx_PLUS (Pmode, addr1, const1_rtx));
+
+ /* Move to mem and inc pointer. */
+ emit_move_insn (gen_rtx_MEM (QImode, addr0), tmp_reg_rtx);
+ emit_move_insn (addr0, gen_rtx_PLUS (Pmode, addr0, const1_rtx));
+
+ /* Decrement count. */
+ emit_move_insn (loop_reg, gen_rtx_PLUS (mode, loop_reg, constm1_rtx));
+
+ /* Compare with zero and jump if not equal. */
+ emit_cmp_and_jump_insns (loop_reg, const0_rtx, NE, NULL_RTX, mode, 1,
+ label);
+ /* Set jump probability based on loop count. */
+ jump = get_last_insn ();
+ REG_NOTES (jump) = gen_rtx_EXPR_LIST (REG_BR_PROB,
+ GEN_INT (prob),
+ REG_NOTES (jump));
+ DONE;
+}")
;; =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0
;; memset (%0, 0, %1)
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index a01fe1ec4d2..3599e2dae05 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -656,6 +656,10 @@ cris_fatal (char *arg)
return 0;
}
+/* This variable belongs to cris_target_asm_function_prologue but must
+ be located outside it for GTY reasons. */
+static GTY(()) unsigned long cfa_label_num = 0;
+
/* Textual function prologue. */
static void
@@ -670,7 +674,7 @@ cris_target_asm_function_prologue (FILE *file, HOST_WIDE_INT size)
int framesize;
int faked_args_size = 0;
int cfa_write_offset = 0;
- char *cfa_label = NULL;
+ static char cfa_label[30];
int return_address_on_stack
= regs_ever_live[CRIS_SRP_REGNUM]
|| cfun->machine->needs_return_address_on_stack != 0;
@@ -723,7 +727,8 @@ cris_target_asm_function_prologue (FILE *file, HOST_WIDE_INT size)
cfa_offset += cris_initial_frame_pointer_offset ();
}
- cfa_label = dwarf2out_cfi_label ();
+ ASM_GENERATE_INTERNAL_LABEL (cfa_label, "LCFIT",
+ cfa_label_num++);
dwarf2out_def_cfa (cfa_label, cfa_reg, cfa_offset);
cfa_write_offset = - faked_args_size - 4;
@@ -921,6 +926,9 @@ cris_target_asm_function_prologue (FILE *file, HOST_WIDE_INT size)
reg_names[PIC_OFFSET_TABLE_REGNUM],
reg_names[PIC_OFFSET_TABLE_REGNUM]);
+ if (doing_dwarf)
+ ASM_OUTPUT_LABEL (file, cfa_label);
+
if (TARGET_PDEBUG)
fprintf (file,
"; parm #%d @ %d; frame " HOST_WIDE_INT_PRINT_DEC
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index c0435f7e65c..faad7364a34 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -772,14 +772,14 @@ enum reg_class {NO_REGS, ALL_REGS, LIM_REG_CLASSES};
(C) == 'U' ? EXTRA_CONSTRAINT_U (X) : \
0)
+#define EXTRA_MEMORY_CONSTRAINT(X, STR) ((X) == 'Q')
+
#define EXTRA_CONSTRAINT_Q(X) \
( \
- /* Slottable addressing modes: \
- A register? FIXME: Unnecessary. */ \
- (BASE_P (X) && REGNO (X) != CRIS_PC_REGNUM) \
- /* Indirect register: [reg]? */ \
- || (GET_CODE (X) == MEM && BASE_P (XEXP (X, 0)) \
- && REGNO (XEXP (X, 0)) != CRIS_PC_REGNUM) \
+ /* Just an indirect register (happens to also be \
+ "all" slottable memory addressing modes not \
+ covered by other constraints, i.e. '>'). */ \
+ GET_CODE (X) == MEM && BASE_P (XEXP (X, 0)) \
)
#define EXTRA_CONSTRAINT_R(X) \
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md
index d4e4a5a5eed..69f31ea1627 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, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Contributed by Axis Communications.
@@ -91,9 +91,9 @@
;; mode, but that would need more attributes and hairier, more error
;; prone code.
;;
-;; There is an extra constraint, 'Q', which recognizes indirect reg,
-;; except when the reg is pc. The constraints 'Q' and '>' together match
-;; all possible memory operands that are slottable.
+;; There is an extra memory constraint, 'Q', which recognizes an indirect
+;; register. The constraints 'Q' and '>' together match all possible
+;; memory operands that are slottable.
;; For other operands, you need to check if it has a valid "slottable"
;; quick-immediate operand, where the particular signedness-variation
;; may match the constraints 'I' or 'J'.), and include it in the
@@ -268,8 +268,8 @@
(define_insn "cmpsi"
[(set (cc0)
(compare
- (match_operand:SI 0 "nonimmediate_operand" "r,r,r,r,Q>,Q>,r,r,m,m")
- (match_operand:SI 1 "general_operand" "I,r,Q>,M,M,r,P,g,M,r")))]
+ (match_operand:SI 0 "nonimmediate_operand" "r,r,r, r,Q>,Q>,r,r,m,m")
+ (match_operand:SI 1 "general_operand" "I,r,Q>,M,M, r, P,g,M,r")))]
""
"@
cmpq %1,%0
@@ -286,24 +286,25 @@
(define_insn "cmphi"
[(set (cc0)
- (compare (match_operand:HI 0 "nonimmediate_operand" "r,r,Q>,Q>,r,m,m")
- (match_operand:HI 1 "general_operand" "r,Q>,M,r,g,M,r")))]
+ (compare (match_operand:HI 0 "nonimmediate_operand" "r,r, r,Q>,Q>,r,m,m")
+ (match_operand:HI 1 "general_operand" "r,Q>,M,M, r, g,M,r")))]
""
"@
cmp.w %1,%0
cmp.w %1,%0
test.w %0
+ test.w %0
cmp.w %0,%1
cmp.w %1,%0
test.w %0
cmp.w %0,%1"
- [(set_attr "slottable" "yes,yes,yes,yes,no,no,no")])
+ [(set_attr "slottable" "yes,yes,yes,yes,yes,no,no,no")])
(define_insn "cmpqi"
[(set (cc0)
(compare
- (match_operand:QI 0 "nonimmediate_operand" "r,r,r,Q>,Q>,r,m,m")
- (match_operand:QI 1 "general_operand" "r,Q>,M,M,r,g,M,r")))]
+ (match_operand:QI 0 "nonimmediate_operand" "r,r, r,Q>,Q>,r,m,m")
+ (match_operand:QI 1 "general_operand" "r,Q>,M,M, r, g,M,r")))]
""
"@
cmp.b %1,%0
@@ -993,11 +994,11 @@
(define_insn "*movsi_internal"
[(set
- (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,Q>,r,Q>,g,r,r,r,g")
+ (match_operand:SI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,g,r,r,r,g")
(match_operand:SI 1
;; FIXME: We want to put S last, but apparently g matches S.
;; It's a bug: an S is not a general_operand and shouldn't match g.
- "cris_general_operand_or_gotless_symbol" "r,Q>,M,M,I,r,M,n,!S,g,r"))]
+ "cris_general_operand_or_gotless_symbol" "r,Q>,M,M, I,r, M,n,!S,g,r"))]
""
"*
{
@@ -1206,8 +1207,8 @@
(define_insn "movhi"
[(set
- (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,Q>,r,Q>,r,r,r,g,g,r")
- (match_operand:HI 1 "general_operand" "r,Q>,M,M,I,r,L,O,n,M,r,g"))]
+ (match_operand:HI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,r,r,r,g,g,r")
+ (match_operand:HI 1 "general_operand" "r,Q>,M,M, I,r, L,O,n,M,r,g"))]
""
"*
{
@@ -1249,8 +1250,8 @@
(define_insn "movstricthi"
[(set
(strict_low_part
- (match_operand:HI 0 "nonimmediate_operand" "+r,r,r,Q>,Q>,g,r,g"))
- (match_operand:HI 1 "general_operand" "r,Q>,M,M,r,M,g,r"))]
+ (match_operand:HI 0 "nonimmediate_operand" "+r,r, r,Q>,Q>,g,r,g"))
+ (match_operand:HI 1 "general_operand" "r,Q>,M,M, r, M,g,r"))]
""
"@
move.w %1,%0
@@ -1264,8 +1265,8 @@
[(set_attr "slottable" "yes,yes,yes,yes,yes,no,no,no")])
(define_insn "movqi"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r,r,Q>,r,g,g,r,r")
- (match_operand:QI 1 "general_operand" "r,r,Q>,M,M,I,M,r,O,g"))]
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,r,g,g,r,r")
+ (match_operand:QI 1 "general_operand" "r,r, Q>,M,M, I,M,r,O,g"))]
""
"@
move.b %1,%0
@@ -1286,8 +1287,8 @@
(define_insn "movstrictqi"
[(set (strict_low_part
- (match_operand:QI 0 "nonimmediate_operand" "+r,Q>,r,r,Q>,g,g,r"))
- (match_operand:QI 1 "general_operand" "r,r,Q>,M,M,M,r,g"))]
+ (match_operand:QI 0 "nonimmediate_operand" "+r,Q>,r, r,Q>,g,g,r"))
+ (match_operand:QI 1 "general_operand" "r,r, Q>,M,M, M,r,g"))]
""
"@
move.b %1,%0
@@ -1306,8 +1307,8 @@
;; It will use clear, so we know ALL types of immediate 0 never change cc.
(define_insn "movsf"
- [(set (match_operand:SF 0 "nonimmediate_operand" "=r,Q>,r,r,Q>,g,g,r")
- (match_operand:SF 1 "general_operand" "r,r,Q>,G,G,G,r,g"))]
+ [(set (match_operand:SF 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,g,g,r")
+ (match_operand:SF 1 "general_operand" "r,r, Q>,G,G, G,r,g"))]
""
"@
move.d %1,%0
@@ -1720,10 +1721,10 @@
add.d %M2,%M1,%M0\;ax\;add.d %H2,%H1,%H0")
(define_insn "addsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r,r")
+ [(set (match_operand:SI 0 "register_operand" "=r,r, r,r,r,r,r, r")
(plus:SI
- (match_operand:SI 1 "register_operand" "%0,0,0,0,0,0,r,r")
- (match_operand:SI 2 "general_operand" "r,Q>,J,N,n,g,!To,0")))]
+ (match_operand:SI 1 "register_operand" "%0,0, 0,0,0,0,r, r")
+ (match_operand:SI 2 "general_operand" "r,Q>,J,N,n,g,!To,0")))]
;; The last constraint is due to that after reload, the '%' is not
;; honored, and canonicalization doesn't care about keeping the same
@@ -1773,9 +1774,9 @@
[(set_attr "slottable" "yes,yes,yes,yes,no,no,no,yes")])
(define_insn "addhi3"
- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r")
- (plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,r")
- (match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))]
+ [(set (match_operand:HI 0 "register_operand" "=r,r, r,r,r,r")
+ (plus:HI (match_operand:HI 1 "register_operand" "%0,0, 0,0,0,r")
+ (match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))]
""
"@
add.w %2,%0
@@ -1788,9 +1789,9 @@
(set_attr "cc" "normal,normal,clobber,clobber,normal,normal")])
(define_insn "addqi3"
- [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r,r")
- (plus:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,0,r")
- (match_operand:QI 2 "general_operand" "r,Q>,J,N,O,g,!To")))]
+ [(set (match_operand:QI 0 "register_operand" "=r,r, r,r,r,r,r")
+ (plus:QI (match_operand:QI 1 "register_operand" "%0,0, 0,0,0,0,r")
+ (match_operand:QI 2 "general_operand" "r,Q>,J,N,O,g,!To")))]
""
"@
add.b %2,%0
@@ -1824,10 +1825,10 @@
sub.d %M2,%M1,%M0\;ax\;sub.d %H2,%H1,%H0")
(define_insn "subsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r,r")
+ [(set (match_operand:SI 0 "register_operand" "=r,r, r,r,r,r,r,r")
(minus:SI
- (match_operand:SI 1 "register_operand" "0,0,0,0,0,0,0,r")
- (match_operand:SI 2 "general_operand" "r,Q>,J,N,P,n,g,!To")))]
+ (match_operand:SI 1 "register_operand" "0,0, 0,0,0,0,0,r")
+ (match_operand:SI 2 "general_operand" "r,Q>,J,N,P,n,g,!To")))]
""
;; This does not do the optimal: "addu.w 65535,r0" when %2 is negative.
@@ -1845,9 +1846,9 @@
[(set_attr "slottable" "yes,yes,yes,yes,no,no,no,no")])
(define_insn "subhi3"
- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r")
- (minus:HI (match_operand:HI 1 "register_operand" "0,0,0,0,0,r")
- (match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))]
+ [(set (match_operand:HI 0 "register_operand" "=r,r, r,r,r,r")
+ (minus:HI (match_operand:HI 1 "register_operand" "0,0, 0,0,0,r")
+ (match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))]
""
"@
sub.w %2,%0
@@ -1860,9 +1861,9 @@
(set_attr "cc" "normal,normal,clobber,clobber,normal,normal")])
(define_insn "subqi3"
- [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r")
- (minus:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,r")
- (match_operand:QI 2 "general_operand" "r,Q>,J,N,g,!To")))]
+ [(set (match_operand:QI 0 "register_operand" "=r,r, r,r,r,r")
+ (minus:QI (match_operand:QI 1 "register_operand" "0,0, 0,0,0,r")
+ (match_operand:QI 2 "general_operand" "r,Q>,J,N,g,!To")))]
""
"@
sub.b %2,%0
@@ -2470,7 +2471,7 @@
(define_insn "umulhisi3"
[(set (match_operand:SI 0 "register_operand" "=r")
(mult:SI
- (zero_extend:SI (match_operand:HI 1 "register_operand" "0"))
+ (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"
@@ -2484,7 +2485,7 @@
(define_insn "umulqihi3"
[(set (match_operand:HI 0 "register_operand" "=r")
(mult:HI
- (zero_extend:HI (match_operand:QI 1 "register_operand" "0"))
+ (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"
@@ -2503,7 +2504,7 @@
(define_insn "mulsi3"
[(set (match_operand:SI 0 "register_operand" "=r")
- (mult:SI (match_operand:SI 1 "register_operand" "0")
+ (mult:SI (match_operand:SI 1 "register_operand" "%0")
(match_operand:SI 2 "register_operand" "r")))]
"TARGET_HAS_MUL_INSNS"
"%!muls.d %2,%0"
@@ -2521,7 +2522,7 @@
(define_insn "mulqihi3"
[(set (match_operand:HI 0 "register_operand" "=r")
(mult:HI
- (sign_extend:HI (match_operand:QI 1 "register_operand" "0"))
+ (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"
@@ -2534,7 +2535,7 @@
(define_insn "mulhisi3"
[(set (match_operand:SI 0 "register_operand" "=r")
(mult:SI
- (sign_extend:SI (match_operand:HI 1 "register_operand" "0"))
+ (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"
@@ -2554,7 +2555,7 @@
(define_insn "mulsidi3"
[(set (match_operand:DI 0 "register_operand" "=r")
(mult:DI
- (sign_extend:DI (match_operand:SI 1 "register_operand" "0"))
+ (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")
@@ -2562,7 +2563,7 @@
(define_insn "umulsidi3"
[(set (match_operand:DI 0 "register_operand" "=r")
(mult:DI
- (zero_extend:DI (match_operand:SI 1 "register_operand" "0"))
+ (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")
@@ -2734,9 +2735,9 @@
;; improved reload pass.
(define_insn "*expanded_andsi"
- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r")
- (and:SI (match_operand:SI 1 "register_operand" "%0,0,0,0,r")
- (match_operand:SI 2 "general_operand" "I,r,Q>,g,!To")))]
+ [(set (match_operand:SI 0 "register_operand" "=r,r,r, r,r")
+ (and:SI (match_operand:SI 1 "register_operand" "%0,0,0, 0,r")
+ (match_operand:SI 2 "general_operand" "I,r,Q>,g,!To")))]
""
"@
andq %2,%0
@@ -2810,9 +2811,9 @@
;; Catch-all andhi3 pattern.
(define_insn "*expanded_andhi"
- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r")
- (and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,0,r")
- (match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))]
+ [(set (match_operand:HI 0 "register_operand" "=r,r,r, r,r,r,r")
+ (and:HI (match_operand:HI 1 "register_operand" "%0,0,0, 0,0,0,r")
+ (match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))]
;; Sidenote: the tightening from "general_operand" to
;; "register_operand" for operand 1 actually increased the register
@@ -2835,9 +2836,9 @@
(define_insn "*andhi_lowpart"
[(set (strict_low_part
- (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r"))
- (and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,r")
- (match_operand:HI 2 "general_operand" "r,Q>,L,O,g,!To")))]
+ (match_operand:HI 0 "register_operand" "=r,r, r,r,r,r"))
+ (and:HI (match_operand:HI 1 "register_operand" "%0,0, 0,0,0,r")
+ (match_operand:HI 2 "general_operand" "r,Q>,L,O,g,!To")))]
""
"@
and.w %2,%0
@@ -2850,9 +2851,9 @@
(set_attr "cc" "normal,normal,normal,clobber,normal,normal")])
(define_insn "andqi3"
- [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r")
- (and:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,r")
- (match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))]
+ [(set (match_operand:QI 0 "register_operand" "=r,r,r, r,r,r")
+ (and:QI (match_operand:QI 1 "register_operand" "%0,0,0, 0,0,r")
+ (match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))]
""
"@
andq %2,%0
@@ -2866,9 +2867,9 @@
(define_insn "*andqi_lowpart"
[(set (strict_low_part
- (match_operand:QI 0 "register_operand" "=r,r,r,r,r"))
- (and:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,r")
- (match_operand:QI 2 "general_operand" "r,Q>,O,g,!To")))]
+ (match_operand:QI 0 "register_operand" "=r,r, r,r,r"))
+ (and:QI (match_operand:QI 1 "register_operand" "%0,0, 0,0,r")
+ (match_operand:QI 2 "general_operand" "r,Q>,O,g,!To")))]
""
"@
and.b %2,%0
@@ -2887,9 +2888,9 @@
;; with andsi3.
(define_insn "iorsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r")
- (ior:SI (match_operand:SI 1 "register_operand" "%0,0,0,0,0,r")
- (match_operand:SI 2 "general_operand" "I,r,Q>,n,g,!To")))]
+ [(set (match_operand:SI 0 "register_operand" "=r,r,r, r,r,r")
+ (ior:SI (match_operand:SI 1 "register_operand" "%0,0,0, 0,0,r")
+ (match_operand:SI 2 "general_operand" "I, r,Q>,n,g,!To")))]
""
"@
orq %2,%0
@@ -2902,9 +2903,9 @@
(set_attr "cc" "normal,normal,normal,clobber,normal,normal")])
(define_insn "iorhi3"
- [(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r")
- (ior:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,0,r")
- (match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))]
+ [(set (match_operand:HI 0 "register_operand" "=r,r,r, r,r,r,r")
+ (ior:HI (match_operand:HI 1 "register_operand" "%0,0,0, 0,0,0,r")
+ (match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))]
""
"@
orq %2,%0
@@ -2918,9 +2919,9 @@
(set_attr "cc" "clobber,normal,normal,normal,clobber,normal,normal")])
(define_insn "iorqi3"
- [(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r")
- (ior:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,r")
- (match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))]
+ [(set (match_operand:QI 0 "register_operand" "=r,r,r, r,r,r")
+ (ior:QI (match_operand:QI 1 "register_operand" "%0,0,0, 0,0,r")
+ (match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))]
""
"@
orq %2,%0
@@ -3340,9 +3341,9 @@
;; normal code too.
(define_insn "uminsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
- (umin:SI (match_operand:SI 1 "register_operand" "%0,0,0,r")
- (match_operand:SI 2 "general_operand" "r,Q>,g,!STo")))]
+ [(set (match_operand:SI 0 "register_operand" "=r,r, r,r")
+ (umin:SI (match_operand:SI 1 "register_operand" "%0,0, 0,r")
+ (match_operand:SI 2 "general_operand" "r,Q>,g,!STo")))]
""
"*
{
@@ -3858,7 +3859,7 @@
}")
;; Accept *anything* as operand 1. Accept operands for operand 0 in
-;; order of preference (Q includes r, but r is shorter, faster)
+;; order of preference.
(define_insn "*expanded_call"
[(call (mem:QI (match_operand:SI
diff --git a/gcc/config/darwin-c.c b/gcc/config/darwin-c.c
index feb26f185d2..487022bde97 100644
--- a/gcc/config/darwin-c.c
+++ b/gcc/config/darwin-c.c
@@ -32,42 +32,88 @@ Boston, MA 02111-1307, USA. */
#include "tm_p.h"
#include "cppdefault.h"
#include "prefix.h"
+/* APPLE LOCAL include options.h */
+#include "options.h"
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+#include "flags.h"
+#include "opts.h"
+#include "varray.h"
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
/* Pragmas. */
#define BAD(msgid) do { warning (msgid); return; } while (0)
+/* APPLE LOCAL Macintosh alignment 2002-1-22 --ff */
+#define BAD2(msgid, arg) do { warning (msgid, arg); return; } while (0)
static bool using_frameworks = false;
+/* APPLE LOCAL begin CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */
+static void directive_with_named_function (const char *, void (*sec_f)(void));
+/* APPLE LOCAL end CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */
+
/* Maintain a small stack of alignments. This is similar to pragma
pack's stack, but simpler. */
-static void push_field_alignment (int);
+/* APPLE LOCAL begin Macintosh alignment 2001-12-17 --ff */
+static void push_field_alignment (int, int, int);
+/* APPLE LOCAL end Macintosh alignment 2001-12-17 --ff */
static void pop_field_alignment (void);
static const char *find_subframework_file (const char *, const char *);
static void add_system_framework_path (char *);
static const char *find_subframework_header (cpp_reader *pfile, const char *header,
cpp_dir **dirp);
+/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */
+/* There are four alignment modes supported on the Apple Macintosh
+ platform: power, mac68k, natural, and packed. These modes are
+ identified as follows:
+ if maximum_field_alignment != 0
+ mode = packed
+ else if TARGET_ALIGN_NATURAL
+ mode = natural
+ else if TARGET_ALIGN_MAC68K
+ mode
+ else
+ mode = power
+ These modes are saved on the alignment stack by saving the values
+ of maximum_field_alignment, TARGET_ALIGN_MAC68K, and
+ TARGET_ALIGN_NATURAL. */
typedef struct align_stack
{
int alignment;
+ unsigned long mac68k;
+ unsigned long natural;
struct align_stack * prev;
} align_stack;
+/* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
static struct align_stack * field_align_stack = NULL;
+/* APPLE LOCAL begin Macintosh alignment 2001-12-17 --ff */
static void
-push_field_alignment (int bit_alignment)
+push_field_alignment (int bit_alignment,
+ int mac68k_alignment, int natural_alignment)
{
align_stack *entry = (align_stack *) xmalloc (sizeof (align_stack));
entry->alignment = maximum_field_alignment;
+ entry->mac68k = TARGET_ALIGN_MAC68K;
+ entry->natural = TARGET_ALIGN_NATURAL;
entry->prev = field_align_stack;
field_align_stack = entry;
maximum_field_alignment = bit_alignment;
+ if (mac68k_alignment)
+ rs6000_alignment_flags |= MASK_ALIGN_MAC68K;
+ else
+ rs6000_alignment_flags &= ~MASK_ALIGN_MAC68K;
+ if (natural_alignment)
+ rs6000_alignment_flags |= MASK_ALIGN_NATURAL;
+ else
+ rs6000_alignment_flags &= ~MASK_ALIGN_NATURAL;
}
+/* APPLE LOCAL end Macintosh alignment 2001-12-17 --ff */
static void
pop_field_alignment (void)
@@ -77,6 +123,16 @@ pop_field_alignment (void)
align_stack *entry = field_align_stack;
maximum_field_alignment = entry->alignment;
+/* APPLE LOCAL begin Macintosh alignment 2001-12-17 --ff */
+ if (entry->mac68k)
+ rs6000_alignment_flags |= MASK_ALIGN_MAC68K;
+ else
+ rs6000_alignment_flags &= ~MASK_ALIGN_MAC68K;
+ if (entry->natural)
+ rs6000_alignment_flags |= MASK_ALIGN_NATURAL;
+ else
+ rs6000_alignment_flags &= ~MASK_ALIGN_NATURAL;
+/* APPLE LOCAL end Macintosh alignment 2001-12-17 --ff */
field_align_stack = entry->prev;
free (entry);
}
@@ -92,6 +148,20 @@ darwin_pragma_ignore (cpp_reader *pfile ATTRIBUTE_UNUSED)
/* Do nothing. */
}
+/* APPLE LOCAL begin pragma fenv */
+/* #pragma GCC fenv
+ This is kept in <fenv.h>. The point is to allow trapping
+ math to default to off. According to C99, any program
+ that requires trapping math must include <fenv.h>, so
+ we enable trapping math when that gets included. */
+
+void
+darwin_pragma_fenv (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ flag_trapping_math = 1;
+}
+/* APPLE LOCAL end pragma fenv */
+
/* #pragma options align={mac68k|power|reset} */
void
@@ -114,15 +184,141 @@ darwin_pragma_options (cpp_reader *pfile ATTRIBUTE_UNUSED)
warning ("junk at end of '#pragma options'");
arg = IDENTIFIER_POINTER (t);
+/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */
if (!strcmp (arg, "mac68k"))
- push_field_alignment (16);
+ {
+ if (POINTER_SIZE == 64)
+ warning ("mac68k alignment pragma is deprecated for 64-bit Darwin");
+ push_field_alignment (0, 1, 0);
+ }
+ else if (!strcmp (arg, "native")) /* equivalent to power on PowerPC */
+ push_field_alignment (0, 0, 0);
+ else if (!strcmp (arg, "natural"))
+ push_field_alignment (0, 0, 1);
+ else if (!strcmp (arg, "packed"))
+ push_field_alignment (8, 0, 0);
else if (!strcmp (arg, "power"))
- push_field_alignment (0);
+ push_field_alignment (0, 0, 0);
else if (!strcmp (arg, "reset"))
pop_field_alignment ();
else
- warning ("malformed '#pragma options align={mac68k|power|reset}', ignoring");
+ warning ("malformed '#pragma options align={mac68k|power|natural|reset}', ignoring");
+/* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
+}
+
+/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */
+/* #pragma pack ()
+ #pragma pack (N)
+ #pragma pack (pop[,id])
+ #pragma pack (push[,id],N)
+
+ We have a problem handling the semantics of these directives since,
+ to play well with the Macintosh alignment directives, we want the
+ usual pack(N) form to do a push of the previous alignment state.
+ Do we want pack() to do another push or a pop? */
+
+void
+darwin_pragma_pack (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ tree x, id = 0;
+ int align = -1;
+ enum cpp_ttype token;
+ enum { set, push, pop } action;
+
+ if (c_lex (&x) != CPP_OPEN_PAREN)
+ BAD ("missing '(' after '#pragma pack' - ignored");
+
+ token = c_lex (&x);
+ if (token == CPP_CLOSE_PAREN)
+ {
+ action = pop;
+ align = 0;
+ }
+ else if (token == CPP_NUMBER)
+ {
+ align = TREE_INT_CST_LOW (x);
+ action = push;
+ if (c_lex (&x) != CPP_CLOSE_PAREN)
+ BAD ("malformed '#pragma pack' - ignored");
+ }
+ else if (token == CPP_NAME)
+ {
+#define GCC_BAD_ACTION do { if (action == push) \
+ BAD ("malformed '#pragma pack(push[, id], <n>)' - ignored"); \
+ else \
+ BAD ("malformed '#pragma pack(pop[, id])' - ignored"); \
+ } while (0)
+
+ const char *op = IDENTIFIER_POINTER (x);
+ if (!strcmp (op, "push"))
+ action = push;
+ else if (!strcmp (op, "pop"))
+ action = pop;
+ else
+ BAD2 ("unknown action '%s' for '#pragma pack' - ignored", op);
+
+ token = c_lex (&x);
+ if (token != CPP_COMMA && action == push)
+ GCC_BAD_ACTION;
+
+ if (token == CPP_COMMA)
+ {
+ token = c_lex (&x);
+ if (token == CPP_NAME)
+ {
+ id = x;
+ if (action == push && c_lex (&x) != CPP_COMMA)
+ GCC_BAD_ACTION;
+ token = c_lex (&x);
+ }
+
+ if (action == push)
+ {
+ if (token == CPP_NUMBER)
+ {
+ align = TREE_INT_CST_LOW (x);
+ token = c_lex (&x);
+ }
+ else
+ GCC_BAD_ACTION;
+ }
+ }
+
+ if (token != CPP_CLOSE_PAREN)
+ GCC_BAD_ACTION;
+#undef GCC_BAD_ACTION
+ }
+else
+ BAD ("malformed '#pragma pack' - ignored");
+
+ if (c_lex (&x) != CPP_EOF)
+ warning ("junk at end of '#pragma pack'");
+
+ if (action != pop)
+ {
+ switch (align)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 4:
+ case 8:
+ case 16:
+ align *= BITS_PER_UNIT;
+ break;
+ default:
+ BAD2 ("alignment must be a small power of two, not %d", align);
+ }
+ }
+
+ switch (action)
+ {
+ case pop: pop_field_alignment (); break;
+ case push: push_field_alignment (align, 0, 0); break;
+ case set: break;
+ }
}
+/* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
/* #pragma unused ([var {, var}*]) */
@@ -157,6 +353,132 @@ darwin_pragma_unused (cpp_reader *pfile ATTRIBUTE_UNUSED)
warning ("junk at end of '#pragma unused'");
}
+/* APPLE LOCAL begin pragma reverse_bitfields */
+/* Handle the reverse_bitfields pragma. */
+
+void
+darwin_pragma_reverse_bitfields (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ const char* arg;
+ tree t;
+
+ if (c_lex (&t) != CPP_NAME)
+ BAD ("malformed '#pragma reverse_bitfields', ignoring");
+ arg = IDENTIFIER_POINTER (t);
+
+ if (!strcmp (arg, "on"))
+ darwin_reverse_bitfields = true;
+ else if (!strcmp (arg, "off") || !strcmp (arg, "reset"))
+ darwin_reverse_bitfields = false;
+ else
+ warning ("malformed '#pragma reverse_bitfields {on|off|reset}', ignoring");
+ if (c_lex (&t) != CPP_EOF)
+ warning ("junk at end of '#pragma reverse_bitfields'");
+}
+/* APPLE LOCAL end pragma reverse_bitfields */
+
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+varray_type va_opt;
+
+static void
+push_opt_level (int level, int size)
+{
+ if (!va_opt)
+ VARRAY_INT_INIT (va_opt, 5, "va_opt");
+ VARRAY_PUSH_INT (va_opt, size << 16 | level);
+}
+
+static void
+pop_opt_level (void)
+{
+ int level;
+ if (!va_opt)
+ VARRAY_INT_INIT (va_opt, 5, "va_opt");
+ if (!VARRAY_ACTIVE_SIZE (va_opt))
+ {
+ warning ("optimization pragma stack underflow");
+ return;
+ }
+ level = VARRAY_TOP_INT (va_opt);
+ VARRAY_POP (va_opt);
+
+ optimize_size = level >> 16;
+ optimize = level & 0xffff;
+}
+
+void
+darwin_pragma_opt_level (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ tree t;
+ enum cpp_ttype argtype = c_lex (&t);
+
+ if (argtype == CPP_NAME)
+ {
+ const char* arg = IDENTIFIER_POINTER (t);
+ if (strcmp (arg, "reset") != 0)
+ BAD ("malformed '#pragma optimization_level [GCC] {0|1|2|3|reset}', ignoring");
+ pop_opt_level ();
+ }
+ else if (argtype == CPP_NUMBER)
+ {
+ if (TREE_CODE (t) != INTEGER_CST
+ || INT_CST_LT (t, integer_zero_node)
+ || TREE_INT_CST_HIGH (t) != 0)
+ BAD ("malformed '#pragma optimization_level [GCC] {0|1|2|3|reset}', ignoring");
+
+ push_opt_level (optimize, optimize_size);
+ optimize = TREE_INT_CST_LOW (t);
+ if (optimize > 3)
+ optimize = 3;
+ optimize_size = 0;
+ }
+ else
+ BAD ("malformed '#pragma optimization_level [GCC] {0|1|2|3|reset}', ignoring");
+
+ set_flags_from_O (false);
+
+ /* This is expected to be defined in each target. */
+ reset_optimization_options (optimize, optimize_size);
+
+ if (c_lex (&t) != CPP_EOF)
+ warning ("junk at end of '#pragma optimization_level'");
+}
+
+void
+darwin_pragma_opt_size (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ const char* arg;
+ tree t;
+
+ if (c_lex (&t) != CPP_NAME)
+ BAD ("malformed '#pragma optimize_for_size { on | off | reset}', ignoring");
+ arg = IDENTIFIER_POINTER (t);
+
+ if (!strcmp (arg, "on"))
+ {
+ push_opt_level (optimize, optimize_size);
+ optimize_size = 1;
+ optimize = 2;
+ }
+ else if (!strcmp (arg, "off"))
+ /* Not clear what this should do exactly. CW does not do a pop so
+ we don't either. */
+ optimize_size = 0;
+ else if (!strcmp (arg, "reset"))
+ pop_opt_level ();
+ else
+ BAD ("malformed '#pragma optimize_for_size { on | off | reset }', ignoring");
+
+ set_flags_from_O (false);
+
+ /* This is expected to be defined in each target. */
+ reset_optimization_options (optimize, optimize_size);
+
+ if (c_lex (&t) != CPP_EOF)
+ warning ("junk at end of '#pragma optimize_for_size'");
+}
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
static struct {
size_t len;
const char *name;
@@ -270,6 +592,28 @@ framework_construct_pathname (const char *fname, cpp_dir *dir)
strncpy (&frname[frname_len], ".framework/", strlen (".framework/"));
frname_len += strlen (".framework/");
+ /* APPLE LOCAL begin mainline */
+ if (fast_dir == 0)
+ {
+ frname[frname_len-1] = 0;
+ if (stat (frname, &st) == 0)
+ {
+ /* As soon as we find the first instance of the framework,
+ we stop and never use any later instance of that
+ framework. */
+ add_framework (fname, fname_len, dir);
+ }
+ else
+ {
+ /* If we can't find the parent directory, no point looking
+ further. */
+ free (frname);
+ return 0;
+ }
+ frname[frname_len-1] = '/';
+ }
+ /* APPLE LOCAL end mainline */
+
/* Append framework_header_dirs and header file name */
for (i = 0; framework_header_dirs[i].dirName; i++)
{
@@ -280,11 +624,8 @@ framework_construct_pathname (const char *fname, cpp_dir *dir)
&fname[fname_len]);
if (stat (frname, &st) == 0)
- {
- if (fast_dir == 0)
- add_framework (fname, fname_len, dir);
- return frname;
- }
+ /* APPLE LOCAL mainline */
+ return frname;
}
free (frname);
@@ -525,3 +866,44 @@ find_subframework_header (cpp_reader *pfile, const char *header, cpp_dir **dirp)
return 0;
}
+
+/* APPLE LOCAL begin CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */
+extern void mod_init_section (void), mod_term_section (void);
+/* Grab the function name from the pragma line and output it to the
+ assembly output file with the parameter DIRECTIVE. Called by the
+ pragma CALL_ON_LOAD and CALL_ON_UNLOAD handlers below.
+ So: "#pragma CALL_ON_LOAD foo" will output ".mod_init_func _foo". */
+
+static void directive_with_named_function (const char *pragma_name,
+ void (*section_function) (void))
+{
+ tree decl;
+ int tok;
+
+ tok = c_lex (&decl);
+ if (tok == CPP_NAME && decl)
+ {
+ extern FILE *asm_out_file;
+
+ section_function ();
+ fprintf (asm_out_file, "\t.long _%s\n", IDENTIFIER_POINTER (decl));
+
+ if (c_lex (&decl) != CPP_EOF)
+ warning ("junk at end of #pragma %s <function_name>\n", pragma_name);
+ }
+ else
+ warning ("function name expected after #pragma %s\n", pragma_name);
+}
+void
+darwin_pragma_call_on_load (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ warning("Pragma CALL_ON_LOAD is deprecated; use constructor attribute instead");
+ directive_with_named_function ("CALL_ON_LOAD", mod_init_section);
+}
+void
+darwin_pragma_call_on_unload (cpp_reader *pfile ATTRIBUTE_UNUSED)
+{
+ warning("Pragma CALL_ON_UNLOAD is deprecated; use destructor attribute instead");
+ directive_with_named_function ("CALL_ON_UNLOAD", mod_term_section);
+}
+/* APPLE LOCAL end CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */
diff --git a/gcc/config/darwin-driver.c b/gcc/config/darwin-driver.c
new file mode 100644
index 00000000000..ba8dd769d36
--- /dev/null
+++ b/gcc/config/darwin-driver.c
@@ -0,0 +1,1405 @@
+/* APPLE LOCAL file driver driver */
+/* Darwin driver program that handles -arch commands and invokes
+ appropriate compiler driver.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <mach-o/arch.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <regex.h>
+#include "libiberty.h"
+#include "filenames.h"
+#include "stdbool.h"
+/* Hack!.
+ Pay the price for including darwin.h. */
+typedef int tree;
+
+/* Include darwin.h for SWITCH_TAKES_ARG and
+ WORD_SWIATCH_TAKES_ARG. */
+
+#include "darwin.h"
+
+/* Include gcc.h for DEFAULT_SWITCH_TAKES_ARG and
+ DEFAULT_WORD_SWIATCH_TAKES_ARG. */
+
+#include "gcc.h"
+
+/* This program name. */
+const char *progname;
+
+/* driver prefix. */
+const char *driver_exec_prefix;
+
+/* driver prefix length. */
+int prefix_len;
+
+/* current working directory. */
+char *curr_dir;
+
+/* Use if -o flag is absent. */
+const char *final_output = "a.out";
+
+/* Variabless to track presence and/or absence of important command
+ line options. */
+int compile_only_request = 0;
+int asm_output_request = 0;
+int dash_capital_m_seen = 0;
+int preprocessed_output_request = 0;
+int ima_is_used = 0;
+int dash_dynamiclib_seen = 0;
+int verbose_flag = 0;
+int save_temps_seen = 0;
+
+/* Support at the max 10 arch. at a time. This is historical limit. */
+#define MAX_ARCHES 10
+
+/* Name of user supplied architectures. */
+const char *arches[MAX_ARCHES];
+
+/* -arch counter. */
+static int num_arches;
+
+/* Input filenames. */
+struct input_filename
+{
+ const char *name;
+ int index;
+ struct input_filename *next;
+};
+struct input_filename *in_files;
+struct input_filename *last_infile;
+
+static int num_infiles;
+
+/* User specified output file name. */
+const char *output_filename = NULL;
+
+/* Output file names used for arch specific driver invocation. These
+ are input file names for 'lipo'. */
+const char **out_files;
+static int num_outfiles;
+
+/* Architecture names used by config.guess does not match the names
+ used by NXGet... Use this hand coded mapping to connect them. */
+struct arch_config_guess_map
+{
+ const char *arch_name;
+ const char *config_string;
+};
+
+struct arch_config_guess_map arch_config_map [] =
+{
+ {"i386", "i686"},
+ {"ppc", "powerpc"},
+ {"ppc64", "powerpc"},
+ {NULL, NULL}
+};
+
+/* List of interpreted command line flags. Supply this to gcc driver. */
+const char **new_argv;
+int new_argc;
+
+/* Argument list for 'lipo'. */
+const char **lipo_argv;
+
+/* Info about the sub process. Need one subprocess for each arch plus
+ additional one for 'lipo'. */
+struct command
+{
+ const char *prog;
+ const char **argv;
+ int pid;
+} commands[MAX_ARCHES+1];
+
+/* total number of argc. */
+static int total_argc;
+
+static int greatest_status = 0;
+static int signal_count = 0;
+
+#ifndef SWITCH_TAKES_ARG
+#define SWITCH_TAKES_ARG(CHAR) DEFAULT_SWITCH_TAKES_ARG(CHAR)
+#endif
+
+#ifndef WORD_SWITCH_TAKES_ARG
+#define WORD_SWITCH_TAKES_ARG(STR) DEFAULT_WORD_SWITCH_TAKES_ARG (STR)
+#endif
+
+
+/* Local function prototypes. */
+static const char * get_arch_name (const char *);
+static char * get_driver_name (const char *);
+static void delete_out_files (void);
+static char * strip_path_and_suffix (const char *, const char *);
+static void initialize (void);
+static void final_cleanup (void);
+static int do_wait (int, const char *);
+static int do_lipo (int, const char *);
+static int do_compile (const char **, int);
+static int do_compile_separately (void);
+static int do_lipo_separately (void);
+static int add_arch_options (int, const char **, int);
+static int remove_arch_options (const char**, int);
+static void add_arch (const char *);
+
+/* Find arch name for the given input string. If input name is NULL then local
+ arch name is used. */
+
+static const char *
+get_arch_name (const char *name)
+{
+ const NXArchInfo * a_info;
+ const NXArchInfo * all_info;
+ cpu_type_t cputype;
+
+ /* Find cputype associated with the given name. */
+ if (!name)
+ a_info = NXGetLocalArchInfo ();
+ else
+ a_info = NXGetArchInfoFromName (name);
+
+ if (!a_info)
+ fatal ("Invalid arch name : %s", name);
+
+ cputype = a_info->cputype;
+
+ /* Now collect ALL supported arch info. */
+ all_info = NXGetAllArchInfos ();
+
+ if (!all_info)
+ fatal ("Unable to collect arch info for %s", name);
+
+ /* Find first arch. that matches cputype. */
+ while (all_info->name)
+ {
+ if (all_info->cputype == cputype)
+ break;
+ else
+ all_info++;
+ }
+
+ return all_info->name;
+}
+
+/* Find driver name based on input arch name. */
+
+static char *
+get_driver_name (const char *arch_name)
+{
+ char *driver_name;
+ const char *config_name;
+ int len;
+ int index;
+ struct arch_config_guess_map *map;
+
+ /* find config name based on arch name. */
+ config_name = NULL;
+ map = arch_config_map;
+ while (map->arch_name)
+ {
+ if (!strcmp (map->arch_name, arch_name))
+ {
+ config_name = map->config_string;
+ break;
+ }
+ else map++;
+ }
+
+ if (!config_name)
+ fatal ("Unable to guess config name for arch %s", arch_name);
+
+ len = strlen (config_name) + strlen (PDN) + prefix_len + 1;
+ driver_name = (char *) malloc (sizeof (char) * len);
+
+ if (driver_exec_prefix)
+ strcpy (driver_name, driver_exec_prefix);
+ strcat (driver_name, config_name);
+ strcat (driver_name, PDN);
+
+ return driver_name;
+}
+
+/* Delete out_files. */
+
+static void
+delete_out_files (void)
+{
+ const char *temp;
+ struct stat st;
+ int i = 0;
+
+ for (i = 0, temp = out_files[i];
+ temp && i < total_argc * MAX_ARCHES;
+ temp = out_files[++i])
+ if (stat (temp, &st) >= 0 && S_ISREG (st.st_mode))
+ unlink (temp);
+
+}
+
+/* Put fatal error message on stderr and exit. */
+
+void
+fatal (const char *msgid, ...)
+{
+ va_list ap;
+
+ va_start (ap, msgid);
+
+ fprintf (stderr, "%s: ", progname);
+ vfprintf (stderr, msgid, ap);
+ va_end (ap);
+ fprintf (stderr, "\n");
+ delete_out_files ();
+ exit (1);
+}
+
+/* Print error message and exit. */
+
+static void
+pfatal_pexecute (const char *errmsg_fmt, const char *errmsg_arg)
+{
+ if (errmsg_arg)
+ {
+ int save_errno = errno;
+
+ /* Space for trailing '\0' is in %s. */
+ char *msg = (char *) malloc (strlen (errmsg_fmt) + strlen (errmsg_arg));
+ sprintf (msg, errmsg_fmt, errmsg_arg);
+ errmsg_fmt = msg;
+
+ errno = save_errno;
+ }
+
+ fprintf (stderr,"%s: %s: %s", progname, errmsg_fmt, xstrerror (errno));
+ delete_out_files ();
+ exit (1);
+}
+
+#ifdef DEBUG
+static void
+debug_command_line (const char **debug_argv, int debug_argc)
+{
+ int i;
+
+ fprintf (stderr,"%s: debug_command_line\n", progname);
+ fprintf (stderr,"%s: arg count = %d\n", progname, debug_argc);
+
+ for (i = 0; debug_argv[i]; i++)
+ fprintf (stderr,"%s: arg [%d] %s\n", progname, i, debug_argv[i]);
+}
+#endif
+
+/* Strip directory name from the input file name and replace file name
+ suffix with new. */
+
+static char *
+strip_path_and_suffix (const char *full_name, const char *new_suffix)
+{
+ char *name;
+ char *p;
+
+ if (!full_name || !new_suffix)
+ return NULL;
+
+ /* Strip path name. */
+ p = (char *)full_name + strlen (full_name);
+ while (p != full_name && !IS_DIR_SEPARATOR (p[-1]))
+ --p;
+
+ /* Now 'p' is a file name with suffix. */
+ name = (char *) malloc (strlen (p) + 1 + strlen (new_suffix));
+
+ strcpy (name, p);
+
+ p = name + strlen (name);
+ while (p != name && *p != '.')
+ --p;
+
+ /* If did not reach at the beginning of name then '.' is found.
+ Replace '.' with NULL. */
+ if (p != name)
+ *p = '\0';
+
+ strcat (name, new_suffix);
+ return name;
+}
+
+/* Initialization */
+
+static void
+initialize (void)
+{
+
+ int i;
+
+ /* Let's count, how many additional arguments driver driver will supply
+ to compiler driver:
+
+ Each "-arch" "<blah>" is replaced by approriate "-mcpu=<blah>".
+ That leaves one additional arg space available.
+
+ Note that only one -m* is supplied to each compiler driver. Which
+ means, extra "-arch" "<blah>" are removed from the original command
+ line. But lets not count how many additional slots are available.
+
+ Driver driver may need to specify temp. output file name, say
+ "-o" "foobar". That needs two extra argments.
+
+ Sometimes linker wants one additional "-Wl,-arch_multiple".
+
+ Sometimes linker wants to see "-final_output" "outputname".
+
+ In the end, we may need five extra arguments, plus one extra
+ space for the NULL terminator. */
+
+ new_argv = (const char **) malloc ((total_argc + 6) * sizeof (const char *));
+ if (!new_argv)
+ abort ();
+
+ /* First slot, new_argv[0] is reserved for the driver name. */
+ new_argc = 1;
+
+ /* For each -arch, three arguments are needed.
+ For example, "-arch" "ppc" "file". Additional slots are for
+ "lipo" "-create" "-o" "outputfilename" and the NULL. */
+ lipo_argv = (const char **) malloc ((total_argc * 3 + 5) * sizeof (const char *));
+ if (!lipo_argv)
+ abort ();
+
+ /* Need separate out_files for each arch, max is MAX_ARCHES.
+ Need separate out_files for each input file. */
+
+ out_files = (const char **) malloc ((total_argc * MAX_ARCHES) * sizeof (const char *));
+ if (!out_files)
+ abort ();
+
+ num_arches = 0;
+ num_infiles = 0;
+
+ in_files = NULL;
+ last_infile = NULL;
+
+ for (i = 0; i < (MAX_ARCHES + 1); i++)
+ {
+ commands[i].prog = NULL;
+ commands[i].argv = NULL;
+ commands[i].pid = 0;
+ }
+}
+
+/* Cleanup. */
+
+static void
+final_cleanup (void)
+{
+ int i;
+ struct input_filename *next;
+ delete_out_files ();
+ free (new_argv);
+ free (lipo_argv);
+ free (out_files);
+
+ for (i = 0, next = in_files;
+ i < num_infiles && next;
+ i++)
+ {
+ next = in_files->next;
+ free (in_files);
+ in_files = next;
+ }
+}
+
+/* Wait for the process pid and return appropriate code. */
+
+static int
+do_wait (int pid, const char *prog)
+{
+ int status = 0;
+ int ret = 0;
+
+ pid = pwait (pid, &status, 0);
+
+ if (WIFSIGNALED (status))
+ {
+ if (!signal_count &&
+ WEXITSTATUS (status) > greatest_status)
+ greatest_status = WEXITSTATUS (status);
+ ret = -1;
+ }
+ else if (WIFEXITED (status)
+ && WEXITSTATUS (status) >= 1)
+ {
+ if (WEXITSTATUS (status) > greatest_status)
+ greatest_status = WEXITSTATUS (status);
+ signal_count++;
+ ret = -1;
+ }
+ return ret;
+}
+
+/* Invoke 'lipo' and combine and all output files. */
+
+static int
+do_lipo (int start_outfile_index, const char *out_file)
+{
+ int i, j, pid;
+ char *errmsg_fmt, *errmsg_arg;
+
+ /* Populate lipo arguments. */
+ lipo_argv[0] = "lipo";
+ lipo_argv[1] = "-create";
+ lipo_argv[2] = "-o";
+ lipo_argv[3] = out_file;
+
+ /* Already 4 lipo arguments are set. Now add all lipo inputs. */
+ j = 4;
+ for (i = 0; i < num_arches; i++)
+ lipo_argv[j++] = out_files[start_outfile_index + i];
+
+ /* Add the NULL at the end. */
+ lipo_argv[j++] = NULL;
+
+#ifdef DEBUG
+ debug_command_line (lipo_argv, j);
+#endif
+
+ if (verbose_flag)
+ {
+ for (i = 0; lipo_argv[i]; i++)
+ fprintf (stderr, "%s ", lipo_argv[i]);
+ fprintf (stderr, "\n");
+ }
+ pid = pexecute (lipo_argv[0], (char *const *)lipo_argv, progname, NULL, &errmsg_fmt,
+ &errmsg_arg, PEXECUTE_SEARCH | PEXECUTE_LAST);
+
+ if (pid == -1)
+ pfatal_pexecute (errmsg_fmt, errmsg_arg);
+
+ return do_wait (pid, lipo_argv[0]);
+}
+
+/* Invoke compiler for all architectures. */
+
+static int
+do_compile (const char **current_argv, int current_argc)
+{
+ char *errmsg_fmt, *errmsg_arg;
+ int index = 0;
+ int ret = 0;
+
+ int dash_o_index = current_argc;
+ int of_index = current_argc + 1;
+ int argc_count = current_argc + 2;
+
+ while (index < num_arches)
+ {
+ int additional_arch_options = 0;
+
+ current_argv[0] = get_driver_name (get_arch_name (arches[index]));
+
+ /* setup output file. */
+ out_files[num_outfiles] = make_temp_file (".out");
+ current_argv[dash_o_index] = "-o";
+ current_argv[of_index] = out_files [num_outfiles];
+ num_outfiles++;
+
+ /* Add arch option as the last option. Do not add any other option
+ before removing this option. */
+ additional_arch_options = add_arch_options (index, current_argv, argc_count);
+ argc_count += additional_arch_options;
+
+ commands[index].prog = current_argv[0];
+ commands[index].argv = current_argv;
+
+ current_argv[argc_count] = NULL;
+
+#ifdef DEBUG
+ debug_command_line (current_argv, argc_count);
+#endif
+ commands[index].pid = pexecute (current_argv[0],
+ (char *const *)current_argv,
+ progname, NULL,
+ &errmsg_fmt,
+ &errmsg_arg,
+ PEXECUTE_SEARCH | PEXECUTE_LAST);
+
+ if (commands[index].pid == -1)
+ pfatal_pexecute (errmsg_fmt, errmsg_arg);
+
+ /* Remove the last arch option added in the current_argv list. */
+ if (additional_arch_options)
+ argc_count -= remove_arch_options (current_argv, argc_count);
+ index++;
+ }
+
+ index = 0;
+ while (index < num_arches)
+ {
+ ret = do_wait (commands[index].pid, commands[index].prog);
+ fflush (stdout);
+ index++;
+ }
+ return ret;
+}
+
+/* Invoke compiler for each input file separately.
+ Construct command line for each invocation with one input file. */
+
+static int
+do_compile_separately (void)
+{
+ const char **new_new_argv;
+ int i, new_new_argc;
+ struct input_filename *current_ifn;
+
+ if (num_infiles == 1 || ima_is_used)
+ abort ();
+
+ /* Total number of arguments in separate compiler invocation is :
+ total number of original arguments - total no input files + one input
+ file + "-o" + output file . */
+ new_new_argv = (const char **) malloc ((new_argc - num_infiles + 4) * sizeof (const char *));
+ if (!new_new_argv)
+ abort ();
+
+ for (current_ifn = in_files; current_ifn && current_ifn->name;
+ current_ifn = current_ifn->next)
+ {
+ struct input_filename *ifn = in_files;
+ int go_back = 0;
+ new_new_argc = 1;
+
+ for (i = 1; i < new_argc; i++)
+ {
+
+ if (ifn && ifn->name && !strcmp (new_argv[i], ifn->name))
+ {
+ /* This argument is one of the input file. */
+
+ if (!strcmp (new_argv[i], current_ifn->name))
+ {
+ /* If it is current input file name then add it in the new
+ list. */
+ new_new_argv[new_new_argc++] = new_argv[i];
+ }
+ /* This input file can not appear in
+ again on the command line so next time look for next input
+ file. */
+ ifn = ifn->next;
+ }
+ else
+ {
+ /* This argument is not a input file name. Add it into new
+ list. */
+ new_new_argv[new_new_argc++] = new_argv[i];
+ }
+ }
+
+ /* OK now we have only one input file and all other arguments. */
+ do_compile (new_new_argv, new_new_argc);
+ }
+}
+
+/* Invoke 'lipo' on set of output files and create multile FAT binaries. */
+
+static int
+do_lipo_separately (void)
+{
+ int ifn_index;
+ struct input_filename *ifn;
+ for (ifn_index = 0, ifn = in_files;
+ ifn_index < num_infiles && ifn && ifn->name;
+ ifn_index++, ifn = ifn->next)
+ do_lipo (ifn_index * num_arches,
+ strip_path_and_suffix (ifn->name, ".o"));
+}
+
+/* Replace -arch <blah> options with appropriate "-mcpu=<blah>" OR
+ "-march=<blah>". INDEX is the index in arches[] table. */
+
+static int
+add_arch_options (int index, const char **current_argv, int arch_index)
+{
+
+ int count;
+
+ /* We are adding 1 argument for selected arches. */
+ count = 1;
+
+#ifdef DEBUG
+ fprintf (stderr, "%s: add_arch_options: %s\n", progname, arches[index]);
+#endif
+
+ if (!strcmp (arches[index], "ppc601"))
+ current_argv[arch_index] = "-mcpu=601";
+ else if (!strcmp (arches[index], "ppc603"))
+ current_argv[arch_index] = "-mcpu=603";
+ else if (!strcmp (arches[index], "ppc604"))
+ current_argv[arch_index] = "-mcpu=604";
+ else if (!strcmp (arches[index], "ppc604e"))
+ current_argv[arch_index] = "-mcpu=604e";
+ else if (!strcmp (arches[index], "ppc750"))
+ current_argv[arch_index] = "-mcpu=750";
+ else if (!strcmp (arches[index], "ppc7400"))
+ current_argv[arch_index] = "-mcpu=7400";
+ else if (!strcmp (arches[index], "ppc7450"))
+ current_argv[arch_index] = "-mcpu=7450";
+ else if (!strcmp (arches[index], "ppc970"))
+ current_argv[arch_index] = "-mcpu=970";
+ else if (!strcmp (arches[index], "ppc64"))
+ current_argv[arch_index] = "-m64";
+ else if (!strcmp (arches[index], "i486"))
+ current_argv[arch_index] = "-march=i486";
+ else if (!strcmp (arches[index], "i586"))
+ current_argv[arch_index] = "-march=i586";
+ else if (!strcmp (arches[index], "i686"))
+ current_argv[arch_index] = "-march=i686";
+ else if (!strcmp (arches[index], "pentium"))
+ current_argv[arch_index] = "-march=pentium";
+ else if (!strcmp (arches[index], "pentium2"))
+ current_argv[arch_index] = "-march=pentium2";
+ else if (!strcmp (arches[index], "pentpro"))
+ current_argv[arch_index] = "-march=pentiumpro";
+ else if (!strcmp (arches[index], "pentIIm3"))
+ current_argv[arch_index] = "-march=pentium2";
+ else
+ count = 0;
+
+ return count;
+}
+
+/* Remove the last option, which is arch option, added by
+ add_arch_options. Return how count of arguments removed. */
+static int
+remove_arch_options (const char **current_argv, int arch_index)
+{
+#ifdef DEBUG
+ fprintf (stderr, "%s: Removing argument no %d\n", progname, arch_index);
+#endif
+
+ current_argv[arch_index] = '\0';
+
+#ifdef DEBUG
+ debug_command_line (current_argv, arch_index);
+#endif
+
+ return 1;
+}
+
+/* Add new arch request. */
+void
+add_arch (const char *new_arch)
+{
+ int i;
+
+ /* User can say cc -arch ppc -arch ppc foo.c
+ Do not invoke ppc compiler twice in this case. */
+ for (i = 0; i < num_arches; i++)
+ {
+ if (!strcmp (arches[i], new_arch))
+ return;
+ }
+
+ arches[num_arches] = new_arch;
+ num_arches++;
+}
+
+/* Rewrite the command line as requested in the QA_OVERRIDE_GCC3_OPTIONS
+ environment variable -- used for testing the compiler, working around bugs
+ in the Apple build environment, etc.
+
+ The override string is made up of a set of space-separated clauses. The
+ first letter of each clause describes what's to be done:
+ +string Add string as a new argument (at the end of the command line).
+ Multi-word command lines can be added with +x +y
+ s/x/y/ substitute x for y in the command line. X must be an entire
+ argument, and can be a regular expression as accepted by the
+ POSIX regexp code. Y will be substituted as a single argument,
+ and will not have regexp replacements added in.
+ xoption Removes argument matching option
+ Xoption Removes argument matching option and following word
+ Ox Removes any optimization flags in command line and replaces
+ with -Ox.
+
+
+ Here's some examples:
+ O2
+ s/precomp-trustfile=foo//
+ +-fexplore-antartica
+ +-fast
+ s/-fsetvalue=* //
+ x-fwritable-strings
+ s/-O[0-2]/-Osize/
+ x-v
+ X-o +-o +foo.o
+
+ Option substitutions are processed from left to right; matches and changes
+ are cumulative. An error in processing one element (such as trying to
+ remove an element and successor when the match is at the end) cause the
+ particular change to stop, but additional changes in the environment
+ variable to be applied.
+
+ Key details:
+ * we always want to be able to adjust optimization levels for testing
+ * adding options is a common task
+ * substitution and deletion are less common.
+
+ If the first character of the environment variable is #, changes are
+ silent. If not, diagnostics are written to stderr explaining what
+ changes are being performed.
+
+*/
+
+char **arg_array;
+int arg_array_size=0;
+int arg_count = 0;
+int confirm_changes = 1;
+const int ARG_ARRAY_INCREMENT_SIZE = 8;
+#define FALSE 0
+
+/* Routines for the argument array. The argument array routines are
+ responsible for allocation and deallocation of all objects in the
+ array */
+
+void read_args (int argc, char **argv)
+{
+ int i;
+
+ arg_array_size = argc+10;
+ arg_count = argc;
+ arg_array = (char**) malloc(sizeof(char*)*arg_array_size);
+
+ for (i=0;i<argc;i++) {
+ arg_array[i] = malloc (strlen (argv[i])+1);
+ strcpy (arg_array[i], argv[i]);
+ }
+}
+
+/* Insert the argument before pos. */
+void insert_arg(int pos, char *arg_to_insert)
+{
+ int i;
+ char *newArg = malloc (strlen (arg_to_insert)+1);
+ strcpy(newArg, arg_to_insert);
+
+ if (arg_count == arg_array_size) {
+ /* expand array */
+ arg_array_size = arg_count + ARG_ARRAY_INCREMENT_SIZE;
+ arg_array = (char**) realloc (arg_array, arg_array_size);
+ }
+
+ for (i = arg_count; i > pos; i--) {
+ arg_array[i+1] = arg_array[i];
+ }
+
+ arg_array[pos] = newArg;
+ arg_count++;
+
+ if (confirm_changes)
+ fprintf(stderr,"### Adding argument %s at position %d\n",arg_to_insert, pos);
+}
+
+
+void replace_arg (char *str, int pos) {
+ char *newArg = malloc(strlen(str)+1);
+ strcpy(newArg,str);
+
+ if (confirm_changes)
+ fprintf (stderr,"### Replacing %s with %s\n",arg_array[pos], str);
+
+ free (arg_array[pos]);
+ arg_array[pos] = newArg;
+}
+
+void append_arg (char *str)
+{
+ char *new_arg = malloc (strlen (str)+1);
+ strcpy (new_arg, str);
+ if (confirm_changes)
+ fprintf(stderr,"### Adding argument %s at end\n", str);
+
+ if (arg_count == arg_array_size) {
+ /* expand array */
+ arg_array_size = arg_count + ARG_ARRAY_INCREMENT_SIZE;
+ arg_array = (char**) realloc (arg_array, arg_array_size);
+ }
+
+ arg_array[arg_count++] = new_arg;
+}
+
+void delete_arg(int pos) {
+ int i;
+
+ if (confirm_changes)
+ fprintf(stderr,"### Deleting argument %s\n",arg_array[pos]);
+
+ free (arg_array[pos]);
+
+ for (i=pos; i < arg_count; i++)
+ arg_array[i] = arg_array[i+1];
+
+ arg_count--;
+}
+
+/* Changing optimization levels is a common testing pattern --
+ we've got a special option that searches for and replaces anything
+ beginning with -O */
+void replace_optimization_level (char *new_level) {
+ int i;
+ int optionFound = 0;
+ char *new_opt = malloc(strlen(new_opt)+3);
+ sprintf(new_opt, "-O%s",new_level);
+
+
+ for (i=0;i<arg_count;i++) {
+ if (strncmp(arg_array[i],"-O",2) == 0) {
+ replace_arg (new_opt, i);
+ optionFound = 1;
+ break;
+ }
+ }
+
+ if (optionFound == 0)
+ /* No optimization level? Add it! */
+ append_arg (new_opt);
+
+ free (new_opt);
+}
+
+/* Returns a NULL terminated string holding whatever was in the original
+ string at that point. This must be freed by the caller. */
+
+char *arg_string(char *str, int begin, int len) {
+ char *new_str = malloc(len+1);
+ strncpy(new_str,&str[begin],len);
+ new_str[len] = '\0';
+ return new_str;
+}
+
+/* Given a search-and-replace string of the form
+ s/x/y/
+
+ do search and replace on the arg list. Make sure to check that the
+ string is sane -- that it has all the proper slashes that are necessary.
+ The search string can be a regular expression, but the replace string
+ must be a literal; the search must also be for a full argument, not for
+ a chain of arguments. The result will be treated as a single argument.
+
+ Return true if success, false if bad failure.
+*/
+
+bool search_and_replace (char *str) {
+ regex_t regexp_search_struct;
+ int searchLen;
+ int replaceLen;
+ int i;
+ int err;
+
+ char *searchStr;
+ char *replaceStr;
+ char *replacedStr;
+ const int ERRSIZ = 512;
+ char errbuf[ERRSIZ];
+
+
+ if (str[0] != '/') {
+ return false;
+ }
+
+ searchLen = strcspn (str + 1, "/\0");
+
+ if (str[1 + searchLen] != '/')
+ return false;
+
+ replaceLen = strcspn(str+1+searchLen+1, "/\0");
+
+ if (str[1 + searchLen + 1 +replaceLen] != '/')
+ return false;
+
+ searchStr = arg_string(str, 1, searchLen);
+ replaceStr = arg_string (str, 1 + searchLen + 1, replaceLen);
+
+ if ((err = regcomp(&regexp_search_struct, searchStr, REG_EXTENDED)) != 0) {
+ regerror(err, &regexp_search_struct, errbuf, ERRSIZ);
+ fprintf(stderr,"%s",errbuf);
+ return false;
+ }
+
+ for (i=0;i<arg_count;i++) {
+ regmatch_t matches[5];
+ if (regexec (&regexp_search_struct, arg_array[i],
+ 5, matches, 0) == 0) {
+ if ((matches[0].rm_eo - matches[0].rm_so) == strlen (arg_array[i])) {
+ /* Success! Change the string. */
+ replace_arg(replaceStr,i);
+ break;
+ }
+ }
+ }
+
+ regfree (&regexp_search_struct);
+ free (searchStr);
+ free (replaceStr);
+
+ return true;
+}
+
+
+/* Given a string, return the argument number where the first match occurs. */
+int find_arg (char *str) {
+ int i;
+ int matchIndex = -1;
+
+ for (i=0;i<arg_count;i++) {
+ if (strcmp(arg_array[i],str) == 0) {
+ matchIndex = i;
+ break;
+ }
+ }
+
+ return matchIndex;
+}
+
+void rewrite_command_line (char *override_options_line, int *argc, char ***argv){
+ int line_pos = 0;
+
+ read_args (*argc, *argv);
+
+ if (override_options_line[0] == '#')
+ {
+ confirm_changes = 0;
+ line_pos++;
+ }
+
+
+ if (confirm_changes)
+ fprintf (stderr, "### QA_OVERRIDE_GCC3_OPTIONS: %s\n",
+ override_options_line);
+
+ /* Loop through all commands in the file */
+
+ while (override_options_line[line_pos] != '\0')
+ {
+ char first_char;
+ char *searchStr;
+ char *arg;
+ int search_index;
+ int arg_len;
+
+ /* Any spaces in between options don't count. */
+ if (override_options_line[line_pos] == ' ')
+ {
+ line_pos++;
+ continue;
+ }
+
+ /* The first non-space character is the command. */
+ first_char = override_options_line[line_pos];
+ line_pos++;
+ arg_len = strcspn(override_options_line+line_pos, " ");
+
+ switch (first_char) {
+ case '+':
+ /* Add an argument to the end of the arg list */
+ arg = arg_string (override_options_line,
+ line_pos,
+ arg_len);
+ append_arg (arg);
+ free (arg);
+ break;
+
+ case 'x':
+ /* Delete a matching argument */
+ searchStr = arg_string(override_options_line, line_pos, arg_len);
+ if ((search_index = find_arg(searchStr)) != -1) {
+ delete_arg(search_index);
+ }
+ free (searchStr);
+ break;
+
+ case 'X':
+ /* Delete a matching argument and the argument following. */
+ searchStr = arg_string(override_options_line, line_pos, arg_len);
+ if ((search_index = find_arg(searchStr)) != -1) {
+ if (search_index >= arg_count -1) {
+ if (confirm_changes)
+ fprintf(stderr,"Not enough arguments to do X\n");
+ } else {
+ delete_arg(search_index); /* Delete the matching argument */
+ delete_arg(search_index); /* Delete the following argument */
+ }
+ }
+ free (searchStr);
+ break;
+
+ case 'O':
+ /* Change the optimization level to the specified value, and
+ remove any optimization arguments. This is a separate command
+ because we often want is to substitute our favorite
+ optimization level for whatever the project normally wants.
+ As we probably care about this a lot (for things like
+ testing file sizes at different optimization levels) we
+ make a special rewrite clause. */
+ arg = arg_string (override_options_line, line_pos, arg_len);
+ replace_optimization_level(arg);
+ free (arg);
+ break;
+ case 's':
+ /* Search for the regexp passed in, and replace a matching argument
+ with the provided replacement string */
+ searchStr = arg_string (override_options_line, line_pos, arg_len);
+ search_and_replace (searchStr);
+ free (searchStr);
+ break;
+
+ default:
+ fprintf(stderr,"### QA_OVERRIDE_GCC3_OPTIONS: invalid string (pos %d)\n",
+ line_pos);
+ break;
+ }
+ line_pos += arg_len;
+ }
+ *argc = arg_count;
+ *argv = arg_array;
+}
+
+
+
+/* Main entry point. This is gcc driver driver!
+ Interpret -arch flag from the list of input arguments. Invoke appropriate
+ compiler driver. 'lipo' the results if more than one -arch is supplied. */
+int
+main (int argc, const char **argv)
+{
+ size_t i;
+ int l, pid, ret, argv_0_len, prog_len;
+ char *errmsg_fmt, *errmsg_arg;
+ char *override_option_str = NULL;
+ total_argc = argc;
+ argv_0_len = strlen (argv[0]);
+ prog_len = 0;
+
+ /* Get the progname, required by pexecute () and program location. */
+ progname = argv[0] + argv_0_len;
+ while (progname != argv[0] && !IS_DIR_SEPARATOR (progname[-1]))
+ {
+ prog_len++;
+ --progname;
+ }
+
+ /* Setup driver prefix. */
+ prefix_len = argv_0_len - prog_len;
+ curr_dir = (char *) malloc (sizeof (char) * (prefix_len + 1));
+ strncpy (curr_dir, argv[0], prefix_len);
+ curr_dir[prefix_len] = '\0';
+ driver_exec_prefix = (argv[0], "/usr/bin", curr_dir);
+
+#ifdef DEBUG
+ fprintf (stderr,"%s: full progname = %s\n", progname, argv[0]);
+ fprintf (stderr,"%s: progname = %s\n", progname, progname);
+ fprintf (stderr,"%s: driver_exec_prefix = %s\n", progname, driver_exec_prefix);
+#endif
+
+ /* Before we get too far, rewrite the command line with any requested overrides */
+ if ((override_option_str = getenv ("QA_OVERRIDE_GCC3_OPTIONS")) != NULL)
+ rewrite_command_line(override_option_str, &argc, (char***)&argv);
+
+
+
+ initialize ();
+
+ /* Process arguments. Take appropriate actions when
+ -arch, -c, -S, -E, -o is encountered. Find input file name. */
+ for (i = 1; i < argc; i++)
+ {
+ if (!strcmp (argv[i], "-arch"))
+ {
+ if (i + 1 >= argc)
+ abort ();
+
+ add_arch (argv[i+1]);
+ i++;
+ }
+ else if (!strcmp (argv[i], "-c"))
+ {
+ new_argv[new_argc++] = argv[i];
+ compile_only_request = 1;
+ }
+ else if (!strcmp (argv[i], "-S"))
+ {
+ new_argv[new_argc++] = argv[i];
+ asm_output_request = 1;
+ }
+ else if (!strcmp (argv[i], "-E"))
+ {
+ new_argv[new_argc++] = argv[i];
+ preprocessed_output_request = 1;
+ }
+ else if (!strcmp (argv[i], "-MD") || !strcmp (argv[i], "-MMD"))
+ {
+ new_argv[new_argc++] = argv[i];
+ dash_capital_m_seen = 1;
+ }
+ else if (!strcmp (argv[i], "-dynamiclib"))
+ {
+ new_argv[new_argc++] = argv[i];
+ dash_dynamiclib_seen = 1;
+ }
+ else if (!strcmp (argv[i], "-v"))
+ {
+ new_argv[new_argc++] = argv[i];
+ verbose_flag = 1;
+ }
+ else if (!strcmp (argv[i], "-o"))
+ {
+ if (i + 1 >= argc)
+ abort ();
+
+ output_filename = argv[i+1];
+ i++;
+ }
+ else if ((! strcmp (argv[i], "-pass-exit-codes"))
+ || (! strcmp (argv[i], "-print-search-dirs"))
+ || (! strcmp (argv[i], "-print-libgcc-file-name"))
+ || (! strncmp (argv[i], "-print-file-name=", 17))
+ || (! strncmp (argv[i], "-print-prog-name=", 17))
+ || (! strcmp (argv[i], "-print-multi-lib"))
+ || (! strcmp (argv[i], "-print-multi-directory"))
+ || (! strcmp (argv[i], "-print-multi-os-directory"))
+ || (! strcmp (argv[i], "-ftarget-help"))
+ || (! strcmp (argv[i], "-fhelp"))
+ || (! strcmp (argv[i], "+e"))
+ || (! strncmp (argv[i], "-Wa,",4))
+ || (! strncmp (argv[i], "-Wp,",4))
+ || (! strncmp (argv[i], "-Wl,",4))
+ || (! strncmp (argv[i], "-l", 2))
+ || (! strncmp (argv[i], "-weak-l", 7))
+ || (! strncmp (argv[i], "-specs=", 7))
+ || (! strcmp (argv[i], "-ObjC"))
+ || (! strcmp (argv[i], "-fobjC"))
+ || (! strcmp (argv[i], "-ObjC++"))
+ || (! strcmp (argv[i], "-time"))
+ || (! strcmp (argv[i], "-###"))
+ || (! strcmp (argv[i], "-fconstant-cfstrings"))
+ || (! strcmp (argv[i], "-fno-constant-cfstrings"))
+ || (! strcmp (argv[i], "-static-libgcc"))
+ || (! strcmp (argv[i], "-shared-libgcc"))
+ || (! strcmp (argv[i], "-pipe"))
+ )
+ {
+ new_argv[new_argc++] = argv[i];
+ }
+ else if (! strcmp (argv[i], "-save-temps"))
+ {
+ new_argv[new_argc++] = argv[i];
+ save_temps_seen = 1;
+ }
+ else if ((! strcmp (argv[i], "-Xlinker"))
+ || (! strcmp (argv[i], "-Xassembler"))
+ || (! strcmp (argv[i], "-Xpreprocessor"))
+ || (! strcmp (argv[i], "-l"))
+ || (! strcmp (argv[i], "-weak_library"))
+ || (! strcmp (argv[i], "-weak_framework"))
+ || (! strcmp (argv[i], "-specs"))
+ || (! strcmp (argv[i], "-framework"))
+ )
+ {
+ new_argv[new_argc++] = argv[i];
+ i++;
+ new_argv[new_argc++] = argv[i];
+ }
+ else if (argv[i][0] == '-' && argv[i][1] != 0)
+ {
+ const char *p = &argv[i][1];
+ int c = *p;
+
+ /* First copy this flag itself. */
+ new_argv[new_argc++] = argv[i];
+
+ if (argv[i][1] == 'M')
+ dash_capital_m_seen = 1;
+
+ /* Now copy this flag's arguments, if any, appropriately. */
+ if ((SWITCH_TAKES_ARG (c) > (p[1] != 0))
+ || WORD_SWITCH_TAKES_ARG (p))
+ {
+ int j = 0;
+ int n_args = WORD_SWITCH_TAKES_ARG (p);
+ if (n_args == 0)
+ {
+ /* Count only the option arguments in separate argv elements. */
+ n_args = SWITCH_TAKES_ARG (c) - (p[1] != 0);
+ }
+ if (i + n_args >= argc)
+ fatal ("argument to `-%s' is missing", p);
+
+
+ while ( j < n_args)
+ {
+ i++;
+ new_argv[new_argc++] = argv[i];
+ j++;
+ }
+ }
+
+ }
+ else
+ {
+ struct input_filename *ifn;
+ new_argv[new_argc++] = argv[i];
+ ifn = (struct input_filename *) malloc (sizeof (struct input_filename));
+ ifn->name = argv[i];
+ ifn->index = i;
+ ifn->next = NULL;
+ num_infiles++;
+
+ if (last_infile)
+ last_infile->next = ifn;
+ else
+ in_files = ifn;
+
+ last_infile = ifn;
+ }
+ }
+
+#if 0
+ if (num_infiles == 0)
+ fatal ("no input files");
+#endif
+
+ if (num_arches > 1)
+ {
+ if (preprocessed_output_request
+ || save_temps_seen
+ || asm_output_request
+ || dash_capital_m_seen)
+ fatal ("-E, -S, -save-temps and -M options are not allowed with multiple -arch flags");
+ }
+ /* If -arch is not present OR Only one -arch <blah> is specified.
+ Invoke appropriate compiler driver. FAT build is not required in this
+ case. */
+
+ if (num_arches == 0 || num_arches == 1)
+ {
+
+ /* If no -arch is specified than use host compiler driver. */
+ if (num_arches == 0)
+ new_argv[0] = get_driver_name (get_arch_name (NULL));
+ else if (num_arches == 1)
+ {
+ /* Find compiler driver based on -arch <foo> and add approriate
+ -m* argument. */
+ new_argv[0] = get_driver_name (get_arch_name (arches[0]));
+ new_argc = new_argc + add_arch_options (0, new_argv, new_argc);
+ }
+
+
+#ifdef DEBUG
+ printf ("%s: invoking single driver name = %s\n", progname, new_argv[0]);
+#endif
+
+ /* Re insert output file name. */
+ if (output_filename)
+ {
+ new_argv[new_argc++] = "-o";
+ new_argv[new_argc++] = output_filename;
+ }
+
+ /* Add the NULL. */
+ new_argv[new_argc] = NULL;
+
+#ifdef DEBUG
+ debug_command_line (new_argv, new_argc);
+#endif
+
+ pid = pexecute (new_argv[0], (char *const *)new_argv, progname, NULL,
+ &errmsg_fmt, &errmsg_arg, PEXECUTE_SEARCH | PEXECUTE_LAST);
+
+ if (pid == -1)
+ pfatal_pexecute (errmsg_fmt, errmsg_arg);
+
+ ret = do_wait (pid, new_argv[0]);
+ }
+ else
+ {
+ /* Handle multiple -arch <blah>. */
+
+ /* If more than one input files are supplied but only one output filename
+ is pressent then IMA will be used. */
+ if (num_infiles > 1 && output_filename)
+ ima_is_used = 1;
+
+ /* Linker wants to know this in case of multiple -arch. */
+ if (!compile_only_request && !dash_dynamiclib_seen)
+ new_argv[new_argc++] = "-Wl,-arch_multiple";
+
+
+ /* If only one input file is specified OR IMA is used then expected output
+ is one FAT binary. */
+ if (num_infiles == 1 || ima_is_used)
+ {
+ const char *out_file;
+
+ /* Create output file name based on
+ input filename, if required. */
+ if (compile_only_request && !output_filename && num_infiles == 1)
+ out_file = strip_path_and_suffix (in_files->name, ".o");
+ else
+ out_file = (output_filename ? output_filename : final_output);
+
+
+ /* Linker wants to know name of output file using one extra arg. */
+ if (!compile_only_request)
+ {
+ char *oname = (char *)(output_filename ? output_filename : final_output);
+ char *n = malloc (sizeof (char) * (strlen (oname) + 5));
+ strcpy (n, "-Wl,");
+ strcat (n, oname);
+ new_argv[new_argc++] = "-Wl,-final_output";
+ new_argv[new_argc++] = n;
+ }
+
+ /* Compile file(s) for each arch and lipo 'em together. */
+ ret = do_compile (new_argv, new_argc);
+
+ /* Make FAT binary by combining individual output files for each
+ architecture, using 'lipo'. */
+ ret = do_lipo (0, out_file);
+ }
+ else
+ {
+ /* Multiple input files are present and IMA is not used.
+ Which means need to generate multiple FAT files. */
+ ret = do_compile_separately ();
+ ret = do_lipo_separately ();
+ }
+ }
+
+ final_cleanup ();
+ free (curr_dir);
+ return greatest_status;
+}
diff --git a/gcc/config/darwin-protos.h b/gcc/config/darwin-protos.h
index 43ea4cd3363..30634812021 100644
--- a/gcc/config/darwin-protos.h
+++ b/gcc/config/darwin-protos.h
@@ -29,9 +29,17 @@ extern const char *machopic_mcount_stub_name (void);
extern void machopic_picsymbol_stub_section (void);
extern void machopic_picsymbol_stub1_section (void);
+/* APPLE LOCAL dynamic-no-pic */
+extern void machopic_picsymbol_stub2_section (void);
extern void machopic_symbol_stub_section (void);
extern void machopic_symbol_stub1_section (void);
+/* APPLE LOCAL deep branch prediction */
+extern void machopic_symbol_stub2_section (void);
extern void machopic_lazy_symbol_ptr_section (void);
+/* APPLE LOCAL begin -mdynamic-no-pic */
+extern void machopic_lazy_symbol_ptr2_section (void);
+extern void machopic_lazy_symbol_ptr3_section (void);
+/* APPLE LOCAL end -mdynamic-no-pic */
extern void machopic_nl_symbol_ptr_section (void);
extern void constructor_section (void);
@@ -57,6 +65,8 @@ extern void machopic_asm_out_destructor (rtx, int);
extern void machopic_define_symbol (rtx);
extern void darwin_encode_section_info (tree, rtx, int);
+/* APPLE LOCAL CW asm blocks */
+extern tree darwin_cw_asm_special_label (tree);
#endif /* TREE_CODE */
@@ -77,6 +87,31 @@ extern void darwin_emit_unwind_label (FILE *, tree, int, int);
extern void darwin_pragma_ignore (struct cpp_reader *);
extern void darwin_pragma_options (struct cpp_reader *);
extern void darwin_pragma_unused (struct cpp_reader *);
+/* APPLE LOCAL pragma fenv */
+extern void darwin_pragma_fenv (struct cpp_reader *);
+/* APPLE LOCAL pragma reverse_bitfields */
+extern void darwin_pragma_reverse_bitfields (struct cpp_reader *);
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+extern void darwin_pragma_opt_level (struct cpp_reader *);
+extern void darwin_pragma_opt_size (struct cpp_reader *);
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
+/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */
+extern void darwin_pragma_pack (struct cpp_reader *);
+/* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
+/* APPLE LOCAL begin CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */
+extern void darwin_pragma_call_on_load (struct cpp_reader *);
+extern void darwin_pragma_call_on_unload (struct cpp_reader *);
+/* APPLE LOCAL end CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */
+
+/* APPLE LOCAL begin darwin_set_section_for_var_p */
+extern int darwin_set_section_for_var_p (tree, int, int);
+/* APPLE LOCAL end darwin_set_section_for_var_p */
+
+/* APPLE LOCAL double destructor */
+extern tree darwin_handle_odd_attribute (tree *, tree, tree, int, bool *);
+/* APPLE LOCAL ObjC GC */
+extern tree darwin_handle_objc_gc_attribute (tree *, tree, tree, int, bool *);
extern void darwin_file_end (void);
@@ -123,14 +158,39 @@ extern void objc_class_names_section (void);
extern void objc_meth_var_names_section (void);
extern void objc_meth_var_types_section (void);
extern void objc_cls_refs_section (void);
+/* APPLE LOCAL begin constant cfstrings */
+extern void cfstring_constant_object_section (void);
+extern bool darwin_constant_cfstring_p (tree);
+/* APPLE LOCAL end constant cfstrings */
extern void machopic_lazy_symbol_ptr_section (void);
extern void machopic_nl_symbol_ptr_section (void);
extern void machopic_symbol_stub_section (void);
extern void machopic_picsymbol_stub_section (void);
extern void machopic_output_stub (FILE *, const char *, const char *);
+/* APPLE LOCAL deep branch prediction. */
+extern void darwin_textcoal_nt_section (void);
extern void darwin_exception_section (void);
extern void darwin_eh_frame_section (void);
extern void darwin_globalize_label (FILE *, const char *);
extern void darwin_assemble_visibility (tree, int);
extern void darwin_asm_output_dwarf_delta (FILE *, int, const char *,
const char *);
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+extern void reset_optimization_options (int, int);
+/* APPLE LOCAL C++ EH */
+extern void darwin_non_lazy_pcrel (FILE *file, rtx addr);
+
+/* APPLE LOCAL begin constant cfstrings */
+extern void darwin_init_cfstring_builtins (void);
+extern tree darwin_expand_tree_builtin (tree, tree, tree);
+extern tree darwin_construct_objc_string (tree);
+/* APPLE LOCAL end constant cfstrings */
+
+/* APPLE LOCAL CW asm blocks */
+#define CW_ASM_SPECIAL_LABEL(ID) darwin_cw_asm_special_label (ID)
+
+/* APPLE LOCAL begin KEXT */
+#ifdef TREE_CODE
+extern bool flag_apple_kext_p (void);
+#endif
+/* APPLE LOCAL end KEXT */
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index de2f6e3e0b6..58772827d2d 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -45,7 +45,21 @@ Boston, MA 02111-1307, USA. */
#include "tm_p.h"
#include "errors.h"
#include "hashtab.h"
+/* APPLE LOCAL begin constant cfstrings */
+#include "toplev.h"
+static tree darwin_build_constant_cfstring (tree);
+
+enum darwin_builtins
+{
+ DARWIN_BUILTIN_MIN = (int)END_BUILTINS,
+
+ DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING,
+ DARWIN_BUILTIN_MAX
+};
+/* APPLE LOCAL end constant cfstrings */
+
+/* APPLE LOCAL begin mainline 5 nops */
/* Darwin supports a feature called fix-and-continue, which is used
for rapid turn around debugging. When code is compiled with the
-mfix-and-continue flag, two changes are made to the generated code
@@ -59,8 +73,8 @@ Boston, MA 02111-1307, USA. */
existed in the unit to be replaced, and from the new translation
unit, for new data.
- The changes are to insert 4 nops at the beginning of all functions
- and to use indirection to get at static duration data. The 4 nops
+ The changes are to insert 5 nops at the beginning of all functions
+ and to use indirection to get at static duration data. The 5 nops
are required by consumers of the generated code. Currently, gdb
uses this to patch in a jump to the overriding function, this
allows all uses of the old name to forward to the replacement,
@@ -75,12 +89,17 @@ Boston, MA 02111-1307, USA. */
the code that handles the extra indirection, and
machopic_output_indirection and its use of MACHO_SYMBOL_STATIC for
the code that handles @code{static} data indirection. */
-
+/* APPLE LOCAL end mainline 5 nops */
/* Nonzero if the user passes the -mone-byte-bool switch, which forces
sizeof(bool) to be 1. */
const char *darwin_one_byte_bool = 0;
+/* APPLE LOCAL begin pragma reverse_bitfields */
+/* Shouldn't there be a comment here? */
+int darwin_reverse_bitfields = 0;
+/* APPLE LOCAL end pragma reverse_bitfields */
+
int
name_needs_quotes (const char *name)
{
@@ -92,7 +111,8 @@ name_needs_quotes (const char *name)
}
/* Return true if SYM_REF can be used without an indirection. */
-static int
+/* APPLE LOCAL what is this change for? */
+int
machopic_symbol_defined_p (rtx sym_ref)
{
if (SYMBOL_REF_FLAGS (sym_ref) & MACHO_SYMBOL_FLAG_DEFINED)
@@ -169,7 +189,8 @@ indirect_data (rtx sym_ref)
lprefix = (((name[0] == '*' || name[0] == '&')
&& (name[1] == 'L' || (name[1] == '"' && name[2] == 'L')))
- || (strncmp (name, "_OBJC_", 6)));
+ /* APPLE LOCAL mainline */
+ || (strncmp (name, "_OBJC_", 6) == 0));
return ! lprefix;
}
@@ -306,44 +327,43 @@ machopic_indirection_name (rtx sym_ref, bool stub_p)
size_t namelen = strlen (name);
machopic_indirection *p;
void ** slot;
+ /* APPLE LOCAL begin mainline */
+ bool saw_star = false;
+ bool needs_quotes;
+ const char *suffix;
+ const char *prefix = user_label_prefix;
+ const char *quote = "";
- /* Construct the name of the non-lazy pointer or stub. */
- if (stub_p)
+ if (name[0] == '*')
{
- int needs_quotes = name_needs_quotes (name);
- buffer = alloca (strlen ("&L")
- + namelen
- + strlen (STUB_SUFFIX)
- + 2 /* possible quotes */
- + 1 /* '\0' */);
-
- if (needs_quotes)
- {
- if (name[0] == '*')
- sprintf (buffer, "&\"L%s" STUB_SUFFIX "\"", name + 1);
- else
- sprintf (buffer, "&\"L%s%s" STUB_SUFFIX "\"", user_label_prefix,
- name);
- }
- else if (name[0] == '*')
- sprintf (buffer, "&L%s" STUB_SUFFIX, name + 1);
- else
- sprintf (buffer, "&L%s%s" STUB_SUFFIX, user_label_prefix, name);
+ saw_star = true;
+ prefix = "";
+ ++name;
+ --namelen;
}
- else
+
+ needs_quotes = name_needs_quotes (name);
+ if (needs_quotes)
{
- buffer = alloca (strlen ("&L")
- + strlen (user_label_prefix)
- + namelen
- + strlen (NON_LAZY_POINTER_SUFFIX)
- + 1 /* '\0' */);
- if (name[0] == '*')
- sprintf (buffer, "&L%s" NON_LAZY_POINTER_SUFFIX, name + 1);
- else
- sprintf (buffer, "&L%s%s" NON_LAZY_POINTER_SUFFIX,
- user_label_prefix, name);
+ quote = "\"";
}
+ if (stub_p)
+ suffix = STUB_SUFFIX;
+ else
+ suffix = NON_LAZY_POINTER_SUFFIX;
+
+ buffer = alloca (strlen ("&L")
+ + strlen (prefix)
+ + namelen
+ + strlen (suffix)
+ + 2 * strlen (quote)
+ + 1 /* '\0' */);
+
+ /* Construct the name of the non-lazy pointer or stub. */
+ sprintf (buffer, "&%sL%s%s%s%s", quote, prefix, name, suffix, quote);
+ /* APPLE LOCAL end mainline */
+
if (!machopic_indirections)
machopic_indirections = htab_create_ggc (37,
machopic_indirection_hash,
@@ -421,9 +441,12 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
if (! MACHOPIC_INDIRECT)
return orig;
- if (GET_CODE (orig) == SYMBOL_REF)
+ /* APPLE LOCAL begin dynamic-no-pic */
+ switch (GET_CODE (orig))
{
- int defined = machopic_data_defined_p (orig);
+ case SYMBOL_REF:
+ {
+ int defined = machopic_data_defined_p (orig);
if (defined && MACHO_DYNAMIC_NO_PIC_P)
{
@@ -431,8 +454,12 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
emit_insn (gen_macho_high (reg, orig));
emit_insn (gen_macho_low (reg, reg, orig));
#else
- /* some other cpu -- writeme! */
- abort ();
+#if defined (TARGET_386)
+ return orig;
+#else /* defined (TARGET_386) */
+ /* some other cpu -- writeme! */
+ abort ();
+#endif /* defined (TARGET_386) */
#endif
return reg;
}
@@ -482,63 +509,86 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
ptr_ref = gen_const_mem (Pmode, ptr_ref);
machopic_define_symbol (ptr_ref);
+#ifdef TARGET_386
+ if (reg && TARGET_DYNAMIC_NO_PIC)
+ {
+ emit_insn (gen_rtx_SET (Pmode, reg, ptr_ref));
+ ptr_ref = reg;
+ }
+#endif /* TARGET_386 */
+
return ptr_ref;
}
- else if (GET_CODE (orig) == CONST)
- {
- rtx base, result;
-
- /* legitimize both operands of the PLUS */
- if (GET_CODE (XEXP (orig, 0)) == PLUS)
- {
- base = machopic_indirect_data_reference (XEXP (XEXP (orig, 0), 0),
- reg);
- orig = machopic_indirect_data_reference (XEXP (XEXP (orig, 0), 1),
- (base == reg ? 0 : reg));
- }
- else
- return orig;
-
- if (MACHOPIC_PURE && GET_CODE (orig) == CONST_INT)
- result = plus_constant (base, INTVAL (orig));
- else
- result = gen_rtx_PLUS (Pmode, base, orig);
-
- if (MACHOPIC_JUST_INDIRECT && GET_CODE (base) == MEM)
- {
- if (reg)
- {
- emit_move_insn (reg, result);
- result = reg;
- }
- else
- {
+ break;
+
+ case CONST:
+ {
+ /* If "(const (plus ...", walk the PLUS and return that result.
+ PLUS processing (below) will restore the "(const ..." if
+ appropriate. */
+ if (GET_CODE (XEXP (orig, 0)) == PLUS)
+ return machopic_indirect_data_reference (XEXP (orig, 0), reg);
+ else
+ return orig;
+ }
+ break;
+
+ case MEM:
+ {
+ XEXP (ptr_ref, 0) = machopic_indirect_data_reference (XEXP (orig, 0), reg);
+ return ptr_ref;
+ }
+ break;
+
+ case PLUS:
+ {
+ rtx base, result;
+
+ /* When the target is i386, this code prevents crashes due to the
+ compiler's ignorance on how to move the PIC base register to
+ other registers. (The reload phase sometimes introduces such
+ insns.) */
+ if (GET_CODE (XEXP (orig, 0)) == REG
+ && REGNO (XEXP (orig, 0)) == PIC_OFFSET_TABLE_REGNUM
+#ifdef TARGET_386
+ /* Prevent the same register from being erroneously used
+ as both the base and index registers. */
+ && GET_CODE (XEXP (orig, 1)) == CONST
+#endif
+ && reg)
+ {
+ emit_move_insn (reg, XEXP (orig, 0));
+ XEXP (ptr_ref, 0) = reg;
+ return ptr_ref;
+ }
+
+ /* Legitimize both operands of the PLUS. */
+ base = machopic_indirect_data_reference (XEXP (orig, 0), reg);
+ orig = machopic_indirect_data_reference (XEXP (orig, 1),
+ (base == reg ? 0 : reg));
+ if (MACHOPIC_INDIRECT && GET_CODE (orig) == CONST_INT)
+ result = plus_constant (base, INTVAL (orig));
+ else
+ result = gen_rtx_PLUS (Pmode, base, orig);
+
+ if (MACHOPIC_JUST_INDIRECT && GET_CODE (base) == MEM)
+ {
+ if (reg)
+ {
+ emit_move_insn (reg, result);
+ result = reg;
+ }
+ else
result = force_reg (GET_MODE (result), result);
- }
- }
+ }
+ return result;
+ }
+ break;
- return result;
-
- }
- else if (GET_CODE (orig) == MEM)
- XEXP (ptr_ref, 0) = machopic_indirect_data_reference (XEXP (orig, 0), reg);
- /* When the target is i386, this code prevents crashes due to the
- compiler's ignorance on how to move the PIC base register to
- other registers. (The reload phase sometimes introduces such
- insns.) */
- else if (GET_CODE (orig) == PLUS
- && GET_CODE (XEXP (orig, 0)) == REG
- && REGNO (XEXP (orig, 0)) == PIC_OFFSET_TABLE_REGNUM
-#ifdef I386
- /* Prevent the same register from being erroneously used
- as both the base and index registers. */
- && GET_CODE (XEXP (orig, 1)) == CONST
-#endif
- && reg)
- {
- emit_move_insn (reg, XEXP (orig, 0));
- XEXP (ptr_ref, 0) = reg;
- }
+ default:
+ break;
+ } /* End switch (GET_CODE (orig)) */
+ /* APPLE LOCAL end dynamic-no-pic */
return ptr_ref;
}
@@ -824,6 +874,43 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
else
pic_ref = gen_rtx_PLUS (Pmode, base, orig);
+ /* APPLE LOCAL begin gen ADD */
+#ifdef MASK_80387
+ {
+ rtx mem, other;
+
+ if (GET_CODE (orig) == MEM) {
+ mem = orig; other = base;
+ /* Swap the kids only if there is only one MEM, and it's on the right. */
+ if (GET_CODE (base) != MEM) {
+ XEXP (pic_ref, 0) = orig;
+ XEXP (pic_ref, 1) = base;
+ }
+ }
+ else if (GET_CODE (base) == MEM) {
+ mem = base; other = orig;
+ } else
+ mem = other = NULL_RTX;
+
+ /* Both kids are MEMs. */
+ if (other && GET_CODE (other) == MEM)
+ other = force_reg (GET_MODE (other), other);
+
+ /* The x86 can't post-index a MEM; emit an ADD instruction to handle this. */
+ if (mem && GET_CODE (mem) == MEM) {
+ if ( ! reload_in_progress) {
+ rtx set = gen_rtx_SET (VOIDmode, reg, pic_ref);
+ rtx clobber_cc = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
+ pic_ref = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, set, clobber_cc));
+ emit_insn (pic_ref);
+ pic_ref = reg;
+ is_complex = 0;
+ }
+ }
+ }
+#endif
+ /* APPLE LOCAL end gen ADD */
+
if (reg && is_complex)
{
emit_move_insn (reg, pic_ref);
@@ -840,7 +927,13 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
else if (GET_CODE (orig) == MEM
&& GET_CODE (XEXP (orig, 0)) == SYMBOL_REF)
{
- rtx addr = machopic_legitimize_pic_address (XEXP (orig, 0), Pmode, reg);
+ /* APPLE LOCAL begin use new pseudo for temp; reusing reg confuses PRE */
+ rtx tempreg = reg;
+ rtx addr;
+ if ( !no_new_pseudos )
+ tempreg = gen_reg_rtx (Pmode);
+ addr = machopic_legitimize_pic_address (XEXP (orig, 0), Pmode, tempreg);
+ /* APPLE LOCAL end use new pseudo for temp; reusing reg confuses PRE */
addr = replace_equiv_address (orig, addr);
emit_move_insn (reg, addr);
pic_ref = reg;
@@ -994,10 +1087,18 @@ darwin_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
&& DECL_INITIAL (decl) != error_mark_node)))
SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_DEFINED;
- if (TREE_CODE (decl) == VAR_DECL
- && indirect_data (sym_ref)
- && ! TREE_PUBLIC (decl))
+ /* APPLE LOCAL begin mainline */
+ if (! TREE_PUBLIC (decl))
SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_STATIC;
+ /* APPLE LOCAL end mainline */
+
+ /* APPLE LOCAL begin fix OBJC codegen */
+ if (TREE_CODE (decl) == VAR_DECL)
+ {
+ if (strncmp (XSTR (sym_ref, 0), "_OBJC_", 6) == 0)
+ SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_DEFINED;
+ }
+ /* APPLE LOCAL end fix OBJC codegen */
}
void
@@ -1014,13 +1115,15 @@ machopic_select_section (tree exp, int reloc,
{
void (*base_function)(void);
bool weak_p = DECL_P (exp) && DECL_WEAK (exp);
+ /* APPLE LOCAL begin mainline 2005-04-15 <radar 4078608> */
static void (* const base_funs[][2])(void) = {
{ text_section, text_coal_section },
- { text_unlikely_section, text_unlikely_coal_section },
+ { unlikely_text_section, text_unlikely_coal_section },
{ readonly_data_section, const_coal_section },
{ const_data_section, const_data_coal_section },
{ data_section, data_coal_section }
};
+ /* APPLE LOCAL end mainline 2005-04-15 <radar 4078608> */
if (TREE_CODE (exp) == FUNCTION_DECL)
base_function = base_funs[reloc][weak_p];
@@ -1031,10 +1134,13 @@ machopic_select_section (tree exp, int reloc,
else
base_function = base_funs[4][weak_p];
+ /* APPLE LOCAL begin fwritable strings */
if (TREE_CODE (exp) == STRING_CST
&& ((size_t) TREE_STRING_LENGTH (exp)
- == strlen (TREE_STRING_POINTER (exp)) + 1))
+ == strlen (TREE_STRING_POINTER (exp)) + 1)
+ && ! flag_writable_strings)
cstring_section ();
+ /* APPLE LOCAL end fwritable strings */
else if ((TREE_CODE (exp) == INTEGER_CST || TREE_CODE (exp) == REAL_CST)
&& flag_merge_constants)
{
@@ -1056,13 +1162,24 @@ machopic_select_section (tree exp, int reloc,
&& TREE_CODE (TREE_TYPE (exp)) == RECORD_TYPE
&& TYPE_NAME (TREE_TYPE (exp)))
{
+ /* APPLE LOCAL constant strings */
+ extern int flag_next_runtime;
tree name = TYPE_NAME (TREE_TYPE (exp));
if (TREE_CODE (name) == TYPE_DECL)
name = DECL_NAME (name);
- if (!strcmp (IDENTIFIER_POINTER (name), "NSConstantString"))
- objc_constant_string_object_section ();
- else if (!strcmp (IDENTIFIER_POINTER (name), "NXConstantString"))
- objc_string_object_section ();
+ /* APPLE LOCAL begin 4149909 */
+ if (!strcmp (IDENTIFIER_POINTER (name), "__builtin_ObjCString"))
+ {
+ if (flag_next_runtime)
+ objc_constant_string_object_section ();
+ else
+ objc_string_object_section ();
+ }
+ /* APPLE LOCAL end 4149909 */
+ /* APPLE LOCAL begin constant strings */
+ else if (!strcmp (IDENTIFIER_POINTER (name), "__builtin_CFString"))
+ cfstring_constant_object_section ();
+ /* APPLE LOCAL end constant strings */
else
base_function ();
}
@@ -1123,28 +1240,12 @@ machopic_select_section (tree exp, int reloc,
else
base_function ();
}
- /* ::operator new and ::operator delete must be coalesced, even
- if not weak. There are 8 variants that we look for. */
- else if (TREE_CODE (exp) == FUNCTION_DECL
- && ! DECL_ONE_ONLY (exp))
- {
- const char * name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (exp));
- if (name[0] == '_' && name[1] == 'Z'
- && ((name[2] == 'n' && (name[3] == 'a' || name[3] == 'w')
- && name[4] == 'm')
- || (name[2] == 'd' && (name[3] == 'a' || name[3] == 'l')
- && name[4] == 'P' && name[5] == 'v')))
- {
- bool delete_p = name[2] == 'd';
- if (name[5 + delete_p] == 0
- || strcmp (name + 5 + delete_p, "KSt9nothrow_t") == 0)
- base_funs[reloc][1] ();
- else
- base_function ();
- }
- else
- base_function ();
- }
+ /* APPLE LOCAL coalescing */
+ /* Removed special handling of '::operator new' and '::operator delete'. */
+ /* APPLE LOCAL begin darwin_set_section_for_var_p */
+ else if (darwin_set_section_for_var_p (exp, reloc, align))
+ ;
+ /* APPLE LOCAL end darwin_set_section_for_var_p */
else
base_function ();
}
@@ -1156,7 +1257,9 @@ void
machopic_select_rtx_section (enum machine_mode mode, rtx x,
unsigned HOST_WIDE_INT align ATTRIBUTE_UNUSED)
{
- if (GET_MODE_SIZE (mode) == 8)
+ if (GET_MODE_SIZE (mode) == 8
+ && (GET_CODE (x) == CONST_INT
+ || GET_CODE (x) == CONST_DOUBLE))
literal8_section ();
else if (GET_MODE_SIZE (mode) == 4
&& (GET_CODE (x) == CONST_INT
@@ -1206,6 +1309,153 @@ darwin_globalize_label (FILE *stream, const char *name)
default_globalize_label (stream, name);
}
+/* APPLE LOCAL begin assembly "abort" directive */
+/* This can be called instead of EXIT. It will emit a '.abort' directive
+ into any existing assembly file, causing assembly to immediately abort,
+ thus preventing the assembler from spewing out numerous, irrelevant
+ error messages. */
+
+void
+abort_assembly_and_exit (int status)
+{
+ /* If we're aborting, get the assembler to abort, too. */
+ if (status == FATAL_EXIT_CODE && asm_out_file != 0)
+ fprintf (asm_out_file, "\n.abort\n");
+
+ exit (status);
+}
+/* APPLE LOCAL end assembly "abort" directive */
+
+/* APPLE LOCAL begin KEXT double destructor */
+#include "c-common.h"
+
+/* Handle __attribute__ ((apple_kext_compatibility)).
+ This only applies to darwin kexts for 2.95 compatibility -- it shrinks the
+ vtable for classes with this attribute (and their descendants) by not
+ outputting the new 3.0 nondeleting destructor. This means that such
+ objects CANNOT be allocated on the stack or as globals UNLESS they have
+ a completely empty `operator delete'.
+ Luckily, this fits in with the Darwin kext model.
+
+ This attribute also disables gcc3's potential overlaying of derived
+ class data members on the padding at the end of the base class. */
+
+tree
+darwin_handle_odd_attribute (tree *node, tree name, tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED, bool *no_add_attrs)
+{
+ /* APPLE KEXT stuff -- only applies with pure static C++ code. */
+ if (! flag_apple_kext || ! c_dialect_cxx ())
+ {
+ warning ("`%s' 2.95 vtable-compatability attribute applies "
+ "only when compiling a kext", IDENTIFIER_POINTER (name));
+
+ *no_add_attrs = true;
+ }
+ else if (TREE_CODE (*node) != RECORD_TYPE)
+ {
+ warning ("`%s' 2.95 vtable-compatability attribute applies "
+ "only to C++ classes", IDENTIFIER_POINTER (name));
+
+ *no_add_attrs = true;
+ }
+
+ return NULL_TREE;
+}
+/* APPLE LOCAL end KEXT double destructor */
+
+/* APPLE LOCAL begin ObjC GC */
+tree
+darwin_handle_objc_gc_attribute (tree *node ATTRIBUTE_UNUSED,
+ tree name ATTRIBUTE_UNUSED,
+ tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED,
+ bool *no_add_attrs ATTRIBUTE_UNUSED)
+{
+ return NULL_TREE;
+}
+/* APPLE LOCAL end ObjC GC */
+
+/* APPLE LOCAL begin darwin_set_section_for_var_p 20020226 --turly */
+
+/* This is specifically for any initialised static class constants
+ which may be output by the C++ front end at the end of compilation.
+ SELECT_SECTION () macro won't do because these are VAR_DECLs, not
+ STRING_CSTs or INTEGER_CSTs. And by putting 'em in appropriate
+ sections, we save space.
+
+ FIXME: does this really do anything? Won't the DECL_WEAK test be
+ true 99% (or 100%) of the time? In the other 1% of the time,
+ shouldn't select_section be fixed instead of this hackery? */
+
+extern void cstring_section (void),
+ literal4_section (void), literal8_section (void);
+int
+darwin_set_section_for_var_p (tree exp, int reloc, int align)
+{
+ if (!reloc && TREE_CODE (exp) == VAR_DECL
+ && DECL_ALIGN (exp) == align
+ && TREE_READONLY (exp) && DECL_INITIAL (exp)
+ && ! DECL_WEAK (exp))
+ {
+ /* Put constant string vars in ".cstring" section. */
+
+ if (TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE
+ && TREE_CODE (TREE_TYPE (TREE_TYPE (exp))) == INTEGER_TYPE
+ && integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (exp))))
+ && TREE_CODE (DECL_INITIAL (exp)) == STRING_CST)
+ {
+
+ /* Compare string length with actual number of characters
+ the compiler will write out (which is not necessarily
+ TREE_STRING_LENGTH, in the case of a constant array of
+ characters that is not null-terminated). Select appropriate
+ section accordingly. */
+
+ if (MIN ( TREE_STRING_LENGTH (DECL_INITIAL(exp)),
+ int_size_in_bytes (TREE_TYPE (exp)))
+ == (long) strlen (TREE_STRING_POINTER (DECL_INITIAL (exp))) + 1)
+ {
+ cstring_section ();
+ return 1;
+ }
+ else
+ {
+ const_section ();
+ return 1;
+ }
+ }
+ else
+ if (TREE_READONLY (exp)
+ && ((TREE_CODE (TREE_TYPE (exp)) == INTEGER_TYPE
+ && TREE_CODE (DECL_INITIAL (exp)) == INTEGER_CST)
+ || (TREE_CODE (TREE_TYPE (exp)) == REAL_TYPE
+ && TREE_CODE (DECL_INITIAL (exp)) == REAL_CST))
+ && TREE_CODE (TYPE_SIZE_UNIT (TREE_TYPE (DECL_INITIAL (exp))))
+ == INTEGER_CST)
+ {
+ tree size = TYPE_SIZE_UNIT (TREE_TYPE (DECL_INITIAL (exp)));
+ if (TREE_INT_CST_HIGH (size) != 0)
+ return 0;
+
+ /* Put integer and float consts in the literal4|8 sections. */
+
+ if (TREE_INT_CST_LOW (size) == 4)
+ {
+ literal4_section ();
+ return 1;
+ }
+ else if (TREE_INT_CST_LOW (size) == 8)
+ {
+ literal8_section ();
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+/* APPLE LOCAL end darwin_set_section_for_var_p 20020226 --turly */
+
void
darwin_asm_named_section (const char *name,
unsigned int flags ATTRIBUTE_UNUSED,
@@ -1258,8 +1508,9 @@ darwin_emit_unwind_label (FILE *file, tree decl, int for_eh, int empty)
? DECL_ASSEMBLER_NAME (decl)
: DECL_NAME (decl);
- const char *prefix = "_";
- const int prefix_len = 1;
+ /* APPLE LOCAL begin mainline */
+ const char *prefix = user_label_prefix;
+ /* APPLE LOCAL end mainline */
const char *base = IDENTIFIER_POINTER (id);
unsigned int base_len = IDENTIFIER_LENGTH (id);
@@ -1273,7 +1524,10 @@ darwin_emit_unwind_label (FILE *file, tree decl, int for_eh, int empty)
if (! for_eh)
suffix = ".eh1";
- lab = xmalloc (prefix_len + base_len + strlen (suffix) + quotes_len + 1);
+ /* APPLE LOCAL begin mainline */
+ lab = xmalloc (strlen (prefix)
+ + base_len + strlen (suffix) + quotes_len + 1);
+ /* APPLE LOCAL end mainline */
lab[0] = '\0';
if (need_quotes)
@@ -1381,7 +1635,8 @@ void
darwin_file_end (void)
{
machopic_finish (asm_out_file);
- if (strcmp (lang_hooks.name, "GNU C++") == 0)
+ /* APPLE LOCAL constant cfstrings */
+ if (darwin_running_cxx)
{
constructor_section ();
destructor_section ();
@@ -1399,4 +1654,315 @@ darwin_file_end (void)
int darwin_fix_and_continue;
const char *darwin_fix_and_continue_switch;
+/* APPLE LOCAL begin KEXT */
+/* Ture, iff we're generating code for loadable kernel extentions. */
+
+bool
+flag_apple_kext_p (void) {
+ return flag_apple_kext;
+}
+/* APPLE LOCAL end KEXT */
+
+/* APPLE LOCAL begin constant cfstrings */
+int darwin_constant_cfstrings = 0;
+const char *darwin_constant_cfstrings_switch;
+int darwin_warn_nonportable_cfstrings = 1; /* on by default. */
+const char *darwin_warn_nonportable_cfstrings_switch;
+int darwin_pascal_strings = 0;
+const char *darwin_pascal_strings_switch;
+int darwin_running_cxx;
+
+static GTY(()) tree cfstring_class_reference = NULL_TREE;
+static GTY(()) tree cfstring_type_node = NULL_TREE;
+static GTY(()) tree ccfstring_type_node = NULL_TREE;
+static GTY(()) tree pccfstring_type_node = NULL_TREE;
+static GTY(()) tree pcint_type_node = NULL_TREE;
+static GTY(()) tree pcchar_type_node = NULL_TREE;
+
+/* Store all constructed constant CFStrings in a hash table so that
+ they get uniqued properly. */
+
+struct cfstring_descriptor GTY(())
+{
+ /* The literal argument . */
+ tree literal;
+
+ /* The resulting constant CFString. */
+ tree constructor;
+};
+
+static GTY((param_is (struct cfstring_descriptor))) htab_t cfstring_htab;
+
+static hashval_t cfstring_hash (const void *);
+static int cfstring_eq (const void *, const void *);
+
+void
+darwin_init_cfstring_builtins (void)
+{
+ tree field, fields, pccfstring_ftype_pcchar;
+
+ /* struct __builtin_CFString {
+ const int *isa; (will point at
+ int flags; __CFConstantStringClassReference)
+ const char *str;
+ int length;
+ }; */
+
+ pcint_type_node
+ = build_pointer_type (build_qualified_type (integer_type_node,
+ TYPE_QUAL_CONST));
+ pcchar_type_node
+ = build_pointer_type (build_qualified_type (char_type_node,
+ TYPE_QUAL_CONST));
+ cfstring_type_node = (*lang_hooks.types.make_type) (RECORD_TYPE);
+ fields = build_decl (FIELD_DECL, NULL_TREE, pcint_type_node);
+ field = build_decl (FIELD_DECL, NULL_TREE, integer_type_node);
+ TREE_CHAIN (field) = fields; fields = field;
+ field = build_decl (FIELD_DECL, NULL_TREE, pcchar_type_node);
+ TREE_CHAIN (field) = fields; fields = field;
+ field = build_decl (FIELD_DECL, NULL_TREE, integer_type_node);
+ TREE_CHAIN (field) = fields; fields = field;
+ /* NB: The finish_builtin_struct() routine expects FIELD_DECLs in
+ reverse order! */
+ finish_builtin_struct (cfstring_type_node, "__builtin_CFString",
+ fields, NULL_TREE);
+
+ /* const struct __builtin_CFstring *
+ __builtin___CFStringMakeConstantString (const char *); */
+
+ ccfstring_type_node
+ = build_qualified_type (cfstring_type_node, TYPE_QUAL_CONST);
+ pccfstring_type_node
+ = build_pointer_type (ccfstring_type_node);
+ pccfstring_ftype_pcchar
+ = build_function_type_list (pccfstring_type_node,
+ pcchar_type_node, NULL_TREE);
+ lang_hooks.builtin_function ("__builtin___CFStringMakeConstantString",
+ pccfstring_ftype_pcchar,
+ DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING,
+ BUILT_IN_NORMAL, NULL, NULL_TREE);
+
+ /* extern int __CFConstantStringClassReference[]; */
+ cfstring_class_reference
+ = build_decl (VAR_DECL,
+ get_identifier ("__CFConstantStringClassReference"),
+ build_array_type (integer_type_node, NULL_TREE));
+ TREE_PUBLIC (cfstring_class_reference) = 1;
+ TREE_USED (cfstring_class_reference) = 1;
+ DECL_ARTIFICIAL (cfstring_class_reference) = 1;
+ (*lang_hooks.decls.pushdecl) (cfstring_class_reference);
+ DECL_EXTERNAL (cfstring_class_reference) = 1;
+ rest_of_decl_compilation (cfstring_class_reference, 0, 0);
+
+ /* Initialize the hash table used to hold the constant CFString objects. */
+ cfstring_htab = htab_create_ggc (31, cfstring_hash,
+ cfstring_eq, NULL);
+}
+
+tree
+darwin_expand_tree_builtin (tree function, tree params,
+ tree coerced_params ATTRIBUTE_UNUSED)
+{
+ unsigned int fcode = DECL_FUNCTION_CODE (function);
+
+ switch (fcode)
+ {
+ case DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING:
+ if (!darwin_constant_cfstrings)
+ {
+ error ("built-in function `%s' requires `-fconstant-cfstrings' flag",
+ IDENTIFIER_POINTER (DECL_NAME (function)));
+ return error_mark_node;
+ }
+
+ return darwin_build_constant_cfstring (TREE_VALUE (params));
+ default:
+ break;
+ }
+
+ return NULL_TREE;
+}
+
+static hashval_t
+cfstring_hash (const void *ptr)
+{
+ tree str = ((struct cfstring_descriptor *)ptr)->literal;
+ const unsigned char *p = (const unsigned char *) TREE_STRING_POINTER (str);
+ int i, len = TREE_STRING_LENGTH (str);
+ hashval_t h = len;
+
+ for (i = 0; i < len; i++)
+ h = ((h * 613) + p[i]);
+
+ return h;
+}
+
+static int
+cfstring_eq (const void *ptr1, const void *ptr2)
+{
+ tree str1 = ((struct cfstring_descriptor *)ptr1)->literal;
+ tree str2 = ((struct cfstring_descriptor *)ptr2)->literal;
+ int len1 = TREE_STRING_LENGTH (str1);
+
+ return (len1 == TREE_STRING_LENGTH (str2)
+ && !memcmp (TREE_STRING_POINTER (str1), TREE_STRING_POINTER (str2),
+ len1));
+}
+
+tree
+darwin_construct_objc_string (tree str)
+{
+ if (!darwin_constant_cfstrings)
+ return NULL_TREE; /* Fall back to NSConstantString. */
+
+ return darwin_build_constant_cfstring (str);
+}
+
+bool
+darwin_constant_cfstring_p (tree str)
+{
+ struct cfstring_descriptor key;
+ void **loc;
+
+ if (!str)
+ return false;
+
+ STRIP_NOPS (str);
+
+ if (TREE_CODE (str) == ADDR_EXPR)
+ str = TREE_OPERAND (str, 0);
+
+ if (TREE_CODE (str) != STRING_CST)
+ return false;
+
+ key.literal = str;
+ loc = htab_find_slot (cfstring_htab, &key, NO_INSERT);
+
+ if (loc)
+ return true;
+
+ return false;
+}
+
+static tree
+darwin_build_constant_cfstring (tree str)
+{
+ struct cfstring_descriptor *desc, key;
+ void **loc;
+ tree addr;
+
+ if (!str)
+ goto invalid_string;
+
+ STRIP_NOPS (str);
+
+ if (TREE_CODE (str) == ADDR_EXPR)
+ str = TREE_OPERAND (str, 0);
+
+ if (TREE_CODE (str) != STRING_CST)
+ {
+ invalid_string:
+ error ("CFString literal expression is not constant");
+ return error_mark_node;
+ }
+
+ /* Perhaps we already constructed a constant CFString just like this one? */
+ key.literal = str;
+ loc = htab_find_slot (cfstring_htab, &key, INSERT);
+ desc = *loc;
+
+ if (!desc)
+ {
+ tree initlist, constructor, field = TYPE_FIELDS (ccfstring_type_node);
+ tree var;
+ int length = TREE_STRING_LENGTH (str) - 1;
+ /* FIXME: The CFString functionality should probably reside
+ in darwin-c.c. */
+ extern tree pushdecl_top_level (tree);
+
+ if (darwin_warn_nonportable_cfstrings)
+ {
+ extern int isascii (int);
+ const char *s = TREE_STRING_POINTER (str);
+ int l = 0;
+
+ for (l = 0; l < length; l++)
+ if (!s[l] || !isascii (s[l]))
+ {
+ warning ("%s in CFString literal",
+ s[l] ? "non-ASCII character" : "embedded NUL");
+ break;
+ }
+ }
+
+ *loc = desc = ggc_alloc (sizeof (*desc));
+ desc->literal = str;
+
+ initlist = build_tree_list
+ (field, build1 (ADDR_EXPR, pcint_type_node,
+ cfstring_class_reference));
+ field = TREE_CHAIN (field);
+ initlist = tree_cons (field, build_int_cst (NULL_TREE, 0x000007c8),
+ initlist);
+ field = TREE_CHAIN (field);
+ initlist = tree_cons (field,
+ build1 (ADDR_EXPR, pcchar_type_node,
+ str), initlist);
+ field = TREE_CHAIN (field);
+ initlist = tree_cons (field, build_int_cst (NULL_TREE, length),
+ initlist);
+
+ constructor = build_constructor (ccfstring_type_node,
+ nreverse (initlist));
+ TREE_READONLY (constructor) = 1;
+ TREE_CONSTANT (constructor) = 1;
+ TREE_STATIC (constructor) = 1;
+
+ /* Fromage: The C++ flavor of 'build_unary_op' expects constructor nodes
+ to have the TREE_HAS_CONSTRUCTOR (...) bit set. However, this file is
+ being built without any knowledge of C++ tree accessors; hence, we shall
+ use the generic accessor that TREE_HAS_CONSTRUCTOR actually maps to! */
+ if (darwin_running_cxx)
+ TREE_LANG_FLAG_4 (constructor) = 1; /* TREE_HAS_CONSTRUCTOR */
+
+ /* Create an anonymous global variable for this CFString. */
+ var = build_decl (CONST_DECL, NULL, TREE_TYPE (constructor));
+ DECL_INITIAL (var) = constructor;
+ TREE_STATIC (var) = 1;
+ pushdecl_top_level (var);
+ desc->constructor = var;
+ }
+
+ addr = build1 (ADDR_EXPR, pccfstring_type_node, desc->constructor);
+ TREE_CONSTANT (addr) = 1;
+
+ return addr;
+}
+
+/* APPLE LOCAL end constant cfstrings */
+
+/* APPLE LOCAL begin CW asm blocks */
+/* Assume labels like L_foo$stub etc in CW-style inline code are
+ intended to be taken as literal labels, and return the identifier,
+ otherwise return NULL signifying that we have no special
+ knowledge. */
+tree
+darwin_cw_asm_special_label (tree id)
+{
+ const char *name = IDENTIFIER_POINTER (id);
+
+ if (name[0] == 'L')
+ {
+ int len = strlen (name);
+
+ if ((len > 5 && strcmp (name + len - 5, "$stub") == 0)
+ || (len > 9 && strcmp (name + len - 9, "$lazy_ptr") == 0)
+ || (len > 13 && strcmp (name + len - 13, "$non_lazy_ptr") == 0))
+ return id;
+ }
+
+ return NULL_TREE;
+}
+/* APPLE LOCAL end CW asm blocks */
+
#include "gt-darwin.h"
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 027aa6839a3..6680f7c3406 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -40,6 +40,10 @@ Boston, MA 02111-1307, USA. */
#define OBJECT_FORMAT_MACHO
+/* APPLE LOCAL begin dynamic-no-pic */
+extern int machopic_symbol_defined_p (rtx);
+/* APPLE LOCAL end dynamic-no-pic */
+
/* Suppress g++ attempt to link in the math library automatically. */
#define MATH_LIBRARY ""
@@ -80,6 +84,12 @@ Boston, MA 02111-1307, USA. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
+/* APPLE LOCAL begin -Wfour-char-constants */
+/* Don't warn about MacOS-style 'APPL' four-char-constants. */
+#undef WARN_FOUR_CHAR_CONSTANTS
+#define WARN_FOUR_CHAR_CONSTANTS 0
+/* APPLE LOCAL end -Wfour-char-constants */
+
/* This table intercepts weirdo options whose names would interfere
with normal driver conventions, and either translates them into
standardly-named options, or adds a 'Z' so that they can get to
@@ -103,6 +113,10 @@ Boston, MA 02111-1307, USA. */
architecture. */
#define TARGET_OPTION_TRANSLATE_TABLE \
+/* APPLE LOCAL KEXT terminated-vtables */ \
+ { "-fterminated-vtables", "-fapple-kext" }, \
+/* APPLE LOCAL KEXT indirect-virtual-calls --sts */ \
+ { "-findirect-virtual-calls", "-fapple-kext" }, \
{ "-all_load", "-Zall_load" }, \
{ "-allowable_client", "-Zallowable_client" }, \
{ "-arch_errors_fatal", "-Zarch_errors_fatal" }, \
@@ -123,7 +137,8 @@ Boston, MA 02111-1307, USA. */
{ "-segs_read_only_addr", "-Zsegs_read_only_addr" }, \
{ "-segs_read_write_addr", "-Zsegs_read_write_addr" }, \
{ "-seg_addr_table", "-Zseg_addr_table" }, \
- { "-seg_addr_table_filename", "-Zseg_addr_table_filename" }, \
+ /* APPLE LOCAL why did I do that? -- mrs */ \
+ { "-seg_addr_table_filename", "-Zfn_seg_addr_table_filename" }, \
{ "-filelist", "-Xlinker -filelist -Xlinker" }, \
{ "-framework", "-Xlinker -framework -Xlinker" }, \
{ "-flat_namespace", "-Zflat_namespace" }, \
@@ -138,8 +153,28 @@ Boston, MA 02111-1307, USA. */
{ "-static", "-static -Wa,-static" }, \
{ "-single_module", "-Zsingle_module" }, \
{ "-unexported_symbols_list", "-Zunexported_symbols_list" }, \
+ /* APPLE LOCAL ObjC GC */ \
+ { "-fobjc-gc", "-fobjc-gc -Wno-non-lvalue-assign" }, \
+ /* APPLE LOCAL begin constant cfstrings */ \
+ { "-fconstant-cfstrings", "-mconstant-cfstrings" }, \
+ { "-fno-constant-cfstrings", "-mno-constant-cfstrings" }, \
+ { "-Wnonportable-cfstrings", "-mwarn-nonportable-cfstrings" }, \
+ { "-Wno-nonportable-cfstrings", "-mno-warn-nonportable-cfstrings" }, \
+ { "-fpascal-strings", "-mpascal-strings" }, \
+ { "-fno-pascal-strings", "-mno-pascal-strings" }, \
+ /* APPLE LOCAL end constant cfstrings */ \
SUBTARGET_OPTION_TRANSLATE_TABLE
+/* APPLE LOCAL begin constant cfstrings */
+extern int darwin_constant_cfstrings;
+extern const char *darwin_constant_cfstrings_switch;
+extern int darwin_warn_nonportable_cfstrings;
+extern const char *darwin_warn_nonportable_cfstrings_switch;
+extern int darwin_pascal_strings;
+extern const char *darwin_pascal_strings_switch;
+extern int darwin_running_cxx;
+/* APPLE LOCAL end constant cfstrings */
+
/* Nonzero if the user has chosen to force sizeof(bool) to be 1
by providing the -mone-byte-bool switch. It would be better
to use SUBTARGET_SWITCHES for this instead of SUBTARGET_OPTIONS,
@@ -147,6 +182,11 @@ Boston, MA 02111-1307, USA. */
that this switch has no "no-" variant. */
extern const char *darwin_one_byte_bool;
+/* APPLE LOCAL begin pragma reverse_bitfields */
+/* True if pragma reverse_bitfields is in effect. */
+extern int darwin_reverse_bitfields;
+/* APPLE LOCAL end pragma reverse_bitfields */
+
extern int darwin_fix_and_continue;
extern const char *darwin_fix_and_continue_switch;
@@ -156,7 +196,96 @@ extern const char *darwin_fix_and_continue_switch;
{"fix-and-continue", &darwin_fix_and_continue_switch, \
N_("Generate code suitable for fast turn around debugging"), 0}, \
{"no-fix-and-continue", &darwin_fix_and_continue_switch, \
- N_("Don't generate code suitable for fast turn around debugging"), 0}
+/* APPLE LOCAL begin constant cfstrings */ \
+ N_("Don't generate code suitable for fast turn around debugging"), 0}, \
+ {"constant-cfstrings", &darwin_constant_cfstrings_switch, \
+ N_("Generate compile-time CFString objects"), 0}, \
+ {"no-constant-cfstrings", &darwin_constant_cfstrings_switch, "", 0}, \
+ {"pascal-strings", &darwin_pascal_strings_switch, \
+ N_("Allow use of Pascal strings"), 0}, \
+ {"no-pascal-strings", &darwin_pascal_strings_switch, "", 0}, \
+ {"warn-nonportable-cfstrings", &darwin_warn_nonportable_cfstrings_switch, \
+ N_("Warn if constant CFString objects contain non-portable characters"), 0}, \
+ {"no-warn-nonportable-cfstrings", &darwin_warn_nonportable_cfstrings_switch, "", 0}
+
+#define SUBTARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__MACH__"); \
+ builtin_define ("__APPLE__"); \
+ if (darwin_constant_cfstrings) \
+ builtin_define ("__CONSTANT_CFSTRINGS__"); \
+ /* APPLE LOCAL begin pascal strings */ \
+ if (darwin_pascal_strings) \
+ { \
+ builtin_define ("__PASCAL_STRINGS__"); \
+ } \
+ /* APPLE LOCAL end pascal strings */ \
+ /* APPLE LOCAL begin ObjC GC */ \
+ if (flag_objc_gc) \
+ { \
+ builtin_define ("__strong=__attribute__((objc_gc(strong)))"); \
+ builtin_define ("__OBJC_GC__"); \
+ } \
+ else \
+ builtin_define ("__strong="); \
+ /* APPLE LOCAL end ObjC GC */ \
+ } \
+ while (0)
+
+#define SUBSUBTARGET_OVERRIDE_OPTIONS \
+do { \
+ /* APPLE LOCAL kext */ \
+ extern int flag_weak; \
+ if (darwin_constant_cfstrings_switch) \
+ { \
+ const char *base = darwin_constant_cfstrings_switch; \
+ while (base[-1] != 'm') base--; \
+ \
+ if (*darwin_constant_cfstrings_switch != '\0') \
+ error ("invalid option `%s'", base); \
+ darwin_constant_cfstrings = (base[0] != 'n'); \
+ } \
+ if (darwin_warn_nonportable_cfstrings_switch) \
+ { \
+ const char *base = darwin_warn_nonportable_cfstrings_switch; \
+ while (base[-1] != 'm') base--; \
+ \
+ if (*darwin_warn_nonportable_cfstrings_switch != '\0') \
+ error ("invalid option `%s'", base); \
+ darwin_warn_nonportable_cfstrings = (base[0] != 'n'); \
+ } \
+ if (darwin_pascal_strings_switch) \
+ { \
+ const char *base = darwin_pascal_strings_switch; \
+ while (base[-1] != 'm') base--; \
+ \
+ if (*darwin_pascal_strings_switch != '\0') \
+ error ("invalid option `%s'", base); \
+ darwin_pascal_strings = (base[0] != 'n'); \
+ if (darwin_pascal_strings) \
+ CPP_OPTION (parse_in, pascal_strings) = 1; \
+ } \
+ /* The c_dialect...() macros are not available to us here. */ \
+ darwin_running_cxx = (strstr (lang_hooks.name, "C++") != 0); \
+ /* APPLE LOCAL begin kexts --bowdidge */ \
+ /* kexts should always be built without the coalesced sections */ \
+ /* because the kernel loader doesn't grok such sections. */ \
+ if (flag_apple_kext) flag_weak = 0; \
+ /* APPLE LOCAL end kexts */ \
+} while(0)
+
+#define SUBTARGET_INIT_BUILTINS \
+do { \
+ darwin_init_cfstring_builtins (); \
+} while(0)
+
+#undef TARGET_EXPAND_TREE_BUILTIN
+#define TARGET_EXPAND_TREE_BUILTIN darwin_expand_tree_builtin
+#undef TARGET_CONSTRUCT_OBJC_STRING
+#define TARGET_CONSTRUCT_OBJC_STRING darwin_construct_objc_string
+
+/* APPLE LOCAL end constant cfstrings */
/* These compiler options take n arguments. */
@@ -185,7 +314,8 @@ extern const char *darwin_fix_and_continue_switch;
!strcmp (STR, "Zsegs_read_only_addr") ? 1 : \
!strcmp (STR, "Zsegs_read_write_addr") ? 1 : \
!strcmp (STR, "Zseg_addr_table") ? 1 : \
- !strcmp (STR, "Zseg_addr_table_filename") ?1 :\
+ /* APPLE LOCAL why did I do that? -- mrs */ \
+ !strcmp (STR, "Zfn_seg_addr_table_filename") ? 1 :\
!strcmp (STR, "seg1addr") ? 1 : \
!strcmp (STR, "segprot") ? 3 : \
!strcmp (STR, "sub_library") ? 1 : \
@@ -208,8 +338,15 @@ extern const char *darwin_fix_and_continue_switch;
isn't. */
#undef CPP_SPEC
-#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__}\
- -D__APPLE_CC__=1"
+/* APPLE LOCAL __APPLE__ setting, don't set __APPLE__ here, as we do it someplace else */
+#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__} \
+"/* APPLE LOCAL -arch */"\
+ %{arch}"
+
+/* APPLE LOCAL begin private extern */
+#undef CC1PLUS_SPEC
+#define CC1PLUS_SPEC "-D__private_extern__=extern"
+/* APPLE LOCAL end private extern */
/* This is mostly a clone of the standard LINK_COMMAND_SPEC, plus
precomp, libtool, and fat build additions. Also we
@@ -226,7 +363,8 @@ extern const char *darwin_fix_and_continue_switch;
%{!Zdynamiclib:%{A} %{e*} %{m} %{N} %{n} %{r} %{u*} %{x} %{z}} \
%{@:-o %f%u.out}%{!@:%{o*}%{!o:-o a.out}} \
%{!Zdynamiclib:%{!A:%{!nostdlib:%{!nostartfiles:%S}}}} \
- %{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate:-lgcov} \
+"/* APPLE LOCAL add fcreate-profile */"\
+ %{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate|fcreate-profile:-lgcov} \
%{!nostdlib:%{!nodefaultlibs:%G %L}} \
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}}"
@@ -291,8 +429,11 @@ extern const char *darwin_fix_and_continue_switch;
%{Zsegs_read_only_addr*:-segs_read_only_addr %*} \
%{Zsegs_read_write_addr*:-segs_read_write_addr %*} \
%{Zseg_addr_table*: -seg_addr_table %*} \
- %{Zseg_addr_table_filename*:-seg_addr_table_filename %*} \
+ "/* APPLE LOCAL why did I do that? -- mrs */" \
+ %{Zfn_seg_addr_table_filename*:-seg_addr_table_filename %*} \
%{sub_library*} %{sub_umbrella*} \
+ "/* APPLE LOCAL mainline 4.1 2005-06-03 */" \
+ %{isysroot*:-syslibroot %*} \
%{twolevel_namespace} %{twolevel_namespace_hints} \
%{umbrella*} \
%{undefined*} \
@@ -315,12 +456,14 @@ extern const char *darwin_fix_and_continue_switch;
#define LIB_SPEC "%{!static:-lSystem}"
#endif
+/* APPLE LOCAL begin libgcc_static.a */
/* -dynamiclib implies -shared-libgcc just like -shared would on linux. */
#define REAL_LIBGCC_SPEC \
- "%{static|static-libgcc:-lgcc -lgcc_eh}\
- %{!static:%{!static-libgcc:\
- %{!Zdynamiclib:%{!shared-libgcc:-lgcc -lgcc_eh}\
+ "%{static|static-libgcc:-lgcc_static} \
+ %{!static:%{!static-libgcc: \
+ %{!Zdynamiclib:%{!shared-libgcc:-lgcc -lgcc_eh} \
%{shared-libgcc:-lgcc_s -lgcc}} %{Zdynamiclib:-lgcc_s -lgcc}}}"
+/* APPLE LOCAL end libgcc_static.a */
/* We specify crt0.o as -lcrt0.o so that ld will search the library path. */
/* We don't want anything to do with crt2.o in the 64-bit case;
@@ -346,8 +489,11 @@ extern const char *darwin_fix_and_continue_switch;
/* #define ENDFILE_SPEC "" */
/* Default Darwin ASM_SPEC, very simple. */
+/* APPLE LOCAL begin radar 4161346 */
#define ASM_SPEC "-arch %(darwin_arch) \
- %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL}"
+ %{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \
+ %{!Zforce_cpusubtype_ALL:%{faltivec:-force_cpusubtype_ALL}}"
+/* APPLE LOCAL end radar 4161346 */
/* We use Dbx symbol format. */
@@ -368,6 +514,12 @@ extern const char *darwin_fix_and_continue_switch;
#define DEBUG_STR_SECTION "__DWARFA,__debug_str"
#define DEBUG_RANGES_SECTION "__DWARFA,__debug_ranges"
+/* APPLE LOCAL begin gdb only used symbols */
+/* Support option to generate stabs for only used symbols. */
+
+#define DBX_ONLY_USED_SYMBOLS
+/* APPLE LOCAL end gdb only used symbols */
+
/* When generating stabs debugging, use N_BINCL entries. */
#define DBX_USE_BINCL
@@ -447,6 +599,10 @@ extern const char *darwin_fix_and_continue_switch;
#undef INIT_SECTION_ASM_OP
#define INIT_SECTION_ASM_OP
+/* APPLE LOCAL begin static structors in __StaticInit section */
+#define STATIC_INIT_SECTION "__TEXT,__StaticInit,regular,pure_instructions"
+/* APPLE LOCAL end static structors in __StaticInit section */
+
#undef INVOKE__main
#define TARGET_ASM_CONSTRUCTOR machopic_asm_out_constructor
@@ -551,7 +707,14 @@ extern const char *darwin_fix_and_continue_switch;
machopic_validate_stub_or_non_lazy_ptr (xname); \
else if (len > 14 && !strcmp ("$non_lazy_ptr", xname + len - 13)) \
machopic_validate_stub_or_non_lazy_ptr (xname); \
- fputs (&xname[1], FILE); \
+ /* APPLE LOCAL begin mainline */ \
+ else if (len > 15 && !strcmp ("$non_lazy_ptr\"", xname + len - 14)) \
+ machopic_validate_stub_or_non_lazy_ptr (xname); \
+ if (xname[1] != '"' && name_needs_quotes (&xname[1])) \
+ fprintf (FILE, "\"%s\"", &xname[1]); \
+ else \
+ fputs (&xname[1], FILE); \
+ /* APPLE LOCAL end mainline */ \
} \
else if (xname[0] == '+' || xname[0] == '-') \
fprintf (FILE, "\"%s\"", xname); \
@@ -559,6 +722,10 @@ extern const char *darwin_fix_and_continue_switch;
fprintf (FILE, "L%s", xname); \
else if (!strncmp (xname, ".objc_class_name_", 17)) \
fprintf (FILE, "%s", xname); \
+ /* APPLE LOCAL begin mainline */ \
+ else if (xname[0] != '"' && name_needs_quotes (xname)) \
+ fprintf (FILE, "\"%s\"", xname); \
+ /* APPLE LOCAL end mainline */ \
else \
asm_fprintf (FILE, "%U%s", xname); \
} while (0)
@@ -642,12 +809,22 @@ FUNCTION (void) \
in_objc_image_info, \
in_objc_class_names, in_objc_meth_var_names, \
in_objc_meth_var_types, in_objc_cls_refs, \
+ /* APPLE LOCAL constant cfstrings */ \
+ in_cfstring_constant_object, \
in_machopic_nl_symbol_ptr, \
in_machopic_lazy_symbol_ptr, \
+ /* APPLE LOCAL begin dynamic-no-pic */ \
+ in_machopic_lazy_symbol_ptr2, \
+ in_machopic_lazy_symbol_ptr3, \
+ /* APPLE LOCAL end dynamic-no-pic */ \
in_machopic_symbol_stub, \
in_machopic_symbol_stub1, \
in_machopic_picsymbol_stub, \
in_machopic_picsymbol_stub1, \
+ /* APPLE LOCAL dynamic-no-pic */ \
+ in_machopic_picsymbol_stub2, \
+ /* APPLE LOCAL deep branch prediction pic-base */ \
+ in_darwin_textcoal_nt, \
in_darwin_exception, in_darwin_eh_frame, \
num_sections
@@ -658,10 +835,8 @@ SECTION_FUNCTION (text_coal_section, \
in_text_coal, \
".section __TEXT,__textcoal_nt,coalesced," \
"pure_instructions", 0) \
-SECTION_FUNCTION (text_unlikely_section, \
- in_text_unlikely, \
- ".section __TEXT,__text_unlikely,coalesced," \
- "pure_instructions", 0) \
+/* APPLE LOCAL mainline 2005-04-15 <radar 4078608> */ \
+/* SECTION_FUNCTION (text_unlikely_section) removed. */ \
SECTION_FUNCTION (text_unlikely_coal_section, \
in_text_unlikely_coal, \
".section __TEXT,__text_unlikely_coal," \
@@ -751,6 +926,14 @@ SECTION_FUNCTION (objc_constant_string_object_section, \
in_objc_constant_string_object, \
".section __OBJC, __cstring_object, regular, " \
"no_dead_strip", 1) \
+/* APPLE LOCAL begin constant cfstrings */ \
+/* Unlike constant NSStrings, constant CFStrings do not live */\
+/* in the __OBJC segment since they may also occur in pure C */\
+/* or C++ programs. */\
+SECTION_FUNCTION (cfstring_constant_object_section, \
+ in_cfstring_constant_object, \
+ ".section __DATA, __cfstring", 0) \
+/* APPLE LOCAL end constant cfstrings */ \
/* Fix-and-Continue image marker. */ \
SECTION_FUNCTION (objc_image_info_section, \
in_objc_image_info, \
@@ -772,6 +955,14 @@ SECTION_FUNCTION (objc_cls_refs_section, \
SECTION_FUNCTION (machopic_lazy_symbol_ptr_section, \
in_machopic_lazy_symbol_ptr, \
".lazy_symbol_pointer", 0) \
+/* APPLE LOCAL begin dynamic-no-pic */ \
+SECTION_FUNCTION (machopic_lazy_symbol_ptr2_section, \
+ in_machopic_lazy_symbol_ptr2, \
+ ".section __DATA, __la_sym_ptr2,lazy_symbol_pointers", 0) \
+SECTION_FUNCTION (machopic_lazy_symbol_ptr3_section, \
+ in_machopic_lazy_symbol_ptr3, \
+ ".section __DATA, __la_sym_ptr3,lazy_symbol_pointers", 0) \
+/* APPLE LOCAL end dynamic-no-pic */ \
SECTION_FUNCTION (machopic_nl_symbol_ptr_section, \
in_machopic_nl_symbol_ptr, \
".non_lazy_symbol_pointer", 0) \
@@ -789,6 +980,16 @@ SECTION_FUNCTION (machopic_picsymbol_stub1_section, \
in_machopic_picsymbol_stub1, \
".section __TEXT,__picsymbolstub1,symbol_stubs," \
"pure_instructions,32", 0) \
+/* APPLE LOCAL begin dynamic-no-pic */ \
+SECTION_FUNCTION (machopic_picsymbol_stub2_section, \
+ in_machopic_picsymbol_stub2, \
+ ".section __TEXT,__picsymbolstub2,symbol_stubs,pure_instructions,25", 0) \
+/* APPLE LOCAL end dynamic-no-pic */ \
+/* APPLE LOCAL begin deep branch prediction pic-base */ \
+SECTION_FUNCTION (darwin_textcoal_nt_section, \
+ in_darwin_textcoal_nt, \
+ ".section __TEXT,__textcoal_nt,coalesced,no_toc", 0)\
+/* APPLE LOCAL end deep branch prediction pic-base */ \
SECTION_FUNCTION (darwin_exception_section, \
in_darwin_exception, \
".section __DATA,__gcc_except_tab", 0) \
@@ -870,6 +1071,13 @@ objc_section_init (void) \
#define GLOBAL_ASM_OP ".globl "
#define TARGET_ASM_GLOBALIZE_LABEL darwin_globalize_label
+/* APPLE LOCAL begin weak definition */
+#define ASM_WEAK_DEFINITIONIZE_LABEL(FILE, NAME) \
+ do { const char* _x = (NAME); if (!!strncmp (_x, "_OBJC_", 6)) { \
+ fputs (".weak_definition ", FILE); assemble_name (FILE, _x); \
+ fputs ("\n", FILE); }} while (0)
+/* APPLE LOCAL end weak definition */
+
/* Emit an assembler directive to set visibility for a symbol. Used
to support visibility attribute and Darwin's private extern
feature. */
@@ -879,6 +1087,12 @@ objc_section_init (void) \
/* Extra attributes for Darwin. */
#define SUBTARGET_ATTRIBUTE_TABLE \
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ \
+ /* APPLE LOCAL begin KEXT double destructor */ \
+ { "apple_kext_compatibility", 0, 0, false, true, false, \
+ darwin_handle_odd_attribute }, \
+ /* APPLE LOCAL end KEXT double destructor */ \
+ /* APPLE LOCAL ObjC GC */ \
+ { "objc_gc", 1, 1, 0, 0, 0, darwin_handle_objc_gc_attribute }, \
{ "weak_import", 0, 0, true, false, false, \
darwin_handle_weak_import_attribute }
@@ -925,6 +1139,12 @@ enum machopic_addr_class {
#undef TARGET_STRIP_NAME_ENCODING
#define TARGET_STRIP_NAME_ENCODING default_strip_name_encoding
+/* APPLE LOCAL begin what is this for? */
+/* Be conservative and always redo the encoding. */
+
+#define REDO_SECTION_INFO_P(DECL) (1)
+/* APPLE LOCAL end what is this for? */
+
#define GEN_BINDER_NAME_FOR_STUB(BUF,STUB,STUB_LENGTH) \
do { \
const char *const stub_ = (STUB); \
@@ -1013,6 +1233,19 @@ enum machopic_addr_class {
#define JUMP_TABLES_IN_TEXT_SECTION 1
#endif
+/* APPLE LOCAL begin OS pragma hook */
+#define REGISTER_OS_PRAGMAS() \
+ do { \
+ /* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */ \
+ c_register_pragma (0, "pack", darwin_pragma_pack); \
+ /* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */ \
+ /* APPLE LOCAL begin CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */ \
+ c_register_pragma (0, "CALL_ON_LOAD", darwin_pragma_call_on_load); \
+ c_register_pragma (0, "CALL_ON_UNLOAD", darwin_pragma_call_on_unload); \
+ /* APPLE LOCAL end CALL_ON_LOAD/CALL_ON_UNLOAD pragmas 20020202 --turly */ \
+ } while (0)
+/* APPLE LOCAL end OS pragma hook */
+
#define TARGET_TERMINATE_DW2_EH_FRAME_INFO false
#undef TARGET_ASM_NAMED_SECTION
@@ -1023,8 +1256,95 @@ enum machopic_addr_class {
c_register_pragma (0, "mark", darwin_pragma_ignore); \
c_register_pragma (0, "options", darwin_pragma_options); \
c_register_pragma (0, "segment", darwin_pragma_ignore); \
+ /* APPLE LOCAL pragma fenv */ \
+ c_register_pragma ("GCC", "fenv", darwin_pragma_fenv); \
c_register_pragma (0, "unused", darwin_pragma_unused); \
+ /* APPLE LOCAL begin pragma reverse_bitfields */ \
+ c_register_pragma (0, "reverse_bitfields", \
+ darwin_pragma_reverse_bitfields); \
+ /* APPLE LOCAL end pragma reverse_bitfields */ \
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */\
+ c_register_pragma (0, "optimization_level", \
+ darwin_pragma_opt_level); \
+ c_register_pragma (0, "optimize_for_size", \
+ darwin_pragma_opt_size); \
+ c_register_pragma ("GCC", "optimization_level", \
+ darwin_pragma_opt_level); \
+ c_register_pragma ("GCC", "optimize_for_size", \
+ darwin_pragma_opt_size); \
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */ \
+ /* APPLE LOCAL begin too many changes confuse diff */ \
+ } while (0)
+/* APPLE LOCAL end too many changes confuse diff */
+
+/* APPLE LOCAL begin insert assembly ".abort" directive on fatal error */
+#define EXIT_FROM_FATAL_DIAGNOSTIC(status) abort_assembly_and_exit (status)
+extern void abort_assembly_and_exit (int status) ATTRIBUTE_NORETURN;
+/* APPLE LOCAL end insert assembly ".abort" directive on fatal error */
+
+/* APPLE LOCAL begin Macintosh alignment 2002-2-13 --ff */
+#ifdef RS6000_VECTOR_ALIGNMENT
+/* When adjusting (lowering) the alignment of fields when in the
+ mac68k alignment mode, the 128-bit alignment of vectors *MUST*
+ be preserved. */
+#define PEG_ALIGN_FOR_MAC68K(DESIRED) \
+ ((TARGET_ALTIVEC && (DESIRED) == RS6000_VECTOR_ALIGNMENT) \
+ ? RS6000_VECTOR_ALIGNMENT \
+ : MIN ((DESIRED), 16))
+#else
+#define PEG_ALIGN_FOR_MAC68K(DESIRED) MIN ((DESIRED), 16)
+#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-13 --ff */
+
+/* APPLE LOCAL begin KEXT double destructor */
+/* Need a mechanism to tell whether a C++ operator delete is empty so
+ we overload TREE_SIDE_EFFECTS here (it is unused for FUNCTION_DECLS.)
+ Fromage, c'est moi! */
+#define CHECK_TRIVIAL_FUNCTION(DECL) \
+ do { \
+ const char *_name = IDENTIFIER_POINTER (DECL_NAME (DECL)); \
+ if (flag_apple_kext && DECL_SAVED_TREE (DECL) \
+ && strstr (_name, "operator delete") \
+ && TREE_CODE (DECL_SAVED_TREE (DECL)) == COMPOUND_STMT \
+ && compound_body_is_empty_p ( \
+ COMPOUND_BODY (DECL_SAVED_TREE (DECL))))\
+ TREE_SIDE_EFFECTS (DECL) = 1; \
+ } while (0)
+
+/* gcc3 initialises the vptr field of all objects so that it points at the
+ first virtual function slot, NOT the base address of the vtable proper.
+ This is different from gcc2.95 which always initialised the vptr to
+ point at the base address of the vtable. The difference here is 8 bytes.
+ So, for 2.95 compatibility, we need to:
+
+ (1) subtract 8 from the vptr initialiser, and
+ (2) add 2 to every vfunc index. (2 * 4 == 8.)
+
+ This is getting ever cheesier. */
+
+#define VPTR_INITIALIZER_ADJUSTMENT 8
+#define ADJUST_VTABLE_INDEX(IDX, VTBL) \
+ do { \
+ if (flag_apple_kext) \
+ (IDX) = fold (build2 (PLUS_EXPR, TREE_TYPE (IDX), IDX, size_int (2))); \
+ } while (0)
+/* APPLE LOCAL end KEXT double destructor */
+
+/* APPLE LOCAL begin zerofill 20020218 --turly */
+/* This keeps uninitialized data from bloating the data when -fno-common.
+ Radar 2863107. */
+#define ASM_OUTPUT_ZEROFILL(FILE, NAME, SIZE, ALIGNMENT) \
+ do { \
+ unsigned HOST_WIDE_INT _new_size = SIZE; \
+ if (_new_size == 0) _new_size = 1; \
+ fputs (".zerofill __DATA, __common, ", (FILE)); \
+ assemble_name ((FILE), (NAME)); \
+ fprintf ((FILE), ", " HOST_WIDE_INT_PRINT_DEC, _new_size); \
+ fprintf ((FILE), ", " HOST_WIDE_INT_PRINT_DEC "\n", \
+ (HOST_WIDE_INT) (ALIGNMENT)); \
+ in_section = no_section; \
} while (0)
+/* APPLE LOCAL end zerofill 20020218 --turly */
#undef ASM_APP_ON
#define ASM_APP_ON ""
@@ -1046,6 +1366,12 @@ void add_framework_path (char *);
#define TARGET_C99_FUNCTIONS 0
#endif
+/* APPLE LOCAL begin KEXT ctors return this */
+/* For Apple KEXTs, we make the constructors return this to match gcc
+ 2.95. */
+#define TARGET_CXX_CDTOR_RETURNS_THIS (flag_apple_kext_p)
+/* APPLE LOCAL end KEXT ctors return this */
+
#define WINT_TYPE "int"
#endif /* CONFIG_DARWIN_H */
diff --git a/gcc/config/darwin8.h b/gcc/config/darwin8.h
index 6a061a41caf..639cb911c66 100644
--- a/gcc/config/darwin8.h
+++ b/gcc/config/darwin8.h
@@ -22,11 +22,13 @@ Boston, MA 02111-1307, USA. */
/* Darwin 7.0 and above have C99 functions. */
#define TARGET_C99_FUNCTIONS 1
-/* Machine dependent libraries. Include libmx when compiling on Darwin 7.0
- and above. Include libSystemStubs when compiling on 8.0 and above and
- not 64-bit long double. */
+/* Machine dependent libraries. Include libmx when compiling on
+ Darwin 7.0 and above, but before libSystem, since the functions are
+ actually in libSystem but for 7.x compatibility we want them to be
+ looked for in libmx first. Include libSystemStubs when compiling
+ on 8.0 and above and not 64-bit long double. */
#undef LIB_SPEC
#define LIB_SPEC "%{!static:\
%{!mlong-double-64:%{pg:-lSystemStubs_profile;:-lSystemStubs}} \
- -lSystem -lmx}"
+ -lmx -lSystem}"
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c
index c45145864aa..25b2f7610d9 100644
--- a/gcc/config/frv/frv.c
+++ b/gcc/config/frv/frv.c
@@ -1876,7 +1876,7 @@ frv_function_epilogue (FILE *file ATTRIBUTE_UNUSED,
memset (&frv_ifcvt.tmp_reg, 0, sizeof (frv_ifcvt.tmp_reg));
/* Release the bitmap of created insns. */
- BITMAP_XFREE (frv_ifcvt.scratch_insns_bitmap);
+ BITMAP_FREE (frv_ifcvt.scratch_insns_bitmap);
}
@@ -7722,7 +7722,7 @@ frv_ifcvt_modify_final (ce_if_block_t *ce_info ATTRIBUTE_UNUSED)
{
rtx insn = emit_insn_before (frv_ifcvt.scratch_regs[i], existing_insn);
if (! frv_ifcvt.scratch_insns_bitmap)
- frv_ifcvt.scratch_insns_bitmap = BITMAP_XMALLOC ();
+ frv_ifcvt.scratch_insns_bitmap = BITMAP_ALLOC (NULL);
bitmap_set_bit (frv_ifcvt.scratch_insns_bitmap, INSN_UID (insn));
frv_ifcvt.scratch_regs[i] = NULL_RTX;
}
diff --git a/gcc/config/host-darwin.c b/gcc/config/host-darwin.c
new file mode 100644
index 00000000000..aea98929a83
--- /dev/null
+++ b/gcc/config/host-darwin.c
@@ -0,0 +1,83 @@
+/* APPLE LOCAL begin mainline 2005-04-06 4071679 */
+/* Darwin host-specific hook definitions.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include <sys/mman.h>
+#include "toplev.h"
+#include "config/host-darwin.h"
+
+/* Yes, this is really supposed to work. */
+static char pch_address_space[1024*1024*1024] __attribute__((aligned (4096)));
+
+/* Return the address of the PCH address space, if the PCH will fit in it. */
+
+void *
+darwin_gt_pch_get_address (size_t sz, int fd ATTRIBUTE_UNUSED)
+{
+ if (sz <= sizeof (pch_address_space))
+ return pch_address_space;
+ else
+ return NULL;
+}
+
+/* Check ADDR and SZ for validity, and deallocate (using munmap) that part of
+ pch_address_space beyond SZ. */
+
+int
+darwin_gt_pch_use_address (void *addr, size_t sz, int fd, size_t off)
+{
+ const size_t pagesize = getpagesize();
+ void *mmap_result;
+ int ret;
+
+ if ((size_t)pch_address_space % pagesize != 0
+ || sizeof (pch_address_space) % pagesize != 0)
+ abort ();
+
+ ret = (addr == pch_address_space && sz <= sizeof (pch_address_space));
+ if (! ret)
+ sz = 0;
+
+ /* Round the size to a whole page size. Normally this is a no-op. */
+ sz = (sz + pagesize - 1) / pagesize * pagesize;
+
+ if (munmap (pch_address_space + sz, sizeof (pch_address_space) - sz) != 0)
+ fatal_error ("couldn't unmap pch_address_space: %m\n");
+
+ if (ret)
+ {
+ mmap_result = mmap (addr, sz,
+ PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED,
+ fd, off);
+
+ /* The file might not be mmap-able. */
+ ret = mmap_result != (void *) MAP_FAILED;
+
+ /* Sanity check for broken MAP_FIXED. */
+ if (ret && mmap_result != addr)
+ abort ();
+ }
+
+ return ret;
+}
+/* APPLE LOCAL end mainline 2005-04-06 4071679 */
diff --git a/gcc/config/host-darwin.h b/gcc/config/host-darwin.h
new file mode 100644
index 00000000000..6878b379b43
--- /dev/null
+++ b/gcc/config/host-darwin.h
@@ -0,0 +1,30 @@
+/* APPLE LOCAL begin mainline 2005-04-06 4071679 */
+/* Darwin host-specific hook definitions.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA. */
+
+extern void * darwin_gt_pch_get_address (size_t sz, int fd);
+extern int darwin_gt_pch_use_address (void *addr, size_t sz, int fd,
+ size_t off);
+
+#undef HOST_HOOKS_GT_PCH_GET_ADDRESS
+#define HOST_HOOKS_GT_PCH_GET_ADDRESS darwin_gt_pch_get_address
+#undef HOST_HOOKS_GT_PCH_USE_ADDRESS
+#define HOST_HOOKS_GT_PCH_USE_ADDRESS darwin_gt_pch_use_address
+/* APPLE LOCAL end mainline 2005-04-06 4071679 */
diff --git a/gcc/config/host-linux.c b/gcc/config/host-linux.c
index 7683c720c05..0b17c6a19cd 100644
--- a/gcc/config/host-linux.c
+++ b/gcc/config/host-linux.c
@@ -1,5 +1,5 @@
/* Linux host-specific hook definitions.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/i386/cygwin1.c b/gcc/config/i386/cygwin1.c
index 2cab96c195c..88c44fc9fbf 100644
--- a/gcc/config/i386/cygwin1.c
+++ b/gcc/config/i386/cygwin1.c
@@ -30,13 +30,13 @@ mingw_scan (int argc ATTRIBUTE_UNUSED,
const char *const *argv,
char **spec_machine)
{
- putenv ("GCC_CYGWIN_MINGW=0");
+ putenv (xstrdup ("GCC_CYGWIN_MINGW=0"));
while (*++argv)
if (strcmp (*argv, "-mno-win32") == 0)
- putenv ("GCC_CYGWIN_WIN32=0");
+ putenv (xstrdup ("GCC_CYGWIN_WIN32=0"));
else if (strcmp (*argv, "-mwin32") == 0)
- putenv ("GCC_CYGWIN_WIN32=1");
+ putenv (xstrdup ("GCC_CYGWIN_WIN32=1"));
else if (strcmp (*argv, "-mno-cygwin") == 0)
{
char *p = strstr (*spec_machine, "-cygwin");
@@ -48,7 +48,7 @@ mingw_scan (int argc ATTRIBUTE_UNUSED,
strcpy (s + len, "-mingw32");
*spec_machine = s;
}
- putenv ("GCC_CYGWIN_MINGW=1");
+ putenv (xstrdup ("GCC_CYGWIN_MINGW=1"));
}
return;
}
diff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h
index ec816259bde..3b8c091efc7 100644
--- a/gcc/config/i386/darwin.h
+++ b/gcc/config/i386/darwin.h
@@ -1,5 +1,6 @@
/* Target definitions for x86 running Darwin.
- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+ APPLE LOCAL mainline 2005-04-11
+ Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
Contributed by Apple Computer Inc.
This file is part of GCC.
@@ -25,13 +26,19 @@ Boston, MA 02111-1307, USA. */
#define TARGET_VERSION fprintf (stderr, " (i686 Darwin)");
+/* APPLE LOCAL begin mainline 2005-04-11 4010614 */
+#undef TARGET_FPMATH_DEFAULT
+#define TARGET_FPMATH_DEFAULT (TARGET_SSE ? FPMATH_SSE : FPMATH_387)
+/* APPLE LOCAL end mainline 2005-04-11 4010614 */
+
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__i386__"); \
builtin_define ("__LITTLE_ENDIAN__"); \
- builtin_define ("__MACH__"); \
- builtin_define ("__APPLE__"); \
+ /* APPLE LOCAL remove __MACH__ and __APPLE__, defined in gcc/config/darwin.h */\
+ /* APPLE LOCAL constant cfstrings */ \
+ SUBTARGET_OS_CPP_BUILTINS (); \
} \
while (0)
@@ -39,17 +46,34 @@ Boston, MA 02111-1307, USA. */
the kernel or some such. */
#undef CC1_SPEC
-#define CC1_SPEC "%{!static:-fPIC}\
- %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }}"
+/* APPLE LOCAL begin dynamic-no-pic */
+#define CC1_SPEC "\
+%{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \
+"/* APPLE LOCAL ignore -mcpu=G4 -mcpu=G5 */"\
+%{!static:%{!mdynamic-no-pic:-fPIC}} %<faltivec %<mno-fused-madd %<mlong-branch %<mlongcall %<mcpu=G4 %<mcpu=G5"
+/* APPLE LOCAL end dynamic-no-pic */
+
+/* APPLE LOCAL AltiVec */
+#define CPP_ALTIVEC_SPEC "%<faltivec"
#undef ASM_SPEC
-#define ASM_SPEC "-arch i686 -force_cpusubtype_ALL"
+/* APPLE LOCAL mainline 2005-04-11 */
+#define ASM_SPEC "-arch i386 -force_cpusubtype_ALL"
#undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \
- { "darwin_arch", "i686" }, \
- { "darwin_subarch", "%{march=pentium3:pentIIm3;:i686}" },
-
+ /* APPLE LOCAL begin mainline 2005-04-11 */ \
+ { "darwin_arch", "i386" }, \
+ { "darwin_subarch", "i386" },
+ /* APPLE LOCAL end mainline 2005-04-11 */
+
+/* APPLE LOCAL begin 4078600 */
+/* Support for configure-time defaults of some command line options. */
+#undef OPTION_DEFAULT_SPECS
+#define OPTION_DEFAULT_SPECS \
+ {"arch", "%{!march=*:-march=%(VALUE)}"}, \
+ {"tune", "%{!mtune=*:-mtune=%(VALUE)}"}
+/* APPLE LOCAL end 4078600 */
/* Use the following macro for any Darwin/x86-specific command-line option
translation. */
@@ -67,6 +91,12 @@ Boston, MA 02111-1307, USA. */
#define SHIFT_DOUBLE_OMITS_COUNT 0
+/* APPLE LOCAL begin deep branch prediction pic-base */
+extern void darwin_x86_file_end (void);
+#undef TARGET_ASM_FILE_END
+#define TARGET_ASM_FILE_END darwin_x86_file_end
+/* APPLE LOCAL end deep branch prediction pic-base */
+
/* Define the syntax of pseudo-ops, labels and comments. */
/* String containing the assembler's comment-starter. */
@@ -76,17 +106,16 @@ Boston, MA 02111-1307, USA. */
/* By default, target has a 80387, uses IEEE compatible arithmetic,
and returns float values in the 387. */
-#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
-
-/* TARGET_DEEP_BRANCH_PREDICTION is incompatible with Mach-O PIC. */
+/* APPLE LOCAL temporary not ALIGN_DOUBLE */
+#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_128BIT_LONG_DOUBLE | (0 & MASK_ALIGN_DOUBLE))
-#undef TARGET_DEEP_BRANCH_PREDICTION
-#define TARGET_DEEP_BRANCH_PREDICTION 0
+/* APPLE LOCAL begin dynamic-no-pic */
+/* Darwin switches. */
+/* Use dynamic-no-pic codegen (no picbase reg; not suitable for shlibs.) */
+#define MASK_MACHO_DYNAMIC_NO_PIC (0x00800000)
-/* For now, disable dynamic-no-pic. We'll need to go through i386.c
- with a fine-tooth comb looking for refs to flag_pic! */
-#define MASK_MACHO_DYNAMIC_NO_PIC 0
-#define TARGET_DYNAMIC_NO_PIC (target_flags & MASK_MACHO_DYNAMIC_NO_PIC)
+#define TARGET_DYNAMIC_NO_PIC (target_flags & MASK_MACHO_DYNAMIC_NO_PIC)
+/* APPLE LOCAL end dynamic-no-pic */
/* Define the syntax of pseudo-ops, labels and comments. */
@@ -131,6 +160,37 @@ Boston, MA 02111-1307, USA. */
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED"\n", (ROUNDED)))
+
+/* APPLE LOCAL begin Macintosh alignment 2002-2-19 --ff */
+#define MASK_ALIGN_NATURAL 0x40000000
+#define TARGET_ALIGN_NATURAL (target_flags & MASK_ALIGN_NATURAL)
+#define rs6000_alignment_flags target_flags
+#define MASK_ALIGN_MAC68K 0x20000000
+#define TARGET_ALIGN_MAC68K (target_flags & MASK_ALIGN_MAC68K)
+
+#define REGISTER_TARGET_PRAGMAS DARWIN_REGISTER_TARGET_PRAGMAS
+
+#define ROUND_TYPE_ALIGN(TYPE, COMPUTED, SPECIFIED) \
+ (((TREE_CODE (TYPE) == RECORD_TYPE \
+ || TREE_CODE (TYPE) == UNION_TYPE \
+ || TREE_CODE (TYPE) == QUAL_UNION_TYPE) \
+ && TARGET_ALIGN_MAC68K \
+ && MAX (COMPUTED, SPECIFIED) == 8) ? 16 \
+ : MAX (COMPUTED, SPECIFIED))
+
+#undef SUBTARGET_SWITCHES
+#define SUBTARGET_SWITCHES \
+ {"align-mac68k", MASK_ALIGN_MAC68K, \
+ N_("Align structs and unions according to mac68k rules")}, \
+ {"align-power", - (MASK_ALIGN_MAC68K | MASK_ALIGN_NATURAL), \
+ N_("Align structs and unions according to PowerPC rules")}, \
+ {"align-natural", MASK_ALIGN_NATURAL, \
+ N_("Align structs and unions according to natural rules")}, \
+ {"dynamic-no-pic", MASK_MACHO_DYNAMIC_NO_PIC, \
+ N_("Generate code suitable for executables (NOT shared libs)")},\
+ {"no-dynamic-no-pic", -MASK_MACHO_DYNAMIC_NO_PIC, ""},
+/* APPLE LOCAL end Macintosh alignment 2002-2-19 --ff */
+
/* Darwin profiling -- call mcount. */
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
@@ -143,3 +203,32 @@ Boston, MA 02111-1307, USA. */
} \
else fprintf (FILE, "\tcall mcount\n"); \
} while (0)
+
+/* APPLE LOCAL begin SSE stack alignment */
+#define BASIC_STACK_BOUNDARY (128)
+/* APPLE LOCAL end SSE stack alignment */
+
+/* APPLE LOCAL begin fix-and-continue x86 */
+#undef SUBTARGET_OVERRIDE_OPTIONS
+#define SUBTARGET_OVERRIDE_OPTIONS \
+ do { \
+ /* Handle -mfix-and-continue. */ \
+ if (darwin_fix_and_continue_switch) \
+ { \
+ const char *base = darwin_fix_and_continue_switch; \
+ while (base[-1] != 'm') base--; \
+ \
+ if (*darwin_fix_and_continue_switch != '\0') \
+ error ("invalid option %qs", base); \
+ darwin_fix_and_continue = (base[0] != 'n'); \
+ } \
+ } while (0)
+
+/* True, iff we're generating fast turn around debugging code. When
+ true, we arrange for function prologues to start with 6 nops so
+ that gdb may insert code to redirect them, and for data to be
+ accessed indirectly. The runtime uses this indirection to forward
+ references for data to the original instance of that data. */
+
+#define TARGET_FIX_AND_CONTINUE (darwin_fix_and_continue)
+/* APPLE LOCAL end fix-and-continue x86 */
diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
index 3bf5fd81ff1..0753ec5eeed 100644
--- a/gcc/config/i386/emmintrin.h
+++ b/gcc/config/i386/emmintrin.h
@@ -1,3 +1,4 @@
+/* APPLE LOCAL file mainline 2005-06-30 Radar 4131077 */
/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -48,89 +49,89 @@ typedef __v2df __m128d;
(((fp1) << 1) | (fp0))
/* Create a vector with element 0 as F and the rest zero. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_set_sd (double __F)
{
return (__m128d){ __F, 0 };
}
/* Create a vector with both elements equal to F. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_set1_pd (double __F)
{
return (__m128d){ __F, __F };
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_set_pd1 (double __F)
{
return _mm_set1_pd (__F);
}
/* Create a vector with the lower value X and upper value W. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_set_pd (double __W, double __X)
{
return (__m128d){ __X, __W };
}
/* Create a vector with the lower value W and upper value X. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_setr_pd (double __W, double __X)
{
return (__m128d){ __W, __X };
}
/* Create a vector of zeros. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_setzero_pd (void)
{
return (__m128d){ 0.0, 0.0 };
}
/* Sets the low DPFP value of A from the low value of B. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_move_sd (__m128d __A, __m128d __B)
{
return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
}
/* Load two DPFP values from P. The address must be 16-byte aligned. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_load_pd (double const *__P)
{
return *(__m128d *)__P;
}
/* Load two DPFP values from P. The address need not be 16-byte aligned. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_loadu_pd (double const *__P)
{
return __builtin_ia32_loadupd (__P);
}
/* Create a vector with all two elements equal to *P. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_load1_pd (double const *__P)
{
return _mm_set1_pd (*__P);
}
/* Create a vector with element 0 as *P and the rest zero. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_load_sd (double const *__P)
{
return _mm_set_sd (*__P);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_load_pd1 (double const *__P)
{
return _mm_load1_pd (__P);
}
/* Load two DPFP values in reverse order. The address must be aligned. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_loadr_pd (double const *__P)
{
__m128d __tmp = _mm_load_pd (__P);
@@ -138,34 +139,34 @@ _mm_loadr_pd (double const *__P)
}
/* Store two DPFP values. The address must be 16-byte aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_pd (double *__P, __m128d __A)
{
*(__m128d *)__P = __A;
}
/* Store two DPFP values. The address need not be 16-byte aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storeu_pd (double *__P, __m128d __A)
{
__builtin_ia32_storeupd (__P, __A);
}
/* Stores the lower DPFP value. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_sd (double *__P, __m128d __A)
{
*__P = __builtin_ia32_vec_ext_v2df (__A, 0);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storel_pd (double *__P, __m128d __A)
{
_mm_store_sd (__P, __A);
}
/* Stores the upper DPFP value. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storeh_pd (double *__P, __m128d __A)
{
*__P = __builtin_ia32_vec_ext_v2df (__A, 1);
@@ -173,240 +174,240 @@ _mm_storeh_pd (double *__P, __m128d __A)
/* Store the lower DPFP value across two words.
The address must be 16-byte aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store1_pd (double *__P, __m128d __A)
{
_mm_store_pd (__P, __builtin_ia32_shufpd (__A, __A, _MM_SHUFFLE2 (0,0)));
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_pd1 (double *__P, __m128d __A)
{
_mm_store1_pd (__P, __A);
}
/* Store two DPFP values in reverse order. The address must be aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storer_pd (double *__P, __m128d __A)
{
_mm_store_pd (__P, __builtin_ia32_shufpd (__A, __A, _MM_SHUFFLE2 (0,1)));
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvtsi128_si32 (__m128i __A)
{
return __builtin_ia32_vec_ext_v4si ((__v4si)__A, 0);
}
#ifdef __x86_64__
-static __inline long long
+static __inline long long __attribute__((__always_inline__))
_mm_cvtsi128_si64x (__m128i __A)
{
return __builtin_ia32_vec_ext_v2di ((__v2di)__A, 0);
}
#endif
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_add_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_addpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_add_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_addsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_sub_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_subpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_sub_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_subsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_mul_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_mulpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_mul_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_mulsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_div_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_divpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_div_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_divsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_sqrt_pd (__m128d __A)
{
return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A);
}
/* Return pair {sqrt (A[0), B[1]}. */
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_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
+static __inline __m128d __attribute__((__always_inline__))
_mm_min_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_minpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_min_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_minsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_max_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_maxpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_max_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_maxsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_and_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_andpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_andnot_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_andnpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_or_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_orpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_xor_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_xorpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpeq_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpeqpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmplt_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpltpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmple_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmplepd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpgt_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpgtpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpge_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpgepd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpneq_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpneqpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpnlt_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpnltpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpnle_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpnlepd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpngt_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpngtpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpnge_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpngepd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpord_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpordpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpunord_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpunordpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpeq_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpeqsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmplt_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpltsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmple_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmplesd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpgt_sd (__m128d __A, __m128d __B)
{
return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
@@ -416,7 +417,7 @@ _mm_cmpgt_sd (__m128d __A, __m128d __B)
__A));
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpge_sd (__m128d __A, __m128d __B)
{
return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
@@ -426,25 +427,25 @@ _mm_cmpge_sd (__m128d __A, __m128d __B)
__A));
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpneq_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpneqsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpnlt_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpnltsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpnle_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpnlesd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpngt_sd (__m128d __A, __m128d __B)
{
return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
@@ -454,7 +455,7 @@ _mm_cmpngt_sd (__m128d __A, __m128d __B)
__A));
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpnge_sd (__m128d __A, __m128d __B)
{
return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
@@ -464,85 +465,85 @@ _mm_cmpnge_sd (__m128d __A, __m128d __B)
__A));
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpord_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpordsd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cmpunord_sd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_cmpunordsd ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comieq_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_comisdeq ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comilt_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_comisdlt ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comile_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_comisdle ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comigt_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_comisdgt ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comige_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_comisdge ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comineq_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_comisdneq ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomieq_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_ucomisdeq ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomilt_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_ucomisdlt ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomile_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_ucomisdle ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomigt_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_ucomisdgt ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomige_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_ucomisdge ((__v2df)__A, (__v2df)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomineq_sd (__m128d __A, __m128d __B)
{
return __builtin_ia32_ucomisdneq ((__v2df)__A, (__v2df)__B);
@@ -550,32 +551,32 @@ _mm_ucomineq_sd (__m128d __A, __m128d __B)
/* Create a vector of Qi, where i is the element number. */
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set_epi64x (long long __q1, long long __q0)
{
return (__m128i)(__v2di){ __q0, __q1 };
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set_epi64 (__m64 __q1, __m64 __q0)
{
return _mm_set_epi64x ((long long)__q1, (long long)__q0);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
{
return (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set_epi16 (short __q7, short __q6, short __q5, short __q4,
short __q3, short __q2, short __q1, short __q0)
{
return (__m128i)(__v8hi){ __q0, __q1, __q2, __q3, __q4, __q5, __q6, __q7 };
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set_epi8 (char __q15, char __q14, char __q13, char __q12,
char __q11, char __q10, char __q09, char __q08,
char __q07, char __q06, char __q05, char __q04,
@@ -589,31 +590,31 @@ _mm_set_epi8 (char __q15, char __q14, char __q13, char __q12,
/* Set all of the elements of the vector to A. */
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set1_epi64x (long long __A)
{
return _mm_set_epi64x (__A, __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set1_epi64 (__m64 __A)
{
return _mm_set_epi64 (__A, __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set1_epi32 (int __A)
{
return _mm_set_epi32 (__A, __A, __A, __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set1_epi16 (short __A)
{
return _mm_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_set1_epi8 (char __A)
{
return _mm_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A,
@@ -623,26 +624,26 @@ _mm_set1_epi8 (char __A)
/* Create a vector of Qi, where i is the element number.
The parameter order is reversed from the _mm_set_epi* functions. */
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_setr_epi64 (__m64 __q0, __m64 __q1)
{
return _mm_set_epi64 (__q1, __q0);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_setr_epi32 (int __q0, int __q1, int __q2, int __q3)
{
return _mm_set_epi32 (__q3, __q2, __q1, __q0);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_setr_epi16 (short __q0, short __q1, short __q2, short __q3,
short __q4, short __q5, short __q6, short __q7)
{
return _mm_set_epi16 (__q7, __q6, __q5, __q4, __q3, __q2, __q1, __q0);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03,
char __q04, char __q05, char __q06, char __q07,
char __q08, char __q09, char __q10, char __q11,
@@ -654,182 +655,188 @@ _mm_setr_epi8 (char __q00, char __q01, char __q02, char __q03,
/* Create a vector with element 0 as *P and the rest zero. */
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_load_si128 (__m128i const *__P)
{
return *__P;
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_loadu_si128 (__m128i const *__P)
{
return (__m128i) __builtin_ia32_loaddqu ((char const *)__P);
}
-static __inline __m128i
+/* APPLE LOCAL begin 4099020 */
+static __inline __m128i __attribute__((__always_inline__))
_mm_loadl_epi64 (__m128i const *__P)
{
- return _mm_set_epi64 ((__m64)0LL, *(__m64 *)__P);
+ return (__m128i)__builtin_ia32_loadlv4si ((__v2si *)__P);
}
+/* APPLE LOCAL end 4099020 */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_si128 (__m128i *__P, __m128i __B)
{
*__P = __B;
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storeu_si128 (__m128i *__P, __m128i __B)
{
__builtin_ia32_storedqu ((char *)__P, (__v16qi)__B);
}
-static __inline void
+/* APPLE LOCAL begin 4099020 */
+static __inline void __attribute__((__always_inline__))
_mm_storel_epi64 (__m128i *__P, __m128i __B)
{
- *(long long *)__P = __builtin_ia32_vec_ext_v2di ((__v2di)__B, 0);
+ __builtin_ia32_storelv4si ((__v2si *)__P, __B);
}
+/* APPLE LOCAL end 4099020 */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_movepi64_pi64 (__m128i __B)
{
return (__m64) __builtin_ia32_vec_ext_v2di ((__v2di)__B, 0);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_movpi64_epi64 (__m64 __A)
{
return _mm_set_epi64 ((__m64)0LL, __A);
}
-static __inline __m128i
+/* APPLE LOCAL begin 4099020 */
+static __inline __m128i __attribute__((__always_inline__))
_mm_move_epi64 (__m128i __A)
{
- return _mm_set_epi64 ((__m64)0LL, _mm_movepi64_pi64 (__A));
+ return (__m128i)__builtin_ia32_movqv4si ((__v4si)__A) ;
}
+/* APPLE LOCAL end 4099020 */
/* Create a vector of zeros. */
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_setzero_si128 (void)
{
return (__m128i)(__v4si){ 0, 0, 0, 0 };
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cvtepi32_pd (__m128i __A)
{
return (__m128d)__builtin_ia32_cvtdq2pd ((__v4si) __A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtepi32_ps (__m128i __A)
{
return (__m128)__builtin_ia32_cvtdq2ps ((__v4si) __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cvtpd_epi32 (__m128d __A)
{
return (__m128i)__builtin_ia32_cvtpd2dq ((__v2df) __A);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvtpd_pi32 (__m128d __A)
{
return (__m64)__builtin_ia32_cvtpd2pi ((__v2df) __A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpd_ps (__m128d __A)
{
return (__m128)__builtin_ia32_cvtpd2ps ((__v2df) __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cvttpd_epi32 (__m128d __A)
{
return (__m128i)__builtin_ia32_cvttpd2dq ((__v2df) __A);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvttpd_pi32 (__m128d __A)
{
return (__m64)__builtin_ia32_cvttpd2pi ((__v2df) __A);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cvtpi32_pd (__m64 __A)
{
return (__m128d)__builtin_ia32_cvtpi2pd ((__v2si) __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cvtps_epi32 (__m128 __A)
{
return (__m128i)__builtin_ia32_cvtps2dq ((__v4sf) __A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cvttps_epi32 (__m128 __A)
{
return (__m128i)__builtin_ia32_cvttps2dq ((__v4sf) __A);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cvtps_pd (__m128 __A)
{
return (__m128d)__builtin_ia32_cvtps2pd ((__v4sf) __A);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvtsd_si32 (__m128d __A)
{
return __builtin_ia32_cvtsd2si ((__v2df) __A);
}
#ifdef __x86_64__
-static __inline long long
+static __inline long long __attribute__((__always_inline__))
_mm_cvtsd_si64x (__m128d __A)
{
return __builtin_ia32_cvtsd2si64 ((__v2df) __A);
}
#endif
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvttsd_si32 (__m128d __A)
{
return __builtin_ia32_cvttsd2si ((__v2df) __A);
}
#ifdef __x86_64__
-static __inline long long
+static __inline long long __attribute__((__always_inline__))
_mm_cvttsd_si64x (__m128d __A)
{
return __builtin_ia32_cvttsd2si64 ((__v2df) __A);
}
#endif
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtsd_ss (__m128 __A, __m128d __B)
{
return (__m128)__builtin_ia32_cvtsd2ss ((__v4sf) __A, (__v2df) __B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cvtsi32_sd (__m128d __A, int __B)
{
return (__m128d)__builtin_ia32_cvtsi2sd ((__v2df) __A, __B);
}
#ifdef __x86_64__
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cvtsi64x_sd (__m128d __A, long long __B)
{
return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
}
#endif
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_cvtss_sd (__m128d __A, __m128 __B)
{
return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);
@@ -837,253 +844,253 @@ _mm_cvtss_sd (__m128d __A, __m128 __B)
#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (__C)))
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_unpackhi_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_unpckhpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_unpacklo_pd (__m128d __A, __m128d __B)
{
return (__m128d)__builtin_ia32_unpcklpd ((__v2df)__A, (__v2df)__B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_loadh_pd (__m128d __A, double const *__B)
{
return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, __B);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_loadl_pd (__m128d __A, double const *__B)
{
return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, __B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_movemask_pd (__m128d __A)
{
return __builtin_ia32_movmskpd ((__v2df)__A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_packs_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_packsswb128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_packs_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_packssdw128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_packus_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpackhi_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpckhbw128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpackhi_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpckhwd128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpackhi_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpckhdq128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpackhi_epi64 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpckhqdq128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpacklo_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpcklbw128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpacklo_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpcklwd128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpacklo_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpckldq128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_unpacklo_epi64 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_punpcklqdq128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_add_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_add_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_add_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddd128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_add_epi64 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddq128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_adds_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddsb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_adds_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddsw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_adds_epu8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddusb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_adds_epu16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_paddusw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sub_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sub_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sub_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubd128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sub_epi64 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubq128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_subs_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubsb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_subs_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubsw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_subs_epu8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubusb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_subs_epu16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psubusw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_madd_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmaddwd128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_mulhi_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmulhw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_mullo_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmullw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_mul_su32 (__m64 __A, __m64 __B)
{
return (__m64)__builtin_ia32_pmuludq ((__v2si)__A, (__v2si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_mul_epu32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_slli_epi16 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_slli_epi32 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_slli_epi64 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srai_epi16 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srai_epi32 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B);
@@ -1108,145 +1115,145 @@ _mm_srli_si128 (__m128i __A, const int __B)
((__m128i)__builtin_ia32_pslldqi128 (__A, (__B) * 8))
#endif
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srli_epi16 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srli_epi32 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srli_epi64 (__m128i __A, int __B)
{
return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sll_epi16 (__m128i __A, __m128i __B)
{
return _mm_slli_epi16 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sll_epi32 (__m128i __A, __m128i __B)
{
return _mm_slli_epi32 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sll_epi64 (__m128i __A, __m128i __B)
{
return _mm_slli_epi64 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sra_epi16 (__m128i __A, __m128i __B)
{
return _mm_srai_epi16 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sra_epi32 (__m128i __A, __m128i __B)
{
return _mm_srai_epi32 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srl_epi16 (__m128i __A, __m128i __B)
{
return _mm_srli_epi16 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srl_epi32 (__m128i __A, __m128i __B)
{
return _mm_srli_epi32 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_srl_epi64 (__m128i __A, __m128i __B)
{
return _mm_srli_epi64 (__A, _mm_cvtsi128_si32 (__B));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_and_si128 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pand128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_andnot_si128 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pandn128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_or_si128 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_xor_si128 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pxor128 ((__v2di)__A, (__v2di)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpeqb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmpeq_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpeqw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmpeq_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpeqd128 ((__v4si)__A, (__v4si)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmplt_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__B, (__v16qi)__A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmplt_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__B, (__v8hi)__A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmplt_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__B, (__v4si)__A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmpgt_epi8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmpgt_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cmpgt_epi32 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__A, (__v4si)__B);
@@ -1266,42 +1273,42 @@ _mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
}
#else
#define _mm_extract_epi16(A, N) \
- ((int) __builtin_ia32_vec_ext_v8hi ((__v8hi)(A), (N))
+ ((int) __builtin_ia32_vec_ext_v8hi ((__v8hi)(A), (N)))
#define _mm_insert_epi16(A, D, N) \
((__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)(A), (D), (N)))
#endif
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_max_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmaxsw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_max_epu8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmaxub128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_min_epi16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pminsw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_min_epu8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pminub128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_movemask_epi8 (__m128i __A)
{
return __builtin_ia32_pmovmskb128 ((__v16qi)__A);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_mulhi_epu16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B);
@@ -1311,74 +1318,74 @@ _mm_mulhi_epu16 (__m128i __A, __m128i __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
+static __inline void __attribute__((__always_inline__))
_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
{
__builtin_ia32_maskmovdqu ((__v16qi)__A, (__v16qi)__B, __C);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_avg_epu8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pavgb128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_avg_epu16 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_pavgw128 ((__v8hi)__A, (__v8hi)__B);
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_sad_epu8 (__m128i __A, __m128i __B)
{
return (__m128i)__builtin_ia32_psadbw128 ((__v16qi)__A, (__v16qi)__B);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_stream_si32 (int *__A, int __B)
{
__builtin_ia32_movnti (__A, __B);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_stream_si128 (__m128i *__A, __m128i __B)
{
__builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_stream_pd (double *__A, __m128d __B)
{
__builtin_ia32_movntpd (__A, (__v2df)__B);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_clflush (void const *__A)
{
return __builtin_ia32_clflush (__A);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_lfence (void)
{
__builtin_ia32_lfence ();
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_mfence (void)
{
__builtin_ia32_mfence ();
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cvtsi32_si128 (int __A)
{
return _mm_set_epi32 (0, 0, 0, __A);
}
#ifdef __x86_64__
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_cvtsi64x_si128 (long long __A)
{
return _mm_set_epi64x (0, __A);
@@ -1387,37 +1394,37 @@ _mm_cvtsi64x_si128 (long long __A)
/* Casts between various SP, DP, INT vector types. Note that these do no
conversion of values, they just change the type. */
-static inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_castpd_ps(__m128d __A)
{
return (__m128) __A;
}
-static inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_castpd_si128(__m128d __A)
{
return (__m128i) __A;
}
-static inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_castps_pd(__m128 __A)
{
return (__m128d) __A;
}
-static inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_castps_si128(__m128 __A)
{
return (__m128i) __A;
}
-static inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_castsi128_ps(__m128i __A)
{
return (__m128) __A;
}
-static inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_castsi128_pd(__m128i __A)
{
return (__m128d) __A;
diff --git a/gcc/config/i386/host-cygwin.c b/gcc/config/i386/host-cygwin.c
new file mode 100755
index 00000000000..4f6de6fd893
--- /dev/null
+++ b/gcc/config/i386/host-cygwin.c
@@ -0,0 +1,81 @@
+/* Cygwin host-specific hook definitions.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 2, or (at your
+ option) any later version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include <sys/mman.h>
+#include "hosthooks.h"
+#include "hosthooks-def.h"
+#include "toplev.h"
+#include "diagnostic.h"
+
+static void * cygwin_gt_pch_get_address (size_t, int fd);
+static size_t cygwin_gt_pch_alloc_granularity (void);
+
+#undef HOST_HOOKS_GT_PCH_GET_ADDRESS
+#define HOST_HOOKS_GT_PCH_GET_ADDRESS cygwin_gt_pch_get_address
+#undef HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY
+#define HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY cygwin_gt_pch_alloc_granularity
+
+/* Granularity for reserving address space. */
+static const size_t va_granularity = 0x10000;
+
+/* Return the alignment required for allocating virtual memory. */
+static size_t
+cygwin_gt_pch_alloc_granularity (void)
+{
+ return va_granularity;
+}
+
+/* Identify an address that's likely to be free in a subsequent invocation
+ of the compiler. The area should be able to hold SIZE bytes. FD is an
+ open file descriptor if the host would like to probe with mmap. */
+static void *
+cygwin_gt_pch_get_address (size_t sz, int fd)
+{
+ void *base;
+ off_t p = lseek(fd, 0, SEEK_CUR);
+
+ if (p == (off_t) -1)
+ fatal_error ("can't get position in PCH file: %m");
+
+ /* Cygwin requires that the underlying file be at least
+ as large as the requested mapping. */
+ if ((size_t) p < sz)
+ {
+ if ( ftruncate (fd, sz) == -1 )
+ fatal_error ("can't extend PCH file: %m");
+ }
+
+ base = mmap (NULL, sz, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
+
+ if (base == MAP_FAILED)
+ base = NULL;
+ else
+ munmap (base, sz);
+
+ if (lseek (fd, p, SEEK_SET) == (off_t) -1 )
+ fatal_error ("can't set position in PCH file: %m");
+
+ return base;
+}
+
+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
diff --git a/gcc/config/i386/host-i386-darwin.c b/gcc/config/i386/host-i386-darwin.c
new file mode 100644
index 00000000000..42e33238e6c
--- /dev/null
+++ b/gcc/config/i386/host-i386-darwin.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL begin mainline 2005-04-06 4071679 */
+/* i386-darwin host-specific hook definitions.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "hosthooks.h"
+#include "hosthooks-def.h"
+#include "config/host-darwin.h"
+
+/* Darwin doesn't do anything special for x86 hosts; this file exists just
+ to include config/host-darwin.h. */
+
+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
+/* APPLE LOCAL end mainline 2005-04-06 4071679 */
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index 53edfd16104..34b808af1f3 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -117,7 +117,8 @@ extern void split_ti (rtx[], int, rtx[], rtx[]);
extern const char *output_set_got (rtx);
extern const char *output_387_binary_op (rtx, rtx*);
extern const char *output_387_reg_move (rtx, rtx*);
-extern const char *output_fix_trunc (rtx, rtx*);
+/* APPLE LOCAL mainline 2005-03-16 4054919 */
+extern const char *output_fix_trunc (rtx, rtx*, int);
extern const char *output_fp_compare (rtx, rtx*, int, int);
extern void i386_output_dwarf_dtprel (FILE*, int, rtx);
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index bc680c80df9..ec08478ba6e 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -48,6 +48,13 @@ Boston, MA 02111-1307, USA. */
#include "langhooks.h"
#include "cgraph.h"
#include "tree-gimple.h"
+/* APPLE LOCAL inline intrinsics with -Os 4037817 */
+#include "params.h"
+
+/* APPLE LOCAL begin pascal strings */
+#include "../../libcpp/internal.h"
+extern struct cpp_reader* parse_in;
+/* APPLE LOCAL end pascal strings */
#ifndef CHECK_STACK_LIMIT
#define CHECK_STACK_LIMIT (-1)
@@ -505,6 +512,34 @@ struct processor_costs nocona_cost = {
const struct processor_costs *ix86_cost = &pentium_cost;
+/* APPLE LOCAL begin Altivec */
+/* vector types */
+static GTY(()) tree unsigned_V16QI_type_node;
+static GTY(()) tree unsigned_V4SI_type_node;
+static GTY(()) tree unsigned_V8QI_type_node;
+static GTY(()) tree unsigned_V8HI_type_node;
+static GTY(()) tree unsigned_V4HI_type_node;
+static GTY(()) tree unsigned_V2HI_type_node;
+static GTY(()) tree unsigned_V2SI_type_node;
+static GTY(()) tree unsigned_V2DI_type_node;
+static GTY(()) tree unsigned_V1DI_type_node;
+
+static GTY(()) tree V16QI_type_node;
+static GTY(()) tree V4SF_type_node;
+static GTY(()) tree V4SI_type_node;
+static GTY(()) tree V8QI_type_node;
+static GTY(()) tree V8HI_type_node;
+static GTY(()) tree V4HI_type_node;
+static GTY(()) tree V2HI_type_node;
+static GTY(()) tree V2SI_type_node;
+static GTY(()) tree V2SF_type_node;
+static GTY(()) tree V2DI_type_node;
+static GTY(()) tree V2DF_type_node;
+static GTY(()) tree V16SF_type_node;
+static GTY(()) tree V1DI_type_node;
+static GTY(()) tree V4DF_type_node;
+/* APPLE LOCAL end Altivec */
+
/* Processor feature/optimization bitmasks. */
#define m_386 (1<<PROCESSOR_I386)
#define m_486 (1<<PROCESSOR_I486)
@@ -525,6 +560,8 @@ const int x86_double_with_add = ~m_386;
const int x86_use_bit_test = m_386;
const int x86_unroll_strlen = m_486 | m_PENT | m_PPRO | m_ATHLON_K8 | m_K6;
const int x86_cmove = m_PPRO | m_ATHLON_K8 | m_PENT4 | m_NOCONA;
+/* APPLE LOCAL mainline 2005-03-16 4054919 */
+const int x86_fisttp = m_NOCONA;
const int x86_3dnow_a = m_ATHLON_K8;
const int x86_deep_branch = m_PPRO | m_K6 | m_ATHLON_K8 | m_PENT4 | m_NOCONA;
/* Branch hints were put in P4 based on simulation result. But
@@ -919,6 +956,11 @@ static rtx ix86_struct_value_rtx (tree, int);
static bool ix86_ms_bitfield_layout_p (tree);
static tree ix86_handle_struct_attribute (tree *, tree, tree, int, bool *);
static int extended_reg_mentioned_1 (rtx *, void *);
+/* APPLE LOCAL begin why is this local? */
+#if TARGET_MACHO
+static bool ix86_binds_local_p (tree);
+#endif
+/* APPLE LOCAL end why is this local? */
static bool ix86_rtx_costs (rtx, int, int, int *);
static int min_insn_size (rtx);
static tree ix86_md_asm_clobbers (tree clobbers);
@@ -1030,6 +1072,13 @@ static void init_ext_80387_constants (void);
#undef TARGET_MS_BITFIELD_LAYOUT_P
#define TARGET_MS_BITFIELD_LAYOUT_P ix86_ms_bitfield_layout_p
+/* APPLE LOCAL begin why is this local? */
+#if TARGET_MACHO
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P ix86_binds_local_p
+#endif
+/* APPLE LOCAL end why is this local? */
+
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK x86_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
@@ -1043,6 +1092,12 @@ static void init_ext_80387_constants (void);
#undef TARGET_ADDRESS_COST
#define TARGET_ADDRESS_COST ix86_address_cost
+/* APPLE LOCAL begin SSE stack alignment */
+#ifndef BASIC_STACK_BOUNDARY
+#define BASIC_STACK_BOUNDARY (32)
+#endif
+/* APPLE LOCAL end SSE stack alignment */
+
#undef TARGET_FIXED_CONDITION_CODE_REGS
#define TARGET_FIXED_CONDITION_CODE_REGS ix86_fixed_condition_code_regs
#undef TARGET_CC_MODES_COMPATIBLE
@@ -1203,6 +1258,12 @@ override_options (void)
SUBTARGET_OVERRIDE_OPTIONS;
#endif
+ /* APPLE LOCAL begin constant cfstrings */
+#ifdef SUBSUBTARGET_OVERRIDE_OPTIONS
+ SUBSUBTARGET_OVERRIDE_OPTIONS;
+#endif
+ /* APPLE LOCAL end constant cfstrings */
+
/* Set the default values for switches whose default depends on TARGET_64BIT
in case they weren't overwritten by command line options. */
if (TARGET_64BIT)
@@ -1426,9 +1487,11 @@ override_options (void)
The default of 128 bits is for Pentium III's SSE __m128, but we
don't want additional code to keep the stack aligned when
optimizing for code size. */
+ /* APPLE LOCAL begin SSE stack alignment */
ix86_preferred_stack_boundary = (optimize_size
- ? TARGET_64BIT ? 128 : 32
+ ? TARGET_64BIT ? 128 : BASIC_STACK_BOUNDARY
: 128);
+ /* APPLE LOCAL end SSE stack alignment */
if (ix86_preferred_stack_boundary_string)
{
i = atoi (ix86_preferred_stack_boundary_string);
@@ -1514,19 +1577,19 @@ override_options (void)
target_flags
|= ((MASK_SSE2 | MASK_SSE | MASK_MMX | MASK_128BIT_LONG_DOUBLE)
& ~target_flags_explicit);
-
- if (TARGET_SSE)
- ix86_fpmath = FPMATH_SSE;
+/* APPLE LOCAL begin mainline 2005-04-11 4010614 */
}
else
{
- ix86_fpmath = FPMATH_387;
/* i386 ABI does not specify red zone. It still makes sense to use it
when programmer takes care to stack from being destroyed. */
if (!(target_flags_explicit & MASK_NO_RED_ZONE))
target_flags |= MASK_NO_RED_ZONE;
}
+ ix86_fpmath = TARGET_FPMATH_DEFAULT;
+/* APPLE LOCAL end mainline 2005-04-11 4010614 */
+
if (ix86_fpmath_string != 0)
{
if (! strcmp (ix86_fpmath_string, "387"))
@@ -1583,11 +1646,41 @@ override_options (void)
so it won't slow down the compilation and make x87 code slower. */
if (!TARGET_SCHEDULE)
flag_schedule_insns_after_reload = flag_schedule_insns = 0;
+
+ /* APPLE LOCAL begin dynamic-no-pic */
+#if TARGET_MACHO
+ if (MACHO_DYNAMIC_NO_PIC_P)
+ {
+ if (flag_pic)
+ warning ("-mdynamic-no-pic overrides -fpic or -fPIC");
+ flag_pic = 0;
+ }
+ else
+#endif
+ if (flag_pic == 1)
+ {
+ /* Darwin doesn't support -fpic. */
+ warning ("-fpic is not supported; -fPIC assumed");
+ flag_pic = 2;
+ }
+ /* APPLE LOCAL end dynamic-no-pic */
}
void
optimization_options (int level, int size ATTRIBUTE_UNUSED)
{
+ /* APPLE LOCAL begin disable strict aliasing; breaks too much existing code. */
+#if TARGET_MACHO
+ flag_strict_aliasing = 0;
+ /* APPLE LOCAL begin inline intrinsics with -Os 4037817 */
+ if (optimize_size)
+ {
+ set_param_value ("max-inline-insns-single", 30);
+ set_param_value ("max-inline-insns-auto", 30);
+ }
+ /* APPLE LOCAL end inline intrinsics with -Os 4037817 */
+#endif
+ /* APPLE LOCAL end disable strict aliasing; breaks too much existing code. */
/* For -O2 and beyond, turn off -fschedule-insns by default. It tends to
make the problem with not enough registers even worse. */
#ifdef INSN_SCHEDULING
@@ -1595,6 +1688,19 @@ optimization_options (int level, int size ATTRIBUTE_UNUSED)
flag_schedule_insns = 0;
#endif
+ /* APPLE LOCAL begin pragma fenv */
+ /* Trapping math is not needed by many users, and is expensive.
+ C99 permits us to default it off and we do that. It is
+ turned on when <fenv.h> is included (see darwin_pragma_fenv
+ in darwin-c.c). */
+ flag_trapping_math = 0;
+ /* APPLE LOCAL end pragma fenv */
+
+ /* APPLE LOCAL begin radar 4094534. */
+ /* The Darwin libraries never set errno, so we might as well
+ avoid calling them when that's the only reason we would. */
+ flag_errno_math = 0;
+ /* APPLE LOCAL end radar 4094534. */
/* The default values of these switches depend on the TARGET_64BIT
that is not known at this moment. Mark these values with 2 and
let user the to override these. In case there is no command line option
@@ -1607,6 +1713,43 @@ optimization_options (int level, int size ATTRIBUTE_UNUSED)
SUBTARGET_OPTIMIZATION_OPTIONS;
#endif
}
+
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* Version of the above for use from #pragma optimization_level. Only
+ per-function flags are reset. */
+
+void
+reset_optimization_options (int level, int size ATTRIBUTE_UNUSED)
+{
+ /* For -O2 and beyond, turn off -fschedule-insns by default. It tends to
+ make the problem with not enough registers even worse. */
+#ifdef INSN_SCHEDULING
+ if (level > 1)
+ flag_schedule_insns = 0;
+#endif
+
+ /* APPLE LOCAL begin pragma fenv */
+ /* Trapping math is not needed by many users, and is expensive.
+ C99 permits us to default it off and we do that. It is
+ turned on when <fenv.h> is included (see darwin_pragma_fenv
+ in darwin-c.c). */
+ flag_trapping_math = 0;
+ /* APPLE LOCAL end pragma fenv */
+
+ /* The default values of these switches depend on TARGET_64BIT
+ which was set earlier and not reset. */
+ if (optimize >= 1)
+ {
+ if (TARGET_64BIT)
+ flag_omit_frame_pointer = 1;
+ else
+ flag_omit_frame_pointer = 0;
+ }
+#ifdef SUBTARGET_OPTIMIZATION_OPTIONS
+ SUBTARGET_OPTIMIZATION_OPTIONS;
+#endif
+}
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
/* Table of valid machine attributes. */
const struct attribute_spec ix86_attribute_table[] =
@@ -1643,11 +1786,14 @@ const struct attribute_spec ix86_attribute_table[] =
static bool
ix86_function_ok_for_sibcall (tree decl, tree exp)
{
+ /* APPLE LOCAL begin indirect sibcall 4087330 */
/* If we are generating position-independent code, we cannot sibcall
optimize any indirect call, or a direct call to a global function,
- as the PLT requires %ebx be live. */
- if (!TARGET_64BIT && flag_pic && (!decl || TREE_PUBLIC (decl)))
+ as the PLT requires %ebx be live. (Darwin does not have a PLT.) */
+ if (!TARGET_MACHO && !TARGET_64BIT && flag_pic
+ && (!decl || TREE_PUBLIC (decl)))
return false;
+ /* APPLE LOCAL end indirect sibcall 4087330 */
/* 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
@@ -2657,6 +2803,11 @@ construct_container (enum machine_mode mode, enum machine_mode orig_mode,
abort ();
}
}
+
+ /* Empty aligned struct, union or class. */
+ if (nexps == 0)
+ return NULL;
+
ret = gen_rtx_PARALLEL (mode, rtvec_alloc (nexps));
for (i = 0; i < nexps; i++)
XVECEXP (ret, 0, i) = exp [i];
@@ -3877,7 +4028,8 @@ static int pic_labels_used;
static void
get_pc_thunk_name (char name[32], unsigned int regno)
{
- if (USE_HIDDEN_LINKONCE)
+ /* APPLE LOCAL deep branch prediction pic-base. */
+ if (USE_HIDDEN_LINKONCE || TARGET_MACHO)
sprintf (name, "__i686.get_pc_thunk.%s", reg_names[regno]);
else
ASM_GENERATE_INTERNAL_LABEL (name, "LPR", regno);
@@ -3921,6 +4073,18 @@ ix86_file_end (void)
fputc ('\n', asm_out_file);
ASM_DECLARE_FUNCTION_NAME (asm_out_file, name, decl);
}
+ /* APPLE LOCAL begin deep branch prediction pic-base */
+ else if (TARGET_MACHO)
+ {
+ darwin_textcoal_nt_section ();
+ fputs (".weak_definition\t", asm_out_file);
+ assemble_name (asm_out_file, name);
+ fputs ("\n.private_extern\t", asm_out_file);
+ assemble_name (asm_out_file, name);
+ fputs ("\n", asm_out_file);
+ ASM_OUTPUT_LABEL (asm_out_file, name);
+ }
+ /* APPLE LOCAL end deep branch prediction pic-base */
else
{
text_section ();
@@ -3976,12 +4140,24 @@ output_set_got (rtx dest)
xops[2] = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
xops[2] = gen_rtx_MEM (QImode, xops[2]);
output_asm_insn ("call\t%X2", xops);
+ /* APPLE LOCAL begin deep branch prediction pic-base */
+#if TARGET_MACHO
+ /* Output the "canonical" label name ("Lxx$pb") here too. This
+ is what will be referred to by the Mach-O PIC subsystem. */
+ if (cfun)
+ ASM_OUTPUT_LABEL (asm_out_file, machopic_function_base_name ());
+#endif
+ /* APPLE LOCAL end deep branch prediction pic-base */
}
+ /* APPLE LOCAL begin deep branch prediction pic-base */
+#if !TARGET_MACHO
if (!flag_pic || TARGET_DEEP_BRANCH_PREDICTION)
output_asm_insn ("add{l}\t{%1, %0|%0, %1}", xops);
else if (!TARGET_MACHO)
output_asm_insn ("add{l}\t{%1+[.-%a2], %0|%0, %a1+(.-%a2)}", xops);
+#endif /* !TARGET_MACHO */
+ /* APPLE LOCAL end deep branch prediction pic-base */
return "";
}
@@ -4324,6 +4500,12 @@ pro_epilogue_adjust_stack (rtx dest, rtx src, rtx offset, int style)
RTX_FRAME_RELATED_P (insn) = 1;
}
+/* APPLE LOCAL begin fix-and-continue x86 */
+#ifndef TARGET_FIX_AND_CONTINUE
+#define TARGET_FIX_AND_CONTINUE 0
+#endif
+/* APPLE LOCAL end fix-and-continue x86 */
+
/* Expand the prologue into a bunch of separate insns. */
void
@@ -4334,6 +4516,23 @@ ix86_expand_prologue (void)
struct ix86_frame frame;
HOST_WIDE_INT allocate;
+ /* APPLE LOCAL begin fix-and-continue x86 */
+ if (TARGET_FIX_AND_CONTINUE)
+ {
+ /* gdb on darwin arranges to forward a function from the old
+ address by modifying the first 6 instructions of the function
+ to branch to the overriding function. This is necessary to
+ permit function pointers that point to the old function to
+ actually forward to the new function. */
+ emit_insn (gen_nop ());
+ emit_insn (gen_nop ());
+ emit_insn (gen_nop ());
+ emit_insn (gen_nop ());
+ emit_insn (gen_nop ());
+ emit_insn (gen_nop ());
+ }
+ /* APPLE LOCAL end fix-and-continue x86 */
+
ix86_compute_frame_layout (&frame);
/* Note: AT&T enter does NOT have reversed args. Enter is probably
@@ -4651,6 +4850,24 @@ ix86_output_function_epilogue (FILE *file ATTRIBUTE_UNUSED,
{
if (pic_offset_table_rtx)
REGNO (pic_offset_table_rtx) = REAL_PIC_OFFSET_TABLE_REGNUM;
+ /* APPLE LOCAL begin */
+#if TARGET_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
+ /* APPLE LOCAL end */
}
/* Extract the parts of an RTL expression that is a valid memory address
@@ -4661,9 +4878,8 @@ ix86_output_function_epilogue (FILE *file ATTRIBUTE_UNUSED,
int
ix86_decompose_address (rtx addr, struct ix86_address *out)
{
- rtx base = NULL_RTX;
- rtx index = NULL_RTX;
- rtx disp = NULL_RTX;
+ rtx base = NULL_RTX, index = NULL_RTX, disp = NULL_RTX;
+ rtx base_reg, index_reg;
HOST_WIDE_INT scale = 1;
rtx scale_rtx = NULL_RTX;
int retval = 1;
@@ -4765,34 +4981,37 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
scale = INTVAL (scale_rtx);
}
+ base_reg = base && GET_CODE (base) == SUBREG ? SUBREG_REG (base) : base;
+ index_reg = index && GET_CODE (index) == SUBREG ? SUBREG_REG (index) : index;
+
/* Allow arg pointer and stack pointer as index if there is not scaling. */
- if (base && index && scale == 1
- && (index == arg_pointer_rtx
- || index == frame_pointer_rtx
- || (REG_P (index) && REGNO (index) == STACK_POINTER_REGNUM)))
+ if (base_reg && index_reg && scale == 1
+ && (index_reg == arg_pointer_rtx
+ || index_reg == frame_pointer_rtx
+ || (REG_P (index_reg) && REGNO (index_reg) == STACK_POINTER_REGNUM)))
{
- rtx tmp = base;
- base = index;
- index = tmp;
+ rtx tmp;
+ tmp = base, base = index, index = tmp;
+ tmp = base_reg, base_reg = index_reg, index_reg = tmp;
}
/* Special case: %ebp cannot be encoded as a base without a displacement. */
- if ((base == hard_frame_pointer_rtx
- || base == frame_pointer_rtx
- || base == arg_pointer_rtx) && !disp)
+ if ((base_reg == hard_frame_pointer_rtx
+ || base_reg == frame_pointer_rtx
+ || base_reg == arg_pointer_rtx) && !disp)
disp = const0_rtx;
/* Special case: on K6, [%esi] makes the instruction vector decoded.
Avoid this by transforming to [%esi+0]. */
if (ix86_tune == PROCESSOR_K6 && !optimize_size
- && base && !index && !disp
- && REG_P (base)
- && REGNO_REG_CLASS (REGNO (base)) == SIREG)
+ && base_reg && !index_reg && !disp
+ && REG_P (base_reg)
+ && REGNO_REG_CLASS (REGNO (base_reg)) == SIREG)
disp = const0_rtx;
/* Special case: encode reg+reg instead of reg*2. */
if (!base && index && scale && scale == 2)
- base = index, scale = 1;
+ base = index, base_reg = index_reg, scale = 1;
/* Special case: scaling cannot be encoded without base or displacement. */
if (!base && !disp && index && scale != 1)
@@ -4821,6 +5040,11 @@ ix86_address_cost (rtx 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--;
@@ -4971,7 +5195,21 @@ legitimate_constant_p (rtx x)
/* TLS symbols are never valid. */
if (tls_symbolic_operand (x, Pmode))
return false;
+ /* APPLE LOCAL begin dynamic-no-pic */
+ if (TARGET_MACHO && TARGET_DYNAMIC_NO_PIC)
+ return machopic_symbol_defined_p (x);
+ break;
+
+ case PLUS:
+ {
+ rtx left = XEXP (x, 0);
+ rtx right = XEXP (x, 1);
+ bool left_is_constant = legitimate_constant_p (left);
+ bool right_is_constant = legitimate_constant_p (right);
+ return left_is_constant && right_is_constant;
+ }
break;
+ /* APPLE LOCAL end dynamic-no-pic */
default:
break;
@@ -5170,15 +5408,23 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
/* Validate base register.
- Don't allow SUBREG's here, it can lead to spill failures when the base
- is one word out of a two word structure, which is represented internally
- as a DImode int. */
+ Don't allow SUBREG's that span more than a word here. It can lead to spill
+ failures when the base is one word out of a two word structure, which is
+ represented internally as a DImode int. */
if (base)
{
+ rtx reg;
reason_rtx = base;
-
- if (GET_CODE (base) != REG)
+
+ if (REG_P (base))
+ reg = base;
+ else if (GET_CODE (base) == SUBREG
+ && REG_P (SUBREG_REG (base))
+ && GET_MODE_SIZE (GET_MODE (SUBREG_REG (base)))
+ <= UNITS_PER_WORD)
+ reg = SUBREG_REG (base);
+ else
{
reason = "base is not a register";
goto report_error;
@@ -5190,8 +5436,8 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
goto report_error;
}
- if ((strict && ! REG_OK_FOR_BASE_STRICT_P (base))
- || (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (base)))
+ if ((strict && ! REG_OK_FOR_BASE_STRICT_P (reg))
+ || (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (reg)))
{
reason = "base is not valid";
goto report_error;
@@ -5200,15 +5446,21 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
/* Validate index register.
- Don't allow SUBREG's here, it can lead to spill failures when the index
- is one word out of a two word structure, which is represented internally
- as a DImode int. */
+ Don't allow SUBREG's that span more than a word here -- same as above. */
if (index)
{
+ rtx reg;
reason_rtx = index;
- if (GET_CODE (index) != REG)
+ if (REG_P (index))
+ reg = index;
+ else if (GET_CODE (index) == SUBREG
+ && REG_P (SUBREG_REG (index))
+ && GET_MODE_SIZE (GET_MODE (SUBREG_REG (index)))
+ <= UNITS_PER_WORD)
+ reg = SUBREG_REG (index);
+ else
{
reason = "index is not a register";
goto report_error;
@@ -5220,8 +5472,8 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
goto report_error;
}
- if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (index))
- || (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (index)))
+ if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (reg))
+ || (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (reg)))
{
reason = "index is not valid";
goto report_error;
@@ -5273,7 +5525,8 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
goto report_error;
}
- else if (flag_pic && (SYMBOLIC_CONST (disp)
+ /* APPLE LOCAL dynamic-no-pic */
+ else if (MACHOPIC_INDIRECT && (SYMBOLIC_CONST (disp)
#if TARGET_MACHO
&& !machopic_operand_p (disp)
#endif
@@ -5294,11 +5547,18 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
goto report_error;
}
}
- else if (! legitimate_pic_address_disp_p (disp))
+ /* APPLE LOCAL begin dynamic-no-pic */
+ else if (flag_pic && ! legitimate_pic_address_disp_p (disp))
{
reason = "displacement is an invalid pic construct";
goto report_error;
}
+ else if (TARGET_DYNAMIC_NO_PIC && !legitimate_constant_p (disp))
+ {
+ reason = "displacment must be referenced via non_lazy_pointer";
+ goto report_error;
+ }
+ /* APPLE LOCAL end dynamic-no-pic */
/* This code used to verify that a symbolic pic displacement
includes the pic_offset_table_rtx register.
@@ -5721,11 +5981,16 @@ legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, enum machine_mode mode)
if (flag_pic && SYMBOLIC_CONST (x))
return legitimize_pic_address (x, 0);
+ /* APPLE LOCAL begin dynamic-no-pic */
+ if (MACHO_DYNAMIC_NO_PIC_P && SYMBOLIC_CONST (x))
+ return machopic_indirect_data_reference (x, 0);
+ /* APPLE LOCAL end dynamic-no-pic */
/* Canonicalize shifts by 0, 1, 2, 3 into multiply */
if (GET_CODE (x) == ASHIFT
&& GET_CODE (XEXP (x, 1)) == CONST_INT
- && (log = (unsigned) exact_log2 (INTVAL (XEXP (x, 1)))) < 4)
+ /* APPLE LOCAL 4101687 */
+ && (log = INTVAL (XEXP (x, 1))) < 4)
{
changed = 1;
x = gen_rtx_MULT (Pmode, force_reg (Pmode, XEXP (x, 0)),
@@ -5738,7 +6003,8 @@ legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, enum machine_mode mode)
if (GET_CODE (XEXP (x, 0)) == ASHIFT
&& GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
- && (log = (unsigned) exact_log2 (INTVAL (XEXP (XEXP (x, 0), 1)))) < 4)
+ /* APPLE LOCAL 4101687 */
+ && (log = INTVAL (XEXP (XEXP (x, 0), 1))) < 4)
{
changed = 1;
XEXP (x, 0) = gen_rtx_MULT (Pmode,
@@ -5748,7 +6014,8 @@ legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, enum machine_mode mode)
if (GET_CODE (XEXP (x, 1)) == ASHIFT
&& GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT
- && (log = (unsigned) exact_log2 (INTVAL (XEXP (XEXP (x, 1), 1)))) < 4)
+ /* APPLE LOCAL 4101687 */
+ && (log = INTVAL (XEXP (XEXP (x, 1), 1))) < 4)
{
changed = 1;
XEXP (x, 1) = gen_rtx_MULT (Pmode,
@@ -5891,7 +6158,19 @@ output_pic_addr_const (FILE *file, rtx x, int code)
if (SYMBOL_REF_DECL (x))
mark_decl_referenced (SYMBOL_REF_DECL (x));
+ /* APPLE LOCAL begin stubify optimized symbols */
+#if TARGET_MACHO
+ {
+ const char *name = XSTR (x, 0);
+ if (MACHOPIC_INDIRECT
+ && machopic_classify_symbol (x) == MACHOPIC_UNDEFINED_FUNCTION)
+ name = machopic_indirection_name (x, /*stub_p=*/true);
+ assemble_name (file, name);
+ }
+#else
assemble_name (file, XSTR (x, 0));
+#endif
+ /* APPLE LOCAL end stubify optimized symbols */
if (!TARGET_MACHO && code == 'P' && ! SYMBOL_REF_LOCAL_P (x))
fputs ("@PLT", file);
break;
@@ -6703,6 +6982,17 @@ print_operand (FILE *file, rtx x, int code)
else
{
+ /* We have patterns that allow zero sets of memory, for instance.
+ In 64-bit mode, we should probably support all 8-byte vectors,
+ since we can in fact encode that into an immediate. */
+ if (GET_CODE (x) == CONST_VECTOR)
+ {
+ if (x == CONST0_RTX (GET_MODE (x)))
+ x = const0_rtx;
+ else
+ abort ();
+ }
+
if (code != 'P')
{
if (GET_CODE (x) == CONST_INT || GET_CODE (x) == CONST_DOUBLE)
@@ -6721,7 +7011,13 @@ print_operand (FILE *file, rtx x, int code)
}
if (GET_CODE (x) == CONST_INT)
fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
- else if (flag_pic)
+ /* APPLE LOCAL begin dynamic-no-pic */
+ else if (flag_pic
+#if TARGET_MACHO
+ || MACHOPIC_INDIRECT
+#endif
+ )
+ /* APPLE LOCAL end dynamic-no-pic */
output_pic_addr_const (file, x, code);
else
output_addr_const (file, x);
@@ -7280,8 +7576,9 @@ emit_i387_cw_initialization (rtx current_mode, rtx new_mode, int mode)
are the insn operands. The output may be [HSD]Imode and the input
operand may be [SDX]Fmode. */
+/* APPLE LOCAL begin mainline 2005-03-16 4054919 */
const char *
-output_fix_trunc (rtx insn, rtx *operands)
+output_fix_trunc (rtx insn, rtx *operands, int fisttp)
{
int stack_top_dies = find_regno_note (insn, REG_DEAD, FIRST_STACK_REG) != 0;
int dimode_p = GET_MODE (operands[0]) == DImode;
@@ -7289,7 +7586,7 @@ output_fix_trunc (rtx insn, rtx *operands)
/* Jump through a hoop or two for DImode, since the hardware has no
non-popping instruction. We used to do this a different way, but
that was somewhat fragile and broke with post-reload splitters. */
- if (dimode_p && !stack_top_dies)
+ if ((dimode_p || fisttp) && !stack_top_dies)
output_asm_insn ("fld\t%y1", operands);
if (!STACK_TOP_P (operands[1]))
@@ -7298,15 +7595,21 @@ output_fix_trunc (rtx insn, rtx *operands)
if (GET_CODE (operands[0]) != MEM)
abort ();
- output_asm_insn ("fldcw\t%3", operands);
- if (stack_top_dies || dimode_p)
- output_asm_insn ("fistp%z0\t%0", operands);
+ if (fisttp)
+ output_asm_insn ("fisttp%z0\t%0", operands);
else
- output_asm_insn ("fist%z0\t%0", operands);
- output_asm_insn ("fldcw\t%2", operands);
+ {
+ output_asm_insn ("fldcw\t%3", operands);
+ if (stack_top_dies || dimode_p)
+ output_asm_insn ("fistp%z0\t%0", operands);
+ else
+ output_asm_insn ("fist%z0\t%0", operands);
+ output_asm_insn ("fldcw\t%2", operands);
+ }
return "";
}
+/* APPLE LOCAL end mainline 2005-03-16 4054919 */
/* Output code for INSN to compare OPERANDS. EFLAGS_P is 1 when fcomi
should be used. UNORDERED_P is true when fucom should be used. */
@@ -7515,7 +7818,8 @@ void
ix86_expand_move (enum machine_mode mode, rtx operands[])
{
int strict = (reload_in_progress || reload_completed);
- rtx op0, op1;
+ /* APPLE LOCAL dynamic-no-pic */
+ rtx insn, op0, op1;
enum tls_model model;
op0 = operands[0];
@@ -7549,29 +7853,49 @@ ix86_expand_move (enum machine_mode mode, rtx operands[])
}
}
- if (flag_pic && mode == Pmode && symbolic_operand (op1, Pmode))
+ /* APPLE LOCAL begin dynamic-no-pic */
+ if (MACHOPIC_INDIRECT
+ && mode == Pmode && symbolic_operand (op1, Pmode))
+ /* APPLE LOCAL end dynamic-no-pic */
{
#if TARGET_MACHO
- if (MACHOPIC_PURE)
+ /* APPLE LOCAL begin dynamic-no-pic */
+ if (MACHOPIC_INDIRECT)
{
rtx temp = ((reload_in_progress
|| ((op0 && GET_CODE (op0) == REG)
&& mode == Pmode))
? op0 : gen_reg_rtx (Pmode));
op1 = machopic_indirect_data_reference (op1, temp);
- op1 = machopic_legitimize_pic_address (op1, mode,
- temp == op1 ? 0 : temp);
+ if (MACHOPIC_PURE)
+ op1 = machopic_legitimize_pic_address (op1, mode,
+ temp == op1 ? 0 : temp);
}
- else if (MACHOPIC_INDIRECT)
- op1 = machopic_indirect_data_reference (op1, 0);
- if (op0 == op1)
- return;
-#else
+ if (op0 != op1 && GET_CODE (op0) != MEM)
+ {
+ insn = gen_rtx_SET (VOIDmode, op0, op1);
+ emit_insn (insn);
+ return;
+ }
+ if (GET_CODE (op0) == MEM)
+ op1 = force_reg (Pmode, op1);
+ else
+ {
+ rtx temp = op0;
+ if (GET_CODE (temp) != REG)
+ temp = gen_reg_rtx (Pmode);
+ temp = legitimize_pic_address (op1, temp);
+ if (temp == op0)
+ return;
+ op1 = temp;
+ }
+#else /* TARGET_MACHO */
if (GET_CODE (op0) == MEM)
op1 = force_reg (Pmode, op1);
else
op1 = legitimize_address (op1, op1, Pmode);
#endif /* TARGET_MACHO */
+ /* APPLE LOCAL end dynamic-no-pic */
}
else
{
@@ -10272,8 +10596,18 @@ ix86_split_to_parts (rtx operand, rtx *parts, enum machine_mode mode)
operand = copy_rtx (operand);
PUT_MODE (operand, Pmode);
parts[0] = parts[1] = parts[2] = operand;
+ return size;
}
- else if (!TARGET_64BIT)
+
+ if (GET_CODE (operand) == CONST_VECTOR)
+ {
+ enum machine_mode imode = int_mode_for_mode (mode);
+ operand = simplify_subreg (imode, operand, mode, 0);
+ gcc_assert (operand != NULL);
+ mode = imode;
+ }
+
+ if (!TARGET_64BIT)
{
if (mode == DImode)
split_di (&operand, 1, &parts[0], &parts[1]);
@@ -10430,6 +10764,10 @@ ix86_split_long_move (rtx operands[])
if (push && GET_CODE (operands[1]) == MEM
&& reg_overlap_mentioned_p (stack_pointer_rtx, operands[1]))
{
+ /* APPLE LOCAL begin 4099768 */
+ if (nparts == 3 && TARGET_128BIT_LONG_DOUBLE && mode == XFmode)
+ part[1][2] = adjust_address (part[1][2], SImode, 4);
+ /* APPLE LOCAL end 4099768 */
if (nparts == 3)
part[1][1] = change_address (part[1][1], GET_MODE (part[1][1]),
XEXP (part[1][2], 0));
@@ -11699,7 +12037,8 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
abort ();
#if TARGET_MACHO
- if (flag_pic && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF)
+ /* APPLE LOCAL dynamic-no-pic */
+ if (MACHOPIC_INDIRECT && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF)
fnaddr = machopic_indirect_call_target (fnaddr);
#else
/* Static functions and indirect calls don't need the pic register. */
@@ -11828,6 +12167,11 @@ memory_address_length (rtx addr)
if (! ix86_decompose_address (addr, &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);
+
base = parts.base;
index = parts.index;
disp = parts.disp;
@@ -12239,6 +12583,20 @@ ix86_constant_alignment (tree exp, int align)
&& TREE_STRING_LENGTH (exp) >= 31 && align < BITS_PER_WORD)
return BITS_PER_WORD;
+/* APPLE LOCAL begin 4090661 */
+#if TARGET_MACHO
+ /* Without this, static arrays initialized to strings get aligned
+ to 32 bytes. These go in cstring, so would result in a lot of extra
+ padding in files with a couple of small strings. 4090661. */
+ else if (TREE_CODE (exp) == STRING_CST)
+ {
+ if (TREE_STRING_LENGTH (exp) >= 31 && !optimize_size)
+ return BITS_PER_WORD;
+ else
+ return 8;
+ }
+#endif
+/* APPLE LOCAL end 4090661 */
return align;
}
@@ -12741,6 +13099,12 @@ enum ix86_builtins
IX86_BUILTIN_MOVMSKPD,
IX86_BUILTIN_PMOVMSKB128,
+ /* APPLE LOCAL begin 4099020 */
+ IX86_BUILTIN_MOVQ,
+ IX86_BUILTIN_LOADQ,
+ IX86_BUILTIN_STOREQ,
+ /* APPLE LOCAL end 4099020 */
+
IX86_BUILTIN_PACKSSWB128,
IX86_BUILTIN_PACKSSDW128,
IX86_BUILTIN_PACKUSWB128,
@@ -13235,6 +13599,12 @@ ix86_init_builtins (void)
{
if (TARGET_MMX)
ix86_init_mmx_sse_builtins ();
+
+ /* APPLE LOCAL begin constant cfstrings */
+#ifdef SUBTARGET_INIT_BUILTINS
+ SUBTARGET_INIT_BUILTINS;
+#endif
+ /* APPLE LOCAL end constant cfstrings */
}
/* Set up all the MMX/SSE builtins. This is not called if TARGET_MMX
@@ -13806,6 +14176,15 @@ ix86_init_mmx_sse_builtins (void)
def_builtin (MASK_SSE3, "__builtin_ia32_lddqu",
v16qi_ftype_pcchar, IX86_BUILTIN_LDDQU);
+ /* APPLE LOCAL begin 4099020 */
+ ftype = build_function_type_list (V4SI_type_node, V4SI_type_node, NULL_TREE);
+ def_builtin (MASK_SSE, "__builtin_ia32_movqv4si", ftype, IX86_BUILTIN_MOVQ);
+ ftype = build_function_type_list (V4SI_type_node, pv2si_type_node, NULL_TREE);
+ def_builtin (MASK_SSE, "__builtin_ia32_loadlv4si", ftype, IX86_BUILTIN_LOADQ);
+ ftype = build_function_type_list (void_type_node, pv2si_type_node, V4SI_type_node, NULL_TREE);
+ def_builtin (MASK_SSE, "__builtin_ia32_storelv4si", ftype, IX86_BUILTIN_STOREQ);
+ /* APPLE LOCAL end 4099020 */
+
/* Access to the vec_init patterns. */
ftype = build_function_type_list (V2SI_type_node, integer_type_node,
integer_type_node, NULL_TREE);
@@ -14348,6 +14727,17 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
case IX86_BUILTIN_RCPSS:
return ix86_expand_unop1_builtin (CODE_FOR_sse_vmrcpv4sf2, arglist, target);
+ /* APPLE LOCAL begin 4099020 */
+ case IX86_BUILTIN_LOADQ:
+ return ix86_expand_unop_builtin (CODE_FOR_sse_loadqv4si, arglist, target, 1);
+
+ case IX86_BUILTIN_MOVQ:
+ return ix86_expand_unop_builtin (CODE_FOR_sse_movqv4si, arglist, target, 0);
+
+ case IX86_BUILTIN_STOREQ:
+ return ix86_expand_store_builtin (CODE_FOR_sse_storeqv4si, arglist);
+ /* APPLE LOCAL end 4099020 */
+
case IX86_BUILTIN_LOADUPS:
return ix86_expand_unop_builtin (CODE_FOR_sse_movups, arglist, target, 1);
@@ -15028,15 +15418,30 @@ ix86_hard_regno_mode_ok (int regno, enum machine_mode mode)
return (VALID_MMX_REG_MODE (mode)
|| VALID_MMX_REG_MODE_3DNOW (mode));
}
- /* 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))
- return 0;
- /* Take care for QImode values - they can be in non-QI regs, but then
- they do cause partial register stalls. */
- if (regno < 4 || mode != QImode || TARGET_64BIT)
+
+ if (mode == QImode)
+ {
+ /* Take care for QImode values - they can be in non-QI regs,
+ but then they do cause partial register stalls. */
+ if (regno < 4 || TARGET_64BIT)
+ return 1;
+ if (!TARGET_PARTIAL_REG_STALL)
+ return 1;
+ return reload_in_progress || reload_completed;
+ }
+ /* We handle both integer and floats in the general purpose registers. */
+ else if (VALID_INT_MODE_P (mode))
+ return 1;
+ else if (VALID_FP_MODE_P (mode))
+ return 1;
+ /* Lots of MMX code casts 8 byte vector modes to DImode. If we then go
+ on to use that value in smaller contexts, this can easily force a
+ pseudo to be allocated to GENERAL_REGS. Since this is no worse than
+ supporting DImode, allow it. */
+ else if (VALID_MMX_REG_MODE_3DNOW (mode) || VALID_MMX_REG_MODE (mode))
return 1;
- return reload_in_progress || reload_completed || !TARGET_PARTIAL_REG_STALL;
+
+ return 0;
}
/* A subroutine of ix86_modes_tieable_p. Return true if MODE is a
@@ -15089,12 +15494,14 @@ ix86_modes_tieable_p (enum machine_mode mode1, enum machine_mode mode2)
/* If MODE2 is only appropriate for an SSE register, then tie with
any other mode acceptable to SSE registers. */
- if (SSE_REG_MODE_P (mode2))
+ if (GET_MODE_SIZE (mode2) >= 8
+ && ix86_hard_regno_mode_ok (FIRST_SSE_REG, mode2))
return ix86_hard_regno_mode_ok (FIRST_SSE_REG, mode1);
/* If MODE2 is appropriate for an MMX (or SSE) register, then tie
with any other mode acceptable to MMX registers. */
- if (MMX_REG_MODE_P (mode2))
+ if (GET_MODE_SIZE (mode2) == 8
+ && ix86_hard_regno_mode_ok (FIRST_MMX_REG, mode2))
return ix86_hard_regno_mode_ok (FIRST_MMX_REG, mode1);
return false;
@@ -15190,6 +15597,21 @@ ix86_memory_move_cost (enum machine_mode mode, enum reg_class class, int in)
}
}
+/* APPLE LOCAL begin why is this local? */
+#if TARGET_MACHO
+/* Cross-module name binding. Darwin does not support overriding
+ functions at dynamic-link time. */
+
+static bool
+ix86_binds_local_p (tree decl)
+{
+ /* APPLE LOCAL kext treat vtables as overridable */
+ return default_binds_local_p_1 (decl,
+ flag_apple_kext && lang_hooks.vtable_p (decl));
+}
+#endif
+/* APPLE LOCAL end why is this local? */
+
/* Compute a (partial) cost for rtx X. Return true if the complete
cost has been computed, and false if subexpressions should be
scanned. In either case, *TOTAL contains the cost result. */
@@ -15519,40 +15941,99 @@ machopic_output_stub (FILE *file, const char *symb, const char *stub)
sprintf (lazy_ptr_name, "L%d$lz", label);
+ /* APPLE LOCAL begin deep branch prediction pic-base */
+ /* Choose one of three possible sections for this stub. */
if (MACHOPIC_PURE)
- machopic_picsymbol_stub_section ();
+ {
+ if (TARGET_DEEP_BRANCH_PREDICTION)
+ machopic_picsymbol_stub2_section (); /* 25 byte PIC stub. */
+ else
+ machopic_picsymbol_stub_section (); /* 26 byte PIC stub. */
+ }
else
- machopic_symbol_stub_section ();
+ machopic_symbol_stub_section (); /* 16-byte -mdynamic-no-pic stub. */
+ /* APPLE LOCAL end deep branch prediction pic-base */
fprintf (file, "%s:\n", stub);
fprintf (file, "\t.indirect_symbol %s\n", symbol_name);
+ /* APPLE LOCAL begin use %ecx in stubs 4146993 */
+ /* APPLE LOCAL begin deep branch prediction pic-base */
if (MACHOPIC_PURE)
{
- fprintf (file, "\tcall LPC$%d\nLPC$%d:\tpopl %%eax\n", label, label);
- fprintf (file, "\tmovl %s-LPC$%d(%%eax),%%edx\n", lazy_ptr_name, label);
- fprintf (file, "\tjmp %%edx\n");
+ /* PIC stub. */
+ if (TARGET_DEEP_BRANCH_PREDICTION)
+ {
+ /* 25-byte PIC stub using "CALL get_pc_thunk". */
+ rtx tmp = gen_rtx_REG (SImode, 2 /* ECX */);
+ output_set_got (tmp); /* "CALL ___<cpu>.get_pc_thunk.cx". */
+ fprintf (file, "LPC$%d:\tmovl\t%s-LPC$%d(%%ecx),%%ecx\n", label, lazy_ptr_name, label);
+ }
+ else
+ {
+ /* 26-byte PIC stub using inline picbase: "CALL L42 ! L42: pop %eax". */
+ fprintf (file, "\tcall LPC$%d\nLPC$%d:\tpopl %%ecx\n", label, label);
+ fprintf (file, "\tmovl %s-LPC$%d(%%ecx),%%ecx\n", lazy_ptr_name, label);
+ }
+ fprintf (file, "\tjmp\t%%ecx\n");
}
- else
- fprintf (file, "\tjmp *%s\n", lazy_ptr_name);
+ else /* 16-byte -mdynamic-no-pic stub. */
+ fprintf (file, "\tjmp\t*%s\n", lazy_ptr_name);
+ /* The "stub_binding_helper" is a fragment that gets executed only
+ once, the first time this stub is invoked (then it becomes "dead
+ code"). It asks the dynamic linker to set the
+ lazy_symbol_pointer to point at the function we want
+ (e.g. printf) so that subsequent invocations of this stub go
+ directly to that dynamically-linked callee. Other UN*X systems
+ use similar stubs, but those are generated by the static linker
+ and never appear in assembly files. */
+ /* APPLE LOCAL end deep branch prediction pic-base */
fprintf (file, "%s:\n", binder_name);
+ /* APPLE LOCAL begin deep branch prediction pic-base * tabify insns */
if (MACHOPIC_PURE)
{
- fprintf (file, "\tlea %s-LPC$%d(%%eax),%%eax\n", lazy_ptr_name, label);
- fprintf (file, "\tpushl %%eax\n");
+ fprintf (file, "\tlea\t%s-%s(%%ecx),%%ecx\n", lazy_ptr_name, binder_name);
+ fprintf (file, "\tpushl\t%%ecx\n");
}
else
- fprintf (file, "\t pushl $%s\n", lazy_ptr_name);
+ fprintf (file, "\t pushl\t$%s\n", lazy_ptr_name);
- fprintf (file, "\tjmp dyld_stub_binding_helper\n");
+ fprintf (file, "\tjmp\tdyld_stub_binding_helper\n");
+ /* APPLE LOCAL end deep branch prediction pic-base * tabify insns */
+ /* APPLE LOCAL end use %ecx in stubs 4146993 */
+
+ /* APPLE LOCAL begin deep branch prediction pic-base. */
+ /* N.B. Keep the correspondence of these
+ 'symbol_ptr/symbol_ptr2/symbol_ptr3' sections consistent with the
+ old-pic/new-pic/non-pic stubs; altering this will break
+ compatibility with existing dylibs. */
+ if (MACHOPIC_PURE)
+ {
+ /* PIC stubs. */
+ if (TARGET_DEEP_BRANCH_PREDICTION)
+ machopic_lazy_symbol_ptr2_section (); /* 25-byte PIC stub using "CALL get_pc_thunk". */
+ else
+ machopic_lazy_symbol_ptr_section (); /* 26-byte PIC stub using inline picbase: "CALL L42 ! L42: pop %ebx". */
+ }
+ else
+ machopic_lazy_symbol_ptr3_section (); /* 16-byte -mdynamic-no-pic stub. */
- machopic_lazy_symbol_ptr_section ();
fprintf (file, "%s:\n", lazy_ptr_name);
fprintf (file, "\t.indirect_symbol %s\n", symbol_name);
- fprintf (file, "\t.long %s\n", binder_name);
+ fprintf (file, "\t.long\t%s\n", binder_name);
+ /* APPLE LOCAL end deep branch prediction pic-base. */
+}
+
+/* APPLE LOCAL begin deep branch prediction pic-base */
+void
+darwin_x86_file_end (void)
+{
+ darwin_file_end ();
+ ix86_file_end ();
}
+/* APPLE LOCAL end deep branch prediction pic-base */
#endif /* TARGET_MACHO */
/* Order the registers for register allocator. */
@@ -15873,6 +16354,14 @@ x86_field_alignment (tree field, int computed)
if (TARGET_64BIT || TARGET_ALIGN_DOUBLE)
return computed;
+ /* APPLE LOCAL begin mac68k alignment */
+ if (TARGET_ALIGN_MAC68K)
+ {
+ if (computed >= 128)
+ return computed;
+ return MIN (computed, 16);
+ }
+ /* APPLE LOCAL end mac68k alignment */
mode = TYPE_MODE (TREE_CODE (type) == ARRAY_TYPE
? get_inner_array_type (type) : type);
if (mode == DFmode || mode == DCmode
@@ -16198,11 +16687,21 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, enum machine_mode mode,
case V4HImode:
if (!mmx_ok)
return false;
- val = gen_lowpart (SImode, val);
- x = gen_rtx_TRUNCATE (HImode, val);
- x = gen_rtx_VEC_DUPLICATE (mode, x);
- emit_insn (gen_rtx_SET (VOIDmode, target, x));
- return true;
+ if (TARGET_SSE || TARGET_3DNOW_A)
+ {
+ val = gen_lowpart (SImode, val);
+ x = gen_rtx_TRUNCATE (HImode, val);
+ x = gen_rtx_VEC_DUPLICATE (mode, x);
+ emit_insn (gen_rtx_SET (VOIDmode, target, x));
+ return true;
+ }
+ else
+ {
+ smode = HImode;
+ wsmode = SImode;
+ wvmode = V2SImode;
+ goto widen;
+ }
case V8QImode:
if (!mmx_ok)
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 5c2046a49d7..2f47472df2e 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -104,6 +104,13 @@ extern int target_flags;
#endif
#endif
+/* APPLE LOCAL begin mainline 2005-04-11 4010614 */
+#ifndef TARGET_FPMATH_DEFAULT
+#define TARGET_FPMATH_DEFAULT \
+ (TARGET_64BIT && TARGET_SSE ? FPMATH_SSE : FPMATH_387)
+#endif
+/* APPLE LOCAL end mainline 2005-04-11 4010614 */
+
/* Masks for the -m switches */
#define MASK_80387 0x00000001 /* Hardware floating point */
#define MASK_RTD 0x00000002 /* Use ret that pops args */
@@ -129,7 +136,8 @@ extern int target_flags;
#define MASK_MS_BITFIELD_LAYOUT 0x00200000 /* Use native (MS) bitfield layout */
#define MASK_TLS_DIRECT_SEG_REFS 0x00400000 /* Avoid adding %gs:0 */
-/* Unused: 0x03e0000 */
+/* APPLE LOCAL dynamic-no-pic */
+/* Unused: 0x03000000 */
/* ... overlap with subtarget options starts by 0x04000000. */
#define MASK_NO_RED_ZONE 0x04000000 /* Do not use red zone */
@@ -229,7 +237,8 @@ extern int target_flags;
#define TUNEMASK (1 << ix86_tune)
extern const int x86_use_leave, x86_push_memory, x86_zero_extend_with_and;
-extern const int x86_use_bit_test, x86_cmove, x86_deep_branch;
+/* APPLE LOCAL mainline 2005-03-16 4054919 */
+extern const int x86_use_bit_test, x86_cmove, x86_fisttp, x86_deep_branch;
extern const int x86_branch_hints, x86_unroll_strlen;
extern const int x86_double_with_add, x86_partial_reg_stall, x86_movx;
extern const int x86_use_loop, x86_use_fiop, x86_use_mov0;
@@ -258,6 +267,8 @@ extern int x86_prefetch_sse;
/* For sane SSE instruction set generation we need fcomi instruction. It is
safe to enable all CMOVE instructions. */
#define TARGET_CMOVE ((x86_cmove & (1 << ix86_arch)) || TARGET_SSE)
+/* APPLE LOCAL mainline 2005-03-16 4054919 */
+#define TARGET_FISTTP (x86_fisttp & (1 << ix86_arch))
#define TARGET_DEEP_BRANCH_PREDICTION (x86_deep_branch & TUNEMASK)
#define TARGET_BRANCH_PREDICTION_HINTS (x86_branch_hints & TUNEMASK)
#define TARGET_DOUBLE_WITH_ADD (x86_double_with_add & TUNEMASK)
@@ -792,7 +803,15 @@ extern int x86_prefetch_sse;
#define PARM_BOUNDARY BITS_PER_WORD
/* Boundary (in *bits*) on which stack pointer should be aligned. */
-#define STACK_BOUNDARY BITS_PER_WORD
+/* APPLE LOCAL begin compiler should obey -mpreferred-stack-boundary (radar 3232990) */
+/* prefer * #define STACK_BOUNDARY ((ix86_preferred_stack_boundary > 128) ? 128 : ix86_preferred_stack_boundary) */
+/* We're going to extremes to yield a result of indeterminite
+ signedness here; this macro will be expanded in signed and
+ unsigned contexts, and mixed signedness induces fatal
+ warnings. Radar 3941684. */
+#define STACK_BOUNDARY ((ix86_preferred_stack_boundary >= 128) ? 128 : \
+ (ix86_preferred_stack_boundary == 64) ? 64 : 32)
+/* APPLE LOCAL end compiler should obey -mpreferred-stack-boundary (radar 3232990) */
/* Boundary (in *bits*) on which the stack pointer prefers to be
aligned; the compiler cannot rely on having this alignment. */
@@ -843,7 +862,8 @@ extern int x86_prefetch_sse;
#define BIGGEST_FIELD_ALIGNMENT 32
#endif
#else
-#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \
+/* APPLE LOCAL Macintosh alignment */
+#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED, FIRST_FIELD_P) \
x86_field_alignment (FIELD, COMPUTED)
#endif
@@ -1107,11 +1127,6 @@ do { \
|| (MODE) == V8HImode || (MODE) == V2DFmode || (MODE) == V2DImode \
|| (MODE) == V4SFmode || (MODE) == V4SImode)
-/* Return true for modes passed in MMX registers. */
-#define MMX_REG_MODE_P(MODE) \
- ((MODE) == V8QImode || (MODE) == V4HImode || (MODE) == V2SImode \
- || (MODE) == V2SFmode)
-
/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index d9a4ce599ed..a8d1c2bd6da 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -113,6 +113,11 @@
(UNSPEC_MOVSLDUP 75)
(UNSPEC_LDQQU 76)
(UNSPEC_MOVDDUP 77)
+ ; APPLE LOCAL begin 4121692
+ (UNSPEC_LDQ 101)
+ (UNSPEC_MOVQ 102)
+ (UNSPEC_STOQ 103)
+ ; APPLE LOCAL end 4121692
; x87 Floating point
(UNSPEC_FPATAN 65)
@@ -187,6 +192,7 @@
;; A basic instruction type. Refinements due to arguments to be
;; provided in other attributes.
+; APPLE LOCAL begin mainline 2005-03-16 4054919
(define_attr "type"
"other,multi,
alu,alu1,negnot,imov,imovx,lea,
@@ -194,11 +200,12 @@
icmp,test,ibr,setcc,icmov,
push,pop,call,callv,leave,
str,cld,
- fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,frndint,
+ fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint,
sselog,sselog1,sseiadd,sseishft,sseimul,
sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv,
mmx,mmxmov,mmxadd,mmxmul,mmxcmp,mmxcvt,mmxshft"
(const_string "other"))
+; APPLE LOCAL end mainline 2005-03-16 4054919
;; Main data type used by the insn
(define_attr "mode"
@@ -207,7 +214,8 @@
;; The CPU unit operations uses.
(define_attr "unit" "integer,i387,sse,mmx,unknown"
- (cond [(eq_attr "type" "fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,frndint")
+; APPLE LOCAL mainline 2005-03-16 4054919
+ (cond [(eq_attr "type" "fmov,fop,fsgn,fmul,fdiv,fpspc,fcmov,fcmp,fxch,fistp,fisttp,frndint")
(const_string "i387")
(eq_attr "type" "sselog,sselog1,sseiadd,sseishft,sseimul,
sse,ssemov,sseadd,ssemul,ssecmp,ssecomi,ssecvt,sseicvt,ssediv")
@@ -441,6 +449,24 @@
(define_asm_attributes
[(set_attr "length" "128")
(set_attr "type" "multi")])
+; APPLE LOCAL begin mainline 2005-03-16 4054919
+
+;; All x87 floating point modes
+(define_mode_macro X87MODEF [SF DF XF])
+
+;; All integer modes handled by x87 fisttp operator.
+(define_mode_macro X87MODEI [HI SI DI])
+
+;; All integer modes handled by integer x87 operators.
+(define_mode_macro X87MODEI12 [HI SI])
+
+;; All SSE floating point modes
+(define_mode_macro SSEMODEF [SF DF])
+
+;; All integer modes handled by SSE cvtts?2si* operators.
+(define_mode_macro SSEMODEI24 [SI DI])
+
+; APPLE LOCAL end mainline 2005-03-16 4054919
;; Scheduling descriptions
@@ -1443,9 +1469,10 @@
;; For loads of Q_REG to NONQ_REG we use full sized moves except for partial
;; register stall machines with, where we use QImode instructions, since
;; partial register stall can be caused there. Then we use movzx.
+;; APPLE LOCAL begin mainline 4104248
(define_insn "*movqi_1"
[(set (match_operand:QI 0 "nonimmediate_operand" "=q,q ,q ,r,r ,?r,m")
- (match_operand:QI 1 "general_operand" " q,qn,qm,q,rn,qm,qn"))]
+ (match_operand:QI 1 "general_operand" " q,qn,qm,q,rn,m ,qn"))]
"GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
{
switch (get_attr_type (insn))
@@ -1462,7 +1489,9 @@
}
}
[(set (attr "type")
- (cond [(ne (symbol_ref "optimize_size") (const_int 0))
+ (cond [(eq_attr "alternative" "5")
+ (const_string "imovx")
+ (ne (symbol_ref "optimize_size") (const_int 0))
(const_string "imov")
(and (eq_attr "alternative" "3")
(ior (eq (symbol_ref "TARGET_PARTIAL_REG_STALL")
@@ -1470,7 +1499,7 @@
(eq (symbol_ref "TARGET_QIMODE_MATH")
(const_int 0))))
(const_string "imov")
- (eq_attr "alternative" "3,5")
+ (eq_attr "alternative" "3")
(const_string "imovx")
(and (ne (symbol_ref "TARGET_MOVX")
(const_int 0))
@@ -1500,6 +1529,7 @@
(const_string "SI")
]
(const_string "QI")))])
+;; APPLE LOCAL end mainline 4104248
(define_expand "reload_outqi"
[(parallel [(match_operand:QI 0 "" "=m")
@@ -3770,6 +3800,22 @@
[(set_attr "type" "fmov,multi")
(set_attr "mode" "SF")])
+(define_insn "*truncdfsf2_i387_1"
+ [(set (match_operand:SF 0 "memory_operand" "=m")
+ (float_truncate:SF
+ (match_operand:DF 1 "register_operand" "f")))]
+ "TARGET_80387
+ && !(TARGET_SSE2 && TARGET_SSE_MATH)
+ && !TARGET_MIX_SSE_I387"
+{
+ if (find_regno_note (insn, REG_DEAD, REGNO (operands[1])))
+ return "fstp%z0\t%y0";
+ else
+ return "fst%z0\t%y0";
+}
+ [(set_attr "type" "fmov")
+ (set_attr "mode" "SF")])
+
(define_split
[(set (match_operand:SF 0 "register_operand" "")
(float_truncate:SF
@@ -3995,8 +4041,7 @@
[(set (match_dup 0) (float_truncate:DF (match_dup 1)))]
"")
-;; %%% Break up all these bad boys.
-
+; APPLE LOCAL begin mainline 2005-03-16 4054919
;; Signed conversion to DImode.
(define_expand "fix_truncxfdi2"
@@ -4004,361 +4049,234 @@
(fix:DI (match_operand:XF 1 "register_operand" "")))
(clobber (reg:CC FLAGS_REG))])]
"TARGET_80387"
- "")
-
-(define_expand "fix_truncdfdi2"
- [(parallel [(set (match_operand:DI 0 "nonimmediate_operand" "")
- (fix:DI (match_operand:DF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387 || (TARGET_64BIT && TARGET_SSE2)"
{
- if (TARGET_64BIT && TARGET_SSE2)
+ if (TARGET_FISTTP)
{
- rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (DImode);
- emit_insn (gen_fix_truncdfdi_sse (out, operands[1]));
- if (out != operands[0])
- emit_move_insn (operands[0], out);
+ emit_insn (gen_fix_truncdi_fisttp_i387_1 (operands[0], operands[1]));
DONE;
}
})
-(define_expand "fix_truncsfdi2"
+(define_expand "fix_trunc<mode>di2"
[(parallel [(set (match_operand:DI 0 "nonimmediate_operand" "")
- (fix:DI (match_operand:SF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387 || (TARGET_64BIT && TARGET_SSE)"
+ (fix:DI (match_operand:SSEMODEF 1 "register_operand" "")))
+ (clobber (reg:CC FLAGS_REG))])]
+ "TARGET_80387 || (TARGET_64BIT && SSE_FLOAT_MODE_P (<MODE>mode))"
{
- if (TARGET_64BIT && TARGET_SSE)
+ if (TARGET_FISTTP
+ && !(TARGET_64BIT && SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH))
+ {
+ emit_insn (gen_fix_truncdi_fisttp_i387_1 (operands[0], operands[1]));
+ DONE;
+ }
+ if (TARGET_64BIT && SSE_FLOAT_MODE_P (<MODE>mode))
{
rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (DImode);
- emit_insn (gen_fix_truncsfdi_sse (out, operands[1]));
+ emit_insn (gen_fix_trunc<mode>di_sse (out, operands[1]));
if (out != operands[0])
emit_move_insn (operands[0], out);
DONE;
}
})
-;; See the comments in i386.h near OPTIMIZE_MODE_SWITCHING for the description
-;; of the machinery.
-(define_insn_and_split "*fix_truncdi_i387"
- [(set (match_operand:DI 0 "nonimmediate_operand" "=m,?r")
- (fix:DI (match_operand 1 "register_operand" "f,f")))
- (clobber (reg:CC FLAGS_REG))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && !reload_completed && !reload_in_progress
- && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- ix86_optimize_mode_switching = 1;
- operands[2] = assign_386_stack_local (HImode, 1);
- operands[3] = assign_386_stack_local (HImode, 2);
- if (memory_operand (operands[0], VOIDmode))
- emit_insn (gen_fix_truncdi_memory (operands[0], operands[1],
- operands[2], operands[3]));
- else
- {
- operands[4] = assign_386_stack_local (DImode, 0);
- emit_insn (gen_fix_truncdi_nomemory (operands[0], operands[1],
- operands[2], operands[3],
- operands[4]));
- }
- DONE;
-}
- [(set_attr "type" "fistp")
- (set_attr "i387_cw" "trunc")
- (set_attr "mode" "DI")])
-
-(define_insn "fix_truncdi_nomemory"
- [(set (match_operand:DI 0 "nonimmediate_operand" "=m,?r")
- (fix:DI (match_operand 1 "register_operand" "f,f")))
- (use (match_operand:HI 2 "memory_operand" "m,m"))
- (use (match_operand:HI 3 "memory_operand" "m,m"))
- (clobber (match_operand:DI 4 "memory_operand" "=m,m"))
- (clobber (match_scratch:DF 5 "=&1f,&1f"))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)"
- "#"
- [(set_attr "type" "fistp")
- (set_attr "i387_cw" "trunc")
- (set_attr "mode" "DI")])
-
-(define_insn "fix_truncdi_memory"
- [(set (match_operand:DI 0 "memory_operand" "=m")
- (fix:DI (match_operand 1 "register_operand" "f")))
- (use (match_operand:HI 2 "memory_operand" "m"))
- (use (match_operand:HI 3 "memory_operand" "m"))
- (clobber (match_scratch:DF 4 "=&1f"))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && (!SSE_FLOAT_MODE_P (GET_MODE (operands[1])) || !TARGET_64BIT)"
- "* return output_fix_trunc (insn, operands);"
- [(set_attr "type" "fistp")
- (set_attr "i387_cw" "trunc")
- (set_attr "mode" "DI")])
-
-(define_split
- [(set (match_operand:DI 0 "register_operand" "")
- (fix:DI (match_operand 1 "register_operand" "")))
- (use (match_operand:HI 2 "memory_operand" ""))
- (use (match_operand:HI 3 "memory_operand" ""))
- (clobber (match_operand:DI 4 "memory_operand" ""))
- (clobber (match_scratch 5 ""))]
- "reload_completed"
- [(parallel [(set (match_dup 4) (fix:DI (match_dup 1)))
- (use (match_dup 2))
- (use (match_dup 3))
- (clobber (match_dup 5))])
- (set (match_dup 0) (match_dup 4))]
- "")
-
-(define_split
- [(set (match_operand:DI 0 "memory_operand" "")
- (fix:DI (match_operand 1 "register_operand" "")))
- (use (match_operand:HI 2 "memory_operand" ""))
- (use (match_operand:HI 3 "memory_operand" ""))
- (clobber (match_operand:DI 4 "memory_operand" ""))
- (clobber (match_scratch 5 ""))]
- "reload_completed"
- [(parallel [(set (match_dup 0) (fix:DI (match_dup 1)))
- (use (match_dup 2))
- (use (match_dup 3))
- (clobber (match_dup 5))])]
- "")
-
-;; When SSE available, it is always faster to use it!
-(define_insn "fix_truncsfdi_sse"
- [(set (match_operand:DI 0 "register_operand" "=r,r")
- (fix:DI (match_operand:SF 1 "nonimmediate_operand" "x,xm")))]
- "TARGET_64BIT && TARGET_SSE"
- "cvttss2si{q}\t{%1, %0|%0, %1}"
- [(set_attr "type" "sseicvt")
- (set_attr "mode" "SF")
- (set_attr "athlon_decode" "double,vector")])
-
-;; Avoid vector decoded form of the instruction.
-(define_peephole2
- [(match_scratch:SF 2 "x")
- (set (match_operand:DI 0 "register_operand" "")
- (fix:DI (match_operand:SF 1 "memory_operand" "")))]
- "TARGET_K8 && !optimize_size"
- [(set (match_dup 2) (match_dup 1))
- (set (match_dup 0) (fix:DI (match_dup 2)))]
- "")
-
-(define_insn "fix_truncdfdi_sse"
- [(set (match_operand:DI 0 "register_operand" "=r,r")
- (fix:DI (match_operand:DF 1 "nonimmediate_operand" "Y,Ym")))]
- "TARGET_64BIT && TARGET_SSE2"
- "cvttsd2si{q}\t{%1, %0|%0, %1}"
- [(set_attr "type" "sseicvt,sseicvt")
- (set_attr "mode" "DF")
- (set_attr "athlon_decode" "double,vector")])
-
-;; Avoid vector decoded form of the instruction.
-(define_peephole2
- [(match_scratch:DF 2 "Y")
- (set (match_operand:DI 0 "register_operand" "")
- (fix:DI (match_operand:DF 1 "memory_operand" "")))]
- "TARGET_K8 && !optimize_size"
- [(set (match_dup 2) (match_dup 1))
- (set (match_dup 0) (fix:DI (match_dup 2)))]
- "")
-
;; Signed conversion to SImode.
(define_expand "fix_truncxfsi2"
[(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
- (fix:SI (match_operand:XF 1 "register_operand" "")))
+ (fix:SI (match_operand:XF 1 "register_operand" "")))
(clobber (reg:CC FLAGS_REG))])]
"TARGET_80387"
- "")
-
-(define_expand "fix_truncdfsi2"
- [(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
- (fix:SI (match_operand:DF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387 || TARGET_SSE2"
{
- if (TARGET_SSE2)
+ if (TARGET_FISTTP)
{
- rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (SImode);
- emit_insn (gen_fix_truncdfsi_sse (out, operands[1]));
- if (out != operands[0])
- emit_move_insn (operands[0], out);
+ emit_insn (gen_fix_truncsi_fisttp_i387_1 (operands[0], operands[1]));
DONE;
}
})
-(define_expand "fix_truncsfsi2"
+(define_expand "fix_trunc<mode>si2"
[(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "")
- (fix:SI (match_operand:SF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387 || TARGET_SSE"
+ (fix:SI (match_operand:SSEMODEF 1 "register_operand" "")))
+ (clobber (reg:CC FLAGS_REG))])]
+ "TARGET_80387 || (SSE_FLOAT_MODE_P (<MODE>mode))"
{
- if (TARGET_SSE)
+ if (TARGET_FISTTP
+ && !(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH))
+ {
+ emit_insn (gen_fix_truncsi_fisttp_i387_1 (operands[0], operands[1]));
+ DONE;
+ }
+ if (SSE_FLOAT_MODE_P (<MODE>mode))
{
rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (SImode);
- emit_insn (gen_fix_truncsfsi_sse (out, operands[1]));
+ emit_insn (gen_fix_trunc<mode>si_sse (out, operands[1]));
if (out != operands[0])
emit_move_insn (operands[0], out);
DONE;
}
})
-;; See the comments in i386.h near OPTIMIZE_MODE_SWITCHING for the description
-;; of the machinery.
-(define_insn_and_split "*fix_truncsi_i387"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=m,?r")
- (fix:SI (match_operand 1 "register_operand" "f,f")))
- (clobber (reg:CC FLAGS_REG))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && !reload_completed && !reload_in_progress
- && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
- "#"
- "&& 1"
- [(const_int 0)]
+;; Signed conversion to HImode.
+
+(define_expand "fix_trunc<mode>hi2"
+ [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
+ (fix:HI (match_operand:X87MODEF 1 "register_operand" "")))
+ (clobber (reg:CC FLAGS_REG))])]
+ "TARGET_80387
+ && !(SSE_FLOAT_MODE_P (<MODE>mode) && (!TARGET_FISTTP || TARGET_SSE_MATH))"
{
- ix86_optimize_mode_switching = 1;
- operands[2] = assign_386_stack_local (HImode, 1);
- operands[3] = assign_386_stack_local (HImode, 2);
- if (memory_operand (operands[0], VOIDmode))
- emit_insn (gen_fix_truncsi_memory (operands[0], operands[1],
- operands[2], operands[3]));
- else
- {
- operands[4] = assign_386_stack_local (SImode, 0);
- emit_insn (gen_fix_truncsi_nomemory (operands[0], operands[1],
- operands[2], operands[3],
- operands[4]));
- }
- DONE;
-}
- [(set_attr "type" "fistp")
- (set_attr "i387_cw" "trunc")
- (set_attr "mode" "SI")])
+ if (TARGET_FISTTP)
+ {
+ emit_insn (gen_fix_trunchi_fisttp_i387_1 (operands[0], operands[1]));
+ DONE;
+ }
+})
-(define_insn "fix_truncsi_nomemory"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=m,?r")
- (fix:SI (match_operand 1 "register_operand" "f,f")))
- (use (match_operand:HI 2 "memory_operand" "m,m"))
- (use (match_operand:HI 3 "memory_operand" "m,m"))
- (clobber (match_operand:SI 4 "memory_operand" "=m,m"))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
- "#"
- [(set_attr "type" "fistp")
- (set_attr "i387_cw" "trunc")
- (set_attr "mode" "SI")])
+;; When SSE is available, it is always faster to use it!
+(define_insn "fix_truncsfdi_sse"
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (fix:DI (match_operand:SF 1 "nonimmediate_operand" "x,xm")))]
+ "TARGET_64BIT && TARGET_SSE && (!TARGET_FISTTP || TARGET_SSE_MATH)"
+ "cvttss2si{q}\t{%1, %0|%0, %1}"
+ [(set_attr "type" "sseicvt")
+ (set_attr "mode" "SF")
+ (set_attr "athlon_decode" "double,vector")])
-(define_insn "fix_truncsi_memory"
- [(set (match_operand:SI 0 "memory_operand" "=m")
- (fix:SI (match_operand 1 "register_operand" "f")))
- (use (match_operand:HI 2 "memory_operand" "m"))
- (use (match_operand:HI 3 "memory_operand" "m"))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
- "* return output_fix_trunc (insn, operands);"
- [(set_attr "type" "fistp")
- (set_attr "i387_cw" "trunc")
- (set_attr "mode" "SI")])
+(define_insn "fix_truncdfdi_sse"
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (fix:DI (match_operand:DF 1 "nonimmediate_operand" "Y,Ym")))]
+ "TARGET_64BIT && TARGET_SSE2 && (!TARGET_FISTTP || TARGET_SSE_MATH)"
+ "cvttsd2si{q}\t{%1, %0|%0, %1}"
+ [(set_attr "type" "sseicvt")
+ (set_attr "mode" "DF")
+ (set_attr "athlon_decode" "double,vector")])
-;; When SSE available, it is always faster to use it!
(define_insn "fix_truncsfsi_sse"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(fix:SI (match_operand:SF 1 "nonimmediate_operand" "x,xm")))]
- "TARGET_SSE"
+ "TARGET_SSE && (!TARGET_FISTTP || TARGET_SSE_MATH)"
"cvttss2si\t{%1, %0|%0, %1}"
[(set_attr "type" "sseicvt")
(set_attr "mode" "DF")
(set_attr "athlon_decode" "double,vector")])
-;; Avoid vector decoded form of the instruction.
-(define_peephole2
- [(match_scratch:SF 2 "x")
- (set (match_operand:SI 0 "register_operand" "")
- (fix:SI (match_operand:SF 1 "memory_operand" "")))]
- "TARGET_K8 && !optimize_size"
- [(set (match_dup 2) (match_dup 1))
- (set (match_dup 0) (fix:SI (match_dup 2)))]
- "")
-
(define_insn "fix_truncdfsi_sse"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(fix:SI (match_operand:DF 1 "nonimmediate_operand" "Y,Ym")))]
- "TARGET_SSE2"
+ "TARGET_SSE2 && (!TARGET_FISTTP || TARGET_SSE_MATH)"
"cvttsd2si\t{%1, %0|%0, %1}"
[(set_attr "type" "sseicvt")
(set_attr "mode" "DF")
(set_attr "athlon_decode" "double,vector")])
-;; Avoid vector decoded form of the instruction.
+;; Avoid vector decoded forms of the instruction.
(define_peephole2
[(match_scratch:DF 2 "Y")
- (set (match_operand:SI 0 "register_operand" "")
- (fix:SI (match_operand:DF 1 "memory_operand" "")))]
+ (set (match_operand:SSEMODEI24 0 "register_operand" "")
+ (fix:SSEMODEI24 (match_operand:DF 1 "memory_operand" "")))]
"TARGET_K8 && !optimize_size"
[(set (match_dup 2) (match_dup 1))
- (set (match_dup 0) (fix:SI (match_dup 2)))]
- "")
-
-(define_split
- [(set (match_operand:SI 0 "register_operand" "")
- (fix:SI (match_operand 1 "register_operand" "")))
- (use (match_operand:HI 2 "memory_operand" ""))
- (use (match_operand:HI 3 "memory_operand" ""))
- (clobber (match_operand:SI 4 "memory_operand" ""))]
- "reload_completed"
- [(parallel [(set (match_dup 4) (fix:SI (match_dup 1)))
- (use (match_dup 2))
- (use (match_dup 3))])
- (set (match_dup 0) (match_dup 4))]
+ (set (match_dup 0) (fix:SSEMODEI24 (match_dup 2)))]
"")
-(define_split
- [(set (match_operand:SI 0 "memory_operand" "")
- (fix:SI (match_operand 1 "register_operand" "")))
- (use (match_operand:HI 2 "memory_operand" ""))
- (use (match_operand:HI 3 "memory_operand" ""))
- (clobber (match_operand:SI 4 "memory_operand" ""))]
- "reload_completed"
- [(parallel [(set (match_dup 0) (fix:SI (match_dup 1)))
- (use (match_dup 2))
- (use (match_dup 3))])]
+(define_peephole2
+ [(match_scratch:SF 2 "x")
+ (set (match_operand:SSEMODEI24 0 "register_operand" "")
+ (fix:SSEMODEI24 (match_operand:SF 1 "memory_operand" "")))]
+ "TARGET_K8 && !optimize_size"
+ [(set (match_dup 2) (match_dup 1))
+ (set (match_dup 0) (fix:SSEMODEI24 (match_dup 2)))]
"")
-;; Signed conversion to HImode.
-
-(define_expand "fix_truncxfhi2"
- [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
- (fix:HI (match_operand:XF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387"
- "")
+(define_insn_and_split "fix_trunc<mode>_fisttp_i387_1"
+ [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "=m,?r")
+ (fix:X87MODEI (match_operand 1 "register_operand" "f,f")))]
+ "TARGET_80387 && TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
+ && (TARGET_64BIT || <MODE>mode != DImode))
+ && TARGET_SSE_MATH)
+ && !(reload_completed || reload_in_progress)"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ if (memory_operand (operands[0], VOIDmode))
+ emit_insn (gen_fix_trunc<mode>_i387_fisttp (operands[0], operands[1]));
+ else
+ {
+ operands[2] = assign_386_stack_local (<MODE>mode, 0);
+ emit_insn (gen_fix_trunc<mode>_i387_fisttp_with_temp (operands[0],
+ operands[1],
+ operands[2]));
+ }
+ DONE;
+}
+ [(set_attr "type" "fisttp")
+ (set_attr "mode" "<MODE>")])
+
+(define_insn "fix_trunc<mode>_i387_fisttp"
+ [(set (match_operand:X87MODEI 0 "memory_operand" "=m")
+ (fix:X87MODEI (match_operand 1 "register_operand" "f")))
+ (clobber (match_scratch:XF 2 "=&1f"))]
+ "TARGET_80387 && TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
+ && (TARGET_64BIT || <MODE>mode != DImode))
+ && TARGET_SSE_MATH)"
+ "* return output_fix_trunc (insn, operands, 1);"
+ [(set_attr "type" "fisttp")
+ (set_attr "mode" "<MODE>")])
+
+(define_insn "fix_trunc<mode>_i387_fisttp_with_temp"
+ [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "=m,?r")
+ (fix:X87MODEI (match_operand 1 "register_operand" "f,f")))
+ (clobber (match_operand:X87MODEI 2 "memory_operand" "=m,m"))
+ (clobber (match_scratch:XF 3 "=&1f,&1f"))]
+ "TARGET_80387 && TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !((SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
+ && (TARGET_64BIT || <MODE>mode != DImode))
+ && TARGET_SSE_MATH)"
+ "#"
+ [(set_attr "type" "fisttp")
+ (set_attr "mode" "<MODE>")])
-(define_expand "fix_truncdfhi2"
- [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
- (fix:HI (match_operand:DF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387 && !TARGET_SSE2"
+(define_split
+ [(set (match_operand:X87MODEI 0 "register_operand" "")
+ (fix:X87MODEI (match_operand 1 "register_operand" "")))
+ (clobber (match_operand:X87MODEI 2 "memory_operand" ""))
+ (clobber (match_scratch 3 ""))]
+ "reload_completed"
+ [(parallel [(set (match_dup 2) (fix:X87MODEI (match_dup 1)))
+ (clobber (match_dup 3))])
+ (set (match_dup 0) (match_dup 2))]
"")
-(define_expand "fix_truncsfhi2"
- [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "")
- (fix:HI (match_operand:SF 1 "register_operand" "")))
- (clobber (reg:CC FLAGS_REG))])]
- "TARGET_80387 && !TARGET_SSE"
+(define_split
+ [(set (match_operand:X87MODEI 0 "memory_operand" "")
+ (fix:X87MODEI (match_operand 1 "register_operand" "")))
+ (clobber (match_operand:X87MODEI 2 "memory_operand" ""))
+ (clobber (match_scratch 3 ""))]
+ "reload_completed"
+ [(parallel [(set (match_dup 0) (fix:X87MODEI (match_dup 1)))
+ (clobber (match_dup 3))])]
"")
;; See the comments in i386.h near OPTIMIZE_MODE_SWITCHING for the description
-;; of the machinery.
-(define_insn_and_split "*fix_trunchi_i387"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=m,?r")
- (fix:HI (match_operand 1 "register_operand" "f,f")))
- (clobber (reg:CC FLAGS_REG))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && !reload_completed && !reload_in_progress
- && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
+;; of the machinery. Please note the clobber of FLAGS_REG. In i387 control
+;; word calculation (inserted by LCM in mode switching pass) a FLAGS_REG
+;; clobbering insns can be used. Look at emit_i387_cw_initialization ()
+;; function in i386.c.
+(define_insn_and_split "*fix_trunc<mode>_i387_1"
+ [(set (match_operand:X87MODEI 0 "nonimmediate_operand" "=m,?r")
+ (fix:X87MODEI (match_operand 1 "register_operand" "f,f")))
+ (clobber (reg:CC FLAGS_REG))]
+ "TARGET_80387 && !TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !(SSE_FLOAT_MODE_P (GET_MODE (operands[1]))
+ && (TARGET_64BIT || <MODE>mode != DImode))
+ && !(reload_completed || reload_in_progress)"
"#"
"&& 1"
[(const_int 0)]
@@ -4367,71 +4285,131 @@
operands[2] = assign_386_stack_local (HImode, 1);
operands[3] = assign_386_stack_local (HImode, 2);
if (memory_operand (operands[0], VOIDmode))
- emit_insn (gen_fix_trunchi_memory (operands[0], operands[1],
- operands[2], operands[3]));
+ emit_insn (gen_fix_trunc<mode>_i387 (operands[0], operands[1],
+ operands[2], operands[3]));
else
{
- operands[4] = assign_386_stack_local (HImode, 0);
- emit_insn (gen_fix_trunchi_nomemory (operands[0], operands[1],
- operands[2], operands[3],
- operands[4]));
+ operands[4] = assign_386_stack_local (<MODE>mode, 0);
+ emit_insn (gen_fix_trunc<mode>_i387_with_temp (operands[0], operands[1],
+ operands[2], operands[3],
+ operands[4]));
}
DONE;
}
[(set_attr "type" "fistp")
(set_attr "i387_cw" "trunc")
- (set_attr "mode" "HI")])
+ (set_attr "mode" "<MODE>")])
-(define_insn "fix_trunchi_nomemory"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=m,?r")
- (fix:HI (match_operand 1 "register_operand" "f,f")))
+(define_insn "fix_truncdi_i387"
+ [(set (match_operand:DI 0 "memory_operand" "=m")
+ (fix:DI (match_operand 1 "register_operand" "f")))
+ (use (match_operand:HI 2 "memory_operand" "m"))
+ (use (match_operand:HI 3 "memory_operand" "m"))
+ (clobber (match_scratch:XF 4 "=&1f"))]
+ "TARGET_80387 && !TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))"
+ "* return output_fix_trunc (insn, operands, 0);"
+ [(set_attr "type" "fistp")
+ (set_attr "i387_cw" "trunc")
+ (set_attr "mode" "DI")])
+
+(define_insn "fix_truncdi_i387_with_temp"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=m,?r")
+ (fix:DI (match_operand 1 "register_operand" "f,f")))
(use (match_operand:HI 2 "memory_operand" "m,m"))
(use (match_operand:HI 3 "memory_operand" "m,m"))
- (clobber (match_operand:HI 4 "memory_operand" "=m,m"))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
- && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
+ (clobber (match_operand:DI 4 "memory_operand" "=m,m"))
+ (clobber (match_scratch:XF 5 "=&1f,&1f"))]
+ "TARGET_80387 && !TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !(TARGET_64BIT && SSE_FLOAT_MODE_P (GET_MODE (operands[1])))"
"#"
[(set_attr "type" "fistp")
(set_attr "i387_cw" "trunc")
- (set_attr "mode" "HI")])
+ (set_attr "mode" "DI")])
-(define_insn "fix_trunchi_memory"
- [(set (match_operand:HI 0 "memory_operand" "=m")
- (fix:HI (match_operand 1 "register_operand" "f")))
+(define_split
+ [(set (match_operand:DI 0 "register_operand" "")
+ (fix:DI (match_operand 1 "register_operand" "")))
+ (use (match_operand:HI 2 "memory_operand" ""))
+ (use (match_operand:HI 3 "memory_operand" ""))
+ (clobber (match_operand:DI 4 "memory_operand" ""))
+ (clobber (match_scratch 5 ""))]
+ "reload_completed"
+ [(parallel [(set (match_dup 4) (fix:DI (match_dup 1)))
+ (use (match_dup 2))
+ (use (match_dup 3))
+ (clobber (match_dup 5))])
+ (set (match_dup 0) (match_dup 4))]
+ "")
+
+(define_split
+ [(set (match_operand:DI 0 "memory_operand" "")
+ (fix:DI (match_operand 1 "register_operand" "")))
+ (use (match_operand:HI 2 "memory_operand" ""))
+ (use (match_operand:HI 3 "memory_operand" ""))
+ (clobber (match_operand:DI 4 "memory_operand" ""))
+ (clobber (match_scratch 5 ""))]
+ "reload_completed"
+ [(parallel [(set (match_dup 0) (fix:DI (match_dup 1)))
+ (use (match_dup 2))
+ (use (match_dup 3))
+ (clobber (match_dup 5))])]
+ "")
+
+(define_insn "fix_trunc<mode>_i387"
+ [(set (match_operand:X87MODEI12 0 "memory_operand" "=m")
+ (fix:X87MODEI12 (match_operand 1 "register_operand" "f")))
(use (match_operand:HI 2 "memory_operand" "m"))
(use (match_operand:HI 3 "memory_operand" "m"))]
- "TARGET_80387 && FLOAT_MODE_P (GET_MODE (operands[1]))
+ "TARGET_80387 && !TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
&& !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
- "* return output_fix_trunc (insn, operands);"
+ "* return output_fix_trunc (insn, operands, 0);"
[(set_attr "type" "fistp")
(set_attr "i387_cw" "trunc")
- (set_attr "mode" "HI")])
+ (set_attr "mode" "<MODE>")])
+
+(define_insn "fix_trunc<mode>_i387_with_temp"
+ [(set (match_operand:X87MODEI12 0 "nonimmediate_operand" "=m,?r")
+ (fix:X87MODEI12 (match_operand 1 "register_operand" "f,f")))
+ (use (match_operand:HI 2 "memory_operand" "m,m"))
+ (use (match_operand:HI 3 "memory_operand" "m,m"))
+ (clobber (match_operand:X87MODEI12 4 "memory_operand" "=m,m"))]
+ "TARGET_80387 && !TARGET_FISTTP
+ && FLOAT_MODE_P (GET_MODE (operands[1]))
+ && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))"
+ "#"
+ [(set_attr "type" "fistp")
+ (set_attr "i387_cw" "trunc")
+ (set_attr "mode" "<MODE>")])
(define_split
- [(set (match_operand:HI 0 "memory_operand" "")
- (fix:HI (match_operand 1 "register_operand" "")))
+ [(set (match_operand:X87MODEI12 0 "register_operand" "")
+ (fix:X87MODEI12 (match_operand 1 "register_operand" "")))
(use (match_operand:HI 2 "memory_operand" ""))
(use (match_operand:HI 3 "memory_operand" ""))
- (clobber (match_operand:HI 4 "memory_operand" ""))]
+ (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
"reload_completed"
- [(parallel [(set (match_dup 0) (fix:HI (match_dup 1)))
+ [(parallel [(set (match_dup 4) (fix:X87MODEI12 (match_dup 1)))
(use (match_dup 2))
- (use (match_dup 3))])]
+ (use (match_dup 3))])
+ (set (match_dup 0) (match_dup 4))]
"")
(define_split
- [(set (match_operand:HI 0 "register_operand" "")
- (fix:HI (match_operand 1 "register_operand" "")))
+ [(set (match_operand:X87MODEI12 0 "memory_operand" "")
+ (fix:X87MODEI12 (match_operand 1 "register_operand" "")))
(use (match_operand:HI 2 "memory_operand" ""))
(use (match_operand:HI 3 "memory_operand" ""))
- (clobber (match_operand:HI 4 "memory_operand" ""))]
+ (clobber (match_operand:X87MODEI12 4 "memory_operand" ""))]
"reload_completed"
- [(parallel [(set (match_dup 4) (fix:HI (match_dup 1)))
+ [(parallel [(set (match_dup 0) (fix:X87MODEI12 (match_dup 1)))
(use (match_dup 2))
- (use (match_dup 3))
- (clobber (match_dup 4))])
- (set (match_dup 0) (match_dup 4))]
+ (use (match_dup 3))])]
"")
+; APPLE LOCAL end mainline 2005-03-16 4054919
(define_insn "x86_fnstcw_1"
[(set (match_operand:HI 0 "memory_operand" "=m")
@@ -9749,6 +9727,7 @@
operands[1] = tmp;
})
+; APPLE LOCAL begin radar 4117515
(define_split
[(set (match_operand 0 "memory_operand" "")
(match_operator 1 "absneg_operator" [(match_dup 0)]))
@@ -9762,19 +9741,37 @@
int size = mode == XFmode ? 10 : GET_MODE_SIZE (mode);
rtx tmp;
- operands[0] = adjust_address (operands[0], QImode, size - 1);
- if (GET_CODE (operands[1]) == ABS)
+ if (size == 4)
{
- tmp = gen_int_mode (0x7f, QImode);
- tmp = gen_rtx_AND (QImode, operands[0], tmp);
+ operands[0] = adjust_address (operands[0], SImode, 0);
+ if (GET_CODE (operands[1]) == ABS)
+ {
+ tmp = gen_int_mode (0x7fffffff, SImode);
+ tmp = gen_rtx_AND (SImode, operands[0], tmp);
+ }
+ else
+ {
+ tmp = gen_int_mode (0x80000000, SImode);
+ tmp = gen_rtx_XOR (SImode, operands[0], tmp);
+ }
}
else
{
- tmp = gen_int_mode (0x80, QImode);
- tmp = gen_rtx_XOR (QImode, operands[0], tmp);
+ operands[0] = adjust_address (operands[0], QImode, size - 1);
+ if (GET_CODE (operands[1]) == ABS)
+ {
+ tmp = gen_int_mode (0x7f, QImode);
+ tmp = gen_rtx_AND (QImode, operands[0], tmp);
+ }
+ else
+ {
+ tmp = gen_int_mode (0x80, QImode);
+ tmp = gen_rtx_XOR (QImode, operands[0], tmp);
+ }
}
operands[1] = tmp;
})
+; APPLE LOCAL end radar 4117515
;; Conditionalize these after reload. If they match before reload, we
;; lose the clobber and ability to use integer instructions.
@@ -16297,7 +16294,33 @@
DONE;
})
-(define_insn "frndintxf2_floor"
+;; Rounding mode control word calculation could clobber FLAGS_REG.
+(define_insn_and_split "frndintxf2_floor"
+ [(set (match_operand:XF 0 "register_operand" "=f")
+ (unspec:XF [(match_operand:XF 1 "register_operand" "0")]
+ UNSPEC_FRNDINT_FLOOR))
+ (clobber (reg:CC FLAGS_REG))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations
+ && !(reload_completed || reload_in_progress)"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ ix86_optimize_mode_switching = 1;
+
+ operands[2] = assign_386_stack_local (HImode, 1);
+ operands[3] = assign_386_stack_local (HImode, 2);
+
+ emit_insn (gen_frndintxf2_floor_i387 (operands[0], operands[1],
+ operands[2], operands[3]));
+ DONE;
+}
+ [(set_attr "type" "frndint")
+ (set_attr "i387_cw" "floor")
+ (set_attr "mode" "XF")])
+
+(define_insn "frndintxf2_floor_i387"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")]
UNSPEC_FRNDINT_FLOOR))
@@ -16310,6 +16333,16 @@
(set_attr "i387_cw" "floor")
(set_attr "mode" "XF")])
+(define_expand "floorxf2"
+ [(use (match_operand:XF 0 "register_operand" ""))
+ (use (match_operand:XF 1 "register_operand" ""))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations"
+{
+ emit_insn (gen_frndintxf2_floor (operands[0], operands[1]));
+ DONE;
+})
+
(define_expand "floordf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
@@ -16319,13 +16352,9 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extenddfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_floor (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_floor (op0, op1));
emit_insn (gen_truncxfdf2_i387_noop (operands[0], op0));
DONE;
@@ -16340,34 +16369,41 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extendsfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_floor (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_floor (op0, op1));
emit_insn (gen_truncxfsf2_i387_noop (operands[0], op0));
DONE;
})
-(define_expand "floorxf2"
- [(use (match_operand:XF 0 "register_operand" ""))
- (use (match_operand:XF 1 "register_operand" ""))]
+;; Rounding mode control word calculation could clobber FLAGS_REG.
+(define_insn_and_split "frndintxf2_ceil"
+ [(set (match_operand:XF 0 "register_operand" "=f")
+ (unspec:XF [(match_operand:XF 1 "register_operand" "0")]
+ UNSPEC_FRNDINT_CEIL))
+ (clobber (reg:CC FLAGS_REG))]
"TARGET_USE_FANCY_MATH_387
- && flag_unsafe_math_optimizations"
+ && flag_unsafe_math_optimizations
+ && !(reload_completed || reload_in_progress)"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
ix86_optimize_mode_switching = 1;
- emit_insn (gen_frndintxf2_floor (operands[0], operands[1], op2, op3));
+ operands[2] = assign_386_stack_local (HImode, 1);
+ operands[3] = assign_386_stack_local (HImode, 2);
+
+ emit_insn (gen_frndintxf2_ceil_i387 (operands[0], operands[1],
+ operands[2], operands[3]));
DONE;
-})
+}
+ [(set_attr "type" "frndint")
+ (set_attr "i387_cw" "ceil")
+ (set_attr "mode" "XF")])
-(define_insn "frndintxf2_ceil"
+(define_insn "frndintxf2_ceil_i387"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")]
UNSPEC_FRNDINT_CEIL))
@@ -16380,6 +16416,16 @@
(set_attr "i387_cw" "ceil")
(set_attr "mode" "XF")])
+(define_expand "ceilxf2"
+ [(use (match_operand:XF 0 "register_operand" ""))
+ (use (match_operand:XF 1 "register_operand" ""))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations"
+{
+ emit_insn (gen_frndintxf2_ceil (operands[0], operands[1]));
+ DONE;
+})
+
(define_expand "ceildf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
@@ -16389,13 +16435,9 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extenddfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_ceil (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_ceil (op0, op1));
emit_insn (gen_truncxfdf2_i387_noop (operands[0], op0));
DONE;
@@ -16410,34 +16452,41 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extendsfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_ceil (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_ceil (op0, op1));
emit_insn (gen_truncxfsf2_i387_noop (operands[0], op0));
DONE;
})
-(define_expand "ceilxf2"
- [(use (match_operand:XF 0 "register_operand" ""))
- (use (match_operand:XF 1 "register_operand" ""))]
+;; Rounding mode control word calculation could clobber FLAGS_REG.
+(define_insn_and_split "frndintxf2_trunc"
+ [(set (match_operand:XF 0 "register_operand" "=f")
+ (unspec:XF [(match_operand:XF 1 "register_operand" "0")]
+ UNSPEC_FRNDINT_TRUNC))
+ (clobber (reg:CC FLAGS_REG))]
"TARGET_USE_FANCY_MATH_387
- && flag_unsafe_math_optimizations"
+ && flag_unsafe_math_optimizations
+ && !(reload_completed || reload_in_progress)"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
ix86_optimize_mode_switching = 1;
- emit_insn (gen_frndintxf2_ceil (operands[0], operands[1], op2, op3));
+ operands[2] = assign_386_stack_local (HImode, 1);
+ operands[3] = assign_386_stack_local (HImode, 2);
+
+ emit_insn (gen_frndintxf2_trunc_i387 (operands[0], operands[1],
+ operands[2], operands[3]));
DONE;
-})
+}
+ [(set_attr "type" "frndint")
+ (set_attr "i387_cw" "trunc")
+ (set_attr "mode" "XF")])
-(define_insn "frndintxf2_trunc"
+(define_insn "frndintxf2_trunc_i387"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")]
UNSPEC_FRNDINT_TRUNC))
@@ -16450,6 +16499,16 @@
(set_attr "i387_cw" "trunc")
(set_attr "mode" "XF")])
+(define_expand "btruncxf2"
+ [(use (match_operand:XF 0 "register_operand" ""))
+ (use (match_operand:XF 1 "register_operand" ""))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations"
+{
+ emit_insn (gen_frndintxf2_trunc (operands[0], operands[1]));
+ DONE;
+})
+
(define_expand "btruncdf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
@@ -16459,13 +16518,9 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extenddfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_trunc (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_trunc (op0, op1));
emit_insn (gen_truncxfdf2_i387_noop (operands[0], op0));
DONE;
@@ -16480,34 +16535,41 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extendsfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_trunc (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_trunc (op0, op1));
emit_insn (gen_truncxfsf2_i387_noop (operands[0], op0));
DONE;
})
-(define_expand "btruncxf2"
- [(use (match_operand:XF 0 "register_operand" ""))
- (use (match_operand:XF 1 "register_operand" ""))]
+;; Rounding mode control word calculation could clobber FLAGS_REG.
+(define_insn_and_split "frndintxf2_mask_pm"
+ [(set (match_operand:XF 0 "register_operand" "=f")
+ (unspec:XF [(match_operand:XF 1 "register_operand" "0")]
+ UNSPEC_FRNDINT_MASK_PM))
+ (clobber (reg:CC FLAGS_REG))]
"TARGET_USE_FANCY_MATH_387
- && flag_unsafe_math_optimizations"
+ && flag_unsafe_math_optimizations
+ && !(reload_completed || reload_in_progress)"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
ix86_optimize_mode_switching = 1;
- emit_insn (gen_frndintxf2_trunc (operands[0], operands[1], op2, op3));
+ operands[2] = assign_386_stack_local (HImode, 1);
+ operands[3] = assign_386_stack_local (HImode, 2);
+
+ emit_insn (gen_frndintxf2_mask_pm_i387 (operands[0], operands[1],
+ operands[2], operands[3]));
DONE;
-})
+}
+ [(set_attr "type" "frndint")
+ (set_attr "i387_cw" "mask_pm")
+ (set_attr "mode" "XF")])
-(define_insn "frndintxf2_mask_pm"
+(define_insn "frndintxf2_mask_pm_i387"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")]
UNSPEC_FRNDINT_MASK_PM))
@@ -16520,6 +16582,17 @@
(set_attr "i387_cw" "mask_pm")
(set_attr "mode" "XF")])
+(define_expand "nearbyintxf2"
+ [(use (match_operand:XF 0 "register_operand" ""))
+ (use (match_operand:XF 1 "register_operand" ""))]
+ "TARGET_USE_FANCY_MATH_387
+ && flag_unsafe_math_optimizations"
+{
+ emit_insn (gen_frndintxf2_mask_pm (operands[0], operands[1]));
+
+ DONE;
+})
+
(define_expand "nearbyintdf2"
[(use (match_operand:DF 0 "register_operand" ""))
(use (match_operand:DF 1 "register_operand" ""))]
@@ -16529,13 +16602,9 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extenddfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_mask_pm (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_mask_pm (op0, op1));
emit_insn (gen_truncxfdf2_i387_noop (operands[0], op0));
DONE;
@@ -16550,34 +16619,14 @@
{
rtx op0 = gen_reg_rtx (XFmode);
rtx op1 = gen_reg_rtx (XFmode);
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
emit_insn (gen_extendsfxf2 (op1, operands[1]));
- emit_insn (gen_frndintxf2_mask_pm (op0, op1, op2, op3));
+ emit_insn (gen_frndintxf2_mask_pm (op0, op1));
emit_insn (gen_truncxfsf2_i387_noop (operands[0], op0));
DONE;
})
-(define_expand "nearbyintxf2"
- [(use (match_operand:XF 0 "register_operand" ""))
- (use (match_operand:XF 1 "register_operand" ""))]
- "TARGET_USE_FANCY_MATH_387
- && flag_unsafe_math_optimizations"
-{
- rtx op2 = assign_386_stack_local (HImode, 1);
- rtx op3 = assign_386_stack_local (HImode, 2);
-
- ix86_optimize_mode_switching = 1;
-
- emit_insn (gen_frndintxf2_mask_pm (operands[0], operands[1],
- op2, op3));
- DONE;
-})
-
;; Block operation instructions
@@ -18537,18 +18586,16 @@
;; Attempt to always use XOR for zeroing registers.
(define_peephole2
[(set (match_operand 0 "register_operand" "")
- (const_int 0))]
- "(GET_MODE (operands[0]) == QImode
- || GET_MODE (operands[0]) == HImode
- || GET_MODE (operands[0]) == SImode
- || (GET_MODE (operands[0]) == DImode && TARGET_64BIT))
+ (match_operand 1 "const0_operand" ""))]
+ "GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
&& (! TARGET_USE_MOV0 || optimize_size)
&& GENERAL_REG_P (operands[0])
&& peep2_regno_dead_p (0, FLAGS_REG)"
[(parallel [(set (match_dup 0) (const_int 0))
(clobber (reg:CC FLAGS_REG))])]
- "operands[0] = gen_lowpart (GET_MODE (operands[0]) == DImode ? DImode : SImode,
- operands[0]);")
+{
+ operands[0] = gen_lowpart (word_mode, operands[0]);
+})
(define_peephole2
[(set (strict_low_part (match_operand 0 "register_operand" ""))
diff --git a/gcc/config/i386/lib1funcs.asm b/gcc/config/i386/lib1funcs.asm
new file mode 100644
index 00000000000..acf22f8153c
--- /dev/null
+++ b/gcc/config/i386/lib1funcs.asm
@@ -0,0 +1,28 @@
+# APPLE LOCAL file 4099000
+#define THUNK(REG) \
+.private_extern ___i686.get_pc_thunk.REG ;\
+___i686.get_pc_thunk.REG: ;\
+ movl (%esp,1),%REG ;\
+ ret ;
+
+#ifdef L_get_pc_thunk_ax
+THUNK(ax)
+#endif
+#ifdef L_get_pc_thunk_dx
+THUNK(dx)
+#endif
+#ifdef L_get_pc_thunk_cx
+THUNK(cx)
+#endif
+#ifdef L_get_pc_thunk_bx
+THUNK(bx)
+#endif
+#ifdef L_get_pc_thunk_si
+THUNK(si)
+#endif
+#ifdef L_get_pc_thunk_di
+THUNK(di)
+#endif
+#ifdef L_get_pc_thunk_bp
+THUNK(bp)
+#endif
diff --git a/gcc/config/i386/mmintrin.h b/gcc/config/i386/mmintrin.h
index 68c8313f9ae..48c62978266 100644
--- a/gcc/config/i386/mmintrin.h
+++ b/gcc/config/i386/mmintrin.h
@@ -1,3 +1,4 @@
+/* APPLE LOCAL file mainline 2005-06-30 Radar 4131077 */
/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -14,8 +15,8 @@
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. */
+ the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, 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
@@ -42,26 +43,26 @@ typedef short __v4hi __attribute__ ((__vector_size__ (8)));
typedef char __v8qi __attribute__ ((__vector_size__ (8)));
/* Empty the multimedia state. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_empty (void)
{
__builtin_ia32_emms ();
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_m_empty (void)
{
_mm_empty ();
}
/* Convert I to a __m64 object. The integer is zero-extended to 64-bits. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvtsi32_si64 (int __i)
{
return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_from_int (int __i)
{
return _mm_cvtsi32_si64 (__i);
@@ -69,14 +70,14 @@ _m_from_int (int __i)
#ifdef __x86_64__
/* Convert I to a __m64 object. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvtsi64x_si64 (long long __i)
{
return (__m64) __i;
}
/* Convert I to a __m64 object. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi64x (long long __i)
{
return (__m64) __i;
@@ -84,13 +85,13 @@ _mm_set_pi64x (long long __i)
#endif
/* Convert the lower 32 bits of the __m64 object into an integer. */
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvtsi64_si32 (__m64 __i)
{
return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_m_to_int (__m64 __i)
{
return _mm_cvtsi64_si32 (__i);
@@ -98,7 +99,7 @@ _m_to_int (__m64 __i)
#ifdef __x86_64__
/* Convert the lower 32 bits of the __m64 object into an integer. */
-static __inline long long
+static __inline long long __attribute__((__always_inline__))
_mm_cvtsi64_si64x (__m64 __i)
{
return (long long)__i;
@@ -108,13 +109,13 @@ _mm_cvtsi64_si64x (__m64 __i)
/* 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. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_packs_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_packsswb (__m64 __m1, __m64 __m2)
{
return _mm_packs_pi16 (__m1, __m2);
@@ -123,13 +124,13 @@ _m_packsswb (__m64 __m1, __m64 __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. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_packs_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_packssdw (__m64 __m1, __m64 __m2)
{
return _mm_packs_pi32 (__m1, __m2);
@@ -138,13 +139,13 @@ _m_packssdw (__m64 __m1, __m64 __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. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_packs_pu16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_packuswb (__m64 __m1, __m64 __m2)
{
return _mm_packs_pu16 (__m1, __m2);
@@ -152,13 +153,13 @@ _m_packuswb (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_punpckhbw (__m64 __m1, __m64 __m2)
{
return _mm_unpackhi_pi8 (__m1, __m2);
@@ -166,13 +167,13 @@ _m_punpckhbw (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_punpckhwd (__m64 __m1, __m64 __m2)
{
return _mm_unpackhi_pi16 (__m1, __m2);
@@ -180,13 +181,13 @@ _m_punpckhwd (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_punpckhdq (__m64 __m1, __m64 __m2)
{
return _mm_unpackhi_pi32 (__m1, __m2);
@@ -194,13 +195,13 @@ _m_punpckhdq (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_punpcklbw (__m64 __m1, __m64 __m2)
{
return _mm_unpacklo_pi8 (__m1, __m2);
@@ -208,13 +209,13 @@ _m_punpcklbw (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_punpcklwd ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_punpcklwd (__m64 __m1, __m64 __m2)
{
return _mm_unpacklo_pi16 (__m1, __m2);
@@ -222,59 +223,59 @@ _m_punpcklwd (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_punpckldq ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_add_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_add_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_add_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddd ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_add_si64 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2);
@@ -282,13 +283,13 @@ _mm_add_si64 (__m64 __m1, __m64 __m2)
/* Add the 8-bit values in M1 to the 8-bit values in M2 using signed
saturated arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_adds_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddsb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_paddsb (__m64 __m1, __m64 __m2)
{
return _mm_adds_pi8 (__m1, __m2);
@@ -296,13 +297,13 @@ _m_paddsb (__m64 __m1, __m64 __m2)
/* Add the 16-bit values in M1 to the 16-bit values in M2 using signed
saturated arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_adds_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddsw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_paddsw (__m64 __m1, __m64 __m2)
{
return _mm_adds_pi16 (__m1, __m2);
@@ -310,13 +311,13 @@ _m_paddsw (__m64 __m1, __m64 __m2)
/* Add the 8-bit values in M1 to the 8-bit values in M2 using unsigned
saturated arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_adds_pu8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddusb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_paddusb (__m64 __m1, __m64 __m2)
{
return _mm_adds_pu8 (__m1, __m2);
@@ -324,59 +325,59 @@ _m_paddusb (__m64 __m1, __m64 __m2)
/* Add the 16-bit values in M1 to the 16-bit values in M2 using unsigned
saturated arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_adds_pu16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_paddusw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sub_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sub_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sub_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubd ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sub_si64 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubq ((long long)__m1, (long long)__m2);
@@ -384,13 +385,13 @@ _mm_sub_si64 (__m64 __m1, __m64 __m2)
/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed
saturating arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_subs_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubsb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psubsb (__m64 __m1, __m64 __m2)
{
return _mm_subs_pi8 (__m1, __m2);
@@ -398,13 +399,13 @@ _m_psubsb (__m64 __m1, __m64 __m2)
/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
signed saturating arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_subs_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubsw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psubsw (__m64 __m1, __m64 __m2)
{
return _mm_subs_pi16 (__m1, __m2);
@@ -412,13 +413,13 @@ _m_psubsw (__m64 __m1, __m64 __m2)
/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using
unsigned saturating arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_subs_pu8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubusb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psubusb (__m64 __m1, __m64 __m2)
{
return _mm_subs_pu8 (__m1, __m2);
@@ -426,13 +427,13 @@ _m_psubusb (__m64 __m1, __m64 __m2)
/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
unsigned saturating arithmetic. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_subs_pu16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_psubusw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psubusw (__m64 __m1, __m64 __m2)
{
return _mm_subs_pu16 (__m1, __m2);
@@ -441,13 +442,13 @@ _m_psubusw (__m64 __m1, __m64 __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. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_madd_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pmaddwd ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pmaddwd (__m64 __m1, __m64 __m2)
{
return _mm_madd_pi16 (__m1, __m2);
@@ -455,13 +456,13 @@ _m_pmaddwd (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pmulhw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pmulhw (__m64 __m1, __m64 __m2)
{
return _mm_mulhi_pi16 (__m1, __m2);
@@ -469,226 +470,226 @@ _m_pmulhw (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_mullo_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pmullw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sll_pi16 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psllw ((__v4hi)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psllw (__m64 __m, __m64 __count)
{
return _mm_sll_pi16 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_slli_pi16 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psllw ((__v4hi)__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sll_pi32 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_pslld ((__v2si)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pslld (__m64 __m, __m64 __count)
{
return _mm_sll_pi32 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_slli_pi32 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_pslld ((__v2si)__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sll_si64 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psllq ((long long)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psllq (__m64 __m, __m64 __count)
{
return _mm_sll_si64 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_slli_si64 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psllq ((long long)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sra_pi16 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psraw ((__v4hi)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psraw (__m64 __m, __m64 __count)
{
return _mm_sra_pi16 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_srai_pi16 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psraw ((__v4hi)__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_sra_pi32 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psrad ((__v2si)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psrad (__m64 __m, __m64 __count)
{
return _mm_sra_pi32 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_srai_pi32 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrad ((__v2si)__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_srl_pi16 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psrlw (__m64 __m, __m64 __count)
{
return _mm_srl_pi16 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_srli_pi16 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_srl_pi32 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psrld ((__v2si)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psrld (__m64 __m, __m64 __count)
{
return _mm_srl_pi32 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_srli_pi32 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrld ((__v2si)__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_srl_si64 (__m64 __m, __m64 __count)
{
return (__m64) __builtin_ia32_psrlq ((long long)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psrlq (__m64 __m, __m64 __count)
{
return _mm_srl_si64 (__m, __count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_srli_si64 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrlq ((long long)__m, (long long)__count);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_and_si64 (__m64 __m1, __m64 __m2)
{
return __builtin_ia32_pand (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pand (__m64 __m1, __m64 __m2)
{
return _mm_and_si64 (__m1, __m2);
@@ -696,39 +697,39 @@ _m_pand (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_andnot_si64 (__m64 __m1, __m64 __m2)
{
return __builtin_ia32_pandn (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_or_si64 (__m64 __m1, __m64 __m2)
{
return __builtin_ia32_por (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_xor_si64 (__m64 __m1, __m64 __m2)
{
return __builtin_ia32_pxor (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pxor (__m64 __m1, __m64 __m2)
{
return _mm_xor_si64 (__m1, __m2);
@@ -736,25 +737,25 @@ _m_pxor (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpeqb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pcmpeqb (__m64 __m1, __m64 __m2)
{
return _mm_cmpeq_pi8 (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpgtb ((__v8qi)__m1, (__v8qi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pcmpgtb (__m64 __m1, __m64 __m2)
{
return _mm_cmpgt_pi8 (__m1, __m2);
@@ -762,25 +763,25 @@ _m_pcmpgtb (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpeqw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pcmpeqw (__m64 __m1, __m64 __m2)
{
return _mm_cmpeq_pi16 (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpgtw ((__v4hi)__m1, (__v4hi)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pcmpgtw (__m64 __m1, __m64 __m2)
{
return _mm_cmpgt_pi16 (__m1, __m2);
@@ -788,53 +789,53 @@ _m_pcmpgtw (__m64 __m1, __m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpeqd ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pcmpeqd (__m64 __m1, __m64 __m2)
{
return _mm_cmpeq_pi32 (__m1, __m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpgtd ((__v2si)__m1, (__v2si)__m2);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pcmpgtd (__m64 __m1, __m64 __m2)
{
return _mm_cmpgt_pi32 (__m1, __m2);
}
/* Creates a 64-bit zero. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_setzero_si64 (void)
{
return (__m64)0LL;
}
/* Creates a vector of two 32-bit values; I0 is least significant. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi32 (int __i1, int __i0)
{
return (__m64) __builtin_ia32_vec_init_v2si (__i0, __i1);
}
/* Creates a vector of four 16-bit values; W0 is least significant. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi16 (short __w3, short __w2, short __w1, short __w0)
{
return (__m64) __builtin_ia32_vec_init_v4hi (__w0, __w1, __w2, __w3);
}
/* Creates a vector of eight 8-bit values; B0 is least significant. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set_pi8 (char __b7, char __b6, char __b5, char __b4,
char __b3, char __b2, char __b1, char __b0)
{
@@ -843,19 +844,19 @@ _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4,
}
/* Similar, but with the arguments in reverse order. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_setr_pi32 (int __i0, int __i1)
{
return _mm_set_pi32 (__i1, __i0);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_setr_pi16 (short __w0, short __w1, short __w2, short __w3)
{
return _mm_set_pi16 (__w3, __w2, __w1, __w0);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_setr_pi8 (char __b0, char __b1, char __b2, char __b3,
char __b4, char __b5, char __b6, char __b7)
{
@@ -863,21 +864,21 @@ _mm_setr_pi8 (char __b0, char __b1, char __b2, char __b3,
}
/* Creates a vector of two 32-bit values, both elements containing I. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set1_pi32 (int __i)
{
return _mm_set_pi32 (__i, __i);
}
/* Creates a vector of four 16-bit values, all elements containing W. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set1_pi16 (short __w)
{
return _mm_set_pi16 (__w, __w, __w, __w);
}
/* Creates a vector of eight 8-bit values, all elements containing B. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_set1_pi8 (char __b)
{
return _mm_set_pi8 (__b, __b, __b, __b, __b, __b, __b, __b);
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index 9e374e44ebf..9c9d96ae900 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -169,9 +169,11 @@
(define_split
[(set (match_operand:MMXMODE 0 "nonimmediate_operand" "")
(match_operand:MMXMODE 1 "general_operand" ""))]
+;; APPLE LOCAL begin 4099020
"!TARGET_64BIT && reload_completed
- && (!MMX_REG_P (operands[0]) && !SSE_REG_P (operands[0]))
- && (!MMX_REG_P (operands[1]) && !SSE_REG_P (operands[1]))"
+ && (!MMX_REG_P (operands[0]) && !SSE_REG_P (operands[0]) && GET_CODE (operands[0]) != SUBREG)
+ && (!MMX_REG_P (operands[1]) && !SSE_REG_P (operands[1]) && GET_CODE (operands[1]) != SUBREG)"
+;; APPLE LOCAL end 4099020
[(const_int 0)]
"ix86_split_long_move (operands); DONE;")
@@ -1111,7 +1113,7 @@
(vec_duplicate:V4HI
(truncate:HI
(match_operand:SI 1 "register_operand" "0"))))]
- "TARGET_MMX"
+ "TARGET_SSE || TARGET_3DNOW_A"
"pshufw\t{$0, %0, %0|%0, %0, 0}"
[(set_attr "type" "mmxcvt")
(set_attr "mode" "DI")])
diff --git a/gcc/config/i386/pmmintrin.h b/gcc/config/i386/pmmintrin.h
index 68fe44b726c..866241727e9 100644
--- a/gcc/config/i386/pmmintrin.h
+++ b/gcc/config/i386/pmmintrin.h
@@ -1,3 +1,4 @@
+/* APPLE LOCAL file mainline 2005-06-30 Radar 4131077 */
/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -14,8 +15,8 @@
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. */
+ the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, 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
@@ -44,80 +45,80 @@
#define _MM_GET_DENORMALS_ZERO_MODE() \
(_mm_getcsr() & _MM_DENORMALS_ZERO_MASK)
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_addsub_ps (__m128 __X, __m128 __Y)
{
return (__m128) __builtin_ia32_addsubps ((__v4sf)__X, (__v4sf)__Y);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_hadd_ps (__m128 __X, __m128 __Y)
{
return (__m128) __builtin_ia32_haddps ((__v4sf)__X, (__v4sf)__Y);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_hsub_ps (__m128 __X, __m128 __Y)
{
return (__m128) __builtin_ia32_hsubps ((__v4sf)__X, (__v4sf)__Y);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_movehdup_ps (__m128 __X)
{
return (__m128) __builtin_ia32_movshdup ((__v4sf)__X);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_moveldup_ps (__m128 __X)
{
return (__m128) __builtin_ia32_movsldup ((__v4sf)__X);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_addsub_pd (__m128d __X, __m128d __Y)
{
return (__m128d) __builtin_ia32_addsubpd ((__v2df)__X, (__v2df)__Y);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_hadd_pd (__m128d __X, __m128d __Y)
{
return (__m128d) __builtin_ia32_haddpd ((__v2df)__X, (__v2df)__Y);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_hsub_pd (__m128d __X, __m128d __Y)
{
return (__m128d) __builtin_ia32_hsubpd ((__v2df)__X, (__v2df)__Y);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_loaddup_pd (double const *__P)
{
return _mm_load1_pd (__P);
}
-static __inline __m128d
+static __inline __m128d __attribute__((__always_inline__))
_mm_movedup_pd (__m128d __X)
{
return _mm_shuffle_pd (__X, __X, _MM_SHUFFLE2 (0,0));
}
-static __inline __m128i
+static __inline __m128i __attribute__((__always_inline__))
_mm_lddqu_si128 (__m128i const *__P)
{
return (__m128i) __builtin_ia32_lddqu ((char const *)__P);
}
#if 0
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_monitor (void const * __P, unsigned int __E, unsigned int __H)
{
__builtin_ia32_monitor (__P, __E, __H);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_mwait (unsigned int __E, unsigned int __H)
{
__builtin_ia32_mwait (__E, __H);
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md
index 66f25058182..668c7c061e5 100644
--- a/gcc/config/i386/predicates.md
+++ b/gcc/config/i386/predicates.md
@@ -499,8 +499,12 @@
;; Match exactly zero.
(define_predicate "const0_operand"
- (and (match_code "const_int,const_double,const_vector")
- (match_test "op == CONST0_RTX (mode)")))
+ (match_code "const_int,const_double,const_vector")
+{
+ if (mode == VOIDmode)
+ mode = GET_MODE (op);
+ return op == CONST0_RTX (mode);
+})
;; Match exactly one.
(define_predicate "const1_operand"
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index e147b71028b..80f6edd99e1 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -274,6 +274,27 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "V2DF")])
+;; APPLE LOCAL begin 4099020, 4121692
+(define_insn "sse_loadqv4si"
+ [(set (match_operand:V4SI 0 "register_operand" "=rx")
+ (unspec:V4SI [(zero_extend:V4SI (match_operand:V2SI 1 "memory_operand" "m"))] UNSPEC_LDQ))]
+ "TARGET_SSE"
+ "movq\t{%1, %0|%0, %1}")
+
+(define_insn "sse_storeqv4si"
+ [(set (match_operand:V2SI 0 "memory_operand" "=m")
+ (unspec:V2SI [(subreg:V2SI (match_operand:V4SI 1 "register_operand" "x") 0)] UNSPEC_STOQ))]
+ "TARGET_SSE"
+ "movq\t{%1, %0|%0, %1}")
+
+(define_insn "sse_movqv4si"
+ [(set (match_operand:V4SI 0 "register_operand" "=x")
+ (unspec:V4SI [(zero_extend:V4SI (subreg:V2SI
+ (match_operand:V4SI 1 "register_operand" "x") 0))] UNSPEC_MOVQ))]
+ "TARGET_SSE"
+ "movq\t{%1, %0|%0, %1}")
+;; APPLE LOCAL end 4099020, 4121692
+
(define_insn "sse3_lddqu"
[(set (match_operand:V16QI 0 "register_operand" "=x")
(unspec:V16QI [(match_operand:V16QI 1 "memory_operand" "m")]
@@ -937,23 +958,26 @@
[(set_attr "type" "ssemov")
(set_attr "mode" "V4SF,V2SF,V2SF")])
+; APPLE LOCAL begin radar 4099352
(define_insn "sse_movlhps"
- [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,x,o")
+ [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,x,x,o")
(vec_select:V4SF
(vec_concat:V8SF
- (match_operand:V4SF 1 "nonimmediate_operand" " 0,0,0")
- (match_operand:V4SF 2 "nonimmediate_operand" " x,m,x"))
+ (match_operand:V4SF 1 "nonimmediate_operand" " 0,0,0,0")
+ (match_operand:V4SF 2 "vector_move_operand" " C,x,m,x"))
(parallel [(const_int 0)
(const_int 1)
(const_int 4)
(const_int 5)])))]
"TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)"
"@
+ xorps\t%0, %0
movlhps\t{%2, %0|%0, %2}
movhps\t{%2, %0|%0, %2}
movlps\t{%2, %H0|%H0, %2}"
[(set_attr "type" "ssemov")
- (set_attr "mode" "V4SF,V2SF,V2SF")])
+ (set_attr "mode" "V4SF,V4SF,V2SF,V2SF")])
+; APPLE LOCAL end radar 4099352
(define_insn "sse_unpckhps"
[(set (match_operand:V4SF 0 "register_operand" "=x")
diff --git a/gcc/config/i386/t-darwin b/gcc/config/i386/t-darwin
new file mode 100644
index 00000000000..6a243ec879f
--- /dev/null
+++ b/gcc/config/i386/t-darwin
@@ -0,0 +1,3 @@
+# APPLE LOCAL file 4099000
+LIB1ASMSRC = i386/lib1funcs.asm
+LIB1ASMFUNCS = _get_pc_thunk_ax _get_pc_thunk_dx _get_pc_thunk_cx _get_pc_thunk_bx _get_pc_thunk_si _get_pc_thunk_di _get_pc_thunk_bp
diff --git a/gcc/config/i386/t-nwld b/gcc/config/i386/t-nwld
index 25355632c00..ec12d12251c 100644
--- a/gcc/config/i386/t-nwld
+++ b/gcc/config/i386/t-nwld
@@ -29,7 +29,6 @@ s-crt0: $(srcdir)/unwind-dw2-fde.h
# Build a shared libgcc library for NetWare.
SHLIB_EXT = .nlm
-SHLIB_SONAME = @shlib_so_name@.nlm
SHLIB_NAME = @shlib_base_name@.nlm
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
SHLIB_DEF = $(srcdir)/config/i386/netware-libgcc.def
@@ -37,25 +36,25 @@ SHLIB_MAP = $(srcdir)/config/i386/netware-libgcc.exp
SHLIB_SRC = $(srcdir)/config/i386/netware-libgcc.c
SHLIB_LINK = set -e; \
- cat $(SHLIB_DEF) >@shlib_so_name@.def; \
- echo "name $(SHLIB_NAME)" >>@shlib_so_name@.def; \
- echo "version $(gcc_version)" | sed "s!\.!,!g" >>@shlib_so_name@.def; \
+ cat $(SHLIB_DEF) >@shlib_base_name@.def; \
+ echo "name $(SHLIB_NAME)" >>@shlib_base_name@.def; \
+ echo "version $(gcc_version)" | sed "s!\.!,!g" >>@shlib_base_name@.def; \
touch libgcc/build; \
- echo "build $$$$(($$$$(<libgcc/build)+0))" >>@shlib_so_name@.def; \
- echo "export @$(SHLIB_MAP)" >>@shlib_so_name@.def; \
- if mpkxdc -n -p @shlib_so_name@.xdc; \
- then echo "xdcdata @shlib_so_name@.xdc" >>@shlib_so_name@.def; \
+ echo "build $$$$(($$$$(<libgcc/build)+0))" >>@shlib_base_name@.def; \
+ echo "export @$(SHLIB_MAP)" >>@shlib_base_name@.def; \
+ if mpkxdc -n -p @shlib_base_name@.xdc; \
+ then echo "xdcdata @shlib_base_name@.xdc" >>@shlib_base_name@.def; \
else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \
fi; \
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \
$(SHLIB_SRC) -posix -static-libgcc -lnetware \
- -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_so_name@.def; \
- rm -f @shlib_so_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_so_name@.imp; \
+ -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_base_name@.def; \
+ rm -f @shlib_base_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_base_name@.imp; \
echo $$$$(($$$$(<libgcc/build)+1)) >libgcc/build
# $(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); \
- $$(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
- $$(INSTALL_DATA) @shlib_so_name@.imp $$(DESTDIR)$$(libsubdir)/
+ $$(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
+ $$(INSTALL_DATA) @shlib_base_name@.imp $$(DESTDIR)$$(libsubdir)/
diff --git a/gcc/config/i386/t-rtems-i386 b/gcc/config/i386/t-rtems-i386
index d32928c53aa..9400be8f508 100644
--- a/gcc/config/i386/t-rtems-i386
+++ b/gcc/config/i386/t-rtems-i386
@@ -36,17 +36,14 @@ xp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define EXTENDED_FLOAT_STUBS' > xp-bit.c
cat $(srcdir)/config/fp-bit.c >> xp-bit.c
-MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro/mtune=k6/mtune=athlon \
-msoft-float mno-fp-ret-in-387
-MULTILIB_DIRNAMES= m486 mpentium mpentiumpro k6 athlon soft-float nofp
+MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro \
+msoft-float
+MULTILIB_DIRNAMES= m486 mpentium mpentiumpro soft-float
MULTILIB_MATCHES = msoft-float=mno-m80387
+MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?mathlon
MULTILIB_EXCEPTIONS = \
-mno-fp-ret-in-387 \
-mtune=i486/*mno-fp-ret-in-387* \
-mtune=pentium/*msoft-float* mtune=pentium/*mno-fp-ret-in-387* \
-mtune=pentiumpro/*msoft-float* mtune=pentiumpro/*mno-fp-ret-in-387* \
-mtune=k6/*msoft-float* mtune=k6/*mno-fp-ret-in-387* \
-mtune=athlon/*msoft-float* mtune=athlon/*mno-fp-ret-in-387*
+mtune=pentium/*msoft-float* \
+mtune=pentiumpro/*msoft-float*
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
diff --git a/gcc/config/i386/x-cygwin b/gcc/config/i386/x-cygwin
new file mode 100644
index 00000000000..1547f5f5bec
--- /dev/null
+++ b/gcc/config/i386/x-cygwin
@@ -0,0 +1,4 @@
+host-cygwin.o : $(srcdir)/config/i386/host-cygwin.c $(CONFIG_H) $(SYSTEM_H) \
+ coretypes.h hosthooks.h hosthooks-def.h toplev.h diagnostic.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
+ $(srcdir)/config/i386/host-cygwin.c
diff --git a/gcc/config/i386/x-darwin b/gcc/config/i386/x-darwin
new file mode 100644
index 00000000000..a8ca64fc074
--- /dev/null
+++ b/gcc/config/i386/x-darwin
@@ -0,0 +1,10 @@
+ # APPLE LOCAL begin mainline 2005-04-06 4071679
+host-i386-darwin.o : $(srcdir)/config/i386/host-i386-darwin.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h hosthooks.h $(HOSTHOOKS_DEF_H) \
+ config/host-darwin.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
+ # APPLE LOCAL end mainline 2005-04-06 4071679
+
+# APPLE LOCAL begin use -mdynamic-no-pic to build x86-hosted compilers
+XCFLAGS = -mdynamic-no-pic
+# APPLE LOCAL end use -mdynamic-no-pic to build x86-hosted compilers
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h
index a22b809085e..3298d6da7de 100644
--- a/gcc/config/i386/xmmintrin.h
+++ b/gcc/config/i386/xmmintrin.h
@@ -1,3 +1,4 @@
+/* APPLE LOCAL file mainline 2005-06-30 Radar 4131077 */
/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -87,7 +88,7 @@ enum _mm_hint
#define _MM_FLUSH_ZERO_OFF 0x0000
/* Create a vector of zeros. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_setzero_ps (void)
{
return (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };
@@ -97,55 +98,55 @@ _mm_setzero_ps (void)
floating-point) values of A and B; the upper three SPFP values are
passed through from A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_add_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_addss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_sub_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_subss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_mul_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_mulss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_div_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_divss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_sqrt_ss (__m128 __A)
{
return (__m128) __builtin_ia32_sqrtss ((__v4sf)__A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_rcp_ss (__m128 __A)
{
return (__m128) __builtin_ia32_rcpss ((__v4sf)__A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_rsqrt_ss (__m128 __A)
{
return (__m128) __builtin_ia32_rsqrtss ((__v4sf)__A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_min_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_minss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_max_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_maxss ((__v4sf)__A, (__v4sf)__B);
@@ -153,55 +154,55 @@ _mm_max_ss (__m128 __A, __m128 __B)
/* Perform the respective operation on the four SPFP values in A and B. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_add_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_addps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_sub_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_subps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_mul_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_mulps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_div_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_divps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_sqrt_ps (__m128 __A)
{
return (__m128) __builtin_ia32_sqrtps ((__v4sf)__A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_rcp_ps (__m128 __A)
{
return (__m128) __builtin_ia32_rcpps ((__v4sf)__A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_rsqrt_ps (__m128 __A)
{
return (__m128) __builtin_ia32_rsqrtps ((__v4sf)__A);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_min_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_minps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_max_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_maxps ((__v4sf)__A, (__v4sf)__B);
@@ -209,25 +210,25 @@ _mm_max_ps (__m128 __A, __m128 __B)
/* Perform logical bit-wise operations on 128-bit values. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_and_ps (__m128 __A, __m128 __B)
{
return __builtin_ia32_andps (__A, __B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_andnot_ps (__m128 __A, __m128 __B)
{
return __builtin_ia32_andnps (__A, __B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_or_ps (__m128 __A, __m128 __B)
{
return __builtin_ia32_orps (__A, __B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_xor_ps (__m128 __A, __m128 __B)
{
return __builtin_ia32_xorps (__A, __B);
@@ -237,25 +238,25 @@ _mm_xor_ps (__m128 __A, __m128 __B)
comparison is true, place a mask of all ones in the result, otherwise a
mask of zeros. The upper three SPFP values are passed through from A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpeq_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpeqss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmplt_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpltss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmple_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpless ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpgt_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
@@ -265,7 +266,7 @@ _mm_cmpgt_ss (__m128 __A, __m128 __B)
__A));
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpge_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
@@ -275,25 +276,25 @@ _mm_cmpge_ss (__m128 __A, __m128 __B)
__A));
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpneq_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpneqss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpnlt_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpnltss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpnle_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpnless ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpngt_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
@@ -303,7 +304,7 @@ _mm_cmpngt_ss (__m128 __A, __m128 __B)
__A));
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpnge_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movss ((__v4sf) __A,
@@ -313,13 +314,13 @@ _mm_cmpnge_ss (__m128 __A, __m128 __B)
__A));
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpord_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpordss ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpunord_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpunordss ((__v4sf)__A, (__v4sf)__B);
@@ -329,73 +330,73 @@ _mm_cmpunord_ss (__m128 __A, __m128 __B)
element, if the comparison is true, place a mask of all ones in the
result, otherwise a mask of zeros. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpeq_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpeqps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmplt_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpltps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmple_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpleps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpgt_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpgtps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpge_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpgeps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpneq_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpneqps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpnlt_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpnltps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpnle_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpnleps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpngt_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpngtps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpnge_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpngeps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpord_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpordps ((__v4sf)__A, (__v4sf)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cmpunord_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_cmpunordps ((__v4sf)__A, (__v4sf)__B);
@@ -404,73 +405,73 @@ _mm_cmpunord_ps (__m128 __A, __m128 __B)
/* Compare the lower SPFP values of A and B and return 1 if true
and 0 if false. */
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comieq_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_comieq ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comilt_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_comilt ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comile_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_comile ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comigt_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_comigt ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comige_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_comige ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_comineq_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_comineq ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomieq_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_ucomieq ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomilt_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_ucomilt ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomile_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_ucomile ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomigt_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_ucomigt ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomige_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_ucomige ((__v4sf)__A, (__v4sf)__B);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_ucomineq_ss (__m128 __A, __m128 __B)
{
return __builtin_ia32_ucomineq ((__v4sf)__A, (__v4sf)__B);
@@ -478,13 +479,13 @@ _mm_ucomineq_ss (__m128 __A, __m128 __B)
/* Convert the lower SPFP value to a 32-bit integer according to the current
rounding mode. */
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvtss_si32 (__m128 __A)
{
return __builtin_ia32_cvtss2si ((__v4sf) __A);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvt_ss2si (__m128 __A)
{
return _mm_cvtss_si32 (__A);
@@ -493,7 +494,7 @@ _mm_cvt_ss2si (__m128 __A)
#ifdef __x86_64__
/* Convert the lower SPFP value to a 32-bit integer according to the current
rounding mode. */
-static __inline long long
+static __inline long long __attribute__((__always_inline__))
_mm_cvtss_si64x (__m128 __A)
{
return __builtin_ia32_cvtss2si64 ((__v4sf) __A);
@@ -502,26 +503,26 @@ _mm_cvtss_si64x (__m128 __A)
/* 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
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvtps_pi32 (__m128 __A)
{
return (__m64) __builtin_ia32_cvtps2pi ((__v4sf) __A);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvt_ps2pi (__m128 __A)
{
return _mm_cvtps_pi32 (__A);
}
/* Truncate the lower SPFP value to a 32-bit integer. */
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvttss_si32 (__m128 __A)
{
return __builtin_ia32_cvttss2si ((__v4sf) __A);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_cvtt_ss2si (__m128 __A)
{
return _mm_cvttss_si32 (__A);
@@ -529,7 +530,7 @@ _mm_cvtt_ss2si (__m128 __A)
#ifdef __x86_64__
/* Truncate the lower SPFP value to a 32-bit integer. */
-static __inline long long
+static __inline long long __attribute__((__always_inline__))
_mm_cvttss_si64x (__m128 __A)
{
return __builtin_ia32_cvttss2si64 ((__v4sf) __A);
@@ -538,26 +539,26 @@ _mm_cvttss_si64x (__m128 __A)
/* Truncate the two lower SPFP values to 32-bit integers. Return the
integers in packed form. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvttps_pi32 (__m128 __A)
{
return (__m64) __builtin_ia32_cvttps2pi ((__v4sf) __A);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtsi32_ss (__m128 __A, int __B)
{
return (__m128) __builtin_ia32_cvtsi2ss ((__v4sf) __A, __B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvt_si2ss (__m128 __A, int __B)
{
return _mm_cvtsi32_ss (__A, __B);
@@ -565,7 +566,7 @@ _mm_cvt_si2ss (__m128 __A, int __B)
#ifdef __x86_64__
/* Convert B to a SPFP value and insert it as element zero in A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtsi64x_ss (__m128 __A, long long __B)
{
return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B);
@@ -574,20 +575,20 @@ _mm_cvtsi64x_ss (__m128 __A, long long __B)
/* Convert the two 32-bit values in B to SPFP form and insert them
as the two lower elements in A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpi32_ps (__m128 __A, __m64 __B)
{
return (__m128) __builtin_ia32_cvtpi2ps ((__v4sf) __A, (__v2si)__B);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_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
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpi16_ps (__m64 __A)
{
__v4hi __sign;
@@ -613,7 +614,7 @@ _mm_cvtpi16_ps (__m64 __A)
}
/* Convert the four unsigned 16-bit values in A to SPFP form. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpu16_ps (__m64 __A)
{
__v2si __hisi, __losi;
@@ -633,7 +634,7 @@ _mm_cvtpu16_ps (__m64 __A)
}
/* Convert the low four signed 8-bit values in A to SPFP form. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpi8_ps (__m64 __A)
{
__v8qi __sign;
@@ -650,7 +651,7 @@ _mm_cvtpi8_ps (__m64 __A)
}
/* Convert the low four unsigned 8-bit values in A to SPFP form. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpu8_ps(__m64 __A)
{
__A = (__m64) __builtin_ia32_punpcklbw ((__v8qi)__A, (__v8qi)0LL);
@@ -658,7 +659,7 @@ _mm_cvtpu8_ps(__m64 __A)
}
/* Convert the four signed 32-bit values in A and B to SPFP form. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_cvtpi32x2_ps(__m64 __A, __m64 __B)
{
__v4sf __zero = (__v4sf) _mm_setzero_ps ();
@@ -668,7 +669,7 @@ _mm_cvtpi32x2_ps(__m64 __A, __m64 __B)
}
/* Convert the four SPFP values in A to four signed 16-bit integers. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvtps_pi16(__m128 __A)
{
__v4sf __hisf = (__v4sf)__A;
@@ -679,7 +680,7 @@ _mm_cvtps_pi16(__m128 __A)
}
/* Convert the four SPFP values in A to four signed 8-bit integers. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_cvtps_pi8(__m128 __A)
{
__v4hi __tmp = (__v4hi) _mm_cvtps_pi16 (__A);
@@ -688,7 +689,7 @@ _mm_cvtps_pi8(__m128 __A)
/* Selects four specific SPFP values from A and B based on MASK. */
#if 0
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_shuffle_ps (__m128 __A, __m128 __B, int __mask)
{
return (__m128) __builtin_ia32_shufps ((__v4sf)__A, (__v4sf)__B, __mask);
@@ -700,14 +701,14 @@ _mm_shuffle_ps (__m128 __A, __m128 __B, int __mask)
/* Selects and interleaves the upper two SPFP values from A and B. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_unpackhi_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_unpckhps ((__v4sf)__A, (__v4sf)__B);
}
/* Selects and interleaves the lower two SPFP values from A and B. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_unpacklo_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_unpcklps ((__v4sf)__A, (__v4sf)__B);
@@ -715,28 +716,28 @@ _mm_unpacklo_ps (__m128 __A, __m128 __B)
/* Sets the upper two SPFP values with 64-bits of data loaded from P;
the lower two values are passed through from A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_loadh_pi (__m128 __A, __m64 const *__P)
{
return (__m128) __builtin_ia32_loadhps ((__v4sf)__A, (__v2si *)__P);
}
/* Stores the upper two SPFP values of A into P. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storeh_pi (__m64 *__P, __m128 __A)
{
__builtin_ia32_storehps ((__v2si *)__P, (__v4sf)__A);
}
/* Moves the upper two values of B into the lower two values of A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_movehl_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movhlps ((__v4sf)__A, (__v4sf)__B);
}
/* Moves the lower two values of B into the upper two values of A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_movelh_ps (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movlhps ((__v4sf)__A, (__v4sf)__B);
@@ -744,146 +745,146 @@ _mm_movelh_ps (__m128 __A, __m128 __B)
/* Sets the lower two SPFP values with 64-bits of data loaded from P;
the upper two values are passed through from A. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_loadl_pi (__m128 __A, __m64 const *__P)
{
return (__m128) __builtin_ia32_loadlps ((__v4sf)__A, (__v2si *)__P);
}
/* Stores the lower two SPFP values of A into P. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storel_pi (__m64 *__P, __m128 __A)
{
__builtin_ia32_storelps ((__v2si *)__P, (__v4sf)__A);
}
/* Creates a 4-bit mask from the most significant bits of the SPFP values. */
-static __inline int
+static __inline int __attribute__((__always_inline__))
_mm_movemask_ps (__m128 __A)
{
return __builtin_ia32_movmskps ((__v4sf)__A);
}
/* Return the contents of the control register. */
-static __inline unsigned int
+static __inline unsigned int __attribute__((__always_inline__))
_mm_getcsr (void)
{
return __builtin_ia32_stmxcsr ();
}
/* Read exception bits from the control register. */
-static __inline unsigned int
+static __inline unsigned int __attribute__((__always_inline__))
_MM_GET_EXCEPTION_STATE (void)
{
return _mm_getcsr() & _MM_EXCEPT_MASK;
}
-static __inline unsigned int
+static __inline unsigned int __attribute__((__always_inline__))
_MM_GET_EXCEPTION_MASK (void)
{
return _mm_getcsr() & _MM_MASK_MASK;
}
-static __inline unsigned int
+static __inline unsigned int __attribute__((__always_inline__))
_MM_GET_ROUNDING_MODE (void)
{
return _mm_getcsr() & _MM_ROUND_MASK;
}
-static __inline unsigned int
+static __inline unsigned int __attribute__((__always_inline__))
_MM_GET_FLUSH_ZERO_MODE (void)
{
return _mm_getcsr() & _MM_FLUSH_ZERO_MASK;
}
/* Set the control register to I. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_setcsr (unsigned int __I)
{
__builtin_ia32_ldmxcsr (__I);
}
/* Set exception bits in the control register. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_MM_SET_EXCEPTION_STATE(unsigned int __mask)
{
_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | __mask);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_MM_SET_EXCEPTION_MASK (unsigned int __mask)
{
_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | __mask);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_MM_SET_ROUNDING_MODE (unsigned int __mode)
{
_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | __mode);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_MM_SET_FLUSH_ZERO_MODE (unsigned int __mode)
{
_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | __mode);
}
/* Create a vector with element 0 as F and the rest zero. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_set_ss (float __F)
{
return (__m128)(__v4sf){ __F, 0, 0, 0 };
}
/* Create a vector with all four elements equal to F. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_set1_ps (float __F)
{
return (__m128)(__v4sf){ __F, __F, __F, __F };
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_set_ps1 (float __F)
{
return _mm_set1_ps (__F);
}
/* Create a vector with element 0 as *P and the rest zero. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_load_ss (float const *__P)
{
return _mm_set_ss (*__P);
}
/* Create a vector with all four elements equal to *P. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_load1_ps (float const *__P)
{
return _mm_set1_ps (*__P);
}
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_load_ps1 (float const *__P)
{
return _mm_load1_ps (__P);
}
/* Load four SPFP values from P. The address must be 16-byte aligned. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_load_ps (float const *__P)
{
return (__m128) *(__v4sf *)__P;
}
/* Load four SPFP values from P. The address need not be 16-byte aligned. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_loadu_ps (float const *__P)
{
return (__m128) __builtin_ia32_loadups (__P);
}
/* Load four SPFP values in reverse order. The address must be aligned. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_loadr_ps (float const *__P)
{
__v4sf __tmp = *(__v4sf *)__P;
@@ -891,42 +892,42 @@ _mm_loadr_ps (float const *__P)
}
/* Create the vector [Z Y X W]. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_set_ps (const float __Z, const float __Y, const float __X, const float __W)
{
return (__m128)(__v4sf){ __W, __X, __Y, __Z };
}
/* Create the vector [W X Y Z]. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_setr_ps (float __Z, float __Y, float __X, float __W)
{
return (__m128)(__v4sf){ __Z, __Y, __X, __W };
}
/* Stores the lower SPFP value. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_ss (float *__P, __m128 __A)
{
*__P = __builtin_ia32_vec_ext_v4sf ((__v4sf)__A, 0);
}
/* Store four SPFP values. The address must be 16-byte aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_ps (float *__P, __m128 __A)
{
*(__v4sf *)__P = (__v4sf)__A;
}
/* Store four SPFP values. The address need not be 16-byte aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storeu_ps (float *__P, __m128 __A)
{
__builtin_ia32_storeups (__P, (__v4sf)__A);
}
/* Store the lower SPFP value across four words. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store1_ps (float *__P, __m128 __A)
{
__v4sf __va = (__v4sf)__A;
@@ -934,14 +935,14 @@ _mm_store1_ps (float *__P, __m128 __A)
_mm_storeu_ps (__P, __tmp);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_store_ps1 (float *__P, __m128 __A)
{
_mm_store1_ps (__P, __A);
}
/* Store four SPFP values in reverse order. The address must be aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_storer_ps (float *__P, __m128 __A)
{
__v4sf __va = (__v4sf)__A;
@@ -950,7 +951,7 @@ _mm_storer_ps (float *__P, __m128 __A)
}
/* Sets the low SPFP value of A from the low value of B. */
-static __inline __m128
+static __inline __m128 __attribute__((__always_inline__))
_mm_move_ss (__m128 __A, __m128 __B)
{
return (__m128) __builtin_ia32_movss ((__v4sf)__A, (__v4sf)__B);
@@ -995,65 +996,65 @@ _m_pinsrw (__m64 const __A, int const __D, int const __N)
#endif
/* Compute the element-wise maximum of signed 16-bit values. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_max_pi16 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pmaxsw ((__v4hi)__A, (__v4hi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_max_pu8 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pmaxub ((__v8qi)__A, (__v8qi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_min_pi16 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pminsw ((__v4hi)__A, (__v4hi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_min_pu8 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pminub ((__v8qi)__A, (__v8qi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline int __attribute__((__always_inline__))
_mm_movemask_pi8 (__m64 __A)
{
return __builtin_ia32_pmovmskb ((__v8qi)__A);
}
-static __inline int
+static __inline int __attribute__((__always_inline__))
_m_pmovmskb (__m64 __A)
{
return _mm_movemask_pi8 (__A);
@@ -1061,13 +1062,13 @@ _m_pmovmskb (__m64 __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
+static __inline __m64 __attribute__((__always_inline__))
_mm_mulhi_pu16 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pmulhuw ((__v4hi)__A, (__v4hi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pmulhuw (__m64 __A, __m64 __B)
{
return _mm_mulhi_pu16 (__A, __B);
@@ -1076,13 +1077,13 @@ _m_pmulhuw (__m64 __A, __m64 __B)
/* Return a combination of the four 16-bit values in A. The selector
must be an immediate. */
#if 0
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_shuffle_pi16 (__m64 __A, int __N)
{
return (__m64) __builtin_ia32_pshufw ((__v4hi)__A, __N);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pshufw (__m64 __A, int __N)
{
return _mm_shuffle_pi16 (__A, __N);
@@ -1096,39 +1097,39 @@ _m_pshufw (__m64 __A, int __N)
/* Conditionally store byte elements of A into P. The high bit of each
byte in the selector N determines whether the corresponding byte from
A is stored. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P)
{
__builtin_ia32_maskmovq ((__v8qi)__A, (__v8qi)__N, __P);
}
-static __inline void
+static __inline void __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_avg_pu8 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pavgb ((__v8qi)__A, (__v8qi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_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
+static __inline __m64 __attribute__((__always_inline__))
_mm_avg_pu16 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_pavgw ((__v4hi)__A, (__v4hi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_pavgw (__m64 __A, __m64 __B)
{
return _mm_avg_pu16 (__A, __B);
@@ -1137,13 +1138,13 @@ _m_pavgw (__m64 __A, __m64 __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. */
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_mm_sad_pu8 (__m64 __A, __m64 __B)
{
return (__m64) __builtin_ia32_psadbw ((__v8qi)__A, (__v8qi)__B);
}
-static __inline __m64
+static __inline __m64 __attribute__((__always_inline__))
_m_psadbw (__m64 __A, __m64 __B)
{
return _mm_sad_pu8 (__A, __B);
@@ -1152,7 +1153,7 @@ _m_psadbw (__m64 __A, __m64 __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
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_prefetch (void *__P, enum _mm_hint __I)
{
__builtin_prefetch (__P, 0, __I);
@@ -1163,14 +1164,14 @@ _mm_prefetch (void *__P, enum _mm_hint __I)
#endif
/* Stores the data in A to the address P without polluting the caches. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_stream_pi (__m64 *__P, __m64 __A)
{
__builtin_ia32_movntq ((unsigned long long *)__P, (unsigned long long)__A);
}
/* Likewise. The address must be 16-byte aligned. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_stream_ps (float *__P, __m128 __A)
{
__builtin_ia32_movntps (__P, (__v4sf)__A);
@@ -1178,7 +1179,7 @@ _mm_stream_ps (float *__P, __m128 __A)
/* Guarantees that every preceding store is globally visible before
any subsequent store. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_sfence (void)
{
__builtin_ia32_sfence ();
@@ -1187,7 +1188,7 @@ _mm_sfence (void)
/* The execution of the next instruction is delayed by an implementation
specific amount of time. The instruction does not modify the
architectural state. */
-static __inline void
+static __inline void __attribute__((__always_inline__))
_mm_pause (void)
{
__asm__ __volatile__ ("rep; nop" : : );
diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h
index 4ed29bbbfca..1618eb892b0 100644
--- a/gcc/config/ia64/hpux.h
+++ b/gcc/config/ia64/hpux.h
@@ -75,7 +75,7 @@ do { \
#undef LINK_SPEC
#define LINK_SPEC \
- "+Accept TypeMismatch \
+ "-z +Accept TypeMismatch \
%{shared:-b} \
%{!shared: \
-u main \
@@ -91,13 +91,6 @@ do { \
%{mlp64:-L/usr/lib/hpux64/libp} -lgprof} \
%{!symbolic:-lc}}"
-#ifndef CROSS_COMPILE
-#undef LIBGCC_SPEC
-#define LIBGCC_SPEC \
- "%{shared-libgcc:%{!mlp64:-lgcc_s}%{mlp64:-lgcc_s_hpux64} -lgcc} \
- %{!shared-libgcc:-lgcc}"
-#endif
-
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{ "ilp32", MASK_ILP32, "Generate ILP32 code" }, \
@@ -209,3 +202,11 @@ do { \
#define TARGET_INIT_LIBFUNCS ia64_hpux_init_libfuncs
#define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) ((MODE) == TFmode)
+
+/* Put all *xf routines in libgcc, regardless of long double size. */
+#undef LIBGCC2_HAS_XF_MODE
+#define LIBGCC2_HAS_XF_MODE 1
+
+/* Put all *tf routines in libgcc, regardless of long double size. */
+#undef LIBGCC2_HAS_TF_MODE
+#define LIBGCC2_HAS_TF_MODE 1
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 4502a4600fb..8cbacf945ff 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -3915,6 +3915,10 @@ ia64_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
offset = 0;
bytesize = int_size_in_bytes (valtype);
+ /* An empty PARALLEL is invalid here, but the return value
+ doesn't matter for empty structs. */
+ if (bytesize == 0)
+ return gen_rtx_REG (mode, GR_RET_FIRST);
for (i = 0; offset < bytesize; i++)
{
loc[i] = gen_rtx_EXPR_LIST (VOIDmode,
@@ -5239,8 +5243,8 @@ rtx_needs_barrier (rtx x, struct reg_flags flags, int pred)
break;
case SUBREG:
- x = SUBREG_REG (x);
- /* FALLTHRU */
+ need_barrier |= rtx_needs_barrier (SUBREG_REG (x), flags, pred);
+ break;
case REG:
if (REGNO (x) == AR_UNAT_REGNUM)
{
@@ -5684,147 +5688,6 @@ emit_all_insn_group_barriers (FILE *dump ATTRIBUTE_UNUSED)
}
-static int errata_find_address_regs (rtx *, void *);
-static void errata_emit_nops (rtx);
-static void fixup_errata (void);
-
-/* This structure is used to track some details about the previous insns
- groups so we can determine if it may be necessary to insert NOPs to
- workaround hardware errata. */
-static struct group
-{
- HARD_REG_SET p_reg_set;
- HARD_REG_SET gr_reg_conditionally_set;
-} last_group[2];
-
-/* Index into the last_group array. */
-static int group_idx;
-
-/* Called through for_each_rtx; determines if a hard register that was
- conditionally set in the previous group is used as an address register.
- It ensures that for_each_rtx returns 1 in that case. */
-static int
-errata_find_address_regs (rtx *xp, void *data ATTRIBUTE_UNUSED)
-{
- rtx x = *xp;
- if (GET_CODE (x) != MEM)
- return 0;
- x = XEXP (x, 0);
- if (GET_CODE (x) == POST_MODIFY)
- x = XEXP (x, 0);
- if (GET_CODE (x) == REG)
- {
- struct group *prev_group = last_group + (group_idx ^ 1);
- if (TEST_HARD_REG_BIT (prev_group->gr_reg_conditionally_set,
- REGNO (x)))
- return 1;
- return -1;
- }
- return 0;
-}
-
-/* Called for each insn; this function keeps track of the state in
- last_group and emits additional NOPs if necessary to work around
- an Itanium A/B step erratum. */
-static void
-errata_emit_nops (rtx insn)
-{
- struct group *this_group = last_group + group_idx;
- struct group *prev_group = last_group + (group_idx ^ 1);
- rtx pat = PATTERN (insn);
- rtx cond = GET_CODE (pat) == COND_EXEC ? COND_EXEC_TEST (pat) : 0;
- rtx real_pat = cond ? COND_EXEC_CODE (pat) : pat;
- enum attr_type type;
- rtx set = real_pat;
-
- if (GET_CODE (real_pat) == USE
- || GET_CODE (real_pat) == CLOBBER
- || GET_CODE (real_pat) == ASM_INPUT
- || GET_CODE (real_pat) == ADDR_VEC
- || GET_CODE (real_pat) == ADDR_DIFF_VEC
- || asm_noperands (PATTERN (insn)) >= 0)
- return;
-
- /* single_set doesn't work for COND_EXEC insns, so we have to duplicate
- parts of it. */
-
- if (GET_CODE (set) == PARALLEL)
- {
- int i;
- set = XVECEXP (real_pat, 0, 0);
- for (i = 1; i < XVECLEN (real_pat, 0); i++)
- if (GET_CODE (XVECEXP (real_pat, 0, i)) != USE
- && GET_CODE (XVECEXP (real_pat, 0, i)) != CLOBBER)
- {
- set = 0;
- break;
- }
- }
-
- if (set && GET_CODE (set) != SET)
- set = 0;
-
- type = get_attr_type (insn);
-
- if (type == TYPE_F
- && set && REG_P (SET_DEST (set)) && PR_REGNO_P (REGNO (SET_DEST (set))))
- SET_HARD_REG_BIT (this_group->p_reg_set, REGNO (SET_DEST (set)));
-
- if ((type == TYPE_M || type == TYPE_A) && cond && set
- && REG_P (SET_DEST (set))
- && GET_CODE (SET_SRC (set)) != PLUS
- && GET_CODE (SET_SRC (set)) != MINUS
- && (GET_CODE (SET_SRC (set)) != ASHIFT
- || !shladd_operand (XEXP (SET_SRC (set), 1), VOIDmode))
- && (GET_CODE (SET_SRC (set)) != MEM
- || GET_CODE (XEXP (SET_SRC (set), 0)) != POST_MODIFY)
- && GENERAL_REGNO_P (REGNO (SET_DEST (set))))
- {
- if (!COMPARISON_P (cond)
- || !REG_P (XEXP (cond, 0)))
- abort ();
-
- if (TEST_HARD_REG_BIT (prev_group->p_reg_set, REGNO (XEXP (cond, 0))))
- SET_HARD_REG_BIT (this_group->gr_reg_conditionally_set, REGNO (SET_DEST (set)));
- }
- if (for_each_rtx (&real_pat, errata_find_address_regs, NULL))
- {
- emit_insn_before (gen_insn_group_barrier (GEN_INT (3)), insn);
- emit_insn_before (gen_nop (), insn);
- emit_insn_before (gen_insn_group_barrier (GEN_INT (3)), insn);
- group_idx = 0;
- memset (last_group, 0, sizeof last_group);
- }
-}
-
-/* Emit extra nops if they are required to work around hardware errata. */
-
-static void
-fixup_errata (void)
-{
- rtx insn;
-
- if (! TARGET_B_STEP)
- return;
-
- group_idx = 0;
- memset (last_group, 0, sizeof last_group);
-
- for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
- {
- if (!INSN_P (insn))
- continue;
-
- if (ia64_safe_type (insn) == TYPE_S)
- {
- group_idx ^= 1;
- memset (last_group + group_idx, 0, sizeof last_group[group_idx]);
- }
- else
- errata_emit_nops (insn);
- }
-}
-
/* Instruction scheduling support. */
@@ -6570,6 +6433,17 @@ issue_nops_and_insn (struct bundle_state *originator, int before_nops_num,
}
else
{
+ /* If this is an insn that must be first in a group, then don't allow
+ nops to be emitted before it. Currently, alloc is the only such
+ supported instruction. */
+ /* ??? The bundling automatons should handle this for us, but they do
+ not yet have support for the first_insn attribute. */
+ if (before_nops_num > 0 && get_attr_first_insn (insn) == FIRST_INSN_YES)
+ {
+ free_bundle_state (curr_state);
+ return;
+ }
+
state_transition (curr_state->dfa_state, dfa_pre_cycle_insn);
state_transition (curr_state->dfa_state, NULL);
curr_state->cost++;
@@ -7583,7 +7457,6 @@ ia64_reorg (void)
}
}
- fixup_errata ();
emit_predicate_relation_info ();
if (ia64_flag_var_tracking)
@@ -7726,7 +7599,8 @@ process_epilogue (void)
if (!last_block)
{
- fprintf (asm_out_file, "\t.label_state 1\n");
+ fprintf (asm_out_file, "\t.label_state %d\n",
+ ++cfun->machine->state_num);
need_copy_state = true;
}
@@ -7974,7 +7848,8 @@ process_for_unwind_directive (FILE *asm_out_file, rtx insn)
if (need_copy_state)
{
fprintf (asm_out_file, "\t.body\n");
- fprintf (asm_out_file, "\t.copy_state 1\n");
+ fprintf (asm_out_file, "\t.copy_state %d\n",
+ cfun->machine->state_num);
need_copy_state = false;
}
}
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 255f9f29fdf..a81cd2c9fe2 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -75,8 +75,6 @@ extern int target_flags;
#define MASK_ILP32 0x00000020 /* Generate ILP32 code. */
-#define MASK_B_STEP 0x00000040 /* Emit code for Itanium B step. */
-
#define MASK_REG_NAMES 0x00000080 /* Use in/loc/out register names. */
#define MASK_NO_SDATA 0x00000100 /* Disable sdata/scommon/sbss. */
@@ -113,8 +111,6 @@ extern int target_flags;
#define TARGET_ILP32 (target_flags & MASK_ILP32)
-#define TARGET_B_STEP (target_flags & MASK_B_STEP)
-
#define TARGET_REG_NAMES (target_flags & MASK_REG_NAMES)
#define TARGET_NO_SDATA (target_flags & MASK_NO_SDATA)
@@ -196,8 +192,6 @@ extern int ia64_tls_size;
N_("Emit stop bits before and after volatile extended asms") }, \
{ "no-volatile-asm-stop", -MASK_VOL_ASM_STOP, \
N_("Don't emit stop bits before and after volatile extended asms") }, \
- { "b-step", MASK_B_STEP, \
- N_("Emit code for Itanium (TM) processor B step")}, \
{ "register-names", MASK_REG_NAMES, \
N_("Use in/loc/out register names")}, \
{ "no-sdata", MASK_NO_SDATA, \
@@ -2199,6 +2193,9 @@ struct machine_function GTY(())
/* The number of varargs registers to save. */
int n_varargs;
+
+ /* The number of the next unwind state to copy. */
+ int state_num;
};
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index cb5dd10abc2..ef06b4596ab 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -163,6 +163,11 @@
(define_attr "empty" "no,yes" (const_string "no"))
+;; True iff this insn must be the first insn of an instruction group.
+;; This is true for the alloc instruction, and will also be true of others
+;; when we have full intrinsics support.
+
+(define_attr "first_insn" "no,yes" (const_string "no"))
;; DFA descriptions of ia64 processors used for insn scheduling and
;; bundling.
@@ -2694,7 +2699,7 @@
[(parallel [(set (match_dup 6) (div:XF (const_int 1) (match_dup 8)))
(set (match_dup 5) (unspec:BI [(match_dup 7) (match_dup 8)]
UNSPEC_FR_RECIP_APPROX))
- (use (const_int 1))])
+ (use (const_int 0))])
(cond_exec (ne (match_dup 5) (const_int 0))
(parallel [(set (match_dup 3) (mult:XF (match_dup 7) (match_dup 6)))
(use (const_int 1))]))
@@ -2751,7 +2756,7 @@
[(parallel [(set (match_dup 6) (div:XF (const_int 1) (match_dup 8)))
(set (match_dup 5) (unspec:BI [(match_dup 7) (match_dup 8)]
UNSPEC_FR_RECIP_APPROX))
- (use (const_int 1))])
+ (use (const_int 0))])
(cond_exec (ne (match_dup 5) (const_int 0))
(parallel [(set (match_dup 3)
(minus:XF (match_dup 10)
@@ -3177,7 +3182,7 @@
[(parallel [(set (match_dup 7) (div:XF (const_int 1) (match_dup 9)))
(set (match_dup 6) (unspec:BI [(match_dup 8) (match_dup 9)]
UNSPEC_FR_RECIP_APPROX))
- (use (const_int 1))])
+ (use (const_int 0))])
(cond_exec (ne (match_dup 6) (const_int 0))
(parallel [(set (match_dup 3) (mult:XF (match_dup 8) (match_dup 7)))
(use (const_int 1))]))
@@ -3257,7 +3262,7 @@
[(parallel [(set (match_dup 6) (div:XF (const_int 1) (match_dup 8)))
(set (match_dup 5) (unspec:BI [(match_dup 7) (match_dup 8)]
UNSPEC_FR_RECIP_APPROX))
- (use (const_int 1))])
+ (use (const_int 0))])
(cond_exec (ne (match_dup 5) (const_int 0))
(parallel [(set (match_dup 3)
(minus:XF (match_dup 10)
@@ -3842,7 +3847,7 @@
[(parallel [(set (match_dup 0) (div:XF (const_int 1) (match_dup 2)))
(set (match_dup 7) (unspec:BI [(match_dup 1) (match_dup 2)]
UNSPEC_FR_RECIP_APPROX))
- (use (const_int 1))])
+ (use (const_int 0))])
(cond_exec (ne (match_dup 7) (const_int 0))
(parallel [(set (match_dup 3)
(minus:XF (match_dup 8)
@@ -3920,7 +3925,7 @@
[(parallel [(set (match_dup 0) (div:XF (const_int 1) (match_dup 2)))
(set (match_dup 5) (unspec:BI [(match_dup 1) (match_dup 2)]
UNSPEC_FR_RECIP_APPROX))
- (use (const_int 1))])
+ (use (const_int 0))])
(cond_exec (ne (match_dup 5) (const_int 0))
(parallel [(set (match_dup 3)
(minus:XF (match_dup 6)
@@ -5703,7 +5708,8 @@
""
"alloc %0 = ar.pfs, %1, %2, %3, %4"
[(set_attr "itanium_class" "syst_m0")
- (set_attr "predicable" "no")])
+ (set_attr "predicable" "no")
+ (set_attr "first_insn" "yes")])
;; Modifies ar.unat
(define_expand "gr_spill"
diff --git a/gcc/config/ia64/lib1funcs.asm b/gcc/config/ia64/lib1funcs.asm
index e3d348ba722..68ee421ff65 100644
--- a/gcc/config/ia64/lib1funcs.asm
+++ b/gcc/config/ia64/lib1funcs.asm
@@ -706,9 +706,8 @@ __ia64_trampoline:
.endp __ia64_trampoline
#endif
-#ifdef L__compat
// Thunks for backward compatibility.
-
+#ifdef L_fixtfdi
.text
.align 16
.global __fixtfti
@@ -719,7 +718,8 @@ __fixtfti:
;;
}
.endp __fixtfti
-
+#endif
+#ifdef L_fixunstfdi
.align 16
.global __fixunstfti
.proc __fixunstfti
@@ -729,7 +729,8 @@ __fixunstfti:
;;
}
.endp __fixunstfti
-
+#endif
+#if L_floatditf
.align 16
.global __floattitf
.proc __floattitf
@@ -739,5 +740,4 @@ __floattitf:
;;
}
.endp __floattitf
-
#endif
diff --git a/gcc/config/ia64/t-hpux b/gcc/config/ia64/t-hpux
index d89f174592c..2897739fda1 100644
--- a/gcc/config/ia64/t-hpux
+++ b/gcc/config/ia64/t-hpux
@@ -32,14 +32,19 @@ SHLIB_EXT = .so
# DT_NEEDED entry for libunwind.
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,+h,@shlib_base_name@.so.0 \
- -o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lunwind -lc && \
- rm -f @shlib_base_name@.so.0 && \
- $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
+ -o @multilib_dir@/@shlib_base_name@.so @multilib_flags@ \
+ @shlib_objs@ -lunwind -lc && \
+ rm -f @multilib_dir@/@shlib_base_name@.so.0 && \
+ $(LN_S) @shlib_base_name@.so @multilib_dir@/@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 $$(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_INSTALL = \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \
+ $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so \
+ $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so.0; \
+ rm -f $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \
+ $(LN_S) @shlib_base_name@.so.0 \
+ $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \
+ chmod +x $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/@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 04cfc21592d..824cc4113c4 100644
--- a/gcc/config/ia64/t-ia64
+++ b/gcc/config/ia64/t-ia64
@@ -8,7 +8,8 @@ LIB1ASMSRC = ia64/lib1funcs.asm
LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \
__divdi3 __moddi3 __udivdi3 __umoddi3 \
__divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \
- __nonlocal_goto __restore_stack_nonlocal __trampoline __compat
+ __nonlocal_goto __restore_stack_nonlocal __trampoline \
+ _fixtfdi _fixunstfdi _floatditf
# ??? Hack to get -P option used when compiling lib1funcs.asm, because Intel
# assembler does not accept # line number as a comment.
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index 31b0e4cdf58..4c06ff7263a 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -2275,6 +2275,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"
@@ -2387,7 +2389,6 @@ uw_identify_context (struct _Unwind_Context *context)
alias (_Unwind_Backtrace);
alias (_Unwind_DeleteException);
alias (_Unwind_FindEnclosingFunction);
-alias (_Unwind_FindTableEntry);
alias (_Unwind_ForcedUnwind);
alias (_Unwind_GetBSP);
alias (_Unwind_GetCFA);
diff --git a/gcc/config/ip2k/ip2k.c b/gcc/config/ip2k/ip2k.c
index 70b23d0f755..06345c5d2f3 100644
--- a/gcc/config/ip2k/ip2k.c
+++ b/gcc/config/ip2k/ip2k.c
@@ -5318,7 +5318,7 @@ ip2k_reorg (void)
/* There's a good chance that since we last did CSE that we've rearranged
things in such a way that another go will win. Do so now! */
reload_cse_regs (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_REG_INFO | PROP_DEATH_NOTES);
/* Look for where absurd things are happening with DP. */
@@ -5330,7 +5330,7 @@ ip2k_reorg (void)
split_all_insns (0);
reload_cse_regs (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_REG_INFO | PROP_DEATH_NOTES);
if (flag_peephole2)
peephole2_optimize (NULL);
@@ -5357,7 +5357,7 @@ ip2k_reorg (void)
mdr_try_move_dp_reload (first_insn);
mdr_try_move_pushes (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
mdr_try_propagate_move (first_insn);
@@ -5371,14 +5371,14 @@ ip2k_reorg (void)
mdr_try_propagate_move (first_insn);
reload_cse_regs (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
if (flag_peephole2)
peephole2_optimize (NULL);
mdr_try_propagate_move (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
ip2k_reorg_split_simode = 1;
@@ -5389,14 +5389,14 @@ ip2k_reorg (void)
mdr_try_propagate_move (first_insn);
reload_cse_regs (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
if (flag_peephole2)
peephole2_optimize (NULL);
mdr_try_propagate_move (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
ip2k_reorg_split_himode = 1;
@@ -5414,21 +5414,21 @@ ip2k_reorg (void)
/* Call to jump_optimize (...) was here, but now I removed it. */
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
if (flag_peephole2)
peephole2_optimize (NULL);
mdr_try_propagate_move (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
mdr_try_remove_redundant_insns (first_insn);
mdr_try_propagate_clr (first_insn);
mdr_try_propagate_move (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
ip2k_reorg_split_qimode = 1;
@@ -5437,7 +5437,7 @@ ip2k_reorg (void)
mdr_try_wreg_elim (first_insn);
mdr_try_propagate_move (first_insn);
- find_basic_blocks (first_insn, max_reg_num (), 0);
+ find_basic_blocks (first_insn);
life_analysis (0, PROP_FINAL);
#endif
}
diff --git a/gcc/config/iq2000/iq2000.h b/gcc/config/iq2000/iq2000.h
index d3e661b4c5a..2011f122d84 100644
--- a/gcc/config/iq2000/iq2000.h
+++ b/gcc/config/iq2000/iq2000.h
@@ -928,14 +928,11 @@ extern void sbss_section (void);
#undef ASM_SPEC
-/* The mapping from gcc register number to DWARF 2 CFA column number.
- This mapping does not allow for tracking register 0, since
- register 0 is fixed. */
-#define DWARF_FRAME_REGNUM(REG) \
- (REG == GP_REG_FIRST + 31 ? DWARF_FRAME_RETURN_COLUMN : REG)
+/* The mapping from gcc register number to DWARF 2 CFA column number. */
+#define DWARF_FRAME_REGNUM(REG) (REG)
/* The DWARF 2 CFA column which tracks the return address. */
-#define DWARF_FRAME_RETURN_COLUMN ( GP_REG_FIRST + 26)
+#define DWARF_FRAME_RETURN_COLUMN (GP_REG_FIRST + 31)
/* Describe how we implement __builtin_eh_return. */
#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N) + GP_ARG_FIRST : INVALID_REGNUM)
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 1db78d93d21..e3ac6fada85 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -371,9 +371,13 @@ m68k_initial_elimination_offset (int from, int to)
static bool
m68k_save_reg (unsigned int regno, bool interrupt_handler)
{
- if (flag_pic && current_function_uses_pic_offset_table
- && regno == PIC_OFFSET_TABLE_REGNUM)
- return true;
+ if (flag_pic && regno == PIC_OFFSET_TABLE_REGNUM)
+ {
+ if (current_function_uses_pic_offset_table)
+ return true;
+ if (!current_function_is_leaf && TARGET_ID_SHARED_LIBRARY)
+ return true;
+ }
if (current_function_calls_eh_return)
{
diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h
index ff051255c9c..b64d371b8f3 100644
--- a/gcc/config/mips/iris6.h
+++ b/gcc/config/mips/iris6.h
@@ -38,6 +38,11 @@ Boston, MA 02111-1307, USA. */
compiling -g. This guarantees that we can unwind the stack. */
#define DWARF2_FRAME_INFO 1
+/* The system unwinder in libexc requires a specific dwarf return address
+ column to work. */
+#undef DWARF_FRAME_RETURN_COLUMN
+#define DWARF_FRAME_RETURN_COLUMN (FP_REG_LAST + 1)
+
#undef MACHINE_TYPE
#define MACHINE_TYPE "SGI running IRIX 6.x"
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index b295ffcb8e1..79dabbeb493 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -562,6 +562,9 @@ int mips16_hard_float;
const char *mips_cache_flush_func = CACHE_FLUSH_FUNC;
+/* Holds string <X> if -mfix-vr4130<X> was passed on the command line. */
+const char *mips_fix_vr4130_string;
+
/* If TRUE, we split addresses into their high and low parts in the RTL. */
int mips_split_addresses;
@@ -4132,9 +4135,12 @@ override_options (void)
}
/* Deprecate -mint64. Remove after 4.0 branches. */
- if ((target_flags_explicit & MASK_INT64) != 0)
+ if (TARGET_INT64)
warning ("-mint64 is a deprecated option");
+ if (mips_fix_vr4130_string && mips_fix_vr4130_string[0] != 0)
+ error ("unrecognized option %<-mfix-vr4130%s%>", mips_fix_vr4130_string);
+
if (MIPS_MARCH_CONTROLS_SOFT_FLOAT
&& (target_flags_explicit & MASK_SOFT_FLOAT) == 0)
{
@@ -5135,56 +5141,20 @@ mips_output_ascii (FILE *stream, const char *string_param, size_t len,
{
register int c = string[i];
- switch (c)
+ if (ISPRINT (c))
{
- case '\"':
- case '\\':
- putc ('\\', stream);
- putc (c, stream);
- cur_pos += 2;
- break;
-
- case TARGET_NEWLINE:
- fputs ("\\n", stream);
- if (i+1 < len
- && (((c = string[i+1]) >= '\040' && c <= '~')
- || c == TARGET_TAB))
- cur_pos = 32767; /* break right here */
- else
- cur_pos += 2;
- break;
-
- case TARGET_TAB:
- fputs ("\\t", stream);
- cur_pos += 2;
- break;
-
- case TARGET_FF:
- fputs ("\\f", stream);
- cur_pos += 2;
- break;
-
- case TARGET_BS:
- fputs ("\\b", stream);
- cur_pos += 2;
- break;
-
- case TARGET_CR:
- fputs ("\\r", stream);
- cur_pos += 2;
- break;
-
- default:
- if (c >= ' ' && c < 0177)
+ if (c == '\\' || c == '\"')
{
- putc (c, stream);
+ putc ('\\', stream);
cur_pos++;
}
- else
- {
- fprintf (stream, "\\%03o", c);
- cur_pos += 4;
- }
+ putc (c, stream);
+ cur_pos++;
+ }
+ else
+ {
+ fprintf (stream, "\\%03o", c);
+ cur_pos += 4;
}
if (cur_pos > 72 && i+1 < len)
@@ -6075,8 +6045,18 @@ mips_set_frame_expr (rtx frame_pattern)
static rtx
mips_frame_set (rtx mem, rtx reg)
{
- rtx set = gen_rtx_SET (VOIDmode, mem, reg);
+ rtx set;
+
+ /* If we're saving the return address register and the dwarf return
+ address column differs from the hard register number, adjust the
+ note reg to refer to the former. */
+ if (REGNO (reg) == GP_REG_FIRST + 31
+ && DWARF_FRAME_RETURN_COLUMN != GP_REG_FIRST + 31)
+ reg = gen_rtx_REG (GET_MODE (reg), DWARF_FRAME_RETURN_COLUMN);
+
+ set = gen_rtx_SET (VOIDmode, mem, reg);
RTX_FRAME_RELATED_P (set) = 1;
+
return set;
}
@@ -7777,11 +7757,7 @@ dump_constants (struct mips16_constant *constants, rtx insn)
emit_barrier_after (insn);
}
-/* Return the length of instruction INSN.
-
- ??? MIPS16 switch tables go in .text, but we don't define
- JUMP_TABLES_IN_TEXT_SECTION, so get_attr_length will not
- compute their lengths correctly. */
+/* Return the length of instruction INSN. */
static int
mips16_insn_length (rtx insn)
@@ -8330,10 +8306,24 @@ mips_avoid_hazards (void)
cfun->machine->ignore_hazard_length_p = true;
shorten_branches (get_insns ());
- /* The profiler code uses assembler macros. -mfix-vr4120 relies on
- assembler nop insertion. */
- cfun->machine->all_noreorder_p = (!current_function_profile
- && !TARGET_FIX_VR4120);
+ cfun->machine->all_noreorder_p = true;
+
+ /* Profiled functions can't be all noreorder because the profiler
+ support uses assembler macros. */
+ if (current_function_profile)
+ cfun->machine->all_noreorder_p = false;
+
+ /* Code compiled with -mfix-vr4120 can't be all noreorder because
+ we rely on the assembler to work around some errata. */
+ if (TARGET_FIX_VR4120)
+ cfun->machine->all_noreorder_p = false;
+
+ /* The same is true for -mfix-vr4130 if we might generate mflo or
+ mfhi instructions. Note that we avoid using mflo and mfhi if
+ the VR4130 macc and dmacc instructions are available instead;
+ see the *mfhilo_{si,di}_macc patterns. */
+ if (TARGET_FIX_VR4130 && !ISA_HAS_MACCHI)
+ cfun->machine->all_noreorder_p = false;
last_insn = 0;
hilo_delay = 2;
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 495b8190f4b..3ed4c56d4bd 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -111,6 +111,7 @@ extern const char *mips_tune_string; /* for -mtune=<xxx> */
extern const char *mips_isa_string; /* for -mips{1,2,3,4} */
extern const char *mips_abi_string; /* for -mabi={32,n32,64} */
extern const char *mips_cache_flush_func;/* for -mflush-func= and -mno-flush-func */
+extern const char *mips_fix_vr4130_string;
extern const struct mips_cpu_info mips_cpu_info_table[];
extern const struct mips_cpu_info *mips_arch_info;
extern const struct mips_cpu_info *mips_tune_info;
@@ -164,6 +165,7 @@ extern const struct mips_cpu_info *mips_tune_info;
break instead of trap. */
#define MASK_PAIRED_SINGLE 0x10000000 /* Support paired-single FPU. */
#define MASK_MIPS3D 0x20000000 /* Support MIPS-3D instructions. */
+#define MASK_SYM32 0x40000000 /* Assume 32-bit symbol values. */
/* Debug switches, not documented */
#define MASK_DEBUG 0 /* unused */
@@ -235,6 +237,7 @@ extern const struct mips_cpu_info *mips_tune_info;
/* Work around R4400 errata. */
#define TARGET_FIX_R4400 ((target_flags & MASK_FIX_R4400) != 0)
#define TARGET_FIX_VR4120 ((target_flags & MASK_FIX_VR4120) != 0)
+#define TARGET_FIX_VR4130 (mips_fix_vr4130_string != 0)
#define TARGET_VR4130_ALIGN ((target_flags & MASK_VR4130_ALIGN) != 0)
#define TARGET_FP_EXCEPTIONS ((target_flags & MASK_FP_EXCEPTIONS) != 0)
@@ -242,6 +245,7 @@ extern const struct mips_cpu_info *mips_tune_info;
#define TARGET_PAIRED_SINGLE_FLOAT \
((target_flags & MASK_PAIRED_SINGLE) != 0)
#define TARGET_MIPS3D ((target_flags & MASK_MIPS3D) != 0)
+#define TARGET_SYM32 ((target_flags & MASK_SYM32) != 0)
/* True if we should use NewABI-style relocation operators for
symbolic addresses. This is never true for mips16 code,
@@ -669,6 +673,10 @@ extern const struct mips_cpu_info *mips_tune_info;
N_("FP exceptions are enabled") }, \
{"no-fp-exceptions", -MASK_FP_EXCEPTIONS, \
N_("FP exceptions are not enabled") }, \
+ {"sym32", MASK_SYM32, \
+ N_("Assume all symbols have 32-bit values") }, \
+ {"no-sym32", -MASK_SYM32, \
+ N_("Don't assume all symbols have 32-bit values") }, \
{"debug", MASK_DEBUG, \
NULL}, \
{"debugd", MASK_DEBUG_D, \
@@ -788,6 +796,8 @@ extern const struct mips_cpu_info *mips_tune_info;
N_("Don't call any cache flush functions"), 0}, \
{ "flush-func=", &mips_cache_flush_func, \
N_("Specify cache flush function"), 0}, \
+ { "fix-vr4130", &mips_fix_vr4130_string, \
+ N_("Work around VR4130 mflo/mfhi errata"), 0}, \
}
/* This is meant to be redefined in the host dependent files. */
@@ -843,7 +853,7 @@ extern const struct mips_cpu_info *mips_tune_info;
/* True if symbols are 64 bits wide. At present, n64 is the only
ABI for which this is true. */
-#define ABI_HAS_64BIT_SYMBOLS (mips_abi == ABI_64)
+#define ABI_HAS_64BIT_SYMBOLS (mips_abi == ABI_64 && !TARGET_SYM32)
/* ISA has instructions for managing 64 bit fp and gp regs (e.g. mips3). */
#define ISA_HAS_64BIT_REGS (ISA_MIPS3 \
@@ -933,6 +943,11 @@ extern const struct mips_cpu_info *mips_tune_info;
|| TARGET_SR71K \
)
+/* ISA has NEC VR-style MACC, MACCHI, DMACC and DMACCHI instructions. */
+#define ISA_HAS_MACCHI (!TARGET_MIPS16 \
+ && (TARGET_MIPS4120 \
+ || TARGET_MIPS4130))
+
/* ISA has 32-bit rotate right instruction. */
#define ISA_HAS_ROTR_SI (!TARGET_MIPS16 \
&& (ISA_MIPS32R2 \
@@ -1088,11 +1103,12 @@ extern const struct mips_cpu_info *mips_tune_info;
%{mips32} %{mips32r2} %{mips64} \
%{mips16:%{!mno-mips16:-mips16}} %{mno-mips16:-no-mips16} \
%{mips3d:-mips3d} \
-%{mfix-vr4120} \
+%{mfix-vr4120} %{mfix-vr4130} \
%(subtarget_asm_optimizing_spec) \
%(subtarget_asm_debugging_spec) \
%{mabi=*} %{!mabi*: %(asm_abi_default_spec)} \
%{mgp32} %{mgp64} %{march=*} %{mxgot:-xgot} \
+%{msym32} %{mno-sym32} \
%{mtune=*} %{v} \
%(subtarget_asm_spec)"
@@ -1218,7 +1234,7 @@ extern const struct mips_cpu_info *mips_tune_info;
/* Offsets recorded in opcodes are a multiple of this alignment factor.
The default for this in 64-bit mode is 8, which causes problems with
SFmode register saves. */
-#define DWARF_CIE_DATA_ALIGNMENT 4
+#define DWARF_CIE_DATA_ALIGNMENT -4
/* Correct the offset of automatic variables and arguments. Note that
the MIPS debug format wants all automatic variables and arguments
@@ -2873,18 +2889,9 @@ do { \
LOCAL_LABEL_PREFIX, VALUE); \
} while (0)
-/* When generating mips16 code we want to put the jump table in the .text
- section. In all other cases, we want to put the jump table in the .rdata
- section. Unfortunately, we can't use JUMP_TABLES_IN_TEXT_SECTION, because
- it is not conditional. Instead, we use ASM_OUTPUT_CASE_LABEL to switch back
- to the .text section if appropriate. */
-#undef ASM_OUTPUT_CASE_LABEL
-#define ASM_OUTPUT_CASE_LABEL(FILE, PREFIX, NUM, INSN) \
-do { \
- if (TARGET_MIPS16) \
- function_section (current_function_decl); \
- (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM); \
-} while (0)
+/* When generating MIPS16 code, we want the jump table to be in the text
+ section so that we can load its address using a PC-relative addition. */
+#define JUMP_TABLES_IN_TEXT_SECTION TARGET_MIPS16
/* This is how to output an assembler line
that says to advance the location counter
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index 8c3a80ab634..0a63df09c1a 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -3729,17 +3729,42 @@ beq\t%2,%.,1b\;\
;;
;; We cope with this by making the mflo and mfhi patterns use both HI and LO.
;; Operand 1 is the register we want, operand 2 is the other one.
+;;
+;; When generating VR4120 or VR4130 code, we use macc{,hi} and
+;; dmacc{,hi} instead of mfhi and mflo. This avoids both the normal
+;; MIPS III hi/lo hazards and the errata related to -mfix-vr4130.
+
+(define_expand "mfhilo_<mode>"
+ [(set (match_operand:GPR 0 "register_operand")
+ (unspec:GPR [(match_operand:GPR 1 "register_operand")
+ (match_operand:GPR 2 "register_operand")]
+ UNSPEC_MFHILO))])
-(define_insn "mfhilo_<mode>"
+(define_insn "*mfhilo_<mode>"
[(set (match_operand:GPR 0 "register_operand" "=d,d")
(unspec:GPR [(match_operand:GPR 1 "register_operand" "h,l")
(match_operand:GPR 2 "register_operand" "l,h")]
UNSPEC_MFHILO))]
- ""
+ "!ISA_HAS_MACCHI"
"mf%1\t%0"
[(set_attr "type" "mfhilo")
(set_attr "mode" "<MODE>")])
+(define_insn "*mfhilo_<mode>_macc"
+ [(set (match_operand:GPR 0 "register_operand" "=d,d")
+ (unspec:GPR [(match_operand:GPR 1 "register_operand" "h,l")
+ (match_operand:GPR 2 "register_operand" "l,h")]
+ UNSPEC_MFHILO))]
+ "ISA_HAS_MACCHI"
+{
+ if (REGNO (operands[1]) == HI_REGNUM)
+ return "<d>macchi\t%0,%.,%.";
+ else
+ return "<d>macc\t%0,%.,%.";
+}
+ [(set_attr "type" "mfhilo")
+ (set_attr "mode" "<MODE>")])
+
;; Patterns for loading or storing part of a paired floating point
;; register. We need them because odd-numbered floating-point registers
;; are not fully independent: see mips_split_64bit_move.
diff --git a/gcc/config/mips/t-slibgcc-irix b/gcc/config/mips/t-slibgcc-irix
index 71e5094103f..cfb4bf4d8cc 100644
--- a/gcc/config/mips/t-slibgcc-irix
+++ b/gcc/config/mips/t-slibgcc-irix
@@ -3,29 +3,29 @@
SHLIB_EXT = .so
SHLIB_SOLINK = @shlib_base_name@.so
SHLIB_SOVERSION = 1
-SHLIB_SONAME = @shlib_so_name@.so.$(SHLIB_SOVERSION)
-SHLIB_NAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
+SHLIB_SONAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
SHLIB_MAP = @shlib_map_file@
SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
SHLIB_LC = -lc
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,-soname,$(SHLIB_SONAME) \
- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
- rm -f $(SHLIB_SOLINK) && \
- if [ -f $(SHLIB_NAME) ]; then \
- mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+ -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+ if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+ $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
else true; fi && \
- mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
- $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK) && \
- { test "@multilib_dir@" = "." || \
- $(INSTALL_DATA) $(SHLIB_NAME) @multilib_dir@/$(SHLIB_SONAME); }
+ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+ $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $(INSTALL_DATA) $(SHLIB_NAME) \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
diff --git a/gcc/config/mips/t-vr b/gcc/config/mips/t-vr
index dd4affe57e4..9c046b0eb04 100644
--- a/gcc/config/mips/t-vr
+++ b/gcc/config/mips/t-vr
@@ -35,7 +35,7 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
# mabi=eabi/mgp32/mlong64
#
# Architecture: march=vr4120 with -mfix-vr4120
-# march=vr4130 (default)
+# march=vr4130 with -mfix-vr4130 (default)
# march=vr5000
# march=vr5400
# march=vr5500
@@ -65,7 +65,7 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
# mabi=eabi/mgp32
#
# Architecture: march=vr4120 with -mfix-vr4120
-# march=vr4130 (default)
+# march=vr4130 with -mfix-vr4130 (default)
#
# Total: 2 * 3 * 2 = 12 multilibs.
MULTILIB_OPTIONS = \
@@ -74,7 +74,7 @@ MULTILIB_OPTIONS = \
mgp32 \
mlong64 \
mips16 \
- mfix-vr4120/march=vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
+ mfix-vr4120/mfix-vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
MULTILIB_DIRNAMES = \
el eb \
@@ -84,7 +84,8 @@ MULTILIB_DIRNAMES = \
mips16 \
vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
-MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4120=march?vr4120
+MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4120=march?vr4120 \
+ mfix-vr4130=march?vr4130
# Assume a 41xx-series is the default: we'd need a *mips16 entry if
# the default processor didn't support mips16. Also assume the
diff --git a/gcc/config/mips/vr.h b/gcc/config/mips/vr.h
index 7d2fb6379be..bb182923af8 100644
--- a/gcc/config/mips/vr.h
+++ b/gcc/config/mips/vr.h
@@ -19,20 +19,28 @@ 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, 675 Mass Ave, Cambridge, MA 02139, USA. */
-#define DEFAULT_VR_ARCH "vr4130"
+#define DEFAULT_VR_ARCH "mfix-vr4130"
#define MIPS_ABI_DEFAULT ABI_EABI
#define MIPS_MARCH_CONTROLS_SOFT_FLOAT 1
#define MULTILIB_DEFAULTS \
{ MULTILIB_ENDIAN_DEFAULT, \
MULTILIB_ABI_DEFAULT, \
- "march=" DEFAULT_VR_ARCH }
+ DEFAULT_VR_ARCH }
#define DRIVER_SELF_SPECS \
+ /* Enforce the default architecture. This is mostly for \
+ the assembler's benefit. */ \
+ "%{!march=*:%{!mfix-vr4120:%{!mfix-vr4130:" \
+ "-" DEFAULT_VR_ARCH "}}}", \
+ \
/* Make -mfix-vr4120 imply -march=vr4120. This cuts down \
on command-line tautology and makes it easier for t-vr to \
provide a -mfix-vr4120 multilib. */ \
"%{mfix-vr4120:%{!march=*:-march=vr4120}}", \
\
+ /* Same idea for -mfix-vr4130. */ \
+ "%{mfix-vr4130:%{!march=*:-march=vr4130}}", \
+ \
/* Make -mabi=eabi -mlong32 the default. */ \
"%{!mabi=*:-mabi=eabi %{!mlong*:-mlong32}}", \
\
@@ -41,8 +49,4 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
"%{mabi=eabi:%{!mlong*:%{!mgp32:-mlong64}}}", \
\
/* Remove -mgp32 if it is redundant. */ \
- "%{mabi=32:%<mgp32}", \
- \
- /* Enforce the default architecture. This is mostly for \
- the assembler's benefit. */ \
- "%{!march=*:-march=" DEFAULT_VR_ARCH "}"
+ "%{mabi=32:%<mgp32}"
diff --git a/gcc/config/pa/elf.h b/gcc/config/pa/elf.h
index 0752e7b5b29..0fbb350c1e2 100644
--- a/gcc/config/pa/elf.h
+++ b/gcc/config/pa/elf.h
@@ -1,5 +1,5 @@
/* Definitions for ELF assembler support.
- Copyright (C) 1999, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -45,27 +45,28 @@ do { \
} \
} while (0)
-/* This is how to output a command to make the user-level label named NAME
- defined for reference from other files.
-
- We call assemble_name, which in turn sets TREE_SYMBOL_REFERENCED. This
- macro will restore the original value of TREE_SYMBOL_REFERENCED to avoid
- placing useless function definitions in the output file.
-
- Also note that the SOM based tools need the symbol imported as a CODE
- symbol, while the ELF based tools require the symbol to be imported as
- an ENTRY symbol. What a crock. */
-
-#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
- do { int save_referenced; \
- save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)); \
- fputs ("\t.IMPORT ", FILE); \
- assemble_name (FILE, NAME); \
- if (FUNCTION_NAME_P (NAME)) \
- fputs (",ENTRY\n", FILE); \
- else \
- fputs (",DATA\n", FILE); \
- TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)) = save_referenced; \
+/* This is how to output a command to make the user-level label
+ named NAME defined for reference from other files. We use
+ assemble_name_raw instead of assemble_name since a symbol in
+ a .IMPORT directive that isn't otherwise referenced is not
+ placed in the symbol table of the assembled object.
+
+ Failure to import a function reference can cause the HP linker
+ to segmentation fault!
+
+ Note that the SOM based tools need the symbol imported as a
+ CODE symbol, while the ELF based tools require the symbol to
+ be imported as an ENTRY symbol. */
+
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+ pa_hpux_asm_output_external ((FILE), (DECL), (NAME))
+#define ASM_OUTPUT_EXTERNAL_REAL(FILE, DECL, NAME) \
+ do { fputs ("\t.IMPORT ", FILE); \
+ assemble_name_raw (FILE, NAME); \
+ if (FUNCTION_NAME_P (NAME)) \
+ fputs (",ENTRY\n", FILE); \
+ else \
+ fputs (",DATA\n", FILE); \
} while (0)
/* The bogus HP assembler requires ALL external references to be
diff --git a/gcc/config/pa/pa-protos.h b/gcc/config/pa/pa-protos.h
index f52d30b5007..065433a355b 100644
--- a/gcc/config/pa/pa-protos.h
+++ b/gcc/config/pa/pa-protos.h
@@ -174,6 +174,7 @@ extern void pa_asm_output_aligned_common (FILE *, const char *,
extern void pa_asm_output_aligned_local (FILE *, const char *,
unsigned HOST_WIDE_INT,
unsigned int);
+extern void pa_hpux_asm_output_external (FILE *, tree, const char *);
/* Functions in varasm.c used by pa.c. */
extern void som_readonly_data_section (void);
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index c326786aed8..fce8c8c2d7f 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -126,8 +126,7 @@ static tree hppa_gimplify_va_arg_expr (tree, tree, tree *, tree *);
static bool pa_scalar_mode_supported_p (enum machine_mode);
static void copy_fp_args (rtx) ATTRIBUTE_UNUSED;
static int length_fp_args (rtx) ATTRIBUTE_UNUSED;
-static struct deferred_plabel *get_plabel (const char *)
- ATTRIBUTE_UNUSED;
+static struct deferred_plabel *get_plabel (rtx) ATTRIBUTE_UNUSED;
static inline void pa_file_start_level (void) ATTRIBUTE_UNUSED;
static inline void pa_file_start_space (int) ATTRIBUTE_UNUSED;
static inline void pa_file_start_file (int) ATTRIBUTE_UNUSED;
@@ -138,6 +137,9 @@ static void pa_linux_file_start (void) ATTRIBUTE_UNUSED;
static void pa_hpux64_gas_file_start (void) ATTRIBUTE_UNUSED;
static void pa_hpux64_hpas_file_start (void) ATTRIBUTE_UNUSED;
static void output_deferred_plabels (void);
+#ifdef ASM_OUTPUT_EXTERNAL_REAL
+static void pa_hpux_file_end (void);
+#endif
#ifdef HPUX_LONG_DOUBLE_LIBRARY
static void pa_hpux_init_libfuncs (void);
#endif
@@ -195,7 +197,7 @@ static int last_address;
struct deferred_plabel GTY(())
{
rtx internal_label;
- const char *name;
+ rtx symbol;
};
static GTY((length ("n_deferred_plabels"))) struct deferred_plabel *
deferred_plabels;
@@ -245,7 +247,11 @@ static size_t n_deferred_plabels = 0;
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall
#undef TARGET_ASM_FILE_END
+#ifdef ASM_OUTPUT_EXTERNAL_REAL
+#define TARGET_ASM_FILE_END pa_hpux_file_end
+#else
#define TARGET_ASM_FILE_END output_deferred_plabels
+#endif
#if !defined(USE_COLLECT2)
#undef TARGET_ASM_CONSTRUCTOR
@@ -3315,13 +3321,14 @@ output_64bit_ior (rtx *operands)
}
/* Target hook for assembling integer objects. This code handles
- aligned SI and DI integers specially, since function references must
- be preceded by P%. */
+ aligned SI and DI integers specially since function references
+ must be preceded by P%. */
static bool
pa_assemble_integer (rtx x, unsigned int size, int aligned_p)
{
- if (size == UNITS_PER_WORD && aligned_p
+ if (size == UNITS_PER_WORD
+ && aligned_p
&& function_label_operand (x, VOIDmode))
{
fputs (size == 8? "\t.dword\tP%" : "\t.word\tP%", asm_out_file);
@@ -5429,10 +5436,10 @@ output_global_address (FILE *file, rtx x, int round_constant)
x = XEXP (x, 0);
if (GET_CODE (x) == SYMBOL_REF && read_only_operand (x, VOIDmode))
- assemble_name (file, XSTR (x, 0));
+ output_addr_const (file, x);
else if (GET_CODE (x) == SYMBOL_REF && !flag_pic)
{
- assemble_name (file, XSTR (x, 0));
+ output_addr_const (file, x);
fputs ("-$global$", file);
}
else if (GET_CODE (x) == CONST)
@@ -5593,22 +5600,23 @@ pa_hpux64_hpas_file_start (void)
#undef aputs
static struct deferred_plabel *
-get_plabel (const char *fname)
+get_plabel (rtx symbol)
{
+ const char *fname = XSTR (symbol, 0);
size_t i;
/* See if we have already put this function on the list of deferred
plabels. This list is generally small, so a liner search is not
too ugly. If it proves too slow replace it with something faster. */
for (i = 0; i < n_deferred_plabels; i++)
- if (strcmp (fname, deferred_plabels[i].name) == 0)
+ if (strcmp (fname, XSTR (deferred_plabels[i].symbol, 0)) == 0)
break;
/* If the deferred plabel list is empty, or this entry was not found
on the list, create a new entry on the list. */
if (deferred_plabels == NULL || i == n_deferred_plabels)
{
- const char *real_name;
+ tree id;
if (deferred_plabels == 0)
deferred_plabels = (struct deferred_plabel *)
@@ -5621,12 +5629,13 @@ get_plabel (const char *fname)
i = n_deferred_plabels++;
deferred_plabels[i].internal_label = gen_label_rtx ();
- deferred_plabels[i].name = ggc_strdup (fname);
+ deferred_plabels[i].symbol = symbol;
- /* Gross. We have just implicitly taken the address of this function,
- mark it as such. */
- real_name = (*targetm.strip_name_encoding) (fname);
- TREE_SYMBOL_REFERENCED (get_identifier (real_name)) = 1;
+ /* Gross. We have just implicitly taken the address of this
+ function. Mark it in the same manner as assemble_name. */
+ id = maybe_get_identifier (targetm.strip_name_encoding (fname));
+ if (id)
+ mark_referenced (id);
}
return &deferred_plabels[i];
@@ -5650,7 +5659,7 @@ output_deferred_plabels (void)
{
(*targetm.asm_out.internal_label) (asm_out_file, "L",
CODE_LABEL_NUMBER (deferred_plabels[i].internal_label));
- assemble_integer (gen_rtx_SYMBOL_REF (Pmode, deferred_plabels[i].name),
+ assemble_integer (deferred_plabels[i].symbol,
TARGET_64BIT ? 8 : 4, TARGET_64BIT ? 64 : 32, 1);
}
}
@@ -7471,7 +7480,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
/* ??? As far as I can tell, the HP linker doesn't support the
long pc-relative sequence described in the 64-bit runtime
architecture. So, we use a slightly longer indirect call. */
- struct deferred_plabel *p = get_plabel (XSTR (call_dest, 0));
+ struct deferred_plabel *p = get_plabel (call_dest);
xoperands[0] = p->internal_label;
xoperands[1] = gen_label_rtx ();
@@ -7600,7 +7609,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
essentially an inline implementation of $$dyncall.
We don't actually try to call $$dyncall as this is
as difficult as calling the function itself. */
- struct deferred_plabel *p = get_plabel (XSTR (call_dest, 0));
+ struct deferred_plabel *p = get_plabel (call_dest);
xoperands[0] = p->internal_label;
xoperands[1] = gen_label_rtx ();
@@ -7916,18 +7925,18 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED,
tree function)
{
- const char *fname = XSTR (XEXP (DECL_RTL (function), 0), 0);
- const char *tname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
+ static unsigned int current_thunk_number;
int val_14 = VAL_14_BITS_P (delta);
int nbytes = 0;
- static unsigned int current_thunk_number;
char label[16];
+ rtx xoperands[4];
- ASM_OUTPUT_LABEL (file, tname);
- fprintf (file, "\t.PROC\n\t.CALLINFO FRAME=0,NO_CALLS\n\t.ENTRY\n");
+ xoperands[0] = XEXP (DECL_RTL (function), 0);
+ xoperands[1] = XEXP (DECL_RTL (thunk_fndecl), 0);
+ xoperands[2] = GEN_INT (delta);
- fname = (*targetm.strip_name_encoding) (fname);
- tname = (*targetm.strip_name_encoding) (tname);
+ ASM_OUTPUT_LABEL (file, XSTR (xoperands[1], 0));
+ fprintf (file, "\t.PROC\n\t.CALLINFO FRAME=0,NO_CALLS\n\t.ENTRY\n");
/* Output the thunk. We know that the function is in the same
translation unit (i.e., the same space) as the thunk, and that
@@ -7959,18 +7968,19 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
&& last_address < 262132)))
|| (!targetm.have_named_sections && last_address < 262132))))
{
+ if (!val_14)
+ output_asm_insn ("addil L'%2,%%r26", xoperands);
+
+ output_asm_insn ("b %0", xoperands);
+
if (val_14)
{
- fprintf (file, "\tb %s\n\tldo " HOST_WIDE_INT_PRINT_DEC
- "(%%r26),%%r26\n", fname, delta);
+ output_asm_insn ("ldo %2(%%r26),%%r26", xoperands);
nbytes += 8;
}
else
{
- fprintf (file, "\taddil L'" HOST_WIDE_INT_PRINT_DEC
- ",%%r26\n", delta);
- fprintf (file, "\tb %s\n\tldo R'" HOST_WIDE_INT_PRINT_DEC
- "(%%r1),%%r26\n", fname, delta);
+ output_asm_insn ("ldo R'%2(%%r1),%%r26", xoperands);
nbytes += 12;
}
}
@@ -7979,53 +7989,54 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
/* We only have one call-clobbered scratch register, so we can't
make use of the delay slot if delta doesn't fit in 14 bits. */
if (!val_14)
- fprintf (file, "\taddil L'" HOST_WIDE_INT_PRINT_DEC
- ",%%r26\n\tldo R'" HOST_WIDE_INT_PRINT_DEC
- "(%%r1),%%r26\n", delta, delta);
+ {
+ output_asm_insn ("addil L'%2,%%r26", xoperands);
+ output_asm_insn ("ldo R'%2(%%r1),%%r26", xoperands);
+ }
- fprintf (file, "\tb,l .+8,%%r1\n");
+ output_asm_insn ("b,l .+8,%%r1", xoperands);
if (TARGET_GAS)
{
- fprintf (file, "\taddil L'%s-$PIC_pcrel$0+4,%%r1\n", fname);
- fprintf (file, "\tldo R'%s-$PIC_pcrel$0+8(%%r1),%%r1\n", fname);
+ output_asm_insn ("addil L'%0-$PIC_pcrel$0+4,%%r1", xoperands);
+ output_asm_insn ("ldo R'%0-$PIC_pcrel$0+8(%%r1),%%r1", xoperands);
}
else
{
- int off = val_14 ? 8 : 16;
- fprintf (file, "\taddil L'%s-%s-%d,%%r1\n", fname, tname, off);
- fprintf (file, "\tldo R'%s-%s-%d(%%r1),%%r1\n", fname, tname, off);
+ xoperands[3] = GEN_INT (val_14 ? 8 : 16);
+ output_asm_insn ("addil L'%0-%1-%3,%%r1", xoperands);
}
if (val_14)
{
- fprintf (file, "\tbv %%r0(%%r1)\n\tldo ");
- fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%%r26),%%r26\n", delta);
+ output_asm_insn ("bv %%r0(%%r1)", xoperands);
+ output_asm_insn ("ldo %2(%%r26),%%r26", xoperands);
nbytes += 20;
}
else
{
- fprintf (file, "\tbv,n %%r0(%%r1)\n");
+ output_asm_insn ("bv,n %%r0(%%r1)", xoperands);
nbytes += 24;
}
}
else if (TARGET_PORTABLE_RUNTIME)
{
- fprintf (file, "\tldil L'%s,%%r1\n", fname);
- fprintf (file, "\tldo R'%s(%%r1),%%r22\n", fname);
+ output_asm_insn ("ldil L'%0,%%r1", xoperands);
+ output_asm_insn ("ldo R'%0(%%r1),%%r22", xoperands);
+
+ if (!val_14)
+ output_asm_insn ("addil L'%2,%%r26", xoperands);
+
+ output_asm_insn ("bv %%r0(%%r22)", xoperands);
if (val_14)
{
- fprintf (file, "\tbv %%r0(%%r22)\n\tldo ");
- fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%%r26),%%r26\n", delta);
+ output_asm_insn ("ldo %2(%%r26),%%r26", xoperands);
nbytes += 16;
}
else
{
- fprintf (file, "\taddil L'" HOST_WIDE_INT_PRINT_DEC
- ",%%r26\n", delta);
- fprintf (file, "\tbv %%r0(%%r22)\n\tldo ");
- fprintf (file, "R'" HOST_WIDE_INT_PRINT_DEC "(%%r1),%%r26\n", delta);
+ output_asm_insn ("ldo R'%2(%%r1),%%r26", xoperands);
nbytes += 20;
}
}
@@ -8036,99 +8047,92 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
call the function directly with an indirect sequence similar to
that used by $$dyncall. This is possible because $$dyncall acts
as the import stub in an indirect call. */
- const char *lab;
-
ASM_GENERATE_INTERNAL_LABEL (label, "LTHN", current_thunk_number);
- lab = (*targetm.strip_name_encoding) (label);
-
- fprintf (file, "\taddil LT'%s,%%r19\n", lab);
- fprintf (file, "\tldw RT'%s(%%r1),%%r22\n", lab);
- fprintf (file, "\tldw 0(%%sr0,%%r22),%%r22\n");
- fprintf (file, "\tbb,>=,n %%r22,30,.+16\n");
- fprintf (file, "\tdepi 0,31,2,%%r22\n");
- fprintf (file, "\tldw 4(%%sr0,%%r22),%%r19\n");
- fprintf (file, "\tldw 0(%%sr0,%%r22),%%r22\n");
+ xoperands[3] = gen_rtx_SYMBOL_REF (Pmode, label);
+ output_asm_insn ("addil LT'%3,%%r19", xoperands);
+ output_asm_insn ("ldw RT'%3(%%r1),%%r22", xoperands);
+ output_asm_insn ("ldw 0(%%sr0,%%r22),%%r22", xoperands);
+ output_asm_insn ("bb,>=,n %%r22,30,.+16", xoperands);
+ output_asm_insn ("depi 0,31,2,%%r22", xoperands);
+ output_asm_insn ("ldw 4(%%sr0,%%r22),%%r19", xoperands);
+ output_asm_insn ("ldw 0(%%sr0,%%r22),%%r22", xoperands);
+
if (!val_14)
{
- fprintf (file, "\taddil L'" HOST_WIDE_INT_PRINT_DEC
- ",%%r26\n", delta);
+ output_asm_insn ("addil L'%2,%%r26", xoperands);
nbytes += 4;
}
+
if (TARGET_PA_20)
{
- fprintf (file, "\tbve (%%r22)\n\tldo ");
+ output_asm_insn ("bve (%%r22)", xoperands);
+ nbytes += 36;
+ }
+ else if (TARGET_NO_SPACE_REGS)
+ {
+ output_asm_insn ("be 0(%%sr4,%%r22)", xoperands);
nbytes += 36;
}
else
{
- if (TARGET_NO_SPACE_REGS)
- {
- fprintf (file, "\tbe 0(%%sr4,%%r22)\n\tldo ");
- nbytes += 36;
- }
- else
- {
- fprintf (file, "\tldsid (%%sr0,%%r22),%%r21\n");
- fprintf (file, "\tmtsp %%r21,%%sr0\n");
- fprintf (file, "\tbe 0(%%sr0,%%r22)\n\tldo ");
- nbytes += 44;
- }
+ output_asm_insn ("ldsid (%%sr0,%%r22),%%r21", xoperands);
+ output_asm_insn ("mtsp %%r21,%%sr0", xoperands);
+ output_asm_insn ("be 0(%%sr0,%%r22)", xoperands);
+ nbytes += 44;
}
if (val_14)
- fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%%r26),%%r26\n", delta);
+ output_asm_insn ("ldo %2(%%r26),%%r26", xoperands);
else
- fprintf (file, "R'" HOST_WIDE_INT_PRINT_DEC "(%%r1),%%r26\n", delta);
+ output_asm_insn ("ldo R'%2(%%r1),%%r26", xoperands);
}
else if (flag_pic)
{
- if (TARGET_PA_20)
- fprintf (file, "\tb,l .+8,%%r1\n");
- else
- fprintf (file, "\tbl .+8,%%r1\n");
+ output_asm_insn ("{bl|b,l} .+8,%%r1", xoperands);
if (TARGET_SOM || !TARGET_GAS)
{
- fprintf (file, "\taddil L'%s-%s-8,%%r1\n", fname, tname);
- fprintf (file, "\tldo R'%s-%s-8(%%r1),%%r22\n", fname, tname);
+ output_asm_insn ("addil L'%0-%1-8,%%r1", xoperands);
+ output_asm_insn ("ldo R'%0-%1-8(%%r1),%%r22", xoperands);
}
else
{
- fprintf (file, "\taddil L'%s-$PIC_pcrel$0+4,%%r1\n", fname);
- fprintf (file, "\tldo R'%s-$PIC_pcrel$0+8(%%r1),%%r22\n", fname);
+ output_asm_insn ("addil L'%0-$PIC_pcrel$0+4,%%r1", xoperands);
+ output_asm_insn ("ldo R'%0-$PIC_pcrel$0+8(%%r1),%%r22", xoperands);
}
+ if (!val_14)
+ output_asm_insn ("addil L'%2,%%r26", xoperands);
+
+ output_asm_insn ("bv %%r0(%%r22)", xoperands);
+
if (val_14)
{
- fprintf (file, "\tbv %%r0(%%r22)\n\tldo ");
- fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%%r26),%%r26\n", delta);
+ output_asm_insn ("ldo %2(%%r26),%%r26", xoperands);
nbytes += 20;
}
else
{
- fprintf (file, "\taddil L'" HOST_WIDE_INT_PRINT_DEC
- ",%%r26\n", delta);
- fprintf (file, "\tbv %%r0(%%r22)\n\tldo ");
- fprintf (file, "R'" HOST_WIDE_INT_PRINT_DEC "(%%r1),%%r26\n", delta);
+ output_asm_insn ("ldo R'%2(%%r1),%%r26", xoperands);
nbytes += 24;
}
}
else
{
if (!val_14)
- fprintf (file, "\taddil L'" HOST_WIDE_INT_PRINT_DEC ",%%r26\n", delta);
+ output_asm_insn ("addil L'%2,%%r26", xoperands);
- fprintf (file, "\tldil L'%s,%%r22\n", fname);
- fprintf (file, "\tbe R'%s(%%sr4,%%r22)\n\tldo ", fname);
+ output_asm_insn ("ldil L'%0,%%r22", xoperands);
+ output_asm_insn ("be R'%0(%%sr4,%%r22)", xoperands);
if (val_14)
{
- fprintf (file, HOST_WIDE_INT_PRINT_DEC "(%%r26),%%r26\n", delta);
+ output_asm_insn ("ldo %2(%%r26),%%r26", xoperands);
nbytes += 12;
}
else
{
- fprintf (file, "R'" HOST_WIDE_INT_PRINT_DEC "(%%r1),%%r26\n", delta);
+ output_asm_insn ("ldo R'%2(%%r1),%%r26", xoperands);
nbytes += 16;
}
}
@@ -8138,9 +8142,9 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
if (TARGET_SOM && flag_pic && TREE_PUBLIC (function))
{
data_section ();
- fprintf (file, "\t.align 4\n");
+ output_asm_insn (".align 4", xoperands);
ASM_OUTPUT_LABEL (file, label);
- fprintf (file, "\t.word P'%s\n", fname);
+ output_asm_insn (".word P'%0", xoperands);
}
else if (TARGET_SOM && TARGET_GAS)
forget_section ();
@@ -9498,4 +9502,63 @@ pa_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
|| int_size_in_bytes (type) <= 0);
}
+/* Structure to hold declaration and name of external symbols that are
+ emitted by GCC. We generate a vector of these symbols and output them
+ at the end of the file if and only if SYMBOL_REF_REFERENCED_P is true.
+ This avoids putting out names that are never really used. */
+
+struct extern_symbol GTY(())
+{
+ tree decl;
+ const char *name;
+};
+typedef struct extern_symbol *extern_symbol;
+
+/* Define gc'd vector type for extern_symbol. */
+DEF_VEC_GC_P(extern_symbol);
+
+/* Vector of extern_symbol pointers. */
+static GTY(()) VEC(extern_symbol) *extern_symbols;
+
+#ifdef ASM_OUTPUT_EXTERNAL_REAL
+/* Mark DECL (name NAME) as an external reference (assembler output
+ file FILE). This saves the names to output at the end of the file
+ if actually referenced. */
+
+void
+pa_hpux_asm_output_external (FILE *file, tree decl, const char *name)
+{
+ extern_symbol p = ggc_alloc (sizeof (struct extern_symbol));
+
+ gcc_assert (file == asm_out_file);
+ p->decl = decl;
+ p->name = name;
+ VEC_safe_push (extern_symbol, extern_symbols, p);
+}
+
+/* Output text required at the end of an assembler file.
+ This includes deferred plabels and .import directives for
+ all external symbols that were actually referenced. */
+
+static void
+pa_hpux_file_end (void)
+{
+ unsigned int i;
+ extern_symbol p;
+
+ output_deferred_plabels ();
+
+ for (i = 0; VEC_iterate (extern_symbol, extern_symbols, i, p); i++)
+ {
+ tree decl = p->decl;
+
+ if (!TREE_ASM_WRITTEN (decl)
+ && SYMBOL_REF_REFERENCED_P (XEXP (DECL_RTL (decl), 0)))
+ ASM_OUTPUT_EXTERNAL_REAL (asm_out_file, decl, p->name);
+ }
+
+ extern_symbols = NULL;
+}
+#endif
+
#include "gt-pa.h"
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 9130d6177ee..30b982a0aec 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1262,6 +1262,13 @@ extern int may_call_alloca;
|| cint_ok_for_move (INTVAL (X)))) \
&& !function_label_operand (X, VOIDmode))
+/* Target flags set on a symbol_ref. */
+
+/* Set by ASM_OUTPUT_SYMBOL_REF when a symbol_ref is output. */
+#define SYMBOL_FLAG_REFERENCED (1 << SYMBOL_FLAG_MACH_DEP_SHIFT)
+#define SYMBOL_REF_REFERENCED_P(RTX) \
+ ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_REFERENCED) != 0)
+
/* Subroutines for EXTRA_CONSTRAINT.
Return 1 iff OP is a pseudo which did not get a hard register and
@@ -1532,7 +1539,12 @@ extern int may_call_alloca;
&& (TARGET_NO_SPACE_REGS \
? (base && REG_P (index)) \
: (base == XEXP (X, 1) && REG_P (index) \
- && REG_POINTER (base) && !REG_POINTER (index))) \
+ && (reload_completed \
+ || (reload_in_progress && HARD_REGISTER_P (base)) \
+ || REG_POINTER (base)) \
+ && (reload_completed \
+ || (reload_in_progress && HARD_REGISTER_P (index)) \
+ || !REG_POINTER (index)))) \
&& MODE_OK_FOR_UNSCALED_INDEXING_P (MODE) \
&& REG_OK_FOR_INDEX_P (index) \
&& borx_reg_operand (base, Pmode) \
@@ -1949,6 +1961,14 @@ forget_section (void) \
fputs (xname, FILE); \
} while (0)
+/* This how we output the symbol_ref X. */
+
+#define ASM_OUTPUT_SYMBOL_REF(FILE,X) \
+ do { \
+ SYMBOL_REF_FLAGS (X) |= SYMBOL_FLAG_REFERENCED; \
+ assemble_name (FILE, XSTR (X, 0)); \
+ } while (0)
+
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 9a434a6095f..6f8f42dd3e7 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5101,7 +5101,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 4))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5227,7 +5227,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5283,7 +5283,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5340,7 +5340,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
@@ -5392,7 +5392,7 @@
(clobber (reg:SI 26))
(clobber (reg:SI 25))
(clobber (match_dup 5))])
- (set (match_operand:SI 0 "general_operand" "") (reg:SI 29))]
+ (set (match_operand:SI 0 "move_dest_operand" "") (reg:SI 29))]
""
"
{
diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h
index 75573ed6cba..f322e7e4b12 100644
--- a/gcc/config/pa/pa64-hpux.h
+++ b/gcc/config/pa/pa64-hpux.h
@@ -174,6 +174,20 @@ Boston, MA 02111-1307, USA. */
/* This is how we globalize a label. */
#define GLOBAL_ASM_OP "\t.globl\t"
+/* Hacked version from defaults.h that uses assemble_name_raw
+ instead of assemble_name. A symbol in a type directive that
+ isn't otherwise referenced doesn't cause the symbol to be
+ placed in the symbol table of the assembled object. */
+#undef ASM_OUTPUT_TYPE_DIRECTIVE
+#define ASM_OUTPUT_TYPE_DIRECTIVE(STREAM, NAME, TYPE) \
+do { \
+ fputs (TYPE_ASM_OP, STREAM); \
+ assemble_name_raw (STREAM, NAME); \
+ fputs (", ", STREAM); \
+ fprintf (STREAM, TYPE_OPERAND_FMT, TYPE); \
+ putc ('\n', STREAM); \
+} while (0)
+
/* Hacked version from elfos.h that doesn't output a label. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
@@ -186,15 +200,14 @@ do { \
dynamic loader to work correctly. This is equivalent to the
HP assembler's .IMPORT directive but relates more directly to
ELF object file types. */
-#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
-do { \
- int save_referenced; \
- save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL));\
- if (FUNCTION_NAME_P (NAME)) \
- ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
- else \
- ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
- TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)) = save_referenced;\
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+ pa_hpux_asm_output_external ((FILE), (DECL), (NAME))
+#define ASM_OUTPUT_EXTERNAL_REAL(FILE, DECL, NAME) \
+do { \
+ if (FUNCTION_NAME_P (NAME)) \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
+ else \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
} while (0)
/* We need set the type for external libcalls. Also note that not all
diff --git a/gcc/config/pa/som.h b/gcc/config/pa/som.h
index 985a253ab00..d937876d0e5 100644
--- a/gcc/config/pa/som.h
+++ b/gcc/config/pa/som.h
@@ -216,38 +216,47 @@ do { \
So, we force exception information into the data section. */
#define TARGET_ASM_EXCEPTION_SECTION data_section
-/* This is how to output a command to make the user-level label named NAME
- defined for reference from other files.
-
- We call assemble_name, which in turn sets TREE_SYMBOL_REFERENCED. This
- macro will restore the original value of TREE_SYMBOL_REFERENCED to avoid
- placing useless function definitions in the output file.
-
- Also note that the SOM based tools need the symbol imported as a CODE
- symbol, while the ELF based tools require the symbol to be imported as
- an ENTRY symbol. What a crock. */
-
-#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
- do { int save_referenced; \
- save_referenced = TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)); \
- fputs ("\t.IMPORT ", FILE); \
- assemble_name (FILE, NAME); \
- if (FUNCTION_NAME_P (NAME)) \
- fputs (",CODE\n", FILE); \
- else \
- fputs (",DATA\n", FILE); \
- TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (DECL)) = save_referenced; \
+/* This is how to output a command to make the user-level label
+ named NAME defined for reference from other files. We use
+ assemble_name_raw instead of assemble_name since a symbol in
+ a .IMPORT directive that isn't otherwise referenced is not
+ placed in the symbol table of the assembled object.
+
+ Failure to import a function reference can cause the HP linker
+ to segmentation fault!
+
+ Note that the SOM based tools need the symbol imported as a
+ CODE symbol, while the ELF based tools require the symbol to
+ be imported as an ENTRY symbol. */
+
+#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
+ pa_hpux_asm_output_external ((FILE), (DECL), (NAME))
+#define ASM_OUTPUT_EXTERNAL_REAL(FILE, DECL, NAME) \
+ do { fputs ("\t.IMPORT ", FILE); \
+ assemble_name_raw (FILE, NAME); \
+ if (FUNCTION_NAME_P (NAME)) \
+ fputs (",CODE\n", FILE); \
+ else \
+ fputs (",DATA\n", FILE); \
} while (0)
/* The bogus HP assembler requires ALL external references to be
- "imported", even library calls. They look a bit different, so
+ "imported", even library calls. They look a bit different, so
here's this macro.
Also note not all libcall names are passed to pa_encode_section_info
(__main for example). To make sure all libcall names have section
- info recorded in them, we do it here. We must also ensure that
- we don't import a libcall that has been previously exported since
- the HP assembler may change an ENTRY symbol to a CODE symbol. */
+ info recorded in them, we do it here.
+
+ We must also ensure that a libcall that has been previously
+ exported is not subsequently imported since the HP assembler may
+ change the type from an ENTRY to a CODE symbol. This would make
+ the symbol local. We are forced to use the identifier node
+ associated with the real assembler name for this check as the
+ symbol_ref available in ASM_DECLARE_FUNCTION_NAME is not the
+ same as the one used here. As a result, we can't use flags
+ in the symbol_ref for this check. The identifier check assumes
+ assemble_external_libcall is called before the symbol is used. */
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, RTL) \
do { const char *name; \
@@ -256,12 +265,12 @@ do { \
if (!function_label_operand (RTL, VOIDmode)) \
hppa_encode_label (RTL); \
\
- name = (*targetm.strip_name_encoding) (XSTR ((RTL), 0)); \
+ name = targetm.strip_name_encoding (XSTR ((RTL), 0)); \
id = maybe_get_identifier (name); \
- if (! id || ! TREE_SYMBOL_REFERENCED (id)) \
+ if (!id || !TREE_SYMBOL_REFERENCED (id)) \
{ \
fputs ("\t.IMPORT ", FILE); \
- assemble_name (FILE, XSTR ((RTL), 0)); \
+ assemble_name_raw (FILE, XSTR ((RTL), 0)); \
fputs (",CODE\n", FILE); \
} \
} while (0)
@@ -358,12 +367,7 @@ do { \
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); \
- } \
+ targetm.asm_out.globalize_label (FILE, NAME); \
} while (0)
/* We can't handle weak aliases, and therefore can't support pragma weak.
diff --git a/gcc/config/pa/t-hpux-shlib b/gcc/config/pa/t-hpux-shlib
index 5183b062584..9673c8e8da3 100644
--- a/gcc/config/pa/t-hpux-shlib
+++ b/gcc/config/pa/t-hpux-shlib
@@ -3,21 +3,26 @@ SHLIB_EXT = .sl
SHLIB_NAME = @shlib_base_name@.sl
SHLIB_SONAME = @shlib_base_name@.1
SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
+SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
- rm -f $(SHLIB_SONAME) && \
- if [ -f $(SHLIB_NAME) ]; then \
- mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+ -o $(SHLIB_DIR)/$(SHLIB_NAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) -lc && \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+ if [ -f $(SHLIB_DIR)/$(SHLIB_NAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIB_NAME) $(SHLIB_DIR)/$(SHLIB_NAME).backup; \
else true; fi && \
- mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
- $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
+ mv $(SHLIB_DIR)/$(SHLIB_NAME).tmp $(SHLIB_DIR)/$(SHLIB_NAME) && \
+ $(LN_S) $(SHLIB_NAME) $(SHLIB_DIR)/$(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) -m 555 $(SHLIB_NAME) \
- $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
- rm -f $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME); \
- $(LN_S) $(SHLIB_SONAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME)
-
+SHLIB_INSTALL = \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+ $(INSTALL_DATA) -m 555 $(SHLIB_DIR)/$(SHLIB_NAME) \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
+ $(LN_S) $(SHLIB_SONAME) \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME)
diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h
index 440fe02c3a2..82d7ec7f375 100644
--- a/gcc/config/rs6000/aix.h
+++ b/gcc/config/rs6000/aix.h
@@ -264,3 +264,6 @@
32-bit mode. */
#define OS_MISSING_POWERPC64 1
#define OS_MISSING_ALTIVEC 1
+
+/* WINT_TYPE */
+#define WINT_TYPE "int"
diff --git a/gcc/config/rs6000/altivec.h b/gcc/config/rs6000/altivec.h
index 0447d9e1fc4..13902ab3b59 100644
--- a/gcc/config/rs6000/altivec.h
+++ b/gcc/config/rs6000/altivec.h
@@ -36,17 +36,18 @@
#error Use the "-maltivec" flag to enable PowerPC AltiVec support
#endif
-/* If __APPLE_ALTIVEC__ is defined, the compiler supports 'vector',
- 'pixel' and 'bool' as context-sensitive AltiVec keywords (in
- non-AltiVec contexts, they revert to their original meanings,
- if any), so we do not need to define them as macros. */
+/* APPLE LOCAL begin AltiVec */
+/* If __APPLE_ALTIVEC__ is defined, the compiler has internally
+ synthesized the definitions contained in this header. */
-#if !defined(__APPLE_ALTIVEC__)
+#if defined(__APPLE_ALTIVEC__)
+#warning Ignoring <altivec.h> because "-faltivec" specified
+#else
/* You are allowed to undef these for C++ compatibility. */
#define vector __vector
#define pixel __pixel
#define bool __bool
-#endif
+/* APPLE LOCAL end AltiVec */
/* Condition register codes for AltiVec predicates. */
@@ -11569,5 +11570,7 @@ __ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \
#endif /* __cplusplus */
+/* APPLE LOCAL AltiVec */
+#endif /* __APPLE_ALTIVEC__ */
#endif /* _ALTIVEC_H */
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index 9e98ffe1a6b..0ce177d79a1 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -474,6 +474,66 @@
DONE;
}")
+;; APPLE LOCAL begin 3972875 mainline 2005-04-18
+;; 32 bit integer multiplication
+;; A_high = Operand_0 & 0xFFFF0000 >> 16
+;; A_low = Operand_0 & 0xFFFF
+;; B_high = Operand_1 & 0xFFFF0000 >> 16
+;; B_low = Operand_1 & 0xFFFF
+;; result = A_low * B_low + (A_high * B_low + B_high * A_low) << 16
+
+;; (define_insn "mulv4si3"
+;; [(set (match_operand:V4SI 0 "register_operand" "=v")
+;; (mult:V4SI (match_operand:V4SI 1 "register_operand" "v")
+;; (match_operand:V4SI 2 "register_operand" "v")))]
+(define_expand "mulv4si3"
+ [(use (match_operand:V4SI 0 "register_operand" ""))
+ (use (match_operand:V4SI 1 "register_operand" ""))
+ (use (match_operand:V4SI 2 "register_operand" ""))]
+ "TARGET_ALTIVEC"
+ "
+ {
+ rtx zero;
+ rtx swap;
+ rtx small_swap;
+ rtx sixteen;
+ rtx one;
+ rtx two;
+ rtx low_product;
+ rtx high_product;
+
+ zero = gen_reg_rtx (V4SImode);
+ emit_insn (gen_altivec_vspltisw (zero, const0_rtx));
+
+ sixteen = gen_reg_rtx (V4SImode);
+ emit_insn (gen_altivec_vspltisw (sixteen, gen_rtx_CONST_INT (V4SImode, -16)));
+
+ swap = gen_reg_rtx (V4SImode);
+ emit_insn (gen_altivec_vrlw (swap, operands[2], sixteen));
+
+ one = gen_reg_rtx (V8HImode);
+ convert_move (one, operands[1], 0);
+
+ two = gen_reg_rtx (V8HImode);
+ convert_move (two, operands[2], 0);
+
+ small_swap = gen_reg_rtx (V8HImode);
+ convert_move (small_swap, swap, 0);
+
+ low_product = gen_reg_rtx (V4SImode);
+ emit_insn (gen_altivec_vmulouh (low_product, one, two));
+
+ high_product = gen_reg_rtx (V4SImode);
+ emit_insn (gen_altivec_vmsumuhm (high_product, one, small_swap, zero));
+
+ emit_insn (gen_altivec_vslw (high_product, high_product, sixteen));
+
+ emit_insn (gen_addv4si3 (operands[0], high_product, low_product));
+
+ DONE;
+ }")
+;; APPLE LOCAL end 3972875 mainline 2005-04-18
+
;; Fused multiply subtract
(define_insn "altivec_vnmsubfp"
[(set (match_operand:V4SF 0 "register_operand" "=v")
@@ -608,27 +668,44 @@
"vmladduhm %0,%1,%2,%3"
[(set_attr "type" "veccomplex")])
+;; APPLE LOCAL begin radar 4110116
(define_insn "altivec_vmrghb"
[(set (match_operand:V16QI 0 "register_operand" "=v")
(vec_merge:V16QI (vec_select:V16QI (match_operand:V16QI 1 "register_operand" "v")
- (parallel [(const_int 8)
+ (parallel [(const_int 0)
+ (const_int 8)
+ (const_int 1)
(const_int 9)
+ (const_int 2)
(const_int 10)
- (const_int 11)
+ (const_int 3)
+ (const_int 11)
+ (const_int 4)
(const_int 12)
+ (const_int 5)
(const_int 13)
- (const_int 14)
- (const_int 15)
+ (const_int 6)
+ (const_int 14)
+ (const_int 7)
+ (const_int 15)]))
+ (vec_select:V16QI (match_operand:V16QI 2 "register_operand" "v")
+ (parallel [(const_int 8)
(const_int 0)
+ (const_int 9)
(const_int 1)
+ (const_int 10)
(const_int 2)
- (const_int 3)
+ (const_int 11)
+ (const_int 3)
+ (const_int 12)
(const_int 4)
+ (const_int 13)
(const_int 5)
+ (const_int 14)
(const_int 6)
+ (const_int 15)
(const_int 7)]))
- (match_operand:V16QI 2 "register_operand" "v")
- (const_int 255)))]
+ (const_int 21845)))]
"TARGET_ALTIVEC"
"vmrghb %0,%1,%2"
[(set_attr "type" "vecperm")])
@@ -636,16 +713,24 @@
(define_insn "altivec_vmrghh"
[(set (match_operand:V8HI 0 "register_operand" "=v")
(vec_merge:V8HI (vec_select:V8HI (match_operand:V8HI 1 "register_operand" "v")
- (parallel [(const_int 4)
+ (parallel [(const_int 0)
+ (const_int 4)
+ (const_int 1)
(const_int 5)
+ (const_int 2)
(const_int 6)
- (const_int 7)
+ (const_int 3)
+ (const_int 7)]))
+ (vec_select:V8HI (match_operand:V8HI 2 "register_operand" "v")
+ (parallel [(const_int 4)
(const_int 0)
+ (const_int 5)
(const_int 1)
+ (const_int 6)
(const_int 2)
+ (const_int 7)
(const_int 3)]))
- (match_operand:V8HI 2 "register_operand" "v")
- (const_int 15)))]
+ (const_int 85)))]
"TARGET_ALTIVEC"
"vmrghh %0,%1,%2"
[(set_attr "type" "vecperm")])
@@ -653,70 +738,103 @@
(define_insn "altivec_vmrghw"
[(set (match_operand:V4SI 0 "register_operand" "=v")
(vec_merge:V4SI (vec_select:V4SI (match_operand:V4SI 1 "register_operand" "v")
+ (parallel [(const_int 0)
+ (const_int 2)
+ (const_int 1)
+ (const_int 3)]))
+ (vec_select:V4SI (match_operand:V4SI 2 "register_operand" "v")
(parallel [(const_int 2)
- (const_int 3)
- (const_int 0)
+ (const_int 0)
+ (const_int 3)
(const_int 1)]))
- (match_operand:V4SI 2 "register_operand" "v")
- (const_int 12)))]
+ (const_int 5)))]
"TARGET_ALTIVEC"
"vmrghw %0,%1,%2"
[(set_attr "type" "vecperm")])
(define_insn "altivec_vmrglb"
[(set (match_operand:V16QI 0 "register_operand" "=v")
- (vec_merge:V16QI (vec_select:V16QI (match_operand:V16QI 2 "register_operand" "v")
- (parallel [(const_int 0)
+ (vec_merge:V16QI (vec_select:V16QI (match_operand:V16QI 1 "register_operand" "v")
+ (parallel [(const_int 8)
+ (const_int 0)
+ (const_int 9)
(const_int 1)
+ (const_int 10)
(const_int 2)
- (const_int 3)
+ (const_int 11)
+ (const_int 3)
+ (const_int 12)
(const_int 4)
+ (const_int 13)
(const_int 5)
- (const_int 6)
- (const_int 7)
+ (const_int 14)
+ (const_int 6)
+ (const_int 15)
+ (const_int 7)]))
+ (vec_select:V16QI (match_operand:V16QI 2 "register_operand" "v")
+ (parallel [(const_int 0)
(const_int 8)
+ (const_int 1)
(const_int 9)
+ (const_int 2)
(const_int 10)
- (const_int 11)
+ (const_int 3)
+ (const_int 11)
+ (const_int 4)
(const_int 12)
+ (const_int 5)
(const_int 13)
+ (const_int 6)
(const_int 14)
+ (const_int 7)
(const_int 15)]))
- (match_operand:V16QI 1 "register_operand" "v")
- (const_int 255)))]
+ (const_int 21845)))]
"TARGET_ALTIVEC"
"vmrglb %0,%1,%2"
[(set_attr "type" "vecperm")])
(define_insn "altivec_vmrglh"
[(set (match_operand:V8HI 0 "register_operand" "=v")
- (vec_merge:V8HI (vec_select:V8HI (match_operand:V8HI 2 "register_operand" "v")
- (parallel [(const_int 0)
+ (vec_merge:V8HI (vec_select:V8HI (match_operand:V8HI 1 "register_operand" "v")
+ (parallel [(const_int 4)
+ (const_int 0)
+ (const_int 5)
(const_int 1)
+ (const_int 6)
(const_int 2)
- (const_int 3)
+ (const_int 7)
+ (const_int 3)]))
+ (vec_select:V8HI (match_operand:V8HI 2 "register_operand" "v")
+ (parallel [(const_int 0)
(const_int 4)
+ (const_int 1)
(const_int 5)
+ (const_int 2)
(const_int 6)
+ (const_int 3)
(const_int 7)]))
- (match_operand:V8HI 1 "register_operand" "v")
- (const_int 15)))]
+ (const_int 85)))]
"TARGET_ALTIVEC"
"vmrglh %0,%1,%2"
[(set_attr "type" "vecperm")])
(define_insn "altivec_vmrglw"
[(set (match_operand:V4SI 0 "register_operand" "=v")
- (vec_merge:V4SI (vec_select:V4SI (match_operand:V4SI 2 "register_operand" "v")
+ (vec_merge:V4SI (vec_select:V4SI (match_operand:V4SI 1 "register_operand" "v")
+ (parallel [(const_int 2)
+ (const_int 0)
+ (const_int 3)
+ (const_int 1)]))
+ (vec_select:V4SI (match_operand:V4SI 2 "register_operand" "v")
(parallel [(const_int 0)
- (const_int 1)
- (const_int 2)
+ (const_int 2)
+ (const_int 1)
(const_int 3)]))
- (match_operand:V4SI 1 "register_operand" "v")
- (const_int 12)))]
+ (const_int 5)))]
"TARGET_ALTIVEC"
"vmrglw %0,%1,%2"
[(set_attr "type" "vecperm")])
+;; APPLE LOCAL end radar 4110116
(define_insn "altivec_vmuleub"
[(set (match_operand:V8HI 0 "register_operand" "=v")
@@ -968,21 +1086,23 @@
"vslo %0,%1,%2"
[(set_attr "type" "vecperm")])
-(define_insn "altivec_vsr<VI_char>"
+; APPLE LOCAL begin mainline 2005-04-05 3972515
+(define_insn "lshr<mode>3"
[(set (match_operand:VI 0 "register_operand" "=v")
- (unspec:VI [(match_operand:VI 1 "register_operand" "v")
- (match_operand:VI 2 "register_operand" "v")] 112))]
+ (lshiftrt:VI (match_operand:VI 1 "register_operand" "v")
+ (match_operand:VI 2 "register_operand" "v") ))]
"TARGET_ALTIVEC"
"vsr<VI_char> %0,%1,%2"
[(set_attr "type" "vecsimple")])
-(define_insn "altivec_vsra<VI_char>"
+(define_insn "ashr<mode>3"
[(set (match_operand:VI 0 "register_operand" "=v")
- (unspec:VI [(match_operand:VI 1 "register_operand" "v")
- (match_operand:VI 2 "register_operand" "v")] 115))]
+ (ashiftrt:VI (match_operand:VI 1 "register_operand" "v")
+ (match_operand:VI 2 "register_operand" "v") ))]
"TARGET_ALTIVEC"
"vsra<VI_char> %0,%1,%2"
[(set_attr "type" "vecsimple")])
+; APPLE LOCAL end mainline 2005-04-05 3972515
(define_insn "altivec_vsr"
[(set (match_operand:V4SI 0 "register_operand" "=v")
@@ -1041,7 +1161,8 @@
(vec_duplicate:V16QI
(vec_select:QI (match_operand:V16QI 1 "register_operand" "v")
(parallel
- [(match_operand:QI 2 "immediate_operand" "i")]))))]
+;; APPLE LOCAL 4119059
+ [(match_operand:QI 2 "u5bit_cint_operand" "")]))))]
"TARGET_ALTIVEC"
"vspltb %0,%1,%2"
[(set_attr "type" "vecperm")])
@@ -1051,7 +1172,8 @@
(vec_duplicate:V8HI
(vec_select:HI (match_operand:V8HI 1 "register_operand" "v")
(parallel
- [(match_operand:QI 2 "immediate_operand" "i")]))))]
+;; APPLE LOCAL 411959
+ [(match_operand:QI 2 "u5bit_cint_operand" "")]))))]
"TARGET_ALTIVEC"
"vsplth %0,%1,%2"
[(set_attr "type" "vecperm")])
@@ -1061,7 +1183,8 @@
(vec_duplicate:V4SI
(vec_select:SI (match_operand:V4SI 1 "register_operand" "v")
(parallel
- [(match_operand:QI 2 "immediate_operand" "i")]))))]
+;; APPLE LOCAL 4119059
+ [(match_operand:QI 2 "u5bit_cint_operand" "")]))))]
"TARGET_ALTIVEC"
"vspltw %0,%1,%2"
[(set_attr "type" "vecperm")])
@@ -1069,7 +1192,8 @@
(define_insn "altivec_vspltisb"
[(set (match_operand:V16QI 0 "register_operand" "=v")
(vec_duplicate:V16QI
- (match_operand:QI 1 "immediate_operand" "i")))]
+;; APPLE LOCAL 4119059
+ (match_operand:QI 1 "s5bit_cint_operand" "")))]
"TARGET_ALTIVEC"
"vspltisb %0,%1"
[(set_attr "type" "vecperm")])
@@ -1077,7 +1201,8 @@
(define_insn "altivec_vspltish"
[(set (match_operand:V8HI 0 "register_operand" "=v")
(vec_duplicate:V8HI
- (sign_extend:HI (match_operand:QI 1 "immediate_operand" "i"))))]
+;; APPLE LOCAL 4119059
+ (sign_extend:HI (match_operand:QI 1 "s5bit_cint_operand" ""))))]
"TARGET_ALTIVEC"
"vspltish %0,%1"
[(set_attr "type" "vecperm")])
@@ -1085,7 +1210,8 @@
(define_insn "altivec_vspltisw"
[(set (match_operand:V4SI 0 "register_operand" "=v")
(vec_duplicate:V4SI
- (sign_extend:SI (match_operand:QI 1 "immediate_operand" "i"))))]
+;; APPLE LOCAL 4119059
+ (sign_extend:SI (match_operand:QI 1 "s5bit_cint_operand" ""))))]
"TARGET_ALTIVEC"
"vspltisw %0,%1"
[(set_attr "type" "vecperm")])
@@ -1094,7 +1220,8 @@
[(set (match_operand:V4SF 0 "register_operand" "=v")
(vec_duplicate:V4SF
(float:SF (sign_extend:SI
- (match_operand:QI 1 "immediate_operand" "i")))))]
+;; APPLE LOCAL 4119059
+ (match_operand:QI 1 "s5bit_cint_operand" "")))))]
"TARGET_ALTIVEC"
"vspltisw %0,%1"
[(set_attr "type" "vecperm")])
diff --git a/gcc/config/rs6000/builtin.ops b/gcc/config/rs6000/builtin.ops
new file mode 100644
index 00000000000..a28e35654fc
--- /dev/null
+++ b/gcc/config/rs6000/builtin.ops
@@ -0,0 +1,297 @@
+# APPLE LOCAL file AltiVec
+# ops-to-gp -gcc vec.ops builtin.ops
+# @ betype betype-code type-spelling
+@ @ float BETYPE_R4 float
+@ @ ushort BETYPE_U4 unsigned=short
+@ @ uint BETYPE_U4 unsigned=int
+@ @ ulong BETYPE_U4 unsigned=long
+@ @ immed_u2 U2 0..3
+@ @ immed_u4 U4 0..15
+@ @ immed_s5 I5 -16..15
+@ @ immed_u5 U5 0..31
+@ @ int BETYPE_I4 int
+@ @ long BETYPE_I4 long
+@ @ ptr PTR void=*
+@ @ v16 BETYPE_V16 vec_type
+@ @ void BETYPE_I4 void
+# fetype betype [code [spelling]]
+@ float_ptr ptr i float=*
+@ const_float_ptr ptr i float=*
+@ const_volatile_float_ptr ptr i float=*
+@ int int i
+@ int_ptr ptr i int=*
+@ long_ptr ptr i long=*
+@ const_int_ptr ptr i int=*
+@ const_long_ptr ptr i long=*
+@ const_volatile_int_ptr ptr i int=*
+@ const_volatile_long_ptr ptr i long=*
+@ immed_s5 immed_s5 A
+@ immed_u5 immed_u5 B
+@ immed_u4 immed_u4 C
+@ immed_u2 immed_u2 D
+@ cc24f int j=24=f
+@ cc24fd int j=24=f=d
+@ cc24fr int j=24=f=r
+@ cc24t int j=24=t
+@ cc24td int j=24=t=d
+@ cc24tr int j=24=t=r
+@ cc26f int j=26=f
+@ cc26fd int j=26=f=d
+@ cc26fr int j=26=f=r
+@ cc26t int j=26=t
+@ cc26td int j=26=t=d
+@ cc26tr int j=26=t=r
+@ short_ptr ptr i short=*
+@ signed_char_ptr ptr i signed=char=*
+@ unsigned_char_ptr ptr i unsigned=char=*
+@ unsigned_short_ptr ptr i unsigned=short=*
+@ unsigned_int_ptr ptr i unsigned=int=*
+@ unsigned_long_ptr ptr i unsigned=long=*
+@ const_short_ptr ptr i short=*
+@ const_signed_char_ptr ptr i signed=char=*
+@ const_unsigned_char_ptr ptr i unsigned=char=*
+@ const_unsigned_short_ptr ptr i unsigned=short=*
+@ const_unsigned_int_ptr ptr i unsigned=int=*
+@ const_unsigned_long_ptr ptr i unsigned=long=*
+@ const_volatile_short_ptr ptr i short=*
+@ const_volatile_signed_char_ptr ptr i signed=char=*
+@ const_volatile_unsigned_char_ptr ptr i unsigned=char=*
+@ const_volatile_unsigned_short_ptr ptr i unsigned=short=*
+@ const_volatile_unsigned_int_ptr ptr i unsigned=int=*
+@ const_volatile_unsigned_long_ptr ptr i unsigned=long=*
+@ vec_b16 v16 x vec_b16
+@ vec_b16_load_op v16 xl vec_b16
+@ vec_b16_ptr ptr i vec_b16=*
+@ const_vec_b16_ptr ptr i vec_b16=*
+@ vec_b32 v16 x vec_b32
+@ vec_b32_load_op v16 xl vec_b32
+@ vec_b32_ptr ptr i vec_b32=*
+@ const_vec_b32_ptr ptr i vec_b32=*
+@ vec_b8 v16 x vec_b8
+@ vec_b8_load_op v16 xl vec_b8
+@ vec_b8_ptr ptr i vec_b8=*
+@ const_vec_b8_ptr ptr i vec_b8=*
+@ vec_f32 v16 x vec_f32
+@ vec_f32_load_op v16 xl vec_f32
+@ vec_f32_ptr ptr i vec_f32=*
+@ const_vec_f32_ptr ptr i vec_f32=*
+@ vec_p16 v16 x vec_p16
+@ vec_p16_load_op v16 xl vec_p16
+@ vec_p16_ptr ptr i vec_p16=*
+@ const_vec_p16_ptr ptr i vec_p16=*
+@ vec_s16 v16 x vec_s16
+@ vec_s16_load_op v16 xl vec_s16
+@ vec_s16_ptr ptr i vec_s16=*
+@ const_vec_s16_ptr ptr i vec_s16=*
+@ vec_s32 v16 x vec_s32
+@ vec_s32_load_op v16 xl vec_s32
+@ vec_s32_ptr ptr i vec_s32=*
+@ const_vec_s32_ptr ptr i vec_s32=*
+@ vec_s8 v16 x vec_s8
+@ vec_s8_load_op v16 xl vec_s8
+@ vec_s8_ptr ptr i vec_s8=*
+@ const_vec_s8_ptr ptr i vec_s8=*
+@ vec_u16 v16 x vec_u16
+@ vec_u16_load_op v16 xl vec_u16
+@ vec_u16_ptr ptr i vec_u16=*
+@ const_vec_u16_ptr ptr i vec_u16=*
+@ vec_u32 v16 x vec_u32
+@ vec_u32_load_op v16 xl vec_u32
+@ vec_u32_ptr ptr i vec_u32=*
+@ const_vec_u32_ptr ptr i vec_u32=*
+@ vec_u8 v16 x vec_u8
+@ vec_u8_load_op v16 xl vec_u8
+@ vec_u8_ptr ptr i vec_u8=*
+@ const_vec_u8_ptr ptr i vec_u8=*
+@ void_store_op void s
+@ volatile_void void v
+@ volatile_void_load_op void vl
+@ volatile_void_store_op void vs
+@ volatile_vec_u16 v16 vx vec_u16
+@ char_ptr ptr i char=*
+@ const_char_ptr ptr i char=*
+# @ @ instruction type
+@ @ @ MOP_mfvscr fxu
+@ @ @ MOP_mtvscr fxu
+@ @ @ MOP_dss load
+@ @ @ MOP_dssall load
+@ @ @ MOP_dst load
+@ @ @ MOP_dstst load
+@ @ @ MOP_dststt load
+@ @ @ MOP_dstt load
+@ @ @ MOP_lvebx load
+@ @ @ MOP_lvehx load
+@ @ @ MOP_lvewx load
+@ @ @ MOP_lvsl load
+@ @ @ MOP_lvsr load
+@ @ @ MOP_lvx load
+@ @ @ MOP_lvxl load
+@ @ @ MOP_stvebx store
+@ @ @ MOP_stvehx store
+@ @ @ MOP_stvewx store
+@ @ @ MOP_stvx store
+@ @ @ MOP_stvxl store
+@ @ @ MOP_vaddcuw simple
+@ @ @ MOP_vaddfp fp
+@ @ @ MOP_vaddsbs simple
+@ @ @ MOP_vaddshs simple
+@ @ @ MOP_vaddsws simple
+@ @ @ MOP_vaddubm simple
+@ @ @ MOP_vaddubs simple
+@ @ @ MOP_vadduhm simple
+@ @ @ MOP_vadduhs simple
+@ @ @ MOP_vadduwm simple
+@ @ @ MOP_vadduws simple
+@ @ @ MOP_vand simple
+@ @ @ MOP_vandc simple
+@ @ @ MOP_vavgsb simple
+@ @ @ MOP_vavgsh simple
+@ @ @ MOP_vavgsw simple
+@ @ @ MOP_vavgub simple
+@ @ @ MOP_vavguh simple
+@ @ @ MOP_vavguw simple
+@ @ @ MOP_vcfsx fp
+@ @ @ MOP_vcfux fp
+@ @ @ MOP_vcmpbfp simple
+@ @ @ MOP_vcmpbfpD simple
+@ @ @ MOP_vcmpeqfp simple
+@ @ @ MOP_vcmpeqfpD simple
+@ @ @ MOP_vcmpequb simple
+@ @ @ MOP_vcmpequbD simple
+@ @ @ MOP_vcmpequh simple
+@ @ @ MOP_vcmpequhD simple
+@ @ @ MOP_vcmpequw simple
+@ @ @ MOP_vcmpequwD simple
+@ @ @ MOP_vcmpgefp simple
+@ @ @ MOP_vcmpgefpD simple
+@ @ @ MOP_vcmpgtfp simple
+@ @ @ MOP_vcmpgtfpD simple
+@ @ @ MOP_vcmpgtsb simple
+@ @ @ MOP_vcmpgtsbD simple
+@ @ @ MOP_vcmpgtsh simple
+@ @ @ MOP_vcmpgtshD simple
+@ @ @ MOP_vcmpgtsw simple
+@ @ @ MOP_vcmpgtswD simple
+@ @ @ MOP_vcmpgtub simple
+@ @ @ MOP_vcmpgtubD simple
+@ @ @ MOP_vcmpgtuh simple
+@ @ @ MOP_vcmpgtuhD simple
+@ @ @ MOP_vcmpgtuw simple
+@ @ @ MOP_vcmpgtuwD simple
+@ @ @ MOP_vctsxs fp
+@ @ @ MOP_vctuxs fp
+@ @ @ MOP_vexptefp fp
+@ @ @ MOP_vlogefp fp
+@ @ @ MOP_vmaddfp fp
+@ @ @ MOP_vmaxfp simple
+@ @ @ MOP_vmaxsb simple
+@ @ @ MOP_vmaxsh simple
+@ @ @ MOP_vmaxsw simple
+@ @ @ MOP_vmaxub simple
+@ @ @ MOP_vmaxuh simple
+@ @ @ MOP_vmaxuw simple
+@ @ @ MOP_vmhaddshs complex
+@ @ @ MOP_vmhraddshs complex
+@ @ @ MOP_vminfp simple
+@ @ @ MOP_vminsb simple
+@ @ @ MOP_vminsh simple
+@ @ @ MOP_vminsw simple
+@ @ @ MOP_vminub simple
+@ @ @ MOP_vminuh simple
+@ @ @ MOP_vminuw simple
+@ @ @ MOP_vmladduhm complex
+@ @ @ MOP_vmrghb perm
+@ @ @ MOP_vmrghh perm
+@ @ @ MOP_vmrghw perm
+@ @ @ MOP_vmrglb perm
+@ @ @ MOP_vmrglh perm
+@ @ @ MOP_vmrglw perm
+@ @ @ MOP_vmsummbm complex
+@ @ @ MOP_vmsumshm complex
+@ @ @ MOP_vmsumshs complex
+@ @ @ MOP_vmsumubm complex
+@ @ @ MOP_vmsumuhm complex
+@ @ @ MOP_vmsumuhs complex
+@ @ @ MOP_vmulesb complex
+@ @ @ MOP_vmulesh complex
+@ @ @ MOP_vmuleub complex
+@ @ @ MOP_vmuleuh complex
+@ @ @ MOP_vmulosb complex
+@ @ @ MOP_vmulosh complex
+@ @ @ MOP_vmuloub complex
+@ @ @ MOP_vmulouh complex
+@ @ @ MOP_vnmsubfp fp
+@ @ @ MOP_vnor simple
+@ @ @ MOP_vor simple
+@ @ @ MOP_vperm perm
+@ @ @ MOP_vpkpx perm
+@ @ @ MOP_vpkshss perm
+@ @ @ MOP_vpkshus perm
+@ @ @ MOP_vpkswss perm
+@ @ @ MOP_vpkswus perm
+@ @ @ MOP_vpkuhum perm
+@ @ @ MOP_vpkuhus perm
+@ @ @ MOP_vpkuwum perm
+@ @ @ MOP_vpkuwus perm
+@ @ @ MOP_vrefp fp
+@ @ @ MOP_vrfim fp
+@ @ @ MOP_vrfin fp
+@ @ @ MOP_vrfip fp
+@ @ @ MOP_vrfiz fp
+@ @ @ MOP_vrlb simple
+@ @ @ MOP_vrlh simple
+@ @ @ MOP_vrlw simple
+@ @ @ MOP_vrsqrtefp fp
+@ @ @ MOP_vsel simple
+@ @ @ MOP_vsl simple
+@ @ @ MOP_vslb simple
+@ @ @ MOP_vsldoi perm
+@ @ @ MOP_vslh simple
+@ @ @ MOP_vslo perm_bug
+@ @ @ MOP_vslw simple
+@ @ @ MOP_vspltb perm
+@ @ @ MOP_vsplth perm
+@ @ @ MOP_vspltisb perm
+@ @ @ MOP_vspltish perm
+@ @ @ MOP_vspltisw perm
+@ @ @ MOP_vspltw perm
+@ @ @ MOP_vsr simple
+@ @ @ MOP_vsrab simple
+@ @ @ MOP_vsrah simple
+@ @ @ MOP_vsraw simple
+@ @ @ MOP_vsrb simple
+@ @ @ MOP_vsrh simple
+@ @ @ MOP_vsro perm_bug
+@ @ @ MOP_vsrw simple
+@ @ @ MOP_vsubcuw simple
+@ @ @ MOP_vsubfp fp
+@ @ @ MOP_vsubsbs simple
+@ @ @ MOP_vsubshs simple
+@ @ @ MOP_vsubsws simple
+@ @ @ MOP_vsububm simple
+@ @ @ MOP_vsububs simple
+@ @ @ MOP_vsubuhm simple
+@ @ @ MOP_vsubuhs simple
+@ @ @ MOP_vsubuwm simple
+@ @ @ MOP_vsubuws simple
+@ @ @ MOP_vsum2sws complex
+@ @ @ MOP_vsum4sbs complex
+@ @ @ MOP_vsum4shs complex
+@ @ @ MOP_vsum4ubs complex
+@ @ @ MOP_vsumsws complex
+@ @ @ MOP_vupkhpx perm
+@ @ @ MOP_vupkhsb perm
+@ @ @ MOP_vupkhsh perm
+@ @ @ MOP_vupklpx perm
+@ @ @ MOP_vupklsb perm
+@ @ @ MOP_vupklsh perm
+@ @ @ MOP_vxor simple
+# The vec_abs and vec_abss operations identify their variants with insn_name.
+# Map these into a valid insn code (xfx_perm).
+@ @ @ 1 perm
+@ @ @ 2 perm
+@ @ @ 3 perm
+@ @ @ 4 perm
+@ @ @ 5 perm
+@ @ @ 6 perm
+@ @ @ 7 perm
diff --git a/gcc/config/rs6000/darwin-fallback.c b/gcc/config/rs6000/darwin-fallback.c
index a9ef4a7985e..0815a2a8fdb 100644
--- a/gcc/config/rs6000/darwin-fallback.c
+++ b/gcc/config/rs6000/darwin-fallback.c
@@ -1,3 +1,4 @@
+/* APPLE LOCAL file mainline 2005-03-25 3941951 */
/* Fallback frame-state unwinder for Darwin.
Copyright (C) 2004, 2005 Free Software Foundation, Inc.
@@ -36,9 +37,8 @@
#include "unwind-dw2.h"
#include <stdint.h>
#include <stdbool.h>
+#include <sys/types.h>
#include <signal.h>
-#include <ucontext.h>
-#include <mach/thread_status.h>
typedef unsigned long reg_unit;
@@ -225,6 +225,11 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
}
}
+/* We used to include <ucontext.h> and <mach/thread_status.h>,
+ but they change so much between different Darwin system versions
+ that it's much easier to just write the structures involved here
+ directly. */
+
/* These defines are from the kernel's bsd/dev/ppc/unix_signal.c. */
#define UC_TRAD 1
#define UC_TRAD_VEC 6
@@ -237,6 +242,44 @@ interpret_libc (reg_unit gprs[32], struct _Unwind_Context *context)
#define UC_DUAL 50
#define UC_DUAL_VEC 55
+struct gcc_ucontext
+{
+ int onstack;
+ sigset_t sigmask;
+ void * stack_sp;
+ size_t stack_sz;
+ int stack_flags;
+ struct gcc_ucontext *link;
+ size_t mcsize;
+ struct gcc_mcontext32 *mcontext;
+};
+
+struct gcc_float_vector_state
+{
+ double fpregs[32];
+ uint32_t fpscr_pad;
+ uint32_t fpscr;
+ uint32_t save_vr[32][4];
+ uint32_t save_vscr[4];
+};
+
+struct gcc_mcontext32 {
+ uint32_t dar;
+ uint32_t dsisr;
+ uint32_t exception;
+ uint32_t padding1[5];
+ uint32_t srr0;
+ uint32_t srr1;
+ uint32_t gpr[32];
+ uint32_t cr;
+ uint32_t xer;
+ uint32_t lr;
+ uint32_t ctr;
+ uint32_t mq;
+ uint32_t vrsave;
+ struct gcc_float_vector_state fvs;
+};
+
/* These are based on /usr/include/ppc/ucontext.h and
/usr/include/mach/ppc/thread_status.h, but rewritten to be more
convenient, to compile on Jaguar, and to work around Radar 3712064
@@ -256,17 +299,16 @@ struct gcc_mcontext64 {
uint32_t lr[2];
uint32_t ctr[2];
uint32_t vrsave;
- ppc_float_state_t fs;
- ppc_vector_state_t vs;
+ struct gcc_float_vector_state fvs;
};
#define UC_FLAVOR_SIZE \
- (sizeof (struct mcontext) - sizeof (ppc_vector_state_t))
+ (sizeof (struct gcc_mcontext32) - 33*16)
-#define UC_FLAVOR_VEC_SIZE (sizeof (struct mcontext))
+#define UC_FLAVOR_VEC_SIZE (sizeof (struct gcc_mcontext32))
#define UC_FLAVOR64_SIZE \
- (sizeof (struct gcc_mcontext64) - sizeof (ppc_vector_state_t))
+ (sizeof (struct gcc_mcontext64) - 33*16)
#define UC_FLAVOR64_VEC_SIZE (sizeof (struct gcc_mcontext64))
@@ -278,10 +320,9 @@ static bool
handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
_Unwind_Ptr old_cfa)
{
- ucontext_t *uctx;
+ struct gcc_ucontext *uctx;
bool is_64, is_vector;
- ppc_float_state_t *float_state;
- ppc_vector_state_t *vector_state;
+ struct gcc_float_vector_state * float_vector_state;
_Unwind_Ptr new_cfa;
int i;
static _Unwind_Ptr return_addr;
@@ -293,16 +334,16 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
if (gprs[0] == 0x67 /* SYS_SIGRETURN */)
{
- uctx = (ucontext_t *) gprs[3];
- is_vector = (uctx->uc_mcsize == UC_FLAVOR64_VEC_SIZE
- || uctx->uc_mcsize == UC_FLAVOR_VEC_SIZE);
- is_64 = (uctx->uc_mcsize == UC_FLAVOR64_VEC_SIZE
- || uctx->uc_mcsize == UC_FLAVOR64_SIZE);
+ uctx = (struct gcc_ucontext *) gprs[3];
+ is_vector = (uctx->mcsize == UC_FLAVOR64_VEC_SIZE
+ || uctx->mcsize == UC_FLAVOR_VEC_SIZE);
+ is_64 = (uctx->mcsize == UC_FLAVOR64_VEC_SIZE
+ || uctx->mcsize == UC_FLAVOR64_SIZE);
}
else if (gprs[0] == 0 && gprs[3] == 184)
{
int ctxstyle = gprs[5];
- uctx = (ucontext_t *) gprs[4];
+ uctx = (struct gcc_ucontext *) gprs[4];
is_vector = (ctxstyle == UC_FLAVOR_VEC || ctxstyle == UC_FLAVOR64_VEC
|| ctxstyle == UC_TRAD_VEC || ctxstyle == UC_TRAD64_VEC);
is_64 = (ctxstyle == UC_FLAVOR64_VEC || ctxstyle == UC_TRAD64_VEC
@@ -325,11 +366,10 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
/* The context is 64-bit, but it doesn't carry any extra information
for us because only the low 32 bits of the registers are
call-saved. */
- struct gcc_mcontext64 *m64 = (struct gcc_mcontext64 *)uctx->uc_mcontext;
+ struct gcc_mcontext64 *m64 = (struct gcc_mcontext64 *)uctx->mcontext;
int i;
- float_state = &m64->fs;
- vector_state = &m64->vs;
+ float_vector_state = &m64->fvs;
new_cfa = m64->gpr[1][1];
@@ -354,33 +394,32 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
}
else
{
- struct mcontext *m = uctx->uc_mcontext;
+ struct gcc_mcontext32 *m = uctx->mcontext;
int i;
- float_state = &m->fs;
- vector_state = &m->vs;
+ float_vector_state = &m->fvs;
- new_cfa = m->ss.r1;
+ new_cfa = m->gpr[1];
- set_offset (CR2_REGNO, &m->ss.cr);
+ set_offset (CR2_REGNO, &m->cr);
for (i = 0; i < 32; i++)
- set_offset (i, &m->ss.r0 + i);
- set_offset (XER_REGNO, &m->ss.xer);
- set_offset (LINK_REGISTER_REGNUM, &m->ss.lr);
- set_offset (COUNT_REGISTER_REGNUM, &m->ss.ctr);
+ set_offset (i, m->gpr + i);
+ set_offset (XER_REGNO, &m->xer);
+ set_offset (LINK_REGISTER_REGNUM, &m->lr);
+ set_offset (COUNT_REGISTER_REGNUM, &m->ctr);
if (is_vector)
- set_offset (VRSAVE_REGNO, &m->ss.vrsave);
+ set_offset (VRSAVE_REGNO, &m->vrsave);
/* Sometimes, srr0 points to the instruction that caused the exception,
and sometimes to the next instruction to be executed; we want
the latter. */
- if (m->es.exception == 3 || m->es.exception == 4
- || m->es.exception == 6
- || (m->es.exception == 7 && !(m->ss.srr1 & 0x10000)))
- return_addr = m->ss.srr0 + 4;
+ if (m->exception == 3 || m->exception == 4
+ || m->exception == 6
+ || (m->exception == 7 && !(m->srr1 & 0x10000)))
+ return_addr = m->srr0 + 4;
else
- return_addr = m->ss.srr0;
+ return_addr = m->srr0;
}
fs->cfa_how = CFA_REG_OFFSET;
@@ -399,14 +438,14 @@ handle_syscall (_Unwind_FrameState *fs, const reg_unit gprs[32],
set_offset (ARG_POINTER_REGNUM, &return_addr);
for (i = 0; i < 32; i++)
- set_offset (32 + i, float_state->fpregs + i);
- set_offset (SPEFSCR_REGNO, &float_state->fpscr);
+ set_offset (32 + i, float_vector_state->fpregs + i);
+ set_offset (SPEFSCR_REGNO, &float_vector_state->fpscr);
if (is_vector)
{
for (i = 0; i < 32; i++)
- set_offset (FIRST_ALTIVEC_REGNO + i, vector_state->save_vr + i);
- set_offset (VSCR_REGNO, vector_state->save_vscr);
+ set_offset (FIRST_ALTIVEC_REGNO + i, float_vector_state->save_vr + i);
+ set_offset (VSCR_REGNO, float_vector_state->save_vscr);
}
return true;
diff --git a/gcc/config/rs6000/darwin-ldouble.c b/gcc/config/rs6000/darwin-ldouble.c
index 86893c961cd..b394d5d99bf 100644
--- a/gcc/config/rs6000/darwin-ldouble.c
+++ b/gcc/config/rs6000/darwin-ldouble.c
@@ -67,7 +67,7 @@ extern long double __gcc_qsub (double, double, double, double);
extern long double __gcc_qmul (double, double, double, double);
extern long double __gcc_qdiv (double, double, double, double);
-#ifdef __ELF__
+#if defined __ELF__ && defined SHARED
/* Provide definitions of the old symbol names to statisfy apps and
shared libs built against an older libgcc. To access the _xlq
symbols an explicit version reference is needed, so these won't
diff --git a/gcc/config/rs6000/darwin-tramp.asm b/gcc/config/rs6000/darwin-tramp.asm
index 64902116ff2..a2e2f4c7434 100644
--- a/gcc/config/rs6000/darwin-tramp.asm
+++ b/gcc/config/rs6000/darwin-tramp.asm
@@ -33,8 +33,6 @@
* executable file might be covered by the GNU General Public License.
*/
-/* APPLE LOCAL mainline throughout this file */
-
#include "darwin-asm.h"
/* Set up trampolines. */
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index 51a52ef026e..c03c50cefc9 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -56,8 +56,9 @@
if (TARGET_64BIT) builtin_define ("__ppc64__"); \
builtin_define ("__POWERPC__"); \
builtin_define ("__NATURAL_ALIGNMENT__"); \
- builtin_define ("__MACH__"); \
- builtin_define ("__APPLE__"); \
+ /* APPLE LOCAL remove __MACH__ and __APPLE__ definitions -- put elsewhere */\
+ /* APPLE LOCAL constant cfstrings */ \
+ SUBTARGET_OS_CPP_BUILTINS (); \
} \
while (0)
@@ -106,6 +107,10 @@ do { \
error ("invalid option %qs", base); \
darwin_fix_and_continue = (base[0] != 'n'); \
} \
+ /* APPLE LOCAL begin longcall */ \
+ if (TARGET_64BIT) \
+ rs6000_longcall_switch = (char *)0; \
+ /* APPLE LOCAL end longcall */ \
} \
if (TARGET_64BIT && ! TARGET_POWERPC64) \
{ \
@@ -126,9 +131,12 @@ do { \
the kernel or some such. */
#define CC1_SPEC "\
+"/* APPLE LOCAL ignore -msse and -msse2 and other x86 options */"\
+%<msse %<msse2 %<march=pentium4 %<mcpu=pentium4 \
%{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \
%{static: %{Zdynamic: %e conflicting code gen style switches are used}}\
-%{!static:%{!mdynamic-no-pic:-fPIC}}"
+"/* APPLE LOCAL -fast and PIC code. */"\
+%{!static:%{!fast:%{!fastf:%{!fastcp:%{!mdynamic-no-pic:-fPIC}}}}}"
#define DARWIN_SUBARCH_SPEC " \
%{m64: ppc64} \
@@ -165,7 +173,8 @@ do { \
#define SUBTARGET_OPTION_TRANSLATE_TABLE \
{ "-ffix-and-continue", "-mfix-and-continue" }, \
{ "-findirect-data", "-mfix-and-continue" }, \
- { "-faltivec", "-maltivec -include altivec.h" }, \
+ /* APPLE LOCAL AltiVec */ \
+ { "-faltivec", "-faltivec -mpim-altivec" }, \
{ "-fno-altivec", "-mno-altivec" }, \
{ "-Waltivec-long-deprecated", "-mwarn-altivec-long" }, \
{ "-Wno-altivec-long-deprecated", "-mno-warn-altivec-long" }
@@ -182,6 +191,24 @@ do { \
#undef RS6000_PIC_OFFSET_TABLE_REGNUM
#define RS6000_PIC_OFFSET_TABLE_REGNUM 31
+/* APPLE LOCAL begin -pg fix */
+/* -pg has a problem which is normally concealed by -fPIC;
+ either -mdynamic-no-pic or -static exposes the -pg problem, causing the
+ crash. FSF gcc for Darwin also has this bug. The problem is that -pg
+ causes several int registers to be saved and restored although they may
+ not actually be used (config/rs6000/rs6000.c:first_reg_to_save()). In the
+ rare case where none of them is actually used, a consistency check fails
+ (correctly). This cannot happen with -fPIC because the PIC register (R31)
+ is always "used" in the sense checked by the consistency check. The
+ easy fix, here, is therefore to mark R31 always "used" whenever -pg is on.
+ A better, but harder, fix would be to improve -pg's register-use
+ logic along the lines suggested by comments in the function listed above. */
+#undef PIC_OFFSET_TABLE_REGNUM
+#define PIC_OFFSET_TABLE_REGNUM ((flag_pic || profile_flag) \
+ ? RS6000_PIC_OFFSET_TABLE_REGNUM \
+ : INVALID_REGNUM)
+/* APPLE LOCAL end -pg fix */
+
/* Pad the outgoing args area to 16 bytes instead of the usual 8. */
#undef STARTING_FRAME_OFFSET
@@ -200,11 +227,35 @@ do { \
#define UNLIKELY_EXECUTED_TEXT_SECTION_NAME \
"__TEXT,__unlikely,regular,pure_instructions"
+/* APPLE LOCAL begin long call hot cold */
+/* The following is used by hot/cold partitioning to determine whether to
+ unconditional branches are "long enough" to span the distance between
+ hot and cold sections (otherwise we have to use indirect jumps). It
+ is set based on the -mlongcall flag.
+ If -mlongcall is set, we use the indirect jumps (the macro below gets '0');
+ otherwise we use unconditional branches (the macro below gets '1'). */
+#define HAS_LONG_UNCOND_BRANCH (TARGET_LONG_BRANCH ? 0 : 1)
+/* APPLE LOCAL end long call hot cold */
+
+/* APPLE LOCAL begin long-branch */
/* Define cutoff for using external functions to save floating point.
- Currently on Darwin, always use inline stores. */
+ For Darwin, use the function for more than a few registers. */
+
+/* APPLE LOCAL begin inline FP save/restore (radar 3414605) */
+#undef FP_SAVE_INLINE
+#define FP_SAVE_INLINE(FIRST_REG) \
+(optimize >= 3 \
+|| ((FIRST_REG) > 60 && (FIRST_REG) < 64) \
+|| TARGET_LONG_BRANCH)
+/* APPLE LOCAL end inline FP save/restore (radar 3414605) */
+
+/* Define cutoff for using external functions to save vector registers. */
-#undef FP_SAVE_INLINE
-#define FP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 64)
+#undef VECTOR_SAVE_INLINE
+#define VECTOR_SAVE_INLINE(FIRST_REG) \
+ (((FIRST_REG) >= LAST_ALTIVEC_REGNO - 1 && (FIRST_REG) <= LAST_ALTIVEC_REGNO) \
+ || TARGET_LONG_BRANCH)
+/* APPLE LOCAL end long-branch */
/* Darwin uses a function call if everything needs to be saved/restored. */
#undef WORLD_SAVE_P
@@ -271,11 +322,8 @@ do { \
#undef ASM_COMMENT_START
#define ASM_COMMENT_START ";"
-/* FP save and restore routines. */
-#define SAVE_FP_PREFIX "._savef"
-#define SAVE_FP_SUFFIX ""
-#define RESTORE_FP_PREFIX "._restf"
-#define RESTORE_FP_SUFFIX ""
+/* APPLE LOCAL reduce code size */
+/* Don't define SAVE_FP_PREFIX and friends */
/* This is how to output an assembler line that says to advance
the location counter to a multiple of 2**LOG bytes using the
@@ -292,6 +340,22 @@ do { \
fprintf (FILE, "\t.align32 %d,0x60000000\n", (LOG)); \
} while (0)
+
+/* APPLE LOCAL begin -falign-loops-max-skip mainline 2005-04-22 */
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+/* This is supported in cctools 465 and later. The macro test
+ above prevents using it in earlier build environments. */
+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
+ if ((LOG) != 0) \
+ { \
+ if ((MAX_SKIP) == 0) \
+ fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
+ else \
+ fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+#endif
+/* APPLE LOCAL end -falign-loops-max-skip mainline 2005-04-22 */
+
/* Generate insns to call the profiler. */
#define PROFILE_HOOK(LABEL) output_profile_hook (LABEL)
@@ -353,30 +417,46 @@ do { \
? GENERAL_REGS \
: (CLASS))
-/* Fix for emit_group_load (): force large constants to be pushed via regs. */
-#define ALWAYS_PUSH_CONSTS_USING_REGS_P 1
-
-/* This now supports a natural alignment mode */
-/* Darwin word-aligns FP doubles but doubleword-aligns 64-bit ints. */
-#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \
- (TARGET_ALIGN_NATURAL ? (COMPUTED) : \
- (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \
- ? get_inner_array_type (FIELD) \
- : TREE_TYPE (FIELD)) == DFmode \
- ? MIN ((COMPUTED), 32) : (COMPUTED)))
-
-/* Darwin increases natural record alignment to doubleword if the first
- field is an FP double while the FP fields remain word aligned. */
-#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
- ((TREE_CODE (STRUCT) == RECORD_TYPE \
- || TREE_CODE (STRUCT) == UNION_TYPE \
- || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \
- && TARGET_ALIGN_NATURAL == 0 \
- ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \
- : (TREE_CODE (STRUCT) == VECTOR_TYPE \
- && ALTIVEC_VECTOR_MODE (TYPE_MODE (STRUCT))) \
- ? MAX (MAX ((COMPUTED), (SPECIFIED)), 128) \
- : MAX ((COMPUTED), (SPECIFIED)))
+/* APPLE LOCAL begin Macintosh alignment 2002-2-26 --ff */
+/* This now supports the Macintosh power, mac68k, and natural
+ alignment modes. It now has one more parameter than the standard
+ version of the ADJUST_FIELD_ALIGN macro.
+
+ The macro works as follows: We use the computed alignment of the
+ field if we are in the natural alignment mode or if the field is
+ a vector. Otherwise, if we are in the mac68k alignment mode, we
+ use the minimum of the computed alignment and 16 (pegging at
+ 2-byte alignment). If we are in the power mode, we peg at 32
+ (word alignment) unless it is the first field of the struct, in
+ which case we use the computed alignment. */
+#undef ADJUST_FIELD_ALIGN
+#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED, FIRST_FIELD_P) \
+ (TARGET_ALIGN_NATURAL ? (COMPUTED) : \
+ (((COMPUTED) == RS6000_VECTOR_ALIGNMENT) \
+ ? RS6000_VECTOR_ALIGNMENT \
+ : (MIN ((COMPUTED), \
+ (TARGET_ALIGN_MAC68K ? 16 \
+ : ((FIRST_FIELD_P) ? (COMPUTED) \
+ : 32))))))
+
+#undef ROUND_TYPE_ALIGN
+/* Macintosh alignment modes require more complicated handling
+ of alignment, so we replace the macro with a call to a
+ out-of-line function. */
+union tree_node;
+extern unsigned round_type_align (union tree_node*, unsigned, unsigned); /* rs6000.c */
+#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
+ round_type_align(STRUCT, COMPUTED, SPECIFIED)
+/* APPLE LOCAL end Macintosh alignment 2002-2-26 --ff */
+
+/* APPLE LOCAL begin alignment */
+/* Make sure local alignments come from the type node, not the mode;
+ mode-based alignments are wrong for vectors. */
+#undef LOCAL_ALIGNMENT
+#define LOCAL_ALIGNMENT(TYPE, ALIGN) \
+ (MIN (BIGGEST_ALIGNMENT, \
+ MAX ((unsigned) ALIGN, TYPE_ALIGN (TYPE))))
+/* APPLE LOCAL end alignment */
/* Specify padding for the last element of a block move between
registers and memory. FIRST is nonzero if this is the only
@@ -388,6 +468,17 @@ do { \
support 64 bit PowerPC either, so this just keeps things happy. */
#define DOUBLE_INT_ASM_OP "\t.quad\t"
+/* APPLE LOCAL begin branch cost */
+#undef BRANCH_COST
+/* Better code is generated by saying conditional branches take 1 tick. */
+#define BRANCH_COST 1
+/* APPLE LOCAL end branch cost */
+
+/* APPLE LOCAL begin indirect calls in R12 */
+/* Address of indirect call must be computed here */
+#define MAGIC_INDIRECT_CALL_REG 12
+/* APPLE LOCAL end indirect calls in R12 */
+
/* For binary compatibility with 2.95; Darwin C APIs use bool from
stdbool.h, which was an int-sized enum in 2.95. Users can explicitly
choose to have sizeof(bool)==1 with the -mone-byte-bool switch. */
@@ -397,6 +488,17 @@ extern const char *darwin_one_byte_bool;
#undef REGISTER_TARGET_PRAGMAS
#define REGISTER_TARGET_PRAGMAS DARWIN_REGISTER_TARGET_PRAGMAS
+/* APPLE LOCAL begin libgcc_static.a */
+/* APPLE LOCAL begin mainline 2005-04-11 */
+#undef LIBGCC_SPEC
+#undef REAL_LIBGCC_SPEC
+#define REAL_LIBGCC_SPEC \
+ "%{static:-lgcc_static; \
+ :%{shared-libgcc|Zdynamiclib:%{m64:-lgcc_s_ppc64;:-lgcc_s} -lgcc; \
+ :-lgcc -lgcc_eh}}"
+/* APPLE LOCAL end mainline 2005-04-11 */
+/* APPLE LOCAL end libgcc_static.a */
+
#ifdef IN_LIBGCC2
#include <stdbool.h>
#endif
@@ -405,10 +507,12 @@ extern const char *darwin_one_byte_bool;
#define HAS_MD_FALLBACK_FRAME_STATE_FOR 1
+/* APPLE LOCAL begin mainline to be accessed, 5 nops */
/* True, iff we're generating fast turn around debugging code. When
- true, we arrange for function prologues to start with 4 nops so
- that gdb may insert code to redirect them, and for data to accessed
- indirectly. The runtime uses this indirection to forward
+ true, we arrange for function prologues to start with 5 nops so
+ that gdb may insert code to redirect them, and for data to be
+ accessed indirectly. The runtime uses this indirection to forward
references for data to the original instance of that data. */
+/* APPLE LOCAL end mainline to be accessed, 5 nops */
#define TARGET_FIX_AND_CONTINUE (darwin_fix_and_continue)
diff --git a/gcc/config/rs6000/darwin.md b/gcc/config/rs6000/darwin.md
index a0499c5c7aa..65855507769 100644
--- a/gcc/config/rs6000/darwin.md
+++ b/gcc/config/rs6000/darwin.md
@@ -281,6 +281,40 @@ Boston, MA 02111-1307, USA. */
[(set_attr "type" "branch")
(set_attr "length" "4")])
+;; APPLE LOCAL begin special ObjC method use of R12
+
+(define_expand "load_macho_picbase_label"
+ [(set (match_operand 0 "" "")
+ (unspec [(match_operand 1 "" "")]
+ UNSPEC_LD_MPIC_L))]
+ "(DEFAULT_ABI == ABI_DARWIN) && flag_pic"
+{
+ if (TARGET_32BIT)
+ emit_insn (gen_load_macho_picbase_label_si (operands[0], operands[1]));
+ else
+ emit_insn (gen_load_macho_picbase_label_di (operands[0], operands[1]));
+
+ DONE;
+})
+
+(define_insn "load_macho_picbase_label_si"
+ [(set (match_operand:SI 0 "register_operand" "=l")
+ (unspec_volatile:SI [(match_operand:SI 1 "immediate_operand" "s")]
+ UNSPEC_LD_MPIC_L))]
+ "(DEFAULT_ABI == ABI_DARWIN) && flag_pic"
+ ";bcl 20,31,%1\\n%1:"
+ [(set_attr "length" "0")])
+
+(define_insn "load_macho_picbase_label_di"
+ [(set (match_operand:DI 0 "register_operand" "=l")
+ (unspec_volatile:DI [(match_operand:DI 1 "immediate_operand" "s")]
+ UNSPEC_LD_MPIC_L))]
+ "(DEFAULT_ABI == ABI_DARWIN) && flag_pic && TARGET_64BIT"
+ ";bcl 20,31,%1\\n%1:"
+ [(set_attr "length" "0")])
+
+;; APPLE LOCAL end special ObjC method use of R12
+
(define_expand "macho_correct_pic"
[(set (match_operand 0 "" "")
(plus (match_operand 1 "" "")
@@ -449,3 +483,61 @@ Boston, MA 02111-1307, USA. */
[(set_attr "type" "branch")
(set_attr "length" "4")])
+/* APPLE LOCAL begin 64-bit */
+(define_insn "*save_fpregs_with_label_di"
+ [(match_parallel 0 "any_parallel_operand"
+ [(clobber (match_operand:DI 1 "register_operand" "=l"))
+ (use (match_operand:DI 2 "call_operand" "s"))
+ (use (match_operand:DI 3 "" ""))
+ (set (match_operand:DF 4 "memory_operand" "=m")
+ (match_operand:DF 5 "gpc_reg_operand" "f"))])]
+ "TARGET_64BIT"
+ "*
+#if TARGET_MACHO
+ const char *picbase = machopic_function_base_name ();
+ operands[3] = gen_rtx_SYMBOL_REF (Pmode, ggc_alloc_string (picbase, -1));
+#endif
+ return \"bl %z2\\n%3:\";
+"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+
+(define_insn "*save_vregs_di"
+ [(match_parallel 0 "any_parallel_operand"
+ [(clobber (match_operand:DI 1 "register_operand" "=l"))
+ (use (match_operand:DI 2 "call_operand" "s"))
+ (set (match_operand:V4SI 3 "any_operand" "=m")
+ (match_operand:V4SI 4 "register_operand" "v"))])]
+ "TARGET_64BIT"
+ "bl %z2"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+
+(define_insn "*restore_vregs_di"
+ [(match_parallel 0 "any_parallel_operand"
+ [(clobber (match_operand:DI 1 "register_operand" "=l"))
+ (use (match_operand:DI 2 "call_operand" "s"))
+ (clobber (match_operand:DI 3 "gpc_reg_operand" "=r"))
+ (set (match_operand:V4SI 4 "register_operand" "=v")
+ (match_operand:V4SI 5 "any_operand" "m"))])]
+ "TARGET_64BIT"
+ "bl %z2")
+
+(define_insn "*save_vregs_with_label_di"
+ [(match_parallel 0 "any_parallel_operand"
+ [(clobber (match_operand:DI 1 "register_operand" "=l"))
+ (use (match_operand:DI 2 "call_operand" "s"))
+ (use (match_operand:DI 3 "" ""))
+ (set (match_operand:V4SI 4 "any_operand" "=m")
+ (match_operand:V4SI 5 "register_operand" "v"))])]
+ "TARGET_64BIT"
+ "*
+#if TARGET_MACHO
+ const char *picbase = machopic_function_base_name ();
+ operands[3] = gen_rtx_SYMBOL_REF (Pmode, ggc_alloc_string (picbase, -1));
+#endif
+ return \"bl %z2\\n%3:\";
+"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+/* APPLE LOCAL end 64-bit */
diff --git a/gcc/config/rs6000/host-darwin.c b/gcc/config/rs6000/host-darwin.c
index 599e30603d6..f16a3ddb2b0 100644
--- a/gcc/config/rs6000/host-darwin.c
+++ b/gcc/config/rs6000/host-darwin.c
@@ -1,5 +1,7 @@
/* Darwin/powerpc host-specific hook definitions.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ APPLE LOCAL begin mainline 2005-04-06 4071679
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+ APPLE LOCAL end mainline 2005-04-06 4071679
This file is part of GCC.
@@ -23,11 +25,14 @@
#include "coretypes.h"
#include <signal.h>
#include <sys/ucontext.h>
-#include <sys/mman.h>
+/* APPLE LOCAL mainline 2005-04-06 4071679 */
+/* Delete mman.h */
#include "hosthooks.h"
#include "hosthooks-def.h"
#include "toplev.h"
#include "diagnostic.h"
+/* APPLE LOCAL mainline 2005-04-06 4071679 */
+#include "config/host-darwin.h"
static void segv_crash_handler (int);
static void segv_handler (int, siginfo_t *, void *);
@@ -137,65 +142,7 @@ darwin_rs6000_extra_signals (void)
fatal_error ("While setting up signal handler: %m");
}
-#undef HOST_HOOKS_GT_PCH_GET_ADDRESS
-#define HOST_HOOKS_GT_PCH_GET_ADDRESS darwin_rs6000_gt_pch_get_address
-#undef HOST_HOOKS_GT_PCH_USE_ADDRESS
-#define HOST_HOOKS_GT_PCH_USE_ADDRESS darwin_rs6000_gt_pch_use_address
-
-/* Yes, this is really supposed to work. */
-static char pch_address_space[1024*1024*1024] __attribute__((aligned (4096)));
-
-/* Return the address of the PCH address space, if the PCH will fit in it. */
-
-static void *
-darwin_rs6000_gt_pch_get_address (size_t sz, int fd ATTRIBUTE_UNUSED)
-{
- if (sz <= sizeof (pch_address_space))
- return pch_address_space;
- else
- return NULL;
-}
-
-/* Check ADDR and SZ for validity, and deallocate (using munmap) that part of
- pch_address_space beyond SZ. */
-
-static int
-darwin_rs6000_gt_pch_use_address (void *addr, size_t sz, int fd, size_t off)
-{
- const size_t pagesize = getpagesize();
- void *mmap_result;
- int ret;
-
- if ((size_t)pch_address_space % pagesize != 0
- || sizeof (pch_address_space) % pagesize != 0)
- abort ();
-
- ret = (addr == pch_address_space && sz <= sizeof (pch_address_space));
- if (! ret)
- sz = 0;
-
- /* Round the size to a whole page size. Normally this is a no-op. */
- sz = (sz + pagesize - 1) / pagesize * pagesize;
-
- if (munmap (pch_address_space + sz, sizeof (pch_address_space) - sz) != 0)
- fatal_error ("couldn't unmap pch_address_space: %m\n");
-
- if (ret)
- {
- mmap_result = mmap (addr, sz,
- PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED,
- fd, off);
-
- /* The file might not be mmap-able. */
- ret = mmap_result != (void *) MAP_FAILED;
-
- /* Sanity check for broken MAP_FIXED. */
- if (ret && mmap_result != addr)
- abort ();
- }
-
- return ret;
-}
-
+/* APPLE LOCAL mainline 2005-04-06 4071679 */
+/* Delete PCH functions & macros */
const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
diff --git a/gcc/config/rs6000/ops-to-gp b/gcc/config/rs6000/ops-to-gp
new file mode 100755
index 00000000000..becb406749b
--- /dev/null
+++ b/gcc/config/rs6000/ops-to-gp
@@ -0,0 +1,620 @@
+#!/bin/sh
+# APPLE LOCAL file AltiVec
+# ops-to-gp -gcc vec.ops builtin.ops
+# Creates vec.h used by rs6000.c
+
+arg0=`basename $0`
+err() {
+ echo "$arg0: $*" 1>&2
+ exit 2
+}
+
+if [ $# -eq 0 ] ; then
+ echo "Usage: $arg0 [ -mcc | -gcc ] builtin-ops ..." 1>&2
+ exit 1
+fi
+
+MCC=1
+GCC=0
+suffix="gp"
+if [ "$1" = "-mcc" ] ; then
+ shift;
+elif [ "$1" = "-gcc" ] ; then
+ GCC=1
+ MCC=0
+ suffix="h"
+ shift;
+fi
+
+output=`basename $1 .ops`
+gperf="gperf -G -a -o -k1-15 -p -t -D -T -N Is_Builtin_Function $output.gp";
+
+# Lines in the ops file have the form
+# @ @ betype betype-code type-spelling
+# @ fetype betype [code]
+# @ @ @ instruction type
+# generic op1 op2 ... opn = result specific when configure [addressible
+# [instruction [const_ptr_ok [volatile_ptr_ok [transform [predicate]]]]]]
+
+# Sort the ops file to put it in a canonical order.
+sort -u $* | \
+
+# Add specific function uid's, make generic functions from specific
+# functions, validate the types used, compute default parameters, and
+# compute parts of the default transform and predicate functions.
+awk 'BEGIN {
+ i = 0
+ EQ = i++
+ RESULT = i++
+ SPECIFIC = i++
+ WHEN = i++
+ CONFIGURED = i++
+ ADDRESSIBLE = i++
+ INSTRUCTION = i++
+ CONST_PTR_OK = i++
+ VOLATILE_PTR_OK = i++
+ TRANSFORM = i++
+ PREDICATE = i++
+ n_lines = 1;
+ tree[3] = "Make_Folded_4tree";
+ tree[2] = "Make_Folded_3tree";
+ tree[1] = "Make_Folded_Btree";
+ tree[0] = "Make_Utree";
+ optimize["vec_sub"] = 1;
+ optimize["vec_subs"] = 1;
+ optimize["vec_xor"] = 1;
+ optimize["vec_andc"] = 1;
+ optimize["vec_avg"] = 2;
+ optimize["vec_or"] = 2;
+ optimize["vec_and"] = 2;
+ optimize["vec_max"] = 2;
+ optimize["vec_min"] = 2;
+ optimize["vec_sld"] = 3;
+ optimize["vec_splat_s8"] = 4;
+ optimize["vec_splat_s16"] = 5;
+ optimize["vec_splat_s32"] = 6;
+ optimize["vec_splat_u8"] = 4;
+ optimize["vec_splat_u16"] = 5;
+ optimize["vec_splat_u32"] = 6;
+ optimize["vec_cmpeq"] = 7;
+ optimize["vec_lvsl"] = 8;
+ optimize["vec_lvsr"] = 9;
+ # These operations need additional transformation. Key off the
+ # optimize attribute to identify them.
+ optimize["vec_cmplt"] = 10;
+ optimize["vec_cmple"] = 10;
+ optimize["vec_abs"] = 11;
+ optimize["vec_abss"] = 11;
+ }
+ function no_type(t) {
+ printf "%% Error: type %s not declared.\n", t;
+ status = 1;
+ exit;
+ }
+ # Record the type.
+ $1 == "@" {
+ if ($2 == "@") {
+ if ($3 == "@") {
+ # Definition of an instruction.
+ insn_type[$4] = $5; # type
+ } else {
+ # Definition of a betype.
+ becode[$3] = $4; # betype-code
+ bespell[$3] = $5; # type-spelling
+ gsub(/\=/, " ", bespell[$3]);
+ }
+ } else {
+ # Definition of a fetype.
+ print $0;
+ if (!becode[$3]) no_type($3); # Must have defined the betype.
+ betype[$2] = $3; # betype;
+ if (NF == 3)
+ code[$2] = "";
+ else
+ code[$2] = $4; # code
+ }
+ }
+ function no_equal(i,l) {
+ printf "%% Syntax error %d: %s\n", i, l;
+ status = 1;
+ exit;
+ }
+ function error(f,a) {
+ printf( ("%% error: " f), a);
+ status = 1;
+ exit;
+ }
+ # Ignore comment lines.
+ $1 != "#" && $1 != "@" {
+ # Generate the signature of the specific function, the predicate,
+ # the transform, the arguments to the transform function, the
+ # arguments to the predicate function, and the spelling of the
+ # function type.
+ signature = "";
+ predicate = "";
+ transform = "";
+ insn_code = "";
+ transform_args = "";
+ predicate_args = "";
+ function_type = "";
+ # First, consider the parameter types.
+ for (i = 2; $i != "=" && i < NF; i++) {
+ if ($i != "...") {
+ if (!betype[$i]) no_type($i);
+ signature = (signature " " $i);
+ predicate = (predicate "_" betype[$i]);
+ transform = (transform code[$i]);
+ transform_args = (transform_args ", ND_kid(t," i-1 ")");
+ predicate_args = (predicate_args " " becode[betype[$i]]);
+ if (function_type)
+ function_type = (function_type ", " bespell[betype[$i]]);
+ else
+ function_type = bespell[betype[$i]];
+ }
+ }
+ constraints = (transform "@");
+ # Check the syntax of the ops file.
+ if ($i != "=" || NF > i+PREDICATE || NF < i+CONFIGURE) no_equal(i,$0);
+ if (!betype[$(i+RESULT)]) no_type($(i+RESULT));
+ # Incorporate the result type.
+ if (i == 2) {
+ predicate = "_void";
+ function_type = "void";
+ }
+ signature = ($(i+SPECIFIC) signature);
+ predicate = sprintf("is_%s_func%s", betype[$(i+RESULT)], predicate);
+ predicate_args = (becode[betype[$(i+RESULT)]] predicate_args);
+ function_type = sprintf("(%s (*)(%s))", bespell[betype[$(i+RESULT)]], \
+ function_type);
+ if (substr(code[$(i+RESULT)], 1, 1) == "j") {
+ # Handle a jump asm. The code is expedted to be
+ # j={cc-bit-num}={cc-bit-value}[={r|d}]. The operation must have
+ # one operand if the code d is used and two operands otherwise.
+ # The transform function can implement the r code by reversing the
+ # two operands. In all cases, the first operand is a computed
+ # constant encoding both the bit number and the test.
+ n = split(code[$(i+RESULT)], jmp, "=");
+ if (jmp[n] == "d" && i != 3) error("%d operands", i-2);
+ if (jmp[n] != "d" && i != 4) error("%d operands", i-2);
+ if (jmp[n] == "r")
+ transform_args = ", ND_kid(t,2), ND_kid(t,1)";
+ transform_args = sprintf("%s(OP_VCMP%s%s", tree[i-2], \
+ toupper(jmp[3]), transform_args);
+ if (jmp[n] == "r")
+ transform = ("r" transform);
+ insn_code = sprintf("CODE_FOR_j_%d_%s_f%s", jmp[2], jmp[3], \
+ transform);
+ transform = sprintf("transform_j_%d_%s_f%s", jmp[2], jmp[3], \
+ transform);
+ } else {
+ transform_args = sprintf("%s(OP_%sASM%s%s", tree[i-2], \
+ toupper(code[$(i+RESULT)]), \
+ toupper(transform), transform_args);
+ insn_code = sprintf("CODE_FOR_%sf%s", code[$(i+RESULT)], transform);
+ transform = sprintf("transform_%sf%s", code[$(i+RESULT)], transform);
+ }
+ # Give a unique id to the signature
+ if (count[signature] == 0)
+ count[signature] = ++uid[$(i+SPECIFIC)];
+
+ # Compute the default instruction name
+ nf = split($(i+SPECIFIC), part, "_");
+ instruction = ("MOP_" part[nf]);
+
+ # Compute the insn_code, but use the instruction override if given.
+ if (NF >= i+INSTRUCTION)
+ instruction = $(i+INSTRUCTION);
+ if (insn_type[instruction])
+ insn_code = (insn_code "_" insn_type[instruction]);
+
+ # Allow the user to override the addressibility, instruction,
+ # const_ptr_ok, volatile_ptr_ok, transform, and predicate.
+ if (NF >= i+ADDRESSIBLE)
+ addressible = "";
+ else
+ addressible = "FALSE";
+
+ if (NF >= i+INSTRUCTION)
+ instruction = "";
+ else if (substr($1, 1, 4) == "vec_")
+ print "@ @3", instruction;
+
+ if (NF >= i+CONST_PTR_OK)
+ const_ptr_ok = "";
+ else
+ const_ptr_ok = "FALSE";
+
+ if (NF >= i+VOLATILE_PTR_OK)
+ volatile_ptr_ok = "";
+ else
+ volatile_ptr_ok = "FALSE";
+
+ if (NF >= i+TRANSFORM)
+ transform = "";
+ else
+ print "@ @1", transform, transform_args;
+
+ if (NF >= i+PREDICATE)
+ predicate = "";
+ else
+ print "@ @2", i-2, predicate, predicate_args, function_type;
+
+ if (optimize[$1])
+ optimize_method = optimize[$1];
+ else
+ optimize_method = "0";
+
+ # Record the line, addressibility, instruction, transform,
+ # predicate, and unique id.
+ line[n_lines++] = ($0 " " addressible " " instruction " " \
+ const_ptr_ok " " volatile_ptr_ok " " transform " " \
+ predicate " " insn_code " " constraints " " \
+ optimize_method " " count[signature]);
+ }
+ END {
+ if (status) exit;
+ # generic op1 op2 ... opn = result specific when configured
+ # addressable instruction const_ptr_ok volatile_ptr_ok
+ # transform predicate insn_code constraints optimize uid
+ SPECIFIC = 12
+ for (i = 1; i < n_lines; i++) {
+ nf = split(line[i], part);
+ specific = part[nf-SPECIFIC];
+
+ # Print the generic form.
+ printf "%s", part[1];
+ for (j = 2; j <= nf-SPECIFIC; j++) printf " %s", part[j];
+ if (uid[specific] > 1) printf ":%d", part[nf];
+ while (j < nf) printf " %s", part[j++];
+ printf "\n";
+
+ # Print the specific form.
+ printf "%s", specific;
+ for (j = 2; j <= nf-SPECIFIC; j++) printf " %s", part[j];
+ if (uid[specific] > 1) printf ":%d", part[nf];
+ while (j < nf) printf " %s", part[j++];
+ printf "\n";
+ }
+ }' | \
+
+# Strip out load and store qualifiers.
+sed -e 's/_load_op//g' -e 's/_store_op//g' | \
+
+# Sort the processed file and eliminate duplicates.
+sort -u | \
+
+# Append the count of each generic function to each line.
+awk 'function push() {
+ if (num)
+ for (i = 0; i < num; i++)
+ print line[i], num;
+ num = 0;
+ }
+ $1 == "@" {
+ print $0;
+ }
+ $1 != "@" {
+ if (last != $1)
+ push();
+ last = $1;
+ line[num++] = $0;
+ }
+ END {
+ push();
+ }' | \
+
+# Now compute the gperf input file.
+# Lines now have a fixed format
+# generic op1 ... opn = result specific instruction when configured
+# addressible const_ptr_ok volatile_ptr_ok transform predicate
+# insn_code constraints optimize count
+awk 'BEGIN {
+ MCC = '$MCC'
+ GCC = '$GCC'
+ i = 0;
+ COUNT = i++
+ OPTIMIZE = i++
+ CONSTRAINTS = i++
+ INSN_CODE = i++
+ PREDICATE = i++
+ TRANSFORM = i++
+ VOLATILE_PTR_OK = i++
+ CONST_PTR_OK = i++
+ INSTRUCTION = i++
+ ADDRESSIBLE = i++
+ CONFIGURED = i++
+ WHEN = i++
+ SPECIFIC = i++
+ RESULT = i++
+ EQ = i++
+ OPN = i++
+ NARGS = i++
+ if (MCC) {
+ print "%{";
+ print "/* Command-line: '"$gperf"' */";
+ MAXARGS = 5
+ }
+ if (GCC)
+ MAXARGS = 3
+ }
+ function write_test(tree, type, num) {
+ if (type == "PTR") {
+ printf "\n && TY_kind(%s) == KIND_POINTER", tree;
+ } else if (type == "I5") {
+ printf "\n && is_integer_type(%s)", tree;
+ printf "\n && Is_Const(ND_kid0(ND_kid(t,%d)), &tc)", num;
+ printf "\n && ((UINT32)Targ_To_Host(tc) + 16) < 32";
+ } else if (type == "U5") {
+ printf "\n && is_integer_type(%s)", tree;
+ printf "\n && Is_Const(ND_kid0(ND_kid(t,%d)), &tc)", num;
+ printf "\n && (UINT32)Targ_To_Host(tc) < 32";
+ } else if (type == "U4") {
+ printf "\n && is_integer_type(%s)", tree;
+ printf "\n && Is_Const(ND_kid0(ND_kid(t,%d)), &tc)", num;
+ printf "\n && (UINT32)Targ_To_Host(tc) < 16";
+ } else if (type == "U2") {
+ printf "\n && is_integer_type(%s)", tree;
+ printf "\n && Is_Const(ND_kid0(ND_kid(t,%d)), &tc)", num;
+ printf "\n && (UINT32)Targ_To_Host(tc) < 4";
+ } else if (type == "BETYPE_U4" || type == "BETYPE_I4") {
+ printf "\n && is_integer_type(%s)", tree;
+ } else {
+ printf "\n && Similar_Types(%s,", tree;
+ printf "\n\t\t Be_Type_Tbl(%s), IGNORE_QUALIFIERS)", type;
+ }
+ }
+ $1 == "@" {
+ if (MCC) {
+ if ($2 == "@1") {
+ # Write the predicate function from the given parameters.
+ # The format is:
+ # @ @1 transform_ifii Make_3tree(OP_IASMII, ND_kid(t,1), ND_kid(t,2)
+ print "";
+ print "/*ARGSUSED*/";
+ print "static void";
+ print $3 "(ND *func, ND *parent, ND *t, struct builtin *self)";
+ print "{";
+ printf " *t = *%s", $4;
+ for (i = 5; i <= NF; i++) printf " %s", $i;
+ print ",";
+ if (split($3,jmp,"_") == 5 && jmp[2] == "j")
+ printf "\t\t MK_I4CONST_ND((self->data << 5) + %d));\n", \
+ jmp[3];
+ else
+ print "\t\t MK_I4CONST_ND(self->data));";
+
+ print " Is_True(self->data > 0, (\"No implementation for %s\", self->name));";
+ print "}";
+ } else if ($2 == "@2") {
+ # Write the transform function from the given parameters.
+ # The format is:
+ # @ @2 2 is_int_func_int_int BETYPE_I4 BETYPE_I4 BETYPE_I4
+ # (int (*)(int, int))
+ print "";
+ print "/*ARGSUSED*/";
+ print "static BOOL";
+ print $4 "(ND *func, ND *parent, ND *t, struct builtin *self)";
+ print "{";
+ print " TCON tc;";
+ printf " if (ND_nkids(t) == %d", $3+1;
+ write_test("ST_type(ND_dec(func))", $5, "");
+ for (i = 1; i <= $3; i++) {
+ printf "\n && ND_name(ND_kid(t,%d)) == TO_VAL", i;
+ write_test(sprintf("The_Tree_Type(ND_kid(t,%d))", i), $(i+5), i);
+ }
+ print ")";
+ print " return TRUE;";
+ print " Error_Prt_Line (ND_linenum(t), ec_builtin_function_type, self->name,";
+ i = $3+6;
+ printf "\t\t \"%s", $i;
+ while (++i <= NF) printf " %s", $i;
+ print "\");";
+ print " return FALSE;";
+ print "}";
+ } else if ($2 == "@3") {
+ if (once++ == 0) printf "\n#ifndef HAVE_ALTIVEC\n";
+ printf "#define %s -1\n", $3;
+ } else {
+ if (once && twice++ == 0) printf "#endif /* HAVE_ALTIVEC */\n\n";
+ printf "extern struct a_type *T_%s;\n", $2;
+ }
+ }
+ next;
+ }
+ $1 == "%" {
+ print $0;
+ status = 1;
+ exit;
+ }
+ {
+ # Compute the signature of the generic function.
+ signature=$1;
+ for (i = 2; i <= NF-OPN; i++) {
+ if ($i != "...")
+ signature=(signature " " $i);
+ }
+
+ # Ensure that the signature is unique.
+ if (signature_line[signature]) {
+ print "Ambiguous signatures:";
+ print $0;
+ print line[signature_line[signature]];
+ }
+ signature_line[signature] = n_lines;
+
+ # Require that overloaded functions have the same attributes:
+ # number of arguments, when, configured, and addressible.
+ if (same_arg_count[$1] && same_arg_count[$1] != NF)
+ printf "%% number of arguments for %s varies: %d and %d\n", \
+ $1, NF-NARGS, same_arg_count[$1]-NARGS;
+ same_arg_count[$1] = NF;
+
+ if (same_when[$1] && same_when[$1] != $(NF-WHEN))
+ printf "%% when for %s varies: %s and %s\n", \
+ $1, $(NF-WHEN), same_when[$1];
+ same_when[$1] = $(NF-WHEN);
+
+ if (same_configured[$1] && same_configured[$1] != $(NF-CONFIGURED))
+ printf "%% configured for %s varies: %s and %s\n", \
+ $1, $(NF-CONFIGURED), same_configured[$1];
+ same_configured[$1] = $(NF-CONFIGURED);
+
+ if (same_addressible[$1] && same_addressible[$1] != $(NF-ADDRESSIBLE))
+ printf "%% addressible for %s varies: %s and %s\n", \
+ $1, $(NF-ADDRESSIBLE), same_addressible[$1];
+ else if (same_addressible[$1] && same_addressible[$1] != "FALSE")
+ printf "%% Overloaded function %s is addressible\n", $1
+ same_addressible[$1] = $(NF-ADDRESSIBLE);
+
+ # Record the line.
+ line[n_lines++] = $0;
+ }
+ function push(fcn, n) {
+ if (last) printf "};\n";
+ # Gcc3: declare as arrays of const pointers
+ if (fcn) printf "static const struct builtin *const O_%s[%d] = {\n", fcn, n;
+ last = fcn;
+ }
+ function mangle(name) {
+ if (split(name, names, ":") == 1)
+ return ("B_" names[1]);
+ return ("B" names[2] "_" names[1]);
+ }
+ END {
+ if (status) exit;
+
+ # Gcc3: Mark file as Apple local
+ printf "/* APPLE LOCAL file AltiVec */\n";
+ printf "/* This file is generated by ops-to-gp. Do not edit. */\n\n";
+ printf "/* To regenerate execute:\n";
+ printf " ops-to-gp -gcc vec.ops builtin.ops\n";
+ printf " with the current directory being gcc/config/rs6000. */\n\n";
+
+ # Output the description of each specific function.
+ uid = 0;
+ if (MCC) print "";
+ for (i = 0; i < n_lines; i++) {
+ nf = split(line[i], part);
+ fcn = part[nf-SPECIFIC];
+ if (!done[fcn]) {
+ printf "static const struct builtin %s = {", mangle(fcn);
+ if (GCC) printf " {";
+ ellipsis = 1;
+ for (j = 2; j <= nf-OPN; j++)
+ if (part[j] != "...") {
+ printf " &T_%s,", part[j];
+ } else {
+ ellipsis = -1;
+ printf " NULL,";
+ }
+ while (j++ <= MAXARGS+1)
+ printf " NULL,";
+ instruction = part[nf-INSTRUCTION];
+ if (substr(instruction, 1, 4) == "MOP_")
+ instruction = substr(instruction, 5);
+ if (substr(instruction, length(instruction)) == "D")
+ instruction = (substr(instruction, 1, length(instruction) - 1) ".");
+ # Gcc3: Prefix each specific instruction with a "*"
+ if (match (instruction, "^[a-zA-Z]") > 0)
+ instruction = "*" instruction;
+ if (GCC) printf " },";
+ if (GCC) printf " \"%s\",", substr(part[nf-CONSTRAINTS], 1, length(part[nf-CONSTRAINTS]) - 1);
+ printf " &T_%s,", part[nf-RESULT];
+ if (MCC) printf " \"%s\",", part[nf-SPECIFIC];
+ printf " %d,", ellipsis * (nf - NARGS);
+ if (MCC) {
+ printf " %s,", part[nf-WHEN];
+ printf " %s,", part[nf-ADDRESSIBLE];
+ printf " %s,", part[nf-CONST_PTR_OK];
+ printf " %s,", part[nf-VOLATILE_PTR_OK];
+ printf " %s,", part[nf-CONFIGURED];
+ printf " %s,", part[nf-INSTRUCTION];
+ printf " %s,", part[nf-TRANSFORM];
+ printf " %s", part[nf-PREDICATE];
+ } else if (GCC) {
+ printf " %s,", part[nf-CONST_PTR_OK];
+ printf " %s,", part[nf-VOLATILE_PTR_OK];
+ printf " %s,", part[nf-OPTIMIZE];
+ printf " \"%s\",", part[nf-SPECIFIC];
+ printf " \"%s\",", instruction;
+ printf " %s,", part[nf-INSN_CODE];
+ printf " B_UID(%d)", uid++;
+ }
+ printf " };\n";
+ }
+ done[fcn] = 1;
+ }
+
+ if (GCC) printf "#define LAST_B_UID B_UID(%d)\n", uid;
+
+ if (GCC) {
+ # Output the description of each specific function.
+ print "";
+ uid = 0;
+ for (i in done)
+ done[i] = "";
+ print "const struct builtin * const Builtin[] = {"
+ for (i = 0; i < n_lines; i++) {
+ nf = split(line[i], part);
+ fcn = part[nf-SPECIFIC];
+ if (!done[fcn]) {
+ printf " &%s,\n", mangle(fcn);
+ }
+ done[fcn] = 1;
+ }
+ print "};"
+ }
+
+ # Output the overload tables for each generic function.
+ print "";
+ for (i = 0; i < n_lines; i++) {
+ nf = split(line[i], part);
+ fcn = part[1];
+ if (last != fcn)
+ push(fcn, part[nf]);
+ printf " &%s,\n", mangle(part[nf-SPECIFIC]);
+ }
+ push("", 0);
+
+ # Output the builtin function structure.
+ print "";
+ if (MCC) {
+ print "%}";
+ print "struct overloadx {";
+ print " char *name;";
+ print " int fcns;";
+ print " int args;";
+ print " struct builtin **functions;";
+ print "};";
+ print "%%";
+ } else if (GCC) {
+ print "const struct overloadx Overload[] = {";
+ }
+
+ # Output the builtin function list and data.
+ uid = 0;
+ for (i = 0; i < n_lines; i++) {
+ nf = split(line[i], part);
+ fcn = part[1];
+ args = nf - NARGS;
+ if (part[nf-OPN] == "...") args = -args;
+ if (last != fcn) {
+ if (MCC) printf "%s, %d, %d, O_%s\n", fcn, part[nf], args, fcn;
+ if (GCC) printf " { \"%s\", %d, %d, O_%s, O_UID(%d) },\n", \
+ fcn, part[nf], args, fcn, uid++;
+ }
+ last = fcn;
+ }
+
+ if (GCC) {
+ print " { NULL, 0, 0, NULL, 0 }"
+ print "};";
+
+ printf "#define LAST_O_UID O_UID(%d)\n", uid;
+ }
+
+ }' > $output.$suffix
+
+if [ "$MCC" = "1" ] ; then
+ $gperf > $output.h
+fi
diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c
index 5d36d5d28b3..a231e1756b1 100644
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -30,6 +30,17 @@
#include "c-pragma.h"
#include "errors.h"
#include "tm_p.h"
+/* APPLE LOCAL begin AltiVec */
+#include "c-common.h"
+#include "cpplib.h"
+#include "../libcpp/internal.h"
+#include "target.h"
+#include "options.h"
+
+static cpp_hashnode *altivec_categorize_keyword (const cpp_token *);
+static void init_vector_keywords (cpp_reader *pfile);
+/* APPLE LOCAL end AltiVec */
+
/* Handle the machine specific pragma longcall. Its syntax is
@@ -78,6 +89,138 @@ rs6000_pragma_longcall (cpp_reader *pfile ATTRIBUTE_UNUSED)
#define builtin_define(TXT) cpp_define (pfile, TXT)
#define builtin_assert(TXT) cpp_assert (pfile, TXT)
+/* APPLE LOCAL begin AltiVec */
+/* Keep the AltiVec keywords handy for fast comparisons. */
+static GTY(()) cpp_hashnode *__vector_keyword;
+static GTY(()) cpp_hashnode *vector_keyword;
+static GTY(()) cpp_hashnode *__pixel_keyword;
+static GTY(()) cpp_hashnode *pixel_keyword;
+static GTY(()) cpp_hashnode *__bool_keyword;
+static GTY(()) cpp_hashnode *bool_keyword;
+static GTY(()) cpp_hashnode *_Bool_keyword;
+
+static GTY(()) cpp_hashnode *expand_bool_pixel; /* Preserved across calls. */
+
+static cpp_hashnode *
+altivec_categorize_keyword (const cpp_token *tok)
+{
+ if (tok->type == CPP_NAME)
+ {
+ cpp_hashnode *ident = tok->val.node;
+
+ if (ident == vector_keyword || ident == __vector_keyword)
+ return __vector_keyword;
+
+ if (ident == pixel_keyword || ident == __pixel_keyword)
+ return __pixel_keyword;
+
+ if (ident == bool_keyword || ident == _Bool_keyword
+ || ident == __bool_keyword)
+ return __bool_keyword;
+
+ return ident;
+ }
+
+ return 0;
+}
+
+/* Called to decide whether a conditional macro should be expanded.
+ Since we have exactly one such macro (i.e, 'vector'), we do not
+ need to examine the 'tok' parameter. */
+
+cpp_hashnode *
+rs6000_macro_to_expand (cpp_reader *pfile, const cpp_token *tok)
+{
+ static bool vector_keywords_init = false;
+ cpp_hashnode *expand_this = tok->val.node;
+ cpp_hashnode *ident;
+
+ if (!vector_keywords_init)
+ {
+ init_vector_keywords (pfile);
+ vector_keywords_init = true;
+ }
+
+ ident = altivec_categorize_keyword (tok);
+
+ if (ident == __vector_keyword)
+ {
+ tok = _cpp_peek_token (pfile, 0);
+ ident = altivec_categorize_keyword (tok);
+
+ if (ident == __pixel_keyword || ident == __bool_keyword)
+ {
+ expand_this = __vector_keyword;
+ expand_bool_pixel = ident;
+ }
+ else if (ident)
+ {
+ enum rid rid_code = (enum rid)(ident->rid_code);
+ if (ident->type == NT_MACRO)
+ {
+ (void)cpp_get_token (pfile);
+ tok = _cpp_peek_token (pfile, 0);
+ ident = altivec_categorize_keyword (tok);
+ rid_code = (enum rid)(ident->rid_code);
+ }
+
+ if (rid_code == RID_UNSIGNED || rid_code == RID_LONG
+ || rid_code == RID_SHORT || rid_code == RID_SIGNED
+ || rid_code == RID_INT || rid_code == RID_CHAR
+ || rid_code == RID_FLOAT)
+ {
+ expand_this = __vector_keyword;
+ /* If the next keyword is bool or pixel, it
+ will need to be expanded as well. */
+ tok = _cpp_peek_token (pfile, 1);
+ ident = altivec_categorize_keyword (tok);
+
+ if (ident == __pixel_keyword || ident == __bool_keyword)
+ expand_bool_pixel = ident;
+ }
+ }
+ }
+ else if (expand_bool_pixel
+ && (ident == __pixel_keyword || ident == __bool_keyword))
+ {
+ expand_this = expand_bool_pixel;
+ expand_bool_pixel = 0;
+ }
+
+ return expand_this;
+}
+
+static void
+init_vector_keywords (cpp_reader *pfile)
+{
+ /* Keywords without two leading underscores are context-sensitive, and hence
+ implemented as conditional macros, controlled by the rs6000_macro_to_expand()
+ function above. */
+ __vector_keyword = cpp_lookup (pfile, DSC ("__vector"));
+ __vector_keyword->flags |= NODE_CONDITIONAL;
+
+ __pixel_keyword = cpp_lookup (pfile, DSC ("__pixel"));
+ __pixel_keyword->flags |= NODE_CONDITIONAL;
+
+ __bool_keyword = cpp_lookup (pfile, DSC ("__bool"));
+ __bool_keyword->flags |= NODE_CONDITIONAL;
+
+ vector_keyword = cpp_lookup (pfile, DSC ("vector"));
+ vector_keyword->flags |= NODE_CONDITIONAL;
+
+ pixel_keyword = cpp_lookup (pfile, DSC ("pixel"));
+ pixel_keyword->flags |= NODE_CONDITIONAL;
+
+ _Bool_keyword = cpp_lookup (pfile, DSC ("_Bool"));
+ _Bool_keyword->flags |= NODE_CONDITIONAL;
+
+ bool_keyword = cpp_lookup (pfile, DSC ("bool"));
+ bool_keyword->flags |= NODE_CONDITIONAL;
+ return;
+}
+
+/* APPLE LOCAL end AltiVec */
+
void
rs6000_cpu_cpp_builtins (cpp_reader *pfile)
{
@@ -100,6 +243,25 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfile)
builtin_define ("__vector=__attribute__((altivec(vector__)))");
builtin_define ("__pixel=__attribute__((altivec(pixel__))) unsigned short");
builtin_define ("__bool=__attribute__((altivec(bool__))) unsigned");
+
+ /* APPLE LOCAL begin AltiVec */
+ builtin_define ("vector=vector");
+ builtin_define ("pixel=pixel");
+ builtin_define ("_Bool=_Bool");
+ builtin_define ("bool=bool");
+ init_vector_keywords (pfile);
+
+ /* Indicate that the compiler supports Apple AltiVec syntax,
+ including context-sensitive keywords. */
+ if (rs6000_altivec_pim)
+ {
+ builtin_define ("__APPLE_ALTIVEC__");
+ builtin_define ("vec_step(T)=(sizeof (__typeof__(T)) / sizeof (__typeof__(T) __attribute__((altivec(element__)))))");
+ }
+
+ /* Enable context-sensitive macros. */
+ cpp_get_callbacks (pfile)->macro_to_expand = rs6000_macro_to_expand;
+ /* APPLE LOCAL end AltiVec */
}
if (TARGET_SPE)
builtin_define ("__SPE__");
diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h
index 4a4fcde8e2d..3562c7c5dab 100644
--- a/gcc/config/rs6000/rs6000-protos.h
+++ b/gcc/config/rs6000/rs6000-protos.h
@@ -47,6 +47,8 @@ extern int reg_or_neg_short_operand (rtx, enum machine_mode);
extern int reg_or_aligned_short_operand (rtx, enum machine_mode);
extern int reg_or_u_short_operand (rtx, enum machine_mode);
extern int reg_or_cint_operand (rtx, enum machine_mode);
+/* APPLE LOCAL radar 3869444 (also in mainline) */
+extern int scc_operand (rtx, enum machine_mode);
extern int reg_or_arith_cint_operand (rtx, enum machine_mode);
extern int reg_or_add_cint64_operand (rtx, enum machine_mode);
extern int reg_or_sub_cint64_operand (rtx, enum machine_mode);
@@ -84,6 +86,10 @@ extern int call_operand (rtx, enum machine_mode);
extern int current_file_function_operand (rtx, enum machine_mode);
extern int input_operand (rtx, enum machine_mode);
extern int small_data_operand (rtx, enum machine_mode);
+/* APPLE LOCAL begin 4119059 */
+extern int s5bit_cint_operand (rtx, enum machine_mode);
+extern int u5bit_cint_operand (rtx, enum machine_mode);
+/* APPLE LOCAL end 4119059 */
extern int s8bit_cint_operand (rtx, enum machine_mode);
extern bool legitimate_constant_pool_address_p (rtx);
extern int expand_block_clear (rtx[]);
@@ -121,7 +127,7 @@ extern enum rtx_code rs6000_reverse_condition (enum machine_mode,
extern void rs6000_emit_sCOND (enum rtx_code, rtx);
extern void rs6000_emit_cbranch (enum rtx_code, rtx);
extern char * output_cbranch (rtx, const char *, int, rtx);
-extern char * output_e500_flip_eq_bit (rtx, rtx);
+extern char * output_e500_flip_gt_bit (rtx, rtx);
extern rtx rs6000_emit_set_const (rtx, enum machine_mode, rtx, int);
extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx);
extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx);
@@ -206,12 +212,21 @@ extern int rs6000_tls_symbol_ref (rtx, enum machine_mode);
extern void rs6000_output_dwarf_dtprel (FILE*, int, rtx);
extern int rs6000_hard_regno_nregs (int, enum machine_mode);
extern void rs6000_conditional_register_usage (void);
+/* APPLE LOCAL AltiVec */
+extern tree rs6000_fold_builtin (tree, bool);
+/* APPLE LOCAL CW asm blocks */
+extern const char *rs6000_cw_asm_register_name (const char *, char *);
/* Declare functions in rs6000-c.c */
extern void rs6000_pragma_longcall (struct cpp_reader *);
extern void rs6000_cpu_cpp_builtins (struct cpp_reader *);
+/* APPLE LOCAL begin AltiVec */
+extern struct cpp_hashnode *rs6000_macro_to_expand (struct cpp_reader *,
+ const struct cpp_token *);
+/* APPLE LOCAL end AltiVec */
+
#if TARGET_MACHO
char *output_call (rtx, rtx *, int, int);
#endif
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 267a16131d1..ccb9004b7fc 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -53,6 +53,8 @@
#include "cfglayout.h"
#include "sched-int.h"
#include "tree-gimple.h"
+/* APPLE LOCAL mainline 2005-04-14 */
+#include "intl.h"
#if TARGET_XCOFF
#include "xcoffout.h" /* get declarations of xcoff_*_section_name */
#endif
@@ -60,6 +62,17 @@
#include "gstab.h" /* for N_SLINE */
#endif
+/* APPLE LOCAL begin pascal strings */
+#include "../../libcpp/internal.h"
+extern struct cpp_reader* parse_in;
+/* APPLE LOCAL end pascal strings */
+
+/* APPLE LOCAL begin Macintosh alignment */
+#ifndef TARGET_ALIGN_MAC68K
+#define TARGET_ALIGN_MAC68K 0
+#endif
+/* APPLE LOCAL end Macintosh alignment */
+
#ifndef TARGET_NO_PROTOTYPE
#define TARGET_NO_PROTOTYPE 0
#endif
@@ -257,6 +270,10 @@ static GTY(()) tree pixel_V8HI_type_node; /* __vector __pixel */
int rs6000_warn_altivec_long = 1; /* On by default. */
const char *rs6000_warn_altivec_long_switch;
+/* APPLE LOCAL begin AltiVec */
+int rs6000_altivec_pim = 0;
+const char *rs6000_altivec_pim_switch;
+/* APPLE LOCAL end AltiVec */
const char *rs6000_traceback_name;
static enum {
@@ -586,6 +603,12 @@ struct processor_costs ppc8540_cost = {
COSTS_N_INSNS (29), /* ddiv */
};
+/* APPLE LOCAL begin AltiVec */
+/* NB: We do not store the PIM operations/predicates in the
+ VECTOR_BUILTIN_FNS array. */
+static GTY(()) tree vector_builtin_fns[ALTIVEC_PIM__FIRST];
+/* APPLE LOCAL end AltiVec */
+
/* Instruction costs on POWER4 and POWER5 processors. */
static const
struct processor_costs power4_cost = {
@@ -628,6 +651,8 @@ static bool macho_lo_sum_memory_operand (rtx x, enum machine_mode mode);
static bool legitimate_lo_sum_address_p (enum machine_mode, rtx, int);
static struct machine_function * rs6000_init_machine_status (void);
static bool rs6000_assemble_integer (rtx, unsigned int, int);
+/* APPLE LOCAL mainline */
+static bool no_global_regs_above (int);
#ifdef HAVE_GAS_HIDDEN
static void rs6000_assemble_visibility (tree, int);
#endif
@@ -671,6 +696,8 @@ static void rs6000_xcoff_file_end (void);
#endif
#if TARGET_MACHO
static bool rs6000_binds_local_p (tree);
+/* APPLE LOCAL pragma reverse_bitfield */
+static bool rs6000_reverse_bitfields_p (tree);
#endif
static int rs6000_variable_issue (FILE *, int, rtx, int);
static bool rs6000_rtx_costs (rtx, int, int, int *);
@@ -724,6 +751,16 @@ static rtx altivec_expand_predicate_builtin (enum insn_code,
const char *, tree, rtx);
static rtx altivec_expand_lv_builtin (enum insn_code, tree, rtx);
static rtx altivec_expand_stv_builtin (enum insn_code, tree);
+/* APPLE LOCAL begin AltiVec */
+static tree altivec_cov_rt_12 (tree, tree);
+static tree altivec_cov_rt_2p (tree);
+static tree altivec_cov_rt_1d (tree);
+static tree altivec_cov_rt_1h (tree);
+static struct altivec_pim_info *altivec_ovl_resolve (struct altivec_pim_info *,
+ tree, tree);
+static tree altivec_convert_args (tree, tree);
+/* APPLE LOCAL end AltiVec */
+
static void rs6000_parse_abi_options (void);
static void rs6000_parse_alignment_option (void);
static void rs6000_parse_tls_size_option (void);
@@ -748,17 +785,32 @@ static int rs6000_get_some_local_dynamic_name_1 (rtx *, void *);
static rtx rs6000_complex_function_value (enum machine_mode);
static rtx rs6000_spe_function_arg (CUMULATIVE_ARGS *,
enum machine_mode, tree);
-static rtx rs6000_darwin64_function_arg (CUMULATIVE_ARGS *,
- enum machine_mode, tree, int);
+static void rs6000_darwin64_record_arg_advance_flush (CUMULATIVE_ARGS *,
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ HOST_WIDE_INT, int);
+static void rs6000_darwin64_record_arg_advance_recurse (CUMULATIVE_ARGS *,
+ tree, HOST_WIDE_INT);
+static void rs6000_darwin64_record_arg_flush (CUMULATIVE_ARGS *,
+ HOST_WIDE_INT,
+ rtx[], int *);
+static void rs6000_darwin64_record_arg_recurse (CUMULATIVE_ARGS *,
+ tree, HOST_WIDE_INT,
+ rtx[], int *);
+static rtx rs6000_darwin64_record_arg (CUMULATIVE_ARGS *, tree, int, bool);
static rtx rs6000_mixed_function_arg (enum machine_mode, tree, int);
static void rs6000_move_block_from_reg (int regno, rtx x, int nregs);
static void setup_incoming_varargs (CUMULATIVE_ARGS *,
enum machine_mode, tree,
int *, int);
+/* APPLE LOCAL begin Altivec */
+static bool skip_vec_args (tree, int, int*);
+/* APPLE LOCAL end Altivec */
static bool rs6000_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode,
tree, bool);
static int rs6000_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode,
tree, bool);
+/* APPLE LOCAL mainline 2005-04-14 */
+static const char *invalid_arg_for_unprototyped_fn (tree, tree, tree);
#if TARGET_MACHO
static void macho_branch_islands (void);
static void add_compiler_branch_island (tree, tree, int);
@@ -936,6 +988,17 @@ static const char alt_reg_names[][8] =
#undef TARGET_INIT_BUILTINS
#define TARGET_INIT_BUILTINS rs6000_init_builtins
+
+/* APPLE LOCAL begin AltiVec */
+/* If we are running in Apple AltiVec (as opposed to FSF AltiVec) mode,
+ we will need to handle the Motorola PIM instructions ourselves instead
+ of relying on <altivec.h>. The rs6000_fold_builtin() routine will
+ rewrite the PIM instructions into the __builtin... (AldyVec)
+ instructions. */
+#undef TARGET_FOLD_BUILTIN
+#define TARGET_FOLD_BUILTIN rs6000_fold_builtin
+/* APPLE LOCAL end AltiVec */
+
#undef TARGET_EXPAND_BUILTIN
#define TARGET_EXPAND_BUILTIN rs6000_expand_builtin
@@ -948,6 +1011,10 @@ static const char alt_reg_names[][8] =
#if TARGET_MACHO
#undef TARGET_BINDS_LOCAL_P
#define TARGET_BINDS_LOCAL_P rs6000_binds_local_p
+/* APPLE LOCAL begin pragma reverse_bitfields */
+#undef TARGET_REVERSE_BITFIELDS_P
+#define TARGET_REVERSE_BITFIELDS_P rs6000_reverse_bitfields_p
+/* APPLE LOCAL end pragma reverse_bitfields */
#endif
#undef TARGET_ASM_OUTPUT_MI_THUNK
@@ -983,6 +1050,11 @@ static const char alt_reg_names[][8] =
#undef TARGET_SETUP_INCOMING_VARARGS
#define TARGET_SETUP_INCOMING_VARARGS setup_incoming_varargs
+/* APPLE LOCAL begin Altivec */
+#undef TARGET_SKIP_VEC_ARGS
+#define TARGET_SKIP_VEC_ARGS skip_vec_args
+/* APPLE LOCAL end Altivec */
+
/* Always strict argument naming on rs6000. */
#undef TARGET_STRICT_ARGUMENT_NAMING
#define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_true
@@ -1008,6 +1080,11 @@ static const char alt_reg_names[][8] =
#undef TARGET_VECTOR_MODE_SUPPORTED_P
#define TARGET_VECTOR_MODE_SUPPORTED_P rs6000_vector_mode_supported_p
+/* APPLE LOCAL begin mainline 2005-04-14 */
+
+#undef TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN
+#define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN invalid_arg_for_unprototyped_fn
+/* APPLE LOCAL end mainline 2005-04-14 */
/* MPC604EUM 3.5.2 Weak Consistency between Multiple Processors
The PowerPC architecture requires only weak consistency among
@@ -1090,6 +1167,8 @@ rs6000_override_options (const char *default_cpu)
size_t i, j;
struct rs6000_cpu_select *ptr;
int set_masks;
+ /* APPLE LOCAL -fast */
+ enum processor_type mcpu_cpu = PROCESSOR_POWER4;
/* Simplifications for entries below. */
@@ -1173,6 +1252,13 @@ rs6000_override_options (const char *default_cpu)
const size_t ptt_size = ARRAY_SIZE (processor_target_table);
+ /* APPLE LOCAL begin -mmultiple/-mstring fixme */
+ /* Save current -mmultiple/-mno-multiple status. */
+ int multiple = TARGET_MULTIPLE;
+ /* Save current -mstring/-mno-string status. */
+ int string = TARGET_STRING;
+ /* APPLE LOCAL end -mmultiple/-mstring fixme */
+
/* Some OSs don't support saving the high part of 64-bit registers on
context switch. Other OSs don't support saving Altivec registers.
On those OSs, we don't touch the MASK_POWERPC64 or MASK_ALTIVEC
@@ -1198,14 +1284,25 @@ rs6000_override_options (const char *default_cpu)
set_masks &= ~MASK_ALTIVEC;
#endif
- /* Don't override these by the processor default if given explicitly. */
- set_masks &= ~(target_flags_explicit
- & (MASK_MULTIPLE | MASK_STRING | MASK_SOFT_FLOAT));
+ /* Don't override by the processor default if given explicitly. */
+ set_masks &= ~target_flags_explicit;
/* Identify the processor type. */
rs6000_select[0].string = default_cpu;
rs6000_cpu = TARGET_POWERPC64 ? PROCESSOR_DEFAULT64 : PROCESSOR_DEFAULT;
+ /* APPLE LOCAL begin -fast */
+ if (flag_fast || flag_fastf || flag_fastcp)
+ {
+ if (rs6000_select[1].string == (char *)0 && rs6000_select[2].string == (char *)0)
+ {
+ /* -mcpu and -mtune unspecified. Assume both are G5 */
+ set_target_switch ("tune=G5");
+ set_target_switch ("cpu=G5");
+ }
+ }
+ /* APPLE LOCAL end -fast */
+
for (i = 0; i < ARRAY_SIZE (rs6000_select); i++)
{
ptr = &rs6000_select[i];
@@ -1222,6 +1319,9 @@ rs6000_override_options (const char *default_cpu)
target_flags &= ~set_masks;
target_flags |= (processor_target_table[j].target_enable
& set_masks);
+ /* APPLE LOCAL begin -fast */
+ mcpu_cpu = processor_target_table[j].processor;
+ /* APPLE LOCAL end -fast */
}
break;
}
@@ -1231,13 +1331,115 @@ rs6000_override_options (const char *default_cpu)
}
}
+ /* APPLE LOCAL begin AltiVec */
+ /* If '-maltivec' has been specified or if anything else turns on
+ AltiVec, enable AltiVec optimizations, even if previously turned
+ off via '-faltivec'. */
+ if (TARGET_ALTIVEC)
+ flag_disable_opts_for_faltivec = 0;
+
+ /* Handle -m(no-)pim-altivec. */
+ if (rs6000_altivec_pim_switch)
+ {
+ const char *base = rs6000_altivec_pim_switch - strlen ("pim-altivec");;
+ while (base[-1] != 'm') base--;
+ if (*rs6000_altivec_pim_switch != '\0')
+ error ("invalid option `%s'", base);
+
+ rs6000_altivec_pim = (base[0] != 'n');
+ /* If '-faltivec' or '-mpim-altivec' has been specified and we
+ have not already selected AltiVec codegen, disable certain
+ unsafe AltiVec optimizations so that the resulting binary can
+ run on a G3. These may be re-enabled by subsequently
+ specifying '-maltivec' or '-mcpu=xxx', where xxx supports
+ AltiVec instructions. */
+ if (rs6000_altivec_pim)
+ {
+ if (! TARGET_ALTIVEC)
+ {
+ flag_disable_opts_for_faltivec = 1;
+ /* APPLE LOCAL radar 4161346 */
+ target_flags |= (MASK_ALTIVEC | MASK_PIM_ALTIVEC);
+ }
+ }
+ else
+ target_flags &= ~MASK_ALTIVEC;
+ }
+ /* APPLE LOCAL end AltiVec */
+
+ /* APPLE LOCAL begin -fast */
+ if (flag_fast || flag_fastf || flag_fastcp)
+ {
+ flag_gcse_sm = 1;
+ rs6000_sched_insert_nops = sched_finish_regroup_exact;
+ flag_unroll_loops = 1;
+ flag_tree_loop_linear = 1;
+ flag_strict_aliasing = 1;
+ flag_schedule_interblock = 1;
+ flag_gcse_las = 1;
+ align_jumps_max_skip = 15;
+ align_loops_max_skip = 15;
+ align_functions = 16;
+ align_loops = 16;
+ align_jumps = 16;
+ set_fast_math_flags (1);
+ flag_reorder_blocks = 1;
+ if (flag_branch_probabilities && !flag_exceptions)
+ flag_reorder_blocks_and_partition = 1;
+ if (!flag_pic)
+ set_target_switch ("dynamic-no-pic");
+
+ if (mcpu_cpu == PROCESSOR_POWER4)
+ {
+ set_target_switch ("powerpc-gpopt");
+ set_target_switch ("powerpc64");
+ }
+ if (flag_fast || flag_fastcp)
+ /* This doesn't work with NAG Fortran output. The gcc 3.5 C++ libraries
+ have been adjusted so that it now works with them. */
+ set_target_switch ("align-natural");
+ if (flag_fastf)
+ /* This applies Fortran argument semantics; for NAG Fortran output only. */
+ flag_argument_noalias = 2;
+ /* IMI flags */
+ disable_typechecking_for_spec_flag = 1;
+ flag_unit_at_a_time = 1;
+ }
+ /* APPLE LOCAL end -fast */
+
+ /* APPLE LOCAL rs6000_init_hard_regno_mode_ok must come AFTER setting of -fast flags */
+ rs6000_init_hard_regno_mode_ok ();
+
if (TARGET_E500)
rs6000_isel = 1;
+ /* APPLE LOCAL begin Disable string insns with -Os on Darwin (radar 3509006) */
/* If we are optimizing big endian systems for space, use the load/store
- multiple and string instructions. */
+ multiple instructions. */
if (BYTES_BIG_ENDIAN && optimize_size)
- target_flags |= ~target_flags_explicit & (MASK_MULTIPLE | MASK_STRING);
+ target_flags |= ~target_flags_explicit & MASK_MULTIPLE;
+
+ /* If we are optimizing big endian systems for space, use the
+ string instructions. But do not do this for Darwin, as the
+ kernel can't properly support some hardware that doesn't have
+ these instructions. It's not clear that the compiler is the
+ right place to fix this, but that's how it is for now. See
+ *extensive* discussion in Radar 3509006. */
+ if (BYTES_BIG_ENDIAN && optimize_size && DEFAULT_ABI != ABI_DARWIN)
+ target_flags |= MASK_STRING;
+ /* APPLE LOCAL end Disable string insns with -Os on Darwin (radar 3509006) */
+
+ /* APPLE LOCAL begin -mmultiple/-mstring fixme */
+ /* If -mmultiple or -mno-multiple was explicitly used, don't
+ override with the processor default */
+ if ((target_flags_explicit & MASK_MULTIPLE) != 0)
+ target_flags = (target_flags & ~MASK_MULTIPLE) | multiple;
+
+ /* If -mstring or -mno-string was explicitly used, don't override
+ with the processor default. */
+ if ((target_flags_explicit & MASK_STRING) != 0)
+ target_flags = (target_flags & ~MASK_STRING) | string;
+ /* APPLE LOCAL end -mmultiple/-mstring fixme */
/* Don't allow -mmultiple or -mstring on little endian systems
unless the cpu is a 750, because the hardware doesn't support the
@@ -1315,7 +1517,11 @@ rs6000_override_options (const char *default_cpu)
/* Setting to empty string is same as "-mone-byte-bool". */
#if TARGET_MACHO
darwin_one_byte_bool = "";
+ /* APPLE LOCAL pragma reverse_bitfields */
+ darwin_reverse_bitfields = 0;
#endif
+ /* Default to natural alignment, for better performance. */
+ rs6000_alignment_flags = MASK_ALIGN_NATURAL;
}
/* Handle -mabi= options. */
@@ -1417,9 +1623,11 @@ rs6000_override_options (const char *default_cpu)
rs6000_sched_restricted_insns_priority =
atoi (rs6000_sched_restricted_insns_priority_str);
+ /* APPLE LOCAL begin only consider true dependency for grouping */
/* Handle -msched-costly-dep option. */
rs6000_sched_costly_dep
- = (rs6000_sched_groups ? store_to_load_dep_costly : no_dep_costly);
+ = (rs6000_sched_groups ? true_store_to_load_dep_costly : no_dep_costly);
+ /* APPLE LOCAL end only consider true dependency for grouping */
if (rs6000_sched_costly_dep_str)
{
if (! strcmp (rs6000_sched_costly_dep_str, "no"))
@@ -1511,6 +1719,12 @@ rs6000_override_options (const char *default_cpu)
if (DEFAULT_ABI != ABI_AIX)
targetm.calls.split_complex_arg = NULL;
+ /* APPLE LOCAL begin AltiVec */
+ /* Enable '(vector signed int)(a, b, c, d)' vector literal notation. */
+ if (TARGET_ALTIVEC)
+ targetm.cast_expr_as_vector_init = true;
+ /* APPLE LOCAL end AltiVec */
+
/* Initialize rs6000_cost with the appropriate target costs. */
if (optimize_size)
rs6000_cost = TARGET_POWERPC64 ? &size64_cost : &size32_cost;
@@ -1683,8 +1897,27 @@ rs6000_parse_alignment_option (void)
{
if (rs6000_alignment_string == 0)
return;
+ /* APPLE LOCAL begin Macintosh alignment 2002-2-26 --ff */
+ else if (! strcmp (rs6000_alignment_string, "mac68k"))
+ {
+ /* The old mac68k alignment has zero value for 64-bit work,
+ forbid its use. */
+ if (DEFAULT_ABI == ABI_DARWIN && TARGET_64BIT)
+ error ("-malign-mac68k is not allowed for 64-bit Darwin");
+ rs6000_alignment_flags = MASK_ALIGN_MAC68K;
+ }
+ /* APPLE LOCAL end Macintosh alignment 2002-2-26 --ff */
else if (! strcmp (rs6000_alignment_string, "power"))
- rs6000_alignment_flags = MASK_ALIGN_POWER;
+ {
+ /* On 64-bit Darwin, power alignment is ABI-incompatible with
+ some C library functions, so warn about it. The flag may be
+ useful for performance studies from time to time though, so
+ don't disable it entirely. */
+ if (DEFAULT_ABI == ABI_DARWIN && TARGET_64BIT)
+ warning ("-malign-power is not supported for 64-bit Darwin;"
+ " it is incompatible with the installed C and C++ libraries");
+ rs6000_alignment_flags = MASK_ALIGN_POWER;
+ }
else if (! strcmp (rs6000_alignment_string, "natural"))
rs6000_alignment_flags = MASK_ALIGN_NATURAL;
else
@@ -1712,7 +1945,61 @@ rs6000_parse_tls_size_option (void)
void
optimization_options (int level ATTRIBUTE_UNUSED, int size ATTRIBUTE_UNUSED)
{
-}
+ /* APPLE LOCAL begin tweak default optimizations */
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ /* Turn these on only if specifically requested, not with -O* */
+ /* Strict aliasing breaks too much existing code */
+ flag_strict_aliasing = 0;
+ /* Block reordering causes code bloat, and very little speedup */
+ flag_reorder_blocks = 0;
+ /* Multi-basic-block scheduling loses badly when the compiler
+ misguesses which blocks are going to be executed, more than
+ it gains when it guesses correctly. Its guesses for cases
+ where interblock scheduling occurs (if-then-else's) are
+ little better than random, so disable this unless requested. */
+ flag_schedule_interblock = 0;
+ /* The Darwin libraries never set errno, so we might as well
+ avoid calling them when that's the only reason we would. */
+ flag_errno_math = 0;
+ /* Trapping math is not needed by many users, and is expensive.
+ C99 permits us to default it off and we do that. It is
+ turned on when <fenv.h> is included (see darwin_pragma_fenv
+ in darwin-c.c). */
+ flag_trapping_math = 0;
+ }
+ /* APPLE LOCAL end tweak default optimizations */
+}
+
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* Version of the above for use from #pragma optimization_level.
+ Do not reset things unless they're per-function. */
+
+void
+reset_optimization_options (int level ATTRIBUTE_UNUSED,
+ int size ATTRIBUTE_UNUSED)
+{
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ /* Block reordering causes code bloat, and very little speedup */
+ flag_reorder_blocks = 0;
+ /* Multi-basic-block scheduling loses badly when the compiler
+ misguesses which blocks are going to be executed, more than
+ it gains when it guesses correctly. Its guesses for cases
+ where interblock scheduling occurs (if-then-else's) are
+ little better than random, so disable this unless requested. */
+ flag_schedule_interblock = 0;
+ /* The Darwin libraries never set errno, so we might as well
+ avoid calling them when that's the only reason we would. */
+ flag_errno_math = 0;
+ /* Trapping math is not needed by many users, and is expensive.
+ C99 permits us to default it off and we do that. It is
+ turned on when <fenv.h> is included (see darwin_pragma_fenv
+ in darwin-c.c). */
+ flag_trapping_math = 0;
+ }
+}
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
/* Do anything needed at the start of the asm file. */
@@ -1774,6 +2061,38 @@ rs6000_file_start (void)
toc_section ();
text_section ();
}
+
+ /* APPLE LOCAL begin lno */
+#if TARGET_MACHO
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ /* Emit declarations for all code sections at the beginning of the file; this
+ keeps them from being separated by data sections, which can lead to
+ out-of-range branches. Also align the unlikely text section properly; the
+ first real occurrence of this may be a label within a function, which does
+ not otherwise get aligned. */
+ if (flag_pic || MACHO_DYNAMIC_NO_PIC_P || flag_reorder_blocks_and_partition)
+ {
+ fprintf (asm_out_file, "\t.section __TEXT,__text,regular,pure_instructions\n");
+ if (flag_reorder_blocks_and_partition)
+ {
+ fprintf (asm_out_file, "\t.section __TEXT,__unlikely,regular,pure_instructions\n");
+ fprintf (asm_out_file, "\t.align 2\n");
+ }
+ if (MACHO_DYNAMIC_NO_PIC_P )
+ {
+ fprintf (asm_out_file, "\t.section __TEXT,__symbol_stub1,");
+ fprintf (asm_out_file, "symbol_stubs,pure_instructions,16\n");
+ }
+ else
+ {
+ fprintf (asm_out_file, "\t.section __TEXT,__picsymbolstub1,");
+ fprintf (asm_out_file, "symbol_stubs,pure_instructions,32\n");
+ }
+ }
+ }
+#endif
+ /* APPLE LOCAL end lno */
}
@@ -1857,6 +2176,24 @@ xer_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
return 0;
}
+/* APPLE LOCAL begin 4119059 */
+/* Return 1 if OP is a signed 5-bit constant. */
+int
+s5bit_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
+{
+ return (GET_CODE (op) == CONST_INT
+ && (INTVAL (op) >= -16 && INTVAL (op) <= 15));
+}
+
+/* Return 1 if OP is a unsigned 5-bit constant. */
+int
+u5bit_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
+{
+ return (GET_CODE (op) == CONST_INT
+ && (INTVAL (op) >= 0 && INTVAL (op) <= 31));
+}
+
+/* APPLE LOCAL end 4119059 */
/* Return 1 if OP is a signed 8-bit constant. Int multiplication
by such constants completes more quickly. */
@@ -2001,6 +2338,21 @@ reg_or_cint_operand (rtx op, enum machine_mode mode)
return (GET_CODE (op) == CONST_INT || gpc_reg_operand (op, mode));
}
+/* APPLE LOCAL begin radar 3869444 (also in mainline) */
+/* Return 1 if op is an integer meeting one of 'I','J','O','L'(TARGET_32BIT)
+ or 'J'(TARGET_64BIT) constraints or if it is a non-special register. */
+
+int
+scc_operand (rtx op, enum machine_mode mode)
+{
+ return ((GET_CODE (op) == CONST_INT
+ && (CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')
+ || CONST_OK_FOR_LETTER_P (INTVAL (op), 'K')
+ || CONST_OK_FOR_LETTER_P (INTVAL (op), 'O')
+ || CONST_OK_FOR_LETTER_P (INTVAL (op), (TARGET_32BIT ? 'L' : 'J'))))
+ || gpc_reg_operand (op, mode));
+}
+/* APPLE LOCAL end radar 3869444 (also in mainline) */
/* Return 1 is the operand is either a non-special register or ANY
32-bit signed constant integer. */
@@ -2966,6 +3318,11 @@ call_operand (rtx op, enum machine_mode mode)
return 0;
return (GET_CODE (op) == SYMBOL_REF
+ /* APPLE LOCAL begin accept hard R12 as target reg */
+#ifdef MAGIC_INDIRECT_CALL_REG
+ || (GET_CODE (op) == REG && REGNO (op) == MAGIC_INDIRECT_CALL_REG)
+#endif
+ /* APPLE LOCAL end accept hard R12 as target reg */
|| (GET_CODE (op) == REG
&& (REGNO (op) == LINK_REGISTER_REGNUM
|| REGNO (op) == COUNT_REGISTER_REGNUM
@@ -3652,21 +4009,16 @@ rs6000_legitimize_tls_address (rtx addr, enum tls_model model)
rs6000_emit_move (got, gsym, Pmode);
else
{
- char buf[30];
- static int tls_got_labelno = 0;
- rtx tempLR, lab, tmp3, mem;
+ rtx tempLR, tmp3, mem;
rtx first, last;
- ASM_GENERATE_INTERNAL_LABEL (buf, "LTLS", tls_got_labelno++);
- lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
tempLR = gen_reg_rtx (Pmode);
tmp1 = gen_reg_rtx (Pmode);
tmp2 = gen_reg_rtx (Pmode);
tmp3 = gen_reg_rtx (Pmode);
mem = gen_const_mem (Pmode, tmp1);
- first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, lab,
- gsym));
+ first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym));
emit_move_insn (tmp1, tempLR);
emit_move_insn (tmp2, mem);
emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
@@ -3870,6 +4222,7 @@ rs6000_legitimize_reload_address (rtx x, enum machine_mode mode,
&& REG_MODE_OK_FOR_BASE_P (XEXP (x, 0), mode)
&& GET_CODE (XEXP (x, 1)) == CONST_INT
&& (INTVAL (XEXP (x, 1)) & 3) != 0
+ && !ALTIVEC_VECTOR_MODE (mode)
&& GET_MODE_SIZE (mode) >= UNITS_PER_WORD
&& TARGET_POWERPC64)
{
@@ -4134,8 +4487,9 @@ rs6000_conditional_register_usage (void)
if (DEFAULT_ABI == ABI_DARWIN
&& PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM)
- global_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]
- = fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]
+/* APPLE LOCAL begin mainline remove global_regs[PIC] */
+ fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]
+/* APPLE LOCAL end mainline remove global_regs[PIC] */
= call_used_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]
= call_really_used_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] = 1;
@@ -4716,12 +5070,23 @@ rs6000_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
/* In the darwin64 abi, try to use registers for larger structs
if possible. */
- if (AGGREGATE_TYPE_P (type)
- && rs6000_darwin64_abi
+ if (rs6000_darwin64_abi
&& TREE_CODE (type) == RECORD_TYPE
- && ((unsigned HOST_WIDE_INT) int_size_in_bytes (type) <= 32)
- && ((unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 0))
- return false;
+ && int_size_in_bytes (type) > 0)
+ {
+ CUMULATIVE_ARGS valcum;
+ rtx valret;
+
+ valcum.words = 0;
+ valcum.fregno = FP_ARG_MIN_REG;
+ valcum.vregno = ALTIVEC_ARG_MIN_REG;
+ /* Do a trial code generation as if this were going to be passed
+ as an argument; if any part goes in memory, we return NULL. */
+ valret = rs6000_darwin64_record_arg (&valcum, type, 1, true);
+ if (valret)
+ return false;
+ /* Otherwise fall through to more conventional ABI rules. */
+ }
if (AGGREGATE_TYPE_P (type)
&& (TARGET_AIX_STRUCT_RET
@@ -4912,6 +5277,9 @@ function_arg_boundary (enum machine_mode mode, tree type)
|| (type && TREE_CODE (type) == VECTOR_TYPE
&& int_size_in_bytes (type) >= 16))
return 128;
+ else if (rs6000_darwin64_abi && mode == BLKmode
+ && type && TYPE_ALIGN (type) > 64)
+ return 128;
else
return PARM_BOUNDARY;
}
@@ -4934,46 +5302,140 @@ rs6000_arg_size (enum machine_mode mode, tree type)
return (size + 7) >> 3;
}
-/* The darwin64 ABI calls for us to recurse down through structs,
- applying the same rules to struct elements as if a reference to
- each were being passed directly. */
+/* Use this to flush pending int fields. */
static void
-darwin64_function_arg_advance (CUMULATIVE_ARGS *cum, tree type,
- int named, int depth)
+rs6000_darwin64_record_arg_advance_flush (CUMULATIVE_ARGS *cum,
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ HOST_WIDE_INT bitpos, int final)
{
- tree f, ftype;
- int i, tot;
+ unsigned int startbit, endbit;
+ int intregs, intoffset;
+ enum machine_mode mode;
- switch (TREE_CODE (type))
+ /* APPLE LOCAL begin fix 64-bit varargs 4028089 */
+ /* Handle the situations where a float is taking up the first half
+ of the GPR, and the other half is empty (typically due to
+ alignment restrictions). We can detect this by a 8-byte-aligned
+ int field, or by seeing that this is the final flush for this
+ argument. Count the word and continue on. */
+ if (cum->floats_in_gpr == 1
+ && (cum->intoffset % 64 == 0
+ || (cum->intoffset == -1 && final)))
{
- case RECORD_TYPE:
- for (f = TYPE_FIELDS (type); f ; f = TREE_CHAIN (f))
- if (TREE_CODE (f) == FIELD_DECL)
- {
- ftype = TREE_TYPE (f);
- function_arg_advance (cum, TYPE_MODE (ftype), ftype,
- named, depth + 1);
- }
- break;
+ cum->words++;
+ cum->floats_in_gpr = 0;
+ }
+ /* APPLE LOCAL end fix 64-bit varargs 4028089 */
- case ARRAY_TYPE:
- tot = int_size_in_bytes (type);
- if (tot <= 0)
- return;
- ftype = TREE_TYPE (type);
- tot /= int_size_in_bytes (ftype);
-
- for (i = 0; i < tot; ++i)
+ if (cum->intoffset == -1)
+ return;
+
+ intoffset = cum->intoffset;
+ cum->intoffset = -1;
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ cum->floats_in_gpr = 0;
+
+ if (intoffset % BITS_PER_WORD != 0)
+ {
+ mode = mode_for_size (BITS_PER_WORD - intoffset % BITS_PER_WORD,
+ MODE_INT, 0);
+ if (mode == BLKmode)
{
- function_arg_advance (cum, TYPE_MODE (ftype), ftype,
- named, depth + 1);
+ /* We couldn't find an appropriate mode, which happens,
+ e.g., in packed structs when there are 3 bytes to load.
+ Back intoffset back to the beginning of the word in this
+ case. */
+ intoffset = intoffset & -BITS_PER_WORD;
}
- break;
-
- default:
- abort ();
}
+
+ startbit = intoffset & -BITS_PER_WORD;
+ endbit = (bitpos + BITS_PER_WORD - 1) & -BITS_PER_WORD;
+ intregs = (endbit - startbit) / BITS_PER_WORD;
+ cum->words += intregs;
+}
+
+/* The darwin64 ABI calls for us to recurse down through structs,
+ looking for elements passed in registers. Unfortunately, we have
+ to track int register count here also because of misalignments
+ in powerpc alignment mode. */
+
+static void
+rs6000_darwin64_record_arg_advance_recurse (CUMULATIVE_ARGS *cum,
+ tree type,
+ HOST_WIDE_INT startbitpos)
+{
+ tree f;
+
+ for (f = TYPE_FIELDS (type); f ; f = TREE_CHAIN (f))
+ if (TREE_CODE (f) == FIELD_DECL)
+ {
+ HOST_WIDE_INT bitpos = startbitpos;
+ tree ftype = TREE_TYPE (f);
+ enum machine_mode mode = TYPE_MODE (ftype);
+
+ if (DECL_SIZE (f) != 0
+ && host_integerp (bit_position (f), 1))
+ bitpos += int_bit_position (f);
+
+ /* ??? FIXME: else assume zero offset. */
+
+ if (TREE_CODE (ftype) == RECORD_TYPE)
+ rs6000_darwin64_record_arg_advance_recurse (cum, ftype, bitpos);
+ else if (USE_FP_FOR_ARG_P (cum, mode, ftype))
+ {
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ rs6000_darwin64_record_arg_advance_flush (cum, bitpos, 0);
+ cum->fregno += (GET_MODE_SIZE (mode) + 7) >> 3;
+ /* APPLE LOCAL begin fix 64-bit varargs 4028089 */
+ /* Single-precision floats present a special problem for
+ us, because they are smaller than an 8-byte GPR, and so
+ the structure-packing rules combined with the standard
+ varargs behavior mean that we want to pack float/float
+ and float/int combinations into a single register's
+ space. This is complicated by the arg advance flushing,
+ which works on arbitrarily large groups of int-type
+ fields. */
+ if (mode == SFmode)
+ {
+ if (cum->floats_in_gpr == 1)
+ {
+ /* Two floats in a word; count the word and reset
+ the float count. */
+ cum->words++;
+ cum->floats_in_gpr = 0;
+ }
+ else if (bitpos % 64 == 0)
+ {
+ /* A float at the beginning of an 8-byte word;
+ count it and put off adjusting cum->words until
+ we see if a arg advance flush is going to do it
+ for us. */
+ cum->floats_in_gpr++;
+ }
+ else
+ {
+ /* The float is at the end of a word, preceded
+ by integer fields, so the arg advance flush
+ just above has already set cum->words and
+ everything is taken care of. */
+ }
+ }
+ else
+ /* APPLE LOCAL end fix 64-bit varargs 4028089 */
+ cum->words += (GET_MODE_SIZE (mode) + 7) >> 3;
+ }
+ else if (USE_ALTIVEC_FOR_ARG_P (cum, mode, type, 1))
+ {
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ rs6000_darwin64_record_arg_advance_flush (cum, bitpos, 0);
+ cum->vregno++;
+ cum->words += 2;
+ }
+ else if (cum->intoffset == -1)
+ cum->intoffset = bitpos;
+ }
}
/* Update the data in CUM to advance over an argument
@@ -4988,6 +5450,8 @@ void
function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
tree type, int named, int depth)
{
+ int size;
+
/* Only tick off an argument if we're not recursing. */
if (depth == 0)
cum->nargs_prototype--;
@@ -5051,10 +5515,33 @@ function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
else if (rs6000_darwin64_abi
&& mode == BLKmode
- && (TREE_CODE (type) == RECORD_TYPE
- || TREE_CODE (type) == ARRAY_TYPE))
- darwin64_function_arg_advance (cum, type, named, depth);
-
+ && TREE_CODE (type) == RECORD_TYPE
+ && (size = int_size_in_bytes (type)) > 0)
+ {
+ /* Variable sized types have size == -1 and are
+ treated as if consisting entirely of ints.
+ Pad to 16 byte boundary if needed. */
+ if (TYPE_ALIGN (type) >= 2 * BITS_PER_WORD
+ && (cum->words % 2) != 0)
+ cum->words++;
+ /* For varargs, we can just go up by the size of the struct. */
+ if (!named)
+ cum->words += (size + 7) / 8;
+ else
+ {
+ /* It is tempting to say int register count just goes up by
+ sizeof(type)/8, but this is wrong in a case such as
+ { int; double; int; } [powerpc alignment]. We have to
+ grovel through the fields for these too. */
+ cum->intoffset = 0;
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ cum->floats_in_gpr = 0;
+ rs6000_darwin64_record_arg_advance_recurse (cum, type, 0);
+ rs6000_darwin64_record_arg_advance_flush (cum,
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ size * BITS_PER_UNIT, 1);
+ }
+ }
else if (DEFAULT_ABI == ABI_V4)
{
if (TARGET_HARD_FLOAT && TARGET_FPRS
@@ -5213,136 +5700,186 @@ rs6000_spe_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
}
}
-/* For the darwin64 ABI, we want to construct a PARALLEL consisting of
- the register(s) to be used for each field and subfield of a struct
- being passed by value, along with the offset of where the
- register's value may be found in the block. */
+/* A subroutine of rs6000_darwin64_record_arg. Assign the bits of the
+ structure between cum->intoffset and bitpos to integer registers. */
-static rtx
-rs6000_darwin64_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- tree type, int named)
+static void
+rs6000_darwin64_record_arg_flush (CUMULATIVE_ARGS *cum,
+ HOST_WIDE_INT bitpos, rtx rvec[], int *k)
{
- tree f, ftype, offset;
- rtx rvec[FIRST_PSEUDO_REGISTER], sub, suboff, roffset;
- int k = 0, i, j, bytepos, subbytepos, tot;
- CUMULATIVE_ARGS saved_cum = *cum;
- enum machine_mode submode;
+ enum machine_mode mode;
+ unsigned int regno;
+ unsigned int startbit, endbit;
+ int this_regno, intregs, intoffset;
+ rtx reg;
+
+ if (cum->intoffset == -1)
+ return;
+
+ intoffset = cum->intoffset;
+ cum->intoffset = -1;
- switch (TREE_CODE (type))
+ /* If this is the trailing part of a word, try to only load that
+ much into the register. Otherwise load the whole register. Note
+ that in the latter case we may pick up unwanted bits. It's not a
+ problem at the moment but may wish to revisit. */
+
+ if (intoffset % BITS_PER_WORD != 0)
{
- case RECORD_TYPE:
- for (f = TYPE_FIELDS (type); f ; f = TREE_CHAIN (f))
- if (TREE_CODE (f) == FIELD_DECL)
+ mode = mode_for_size (BITS_PER_WORD - intoffset % BITS_PER_WORD,
+ MODE_INT, 0);
+ if (mode == BLKmode)
+ {
+ /* We couldn't find an appropriate mode, which happens,
+ e.g., in packed structs when there are 3 bytes to load.
+ Back intoffset back to the beginning of the word in this
+ case. */
+ intoffset = intoffset & -BITS_PER_WORD;
+ mode = word_mode;
+ }
+ }
+ else
+ mode = word_mode;
+
+ startbit = intoffset & -BITS_PER_WORD;
+ endbit = (bitpos + BITS_PER_WORD - 1) & -BITS_PER_WORD;
+ intregs = (endbit - startbit) / BITS_PER_WORD;
+ this_regno = cum->words + intoffset / BITS_PER_WORD;
+
+ if (intregs > 0 && intregs > GP_ARG_NUM_REG - this_regno)
+ cum->use_stack = 1;
+
+ intregs = MIN (intregs, GP_ARG_NUM_REG - this_regno);
+ if (intregs <= 0)
+ return;
+
+ intoffset /= BITS_PER_UNIT;
+ do
+ {
+ regno = GP_ARG_MIN_REG + this_regno;
+ reg = gen_rtx_REG (mode, regno);
+ rvec[(*k)++] =
+ gen_rtx_EXPR_LIST (VOIDmode, reg, GEN_INT (intoffset));
+
+ this_regno += 1;
+ intoffset = (intoffset | (UNITS_PER_WORD-1)) + 1;
+ mode = word_mode;
+ intregs -= 1;
+ }
+ while (intregs > 0);
+}
+
+/* Recursive workhorse for the following. */
+
+static void
+rs6000_darwin64_record_arg_recurse (CUMULATIVE_ARGS *cum, tree type,
+ HOST_WIDE_INT startbitpos, rtx rvec[],
+ int *k)
+{
+ tree f;
+
+ for (f = TYPE_FIELDS (type); f ; f = TREE_CHAIN (f))
+ if (TREE_CODE (f) == FIELD_DECL)
+ {
+ HOST_WIDE_INT bitpos = startbitpos;
+ tree ftype = TREE_TYPE (f);
+ enum machine_mode mode = TYPE_MODE (ftype);
+
+ if (DECL_SIZE (f) != 0
+ && host_integerp (bit_position (f), 1))
+ bitpos += int_bit_position (f);
+
+ /* ??? FIXME: else assume zero offset. */
+
+ if (TREE_CODE (ftype) == RECORD_TYPE)
+ rs6000_darwin64_record_arg_recurse (cum, ftype, bitpos, rvec, k);
+ else if (cum->named && USE_FP_FOR_ARG_P (cum, mode, ftype))
{
- ftype = TREE_TYPE (f);
- offset = DECL_FIELD_OFFSET (f);
- bytepos = int_bit_position (f) / BITS_PER_UNIT;
- /* Force substructs to be handled as BLKmode even if
- they're small enough to be recorded as DImode, so we
- drill through to non-record fields. */
- submode = TYPE_MODE (ftype);
- if (TREE_CODE (ftype) == RECORD_TYPE)
- submode = BLKmode;
- sub = function_arg (cum, submode, ftype, named);
- if (sub == NULL_RTX)
- return NULL_RTX;
- if (GET_CODE (sub) == PARALLEL)
- {
- for (i = 0; i < XVECLEN (sub, 0); i++)
- {
- rtx subsub = XVECEXP (sub, 0, i);
- suboff = XEXP (subsub, 1);
- subbytepos = INTVAL (suboff);
- subbytepos += bytepos;
- roffset = gen_rtx_CONST_INT (SImode, subbytepos);
- subsub = XEXP (subsub, 0);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, subsub, roffset);
- }
- }
- else
+#if 0
+ switch (mode)
{
- roffset = gen_rtx_CONST_INT (SImode, bytepos);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, sub, roffset);
+ case SCmode: mode = SFmode; break;
+ case DCmode: mode = DFmode; break;
+ case TCmode: mode = TFmode; break;
+ default: break;
}
- /* Now do an arg advance to get all the cumulative arg
- stuff set correctly for the next subfield. Note that it
- has no lasting effect, because it is being done on a
- temporary copy of the cumulative arg data. */
- function_arg_advance (cum, submode, ftype, named, 1);
+#endif
+ rs6000_darwin64_record_arg_flush (cum, bitpos, rvec, k);
+ rvec[(*k)++]
+ = gen_rtx_EXPR_LIST (VOIDmode,
+ gen_rtx_REG (mode, cum->fregno++),
+ GEN_INT (bitpos / BITS_PER_UNIT));
+ if (mode == TFmode)
+ cum->fregno++;
}
- break;
+ else if (cum->named && USE_ALTIVEC_FOR_ARG_P (cum, mode, ftype, 1))
+ {
+ rs6000_darwin64_record_arg_flush (cum, bitpos, rvec, k);
+ rvec[(*k)++]
+ = gen_rtx_EXPR_LIST (VOIDmode,
+ gen_rtx_REG (mode, cum->vregno++),
+ GEN_INT (bitpos / BITS_PER_UNIT));
+ }
+ else if (cum->intoffset == -1)
+ cum->intoffset = bitpos;
+ }
+}
- case UNION_TYPE:
- tot = rs6000_arg_size (mode, type);
- if (tot <= 0)
- return NULL_RTX;
- bytepos = 0;
+/* For the darwin64 ABI, we want to construct a PARALLEL consisting of
+ the register(s) to be used for each field and subfield of a struct
+ being passed by value, along with the offset of where the
+ register's value may be found in the block. FP fields go in FP
+ register, vector fields go in vector registers, and everything
+ else goes in int registers, packed as in memory.
- for (j = 0; j < tot; ++j)
- {
- sub = gen_rtx_REG ((TARGET_64BIT ? DImode : SImode), GP_ARG_MIN_REG + cum->words++);
- roffset = gen_rtx_CONST_INT (SImode, bytepos);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, sub, roffset);
- if (cum->words >= GP_ARG_NUM_REG)
- break;
- bytepos += (TARGET_64BIT ? 8 : 4);
- }
- break;
+ This code is also used for function return values. RETVAL indicates
+ whether this is the case.
- case ARRAY_TYPE:
- tot = int_size_in_bytes (type);
- if (tot <= 0)
- return NULL_RTX;
- ftype = TREE_TYPE (type);
- tot /= int_size_in_bytes (ftype);
- bytepos = 0;
+ Much of this is taken from the Sparc V9 port, which has a similar
+ calling convention. */
- for (j = 0; j < tot; ++j)
- {
- /* Force substructs to be handled as BLKmode even if
- they're small enough to be recorded as DImode, so we
- drill through to non-record fields. */
- submode = TYPE_MODE (ftype);
- if (TREE_CODE (ftype) == RECORD_TYPE)
- submode = BLKmode;
- sub = function_arg (cum, submode, ftype, named);
- if (sub == NULL_RTX)
- return NULL_RTX;
- if (GET_CODE (sub) == PARALLEL)
- {
- for (i = 0; i < XVECLEN (sub, 0); i++)
- {
- rtx subsub = XVECEXP (sub, 0, i);
-
- suboff = XEXP (subsub, 1);
- subbytepos = INTVAL (suboff);
- subbytepos += bytepos;
- roffset = gen_rtx_CONST_INT (SImode, subbytepos);
- subsub = XEXP (subsub, 0);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, subsub, roffset);
- }
- }
- else
- {
- roffset = gen_rtx_CONST_INT (SImode, bytepos);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, sub, roffset);
- }
- /* Now do an arg advance to get all the cumulative arg
- stuff set correctly for the next subfield. Note that it
- has no lasting effect, because it is being done on a
- temporary copy of the cumulative arg data. */
- function_arg_advance (cum, submode, ftype, named, 1);
- bytepos += int_size_in_bytes (ftype);
- }
- break;
-
- default:
- abort ();
- }
-
- *cum = saved_cum;
- if (k > 0)
- return gen_rtx_PARALLEL (mode, gen_rtvec_v (k, rvec));
+static rtx
+rs6000_darwin64_record_arg (CUMULATIVE_ARGS *orig_cum, tree type,
+ int named, bool retval)
+{
+ rtx rvec[FIRST_PSEUDO_REGISTER];
+ int k = 1, kbase = 1;
+ HOST_WIDE_INT typesize = int_size_in_bytes (type);
+ /* This is a copy; modifications are not visible to our caller. */
+ CUMULATIVE_ARGS copy_cum = *orig_cum;
+ CUMULATIVE_ARGS *cum = &copy_cum;
+
+ /* Pad to 16 byte boundary if needed. */
+ if (!retval && TYPE_ALIGN (type) >= 2 * BITS_PER_WORD
+ && (cum->words % 2) != 0)
+ cum->words++;
+
+ cum->intoffset = 0;
+ cum->use_stack = 0;
+ /* APPLE LOCAL fix 64-bit varargs 4028089 */
+ cum->floats_in_gpr = 0;
+ cum->named = named;
+
+ /* Put entries into rvec[] for individual FP and vector fields, and
+ for the chunks of memory that go in int regs. Note we start at
+ element 1; 0 is reserved for an indication of using memory, and
+ may or may not be filled in below. */
+ rs6000_darwin64_record_arg_recurse (cum, type, 0, rvec, &k);
+ rs6000_darwin64_record_arg_flush (cum, typesize * BITS_PER_UNIT, rvec, &k);
+
+ /* If any part of the struct went on the stack put all of it there.
+ This hack is because the generic code for
+ FUNCTION_ARG_PARTIAL_NREGS cannot handle cases where the register
+ parts of the struct are not at the beginning. */
+ if (cum->use_stack)
+ {
+ if (retval)
+ return NULL_RTX; /* doesn't go in registers at all */
+ kbase = 0;
+ rvec[0] = gen_rtx_EXPR_LIST (VOIDmode, NULL_RTX, const0_rtx);
+ }
+ if (k > 1 || cum->use_stack)
+ return gen_rtx_PARALLEL (BLKmode, gen_rtvec_v (k - kbase, &rvec[kbase]));
else
return NULL_RTX;
}
@@ -5406,7 +5943,8 @@ rs6000_mixed_function_arg (enum machine_mode mode, tree type, int align_words)
This is null for libcalls where that information may
not be available.
CUM is a variable of type CUMULATIVE_ARGS which gives info about
- the preceding args and about the function being called.
+ the preceding args and about the function being called. It is
+ not modified in this routine.
NAMED is nonzero if this argument is a named parameter
(otherwise it is an extra parameter matching an ellipsis).
@@ -5454,13 +5992,10 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
return GEN_INT (cum->call_cookie);
}
- if (mode == BLKmode
- && rs6000_darwin64_abi
- && (TREE_CODE (type) == RECORD_TYPE
- || TREE_CODE (type) == UNION_TYPE
- || TREE_CODE (type) == ARRAY_TYPE))
+ if (rs6000_darwin64_abi && mode == BLKmode
+ && TREE_CODE (type) == RECORD_TYPE)
{
- rtx rslt = rs6000_darwin64_function_arg (cum, mode, type, named);
+ rtx rslt = rs6000_darwin64_record_arg (cum, type, named, false);
if (rslt != NULL_RTX)
return rslt;
/* Else fall through to usual handling. */
@@ -5701,6 +6236,12 @@ rs6000_arg_partial_bytes (CUMULATIVE_ARGS *cum, enum machine_mode mode,
&& cum->nargs_prototype >= 0)
return 0;
+ /* In this complicated case we just disable the partial_nregs code. */
+ if (rs6000_darwin64_abi && mode == BLKmode
+ && TREE_CODE (type) == RECORD_TYPE
+ && int_size_in_bytes (type) > 0)
+ return 0;
+
align = function_arg_boundary (mode, type) / PARM_BOUNDARY - 1;
parm_offset = TARGET_32BIT ? 2 : 0;
align_words = cum->words + ((parm_offset - cum->words) & align);
@@ -5716,16 +6257,16 @@ rs6000_arg_partial_bytes (CUMULATIVE_ARGS *cum, enum machine_mode mode,
&& align_words >= GP_ARG_NUM_REG))))
{
if (cum->fregno + ((GET_MODE_SIZE (mode) + 7) >> 3) > FP_ARG_MAX_REG + 1)
- ret = FP_ARG_MAX_REG + 1 - cum->fregno;
+ /* APPLE LOCAL mainline 2005-04-21 */
+ ret = (FP_ARG_MAX_REG + 1 - cum->fregno) * 8;
else if (cum->nargs_prototype >= 0)
return 0;
}
if (align_words < GP_ARG_NUM_REG
&& GP_ARG_NUM_REG < align_words + rs6000_arg_size (mode, type))
- ret = GP_ARG_NUM_REG - align_words;
-
- ret *= (TARGET_32BIT ? 4 : 8);
+ /* APPLE LOCAL mainline 2005-04-21 */
+ ret = (GP_ARG_NUM_REG - align_words) * (TARGET_32BIT ? 4 : 8);
if (ret != 0 && TARGET_DEBUG_ARG)
fprintf (stderr, "rs6000_arg_partial_bytes: %d\n", ret);
@@ -5926,6 +6467,32 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
}
}
+/* APPLE LOCAL begin Altivec */
+/* This routine determins if an extra pass over argument list is needed
+ for vector aruments. It returns true, if current argument need be
+ skipped. This depends on if we are in the first iteration (to skip
+ vectors), or 2nd iteration (to skip non-vectors).
+*/
+
+static
+bool skip_vec_args(tree arg_type, int pass, int *last_pass)
+{
+ if (DEFAULT_ABI != ABI_DARWIN)
+ return false;
+
+ if (TREE_CODE (arg_type) == VECTOR_TYPE)
+ {
+ *last_pass = 2;
+ if (pass == 1)
+ return true;
+ }
+ else if (pass == 2)
+ return true;
+ return false;
+}
+/* APPLE LOCAL end Altivec */
+
+
/* Create the va_list data type. */
static tree
@@ -6217,12 +6784,117 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
/* Builtins. */
+/* APPLE LOCAL begin Altivec */
#define def_builtin(MASK, NAME, TYPE, CODE) \
do { \
if ((MASK) & target_flags) \
- lang_hooks.builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, \
+ vector_builtin_fns[(CODE)] = lang_hooks.builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, \
NULL, NULL_TREE); \
} while (0)
+/* APPLE LOCAL end Altivec */
+
+/* APPLE LOCAL begin AltiVec */
+/* The AltiVec PIM operations and predicates (used in Apple AltiVec mode)
+ are stored in ALTIVEC_PIM_TABLE below, each annotated with flags indicating
+ how its arguments should be matched and/or how its return type is to be
+ determined. */
+
+enum pim_flags
+{
+ /* CR6 predicate modifiers. Not used for operations. For predicates,
+ one of the following four values shall be prepended to the argument
+ list as an INTEGER_CST. */
+
+ pim_cr6_eq = 0, /* __CR6_EQ */
+ pim_cr6_ne = 1, /* __CR6_EQ_REV */
+ pim_cr6_lt = 2, /* __CR6_LT */
+ pim_cr6_ge = 3, /* __CR6_LT_REV */
+ pim_cr6_MASK = pim_cr6_eq | pim_cr6_ne | pim_cr6_lt | pim_cr6_ge,
+
+ /* Function overload argument matching. Operations and predicates with
+ multiple overload candidates will have multiple entries, listed
+ contiguously, in the ALTIVEC_PIM_TABLE below. When the
+ rs6000_fold_builtin() routine is called, it will first point at
+ the first entry. If any of the pim_ovl_... flags is set for this
+ entry, the argument(s) to rs6000_fold_builtin() will be type-checked
+ accordingly. If the check succeeds, the current entry will be
+ used to rewrite the PIM instruction into a __builtin instruction;
+ if the check fails, the next entry in ALTIVEC_PIM_TABLE is selected
+ and the pim_ovl_... type comparison is made again. */
+
+ pim_ovl_16 = 4, /* First argument must be a 16-element vector */
+ pim_ovl_16u = 8,
+ pim_ovl_8 = 12, /* First argument must be an 8-element vector */
+ pim_ovl_8u = 16,
+ pim_ovl_8p = 20, /* First argument must be a vector pixel */
+ pim_ovl_4 = 24, /* First argument must be a 4-element vector */
+ pim_ovl_4u = 28,
+ pim_ovl_4f = 32, /* First argument must be a vector float */
+ pim_ovl_16u_16u = 36, /* First two args must be unsigned 16-el vectors */
+ pim_ovl_8u_8u = 40,
+ pim_ovl_4u_4u = 44,
+ pim_ovl_pqi_2 = 48, /* Second argument must be a pointer to QI. */
+ pim_ovl_phi_2 = 52, /* Second argument must be a pointer to HI. */
+ pim_ovl_psi_2 = 56, /* Second argument must be a pointer to SI. */
+ pim_ovl_MASK = pim_ovl_16 | pim_ovl_16u | pim_ovl_8 | pim_ovl_8u
+ | pim_ovl_8p | pim_ovl_4 | pim_ovl_4u | pim_ovl_4f
+ | pim_ovl_16u_16u | pim_ovl_8u_8u | pim_ovl_4u_4u
+ | pim_ovl_pqi_2 | pim_ovl_phi_2 | pim_ovl_psi_2,
+
+ /* Return type computation. For some operations/predicates, the return
+ type is not always the same (in which case it will be stored
+ in the ALTIVEC_PIM_table), but rather is a function of the arguments
+ supplied. */
+
+ pim_rt_12 = 512, /* Covariant with first two arguments. */
+ pim_rt_2p = 1024, /* Covariant with pointee of second argument. */
+ pim_rt_1 = 1536, /* Covariant with first argument only. */
+ pim_rt_1d = 2048, /* Double the vector element size of first arg. */
+ pim_rt_1h = 2560, /* Halve the vector element size of first arg. */
+ pim_rt_MASK = pim_rt_12 | pim_rt_2p | pim_rt_1 | pim_rt_1d | pim_rt_1h,
+
+ /* Argument manipulation. Before the __builtin instructions are called,
+ the arguments may need to be rearranged. In addition, for all
+ predicates, one of the CR6 values will be prepended to the argument
+ list (see pim_cr6_... above). */
+
+ pim_manip_swap = 8192, /* Swap the first two arguments. */
+ pim_manip_dup = 16384, /* Duplicate first argument. */
+ pim_manip_MASK = pim_manip_swap | pim_manip_dup,
+
+ /* Mark the beginning of instruction groups. For our purposes, an
+ instruction group is the collection of overload candidates for
+ a particular instruction or predicate. For example, the entries
+ "vec_abss", "vec_abss.2" and "vec_abss.3" defined in
+ altivec_init_builtins() below constitute a group, as does the
+ singleton "vec_addc" entry. */
+
+ pim_group = 32768
+};
+
+struct altivec_pim_info GTY(())
+{
+ tree rettype; /* Return type (unless pim_rt_... flags are used). */
+ int insn; /* FUNCTION_DECL_CODE of the underlying '__builtin_...'. */
+ enum pim_flags flags; /* See 'enum pim_flags' above. */
+};
+
+static GTY(()) struct altivec_pim_info
+altivec_pim_table[ALTIVEC_PIM__LAST - ALTIVEC_PIM__FIRST + 1];
+
+#define def_pim_builtin(NAME, TYPE, INSN, FLAGS) \
+do { \
+ lang_hooks.builtin_function (NAME, int_ftype_ellipsis, pim_code, \
+ BUILT_IN_MD, NULL, NULL_TREE); \
+ \
+ altivec_pim_table[pim_code - ALTIVEC_PIM__FIRST].rettype = TYPE; \
+ altivec_pim_table[pim_code - ALTIVEC_PIM__FIRST].insn \
+ = ALTIVEC_BUILTIN_##INSN; \
+ altivec_pim_table[pim_code - ALTIVEC_PIM__FIRST].flags = FLAGS; \
+ \
+ ++pim_code; \
+} while (0)
+/* APPLE LOCAL end AltiVec */
/* Simple ternary operations: VECd = foo (VECa, VECb, VECc). */
@@ -6355,12 +7027,14 @@ static struct builtin_description bdesc_2arg[] =
{ MASK_ALTIVEC, CODE_FOR_altivec_vspltb, "__builtin_altivec_vspltb", ALTIVEC_BUILTIN_VSPLTB },
{ MASK_ALTIVEC, CODE_FOR_altivec_vsplth, "__builtin_altivec_vsplth", ALTIVEC_BUILTIN_VSPLTH },
{ MASK_ALTIVEC, CODE_FOR_altivec_vspltw, "__builtin_altivec_vspltw", ALTIVEC_BUILTIN_VSPLTW },
- { MASK_ALTIVEC, CODE_FOR_altivec_vsrb, "__builtin_altivec_vsrb", ALTIVEC_BUILTIN_VSRB },
- { MASK_ALTIVEC, CODE_FOR_altivec_vsrh, "__builtin_altivec_vsrh", ALTIVEC_BUILTIN_VSRH },
- { MASK_ALTIVEC, CODE_FOR_altivec_vsrw, "__builtin_altivec_vsrw", ALTIVEC_BUILTIN_VSRW },
- { MASK_ALTIVEC, CODE_FOR_altivec_vsrab, "__builtin_altivec_vsrab", ALTIVEC_BUILTIN_VSRAB },
- { MASK_ALTIVEC, CODE_FOR_altivec_vsrah, "__builtin_altivec_vsrah", ALTIVEC_BUILTIN_VSRAH },
- { MASK_ALTIVEC, CODE_FOR_altivec_vsraw, "__builtin_altivec_vsraw", ALTIVEC_BUILTIN_VSRAW },
+ /* APPLE LOCAL begin mainline 2005-04-05 3972515 */
+ { MASK_ALTIVEC, CODE_FOR_lshrv16qi3, "__builtin_altivec_vsrb", ALTIVEC_BUILTIN_VSRB },
+ { MASK_ALTIVEC, CODE_FOR_lshrv8hi3, "__builtin_altivec_vsrh", ALTIVEC_BUILTIN_VSRH },
+ { MASK_ALTIVEC, CODE_FOR_lshrv4si3, "__builtin_altivec_vsrw", ALTIVEC_BUILTIN_VSRW },
+ { MASK_ALTIVEC, CODE_FOR_ashrv16qi3, "__builtin_altivec_vsrab", ALTIVEC_BUILTIN_VSRAB },
+ { MASK_ALTIVEC, CODE_FOR_ashrv8hi3, "__builtin_altivec_vsrah", ALTIVEC_BUILTIN_VSRAH },
+ { MASK_ALTIVEC, CODE_FOR_ashrv4si3, "__builtin_altivec_vsraw", ALTIVEC_BUILTIN_VSRAW },
+ /* APPLE LOCAL end mainline 2005-04-05 3972515 */
{ MASK_ALTIVEC, CODE_FOR_altivec_vsr, "__builtin_altivec_vsr", ALTIVEC_BUILTIN_VSR },
{ MASK_ALTIVEC, CODE_FOR_altivec_vsro, "__builtin_altivec_vsro", ALTIVEC_BUILTIN_VSRO },
{ MASK_ALTIVEC, CODE_FOR_subv16qi3, "__builtin_altivec_vsububm", ALTIVEC_BUILTIN_VSUBUBM },
@@ -6661,6 +7335,382 @@ static struct builtin_description bdesc_1arg[] =
{ 0, CODE_FOR_spe_evsubfusiaaw, "__builtin_spe_evsubfusiaaw", SPE_BUILTIN_EVSUBFUSIAAW },
};
+/* APPLE LOCAL begin AltiVec */
+/* Determine the return type from types T1 and T2 of the first two arguments.
+ This is required for some of the AltiVec PIM operations/predicates. */
+
+static tree
+altivec_cov_rt_12 (tree t1, tree t2)
+{
+ /* NB: The ordering of the following statements is important.
+ Matching of more specific types (e.g., 'vector pixel') should
+ precede matching of more general types, esp. if they subsume the
+ former (e.g., 'vector of 8 elements'). */
+
+#define RETURN_IF_EITHER_IS(TYPE) if (t1 == TYPE || t2 == TYPE) return TYPE
+
+ RETURN_IF_EITHER_IS (unsigned_V16QI_type_node);
+ RETURN_IF_EITHER_IS (V16QI_type_node);
+ RETURN_IF_EITHER_IS (bool_V16QI_type_node);
+ RETURN_IF_EITHER_IS (unsigned_V8HI_type_node);
+ RETURN_IF_EITHER_IS (pixel_V8HI_type_node);
+ RETURN_IF_EITHER_IS (V8HI_type_node);
+ RETURN_IF_EITHER_IS (bool_V8HI_type_node);
+ RETURN_IF_EITHER_IS (unsigned_V4SI_type_node);
+ RETURN_IF_EITHER_IS (V4SF_type_node);
+ RETURN_IF_EITHER_IS (V4SI_type_node);
+ RETURN_IF_EITHER_IS (bool_V4SI_type_node);
+
+#undef RETURN_IF_EITHER_IS
+
+ return NULL_TREE;
+}
+
+/* Determine the return type from the pointee type of argument type T.
+ This is required for some of the AltiVec PIM operations/predicates. */
+
+static tree
+altivec_cov_rt_2p (tree t)
+{
+ /* Must be a pointer. */
+
+ if (TREE_CODE (t) != POINTER_TYPE)
+ return NULL_TREE;
+
+ t = TYPE_MAIN_VARIANT (TREE_TYPE (t));
+
+ /* For pointers to vectors, the return type is the vector itself. */
+
+ if (TREE_CODE (t) == VECTOR_TYPE)
+ return t;
+
+ switch (TYPE_MODE (t))
+ {
+ case QImode:
+ return TYPE_UNSIGNED (t) ? unsigned_V16QI_type_node : V16QI_type_node;
+
+ case HImode:
+ return TYPE_UNSIGNED (t) ? unsigned_V8HI_type_node : V8HI_type_node;
+
+ case SImode:
+ return TYPE_UNSIGNED (t) ? unsigned_V4SI_type_node : V4SI_type_node;
+
+ case SFmode:
+ return V4SF_type_node;
+
+ default:
+ return NULL_TREE;
+ }
+}
+
+/* Determine the return type from type T by doubling the size of its
+ constituent vector elements. This is required for some of the AltiVec
+ PIM operations/predicates. */
+
+static tree
+altivec_cov_rt_1d (tree t)
+{
+ if (t == V16QI_type_node)
+ return V8HI_type_node;
+ else if (t == unsigned_V16QI_type_node)
+ return unsigned_V8HI_type_node;
+ else if (t == bool_V16QI_type_node)
+ return bool_V8HI_type_node;
+ else if (t == V8HI_type_node)
+ return V4SI_type_node;
+ else if (t == unsigned_V8HI_type_node || t == pixel_V8HI_type_node)
+ return unsigned_V4SI_type_node;
+ else if (t == bool_V8HI_type_node)
+ return bool_V4SI_type_node;
+ else
+ return NULL_TREE; /* Invalid argument. */
+}
+
+/* Determine the return type from type T by halving the size of its
+ constituent vector elements. This is required for some of the AltiVec
+ PIM operations/predicates. */
+
+static tree
+altivec_cov_rt_1h (tree t)
+{
+ if (t == V8HI_type_node)
+ return V16QI_type_node;
+ else if (t == unsigned_V8HI_type_node || t == pixel_V8HI_type_node)
+ return unsigned_V16QI_type_node;
+ else if (t == bool_V8HI_type_node)
+ return bool_V16QI_type_node;
+ else if (t == V4SI_type_node)
+ return V8HI_type_node;
+ else if (t == unsigned_V4SI_type_node)
+ return unsigned_V8HI_type_node;
+ else if (t == bool_V4SI_type_node)
+ return bool_V8HI_type_node;
+ else
+ return NULL_TREE; /* Invalid argument. */
+}
+
+/* Given the types T1 and T2 of the first two arguments, and INFO pointing
+ to the first of available overload candidates (in the ALTIVEC_PIM_TABLE)
+ for an AltiVec PIM operation or predicate, select a desired overload
+ candidate by incrementing and returning INFO as appropriate. If no
+ overload candidate is suitable, return NULL. */
+
+static struct altivec_pim_info *
+altivec_ovl_resolve (struct altivec_pim_info *info, tree t1, tree t2)
+{
+ /* Make sure we have all the types that we need. */
+ if (!t1 || (!t2 && (info->flags & pim_ovl_MASK) >= pim_ovl_16u_16u))
+ return 0;
+
+ /* Examine overload candidates in order, and return the first one
+ that matches. For this scheme to work, overload candidates must
+ be ordered from most to least type-specific. */
+ do
+ {
+ switch (info->flags & pim_ovl_MASK)
+ {
+
+#define OVL_MATCH(EXPR) if (EXPR) return info; break
+
+ case pim_ovl_16:
+ OVL_MATCH (TYPE_MODE (t1) == V16QImode);
+
+ case pim_ovl_16u:
+ OVL_MATCH (TYPE_MODE (t1) == V16QImode && TYPE_UNSIGNED (t1));
+
+ case pim_ovl_8:
+ OVL_MATCH (TYPE_MODE (t1) == V8HImode);
+
+ case pim_ovl_8u:
+ OVL_MATCH (TYPE_MODE (t1) == V8HImode && TYPE_UNSIGNED (t1));
+
+ case pim_ovl_8p:
+ OVL_MATCH (t1 == pixel_V8HI_type_node);
+
+ case pim_ovl_4:
+ OVL_MATCH (TYPE_MODE (t1) == V4SImode || TYPE_MODE (t1) == V4SFmode);
+
+ case pim_ovl_4u:
+ OVL_MATCH (TYPE_MODE (t1) == V4SImode && TYPE_UNSIGNED (t1));
+
+ case pim_ovl_4f:
+ OVL_MATCH (TYPE_MODE (t1) == V4SFmode);
+
+ case pim_ovl_16u_16u:
+ OVL_MATCH (t1 == unsigned_V16QI_type_node
+ || t2 == unsigned_V16QI_type_node);
+
+ case pim_ovl_8u_8u:
+ OVL_MATCH (t1 == unsigned_V8HI_type_node
+ || t1 == pixel_V8HI_type_node
+ || t2 == unsigned_V8HI_type_node
+ || t2 == pixel_V8HI_type_node);
+
+ case pim_ovl_4u_4u:
+ OVL_MATCH (t1 == unsigned_V4SI_type_node
+ || t2 == unsigned_V4SI_type_node);
+
+ case pim_ovl_pqi_2:
+ OVL_MATCH (TREE_CODE (t2) == POINTER_TYPE
+ && (TYPE_MODE (TREE_TYPE (t2)) == QImode
+ || TYPE_MODE (TREE_TYPE (t2)) == V16QImode));
+
+ case pim_ovl_phi_2:
+ OVL_MATCH (TREE_CODE (t2) == POINTER_TYPE
+ && (TYPE_MODE (TREE_TYPE (t2)) == HImode
+ || TYPE_MODE (TREE_TYPE (t2)) == V8HImode));
+
+ case pim_ovl_psi_2:
+ OVL_MATCH (TREE_CODE (t2) == POINTER_TYPE
+ && (TYPE_MODE (TREE_TYPE (t2)) == SImode
+ || TYPE_MODE (TREE_TYPE (t2)) == V4SImode
+ || TYPE_MODE (TREE_TYPE (t2)) == SFmode
+ || TYPE_MODE (TREE_TYPE (t2)) == V4SFmode));
+
+ default: /* Catch-all. */
+ return info;
+
+#undef OVL_MATCH
+ }
+ }
+ while (!((++info)->flags & pim_group)); /* Advance to next candidate. */
+
+ return NULL; /* No suitable overload candidate found. */
+}
+
+/* Convert each function argument in the ARGS list into a corresponding
+ type found in the TYPES list. This must be done before calling the
+ __builtin_... AltiVec instructions, whose declared argument types may differ
+ from what was passed to rs6000_fold_builtin(). */
+
+static tree
+altivec_convert_args (tree types, tree args)
+{
+ tree t, a;
+
+ for (t = types, a = args; t && a; t = TREE_CHAIN (t), a = TREE_CHAIN (a))
+ {
+ TREE_VALUE (a) = convert (TREE_VALUE (t), TREE_VALUE (a));
+
+ /* Suppress overflows, so that GIMPLE does not create temporary
+ variables on us. */
+ if (TREE_CODE (TREE_VALUE (a)) == INTEGER_CST)
+ {
+ TREE_OVERFLOW (TREE_VALUE (a)) = 0;
+ TREE_CONSTANT_OVERFLOW (TREE_VALUE (a)) = 0;
+ }
+ }
+
+ return args;
+}
+
+/* The following function rewrites EXP by substituting AltiVec PIM operations
+ or predicates with built-in instructions defined above. Type casts are
+ provided if needed. */
+
+tree
+rs6000_fold_builtin (tree exp, bool ARG_UNUSED (ignore))
+{
+ tree fndecl, arglist, rettype;
+ tree typ1 = NULL_TREE, typ2 = NULL_TREE;
+ int fcode, ovl_error = 0;
+ struct altivec_pim_info *info;
+
+ /* Bail out if not in Apple AltiVec mode. */
+ if (!rs6000_altivec_pim)
+ return NULL_TREE;
+
+ fndecl = get_callee_fndecl (exp);
+ fcode = DECL_FUNCTION_CODE (fndecl);
+
+ /* Bail out unless we are looking at one of the AltiVec PIM
+ operations/predicates. */
+
+ if (fcode < ALTIVEC_PIM__FIRST || fcode > ALTIVEC_PIM__LAST)
+ return NULL_TREE;
+
+ /* Point at the first (and possibly only) entry in ALTIVEC_PIM_TABLE
+ describing this PIM operation/predicate, and how to convert it to
+ a __builtin_... call. */
+
+ info = altivec_pim_table + (fcode - ALTIVEC_PIM__FIRST);
+
+ /* Separate out the argument types for further analysis. */
+
+ arglist = TREE_OPERAND (exp, 1);
+
+ if (arglist)
+ typ1 = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_VALUE (arglist)));
+
+ if (arglist && TREE_CHAIN (arglist))
+ typ2 = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_VALUE (TREE_CHAIN (arglist))));
+
+ /* Select from a list of overloaded functions, if needed. */
+
+ if (info->flags & pim_ovl_MASK)
+ {
+ info = altivec_ovl_resolve (info, typ1, typ2);
+
+ if (!info)
+ {
+ /* No suitable overload candidate was found! */
+ ovl_error = 1; /* We use this to indicate error. */
+ /* Point at the first overload candidate again. */
+ info = altivec_pim_table + (fcode - ALTIVEC_PIM__FIRST);
+ }
+ }
+
+ /* Determine the return type. */
+
+ switch (info->flags & pim_rt_MASK)
+ {
+ case pim_rt_12:
+ /* Return type is covariant with the first two arguments. */
+ rettype = altivec_cov_rt_12 (typ1, typ2);
+ break;
+
+ /* Return type is covariant with pointee of second argument. */
+ case pim_rt_2p:
+ rettype = altivec_cov_rt_2p (typ2);
+ break;
+
+ /* Return type is covariant with the first argument only. */
+ case pim_rt_1:
+ rettype = typ1;
+ break;
+
+ /* Return type is covariant with first argument, but with doubled
+ vector element sizes. */
+ case pim_rt_1d:
+ rettype = altivec_cov_rt_1d (typ1);
+ break;
+
+ /* Return type is covariant with first argument, but with halved
+ vector element sizes. */
+ case pim_rt_1h:
+ rettype = altivec_cov_rt_1h (typ1);
+ break;
+
+ default:
+ /* Retrieve return type to use from ALTIVEC_PIM_TABLE. */
+ rettype = info->rettype;
+ }
+
+ /* Rearrange arguments, as needed. */
+
+ switch (info->flags & pim_manip_MASK)
+ {
+ case pim_manip_swap:
+ if (!typ1 || !typ2)
+ rettype = NULL_TREE;
+ else
+ {
+ tree swap = TREE_VALUE (arglist);
+
+ TREE_VALUE (arglist) = TREE_VALUE (TREE_CHAIN (arglist));
+ TREE_VALUE (TREE_CHAIN (arglist)) = swap;
+ }
+
+ break;
+
+ case pim_manip_dup:
+ if (!typ1 || typ2)
+ rettype = NULL_TREE;
+ else
+ TREE_CHAIN (arglist) = tree_cons (NULL_TREE, TREE_VALUE (arglist),
+ NULL_TREE);
+
+ break;
+ }
+
+ /* For predicates, prepend the proper CR6 value to the argument list. */
+
+ if (fcode >= ALTIVEC_PIM_VEC_ALL_EQ)
+ arglist = tree_cons (NULL_TREE,
+ build_int_cst (NULL_TREE, info->flags & pim_cr6_MASK),
+ arglist);
+
+ /* If we could not properly determine an overload candidate or a return type,
+ issue an error. */
+
+ if (ovl_error || !rettype)
+ {
+ error ("invalid argument(s) for AltiVec operation or predicate");
+ /* Choose the return type for the first overload candidate, if
+ a type has been provided. Otherwise, use 'vector signed int'. */
+ rettype = info->rettype ? info->rettype : V4SI_type_node;
+ }
+
+ /* Retrieve the underlying AltiVec __builtin_... to call, and call it. */
+
+ fndecl = vector_builtin_fns [info->insn];
+ arglist = altivec_convert_args (TYPE_ARG_TYPES (TREE_TYPE (fndecl)),
+ arglist);
+
+ return convert (rettype, build_function_call_expr (fndecl, arglist));
+}
+/* APPLE LOCAL end AltiVec */
+
static rtx
rs6000_expand_unop_builtin (enum insn_code icode, tree arglist, rtx target)
{
@@ -6680,8 +7730,20 @@ rs6000_expand_unop_builtin (enum insn_code icode, tree arglist, rtx target)
if (icode == CODE_FOR_altivec_vspltisb
|| icode == CODE_FOR_altivec_vspltish
- || icode == CODE_FOR_altivec_vspltisw
- || icode == CODE_FOR_spe_evsplatfi
+ /* APPLE LOCAL begin 4119059 */
+ || icode == CODE_FOR_altivec_vspltisw)
+ {
+ /* Only allow 5-bit *signed* literals. */
+ if (GET_CODE (op0) != CONST_INT
+ || INTVAL (op0) > 15
+ || INTVAL (op0) < -16)
+ {
+ error ("argument 1 must be a 5-bit signed literal");
+ return const0_rtx;
+ }
+ }
+ if (icode == CODE_FOR_spe_evsplatfi
+ /* APPLE LOCAL end 4119059 */
|| icode == CODE_FOR_spe_evsplati)
{
/* Only allow 5-bit *signed* literals. */
@@ -7924,6 +8986,12 @@ rs6000_init_builtins (void)
altivec_init_builtins ();
if (TARGET_ALTIVEC || TARGET_SPE)
rs6000_common_init_builtins ();
+
+ /* APPLE LOCAL begin constant cfstrings */
+#ifdef SUBTARGET_INIT_BUILTINS
+ SUBTARGET_INIT_BUILTINS;
+#endif
+ /* APPLE LOCAL end constant cfstrings */
}
/* Search through a set of builtins and enable the mask bits.
@@ -8392,6 +9460,716 @@ altivec_init_builtins (void)
/* Record the decl. Will be used by rs6000_builtin_mask_for_load. */
altivec_builtin_mask_for_load = decl;
}
+
+ /* APPLE LOCAL begin AltiVec */
+ /* If Apple AltiVec is enabled, we need to define additional builtins
+ in lieu of what <altivec.h> provides for FSF AltiVec. */
+ if (rs6000_altivec_pim)
+ {
+ tree int_ftype_ellipsis = build_function_type (integer_type_node,
+ NULL_TREE);
+ int pim_code = ALTIVEC_PIM__FIRST;
+
+ /* NB: For overloaded operations/predicates, the pim_... flags specify
+ how to match up the argument types and how to determine the
+ return type, if necessary; the rs6000_fold_builtin() routine
+ does all this. */
+
+ /* PIM Operations. */
+
+ gcc_assert (pim_code == ALTIVEC_PIM_VEC_ABS);
+
+ def_pim_builtin ("vec_abs", V16QI_type_node, ABS_V16QI, pim_ovl_16 | pim_group);
+ def_pim_builtin ("vec_abs.2", V8HI_type_node, ABS_V8HI, pim_ovl_8);
+ def_pim_builtin ("vec_abs.3", V4SF_type_node, ABS_V4SF, pim_ovl_4f);
+ def_pim_builtin ("vec_abs.4", V4SI_type_node, ABS_V4SI, pim_ovl_4);
+
+ def_pim_builtin ("vec_abss", V16QI_type_node, ABSS_V16QI, pim_ovl_16 | pim_group);
+ def_pim_builtin ("vec_abss.2", V8HI_type_node, ABSS_V8HI, pim_ovl_8);
+ def_pim_builtin ("vec_abss.3", V4SI_type_node, ABSS_V4SI, pim_ovl_4);
+
+ def_pim_builtin ("vec_add", NULL_TREE, VADDUBM, pim_ovl_16 | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_add.2", NULL_TREE, VADDUHM, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_add.3", V4SF_type_node, VADDFP, pim_ovl_4f);
+ def_pim_builtin ("vec_add.4", NULL_TREE, VADDUWM, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_addc", unsigned_V4SI_type_node, VADDCUW, pim_group);
+
+ def_pim_builtin ("vec_adds", NULL_TREE, VADDUBS, pim_ovl_16u_16u | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_adds.2", NULL_TREE, VADDSBS, pim_ovl_16 | pim_rt_12);
+ def_pim_builtin ("vec_adds.3", NULL_TREE, VADDUHS, pim_ovl_8u_8u | pim_rt_12);
+ def_pim_builtin ("vec_adds.4", NULL_TREE, VADDSHS, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_adds.5", NULL_TREE, VADDUWS, pim_ovl_4u_4u | pim_rt_12);
+ def_pim_builtin ("vec_adds.6", NULL_TREE, VADDSWS, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_and", NULL_TREE, VAND, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_andc", NULL_TREE, VANDC, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_avg", NULL_TREE, VAVGUB, pim_ovl_16u | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_avg.2", NULL_TREE, VAVGSB, pim_ovl_16 | pim_rt_12);
+ def_pim_builtin ("vec_avg.3", NULL_TREE, VAVGUH, pim_ovl_8u | pim_rt_12);
+ def_pim_builtin ("vec_avg.4", NULL_TREE, VAVGSH, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_avg.5", NULL_TREE, VAVGUW, pim_ovl_4u | pim_rt_12);
+ def_pim_builtin ("vec_avg.6", NULL_TREE, VAVGSW, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_ceil", V4SF_type_node, VRFIP, pim_group);
+
+ def_pim_builtin ("vec_cmpb", V4SI_type_node, VCMPBFP, pim_group);
+
+ def_pim_builtin ("vec_cmpeq", bool_V16QI_type_node, VCMPEQUB, pim_ovl_16 | pim_group);
+ def_pim_builtin ("vec_cmpeq.2", bool_V8HI_type_node, VCMPEQUH, pim_ovl_8);
+ def_pim_builtin ("vec_cmpeq.3", bool_V4SI_type_node, VCMPEQFP, pim_ovl_4f);
+ def_pim_builtin ("vec_cmpeq.4", bool_V4SI_type_node, VCMPEQUW, pim_ovl_4);
+
+ def_pim_builtin ("vec_cmpge", bool_V4SI_type_node, VCMPGEFP, pim_group);
+
+ def_pim_builtin ("vec_cmpgt", bool_V16QI_type_node, VCMPGTUB, pim_ovl_16u | pim_group);
+ def_pim_builtin ("vec_cmpgt.2", bool_V16QI_type_node, VCMPGTSB, pim_ovl_16);
+ def_pim_builtin ("vec_cmpgt.3", bool_V8HI_type_node, VCMPGTUH, pim_ovl_8u);
+ def_pim_builtin ("vec_cmpgt.4", bool_V8HI_type_node, VCMPGTSH, pim_ovl_8);
+ def_pim_builtin ("vec_cmpgt.5", bool_V4SI_type_node, VCMPGTFP, pim_ovl_4f);
+ def_pim_builtin ("vec_cmpgt.6", bool_V4SI_type_node, VCMPGTUW, pim_ovl_4u);
+ def_pim_builtin ("vec_cmpgt.7", bool_V4SI_type_node, VCMPGTSW, pim_ovl_4);
+
+ def_pim_builtin ("vec_cmple", bool_V4SI_type_node, VCMPGEFP, pim_manip_swap | pim_group);
+
+ def_pim_builtin ("vec_cmplt", bool_V16QI_type_node, VCMPGTUB, pim_ovl_16u | pim_manip_swap | pim_group);
+ def_pim_builtin ("vec_cmplt.2", bool_V16QI_type_node, VCMPGTSB, pim_ovl_16 | pim_manip_swap);
+ def_pim_builtin ("vec_cmplt.3", bool_V8HI_type_node, VCMPGTUH, pim_ovl_8u | pim_manip_swap);
+ def_pim_builtin ("vec_cmplt.4", bool_V8HI_type_node, VCMPGTSH, pim_ovl_8 | pim_manip_swap);
+ def_pim_builtin ("vec_cmplt.5", bool_V4SI_type_node, VCMPGTFP, pim_ovl_4f | pim_manip_swap);
+ def_pim_builtin ("vec_cmplt.6", bool_V4SI_type_node, VCMPGTUW, pim_ovl_4u | pim_manip_swap);
+ def_pim_builtin ("vec_cmplt.7", bool_V4SI_type_node, VCMPGTSW, pim_ovl_4 | pim_manip_swap);
+
+ def_pim_builtin ("vec_ctf", V4SF_type_node, VCFUX, pim_ovl_4u | pim_group);
+ def_pim_builtin ("vec_ctf.2", V4SF_type_node, VCFSX, pim_ovl_4);
+
+ def_pim_builtin ("vec_cts", V4SI_type_node, VCTSXS, pim_ovl_4f | pim_group);
+
+ def_pim_builtin ("vec_ctu", unsigned_V4SI_type_node, VCTUXS, pim_ovl_4f | pim_group);
+
+ def_pim_builtin ("vec_dss", void_type_node, DSS, pim_group);
+
+ def_pim_builtin ("vec_dssall", void_type_node, DSSALL, pim_group);
+
+ def_pim_builtin ("vec_dst", void_type_node, DST, pim_group);
+
+ def_pim_builtin ("vec_dstst", void_type_node, DSTST, pim_group);
+
+ def_pim_builtin ("vec_dststt", void_type_node, DSTSTT, pim_group);
+
+ def_pim_builtin ("vec_dstt", void_type_node, DSTT, pim_group);
+
+ def_pim_builtin ("vec_expte", V4SF_type_node, VEXPTEFP, pim_group);
+
+ def_pim_builtin ("vec_floor", V4SF_type_node, VRFIM, pim_group);
+
+ def_pim_builtin ("vec_ld", NULL_TREE, LVX, pim_rt_2p | pim_group);
+
+ def_pim_builtin ("vec_lde", NULL_TREE, LVEBX, pim_ovl_pqi_2 | pim_rt_2p | pim_group);
+ def_pim_builtin ("vec_lde.2", NULL_TREE, LVEHX, pim_ovl_phi_2 | pim_rt_2p);
+ def_pim_builtin ("vec_lde.3", NULL_TREE, LVEWX, pim_ovl_psi_2 | pim_rt_2p);
+
+ def_pim_builtin ("vec_ldl", NULL_TREE, LVXL, pim_rt_2p | pim_group);
+
+ def_pim_builtin ("vec_loge", V4SF_type_node, VLOGEFP, pim_group);
+
+ def_pim_builtin ("vec_lvebx", NULL_TREE, LVEBX, pim_rt_2p | pim_group);
+ def_pim_builtin ("vec_lvehx", NULL_TREE, LVEHX, pim_rt_2p | pim_group);
+ def_pim_builtin ("vec_lvewx", NULL_TREE, LVEWX, pim_rt_2p | pim_group);
+
+ def_pim_builtin ("vec_lvsl", unsigned_V16QI_type_node, LVSL, pim_group);
+
+ def_pim_builtin ("vec_lvsr", unsigned_V16QI_type_node, LVSR, pim_group);
+
+ def_pim_builtin ("vec_lvx", NULL_TREE, LVX, pim_rt_2p | pim_group);
+
+ def_pim_builtin ("vec_lvxl", NULL_TREE, LVXL, pim_rt_2p | pim_group);
+
+ def_pim_builtin ("vec_madd", V4SF_type_node, VMADDFP, pim_group);
+
+ def_pim_builtin ("vec_madds", V8HI_type_node, VMHADDSHS, pim_group);
+
+ def_pim_builtin ("vec_max", NULL_TREE, VMAXUB, pim_ovl_16u_16u | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_max.2", NULL_TREE, VMAXSB, pim_ovl_16 | pim_rt_12);
+ def_pim_builtin ("vec_max.3", NULL_TREE, VMAXUH, pim_ovl_8u_8u | pim_rt_12);
+ def_pim_builtin ("vec_max.4", NULL_TREE, VMAXSH, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_max.5", NULL_TREE, VMAXFP, pim_ovl_4f | pim_rt_12);
+ def_pim_builtin ("vec_max.6", NULL_TREE, VMAXUW, pim_ovl_4u_4u | pim_rt_12);
+ def_pim_builtin ("vec_max.7", NULL_TREE, VMAXSW, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_mergeh", NULL_TREE, VMRGHB, pim_ovl_16 | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_mergeh.2", NULL_TREE, VMRGHH, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_mergeh.3", NULL_TREE, VMRGHW, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_mergel", NULL_TREE, VMRGLB, pim_ovl_16 | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_mergel.2", NULL_TREE, VMRGLH, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_mergel.3", NULL_TREE, VMRGLW, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_mfvscr", unsigned_V8HI_type_node, MFVSCR, pim_group);
+
+ def_pim_builtin ("vec_min", NULL_TREE, VMINUB, pim_ovl_16u_16u | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_min.2", NULL_TREE, VMINSB, pim_ovl_16 | pim_rt_12);
+ def_pim_builtin ("vec_min.3", NULL_TREE, VMINUH, pim_ovl_8u_8u | pim_rt_12);
+ def_pim_builtin ("vec_min.4", NULL_TREE, VMINSH, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_min.5", NULL_TREE, VMINFP, pim_ovl_4f | pim_rt_12);
+ def_pim_builtin ("vec_min.6", NULL_TREE, VMINUW, pim_ovl_4u_4u | pim_rt_12);
+ def_pim_builtin ("vec_min.7", NULL_TREE, VMINSW, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_mladd", unsigned_V8HI_type_node, VMLADDUHM, pim_ovl_8u_8u | pim_group);
+ def_pim_builtin ("vec_mladd.2", V8HI_type_node, VMLADDUHM, pim_ovl_8);
+
+ def_pim_builtin ("vec_mradds", V8HI_type_node, VMHRADDSHS, pim_group);
+
+ def_pim_builtin ("vec_msum", unsigned_V4SI_type_node, VMSUMUBM, pim_ovl_16u | pim_group);
+ def_pim_builtin ("vec_msum.2", V4SI_type_node, VMSUMMBM, pim_ovl_16);
+ def_pim_builtin ("vec_msum.3", unsigned_V4SI_type_node, VMSUMUHM, pim_ovl_8u);
+ def_pim_builtin ("vec_msum.4", V4SI_type_node, VMSUMSHM, pim_ovl_8);
+
+ def_pim_builtin ("vec_msums", unsigned_V4SI_type_node, VMSUMUHS, pim_ovl_8u | pim_group);
+ def_pim_builtin ("vec_msums.2", V4SI_type_node, VMSUMSHS, pim_ovl_8);
+
+ def_pim_builtin ("vec_mtvscr", void_type_node, MTVSCR, pim_group);
+
+ def_pim_builtin ("vec_mule", unsigned_V8HI_type_node, VMULEUB, pim_ovl_16u | pim_group);
+ def_pim_builtin ("vec_mule.2", V8HI_type_node, VMULESB, pim_ovl_16);
+ def_pim_builtin ("vec_mule.3", unsigned_V4SI_type_node, VMULEUH, pim_ovl_8u);
+ def_pim_builtin ("vec_mule.4", V4SI_type_node, VMULESH, pim_ovl_8);
+
+ def_pim_builtin ("vec_mulo", unsigned_V8HI_type_node, VMULOUB, pim_ovl_16u | pim_group);
+ def_pim_builtin ("vec_mulo.2", V8HI_type_node, VMULOSB, pim_ovl_16);
+ def_pim_builtin ("vec_mulo.3", unsigned_V4SI_type_node, VMULOUH, pim_ovl_8u);
+ def_pim_builtin ("vec_mulo.4", V4SI_type_node, VMULOSH, pim_ovl_8);
+
+ def_pim_builtin ("vec_nmsub", V4SF_type_node, VNMSUBFP, pim_group);
+
+ def_pim_builtin ("vec_nor", NULL_TREE, VNOR, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_or", NULL_TREE, VOR, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_pack", NULL_TREE, VPKUHUM, pim_ovl_8 | pim_rt_1h | pim_group);
+ def_pim_builtin ("vec_pack.2", NULL_TREE, VPKUWUM, pim_ovl_4 | pim_rt_1h);
+
+ def_pim_builtin ("vec_packpx", pixel_V8HI_type_node, VPKPX, pim_group);
+
+ def_pim_builtin ("vec_packs", unsigned_V16QI_type_node, VPKUHUS, pim_ovl_8u | pim_group);
+ def_pim_builtin ("vec_packs.2", V16QI_type_node, VPKSHSS, pim_ovl_8);
+ def_pim_builtin ("vec_packs.3", unsigned_V8HI_type_node, VPKUWUS, pim_ovl_4u);
+ def_pim_builtin ("vec_packs.4", V8HI_type_node, VPKSWSS, pim_ovl_4);
+
+ def_pim_builtin ("vec_packsu", unsigned_V16QI_type_node, VPKUHUS, pim_ovl_8u | pim_group);
+ def_pim_builtin ("vec_packsu.2", unsigned_V16QI_type_node, VPKSHUS, pim_ovl_8);
+ def_pim_builtin ("vec_packsu.3", unsigned_V8HI_type_node, VPKUWUS, pim_ovl_4u);
+ def_pim_builtin ("vec_packsu.4", unsigned_V8HI_type_node, VPKSWUS, pim_ovl_4);
+
+ def_pim_builtin ("vec_perm", V16QI_type_node, VPERM_4SI, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_re", V4SF_type_node, VREFP, pim_group);
+
+ def_pim_builtin ("vec_rl", NULL_TREE, VRLB, pim_ovl_16 | pim_rt_1 | pim_group);
+ def_pim_builtin ("vec_rl.2", NULL_TREE, VRLH, pim_ovl_8 | pim_rt_1);
+ def_pim_builtin ("vec_rl.3", NULL_TREE, VRLW, pim_ovl_4 | pim_rt_1);
+
+ def_pim_builtin ("vec_round", V4SF_type_node, VRFIN, pim_group);
+
+ def_pim_builtin ("vec_rsqrte", V4SF_type_node, VRSQRTEFP, pim_group);
+
+ def_pim_builtin ("vec_sel", NULL_TREE, VSEL_4SI, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_sl", NULL_TREE, VSLB, pim_ovl_16 | pim_rt_1 | pim_group);
+ def_pim_builtin ("vec_sl.2", NULL_TREE, VSLH, pim_ovl_8 | pim_rt_1);
+ def_pim_builtin ("vec_sl.3", NULL_TREE, VSLW, pim_ovl_4 | pim_rt_1);
+
+ def_pim_builtin ("vec_sld", NULL_TREE, VSLDOI_4SI, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_sll", NULL_TREE, VSL, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_slo", NULL_TREE, VSLO, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_splat", NULL_TREE, VSPLTB, pim_ovl_16 | pim_rt_1 | pim_group);
+ def_pim_builtin ("vec_splat.2", NULL_TREE, VSPLTH, pim_ovl_8 | pim_rt_1);
+ def_pim_builtin ("vec_splat.3", NULL_TREE, VSPLTW, pim_ovl_4 | pim_rt_1);
+
+ def_pim_builtin ("vec_splat_s8", V16QI_type_node, VSPLTISB, pim_group);
+
+ def_pim_builtin ("vec_splat_s16", V8HI_type_node, VSPLTISH, pim_group);
+
+ def_pim_builtin ("vec_splat_s32", V4SI_type_node, VSPLTISW, pim_group);
+
+ def_pim_builtin ("vec_splat_u8", unsigned_V16QI_type_node, VSPLTISB, pim_group);
+
+ def_pim_builtin ("vec_splat_u16", unsigned_V8HI_type_node, VSPLTISH, pim_group);
+
+ def_pim_builtin ("vec_splat_u32", unsigned_V4SI_type_node, VSPLTISW, pim_group);
+
+ def_pim_builtin ("vec_sr", NULL_TREE, VSRB, pim_ovl_16 | pim_rt_1 | pim_group);
+ def_pim_builtin ("vec_sr.2", NULL_TREE, VSRH, pim_ovl_8 | pim_rt_1);
+ def_pim_builtin ("vec_sr.3", NULL_TREE, VSRW, pim_ovl_4 | pim_rt_1);
+
+ def_pim_builtin ("vec_sra", NULL_TREE, VSRAB, pim_ovl_16 | pim_rt_1 | pim_group);
+ def_pim_builtin ("vec_sra.2", NULL_TREE, VSRAH, pim_ovl_8 | pim_rt_1);
+ def_pim_builtin ("vec_sra.3", NULL_TREE, VSRAW, pim_ovl_4 | pim_rt_1);
+
+ def_pim_builtin ("vec_srl", NULL_TREE, VSR, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_sro", NULL_TREE, VSRO, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_st", void_type_node, STVX, pim_group);
+
+ def_pim_builtin ("vec_ste", void_type_node, STVEBX, pim_ovl_16 | pim_group);
+ def_pim_builtin ("vec_ste.2", void_type_node, STVEHX, pim_ovl_8);
+ def_pim_builtin ("vec_ste.3", void_type_node, STVEWX, pim_ovl_4);
+
+ def_pim_builtin ("vec_stl", void_type_node, STVXL, pim_group);
+
+ def_pim_builtin ("vec_stvebx", void_type_node, STVEBX, pim_group);
+ def_pim_builtin ("vec_stvehx", void_type_node, STVEHX, pim_group);
+ def_pim_builtin ("vec_stvewx", void_type_node, STVEWX, pim_group);
+
+ def_pim_builtin ("vec_stvx", void_type_node, STVX, pim_group);
+
+ def_pim_builtin ("vec_stvxl", void_type_node, STVXL, pim_group);
+
+ def_pim_builtin ("vec_sub", NULL_TREE, VSUBUBM, pim_ovl_16 | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_sub.2", NULL_TREE, VSUBUHM, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_sub.3", NULL_TREE, VSUBFP, pim_ovl_4f | pim_rt_12);
+ def_pim_builtin ("vec_sub.4", NULL_TREE, VSUBUWM, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_subc", unsigned_V4SI_type_node, VSUBCUW, pim_group);
+
+ def_pim_builtin ("vec_subs", NULL_TREE, VSUBUBS, pim_ovl_16u_16u | pim_rt_12 | pim_group);
+ def_pim_builtin ("vec_subs.2", NULL_TREE, VSUBSBS, pim_ovl_16 | pim_rt_12);
+ def_pim_builtin ("vec_subs.3", NULL_TREE, VSUBUHS, pim_ovl_8u_8u | pim_rt_12);
+ def_pim_builtin ("vec_subs.4", NULL_TREE, VSUBSHS, pim_ovl_8 | pim_rt_12);
+ def_pim_builtin ("vec_subs.5", NULL_TREE, VSUBUWS, pim_ovl_4u_4u | pim_rt_12);
+ def_pim_builtin ("vec_subs.6", NULL_TREE, VSUBSWS, pim_ovl_4 | pim_rt_12);
+
+ def_pim_builtin ("vec_sum4s", unsigned_V4SI_type_node, VSUM4UBS, pim_ovl_16u | pim_group);
+ def_pim_builtin ("vec_sum4s.2", V4SI_type_node, VSUM4SBS, pim_ovl_16);
+ def_pim_builtin ("vec_sum4s.3", V4SI_type_node, VSUM4SHS, pim_ovl_8);
+
+ def_pim_builtin ("vec_sum2s", V4SI_type_node, VSUM2SWS, pim_group);
+
+ def_pim_builtin ("vec_sums", V4SI_type_node, VSUMSWS, pim_group);
+
+ def_pim_builtin ("vec_trunc", V4SF_type_node, VRFIZ, pim_group);
+
+ def_pim_builtin ("vec_unpackh", NULL_TREE, VUPKHSB, pim_ovl_16 | pim_rt_1d | pim_group);
+ def_pim_builtin ("vec_unpackh.2", NULL_TREE, VUPKHPX, pim_ovl_8p | pim_rt_1d);
+ def_pim_builtin ("vec_unpackh.3", NULL_TREE, VUPKHSH, pim_ovl_8 | pim_rt_1d);
+
+ def_pim_builtin ("vec_unpackl", NULL_TREE, VUPKLSB, pim_ovl_16 | pim_rt_1d | pim_group);
+ def_pim_builtin ("vec_unpackl.2", NULL_TREE, VUPKLPX, pim_ovl_8p | pim_rt_1d);
+ def_pim_builtin ("vec_unpackl.3", NULL_TREE, VUPKLSH, pim_ovl_8 | pim_rt_1d);
+
+ gcc_assert (pim_code == ALTIVEC_PIM_VEC_VADDCUW);
+
+ def_pim_builtin ("vec_vaddcuw", unsigned_V4SI_type_node, VADDCUW, pim_group);
+
+ def_pim_builtin ("vec_vaddfp", V4SF_type_node, VADDFP, pim_group);
+
+ def_pim_builtin ("vec_vaddsbs", NULL_TREE, VADDSBS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vaddshs", NULL_TREE, VADDSHS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vaddsws", NULL_TREE, VADDSWS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vaddubm", NULL_TREE, VADDUBM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vaddubs", NULL_TREE, VADDUBS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vadduhm", NULL_TREE, VADDUHM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vadduhs", NULL_TREE, VADDUHS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vadduwm", NULL_TREE, VADDUWM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vadduws", NULL_TREE, VADDUWS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vand", NULL_TREE, VAND, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vandc", NULL_TREE, VANDC, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vavgsb", NULL_TREE, VAVGSB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vavgsh", NULL_TREE, VAVGSH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vavgsw", NULL_TREE, VAVGSW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vavgub", NULL_TREE, VAVGUB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vavguh", NULL_TREE, VAVGUH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vavguw", NULL_TREE, VAVGUW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vcfsx", V4SF_type_node, VCFSX, pim_group);
+
+ def_pim_builtin ("vec_vcfux", V4SF_type_node, VCFUX, pim_group);
+
+ def_pim_builtin ("vec_vcmpbfp", V4SI_type_node, VCMPBFP, pim_group);
+
+ def_pim_builtin ("vec_vcmpeqfp", bool_V4SI_type_node, VCMPEQFP, pim_group);
+
+ def_pim_builtin ("vec_vcmpequb", bool_V16QI_type_node, VCMPEQUB, pim_group);
+
+ def_pim_builtin ("vec_vcmpequh", bool_V8HI_type_node, VCMPEQUH, pim_group);
+
+ def_pim_builtin ("vec_vcmpequw", bool_V4SI_type_node, VCMPEQUW, pim_group);
+
+ def_pim_builtin ("vec_vcmpgefp", bool_V4SI_type_node, VCMPGEFP, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtfp", bool_V4SI_type_node, VCMPGTFP, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtsb", bool_V16QI_type_node, VCMPGTSB, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtsh", bool_V8HI_type_node, VCMPGTSH, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtsw", bool_V4SI_type_node, VCMPGTSW, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtub", bool_V16QI_type_node, VCMPGTUB, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtuh", bool_V8HI_type_node, VCMPGTUH, pim_group);
+
+ def_pim_builtin ("vec_vcmpgtuw", bool_V4SI_type_node, VCMPGTUW, pim_group);
+
+ def_pim_builtin ("vec_vctsxs", V4SI_type_node, VCTSXS, pim_group);
+
+ def_pim_builtin ("vec_vctuxs", unsigned_V4SI_type_node, VCTUXS, pim_group);
+
+ def_pim_builtin ("vec_vexptefp", V4SF_type_node, VEXPTEFP, pim_group);
+
+ def_pim_builtin ("vec_vlogefp", V4SF_type_node, VLOGEFP, pim_group);
+
+ def_pim_builtin ("vec_vmaddfp", V4SF_type_node, VMADDFP, pim_group);
+
+ def_pim_builtin ("vec_vmaxfp", NULL_TREE, VMAXFP, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmaxsb", NULL_TREE, VMAXSB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmaxsh", NULL_TREE, VMAXSH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmaxsw", NULL_TREE, VMAXSW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmaxub", NULL_TREE, VMAXUB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmaxuh", NULL_TREE, VMAXUH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmaxuw", NULL_TREE, VMAXUW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmhaddshs", V8HI_type_node, VMHADDSHS, pim_group);
+
+ def_pim_builtin ("vec_vmhraddshs", V8HI_type_node, VMHRADDSHS, pim_group);
+
+ def_pim_builtin ("vec_vminfp", NULL_TREE, VMINFP, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vminsb", NULL_TREE, VMINSB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vminsh", NULL_TREE, VMINSH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vminsw", NULL_TREE, VMINSW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vminub", NULL_TREE, VMINUB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vminuh", NULL_TREE, VMINUH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vminuw", NULL_TREE, VMINUW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmladduhm", NULL_TREE, VMLADDUHM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmrghb", NULL_TREE, VMRGHB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmrghh", NULL_TREE, VMRGHH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmrghw", NULL_TREE, VMRGHW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmrglb", NULL_TREE, VMRGLB, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmrglh", NULL_TREE, VMRGLH, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmrglw", NULL_TREE, VMRGLW, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vmsummbm", V4SI_type_node, VMSUMMBM, pim_group);
+
+ def_pim_builtin ("vec_vmsumshm", V4SI_type_node, VMSUMSHM, pim_group);
+
+ def_pim_builtin ("vec_vmsumshs", V4SI_type_node, VMSUMSHS, pim_group);
+
+ def_pim_builtin ("vec_vmsumubm", unsigned_V4SI_type_node, VMSUMUBM, pim_group);
+
+ def_pim_builtin ("vec_vmsumuhm", unsigned_V4SI_type_node, VMSUMUHM, pim_group);
+
+ def_pim_builtin ("vec_vmsumuhs", unsigned_V4SI_type_node, VMSUMUHS, pim_group);
+
+ def_pim_builtin ("vec_vmulesb", V8HI_type_node, VMULESB, pim_group);
+
+ def_pim_builtin ("vec_vmulesh", V4SI_type_node, VMULESH, pim_group);
+
+ def_pim_builtin ("vec_vmuleub", unsigned_V8HI_type_node, VMULEUB, pim_group);
+
+ def_pim_builtin ("vec_vmuleuh", unsigned_V4SI_type_node, VMULEUH, pim_group);
+
+ def_pim_builtin ("vec_vmulosb", V8HI_type_node, VMULOSB, pim_group);
+
+ def_pim_builtin ("vec_vmulosh", V4SI_type_node, VMULOSH, pim_group);
+
+ def_pim_builtin ("vec_vmuloub", unsigned_V8HI_type_node, VMULOUB, pim_group);
+
+ def_pim_builtin ("vec_vmulouh", unsigned_V4SI_type_node, VMULOUH, pim_group);
+
+ def_pim_builtin ("vec_vnmsubfp", V4SF_type_node, VNMSUBFP, pim_group);
+
+ def_pim_builtin ("vec_vnor", NULL_TREE, VNOR, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vor", NULL_TREE, VOR, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vperm", V16QI_type_node, VPERM_4SI, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vpkpx", pixel_V8HI_type_node, VPKPX, pim_group);
+
+ def_pim_builtin ("vec_vpkshss", V16QI_type_node, VPKSHSS, pim_group);
+
+ def_pim_builtin ("vec_vpkshus", unsigned_V16QI_type_node, VPKSHUS, pim_group);
+
+ def_pim_builtin ("vec_vpkswss", V8HI_type_node, VPKSWSS, pim_group);
+
+ def_pim_builtin ("vec_vpkswus", unsigned_V8HI_type_node, VPKSWUS, pim_group);
+
+ def_pim_builtin ("vec_vpkuhum", NULL_TREE, VPKUHUM, pim_rt_1h | pim_group);
+
+ def_pim_builtin ("vec_vpkuhus", unsigned_V16QI_type_node, VPKUHUS, pim_group);
+
+ def_pim_builtin ("vec_vpkuwum", NULL_TREE, VPKUWUM, pim_rt_1h | pim_group);
+
+ def_pim_builtin ("vec_vpkuwus", unsigned_V8HI_type_node, VPKUWUS, pim_group);
+
+ def_pim_builtin ("vec_vrefp", V4SF_type_node, VREFP, pim_group);
+
+ def_pim_builtin ("vec_vrfim", V4SF_type_node, VRFIM, pim_group);
+
+ def_pim_builtin ("vec_vrfin", V4SF_type_node, VRFIN, pim_group);
+
+ def_pim_builtin ("vec_vrfip", V4SF_type_node, VRFIP, pim_group);
+
+ def_pim_builtin ("vec_vrfiz", V4SF_type_node, VRFIZ, pim_group);
+
+ def_pim_builtin ("vec_vrlb", NULL_TREE, VRLB, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vrlh", NULL_TREE, VRLH, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vrlw", NULL_TREE, VRLW, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vrsqrtefp", V4SF_type_node, VRSQRTEFP, pim_group);
+
+ def_pim_builtin ("vec_vsel", NULL_TREE, VSEL_4SI, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsl", NULL_TREE, VSL, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vslb", NULL_TREE, VSLB, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsldoi", NULL_TREE, VSLDOI_4SI, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vslh", NULL_TREE, VSLH, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vslo", NULL_TREE, VSLO, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vslw", NULL_TREE, VSLW, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vspltb", NULL_TREE, VSPLTB, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsplth", NULL_TREE, VSPLTH, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vspltisb", V16QI_type_node, VSPLTISB, pim_group);
+
+ def_pim_builtin ("vec_vspltish", V8HI_type_node, VSPLTISH, pim_group);
+
+ def_pim_builtin ("vec_vspltisw", V4SI_type_node, VSPLTISW, pim_group);
+
+ def_pim_builtin ("vec_vspltw", NULL_TREE, VSPLTW, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsr", NULL_TREE, VSR, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsrab", NULL_TREE, VSRAB, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsrah", NULL_TREE, VSRAH, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsraw", NULL_TREE, VSRAW, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsrb", NULL_TREE, VSRB, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsrh", NULL_TREE, VSRH, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsro", NULL_TREE, VSRO, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsrw", NULL_TREE, VSRW, pim_rt_1 | pim_group);
+
+ def_pim_builtin ("vec_vsubcuw", unsigned_V4SI_type_node, VSUBCUW, pim_group);
+
+ def_pim_builtin ("vec_vsubfp", NULL_TREE, VSUBFP, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubsbs", NULL_TREE, VSUBSBS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubshs", NULL_TREE, VSUBSHS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubsws", NULL_TREE, VSUBSWS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsububm", NULL_TREE, VSUBUBM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsububs", NULL_TREE, VSUBUBS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubuhm", NULL_TREE, VSUBUHM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubuhs", NULL_TREE, VSUBUHS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubuwm", NULL_TREE, VSUBUWM, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsubuws", NULL_TREE, VSUBUWS, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_vsum4sbs", V4SI_type_node, VSUM4SBS, pim_group);
+
+ def_pim_builtin ("vec_vsum4shs", V4SI_type_node, VSUM4SHS, pim_group);
+
+ def_pim_builtin ("vec_vsum4ubs", unsigned_V4SI_type_node, VSUM4UBS, pim_group);
+
+ def_pim_builtin ("vec_vsum2sws", V4SI_type_node, VSUM2SWS, pim_group);
+
+ def_pim_builtin ("vec_vsumsws", V4SI_type_node, VSUMSWS, pim_group);
+
+ def_pim_builtin ("vec_vupkhpx", NULL_TREE, VUPKHPX, pim_rt_1d | pim_group);
+
+ def_pim_builtin ("vec_vupkhsb", NULL_TREE, VUPKHSB, pim_rt_1d | pim_group);
+
+ def_pim_builtin ("vec_vupkhsh", NULL_TREE, VUPKHSH, pim_rt_1d | pim_group);
+
+ def_pim_builtin ("vec_vupklpx", NULL_TREE, VUPKLPX, pim_rt_1d | pim_group);
+
+ def_pim_builtin ("vec_vupklsb", NULL_TREE, VUPKLSB, pim_rt_1d | pim_group);
+
+ def_pim_builtin ("vec_vupklsh", NULL_TREE, VUPKLSH, pim_rt_1d | pim_group);
+
+ def_pim_builtin ("vec_vxor", NULL_TREE, VXOR, pim_rt_12 | pim_group);
+
+ def_pim_builtin ("vec_xor", NULL_TREE, VXOR, pim_rt_12 | pim_group);
+
+ /* PIM Predicates. */
+
+ gcc_assert (pim_code == ALTIVEC_PIM_VEC_ALL_EQ);
+
+ def_pim_builtin ("vec_all_eq", integer_type_node, VCMPEQUB_P, pim_ovl_16 | pim_cr6_lt | pim_group);
+ def_pim_builtin ("vec_all_eq.2", integer_type_node, VCMPEQUH_P, pim_ovl_8 | pim_cr6_lt);
+ def_pim_builtin ("vec_all_eq.3", integer_type_node, VCMPEQFP_P, pim_ovl_4f | pim_cr6_lt);
+ def_pim_builtin ("vec_all_eq.4", integer_type_node, VCMPEQUW_P, pim_ovl_4 | pim_cr6_lt);
+
+ def_pim_builtin ("vec_all_ge", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_manip_swap | pim_cr6_eq | pim_group);
+ def_pim_builtin ("vec_all_ge.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_manip_swap | pim_cr6_eq);
+ def_pim_builtin ("vec_all_ge.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_manip_swap | pim_cr6_eq);
+ def_pim_builtin ("vec_all_ge.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_manip_swap | pim_cr6_eq);
+ def_pim_builtin ("vec_all_ge.5", integer_type_node, VCMPGEFP_P, pim_ovl_4f | pim_cr6_lt);
+ def_pim_builtin ("vec_all_ge.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_manip_swap | pim_cr6_eq);
+ def_pim_builtin ("vec_all_ge.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_manip_swap | pim_cr6_eq);
+
+ def_pim_builtin ("vec_all_gt", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_cr6_lt | pim_group);
+ def_pim_builtin ("vec_all_gt.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_cr6_lt);
+ def_pim_builtin ("vec_all_gt.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_cr6_lt);
+ def_pim_builtin ("vec_all_gt.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_cr6_lt);
+ def_pim_builtin ("vec_all_gt.5", integer_type_node, VCMPGTFP_P, pim_ovl_4f | pim_cr6_lt);
+ def_pim_builtin ("vec_all_gt.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_cr6_lt);
+ def_pim_builtin ("vec_all_gt.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_cr6_lt);
+
+ def_pim_builtin ("vec_all_in", integer_type_node, VCMPBFP_P, pim_cr6_eq | pim_group);
+
+ def_pim_builtin ("vec_all_le", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_cr6_eq | pim_group);
+ def_pim_builtin ("vec_all_le.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_cr6_eq);
+ def_pim_builtin ("vec_all_le.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_cr6_eq);
+ def_pim_builtin ("vec_all_le.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_cr6_eq);
+ def_pim_builtin ("vec_all_le.5", integer_type_node, VCMPGEFP_P, pim_ovl_4f | pim_manip_swap | pim_cr6_lt);
+ def_pim_builtin ("vec_all_le.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_cr6_eq);
+ def_pim_builtin ("vec_all_le.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_cr6_eq);
+
+ def_pim_builtin ("vec_all_lt", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_manip_swap | pim_cr6_lt | pim_group);
+ def_pim_builtin ("vec_all_lt.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_manip_swap | pim_cr6_lt);
+ def_pim_builtin ("vec_all_lt.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_manip_swap | pim_cr6_lt);
+ def_pim_builtin ("vec_all_lt.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_manip_swap | pim_cr6_lt);
+ def_pim_builtin ("vec_all_lt.5", integer_type_node, VCMPGTFP_P, pim_ovl_4f | pim_manip_swap | pim_cr6_lt);
+ def_pim_builtin ("vec_all_lt.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_manip_swap | pim_cr6_lt);
+ def_pim_builtin ("vec_all_lt.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_manip_swap | pim_cr6_lt);
+
+ def_pim_builtin ("vec_all_nan", integer_type_node, VCMPEQFP_P, pim_manip_dup | pim_cr6_eq | pim_group);
+
+ def_pim_builtin ("vec_all_ne", integer_type_node, VCMPEQUB_P, pim_ovl_16 | pim_cr6_eq | pim_group);
+ def_pim_builtin ("vec_all_ne.2", integer_type_node, VCMPEQUH_P, pim_ovl_8 | pim_cr6_eq);
+ def_pim_builtin ("vec_all_ne.3", integer_type_node, VCMPEQFP_P, pim_ovl_4f | pim_cr6_eq);
+ def_pim_builtin ("vec_all_ne.4", integer_type_node, VCMPEQUW_P, pim_ovl_4 | pim_cr6_eq);
+
+ def_pim_builtin ("vec_all_nge", integer_type_node, VCMPGEFP_P, pim_cr6_eq | pim_group);
+
+ def_pim_builtin ("vec_all_ngt", integer_type_node, VCMPGTFP_P, pim_cr6_eq | pim_group);
+
+ def_pim_builtin ("vec_all_nle", integer_type_node, VCMPGEFP_P, pim_manip_swap | pim_cr6_eq | pim_group);
+
+ def_pim_builtin ("vec_all_nlt", integer_type_node, VCMPGEFP_P, pim_manip_swap | pim_cr6_eq | pim_group);
+
+ def_pim_builtin ("vec_all_numeric", integer_type_node, VCMPEQFP_P, pim_manip_dup | pim_cr6_lt | pim_group);
+
+ def_pim_builtin ("vec_any_eq", integer_type_node, VCMPEQUB_P, pim_ovl_16 | pim_cr6_ne | pim_group);
+ def_pim_builtin ("vec_any_eq.2", integer_type_node, VCMPEQUH_P, pim_ovl_8 | pim_cr6_ne);
+ def_pim_builtin ("vec_any_eq.3", integer_type_node, VCMPEQFP_P, pim_ovl_4f | pim_cr6_ne);
+ def_pim_builtin ("vec_any_eq.4", integer_type_node, VCMPEQUW_P, pim_ovl_4 | pim_cr6_ne);
+
+ def_pim_builtin ("vec_any_ge", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_manip_swap | pim_cr6_ge | pim_group);
+ def_pim_builtin ("vec_any_ge.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_manip_swap | pim_cr6_ge);
+ def_pim_builtin ("vec_any_ge.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_manip_swap | pim_cr6_ge);
+ def_pim_builtin ("vec_any_ge.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_manip_swap | pim_cr6_ge);
+ def_pim_builtin ("vec_any_ge.5", integer_type_node, VCMPGEFP_P, pim_ovl_4f | pim_cr6_ne);
+ def_pim_builtin ("vec_any_ge.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_manip_swap | pim_cr6_ge);
+ def_pim_builtin ("vec_any_ge.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_manip_swap | pim_cr6_ge);
+
+ def_pim_builtin ("vec_any_gt", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_cr6_ne | pim_group);
+ def_pim_builtin ("vec_any_gt.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_cr6_ne);
+ def_pim_builtin ("vec_any_gt.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_cr6_ne);
+ def_pim_builtin ("vec_any_gt.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_cr6_ne);
+ def_pim_builtin ("vec_any_gt.5", integer_type_node, VCMPGTFP_P, pim_ovl_4f | pim_cr6_ne);
+ def_pim_builtin ("vec_any_gt.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_cr6_ne);
+ def_pim_builtin ("vec_any_gt.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_cr6_ne);
+
+ def_pim_builtin ("vec_any_le", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_cr6_ge | pim_group);
+ def_pim_builtin ("vec_any_le.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_cr6_ge);
+ def_pim_builtin ("vec_any_le.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_cr6_ge);
+ def_pim_builtin ("vec_any_le.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_cr6_ge);
+ def_pim_builtin ("vec_any_le.5", integer_type_node, VCMPGEFP_P, pim_ovl_4f | pim_manip_swap | pim_cr6_ne);
+ def_pim_builtin ("vec_any_le.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_cr6_ge);
+ def_pim_builtin ("vec_any_le.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_cr6_ge);
+
+ def_pim_builtin ("vec_any_lt", integer_type_node, VCMPGTUB_P, pim_ovl_16u_16u | pim_manip_swap | pim_cr6_ne | pim_group);
+ def_pim_builtin ("vec_any_lt.2", integer_type_node, VCMPGTSB_P, pim_ovl_16 | pim_manip_swap | pim_cr6_ne);
+ def_pim_builtin ("vec_any_lt.3", integer_type_node, VCMPGTUH_P, pim_ovl_8u_8u | pim_manip_swap | pim_cr6_ne);
+ def_pim_builtin ("vec_any_lt.4", integer_type_node, VCMPGTSH_P, pim_ovl_8 | pim_manip_swap | pim_cr6_ne);
+ def_pim_builtin ("vec_any_lt.5", integer_type_node, VCMPGTFP_P, pim_ovl_4f | pim_manip_swap | pim_cr6_ne);
+ def_pim_builtin ("vec_any_lt.6", integer_type_node, VCMPGTUW_P, pim_ovl_4u_4u | pim_manip_swap | pim_cr6_ne);
+ def_pim_builtin ("vec_any_lt.7", integer_type_node, VCMPGTSW_P, pim_ovl_4 | pim_manip_swap | pim_cr6_ne);
+
+ def_pim_builtin ("vec_any_nan", integer_type_node, VCMPEQFP_P, pim_manip_dup | pim_cr6_ge | pim_group);
+
+ def_pim_builtin ("vec_any_ne", integer_type_node, VCMPEQUB_P, pim_ovl_16 | pim_cr6_ge | pim_group);
+ def_pim_builtin ("vec_any_ne.2", integer_type_node, VCMPEQUH_P, pim_ovl_8 | pim_cr6_ge);
+ def_pim_builtin ("vec_any_ne.3", integer_type_node, VCMPEQFP_P, pim_ovl_4f | pim_cr6_ge);
+ def_pim_builtin ("vec_any_ne.4", integer_type_node, VCMPEQUW_P, pim_ovl_4 | pim_cr6_ge);
+
+ def_pim_builtin ("vec_any_nge", integer_type_node, VCMPGEFP_P, pim_cr6_ge | pim_group);
+
+ def_pim_builtin ("vec_any_ngt", integer_type_node, VCMPGTFP_P, pim_cr6_ge | pim_group);
+
+ def_pim_builtin ("vec_any_nle", integer_type_node, VCMPGEFP_P, pim_manip_swap | pim_cr6_ge | pim_group);
+
+ def_pim_builtin ("vec_any_nlt", integer_type_node, VCMPGEFP_P, pim_manip_swap | pim_cr6_ge | pim_group);
+
+ def_pim_builtin ("vec_any_numeric", integer_type_node, VCMPEQFP_P, pim_manip_dup | pim_cr6_ne | pim_group);
+
+ def_pim_builtin ("vec_any_out", integer_type_node, VCMPBFP_P, pim_cr6_ne | pim_group);
+
+ gcc_assert (pim_code == ALTIVEC_PIM__LAST + 1);
+ }
+ /* APPLE LOCAL end AltiVec */
}
static void
@@ -8925,6 +10703,8 @@ expand_block_clear (rtx operands[])
int offset;
int clear_bytes;
int clear_step;
+ /* APPLE LOCAL Altivec 3840704 */
+ bool cpu_altivec = TARGET_ALTIVEC && ! flag_disable_opts_for_faltivec;
/* If this is not a fixed size move, just call memcpy */
if (! constp)
@@ -8940,11 +10720,23 @@ expand_block_clear (rtx operands[])
if (bytes <= 0)
return 1;
+ /* APPLE LOCAL begin Altivec 3840704 */
+ {
+ static bool warned;
+ if (flag_disable_opts_for_faltivec && align >= 128 && ! warned)
+ {
+ warned = true;
+ warning ("vectorised memset disabled due to use of -faltivec without -maltivec");
+ }
+ }
+ /* APPLE LOCAL end Altivec 3840704 */
+
/* Use the builtin memset after a point, to avoid huge code bloat.
When optimize_size, avoid any significant code bloat; calling
memset is about 4 instructions, so allow for one instruction to
load zero and three to do clearing. */
- if (TARGET_ALTIVEC && align >= 128)
+ /* APPLE LOCAL Altivec 3840704 */
+ if (cpu_altivec && align >= 128)
clear_step = 16;
else if (TARGET_POWERPC64 && align >= 32)
clear_step = 8;
@@ -8961,7 +10753,8 @@ expand_block_clear (rtx operands[])
enum machine_mode mode = BLKmode;
rtx dest;
- if (bytes >= 16 && TARGET_ALTIVEC && align >= 128)
+ /* APPLE LOCAL Altivec 3840704 */
+ if (bytes >= 16 && cpu_altivec && align >= 128)
{
clear_bytes = 16;
mode = V4SImode;
@@ -9052,9 +10845,24 @@ expand_block_move (rtx operands[])
enum machine_mode mode = BLKmode;
rtx src, dest;
+ /* APPLE LOCAL begin Altivec 3840704 */
+ {
+ static bool warned;
+ if (flag_disable_opts_for_faltivec && bytes >= 16 && align >= 128
+ && ! warned)
+ {
+ warned = true;
+ warning ("vectorised memcpy disabled due to use of -faltivec without -maltivec");
+ }
+ }
+ /* APPLE LOCAL end Altivec 3840704 */
+
/* Altivec first, since it will be faster than a string move
when it applies, and usually not significantly larger. */
- if (TARGET_ALTIVEC && bytes >= 16 && align >= 128)
+ /* APPLE LOCAL begin Altivec 3840704 */
+ if (TARGET_ALTIVEC && ! flag_disable_opts_for_faltivec
+ && bytes >= 16 && align >= 128)
+ /* APPLE LOCAL end Altivec 3840704 */
{
move_bytes = 16;
mode = V4SImode;
@@ -10315,7 +12123,11 @@ rs6000_got_register (rtx value ATTRIBUTE_UNUSED)
static struct machine_function *
rs6000_init_machine_status (void)
{
- return ggc_alloc_cleared (sizeof (machine_function));
+ /* APPLE LOCAL begin volatile pic base reg in leaves */
+ machine_function *mf = (machine_function *) ggc_alloc_cleared (sizeof (machine_function));
+ mf->substitute_pic_base_reg = INVALID_REGNUM;
+ return mf;
+ /* APPLE LOCAL end volatile pic base reg in leaves */
}
/* These macros test for integers and extract the low-order bits. */
@@ -10535,8 +12347,7 @@ print_operand (FILE *file, rtx x, int code)
/* Bit 1 is EQ bit. */
i = 4 * (REGNO (x) - CR0_REGNO) + 2;
- /* If we want bit 31, write a shift count of zero, not 32. */
- fprintf (file, "%d", i == 31 ? 0 : i + 1);
+ fprintf (file, "%d", i);
return;
case 'E':
@@ -11341,7 +13152,7 @@ rs6000_generate_compare (enum rtx_code code)
if ((TARGET_E500 && !TARGET_FPRS && TARGET_HARD_FLOAT)
&& rs6000_compare_fp_p)
{
- rtx cmp, or1, or2, or_result, compare_result2;
+ rtx cmp, or_result, compare_result2;
enum machine_mode op_mode = GET_MODE (rs6000_compare_op0);
if (op_mode == VOIDmode)
@@ -11415,9 +13226,6 @@ rs6000_generate_compare (enum rtx_code code)
default: abort ();
}
- or1 = gen_reg_rtx (SImode);
- or2 = gen_reg_rtx (SImode);
- or_result = gen_reg_rtx (CCEQmode);
compare_result2 = gen_reg_rtx (CCFPmode);
/* Do the EQ. */
@@ -11436,14 +13244,10 @@ rs6000_generate_compare (enum rtx_code code)
else abort ();
emit_insn (cmp);
- or1 = gen_rtx_GT (SImode, compare_result, const0_rtx);
- or2 = gen_rtx_GT (SImode, compare_result2, const0_rtx);
-
/* OR them together. */
- cmp = gen_rtx_SET (VOIDmode, or_result,
- gen_rtx_COMPARE (CCEQmode,
- gen_rtx_IOR (SImode, or1, or2),
- const_true_rtx));
+ or_result = gen_reg_rtx (CCFPmode);
+ cmp = gen_e500_cr_ior_compare (or_result, compare_result,
+ compare_result2);
compare_result = or_result;
code = EQ;
}
@@ -11553,9 +13357,9 @@ rs6000_emit_sCOND (enum rtx_code code, rtx result)
abort ();
if (cond_code == NE)
- emit_insn (gen_e500_flip_eq_bit (t, t));
+ emit_insn (gen_e500_flip_gt_bit (t, t));
- emit_insn (gen_move_from_CR_eq_bit (result, t));
+ emit_insn (gen_move_from_CR_gt_bit (result, t));
return;
}
@@ -11736,9 +13540,9 @@ output_cbranch (rtx op, const char *label, int reversed, rtx insn)
return string;
}
-/* Return the string to flip the EQ bit on a CR. */
+/* Return the string to flip the GT bit on a CR. */
char *
-output_e500_flip_eq_bit (rtx dst, rtx src)
+output_e500_flip_gt_bit (rtx dst, rtx src)
{
static char string[64];
int a, b;
@@ -11747,9 +13551,9 @@ output_e500_flip_eq_bit (rtx dst, rtx src)
|| GET_CODE (src) != REG || ! CR_REGNO_P (REGNO (src)))
abort ();
- /* EQ bit. */
- a = 4 * (REGNO (dst) - CR0_REGNO) + 2;
- b = 4 * (REGNO (src) - CR0_REGNO) + 2;
+ /* GT bit. */
+ a = 4 * (REGNO (dst) - CR0_REGNO) + 1;
+ b = 4 * (REGNO (src) - CR0_REGNO) + 1;
sprintf (string, "crnot %d,%d", a, b);
return string;
@@ -11988,10 +13792,14 @@ rs6000_emit_vector_select (rtx dest, rtx op1, rtx op2, rtx mask)
temp = gen_reg_rtx (dest_mode);
+ /* APPLE LOCAL begin AV */
+ /* Fix op1 and op2 order. */
t = gen_rtx_fmt_ee (SET, VOIDmode, temp,
gen_rtx_fmt_Ei (UNSPEC, dest_mode,
- gen_rtvec (3, op1, op2, mask),
+ gen_rtvec (3, op2, op1, mask),
vsel_insn_index));
+ /* APPLE LOCAL end AV */
+
emit_insn (t);
emit_move_insn (dest, temp);
return;
@@ -12266,6 +14074,10 @@ rs6000_emit_minmax (rtx dest, enum rtx_code code, rtx op0, rtx op1)
else
target = emit_conditional_move (dest, c, op0, op1, mode,
op1, op0, mode, 0);
+ /* APPLE LOCAL begin pragma fenv 3943021 */
+ if (flag_trapping_math && target == NULL_RTX)
+ return;
+ /* APPLE LOCAL end pragma fenv 3943021 */
if (target == NULL_RTX)
abort ();
if (target != dest)
@@ -12444,6 +14256,8 @@ first_reg_to_save (void)
#if TARGET_MACHO
if (flag_pic
&& current_function_uses_pic_offset_table
+ /* APPLE LOCAL volatile pic base reg in leaves */
+ && cfun->machine->substitute_pic_base_reg == INVALID_REGNUM
&& first_reg > RS6000_PIC_OFFSET_TABLE_REGNUM)
return RS6000_PIC_OFFSET_TABLE_REGNUM;
#endif
@@ -12755,9 +14569,8 @@ rs6000_stack_info (void)
&& !FP_SAVE_INLINE (info_ptr->first_fp_reg_save))
|| info_ptr->first_altivec_reg_save <= LAST_ALTIVEC_REGNO
|| (DEFAULT_ABI == ABI_V4 && current_function_calls_alloca)
- || (DEFAULT_ABI == ABI_DARWIN
- && flag_pic
- && current_function_uses_pic_offset_table)
+ /* APPLE LOCAL mainline */
+ /* Test for flag_pic, abi, current_function deleted deliberately. */
|| info_ptr->calls_p)
{
info_ptr->lr_save_p = 1;
@@ -12916,7 +14729,8 @@ rs6000_stack_info (void)
+ ehrd_size
+ info_ptr->cr_size
+ info_ptr->lr_size
- + info_ptr->vrsave_size
+ /* APPLE LOCAL fix redundant add? */
+ /* FIXME: the FSF does "+ info_ptr->vrsave_size" here, shouldn't we? */
+ info_ptr->toc_size,
save_align);
@@ -13203,16 +15017,33 @@ rs6000_return_addr (int count, rtx frame)
}
/* Say whether a function is a candidate for sibcall handling or not.
- We do not allow indirect calls to be optimized into sibling calls.
+ APPLE LOCAL sibling calls
+
Also, we can't do it if there are any vector parameters; there's
nowhere to put the VRsave code so it works; note that functions with
vector parameters are required to have a prototype, so the argument
type info must be available here. (The tail recursion case can work
with vector parameters, but there's no way to distinguish here.) */
+
+/* APPLE LOCAL begin sibling calls
+ On Darwin only, indirect calls may be sibcalls. This is enabled
+ primarily by target-specific logic in calls.c.
+ APPLE LOCAL end sibling calls */
static bool
rs6000_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
{
tree type;
+ /* APPLE LOCAL begin long-branch */
+ if (TARGET_LONG_BRANCH)
+ return 0;
+ /* APPLE LOCAL end long-branch */
+
+ /* APPLE LOCAL begin indirect sibcalls */
+ /* This goes with a lot of local changes in expand_call. */
+ if (DEFAULT_ABI == ABI_DARWIN && !decl)
+ return true;
+ /* APPLE LOCAL end indirect sibcalls */
+
if (decl)
{
if (TARGET_ALTIVEC_VRSAVE)
@@ -13325,11 +15156,10 @@ rs6000_emit_load_toc_table (int fromprolog)
rtx temp0 = (fromprolog
? gen_rtx_REG (Pmode, 0)
: gen_reg_rtx (Pmode));
- rtx symF;
if (fromprolog)
{
- rtx symL;
+ rtx symF, symL;
ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno);
symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
@@ -13347,14 +15177,9 @@ rs6000_emit_load_toc_table (int fromprolog)
else
{
rtx tocsym;
- static int reload_toc_labelno = 0;
tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name);
-
- ASM_GENERATE_INTERNAL_LABEL (buf, "LCG", reload_toc_labelno++);
- symF = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
-
- emit_insn (gen_load_toc_v4_PIC_1b (tempLR, symF, tocsym));
+ emit_insn (gen_load_toc_v4_PIC_1b (tempLR, tocsym));
emit_move_insn (dest, tempLR);
emit_move_insn (temp0, gen_rtx_MEM (Pmode, dest));
}
@@ -13827,6 +15652,126 @@ generate_set_vrsave (rtx reg, rs6000_stack_t *info, int epiloguep)
return insn;
}
+/* APPLE LOCAL begin special ObjC method use of R12 */
+/* Determine whether a name is an ObjC method. */
+
+static int name_encodes_objc_method_p (const char *piclabel_name)
+{
+ return (piclabel_name[0] == '+' || piclabel_name[0] == '-');
+}
+/* APPLE LOCAL end special ObjC method use of R12 */
+
+/* APPLE LOCAL begin recompute PIC register use */
+/* Sometimes a function has references that require the PIC register,
+ but optimization removes them all. To catch this case
+ recompute current_function_uses_pic_offset_table here.
+ This may allow us to eliminate the prologue and epilogue. */
+
+static int
+recompute_PIC_register_use (void)
+{
+ if (DEFAULT_ABI == ABI_DARWIN
+ && flag_pic && current_function_uses_pic_offset_table
+ && !cfun->machine->ra_needs_full_frame)
+ {
+ rtx insn;
+ current_function_uses_pic_offset_table = 0;
+ push_topmost_sequence ();
+ for (insn = get_insns (); insn != NULL; insn = NEXT_INSN (insn))
+ if ( reg_mentioned_p (pic_offset_table_rtx, insn))
+ {
+ current_function_uses_pic_offset_table = 1;
+ break;
+ }
+ pop_topmost_sequence ();
+ }
+ return 0;
+}
+/* APPLE LOCAL end recompute PIC register use */
+
+/* APPLE LOCAL begin volatile pic base reg in leaves */
+/* If this is a leaf function and we used any pic-based references,
+ see if there is an unused volatile reg we can use instead of R31.
+ If so set substitute_pic_base_reg to this reg, set its reg_ever_used
+ bit (to avoid confusing later calls to alloc_volatile_reg), and
+ make a pass through the existing RTL, substituting the new reg for
+ the old one wherever it appears.
+ Logically this is a void function; it is int so it can be used to
+ initialize a dummy variable, thus getting executed ahead of other
+ initializations. Technicolour yawn. */
+
+/* ALLOC_VOLATILE_REG allocates a volatile register AFTER all gcc
+ register allocations have been done; we use it to reserve an
+ unused reg for holding VRsave. Returns -1 in case of failure (all
+ volatile regs are in use.) */
+/* Note, this is called from both the prologue and epilogue code,
+ with the assumption that it will return the same result both
+ times! Since the register arrays are not changed in between
+ this is valid, if a bit fragile. */
+/* In future we may also use this to grab an unused volatile reg to
+ hold the PIC base reg in the event that the current function makes
+ no procedure calls; this was done in 2.95. */
+static int
+alloc_volatile_reg (void)
+{
+ if (current_function_is_leaf
+ && reload_completed
+ && !cfun->machine->ra_needs_full_frame)
+ {
+ int r;
+ for (r = 10; r >= 2; --r)
+ if (! fixed_regs[r] && ! regs_ever_live[r])
+ return r;
+ }
+
+ return -1; /* fail */
+}
+
+static int
+try_leaf_pic_optimization (void)
+{
+ if ( DEFAULT_ABI==ABI_DARWIN
+ && flag_pic && current_function_uses_pic_offset_table
+ && current_function_is_leaf
+ && !cfun->machine->ra_needs_full_frame )
+ {
+ int reg = alloc_volatile_reg ();
+ if ( reg != -1 )
+ {
+ /* Run through the insns, changing references to the original
+ PIC_OFFSET_TABLE_REGNUM to our new one. */
+ rtx insn;
+ const int nregs = PIC_OFFSET_TABLE_REGNUM + 1;
+ rtx *reg_map = (rtx *) xmalloc (nregs * sizeof (rtx));
+ memset (reg_map, 0, nregs * sizeof (rtx));
+ reg_map[PIC_OFFSET_TABLE_REGNUM] = gen_rtx_REG (SImode, reg);
+
+ push_topmost_sequence ();
+ for (insn = get_insns (); insn != NULL; insn = NEXT_INSN (insn))
+ {
+ if (GET_CODE (insn) == INSN || GET_CODE (insn) == JUMP_INSN)
+ {
+ replace_regs (PATTERN (insn), reg_map, nregs, 1);
+ replace_regs (REG_NOTES (insn), reg_map, nregs, 1);
+ }
+ else if (GET_CODE (insn) == CALL_INSN)
+ {
+ if ( !SIBLING_CALL_P (insn))
+ abort ();
+ }
+ }
+ pop_topmost_sequence ();
+ free (reg_map);
+
+ regs_ever_live[reg] = 1;
+ regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 0;
+ cfun->machine->substitute_pic_base_reg = reg;
+ }
+ }
+ return 0;
+}
+/* APPLE LOCAL end volatile pic base reg in leaves */
+
/* Save a register into the frame, and emit RTX_FRAME_RELATED_P notes.
Save REGNO into [FRAME_REG + OFFSET] in mode MODE. */
@@ -13893,6 +15838,20 @@ gen_frame_mem_offset (enum machine_mode mode, rtx reg, int offset)
return gen_rtx_MEM (mode, gen_rtx_PLUS (Pmode, reg, offset_rtx));
}
+/* APPLE LOCAL begin mainline */
+/* Look for user-defined global regs. We should not save and restore these,
+ and cannot use stmw/lmw if there are any in its range. */
+
+static bool
+no_global_regs_above (int first_greg)
+{
+ int i;
+ for (i = 0; i < 32 - first_greg; i++)
+ if (global_regs[first_greg + i])
+ return false;
+ return true;
+}
+/* APPLE LOCAL end mainline */
#ifndef TARGET_FIX_AND_CONTINUE
#define TARGET_FIX_AND_CONTINUE 0
#endif
@@ -13902,6 +15861,10 @@ gen_frame_mem_offset (enum machine_mode mode, rtx reg, int offset)
void
rs6000_emit_prologue (void)
{
+ /* APPLE LOCAL recompute PIC register use */
+ int dummy ATTRIBUTE_UNUSED = recompute_PIC_register_use ();
+ /* APPLE LOCAL volatile pic base reg in leaves */
+ int ignored ATTRIBUTE_UNUSED = try_leaf_pic_optimization ();
rs6000_stack_t *info = rs6000_stack_info ();
enum machine_mode reg_mode = Pmode;
int reg_size = TARGET_32BIT ? 4 : 8;
@@ -13913,11 +15876,50 @@ rs6000_emit_prologue (void)
int saving_FPRs_inline;
int using_store_multiple;
HOST_WIDE_INT sp_offset = 0;
+ /* APPLE LOCAL begin callers_lr_already_saved */
+ int callers_lr_already_saved = 0;
+#if TARGET_MACHO
+ int lr_already_set_up_for_pic = 0;
+#endif
+ /* APPLE LOCAL end callers_lr_already_saved */
+ /* APPLE LOCAL special ObjC method use of R12 */
+ int objc_method_using_pic = 0;
+
+ /* APPLE LOCAL begin special ObjC method use of R12 */
+#if TARGET_MACHO
+ if (DEFAULT_ABI == ABI_DARWIN
+ && current_function_uses_pic_offset_table && flag_pic
+ && current_function_decl
+ && DECL_ASSEMBLER_NAME_SET_P (current_function_decl))
+ {
+ /* At -O0, this will not be set yet, so we won't do this opt. */
+ const char *piclabel_name
+ = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl));
+
+ if (name_encodes_objc_method_p (piclabel_name)
+ /* If we're saving vector or FP regs via a function call,
+ then don't bother with this ObjC R12 optimization.
+ This test also eliminates world_save. */
+ && (info->first_altivec_reg_save > LAST_ALTIVEC_REGNO
+ || VECTOR_SAVE_INLINE (info->first_altivec_reg_save))
+ && (info->first_fp_reg_save == 64
+ || FP_SAVE_INLINE (info->first_fp_reg_save)))
+ {
+ rtx lr = gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM);
+ rtx src = machopic_function_base_sym ();
+ objc_method_using_pic = 1;
+ rs6000_maybe_dead (emit_insn (gen_load_macho_picbase_label (lr,
+ src)));
+ }
+ }
+#endif /* TARGET_MACHO */
+ /* APPLE LOCAL end special ObjC method use of R12 */
if (TARGET_FIX_AND_CONTINUE)
{
+ /* APPLE LOCAL begin mainline 5 nops */
/* gdb on darwin arranges to forward a function from the old
- address by modifying the first 4 instructions of the function
+ address by modifying the first 5 instructions of the function
to branch to the overriding function. This is necessary to
permit function pointers that point to the old function to
actually forward to the new function. */
@@ -13925,6 +15927,8 @@ rs6000_emit_prologue (void)
emit_insn (gen_nop ());
emit_insn (gen_nop ());
emit_insn (gen_nop ());
+ emit_insn (gen_nop ());
+ /* APPLE LOCAL end mainline 5 nops */
}
if (TARGET_SPE_ABI && info->spe_64bit_regs_used != 0)
@@ -13936,7 +15940,10 @@ rs6000_emit_prologue (void)
using_store_multiple = (TARGET_MULTIPLE && ! TARGET_POWERPC64
&& (!TARGET_SPE_ABI
|| info->spe_64bit_regs_used == 0)
- && info->first_gp_reg_save < 31);
+/* APPLE LOCAL begin mainline */
+ && info->first_gp_reg_save < 31
+ && no_global_regs_above (info->first_gp_reg_save));
+/* APPLE LOCAL end mainline */
saving_FPRs_inline = (info->first_fp_reg_save == 64
|| FP_SAVE_INLINE (info->first_fp_reg_save)
|| current_function_calls_eh_return
@@ -14123,8 +16130,9 @@ rs6000_emit_prologue (void)
used in this function, and do the corresponding magic in the
epilogue. */
+ /* APPLE LOCAL begin mainline radar 4105210 */
if (TARGET_ALTIVEC && TARGET_ALTIVEC_VRSAVE
- && !WORLD_SAVE_P (info) && info->vrsave_mask != 0)
+ && info->vrsave_mask != 0)
{
rtx reg, mem, vrsave;
int offset;
@@ -14139,19 +16147,23 @@ rs6000_emit_prologue (void)
else
emit_insn (gen_rtx_SET (VOIDmode, reg, vrsave));
- /* Save VRSAVE. */
- offset = info->vrsave_save_offset + sp_offset;
- mem
- = gen_rtx_MEM (SImode,
- gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (offset)));
- set_mem_alias_set (mem, rs6000_sr_alias_set);
- insn = emit_move_insn (mem, reg);
+ if (!WORLD_SAVE_P (info))
+ {
+ /* Save VRSAVE. */
+ offset = info->vrsave_save_offset + sp_offset;
+ mem
+ = gen_rtx_MEM (SImode,
+ gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (offset)));
+ set_mem_alias_set (mem, rs6000_sr_alias_set);
+ insn = emit_move_insn (mem, reg);
+ }
/* Include the registers in the mask. */
emit_insn (gen_iorsi3 (reg, reg, GEN_INT ((int) info->vrsave_mask)));
insn = emit_insn (generate_set_vrsave (reg, info, 0));
}
+ /* APPLE LOCAL end mainline radar 4105210 */
/* If we use the link register, get it into r0. */
if (!WORLD_SAVE_P (info) && info->lr_save_p)
@@ -14166,7 +16178,12 @@ rs6000_emit_prologue (void)
{
rtx set;
- cr_save_rtx = gen_rtx_REG (SImode, 12);
+ /* APPLE LOCAL begin special ObjC method use of R12 */
+ /* For Darwin, use R2, so we don't clobber the special ObjC
+ method use of R12. R11 has a special meaning for Ada, so we
+ can't use that. */
+ cr_save_rtx = gen_rtx_REG (SImode, DEFAULT_ABI == ABI_DARWIN ? 2 : 12);
+ /* APPLE LOCAL end special ObjC method use of R12 */
insn = emit_insn (gen_movesi_from_cr (cr_save_rtx));
RTX_FRAME_RELATED_P (insn) = 1;
/* Now, there's no way that dwarf2out_frame_debug_expr is going
@@ -14201,17 +16218,62 @@ rs6000_emit_prologue (void)
char rname[30];
const char *alloc_rname;
rtvec p;
- p = rtvec_alloc (2 + 64 - info->first_fp_reg_save);
+ /* APPLE LOCAL begin reduce code size */
+
+ int gen_following_label = 0;
+ int count = 0;
+
+ if (current_function_uses_pic_offset_table && flag_pic
+#ifdef INSN_SCHEDULING
+ /* Prevent the compiler from crashing
+ while scheduling insns after global_alloc! */
+ && (optimize == 0 || !flag_schedule_insns_after_reload)
+#endif
+ /* If this is the last CALL in the prolog, then we've got our PC.
+ If we're saving AltiVec regs via a function, we're not last. */
+ && (info->first_altivec_reg_save > LAST_ALTIVEC_REGNO
+ || VECTOR_SAVE_INLINE (info->first_altivec_reg_save)))
+ gen_following_label = lr_already_set_up_for_pic = 1;
+ /* APPLE LOCAL end reduce code size */
+
+ /* APPLE LOCAL begin +2 (could be conditionalized) */
+ p = rtvec_alloc (2 + 64 - info->first_fp_reg_save + 2
+ + gen_following_label);
+ /* APPLE LOCAL end +2 (could be conditionalized) */
+
+ /* APPLE LOCAL begin reduce code size */
+ /* 0 -> count++ */
+ RTVEC_ELT (p, count++) = gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_REG (Pmode,
+ LINK_REGISTER_REGNUM));
+#if TARGET_MACHO
+ /* We have to calculate the offset into saveFP to where we must
+ call (!!) SAVEFP also saves the caller's LR -- placed into
+ R0 above -- into 8(R1). SAVEFP/RESTOREFP should never be
+ called to save or restore only F31. */
+
+ if (info->lr_save_offset != (POINTER_SIZE / 4) || info->first_fp_reg_save == 63)
+ abort ();
- RTVEC_ELT (p, 0) = gen_rtx_CLOBBER (VOIDmode,
- gen_rtx_REG (Pmode,
- LINK_REGISTER_REGNUM));
+ sprintf (rname, "*saveFP%s%.0d ; save f%d-f31",
+ (info->first_fp_reg_save - 32 == 14 ? "" : "+"),
+ (info->first_fp_reg_save - 46) * 4,
+ info->first_fp_reg_save - 32);
+#else
+ /* APPLE LOCAL end reduce code size */
sprintf (rname, "%s%d%s", SAVE_FP_PREFIX,
info->first_fp_reg_save - 32, SAVE_FP_SUFFIX);
+ /* APPLE LOCAL reduce code size */
+#endif /* TARGET_MACHO */
alloc_rname = ggc_strdup (rname);
- RTVEC_ELT (p, 1) = gen_rtx_USE (VOIDmode,
+ /* APPLE LOCAL reduce code size */
+ RTVEC_ELT (p, count++) = gen_rtx_USE (VOIDmode,
gen_rtx_SYMBOL_REF (Pmode,
alloc_rname));
+ /* APPLE LOCAL begin reduce code size */
+ if (gen_following_label)
+ RTVEC_ELT (p, count++) = gen_rtx_USE (VOIDmode, const0_rtx);
+ /* APPLE LOCAL end reduce code size */
for (i = 0; i < 64 - info->first_fp_reg_save; i++)
{
rtx addr, reg, mem;
@@ -14222,11 +16284,32 @@ rs6000_emit_prologue (void)
mem = gen_rtx_MEM (DFmode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
- RTVEC_ELT (p, i + 2) = gen_rtx_SET (VOIDmode, mem, reg);
+ /* APPLE LOCAL reduce code size */
+ RTVEC_ELT (p, count++) = gen_rtx_SET (VOIDmode, mem, reg);
}
+ /* APPLE LOCAL begin C++ EH and setjmp (radar 2866661) */
+#if TARGET_MACHO
+ /* Darwin version of these functions stores R0. */
+ RTVEC_ELT (p, count++) = gen_rtx_USE (VOIDmode, gen_rtx_REG (Pmode, 0));
+
+ /* If we saved LR, *tell* people about it! */
+ if (info->lr_save_p)
+ {
+ rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
+ GEN_INT (info->lr_save_offset + sp_offset));
+ rtx mem = gen_rtx_MEM (Pmode, addr);
+ /* This should not be of rs6000_sr_alias_set, because of
+ __builtin_return_address. */
+ RTVEC_ELT (p, count++) = gen_rtx_SET (Pmode, mem,
+ gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM));
+ }
+#endif
+ /* APPLE LOCAL end C++ EH and setjmp (radar 2866661) */
insn = emit_insn (gen_rtx_PARALLEL (VOIDmode, p));
rs6000_frame_related (insn, frame_ptr_rtx, info->total_size,
NULL_RTX, NULL_RTX);
+ /* APPLE LOCAL callers_lr_already_saved */
+ callers_lr_already_saved = 1;
}
/* Save GPRs. This is done as a PARALLEL if we are using
@@ -14257,14 +16340,22 @@ rs6000_emit_prologue (void)
{
int i;
for (i = 0; i < 32 - info->first_gp_reg_save; i++)
- 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
+/* APPLE LOCAL begin mainline cosmetics */
+ 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
&& TARGET_TOC && TARGET_MINIMAL_TOC)))
- || (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
+ || (i + info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
+/* APPLE LOCAL end mainline cosmetics */
&& ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
- || (DEFAULT_ABI == ABI_DARWIN && flag_pic))))
+ /* APPLE LOCAL begin volatile pic base reg in leaves */
+ || (DEFAULT_ABI == ABI_DARWIN && flag_pic
+ && ((current_function_uses_pic_offset_table
+ && cfun->machine->substitute_pic_base_reg
+ == INVALID_REGNUM)
+ || cfun->machine->ra_needs_full_frame)))))
+ /* APPLE LOCAL end volatile pic base reg in leaves */
{
rtx addr, reg, mem;
reg = gen_rtx_REG (reg_mode, info->first_gp_reg_save + i);
@@ -14346,8 +16437,20 @@ rs6000_emit_prologue (void)
}
}
+ /* APPLE LOCAL begin special ObjC method use of R12 */
+ if (objc_method_using_pic)
+ rs6000_maybe_dead (
+ emit_move_insn (gen_rtx_REG (Pmode,
+ cfun->machine->substitute_pic_base_reg
+ == INVALID_REGNUM
+ ? PIC_OFFSET_TABLE_REGNUM
+ : cfun->machine->substitute_pic_base_reg),
+ gen_rtx_REG (Pmode, 12)));
+ /* APPLE LOCAL end special ObjC method use of R12 */
+
/* Save lr if we used it. */
- if (!WORLD_SAVE_P (info) && info->lr_save_p)
+ /* APPLE LOCAL callers_lr_already_saved */
+ if (!WORLD_SAVE_P (info) && info->lr_save_p && !callers_lr_already_saved)
{
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->lr_save_offset + sp_offset));
@@ -14441,17 +16544,37 @@ rs6000_emit_prologue (void)
#if TARGET_MACHO
if (DEFAULT_ABI == ABI_DARWIN
+ /* APPLE LOCAL special ObjC method use of R12 */
+ && !objc_method_using_pic
&& flag_pic && current_function_uses_pic_offset_table)
{
rtx lr = gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM);
rtx src = machopic_function_base_sym ();
- rs6000_maybe_dead (emit_insn (gen_load_macho_picbase (lr, src)));
+ /* APPLE LOCAL begin save and restore LR mainline */
+ /* Save and restore LR locally around this call (in R0). */
+ if (!info->lr_save_p)
+ rs6000_maybe_dead (emit_move_insn (gen_rtx_REG (Pmode, 0), lr));
+ /* APPLE LOCAL end save and restore LR mainline */
+
+ /* APPLE LOCAL begin performance enhancement */
+ if (!lr_already_set_up_for_pic)
+ rs6000_maybe_dead (emit_insn (gen_load_macho_picbase (lr, src)));
+ /* APPLE LOCAL end performance enhancement */
+ /* APPLE LOCAL begin volatile pic base reg in leaves */
insn = emit_move_insn (gen_rtx_REG (Pmode,
- RS6000_PIC_OFFSET_TABLE_REGNUM),
+ (cfun->machine->substitute_pic_base_reg
+ == INVALID_REGNUM)
+ ? RS6000_PIC_OFFSET_TABLE_REGNUM
+ : cfun->machine->substitute_pic_base_reg),
lr);
rs6000_maybe_dead (insn);
+ /* APPLE LOCAL end volatile pic base reg in leaves */
+ /* APPLE LOCAL begin save and restore LR mainline */
+ if (!info->lr_save_p)
+ rs6000_maybe_dead (emit_move_insn (lr, gen_rtx_REG (Pmode, 0)));
+ /* APPLE LOCAL end save and restore LR mainline */
}
#endif
}
@@ -14467,6 +16590,8 @@ rs6000_output_function_prologue (FILE *file,
if (TARGET_DEBUG_STACK)
debug_stack_info (info);
+ /* APPLE LOCAL do not extern fp save/restore */
+#if !TARGET_MACHO
/* Write .extern for any function we will call to save and restore
fp values. */
if (info->first_fp_reg_save < 64
@@ -14475,6 +16600,8 @@ rs6000_output_function_prologue (FILE *file,
SAVE_FP_PREFIX, info->first_fp_reg_save - 32, SAVE_FP_SUFFIX,
RESTORE_FP_PREFIX, info->first_fp_reg_save - 32,
RESTORE_FP_SUFFIX);
+ /* APPLE LOCAL do not extern fp save/restore */
+#endif /* !TARGET_MACHO */
/* Write .extern for AIX common mode routines, if needed. */
if (! TARGET_POWER && ! TARGET_POWERPC && ! common_mode_defined)
@@ -14551,7 +16678,10 @@ rs6000_emit_epilogue (int sibcall)
using_load_multiple = (TARGET_MULTIPLE && ! TARGET_POWERPC64
&& (!TARGET_SPE_ABI
|| info->spe_64bit_regs_used == 0)
- && info->first_gp_reg_save < 31);
+/* APPLE LOCAL begin mainline */
+ && info->first_gp_reg_save < 31
+ && no_global_regs_above (info->first_gp_reg_save));
+/* APPLE LOCAL end mainline */
restoring_FPRs_inline = (sibcall
|| current_function_calls_eh_return
|| info->first_fp_reg_save == 64
@@ -14562,6 +16692,8 @@ rs6000_emit_epilogue (int sibcall)
using_mfcr_multiple = (rs6000_cpu == PROCESSOR_PPC601
|| rs6000_cpu == PROCESSOR_PPC603
|| rs6000_cpu == PROCESSOR_PPC750
+ /* APPLE LOCAL ? */
+ || rs6000_cpu == PROCESSOR_PPC7400
|| optimize_size);
if (WORLD_SAVE_P (info))
@@ -14749,7 +16881,10 @@ rs6000_emit_epilogue (int sibcall)
set_mem_alias_set (mem, rs6000_sr_alias_set);
- emit_move_insn (gen_rtx_REG (SImode, 12), mem);
+ /* APPLE LOCAL begin use R11 because of ObjC use of R12 in sibcall to CTR */
+ emit_move_insn (gen_rtx_REG (SImode,
+ DEFAULT_ABI == ABI_DARWIN ? 11 : 12), mem);
+ /* APPLE LOCAL end use R11 because of ObjC use of R12 in sibcall to CTR */
}
/* Set LR here to try to overlap restores below. */
@@ -14815,13 +16950,22 @@ rs6000_emit_epilogue (int sibcall)
}
else
for (i = 0; i < 32 - info->first_gp_reg_save; i++)
- 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
+/* APPLE LOCAL begin mainline cosmetics */
+ 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
&& TARGET_TOC && TARGET_MINIMAL_TOC)))
- || (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
+ || (i + info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
+/* APPLE LOCAL end mainline cosmetics */
&& ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
- || (DEFAULT_ABI == ABI_DARWIN && flag_pic))))
+ /* APPLE LOCAL begin darwin native */
+ || (DEFAULT_ABI == ABI_DARWIN && flag_pic
+ && ((current_function_uses_pic_offset_table
+ && cfun->machine->substitute_pic_base_reg
+ == INVALID_REGNUM)
+ || cfun->machine->ra_needs_full_frame)))))
+
+ /* APPLE LOCAL end darwin native */
{
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->gp_save_offset
@@ -14875,7 +17019,9 @@ rs6000_emit_epilogue (int sibcall)
/* If we saved cr, restore it here. Just those that were used. */
if (info->cr_save_p)
{
- rtx r12_rtx = gen_rtx_REG (SImode, 12);
+ /* APPLE LOCAL use R11 because of ObjC use of R12 in sibcall to CTR */
+ /* APPLE LOCAL silly name retained to minimize deviation from FSF */
+ rtx r12_rtx = gen_rtx_REG (SImode, DEFAULT_ABI == ABI_DARWIN ? 11 : 12);
int count = 0;
if (using_mfcr_multiple)
@@ -14975,8 +17121,25 @@ rs6000_emit_epilogue (int sibcall)
char rname[30];
const char *alloc_rname;
+ /* APPLE LOCAL begin Reduce code size / improve performance */
+#if TARGET_MACHO
+ /* We have to calculate the offset into RESTFP to where we must
+ call (!!) RESTFP also restores the caller's LR from 8(R1).
+ RESTFP should *never* be called to restore only F31. */
+
+ if (info->lr_save_offset != (POINTER_SIZE / 4) || info->first_fp_reg_save == 63)
+ abort ();
+
+ sprintf (rname, "*restFP%s%.0d ; restore f%d-f31",
+ (info->first_fp_reg_save - 32 == 14 ? "" : "+"),
+ (info->first_fp_reg_save - 46) * 4,
+ info->first_fp_reg_save - 32);
+#else
+ /* APPLE LOCAL end Reduce code size / improve performance */
sprintf (rname, "%s%d%s", RESTORE_FP_PREFIX,
info->first_fp_reg_save - 32, RESTORE_FP_SUFFIX);
+ /* APPLE LOCAL Reduce code size / improve performance */
+#endif /* TARGET_MACHO */
alloc_rname = ggc_strdup (rname);
RTVEC_ELT (p, 2) = gen_rtx_USE (VOIDmode,
gen_rtx_SYMBOL_REF (Pmode,
@@ -16585,8 +18748,29 @@ rs6000_is_costly_dependence (rtx insn, rtx next, rtx link, int cost,
&& (!link || (int) REG_NOTE_KIND (link) == 0))
/* Prevent load after store in the same group if it is a true
dependence. */
- return true;
-
+ /* APPLE LOCAL begin nop on true-dependence. */
+ {
+ if (GET_CODE (PATTERN (next)) == SET && GET_CODE (PATTERN (insn)) == SET)
+ {
+ rtx load_mem = SET_SRC (PATTERN (next));
+ rtx sto_mem = SET_DEST (PATTERN (insn));
+ if (GET_CODE (load_mem) == ZERO_EXTEND
+ || GET_CODE (load_mem) == SIGN_EXTEND)
+ load_mem = XEXP (load_mem, 0);
+ if (GET_CODE (sto_mem) == ZERO_EXTEND
+ || GET_CODE (sto_mem) == SIGN_EXTEND)
+ load_mem = XEXP (sto_mem, 0);
+ if (GET_CODE (load_mem) == MEM && GET_CODE (sto_mem) == MEM)
+ /* Only consider those true-depenedence cases that memory conflict
+ can be determined. Exclude cases, where true-dependency was
+ decided because memory conflict could not be determined from
+ aliasing info. */
+ return must_true_dependence (load_mem, sto_mem);
+ }
+ return true;
+ }
+ /* APPLE LOCAL end nop on true-dependence. */
+
/* The flag is set to X; dependences with latency >= X are considered costly,
and will not be scheduled in the same group. */
if (rs6000_sched_costly_dep <= max_dep_latency
@@ -17166,6 +19350,13 @@ rs6000_handle_altivec_attribute (tree *node,
switch (altivec_type)
{
+ /* APPLE LOCAL begin AltiVec */
+ case 'e':
+ /* Return the constituent element type. */
+ result = (ALTIVEC_VECTOR_MODE (mode) ? TREE_TYPE (type) : type);
+ break;
+ /* APPLE LOCAL end AltiVec */
+
case 'v':
unsigned_p = TYPE_UNSIGNED (type);
switch (mode)
@@ -17206,8 +19397,12 @@ rs6000_handle_altivec_attribute (tree *node,
default: break;
}
- if (result && result != type && TYPE_READONLY (type))
- result = build_qualified_type (result, TYPE_QUAL_CONST);
+ /* APPLE LOCAL begin AltiVec */
+ /* Propagate qualifiers attached to the element type
+ onto the vector type. */
+ if (result && result != type && TYPE_QUALS (type))
+ result = build_qualified_type (result, TYPE_QUALS (type));
+ /* APPLE LOCAL end AltiVec */
*no_add_attrs = true; /* No need to hang on to the attribute. */
@@ -17516,9 +19711,11 @@ macho_branch_islands (void)
strcat (tmp_buf, label);
strcat (tmp_buf, "_pic\n");
strcat (tmp_buf, label);
- strcat (tmp_buf, "_pic:\n\tmflr r11\n");
+ /* APPLE LOCAL indirect calls in R12 */
+ strcat (tmp_buf, "_pic:\n\tmflr r12\n");
- strcat (tmp_buf, "\taddis r11,r11,ha16(");
+ /* APPLE LOCAL indirect calls in R12 */
+ strcat (tmp_buf, "\taddis r12,r12,ha16(");
strcat (tmp_buf, name_buf);
strcat (tmp_buf, " - ");
strcat (tmp_buf, label);
@@ -17526,7 +19723,8 @@ macho_branch_islands (void)
strcat (tmp_buf, "\tmtlr r0\n");
- strcat (tmp_buf, "\taddi r12,r11,lo16(");
+ /* APPLE LOCAL indirect calls in R12 */
+ strcat (tmp_buf, "\taddi r12,r12,lo16(");
strcat (tmp_buf, name_buf);
strcat (tmp_buf, " - ");
strcat (tmp_buf, label);
@@ -17592,12 +19790,59 @@ output_call (rtx insn, rtx *operands, int dest_operand_number,
int cookie_operand_number)
{
static char buf[256];
+ /* APPLE LOCAL begin long-branch */
+ const char *far_call_instr_str=NULL, *near_call_instr_str=NULL;
+ rtx pattern;
+
+ switch (GET_CODE (insn))
+ {
+ case CALL_INSN:
+ far_call_instr_str = "jbsr";
+ near_call_instr_str = "bl";
+ pattern = NULL_RTX;
+ break;
+ case JUMP_INSN:
+ far_call_instr_str = "jmp";
+ near_call_instr_str = "b";
+ pattern = NULL_RTX;
+ break;
+ case INSN:
+ pattern = PATTERN (insn);
+ break;
+ default:
+ gcc_unreachable ();
+ break;
+ }
+ /* APPLE LOCAL end long-branch */
+
if (GET_CODE (operands[dest_operand_number]) == SYMBOL_REF
&& (INTVAL (operands[cookie_operand_number]) & CALL_LONG))
{
tree labelname;
tree funname = get_identifier (XSTR (operands[dest_operand_number], 0));
+ /* APPLE LOCAL begin long-branch */
+ /* This insn represents a prologue or epilogue. */
+ if ((pattern != NULL_RTX) && GET_CODE (pattern) == PARALLEL)
+ {
+ rtx parallel_first_op = XVECEXP (pattern, 0, 0);
+ switch (GET_CODE (parallel_first_op))
+ {
+ case CLOBBER: /* Prologue: a call to save_world. */
+ far_call_instr_str = "jbsr";
+ near_call_instr_str = "bl";
+ break;
+ case RETURN: /* Epilogue: a call to rest_world. */
+ far_call_instr_str = "jmp";
+ near_call_instr_str = "b";
+ break;
+ default:
+ abort();
+ break;
+ }
+ }
+ /* APPLE LOCAL end long-branch */
+
if (no_previous_def (funname))
{
int line_number = 0;
@@ -17607,7 +19852,13 @@ output_call (rtx insn, rtx *operands, int dest_operand_number,
CODE_LABEL_NUMBER (label_rtx));
label_buf = temp_buf[0] == '*' ? temp_buf + 1 : temp_buf;
labelname = get_identifier (label_buf);
- for (; insn && GET_CODE (insn) != NOTE; insn = PREV_INSN (insn));
+ /* APPLE LOCAL begin 3910248, 3915171 */
+ for (;
+ insn && (GET_CODE (insn) != NOTE
+ || NOTE_LINE_NUMBER (insn) < 0);
+ insn = PREV_INSN (insn))
+ ;
+ /* APPLE LOCAL end 3910248, 3915171 */
if (insn)
line_number = NOTE_LINE_NUMBER (insn);
add_compiler_branch_island (labelname, funname, line_number);
@@ -17783,6 +20034,8 @@ rs6000_darwin_file_start (void)
{ "power4", "ppc970", 0 },
{ "G5", "ppc970", 0 },
{ "7450", "ppc7450", 0 },
+ /* APPLE LOCAL radar 4161346 */
+ { "ppc", "ppc", MASK_PIM_ALTIVEC },
{ "7400", "ppc7400", MASK_ALTIVEC },
{ "G4", "ppc7400", 0 },
{ "750", "ppc750", 0 },
@@ -17820,6 +20073,130 @@ rs6000_darwin_file_start (void)
#endif /* TARGET_MACHO */
+/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */
+/* Return the alignment of a struct based on the Macintosh PowerPC
+ alignment rules. In general the alignment of a struct is
+ determined by the greatest alignment of its elements. However, the
+ PowerPC rules cause the alignment of a struct to peg at word
+ alignment except when the first field has greater than word
+ (32-bit) alignment, in which case the alignment is determined by
+ the alignment of the first field. */
+
+unsigned
+round_type_align (tree the_struct, unsigned computed, unsigned specified)
+{
+ if (TREE_CODE (the_struct) == VECTOR_TYPE
+ && ALTIVEC_VECTOR_MODE (TYPE_MODE (the_struct)))
+ {
+ /* All vectors are (at least) 16-byte aligned. A struct or
+ union with a vector element is also 16-byte aligned. */
+ return MAX (RS6000_VECTOR_ALIGNMENT, MAX (computed, specified));
+ }
+
+ if (TREE_CODE (the_struct) == RECORD_TYPE
+ || TREE_CODE (the_struct) == UNION_TYPE
+ || TREE_CODE (the_struct) == QUAL_UNION_TYPE)
+ {
+ tree first_field = TYPE_FIELDS (the_struct);
+
+ /* Skip past static fields, enums, and constant fields that are
+ not really a part of the record layout. */
+ while ((first_field != 0)
+ && (TREE_CODE (first_field) != FIELD_DECL))
+ first_field = TREE_CHAIN (first_field);
+
+ if (first_field != 0)
+ {
+ /* If other-than-default alignment (which includes mac68k
+ mode) is in effect, then no adjustments to the alignment
+ should be necessary. Ditto if the struct has the
+ __packed__ attribute. */
+ if (TYPE_PACKED (the_struct) || TARGET_ALIGN_MAC68K
+ || TARGET_ALIGN_NATURAL || maximum_field_alignment != 0)
+ /* Do nothing */ ;
+ else
+ {
+ /* The following code handles Macintosh PowerPC
+ alignment. The implementation is complicated by the
+ fact that BIGGEST_ALIGNMENT is 128 when AltiVec is
+ enabled and 32 when it is not. So when AltiVec is
+ not enabled, alignment is generally limited to word
+ alignment. Consequently, the alignment of unions has
+ to be recalculated if AltiVec is not enabled.
+
+ Below we explicitly test for fields with greater than
+ word alignment: doubles, long longs, and structs and
+ arrays with greater than word alignment. */
+ unsigned val;
+ tree field_type;
+
+ val = MAX (computed, specified);
+
+ if (TREE_CODE (the_struct) == UNION_TYPE && !TARGET_ALTIVEC)
+ {
+ tree field = first_field;
+
+ while (field != 0)
+ {
+ /* Don't consider statics, enums and constant fields
+ which are not really a part of the record. */
+ if (TREE_CODE (field) != FIELD_DECL)
+ {
+ field = TREE_CHAIN (field);
+ continue;
+ }
+ field_type = TREE_TYPE(field);
+ if (TREE_CODE (TREE_TYPE (field)) == ARRAY_TYPE)
+ field_type = get_inner_array_type (field);
+ else
+ field_type = TREE_TYPE (field);
+ val = MAX (TYPE_ALIGN (field_type), val);
+ if (FLOAT_TYPE_P (field_type)
+ && TYPE_MODE (field_type) == DFmode)
+ val = MAX (RS6000_DOUBLE_ALIGNMENT, val);
+ else if (INTEGRAL_TYPE_P (field_type)
+ && TYPE_MODE (field_type) == DImode)
+ val = MAX (RS6000_LONGLONG_ALIGNMENT, val);
+ field = TREE_CHAIN (field);
+ }
+ }
+ else
+ {
+ if (TREE_CODE (TREE_TYPE (first_field)) == ARRAY_TYPE)
+ field_type = get_inner_array_type (first_field);
+ else
+ field_type = TREE_TYPE (first_field);
+
+ if (field_type == error_mark_node)
+ return val;
+ val = MAX (TYPE_ALIGN (field_type), val);
+
+ if (FLOAT_TYPE_P (field_type)
+ && TYPE_MODE (field_type) == DFmode)
+ val = MAX (RS6000_DOUBLE_ALIGNMENT, val);
+ else if (INTEGRAL_TYPE_P (field_type)
+ && TYPE_MODE (field_type) == DImode)
+ val = MAX (RS6000_LONGLONG_ALIGNMENT, val);
+ }
+
+ return val;
+ }
+ } /* first_field != 0 */
+
+ /* Ensure all MAC68K structs are at least 16-bit aligned.
+ Unless the struct has __attribute__ ((packed)). */
+
+ if (TARGET_ALIGN_MAC68K && ! TYPE_PACKED (the_struct))
+ {
+ if (computed < 16)
+ computed = 16;
+ }
+ } /* RECORD_TYPE, etc */
+
+ return (MAX (computed, specified));
+}
+/* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
+
#if TARGET_ELF
static unsigned int
rs6000_elf_section_type_flags (tree decl, const char *name, int reloc)
@@ -18142,8 +20519,24 @@ rs6000_xcoff_file_end (void)
static bool
rs6000_binds_local_p (tree decl)
{
- return default_binds_local_p_1 (decl, 0);
+ /* APPLE LOCAL begin kext treat vtables as overridable */
+ return default_binds_local_p_1 (decl,
+ flag_apple_kext && lang_hooks.vtable_p (decl));
}
+/* APPLE LOCAL end kext treat vtables as overridable */
+
+/* APPLE LOCAL begin pragma reverse_bitfields */
+/* Pragma reverse_bitfields. For compatibility with CW.
+ This feature is not well defined by CW, and results in
+ code that does not work in some cases! Bug compatibility
+ is the requirement, however. */
+
+static bool
+rs6000_reverse_bitfields_p (tree record_type ATTRIBUTE_UNUSED)
+{
+ return darwin_reverse_bitfields;
+}
+/* APPLE LOCAL end prgama reverse_bitfields */
#endif
/* Compute a (partial) cost for rtx X. Return true if the complete
@@ -18605,128 +20998,6 @@ rs6000_complex_function_value (enum machine_mode mode)
return gen_rtx_PARALLEL (mode, gen_rtvec (2, r1, r2));
}
-/* Compose a PARALLEL for a darwin64 struct being returned by
- value. */
-
-static rtx
-rs6000_darwin64_function_value (CUMULATIVE_ARGS *cum, tree valtype)
-{
- tree f, ftype;
- rtx rvec[FIRST_PSEUDO_REGISTER], sub, roffset, suboff;
- int k = 0, bytepos, tot, elt, i, subbytepos;
- enum machine_mode fmode;
-
- switch (TREE_CODE (valtype))
- {
- case RECORD_TYPE:
- for (f = TYPE_FIELDS (valtype); f ; f = TREE_CHAIN (f))
- if (TREE_CODE (f) == FIELD_DECL)
- {
- ftype = TREE_TYPE (f);
- fmode = TYPE_MODE (ftype);
- bytepos = int_bit_position (f) / BITS_PER_UNIT;
- if (USE_FP_FOR_ARG_P (cum, fmode, ftype))
- {
- sub = gen_rtx_REG (fmode, cum->fregno++);
- cum->sysv_gregno++;
- }
- else if (USE_ALTIVEC_FOR_ARG_P (cum, fmode, ftype, 1))
- {
- sub = gen_rtx_REG (fmode, cum->vregno++);
- cum->sysv_gregno++;
- }
- else if (fmode == BLKmode
- && (TREE_CODE (ftype) == RECORD_TYPE
- || TREE_CODE (ftype) == ARRAY_TYPE))
- sub = rs6000_darwin64_function_value (cum, ftype);
- else
- sub = gen_rtx_REG (fmode, cum->sysv_gregno++);
- if (sub == NULL_RTX)
- return sub;
- else if (GET_CODE (sub) == PARALLEL)
- {
- for (i = 0; i < XVECLEN (sub, 0); i++)
- {
- rtx subsub = XVECEXP (sub, 0, i);
-
- suboff = XEXP (subsub, 1);
- subbytepos = INTVAL (suboff);
- subbytepos += bytepos;
- roffset = gen_rtx_CONST_INT (SImode, subbytepos);
- subsub = XEXP (subsub, 0);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, subsub, roffset);
- }
- }
- else
- {
- roffset = gen_rtx_CONST_INT (SImode, bytepos);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, sub, roffset);
- }
- }
- if (k > 0)
- return gen_rtx_PARALLEL (TYPE_MODE (valtype), gen_rtvec_v (k, rvec));
- else
- return NULL_RTX;
-
- case ARRAY_TYPE:
- /* If passing by value won't work, give up. */
- if (int_size_in_bytes (valtype) <= 0)
- return NULL_RTX;
- ftype = TREE_TYPE (valtype);
- fmode = TYPE_MODE (ftype);
- tot = int_size_in_bytes (valtype) / int_size_in_bytes (ftype);
- bytepos = 0;
- for (elt = 0; elt < tot; ++elt)
- {
- if (USE_FP_FOR_ARG_P (cum, fmode, ftype))
- {
- sub = gen_rtx_REG (fmode, cum->fregno++);
- cum->sysv_gregno++;
- }
- else if (USE_ALTIVEC_FOR_ARG_P (cum, fmode, ftype, 1))
- {
- sub = gen_rtx_REG (fmode, cum->vregno++);
- cum->sysv_gregno++;
- }
- else if (fmode == BLKmode
- && (TREE_CODE (ftype) == RECORD_TYPE
- || TREE_CODE (ftype) == ARRAY_TYPE))
- sub = rs6000_darwin64_function_value (cum, ftype);
- else
- sub = gen_rtx_REG (fmode, cum->sysv_gregno++);
- if (sub == NULL_RTX)
- return sub;
- else if (GET_CODE (sub) == PARALLEL)
- {
- for (i = 0; i < XVECLEN (sub, 0); i++)
- {
- rtx subsub = XVECEXP (sub, 0, i);
-
- suboff = XEXP (subsub, 1);
- subbytepos = INTVAL (suboff);
- subbytepos += bytepos;
- roffset = gen_rtx_CONST_INT (SImode, subbytepos);
- subsub = XEXP (subsub, 0);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, subsub, roffset);
- }
- }
- else
- {
- roffset = gen_rtx_CONST_INT (SImode, bytepos);
- rvec[k++] = gen_rtx_EXPR_LIST (VOIDmode, sub, roffset);
- }
- bytepos += int_size_in_bytes (ftype);
- }
- if (k > 0)
- return gen_rtx_PARALLEL (TYPE_MODE (valtype), gen_rtvec_v (k, rvec));
- else
- return NULL_RTX;
-
- default:
- abort ();
- }
-}
-
/* Define how to find the value returned by a function.
VALTYPE is the data type of the value (as a tree).
If the precise function being called is known, FUNC is its FUNCTION_DECL;
@@ -18746,16 +21017,18 @@ rs6000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
/* Special handling for structs in darwin64. */
if (rs6000_darwin64_abi
&& TYPE_MODE (valtype) == BLKmode
- && (TREE_CODE (valtype) == RECORD_TYPE
- || TREE_CODE (valtype) == ARRAY_TYPE))
+ && TREE_CODE (valtype) == RECORD_TYPE
+ && int_size_in_bytes (valtype) > 0)
{
CUMULATIVE_ARGS valcum;
rtx valret;
- valcum.sysv_gregno = GP_ARG_RETURN;
+ valcum.words = 0;
valcum.fregno = FP_ARG_MIN_REG;
valcum.vregno = ALTIVEC_ARG_MIN_REG;
- valret = rs6000_darwin64_function_value (&valcum, valtype);
+ /* Do a trial code generation as if this were going to be passed as
+ an argument; if any part goes in memory, we return NULL. */
+ valret = rs6000_darwin64_record_arg (&valcum, valtype, 1, true);
if (valret)
return valret;
/* Otherwise fall through to standard ABI rules. */
@@ -18934,6 +21207,43 @@ rs6000_dbx_register_number (unsigned int regno)
abort ();
}
+/* APPLE LOCAL begin CW asm blocks */
+/* Translate some register names seen in CW asm into GCC standard
+ forms. */
+
+const char *
+rs6000_cw_asm_register_name (const char *regname, char *buf)
+{
+ /* SP is a valid reg name, but asm doesn't like it yet, so translate. */
+ if (strcmp (regname, "sp") == 0)
+ return "r1";
+ if (decode_reg_name (regname) >= 0)
+ return regname;
+ /* Change "gpr0" to "r0". */
+ if (regname[0] == 'g'
+ && regname[1] == 'p'
+ && decode_reg_name (regname + 2) >= 0)
+ return regname + 2;
+ /* Change "fp0" to "f0". */
+ if (regname[0] == 'f' && regname[1] == 'p')
+ {
+ buf[0] = 'f';
+ strcpy (buf + 1, regname + 2);
+ if (decode_reg_name (buf) >= 0)
+ return buf;
+ }
+ if (regname[0] == 's'
+ && regname[1] == 'p'
+ && regname[2] == 'r'
+ )
+ /* Temp hack, return it as a number. */
+ return regname + 3;
+ if (strcmp (regname, "RTOC") == 0)
+ return "r2";
+ return NULL;
+}
+/* APPLE LOCAL end CW asm blocks */
+
/* target hook eh_return_filter_mode */
static enum machine_mode
rs6000_eh_return_filter_mode (void)
@@ -18955,5 +21265,21 @@ rs6000_vector_mode_supported_p (enum machine_mode mode)
else
return false;
}
+/* APPLE LOCAL begin mainline 2005-04-14 */
+
+/* Target hook for invalid_arg_for_unprototyped_fn. */
+static const char *
+invalid_arg_for_unprototyped_fn (tree typelist, tree funcdecl, tree val)
+{
+ return (!rs6000_darwin64_abi
+ && typelist == 0
+ && TREE_CODE (TREE_TYPE (val)) == VECTOR_TYPE
+ && (funcdecl == NULL_TREE
+ || (TREE_CODE (funcdecl) == FUNCTION_DECL
+ && DECL_BUILT_IN_CLASS (funcdecl) != BUILT_IN_MD)))
+ ? N_("AltiVec argument passed to unprototyped function")
+ : NULL;
+}
+/* APPLE LOCAL end mainline 2005-04-14 */
#include "gt-rs6000.h"
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 1a2d12df2ce..6c70ef4ba93 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -205,6 +205,14 @@ extern int target_flags;
0x00100000, and sysv4.h uses 0x00800000 -> 0x40000000.
0x80000000 is not available because target_flags is signed. */
+/* APPLE LOCAL begin long-branch */
+/* gen call addr in register for >64M range */
+#define MASK_LONG_BRANCH 0x00200000
+/* APPLE LOCAL end long-branch */
+
+/* APPLE LOCAL begin radar 4161346 */
+#define MASK_PIM_ALTIVEC 0x00400000
+/* APPLE LOCAL end radar 4161346 */
#define TARGET_POWER (target_flags & MASK_POWER)
#define TARGET_POWER2 (target_flags & MASK_POWER2)
#define TARGET_POWERPC (target_flags & MASK_POWERPC)
@@ -223,6 +231,8 @@ extern int target_flags;
#define TARGET_SCHED_PROLOG (target_flags & MASK_SCHED_PROLOG)
#define TARGET_ALTIVEC (target_flags & MASK_ALTIVEC)
#define TARGET_AIX_STRUCT_RET (target_flags & MASK_AIX_STRUCT_RET)
+/* APPLE LOCAL long-branch */
+#define TARGET_LONG_BRANCH (target_flags & MASK_LONG_BRANCH)
/* Define TARGET_MFCRF if the target assembler supports the optional
field operand for mfcr and the target processor supports the
@@ -468,6 +478,11 @@ enum group_termination
{"longcall", &rs6000_longcall_switch, \
N_("Avoid all range limits on call instructions"), 0}, \
{"no-longcall", &rs6000_longcall_switch, "", 0}, \
+ /* APPLE LOCAL begin long-branch */ \
+ {"long-branch", &rs6000_longcall_switch, \
+ N_("Avoid all range limits on call instructions"), 0}, \
+ {"no-long-branch", &rs6000_longcall_switch, "", 0}, \
+ /* APPLE LOCAL end long-branch */ \
{"warn-altivec-long", &rs6000_warn_altivec_long_switch, \
N_("Warn about deprecated 'vector long ...' AltiVec type usage"), 0}, \
{"no-warn-altivec-long", &rs6000_warn_altivec_long_switch, "", 0}, \
@@ -479,6 +494,11 @@ enum group_termination
N_("Specify alignment of structure fields default/natural"), 0}, \
{"prioritize-restricted-insns=", &rs6000_sched_restricted_insns_priority_str, \
N_("Specify scheduling priority for dispatch slot restricted insns"), 0}, \
+ /* APPLE LOCAL begin AltiVec */ \
+ {"pim-altivec", &rs6000_altivec_pim_switch, \
+ N_("Enable use of Motorola AltiVec PIM operations and predicates"), 0}, \
+ {"no-pim-altivec", &rs6000_altivec_pim_switch, "", 0}, \
+ /* APPLE LOCAL end AltiVec */ \
SUBTARGET_OPTIONS \
}
@@ -541,6 +561,10 @@ extern enum rs6000_nop_insertion rs6000_sched_insert_nops;
extern int rs6000_warn_altivec_long;
extern const char *rs6000_warn_altivec_long_switch;
+/* APPLE LOCAL begin AltiVec */
+extern int rs6000_altivec_pim;
+extern const char *rs6000_altivec_pim_switch;
+/* APPLE LOCAL end AltiVec */
/* Alignment options for fields in structures for sub-targets following
AIX-like ABI.
@@ -555,6 +579,10 @@ extern const char *rs6000_warn_altivec_long_switch;
#define MASK_ALIGN_POWER 0x00000000
#define MASK_ALIGN_NATURAL 0x00000001
#define TARGET_ALIGN_NATURAL (rs6000_alignment_flags & MASK_ALIGN_NATURAL)
+/* APPLE LOCAL begin Macintosh alignment 2002-2-26 --ff */
+#define MASK_ALIGN_MAC68K 0x00000002
+#define TARGET_ALIGN_MAC68K (rs6000_alignment_flags & MASK_ALIGN_MAC68K)
+/* APPLE LOCAL end Macintosh alignment 2002-2-26 --ff */
#else
#define TARGET_ALIGN_NATURAL 0
#endif
@@ -734,6 +762,13 @@ extern const char *rs6000_warn_altivec_long_switch;
/* Allocation boundary (in *bits*) for the code of a function. */
#define FUNCTION_BOUNDARY 32
+/* APPLE LOCAL begin Macintosh alignment */
+/* Constants for alignment macros below. */
+#define RS6000_DOUBLE_ALIGNMENT 64
+#define RS6000_LONGLONG_ALIGNMENT 64
+#define RS6000_VECTOR_ALIGNMENT 128
+/* APPLE LOCAL end Macintosh alignment */
+
/* No data type wants to be aligned rounder than this. */
#define BIGGEST_ALIGNMENT 128
@@ -1660,6 +1695,10 @@ typedef struct machine_function GTY(())
{
/* Flags if __builtin_return_address (n) with n >= 1 was used. */
int ra_needs_full_frame;
+ /* APPLE LOCAL begin volatile pic base reg in leaves */
+ /* Substitute PIC register in leaf functions */
+ unsigned int substitute_pic_base_reg;
+ /* APPLE LOCAL end volatile pic base reg in leaves */
/* Some local-dynamic symbol. */
const char *some_ld_name;
/* Whether the instruction chain has been scanned already. */
@@ -1696,6 +1735,13 @@ typedef struct rs6000_args
int stdarg; /* Whether function is a stdarg function. */
int call_cookie; /* Do special things for this call */
int sysv_gregno; /* next available GP register */
+ int intoffset; /* running offset in struct (darwin64) */
+ int use_stack; /* any part of struct on stack (darwin64) */
+ /* APPLE LOCAL begin fix 64-bit varargs 4028089 */
+ int floats_in_gpr; /* count of SFmode floats taking up
+ GPR space (darwin64) */
+ /* APPLE LOCAL end fix 64-bit varargs 4028089 */
+ int named; /* false for varargs params */
} CUMULATIVE_ARGS;
/* Initialize a variable CUM of type CUMULATIVE_ARGS
@@ -2512,6 +2558,10 @@ extern char rs6000_reg_names[][8]; /* register names (0 vs. %r0). */
if ((LOG) != 0) \
fprintf (FILE, "\t.align %d\n", (LOG))
+/* APPLE LOCAL begin CW asm blocks */
+#define CW_ASM_REGISTER_NAME(STR, BUF) rs6000_cw_asm_register_name (STR, BUF)
+/* APPLE LOCAL end CW asm blocks */
+
/* Pick up the return address upon entry to a procedure. Used for
dwarf2 unwind information. This also enables the table driven
mechanism. */
@@ -2558,6 +2608,8 @@ extern char rs6000_reg_names[][8]; /* register names (0 vs. %r0). */
{"reg_or_aligned_short_operand", {SUBREG, REG, CONST_INT}}, \
{"reg_or_u_short_operand", {SUBREG, REG, CONST_INT}}, \
{"reg_or_cint_operand", {SUBREG, REG, CONST_INT}}, \
+ /* APPLE LOCAL radar 3869444 (also in mainline) */ \
+ {"scc_operand", {SUBREG, REG, CONST_INT}}, \
{"reg_or_arith_cint_operand", {SUBREG, REG, CONST_INT}}, \
{"reg_or_add_cint64_operand", {SUBREG, REG, CONST_INT}}, \
{"reg_or_sub_cint64_operand", {SUBREG, REG, CONST_INT}}, \
@@ -2626,8 +2678,8 @@ extern char rs6000_reg_names[][8]; /* register names (0 vs. %r0). */
/* General flags. */
extern int flag_pic;
-extern int optimize;
-extern int flag_expensive_optimizations;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
extern int frame_pointer_needed;
enum rs6000_builtins
@@ -3071,5 +3123,442 @@ enum rs6000_builtins
SPE_BUILTIN_EVMWHGUMIAN,
SPE_BUILTIN_MTSPEFSCR,
SPE_BUILTIN_MFSPEFSCR,
- SPE_BUILTIN_BRINC
+ /* APPLE LOCAL begin AltiVec */
+ SPE_BUILTIN_BRINC,
+
+ /* AltiVec PIM functions, used in Apple AltiVec mode. */
+ ALTIVEC_PIM__FIRST,
+
+ /* PIM Operations. */
+ ALTIVEC_PIM_VEC_ABS = ALTIVEC_PIM__FIRST,
+ ALTIVEC_PIM_VEC_ABS_2,
+ ALTIVEC_PIM_VEC_ABS_3,
+ ALTIVEC_PIM_VEC_ABS_4,
+ ALTIVEC_PIM_VEC_ABSS,
+ ALTIVEC_PIM_VEC_ABSS_2,
+ ALTIVEC_PIM_VEC_ABSS_3,
+ ALTIVEC_PIM_VEC_ADD,
+ ALTIVEC_PIM_VEC_ADD_2,
+ ALTIVEC_PIM_VEC_ADD_3,
+ ALTIVEC_PIM_VEC_ADD_4,
+ ALTIVEC_PIM_VEC_ADDC,
+ ALTIVEC_PIM_VEC_ADDS,
+ ALTIVEC_PIM_VEC_ADDS_2,
+ ALTIVEC_PIM_VEC_ADDS_3,
+ ALTIVEC_PIM_VEC_ADDS_4,
+ ALTIVEC_PIM_VEC_ADDS_5,
+ ALTIVEC_PIM_VEC_ADDS_6,
+ ALTIVEC_PIM_VEC_AND,
+ ALTIVEC_PIM_VEC_ANDC,
+ ALTIVEC_PIM_VEC_AVG,
+ ALTIVEC_PIM_VEC_AVG_2,
+ ALTIVEC_PIM_VEC_AVG_3,
+ ALTIVEC_PIM_VEC_AVG_4,
+ ALTIVEC_PIM_VEC_AVG_5,
+ ALTIVEC_PIM_VEC_AVG_6,
+ ALTIVEC_PIM_VEC_CEIL,
+ ALTIVEC_PIM_VEC_CMPB,
+ ALTIVEC_PIM_VEC_CMPEQ,
+ ALTIVEC_PIM_VEC_CMPEQ_2,
+ ALTIVEC_PIM_VEC_CMPEQ_3,
+ ALTIVEC_PIM_VEC_CMPEQ_4,
+ ALTIVEC_PIM_VEC_CMPGE,
+ ALTIVEC_PIM_VEC_CMPGT,
+ ALTIVEC_PIM_VEC_CMPGT_2,
+ ALTIVEC_PIM_VEC_CMPGT_3,
+ ALTIVEC_PIM_VEC_CMPGT_4,
+ ALTIVEC_PIM_VEC_CMPGT_5,
+ ALTIVEC_PIM_VEC_CMPGT_6,
+ ALTIVEC_PIM_VEC_CMPGT_7,
+ ALTIVEC_PIM_VEC_CMPLE,
+ ALTIVEC_PIM_VEC_CMPLT,
+ ALTIVEC_PIM_VEC_CMPLT_2,
+ ALTIVEC_PIM_VEC_CMPLT_3,
+ ALTIVEC_PIM_VEC_CMPLT_4,
+ ALTIVEC_PIM_VEC_CMPLT_5,
+ ALTIVEC_PIM_VEC_CMPLT_6,
+ ALTIVEC_PIM_VEC_CMPLT_7,
+ ALTIVEC_PIM_VEC_CTF,
+ ALTIVEC_PIM_VEC_CTF_2,
+ ALTIVEC_PIM_VEC_CTS,
+ ALTIVEC_PIM_VEC_CTU,
+ ALTIVEC_PIM_VEC_DSS,
+ ALTIVEC_PIM_VEC_DSSALL,
+ ALTIVEC_PIM_VEC_DST,
+ ALTIVEC_PIM_VEC_DSTST,
+ ALTIVEC_PIM_VEC_DSTSTT,
+ ALTIVEC_PIM_VEC_DSTT,
+ ALTIVEC_PIM_VEC_EXPTE,
+ ALTIVEC_PIM_VEC_FLOOR,
+ ALTIVEC_PIM_VEC_LD,
+ ALTIVEC_PIM_VEC_LDE,
+ ALTIVEC_PIM_VEC_LDE_2,
+ ALTIVEC_PIM_VEC_LDE_3,
+ ALTIVEC_PIM_VEC_LDL,
+ ALTIVEC_PIM_VEC_LOGE,
+ ALTIVEC_PIM_VEC_LVEBX,
+ ALTIVEC_PIM_VEC_LVEHX,
+ ALTIVEC_PIM_VEC_LVEWX,
+ ALTIVEC_PIM_VEC_LVSL,
+ ALTIVEC_PIM_VEC_LVSR,
+ ALTIVEC_PIM_VEC_LVX,
+ ALTIVEC_PIM_VEC_LVXL,
+ ALTIVEC_PIM_VEC_MADD,
+ ALTIVEC_PIM_VEC_MADDS,
+ ALTIVEC_PIM_VEC_MAX,
+ ALTIVEC_PIM_VEC_MAX_2,
+ ALTIVEC_PIM_VEC_MAX_3,
+ ALTIVEC_PIM_VEC_MAX_4,
+ ALTIVEC_PIM_VEC_MAX_5,
+ ALTIVEC_PIM_VEC_MAX_6,
+ ALTIVEC_PIM_VEC_MAX_7,
+ ALTIVEC_PIM_VEC_MERGEH,
+ ALTIVEC_PIM_VEC_MERGEH_2,
+ ALTIVEC_PIM_VEC_MERGEH_3,
+ ALTIVEC_PIM_VEC_MERGEL,
+ ALTIVEC_PIM_VEC_MERGEL_2,
+ ALTIVEC_PIM_VEC_MERGEL_3,
+ ALTIVEC_PIM_VEC_MFVSCR,
+ ALTIVEC_PIM_VEC_MIN,
+ ALTIVEC_PIM_VEC_MIN_2,
+ ALTIVEC_PIM_VEC_MIN_3,
+ ALTIVEC_PIM_VEC_MIN_4,
+ ALTIVEC_PIM_VEC_MIN_5,
+ ALTIVEC_PIM_VEC_MIN_6,
+ ALTIVEC_PIM_VEC_MIN_7,
+ ALTIVEC_PIM_VEC_MLADD,
+ ALTIVEC_PIM_VEC_MLADD_2,
+ ALTIVEC_PIM_VEC_MRADDS,
+ ALTIVEC_PIM_VEC_MSUM,
+ ALTIVEC_PIM_VEC_MSUM_2,
+ ALTIVEC_PIM_VEC_MSUM_3,
+ ALTIVEC_PIM_VEC_MSUM_4,
+ ALTIVEC_PIM_VEC_MSUMS,
+ ALTIVEC_PIM_VEC_MSUMS_2,
+ ALTIVEC_PIM_VEC_MTVSCR,
+ ALTIVEC_PIM_VEC_MULE,
+ ALTIVEC_PIM_VEC_MULE_2,
+ ALTIVEC_PIM_VEC_MULE_3,
+ ALTIVEC_PIM_VEC_MULE_4,
+ ALTIVEC_PIM_VEC_MULO,
+ ALTIVEC_PIM_VEC_MULO_2,
+ ALTIVEC_PIM_VEC_MULO_3,
+ ALTIVEC_PIM_VEC_MULO_4,
+ ALTIVEC_PIM_VEC_NMSUB,
+ ALTIVEC_PIM_VEC_NOR,
+ ALTIVEC_PIM_VEC_OR,
+ ALTIVEC_PIM_VEC_PACK,
+ ALTIVEC_PIM_VEC_PACK_2,
+ ALTIVEC_PIM_VEC_PACKPX,
+ ALTIVEC_PIM_VEC_PACKS,
+ ALTIVEC_PIM_VEC_PACKS_2,
+ ALTIVEC_PIM_VEC_PACKS_3,
+ ALTIVEC_PIM_VEC_PACKS_4,
+ ALTIVEC_PIM_VEC_PACKSU,
+ ALTIVEC_PIM_VEC_PACKSU_2,
+ ALTIVEC_PIM_VEC_PACKSU_3,
+ ALTIVEC_PIM_VEC_PACKSU_4,
+ ALTIVEC_PIM_VEC_PERM,
+ ALTIVEC_PIM_VEC_RE,
+ ALTIVEC_PIM_VEC_RL,
+ ALTIVEC_PIM_VEC_RL_2,
+ ALTIVEC_PIM_VEC_RL_3,
+ ALTIVEC_PIM_VEC_ROUND,
+ ALTIVEC_PIM_VEC_RSQRTE,
+ ALTIVEC_PIM_VEC_SEL,
+ ALTIVEC_PIM_VEC_SL,
+ ALTIVEC_PIM_VEC_SL_2,
+ ALTIVEC_PIM_VEC_SL_3,
+ ALTIVEC_PIM_VEC_SLD,
+ ALTIVEC_PIM_VEC_SLL,
+ ALTIVEC_PIM_VEC_SLO,
+ ALTIVEC_PIM_VEC_SPLAT,
+ ALTIVEC_PIM_VEC_SPLAT_2,
+ ALTIVEC_PIM_VEC_SPLAT_3,
+ ALTIVEC_PIM_VEC_SPLAT_S8,
+ ALTIVEC_PIM_VEC_SPLAT_S16,
+ ALTIVEC_PIM_VEC_SPLAT_S32,
+ ALTIVEC_PIM_VEC_SPLAT_U8,
+ ALTIVEC_PIM_VEC_SPLAT_U16,
+ ALTIVEC_PIM_VEC_SPLAT_U32,
+ ALTIVEC_PIM_VEC_SR,
+ ALTIVEC_PIM_VEC_SR_2,
+ ALTIVEC_PIM_VEC_SR_3,
+ ALTIVEC_PIM_VEC_SRA,
+ ALTIVEC_PIM_VEC_SRA_2,
+ ALTIVEC_PIM_VEC_SRA_3,
+ ALTIVEC_PIM_VEC_SRL,
+ ALTIVEC_PIM_VEC_SRO,
+ ALTIVEC_PIM_VEC_ST,
+ ALTIVEC_PIM_VEC_STE,
+ ALTIVEC_PIM_VEC_STE_2,
+ ALTIVEC_PIM_VEC_STE_3,
+ ALTIVEC_PIM_VEC_STL,
+ ALTIVEC_PIM_VEC_STVEBX,
+ ALTIVEC_PIM_VEC_STVEHX,
+ ALTIVEC_PIM_VEC_STVEWX,
+ ALTIVEC_PIM_VEC_STVX,
+ ALTIVEC_PIM_VEC_STVXL,
+ ALTIVEC_PIM_VEC_SUB,
+ ALTIVEC_PIM_VEC_SUB_2,
+ ALTIVEC_PIM_VEC_SUB_3,
+ ALTIVEC_PIM_VEC_SUB_4,
+ ALTIVEC_PIM_VEC_SUBC,
+ ALTIVEC_PIM_VEC_SUBS,
+ ALTIVEC_PIM_VEC_SUBS_2,
+ ALTIVEC_PIM_VEC_SUBS_3,
+ ALTIVEC_PIM_VEC_SUBS_4,
+ ALTIVEC_PIM_VEC_SUBS_5,
+ ALTIVEC_PIM_VEC_SUBS_6,
+ ALTIVEC_PIM_VEC_SUM4S,
+ ALTIVEC_PIM_VEC_SUM4S_2,
+ ALTIVEC_PIM_VEC_SUM4S_3,
+ ALTIVEC_PIM_VEC_SUM2S,
+ ALTIVEC_PIM_VEC_SUMS,
+ ALTIVEC_PIM_VEC_TRUNC,
+ ALTIVEC_PIM_VEC_UNPACKH,
+ ALTIVEC_PIM_VEC_UNPACKH_2,
+ ALTIVEC_PIM_VEC_UNPACKH_3,
+ ALTIVEC_PIM_VEC_UNPACKL,
+ ALTIVEC_PIM_VEC_UNPACKL_2,
+ ALTIVEC_PIM_VEC_UNPACKL_3,
+ ALTIVEC_PIM_VEC_VADDCUW,
+ ALTIVEC_PIM_VEC_VADDFP,
+ ALTIVEC_PIM_VEC_VADDSBS,
+ ALTIVEC_PIM_VEC_VADDSHS,
+ ALTIVEC_PIM_VEC_VADDSWS,
+ ALTIVEC_PIM_VEC_VADDUBM,
+ ALTIVEC_PIM_VEC_VADDUBS,
+ ALTIVEC_PIM_VEC_VADDUHM,
+ ALTIVEC_PIM_VEC_VADDUHS,
+ ALTIVEC_PIM_VEC_VADDUWM,
+ ALTIVEC_PIM_VEC_VADDUWS,
+ ALTIVEC_PIM_VEC_VAND,
+ ALTIVEC_PIM_VEC_VANDC,
+ ALTIVEC_PIM_VEC_VAVGSB,
+ ALTIVEC_PIM_VEC_VAVGSH,
+ ALTIVEC_PIM_VEC_VAVGSW,
+ ALTIVEC_PIM_VEC_VAVGUB,
+ ALTIVEC_PIM_VEC_VAVGUH,
+ ALTIVEC_PIM_VEC_VAVGUW,
+ ALTIVEC_PIM_VEC_VCFSX,
+ ALTIVEC_PIM_VEC_VCFUX,
+ ALTIVEC_PIM_VEC_VCMPBFP,
+ ALTIVEC_PIM_VEC_VCMPEQFP,
+ ALTIVEC_PIM_VEC_VCMPEQUB,
+ ALTIVEC_PIM_VEC_VCMPEQUH,
+ ALTIVEC_PIM_VEC_VCMPEQUW,
+ ALTIVEC_PIM_VEC_VCMPGEFP,
+ ALTIVEC_PIM_VEC_VCMPGTFP,
+ ALTIVEC_PIM_VEC_VCMPGTSB,
+ ALTIVEC_PIM_VEC_VCMPGTSH,
+ ALTIVEC_PIM_VEC_VCMPGTSW,
+ ALTIVEC_PIM_VEC_VCMPGTUB,
+ ALTIVEC_PIM_VEC_VCMPGTUH,
+ ALTIVEC_PIM_VEC_VCMPGTUW,
+ ALTIVEC_PIM_VEC_VCTSXS,
+ ALTIVEC_PIM_VEC_VCTUXS,
+ ALTIVEC_PIM_VEC_VEXPTEFP,
+ ALTIVEC_PIM_VEC_VLOGEFP,
+ ALTIVEC_PIM_VEC_VMADDFP,
+ ALTIVEC_PIM_VEC_VMAXFP,
+ ALTIVEC_PIM_VEC_VMAXSB,
+ ALTIVEC_PIM_VEC_VMAXSH,
+ ALTIVEC_PIM_VEC_VMAXSW,
+ ALTIVEC_PIM_VEC_VMAXUB,
+ ALTIVEC_PIM_VEC_VMAXUH,
+ ALTIVEC_PIM_VEC_VMAXUW,
+ ALTIVEC_PIM_VEC_VMHADDSHS,
+ ALTIVEC_PIM_VEC_VMHRADDSHS,
+ ALTIVEC_PIM_VEC_VMINFP,
+ ALTIVEC_PIM_VEC_VMINSB,
+ ALTIVEC_PIM_VEC_VMINSH,
+ ALTIVEC_PIM_VEC_VMINSW,
+ ALTIVEC_PIM_VEC_VMINUB,
+ ALTIVEC_PIM_VEC_VMINUH,
+ ALTIVEC_PIM_VEC_VMINUW,
+ ALTIVEC_PIM_VEC_VMLADDUHM,
+ ALTIVEC_PIM_VEC_VMRGHB,
+ ALTIVEC_PIM_VEC_VMRGHH,
+ ALTIVEC_PIM_VEC_VMRGHW,
+ ALTIVEC_PIM_VEC_VMRGLB,
+ ALTIVEC_PIM_VEC_VMRGLH,
+ ALTIVEC_PIM_VEC_VMRGLW,
+ ALTIVEC_PIM_VEC_VMSUMMBM,
+ ALTIVEC_PIM_VEC_VMSUMSHM,
+ ALTIVEC_PIM_VEC_VMSUMSHS,
+ ALTIVEC_PIM_VEC_VMSUMUBM,
+ ALTIVEC_PIM_VEC_VMSUMUHM,
+ ALTIVEC_PIM_VEC_VMSUMUHS,
+ ALTIVEC_PIM_VEC_VMULESB,
+ ALTIVEC_PIM_VEC_VMULESH,
+ ALTIVEC_PIM_VEC_VMULEUB,
+ ALTIVEC_PIM_VEC_VMULEUH,
+ ALTIVEC_PIM_VEC_VMULOSB,
+ ALTIVEC_PIM_VEC_VMULOSH,
+ ALTIVEC_PIM_VEC_VMULOUB,
+ ALTIVEC_PIM_VEC_VMULOUH,
+ ALTIVEC_PIM_VEC_VNMSUBFP,
+ ALTIVEC_PIM_VEC_VNOR,
+ ALTIVEC_PIM_VEC_VOR,
+ ALTIVEC_PIM_VEC_VPERM,
+ ALTIVEC_PIM_VEC_VPKPX,
+ ALTIVEC_PIM_VEC_VPKSHSS,
+ ALTIVEC_PIM_VEC_VPKSHUS,
+ ALTIVEC_PIM_VEC_VPKSWSS,
+ ALTIVEC_PIM_VEC_VPKSWUS,
+ ALTIVEC_PIM_VEC_VPKUHUM,
+ ALTIVEC_PIM_VEC_VPKUHUS,
+ ALTIVEC_PIM_VEC_VPKUWUM,
+ ALTIVEC_PIM_VEC_VPKUWUS,
+ ALTIVEC_PIM_VEC_VREFP,
+ ALTIVEC_PIM_VEC_VRFIM,
+ ALTIVEC_PIM_VEC_VRFIN,
+ ALTIVEC_PIM_VEC_VRFIP,
+ ALTIVEC_PIM_VEC_VRFIZ,
+ ALTIVEC_PIM_VEC_VRLB,
+ ALTIVEC_PIM_VEC_VRLH,
+ ALTIVEC_PIM_VEC_VRLW,
+ ALTIVEC_PIM_VEC_VRSQRTEFP,
+ ALTIVEC_PIM_VEC_VSEL,
+ ALTIVEC_PIM_VEC_VSL,
+ ALTIVEC_PIM_VEC_VSLB,
+ ALTIVEC_PIM_VEC_VSLDOI,
+ ALTIVEC_PIM_VEC_VSLH,
+ ALTIVEC_PIM_VEC_VSLO,
+ ALTIVEC_PIM_VEC_VSLW,
+ ALTIVEC_PIM_VEC_VSPLTB,
+ ALTIVEC_PIM_VEC_VSPLTH,
+ ALTIVEC_PIM_VEC_VSPLTISB,
+ ALTIVEC_PIM_VEC_VSPLTISH,
+ ALTIVEC_PIM_VEC_VSPLTISW,
+ ALTIVEC_PIM_VEC_VSPLTW,
+ ALTIVEC_PIM_VEC_VSR,
+ ALTIVEC_PIM_VEC_VSRAB,
+ ALTIVEC_PIM_VEC_VSRAH,
+ ALTIVEC_PIM_VEC_VSRAW,
+ ALTIVEC_PIM_VEC_VSRB,
+ ALTIVEC_PIM_VEC_VSRH,
+ ALTIVEC_PIM_VEC_VSRO,
+ ALTIVEC_PIM_VEC_VSRW,
+ ALTIVEC_PIM_VEC_VSUBCUW,
+ ALTIVEC_PIM_VEC_VSUBFP,
+ ALTIVEC_PIM_VEC_VSUBSBS,
+ ALTIVEC_PIM_VEC_VSUBSHS,
+ ALTIVEC_PIM_VEC_VSUBSWS,
+ ALTIVEC_PIM_VEC_VSUBUBM,
+ ALTIVEC_PIM_VEC_VSUBUBS,
+ ALTIVEC_PIM_VEC_VSUBUHM,
+ ALTIVEC_PIM_VEC_VSUBUHS,
+ ALTIVEC_PIM_VEC_VSUBUWM,
+ ALTIVEC_PIM_VEC_VSUBUWS,
+ ALTIVEC_PIM_VEC_VSUM4SBS,
+ ALTIVEC_PIM_VEC_VSUM4SHS,
+ ALTIVEC_PIM_VEC_VSUM4UBS,
+ ALTIVEC_PIM_VEC_VSUM2SWS,
+ ALTIVEC_PIM_VEC_VSUMSWS,
+ ALTIVEC_PIM_VEC_VUPKHPX,
+ ALTIVEC_PIM_VEC_VUPKHSB,
+ ALTIVEC_PIM_VEC_VUPKHSH,
+ ALTIVEC_PIM_VEC_VUPKLPX,
+ ALTIVEC_PIM_VEC_VUPKLSB,
+ ALTIVEC_PIM_VEC_VUPKLSH,
+ ALTIVEC_PIM_VEC_VXOR,
+ ALTIVEC_PIM_VEC_XOR,
+
+ /* PIM Predicates. */
+ ALTIVEC_PIM_VEC_ALL_EQ,
+ ALTIVEC_PIM_VEC_ALL_EQ_2,
+ ALTIVEC_PIM_VEC_ALL_EQ_3,
+ ALTIVEC_PIM_VEC_ALL_EQ_4,
+ ALTIVEC_PIM_VEC_ALL_GE,
+ ALTIVEC_PIM_VEC_ALL_GE_2,
+ ALTIVEC_PIM_VEC_ALL_GE_3,
+ ALTIVEC_PIM_VEC_ALL_GE_4,
+ ALTIVEC_PIM_VEC_ALL_GE_5,
+ ALTIVEC_PIM_VEC_ALL_GE_6,
+ ALTIVEC_PIM_VEC_ALL_GE_7,
+ ALTIVEC_PIM_VEC_ALL_GT,
+ ALTIVEC_PIM_VEC_ALL_GT_2,
+ ALTIVEC_PIM_VEC_ALL_GT_3,
+ ALTIVEC_PIM_VEC_ALL_GT_4,
+ ALTIVEC_PIM_VEC_ALL_GT_5,
+ ALTIVEC_PIM_VEC_ALL_GT_6,
+ ALTIVEC_PIM_VEC_ALL_GT_7,
+ ALTIVEC_PIM_VEC_ALL_IN,
+ ALTIVEC_PIM_VEC_ALL_LE,
+ ALTIVEC_PIM_VEC_ALL_LE_2,
+ ALTIVEC_PIM_VEC_ALL_LE_3,
+ ALTIVEC_PIM_VEC_ALL_LE_4,
+ ALTIVEC_PIM_VEC_ALL_LE_5,
+ ALTIVEC_PIM_VEC_ALL_LE_6,
+ ALTIVEC_PIM_VEC_ALL_LE_7,
+ ALTIVEC_PIM_VEC_ALL_LT,
+ ALTIVEC_PIM_VEC_ALL_LT_2,
+ ALTIVEC_PIM_VEC_ALL_LT_3,
+ ALTIVEC_PIM_VEC_ALL_LT_4,
+ ALTIVEC_PIM_VEC_ALL_LT_5,
+ ALTIVEC_PIM_VEC_ALL_LT_6,
+ ALTIVEC_PIM_VEC_ALL_LT_7,
+ ALTIVEC_PIM_VEC_ALL_NAN,
+ ALTIVEC_PIM_VEC_ALL_NE,
+ ALTIVEC_PIM_VEC_ALL_NE_2,
+ ALTIVEC_PIM_VEC_ALL_NE_3,
+ ALTIVEC_PIM_VEC_ALL_NE_4,
+ ALTIVEC_PIM_VEC_ALL_NGE,
+ ALTIVEC_PIM_VEC_ALL_NGT,
+ ALTIVEC_PIM_VEC_ALL_NLE,
+ ALTIVEC_PIM_VEC_ALL_NLT,
+ ALTIVEC_PIM_VEC_ALL_NUMERIC,
+ ALTIVEC_PIM_VEC_ANY_EQ,
+ ALTIVEC_PIM_VEC_ANY_EQ_2,
+ ALTIVEC_PIM_VEC_ANY_EQ_3,
+ ALTIVEC_PIM_VEC_ANY_EQ_4,
+ ALTIVEC_PIM_VEC_ANY_GE,
+ ALTIVEC_PIM_VEC_ANY_GE_2,
+ ALTIVEC_PIM_VEC_ANY_GE_3,
+ ALTIVEC_PIM_VEC_ANY_GE_4,
+ ALTIVEC_PIM_VEC_ANY_GE_5,
+ ALTIVEC_PIM_VEC_ANY_GE_6,
+ ALTIVEC_PIM_VEC_ANY_GE_7,
+ ALTIVEC_PIM_VEC_ANY_GT,
+ ALTIVEC_PIM_VEC_ANY_GT_2,
+ ALTIVEC_PIM_VEC_ANY_GT_3,
+ ALTIVEC_PIM_VEC_ANY_GT_4,
+ ALTIVEC_PIM_VEC_ANY_GT_5,
+ ALTIVEC_PIM_VEC_ANY_GT_6,
+ ALTIVEC_PIM_VEC_ANY_GT_7,
+ ALTIVEC_PIM_VEC_ANY_LE,
+ ALTIVEC_PIM_VEC_ANY_LE_2,
+ ALTIVEC_PIM_VEC_ANY_LE_3,
+ ALTIVEC_PIM_VEC_ANY_LE_4,
+ ALTIVEC_PIM_VEC_ANY_LE_5,
+ ALTIVEC_PIM_VEC_ANY_LE_6,
+ ALTIVEC_PIM_VEC_ANY_LE_7,
+ ALTIVEC_PIM_VEC_ANY_LT,
+ ALTIVEC_PIM_VEC_ANY_LT_2,
+ ALTIVEC_PIM_VEC_ANY_LT_3,
+ ALTIVEC_PIM_VEC_ANY_LT_4,
+ ALTIVEC_PIM_VEC_ANY_LT_5,
+ ALTIVEC_PIM_VEC_ANY_LT_6,
+ ALTIVEC_PIM_VEC_ANY_LT_7,
+ ALTIVEC_PIM_VEC_ANY_NAN,
+ ALTIVEC_PIM_VEC_ANY_NE,
+ ALTIVEC_PIM_VEC_ANY_NE_2,
+ ALTIVEC_PIM_VEC_ANY_NE_3,
+ ALTIVEC_PIM_VEC_ANY_NE_4,
+ ALTIVEC_PIM_VEC_ANY_NGE,
+ ALTIVEC_PIM_VEC_ANY_NGT,
+ ALTIVEC_PIM_VEC_ANY_NLE,
+ ALTIVEC_PIM_VEC_ANY_NLT,
+ ALTIVEC_PIM_VEC_ANY_NUMERIC,
+ ALTIVEC_PIM_VEC_ANY_OUT,
+
+ ALTIVEC_PIM__LAST = ALTIVEC_PIM_VEC_ANY_OUT,
+ /* APPLE LOCAL end AltiVec */
+
+ /* APPLE LOCAL begin constant cfstrings */
+ RS6000_BUILTIN_MAX,
+ TARGET_BUILTIN_MAX = RS6000_BUILTIN_MAX
+ /* APPLE LOCAL end constant cfstrings */
};
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 3fdb165dd41..64114a3eeaf 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -50,7 +50,9 @@
(UNSPEC_TLSGOTTPREL 28)
(UNSPEC_TLSTLS 29)
(UNSPEC_FIX_TRUNC_TF 30) ; fadd, rounding towards zero
- (UNSPEC_MV_CR_EQ 31) ; move_from_CR_eq_bit
+ (UNSPEC_MV_CR_GT 31) ; move_from_CR_eq_bit
+ ;; APPLE LOCAL special ObjC method use of R12
+ (UNSPEC_LD_MPIC_L 32) ; local_macho_picbase_label
])
;;
@@ -2909,24 +2911,10 @@
}"
[(set_attr "type" "insert_word")])
-(define_insn "*insvsi_internal1"
- [(set (zero_extract:SI (match_operand:SI 0 "gpc_reg_operand" "+r")
- (match_operand:SI 1 "const_int_operand" "i")
- (match_operand:SI 2 "const_int_operand" "i"))
- (ashift:SI (match_operand:SI 3 "gpc_reg_operand" "r")
- (match_operand:SI 4 "const_int_operand" "i")))]
- "(32 - (INTVAL (operands[4]) & 31)) >= INTVAL (operands[1])"
- "*
-{
- int shift = INTVAL (operands[4]) & 31;
- int start = INTVAL (operands[2]) & 31;
- int size = INTVAL (operands[1]) & 31;
-
- operands[4] = GEN_INT (shift - start - size);
- operands[1] = GEN_INT (start + size - 1);
- return \"{rlimi|rlwimi} %0,%3,%h4,%h2,%h1\";
-}"
- [(set_attr "type" "insert_word")])
+;; APPLE LOCAL begin insvsi_internal1 removed
+;; It has been fixed instead in mainline, although not in a
+;; very useful way, and that fix should be merged.
+;; APPLE LOCAL end insvsi_internal1 removed
(define_insn "*insvsi_internal2"
[(set (zero_extract:SI (match_operand:SI 0 "gpc_reg_operand" "+r")
@@ -4622,8 +4610,8 @@
(minus:SF (mult:SF (neg:SF (match_operand:SF 1 "gpc_reg_operand" "f"))
(match_operand:SF 2 "gpc_reg_operand" "f"))
(match_operand:SF 3 "gpc_reg_operand" "f")))]
- "TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD
- && ! HONOR_SIGNED_ZEROS (SFmode)"
+;; APPLE LOCAL do this even if honoring siged zeros
+ "TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD"
"fnmadds %0,%1,%2,%3"
[(set_attr "type" "fp")])
@@ -4641,8 +4629,8 @@
(minus:SF (mult:SF (neg:SF (match_operand:SF 1 "gpc_reg_operand" "f"))
(match_operand:SF 2 "gpc_reg_operand" "f"))
(match_operand:SF 3 "gpc_reg_operand" "f")))]
- "! TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD
- && ! HONOR_SIGNED_ZEROS (SFmode)"
+;; APPLE LOCAL do this even if honoring siged zeros
+ "! TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD"
"{fnma|fnmadd} %0,%1,%2,%3"
[(set_attr "type" "dmul")])
@@ -4661,8 +4649,8 @@
(minus:SF (match_operand:SF 3 "gpc_reg_operand" "f")
(mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f")
(match_operand:SF 2 "gpc_reg_operand" "f"))))]
- "TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD
- && ! HONOR_SIGNED_ZEROS (SFmode)"
+;; APPLE LOCAL do this even if honoring siged zeros
+ "TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD"
"fnmsubs %0,%1,%2,%3"
[(set_attr "type" "fp")])
@@ -4680,8 +4668,8 @@
(minus:SF (match_operand:SF 3 "gpc_reg_operand" "f")
(mult:SF (match_operand:SF 1 "gpc_reg_operand" "%f")
(match_operand:SF 2 "gpc_reg_operand" "f"))))]
- "! TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD
- && ! HONOR_SIGNED_ZEROS (SFmode)"
+;; APPLE LOCAL do this even if honoring siged zeros
+ "! TARGET_POWERPC && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD"
"{fnms|fnmsub} %0,%1,%2,%3"
[(set_attr "type" "fp")])
@@ -4984,8 +4972,8 @@
(minus:DF (mult:DF (neg:DF (match_operand:DF 1 "gpc_reg_operand" "f"))
(match_operand:DF 2 "gpc_reg_operand" "f"))
(match_operand:DF 3 "gpc_reg_operand" "f")))]
- "TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD
- && ! HONOR_SIGNED_ZEROS (DFmode)"
+;; APPLE LOCAL do this even if honoring siged zeros
+ "TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD"
"{fnma|fnmadd} %0,%1,%2,%3"
[(set_attr "type" "dmul")])
@@ -5004,8 +4992,8 @@
(minus:DF (match_operand:DF 3 "gpc_reg_operand" "f")
(mult:DF (match_operand:DF 1 "gpc_reg_operand" "%f")
(match_operand:DF 2 "gpc_reg_operand" "f"))))]
- "TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD
- && ! HONOR_SIGNED_ZEROS (DFmode)"
+;; APPLE LOCAL do this even if honoring siged zeros
+ "TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_FUSED_MADD"
"{fnms|fnmsub} %0,%1,%2,%3"
[(set_attr "type" "dmul")])
@@ -5121,7 +5109,12 @@
}
if (TARGET_POWERPC64)
{
- rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0);
+ /* APPLE LOCAL begin assign_stack_local_with_alias scheduling speedup */
+ /* assign_stack_local_with_alias is used instead of assign_stack_temp
+ * to get better scheduling, at the cost of some stack space. */
+ rtx mem = assign_stack_local_with_alias (DImode, GET_MODE_SIZE (DImode),
+ GET_MODE_ALIGNMENT (DImode));
+ /* APPLE LOCAL end assign_stack_local_with_alias scheduling speedup */
rtx t1 = gen_reg_rtx (DImode);
rtx t2 = gen_reg_rtx (DImode);
emit_insn (gen_floatsidf_ppc64 (operands[0], operands[1], mem, t1, t2));
@@ -5130,7 +5123,12 @@
operands[2] = force_reg (SImode, GEN_INT (0x43300000));
operands[3] = force_reg (DFmode, CONST_DOUBLE_ATOF (\"4503601774854144\", DFmode));
- operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0);
+ /* APPLE LOCAL begin assign_stack_local_with_alias scheduling speedup */
+ /* assign_stack_local_with_alias is used instead of assign_stack_temp to get
+ * better scheduling, at the cost of some stack space. */
+ operands[4] = assign_stack_local_with_alias (DFmode, GET_MODE_SIZE (DFmode),
+ GET_MODE_ALIGNMENT (DFmode));
+ /* APPLE LOCAL end assign_stack_local_with_alias scheduling speedup */
operands[5] = gen_reg_rtx (DFmode);
operands[6] = gen_reg_rtx (SImode);
}")
@@ -5208,7 +5206,12 @@
}
if (TARGET_POWERPC64)
{
- rtx mem = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0);
+ /* APPLE LOCAL begin assign_stack_local_with_alias scheduling speedup */
+ /* assign_stack_local_with_alias is used instead of assign_stack_temp
+ * to get better scheduling, at the cost of some stack space. */
+ rtx mem = assign_stack_local_with_alias (DImode, GET_MODE_SIZE (DImode),
+ GET_MODE_ALIGNMENT (DImode));
+ /* APPLE LOCAL end assign_stack_local_with_alias scheduling speedup */
rtx t1 = gen_reg_rtx (DImode);
rtx t2 = gen_reg_rtx (DImode);
emit_insn (gen_floatunssidf_ppc64 (operands[0], operands[1], mem,
@@ -5218,7 +5221,12 @@
operands[2] = force_reg (SImode, GEN_INT (0x43300000));
operands[3] = force_reg (DFmode, CONST_DOUBLE_ATOF (\"4503599627370496\", DFmode));
- operands[4] = assign_stack_temp (DFmode, GET_MODE_SIZE (DFmode), 0);
+ /* APPLE LOCAL begin assign_stack_local_with_alias scheduling speedup */
+ /* assign_stack_local_with_alias is used instead of assign_stack_temp
+ * to get better scheduling, at the cost of some stack space. */
+ operands[4] = assign_stack_local_with_alias (DFmode, GET_MODE_SIZE (DFmode),
+ GET_MODE_ALIGNMENT (DFmode));
+ /* APPLE LOCAL end assign_stack_local_with_alias scheduling speedup */
operands[5] = gen_reg_rtx (DFmode);
}")
@@ -5282,7 +5290,12 @@
DONE;
}
operands[2] = gen_reg_rtx (DImode);
- operands[3] = assign_stack_temp (DImode, GET_MODE_SIZE (DImode), 0);
+ /* APPLE LOCAL begin assign_stack_local_with_alias scheduling speedup */
+ /* assign_stack_local_with_alias is used instead of assign_stack_temp
+ * to get better scheduling, at the cost of some stack space. */
+ operands[3] = assign_stack_local_with_alias (DImode, GET_MODE_SIZE (DImode),
+ GET_MODE_ALIGNMENT (DImode));
+ /* APPLE LOCAL end assign_stack_local_with_alias scheduling speedup */
}")
(define_insn "*fix_truncdfsi2_internal"
@@ -8326,11 +8339,11 @@
})
(define_expand "trunctfdf2"
- [(set (match_operand:DF 0 "gpc_reg_operand" "=f")
- (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "f")))]
+ [(set (match_operand:DF 0 "gpc_reg_operand" "")
+ (float_truncate:DF (match_operand:TF 1 "gpc_reg_operand" "")))]
"(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)
&& TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128"
-"")
+ "")
(define_insn_and_split "trunctfdf2_internal1"
[(set (match_operand:DF 0 "gpc_reg_operand" "=f,?f")
@@ -10140,11 +10153,10 @@
(define_insn "load_toc_v4_PIC_1b"
[(set (match_operand:SI 0 "register_operand" "=l")
- (match_operand:SI 1 "immediate_operand" "s"))
- (use (unspec [(match_dup 1) (match_operand 2 "immediate_operand" "s")]
+ (unspec:SI [(match_operand:SI 1 "immediate_operand" "s")]
UNSPEC_TOCPTR))]
"TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2"
- "bcl 20,31,%1+4\\n%1:\\n\\t.long %2-%1"
+ "bcl 20,31,$+8\\n\\t.long %1-$"
[(set_attr "type" "branch")
(set_attr "length" "8")])
@@ -10406,6 +10418,13 @@
else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
output_asm_insn (\"creqv 6,6,6\", operands);
+/* APPLE LOCAL begin -mlongcall */
+#ifdef RS6000_LONG_BRANCH
+ if (!flag_pic)
+ return output_call(insn, operands, 0, 0);
+ else
+#endif
+/* APPLE LOCAL end -mlongcall */
return (DEFAULT_ABI == ABI_V4 && flag_pic) ? \"bl %z0@local\" : \"bl %z0\";
}"
[(set_attr "type" "branch")
@@ -10588,11 +10607,12 @@
;; operands[2] is the value FUNCTION_ARG returns for the VOID argument
;; which indicates how to set cr1
+;; APPLE LOCAL begin separate cl into c,*l; switch and attr's expanded to match
(define_insn "*call_indirect_nonlocal_sysv"
- [(call (mem:SI (match_operand:SI 0 "register_operand" "cl,cl"))
- (match_operand 1 "" "g,g"))
- (use (match_operand:SI 2 "immediate_operand" "O,n"))
- (clobber (match_scratch:SI 3 "=l,l"))]
+ [(call (mem:SI (match_operand:SI 0 "register_operand" "c,*l,c,*l"))
+ (match_operand 1 "" "g,g,g,g"))
+ (use (match_operand:SI 2 "immediate_operand" "O,O,n,n"))
+ (clobber (match_scratch:SI 3 "=l,l,l,l"))]
"DEFAULT_ABI == ABI_V4
|| DEFAULT_ABI == ABI_DARWIN"
{
@@ -10604,8 +10624,9 @@
return "b%T0l";
}
- [(set_attr "type" "jmpreg,jmpreg")
- (set_attr "length" "4,8")])
+ [(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg")
+ (set_attr "length" "4,4,8,8")])
+;; APPLE LOCAL end separate cl into c,*l; switch and attr's expanded to match
(define_insn "*call_nonlocal_sysv"
[(call (mem:SI (match_operand:SI 0 "symbol_ref_operand" "s,s"))
@@ -10622,6 +10643,21 @@
else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
output_asm_insn ("creqv 6,6,6", operands);
+ /* APPLE LOCAL begin ObjC direct dispatch. */
+ /* Generate 'bla' instruction for functions with hard-coded addresses. */
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ rtx note = find_reg_note (insn, REG_ABSCALL, NULL_RTX);
+ static char buf[256];
+ if (note)
+ {
+ sprintf (buf, \"bla \" HOST_WIDE_INT_PRINT_HEX,
+ INTVAL (XEXP (note, 0)));
+ return buf;
+ }
+ }
+ /* APPLE LOCAL end ObjC direct dispatch. */
+
#if TARGET_MACHO
return output_call(insn, operands, 0, 2);
#else
@@ -10631,12 +10667,13 @@
[(set_attr "type" "branch,branch")
(set_attr "length" "4,8")])
+;; APPLE LOCAL begin separate cl into c,*l; switch and attr's expanded to match
(define_insn "*call_value_indirect_nonlocal_sysv"
[(set (match_operand 0 "" "")
- (call (mem:SI (match_operand:SI 1 "register_operand" "cl,cl"))
- (match_operand 2 "" "g,g")))
- (use (match_operand:SI 3 "immediate_operand" "O,n"))
- (clobber (match_scratch:SI 4 "=l,l"))]
+ (call (mem:SI (match_operand:SI 1 "register_operand" "c,*l,c,*l"))
+ (match_operand 2 "" "g,g,g,g")))
+ (use (match_operand:SI 3 "immediate_operand" "O,O,n,n"))
+ (clobber (match_scratch:SI 4 "=l,l,l,l"))]
"DEFAULT_ABI == ABI_V4
|| DEFAULT_ABI == ABI_DARWIN"
{
@@ -10648,8 +10685,9 @@
return "b%T1l";
}
- [(set_attr "type" "jmpreg,jmpreg")
- (set_attr "length" "4,8")])
+ [(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg")
+ (set_attr "length" "4,4,8,8")])
+;; APPLE LOCAL end separate cl into c,*l; switch and attr's expanded to match
(define_insn "*call_value_nonlocal_sysv"
[(set (match_operand 0 "" "")
@@ -10667,6 +10705,21 @@
else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
output_asm_insn ("creqv 6,6,6", operands);
+ /* APPLE LOCAL begin ObjC direct dispatch. */
+ /* Generate 'bla' instruction for functions with hard-coded addresses. */
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ rtx note = find_reg_note (insn, REG_ABSCALL, NULL_RTX);
+ static char buf[256];
+ if (note)
+ {
+ sprintf (buf, \"bla \" HOST_WIDE_INT_PRINT_HEX,
+ INTVAL (XEXP (note, 0)));
+ return buf;
+ }
+ }
+ /* APPLE LOCAL end ObjC direct dispatch. */
+
#if TARGET_MACHO
return output_call(insn, operands, 1, 3);
#else
@@ -10704,6 +10757,86 @@
DONE;
}")
+;; APPLE LOCAL begin sibcall patterns
+;; APPLE MERGE modify FSF patterns below instead?
+;; this and similar patterns must be marked as using LR, otherwise
+;; dataflow will try to delete the store into it. This is true
+;; even when the actual reg to jump to is in CTR, when LR was
+;; saved and restored around the PIC-setting BCL.
+(define_insn "*sibcall_symbolic"
+ [(call (mem:SI (match_operand:SI 0 "call_operand" "s,c"))
+ (match_operand 1 "" ""))
+ (use (match_operand 2 "" ""))
+ (use (match_operand:SI 3 "register_operand" "l,l"))
+ (return)]
+ "! TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
+ "*
+{
+ /* APPLE LOCAL begin ObjC direct dispatch */
+ /* Generate 'ba' instruction for functions with hard-coded addresses. */
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ rtx note = find_reg_note (insn, REG_ABSCALL, NULL_RTX);
+ static char buf[256];
+ if (note)
+ {
+ if (which_alternative != 0)
+ abort ();
+ sprintf (buf, \"ba \" HOST_WIDE_INT_PRINT_HEX,
+ INTVAL (XEXP (note, 0)));
+ return buf;
+ }
+ }
+ /* APPLE LOCAL end ObjC direct dispatch */
+
+ switch (which_alternative)
+ {
+ case 0: return \"b %z0\";
+ case 1: return \"b%T0\";
+ default: abort();
+ }
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+
+(define_insn "*sibcall_value_symbolic"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:SI 1 "call_operand" "s,c"))
+ (match_operand 2 "" "")))
+ (use (match_operand:SI 3 "" ""))
+ (use (match_operand:SI 4 "register_operand" "l,l"))
+ (return)]
+ "! TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
+ "*
+{
+ /* APPLE LOCAL begin ObjC direct dispatch */
+ /* Generate 'ba' instruction for functions with hard-coded addresses. */
+ if (DEFAULT_ABI == ABI_DARWIN)
+ {
+ rtx note = find_reg_note (insn, REG_ABSCALL, NULL_RTX);
+ static char buf[256];
+ if (note)
+ {
+ if (which_alternative != 0)
+ abort ();
+ sprintf (buf, \"ba \" HOST_WIDE_INT_PRINT_HEX,
+ INTVAL (XEXP (note, 0)));
+ return buf;
+ }
+ }
+ /* APPLE LOCAL end ObjC direct dispatch */
+
+ switch (which_alternative)
+ {
+ case 0: return \"b %z1\";
+ case 1: return \"b%T1\";
+ default: abort();
+ }
+}"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+;; APPLE LOCAL end sibcall patterns
+
;; sibling call patterns
(define_expand "sibcall"
[(parallel [(call (mem:SI (match_operand 0 "address_operand" ""))
@@ -11473,11 +11606,11 @@
(set_attr "length" "8")])
;; Same as above, but get the GT bit.
-(define_insn "move_from_CR_eq_bit"
+(define_insn "move_from_CR_gt_bit"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (unspec:SI [(match_operand 1 "cc_reg_operand" "y")] UNSPEC_MV_CR_EQ))]
+ (unspec:SI [(match_operand 1 "cc_reg_operand" "y")] UNSPEC_MV_CR_GT))]
"TARGET_E500"
- "mfcr %0\;{rlinm|rlwinm} %0,%0,%D1,1"
+ "mfcr %0\;{rlinm|rlwinm} %0,%0,%D1,31,31"
[(set_attr "type" "mfcr")
(set_attr "length" "8")])
@@ -11665,6 +11798,7 @@
;; otherwise won't accept constants. We do this because it is faster than
;; the cmp/mfcr sequence we would otherwise generate.
+;; APPLE LOCAL begin radar 3869444 also in FSF mainline.
(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
@@ -11683,7 +11817,7 @@
(define_insn ""
[(set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r,r")
(eq:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r,r,r,r")
- (match_operand:DI 2 "reg_or_cint_operand" "r,O,K,J,I")))
+ (match_operand:DI 2 "scc_operand" "r,O,K,J,I")))
(clobber (match_scratch:DI 3 "=r,&r,r,r,r"))]
"TARGET_64BIT"
"@
@@ -11699,7 +11833,7 @@
[(set (match_operand:CC 4 "cc_reg_operand" "=x,x,x,x,x,?y,?y,?y,?y,?y")
(compare:CC
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,r,r,r")
- (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I,r,O,K,L,I"))
+ (match_operand:SI 2 "scc_operand" "r,O,K,L,I,r,O,K,L,I"))
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r,r,r,r,r,r")
(eq:SI (match_dup 1) (match_dup 2)))
@@ -11723,7 +11857,7 @@
[(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "")
(compare:CC
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_operand:SI 2 "reg_or_cint_operand" ""))
+ (match_operand:SI 2 "scc_operand" ""))
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "")
(eq:SI (match_dup 1) (match_dup 2)))
@@ -11741,7 +11875,7 @@
[(set (match_operand:CC 4 "cc_reg_operand" "=x,x,x,x,x,?y,?y,?y,?y,?y")
(compare:CC
(eq:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,r,r,r")
- (match_operand:DI 2 "reg_or_cint_operand" "r,O,K,J,I,r,O,K,J,I"))
+ (match_operand:DI 2 "scc_operand" "r,O,K,J,I,r,O,K,J,I"))
(const_int 0)))
(set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r,r,r,r,r,r,r,r")
(eq:DI (match_dup 1) (match_dup 2)))
@@ -11765,7 +11899,7 @@
[(set (match_operand:CC 4 "cc_reg_not_cr0_operand" "")
(compare:CC
(eq:DI (match_operand:DI 1 "gpc_reg_operand" "")
- (match_operand:DI 2 "reg_or_cint_operand" ""))
+ (match_operand:DI 2 "scc_operand" ""))
(const_int 0)))
(set (match_operand:DI 0 "gpc_reg_operand" "")
(eq:DI (match_dup 1) (match_dup 2)))
@@ -11797,7 +11931,7 @@
(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r,&r")
(plus:SI (eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
- (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I"))
+ (match_operand:SI 2 "scc_operand" "r,O,K,L,I"))
(match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r")))]
"TARGET_32BIT"
"@
@@ -11814,7 +11948,7 @@
(compare:CC
(plus:SI
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,r,r,r")
- (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I,r,O,K,L,I"))
+ (match_operand:SI 2 "scc_operand" "r,O,K,L,I,r,O,K,L,I"))
(match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r,r,r,r,r,r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r,&r,&r,&r,&r,&r,&r,&r,&r,&r"))]
@@ -11838,7 +11972,7 @@
(compare:CC
(plus:SI
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_operand:SI 2 "reg_or_cint_operand" ""))
+ (match_operand:SI 2 "scc_operand" ""))
(match_operand:SI 3 "gpc_reg_operand" ""))
(const_int 0)))
(clobber (match_scratch:SI 4 ""))]
@@ -11857,7 +11991,7 @@
(compare:CC
(plus:SI
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r,r,r,r,r,r")
- (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I,r,O,K,L,I"))
+ (match_operand:SI 2 "scc_operand" "r,O,K,L,I,r,O,K,L,I"))
(match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r,r,r,r,r,r"))
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=&r,&r,&r,&r,&r,&r,&r,&r,&r,&r")
@@ -11882,7 +12016,7 @@
(compare:CC
(plus:SI
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_operand:SI 2 "reg_or_cint_operand" ""))
+ (match_operand:SI 2 "scc_operand" ""))
(match_operand:SI 3 "gpc_reg_operand" ""))
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "")
@@ -11898,7 +12032,7 @@
(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
(neg:SI (eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
- (match_operand:SI 2 "reg_or_cint_operand" "r,O,K,L,I"))))]
+ (match_operand:SI 2 "scc_operand" "r,O,K,L,I"))))]
"TARGET_32BIT"
"@
xor %0,%1,%2\;{ai|addic} %0,%0,-1\;{sfe|subfe} %0,%0,%0
@@ -11908,6 +12042,7 @@
{sfi|subfic} %0,%1,%2\;{ai|addic} %0,%0,-1\;{sfe|subfe} %0,%0,%0"
[(set_attr "type" "three,two,three,three,three")
(set_attr "length" "12,8,12,12,12")])
+;; APPLE LOCAL end radar 3869444 also in FSF mainline.
;; Simplify (ne X (const_int 0)) on the PowerPC. No need to on the Power,
;; since it nabs/sr is just as fast.
@@ -12670,25 +12805,25 @@
"")
(define_insn_and_split ""
- [(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
+ [(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
(plus:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))
(match_operand:SI 3 "reg_or_short_operand" "rI,rI")))]
"TARGET_32BIT"
"#"
- "TARGET_32BIT"
+ "&& !reg_overlap_mentioned_p (operands[0], operands[3])"
[(set (match_dup 0) (neg:SI (ltu:SI (match_dup 1) (match_dup 2))))
(set (match_dup 0) (minus:SI (match_dup 3) (match_dup 0)))]
"")
(define_insn_and_split ""
- [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,r")
(plus:DI (ltu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
(match_operand:DI 2 "reg_or_neg_short_operand" "r,P"))
(match_operand:DI 3 "reg_or_short_operand" "rI,rI")))]
"TARGET_64BIT"
"#"
- "TARGET_64BIT"
+ "&& !reg_overlap_mentioned_p (operands[0], operands[3])"
[(set (match_dup 0) (neg:DI (ltu:DI (match_dup 1) (match_dup 2))))
(set (match_dup 0) (minus:DI (match_dup 3) (match_dup 0)))]
"")
@@ -13628,25 +13763,25 @@
"")
(define_insn_and_split ""
- [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+ [(set (match_operand:SI 0 "gpc_reg_operand" "=&r")
(plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "rI"))
(match_operand:SI 3 "reg_or_short_operand" "rI")))]
"TARGET_32BIT"
"#"
- "TARGET_32BIT"
+ "&& !reg_overlap_mentioned_p (operands[0], operands[3])"
[(set (match_dup 0) (neg:SI (gtu:SI (match_dup 1) (match_dup 2))))
(set (match_dup 0) (minus:SI (match_dup 3) (match_dup 0)))]
"")
(define_insn_and_split ""
- [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=&r")
(plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
(match_operand:DI 2 "reg_or_short_operand" "rI"))
(match_operand:DI 3 "reg_or_short_operand" "rI")))]
"TARGET_64BIT"
"#"
- "TARGET_64BIT"
+ "&& !reg_overlap_mentioned_p (operands[0], operands[3])"
[(set (match_dup 0) (neg:DI (gtu:DI (match_dup 1) (match_dup 2))))
(set (match_dup 0) (minus:DI (match_dup 3) (match_dup 0)))]
"")
@@ -14554,6 +14689,35 @@
[(set_attr "type" "branch")
(set_attr "length" "4")])
+/* APPLE LOCAL begin unnamed*/
+(define_insn "*save_fpregs_with_label_si"
+ [(match_parallel 0 "any_parallel_operand"
+ [(clobber (match_operand:SI 1 "register_operand" "=l"))
+ (use (match_operand:SI 2 "call_operand" "s"))
+ (use (match_operand:SI 3 "" ""))
+ (set (match_operand:DF 4 "memory_operand" "=m")
+ (match_operand:DF 5 "gpc_reg_operand" "f"))])]
+ "TARGET_32BIT"
+ "*
+#if TARGET_MACHO
+ const char *picbase = machopic_function_base_name ();
+ char *tmp;
+ operands[3] = gen_rtx_SYMBOL_REF (Pmode, ggc_alloc_string (picbase, -1));
+ if (TARGET_LONG_BRANCH)
+ {
+ tmp = ggc_alloc (strlen (XSTR (operands[2], 0)) + strlen (XSTR (operands[3], 0)) + 2);
+ strcpy (tmp, output_call(insn, operands, 2, 2));
+ strcat (tmp, \"\\n%3:\");
+ return tmp;
+ }
+ else
+#endif
+ return \"bl %z2\\n%3:\";
+"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+/* APPLE LOCAL end unnamed */
+
(define_insn "*save_fpregs_di"
[(match_parallel 0 "any_parallel_operand"
[(clobber (match_operand:DI 1 "register_operand" "=l"))
@@ -14661,7 +14825,16 @@
(set (match_operand:DF 3 "gpc_reg_operand" "=f")
(match_operand:DF 4 "memory_operand" "m"))])]
"TARGET_32BIT"
- "b %z2")
+; APPLE LOCAL begin -mlongcall
+ {
+#if TARGET_MACHO
+ if (TARGET_LONG_BRANCH)
+ return output_call(insn, operands, 2, 2);
+ else
+#endif
+ return "b %z2";
+ })
+; APPLE LOCAL end -mlongcall
(define_insn "*return_and_restore_fpregs_di"
[(match_parallel 0 "any_parallel_operand"
@@ -14671,7 +14844,16 @@
(set (match_operand:DF 3 "gpc_reg_operand" "=f")
(match_operand:DF 4 "memory_operand" "m"))])]
"TARGET_64BIT"
- "b %z2")
+; APPLE LOCAL begin -mlongcall
+ {
+#if TARGET_MACHO
+ if (TARGET_LONG_BRANCH)
+ return output_call(insn, operands, 2, 2);
+ else
+#endif
+ return "b %z2";
+ })
+; APPLE LOCAL end -mlongcall
; This is used in compiling the unwind routines.
(define_expand "eh_return"
diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
index b0459829372..79d03ff623f 100644
--- a/gcc/config/rs6000/spe.md
+++ b/gcc/config/rs6000/spe.md
@@ -29,6 +29,7 @@
(TSTDFGT_GPR 1009)
(CMPDFLT_GPR 1010)
(TSTDFLT_GPR 1011)
+ (E500_CR_IOR_COMPARE 1012)
])
(define_insn "*negsf2_gpr"
@@ -2615,14 +2616,14 @@
;; FP comparison stuff.
;; Flip the GT bit.
-(define_insn "e500_flip_eq_bit"
+(define_insn "e500_flip_gt_bit"
[(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
(unspec:CCFP
[(match_operand:CCFP 1 "cc_reg_operand" "y")] 999))]
"!TARGET_FPRS && TARGET_HARD_FLOAT"
"*
{
- return output_e500_flip_eq_bit (operands[0], operands[1]);
+ return output_e500_flip_gt_bit (operands[0], operands[1]);
}"
[(set_attr "type" "cr_logical")])
@@ -2751,3 +2752,13 @@
"TARGET_HARD_FLOAT && TARGET_E500_DOUBLE && flag_unsafe_math_optimizations"
"efdtstlt %0,%1,%2"
[(set_attr "type" "veccmpsimple")])
+
+;; Like cceq_ior_compare, but compare the GT bits.
+(define_insn "e500_cr_ior_compare"
+ [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
+ (unspec:CCFP [(match_operand 1 "cc_reg_operand" "y")
+ (match_operand 2 "cc_reg_operand" "y")]
+ E500_CR_IOR_COMPARE))]
+ "TARGET_E500"
+ "cror 4*%0+gt,4*%1+gt,4*%2+gt"
+ [(set_attr "type" "cr_logical")])
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index db9abeae735..30a11c533e5 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -438,6 +438,11 @@ do { \
#define BSS_SECTION_ASM_OP "\t.section\t\".bss\""
+/* APPLE LOCAL begin hot/cold partitioning */
+#define HOT_TEXT_SECTION_NAME ".text"
+#define UNLIKELY_EXECUTED_TEXT_SECTION_NAME ".text.unlikely"
+/* APPLE LOCAL end hot/cold partitioning */
+
/* Override elfos.h definition. */
#undef INIT_SECTION_ASM_OP
#define INIT_SECTION_ASM_OP "\t.section\t\".init\",\"ax\""
diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43
index 4c03269bc83..b163ef8af2c 100644
--- a/gcc/config/rs6000/t-aix43
+++ b/gcc/config/rs6000/t-aix43
@@ -46,19 +46,24 @@ SHLIB_EXT = .a
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
@multilib_flags@ @shlib_objs@ -lc \
- `case @shlib_base_name@ in \
+ `case @multilib_dir@ in \
*pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \
*) echo -lc ;; esac` ; \
- rm -f tmp-@shlib_base_name@.a ; \
- $(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a @multilib_dir@/shr.o ; \
- mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
+ rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
+ $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \
+ @multilib_dir@/shr.o ; \
+ mv @multilib_dir@/tmp-@shlib_base_name@.a \
+ @multilib_dir@/@shlib_base_name@.a ; \
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 $$(DESTDIR)$$(slibdir)/
-SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
+SHLIB_INSTALL = \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \
+ $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+ $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
+SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
SHLIB_NM_FLAGS = -Bpg -X32_64
# GCC 128-bit long double support routines.
diff --git a/gcc/config/rs6000/t-aix52 b/gcc/config/rs6000/t-aix52
index 10e26401475..6689eba56ab 100644
--- a/gcc/config/rs6000/t-aix52
+++ b/gcc/config/rs6000/t-aix52
@@ -27,19 +27,24 @@ SHLIB_EXT = .a
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
@multilib_flags@ @shlib_objs@ -lc \
- `case @shlib_base_name@ in \
+ `case @multilib_dir@ in \
*pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \
*) echo -lc ;; esac` ; \
- rm -f tmp-@shlib_base_name@.a ; \
- $(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a @multilib_dir@/shr.o ; \
- mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
+ rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
+ $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \
+ @multilib_dir@/shr.o ; \
+ mv @multilib_dir@/tmp-@shlib_base_name@.a \
+ @multilib_dir@/@shlib_base_name@.a ; \
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 $$(DESTDIR)$$(slibdir)/
-SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
+SHLIB_INSTALL = \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \
+ $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+ $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
+SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
SHLIB_NM_FLAGS = -Bpg -X32_64
# GCC 128-bit long double support routines.
diff --git a/gcc/config/rs6000/t-darwin b/gcc/config/rs6000/t-darwin
index 467c426f976..31f3f691dc4 100644
--- a/gcc/config/rs6000/t-darwin
+++ b/gcc/config/rs6000/t-darwin
@@ -1,15 +1,22 @@
+# APPLE LOCAL begin fpsave.asm moved from _STATIC_EXTRA to _EXTRA --dbj
LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-tramp.asm \
+ $(srcdir)/config/rs6000/darwin-fpsave.asm \
$(srcdir)/config/rs6000/darwin-ldouble.c
LIB2FUNCS_STATIC_EXTRA = \
- $(srcdir)/config/rs6000/darwin-fpsave.asm \
$(srcdir)/config/rs6000/darwin-vecsave.asm \
$(srcdir)/config/rs6000/darwin-world.asm
+# APPLE LOCAL end fpsave.asm moved from _STATIC_EXTRA to _EXTRA --dbj
# The .asm files above are designed to run on all processors,
# even though they use AltiVec instructions. -Wa is used because
# -force_cpusubtype_ALL doesn't work with -dynamiclib.
-TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL
+#
+# -pipe because there's an assembler bug, 4077127, which causes
+# it to not properly process the first # directive, causing temporary
+# file names to appear in stabs, causing the bootstrap to fail. Using -pipe
+# works around this by not having any temporary file names.
+TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL -pipe
# Export the _xlq* symbols from darwin-ldouble.c.
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver
diff --git a/gcc/config/rs6000/t-darwin8 b/gcc/config/rs6000/t-darwin8
new file mode 100644
index 00000000000..413ee9b13e3
--- /dev/null
+++ b/gcc/config/rs6000/t-darwin8
@@ -0,0 +1,4 @@
+# APPLE LOCAL file 64-bit
+# 64-bit libraries can only be built in Darwin 8.x or later.
+MULTILIB_OPTIONS = m64
+MULTILIB_DIRNAMES = ppc64
diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000
index caa07153ad3..7025b80a977 100644
--- a/gcc/config/rs6000/t-rs6000
+++ b/gcc/config/rs6000/t-rs6000
@@ -10,7 +10,8 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h gt-rs6000.h \
cfglayout.h
-rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
+# APPLE LOCAL AltiVec
+rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c options.h \
$(srcdir)/config/rs6000/rs6000-protos.h \
$(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(CPPLIB_H) \
$(TM_P_H) c-pragma.h errors.h coretypes.h $(TM_H)
diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems
index 11a73b62fcb..3213c82f5c7 100644
--- a/gcc/config/rs6000/t-rtems
+++ b/gcc/config/rs6000/t-rtems
@@ -1,25 +1,38 @@
# Multilibs for powerpc RTEMS targets.
MULTILIB_OPTIONS = \
-mcpu=403/mcpu=505/mcpu=601/mcpu=603/mcpu=603e/mcpu=604/mcpu=750/mcpu=821/mcpu=860 \
-Dmpc509/Dmpc8260 \
D_OLD_EXCEPTIONS \
+mcpu=403/mcpu=505/mcpu=601/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400 \
+Dmpc8260 \
msoft-float
MULTILIB_DIRNAMES = \
-m403 m505 m601 m603 m603e m604 m750 m821 m860 \
-mpc509 \
-mpc8260 \
roe \
+m403 m505 m601 m603e m604 m860 m7400 \
+mpc8260 \
nof
MULTILIB_EXTRA_OPTS = mrelocatable-lib mno-eabi mstrict-align
-MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
+# MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
+MULTILIB_MATCHES =
MULTILIB_MATCHES += ${MULTILIB_MATCHES_ENDIAN}
MULTILIB_MATCHES += ${MULTILIB_MATCHES_SYSV}
-MULTILIB_MATCHES += mcpu?505/Dmpc505=mcpu?505/Dmpc509
-MULTILIB_MATCHES += mcpu?603=mcpu?602
+# Map 405 to 403
+MULTILIB_MATCHES += mcpu?403=mcpu?405
+# Map 602, 603e, 603 to 603e
+MULTILIB_MATCHES += mcpu?603e=mcpu?602
+MULTILIB_MATCHES += mcpu?603e=mcpu?603
+# Map 801, 821, 823 to 860
+MULTILIB_MATCHES += mcpu?860=mcpu?801
+MULTILIB_MATCHES += mcpu?860=mcpu?821
+MULTILIB_MATCHES += mcpu?860=mcpu?823
+# Map 7450 to 7400
+MULTILIB_MATCHES += mcpu?7400=mcpu?7450
+
+# Map 750 to .
+MULTILIB_MATCHES += mcpu?750=
+
#
# RTEMS old/new-exceptions handling
@@ -34,32 +47,39 @@ MULTILIB_MATCHES += mcpu?603=mcpu?602
# Cpu-variants supporting new exception processing only
MULTILIB_NEW_EXCEPTIONS_ONLY = \
-*mcpu=505*/*D_OLD_EXCEPTIONS* \
-*mcpu=601*/*D_OLD_EXCEPTIONS* \
-*mcpu=602*/*D_OLD_EXCEPTIONS* \
-*mcpu=603/*D_OLD_EXCEPTIONS* \
-*mcpu=604*/*D_OLD_EXCEPTIONS* \
-*mcpu=750*/*D_OLD_EXCEPTIONS* \
-*mcpu=821*/*D_OLD_EXCEPTIONS* \
-*Dmpc8260*/*D_OLD_EXCEPTIONS* \
-*mcpu=860*/*D_OLD_EXCEPTIONS*
+D_OLD_EXCEPTIONS \
+D_OLD_EXCEPTIONS/msoft-float \
+D_OLD_EXCEPTIONS/mcpu=505 \
+D_OLD_EXCEPTIONS/mcpu=505/* \
+D_OLD_EXCEPTIONS/mcpu=601 \
+D_OLD_EXCEPTIONS/mcpu=601/* \
+D_OLD_EXCEPTIONS/mcpu=604 \
+D_OLD_EXCEPTIONS/mcpu=604/* \
+D_OLD_EXCEPTIONS/mcpu=750 \
+D_OLD_EXCEPTIONS/mcpu=750/* \
+D_OLD_EXCEPTIONS/mcpu=860 \
+D_OLD_EXCEPTIONS/mcpu=860/* \
+D_OLD_EXCEPTIONS/mcpu=7400 \
+D_OLD_EXCEPTIONS/mcpu=7400/* \
+D_OLD_EXCEPTIONS/*Dmpc*
# 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*
+*mcpu=401/*msoft-float* \
+*mcpu=403/*msoft-float* \
+*mcpu=405/*msoft-float* \
+*mcpu=801/*msoft-float* \
+*mcpu=821/*msoft-float* \
+*mcpu=823/*msoft-float* \
+*mcpu=860/*msoft-float*
# Hard-float only, take out msoft-float
MULTILIB_HARDFLOAT_ONLY = \
-mcpu=505/*msoft-float*
+*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*
@@ -70,22 +90,10 @@ ${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*
+MULTILIB_EXCEPTIONS += *mcpu=403/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=505/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=601/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=604/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=750/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=860/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=7400/Dmpc*
diff --git a/gcc/config/rs6000/vec.h b/gcc/config/rs6000/vec.h
new file mode 100644
index 00000000000..56e8786f25b
--- /dev/null
+++ b/gcc/config/rs6000/vec.h
@@ -0,0 +1,4515 @@
+/* APPLE LOCAL file AltiVec */
+/* This file is generated by ops-to-gp. Do not edit. */
+
+/* To regenerate execute:
+ ops-to-gp -gcc vec.ops builtin.ops
+ with the current directory being gcc/config/rs6000. */
+
+static const struct builtin B1_vec_abs = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 11, "vec_abs:1", "4", CODE_FOR_xfx_perm, B_UID(0) };
+static const struct builtin B2_vec_abs = { { &T_vec_s16, NULL, NULL, }, "x", &T_vec_s16, 1, FALSE, FALSE, 11, "vec_abs:2", "2", CODE_FOR_xfx_perm, B_UID(1) };
+static const struct builtin B3_vec_abs = { { &T_vec_s32, NULL, NULL, }, "x", &T_vec_s32, 1, FALSE, FALSE, 11, "vec_abs:3", "3", CODE_FOR_xfx_perm, B_UID(2) };
+static const struct builtin B4_vec_abs = { { &T_vec_s8, NULL, NULL, }, "x", &T_vec_s8, 1, FALSE, FALSE, 11, "vec_abs:4", "1", CODE_FOR_xfx_perm, B_UID(3) };
+static const struct builtin B1_vec_abss = { { &T_vec_s16, NULL, NULL, }, "x", &T_vec_s16, 1, FALSE, FALSE, 11, "vec_abss:1", "6", CODE_FOR_xfx_perm, B_UID(4) };
+static const struct builtin B2_vec_abss = { { &T_vec_s32, NULL, NULL, }, "x", &T_vec_s32, 1, FALSE, FALSE, 11, "vec_abss:2", "7", CODE_FOR_xfx_perm, B_UID(5) };
+static const struct builtin B3_vec_abss = { { &T_vec_s8, NULL, NULL, }, "x", &T_vec_s8, 1, FALSE, FALSE, 11, "vec_abss:3", "5", CODE_FOR_xfx_perm, B_UID(6) };
+static const struct builtin B1_vec_vadduhm = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vadduhm:1", "*vadduhm", CODE_FOR_xfxx_simple, B_UID(7) };
+static const struct builtin B2_vec_vadduhm = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vadduhm:2", "*vadduhm", CODE_FOR_xfxx_simple, B_UID(8) };
+static const struct builtin B1_vec_vadduwm = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vadduwm:1", "*vadduwm", CODE_FOR_xfxx_simple, B_UID(9) };
+static const struct builtin B2_vec_vadduwm = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vadduwm:2", "*vadduwm", CODE_FOR_xfxx_simple, B_UID(10) };
+static const struct builtin B1_vec_vaddubm = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vaddubm:1", "*vaddubm", CODE_FOR_xfxx_simple, B_UID(11) };
+static const struct builtin B2_vec_vaddubm = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vaddubm:2", "*vaddubm", CODE_FOR_xfxx_simple, B_UID(12) };
+static const struct builtin B_vec_vaddfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vaddfp", "*vaddfp", CODE_FOR_xfxx_fp, B_UID(13) };
+static const struct builtin B3_vec_vadduhm = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vadduhm:3", "*vadduhm", CODE_FOR_xfxx_simple, B_UID(14) };
+static const struct builtin B4_vec_vadduhm = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vadduhm:4", "*vadduhm", CODE_FOR_xfxx_simple, B_UID(15) };
+static const struct builtin B3_vec_vadduwm = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vadduwm:3", "*vadduwm", CODE_FOR_xfxx_simple, B_UID(16) };
+static const struct builtin B4_vec_vadduwm = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vadduwm:4", "*vadduwm", CODE_FOR_xfxx_simple, B_UID(17) };
+static const struct builtin B3_vec_vaddubm = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vaddubm:3", "*vaddubm", CODE_FOR_xfxx_simple, B_UID(18) };
+static const struct builtin B4_vec_vaddubm = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vaddubm:4", "*vaddubm", CODE_FOR_xfxx_simple, B_UID(19) };
+static const struct builtin B5_vec_vadduhm = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vadduhm:5", "*vadduhm", CODE_FOR_xfxx_simple, B_UID(20) };
+static const struct builtin B6_vec_vadduhm = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vadduhm:6", "*vadduhm", CODE_FOR_xfxx_simple, B_UID(21) };
+static const struct builtin B5_vec_vadduwm = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vadduwm:5", "*vadduwm", CODE_FOR_xfxx_simple, B_UID(22) };
+static const struct builtin B6_vec_vadduwm = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vadduwm:6", "*vadduwm", CODE_FOR_xfxx_simple, B_UID(23) };
+static const struct builtin B5_vec_vaddubm = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vaddubm:5", "*vaddubm", CODE_FOR_xfxx_simple, B_UID(24) };
+static const struct builtin B6_vec_vaddubm = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vaddubm:6", "*vaddubm", CODE_FOR_xfxx_simple, B_UID(25) };
+static const struct builtin B_vec_vaddcuw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vaddcuw", "*vaddcuw", CODE_FOR_xfxx_simple, B_UID(26) };
+static const struct builtin B1_vec_vaddshs = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vaddshs:1", "*vaddshs", CODE_FOR_xfxx_simple, B_UID(27) };
+static const struct builtin B1_vec_vadduhs = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vadduhs:1", "*vadduhs", CODE_FOR_xfxx_simple, B_UID(28) };
+static const struct builtin B1_vec_vaddsws = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vaddsws:1", "*vaddsws", CODE_FOR_xfxx_simple, B_UID(29) };
+static const struct builtin B1_vec_vadduws = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vadduws:1", "*vadduws", CODE_FOR_xfxx_simple, B_UID(30) };
+static const struct builtin B1_vec_vaddsbs = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vaddsbs:1", "*vaddsbs", CODE_FOR_xfxx_simple, B_UID(31) };
+static const struct builtin B1_vec_vaddubs = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vaddubs:1", "*vaddubs", CODE_FOR_xfxx_simple, B_UID(32) };
+static const struct builtin B2_vec_vaddshs = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vaddshs:2", "*vaddshs", CODE_FOR_xfxx_simple, B_UID(33) };
+static const struct builtin B3_vec_vaddshs = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vaddshs:3", "*vaddshs", CODE_FOR_xfxx_simple, B_UID(34) };
+static const struct builtin B2_vec_vaddsws = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vaddsws:2", "*vaddsws", CODE_FOR_xfxx_simple, B_UID(35) };
+static const struct builtin B3_vec_vaddsws = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vaddsws:3", "*vaddsws", CODE_FOR_xfxx_simple, B_UID(36) };
+static const struct builtin B2_vec_vaddsbs = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vaddsbs:2", "*vaddsbs", CODE_FOR_xfxx_simple, B_UID(37) };
+static const struct builtin B3_vec_vaddsbs = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vaddsbs:3", "*vaddsbs", CODE_FOR_xfxx_simple, B_UID(38) };
+static const struct builtin B2_vec_vadduhs = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vadduhs:2", "*vadduhs", CODE_FOR_xfxx_simple, B_UID(39) };
+static const struct builtin B3_vec_vadduhs = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vadduhs:3", "*vadduhs", CODE_FOR_xfxx_simple, B_UID(40) };
+static const struct builtin B2_vec_vadduws = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vadduws:2", "*vadduws", CODE_FOR_xfxx_simple, B_UID(41) };
+static const struct builtin B3_vec_vadduws = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vadduws:3", "*vadduws", CODE_FOR_xfxx_simple, B_UID(42) };
+static const struct builtin B2_vec_vaddubs = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vaddubs:2", "*vaddubs", CODE_FOR_xfxx_simple, B_UID(43) };
+static const struct builtin B3_vec_vaddubs = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vaddubs:3", "*vaddubs", CODE_FOR_xfxx_simple, B_UID(44) };
+static const struct builtin B1_vec_all_eq = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:1", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(45) };
+static const struct builtin B2_vec_all_eq = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:2", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(46) };
+static const struct builtin B3_vec_all_eq = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:3", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(47) };
+static const struct builtin B4_vec_all_eq = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:4", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(48) };
+static const struct builtin B5_vec_all_eq = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:5", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(49) };
+static const struct builtin B6_vec_all_eq = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:6", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(50) };
+static const struct builtin B7_vec_all_eq = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:7", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(51) };
+static const struct builtin B8_vec_all_eq = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:8", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(52) };
+static const struct builtin B9_vec_all_eq = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:9", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(53) };
+static const struct builtin B10_vec_all_eq = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:10", "*vcmpeqfp.", CODE_FOR_j_24_t_fxx_simple, B_UID(54) };
+static const struct builtin B11_vec_all_eq = { { &T_vec_p16, &T_vec_p16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:11", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(55) };
+static const struct builtin B12_vec_all_eq = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:12", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(56) };
+static const struct builtin B13_vec_all_eq = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:13", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(57) };
+static const struct builtin B14_vec_all_eq = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:14", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(58) };
+static const struct builtin B15_vec_all_eq = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:15", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(59) };
+static const struct builtin B16_vec_all_eq = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:16", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(60) };
+static const struct builtin B17_vec_all_eq = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:17", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(61) };
+static const struct builtin B18_vec_all_eq = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:18", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(62) };
+static const struct builtin B19_vec_all_eq = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:19", "*vcmpequh.", CODE_FOR_j_24_t_fxx_simple, B_UID(63) };
+static const struct builtin B20_vec_all_eq = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:20", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(64) };
+static const struct builtin B21_vec_all_eq = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:21", "*vcmpequw.", CODE_FOR_j_24_t_fxx_simple, B_UID(65) };
+static const struct builtin B22_vec_all_eq = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:22", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(66) };
+static const struct builtin B23_vec_all_eq = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_eq:23", "*vcmpequb.", CODE_FOR_j_24_t_fxx_simple, B_UID(67) };
+static const struct builtin B1_vec_all_ge = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:1", "*vcmpgtsh.", CODE_FOR_j_26_t_frxx_simple, B_UID(68) };
+static const struct builtin B2_vec_all_ge = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:2", "*vcmpgtuh.", CODE_FOR_j_26_t_frxx_simple, B_UID(69) };
+static const struct builtin B3_vec_all_ge = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:3", "*vcmpgtsw.", CODE_FOR_j_26_t_frxx_simple, B_UID(70) };
+static const struct builtin B4_vec_all_ge = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:4", "*vcmpgtuw.", CODE_FOR_j_26_t_frxx_simple, B_UID(71) };
+static const struct builtin B5_vec_all_ge = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:5", "*vcmpgtsb.", CODE_FOR_j_26_t_frxx_simple, B_UID(72) };
+static const struct builtin B6_vec_all_ge = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:6", "*vcmpgtub.", CODE_FOR_j_26_t_frxx_simple, B_UID(73) };
+static const struct builtin B7_vec_all_ge = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_ge:7", "*vcmpgefp.", CODE_FOR_j_24_t_fxx_simple, B_UID(74) };
+static const struct builtin B8_vec_all_ge = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:8", "*vcmpgtsh.", CODE_FOR_j_26_t_frxx_simple, B_UID(75) };
+static const struct builtin B9_vec_all_ge = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:9", "*vcmpgtsh.", CODE_FOR_j_26_t_frxx_simple, B_UID(76) };
+static const struct builtin B10_vec_all_ge = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:10", "*vcmpgtsw.", CODE_FOR_j_26_t_frxx_simple, B_UID(77) };
+static const struct builtin B11_vec_all_ge = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:11", "*vcmpgtsw.", CODE_FOR_j_26_t_frxx_simple, B_UID(78) };
+static const struct builtin B12_vec_all_ge = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:12", "*vcmpgtsb.", CODE_FOR_j_26_t_frxx_simple, B_UID(79) };
+static const struct builtin B13_vec_all_ge = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:13", "*vcmpgtsb.", CODE_FOR_j_26_t_frxx_simple, B_UID(80) };
+static const struct builtin B14_vec_all_ge = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:14", "*vcmpgtuh.", CODE_FOR_j_26_t_frxx_simple, B_UID(81) };
+static const struct builtin B15_vec_all_ge = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:15", "*vcmpgtuh.", CODE_FOR_j_26_t_frxx_simple, B_UID(82) };
+static const struct builtin B16_vec_all_ge = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:16", "*vcmpgtuw.", CODE_FOR_j_26_t_frxx_simple, B_UID(83) };
+static const struct builtin B17_vec_all_ge = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:17", "*vcmpgtuw.", CODE_FOR_j_26_t_frxx_simple, B_UID(84) };
+static const struct builtin B18_vec_all_ge = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:18", "*vcmpgtub.", CODE_FOR_j_26_t_frxx_simple, B_UID(85) };
+static const struct builtin B19_vec_all_ge = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_ge:19", "*vcmpgtub.", CODE_FOR_j_26_t_frxx_simple, B_UID(86) };
+static const struct builtin B1_vec_all_gt = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:1", "*vcmpgtsh.", CODE_FOR_j_24_t_fxx_simple, B_UID(87) };
+static const struct builtin B2_vec_all_gt = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:2", "*vcmpgtuh.", CODE_FOR_j_24_t_fxx_simple, B_UID(88) };
+static const struct builtin B3_vec_all_gt = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:3", "*vcmpgtsw.", CODE_FOR_j_24_t_fxx_simple, B_UID(89) };
+static const struct builtin B4_vec_all_gt = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:4", "*vcmpgtuw.", CODE_FOR_j_24_t_fxx_simple, B_UID(90) };
+static const struct builtin B5_vec_all_gt = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:5", "*vcmpgtsb.", CODE_FOR_j_24_t_fxx_simple, B_UID(91) };
+static const struct builtin B6_vec_all_gt = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:6", "*vcmpgtub.", CODE_FOR_j_24_t_fxx_simple, B_UID(92) };
+static const struct builtin B7_vec_all_gt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:7", "*vcmpgtfp.", CODE_FOR_j_24_t_fxx_simple, B_UID(93) };
+static const struct builtin B8_vec_all_gt = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:8", "*vcmpgtsh.", CODE_FOR_j_24_t_fxx_simple, B_UID(94) };
+static const struct builtin B9_vec_all_gt = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:9", "*vcmpgtsh.", CODE_FOR_j_24_t_fxx_simple, B_UID(95) };
+static const struct builtin B10_vec_all_gt = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:10", "*vcmpgtsw.", CODE_FOR_j_24_t_fxx_simple, B_UID(96) };
+static const struct builtin B11_vec_all_gt = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:11", "*vcmpgtsw.", CODE_FOR_j_24_t_fxx_simple, B_UID(97) };
+static const struct builtin B12_vec_all_gt = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:12", "*vcmpgtsb.", CODE_FOR_j_24_t_fxx_simple, B_UID(98) };
+static const struct builtin B13_vec_all_gt = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:13", "*vcmpgtsb.", CODE_FOR_j_24_t_fxx_simple, B_UID(99) };
+static const struct builtin B14_vec_all_gt = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:14", "*vcmpgtuh.", CODE_FOR_j_24_t_fxx_simple, B_UID(100) };
+static const struct builtin B15_vec_all_gt = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:15", "*vcmpgtuh.", CODE_FOR_j_24_t_fxx_simple, B_UID(101) };
+static const struct builtin B16_vec_all_gt = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:16", "*vcmpgtuw.", CODE_FOR_j_24_t_fxx_simple, B_UID(102) };
+static const struct builtin B17_vec_all_gt = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:17", "*vcmpgtuw.", CODE_FOR_j_24_t_fxx_simple, B_UID(103) };
+static const struct builtin B18_vec_all_gt = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:18", "*vcmpgtub.", CODE_FOR_j_24_t_fxx_simple, B_UID(104) };
+static const struct builtin B19_vec_all_gt = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc24t, 2, FALSE, FALSE, 0, "vec_all_gt:19", "*vcmpgtub.", CODE_FOR_j_24_t_fxx_simple, B_UID(105) };
+static const struct builtin B_vec_all_in = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_in", "*vcmpbfp.", CODE_FOR_j_26_t_fxx_simple, B_UID(106) };
+static const struct builtin B1_vec_all_le = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:1", "*vcmpgtsh.", CODE_FOR_j_26_t_fxx_simple, B_UID(107) };
+static const struct builtin B2_vec_all_le = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:2", "*vcmpgtuh.", CODE_FOR_j_26_t_fxx_simple, B_UID(108) };
+static const struct builtin B3_vec_all_le = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:3", "*vcmpgtsw.", CODE_FOR_j_26_t_fxx_simple, B_UID(109) };
+static const struct builtin B4_vec_all_le = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:4", "*vcmpgtuw.", CODE_FOR_j_26_t_fxx_simple, B_UID(110) };
+static const struct builtin B5_vec_all_le = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:5", "*vcmpgtsb.", CODE_FOR_j_26_t_fxx_simple, B_UID(111) };
+static const struct builtin B6_vec_all_le = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:6", "*vcmpgtub.", CODE_FOR_j_26_t_fxx_simple, B_UID(112) };
+static const struct builtin B7_vec_all_le = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_le:7", "*vcmpgefp.", CODE_FOR_j_24_t_frxx_simple, B_UID(113) };
+static const struct builtin B8_vec_all_le = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:8", "*vcmpgtsh.", CODE_FOR_j_26_t_fxx_simple, B_UID(114) };
+static const struct builtin B9_vec_all_le = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:9", "*vcmpgtsh.", CODE_FOR_j_26_t_fxx_simple, B_UID(115) };
+static const struct builtin B10_vec_all_le = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:10", "*vcmpgtsw.", CODE_FOR_j_26_t_fxx_simple, B_UID(116) };
+static const struct builtin B11_vec_all_le = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:11", "*vcmpgtsw.", CODE_FOR_j_26_t_fxx_simple, B_UID(117) };
+static const struct builtin B12_vec_all_le = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:12", "*vcmpgtsb.", CODE_FOR_j_26_t_fxx_simple, B_UID(118) };
+static const struct builtin B13_vec_all_le = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:13", "*vcmpgtsb.", CODE_FOR_j_26_t_fxx_simple, B_UID(119) };
+static const struct builtin B14_vec_all_le = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:14", "*vcmpgtuh.", CODE_FOR_j_26_t_fxx_simple, B_UID(120) };
+static const struct builtin B15_vec_all_le = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:15", "*vcmpgtuh.", CODE_FOR_j_26_t_fxx_simple, B_UID(121) };
+static const struct builtin B16_vec_all_le = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:16", "*vcmpgtuw.", CODE_FOR_j_26_t_fxx_simple, B_UID(122) };
+static const struct builtin B17_vec_all_le = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:17", "*vcmpgtuw.", CODE_FOR_j_26_t_fxx_simple, B_UID(123) };
+static const struct builtin B18_vec_all_le = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:18", "*vcmpgtub.", CODE_FOR_j_26_t_fxx_simple, B_UID(124) };
+static const struct builtin B19_vec_all_le = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_le:19", "*vcmpgtub.", CODE_FOR_j_26_t_fxx_simple, B_UID(125) };
+static const struct builtin B1_vec_all_lt = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:1", "*vcmpgtsh.", CODE_FOR_j_24_t_frxx_simple, B_UID(126) };
+static const struct builtin B2_vec_all_lt = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:2", "*vcmpgtuh.", CODE_FOR_j_24_t_frxx_simple, B_UID(127) };
+static const struct builtin B3_vec_all_lt = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:3", "*vcmpgtsw.", CODE_FOR_j_24_t_frxx_simple, B_UID(128) };
+static const struct builtin B4_vec_all_lt = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:4", "*vcmpgtuw.", CODE_FOR_j_24_t_frxx_simple, B_UID(129) };
+static const struct builtin B5_vec_all_lt = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:5", "*vcmpgtsb.", CODE_FOR_j_24_t_frxx_simple, B_UID(130) };
+static const struct builtin B6_vec_all_lt = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:6", "*vcmpgtub.", CODE_FOR_j_24_t_frxx_simple, B_UID(131) };
+static const struct builtin B7_vec_all_lt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:7", "*vcmpgtfp.", CODE_FOR_j_24_t_frxx_simple, B_UID(132) };
+static const struct builtin B8_vec_all_lt = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:8", "*vcmpgtsh.", CODE_FOR_j_24_t_frxx_simple, B_UID(133) };
+static const struct builtin B9_vec_all_lt = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:9", "*vcmpgtsh.", CODE_FOR_j_24_t_frxx_simple, B_UID(134) };
+static const struct builtin B10_vec_all_lt = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:10", "*vcmpgtsw.", CODE_FOR_j_24_t_frxx_simple, B_UID(135) };
+static const struct builtin B11_vec_all_lt = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:11", "*vcmpgtsw.", CODE_FOR_j_24_t_frxx_simple, B_UID(136) };
+static const struct builtin B12_vec_all_lt = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:12", "*vcmpgtsb.", CODE_FOR_j_24_t_frxx_simple, B_UID(137) };
+static const struct builtin B13_vec_all_lt = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:13", "*vcmpgtsb.", CODE_FOR_j_24_t_frxx_simple, B_UID(138) };
+static const struct builtin B14_vec_all_lt = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:14", "*vcmpgtuh.", CODE_FOR_j_24_t_frxx_simple, B_UID(139) };
+static const struct builtin B15_vec_all_lt = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:15", "*vcmpgtuh.", CODE_FOR_j_24_t_frxx_simple, B_UID(140) };
+static const struct builtin B16_vec_all_lt = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:16", "*vcmpgtuw.", CODE_FOR_j_24_t_frxx_simple, B_UID(141) };
+static const struct builtin B17_vec_all_lt = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:17", "*vcmpgtuw.", CODE_FOR_j_24_t_frxx_simple, B_UID(142) };
+static const struct builtin B18_vec_all_lt = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:18", "*vcmpgtub.", CODE_FOR_j_24_t_frxx_simple, B_UID(143) };
+static const struct builtin B19_vec_all_lt = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc24tr, 2, FALSE, FALSE, 0, "vec_all_lt:19", "*vcmpgtub.", CODE_FOR_j_24_t_frxx_simple, B_UID(144) };
+static const struct builtin B_vec_all_nan = { { &T_vec_f32, NULL, NULL, }, "x", &T_cc26td, 1, FALSE, FALSE, 0, "vec_all_nan", "*vcmpeqfp.", CODE_FOR_j_26_t_fx_simple, B_UID(145) };
+static const struct builtin B1_vec_all_ne = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:1", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(146) };
+static const struct builtin B2_vec_all_ne = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:2", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(147) };
+static const struct builtin B3_vec_all_ne = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:3", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(148) };
+static const struct builtin B4_vec_all_ne = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:4", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(149) };
+static const struct builtin B5_vec_all_ne = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:5", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(150) };
+static const struct builtin B6_vec_all_ne = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:6", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(151) };
+static const struct builtin B7_vec_all_ne = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:7", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(152) };
+static const struct builtin B8_vec_all_ne = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:8", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(153) };
+static const struct builtin B9_vec_all_ne = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:9", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(154) };
+static const struct builtin B10_vec_all_ne = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:10", "*vcmpeqfp.", CODE_FOR_j_26_t_fxx_simple, B_UID(155) };
+static const struct builtin B11_vec_all_ne = { { &T_vec_p16, &T_vec_p16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:11", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(156) };
+static const struct builtin B12_vec_all_ne = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:12", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(157) };
+static const struct builtin B13_vec_all_ne = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:13", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(158) };
+static const struct builtin B14_vec_all_ne = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:14", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(159) };
+static const struct builtin B15_vec_all_ne = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:15", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(160) };
+static const struct builtin B16_vec_all_ne = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:16", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(161) };
+static const struct builtin B17_vec_all_ne = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:17", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(162) };
+static const struct builtin B18_vec_all_ne = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:18", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(163) };
+static const struct builtin B19_vec_all_ne = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:19", "*vcmpequh.", CODE_FOR_j_26_t_fxx_simple, B_UID(164) };
+static const struct builtin B20_vec_all_ne = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:20", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(165) };
+static const struct builtin B21_vec_all_ne = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:21", "*vcmpequw.", CODE_FOR_j_26_t_fxx_simple, B_UID(166) };
+static const struct builtin B22_vec_all_ne = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:22", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(167) };
+static const struct builtin B23_vec_all_ne = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ne:23", "*vcmpequb.", CODE_FOR_j_26_t_fxx_simple, B_UID(168) };
+static const struct builtin B_vec_all_nge = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_nge", "*vcmpgefp.", CODE_FOR_j_26_t_fxx_simple, B_UID(169) };
+static const struct builtin B_vec_all_ngt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26t, 2, FALSE, FALSE, 0, "vec_all_ngt", "*vcmpgtfp.", CODE_FOR_j_26_t_fxx_simple, B_UID(170) };
+static const struct builtin B_vec_all_nle = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_nle", "*vcmpgefp.", CODE_FOR_j_26_t_frxx_simple, B_UID(171) };
+static const struct builtin B_vec_all_nlt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26tr, 2, FALSE, FALSE, 0, "vec_all_nlt", "*vcmpgtfp.", CODE_FOR_j_26_t_frxx_simple, B_UID(172) };
+static const struct builtin B_vec_all_numeric = { { &T_vec_f32, NULL, NULL, }, "x", &T_cc24td, 1, FALSE, FALSE, 0, "vec_all_numeric", "*vcmpeqfp.", CODE_FOR_j_24_t_fx_simple, B_UID(173) };
+static const struct builtin B1_vec_vand = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 2, "vec_vand:1", "*vand", CODE_FOR_xfxx_simple, B_UID(174) };
+static const struct builtin B2_vec_vand = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vand:2", "*vand", CODE_FOR_xfxx_simple, B_UID(175) };
+static const struct builtin B3_vec_vand = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vand:3", "*vand", CODE_FOR_xfxx_simple, B_UID(176) };
+static const struct builtin B4_vec_vand = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 2, "vec_vand:4", "*vand", CODE_FOR_xfxx_simple, B_UID(177) };
+static const struct builtin B5_vec_vand = { { &T_vec_b32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vand:5", "*vand", CODE_FOR_xfxx_simple, B_UID(178) };
+static const struct builtin B6_vec_vand = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vand:6", "*vand", CODE_FOR_xfxx_simple, B_UID(179) };
+static const struct builtin B7_vec_vand = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vand:7", "*vand", CODE_FOR_xfxx_simple, B_UID(180) };
+static const struct builtin B8_vec_vand = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 2, "vec_vand:8", "*vand", CODE_FOR_xfxx_simple, B_UID(181) };
+static const struct builtin B9_vec_vand = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vand:9", "*vand", CODE_FOR_xfxx_simple, B_UID(182) };
+static const struct builtin B10_vec_vand = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vand:10", "*vand", CODE_FOR_xfxx_simple, B_UID(183) };
+static const struct builtin B11_vec_vand = { { &T_vec_f32, &T_vec_b32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vand:11", "*vand", CODE_FOR_xfxx_simple, B_UID(184) };
+static const struct builtin B12_vec_vand = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vand:12", "*vand", CODE_FOR_xfxx_simple, B_UID(185) };
+static const struct builtin B13_vec_vand = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vand:13", "*vand", CODE_FOR_xfxx_simple, B_UID(186) };
+static const struct builtin B14_vec_vand = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vand:14", "*vand", CODE_FOR_xfxx_simple, B_UID(187) };
+static const struct builtin B15_vec_vand = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vand:15", "*vand", CODE_FOR_xfxx_simple, B_UID(188) };
+static const struct builtin B16_vec_vand = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vand:16", "*vand", CODE_FOR_xfxx_simple, B_UID(189) };
+static const struct builtin B17_vec_vand = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vand:17", "*vand", CODE_FOR_xfxx_simple, B_UID(190) };
+static const struct builtin B18_vec_vand = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vand:18", "*vand", CODE_FOR_xfxx_simple, B_UID(191) };
+static const struct builtin B19_vec_vand = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vand:19", "*vand", CODE_FOR_xfxx_simple, B_UID(192) };
+static const struct builtin B20_vec_vand = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vand:20", "*vand", CODE_FOR_xfxx_simple, B_UID(193) };
+static const struct builtin B21_vec_vand = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vand:21", "*vand", CODE_FOR_xfxx_simple, B_UID(194) };
+static const struct builtin B22_vec_vand = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vand:22", "*vand", CODE_FOR_xfxx_simple, B_UID(195) };
+static const struct builtin B23_vec_vand = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vand:23", "*vand", CODE_FOR_xfxx_simple, B_UID(196) };
+static const struct builtin B24_vec_vand = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vand:24", "*vand", CODE_FOR_xfxx_simple, B_UID(197) };
+static const struct builtin B1_vec_vandc = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 1, "vec_vandc:1", "*vandc", CODE_FOR_xfxx_simple, B_UID(198) };
+static const struct builtin B2_vec_vandc = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vandc:2", "*vandc", CODE_FOR_xfxx_simple, B_UID(199) };
+static const struct builtin B3_vec_vandc = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vandc:3", "*vandc", CODE_FOR_xfxx_simple, B_UID(200) };
+static const struct builtin B4_vec_vandc = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 1, "vec_vandc:4", "*vandc", CODE_FOR_xfxx_simple, B_UID(201) };
+static const struct builtin B5_vec_vandc = { { &T_vec_b32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vandc:5", "*vandc", CODE_FOR_xfxx_simple, B_UID(202) };
+static const struct builtin B6_vec_vandc = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vandc:6", "*vandc", CODE_FOR_xfxx_simple, B_UID(203) };
+static const struct builtin B7_vec_vandc = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vandc:7", "*vandc", CODE_FOR_xfxx_simple, B_UID(204) };
+static const struct builtin B8_vec_vandc = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 1, "vec_vandc:8", "*vandc", CODE_FOR_xfxx_simple, B_UID(205) };
+static const struct builtin B9_vec_vandc = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vandc:9", "*vandc", CODE_FOR_xfxx_simple, B_UID(206) };
+static const struct builtin B10_vec_vandc = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vandc:10", "*vandc", CODE_FOR_xfxx_simple, B_UID(207) };
+static const struct builtin B11_vec_vandc = { { &T_vec_f32, &T_vec_b32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vandc:11", "*vandc", CODE_FOR_xfxx_simple, B_UID(208) };
+static const struct builtin B12_vec_vandc = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vandc:12", "*vandc", CODE_FOR_xfxx_simple, B_UID(209) };
+static const struct builtin B13_vec_vandc = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vandc:13", "*vandc", CODE_FOR_xfxx_simple, B_UID(210) };
+static const struct builtin B14_vec_vandc = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vandc:14", "*vandc", CODE_FOR_xfxx_simple, B_UID(211) };
+static const struct builtin B15_vec_vandc = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vandc:15", "*vandc", CODE_FOR_xfxx_simple, B_UID(212) };
+static const struct builtin B16_vec_vandc = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vandc:16", "*vandc", CODE_FOR_xfxx_simple, B_UID(213) };
+static const struct builtin B17_vec_vandc = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vandc:17", "*vandc", CODE_FOR_xfxx_simple, B_UID(214) };
+static const struct builtin B18_vec_vandc = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vandc:18", "*vandc", CODE_FOR_xfxx_simple, B_UID(215) };
+static const struct builtin B19_vec_vandc = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vandc:19", "*vandc", CODE_FOR_xfxx_simple, B_UID(216) };
+static const struct builtin B20_vec_vandc = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vandc:20", "*vandc", CODE_FOR_xfxx_simple, B_UID(217) };
+static const struct builtin B21_vec_vandc = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vandc:21", "*vandc", CODE_FOR_xfxx_simple, B_UID(218) };
+static const struct builtin B22_vec_vandc = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vandc:22", "*vandc", CODE_FOR_xfxx_simple, B_UID(219) };
+static const struct builtin B23_vec_vandc = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vandc:23", "*vandc", CODE_FOR_xfxx_simple, B_UID(220) };
+static const struct builtin B24_vec_vandc = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vandc:24", "*vandc", CODE_FOR_xfxx_simple, B_UID(221) };
+static const struct builtin B1_vec_any_eq = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:1", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(222) };
+static const struct builtin B2_vec_any_eq = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:2", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(223) };
+static const struct builtin B3_vec_any_eq = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:3", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(224) };
+static const struct builtin B4_vec_any_eq = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:4", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(225) };
+static const struct builtin B5_vec_any_eq = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:5", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(226) };
+static const struct builtin B6_vec_any_eq = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:6", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(227) };
+static const struct builtin B7_vec_any_eq = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:7", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(228) };
+static const struct builtin B8_vec_any_eq = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:8", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(229) };
+static const struct builtin B9_vec_any_eq = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:9", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(230) };
+static const struct builtin B10_vec_any_eq = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:10", "*vcmpeqfp.", CODE_FOR_j_26_f_fxx_simple, B_UID(231) };
+static const struct builtin B11_vec_any_eq = { { &T_vec_p16, &T_vec_p16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:11", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(232) };
+static const struct builtin B12_vec_any_eq = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:12", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(233) };
+static const struct builtin B13_vec_any_eq = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:13", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(234) };
+static const struct builtin B14_vec_any_eq = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:14", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(235) };
+static const struct builtin B15_vec_any_eq = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:15", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(236) };
+static const struct builtin B16_vec_any_eq = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:16", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(237) };
+static const struct builtin B17_vec_any_eq = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:17", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(238) };
+static const struct builtin B18_vec_any_eq = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:18", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(239) };
+static const struct builtin B19_vec_any_eq = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:19", "*vcmpequh.", CODE_FOR_j_26_f_fxx_simple, B_UID(240) };
+static const struct builtin B20_vec_any_eq = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:20", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(241) };
+static const struct builtin B21_vec_any_eq = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:21", "*vcmpequw.", CODE_FOR_j_26_f_fxx_simple, B_UID(242) };
+static const struct builtin B22_vec_any_eq = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:22", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(243) };
+static const struct builtin B23_vec_any_eq = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_eq:23", "*vcmpequb.", CODE_FOR_j_26_f_fxx_simple, B_UID(244) };
+static const struct builtin B1_vec_any_ge = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:1", "*vcmpgtsh.", CODE_FOR_j_24_f_frxx_simple, B_UID(245) };
+static const struct builtin B2_vec_any_ge = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:2", "*vcmpgtuh.", CODE_FOR_j_24_f_frxx_simple, B_UID(246) };
+static const struct builtin B3_vec_any_ge = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:3", "*vcmpgtsw.", CODE_FOR_j_24_f_frxx_simple, B_UID(247) };
+static const struct builtin B4_vec_any_ge = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:4", "*vcmpgtuw.", CODE_FOR_j_24_f_frxx_simple, B_UID(248) };
+static const struct builtin B5_vec_any_ge = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:5", "*vcmpgtsb.", CODE_FOR_j_24_f_frxx_simple, B_UID(249) };
+static const struct builtin B6_vec_any_ge = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:6", "*vcmpgtub.", CODE_FOR_j_24_f_frxx_simple, B_UID(250) };
+static const struct builtin B7_vec_any_ge = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_ge:7", "*vcmpgefp.", CODE_FOR_j_26_f_fxx_simple, B_UID(251) };
+static const struct builtin B8_vec_any_ge = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:8", "*vcmpgtsh.", CODE_FOR_j_24_f_frxx_simple, B_UID(252) };
+static const struct builtin B9_vec_any_ge = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:9", "*vcmpgtsh.", CODE_FOR_j_24_f_frxx_simple, B_UID(253) };
+static const struct builtin B10_vec_any_ge = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:10", "*vcmpgtsw.", CODE_FOR_j_24_f_frxx_simple, B_UID(254) };
+static const struct builtin B11_vec_any_ge = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:11", "*vcmpgtsw.", CODE_FOR_j_24_f_frxx_simple, B_UID(255) };
+static const struct builtin B12_vec_any_ge = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:12", "*vcmpgtsb.", CODE_FOR_j_24_f_frxx_simple, B_UID(256) };
+static const struct builtin B13_vec_any_ge = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:13", "*vcmpgtsb.", CODE_FOR_j_24_f_frxx_simple, B_UID(257) };
+static const struct builtin B14_vec_any_ge = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:14", "*vcmpgtuh.", CODE_FOR_j_24_f_frxx_simple, B_UID(258) };
+static const struct builtin B15_vec_any_ge = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:15", "*vcmpgtuh.", CODE_FOR_j_24_f_frxx_simple, B_UID(259) };
+static const struct builtin B16_vec_any_ge = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:16", "*vcmpgtuw.", CODE_FOR_j_24_f_frxx_simple, B_UID(260) };
+static const struct builtin B17_vec_any_ge = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:17", "*vcmpgtuw.", CODE_FOR_j_24_f_frxx_simple, B_UID(261) };
+static const struct builtin B18_vec_any_ge = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:18", "*vcmpgtub.", CODE_FOR_j_24_f_frxx_simple, B_UID(262) };
+static const struct builtin B19_vec_any_ge = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_ge:19", "*vcmpgtub.", CODE_FOR_j_24_f_frxx_simple, B_UID(263) };
+static const struct builtin B1_vec_any_gt = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:1", "*vcmpgtsh.", CODE_FOR_j_26_f_fxx_simple, B_UID(264) };
+static const struct builtin B2_vec_any_gt = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:2", "*vcmpgtuh.", CODE_FOR_j_26_f_fxx_simple, B_UID(265) };
+static const struct builtin B3_vec_any_gt = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:3", "*vcmpgtsw.", CODE_FOR_j_26_f_fxx_simple, B_UID(266) };
+static const struct builtin B4_vec_any_gt = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:4", "*vcmpgtuw.", CODE_FOR_j_26_f_fxx_simple, B_UID(267) };
+static const struct builtin B5_vec_any_gt = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:5", "*vcmpgtsb.", CODE_FOR_j_26_f_fxx_simple, B_UID(268) };
+static const struct builtin B6_vec_any_gt = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:6", "*vcmpgtub.", CODE_FOR_j_26_f_fxx_simple, B_UID(269) };
+static const struct builtin B7_vec_any_gt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:7", "*vcmpgtfp.", CODE_FOR_j_26_f_fxx_simple, B_UID(270) };
+static const struct builtin B8_vec_any_gt = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:8", "*vcmpgtsh.", CODE_FOR_j_26_f_fxx_simple, B_UID(271) };
+static const struct builtin B9_vec_any_gt = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:9", "*vcmpgtsh.", CODE_FOR_j_26_f_fxx_simple, B_UID(272) };
+static const struct builtin B10_vec_any_gt = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:10", "*vcmpgtsw.", CODE_FOR_j_26_f_fxx_simple, B_UID(273) };
+static const struct builtin B11_vec_any_gt = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:11", "*vcmpgtsw.", CODE_FOR_j_26_f_fxx_simple, B_UID(274) };
+static const struct builtin B12_vec_any_gt = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:12", "*vcmpgtsb.", CODE_FOR_j_26_f_fxx_simple, B_UID(275) };
+static const struct builtin B13_vec_any_gt = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:13", "*vcmpgtsb.", CODE_FOR_j_26_f_fxx_simple, B_UID(276) };
+static const struct builtin B14_vec_any_gt = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:14", "*vcmpgtuh.", CODE_FOR_j_26_f_fxx_simple, B_UID(277) };
+static const struct builtin B15_vec_any_gt = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:15", "*vcmpgtuh.", CODE_FOR_j_26_f_fxx_simple, B_UID(278) };
+static const struct builtin B16_vec_any_gt = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:16", "*vcmpgtuw.", CODE_FOR_j_26_f_fxx_simple, B_UID(279) };
+static const struct builtin B17_vec_any_gt = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:17", "*vcmpgtuw.", CODE_FOR_j_26_f_fxx_simple, B_UID(280) };
+static const struct builtin B18_vec_any_gt = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:18", "*vcmpgtub.", CODE_FOR_j_26_f_fxx_simple, B_UID(281) };
+static const struct builtin B19_vec_any_gt = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_gt:19", "*vcmpgtub.", CODE_FOR_j_26_f_fxx_simple, B_UID(282) };
+static const struct builtin B1_vec_any_le = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:1", "*vcmpgtsh.", CODE_FOR_j_24_f_fxx_simple, B_UID(283) };
+static const struct builtin B2_vec_any_le = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:2", "*vcmpgtuh.", CODE_FOR_j_24_f_fxx_simple, B_UID(284) };
+static const struct builtin B3_vec_any_le = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:3", "*vcmpgtsw.", CODE_FOR_j_24_f_fxx_simple, B_UID(285) };
+static const struct builtin B4_vec_any_le = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:4", "*vcmpgtuw.", CODE_FOR_j_24_f_fxx_simple, B_UID(286) };
+static const struct builtin B5_vec_any_le = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:5", "*vcmpgtsb.", CODE_FOR_j_24_f_fxx_simple, B_UID(287) };
+static const struct builtin B6_vec_any_le = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:6", "*vcmpgtub.", CODE_FOR_j_24_f_fxx_simple, B_UID(288) };
+static const struct builtin B7_vec_any_le = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_le:7", "*vcmpgefp.", CODE_FOR_j_26_f_frxx_simple, B_UID(289) };
+static const struct builtin B8_vec_any_le = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:8", "*vcmpgtsh.", CODE_FOR_j_24_f_fxx_simple, B_UID(290) };
+static const struct builtin B9_vec_any_le = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:9", "*vcmpgtsh.", CODE_FOR_j_24_f_fxx_simple, B_UID(291) };
+static const struct builtin B10_vec_any_le = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:10", "*vcmpgtsw.", CODE_FOR_j_24_f_fxx_simple, B_UID(292) };
+static const struct builtin B11_vec_any_le = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:11", "*vcmpgtsw.", CODE_FOR_j_24_f_fxx_simple, B_UID(293) };
+static const struct builtin B12_vec_any_le = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:12", "*vcmpgtsb.", CODE_FOR_j_24_f_fxx_simple, B_UID(294) };
+static const struct builtin B13_vec_any_le = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:13", "*vcmpgtsb.", CODE_FOR_j_24_f_fxx_simple, B_UID(295) };
+static const struct builtin B14_vec_any_le = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:14", "*vcmpgtuh.", CODE_FOR_j_24_f_fxx_simple, B_UID(296) };
+static const struct builtin B15_vec_any_le = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:15", "*vcmpgtuh.", CODE_FOR_j_24_f_fxx_simple, B_UID(297) };
+static const struct builtin B16_vec_any_le = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:16", "*vcmpgtuw.", CODE_FOR_j_24_f_fxx_simple, B_UID(298) };
+static const struct builtin B17_vec_any_le = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:17", "*vcmpgtuw.", CODE_FOR_j_24_f_fxx_simple, B_UID(299) };
+static const struct builtin B18_vec_any_le = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:18", "*vcmpgtub.", CODE_FOR_j_24_f_fxx_simple, B_UID(300) };
+static const struct builtin B19_vec_any_le = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_le:19", "*vcmpgtub.", CODE_FOR_j_24_f_fxx_simple, B_UID(301) };
+static const struct builtin B1_vec_any_lt = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:1", "*vcmpgtsh.", CODE_FOR_j_26_f_frxx_simple, B_UID(302) };
+static const struct builtin B2_vec_any_lt = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:2", "*vcmpgtuh.", CODE_FOR_j_26_f_frxx_simple, B_UID(303) };
+static const struct builtin B3_vec_any_lt = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:3", "*vcmpgtsw.", CODE_FOR_j_26_f_frxx_simple, B_UID(304) };
+static const struct builtin B4_vec_any_lt = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:4", "*vcmpgtuw.", CODE_FOR_j_26_f_frxx_simple, B_UID(305) };
+static const struct builtin B5_vec_any_lt = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:5", "*vcmpgtsb.", CODE_FOR_j_26_f_frxx_simple, B_UID(306) };
+static const struct builtin B6_vec_any_lt = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:6", "*vcmpgtub.", CODE_FOR_j_26_f_frxx_simple, B_UID(307) };
+static const struct builtin B7_vec_any_lt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:7", "*vcmpgtfp.", CODE_FOR_j_26_f_frxx_simple, B_UID(308) };
+static const struct builtin B8_vec_any_lt = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:8", "*vcmpgtsh.", CODE_FOR_j_26_f_frxx_simple, B_UID(309) };
+static const struct builtin B9_vec_any_lt = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:9", "*vcmpgtsh.", CODE_FOR_j_26_f_frxx_simple, B_UID(310) };
+static const struct builtin B10_vec_any_lt = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:10", "*vcmpgtsw.", CODE_FOR_j_26_f_frxx_simple, B_UID(311) };
+static const struct builtin B11_vec_any_lt = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:11", "*vcmpgtsw.", CODE_FOR_j_26_f_frxx_simple, B_UID(312) };
+static const struct builtin B12_vec_any_lt = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:12", "*vcmpgtsb.", CODE_FOR_j_26_f_frxx_simple, B_UID(313) };
+static const struct builtin B13_vec_any_lt = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:13", "*vcmpgtsb.", CODE_FOR_j_26_f_frxx_simple, B_UID(314) };
+static const struct builtin B14_vec_any_lt = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:14", "*vcmpgtuh.", CODE_FOR_j_26_f_frxx_simple, B_UID(315) };
+static const struct builtin B15_vec_any_lt = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:15", "*vcmpgtuh.", CODE_FOR_j_26_f_frxx_simple, B_UID(316) };
+static const struct builtin B16_vec_any_lt = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:16", "*vcmpgtuw.", CODE_FOR_j_26_f_frxx_simple, B_UID(317) };
+static const struct builtin B17_vec_any_lt = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:17", "*vcmpgtuw.", CODE_FOR_j_26_f_frxx_simple, B_UID(318) };
+static const struct builtin B18_vec_any_lt = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:18", "*vcmpgtub.", CODE_FOR_j_26_f_frxx_simple, B_UID(319) };
+static const struct builtin B19_vec_any_lt = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc26fr, 2, FALSE, FALSE, 0, "vec_any_lt:19", "*vcmpgtub.", CODE_FOR_j_26_f_frxx_simple, B_UID(320) };
+static const struct builtin B_vec_any_nan = { { &T_vec_f32, NULL, NULL, }, "x", &T_cc24fd, 1, FALSE, FALSE, 0, "vec_any_nan", "*vcmpeqfp.", CODE_FOR_j_24_f_fx_simple, B_UID(321) };
+static const struct builtin B1_vec_any_ne = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:1", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(322) };
+static const struct builtin B2_vec_any_ne = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:2", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(323) };
+static const struct builtin B3_vec_any_ne = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:3", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(324) };
+static const struct builtin B4_vec_any_ne = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:4", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(325) };
+static const struct builtin B5_vec_any_ne = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:5", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(326) };
+static const struct builtin B6_vec_any_ne = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:6", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(327) };
+static const struct builtin B7_vec_any_ne = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:7", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(328) };
+static const struct builtin B8_vec_any_ne = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:8", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(329) };
+static const struct builtin B9_vec_any_ne = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:9", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(330) };
+static const struct builtin B10_vec_any_ne = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:10", "*vcmpeqfp.", CODE_FOR_j_24_f_fxx_simple, B_UID(331) };
+static const struct builtin B11_vec_any_ne = { { &T_vec_p16, &T_vec_p16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:11", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(332) };
+static const struct builtin B12_vec_any_ne = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:12", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(333) };
+static const struct builtin B13_vec_any_ne = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:13", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(334) };
+static const struct builtin B14_vec_any_ne = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:14", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(335) };
+static const struct builtin B15_vec_any_ne = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:15", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(336) };
+static const struct builtin B16_vec_any_ne = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:16", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(337) };
+static const struct builtin B17_vec_any_ne = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:17", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(338) };
+static const struct builtin B18_vec_any_ne = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:18", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(339) };
+static const struct builtin B19_vec_any_ne = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:19", "*vcmpequh.", CODE_FOR_j_24_f_fxx_simple, B_UID(340) };
+static const struct builtin B20_vec_any_ne = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:20", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(341) };
+static const struct builtin B21_vec_any_ne = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:21", "*vcmpequw.", CODE_FOR_j_24_f_fxx_simple, B_UID(342) };
+static const struct builtin B22_vec_any_ne = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:22", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(343) };
+static const struct builtin B23_vec_any_ne = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ne:23", "*vcmpequb.", CODE_FOR_j_24_f_fxx_simple, B_UID(344) };
+static const struct builtin B_vec_any_nge = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_nge", "*vcmpgefp.", CODE_FOR_j_24_f_fxx_simple, B_UID(345) };
+static const struct builtin B_vec_any_ngt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24f, 2, FALSE, FALSE, 0, "vec_any_ngt", "*vcmpgtfp.", CODE_FOR_j_24_f_fxx_simple, B_UID(346) };
+static const struct builtin B_vec_any_nle = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_nle", "*vcmpgefp.", CODE_FOR_j_24_f_frxx_simple, B_UID(347) };
+static const struct builtin B_vec_any_nlt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc24fr, 2, FALSE, FALSE, 0, "vec_any_nlt", "*vcmpgtfp.", CODE_FOR_j_24_f_frxx_simple, B_UID(348) };
+static const struct builtin B_vec_any_numeric = { { &T_vec_f32, NULL, NULL, }, "x", &T_cc26fd, 1, FALSE, FALSE, 0, "vec_any_numeric", "*vcmpeqfp.", CODE_FOR_j_26_f_fx_simple, B_UID(349) };
+static const struct builtin B_vec_any_out = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_cc26f, 2, FALSE, FALSE, 0, "vec_any_out", "*vcmpbfp.", CODE_FOR_j_26_f_fxx_simple, B_UID(350) };
+static const struct builtin B_vec_vavgsh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vavgsh", "*vavgsh", CODE_FOR_xfxx_simple, B_UID(351) };
+static const struct builtin B_vec_vavgsw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vavgsw", "*vavgsw", CODE_FOR_xfxx_simple, B_UID(352) };
+static const struct builtin B_vec_vavgsb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vavgsb", "*vavgsb", CODE_FOR_xfxx_simple, B_UID(353) };
+static const struct builtin B_vec_vavguh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vavguh", "*vavguh", CODE_FOR_xfxx_simple, B_UID(354) };
+static const struct builtin B_vec_vavguw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vavguw", "*vavguw", CODE_FOR_xfxx_simple, B_UID(355) };
+static const struct builtin B_vec_vavgub = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vavgub", "*vavgub", CODE_FOR_xfxx_simple, B_UID(356) };
+static const struct builtin B_vec_vrfip = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vrfip", "*vrfip", CODE_FOR_xfx_fp, B_UID(357) };
+static const struct builtin B_vec_vcmpbfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vcmpbfp", "*vcmpbfp", CODE_FOR_xfxx_simple, B_UID(358) };
+static const struct builtin B_vec_vcmpeqfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 7, "vec_vcmpeqfp", "*vcmpeqfp", CODE_FOR_xfxx_simple, B_UID(359) };
+static const struct builtin B1_vec_vcmpequh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 7, "vec_vcmpequh:1", "*vcmpequh", CODE_FOR_xfxx_simple, B_UID(360) };
+static const struct builtin B1_vec_vcmpequw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 7, "vec_vcmpequw:1", "*vcmpequw", CODE_FOR_xfxx_simple, B_UID(361) };
+static const struct builtin B1_vec_vcmpequb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 7, "vec_vcmpequb:1", "*vcmpequb", CODE_FOR_xfxx_simple, B_UID(362) };
+static const struct builtin B2_vec_vcmpequh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 7, "vec_vcmpequh:2", "*vcmpequh", CODE_FOR_xfxx_simple, B_UID(363) };
+static const struct builtin B2_vec_vcmpequw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 7, "vec_vcmpequw:2", "*vcmpequw", CODE_FOR_xfxx_simple, B_UID(364) };
+static const struct builtin B2_vec_vcmpequb = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 7, "vec_vcmpequb:2", "*vcmpequb", CODE_FOR_xfxx_simple, B_UID(365) };
+static const struct builtin B_vec_vcmpgefp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vcmpgefp", "*vcmpgefp", CODE_FOR_xfxx_simple, B_UID(366) };
+static const struct builtin B_vec_vcmpgtfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vcmpgtfp", "*vcmpgtfp", CODE_FOR_xfxx_simple, B_UID(367) };
+static const struct builtin B_vec_vcmpgtsh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vcmpgtsh", "*vcmpgtsh", CODE_FOR_xfxx_simple, B_UID(368) };
+static const struct builtin B_vec_vcmpgtsw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vcmpgtsw", "*vcmpgtsw", CODE_FOR_xfxx_simple, B_UID(369) };
+static const struct builtin B_vec_vcmpgtsb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vcmpgtsb", "*vcmpgtsb", CODE_FOR_xfxx_simple, B_UID(370) };
+static const struct builtin B_vec_vcmpgtuh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vcmpgtuh", "*vcmpgtuh", CODE_FOR_xfxx_simple, B_UID(371) };
+static const struct builtin B_vec_vcmpgtuw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vcmpgtuw", "*vcmpgtuw", CODE_FOR_xfxx_simple, B_UID(372) };
+static const struct builtin B_vec_vcmpgtub = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vcmpgtub", "*vcmpgtub", CODE_FOR_xfxx_simple, B_UID(373) };
+static const struct builtin B_vec_cmple = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 10, "vec_cmple", "*vcmpgefp", CODE_FOR_xfxx_simple, B_UID(374) };
+static const struct builtin B1_vec_cmplt = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 10, "vec_cmplt:1", "*vcmpgtfp", CODE_FOR_xfxx_simple, B_UID(375) };
+static const struct builtin B2_vec_cmplt = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 10, "vec_cmplt:2", "*vcmpgtsh", CODE_FOR_xfxx_simple, B_UID(376) };
+static const struct builtin B3_vec_cmplt = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 10, "vec_cmplt:3", "*vcmpgtsw", CODE_FOR_xfxx_simple, B_UID(377) };
+static const struct builtin B4_vec_cmplt = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 10, "vec_cmplt:4", "*vcmpgtsb", CODE_FOR_xfxx_simple, B_UID(378) };
+static const struct builtin B5_vec_cmplt = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 10, "vec_cmplt:5", "*vcmpgtuh", CODE_FOR_xfxx_simple, B_UID(379) };
+static const struct builtin B6_vec_cmplt = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 10, "vec_cmplt:6", "*vcmpgtuw", CODE_FOR_xfxx_simple, B_UID(380) };
+static const struct builtin B7_vec_cmplt = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 10, "vec_cmplt:7", "*vcmpgtub", CODE_FOR_xfxx_simple, B_UID(381) };
+static const struct builtin B_vec_vcfsx = { { &T_vec_s32, &T_immed_u5, NULL, }, "xB", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vcfsx", "*vcfsx", CODE_FOR_xfxB_fp, B_UID(382) };
+static const struct builtin B_vec_vcfux = { { &T_vec_u32, &T_immed_u5, NULL, }, "xB", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vcfux", "*vcfux", CODE_FOR_xfxB_fp, B_UID(383) };
+static const struct builtin B_vec_vctsxs = { { &T_vec_f32, &T_immed_u5, NULL, }, "xB", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vctsxs", "*vctsxs", CODE_FOR_xfxB_fp, B_UID(384) };
+static const struct builtin B_vec_vctuxs = { { &T_vec_f32, &T_immed_u5, NULL, }, "xB", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vctuxs", "*vctuxs", CODE_FOR_xfxB_fp, B_UID(385) };
+static const struct builtin B_vec_dss = { { &T_immed_u2, NULL, NULL, }, "D", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_dss", "*dss", CODE_FOR_vlfD_load, B_UID(386) };
+static const struct builtin B_vec_dssall = { { NULL, NULL, NULL, }, "", &T_volatile_void, 0, FALSE, FALSE, 0, "vec_dssall", "*dssall", CODE_FOR_vlf_load, B_UID(387) };
+static const struct builtin B1_vec_dst = { { &T_const_float_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:1", "*dst", CODE_FOR_vlfiiD_load, B_UID(388) };
+static const struct builtin B2_vec_dst = { { &T_const_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:2", "*dst", CODE_FOR_vlfiiD_load, B_UID(389) };
+static const struct builtin B3_vec_dst = { { &T_const_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:3", "*dst", CODE_FOR_vlfiiD_load, B_UID(390) };
+static const struct builtin B4_vec_dst = { { &T_const_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:4", "*dst", CODE_FOR_vlfiiD_load, B_UID(391) };
+static const struct builtin B5_vec_dst = { { &T_const_signed_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:5", "*dst", CODE_FOR_vlfiiD_load, B_UID(392) };
+static const struct builtin B6_vec_dst = { { &T_const_unsigned_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:6", "*dst", CODE_FOR_vlfiiD_load, B_UID(393) };
+static const struct builtin B7_vec_dst = { { &T_const_unsigned_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:7", "*dst", CODE_FOR_vlfiiD_load, B_UID(394) };
+static const struct builtin B8_vec_dst = { { &T_const_unsigned_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:8", "*dst", CODE_FOR_vlfiiD_load, B_UID(395) };
+static const struct builtin B9_vec_dst = { { &T_const_unsigned_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:9", "*dst", CODE_FOR_vlfiiD_load, B_UID(396) };
+static const struct builtin B10_vec_dst = { { &T_const_vec_b16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:10", "*dst", CODE_FOR_vlfiiD_load, B_UID(397) };
+static const struct builtin B11_vec_dst = { { &T_const_vec_b32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:11", "*dst", CODE_FOR_vlfiiD_load, B_UID(398) };
+static const struct builtin B12_vec_dst = { { &T_const_vec_b8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:12", "*dst", CODE_FOR_vlfiiD_load, B_UID(399) };
+static const struct builtin B13_vec_dst = { { &T_const_vec_f32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:13", "*dst", CODE_FOR_vlfiiD_load, B_UID(400) };
+static const struct builtin B14_vec_dst = { { &T_const_vec_p16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:14", "*dst", CODE_FOR_vlfiiD_load, B_UID(401) };
+static const struct builtin B15_vec_dst = { { &T_const_vec_s16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:15", "*dst", CODE_FOR_vlfiiD_load, B_UID(402) };
+static const struct builtin B16_vec_dst = { { &T_const_vec_s32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:16", "*dst", CODE_FOR_vlfiiD_load, B_UID(403) };
+static const struct builtin B17_vec_dst = { { &T_const_vec_s8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:17", "*dst", CODE_FOR_vlfiiD_load, B_UID(404) };
+static const struct builtin B18_vec_dst = { { &T_const_vec_u16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:18", "*dst", CODE_FOR_vlfiiD_load, B_UID(405) };
+static const struct builtin B19_vec_dst = { { &T_const_vec_u32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:19", "*dst", CODE_FOR_vlfiiD_load, B_UID(406) };
+static const struct builtin B20_vec_dst = { { &T_const_vec_u8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dst:20", "*dst", CODE_FOR_vlfiiD_load, B_UID(407) };
+static const struct builtin B1_vec_dstst = { { &T_const_float_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:1", "*dstst", CODE_FOR_vlfiiD_load, B_UID(408) };
+static const struct builtin B2_vec_dstst = { { &T_const_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:2", "*dstst", CODE_FOR_vlfiiD_load, B_UID(409) };
+static const struct builtin B3_vec_dstst = { { &T_const_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:3", "*dstst", CODE_FOR_vlfiiD_load, B_UID(410) };
+static const struct builtin B4_vec_dstst = { { &T_const_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:4", "*dstst", CODE_FOR_vlfiiD_load, B_UID(411) };
+static const struct builtin B5_vec_dstst = { { &T_const_signed_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:5", "*dstst", CODE_FOR_vlfiiD_load, B_UID(412) };
+static const struct builtin B6_vec_dstst = { { &T_const_unsigned_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:6", "*dstst", CODE_FOR_vlfiiD_load, B_UID(413) };
+static const struct builtin B7_vec_dstst = { { &T_const_unsigned_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:7", "*dstst", CODE_FOR_vlfiiD_load, B_UID(414) };
+static const struct builtin B8_vec_dstst = { { &T_const_unsigned_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:8", "*dstst", CODE_FOR_vlfiiD_load, B_UID(415) };
+static const struct builtin B9_vec_dstst = { { &T_const_unsigned_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:9", "*dstst", CODE_FOR_vlfiiD_load, B_UID(416) };
+static const struct builtin B10_vec_dstst = { { &T_const_vec_b16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:10", "*dstst", CODE_FOR_vlfiiD_load, B_UID(417) };
+static const struct builtin B11_vec_dstst = { { &T_const_vec_b32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:11", "*dstst", CODE_FOR_vlfiiD_load, B_UID(418) };
+static const struct builtin B12_vec_dstst = { { &T_const_vec_b8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:12", "*dstst", CODE_FOR_vlfiiD_load, B_UID(419) };
+static const struct builtin B13_vec_dstst = { { &T_const_vec_f32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:13", "*dstst", CODE_FOR_vlfiiD_load, B_UID(420) };
+static const struct builtin B14_vec_dstst = { { &T_const_vec_p16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:14", "*dstst", CODE_FOR_vlfiiD_load, B_UID(421) };
+static const struct builtin B15_vec_dstst = { { &T_const_vec_s16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:15", "*dstst", CODE_FOR_vlfiiD_load, B_UID(422) };
+static const struct builtin B16_vec_dstst = { { &T_const_vec_s32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:16", "*dstst", CODE_FOR_vlfiiD_load, B_UID(423) };
+static const struct builtin B17_vec_dstst = { { &T_const_vec_s8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:17", "*dstst", CODE_FOR_vlfiiD_load, B_UID(424) };
+static const struct builtin B18_vec_dstst = { { &T_const_vec_u16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:18", "*dstst", CODE_FOR_vlfiiD_load, B_UID(425) };
+static const struct builtin B19_vec_dstst = { { &T_const_vec_u32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:19", "*dstst", CODE_FOR_vlfiiD_load, B_UID(426) };
+static const struct builtin B20_vec_dstst = { { &T_const_vec_u8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstst:20", "*dstst", CODE_FOR_vlfiiD_load, B_UID(427) };
+static const struct builtin B1_vec_dststt = { { &T_const_float_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:1", "*dststt", CODE_FOR_vlfiiD_load, B_UID(428) };
+static const struct builtin B2_vec_dststt = { { &T_const_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:2", "*dststt", CODE_FOR_vlfiiD_load, B_UID(429) };
+static const struct builtin B3_vec_dststt = { { &T_const_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:3", "*dststt", CODE_FOR_vlfiiD_load, B_UID(430) };
+static const struct builtin B4_vec_dststt = { { &T_const_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:4", "*dststt", CODE_FOR_vlfiiD_load, B_UID(431) };
+static const struct builtin B5_vec_dststt = { { &T_const_signed_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:5", "*dststt", CODE_FOR_vlfiiD_load, B_UID(432) };
+static const struct builtin B6_vec_dststt = { { &T_const_unsigned_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:6", "*dststt", CODE_FOR_vlfiiD_load, B_UID(433) };
+static const struct builtin B7_vec_dststt = { { &T_const_unsigned_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:7", "*dststt", CODE_FOR_vlfiiD_load, B_UID(434) };
+static const struct builtin B8_vec_dststt = { { &T_const_unsigned_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:8", "*dststt", CODE_FOR_vlfiiD_load, B_UID(435) };
+static const struct builtin B9_vec_dststt = { { &T_const_unsigned_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:9", "*dststt", CODE_FOR_vlfiiD_load, B_UID(436) };
+static const struct builtin B10_vec_dststt = { { &T_const_vec_b16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:10", "*dststt", CODE_FOR_vlfiiD_load, B_UID(437) };
+static const struct builtin B11_vec_dststt = { { &T_const_vec_b32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:11", "*dststt", CODE_FOR_vlfiiD_load, B_UID(438) };
+static const struct builtin B12_vec_dststt = { { &T_const_vec_b8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:12", "*dststt", CODE_FOR_vlfiiD_load, B_UID(439) };
+static const struct builtin B13_vec_dststt = { { &T_const_vec_f32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:13", "*dststt", CODE_FOR_vlfiiD_load, B_UID(440) };
+static const struct builtin B14_vec_dststt = { { &T_const_vec_p16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:14", "*dststt", CODE_FOR_vlfiiD_load, B_UID(441) };
+static const struct builtin B15_vec_dststt = { { &T_const_vec_s16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:15", "*dststt", CODE_FOR_vlfiiD_load, B_UID(442) };
+static const struct builtin B16_vec_dststt = { { &T_const_vec_s32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:16", "*dststt", CODE_FOR_vlfiiD_load, B_UID(443) };
+static const struct builtin B17_vec_dststt = { { &T_const_vec_s8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:17", "*dststt", CODE_FOR_vlfiiD_load, B_UID(444) };
+static const struct builtin B18_vec_dststt = { { &T_const_vec_u16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:18", "*dststt", CODE_FOR_vlfiiD_load, B_UID(445) };
+static const struct builtin B19_vec_dststt = { { &T_const_vec_u32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:19", "*dststt", CODE_FOR_vlfiiD_load, B_UID(446) };
+static const struct builtin B20_vec_dststt = { { &T_const_vec_u8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dststt:20", "*dststt", CODE_FOR_vlfiiD_load, B_UID(447) };
+static const struct builtin B1_vec_dstt = { { &T_const_float_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:1", "*dstt", CODE_FOR_vlfiiD_load, B_UID(448) };
+static const struct builtin B2_vec_dstt = { { &T_const_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:2", "*dstt", CODE_FOR_vlfiiD_load, B_UID(449) };
+static const struct builtin B3_vec_dstt = { { &T_const_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:3", "*dstt", CODE_FOR_vlfiiD_load, B_UID(450) };
+static const struct builtin B4_vec_dstt = { { &T_const_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:4", "*dstt", CODE_FOR_vlfiiD_load, B_UID(451) };
+static const struct builtin B5_vec_dstt = { { &T_const_signed_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:5", "*dstt", CODE_FOR_vlfiiD_load, B_UID(452) };
+static const struct builtin B6_vec_dstt = { { &T_const_unsigned_char_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:6", "*dstt", CODE_FOR_vlfiiD_load, B_UID(453) };
+static const struct builtin B7_vec_dstt = { { &T_const_unsigned_int_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:7", "*dstt", CODE_FOR_vlfiiD_load, B_UID(454) };
+static const struct builtin B8_vec_dstt = { { &T_const_unsigned_long_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:8", "*dstt", CODE_FOR_vlfiiD_load, B_UID(455) };
+static const struct builtin B9_vec_dstt = { { &T_const_unsigned_short_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:9", "*dstt", CODE_FOR_vlfiiD_load, B_UID(456) };
+static const struct builtin B10_vec_dstt = { { &T_const_vec_b16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:10", "*dstt", CODE_FOR_vlfiiD_load, B_UID(457) };
+static const struct builtin B11_vec_dstt = { { &T_const_vec_b32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:11", "*dstt", CODE_FOR_vlfiiD_load, B_UID(458) };
+static const struct builtin B12_vec_dstt = { { &T_const_vec_b8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:12", "*dstt", CODE_FOR_vlfiiD_load, B_UID(459) };
+static const struct builtin B13_vec_dstt = { { &T_const_vec_f32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:13", "*dstt", CODE_FOR_vlfiiD_load, B_UID(460) };
+static const struct builtin B14_vec_dstt = { { &T_const_vec_p16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:14", "*dstt", CODE_FOR_vlfiiD_load, B_UID(461) };
+static const struct builtin B15_vec_dstt = { { &T_const_vec_s16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:15", "*dstt", CODE_FOR_vlfiiD_load, B_UID(462) };
+static const struct builtin B16_vec_dstt = { { &T_const_vec_s32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:16", "*dstt", CODE_FOR_vlfiiD_load, B_UID(463) };
+static const struct builtin B17_vec_dstt = { { &T_const_vec_s8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:17", "*dstt", CODE_FOR_vlfiiD_load, B_UID(464) };
+static const struct builtin B18_vec_dstt = { { &T_const_vec_u16_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:18", "*dstt", CODE_FOR_vlfiiD_load, B_UID(465) };
+static const struct builtin B19_vec_dstt = { { &T_const_vec_u32_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:19", "*dstt", CODE_FOR_vlfiiD_load, B_UID(466) };
+static const struct builtin B20_vec_dstt = { { &T_const_vec_u8_ptr, &T_int, &T_immed_u2, }, "iiD", &T_volatile_void, 3, TRUE, FALSE, 0, "vec_dstt:20", "*dstt", CODE_FOR_vlfiiD_load, B_UID(467) };
+static const struct builtin B_vec_vexptefp = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vexptefp", "*vexptefp", CODE_FOR_xfx_fp, B_UID(468) };
+static const struct builtin B_vec_vrfim = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vrfim", "*vrfim", CODE_FOR_xfx_fp, B_UID(469) };
+static const struct builtin B1_vec_lvx = { { &T_int, &T_const_float_ptr, NULL, }, "ii", &T_vec_f32, 2, TRUE, FALSE, 0, "vec_lvx:1", "*lvx", CODE_FOR_xlfii_load, B_UID(470) };
+static const struct builtin B2_vec_lvx = { { &T_int, &T_const_int_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvx:2", "*lvx", CODE_FOR_xlfii_load, B_UID(471) };
+static const struct builtin B3_vec_lvx = { { &T_int, &T_const_long_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvx:3", "*lvx", CODE_FOR_xlfii_load, B_UID(472) };
+static const struct builtin B4_vec_lvx = { { &T_int, &T_const_short_ptr, NULL, }, "ii", &T_vec_s16, 2, TRUE, FALSE, 0, "vec_lvx:4", "*lvx", CODE_FOR_xlfii_load, B_UID(473) };
+static const struct builtin B5_vec_lvx = { { &T_int, &T_const_signed_char_ptr, NULL, }, "ii", &T_vec_s8, 2, TRUE, FALSE, 0, "vec_lvx:5", "*lvx", CODE_FOR_xlfii_load, B_UID(474) };
+static const struct builtin B6_vec_lvx = { { &T_int, &T_const_unsigned_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, FALSE, 0, "vec_lvx:6", "*lvx", CODE_FOR_xlfii_load, B_UID(475) };
+static const struct builtin B7_vec_lvx = { { &T_int, &T_const_unsigned_int_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvx:7", "*lvx", CODE_FOR_xlfii_load, B_UID(476) };
+static const struct builtin B8_vec_lvx = { { &T_int, &T_const_unsigned_long_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvx:8", "*lvx", CODE_FOR_xlfii_load, B_UID(477) };
+static const struct builtin B9_vec_lvx = { { &T_int, &T_const_unsigned_short_ptr, NULL, }, "ii", &T_vec_u16, 2, TRUE, FALSE, 0, "vec_lvx:9", "*lvx", CODE_FOR_xlfii_load, B_UID(478) };
+static const struct builtin B10_vec_lvx = { { &T_int, &T_const_vec_b16_ptr, NULL, }, "ii", &T_vec_b16, 2, TRUE, FALSE, 0, "vec_lvx:10", "*lvx", CODE_FOR_xlfii_load, B_UID(479) };
+static const struct builtin B11_vec_lvx = { { &T_int, &T_const_vec_b32_ptr, NULL, }, "ii", &T_vec_b32, 2, TRUE, FALSE, 0, "vec_lvx:11", "*lvx", CODE_FOR_xlfii_load, B_UID(480) };
+static const struct builtin B12_vec_lvx = { { &T_int, &T_const_vec_b8_ptr, NULL, }, "ii", &T_vec_b8, 2, TRUE, FALSE, 0, "vec_lvx:12", "*lvx", CODE_FOR_xlfii_load, B_UID(481) };
+static const struct builtin B13_vec_lvx = { { &T_int, &T_const_vec_f32_ptr, NULL, }, "ii", &T_vec_f32, 2, TRUE, FALSE, 0, "vec_lvx:13", "*lvx", CODE_FOR_xlfii_load, B_UID(482) };
+static const struct builtin B14_vec_lvx = { { &T_int, &T_const_vec_p16_ptr, NULL, }, "ii", &T_vec_p16, 2, TRUE, FALSE, 0, "vec_lvx:14", "*lvx", CODE_FOR_xlfii_load, B_UID(483) };
+static const struct builtin B15_vec_lvx = { { &T_int, &T_const_vec_s16_ptr, NULL, }, "ii", &T_vec_s16, 2, TRUE, FALSE, 0, "vec_lvx:15", "*lvx", CODE_FOR_xlfii_load, B_UID(484) };
+static const struct builtin B16_vec_lvx = { { &T_int, &T_const_vec_s32_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvx:16", "*lvx", CODE_FOR_xlfii_load, B_UID(485) };
+static const struct builtin B17_vec_lvx = { { &T_int, &T_const_vec_s8_ptr, NULL, }, "ii", &T_vec_s8, 2, TRUE, FALSE, 0, "vec_lvx:17", "*lvx", CODE_FOR_xlfii_load, B_UID(486) };
+static const struct builtin B18_vec_lvx = { { &T_int, &T_const_vec_u16_ptr, NULL, }, "ii", &T_vec_u16, 2, TRUE, FALSE, 0, "vec_lvx:18", "*lvx", CODE_FOR_xlfii_load, B_UID(487) };
+static const struct builtin B19_vec_lvx = { { &T_int, &T_const_vec_u32_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvx:19", "*lvx", CODE_FOR_xlfii_load, B_UID(488) };
+static const struct builtin B20_vec_lvx = { { &T_int, &T_const_vec_u8_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, FALSE, 0, "vec_lvx:20", "*lvx", CODE_FOR_xlfii_load, B_UID(489) };
+static const struct builtin B1_vec_lvewx = { { &T_int, &T_const_float_ptr, NULL, }, "ii", &T_vec_f32, 2, TRUE, FALSE, 0, "vec_lvewx:1", "*lvewx", CODE_FOR_xlfii_load, B_UID(490) };
+static const struct builtin B2_vec_lvewx = { { &T_int, &T_const_int_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvewx:2", "*lvewx", CODE_FOR_xlfii_load, B_UID(491) };
+static const struct builtin B3_vec_lvewx = { { &T_int, &T_const_long_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvewx:3", "*lvewx", CODE_FOR_xlfii_load, B_UID(492) };
+static const struct builtin B1_vec_lvehx = { { &T_int, &T_const_short_ptr, NULL, }, "ii", &T_vec_s16, 2, TRUE, FALSE, 0, "vec_lvehx:1", "*lvehx", CODE_FOR_xlfii_load, B_UID(493) };
+static const struct builtin B1_vec_lvebx = { { &T_int, &T_const_signed_char_ptr, NULL, }, "ii", &T_vec_s8, 2, TRUE, FALSE, 0, "vec_lvebx:1", "*lvebx", CODE_FOR_xlfii_load, B_UID(494) };
+static const struct builtin B2_vec_lvebx = { { &T_int, &T_const_unsigned_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, FALSE, 0, "vec_lvebx:2", "*lvebx", CODE_FOR_xlfii_load, B_UID(495) };
+static const struct builtin B4_vec_lvewx = { { &T_int, &T_const_unsigned_int_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvewx:4", "*lvewx", CODE_FOR_xlfii_load, B_UID(496) };
+static const struct builtin B5_vec_lvewx = { { &T_int, &T_const_unsigned_long_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvewx:5", "*lvewx", CODE_FOR_xlfii_load, B_UID(497) };
+static const struct builtin B2_vec_lvehx = { { &T_int, &T_const_unsigned_short_ptr, NULL, }, "ii", &T_vec_u16, 2, TRUE, FALSE, 0, "vec_lvehx:2", "*lvehx", CODE_FOR_xlfii_load, B_UID(498) };
+static const struct builtin B1_vec_lvxl = { { &T_int, &T_const_float_ptr, NULL, }, "ii", &T_vec_f32, 2, TRUE, FALSE, 0, "vec_lvxl:1", "*lvxl", CODE_FOR_xlfii_load, B_UID(499) };
+static const struct builtin B2_vec_lvxl = { { &T_int, &T_const_int_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvxl:2", "*lvxl", CODE_FOR_xlfii_load, B_UID(500) };
+static const struct builtin B3_vec_lvxl = { { &T_int, &T_const_long_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvxl:3", "*lvxl", CODE_FOR_xlfii_load, B_UID(501) };
+static const struct builtin B4_vec_lvxl = { { &T_int, &T_const_short_ptr, NULL, }, "ii", &T_vec_s16, 2, TRUE, FALSE, 0, "vec_lvxl:4", "*lvxl", CODE_FOR_xlfii_load, B_UID(502) };
+static const struct builtin B5_vec_lvxl = { { &T_int, &T_const_signed_char_ptr, NULL, }, "ii", &T_vec_s8, 2, TRUE, FALSE, 0, "vec_lvxl:5", "*lvxl", CODE_FOR_xlfii_load, B_UID(503) };
+static const struct builtin B6_vec_lvxl = { { &T_int, &T_const_unsigned_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, FALSE, 0, "vec_lvxl:6", "*lvxl", CODE_FOR_xlfii_load, B_UID(504) };
+static const struct builtin B7_vec_lvxl = { { &T_int, &T_const_unsigned_int_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvxl:7", "*lvxl", CODE_FOR_xlfii_load, B_UID(505) };
+static const struct builtin B8_vec_lvxl = { { &T_int, &T_const_unsigned_long_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvxl:8", "*lvxl", CODE_FOR_xlfii_load, B_UID(506) };
+static const struct builtin B9_vec_lvxl = { { &T_int, &T_const_unsigned_short_ptr, NULL, }, "ii", &T_vec_u16, 2, TRUE, FALSE, 0, "vec_lvxl:9", "*lvxl", CODE_FOR_xlfii_load, B_UID(507) };
+static const struct builtin B10_vec_lvxl = { { &T_int, &T_const_vec_b16_ptr, NULL, }, "ii", &T_vec_b16, 2, TRUE, FALSE, 0, "vec_lvxl:10", "*lvxl", CODE_FOR_xlfii_load, B_UID(508) };
+static const struct builtin B11_vec_lvxl = { { &T_int, &T_const_vec_b32_ptr, NULL, }, "ii", &T_vec_b32, 2, TRUE, FALSE, 0, "vec_lvxl:11", "*lvxl", CODE_FOR_xlfii_load, B_UID(509) };
+static const struct builtin B12_vec_lvxl = { { &T_int, &T_const_vec_b8_ptr, NULL, }, "ii", &T_vec_b8, 2, TRUE, FALSE, 0, "vec_lvxl:12", "*lvxl", CODE_FOR_xlfii_load, B_UID(510) };
+static const struct builtin B13_vec_lvxl = { { &T_int, &T_const_vec_f32_ptr, NULL, }, "ii", &T_vec_f32, 2, TRUE, FALSE, 0, "vec_lvxl:13", "*lvxl", CODE_FOR_xlfii_load, B_UID(511) };
+static const struct builtin B14_vec_lvxl = { { &T_int, &T_const_vec_p16_ptr, NULL, }, "ii", &T_vec_p16, 2, TRUE, FALSE, 0, "vec_lvxl:14", "*lvxl", CODE_FOR_xlfii_load, B_UID(512) };
+static const struct builtin B15_vec_lvxl = { { &T_int, &T_const_vec_s16_ptr, NULL, }, "ii", &T_vec_s16, 2, TRUE, FALSE, 0, "vec_lvxl:15", "*lvxl", CODE_FOR_xlfii_load, B_UID(513) };
+static const struct builtin B16_vec_lvxl = { { &T_int, &T_const_vec_s32_ptr, NULL, }, "ii", &T_vec_s32, 2, TRUE, FALSE, 0, "vec_lvxl:16", "*lvxl", CODE_FOR_xlfii_load, B_UID(514) };
+static const struct builtin B17_vec_lvxl = { { &T_int, &T_const_vec_s8_ptr, NULL, }, "ii", &T_vec_s8, 2, TRUE, FALSE, 0, "vec_lvxl:17", "*lvxl", CODE_FOR_xlfii_load, B_UID(515) };
+static const struct builtin B18_vec_lvxl = { { &T_int, &T_const_vec_u16_ptr, NULL, }, "ii", &T_vec_u16, 2, TRUE, FALSE, 0, "vec_lvxl:18", "*lvxl", CODE_FOR_xlfii_load, B_UID(516) };
+static const struct builtin B19_vec_lvxl = { { &T_int, &T_const_vec_u32_ptr, NULL, }, "ii", &T_vec_u32, 2, TRUE, FALSE, 0, "vec_lvxl:19", "*lvxl", CODE_FOR_xlfii_load, B_UID(517) };
+static const struct builtin B20_vec_lvxl = { { &T_int, &T_const_vec_u8_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, FALSE, 0, "vec_lvxl:20", "*lvxl", CODE_FOR_xlfii_load, B_UID(518) };
+static const struct builtin B_vec_vlogefp = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vlogefp", "*vlogefp", CODE_FOR_xfx_fp, B_UID(519) };
+static const struct builtin B1_vec_lvsl = { { &T_int, &T_const_volatile_float_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:1", "*lvsl", CODE_FOR_xfii_load, B_UID(520) };
+static const struct builtin B2_vec_lvsl = { { &T_int, &T_const_volatile_int_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:2", "*lvsl", CODE_FOR_xfii_load, B_UID(521) };
+static const struct builtin B3_vec_lvsl = { { &T_int, &T_const_volatile_long_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:3", "*lvsl", CODE_FOR_xfii_load, B_UID(522) };
+static const struct builtin B4_vec_lvsl = { { &T_int, &T_const_volatile_short_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:4", "*lvsl", CODE_FOR_xfii_load, B_UID(523) };
+static const struct builtin B5_vec_lvsl = { { &T_int, &T_const_volatile_signed_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:5", "*lvsl", CODE_FOR_xfii_load, B_UID(524) };
+static const struct builtin B6_vec_lvsl = { { &T_int, &T_const_volatile_unsigned_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:6", "*lvsl", CODE_FOR_xfii_load, B_UID(525) };
+static const struct builtin B7_vec_lvsl = { { &T_int, &T_const_volatile_unsigned_int_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:7", "*lvsl", CODE_FOR_xfii_load, B_UID(526) };
+static const struct builtin B8_vec_lvsl = { { &T_int, &T_const_volatile_unsigned_long_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:8", "*lvsl", CODE_FOR_xfii_load, B_UID(527) };
+static const struct builtin B9_vec_lvsl = { { &T_int, &T_const_volatile_unsigned_short_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 8, "vec_lvsl:9", "*lvsl", CODE_FOR_xfii_load, B_UID(528) };
+static const struct builtin B1_vec_lvsr = { { &T_int, &T_const_volatile_float_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:1", "*lvsr", CODE_FOR_xfii_load, B_UID(529) };
+static const struct builtin B2_vec_lvsr = { { &T_int, &T_const_volatile_int_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:2", "*lvsr", CODE_FOR_xfii_load, B_UID(530) };
+static const struct builtin B3_vec_lvsr = { { &T_int, &T_const_volatile_long_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:3", "*lvsr", CODE_FOR_xfii_load, B_UID(531) };
+static const struct builtin B4_vec_lvsr = { { &T_int, &T_const_volatile_short_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:4", "*lvsr", CODE_FOR_xfii_load, B_UID(532) };
+static const struct builtin B5_vec_lvsr = { { &T_int, &T_const_volatile_signed_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:5", "*lvsr", CODE_FOR_xfii_load, B_UID(533) };
+static const struct builtin B6_vec_lvsr = { { &T_int, &T_const_volatile_unsigned_char_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:6", "*lvsr", CODE_FOR_xfii_load, B_UID(534) };
+static const struct builtin B7_vec_lvsr = { { &T_int, &T_const_volatile_unsigned_int_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:7", "*lvsr", CODE_FOR_xfii_load, B_UID(535) };
+static const struct builtin B8_vec_lvsr = { { &T_int, &T_const_volatile_unsigned_long_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:8", "*lvsr", CODE_FOR_xfii_load, B_UID(536) };
+static const struct builtin B9_vec_lvsr = { { &T_int, &T_const_volatile_unsigned_short_ptr, NULL, }, "ii", &T_vec_u8, 2, TRUE, TRUE, 9, "vec_lvsr:9", "*lvsr", CODE_FOR_xfii_load, B_UID(537) };
+static const struct builtin B_vec_vmaddfp = { { &T_vec_f32, &T_vec_f32, &T_vec_f32, }, "xxx", &T_vec_f32, 3, FALSE, FALSE, 0, "vec_vmaddfp", "*vmaddfp", CODE_FOR_xfxxx_fp, B_UID(538) };
+static const struct builtin B_vec_vmhaddshs = { { &T_vec_s16, &T_vec_s16, &T_vec_s16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vmhaddshs", "*vmhaddshs", CODE_FOR_xfxxx_complex, B_UID(539) };
+static const struct builtin B1_vec_vmaxsh = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vmaxsh:1", "*vmaxsh", CODE_FOR_xfxx_simple, B_UID(540) };
+static const struct builtin B1_vec_vmaxuh = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vmaxuh:1", "*vmaxuh", CODE_FOR_xfxx_simple, B_UID(541) };
+static const struct builtin B1_vec_vmaxsw = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vmaxsw:1", "*vmaxsw", CODE_FOR_xfxx_simple, B_UID(542) };
+static const struct builtin B1_vec_vmaxuw = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vmaxuw:1", "*vmaxuw", CODE_FOR_xfxx_simple, B_UID(543) };
+static const struct builtin B1_vec_vmaxsb = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vmaxsb:1", "*vmaxsb", CODE_FOR_xfxx_simple, B_UID(544) };
+static const struct builtin B1_vec_vmaxub = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vmaxub:1", "*vmaxub", CODE_FOR_xfxx_simple, B_UID(545) };
+static const struct builtin B_vec_vmaxfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vmaxfp", "*vmaxfp", CODE_FOR_xfxx_simple, B_UID(546) };
+static const struct builtin B2_vec_vmaxsh = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vmaxsh:2", "*vmaxsh", CODE_FOR_xfxx_simple, B_UID(547) };
+static const struct builtin B3_vec_vmaxsh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vmaxsh:3", "*vmaxsh", CODE_FOR_xfxx_simple, B_UID(548) };
+static const struct builtin B2_vec_vmaxsw = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vmaxsw:2", "*vmaxsw", CODE_FOR_xfxx_simple, B_UID(549) };
+static const struct builtin B3_vec_vmaxsw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vmaxsw:3", "*vmaxsw", CODE_FOR_xfxx_simple, B_UID(550) };
+static const struct builtin B2_vec_vmaxsb = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vmaxsb:2", "*vmaxsb", CODE_FOR_xfxx_simple, B_UID(551) };
+static const struct builtin B3_vec_vmaxsb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vmaxsb:3", "*vmaxsb", CODE_FOR_xfxx_simple, B_UID(552) };
+static const struct builtin B2_vec_vmaxuh = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vmaxuh:2", "*vmaxuh", CODE_FOR_xfxx_simple, B_UID(553) };
+static const struct builtin B3_vec_vmaxuh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vmaxuh:3", "*vmaxuh", CODE_FOR_xfxx_simple, B_UID(554) };
+static const struct builtin B2_vec_vmaxuw = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vmaxuw:2", "*vmaxuw", CODE_FOR_xfxx_simple, B_UID(555) };
+static const struct builtin B3_vec_vmaxuw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vmaxuw:3", "*vmaxuw", CODE_FOR_xfxx_simple, B_UID(556) };
+static const struct builtin B2_vec_vmaxub = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vmaxub:2", "*vmaxub", CODE_FOR_xfxx_simple, B_UID(557) };
+static const struct builtin B3_vec_vmaxub = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vmaxub:3", "*vmaxub", CODE_FOR_xfxx_simple, B_UID(558) };
+static const struct builtin B1_vec_vmrghh = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vmrghh:1", "*vmrghh", CODE_FOR_xfxx_perm, B_UID(559) };
+static const struct builtin B1_vec_vmrghw = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vmrghw:1", "*vmrghw", CODE_FOR_xfxx_perm, B_UID(560) };
+static const struct builtin B1_vec_vmrghb = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vmrghb:1", "*vmrghb", CODE_FOR_xfxx_perm, B_UID(561) };
+static const struct builtin B2_vec_vmrghw = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vmrghw:2", "*vmrghw", CODE_FOR_xfxx_perm, B_UID(562) };
+static const struct builtin B2_vec_vmrghh = { { &T_vec_p16, &T_vec_p16, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vmrghh:2", "*vmrghh", CODE_FOR_xfxx_perm, B_UID(563) };
+static const struct builtin B3_vec_vmrghh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vmrghh:3", "*vmrghh", CODE_FOR_xfxx_perm, B_UID(564) };
+static const struct builtin B3_vec_vmrghw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vmrghw:3", "*vmrghw", CODE_FOR_xfxx_perm, B_UID(565) };
+static const struct builtin B2_vec_vmrghb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vmrghb:2", "*vmrghb", CODE_FOR_xfxx_perm, B_UID(566) };
+static const struct builtin B4_vec_vmrghh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vmrghh:4", "*vmrghh", CODE_FOR_xfxx_perm, B_UID(567) };
+static const struct builtin B4_vec_vmrghw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vmrghw:4", "*vmrghw", CODE_FOR_xfxx_perm, B_UID(568) };
+static const struct builtin B3_vec_vmrghb = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vmrghb:3", "*vmrghb", CODE_FOR_xfxx_perm, B_UID(569) };
+static const struct builtin B1_vec_vmrglh = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vmrglh:1", "*vmrglh", CODE_FOR_xfxx_perm, B_UID(570) };
+static const struct builtin B1_vec_vmrglw = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vmrglw:1", "*vmrglw", CODE_FOR_xfxx_perm, B_UID(571) };
+static const struct builtin B1_vec_vmrglb = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vmrglb:1", "*vmrglb", CODE_FOR_xfxx_perm, B_UID(572) };
+static const struct builtin B2_vec_vmrglw = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vmrglw:2", "*vmrglw", CODE_FOR_xfxx_perm, B_UID(573) };
+static const struct builtin B2_vec_vmrglh = { { &T_vec_p16, &T_vec_p16, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vmrglh:2", "*vmrglh", CODE_FOR_xfxx_perm, B_UID(574) };
+static const struct builtin B3_vec_vmrglh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vmrglh:3", "*vmrglh", CODE_FOR_xfxx_perm, B_UID(575) };
+static const struct builtin B3_vec_vmrglw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vmrglw:3", "*vmrglw", CODE_FOR_xfxx_perm, B_UID(576) };
+static const struct builtin B2_vec_vmrglb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vmrglb:2", "*vmrglb", CODE_FOR_xfxx_perm, B_UID(577) };
+static const struct builtin B4_vec_vmrglh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vmrglh:4", "*vmrglh", CODE_FOR_xfxx_perm, B_UID(578) };
+static const struct builtin B4_vec_vmrglw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vmrglw:4", "*vmrglw", CODE_FOR_xfxx_perm, B_UID(579) };
+static const struct builtin B3_vec_vmrglb = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vmrglb:3", "*vmrglb", CODE_FOR_xfxx_perm, B_UID(580) };
+static const struct builtin B_vec_mfvscr = { { NULL, NULL, NULL, }, "", &T_volatile_vec_u16, 0, FALSE, FALSE, 0, "vec_mfvscr", "*mfvscr", CODE_FOR_vxf_fxu, B_UID(581) };
+static const struct builtin B1_vec_vminsh = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vminsh:1", "*vminsh", CODE_FOR_xfxx_simple, B_UID(582) };
+static const struct builtin B1_vec_vminuh = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vminuh:1", "*vminuh", CODE_FOR_xfxx_simple, B_UID(583) };
+static const struct builtin B1_vec_vminsw = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vminsw:1", "*vminsw", CODE_FOR_xfxx_simple, B_UID(584) };
+static const struct builtin B1_vec_vminuw = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vminuw:1", "*vminuw", CODE_FOR_xfxx_simple, B_UID(585) };
+static const struct builtin B1_vec_vminsb = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vminsb:1", "*vminsb", CODE_FOR_xfxx_simple, B_UID(586) };
+static const struct builtin B1_vec_vminub = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vminub:1", "*vminub", CODE_FOR_xfxx_simple, B_UID(587) };
+static const struct builtin B_vec_vminfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vminfp", "*vminfp", CODE_FOR_xfxx_simple, B_UID(588) };
+static const struct builtin B2_vec_vminsh = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vminsh:2", "*vminsh", CODE_FOR_xfxx_simple, B_UID(589) };
+static const struct builtin B3_vec_vminsh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vminsh:3", "*vminsh", CODE_FOR_xfxx_simple, B_UID(590) };
+static const struct builtin B2_vec_vminsw = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vminsw:2", "*vminsw", CODE_FOR_xfxx_simple, B_UID(591) };
+static const struct builtin B3_vec_vminsw = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vminsw:3", "*vminsw", CODE_FOR_xfxx_simple, B_UID(592) };
+static const struct builtin B2_vec_vminsb = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vminsb:2", "*vminsb", CODE_FOR_xfxx_simple, B_UID(593) };
+static const struct builtin B3_vec_vminsb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vminsb:3", "*vminsb", CODE_FOR_xfxx_simple, B_UID(594) };
+static const struct builtin B2_vec_vminuh = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vminuh:2", "*vminuh", CODE_FOR_xfxx_simple, B_UID(595) };
+static const struct builtin B3_vec_vminuh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vminuh:3", "*vminuh", CODE_FOR_xfxx_simple, B_UID(596) };
+static const struct builtin B2_vec_vminuw = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vminuw:2", "*vminuw", CODE_FOR_xfxx_simple, B_UID(597) };
+static const struct builtin B3_vec_vminuw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vminuw:3", "*vminuw", CODE_FOR_xfxx_simple, B_UID(598) };
+static const struct builtin B2_vec_vminub = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vminub:2", "*vminub", CODE_FOR_xfxx_simple, B_UID(599) };
+static const struct builtin B3_vec_vminub = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vminub:3", "*vminub", CODE_FOR_xfxx_simple, B_UID(600) };
+static const struct builtin B1_vec_vmladduhm = { { &T_vec_s16, &T_vec_s16, &T_vec_s16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vmladduhm:1", "*vmladduhm", CODE_FOR_xfxxx_complex, B_UID(601) };
+static const struct builtin B2_vec_vmladduhm = { { &T_vec_s16, &T_vec_u16, &T_vec_u16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vmladduhm:2", "*vmladduhm", CODE_FOR_xfxxx_complex, B_UID(602) };
+static const struct builtin B3_vec_vmladduhm = { { &T_vec_u16, &T_vec_s16, &T_vec_s16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vmladduhm:3", "*vmladduhm", CODE_FOR_xfxxx_complex, B_UID(603) };
+static const struct builtin B4_vec_vmladduhm = { { &T_vec_u16, &T_vec_u16, &T_vec_u16, }, "xxx", &T_vec_u16, 3, FALSE, FALSE, 0, "vec_vmladduhm:4", "*vmladduhm", CODE_FOR_xfxxx_complex, B_UID(604) };
+static const struct builtin B_vec_vmhraddshs = { { &T_vec_s16, &T_vec_s16, &T_vec_s16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vmhraddshs", "*vmhraddshs", CODE_FOR_xfxxx_complex, B_UID(605) };
+static const struct builtin B_vec_vmsumshm = { { &T_vec_s16, &T_vec_s16, &T_vec_s32, }, "xxx", &T_vec_s32, 3, FALSE, FALSE, 0, "vec_vmsumshm", "*vmsumshm", CODE_FOR_xfxxx_complex, B_UID(606) };
+static const struct builtin B_vec_vmsummbm = { { &T_vec_s8, &T_vec_u8, &T_vec_s32, }, "xxx", &T_vec_s32, 3, FALSE, FALSE, 0, "vec_vmsummbm", "*vmsummbm", CODE_FOR_xfxxx_complex, B_UID(607) };
+static const struct builtin B_vec_vmsumuhm = { { &T_vec_u16, &T_vec_u16, &T_vec_u32, }, "xxx", &T_vec_u32, 3, FALSE, FALSE, 0, "vec_vmsumuhm", "*vmsumuhm", CODE_FOR_xfxxx_complex, B_UID(608) };
+static const struct builtin B_vec_vmsumubm = { { &T_vec_u8, &T_vec_u8, &T_vec_u32, }, "xxx", &T_vec_u32, 3, FALSE, FALSE, 0, "vec_vmsumubm", "*vmsumubm", CODE_FOR_xfxxx_complex, B_UID(609) };
+static const struct builtin B_vec_vmsumshs = { { &T_vec_s16, &T_vec_s16, &T_vec_s32, }, "xxx", &T_vec_s32, 3, FALSE, FALSE, 0, "vec_vmsumshs", "*vmsumshs", CODE_FOR_xfxxx_complex, B_UID(610) };
+static const struct builtin B_vec_vmsumuhs = { { &T_vec_u16, &T_vec_u16, &T_vec_u32, }, "xxx", &T_vec_u32, 3, FALSE, FALSE, 0, "vec_vmsumuhs", "*vmsumuhs", CODE_FOR_xfxxx_complex, B_UID(611) };
+static const struct builtin B1_vec_mtvscr = { { &T_vec_b16, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:1", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(612) };
+static const struct builtin B2_vec_mtvscr = { { &T_vec_b32, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:2", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(613) };
+static const struct builtin B3_vec_mtvscr = { { &T_vec_b8, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:3", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(614) };
+static const struct builtin B4_vec_mtvscr = { { &T_vec_p16, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:4", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(615) };
+static const struct builtin B5_vec_mtvscr = { { &T_vec_s16, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:5", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(616) };
+static const struct builtin B6_vec_mtvscr = { { &T_vec_s32, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:6", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(617) };
+static const struct builtin B7_vec_mtvscr = { { &T_vec_s8, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:7", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(618) };
+static const struct builtin B8_vec_mtvscr = { { &T_vec_u16, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:8", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(619) };
+static const struct builtin B9_vec_mtvscr = { { &T_vec_u32, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:9", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(620) };
+static const struct builtin B10_vec_mtvscr = { { &T_vec_u8, NULL, NULL, }, "x", &T_volatile_void, 1, FALSE, FALSE, 0, "vec_mtvscr:10", "*mtvscr", CODE_FOR_vfx_fxu, B_UID(621) };
+static const struct builtin B_vec_vmulesh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vmulesh", "*vmulesh", CODE_FOR_xfxx_complex, B_UID(622) };
+static const struct builtin B_vec_vmulesb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vmulesb", "*vmulesb", CODE_FOR_xfxx_complex, B_UID(623) };
+static const struct builtin B_vec_vmuleuh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vmuleuh", "*vmuleuh", CODE_FOR_xfxx_complex, B_UID(624) };
+static const struct builtin B_vec_vmuleub = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vmuleub", "*vmuleub", CODE_FOR_xfxx_complex, B_UID(625) };
+static const struct builtin B_vec_vmulosh = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vmulosh", "*vmulosh", CODE_FOR_xfxx_complex, B_UID(626) };
+static const struct builtin B_vec_vmulosb = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vmulosb", "*vmulosb", CODE_FOR_xfxx_complex, B_UID(627) };
+static const struct builtin B_vec_vmulouh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vmulouh", "*vmulouh", CODE_FOR_xfxx_complex, B_UID(628) };
+static const struct builtin B_vec_vmuloub = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vmuloub", "*vmuloub", CODE_FOR_xfxx_complex, B_UID(629) };
+static const struct builtin B_vec_vnmsubfp = { { &T_vec_f32, &T_vec_f32, &T_vec_f32, }, "xxx", &T_vec_f32, 3, FALSE, FALSE, 0, "vec_vnmsubfp", "*vnmsubfp", CODE_FOR_xfxxx_fp, B_UID(630) };
+static const struct builtin B1_vec_vnor = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vnor:1", "*vnor", CODE_FOR_xfxx_simple, B_UID(631) };
+static const struct builtin B2_vec_vnor = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vnor:2", "*vnor", CODE_FOR_xfxx_simple, B_UID(632) };
+static const struct builtin B3_vec_vnor = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vnor:3", "*vnor", CODE_FOR_xfxx_simple, B_UID(633) };
+static const struct builtin B4_vec_vnor = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vnor:4", "*vnor", CODE_FOR_xfxx_simple, B_UID(634) };
+static const struct builtin B5_vec_vnor = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vnor:5", "*vnor", CODE_FOR_xfxx_simple, B_UID(635) };
+static const struct builtin B6_vec_vnor = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vnor:6", "*vnor", CODE_FOR_xfxx_simple, B_UID(636) };
+static const struct builtin B7_vec_vnor = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vnor:7", "*vnor", CODE_FOR_xfxx_simple, B_UID(637) };
+static const struct builtin B8_vec_vnor = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vnor:8", "*vnor", CODE_FOR_xfxx_simple, B_UID(638) };
+static const struct builtin B9_vec_vnor = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vnor:9", "*vnor", CODE_FOR_xfxx_simple, B_UID(639) };
+static const struct builtin B10_vec_vnor = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vnor:10", "*vnor", CODE_FOR_xfxx_simple, B_UID(640) };
+static const struct builtin B1_vec_vor = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 2, "vec_vor:1", "*vor", CODE_FOR_xfxx_simple, B_UID(641) };
+static const struct builtin B2_vec_vor = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vor:2", "*vor", CODE_FOR_xfxx_simple, B_UID(642) };
+static const struct builtin B3_vec_vor = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vor:3", "*vor", CODE_FOR_xfxx_simple, B_UID(643) };
+static const struct builtin B4_vec_vor = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 2, "vec_vor:4", "*vor", CODE_FOR_xfxx_simple, B_UID(644) };
+static const struct builtin B5_vec_vor = { { &T_vec_b32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vor:5", "*vor", CODE_FOR_xfxx_simple, B_UID(645) };
+static const struct builtin B6_vec_vor = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vor:6", "*vor", CODE_FOR_xfxx_simple, B_UID(646) };
+static const struct builtin B7_vec_vor = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vor:7", "*vor", CODE_FOR_xfxx_simple, B_UID(647) };
+static const struct builtin B8_vec_vor = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 2, "vec_vor:8", "*vor", CODE_FOR_xfxx_simple, B_UID(648) };
+static const struct builtin B9_vec_vor = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vor:9", "*vor", CODE_FOR_xfxx_simple, B_UID(649) };
+static const struct builtin B10_vec_vor = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vor:10", "*vor", CODE_FOR_xfxx_simple, B_UID(650) };
+static const struct builtin B11_vec_vor = { { &T_vec_f32, &T_vec_b32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vor:11", "*vor", CODE_FOR_xfxx_simple, B_UID(651) };
+static const struct builtin B12_vec_vor = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 2, "vec_vor:12", "*vor", CODE_FOR_xfxx_simple, B_UID(652) };
+static const struct builtin B13_vec_vor = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vor:13", "*vor", CODE_FOR_xfxx_simple, B_UID(653) };
+static const struct builtin B14_vec_vor = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 2, "vec_vor:14", "*vor", CODE_FOR_xfxx_simple, B_UID(654) };
+static const struct builtin B15_vec_vor = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vor:15", "*vor", CODE_FOR_xfxx_simple, B_UID(655) };
+static const struct builtin B16_vec_vor = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 2, "vec_vor:16", "*vor", CODE_FOR_xfxx_simple, B_UID(656) };
+static const struct builtin B17_vec_vor = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vor:17", "*vor", CODE_FOR_xfxx_simple, B_UID(657) };
+static const struct builtin B18_vec_vor = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 2, "vec_vor:18", "*vor", CODE_FOR_xfxx_simple, B_UID(658) };
+static const struct builtin B19_vec_vor = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vor:19", "*vor", CODE_FOR_xfxx_simple, B_UID(659) };
+static const struct builtin B20_vec_vor = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 2, "vec_vor:20", "*vor", CODE_FOR_xfxx_simple, B_UID(660) };
+static const struct builtin B21_vec_vor = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vor:21", "*vor", CODE_FOR_xfxx_simple, B_UID(661) };
+static const struct builtin B22_vec_vor = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 2, "vec_vor:22", "*vor", CODE_FOR_xfxx_simple, B_UID(662) };
+static const struct builtin B23_vec_vor = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vor:23", "*vor", CODE_FOR_xfxx_simple, B_UID(663) };
+static const struct builtin B24_vec_vor = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 2, "vec_vor:24", "*vor", CODE_FOR_xfxx_simple, B_UID(664) };
+static const struct builtin B1_vec_vpkuhum = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vpkuhum:1", "*vpkuhum", CODE_FOR_xfxx_perm, B_UID(665) };
+static const struct builtin B1_vec_vpkuwum = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vpkuwum:1", "*vpkuwum", CODE_FOR_xfxx_perm, B_UID(666) };
+static const struct builtin B2_vec_vpkuhum = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vpkuhum:2", "*vpkuhum", CODE_FOR_xfxx_perm, B_UID(667) };
+static const struct builtin B2_vec_vpkuwum = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vpkuwum:2", "*vpkuwum", CODE_FOR_xfxx_perm, B_UID(668) };
+static const struct builtin B3_vec_vpkuhum = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vpkuhum:3", "*vpkuhum", CODE_FOR_xfxx_perm, B_UID(669) };
+static const struct builtin B3_vec_vpkuwum = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vpkuwum:3", "*vpkuwum", CODE_FOR_xfxx_perm, B_UID(670) };
+static const struct builtin B_vec_vpkpx = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vpkpx", "*vpkpx", CODE_FOR_xfxx_perm, B_UID(671) };
+static const struct builtin B_vec_vpkshss = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vpkshss", "*vpkshss", CODE_FOR_xfxx_perm, B_UID(672) };
+static const struct builtin B_vec_vpkswss = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vpkswss", "*vpkswss", CODE_FOR_xfxx_perm, B_UID(673) };
+static const struct builtin B_vec_vpkuhus = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vpkuhus", "*vpkuhus", CODE_FOR_xfxx_perm, B_UID(674) };
+static const struct builtin B_vec_vpkuwus = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vpkuwus", "*vpkuwus", CODE_FOR_xfxx_perm, B_UID(675) };
+static const struct builtin B_vec_vpkshus = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vpkshus", "*vpkshus", CODE_FOR_xfxx_perm, B_UID(676) };
+static const struct builtin B_vec_vpkswus = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vpkswus", "*vpkswus", CODE_FOR_xfxx_perm, B_UID(677) };
+static const struct builtin B1_vec_vperm = { { &T_vec_b16, &T_vec_b16, &T_vec_u8, }, "xxx", &T_vec_b16, 3, FALSE, FALSE, 0, "vec_vperm:1", "*vperm", CODE_FOR_xfxxx_perm, B_UID(678) };
+static const struct builtin B2_vec_vperm = { { &T_vec_b32, &T_vec_b32, &T_vec_u8, }, "xxx", &T_vec_b32, 3, FALSE, FALSE, 0, "vec_vperm:2", "*vperm", CODE_FOR_xfxxx_perm, B_UID(679) };
+static const struct builtin B3_vec_vperm = { { &T_vec_b8, &T_vec_b8, &T_vec_u8, }, "xxx", &T_vec_b8, 3, FALSE, FALSE, 0, "vec_vperm:3", "*vperm", CODE_FOR_xfxxx_perm, B_UID(680) };
+static const struct builtin B4_vec_vperm = { { &T_vec_f32, &T_vec_f32, &T_vec_u8, }, "xxx", &T_vec_f32, 3, FALSE, FALSE, 0, "vec_vperm:4", "*vperm", CODE_FOR_xfxxx_perm, B_UID(681) };
+static const struct builtin B5_vec_vperm = { { &T_vec_p16, &T_vec_p16, &T_vec_u8, }, "xxx", &T_vec_p16, 3, FALSE, FALSE, 0, "vec_vperm:5", "*vperm", CODE_FOR_xfxxx_perm, B_UID(682) };
+static const struct builtin B6_vec_vperm = { { &T_vec_s16, &T_vec_s16, &T_vec_u8, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vperm:6", "*vperm", CODE_FOR_xfxxx_perm, B_UID(683) };
+static const struct builtin B7_vec_vperm = { { &T_vec_s32, &T_vec_s32, &T_vec_u8, }, "xxx", &T_vec_s32, 3, FALSE, FALSE, 0, "vec_vperm:7", "*vperm", CODE_FOR_xfxxx_perm, B_UID(684) };
+static const struct builtin B8_vec_vperm = { { &T_vec_s8, &T_vec_s8, &T_vec_u8, }, "xxx", &T_vec_s8, 3, FALSE, FALSE, 0, "vec_vperm:8", "*vperm", CODE_FOR_xfxxx_perm, B_UID(685) };
+static const struct builtin B9_vec_vperm = { { &T_vec_u16, &T_vec_u16, &T_vec_u8, }, "xxx", &T_vec_u16, 3, FALSE, FALSE, 0, "vec_vperm:9", "*vperm", CODE_FOR_xfxxx_perm, B_UID(686) };
+static const struct builtin B10_vec_vperm = { { &T_vec_u32, &T_vec_u32, &T_vec_u8, }, "xxx", &T_vec_u32, 3, FALSE, FALSE, 0, "vec_vperm:10", "*vperm", CODE_FOR_xfxxx_perm, B_UID(687) };
+static const struct builtin B11_vec_vperm = { { &T_vec_u8, &T_vec_u8, &T_vec_u8, }, "xxx", &T_vec_u8, 3, FALSE, FALSE, 0, "vec_vperm:11", "*vperm", CODE_FOR_xfxxx_perm, B_UID(688) };
+static const struct builtin B_vec_vrefp = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vrefp", "*vrefp", CODE_FOR_xfx_fp, B_UID(689) };
+static const struct builtin B1_vec_vrlh = { { &T_vec_s16, &T_vec_u16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vrlh:1", "*vrlh", CODE_FOR_xfxx_simple, B_UID(690) };
+static const struct builtin B1_vec_vrlw = { { &T_vec_s32, &T_vec_u32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vrlw:1", "*vrlw", CODE_FOR_xfxx_simple, B_UID(691) };
+static const struct builtin B1_vec_vrlb = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vrlb:1", "*vrlb", CODE_FOR_xfxx_simple, B_UID(692) };
+static const struct builtin B2_vec_vrlh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vrlh:2", "*vrlh", CODE_FOR_xfxx_simple, B_UID(693) };
+static const struct builtin B2_vec_vrlw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vrlw:2", "*vrlw", CODE_FOR_xfxx_simple, B_UID(694) };
+static const struct builtin B2_vec_vrlb = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vrlb:2", "*vrlb", CODE_FOR_xfxx_simple, B_UID(695) };
+static const struct builtin B_vec_vrfin = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vrfin", "*vrfin", CODE_FOR_xfx_fp, B_UID(696) };
+static const struct builtin B_vec_vrsqrtefp = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vrsqrtefp", "*vrsqrtefp", CODE_FOR_xfx_fp, B_UID(697) };
+static const struct builtin B1_vec_vsel = { { &T_vec_b16, &T_vec_b16, &T_vec_b16, }, "xxx", &T_vec_b16, 3, FALSE, FALSE, 0, "vec_vsel:1", "*vsel", CODE_FOR_xfxxx_simple, B_UID(698) };
+static const struct builtin B2_vec_vsel = { { &T_vec_b16, &T_vec_b16, &T_vec_u16, }, "xxx", &T_vec_b16, 3, FALSE, FALSE, 0, "vec_vsel:2", "*vsel", CODE_FOR_xfxxx_simple, B_UID(699) };
+static const struct builtin B3_vec_vsel = { { &T_vec_b32, &T_vec_b32, &T_vec_b32, }, "xxx", &T_vec_b32, 3, FALSE, FALSE, 0, "vec_vsel:3", "*vsel", CODE_FOR_xfxxx_simple, B_UID(700) };
+static const struct builtin B4_vec_vsel = { { &T_vec_b32, &T_vec_b32, &T_vec_u32, }, "xxx", &T_vec_b32, 3, FALSE, FALSE, 0, "vec_vsel:4", "*vsel", CODE_FOR_xfxxx_simple, B_UID(701) };
+static const struct builtin B5_vec_vsel = { { &T_vec_b8, &T_vec_b8, &T_vec_b8, }, "xxx", &T_vec_b8, 3, FALSE, FALSE, 0, "vec_vsel:5", "*vsel", CODE_FOR_xfxxx_simple, B_UID(702) };
+static const struct builtin B6_vec_vsel = { { &T_vec_b8, &T_vec_b8, &T_vec_u8, }, "xxx", &T_vec_b8, 3, FALSE, FALSE, 0, "vec_vsel:6", "*vsel", CODE_FOR_xfxxx_simple, B_UID(703) };
+static const struct builtin B7_vec_vsel = { { &T_vec_f32, &T_vec_f32, &T_vec_b32, }, "xxx", &T_vec_f32, 3, FALSE, FALSE, 0, "vec_vsel:7", "*vsel", CODE_FOR_xfxxx_simple, B_UID(704) };
+static const struct builtin B8_vec_vsel = { { &T_vec_f32, &T_vec_f32, &T_vec_u32, }, "xxx", &T_vec_f32, 3, FALSE, FALSE, 0, "vec_vsel:8", "*vsel", CODE_FOR_xfxxx_simple, B_UID(705) };
+static const struct builtin B9_vec_vsel = { { &T_vec_s16, &T_vec_s16, &T_vec_b16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vsel:9", "*vsel", CODE_FOR_xfxxx_simple, B_UID(706) };
+static const struct builtin B10_vec_vsel = { { &T_vec_s16, &T_vec_s16, &T_vec_u16, }, "xxx", &T_vec_s16, 3, FALSE, FALSE, 0, "vec_vsel:10", "*vsel", CODE_FOR_xfxxx_simple, B_UID(707) };
+static const struct builtin B11_vec_vsel = { { &T_vec_s32, &T_vec_s32, &T_vec_b32, }, "xxx", &T_vec_s32, 3, FALSE, FALSE, 0, "vec_vsel:11", "*vsel", CODE_FOR_xfxxx_simple, B_UID(708) };
+static const struct builtin B12_vec_vsel = { { &T_vec_s32, &T_vec_s32, &T_vec_u32, }, "xxx", &T_vec_s32, 3, FALSE, FALSE, 0, "vec_vsel:12", "*vsel", CODE_FOR_xfxxx_simple, B_UID(709) };
+static const struct builtin B13_vec_vsel = { { &T_vec_s8, &T_vec_s8, &T_vec_b8, }, "xxx", &T_vec_s8, 3, FALSE, FALSE, 0, "vec_vsel:13", "*vsel", CODE_FOR_xfxxx_simple, B_UID(710) };
+static const struct builtin B14_vec_vsel = { { &T_vec_s8, &T_vec_s8, &T_vec_u8, }, "xxx", &T_vec_s8, 3, FALSE, FALSE, 0, "vec_vsel:14", "*vsel", CODE_FOR_xfxxx_simple, B_UID(711) };
+static const struct builtin B15_vec_vsel = { { &T_vec_u16, &T_vec_u16, &T_vec_b16, }, "xxx", &T_vec_u16, 3, FALSE, FALSE, 0, "vec_vsel:15", "*vsel", CODE_FOR_xfxxx_simple, B_UID(712) };
+static const struct builtin B16_vec_vsel = { { &T_vec_u16, &T_vec_u16, &T_vec_u16, }, "xxx", &T_vec_u16, 3, FALSE, FALSE, 0, "vec_vsel:16", "*vsel", CODE_FOR_xfxxx_simple, B_UID(713) };
+static const struct builtin B17_vec_vsel = { { &T_vec_u32, &T_vec_u32, &T_vec_b32, }, "xxx", &T_vec_u32, 3, FALSE, FALSE, 0, "vec_vsel:17", "*vsel", CODE_FOR_xfxxx_simple, B_UID(714) };
+static const struct builtin B18_vec_vsel = { { &T_vec_u32, &T_vec_u32, &T_vec_u32, }, "xxx", &T_vec_u32, 3, FALSE, FALSE, 0, "vec_vsel:18", "*vsel", CODE_FOR_xfxxx_simple, B_UID(715) };
+static const struct builtin B19_vec_vsel = { { &T_vec_u8, &T_vec_u8, &T_vec_b8, }, "xxx", &T_vec_u8, 3, FALSE, FALSE, 0, "vec_vsel:19", "*vsel", CODE_FOR_xfxxx_simple, B_UID(716) };
+static const struct builtin B20_vec_vsel = { { &T_vec_u8, &T_vec_u8, &T_vec_u8, }, "xxx", &T_vec_u8, 3, FALSE, FALSE, 0, "vec_vsel:20", "*vsel", CODE_FOR_xfxxx_simple, B_UID(717) };
+static const struct builtin B1_vec_vslh = { { &T_vec_s16, &T_vec_u16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vslh:1", "*vslh", CODE_FOR_xfxx_simple, B_UID(718) };
+static const struct builtin B1_vec_vslw = { { &T_vec_s32, &T_vec_u32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vslw:1", "*vslw", CODE_FOR_xfxx_simple, B_UID(719) };
+static const struct builtin B1_vec_vslb = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vslb:1", "*vslb", CODE_FOR_xfxx_simple, B_UID(720) };
+static const struct builtin B2_vec_vslh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vslh:2", "*vslh", CODE_FOR_xfxx_simple, B_UID(721) };
+static const struct builtin B2_vec_vslw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vslw:2", "*vslw", CODE_FOR_xfxx_simple, B_UID(722) };
+static const struct builtin B2_vec_vslb = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vslb:2", "*vslb", CODE_FOR_xfxx_simple, B_UID(723) };
+static const struct builtin B1_vec_vsldoi = { { &T_vec_b16, &T_vec_b16, &T_immed_u4, }, "xxC", &T_vec_b16, 3, FALSE, FALSE, 3, "vec_vsldoi:1", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(724) };
+static const struct builtin B2_vec_vsldoi = { { &T_vec_b32, &T_vec_b32, &T_immed_u4, }, "xxC", &T_vec_b32, 3, FALSE, FALSE, 3, "vec_vsldoi:2", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(725) };
+static const struct builtin B3_vec_vsldoi = { { &T_vec_b8, &T_vec_b8, &T_immed_u4, }, "xxC", &T_vec_b8, 3, FALSE, FALSE, 3, "vec_vsldoi:3", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(726) };
+static const struct builtin B4_vec_vsldoi = { { &T_vec_f32, &T_vec_f32, &T_immed_u4, }, "xxC", &T_vec_f32, 3, FALSE, FALSE, 3, "vec_vsldoi:4", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(727) };
+static const struct builtin B5_vec_vsldoi = { { &T_vec_p16, &T_vec_p16, &T_immed_u4, }, "xxC", &T_vec_p16, 3, FALSE, FALSE, 3, "vec_vsldoi:5", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(728) };
+static const struct builtin B6_vec_vsldoi = { { &T_vec_s16, &T_vec_s16, &T_immed_u4, }, "xxC", &T_vec_s16, 3, FALSE, FALSE, 3, "vec_vsldoi:6", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(729) };
+static const struct builtin B7_vec_vsldoi = { { &T_vec_s32, &T_vec_s32, &T_immed_u4, }, "xxC", &T_vec_s32, 3, FALSE, FALSE, 3, "vec_vsldoi:7", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(730) };
+static const struct builtin B8_vec_vsldoi = { { &T_vec_s8, &T_vec_s8, &T_immed_u4, }, "xxC", &T_vec_s8, 3, FALSE, FALSE, 3, "vec_vsldoi:8", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(731) };
+static const struct builtin B9_vec_vsldoi = { { &T_vec_u16, &T_vec_u16, &T_immed_u4, }, "xxC", &T_vec_u16, 3, FALSE, FALSE, 3, "vec_vsldoi:9", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(732) };
+static const struct builtin B10_vec_vsldoi = { { &T_vec_u32, &T_vec_u32, &T_immed_u4, }, "xxC", &T_vec_u32, 3, FALSE, FALSE, 3, "vec_vsldoi:10", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(733) };
+static const struct builtin B11_vec_vsldoi = { { &T_vec_u8, &T_vec_u8, &T_immed_u4, }, "xxC", &T_vec_u8, 3, FALSE, FALSE, 3, "vec_vsldoi:11", "*vsldoi", CODE_FOR_xfxxC_perm, B_UID(734) };
+static const struct builtin B1_vec_vsl = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsl:1", "*vsl", CODE_FOR_xfxx_simple, B_UID(735) };
+static const struct builtin B2_vec_vsl = { { &T_vec_b16, &T_vec_u32, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsl:2", "*vsl", CODE_FOR_xfxx_simple, B_UID(736) };
+static const struct builtin B3_vec_vsl = { { &T_vec_b16, &T_vec_u8, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsl:3", "*vsl", CODE_FOR_xfxx_simple, B_UID(737) };
+static const struct builtin B4_vec_vsl = { { &T_vec_b32, &T_vec_u16, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vsl:4", "*vsl", CODE_FOR_xfxx_simple, B_UID(738) };
+static const struct builtin B5_vec_vsl = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vsl:5", "*vsl", CODE_FOR_xfxx_simple, B_UID(739) };
+static const struct builtin B6_vec_vsl = { { &T_vec_b32, &T_vec_u8, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vsl:6", "*vsl", CODE_FOR_xfxx_simple, B_UID(740) };
+static const struct builtin B7_vec_vsl = { { &T_vec_b8, &T_vec_u16, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vsl:7", "*vsl", CODE_FOR_xfxx_simple, B_UID(741) };
+static const struct builtin B8_vec_vsl = { { &T_vec_b8, &T_vec_u32, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vsl:8", "*vsl", CODE_FOR_xfxx_simple, B_UID(742) };
+static const struct builtin B9_vec_vsl = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vsl:9", "*vsl", CODE_FOR_xfxx_simple, B_UID(743) };
+static const struct builtin B10_vec_vsl = { { &T_vec_p16, &T_vec_u16, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsl:10", "*vsl", CODE_FOR_xfxx_simple, B_UID(744) };
+static const struct builtin B11_vec_vsl = { { &T_vec_p16, &T_vec_u32, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsl:11", "*vsl", CODE_FOR_xfxx_simple, B_UID(745) };
+static const struct builtin B12_vec_vsl = { { &T_vec_p16, &T_vec_u8, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsl:12", "*vsl", CODE_FOR_xfxx_simple, B_UID(746) };
+static const struct builtin B13_vec_vsl = { { &T_vec_s16, &T_vec_u16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsl:13", "*vsl", CODE_FOR_xfxx_simple, B_UID(747) };
+static const struct builtin B14_vec_vsl = { { &T_vec_s16, &T_vec_u32, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsl:14", "*vsl", CODE_FOR_xfxx_simple, B_UID(748) };
+static const struct builtin B15_vec_vsl = { { &T_vec_s16, &T_vec_u8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsl:15", "*vsl", CODE_FOR_xfxx_simple, B_UID(749) };
+static const struct builtin B16_vec_vsl = { { &T_vec_s32, &T_vec_u16, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsl:16", "*vsl", CODE_FOR_xfxx_simple, B_UID(750) };
+static const struct builtin B17_vec_vsl = { { &T_vec_s32, &T_vec_u32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsl:17", "*vsl", CODE_FOR_xfxx_simple, B_UID(751) };
+static const struct builtin B18_vec_vsl = { { &T_vec_s32, &T_vec_u8, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsl:18", "*vsl", CODE_FOR_xfxx_simple, B_UID(752) };
+static const struct builtin B19_vec_vsl = { { &T_vec_s8, &T_vec_u16, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsl:19", "*vsl", CODE_FOR_xfxx_simple, B_UID(753) };
+static const struct builtin B20_vec_vsl = { { &T_vec_s8, &T_vec_u32, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsl:20", "*vsl", CODE_FOR_xfxx_simple, B_UID(754) };
+static const struct builtin B21_vec_vsl = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsl:21", "*vsl", CODE_FOR_xfxx_simple, B_UID(755) };
+static const struct builtin B22_vec_vsl = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsl:22", "*vsl", CODE_FOR_xfxx_simple, B_UID(756) };
+static const struct builtin B23_vec_vsl = { { &T_vec_u16, &T_vec_u32, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsl:23", "*vsl", CODE_FOR_xfxx_simple, B_UID(757) };
+static const struct builtin B24_vec_vsl = { { &T_vec_u16, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsl:24", "*vsl", CODE_FOR_xfxx_simple, B_UID(758) };
+static const struct builtin B25_vec_vsl = { { &T_vec_u32, &T_vec_u16, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsl:25", "*vsl", CODE_FOR_xfxx_simple, B_UID(759) };
+static const struct builtin B26_vec_vsl = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsl:26", "*vsl", CODE_FOR_xfxx_simple, B_UID(760) };
+static const struct builtin B27_vec_vsl = { { &T_vec_u32, &T_vec_u8, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsl:27", "*vsl", CODE_FOR_xfxx_simple, B_UID(761) };
+static const struct builtin B28_vec_vsl = { { &T_vec_u8, &T_vec_u16, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsl:28", "*vsl", CODE_FOR_xfxx_simple, B_UID(762) };
+static const struct builtin B29_vec_vsl = { { &T_vec_u8, &T_vec_u32, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsl:29", "*vsl", CODE_FOR_xfxx_simple, B_UID(763) };
+static const struct builtin B30_vec_vsl = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsl:30", "*vsl", CODE_FOR_xfxx_simple, B_UID(764) };
+static const struct builtin B1_vec_vslo = { { &T_vec_f32, &T_vec_s8, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vslo:1", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(765) };
+static const struct builtin B2_vec_vslo = { { &T_vec_f32, &T_vec_u8, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vslo:2", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(766) };
+static const struct builtin B3_vec_vslo = { { &T_vec_p16, &T_vec_s8, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vslo:3", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(767) };
+static const struct builtin B4_vec_vslo = { { &T_vec_p16, &T_vec_u8, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vslo:4", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(768) };
+static const struct builtin B5_vec_vslo = { { &T_vec_s16, &T_vec_s8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vslo:5", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(769) };
+static const struct builtin B6_vec_vslo = { { &T_vec_s16, &T_vec_u8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vslo:6", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(770) };
+static const struct builtin B7_vec_vslo = { { &T_vec_s32, &T_vec_s8, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vslo:7", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(771) };
+static const struct builtin B8_vec_vslo = { { &T_vec_s32, &T_vec_u8, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vslo:8", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(772) };
+static const struct builtin B9_vec_vslo = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vslo:9", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(773) };
+static const struct builtin B10_vec_vslo = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vslo:10", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(774) };
+static const struct builtin B11_vec_vslo = { { &T_vec_u16, &T_vec_s8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vslo:11", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(775) };
+static const struct builtin B12_vec_vslo = { { &T_vec_u16, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vslo:12", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(776) };
+static const struct builtin B13_vec_vslo = { { &T_vec_u32, &T_vec_s8, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vslo:13", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(777) };
+static const struct builtin B14_vec_vslo = { { &T_vec_u32, &T_vec_u8, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vslo:14", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(778) };
+static const struct builtin B15_vec_vslo = { { &T_vec_u8, &T_vec_s8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vslo:15", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(779) };
+static const struct builtin B16_vec_vslo = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vslo:16", "*vslo", CODE_FOR_xfxx_perm_bug, B_UID(780) };
+static const struct builtin B1_vec_vsplth = { { &T_vec_b16, &T_immed_u5, NULL, }, "xB", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsplth:1", "*vsplth", CODE_FOR_xfxB_perm, B_UID(781) };
+static const struct builtin B1_vec_vspltw = { { &T_vec_b32, &T_immed_u5, NULL, }, "xB", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vspltw:1", "*vspltw", CODE_FOR_xfxB_perm, B_UID(782) };
+static const struct builtin B1_vec_vspltb = { { &T_vec_b8, &T_immed_u5, NULL, }, "xB", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vspltb:1", "*vspltb", CODE_FOR_xfxB_perm, B_UID(783) };
+static const struct builtin B2_vec_vspltw = { { &T_vec_f32, &T_immed_u5, NULL, }, "xB", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vspltw:2", "*vspltw", CODE_FOR_xfxB_perm, B_UID(784) };
+static const struct builtin B2_vec_vsplth = { { &T_vec_p16, &T_immed_u5, NULL, }, "xB", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsplth:2", "*vsplth", CODE_FOR_xfxB_perm, B_UID(785) };
+static const struct builtin B3_vec_vsplth = { { &T_vec_s16, &T_immed_u5, NULL, }, "xB", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsplth:3", "*vsplth", CODE_FOR_xfxB_perm, B_UID(786) };
+static const struct builtin B3_vec_vspltw = { { &T_vec_s32, &T_immed_u5, NULL, }, "xB", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vspltw:3", "*vspltw", CODE_FOR_xfxB_perm, B_UID(787) };
+static const struct builtin B2_vec_vspltb = { { &T_vec_s8, &T_immed_u5, NULL, }, "xB", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vspltb:2", "*vspltb", CODE_FOR_xfxB_perm, B_UID(788) };
+static const struct builtin B4_vec_vsplth = { { &T_vec_u16, &T_immed_u5, NULL, }, "xB", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsplth:4", "*vsplth", CODE_FOR_xfxB_perm, B_UID(789) };
+static const struct builtin B4_vec_vspltw = { { &T_vec_u32, &T_immed_u5, NULL, }, "xB", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vspltw:4", "*vspltw", CODE_FOR_xfxB_perm, B_UID(790) };
+static const struct builtin B3_vec_vspltb = { { &T_vec_u8, &T_immed_u5, NULL, }, "xB", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vspltb:3", "*vspltb", CODE_FOR_xfxB_perm, B_UID(791) };
+static const struct builtin B_vec_vspltish = { { &T_immed_s5, NULL, NULL, }, "A", &T_vec_s16, 1, FALSE, FALSE, 5, "vec_vspltish", "*vspltish", CODE_FOR_xfA_perm, B_UID(792) };
+static const struct builtin B_vec_vspltisw = { { &T_immed_s5, NULL, NULL, }, "A", &T_vec_s32, 1, FALSE, FALSE, 6, "vec_vspltisw", "*vspltisw", CODE_FOR_xfA_perm, B_UID(793) };
+static const struct builtin B_vec_vspltisb = { { &T_immed_s5, NULL, NULL, }, "A", &T_vec_s8, 1, FALSE, FALSE, 4, "vec_vspltisb", "*vspltisb", CODE_FOR_xfA_perm, B_UID(794) };
+static const struct builtin B_vec_splat_u16 = { { &T_immed_s5, NULL, NULL, }, "A", &T_vec_u16, 1, FALSE, FALSE, 5, "vec_splat_u16", "*vspltish", CODE_FOR_xfA_perm, B_UID(795) };
+static const struct builtin B_vec_splat_u32 = { { &T_immed_s5, NULL, NULL, }, "A", &T_vec_u32, 1, FALSE, FALSE, 6, "vec_splat_u32", "*vspltisw", CODE_FOR_xfA_perm, B_UID(796) };
+static const struct builtin B_vec_splat_u8 = { { &T_immed_s5, NULL, NULL, }, "A", &T_vec_u8, 1, FALSE, FALSE, 4, "vec_splat_u8", "*vspltisb", CODE_FOR_xfA_perm, B_UID(797) };
+static const struct builtin B1_vec_vsrh = { { &T_vec_s16, &T_vec_u16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsrh:1", "*vsrh", CODE_FOR_xfxx_simple, B_UID(798) };
+static const struct builtin B1_vec_vsrw = { { &T_vec_s32, &T_vec_u32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsrw:1", "*vsrw", CODE_FOR_xfxx_simple, B_UID(799) };
+static const struct builtin B1_vec_vsrb = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsrb:1", "*vsrb", CODE_FOR_xfxx_simple, B_UID(800) };
+static const struct builtin B2_vec_vsrh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsrh:2", "*vsrh", CODE_FOR_xfxx_simple, B_UID(801) };
+static const struct builtin B2_vec_vsrw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsrw:2", "*vsrw", CODE_FOR_xfxx_simple, B_UID(802) };
+static const struct builtin B2_vec_vsrb = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsrb:2", "*vsrb", CODE_FOR_xfxx_simple, B_UID(803) };
+static const struct builtin B1_vec_vsrah = { { &T_vec_s16, &T_vec_u16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsrah:1", "*vsrah", CODE_FOR_xfxx_simple, B_UID(804) };
+static const struct builtin B1_vec_vsraw = { { &T_vec_s32, &T_vec_u32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsraw:1", "*vsraw", CODE_FOR_xfxx_simple, B_UID(805) };
+static const struct builtin B1_vec_vsrab = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsrab:1", "*vsrab", CODE_FOR_xfxx_simple, B_UID(806) };
+static const struct builtin B2_vec_vsrah = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsrah:2", "*vsrah", CODE_FOR_xfxx_simple, B_UID(807) };
+static const struct builtin B2_vec_vsraw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsraw:2", "*vsraw", CODE_FOR_xfxx_simple, B_UID(808) };
+static const struct builtin B2_vec_vsrab = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsrab:2", "*vsrab", CODE_FOR_xfxx_simple, B_UID(809) };
+static const struct builtin B1_vec_vsr = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsr:1", "*vsr", CODE_FOR_xfxx_simple, B_UID(810) };
+static const struct builtin B2_vec_vsr = { { &T_vec_b16, &T_vec_u32, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsr:2", "*vsr", CODE_FOR_xfxx_simple, B_UID(811) };
+static const struct builtin B3_vec_vsr = { { &T_vec_b16, &T_vec_u8, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 0, "vec_vsr:3", "*vsr", CODE_FOR_xfxx_simple, B_UID(812) };
+static const struct builtin B4_vec_vsr = { { &T_vec_b32, &T_vec_u16, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vsr:4", "*vsr", CODE_FOR_xfxx_simple, B_UID(813) };
+static const struct builtin B5_vec_vsr = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vsr:5", "*vsr", CODE_FOR_xfxx_simple, B_UID(814) };
+static const struct builtin B6_vec_vsr = { { &T_vec_b32, &T_vec_u8, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 0, "vec_vsr:6", "*vsr", CODE_FOR_xfxx_simple, B_UID(815) };
+static const struct builtin B7_vec_vsr = { { &T_vec_b8, &T_vec_u16, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vsr:7", "*vsr", CODE_FOR_xfxx_simple, B_UID(816) };
+static const struct builtin B8_vec_vsr = { { &T_vec_b8, &T_vec_u32, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vsr:8", "*vsr", CODE_FOR_xfxx_simple, B_UID(817) };
+static const struct builtin B9_vec_vsr = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 0, "vec_vsr:9", "*vsr", CODE_FOR_xfxx_simple, B_UID(818) };
+static const struct builtin B10_vec_vsr = { { &T_vec_p16, &T_vec_u16, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsr:10", "*vsr", CODE_FOR_xfxx_simple, B_UID(819) };
+static const struct builtin B11_vec_vsr = { { &T_vec_p16, &T_vec_u32, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsr:11", "*vsr", CODE_FOR_xfxx_simple, B_UID(820) };
+static const struct builtin B12_vec_vsr = { { &T_vec_p16, &T_vec_u8, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsr:12", "*vsr", CODE_FOR_xfxx_simple, B_UID(821) };
+static const struct builtin B13_vec_vsr = { { &T_vec_s16, &T_vec_u16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsr:13", "*vsr", CODE_FOR_xfxx_simple, B_UID(822) };
+static const struct builtin B14_vec_vsr = { { &T_vec_s16, &T_vec_u32, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsr:14", "*vsr", CODE_FOR_xfxx_simple, B_UID(823) };
+static const struct builtin B15_vec_vsr = { { &T_vec_s16, &T_vec_u8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsr:15", "*vsr", CODE_FOR_xfxx_simple, B_UID(824) };
+static const struct builtin B16_vec_vsr = { { &T_vec_s32, &T_vec_u16, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsr:16", "*vsr", CODE_FOR_xfxx_simple, B_UID(825) };
+static const struct builtin B17_vec_vsr = { { &T_vec_s32, &T_vec_u32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsr:17", "*vsr", CODE_FOR_xfxx_simple, B_UID(826) };
+static const struct builtin B18_vec_vsr = { { &T_vec_s32, &T_vec_u8, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsr:18", "*vsr", CODE_FOR_xfxx_simple, B_UID(827) };
+static const struct builtin B19_vec_vsr = { { &T_vec_s8, &T_vec_u16, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsr:19", "*vsr", CODE_FOR_xfxx_simple, B_UID(828) };
+static const struct builtin B20_vec_vsr = { { &T_vec_s8, &T_vec_u32, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsr:20", "*vsr", CODE_FOR_xfxx_simple, B_UID(829) };
+static const struct builtin B21_vec_vsr = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsr:21", "*vsr", CODE_FOR_xfxx_simple, B_UID(830) };
+static const struct builtin B22_vec_vsr = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsr:22", "*vsr", CODE_FOR_xfxx_simple, B_UID(831) };
+static const struct builtin B23_vec_vsr = { { &T_vec_u16, &T_vec_u32, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsr:23", "*vsr", CODE_FOR_xfxx_simple, B_UID(832) };
+static const struct builtin B24_vec_vsr = { { &T_vec_u16, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsr:24", "*vsr", CODE_FOR_xfxx_simple, B_UID(833) };
+static const struct builtin B25_vec_vsr = { { &T_vec_u32, &T_vec_u16, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsr:25", "*vsr", CODE_FOR_xfxx_simple, B_UID(834) };
+static const struct builtin B26_vec_vsr = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsr:26", "*vsr", CODE_FOR_xfxx_simple, B_UID(835) };
+static const struct builtin B27_vec_vsr = { { &T_vec_u32, &T_vec_u8, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsr:27", "*vsr", CODE_FOR_xfxx_simple, B_UID(836) };
+static const struct builtin B28_vec_vsr = { { &T_vec_u8, &T_vec_u16, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsr:28", "*vsr", CODE_FOR_xfxx_simple, B_UID(837) };
+static const struct builtin B29_vec_vsr = { { &T_vec_u8, &T_vec_u32, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsr:29", "*vsr", CODE_FOR_xfxx_simple, B_UID(838) };
+static const struct builtin B30_vec_vsr = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsr:30", "*vsr", CODE_FOR_xfxx_simple, B_UID(839) };
+static const struct builtin B1_vec_vsro = { { &T_vec_f32, &T_vec_s8, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vsro:1", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(840) };
+static const struct builtin B2_vec_vsro = { { &T_vec_f32, &T_vec_u8, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 0, "vec_vsro:2", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(841) };
+static const struct builtin B3_vec_vsro = { { &T_vec_p16, &T_vec_s8, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsro:3", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(842) };
+static const struct builtin B4_vec_vsro = { { &T_vec_p16, &T_vec_u8, NULL, }, "xx", &T_vec_p16, 2, FALSE, FALSE, 0, "vec_vsro:4", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(843) };
+static const struct builtin B5_vec_vsro = { { &T_vec_s16, &T_vec_s8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsro:5", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(844) };
+static const struct builtin B6_vec_vsro = { { &T_vec_s16, &T_vec_u8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_vsro:6", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(845) };
+static const struct builtin B7_vec_vsro = { { &T_vec_s32, &T_vec_s8, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsro:7", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(846) };
+static const struct builtin B8_vec_vsro = { { &T_vec_s32, &T_vec_u8, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsro:8", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(847) };
+static const struct builtin B9_vec_vsro = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsro:9", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(848) };
+static const struct builtin B10_vec_vsro = { { &T_vec_s8, &T_vec_u8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 0, "vec_vsro:10", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(849) };
+static const struct builtin B11_vec_vsro = { { &T_vec_u16, &T_vec_s8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsro:11", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(850) };
+static const struct builtin B12_vec_vsro = { { &T_vec_u16, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_vsro:12", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(851) };
+static const struct builtin B13_vec_vsro = { { &T_vec_u32, &T_vec_s8, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsro:13", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(852) };
+static const struct builtin B14_vec_vsro = { { &T_vec_u32, &T_vec_u8, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsro:14", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(853) };
+static const struct builtin B15_vec_vsro = { { &T_vec_u8, &T_vec_s8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsro:15", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(854) };
+static const struct builtin B16_vec_vsro = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 0, "vec_vsro:16", "*vsro", CODE_FOR_xfxx_perm_bug, B_UID(855) };
+static const struct builtin B1_vec_stvx = { { &T_vec_b16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:1", "*stvx", CODE_FOR_sfxii_store, B_UID(856) };
+static const struct builtin B2_vec_stvx = { { &T_vec_b16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:2", "*stvx", CODE_FOR_sfxii_store, B_UID(857) };
+static const struct builtin B3_vec_stvx = { { &T_vec_b16, &T_int, &T_vec_b16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:3", "*stvx", CODE_FOR_sfxii_store, B_UID(858) };
+static const struct builtin B4_vec_stvx = { { &T_vec_b32, &T_int, &T_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:4", "*stvx", CODE_FOR_sfxii_store, B_UID(859) };
+static const struct builtin B5_vec_stvx = { { &T_vec_b32, &T_int, &T_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:5", "*stvx", CODE_FOR_sfxii_store, B_UID(860) };
+static const struct builtin B6_vec_stvx = { { &T_vec_b32, &T_int, &T_unsigned_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:6", "*stvx", CODE_FOR_sfxii_store, B_UID(861) };
+static const struct builtin B7_vec_stvx = { { &T_vec_b32, &T_int, &T_unsigned_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:7", "*stvx", CODE_FOR_sfxii_store, B_UID(862) };
+static const struct builtin B8_vec_stvx = { { &T_vec_b32, &T_int, &T_vec_b32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:8", "*stvx", CODE_FOR_sfxii_store, B_UID(863) };
+static const struct builtin B9_vec_stvx = { { &T_vec_b8, &T_int, &T_signed_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:9", "*stvx", CODE_FOR_sfxii_store, B_UID(864) };
+static const struct builtin B10_vec_stvx = { { &T_vec_b8, &T_int, &T_unsigned_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:10", "*stvx", CODE_FOR_sfxii_store, B_UID(865) };
+static const struct builtin B11_vec_stvx = { { &T_vec_b8, &T_int, &T_vec_b8_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:11", "*stvx", CODE_FOR_sfxii_store, B_UID(866) };
+static const struct builtin B12_vec_stvx = { { &T_vec_f32, &T_int, &T_float_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:12", "*stvx", CODE_FOR_sfxii_store, B_UID(867) };
+static const struct builtin B13_vec_stvx = { { &T_vec_f32, &T_int, &T_vec_f32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:13", "*stvx", CODE_FOR_sfxii_store, B_UID(868) };
+static const struct builtin B14_vec_stvx = { { &T_vec_p16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:14", "*stvx", CODE_FOR_sfxii_store, B_UID(869) };
+static const struct builtin B15_vec_stvx = { { &T_vec_p16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:15", "*stvx", CODE_FOR_sfxii_store, B_UID(870) };
+static const struct builtin B16_vec_stvx = { { &T_vec_p16, &T_int, &T_vec_p16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:16", "*stvx", CODE_FOR_sfxii_store, B_UID(871) };
+static const struct builtin B17_vec_stvx = { { &T_vec_s16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:17", "*stvx", CODE_FOR_sfxii_store, B_UID(872) };
+static const struct builtin B18_vec_stvx = { { &T_vec_s16, &T_int, &T_vec_s16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:18", "*stvx", CODE_FOR_sfxii_store, B_UID(873) };
+static const struct builtin B19_vec_stvx = { { &T_vec_s32, &T_int, &T_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:19", "*stvx", CODE_FOR_sfxii_store, B_UID(874) };
+static const struct builtin B20_vec_stvx = { { &T_vec_s32, &T_int, &T_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:20", "*stvx", CODE_FOR_sfxii_store, B_UID(875) };
+static const struct builtin B21_vec_stvx = { { &T_vec_s32, &T_int, &T_vec_s32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:21", "*stvx", CODE_FOR_sfxii_store, B_UID(876) };
+static const struct builtin B22_vec_stvx = { { &T_vec_s8, &T_int, &T_signed_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:22", "*stvx", CODE_FOR_sfxii_store, B_UID(877) };
+static const struct builtin B23_vec_stvx = { { &T_vec_s8, &T_int, &T_vec_s8_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:23", "*stvx", CODE_FOR_sfxii_store, B_UID(878) };
+static const struct builtin B24_vec_stvx = { { &T_vec_u16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:24", "*stvx", CODE_FOR_sfxii_store, B_UID(879) };
+static const struct builtin B25_vec_stvx = { { &T_vec_u16, &T_int, &T_vec_u16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:25", "*stvx", CODE_FOR_sfxii_store, B_UID(880) };
+static const struct builtin B26_vec_stvx = { { &T_vec_u32, &T_int, &T_unsigned_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:26", "*stvx", CODE_FOR_sfxii_store, B_UID(881) };
+static const struct builtin B27_vec_stvx = { { &T_vec_u32, &T_int, &T_unsigned_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:27", "*stvx", CODE_FOR_sfxii_store, B_UID(882) };
+static const struct builtin B28_vec_stvx = { { &T_vec_u32, &T_int, &T_vec_u32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:28", "*stvx", CODE_FOR_sfxii_store, B_UID(883) };
+static const struct builtin B29_vec_stvx = { { &T_vec_u8, &T_int, &T_unsigned_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:29", "*stvx", CODE_FOR_sfxii_store, B_UID(884) };
+static const struct builtin B30_vec_stvx = { { &T_vec_u8, &T_int, &T_vec_u8_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvx:30", "*stvx", CODE_FOR_sfxii_store, B_UID(885) };
+static const struct builtin B1_vec_stvebx = { { &T_vec_b16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvebx:1", "*stvebx", CODE_FOR_sfxii_store, B_UID(886) };
+static const struct builtin B2_vec_stvebx = { { &T_vec_b16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvebx:2", "*stvebx", CODE_FOR_sfxii_store, B_UID(887) };
+static const struct builtin B1_vec_stvewx = { { &T_vec_b32, &T_int, &T_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:1", "*stvewx", CODE_FOR_sfxii_store, B_UID(888) };
+static const struct builtin B2_vec_stvewx = { { &T_vec_b32, &T_int, &T_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:2", "*stvewx", CODE_FOR_sfxii_store, B_UID(889) };
+static const struct builtin B3_vec_stvewx = { { &T_vec_b32, &T_int, &T_unsigned_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:3", "*stvewx", CODE_FOR_sfxii_store, B_UID(890) };
+static const struct builtin B4_vec_stvewx = { { &T_vec_b32, &T_int, &T_unsigned_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:4", "*stvewx", CODE_FOR_sfxii_store, B_UID(891) };
+static const struct builtin B3_vec_stvebx = { { &T_vec_b8, &T_int, &T_signed_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvebx:3", "*stvebx", CODE_FOR_sfxii_store, B_UID(892) };
+static const struct builtin B4_vec_stvebx = { { &T_vec_b8, &T_int, &T_unsigned_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvebx:4", "*stvebx", CODE_FOR_sfxii_store, B_UID(893) };
+static const struct builtin B5_vec_stvewx = { { &T_vec_f32, &T_int, &T_float_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:5", "*stvewx", CODE_FOR_sfxii_store, B_UID(894) };
+static const struct builtin B1_vec_stvehx = { { &T_vec_p16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvehx:1", "*stvehx", CODE_FOR_sfxii_store, B_UID(895) };
+static const struct builtin B2_vec_stvehx = { { &T_vec_p16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvehx:2", "*stvehx", CODE_FOR_sfxii_store, B_UID(896) };
+static const struct builtin B3_vec_stvehx = { { &T_vec_s16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvehx:3", "*stvehx", CODE_FOR_sfxii_store, B_UID(897) };
+static const struct builtin B6_vec_stvewx = { { &T_vec_s32, &T_int, &T_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:6", "*stvewx", CODE_FOR_sfxii_store, B_UID(898) };
+static const struct builtin B7_vec_stvewx = { { &T_vec_s32, &T_int, &T_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:7", "*stvewx", CODE_FOR_sfxii_store, B_UID(899) };
+static const struct builtin B5_vec_stvebx = { { &T_vec_s8, &T_int, &T_signed_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvebx:5", "*stvebx", CODE_FOR_sfxii_store, B_UID(900) };
+static const struct builtin B4_vec_stvehx = { { &T_vec_u16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvehx:4", "*stvehx", CODE_FOR_sfxii_store, B_UID(901) };
+static const struct builtin B8_vec_stvewx = { { &T_vec_u32, &T_int, &T_unsigned_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:8", "*stvewx", CODE_FOR_sfxii_store, B_UID(902) };
+static const struct builtin B9_vec_stvewx = { { &T_vec_u32, &T_int, &T_unsigned_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvewx:9", "*stvewx", CODE_FOR_sfxii_store, B_UID(903) };
+static const struct builtin B6_vec_stvebx = { { &T_vec_u8, &T_int, &T_unsigned_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvebx:6", "*stvebx", CODE_FOR_sfxii_store, B_UID(904) };
+static const struct builtin B1_vec_stvxl = { { &T_vec_b16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:1", "*stvxl", CODE_FOR_sfxii_store, B_UID(905) };
+static const struct builtin B2_vec_stvxl = { { &T_vec_b16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:2", "*stvxl", CODE_FOR_sfxii_store, B_UID(906) };
+static const struct builtin B3_vec_stvxl = { { &T_vec_b16, &T_int, &T_vec_b16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:3", "*stvxl", CODE_FOR_sfxii_store, B_UID(907) };
+static const struct builtin B4_vec_stvxl = { { &T_vec_b32, &T_int, &T_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:4", "*stvxl", CODE_FOR_sfxii_store, B_UID(908) };
+static const struct builtin B5_vec_stvxl = { { &T_vec_b32, &T_int, &T_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:5", "*stvxl", CODE_FOR_sfxii_store, B_UID(909) };
+static const struct builtin B6_vec_stvxl = { { &T_vec_b32, &T_int, &T_unsigned_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:6", "*stvxl", CODE_FOR_sfxii_store, B_UID(910) };
+static const struct builtin B7_vec_stvxl = { { &T_vec_b32, &T_int, &T_unsigned_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:7", "*stvxl", CODE_FOR_sfxii_store, B_UID(911) };
+static const struct builtin B8_vec_stvxl = { { &T_vec_b32, &T_int, &T_vec_b32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:8", "*stvxl", CODE_FOR_sfxii_store, B_UID(912) };
+static const struct builtin B9_vec_stvxl = { { &T_vec_b8, &T_int, &T_signed_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:9", "*stvxl", CODE_FOR_sfxii_store, B_UID(913) };
+static const struct builtin B10_vec_stvxl = { { &T_vec_b8, &T_int, &T_unsigned_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:10", "*stvxl", CODE_FOR_sfxii_store, B_UID(914) };
+static const struct builtin B11_vec_stvxl = { { &T_vec_b8, &T_int, &T_vec_b8_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:11", "*stvxl", CODE_FOR_sfxii_store, B_UID(915) };
+static const struct builtin B12_vec_stvxl = { { &T_vec_f32, &T_int, &T_float_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:12", "*stvxl", CODE_FOR_sfxii_store, B_UID(916) };
+static const struct builtin B13_vec_stvxl = { { &T_vec_f32, &T_int, &T_vec_f32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:13", "*stvxl", CODE_FOR_sfxii_store, B_UID(917) };
+static const struct builtin B14_vec_stvxl = { { &T_vec_p16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:14", "*stvxl", CODE_FOR_sfxii_store, B_UID(918) };
+static const struct builtin B15_vec_stvxl = { { &T_vec_p16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:15", "*stvxl", CODE_FOR_sfxii_store, B_UID(919) };
+static const struct builtin B16_vec_stvxl = { { &T_vec_p16, &T_int, &T_vec_p16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:16", "*stvxl", CODE_FOR_sfxii_store, B_UID(920) };
+static const struct builtin B17_vec_stvxl = { { &T_vec_s16, &T_int, &T_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:17", "*stvxl", CODE_FOR_sfxii_store, B_UID(921) };
+static const struct builtin B18_vec_stvxl = { { &T_vec_s16, &T_int, &T_vec_s16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:18", "*stvxl", CODE_FOR_sfxii_store, B_UID(922) };
+static const struct builtin B19_vec_stvxl = { { &T_vec_s32, &T_int, &T_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:19", "*stvxl", CODE_FOR_sfxii_store, B_UID(923) };
+static const struct builtin B20_vec_stvxl = { { &T_vec_s32, &T_int, &T_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:20", "*stvxl", CODE_FOR_sfxii_store, B_UID(924) };
+static const struct builtin B21_vec_stvxl = { { &T_vec_s32, &T_int, &T_vec_s32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:21", "*stvxl", CODE_FOR_sfxii_store, B_UID(925) };
+static const struct builtin B22_vec_stvxl = { { &T_vec_s8, &T_int, &T_signed_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:22", "*stvxl", CODE_FOR_sfxii_store, B_UID(926) };
+static const struct builtin B23_vec_stvxl = { { &T_vec_s8, &T_int, &T_vec_s8_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:23", "*stvxl", CODE_FOR_sfxii_store, B_UID(927) };
+static const struct builtin B24_vec_stvxl = { { &T_vec_u16, &T_int, &T_unsigned_short_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:24", "*stvxl", CODE_FOR_sfxii_store, B_UID(928) };
+static const struct builtin B25_vec_stvxl = { { &T_vec_u16, &T_int, &T_vec_u16_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:25", "*stvxl", CODE_FOR_sfxii_store, B_UID(929) };
+static const struct builtin B26_vec_stvxl = { { &T_vec_u32, &T_int, &T_unsigned_int_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:26", "*stvxl", CODE_FOR_sfxii_store, B_UID(930) };
+static const struct builtin B27_vec_stvxl = { { &T_vec_u32, &T_int, &T_unsigned_long_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:27", "*stvxl", CODE_FOR_sfxii_store, B_UID(931) };
+static const struct builtin B28_vec_stvxl = { { &T_vec_u32, &T_int, &T_vec_u32_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:28", "*stvxl", CODE_FOR_sfxii_store, B_UID(932) };
+static const struct builtin B29_vec_stvxl = { { &T_vec_u8, &T_int, &T_unsigned_char_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:29", "*stvxl", CODE_FOR_sfxii_store, B_UID(933) };
+static const struct builtin B30_vec_stvxl = { { &T_vec_u8, &T_int, &T_vec_u8_ptr, }, "xii", &T_void, 3, FALSE, FALSE, 0, "vec_stvxl:30", "*stvxl", CODE_FOR_sfxii_store, B_UID(934) };
+static const struct builtin B1_vec_vsubuhm = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vsubuhm:1", "*vsubuhm", CODE_FOR_xfxx_simple, B_UID(935) };
+static const struct builtin B2_vec_vsubuhm = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vsubuhm:2", "*vsubuhm", CODE_FOR_xfxx_simple, B_UID(936) };
+static const struct builtin B1_vec_vsubuwm = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vsubuwm:1", "*vsubuwm", CODE_FOR_xfxx_simple, B_UID(937) };
+static const struct builtin B2_vec_vsubuwm = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vsubuwm:2", "*vsubuwm", CODE_FOR_xfxx_simple, B_UID(938) };
+static const struct builtin B1_vec_vsububm = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vsububm:1", "*vsububm", CODE_FOR_xfxx_simple, B_UID(939) };
+static const struct builtin B2_vec_vsububm = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vsububm:2", "*vsububm", CODE_FOR_xfxx_simple, B_UID(940) };
+static const struct builtin B_vec_vsubfp = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vsubfp", "*vsubfp", CODE_FOR_xfxx_fp, B_UID(941) };
+static const struct builtin B3_vec_vsubuhm = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vsubuhm:3", "*vsubuhm", CODE_FOR_xfxx_simple, B_UID(942) };
+static const struct builtin B4_vec_vsubuhm = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vsubuhm:4", "*vsubuhm", CODE_FOR_xfxx_simple, B_UID(943) };
+static const struct builtin B3_vec_vsubuwm = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vsubuwm:3", "*vsubuwm", CODE_FOR_xfxx_simple, B_UID(944) };
+static const struct builtin B4_vec_vsubuwm = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vsubuwm:4", "*vsubuwm", CODE_FOR_xfxx_simple, B_UID(945) };
+static const struct builtin B3_vec_vsububm = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vsububm:3", "*vsububm", CODE_FOR_xfxx_simple, B_UID(946) };
+static const struct builtin B4_vec_vsububm = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vsububm:4", "*vsububm", CODE_FOR_xfxx_simple, B_UID(947) };
+static const struct builtin B5_vec_vsubuhm = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vsubuhm:5", "*vsubuhm", CODE_FOR_xfxx_simple, B_UID(948) };
+static const struct builtin B6_vec_vsubuhm = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vsubuhm:6", "*vsubuhm", CODE_FOR_xfxx_simple, B_UID(949) };
+static const struct builtin B5_vec_vsubuwm = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vsubuwm:5", "*vsubuwm", CODE_FOR_xfxx_simple, B_UID(950) };
+static const struct builtin B6_vec_vsubuwm = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vsubuwm:6", "*vsubuwm", CODE_FOR_xfxx_simple, B_UID(951) };
+static const struct builtin B5_vec_vsububm = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vsububm:5", "*vsububm", CODE_FOR_xfxx_simple, B_UID(952) };
+static const struct builtin B6_vec_vsububm = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vsububm:6", "*vsububm", CODE_FOR_xfxx_simple, B_UID(953) };
+static const struct builtin B_vec_vsubcuw = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsubcuw", "*vsubcuw", CODE_FOR_xfxx_simple, B_UID(954) };
+static const struct builtin B1_vec_vsubshs = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vsubshs:1", "*vsubshs", CODE_FOR_xfxx_simple, B_UID(955) };
+static const struct builtin B1_vec_vsubuhs = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vsubuhs:1", "*vsubuhs", CODE_FOR_xfxx_simple, B_UID(956) };
+static const struct builtin B1_vec_vsubsws = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vsubsws:1", "*vsubsws", CODE_FOR_xfxx_simple, B_UID(957) };
+static const struct builtin B1_vec_vsubuws = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vsubuws:1", "*vsubuws", CODE_FOR_xfxx_simple, B_UID(958) };
+static const struct builtin B1_vec_vsubsbs = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vsubsbs:1", "*vsubsbs", CODE_FOR_xfxx_simple, B_UID(959) };
+static const struct builtin B1_vec_vsububs = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vsububs:1", "*vsububs", CODE_FOR_xfxx_simple, B_UID(960) };
+static const struct builtin B2_vec_vsubshs = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vsubshs:2", "*vsubshs", CODE_FOR_xfxx_simple, B_UID(961) };
+static const struct builtin B3_vec_vsubshs = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vsubshs:3", "*vsubshs", CODE_FOR_xfxx_simple, B_UID(962) };
+static const struct builtin B2_vec_vsubsws = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vsubsws:2", "*vsubsws", CODE_FOR_xfxx_simple, B_UID(963) };
+static const struct builtin B3_vec_vsubsws = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vsubsws:3", "*vsubsws", CODE_FOR_xfxx_simple, B_UID(964) };
+static const struct builtin B2_vec_vsubsbs = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vsubsbs:2", "*vsubsbs", CODE_FOR_xfxx_simple, B_UID(965) };
+static const struct builtin B3_vec_vsubsbs = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vsubsbs:3", "*vsubsbs", CODE_FOR_xfxx_simple, B_UID(966) };
+static const struct builtin B2_vec_vsubuhs = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vsubuhs:2", "*vsubuhs", CODE_FOR_xfxx_simple, B_UID(967) };
+static const struct builtin B3_vec_vsubuhs = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vsubuhs:3", "*vsubuhs", CODE_FOR_xfxx_simple, B_UID(968) };
+static const struct builtin B2_vec_vsubuws = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vsubuws:2", "*vsubuws", CODE_FOR_xfxx_simple, B_UID(969) };
+static const struct builtin B3_vec_vsubuws = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vsubuws:3", "*vsubuws", CODE_FOR_xfxx_simple, B_UID(970) };
+static const struct builtin B2_vec_vsububs = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vsububs:2", "*vsububs", CODE_FOR_xfxx_simple, B_UID(971) };
+static const struct builtin B3_vec_vsububs = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vsububs:3", "*vsububs", CODE_FOR_xfxx_simple, B_UID(972) };
+static const struct builtin B_vec_vsum2sws = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsum2sws", "*vsum2sws", CODE_FOR_xfxx_complex, B_UID(973) };
+static const struct builtin B_vec_vsum4shs = { { &T_vec_s16, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsum4shs", "*vsum4shs", CODE_FOR_xfxx_complex, B_UID(974) };
+static const struct builtin B_vec_vsum4sbs = { { &T_vec_s8, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsum4sbs", "*vsum4sbs", CODE_FOR_xfxx_complex, B_UID(975) };
+static const struct builtin B_vec_vsum4ubs = { { &T_vec_u8, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_vsum4ubs", "*vsum4ubs", CODE_FOR_xfxx_complex, B_UID(976) };
+static const struct builtin B_vec_vsumsws = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_vsumsws", "*vsumsws", CODE_FOR_xfxx_complex, B_UID(977) };
+static const struct builtin B_vec_vrfiz = { { &T_vec_f32, NULL, NULL, }, "x", &T_vec_f32, 1, FALSE, FALSE, 0, "vec_vrfiz", "*vrfiz", CODE_FOR_xfx_fp, B_UID(978) };
+static const struct builtin B1_vec_unpack2sh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_unpack2sh:1", "*vmrghh", CODE_FOR_xfxx_perm, B_UID(979) };
+static const struct builtin B2_vec_unpack2sh = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_unpack2sh:2", "*vmrghb", CODE_FOR_xfxx_perm, B_UID(980) };
+static const struct builtin B1_vec_unpack2sl = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 0, "vec_unpack2sl:1", "*vmrglh", CODE_FOR_xfxx_perm, B_UID(981) };
+static const struct builtin B2_vec_unpack2sl = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 0, "vec_unpack2sl:2", "*vmrglb", CODE_FOR_xfxx_perm, B_UID(982) };
+static const struct builtin B1_vec_unpack2uh = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_unpack2uh:1", "*vmrghh", CODE_FOR_xfxx_perm, B_UID(983) };
+static const struct builtin B2_vec_unpack2uh = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_unpack2uh:2", "*vmrghb", CODE_FOR_xfxx_perm, B_UID(984) };
+static const struct builtin B1_vec_unpack2ul = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 0, "vec_unpack2ul:1", "*vmrglh", CODE_FOR_xfxx_perm, B_UID(985) };
+static const struct builtin B2_vec_unpack2ul = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 0, "vec_unpack2ul:2", "*vmrglb", CODE_FOR_xfxx_perm, B_UID(986) };
+static const struct builtin B1_vec_vupkhsh = { { &T_vec_b16, NULL, NULL, }, "x", &T_vec_b32, 1, FALSE, FALSE, 0, "vec_vupkhsh:1", "*vupkhsh", CODE_FOR_xfx_perm, B_UID(987) };
+static const struct builtin B1_vec_vupkhsb = { { &T_vec_b8, NULL, NULL, }, "x", &T_vec_b16, 1, FALSE, FALSE, 0, "vec_vupkhsb:1", "*vupkhsb", CODE_FOR_xfx_perm, B_UID(988) };
+static const struct builtin B_vec_vupkhpx = { { &T_vec_p16, NULL, NULL, }, "x", &T_vec_u32, 1, FALSE, FALSE, 0, "vec_vupkhpx", "*vupkhpx", CODE_FOR_xfx_perm, B_UID(989) };
+static const struct builtin B2_vec_vupkhsh = { { &T_vec_s16, NULL, NULL, }, "x", &T_vec_s32, 1, FALSE, FALSE, 0, "vec_vupkhsh:2", "*vupkhsh", CODE_FOR_xfx_perm, B_UID(990) };
+static const struct builtin B2_vec_vupkhsb = { { &T_vec_s8, NULL, NULL, }, "x", &T_vec_s16, 1, FALSE, FALSE, 0, "vec_vupkhsb:2", "*vupkhsb", CODE_FOR_xfx_perm, B_UID(991) };
+static const struct builtin B1_vec_vupklsh = { { &T_vec_b16, NULL, NULL, }, "x", &T_vec_b32, 1, FALSE, FALSE, 0, "vec_vupklsh:1", "*vupklsh", CODE_FOR_xfx_perm, B_UID(992) };
+static const struct builtin B1_vec_vupklsb = { { &T_vec_b8, NULL, NULL, }, "x", &T_vec_b16, 1, FALSE, FALSE, 0, "vec_vupklsb:1", "*vupklsb", CODE_FOR_xfx_perm, B_UID(993) };
+static const struct builtin B_vec_vupklpx = { { &T_vec_p16, NULL, NULL, }, "x", &T_vec_u32, 1, FALSE, FALSE, 0, "vec_vupklpx", "*vupklpx", CODE_FOR_xfx_perm, B_UID(994) };
+static const struct builtin B2_vec_vupklsh = { { &T_vec_s16, NULL, NULL, }, "x", &T_vec_s32, 1, FALSE, FALSE, 0, "vec_vupklsh:2", "*vupklsh", CODE_FOR_xfx_perm, B_UID(995) };
+static const struct builtin B2_vec_vupklsb = { { &T_vec_s8, NULL, NULL, }, "x", &T_vec_s16, 1, FALSE, FALSE, 0, "vec_vupklsb:2", "*vupklsb", CODE_FOR_xfx_perm, B_UID(996) };
+static const struct builtin B1_vec_vxor = { { &T_vec_b16, &T_vec_b16, NULL, }, "xx", &T_vec_b16, 2, FALSE, FALSE, 1, "vec_vxor:1", "*vxor", CODE_FOR_xfxx_simple, B_UID(997) };
+static const struct builtin B2_vec_vxor = { { &T_vec_b16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vxor:2", "*vxor", CODE_FOR_xfxx_simple, B_UID(998) };
+static const struct builtin B3_vec_vxor = { { &T_vec_b16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vxor:3", "*vxor", CODE_FOR_xfxx_simple, B_UID(999) };
+static const struct builtin B4_vec_vxor = { { &T_vec_b32, &T_vec_b32, NULL, }, "xx", &T_vec_b32, 2, FALSE, FALSE, 1, "vec_vxor:4", "*vxor", CODE_FOR_xfxx_simple, B_UID(1000) };
+static const struct builtin B5_vec_vxor = { { &T_vec_b32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vxor:5", "*vxor", CODE_FOR_xfxx_simple, B_UID(1001) };
+static const struct builtin B6_vec_vxor = { { &T_vec_b32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vxor:6", "*vxor", CODE_FOR_xfxx_simple, B_UID(1002) };
+static const struct builtin B7_vec_vxor = { { &T_vec_b32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vxor:7", "*vxor", CODE_FOR_xfxx_simple, B_UID(1003) };
+static const struct builtin B8_vec_vxor = { { &T_vec_b8, &T_vec_b8, NULL, }, "xx", &T_vec_b8, 2, FALSE, FALSE, 1, "vec_vxor:8", "*vxor", CODE_FOR_xfxx_simple, B_UID(1004) };
+static const struct builtin B9_vec_vxor = { { &T_vec_b8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vxor:9", "*vxor", CODE_FOR_xfxx_simple, B_UID(1005) };
+static const struct builtin B10_vec_vxor = { { &T_vec_b8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vxor:10", "*vxor", CODE_FOR_xfxx_simple, B_UID(1006) };
+static const struct builtin B11_vec_vxor = { { &T_vec_f32, &T_vec_b32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vxor:11", "*vxor", CODE_FOR_xfxx_simple, B_UID(1007) };
+static const struct builtin B12_vec_vxor = { { &T_vec_f32, &T_vec_f32, NULL, }, "xx", &T_vec_f32, 2, FALSE, FALSE, 1, "vec_vxor:12", "*vxor", CODE_FOR_xfxx_simple, B_UID(1008) };
+static const struct builtin B13_vec_vxor = { { &T_vec_s16, &T_vec_b16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vxor:13", "*vxor", CODE_FOR_xfxx_simple, B_UID(1009) };
+static const struct builtin B14_vec_vxor = { { &T_vec_s16, &T_vec_s16, NULL, }, "xx", &T_vec_s16, 2, FALSE, FALSE, 1, "vec_vxor:14", "*vxor", CODE_FOR_xfxx_simple, B_UID(1010) };
+static const struct builtin B15_vec_vxor = { { &T_vec_s32, &T_vec_b32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vxor:15", "*vxor", CODE_FOR_xfxx_simple, B_UID(1011) };
+static const struct builtin B16_vec_vxor = { { &T_vec_s32, &T_vec_s32, NULL, }, "xx", &T_vec_s32, 2, FALSE, FALSE, 1, "vec_vxor:16", "*vxor", CODE_FOR_xfxx_simple, B_UID(1012) };
+static const struct builtin B17_vec_vxor = { { &T_vec_s8, &T_vec_b8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vxor:17", "*vxor", CODE_FOR_xfxx_simple, B_UID(1013) };
+static const struct builtin B18_vec_vxor = { { &T_vec_s8, &T_vec_s8, NULL, }, "xx", &T_vec_s8, 2, FALSE, FALSE, 1, "vec_vxor:18", "*vxor", CODE_FOR_xfxx_simple, B_UID(1014) };
+static const struct builtin B19_vec_vxor = { { &T_vec_u16, &T_vec_b16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vxor:19", "*vxor", CODE_FOR_xfxx_simple, B_UID(1015) };
+static const struct builtin B20_vec_vxor = { { &T_vec_u16, &T_vec_u16, NULL, }, "xx", &T_vec_u16, 2, FALSE, FALSE, 1, "vec_vxor:20", "*vxor", CODE_FOR_xfxx_simple, B_UID(1016) };
+static const struct builtin B21_vec_vxor = { { &T_vec_u32, &T_vec_b32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vxor:21", "*vxor", CODE_FOR_xfxx_simple, B_UID(1017) };
+static const struct builtin B22_vec_vxor = { { &T_vec_u32, &T_vec_u32, NULL, }, "xx", &T_vec_u32, 2, FALSE, FALSE, 1, "vec_vxor:22", "*vxor", CODE_FOR_xfxx_simple, B_UID(1018) };
+static const struct builtin B23_vec_vxor = { { &T_vec_u8, &T_vec_b8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vxor:23", "*vxor", CODE_FOR_xfxx_simple, B_UID(1019) };
+static const struct builtin B24_vec_vxor = { { &T_vec_u8, &T_vec_u8, NULL, }, "xx", &T_vec_u8, 2, FALSE, FALSE, 1, "vec_vxor:24", "*vxor", CODE_FOR_xfxx_simple, B_UID(1020) };
+#define LAST_B_UID B_UID(1021)
+
+const struct builtin * const Builtin[] = {
+ &B1_vec_abs,
+ &B2_vec_abs,
+ &B3_vec_abs,
+ &B4_vec_abs,
+ &B1_vec_abss,
+ &B2_vec_abss,
+ &B3_vec_abss,
+ &B1_vec_vadduhm,
+ &B2_vec_vadduhm,
+ &B1_vec_vadduwm,
+ &B2_vec_vadduwm,
+ &B1_vec_vaddubm,
+ &B2_vec_vaddubm,
+ &B_vec_vaddfp,
+ &B3_vec_vadduhm,
+ &B4_vec_vadduhm,
+ &B3_vec_vadduwm,
+ &B4_vec_vadduwm,
+ &B3_vec_vaddubm,
+ &B4_vec_vaddubm,
+ &B5_vec_vadduhm,
+ &B6_vec_vadduhm,
+ &B5_vec_vadduwm,
+ &B6_vec_vadduwm,
+ &B5_vec_vaddubm,
+ &B6_vec_vaddubm,
+ &B_vec_vaddcuw,
+ &B1_vec_vaddshs,
+ &B1_vec_vadduhs,
+ &B1_vec_vaddsws,
+ &B1_vec_vadduws,
+ &B1_vec_vaddsbs,
+ &B1_vec_vaddubs,
+ &B2_vec_vaddshs,
+ &B3_vec_vaddshs,
+ &B2_vec_vaddsws,
+ &B3_vec_vaddsws,
+ &B2_vec_vaddsbs,
+ &B3_vec_vaddsbs,
+ &B2_vec_vadduhs,
+ &B3_vec_vadduhs,
+ &B2_vec_vadduws,
+ &B3_vec_vadduws,
+ &B2_vec_vaddubs,
+ &B3_vec_vaddubs,
+ &B1_vec_all_eq,
+ &B2_vec_all_eq,
+ &B3_vec_all_eq,
+ &B4_vec_all_eq,
+ &B5_vec_all_eq,
+ &B6_vec_all_eq,
+ &B7_vec_all_eq,
+ &B8_vec_all_eq,
+ &B9_vec_all_eq,
+ &B10_vec_all_eq,
+ &B11_vec_all_eq,
+ &B12_vec_all_eq,
+ &B13_vec_all_eq,
+ &B14_vec_all_eq,
+ &B15_vec_all_eq,
+ &B16_vec_all_eq,
+ &B17_vec_all_eq,
+ &B18_vec_all_eq,
+ &B19_vec_all_eq,
+ &B20_vec_all_eq,
+ &B21_vec_all_eq,
+ &B22_vec_all_eq,
+ &B23_vec_all_eq,
+ &B1_vec_all_ge,
+ &B2_vec_all_ge,
+ &B3_vec_all_ge,
+ &B4_vec_all_ge,
+ &B5_vec_all_ge,
+ &B6_vec_all_ge,
+ &B7_vec_all_ge,
+ &B8_vec_all_ge,
+ &B9_vec_all_ge,
+ &B10_vec_all_ge,
+ &B11_vec_all_ge,
+ &B12_vec_all_ge,
+ &B13_vec_all_ge,
+ &B14_vec_all_ge,
+ &B15_vec_all_ge,
+ &B16_vec_all_ge,
+ &B17_vec_all_ge,
+ &B18_vec_all_ge,
+ &B19_vec_all_ge,
+ &B1_vec_all_gt,
+ &B2_vec_all_gt,
+ &B3_vec_all_gt,
+ &B4_vec_all_gt,
+ &B5_vec_all_gt,
+ &B6_vec_all_gt,
+ &B7_vec_all_gt,
+ &B8_vec_all_gt,
+ &B9_vec_all_gt,
+ &B10_vec_all_gt,
+ &B11_vec_all_gt,
+ &B12_vec_all_gt,
+ &B13_vec_all_gt,
+ &B14_vec_all_gt,
+ &B15_vec_all_gt,
+ &B16_vec_all_gt,
+ &B17_vec_all_gt,
+ &B18_vec_all_gt,
+ &B19_vec_all_gt,
+ &B_vec_all_in,
+ &B1_vec_all_le,
+ &B2_vec_all_le,
+ &B3_vec_all_le,
+ &B4_vec_all_le,
+ &B5_vec_all_le,
+ &B6_vec_all_le,
+ &B7_vec_all_le,
+ &B8_vec_all_le,
+ &B9_vec_all_le,
+ &B10_vec_all_le,
+ &B11_vec_all_le,
+ &B12_vec_all_le,
+ &B13_vec_all_le,
+ &B14_vec_all_le,
+ &B15_vec_all_le,
+ &B16_vec_all_le,
+ &B17_vec_all_le,
+ &B18_vec_all_le,
+ &B19_vec_all_le,
+ &B1_vec_all_lt,
+ &B2_vec_all_lt,
+ &B3_vec_all_lt,
+ &B4_vec_all_lt,
+ &B5_vec_all_lt,
+ &B6_vec_all_lt,
+ &B7_vec_all_lt,
+ &B8_vec_all_lt,
+ &B9_vec_all_lt,
+ &B10_vec_all_lt,
+ &B11_vec_all_lt,
+ &B12_vec_all_lt,
+ &B13_vec_all_lt,
+ &B14_vec_all_lt,
+ &B15_vec_all_lt,
+ &B16_vec_all_lt,
+ &B17_vec_all_lt,
+ &B18_vec_all_lt,
+ &B19_vec_all_lt,
+ &B_vec_all_nan,
+ &B1_vec_all_ne,
+ &B2_vec_all_ne,
+ &B3_vec_all_ne,
+ &B4_vec_all_ne,
+ &B5_vec_all_ne,
+ &B6_vec_all_ne,
+ &B7_vec_all_ne,
+ &B8_vec_all_ne,
+ &B9_vec_all_ne,
+ &B10_vec_all_ne,
+ &B11_vec_all_ne,
+ &B12_vec_all_ne,
+ &B13_vec_all_ne,
+ &B14_vec_all_ne,
+ &B15_vec_all_ne,
+ &B16_vec_all_ne,
+ &B17_vec_all_ne,
+ &B18_vec_all_ne,
+ &B19_vec_all_ne,
+ &B20_vec_all_ne,
+ &B21_vec_all_ne,
+ &B22_vec_all_ne,
+ &B23_vec_all_ne,
+ &B_vec_all_nge,
+ &B_vec_all_ngt,
+ &B_vec_all_nle,
+ &B_vec_all_nlt,
+ &B_vec_all_numeric,
+ &B1_vec_vand,
+ &B2_vec_vand,
+ &B3_vec_vand,
+ &B4_vec_vand,
+ &B5_vec_vand,
+ &B6_vec_vand,
+ &B7_vec_vand,
+ &B8_vec_vand,
+ &B9_vec_vand,
+ &B10_vec_vand,
+ &B11_vec_vand,
+ &B12_vec_vand,
+ &B13_vec_vand,
+ &B14_vec_vand,
+ &B15_vec_vand,
+ &B16_vec_vand,
+ &B17_vec_vand,
+ &B18_vec_vand,
+ &B19_vec_vand,
+ &B20_vec_vand,
+ &B21_vec_vand,
+ &B22_vec_vand,
+ &B23_vec_vand,
+ &B24_vec_vand,
+ &B1_vec_vandc,
+ &B2_vec_vandc,
+ &B3_vec_vandc,
+ &B4_vec_vandc,
+ &B5_vec_vandc,
+ &B6_vec_vandc,
+ &B7_vec_vandc,
+ &B8_vec_vandc,
+ &B9_vec_vandc,
+ &B10_vec_vandc,
+ &B11_vec_vandc,
+ &B12_vec_vandc,
+ &B13_vec_vandc,
+ &B14_vec_vandc,
+ &B15_vec_vandc,
+ &B16_vec_vandc,
+ &B17_vec_vandc,
+ &B18_vec_vandc,
+ &B19_vec_vandc,
+ &B20_vec_vandc,
+ &B21_vec_vandc,
+ &B22_vec_vandc,
+ &B23_vec_vandc,
+ &B24_vec_vandc,
+ &B1_vec_any_eq,
+ &B2_vec_any_eq,
+ &B3_vec_any_eq,
+ &B4_vec_any_eq,
+ &B5_vec_any_eq,
+ &B6_vec_any_eq,
+ &B7_vec_any_eq,
+ &B8_vec_any_eq,
+ &B9_vec_any_eq,
+ &B10_vec_any_eq,
+ &B11_vec_any_eq,
+ &B12_vec_any_eq,
+ &B13_vec_any_eq,
+ &B14_vec_any_eq,
+ &B15_vec_any_eq,
+ &B16_vec_any_eq,
+ &B17_vec_any_eq,
+ &B18_vec_any_eq,
+ &B19_vec_any_eq,
+ &B20_vec_any_eq,
+ &B21_vec_any_eq,
+ &B22_vec_any_eq,
+ &B23_vec_any_eq,
+ &B1_vec_any_ge,
+ &B2_vec_any_ge,
+ &B3_vec_any_ge,
+ &B4_vec_any_ge,
+ &B5_vec_any_ge,
+ &B6_vec_any_ge,
+ &B7_vec_any_ge,
+ &B8_vec_any_ge,
+ &B9_vec_any_ge,
+ &B10_vec_any_ge,
+ &B11_vec_any_ge,
+ &B12_vec_any_ge,
+ &B13_vec_any_ge,
+ &B14_vec_any_ge,
+ &B15_vec_any_ge,
+ &B16_vec_any_ge,
+ &B17_vec_any_ge,
+ &B18_vec_any_ge,
+ &B19_vec_any_ge,
+ &B1_vec_any_gt,
+ &B2_vec_any_gt,
+ &B3_vec_any_gt,
+ &B4_vec_any_gt,
+ &B5_vec_any_gt,
+ &B6_vec_any_gt,
+ &B7_vec_any_gt,
+ &B8_vec_any_gt,
+ &B9_vec_any_gt,
+ &B10_vec_any_gt,
+ &B11_vec_any_gt,
+ &B12_vec_any_gt,
+ &B13_vec_any_gt,
+ &B14_vec_any_gt,
+ &B15_vec_any_gt,
+ &B16_vec_any_gt,
+ &B17_vec_any_gt,
+ &B18_vec_any_gt,
+ &B19_vec_any_gt,
+ &B1_vec_any_le,
+ &B2_vec_any_le,
+ &B3_vec_any_le,
+ &B4_vec_any_le,
+ &B5_vec_any_le,
+ &B6_vec_any_le,
+ &B7_vec_any_le,
+ &B8_vec_any_le,
+ &B9_vec_any_le,
+ &B10_vec_any_le,
+ &B11_vec_any_le,
+ &B12_vec_any_le,
+ &B13_vec_any_le,
+ &B14_vec_any_le,
+ &B15_vec_any_le,
+ &B16_vec_any_le,
+ &B17_vec_any_le,
+ &B18_vec_any_le,
+ &B19_vec_any_le,
+ &B1_vec_any_lt,
+ &B2_vec_any_lt,
+ &B3_vec_any_lt,
+ &B4_vec_any_lt,
+ &B5_vec_any_lt,
+ &B6_vec_any_lt,
+ &B7_vec_any_lt,
+ &B8_vec_any_lt,
+ &B9_vec_any_lt,
+ &B10_vec_any_lt,
+ &B11_vec_any_lt,
+ &B12_vec_any_lt,
+ &B13_vec_any_lt,
+ &B14_vec_any_lt,
+ &B15_vec_any_lt,
+ &B16_vec_any_lt,
+ &B17_vec_any_lt,
+ &B18_vec_any_lt,
+ &B19_vec_any_lt,
+ &B_vec_any_nan,
+ &B1_vec_any_ne,
+ &B2_vec_any_ne,
+ &B3_vec_any_ne,
+ &B4_vec_any_ne,
+ &B5_vec_any_ne,
+ &B6_vec_any_ne,
+ &B7_vec_any_ne,
+ &B8_vec_any_ne,
+ &B9_vec_any_ne,
+ &B10_vec_any_ne,
+ &B11_vec_any_ne,
+ &B12_vec_any_ne,
+ &B13_vec_any_ne,
+ &B14_vec_any_ne,
+ &B15_vec_any_ne,
+ &B16_vec_any_ne,
+ &B17_vec_any_ne,
+ &B18_vec_any_ne,
+ &B19_vec_any_ne,
+ &B20_vec_any_ne,
+ &B21_vec_any_ne,
+ &B22_vec_any_ne,
+ &B23_vec_any_ne,
+ &B_vec_any_nge,
+ &B_vec_any_ngt,
+ &B_vec_any_nle,
+ &B_vec_any_nlt,
+ &B_vec_any_numeric,
+ &B_vec_any_out,
+ &B_vec_vavgsh,
+ &B_vec_vavgsw,
+ &B_vec_vavgsb,
+ &B_vec_vavguh,
+ &B_vec_vavguw,
+ &B_vec_vavgub,
+ &B_vec_vrfip,
+ &B_vec_vcmpbfp,
+ &B_vec_vcmpeqfp,
+ &B1_vec_vcmpequh,
+ &B1_vec_vcmpequw,
+ &B1_vec_vcmpequb,
+ &B2_vec_vcmpequh,
+ &B2_vec_vcmpequw,
+ &B2_vec_vcmpequb,
+ &B_vec_vcmpgefp,
+ &B_vec_vcmpgtfp,
+ &B_vec_vcmpgtsh,
+ &B_vec_vcmpgtsw,
+ &B_vec_vcmpgtsb,
+ &B_vec_vcmpgtuh,
+ &B_vec_vcmpgtuw,
+ &B_vec_vcmpgtub,
+ &B_vec_cmple,
+ &B1_vec_cmplt,
+ &B2_vec_cmplt,
+ &B3_vec_cmplt,
+ &B4_vec_cmplt,
+ &B5_vec_cmplt,
+ &B6_vec_cmplt,
+ &B7_vec_cmplt,
+ &B_vec_vcfsx,
+ &B_vec_vcfux,
+ &B_vec_vctsxs,
+ &B_vec_vctuxs,
+ &B_vec_dss,
+ &B_vec_dssall,
+ &B1_vec_dst,
+ &B2_vec_dst,
+ &B3_vec_dst,
+ &B4_vec_dst,
+ &B5_vec_dst,
+ &B6_vec_dst,
+ &B7_vec_dst,
+ &B8_vec_dst,
+ &B9_vec_dst,
+ &B10_vec_dst,
+ &B11_vec_dst,
+ &B12_vec_dst,
+ &B13_vec_dst,
+ &B14_vec_dst,
+ &B15_vec_dst,
+ &B16_vec_dst,
+ &B17_vec_dst,
+ &B18_vec_dst,
+ &B19_vec_dst,
+ &B20_vec_dst,
+ &B1_vec_dstst,
+ &B2_vec_dstst,
+ &B3_vec_dstst,
+ &B4_vec_dstst,
+ &B5_vec_dstst,
+ &B6_vec_dstst,
+ &B7_vec_dstst,
+ &B8_vec_dstst,
+ &B9_vec_dstst,
+ &B10_vec_dstst,
+ &B11_vec_dstst,
+ &B12_vec_dstst,
+ &B13_vec_dstst,
+ &B14_vec_dstst,
+ &B15_vec_dstst,
+ &B16_vec_dstst,
+ &B17_vec_dstst,
+ &B18_vec_dstst,
+ &B19_vec_dstst,
+ &B20_vec_dstst,
+ &B1_vec_dststt,
+ &B2_vec_dststt,
+ &B3_vec_dststt,
+ &B4_vec_dststt,
+ &B5_vec_dststt,
+ &B6_vec_dststt,
+ &B7_vec_dststt,
+ &B8_vec_dststt,
+ &B9_vec_dststt,
+ &B10_vec_dststt,
+ &B11_vec_dststt,
+ &B12_vec_dststt,
+ &B13_vec_dststt,
+ &B14_vec_dststt,
+ &B15_vec_dststt,
+ &B16_vec_dststt,
+ &B17_vec_dststt,
+ &B18_vec_dststt,
+ &B19_vec_dststt,
+ &B20_vec_dststt,
+ &B1_vec_dstt,
+ &B2_vec_dstt,
+ &B3_vec_dstt,
+ &B4_vec_dstt,
+ &B5_vec_dstt,
+ &B6_vec_dstt,
+ &B7_vec_dstt,
+ &B8_vec_dstt,
+ &B9_vec_dstt,
+ &B10_vec_dstt,
+ &B11_vec_dstt,
+ &B12_vec_dstt,
+ &B13_vec_dstt,
+ &B14_vec_dstt,
+ &B15_vec_dstt,
+ &B16_vec_dstt,
+ &B17_vec_dstt,
+ &B18_vec_dstt,
+ &B19_vec_dstt,
+ &B20_vec_dstt,
+ &B_vec_vexptefp,
+ &B_vec_vrfim,
+ &B1_vec_lvx,
+ &B2_vec_lvx,
+ &B3_vec_lvx,
+ &B4_vec_lvx,
+ &B5_vec_lvx,
+ &B6_vec_lvx,
+ &B7_vec_lvx,
+ &B8_vec_lvx,
+ &B9_vec_lvx,
+ &B10_vec_lvx,
+ &B11_vec_lvx,
+ &B12_vec_lvx,
+ &B13_vec_lvx,
+ &B14_vec_lvx,
+ &B15_vec_lvx,
+ &B16_vec_lvx,
+ &B17_vec_lvx,
+ &B18_vec_lvx,
+ &B19_vec_lvx,
+ &B20_vec_lvx,
+ &B1_vec_lvewx,
+ &B2_vec_lvewx,
+ &B3_vec_lvewx,
+ &B1_vec_lvehx,
+ &B1_vec_lvebx,
+ &B2_vec_lvebx,
+ &B4_vec_lvewx,
+ &B5_vec_lvewx,
+ &B2_vec_lvehx,
+ &B1_vec_lvxl,
+ &B2_vec_lvxl,
+ &B3_vec_lvxl,
+ &B4_vec_lvxl,
+ &B5_vec_lvxl,
+ &B6_vec_lvxl,
+ &B7_vec_lvxl,
+ &B8_vec_lvxl,
+ &B9_vec_lvxl,
+ &B10_vec_lvxl,
+ &B11_vec_lvxl,
+ &B12_vec_lvxl,
+ &B13_vec_lvxl,
+ &B14_vec_lvxl,
+ &B15_vec_lvxl,
+ &B16_vec_lvxl,
+ &B17_vec_lvxl,
+ &B18_vec_lvxl,
+ &B19_vec_lvxl,
+ &B20_vec_lvxl,
+ &B_vec_vlogefp,
+ &B1_vec_lvsl,
+ &B2_vec_lvsl,
+ &B3_vec_lvsl,
+ &B4_vec_lvsl,
+ &B5_vec_lvsl,
+ &B6_vec_lvsl,
+ &B7_vec_lvsl,
+ &B8_vec_lvsl,
+ &B9_vec_lvsl,
+ &B1_vec_lvsr,
+ &B2_vec_lvsr,
+ &B3_vec_lvsr,
+ &B4_vec_lvsr,
+ &B5_vec_lvsr,
+ &B6_vec_lvsr,
+ &B7_vec_lvsr,
+ &B8_vec_lvsr,
+ &B9_vec_lvsr,
+ &B_vec_vmaddfp,
+ &B_vec_vmhaddshs,
+ &B1_vec_vmaxsh,
+ &B1_vec_vmaxuh,
+ &B1_vec_vmaxsw,
+ &B1_vec_vmaxuw,
+ &B1_vec_vmaxsb,
+ &B1_vec_vmaxub,
+ &B_vec_vmaxfp,
+ &B2_vec_vmaxsh,
+ &B3_vec_vmaxsh,
+ &B2_vec_vmaxsw,
+ &B3_vec_vmaxsw,
+ &B2_vec_vmaxsb,
+ &B3_vec_vmaxsb,
+ &B2_vec_vmaxuh,
+ &B3_vec_vmaxuh,
+ &B2_vec_vmaxuw,
+ &B3_vec_vmaxuw,
+ &B2_vec_vmaxub,
+ &B3_vec_vmaxub,
+ &B1_vec_vmrghh,
+ &B1_vec_vmrghw,
+ &B1_vec_vmrghb,
+ &B2_vec_vmrghw,
+ &B2_vec_vmrghh,
+ &B3_vec_vmrghh,
+ &B3_vec_vmrghw,
+ &B2_vec_vmrghb,
+ &B4_vec_vmrghh,
+ &B4_vec_vmrghw,
+ &B3_vec_vmrghb,
+ &B1_vec_vmrglh,
+ &B1_vec_vmrglw,
+ &B1_vec_vmrglb,
+ &B2_vec_vmrglw,
+ &B2_vec_vmrglh,
+ &B3_vec_vmrglh,
+ &B3_vec_vmrglw,
+ &B2_vec_vmrglb,
+ &B4_vec_vmrglh,
+ &B4_vec_vmrglw,
+ &B3_vec_vmrglb,
+ &B_vec_mfvscr,
+ &B1_vec_vminsh,
+ &B1_vec_vminuh,
+ &B1_vec_vminsw,
+ &B1_vec_vminuw,
+ &B1_vec_vminsb,
+ &B1_vec_vminub,
+ &B_vec_vminfp,
+ &B2_vec_vminsh,
+ &B3_vec_vminsh,
+ &B2_vec_vminsw,
+ &B3_vec_vminsw,
+ &B2_vec_vminsb,
+ &B3_vec_vminsb,
+ &B2_vec_vminuh,
+ &B3_vec_vminuh,
+ &B2_vec_vminuw,
+ &B3_vec_vminuw,
+ &B2_vec_vminub,
+ &B3_vec_vminub,
+ &B1_vec_vmladduhm,
+ &B2_vec_vmladduhm,
+ &B3_vec_vmladduhm,
+ &B4_vec_vmladduhm,
+ &B_vec_vmhraddshs,
+ &B_vec_vmsumshm,
+ &B_vec_vmsummbm,
+ &B_vec_vmsumuhm,
+ &B_vec_vmsumubm,
+ &B_vec_vmsumshs,
+ &B_vec_vmsumuhs,
+ &B1_vec_mtvscr,
+ &B2_vec_mtvscr,
+ &B3_vec_mtvscr,
+ &B4_vec_mtvscr,
+ &B5_vec_mtvscr,
+ &B6_vec_mtvscr,
+ &B7_vec_mtvscr,
+ &B8_vec_mtvscr,
+ &B9_vec_mtvscr,
+ &B10_vec_mtvscr,
+ &B_vec_vmulesh,
+ &B_vec_vmulesb,
+ &B_vec_vmuleuh,
+ &B_vec_vmuleub,
+ &B_vec_vmulosh,
+ &B_vec_vmulosb,
+ &B_vec_vmulouh,
+ &B_vec_vmuloub,
+ &B_vec_vnmsubfp,
+ &B1_vec_vnor,
+ &B2_vec_vnor,
+ &B3_vec_vnor,
+ &B4_vec_vnor,
+ &B5_vec_vnor,
+ &B6_vec_vnor,
+ &B7_vec_vnor,
+ &B8_vec_vnor,
+ &B9_vec_vnor,
+ &B10_vec_vnor,
+ &B1_vec_vor,
+ &B2_vec_vor,
+ &B3_vec_vor,
+ &B4_vec_vor,
+ &B5_vec_vor,
+ &B6_vec_vor,
+ &B7_vec_vor,
+ &B8_vec_vor,
+ &B9_vec_vor,
+ &B10_vec_vor,
+ &B11_vec_vor,
+ &B12_vec_vor,
+ &B13_vec_vor,
+ &B14_vec_vor,
+ &B15_vec_vor,
+ &B16_vec_vor,
+ &B17_vec_vor,
+ &B18_vec_vor,
+ &B19_vec_vor,
+ &B20_vec_vor,
+ &B21_vec_vor,
+ &B22_vec_vor,
+ &B23_vec_vor,
+ &B24_vec_vor,
+ &B1_vec_vpkuhum,
+ &B1_vec_vpkuwum,
+ &B2_vec_vpkuhum,
+ &B2_vec_vpkuwum,
+ &B3_vec_vpkuhum,
+ &B3_vec_vpkuwum,
+ &B_vec_vpkpx,
+ &B_vec_vpkshss,
+ &B_vec_vpkswss,
+ &B_vec_vpkuhus,
+ &B_vec_vpkuwus,
+ &B_vec_vpkshus,
+ &B_vec_vpkswus,
+ &B1_vec_vperm,
+ &B2_vec_vperm,
+ &B3_vec_vperm,
+ &B4_vec_vperm,
+ &B5_vec_vperm,
+ &B6_vec_vperm,
+ &B7_vec_vperm,
+ &B8_vec_vperm,
+ &B9_vec_vperm,
+ &B10_vec_vperm,
+ &B11_vec_vperm,
+ &B_vec_vrefp,
+ &B1_vec_vrlh,
+ &B1_vec_vrlw,
+ &B1_vec_vrlb,
+ &B2_vec_vrlh,
+ &B2_vec_vrlw,
+ &B2_vec_vrlb,
+ &B_vec_vrfin,
+ &B_vec_vrsqrtefp,
+ &B1_vec_vsel,
+ &B2_vec_vsel,
+ &B3_vec_vsel,
+ &B4_vec_vsel,
+ &B5_vec_vsel,
+ &B6_vec_vsel,
+ &B7_vec_vsel,
+ &B8_vec_vsel,
+ &B9_vec_vsel,
+ &B10_vec_vsel,
+ &B11_vec_vsel,
+ &B12_vec_vsel,
+ &B13_vec_vsel,
+ &B14_vec_vsel,
+ &B15_vec_vsel,
+ &B16_vec_vsel,
+ &B17_vec_vsel,
+ &B18_vec_vsel,
+ &B19_vec_vsel,
+ &B20_vec_vsel,
+ &B1_vec_vslh,
+ &B1_vec_vslw,
+ &B1_vec_vslb,
+ &B2_vec_vslh,
+ &B2_vec_vslw,
+ &B2_vec_vslb,
+ &B1_vec_vsldoi,
+ &B2_vec_vsldoi,
+ &B3_vec_vsldoi,
+ &B4_vec_vsldoi,
+ &B5_vec_vsldoi,
+ &B6_vec_vsldoi,
+ &B7_vec_vsldoi,
+ &B8_vec_vsldoi,
+ &B9_vec_vsldoi,
+ &B10_vec_vsldoi,
+ &B11_vec_vsldoi,
+ &B1_vec_vsl,
+ &B2_vec_vsl,
+ &B3_vec_vsl,
+ &B4_vec_vsl,
+ &B5_vec_vsl,
+ &B6_vec_vsl,
+ &B7_vec_vsl,
+ &B8_vec_vsl,
+ &B9_vec_vsl,
+ &B10_vec_vsl,
+ &B11_vec_vsl,
+ &B12_vec_vsl,
+ &B13_vec_vsl,
+ &B14_vec_vsl,
+ &B15_vec_vsl,
+ &B16_vec_vsl,
+ &B17_vec_vsl,
+ &B18_vec_vsl,
+ &B19_vec_vsl,
+ &B20_vec_vsl,
+ &B21_vec_vsl,
+ &B22_vec_vsl,
+ &B23_vec_vsl,
+ &B24_vec_vsl,
+ &B25_vec_vsl,
+ &B26_vec_vsl,
+ &B27_vec_vsl,
+ &B28_vec_vsl,
+ &B29_vec_vsl,
+ &B30_vec_vsl,
+ &B1_vec_vslo,
+ &B2_vec_vslo,
+ &B3_vec_vslo,
+ &B4_vec_vslo,
+ &B5_vec_vslo,
+ &B6_vec_vslo,
+ &B7_vec_vslo,
+ &B8_vec_vslo,
+ &B9_vec_vslo,
+ &B10_vec_vslo,
+ &B11_vec_vslo,
+ &B12_vec_vslo,
+ &B13_vec_vslo,
+ &B14_vec_vslo,
+ &B15_vec_vslo,
+ &B16_vec_vslo,
+ &B1_vec_vsplth,
+ &B1_vec_vspltw,
+ &B1_vec_vspltb,
+ &B2_vec_vspltw,
+ &B2_vec_vsplth,
+ &B3_vec_vsplth,
+ &B3_vec_vspltw,
+ &B2_vec_vspltb,
+ &B4_vec_vsplth,
+ &B4_vec_vspltw,
+ &B3_vec_vspltb,
+ &B_vec_vspltish,
+ &B_vec_vspltisw,
+ &B_vec_vspltisb,
+ &B_vec_splat_u16,
+ &B_vec_splat_u32,
+ &B_vec_splat_u8,
+ &B1_vec_vsrh,
+ &B1_vec_vsrw,
+ &B1_vec_vsrb,
+ &B2_vec_vsrh,
+ &B2_vec_vsrw,
+ &B2_vec_vsrb,
+ &B1_vec_vsrah,
+ &B1_vec_vsraw,
+ &B1_vec_vsrab,
+ &B2_vec_vsrah,
+ &B2_vec_vsraw,
+ &B2_vec_vsrab,
+ &B1_vec_vsr,
+ &B2_vec_vsr,
+ &B3_vec_vsr,
+ &B4_vec_vsr,
+ &B5_vec_vsr,
+ &B6_vec_vsr,
+ &B7_vec_vsr,
+ &B8_vec_vsr,
+ &B9_vec_vsr,
+ &B10_vec_vsr,
+ &B11_vec_vsr,
+ &B12_vec_vsr,
+ &B13_vec_vsr,
+ &B14_vec_vsr,
+ &B15_vec_vsr,
+ &B16_vec_vsr,
+ &B17_vec_vsr,
+ &B18_vec_vsr,
+ &B19_vec_vsr,
+ &B20_vec_vsr,
+ &B21_vec_vsr,
+ &B22_vec_vsr,
+ &B23_vec_vsr,
+ &B24_vec_vsr,
+ &B25_vec_vsr,
+ &B26_vec_vsr,
+ &B27_vec_vsr,
+ &B28_vec_vsr,
+ &B29_vec_vsr,
+ &B30_vec_vsr,
+ &B1_vec_vsro,
+ &B2_vec_vsro,
+ &B3_vec_vsro,
+ &B4_vec_vsro,
+ &B5_vec_vsro,
+ &B6_vec_vsro,
+ &B7_vec_vsro,
+ &B8_vec_vsro,
+ &B9_vec_vsro,
+ &B10_vec_vsro,
+ &B11_vec_vsro,
+ &B12_vec_vsro,
+ &B13_vec_vsro,
+ &B14_vec_vsro,
+ &B15_vec_vsro,
+ &B16_vec_vsro,
+ &B1_vec_stvx,
+ &B2_vec_stvx,
+ &B3_vec_stvx,
+ &B4_vec_stvx,
+ &B5_vec_stvx,
+ &B6_vec_stvx,
+ &B7_vec_stvx,
+ &B8_vec_stvx,
+ &B9_vec_stvx,
+ &B10_vec_stvx,
+ &B11_vec_stvx,
+ &B12_vec_stvx,
+ &B13_vec_stvx,
+ &B14_vec_stvx,
+ &B15_vec_stvx,
+ &B16_vec_stvx,
+ &B17_vec_stvx,
+ &B18_vec_stvx,
+ &B19_vec_stvx,
+ &B20_vec_stvx,
+ &B21_vec_stvx,
+ &B22_vec_stvx,
+ &B23_vec_stvx,
+ &B24_vec_stvx,
+ &B25_vec_stvx,
+ &B26_vec_stvx,
+ &B27_vec_stvx,
+ &B28_vec_stvx,
+ &B29_vec_stvx,
+ &B30_vec_stvx,
+ &B1_vec_stvebx,
+ &B2_vec_stvebx,
+ &B1_vec_stvewx,
+ &B2_vec_stvewx,
+ &B3_vec_stvewx,
+ &B4_vec_stvewx,
+ &B3_vec_stvebx,
+ &B4_vec_stvebx,
+ &B5_vec_stvewx,
+ &B1_vec_stvehx,
+ &B2_vec_stvehx,
+ &B3_vec_stvehx,
+ &B6_vec_stvewx,
+ &B7_vec_stvewx,
+ &B5_vec_stvebx,
+ &B4_vec_stvehx,
+ &B8_vec_stvewx,
+ &B9_vec_stvewx,
+ &B6_vec_stvebx,
+ &B1_vec_stvxl,
+ &B2_vec_stvxl,
+ &B3_vec_stvxl,
+ &B4_vec_stvxl,
+ &B5_vec_stvxl,
+ &B6_vec_stvxl,
+ &B7_vec_stvxl,
+ &B8_vec_stvxl,
+ &B9_vec_stvxl,
+ &B10_vec_stvxl,
+ &B11_vec_stvxl,
+ &B12_vec_stvxl,
+ &B13_vec_stvxl,
+ &B14_vec_stvxl,
+ &B15_vec_stvxl,
+ &B16_vec_stvxl,
+ &B17_vec_stvxl,
+ &B18_vec_stvxl,
+ &B19_vec_stvxl,
+ &B20_vec_stvxl,
+ &B21_vec_stvxl,
+ &B22_vec_stvxl,
+ &B23_vec_stvxl,
+ &B24_vec_stvxl,
+ &B25_vec_stvxl,
+ &B26_vec_stvxl,
+ &B27_vec_stvxl,
+ &B28_vec_stvxl,
+ &B29_vec_stvxl,
+ &B30_vec_stvxl,
+ &B1_vec_vsubuhm,
+ &B2_vec_vsubuhm,
+ &B1_vec_vsubuwm,
+ &B2_vec_vsubuwm,
+ &B1_vec_vsububm,
+ &B2_vec_vsububm,
+ &B_vec_vsubfp,
+ &B3_vec_vsubuhm,
+ &B4_vec_vsubuhm,
+ &B3_vec_vsubuwm,
+ &B4_vec_vsubuwm,
+ &B3_vec_vsububm,
+ &B4_vec_vsububm,
+ &B5_vec_vsubuhm,
+ &B6_vec_vsubuhm,
+ &B5_vec_vsubuwm,
+ &B6_vec_vsubuwm,
+ &B5_vec_vsububm,
+ &B6_vec_vsububm,
+ &B_vec_vsubcuw,
+ &B1_vec_vsubshs,
+ &B1_vec_vsubuhs,
+ &B1_vec_vsubsws,
+ &B1_vec_vsubuws,
+ &B1_vec_vsubsbs,
+ &B1_vec_vsububs,
+ &B2_vec_vsubshs,
+ &B3_vec_vsubshs,
+ &B2_vec_vsubsws,
+ &B3_vec_vsubsws,
+ &B2_vec_vsubsbs,
+ &B3_vec_vsubsbs,
+ &B2_vec_vsubuhs,
+ &B3_vec_vsubuhs,
+ &B2_vec_vsubuws,
+ &B3_vec_vsubuws,
+ &B2_vec_vsububs,
+ &B3_vec_vsububs,
+ &B_vec_vsum2sws,
+ &B_vec_vsum4shs,
+ &B_vec_vsum4sbs,
+ &B_vec_vsum4ubs,
+ &B_vec_vsumsws,
+ &B_vec_vrfiz,
+ &B1_vec_unpack2sh,
+ &B2_vec_unpack2sh,
+ &B1_vec_unpack2sl,
+ &B2_vec_unpack2sl,
+ &B1_vec_unpack2uh,
+ &B2_vec_unpack2uh,
+ &B1_vec_unpack2ul,
+ &B2_vec_unpack2ul,
+ &B1_vec_vupkhsh,
+ &B1_vec_vupkhsb,
+ &B_vec_vupkhpx,
+ &B2_vec_vupkhsh,
+ &B2_vec_vupkhsb,
+ &B1_vec_vupklsh,
+ &B1_vec_vupklsb,
+ &B_vec_vupklpx,
+ &B2_vec_vupklsh,
+ &B2_vec_vupklsb,
+ &B1_vec_vxor,
+ &B2_vec_vxor,
+ &B3_vec_vxor,
+ &B4_vec_vxor,
+ &B5_vec_vxor,
+ &B6_vec_vxor,
+ &B7_vec_vxor,
+ &B8_vec_vxor,
+ &B9_vec_vxor,
+ &B10_vec_vxor,
+ &B11_vec_vxor,
+ &B12_vec_vxor,
+ &B13_vec_vxor,
+ &B14_vec_vxor,
+ &B15_vec_vxor,
+ &B16_vec_vxor,
+ &B17_vec_vxor,
+ &B18_vec_vxor,
+ &B19_vec_vxor,
+ &B20_vec_vxor,
+ &B21_vec_vxor,
+ &B22_vec_vxor,
+ &B23_vec_vxor,
+ &B24_vec_vxor,
+};
+
+static const struct builtin *const O_vec_abs[4] = {
+ &B1_vec_abs,
+ &B2_vec_abs,
+ &B3_vec_abs,
+ &B4_vec_abs,
+};
+static const struct builtin *const O_vec_abss[3] = {
+ &B1_vec_abss,
+ &B2_vec_abss,
+ &B3_vec_abss,
+};
+static const struct builtin *const O_vec_add[19] = {
+ &B1_vec_vadduhm,
+ &B2_vec_vadduhm,
+ &B1_vec_vadduwm,
+ &B2_vec_vadduwm,
+ &B1_vec_vaddubm,
+ &B2_vec_vaddubm,
+ &B_vec_vaddfp,
+ &B3_vec_vadduhm,
+ &B4_vec_vadduhm,
+ &B3_vec_vadduwm,
+ &B4_vec_vadduwm,
+ &B3_vec_vaddubm,
+ &B4_vec_vaddubm,
+ &B5_vec_vadduhm,
+ &B6_vec_vadduhm,
+ &B5_vec_vadduwm,
+ &B6_vec_vadduwm,
+ &B5_vec_vaddubm,
+ &B6_vec_vaddubm,
+};
+static const struct builtin *const O_vec_addc[1] = {
+ &B_vec_vaddcuw,
+};
+static const struct builtin *const O_vec_adds[18] = {
+ &B1_vec_vaddshs,
+ &B1_vec_vadduhs,
+ &B1_vec_vaddsws,
+ &B1_vec_vadduws,
+ &B1_vec_vaddsbs,
+ &B1_vec_vaddubs,
+ &B2_vec_vaddshs,
+ &B3_vec_vaddshs,
+ &B2_vec_vaddsws,
+ &B3_vec_vaddsws,
+ &B2_vec_vaddsbs,
+ &B3_vec_vaddsbs,
+ &B2_vec_vadduhs,
+ &B3_vec_vadduhs,
+ &B2_vec_vadduws,
+ &B3_vec_vadduws,
+ &B2_vec_vaddubs,
+ &B3_vec_vaddubs,
+};
+static const struct builtin *const O_vec_all_eq[23] = {
+ &B1_vec_all_eq,
+ &B2_vec_all_eq,
+ &B3_vec_all_eq,
+ &B4_vec_all_eq,
+ &B5_vec_all_eq,
+ &B6_vec_all_eq,
+ &B7_vec_all_eq,
+ &B8_vec_all_eq,
+ &B9_vec_all_eq,
+ &B10_vec_all_eq,
+ &B11_vec_all_eq,
+ &B12_vec_all_eq,
+ &B13_vec_all_eq,
+ &B14_vec_all_eq,
+ &B15_vec_all_eq,
+ &B16_vec_all_eq,
+ &B17_vec_all_eq,
+ &B18_vec_all_eq,
+ &B19_vec_all_eq,
+ &B20_vec_all_eq,
+ &B21_vec_all_eq,
+ &B22_vec_all_eq,
+ &B23_vec_all_eq,
+};
+static const struct builtin *const O_vec_all_ge[19] = {
+ &B1_vec_all_ge,
+ &B2_vec_all_ge,
+ &B3_vec_all_ge,
+ &B4_vec_all_ge,
+ &B5_vec_all_ge,
+ &B6_vec_all_ge,
+ &B7_vec_all_ge,
+ &B8_vec_all_ge,
+ &B9_vec_all_ge,
+ &B10_vec_all_ge,
+ &B11_vec_all_ge,
+ &B12_vec_all_ge,
+ &B13_vec_all_ge,
+ &B14_vec_all_ge,
+ &B15_vec_all_ge,
+ &B16_vec_all_ge,
+ &B17_vec_all_ge,
+ &B18_vec_all_ge,
+ &B19_vec_all_ge,
+};
+static const struct builtin *const O_vec_all_gt[19] = {
+ &B1_vec_all_gt,
+ &B2_vec_all_gt,
+ &B3_vec_all_gt,
+ &B4_vec_all_gt,
+ &B5_vec_all_gt,
+ &B6_vec_all_gt,
+ &B7_vec_all_gt,
+ &B8_vec_all_gt,
+ &B9_vec_all_gt,
+ &B10_vec_all_gt,
+ &B11_vec_all_gt,
+ &B12_vec_all_gt,
+ &B13_vec_all_gt,
+ &B14_vec_all_gt,
+ &B15_vec_all_gt,
+ &B16_vec_all_gt,
+ &B17_vec_all_gt,
+ &B18_vec_all_gt,
+ &B19_vec_all_gt,
+};
+static const struct builtin *const O_vec_all_in[1] = {
+ &B_vec_all_in,
+};
+static const struct builtin *const O_vec_all_le[19] = {
+ &B1_vec_all_le,
+ &B2_vec_all_le,
+ &B3_vec_all_le,
+ &B4_vec_all_le,
+ &B5_vec_all_le,
+ &B6_vec_all_le,
+ &B7_vec_all_le,
+ &B8_vec_all_le,
+ &B9_vec_all_le,
+ &B10_vec_all_le,
+ &B11_vec_all_le,
+ &B12_vec_all_le,
+ &B13_vec_all_le,
+ &B14_vec_all_le,
+ &B15_vec_all_le,
+ &B16_vec_all_le,
+ &B17_vec_all_le,
+ &B18_vec_all_le,
+ &B19_vec_all_le,
+};
+static const struct builtin *const O_vec_all_lt[19] = {
+ &B1_vec_all_lt,
+ &B2_vec_all_lt,
+ &B3_vec_all_lt,
+ &B4_vec_all_lt,
+ &B5_vec_all_lt,
+ &B6_vec_all_lt,
+ &B7_vec_all_lt,
+ &B8_vec_all_lt,
+ &B9_vec_all_lt,
+ &B10_vec_all_lt,
+ &B11_vec_all_lt,
+ &B12_vec_all_lt,
+ &B13_vec_all_lt,
+ &B14_vec_all_lt,
+ &B15_vec_all_lt,
+ &B16_vec_all_lt,
+ &B17_vec_all_lt,
+ &B18_vec_all_lt,
+ &B19_vec_all_lt,
+};
+static const struct builtin *const O_vec_all_nan[1] = {
+ &B_vec_all_nan,
+};
+static const struct builtin *const O_vec_all_ne[23] = {
+ &B1_vec_all_ne,
+ &B2_vec_all_ne,
+ &B3_vec_all_ne,
+ &B4_vec_all_ne,
+ &B5_vec_all_ne,
+ &B6_vec_all_ne,
+ &B7_vec_all_ne,
+ &B8_vec_all_ne,
+ &B9_vec_all_ne,
+ &B10_vec_all_ne,
+ &B11_vec_all_ne,
+ &B12_vec_all_ne,
+ &B13_vec_all_ne,
+ &B14_vec_all_ne,
+ &B15_vec_all_ne,
+ &B16_vec_all_ne,
+ &B17_vec_all_ne,
+ &B18_vec_all_ne,
+ &B19_vec_all_ne,
+ &B20_vec_all_ne,
+ &B21_vec_all_ne,
+ &B22_vec_all_ne,
+ &B23_vec_all_ne,
+};
+static const struct builtin *const O_vec_all_nge[1] = {
+ &B_vec_all_nge,
+};
+static const struct builtin *const O_vec_all_ngt[1] = {
+ &B_vec_all_ngt,
+};
+static const struct builtin *const O_vec_all_nle[1] = {
+ &B_vec_all_nle,
+};
+static const struct builtin *const O_vec_all_nlt[1] = {
+ &B_vec_all_nlt,
+};
+static const struct builtin *const O_vec_all_numeric[1] = {
+ &B_vec_all_numeric,
+};
+static const struct builtin *const O_vec_and[24] = {
+ &B1_vec_vand,
+ &B2_vec_vand,
+ &B3_vec_vand,
+ &B4_vec_vand,
+ &B5_vec_vand,
+ &B6_vec_vand,
+ &B7_vec_vand,
+ &B8_vec_vand,
+ &B9_vec_vand,
+ &B10_vec_vand,
+ &B11_vec_vand,
+ &B12_vec_vand,
+ &B13_vec_vand,
+ &B14_vec_vand,
+ &B15_vec_vand,
+ &B16_vec_vand,
+ &B17_vec_vand,
+ &B18_vec_vand,
+ &B19_vec_vand,
+ &B20_vec_vand,
+ &B21_vec_vand,
+ &B22_vec_vand,
+ &B23_vec_vand,
+ &B24_vec_vand,
+};
+static const struct builtin *const O_vec_andc[24] = {
+ &B1_vec_vandc,
+ &B2_vec_vandc,
+ &B3_vec_vandc,
+ &B4_vec_vandc,
+ &B5_vec_vandc,
+ &B6_vec_vandc,
+ &B7_vec_vandc,
+ &B8_vec_vandc,
+ &B9_vec_vandc,
+ &B10_vec_vandc,
+ &B11_vec_vandc,
+ &B12_vec_vandc,
+ &B13_vec_vandc,
+ &B14_vec_vandc,
+ &B15_vec_vandc,
+ &B16_vec_vandc,
+ &B17_vec_vandc,
+ &B18_vec_vandc,
+ &B19_vec_vandc,
+ &B20_vec_vandc,
+ &B21_vec_vandc,
+ &B22_vec_vandc,
+ &B23_vec_vandc,
+ &B24_vec_vandc,
+};
+static const struct builtin *const O_vec_any_eq[23] = {
+ &B1_vec_any_eq,
+ &B2_vec_any_eq,
+ &B3_vec_any_eq,
+ &B4_vec_any_eq,
+ &B5_vec_any_eq,
+ &B6_vec_any_eq,
+ &B7_vec_any_eq,
+ &B8_vec_any_eq,
+ &B9_vec_any_eq,
+ &B10_vec_any_eq,
+ &B11_vec_any_eq,
+ &B12_vec_any_eq,
+ &B13_vec_any_eq,
+ &B14_vec_any_eq,
+ &B15_vec_any_eq,
+ &B16_vec_any_eq,
+ &B17_vec_any_eq,
+ &B18_vec_any_eq,
+ &B19_vec_any_eq,
+ &B20_vec_any_eq,
+ &B21_vec_any_eq,
+ &B22_vec_any_eq,
+ &B23_vec_any_eq,
+};
+static const struct builtin *const O_vec_any_ge[19] = {
+ &B1_vec_any_ge,
+ &B2_vec_any_ge,
+ &B3_vec_any_ge,
+ &B4_vec_any_ge,
+ &B5_vec_any_ge,
+ &B6_vec_any_ge,
+ &B7_vec_any_ge,
+ &B8_vec_any_ge,
+ &B9_vec_any_ge,
+ &B10_vec_any_ge,
+ &B11_vec_any_ge,
+ &B12_vec_any_ge,
+ &B13_vec_any_ge,
+ &B14_vec_any_ge,
+ &B15_vec_any_ge,
+ &B16_vec_any_ge,
+ &B17_vec_any_ge,
+ &B18_vec_any_ge,
+ &B19_vec_any_ge,
+};
+static const struct builtin *const O_vec_any_gt[19] = {
+ &B1_vec_any_gt,
+ &B2_vec_any_gt,
+ &B3_vec_any_gt,
+ &B4_vec_any_gt,
+ &B5_vec_any_gt,
+ &B6_vec_any_gt,
+ &B7_vec_any_gt,
+ &B8_vec_any_gt,
+ &B9_vec_any_gt,
+ &B10_vec_any_gt,
+ &B11_vec_any_gt,
+ &B12_vec_any_gt,
+ &B13_vec_any_gt,
+ &B14_vec_any_gt,
+ &B15_vec_any_gt,
+ &B16_vec_any_gt,
+ &B17_vec_any_gt,
+ &B18_vec_any_gt,
+ &B19_vec_any_gt,
+};
+static const struct builtin *const O_vec_any_le[19] = {
+ &B1_vec_any_le,
+ &B2_vec_any_le,
+ &B3_vec_any_le,
+ &B4_vec_any_le,
+ &B5_vec_any_le,
+ &B6_vec_any_le,
+ &B7_vec_any_le,
+ &B8_vec_any_le,
+ &B9_vec_any_le,
+ &B10_vec_any_le,
+ &B11_vec_any_le,
+ &B12_vec_any_le,
+ &B13_vec_any_le,
+ &B14_vec_any_le,
+ &B15_vec_any_le,
+ &B16_vec_any_le,
+ &B17_vec_any_le,
+ &B18_vec_any_le,
+ &B19_vec_any_le,
+};
+static const struct builtin *const O_vec_any_lt[19] = {
+ &B1_vec_any_lt,
+ &B2_vec_any_lt,
+ &B3_vec_any_lt,
+ &B4_vec_any_lt,
+ &B5_vec_any_lt,
+ &B6_vec_any_lt,
+ &B7_vec_any_lt,
+ &B8_vec_any_lt,
+ &B9_vec_any_lt,
+ &B10_vec_any_lt,
+ &B11_vec_any_lt,
+ &B12_vec_any_lt,
+ &B13_vec_any_lt,
+ &B14_vec_any_lt,
+ &B15_vec_any_lt,
+ &B16_vec_any_lt,
+ &B17_vec_any_lt,
+ &B18_vec_any_lt,
+ &B19_vec_any_lt,
+};
+static const struct builtin *const O_vec_any_nan[1] = {
+ &B_vec_any_nan,
+};
+static const struct builtin *const O_vec_any_ne[23] = {
+ &B1_vec_any_ne,
+ &B2_vec_any_ne,
+ &B3_vec_any_ne,
+ &B4_vec_any_ne,
+ &B5_vec_any_ne,
+ &B6_vec_any_ne,
+ &B7_vec_any_ne,
+ &B8_vec_any_ne,
+ &B9_vec_any_ne,
+ &B10_vec_any_ne,
+ &B11_vec_any_ne,
+ &B12_vec_any_ne,
+ &B13_vec_any_ne,
+ &B14_vec_any_ne,
+ &B15_vec_any_ne,
+ &B16_vec_any_ne,
+ &B17_vec_any_ne,
+ &B18_vec_any_ne,
+ &B19_vec_any_ne,
+ &B20_vec_any_ne,
+ &B21_vec_any_ne,
+ &B22_vec_any_ne,
+ &B23_vec_any_ne,
+};
+static const struct builtin *const O_vec_any_nge[1] = {
+ &B_vec_any_nge,
+};
+static const struct builtin *const O_vec_any_ngt[1] = {
+ &B_vec_any_ngt,
+};
+static const struct builtin *const O_vec_any_nle[1] = {
+ &B_vec_any_nle,
+};
+static const struct builtin *const O_vec_any_nlt[1] = {
+ &B_vec_any_nlt,
+};
+static const struct builtin *const O_vec_any_numeric[1] = {
+ &B_vec_any_numeric,
+};
+static const struct builtin *const O_vec_any_out[1] = {
+ &B_vec_any_out,
+};
+static const struct builtin *const O_vec_avg[6] = {
+ &B_vec_vavgsh,
+ &B_vec_vavgsw,
+ &B_vec_vavgsb,
+ &B_vec_vavguh,
+ &B_vec_vavguw,
+ &B_vec_vavgub,
+};
+static const struct builtin *const O_vec_ceil[1] = {
+ &B_vec_vrfip,
+};
+static const struct builtin *const O_vec_cmpb[1] = {
+ &B_vec_vcmpbfp,
+};
+static const struct builtin *const O_vec_cmpeq[7] = {
+ &B_vec_vcmpeqfp,
+ &B1_vec_vcmpequh,
+ &B1_vec_vcmpequw,
+ &B1_vec_vcmpequb,
+ &B2_vec_vcmpequh,
+ &B2_vec_vcmpequw,
+ &B2_vec_vcmpequb,
+};
+static const struct builtin *const O_vec_cmpge[1] = {
+ &B_vec_vcmpgefp,
+};
+static const struct builtin *const O_vec_cmpgt[7] = {
+ &B_vec_vcmpgtfp,
+ &B_vec_vcmpgtsh,
+ &B_vec_vcmpgtsw,
+ &B_vec_vcmpgtsb,
+ &B_vec_vcmpgtuh,
+ &B_vec_vcmpgtuw,
+ &B_vec_vcmpgtub,
+};
+static const struct builtin *const O_vec_cmple[1] = {
+ &B_vec_cmple,
+};
+static const struct builtin *const O_vec_cmplt[7] = {
+ &B1_vec_cmplt,
+ &B2_vec_cmplt,
+ &B3_vec_cmplt,
+ &B4_vec_cmplt,
+ &B5_vec_cmplt,
+ &B6_vec_cmplt,
+ &B7_vec_cmplt,
+};
+static const struct builtin *const O_vec_ctf[2] = {
+ &B_vec_vcfsx,
+ &B_vec_vcfux,
+};
+static const struct builtin *const O_vec_cts[1] = {
+ &B_vec_vctsxs,
+};
+static const struct builtin *const O_vec_ctu[1] = {
+ &B_vec_vctuxs,
+};
+static const struct builtin *const O_vec_dss[1] = {
+ &B_vec_dss,
+};
+static const struct builtin *const O_vec_dssall[1] = {
+ &B_vec_dssall,
+};
+static const struct builtin *const O_vec_dst[20] = {
+ &B1_vec_dst,
+ &B2_vec_dst,
+ &B3_vec_dst,
+ &B4_vec_dst,
+ &B5_vec_dst,
+ &B6_vec_dst,
+ &B7_vec_dst,
+ &B8_vec_dst,
+ &B9_vec_dst,
+ &B10_vec_dst,
+ &B11_vec_dst,
+ &B12_vec_dst,
+ &B13_vec_dst,
+ &B14_vec_dst,
+ &B15_vec_dst,
+ &B16_vec_dst,
+ &B17_vec_dst,
+ &B18_vec_dst,
+ &B19_vec_dst,
+ &B20_vec_dst,
+};
+static const struct builtin *const O_vec_dstst[20] = {
+ &B1_vec_dstst,
+ &B2_vec_dstst,
+ &B3_vec_dstst,
+ &B4_vec_dstst,
+ &B5_vec_dstst,
+ &B6_vec_dstst,
+ &B7_vec_dstst,
+ &B8_vec_dstst,
+ &B9_vec_dstst,
+ &B10_vec_dstst,
+ &B11_vec_dstst,
+ &B12_vec_dstst,
+ &B13_vec_dstst,
+ &B14_vec_dstst,
+ &B15_vec_dstst,
+ &B16_vec_dstst,
+ &B17_vec_dstst,
+ &B18_vec_dstst,
+ &B19_vec_dstst,
+ &B20_vec_dstst,
+};
+static const struct builtin *const O_vec_dststt[20] = {
+ &B1_vec_dststt,
+ &B2_vec_dststt,
+ &B3_vec_dststt,
+ &B4_vec_dststt,
+ &B5_vec_dststt,
+ &B6_vec_dststt,
+ &B7_vec_dststt,
+ &B8_vec_dststt,
+ &B9_vec_dststt,
+ &B10_vec_dststt,
+ &B11_vec_dststt,
+ &B12_vec_dststt,
+ &B13_vec_dststt,
+ &B14_vec_dststt,
+ &B15_vec_dststt,
+ &B16_vec_dststt,
+ &B17_vec_dststt,
+ &B18_vec_dststt,
+ &B19_vec_dststt,
+ &B20_vec_dststt,
+};
+static const struct builtin *const O_vec_dstt[20] = {
+ &B1_vec_dstt,
+ &B2_vec_dstt,
+ &B3_vec_dstt,
+ &B4_vec_dstt,
+ &B5_vec_dstt,
+ &B6_vec_dstt,
+ &B7_vec_dstt,
+ &B8_vec_dstt,
+ &B9_vec_dstt,
+ &B10_vec_dstt,
+ &B11_vec_dstt,
+ &B12_vec_dstt,
+ &B13_vec_dstt,
+ &B14_vec_dstt,
+ &B15_vec_dstt,
+ &B16_vec_dstt,
+ &B17_vec_dstt,
+ &B18_vec_dstt,
+ &B19_vec_dstt,
+ &B20_vec_dstt,
+};
+static const struct builtin *const O_vec_expte[1] = {
+ &B_vec_vexptefp,
+};
+static const struct builtin *const O_vec_floor[1] = {
+ &B_vec_vrfim,
+};
+static const struct builtin *const O_vec_ld[20] = {
+ &B1_vec_lvx,
+ &B2_vec_lvx,
+ &B3_vec_lvx,
+ &B4_vec_lvx,
+ &B5_vec_lvx,
+ &B6_vec_lvx,
+ &B7_vec_lvx,
+ &B8_vec_lvx,
+ &B9_vec_lvx,
+ &B10_vec_lvx,
+ &B11_vec_lvx,
+ &B12_vec_lvx,
+ &B13_vec_lvx,
+ &B14_vec_lvx,
+ &B15_vec_lvx,
+ &B16_vec_lvx,
+ &B17_vec_lvx,
+ &B18_vec_lvx,
+ &B19_vec_lvx,
+ &B20_vec_lvx,
+};
+static const struct builtin *const O_vec_lde[9] = {
+ &B1_vec_lvewx,
+ &B2_vec_lvewx,
+ &B3_vec_lvewx,
+ &B1_vec_lvehx,
+ &B1_vec_lvebx,
+ &B2_vec_lvebx,
+ &B4_vec_lvewx,
+ &B5_vec_lvewx,
+ &B2_vec_lvehx,
+};
+static const struct builtin *const O_vec_ldl[20] = {
+ &B1_vec_lvxl,
+ &B2_vec_lvxl,
+ &B3_vec_lvxl,
+ &B4_vec_lvxl,
+ &B5_vec_lvxl,
+ &B6_vec_lvxl,
+ &B7_vec_lvxl,
+ &B8_vec_lvxl,
+ &B9_vec_lvxl,
+ &B10_vec_lvxl,
+ &B11_vec_lvxl,
+ &B12_vec_lvxl,
+ &B13_vec_lvxl,
+ &B14_vec_lvxl,
+ &B15_vec_lvxl,
+ &B16_vec_lvxl,
+ &B17_vec_lvxl,
+ &B18_vec_lvxl,
+ &B19_vec_lvxl,
+ &B20_vec_lvxl,
+};
+static const struct builtin *const O_vec_loge[1] = {
+ &B_vec_vlogefp,
+};
+static const struct builtin *const O_vec_lvebx[2] = {
+ &B1_vec_lvebx,
+ &B2_vec_lvebx,
+};
+static const struct builtin *const O_vec_lvehx[2] = {
+ &B1_vec_lvehx,
+ &B2_vec_lvehx,
+};
+static const struct builtin *const O_vec_lvewx[5] = {
+ &B1_vec_lvewx,
+ &B2_vec_lvewx,
+ &B3_vec_lvewx,
+ &B4_vec_lvewx,
+ &B5_vec_lvewx,
+};
+static const struct builtin *const O_vec_lvsl[9] = {
+ &B1_vec_lvsl,
+ &B2_vec_lvsl,
+ &B3_vec_lvsl,
+ &B4_vec_lvsl,
+ &B5_vec_lvsl,
+ &B6_vec_lvsl,
+ &B7_vec_lvsl,
+ &B8_vec_lvsl,
+ &B9_vec_lvsl,
+};
+static const struct builtin *const O_vec_lvsr[9] = {
+ &B1_vec_lvsr,
+ &B2_vec_lvsr,
+ &B3_vec_lvsr,
+ &B4_vec_lvsr,
+ &B5_vec_lvsr,
+ &B6_vec_lvsr,
+ &B7_vec_lvsr,
+ &B8_vec_lvsr,
+ &B9_vec_lvsr,
+};
+static const struct builtin *const O_vec_lvx[20] = {
+ &B1_vec_lvx,
+ &B2_vec_lvx,
+ &B3_vec_lvx,
+ &B4_vec_lvx,
+ &B5_vec_lvx,
+ &B6_vec_lvx,
+ &B7_vec_lvx,
+ &B8_vec_lvx,
+ &B9_vec_lvx,
+ &B10_vec_lvx,
+ &B11_vec_lvx,
+ &B12_vec_lvx,
+ &B13_vec_lvx,
+ &B14_vec_lvx,
+ &B15_vec_lvx,
+ &B16_vec_lvx,
+ &B17_vec_lvx,
+ &B18_vec_lvx,
+ &B19_vec_lvx,
+ &B20_vec_lvx,
+};
+static const struct builtin *const O_vec_lvxl[20] = {
+ &B1_vec_lvxl,
+ &B2_vec_lvxl,
+ &B3_vec_lvxl,
+ &B4_vec_lvxl,
+ &B5_vec_lvxl,
+ &B6_vec_lvxl,
+ &B7_vec_lvxl,
+ &B8_vec_lvxl,
+ &B9_vec_lvxl,
+ &B10_vec_lvxl,
+ &B11_vec_lvxl,
+ &B12_vec_lvxl,
+ &B13_vec_lvxl,
+ &B14_vec_lvxl,
+ &B15_vec_lvxl,
+ &B16_vec_lvxl,
+ &B17_vec_lvxl,
+ &B18_vec_lvxl,
+ &B19_vec_lvxl,
+ &B20_vec_lvxl,
+};
+static const struct builtin *const O_vec_madd[1] = {
+ &B_vec_vmaddfp,
+};
+static const struct builtin *const O_vec_madds[1] = {
+ &B_vec_vmhaddshs,
+};
+static const struct builtin *const O_vec_max[19] = {
+ &B1_vec_vmaxsh,
+ &B1_vec_vmaxuh,
+ &B1_vec_vmaxsw,
+ &B1_vec_vmaxuw,
+ &B1_vec_vmaxsb,
+ &B1_vec_vmaxub,
+ &B_vec_vmaxfp,
+ &B2_vec_vmaxsh,
+ &B3_vec_vmaxsh,
+ &B2_vec_vmaxsw,
+ &B3_vec_vmaxsw,
+ &B2_vec_vmaxsb,
+ &B3_vec_vmaxsb,
+ &B2_vec_vmaxuh,
+ &B3_vec_vmaxuh,
+ &B2_vec_vmaxuw,
+ &B3_vec_vmaxuw,
+ &B2_vec_vmaxub,
+ &B3_vec_vmaxub,
+};
+static const struct builtin *const O_vec_mergeh[11] = {
+ &B1_vec_vmrghh,
+ &B1_vec_vmrghw,
+ &B1_vec_vmrghb,
+ &B2_vec_vmrghw,
+ &B2_vec_vmrghh,
+ &B3_vec_vmrghh,
+ &B3_vec_vmrghw,
+ &B2_vec_vmrghb,
+ &B4_vec_vmrghh,
+ &B4_vec_vmrghw,
+ &B3_vec_vmrghb,
+};
+static const struct builtin *const O_vec_mergel[11] = {
+ &B1_vec_vmrglh,
+ &B1_vec_vmrglw,
+ &B1_vec_vmrglb,
+ &B2_vec_vmrglw,
+ &B2_vec_vmrglh,
+ &B3_vec_vmrglh,
+ &B3_vec_vmrglw,
+ &B2_vec_vmrglb,
+ &B4_vec_vmrglh,
+ &B4_vec_vmrglw,
+ &B3_vec_vmrglb,
+};
+static const struct builtin *const O_vec_mfvscr[1] = {
+ &B_vec_mfvscr,
+};
+static const struct builtin *const O_vec_min[19] = {
+ &B1_vec_vminsh,
+ &B1_vec_vminuh,
+ &B1_vec_vminsw,
+ &B1_vec_vminuw,
+ &B1_vec_vminsb,
+ &B1_vec_vminub,
+ &B_vec_vminfp,
+ &B2_vec_vminsh,
+ &B3_vec_vminsh,
+ &B2_vec_vminsw,
+ &B3_vec_vminsw,
+ &B2_vec_vminsb,
+ &B3_vec_vminsb,
+ &B2_vec_vminuh,
+ &B3_vec_vminuh,
+ &B2_vec_vminuw,
+ &B3_vec_vminuw,
+ &B2_vec_vminub,
+ &B3_vec_vminub,
+};
+static const struct builtin *const O_vec_mladd[4] = {
+ &B1_vec_vmladduhm,
+ &B2_vec_vmladduhm,
+ &B3_vec_vmladduhm,
+ &B4_vec_vmladduhm,
+};
+static const struct builtin *const O_vec_mradds[1] = {
+ &B_vec_vmhraddshs,
+};
+static const struct builtin *const O_vec_msum[4] = {
+ &B_vec_vmsumshm,
+ &B_vec_vmsummbm,
+ &B_vec_vmsumuhm,
+ &B_vec_vmsumubm,
+};
+static const struct builtin *const O_vec_msums[2] = {
+ &B_vec_vmsumshs,
+ &B_vec_vmsumuhs,
+};
+static const struct builtin *const O_vec_mtvscr[10] = {
+ &B1_vec_mtvscr,
+ &B2_vec_mtvscr,
+ &B3_vec_mtvscr,
+ &B4_vec_mtvscr,
+ &B5_vec_mtvscr,
+ &B6_vec_mtvscr,
+ &B7_vec_mtvscr,
+ &B8_vec_mtvscr,
+ &B9_vec_mtvscr,
+ &B10_vec_mtvscr,
+};
+static const struct builtin *const O_vec_mule[4] = {
+ &B_vec_vmulesh,
+ &B_vec_vmulesb,
+ &B_vec_vmuleuh,
+ &B_vec_vmuleub,
+};
+static const struct builtin *const O_vec_mulo[4] = {
+ &B_vec_vmulosh,
+ &B_vec_vmulosb,
+ &B_vec_vmulouh,
+ &B_vec_vmuloub,
+};
+static const struct builtin *const O_vec_nmsub[1] = {
+ &B_vec_vnmsubfp,
+};
+static const struct builtin *const O_vec_nor[10] = {
+ &B1_vec_vnor,
+ &B2_vec_vnor,
+ &B3_vec_vnor,
+ &B4_vec_vnor,
+ &B5_vec_vnor,
+ &B6_vec_vnor,
+ &B7_vec_vnor,
+ &B8_vec_vnor,
+ &B9_vec_vnor,
+ &B10_vec_vnor,
+};
+static const struct builtin *const O_vec_or[24] = {
+ &B1_vec_vor,
+ &B2_vec_vor,
+ &B3_vec_vor,
+ &B4_vec_vor,
+ &B5_vec_vor,
+ &B6_vec_vor,
+ &B7_vec_vor,
+ &B8_vec_vor,
+ &B9_vec_vor,
+ &B10_vec_vor,
+ &B11_vec_vor,
+ &B12_vec_vor,
+ &B13_vec_vor,
+ &B14_vec_vor,
+ &B15_vec_vor,
+ &B16_vec_vor,
+ &B17_vec_vor,
+ &B18_vec_vor,
+ &B19_vec_vor,
+ &B20_vec_vor,
+ &B21_vec_vor,
+ &B22_vec_vor,
+ &B23_vec_vor,
+ &B24_vec_vor,
+};
+static const struct builtin *const O_vec_pack[6] = {
+ &B1_vec_vpkuhum,
+ &B1_vec_vpkuwum,
+ &B2_vec_vpkuhum,
+ &B2_vec_vpkuwum,
+ &B3_vec_vpkuhum,
+ &B3_vec_vpkuwum,
+};
+static const struct builtin *const O_vec_packpx[1] = {
+ &B_vec_vpkpx,
+};
+static const struct builtin *const O_vec_packs[4] = {
+ &B_vec_vpkshss,
+ &B_vec_vpkswss,
+ &B_vec_vpkuhus,
+ &B_vec_vpkuwus,
+};
+static const struct builtin *const O_vec_packsu[4] = {
+ &B_vec_vpkshus,
+ &B_vec_vpkswus,
+ &B_vec_vpkuhus,
+ &B_vec_vpkuwus,
+};
+static const struct builtin *const O_vec_perm[11] = {
+ &B1_vec_vperm,
+ &B2_vec_vperm,
+ &B3_vec_vperm,
+ &B4_vec_vperm,
+ &B5_vec_vperm,
+ &B6_vec_vperm,
+ &B7_vec_vperm,
+ &B8_vec_vperm,
+ &B9_vec_vperm,
+ &B10_vec_vperm,
+ &B11_vec_vperm,
+};
+static const struct builtin *const O_vec_re[1] = {
+ &B_vec_vrefp,
+};
+static const struct builtin *const O_vec_rl[6] = {
+ &B1_vec_vrlh,
+ &B1_vec_vrlw,
+ &B1_vec_vrlb,
+ &B2_vec_vrlh,
+ &B2_vec_vrlw,
+ &B2_vec_vrlb,
+};
+static const struct builtin *const O_vec_round[1] = {
+ &B_vec_vrfin,
+};
+static const struct builtin *const O_vec_rsqrte[1] = {
+ &B_vec_vrsqrtefp,
+};
+static const struct builtin *const O_vec_sel[20] = {
+ &B1_vec_vsel,
+ &B2_vec_vsel,
+ &B3_vec_vsel,
+ &B4_vec_vsel,
+ &B5_vec_vsel,
+ &B6_vec_vsel,
+ &B7_vec_vsel,
+ &B8_vec_vsel,
+ &B9_vec_vsel,
+ &B10_vec_vsel,
+ &B11_vec_vsel,
+ &B12_vec_vsel,
+ &B13_vec_vsel,
+ &B14_vec_vsel,
+ &B15_vec_vsel,
+ &B16_vec_vsel,
+ &B17_vec_vsel,
+ &B18_vec_vsel,
+ &B19_vec_vsel,
+ &B20_vec_vsel,
+};
+static const struct builtin *const O_vec_sl[6] = {
+ &B1_vec_vslh,
+ &B1_vec_vslw,
+ &B1_vec_vslb,
+ &B2_vec_vslh,
+ &B2_vec_vslw,
+ &B2_vec_vslb,
+};
+static const struct builtin *const O_vec_sld[11] = {
+ &B1_vec_vsldoi,
+ &B2_vec_vsldoi,
+ &B3_vec_vsldoi,
+ &B4_vec_vsldoi,
+ &B5_vec_vsldoi,
+ &B6_vec_vsldoi,
+ &B7_vec_vsldoi,
+ &B8_vec_vsldoi,
+ &B9_vec_vsldoi,
+ &B10_vec_vsldoi,
+ &B11_vec_vsldoi,
+};
+static const struct builtin *const O_vec_sll[30] = {
+ &B1_vec_vsl,
+ &B2_vec_vsl,
+ &B3_vec_vsl,
+ &B4_vec_vsl,
+ &B5_vec_vsl,
+ &B6_vec_vsl,
+ &B7_vec_vsl,
+ &B8_vec_vsl,
+ &B9_vec_vsl,
+ &B10_vec_vsl,
+ &B11_vec_vsl,
+ &B12_vec_vsl,
+ &B13_vec_vsl,
+ &B14_vec_vsl,
+ &B15_vec_vsl,
+ &B16_vec_vsl,
+ &B17_vec_vsl,
+ &B18_vec_vsl,
+ &B19_vec_vsl,
+ &B20_vec_vsl,
+ &B21_vec_vsl,
+ &B22_vec_vsl,
+ &B23_vec_vsl,
+ &B24_vec_vsl,
+ &B25_vec_vsl,
+ &B26_vec_vsl,
+ &B27_vec_vsl,
+ &B28_vec_vsl,
+ &B29_vec_vsl,
+ &B30_vec_vsl,
+};
+static const struct builtin *const O_vec_slo[16] = {
+ &B1_vec_vslo,
+ &B2_vec_vslo,
+ &B3_vec_vslo,
+ &B4_vec_vslo,
+ &B5_vec_vslo,
+ &B6_vec_vslo,
+ &B7_vec_vslo,
+ &B8_vec_vslo,
+ &B9_vec_vslo,
+ &B10_vec_vslo,
+ &B11_vec_vslo,
+ &B12_vec_vslo,
+ &B13_vec_vslo,
+ &B14_vec_vslo,
+ &B15_vec_vslo,
+ &B16_vec_vslo,
+};
+static const struct builtin *const O_vec_splat[11] = {
+ &B1_vec_vsplth,
+ &B1_vec_vspltw,
+ &B1_vec_vspltb,
+ &B2_vec_vspltw,
+ &B2_vec_vsplth,
+ &B3_vec_vsplth,
+ &B3_vec_vspltw,
+ &B2_vec_vspltb,
+ &B4_vec_vsplth,
+ &B4_vec_vspltw,
+ &B3_vec_vspltb,
+};
+static const struct builtin *const O_vec_splat_s16[1] = {
+ &B_vec_vspltish,
+};
+static const struct builtin *const O_vec_splat_s32[1] = {
+ &B_vec_vspltisw,
+};
+static const struct builtin *const O_vec_splat_s8[1] = {
+ &B_vec_vspltisb,
+};
+static const struct builtin *const O_vec_splat_u16[1] = {
+ &B_vec_splat_u16,
+};
+static const struct builtin *const O_vec_splat_u32[1] = {
+ &B_vec_splat_u32,
+};
+static const struct builtin *const O_vec_splat_u8[1] = {
+ &B_vec_splat_u8,
+};
+static const struct builtin *const O_vec_sr[6] = {
+ &B1_vec_vsrh,
+ &B1_vec_vsrw,
+ &B1_vec_vsrb,
+ &B2_vec_vsrh,
+ &B2_vec_vsrw,
+ &B2_vec_vsrb,
+};
+static const struct builtin *const O_vec_sra[6] = {
+ &B1_vec_vsrah,
+ &B1_vec_vsraw,
+ &B1_vec_vsrab,
+ &B2_vec_vsrah,
+ &B2_vec_vsraw,
+ &B2_vec_vsrab,
+};
+static const struct builtin *const O_vec_srl[30] = {
+ &B1_vec_vsr,
+ &B2_vec_vsr,
+ &B3_vec_vsr,
+ &B4_vec_vsr,
+ &B5_vec_vsr,
+ &B6_vec_vsr,
+ &B7_vec_vsr,
+ &B8_vec_vsr,
+ &B9_vec_vsr,
+ &B10_vec_vsr,
+ &B11_vec_vsr,
+ &B12_vec_vsr,
+ &B13_vec_vsr,
+ &B14_vec_vsr,
+ &B15_vec_vsr,
+ &B16_vec_vsr,
+ &B17_vec_vsr,
+ &B18_vec_vsr,
+ &B19_vec_vsr,
+ &B20_vec_vsr,
+ &B21_vec_vsr,
+ &B22_vec_vsr,
+ &B23_vec_vsr,
+ &B24_vec_vsr,
+ &B25_vec_vsr,
+ &B26_vec_vsr,
+ &B27_vec_vsr,
+ &B28_vec_vsr,
+ &B29_vec_vsr,
+ &B30_vec_vsr,
+};
+static const struct builtin *const O_vec_sro[16] = {
+ &B1_vec_vsro,
+ &B2_vec_vsro,
+ &B3_vec_vsro,
+ &B4_vec_vsro,
+ &B5_vec_vsro,
+ &B6_vec_vsro,
+ &B7_vec_vsro,
+ &B8_vec_vsro,
+ &B9_vec_vsro,
+ &B10_vec_vsro,
+ &B11_vec_vsro,
+ &B12_vec_vsro,
+ &B13_vec_vsro,
+ &B14_vec_vsro,
+ &B15_vec_vsro,
+ &B16_vec_vsro,
+};
+static const struct builtin *const O_vec_st[30] = {
+ &B1_vec_stvx,
+ &B2_vec_stvx,
+ &B3_vec_stvx,
+ &B4_vec_stvx,
+ &B5_vec_stvx,
+ &B6_vec_stvx,
+ &B7_vec_stvx,
+ &B8_vec_stvx,
+ &B9_vec_stvx,
+ &B10_vec_stvx,
+ &B11_vec_stvx,
+ &B12_vec_stvx,
+ &B13_vec_stvx,
+ &B14_vec_stvx,
+ &B15_vec_stvx,
+ &B16_vec_stvx,
+ &B17_vec_stvx,
+ &B18_vec_stvx,
+ &B19_vec_stvx,
+ &B20_vec_stvx,
+ &B21_vec_stvx,
+ &B22_vec_stvx,
+ &B23_vec_stvx,
+ &B24_vec_stvx,
+ &B25_vec_stvx,
+ &B26_vec_stvx,
+ &B27_vec_stvx,
+ &B28_vec_stvx,
+ &B29_vec_stvx,
+ &B30_vec_stvx,
+};
+static const struct builtin *const O_vec_ste[19] = {
+ &B1_vec_stvebx,
+ &B2_vec_stvebx,
+ &B1_vec_stvewx,
+ &B2_vec_stvewx,
+ &B3_vec_stvewx,
+ &B4_vec_stvewx,
+ &B3_vec_stvebx,
+ &B4_vec_stvebx,
+ &B5_vec_stvewx,
+ &B1_vec_stvehx,
+ &B2_vec_stvehx,
+ &B3_vec_stvehx,
+ &B6_vec_stvewx,
+ &B7_vec_stvewx,
+ &B5_vec_stvebx,
+ &B4_vec_stvehx,
+ &B8_vec_stvewx,
+ &B9_vec_stvewx,
+ &B6_vec_stvebx,
+};
+static const struct builtin *const O_vec_stl[30] = {
+ &B1_vec_stvxl,
+ &B2_vec_stvxl,
+ &B3_vec_stvxl,
+ &B4_vec_stvxl,
+ &B5_vec_stvxl,
+ &B6_vec_stvxl,
+ &B7_vec_stvxl,
+ &B8_vec_stvxl,
+ &B9_vec_stvxl,
+ &B10_vec_stvxl,
+ &B11_vec_stvxl,
+ &B12_vec_stvxl,
+ &B13_vec_stvxl,
+ &B14_vec_stvxl,
+ &B15_vec_stvxl,
+ &B16_vec_stvxl,
+ &B17_vec_stvxl,
+ &B18_vec_stvxl,
+ &B19_vec_stvxl,
+ &B20_vec_stvxl,
+ &B21_vec_stvxl,
+ &B22_vec_stvxl,
+ &B23_vec_stvxl,
+ &B24_vec_stvxl,
+ &B25_vec_stvxl,
+ &B26_vec_stvxl,
+ &B27_vec_stvxl,
+ &B28_vec_stvxl,
+ &B29_vec_stvxl,
+ &B30_vec_stvxl,
+};
+static const struct builtin *const O_vec_stvebx[6] = {
+ &B1_vec_stvebx,
+ &B2_vec_stvebx,
+ &B3_vec_stvebx,
+ &B4_vec_stvebx,
+ &B5_vec_stvebx,
+ &B6_vec_stvebx,
+};
+static const struct builtin *const O_vec_stvehx[4] = {
+ &B1_vec_stvehx,
+ &B2_vec_stvehx,
+ &B3_vec_stvehx,
+ &B4_vec_stvehx,
+};
+static const struct builtin *const O_vec_stvewx[9] = {
+ &B1_vec_stvewx,
+ &B2_vec_stvewx,
+ &B3_vec_stvewx,
+ &B4_vec_stvewx,
+ &B5_vec_stvewx,
+ &B6_vec_stvewx,
+ &B7_vec_stvewx,
+ &B8_vec_stvewx,
+ &B9_vec_stvewx,
+};
+static const struct builtin *const O_vec_stvx[30] = {
+ &B1_vec_stvx,
+ &B2_vec_stvx,
+ &B3_vec_stvx,
+ &B4_vec_stvx,
+ &B5_vec_stvx,
+ &B6_vec_stvx,
+ &B7_vec_stvx,
+ &B8_vec_stvx,
+ &B9_vec_stvx,
+ &B10_vec_stvx,
+ &B11_vec_stvx,
+ &B12_vec_stvx,
+ &B13_vec_stvx,
+ &B14_vec_stvx,
+ &B15_vec_stvx,
+ &B16_vec_stvx,
+ &B17_vec_stvx,
+ &B18_vec_stvx,
+ &B19_vec_stvx,
+ &B20_vec_stvx,
+ &B21_vec_stvx,
+ &B22_vec_stvx,
+ &B23_vec_stvx,
+ &B24_vec_stvx,
+ &B25_vec_stvx,
+ &B26_vec_stvx,
+ &B27_vec_stvx,
+ &B28_vec_stvx,
+ &B29_vec_stvx,
+ &B30_vec_stvx,
+};
+static const struct builtin *const O_vec_stvxl[30] = {
+ &B1_vec_stvxl,
+ &B2_vec_stvxl,
+ &B3_vec_stvxl,
+ &B4_vec_stvxl,
+ &B5_vec_stvxl,
+ &B6_vec_stvxl,
+ &B7_vec_stvxl,
+ &B8_vec_stvxl,
+ &B9_vec_stvxl,
+ &B10_vec_stvxl,
+ &B11_vec_stvxl,
+ &B12_vec_stvxl,
+ &B13_vec_stvxl,
+ &B14_vec_stvxl,
+ &B15_vec_stvxl,
+ &B16_vec_stvxl,
+ &B17_vec_stvxl,
+ &B18_vec_stvxl,
+ &B19_vec_stvxl,
+ &B20_vec_stvxl,
+ &B21_vec_stvxl,
+ &B22_vec_stvxl,
+ &B23_vec_stvxl,
+ &B24_vec_stvxl,
+ &B25_vec_stvxl,
+ &B26_vec_stvxl,
+ &B27_vec_stvxl,
+ &B28_vec_stvxl,
+ &B29_vec_stvxl,
+ &B30_vec_stvxl,
+};
+static const struct builtin *const O_vec_sub[19] = {
+ &B1_vec_vsubuhm,
+ &B2_vec_vsubuhm,
+ &B1_vec_vsubuwm,
+ &B2_vec_vsubuwm,
+ &B1_vec_vsububm,
+ &B2_vec_vsububm,
+ &B_vec_vsubfp,
+ &B3_vec_vsubuhm,
+ &B4_vec_vsubuhm,
+ &B3_vec_vsubuwm,
+ &B4_vec_vsubuwm,
+ &B3_vec_vsububm,
+ &B4_vec_vsububm,
+ &B5_vec_vsubuhm,
+ &B6_vec_vsubuhm,
+ &B5_vec_vsubuwm,
+ &B6_vec_vsubuwm,
+ &B5_vec_vsububm,
+ &B6_vec_vsububm,
+};
+static const struct builtin *const O_vec_subc[1] = {
+ &B_vec_vsubcuw,
+};
+static const struct builtin *const O_vec_subs[18] = {
+ &B1_vec_vsubshs,
+ &B1_vec_vsubuhs,
+ &B1_vec_vsubsws,
+ &B1_vec_vsubuws,
+ &B1_vec_vsubsbs,
+ &B1_vec_vsububs,
+ &B2_vec_vsubshs,
+ &B3_vec_vsubshs,
+ &B2_vec_vsubsws,
+ &B3_vec_vsubsws,
+ &B2_vec_vsubsbs,
+ &B3_vec_vsubsbs,
+ &B2_vec_vsubuhs,
+ &B3_vec_vsubuhs,
+ &B2_vec_vsubuws,
+ &B3_vec_vsubuws,
+ &B2_vec_vsububs,
+ &B3_vec_vsububs,
+};
+static const struct builtin *const O_vec_sum2s[1] = {
+ &B_vec_vsum2sws,
+};
+static const struct builtin *const O_vec_sum4s[3] = {
+ &B_vec_vsum4shs,
+ &B_vec_vsum4sbs,
+ &B_vec_vsum4ubs,
+};
+static const struct builtin *const O_vec_sums[1] = {
+ &B_vec_vsumsws,
+};
+static const struct builtin *const O_vec_trunc[1] = {
+ &B_vec_vrfiz,
+};
+static const struct builtin *const O_vec_unpack2sh[2] = {
+ &B1_vec_unpack2sh,
+ &B2_vec_unpack2sh,
+};
+static const struct builtin *const O_vec_unpack2sl[2] = {
+ &B1_vec_unpack2sl,
+ &B2_vec_unpack2sl,
+};
+static const struct builtin *const O_vec_unpack2uh[2] = {
+ &B1_vec_unpack2uh,
+ &B2_vec_unpack2uh,
+};
+static const struct builtin *const O_vec_unpack2ul[2] = {
+ &B1_vec_unpack2ul,
+ &B2_vec_unpack2ul,
+};
+static const struct builtin *const O_vec_unpackh[5] = {
+ &B1_vec_vupkhsh,
+ &B1_vec_vupkhsb,
+ &B_vec_vupkhpx,
+ &B2_vec_vupkhsh,
+ &B2_vec_vupkhsb,
+};
+static const struct builtin *const O_vec_unpackl[5] = {
+ &B1_vec_vupklsh,
+ &B1_vec_vupklsb,
+ &B_vec_vupklpx,
+ &B2_vec_vupklsh,
+ &B2_vec_vupklsb,
+};
+static const struct builtin *const O_vec_vaddcuw[1] = {
+ &B_vec_vaddcuw,
+};
+static const struct builtin *const O_vec_vaddfp[1] = {
+ &B_vec_vaddfp,
+};
+static const struct builtin *const O_vec_vaddsbs[3] = {
+ &B1_vec_vaddsbs,
+ &B2_vec_vaddsbs,
+ &B3_vec_vaddsbs,
+};
+static const struct builtin *const O_vec_vaddshs[3] = {
+ &B1_vec_vaddshs,
+ &B2_vec_vaddshs,
+ &B3_vec_vaddshs,
+};
+static const struct builtin *const O_vec_vaddsws[3] = {
+ &B1_vec_vaddsws,
+ &B2_vec_vaddsws,
+ &B3_vec_vaddsws,
+};
+static const struct builtin *const O_vec_vaddubm[6] = {
+ &B1_vec_vaddubm,
+ &B2_vec_vaddubm,
+ &B3_vec_vaddubm,
+ &B4_vec_vaddubm,
+ &B5_vec_vaddubm,
+ &B6_vec_vaddubm,
+};
+static const struct builtin *const O_vec_vaddubs[3] = {
+ &B1_vec_vaddubs,
+ &B2_vec_vaddubs,
+ &B3_vec_vaddubs,
+};
+static const struct builtin *const O_vec_vadduhm[6] = {
+ &B1_vec_vadduhm,
+ &B2_vec_vadduhm,
+ &B3_vec_vadduhm,
+ &B4_vec_vadduhm,
+ &B5_vec_vadduhm,
+ &B6_vec_vadduhm,
+};
+static const struct builtin *const O_vec_vadduhs[3] = {
+ &B1_vec_vadduhs,
+ &B2_vec_vadduhs,
+ &B3_vec_vadduhs,
+};
+static const struct builtin *const O_vec_vadduwm[6] = {
+ &B1_vec_vadduwm,
+ &B2_vec_vadduwm,
+ &B3_vec_vadduwm,
+ &B4_vec_vadduwm,
+ &B5_vec_vadduwm,
+ &B6_vec_vadduwm,
+};
+static const struct builtin *const O_vec_vadduws[3] = {
+ &B1_vec_vadduws,
+ &B2_vec_vadduws,
+ &B3_vec_vadduws,
+};
+static const struct builtin *const O_vec_vand[24] = {
+ &B1_vec_vand,
+ &B2_vec_vand,
+ &B3_vec_vand,
+ &B4_vec_vand,
+ &B5_vec_vand,
+ &B6_vec_vand,
+ &B7_vec_vand,
+ &B8_vec_vand,
+ &B9_vec_vand,
+ &B10_vec_vand,
+ &B11_vec_vand,
+ &B12_vec_vand,
+ &B13_vec_vand,
+ &B14_vec_vand,
+ &B15_vec_vand,
+ &B16_vec_vand,
+ &B17_vec_vand,
+ &B18_vec_vand,
+ &B19_vec_vand,
+ &B20_vec_vand,
+ &B21_vec_vand,
+ &B22_vec_vand,
+ &B23_vec_vand,
+ &B24_vec_vand,
+};
+static const struct builtin *const O_vec_vandc[24] = {
+ &B1_vec_vandc,
+ &B2_vec_vandc,
+ &B3_vec_vandc,
+ &B4_vec_vandc,
+ &B5_vec_vandc,
+ &B6_vec_vandc,
+ &B7_vec_vandc,
+ &B8_vec_vandc,
+ &B9_vec_vandc,
+ &B10_vec_vandc,
+ &B11_vec_vandc,
+ &B12_vec_vandc,
+ &B13_vec_vandc,
+ &B14_vec_vandc,
+ &B15_vec_vandc,
+ &B16_vec_vandc,
+ &B17_vec_vandc,
+ &B18_vec_vandc,
+ &B19_vec_vandc,
+ &B20_vec_vandc,
+ &B21_vec_vandc,
+ &B22_vec_vandc,
+ &B23_vec_vandc,
+ &B24_vec_vandc,
+};
+static const struct builtin *const O_vec_vavgsb[1] = {
+ &B_vec_vavgsb,
+};
+static const struct builtin *const O_vec_vavgsh[1] = {
+ &B_vec_vavgsh,
+};
+static const struct builtin *const O_vec_vavgsw[1] = {
+ &B_vec_vavgsw,
+};
+static const struct builtin *const O_vec_vavgub[1] = {
+ &B_vec_vavgub,
+};
+static const struct builtin *const O_vec_vavguh[1] = {
+ &B_vec_vavguh,
+};
+static const struct builtin *const O_vec_vavguw[1] = {
+ &B_vec_vavguw,
+};
+static const struct builtin *const O_vec_vcfsx[1] = {
+ &B_vec_vcfsx,
+};
+static const struct builtin *const O_vec_vcfux[1] = {
+ &B_vec_vcfux,
+};
+static const struct builtin *const O_vec_vcmpbfp[1] = {
+ &B_vec_vcmpbfp,
+};
+static const struct builtin *const O_vec_vcmpeqfp[1] = {
+ &B_vec_vcmpeqfp,
+};
+static const struct builtin *const O_vec_vcmpequb[2] = {
+ &B1_vec_vcmpequb,
+ &B2_vec_vcmpequb,
+};
+static const struct builtin *const O_vec_vcmpequh[2] = {
+ &B1_vec_vcmpequh,
+ &B2_vec_vcmpequh,
+};
+static const struct builtin *const O_vec_vcmpequw[2] = {
+ &B1_vec_vcmpequw,
+ &B2_vec_vcmpequw,
+};
+static const struct builtin *const O_vec_vcmpgefp[1] = {
+ &B_vec_vcmpgefp,
+};
+static const struct builtin *const O_vec_vcmpgtfp[1] = {
+ &B_vec_vcmpgtfp,
+};
+static const struct builtin *const O_vec_vcmpgtsb[1] = {
+ &B_vec_vcmpgtsb,
+};
+static const struct builtin *const O_vec_vcmpgtsh[1] = {
+ &B_vec_vcmpgtsh,
+};
+static const struct builtin *const O_vec_vcmpgtsw[1] = {
+ &B_vec_vcmpgtsw,
+};
+static const struct builtin *const O_vec_vcmpgtub[1] = {
+ &B_vec_vcmpgtub,
+};
+static const struct builtin *const O_vec_vcmpgtuh[1] = {
+ &B_vec_vcmpgtuh,
+};
+static const struct builtin *const O_vec_vcmpgtuw[1] = {
+ &B_vec_vcmpgtuw,
+};
+static const struct builtin *const O_vec_vctsxs[1] = {
+ &B_vec_vctsxs,
+};
+static const struct builtin *const O_vec_vctuxs[1] = {
+ &B_vec_vctuxs,
+};
+static const struct builtin *const O_vec_vexptefp[1] = {
+ &B_vec_vexptefp,
+};
+static const struct builtin *const O_vec_vlogefp[1] = {
+ &B_vec_vlogefp,
+};
+static const struct builtin *const O_vec_vmaddfp[1] = {
+ &B_vec_vmaddfp,
+};
+static const struct builtin *const O_vec_vmaxfp[1] = {
+ &B_vec_vmaxfp,
+};
+static const struct builtin *const O_vec_vmaxsb[3] = {
+ &B1_vec_vmaxsb,
+ &B2_vec_vmaxsb,
+ &B3_vec_vmaxsb,
+};
+static const struct builtin *const O_vec_vmaxsh[3] = {
+ &B1_vec_vmaxsh,
+ &B2_vec_vmaxsh,
+ &B3_vec_vmaxsh,
+};
+static const struct builtin *const O_vec_vmaxsw[3] = {
+ &B1_vec_vmaxsw,
+ &B2_vec_vmaxsw,
+ &B3_vec_vmaxsw,
+};
+static const struct builtin *const O_vec_vmaxub[3] = {
+ &B1_vec_vmaxub,
+ &B2_vec_vmaxub,
+ &B3_vec_vmaxub,
+};
+static const struct builtin *const O_vec_vmaxuh[3] = {
+ &B1_vec_vmaxuh,
+ &B2_vec_vmaxuh,
+ &B3_vec_vmaxuh,
+};
+static const struct builtin *const O_vec_vmaxuw[3] = {
+ &B1_vec_vmaxuw,
+ &B2_vec_vmaxuw,
+ &B3_vec_vmaxuw,
+};
+static const struct builtin *const O_vec_vmhaddshs[1] = {
+ &B_vec_vmhaddshs,
+};
+static const struct builtin *const O_vec_vmhraddshs[1] = {
+ &B_vec_vmhraddshs,
+};
+static const struct builtin *const O_vec_vminfp[1] = {
+ &B_vec_vminfp,
+};
+static const struct builtin *const O_vec_vminsb[3] = {
+ &B1_vec_vminsb,
+ &B2_vec_vminsb,
+ &B3_vec_vminsb,
+};
+static const struct builtin *const O_vec_vminsh[3] = {
+ &B1_vec_vminsh,
+ &B2_vec_vminsh,
+ &B3_vec_vminsh,
+};
+static const struct builtin *const O_vec_vminsw[3] = {
+ &B1_vec_vminsw,
+ &B2_vec_vminsw,
+ &B3_vec_vminsw,
+};
+static const struct builtin *const O_vec_vminub[3] = {
+ &B1_vec_vminub,
+ &B2_vec_vminub,
+ &B3_vec_vminub,
+};
+static const struct builtin *const O_vec_vminuh[3] = {
+ &B1_vec_vminuh,
+ &B2_vec_vminuh,
+ &B3_vec_vminuh,
+};
+static const struct builtin *const O_vec_vminuw[3] = {
+ &B1_vec_vminuw,
+ &B2_vec_vminuw,
+ &B3_vec_vminuw,
+};
+static const struct builtin *const O_vec_vmladduhm[4] = {
+ &B1_vec_vmladduhm,
+ &B2_vec_vmladduhm,
+ &B3_vec_vmladduhm,
+ &B4_vec_vmladduhm,
+};
+static const struct builtin *const O_vec_vmrghb[3] = {
+ &B1_vec_vmrghb,
+ &B2_vec_vmrghb,
+ &B3_vec_vmrghb,
+};
+static const struct builtin *const O_vec_vmrghh[4] = {
+ &B1_vec_vmrghh,
+ &B2_vec_vmrghh,
+ &B3_vec_vmrghh,
+ &B4_vec_vmrghh,
+};
+static const struct builtin *const O_vec_vmrghw[4] = {
+ &B1_vec_vmrghw,
+ &B2_vec_vmrghw,
+ &B3_vec_vmrghw,
+ &B4_vec_vmrghw,
+};
+static const struct builtin *const O_vec_vmrglb[3] = {
+ &B1_vec_vmrglb,
+ &B2_vec_vmrglb,
+ &B3_vec_vmrglb,
+};
+static const struct builtin *const O_vec_vmrglh[4] = {
+ &B1_vec_vmrglh,
+ &B2_vec_vmrglh,
+ &B3_vec_vmrglh,
+ &B4_vec_vmrglh,
+};
+static const struct builtin *const O_vec_vmrglw[4] = {
+ &B1_vec_vmrglw,
+ &B2_vec_vmrglw,
+ &B3_vec_vmrglw,
+ &B4_vec_vmrglw,
+};
+static const struct builtin *const O_vec_vmsummbm[1] = {
+ &B_vec_vmsummbm,
+};
+static const struct builtin *const O_vec_vmsumshm[1] = {
+ &B_vec_vmsumshm,
+};
+static const struct builtin *const O_vec_vmsumshs[1] = {
+ &B_vec_vmsumshs,
+};
+static const struct builtin *const O_vec_vmsumubm[1] = {
+ &B_vec_vmsumubm,
+};
+static const struct builtin *const O_vec_vmsumuhm[1] = {
+ &B_vec_vmsumuhm,
+};
+static const struct builtin *const O_vec_vmsumuhs[1] = {
+ &B_vec_vmsumuhs,
+};
+static const struct builtin *const O_vec_vmulesb[1] = {
+ &B_vec_vmulesb,
+};
+static const struct builtin *const O_vec_vmulesh[1] = {
+ &B_vec_vmulesh,
+};
+static const struct builtin *const O_vec_vmuleub[1] = {
+ &B_vec_vmuleub,
+};
+static const struct builtin *const O_vec_vmuleuh[1] = {
+ &B_vec_vmuleuh,
+};
+static const struct builtin *const O_vec_vmulosb[1] = {
+ &B_vec_vmulosb,
+};
+static const struct builtin *const O_vec_vmulosh[1] = {
+ &B_vec_vmulosh,
+};
+static const struct builtin *const O_vec_vmuloub[1] = {
+ &B_vec_vmuloub,
+};
+static const struct builtin *const O_vec_vmulouh[1] = {
+ &B_vec_vmulouh,
+};
+static const struct builtin *const O_vec_vnmsubfp[1] = {
+ &B_vec_vnmsubfp,
+};
+static const struct builtin *const O_vec_vnor[10] = {
+ &B1_vec_vnor,
+ &B2_vec_vnor,
+ &B3_vec_vnor,
+ &B4_vec_vnor,
+ &B5_vec_vnor,
+ &B6_vec_vnor,
+ &B7_vec_vnor,
+ &B8_vec_vnor,
+ &B9_vec_vnor,
+ &B10_vec_vnor,
+};
+static const struct builtin *const O_vec_vor[24] = {
+ &B1_vec_vor,
+ &B2_vec_vor,
+ &B3_vec_vor,
+ &B4_vec_vor,
+ &B5_vec_vor,
+ &B6_vec_vor,
+ &B7_vec_vor,
+ &B8_vec_vor,
+ &B9_vec_vor,
+ &B10_vec_vor,
+ &B11_vec_vor,
+ &B12_vec_vor,
+ &B13_vec_vor,
+ &B14_vec_vor,
+ &B15_vec_vor,
+ &B16_vec_vor,
+ &B17_vec_vor,
+ &B18_vec_vor,
+ &B19_vec_vor,
+ &B20_vec_vor,
+ &B21_vec_vor,
+ &B22_vec_vor,
+ &B23_vec_vor,
+ &B24_vec_vor,
+};
+static const struct builtin *const O_vec_vperm[11] = {
+ &B1_vec_vperm,
+ &B2_vec_vperm,
+ &B3_vec_vperm,
+ &B4_vec_vperm,
+ &B5_vec_vperm,
+ &B6_vec_vperm,
+ &B7_vec_vperm,
+ &B8_vec_vperm,
+ &B9_vec_vperm,
+ &B10_vec_vperm,
+ &B11_vec_vperm,
+};
+static const struct builtin *const O_vec_vpkpx[1] = {
+ &B_vec_vpkpx,
+};
+static const struct builtin *const O_vec_vpkshss[1] = {
+ &B_vec_vpkshss,
+};
+static const struct builtin *const O_vec_vpkshus[1] = {
+ &B_vec_vpkshus,
+};
+static const struct builtin *const O_vec_vpkswss[1] = {
+ &B_vec_vpkswss,
+};
+static const struct builtin *const O_vec_vpkswus[1] = {
+ &B_vec_vpkswus,
+};
+static const struct builtin *const O_vec_vpkuhum[3] = {
+ &B1_vec_vpkuhum,
+ &B2_vec_vpkuhum,
+ &B3_vec_vpkuhum,
+};
+static const struct builtin *const O_vec_vpkuhus[1] = {
+ &B_vec_vpkuhus,
+};
+static const struct builtin *const O_vec_vpkuwum[3] = {
+ &B1_vec_vpkuwum,
+ &B2_vec_vpkuwum,
+ &B3_vec_vpkuwum,
+};
+static const struct builtin *const O_vec_vpkuwus[1] = {
+ &B_vec_vpkuwus,
+};
+static const struct builtin *const O_vec_vrefp[1] = {
+ &B_vec_vrefp,
+};
+static const struct builtin *const O_vec_vrfim[1] = {
+ &B_vec_vrfim,
+};
+static const struct builtin *const O_vec_vrfin[1] = {
+ &B_vec_vrfin,
+};
+static const struct builtin *const O_vec_vrfip[1] = {
+ &B_vec_vrfip,
+};
+static const struct builtin *const O_vec_vrfiz[1] = {
+ &B_vec_vrfiz,
+};
+static const struct builtin *const O_vec_vrlb[2] = {
+ &B1_vec_vrlb,
+ &B2_vec_vrlb,
+};
+static const struct builtin *const O_vec_vrlh[2] = {
+ &B1_vec_vrlh,
+ &B2_vec_vrlh,
+};
+static const struct builtin *const O_vec_vrlw[2] = {
+ &B1_vec_vrlw,
+ &B2_vec_vrlw,
+};
+static const struct builtin *const O_vec_vrsqrtefp[1] = {
+ &B_vec_vrsqrtefp,
+};
+static const struct builtin *const O_vec_vsel[20] = {
+ &B1_vec_vsel,
+ &B2_vec_vsel,
+ &B3_vec_vsel,
+ &B4_vec_vsel,
+ &B5_vec_vsel,
+ &B6_vec_vsel,
+ &B7_vec_vsel,
+ &B8_vec_vsel,
+ &B9_vec_vsel,
+ &B10_vec_vsel,
+ &B11_vec_vsel,
+ &B12_vec_vsel,
+ &B13_vec_vsel,
+ &B14_vec_vsel,
+ &B15_vec_vsel,
+ &B16_vec_vsel,
+ &B17_vec_vsel,
+ &B18_vec_vsel,
+ &B19_vec_vsel,
+ &B20_vec_vsel,
+};
+static const struct builtin *const O_vec_vsl[30] = {
+ &B1_vec_vsl,
+ &B2_vec_vsl,
+ &B3_vec_vsl,
+ &B4_vec_vsl,
+ &B5_vec_vsl,
+ &B6_vec_vsl,
+ &B7_vec_vsl,
+ &B8_vec_vsl,
+ &B9_vec_vsl,
+ &B10_vec_vsl,
+ &B11_vec_vsl,
+ &B12_vec_vsl,
+ &B13_vec_vsl,
+ &B14_vec_vsl,
+ &B15_vec_vsl,
+ &B16_vec_vsl,
+ &B17_vec_vsl,
+ &B18_vec_vsl,
+ &B19_vec_vsl,
+ &B20_vec_vsl,
+ &B21_vec_vsl,
+ &B22_vec_vsl,
+ &B23_vec_vsl,
+ &B24_vec_vsl,
+ &B25_vec_vsl,
+ &B26_vec_vsl,
+ &B27_vec_vsl,
+ &B28_vec_vsl,
+ &B29_vec_vsl,
+ &B30_vec_vsl,
+};
+static const struct builtin *const O_vec_vslb[2] = {
+ &B1_vec_vslb,
+ &B2_vec_vslb,
+};
+static const struct builtin *const O_vec_vsldoi[11] = {
+ &B1_vec_vsldoi,
+ &B2_vec_vsldoi,
+ &B3_vec_vsldoi,
+ &B4_vec_vsldoi,
+ &B5_vec_vsldoi,
+ &B6_vec_vsldoi,
+ &B7_vec_vsldoi,
+ &B8_vec_vsldoi,
+ &B9_vec_vsldoi,
+ &B10_vec_vsldoi,
+ &B11_vec_vsldoi,
+};
+static const struct builtin *const O_vec_vslh[2] = {
+ &B1_vec_vslh,
+ &B2_vec_vslh,
+};
+static const struct builtin *const O_vec_vslo[16] = {
+ &B1_vec_vslo,
+ &B2_vec_vslo,
+ &B3_vec_vslo,
+ &B4_vec_vslo,
+ &B5_vec_vslo,
+ &B6_vec_vslo,
+ &B7_vec_vslo,
+ &B8_vec_vslo,
+ &B9_vec_vslo,
+ &B10_vec_vslo,
+ &B11_vec_vslo,
+ &B12_vec_vslo,
+ &B13_vec_vslo,
+ &B14_vec_vslo,
+ &B15_vec_vslo,
+ &B16_vec_vslo,
+};
+static const struct builtin *const O_vec_vslw[2] = {
+ &B1_vec_vslw,
+ &B2_vec_vslw,
+};
+static const struct builtin *const O_vec_vspltb[3] = {
+ &B1_vec_vspltb,
+ &B2_vec_vspltb,
+ &B3_vec_vspltb,
+};
+static const struct builtin *const O_vec_vsplth[4] = {
+ &B1_vec_vsplth,
+ &B2_vec_vsplth,
+ &B3_vec_vsplth,
+ &B4_vec_vsplth,
+};
+static const struct builtin *const O_vec_vspltisb[1] = {
+ &B_vec_vspltisb,
+};
+static const struct builtin *const O_vec_vspltish[1] = {
+ &B_vec_vspltish,
+};
+static const struct builtin *const O_vec_vspltisw[1] = {
+ &B_vec_vspltisw,
+};
+static const struct builtin *const O_vec_vspltw[4] = {
+ &B1_vec_vspltw,
+ &B2_vec_vspltw,
+ &B3_vec_vspltw,
+ &B4_vec_vspltw,
+};
+static const struct builtin *const O_vec_vsr[30] = {
+ &B1_vec_vsr,
+ &B2_vec_vsr,
+ &B3_vec_vsr,
+ &B4_vec_vsr,
+ &B5_vec_vsr,
+ &B6_vec_vsr,
+ &B7_vec_vsr,
+ &B8_vec_vsr,
+ &B9_vec_vsr,
+ &B10_vec_vsr,
+ &B11_vec_vsr,
+ &B12_vec_vsr,
+ &B13_vec_vsr,
+ &B14_vec_vsr,
+ &B15_vec_vsr,
+ &B16_vec_vsr,
+ &B17_vec_vsr,
+ &B18_vec_vsr,
+ &B19_vec_vsr,
+ &B20_vec_vsr,
+ &B21_vec_vsr,
+ &B22_vec_vsr,
+ &B23_vec_vsr,
+ &B24_vec_vsr,
+ &B25_vec_vsr,
+ &B26_vec_vsr,
+ &B27_vec_vsr,
+ &B28_vec_vsr,
+ &B29_vec_vsr,
+ &B30_vec_vsr,
+};
+static const struct builtin *const O_vec_vsrab[2] = {
+ &B1_vec_vsrab,
+ &B2_vec_vsrab,
+};
+static const struct builtin *const O_vec_vsrah[2] = {
+ &B1_vec_vsrah,
+ &B2_vec_vsrah,
+};
+static const struct builtin *const O_vec_vsraw[2] = {
+ &B1_vec_vsraw,
+ &B2_vec_vsraw,
+};
+static const struct builtin *const O_vec_vsrb[2] = {
+ &B1_vec_vsrb,
+ &B2_vec_vsrb,
+};
+static const struct builtin *const O_vec_vsrh[2] = {
+ &B1_vec_vsrh,
+ &B2_vec_vsrh,
+};
+static const struct builtin *const O_vec_vsro[16] = {
+ &B1_vec_vsro,
+ &B2_vec_vsro,
+ &B3_vec_vsro,
+ &B4_vec_vsro,
+ &B5_vec_vsro,
+ &B6_vec_vsro,
+ &B7_vec_vsro,
+ &B8_vec_vsro,
+ &B9_vec_vsro,
+ &B10_vec_vsro,
+ &B11_vec_vsro,
+ &B12_vec_vsro,
+ &B13_vec_vsro,
+ &B14_vec_vsro,
+ &B15_vec_vsro,
+ &B16_vec_vsro,
+};
+static const struct builtin *const O_vec_vsrw[2] = {
+ &B1_vec_vsrw,
+ &B2_vec_vsrw,
+};
+static const struct builtin *const O_vec_vsubcuw[1] = {
+ &B_vec_vsubcuw,
+};
+static const struct builtin *const O_vec_vsubfp[1] = {
+ &B_vec_vsubfp,
+};
+static const struct builtin *const O_vec_vsubsbs[3] = {
+ &B1_vec_vsubsbs,
+ &B2_vec_vsubsbs,
+ &B3_vec_vsubsbs,
+};
+static const struct builtin *const O_vec_vsubshs[3] = {
+ &B1_vec_vsubshs,
+ &B2_vec_vsubshs,
+ &B3_vec_vsubshs,
+};
+static const struct builtin *const O_vec_vsubsws[3] = {
+ &B1_vec_vsubsws,
+ &B2_vec_vsubsws,
+ &B3_vec_vsubsws,
+};
+static const struct builtin *const O_vec_vsububm[6] = {
+ &B1_vec_vsububm,
+ &B2_vec_vsububm,
+ &B3_vec_vsububm,
+ &B4_vec_vsububm,
+ &B5_vec_vsububm,
+ &B6_vec_vsububm,
+};
+static const struct builtin *const O_vec_vsububs[3] = {
+ &B1_vec_vsububs,
+ &B2_vec_vsububs,
+ &B3_vec_vsububs,
+};
+static const struct builtin *const O_vec_vsubuhm[6] = {
+ &B1_vec_vsubuhm,
+ &B2_vec_vsubuhm,
+ &B3_vec_vsubuhm,
+ &B4_vec_vsubuhm,
+ &B5_vec_vsubuhm,
+ &B6_vec_vsubuhm,
+};
+static const struct builtin *const O_vec_vsubuhs[3] = {
+ &B1_vec_vsubuhs,
+ &B2_vec_vsubuhs,
+ &B3_vec_vsubuhs,
+};
+static const struct builtin *const O_vec_vsubuwm[6] = {
+ &B1_vec_vsubuwm,
+ &B2_vec_vsubuwm,
+ &B3_vec_vsubuwm,
+ &B4_vec_vsubuwm,
+ &B5_vec_vsubuwm,
+ &B6_vec_vsubuwm,
+};
+static const struct builtin *const O_vec_vsubuws[3] = {
+ &B1_vec_vsubuws,
+ &B2_vec_vsubuws,
+ &B3_vec_vsubuws,
+};
+static const struct builtin *const O_vec_vsum2sws[1] = {
+ &B_vec_vsum2sws,
+};
+static const struct builtin *const O_vec_vsum4sbs[1] = {
+ &B_vec_vsum4sbs,
+};
+static const struct builtin *const O_vec_vsum4shs[1] = {
+ &B_vec_vsum4shs,
+};
+static const struct builtin *const O_vec_vsum4ubs[1] = {
+ &B_vec_vsum4ubs,
+};
+static const struct builtin *const O_vec_vsumsws[1] = {
+ &B_vec_vsumsws,
+};
+static const struct builtin *const O_vec_vupkhpx[1] = {
+ &B_vec_vupkhpx,
+};
+static const struct builtin *const O_vec_vupkhsb[2] = {
+ &B1_vec_vupkhsb,
+ &B2_vec_vupkhsb,
+};
+static const struct builtin *const O_vec_vupkhsh[2] = {
+ &B1_vec_vupkhsh,
+ &B2_vec_vupkhsh,
+};
+static const struct builtin *const O_vec_vupklpx[1] = {
+ &B_vec_vupklpx,
+};
+static const struct builtin *const O_vec_vupklsb[2] = {
+ &B1_vec_vupklsb,
+ &B2_vec_vupklsb,
+};
+static const struct builtin *const O_vec_vupklsh[2] = {
+ &B1_vec_vupklsh,
+ &B2_vec_vupklsh,
+};
+static const struct builtin *const O_vec_vxor[24] = {
+ &B1_vec_vxor,
+ &B2_vec_vxor,
+ &B3_vec_vxor,
+ &B4_vec_vxor,
+ &B5_vec_vxor,
+ &B6_vec_vxor,
+ &B7_vec_vxor,
+ &B8_vec_vxor,
+ &B9_vec_vxor,
+ &B10_vec_vxor,
+ &B11_vec_vxor,
+ &B12_vec_vxor,
+ &B13_vec_vxor,
+ &B14_vec_vxor,
+ &B15_vec_vxor,
+ &B16_vec_vxor,
+ &B17_vec_vxor,
+ &B18_vec_vxor,
+ &B19_vec_vxor,
+ &B20_vec_vxor,
+ &B21_vec_vxor,
+ &B22_vec_vxor,
+ &B23_vec_vxor,
+ &B24_vec_vxor,
+};
+static const struct builtin *const O_vec_xor[24] = {
+ &B1_vec_vxor,
+ &B2_vec_vxor,
+ &B3_vec_vxor,
+ &B4_vec_vxor,
+ &B5_vec_vxor,
+ &B6_vec_vxor,
+ &B7_vec_vxor,
+ &B8_vec_vxor,
+ &B9_vec_vxor,
+ &B10_vec_vxor,
+ &B11_vec_vxor,
+ &B12_vec_vxor,
+ &B13_vec_vxor,
+ &B14_vec_vxor,
+ &B15_vec_vxor,
+ &B16_vec_vxor,
+ &B17_vec_vxor,
+ &B18_vec_vxor,
+ &B19_vec_vxor,
+ &B20_vec_vxor,
+ &B21_vec_vxor,
+ &B22_vec_vxor,
+ &B23_vec_vxor,
+ &B24_vec_vxor,
+};
+
+const struct overloadx Overload[] = {
+ { "vec_abs", 4, 1, O_vec_abs, O_UID(0) },
+ { "vec_abss", 3, 1, O_vec_abss, O_UID(1) },
+ { "vec_add", 19, 2, O_vec_add, O_UID(2) },
+ { "vec_addc", 1, 2, O_vec_addc, O_UID(3) },
+ { "vec_adds", 18, 2, O_vec_adds, O_UID(4) },
+ { "vec_all_eq", 23, 2, O_vec_all_eq, O_UID(5) },
+ { "vec_all_ge", 19, 2, O_vec_all_ge, O_UID(6) },
+ { "vec_all_gt", 19, 2, O_vec_all_gt, O_UID(7) },
+ { "vec_all_in", 1, 2, O_vec_all_in, O_UID(8) },
+ { "vec_all_le", 19, 2, O_vec_all_le, O_UID(9) },
+ { "vec_all_lt", 19, 2, O_vec_all_lt, O_UID(10) },
+ { "vec_all_nan", 1, 1, O_vec_all_nan, O_UID(11) },
+ { "vec_all_ne", 23, 2, O_vec_all_ne, O_UID(12) },
+ { "vec_all_nge", 1, 2, O_vec_all_nge, O_UID(13) },
+ { "vec_all_ngt", 1, 2, O_vec_all_ngt, O_UID(14) },
+ { "vec_all_nle", 1, 2, O_vec_all_nle, O_UID(15) },
+ { "vec_all_nlt", 1, 2, O_vec_all_nlt, O_UID(16) },
+ { "vec_all_numeric", 1, 1, O_vec_all_numeric, O_UID(17) },
+ { "vec_and", 24, 2, O_vec_and, O_UID(18) },
+ { "vec_andc", 24, 2, O_vec_andc, O_UID(19) },
+ { "vec_any_eq", 23, 2, O_vec_any_eq, O_UID(20) },
+ { "vec_any_ge", 19, 2, O_vec_any_ge, O_UID(21) },
+ { "vec_any_gt", 19, 2, O_vec_any_gt, O_UID(22) },
+ { "vec_any_le", 19, 2, O_vec_any_le, O_UID(23) },
+ { "vec_any_lt", 19, 2, O_vec_any_lt, O_UID(24) },
+ { "vec_any_nan", 1, 1, O_vec_any_nan, O_UID(25) },
+ { "vec_any_ne", 23, 2, O_vec_any_ne, O_UID(26) },
+ { "vec_any_nge", 1, 2, O_vec_any_nge, O_UID(27) },
+ { "vec_any_ngt", 1, 2, O_vec_any_ngt, O_UID(28) },
+ { "vec_any_nle", 1, 2, O_vec_any_nle, O_UID(29) },
+ { "vec_any_nlt", 1, 2, O_vec_any_nlt, O_UID(30) },
+ { "vec_any_numeric", 1, 1, O_vec_any_numeric, O_UID(31) },
+ { "vec_any_out", 1, 2, O_vec_any_out, O_UID(32) },
+ { "vec_avg", 6, 2, O_vec_avg, O_UID(33) },
+ { "vec_ceil", 1, 1, O_vec_ceil, O_UID(34) },
+ { "vec_cmpb", 1, 2, O_vec_cmpb, O_UID(35) },
+ { "vec_cmpeq", 7, 2, O_vec_cmpeq, O_UID(36) },
+ { "vec_cmpge", 1, 2, O_vec_cmpge, O_UID(37) },
+ { "vec_cmpgt", 7, 2, O_vec_cmpgt, O_UID(38) },
+ { "vec_cmple", 1, 2, O_vec_cmple, O_UID(39) },
+ { "vec_cmplt", 7, 2, O_vec_cmplt, O_UID(40) },
+ { "vec_ctf", 2, 2, O_vec_ctf, O_UID(41) },
+ { "vec_cts", 1, 2, O_vec_cts, O_UID(42) },
+ { "vec_ctu", 1, 2, O_vec_ctu, O_UID(43) },
+ { "vec_dss", 1, 1, O_vec_dss, O_UID(44) },
+ { "vec_dssall", 1, 0, O_vec_dssall, O_UID(45) },
+ { "vec_dst", 20, 3, O_vec_dst, O_UID(46) },
+ { "vec_dstst", 20, 3, O_vec_dstst, O_UID(47) },
+ { "vec_dststt", 20, 3, O_vec_dststt, O_UID(48) },
+ { "vec_dstt", 20, 3, O_vec_dstt, O_UID(49) },
+ { "vec_expte", 1, 1, O_vec_expte, O_UID(50) },
+ { "vec_floor", 1, 1, O_vec_floor, O_UID(51) },
+ { "vec_ld", 20, 2, O_vec_ld, O_UID(52) },
+ { "vec_lde", 9, 2, O_vec_lde, O_UID(53) },
+ { "vec_ldl", 20, 2, O_vec_ldl, O_UID(54) },
+ { "vec_loge", 1, 1, O_vec_loge, O_UID(55) },
+ { "vec_lvebx", 2, 2, O_vec_lvebx, O_UID(56) },
+ { "vec_lvehx", 2, 2, O_vec_lvehx, O_UID(57) },
+ { "vec_lvewx", 5, 2, O_vec_lvewx, O_UID(58) },
+ { "vec_lvsl", 9, 2, O_vec_lvsl, O_UID(59) },
+ { "vec_lvsr", 9, 2, O_vec_lvsr, O_UID(60) },
+ { "vec_lvx", 20, 2, O_vec_lvx, O_UID(61) },
+ { "vec_lvxl", 20, 2, O_vec_lvxl, O_UID(62) },
+ { "vec_madd", 1, 3, O_vec_madd, O_UID(63) },
+ { "vec_madds", 1, 3, O_vec_madds, O_UID(64) },
+ { "vec_max", 19, 2, O_vec_max, O_UID(65) },
+ { "vec_mergeh", 11, 2, O_vec_mergeh, O_UID(66) },
+ { "vec_mergel", 11, 2, O_vec_mergel, O_UID(67) },
+ { "vec_mfvscr", 1, 0, O_vec_mfvscr, O_UID(68) },
+ { "vec_min", 19, 2, O_vec_min, O_UID(69) },
+ { "vec_mladd", 4, 3, O_vec_mladd, O_UID(70) },
+ { "vec_mradds", 1, 3, O_vec_mradds, O_UID(71) },
+ { "vec_msum", 4, 3, O_vec_msum, O_UID(72) },
+ { "vec_msums", 2, 3, O_vec_msums, O_UID(73) },
+ { "vec_mtvscr", 10, 1, O_vec_mtvscr, O_UID(74) },
+ { "vec_mule", 4, 2, O_vec_mule, O_UID(75) },
+ { "vec_mulo", 4, 2, O_vec_mulo, O_UID(76) },
+ { "vec_nmsub", 1, 3, O_vec_nmsub, O_UID(77) },
+ { "vec_nor", 10, 2, O_vec_nor, O_UID(78) },
+ { "vec_or", 24, 2, O_vec_or, O_UID(79) },
+ { "vec_pack", 6, 2, O_vec_pack, O_UID(80) },
+ { "vec_packpx", 1, 2, O_vec_packpx, O_UID(81) },
+ { "vec_packs", 4, 2, O_vec_packs, O_UID(82) },
+ { "vec_packsu", 4, 2, O_vec_packsu, O_UID(83) },
+ { "vec_perm", 11, 3, O_vec_perm, O_UID(84) },
+ { "vec_re", 1, 1, O_vec_re, O_UID(85) },
+ { "vec_rl", 6, 2, O_vec_rl, O_UID(86) },
+ { "vec_round", 1, 1, O_vec_round, O_UID(87) },
+ { "vec_rsqrte", 1, 1, O_vec_rsqrte, O_UID(88) },
+ { "vec_sel", 20, 3, O_vec_sel, O_UID(89) },
+ { "vec_sl", 6, 2, O_vec_sl, O_UID(90) },
+ { "vec_sld", 11, 3, O_vec_sld, O_UID(91) },
+ { "vec_sll", 30, 2, O_vec_sll, O_UID(92) },
+ { "vec_slo", 16, 2, O_vec_slo, O_UID(93) },
+ { "vec_splat", 11, 2, O_vec_splat, O_UID(94) },
+ { "vec_splat_s16", 1, 1, O_vec_splat_s16, O_UID(95) },
+ { "vec_splat_s32", 1, 1, O_vec_splat_s32, O_UID(96) },
+ { "vec_splat_s8", 1, 1, O_vec_splat_s8, O_UID(97) },
+ { "vec_splat_u16", 1, 1, O_vec_splat_u16, O_UID(98) },
+ { "vec_splat_u32", 1, 1, O_vec_splat_u32, O_UID(99) },
+ { "vec_splat_u8", 1, 1, O_vec_splat_u8, O_UID(100) },
+ { "vec_sr", 6, 2, O_vec_sr, O_UID(101) },
+ { "vec_sra", 6, 2, O_vec_sra, O_UID(102) },
+ { "vec_srl", 30, 2, O_vec_srl, O_UID(103) },
+ { "vec_sro", 16, 2, O_vec_sro, O_UID(104) },
+ { "vec_st", 30, 3, O_vec_st, O_UID(105) },
+ { "vec_ste", 19, 3, O_vec_ste, O_UID(106) },
+ { "vec_stl", 30, 3, O_vec_stl, O_UID(107) },
+ { "vec_stvebx", 6, 3, O_vec_stvebx, O_UID(108) },
+ { "vec_stvehx", 4, 3, O_vec_stvehx, O_UID(109) },
+ { "vec_stvewx", 9, 3, O_vec_stvewx, O_UID(110) },
+ { "vec_stvx", 30, 3, O_vec_stvx, O_UID(111) },
+ { "vec_stvxl", 30, 3, O_vec_stvxl, O_UID(112) },
+ { "vec_sub", 19, 2, O_vec_sub, O_UID(113) },
+ { "vec_subc", 1, 2, O_vec_subc, O_UID(114) },
+ { "vec_subs", 18, 2, O_vec_subs, O_UID(115) },
+ { "vec_sum2s", 1, 2, O_vec_sum2s, O_UID(116) },
+ { "vec_sum4s", 3, 2, O_vec_sum4s, O_UID(117) },
+ { "vec_sums", 1, 2, O_vec_sums, O_UID(118) },
+ { "vec_trunc", 1, 1, O_vec_trunc, O_UID(119) },
+ { "vec_unpack2sh", 2, 2, O_vec_unpack2sh, O_UID(120) },
+ { "vec_unpack2sl", 2, 2, O_vec_unpack2sl, O_UID(121) },
+ { "vec_unpack2uh", 2, 2, O_vec_unpack2uh, O_UID(122) },
+ { "vec_unpack2ul", 2, 2, O_vec_unpack2ul, O_UID(123) },
+ { "vec_unpackh", 5, 1, O_vec_unpackh, O_UID(124) },
+ { "vec_unpackl", 5, 1, O_vec_unpackl, O_UID(125) },
+ { "vec_vaddcuw", 1, 2, O_vec_vaddcuw, O_UID(126) },
+ { "vec_vaddfp", 1, 2, O_vec_vaddfp, O_UID(127) },
+ { "vec_vaddsbs", 3, 2, O_vec_vaddsbs, O_UID(128) },
+ { "vec_vaddshs", 3, 2, O_vec_vaddshs, O_UID(129) },
+ { "vec_vaddsws", 3, 2, O_vec_vaddsws, O_UID(130) },
+ { "vec_vaddubm", 6, 2, O_vec_vaddubm, O_UID(131) },
+ { "vec_vaddubs", 3, 2, O_vec_vaddubs, O_UID(132) },
+ { "vec_vadduhm", 6, 2, O_vec_vadduhm, O_UID(133) },
+ { "vec_vadduhs", 3, 2, O_vec_vadduhs, O_UID(134) },
+ { "vec_vadduwm", 6, 2, O_vec_vadduwm, O_UID(135) },
+ { "vec_vadduws", 3, 2, O_vec_vadduws, O_UID(136) },
+ { "vec_vand", 24, 2, O_vec_vand, O_UID(137) },
+ { "vec_vandc", 24, 2, O_vec_vandc, O_UID(138) },
+ { "vec_vavgsb", 1, 2, O_vec_vavgsb, O_UID(139) },
+ { "vec_vavgsh", 1, 2, O_vec_vavgsh, O_UID(140) },
+ { "vec_vavgsw", 1, 2, O_vec_vavgsw, O_UID(141) },
+ { "vec_vavgub", 1, 2, O_vec_vavgub, O_UID(142) },
+ { "vec_vavguh", 1, 2, O_vec_vavguh, O_UID(143) },
+ { "vec_vavguw", 1, 2, O_vec_vavguw, O_UID(144) },
+ { "vec_vcfsx", 1, 2, O_vec_vcfsx, O_UID(145) },
+ { "vec_vcfux", 1, 2, O_vec_vcfux, O_UID(146) },
+ { "vec_vcmpbfp", 1, 2, O_vec_vcmpbfp, O_UID(147) },
+ { "vec_vcmpeqfp", 1, 2, O_vec_vcmpeqfp, O_UID(148) },
+ { "vec_vcmpequb", 2, 2, O_vec_vcmpequb, O_UID(149) },
+ { "vec_vcmpequh", 2, 2, O_vec_vcmpequh, O_UID(150) },
+ { "vec_vcmpequw", 2, 2, O_vec_vcmpequw, O_UID(151) },
+ { "vec_vcmpgefp", 1, 2, O_vec_vcmpgefp, O_UID(152) },
+ { "vec_vcmpgtfp", 1, 2, O_vec_vcmpgtfp, O_UID(153) },
+ { "vec_vcmpgtsb", 1, 2, O_vec_vcmpgtsb, O_UID(154) },
+ { "vec_vcmpgtsh", 1, 2, O_vec_vcmpgtsh, O_UID(155) },
+ { "vec_vcmpgtsw", 1, 2, O_vec_vcmpgtsw, O_UID(156) },
+ { "vec_vcmpgtub", 1, 2, O_vec_vcmpgtub, O_UID(157) },
+ { "vec_vcmpgtuh", 1, 2, O_vec_vcmpgtuh, O_UID(158) },
+ { "vec_vcmpgtuw", 1, 2, O_vec_vcmpgtuw, O_UID(159) },
+ { "vec_vctsxs", 1, 2, O_vec_vctsxs, O_UID(160) },
+ { "vec_vctuxs", 1, 2, O_vec_vctuxs, O_UID(161) },
+ { "vec_vexptefp", 1, 1, O_vec_vexptefp, O_UID(162) },
+ { "vec_vlogefp", 1, 1, O_vec_vlogefp, O_UID(163) },
+ { "vec_vmaddfp", 1, 3, O_vec_vmaddfp, O_UID(164) },
+ { "vec_vmaxfp", 1, 2, O_vec_vmaxfp, O_UID(165) },
+ { "vec_vmaxsb", 3, 2, O_vec_vmaxsb, O_UID(166) },
+ { "vec_vmaxsh", 3, 2, O_vec_vmaxsh, O_UID(167) },
+ { "vec_vmaxsw", 3, 2, O_vec_vmaxsw, O_UID(168) },
+ { "vec_vmaxub", 3, 2, O_vec_vmaxub, O_UID(169) },
+ { "vec_vmaxuh", 3, 2, O_vec_vmaxuh, O_UID(170) },
+ { "vec_vmaxuw", 3, 2, O_vec_vmaxuw, O_UID(171) },
+ { "vec_vmhaddshs", 1, 3, O_vec_vmhaddshs, O_UID(172) },
+ { "vec_vmhraddshs", 1, 3, O_vec_vmhraddshs, O_UID(173) },
+ { "vec_vminfp", 1, 2, O_vec_vminfp, O_UID(174) },
+ { "vec_vminsb", 3, 2, O_vec_vminsb, O_UID(175) },
+ { "vec_vminsh", 3, 2, O_vec_vminsh, O_UID(176) },
+ { "vec_vminsw", 3, 2, O_vec_vminsw, O_UID(177) },
+ { "vec_vminub", 3, 2, O_vec_vminub, O_UID(178) },
+ { "vec_vminuh", 3, 2, O_vec_vminuh, O_UID(179) },
+ { "vec_vminuw", 3, 2, O_vec_vminuw, O_UID(180) },
+ { "vec_vmladduhm", 4, 3, O_vec_vmladduhm, O_UID(181) },
+ { "vec_vmrghb", 3, 2, O_vec_vmrghb, O_UID(182) },
+ { "vec_vmrghh", 4, 2, O_vec_vmrghh, O_UID(183) },
+ { "vec_vmrghw", 4, 2, O_vec_vmrghw, O_UID(184) },
+ { "vec_vmrglb", 3, 2, O_vec_vmrglb, O_UID(185) },
+ { "vec_vmrglh", 4, 2, O_vec_vmrglh, O_UID(186) },
+ { "vec_vmrglw", 4, 2, O_vec_vmrglw, O_UID(187) },
+ { "vec_vmsummbm", 1, 3, O_vec_vmsummbm, O_UID(188) },
+ { "vec_vmsumshm", 1, 3, O_vec_vmsumshm, O_UID(189) },
+ { "vec_vmsumshs", 1, 3, O_vec_vmsumshs, O_UID(190) },
+ { "vec_vmsumubm", 1, 3, O_vec_vmsumubm, O_UID(191) },
+ { "vec_vmsumuhm", 1, 3, O_vec_vmsumuhm, O_UID(192) },
+ { "vec_vmsumuhs", 1, 3, O_vec_vmsumuhs, O_UID(193) },
+ { "vec_vmulesb", 1, 2, O_vec_vmulesb, O_UID(194) },
+ { "vec_vmulesh", 1, 2, O_vec_vmulesh, O_UID(195) },
+ { "vec_vmuleub", 1, 2, O_vec_vmuleub, O_UID(196) },
+ { "vec_vmuleuh", 1, 2, O_vec_vmuleuh, O_UID(197) },
+ { "vec_vmulosb", 1, 2, O_vec_vmulosb, O_UID(198) },
+ { "vec_vmulosh", 1, 2, O_vec_vmulosh, O_UID(199) },
+ { "vec_vmuloub", 1, 2, O_vec_vmuloub, O_UID(200) },
+ { "vec_vmulouh", 1, 2, O_vec_vmulouh, O_UID(201) },
+ { "vec_vnmsubfp", 1, 3, O_vec_vnmsubfp, O_UID(202) },
+ { "vec_vnor", 10, 2, O_vec_vnor, O_UID(203) },
+ { "vec_vor", 24, 2, O_vec_vor, O_UID(204) },
+ { "vec_vperm", 11, 3, O_vec_vperm, O_UID(205) },
+ { "vec_vpkpx", 1, 2, O_vec_vpkpx, O_UID(206) },
+ { "vec_vpkshss", 1, 2, O_vec_vpkshss, O_UID(207) },
+ { "vec_vpkshus", 1, 2, O_vec_vpkshus, O_UID(208) },
+ { "vec_vpkswss", 1, 2, O_vec_vpkswss, O_UID(209) },
+ { "vec_vpkswus", 1, 2, O_vec_vpkswus, O_UID(210) },
+ { "vec_vpkuhum", 3, 2, O_vec_vpkuhum, O_UID(211) },
+ { "vec_vpkuhus", 1, 2, O_vec_vpkuhus, O_UID(212) },
+ { "vec_vpkuwum", 3, 2, O_vec_vpkuwum, O_UID(213) },
+ { "vec_vpkuwus", 1, 2, O_vec_vpkuwus, O_UID(214) },
+ { "vec_vrefp", 1, 1, O_vec_vrefp, O_UID(215) },
+ { "vec_vrfim", 1, 1, O_vec_vrfim, O_UID(216) },
+ { "vec_vrfin", 1, 1, O_vec_vrfin, O_UID(217) },
+ { "vec_vrfip", 1, 1, O_vec_vrfip, O_UID(218) },
+ { "vec_vrfiz", 1, 1, O_vec_vrfiz, O_UID(219) },
+ { "vec_vrlb", 2, 2, O_vec_vrlb, O_UID(220) },
+ { "vec_vrlh", 2, 2, O_vec_vrlh, O_UID(221) },
+ { "vec_vrlw", 2, 2, O_vec_vrlw, O_UID(222) },
+ { "vec_vrsqrtefp", 1, 1, O_vec_vrsqrtefp, O_UID(223) },
+ { "vec_vsel", 20, 3, O_vec_vsel, O_UID(224) },
+ { "vec_vsl", 30, 2, O_vec_vsl, O_UID(225) },
+ { "vec_vslb", 2, 2, O_vec_vslb, O_UID(226) },
+ { "vec_vsldoi", 11, 3, O_vec_vsldoi, O_UID(227) },
+ { "vec_vslh", 2, 2, O_vec_vslh, O_UID(228) },
+ { "vec_vslo", 16, 2, O_vec_vslo, O_UID(229) },
+ { "vec_vslw", 2, 2, O_vec_vslw, O_UID(230) },
+ { "vec_vspltb", 3, 2, O_vec_vspltb, O_UID(231) },
+ { "vec_vsplth", 4, 2, O_vec_vsplth, O_UID(232) },
+ { "vec_vspltisb", 1, 1, O_vec_vspltisb, O_UID(233) },
+ { "vec_vspltish", 1, 1, O_vec_vspltish, O_UID(234) },
+ { "vec_vspltisw", 1, 1, O_vec_vspltisw, O_UID(235) },
+ { "vec_vspltw", 4, 2, O_vec_vspltw, O_UID(236) },
+ { "vec_vsr", 30, 2, O_vec_vsr, O_UID(237) },
+ { "vec_vsrab", 2, 2, O_vec_vsrab, O_UID(238) },
+ { "vec_vsrah", 2, 2, O_vec_vsrah, O_UID(239) },
+ { "vec_vsraw", 2, 2, O_vec_vsraw, O_UID(240) },
+ { "vec_vsrb", 2, 2, O_vec_vsrb, O_UID(241) },
+ { "vec_vsrh", 2, 2, O_vec_vsrh, O_UID(242) },
+ { "vec_vsro", 16, 2, O_vec_vsro, O_UID(243) },
+ { "vec_vsrw", 2, 2, O_vec_vsrw, O_UID(244) },
+ { "vec_vsubcuw", 1, 2, O_vec_vsubcuw, O_UID(245) },
+ { "vec_vsubfp", 1, 2, O_vec_vsubfp, O_UID(246) },
+ { "vec_vsubsbs", 3, 2, O_vec_vsubsbs, O_UID(247) },
+ { "vec_vsubshs", 3, 2, O_vec_vsubshs, O_UID(248) },
+ { "vec_vsubsws", 3, 2, O_vec_vsubsws, O_UID(249) },
+ { "vec_vsububm", 6, 2, O_vec_vsububm, O_UID(250) },
+ { "vec_vsububs", 3, 2, O_vec_vsububs, O_UID(251) },
+ { "vec_vsubuhm", 6, 2, O_vec_vsubuhm, O_UID(252) },
+ { "vec_vsubuhs", 3, 2, O_vec_vsubuhs, O_UID(253) },
+ { "vec_vsubuwm", 6, 2, O_vec_vsubuwm, O_UID(254) },
+ { "vec_vsubuws", 3, 2, O_vec_vsubuws, O_UID(255) },
+ { "vec_vsum2sws", 1, 2, O_vec_vsum2sws, O_UID(256) },
+ { "vec_vsum4sbs", 1, 2, O_vec_vsum4sbs, O_UID(257) },
+ { "vec_vsum4shs", 1, 2, O_vec_vsum4shs, O_UID(258) },
+ { "vec_vsum4ubs", 1, 2, O_vec_vsum4ubs, O_UID(259) },
+ { "vec_vsumsws", 1, 2, O_vec_vsumsws, O_UID(260) },
+ { "vec_vupkhpx", 1, 1, O_vec_vupkhpx, O_UID(261) },
+ { "vec_vupkhsb", 2, 1, O_vec_vupkhsb, O_UID(262) },
+ { "vec_vupkhsh", 2, 1, O_vec_vupkhsh, O_UID(263) },
+ { "vec_vupklpx", 1, 1, O_vec_vupklpx, O_UID(264) },
+ { "vec_vupklsb", 2, 1, O_vec_vupklsb, O_UID(265) },
+ { "vec_vupklsh", 2, 1, O_vec_vupklsh, O_UID(266) },
+ { "vec_vxor", 24, 2, O_vec_vxor, O_UID(267) },
+ { "vec_xor", 24, 2, O_vec_xor, O_UID(268) },
+ { NULL, 0, 0, NULL, 0 }
+};
+#define LAST_O_UID O_UID(269)
diff --git a/gcc/config/rs6000/vec.ops b/gcc/config/rs6000/vec.ops
new file mode 100644
index 00000000000..5ef80a2d6b8
--- /dev/null
+++ b/gcc/config/rs6000/vec.ops
@@ -0,0 +1,1025 @@
+# APPLE LOCAL file AltiVec
+# ops-to-gp -gcc vec.ops builtin.ops
+vec_abs vec_s8 = vec_s8 vec_abs BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 1 FALSE FALSE transform_vec_abs
+vec_abs vec_s16 = vec_s16 vec_abs BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 2 FALSE FALSE transform_vec_abs
+vec_abs vec_s32 = vec_s32 vec_abs BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 3 FALSE FALSE transform_vec_abs
+vec_abs vec_f32 = vec_f32 vec_abs BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 4 FALSE FALSE transform_vec_abs
+vec_abss vec_s8 = vec_s8 vec_abss BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 5 FALSE FALSE transform_vec_abs
+vec_abss vec_s16 = vec_s16 vec_abss BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 6 FALSE FALSE transform_vec_abs
+vec_abss vec_s32 = vec_s32 vec_abss BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE 7 FALSE FALSE transform_vec_abs
+vec_cmplt vec_u8 vec_u8 = vec_b8 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtub FALSE FALSE transform_vec_cmp_reverse
+vec_cmplt vec_u16 vec_u16 = vec_b16 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuh FALSE FALSE transform_vec_cmp_reverse
+vec_cmplt vec_u32 vec_u32 = vec_b32 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuw FALSE FALSE transform_vec_cmp_reverse
+vec_cmplt vec_s8 vec_s8 = vec_b8 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsb FALSE FALSE transform_vec_cmp_reverse
+vec_cmplt vec_s16 vec_s16 = vec_b16 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsh FALSE FALSE transform_vec_cmp_reverse
+vec_cmplt vec_s32 vec_s32 = vec_b32 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsw FALSE FALSE transform_vec_cmp_reverse
+vec_cmplt vec_f32 vec_f32 = vec_b32 vec_cmplt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfp FALSE FALSE transform_vec_cmp_reverse
+vec_cmple vec_f32 vec_f32 = vec_b32 vec_cmple BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefp FALSE FALSE transform_vec_cmp_reverse
+vec_add vec_s8 vec_s8 = vec_s8 vec_vaddubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_s8 vec_b8 = vec_s8 vec_vaddubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_b8 vec_s8 = vec_s8 vec_vaddubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_s16 vec_s16 = vec_s16 vec_vadduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_s16 vec_b16 = vec_s16 vec_vadduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_b16 vec_s16 = vec_s16 vec_vadduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_s32 vec_s32 = vec_s32 vec_vadduwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_s32 vec_b32 = vec_s32 vec_vadduwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_b32 vec_s32 = vec_s32 vec_vadduwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_u8 vec_u8 = vec_u8 vec_vaddubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_u8 vec_b8 = vec_u8 vec_vaddubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_b8 vec_u8 = vec_u8 vec_vaddubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_u16 vec_u16 = vec_u16 vec_vadduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_u16 vec_b16 = vec_u16 vec_vadduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_b16 vec_u16 = vec_u16 vec_vadduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_u32 vec_u32 = vec_u32 vec_vadduwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_u32 vec_b32 = vec_u32 vec_vadduwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_b32 vec_u32 = vec_u32 vec_vadduwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_s8 vec_s8 = vec_s8 vec_vaddsbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_s8 vec_b8 = vec_s8 vec_vaddsbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_b8 vec_s8 = vec_s8 vec_vaddsbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_s16 vec_s16 = vec_s16 vec_vaddshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_s16 vec_b16 = vec_s16 vec_vaddshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_b16 vec_s16 = vec_s16 vec_vaddshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_s32 vec_s32 = vec_s32 vec_vaddsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_s32 vec_b32 = vec_s32 vec_vaddsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_b32 vec_s32 = vec_s32 vec_vaddsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_u8 vec_u8 = vec_u8 vec_vaddubs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_u8 vec_b8 = vec_u8 vec_vaddubs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_b8 vec_u8 = vec_u8 vec_vaddubs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_u16 vec_u16 = vec_u16 vec_vadduhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_u16 vec_b16 = vec_u16 vec_vadduhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_b16 vec_u16 = vec_u16 vec_vadduhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_u32 vec_u32 = vec_u32 vec_vadduws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_u32 vec_b32 = vec_u32 vec_vadduws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_adds vec_b32 vec_u32 = vec_u32 vec_vadduws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_s8 vec_s8 = vec_s8 vec_vsububm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_s8 vec_b8 = vec_s8 vec_vsububm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_b8 vec_s8 = vec_s8 vec_vsububm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_s16 vec_s16 = vec_s16 vec_vsubuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_s16 vec_b16 = vec_s16 vec_vsubuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_b16 vec_s16 = vec_s16 vec_vsubuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_s32 vec_s32 = vec_s32 vec_vsubuwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_s32 vec_b32 = vec_s32 vec_vsubuwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_b32 vec_s32 = vec_s32 vec_vsubuwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_u8 vec_u8 = vec_u8 vec_vsububm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_u8 vec_b8 = vec_u8 vec_vsububm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_b8 vec_u8 = vec_u8 vec_vsububm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_u16 vec_u16 = vec_u16 vec_vsubuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_u16 vec_b16 = vec_u16 vec_vsubuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_b16 vec_u16 = vec_u16 vec_vsubuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_u32 vec_u32 = vec_u32 vec_vsubuwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_u32 vec_b32 = vec_u32 vec_vsubuwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_b32 vec_u32 = vec_u32 vec_vsubuwm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_s8 vec_s8 = vec_s8 vec_vsubsbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_s8 vec_b8 = vec_s8 vec_vsubsbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_b8 vec_s8 = vec_s8 vec_vsubsbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_s16 vec_s16 = vec_s16 vec_vsubshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_s16 vec_b16 = vec_s16 vec_vsubshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_b16 vec_s16 = vec_s16 vec_vsubshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_s32 vec_s32 = vec_s32 vec_vsubsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_s32 vec_b32 = vec_s32 vec_vsubsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_b32 vec_s32 = vec_s32 vec_vsubsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_u8 vec_u8 = vec_u8 vec_vsububs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_u8 vec_b8 = vec_u8 vec_vsububs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_b8 vec_u8 = vec_u8 vec_vsububs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_u16 vec_u16 = vec_u16 vec_vsubuhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_u16 vec_b16 = vec_u16 vec_vsubuhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_b16 vec_u16 = vec_u16 vec_vsubuhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_u32 vec_u32 = vec_u32 vec_vsubuws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_u32 vec_b32 = vec_u32 vec_vsubuws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subs vec_b32 vec_u32 = vec_u32 vec_vsubuws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_addc vec_u32 vec_u32 = vec_u32 vec_vaddcuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_subc vec_u32 vec_u32 = vec_u32 vec_vsubcuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mulo vec_u8 vec_u8 = vec_u16 vec_vmuloub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mulo vec_u16 vec_u16 = vec_u32 vec_vmulouh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mulo vec_s8 vec_s8 = vec_s16 vec_vmulosb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mulo vec_s16 vec_s16 = vec_s32 vec_vmulosh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mule vec_u8 vec_u8 = vec_u16 vec_vmuleub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mule vec_u16 vec_u16 = vec_u32 vec_vmuleuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mule vec_s8 vec_s8 = vec_s16 vec_vmulesb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mule vec_s16 vec_s16 = vec_s32 vec_vmulesh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mladd vec_s16 vec_s16 vec_s16 = vec_s16 vec_vmladduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mladd vec_u16 vec_u16 vec_u16 = vec_u16 vec_vmladduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mladd vec_s16 vec_u16 vec_u16 = vec_s16 vec_vmladduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mladd vec_u16 vec_s16 vec_s16 = vec_s16 vec_vmladduhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_madds vec_s16 vec_s16 vec_s16 = vec_s16 vec_vmhaddshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mradds vec_s16 vec_s16 vec_s16 = vec_s16 vec_vmhraddshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_msum vec_s8 vec_u8 vec_s32 = vec_s32 vec_vmsummbm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_msum vec_u8 vec_u8 vec_u32 = vec_u32 vec_vmsumubm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_msum vec_s16 vec_s16 vec_s32 = vec_s32 vec_vmsumshm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_msum vec_u16 vec_u16 vec_u32 = vec_u32 vec_vmsumuhm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_msums vec_s16 vec_s16 vec_s32 = vec_s32 vec_vmsumshs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_msums vec_u16 vec_u16 vec_u32 = vec_u32 vec_vmsumuhs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sums vec_s32 vec_s32 = vec_s32 vec_vsumsws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sum2s vec_s32 vec_s32 = vec_s32 vec_vsum2sws BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sum4s vec_s8 vec_s32 = vec_s32 vec_vsum4sbs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sum4s vec_u8 vec_u32 = vec_u32 vec_vsum4ubs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sum4s vec_s16 vec_s32 = vec_s32 vec_vsum4shs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_avg vec_s8 vec_s8 = vec_s8 vec_vavgsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_avg vec_s16 vec_s16 = vec_s16 vec_vavgsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_avg vec_u8 vec_u8 = vec_u8 vec_vavgub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_avg vec_u16 vec_u16 = vec_u16 vec_vavguh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_avg vec_s32 vec_s32 = vec_s32 vec_vavgsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_avg vec_u32 vec_u32 = vec_u32 vec_vavguw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_s8 vec_s8 = vec_s8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_s8 vec_b8 = vec_s8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b8 vec_s8 = vec_s8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_u8 vec_u8 = vec_u8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b8 vec_u8 = vec_u8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_u8 vec_b8 = vec_u8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b8 vec_b8 = vec_b8 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_s16 vec_s16 = vec_s16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_s16 vec_b16 = vec_s16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b16 vec_s16 = vec_s16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_u16 vec_u16 = vec_u16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b16 vec_u16 = vec_u16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_u16 vec_b16 = vec_u16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b16 vec_b16 = vec_b16 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_s32 vec_s32 = vec_s32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_s32 vec_b32 = vec_s32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b32 vec_s32 = vec_s32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_u32 vec_u32 = vec_u32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b32 vec_u32 = vec_u32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_u32 vec_b32 = vec_u32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b32 vec_b32 = vec_b32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_f32 vec_f32 = vec_f32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_f32 vec_b32 = vec_f32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_and vec_b32 vec_f32 = vec_f32 vec_vand BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_s8 vec_s8 = vec_s8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_s8 vec_b8 = vec_s8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b8 vec_s8 = vec_s8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_u8 vec_u8 = vec_u8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b8 vec_u8 = vec_u8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_u8 vec_b8 = vec_u8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b8 vec_b8 = vec_b8 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_s16 vec_s16 = vec_s16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_s16 vec_b16 = vec_s16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b16 vec_s16 = vec_s16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_u16 vec_u16 = vec_u16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b16 vec_u16 = vec_u16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_u16 vec_b16 = vec_u16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b16 vec_b16 = vec_b16 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_s32 vec_s32 = vec_s32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_s32 vec_b32 = vec_s32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b32 vec_s32 = vec_s32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_u32 vec_u32 = vec_u32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b32 vec_u32 = vec_u32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_u32 vec_b32 = vec_u32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b32 vec_b32 = vec_b32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_f32 vec_f32 = vec_f32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_f32 vec_b32 = vec_f32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_or vec_b32 vec_f32 = vec_f32 vec_vor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_s8 vec_s8 = vec_s8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_s8 vec_b8 = vec_s8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b8 vec_s8 = vec_s8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_u8 vec_u8 = vec_u8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b8 vec_u8 = vec_u8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_u8 vec_b8 = vec_u8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b8 vec_b8 = vec_b8 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_s16 vec_s16 = vec_s16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_s16 vec_b16 = vec_s16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b16 vec_s16 = vec_s16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_u16 vec_u16 = vec_u16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b16 vec_u16 = vec_u16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_u16 vec_b16 = vec_u16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b16 vec_b16 = vec_b16 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_s32 vec_s32 = vec_s32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_s32 vec_b32 = vec_s32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b32 vec_s32 = vec_s32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_u32 vec_u32 = vec_u32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b32 vec_u32 = vec_u32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_u32 vec_b32 = vec_u32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b32 vec_b32 = vec_b32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_f32 vec_f32 = vec_f32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_f32 vec_b32 = vec_f32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_xor vec_b32 vec_f32 = vec_f32 vec_vxor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_s8 vec_s8 = vec_s8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_s8 vec_b8 = vec_s8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b8 vec_s8 = vec_s8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_u8 vec_u8 = vec_u8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b8 vec_u8 = vec_u8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_u8 vec_b8 = vec_u8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b8 vec_b8 = vec_b8 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_s16 vec_s16 = vec_s16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_s16 vec_b16 = vec_s16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b16 vec_s16 = vec_s16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_u16 vec_u16 = vec_u16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b16 vec_u16 = vec_u16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_u16 vec_b16 = vec_u16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b16 vec_b16 = vec_b16 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_s32 vec_s32 = vec_s32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_s32 vec_b32 = vec_s32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b32 vec_s32 = vec_s32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_u32 vec_u32 = vec_u32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b32 vec_u32 = vec_u32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_u32 vec_b32 = vec_u32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b32 vec_b32 = vec_b32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_f32 vec_f32 = vec_f32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_f32 vec_b32 = vec_f32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_andc vec_b32 vec_f32 = vec_f32 vec_vandc BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_u8 vec_u8 = vec_u8 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_s8 vec_s8 = vec_s8 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_b8 vec_b8 = vec_b8 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_u16 vec_u16 = vec_u16 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_s16 vec_s16 = vec_s16 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_b16 vec_b16 = vec_b16 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_u32 vec_u32 = vec_u32 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_s32 vec_s32 = vec_s32 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_b32 vec_b32 = vec_b32 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nor vec_f32 vec_f32 = vec_f32 vec_vnor BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rl vec_u8 vec_u8 = vec_u8 vec_vrlb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rl vec_u16 vec_u16 = vec_u16 vec_vrlh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rl vec_u32 vec_u32 = vec_u32 vec_vrlw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rl vec_s8 vec_u8 = vec_s8 vec_vrlb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rl vec_s16 vec_u16 = vec_s16 vec_vrlh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rl vec_s32 vec_u32 = vec_s32 vec_vrlw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sl vec_u8 vec_u8 = vec_u8 vec_vslb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sl vec_u16 vec_u16 = vec_u16 vec_vslh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sl vec_u32 vec_u32 = vec_u32 vec_vslw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sl vec_s8 vec_u8 = vec_s8 vec_vslb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sl vec_s16 vec_u16 = vec_s16 vec_vslh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sl vec_s32 vec_u32 = vec_s32 vec_vslw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u8 vec_u8 = vec_u8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u16 vec_u8 = vec_u16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u32 vec_u8 = vec_u32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s8 vec_u8 = vec_s8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s16 vec_u8 = vec_s16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s32 vec_u8 = vec_s32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b8 vec_u8 = vec_b8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b16 vec_u8 = vec_b16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b32 vec_u8 = vec_b32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_p16 vec_u8 = vec_p16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u8 vec_u16 = vec_u8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u16 vec_u16 = vec_u16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u32 vec_u16 = vec_u32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s8 vec_u16 = vec_s8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s16 vec_u16 = vec_s16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s32 vec_u16 = vec_s32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b8 vec_u16 = vec_b8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b16 vec_u16 = vec_b16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b32 vec_u16 = vec_b32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_p16 vec_u16 = vec_p16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u8 vec_u32 = vec_u8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u16 vec_u32 = vec_u16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_u32 vec_u32 = vec_u32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s8 vec_u32 = vec_s8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s16 vec_u32 = vec_s16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_s32 vec_u32 = vec_s32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b8 vec_u32 = vec_b8 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b16 vec_u32 = vec_b16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_b32 vec_u32 = vec_b32 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sll vec_p16 vec_u32 = vec_p16 vec_vsl BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sr vec_u8 vec_u8 = vec_u8 vec_vsrb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sr vec_u16 vec_u16 = vec_u16 vec_vsrh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sr vec_u32 vec_u32 = vec_u32 vec_vsrw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sr vec_s8 vec_u8 = vec_s8 vec_vsrb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sr vec_s16 vec_u16 = vec_s16 vec_vsrh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sr vec_s32 vec_u32 = vec_s32 vec_vsrw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sra vec_u8 vec_u8 = vec_u8 vec_vsrab BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sra vec_u16 vec_u16 = vec_u16 vec_vsrah BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sra vec_u32 vec_u32 = vec_u32 vec_vsraw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sra vec_s8 vec_u8 = vec_s8 vec_vsrab BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sra vec_s16 vec_u16 = vec_s16 vec_vsrah BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sra vec_s32 vec_u32 = vec_s32 vec_vsraw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u8 vec_u8 = vec_u8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u16 vec_u8 = vec_u16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u32 vec_u8 = vec_u32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s8 vec_u8 = vec_s8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s16 vec_u8 = vec_s16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s32 vec_u8 = vec_s32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b8 vec_u8 = vec_b8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b16 vec_u8 = vec_b16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b32 vec_u8 = vec_b32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_p16 vec_u8 = vec_p16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u8 vec_u16 = vec_u8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u16 vec_u16 = vec_u16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u32 vec_u16 = vec_u32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s8 vec_u16 = vec_s8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s16 vec_u16 = vec_s16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s32 vec_u16 = vec_s32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b8 vec_u16 = vec_b8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b16 vec_u16 = vec_b16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b32 vec_u16 = vec_b32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_p16 vec_u16 = vec_p16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u8 vec_u32 = vec_u8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u16 vec_u32 = vec_u16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_u32 vec_u32 = vec_u32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s8 vec_u32 = vec_s8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s16 vec_u32 = vec_s16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_s32 vec_u32 = vec_s32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b8 vec_u32 = vec_b8 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b16 vec_u32 = vec_b16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_b32 vec_u32 = vec_b32 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_srl vec_p16 vec_u32 = vec_p16 vec_vsr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_u8 vec_u8 = vec_b8 vec_vcmpgtub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_u16 vec_u16 = vec_b16 vec_vcmpgtuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_u32 vec_u32 = vec_b32 vec_vcmpgtuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_s8 vec_s8 = vec_b8 vec_vcmpgtsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_s16 vec_s16 = vec_b16 vec_vcmpgtsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_s32 vec_s32 = vec_b32 vec_vcmpgtsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_u8 vec_u8 = vec_b8 vec_vcmpequb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_u16 vec_u16 = vec_b16 vec_vcmpequh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_u32 vec_u32 = vec_b32 vec_vcmpequw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_s8 vec_s8 = vec_b8 vec_vcmpequb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_s16 vec_s16 = vec_b16 vec_vcmpequh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_s32 vec_s32 = vec_b32 vec_vcmpequw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_b8 vec_b8 vec_b8 = vec_b8 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_b8 vec_b8 vec_u8 = vec_b8 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_u8 vec_u8 vec_u8 = vec_u8 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_u8 vec_u8 vec_b8 = vec_u8 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_s8 vec_s8 vec_u8 = vec_s8 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_s8 vec_s8 vec_b8 = vec_s8 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_b16 vec_b16 vec_b16 = vec_b16 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_b16 vec_b16 vec_u16 = vec_b16 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_u16 vec_u16 vec_u16 = vec_u16 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_u16 vec_u16 vec_b16 = vec_u16 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_s16 vec_s16 vec_u16 = vec_s16 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_s16 vec_s16 vec_b16 = vec_s16 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_b32 vec_b32 vec_b32 = vec_b32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_b32 vec_b32 vec_u32 = vec_b32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_u32 vec_u32 vec_u32 = vec_u32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_u32 vec_u32 vec_b32 = vec_u32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_s32 vec_s32 vec_u32 = vec_s32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_s32 vec_s32 vec_b32 = vec_s32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_f32 vec_f32 vec_b32 = vec_f32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sel vec_f32 vec_f32 vec_u32 = vec_f32 vec_vsel BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_pack vec_u16 vec_u16 = vec_u8 vec_vpkuhum BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_pack vec_u32 vec_u32 = vec_u16 vec_vpkuwum BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_pack vec_s16 vec_s16 = vec_s8 vec_vpkuhum BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_pack vec_s32 vec_s32 = vec_s16 vec_vpkuwum BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_pack vec_b16 vec_b16 = vec_b8 vec_vpkuhum BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_pack vec_b32 vec_b32 = vec_b16 vec_vpkuwum BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packs vec_u16 vec_u16 = vec_u8 vec_vpkuhus BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packs vec_u32 vec_u32 = vec_u16 vec_vpkuwus BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packsu vec_u16 vec_u16 = vec_u8 vec_vpkuhus BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packsu vec_u32 vec_u32 = vec_u16 vec_vpkuwus BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packs vec_s16 vec_s16 = vec_s8 vec_vpkshss BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packs vec_s32 vec_s32 = vec_s16 vec_vpkswss BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packsu vec_s16 vec_s16 = vec_u8 vec_vpkshus BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packsu vec_s32 vec_s32 = vec_u16 vec_vpkswus BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_packpx vec_u32 vec_u32 = vec_p16 vec_vpkpx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackh vec_s8 = vec_s16 vec_vupkhsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackh vec_s16 = vec_s32 vec_vupkhsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackh vec_b8 = vec_b16 vec_vupkhsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackh vec_b16 = vec_b32 vec_vupkhsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackh vec_p16 = vec_u32 vec_vupkhpx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackl vec_s8 = vec_s16 vec_vupklsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackl vec_s16 = vec_s32 vec_vupklsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackl vec_b8 = vec_b16 vec_vupklsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackl vec_b16 = vec_b32 vec_vupklsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpackl vec_p16 = vec_u32 vec_vupklpx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_u8 vec_u8 = vec_u8 vec_vmrghb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_u16 vec_u16 = vec_u16 vec_vmrghh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_u32 vec_u32 = vec_u32 vec_vmrghw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_s8 vec_s8 = vec_s8 vec_vmrghb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_s16 vec_s16 = vec_s16 vec_vmrghh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_s32 vec_s32 = vec_s32 vec_vmrghw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_f32 vec_f32 = vec_f32 vec_vmrghw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_p16 vec_p16 = vec_p16 vec_vmrghh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_b8 vec_b8 = vec_b8 vec_vmrghb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_b16 vec_b16 = vec_b16 vec_vmrghh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergeh vec_b32 vec_b32 = vec_b32 vec_vmrghw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpack2uh vec_u8 vec_u8 = vec_u16 vec_unpack2uh BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrghb
+vec_unpack2uh vec_u16 vec_u16 = vec_u32 vec_unpack2uh BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrghh
+vec_unpack2sh vec_u8 vec_u8 = vec_s16 vec_unpack2sh BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrghb
+vec_unpack2sh vec_u16 vec_u16 = vec_s32 vec_unpack2sh BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrghh
+vec_mergel vec_u8 vec_u8 = vec_u8 vec_vmrglb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_u16 vec_u16 = vec_u16 vec_vmrglh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_u32 vec_u32 = vec_u32 vec_vmrglw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_s8 vec_s8 = vec_s8 vec_vmrglb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_s16 vec_s16 = vec_s16 vec_vmrglh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_s32 vec_s32 = vec_s32 vec_vmrglw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_f32 vec_f32 = vec_f32 vec_vmrglw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_p16 vec_p16 = vec_p16 vec_vmrglh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_b8 vec_b8 = vec_b8 vec_vmrglb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_b16 vec_b16 = vec_b16 vec_vmrglh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mergel vec_b32 vec_b32 = vec_b32 vec_vmrglw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_unpack2ul vec_u8 vec_u8 = vec_u16 vec_unpack2ul BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrglb
+vec_unpack2ul vec_u16 vec_u16 = vec_u32 vec_unpack2ul BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrglh
+vec_unpack2sl vec_u8 vec_u8 = vec_s16 vec_unpack2sl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrglb
+vec_unpack2sl vec_u16 vec_u16 = vec_s32 vec_unpack2sl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vmrglh
+vec_splat vec_u8 immed_u5 = vec_u8 vec_vspltb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_u16 immed_u5 = vec_u16 vec_vsplth BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_u32 immed_u5 = vec_u32 vec_vspltw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_s8 immed_u5 = vec_s8 vec_vspltb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_s16 immed_u5 = vec_s16 vec_vsplth BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_s32 immed_u5 = vec_s32 vec_vspltw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_b8 immed_u5 = vec_b8 vec_vspltb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_b16 immed_u5 = vec_b16 vec_vsplth BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_b32 immed_u5 = vec_b32 vec_vspltw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_p16 immed_u5 = vec_p16 vec_vsplth BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat vec_f32 immed_u5 = vec_f32 vec_vspltw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat_s8 immed_s5 = vec_s8 vec_vspltisb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat_s16 immed_s5 = vec_s16 vec_vspltish BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat_s32 immed_s5 = vec_s32 vec_vspltisw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_splat_u8 immed_s5 = vec_u8 vec_splat_u8 BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vspltisb
+vec_splat_u16 immed_s5 = vec_u16 vec_splat_u16 BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vspltish
+vec_splat_u32 immed_s5 = vec_u32 vec_splat_u32 BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vspltisw
+vec_perm vec_u8 vec_u8 vec_u8 = vec_u8 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_u16 vec_u16 vec_u8 = vec_u16 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_u32 vec_u32 vec_u8 = vec_u32 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_s8 vec_s8 vec_u8 = vec_s8 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_s16 vec_s16 vec_u8 = vec_s16 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_s32 vec_s32 vec_u8 = vec_s32 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_b8 vec_b8 vec_u8 = vec_b8 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_b16 vec_b16 vec_u8 = vec_b16 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_b32 vec_b32 vec_u8 = vec_b32 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_p16 vec_p16 vec_u8 = vec_p16 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_perm vec_f32 vec_f32 vec_u8 = vec_f32 vec_vperm BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_u8 vec_u8 immed_u4 = vec_u8 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_u16 vec_u16 immed_u4 = vec_u16 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_u32 vec_u32 immed_u4 = vec_u32 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_s8 vec_s8 immed_u4 = vec_s8 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_s16 vec_s16 immed_u4 = vec_s16 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_s32 vec_s32 immed_u4 = vec_s32 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_p16 vec_p16 immed_u4 = vec_p16 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_f32 vec_f32 immed_u4 = vec_f32 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_b8 vec_b8 immed_u4 = vec_b8 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_b16 vec_b16 immed_u4 = vec_b16 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sld vec_b32 vec_b32 immed_u4 = vec_b32 vec_vsldoi BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_u8 vec_u8 = vec_u8 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_u16 vec_u8 = vec_u16 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_u32 vec_u8 = vec_u32 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_s8 vec_u8 = vec_s8 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_s16 vec_u8 = vec_s16 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_s32 vec_u8 = vec_s32 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_p16 vec_u8 = vec_p16 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_u8 vec_s8 = vec_u8 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_u16 vec_s8 = vec_u16 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_u32 vec_s8 = vec_u32 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_s8 vec_s8 = vec_s8 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_s16 vec_s8 = vec_s16 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_s32 vec_s8 = vec_s32 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_p16 vec_s8 = vec_p16 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_f32 vec_u8 = vec_f32 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_slo vec_f32 vec_s8 = vec_f32 vec_vslo BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_u8 vec_u8 = vec_u8 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_u16 vec_u8 = vec_u16 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_u32 vec_u8 = vec_u32 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_s8 vec_u8 = vec_s8 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_s16 vec_u8 = vec_s16 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_s32 vec_u8 = vec_s32 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_p16 vec_u8 = vec_p16 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_u8 vec_s8 = vec_u8 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_u16 vec_s8 = vec_u16 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_u32 vec_s8 = vec_u32 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_s8 vec_s8 = vec_s8 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_s16 vec_s8 = vec_s16 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_s32 vec_s8 = vec_s32 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_p16 vec_s8 = vec_p16 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_f32 vec_u8 = vec_f32 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sro vec_f32 vec_s8 = vec_f32 vec_vsro BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_u8 vec_u8 = vec_u8 vec_vmaxub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_u8 vec_b8 = vec_u8 vec_vmaxub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_b8 vec_u8 = vec_u8 vec_vmaxub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_s8 vec_s8 = vec_s8 vec_vmaxsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_s8 vec_b8 = vec_s8 vec_vmaxsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_b8 vec_s8 = vec_s8 vec_vmaxsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_u16 vec_u16 = vec_u16 vec_vmaxuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_u16 vec_b16 = vec_u16 vec_vmaxuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_b16 vec_u16 = vec_u16 vec_vmaxuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_s16 vec_s16 = vec_s16 vec_vmaxsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_s16 vec_b16 = vec_s16 vec_vmaxsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_b16 vec_s16 = vec_s16 vec_vmaxsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_u32 vec_u32 = vec_u32 vec_vmaxuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_u32 vec_b32 = vec_u32 vec_vmaxuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_b32 vec_u32 = vec_u32 vec_vmaxuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_s32 vec_s32 = vec_s32 vec_vmaxsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_s32 vec_b32 = vec_s32 vec_vmaxsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_b32 vec_s32 = vec_s32 vec_vmaxsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_u8 vec_u8 = vec_u8 vec_vminub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_u8 vec_b8 = vec_u8 vec_vminub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_b8 vec_u8 = vec_u8 vec_vminub BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_s8 vec_s8 = vec_s8 vec_vminsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_s8 vec_b8 = vec_s8 vec_vminsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_b8 vec_s8 = vec_s8 vec_vminsb BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_u16 vec_u16 = vec_u16 vec_vminuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_u16 vec_b16 = vec_u16 vec_vminuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_b16 vec_u16 = vec_u16 vec_vminuh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_s16 vec_s16 = vec_s16 vec_vminsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_s16 vec_b16 = vec_s16 vec_vminsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_b16 vec_s16 = vec_s16 vec_vminsh BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_u32 vec_u32 = vec_u32 vec_vminuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_u32 vec_b32 = vec_u32 vec_vminuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_b32 vec_u32 = vec_u32 vec_vminuw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_s32 vec_s32 = vec_s32 vec_vminsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_s32 vec_b32 = vec_s32 vec_vminsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_b32 vec_s32 = vec_s32 vec_vminsw BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_lde int const_unsigned_char_ptr = vec_u8_load_op vec_lvebx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvebx TRUE FALSE
+vec_lde int const_unsigned_short_ptr = vec_u16_load_op vec_lvehx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvehx TRUE FALSE
+vec_lde int const_unsigned_int_ptr = vec_u32_load_op vec_lvewx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvewx TRUE FALSE
+vec_lde int const_unsigned_long_ptr = vec_u32_load_op vec_lvewx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvewx TRUE FALSE
+vec_lde int const_signed_char_ptr = vec_s8_load_op vec_lvebx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvebx TRUE FALSE
+vec_lde int const_short_ptr = vec_s16_load_op vec_lvehx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvehx TRUE FALSE
+vec_lde int const_int_ptr = vec_s32_load_op vec_lvewx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvewx TRUE FALSE
+vec_lde int const_long_ptr = vec_s32_load_op vec_lvewx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvewx TRUE FALSE
+vec_lde int const_float_ptr = vec_f32_load_op vec_lvewx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvewx TRUE FALSE
+vec_ld int const_unsigned_char_ptr = vec_u8_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_unsigned_short_ptr = vec_u16_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_unsigned_int_ptr = vec_u32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_unsigned_long_ptr = vec_u32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_signed_char_ptr = vec_s8_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_short_ptr = vec_s16_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_int_ptr = vec_s32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_long_ptr = vec_s32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_float_ptr = vec_f32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ldl int const_unsigned_char_ptr = vec_u8_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_unsigned_short_ptr = vec_u16_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_unsigned_int_ptr = vec_u32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_unsigned_long_ptr = vec_u32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_signed_char_ptr = vec_s8_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_short_ptr = vec_s16_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_int_ptr = vec_s32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_long_ptr = vec_s32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_float_ptr = vec_f32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ld int const_vec_u8_ptr = vec_u8_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_u16_ptr = vec_u16_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_u32_ptr = vec_u32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_s8_ptr = vec_s8_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_s16_ptr = vec_s16_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_s32_ptr = vec_s32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_p16_ptr = vec_p16_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_b8_ptr = vec_b8_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_b16_ptr = vec_b16_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_b32_ptr = vec_b32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ld int const_vec_f32_ptr = vec_f32_load_op vec_lvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvx TRUE FALSE transform_lvx
+vec_ldl int const_vec_u8_ptr = vec_u8_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_u16_ptr = vec_u16_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_u32_ptr = vec_u32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_s8_ptr = vec_s8_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_s16_ptr = vec_s16_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_s32_ptr = vec_s32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_p16_ptr = vec_p16_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_b8_ptr = vec_b8_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_b16_ptr = vec_b16_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_b32_ptr = vec_b32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ldl int const_vec_f32_ptr = vec_f32_load_op vec_lvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvxl TRUE FALSE transform_lvx
+vec_ste vec_u8 int unsigned_char_ptr = void_store_op vec_stvebx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_u16 int unsigned_short_ptr = void_store_op vec_stvehx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_u32 int unsigned_int_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_u32 int unsigned_long_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_s8 int signed_char_ptr = void_store_op vec_stvebx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_s16 int short_ptr = void_store_op vec_stvehx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_s32 int int_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_s32 int long_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_f32 int float_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_p16 int short_ptr = void_store_op vec_stvehx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_p16 int unsigned_short_ptr = void_store_op vec_stvehx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b8 int unsigned_char_ptr = void_store_op vec_stvebx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b8 int signed_char_ptr = void_store_op vec_stvebx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b16 int unsigned_short_ptr = void_store_op vec_stvebx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b16 int short_ptr = void_store_op vec_stvebx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b32 int unsigned_int_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b32 int unsigned_long_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b32 int int_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ste vec_b32 int long_ptr = void_store_op vec_stvewx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_st vec_u8 int unsigned_char_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_u16 int unsigned_short_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_u32 int unsigned_int_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_u32 int unsigned_long_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s8 int signed_char_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s16 int short_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s32 int int_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s32 int long_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_f32 int float_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_p16 int short_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_p16 int unsigned_short_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b8 int unsigned_char_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b8 int signed_char_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b16 int unsigned_short_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b16 int short_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b32 int unsigned_int_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b32 int unsigned_long_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b32 int int_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b32 int long_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_stl vec_u8 int unsigned_char_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_u16 int unsigned_short_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_u32 int unsigned_int_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_u32 int unsigned_long_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s8 int signed_char_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s16 int short_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s32 int int_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s32 int long_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_f32 int float_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_p16 int short_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_p16 int unsigned_short_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b8 int unsigned_char_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b8 int signed_char_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b16 int unsigned_short_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b16 int short_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b32 int unsigned_int_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b32 int unsigned_long_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b32 int int_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b32 int long_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_st vec_u8 int vec_u8_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_u16 int vec_u16_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_u32 int vec_u32_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s8 int vec_s8_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s16 int vec_s16_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_s32 int vec_s32_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b8 int vec_b8_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b16 int vec_b16_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_b32 int vec_b32_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_p16 int vec_p16_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_st vec_f32 int vec_f32_ptr = void_store_op vec_stvx BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvx FALSE FALSE transform_stvx
+vec_stl vec_u8 int vec_u8_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_u16 int vec_u16_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_u32 int vec_u32_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s8 int vec_s8_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s16 int vec_s16_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_s32 int vec_s32_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b8 int vec_b8_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b16 int vec_b16_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_b32 int vec_b32_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_p16 int vec_p16_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_stl vec_f32 int vec_f32_ptr = void_store_op vec_stvxl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_stvxl FALSE FALSE transform_stvx
+vec_lvsl int const_volatile_unsigned_char_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_unsigned_short_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_unsigned_int_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_unsigned_long_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_signed_char_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_short_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_int_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_long_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsl int const_volatile_float_ptr = vec_u8 vec_lvsl BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsl TRUE TRUE
+vec_lvsr int const_volatile_unsigned_char_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_unsigned_short_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_unsigned_int_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_unsigned_long_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_signed_char_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_short_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_int_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_long_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_lvsr int const_volatile_float_ptr = vec_u8 vec_lvsr BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_lvsr TRUE TRUE
+vec_mfvscr = volatile_vec_u16 vec_mfvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_u8 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_u16 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_u32 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_s8 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_s16 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_s32 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_b8 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_b16 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_b32 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_mtvscr vec_p16 = volatile_void vec_mtvscr BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_dst const_unsigned_char_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_unsigned_short_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_unsigned_int_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_unsigned_long_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_signed_char_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_short_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_int_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_long_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_float_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dstt const_unsigned_char_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_unsigned_short_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_unsigned_int_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_unsigned_long_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_signed_char_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_short_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_int_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_long_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_float_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstst const_unsigned_char_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_unsigned_short_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_unsigned_int_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_unsigned_long_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_signed_char_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_short_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_int_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_long_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_float_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dststt const_unsigned_char_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_unsigned_short_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_unsigned_int_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_unsigned_long_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_signed_char_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_short_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_int_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_long_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_float_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dst const_vec_u8_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_u16_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_u32_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_s8_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_s16_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_s32_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_b8_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_b16_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_b32_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_p16_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dst const_vec_f32_ptr int immed_u2 = volatile_void_load_op vec_dst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dst TRUE FALSE
+vec_dstt const_vec_u8_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_u16_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_u32_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_s8_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_s16_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_s32_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_b8_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_b16_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_b32_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_p16_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstt const_vec_f32_ptr int immed_u2 = volatile_void_load_op vec_dstt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstt TRUE FALSE
+vec_dstst const_vec_u8_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_u16_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_u32_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_s8_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_s16_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_s32_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_b8_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_b16_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_b32_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_p16_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dstst const_vec_f32_ptr int immed_u2 = volatile_void_load_op vec_dstst BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dstst TRUE FALSE
+vec_dststt const_vec_u8_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_u16_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_u32_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_s8_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_s16_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_s32_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_b8_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_b16_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_b32_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_p16_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dststt const_vec_f32_ptr int immed_u2 = volatile_void_load_op vec_dststt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_dststt TRUE FALSE
+vec_dss immed_u2 = volatile_void_load_op vec_dss BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_dssall = volatile_void_load_op vec_dssall BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_add vec_f32 vec_f32 = vec_f32 vec_vaddfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_sub vec_f32 vec_f32 = vec_f32 vec_vsubfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_madd vec_f32 vec_f32 vec_f32 = vec_f32 vec_vmaddfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_nmsub vec_f32 vec_f32 vec_f32 = vec_f32 vec_vnmsubfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpgt vec_f32 vec_f32 = vec_b32 vec_vcmpgtfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpge vec_f32 vec_f32 = vec_b32 vec_vcmpgefp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpeq vec_f32 vec_f32 = vec_b32 vec_vcmpeqfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cmpb vec_f32 vec_f32 = vec_s32 vec_vcmpbfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_max vec_f32 vec_f32 = vec_f32 vec_vmaxfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_min vec_f32 vec_f32 = vec_f32 vec_vminfp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_re vec_f32 = vec_f32 vec_vrefp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_rsqrte vec_f32 = vec_f32 vec_vrsqrtefp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_loge vec_f32 = vec_f32 vec_vlogefp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_expte vec_f32 = vec_f32 vec_vexptefp BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_trunc vec_f32 = vec_f32 vec_vrfiz BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_round vec_f32 = vec_f32 vec_vrfin BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ceil vec_f32 = vec_f32 vec_vrfip BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_floor vec_f32 = vec_f32 vec_vrfim BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ctf vec_u32 immed_u5 = vec_f32 vec_vcfux BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ctf vec_s32 immed_u5 = vec_f32 vec_vcfsx BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_ctu vec_f32 immed_u5 = vec_u32 vec_vctuxs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_cts vec_f32 immed_u5 = vec_s32 vec_vctsxs BUILTIN_AFTER_TRAVERSE CFG_VEC
+vec_all_gt vec_u8 vec_u8 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_gt vec_u8 vec_b8 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_gt vec_b8 vec_u8 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_le vec_u8 vec_u8 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_le vec_u8 vec_b8 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_le vec_b8 vec_u8 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_gt vec_u8 vec_u8 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_gt vec_u8 vec_b8 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_gt vec_b8 vec_u8 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_le vec_u8 vec_u8 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_le vec_u8 vec_b8 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_le vec_b8 vec_u8 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_gt vec_s8 vec_s8 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_gt vec_s8 vec_b8 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_gt vec_b8 vec_s8 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_le vec_s8 vec_s8 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_le vec_s8 vec_b8 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_le vec_b8 vec_s8 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_gt vec_s8 vec_s8 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_gt vec_s8 vec_b8 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_gt vec_b8 vec_s8 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_le vec_s8 vec_s8 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_le vec_s8 vec_b8 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_le vec_b8 vec_s8 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_lt vec_u8 vec_u8 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_lt vec_u8 vec_b8 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_lt vec_b8 vec_u8 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_ge vec_u8 vec_u8 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_ge vec_u8 vec_b8 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_ge vec_b8 vec_u8 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_lt vec_u8 vec_u8 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_lt vec_u8 vec_b8 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_lt vec_b8 vec_u8 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_ge vec_u8 vec_u8 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_ge vec_u8 vec_b8 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_any_ge vec_b8 vec_u8 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtubD
+vec_all_lt vec_s8 vec_s8 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_lt vec_s8 vec_b8 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_lt vec_b8 vec_s8 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_ge vec_s8 vec_s8 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_ge vec_s8 vec_b8 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_ge vec_b8 vec_s8 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_lt vec_s8 vec_s8 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_lt vec_s8 vec_b8 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_lt vec_b8 vec_s8 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_ge vec_s8 vec_s8 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_ge vec_s8 vec_b8 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_any_ge vec_b8 vec_s8 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtsbD
+vec_all_gt vec_u16 vec_u16 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_gt vec_u16 vec_b16 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_gt vec_b16 vec_u16 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_le vec_u16 vec_u16 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_le vec_u16 vec_b16 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_le vec_b16 vec_u16 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_gt vec_u16 vec_u16 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_gt vec_u16 vec_b16 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_gt vec_b16 vec_u16 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_le vec_u16 vec_u16 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_le vec_u16 vec_b16 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_le vec_b16 vec_u16 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_gt vec_s16 vec_s16 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_gt vec_s16 vec_b16 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_gt vec_b16 vec_s16 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_le vec_s16 vec_s16 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_le vec_s16 vec_b16 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_le vec_b16 vec_s16 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_gt vec_s16 vec_s16 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_gt vec_s16 vec_b16 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_gt vec_b16 vec_s16 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_le vec_s16 vec_s16 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_le vec_s16 vec_b16 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_le vec_b16 vec_s16 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_lt vec_u16 vec_u16 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_lt vec_u16 vec_b16 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_lt vec_b16 vec_u16 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_ge vec_u16 vec_u16 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_ge vec_u16 vec_b16 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_ge vec_b16 vec_u16 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_lt vec_u16 vec_u16 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_lt vec_u16 vec_b16 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_lt vec_b16 vec_u16 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_ge vec_u16 vec_u16 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_ge vec_u16 vec_b16 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_any_ge vec_b16 vec_u16 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuhD
+vec_all_lt vec_s16 vec_s16 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_lt vec_s16 vec_b16 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_lt vec_b16 vec_s16 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_ge vec_s16 vec_s16 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_ge vec_s16 vec_b16 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_ge vec_b16 vec_s16 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_lt vec_s16 vec_s16 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_lt vec_s16 vec_b16 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_lt vec_b16 vec_s16 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_ge vec_s16 vec_s16 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_ge vec_s16 vec_b16 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_any_ge vec_b16 vec_s16 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtshD
+vec_all_gt vec_u32 vec_u32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_gt vec_u32 vec_b32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_gt vec_b32 vec_u32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_le vec_u32 vec_u32 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_le vec_u32 vec_b32 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_le vec_b32 vec_u32 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_gt vec_u32 vec_u32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_gt vec_u32 vec_b32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_gt vec_b32 vec_u32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_le vec_u32 vec_u32 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_le vec_u32 vec_b32 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_le vec_b32 vec_u32 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_gt vec_s32 vec_s32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_gt vec_s32 vec_b32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_gt vec_b32 vec_s32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_le vec_s32 vec_s32 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_le vec_s32 vec_b32 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_le vec_b32 vec_s32 = cc26t vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_gt vec_s32 vec_s32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_gt vec_s32 vec_b32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_gt vec_b32 vec_s32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_le vec_s32 vec_s32 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_le vec_s32 vec_b32 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_le vec_b32 vec_s32 = cc24f vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_lt vec_u32 vec_u32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_lt vec_u32 vec_b32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_lt vec_b32 vec_u32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_ge vec_u32 vec_u32 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_ge vec_u32 vec_b32 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_ge vec_b32 vec_u32 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_lt vec_u32 vec_u32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_lt vec_u32 vec_b32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_lt vec_b32 vec_u32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_ge vec_u32 vec_u32 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_ge vec_u32 vec_b32 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_any_ge vec_b32 vec_u32 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtuwD
+vec_all_lt vec_s32 vec_s32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_lt vec_s32 vec_b32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_lt vec_b32 vec_s32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_ge vec_s32 vec_s32 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_ge vec_s32 vec_b32 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_ge vec_b32 vec_s32 = cc26tr vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_lt vec_s32 vec_s32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_lt vec_s32 vec_b32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_lt vec_b32 vec_s32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_ge vec_s32 vec_s32 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_ge vec_s32 vec_b32 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_any_ge vec_b32 vec_s32 = cc24fr vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtswD
+vec_all_eq vec_u8 vec_u8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_u8 vec_b8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_b8 vec_u8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_b8 vec_b8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_u8 vec_u8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_u8 vec_b8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_b8 vec_u8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_b8 vec_b8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_u8 vec_u8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_u8 vec_b8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_b8 vec_u8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_b8 vec_b8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_u8 vec_u8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_u8 vec_b8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_b8 vec_u8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_b8 vec_b8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_s8 vec_s8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_s8 vec_b8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_b8 vec_s8 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_s8 vec_s8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_s8 vec_b8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_ne vec_b8 vec_s8 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_s8 vec_s8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_s8 vec_b8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_eq vec_b8 vec_s8 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_s8 vec_s8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_s8 vec_b8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_any_ne vec_b8 vec_s8 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequbD
+vec_all_eq vec_u16 vec_u16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_u16 vec_b16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_b16 vec_u16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_b16 vec_b16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_p16 vec_p16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_u16 vec_u16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_u16 vec_b16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_b16 vec_u16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_b16 vec_b16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_p16 vec_p16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_u16 vec_u16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_u16 vec_b16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_b16 vec_u16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_b16 vec_b16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_p16 vec_p16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_u16 vec_u16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_u16 vec_b16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_b16 vec_u16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_b16 vec_b16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_p16 vec_p16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_s16 vec_s16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_s16 vec_b16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_b16 vec_s16 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_s16 vec_s16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_s16 vec_b16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_ne vec_b16 vec_s16 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_s16 vec_s16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_s16 vec_b16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_eq vec_b16 vec_s16 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_s16 vec_s16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_s16 vec_b16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_any_ne vec_b16 vec_s16 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequhD
+vec_all_eq vec_u32 vec_u32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_eq vec_u32 vec_b32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_eq vec_b32 vec_u32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_eq vec_b32 vec_b32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_u32 vec_u32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_u32 vec_b32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_b32 vec_u32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_b32 vec_b32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_u32 vec_u32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_u32 vec_b32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_b32 vec_u32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_b32 vec_b32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_u32 vec_u32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_u32 vec_b32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_b32 vec_u32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_b32 vec_b32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_eq vec_s32 vec_s32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_eq vec_s32 vec_b32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_eq vec_b32 vec_s32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_s32 vec_s32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_s32 vec_b32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_ne vec_b32 vec_s32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_s32 vec_s32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_s32 vec_b32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_eq vec_b32 vec_s32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_s32 vec_s32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_s32 vec_b32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_any_ne vec_b32 vec_s32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpequwD
+vec_all_gt vec_f32 vec_f32 = cc24t vec_all_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_all_ngt vec_f32 vec_f32 = cc26t vec_all_ngt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_any_ngt vec_f32 vec_f32 = cc24f vec_any_ngt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_any_gt vec_f32 vec_f32 = cc26f vec_any_gt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_all_lt vec_f32 vec_f32 = cc24tr vec_all_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_all_nlt vec_f32 vec_f32 = cc26tr vec_all_nlt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_any_nlt vec_f32 vec_f32 = cc24fr vec_any_nlt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_any_lt vec_f32 vec_f32 = cc26fr vec_any_lt BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgtfpD
+vec_all_ge vec_f32 vec_f32 = cc24t vec_all_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_all_nge vec_f32 vec_f32 = cc26t vec_all_nge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_any_nge vec_f32 vec_f32 = cc24f vec_any_nge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_any_ge vec_f32 vec_f32 = cc26f vec_any_ge BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_all_le vec_f32 vec_f32 = cc24tr vec_all_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_all_nle vec_f32 vec_f32 = cc26tr vec_all_nle BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_any_nle vec_f32 vec_f32 = cc24fr vec_any_nle BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_any_le vec_f32 vec_f32 = cc26fr vec_any_le BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpgefpD
+vec_all_eq vec_f32 vec_f32 = cc24t vec_all_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_all_ne vec_f32 vec_f32 = cc26t vec_all_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_any_ne vec_f32 vec_f32 = cc24f vec_any_ne BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_any_eq vec_f32 vec_f32 = cc26f vec_any_eq BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_all_numeric vec_f32 = cc24td vec_all_numeric BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_all_nan vec_f32 = cc26td vec_all_nan BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_any_nan vec_f32 = cc24fd vec_any_nan BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_any_numeric vec_f32 = cc26fd vec_any_numeric BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpeqfpD
+vec_all_in vec_f32 vec_f32 = cc26t vec_all_in BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpbfpD
+vec_any_out vec_f32 vec_f32 = cc26f vec_any_out BUILTIN_AFTER_TRAVERSE CFG_VEC FALSE MOP_vcmpbfpD
diff --git a/gcc/config/rs6000/x-darwin b/gcc/config/rs6000/x-darwin
index e133c21f928..f9197ab1ccb 100644
--- a/gcc/config/rs6000/x-darwin
+++ b/gcc/config/rs6000/x-darwin
@@ -1,4 +1,6 @@
-host-darwin.o : $(srcdir)/config/rs6000/host-darwin.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h hosthooks.h hosthooks-def.h toplev.h diagnostic.h $(HOOKS_H)
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- $(srcdir)/config/rs6000/host-darwin.c
+ # APPLE LOCAL begin mainline 2005-04-06 4071679
+host-ppc-darwin.o : $(srcdir)/config/rs6000/host-darwin.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h hosthooks.h $(HOSTHOOKS_DEF_H) toplev.h \
+ diagnostic.h config/host-darwin.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -o $@
+ # APPLE LOCAL end mainline 2005-04-06 4071679
diff --git a/gcc/config/s390/s390-modes.def b/gcc/config/s390/s390-modes.def
index 1cb0f199032..6520dda8e90 100644
--- a/gcc/config/s390/s390-modes.def
+++ b/gcc/config/s390/s390-modes.def
@@ -23,6 +23,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* 256-bit integer mode is needed for STACK_SAVEAREA_MODE. */
INT_MODE (OI, 32);
+/* Define TFmode to work around reload problem PR 20927. */
+FLOAT_MODE (TF, 16, ieee_quad_format);
+
/* Add any extra modes needed to represent the condition code. */
/*
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index f9be9cf0a6f..2514a43a940 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -2557,8 +2557,11 @@ s390_secondary_output_reload_class (enum reg_class class,
: (mode == DImode || mode == DFmode))
&& reg_classes_intersect_p (GENERAL_REGS, class)
&& GET_CODE (out) == MEM
- && !offsettable_memref_p (out)
- && !s_operand (out, VOIDmode))
+ && GET_CODE (XEXP (out, 0)) == PLUS
+ && GET_CODE (XEXP (XEXP (out, 0), 0)) == PLUS
+ && GET_CODE (XEXP (XEXP (out, 0), 1)) == CONST_INT
+ && !DISP_IN_RANGE (INTVAL (XEXP (XEXP (out, 0), 1))
+ + GET_MODE_SIZE (mode) - 1))
return ADDR_REGS;
if (reg_classes_intersect_p (CC_REGS, class))
@@ -5437,7 +5440,7 @@ s390_alloc_pool (void)
pool->label = gen_label_rtx ();
pool->first_insn = NULL_RTX;
pool->pool_insn = NULL_RTX;
- pool->insns = BITMAP_XMALLOC ();
+ pool->insns = BITMAP_ALLOC (NULL);
pool->size = 0;
return pool;
@@ -5464,7 +5467,7 @@ s390_free_pool (struct constant_pool *pool)
free (c);
}
- BITMAP_XFREE (pool->insns);
+ BITMAP_FREE (pool->insns);
free (pool);
}
@@ -5821,7 +5824,7 @@ s390_chunkify_start (void)
/* Find all labels that are branched into
from an insn belonging to a different chunk. */
- far_labels = BITMAP_XMALLOC ();
+ far_labels = BITMAP_ALLOC (NULL);
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
{
@@ -5918,7 +5921,7 @@ s390_chunkify_start (void)
}
- BITMAP_XFREE (far_labels);
+ BITMAP_FREE (far_labels);
/* Recompute insn addresses. */
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h
index 9a80e818ae9..a6b7a3afd51 100644
--- a/gcc/config/s390/s390.h
+++ b/gcc/config/s390/s390.h
@@ -612,20 +612,22 @@ extern int current_function_outgoing_args_size;
the argument area. */
#define FIRST_PARM_OFFSET(FNDECL) 0
+/* Defining this macro makes __builtin_frame_address(0) and
+ __builtin_return_address(0) work with -fomit-frame-pointer. */
+#define INITIAL_FRAME_ADDRESS_RTX \
+ (TARGET_PACKED_STACK ? \
+ plus_constant (arg_pointer_rtx, -UNITS_PER_WORD) : \
+ plus_constant (arg_pointer_rtx, -STACK_POINTER_OFFSET))
+
/* The return address of the current frame is retrieved
from the initial value of register RETURN_REGNUM.
For frames farther back, we use the stack slot where
the corresponding RETURN_REGNUM register was saved. */
+#define DYNAMIC_CHAIN_ADDRESS(FRAME) \
+ (TARGET_PACKED_STACK ? \
+ plus_constant ((FRAME), STACK_POINTER_OFFSET - UNITS_PER_WORD) : (FRAME))
-#define DYNAMIC_CHAIN_ADDRESS(FRAME) \
- (TARGET_PACKED_STACK ? \
- ((FRAME) != hard_frame_pointer_rtx ? \
- plus_constant ((FRAME), STACK_POINTER_OFFSET - UNITS_PER_WORD) : \
- plus_constant (arg_pointer_rtx, -UNITS_PER_WORD)) : \
- ((FRAME) != hard_frame_pointer_rtx ? (FRAME) : \
- plus_constant (arg_pointer_rtx, -STACK_POINTER_OFFSET)))
-
-#define RETURN_ADDR_RTX(COUNT, FRAME) \
+#define RETURN_ADDR_RTX(COUNT, FRAME) \
s390_return_addr_rtx ((COUNT), DYNAMIC_CHAIN_ADDRESS ((FRAME)))
/* In 31-bit mode, we need to mask off the high bit of return addresses. */
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 752d2944cda..0fc7b807c99 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -833,7 +833,7 @@
"TARGET_64BIT"
{
gcc_assert (MEM_P (operands[0]));
- s390_load_address (operands[2], XEXP (operands[0], 0));
+ s390_load_address (operands[2], find_replacement (&XEXP (operands[0], 0)));
operands[0] = replace_equiv_address (operands[0], operands[2]);
emit_move_insn (operands[0], operands[1]);
DONE;
@@ -992,7 +992,7 @@
"!TARGET_64BIT"
{
gcc_assert (MEM_P (operands[0]));
- s390_load_address (operands[2], XEXP (operands[0], 0));
+ s390_load_address (operands[2], find_replacement (&XEXP (operands[0], 0)));
operands[0] = replace_equiv_address (operands[0], operands[2]);
emit_move_insn (operands[0], operands[1]);
DONE;
@@ -1451,7 +1451,7 @@
"!TARGET_64BIT"
{
gcc_assert (MEM_P (operands[0]));
- s390_load_address (operands[2], XEXP (operands[0], 0));
+ s390_load_address (operands[2], find_replacement (&XEXP (operands[0], 0)));
operands[0] = replace_equiv_address (operands[0], operands[2]);
emit_move_insn (operands[0], operands[1]);
DONE;
@@ -2660,6 +2660,27 @@
; LLGT-type instructions (zero-extend from 31 bit to 64 bit).
;
+(define_insn "*llgt_sidi"
+ [(set (match_operand:DI 0 "register_operand" "=d")
+ (and:DI (subreg:DI (match_operand:SI 1 "memory_operand" "m") 0)
+ (const_int 2147483647)))]
+ "TARGET_64BIT"
+ "llgt\t%0,%1"
+ [(set_attr "op_type" "RXE")])
+
+(define_insn_and_split "*llgt_sidi_split"
+ [(set (match_operand:DI 0 "register_operand" "=d")
+ (and:DI (subreg:DI (match_operand:SI 1 "memory_operand" "m") 0)
+ (const_int 2147483647)))
+ (clobber (reg:CC 33))]
+ "TARGET_64BIT"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 0)
+ (and:DI (subreg:DI (match_dup 1) 0)
+ (const_int 2147483647)))]
+ "")
+
(define_insn "*llgt_sisi"
[(set (match_operand:SI 0 "register_operand" "=d,d")
(and:SI (match_operand:SI 1 "nonimmediate_operand" "d,m")
@@ -2702,27 +2723,6 @@
(const_int 2147483647)))]
"")
-(define_insn "*llgt_sidi"
- [(set (match_operand:DI 0 "register_operand" "=d")
- (and:DI (subreg:DI (match_operand:SI 1 "memory_operand" "m") 0)
- (const_int 2147483647)))]
- "TARGET_64BIT"
- "llgt\t%0,%1"
- [(set_attr "op_type" "RXE")])
-
-(define_insn_and_split "*llgt_sidi_split"
- [(set (match_operand:DI 0 "register_operand" "=d")
- (and:DI (subreg:DI (match_operand:SI 1 "memory_operand" "m") 0)
- (const_int 2147483647)))
- (clobber (reg:CC 33))]
- "TARGET_64BIT"
- "#"
- "&& reload_completed"
- [(set (match_dup 0)
- (and:DI (subreg:DI (match_dup 1) 0)
- (const_int 2147483647)))]
- "")
-
;
; zero_extendqidi2 instruction pattern(s)
;
@@ -7780,18 +7780,18 @@
(define_expand "set_tp_64"
[(set (reg:DI 36) (match_operand:DI 0 "nonimmediate_operand" ""))
- (unspec_volatile [(reg:DI 36)] UNSPECV_SET_TP)]
+ (set (reg:DI 36) (unspec_volatile:DI [(reg:DI 36)] UNSPECV_SET_TP))]
"TARGET_64BIT"
"")
(define_expand "set_tp_31"
[(set (reg:SI 36) (match_operand:SI 0 "nonimmediate_operand" ""))
- (unspec_volatile [(reg:SI 36)] UNSPECV_SET_TP)]
+ (set (reg:SI 36) (unspec_volatile:SI [(reg:SI 36)] UNSPECV_SET_TP))]
"!TARGET_64BIT"
"")
(define_insn "*set_tp"
- [(unspec_volatile [(reg 36)] UNSPECV_SET_TP)]
+ [(set (reg 36) (unspec_volatile [(reg 36)] UNSPECV_SET_TP))]
""
""
[(set_attr "type" "none")
diff --git a/gcc/config/s390/tpf.h b/gcc/config/s390/tpf.h
index 33a50b47498..38df1b4bcbf 100644
--- a/gcc/config/s390/tpf.h
+++ b/gcc/config/s390/tpf.h
@@ -101,6 +101,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#undef CPLUSPLUS_CPP_SPEC
#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
+#undef ASM_SPEC
+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
+
#undef LIB_SPEC
#define LIB_SPEC "%{pthread:-lpthread} -lc"
diff --git a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm
index 30f10a992cd..9b47a2e2619 100644
--- a/gcc/config/sh/lib1funcs.asm
+++ b/gcc/config/sh/lib1funcs.asm
@@ -37,9 +37,19 @@ Boston, MA 02111-1307, USA. */
ELF local label prefixes by J"orn Rennecke
amylaar@cygnus.com */
+#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
+
#ifdef __ELF__
#define LOCAL(X) .L_##X
-#define FUNC(X) .type X,@function
+
+#if 1 /* ??? The export list mechanism is broken, everything that is not
+ hidden is exported. See PR target/20617. */
+#undef FUNC
+#define FUNC(X) .type X,@function; .hidden X
+#undef ALIAS
+#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y); .hidden GLOBAL(X)
+#endif
+
#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
#define ENDFUNC(X) ENDFUNC0(X)
#else
@@ -52,7 +62,6 @@ Boston, MA 02111-1307, USA. */
#define GLOBAL0(U,X) CONCAT(U,__##X)
#define GLOBAL(X) GLOBAL0(__USER_LABEL_PREFIX__,X)
-#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
#if defined __SH5__ && ! defined __SH4_NOFPU__ && ! defined (__LITTLE_ENDIAN__)
#define FMOVD_WORKS
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 0617b2c3b5c..9587b5373aa 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -9855,7 +9855,7 @@ sh_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
if (! basic_block_info)
init_flow ();
rtl_register_cfg_hooks ();
- find_basic_blocks (insns, max_reg_num (), dump_file);
+ find_basic_blocks (insns);
life_analysis (dump_file, PROP_FINAL);
split_all_insns (1);
diff --git a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux
index 71e96f53157..777d157909e 100644
--- a/gcc/config/sh/t-linux
+++ b/gcc/config/sh/t-linux
@@ -23,21 +23,23 @@ SHLIB_MAPFILES = \
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,--soname=$(SHLIB_SONAME) \
-Wl,--version-script=$(SHLIB_MAP) \
- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
- rm -f $(SHLIB_SOLINK) && \
- if [ -f $(SHLIB_NAME) ]; then \
- mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+ -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+ if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+ $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
else true; fi && \
- mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
+ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
(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_DIR)/$(SHLIB_SOLINK)
SHLIB_INSTALL = \
$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $(INSTALL_DATA) $(SHLIB_NAME) \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
- $(INSTALL_DATA) $(SHLIB_SOLINK) \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SOLINK) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 5b7244707d2..feec79c06b7 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -209,8 +209,6 @@ do { \
#undef CTORS_SECTION_ASM_OP
#undef DTORS_SECTION_ASM_OP
-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-
/* Determine whether the the entire c99 runtime is present in the
runtime library. */
#define TARGET_C99_FUNCTIONS 1
@@ -233,3 +231,6 @@ do { \
change their minds. */
#undef SPARC_RELAXED_ORDERING
#define SPARC_RELAXED_ORDERING true
+
+#undef NEED_INDICATE_EXEC_STACK
+#define NEED_INDICATE_EXEC_STACK 1
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index 4a266dfc61c..ac3a21ac877 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -343,8 +343,6 @@ do { \
#undef CTORS_SECTION_ASM_OP
#undef DTORS_SECTION_ASM_OP
-#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-
/* Determine whether the the entire c99 runtime is present in the
runtime library. */
#define TARGET_C99_FUNCTIONS 1
@@ -367,3 +365,6 @@ do { \
change their minds. */
#undef SPARC_RELAXED_ORDERING
#define SPARC_RELAXED_ORDERING true
+
+#undef NEED_INDICATE_EXEC_STACK
+#define NEED_INDICATE_EXEC_STACK 1
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 43aa2f17c87..faadcf700f6 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -311,7 +311,8 @@ static rtx sparc_builtin_saveregs (void);
static int epilogue_renumber (rtx *, int);
static bool sparc_assemble_integer (rtx, unsigned int, int);
static int set_extends (rtx);
-static void load_pic_register (void);
+static void emit_pic_helper (void);
+static void load_pic_register (bool);
static int save_or_restore_regs (int, int, rtx, int, int);
static void emit_save_regs (void);
static void emit_restore_regs (void);
@@ -359,6 +360,7 @@ static bool sparc_pass_by_reference (CUMULATIVE_ARGS *,
static int sparc_arg_partial_bytes (CUMULATIVE_ARGS *,
enum machine_mode, tree, bool);
static void sparc_dwarf_handle_frame_unspec (const char *, rtx, int);
+static void sparc_file_end (void);
#ifdef SUBTARGET_ATTRIBUTE_TABLE
const struct attribute_spec sparc_attribute_table[];
#endif
@@ -501,6 +503,9 @@ enum processor_type sparc_cpu;
#undef TARGET_RELAXED_ORDERING
#define TARGET_RELAXED_ORDERING SPARC_RELAXED_ORDERING
+#undef TARGET_ASM_FILE_END
+#define TARGET_ASM_FILE_END sparc_file_end
+
struct gcc_target targetm = TARGET_INITIALIZER;
/* Validate and override various options, and do some machine dependent
@@ -3351,13 +3356,12 @@ sparc_cannot_force_const_mem (rtx x)
}
}
-/* The table we use to reference PIC data. */
+/* PIC support. */
+static GTY(()) char pic_helper_symbol_name[256];
+static GTY(()) rtx pic_helper_symbol;
+static GTY(()) bool pic_helper_emitted_p = false;
static GTY(()) rtx global_offset_table;
-/* The function we use to get at it. */
-static GTY(()) rtx add_pc_to_pic_symbol;
-static GTY(()) char add_pc_to_pic_symbol_name[256];
-
/* Ensure that we are not using patterns that are not OK with PIC. */
int
@@ -3492,7 +3496,7 @@ legitimate_pic_operand_p (rtx x)
int
legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
{
- rtx rs1 = NULL, rs2 = NULL, imm1 = NULL, imm2;
+ rtx rs1 = NULL, rs2 = NULL, imm1 = NULL;
if (REG_P (addr) || GET_CODE (addr) == SUBREG)
rs1 = addr;
@@ -3556,7 +3560,6 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
&& ! TARGET_CM_MEDMID
&& RTX_OK_FOR_OLO10_P (rs2))
{
- imm2 = rs2;
rs2 = NULL;
imm1 = XEXP (rs1, 1);
rs1 = XEXP (rs1, 0);
@@ -3572,25 +3575,10 @@ legitimate_address_p (enum machine_mode mode, rtx addr, int strict)
if (! CONSTANT_P (imm1) || tls_symbolic_operand (rs1))
return 0;
- if (USE_AS_OFFSETABLE_LO10)
- {
- /* We can't allow TFmode, because an offset greater than or equal to
- the alignment (8) may cause the LO_SUM to overflow if !v9. */
- if (mode == TFmode && ! TARGET_V9)
- return 0;
- }
- else
- {
- /* We prohibit LO_SUM for TFmode when there are no quad move insns
- and we consequently need to split. We do this because LO_SUM
- is not an offsettable address. If we get the situation in reload
- where source and destination of a movtf pattern are both MEMs with
- LO_SUM address, then only one of them gets converted to an
- offsettable address. */
- if (mode == TFmode
- && ! (TARGET_FPU && TARGET_ARCH64 && TARGET_HARD_QUAD))
- return 0;
- }
+ /* We can't allow TFmode in 32-bit mode, because an offset greater
+ than the alignment (8) may cause the LO_SUM to overflow. */
+ if (mode == TFmode && TARGET_ARCH32)
+ return 0;
}
else if (GET_CODE (addr) == CONST_INT && SMALL_INT (addr))
return 1;
@@ -3947,46 +3935,57 @@ legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, enum machine_mode mode)
return x;
}
-/* Emit the special PIC prologue. */
+/* Emit the special PIC helper function. */
static void
-load_pic_register (void)
+emit_pic_helper (void)
{
- int orig_flag_pic = flag_pic;
+ const char *pic_name = reg_names[REGNO (pic_offset_table_rtx)];
+ int align;
- /* If we haven't emitted the special helper function, do so now. */
- if (add_pc_to_pic_symbol_name[0] == 0)
- {
- const char *pic_name = reg_names[REGNO (pic_offset_table_rtx)];
- int align;
+ text_section ();
- ASM_GENERATE_INTERNAL_LABEL (add_pc_to_pic_symbol_name, "LADDPC", 0);
- text_section ();
+ align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT);
+ if (align > 0)
+ ASM_OUTPUT_ALIGN (asm_out_file, align);
+ ASM_OUTPUT_LABEL (asm_out_file, pic_helper_symbol_name);
+ if (flag_delayed_branch)
+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
+ pic_name, pic_name);
+ else
+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
+ pic_name, pic_name);
- align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT);
- if (align > 0)
- ASM_OUTPUT_ALIGN (asm_out_file, align);
- ASM_OUTPUT_LABEL (asm_out_file, add_pc_to_pic_symbol_name);
- if (flag_delayed_branch)
- fprintf (asm_out_file, "\tjmp %%o7+8\n\t add\t%%o7, %s, %s\n",
- pic_name, pic_name);
- else
- fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp %%o7+8\n\t nop\n",
- pic_name, pic_name);
+ pic_helper_emitted_p = true;
+}
+
+/* Emit code to load the PIC register. */
+
+static void
+load_pic_register (bool delay_pic_helper)
+{
+ int orig_flag_pic = flag_pic;
+
+ /* If we haven't initialized the special PIC symbols, do so now. */
+ if (!pic_helper_symbol_name[0])
+ {
+ ASM_GENERATE_INTERNAL_LABEL (pic_helper_symbol_name, "LADDPC", 0);
+ pic_helper_symbol = gen_rtx_SYMBOL_REF (Pmode, pic_helper_symbol_name);
+ global_offset_table = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_");
}
- /* Initialize every time through, since we can't easily
- know this to be permanent. */
- global_offset_table = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_");
- add_pc_to_pic_symbol = gen_rtx_SYMBOL_REF (Pmode, add_pc_to_pic_symbol_name);
+ /* If we haven't emitted the special PIC helper function, do so now unless
+ we are requested to delay it. */
+ if (!delay_pic_helper && !pic_helper_emitted_p)
+ emit_pic_helper ();
flag_pic = 0;
if (TARGET_ARCH64)
emit_insn (gen_load_pcrel_symdi (pic_offset_table_rtx, global_offset_table,
- add_pc_to_pic_symbol));
+ pic_helper_symbol));
else
emit_insn (gen_load_pcrel_symsi (pic_offset_table_rtx, global_offset_table,
- add_pc_to_pic_symbol));
+ pic_helper_symbol));
flag_pic = orig_flag_pic;
/* Need to emit this whether or not we obey regdecls,
@@ -4635,7 +4634,7 @@ sparc_expand_prologue (void)
/* Load the PIC register if needed. */
if (flag_pic && current_function_uses_pic_offset_table)
- load_pic_register ();
+ load_pic_register (false);
}
/* This function generates the assembly code for function entry, which boils
@@ -9052,7 +9051,9 @@ sparc_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
{
spill_reg = gen_rtx_REG (word_mode, 15); /* %o7 */
start_sequence ();
- load_pic_register (); /* clobbers %o7 */
+ /* Delay emitting the PIC helper function because it needs to
+ change the section and we are emitting assembly code. */
+ load_pic_register (true); /* clobbers %o7 */
scratch = legitimize_pic_address (funexp, Pmode, scratch);
seq = get_insns ();
end_sequence ();
@@ -9203,4 +9204,15 @@ sparc_output_dwarf_dtprel (FILE *file, int size, rtx x)
fputs (")", file);
}
+static
+void sparc_file_end (void)
+{
+ /* If we haven't emitted the special PIC helper function, do so now. */
+ if (pic_helper_symbol_name[0] && !pic_helper_emitted_p)
+ emit_pic_helper ();
+
+ if (NEED_INDICATE_EXEC_STACK)
+ file_end_indicate_exec_stack ();
+}
+
#include "gt-sparc.h"
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index cddf48a927d..e7f19a3ecb9 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -214,6 +214,9 @@ extern enum cmodel sparc_cmodel;
total memory ordering (TMO). */
#define SPARC_RELAXED_ORDERING false
+/* Do not use the .note.GNU-stack convention by default. */
+#define NEED_INDICATE_EXEC_STACK 0
+
/* This is call-clobbered in the normal ABI, but is reserved in the
home grown (aka upward compatible) embedded ABI. */
#define EMBMEDANY_BASE_REG "%g4"
@@ -1677,7 +1680,7 @@ extern char leaf_reg_remap[];
/* Define the size of space to allocate for the return value of an
untyped_call. */
-#define APPLY_RESULT_SIZE 16
+#define APPLY_RESULT_SIZE (TARGET_ARCH64 ? 24 : 16)
/* 1 if N is a possible register number for function argument passing.
On SPARC, these are the "output" registers. v9 also uses %f0-%f31. */
@@ -1795,7 +1798,7 @@ extern GTY(()) rtx sparc_compare_op1;
case of a global register variable occupying more than one register
we prefix the second and following registers with .gnu.part1. etc. */
-extern char sparc_hard_reg_printed[8];
+extern GTY(()) char sparc_hard_reg_printed[8];
#ifdef HAVE_AS_REGISTER_PSEUDO_OP
#define ASM_DECLARE_REGISTER_GLOBAL(FILE, DECL, REGNO, NAME) \
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 6153b5adbe6..dcb5de11385 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -7626,21 +7626,22 @@
(define_expand "untyped_call"
[(parallel [(call (match_operand 0 "" "")
(const_int 0))
- (match_operand 1 "" "")
+ (match_operand:BLK 1 "memory_operand" "")
(match_operand 2 "" "")])]
""
{
- int i;
+ rtx valreg1 = gen_rtx_REG (DImode, 8);
+ rtx valreg2 = gen_rtx_REG (TARGET_ARCH64 ? TFmode : DFmode, 32);
+ rtx result = operands[1];
/* Pass constm1 to indicate that it may expect a structure value, but
we don't know what size it is. */
emit_call_insn (GEN_CALL (operands[0], const0_rtx, NULL, constm1_rtx));
- for (i = 0; i < XVECLEN (operands[2], 0); i++)
- {
- rtx set = XVECEXP (operands[2], 0, i);
- emit_move_insn (SET_DEST (set), SET_SRC (set));
- }
+ /* Save the function value registers. */
+ emit_move_insn (adjust_address (result, DImode, 0), valreg1);
+ emit_move_insn (adjust_address (result, TARGET_ARCH64 ? TFmode : DFmode, 8),
+ valreg2);
/* The optimizer does not know that the call sets the function value
registers we stored in the result block. We avoid problems by
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/t-darwin b/gcc/config/t-darwin
index ab2e6ae05c1..be0575bec30 100644
--- a/gcc/config/t-darwin
+++ b/gcc/config/t-darwin
@@ -3,18 +3,25 @@ darwin.o: $(srcdir)/config/darwin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
conditions.h insn-flags.h output.h insn-attr.h flags.h $(TREE_H) expr.h \
reload.h function.h $(GGC_H) langhooks.h $(TARGET_H) $(TM_P_H) gt-darwin.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/darwin.c
+# APPLE LOCAL constant CFStrings
+darwin.o: $(HASHTAB_H) toplev.h
+# APPLE LOCAL begin pragma fenv
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
darwin-c.o: $(srcdir)/config/darwin-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(CPPLIB_H) tree.h c-pragma.h $(C_TREE_H) toplev.h $(TM_P_H) \
- c-incpath.h
+ c-incpath.h options.h flags.h opts.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/darwin-c.c $(PREPROCESSOR_DEFINES)
+# APPLE LOCAL end optimization pragmas 3124235/3420242
+# APPLE LOCAL end pragma fenv
gt-darwin.h : s-gtype ; @true
# Explain how to build crt2.o
$(T)crt2$(objext): $(srcdir)/config/darwin-crt2.c $(GCC_PASSES) \
$(TCONFIG_H) stmp-int-hdrs tsystem.h
- $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) \
+ # APPLE LOCAL use -mlongcall for large text support
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -mlongcall \
-c $(srcdir)/config/darwin-crt2.c -o $(T)crt2$(objext)
# Use unwind-dw2-fde-darwin
@@ -22,4 +29,8 @@ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-darwin.c \
$(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
-TARGET_LIBGCC2_CFLAGS = -fPIC
+# -pipe because there's an assembler bug, 4077127, which causes
+# it to not properly process the first # directive, causing temporary
+# file names to appear in stabs, causing the bootstrap to fail. Using -pipe
+# works around this by not having any temporary file names.
+TARGET_LIBGCC2_CFLAGS = -fPIC -pipe
diff --git a/gcc/config/t-libunwind-elf b/gcc/config/t-libunwind-elf
index 428bc43ed2e..1fa8aa25251 100644
--- a/gcc/config/t-libunwind-elf
+++ b/gcc/config/t-libunwind-elf
@@ -5,25 +5,26 @@ LIBUNWIND = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c
LIBUNWINDDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
SHLIBUNWIND_SOVERSION = 7
-SHLIBUNWIND_SONAME = @shlib_so_name@.so.$(SHLIBUNWIND_SOVERSION)
-SHLIBUNWIND_NAME = @shlib_base_name@.so.$(SHLIBUNWIND_SOVERSION)
+SHLIBUNWIND_SONAME = @shlib_base_name@.so.$(SHLIBUNWIND_SOVERSION)
SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared \
-nodefaultlibs -Wl,-h,$(SHLIBUNWIND_SONAME) \
- -Wl,-z,text -Wl,-z,defs -o $(SHLIBUNWIND_NAME).tmp \
+ -Wl,-z,text -Wl,-z,defs -o $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \
@multilib_flags@ $(SHLIB_OBJS) -lc && \
- rm -f $(SHLIB_SOLINK) && \
- if [ -f $(SHLIBUNWIND_NAME) ]; then \
- mv -f $(SHLIBUNWIND_NAME) $(SHLIBUNWIND_NAME).backup; \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+ if [ -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) \
+ $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).backup; \
else true; fi && \
- mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \
- $(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK)
+ mv $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \
+ $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) && \
+ $(LN_S) $(SHLIBUNWIND_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIBUNWIND_INSTALL = \
$$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $(INSTALL_DATA) $(SHLIBUNWIND_NAME) \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIBUNWIND_SONAME); \
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIBUNWIND_SONAME) \
diff --git a/gcc/config/t-slibgcc-darwin b/gcc/config/t-slibgcc-darwin
index 66d4e777dd5..6d81e400ce3 100644
--- a/gcc/config/t-slibgcc-darwin
+++ b/gcc/config/t-slibgcc-darwin
@@ -1,36 +1,43 @@
+# APPLE LOCAL file mainline 2005-04-11
# Build a shared libgcc library with the darwin linker.
SHLIB_MINOR = 1
SHLIB_REVISION = 0
SHLIB_VERSTRING = -compatibility_version $(SHLIB_MINOR) -current_version $(SHLIB_MINOR).$(SHLIB_REVISION)
SHLIB_EXT = .dylib
-SHLIB_SOLINK = @shlib_base_name@.dylib
-SHLIB_SONAME = @shlib_so_name@.$(SHLIB_MINOR).$(SHLIB_REVISION).dylib
-SHLIB_NAME = @shlib_base_name@.$(SHLIB_MINOR).$(SHLIB_REVISION).dylib
+SHLIB_SUFFIX = `if test @multilib_dir@ != . ; then echo _@multilib_dir@ ; fi`
+SHLIB_SOLINK = @shlib_base_name@$(SHLIB_SUFFIX)$(SHLIB_EXT)
+SHLIB_SONAME = @shlib_base_name@$(SHLIB_SUFFIX).$(SHLIB_MINOR).$(SHLIB_REVISION)$(SHLIB_EXT)
SHLIB_MAP = @shlib_map_file@
SHLIB_OBJS = @shlib_objs@
-SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
+SHLIB_DIR = @multilib_dir@
+
+# Darwin only searches in /usr/lib for shared libraries, not in subdirectories,
+# so the libgcc variants have different names not different locations.
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \
- -Wl,-install_name,$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME) \
- -Wl,-flat_namespace -o $(SHLIB_NAME).tmp \
+ -Wl,-install_name,$(slibdir)/$(SHLIB_SONAME) \
+ -Wl,-flat_namespace -o $(SHLIB_SONAME).tmp \
-Wl,-exported_symbols_list,$(SHLIB_MAP) \
$(SHLIB_VERSTRING) \
@multilib_flags@ $(SHLIB_OBJS) -lc && \
- rm -f $(SHLIB_SOLINK) && \
- if [ -f $(SHLIB_NAME) ]; then \
- mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+ rm -f $(SHLIB_SOLINK) $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+ if [ -f $(SHLIB_SONAME) ]; then \
+ mv -f $(SHLIB_SONAME) $(SHLIB_SONAME).backup; \
else true; fi && \
- mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
- $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
+ mv $(SHLIB_SONAME).tmp $(SHLIB_SONAME) && \
+ $(LN_S) $(SHLIB_SONAME) $(SHLIB_SOLINK) && \
+ if [ $(SHLIB_DIR) != . ] ; then \
+ $(LN_S) `pwd`/$(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) ; \
+ else true; fi
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
- $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $(INSTALL_DATA) $(SHLIB_NAME) \
- $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
- rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir); \
+ $(INSTALL_DATA) $(SHLIB_SONAME) \
+ $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
- $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+ $$(DESTDIR)$$(slibdir)/$(SHLIB_SOLINK)
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MKMAP_OPTS = -v leading_underscore=1
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/t-slibgcc-elf-ver b/gcc/config/t-slibgcc-elf-ver
index e70647aa831..346143c5c53 100644
--- a/gcc/config/t-slibgcc-elf-ver
+++ b/gcc/config/t-slibgcc-elf-ver
@@ -4,28 +4,30 @@
SHLIB_EXT = .so
SHLIB_SOLINK = @shlib_base_name@.so
SHLIB_SOVERSION = 1
-SHLIB_SONAME = @shlib_so_name@.so.$(SHLIB_SOVERSION)
-SHLIB_NAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
+SHLIB_SONAME = @shlib_base_name@.so.$(SHLIB_SOVERSION)
SHLIB_MAP = @shlib_map_file@
SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
SHLIB_LC = -lc
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,--soname=$(SHLIB_SONAME) \
-Wl,--version-script=$(SHLIB_MAP) \
- -o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
- rm -f $(SHLIB_SOLINK) && \
- if [ -f $(SHLIB_NAME) ]; then \
- mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+ -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+ if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+ $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
else true; fi && \
- mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
- $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
+ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+ $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $(INSTALL_DATA) $(SHLIB_NAME) \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
diff --git a/gcc/config/t-slibgcc-sld b/gcc/config/t-slibgcc-sld
index 64c147806c9..02d21c6de67 100644
--- a/gcc/config/t-slibgcc-sld
+++ b/gcc/config/t-slibgcc-sld
@@ -2,27 +2,28 @@
SHLIB_EXT = .so
SHLIB_SOLINK = @shlib_base_name@.so
-SHLIB_SONAME = @shlib_so_name@.so.1
-SHLIB_NAME = @shlib_base_name@.so.1
+SHLIB_SONAME = @shlib_base_name@.so.1
SHLIB_MAP = @shlib_map_file@
SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@
SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \
- -Wl,-M,$(SHLIB_MAP) -o $(SHLIB_NAME).tmp \
+ -Wl,-M,$(SHLIB_MAP) -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp \
@multilib_flags@ $(SHLIB_OBJS) -lc && \
- rm -f $(SHLIB_SOLINK) && \
- if [ -f $(SHLIB_NAME) ]; then \
- mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+ if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+ $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
else true; fi && \
- mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
- $(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
+ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+ $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK)
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
$$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $(INSTALL_DATA) $(SHLIB_NAME) \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_SONAME) \
$$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index ca5fb6ac629..38dd8155487 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -50,7 +50,6 @@ static void vax_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
HOST_WIDE_INT, tree);
static int vax_address_cost_1 (rtx);
static int vax_address_cost (rtx);
-static int vax_rtx_costs_1 (rtx, enum rtx_code, enum rtx_code);
static bool vax_rtx_costs (rtx, int, int, int *);
static rtx vax_struct_value_rtx (tree, int);
@@ -529,179 +528,228 @@ vax_address_cost (rtx x)
/* Cost of an expression on a VAX. This version has costs tuned for the
CVAX chip (found in the VAX 3 series) with comments for variations on
- other models. */
+ other models.
-static int
-vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code)
+ FIXME: The costs need review, particularly for TRUNCATE, FLOAT_EXTEND
+ and FLOAT_TRUNCATE. We need a -mcpu option to allow provision of
+ costs on a per cpu basis. */
+
+static bool
+vax_rtx_costs (rtx x, int code, int outer_code, int *total)
{
enum machine_mode mode = GET_MODE (x);
- register int c;
- int i = 0; /* may be modified in switch */
+ int i = 0; /* may be modified in switch */
const char *fmt = GET_RTX_FORMAT (code); /* may be modified in switch */
switch (code)
{
/* On a VAX, constants from 0..63 are cheap because they can use the
- 1 byte literal constant format. compare to -1 should be made cheap
- so that decrement-and-branch insns can be formed more easily (if
- the value -1 is copied to a register some decrement-and-branch
+ 1 byte literal constant format. Compare to -1 should be made cheap
+ so that decrement-and-branch insns can be formed more easily (if
+ the value -1 is copied to a register some decrement-and-branch
patterns will not match). */
case CONST_INT:
if (INTVAL (x) == 0)
- return 0;
+ return true;
if (outer_code == AND)
- return ((unsigned HOST_WIDE_INT) ~INTVAL (x) <= 077) ? 1 : 2;
- if ((unsigned HOST_WIDE_INT) INTVAL (x) <= 077)
- return 1;
- if (outer_code == COMPARE && INTVAL (x) == -1)
- return 1;
- if (outer_code == PLUS && (unsigned HOST_WIDE_INT) -INTVAL (x) <= 077)
- return 1;
+ {
+ *total = ((unsigned HOST_WIDE_INT) ~INTVAL (x) <= 077) ? 1 : 2;
+ return true;
+ }
+ if ((unsigned HOST_WIDE_INT) INTVAL (x) <= 077
+ || (outer_code == COMPARE
+ && INTVAL (x) == -1)
+ || ((outer_code == PLUS || outer_code == MINUS)
+ && (unsigned HOST_WIDE_INT) -INTVAL (x) <= 077))
+ {
+ *total = 1;
+ return true;
+ }
/* FALLTHRU */
case CONST:
case LABEL_REF:
case SYMBOL_REF:
- return 3;
+ *total = 3;
+ return true;
case CONST_DOUBLE:
if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT)
- return vax_float_literal (x) ? 5 : 8;
+ *total = vax_float_literal (x) ? 5 : 8;
else
- return (((CONST_DOUBLE_HIGH (x) == 0
- && (unsigned HOST_WIDE_INT) CONST_DOUBLE_LOW (x) < 64)
- || (outer_code == PLUS
- && CONST_DOUBLE_HIGH (x) == -1 \
- && (unsigned HOST_WIDE_INT)-CONST_DOUBLE_LOW (x) < 64))
- ? 2 : 5);
+ *total = ((CONST_DOUBLE_HIGH (x) == 0
+ && (unsigned HOST_WIDE_INT) CONST_DOUBLE_LOW (x) < 64)
+ || (outer_code == PLUS
+ && CONST_DOUBLE_HIGH (x) == -1
+ && (unsigned HOST_WIDE_INT)-CONST_DOUBLE_LOW (x) < 64))
+ ? 2 : 5;
+ return true;
case POST_INC:
- return 2;
+ *total = 2;
+ return true; /* Implies register operand. */
+
case PRE_DEC:
- return 3;
+ *total = 3;
+ return true; /* Implies register operand. */
+
case MULT:
switch (mode)
{
case DFmode:
- c = 16; /* 4 on VAX 9000 */
+ *total = 16; /* 4 on VAX 9000 */
break;
case SFmode:
- c = 9; /* 4 on VAX 9000, 12 on VAX 2 */
+ *total = 9; /* 4 on VAX 9000, 12 on VAX 2 */
break;
case DImode:
- c = 16; /* 6 on VAX 9000, 28 on VAX 2 */
+ *total = 16; /* 6 on VAX 9000, 28 on VAX 2 */
break;
case SImode:
case HImode:
case QImode:
- c = 10; /* 3-4 on VAX 9000, 20-28 on VAX 2 */
+ *total = 10; /* 3-4 on VAX 9000, 20-28 on VAX 2 */
break;
default:
- return MAX_COST; /* Mode is not supported. */
+ *total = MAX_COST; /* Mode is not supported. */
+ return true;
}
break;
+
case UDIV:
if (mode != SImode)
- return MAX_COST; /* Mode is not supported. */
- c = 17;
+ {
+ *total = MAX_COST; /* Mode is not supported. */
+ return true;
+ }
+ *total = 17;
break;
+
case DIV:
if (mode == DImode)
- c = 30; /* highly variable */
+ *total = 30; /* Highly variable. */
else if (mode == DFmode)
/* divide takes 28 cycles if the result is not zero, 13 otherwise */
- c = 24;
+ *total = 24;
else
- c = 11; /* 25 on VAX 2 */
+ *total = 11; /* 25 on VAX 2 */
break;
+
case MOD:
- c = 23;
+ *total = 23;
break;
+
case UMOD:
if (mode != SImode)
- return MAX_COST; /* Mode is not supported. */
- c = 29;
+ {
+ *total = MAX_COST; /* Mode is not supported. */
+ return true;
+ }
+ *total = 29;
break;
+
case FLOAT:
- c = 6 + (mode == DFmode) + (GET_MODE (XEXP (x, 0)) != SImode);
- /* 4 on VAX 9000 */
+ *total = (6 /* 4 on VAX 9000 */
+ + (mode == DFmode) + (GET_MODE (XEXP (x, 0)) != SImode));
break;
+
case FIX:
- c = 7; /* 17 on VAX 2 */
+ *total = 7; /* 17 on VAX 2 */
break;
+
case ASHIFT:
case LSHIFTRT:
case ASHIFTRT:
if (mode == DImode)
- c = 12;
+ *total = 12;
else
- c = 10; /* 6 on VAX 9000 */
+ *total = 10; /* 6 on VAX 9000 */
break;
+
case ROTATE:
case ROTATERT:
- c = 6; /* 5 on VAX 2, 4 on VAX 9000 */
+ *total = 6; /* 5 on VAX 2, 4 on VAX 9000 */
if (GET_CODE (XEXP (x, 1)) == CONST_INT)
- fmt = "e"; /* all constant rotate counts are short */
+ fmt = "e"; /* all constant rotate counts are short */
break;
+
case PLUS:
case MINUS:
- c = (mode == DFmode) ? 13 : 8; /* 6/8 on VAX 9000, 16/15 on VAX 2 */
+ *total = (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;
+ *total = 3;
break;
+
case AND:
/* AND is special because the first operand is complemented. */
- c = 3;
+ *total = 3;
if (GET_CODE (XEXP (x, 0)) == CONST_INT)
{
if ((unsigned HOST_WIDE_INT)~INTVAL (XEXP (x, 0)) > 63)
- c = 4;
+ *total = 4;
fmt = "e";
i = 1;
}
break;
+
case NEG:
if (mode == DFmode)
- return 9;
+ *total = 9;
else if (mode == SFmode)
- return 6;
+ *total = 6;
else if (mode == DImode)
- return 4;
+ *total = 4;
+ else
+ *total = 2;
+ break;
+
case NOT:
- return 2;
+ *total = 2;
+ break;
+
case ZERO_EXTRACT:
case SIGN_EXTRACT:
- c = 15;
+ *total = 15;
break;
+
case MEM:
if (mode == DImode || mode == DFmode)
- c = 5; /* 7 on VAX 2 */
+ *total = 5; /* 7 on VAX 2 */
else
- c = 3; /* 4 on VAX 2 */
+ *total = 3; /* 4 on VAX 2 */
x = XEXP (x, 0);
- if (GET_CODE (x) == REG || GET_CODE (x) == POST_INC)
- return c;
- return c + vax_address_cost_1 (x);
- default:
- c = 3;
+ if (GET_CODE (x) != REG && GET_CODE (x) != POST_INC)
+ *total += vax_address_cost_1 (x);
+ return true;
+
+ case FLOAT_EXTEND:
+ case FLOAT_TRUNCATE:
+ case TRUNCATE:
+ *total = 3; /* FIXME: Costs need to be checked */
break;
+
+ default:
+ return false;
}
/* Now look inside the expression. Operands which are not registers or
short constants add to the cost.
FMT and I may have been adjusted in the switch above for instructions
- which require special handling */
+ which require special handling. */
while (*fmt++ == 'e')
{
- register rtx op = XEXP (x, i++);
+ rtx op = XEXP (x, i);
+
+ i += 1;
code = GET_CODE (op);
/* A NOT is likely to be found as the first operand of an AND
@@ -715,12 +763,12 @@ vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code)
case CONST_INT:
if ((unsigned HOST_WIDE_INT)INTVAL (op) > 63
&& GET_MODE (x) != QImode)
- c += 1; /* 2 on VAX 2 */
+ *total += 1; /* 2 on VAX 2 */
break;
case CONST:
case LABEL_REF:
case SYMBOL_REF:
- c += 1; /* 2 on VAX 2 */
+ *total += 1; /* 2 on VAX 2 */
break;
case CONST_DOUBLE:
if (GET_MODE_CLASS (GET_MODE (op)) == MODE_FLOAT)
@@ -728,37 +776,30 @@ vax_rtx_costs_1 (register rtx x, enum rtx_code code, enum rtx_code outer_code)
/* Registers are faster than floating point constants -- even
those constants which can be encoded in a single byte. */
if (vax_float_literal (op))
- c++;
+ *total += 1;
else
- c += (GET_MODE (x) == DFmode) ? 3 : 2;
+ *total += (GET_MODE (x) == DFmode) ? 3 : 2;
}
else
{
if (CONST_DOUBLE_HIGH (op) != 0
|| (unsigned)CONST_DOUBLE_LOW (op) > 63)
- c += 2;
+ *total += 2;
}
break;
case MEM:
- c += 1; /* 2 on VAX 2 */
+ *total += 1; /* 2 on VAX 2 */
if (GET_CODE (XEXP (op, 0)) != REG)
- c += vax_address_cost_1 (XEXP (op, 0));
+ *total += vax_address_cost_1 (XEXP (op, 0));
break;
case REG:
case SUBREG:
break;
default:
- c += 1;
+ *total += 1;
break;
}
}
- return c;
-}
-
-static bool
-vax_rtx_costs (rtx x, int code, int outer_code, int * total)
-{
- *total = vax_rtx_costs_1 (x, code, outer_code);
return true;
}
diff --git a/gcc/config/x-darwin b/gcc/config/x-darwin
new file mode 100644
index 00000000000..620f357abcf
--- /dev/null
+++ b/gcc/config/x-darwin
@@ -0,0 +1,5 @@
+ # APPLE LOCAL begin mainline 2005-04-06 4071679
+host-darwin.o : $(srcdir)/config/host-darwin.c $(CONFIG_H) $(SYSTEM_H) \
+ coretypes.h toplev.h config/host-darwin.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
+ # APPLE LOCAL end mainline 2005-04-06 4071679
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index 01c0caef91d..776fb5feb23 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -209,6 +209,15 @@ extern unsigned xtensa_current_frame_size;
bitfields and the structures that contain them. */
#define PCC_BITFIELD_TYPE_MATTERS 1
+/* Disable the use of word-sized or smaller complex modes for structures,
+ and for function arguments in particular, where they cause problems with
+ register a7. The xtensa_copy_incoming_a7 function assumes that there is
+ a single reference to an argument in a7, but with small complex modes the
+ real and imaginary components may be extracted separately, leading to two
+ uses of the register, only one of which would be replaced. */
+#define MEMBER_TYPE_FORCES_BLK(FIELD, MODE) \
+ ((MODE) == CQImode || (MODE) == CHImode)
+
/* Align string constants and constructors to at least a word boundary.
The typical use of this macro is to increase alignment for string
constants to be word aligned so that 'strcpy' calls that copy
diff --git a/gcc/configure b/gcc/configure
index a59f4520531..56b7be828b9 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1032,7 +1032,7 @@ esac
else
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi
- cd "$ac_popdir"
+ cd $ac_popdir
done
fi
@@ -1384,7 +1384,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
#Set to 1 on a release branch
-is_release=
+is_release=1
# Determine the host, build, and target systems
ac_aux_dir=
@@ -2401,7 +2401,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2459,7 +2460,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2575,7 +2577,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2629,7 +2632,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2674,7 +2678,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2718,7 +2723,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3140,7 +3146,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3211,7 +3218,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3270,7 +3278,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3352,7 +3361,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3522,7 +3532,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3587,7 +3598,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3649,7 +3661,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3689,7 +3702,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3745,7 +3759,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3785,7 +3800,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3849,7 +3865,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3880,8 +3897,10 @@ See \`config.log' for more details." >&2;}
esac
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@@ -3993,7 +4012,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4055,7 +4075,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4095,7 +4116,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4151,7 +4173,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4191,7 +4214,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4255,7 +4279,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4286,8 +4311,10 @@ See \`config.log' for more details." >&2;}
esac
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@@ -4399,7 +4426,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4461,7 +4489,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4501,7 +4530,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4557,7 +4587,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4597,7 +4628,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4661,7 +4693,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4692,8 +4725,10 @@ See \`config.log' for more details." >&2;}
esac
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@@ -4805,7 +4840,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4867,7 +4903,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4907,7 +4944,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4963,7 +5001,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5003,7 +5042,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5067,7 +5107,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5098,8 +5139,10 @@ See \`config.log' for more details." >&2;}
esac
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@@ -5212,7 +5255,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5274,7 +5318,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5314,7 +5359,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5370,7 +5416,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5410,7 +5457,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5474,7 +5522,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5505,8 +5554,10 @@ See \`config.log' for more details." >&2;}
esac
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@@ -5620,7 +5671,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5682,7 +5734,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5722,7 +5775,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5778,7 +5832,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5818,7 +5873,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5882,7 +5938,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5913,8 +5970,10 @@ See \`config.log' for more details." >&2;}
esac
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@@ -6030,7 +6089,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6080,7 +6140,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6138,7 +6199,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6356,7 +6418,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7206,6 +7269,159 @@ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+# APPLE LOCAL begin Mach time
+
+for ac_header in mach/mach_time.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+# APPLE LOCAL end Mach time
+
# See if cmp has --ignore-initial.
echo "$as_me:$LINENO: checking for cmp's capabilities" >&5
echo $ECHO_N "checking for cmp's capabilities... $ECHO_C" >&6
@@ -7326,7 +7542,7 @@ if test "${gcc_cv_prog_makeinfo_modern+set}" = set; then
else
ac_prog_version=`$MAKEINFO --version 2>&1 |
sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
- echo "configure:7329: version of makeinfo is $ac_prog_version" >&5
+ echo "configure:7545: version of makeinfo is $ac_prog_version" >&5
case $ac_prog_version in
'') gcc_cv_prog_makeinfo_modern=no;;
4.[2-9]*)
@@ -7581,7 +7797,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7651,7 +7868,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7816,7 +8034,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7877,7 +8096,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7947,7 +8167,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8222,7 +8443,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8295,7 +8517,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8336,7 +8559,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8538,7 +8762,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8612,7 +8837,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8666,7 +8892,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8744,7 +8971,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8798,7 +9026,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8866,7 +9095,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8996,7 +9226,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9117,7 +9348,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9468,7 +9700,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9585,7 +9818,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9697,7 +9931,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9855,7 +10090,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10727,7 +10963,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10777,7 +11014,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10867,7 +11105,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10936,7 +11175,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10999,7 +11239,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11102,7 +11343,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11187,7 +11429,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11256,7 +11499,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11331,7 +11575,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11414,7 +11659,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11490,7 +11736,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11556,7 +11803,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11692,7 +11940,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -12001,7 +12250,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -12267,7 +12517,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -12321,7 +12572,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -12603,7 +12855,8 @@ then
BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
if test "x$TARGET_SYSTEM_ROOT" = x; then
- if "x$STMP_FIXPROTO" != x ; then
+# APPLE LOCAL mainline 4.0 2005-06-16
+ if test "x$STMP_FIXPROTO" != x ; then
STMP_FIXPROTO=stmp-install-fixproto
fi
fi
@@ -16250,6 +16503,11 @@ esac
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
@@ -16288,12 +16546,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
fi;;
esac
done` || { (exit 1); exit 1; }
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 6c81f210474..092874b86bc 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -31,7 +31,7 @@ AC_CONFIG_SRCDIR(tree.c)
AC_CONFIG_HEADER(auto-host.h:config.in)
#Set to 1 on a release branch
-is_release=
+is_release=1
# Determine the host, build, and target systems
AC_CANONICAL_BUILD
@@ -776,6 +776,10 @@ AC_SUBST(ranlib_flags)
gcc_AC_PROG_INSTALL
+# APPLE LOCAL begin Mach time
+AC_CHECK_HEADERS(mach/mach_time.h)
+# APPLE LOCAL end Mach time
+
# See if cmp has --ignore-initial.
gcc_AC_PROG_CMP_IGNORE_INITIAL
@@ -1688,7 +1692,8 @@ then
BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
if test "x$TARGET_SYSTEM_ROOT" = x; then
- if [ "x$STMP_FIXPROTO" != x ] ; then
+# APPLE LOCAL mainline 4.0 2005-06-16
+ if test "x$STMP_FIXPROTO" != x ; then
STMP_FIXPROTO=stmp-install-fixproto
fi
fi
diff --git a/gcc/conflict.c b/gcc/conflict.c
index 1cd58600b1e..eff057e3fa4 100644
--- a/gcc/conflict.c
+++ b/gcc/conflict.c
@@ -208,7 +208,7 @@ conflict_graph_add (conflict_graph graph, int reg1, int reg2)
arc->smaller = smaller;
arc->larger = larger;
- /* Link the conflict into into two lists, one for each reg. */
+ /* Link the conflict into two lists, one for each reg. */
arc->smaller_next = graph->neighbor_heads[smaller];
graph->neighbor_heads[smaller] = arc;
arc->larger_next = graph->neighbor_heads[larger];
diff --git a/gcc/convert.c b/gcc/convert.c
index 005d3e2089b..23d44ec5ae9 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -1,6 +1,6 @@
/* Utility routines for data type conversion for GCC.
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1997, 1998,
- 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -30,6 +30,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tree.h"
#include "flags.h"
#include "convert.h"
+/* APPLE LOCAL begin AltiVec */
+#include "c-tree.h"
+#include "c-common.h"
+/* APPLE LOCAL end AltiVec */
#include "toplev.h"
#include "langhooks.h"
#include "real.h"
@@ -722,6 +726,31 @@ convert_to_complex (tree type, tree expr)
}
}
+/* APPLE LOCAL begin AltiVec */
+/* Build a COMPOUND_LITERAL_EXPR. TYPE is the type given in the compound
+ literal. INIT is a CONSTRUCTOR that initializes the compound literal. */
+
+static tree
+build_compound_literal_vector (tree type, tree init)
+{
+ tree decl;
+ tree complit;
+ tree stmt;
+
+ decl = build_decl (VAR_DECL, NULL_TREE, type);
+ DECL_EXTERNAL (decl) = 0;
+ TREE_PUBLIC (decl) = 0;
+ TREE_USED (decl) = 1;
+ TREE_TYPE (decl) = type;
+ TREE_READONLY (decl) = TYPE_READONLY (type);
+ store_init_value (decl, init);
+ stmt = build_stmt (DECL_EXPR, decl);
+ complit = build1 (COMPOUND_LITERAL_EXPR, TREE_TYPE (decl), stmt);
+ layout_decl (decl, 0);
+ return complit;
+}
+/* APPLE LOCAL end AltiVec */
+
/* Convert EXPR to the vector type TYPE in the usual ways. */
tree
@@ -736,6 +765,14 @@ convert_to_vector (tree type, tree expr)
error ("can't convert between vector values of different size");
return error_mark_node;
}
+ /* APPLE LOCAL begin AltiVec */
+ if (TREE_CODE (type) == VECTOR_TYPE
+ && TREE_CODE (TREE_TYPE (expr)) == VECTOR_TYPE
+ && TREE_CODE (expr) == CONSTRUCTOR && TREE_CONSTANT (expr))
+ /* converting a constant vector to new vector type with Motorola Syntax. */
+ return convert (type, build_compound_literal_vector (TREE_TYPE (expr), expr));
+ /* APPLE LOCAL end AltiVec */
+
return build1 (NOP_EXPR, type, expr);
default:
diff --git a/gcc/coretypes.h b/gcc/coretypes.h
index acb2c9ea8df..e2369441055 100644
--- a/gcc/coretypes.h
+++ b/gcc/coretypes.h
@@ -49,6 +49,8 @@ typedef union tree_node *tree;
Note that the cpp_reader typedef remains part of cpplib.h. */
struct cpp_reader;
+/* APPLE LOCAL AltiVec */
+struct cpp_token;
/* The thread-local storage model associated with a given VAR_DECL
or SYMBOL_REF. This isn't used much, but both trees and RTL refer
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 91cbb9039dd..bc16be410d3 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,387 @@
+2005-05-18 Geoffrey Keating <geoffk@apple.com>
+
+ * Make-lang.in (cc1plus-dummy): New.
+ (cc1plus-checksum.c): New.
+ (cc1plus-checksum.o): New.
+ (cc1plus): Add cc1plus-checksum.o.
+
+2005-06-17 Geoffrey Keating <geoffk@apple.com>
+
+ PR c++/17413
+ * pt.c (type_unification_real): Apply template type deduction even
+ to procedure parameters that are not dependent on a template
+ parameter.
+
+2005-06-13 Geoffrey Keating <geoffk@apple.com>
+
+ * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
+ (rule for installing g++.1 manpage): Does depend on installdirs.
+
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/21025
+ * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
+ which sizeof/alignof is dependent, rather than just whether we are
+ processing_template_decl.
+
+2005-04-14 Dale Johannesen <dalej@apple.com>
+
+ * tree.c (cp_tree_equal): Handle SSA_NAME.
+
+2005-04-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20905
+ * parser.c (cp_parser_type_specifier_seq): Add is_condition
+ parameter.
+ (cp_parser_new_type_id): Pass it.
+ (cp_parser_condition): Likewise.
+ (cp_parser_conversion_type_id): Likewise.
+ (cp_parser_type_id): Likewise.
+ (cp_parser_type_specifier_seq): In a condition, do not allow
+ invalid type-specifier combinations.
+ (cp_parser_exception_declaration): Adjust call to
+ cp_parser_type_specifier_seq.
+
+ * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
+ * cp-tree.h (struct tinst_level): Add in_system_header_p.
+ (TINST_IN_SYSTEM_HEADER_P): New macro.
+ (make_tinst_level): Remove.
+ * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
+ the instantiated class.
+ (push_tinst_level): Do not use make_tinst_level. Set
+ TINST_IN_SYSTEM_HEADER_P.
+ (pop_tinst_level): Likewise.
+ (instantiate_class_template): Set in_system_header.
+ (instantiate_pending_templates): Likewise.
+ * tree.c (make_tinst_level): Remove.
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * decl.c (start_decl): Apply pending #pragma weak regardless of
+ scope.
+
+2005-04-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20212
+ * pt.c (regenerate_decl_from_template): Copy attributes for
+ parameters from the pattern to the instantiation.
+
+2005-04-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20734
+ * cp-tree.def (OFFSET_REF): Correct comments.
+ * init.c (build_offset_ref): Remove misleading comment.
+ * typeck.c (build_unary_op): Handle pointer-to-member creation
+ here, rather than ...
+ (unary_complex_lvalue): ... here.
+
+2005-04-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/19312
+ * tree.c (stabilize_init): Don't bother trying to stabilize
+ something with no side-effects.
+
+2005-04-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20763
+ * decl.c (grokdeclarator): Correct attribute handling.
+
+ PR c++/19159
+ * decl2.c (import_export_decl): Use non-COMDAT external linkage
+ for virtual tables, typeinfo, etc. that will be emitted in only
+ one translation unit on systems without weak symbols.
+
+2005-04-05 Steven Bosscher <stevenb@suse.de>
+
+ * typeck.c (comptypes): First determine if the types are compatible
+ from a target-independent point of view. Check target attributes
+ last.
+
+2005-04-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20679
+ * parser.c (cp_parser_template_name): Fix thinko.
+
+2005-04-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/18644
+ * call.c (build_new_op): Remove check for -Wsynth.
+
+2005-03-29 Richard Henderson <rth@redhat.com>
+
+ PR c/20519
+ * decl.c (cp_complete_array_type): Rename from complete_array_type.
+ Use the new complete_array_type in c-common.c. Update all callers.
+ * cp-tree.h (cp_complete_array_type): Update to match.
+
+2005-03-24 Geoffrey Keating <geoffk@apple.com>
+
+ * typeck.c (build_static_cast_1): Allow scalar_cast between
+ any integral, floating, or enumeration type.
+
+2005-03-22 Mark Mitchell <mark@codesourcery.com>
+
+ * parser.c (cp_parser_warn_min_max): New function.
+ (cp_parser_binary_expression): Use it.
+ (cp_parser_assignment_operator_opt): Likewise.
+ (cp_parser_operator): Likewise.
+
+2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19980
+ * decl.c (start_preparsed_function): Robustify.
+
+2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/20499
+ * parser.c (cp_parser_class_head): Return NULL_TREE when
+ encountering a redefinition.
+
+2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20465
+ PR c++/20381
+ * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
+ template.
+
+2005-03-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/20461
+ PR c++/20536
+ * init.c (emit_mem_initializers): Don't crash on undefined
+ types.
+
+2005-03-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/20463
+ * parser.c (cp_parser_diagnose_invalid_type_name):
+ Check TYPE_BINFO (current_class_type) before attempting
+ to emit inform messages.
+
+2005-03-21 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/20147
+ * semantics.c (finish_stmt_expr_expr): Return immediately
+ if error_operand_p (expr).
+
+2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/20240
+ * decl.c (decls_match): Compare context of VAR_DECL.
+
+2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/20333
+ * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
+ Check the return value of cp_parser_nested_name_specifier.
+
+2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20186
+ * pt.c (contains_dependent_cast_p): Remove.
+ (fold_non_dependent_expr): Don't use it.
+ (value_dependent_expression_p): Reference_exprs can be dependent.
+
+2005-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20157
+ * pt.c (determine_specialization): Reject non-specializations.
+
+2005-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/18384, c++/18327
+ * decl.c (reshape_init_array): Use UHWI type for max_index_cst
+ and index. Convert max_index to size_type_node if it isn't
+ host_integerp (, 1).
+
+2005-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20208
+ * pt.c (tsubst_decl): Apply array-to-pointer and
+ function-to-pointer conversions to function arguments.
+ (regenerate_decl_from_template): Likewise.
+
+2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20186
+ * pt.c (contains_dependent_cast_p): New.
+ (fold_non_dependent_expr): Call it.
+
+2005-03-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20142
+ * init.c (build_vec_init): When determining whether or not the
+ element type has an asignment operator, look through all array
+ dimensions.
+
+2005-03-07 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (finish_struct_1): Do not warn about non-virtual
+ destructors in Java classes.
+
+2005-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/19311
+ * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
+ * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
+ for OFFSET_TYPE.
+ * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
+ Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
+ (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
+ template.
+
+2005-03-02 Alexandre Oliva <aoliva@redhat.com>
+
+ * name-lookup.c (push_overloaded_decl): Don't error if the new
+ decl matches the old one.
+ * decl.c (redeclaration_error_message): Likewise.
+
+2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20232
+ * class.c (update_vtable_entry_for_fn): Don't crash on invalid
+ covariancy.
+
+ * cp-tree.g (THUNK_TARGET): Expand comment.
+ * method.c (use_thunk): Make sure we also use the target, if that
+ is a thunk.
+
+2005-02-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/20206
+ * decl.c (cxx_comdat_group): Put thunks for
+ TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
+ comdat group as the thunk target.
+
+2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
+ parser.c: Fix comment typo(s).
+
+2005-02-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/20175
+ * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
+ initializes a char/wchar_t array.
+
+2005-02-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19878
+ * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
+ with internal linkage.
+
+2005-02-23 Alexandre Oliva <aoliva@redhat.com>
+
+ * decl.c (grokvardecl): Don't exempt anonymous types from having
+ linkage for variables that have linkage other than "C".
+
+2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cp-objcp-common.h, error.c: Update copyright.
+
+2005-02-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20073
+ * decl.c (start_decl_1): Don't clear TREE_READONLY.
+ (cp_finish_decl): Likewise.
+ (complete_vars): Call cp_apply_type_quals_to_decl.
+ * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
+ cases where that's not valid.
+
+ PR c++/19991
+ * init.c (integral_constant_value): Iterate if the value of a decl
+ is itself a constant.
+
+ PR c++/20152
+ * parser.c (cp_parser_class_head): Check for redefintions here.
+ * semantics.c (begin_class_definition): Not here.
+
+ PR c++/20153
+ * decl2.c (build_anon_union_vars): Add type parameter.
+ (finish_anon_union): Pass it.
+
+ PR c++/20148
+ * error.c (dump_expr): Do not print the body of a BIND_EXPR.
+ Handle STATEMENT_LIST.
+
+ PR c++/19883
+ * parser.c (cp_parser_direct_declarator): Always complain about
+ non-constant array bounds when in a function scope.
+ * semantics.c (finish_id_expression): Do not mark dependent names
+ as non-constant.
+
+2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
+
+ PR c++/19076
+ PR c++/6628
+ * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
+ * decl.c (grokdeclarator): Pedwarn about qualifying a function
+ type.
+ Add qualifiers when declaring a typedef of a function type.
+ Member function pointers pick up the qualifiers of the typedef
+ used to declare them.
+ Don't complain about creating cv-qualified function types.
+ Complain about qualified function typedefs that are used to
+ declare non-static member functions or free functions.
+ Use cp_apply_type_quals_to_decl.
+ (start_preparsed_function): Use cp_apply_type_quals_to_decl.
+ (grokclassfn): Use cp_apply_type_quals_to_decl.
+ * error.c (dump_type_suffix): Print qualifiers for function
+ types.
+ * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
+ (tsubst): When substituting a function type into a member
+ pointer type, pass along the qualifiers.
+ (unify): Unify member pointers to member function pointers.
+ * tree.c (cp_build_qualified_type_real): Function types may be
+ qualified. This includes restrict qualifiers.
+ * typeck.c (cp_apply_type_quals_to_decl): New function to replace
+ use of c_apply_type_quals_to_decl. Drops qualifiers that are being
+ added to function types.
+
+2005-02-20 Zack Weinberg <zack@codesourcery.com>
+
+ PR 18785
+ * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
+ c_common_to_target_charset. Delete bogus comment.
+
+2005-02-18 Richard Henderson <rth@redhat.com>
+
+ PR libstdc++/10606
+ * except.c (do_get_exception_ptr): New.
+ (expand_start_catch_block): Use it.
+
+2005-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
+ if type is not error_mark_node.
+
+2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/19508
+ * decl2.c (grokfield): Do not apply attributes to template parameters
+ as they are ignored by tsubst anyway.
+
+2005-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/19813
+ * decl.c (start_decl_1): Clear TREE_READONLY flag if
+ its type has TYPE_NEEDS_CONSTRUCTING.
+ (complete_vars): Likewise.
+
+2005-02-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/20028
+ * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
+ template along with TYPE_SIZE.
+
+ PR c++/20022
+ * semantics.c (perform_deferred_access_checks): Use
+ get_deferred_access_checks to get the top of the stack.
+
2005-02-15 Alexandre Oliva <aoliva@redhat.com>
PR c++/17788
@@ -57,8 +441,8 @@
2005-02-11 Richard Henderson <rth@redhat.com>
PR c++/19632
- * pt.c (get_mostly_instantiated_function_type): Save and restore
- flag_access_control instead of push/pop_access_scope.
+ * pt.c (get_mostly_instantiated_function_type): Save and restore
+ flag_access_control instead of push/pop_access_scope.
2005-02-10 Mark Mitchell <mark@codesourcery.com>
@@ -169,13 +553,13 @@
* cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
* parser.c (cp_parser_postfix_expression): Accept function call in
constant expression if builtin_valid_in_constant_expr_p is true
- for that function.
+ for that function.
* pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
* semantics.c (finish_id_expression): Accept function call in constant
expression if builtin_valid_in_constant_expr_p is true for that
- function.
+ function.
* tree.c (builtin_valid_in_constant_expr_p): New.
-
+
2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/17413
@@ -208,7 +592,7 @@
2005-02-01 Alexandre Oliva <aoliva@redhat.com>
* parser.c (cp_parser_template_id): Revert comment patch too.
-
+
PR c++/18757
PR c++/19366
PR c++/19499
@@ -292,7 +676,7 @@
PR c++/19349
* name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
- memory.
+ memory.
2005-01-28 Mark Mitchell <mark@codesourcery.com>
@@ -365,7 +749,7 @@
* typeck.c (comptypes): Handle return code from objc_comptypes
correctly.
-
+
2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
* cp-tree.h, name-lookup.h: Remove unused prototypes.
@@ -528,8 +912,8 @@
names.
(cp_parser_member_declaration): Adjust call to make_id_declarator.
(cp_parser_check_declarator_template_parameters): Do not expect a
- SCOPE_REF.
-
+ SCOPE_REF.
+
* decl.c (duplicate_decls): Call ggc_free on declarations we will
not be needing any longer.
@@ -583,7 +967,7 @@
* call.c (build_this): In templates, do not bother with
build_unary_op.
* typeck.c (unary_complex_lvalue): In a template, always refuse
- simplifications.
+ simplifications.
PR c++/18492
* cp-gimplify.c (cp_genericize): Relax assertion.
@@ -593,7 +977,7 @@
PR c++/18257
* rtti.c (emit_support_tinfos): On systems without weak symbols,
- emit the runtime library type-info objects as non-COMDAT.
+ emit the runtime library type-info objects as non-COMDAT.
2004-12-21 Mark Mitchell <mark@codesourcery.com>
@@ -636,14 +1020,14 @@
* error.c (dump_expr): <STRING_CST case> Add parens, if needed.
* cp-tree.def (TEMPLATE_TYPE_PARM,
- BOUND_TEMPLATE_TEMPLATE_PARM, TYPE_OF_TYPE, TYPENAME_TYPE): Reorder
+ BOUND_TEMPLATE_TEMPLATE_PARM, TYPE_OF_TYPE, TYPENAME_TYPE): Reorder
for better code efficiency.
* cp-tree.h (CLASS_TYPE_P): Short circuit IS_AGGR_TYPE check.
(CAN_HAVE_FULL_LANG_DECL_P): Reorder for better optimization.
(INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P,
INTEGRAL_OR_ENUMERATION_TYPE_P, SCALAR_TYPE_P,
CP_AGGREGATE_TYPE_P, TYPE_PTROB_P, TYPE_REF_OBJ_P,
- TYPE_PTROBV_P): Likewise.
+ TYPE_PTROBV_P): Likewise.
PR c++/18975
* method.c (do_build_copy_constructor): Refactor. Don't const
@@ -655,7 +1039,7 @@
PR c++/19044
* decl.c (make_rtl_for_nonlocal_decl): Use
set_builtin_user_assembler_name.
-
+
2004-12-19 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (note_decl_for_pch): New function.
@@ -792,7 +1176,7 @@
PR c++/18514
* name-lookup.c (do_nonmember_using_decl): A real function
declaration takes precedence over an anticipated declaration.
-
+
2004-12-09 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* parser.c (cp_parser_member_declaration): Fix comment typo.
@@ -821,7 +1205,7 @@
2004-12-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/18100
- * decl.c (lookup_and_check_tag): Diagnose nested class with
+ * decl.c (lookup_and_check_tag): Diagnose nested class with
the same name as enclosing class.
2004-12-08 Nathan Sidwell <nathan@codesourcery.com>
@@ -1010,7 +1394,7 @@
make_typename_type.
(tsubst_decl): Do not pre-substitute the type of the declaration.
(tsubst): Hand off declarations more quickly. Adjust call to
- make_typename_type.
+ make_typename_type.
PR c++/18512
* parser.c (cp_parser_postfix_dot_deref_expression): Robustify.
@@ -1106,7 +1490,7 @@
(lookup_type_scope): Adjust declaration.
* decl.c (lookup_and_check_tag, xref_tag, xref_tag_from_type):
Change bool parameter GLOBALIZED to TAG_SCOPE parameter SCOPE.
- (start_enum): Likewise. Add assertion test that NAME is
+ (start_enum): Likewise. Add assertion test that NAME is
IDENTIFIER_NODE. Use anonymous name for dummy ENUMERAL_TYPE in
case of error.
* cp-tree.h (xref_tag, xref_tag_from_type): Adjust declarations.
@@ -1246,7 +1630,7 @@
PR c++/18407
* pt.c (tsubst_copy_and_build): Handle qualified names used from a
derived class correctly.
-
+
* decl2.c (import_export_decl): Fix typo in comment.
* tree.c (pod_type_p): Likewise.
@@ -1256,7 +1640,7 @@
2004-11-10 Adam Nemet <anemet@lnxw.com>
- PR middle-end/18160
+ PR middle-end/18160
* typeck.c (cxx_mark_addressable): Issue an error if address of an
explicit register variable is requested.
@@ -1294,7 +1678,7 @@
search.c, typeck2.c: Fix comment formatting.
2004-11-04 Ulrich Weigand <uweigand@de.ibm.com>
-
+
PR tree-optimization/18184
* cp-objcp-common.c (cxx_types_compatible_p): Do not treat pointers
of different modes or alias-all flags as equivalent.
@@ -1346,26 +1730,26 @@
2004-10-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert diagnostics to use quoting flag q 9/n
- * typeck.c (build_x_unary_op, convert_member_func_to_ptr,
+ * typeck.c (build_x_unary_op, convert_member_func_to_ptr,
get_delta_difference): Use new quotation style.
* repo.c (reopen_repo_file_for_write): Likewise.
* pt.c (do_type_instantiation): Likewise.
- * parser.c (cp_parser_diagnose_invalid_type_name):
- * name-lookup.c (push_overloaded_decl, set_decl_namespace):
+ * parser.c (cp_parser_diagnose_invalid_type_name):
+ * name-lookup.c (push_overloaded_decl, set_decl_namespace):
* error.c (cp_print_error_function,
print_instantiation_full_context): Likewise.
- * decl.c (define_label, grok_reference_init,
- maybe_deduce_size_from_array_init, revert_static_member_fn):
+ * decl.c (define_label, grok_reference_init,
+ maybe_deduce_size_from_array_init, revert_static_member_fn):
* decl2.c (check_classfn): Likewise.
- * class.c (add_method, check_field_decls, layout_class_type,
+ * class.c (add_method, check_field_decls, layout_class_type,
resolve_address_of_overloaded_function): Likewise.
* call.c (build_x_va_arg, build_over_call): Likewise.
2004-10-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert diagnostics to use quoting flag q 8/n
- * cvt.c (cp_convert_to_pointer, warn_ref_binding,
- convert_to_reference, ocp_convert, convert_to_void
+ * cvt.c (cp_convert_to_pointer, warn_ref_binding,
+ convert_to_reference, ocp_convert, convert_to_void
cp_convert_to_pointer): Use new quotation style.
2004-10-31 Mark Mitchell <mark@codesourcery.com>
@@ -1373,7 +1757,7 @@
PR c++/15172
* typeck2.c (store_init_value): Use split_nonconstant_init even
for types that require construction.
-
+
1004-10-28 Matt Austern <austern@apple.com>
PR c++/17542
@@ -1382,7 +1766,7 @@
and remove static qualifier.
* decl.c (shadow_tag): Warn about ignored attributes in class/struct/
union/enum declaration.
-
+
2004-10-29 Kazu Hirata <kazu@cs.umass.edu>
* pt.c: Fix a comment typo.
@@ -1405,7 +1789,7 @@
PR c++/14124
* decl.c (finish_enum): Handle packed attribute.
* parser.c (cp_parser_enum_specifier): Process trailing attributes.
-
+
2004-10-28 Mark Mitchell <mark@codesourcery.com>
PR c++/17132
@@ -1545,7 +1929,7 @@
(build_reinterpret_cast_1): Add for_reinterpret_cast_p parameter.
Allow function pointer conversions that DR195 suggests.
(build_reinterpret_cast, build_c_cast): Update
- build_reinterpret_cast_1 calls.
+ build_reinterpret_cast_1 calls.
2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
@@ -1666,7 +2050,7 @@
* parser.c (cp_parser_simple_declaration): Do not diagnose invalid
type names if we have already found a valid type.
(cp_parser_member_declaration): Likewise.
-
+
PR c++/17916
* parser.c (cp_parser_member_specification_opt): Handle
CPP_PRAGMA.
@@ -1699,7 +2083,7 @@
* pt.c (struct pair_fn_data): Use pointer_set_t, not htab_t
(for_each_template_parm): Convert from htab_t to pointer_set_t.
* tree.c (cp_walk_subtrees): Last argument is pointer_set_t* now.
-
+
2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17661
@@ -1731,7 +2115,7 @@
2004-10-11 Mark Mitchell <mark@codesourcery.com>
PR c++/15786
- * parser.c (cp_parser_declarator): Add member_p parameter.
+ * parser.c (cp_parser_declarator): Add member_p parameter.
(cp_parser_condition): Adjust calls to cp_parser_declarator.
(cp_parser_explicit_instantiation): Likewise.
(cp_parser_init_declarator): Likewise.
@@ -1815,34 +2199,34 @@
2004-10-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert diagnostics to use quoting flag q 7/n
- * typeck.c (composite_pointer_type_r, composite_pointer_type,
- cxx_sizeof_or_alignof_type, cxx_sizeof_or_alignof_expr,
- string_conv_p, build_class_member_access_expr,
- build_class_member_access_expr, lookup_destructor,
- finish_class_member_access_expr, build_indirect_ref,
- get_member_function_from_ptrfunc, build_function_call,
- convert_arguments, build_binary_op, pointer_diff, build_unary_op,
- check_for_casting_away_constness, build_static_cast,
- build_reinterpret_cast, build_const_cast, build_c_cast,
- build_modify_expr, get_delta_difference, build_ptrmemfunc,
- dubious_conversion_warnings, convert_for_assignment,
- convert_for_initialization,
- maybe_warn_about_returning_address_of_local, check_return_expr):
+ * typeck.c (composite_pointer_type_r, composite_pointer_type,
+ cxx_sizeof_or_alignof_type, cxx_sizeof_or_alignof_expr,
+ string_conv_p, build_class_member_access_expr,
+ build_class_member_access_expr, lookup_destructor,
+ finish_class_member_access_expr, build_indirect_ref,
+ get_member_function_from_ptrfunc, build_function_call,
+ convert_arguments, build_binary_op, pointer_diff, build_unary_op,
+ check_for_casting_away_constness, build_static_cast,
+ build_reinterpret_cast, build_const_cast, build_c_cast,
+ build_modify_expr, get_delta_difference, build_ptrmemfunc,
+ dubious_conversion_warnings, convert_for_assignment,
+ convert_for_initialization,
+ maybe_warn_about_returning_address_of_local, check_return_expr):
Use quoting marks.
- * typeck2.c (error_not_base_type, readonly_error,
- abstract_virtuals_error, cxx_incomplete_type_diagnostic,
- store_init_value, digest_init, build_x_arrow,
+ * typeck2.c (error_not_base_type, readonly_error,
+ abstract_virtuals_error, cxx_incomplete_type_diagnostic,
+ store_init_value, digest_init, build_x_arrow,
build_m_component_ref, require_complete_eh_spec_types): Likewise.
- * tree.c (cp_build_qualified_type_real,
+ * tree.c (cp_build_qualified_type_real,
handle_java_interface_attribute, handle_init_priority_attribute):
Likewise.
- * semantics.c (finish_asm_stmt, finish_non_static_data_member,
- finish_pseudo_destructor_expr,
- check_template_template_default_arg, begin_class_definition,
- finish_base_specifier, qualified_name_lookup_error,
+ * semantics.c (finish_asm_stmt, finish_non_static_data_member,
+ finish_pseudo_destructor_expr,
+ check_template_template_default_arg, begin_class_definition,
+ finish_base_specifier, qualified_name_lookup_error,
finish_id_expression, finish_typeof): Likewise.
* search.c (lookup_base, check_final_overrider,
@@ -1878,7 +2262,7 @@
PR c++/17685
* decl.c (grokdeclarator): Disallow declarations of operators as
non-functions.
-
+
2004-10-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/17868
@@ -1984,20 +2368,20 @@
2004-10-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert diagnostics to use quoting flag q 6/n
- * pt.c (finish_member_template_decl, check_specialization_scope,
- maybe_process_partial_specialization, determine_specialization,
- check_explicit_specialization, maybe_check_template_type,
- process_partial_specialization, check_default_tmpl_args,
- push_template_decl_real, redeclare_class_template,
- convert_nontype_argument, coerce_template_parms,
- lookup_template_class, push_tinst_level,
- instantiate_class_template, tsubst_arg_types,
- tsubst_function_type, tsubst, tsubst_qualified_id,
- tsubst_copy_and_build, check_instantiated_args,
- do_decl_instantiation, do_type_instantiation,
- invalid_nontype_parm_type_p, check_specialization_namespace,
- convert_template_argument, determine_specialization,
- check_template_shadow, tsubst_decl
+ * pt.c (finish_member_template_decl, check_specialization_scope,
+ maybe_process_partial_specialization, determine_specialization,
+ check_explicit_specialization, maybe_check_template_type,
+ process_partial_specialization, check_default_tmpl_args,
+ push_template_decl_real, redeclare_class_template,
+ convert_nontype_argument, coerce_template_parms,
+ lookup_template_class, push_tinst_level,
+ instantiate_class_template, tsubst_arg_types,
+ tsubst_function_type, tsubst, tsubst_qualified_id,
+ tsubst_copy_and_build, check_instantiated_args,
+ do_decl_instantiation, do_type_instantiation,
+ invalid_nontype_parm_type_p, check_specialization_namespace,
+ convert_template_argument, determine_specialization,
+ check_template_shadow, tsubst_decl
instantiate_pending_templates): Use quoting marks.
2004-10-05 Nathan Sidwell <nathan@codesourcery.com>
@@ -2009,41 +2393,41 @@
2004-10-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert diagnostics to use quoting flag q 5/n
- * parser.c (cp_parser_name_lookup_error,
- cp_parser_diagnose_invalid_type_name,
- cp_parser_primary_expression, cp_parser_unqualified_id,
- cp_parser_nested_name_specifier_opt, cp_parser_labeled_statement,
- cp_parser_jump_statement, cp_parser_simple_declaration,
- cp_parser_decl_specifier_seq, cp_parser_mem_initializer_id,
- cp_parser_type_parameter, cp_parser_template_id,
- cp_parser_template_name, cp_parser_direct_declarator,
- cp_parser_parameter_declaration_list, cp_parser_class_head,
- cp_parser_base_specifier, cp_parser_lookup_name,
- cp_parser_late_parsing_default_args,
- cp_parser_optional_template_keyword
- cp_parser_elaborated_type_specifier, cp_parser_check_class_key,
+ * parser.c (cp_parser_name_lookup_error,
+ cp_parser_diagnose_invalid_type_name,
+ cp_parser_primary_expression, cp_parser_unqualified_id,
+ cp_parser_nested_name_specifier_opt, cp_parser_labeled_statement,
+ cp_parser_jump_statement, cp_parser_simple_declaration,
+ cp_parser_decl_specifier_seq, cp_parser_mem_initializer_id,
+ cp_parser_type_parameter, cp_parser_template_id,
+ cp_parser_template_name, cp_parser_direct_declarator,
+ cp_parser_parameter_declaration_list, cp_parser_class_head,
+ cp_parser_base_specifier, cp_parser_lookup_name,
+ cp_parser_late_parsing_default_args,
+ cp_parser_optional_template_keyword
+ cp_parser_elaborated_type_specifier, cp_parser_check_class_key,
cp_parser_check_access_in_redeclaration): Use quoting marks.
- * name-lookup.c (supplement_binding, pushdecl,
- check_for_out_of_scope_variable, validate_nonmember_using_decl,
- do_nonmember_using_decl, lookup_tag, set_decl_namespace,
- push_namespace, do_namespace_alias, do_using_directive,
+ * name-lookup.c (supplement_binding, pushdecl,
+ check_for_out_of_scope_variable, validate_nonmember_using_decl,
+ do_nonmember_using_decl, lookup_tag, set_decl_namespace,
+ push_namespace, do_namespace_alias, do_using_directive,
ambiguous_decl, lookup_namespace_name, add_function): Likewise.
* method.c (use_thunk): Likewise.
- * lex.c (unqualified_name_lookup_error,
+ * lex.c (unqualified_name_lookup_error,
unqualified_fn_lookup_error): Likewise.
2004-10-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
Convert diagnostics to use quoting flag q 4/n
- * except.c (decl_is_java_type, build_throw,
- is_admissible_throw_operand, check_handlers_1, check_handlers):
+ * except.c (decl_is_java_type, build_throw,
+ is_admissible_throw_operand, check_handlers_1, check_handlers):
Use quoting formats.
* friend.c (add_friend, make_friend_class, do_friend): Likewise.
- * init.c (sort_mem_initializers, emit_mem_initializers,
- member_init_ok_or_else, expand_member_init, is_aggr_type,
+ * init.c (sort_mem_initializers, emit_mem_initializers,
+ member_init_ok_or_else, expand_member_init, is_aggr_type,
build_offset_ref, build_java_class_ref): Likewise.
2004-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
@@ -2052,20 +2436,20 @@
* decl.c (pop_label, duplicate_decls, redeclaration_error_message,
redeclaration_error_message, lookup_label, check_goto,
make_typename_type, make_unbound_class_template,
- fixup_anonymous_aggr, check_tag_decl, start_decl, start_decl_1,
- grok_reference_init, layout_var_decl, maybe_commonize_var,
- check_for_uninitialized_const_var, reshape_init_array,
+ fixup_anonymous_aggr, check_tag_decl, start_decl, start_decl_1,
+ grok_reference_init, layout_var_decl, maybe_commonize_var,
+ check_for_uninitialized_const_var, reshape_init_array,
reshape_init, check_initializer, cp_finish_decl,
- member_function_or_else, bad_specifiers, grokfndecl, grokvardecl,
- check_static_variable_definition, compute_array_index_type,
- create_array_type_for_decl, check_special_function_return_type,
- grokdeclarator, check_default_argument, grokparms,
- grok_ctor_properties, grok_op_properties,
- check_elaborated_type_specifier, xref_tag, finish_enum,
- build_enumerator, check_function_type, start_preparsed_function,
+ member_function_or_else, bad_specifiers, grokfndecl, grokvardecl,
+ check_static_variable_definition, compute_array_index_type,
+ create_array_type_for_decl, check_special_function_return_type,
+ grokdeclarator, check_default_argument, grokparms,
+ grok_ctor_properties, grok_op_properties,
+ check_elaborated_type_specifier, xref_tag, finish_enum,
+ build_enumerator, check_function_type, start_preparsed_function,
store_parm_decls): Use quoting formats.
- * decl2.c (grok_array_decl, delete_sanity, check_member_template,
- check_java_method, check_classfn, finish_static_data_member_decl,
+ * decl2.c (grok_array_decl, delete_sanity, check_member_template,
+ check_java_method, check_classfn, finish_static_data_member_decl,
grokfield, grokbitfield, grok_function_init,
build_anon_union_vars, coerce_new_type, coerce_delete_type,
check_default_args): Likewise.
@@ -2190,7 +2574,7 @@
header that was implicitly extern "C".
(cp_parser_declaration_seq_opt): Push/pop lang context as
required by the token's and parser's implicit_extern_c.
-
+
2004-09-27 Mark Mitchell <mark@codesourcery.com>
PR c++/17585
@@ -2212,11 +2596,11 @@
(dfs_depth_post, dfs_depth_q): Remove.
(find_final_overrider): Use number of vbase classes as depth
bound.
-
+
* cp-tree.h (types_overlap_p): Remove.
* search.c (struct overlap_info): Remove.
(dfs_check_overlap, dfs_no_overlap_yet, types_overlap_p): Remove.
-
+
* pt.c (GTB_VIA_VIRTUAL, GTB_IGNORE_TYPE): Remove.
(get_template_base_recursive): Remove. Replace with ...
(get_template_base_r): ... this.
diff --git a/gcc/cp/ChangeLog.apple-ppc b/gcc/cp/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..f887b190186
--- /dev/null
+++ b/gcc/cp/ChangeLog.apple-ppc
@@ -0,0 +1,491 @@
+2005-06-30 Devang Patel <dpatel@apple.com>
+
+ * lang-specs.h: While making PCH, invoke as if -fsave-repository
+ is used.
+
+2005-06-22 Ziemowit Laski <zlaski@apple.com>
+ Radar 4154928
+ * call.c (standard_conversion): Allow for a pointer conversion
+ between any two ObjC pointer types.
+ * typeck.c (composite_pointer_type): Determine common type
+ for two ObjC pointer types.
+
+2005-06-15 Devang Patel <dpatel@apple.com>
+
+ * parser.c (struct cp_lexer_file): Do not use GTY markers.
+ * decl2.c (cp_finish_file): Flush lexer file stack before writing PCH.
+
+2005-06-02 Devang Patel <dpatel@apple.com>
+
+ Radar 4133801
+ * parser.c (struct cp_lexer_file): Decorate using GTY markers.
+ (cp_lexer_new_main): Initialize fields of new tokens.
+
+2005-06-02 Devang Patel <dpatel@apple.com>
+
+ Radar 4133801
+ * cp-tree.h (cp_flush_lexer_file_stack): New.
+ * parser.c (cp_flush_lexer_file_stack): New.
+ (cp_lexer_file_stack, last_cp_lexer_file): Make static.
+ (cp_add_lexer_file): Initialize next field.
+ * decl2.c (cp_finish_file): Flush cp_lexer_file_stack.
+
+2005-05-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4035492
+ * class.c (layout_class_type): Do not issue C++ ABI warnings for
+ ObjC structs.
+ * decl.c (objc_mark_locals_volatile): Streamline by calling
+ objc_volatilize_decl().
+ * parser.c (cp_parser_objc_message_expression): Allow simple type
+ specifiers (instead of merely type names) as message receivers.
+ * pt.c (template_args_equal): Do not call objc_comptypes().
+ * typeck.c (composite_pointer_type): If both pointers are ObjC-esque,
+ arbitrarily choose the first; do not call objc_comptypes().
+ (comp_array_types): Do not call objc_comptypes().
+ (convert_for_assignment): Call objc_compare_types().
+ (comp_ptr_ttypes_real): Call objc_type_quals_match() before
+ concluding that types do not match.
+
+2005-06-01 Devang Patel <dpatel@apple.com>
+
+ Radar 4133801
+ * Make-lang.in (cp/parser.o): Depend on debug.h.
+ * cp-objcp-common.h (LANG_HOOKS_START_SOURCE_FILE,
+ LANG_HOOKS_END_SOURCE_FILE): New.
+ * cp-tree.h (cp_start_source_file, cp_end_source_file): New.
+ * parser.c (debug.h): Include.
+ (enum cp_file_entry_kind): New.
+ (struct cp_lexer_file): New.
+ (cp_lexer_file_stack, last_cp_lexer_file): New.
+ (cp_add_lexer_file, cp_lexer_copy_token, cp_parser_bincl_eincl): New.
+ (cp_lexer_new_main): Insert new CPP_BINCL and CPP_EINCL tokens based
+ on cp_lexer_file_stack.
+ (cp_lexer_peek_nth_token): Skip CPP_BINCL and CPP_EINCL tokens.
+ (cp_lexer_peek_token): Process CPP_BINCL and CPP_EINCL tokens.
+
+2005-04-25 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4094385
+ * semantics.c (finish_id_expression): Correctly retrieve function
+ candidate from a BASELINK node, if one was provided.
+
+2005-04-20 Mike Stump <mrs@apple.com>
+
+ Radar 4077104
+ * parser.c (cp_parser_unary_expression): Handle -40(sp) in CW asms better.
+
+2005-04-20 Devang Patel <dpatel@apple.com>
+
+ Radar 4093536
+ Undo PR libstdc++/10606 fix.
+ 2005-02-18 Richard Henderson <rth@redhat.com>
+
+ PR libstdc++/10606
+ * except.c (do_get_exception_ptr): New.
+ (expand_start_catch_block): Use it.
+
+2005-04-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4055183
+ * typeck.c (build_function_call): Call
+ objc_rewrite_function_call() to handle casts.
+
+2005-03-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3995882
+ * decl.c (objc_mark_locals_volatile): Mark local variables and
+ parameters 'volatile' in ways expected by the C++ front-end.
+
+2005-03-07 Devang Patel <dpatel@apple.com>
+
+ * class.c (tree-iterator.h): Include.
+
+2005-03-02 Robert Bowdidge <bowdidge@apple.com
+ Radar 4025293
+ * cp/typeck.c (convert_member_func_to_ptr) Ban casts from pointer-to-
+ member-function to pointer-to-function whenever the -fapple-kext flag
+ was passed to the compiler. Behavior changed between 3.3 and 4.0 in
+ incompatible ways, and the IOKit team wants all kexts to use a macro
+ that provides the correct (3.3) behavior.
+
+2005-02-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3809189
+ * typeck2.c (digest_init): Factor out Pascal-ness of string
+ initializer; allow NUL terminator to not fit into the array
+ being initialized.
+
+2005-02-18 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4011192
+ * parser.c (cp_parser_objc_try_catch_finally_statement): When
+ parsing '@finally' blocks, make sure the compound statement
+ winds up in a special STATEMENT_LIST instead of current scope.
+ (cp_parser_objc_synchronized_statement): Likewise for
+ '@synchronized' blocks.
+
+2005-02-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3635843, 3922342
+ * tree.c (lvalue_or_else): Do not emit warning if
+ '-Wno-non-lvalue-assign' has been specified.
+ * typeck.c (build_modify_expr): Call
+ objc_generate_write_barrier() if '-fobjc-gc' has been specified.
+
+2005-02-16 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3971074
+
+ * parser.c (cp_parser_cw_asm_statement): Pass lineno to cw_asm_stmt.
+
+2005-02-16 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3970655
+
+ * cp/parser.c (cw_build_identifier_string): New function.
+ (cp_parser_cw_identifier): Build the tree for a '.'identifier.
+ (cp_parser_cw_asm_postfix_expression): Some disambiguation case.
+
+2005-02-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3993052
+ * parser.c (cp_parser_objc_interstitial_code): New routine.
+ (cp_parser_objc_method_prototype_list): Call
+ cp_parser_objc_interstitial_code() instead of doing
+ non-ObjC++ parsing locally.
+ (cp_parser_objc_method_definition_list): Likewise.
+
+2005-02-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3982256
+ * cp-objcp-common.h (cxx_get_alias_set,
+ cxx_warn_unused_global_decl, cp_expr_size, cp_tree_size,
+ cp_var_mod_type_p, cxx_initialize_diagnostics,
+ cxx_types_compatible_p): Move prototypes ...
+ * cp-tree.h: ... here.
+
+2005-02-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3987120
+ * parser.c (cp_parser_objc_encode_expression): Call
+ 'complete_type (cp_parser_type_id ())' instead of
+ 'cp_parser_objc_typename ()' to retrieve argument type.
+
+2005-02-02 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978104
+ * parser.c (cp_parser_objc_method_prototype_list): Allow stray
+ semicolons in between method signatures.
+
+2005-01-31 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978168
+ * tree.c (lvalue_or_else): Allow certain non-lvalues
+ as arguments to '&', and print appropriate warning.
+
+2005-01-27 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3971244
+ * typeck.c (composite_pointer_type): Check for
+ ObjC subtype relations.
+
+2005-01-26 Matt Austern <austern@apple.com>
+
+ Radar 3972840
+ * call.c (build_over_call): Set type of function node correctly.
+ Type returned by build_vfn_ref_using_vtable is *not* what we
+ want.
+ * class.c (build_vfn_ref_using_vtable): Duplicate logic in
+ build_vfn_ref for setting attributes of vtable array ref node.
+
+2005-01-26 Devang Patel <dpatel@apple.com>
+
+ Radar 3971329
+ * parser.c (cp_parser_objc_method_definition_list): Parse extern
+ linkage specification.
+
+2005-01-24 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3968938
+ * parser.c (cp_parser_simple_type_specifier): After
+ constructing a protocol-qualified ObjC type, record
+ it in the DECL_SPECS structure.
+
+2005-01-23 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3961973
+ * cp-tree.h (lvalue_or_else): Change type of first parameter
+ from 'tree' to 'tree *'.
+ * tree.c (lvalue_or_else): Change first parameter from
+ 'tree' to 'tree *'; handle conditional lvalues in addition
+ to lvalue casts; when rewriting expressions, create a new
+ tree instead of clobbering an existing one.
+ * typeck.c (build_unary_op, build_modify_expr): Adjust
+ calls to lvalue_or_else().
+
+2005-01-19 Matt Austern <austern@apple.com>
+
+ Radar 3960754
+ * typeck.c (comptypes): Handle return code from objc_comptypes
+ correctly.
+
+2005-01-18 Mike Stump <mrs@apple.com>
+
+ Radar 3956093
+ * class.c (has_apple_kext_compatibility_attr_p): Avoid problems
+ when there are no base classes.
+
+2005-01-18 Ziemowit Laski <zlaski@apple.com>
+
+ * parser.c (cp_parser_cw_identifier): Reapply change
+ just reverted.
+
+2005-01-18 Ziemowit Laski <zlaski@apple.com>
+
+ * parser.c (cp_parser_cw_identifier): Revert change
+ from 2005-01-14.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3955336
+ * parser.c (cp_parser_objc_message_receiver): Try parsing
+ receiver as an expression first; failing that, as a
+ nested type.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3951689
+ * parser.c (cp_parser_objc_try_catch_finally_statement,
+ cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement
+ cp_parser_objc_statement): New functions.
+ (cp_parser_statement): Call cp_parser_objc_statement() to
+ parse Objective-C statements.
+
+2005-01-15 Geoffrey Keating <geoffk@apple.com>
+
+ * g++spec.c: Remove APPLE LOCAL changes involving
+ macosx_version_min_required.
+
+2005-01-14 Ziemowit Laski <zlaski@apple.com>
+
+ * parser.c (cp_parser_cw_identifier): Add a default:
+ to squash compiler warnings.
+
+2005-01-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3913725
+ * tree.c (lvalue_or_else): If expression is not an lvalue,
+ check if it is a cast of an lvalue; if so, and if the cast
+ involves POD types with identical size and aligment,
+ rewrite '(type)expr' into '*(type *)&expr' and allow the
+ result as an lvalue.
+
+2005-01-07 Devang Patel <dpatel@apple.com>
+
+ Radar 3943502
+ * parser.c (cp_parser_objc_defs_expression): New.
+ (cp_parser_member_declaration): Handle @defs.
+
+2005-01-06 Robert Bowdidge <bowdidge@apple.com>
+
+ Radar 3943783
+ * class.c: change has_apple_kext_compatibility_attr_p to use
+ BINFO_BASE_BINFO for walking class hierarchy.
+
+2005-01-06 Devang Patel <dpatel@apple.com>
+
+ Radar 3941766
+ * parser.c (cp_parser_objc_class_ivars): Add '}' check.
+
+2005-01-05 Mark Mitchell <mark@codesourcery.com>
+ Matt Austern <austern@apple.com>
+
+ Radar 3934803
+ PR c++/18369
+ * init.c (build_new_1): Handle parenthesized type-ids that name an
+ array type. Tidy.
+
+2004-12-20 Matt Austern <austern@apple.com>
+
+ Radar 3845716
+ PR c++/19044
+ * decl.c (make_rtl_for_nonlocal_decl): Use set_builtin_user_assembler_name
+
+2004-12-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3640156, 3877958
+ * decl.c (builtin_function_1): Do not require subsequent declarations
+ for AltiVec PIM builtins.
+
+2004-12-07 Mike Stump <mrs@apple.com>
+
+ Radar 3603833, 3896176, 3518821.
+ * parser.c (cp_parser_binary_expression): Add support for lines
+ that start with named operators such as and.
+ (cp_parser_cw_identifier): Move reused code from here to
+ cw_get_identifier.
+
+2004-11-17 Mike Stump <mrs@apple.com>
+
+ Radar 3860322
+ g++.dg/asm-block-3.C
+ * parser.c (cp_parser_cw_identifier): Handle C++ keywords like
+ and, or, xor in CW asm blocks.
+
+2004-11-14 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3877761
+ * parser.c (cp_parser_objc_class_ivars): Allow an optional
+ trailing semicolon, per existing usage.
+
+2004-11-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3761423
+ * typeck.c (finish_class_member_access_expr): Insert call to
+ objc_is_public() to check ObjC ivar access.
+
+2004-11-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3869280
+ * tree.c (lvalue_p_1): Determine lvalue-ness of CONST_DECLs the same
+ way as for VAR_DECLs.
+
+2004-11-03 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3863563 (fix from mainline)
+ * cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
+ (LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
+ * cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
+ from cp-lang.c.
+ * cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
+ from cp-lang.c.
+ (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.
+
+2004-11-01 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 2810013
+ * parser.c (cp_parser_primary_expression): Perform instace variable
+ lookup in conjunction with C++ identifier expression lookup.
+ (cp_parser_postfix_expression): Moved instance variable lookup
+ to cp_parser_primary_expression().
+
+2004-10-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3540965
+ * parser.c (cp_parser_postfix_expression): Do not forget to parse
+ the rhs of a postfix expression when the lhs is an instance variable.
+
+2004-10-18 Robert Bowdidge <bowdidge@apple.com>
+
+ Radar 3843618
+ * gcc/cp/parser.c: Bring the change for PR/17829 over from mainline
+ so that Finder_FE will build again.
+
+2004-10-13 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3677258
+ * cp-tree.h (struct lang_identifier): Add 'interface_value' field.
+
+2004-09-14 Andrew Pinski <apinski@apple.com>
+
+ Rest of Radar 3753405
+ * cp-tree.h (enum cp_decl_sepcs): Add ds_cw_asm.
+ * decl.c (grokdeclarator): Rename cw_asm_specbit to cw_asm_p to mirror
+ the other specbits.
+ Access specbits for cw_asm.
+ Add "asm" to decl_specs_names.
+ Remove MERGE FIXME comment.
+ * parser.c (cp_parser_decl_specifier_seq, <case RID_ASM>): Mirror the
+ other decl spec bits.
+
+2004-08-22 Andrew Pinski <apinski@apple.com>
+
+ Revert:
+ 2004-08-22 Andrew Pinski <apinski@apple.com>
+ PR c++/14029
+ * typeck.c (build_unary_op): Use &a.b if the foldded lowered
+ expression is not constant.
+
+2004-08-22 Andrew Pinski <apinski@apple.com>
+
+ PR c++/14029
+ * typeck.c (build_unary_op): Use &a.b if the foldded lowered
+ expression is not constant.
+
+2004-08-10 Devang Patel <dpatel@apple.com>
+
+ Remove Symbol Separation.
+ Radar 3555440. Reviewed by Mike Stump.
+ * decl2.c (finish_file): Do not write context.
+
+2004-08-08 Andrew Pinski <apinski@apple.com>
+
+ * cp/lex.c (cxx_init): Remove APPLE LOCAL for setting -gused
+ by default as it is handled in CC1_SPECs now.
+
+2004-08-03 Stan Shebs <shebs@apple.com>
+
+ Support for CodeWarrior-style assembly language blocks and
+ functions. Radar 3368707.
+ * cp-tree.h (cw_asm_cp_build_component_ref): Declare.
+ * decl.c (grokdeclarator): Recognize asm keyword, set flag
+ on function decl if seen.
+ * parser.c (cp_lexer_get_preprocessor_token): Allow @-tokens
+ if doing asm.
+ (cp_parser_primary_expression): Recognize @-tokens in asm,
+ replace with @-identifier (which will become a label) later.
+ (cp_parser_unary_expression): Call asm-specific postfix
+ expression handler.
+ (cp_parser_compound_statement): Handle asm compound statements
+ specially.
+ (cp_parser_statement_seq_opt): Handle statement sequences in
+ asm blocks specially.
+ (cp_parser_simple_declaration): Leave instead of erroring out
+ if apparent asm opcode is seen.
+ (cp_parser_decl_specifier_seq,
+ cp_parser_storage_class_specifier_opt): Accept RID_ASM as a specifier.
+ (cp_parser_asm_definition): Detect asm blocks and handle.
+ (cp_parser_cw_asm_compound_statement,
+ cp_parser_cw_asm_declaration_seq_opt, cp_parser_cw_asm_line_seq_opt,
+ cp_parser_cw_asm_line, cp_parser_cw_asm_statement_seq_opt,
+ cp_parser_cw_asm_statement, cp_parser_cw_asm_operands,
+ cp_parser_cw_asm_operand, cp_parser_cw_asm_postfix_expression,
+ cw_asm_typename_or_reserved): New functions.
+ semantics.c (finish_id_expression): Handle register names
+ and labels in asm blocks specially.
+ * typeck.c (cw_asm_cp_build_component_ref): New function.
+
+2004-08-01 Devang Patel <dpatel@apple.com>
+
+ Re-implement -fwritable-strings support.
+ Radar : 3699482
+
+ * decl.c (cxx_init_decl_processing): Check flag_writable_strings.
+
+2004-08-01 Geoffrey Keating <geoffk@apple.com>
+
+ * decl.c (grokdeclarator): Don't call warn_about_long_double.
+
+2004-06-08 Fariborz Jahanian <fjahanian@apple.com>
+
+ * decl2.c (maybe_emit_vtables, get_guard):
+ Remove all APPLE LOCAL coalescing codes.
+ (import_export_decl): Remove all APPLE LOCAL coalescing codes,
+ except for one call to comdat_linkage.
+
+2004-06-08 Fariborz Jahanian <fjahanian@apple.com>
+
+ * decl2.c (maybe_emit_vtables, import_export_decl, get_guard):
+ Resore various APPLE LOCAL coalescing codes.
+
+2004-06-07 Fariborz Jahanian <fjahanian@apple.com>
+
+ * decl2.c (maybe_emit_vtables, import_export_decl, get_guard):
+ Remove various APPLE LOCAL coalescing codes.
+
+2004-04-02 Ziemowit Laski <zlaski@apple.com>
+
+ Remove APPLE LOCAL AltiVec code whenever possible; merge in
+ AltiVec/VECTOR_TYPE-handling code from mainline.
+
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 00075b30a9f..a055f335b12 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -70,6 +70,15 @@ g++-cross$(exeext): g++$(exeext)
-rm -f g++-cross$(exeext)
cp g++$(exeext) g++-cross$(exeext)
+# APPLE LOCAL begin order files --ilr
+ifeq ($(ORDER_FILES),yes)
+CC1PLUS_ORDER_FLAGS = `if [ -f $(srcdir)/../order-files/cc1plus.order ]; then \
+ echo -sectorder __TEXT __text $(srcdir)/../order-files/cc1plus.order -e start ; fi`
+else
+CC1PLUS_ORDER_FLAGS =
+endif
+# APPLE LOCAL end order files --ilr
+
# The compiler itself.
# Shared with C front end:
CXX_C_OBJS = attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o \
@@ -91,10 +100,25 @@ CXX_OBJS = cp/cp-lang.o stub-objc.o $(CXX_AND_OBJCXX_OBJS)
# Use strict warnings for this front end.
cp-warn = $(STRICT_WARN)
-cc1plus$(exeext): $(CXX_OBJS) $(BACKEND) $(LIBDEPS)
+# APPLE LOCAL begin order files --ilr
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+cc1plus-dummy$(exeext): $(CXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
- $(CXX_OBJS) $(BACKEND) $(LIBS)
+ $(CXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) \
+ $(CC1PLUS_ORDER_FLAGS)
+
+cc1plus-checksum.c : cc1plus-dummy$(exeext) build/genchecksum$(exeext)
+ build/genchecksum$(exeext) cc1plus-dummy$(exeext) > $@
+cc1plus-checksum.o : cc1plus-checksum.c
+
+cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+ $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) \
+ $(CC1PLUS_ORDER_FLAGS)
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
+# APPLE LOCAL end order files --ilr
+
# Special build rules.
$(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
@@ -172,9 +196,11 @@ c++.install-common: installdirs
doc/g++.1: doc/gcc.1
cp doc/gcc.1 doc/g++.1
-c++.install-man: installdirs $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext)
+ # APPLE LOCAL mainline 4.1 2005-06-16
+c++.install-man: $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext)
-$(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext): doc/g++.1
+ # APPLE LOCAL mainline 4.1 2005-06-16
+$(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext): doc/g++.1 installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@
@@ -228,10 +254,12 @@ cp/lex.o: cp/lex.c $(CXX_TREE_H) $(TM_H) flags.h \
cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) $(TM_H) toplev.h debug.h langhooks.h \
$(LANGHOOKS_DEF_H) c-common.h gtype-cp.h $(CXX_PRETTY_PRINT_H) $(DIAGNOSTIC_H) \
cp/cp-objcp-common.h
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
cp/decl.o: cp/decl.c $(CXX_TREE_H) $(TM_H) flags.h cp/decl.h \
output.h $(EXPR_H) except.h toplev.h $(HASHTAB_H) $(RTL_H) \
cp/operators.def $(TM_P_H) tree-inline.h diagnostic.h c-pragma.h \
- debug.h gt-cp-decl.h timevar.h $(TREE_FLOW_H)
+ debug.h gt-cp-decl.h timevar.h $(TREE_FLOW_H) opts.h
+# APPLE LOCAL end optimization pragmas 3124235/3420242
cp/decl2.o: cp/decl2.c $(CXX_TREE_H) $(TM_H) flags.h cp/decl.h $(EXPR_H) \
output.h except.h toplev.h $(RTL_H) c-common.h gt-cp-decl2.h cgraph.h \
c-pragma.h
@@ -253,16 +281,20 @@ cp/method.o: cp/method.c $(CXX_TREE_H) $(TM_H) toplev.h $(RTL_H) $(EXPR_H) \
$(TM_P_H) $(TARGET_H) gt-cp-method.h
cp/cvt.o: cp/cvt.c $(CXX_TREE_H) $(TM_H) cp/decl.h flags.h toplev.h convert.h
cp/search.o: cp/search.c $(CXX_TREE_H) $(TM_H) flags.h toplev.h $(RTL_H)
+# APPLE LOCAL begin mainline
cp/tree.o: cp/tree.c $(CXX_TREE_H) $(TM_H) flags.h toplev.h $(RTL_H) \
- insn-config.h integrate.h tree-inline.h real.h gt-cp-tree.h $(TARGET_H)
+ insn-config.h integrate.h tree-inline.h real.h gt-cp-tree.h $(TARGET_H) debug.h
+# APPLE LOCAL end mainline
cp/ptree.o: cp/ptree.c $(CXX_TREE_H) $(TM_H)
cp/rtti.o: cp/rtti.c $(CXX_TREE_H) $(TM_H) flags.h toplev.h convert.h
cp/except.o: cp/except.c $(CXX_TREE_H) $(TM_H) flags.h $(RTL_H) except.h toplev.h \
cp/cfns.h $(EXPR_H) libfuncs.h tree-inline.h
cp/expr.o: cp/expr.c $(CXX_TREE_H) $(TM_H) $(RTL_H) flags.h $(EXPR_H) toplev.h \
except.h $(TM_P_H)
-cp/pt.o: cp/pt.c $(CXX_TREE_H) $(TM_H) cp/decl.h \
+# APPLE LOCAL begin mainline
+cp/pt.o: cp/pt.c $(CXX_TREE_H) $(TM_H) cp/decl.h cp/cp-objcp-common.h \
toplev.h $(RTL_H) except.h tree-inline.h pointer-set.h gt-cp-pt.h
+# APPLE LOCAL end mainline
cp/error.o: cp/error.c $(CXX_TREE_H) $(TM_H) toplev.h $(DIAGNOSTIC_H) \
flags.h real.h $(LANGHOOKS_DEF_H) $(CXX_PRETTY_PRINT_H)
cp/repo.o: cp/repo.c $(CXX_TREE_H) $(TM_H) toplev.h diagnostic.h \
@@ -276,8 +308,10 @@ cp/optimize.o: cp/optimize.c $(CXX_TREE_H) $(TM_H) rtl.h integrate.h insn-config
cp/mangle.o: cp/mangle.c $(CXX_TREE_H) $(TM_H) toplev.h real.h gt-cp-mangle.h \
$(TARGET_H) $(TM_P_H)
+# APPLE LOCAL begin 4133801
cp/parser.o: cp/parser.c $(CXX_TREE_H) $(TM_H) diagnostic.h gt-cp-parser.h \
- output.h
+ output.h debug.h
+# APPLE LOCAL end 4133801
cp/cp-gimplify.o: cp/cp-gimplify.c $(CXX_TREE_H) toplev.h c-common.h \
$(TM_H) coretypes.h pointer-set.h
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 4655430a2bd..a97abdce906 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -538,8 +538,7 @@ build_conv (conversion_kind code, tree type, conversion *from)
}
/* Build a representation of the identity conversion from EXPR to
- itself. The TYPE should match the the type of EXPR, if EXPR is
- non-NULL. */
+ itself. The TYPE should match the type of EXPR, if EXPR is non-NULL. */
static conversion *
build_identity_conv (tree type, tree expr)
@@ -743,6 +742,13 @@ standard_conversion (tree to, tree from, tree expr, int flags)
else if (expr && string_conv_p (to, expr, 0))
/* converting from string constant to char *. */
conv = build_conv (ck_qual, to, conv);
+ /* APPLE LOCAL begin 4154928 */
+ /* Allow conversions among arbitrary ObjC pointer types (base
+ conversions have been already handled above). */
+ else if (c_dialect_objc ()
+ && objc_compare_types (to, from, -3, NULL_TREE))
+ conv = build_conv (ck_ptr, to, conv);
+ /* APPLE LOCAL end 4154928 */
else if (ptr_reasonably_similar (to_pointee, from_pointee))
{
conv = build_conv (ck_ptr, to, conv);
@@ -2450,7 +2456,7 @@ print_z_candidates (struct z_candidate *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,
+ desired type. Merge the two sequences into a single sequence,
and return the merged sequence. */
static conversion *
@@ -3751,20 +3757,6 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
if (overloaded_p)
*overloaded_p = true;
- if (warn_synth
- && fnname == ansi_assopname (NOP_EXPR)
- && DECL_ARTIFICIAL (cand->fn)
- && candidates->next
- && ! candidates->next->next)
- {
- warning ("using synthesized %q#D for copy assignment",
- cand->fn);
- cp_warning_at (" where cfront would use %q#D",
- cand == candidates
- ? candidates->next->fn
- : candidates->fn);
- }
-
result = build_over_call (cand, LOOKUP_NORMAL);
}
else
@@ -4079,6 +4071,36 @@ enforce_access (tree basetype_path, tree decl)
return true;
}
+/* APPLE LOCAL begin direct-binding-refs 20020224 --turly */
+
+/* Should we *really* call a constructor for the object whose reference type
+ we want? If we have a user conversion function which returns the ref
+ type directly, there's no need to call the object's constructor as we
+ can bind directly (dcl.init.ref.)
+
+ These must be exactly the same types. */
+
+static int really_call_constructor_p (tree, tree, tree);
+static int
+really_call_constructor_p (tree expr, tree convfn, tree totype)
+{
+ /* TEMPORARILY DISABLING THIS "FIX" NOW WE HAVE A SOURCE WORKAROUND. */
+ /* However, we'll leave the code here pending input from the FSF
+ on this issue. */
+
+ if (0 /* && ! NEED_TEMPORARY_P (convfn) Watch out! this macro is undefined */
+ && TREE_CODE (expr) == INDIRECT_REF
+ && TREE_CODE (TREE_TYPE (convfn)) == METHOD_TYPE
+ && TREE_CODE (TREE_TYPE (TREE_TYPE (convfn))) == REFERENCE_TYPE
+ && TREE_CODE (TREE_TYPE (TREE_TYPE (TREE_TYPE (convfn)))) == RECORD_TYPE
+ && TREE_TYPE (TREE_TYPE (TREE_TYPE (convfn))) == totype
+ && TREE_TYPE (expr) == totype)
+ return 0;
+
+ return 1;
+}
+/* APPLE LOCAL end direct-binding-refs 20020224 --turly */
+
/* Check that a callable constructor to initialize a temporary of
TYPE from an EXPR exists. */
@@ -4246,6 +4268,8 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
If the target is a class, that means call a ctor. */
if (IS_AGGR_TYPE (totype)
+ /* APPLE LOCAL direct-binding-refs 20020224 --turly */
+ && really_call_constructor_p (expr, convfn, totype)
&& (inner >= 0 || !lvalue_p (expr)))
{
expr = (build_temp
@@ -4904,7 +4928,11 @@ build_over_call (struct z_candidate *cand, int flags)
mark_used (fn);
- if (DECL_VINDEX (fn) && (flags & LOOKUP_NONVIRTUAL) == 0)
+ /* APPLE LOCAL begin KEXT indirect-virtual-calls --sts */
+ if (DECL_VINDEX (fn)
+ && (flag_apple_kext
+ || (flags & LOOKUP_NONVIRTUAL) == 0))
+ /* APPLE LOCAL end KEXT indirect-virtual-calls --sts */
{
tree t, *p = &TREE_VALUE (converted_args);
tree binfo = lookup_base (TREE_TYPE (TREE_TYPE (*p)),
@@ -4918,6 +4946,31 @@ build_over_call (struct z_candidate *cand, int flags)
t = build_pointer_type (TREE_TYPE (fn));
if (DECL_CONTEXT (fn) && TYPE_JAVA_INTERFACE (DECL_CONTEXT (fn)))
fn = build_java_interface_fn_ref (fn, *p);
+ /* APPLE LOCAL begin KEXT indirect-virtual-calls --sts */
+ /* If this is not really supposed to be a virtual call, find the
+ vtable corresponding to the correct type, and use it. */
+ else if (flags & LOOKUP_NONVIRTUAL) {
+ tree call_site_type = TREE_TYPE (cand->access_path);
+ tree fn_class_type = DECL_CLASS_CONTEXT (fn);
+
+ gcc_assert (call_site_type != NULL &&
+ fn_class_type != NULL &&
+ AGGREGATE_TYPE_P (call_site_type) &&
+ AGGREGATE_TYPE_P (fn_class_type));
+ gcc_assert (lookup_base(TYPE_MAIN_VARIANT (call_site_type),
+ TYPE_MAIN_VARIANT (fn_class_type),
+ ba_any | ba_quiet,
+ NULL) != NULL);
+
+ if (BINFO_N_BASE_BINFOS (TYPE_BINFO (call_site_type)) > 1
+ || CLASSTYPE_VBASECLASSES (call_site_type))
+ error ("indirect virtual calls are invalid for a type that uses multiple or virtual inheritance");
+
+ fn = (build_vfn_ref_using_vtable
+ (BINFO_VTABLE (TYPE_BINFO (call_site_type)),
+ DECL_VINDEX (fn)));
+ }
+ /* APPLE LOCAL end KEXT indirect-virtual-calls --sts */
else
fn = build_vfn_ref (*p, DECL_VINDEX (fn));
TREE_TYPE (fn) = t;
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index ae73f522121..210f0bb9a56 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -35,6 +35,8 @@ Boston, MA 02111-1307, USA. */
#include "toplev.h"
#include "target.h"
#include "convert.h"
+/* APPLE LOCAL KEXT */
+#include "tree-iterator.h"
/* The number of nested classes being processed. If we are not in the
scope of any class, this is zero. */
@@ -214,6 +216,10 @@ int n_compute_conversion_costs = 0;
int n_inner_fields_searched = 0;
#endif
+/* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+extern int darwin_align_is_first_member_of_class;
+/* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
+
/* Convert to or from a base subobject. EXPR is an expression of type
`A' or `A*', an expression of type `B' or `B*' is returned. To
convert A to a base B, CODE is PLUS_EXPR and BINFO is the binfo for
@@ -578,6 +584,12 @@ build_vtbl_ref_1 (tree instance, tree idx)
assemble_external (vtbl);
+ /* APPLE LOCAL begin KEXT double destructor */
+#ifdef ADJUST_VTABLE_INDEX
+ ADJUST_VTABLE_INDEX (idx, vtbl);
+#endif
+ /* APPLE LOCAL end KEXT double destructor */
+
aref = build_array_ref (vtbl, idx);
TREE_CONSTANT (aref) |= TREE_CONSTANT (vtbl) && TREE_CONSTANT (idx);
TREE_INVARIANT (aref) = TREE_CONSTANT (aref);
@@ -615,6 +627,32 @@ build_vfn_ref (tree instance_ptr, tree idx)
return aref;
}
+/* APPLE LOCAL begin KEXT indirect-virtual-calls --sts */
+/* Given a VTBL and an IDX, return an expression for the function
+ pointer located at the indicated index. BASETYPE is the static
+ type of the object containing the vtable. */
+
+tree
+build_vfn_ref_using_vtable (tree vtbl, tree idx)
+{
+ tree aref;
+
+ vtbl = unshare_expr (vtbl);
+ assemble_external (vtbl);
+
+ /* APPLE LOCAL KEXT double destructor */
+#ifdef ADJUST_VTABLE_INDEX
+ ADJUST_VTABLE_INDEX (idx, vtbl);
+#endif
+
+ aref = build_array_ref (vtbl, idx);
+ TREE_CONSTANT (aref) |= TREE_CONSTANT (vtbl) && TREE_CONSTANT (idx);
+ TREE_INVARIANT (aref) = TREE_CONSTANT (aref);
+
+ return aref;
+}
+/* APPLE LOCAL end KEXT indirect-virtual-calls --sts */
+
/* Return the name of the virtual function table (as an IDENTIFIER_NODE)
for the given TYPE. */
@@ -1734,9 +1772,21 @@ layout_vtable_decl (tree binfo, int n)
{
tree atype;
tree vtable;
+ /* APPLE LOCAL begin KEXT terminated-vtables */
+ int n_entries;
+
+ n_entries = n;
+
+ /* Enlarge suggested vtable size by one entry; it will be filled
+ with a zero word. Darwin kernel dynamic-driver loader looks
+ for this value to find vtable ends for patching. */
+ if (flag_apple_kext)
+ n_entries += 1;
+ /* APPLE LOCAL end KEXT terminated-vtables */
atype = build_cplus_array_type (vtable_entry_type,
- build_index_type (size_int (n - 1)));
+ /* APPLE LOCAL KEXT terminated-vtables */
+ build_index_type (size_int (n_entries - 1)));
layout_type (atype);
/* We may have to grow the vtable. */
@@ -2048,14 +2098,17 @@ update_vtable_entry_for_fn (tree t, tree binfo, tree fn, tree* virtuals,
tree thunk_binfo, base_binfo;
/* Find the base binfo within the overriding function's
- return type. */
+ return type. We will always find a thunk_binfo, except
+ when the covariancy is invalid (which we will have
+ already diagnosed). */
for (base_binfo = TYPE_BINFO (base_return),
thunk_binfo = TYPE_BINFO (over_return);
- !SAME_BINFO_TYPE_P (BINFO_TYPE (thunk_binfo),
- BINFO_TYPE (base_binfo));
+ thunk_binfo;
thunk_binfo = TREE_CHAIN (thunk_binfo))
- continue;
-
+ if (SAME_BINFO_TYPE_P (BINFO_TYPE (thunk_binfo),
+ BINFO_TYPE (base_binfo)))
+ break;
+
/* See if virtual inheritance is involved. */
for (virtual_offset = thunk_binfo;
virtual_offset;
@@ -2063,7 +2116,8 @@ update_vtable_entry_for_fn (tree t, tree binfo, tree fn, tree* virtuals,
if (BINFO_VIRTUAL_P (virtual_offset))
break;
- if (virtual_offset || !BINFO_OFFSET_ZEROP (thunk_binfo))
+ if (virtual_offset
+ || (thunk_binfo && !BINFO_OFFSET_ZEROP (thunk_binfo)))
{
tree offset = convert (ssizetype, BINFO_OFFSET (thunk_binfo));
@@ -3505,7 +3559,7 @@ layout_empty_base (tree binfo, tree eoc, splay_tree offsets)
return atend;
}
-/* Layout the the base given by BINFO in the class indicated by RLI.
+/* Layout the base given by BINFO in the class indicated by RLI.
*BASE_ALIGN is a running maximum of the alignments of
any base class. OFFSETS gives the location of empty base
subobjects. T is the most derived type. Return nonzero if the new
@@ -3848,9 +3902,18 @@ clone_function_decl (tree fn, int update_method_vec_p)
if (update_method_vec_p)
add_method (DECL_CONTEXT (clone), clone);
}
- clone = build_clone (fn, complete_dtor_identifier);
- if (update_method_vec_p)
- add_method (DECL_CONTEXT (clone), clone);
+
+ /* APPLE LOCAL begin KEXT double destructor */
+ /* Don't use the complete dtor. */
+ if (! flag_apple_kext
+ || ! has_apple_kext_compatibility_attr_p (DECL_CONTEXT (fn)))
+ {
+ clone = build_clone (fn, complete_dtor_identifier);
+ if (update_method_vec_p)
+ add_method (DECL_CONTEXT (clone), clone);
+ }
+ /* APPLE LOCAL end KEXT double destructor */
+
clone = build_clone (fn, base_dtor_identifier);
if (update_method_vec_p)
add_method (DECL_CONTEXT (clone), clone);
@@ -4035,7 +4098,7 @@ check_bases_and_members (tree t)
/* Nonzero if the implicitly generated copy constructor should take
a non-const reference argument. */
int cant_have_const_ctor;
- /* Nonzero if the the implicitly generated assignment operator
+ /* Nonzero if the implicitly generated assignment operator
should take a non-const reference argument. */
int no_const_asn_ref;
tree access_decls;
@@ -4546,6 +4609,13 @@ layout_class_type (tree t, tree *virtuals_p)
NULL, NULL);
build_base_fields (rli, empty_base_offsets, next_field);
+ /* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+ /* Turn on this flag until the first real member of the class is
+ laid out. (Enums and such things declared in the class do not
+ count.) */
+ darwin_align_is_first_member_of_class = 1;
+ /* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
+
/* Layout the non-static data members. */
for (field = non_static_data_members; field; field = TREE_CHAIN (field))
{
@@ -4664,6 +4734,12 @@ layout_class_type (tree t, tree *virtuals_p)
layout_nonempty_base_or_field (rli, field, NULL_TREE,
empty_base_offsets);
+ /* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+ /* When we reach here we have laid out the first real member of
+ the class. */
+ darwin_align_is_first_member_of_class = 0;
+ /* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
+
/* Remember the location of any empty classes in FIELD. */
if (abi_version_at_least (2))
record_subobject_offsets (TREE_TYPE (field),
@@ -4676,6 +4752,12 @@ layout_class_type (tree t, tree *virtuals_p)
comply with the ABI. */
if (warn_abi
&& DECL_C_BIT_FIELD (field)
+ /* APPLE LOCAL begin mainline */
+ /* NB: The TREE_NO_WARNING flag gets set by Objective-C when
+ laying out an Objective-C class. The ObjC ABI differs from
+ the C++ ABI, and so we do not want a warning here. */
+ && !TREE_NO_WARNING (field)
+ /* APPLE LOCAL end mainline */
&& !last_field_was_bitfield
&& !integer_zerop (size_binop (TRUNC_MOD_EXPR,
DECL_FIELD_BIT_OFFSET (field),
@@ -4717,6 +4799,12 @@ layout_class_type (tree t, tree *virtuals_p)
last_field_was_bitfield = DECL_C_BIT_FIELD (field);
}
+ /* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+ /* Make sure the flag is turned off in cases where there were no
+ real members in the class. */
+ darwin_align_is_first_member_of_class = 0;
+
+ /* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
if (abi_version_at_least (2) && !integer_zerop (rli->bitpos))
{
/* Make sure that we are on a byte boundary so that the size of
@@ -5025,7 +5113,9 @@ finish_struct_1 (tree t)
/* Build the VTT for T. */
build_vtt (t);
- if (warn_nonvdtor && TYPE_POLYMORPHIC_P (t))
+ /* This warning does not make sense for Java classes, since they
+ cannot have destructors. */
+ if (!TYPE_FOR_JAVA (t) && warn_nonvdtor && TYPE_POLYMORPHIC_P (t))
{
tree dtor;
@@ -5111,6 +5201,7 @@ finish_struct (tree t, tree attributes)
finish_struct_methods (t);
TYPE_SIZE (t) = bitsize_zero_node;
+ TYPE_SIZE_UNIT (t) = size_zero_node;
/* We need to emit an error message if this type was used as a parameter
and it is an abstract type, even if it is a template. We construct
@@ -7069,6 +7160,19 @@ dfs_accumulate_vtbl_inits (tree binfo,
index = size_binop (MULT_EXPR,
TYPE_SIZE_UNIT (vtable_entry_type),
index);
+ /* APPLE LOCAL begin KEXT double destructor */
+#ifdef VPTR_INITIALIZER_ADJUSTMENT
+ /* Subtract VPTR_INITIALIZER_ADJUSTMENT from INDEX. */
+ if (flag_apple_kext && !ctor_vtbl_p && ! BINFO_PRIMARY_P (binfo)
+ && TREE_CODE (index) == INTEGER_CST
+ && TREE_INT_CST_LOW (index) >= VPTR_INITIALIZER_ADJUSTMENT
+ && TREE_INT_CST_HIGH (index) == 0)
+ index = fold (build (MINUS_EXPR,
+ TREE_TYPE (index), index,
+ size_int (VPTR_INITIALIZER_ADJUSTMENT)));
+#endif
+ /* APPLE LOCAL end KEXT double destructor */
+
vtbl = build2 (PLUS_EXPR, TREE_TYPE (vtbl), vtbl, index);
}
@@ -7679,8 +7783,8 @@ build_rtti_vtbl_entries (tree binfo, vtbl_init_data* vid)
*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
+ /* Add the offset-to-top entry. It comes earlier in the vtable than
+ the typeinfo entry. Convert the offset to look like a
function pointer, so that we can put it in the vtable. */
init = build_nop (vfunc_ptr_type_node, offset);
*vid->last_init = build_tree_list (NULL_TREE, init);
@@ -7715,4 +7819,116 @@ cp_fold_obj_type_ref (tree ref, tree known_type)
return build_address (fndecl);
}
+/* APPLE LOCAL begin KEXT double destructor */
+/* Return whether CLASS or any of its primary ancestors have the
+ "apple_kext_compatibility" attribute, in which case the
+ non-deleting destructor is not emitted. Only single
+ inheritance heirarchies can have this tag. */
+int
+has_apple_kext_compatibility_attr_p (tree class)
+{
+ while (class != NULL)
+ {
+ tree base_binfo;
+
+ if (TREE_CODE (class) == ARRAY_TYPE)
+ {
+ class = TREE_TYPE (class);
+ continue;
+ }
+
+ if (BINFO_N_BASE_BINFOS (TYPE_BINFO (class)) > 1)
+ return 0;
+
+ if (lookup_attribute ("apple_kext_compatibility",
+ TYPE_ATTRIBUTES (class)))
+ return 1;
+
+ /* If there are no more base classes, we're done. */
+ if (BINFO_N_BASE_BINFOS (TYPE_BINFO (class)) < 1)
+ break;
+
+ base_binfo = BINFO_BASE_BINFO (TYPE_BINFO (class), 0);
+ if (base_binfo
+ && ! BINFO_VIRTUAL_P (base_binfo))
+ class = BINFO_TYPE (base_binfo);
+ else
+ break;
+ }
+
+ return 0;
+}
+
+/* Walk through a function body and return true if nothing in there
+ would cause us to generate code. */
+static int
+compound_body_is_empty_p (tree t)
+{
+ while (t && t != error_mark_node)
+ {
+ enum tree_code tc = TREE_CODE (t);
+ if (tc == BIND_EXPR)
+ {
+ if (BIND_EXPR_VARS (t) == 0
+ && compound_body_is_empty_p (BIND_EXPR_BODY (t)))
+ t = TREE_CHAIN (t);
+ else
+ return 0;
+ }
+ else if (tc == STATEMENT_LIST)
+ {
+ tree_stmt_iterator iter;
+
+ for (iter = tsi_start (t); !tsi_end_p (iter); tsi_next (&iter))
+ if (! compound_body_is_empty_p (tsi_stmt (iter)))
+ return 0;
+ return 1;
+ }
+ else
+ return 0;
+ }
+ /* We hit the end of the body function without seeing anything. */
+ return 1;
+}
+
+/* TRUE if we have an operator delete which is empty (i.e., NO CODE!) */
+int
+has_empty_operator_delete_p (tree class)
+{
+ if (! class)
+ return 0;
+
+ if (BINFO_N_BASE_BINFOS (TYPE_BINFO (class)) > 1)
+ return 0;
+
+ if (TYPE_GETS_DELETE (class))
+ {
+ tree f = lookup_fnfields (TYPE_BINFO (class),
+ ansi_opname (DELETE_EXPR), 0);
+
+ if (f == error_mark_node)
+ return 0;
+
+ if (BASELINK_P (f))
+ f = BASELINK_FUNCTIONS (f);
+
+ if (OVL_CURRENT (f))
+ {
+ f = OVL_CURRENT (f);
+
+ /* We've overridden TREE_SIDE_EFFECTS for C++ operator deletes
+ to mean that the function is empty. */
+ if (TREE_SIDE_EFFECTS (f))
+ return 1;
+
+ /* Otherwise, it could be an inline but empty function. */
+ if (DECL_SAVED_TREE (f))
+ return compound_body_is_empty_p (DECL_SAVED_TREE (f));
+ }
+ }
+
+ return 0;
+}
+/* APPLE LOCAL end KEXT double destructor */
+
#include "gt-cp-class.h"
diff --git a/gcc/cp/cp-objcp-common.c b/gcc/cp/cp-objcp-common.c
index d43c159c01f..9605aebb950 100644
--- a/gcc/cp/cp-objcp-common.c
+++ b/gcc/cp/cp-objcp-common.c
@@ -202,3 +202,18 @@ has_c_linkage (tree decl)
{
return DECL_EXTERN_C_P (decl);
}
+
+/* APPLE LOCAL begin kext identify vtables */
+/* Return true if t is a vtable. In kexts (only) these may
+ be overridden by other modules, so we can't do the
+ normal optimizations we do on initialized const objects. */
+int
+cp_vtable_p (tree t)
+{
+ if (TREE_CODE (t) == VAR_DECL
+ && TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE
+ && TREE_TYPE (TREE_TYPE (t)) == vtable_entry_type)
+ return 1;
+ return 0;
+}
+/* APPLE LOCAL end kext identify vtables */
diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h
index 7a2a2343b7c..e3f69d6d931 100644
--- a/gcc/cp/cp-objcp-common.h
+++ b/gcc/cp/cp-objcp-common.h
@@ -1,5 +1,5 @@
/* Language hooks common to C++ and ObjC++ front ends.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
Contributed by Ziemowit Laski <zlaski@apple.com>
This file is part of GCC.
@@ -22,15 +22,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifndef GCC_CP_OBJCP_COMMON
#define GCC_CP_OBJCP_COMMON
-/* In cp/cp-objcp-common.c. */
-
-extern HOST_WIDE_INT cxx_get_alias_set (tree);
-extern bool cxx_warn_unused_global_decl (tree);
-extern tree cp_expr_size (tree);
-extern size_t cp_tree_size (enum tree_code);
-extern bool cp_var_mod_type_p (tree, tree);
-extern void cxx_initialize_diagnostics (struct diagnostic_context *);
-extern int cxx_types_compatible_p (tree, tree);
+/* APPLE LOCAL mainline */
+/* delete unneeded decls */
/* In cp/cp-lang.c and objcp/objcp-lang.c. */
@@ -159,7 +152,21 @@ extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t,
#define LANG_HOOKS_TYPE_PROMOTES_TO cxx_type_promotes_to
#undef LANG_HOOKS_REGISTER_BUILTIN_TYPE
#define LANG_HOOKS_REGISTER_BUILTIN_TYPE c_register_builtin_type
+#undef LANG_HOOKS_TO_TARGET_CHARSET
+#define LANG_HOOKS_TO_TARGET_CHARSET c_common_to_target_charset
#undef LANG_HOOKS_GIMPLIFY_EXPR
#define LANG_HOOKS_GIMPLIFY_EXPR cp_gimplify_expr
+/* APPLE LOCAL begin kext identify vtables */
+#undef LANG_HOOKS_VTABLE_P
+#define LANG_HOOKS_VTABLE_P cp_vtable_p
+/* APPLE LOCAL end kext identify vtables */
+
+/* APPLE LOCAL begin 4133801 */
+#undef LANG_HOOKS_START_SOURCE_FILE
+#define LANG_HOOKS_START_SOURCE_FILE cp_start_source_file
+#undef LANG_HOOKS_END_SOURCE_FILE
+#define LANG_HOOKS_END_SOURCE_FILE cp_end_source_file
+/* APPLE LOCAL end 4133801 */
+
#endif /* GCC_CP_OBJCP_COMMON */
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 1abc77bfcad..b7c580ab5b8 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -31,10 +31,8 @@ Boston, MA 02111-1307, USA. */
BASELINK, or TEMPLATE_ID_EXPR (corresponding to `m').
The expression is a pointer-to-member if its address is taken,
- but simply denotes a member of the object if its address isnot
- taken. In the latter case, resolve_offset_ref is used to
- convert it to a representation of the member referred to by the
- OFFSET_REF.
+ but simply denotes a member of the object if its address is not
+ taken.
This form is only used during the parsing phase; once semantic
analysis has taken place they are eliminated.
@@ -291,6 +289,7 @@ DEFTREECODE (TAG_DEFN, "tag_defn", tcc_expression, 0)
TINST_DECL contains the original DECL node.
TINST_LOCATION contains the location where the template is instantiated.
+ TINST_IN_SYSTEM_HEADER_P is true if the location is in a system header.
A stack of template instantiation nodes is kept through the TREE_CHAIN
fields of these nodes. */
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index bd5d0eca14d..eef4df212e5 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -194,6 +194,9 @@ struct lang_identifier GTY(())
cxx_binding *namespace_bindings;
cxx_binding *bindings;
tree class_template_info;
+ /* APPLE LOCAL begin mainline */
+ tree interface_value; /* ObjC interface, if any */
+ /* APPLE LOCAL end mainline */
tree label_value;
};
@@ -221,6 +224,7 @@ struct tinst_level_s GTY(())
struct tree_common common;
tree decl;
location_t locus;
+ int in_system_header_p;
};
typedef struct tinst_level_s * tinst_level_t;
@@ -522,6 +526,12 @@ enum cp_tree_index
CPTI_KEYED_CLASSES,
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ CPTI_DELTA2_IDENTIFIER,
+ CPTI_INDEX_IDENTIFIER,
+ CPTI_PFN_OR_DELTA2_IDENTIFIER,
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
CPTI_MAX
};
@@ -592,6 +602,12 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX];
#define deleting_dtor_identifier cp_global_trees[CPTI_DELETING_DTOR_IDENTIFIER]
#define delta_identifier cp_global_trees[CPTI_DELTA_IDENTIFIER]
#define in_charge_identifier cp_global_trees[CPTI_IN_CHARGE_IDENTIFIER]
+/* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+#define delta2_identifier cp_global_trees[CPTI_DELTA2_IDENTIFIER]
+#define index_identifier cp_global_trees[CPTI_INDEX_IDENTIFIER]
+#define pfn_or_delta2_identifier cp_global_trees[CPTI_PFN_OR_DELTA2_IDENTIFIER]
+/* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
/* The name of the parameter that contains a pointer to the VTT to use
for this subobject constructor or destructor. */
#define vtt_parm_identifier cp_global_trees[CPTI_VTT_PARM_IDENTIFIER]
@@ -1683,7 +1699,7 @@ struct lang_decl GTY(())
/* Nonzero if NODE (a FUNCTION_DECL) is a destructor, but not the
specialized in-charge constructor, in-charge deleting constructor,
- or the the base destructor. */
+ or the base destructor. */
#define DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P(NODE) \
(DECL_DESTRUCTOR_P (NODE) && !DECL_CLONED_FUNCTION_P (NODE))
@@ -2521,8 +2537,13 @@ struct lang_decl GTY(())
/* Get the POINTER_TYPE to the METHOD_TYPE associated with this
pointer to member function. TYPE_PTRMEMFUNC_P _must_ be true,
before using this macro. */
-#define TYPE_PTRMEMFUNC_FN_TYPE(NODE) \
- (TREE_TYPE (TYPE_FIELDS (NODE)))
+/* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+#define TYPE_PTRMEMFUNC_FN_TYPE(NODE) \
+ *((flag_apple_kext) ? \
+ &(TREE_TYPE (TYPE_FIELDS (TREE_TYPE (TREE_CHAIN ( \
+ TREE_CHAIN (TYPE_FIELDS (NODE))))))) : \
+ &(TREE_TYPE (TYPE_FIELDS (NODE)))) \
+/* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
/* Returns `A' for a type like `int (A::*)(double)' */
#define TYPE_PTRMEMFUNC_OBJECT_TYPE(NODE) \
@@ -2836,7 +2857,7 @@ struct lang_decl GTY(())
/* Nonzero if this VAR_DECL or FUNCTION_DECL has already been
instantiated, i.e. its definition has been generated from the
- pattern given in the the template. */
+ pattern given in the template. */
#define DECL_TEMPLATE_INSTANTIATED(NODE) \
DECL_LANG_FLAG_1 (VAR_OR_FUNCTION_DECL_CHECK (NODE))
@@ -2913,7 +2934,8 @@ struct lang_decl GTY(())
#define THUNK_ALIAS(DECL) \
(DECL_LANG_SPECIFIC (FUNCTION_DECL_CHECK (DECL))->decl_flags.u.template_info)
-/* For thunk NODE, this is the FUNCTION_DECL thunked to. */
+/* For thunk NODE, this is the FUNCTION_DECL thunked to. It is
+ possible for the target to be a thunk too. */
#define THUNK_TARGET(NODE) \
(DECL_LANG_SPECIFIC (NODE)->u.f.befriending_classes)
@@ -3121,6 +3143,8 @@ typedef enum unification_kind_t {
(((tinst_level_t) TINST_LEVEL_CHECK (NODE))->decl)
#define TINST_LOCATION(NODE) \
(((tinst_level_t) TINST_LEVEL_CHECK (NODE))->locus)
+#define TINST_IN_SYSTEM_HEADER_P(NODE) \
+ (((tinst_level_t) TINST_LEVEL_CHECK (NODE))->in_system_header_p)
/* in class.c */
@@ -3517,6 +3541,8 @@ typedef enum cp_decl_spec {
ds_typedef,
ds_complex,
ds_thread,
+ /* APPLE LOCAL CW asm blocks. */
+ ds_cw_asm,
ds_last
} cp_decl_spec;
@@ -3723,6 +3749,8 @@ extern void note_name_declared_in_class (tree, tree);
extern tree get_vtbl_decl_for_binfo (tree);
extern tree get_vtt_name (tree);
extern tree get_primary_binfo (tree);
+/* APPLE LOCAL KEXT indirect-virtual-calls --sts */
+extern tree build_vfn_ref_using_vtable (tree, tree);
extern void debug_class (tree);
extern void debug_thunks (tree);
extern tree cp_fold_obj_type_ref (tree, tree);
@@ -3785,7 +3813,7 @@ extern tree start_decl (const cp_declarator *, cp_decl_specifier_seq *, int,
extern void start_decl_1 (tree);
extern void cp_finish_decl (tree, tree, tree, int);
extern void finish_decl (tree, tree, tree);
-extern int complete_array_type (tree, tree, int);
+extern int cp_complete_array_type (tree *, tree, bool);
extern tree build_ptrmemfunc_type (tree);
extern tree build_ptrmem_type (tree, tree);
/* the grokdeclarator prototype is in decl.h */
@@ -4104,6 +4132,8 @@ extern void pop_to_parent_deferring_access_checks (void);
extern void perform_deferred_access_checks (void);
extern void perform_or_defer_access_check (tree, tree);
extern void init_cp_semantics (void);
+/* APPLE LOCAL mainline */
+extern tree do_poplevel (tree);
extern void add_decl_expr (tree);
extern tree finish_expr_stmt (tree);
extern tree begin_if_stmt (void);
@@ -4243,7 +4273,6 @@ extern tree build_dummy_object (tree);
extern tree maybe_dummy_object (tree, tree *);
extern int is_dummy_object (tree);
extern const struct attribute_spec cxx_attribute_table[];
-extern tree make_tinst_level (tree, location_t);
extern tree make_ptrmem_cst (tree, tree);
extern tree cp_build_type_attribute_variant (tree, tree);
extern tree cp_build_qualified_type_real (tree, int, tsubst_flags_t);
@@ -4310,6 +4339,7 @@ extern tree build_ptrmemfunc (tree, tree, int, bool);
extern int cp_type_quals (tree);
extern bool cp_has_mutable_p (tree);
extern bool at_least_as_qualified_p (tree, tree);
+extern void cp_apply_type_quals_to_decl (int, tree);
extern tree build_ptrmemfunc1 (tree, tree, tree);
extern void expand_ptrmemfunc_cst (tree, tree *, tree *);
extern tree pfn_from_ptrmemfunc (tree);
@@ -4370,10 +4400,39 @@ extern tree mangle_ref_init_variable (tree);
/* in dump.c */
extern bool cp_dump_tree (void *, tree);
-/* in cp-simplify.c */
+/* APPLE LOCAL begin mainline */
+/* In cp/cp-objcp-common.c. */
+
+extern HOST_WIDE_INT cxx_get_alias_set (tree);
+extern bool cxx_warn_unused_global_decl (tree);
+extern tree cp_expr_size (tree);
+extern size_t cp_tree_size (enum tree_code);
+extern bool cp_var_mod_type_p (tree, tree);
+extern void cxx_initialize_diagnostics (struct diagnostic_context *);
+extern int cxx_types_compatible_p (tree, tree);
+/* APPLE LOCAL end mainline */
+
+/* APPLE LOCAL begin KEXT double destructor */
+extern int has_apple_kext_compatibility_attr_p PARAMS ((tree));
+extern int has_empty_operator_delete_p PARAMS ((tree));
+/* APPLE LOCAL end KEXT double destructor */
+
+/* APPLE LOCAL kext identify vtables */
+extern int cp_vtable_p (tree);
+
+/* in cp-gimplify.c */
extern int cp_gimplify_expr (tree *, tree *, tree *);
extern void cp_genericize (tree);
+/* APPLE LOCAL begin CW asm blocks */
+extern tree cw_asm_cp_build_component_ref (tree, tree);
+/* APPLE LOCAL end CW asm blocks */
+
+/* APPLE LOCAL begin 4133801 */
+extern void cp_start_source_file (int, const char *);
+extern void cp_end_source_file (int, const char *);
+extern void cp_flush_lexer_file_stack (void);
+/* APPLE LOCAL end 4133801 */
/* -- end of C++ */
/* In order for the format checking to accept the C++ frontend
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 48f8d8c55fd..be5561835c8 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -51,6 +51,8 @@ Boston, MA 02111-1307, USA. */
#include "debug.h"
#include "timevar.h"
#include "tree-flow.h"
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+#include "opts.h"
static tree grokparms (cp_parameter_declarator *, tree *);
static const char *redeclaration_error_message (tree, tree);
@@ -229,10 +231,17 @@ int function_depth;
with __attribute__((deprecated)). An object declared as
__attribute__((deprecated)) suppresses warnings of uses of other
deprecated items. */
+/* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+/* An object declared as __attribute__((unavailable)) suppresses
+ any reports of being declared with unavailable or deprecated
+ items. */
+/* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
enum deprecated_states {
DEPRECATED_NORMAL,
DEPRECATED_SUPPRESS
+ /* APPLE LOCAL "unavailable" attribute (radar 2809697) */
+ , DEPRECATED_UNAVAILABLE_SUPPRESS
};
static enum deprecated_states deprecated_state = DEPRECATED_NORMAL;
@@ -419,19 +428,20 @@ objc_mark_locals_volatile (void *enclosing_blk)
struct cp_binding_level *scope;
for (scope = current_binding_level;
- scope && scope != enclosing_blk && scope->kind == sk_block;
+ /* APPLE LOCAL mainline */
+ scope && scope != enclosing_blk;
scope = scope->level_chain)
{
tree decl;
+ /* APPLE LOCAL begin mainline */
for (decl = scope->names; decl; decl = TREE_CHAIN (decl))
- {
- if (TREE_CODE (decl) == VAR_DECL)
- {
- DECL_REGISTER (decl) = 0;
- TREE_THIS_VOLATILE (decl) = 1;
- }
- }
+ objc_volatilize_decl (decl);
+
+ /* Do not climb up past the current function. */
+ if (scope->kind == sk_function_parms)
+ break;
+ /* APPLE LOCAL end mainline */
}
}
@@ -948,6 +958,12 @@ decls_match (tree newdecl, tree olddecl)
}
else
{
+ /* Need to check scope for variable declaration (VAR_DECL).
+ For typedef (TYPE_DECL), scope is ignored. */
+ if (TREE_CODE (newdecl) == VAR_DECL
+ && CP_DECL_CONTEXT (newdecl) != CP_DECL_CONTEXT (olddecl))
+ return 0;
+
if (TREE_TYPE (newdecl) == error_mark_node)
types_match = TREE_TYPE (olddecl) == error_mark_node;
else if (TREE_TYPE (olddecl) == NULL_TREE)
@@ -1920,7 +1936,8 @@ redeclaration_error_message (tree newdecl, tree olddecl)
/* If both functions come from different namespaces, this is not
a redeclaration - this is a conflict with a used function. */
if (DECL_NAMESPACE_SCOPE_P (olddecl)
- && DECL_CONTEXT (olddecl) != DECL_CONTEXT (newdecl))
+ && DECL_CONTEXT (olddecl) != DECL_CONTEXT (newdecl)
+ && ! decls_match (olddecl, newdecl))
return "%qD conflicts with used function";
/* We'll complain about linkage mismatches in
@@ -2846,6 +2863,45 @@ initialize_predefined_identifiers (void)
if (pid->ctor_or_dtor_p)
IDENTIFIER_CTOR_OR_DTOR_P (*pid->node) = 1;
}
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ {
+ /* This is snarfed from the 2.95 cp-tree.h. The mechanism is
+ completely different from gcc3 (see cp-tree.h, and read the
+ comment just above 'enum ptrmemfunc_vbit_where_t'. Sigh.
+
+ A 2.95 pointer-to-function member type looks like:
+
+ struct {
+ short __delta;
+ short __index;
+ union {
+ P __pfn;
+ short __delta2;
+ } __pfn_or_delta2;
+ };
+
+ where P is a POINTER_TYPE to a METHOD_TYPE appropriate for the
+ pointer to member. The fields are used as follows:
+
+ If __INDEX is -1, then the function to call is non-virtual, and
+ is located at the address given by __PFN.
+
+ If __INDEX is zero, then this a NULL pointer-to-member.
+
+ Otherwise, the function to call is virtual. Then, __DELTA2 gives
+ the offset from an instance of the object to the virtual function
+ table, and __INDEX - 1 is the index into the vtable to use to
+ find the function.
+
+ The value to use for the THIS parameter is the address of the
+ object plus __DELTA. */
+
+ delta2_identifier = get_identifier ("__delta2");
+ index_identifier = get_identifier ("__index");
+ pfn_or_delta2_identifier = get_identifier ("__pfn_or_delta2");
+ }
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
}
/* Create the predefined scalar types of C,
@@ -2930,6 +2986,11 @@ cxx_init_decl_processing (void)
record_builtin_type (RID_MAX, NULL, string_type_node);
#endif
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ delta_type_node = short_integer_type_node;
+ else
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
delta_type_node = ptrdiff_type_node;
vtable_index_type = ptrdiff_type_node;
@@ -3037,6 +3098,13 @@ cxx_init_decl_processing (void)
/* Show we use EH for cleanups. */
if (flag_exceptions)
using_eh_for_cleanups ();
+
+ /* APPLE LOCAL begin fwritable strings. */
+ /* Maintain consistency. Perhaps we should just complain if they
+ say -fwritable-strings? */
+ if (flag_writable_strings)
+ flag_const_strings = 0;
+ /* APPLE LOCAL end fwritable strings. */
}
/* Generate an initializer for a function naming variable from
@@ -3150,8 +3218,18 @@ builtin_function_1 (const char* name,
/* Warn if a function in the namespace for users
is used without an occasion to consider it declared. */
- if (name[0] != '_' || name[1] != '_')
+ /* APPLE LOCAL begin AltiVec */
+ if ((name[0] != '_' || name[1] != '_')
+#ifdef TARGET_POWERPC
+ /* AltiVec PIM builtins, even though they do not begin with
+ underscores, need not be declared either. */
+ && !(class == BUILT_IN_MD
+ && code >= ALTIVEC_PIM__FIRST
+ && code <= ALTIVEC_PIM__LAST)
+#endif /* TARGET_POWERPC */
+ )
DECL_ANTICIPATED (decl) = 1;
+ /* APPLE LOCAL end AltiVec */
/* Possibly apply some default attributes to this built-in function. */
if (attrs)
@@ -3188,7 +3266,10 @@ builtin_function (const char* name,
{
/* All builtins that don't begin with an '_' should additionally
go in the 'std' namespace. */
- if (name[0] != '_')
+ /* APPLE LOCAL begin alloca not in std */
+ /* Don't use `std' namespace for alloca. */
+ if (name[0] != '_' && strcmp (name, "alloca"))
+ /* APPLE LOCAL end alloca not in std */
{
push_namespace (std_identifier);
builtin_function_1 (name, type, std_node, code, cl, libname, attrs);
@@ -3216,6 +3297,11 @@ build_library_fn_1 (tree name, enum tree_code operator_code, tree type)
external shared object. */
DECL_VISIBILITY (fn) = VISIBILITY_DEFAULT;
DECL_VISIBILITY_SPECIFIED (fn) = 1;
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ /* Build a mapping between this decl and the per-function options in
+ effect at this point. */
+ record_func_cl_pf_opts_mapping (fn);
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
return fn;
}
@@ -3566,6 +3652,8 @@ start_decl (const cp_declarator *declarator,
tree decl;
tree type, tem;
tree context;
+ /* APPLE LOCAL "unavailable" attribute (radar 2809697) */
+ tree a;
*pushed_scope_p = NULL_TREE;
@@ -3576,10 +3664,34 @@ start_decl (const cp_declarator *declarator,
have_extern_spec = false;
}
- /* An object declared as __attribute__((deprecated)) suppresses
- warnings of uses of other deprecated items. */
+ /* APPLE LOCAL begin "unavailable" attribute (radar 2809697) */
+ /* An object declared as __attribute__((unavailable)) suppresses
+ any reports of being declared with unavailable or deprecated
+ items. An object declared as __attribute__((deprecated))
+ suppresses warnings of uses of other deprecated items. */
+#ifdef A_LESS_INEFFICENT_WAY /* which I really don't want to do! */
if (lookup_attribute ("deprecated", attributes))
deprecated_state = DEPRECATED_SUPPRESS;
+ else if (lookup_attribute ("unavailable", attributes))
+ deprecated_state = DEPRECATED_UNAVAILABLE_SUPPRESS;
+#else /* a more efficient way doing what lookup_attribute would do */
+ for (a = attributes; a; a = TREE_CHAIN (a))
+ {
+ tree name = TREE_PURPOSE (a);
+ if (TREE_CODE (name) == IDENTIFIER_NODE)
+ if (is_attribute_p ("deprecated", name))
+ {
+ deprecated_state = DEPRECATED_SUPPRESS;
+ break;
+ }
+ if (is_attribute_p ("unavailable", name))
+ {
+ deprecated_state = DEPRECATED_UNAVAILABLE_SUPPRESS;
+ break;
+ }
+ }
+#endif
+ /* APPLE LOCAL end "unavailable" attribute (radar 2809697) */
attributes = chainon (attributes, prefix_attributes);
@@ -3647,8 +3759,7 @@ start_decl (const cp_declarator *declarator,
cplus_decl_attributes (&decl, attributes, 0);
/* If #pragma weak was used, mark the decl weak now. */
- if (global_scope_p (current_binding_level))
- maybe_apply_pragma_weak (decl);
+ maybe_apply_pragma_weak (decl);
if (TREE_CODE (decl) == FUNCTION_DECL
&& DECL_DECLARED_INLINE_P (decl)
@@ -3906,7 +4017,8 @@ maybe_deduce_size_from_array_init (tree decl, tree init)
But let's leave it here to ease the eventual merge. */
int do_default = !DECL_EXTERNAL (decl);
tree initializer = init ? init : DECL_INITIAL (decl);
- int failure = complete_array_type (type, initializer, do_default);
+ int failure = cp_complete_array_type (&TREE_TYPE (decl), initializer,
+ do_default);
if (failure == 1)
error ("initializer fails to determine size of %qD", decl);
@@ -3923,9 +4035,7 @@ maybe_deduce_size_from_array_init (tree decl, tree init)
DECL_EXTERNAL (decl) = 1;
}
- if (pedantic && TYPE_DOMAIN (type) != NULL_TREE
- && tree_int_cst_lt (TYPE_MAX_VALUE (TYPE_DOMAIN (type)),
- integer_zero_node))
+ if (failure == 3)
error ("zero-size array %qD", decl);
layout_decl (decl, 0);
@@ -4103,13 +4213,18 @@ 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;
+ unsigned HOST_WIDE_INT max_index_cst = 0;
+ unsigned 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);
+ {
+ if (host_integerp (max_index, 1))
+ max_index_cst = tree_low_cst (max_index, 1);
+ /* sizetype is sign extended, not zero extended. */
+ else
+ max_index_cst = tree_low_cst (fold_convert (size_type_node, max_index),
+ 1);
+ }
/* Loop until there are no more initializers. */
for (index = 0;
@@ -4126,27 +4241,16 @@ reshape_init_array (tree elt_type, tree max_index,
CONSTRUCTOR_ELTS (new_init) = element_init;
designated_index = TREE_PURPOSE (element_init);
if (designated_index)
- {
+ {
/* Handle array designated initializers (GNU extension). */
if (TREE_CODE (designated_index) == IDENTIFIER_NODE)
{
error ("name %qD used in a GNU-style designated "
- "initializer for an array", designated_index);
+ "initializer for an array", designated_index);
TREE_PURPOSE (element_init) = NULL_TREE;
}
else
- {
- gcc_assert (TREE_CODE (designated_index) == INTEGER_CST);
- if (sized_array_p
- && tree_int_cst_lt (max_index, designated_index))
- {
- error ("Designated initializer %qE larger than array "
- "size", designated_index);
- TREE_PURPOSE (element_init) = NULL_TREE;
- }
- else
- index = tree_low_cst (designated_index, 1);
- }
+ gcc_unreachable ();
}
}
@@ -4176,6 +4280,7 @@ reshape_init (tree type, tree *initp)
tree old_init_value;
tree new_init;
bool brace_enclosed_p;
+ bool string_init_p;
old_init = *initp;
old_init_value = (TREE_CODE (*initp) == TREE_LIST
@@ -4239,6 +4344,7 @@ reshape_init (tree type, tree *initp)
return old_init;
}
+ string_init_p = false;
if (TREE_CODE (old_init_value) == STRING_CST
&& TREE_CODE (type) == ARRAY_TYPE
&& char_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (type))))
@@ -4253,6 +4359,7 @@ reshape_init (tree type, tree *initp)
/* Move past the initializer. */
*initp = TREE_CHAIN (old_init);
TREE_CHAIN (old_init) = NULL_TREE;
+ string_init_p = true;
}
else
{
@@ -4359,7 +4466,7 @@ reshape_init (tree type, tree *initp)
{
if (brace_enclosed_p)
error ("too many initializers for %qT", type);
- else if (warn_missing_braces)
+ else if (warn_missing_braces && !string_init_p)
warning ("missing braces around initializer");
}
@@ -4610,7 +4717,19 @@ make_rtl_for_nonlocal_decl (tree decl, tree init, const char* asmspec)
&& DECL_IMPLICIT_INSTANTIATION (decl))
defer_p = 1;
- /* If we're not deferring, go ahead and assemble the variable. */
+
+ /* APPLE LOCAL begin static const members 20020110 --turly */
+ /* Static const members which require runtime initialisation should
+ not be placed in readonly memory. Avoid this by temporarily
+ whacking the TREE_READONLY bit. */
+ if (!defer_p && init != NULL_TREE && TREE_READONLY (decl) && toplev)
+ {
+ TREE_READONLY (decl) = 0;
+ rest_of_decl_compilation (decl, toplev, at_eof);
+ TREE_READONLY (decl) = 1;
+ }
+ else
+ /* APPLE LOCAL end static const members 20020110 --turly */
if (!defer_p)
rest_of_decl_compilation (decl, toplev, at_eof);
}
@@ -4749,9 +4868,6 @@ cp_finish_decl (tree decl, tree init, tree asmspec_tree, int flags)
if (type == error_mark_node)
goto finish_end;
- if (TYPE_HAS_MUTABLE_P (type))
- TREE_READONLY (decl) = 0;
-
if (processing_template_decl)
{
/* Add this declaration to the statement-tree. */
@@ -4798,16 +4914,13 @@ cp_finish_decl (tree decl, tree init, tree asmspec_tree, int flags)
ttype = target_type (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))
+ /* A reference will be modified here, as it is initialized. */
+ if (! DECL_EXTERNAL (decl)
+ && TREE_READONLY (decl)
+ && TREE_CODE (type) == REFERENCE_TYPE)
{
was_readonly = 1;
- if (TYPE_NEEDS_CONSTRUCTING (type)
- || TREE_CODE (type) == REFERENCE_TYPE)
- TREE_READONLY (decl) = 0;
+ TREE_READONLY (decl) = 0;
}
if (TREE_CODE (decl) == VAR_DECL)
@@ -5342,99 +5455,41 @@ expand_static_init (tree decl, tree init)
2 if there was no information (in which case assume 0 if DO_DEFAULT). */
int
-complete_array_type (tree type, tree initial_value, int do_default)
+cp_complete_array_type (tree *ptype, tree initial_value, bool do_default)
{
- tree maxindex = NULL_TREE;
- int value = 0;
+ int failure;
+ tree type, elt_type;
if (initial_value)
{
/* An array of character type can be initialized from a
brace-enclosed string constant. */
- if (char_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (type)))
+ if (char_type_p (TYPE_MAIN_VARIANT (TREE_TYPE (*ptype)))
&& TREE_CODE (initial_value) == CONSTRUCTOR
&& CONSTRUCTOR_ELTS (initial_value)
&& (TREE_CODE (TREE_VALUE (CONSTRUCTOR_ELTS (initial_value)))
== STRING_CST)
&& TREE_CHAIN (CONSTRUCTOR_ELTS (initial_value)) == NULL_TREE)
initial_value = TREE_VALUE (CONSTRUCTOR_ELTS (initial_value));
-
- /* Note MAXINDEX is really the maximum index, one less than the
- size. */
- if (TREE_CODE (initial_value) == STRING_CST)
- {
- int eltsize
- = int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
- maxindex = build_int_cst (NULL_TREE,
- (TREE_STRING_LENGTH (initial_value)
- / eltsize) - 1);
- }
- else if (TREE_CODE (initial_value) == CONSTRUCTOR)
- {
- tree elts = CONSTRUCTOR_ELTS (initial_value);
-
- maxindex = ssize_int (-1);
- for (; elts; elts = TREE_CHAIN (elts))
- {
- if (TREE_PURPOSE (elts))
- maxindex = TREE_PURPOSE (elts);
- else
- maxindex = size_binop (PLUS_EXPR, maxindex, ssize_int (1));
- }
- }
- else
- {
- /* Make an error message unless that happened already. */
- if (initial_value != error_mark_node)
- value = 1;
- else
- initial_value = NULL_TREE;
-
- /* Prevent further error messages. */
- maxindex = build_int_cst (NULL_TREE, 0);
- }
- }
-
- if (!maxindex)
- {
- if (do_default)
- maxindex = build_int_cst (NULL_TREE, 0);
- value = 2;
}
-
- if (maxindex)
+
+ failure = complete_array_type (ptype, initial_value, do_default);
+
+ /* We can create the array before the element type is complete, which
+ means that we didn't have these two bits set in the original type
+ either. In completing the type, we are expected to propagate these
+ bits. See also complete_type which does the same thing for arrays
+ of fixed size. */
+ type = *ptype;
+ if (TYPE_DOMAIN (type))
{
- tree itype;
- tree domain;
- tree elt_type;
-
- domain = build_index_type (maxindex);
- TYPE_DOMAIN (type) = domain;
-
- if (initial_value)
- itype = TREE_TYPE (initial_value);
- else
- itype = NULL;
- if (itype && !TYPE_DOMAIN (itype))
- TYPE_DOMAIN (itype) = domain;
- /* The type of the main variant should never be used for arrays
- of different sizes. It should only ever be completed with the
- size of the array. */
- if (! TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)))
- TYPE_DOMAIN (TYPE_MAIN_VARIANT (type)) = domain;
-
elt_type = TREE_TYPE (type);
- TYPE_NEEDS_CONSTRUCTING (type)
- = TYPE_NEEDS_CONSTRUCTING (TYPE_MAIN_VARIANT (elt_type));
+ TYPE_NEEDS_CONSTRUCTING (type) = TYPE_NEEDS_CONSTRUCTING (elt_type);
TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
- = TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TYPE_MAIN_VARIANT (elt_type));
+ = TYPE_HAS_NONTRIVIAL_DESTRUCTOR (elt_type);
}
- /* Lay out the type now that we can get the real answer. */
-
- layout_type (type);
-
- return value;
+ return failure;
}
/* Return zero if something is declared to be a member of type
@@ -5930,8 +5985,7 @@ grokvardecl (tree type,
declare an entity with linkage.
Only check this for public decls for now. */
- tree t1 = TREE_TYPE (decl);
- tree t = no_linkage_check (t1, /*relaxed_p=*/false);
+ tree t = no_linkage_check (TREE_TYPE (decl), /*relaxed_p=*/false);
if (t)
{
if (TYPE_ANONYMOUS_P (t))
@@ -5939,31 +5993,26 @@ grokvardecl (tree type,
if (DECL_EXTERN_C_P (decl))
/* Allow this; it's pretty common in C. */
;
- else if (same_type_ignoring_top_level_qualifiers_p(t1, t))
- /* This is something like "enum { a = 3 } x;", which is
- well formed. The enum doesn't have "a name with no
- linkage", because it has no name. See closed CWG issue
- 132.
-
- Note that while this construct is well formed in C++03
- it is likely to become ill formed in C++0x. See open
- CWG issue 389 and related issues. */
- ;
else
{
- /* It's a typedef referring to an anonymous type. */
- pedwarn ("non-local variable %q#D uses anonymous type",
+ /* DRs 132, 319 and 389 seem to indicate types with
+ no linkage can only be used to declare extern "C"
+ entities. Since it's not always an error in the
+ ISO C++ 90 Standard, we only issue a warning. */
+ warning ("non-local variable %q#D uses anonymous type",
decl);
if (DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
- cp_pedwarn_at ("%q#D does not refer to the unqualified "
- "type, so it is not used for linkage",
+ cp_warning_at ("%q#D does not refer to the unqualified "
+ "type, so it is not used for linkage",
TYPE_NAME (t));
}
}
else
- pedwarn ("non-local variable %q#D uses local type %qT", decl, t);
+ warning ("non-local variable %q#D uses local type %qT", decl, t);
}
}
+ else
+ DECL_INTERFACE_KNOWN (decl) = 1;
return decl;
}
@@ -5994,6 +6043,37 @@ build_ptrmemfunc_type (tree type)
unqualified_variant
= build_ptrmemfunc_type (TYPE_MAIN_VARIANT (type));
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ {
+ tree u = make_aggr_type (UNION_TYPE);
+ SET_IS_AGGR_TYPE (u, 0);
+ xref_basetypes (u, NULL_TREE);
+ fields = build_decl (FIELD_DECL, delta2_identifier, delta_type_node);
+ TREE_CHAIN (fields)
+ = build_decl (FIELD_DECL, pfn_identifier, type);
+ finish_builtin_struct (u, "__ptrmemfunc_type", fields, ptr_type_node);
+ TYPE_NAME (u) = NULL_TREE;
+
+ t = make_aggr_type (RECORD_TYPE);
+ xref_basetypes (t, NULL_TREE);
+
+ /* Let the front-end know this is a pointer to member function... */
+ TYPE_PTRMEMFUNC_FLAG (t) = 1;
+ /* ... and not really an aggregate. */
+ SET_IS_AGGR_TYPE (t, 0);
+
+ fields = build_decl (FIELD_DECL, pfn_or_delta2_identifier, u);
+ TREE_CHAIN (fields) =
+ build_decl (FIELD_DECL, index_identifier, delta_type_node);
+ TREE_CHAIN (TREE_CHAIN (fields)) =
+ build_decl (FIELD_DECL, delta_identifier, delta_type_node);
+ finish_builtin_struct (t, "__ptrmemfunc_type", fields, ptr_type_node);
+ }
+ else
+ {
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
t = make_aggr_type (RECORD_TYPE);
xref_basetypes (t, NULL_TREE);
@@ -6010,6 +6090,8 @@ build_ptrmemfunc_type (tree type)
fields = field;
finish_builtin_struct (t, "__ptrmemfunc_type", fields, ptr_type_node);
+ /* APPLE LOCAL KEXT 2.95-ptmf-compatibility --turly */
+ }
/* Zap out the name so that the back-end will give us the debugging
information for this anonymous RECORD_TYPE. */
@@ -6491,6 +6573,8 @@ grokdeclarator (const cp_declarator *declarator,
cp_decl_spec ds;
cp_storage_class storage_class;
bool unsigned_p, signed_p, short_p, long_p, thread_p;
+ /* APPLE LOCAL CW asm blocks */
+ bool cw_asm_p;
bool type_was_error_mark_node = false;
signed_p = declspecs->specs[(int)ds_signed];
@@ -6498,6 +6582,8 @@ grokdeclarator (const cp_declarator *declarator,
short_p = declspecs->specs[(int)ds_short];
long_p = declspecs->specs[(int)ds_long];
thread_p = declspecs->specs[(int)ds_thread];
+ /* APPLE LOCAL CW asm blocks */
+ cw_asm_p = declspecs->specs[(int)ds_cw_asm];
if (decl_context == FUNCDEF)
funcdef_flag = 1, decl_context = NORMAL;
@@ -6696,6 +6782,19 @@ grokdeclarator (const cp_declarator *declarator,
type = NULL_TREE;
type_was_error_mark_node = true;
}
+
+ /* APPLE LOCAL begin unavailable attribute (radar 2809697) --bowdidge */
+ /* If the entire declaration is itself tagged as unavailable then
+ suppress reports of unavailable/deprecated items. If the
+ entire declaration is tagged as only deprecated we still
+ report unavailable uses. */
+ if (type && TREE_DEPRECATED (type) && TREE_UNAVAILABLE (type))
+ {
+ if (deprecated_state != DEPRECATED_UNAVAILABLE_SUPPRESS)
+ warn_deprecated_use (type);
+ }
+ else
+ /* APPLE LOCAL end unavailable attribute (radar 2809697) --bowdidge */
/* If the entire declaration is itself tagged as deprecated then
suppress reports of deprecated items. */
if (type && TREE_DEPRECATED (type)
@@ -6752,6 +6851,8 @@ grokdeclarator (const cp_declarator *declarator,
"typedef",
"__complex",
"__thread"
+ /* APPLE LOCAL CW asm blocks. */
+ , "asm"
};
error ("duplicate %qs", decl_spec_names[(int)ds]);
}
@@ -6931,6 +7032,20 @@ grokdeclarator (const cp_declarator *declarator,
error ("qualifiers are not allowed on declaration of %<operator %T%>",
ctor_return_type);
+ if (TREE_CODE (type) == FUNCTION_TYPE
+ && type_quals != TYPE_UNQUALIFIED)
+ {
+ /* This was an error in C++98 (cv-qualifiers cannot be added to
+ a function type), but DR 295 makes the code well-formed by
+ dropping the extra qualifiers. */
+ if (pedantic)
+ {
+ tree bad_type = build_qualified_type (type, type_quals);
+ pedwarn ("ignoring %qV qualifiers added to function type %qT",
+ bad_type, type);
+ }
+ type_quals = TYPE_UNQUALIFIED;
+ }
type_quals |= cp_type_quals (type);
type = cp_build_qualified_type_real
(type, type_quals, ((typedef_decl && !DECL_ARTIFICIAL (typedef_decl)
@@ -7119,9 +7234,7 @@ grokdeclarator (const cp_declarator *declarator,
/* Determine the type of the entity declared by recurring on the
declarator. */
- for (;
- declarator && declarator->kind != cdk_id;
- declarator = declarator->declarator)
+ for (; declarator; declarator = declarator->declarator)
{
const cp_declarator *inner_declarator;
tree attrs;
@@ -7129,8 +7242,6 @@ grokdeclarator (const cp_declarator *declarator,
if (type == error_mark_node)
return error_mark_node;
- inner_declarator = declarator->declarator;
-
attrs = declarator->attributes;
if (attrs)
{
@@ -7148,6 +7259,11 @@ grokdeclarator (const cp_declarator *declarator,
attr_flags);
}
+ if (declarator->kind == cdk_id)
+ break;
+
+ inner_declarator = declarator->declarator;
+
switch (declarator->kind)
{
case cdk_array:
@@ -7292,6 +7408,7 @@ grokdeclarator (const cp_declarator *declarator,
}
type = build_function_type (type, arg_types);
+ type = cp_build_qualified_type (type, quals);
}
break;
@@ -7324,7 +7441,15 @@ grokdeclarator (const cp_declarator *declarator,
&& (TREE_CODE (type) == FUNCTION_TYPE
|| (quals && TREE_CODE (type) == METHOD_TYPE)))
{
- tree dummy = build_decl (TYPE_DECL, NULL_TREE, type);
+ tree dummy;
+
+ /* If the type is a FUNCTION_TYPE, pick up the
+ qualifiers from that function type. No other
+ qualifiers may be supplied. */
+ if (TREE_CODE (type) == FUNCTION_TYPE)
+ quals = cp_type_quals (type);
+
+ dummy = build_decl (TYPE_DECL, NULL_TREE, type);
grok_method_quals (declarator->u.pointer.class_type,
dummy, quals);
type = TREE_TYPE (dummy);
@@ -7621,11 +7746,12 @@ grokdeclarator (const cp_declarator *declarator,
{
if (ctype == NULL_TREE)
{
- if (TREE_CODE (type) != METHOD_TYPE)
- error ("%Jinvalid type qualifier for non-member function type",
- decl);
- else
+ if (TREE_CODE (type) == METHOD_TYPE)
ctype = TYPE_METHOD_BASETYPE (type);
+ /* Any qualifiers on a function type typedef have
+ already been dealt with. */
+ else if (TREE_CODE (type) == FUNCTION_TYPE)
+ quals = TYPE_UNQUALIFIED;
}
if (ctype != NULL_TREE)
grok_method_quals (ctype, decl, quals);
@@ -7668,6 +7794,23 @@ grokdeclarator (const cp_declarator *declarator,
}
parms = nreverse (decls);
+
+ if (decl_context != TYPENAME)
+ {
+ /* A cv-qualifier-seq shall only be part of the function type
+ for a non-static member function. [8.3.5/4 dcl.fct] */
+ if (cp_type_quals (type) != TYPE_UNQUALIFIED
+ && (current_class_type == NULL_TREE || staticp) )
+ {
+ error ("qualified function types cannot be used to declare %s functions",
+ (staticp? "static member" : "free"));
+ type = TYPE_MAIN_VARIANT (type);
+ }
+
+ /* The qualifiers on the function type become the qualifiers on
+ the non-static member function. */
+ quals |= cp_type_quals (type);
+ }
}
/* If this is a type name (such as, in a cast or sizeof),
@@ -8199,11 +8342,26 @@ grokdeclarator (const cp_declarator *declarator,
else if (storage_class == sc_static)
DECL_THIS_STATIC (decl) = 1;
+ /* APPLE LOCAL begin CW asm blocks */
+ if (cw_asm_p)
+ {
+ /* Record that this is a decl of a CW-style asm function. */
+ if (flag_cw_asm_blocks)
+ {
+ DECL_CW_ASM_FUNCTION (decl) = 1;
+ DECL_CW_ASM_NORETURN (decl) = 0;
+ DECL_CW_ASM_FRAME_SIZE (decl) = -2;
+ }
+ else
+ error ("asm functions not enabled, use `-fasm-blocks'");
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
/* Record constancy and volatility. There's no need to do this
when processing a template; we'll do this for the instantiated
declaration based on the type of DECL. */
if (!processing_template_decl)
- c_apply_type_quals_to_decl (type_quals, decl);
+ cp_apply_type_quals_to_decl (type_quals, decl);
return decl;
}
@@ -9959,7 +10117,12 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
class scope, current_class_type will be NULL_TREE until set above
by push_nested_class.) */
if (processing_template_decl)
- decl1 = push_template_decl (decl1);
+ {
+ /* FIXME: Handle error_mark_node more gracefully. */
+ tree newdecl1 = push_template_decl (decl1);
+ if (newdecl1 != error_mark_node)
+ decl1 = newdecl1;
+ }
/* We are now in the scope of the function being defined. */
current_function_decl = decl1;
@@ -9987,7 +10150,7 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
DECL_IGNORED_P (resdecl) = 1;
DECL_RESULT (decl1) = resdecl;
- c_apply_type_quals_to_decl (cp_type_quals (restype), resdecl);
+ cp_apply_type_quals_to_decl (cp_type_quals (restype), resdecl);
}
/* Initialize RTL machinery. We cannot do this until
@@ -10029,9 +10192,14 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
parsing the body of the function. */
;
else
- /* Otherwise, OLDDECL is either a previous declaration of
- the same function or DECL1 itself. */
- decl1 = olddecl;
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ {
+ /* Otherwise, OLDDECL is either a previous declaration of
+ the same function or DECL1 itself. */
+ copy_func_cl_pf_opts_mapping (decl1, olddecl);
+ decl1 = olddecl;
+ }
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
}
else
{
@@ -10173,6 +10341,17 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
DECL_CONTEXT (cdtor_label) = current_function_decl;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ /* If this was a function declared as an assembly function, change
+ the state to expect to see C++ decls, possibly followed by assembly
+ code. */
+ if (DECL_CW_ASM_FUNCTION (current_function_decl))
+ {
+ cw_asm_state = cw_asm_decls;
+ cw_asm_in_decl = 0;
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
start_fname_decls ();
store_parm_decls (current_function_parms);
@@ -10210,6 +10389,12 @@ start_function (cp_decl_specifier_seq *declspecs,
if (global_scope_p (current_binding_level))
maybe_apply_pragma_weak (decl1);
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ /* Build a mapping between this decl and the per-function options in
+ effect at this point. */
+ record_func_cl_pf_opts_mapping (decl1);
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
if (DECL_MAIN_P (decl1))
/* main must return int. grokfndecl should have corrected it
(and issued a diagnostic) if the user got it wrong. */
@@ -10910,9 +11095,11 @@ complete_vars (tree type)
if (same_type_p (type, TREE_PURPOSE (*list)))
{
tree var = TREE_VALUE (*list);
+ tree type = TREE_TYPE (var);
/* Complete the type of the variable. The VAR_DECL itself
will be laid out in expand_expr. */
- complete_type (TREE_TYPE (var));
+ complete_type (type);
+ cp_apply_type_quals_to_decl (cp_type_quals (type), var);
/* Remove this entry from the list. */
*list = TREE_CHAIN (*list);
}
@@ -10938,6 +11125,25 @@ cxx_maybe_build_cleanup (tree decl)
tree rval;
bool has_vbases = (TREE_CODE (type) == RECORD_TYPE
&& CLASSTYPE_VBASECLASSES (type));
+ /* APPLE LOCAL begin KEXT double destructor */
+ special_function_kind dtor = sfk_complete_destructor;
+ if (flag_apple_kext
+ && has_apple_kext_compatibility_attr_p (type))
+ {
+ /* If we have a trivial operator delete (), we can go ahead and
+ just use the deleting destructor, sfk_deleting_destructor. */
+
+ if (! has_empty_operator_delete_p (type) || pedantic)
+ {
+ cp_warning_at ("'%D' is an instance of a class which does "
+ "not allow global or stack-based objects; it "
+ "does not have an empty `operator delete', and "
+ "so it will ** NOT ** be destructed.", decl);
+ return NULL_TREE;
+ }
+ dtor = sfk_deleting_destructor;
+ }
+ /* APPLE LOCAL end KEXT double destructor */
if (TREE_CODE (type) == ARRAY_TYPE)
rval = decl;
@@ -10952,7 +11158,8 @@ cxx_maybe_build_cleanup (tree decl)
flags |= LOOKUP_NONVIRTUAL;
rval = build_delete (TREE_TYPE (rval), rval,
- sfk_complete_destructor, flags, 0);
+ /* APPLE LOCAL KEXT double destructor */
+ dtor, flags, 0);
return rval;
}
@@ -11081,7 +11288,22 @@ cxx_comdat_group (tree decl)
/* For all other DECLs, the COMDAT group is the mangled name of the
declaration itself. */
else
- name = DECL_ASSEMBLER_NAME (decl);
+ {
+ while (DECL_THUNK_P (decl))
+ {
+ /* If TARGET_USE_LOCAL_THUNK_ALIAS_P, use_thunk puts the thunk
+ into the same section as the target function. In that case
+ we must return target's name. */
+ tree target = THUNK_TARGET (decl);
+ if (TARGET_USE_LOCAL_THUNK_ALIAS_P (target)
+ && DECL_SECTION_NAME (target) != NULL
+ && DECL_ONE_ONLY (target))
+ decl = target;
+ else
+ break;
+ }
+ name = DECL_ASSEMBLER_NAME (decl);
+ }
return IDENTIFIER_POINTER (name);
}
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index c7b04150e8f..d19b181aaa1 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -65,7 +65,6 @@ typedef struct priority_info_s {
static void mark_vtable_entries (tree);
static bool maybe_emit_vtables (tree);
-static tree build_anon_union_vars (tree);
static bool acceptable_java_type (tree);
static tree start_objects (int, int);
static void finish_objects (int, int, tree);
@@ -299,7 +298,7 @@ grokclassfn (tree ctype, tree function, enum overload_flags flags,
this_quals |= TYPE_QUAL_CONST;
qual_type = cp_build_qualified_type (type, this_quals);
parm = build_artificial_parm (this_identifier, qual_type);
- c_apply_type_quals_to_decl (this_quals, parm);
+ cp_apply_type_quals_to_decl (this_quals, parm);
TREE_CHAIN (parm) = DECL_ARGUMENTS (function);
DECL_ARGUMENTS (function) = parm;
}
@@ -878,7 +877,16 @@ grokfield (const cp_declarator *declarator,
value = push_template_decl (value);
if (attrlist)
- cplus_decl_attributes (&value, attrlist, 0);
+ {
+ /* Avoid storing attributes in template parameters:
+ tsubst is not ready to handle them. */
+ tree type = TREE_TYPE (value);
+ if (TREE_CODE (type) == TEMPLATE_TYPE_PARM
+ || TREE_CODE (type) == BOUND_TEMPLATE_TEMPLATE_PARM)
+ sorry ("applying attributes to template parameters is not implemented");
+ else
+ cplus_decl_attributes (&value, attrlist, 0);
+ }
return value;
}
@@ -1063,14 +1071,13 @@ cplus_decl_attributes (tree *decl, tree attributes, int flags)
SET_IDENTIFIER_TYPE_VALUE (DECL_NAME (*decl), TREE_TYPE (*decl));
}
-/* Walks through the namespace- or function-scope anonymous union OBJECT,
- building appropriate ALIAS_DECLs. Returns one of the fields for use in
- the mangled name. */
+/* Walks through the namespace- or function-scope anonymous union
+ OBJECT, with the indicated TYPE, building appropriate ALIAS_DECLs.
+ Returns one of the fields for use in the mangled name. */
static tree
-build_anon_union_vars (tree object)
+build_anon_union_vars (tree type, tree object)
{
- tree type = TREE_TYPE (object);
tree main_decl = NULL_TREE;
tree field;
@@ -1118,7 +1125,7 @@ build_anon_union_vars (tree object)
decl = pushdecl (decl);
}
else if (ANON_AGGR_TYPE_P (TREE_TYPE (field)))
- decl = build_anon_union_vars (ref);
+ decl = build_anon_union_vars (TREE_TYPE (field), ref);
else
decl = 0;
@@ -1158,7 +1165,7 @@ finish_anon_union (tree anon_union_decl)
return;
}
- main_decl = build_anon_union_vars (anon_union_decl);
+ main_decl = build_anon_union_vars (type, anon_union_decl);
if (main_decl == NULL_TREE)
{
warning ("anonymous union with no members");
@@ -1773,29 +1780,43 @@ import_export_decl (tree decl)
else if (CLASSTYPE_INTERFACE_KNOWN (type)
&& CLASSTYPE_INTERFACE_ONLY (type))
import_p = true;
- else if (TARGET_WEAK_NOT_IN_ARCHIVE_TOC
+ else if ((!flag_weak || TARGET_WEAK_NOT_IN_ARCHIVE_TOC)
&& !CLASSTYPE_USE_TEMPLATE (type)
&& CLASSTYPE_KEY_METHOD (type)
&& !DECL_DECLARED_INLINE_P (CLASSTYPE_KEY_METHOD (type)))
/* The ABI requires that all virtual tables be emitted with
COMDAT linkage. However, on systems where COMDAT symbols
don't show up in the table of contents for a static
- archive, the linker will report errors about undefined
- symbols because it will not see the virtual table
- definition. Therefore, in the case that we know that the
- virtual table will be emitted in only one translation
- unit, we make the virtual table an ordinary definition
- with external linkage. */
+ archive, or on systems without weak symbols (where we
+ approximate COMDAT linkage by using internal linkage), the
+ linker will report errors about undefined symbols because
+ it will not see the virtual table definition. Therefore,
+ in the case that we know that the virtual table will be
+ emitted in only one translation unit, we make the virtual
+ table an ordinary definition with external linkage. */
DECL_EXTERNAL (decl) = 0;
else if (CLASSTYPE_INTERFACE_KNOWN (type))
{
/* TYPE is being exported from this translation unit, so DECL
- should be defined here. The ABI requires COMDAT
- linkage. Normally, we only emit COMDAT things when they
- are needed; make sure that we realize that this entity is
- indeed needed. */
- comdat_p = true;
- mark_needed (decl);
+ should be defined here. */
+ if (!flag_weak && CLASSTYPE_EXPLICIT_INSTANTIATION (type))
+ /* If a class is declared in a header with the "extern
+ template" extension, then it will not be instantiated,
+ even in translation units that would normally require
+ it. Often such classes are explicitly instantiated in
+ one translation unit. Therefore, the explicit
+ instantiation must be made visible to other translation
+ units. */
+ DECL_EXTERNAL (decl) = 0;
+ else
+ {
+ /* The ABI requires COMDAT linkage. Normally, we only
+ emit COMDAT things when they are needed; make sure
+ that we realize that this entity is indeed
+ needed. */
+ comdat_p = true;
+ mark_needed (decl);
+ }
}
else if (!flag_implicit_templates
&& CLASSTYPE_IMPLICIT_INSTANTIATION (type))
@@ -1823,7 +1844,14 @@ import_export_decl (tree decl)
comdat_p = true;
if (CLASSTYPE_INTERFACE_KNOWN (type)
&& !CLASSTYPE_INTERFACE_ONLY (type))
- mark_needed (decl);
+ {
+ mark_needed (decl);
+ if (!flag_weak)
+ {
+ comdat_p = false;
+ DECL_EXTERNAL (decl) = 0;
+ }
+ }
}
}
else
@@ -2069,6 +2097,14 @@ start_objects (int method_type, int initp)
DECL_GLOBAL_DTOR_P (current_function_decl) = 1;
DECL_LANG_SPECIFIC (current_function_decl)->decl_flags.u2sel = 1;
+ /* APPLE LOCAL begin static structors in __StaticInit section */
+#ifdef STATIC_INIT_SECTION
+ if ( ! flag_apple_kext)
+ DECL_SECTION_NAME (current_function_decl) =
+ build_string (strlen (STATIC_INIT_SECTION), STATIC_INIT_SECTION);
+#endif
+ /* APPLE LOCAL end static structors in __StaticInit section */
+
body = begin_compound_stmt (BCS_FN_BODY);
/* We cannot allow these functions to be elided, even if they do not
@@ -2175,6 +2211,14 @@ start_static_storage_duration_function (unsigned count)
TREE_PUBLIC (ssdf_decl) = 0;
DECL_ARTIFICIAL (ssdf_decl) = 1;
+ /* APPLE LOCAL begin static structors in __StaticInit section */
+#ifdef STATIC_INIT_SECTION
+ if ( ! flag_apple_kext)
+ DECL_SECTION_NAME (ssdf_decl) = build_string (strlen (STATIC_INIT_SECTION),
+ STATIC_INIT_SECTION);
+#endif
+ /* APPLE LOCAL end static structors in __StaticInit section */
+
/* Put this function in the list of functions to be called from the
static constructors and destructors. */
if (!ssdf_decls)
@@ -2430,7 +2474,7 @@ do_static_initialization (tree decl, tree init)
if (init)
finish_expr_stmt (init);
- /* If we're using __cxa_atexit, register a a function that calls the
+ /* If we're using __cxa_atexit, register a function that calls the
destructor for the object. */
if (flag_use_cxa_atexit)
finish_expr_stmt (register_dtor_fn (decl));
@@ -2569,6 +2613,17 @@ generate_ctor_or_dtor_function (bool constructor_p, int priority,
global constructors and destructors. */
body = NULL_TREE;
+ /* APPLE LOCAL begin mainline */
+ /* For Objective-C++, we may need to initialize metadata found in this module.
+ This must be done _before_ any other static initializations. */
+ if (c_dialect_objc () && (priority == DEFAULT_INIT_PRIORITY)
+ && constructor_p && objc_static_init_needed_p ())
+ {
+ body = start_objects (function_key, priority);
+ static_ctors = objc_generate_static_init_call (static_ctors);
+ }
+ /* APPLE LOCAL end mainline */
+
/* Call the static storage duration function with appropriate
arguments. */
if (ssdf_decls)
@@ -2711,6 +2766,10 @@ cp_finish_file (void)
if (! global_bindings_p () || current_class_type || decl_namespace_list)
return;
+ /* APPLE LOCAL begin 4133801 */
+ cp_flush_lexer_file_stack ();
+ /* APPLE LOCAL end 4133801 */
+
if (pch_file)
c_common_write_pch ();
@@ -2943,6 +3002,22 @@ cp_finish_file (void)
back end. */
if (DECL_NOT_REALLY_EXTERN (decl) && decl_needed_p (decl))
DECL_EXTERNAL (decl) = 0;
+ /* APPLE LOCAL begin write used class statics 20020226 --turly */
+#ifdef MACHOPIC_VAR_REFERRED_TO_P
+ else
+ if (TREE_USED (decl) && DECL_INITIAL (decl) != 0
+ && DECL_INITIAL (decl) != error_mark_node
+ && TREE_CODE (DECL_INITIAL (decl)) != CONSTRUCTOR
+ && DECL_EXTERNAL (decl)
+ && MACHOPIC_VAR_REFERRED_TO_P (IDENTIFIER_POINTER (
+ DECL_ASSEMBLER_NAME (decl))))
+ {
+ /* Force a local copy of this decl to be written. */
+ DECL_EXTERNAL (decl) = 0;
+ TREE_PUBLIC (decl) = 0;
+ }
+#endif
+ /* APPLE LOCAL end write used class statics 20020226 --turly */
}
if (pending_statics
&& wrapup_global_declarations (&VARRAY_TREE (pending_statics, 0),
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index ec332f2273b..c53e0328cd0 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1,7 +1,7 @@
/* Call-backs for C++ error reporting.
This code is non-reentrant.
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
- 2003, 2004 Free Software Foundation, Inc.
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
@@ -613,6 +613,8 @@ dump_type_suffix (tree t, int flags)
if (TREE_CODE (t) == METHOD_TYPE)
pp_cxx_cv_qualifier_seq
(cxx_pp, TREE_TYPE (TREE_VALUE (TYPE_ARG_TYPES (t))));
+ else
+ pp_cxx_cv_qualifier_seq(cxx_pp, t);
dump_exception_spec (TYPE_RAISES_EXCEPTIONS (t), flags);
dump_type_suffix (TREE_TYPE (t), flags);
break;
@@ -1813,18 +1815,14 @@ dump_expr (tree t, int flags)
dump_decl (t, flags);
break;
+ case BIND_EXPR:
case STMT_EXPR:
+ case STATEMENT_LIST:
/* We don't yet have a way of dumping statements in a
human-readable format. */
pp_string (cxx_pp, "({...})");
break;
- case BIND_EXPR:
- pp_cxx_left_brace (cxx_pp);
- dump_expr (TREE_OPERAND (t, 1), flags & ~TFF_EXPR_IN_PARENS);
- pp_cxx_right_brace (cxx_pp);
- break;
-
case LOOP_EXPR:
pp_string (cxx_pp, "while (1) { ");
dump_expr (TREE_OPERAND (t, 0), flags & ~TFF_EXPR_IN_PARENS);
@@ -2203,7 +2201,7 @@ print_instantiation_full_context (diagnostic_context *context)
else
{
if (current_function_decl == TINST_DECL (p))
- /* Avoid redundancy with the the "In function" line. */;
+ /* Avoid redundancy with the "In function" line. */;
else
pp_verbatim (context->printer,
"%s: In instantiation of %qs:\n",
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index 4a0ccb913b9..cd815ce4bf2 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -153,6 +153,9 @@ build_exc_ptr (void)
return build0 (EXC_PTR_EXPR, ptr_type_node);
}
+/* APPLE LOCAL 4093536 */
+/* Remove do_get_exception_ptr() function. */
+
/* Build up a call to __cxa_begin_catch, to tell the runtime that the
exception has been handled. */
@@ -378,6 +381,8 @@ initialize_handler_parm (tree decl, tree exp)
/* Call this to start a catch block. DECL is the catch parameter. */
+/* APPLE LOCAL begin 4093536 */
+/* Undo PR 10606 */
tree
expand_start_catch_block (tree decl)
{
@@ -439,7 +444,7 @@ expand_start_catch_block (tree decl)
return type;
}
-
+/* APPLE LOCAL end 4093536 */
/* Call this to end a catch block. Its responsible for emitting the
code to handle jumping back to the correct place, and for emitting
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 4ad5e62c4ac..be3ba621f9b 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -655,6 +655,11 @@ sort_mem_initializers (tree t, tree mem_inits)
void
emit_mem_initializers (tree mem_inits)
{
+ /* We will already have issued an error message about the fact that
+ the type is incomplete. */
+ if (!COMPLETE_TYPE_P (current_class_type))
+ return;
+
/* Sort the mem-initializers into the order in which the
initializations should be performed. */
mem_inits = sort_mem_initializers (current_class_type, mem_inits);
@@ -1417,14 +1422,6 @@ build_offset_ref (tree type, tree name, bool address_p)
return error_mark_node;
}
- if (processing_template_decl)
- {
- if (TREE_CODE (orig_name) == TEMPLATE_ID_EXPR)
- return build_min (SCOPE_REF, TREE_TYPE (member), type, orig_name);
- else
- return build_min (SCOPE_REF, TREE_TYPE (member), type, name);
- }
-
if (TREE_CODE (member) == TYPE_DECL)
{
TREE_USED (member) = 1;
@@ -1554,9 +1551,6 @@ build_offset_ref (tree type, tree name, bool address_p)
return member;
}
- /* In member functions, the form `type::name' is no longer
- equivalent to `this->type::name', at least not until
- resolve_offset_ref. */
member = build2 (OFFSET_REF, TREE_TYPE (member), decl, member);
PTRMEM_OK_P (member) = 1;
return member;
@@ -1570,17 +1564,17 @@ build_offset_ref (tree type, tree name, bool address_p)
tree
integral_constant_value (tree decl)
{
- if ((TREE_CODE (decl) == CONST_DECL
- || (TREE_CODE (decl) == VAR_DECL
- /* And so are variables with a 'const' type -- unless they
- are also 'volatile'. */
- && CP_TYPE_CONST_NON_VOLATILE_P (TREE_TYPE (decl))
- && DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)))
- && DECL_INITIAL (decl)
- && DECL_INITIAL (decl) != error_mark_node
- && TREE_TYPE (DECL_INITIAL (decl))
- && INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (decl)))
- return DECL_INITIAL (decl);
+ while ((TREE_CODE (decl) == CONST_DECL
+ || (TREE_CODE (decl) == VAR_DECL
+ /* And so are variables with a 'const' type -- unless they
+ are also 'volatile'. */
+ && CP_TYPE_CONST_NON_VOLATILE_P (TREE_TYPE (decl))
+ && DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)))
+ && DECL_INITIAL (decl)
+ && DECL_INITIAL (decl) != error_mark_node
+ && TREE_TYPE (DECL_INITIAL (decl))
+ && INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (decl)))
+ decl = DECL_INITIAL (decl);
return decl;
}
@@ -1762,7 +1756,7 @@ build_new_1 (tree exp)
from ELT_TYPE for a multi-dimensional array; ELT_TYPE is never an
ARRAY_TYPE, but TYPE may be an ARRAY_TYPE. */
tree type;
- /* A pointer type pointing to to the FULL_TYPE. */
+ /* A pointer type pointing to the FULL_TYPE. */
tree full_pointer_type;
tree outer_nelts = NULL_TREE;
tree nelts = NULL_TREE;
@@ -2396,6 +2390,9 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
tree atype = TREE_TYPE (base);
/* The type of an element in the array. */
tree type = TREE_TYPE (atype);
+ /* The element type reached after removing all outer array
+ types. */
+ tree inner_elt_type;
/* The type of a pointer to an element in the array. */
tree ptype;
tree stmt_expr;
@@ -2411,15 +2408,17 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
if (maxindex == NULL_TREE || maxindex == error_mark_node)
return error_mark_node;
+ inner_elt_type = strip_array_types (atype);
if (init
&& (from_array == 2
- ? (!CLASS_TYPE_P (type) || !TYPE_HAS_COMPLEX_ASSIGN_REF (type))
+ ? (!CLASS_TYPE_P (inner_elt_type)
+ || !TYPE_HAS_COMPLEX_ASSIGN_REF (inner_elt_type))
: !TYPE_NEEDS_CONSTRUCTING (type))
&& ((TREE_CODE (init) == CONSTRUCTOR
/* Don't do this if the CONSTRUCTOR might contain something
that might throw and require us to clean up. */
&& (CONSTRUCTOR_ELTS (init) == NULL_TREE
- || ! TYPE_HAS_NONTRIVIAL_DESTRUCTOR (target_type (type))))
+ || ! TYPE_HAS_NONTRIVIAL_DESTRUCTOR (inner_elt_type)))
|| from_array))
{
/* Do non-default initialization of POD arrays resulting from
@@ -2610,14 +2609,12 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
/* Flatten multi-dimensional array since build_vec_delete only
expects one-dimensional array. */
if (TREE_CODE (type) == ARRAY_TYPE)
- {
- m = cp_build_binary_op (MULT_EXPR, m,
- array_type_nelts_total (type));
- type = strip_array_types (type);
- }
+ m = cp_build_binary_op (MULT_EXPR, m,
+ array_type_nelts_total (type));
finish_cleanup_try_block (try_block);
- e = build_vec_delete_1 (rval, m, type, sfk_base_destructor,
+ e = build_vec_delete_1 (rval, m,
+ inner_elt_type, sfk_base_destructor,
/*use_global_delete=*/0);
finish_cleanup (e, try_block);
}
@@ -2837,6 +2834,16 @@ build_delete (tree type, tree addr, special_function_kind auto_delete,
build_op_delete_call (DELETE_EXPR, addr, cxx_sizeof_nowarn (type),
/*global_p=*/false, NULL_TREE);
}
+ /* APPLE LOCAL begin KEXT double destructor --matt 20020501 */
+ /* If we're compiling a class in kext compatibility mode we
+ don't have a non-deleting destructor, so we unconditionally
+ generate a reference to the deleting variety. */
+ if (flag_apple_kext && has_apple_kext_compatibility_attr_p (type))
+ {
+ gcc_assert (auto_delete != sfk_base_destructor);
+ auto_delete = sfk_deleting_destructor;
+ }
+ /* APPLE LOCAL end KEXT double destructor --matt 20020501 */
expr = build_dtor_call (build_indirect_ref (addr, NULL),
auto_delete, flags);
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
index 9adda3d5edd..87c3d7a0904 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -43,10 +43,13 @@ Boston, MA 02111-1307, USA. */
cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
%{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
%(cc1_options) %2 %{+e1*}\
- -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
+ "/* APPLE LOCAL ss2 */" \
+ -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*} %{fsave-repository=*: \n as -o %w%* %g.s %A}%V}}}",
CPLUSPLUS_CPP_SPEC, 0, 0},
{"@c++",
"%{E|M|MM:cc1plus -E %(cpp_options) %2 %(cpp_debug_options)}\
+ "/* APPLE LOCAL prohibit -arch with -E and -S */"\
+ %{E|S:%{@:%e-E and -S are not allowed with multiple -arch flags}}\
%{!E:%{!M:%{!MM:\
%{save-temps|no-integrated-cpp:cc1plus -E\
%(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 6074fef9ea1..41f354efaa7 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -175,6 +175,8 @@ struct resword
_true_. */
#define D_EXT 0x01 /* GCC extension */
#define D_ASM 0x02 /* in C99, but has a switch to turn it off */
+/* APPLE LOCAL mainline */
+#define D_OBJC 0x08 /* Objective C++ only */
CONSTRAINT(ridbits_fit, RID_LAST_MODIFIER < sizeof(unsigned long) * CHAR_BIT);
@@ -203,6 +205,8 @@ static const struct resword reswords[] =
{ "__inline__", RID_INLINE, 0 },
{ "__label__", RID_LABEL, 0 },
{ "__null", RID_NULL, 0 },
+ /* APPLE LOCAL private extern */
+ { "__private_extern__", RID_PRIVATE_EXTERN, 0 },
{ "__real", RID_REALPART, 0 },
{ "__real__", RID_REALPART, 0 },
{ "__restrict", RID_RESTRICT, 0 },
@@ -279,6 +283,33 @@ static const struct resword reswords[] =
{ "wchar_t", RID_WCHAR, 0 },
{ "while", RID_WHILE, 0 },
+ /* APPLE LOCAL begin mainline */
+ /* The remaining keywords are specific to Objective-C++. NB:
+ All of them will remain _disabled_, since they are context-
+ sensitive. */
+
+ /* These ObjC keywords are recognized only immediately after
+ an '@'. NB: The following C++ keywords double as
+ ObjC keywords in this context: RID_CLASS, RID_PRIVATE,
+ RID_PROTECTED, RID_PUBLIC, RID_THROW, RID_TRY and RID_CATCH. */
+ { "compatibility_alias", RID_AT_ALIAS, D_OBJC },
+ { "defs", RID_AT_DEFS, D_OBJC },
+ { "encode", RID_AT_ENCODE, D_OBJC },
+ { "end", RID_AT_END, D_OBJC },
+ { "implementation", RID_AT_IMPLEMENTATION, D_OBJC },
+ { "interface", RID_AT_INTERFACE, D_OBJC },
+ { "protocol", RID_AT_PROTOCOL, D_OBJC },
+ { "selector", RID_AT_SELECTOR, D_OBJC },
+ { "finally", RID_AT_FINALLY, D_OBJC },
+ { "synchronized", RID_AT_SYNCHRONIZED, D_OBJC },
+ /* These are recognized only in protocol-qualifier context. */
+ { "bycopy", RID_BYCOPY, D_OBJC },
+ { "byref", RID_BYREF, D_OBJC },
+ { "in", RID_IN, D_OBJC },
+ { "inout", RID_INOUT, D_OBJC },
+ { "oneway", RID_ONEWAY, D_OBJC },
+ { "out", RID_OUT, D_OBJC },
+ /* APPLE LOCAL end mainline */
};
void
@@ -287,6 +318,8 @@ init_reswords (void)
unsigned int i;
tree id;
int mask = ((flag_no_asm ? D_ASM : 0)
+ /* APPLE LOCAL mainline */
+ | D_OBJC
| (flag_no_gnu_keywords ? D_EXT : 0));
ridpointers = ggc_calloc ((int) RID_MAX, sizeof (tree));
@@ -298,6 +331,25 @@ init_reswords (void)
if (! (reswords[i].disable & mask))
C_IS_RESERVED_WORD (id) = 1;
}
+
+ /* APPLE LOCAL begin private extern Radar 2872481 --ilr */
+ /* For C++ there is always a -D__private_extern__=extern on the
+ command line. However, if -fpreprocessed was specified then
+ macros are not expanded so the -D is meaningless. But this
+ replacement is required for C++. There for we have to "pretend"
+ that '__private_extern__' is 'extern' and we can do this simply by
+ making the rid code for '__private_extern__' be the same as for
+ extern. Note, we probably could always do this here since
+ '__private_extern__' is always to be treated like 'extern' for
+ c++. But we'll be conservative and only do it when -fpreprocessed
+ is specified and depend on the macro substitution in all other
+ cases. */
+ if (flag_preprocessed)
+ {
+ id = get_identifier ("__private_extern__");
+ C_RID_CODE (id) = RID_EXTERN;
+ }
+ /* APPLE LOCAL end private extern Radar 2872481 --ilr */
}
static void
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index eb9f8f075a2..58491ada079 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1367,15 +1367,19 @@ write_identifier (const char *identifier)
Currently, allocating constructors are never used.
- We also need to provide mangled names for the maybe-in-charge
- constructor, so we treat it here too. mangle_decl_string will
- append *INTERNAL* to that, to make sure we never emit it. */
+ APPLE LOCAL decloning
+ Deleted comment. */
static void
write_special_name_constructor (const tree ctor)
{
if (DECL_BASE_CONSTRUCTOR_P (ctor))
write_string ("C2");
+ /* APPLE LOCAL begin decloning */
+ /* This is the old-style "[unified]" constructor. */
+ else if (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (ctor))
+ write_string ("C4");
+ /* APPLE LOCAL end decloning */
else
{
gcc_assert (DECL_COMPLETE_CONSTRUCTOR_P (ctor)
@@ -1406,6 +1410,11 @@ write_special_name_destructor (const tree dtor)
write_string ("D0");
else if (DECL_BASE_DESTRUCTOR_P (dtor))
write_string ("D2");
+ /* APPLE LOCAL begin decloning */
+ else if (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (dtor))
+ /* This is the old-style "[unified]" destructor. */
+ write_string ("D4");
+ /* APPLE LOCAL end decloning */
else
{
gcc_assert (DECL_COMPLETE_DESTRUCTOR_P (dtor)
@@ -2230,7 +2239,7 @@ write_template_arg (tree node)
MANGLE_TRACE_TREE ("template-arg", node);
/* A template template parameter's argument list contains TREE_LIST
- nodes of which the value field is the the actual argument. */
+ nodes of which the value field is the actual argument. */
if (code == TREE_LIST)
{
node = TREE_VALUE (node);
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 85e2b3f8787..7a99c262471 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -328,6 +328,10 @@ use_thunk (tree thunk_fndecl, bool emit_p)
There's no need to process this thunk again. */
return;
+ if (DECL_THUNK_P (function))
+ /* The target is itself a thunk, process it now. */
+ use_thunk (function, emit_p);
+
/* Thunks are always addressable; they only appear in vtables. */
TREE_ADDRESSABLE (thunk_fndecl) = 1;
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 7d944d05451..accd35210ec 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -1875,7 +1875,8 @@ push_overloaded_decl (tree decl, int flags)
if (TREE_CODE (tmp) == OVERLOAD && OVL_USED (tmp)
&& !(flags & PUSH_USING)
&& compparms (TYPE_ARG_TYPES (TREE_TYPE (fn)),
- TYPE_ARG_TYPES (TREE_TYPE (decl))))
+ TYPE_ARG_TYPES (TREE_TYPE (decl)))
+ && ! decls_match (fn, decl))
error ("%q#D conflicts with previous using declaration %q#D",
decl, fn);
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 7ccfaffbf0d..06e30e5055e 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -46,6 +46,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Prototypes. */
static void update_cloned_parm (tree, tree);
+/* APPLE LOCAL begin structor thunks */
+static int maybe_alias_body (tree fn, tree clone);
+static int maybe_thunk_body (tree fn);
+/* APPLE LOCAL end structor thunks */
/* CLONED_PARM is a copy of CLONE, generated for a cloned constructor
or destructor. Update it to ensure that the source-position for
@@ -70,6 +74,166 @@ update_cloned_parm (tree parm, tree cloned_parm)
DECL_SOURCE_LOCATION (cloned_parm) = DECL_SOURCE_LOCATION (parm);
}
+/* APPLE LOCAL begin structor thunks */
+/* FN is a constructor or destructor, and there are FUNCTION_DECLs cloned from it nearby.
+ If the clone and the original funciton have identical parameter lists,
+ it is a fully-degenerate (does absolutely nothing) thunk.
+ Make the clone an alias for the original function label. */
+static int
+maybe_alias_body (tree fn ATTRIBUTE_UNUSED, tree clone ATTRIBUTE_UNUSED)
+{
+ extern FILE *asm_out_file ATTRIBUTE_UNUSED;
+
+#ifdef ASM_MAYBE_ALIAS_BODY
+ ASM_MAYBE_ALIAS_BODY (asm_out_file, fn, clone);
+#endif
+ return 0;
+}
+
+/* FN is a constructor or destructor, and there are FUNCTION_DECLs
+ cloned from it nearby. Instead of cloning this body, leave it
+ alone and create tiny one-call bodies for the cloned
+ FUNCTION_DECLs. These clones are sibcall candidates, and their
+ resulting code will be very thunk-esque. */
+static int
+maybe_thunk_body (tree fn)
+{
+ tree call, clone, expr_stmt, fn_parm, fn_parm_typelist, last_arg, start;
+ int parmno, vtt_parmno;
+
+ /* APPLE LOCAL disable de-cloner */
+ if (TRUE || flag_apple_kext || flag_clone_structors)
+ return 0;
+
+ /* If we've already seen this structor, avoid re-processing it. */
+ if (TREE_ASM_WRITTEN (fn))
+ return 1;
+
+ /* If function accepts variable arguments, give up. */
+ last_arg = tree_last (TYPE_ARG_TYPES (TREE_TYPE (fn)));
+ if ( ! VOID_TYPE_P (TREE_VALUE (last_arg)))
+ return 0;
+
+ /* If constructor expects vector (AltiVec) arguments, give up. */
+ for (fn_parm = DECL_ARGUMENTS( fn); fn_parm; fn_parm = TREE_CHAIN (fn_parm))
+ if (TREE_CODE (fn_parm) == VECTOR_TYPE)
+ return 0;
+
+ /* If we don't see a clone, nothing to do. */
+ clone = TREE_CHAIN (fn);
+ if (!clone || ! DECL_CLONED_FUNCTION_P (clone))
+ return 0;
+
+ /* This is only a win if there are two or more clones. */
+ if ( ! TREE_CHAIN (clone))
+ return 0;
+
+ /* Only thunk-ify non-trivial structors. */
+ if (DECL_ESTIMATED_INSNS (fn) < 5)
+ return 0;
+
+ /* If we got this far, we've decided to turn the clones into thunks. */
+
+ /* We're going to generate code for fn, so it is no longer "abstract." */
+ /* APPLE LOCAL begin fix -gused debug info (radar 3271957 3262497) */
+ /* Leave 'abstract' bit set for unified constructs and destructors when
+ -gused is used. */
+ if (!(flag_debug_only_used_symbols
+ && DECL_DESTRUCTOR_P (fn)
+ && DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (fn))
+ && !(flag_debug_only_used_symbols
+ && DECL_CONSTRUCTOR_P (fn)
+ && DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (fn))
+ )
+ DECL_ABSTRACT (fn) = 0;
+ /* APPLE LOCAL end */
+
+ /* Find the vtt_parm, if present. */
+ for (vtt_parmno = -1, parmno = 0, fn_parm = DECL_ARGUMENTS (fn);
+ fn_parm;
+ ++parmno, fn_parm = TREE_CHAIN (fn_parm))
+ {
+ if (DECL_ARTIFICIAL (fn_parm) && DECL_NAME (fn_parm) == vtt_parm_identifier)
+ {
+ vtt_parmno = parmno; /* Compensate for removed in_charge parameter. */
+ break;
+ }
+ }
+
+ /* We know that any clones immediately follow FN in the TYPE_METHODS
+ list. */
+ for (clone = start = TREE_CHAIN (fn);
+ clone && DECL_CLONED_FUNCTION_P (clone);
+ clone = TREE_CHAIN (clone))
+ {
+ tree clone_parm, parmlist;
+
+ /* If the clone and original parmlists are identical, turn the clone into an alias. */
+ if (maybe_alias_body (fn, clone))
+ continue;
+
+ /* If we've already generated a body for this clone, avoid duplicating it.
+ (Is it possible for a clone-list to grow after we first see it?) */
+ if (DECL_SAVED_TREE (clone) || TREE_ASM_WRITTEN (clone))
+ continue;
+
+ /* Start processing the function. */
+ push_to_top_level ();
+ start_preparsed_function (clone, NULL_TREE, SF_PRE_PARSED);
+
+ /* Walk parameter lists together, creating parameter list for call to original function. */
+ for (parmno = 0,
+ parmlist = NULL,
+ fn_parm = DECL_ARGUMENTS (fn),
+ fn_parm_typelist = TYPE_ARG_TYPES (TREE_TYPE (fn)),
+ clone_parm = DECL_ARGUMENTS (clone);
+ fn_parm;
+ ++parmno,
+ fn_parm = TREE_CHAIN (fn_parm))
+ {
+ if (parmno == vtt_parmno && ! DECL_HAS_VTT_PARM_P (clone))
+ {
+ tree typed_null_pointer_node = copy_node (null_pointer_node);
+ gcc_assert (fn_parm_typelist);
+ /* Clobber actual parameter with formal parameter type. */
+ TREE_TYPE (typed_null_pointer_node) = TREE_VALUE (fn_parm_typelist);
+ parmlist = tree_cons (NULL, typed_null_pointer_node, parmlist);
+ }
+ else if (parmno == 1 && DECL_HAS_IN_CHARGE_PARM_P (fn))
+ {
+ tree in_charge = copy_node (in_charge_arg_for_name (DECL_NAME (clone)));
+ parmlist = tree_cons (NULL, in_charge, parmlist);
+ }
+ /* Map other parameters to their equivalents in the cloned
+ function. */
+ else
+ {
+ gcc_assert (clone_parm);
+ DECL_ABSTRACT_ORIGIN (clone_parm) = NULL;
+ parmlist = tree_cons (NULL, clone_parm, parmlist);
+ clone_parm = TREE_CHAIN (clone_parm);
+ }
+ if (fn_parm_typelist)
+ fn_parm_typelist = TREE_CHAIN (fn_parm_typelist);
+ }
+
+ /* We built this list backwards; fix now. */
+ parmlist = nreverse (parmlist);
+ mark_used (fn);
+ call = build_function_call (fn, parmlist);
+ expr_stmt = build_stmt (EXPR_STMT, call);
+ add_stmt (expr_stmt);
+
+ /* Now, expand this function into RTL, if appropriate. */
+ finish_function (0);
+ DECL_ABSTRACT_ORIGIN (clone) = NULL;
+ expand_body (clone);
+ pop_from_top_level ();
+ }
+ return 1;
+}
+/* APPLE LOCAL end structor thunks */
+
/* FN is a function that has a complete body. Clone the body as
necessary. Returns nonzero if there's no longer any need to
process the main body. */
@@ -94,8 +258,8 @@ maybe_clone_body (tree fn)
{
tree parm;
tree clone_parm;
- int parmno;
- splay_tree decl_map;
+ /* APPLE LOCAL structor thunks */
+ /* Delete some local variables. */
/* Update CLONE's source position information to match FN's. */
DECL_SOURCE_LOCATION (clone) = DECL_SOURCE_LOCATION (fn);
@@ -130,6 +294,28 @@ maybe_clone_body (tree fn)
parm = TREE_CHAIN (parm), clone_parm = TREE_CHAIN (clone_parm))
/* Update this parameter. */
update_cloned_parm (parm, clone_parm);
+ /* APPLE LOCAL structor thunks */
+ }
+
+ /* APPLE LOCAL begin structor thunks */
+ /* If we decide to turn clones into thunks, they will branch to fn.
+ Must have original function available to call. */
+ if (maybe_thunk_body (fn))
+ return 0;
+ /* APPLE LOCAL end structor thunks */
+
+ /* APPLE LOCAL begin structor thunks */
+ /* We know that any clones immediately follow FN in the TYPE_METHODS
+ list. */
+ for (clone = TREE_CHAIN (fn);
+ clone && DECL_CLONED_FUNCTION_P (clone);
+ clone = TREE_CHAIN (clone))
+ {
+ tree parm;
+ tree clone_parm;
+ int parmno;
+ splay_tree decl_map;
+ /* APPLE LOCAL end structor thunks */
/* Start processing the function. */
start_preparsed_function (clone, NULL_TREE, SF_PRE_PARSED);
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index f38f6fbc78f..47be9306a05 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -36,6 +36,12 @@
#include "toplev.h"
#include "output.h"
#include "target.h"
+/* APPLE LOCAL 4133801 */
+#include "debug.h"
+/* APPLE LOCAL mainline */
+#include "c-common.h"
+/* APPLE LOCAL pascal strings */
+#include "../../libcpp/internal.h"
/* The lexer. */
@@ -128,6 +134,35 @@ typedef struct cp_token_cache GTY(())
cp_token * GTY ((skip)) last;
} cp_token_cache;
+/* APPLE LOCAL begin 4133801 */
+typedef enum cp_file_entry_kind
+ {
+ CP_FILE_BEGIN = 0,
+ CP_FILE_END
+ } cp_file_entry_kind;
+
+/* cp_lexer_file is a collection of file begins (and ends) observed
+ by lexer while collecting tokens for arser. */
+
+typedef struct cp_lexer_file
+{
+ enum cp_file_entry_kind kind;
+
+ /* line number and file names */
+ int line;
+ const char *file;
+
+ struct cp_lexer_file *next;
+} cp_lexer_file;
+
+static cp_lexer_file *cp_lexer_file_stack;
+static cp_lexer_file *last_cp_lexer_file;
+
+static void cp_add_lexer_file (int, const char *, cp_file_entry_kind);
+static void cp_lexer_copy_token (cp_token *, cp_token *);
+static void cp_parser_bincl_eincl (cp_lexer *lexer);
+/* APPLE LOCAL end 4133801 */
+
/* Prototypes. */
static cp_lexer *cp_lexer_new_main
@@ -270,10 +305,60 @@ cp_lexer_new_main (void)
space = alloc;
pos = buffer;
*pos = first_token;
-
+
+ /* APPLE LOCAL begin 4133801 */
/* Get the remaining tokens from the preprocessor. */
while (pos->type != CPP_EOF)
{
+
+ /* Insert CP_BINCL/CP_EINCL tokens if file begin/end is already seen. */
+ if (cp_lexer_file_stack)
+ {
+ cp_token saved_pos;
+ cp_lexer_file *tmp;
+ cp_lexer_file *fs = cp_lexer_file_stack;
+
+ /* Copy position content, so that it added into to the next position
+ afterwards. */
+ cp_lexer_copy_token (&saved_pos, pos);
+
+ while (fs)
+ {
+ /* Create new CP_BINCL/CP_EINCL token. */
+ LOCATION_FILE (pos->location) = fs->file;
+ LOCATION_LINE (pos->location) = fs->line;
+ pos->keyword = 0;
+ pos->in_system_header = 0;
+ pos->implicit_extern_c = 0;
+ pos->value = NULL_TREE;
+ if (fs->kind == CP_FILE_BEGIN)
+ pos->type = CPP_BINCL;
+ else
+ pos->type = CPP_EINCL;
+
+ /* Free this file entry. */
+ tmp = fs;
+ fs = fs->next;
+ tmp = NULL;
+ pos++;
+ if (!--space)
+ {
+ space = alloc;
+ alloc *= 2;
+ buffer = ggc_realloc (buffer, alloc * sizeof (cp_token));
+ pos = buffer + space;
+ }
+
+ }
+
+ /* Free file stack entirely. */
+ last_cp_lexer_file = NULL;
+ cp_lexer_file_stack = NULL;
+
+ /* Restore saved position. */
+ cp_lexer_copy_token (pos, &saved_pos);
+ }
+
pos++;
if (!--space)
{
@@ -284,6 +369,7 @@ cp_lexer_new_main (void)
}
cp_lexer_get_preprocessor_token (lexer, pos);
}
+ /* APPLE LOCAL end 4133801 */
lexer->buffer = buffer;
lexer->buffer_length = alloc - space;
lexer->last_token = pos;
@@ -405,6 +491,25 @@ cp_lexer_get_preprocessor_token (cp_lexer *lexer ATTRIBUTE_UNUSED ,
mapped to `const'. */
token->value = ridpointers[token->keyword];
}
+ /* APPLE LOCAL begin mainline */
+ /* Handle Objective-C++ keywords. */
+ else if (token->type == CPP_AT_NAME)
+ {
+ token->type = CPP_KEYWORD;
+ switch (C_RID_CODE (token->value))
+ {
+ /* Map 'class' to '@class', 'private' to '@private', etc. */
+ case RID_CLASS: token->keyword = RID_AT_CLASS; break;
+ case RID_PRIVATE: token->keyword = RID_AT_PRIVATE; break;
+ case RID_PROTECTED: token->keyword = RID_AT_PROTECTED; break;
+ case RID_PUBLIC: token->keyword = RID_AT_PUBLIC; break;
+ case RID_THROW: token->keyword = RID_AT_THROW; break;
+ case RID_TRY: token->keyword = RID_AT_TRY; break;
+ case RID_CATCH: token->keyword = RID_AT_CATCH; break;
+ default: token->keyword = C_RID_CODE (token->value);
+ }
+ }
+ /* APPLE LOCAL end mainline */
else
token->keyword = RID_MAX;
}
@@ -432,6 +537,11 @@ cp_lexer_peek_token (cp_lexer *lexer)
cp_lexer_print_token (cp_lexer_debug_stream, lexer->next_token);
putc ('\n', cp_lexer_debug_stream);
}
+
+ /* APPLE LOCAL begin 4133801 */
+ cp_parser_bincl_eincl (lexer);
+ /* APPLE LOCAL end 4133801 */
+
return lexer->next_token;
}
@@ -492,9 +602,13 @@ cp_lexer_peek_nth_token (cp_lexer* lexer, size_t n)
token = (cp_token *)&eof_token;
break;
}
-
- if (token->type != CPP_PURGED)
+
+ /* APPLE LOCAL begin 4133801 */
+ if (token->type != CPP_PURGED
+ && token->type != CPP_BINCL
+ && token->type != CPP_EINCL)
--n;
+ /* APPLE LOCAL end 4133801 */
}
if (cp_lexer_debugging_p (lexer))
@@ -624,6 +738,103 @@ cp_lexer_save_tokens (cp_lexer* lexer)
VEC_safe_push (cp_token_position, lexer->saved_tokens, lexer->next_token);
}
+/* APPLE LOCAL begin 4133801 */
+/* Note down new file begin or end entry in cp_lexer_file */
+static void
+cp_add_lexer_file (int n, const char *s, cp_file_entry_kind k)
+{
+ cp_lexer_file *lf = xmalloc (sizeof (cp_lexer_file));
+
+ /* Populate */
+ lf->line = n;
+ lf->file = s;
+ lf->kind = k;
+ lf->next = NULL;
+
+ /* Add in the list */
+ if (last_cp_lexer_file)
+ last_cp_lexer_file->next = lf;
+ else
+ cp_lexer_file_stack = lf;
+ last_cp_lexer_file = lf;
+}
+
+/* Lang hooks for begining of source file. */
+
+void
+cp_start_source_file (int n, const char *s)
+{
+ cp_add_lexer_file (n, s, CP_FILE_BEGIN);
+}
+
+/* Lang hooks for end of source file. */
+
+void
+cp_end_source_file (int n, const char *s)
+{
+ cp_add_lexer_file (n, s, CP_FILE_END);
+}
+
+/* At the end of compilation emit BINCL/EINCL for remaining entries. */
+
+void
+cp_flush_lexer_file_stack (void)
+{
+ if (cp_lexer_file_stack)
+ {
+ cp_lexer_file *lf = cp_lexer_file_stack;
+ while (lf)
+ {
+ cp_lexer_file *tmp;
+ if (lf->kind == CP_FILE_BEGIN)
+ (*debug_hooks->start_source_file) (lf->line, lf->file);
+ else if (lf->kind == CP_FILE_END)
+ (*debug_hooks->end_source_file) (lf->line);
+ tmp = lf;
+ lf = lf->next;
+ tmp = NULL;
+ }
+ last_cp_lexer_file = NULL;
+ cp_lexer_file_stack = NULL;
+ }
+}
+
+/* Copy cp_token */
+static void
+cp_lexer_copy_token (cp_token *to, cp_token *from)
+{
+ to->type = from->type;
+ to->keyword = from->keyword;
+ to->flags = from->flags;
+ to->in_system_header = from->in_system_header;
+ to->implicit_extern_c = from->implicit_extern_c;
+ to->value = from->value;
+ to->location = from->location;
+}
+
+/* Handle CPP_BINCL and CPP_EINCL tokens. */
+
+static void
+cp_parser_bincl_eincl (cp_lexer *lexer)
+{
+ cp_token *token = lexer->next_token;
+
+ /* If the next token is CPP_BINCL/CPP_EINCL then invoke debug info hook */
+ while (token->type == CPP_BINCL || token->type == CPP_EINCL)
+ {
+ if (token->type == CPP_BINCL)
+ (*debug_hooks->start_source_file) (LOCATION_LINE (token->location),
+ LOCATION_FILE (token->location));
+ else if (token->type == CPP_EINCL)
+ (*debug_hooks->end_source_file) (LOCATION_LINE (token->location));
+
+ cp_lexer_purge_token (lexer);
+ token = lexer->next_token;
+ }
+}
+
+/* APPLE LOCAL end 4133801 */
+
/* Commit to the portion of the token stream most recently saved. */
static void
@@ -1510,7 +1721,7 @@ static tree cp_parser_declarator_id
static tree cp_parser_type_id
(cp_parser *);
static void cp_parser_type_specifier_seq
- (cp_parser *, cp_decl_specifier_seq *);
+ (cp_parser *, bool, cp_decl_specifier_seq *);
static cp_parameter_declarator *cp_parser_parameter_declaration_clause
(cp_parser *);
static cp_parameter_declarator *cp_parser_parameter_declaration_list
@@ -1638,6 +1849,81 @@ static bool cp_parser_extension_opt
static void cp_parser_label_declaration
(cp_parser *);
+/* APPLE LOCAL begin mainline */
+/* Objective-C++ Productions */
+
+static tree cp_parser_objc_message_receiver
+ (cp_parser *);
+static tree cp_parser_objc_message_args
+ (cp_parser *);
+static tree cp_parser_objc_message_expression
+ (cp_parser *);
+static tree cp_parser_objc_encode_expression
+ (cp_parser *);
+static tree cp_parser_objc_defs_expression
+ (cp_parser *);
+static tree cp_parser_objc_protocol_expression
+ (cp_parser *);
+static tree cp_parser_objc_selector_expression
+ (cp_parser *);
+static tree cp_parser_objc_expression
+ (cp_parser *);
+static void cp_parser_objc_visibility_spec
+ (cp_parser *);
+static void cp_parser_objc_method_type
+ (cp_parser *);
+static tree cp_parser_objc_protocol_qualifiers
+ (cp_parser *);
+static tree cp_parser_objc_typename
+ (cp_parser *);
+static bool cp_parser_objc_selector_p
+ (enum cpp_ttype);
+static tree cp_parser_objc_selector
+ (cp_parser *);
+static tree cp_parser_objc_method_keyword_params
+ (cp_parser *);
+static tree cp_parser_objc_method_tail_params_opt
+ (cp_parser *);
+static void cp_parser_objc_interstitial_code
+ (cp_parser *);
+static tree cp_parser_objc_method_signature
+ (cp_parser *);
+static void cp_parser_objc_method_prototype_list
+ (cp_parser *);
+static void cp_parser_objc_method_definition_list
+ (cp_parser *);
+static void cp_parser_objc_class_ivars
+ (cp_parser *);
+static tree cp_parser_objc_identifier_list
+ (cp_parser *);
+static void cp_parser_objc_alias_declaration
+ (cp_parser *);
+static void cp_parser_objc_class_declaration
+ (cp_parser *);
+static void cp_parser_objc_protocol_declaration
+ (cp_parser *);
+static tree cp_parser_objc_protocol_refs_opt
+ (cp_parser *);
+static void cp_parser_objc_superclass_or_category
+ (cp_parser *, tree *, tree *);
+static void cp_parser_objc_class_interface
+ (cp_parser *);
+static void cp_parser_objc_class_implementation
+ (cp_parser *);
+static void cp_parser_objc_end_implementation
+ (cp_parser *);
+static void cp_parser_objc_declaration
+ (cp_parser *);
+static tree cp_parser_objc_try_catch_finally_statement
+ (cp_parser *);
+static tree cp_parser_objc_synchronized_statement
+ (cp_parser *);
+static tree cp_parser_objc_throw_statement
+ (cp_parser *);
+static tree cp_parser_objc_statement
+ (cp_parser *);
+/* APPLE LOCAL end mainline */
+
/* Utility Routines */
static tree cp_parser_lookup_name
@@ -1763,6 +2049,33 @@ static bool cp_parser_is_keyword
static tree cp_parser_make_typename_type
(cp_parser *, tree, tree);
+/* APPLE LOCAL begin CW asm blocks */
+static tree cp_parser_cw_asm_compound_statement
+ (cp_parser *);
+static void cp_parser_cw_asm_declaration_seq_opt
+ (cp_parser *);
+static void cp_parser_cw_asm_line_seq_opt
+ (cp_parser *);
+static void cp_parser_cw_asm_line
+ (cp_parser *);
+static void cp_parser_cw_asm_statement_seq_opt
+ (cp_parser *);
+static void cp_parser_cw_asm_statement
+ (cp_parser *);
+static tree cp_parser_cw_asm_operands
+ (cp_parser *);
+static tree cp_parser_cw_asm_operand
+ (cp_parser *);
+static tree cp_parser_cw_asm_postfix_expression
+ (cp_parser *, bool);
+static tree cp_parser_cw_identifier_or_number
+ (cp_parser* parser);
+static tree cw_build_identifier_string
+ (cp_parser* parser, const char* str);
+static tree cp_parser_cw_asm_relative_branch
+ (cp_parser *parser);
+/* APPLE LOCAL end CW asm blocks */
+
/* Returns nonzero if we are parsing tentatively. */
static inline bool
@@ -1787,6 +2100,16 @@ cp_parser_is_keyword (cp_token* token, enum rid keyword)
return token->keyword == keyword;
}
+/* A minimum or maximum operator has been seen. As these are
+ deprecated, issue a warning. */
+
+static inline void
+cp_parser_warn_min_max (void)
+{
+ if (warn_deprecated && !in_system_header)
+ warning ("minimum/maximum operators are deprecated");
+}
+
/* If not parsing tentatively, issue a diagnostic of the form
FILE:LINE: MESSAGE before TOKEN
where TOKEN is the next token in the input stream. MESSAGE
@@ -1995,7 +2318,8 @@ cp_parser_diagnose_invalid_type_name (cp_parser *parser, tree scope, tree id)
template <typename T> struct B : public A<T> { X x; };
The user should have said "typename A<T>::X". */
- if (processing_template_decl && current_class_type)
+ if (processing_template_decl && current_class_type
+ && TYPE_BINFO (current_class_type))
{
tree b;
@@ -2474,6 +2798,8 @@ cp_parser_string_literal (cp_parser *parser, bool translate, bool wide_ok)
{
tree value;
bool wide = false;
+ /* APPLE LOCAL pascal strings */
+ bool pascal_p = false;
size_t count;
struct obstack str_ob;
cpp_string str, istr, *strs;
@@ -2498,6 +2824,11 @@ cp_parser_string_literal (cp_parser *parser, bool translate, bool wide_ok)
count = 1;
if (tok->type == CPP_WSTRING)
wide = true;
+ /* APPLE LOCAL begin pascal strings */
+ else if (CPP_OPTION (parse_in, pascal_strings)
+ && str.text[1] == '\\' && str.text[2] == 'p')
+ pascal_p = true;
+ /* APPLE LOCAL end pascal strings */
strs = &str;
}
@@ -2514,6 +2845,11 @@ cp_parser_string_literal (cp_parser *parser, bool translate, bool wide_ok)
str.len = TREE_STRING_LENGTH (tok->value);
if (tok->type == CPP_WSTRING)
wide = true;
+ /* APPLE LOCAL begin pascal strings */
+ else if (count == 1 && CPP_OPTION (parse_in, pascal_strings)
+ && str.text[1] == '\\' && str.text[2] == 'p')
+ pascal_p = true;
+ /* APPLE LOCAL end pascal strings */
obstack_grow (&str_ob, &str, sizeof (cpp_string));
@@ -2530,13 +2866,23 @@ cp_parser_string_literal (cp_parser *parser, bool translate, bool wide_ok)
wide = false;
}
+ /* APPLE LOCAL begin pascal strings */
+ if (wide)
+ pascal_p = false;
+ /* APPLE LOCAL end pascal strings */
+
if ((translate ? cpp_interpret_string : cpp_interpret_string_notranslate)
- (parse_in, strs, count, &istr, wide))
+ /* APPLE LOCAL pascal strings */
+ (parse_in, strs, count, &istr, wide, pascal_p))
{
value = build_string (istr.len, (char *)istr.text);
free ((void *)istr.text);
- TREE_TYPE (value) = wide ? wchar_array_type_node : char_array_type_node;
+ /* APPLE LOCAL begin pascal strings */
+ TREE_TYPE (value) = wide ? wchar_array_type_node
+ : pascal_p ? pascal_string_type_node
+ : char_array_type_node;
+ /* APPLE LOCAL end pascal strings */
value = fix_string_type (value);
}
else
@@ -2637,6 +2983,13 @@ cp_parser_translation_unit (cp_parser* parser)
( compound-statement )
__builtin_va_arg ( assignment-expression , type-id )
+ APPLE LOCAL begin mainline
+ Objective-C++ Extension:
+
+ primary-expression:
+ objc-expression
+ APPLE LOCAL end mainline
+
literal:
__null
@@ -2658,6 +3011,8 @@ cp_parser_primary_expression (cp_parser *parser,
tree *qualifying_class)
{
cp_token *token;
+ /* APPLE LOCAL CW asm blocks */
+ int atsignhack = 0;
/* Assume the primary expression is not an id-expression. */
*idk = CP_ID_KIND_NONE;
@@ -2863,11 +3218,27 @@ cp_parser_primary_expression (cp_parser *parser,
case RID_OFFSETOF:
return cp_parser_builtin_offsetof (parser);
+ /* APPLE LOCAL begin mainline */
+ /* Objective-C++ expressions. */
+ case RID_AT_ENCODE:
+ case RID_AT_PROTOCOL:
+ case RID_AT_SELECTOR:
+ return cp_parser_objc_expression (parser);
+ /* APPLE LOCAL end mainline */
+
default:
cp_parser_error (parser, "expected primary-expression");
return error_mark_node;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ case CPP_ATSIGN:
+ /* Recognize @-labels and handle them specially later. */
+ cp_lexer_consume_token (parser->lexer);
+ atsignhack = 1;
+ token = cp_lexer_peek_token (parser->lexer);
+ /* APPLE LOCAL end CW asm blocks */
+
/* An id-expression can start with either an identifier, a
`::' as the beginning of a qualified-id, or the "operator"
keyword. */
@@ -2888,6 +3259,11 @@ cp_parser_primary_expression (cp_parser *parser,
/*check_dependency_p=*/true,
/*template_p=*/NULL,
/*declarator_p=*/false);
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Replace the id with an id prefixed with @. */
+ if (atsignhack)
+ id_expression = prepend_char_identifier (id_expression, '@');
+ /* APPLE LOCAL end CW asm blocks */
if (id_expression == error_mark_node)
return error_mark_node;
/* If we have a template-id, then no further lookup is
@@ -2911,6 +3287,13 @@ cp_parser_primary_expression (cp_parser *parser,
been issued. */
if (ambiguous_p)
return error_mark_node;
+
+ /* APPLE LOCAL begin mainline */
+ /* In Objective-C++, an instance variable (ivar) may be preferred
+ to whatever cp_parser_lookup_name() found. */
+ decl = objc_lookup_ivar (decl, id_expression);
+ /* APPLE LOCAL end mainline */
+
/* If name lookup gives us a SCOPE_REF, then the
qualifying scope was dependent. Just propagate the
name. */
@@ -2961,6 +3344,13 @@ cp_parser_primary_expression (cp_parser *parser,
/* Anything else is an error. */
default:
+ /* APPLE LOCAL begin mainline */
+ /* ...unless we have an Objective-C++ message or string literal, that is. */
+ if (c_dialect_objc ()
+ && (token->type == CPP_OPEN_SQUARE || token->type == CPP_OBJC_STRING))
+ return cp_parser_objc_expression (parser);
+ /* APPLE LOCAL end mainline */
+
cp_parser_error (parser, "expected primary-expression");
return error_mark_node;
}
@@ -3319,6 +3709,22 @@ cp_parser_unqualified_id (cp_parser* parser,
return build_nt (BIT_NOT_EXPR, TREE_TYPE (type_decl));
}
+ /* APPLE LOCAL begin CW asm blocks C++ */
+ case CPP_NUMBER:
+ {
+ if (flag_cw_asm_blocks && inside_cw_asm_block
+ && TREE_CODE (token->value) == INTEGER_CST)
+ {
+ char buf[60];
+
+ sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, tree_low_cst (token->value, 0));
+ cp_lexer_consume_token (parser->lexer);
+ return get_identifier (buf);
+ }
+ goto bad;
+ }
+ /* APPLE LOCAL end CW asm blocks C++ */
+
case CPP_KEYWORD:
if (token->keyword == RID_OPERATOR)
{
@@ -3347,6 +3753,8 @@ cp_parser_unqualified_id (cp_parser* parser,
/* Fall through. */
default:
+ /* APPLE LOCAL CW asm blocks C++ */
+ bad:
cp_parser_error (parser, "expected unqualified-id");
return error_mark_node;
}
@@ -3860,18 +4268,22 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p)
bool template_p = false;
tree id;
tree type;
+ tree scope;
/* Consume the `typename' token. */
cp_lexer_consume_token (parser->lexer);
/* Look for the optional `::' operator. */
cp_parser_global_scope_opt (parser,
/*current_scope_valid_p=*/false);
- /* Look for the nested-name-specifier. */
- cp_parser_nested_name_specifier (parser,
- /*typename_keyword_p=*/true,
- /*check_dependency_p=*/true,
- /*type_p=*/true,
- /*is_declaration=*/true);
+ /* Look for the nested-name-specifier. In case of error here,
+ consume the trailing id to avoid subsequent error messages
+ for usual cases. */
+ scope = cp_parser_nested_name_specifier (parser,
+ /*typename_keyword_p=*/true,
+ /*check_dependency_p=*/true,
+ /*type_p=*/true,
+ /*is_declaration=*/true);
+
/* Look for the optional `template' keyword. */
template_p = cp_parser_optional_template_keyword (parser);
/* We don't know whether we're looking at a template-id or an
@@ -3884,9 +4296,13 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p)
/* If that didn't work, try an identifier. */
if (!cp_parser_parse_definitely (parser))
id = cp_parser_identifier (parser);
+
+ /* Don't process id if nested name specifier is invalid. */
+ if (scope == error_mark_node)
+ return error_mark_node;
/* If we look up a template-id in a non-dependent qualifying
scope, there's no need to create a dependent type. */
- if (TREE_CODE (id) == TYPE_DECL
+ else if (TREE_CODE (id) == TYPE_DECL
&& !dependent_type_p (parser->scope))
type = TREE_TYPE (id);
/* Create a TYPENAME_TYPE to represent the type to which the
@@ -3961,7 +4377,8 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p)
{
/* Warn the user that a compound literal is not
allowed in standard C++. */
- if (pedantic)
+ /* APPLE LOCAL Altivec initializers 3068233 */
+ if (pedantic && TREE_CODE (type) != VECTOR_TYPE)
pedwarn ("ISO C++ forbids compound-literals");
/* Form the representation of the compound-literal. */
postfix_expression
@@ -4645,8 +5062,13 @@ cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
switch (keyword)
{
- case RID_ALIGNOF:
+ /* APPLE LOCAL begin CW asm blocks */
case RID_SIZEOF:
+ if (inside_cw_asm_block)
+ break;
+
+ case RID_ALIGNOF:
+ /* APPLE LOCAL end CW asm blocks */
{
tree operand;
enum tree_code op;
@@ -4727,6 +5149,19 @@ cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
/* Look for a unary operator. */
unary_operator = cp_parser_unary_operator (token);
+
+ /* APPLE LOCAL begin CW asm blocks */
+ /* In the context of CW asm block, '*' followed by '+' or '-' is for
+ relative branch syntax. This is to allow "b *+8" which
+ is disallwed by darwin's assembler but nevertheless is needed to
+ be compatible with CW tools. */
+ if (inside_cw_asm_block && unary_operator == INDIRECT_REF)
+ {
+ cp_token *token = cp_lexer_peek_nth_token (parser->lexer, 2);
+ if (token->type == CPP_PLUS || token->type == CPP_MINUS)
+ unary_operator = ERROR_MARK;
+ }
+ /* APPLE LOCAL end CW asm blocks */
/* The `++' and `--' operators can be handled similarly, even though
they are not technically unary-operators in the grammar. */
if (unary_operator == ERROR_MARK)
@@ -4785,6 +5220,13 @@ cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
case CONVERT_EXPR:
case NEGATE_EXPR:
case TRUTH_NOT_EXPR:
+ /* APPLE LOCAL begin CW asm blocks */
+ if (inside_cw_asm_block && TREE_TYPE (cast_expression) == 0)
+ {
+ expression = build1 (unary_operator, NULL_TREE, cast_expression);
+ break;
+ }
+ /* APPLE LOCAL end CW asm blocks */
expression = finish_unary_op_expr (unary_operator, cast_expression);
break;
@@ -4800,6 +5242,14 @@ cp_parser_unary_expression (cp_parser *parser, bool address_p, bool cast_p)
return expression;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Postfix expressions in CW asm are more restricted and handled
+ quite differently, so diverge from the usual expression
+ precedence sequence here. */
+ if (inside_cw_asm_block)
+ return cp_parser_cw_asm_postfix_expression (parser, address_p);
+ /* APPLE LOCAL end CW asm blocks */
+
return cp_parser_postfix_expression (parser, address_p, cast_p);
}
@@ -4954,7 +5404,8 @@ cp_parser_new_type_id (cp_parser* parser, tree *nelts)
parser->type_definition_forbidden_message
= "types may not be defined in a new-type-id";
/* Parse the type-specifier-seq. */
- cp_parser_type_specifier_seq (parser, &type_specifier_seq);
+ cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
+ &type_specifier_seq);
/* Restore the old message. */
parser->type_definition_forbidden_message = saved_message;
/* Parse the new-declarator. */
@@ -5392,8 +5843,19 @@ cp_parser_binary_expression (cp_parser* parser, bool cast_p)
{
/* Get an operator token. */
token = cp_lexer_peek_token (parser->lexer);
+ if (token->type == CPP_MIN || token->type == CPP_MAX)
+ cp_parser_warn_min_max ();
+
new_prec = TOKEN_PRECEDENCE (token);
+ /* APPLE LOCAL begin CW asm blocks */
+ if (flag_cw_asm_blocks && inside_cw_asm_block)
+ {
+ if ((token->flags & BOL) != 0)
+ new_prec = PREC_NOT_OPERATOR;
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
/* Popping an entry off the stack means we completed a subexpression:
- either we found a token which is not an operator (`>' where it is not
an operator, or prec == PREC_NOT_OPERATOR), in which case popping
@@ -5424,6 +5886,15 @@ cp_parser_binary_expression (cp_parser* parser, bool cast_p)
cases such as 3 + 4 + 5 or 3 * 4 + 5. */
token = cp_lexer_peek_token (parser->lexer);
lookahead_prec = TOKEN_PRECEDENCE (token);
+
+ /* APPLE LOCAL begin CW asm blocks */
+ if (flag_cw_asm_blocks && inside_cw_asm_block)
+ {
+ if ((token->flags & BOL) != 0)
+ lookahead_prec = PREC_NOT_OPERATOR;
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
if (lookahead_prec > new_prec)
{
/* ... and prepare to parse the RHS of the new, higher priority
@@ -5454,6 +5925,15 @@ cp_parser_binary_expression (cp_parser* parser, bool cast_p)
lhs = sp->lhs;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ if (inside_cw_asm_block && TREE_CODE (rhs) == COMPOUND_EXPR)
+ {
+ gcc_assert (TREE_CODE (TREE_OPERAND (rhs, 1)) == IDENTIFIER_NODE);
+ lhs = build_x_binary_op (tree_type, lhs, TREE_OPERAND (rhs, 0), &overloaded_p);
+ lhs = cw_asm_build_register_offset (lhs, TREE_OPERAND (rhs, 1));
+ return lhs;
+ }
+ /* APPLE LOCAL end CW asm blocks */
overloaded_p = false;
lhs = build_x_binary_op (tree_type, lhs, rhs, &overloaded_p);
@@ -5647,10 +6127,12 @@ cp_parser_assignment_operator_opt (cp_parser* parser)
case CPP_MIN_EQ:
op = MIN_EXPR;
+ cp_parser_warn_min_max ();
break;
case CPP_MAX_EQ:
op = MAX_EXPR;
+ cp_parser_warn_min_max ();
break;
default:
@@ -5925,6 +6407,17 @@ cp_parser_statement (cp_parser* parser, tree in_statement_expr)
statement = cp_parser_jump_statement (parser);
break;
+ /* APPLE LOCAL begin mainline */
+ /* Objective-C++ exception-handling constructs. */
+ case RID_AT_TRY:
+ case RID_AT_CATCH:
+ case RID_AT_FINALLY:
+ case RID_AT_SYNCHRONIZED:
+ case RID_AT_THROW:
+ statement = cp_parser_objc_statement (parser);
+ break;
+ /* APPLE LOCAL end mainline */
+
case RID_TRY:
statement = cp_parser_try_block (parser);
break;
@@ -6122,6 +6615,23 @@ cp_parser_compound_statement (cp_parser *parser, tree in_statement_expr,
return error_mark_node;
/* Begin the compound-statement. */
compound_stmt = begin_compound_stmt (in_try ? BCS_TRY_BLOCK : 0);
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Maybe this is the body of an asm function, which has asm lines
+ following the decls. */
+ if (cw_asm_state >= cw_asm_decls)
+ {
+ cw_asm_in_decl = 1;
+ cp_parser_cw_asm_declaration_seq_opt (parser);
+ cw_asm_in_decl = 0;
+ cw_asm_state = cw_asm_asm;
+ inside_cw_asm_block = 1;
+ clear_cw_asm_labels ();
+ cp_parser_cw_asm_line_seq_opt (parser);
+ cw_asm_state = cw_asm_none;
+ inside_cw_asm_block = 0;
+ }
+ else
+ /* APPLE LOCAL end CW asm blocks */
/* Parse an (optional) statement-seq. */
cp_parser_statement_seq_opt (parser, in_statement_expr);
/* Finish the compound-statement. */
@@ -6132,6 +6642,16 @@ cp_parser_compound_statement (cp_parser *parser, tree in_statement_expr,
return compound_stmt;
}
+/* APPLE LOCAL begin CW asm blocks */
+static bool
+cp_lexer_cw_bol (cp_lexer* lexer)
+{
+ cp_token *token = cp_lexer_peek_token (lexer);
+
+ return (token->flags & BOL) != 0;
+}
+/* APPLE LOCAL end CW asm blocks */
+
/* Parse an (optional) statement-seq.
statement-seq:
@@ -6151,6 +6671,14 @@ cp_parser_statement_seq_opt (cp_parser* parser, tree in_statement_expr)
/* Parse the statement. */
cp_parser_statement (parser, in_statement_expr);
+
+ /* APPLE LOCAL begin CW asm blocks */
+ if (flag_cw_asm_blocks
+ && cw_asm_state >= cw_asm_decls
+ && (cp_lexer_cw_bol (parser->lexer)
+ || cp_lexer_next_token_is (parser->lexer, CPP_NAME)))
+ break;
+ /* APPLE LOCAL end CW asm blocks */
}
}
@@ -6281,7 +6809,8 @@ cp_parser_condition (cp_parser* parser)
parser->type_definition_forbidden_message
= "types may not be defined in conditions";
/* Parse the type-specifier-seq. */
- cp_parser_type_specifier_seq (parser, &type_specifiers);
+ cp_parser_type_specifier_seq (parser, /*is_condition==*/true,
+ &type_specifiers);
/* Restore the saved message. */
parser->type_definition_forbidden_message = saved_message;
/* If all is well, we might be looking at a declaration. */
@@ -6826,6 +7355,11 @@ cp_parser_declaration (cp_parser* parser)
/* An unnamed namespace definition. */
|| token2.type == CPP_OPEN_BRACE))
cp_parser_namespace_definition (parser);
+ /* APPLE LOCAL begin mainline */
+ /* Objective-C++ declaration/definition. */
+ else if (c_dialect_objc () && OBJC_IS_AT_KEYWORD (token1.keyword))
+ cp_parser_objc_declaration (parser);
+ /* APPLE LOCAL end mainline */
/* We must have either a block declaration or a function
definition. */
else
@@ -6965,6 +7499,13 @@ cp_parser_simple_declaration (cp_parser* parser,
if (!function_definition_allowed_p
&& !decl_specifiers.any_specifiers_p)
{
+ /* APPLE LOCAL begin CW asm blocks */
+ /* We might have seen an asm opcode, and it's time to switch to
+ asm instruction handling. */
+ if (flag_cw_asm_blocks && cw_asm_state >= cw_asm_decls)
+ return;
+ /* APPLE LOCAL end CW asm blocks */
+
cp_parser_error (parser, "expected declaration");
goto done;
}
@@ -7079,6 +7620,11 @@ cp_parser_simple_declaration (cp_parser* parser,
/* Consume the `;'. */
cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ /* APPLE LOCAL begin CW asm blocks */
+ if (flag_cw_asm_blocks)
+ cw_asm_in_decl = 0;
+ /* APPLE LOCAL end CW asm blocks */
+
done:
pop_deferring_access_checks ();
}
@@ -7234,6 +7780,15 @@ cp_parser_decl_specifier_seq (cp_parser* parser,
++decl_specs->specs[(int) ds_thread];
break;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* If we ever get here, we must be in CW asm mode. */
+ case RID_ASM:
+ /* Consume the token. */
+ cp_lexer_consume_token (parser->lexer);
+ ++decl_specs->specs[(int) ds_cw_asm];
+ break;
+ /* APPLE LOCAL end CW asm blocks */
+
default:
/* We did not yet find a decl-specifier yet. */
found_decl_spec = false;
@@ -7355,6 +7910,10 @@ cp_parser_storage_class_specifier_opt (cp_parser* parser)
case RID_EXTERN:
case RID_MUTABLE:
case RID_THREAD:
+ /* APPLE LOCAL begin CW asm blocks */
+ /* If we ever get here, we must be in CW asm mode. */
+ case RID_ASM:
+ /* APPLE LOCAL end CW asm blocks */
/* Consume the token. */
return cp_lexer_consume_token (parser->lexer)->value;
@@ -7540,7 +8099,8 @@ cp_parser_conversion_type_id (cp_parser* parser)
/* Parse the attributes. */
attributes = cp_parser_attributes_opt (parser);
/* Parse the type-specifiers. */
- cp_parser_type_specifier_seq (parser, &type_specifiers);
+ cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
+ &type_specifiers);
/* If that didn't work, stop. */
if (type_specifiers.type == error_mark_node)
return error_mark_node;
@@ -8030,18 +8590,22 @@ cp_parser_operator (cp_parser* parser)
/* Extensions. */
case CPP_MIN:
id = ansi_opname (MIN_EXPR);
+ cp_parser_warn_min_max ();
break;
case CPP_MAX:
id = ansi_opname (MAX_EXPR);
+ cp_parser_warn_min_max ();
break;
case CPP_MIN_EQ:
id = ansi_assopname (MIN_EXPR);
+ cp_parser_warn_min_max ();
break;
case CPP_MAX_EQ:
id = ansi_assopname (MAX_EXPR);
+ cp_parser_warn_min_max ();
break;
default:
@@ -8703,6 +9267,8 @@ cp_parser_template_name (cp_parser* parser,
;
else
{
+ tree fn = NULL_TREE;
+
/* The standard does not explicitly indicate whether a name that
names a set of overloaded declarations, some of which are
templates, is a template-name. However, such a name should
@@ -8710,16 +9276,13 @@ cp_parser_template_name (cp_parser* parser,
template-id for the overloaded templates. */
fns = BASELINK_P (decl) ? BASELINK_FUNCTIONS (decl) : decl;
if (TREE_CODE (fns) == OVERLOAD)
- {
- tree fn;
+ for (fn = fns; fn; fn = OVL_NEXT (fn))
+ if (TREE_CODE (OVL_CURRENT (fn)) == TEMPLATE_DECL)
+ break;
- for (fn = fns; fn; fn = OVL_NEXT (fn))
- if (TREE_CODE (OVL_CURRENT (fn)) == TEMPLATE_DECL)
- break;
- }
- else
+ if (!fn)
{
- /* Otherwise, the name does not name a template. */
+ /* The name does not name a template. */
cp_parser_error (parser, "expected template-name");
return error_mark_node;
}
@@ -9562,7 +10125,28 @@ cp_parser_simple_type_specifier (cp_parser* parser,
followed by a "<". That usually indicates that the user thought
that the type was a template. */
if (type && type != error_mark_node)
- cp_parser_check_for_invalid_template_id (parser, TREE_TYPE (type));
+ /* APPLE LOCAL begin mainline */
+ {
+ /* As a last-ditch effort, see if TYPE is an Objective-C type.
+ If it is, then the '<'...'>' enclose protocol names rather than
+ template arguments, and so everything is fine. */
+ if (c_dialect_objc ()
+ && (objc_is_id (type) || objc_is_class_name (type)))
+ {
+ tree protos = cp_parser_objc_protocol_refs_opt (parser);
+ tree qual_type = objc_get_protocol_qualified_type (type, protos);
+
+ /* Clobber the "unqualified" type previously entered into
+ DECL_SPECS with the new, improved protocol-qualifed version. */
+ if (decl_specs)
+ decl_specs->type = qual_type;
+
+ return qual_type;
+ }
+
+ cp_parser_check_for_invalid_template_id (parser, TREE_TYPE (type));
+ }
+ /* APPLE LOCAL end mainline */
return type;
}
@@ -9580,7 +10164,7 @@ cp_parser_simple_type_specifier (cp_parser* parser,
typedef-name:
identifier
- Returns a TYPE_DECL for the the type. */
+ Returns a TYPE_DECL for the type. */
static tree
cp_parser_type_name (cp_parser* parser)
@@ -9608,6 +10192,19 @@ cp_parser_type_name (cp_parser* parser)
/* Look up the type-name. */
type_decl = cp_parser_lookup_name_simple (parser, identifier);
+
+ /* APPLE LOCAL begin mainline */
+ if (TREE_CODE (type_decl) != TYPE_DECL
+ && (objc_is_id (identifier) || objc_is_class_name (identifier)))
+ {
+ /* See if this is an Objective-C type. */
+ tree protos = cp_parser_objc_protocol_refs_opt (parser);
+ tree type = objc_get_protocol_qualified_type (identifier, protos);
+ if (type)
+ type_decl = TYPE_NAME (type);
+ }
+ /* APPLE LOCAL end mainline */
+
/* Issue an error if we did not find a type-name. */
if (TREE_CODE (type_decl) != TYPE_DECL)
{
@@ -10326,6 +10923,8 @@ cp_parser_using_directive (cp_parser* parser)
asm-definition:
asm ( string-literal ) ;
+ APPLE LOCAL CW asm blocks
+ asm { asm-line [opt] }
GNU Extension:
@@ -10349,6 +10948,27 @@ cp_parser_asm_definition (cp_parser* parser)
bool volatile_p = false;
bool extended_p = false;
+ /* APPLE LOCAL begin CW asm blocks */
+ cp_token *nextup;
+ /* Detect when a leading `asm' is actually a spec of an asm function
+ rather than an asm statement or block. */
+ if (flag_cw_asm_blocks)
+ {
+ nextup = cp_lexer_peek_nth_token (parser->lexer, 2);
+ if (!((nextup->type == CPP_OPEN_PAREN)
+ || (nextup->keyword == RID_VOLATILE
+ && cp_lexer_peek_nth_token (parser->lexer, 3)->type == CPP_OPEN_PAREN)
+ || (nextup->type == CPP_OPEN_BRACE)))
+ {
+ /* An asm function - we'll treat the `asm' as if it were a
+ storage class spec, which will eventually affect function
+ body parsing. */
+ cp_parser_simple_declaration (parser, true);
+ return;
+ }
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
/* Look for the `asm' keyword. */
cp_parser_require_keyword (parser, RID_ASM, "`asm'");
/* See if the next token is `volatile'. */
@@ -10360,6 +10980,21 @@ cp_parser_asm_definition (cp_parser* parser)
/* Consume the token. */
cp_lexer_consume_token (parser->lexer);
}
+ /* APPLE LOCAL begin CW asm blocks */
+ /* A CW-style asm block is introduced by an open brace. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE))
+ {
+ if (flag_cw_asm_blocks)
+ {
+ cp_parser_cw_asm_compound_statement (parser);
+ }
+ else
+ {
+ error ("asm blocks not enabled, use `-fasm-blocks'");
+ }
+ return;
+ }
+ /* APPLE LOCAL end CW asm blocks */
/* Look for the opening `('. */
if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
return;
@@ -11107,15 +11742,8 @@ cp_parser_direct_declarator (cp_parser* parser,
bounds = fold_non_dependent_expr (bounds);
/* Normally, the array bound must be an integral constant
expression. However, as an extension, we allow VLAs
- in function scopes. And, we allow type-dependent
- expressions in templates; sometimes we don't know for
- sure whether or not something is a valid integral
- constant expression until instantiation time. (It
- doesn't make sense to check for value-dependency, as
- an expression is only value-dependent when it is a
- constant expression.) */
- else if (!type_dependent_expression_p (bounds)
- && !at_function_scope_p ())
+ in function scopes. */
+ else if (!at_function_scope_p ())
{
error ("array bound is not an integer constant");
bounds = error_mark_node;
@@ -11482,7 +12110,8 @@ cp_parser_type_id (cp_parser* parser)
cp_declarator *abstract_declarator;
/* Parse the type-specifier-seq. */
- cp_parser_type_specifier_seq (parser, &type_specifier_seq);
+ cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
+ &type_specifier_seq);
if (type_specifier_seq.type == error_mark_node)
return error_mark_node;
@@ -11510,13 +12139,18 @@ cp_parser_type_id (cp_parser* parser)
type-specifier-seq:
attributes type-specifier-seq [opt]
+ If IS_CONDITION is true, we are at the start of a "condition",
+ e.g., we've just seen "if (".
+
Sets *TYPE_SPECIFIER_SEQ to represent the sequence. */
static void
cp_parser_type_specifier_seq (cp_parser* parser,
+ bool is_condition,
cp_decl_specifier_seq *type_specifier_seq)
{
bool seen_type_specifier = false;
+ cp_parser_flags flags = CP_PARSER_FLAGS_OPTIONAL;
/* Clear the TYPE_SPECIFIER_SEQ. */
clear_decl_specs (type_specifier_seq);
@@ -11525,6 +12159,7 @@ cp_parser_type_specifier_seq (cp_parser* parser,
while (true)
{
tree type_specifier;
+ bool is_cv_qualifier;
/* Check for attributes first. */
if (cp_lexer_next_token_is_keyword (parser->lexer, RID_ATTRIBUTE))
@@ -11537,25 +12172,45 @@ cp_parser_type_specifier_seq (cp_parser* parser,
/* Look for the type-specifier. */
type_specifier = cp_parser_type_specifier (parser,
- CP_PARSER_FLAGS_OPTIONAL,
+ flags,
type_specifier_seq,
/*is_declaration=*/false,
NULL,
- NULL);
- /* If the first type-specifier could not be found, this is not a
- type-specifier-seq at all. */
- if (!seen_type_specifier && !type_specifier)
+ &is_cv_qualifier);
+ if (!type_specifier)
{
- cp_parser_error (parser, "expected type-specifier");
- type_specifier_seq->type = error_mark_node;
- return;
+ /* If the first type-specifier could not be found, this is not a
+ type-specifier-seq at all. */
+ if (!seen_type_specifier)
+ {
+ cp_parser_error (parser, "expected type-specifier");
+ type_specifier_seq->type = error_mark_node;
+ return;
+ }
+ /* If subsequent type-specifiers could not be found, the
+ type-specifier-seq is complete. */
+ break;
}
- /* If subsequent type-specifiers could not be found, the
- type-specifier-seq is complete. */
- else if (seen_type_specifier && !type_specifier)
- break;
seen_type_specifier = true;
+ /* The standard says that a condition can be:
+
+ type-specifier-seq declarator = assignment-expression
+
+ However, given:
+
+ struct S {};
+ if (int S = ...)
+
+ we should treat the "S" as a declarator, not as a
+ type-specifier. The standard doesn't say that explicitly for
+ type-specifier-seq, but it does say that for
+ decl-specifier-seq in an ordinary declaration. Perhaps it
+ would be clearer just to allow a decl-specifier-seq here, and
+ then add a semantic restriction that if any decl-specifiers
+ that are not type-specifiers appear, the program is invalid. */
+ if (is_condition && !is_cv_qualifier)
+ flags |= CP_PARSER_FLAGS_NO_USER_DEFINED_TYPES;
}
return;
@@ -11693,7 +12348,11 @@ cp_parser_parameter_declaration_list (cp_parser* parser, bool *is_error)
/* Peek at the next token. */
if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_PAREN)
- || cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS))
+ /* APPLE LOCAL begin mainline */
+ || cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS)
+ || cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON)
+ || cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE))
+ /* APPLE LOCAL end mainline */
/* The parameter-declaration-list is complete. */
break;
else if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
@@ -12849,9 +13508,18 @@ cp_parser_class_head (cp_parser* parser,
CLASSTYPE_DECLARED_CLASS (type) = (class_key == class_type);
cp_parser_check_class_key (class_key, type);
+ /* If this type was already complete, and we see another definition,
+ that's an error. */
+ if (type != error_mark_node && COMPLETE_TYPE_P (type))
+ {
+ error ("redefinition of %q#T", type);
+ cp_error_at ("previous definition of %q#T", type);
+ type = NULL_TREE;
+ goto done;
+ }
+
/* We will have entered the scope containing the class; the names of
- base classes should be looked up in that context. For example,
- given:
+ base classes should be looked up in that context. For example:
struct A { struct B {}; struct C; };
struct A::C : B {};
@@ -13027,6 +13695,24 @@ cp_parser_member_declaration (cp_parser* parser)
return;
}
+ /* APPLE LOCAL begin mainline */
+ /* Check for @defs. */
+ if (cp_lexer_next_token_is_keyword (parser->lexer, RID_AT_DEFS))
+ {
+ tree ivar, member;
+ tree ivar_chains = cp_parser_objc_defs_expression (parser);
+ ivar = ivar_chains;
+ while (ivar)
+ {
+ member = ivar;
+ ivar = TREE_CHAIN (member);
+ TREE_CHAIN (member) = NULL_TREE;
+ finish_member_declaration (member);
+ }
+ return;
+ }
+ /* APPLE LOCAL end mainline */
+
/* Parse the decl-specifier-seq. */
cp_parser_decl_specifier_seq (parser,
CP_PARSER_FLAGS_OPTIONAL,
@@ -13800,7 +14486,8 @@ cp_parser_exception_declaration (cp_parser* parser)
= "types may not be defined in exception-declarations";
/* Parse the type-specifier-seq. */
- cp_parser_type_specifier_seq (parser, &type_specifiers);
+ cp_parser_type_specifier_seq (parser, /*is_condition=*/false,
+ &type_specifiers);
/* If it's a `)', then there is no declarator. */
if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_PAREN))
declarator = NULL;
@@ -14332,7 +15019,7 @@ cp_parser_lookup_name (cp_parser *parser, tree name,
lookup_member, we must enter the scope here. */
if (dependent_p)
pushed_scope = push_scope (parser->scope);
- /* If the PARSER->SCOPE is a a template specialization, it
+ /* If the PARSER->SCOPE is a template specialization, it
may be instantiated during name lookup. In that case,
errors may be issued. Even if we rollback the current
tentative parse, those errors are valid. */
@@ -15991,6 +16678,1803 @@ cp_parser_allow_gnu_extensions_p (cp_parser* parser)
return parser->allow_gnu_extensions_p;
}
+/* APPLE LOCAL begin CW asm blocks */
+
+/* This is the section of CW-asm-specific parsing functions. */
+
+static tree
+cp_parser_cw_asm_compound_statement (cp_parser *parser)
+{
+ tree compound_stmt;
+
+ cw_asm_state = cw_asm_asm;
+ inside_cw_asm_block = 1;
+ cw_asm_at_bol = 1;
+ clear_cw_asm_labels ();
+ if (!cp_parser_require (parser, CPP_OPEN_BRACE, "`{'"))
+ return error_mark_node;
+ /* Begin the compound-statement. */
+ compound_stmt = begin_compound_stmt (/*has_no_scope=*/false);
+ /* Parse an (optional) statement-seq. */
+ cp_parser_cw_asm_line_seq_opt (parser);
+ /* Finish the compound-statement. */
+ finish_compound_stmt (compound_stmt);
+ /* Consume the `}'. */
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ /* We're done with the block of asm. */
+ cw_asm_at_bol = 0;
+ inside_cw_asm_block = 0;
+ cw_asm_state = cw_asm_none;
+ return compound_stmt;
+}
+
+static void
+cp_parser_cw_asm_declaration_seq_opt (cp_parser* parser)
+{
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ if (token->type == CPP_NAME
+ && !cw_asm_typename_or_reserved (token->value))
+ return;
+
+ /* Scan declarations until there aren't any more. */
+ while (true)
+ {
+ /* If we're looking at a `}', then we've run out of statements. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE)
+ || cp_lexer_next_token_is (parser->lexer, CPP_EOF))
+ break;
+
+ /* Parse a declaration. */
+ cp_parser_simple_declaration (parser, false);
+
+ /* CPP_PRAGMA is a #pragma inside a function body, which
+ constitutes a declaration all its own. */
+ if (token->type == CPP_PRAGMA)
+ cp_lexer_handle_pragma (parser->lexer);
+
+ if (cw_asm_state >= cw_asm_decls
+ && (cp_lexer_cw_bol (parser->lexer)
+ || cp_lexer_next_token_is (parser->lexer, CPP_NAME)))
+ break;
+ }
+}
+
+/* Parse an (optional) line-seq.
+
+ line-seq:
+ line
+ line-seq [opt] line */
+
+static void
+cp_parser_cw_asm_line_seq_opt (cp_parser* parser)
+{
+ /* Scan lines of asm until there aren't any more. */
+ while (true)
+ {
+ /* If we're looking at a `}', then we've run out of lines. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE)
+ || cp_lexer_next_token_is (parser->lexer, CPP_EOF))
+ break;
+
+ /* Parse the line. */
+ cp_parser_cw_asm_line (parser);
+ }
+}
+
+static void
+cp_parser_cw_asm_line (cp_parser* parser)
+{
+ cp_parser_cw_asm_statement_seq_opt (parser);
+}
+
+static void
+cp_parser_cw_asm_statement_seq_opt (cp_parser* parser)
+{
+ /* Scan statements until there aren't any more. */
+ while (true)
+ {
+ if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE)
+ || cp_lexer_next_token_is (parser->lexer, CPP_EOF))
+ break;
+
+ /* Semicolons divide up individual statements. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))
+ cp_lexer_consume_token (parser->lexer);
+
+ /* Parse a single statement. */
+ cp_parser_cw_asm_statement (parser);
+
+ /* We parse at most, one line. */
+ if (cp_lexer_cw_bol (parser->lexer))
+ break;
+
+ if (!(cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE)
+ || cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON)))
+ {
+ cp_parser_error (parser, "expected `;' or `}' or end-of-line");
+ }
+ }
+}
+
+/* Build an identifier comprising the string passed and the
+ next token. */
+
+static tree
+cw_build_identifier_string (cp_parser* parser, const char* str)
+{
+ char *buf;
+ int len;
+ tree id;
+
+ id = cp_parser_cw_identifier_or_number (parser);
+ len = strlen (str);
+ buf = (char *) alloca (IDENTIFIER_LENGTH (id) + len + 1);
+ memcpy (buf, str, len);
+ memcpy (buf+len, IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
+ buf[IDENTIFIER_LENGTH (id) + len] = 0;
+ return get_identifier (buf);
+}
+
+/* Parse a CW asm identifier. Returns an IDENTIFIER_NODE representing
+ the identifier. The CW asm identifieriers include [.+-] as part of
+ the identifier. */
+
+static tree
+cp_parser_cw_identifier (cp_parser* parser)
+{
+ cp_token *token;
+ tree t;
+ const char *str = "";
+
+ /* We have to accept certain keywords. */
+ token = cp_lexer_peek_token (parser->lexer);
+ if (token->flags & NAMED_OP)
+ {
+ const char *s = 0;
+ switch (token->type) {
+ case CPP_AND_AND: s="and"; break;
+ case CPP_AND_EQ: s="and_eq"; break;
+ case CPP_AND: s="bitand"; break;
+ case CPP_OR: s="bitor"; break;
+ case CPP_COMPL: s="compl"; break;
+ case CPP_NOT: s="not"; break;
+ case CPP_NOT_EQ: s="not_eq"; break;
+ case CPP_OR_OR: s="or"; break;
+ case CPP_OR_EQ: s="or_eq"; break;
+ case CPP_XOR: s="xor"; break;
+ case CPP_XOR_EQ: s="xor_eq"; break;
+ default: break;
+ }
+
+ /* The above list is the entire list of named operators. We
+ can't fail to translate the name. See operator_array in
+ libcpp/init.c. */
+ gcc_assert (s != 0);
+ cp_lexer_consume_token (parser->lexer);
+ t = get_identifier (s);
+ }
+ else
+ if (token->type == CPP_DOT)
+ {
+ /* .align */
+ cp_lexer_consume_token (parser->lexer);
+ t = cw_build_identifier_string (parser, ".");
+ }
+ else
+ t = cp_parser_identifier (parser);
+
+ if (t == error_mark_node)
+ return t;
+
+ token = cp_lexer_peek_token (parser->lexer);
+
+ switch (token->type)
+ {
+ case CPP_DOT:
+ str = ".";
+ break;
+ case CPP_PLUS:
+ str = "+";
+ break;
+ case CPP_MINUS:
+ str = "-";
+ break;
+ case CPP_PLUS_PLUS:
+ str = "++";
+ break;
+ case CPP_MINUS_MINUS:
+ str = "--";
+ break;
+ default:
+ return t;
+ }
+
+ /* If there was whitespace between the identifier and the [.+-]
+ character, then that character can't be part of the
+ identifier. */
+ if (token->flags & PREV_WHITE)
+ return t;
+
+ cp_lexer_consume_token (parser->lexer);
+
+ return cw_get_identifier (t, str);
+}
+
+static tree
+cp_parser_cw_identifier_or_number (cp_parser* parser)
+{
+ cp_token *token;
+
+ token = cp_lexer_peek_token (parser->lexer);
+ if (token->type == CPP_NUMBER
+ && TREE_CODE (token->value) == INTEGER_CST)
+ {
+ char buf[60];
+
+ sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, tree_low_cst (token->value, 0));
+ cp_lexer_consume_token (parser->lexer);
+ return get_identifier (buf);
+ }
+
+ return cp_parser_identifier (parser);
+}
+
+static void
+cp_parser_cw_asm_statement (cp_parser* parser)
+{
+ tree aname, scspec, anothername, operands;
+
+ /* Keep sucking labels from the front of the statement until a
+ non-label is seen. */
+ while (true)
+ {
+ if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON)
+ || cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE)
+ || cp_lexer_next_token_is (parser->lexer, CPP_EOF))
+ break;
+
+ if (cp_lexer_next_token_is (parser->lexer, CPP_PRAGMA))
+ {
+ cp_lexer_handle_pragma (parser->lexer);
+ }
+ else if (cp_lexer_next_token_is (parser->lexer, CPP_ATSIGN))
+ {
+ cp_lexer_consume_token (parser->lexer);
+ aname = cp_parser_cw_identifier_or_number (parser);
+ /* Optional ':' after a label. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_COLON))
+ cp_lexer_consume_token (parser->lexer);
+ cw_asm_label (aname, 1);
+ }
+ else
+ {
+ aname = cp_parser_cw_identifier (parser);
+ if (cp_lexer_next_token_is (parser->lexer, CPP_COLON))
+ {
+ cp_lexer_consume_token (parser->lexer);
+ cw_asm_label (aname, 0);
+ }
+ else
+ {
+ scspec = cp_parser_storage_class_specifier_opt (parser);
+ if (scspec)
+ {
+ anothername = cp_parser_cw_asm_operand (parser);
+ cw_asm_entry (aname, scspec, anothername);
+ }
+ else
+ {
+ cw_asm_in_operands = 1;
+ operands = cp_parser_cw_asm_operands (parser);
+ cw_asm_stmt (aname, operands, input_line);
+ }
+ break;
+ }
+ }
+
+ if (cp_lexer_cw_bol (parser->lexer))
+ break;
+ }
+}
+
+tree
+cp_parser_cw_asm_operands (cp_parser *parser)
+{
+ tree operands = NULL_TREE, operand;
+
+ while (true)
+ {
+ /* If we're looking at the end of the line, then we've run out of operands. */
+ if (cp_lexer_cw_bol (parser->lexer)
+ || cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON)
+ || cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE)
+ || cp_lexer_next_token_is (parser->lexer, CPP_EOF))
+ break;
+
+ operand = cp_parser_cw_asm_operand (parser);
+
+ if (operand)
+ {
+ operands = chainon (operands, build_tree_list (NULL_TREE, operand));
+ if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
+ cp_lexer_consume_token (parser->lexer);
+ }
+ else
+ {
+ return error_mark_node;
+ }
+ }
+
+ return operands;
+}
+
+tree
+cp_parser_cw_asm_operand (cp_parser *parser)
+{
+ tree operand;
+
+ /* Jump into the usual operand precedence stack. */
+ operand = cp_parser_binary_expression (parser, false);
+
+ return operand;
+}
+
+/* Need to handle case of relative branch using: .[+|-]number
+ syntax */
+static tree
+cp_parser_cw_asm_relative_branch (cp_parser *parser)
+{
+ cp_token *token;
+ token = cp_lexer_peek_nth_token (parser->lexer, 2);
+ if (token->type == CPP_PLUS || token->type == CPP_MINUS)
+ {
+ const char *str = (token->type == CPP_PLUS) ? ".+" : ".-";
+ /* consume '.' */
+ cp_lexer_consume_token (parser->lexer);
+ /* consume '-' or '+' */
+ cp_lexer_consume_token (parser->lexer);
+ return cw_build_identifier_string (parser, str);
+ }
+ return error_mark_node;
+}
+
+/* Parse a CW asm-style postfix-expression.
+
+ postfix-expression:
+ primary-expression
+ postfix-expression [ expression ]
+ postfix-expression ( expression-list [opt] )
+ simple-type-specifier ( expression-list [opt] )
+ postfix-expression . template [opt] id-expression
+ postfix-expression -> template [opt] id-expression
+ postfix-expression . pseudo-destructor-name
+ postfix-expression -> pseudo-destructor-name
+ typeid ( expression )
+ typeid ( type-id )
+
+ GNU Extension:
+
+ postfix-expression:
+ ( type-id ) { initializer-list , [opt] }
+
+ This extension is a GNU version of the C99 compound-literal
+ construct. (The C99 grammar uses `type-name' instead of `type-id',
+ but they are essentially the same concept.)
+
+ If ADDRESS_P is true, the postfix expression is the operand of the
+ `&' operator.
+
+ Returns a representation of the expression. */
+
+static tree
+cp_parser_cw_asm_postfix_expression (cp_parser *parser, bool address_p)
+{
+ bool for_offsetof = false;
+ cp_token *token;
+ enum rid keyword;
+ cp_id_kind idk = CP_ID_KIND_NONE;
+ tree postfix_expression = NULL_TREE;
+ /* Non-NULL only if the current postfix-expression can be used to
+ form a pointer-to-member. In that case, QUALIFYING_CLASS is the
+ class used to qualify the member. */
+ tree qualifying_class = NULL_TREE;
+
+ /* Peek at the next token. */
+ token = cp_lexer_peek_token (parser->lexer);
+ /* Some of the productions are determined by keywords. */
+ keyword = token->keyword;
+ switch (keyword)
+ {
+ case RID_SIZEOF:
+ {
+ tree operand;
+ /* Consume the token. */
+ cp_lexer_consume_token (parser->lexer);
+ /* Parse the operand. */
+ operand = cp_parser_sizeof_operand (parser, keyword);
+ postfix_expression = cxx_sizeof_or_alignof_type (operand, SIZEOF_EXPR, true);
+ break;
+ }
+
+ default:
+ {
+ tree type;
+
+ /* If the next thing is a simple-type-specifier, we may be
+ looking at a functional cast. We could also be looking at
+ an id-expression. So, we try the functional cast, and if
+ that doesn't work we fall back to the primary-expression. */
+ cp_parser_parse_tentatively (parser);
+ /* Look for the simple-type-specifier. */
+ type = cp_parser_simple_type_specifier (parser,
+ CP_PARSER_FLAGS_NONE,
+ /*identifier_p=*/false);
+ /* Parse the cast itself. */
+ if (!cp_parser_error_occurred (parser))
+ postfix_expression
+ = cp_parser_functional_cast (parser, type);
+ /* If that worked, we're done. */
+ if (cp_parser_parse_definitely (parser))
+ break;
+
+ if (token->type == CPP_DOT || token->type == CPP_MULT)
+ {
+ postfix_expression = cp_parser_cw_asm_relative_branch (parser);
+ if (postfix_expression != error_mark_node)
+ break;
+ }
+
+ /* If the functional-cast didn't work out, try a
+ compound-literal. */
+ if (cp_parser_allow_gnu_extensions_p (parser)
+ && cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN))
+ {
+ tree initializer_list = NULL_TREE;
+ bool saved_in_type_id_in_expr_p;
+
+ cp_parser_parse_tentatively (parser);
+ /* Consume the `('. */
+ cp_lexer_consume_token (parser->lexer);
+ /* Parse the type. */
+ saved_in_type_id_in_expr_p = parser->in_type_id_in_expr_p;
+ parser->in_type_id_in_expr_p = true;
+ type = cp_parser_type_id (parser);
+ parser->in_type_id_in_expr_p = saved_in_type_id_in_expr_p;
+ /* Look for the `)'. */
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ /* Look for the `{'. */
+ cp_parser_require (parser, CPP_OPEN_BRACE, "`{'");
+ /* If things aren't going well, there's no need to
+ keep going. */
+ if (!cp_parser_error_occurred (parser))
+ {
+ bool non_constant_p;
+ /* Parse the initializer-list. */
+ initializer_list
+ = cp_parser_initializer_list (parser, &non_constant_p);
+ /* Allow a trailing `,'. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
+ cp_lexer_consume_token (parser->lexer);
+ /* Look for the final `}'. */
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ }
+ /* If that worked, we're definitely looking at a
+ compound-literal expression. */
+ if (cp_parser_parse_definitely (parser))
+ {
+ /* Warn the user that a compound literal is not
+ allowed in standard C++. */
+ if (pedantic)
+ pedwarn ("ISO C++ forbids compound-literals");
+ /* Form the representation of the compound-literal. */
+ postfix_expression
+ = finish_compound_literal (type, initializer_list);
+ break;
+ }
+ }
+
+ /* It must be a primary-expression. */
+ postfix_expression = cp_parser_primary_expression (parser,
+ false,
+ &idk,
+ &qualifying_class);
+ }
+ break;
+ }
+
+ /* If we were avoiding committing to the processing of a
+ qualified-id until we knew whether or not we had a
+ pointer-to-member, we now know. */
+ if (qualifying_class)
+ {
+ bool done;
+
+ /* Peek at the next token. */
+ token = cp_lexer_peek_token (parser->lexer);
+ done = (token->type != CPP_OPEN_SQUARE
+ && token->type != CPP_OPEN_PAREN
+ && token->type != CPP_DOT
+ && token->type != CPP_DEREF
+ && token->type != CPP_PLUS_PLUS
+ && token->type != CPP_MINUS_MINUS);
+
+ postfix_expression = finish_qualified_id_expr (qualifying_class,
+ postfix_expression,
+ done,
+ address_p);
+ if (done)
+ return postfix_expression;
+ }
+
+ /* Keep looping until the postfix-expression is complete. */
+ while (true)
+ {
+ if (idk == CP_ID_KIND_UNQUALIFIED
+ && TREE_CODE (postfix_expression) == IDENTIFIER_NODE
+ && cp_lexer_next_token_is_not (parser->lexer, CPP_OPEN_PAREN))
+ /* It is not a Koenig lookup function call. */
+ postfix_expression
+ = unqualified_name_lookup_error (postfix_expression);
+
+ /* Peek at the next token. */
+ token = cp_lexer_peek_token (parser->lexer);
+
+ switch (token->type)
+ {
+ case CPP_OPEN_SQUARE:
+ /* postfix-expression [ expression ] */
+ {
+ tree index;
+
+ /* Consume the `[' token. */
+ cp_lexer_consume_token (parser->lexer);
+ /* Parse the index expression. */
+ index = cp_parser_expression (parser, false);
+ /* Look for the closing `]'. */
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+
+ /* Build the ARRAY_REF. */
+ postfix_expression
+ = grok_array_decl (postfix_expression, index);
+ idk = CP_ID_KIND_NONE;
+ /* Array references are not permitted in
+ constant-expressions. */
+ if (cp_parser_non_integral_constant_expression
+ (parser, "an array reference"))
+ postfix_expression = error_mark_node;
+ }
+ break;
+
+ case CPP_OPEN_PAREN:
+ /* postfix-expression ( expression ) */
+ {
+ tree expr;
+
+ cp_lexer_consume_token (parser->lexer);
+ expr = cp_parser_binary_expression (parser, false);
+
+ if (expr == error_mark_node)
+ {
+ postfix_expression = error_mark_node;
+ break;
+ }
+
+ postfix_expression =
+ cw_asm_build_register_offset (postfix_expression, expr);
+
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+
+ /* The POSTFIX_EXPRESSION is certainly no longer an id. */
+ idk = CP_ID_KIND_NONE;
+ }
+ break;
+
+ case CPP_DOT:
+ /* Disambiguation of asm's last operand followed by a '.'.
+ This happens when an asm instruction is followed by a
+ directive, such as .align. Bail out early. */
+ if (TREE_CODE (postfix_expression) == INTEGER_CST
+ || TREE_CODE (postfix_expression) == IDENTIFIER_NODE
+ || TREE_CODE (postfix_expression) == COMPOUND_EXPR)
+ return postfix_expression;
+
+ case CPP_DEREF:
+ /* postfix-expression . template [opt] id-expression
+ postfix-expression . pseudo-destructor-name
+ postfix-expression -> template [opt] id-expression
+ postfix-expression -> pseudo-destructor-name */
+ {
+ tree name;
+ bool dependent_p;
+ bool template_p;
+ tree scope = NULL_TREE;
+ enum cpp_ttype token_type = token->type;
+
+ /* If this is a `->' operator, dereference the pointer. */
+ if (token->type == CPP_DEREF)
+ postfix_expression = build_x_arrow (postfix_expression);
+ /* Check to see whether or not the expression is
+ type-dependent. */
+ dependent_p = type_dependent_expression_p (postfix_expression);
+ /* The identifier following the `->' or `.' is not
+ qualified. */
+ parser->scope = NULL_TREE;
+ parser->qualifying_scope = NULL_TREE;
+ parser->object_scope = NULL_TREE;
+ idk = CP_ID_KIND_NONE;
+ /* Enter the scope corresponding to the type of the object
+ given by the POSTFIX_EXPRESSION. */
+ if (!dependent_p
+ && TREE_TYPE (postfix_expression) != NULL_TREE)
+ {
+ scope = TREE_TYPE (postfix_expression);
+ /* According to the standard, no expression should
+ ever have reference type. Unfortunately, we do not
+ currently match the standard in this respect in
+ that our internal representation of an expression
+ may have reference type even when the standard says
+ it does not. Therefore, we have to manually obtain
+ the underlying type here. */
+ scope = non_reference (scope);
+ /* The type of the POSTFIX_EXPRESSION must be
+ complete. */
+ scope = complete_type_or_else (scope, NULL_TREE);
+ /* Let the name lookup machinery know that we are
+ processing a class member access expression. */
+ parser->context->object_type = scope;
+ /* If something went wrong, we want to be able to
+ discern that case, as opposed to the case where
+ there was no SCOPE due to the type of expression
+ being dependent. */
+ if (!scope)
+ scope = error_mark_node;
+ /* If the SCOPE was erroneous, make the various
+ semantic analysis functions exit quickly -- and
+ without issuing additional error messages. */
+ if (scope == error_mark_node)
+ postfix_expression = error_mark_node;
+ }
+
+ /* Consume the `.' or `->' operator. */
+ cp_lexer_consume_token (parser->lexer);
+ /* If the SCOPE is not a scalar type, we are looking at an
+ ordinary class member access expression, rather than a
+ pseudo-destructor-name. */
+ if (!scope || !SCALAR_TYPE_P (scope))
+ {
+ template_p = cp_parser_optional_template_keyword (parser);
+ /* Parse the id-expression. */
+ name = cp_parser_id_expression (parser,
+ template_p,
+ /*check_dependency_p=*/true,
+ /*template_p=*/NULL,
+ /*declarator_p=*/false);
+ /* In general, build a SCOPE_REF if the member name is
+ qualified. However, if the name was not dependent
+ and has already been resolved; there is no need to
+ build the SCOPE_REF. For example;
+
+ struct X { void f(); };
+ template <typename T> void f(T* t) { t->X::f(); }
+
+ Even though "t" is dependent, "X::f" is not and has
+ been resolved to a BASELINK; there is no need to
+ include scope information. */
+
+ /* But we do need to remember that there was an explicit
+ scope for virtual function calls. */
+ if (parser->scope)
+ idk = CP_ID_KIND_QUALIFIED;
+
+ if (name != error_mark_node
+ && !BASELINK_P (name)
+ && parser->scope)
+ {
+ name = build_nt (SCOPE_REF, parser->scope, name);
+ parser->scope = NULL_TREE;
+ parser->qualifying_scope = NULL_TREE;
+ parser->object_scope = NULL_TREE;
+ }
+ if (scope && name && BASELINK_P (name))
+ adjust_result_of_qualified_name_lookup
+ (name, BINFO_TYPE (BASELINK_BINFO (name)), scope);
+ postfix_expression
+ = cw_asm_cp_build_component_ref (postfix_expression, name);
+ }
+ /* Otherwise, try the pseudo-destructor-name production. */
+ else
+ {
+ tree s = NULL_TREE;
+ tree type;
+
+ /* Parse the pseudo-destructor-name. */
+ cp_parser_pseudo_destructor_name (parser, &s, &type);
+ /* Form the call. */
+ postfix_expression
+ = finish_pseudo_destructor_expr (postfix_expression,
+ s, TREE_TYPE (type));
+ }
+
+ /* We no longer need to look up names in the scope of the
+ object on the left-hand side of the `.' or `->'
+ operator. */
+ parser->context->object_type = NULL_TREE;
+
+ /* Outside of offsetof, these operators may not appear in
+ constant-expressions. */
+ if (!for_offsetof
+ && (cp_parser_non_integral_constant_expression
+ (parser, token_type == CPP_DEREF ? "'->'" : "`.'")))
+ postfix_expression = error_mark_node;
+ }
+ break;
+
+ default:
+ return postfix_expression;
+ }
+ }
+
+ /* We should never get here. */
+ abort ();
+ return error_mark_node;
+}
+
+int
+cw_asm_typename_or_reserved (tree value)
+{
+ return (C_IS_RESERVED_WORD (value));
+}
+/* APPLE LOCAL end CW asm blocks */
+
+/* APPLE LOCAL begin mainline */
+/* Objective-C++ Productions */
+
+
+/* Parse an Objective-C expression, which feeds into a primary-expression
+ above.
+
+ objc-expression:
+ objc-message-expression
+ objc-string-literal
+ objc-encode-expression
+ objc-protocol-expression
+ objc-selector-expression
+
+ Returns a tree representation of the expression. */
+
+static tree
+cp_parser_objc_expression (cp_parser* parser)
+{
+ /* Try to figure out what kind of declaration is present. */
+ cp_token *kwd = cp_lexer_peek_token (parser->lexer);
+
+ switch (kwd->type)
+ {
+ case CPP_OPEN_SQUARE:
+ return cp_parser_objc_message_expression (parser);
+
+ case CPP_OBJC_STRING:
+ kwd = cp_lexer_consume_token (parser->lexer);
+ return objc_build_string_object (kwd->value);
+
+ case CPP_KEYWORD:
+ switch (kwd->keyword)
+ {
+ case RID_AT_ENCODE:
+ return cp_parser_objc_encode_expression (parser);
+
+ case RID_AT_PROTOCOL:
+ return cp_parser_objc_protocol_expression (parser);
+
+ case RID_AT_SELECTOR:
+ return cp_parser_objc_selector_expression (parser);
+
+ default:
+ break;
+ }
+ default:
+ error ("misplaced `@%D' Objective-C++ construct", kwd->value);
+ cp_parser_skip_to_end_of_block_or_statement (parser);
+ }
+
+ return error_mark_node;
+}
+
+/* Parse an Objective-C message expression.
+
+ objc-message-expression:
+ [ objc-message-receiver objc-message-args ]
+
+ Returns a representation of an Objective-C message. */
+
+static tree
+cp_parser_objc_message_expression (cp_parser* parser)
+{
+ tree receiver, messageargs;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '['. */
+ receiver = cp_parser_objc_message_receiver (parser);
+ messageargs = cp_parser_objc_message_args (parser);
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+
+ return objc_build_message_expr (build_tree_list (receiver, messageargs));
+}
+
+/* Parse an objc-message-receiver.
+
+ objc-message-receiver:
+ expression
+ simple-type-specifier
+
+ Returns a representation of the type or expression. */
+
+static tree
+cp_parser_objc_message_receiver (cp_parser* parser)
+{
+ tree rcv;
+
+ /* An Objective-C message receiver may be either (1) a type
+ or (2) an expression. */
+ cp_parser_parse_tentatively (parser);
+ rcv = cp_parser_expression (parser, false);
+
+ if (cp_parser_parse_definitely (parser))
+ return rcv;
+
+ rcv = cp_parser_simple_type_specifier (parser,
+ /*decl_specs=*/NULL,
+ CP_PARSER_FLAGS_NONE);
+
+ return objc_get_class_reference (rcv);
+}
+
+/* Parse the arguments and selectors comprising an Objective-C message.
+
+ objc-message-args:
+ objc-selector
+ objc-selector-args
+ objc-selector-args , objc-comma-args
+
+ objc-selector-args:
+ objc-selector [opt] : assignment-expression
+ objc-selector-args objc-selector [opt] : assignment-expression
+
+ objc-comma-args:
+ assignment-expression
+ objc-comma-args , assignment-expression
+
+ Returns a TREE_LIST, with TREE_PURPOSE containing a list of
+ selector arguments and TREE_VALUE containing a list of comma
+ arguments. */
+
+static tree
+cp_parser_objc_message_args (cp_parser* parser)
+{
+ tree sel_args = NULL_TREE, addl_args = NULL_TREE;
+ bool maybe_unary_selector_p = true;
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ while (cp_parser_objc_selector_p (token->type) || token->type == CPP_COLON)
+ {
+ tree selector = NULL_TREE, arg;
+
+ if (token->type != CPP_COLON)
+ selector = cp_parser_objc_selector (parser);
+
+ /* Detect if we have a unary selector. */
+ if (maybe_unary_selector_p
+ && cp_lexer_next_token_is_not (parser->lexer, CPP_COLON))
+ return build_tree_list (selector, NULL_TREE);
+
+ maybe_unary_selector_p = false;
+ cp_parser_require (parser, CPP_COLON, "`:'");
+ arg = cp_parser_assignment_expression (parser, false);
+
+ sel_args
+ = chainon (sel_args,
+ build_tree_list (selector, arg));
+
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ /* Handle non-selector arguments, if any. */
+ while (token->type == CPP_COMMA)
+ {
+ tree arg;
+
+ cp_lexer_consume_token (parser->lexer);
+ arg = cp_parser_assignment_expression (parser, false);
+
+ addl_args
+ = chainon (addl_args,
+ build_tree_list (NULL_TREE, arg));
+
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ return build_tree_list (sel_args, addl_args);
+}
+
+/* Parse an Objective-C encode expression.
+
+ objc-encode-expression:
+ @encode objc-typename
+
+ Returns an encoded representation of the type argument. */
+
+static tree
+cp_parser_objc_encode_expression (cp_parser* parser)
+{
+ tree type;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@encode'. */
+ cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ type = complete_type (cp_parser_type_id (parser));
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+
+ if (!type)
+ {
+ error ("`@encode' must specify a type as an argument");
+ return error_mark_node;
+ }
+
+ return objc_build_encode_expr (type);
+}
+
+/* Parse an Objective-C @defs expression. */
+
+static tree
+cp_parser_objc_defs_expression (cp_parser *parser)
+{
+ tree name;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@defs'. */
+ cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ name = cp_parser_identifier (parser);
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+
+ return objc_get_class_ivars (name);
+}
+
+/* Parse an Objective-C protocol expression.
+
+ objc-protocol-expression:
+ @protocol ( identifier )
+
+ Returns a representation of the protocol expression. */
+
+static tree
+cp_parser_objc_protocol_expression (cp_parser* parser)
+{
+ tree proto;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@protocol'. */
+ cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ proto = cp_parser_identifier (parser);
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+
+ return objc_build_protocol_expr (proto);
+}
+
+/* Parse an Objective-C selector expression.
+
+ objc-selector-expression:
+ @selector ( objc-method-signature )
+
+ objc-method-signature:
+ objc-selector
+ objc-selector-seq
+
+ objc-selector-seq:
+ objc-selector :
+ objc-selector-seq objc-selector :
+
+ Returns a representation of the method selector. */
+
+static tree
+cp_parser_objc_selector_expression (cp_parser* parser)
+{
+ tree sel_seq = NULL_TREE;
+ bool maybe_unary_selector_p = true;
+ cp_token *token;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@selector'. */
+ cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ token = cp_lexer_peek_token (parser->lexer);
+
+ while (cp_parser_objc_selector_p (token->type) || token->type == CPP_COLON)
+ {
+ tree selector = NULL_TREE;
+
+ if (token->type != CPP_COLON)
+ selector = cp_parser_objc_selector (parser);
+
+ /* Detect if we have a unary selector. */
+ if (maybe_unary_selector_p
+ && cp_lexer_next_token_is_not (parser->lexer, CPP_COLON))
+ {
+ sel_seq = selector;
+ goto finish_selector;
+ }
+
+ maybe_unary_selector_p = false;
+ cp_parser_require (parser, CPP_COLON, "`:'");
+
+ sel_seq
+ = chainon (sel_seq,
+ build_tree_list (selector, NULL_TREE));
+
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ finish_selector:
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+
+ return objc_build_selector_expr (sel_seq);
+}
+
+/* Parse a list of identifiers.
+
+ objc-identifier-list:
+ identifier
+ objc-identifier-list , identifier
+
+ Returns a TREE_LIST of identifier nodes. */
+
+static tree
+cp_parser_objc_identifier_list (cp_parser* parser)
+{
+ tree list = build_tree_list (NULL_TREE, cp_parser_identifier (parser));
+ cp_token *sep = cp_lexer_peek_token (parser->lexer);
+
+ while (sep->type == CPP_COMMA)
+ {
+ cp_lexer_consume_token (parser->lexer); /* Eat ','. */
+ list = chainon (list,
+ build_tree_list (NULL_TREE,
+ cp_parser_identifier (parser)));
+ sep = cp_lexer_peek_token (parser->lexer);
+ }
+
+ return list;
+}
+
+/* Parse an Objective-C alias declaration.
+
+ objc-alias-declaration:
+ @compatibility_alias identifier identifier ;
+
+ This function registers the alias mapping with the Objective-C front-end.
+ It returns nothing. */
+
+static void
+cp_parser_objc_alias_declaration (cp_parser* parser)
+{
+ tree alias, orig;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@compatibility_alias'. */
+ alias = cp_parser_identifier (parser);
+ orig = cp_parser_identifier (parser);
+ objc_declare_alias (alias, orig);
+ cp_parser_consume_semicolon_at_end_of_statement (parser);
+}
+
+/* Parse an Objective-C class forward-declaration.
+
+ objc-class-declaration:
+ @class objc-identifier-list ;
+
+ The function registers the forward declarations with the Objective-C
+ front-end. It returns nothing. */
+
+static void
+cp_parser_objc_class_declaration (cp_parser* parser)
+{
+ cp_lexer_consume_token (parser->lexer); /* Eat '@class'. */
+ objc_declare_class (cp_parser_objc_identifier_list (parser));
+ cp_parser_consume_semicolon_at_end_of_statement (parser);
+}
+
+/* Parse a list of Objective-C protocol references.
+
+ objc-protocol-refs-opt:
+ objc-protocol-refs [opt]
+
+ objc-protocol-refs:
+ < objc-identifier-list >
+
+ Returns a TREE_LIST of identifiers, if any. */
+
+static tree
+cp_parser_objc_protocol_refs_opt (cp_parser* parser)
+{
+ tree protorefs = NULL_TREE;
+
+ if(cp_lexer_next_token_is (parser->lexer, CPP_LESS))
+ {
+ cp_lexer_consume_token (parser->lexer); /* Eat '<'. */
+ protorefs = cp_parser_objc_identifier_list (parser);
+ cp_parser_require (parser, CPP_GREATER, "`>'");
+ }
+
+ return protorefs;
+}
+
+static void
+cp_parser_objc_visibility_spec (cp_parser* parser)
+{
+ cp_token *vis = cp_lexer_peek_token (parser->lexer);
+
+ switch (vis->keyword)
+ {
+ case RID_AT_PRIVATE:
+ objc_set_visibility (2);
+ break;
+ case RID_AT_PROTECTED:
+ objc_set_visibility (0);
+ break;
+ case RID_AT_PUBLIC:
+ objc_set_visibility (1);
+ break;
+ default:
+ return;
+ }
+
+ /* Eat '@private'/'@protected'/'@public'. */
+ cp_lexer_consume_token (parser->lexer);
+}
+
+static void
+cp_parser_objc_method_type (cp_parser* parser)
+{
+ objc_set_method_type
+ (cp_lexer_consume_token (parser->lexer)->type == CPP_PLUS
+ ? PLUS_EXPR
+ : MINUS_EXPR);
+}
+
+static tree
+cp_parser_objc_protocol_qualifiers (cp_parser* parser)
+{
+ tree quals = NULL_TREE, node;
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ node = token->value;
+
+ while (node && TREE_CODE (node) == IDENTIFIER_NODE
+ && (node == ridpointers [(int) RID_IN]
+ || node == ridpointers [(int) RID_OUT]
+ || node == ridpointers [(int) RID_INOUT]
+ || node == ridpointers [(int) RID_BYCOPY]
+ || node == ridpointers [(int) RID_BYREF]
+ || node == ridpointers [(int) RID_ONEWAY]))
+ {
+ quals = tree_cons (NULL_TREE, node, quals);
+ cp_lexer_consume_token (parser->lexer);
+ token = cp_lexer_peek_token (parser->lexer);
+ node = token->value;
+ }
+
+ return quals;
+}
+
+static tree
+cp_parser_objc_typename (cp_parser* parser)
+{
+ tree typename = NULL_TREE;
+
+ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN))
+ {
+ tree proto_quals, cp_type = NULL_TREE;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '('. */
+ proto_quals = cp_parser_objc_protocol_qualifiers (parser);
+
+ /* An ObjC type name may consist of just protocol qualifiers, in which
+ case the type shall default to 'id'. */
+ if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN))
+ cp_type = cp_parser_type_id (parser);
+
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ typename = build_tree_list (proto_quals, cp_type);
+ }
+
+ return typename;
+}
+
+static bool
+cp_parser_objc_selector_p (enum cpp_ttype type)
+{
+ return (type == CPP_NAME || type == CPP_KEYWORD
+ || type == CPP_AND_AND || type == CPP_AND_EQ || type == CPP_AND
+ || type == CPP_OR || type == CPP_COMPL || type == CPP_NOT
+ || type == CPP_NOT_EQ || type == CPP_OR_OR || type == CPP_OR_EQ
+ || type == CPP_XOR || type == CPP_XOR_EQ);
+}
+
+static tree
+cp_parser_objc_selector (cp_parser* parser)
+{
+ cp_token *token = cp_lexer_consume_token (parser->lexer);
+
+ if (!cp_parser_objc_selector_p (token->type))
+ {
+ error ("invalid Objective-C++ selector name");
+ return error_mark_node;
+ }
+
+ /* C++ operator names are allowed to appear in ObjC selectors. */
+ switch (token->type)
+ {
+ case CPP_AND_AND: return get_identifier ("and");
+ case CPP_AND_EQ: return get_identifier ("and_eq");
+ case CPP_AND: return get_identifier ("bitand");
+ case CPP_OR: return get_identifier ("bitor");
+ case CPP_COMPL: return get_identifier ("compl");
+ case CPP_NOT: return get_identifier ("not");
+ case CPP_NOT_EQ: return get_identifier ("not_eq");
+ case CPP_OR_OR: return get_identifier ("or");
+ case CPP_OR_EQ: return get_identifier ("or_eq");
+ case CPP_XOR: return get_identifier ("xor");
+ case CPP_XOR_EQ: return get_identifier ("xor_eq");
+ default: return token->value;
+ }
+}
+
+static tree
+cp_parser_objc_method_keyword_params (cp_parser* parser)
+{
+ tree params = NULL_TREE;
+ bool maybe_unary_selector_p = true;
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ while (cp_parser_objc_selector_p (token->type) || token->type == CPP_COLON)
+ {
+ tree selector = NULL_TREE, typename, identifier;
+
+ if (token->type != CPP_COLON)
+ selector = cp_parser_objc_selector (parser);
+
+ /* Detect if we have a unary selector. */
+ if (maybe_unary_selector_p
+ && cp_lexer_next_token_is_not (parser->lexer, CPP_COLON))
+ return selector;
+
+ maybe_unary_selector_p = false;
+ cp_parser_require (parser, CPP_COLON, "`:'");
+ typename = cp_parser_objc_typename (parser);
+ identifier = cp_parser_identifier (parser);
+
+ params
+ = chainon (params,
+ objc_build_keyword_decl (selector,
+ typename,
+ identifier));
+
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ return params;
+}
+
+static tree
+cp_parser_objc_method_tail_params_opt (cp_parser* parser)
+{
+ tree params = make_node (TREE_LIST);
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ TREE_OVERFLOW (params) = 0; /* Initially, assume no ellipsis. */
+
+ while (token->type == CPP_COMMA)
+ {
+ cp_parameter_declarator *parmdecl;
+ tree parm;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat ','. */
+ token = cp_lexer_peek_token (parser->lexer);
+
+ if (token->type == CPP_ELLIPSIS)
+ {
+ cp_lexer_consume_token (parser->lexer); /* Eat '...'. */
+ TREE_OVERFLOW (params) = 1;
+ break;
+ }
+
+ parmdecl = cp_parser_parameter_declaration (parser, false, NULL);
+ parm = grokdeclarator (parmdecl->declarator,
+ &parmdecl->decl_specifiers,
+ PARM, /*initialized=*/0,
+ /*attrlist=*/NULL);
+
+ chainon (params, build_tree_list (NULL_TREE, parm));
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ return params;
+}
+
+static void
+cp_parser_objc_interstitial_code (cp_parser* parser)
+{
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ /* If the next token is `extern' and the following token is a string
+ literal, then we have a linkage specification. */
+ if (token->keyword == RID_EXTERN
+ && cp_parser_is_string_literal (cp_lexer_peek_nth_token (parser->lexer, 2)))
+ cp_parser_linkage_specification (parser);
+ /* Handle #pragma, if any. */
+ else if (token->type == CPP_PRAGMA)
+ cp_lexer_handle_pragma (parser->lexer);
+ /* Allow stray semicolons. */
+ else if (token->type == CPP_SEMICOLON)
+ cp_lexer_consume_token (parser->lexer);
+ /* Finally, try to parse a block-declaration, or a function-definition. */
+ else
+ cp_parser_block_declaration (parser, /*statement_p=*/false);
+}
+
+static tree
+cp_parser_objc_method_signature (cp_parser* parser)
+{
+ tree rettype, kwdparms, optparms;
+
+ cp_parser_objc_method_type (parser);
+ rettype = cp_parser_objc_typename (parser);
+ kwdparms = cp_parser_objc_method_keyword_params (parser);
+ optparms = cp_parser_objc_method_tail_params_opt (parser);
+
+ return objc_build_method_signature (rettype, kwdparms, optparms);
+}
+
+static void
+cp_parser_objc_method_prototype_list (cp_parser* parser)
+{
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ while (token->keyword != RID_AT_END)
+ {
+ if (token->type == CPP_PLUS || token->type == CPP_MINUS)
+ {
+ objc_add_method_declaration
+ (cp_parser_objc_method_signature (parser));
+ cp_parser_consume_semicolon_at_end_of_statement (parser);
+ }
+ else
+ /* Allow for interspersed non-ObjC++ code. */
+ cp_parser_objc_interstitial_code (parser);
+
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@end'. */
+ objc_finish_interface ();
+}
+
+static void
+cp_parser_objc_method_definition_list (cp_parser* parser)
+{
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ while (token->keyword != RID_AT_END)
+ {
+ tree meth;
+
+ if (token->type == CPP_PLUS || token->type == CPP_MINUS)
+ {
+ push_deferring_access_checks (dk_deferred);
+ objc_start_method_definition
+ (cp_parser_objc_method_signature (parser));
+
+ /* For historical reasons, we accept an optional semicolon. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))
+ cp_lexer_consume_token (parser->lexer);
+
+ perform_deferred_access_checks ();
+ stop_deferring_access_checks ();
+ meth = cp_parser_function_definition_after_declarator (parser,
+ false);
+ pop_deferring_access_checks ();
+ objc_finish_method_definition (meth);
+ }
+ else
+ /* Allow for interspersed non-ObjC++ code. */
+ cp_parser_objc_interstitial_code (parser);
+
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@end'. */
+ objc_finish_implementation ();
+}
+
+static void
+cp_parser_objc_class_ivars (cp_parser* parser)
+{
+ cp_token *token = cp_lexer_peek_token (parser->lexer);
+
+ if (token->type != CPP_OPEN_BRACE)
+ return; /* No ivars specified. */
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '{'. */
+ token = cp_lexer_peek_token (parser->lexer);
+
+ while (token->type != CPP_CLOSE_BRACE)
+ {
+ cp_decl_specifier_seq declspecs;
+ int decl_class_or_enum_p;
+ tree prefix_attributes;
+
+ cp_parser_objc_visibility_spec (parser);
+
+ if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_BRACE))
+ break;
+
+ cp_parser_decl_specifier_seq (parser,
+ CP_PARSER_FLAGS_OPTIONAL,
+ &declspecs,
+ &decl_class_or_enum_p);
+ prefix_attributes = declspecs.attributes;
+ declspecs.attributes = NULL_TREE;
+
+ /* Keep going until we hit the `;' at the end of the
+ declaration. */
+ while (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
+ {
+ tree width = NULL_TREE, attributes, first_attribute, decl;
+ cp_declarator *declarator = NULL;
+ int ctor_dtor_or_conv_p;
+
+ /* Check for a (possibly unnamed) bitfield declaration. */
+ token = cp_lexer_peek_token (parser->lexer);
+ if (token->type == CPP_COLON)
+ goto eat_colon;
+
+ if (token->type == CPP_NAME
+ && (cp_lexer_peek_nth_token (parser->lexer, 2)->type
+ == CPP_COLON))
+ {
+ /* Get the name of the bitfield. */
+ declarator = make_id_declarator (NULL_TREE,
+ cp_parser_identifier (parser));
+
+ eat_colon:
+ cp_lexer_consume_token (parser->lexer); /* Eat ':'. */
+ /* Get the width of the bitfield. */
+ width
+ = cp_parser_constant_expression (parser,
+ /*allow_non_constant=*/false,
+ NULL);
+ }
+ else
+ {
+ /* Parse the declarator. */
+ declarator
+ = cp_parser_declarator (parser, CP_PARSER_DECLARATOR_NAMED,
+ &ctor_dtor_or_conv_p,
+ /*parenthesized_p=*/NULL,
+ /*member_p=*/false);
+ }
+
+ /* Look for attributes that apply to the ivar. */
+ attributes = cp_parser_attributes_opt (parser);
+ /* Remember which attributes are prefix attributes and
+ which are not. */
+ first_attribute = attributes;
+ /* Combine the attributes. */
+ attributes = chainon (prefix_attributes, attributes);
+
+ if (width)
+ {
+ /* Create the bitfield declaration. */
+ decl = grokbitfield (declarator, &declspecs, width);
+ cplus_decl_attributes (&decl, attributes, /*flags=*/0);
+ }
+ else
+ decl = grokfield (declarator, &declspecs, NULL_TREE,
+ NULL_TREE, attributes);
+
+ /* Add the instance variable. */
+ objc_add_instance_variable (decl);
+
+ /* Reset PREFIX_ATTRIBUTES. */
+ while (attributes && TREE_CHAIN (attributes) != first_attribute)
+ attributes = TREE_CHAIN (attributes);
+ if (attributes)
+ TREE_CHAIN (attributes) = NULL_TREE;
+
+ token = cp_lexer_peek_token (parser->lexer);
+
+ if (token->type == CPP_COMMA)
+ {
+ cp_lexer_consume_token (parser->lexer); /* Eat ','. */
+ continue;
+ }
+ break;
+ }
+
+ cp_parser_consume_semicolon_at_end_of_statement (parser);
+ token = cp_lexer_peek_token (parser->lexer);
+ }
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '}'. */
+ /* For historical reasons, we accept an optional semicolon. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))
+ cp_lexer_consume_token (parser->lexer);
+}
+
+static void
+cp_parser_objc_protocol_declaration (cp_parser* parser)
+{
+ tree proto, protorefs;
+ cp_token *tok;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@protocol'. */
+ if (cp_lexer_next_token_is_not (parser->lexer, CPP_NAME))
+ {
+ error ("identifier expected after `@protocol'");
+ goto finish;
+ }
+
+ /* See if we have a foward declaration or a definition. */
+ tok = cp_lexer_peek_nth_token (parser->lexer, 2);
+
+ /* Try a forward declaration first. */
+ if (tok->type == CPP_COMMA || tok->type == CPP_SEMICOLON)
+ {
+ objc_declare_protocols (cp_parser_objc_identifier_list (parser));
+ finish:
+ cp_parser_consume_semicolon_at_end_of_statement (parser);
+ }
+
+ /* Ok, we got a full-fledged definition (or at least should). */
+ else
+ {
+ proto = cp_parser_identifier (parser);
+ protorefs = cp_parser_objc_protocol_refs_opt (parser);
+ objc_start_protocol (proto, protorefs);
+ cp_parser_objc_method_prototype_list (parser);
+ }
+}
+
+static void
+cp_parser_objc_superclass_or_category (cp_parser *parser, tree *super,
+ tree *categ)
+{
+ cp_token *next = cp_lexer_peek_token (parser->lexer);
+
+ *super = *categ = NULL_TREE;
+ if (next->type == CPP_COLON)
+ {
+ cp_lexer_consume_token (parser->lexer); /* Eat ':'. */
+ *super = cp_parser_identifier (parser);
+ }
+ else if (next->type == CPP_OPEN_PAREN)
+ {
+ cp_lexer_consume_token (parser->lexer); /* Eat '('. */
+ *categ = cp_parser_identifier (parser);
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ }
+}
+
+static void
+cp_parser_objc_class_interface (cp_parser* parser)
+{
+ tree name, super, categ, protos;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@interface'. */
+ name = cp_parser_identifier (parser);
+ cp_parser_objc_superclass_or_category (parser, &super, &categ);
+ protos = cp_parser_objc_protocol_refs_opt (parser);
+
+ /* We have either a class or a category on our hands. */
+ if (categ)
+ objc_start_category_interface (name, categ, protos);
+ else
+ {
+ objc_start_class_interface (name, super, protos);
+ /* Handle instance variable declarations, if any. */
+ cp_parser_objc_class_ivars (parser);
+ objc_continue_interface ();
+ }
+
+ cp_parser_objc_method_prototype_list (parser);
+}
+
+static void
+cp_parser_objc_class_implementation (cp_parser* parser)
+{
+ tree name, super, categ;
+
+ cp_lexer_consume_token (parser->lexer); /* Eat '@implementation'. */
+ name = cp_parser_identifier (parser);
+ cp_parser_objc_superclass_or_category (parser, &super, &categ);
+
+ /* We have either a class or a category on our hands. */
+ if (categ)
+ objc_start_category_implementation (name, categ);
+ else
+ {
+ objc_start_class_implementation (name, super);
+ /* Handle instance variable declarations, if any. */
+ cp_parser_objc_class_ivars (parser);
+ objc_continue_implementation ();
+ }
+
+ cp_parser_objc_method_definition_list (parser);
+}
+
+static void
+cp_parser_objc_end_implementation (cp_parser* parser)
+{
+ cp_lexer_consume_token (parser->lexer); /* Eat '@end'. */
+ objc_finish_implementation ();
+}
+
+static void
+cp_parser_objc_declaration (cp_parser* parser)
+{
+ /* Try to figure out what kind of declaration is present. */
+ cp_token *kwd = cp_lexer_peek_token (parser->lexer);
+
+ switch (kwd->keyword)
+ {
+ case RID_AT_ALIAS:
+ cp_parser_objc_alias_declaration (parser);
+ break;
+ case RID_AT_CLASS:
+ cp_parser_objc_class_declaration (parser);
+ break;
+ case RID_AT_PROTOCOL:
+ cp_parser_objc_protocol_declaration (parser);
+ break;
+ case RID_AT_INTERFACE:
+ cp_parser_objc_class_interface (parser);
+ break;
+ case RID_AT_IMPLEMENTATION:
+ cp_parser_objc_class_implementation (parser);
+ break;
+ case RID_AT_END:
+ cp_parser_objc_end_implementation (parser);
+ break;
+ default:
+ error ("misplaced `@%D' Objective-C++ construct", kwd->value);
+ cp_parser_skip_to_end_of_block_or_statement (parser);
+ }
+}
+
+/* Parse an Objective-C try-catch-finally statement.
+
+ objc-try-catch-finally-stmt:
+ @try compound-statement objc-catch-clause-seq [opt]
+ objc-finally-clause [opt]
+
+ objc-catch-clause-seq:
+ objc-catch-clause objc-catch-clause-seq [opt]
+
+ objc-catch-clause:
+ @catch ( exception-declaration ) compound-statement
+
+ objc-finally-clause
+ @finally compound-statement
+
+ Returns NULL_TREE. */
+
+static tree
+cp_parser_objc_try_catch_finally_statement (cp_parser *parser) {
+ location_t location;
+ tree stmt;
+
+ cp_parser_require_keyword (parser, RID_AT_TRY, "`@try'");
+ location = cp_lexer_peek_token (parser->lexer)->location;
+ /* NB: The @try block needs to be wrapped in its own STATEMENT_LIST
+ node, lest it get absorbed into the surrounding block. */
+ stmt = push_stmt_list ();
+ cp_parser_compound_statement (parser, NULL, false);
+ objc_begin_try_stmt (location, pop_stmt_list (stmt));
+
+ while (cp_lexer_next_token_is_keyword (parser->lexer, RID_AT_CATCH))
+ {
+ cp_parameter_declarator *parmdecl;
+ tree parm;
+
+ cp_lexer_consume_token (parser->lexer);
+ cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ parmdecl = cp_parser_parameter_declaration (parser, false, NULL);
+ parm = grokdeclarator (parmdecl->declarator,
+ &parmdecl->decl_specifiers,
+ PARM, /*initialized=*/0,
+ /*attrlist=*/NULL);
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ objc_begin_catch_clause (parm);
+ cp_parser_compound_statement (parser, NULL, false);
+ objc_finish_catch_clause ();
+ }
+
+ if (cp_lexer_next_token_is_keyword (parser->lexer, RID_AT_FINALLY))
+ {
+ cp_lexer_consume_token (parser->lexer);
+ location = cp_lexer_peek_token (parser->lexer)->location;
+ /* NB: The @finally block needs to be wrapped in its own STATEMENT_LIST
+ node, lest it get absorbed into the surrounding block. */
+ stmt = push_stmt_list ();
+ cp_parser_compound_statement (parser, NULL, false);
+ objc_build_finally_clause (location, pop_stmt_list (stmt));
+ }
+
+ return objc_finish_try_stmt ();
+}
+
+/* Parse an Objective-C synchronized statement.
+
+ objc-synchronized-stmt:
+ @synchronized ( expression ) compound-statement
+
+ Returns NULL_TREE. */
+
+static tree
+cp_parser_objc_synchronized_statement (cp_parser *parser) {
+ location_t location;
+ tree lock, stmt;
+
+ cp_parser_require_keyword (parser, RID_AT_SYNCHRONIZED, "`@synchronized'");
+
+ location = cp_lexer_peek_token (parser->lexer)->location;
+ cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ lock = cp_parser_expression (parser, false);
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+
+ /* NB: The @synchronized block needs to be wrapped in its own STATEMENT_LIST
+ node, lest it get absorbed into the surrounding block. */
+ stmt = push_stmt_list ();
+ cp_parser_compound_statement (parser, NULL, false);
+
+ return objc_build_synchronized (location, lock, pop_stmt_list (stmt));
+}
+
+/* Parse an Objective-C throw statement.
+
+ objc-throw-stmt:
+ @throw assignment-expression [opt] ;
+
+ Returns a constructed '@throw' statement. */
+
+static tree
+cp_parser_objc_throw_statement (cp_parser *parser) {
+ tree expr = NULL_TREE;
+
+ cp_parser_require_keyword (parser, RID_AT_THROW, "`@throw'");
+
+ if (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
+ expr = cp_parser_assignment_expression (parser, false);
+
+ cp_parser_consume_semicolon_at_end_of_statement (parser);
+
+ return objc_build_throw_stmt (expr);
+}
+
+static tree
+cp_parser_objc_statement (cp_parser * parser) {
+ /* Try to figure out what kind of declaration is present. */
+ cp_token *kwd = cp_lexer_peek_token (parser->lexer);
+
+ switch (kwd->keyword)
+ {
+ case RID_AT_TRY:
+ return cp_parser_objc_try_catch_finally_statement (parser);
+ case RID_AT_SYNCHRONIZED:
+ return cp_parser_objc_synchronized_statement (parser);
+ case RID_AT_THROW:
+ return cp_parser_objc_throw_statement (parser);
+ default:
+ error ("misplaced `@%D' Objective-C++ construct", kwd->value);
+ cp_parser_skip_to_end_of_block_or_statement (parser);
+ }
+
+ return error_mark_node;
+}
+/* APPLE LOCAL end mainline */
/* The parser. */
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 7025deff788..28b9b6471bc 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -34,7 +34,11 @@ Boston, MA 02111-1307, USA. */
#include "tree.h"
#include "pointer-set.h"
#include "flags.h"
+/* APPLE LOCAL mainline */
+#include "c-common.h"
#include "cp-tree.h"
+/* APPLE LOCAL mainline */
+#include "cp-objcp-common.h"
#include "tree-inline.h"
#include "decl.h"
#include "output.h"
@@ -1353,8 +1357,8 @@ determine_specialization (tree template_id,
/* Count the number of template headers specified for this
specialization. */
header_count = 0;
- for (b = current_binding_level;
- b->kind == sk_template_parms || b->kind == sk_template_spec;
+ for (b = current_binding_level;
+ b->kind == sk_template_parms;
b = b->level_chain)
++header_count;
@@ -1423,6 +1427,14 @@ determine_specialization (tree template_id,
if (header_count && header_count != template_count + 1)
continue;
+ /* Check that the number of template arguments at the
+ innermost level for DECL is the same as for FN. */
+ if (current_binding_level->kind == sk_template_parms
+ && !current_binding_level->explicit_spec_p
+ && (TREE_VEC_LENGTH (DECL_INNERMOST_TEMPLATE_PARMS (fn))
+ != TREE_VEC_LENGTH (TREE_VALUE (current_template_parms))))
+ continue;
+
/* See whether this function might be a specialization of this
template. */
targs = get_bindings (fn, decl, explicit_targs);
@@ -4596,6 +4608,8 @@ lookup_template_class (tree d1,
= TREE_PRIVATE (TYPE_STUB_DECL (template_type));
TREE_PROTECTED (type_decl)
= TREE_PROTECTED (TYPE_STUB_DECL (template_type));
+ DECL_IN_SYSTEM_HEADER (type_decl)
+ = DECL_IN_SYSTEM_HEADER (template);
/* Set up the template information. We have to figure out which
template is the immediate parent if this is a full
@@ -4988,7 +5002,10 @@ push_tinst_level (tree d)
return 0;
}
- new = make_tinst_level (d, input_location);
+ new = make_node (TINST_LEVEL);
+ TINST_DECL (new) = d;
+ TINST_LOCATION (new) = input_location;
+ TINST_IN_SYSTEM_HEADER_P (new) = in_system_header;
TREE_CHAIN (new) = current_tinst_level;
current_tinst_level = new;
@@ -5013,6 +5030,7 @@ pop_tinst_level (void)
/* Restore the filename and line number stashed away when we started
this instantiation. */
input_location = TINST_LOCATION (old);
+ in_system_header = TINST_IN_SYSTEM_HEADER_P (old);
current_tinst_level = TREE_CHAIN (old);
--tinst_depth;
++tinst_level_tick;
@@ -5491,7 +5509,9 @@ instantiate_class_template (tree type)
/* Set the input location to the template definition. This is needed
if tsubsting causes an error. */
- input_location = DECL_SOURCE_LOCATION (TYPE_NAME (pattern));
+ typedecl = TYPE_MAIN_DECL (type);
+ input_location = DECL_SOURCE_LOCATION (typedecl);
+ in_system_header = DECL_IN_SYSTEM_HEADER (typedecl);
TYPE_HAS_CONSTRUCTOR (type) = TYPE_HAS_CONSTRUCTOR (pattern);
TYPE_HAS_NEW_OPERATOR (type) = TYPE_HAS_NEW_OPERATOR (pattern);
@@ -5805,7 +5825,6 @@ instantiate_class_template (tree type)
the class itself. This puts error messages involving generated
implicit functions at a predictable point, and the same point
that would be used for non-template classes. */
- typedecl = TYPE_MAIN_DECL (type);
input_location = DECL_SOURCE_LOCATION (typedecl);
unreverse_member_declarations (type);
@@ -6468,8 +6487,9 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
SET_DECL_TEMPLATE_PARM_P (r);
type = tsubst (TREE_TYPE (t), args, complain, in_decl);
+ type = type_decays_to (type);
TREE_TYPE (r) = type;
- c_apply_type_quals_to_decl (cp_type_quals (type), r);
+ cp_apply_type_quals_to_decl (cp_type_quals (type), r);
if (DECL_INITIAL (r))
{
@@ -6499,7 +6519,7 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
if (type == error_mark_node)
return error_mark_node;
TREE_TYPE (r) = type;
- c_apply_type_quals_to_decl (cp_type_quals (type), r);
+ cp_apply_type_quals_to_decl (cp_type_quals (type), r);
/* We don't have to set DECL_CONTEXT here; it is set by
finish_member_declaration. */
@@ -6599,7 +6619,7 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
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);
+ cp_apply_type_quals_to_decl (cp_type_quals (type), r);
DECL_CONTEXT (r) = ctx;
/* Clear out the mangled name and RTL for the instantiation. */
SET_DECL_ASSEMBLER_NAME (r, NULL_TREE);
@@ -7218,22 +7238,18 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
gcc_assert (TREE_CODE (type) != METHOD_TYPE);
if (TREE_CODE (type) == FUNCTION_TYPE)
{
- /* This is really a method type. The cv qualifiers of the
- this pointer should _not_ be determined by the cv
- qualifiers of the class type. They should be held
- somewhere in the FUNCTION_TYPE, but we don't do that at
- the moment. Consider
- typedef void (Func) () const;
-
- template <typename T1> void Foo (Func T1::*);
-
- */
+ /* The type of the implicit object parameter gets its
+ cv-qualifiers from the FUNCTION_TYPE. */
tree method_type;
-
- method_type = build_method_type_directly (TYPE_MAIN_VARIANT (r),
+ tree this_type = cp_build_qualified_type (TYPE_MAIN_VARIANT (r),
+ cp_type_quals (type));
+ tree memptr;
+ method_type = build_method_type_directly (this_type,
TREE_TYPE (type),
TYPE_ARG_TYPES (type));
- return build_ptrmemfunc_type (build_pointer_type (method_type));
+ memptr = build_ptrmemfunc_type (build_pointer_type (method_type));
+ return cp_build_qualified_type_real (memptr, cp_type_quals (t),
+ complain);
}
else
return cp_build_qualified_type_real (build_ptrmem_type (r, type),
@@ -8839,6 +8855,18 @@ tsubst_copy_and_build (tree t,
return t;
default:
+ /* APPLE LOCAL begin mainline */
+ /* Handle Objective-C++ constructs, if appropriate. */
+ {
+ tree subst
+ = objcp_tsubst_copy_and_build (t, args, complain,
+ in_decl, /*function_p=*/false);
+
+ if (subst)
+ return subst;
+ }
+ /* APPLE LOCAL end mainline */
+
return tsubst_copy (t, args, complain, in_decl);
}
@@ -9342,17 +9370,14 @@ type_unification_real (tree tparms,
else
type = arg;
- if (strict == DEDUCE_EXACT || strict == DEDUCE_ORDER)
- {
- if (same_type_p (parm, type))
- continue;
- }
- else
- /* It might work; we shouldn't check now, because we might
- get into infinite recursion. Overload resolution will
- handle it. */
+ /* APPLE LOCAL begin mainline 4.1 2005-06-17 4122333 */
+ if (same_type_p (parm, type))
continue;
-
+ if (strict != DEDUCE_EXACT && strict != DEDUCE_ORDER
+ && can_convert_arg (parm, type, TYPE_P (arg) ? NULL_TREE : arg))
+ continue;
+ /* APPLE LOCAL end mainline 4.1 2005-06-17 4122333 */
+
return 1;
}
@@ -10251,6 +10276,37 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict)
DEDUCE_EXACT, 0, -1);
case OFFSET_TYPE:
+ /* Unify a pointer to member with a pointer to member function, which
+ deduces the type of the member as a function type. */
+ if (TYPE_PTRMEMFUNC_P (arg))
+ {
+ tree method_type;
+ tree fntype;
+ cp_cv_quals cv_quals;
+
+ /* Check top-level cv qualifiers */
+ if (!check_cv_quals_for_unify (UNIFY_ALLOW_NONE, arg, parm))
+ return 1;
+
+ if (unify (tparms, targs, TYPE_OFFSET_BASETYPE (parm),
+ TYPE_PTRMEMFUNC_OBJECT_TYPE (arg), UNIFY_ALLOW_NONE))
+ return 1;
+
+ /* Determine the type of the function we are unifying against. */
+ method_type = TREE_TYPE (TYPE_PTRMEMFUNC_FN_TYPE (arg));
+ fntype =
+ build_function_type (TREE_TYPE (method_type),
+ TREE_CHAIN (TYPE_ARG_TYPES (method_type)));
+
+ /* Extract the cv-qualifiers of the member function from the
+ implicit object parameter and place them on the function
+ type to be restored later. */
+ cv_quals =
+ cp_type_quals(TREE_TYPE (TREE_VALUE (TYPE_ARG_TYPES (method_type))));
+ fntype = build_qualified_type (fntype, cv_quals);
+ return unify (tparms, targs, TREE_TYPE (parm), fntype, strict);
+ }
+
if (TREE_CODE (arg) != OFFSET_TYPE)
return 1;
if (unify (tparms, targs, TYPE_OFFSET_BASETYPE (parm),
@@ -11057,13 +11113,21 @@ regenerate_decl_from_template (tree decl, tree tmpl)
while (decl_parm)
{
tree parm_type;
+ tree attributes;
if (DECL_NAME (decl_parm) != DECL_NAME (pattern_parm))
DECL_NAME (decl_parm) = DECL_NAME (pattern_parm);
parm_type = tsubst (TREE_TYPE (pattern_parm), args, tf_error,
NULL_TREE);
+ parm_type = type_decays_to (parm_type);
if (!same_type_p (TREE_TYPE (decl_parm), parm_type))
TREE_TYPE (decl_parm) = parm_type;
+ attributes = DECL_ATTRIBUTES (pattern_parm);
+ if (DECL_ATTRIBUTES (decl_parm) != attributes)
+ {
+ DECL_ATTRIBUTES (decl_parm) = attributes;
+ cplus_decl_attributes (&decl_parm, attributes, /*flags=*/0);
+ }
decl_parm = TREE_CHAIN (decl_parm);
pattern_parm = TREE_CHAIN (pattern_parm);
}
@@ -11449,6 +11513,7 @@ instantiate_pending_templates (int retries)
tree last = NULL_TREE;
int reconsider;
location_t saved_loc = input_location;
+ int saved_in_system_header = in_system_header;
/* Instantiating templates may trigger vtable generation. This in turn
may require further template instantiations. We place a limit here
@@ -11533,6 +11598,7 @@ instantiate_pending_templates (int retries)
while (reconsider);
input_location = saved_loc;
+ in_system_header = saved_in_system_header;
}
/* Substitute ARGVEC into T, which is a list of initializers for
@@ -12006,6 +12072,7 @@ value_dependent_expression_p (tree expression)
{
switch (TREE_CODE_CLASS (TREE_CODE (expression)))
{
+ case tcc_reference:
case tcc_unary:
return (value_dependent_expression_p
(TREE_OPERAND (expression, 0)));
@@ -12029,7 +12096,6 @@ value_dependent_expression_p (tree expression)
return true;
return false;
}
- case tcc_reference:
case tcc_statement:
/* These cannot be value dependent. */
return false;
@@ -12349,7 +12415,8 @@ build_non_dependent_expr (tree expr)
if (TREE_CODE (inner_expr) == OVERLOAD
|| TREE_CODE (inner_expr) == FUNCTION_DECL
|| TREE_CODE (inner_expr) == TEMPLATE_DECL
- || TREE_CODE (inner_expr) == TEMPLATE_ID_EXPR)
+ || TREE_CODE (inner_expr) == TEMPLATE_ID_EXPR
+ || TREE_CODE (inner_expr) == OFFSET_REF)
return expr;
/* There is no need to return a proxy for a variable. */
if (TREE_CODE (expr) == VAR_DECL)
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index ebc213d7812..73d8533f2af 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -285,8 +285,7 @@ perform_deferred_access_checks (void)
{
tree deferred_check;
- for (deferred_check = (VEC_last (deferred_access, deferred_access_stack)
- ->deferred_access_checks);
+ for (deferred_check = get_deferred_access_checks ();
deferred_check;
deferred_check = TREE_CHAIN (deferred_check))
/* Check access. */
@@ -401,7 +400,8 @@ anon_aggr_type_p (tree node)
/* Finish a scope. */
-static tree
+/* APPLE LOCAL mainline */
+tree
do_poplevel (tree stmt_list)
{
tree block = NULL;
@@ -1166,7 +1166,8 @@ finish_asm_stmt (int volatile_p, tree string, tree output_operands,
otherwise we'll get an error. Gross, but ... */
STRIP_NOPS (operand);
- if (!lvalue_or_else (operand, lv_asm))
+ /* APPLE LOCAL non-lvalue assign */
+ if (!lvalue_or_else (&operand, lv_asm))
operand = error_mark_node;
constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (t)));
@@ -1225,7 +1226,8 @@ finish_asm_stmt (int volatile_p, tree string, tree output_operands,
r = build_stmt (ASM_EXPR, string,
output_operands, input_operands,
- clobbers);
+ /* APPLE LOCAL CW asm blocks. */
+ clobbers, NULL_TREE);
ASM_VOLATILE_P (r) = volatile_p;
r = maybe_cleanup_point_expr_void (r);
return add_stmt (r);
@@ -1524,6 +1526,9 @@ finish_stmt_expr_expr (tree expr, tree stmt_expr)
{
tree result = NULL_TREE;
+ if (error_operand_p (expr))
+ return error_mark_node;
+
if (expr)
{
if (!processing_template_decl && !VOID_TYPE_P (TREE_TYPE (expr)))
@@ -1994,7 +1999,8 @@ finish_compound_literal (tree type, tree initializer_list)
implies that the array has two elements. */
if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type))
- complete_array_type (type, compound_literal, 1);
+ cp_complete_array_type (&TREE_TYPE (compound_literal),
+ compound_literal, 1);
}
return compound_literal;
@@ -2126,15 +2132,6 @@ begin_class_definition (tree t)
pushtag (make_anon_name (), t, 0);
}
- /* If this type was already complete, and we see another definition,
- that's an error. */
- if (COMPLETE_TYPE_P (t))
- {
- error ("redefinition of %q#T", t);
- cp_error_at ("previous definition of %q#T", t);
- return error_mark_node;
- }
-
/* Update the location of the decl. */
DECL_SOURCE_LOCATION (TYPE_NAME (t)) = input_location;
@@ -2441,6 +2438,27 @@ finish_id_expression (tree id_expression,
if (decl == error_mark_node)
{
/* Name lookup failed. */
+ /* APPLE LOCAL begin CW asm blocks */
+ /* CW assembly has automagical handling of register names.
+ It's also handy to assume undeclared names as labels,
+ although it would be better to have a second pass and
+ complain about names in the block that are not
+ labels. */
+ if (inside_cw_asm_block)
+ {
+ tree new_id;
+ if ((new_id = cw_asm_reg_name (id_expression)))
+ return new_id;
+#ifdef CW_ASM_SPECIAL_LABEL
+ if ((new_id = CW_ASM_SPECIAL_LABEL (id_expression)))
+ return new_id;
+#endif
+ /* Assume undeclared symbols are labels. */
+ new_id = get_cw_asm_label (id_expression);
+ return new_id;
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
if (scope
&& (!TYPE_P (scope)
|| (!dependent_type_p (scope)
@@ -2485,6 +2503,15 @@ finish_id_expression (tree id_expression,
*error_msg = "missing template arguments";
return error_mark_node;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Accept raw type decls, which will be used in offset-getting
+ expressions like "type.field(r3)". */
+ else if (TREE_CODE (decl) == TYPE_DECL && inside_cw_asm_block)
+ {
+ *idk = CP_ID_KIND_NONE;
+ return decl;
+ }
+ /* APPLE LOCAL end CW asm blocks */
else if (TREE_CODE (decl) == TYPE_DECL
|| TREE_CODE (decl) == NAMESPACE_DECL)
{
@@ -2630,11 +2657,6 @@ finish_id_expression (tree id_expression,
need. */
if (TREE_CODE (id_expression) == TEMPLATE_ID_EXPR)
return id_expression;
- /* Since this name was dependent, the expression isn't
- constant -- yet. No error is issued because it might be
- constant when things are instantiated. */
- if (integral_constant_expression_p)
- *non_integral_constant_expression_p = true;
*idk = CP_ID_KIND_UNQUALIFIED_DEPENDENT;
/* If we found a variable, then name lookup during the
instantiation will always resolve to the same VAR_DECL
@@ -2732,7 +2754,11 @@ finish_id_expression (tree id_expression,
}
else if (is_overloaded_fn (decl))
{
- tree first_fn = OVL_CURRENT (decl);
+ /* APPLE LOCAL begin C++ */
+ tree first_fn = OVL_CURRENT (BASELINK_P (decl)
+ ? BASELINK_FUNCTIONS (decl)
+ : decl);
+ /* APPLE LOCAL end C++ */
if (TREE_CODE (first_fn) == TEMPLATE_DECL)
first_fn = DECL_TEMPLATE_RESULT (first_fn);
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 8a264d7afa9..8dcfd5677d7 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -33,6 +33,8 @@ Boston, MA 02111-1307, USA. */
#include "insn-config.h"
#include "integrate.h"
#include "tree-inline.h"
+/* APPLE LOCAL mainline */
+#include "debug.h"
#include "target.h"
static tree bot_manip (tree *, int *, void *);
@@ -111,6 +113,8 @@ lvalue_p_1 (tree ref,
case STRING_CST:
return clk_ordinary;
+ /* APPLE LOCAL mainline */
+ case CONST_DECL:
case VAR_DECL:
if (TREE_READONLY (ref) && ! TREE_STATIC (ref)
&& DECL_LANG_SPECIFIC (ref)
@@ -499,11 +503,10 @@ cp_build_qualified_type_real (tree type,
return build_ptrmemfunc_type (t);
}
- /* A reference, function or method type shall not be cv qualified.
+ /* A reference or method type shall not be cv qualified.
[dcl.ref], [dct.fct] */
if (type_quals & (TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE)
&& (TREE_CODE (type) == REFERENCE_TYPE
- || TREE_CODE (type) == FUNCTION_TYPE
|| TREE_CODE (type) == METHOD_TYPE))
{
bad_quals |= type_quals & (TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE);
@@ -511,10 +514,11 @@ cp_build_qualified_type_real (tree type,
}
/* A restrict-qualified type must be a pointer (or reference)
- to object or incomplete type. */
+ to object or incomplete type, or a function type. */
if ((type_quals & TYPE_QUAL_RESTRICT)
&& TREE_CODE (type) != TEMPLATE_TYPE_PARM
&& TREE_CODE (type) != TYPENAME_TYPE
+ && TREE_CODE (type) != FUNCTION_TYPE
&& !POINTER_TYPE_P (type))
{
bad_quals |= TYPE_QUAL_RESTRICT;
@@ -1459,6 +1463,7 @@ cp_tree_equal (tree t1, tree t2)
case FUNCTION_DECL:
case TEMPLATE_DECL:
case IDENTIFIER_NODE:
+ case SSA_NAME:
return false;
case BASELINK:
@@ -1850,17 +1855,6 @@ handle_init_priority_attribute (tree* node,
}
}
-/* Return a new TINST_LEVEL for DECL at location locus. */
-tree
-make_tinst_level (tree decl, location_t locus)
-{
- tree tinst_level = make_node (TINST_LEVEL);
- TREE_CHAIN (tinst_level) = NULL_TREE;
- TINST_DECL (tinst_level) = decl;
- TINST_LOCATION (tinst_level) = locus;
- return tinst_level;
-}
-
/* Return a new PTRMEM_CST of the indicated TYPE. The MEMBER is the
thing pointed to by the constant. */
@@ -2256,7 +2250,10 @@ stabilize_init (tree init, tree *initp)
if (TREE_CODE (t) == COND_EXPR)
return false;
- stabilize_call (t, initp);
+ /* The TARGET_EXPR might be initializing via bitwise copy from
+ another variable; leave that alone. */
+ if (TREE_SIDE_EFFECTS (t))
+ stabilize_call (t, initp);
}
return true;
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index e0dc1ebdb49..47bd564b903 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -519,6 +519,16 @@ composite_pointer_type (tree t1, tree t2, tree arg1, tree arg2,
return build_type_attribute_variant (result_type, attributes);
}
+ /* APPLE LOCAL begin mainline */
+ if (c_dialect_objc () && TREE_CODE (t1) == POINTER_TYPE
+ && TREE_CODE (t2) == POINTER_TYPE)
+ {
+ if (objc_compare_types (t1, t2, -3, NULL_TREE))
+ /* APPLE LOCAL 4154928 */
+ return objc_common_type (t1, t2);
+ }
+
+ /* APPLE LOCAL end mainline */
/* [expr.eq] permits the application of a pointer conversion to
bring the pointers to a common type. */
if (TREE_CODE (t1) == POINTER_TYPE && TREE_CODE (t2) == POINTER_TYPE
@@ -921,8 +931,9 @@ comp_array_types (tree t1, tree t2, bool allow_redeclaration)
bool
comptypes (tree t1, tree t2, int strict)
{
- int retval;
-
+ /* APPLE LOCAL begin mainline */
+ /* Variable 'retval' removed. */
+ /* APPLE LOCAL end mainline */
if (t1 == t2)
return true;
@@ -985,9 +996,7 @@ comptypes (tree t1, tree t2, int strict)
&& TYPE_MAIN_VARIANT (t1) == TYPE_MAIN_VARIANT (t2))
return true;
- if (!(*targetm.comp_type_attributes) (t1, t2))
- return false;
-
+ /* Compare the types. Break out if they could be the same. */
switch (TREE_CODE (t1))
{
case TEMPLATE_TEMPLATE_PARM:
@@ -1000,7 +1009,7 @@ comptypes (tree t1, tree t2, int strict)
DECL_TEMPLATE_PARMS (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL (t2))))
return false;
if (TREE_CODE (t1) == TEMPLATE_TEMPLATE_PARM)
- return true;
+ break;
/* Don't check inheritance. */
strict = COMPARE_STRICT;
/* Fall through. */
@@ -1011,70 +1020,86 @@ comptypes (tree t1, tree t2, int strict)
&& (TYPE_TI_TEMPLATE (t1) == TYPE_TI_TEMPLATE (t2)
|| TREE_CODE (t1) == BOUND_TEMPLATE_TEMPLATE_PARM)
&& comp_template_args (TYPE_TI_ARGS (t1), TYPE_TI_ARGS (t2)))
- return true;
+ break;
if ((strict & COMPARE_BASE) && DERIVED_FROM_P (t1, t2))
- return true;
+ break;
else if ((strict & COMPARE_DERIVED) && DERIVED_FROM_P (t2, t1))
- return true;
-
- /* We may be dealing with Objective-C instances... */
- if (TREE_CODE (t1) == RECORD_TYPE
- && ((retval = objc_comptypes (t1, t2, 0)) >= 0))
- return retval;
- /* ...but fall through if we are not. */
-
+ break;
+ /* APPLE LOCAL mainline */
+ /* Call to 'objc_comptypes' has been removed. */
return false;
case OFFSET_TYPE:
if (!comptypes (TYPE_OFFSET_BASETYPE (t1), TYPE_OFFSET_BASETYPE (t2),
strict & ~COMPARE_REDECLARATION))
return false;
- return same_type_p (TREE_TYPE (t1), TREE_TYPE (t2));
+ if (!same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+ return false;
+ break;
case POINTER_TYPE:
case REFERENCE_TYPE:
- return TYPE_MODE (t1) == TYPE_MODE (t2)
- && TYPE_REF_CAN_ALIAS_ALL (t1) == TYPE_REF_CAN_ALIAS_ALL (t2)
- && same_type_p (TREE_TYPE (t1), TREE_TYPE (t2));
+ if (TYPE_MODE (t1) != TYPE_MODE (t2)
+ || TYPE_REF_CAN_ALIAS_ALL (t1) != TYPE_REF_CAN_ALIAS_ALL (t2)
+ || !same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+ return false;
+ break;
case METHOD_TYPE:
case FUNCTION_TYPE:
if (!same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
return false;
- return compparms (TYPE_ARG_TYPES (t1), TYPE_ARG_TYPES (t2));
+ if (!compparms (TYPE_ARG_TYPES (t1), TYPE_ARG_TYPES (t2)))
+ return false;
+ break;
case ARRAY_TYPE:
/* Target types must match incl. qualifiers. */
- return comp_array_types (t1, t2, !!(strict & COMPARE_REDECLARATION));
+ if (!comp_array_types (t1, t2, !!(strict & COMPARE_REDECLARATION)))
+ return false;
+ break;
case TEMPLATE_TYPE_PARM:
- return (TEMPLATE_TYPE_IDX (t1) == TEMPLATE_TYPE_IDX (t2)
- && TEMPLATE_TYPE_LEVEL (t1) == TEMPLATE_TYPE_LEVEL (t2));
+ if (TEMPLATE_TYPE_IDX (t1) != TEMPLATE_TYPE_IDX (t2)
+ || TEMPLATE_TYPE_LEVEL (t1) != TEMPLATE_TYPE_LEVEL (t2))
+ return false;
+ break;
case TYPENAME_TYPE:
if (!cp_tree_equal (TYPENAME_TYPE_FULLNAME (t1),
TYPENAME_TYPE_FULLNAME (t2)))
return false;
- return same_type_p (TYPE_CONTEXT (t1), TYPE_CONTEXT (t2));
+ if (!same_type_p (TYPE_CONTEXT (t1), TYPE_CONTEXT (t2)))
+ return false;
+ break;
case UNBOUND_CLASS_TEMPLATE:
if (!cp_tree_equal (TYPE_IDENTIFIER (t1), TYPE_IDENTIFIER (t2)))
return false;
- return same_type_p (TYPE_CONTEXT (t1), TYPE_CONTEXT (t2));
+ if (!same_type_p (TYPE_CONTEXT (t1), TYPE_CONTEXT (t2)))
+ return false;
+ break;
case COMPLEX_TYPE:
- return same_type_p (TREE_TYPE (t1), TREE_TYPE (t2));
+ if (!same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+ return false;
+ break;
case VECTOR_TYPE:
- return TYPE_VECTOR_SUBPARTS (t1) == TYPE_VECTOR_SUBPARTS (t2)
- && same_type_p (TREE_TYPE (t1), TREE_TYPE (t2));
+ if (TYPE_VECTOR_SUBPARTS (t1) != TYPE_VECTOR_SUBPARTS (t2)
+ || !same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+ return false;
break;
default:
- break;
+ return false;
}
- return false;
+
+ /* If we get here, we know that from a target independent POV the
+ types are the same. Make sure the target attributes are also
+ the same. */
+ return targetm.comp_type_attributes (t1, t2);
}
/* Returns 1 if TYPE1 is at least as qualified as TYPE2. */
@@ -1221,7 +1246,7 @@ cxx_sizeof_or_alignof_type (tree type, enum tree_code op, bool complain)
if (type == error_mark_node)
return error_mark_node;
- if (processing_template_decl)
+ if (dependent_type_p (type))
{
value = build_min (op, size_type_node, type);
TREE_READONLY (value) = 1;
@@ -1847,6 +1872,12 @@ finish_class_member_access_expr (tree object, tree name)
if (object == error_mark_node || name == error_mark_node)
return error_mark_node;
+ /* APPLE LOCAL begin mainline */
+ /* If OBJECT is an ObjC class instance, we must obey ObjC access rules. */
+ if (!objc_is_public (object, name))
+ return error_mark_node;
+ /* APPLE LOCAL end mainline */
+
object_type = TREE_TYPE (object);
if (processing_template_decl)
@@ -2006,6 +2037,8 @@ build_ptrmemfunc_access_expr (tree ptrmem, tree member_name)
routine directly because it expects the object to be of class
type. */
ptrmem_type = TREE_TYPE (ptrmem);
+ /* APPLE LOCAL KEXT 2.95-ptmf-compatibility --turly */
+ if (!flag_apple_kext)
gcc_assert (TYPE_PTRMEMFUNC_P (ptrmem_type));
member = lookup_member (ptrmem_type, member_name, /*protect=*/0,
/*want_type=*/false);
@@ -2289,7 +2322,10 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function)
if (TYPE_PTRMEMFUNC_P (TREE_TYPE (function)))
{
- tree idx, delta, e1, e2, e3, vtbl, basetype;
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ tree idx, delta, e1, e2, e3, vtbl = vtbl, basetype;
+ tree delta2 = delta2;
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
tree fntype = TYPE_PTRMEMFUNC_FN_TYPE (TREE_TYPE (function));
tree instance_ptr = *instance_ptrptr;
@@ -2321,6 +2357,17 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function)
/* Start by extracting all the information from the PMF itself. */
e3 = pfn_from_ptrmemfunc (function);
delta = build_ptrmemfunc_access_expr (function, delta_identifier);
+
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ {
+ idx = build_ptrmemfunc_access_expr (function, index_identifier);
+ idx = save_expr (default_conversion (idx));
+ e1 = cp_build_binary_op (GE_EXPR, idx, integer_zero_node);
+ }
+ else
+ {
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
idx = build1 (NOP_EXPR, vtable_index_type, e3);
switch (TARGET_PTRMEMFUNC_VBIT_LOCATION)
{
@@ -2338,6 +2385,19 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function)
gcc_unreachable ();
}
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ }
+ /* DELTA2 is the amount by which to adjust the `this' pointer
+ to find the vtbl. */
+ if (flag_apple_kext)
+ {
+ delta2 = build_ptrmemfunc_access_expr (function,
+ pfn_or_delta2_identifier);
+ delta2 = build_ptrmemfunc_access_expr (delta2,
+ delta2_identifier);
+ }
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
/* Convert down to the right base before using the instance. First
use the type... */
basetype = TYPE_METHOD_BASETYPE (TREE_TYPE (fntype));
@@ -2346,6 +2406,14 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function)
instance_ptr = build_base_path (PLUS_EXPR, instance_ptr, basetype, 1);
if (instance_ptr == error_mark_node)
return error_mark_node;
+
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ /* Next extract the vtable pointer from the object. */
+ vtbl = build (PLUS_EXPR,build_pointer_type (vtbl_ptr_type_node),
+ instance_ptr, cp_convert (ptrdiff_type_node, delta2));
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
/* ...and then the delta in the PMF. */
instance_ptr = build2 (PLUS_EXPR, TREE_TYPE (instance_ptr),
instance_ptr, delta);
@@ -2353,11 +2421,22 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function)
/* Hand back the adjusted 'this' argument to our caller. */
*instance_ptrptr = instance_ptr;
+ /* APPLE LOCAL KEXT 2.95-ptmf-compatibility --turly */
+ if (!flag_apple_kext)
/* Next extract the vtable pointer from the object. */
vtbl = build1 (NOP_EXPR, build_pointer_type (vtbl_ptr_type_node),
instance_ptr);
vtbl = build_indirect_ref (vtbl, NULL);
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ /* 2.95-style indices are off by one. */
+ if (flag_apple_kext)
+ {
+ idx = cp_build_binary_op (MINUS_EXPR, idx, integer_one_node);
+ idx = cp_build_binary_op (LSHIFT_EXPR, idx, integer_two_node);
+ }
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
/* Finally, extract the function pointer from the vtable. */
e2 = fold (build2 (PLUS_EXPR, TREE_TYPE (vtbl), vtbl, idx));
e2 = build_indirect_ref (e2, NULL);
@@ -2393,6 +2472,12 @@ build_function_call (tree function, tree params)
int is_method;
tree original = function;
+ /* APPLE LOCAL begin mainline */
+ /* For Objective-C, convert any calls via a cast to OBJC_TYPE_REF
+ expressions, like those used for ObjC messenger dispatches. */
+ function = objc_rewrite_function_call (function, params);
+
+ /* APPLE LOCAL end mainline */
/* build_c_cast puts on a NOP_EXPR to make the result not an lvalue.
Strip such NOP_EXPRs, since FUNCTION is used in non-lvalue context. */
if (TREE_CODE (function) == NOP_EXPR
@@ -2653,6 +2738,13 @@ build_x_binary_op (enum tree_code code, tree arg1, tree arg2,
tree orig_arg2;
tree expr;
+ /* APPLE LOCAL begin CW asm blocks */
+ if (inside_cw_asm_block
+ && (TREE_CODE (arg1) == IDENTIFIER_NODE
+ || TREE_CODE (arg2) == IDENTIFIER_NODE))
+ return error_mark_node;
+ /* APPLE LOCAL end CW asm blocks */
+
orig_arg1 = arg1;
orig_arg2 = arg2;
@@ -3016,6 +3108,13 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
}
else if (TYPE_PTRMEMFUNC_P (type0) && null_ptr_cst_p (op1))
{
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ /* Shouldn't we use INDEX here rather than PFN? This seems to
+ work fine, though... */
+ if (flag_apple_kext)
+ op0 = build_ptrmemfunc_access_expr (op0, index_identifier);
+ else
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
op0 = build_ptrmemfunc_access_expr (op0, pfn_identifier);
op1 = cp_convert (TREE_TYPE (op0), integer_zero_node);
result_type = TREE_TYPE (op0);
@@ -3530,23 +3629,6 @@ build_x_unary_op (enum tree_code code, tree xarg)
if (type_dependent_expression_p (xarg))
return build_min_nt (code, xarg, NULL_TREE);
- /* For non-dependent pointer-to-member, the SCOPE_REF will be
- processed during template substitution. Just compute the
- right type here and build an ADDR_EXPR around it for
- diagnostics. */
- if (code == ADDR_EXPR && TREE_CODE (xarg) == SCOPE_REF)
- {
- tree type;
- if (TREE_TYPE (xarg) == unknown_type_node)
- type = unknown_type_node;
- else if (TREE_CODE (TREE_TYPE (xarg)) == FUNCTION_TYPE)
- type = build_pointer_type (TREE_TYPE (xarg));
- else
- type = build_ptrmem_type (TREE_OPERAND (xarg, 0),
- TREE_TYPE (xarg));
- return build_min (code, type, xarg, NULL_TREE);
- }
-
xarg = build_non_dependent_expr (xarg);
}
@@ -3610,13 +3692,13 @@ build_x_unary_op (enum tree_code code, tree xarg)
else if (TREE_CODE (xarg) == TARGET_EXPR)
warning ("taking address of temporary");
exp = build_unary_op (ADDR_EXPR, xarg, 0);
- if (TREE_CODE (exp) == ADDR_EXPR)
- PTRMEM_OK_P (exp) = ptrmem;
}
if (processing_template_decl && exp != error_mark_node)
- return build_min_non_dep (code, exp, orig_expr,
- /*For {PRE,POST}{INC,DEC}REMENT_EXPR*/NULL_TREE);
+ exp = build_min_non_dep (code, exp, orig_expr,
+ /*For {PRE,POST}{INC,DEC}REMENT_EXPR*/NULL_TREE);
+ if (TREE_CODE (exp) == ADDR_EXPR)
+ PTRMEM_OK_P (exp) = ptrmem;
return exp;
}
@@ -3910,9 +3992,12 @@ build_unary_op (enum tree_code code, tree xarg, int noconvert)
}
/* Complain about anything else that is not a true lvalue. */
- if (!lvalue_or_else (arg, ((code == PREINCREMENT_EXPR
- || code == POSTINCREMENT_EXPR)
- ? lv_increment : lv_decrement)))
+ /* APPLE LOCAL begin non-lvalue assign */
+ if (!lvalue_or_else (&arg, ((code == PREINCREMENT_EXPR
+ || code == POSTINCREMENT_EXPR)
+ ? lv_increment
+ : lv_decrement)))
+ /* APPLE LOCAL end non-lvalue assign */
return error_mark_node;
/* Forbid using -- on `bool'. */
@@ -4043,6 +4128,29 @@ build_unary_op (enum tree_code code, tree xarg, int noconvert)
arg = OVL_CURRENT (arg);
break;
+ case OFFSET_REF:
+ /* Turn a reference to a non-static data member into a
+ pointer-to-member. */
+ {
+ tree type;
+ tree t;
+
+ if (!PTRMEM_OK_P (arg))
+ return build_unary_op (code, arg, 0);
+
+ t = TREE_OPERAND (arg, 1);
+ if (TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE)
+ {
+ error ("cannot create pointer to reference member %qD", t);
+ return error_mark_node;
+ }
+
+ type = build_ptrmem_type (context_for_name_lookup (t),
+ TREE_TYPE (t));
+ t = make_ptrmem_cst (type, TREE_OPERAND (arg, 1));
+ return t;
+ }
+
default:
break;
}
@@ -4056,7 +4164,9 @@ build_unary_op (enum tree_code code, tree xarg, int noconvert)
is an error. */
else if (TREE_CODE (argtype) != FUNCTION_TYPE
&& TREE_CODE (argtype) != METHOD_TYPE
- && !lvalue_or_else (arg, lv_addressof))
+ && TREE_CODE (arg) != OFFSET_REF
+ /* APPLE LOCAL non-lvalue assign */
+ && !lvalue_or_else (&arg, lv_addressof))
return error_mark_node;
if (argtype != error_mark_node)
@@ -4070,7 +4180,11 @@ build_unary_op (enum tree_code code, tree xarg, int noconvert)
expression so we can just form an ADDR_EXPR with the
correct type. */
|| processing_template_decl)
- addr = build_address (arg);
+ {
+ addr = build_address (arg);
+ if (TREE_CODE (arg) == OFFSET_REF)
+ PTRMEM_OK_P (addr) = PTRMEM_OK_P (arg);
+ }
else if (TREE_CODE (TREE_OPERAND (arg, 1)) == BASELINK)
{
tree fn = BASELINK_FUNCTIONS (TREE_OPERAND (arg, 1));
@@ -4194,52 +4308,7 @@ unary_complex_lvalue (enum tree_code code, tree arg)
if (TREE_CODE (TREE_TYPE (arg)) == FUNCTION_TYPE
|| TREE_CODE (TREE_TYPE (arg)) == METHOD_TYPE
|| TREE_CODE (arg) == OFFSET_REF)
- {
- tree t;
-
- gcc_assert (TREE_CODE (arg) != SCOPE_REF);
-
- if (TREE_CODE (arg) != OFFSET_REF)
- return 0;
-
- t = TREE_OPERAND (arg, 1);
-
- /* Check all this code for right semantics. */
- if (TREE_CODE (t) == FUNCTION_DECL)
- {
- if (DECL_DESTRUCTOR_P (t))
- error ("taking address of destructor");
- return build_unary_op (ADDR_EXPR, t, 0);
- }
- if (TREE_CODE (t) == VAR_DECL)
- return build_unary_op (ADDR_EXPR, t, 0);
- else
- {
- tree type;
-
- if (TREE_OPERAND (arg, 0)
- && ! is_dummy_object (TREE_OPERAND (arg, 0))
- && TREE_CODE (t) != FIELD_DECL)
- {
- error ("taking address of bound pointer-to-member expression");
- return error_mark_node;
- }
- if (!PTRMEM_OK_P (arg))
- return build_unary_op (code, arg, 0);
-
- if (TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE)
- {
- error ("cannot create pointer to reference member %qD", t);
- return error_mark_node;
- }
-
- type = build_ptrmem_type (context_for_name_lookup (t),
- TREE_TYPE (t));
- t = make_ptrmem_cst (type, TREE_OPERAND (arg, 1));
- return t;
- }
- }
-
+ return NULL_TREE;
/* We permit compiler to make function calls returning
objects of aggregate type look like lvalues. */
@@ -4429,8 +4498,12 @@ build_x_compound_expr (tree op1, tree op2)
tree
build_compound_expr (tree lhs, tree rhs)
{
- lhs = convert_to_void (lhs, "left-hand operand of comma");
-
+ /* APPLE LOCAL begin AltiVec */
+ lhs = convert_to_void (lhs, targetm.cast_expr_as_vector_init
+ ? NULL
+ : "left-hand operand of comma");
+ /* APPLE LOCAL end AltiVec */
+
if (lhs == error_mark_node || rhs == error_mark_node)
return error_mark_node;
@@ -4636,13 +4709,15 @@ build_static_cast_1 (tree type, tree expr, bool c_cast_p,
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)))
+ /* DR 128
+
+ A value of integral _or enumeration_ type can be explicitly
+ converted to an enumeration type. */
+ /* The effect of all that is that any conversion between any two
+ types which are integral, floating, or enumeration types can be
+ performed. */
+ if ((INTEGRAL_TYPE_P (type) || SCALAR_FLOAT_TYPE_P (type))
+ && (INTEGRAL_TYPE_P (intype) || SCALAR_FLOAT_TYPE_P (intype)))
{
expr = ocp_convert (type, expr, CONV_C_CAST, LOOKUP_NORMAL);
@@ -4747,6 +4822,13 @@ build_static_cast (tree type, tree expr)
return convert_from_reference (expr);
}
+ /* APPLE LOCAL begin AltiVec */
+ /* If we are casting to a vector type, treat the expression as a vector
+ initializer if this target supports it. */
+ if (TREE_CODE (type) == VECTOR_TYPE && targetm.cast_expr_as_vector_init)
+ return vector_constructor_from_expr (expr, type);
+ /* APPLE LOCAL end AltiVec */
+
/* build_c_cast puts on a NOP_EXPR to make the result not an lvalue.
Strip such NOP_EXPRs if VALUE is being used in non-lvalue context. */
if (TREE_CODE (type) != REFERENCE_TYPE
@@ -4779,6 +4861,20 @@ convert_member_func_to_ptr (tree type, tree expr)
gcc_assert (TYPE_PTRMEMFUNC_P (intype)
|| TREE_CODE (intype) == METHOD_TYPE);
+ /* APPLE LOCAL begin kext ptmf casts --bowdidge*/
+ /* Beginning in gcc-4.0, casts from pointer-to-member-function to pointer-to-
+ function should always be done with the OSMemberFunctionCast() to guarantee
+ the 2.95 behavior. Casts the "old fashioned way" should be flagged as
+ errors so developers won't have kexts that silently use the new
+ ptmf->pmf behavior and get a different function than 3.3. */
+
+ if (flag_apple_kext)
+ {
+ error ("converting from `%T' to `%T' in a kext. Use OSMemberFunctionCast() instead.", intype, type);
+ return error_mark_node;
+ }
+ /* APPLE LOCAL end kext ptmf casts */
+
if (pedantic || warn_pmf2ptr)
pedwarn ("converting from %qT to %qT", intype, type);
@@ -4937,6 +5033,14 @@ build_reinterpret_cast_1 (tree type, tree expr, bool c_cast_p,
error ("invalid cast from type %qT to type %qT", intype, type);
return error_mark_node;
}
+
+ /* APPLE LOCAL begin don't sign-extend pointers cast to integers */
+ if (TREE_CODE (type) == INTEGER_TYPE
+ && TREE_CODE (intype) == POINTER_TYPE
+ && TYPE_PRECISION (type) > TYPE_PRECISION (intype)
+ && TYPE_UNSIGNED (type))
+ expr = cp_convert (c_common_type_for_size (POINTER_SIZE, 1), expr);
+ /* APPLE LOCAL end don't sign-extend pointers cast to integers */
return cp_convert (type, expr);
}
@@ -4958,6 +5062,13 @@ build_reinterpret_cast (tree type, tree expr)
return convert_from_reference (t);
}
+ /* APPLE LOCAL begin AltiVec */
+ /* If we are casting to a vector type, treat the expression as a vector
+ initializer if this target supports it. */
+ if (TREE_CODE (type) == VECTOR_TYPE && targetm.cast_expr_as_vector_init)
+ return vector_constructor_from_expr (expr, type);
+ /* APPLE LOCAL end AltiVec */
+
return build_reinterpret_cast_1 (type, expr, /*c_cast_p=*/false,
/*valid_p=*/NULL);
}
@@ -5112,6 +5223,15 @@ build_c_cast (tree type, tree expr)
return convert_from_reference (t);
}
+ /* APPLE LOCAL begin AltiVec */
+ /* If we are casting to a vector type, treat the expression as a vector
+ initializer if this target supports it. */
+ if (TREE_CODE (type) == VECTOR_TYPE
+ && targetm.cast_expr_as_vector_init
+ && !IS_AGGR_TYPE (TREE_TYPE(expr)))
+ return vector_constructor_from_expr (expr, type);
+ /* APPLE LOCAL end AltiVec */
+
/* Casts to a (pointer to a) specific ObjC class (or 'id' or
'Class') should always be retained, because this information aids
in method lookup. */
@@ -5252,7 +5372,8 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
case MAX_EXPR:
/* MIN_EXPR and MAX_EXPR are currently only permitted as lvalues,
when neither operand has side-effects. */
- if (!lvalue_or_else (lhs, lv_assign))
+ /* APPLE LOCAL non-lvalue assign */
+ if (!lvalue_or_else (&lhs, lv_assign))
return error_mark_node;
gcc_assert (!TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0))
@@ -5280,7 +5401,8 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
/* Check this here to avoid odd errors when trying to convert
a throw to the type of the COND_EXPR. */
- if (!lvalue_or_else (lhs, lv_assign))
+ /* APPLE LOCAL non-lvalue assign */
+ if (!lvalue_or_else (&lhs, lv_assign))
return error_mark_node;
cond = build_conditional_expr
@@ -5374,7 +5496,8 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
}
/* The left-hand side must be an lvalue. */
- if (!lvalue_or_else (lhs, lv_assign))
+ /* APPLE LOCAL non-lvalue assign */
+ if (!lvalue_or_else (&lhs, lv_assign))
return error_mark_node;
/* Warn about modifying something that is `const'. Don't warn if
@@ -5476,6 +5599,16 @@ build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs)
if (newrhs == error_mark_node)
return error_mark_node;
+ /* APPLE LOCAL begin mainline */
+ if (c_dialect_objc () && flag_objc_gc)
+ {
+ result = objc_generate_write_barrier (lhs, modifycode, newrhs);
+
+ if (result)
+ return result;
+ }
+ /* APPLE LOCAL end mainline */
+
result = build2 (modifycode == NOP_EXPR ? MODIFY_EXPR : INIT_EXPR,
lhstype, lhs, newrhs);
@@ -5603,6 +5736,114 @@ build_ptrmemfunc1 (tree type, tree delta, tree pfn)
tree delta_field;
tree pfn_field;
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ {
+ /* Ooo-err, Missus. Cons up a 2.95-style ptmf struct given
+ gcc3-style inputs! Recall:
+
+ struct ptmf2 { struct ptmf3 {
+ short __delta; __P __pfn;
+ short __index; ptrdiff_t __delta;
+ union { }
+ __P __pfn;
+ short __delta2;
+ }
+ }
+
+ Won't this be fun. Much of this is snarfed from 2.95.
+ Note that the __delta2 val, if required, will always be __delta. */
+
+ tree subtype, pfn_or_delta2_field, idx, idx_field, delta2_field;
+ tree delta2 = integer_zero_node;
+ int ixval = 0;
+ int allconstant = 0, allsimple = 0, allinvariant = 0;
+
+ delta_field = TYPE_FIELDS (type);
+ idx_field = TREE_CHAIN (delta_field);
+ pfn_or_delta2_field = TREE_CHAIN (idx_field);
+ subtype = TREE_TYPE (pfn_or_delta2_field);
+ pfn_field = TYPE_FIELDS (subtype);
+ delta2_field = TREE_CHAIN (pfn_field);
+
+ if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn)
+ {
+ /* If the low bit of PFN is set, the virtual index is PFN >> 1.
+ Else it's nonvirtual. */
+ allconstant = TREE_CONSTANT (pfn);
+ allinvariant = TREE_INVARIANT (pfn);
+ allsimple = !! initializer_constant_valid_p (pfn, TREE_TYPE (pfn));
+ if (TREE_CODE (pfn) == INTEGER_CST && (TREE_INT_CST_LOW (pfn) & 1))
+ {
+ /* It's a virtual function. PFN is the vt offset + 1. */
+
+ int vt_entry_sz = 4;
+ tree vt_entry_sz_tree = TYPE_SIZE_UNIT (vtable_entry_type);
+ if (TREE_CODE (vt_entry_sz_tree) == INTEGER_CST)
+ vt_entry_sz = TREE_INT_CST_LOW (vt_entry_sz_tree);
+
+ ixval = (TREE_INT_CST_LOW (pfn) - 1);
+ ixval /= vt_entry_sz;
+
+ /* Now add 2 for that spadgey VPTR index hack, plus one because
+ 2.95 indices are offset by 1. */
+ ixval += 2 + 1;
+
+ /* __delta2 is the same as __delta. */
+ u = tree_cons (delta2_field, delta, NULL_TREE);
+ }
+ else
+ if (TREE_CODE (pfn) == INTEGER_CST && TREE_INT_CST_LOW (pfn) == 0)
+ {
+ /* NULL pfn. Just zero out everything. */
+ ixval = 0;
+ pfn = integer_zero_node;
+ delta = integer_zero_node;
+ u = tree_cons (pfn_field, pfn, NULL_TREE);
+ }
+ else
+ {
+ ixval = -1; /* -1 ==> PFN is the pointer */
+ u = tree_cons (pfn_field, pfn, NULL_TREE);
+ }
+ }
+ else /* Low bit of DELTA is set if we're virtual. */
+ {
+ /* Don't know how to do this yet. Much like the above, probably. */
+ abort ();
+ allconstant = TREE_CONSTANT (delta);
+ allinvariant = TREE_INVARIANT (delta);
+ allsimple = !! initializer_constant_valid_p (delta,
+ TREE_TYPE (delta));
+
+ u = tree_cons (delta2_field, delta2, NULL_TREE);
+ }
+
+ delta = convert_and_check (delta_type_node, delta);
+ idx = convert_and_check (delta_type_node, ssize_int (ixval));
+
+ u = build_constructor (subtype, u);
+ TREE_CONSTANT (u) = allconstant;
+ TREE_INVARIANT (u) = allinvariant;
+ TREE_STATIC (u) = allconstant && allsimple;
+
+ allconstant = allconstant && TREE_CONSTANT (delta) && TREE_CONSTANT (idx);
+ allinvariant = allinvariant && TREE_INVARIANT (delta) && TREE_INVARIANT (idx);
+ allsimple = allsimple
+ && initializer_constant_valid_p (delta, TREE_TYPE (delta))
+ && initializer_constant_valid_p (idx, TREE_TYPE (idx));
+
+ u = tree_cons (delta_field, delta,
+ tree_cons (idx_field, idx,
+ tree_cons (pfn_or_delta2_field, u, NULL_TREE)));
+ u = build_constructor (type, u);
+ TREE_CONSTANT (u) = allconstant;
+ TREE_INVARIANT (u) = allinvariant;
+ TREE_STATIC (u) = allconstant && allsimple;
+ return u;
+ }
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
/* Pull the FIELD_DECLs out of the type. */
pfn_field = TYPE_FIELDS (type);
delta_field = TREE_CHAIN (pfn_field);
@@ -5711,7 +5952,10 @@ build_ptrmemfunc (tree type, tree pfn, int force, bool c_cast_p)
return instantiate_type (type, pfn, tf_error | tf_warning);
fn = TREE_OPERAND (pfn, 0);
- gcc_assert (TREE_CODE (fn) == FUNCTION_DECL);
+ gcc_assert (TREE_CODE (fn) == FUNCTION_DECL
+ /* In a template, we will have preserved the
+ OFFSET_REF. */
+ || (processing_template_decl && TREE_CODE (fn) == OFFSET_REF));
return make_ptrmem_cst (to_type, fn);
}
@@ -5794,6 +6038,22 @@ expand_ptrmemfunc_cst (tree cst, tree *delta, tree *pfn)
tree
pfn_from_ptrmemfunc (tree t)
{
+ /* APPLE LOCAL begin KEXT 2.95-ptmf-compatibility --turly */
+ if (flag_apple_kext)
+ {
+ if (TREE_CODE (t) == PTRMEM_CST)
+ {
+ tree fn = PTRMEM_CST_MEMBER (t);
+ if (!DECL_VIRTUAL_P (fn))
+ return convert (TYPE_PTRMEMFUNC_FN_TYPE (TREE_TYPE (t)),
+ build_addr_func (fn));
+ }
+
+ t = build_ptrmemfunc_access_expr (t, pfn_or_delta2_identifier);
+ return build_ptrmemfunc_access_expr (t, pfn_identifier);
+ }
+ /* APPLE LOCAL end KEXT 2.95-ptmf-compatibility --turly */
+
if (TREE_CODE (t) == PTRMEM_CST)
{
tree delta;
@@ -5847,6 +6107,34 @@ convert_for_assignment (tree type, tree rhs,
if (TREE_CODE (rhs) == CONST_DECL)
rhs = DECL_INITIAL (rhs);
+ /* APPLE LOCAL begin mainline */
+ if (c_dialect_objc ())
+ {
+ int parmno;
+ tree rname = fndecl;
+
+ if (!strcmp (errtype, "assignment"))
+ parmno = -1;
+ else if (!strcmp (errtype, "initialization"))
+ parmno = -2;
+ else
+ {
+ tree selector = objc_message_selector ();
+
+ parmno = parmnum;
+
+ if (selector && parmno > 1)
+ {
+ rname = selector;
+ parmno -= 1;
+ }
+ }
+
+ if (objc_compare_types (type, rhstype, parmno, rname))
+ return convert (type, rhs);
+ }
+
+ /* APPLE LOCAL end mainline */
/* [expr.ass]
The expression is implicitly converted (clause _conv_) to the
@@ -6271,10 +6559,18 @@ comp_ptr_ttypes_real (tree to, tree from, int constp)
so the usual checks are not appropriate. */
if (TREE_CODE (to) != FUNCTION_TYPE && TREE_CODE (to) != METHOD_TYPE)
{
- if (!at_least_as_qualified_p (to, from))
+ /* APPLE LOCAL begin mainline */
+ /* In Objective-C++, some types may have been 'volatilized' by
+ the compiler; when comparing them here, the volatile
+ qualification must be ignored. */
+ bool objc_quals_match = objc_type_quals_match (to, from);
+
+ if (!at_least_as_qualified_p (to, from) && !objc_quals_match)
+ /* APPLE LOCAL end mainline */
return 0;
- if (!at_least_as_qualified_p (from, to))
+ /* APPLE LOCAL mainline */
+ if (!at_least_as_qualified_p (from, to) && !objc_quals_match)
{
if (constp == 0)
return 0;
@@ -6383,6 +6679,47 @@ cp_has_mutable_p (tree type)
return CLASS_TYPE_P (type) && CLASSTYPE_HAS_MUTABLE (type);
}
+/* Apply the TYPE_QUALS to the new DECL. */
+void
+cp_apply_type_quals_to_decl (int type_quals, tree decl)
+{
+ tree type = TREE_TYPE (decl);
+
+ if (type == error_mark_node)
+ return;
+
+ if (TREE_CODE (type) == FUNCTION_TYPE
+ && type_quals != TYPE_UNQUALIFIED)
+ {
+ /* This was an error in C++98 (cv-qualifiers cannot be added to
+ a function type), but DR 295 makes the code well-formed by
+ dropping the extra qualifiers. */
+ if (pedantic)
+ {
+ tree bad_type = build_qualified_type (type, type_quals);
+ pedwarn ("ignoring %qV qualifiers added to function type %qT",
+ bad_type, type);
+ }
+
+ TREE_TYPE (decl) = TYPE_MAIN_VARIANT (type);
+ return;
+ }
+
+ /* Avoid setting TREE_READONLY incorrectly. */
+ if (/* If the object has a constructor, the constructor may modify
+ the object. */
+ TYPE_NEEDS_CONSTRUCTING (type)
+ /* If the type isn't complete, we don't know yet if it will need
+ constructing. */
+ || !COMPLETE_TYPE_P (type)
+ /* If the type has a mutable component, that component might be
+ modified. */
+ || TYPE_HAS_MUTABLE_P (type))
+ type_quals &= ~TYPE_QUAL_CONST;
+
+ c_apply_type_quals_to_decl (type_quals, decl);
+}
+
/* Subroutine of casts_away_constness. Make T1 and T2 point at
exemplar types such that casting T1 to T2 is casting away constness
if and only if there is no implicit conversion from T1 to T2. */
@@ -6500,3 +6837,16 @@ non_reference (tree t)
t = TREE_TYPE (t);
return t;
}
+
+/* APPLE LOCAL begin CW asm blocks */
+tree
+cw_asm_cp_build_component_ref (tree datum, tree component)
+{
+ tree expr = finish_class_member_access_expr (datum, component);
+ /* If this is not a real component reference, extract the field
+ decl, which includes the numeric offset we'll use later. */
+ if (TREE_CODE (datum) == TYPE_DECL)
+ expr = TREE_OPERAND (expr, 1);
+ return expr;
+}
+/* APPLE LOCAL end CW asm blocks */
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 8017af3dd25..4daef904901 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -695,16 +695,26 @@ digest_init (tree type, tree init, tree* tail)
|| (element && TREE_CODE (element) == STRING_CST)))
{
tree string = element ? element : init;
+ /* APPLE LOCAL begin pascal strings */
+ bool pascal_p
+ = (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (string)))
+ == unsigned_char_type_node);
+ /* APPLE LOCAL end pascal strings */
if ((TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (string)))
!= char_type_node)
+ /* APPLE LOCAL pascal strings */
+ && !pascal_p
&& TYPE_PRECISION (typ1) == BITS_PER_UNIT)
{
error ("char-array initialized from wide string");
return error_mark_node;
}
- if ((TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (string)))
+ /* APPLE LOCAL begin pascal strings */
+ if (((TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (string)))
== char_type_node)
+ || pascal_p)
+ /* APPLE LOCAL end pascal strings */
&& TYPE_PRECISION (typ1) != BITS_PER_UNIT)
{
error ("int-array initialized from non-wide string");
@@ -721,7 +731,13 @@ digest_init (tree type, tree init, tree* tail)
because it's ok to ignore the terminating null char that is
counted in the length of the constant, but in C++ this would
be invalid. */
- if (size < TREE_STRING_LENGTH (string))
+ /* APPLE LOCAL begin pascal strings */
+ /* For Pascal strings, though, ignoring the terminating NUL
+ is still cool. */
+ if (size < (pascal_p
+ ? TREE_STRING_LENGTH (string) - 1
+ : TREE_STRING_LENGTH (string)))
+ /* APPLE LOCAL end pascal strings */
pedwarn ("initializer-string for array of chars is too long");
}
return string;
@@ -789,7 +805,15 @@ digest_init (tree type, tree init, tree* tail)
return process_init_constructor (type, 0, tail);
}
- if (code != ARRAY_TYPE)
+ /* APPLE LOCAL begin AltiVec */
+ if (code == VECTOR_TYPE
+ && TREE_CODE (init) == CONSTRUCTOR
+ && TREE_CODE (TREE_TYPE (init)) == VECTOR_TYPE
+ && vector_types_convertible_p (TREE_TYPE (init), type)
+ && TREE_CONSTANT (init))
+ return build_vector (type, CONSTRUCTOR_ELTS (init));
+ else if (code != ARRAY_TYPE)
+ /* APPLE LOCAL end AltiVec */
{
int flags = LOOKUP_NORMAL;
/* Initialization from { } is copy-initialization. */
@@ -1123,7 +1147,7 @@ process_init_constructor (tree type, tree init, tree* elts)
result = build_constructor (type, nreverse (members));
if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == NULL_TREE)
- complete_array_type (type, result, /*do_default=*/0);
+ cp_complete_array_type (&TREE_TYPE (result), result, /*do_default=*/0);
if (init)
TREE_HAS_CONSTRUCTOR (result) = TREE_HAS_CONSTRUCTOR (init);
if (allconstant)
diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
index 5f73dc56bbd..943ed77fb0a 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
@@ -41,6 +41,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
# undef CROSS_INCLUDE_DIR
#endif
+/* APPLE LOCAL begin SDK 3886137. */
+/* Allow -isysroot to override ALL include patchs. This is done by
+ setting add_sysroot for all default inclue paths. */
const struct default_include cpp_include_defaults[]
#ifdef INCLUDE_DEFAULTS
= INCLUDE_DEFAULTS;
@@ -48,34 +51,34 @@ const struct default_include cpp_include_defaults[]
= {
#ifdef GPLUSPLUS_INCLUDE_DIR
/* Pick up GNU C++ generic include files. */
- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0 },
+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1 },
#endif
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
/* Pick up GNU C++ target-dependent include files. */
- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 },
+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1 },
#endif
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
/* Pick up GNU C++ backward and deprecated include files. */
- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 },
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1 },
#endif
#ifdef LOCAL_INCLUDE_DIR
/* /usr/local/include comes before the fixincluded header files. */
{ LOCAL_INCLUDE_DIR, 0, 0, 1, 1 },
#endif
#ifdef PREFIX_INCLUDE_DIR
- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0 },
+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 1 },
#endif
#ifdef GCC_INCLUDE_DIR
/* This is the dir for fixincludes and for gcc's private headers. */
- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0 },
+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 1 },
#endif
#ifdef CROSS_INCLUDE_DIR
/* One place the target system's headers might be. */
- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0 },
+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 1 },
#endif
#ifdef TOOL_INCLUDE_DIR
/* Another place the target system's headers might be. */
- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0 },
+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 1 },
#endif
#ifdef SYSTEM_INCLUDE_DIR
/* Some systems have an extra dir of include files. */
@@ -89,6 +92,8 @@ const struct default_include cpp_include_defaults[]
};
#endif /* no INCLUDE_DEFAULTS */
+/* APPLE LOCAL end SDK 3886137. */
+
#ifdef GCC_INCLUDE_DIR
const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
diff --git a/gcc/cse.c b/gcc/cse.c
index e9f6c2f4724..769e22d8e10 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -864,10 +864,12 @@ init_cse_reg_info (unsigned int nregs)
}
/* Reallocate the table with NEW_SIZE entries. */
- cse_reg_info_table = xrealloc (cse_reg_info_table,
- (sizeof (struct cse_reg_info)
- * new_size));
+ if (cse_reg_info_table)
+ free (cse_reg_info_table);
+ cse_reg_info_table = xmalloc (sizeof (struct cse_reg_info)
+ * new_size);
cse_reg_info_table_size = new_size;
+ cse_reg_info_table_first_uninitialized = 0;
}
/* Do we have all of the first NREGS entries initialized? */
@@ -1232,7 +1234,24 @@ insert_regs (rtx x, struct table_elt *classp, int modified)
if (REG_P (classp->exp)
&& GET_MODE (classp->exp) == GET_MODE (x))
{
- make_regs_eqv (regno, REGNO (classp->exp));
+ unsigned c_regno = REGNO (classp->exp);
+
+ gcc_assert (REGNO_QTY_VALID_P (c_regno));
+
+ /* Suppose that 5 is hard reg and 100 and 101 are
+ pseudos. Consider
+
+ (set (reg:si 100) (reg:si 5))
+ (set (reg:si 5) (reg:si 100))
+ (set (reg:di 101) (reg:di 5))
+
+ We would now set REG_QTY (101) = REG_QTY (5), but the
+ entry for 5 is in SImode. When we use this later in
+ copy propagation, we get the register in wrong mode. */
+ if (qty_table[REG_QTY (c_regno)].mode != GET_MODE (x))
+ continue;
+
+ make_regs_eqv (regno, c_regno);
return 1;
}
@@ -3562,8 +3581,31 @@ fold_rtx (rtx x, rtx insn)
if (offset >= 0
&& (offset / GET_MODE_SIZE (GET_MODE (table))
< XVECLEN (table, 0)))
- return XVECEXP (table, 0,
- offset / GET_MODE_SIZE (GET_MODE (table)));
+ {
+ rtx label = XVECEXP
+ (table, 0, offset / GET_MODE_SIZE (GET_MODE (table)));
+ rtx set;
+
+ /* If we have an insn that loads the label from
+ the jumptable into a reg, we don't want to set
+ the reg to the label, because this may cause a
+ reference to the label to remain after the
+ label is removed in some very obscure cases (PR
+ middle-end/18628). */
+ if (!insn)
+ return label;
+
+ set = single_set (insn);
+
+ if (! set || SET_SRC (set) != x)
+ return x;
+
+ /* If it's a jump, it's safe to reference the label. */
+ if (SET_DEST (set) == pc_rtx)
+ return label;
+
+ return x;
+ }
}
if (table_insn && JUMP_P (table_insn)
&& GET_CODE (PATTERN (table_insn)) == ADDR_DIFF_VEC)
@@ -4900,6 +4942,9 @@ cse_insn (rtx insn, rtx libcall_insn)
rtx src_eqv_here;
rtx src_const = 0;
rtx src_related = 0;
+ /* APPLE LOCAL begin cse of ZERO/SIGN EXTEND */
+ rtx zero_sign_extended_src = NULL_RTX;
+ /* APPLE LOCAL end cse of ZERO/SIGN EXTEND */
struct table_elt *src_const_elt = 0;
int src_cost = MAX_COST;
int src_eqv_cost = MAX_COST;
@@ -5033,7 +5078,35 @@ cse_insn (rtx insn, rtx libcall_insn)
REG_NOTE. */
if (!sets[i].src_volatile)
+ /* APPLE LOCAL begin cse of ZERO/SIGN EXTEND */
+ {
elt = lookup (src, sets[i].src_hash, mode);
+ if (!elt
+ && (GET_CODE(src) == ZERO_EXTEND || GET_CODE(src) == SIGN_EXTEND)
+ && GET_CODE (XEXP (src, 0)) == MEM)
+ {
+ unsigned mem_hash;
+ rtx nsrc = XEXP (src, 0);
+ enum machine_mode nmode = GET_MODE(nsrc);
+ do_not_record = 0;
+ hash_arg_in_memory = 0;
+ mem_hash = HASH (nsrc, nmode);
+ elt = lookup (nsrc, mem_hash, nmode);
+ if (elt)
+ {
+ sets[i].src = nsrc;
+ sets[i].src_hash = mem_hash;
+ sets[i].src_volatile = do_not_record;
+ sets[i].src_in_memory = hash_arg_in_memory;
+ zero_sign_extended_src = src;
+ src = nsrc;
+ mode = GET_MODE (src) == VOIDmode ? GET_MODE (dest) : GET_MODE (src);
+ sets[i].mode = mode;
+ src_folded = fold_rtx (src, insn);
+ }
+ }
+ }
+ /* APPLE LOCAL end cse of ZERO/SIGN EXTEND */
sets[i].src_elt = elt;
@@ -5062,6 +5135,26 @@ cse_insn (rtx insn, rtx libcall_insn)
for (p = elt->first_same_value; p; p = p->next_same_value)
if (p->is_const)
{
+ /* APPLE LOCAL begin cse of ZERO/SIGN EXTEND */
+ /* If we're looking at a MEM under a SIGN/ZERO_EXTEND,
+ constants match only if the high bits match. */
+ if (zero_sign_extended_src)
+ {
+ rtx truncated_const, trial;
+ truncated_const = gen_rtx_TRUNCATE (
+ GET_MODE (XEXP (zero_sign_extended_src, 0)),
+ copy_rtx (p->exp));
+ if (GET_CODE (zero_sign_extended_src) == ZERO_EXTEND)
+ trial = gen_rtx_ZERO_EXTEND (
+ GET_MODE (zero_sign_extended_src), truncated_const);
+ else
+ trial = gen_rtx_SIGN_EXTEND (
+ GET_MODE (zero_sign_extended_src), truncated_const);
+ trial = fold_rtx (trial, NULL_RTX);
+ if (!rtx_equal_p (trial, p->exp))
+ continue;
+ }
+ /* APPLE LOCAL end cse of ZERO/SIGN EXTEND */
src_const = p->exp;
src_const_elt = elt;
break;
@@ -5437,6 +5530,18 @@ cse_insn (rtx insn, rtx libcall_insn)
&& preferable (src_related_cost, src_related_regcost,
src_elt_cost, src_elt_regcost) <= 0)
trial = copy_rtx (src_related), src_related_cost = MAX_COST;
+ /* APPLE LOCAL begin cse of ZERO/SIGN EXTEND */
+ else if (zero_sign_extended_src)
+ {
+ trial = GET_CODE(zero_sign_extended_src) == ZERO_EXTEND
+ ? gen_rtx_ZERO_EXTEND (GET_MODE(zero_sign_extended_src),
+ copy_rtx (elt->exp))
+ : gen_rtx_SIGN_EXTEND (GET_MODE(zero_sign_extended_src),
+ copy_rtx (elt->exp));
+ elt = elt->next_same_value;
+ src_elt_cost = MAX_COST;
+ }
+ /* APPLE LOCAL end cse of ZERO/SIGN EXTEND */
else
{
trial = copy_rtx (elt->exp);
@@ -5527,6 +5632,11 @@ cse_insn (rtx insn, rtx libcall_insn)
}
src = SET_SRC (sets[i].rtl);
+ /* APPLE LOCAL begin cse of ZERO/SIGN EXTEND */
+ if (zero_sign_extended_src
+ && (GET_CODE (src) == GET_CODE (zero_sign_extended_src)))
+ src = XEXP (src, 0);
+ /* APPLE LOCAL end cse of ZERO/SIGN EXTEND */
/* In general, it is good to have a SET with SET_SRC == SET_DEST.
However, there is an important exception: If both are registers
@@ -5603,7 +5713,11 @@ cse_insn (rtx insn, rtx libcall_insn)
&& ! (GET_CODE (src_const) == CONST
&& GET_CODE (XEXP (src_const, 0)) == MINUS
&& GET_CODE (XEXP (XEXP (src_const, 0), 0)) == LABEL_REF
- && GET_CODE (XEXP (XEXP (src_const, 0), 1)) == LABEL_REF))
+ /* APPLE LOCAL begin cse of ZERO/SIGN EXTEND */
+ && (GET_CODE (XEXP (XEXP (src_const, 0), 1)) == LABEL_REF
+ || rtx_equal_p ((XEXP (XEXP (src_const, 0), 1)),
+ const0_rtx))))
+ /* APPLE LOCAL end */
{
/* We only want a REG_EQUAL note if src_const != src. */
if (! rtx_equal_p (src, src_const))
@@ -7282,8 +7396,9 @@ delete_trivially_dead_insns (rtx insns, int nreg)
timevar_push (TV_DELETE_TRIVIALLY_DEAD);
/* First count the number of times each register is used. */
counts = xcalloc (nreg, sizeof (int));
- for (insn = next_real_insn (insns); insn; insn = next_real_insn (insn))
- count_reg_usage (insn, counts, 1);
+ for (insn = insns; insn; insn = NEXT_INSN (insn))
+ if (INSN_P (insn))
+ count_reg_usage (insn, counts, 1);
/* Go from the last insn to the first and delete insns that only set unused
registers or copy a register to itself. As we delete an insn, remove
@@ -7292,15 +7407,13 @@ delete_trivially_dead_insns (rtx insns, int nreg)
The first jump optimization pass may leave a real insn as the last
insn in the function. We must not skip that insn or we may end
up deleting code that is not really dead. */
- insn = get_last_insn ();
- if (! INSN_P (insn))
- insn = prev_real_insn (insn);
-
- for (; insn; insn = prev)
+ for (insn = get_last_insn (); insn; insn = prev)
{
int live_insn = 0;
- prev = prev_real_insn (insn);
+ prev = PREV_INSN (insn);
+ if (!INSN_P (insn))
+ continue;
/* Don't delete any insns that are part of a libcall block unless
we can delete the whole libcall block.
@@ -7328,7 +7441,7 @@ delete_trivially_dead_insns (rtx insns, int nreg)
ndead++;
}
- if (find_reg_note (insn, REG_LIBCALL, NULL_RTX))
+ if (in_libcall && find_reg_note (insn, REG_LIBCALL, NULL_RTX))
{
in_libcall = 0;
dead_libcall = 0;
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index e7a7738816d..55c7ee535ee 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -229,6 +229,10 @@ struct dbx_file
static struct dbx_file *current_file;
#endif
+/* APPLE LOCAL begin ss2 */
+/* This is the output file used by dbxout routines. */
+static FILE *dbx_out_file;
+/* APPLE LOCAL end ss2 */
/* This is the next file number to use. */
static GTY(()) int next_file_number;
@@ -343,7 +347,7 @@ static void dbxout_handle_pch (unsigned);
static void dbxout_source_line (unsigned int, const char *);
static void dbxout_begin_prologue (unsigned int, const char *);
static void dbxout_source_file (const char *);
-static void dbxout_function_end (void);
+static void dbxout_function_end (tree);
static void dbxout_begin_function (tree);
static void dbxout_begin_block (unsigned, unsigned);
static void dbxout_end_block (unsigned, unsigned);
@@ -378,7 +382,8 @@ const struct gcc_debug_hooks dbx_debug_hooks =
debug_nothing_tree, /* outlining_inline_function */
debug_nothing_rtx, /* label */
dbxout_handle_pch, /* handle_pch */
- debug_nothing_rtx /* var_location */
+ debug_nothing_rtx, /* var_location */
+ 0 /* start_end_main_source_file */
};
#endif /* DBX_DEBUGGING_INFO */
@@ -408,7 +413,8 @@ const struct gcc_debug_hooks xcoff_debug_hooks =
debug_nothing_tree, /* outlining_inline_function */
debug_nothing_rtx, /* label */
dbxout_handle_pch, /* handle_pch */
- debug_nothing_rtx /* var_location */
+ debug_nothing_rtx, /* var_location */
+ 0 /* start_end_main_source_file */
};
#endif /* XCOFF_DEBUGGING_INFO */
@@ -423,7 +429,8 @@ const struct gcc_debug_hooks xcoff_debug_hooks =
} \
while (NUM > 0)
-/* Utility: write a decimal integer NUM to asm_out_file. */
+/* APPLE LOCAL ss2 */
+/* Utility: write a decimal integer NUM to dbx_out_file. */
void
dbxout_int (int num)
{
@@ -433,12 +440,14 @@ dbxout_int (int num)
if (num == 0)
{
- putc ('0', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ putc ('0', dbx_out_file);
return;
}
if (num < 0)
{
- putc ('-', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ putc ('-', dbx_out_file);
unum = -num;
}
else
@@ -448,7 +457,8 @@ dbxout_int (int num)
while (p < buf + sizeof buf)
{
- putc (*p, asm_out_file);
+ /* APPLE LOCAL ss2 */
+ putc (*p, dbx_out_file);
p++;
}
}
@@ -468,15 +478,18 @@ dbxout_int (int num)
void
dbxout_stab_value_zero (void)
{
- fputs ("0\n", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs ("0\n", dbx_out_file);
}
/* Write out the label LABEL as the value of a stab. */
void
dbxout_stab_value_label (const char *label)
{
- assemble_name (asm_out_file, label);
- putc ('\n', asm_out_file);
+ /* APPLE LOCAL begin ss2 */
+ assemble_name (dbx_out_file, label);
+ putc ('\n', dbx_out_file);
+ /* APPLE LOCAL end ss2 */
}
/* Write out the difference of two labels, LABEL - BASE, as the value
@@ -484,10 +497,12 @@ dbxout_stab_value_label (const char *label)
void
dbxout_stab_value_label_diff (const char *label, const char *base)
{
- assemble_name (asm_out_file, label);
- putc ('-', asm_out_file);
- assemble_name (asm_out_file, base);
- putc ('\n', asm_out_file);
+ /* APPLE LOCAL begin ss2 */
+ assemble_name (dbx_out_file, label);
+ putc ('-', dbx_out_file);
+ assemble_name (dbx_out_file, base);
+ putc ('\n', dbx_out_file);
+ /* APPLE LOCAL end ss2 */
}
/* Write out an internal label as the value of a stab, and immediately
@@ -503,7 +518,8 @@ dbxout_stab_value_internal_label (const char *stem, int *counterp)
ASM_GENERATE_INTERNAL_LABEL (label, stem, counter);
dbxout_stab_value_label (label);
- targetm.asm_out.internal_label (asm_out_file, stem, counter);
+ /* APPLE LOCAL ss2 */
+ targetm.asm_out.internal_label (dbx_out_file, stem, counter);
}
/* Write out the difference between BASE and an internal label as the
@@ -518,20 +534,25 @@ dbxout_stab_value_internal_label_diff (const char *stem, int *counterp,
ASM_GENERATE_INTERNAL_LABEL (label, stem, counter);
dbxout_stab_value_label_diff (label, base);
- targetm.asm_out.internal_label (asm_out_file, stem, counter);
+ /* APPLE LOCAL ss2 */
+ targetm.asm_out.internal_label (dbx_out_file, stem, counter);
}
/* The following functions produce specific kinds of stab directives. */
-/* Write a .stabd directive with type STYPE and desc SDESC to asm_out_file. */
+/* APPLE LOCAL ss2 */
+/* Write a .stabd directive with type STYPE and desc SDESC to dbx_out_file. */
void
dbxout_stabd (int stype, int sdesc)
{
- fputs (ASM_STABD_OP, asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (ASM_STABD_OP, dbx_out_file);
dbxout_int (stype);
- fputs (",0,", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (",0,", dbx_out_file);
dbxout_int (sdesc);
- putc ('\n', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ putc ('\n', dbx_out_file);
}
/* Write a .stabn directive with type STYPE. This function stops
@@ -542,9 +563,11 @@ dbxout_stabd (int stype, int sdesc)
void
dbxout_begin_stabn (int stype)
{
- fputs (ASM_STABN_OP, asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (ASM_STABN_OP, dbx_out_file);
dbxout_int (stype);
- fputs (",0,0,", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (",0,0,", dbx_out_file);
}
/* Write a .stabn directive with type N_SLINE and desc LINE. As above,
@@ -552,11 +575,14 @@ dbxout_begin_stabn (int stype)
void
dbxout_begin_stabn_sline (int lineno)
{
- fputs (ASM_STABN_OP, asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (ASM_STABN_OP, dbx_out_file);
dbxout_int (N_SLINE);
- fputs (",0,", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (",0,", dbx_out_file);
dbxout_int (lineno);
- putc (',', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ putc (',', dbx_out_file);
}
/* Begin a .stabs directive with string "", type STYPE, and desc and
@@ -565,10 +591,13 @@ dbxout_begin_stabn_sline (int lineno)
void
dbxout_begin_empty_stabs (int stype)
{
- fputs (ASM_STABS_OP, asm_out_file);
- fputs ("\"\",", asm_out_file);
+ /* APPLE LOCAL begin ss2 */
+ fputs (ASM_STABS_OP, dbx_out_file);
+ fputs ("\"\",", dbx_out_file);
+ /* APPLE LOCAL end ss2 */
dbxout_int (stype);
- fputs (",0,0,", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (",0,0,", dbx_out_file);
}
/* Begin a .stabs directive with string STR, type STYPE, and desc 0.
@@ -576,24 +605,31 @@ dbxout_begin_empty_stabs (int stype)
void
dbxout_begin_simple_stabs (const char *str, int stype)
{
- fputs (ASM_STABS_OP, asm_out_file);
- output_quoted_string (asm_out_file, str);
- putc (',', asm_out_file);
+ /* APPLE LOCAL begin ss2 */
+ fputs (ASM_STABS_OP, dbx_out_file);
+ output_quoted_string (dbx_out_file, str);
+ putc (',', dbx_out_file);
+ /* APPLE LOCAL end ss2 */
dbxout_int (stype);
- fputs (",0,0,", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (",0,0,", dbx_out_file);
}
/* As above but use SDESC for the desc field. */
void
dbxout_begin_simple_stabs_desc (const char *str, int stype, int sdesc)
{
- fputs (ASM_STABS_OP, asm_out_file);
- output_quoted_string (asm_out_file, str);
- putc (',', asm_out_file);
+ /* APPLE LOCAL begin ss2 */
+ fputs (ASM_STABS_OP, dbx_out_file);
+ output_quoted_string (dbx_out_file, str);
+ putc (',', dbx_out_file);
+ /* APPLE LOCAL end ss2 */
dbxout_int (stype);
- fputs (",0,", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (",0,", dbx_out_file);
dbxout_int (sdesc);
- putc (',', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ putc (',', dbx_out_file);
}
/* The next set of functions are entirely concerned with production of
@@ -607,15 +643,17 @@ dbxout_begin_simple_stabs_desc (const char *str, int stype, int sdesc)
out not to be the case, and anyway this needs fewer #ifdefs.) */
/* Begin a complex .stabs directive. If we can, write the initial
- ASM_STABS_OP to the asm_out_file. */
+ ASM_STABS_OP to the dbx_out_file. */
static void
dbxout_begin_complex_stabs (void)
{
emit_pending_bincls_if_required ();
FORCE_TEXT;
- fputs (ASM_STABS_OP, asm_out_file);
- putc ('"', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (ASM_STABS_OP, dbx_out_file);
+ /* APPLE LOCAL ss2 */
+ putc ('"', dbx_out_file);
gcc_assert (stabstr_last_contin_point == 0);
}
@@ -624,8 +662,10 @@ dbxout_begin_complex_stabs (void)
static void
dbxout_begin_complex_stabs_noforcetext (void)
{
- fputs (ASM_STABS_OP, asm_out_file);
- putc ('"', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (ASM_STABS_OP, dbx_out_file);
+ /* APPLE LOCAL ss2 */
+ putc ('"', dbx_out_file);
gcc_assert (stabstr_last_contin_point == 0);
}
@@ -815,18 +855,19 @@ stabstr_continue (void)
#define DBX_FINISH_STABS(SYM, CODE, LINE, ADDR, LABEL, NUMBER) \
do { \
int line_ = use_gnu_debug_info_extensions ? LINE : 0; \
- \
+/* APPLE LOCAL begin ss2 */ \
dbxout_int (CODE); \
- fputs (",0,", asm_out_file); \
+ fputs (",0,", dbx_out_file); \
dbxout_int (line_); \
- putc (',', asm_out_file); \
+ putc (',', dbx_out_file); \
if (ADDR) \
- output_addr_const (asm_out_file, ADDR); \
+ output_addr_const (dbx_out_file, ADDR); \
else if (LABEL) \
- assemble_name (asm_out_file, LABEL); \
+ assemble_name (dbx_out_file, LABEL); \
else \
dbxout_int (NUMBER); \
- putc ('\n', asm_out_file); \
+ putc ('\n', dbx_out_file); \
+/* APPLE LOCAL end ss2 */ \
} while (0)
#endif
@@ -867,8 +908,10 @@ dbxout_finish_complex_stabs (tree sym, STAB_CODE_TYPE code,
for (;;)
{
chunklen = strlen (chunk);
- fwrite (chunk, 1, chunklen, asm_out_file);
- fputs ("\",", asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fwrite (chunk, 1, chunklen, dbx_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs ("\",", dbx_out_file);
/* Must add an extra byte to account for the NUL separator. */
chunk += chunklen + 1;
@@ -880,8 +923,10 @@ dbxout_finish_complex_stabs (tree sym, STAB_CODE_TYPE code,
if (len == 0)
break;
- fputs (ASM_STABS_OP, asm_out_file);
- putc ('"', asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fputs (ASM_STABS_OP, dbx_out_file);
+ /* APPLE LOCAL ss2 */
+ putc ('"', dbx_out_file);
}
stabstr_last_contin_point = 0;
}
@@ -894,7 +939,8 @@ dbxout_finish_complex_stabs (tree sym, STAB_CODE_TYPE code,
len = obstack_object_size (&stabstr_ob);
str = obstack_finish (&stabstr_ob);
- fwrite (str, 1, len, asm_out_file);
+ /* APPLE LOCAL ss2 */
+ fwrite (str, 1, len, dbx_out_file);
DBX_FINISH_STABS (sym, code, line, addr, label, number);
}
obstack_free (&stabstr_ob, str);
@@ -903,7 +949,7 @@ dbxout_finish_complex_stabs (tree sym, STAB_CODE_TYPE code,
#if defined (DBX_DEBUGGING_INFO)
static void
-dbxout_function_end (void)
+dbxout_function_end (tree decl)
{
char lscope_label_name[100];
@@ -915,7 +961,8 @@ dbxout_function_end (void)
the system doesn't insert underscores in front of user generated
labels. */
ASM_GENERATE_INTERNAL_LABEL (lscope_label_name, "Lscope", scope_labelno);
- targetm.asm_out.internal_label (asm_out_file, "Lscope", scope_labelno);
+ /* APPLE LOCAL ss2 */
+ targetm.asm_out.internal_label (dbx_out_file, "Lscope", scope_labelno);
scope_labelno++;
/* The N_FUN tag at the end of the function is a GNU extension,
@@ -923,13 +970,15 @@ dbxout_function_end (void)
named sections. */
if (!use_gnu_debug_info_extensions
|| NO_DBX_FUNCTION_END
- || !targetm.have_named_sections)
+ || !targetm.have_named_sections
+ || DECL_IGNORED_P (decl))
return;
/* By convention, GCC will mark the end of a function with an N_FUN
symbol and an empty string. */
#ifdef DBX_OUTPUT_NFUN
- DBX_OUTPUT_NFUN (asm_out_file, lscope_label_name, current_function_decl);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_NFUN (dbx_out_file, lscope_label_name, current_function_decl);
#else
dbxout_begin_empty_stabs (N_FUN);
dbxout_stab_value_label_diff (lscope_label_name,
@@ -960,6 +1009,10 @@ get_lang_number (void)
return N_SO_PASCAL;
else if (strcmp (language_string, "GNU Objective-C") == 0)
return N_SO_OBJC;
+ /* APPLE LOCAL begin mainline */
+ else if (strcmp (language_string, "GNU Objective-C++") == 0)
+ return N_SO_OBJCPLUS;
+ /* APPLE LOCAL end mainline */
else
return 0;
@@ -978,6 +1031,21 @@ dbxout_init (const char *input_file_name)
typevec_len = 100;
typevec = ggc_calloc (typevec_len, sizeof typevec[0]);
+ /* APPLE LOCAL begin ss2 */
+ /* Open dbx_out_file */
+ if (flag_save_repository
+ && flag_pch_file
+ && !flag_debug_only_used_symbols
+ && asm_file_name
+ && strcmp (asm_file_name, "-"))
+ {
+ dbx_out_file = fopen (asm_file_name, "w+b");
+ if (dbx_out_file == 0)
+ fatal_error ("can%'t open %s for writing: %m", asm_file_name);
+ }
+ else
+ dbx_out_file = asm_out_file;
+ /* APPLE LOCAL end ss2 */
/* stabstr_ob contains one string, which will be just fine with
1-byte alignment. */
obstack_specify_allocation (&stabstr_ob, 0, 1, xmalloc, free);
@@ -1001,7 +1069,8 @@ dbxout_init (const char *input_file_name)
cwd = concat (cwd, "/", NULL);
}
#ifdef DBX_OUTPUT_MAIN_SOURCE_DIRECTORY
- DBX_OUTPUT_MAIN_SOURCE_DIRECTORY (asm_out_file, cwd);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_MAIN_SOURCE_DIRECTORY (dbx_out_file, cwd);
#else /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */
dbxout_begin_simple_stabs_desc (cwd, N_SO, get_lang_number ());
dbxout_stab_value_label (ltext_label_name);
@@ -1010,7 +1079,8 @@ dbxout_init (const char *input_file_name)
}
#ifdef DBX_OUTPUT_MAIN_SOURCE_FILENAME
- DBX_OUTPUT_MAIN_SOURCE_FILENAME (asm_out_file, input_file_name);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_MAIN_SOURCE_FILENAME (dbx_out_file, input_file_name);
#else
dbxout_begin_simple_stabs_desc (input_file_name, N_SO, get_lang_number ());
dbxout_stab_value_label (ltext_label_name);
@@ -1020,7 +1090,8 @@ dbxout_init (const char *input_file_name)
if (used_ltext_label_name)
{
text_section ();
- targetm.asm_out.internal_label (asm_out_file, "Ltext", 0);
+ /* APPLE LOCAL ss2 */
+ targetm.asm_out.internal_label (dbx_out_file, "Ltext", 0);
}
/* Emit an N_OPT stab to indicate that this file was compiled by GCC.
@@ -1045,6 +1116,13 @@ dbxout_init (const char *input_file_name)
current_file->pending_bincl_name = NULL;
#endif
+/* APPLE LOCAL begin gdb only used symbols */
+#ifndef DBX_ONLY_USED_SYMBOLS
+ dbxout_symbol (TYPE_NAME (integer_type_node), 0);
+ dbxout_symbol (TYPE_NAME (char_type_node), 0);
+#endif
+/* APPLE LOCAL end gdb only used symbols */
+
/* Get all permanent types that have typedef names, and output them
all, except for those already output. Some language front ends
put these declarations in the top-level scope; some do not;
@@ -1085,8 +1163,30 @@ dbxout_typedefs (tree syms)
static void
emit_bincl_stab (const char *name)
{
+ /* APPLE LOCAL ss2 */
+ static unsigned int dbx_checksum;
+
dbxout_begin_simple_stabs (name, N_BINCL);
- dbxout_stab_value_zero ();
+
+ /* APPLE LOCAL begin ss2 */
+ if (flag_save_repository
+ && flag_pch_file
+ && !flag_debug_only_used_symbols)
+ {
+ /* Include dummy checksum with BINCL stab while creating
+ symbol repoistory. Add corrosponding EXCL stab in
+ asm file. */
+ dbx_checksum = crc32_string (42, name);
+
+ fprintf (asm_out_file, "%s", ASM_STABS_OP);
+ output_quoted_string (asm_out_file, name);
+ fprintf (asm_out_file, ",%d,0,0,%d\n", N_EXCL, dbx_checksum);
+
+ fprintf (dbx_out_file, "%d\n", dbx_checksum);
+ }
+ else
+ dbxout_stab_value_zero ();
+ /* APPLE LOCAL end ss2 */
}
/* If there are pending bincls then it is time to emit all of them. */
@@ -1249,7 +1349,8 @@ dbxout_source_line (unsigned int lineno, const char *filename)
dbxout_source_file (filename);
#ifdef DBX_OUTPUT_SOURCE_LINE
- DBX_OUTPUT_SOURCE_LINE (asm_out_file, lineno, dbxout_source_line_counter);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_SOURCE_LINE (dbx_out_file, lineno, dbxout_source_line_counter);
#else
if (DBX_LINES_FUNCTION_RELATIVE)
{
@@ -1270,7 +1371,8 @@ static void
dbxout_begin_block (unsigned int line ATTRIBUTE_UNUSED, unsigned int n)
{
emit_pending_bincls_if_required ();
- targetm.asm_out.internal_label (asm_out_file, "LBB", n);
+ /* APPLE LOCAL ss2 */
+ targetm.asm_out.internal_label (dbx_out_file, "LBB", n);
}
/* Describe the end line-number of an internal block within a function. */
@@ -1279,7 +1381,8 @@ static void
dbxout_end_block (unsigned int line ATTRIBUTE_UNUSED, unsigned int n)
{
emit_pending_bincls_if_required ();
- targetm.asm_out.internal_label (asm_out_file, "LBE", n);
+ /* APPLE LOCAL ss2 */
+ targetm.asm_out.internal_label (dbx_out_file, "LBE", n);
}
/* Output dbx data for a function definition.
@@ -1296,7 +1399,7 @@ dbxout_function_decl (tree decl)
dbxout_begin_function (decl);
#endif
dbxout_block (DECL_INITIAL (decl), 0, DECL_ARGUMENTS (decl));
- dbxout_function_end ();
+ dbxout_function_end (decl);
}
#endif /* DBX_DEBUGGING_INFO */
@@ -1332,7 +1435,8 @@ static void
dbxout_finish (const char *filename ATTRIBUTE_UNUSED)
{
#ifdef DBX_OUTPUT_MAIN_SOURCE_FILE_END
- DBX_OUTPUT_MAIN_SOURCE_FILE_END (asm_out_file, filename);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_MAIN_SOURCE_FILE_END (dbx_out_file, filename);
#elif defined DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
{
text_section ();
@@ -1341,6 +1445,18 @@ dbxout_finish (const char *filename ATTRIBUTE_UNUSED)
}
#endif
debug_free_queue ();
+
+ /* APPLE LOCAL begin ss2 */
+ if (flag_save_repository
+ && flag_pch_file && !flag_debug_only_used_symbols)
+ {
+ /* Close dbx_out_file now here. toplev.c takes care of asm file. */
+ if (ferror (dbx_out_file) != 0)
+ fatal_error ("error writing to %s: %m", asm_file_name);
+ if (fclose (dbx_out_file) != 0)
+ fatal_error ("error closing %s: %m", asm_file_name);
+ }
+ /* APPLE LOCAL end ss2 */
}
/* Output the index of a type. */
@@ -1636,10 +1752,17 @@ dbxout_type (tree type, int full)
tree main_variant;
static int anonymous_type_number = 0;
+ /* APPLE LOCAL begin vector attribute mainline 2005-04-25 */
+ bool vector_type = false;
+
if (TREE_CODE (type) == VECTOR_TYPE)
- /* The frontend feeds us a representation for the vector as a struct
- containing an array. Pull out the array type. */
- type = TREE_TYPE (TYPE_FIELDS (TYPE_DEBUG_REPRESENTATION_TYPE (type)));
+ {
+ /* The frontend feeds us a representation for the vector as a struct
+ containing an array. Pull out the array type. */
+ type = TREE_TYPE (TYPE_FIELDS (TYPE_DEBUG_REPRESENTATION_TYPE (type)));
+ vector_type = true;
+ }
+ /* APPLE LOCAL end vector attribute mainline 2005-04-25 */
/* If there was an input error and we don't really have a type,
avoid crashing and write something that is at least valid
@@ -1979,6 +2102,14 @@ dbxout_type (tree type, int full)
break;
}
+ /* APPLE LOCAL begin vector attribute mainline 2005-04-25 */
+ if (vector_type)
+ {
+ have_used_extensions = 1;
+ stabstr_S ("@V;");
+ }
+ /* APPLE LOCAL end vector attribute mainline 2005-04-25 */
+
/* Output "a" followed by a range type definition
for the index type of the array
followed by a reference to the target-type.
@@ -2487,7 +2618,14 @@ dbxout_symbol (tree decl, int local ATTRIBUTE_UNUSED)
int tag_needed = 1;
int did_output = 0;
- if (DECL_NAME (decl))
+ /* APPLE LOCAL begin gdb only used symbols */
+ if (DECL_NAME (decl)
+#ifdef DBX_ONLY_USED_SYMBOLS
+ /* Do not generate a tag for incomplete records */
+ && (COMPLETE_TYPE_P (type) || TREE_CODE (type) == VOID_TYPE)
+#endif
+ )
+ /* APPLE LOCAL end gdb only used symbols */
{
/* Nonzero means we must output a tag as well as a typedef. */
tag_needed = 0;
@@ -2903,7 +3041,8 @@ dbxout_symbol_location (tree decl, tree type, const char *suffix, rtx home)
FORCE_TEXT;
#ifdef DBX_STATIC_BLOCK_START
- DBX_STATIC_BLOCK_START (asm_out_file, code);
+ /* APPLE LOCAL ss2 */
+ DBX_STATIC_BLOCK_START (dbx_out_file, code);
#endif
dbxout_begin_complex_stabs_noforcetext ();
@@ -2912,7 +3051,8 @@ dbxout_symbol_location (tree decl, tree type, const char *suffix, rtx home)
dbxout_finish_complex_stabs (decl, code, addr, 0, number);
#ifdef DBX_STATIC_BLOCK_END
- DBX_STATIC_BLOCK_END (asm_out_file, code);
+ /* APPLE LOCAL ss2 */
+ DBX_STATIC_BLOCK_END (dbx_out_file, code);
#endif
return 1;
}
@@ -3225,7 +3365,8 @@ dbx_output_lbrac (const char *label,
const char *begin_label ATTRIBUTE_UNUSED)
{
#ifdef DBX_OUTPUT_LBRAC
- DBX_OUTPUT_LBRAC (asm_out_file, label);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_LBRAC (dbx_out_file, label);
#else
dbxout_begin_stabn (N_LBRAC);
if (DBX_BLOCKS_FUNCTION_RELATIVE)
@@ -3243,7 +3384,8 @@ dbx_output_rbrac (const char *label,
const char *begin_label ATTRIBUTE_UNUSED)
{
#ifdef DBX_OUTPUT_RBRAC
- DBX_OUTPUT_RBRAC (asm_out_file, label);
+ /* APPLE LOCAL ss2 */
+ DBX_OUTPUT_RBRAC (dbx_out_file, label);
#else
dbxout_begin_stabn (N_RBRAC);
if (DBX_BLOCKS_FUNCTION_RELATIVE)
@@ -3358,7 +3500,12 @@ dbxout_block (tree block, int depth, tree args)
static void
dbxout_begin_function (tree decl)
{
- int saved_tree_used1 = TREE_USED (decl);
+ int saved_tree_used1;
+
+ if (DECL_IGNORED_P (decl))
+ return;
+
+ saved_tree_used1 = TREE_USED (decl);
TREE_USED (decl) = 1;
if (DECL_NAME (DECL_RESULT (decl)) != 0)
{
diff --git a/gcc/ddg.c b/gcc/ddg.c
index a54a87c0744..5a2cbeee109 100644
--- a/gcc/ddg.c
+++ b/gcc/ddg.c
@@ -187,6 +187,8 @@ create_ddg_dependence (ddg_ptr g, ddg_node_ptr src_node,
else
free (e);
}
+ else if (t == ANTI_DEP && dt == REG_DEP)
+ free (e); /* We can fix broken anti register deps using reg-moves. */
else
add_edge_to_ddg (g, e);
}
diff --git a/gcc/debug.c b/gcc/debug.c
index 812920604ba..226dc4ec601 100644
--- a/gcc/debug.c
+++ b/gcc/debug.c
@@ -47,7 +47,8 @@ const struct gcc_debug_hooks do_nothing_debug_hooks =
debug_nothing_tree, /* outlining_inline_function */
debug_nothing_rtx, /* label */
debug_nothing_int, /* handle_pch */
- debug_nothing_rtx /* var_location */
+ debug_nothing_rtx, /* var_location */
+ 0 /* start_end_main_source_file */
};
/* This file contains implementations of each debug hook that do
diff --git a/gcc/debug.h b/gcc/debug.h
index 547b7f68eab..3feccc53313 100644
--- a/gcc/debug.h
+++ b/gcc/debug.h
@@ -119,6 +119,10 @@ struct gcc_debug_hooks
/* Called from final_scan_insn for any NOTE_INSN_VAR_LOCATION note. */
void (* var_location) (rtx);
+
+ /* This is 1 if the debug writer wants to see start and end commands for the
+ main source files, and 0 otherwise. */
+ int start_end_main_source_file;
};
extern const struct gcc_debug_hooks *debug_hooks;
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 7c881296394..28a0d83adb6 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -36,19 +36,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
obstack_chunk_alloc, \
obstack_chunk_free)
-/* Define default standard character escape sequences. */
-#ifndef TARGET_BELL
-# define TARGET_BELL 007
-# define TARGET_BS 010
-# define TARGET_CR 015
-# define TARGET_DIGIT0 060
-# define TARGET_ESC 033
-# define TARGET_FF 014
-# define TARGET_NEWLINE 012
-# define TARGET_TAB 011
-# define TARGET_VT 013
-#endif
-
/* Store in OUTPUT a string (made with alloca) containing an
assembler-name for a local static variable or function named NAME.
LABELNO is an integer which is different for each call. */
@@ -768,7 +755,7 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \
#define REGISTER_MOVE_COST(m, x, y) 2
#endif
-/* Determine whether the the entire c99 runtime
+/* Determine whether the entire c99 runtime
is present in the runtime library. */
#ifndef TARGET_C99_FUNCTIONS
#define TARGET_C99_FUNCTIONS 0
diff --git a/gcc/df.c b/gcc/df.c
index 1fe44f20ef3..2ce24afa3fc 100644
--- a/gcc/df.c
+++ b/gcc/df.c
@@ -320,7 +320,7 @@ df_insn_table_realloc (struct df *df, unsigned int size)
if (! df->insns_modified)
{
- df->insns_modified = BITMAP_XMALLOC ();
+ df->insns_modified = BITMAP_ALLOC (NULL);
bitmap_zero (df->insns_modified);
}
}
@@ -392,10 +392,10 @@ df_bitmaps_alloc (struct df *df, bitmap blocks, int flags)
if (!bb_info->rd_in)
{
/* Allocate bitmaps for reaching definitions. */
- bb_info->rd_kill = BITMAP_XMALLOC ();
- bb_info->rd_gen = BITMAP_XMALLOC ();
- bb_info->rd_in = BITMAP_XMALLOC ();
- bb_info->rd_out = BITMAP_XMALLOC ();
+ bb_info->rd_kill = BITMAP_ALLOC (NULL);
+ bb_info->rd_gen = BITMAP_ALLOC (NULL);
+ bb_info->rd_in = BITMAP_ALLOC (NULL);
+ bb_info->rd_out = BITMAP_ALLOC (NULL);
}
else
{
@@ -411,10 +411,10 @@ df_bitmaps_alloc (struct df *df, bitmap blocks, int flags)
if (!bb_info->ru_in)
{
/* Allocate bitmaps for upward exposed uses. */
- bb_info->ru_kill = BITMAP_XMALLOC ();
- bb_info->ru_gen = BITMAP_XMALLOC ();
- bb_info->ru_in = BITMAP_XMALLOC ();
- bb_info->ru_out = BITMAP_XMALLOC ();
+ bb_info->ru_kill = BITMAP_ALLOC (NULL);
+ bb_info->ru_gen = BITMAP_ALLOC (NULL);
+ bb_info->ru_in = BITMAP_ALLOC (NULL);
+ bb_info->ru_out = BITMAP_ALLOC (NULL);
}
else
{
@@ -430,10 +430,10 @@ df_bitmaps_alloc (struct df *df, bitmap blocks, int flags)
if (!bb_info->lr_in)
{
/* Allocate bitmaps for live variables. */
- bb_info->lr_def = BITMAP_XMALLOC ();
- bb_info->lr_use = BITMAP_XMALLOC ();
- bb_info->lr_in = BITMAP_XMALLOC ();
- bb_info->lr_out = BITMAP_XMALLOC ();
+ bb_info->lr_def = BITMAP_ALLOC (NULL);
+ bb_info->lr_use = BITMAP_ALLOC (NULL);
+ bb_info->lr_in = BITMAP_ALLOC (NULL);
+ bb_info->lr_out = BITMAP_ALLOC (NULL);
}
else
{
@@ -463,39 +463,39 @@ df_bitmaps_free (struct df *df, int flags)
if ((flags & DF_RD) && bb_info->rd_in)
{
/* Free bitmaps for reaching definitions. */
- BITMAP_XFREE (bb_info->rd_kill);
+ BITMAP_FREE (bb_info->rd_kill);
bb_info->rd_kill = NULL;
- BITMAP_XFREE (bb_info->rd_gen);
+ BITMAP_FREE (bb_info->rd_gen);
bb_info->rd_gen = NULL;
- BITMAP_XFREE (bb_info->rd_in);
+ BITMAP_FREE (bb_info->rd_in);
bb_info->rd_in = NULL;
- BITMAP_XFREE (bb_info->rd_out);
+ BITMAP_FREE (bb_info->rd_out);
bb_info->rd_out = NULL;
}
if ((flags & DF_RU) && bb_info->ru_in)
{
/* Free bitmaps for upward exposed uses. */
- BITMAP_XFREE (bb_info->ru_kill);
+ BITMAP_FREE (bb_info->ru_kill);
bb_info->ru_kill = NULL;
- BITMAP_XFREE (bb_info->ru_gen);
+ BITMAP_FREE (bb_info->ru_gen);
bb_info->ru_gen = NULL;
- BITMAP_XFREE (bb_info->ru_in);
+ BITMAP_FREE (bb_info->ru_in);
bb_info->ru_in = NULL;
- BITMAP_XFREE (bb_info->ru_out);
+ BITMAP_FREE (bb_info->ru_out);
bb_info->ru_out = NULL;
}
if ((flags & DF_LR) && bb_info->lr_in)
{
/* Free bitmaps for live variables. */
- BITMAP_XFREE (bb_info->lr_def);
+ BITMAP_FREE (bb_info->lr_def);
bb_info->lr_def = NULL;
- BITMAP_XFREE (bb_info->lr_use);
+ BITMAP_FREE (bb_info->lr_use);
bb_info->lr_use = NULL;
- BITMAP_XFREE (bb_info->lr_in);
+ BITMAP_FREE (bb_info->lr_in);
bb_info->lr_in = NULL;
- BITMAP_XFREE (bb_info->lr_out);
+ BITMAP_FREE (bb_info->lr_out);
bb_info->lr_out = NULL;
}
}
@@ -538,14 +538,14 @@ df_alloc (struct df *df, int n_regs)
df_reg_table_realloc (df, df->n_regs);
- df->bbs_modified = BITMAP_XMALLOC ();
+ df->bbs_modified = BITMAP_ALLOC (NULL);
bitmap_zero (df->bbs_modified);
df->flags = 0;
df->bbs = xcalloc (last_basic_block, sizeof (struct bb_info));
- df->all_blocks = BITMAP_XMALLOC ();
+ df->all_blocks = BITMAP_ALLOC (NULL);
FOR_EACH_BB (bb)
bitmap_set_bit (df->all_blocks, bb->index);
}
@@ -583,13 +583,13 @@ df_free (struct df *df)
df->regs = 0;
df->reg_size = 0;
- BITMAP_XFREE (df->bbs_modified);
+ BITMAP_FREE (df->bbs_modified);
df->bbs_modified = 0;
- BITMAP_XFREE (df->insns_modified);
+ BITMAP_FREE (df->insns_modified);
df->insns_modified = 0;
- BITMAP_XFREE (df->all_blocks);
+ BITMAP_FREE (df->all_blocks);
df->all_blocks = 0;
free_alloc_pool (df_ref_pool);
@@ -893,9 +893,11 @@ df_def_record_1 (struct df *df, rtx x, basic_block bb, rtx insn)
loc = &SET_DEST (x);
dst = *loc;
- /* Some targets place small structures in registers for
+ /* APPLE LOCAL begin handle DImode parallel */
+ /* Some targets place small structures or 64-bit ints in registers for
return values of functions. */
- if (GET_CODE (dst) == PARALLEL && GET_MODE (dst) == BLKmode)
+ if (GET_CODE (dst) == PARALLEL)
+ /* APPLE LOCAL end handle DImode parallel */
{
int i;
@@ -1484,14 +1486,14 @@ df_du_chain_create (struct df *df, bitmap blocks)
bitmap ru;
basic_block bb;
- ru = BITMAP_XMALLOC ();
+ ru = BITMAP_ALLOC (NULL);
FOR_EACH_BB_IN_BITMAP (blocks, 0, bb,
{
df_bb_du_chain_create (df, bb, ru);
});
- BITMAP_XFREE (ru);
+ BITMAP_FREE (ru);
}
@@ -1615,7 +1617,7 @@ df_bb_rd_local_compute (struct df *df, basic_block bb, bitmap call_killed_defs)
{
struct bb_info *bb_info = DF_BB_INFO (df, bb);
rtx insn;
- bitmap seen = BITMAP_XMALLOC ();
+ bitmap seen = BITMAP_ALLOC (NULL);
bool call_seen = false;
FOR_BB_INSNS_REVERSE (bb, insn)
@@ -1661,7 +1663,7 @@ df_bb_rd_local_compute (struct df *df, basic_block bb, bitmap call_killed_defs)
}
}
- BITMAP_XFREE (seen);
+ BITMAP_FREE (seen);
}
@@ -1676,7 +1678,7 @@ df_rd_local_compute (struct df *df, bitmap blocks)
if (df->flags & DF_HARD_REGS)
{
- killed_by_call = BITMAP_XMALLOC ();
+ killed_by_call = BITMAP_ALLOC (NULL);
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
{
if (!TEST_HARD_REG_BIT (regs_invalidated_by_call, regno))
@@ -1695,7 +1697,7 @@ df_rd_local_compute (struct df *df, bitmap blocks)
});
if (df->flags & DF_HARD_REGS)
- BITMAP_XFREE (killed_by_call);
+ BITMAP_FREE (killed_by_call);
}
@@ -1872,14 +1874,14 @@ df_reg_info_compute (struct df *df, bitmap blocks)
basic_block bb;
bitmap live;
- live = BITMAP_XMALLOC ();
+ live = BITMAP_ALLOC (NULL);
FOR_EACH_BB_IN_BITMAP (blocks, 0, bb,
{
df_bb_reg_info_compute (df, bb, live);
});
- BITMAP_XFREE (live);
+ BITMAP_FREE (live);
}
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index b047167bc49..577e31e1101 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -60,6 +60,16 @@ static void real_abort (void) ATTRIBUTE_NORETURN;
/* A diagnostic_context surrogate for stderr. */
static diagnostic_context global_diagnostic_context;
diagnostic_context *global_dc = &global_diagnostic_context;
+
+/* APPLE LOCAL begin error-colon */
+static int gcc_error_colon = 0;
+/* APPLE LOCAL end error-colon */
+
+/* APPLE LOCAL begin insert assembly ".abort" directive on fatal error */
+#ifdef EXIT_FROM_FATAL_DIAGNOSTIC
+#define exit(status) EXIT_FROM_FATAL_DIAGNOSTIC (status)
+#endif
+/* APPLE LOCAL end insert assembly ".abort" directive on fatal error */
/* Return a malloc'd string containing MSG formatted a la printf. The
caller is responsible for freeing the memory. */
@@ -80,6 +90,11 @@ build_message_string (const char *msg, ...)
char *
file_name_as_prefix (const char *f)
{
+ /* APPLE LOCAL begin error-colon */
+ if (gcc_error_colon)
+ return build_message_string ("%s: error: ", f);
+ else
+ /* APPLE LOCAL end error-colon */
return build_message_string ("%s: ", f);
}
@@ -150,6 +165,23 @@ diagnostic_count_diagnostic (diagnostic_context *context,
diagnostic_info *diagnostic)
{
diagnostic_t kind = diagnostic->kind;
+
+ /* APPLE LOCAL begin error-colon */
+ /* Here so it gets executed early on. */
+ {
+ static int done = 0;
+ if (!done)
+ {
+ done = 1; /* Do this only once. */
+ /* Pretend we saw "-w" on commandline. */
+ if (getenv ("GCC_DASH_W"))
+ inhibit_warnings = 1; /* referenced by diagnostic.h:diagnostic_report_warnings() */
+ if (getenv ("GCC_ERROR_COLON"))
+ gcc_error_colon = 1;
+ }
+ }
+ /* APPLE LOCAL end error-colon */
+
switch (kind)
{
default:
diff --git a/gcc/doc/c-tree.texi b/gcc/doc/c-tree.texi
index e0881cf2d80..a6033f16256 100644
--- a/gcc/doc/c-tree.texi
+++ b/gcc/doc/c-tree.texi
@@ -1363,7 +1363,7 @@ void process_stmt (stmt)
@{
case IF_STMT:
process_stmt (THEN_CLAUSE (stmt));
- /* More processing here. */
+ /* @r{More processing here.} */
break;
@dots{}
diff --git a/gcc/doc/contrib.texi b/gcc/doc/contrib.texi
index e1944ebba54..209d32c1191 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,
-@c 2001,2002,2003,2004 Free Software Foundation, Inc.
+@c 2001,2002,2003,2004,2005 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -279,7 +279,7 @@ feeding the gcc.gnu.org box and saving its users tons of spam.
Fred Fish for BeOS support and Ada fixes.
@item
-Ivan Fontes Garcia for the Portugese translation of the GCJ FAQ@.
+Ivan Fontes Garcia for the Portuguese translation of the GCJ FAQ@.
@item
Peter Gerwinski for various bug fixes and the Pascal front end.
@@ -982,6 +982,153 @@ Gilles Zunino for help porting Java to Irix.
@end itemize
+The following people are recognized for their contributions to GNAT,
+the Ada front end of GCC:
+@itemize @bullet
+@item
+Bernard Banner
+
+@item
+Romain Berrendonner
+
+@item
+Geert Bosch
+
+@item
+Emmanuel Briot
+
+@item
+Joel Brobecker
+
+@item
+Ben Brosgol
+
+@item
+Vincent Celier
+
+@item
+Arnaud Charlet
+
+@item
+Chien Chieng
+
+@item
+Cyrille Comar
+
+@item
+Cyrille Crozes
+
+@item
+Robert Dewar
+
+@item
+Gary Dismukes
+
+@item
+Robert Duff
+
+@item
+Ed Falis
+
+@item
+Ramon Fernandez
+
+@item
+Sam Figueroa
+
+@item
+Vasiliy Fofanov
+
+@item
+Michael Friess
+
+@item
+Franco Gasperoni
+
+@item
+Ted Giering
+
+@item
+Matthew Gingell
+
+@item
+Laurent Guerby
+
+@item
+Jerome Guitton
+
+@item
+Olivier Hainque
+
+@item
+Jerome Hugues
+
+@item
+Hristian Kirtchev
+
+@item
+Jerome Lambourg
+
+@item
+Bruno Leclerc
+
+@item
+Albert Lee
+
+@item
+Sean McNeil
+
+@item
+Javier Miranda
+
+@item
+Laurent Nana
+
+@item
+Pascal Obry
+
+@item
+Dong-Ik Oh
+
+@item
+Laurent Pautet
+
+@item
+Brett Porter
+
+@item
+Thomas Quinot
+
+@item
+Nicolas Roche
+
+@item
+Pat Rogers
+
+@item
+Jose Ruiz
+
+@item
+Douglas Rupp
+
+@item
+Sergey Rybin
+
+@item
+Gail Schenker
+
+@item
+Ed Schonberg
+
+@item
+Nicolas Setton
+
+@item
+Samuel Tardieu
+
+@end itemize
+
+
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:
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index ea38218b8c1..75bffdcd9b4 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -1318,7 +1318,7 @@ name, and you wish to use the function sometimes.
@smallexample
extern void foo(void);
-#define foo() /* optimized inline version */
+#define foo() /* @r{optimized inline version} */
@dots{}
foo();
funcptr = foo;
@@ -2211,7 +2211,7 @@ These definitions are effectively the same:
@smallexample
#define FOUR (2 + 2)
#define FOUR (2 + 2)
-#define FOUR (2 /* two */ + 2)
+#define FOUR (2 /* @r{two} */ + 2)
@end smallexample
@noindent
but these are not:
@@ -3538,8 +3538,8 @@ require matching quotes. For example:
@smallexample
#define m This macro's fine and has an unmatched quote
"/* This is not a comment. */
-/* This is a comment. The following #include directive
- is ill-formed. */
+/* @r{This is a comment. The following #include directive
+ is ill-formed.} */
#include <stdio.h
@end smallexample
@@ -3626,7 +3626,7 @@ example
@smallexample
#define str(x) "x"
-str(/* A comment */some text )
+str(/* @r{A comment} */some text )
@expansion{} "some text "
@end smallexample
@@ -3764,8 +3764,10 @@ character set may be controlled by the user, with the
The C and C++ standards allow identifiers to be composed of @samp{_}
and the alphanumeric characters. C++ and C99 also allow universal
-character names (not implemented in GCC), and C99 further permits
-implementation-defined characters.
+@c APPLE LOCAL begin mainline
+character names, and C99 further permits implementation-defined
+characters.
+@c APPLE LOCAL end mainline
GCC allows the @samp{$} character in identifiers as an extension for
most targets. This is true regardless of the @option{std=} switch,
@@ -4045,7 +4047,7 @@ they generally represent bugs in the snapshots.
@item -I- deprecated
-This option has been deprecated in 3.5. @option{-iquote} is meant to
+This option has been deprecated in 4.0. @option{-iquote} is meant to
replace the need for this option.
@item Order of evaluation of @samp{#} and @samp{##} operators
diff --git a/gcc/doc/cppinternals.texi b/gcc/doc/cppinternals.texi
index b5ee7844d2d..13db034b0ca 100644
--- a/gcc/doc/cppinternals.texi
+++ b/gcc/doc/cppinternals.texi
@@ -789,8 +789,8 @@ lexed on if, for example, there are intervening escaped newlines or
C-style comments. For example:
@smallexample
-foo /* A long
-comment */ bar \
+foo /* @r{A long
+comment} */ bar \
baz
@result{}
foo bar baz
diff --git a/gcc/doc/cppopts.texi b/gcc/doc/cppopts.texi
index 872cffcd501..c5dcf3688ad 100644
--- a/gcc/doc/cppopts.texi
+++ b/gcc/doc/cppopts.texi
@@ -1,4 +1,4 @@
-@c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004
+@c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
@c Free Software Foundation, Inc.
@c This is part of the CPP and GCC manuals.
@c For copying conditions, see the file gcc.texi.
@@ -237,6 +237,12 @@ preprocessed output.
When used with the driver options @option{-MD} or @option{-MMD},
@option{-MF} overrides the default dependency output file.
+@c APPLE LOCAL begin -dependency-file
+@item -dependency-file
+@opindex dependency-file @var{name}
+Like @option{-MF}. (APPLE ONLY)
+@c APPLE LOCAL end -dependency-file
+
@item -MG
@opindex MG
In conjunction with an option such as @option{-M} requesting
@@ -348,13 +354,17 @@ current directory.
@item -x c
@itemx -x c++
@itemx -x objective-c
+@c APPLE LOCAL Objective-C++
+@itemx -x objective-c++
@itemx -x assembler-with-cpp
@opindex x
-Specify the source language: C, C++, Objective-C, or assembly. This has
+@c APPLE LOCAL Objective-C++
+Specify the source language: C, C++, Objective-C, Objective-C++, or assembly. This has
nothing to do with standards conformance or extensions; it merely
selects which base syntax to expect. If you give none of these options,
cpp will deduce the language from the extension of the source file:
-@samp{.c}, @samp{.cc}, @samp{.m}, or @samp{.S}. Some other common
+@c APPLE LOCAL Objective-C++
+@samp{.c}, @samp{.cc}, @samp{.m}, @samp{.mm}, or @samp{.S}. Some other common
extensions for C++ and assembly are also recognized. If cpp does not
recognize the extension, it will treat the file as C; this is the most
generic mode.
@@ -530,12 +540,14 @@ ignored. The default is 8.
@item -fexec-charset=@var{charset}
@opindex fexec-charset
+@cindex character set, execution
Set the execution character set, used for string and character
constants. The default is UTF-8. @var{charset} can be any encoding
supported by the system's @code{iconv} library routine.
@item -fwide-exec-charset=@var{charset}
@opindex fwide-exec-charset
+@cindex character set, wide execution
Set the wide execution character set, used for wide string and
character constants. The default is UTF-32 or UTF-16, whichever
corresponds to the width of @code{wchar_t}. As with
@@ -545,6 +557,7 @@ problems with encodings that do not fit exactly in @code{wchar_t}.
@item -finput-charset=@var{charset}
@opindex finput-charset
+@cindex character set, input
Set the input character set, used for translation from the character
set of the input file to the source character set used by GCC@. If the
locale does not specify, or GCC cannot get this information from the
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 7e4d66aaa87..855b8fd599e 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -54,6 +54,10 @@ extensions, accepted by GCC in C89 mode and in C++.
* C++ Comments:: C++ comments are recognized.
* Dollar Signs:: Dollar sign is allowed in identifiers.
* Character Escapes:: @samp{\e} stands for the character @key{ESC}.
+@c APPLE LOCAL begin pascal strings
+* Pascal Strings:: Constructing string literals with a Pascal-style
+ length byte.
+@c APPLE LOCAL end pascal strings
* Variable Attributes:: Specifying attributes of variables.
* Type Attributes:: Specifying attributes of types.
* Alignment:: Inquiring about the alignment of a type or variable.
@@ -63,6 +67,8 @@ extensions, accepted by GCC in C89 mode and in C++.
* Constraints:: Constraints for asm operands
* Asm Labels:: Specifying the assembler name to use for a C symbol.
* Explicit Reg Vars:: Defining variables residing in specified registers.
+@c APPLE LOCAL CW asm blocks
+* Asm Blocks and Functions:: Block and functions of assembly code.
* Alternate Keywords:: @code{__const__}, @code{__asm__}, etc., for header files.
* Incomplete Enums:: @code{enum foo;}, with details to follow.
* Function Names:: Printable strings which are the name of the current
@@ -187,6 +193,29 @@ work with C++. (Note that some versions of the GNU C Library contained
header files using statement-expression that lead to precisely this
bug.)
+Jumping into a statement expression with @code{goto} or using a
+@code{switch} statement outside the statement expression with a
+@code{case} or @code{default} label inside the statement expression is
+not permitted. Jumping into a statement expression with a computed
+@code{goto} (@pxref{Labels as Values}) yields undefined behavior.
+Jumping out of a statement expression is permitted, but if the
+statement expression is part of a larger expression then it is
+unspecified which other subexpressions of that expression have been
+evaluated except where the language definition requires certain
+subexpressions to be evaluated before or after the statement
+expression. In any case, as with a function call the evaluation of a
+statement expression is not interleaved with the evaluation of other
+parts of the containing expression. For example,
+
+@smallexample
+ foo (), ((@{ bar1 (); goto a; 0; @}) + bar2 ()), baz();
+@end smallexample
+
+@noindent
+will call @code{foo} and @code{bar1} and will not call @code{baz} but
+may or may not call @code{bar2}. If @code{bar2} is called, it will be
+called after @code{foo} and before @code{bar1}
+
@node Local Labels
@section Locally Declared Labels
@cindex local labels
@@ -449,8 +478,10 @@ bar (int *array, int offset, int size)
@end group
@end smallexample
+@c APPLE LOCAL begin mainline 2005-03-04
A nested function always has no linkage. Declaring one with
@code{extern} or @code{static} is erroneous. If you need to declare the nested function
+@c APPLE LOCAL end mainline 2005-03-04
before its definition, use @code{auto} (which is otherwise meaningless
for function declarations).
@@ -1527,7 +1558,8 @@ void f () __attribute__ ((weak, alias ("__f")));
@end smallexample
declares @samp{f} to be a weak alias for @samp{__f}. In C++, the
-mangled name for the target must be used.
+mangled name for the target must be used. It is an error if @samp{__f}
+is not defined in the same translation unit.
Not all target machines support this attribute.
@@ -1549,7 +1581,7 @@ useful to override the effects of the @option{-mrtd} switch.
@cindex @code{const} function attribute
Many functions do not examine any values except their arguments, and
have no effects except the return value. Basically this is just slightly
-more strict class than the @code{pure} attribute above, since function is not
+more strict class than the @code{pure} attribute below, since function is not
allowed to read global memory.
@cindex pointer arguments
@@ -1868,6 +1900,8 @@ the specified function is an interrupt handler. The compiler will generate
function entry and exit sequences suitable for use in an interrupt
handler when this attribute is present.
+@c APPLE LOCAL Apple customers doesn't care about ARM options.
+@ignore
@item long_call/short_call
@cindex indirect calls on ARM
This attribute specifies how a particular function is called on
@@ -1878,6 +1912,8 @@ function by first loading its address into a register and then using the
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.
+@c APPLE LOCAL Apple customers don't care about ARM options.
+@end ignore
@item longcall/shortcall
@cindex functions called via pointer on the RS/6000 and PowerPC
@@ -2034,6 +2070,8 @@ typedef void voidfn ();
volatile voidfn fatal;
@end smallexample
+This approach does not work in GNU C++.
+
@item nothrow
@cindex @code{nothrow} function attribute
The @code{nothrow} attribute is used to inform the compiler that a
@@ -2573,7 +2611,7 @@ int isroot P((uid_t));
/* @r{Old-style function definition.} */
int
-isroot (x) /* ??? lossage here ??? */
+isroot (x) /* @r{??? lossage here ???} */
uid_t x;
@{
return x == 0;
@@ -2640,6 +2678,62 @@ machines, typically because the target assembler does not allow them.
You can use the sequence @samp{\e} in a string or character constant to
stand for the ASCII character @key{ESC}.
+@c APPLE LOCAL begin pascal strings
+@node Pascal Strings
+@section Constructing String Literals with a Pascal-style Length Byte
+@cindex Pascal length byte
+@cindex Pascal strings
+
+Specifying the @w{@option{-fpascal-strings}} option will cause the
+compiler to recognize and construct Pascal-style string literals. This
+functionality is disabled by default; furthermore, its use in new code
+is discouraged.
+
+Pascal string literals take the form @samp{"\pstring"}. The special
+escape sequence @samp{\p} denotes the Pascal length byte for the string,
+and will be replaced at compile time with the number of characters that
+follow. The @samp{\p} may only appear at the beginning of a string
+literal, and may @emph{not} appear in wide string literals or as an
+integral constant.
+
+As is the case with C string literals, Pascal string literals are
+terminated with a NUL character; this character is @emph{not} counted
+when computing the value of the length byte. The maximum @samp{unsigned
+char} value that can be stored in the length byte is also the maximum
+permissible length for the Pascal literal itself. On most target
+platforms, this value is 255 (excluding both the length byte and the
+terminating NUL).
+
+Pascal-style literals are treated by the compiler as being of type
+@samp{const unsigned char []} in C++ and @samp{unsigned char []} (or
+@samp{const unsigned char []}, if the @w{@option{-Wwrite-strings}}
+option is given) in C. Pascal string literals may be used as static
+initializers for @samp{char} arrays (whose elements need not be
+@samp{unsigned} or @samp{const}). They may also be converted to
+@samp{const unsigned char *} and, in the C language to @samp{const char
+*} of any signedness (In C, if the @w{@option{-Wwrite-strings}} is not
+given, then @samp{const} may be omitted as well). For example:
+
+@example
+const unsigned char a[] = "\pHello";
+char b[] = "\pGoodbye";
+const unsigned char *c = "\pHello";
+const signed char *d = "\pHello"; /* error in C++ */
+char *e = "\pHi"; /* error in C++; warning in C with -Wwrite-strings */
+unsigned char *f = "\pHello"; /* error in C++ */
+@end example
+
+@noindent
+In all other respects, Pascal-style string literals behave the same as
+ordinary string literals. For example, if a program attempts to modify
+the conents of a Pascal-style string literal at run-time, the behaviour
+is undefined, unless the @w{@option{-fwritable-strings}} option is used.
+
+Pascal-style literals are useful for calling external routines that
+expect Pascal strings as arguments, as is true with some Apple MacOS
+Toolbox calls.
+@c APPLE LOCAL end pascal strings
+
@node Alignment
@section Inquiring on Alignment of Types or Variables
@cindex alignment
@@ -2852,13 +2946,13 @@ int init_data __attribute__ ((section ("INITDATA"))) = 0;
main()
@{
- /* Initialize stack pointer */
+ /* @r{Initialize stack pointer} */
init_sp (stack + sizeof (stack));
- /* Initialize initialized data */
+ /* @r{Initialize initialized data} */
memcpy (&init_data, &data, &edata - &data);
- /* Turn on the serial ports */
+ /* @r{Turn on the serial ports} */
init_duart (&a);
init_duart (&b);
@}
@@ -2897,8 +2991,8 @@ int foo __attribute__((section ("shared"), shared)) = 0;
int
main()
@{
- /* Read and write foo. All running
- copies see the same value. */
+ /* @r{Read and write foo. All running
+ copies see the same value.} */
return 0;
@}
@end smallexample
@@ -3462,7 +3556,7 @@ GCC does not inline any functions when not optimizing unless you specify
the @samp{always_inline} attribute for the function, like this:
@smallexample
-/* Prototype. */
+/* @r{Prototype.} */
inline void foo (const char) __attribute__((always_inline));
@end smallexample
@@ -3632,7 +3726,7 @@ example for the VAX:
@smallexample
asm volatile ("movc3 %0,%1,%2"
- : /* no outputs */
+ : /* @r{no outputs} */
: "g" (from), "g" (to), "g" (count)
: "r0", "r1", "r2", "r3", "r4", "r5");
@end smallexample
@@ -4195,6 +4289,85 @@ register int *p2 asm ("r1") = @dots{};
In those cases, a solution is to use a temporary variable for
each arbitrary expression. @xref{Example of asm with clobbered asm reg}.
+@c APPLE LOCAL begin CW asm blocks
+@node Asm Blocks and Functions
+@section Blocks and Functions of Assembly Language
+
+(This feature is APPLE ONLY.)
+
+In addition to writing single statements in assembly, you can also
+define blocks and entire functions to use a mixed assembly and C
+syntax. The syntax follows that used in Metrowerks' CodeWarrior.
+This extension must be explicitly enabled with the
+@option{-fasm-blocks} option.
+
+The block syntax consists of @code{asm} followed by braces, with the
+assembly instructions on separate lines. (However, @code{';'} may be
+used to put several instructions on one line.) You write labels with
+either a preceding @code{'@@'} or a trailing @code{':'} (or both, if
+you prefer); labels are always local to the asm block, and there is no
+way for a label in one block to refer to a label in another block.
+Comments and lexical rules are as for standard C/C++.
+
+@verbatim
+int foo (int arg) {
+ register int bar;
+ asm {
+ li bar, 42
+ add bar, arg, bar ; nop ; ; nop
+ }
+ return bar;
+}
+@end verbatim
+
+The function syntax uses @code{asm} as a keyword in the function
+definition. In this form, C declarations may appear at the beginning
+of the function body, in order to declare variables that you want to
+use in the body, but may not be used after the first assembly opcode
+or label (even in C99 or C++).
+
+@verbatim
+asm int baz (int arg1) {
+ register int loc1, loc2;
+ @123
+ li loc1,4 * 89
+ nand. r5,arg1,loc1
+ ble- cr0, @123
+ otherlab: nop
+ mr r3,r5
+}
+@end verbatim
+
+Note that the compiler just passes the instructions through to the
+assembler with only necessary changes, such as a substitution of
+globally unique labels. Assembly syntax errors will therefore be
+reported by the assembler.
+
+Also note that the use of literal registers (such as r3) in functions
+may not work properly with functions that are being inlined.
+
+The following instructions are assumed to affect memory: @code{l...}
+except @code{la}, @code{li} and @code{lis} (all memory loads),
+@code{st...} (all memory stores), @code{sc}, @code{td...},
+@code{trap}, @code{tw...}. All other instructions are assumed to not
+affect memory.
+
+The following instructions take a memory operand (address operand) as
+their second operand, all other instructions are assumed to not:
+
+@code{la}, @code{lbzu}, @code{ld}, @code{ldu}, @code{lfd},
+@code{lfdu}, @code{lfs}, @code{lfsu}, @code{lha}, @code{lhau},
+@code{lhz}, @code{lhzu}, @code{lmw}, @code{lwa}, @code{lwz},
+@code{lwzu}, @code{stb}, @code{stbu}, @code{std}, @code{stdu},
+@code{stfd}, @code{stfdu}, @code{stfs}, @code{stfsu}, @code{sth},
+@code{sthu}, @code{stmw}, @code{stw}, @code{stwu}.
+
+Arguments that require substitution beyond vector registers, floating
+point registers, general registers are not supported; an example
+would be trying to use the compiler to allocate condition code
+registers instead of just writting a specific condition code register.
+@c APPLE LOCAL end CW asm blocks
+
@node Alternate Keywords
@section Alternate Keywords
@cindex alternate keywords
@@ -5247,11 +5420,11 @@ type is @code{long double}.
@deftypefn {Built-in Function} double __builtin_inf (void)
Similar to @code{__builtin_huge_val}, except a warning is generated
if the target floating-point format does not support infinities.
-This function is suitable for implementing the ISO C99 macro @code{INFINITY}.
@end deftypefn
@deftypefn {Built-in Function} float __builtin_inff (void)
Similar to @code{__builtin_inf}, except the return type is @code{float}.
+This function is suitable for implementing the ISO C99 macro @code{INFINITY}.
@end deftypefn
@deftypefn {Built-in Function} {long double} __builtin_infl (void)
@@ -7448,7 +7621,11 @@ vector unsigned short vec_vmuloub (vector unsigned char,
vector unsigned char);
vector float vec_nmsub (vector float, vector float, vector float);
+@c APPLE LOCAL begin fixhtml --mrs
+@end smallexample
+@smallexample
+@c APPLE LOCAL end fixhtml --mrs
vector float vec_nor (vector float, vector float);
vector signed int vec_nor (vector signed int, vector signed int);
vector unsigned int vec_nor (vector unsigned int, vector unsigned int);
@@ -8566,6 +8743,7 @@ for further explanation.
* Solaris Pragmas::
* Symbol-Renaming Pragmas::
* Structure-Packing Pragmas::
+* Weak Pragmas::
@end menu
@node ARM Pragmas
@@ -8647,7 +8825,33 @@ This pragma declares variables to be possibly unused. GCC will not
produce warnings for the listed variables. The effect is similar to
that of the @code{unused} attribute, except that this pragma may appear
anywhere within the variables' scopes.
+
+@c APPLE LOCAL begin optimization pragmas 3124235/3420242
+@item optimization_level @{ 0 | 1 | 2 | 3 | reset @}
+@item optimize_for_size @{ on | off | reset @}
+@item GCC optimization_level @{ 0 | 1 | 2 | 3 | reset @}
+@item GCC optimize_for_size @{ on | off | reset @}
+@cindex pragma, optimization_level
+(These pragmas are APPLE ONLY.)
+
+These pragmas set the current optimization level, similar but not identical
+to -O0 through -O3, or -Os, on the command line. These pragmas form a
+stack; the "reset" argument pops the stack, restoring the optimization level
+to what it was before the previous optimization pragma. The optimization
+level in effect at the beginning of each function definition is applied to
+that function. Currently, the pragmas will not affect optimizations whose
+implementation is based on whole-file analysis; this notably includes
+inlining and strict aliasing. Also, the feature currently doesn't apply
+to functions whose body is within a class definition (that is, such
+functions are compiled with the command line options).
+
+The versions without "GCC" have the same syntax and similar effect as
+CodeWarrior pragmas (although since the optimizations performed by
+the compilers are not identical, the effect of the options won't be
+either). These may be convenient for existing code. The versions
+with "GCC" are recommended for new code.
@end table
+@c APPLE LOCAL end optimization pragmas 3124235/3420242
@node Solaris Pragmas
@subsection Solaris Pragmas
@@ -8748,7 +8952,7 @@ way of knowing that that happened.)
@node Structure-Packing Pragmas
@subsection Structure-Packing Pragmas
-For compatibility with Win32, GCC supports as set of @code{#pragma}
+For compatibility with Win32, GCC supports a set of @code{#pragma}
directives which change the maximum alignment of members of structures,
unions, and classes subsequently defined. The @var{n} value below always
is required to be a small power of two and specifies the new alignment
@@ -8769,6 +8973,28 @@ multiple @code{#pragma pack(@var{n})} instances and finalized by a single
@code{#pragma pack(pop)}.
@end enumerate
+@node Weak Pragmas
+@subsection Weak Pragmas
+
+For compatibility with SVR4, GCC supports a set of @code{#pragma}
+directives for declaring symbols to be weak, and defining weak
+aliases.
+
+@table @code
+@item #pragma weak @var{symbol}
+@cindex pragma, weak
+This pragma declares @var{symbol} to be weak, as if the declaration
+had the attribute of the same name. The pragma may appear before
+or after the declaration of @var{symbol}, but must appear before
+either its first use or its definition. It is not an error for
+@var{symbol} to never be defined at all.
+
+@item #pragma weak @var{symbol1} = @var{symbol2}
+This pragma declares @var{symbol1} to be a weak alias of @var{symbol2}.
+It is an error if @var{symbol2} is not defined in the current
+translation unit.
+@end table
+
@node Unnamed Fields
@section Unnamed struct/union fields within structs/unions
@cindex struct
@@ -9093,7 +9319,6 @@ 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.
* Volatiles:: What constitutes an access to a volatile object.
* Restricted Pointers:: C99 restricted pointers and references.
* Vague Linkage:: Where G++ puts inlines, vtables and such.
@@ -9110,51 +9335,6 @@ Predefined Macros,cpp,The GNU C Preprocessor}).
* Backwards Compatibility:: Compatibilities with earlier definitions of C++.
@end menu
-@node Min and Max
-@section Minimum and Maximum Operators in C++
-
-It is very convenient to have operators which return the ``minimum'' or the
-``maximum'' of two arguments. In GNU C++ (but not in GNU C),
-
-@table @code
-@item @var{a} <? @var{b}
-@findex <?
-@cindex minimum operator
-is the @dfn{minimum}, returning the smaller of the numeric values
-@var{a} and @var{b};
-
-@item @var{a} >? @var{b}
-@findex >?
-@cindex maximum operator
-is the @dfn{maximum}, returning the larger of the numeric values @var{a}
-and @var{b}.
-@end table
-
-These operations are not primitive in ordinary C++, since you can
-use a macro to return the minimum of two things in C++, as in the
-following example.
-
-@smallexample
-#define MIN(X,Y) ((X) < (Y) ? : (X) : (Y))
-@end smallexample
-
-@noindent
-You might then use @w{@samp{int min = MIN (i, j);}} to set @var{min} to
-the minimum value of variables @var{i} and @var{j}.
-
-However, side effects in @code{X} or @code{Y} may cause unintended
-behavior. For example, @code{MIN (i++, j++)} will fail, incrementing
-the smaller counter twice. The GNU C @code{typeof} extension allows you
-to write safe macros that avoid this kind of problem (@pxref{Typeof}).
-However, writing @code{MIN} and @code{MAX} as macros also forces you to
-use function-call notation for a fundamental arithmetic operation.
-Using GNU C++ extensions, you can write @w{@samp{int min = i <? j;}}
-instead.
-
-Since @code{<?} and @code{>?} are built into the compiler, they properly
-handle expressions with side-effects; @w{@samp{int min = i++ <? j++;}}
-works correctly.
-
@node Volatiles
@section When is a Volatile Object Accessed?
@cindex accessing volatiles
@@ -9801,6 +9981,11 @@ by one returning a different pointer type. This extension to the
covariant return type rules is now deprecated and will be removed from a
future version.
+The G++ minimum and maximum operators (@samp{<?} and @samp{>?}) and
+their compound forms (@samp{<?=}) and @samp{>?=}) have been deprecated
+and will be removed in a future version. Code using these operators
+should be modified to use @code{std::min} and @code{std::max} instead.
+
The named return value extension has been deprecated, and is now
removed from G++.
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 66e22ed3b48..5a4fa107292 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -145,6 +145,8 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
* Copying:: GNU General Public License says
how you can copy and share GCC.
+@c APPLE LOCAL GPL compliance
+* Source Code:: How to get the source code for this compiler.
* GNU Free Documentation License:: How you can copy and share this manual.
* Contributors:: People who have contributed to GCC.
@@ -167,6 +169,8 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
@include funding.texi
@include gnu.texi
+@c APPLE LOCAL GPL compliance
+@include sourcecode.texi
@include gpl.texi
@c ---------------------------------------------------------------------
diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi
index 3278a4b5a97..bfe4a3d204e 100644
--- a/gcc/doc/gcov.texi
+++ b/gcc/doc/gcov.texi
@@ -207,7 +207,7 @@ option is not supplied, it defaults to the current directory.
@item -u
@itemx --unconditional-branches
-When branch counts are given, include those of unconditional branches.
+When branch probabilities are given, include those of unconditional branches.
Unconditional branches are normally not interesting.
@end table
@@ -232,9 +232,27 @@ program source code. The format is
Additional block information may succeed each line, when requested by
command line option. The @var{execution_count} is @samp{-} for lines
-containing no code and @samp{#####} for lines which were never
-executed. Some lines of information at the start have @var{line_number}
-of zero.
+containing no code and @samp{#####} for lines which were never executed.
+Some lines of information at the start have @var{line_number} of zero.
+
+The preamble lines are of the form
+
+@smallexample
+-:0:@var{tag}:@var{value}
+@end smallexample
+
+The ordering and number of these preamble lines will be augmented as
+@command{gcov} development progresses --- do not rely on them remaining
+unchanged. Use @var{tag} to locate a particular preamble line.
+
+The additional block information is of the form
+
+@smallexample
+@var{tag} @var{information}
+@end smallexample
+
+The @var{information} is human readable, but designed to be simple
+enough for machine parsing too.
When printing percentages, 0% and 100% are only printed when the values
are @emph{exactly} 0% and 100% respectively. Other values which would
@@ -278,7 +296,6 @@ Here is a sample:
-: 1:#include <stdio.h>
-: 2:
-: 3:int main (void)
-function main called 1 returned 1 blocks executed 75%
1: 4:@{
1: 5: int i, total;
-: 6:
@@ -307,7 +324,6 @@ counts, and the output looks like this:
-: 1:#include <stdio.h>
-: 2:
-: 3:int main (void)
-function main called 1 returned 1 blocks executed 75%
1: 4:@{
1: 4-block 0
1: 5: int i, total;
@@ -390,6 +406,10 @@ call 0 called 1 returned 100%
-: 17:@}
@end smallexample
+For each function, a line is printed showing how many times the function
+is called, how many times it returns and what percentage of the
+function's blocks were executed.
+
For each basic block, a line is printed after the last line of the basic
block describing the branch or call that ends the basic block. There can
be multiple branches and calls listed for a single source line if there
diff --git a/gcc/doc/include/gcc-common.texi b/gcc/doc/include/gcc-common.texi
index e6396574936..30fc8f10cca 100644
--- a/gcc/doc/include/gcc-common.texi
+++ b/gcc/doc/include/gcc-common.texi
@@ -9,7 +9,7 @@
@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.
-@set DEVELOPMENT
+@clear DEVELOPMENT
@c Common macros to support generating man pages:
diff --git a/gcc/doc/include/sourcecode.texi b/gcc/doc/include/sourcecode.texi
new file mode 100644
index 00000000000..8661d51864f
--- /dev/null
+++ b/gcc/doc/include/sourcecode.texi
@@ -0,0 +1,36 @@
+@c APPLE LOCAL file GPL compliance
+@node Source Code
+@unnumbered Source Code
+
+The source code for Apple's versions of GCC is available using
+anonymous CVS, from
+@samp{:pserver:anonymous@@anoncvs.opensource.apple.com:/cvs/root}
+with password @samp{anonymous}, as module @samp{gcc}, branch
+@samp{apple-local-200502-branch}.
+
+For example, you can fetch the latest version by entering:
+
+@smallexample
+$ cvs -d :pserver:anonymous@@anoncvs.opensource.apple.com:/cvs/root login
+Password: anonymous
+$ cvs -d :pserver:anonymous@@anoncvs.opensource.apple.com:/cvs/root -z6 \
+ co -r apple-local-200502-branch gcc
+@end smallexample
+
+Each version will be tagged based on its build number, which
+you can find by executing @samp{gcc --version}; for instance, if this prints
+
+@smallexample
+gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1402)
+@end smallexample
+
+then the build number is 1402. Some older compilers may require you
+use @samp{gcc -v} to obtain the build number. Most versions are
+tagged like @samp{apple-gcc-1402}; you can find a list of suitable tags with
+a command like @samp{cvs log gcc/gcc/version.c}. Once you have the
+tag, you can use the @samp{-r} flag to CVS, for instance
+
+@smallexample
+$ cvs -d :pserver:anonymous@@anoncvs.opensource.apple.com:/cvs/root -z6 \
+ co -r apple-gcc-1402 gcc
+@end smallexample
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index fd9cb66655a..cd6bfcd1858 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -442,7 +442,7 @@ Please refer to the @uref{http://gcc.gnu.org/releases.html,,releases web page}
for information on how to obtain GCC@.
The full distribution includes the C, C++, Objective-C, Fortran 77, Fortran
-(in case of GCC 3.5 and later), Java, and Ada (in case of GCC 3.1 and later)
+(in case of GCC 4.0 and later), Java, and Ada (in case of GCC 3.1 and later)
compilers. The full distribution also includes runtime libraries for C++,
Objective-C, Fortran 77, Fortran, and Java. In GCC 3.0 and later versions,
GNU compiler testsuites are also included in the full distribution.
@@ -973,12 +973,6 @@ systems that support conditional traps).
Division by zero checks use the break instruction.
@end table
-@item --enable-altivec
-Specify that the target supports AltiVec vector enhancements. This
-option will adjust the ABI for AltiVec enhancements, as well as generate
-AltiVec code when appropriate. This option is only available for
-PowerPC systems.
-
@item --enable-__cxa_atexit
Define if you want to use __cxa_atexit, rather than atexit, to
register C++ destructors for local statics and global objects.
@@ -1041,6 +1035,13 @@ particularly useful if you intend to use several versions of GCC in
parallel. This is currently supported by @samp{libgfortran},
@samp{libjava}, @samp{libmudflap}, @samp{libstdc++}, and @samp{libobjc}.
+@item --with-java-home=@var{dirname}
+This @samp{libjava} option overrides the default value of the
+@samp{java.home} system property. It is also used to set
+@samp{sun.boot.class.path} to @file{@var{dirname}/lib/rt.jar}. By
+default @samp{java.home} is set to @file{@var{prefix}} and
+@samp{sun.boot.class.path} to
+@file{@var{datadir}/java/libgcj-@var{version}.jar}.
@item --enable-languages=@var{lang1},@var{lang2},@dots{}
Specify that only a particular subset of compilers and
@@ -1145,6 +1146,12 @@ When this option is specified more detailed information on memory
allocation is gathered. This information is printed when using
@option{-fmem-report}.
+@item --with-gc
+@itemx --with-gc=@var{choice}
+With this option you can specify the garbage collector implementation
+used during the compilation process. @var{choice} can be one of
+@samp{page} and @samp{zone}, where @samp{page} is the default.
+
@item --enable-nls
@itemx --disable-nls
The @option{--enable-nls} option enables Native Language Support (NLS),
@@ -1823,7 +1830,7 @@ 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}
+@uref{http://sources.redhat.com/mauve/,,Jacks}
is a free testsuite 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}.
@@ -2160,19 +2167,19 @@ GNU Compiler Collection on your machine.
@ifhtml
@itemize
@item
-@uref{#alpha*-*-*,,alpha*-*-*}
+@uref{#alpha-x-x,,alpha*-*-*}
@item
-@uref{#alpha*-dec-osf*,,alpha*-dec-osf*}
+@uref{#alpha-dec-osf,,alpha*-dec-osf*}
@item
-@uref{#alphaev5-cray-unicosmk*,,alphaev5-cray-unicosmk*}
+@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*}
@item
-@uref{#arc-*-elf,,arc-*-elf}
+@uref{#arc-x-elf,,arc-*-elf}
@item
-@uref{#arm-*-elf,,arm-*-elf}
-@uref{#arm-*-coff,,arm-*-coff}
-@uref{#arm-*-aout,,arm-*-aout}
+@uref{#arm-x-elf,,arm-*-elf}
+@uref{#arm-x-coff,,arm-*-coff}
+@uref{#arm-x-aout,,arm-*-aout}
@item
-@uref{#xscale-*-*,,xscale-*-*}
+@uref{#xscale-x-x,,xscale-*-*}
@item
@uref{#avr,,avr}
@item
@@ -2180,39 +2187,37 @@ GNU Compiler Collection on your machine.
@item
@uref{#dos,,DOS}
@item
-@uref{#*-*-freebsd*,,*-*-freebsd*}
+@uref{#x-x-freebsd,,*-*-freebsd*}
@item
@uref{#h8300-hms,,h8300-hms}
@item
-@uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*}
-@item
-@uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10}
+@uref{#hppa-hp-hpux,,hppa*-hp-hpux*}
@item
-@uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11}
+@uref{#hppa-hp-hpux10,,hppa*-hp-hpux10}
@item
-@uref{#*-*-linux-gnu,,*-*-linux-gnu}
+@uref{#hppa-hp-hpux11,,hppa*-hp-hpux11}
@item
-@uref{#ix86-*-linux*aout,,i?86-*-linux*aout}
+@uref{#x-x-linux-gnu,,*-*-linux-gnu}
@item
-@uref{#ix86-*-linux*,,i?86-*-linux*}
+@uref{#ix86-x-linuxaout,,i?86-*-linux*aout}
@item
-@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*}
+@uref{#ix86-x-linux,,i?86-*-linux*}
@item
-@uref{#ix86-*-udk,,i?86-*-udk}
+@uref{#ix86-x-sco3.2v5,,i?86-*-sco3.2v5*}
@item
-@uref{#ix86-*-esix,,i?86-*-esix}
+@uref{#ix86-x-udk,,i?86-*-udk}
@item
-@uref{#ia64-*-linux,,ia64-*-linux}
+@uref{#ia64-x-linux,,ia64-*-linux}
@item
-@uref{#ia64-*-hpux*,,ia64-*-hpux*}
+@uref{#ia64-x-hpux,,ia64-*-hpux*}
@item
-@uref{#*-ibm-aix*,,*-ibm-aix*}
+@uref{#x-ibm-aix,,*-ibm-aix*}
@item
-@uref{#ip2k-*-elf,,ip2k-*-elf}
+@uref{#ip2k-x-elf,,ip2k-*-elf}
@item
-@uref{#iq2000-*-elf,,iq2000-*-elf}
+@uref{#iq2000-x-elf,,iq2000-*-elf}
@item
-@uref{#m32r-*-elf,,m32r-*-elf}
+@uref{#m32r-x-elf,,m32r-*-elf}
@item
@uref{#m6811-elf,,m6811-elf}
@item
@@ -2220,63 +2225,61 @@ GNU Compiler Collection on your machine.
@item
@uref{#m68k-hp-hpux,,m68k-hp-hpux}
@item
-@uref{#mips-*-*,,mips-*-*}
+@uref{#mips-x-x,,mips-*-*}
@item
@uref{#mips-sgi-irix5,,mips-sgi-irix5}
@item
@uref{#mips-sgi-irix6,,mips-sgi-irix6}
@item
-@uref{#powerpc*-*-*,,powerpc*-*-*, powerpc-*-sysv4}
+@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4}
@item
-@uref{#powerpc-*-darwin*,,powerpc-*-darwin*}
+@uref{#powerpc-x-darwin,,powerpc-*-darwin*}
@item
-@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4}
+@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4}
@item
-@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
+@uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*}
@item
-@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*}
+@uref{#powerpc-x-netbsd,,powerpc-*-netbsd*}
@item
-@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
+@uref{#powerpc-x-eabisim,,powerpc-*-eabisim}
@item
-@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
+@uref{#powerpc-x-eabi,,powerpc-*-eabi}
@item
-@uref{#powerpc-*-eabi,,powerpc-*-eabi}
+@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
@item
-@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
+@uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim}
@item
-@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim}
+@uref{#powerpcle-x-eabi,,powerpcle-*-eabi}
@item
-@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
+@uref{#s390-x-linux,,s390-*-linux*}
@item
-@uref{#s390-*-linux*,,s390-*-linux*}
+@uref{#s390x-x-linux,,s390x-*-linux*}
@item
-@uref{#s390x-*-linux*,,s390x-*-linux*}
+@uref{#s390x-ibm-tpf,,s390x-ibm-tpf*}
@item
-@uref{#s390x-ibm-tpf*,,s390x-ibm-tpf*}
+@uref{#x-x-solaris2,,*-*-solaris2*}
@item
-@uref{#*-*-solaris2*,,*-*-solaris2*}
-@item
-@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*}
+@uref{#sparc-sun-solaris2,,sparc-sun-solaris2*}
@item
@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
@item
-@uref{#sparc-*-linux*,,sparc-*-linux*}
+@uref{#sparc-x-linux,,sparc-*-linux*}
@item
-@uref{#sparc64-*-solaris2*,,sparc64-*-solaris2*}
+@uref{#sparc64-x-solaris2,,sparc64-*-solaris2*}
@item
-@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*}
+@uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*}
@item
-@uref{#*-*-sysv*,,*-*-sysv*}
+@uref{#x-x-sysv,,*-*-sysv*}
@item
@uref{#vax-dec-ultrix,,vax-dec-ultrix}
@item
-@uref{#*-*-vxworks*,,*-*-vxworks*}
+@uref{#x-x-vxworks,,*-*-vxworks*}
@item
-@uref{#x86_64-*-*,,x86_64-*-*, amd64-*-*}
+@uref{#x86_64-x-x,,x86_64-*-*, amd64-*-*}
@item
-@uref{#xtensa-*-elf,,xtensa-*-elf}
+@uref{#xtensa-x-elf,,xtensa-*-elf}
@item
-@uref{#xtensa-*-linux*,,xtensa-*-linux*}
+@uref{#xtensa-x-linux,,xtensa-*-linux*}
@item
@uref{#windows,,Microsoft Windows}
@item
@@ -2296,7 +2299,7 @@ GNU Compiler Collection on your machine.
<!-- -------- host/target specific issues start here ---------------- -->
<hr />
@end html
-@heading @anchor{alpha*-*-*}alpha*-*-*
+@heading @anchor{alpha-x-x}alpha*-*-*
This section contains general configuration information for all
alpha-based platforms using ELF (in particular, ignore this section for
@@ -2311,7 +2314,7 @@ shared libraries.
@html
<hr />
@end html
-@heading @anchor{alpha*-dec-osf*}alpha*-dec-osf*
+@heading @anchor{alpha-dec-osf}alpha*-dec-osf*
Systems using processors that implement the DEC Alpha architecture and
are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
@@ -2392,7 +2395,7 @@ provide a fix shortly.
@html
<hr />
@end html
-@heading @anchor{alphaev5-cray-unicosmk*}alphaev5-cray-unicosmk*
+@heading @anchor{alphaev5-cray-unicosmk}alphaev5-cray-unicosmk*
Cray T3E systems running Unicos/Mk.
This port is incomplete and has many known bugs. We hope to improve the
@@ -2419,15 +2422,15 @@ failure.
@html
<hr />
@end html
-@heading @anchor{arc-*-elf}arc-*-elf
+@heading @anchor{arc-x-elf}arc-*-elf
Argonaut ARC processor.
This configuration is intended for embedded systems.
@html
<hr />
@end html
-@heading @anchor{arm-*-elf}arm-*-elf
-@heading @anchor{xscale-*-*}xscale-*-*
+@heading @anchor{arm-x-elf}arm-*-elf
+@heading @anchor{xscale-x-x}xscale-*-*
ARM-family processors. Subtargets that use the ELF object format
require GNU binutils 2.13 or newer. Such subtargets include:
@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux},
@@ -2436,7 +2439,7 @@ require GNU binutils 2.13 or newer. Such subtargets include:
@html
<hr />
@end html
-@heading @anchor{arm-*-coff}arm-*-coff
+@heading @anchor{arm-x-coff}arm-*-coff
ARM-family processors. Note that there are two different varieties
of PE format subtarget supported: @code{arm-wince-pe} and
@code{arm-pe} as well as a standard COFF target @code{arm-*-coff}.
@@ -2444,7 +2447,7 @@ of PE format subtarget supported: @code{arm-wince-pe} and
@html
<hr />
@end html
-@heading @anchor{arm-*-aout}arm-*-aout
+@heading @anchor{arm-x-aout}arm-*-aout
ARM-family processors. These targets support the AOUT file format:
@code{arm-*-aout}, @code{arm-*-netbsd}.
@@ -2570,7 +2573,7 @@ and includes all the necessary compilation tools and libraries.
@html
<hr />
@end html
-@heading @anchor{*-*-freebsd*}*-*-freebsd*
+@heading @anchor{x-x-freebsd}*-*-freebsd*
The version of binutils installed in @file{/usr/bin} probably works with
this release of GCC@. However, on FreeBSD 4, bootstrapping against the
@@ -2631,7 +2634,7 @@ longer a multiple of 2 bytes.
@html
<hr />
@end html
-@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
+@heading @anchor{hppa-hp-hpux}hppa*-hp-hpux*
Support for HP-UX version 9 and older was discontinued in GCC 3.4.
We @emph{highly} recommend using gas/binutils on all hppa platforms;
@@ -2659,7 +2662,7 @@ configuring if you want a model other than PROCESSOR_8000. The macro
TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
default scheduling model is desired.
-As of GCC 3.5, GCC uses the UNIX 95 namespace for HP-UX 10.10
+As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
This namespace change might cause problems when bootstrapping with
an earlier version of GCC or the HP compiler as essentially the same
@@ -2674,7 +2677,7 @@ More specific information to @samp{hppa*-hp-hpux*} targets follows.
@html
<hr />
@end html
-@heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10
+@heading @anchor{hppa-hp-hpux10}hppa*-hp-hpux10
For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
@code{PHCO_19798} from HP@. HP has two sites which provide patches free of
@@ -2700,10 +2703,10 @@ the 3-stage comparison test to fail during a @samp{make bootstrap}.
You should be able to continue by saying @samp{make all} after getting
the failure from @samp{make bootstrap}.
-GCC 3.5 requires CVS binutils as of April 28, 2004 or later. Earlier
+GCC 4.0 requires CVS binutils as of April 28, 2004 or later. Earlier
versions require binutils 2.8 or later.
-The C++ ABI has changed incompatibly in GCC 3.5. COMDAT subspaces are
+The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are
used for one-only code and data. This resolves many of the previous
problems in using C++ on this target. However, the ABI is not compatible
with the one implemented under HP-UX 11 using secondary definitions.
@@ -2711,7 +2714,7 @@ with the one implemented under HP-UX 11 using secondary definitions.
@html
<hr />
@end html
-@heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11
+@heading @anchor{hppa-hp-hpux11}hppa*-hp-hpux11
GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot
be used to compile GCC 3.0 and up.
@@ -2776,7 +2779,7 @@ This has been been reported to sometimes occur in unified builds of
binutils and GCC@.
GCC 3.0 through 3.2 require binutils 2.11 or above. GCC 3.3 through
-GCC 3.5 require binutils 2.14 or later.
+GCC 4.0 require binutils 2.14 or later.
Although the HP assembler can be used for an initial build, it shouldn't
be used with any languages other than C and perhaps Fortran due to its
@@ -2843,7 +2846,7 @@ This port still is undergoing significant development.
@html
<hr />
@end html
-@heading @anchor{*-*-linux-gnu}*-*-linux-gnu
+@heading @anchor{x-x-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
@@ -2852,14 +2855,14 @@ libstdc++-v3 documentation.
@html
<hr />
@end html
-@heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout
+@heading @anchor{ix86-x-linuxaout}i?86-*-linux*aout
Use this configuration to generate @file{a.out} binaries on Linux-based
GNU systems. This configuration is being superseded.
@html
<hr />
@end html
-@heading @anchor{ix86-*-linux*}i?86-*-linux*
+@heading @anchor{ix86-x-linux}i?86-*-linux*
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.
@@ -2871,7 +2874,7 @@ found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
@html
<hr />
@end html
-@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5*
+@heading @anchor{ix86-x-sco3.2v5}i?86-*-sco3.2v5*
Use this for the SCO OpenServer Release 5 family of operating systems.
Unlike earlier versions of GCC, the ability to generate COFF with this
@@ -2915,7 +2918,7 @@ GCC, version 2.95.3. It is useful for bootstrapping this version.
@html
<hr />
@end html
-@heading @anchor{ix86-*-udk}i?86-*-udk
+@heading @anchor{ix86-x-udk}i?86-*-udk
This target emulates the SCO Universal Development Kit and requires that
package be installed. (If it is installed, you will have a
@@ -2951,7 +2954,7 @@ have installed.
@html
<hr />
@end html
-@heading @anchor{ia64-*-linux}ia64-*-linux
+@heading @anchor{ia64-x-linux}ia64-*-linux
IA-64 processor (also known as IPF, or Itanium Processor Family)
running GNU/Linux.
@@ -2971,7 +2974,7 @@ more major ABI changes are expected.
@html
<hr />
@end html
-@heading @anchor{ia64-*-hpux*}ia64-*-hpux*
+@heading @anchor{ia64-x-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.
@@ -2986,12 +2989,16 @@ removed and the system libunwind library will always be used.
<hr />
<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
@end html
-@heading @anchor{*-ibm-aix*}*-ibm-aix*
+@heading @anchor{x-ibm-aix}*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4.
AIX Make frequently has problems with GCC makefiles. GNU Make 3.79.1 or
newer is recommended to build on this platform.
+``out of memory'' bootstrap failures may indicate a problem with
+process resource limits (ulimit). Hard limits are configured in the
+@file{/etc/security/limits} system configuration file.
+
To speed up the configuration phases of bootstrapping and installing GCC,
one may use GNU Bash instead of AIX @command{/bin/sh}, e.g.,
@@ -3111,7 +3118,7 @@ switch and using the configure option @option{--with-cpu-@var{cpu_type}}.
@html
<hr />
@end html
-@heading @anchor{ip2k-*-elf}ip2k-*-elf
+@heading @anchor{ip2k-x-elf}ip2k-*-elf
Ubicom IP2022 micro controller.
This configuration is intended for embedded systems.
There are no standard Unix configurations.
@@ -3121,14 +3128,14 @@ Use @samp{configure --target=ip2k-elf --enable-languages=c} to configure GCC@.
@html
<hr />
@end html
-@heading @anchor{iq2000-*-elf}iq2000-*-elf
+@heading @anchor{iq2000-x-elf}iq2000-*-elf
Vitesse IQ2000 processors. These are used in embedded
applications. There are no standard Unix configurations.
@html
<hr />
@end html
-@heading @anchor{m32r-*-elf}m32r-*-elf
+@heading @anchor{m32r-x-elf}m32r-*-elf
Renesas M32R processor.
This configuration is intended for embedded systems.
@@ -3202,7 +3209,7 @@ to look like:
@html
<hr />
@end html
-@heading @anchor{mips-*-*}mips-*-*
+@heading @anchor{mips-x-x}mips-*-*
If on a MIPS system you get an error message saying ``does not have gp
sections for all it's [sic] sectons [sic]'', don't worry about it. This
happens whenever you use GAS with the MIPS linker, but there is not
@@ -3348,7 +3355,7 @@ information about using GCC on IRIX platforms.
@html
<hr />
@end html
-@heading @anchor{powerpc*-*-*}powerpc-*-*
+@heading @anchor{powerpc-x-x}powerpc-*-*
You can specify a default version for the @option{-mcpu=@var{cpu_type}}
switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
@@ -3356,13 +3363,13 @@ switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
@html
<hr />
@end html
-@heading @anchor{powerpc-*-darwin*}powerpc-*-darwin*
+@heading @anchor{powerpc-x-darwin}powerpc-*-darwin*
PowerPC running Darwin (Mac OS X kernel).
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://developer.apple.com/tools/compilers.html} (free
+@uref{http://developer.apple.com/darwin/projects/compiler/} (free
registration required).
This version of GCC requires at least cctools-528.
@@ -3374,22 +3381,22 @@ are generally for backwards compatibility and best avoided.
@html
<hr />
@end html
-@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4
+@heading @anchor{powerpc-x-elf}powerpc-*-elf, powerpc-*-sysv4
PowerPC system in big endian mode, running System V.4.
@html
<hr />
@end html
-@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu*
+@heading @anchor{powerpc-x-linux-gnu}powerpc*-*-linux-gnu*
You will need
-@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.13.90.0.10}
+@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.15}
or newer for a working GCC@.
@html
<hr />
@end html
-@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
+@heading @anchor{powerpc-x-netbsd}powerpc-*-netbsd*
PowerPC system in big endian mode running NetBSD@. To build the
documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
Texinfo version 3.12).
@@ -3397,51 +3404,51 @@ Texinfo version 3.12).
@html
<hr />
@end html
-@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim
+@heading @anchor{powerpc-x-eabisim}powerpc-*-eabisim
Embedded PowerPC system in big endian mode for use in running under the
PSIM simulator.
@html
<hr />
@end html
-@heading @anchor{powerpc-*-eabi}powerpc-*-eabi
+@heading @anchor{powerpc-x-eabi}powerpc-*-eabi
Embedded PowerPC system in big endian mode.
@html
<hr />
@end html
-@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4
+@heading @anchor{powerpcle-x-elf}powerpcle-*-elf, powerpcle-*-sysv4
PowerPC system in little endian mode, running System V.4.
@html
<hr />
@end html
-@heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim
+@heading @anchor{powerpcle-x-eabisim}powerpcle-*-eabisim
Embedded PowerPC system in little endian mode for use in running under
the PSIM simulator.
@html
<hr />
@end html
-@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
+@heading @anchor{powerpcle-x-eabi}powerpcle-*-eabi
Embedded PowerPC system in little endian mode.
@html
<hr />
@end html
-@heading @anchor{s390-*-linux*}s390-*-linux*
+@heading @anchor{s390-x-linux}s390-*-linux*
S/390 system running GNU/Linux for S/390@.
@html
<hr />
@end html
-@heading @anchor{s390x-*-linux*}s390x-*-linux*
+@heading @anchor{s390x-x-linux}s390x-*-linux*
zSeries system (64-bit) running GNU/Linux for zSeries@.
@html
<hr />
@end html
-@heading @anchor{s390x-ibm-tpf*}s390x-ibm-tpf*
+@heading @anchor{s390x-ibm-tpf}s390x-ibm-tpf*
zSeries system (64-bit) running TPF@. This platform is
supported as cross-compilation target only.
@@ -3452,7 +3459,7 @@ supported as cross-compilation target only.
@c with 2.0 until 2.6, 7, 8, etc. Solaris 1 was a marketing name for
@c SunOS 4 releases which we don't use to avoid confusion. Solaris
@c alone is too unspecific and must be avoided.
-@heading @anchor{*-*-solaris2*}*-*-solaris2*
+@heading @anchor{x-x-solaris2}*-*-solaris2*
Sun does not ship a C compiler with Solaris 2. To bootstrap and install
GCC you first have to install a pre-built compiler, see the
@@ -3536,7 +3543,7 @@ SPARC, 117172-11 or newer for Intel) that address this problem.
@html
<hr />
@end html
-@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2*
+@heading @anchor{sparc-sun-solaris2}sparc-sun-solaris2*
When GCC is configured to use binutils 2.11.2 or later the binaries
produced are smaller than the ones produced using Sun's native tools;
@@ -3596,6 +3603,14 @@ ld: warning: relocation error: R_SPARC_UA32: @dots{}
To work around this problem, compile with @option{-gstabs+} instead of
plain @option{-g}.
+When configuring the GNU Multiple Precision Library (GMP) on a Solaris 7
+or later system, the canonical target triplet must be specified as the
+@command{build} parameter on the configure line:
+
+@smallexample
+./configure --build=sparc-sun-solaris2.7 --prefix=xxx --enable-mpfr
+@end smallexample
+
@html
<hr />
@end html
@@ -3650,7 +3665,7 @@ This bug has been fixed in the final 5.0 version of the assembler.
@html
<hr />
@end html
-@heading @anchor{sparc-*-linux*}sparc-*-linux*
+@heading @anchor{sparc-x-linux}sparc-*-linux*
GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
or newer on this platform. All earlier binutils and glibc
@@ -3660,7 +3675,7 @@ releases mishandled unaligned relocations on @code{sparc-*-*} targets.
@html
<hr />
@end html
-@heading @anchor{sparc64-*-solaris2*}sparc64-*-solaris2*
+@heading @anchor{sparc64-x-solaris2}sparc64-*-solaris2*
The following compiler flags must be specified in the configure
step in order to bootstrap this target with the Sun compiler:
@@ -3675,14 +3690,14 @@ specifies the SPARC-V9 architecture to the Sun linker and assembler.
@html
<hr />
@end html
-@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
+@heading @anchor{sparcv9-x-solaris2}sparcv9-*-solaris2*
This is a synonym for sparc64-*-solaris2*.
@html
<hr />
@end html
-@heading @anchor{#*-*-sysv*}*-*-sysv*
+@heading @anchor{x-x-sysv}*-*-sysv*
On System V release 3, you may get this error message
while linking:
@@ -3723,7 +3738,7 @@ in some cases (for example, when @code{alloca} is used).
@html
<hr />
@end html
-@heading @anchor{*-*-vxworks*}*-*-vxworks*
+@heading @anchor{x-x-vxworks}*-*-vxworks*
Support for VxWorks is in flux. At present GCC supports @emph{only} the
very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC@.
We welcome patches for other architectures supported by VxWorks 5.5.
@@ -3758,7 +3773,7 @@ VxWorks will incorporate this module.)
@html
<hr />
@end html
-@heading @anchor{x86_64-*-*}x86_64-*-*, amd64-*-*
+@heading @anchor{x86_64-x-x}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@.
@@ -3768,7 +3783,7 @@ 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
+@heading @anchor{xtensa-x-elf}xtensa-*-elf
This target is intended for embedded Xtensa systems using the
@samp{newlib} C library. It uses ELF but does not support shared
@@ -3786,7 +3801,7 @@ which you can use to replace the default header file.
@html
<hr />
@end html
-@heading @anchor{xtensa-*-linux*}xtensa-*-linux*
+@heading @anchor{xtensa-x-linux}xtensa-*-linux*
This target is for Xtensa systems running GNU/Linux. It supports ELF
shared objects and the GNU C library (glibc). It also generates
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 88f19dc4afc..652b4ab86bb 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -40,6 +40,21 @@ gcc [@option{-c}|@option{-S}|@option{-E}] [@option{-std=}@var{standard}]
Only the most useful options are listed here; see below for the
remainder. @samp{g++} accepts mostly the same options as @samp{gcc}.
+
+@c APPLE LOCAL begin manual
+In Apple's version of GCC, both @samp{cc} and @samp{gcc} are actually
+symbolic links to a compiler named like @samp{gcc-3.4}; which compiler
+is linked to may be changed using the command @samp{gcc_select}.
+Similarly, @samp{c++} and @samp{g++} are links to a compiler named like
+@samp{g++-3.4}.
+
+Note that Apple's GCC includes a number of extensions to standard GCC
+(flagged below with ``APPLE ONLY''), and that not all generic GCC
+options are available or supported on Darwin / Mac OS X. In particular,
+Apple does not currently support the compilation of Fortran, Ada, or
+Java, although there are third parties who have made these work.
+@c APPLE LOCAL end manual
+
@c man end
@c man begin SEEALSO
gpl(7), gfdl(7), fsf-funding(7),
@@ -48,8 +63,10 @@ and the Info entries for @file{gcc}, @file{cpp}, @file{as},
@file{ld}, @file{binutils} and @file{gdb}.
@c man end
@c man begin BUGS
-For instructions on reporting bugs, see
-@w{@uref{http://gcc.gnu.org/bugs.html}}.
+@c APPLE LOCAL begin Apple bug-report
+To report bugs to Apple, see
+@w{@uref{http://developer.apple.com/bugreporter}}.
+@c APPLE LOCAL end Apple bug-report
@c man end
@c man begin AUTHOR
See the Info entry for @command{gcc}, or
@@ -156,17 +173,46 @@ in the following sections.
@item Overall Options
@xref{Overall Options,,Options Controlling the Kind of Output}.
@gccoptlist{-c -S -E -o @var{file} -combine -pipe -pass-exit-codes @gol
+@c APPLE LOCAL -ObjC 2001-08-03 --sts **
+-ObjC (APPLE ONLY) -ObjC++ (APPLE ONLY) @gol
+@c APPLE LOCAL fat builds
+-arch @var{arch} (APPLE ONLY) @gol
+@c APPLE LOCAL ss2
+-fsave-repository=@var{file} @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
+@c APPLE LOCAL AltiVec
+-faltivec (APPLE ONLY) @gol
+@c APPLE LOCAL CW asm blocks
+-fasm-blocks (APPLE ONLY) @gol
-fno-asm -fno-builtin -fno-builtin-@var{function} @gol
-fhosted -ffreestanding -fms-extensions @gol
-trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol
-fallow-single-precision -fcond-mismatch @gol
+@c APPLE LOCAL constant cfstrings --mrs
+-fconstant-cfstrings (APPLE ONLY) @gol
+@c APPLE LOCAL non lvalue assign
+-fnon-lvalue-assign (APPLE ONLY) @gol
+@c APPLE LOCAL pch distcc --mrs
+-fpch-preprocess (APPLE ONLY) @gol
-fsigned-bitfields -fsigned-char @gol
--funsigned-bitfields -funsigned-char}
+@c APPLE LOCAL pascal strings
+-fpascal-strings (APPLE ONLY) @gol
+@c APPLE LOCAL -Wno-#warnings
+-Wno-#warnings (APPLE ONLY) @gol
+@c APPLE LOCAL -Wextra-tokens 2001-08-02 --sts **
+-Wextra-tokens (APPLE ONLY) @gol
+@c APPLE LOCAL -Wpragma-once 2001-08-01 --sts **
+-Wpragma-once (APPLE ONLY) @gol
+@c APPLE LOCAL -Wnewline-eof 2001-08-23 --sts **
+-Wnewline-eof (APPLE ONLY) @gol
+@c APPLE LOCAL -Wno-altivec-long-deprecated --ilr **
+-Wno-altivec-long-deprecated (APPLE ONLY)
+@c APPLE LOCAL fwritable strings
+-funsigned-bitfields -funsigned-char -fwritable-strings}
@item C++ Language Options
@xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
@@ -188,7 +234,7 @@ in the following sections.
-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 and Objective-C++ Language Options
@xref{Objective-C and Objective-C++ Dialect Options,,Options Controlling
@@ -197,11 +243,17 @@ Objective-C and Objective-C++ Dialects}.
-fconstant-string-class=@var{class-name} @gol
-fgnu-runtime -fnext-runtime @gol
-fno-nil-receivers @gol
+@c APPLE LOCAL mainline
+-fobjc-call-cxx-cdtors (APPLE ONLY) @gol
-fobjc-exceptions @gol
-freplace-objc-classes @gol
-fzero-link @gol
-gen-decls @gol
--Wno-protocol -Wselector -Wundeclared-selector}
+@c APPLE LOCAL begin mainline
+-Wno-protocol -Wselector @gol
+-Wstrict-selector-match @gol
+-Wundeclared-selector}
+@c APPLE LOCAL end mainline
@item Language Independent Options
@xref{Language Independent Options,,Options to Control Diagnostic Messages Formatting}.
@@ -226,6 +278,8 @@ Objective-C and Objective-C++ Dialects}.
-Wmain -Wmissing-braces -Wmissing-field-initializers @gol
-Wmissing-format-attribute -Wmissing-include-dirs @gol
-Wmissing-noreturn @gol
+@c APPLE LOCAL -Wmost
+-Wmost (APPLE ONLY) @gol
-Wno-multichar -Wnonnull -Wpacked -Wpadded @gol
-Wparentheses -Wpointer-arith -Wredundant-decls @gol
-Wreturn-type -Wsequence-point -Wshadow @gol
@@ -237,11 +291,13 @@ Objective-C and Objective-C++ Dialects}.
-Wunused-value -Wunused-variable -Wwrite-strings @gol
-Wvariadic-macros}
+@c APPLE LOCAL begin 4086969
@item C-only Warning Options
@gccoptlist{-Wbad-function-cast -Wmissing-declarations @gol
-Wmissing-prototypes -Wnested-externs -Wold-style-definition @gol
-Wstrict-prototypes -Wtraditional @gol
--Wdeclaration-after-statement -Wno-pointer-sign}
+-Wdeclaration-after-statement -Wno-discard-qual -Wno-pointer-sign}
+@c APPLE LOCAL end 4086969
@item Debugging Options
@xref{Debugging Options,,Options for Debugging Your Program or GCC}.
@@ -258,6 +314,11 @@ Objective-C and Objective-C++ Dialects}.
-fdump-tree-ssa@r{[}-@var{n}@r{]} -fdump-tree-pre@r{[}-@var{n}@r{]} @gol
-fdump-tree-ccp@r{[}-@var{n}@r{]} -fdump-tree-dce@r{[}-@var{n}@r{]} @gol
-fdump-tree-gimple@r{[}-raw@r{]} -fdump-tree-mudflap@r{[}-@var{n}@r{]} @gol
+@c APPLE LOCAL begin lno
+-fdump-tree-scev @r{[}-@var{n}@r{]} @gol
+-fdump-tree-ddall @r{[}-@var{n}@r{]}@gol
+-fdump-tree-elck @r{[}-@var{n}@r{]} @gol
+@c APPLE LOCAL end lno
-fdump-tree-dom@r{[}-@var{n}@r{]} @gol
-fdump-tree-dse@r{[}-@var{n}@r{]} @gol
-fdump-tree-phiopt@r{[}-@var{n}@r{]} @gol
@@ -266,6 +327,10 @@ Objective-C and Objective-C++ Dialects}.
-fdump-tree-nrv -fdump-tree-vect @gol
-fdump-tree-sra@r{[}-@var{n}@r{]} @gol
-fdump-tree-fre@r{[}-@var{n}@r{]} @gol
+@c APPLE LOCAL begin lno
+-fdump-tree-loop@r{[}-@var{n}@r{]} @gol
+-fdump-tree-vect@r{[}-@var{n}@r{]} @gol
+@c APPLE LOCAL end lno
-ftree-vectorizer-verbose=@var{n} @gol
-feliminate-dwarf2-dups -feliminate-unused-debug-types @gol
-feliminate-unused-debug-symbols -fmem-report -fprofile-arcs -ftree-based-profiling @gol
@@ -282,11 +347,14 @@ Objective-C and Objective-C++ Dialects}.
@xref{Optimize Options,,Options that Control Optimization}.
@gccoptlist{-falign-functions=@var{n} -falign-jumps=@var{n} @gol
-falign-labels=@var{n} -falign-loops=@var{n} @gol
+@c APPLE LOCAL -falign-loops-max-skip
+-falign-loops-max-skip=@var{n} -falign-jumps-max-skip=@var{n} @gol
-fbounds-check -fmudflap -fmudflapth -fmudflapir @gol
-fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize @gol
-fbranch-target-load-optimize2 -fbtr-bb-exclusive @gol
--fcaller-saves -fcprop-registers @gol
--fcse-follow-jumps -fcse-skip-blocks -fdata-sections @gol
+@c APPLE LOCAL add fcreate-profile
+-fcaller-saves -fcprop-registers -fcreate-profile -fcse-follow-jumps @gol
+-fcse-skip-blocks -fcx-limited-range -fdata-sections @gol
-fdelayed-branch -fdelete-null-pointer-checks @gol
-fexpensive-optimizations -ffast-math -ffloat-store @gol
-fforce-addr -fforce-mem -ffunction-sections @gol
@@ -321,8 +389,14 @@ Objective-C and Objective-C++ Dialects}.
-ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts @gol
-ftree-dominator-opts -ftree-dse -ftree-copyrename @gol
-ftree-ch -ftree-sra -ftree-ter -ftree-lrs -ftree-fre -ftree-vectorize @gol
+@c APPLE LOCAL add fuse-profile
+-fuse-profile @gol
+-fweb @gol
+@c APPLE LOCAL lno
+-fscalar-evolutions -fall-data-deps @gol
--param @var{name}=@var{value}
--O -O0 -O1 -O2 -O3 -Os}
+@c APPLE LOCAL -fast
+-O -O0 -O1 -O2 -O3 -Os -fast (APPLE ONLY)}
@item Preprocessor Options
@xref{Preprocessor Options,,Options Controlling the Preprocessor}.
@@ -346,6 +420,8 @@ Objective-C and Objective-C++ Dialects}.
@item Linker Options
@xref{Link Options,,Options for Linking}.
@gccoptlist{@var{object-file-name} -l@var{library} @gol
+@c APPLE LOCAL radar 2466994 - -no-c++filt --ilr
+-no-c++filt (APPLE ONLY) @gol
-nostartfiles -nodefaultlibs -nostdlib -pie @gol
-s -static -static-libgcc -shared -shared-libgcc -symbolic @gol
-Wl,@var{option} -Xlinker @var{option} @gol
@@ -366,6 +442,8 @@ Objective-C and Objective-C++ Dialects}.
@c Try and put the significant identifier (CPU or system) first,
@c so users have a clue at guessing where the ones they want will be.
+@c APPLE LOCAL prune man page
+@ignore
@emph{ARC Options}
@gccoptlist{-EB -EL @gol
-mmangle-cpu -mcpu=@var{cpu} -mtext=@var{text-section} @gol
@@ -406,6 +484,8 @@ Objective-C and Objective-C++ Dialects}.
-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}
+@c APPLE LOCAL prune man page
+@end ignore
@emph{Darwin Options}
@gccoptlist{-all_load -allowable_client -arch -arch_errors_fatal @gol
@@ -432,6 +512,8 @@ Objective-C and Objective-C++ Dialects}.
-unexported_symbols_list -weak_reference_mismatches @gol
-whatsloaded -F -gused -gfull -mone-byte-bool}
+@c APPLE LOCAL prune man page
+@ignore
@emph{DEC Alpha Options}
@gccoptlist{-mno-fp-regs -msoft-float -malpha-as -mgas @gol
-mieee -mieee-with-inexact -mieee-conformant @gol
@@ -481,6 +563,8 @@ Objective-C and Objective-C++ Dialects}.
-mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime @gol
-mschedule=@var{cpu-type} -mspace-regs -msio -mwsio @gol
-munix=@var{unix-std} -nolibdld -static -threads}
+@c APPLE LOCAL prune man page
+@end ignore
@emph{i386 and x86-64 Options}
@gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol
@@ -497,9 +581,11 @@ Objective-C and Objective-C++ Dialects}.
-mcmodel=@var{code-model} @gol
-m32 -m64}
+@c APPLE LOCAL prune man page
+@ignore
@emph{IA-64 Options}
@gccoptlist{-mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic @gol
--mvolatile-asm-stop -mb-step -mregister-names -mno-sdata @gol
+-mvolatile-asm-stop -mregister-names -mno-sdata @gol
-mconstant-gp -mauto-pic -minline-float-divide-min-latency @gol
-minline-float-divide-max-throughput @gol
-minline-int-divide-min-latency @gol
@@ -547,7 +633,7 @@ Objective-C and Objective-C++ Dialects}.
-mxgot -mno-xgot -mgp32 -mgp64 -mfp32 -mfp64 @gol
-mhard-float -msoft-float -msingle-float -mdouble-float @gol
-mpaired-single -mips3d @gol
--mint64 -mlong64 -mlong32 @gol
+-mint64 -mlong64 -mlong32 -msym32 -mno-sym32 @gol
-G@var{num} -membedded-data -mno-embedded-data @gol
-muninit-const-in-rodata -mno-uninit-const-in-rodata @gol
-msplit-addresses -mno-split-addresses @gol
@@ -557,7 +643,8 @@ Objective-C and Objective-C++ Dialects}.
-mmemcpy -mno-memcpy -mlong-calls -mno-long-calls @gol
-mmad -mno-mad -mfused-madd -mno-fused-madd -nocpp @gol
-mfix-r4000 -mno-fix-r4000 -mfix-r4400 -mno-fix-r4400 @gol
--mfix-vr4120 -mno-fix-vr4120 -mfix-sb1 -mno-fix-sb1 @gol
+-mfix-vr4120 -mno-fix-vr4120 -mfix-vr4130 @gol
+-mfix-sb1 -mno-fix-sb1 @gol
-mflush-func=@var{func} -mno-flush-func @gol
-mbranch-likely -mno-branch-likely @gol
-mfp-exceptions -mno-fp-exceptions @gol
@@ -588,6 +675,8 @@ Objective-C and Objective-C++ Dialects}.
-mfloat64 -mno-float32 -mabshi -mno-abshi @gol
-mbranch-expensive -mbranch-cheap @gol
-msplit -mno-split -munix-asm -mdec-asm}
+@c APPLE LOCAL prune man page
+@end ignore
@emph{PowerPC Options}
See RS/6000 and PowerPC Options.
@@ -598,6 +687,8 @@ See RS/6000 and PowerPC Options.
-mpower -mno-power -mpower2 -mno-power2 @gol
-mpowerpc -mpowerpc64 -mno-powerpc @gol
-maltivec -mno-altivec @gol
+@c APPLE LOCAL AltiVec
+-mpim-altivec -mno-pim-altivec @gol
-mpowerpc-gpopt -mno-powerpc-gpopt @gol
-mpowerpc-gfxopt -mno-powerpc-gfxopt @gol
-mnew-mnemonics -mold-mnemonics @gol
@@ -625,6 +716,8 @@ See RS/6000 and PowerPC Options.
-msim -mmvme -mads -myellowknife -memb -msdata @gol
-msdata=@var{opt} -mvxworks -mwindiss -G @var{num} -pthread}
+@c APPLE LOCAL prune man page
+@ignore
@emph{S/390 and zSeries Options}
@gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol
-mhard-float -msoft-float -mbackchain -mno-backchain @gol
@@ -697,6 +790,8 @@ See i386 and x86-64 Options.
@emph{zSeries Options}
See S/390 and zSeries Options.
+@c APPLE LOCAL prune man page
+@end ignore
@item Code Generation Options
@xref{Code Gen Options,,Options for Code Generation Conventions}.
@@ -797,6 +892,15 @@ C++ source code which must be preprocessed. Note that in @samp{.cxx},
the last two letters must both be literally @samp{x}. Likewise,
@samp{.C} refers to a literal capital C@.
+@c APPLE LOCAL begin mainline
+@item @var{file}.mm
+@itemx @var{file}.M
+Objective-C++ source code which must be preprocessed. (APPLE ONLY)
+
+@item @var{file}.mii
+Objective-C++ source code which should not be preprocessed. (APPLE ONLY)
+@c APPLE LOCAL end mainline
+
@item @var{file}.hh
@itemx @var{file}.H
C++ header file to be turned into a precompiled header.
@@ -843,7 +947,10 @@ package body). Such files are also called @dfn{bodies}.
@c @var{file}.pas
@item @var{file}.s
-Assembler code.
+@c APPLE LOCAL begin preprocess .s files
+Assembler code. Apple's version of GCC runs the preprocessor
+on these files as well as those ending in @samp{.S}.
+@c APPLE LOCAL end preprocess .s files
@item @var{file}.S
Assembler code which must be preprocessed.
@@ -880,6 +987,35 @@ Turn off any specification of a language, so that subsequent files are
handled according to their file name suffixes (as they are if @option{-x}
has not been used at all).
+@c APPLE LOCAL begin -ObjC 2001-08-03 --sts **
+@item -ObjC
+@item -ObjC++
+@opindex ObjC
+@opindex ObjC++
+These are similar in effect to @option{-x objective-c} and @option{-x
+objective-c++}, but affect only the choice of compiler for files already
+identified as source files. (APPLE ONLY)
+@c APPLE LOCAL end -ObjC 2001-08-03 --sts **
+
+@c APPLE LOCAL begin fat builds
+@item -arch @var{arch}
+Compile for the specified target architecture @var{arch}. The
+allowable values are @samp{i386}, @samp{ppc} and @samp{ppc64}.
+Multiple options work, and direct the compiler to produce
+``universal'' binaries including object code for each architecture
+specified with @option{-arch}. This option only works if assembler
+and libraries are available for each architecture specified. (APPLE
+ONLY)
+@opindex arch
+@c APPLE LOCAL end fat builds
+
+@c APPLE LOCAL begin ss2
+@item -fsave-repository=@var{file}
+@opindex fsave-repository
+Save debug info in separate object file.
+This is available only while building PCH in -gfull mode.
+@c APPLE LOCAL end ss2
+
@item -pass-exit-codes
@opindex pass-exit-codes
Normally the @command{gcc} program will exit with the code of 1 if any
@@ -1102,7 +1238,7 @@ 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-4.0/c99status.html}} for more information. The
names @samp{c9x} and @samp{iso9899:199x} are deprecated.
@item gnu89
@@ -1150,6 +1286,20 @@ character). In the case of function definitions, a K&R-style list of
arguments followed by their declarations is also provided, inside
comments, after the declaration.
+@c APPLE LOCAL begin AltiVec
+@item -faltivec
+This flag is provided for compatibility with Metrowerks CodeWarrior and MrC
+compilers as well as previous Apple versions of GCC. It causes the
+@option{-mpim-altivec} option to be turned on.
+@c APPLE LOCAL end AltiVec
+
+@c APPLE LOCAL begin CW asm blocks
+@item -fasm-blocks
+Enable the use of blocks and entire functions of assembly code within
+a C or C++ file. The syntax follows that used in CodeWarrior. (APPLE
+ONLY)
+@c APPLE LOCAL end CW asm blocks
+
@item -fno-asm
@opindex fno-asm
Do not recognize @code{asm}, @code{inline} or @code{typeof} as a
@@ -1268,6 +1418,41 @@ Allow conditional expressions with mismatched types in the second and
third arguments. The value of such an expression is void. This option
is not supported for C++.
+@c APPLE LOCAL begin pch distcc --mrs
+@item -fpch-preprocess
+@opindex fpch-preprocess
+Enable PCH processing even when @option{-E} or @option{-save-temps} is used.
+@c APPLE LOCAL end pch distcc --mrs
+
+@c APPLE LOCAL begin non lvalue assign
+@item -fnon-lvalue-assign
+@item fnon-lvalue-assign
+C and C++ forbid the use of casts and conditional expressions as lvalues, e.g.:
+
+@smallexample
+float *p, q, r;
+((int *)p)++;
+(cond ? q : r) = 3.0;
+@end smallexample
+
+@noindent
+As a transitional measure, the Apple version of GCC 4.0 allows casts and
+conditional expressions to be used as lvalues in certain situations. This
+is accomplished via the @option{-fnon-lvalue-assign} switch, which is on
+by default. Whenever an lvalue cast or an lvalue conditional expression is
+encountered, the compiler will issue a deprecation warning and then rewrite
+the expression as follows:
+
+@smallexample
+(type)expr ---becomes---> *(type *)&expr
+cond ? expr1 : expr2 ---becomes---> *(cond ? &expr1 : &expr2)
+@end smallexample
+
+To disallow lvalue casts and lvalue conditional expressions altogether,
+specify @option{-fno-non-lvalue-assign}; lvalue casts and lvalue conditional
+expressions will be disallowed in future versions of Apple's GCC.
+@c APPLE LOCAL end non lvalue assign
+
@item -funsigned-char
@opindex funsigned-char
Let the type @code{char} be unsigned, like @code{unsigned char}.
@@ -1307,6 +1492,36 @@ These options control whether a bit-field is signed or unsigned, when the
declaration does not use either @code{signed} or @code{unsigned}. By
default, such a bit-field is signed, because this is consistent: the
basic integer types such as @code{int} are signed types.
+
+@c APPLE LOCAL begin constant cfstrings
+@item -fconstant-cfstrings
+@opindex fconstant-cfstrings
+Enable the automatic creation of a CoreFoundation-type constant string
+whenever a special builtin @code{__builtin__CFStringMakeConstantString}
+is called on a literal string. (APPLE ONLY)
+@c APPLE LOCAL end constant cfstrings
+
+@c APPLE LOCAL begin pascal strings
+@item -fpascal-strings
+Allow Pascal-style string literals to be constructed. (APPLE ONLY)
+
+@xref{Pascal Strings,,Constructing String Literals with a Pascal-style
+Length Byte}, for more information on the syntax and semantics of Pascal
+string literals.
+@c APPLE LOCAL end pascal strings
+
+@c APPLE LOCAL begin fwritable strings.
+@item -fwritable-strings
+@opindex fwritable-strings
+Store string constants in the writable data segment and don't uniquize
+them. This is for compatibility with old programs which assume they can
+write into string constants.
+
+Writing into string constants is a very bad idea; ``constants'' should
+be constant.
+
+This option is deprecated.
+@c APPLE LOCAL end fwritable strings.
@end table
@node C++ Dialect Options
@@ -1378,7 +1593,10 @@ been added for putting variables into BSS without making them common.
Give string constants type @code{char *} instead of type @code{const
char *}. By default, G++ uses type @code{const char *} as required by
the standard. Even if you use @option{-fno-const-strings}, you cannot
-actually modify the value of a string constant.
+@c APPLE LOCAL begin fwritable strings.
+actually modify the value of a string constant, unless you also use
+@option{-fwritable-strings}.
+@c APPLE LOCAL end fwritable strings.
This option might be removed in a future release of G++. For maximum
portability, you should structure your code so that it works with
@@ -1508,6 +1726,8 @@ Register destructors for objects with static storage duration with the
This option is required for fully standards-compliant handling of static
destructors, but will only work if your C library supports
@code{__cxa_atexit}.
+@c APPLE LOCAL manual
+This option is not supported on Mac OS X.
@item -fvisibility-inlines-hidden
@opindex fvisibility-inlines-hidden
@@ -1790,13 +2010,6 @@ enumerated 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 ();
@@ -1877,6 +2090,32 @@ is not @code{nil}. This allows for more efficient entry points in the runtime
to be used. Currently, this option is only available in conjunction with
the NeXT runtime on Mac OS X 10.3 and later.
+@c APPLE LOCAL begin mainline
+@item -fobjc-call-cxx-cdtors
+@opindex fobjc-call-cxx-cdtors
+For each Objective-C class, check if any of its instance variables is a
+C++ object with a non-trivial default constructor. If so, synthesize a
+special @code{- (id) .cxx_construct} instance method that will run
+non-trivial default constructors on any such instance variables, in order,
+and then return @code{self}. Similarly, check if any instance variable
+is a C++ object with a non-trivial destructor, and if so, synthesize a
+special @code{- (void) .cxx_destruct} method that will run
+all such default destructors, in reverse order.
+
+The @code{- (id) .cxx_construct} and/or @code{- (void) .cxx_destruct} methods
+thusly generated will only operate on instance variables declared in the
+current Objective-C class, and not those inherited from superclasses. It
+is the responsibility of the Objective-C runtime to invoke all such methods
+in an object's inheritance hierarchy. The @code{- (id) .cxx_construct} methods
+will be invoked by the runtime immediately after a new object
+instance is allocated; the @code{- (void) .cxx_destruct} methods will
+be invoked immediately before the runtime deallocates an object instance.
+
+As of this writing, only the NeXT runtime on Mac OS X 10.4 and later has
+support for invoking the @code{- (id) .cxx_construct} and
+@code{- (void) .cxx_destruct} methods.
+@c APPLE LOCAL end mainline
+
@item -fobjc-exceptions
@opindex fobjc-exceptions
Enable syntactic support for structured exception handling in Objective-C,
@@ -2018,6 +2257,17 @@ stage of compilation is not reached, for example because an error is
found during compilation, or because the @option{-fsyntax-only} option is
being used.
+@c APPLE LOCAL begin mainline
+@item -Wstrict-selector-match
+@opindex Wstrict-selector-match
+Warn if multiple methods with differing argument and/or return types are
+found for a given selector when attempting to send a message using this
+selector to a receiver of type @code{id} or @code{Class}. When this flag
+is off (which is the default behavior), the compiler will omit such warnings
+if any differences found are confined to types which share the same size
+and alignment.
+@c APPLE LOCAL end mainline
+
@item -Wundeclared-selector
@opindex Wundeclared-selector
Warn if a @code{@@selector(@dots{})} expression referring to an
@@ -2161,6 +2411,37 @@ Inhibit all warning messages.
@opindex Wno-import
Inhibit warning messages about the use of @samp{#import}.
+@c APPLE LOCAL begin -Wno-#warnings
+@item -Wno-#warnings
+@opindex Wno-#warnings
+Inhibit warning messages issued by @samp{#warning}.
+@c APPLE LOCAL end -Wno-#warnings
+
+@c APPLE LOCAL begin -Wpragma-once 2001-08-01 --sts **
+@item -Wpragma-once
+@opindex Wpragma-once
+Warn about the use of @samp{#pragma once}. (APPLE ONLY)
+@c APPLE LOCAL end -Wpragma-once 2001-08-01 --sts **
+
+@c APPLE LOCAL begin -Wextra-tokens 2001-08-02 --sts **
+@item -Wextra-tokens
+@opindex Wextra-tokens
+Warn about extra tokens at the end of prepreprocessor directives. (APPLE ONLY)
+@c APPLE LOCAL end -Wextra-tokens 2001-08-02 --sts **
+
+@c APPLE LOCAL begin -Wnewline-eof 2001-08-23 --sts **
+@item -Wnewline-eof
+@opindex Wnewline-eof
+Warn about files missing a newline at the end of the file. (APPLE ONLY)
+@c APPLE LOCAL end -Wnewline-eof 2001-08-23 --sts **
+
+@c APPLE LOCAL begin -Wno-altivec-long-deprecated --ilr **
+@item -Wno-altivec-long-deprecated
+@opindex Wno-altivec-long-deprecated
+Do not warn about the use of the deprecated 'long' keyword in
+AltiVec data types. (APPLE ONLY)
+@c APPLE LOCAL end -Wno-altivec-long-deprecated --ilr **
+
@item -Wchar-subscripts
@opindex Wchar-subscripts
Warn if an array subscript has type @code{char}. This is a common cause
@@ -2638,7 +2919,12 @@ that are easy to avoid (or modify to prevent the warning), even in
conjunction with macros. This also enables some language-specific
warnings described in @ref{C++ Dialect Options} and
@ref{Objective-C and Objective-C++ Dialect Options}.
+@c APPLE LOCAL begin -Wmost
+@item -Wmost
+@opindex Wmost
+This is equivalent to -Wall -Wno-parentheses. (APPLE ONLY)
@end table
+@c APPLE LOCAL end -Wmost
The following @option{-W@dots{}} options are not implied by @option{-Wall}.
Some of them warn about constructions that users generally do not
@@ -2777,6 +3063,13 @@ would check to see whether the two values have ranges that overlap; and
this is done with the relational operators, so equality comparisons are
probably mistaken.
+@c APPLE LOCAL begin -Wfour-char-constants
+@item -Wfour-char-constants
+@opindex Wfour-char-constants
+Warn about four char constants, e.g. OSType 'APPL'. This warning is
+disabled by default.
+@c APPLE LOCAL end
+
@item -Wtraditional @r{(C only)}
@opindex Wtraditional
Warn about certain constructs that behave differently in traditional and
@@ -2872,6 +3165,14 @@ construct, known from C++, was introduced with ISO C99 and is by default
allowed in GCC@. It is not supported by ISO C90 and was not supported by
GCC versions before GCC 3.0. @xref{Mixed Declarations}.
+@c APPLE LOCAL begin 4086969
+@item -Wno-discard-qual
+@opindex Wno-discard-qual
+This flag allows user to suppress warning that is issued when qualification
+is discarded in situations like, initialization, assignment and argument
+passing.
+@c APPLE LOCAL end 4086969
+
@item -Wundef
@opindex Wundef
Warn if an undefined identifier is evaluated in an @samp{#if} directive.
@@ -2941,6 +3242,12 @@ converted to an unsigned type. For example, warn about the assignment
@code{x = -1} if @code{x} is unsigned. But do not warn about explicit
casts like @code{(unsigned) -1}.
+@c APPLE LOCAL begin 64bit shorten warning 3865314
+@item -Wshorten-64-to-32
+@opindex Wshorten-64-to-32
+Warn if a value is implicitly converted from a 64 bit type to a 32 bit type.
+@c APPLE LOCAL end 64bit shorten warning 3865314 */
+
@item -Wsign-compare
@opindex Wsign-compare
@cindex warning for comparison of signed and unsigned values
@@ -3031,9 +3338,60 @@ appropriate may not be detected. This option has no effect unless
@item -Wno-multichar
@opindex Wno-multichar
@opindex Wmultichar
-Do not warn if a multicharacter constant (@samp{'FOOF'}) is used.
+@c APPLE LOCAL begin -Wfour-char-constants
+Do not warn if a multicharacter constant (@samp{'FOO'}) is used.
Usually they indicate a typo in the user's code, as they have
implementation-defined values, and should not be used in portable code.
+This flag does not control warning for a constant with four characters,
+use -Wfour-char-constants instead.
+@c APPLE LOCAL end -Wfour-char-constants
+
+@c APPLE LOCAL begin mainline UCNs 2005-04-17 3892809
+@item -Wnormalized=<none|id|nfc|nfkc>
+@opindex Wnormalized
+@cindex NFC
+@cindex NFKC
+@cindex character set, input normalization
+In ISO C and ISO C++, two identifiers are different if they are
+different sequences of characters. However, sometimes when characters
+outside the basic ASCII character set are used, you can have two
+different character sequences that look the same. To avoid confusion,
+the ISO 10646 standard sets out some @dfn{normalization rules} which
+when applied ensure that two sequences that look the same are turned into
+the same sequence. GCC can warn you if you are using identifiers which
+have not been normalized; this option controls that warning.
+
+There are four levels of warning that GCC supports. The default is
+@option{-Wnormalized=nfc}, which warns about any identifier which is
+not in the ISO 10646 ``C'' normalized form, @dfn{NFC}. NFC is the
+recommended form for most uses.
+
+Unfortunately, there are some characters which ISO C and ISO C++ allow
+in identifiers that when turned into NFC aren't allowable as
+identifiers. That is, there's no way to use these symbols in portable
+ISO C or C++ and have all your identifiers in NFC.
+@option{-Wnormalized=id} suppresses the warning for these characters.
+It is hoped that future versions of the standards involved will correct
+this, which is why this option is not the default.
+
+You can switch the warning off for all characters by writing
+@option{-Wnormalized=none}. You would only want to do this if you
+were using some other normalization scheme (like ``D''), because
+otherwise you can easily create bugs that are literally impossible to see.
+
+Some characters in ISO 10646 have distinct meanings but look identical
+in some fonts or display methodologies, especially once formatting has
+been applied. For instance @code{\u207F}, ``SUPERSCRIPT LATIN SMALL
+LETTER N'', will display just like a regular @code{n} which has been
+placed in a superscript. ISO 10646 defines the @dfn{NFKC}
+normalisation scheme to convert all these into a standard form as
+well, and GCC will warn if your code is not in NFKC if you use
+@option{-Wnormalized=nfkc}. This warning is comparable to warning
+about every identifier that contains the letter O because it might be
+confused with the digit 0, and so is not the default, but may be
+useful as a local coding convention if the programming environment is
+unable to be fixed to display these characters distinctly.
+@c APPLE LOCAL end mainline UCNs 2005-04-17 3892809
@item -Wno-deprecated-declarations
@opindex Wno-deprecated-declarations
@@ -3110,7 +3468,7 @@ 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
+the size of the function being inlined and 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.
@@ -3190,8 +3548,10 @@ debugging information that only GDB can use; this extra information
makes debugging work better in GDB but will probably make other debuggers
crash or
refuse to read the program. If you want to control for certain whether
-to generate the extra information, use @option{-gstabs+}, @option{-gstabs},
-@option{-gxcoff+}, @option{-gxcoff}, or @option{-gvms} (see below).
+@c APPLE LOCAL begin prune man page
+to generate the extra information, use @option{-gstabs+} or @option{-gstabs}
+(see below).
+@c APPLE LOCAL end prune man page
GCC allows you to use @option{-g} with
@option{-O}. The shortcuts taken by optimized code may occasionally
@@ -3234,6 +3594,8 @@ using GNU extensions understood only by the GNU debugger (GDB)@. The
use of these extensions is likely to make other debuggers crash or
refuse to read the program.
+@c APPLE LOCAL prune man page
+@ignore
@item -gcoff
@opindex gcoff
Produce debugging information in COFF format (if that is supported).
@@ -3252,6 +3614,8 @@ using GNU extensions understood only by the GNU debugger (GDB)@. The
use of these extensions is likely to make other debuggers crash or
refuse to read the program, and may cause assemblers other than the GNU
assembler (GAS) to fail with an error.
+@c APPLE LOCAL prune man page
+@end ignore
@item -gdwarf-2
@opindex gdwarf-2
@@ -3261,17 +3625,27 @@ option, GCC uses features of DWARF version 3 when they are useful;
version 3 is upward compatible with version 2, but may still cause
problems for older debuggers.
+@c APPLE LOCAL begin prune man page
+(Other debug formats, such as @option{-gcoff}, are not supported in
+Darwin or Mac OS X.)
+@ignore
@item -gvms
@opindex gvms
Produce debugging information in VMS debug format (if that is
supported). This is the format used by DEBUG on VMS systems.
+@end ignore
+@c APPLE LOCAL end prune man page
@item -g@var{level}
@itemx -ggdb@var{level}
@itemx -gstabs@var{level}
+@c APPLE LOCAL prune man page
+@ignore
@itemx -gcoff@var{level}
@itemx -gxcoff@var{level}
@itemx -gvms@var{level}
+@c APPLE LOCAL prune man page
+@end ignore
Request debugging information and also use @var{level} to specify how
much information. The default level is 2.
@@ -3462,7 +3836,7 @@ conversion, to the file @file{@var{file}.18.ce2}.
@opindex fdump-rtl-btl
@opindex fdump-rtl-dbr
@option{-dd} and @option{-fdump-rtl-btl} enable dumping after branch
-target load optimization, to to @file{@var{file}.31.btl}. @option{-dd}
+target load optimization, to @file{@var{file}.31.btl}. @option{-dd}
and @option{-fdump-rtl-dbr} enable dumping after delayed branch
scheduling, to @file{@var{file}.36.dbr}.
@@ -3838,6 +4212,24 @@ appending @file{.dce} to the source file name.
Dump each function after adding mudflap instrumentation. The file name is
made by appending @file{.mudflap} to the source file name.
+@c APPLE LOCAL begin lno
+@item scev
+@opindex fdump-tree-scev
+Dump the information gathered by the scalar evolution analyzer.
+The file name is made by appending @file{.scev} to the source file name.
+
+@item ddall
+@opindex fdump-tree-ddall
+Dump all the data dependence relations.
+The file name is made by appending @file{.ddall} to the source file name.
+
+@item elck
+@opindex fdump-tree-elck
+Dump each function after performing checks elimination based on scalar
+evolution informations. The file name is made by appending
+@file{.elck} to the source file name.
+@c APPLE LOCAL end lno
+
@item sra
@opindex fdump-tree-sra
Dump each function after performing scalar replacement of aggregates. The
@@ -3874,6 +4266,13 @@ Dump each function after applying the named return value optimization on
generic trees. The file name is made by appending @file{.nrv} to the source
file name.
+@c APPLE LOCAL begin lno
+@item loop
+@opindex fdump-tree-loop
+Dump each function after applying tree-level loop optimizations. The file
+name is made by appending @file{.loop} to the source file name.
+@c APPLE LOCAL end lno
+
@item vect
@opindex fdump-tree-vect
Dump each function after applying vectorization of loops. The file name is
@@ -4090,10 +4489,10 @@ compilation time.
-fif-conversion2 @gol
-ftree-ccp @gol
-ftree-dce @gol
--ftree-dom @gol
+-ftree-dominator-opts @gol
-ftree-dse @gol
-ftree-ter @gol
--ftree-live_range_split @gol
+-ftree-lrs @gol
-ftree-sra @gol
-ftree-copyrename @gol
-ftree-fre @gol
@@ -4103,6 +4502,10 @@ compilation time.
@option{-O} also turns on @option{-fomit-frame-pointer} on machines
where doing so does not interfere with debugging.
+@option{-O} doesn't turn on @option{-ftree-sra} for the Ada compiler.
+This option must be explicitly specified on the command line to be
+enabled for the Ada compiler.
+
@item -O2
@opindex O2
Optimize even more. GCC performs nearly all supported optimizations
@@ -4138,6 +4541,12 @@ also turns on the following optimization flags:
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
+@c APPLE LOCAL begin optimization
+In Apple's version of GCC, @option{-fstrict-aliasing},
+@option{-freorder-blocks}, and @option{-fsched-interblock}
+are disabled by default when optimizing.
+@c APPLE LOCAL end optimization
+
@item -O3
@opindex O3
Optimize yet more. @option{-O3} turns on all optimizations specified by
@@ -4148,6 +4557,47 @@ Optimize yet more. @option{-O3} turns on all optimizations specified by
@opindex O0
Do not optimize. This is the default.
+@c APPLE LOCAL begin -fast
+@item -fast
+@opindex fast
+Optimize for maximum performance. @option{-fast} changes the overall optimization
+strategy of GCC in order to produce the fastest possible running code for PPC7450
+and G5 architectures. By default, @option{-fast} optimizes for G5. Programs
+optimized for G5 will not run on PPC7450. To optimize for PPC7450, add
+@option{-mcpu=7450} on command line.
+
+@option{-fast} currently enables the following optimization flags (for G5 and PPC7450).
+These flags may change in the future. You cannot override any of these options if you use
+@option{-fast} except by setting @option{-mcpu=7450}.
+
+To build shared libraries with @option{-fast}, specify @option{-fPIC} on command line.
+
+@gccoptlist{-O3
+-falign-loops-max-skip=15
+-falign-jumps-max-skip=15
+-falign-loops=16
+-falign-jumps=16
+-falign-functions=16
+-malign-natural (except when -fastf is speified)
+-ffast-math
+-funroll-loops
+-ftree-loop-linear
+-ftree-loop-memset
+-mcpu=G5
+-mpowerpc-gpopt
+-mtune=G5 (unless -mtune=G4 is specified).
+-fsched-interblock
+-fgcse-sm
+-mpowerpc64}
+
+Important notes: @option{-ffast-math} results in code that is not necessarily
+IEEE-compliant. @option{-fstrict-aliasing} is highly likely break
+non-standard-compliant programs. @option{-malign-natural} only works properly if
+the entire program is compiled with it, and none of the standard headers/libraries
+contain any code that changes alignment when this option is used.
+
+@c APPLE LOCAL end -fast
+
@item -Os
@opindex Os
Optimize for size. @option{-Os} enables all @option{-O2} optimizations that
@@ -4158,6 +4608,15 @@ optimizations designed to reduce code size.
@gccoptlist{-falign-functions -falign-jumps -falign-loops @gol
-falign-labels -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays}
+@c APPLE LOCAL begin Disable string insns with -Os on Darwin (radar 3509006)
+When compiling for Apple powerPC targets, -Os disables use of the string
+instructions even though they would usually be smaller, because
+the kernel can't emulate them correctly in some rare cases.
+This behavior is not portable to any other gcc environment, and will
+not affect most programs at all. If you really want the string instructions,
+use -mstring.
+@c APPLE LOCAL end Disable string insns with -Os on Darwin (radar 3509006)
+
If you use multiple @option{-O} options, with or without level numbers,
the last such option is the one that is effective.
@end table
@@ -4697,6 +5156,12 @@ effectiveness of code motion optimizations. It also saves one jump. This flag
is enabled by default at @option{-O} and higher. It is not enabled
for @option{-Os}, since it usually increases code size.
+@c APPLE LOCAL begin lno
+@item -ftree-elim-checks
+Perform elimination of checks based on scalar evolution informations.
+This flag is disabled by default.
+@c APPLE LOCAL end lno
+
@item -ftree-loop-optimize
Perform loop optimizations on trees. This flag is enabled by default
at @option{-O} and higher.
@@ -4705,15 +5170,15 @@ at @option{-O} and higher.
Perform linear loop transformations on tree. This flag can improve cache
performance and allow further loop optimizations to take place.
-@item -ftree-lim
-Perform loop invariant motion on trees. This pass moves only invartiants that
-would be hard to handle on rtl level (function calls, operations that expand to
+@item -ftree-loop-im
+Perform loop invariant motion on trees. This pass moves only invariants that
+would be hard to handle at RTL level (function calls, operations that expand to
nontrivial sequences of insns). With @option{-funswitch-loops} it also moves
operands of conditions that are invariant out of the loop, so that we can use
just trivial invariantness analysis in loop unswitching. The pass also includes
store motion.
-@item -fivcanon
+@item -ftree-loop-ivcanon
Create a canonical counter for number of iterations in the loop for that
determining number of iterations requires complicated analysis. Later
optimizations then may determine the number easily. Useful especially
@@ -4749,6 +5214,12 @@ optimization later. This is enabled by default at @option{-O} and higher.
@item -ftree-vectorize
Perform loop vectorization on trees.
+@c APPLE LOCAL begin optimization
+In Apple's version of GCC, @option{-fstrict-aliasing} is enabled by default
+when loop vectorization is enabled. See @option{-fstrict-aliasing} document
+for more information.
+@c APPLE LOCAL end optimization
+
@item -ftracer
@opindex ftracer
Perform tail duplication to enlarge superblock size. This transformation
@@ -4943,6 +5414,14 @@ which is very likely to be @samp{1}, meaning no alignment.
Enabled at levels @option{-O2}, @option{-O3}.
+@c APPLE LOCAL begin -falign-loops-max-skip
+@item -falign-loops-max-skip
+@item -falign-loops-max-skip=@var{n}
+@opindex falign-loops-max-skip
+Align loops to a power-of-two boundary, but do not skip more than
+@var{n} bytes to do so.
+@c APPLE LOCAL end -falign-loops-max-skip
+
@item -falign-loops
@itemx -falign-loops=@var{n}
@opindex falign-loops
@@ -4966,6 +5445,14 @@ 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.
+@c APPLE LOCAL begin -falign-jumps-max-skip
+@item -falign-jumps-max-skip
+@itemx -falign-jumps-max-skip=@var{n}
+@opindex falign-jump-max-skips
+Align branch targets to a power-of-two boundary, but do not skip more than
+@var{n} bytes to do so.
+@c APPLE LOCAL end -falign-jumps-max-skip
+
@option{-fno-align-jumps} and @option{-falign-jumps=1} are
equivalent and mean that loops will not be aligned.
@@ -5072,7 +5559,8 @@ them to store all pertinent intermediate computations into variables.
@opindex ffast-math
Sets @option{-fno-math-errno}, @option{-funsafe-math-optimizations}, @*
@option{-fno-trapping-math}, @option{-ffinite-math-only},
-@option{-fno-rounding-math} and @option{-fno-signaling-nans}.
+@option{-fno-rounding-math}, @option{-fno-signaling-nans}
+and @option{fcx-limited-range}.
This option causes the preprocessor macro @code{__FAST_MATH__} to be defined.
@@ -5088,12 +5576,19 @@ 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.
+@c APPLE LOCAL begin disable math-errno
+@ignore
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}.
+@end ignore
+(APPLE ONLY) The Darwin math libraries never set errno, so there is
+no point in having the compiler generate code that assumes they
+might. Therefore, the default is @option{-fno-math-errno} on Darwin.
+@c APPLE LOCAL end disable math-errno
@item -funsafe-math-optimizations
@opindex funsafe-math-optimizations
@@ -5176,6 +5671,17 @@ disable all GCC optimizations that affect signaling NaN behavior.
Treat floating point constant as single precision constant instead of
implicitly converting it to double precision constant.
+@item -fcx-limited-range
+@itemx -fno-cx-limited-range
+@opindex fcx-limited-range
+@opindex fno-cx-limited-range
+When enabled, this option states that a range reduction step is not
+needed when performing complex division. The default is
+@option{-fno-cx-limited-range}, but is enabled by @option{-ffast-math}.
+
+This option controls the default setting of the ISO C99
+@code{CX_LIMITED_RANGE} pragma. Nevertheless, the option applies to
+all languages.
@end table
@@ -5430,7 +5936,7 @@ 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 500.
+The default value is 450.
@item max-inline-insns-auto
When you use @option{-finline-functions} (included in @option{-O3}),
@@ -5438,7 +5944,7 @@ 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 120.
+The default value is 90.
@item large-function-insns
The limit specifying really large functions. For functions larger than this
@@ -5447,7 +5953,7 @@ limit after inlining inlining is constrained by
to avoid extreme compilation time caused by non-linear algorithms used by the
backend.
This parameter is ignored when @option{-funit-at-a-time} is not used.
-The default value is 3000.
+The default value is 2700.
@item large-function-growth
Specifies maximal growth of large function caused by inlining in percents.
@@ -5470,7 +5976,7 @@ For functions declared inline @option{--param max-inline-insns-recursive} is
taken into acount. For function not declared inline, recursive inlining
happens only when @option{-finline-functions} (included in @option{-O3}) is
enabled and @option{--param max-inline-insns-recursive-auto} is used. The
-default value is 500.
+default value is 450.
@item max-inline-recursive-depth
@itemx max-inline-recursive-depth-auto
@@ -5480,7 +5986,16 @@ For functions declared inline @option{--param max-inline-recursive-depth} is
taken into acount. For function not declared inline, recursive inlining
happens only when @option{-finline-functions} (included in @option{-O3}) is
enabled and @option{--param max-inline-recursive-depth-auto} is used. The
-default value is 500.
+default value is 450.
+
+@item inline-call-cost
+Specify cost of call instruction relative to simple arithmetics operations
+(having cost of 1). Increasing this cost disqualify inlinining of non-leaf
+functions and at same time increase size of leaf function that is believed to
+reduce function size by being inlined. In effect it increase amount of
+inlining for code having large abstraction penalty (many functions that just
+pass the argumetns to other functions) and decrease inlining for code with low
+abstraction penalty. Default value is 16.
@item max-unrolled-insns
The maximum number of instructions that a loop should have if that loop
@@ -5533,6 +6048,12 @@ If number of candidates in the set is smaller than this value,
we always try to remove unnecessary ivs from the set during its
optimization when a new iv is added to the set.
+@c APPLE LOCAL begin mainline 4080945 / PR 20742
+@item scev-max-expr-size
+Bound on size of expressions used in the scalar evolutions analyzer.
+Large expressions slow the analyzer.
+@c APPLE LOCAL end mainline 4080945 / PR 20742
+
@item max-iterations-to-track
The maximum number of iterations of a loop the brute force algorithm
@@ -5748,6 +6269,15 @@ These options come into play when the compiler links object files into
an executable output file. They are meaningless if the compiler is
not doing a link step.
+@c APPLE LOCAL begin linker flags
+In addition to the options listed below, Apple's GCC also accepts and
+passes nearly all of the options defined by the linker @samp{ld} and by
+the library tool @samp{libtool}. Common options include
+@samp{-framework}, @samp{-dynamic}, @samp{-bundle},
+@samp{-flat_namespace}, and so forth. See the ld and libtool man pages
+for further details.
+@c APPLE LOCAL end linker flags
+
@table @gcctabopt
@cindex file names
@item @var{object-file-name}
@@ -5819,6 +6349,12 @@ These entries are usually resolved by entries in
libc. These entry points should be supplied through some other
mechanism when this option is specified.
+@c APPLE LOCAL begin radar 2466994 - -no-c++filt --ilr
+@item -no-c++filt
+By default all linker diagnostic output is piped through c++filt.
+This option suppresses that behavior. (APPLE ONLY)
+@c APPLE LOCAL end radar 2466994 - -no-c++filt --ilr
+
@item -nostdlib
@opindex nostdlib
Do not use the standard system startup files or libraries when linking.
@@ -5866,6 +6402,13 @@ Remove all symbol table and relocation information from the executable.
On systems that support dynamic linking, this prevents linking with the shared
libraries. On other systems, this option has no effect.
+@c APPLE LOCAL begin manual
+This option will not work on Mac OS X unless all libraries (including
+@file{libgcc.a}) have also been compiled with @option{-static}. Since
+neither a static version of libSystem.dylib nor crt0.o are provided, this
+option is not useful to most people.
+@c APPLE LOCAL end manual
+
@item -shared
@opindex shared
Produce a shared object which can then be linked with other objects to
@@ -5879,6 +6422,10 @@ libraries to link against. Failing to supply the correct flags may lead
to subtle defects. Supplying them in cases where they are not necessary
is innocuous.}
+@c APPLE LOCAL begin manual
+This option is not supported on Mac OS X.
+@c APPLE LOCAL end manual
+
@item -shared-libgcc
@itemx -static-libgcc
@opindex shared-libgcc
@@ -6373,11 +6920,6 @@ Dump out a @option{-L} option for each directory that GCC believes might
contain startup files. If the target supports multilibs then the
current multilib directory will be prepended to each of these paths.
-@item %M
-Output the multilib directory with directory separators replaced with
-@samp{_}. If multilib directories are not set, or the multilib directory is
-@file{.} then this option emits nothing.
-
@item %L
Process the @code{lib} spec. This is a spec string for deciding which
libraries should be included on the command line to the linker.
@@ -6642,17 +7184,27 @@ that macro, which enables you to change the defaults.
@c in Machine Dependent Options
@menu
+@c APPLE LOCAL prune man page
+@ignore
* ARC Options::
* ARM Options::
* AVR Options::
* CRIS Options::
+@c APPLE LOCAL prune man page
+@end ignore
* Darwin Options::
+@c APPLE LOCAL prune man page
+@ignore
* DEC Alpha Options::
* DEC Alpha/VMS Options::
* FRV Options::
* H8/300 Options::
* HPPA Options::
+@c APPLE LOCAL prune man page
+@end ignore
* i386 and x86-64 Options::
+@c APPLE LOCAL prune man page
+@ignore
* IA-64 Options::
* M32R/D Options::
* M680x0 Options::
@@ -6663,8 +7215,12 @@ that macro, which enables you to change the defaults.
* MN10300 Options::
* NS32K Options::
* PDP-11 Options::
+@c APPLE LOCAL prune man page
+@end ignore
* PowerPC Options::
* RS/6000 and PowerPC Options::
+@c APPLE LOCAL prune man page
+@ignore
* S/390 and zSeries Options::
* SH Options::
* SPARC Options::
@@ -6676,8 +7232,12 @@ that macro, which enables you to change the defaults.
* Xstormy16 Options::
* Xtensa Options::
* zSeries Options::
+@c APPLE LOCAL prune man page
+@end ignore
@end menu
+@c APPLE LOCAL prune man page
+@ignore
@node ARC Options
@subsection ARC Options
@cindex ARC Options
@@ -6746,7 +7306,8 @@ leaf functions. The default is @option{-mno-apcs-frame}.
@opindex mapcs
This is a synonym for @option{-mapcs-frame}.
-@ignore
+@c APPLE LOCAL We already have ignore running -- do not do this one --bowdidge
+@c @ignore
@c not currently implemented
@item -mapcs-stack-check
@opindex mapcs-stack-check
@@ -6773,7 +7334,8 @@ size if @option{-mapcs-float} is used.
@opindex mapcs-reentrant
Generate reentrant, position independent code. The default is
@option{-mno-apcs-reentrant}.
-@end ignore
+@c APPLE LOCAL We already have ignore running -- do not do this one --bowdidge
+@c @end ignore
@item -mthumb-interwork
@opindex mthumb-interwork
@@ -7239,6 +7801,8 @@ initialized data and zero-initialized data are allocated consecutively.
Like @option{-sim}, but pass linker options to locate initialized data at
0x40000000 and zero-initialized data at 0x80000000.
@end table
+@c APPLE LOCAL prune man page
+@end ignore
@node Darwin Options
@subsection Darwin Options
@@ -7247,9 +7811,11 @@ Like @option{-sim}, but pass linker options to locate initialized data at
These options are defined for all architectures running the Darwin operating
system.
-FSF GCC on Darwin does not create ``fat'' object files; it will create
+@c APPLE LOCAL universal
+FSF GCC on Darwin does not create ``universal'' object files; it will create
an object file for the single architecture that it was built to
-target. Apple's GCC on Darwin does create ``fat'' files if multiple
+@c APPLE LOCAL universal
+target. Apple's GCC on Darwin does create ``universal'' files if multiple
@option{-arch} options are used; it does so by running the compiler or
linker multiple times and joining the results together with
@file{lipo}.
@@ -7259,7 +7825,7 @@ The subtype of the file created (like @samp{ppc7400} or @samp{ppc970} or
that GCC is targetting, like @option{-mcpu} or @option{-march}. The
@option{-force_cpusubtype_ALL} option can be used to override this.
-The Darwin tools vary in their behaviour when presented with an ISA
+The Darwin tools vary in their behavior when presented with an ISA
mismatch. The assembler, @file{as}, will only permit instructions to
be used that are valid for the subtype of the file it is generating,
so you cannot put 64-bit instructions in an @samp{ppc750} object file.
@@ -7333,6 +7899,32 @@ enable gdb to dynamically load @code{.o} files into already running
programs. @option{-findirect-data} and @option{-ffix-and-continue}
are provided for backwards compatibility.
+@c APPLE LOCAL KEXT
+@item -fapple-kext
+@c APPLE LOCAL KEXT indirect-virtual-calls --sts
+@itemx -findirect-virtual-calls
+@c APPLE LOCAL KEXT terminated-vtables
+@itemx -fterminated-vtables
+@c APPLE LOCAL KEXT
+@opindex fapple-kext
+@c APPLE LOCAL KEXT indirect-virtual-calls --sts
+@opindex findirect-virtual-calls
+@c APPLE LOCAL KEXT terminated-vtables
+@opindex fterminated-vtables
+@c APPLE LOCAL begin KEXT
+Alter vtables, destructors, and other implementation details to more
+closely resemble the GCC 2.95 ABI. This is to make kernel extensions
+loadable by Darwin kernels, and is required to build any Darwin kernel
+extension. In addition, virtual calls are not made directly, instead,
+code is generated to always go through the virtual table, as virtual
+tables can be patched by the kernel module loader. Vtables are
+altered by adding a zero word at the end of every vtable.
+@option{-fno-exceptions} and @option{-static} must also be used with
+this flag. @option{-findirect-virtual-calls} and
+@option{-fterminated-vtables} are accepted for backwards compatibility
+but will be removed in the future. (APPLE ONLY)
+@c APPLE LOCAL end KEXT
+
@item -all_load
@opindex all_load
Loads all members of static archive libraries.
@@ -7490,6 +8082,8 @@ These options are passed to the Darwin linker. The Darwin linker man page
describes them in detail.
@end table
+@c APPLE LOCAL prune man page
+@ignore
@node DEC Alpha Options
@subsection DEC Alpha Options
@@ -8382,6 +8976,8 @@ 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
+@c APPLE LOCAL prune man page
+@end ignore
@node i386 and x86-64 Options
@subsection Intel 386 and AMD x86-64 Options
@@ -8822,6 +9418,8 @@ about addresses and sizes of sections. Currently GCC does not implement
this model.
@end table
+@c APPLE LOCAL prune man page
+@ignore
@node IA-64 Options
@subsection IA-64 Options
@cindex IA-64 Options
@@ -8866,10 +9464,6 @@ is not position independent code, and violates the IA-64 ABI@.
Generate (or don't) a stop bit immediately before and after volatile asm
statements.
-@item -mb-step
-@opindex mb-step
-Generate code that works around Itanium B step errata.
-
@item -mregister-names
@itemx -mno-register-names
@opindex mregister-names
@@ -9657,6 +10251,15 @@ uses 64-bit @code{long}s, as does the 64-bit EABI; the others use
32-bit @code{long}s. Pointers are the same size as @code{long}s,
or the same size as integer registers, whichever is smaller.
+@item -msym32
+@itemx -mno-sym32
+@opindex msym32
+@opindex mno-sym32
+Assume (do not assume) that all symbols have 32-bit values, regardless
+of the selected ABI@. This option is useful in combination with
+@option{-mabi=64} and @option{-mno-abicalls} because it allows GCC
+to generate shorter and faster references to symbolic addresses.
+
@item -G @var{num}
@opindex G
@cindex smaller data references (MIPS)
@@ -9689,7 +10292,7 @@ This option is only meaningful in conjunction with @option{-membedded-data}.
@opindex msplit-addresses
@opindex mno-split-addresses
Enable (disable) use of the @code{%hi()} and @code{%lo()} assembler
-relocation operators. This option has been superceded by
+relocation operators. This option has been superseded by
@option{-mexplicit-relocs} but is retained for backwards compatibility.
@item -mexplicit-relocs
@@ -9817,6 +10420,14 @@ the @code{mips64vr*-elf} configurations.
Other VR4120 errata require a nop to be inserted between certain pairs of
instructions. These errata are handled by the assembler, not by GCC itself.
+@item -mfix-vr4130
+@opindex mfix-vr4130
+Work around the VR4130 @code{mflo}/@code{mfhi} errata. The
+workarounds are implemented by the assembler rather than by GCC,
+although GCC will avoid using @code{mflo} and @code{mfhi} if the
+VR4130 @code{macc}, @code{macchi}, @code{dmacc} and @code{dmacchi}
+instructions are available instead.
+
@item -mfix-sb1
@itemx -mno-fix-sb1
@opindex mfix-sb1
@@ -10242,6 +10853,8 @@ Use Unix assembler syntax. This is the default when configured for
Use DEC assembler syntax. This is the default when configured for any
PDP-11 target other than @samp{pdp11-*-bsd}.
@end table
+@c APPLE LOCAL prune man page
+@end ignore
@node PowerPC Options
@subsection PowerPC Options
@@ -10351,7 +10964,7 @@ Supported values for @var{cpu_type} are @samp{401}, @samp{403},
@samp{601}, @samp{602}, @samp{603}, @samp{603e}, @samp{604},
@samp{604e}, @samp{620}, @samp{630}, @samp{740}, @samp{7400},
@samp{7450}, @samp{750}, @samp{801}, @samp{821}, @samp{823},
-@samp{860}, @samp{970}, @samp{common}, @samp{ec603e}, @samp{G3},
+@samp{860}, @samp{970}, @samp{8540}, @samp{common}, @samp{ec603e}, @samp{G3},
@samp{G4}, @samp{G5}, @samp{power}, @samp{power2}, @samp{power3},
@samp{power4}, @samp{power5}, @samp{powerpc}, @samp{powerpc64},
@samp{rios}, @samp{rios1}, @samp{rios2}, @samp{rsc}, and @samp{rs64a}.
@@ -10410,6 +11023,35 @@ the AltiVec instruction set. You may also need to set
@option{-mabi=altivec} to adjust the current ABI with AltiVec ABI
enhancements.
+@c APPLE LOCAL begin AltiVec
+@item -mpim-altivec
+@itemx -mno-pim-altivec
+@opindex mpim-altivec
+@opindex mno-pim-altivec
+Enable (or disable) built-in compiler support for the syntactic extensions as
+well as operations and predicates defined in the Motorola AltiVec
+Technology Programming Interface Manual (PIM). This includes the
+recognition of @code{vector} and @code{pixel} as (context-dependent)
+keywords, the definition of built-in functions such as @code{vec_add},
+and the use of parenthesized comma expression as AltiVec literals.
+Note that unlike the option @option{-maltivec}, the extension does not require
+the inclusion of any special header files; if @code{<altivec.h>} is included,
+a warning will be issued and the contents of the header will be
+ignored. The preprocessor shall provide an @code{__APPLE_ALTIVEC__}
+manifest constant when @option{-mpim-altivec} is specified. (APPLE ONLY)
+
+In addition, the @option{-mpim-altivec} option disables the inlining of
+functions containing AltiVec instructions into functions that do not make
+use of the vector unit. Certain other optimizations, such as inline
+vectorization of @code{memset} and @code{memcpy} calls, are also disabled.
+These adjustments make it possible to compile programs whose use of AltiVec
+instructions is preceded by a run-time check for the presence of AltiVec
+functionality, and that can therefore be made to run on G3 processors.
+Note that all of these optimizations may be re-enabled by supplying
+the @option{-maltivec} option, or an @option{-mcpu} option specifying
+a processor that supports AltiVec instructions.
+@c APPLE LOCAL end AltiVec
+
@item -mabi=spe
@opindex mabi=spe
Extend the current ABI with SPE ABI extensions. This does not change
@@ -10537,12 +11179,15 @@ option are incompatible.
@itemx -malign-power
@opindex malign-natural
@opindex malign-power
-On AIX, Darwin, and 64-bit PowerPC GNU/Linux, the option
+On AIX, 32-bit Darwin, and 64-bit PowerPC GNU/Linux, the option
@option{-malign-natural} overrides the ABI-defined alignment of larger
types, such as floating-point doubles, on their natural size-based boundary.
The option @option{-malign-power} instructs GCC to follow the ABI-specified
alignment rules. GCC defaults to the standard alignment defined in the ABI@.
+On 64-bit Darwin, natural alignment is the default, and @option{-malign-power}
+is not supported.
+
@item -msoft-float
@itemx -mhard-float
@opindex msoft-float
@@ -10551,6 +11196,16 @@ Generate code that does not use (uses) the floating-point register set.
Software floating point emulation is provided if you use the
@option{-msoft-float} option, and pass the option to GCC when linking.
+@c APPLE LOCAL begin describe actual behavior 3888787
+(APPLE ONLY) While the -msoft-float option is supported, the libraries that
+do the floating point emulation are not shipped on Apple PowerPCs, with the
+effect that the emulation does not work. However, the option
+may be useful for a different reason. Normally the compiler can use floating
+point registers in contexts where you might not expect it, for example, to
+copy data from one memory location to another. The -msoft-float option will
+prevent it from doing this.
+@c APPLE LOCAL end describe actual behavior 3888787
+
@item -mmultiple
@itemx -mno-multiple
@opindex mmultiple
@@ -10925,6 +11580,8 @@ This option sets flags for both the preprocessor and linker.
@end table
+@c APPLE LOCAL prune man page
+@ignore
@node S/390 and zSeries Options
@subsection S/390 and zSeries Options
@cindex S/390 and zSeries Options
@@ -11445,7 +12102,7 @@ on SPARC-V9 processors in 64-bit environments:
@item -mlittle-endian
@opindex mlittle-endian
Generate code for a processor running in little-endian mode. It is only
-available for a few configurations and most notably not on Solaris.
+available for a few configurations and most notably not on Solaris and Linux.
@item -m32
@itemx -m64
@@ -11929,6 +12586,8 @@ every cross-file call, not just those that really will be out of range.
@cindex zSeries options
These are listed under @xref{S/390 and zSeries Options}.
+@c APPLE LOCAL prune man page
+@end ignore
@node Code Gen Options
@section Options for Code Generation Conventions
@@ -12127,6 +12786,10 @@ only on certain machines. For the 386, GCC supports PIC for System V
but not for the Sun 386i. Code generated for the IBM RS/6000 is always
position-independent.
+@c APPLE LOCAL begin manual
+@option{-fpic} is not supported on Mac OS X.
+@c APPLE LOCAL end manual
+
@item -fPIC
@opindex fPIC
If supported for the target machine, emit position-independent code,
@@ -12137,6 +12800,10 @@ PowerPC and SPARC@.
Position-independent code requires special support, and therefore works
only on certain machines.
+@c APPLE LOCAL begin manual
+@option{-fPIC} is the default on Darwin and Mac OS X.
+@c APPLE LOCAL end manual
+
@item -fpie
@itemx -fPIE
@opindex fpie
@@ -12521,13 +13188,8 @@ build the project. To make builds faster, GCC allows users to
`precompile' a header file; then, if builds can use the precompiled
header file they will be much faster.
-@strong{Caution:} There are a few known situations where GCC will
-crash when trying to use a precompiled header. If you have trouble
-with a precompiled header, you should remove the precompiled header
-and compile without it. In addition, please use GCC's on-line
-defect-tracking system to report any problems you encounter with
-precompiled headers. @xref{Bugs}.
-
+@c APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+@c APPLE LOCAL end mainline 4.1 2005-06-17 3988498
To create a precompiled header file, simply compile it as you would any
other file, if necessary using the @option{-x} option to make the driver
treat it as a C or C++ header file. You will probably want to use a
@@ -12592,16 +13254,16 @@ the current compilation. You can't use a C precompiled header for a C++
compilation.
@item
-The precompiled header file must be produced by the same compiler
-version and configuration as the current compilation is using.
-The easiest way to guarantee this is to use the same compiler binary
-for creating and using precompiled headers.
+@c APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+The precompiled header file must have been produced by the same compiler
+binary as the current compilation is using.
+@c APPLE LOCAL end mainline 4.1 2005-06-17 3988498
@item
Any macros defined before the precompiled header is included must
either be defined in the same way as when the precompiled header was
generated, or must not affect the precompiled header, which usually
-means that the they don't appear in the precompiled header at all.
+means that they don't appear in the precompiled header at all.
The @option{-D} option is one way to define a macro before a
precompiled header is included; using a @code{#define} can also do it.
@@ -12632,8 +13294,13 @@ which options are safe to change and which are not; the safest choice
is to use exactly the same options when generating and using the
precompiled header. The following are known to be safe:
-@gccoptlist{-fpreprocessed -pedantic-errors}
+@c APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+@gccoptlist{-fpreprocessed
+-fsched-interblock -fsched-spec -fsched-spec-load -fsched-spec-load-dangerous
+-fsched-verbose=<number> -fschedule-insns
+-pedantic-errors}
+@c APPLE LOCAL end mainline 4.1 2005-06-17 3988498
@end itemize
For all of these except the last, the compiler will automatically
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index a2b992e4323..11b08820e94 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -1681,7 +1681,7 @@ A memory reference suitable for VFP load/store insns (reg+constant offset)
A memory reference suitable for iWMMXt load/store instructions.
@item Uq
-A memory reference suitable for for the ARMv4 ldrsb instruction.
+A memory reference suitable for the ARMv4 ldrsb instruction.
@item AVR family---@file{avr.h}
@table @code
@@ -4678,9 +4678,9 @@ an equality comparison of a register and a large constant:
(set (match_dup 0) (compare:CC (match_dup 3) (match_dup 5)))]
"
@{
- /* Get the constant we are comparing against, C, and see what it
+ /* @r{Get the constant we are comparing against, C, and see what it
looks like sign-extended to 16 bits. Then see what constant
- could be XOR'ed with C to get the sign-extended value. */
+ could be XOR'ed with C to get the sign-extended value.} */
int c = INTVAL (operands[2]);
int sextc = (c << 16) >> 16;
@@ -6111,7 +6111,7 @@ can be used for @acronym{RISC} processors, too.
separated by commas.
@var{patterns} is a string giving patterns of functional units
-separated by comma. Currently pattern is is one unit or units
+separated by comma. Currently pattern is one unit or units
separated by white-spaces.
The first construction (@samp{exclusion_set}) means that each
diff --git a/gcc/doc/objc.texi b/gcc/doc/objc.texi
index 481b51c09b8..795e281f726 100644
--- a/gcc/doc/objc.texi
+++ b/gcc/doc/objc.texi
@@ -56,7 +56,7 @@ FileStream *Stderr = nil;
Stderr = [[FileStream new] initWithFd:2];
@}
-/* Other methods here */
+/* @r{Other methods here} */
@@end
@end smallexample
@@ -84,7 +84,7 @@ method instead of @code{+initialize}:
Stderr = [[FileStream new] initWithFd:2];
@}
-/* Other methods here */
+/* @r{Other methods here} */
@@end
@end smallexample
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index 2e7bca7ec1e..9858e47c767 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -3517,7 +3517,7 @@ on these machines should have a body which is a @code{parallel}
that contains both the @code{call} expression and @code{clobber}
expressions that indicate which registers are destroyed. Similarly,
if the call instruction requires some register other than the stack
-pointer that is not explicitly mentioned it its RTL, a @code{use}
+pointer that is not explicitly mentioned in its RTL, a @code{use}
subexpression should mention that register.
Functions that are called are assumed to modify all registers listed in
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index f4927e80382..fd1d1cbb26e 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1269,10 +1269,10 @@ failures for a test run against the list of expected failures in
Update this file when adding new failing tests to Mauve, or when fixing
bugs in libgcj that had caused Mauve test failures.
-The @uref{http://oss.software.ibm.com/developerworks/opensource/jacks/,,
+The @uref{http://sources.redhat.com/mauve/,,
Jacks} project provides a testsuite for Java compilers that can be used
to test changes that affect the GCJ front end. This testsuite is run as
-part of Java testing by placing the Jacks tree within the the libjava
+part of Java testing by placing the Jacks tree within the libjava
testsuite sources at @file{libjava/testsuite/libjava.jacks/jacks}.
We encourage developers to contribute test cases to Mauve and Jacks.
@@ -1321,8 +1321,8 @@ 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) */
+if (i > 10 && j > i && j < 20) /* @r{branch(27 50 75)} */
+ /* @r{branch(end)} */
foo (i, j);
@end smallexample
diff --git a/gcc/doc/standards.texi b/gcc/doc/standards.texi
index c2418defd8d..2a439ad3014 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-4.0/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}.)
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index c14ce5d5248..f3cebcb53f9 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -31,7 +31,6 @@ through the macros defined in the @file{.h} file.
* Per-Function Data:: Defining data structures for per-function information.
* Storage Layout:: Defining sizes and alignments of data.
* Type Layout:: Defining sizes and properties of basic user data types.
-* Escape Sequences:: Defining the value of target character escape sequences
* Registers:: Naming and describing the hardware registers.
* Register Classes:: Defining the classes of hardware registers.
* Stack and Calling:: Defining which way the stack grows and by how much.
@@ -413,20 +412,10 @@ while the @file{config/rs6000/eabiaix.h} target file defines
@end smallexample
@end defmac
-@defmac LINK_LIBGCC_SPECIAL
-Define this macro if the driver program should find the library
-@file{libgcc.a} itself and should not pass @option{-L} options to the
-linker. If you do not define this macro, the driver program will pass
-the argument @option{-lgcc} to tell the linker to do the search and will
-pass @option{-L} options to it.
-@end defmac
-
@defmac LINK_LIBGCC_SPECIAL_1
Define this macro if the driver program should find the library
@file{libgcc.a}. If you do not define this macro, the driver program will pass
the argument @option{-lgcc} to tell the linker to do the search.
-This macro is similar to @code{LINK_LIBGCC_SPECIAL}, except that it does
-not affect @option{-L} options.
@end defmac
@defmac LINK_GCC_C_SEQUENCE_SPEC
@@ -860,7 +849,7 @@ checking the state of the option (documentation is elided for brevity).
@smallexample
[chip.c]
-char *chip_alu = ""; /* Specify default here. */
+char *chip_alu = ""; /* @r{Specify default here.} */
[chip.h]
extern char *chip_alu;
@@ -1646,6 +1635,36 @@ the target machine. If you don't define this, the default is two
words.
@end defmac
+@defmac LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+Define this macro if @code{LONG_DOUBLE_TYPE_SIZE} is not constant or
+if you want routines in @file{libgcc2.a} for a size other than
+@code{LONG_DOUBLE_TYPE_SIZE}. If you don't define this, the
+default is @code{LONG_DOUBLE_TYPE_SIZE}.
+@end defmac
+
+@defmac LIBGCC2_HAS_DF_MODE
+Define this macro if neither @code{LIBGCC2_DOUBLE_TYPE_SIZE} nor
+@code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is
+@code{DFmode} but you want @code{DFmode} routines in @file{libgcc2.a}
+anyway. If you don't define this and either @code{LIBGCC2_DOUBLE_TYPE_SIZE}
+or @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 64 then the default is 1,
+otherwise it is 0.
+@end defmac
+
+@defmac LIBGCC2_HAS_XF_MODE
+Define this macro if @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is not
+@code{XFmode} but you want @code{XFmode} routines in @file{libgcc2.a}
+anyway. If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE}
+is 80 then the default is 1, otherwise it is 0.
+@end defmac
+
+@defmac LIBGCC2_HAS_TF_MODE
+Define this macro if @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is not
+@code{TFmode} but you want @code{TFmode} routines in @file{libgcc2.a}
+anyway. If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE}
+is 128 then the default is 1, otherwise it is 0.
+@end defmac
+
@defmac TARGET_FLT_EVAL_METHOD
A C expression for the value for @code{FLT_EVAL_METHOD} in @file{float.h},
assuming, if applicable, that the floating-point control word is in its
@@ -1816,42 +1835,6 @@ specified by @code{TARGET_VTABLE_ENTRY_ALIGN}), set this to the number
of words in each data entry.
@end defmac
-@node Escape Sequences
-@section Target Character Escape Sequences
-@cindex escape sequences
-
-By default, GCC assumes that the C character escape sequences and other
-characters take on their ASCII values for the target. If this is not
-correct, you must explicitly define all of the macros below. All of
-them must evaluate to constants; they are used in @code{case}
-statements.
-
-@findex TARGET_BELL
-@findex TARGET_BS
-@findex TARGET_CR
-@findex TARGET_DIGIT0
-@findex TARGET_ESC
-@findex TARGET_FF
-@findex TARGET_NEWLINE
-@findex TARGET_TAB
-@findex TARGET_VT
-@multitable {@code{TARGET_NEWLINE}} {Escape} {ASCII character}
-@item Macro @tab Escape @tab ASCII character
-@item @code{TARGET_BELL} @tab @kbd{\a} @tab @code{07}, @code{BEL}
-@item @code{TARGET_BS} @tab @kbd{\b} @tab @code{08}, @code{BS}
-@item @code{TARGET_CR} @tab @kbd{\r} @tab @code{0D}, @code{CR}
-@item @code{TARGET_DIGIT0} @tab @kbd{0} @tab @code{30}, @code{ZERO}
-@item @code{TARGET_ESC} @tab @kbd{\e}, @kbd{\E} @tab @code{1B}, @code{ESC}
-@item @code{TARGET_FF} @tab @kbd{\f} @tab @code{0C}, @code{FF}
-@item @code{TARGET_NEWLINE} @tab @kbd{\n} @tab @code{0A}, @code{LF}
-@item @code{TARGET_TAB} @tab @kbd{\t} @tab @code{09}, @code{HT}
-@item @code{TARGET_VT} @tab @kbd{\v} @tab @code{0B}, @code{VT}
-@end multitable
-
-@noindent
-Note that the @kbd{\e} and @kbd{\E} escapes are GNU extensions, not
-part of the C standard.
-
@node Registers
@section Register Usage
@cindex register usage
@@ -2931,6 +2914,18 @@ length of the outgoing arguments. The default is correct for most
machines. See @file{function.c} for details.
@end defmac
+@defmac INITIAL_FRAME_ADDRESS_RTX
+A C expression whose value is RTL representing the address of the initial
+ stack frame. This address is passed to @code{RETURN_ADDR_RTX} and
+@code{DYNAMIC_CHAIN_ADDRESS}.
+If you don't define this macro, the default is to return
+@code{hard_frame_pointer_rtx}.
+This default is usually correct unless @code{-fomit-frame-pointer} is in
+effect.
+Define this macro in order to make @code{__builtin_frame_address (0)} and
+@code{__builtin_return_address (0)} work even in absence of a hard frame pointer.
+@end defmac
+
@defmac DYNAMIC_CHAIN_ADDRESS (@var{frameaddr})
A C expression whose value is RTL representing the address in a stack
frame where the pointer to the caller's frame is stored. Assume that
@@ -4837,7 +4832,7 @@ This macro should evaluate to @code{true} if the integer comparison
functions (like @code{__cmpdi2}) return 0 to indicate that the first
operand is smaller than the second, 1 to indicate that they are equal,
and 2 to indicate that the first operand is greater than the second.
-If this macro evalutes to @code{false} the comparison functions return
+If this macro evaluates to @code{false} the comparison functions return
@minus{}1, 0, and 1 instead of 0, 1, and 2. If the target uses the routines
in @file{libgcc.a}, you do not need to define this macro.
@end defmac
@@ -5537,7 +5532,7 @@ used to set a chunk of memory to a constant value, or whether some other
mechanism will be used. Used by @code{__builtin_memset} when storing
values other than constant zero and by @code{__builtin_strcpy} when
when called with a constant source string.
-Defaults to to 1 if @code{move_by_pieces_ninsns} returns less
+Defaults to 1 if @code{move_by_pieces_ninsns} returns less
than @code{MOVE_RATIO}.
@end defmac
@@ -9223,7 +9218,7 @@ arguments of @samp{#pragma pack}.
@defmac TARGET_DEFAULT_PACK_STRUCT
If your target requires a structure packing default other than 0 (meaning
-the machine default), define this macro the the necessary value (in bytes).
+the machine default), define this macro to the necessary value (in bytes).
This must be a value that would also valid to be used with
@samp{#pragma pack()} (that is, a small power of two).
@end defmac
@@ -9592,6 +9587,14 @@ many recent processors which implement a policy of ``relaxed,''
and ia64. The default is @code{false}.
@end deftypefn
+@c APPLE LOCAL begin mainline 2005-04-14
+@deftypefn {Target Hook} const char *TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN (tree @var{typelist}, tree @var{funcdecl}, tree @var{val})
+If defined, this macro returns the diagnostic message when it is
+illegal to pass argument @var{val} to function @var{funcdecl}
+with prototype @var{typelist}.
+@end deftypefn
+@c APPLE LOCAL end mainline 2005-04-14
+
@defmac TARGET_USE_JCR_SECTION
This macro determines whether to use the JCR section to register Java
classes. By default, TARGET_USE_JCR_SECTION is defined to 1 if both
diff --git a/gcc/doc/tree-ssa.texi b/gcc/doc/tree-ssa.texi
index cef4212c05d..6aba70bbe9b 100644
--- a/gcc/doc/tree-ssa.texi
+++ b/gcc/doc/tree-ssa.texi
@@ -685,7 +685,7 @@ void f()
The optimizers need to associate attributes with statements and
variables during the optimization process. For instance, we need to
-know what basic block does a statement belong to or whether a variable
+know what basic block a statement belongs to or whether a variable
has aliases. All these attributes are stored in data structures
called annotations which are then linked to the field @code{ann} in
@code{struct tree_common}.
@@ -938,14 +938,14 @@ tree FOR_EACH_SSA_TREE_OPERAND
@file{tree-ssa-operands.h}:
@smallexample
-#define SSA_OP_USE 0x01 /* Real USE operands. */
-#define SSA_OP_DEF 0x02 /* Real DEF operands. */
-#define SSA_OP_VUSE 0x04 /* VUSE operands. */
-#define SSA_OP_VMAYUSE 0x08 /* USE portion of V_MAY_DEFS. */
-#define SSA_OP_VMAYDEF 0x10 /* DEF portion of V_MAY_DEFS. */
-#define SSA_OP_VMUSTDEF 0x20 /* V_MUST_DEF definitions. */
-
-/* These are commonly grouped operand flags. */
+#define SSA_OP_USE 0x01 /* @r{Real USE operands.} */
+#define SSA_OP_DEF 0x02 /* @r{Real DEF operands.} */
+#define SSA_OP_VUSE 0x04 /* @r{VUSE operands.} */
+#define SSA_OP_VMAYUSE 0x08 /* @r{USE portion of V_MAY_DEFS.} */
+#define SSA_OP_VMAYDEF 0x10 /* @r{DEF portion of V_MAY_DEFS.} */
+#define SSA_OP_VMUSTDEF 0x20 /* @r{V_MUST_DEF definitions.} */
+
+/* @r{These are commonly grouped operand flags.} */
#define SSA_OP_VIRTUAL_USES (SSA_OP_VUSE | SSA_OP_VMAYUSE)
#define SSA_OP_VIRTUAL_DEFS (SSA_OP_VMAYDEF | SSA_OP_VMUSTDEF)
#define SSA_OP_ALL_USES (SSA_OP_VIRTUAL_USES | SSA_OP_USE)
diff --git a/gcc/doc/trouble.texi b/gcc/doc/trouble.texi
index 01c0c192d59..1cfc212f5ed 100644
--- a/gcc/doc/trouble.texi
+++ b/gcc/doc/trouble.texi
@@ -275,15 +275,19 @@ string its argument points to.
@cindex @code{sscanf}, and constant strings
@cindex @code{fscanf}, and constant strings
@cindex @code{scanf}, and constant strings
-Another consequence is that @code{sscanf} does not work on some very
-old systems when passed a string constant as its format control string
-or input. This is because @code{sscanf} incorrectly tries to write
-into the string constant. Likewise @code{fscanf} and @code{scanf}.
-
-The solution to these problems is to change the program to use
+@c APPLE LOCAL begin fwritable strings.
+Another consequence is that @code{sscanf} does not work on some systems
+when passed a string constant as its format control string or input.
+This is because @code{sscanf} incorrectly tries to write into the string
+constant. Likewise @code{fscanf} and @code{scanf}.
+
+@opindex fwritable-strings
+The best solution to these problems is to change the program to use
@code{char}-array variables with initialization strings for these
-purposes instead of string constants.
-
+purposes instead of string constants. But if this is not possible,
+you can use the @option{-fwritable-strings} flag, which directs GCC
+to handle string constants the same way most C compilers do.
+@c APPLE LOCAL end fwritable strings.
@item
@code{-2147483648} is positive.
diff --git a/gcc/dominance.c b/gcc/dominance.c
index 7970e242526..f001c680243 100644
--- a/gcc/dominance.c
+++ b/gcc/dominance.c
@@ -1,5 +1,5 @@
/* Calculate (post)dominators in slightly super-linear time.
- Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Michael Matz (matz@ifh.de).
This file is part of GCC.
@@ -170,7 +170,7 @@ init_dom_info (struct dom_info *di, enum cdi_direction dir)
di->dfsnum = 1;
di->nodes = 0;
- di->fake_exit_edge = dir ? BITMAP_XMALLOC () : NULL;
+ di->fake_exit_edge = dir ? BITMAP_ALLOC (NULL) : NULL;
}
#undef init_ar
@@ -191,7 +191,7 @@ free_dom_info (struct dom_info *di)
free (di->set_child);
free (di->dfs_order);
free (di->dfs_to_bb);
- BITMAP_XFREE (di->fake_exit_edge);
+ BITMAP_FREE (di->fake_exit_edge);
}
/* The nonrecursive variant of creating a DFS tree. DI is our working
diff --git a/gcc/dummy-checksum.c b/gcc/dummy-checksum.c
new file mode 100644
index 00000000000..3285817b2c8
--- /dev/null
+++ b/gcc/dummy-checksum.c
@@ -0,0 +1,3 @@
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+const unsigned char executable_checksum[16] = { 0 };
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 49bca54c951..4c683a6ca82 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -1703,8 +1703,103 @@ dwarf2out_frame_debug_expr (rtx expr, const char *label)
{
int regno;
- gcc_assert (GET_CODE (XEXP (XEXP (dest, 0), 1)) == CONST_INT);
- offset = INTVAL (XEXP (XEXP (dest, 0), 1));
+ /* APPLE LOCAL begin 'reg + index' case. */
+ offset = 0x696b6c6c;
+
+ if (GET_CODE (XEXP (XEXP (dest, 0), 1)) == CONST_INT)
+ offset = INTVAL (XEXP (XEXP (dest, 0), 1));
+ /* If it's a 'reg + index', we need to find out what value
+ the index reg has at this point. (This can happen
+ because some architectures have registers which can
+ only be stored using a "reg + index" mode.)
+
+ This method of finding out the index value is VERY
+ FRAGILE. Ideally we'd try to add a note to the save
+ insn, but... */
+ else if (GET_CODE (XEXP (XEXP (dest, 0), 1)) == REG)
+ {
+ unsigned the_reg = REGNO (XEXP (XEXP (dest, 0), 1));
+ rtx insn;
+
+ /* The REG_FRAME_RELATED_EXPR can sometimes be
+ out-of-date after the optimiser/inliner has done
+ its stuff. For example,
+
+ (insn: (set (mem:V16QI (plus:SI (reg/f:SI 1 r1)
+ (reg:SI 6 r6)) [0 S16 A8])
+ (reg:V16QI 108 v31))
+ ...
+ (expr_list:REG_FRAME_RELATED_EXPR
+ (set (mem:V16QI (plus:SI (reg/f:SI 1 r1)
+ (reg:SI 0 r0)) [0 S16 A8])
+ (reg:V16QI 108 v31))
+
+ Note that the optimiser has used R6 instead of the original
+ R0 to store the SP offset. Alas, we blindly look for R0
+ here, since DEST is the REG_FRAME_RELATED_EXPR, so we need
+ to check for that.
+
+ This needs a rework from scratch, but it'll do for now. */
+
+ insn = XEXP (XEXP (XEXP (PATTERN (current_output_insn),
+ 0), 0), 1);
+ if (GET_CODE (insn) == REG)
+ the_reg = REGNO (insn);
+
+ insn = PREV_INSN (current_output_insn);
+ for (; insn != NULL; insn = PREV_INSN (insn))
+ {
+ if (GET_CODE (insn) != INSN
+ || PATTERN (insn) == NULL)
+ ;
+ else if (GET_CODE (PATTERN (insn)) == SET)
+ {
+ rtx p = PATTERN (insn);
+ if (SET_DEST (p) != NULL
+ && GET_CODE (SET_DEST (p)) == REG
+ && REGNO (SET_DEST (p)) == the_reg)
+ {
+ if (GET_CODE (SET_SRC (p)) == CONST_INT)
+ {
+ offset = INTVAL (SET_SRC (p));
+ break;
+ }
+ else
+ abort ();
+ }
+ }
+ else
+ /* A label? All bets are off. */
+ if (GET_CODE (PATTERN (insn)) == CODE_LABEL)
+ abort ();
+ }
+
+ /* DEST can also be something like:
+
+ (mem:V16QI (plus:SI (plus:SI (reg/f:SI 1 r1)
+ (const_int 147792 [0x24150]))
+ (reg:SI 0 r0)) [0 S16 A8])
+
+ This is handled here by adjusting the offset appropriately. */
+
+ insn = XEXP (XEXP (dest, 0), 0);
+ if (GET_CODE (insn) == PLUS && GET_CODE (XEXP (insn, 0)) == REG
+ && GET_CODE (XEXP (insn, 1)) == CONST_INT)
+ {
+ gcc_assert (offset != 0x696b6c6c);
+ offset += INTVAL (XEXP (insn, 1));
+
+ /* Set DEST to be the inner PLUS so that
+ REGNO (XEXP (XEXP (dest, 0), 0) will be sensible. */
+
+ dest = XEXP (dest, 0);
+ }
+ }
+ else
+ abort ();
+ gcc_assert (offset != 0x696b6c6c);
+ /* APPLE LOCAL end 'reg + index' case. */
+
if (GET_CODE (XEXP (dest, 0)) == MINUS)
offset = -offset;
@@ -2468,7 +2563,12 @@ void
dwarf2out_frame_finish (void)
{
/* Output call frame information. */
- if (write_symbols == DWARF2_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG)
+ if (write_symbols == DWARF2_DEBUG
+ || write_symbols == VMS_AND_DWARF2_DEBUG
+#ifdef DWARF2_FRAME_INFO
+ || DWARF2_FRAME_INFO
+#endif
+ )
output_call_frame_info (0);
#ifndef TARGET_UNWIND_INFO
@@ -3444,7 +3544,8 @@ const struct gcc_debug_hooks dwarf2_debug_hooks =
dwarf2out_abstract_function, /* outlining_inline_function */
debug_nothing_rtx, /* label */
debug_nothing_int, /* handle_pch */
- dwarf2out_var_location
+ dwarf2out_var_location,
+ 1 /* start_end_main_source_file */
};
#endif
@@ -4117,7 +4218,7 @@ static char ranges_section_label[2 * MAX_ARTIFICIAL_LABEL_BYTES];
#endif
/* We allow a language front-end to designate a function that is to be
- called to "demangle" any name before it it put into a DIE. */
+ called to "demangle" any name before it is put into a DIE. */
static const char *(*demangle_name_func) (const char *);
@@ -10156,26 +10257,22 @@ tree_add_const_value_attribute (dw_die_ref var_die, tree decl)
tree init = DECL_INITIAL (decl);
tree type = TREE_TYPE (decl);
- if (TREE_READONLY (decl) && ! TREE_THIS_VOLATILE (decl) && init
- && initializer_constant_valid_p (init, type) == null_pointer_node)
- /* OK */;
- else
+ if (!init)
return;
-
- switch (TREE_CODE (type))
- {
- case INTEGER_TYPE:
- if (host_integerp (init, 0))
- add_AT_unsigned (var_die, DW_AT_const_value,
- tree_low_cst (init, 0));
- else
- add_AT_long_long (var_die, DW_AT_const_value,
- TREE_INT_CST_HIGH (init),
- TREE_INT_CST_LOW (init));
- break;
-
- default:;
- }
+ if (!TREE_READONLY (decl) || TREE_THIS_VOLATILE (decl))
+ return;
+ if (TREE_CODE (type) != INTEGER_TYPE)
+ return;
+ if (TREE_CODE (init) != INTEGER_CST)
+ return;
+
+ if (host_integerp (init, 0))
+ add_AT_unsigned (var_die, DW_AT_const_value,
+ tree_low_cst (init, 0));
+ else
+ add_AT_long_long (var_die, DW_AT_const_value,
+ TREE_INT_CST_HIGH (init),
+ TREE_INT_CST_LOW (init));
}
/* Generate a DW_AT_name attribute given some string value to be included as
@@ -10518,7 +10615,7 @@ add_abstract_origin_attribute (dw_die_ref die, tree origin)
here. */
if (origin_die)
- add_AT_die_ref (die, DW_AT_abstract_origin, origin_die);
+ add_AT_die_ref (die, DW_AT_abstract_origin, origin_die);
}
/* We do not currently support the pure_virtual attribute. */
@@ -11148,13 +11245,27 @@ gen_type_die_for_member (tree type, tree member, dw_die_ref context_die)
if (TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (type))
&& ! lookup_decl_die (member))
{
+ dw_die_ref type_die;
gcc_assert (!decl_ultimate_origin (member));
push_decl_scope (type);
+ type_die = lookup_type_die (type);
if (TREE_CODE (member) == FUNCTION_DECL)
- gen_subprogram_die (member, lookup_type_die (type));
+ gen_subprogram_die (member, type_die);
+ else if (TREE_CODE (member) == FIELD_DECL)
+ {
+ /* Ignore the nameless fields that are used to skip bits but handle
+ C++ anonymous unions and structs. */
+ if (DECL_NAME (member) != NULL_TREE
+ || TREE_CODE (TREE_TYPE (member)) == UNION_TYPE
+ || TREE_CODE (TREE_TYPE (member)) == RECORD_TYPE)
+ {
+ gen_type_die (member_declared_type (member), type_die);
+ gen_field_die (member, type_die);
+ }
+ }
else
- gen_variable_die (member, lookup_type_die (type));
+ gen_variable_die (member, type_die);
pop_decl_scope ();
}
@@ -12435,7 +12546,7 @@ is_redundant_typedef (tree decl)
return 0;
}
-/* Returns the DIE for decl or aborts. */
+/* Returns the DIE for decl or else. */
static dw_die_ref
force_decl_die (tree decl)
@@ -12488,8 +12599,7 @@ force_decl_die (tree decl)
gcc_unreachable ();
}
- /* See if we can find the die for this deci now.
- If not then abort. */
+ /* We should be able to find the die for this decl now. */
if (!decl_die)
decl_die = lookup_decl_die (decl);
gcc_assert (decl_die);
@@ -12498,7 +12608,7 @@ force_decl_die (tree decl)
return decl_die;
}
-/* Returns the DIE for decl or aborts. */
+/* Returns the DIE for decl or else. */
static dw_die_ref
force_type_die (tree type)
@@ -12553,6 +12663,12 @@ declare_in_namespace (tree thing, dw_die_ref context_die)
if (debug_info_level <= DINFO_LEVEL_TERSE)
return;
+ /* If this decl is from an inlined function, then don't try to emit it in its
+ namespace, as we will get confused. It would have already been emitted
+ when the abstract instance of the inline function was emitted anyways. */
+ if (DECL_P (thing) && DECL_ABSTRACT_ORIGIN (thing))
+ return;
+
ns_context = setup_namespace_context (thing, context_die);
if (ns_context != context_die)
@@ -12840,7 +12956,29 @@ dwarf2out_imported_module_or_decl (tree decl, tree context)
if (TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == CONST_DECL)
at_import_die = force_type_die (TREE_TYPE (decl));
else
- at_import_die = force_decl_die (decl);
+ {
+ at_import_die = lookup_decl_die (decl);
+ if (!at_import_die)
+ {
+ /* If we're trying to avoid duplicate debug info, we may not have
+ emitted the member decl for this field. Emit it now. */
+ if (TREE_CODE (decl) == FIELD_DECL)
+ {
+ tree type = DECL_CONTEXT (decl);
+ dw_die_ref type_context_die;
+
+ if (TYPE_CONTEXT (type))
+ if (TYPE_P (TYPE_CONTEXT (type)))
+ type_context_die = force_type_die (TYPE_CONTEXT (type));
+ else
+ type_context_die = force_decl_die (TYPE_CONTEXT (type));
+ else
+ type_context_die = comp_unit_die;
+ gen_type_die_for_member (type, decl, type_context_die);
+ }
+ at_import_die = force_decl_die (decl);
+ }
+ }
/* OK, now we have DIEs for decl as well as scope. Emit imported die. */
if (TREE_CODE (decl) == NAMESPACE_DECL)
@@ -13795,11 +13933,10 @@ dwarf2out_finish (const char *filename)
output_ranges ();
}
- /* Have to end the primary source file. */
+ /* Have to end the macro section. */
if (debug_info_level >= DINFO_LEVEL_VERBOSE)
{
named_section_flags (DEBUG_MACINFO_SECTION, SECTION_DEBUG);
- dw2_asm_output_data (1, DW_MACINFO_end_file, "End file");
dw2_asm_output_data (1, 0, "End compilation unit");
}
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 46d9183b92d..37bd66587d8 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1533,7 +1533,12 @@ set_mem_attributes_minus_bitpos (rtx ref, tree t, int objectp,
if (base && DECL_P (base)
&& TREE_READONLY (base)
&& (TREE_STATIC (base) || DECL_EXTERNAL (base)))
- MEM_READONLY_P (ref) = 1;
+ {
+ tree base_type = TREE_TYPE (base);
+ gcc_assert (!(base_type && TYPE_NEEDS_CONSTRUCTING (base_type))
+ || DECL_ARTIFICIAL (base));
+ MEM_READONLY_P (ref) = 1;
+ }
if (TREE_THIS_VOLATILE (t))
MEM_VOLATILE_P (ref) = 1;
diff --git a/gcc/except.c b/gcc/except.c
index 56bc2d79199..b2e4188d957 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1,6 +1,6 @@
/* Implements exception handling.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Mike Stump <mrs@cygnus.com>.
This file is part of GCC.
@@ -3248,6 +3248,7 @@ output_function_exception_table (void)
#ifdef TARGET_UNWIND_INFO
/* TODO: Move this into target file. */
+ assemble_external_libcall (eh_personality_libfunc);
fputs ("\t.personality\t", asm_out_file);
output_addr_const (asm_out_file, eh_personality_libfunc);
fputs ("\n\t.handlerdata\n", asm_out_file);
diff --git a/gcc/explow.c b/gcc/explow.c
index c1cd34cddc8..060fe063846 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -580,7 +580,22 @@ copy_to_mode_reg (enum machine_mode mode, rtx x)
gcc_assert (GET_MODE (x) == mode || GET_MODE (x) == VOIDmode);
if (x != temp)
+ /* APPLE LOCAL begin Don't assign PARALLEL pattern to psuedo register */
+ {
+ tree exp = (current_function_decl != NULL_TREE) ?
+ DECL_RESULT (current_function_decl) : NULL_TREE;
+ if (exp != NULL_TREE && DECL_RTL_IF_SET (exp) == x
+ && GET_CODE (x) == PARALLEL)
+ {
+ tree type = TREE_TYPE (exp);
+ rtx memloc = assign_temp (type, 1, 1, 1);
+ memloc = validize_mem (memloc);
+ emit_group_store (memloc, x, type, int_size_in_bytes (type));
+ x = memloc;
+ }
emit_move_insn (temp, x);
+ }
+ /* APPLE LOCAL end Don't assign PARALLEL pattern to psuedo register */
return temp;
}
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 49b1faa77cf..e9142745853 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -145,7 +145,8 @@ init_expmed (void)
memset (&all, 0, sizeof all);
PUT_CODE (&all.reg, REG);
- REGNO (&all.reg) = 10000;
+ /* Avoid using hard regs in ways which may be unsupported. */
+ REGNO (&all.reg) = LAST_VIRTUAL_REGISTER + 1;
PUT_CODE (&all.plus, PLUS);
XEXP (&all.plus, 0) = &all.reg;
@@ -669,7 +670,15 @@ store_bit_field (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
/* Fetch that unit, store the bitfield in it, then store
the unit. */
tempreg = copy_to_reg (op0);
- store_bit_field (tempreg, bitsize, bitpos, fieldmode, orig_value);
+ /* APPLE LOCAL begin do not use float fieldmode */
+ /* If value was float, we munged it to be int above, so it
+ is never appropriate to use a float fieldmode here. */
+ store_bit_field (tempreg, bitsize, bitpos,
+ (GET_MODE_CLASS (fieldmode) != MODE_INT
+ && GET_MODE_CLASS (fieldmode) != MODE_PARTIAL_INT)
+ ? GET_MODE (orig_value) : fieldmode,
+ orig_value);
+ /* APPLE LOCAL end do not use float fieldmode */
emit_move_insn (op0, tempreg);
return value;
}
@@ -2231,9 +2240,8 @@ expand_shift (enum tree_code code, enum machine_mode mode, rtx shifted,
tree type = TREE_TYPE (amount);
tree new_amount = make_tree (type, op1);
tree other_amount
- = fold (build2 (MINUS_EXPR, type, convert
- (type, build_int_cst
- (NULL_TREE, GET_MODE_BITSIZE (mode))),
+ = fold (build2 (MINUS_EXPR, type,
+ build_int_cst (type, GET_MODE_BITSIZE (mode)),
amount));
shifted = force_reg (mode, shifted);
@@ -4871,17 +4879,15 @@ make_tree (tree type, rtx x)
case LSHIFTRT:
t = lang_hooks.types.unsigned_type (type);
- return fold (convert (type,
- build2 (RSHIFT_EXPR, t,
- make_tree (t, XEXP (x, 0)),
- make_tree (type, XEXP (x, 1)))));
+ return fold_convert (type, build2 (RSHIFT_EXPR, t,
+ make_tree (t, XEXP (x, 0)),
+ make_tree (type, XEXP (x, 1))));
case ASHIFTRT:
t = lang_hooks.types.signed_type (type);
- return fold (convert (type,
- build2 (RSHIFT_EXPR, t,
- make_tree (t, XEXP (x, 0)),
- make_tree (type, XEXP (x, 1)))));
+ return fold_convert (type, build2 (RSHIFT_EXPR, t,
+ make_tree (t, XEXP (x, 0)),
+ make_tree (type, XEXP (x, 1))));
case DIV:
if (TREE_CODE (type) != REAL_TYPE)
@@ -4889,22 +4895,20 @@ make_tree (tree type, rtx x)
else
t = type;
- return fold (convert (type,
- build2 (TRUNC_DIV_EXPR, t,
- make_tree (t, XEXP (x, 0)),
- make_tree (t, XEXP (x, 1)))));
+ return fold_convert (type, build2 (TRUNC_DIV_EXPR, t,
+ make_tree (t, XEXP (x, 0)),
+ make_tree (t, XEXP (x, 1))));
case UDIV:
t = lang_hooks.types.unsigned_type (type);
- return fold (convert (type,
- build2 (TRUNC_DIV_EXPR, t,
- make_tree (t, XEXP (x, 0)),
- make_tree (t, XEXP (x, 1)))));
+ return fold_convert (type, build2 (TRUNC_DIV_EXPR, t,
+ make_tree (t, XEXP (x, 0)),
+ make_tree (t, XEXP (x, 1))));
case SIGN_EXTEND:
case ZERO_EXTEND:
t = lang_hooks.types.type_for_mode (GET_MODE (XEXP (x, 0)),
GET_CODE (x) == ZERO_EXTEND);
- return fold (convert (type, make_tree (t, XEXP (x, 0))));
+ return fold_convert (type, make_tree (t, XEXP (x, 0)));
default:
t = build_decl (VAR_DECL, NULL_TREE, type);
diff --git a/gcc/expr.c b/gcc/expr.c
index ab7cf930d8b..136019432b3 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -155,7 +155,8 @@ static void expand_operands (tree, tree, rtx, rtx*, rtx*,
static rtx reduce_to_bit_field_precision (rtx, rtx, tree);
static rtx do_store_flag (tree, rtx, enum machine_mode, int);
#ifdef PUSH_ROUNDING
-static void emit_single_push_insn (enum machine_mode, rtx, tree);
+/* APPLE LOCAL radar 4087332 */
+static void emit_single_push_insn (enum machine_mode, rtx, tree, rtx);
#endif
static void do_tablejump (rtx, enum machine_mode, rtx, rtx, rtx);
static rtx const_vector_from_tree (tree);
@@ -1084,7 +1085,8 @@ move_by_pieces_1 (rtx (*genfun) (rtx, ...), enum machine_mode mode,
else
{
#ifdef PUSH_ROUNDING
- emit_single_push_insn (mode, from1, NULL);
+ /* APPLE LOCAL radar 4087332 */
+ emit_single_push_insn (mode, from1, NULL, NULL_RTX);
#else
gcc_unreachable ();
#endif
@@ -2877,19 +2879,14 @@ emit_move_complex (enum machine_mode mode, rtx x, rtx y)
if (push_operand (x, mode))
return emit_move_complex_push (mode, x, y);
- /* For memory to memory moves, optimal behavior can be had with the
- existing block move logic. */
- if (MEM_P (x) && MEM_P (y))
- {
- emit_block_move (x, y, GEN_INT (GET_MODE_SIZE (mode)),
- BLOCK_OP_NO_LIBCALL);
- return get_last_insn ();
- }
-
/* See if we can coerce the target into moving both values at once. */
+ /* Move floating point as parts. */
+ if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
+ && mov_optab->handlers[GET_MODE_INNER (mode)].insn_code != CODE_FOR_nothing)
+ try_int = false;
/* Not possible if the values are inherently not adjacent. */
- if (GET_CODE (x) == CONCAT || GET_CODE (y) == CONCAT)
+ else if (GET_CODE (x) == CONCAT || GET_CODE (y) == CONCAT)
try_int = false;
/* Is possible if both are registers (or subregs of registers). */
else if (register_operand (x, mode) && register_operand (y, mode))
@@ -2907,7 +2904,18 @@ emit_move_complex (enum machine_mode mode, rtx x, rtx y)
if (try_int)
{
- rtx ret = emit_move_via_integer (mode, x, y);
+ rtx ret;
+
+ /* For memory to memory moves, optimal behavior can be had with the
+ existing block move logic. */
+ if (MEM_P (x) && MEM_P (y))
+ {
+ emit_block_move (x, y, GEN_INT (GET_MODE_SIZE (mode)),
+ BLOCK_OP_NO_LIBCALL);
+ return get_last_insn ();
+ }
+
+ ret = emit_move_via_integer (mode, x, y);
if (ret)
return ret;
}
@@ -3243,7 +3251,8 @@ push_block (rtx size, int extra, int below)
/* Emit single push insn. */
static void
-emit_single_push_insn (enum machine_mode mode, rtx x, tree type)
+/* APPLE LOCAL radar 4087332 */
+emit_single_push_insn (enum machine_mode mode, rtx x, tree type, rtx args_so_far)
{
rtx dest_addr;
unsigned rounded_size = PUSH_ROUNDING (GET_MODE_SIZE (mode));
@@ -3252,6 +3261,22 @@ emit_single_push_insn (enum machine_mode mode, rtx x, tree type)
insn_operand_predicate_fn pred;
stack_pointer_delta += PUSH_ROUNDING (GET_MODE_SIZE (mode));
+ /* APPLE LOCAL begin radar 4087332 */
+ if (args_so_far != NULL_RTX && GET_CODE (args_so_far) == CONST_INT)
+ {
+ int offset = INTVAL (args_so_far);
+ unsigned int unit_stack_boundary = cfun->preferred_stack_boundary / BITS_PER_UNIT;
+ if (!(offset % unit_stack_boundary) && (stack_pointer_delta % unit_stack_boundary))
+ {
+ /* argument must be aligned on stack boundary, but it is not.
+ align 'sp' before the push. */
+ int delta = unit_stack_boundary - (stack_pointer_delta % unit_stack_boundary);
+ expand_simple_binop (Pmode, PLUS, stack_pointer_rtx,
+ GEN_INT (-delta), stack_pointer_rtx, 1, OPTAB_DIRECT);
+ stack_pointer_delta += delta;
+ }
+ }
+ /* APPLE LOCAL end radar 4087332 */
/* If there is push pattern, use it. Otherwise try old way of throwing
MEM representing push operation to move expander. */
icode = push_optab->handlers[(int) mode].insn_code;
@@ -3514,7 +3539,8 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size,
int not_stack;
/* # bytes of start of argument
that we must make space for but need not store. */
- int offset = partial % (PARM_BOUNDARY / BITS_PER_WORD);
+ /* APPLE LOCAL mainline 2005-04-21 */
+ int offset = partial % (PARM_BOUNDARY / BITS_PER_UNIT);
int args_offset = INTVAL (args_so_far);
int skip;
@@ -3531,9 +3557,12 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size,
if (args_addr == 0)
offset = 0;
+ /* APPLE LOCAL begin mainline 2005-04-21 */
/* Now NOT_STACK gets the number of words that we don't need to
- allocate on the stack. */
+ allocate on the stack. Convert OFFSET to words too. */
not_stack = (partial - offset) / UNITS_PER_WORD;
+ offset /= UNITS_PER_WORD;
+ /* APPLE LOCAL end mainline 2005-04-21 */
/* If the partial register-part of the arg counts in its stack size,
skip the part of stack space corresponding to the registers.
@@ -3580,7 +3609,8 @@ emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size,
#ifdef PUSH_ROUNDING
if (args_addr == 0 && PUSH_ARGS)
- emit_single_push_insn (mode, x, type);
+ /* APPLE LOCAL radar 4087332 */
+ emit_single_push_insn (mode, x, type, args_so_far);
else
#endif
{
diff --git a/gcc/final.c b/gcc/final.c
index bf5771aebfb..2adcd46487c 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1,6 +1,7 @@
/* Convert RTL to assembler code and output it, for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -835,7 +836,7 @@ shorten_branches (rtx first ATTRIBUTE_UNUSED)
max_log = log;
max_skip = LABEL_ALIGN_MAX_SKIP;
}
- next = NEXT_INSN (insn);
+ next = next_nonnote_insn (insn);
/* ADDR_VECs only take room if read-only data goes into the text
section. */
if (JUMP_TABLES_IN_TEXT_SECTION || !HAVE_READONLY_DATA_SECTION)
@@ -1334,7 +1335,8 @@ asm_insn_count (rtx body)
void
final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file,
- int optimize ATTRIBUTE_UNUSED)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ int optimizing ATTRIBUTE_UNUSED)
{
block_depth = 0;
@@ -1501,7 +1503,8 @@ final_end_function (void)
Prescanning is done only on certain machines. */
void
-final (rtx first, FILE *file, int optimize, int prescan)
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+final (rtx first, FILE *file, int optimizing, int prescan)
{
rtx insn;
int max_uid = 0;
@@ -1543,7 +1546,8 @@ final (rtx first, FILE *file, int optimize, int prescan)
#ifdef HAVE_cc0
/* If CC tracking across branches is enabled, record the insn which
jumps to each branch only reached from one place. */
- if (optimize && JUMP_P (insn))
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (optimizing && JUMP_P (insn))
{
rtx lab = JUMP_LABEL (insn);
if (lab && LABEL_NUSES (lab) == 1)
@@ -1573,7 +1577,8 @@ final (rtx first, FILE *file, int optimize, int prescan)
insn_current_address = INSN_ADDRESSES (INSN_UID (insn));
#endif /* HAVE_ATTR_length */
- insn = final_scan_insn (insn, file, optimize, prescan, 0, &seen);
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ insn = final_scan_insn (insn, file, optimizing, prescan, 0, &seen);
}
}
@@ -1670,13 +1675,15 @@ scan_ahead_for_unlikely_executed_note (rtx insn)
first. */
rtx
-final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+final_scan_insn (rtx insn, FILE *file, int optimizing ATTRIBUTE_UNUSED,
int prescan, int nopeepholes ATTRIBUTE_UNUSED,
int *seen)
{
#ifdef HAVE_cc0
rtx set;
#endif
+ rtx next;
insn_counter++;
@@ -1882,7 +1889,8 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
/* Disabled because some insns set cc_status in the C output code
and NOTICE_UPDATE_CC alone can set incorrect status. */
- if (0 /* optimize && LABEL_NUSES (insn) == 1*/)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (0 /* optimizing && LABEL_NUSES (insn) == 1*/)
{
rtx jump = LABEL_REFS (insn);
rtx barrier = prev_nonnote_insn (insn);
@@ -1932,10 +1940,11 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
fputs (ASM_APP_OFF, file);
app_on = 0;
}
- if (NEXT_INSN (insn) != 0
- && JUMP_P (NEXT_INSN (insn)))
+
+ next = next_nonnote_insn (insn);
+ if (next != 0 && JUMP_P (next))
{
- rtx nextbody = PATTERN (NEXT_INSN (insn));
+ rtx nextbody = PATTERN (next);
/* If this label is followed by a jump-table,
make sure we put the label in the read-only section. Also
@@ -1956,7 +1965,7 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
targetm.asm_out.function_rodata_section (current_function_decl);
#ifdef ADDR_VEC_ALIGN
- log_align = ADDR_VEC_ALIGN (NEXT_INSN (insn));
+ log_align = ADDR_VEC_ALIGN (next);
#else
log_align = exact_log2 (BIGGEST_ALIGNMENT / BITS_PER_UNIT);
#endif
@@ -1967,7 +1976,7 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
#ifdef ASM_OUTPUT_CASE_LABEL
ASM_OUTPUT_CASE_LABEL (file, "L", CODE_LABEL_NUMBER (insn),
- NEXT_INSN (insn));
+ next);
#else
targetm.asm_out.internal_label (file, "L", CODE_LABEL_NUMBER (insn));
#endif
@@ -2022,6 +2031,11 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
if (prescan > 0)
break;
+ if (! JUMP_TABLES_IN_TEXT_SECTION)
+ targetm.asm_out.function_rodata_section (current_function_decl);
+ else
+ function_section (current_function_decl);
+
if (app_on)
{
fputs (ASM_APP_OFF, file);
@@ -2157,7 +2171,6 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
{
/* A delayed-branch sequence */
int i;
- rtx next;
if (prescan > 0)
break;
@@ -2225,7 +2238,8 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
and the next statement should reexamine the variable
to compute the condition codes. */
- if (optimize)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (optimizing)
{
if (set
&& GET_CODE (SET_DEST (set)) == CC0
@@ -2383,7 +2397,8 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
#ifdef HAVE_peephole
/* Do machine-specific peephole optimizations if desired. */
- if (optimize && !flag_no_peephole && !nopeepholes)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (optimizing && !flag_no_peephole && !nopeepholes)
{
rtx next = peephole (insn);
/* When peepholing, if there were notes within the peephole,
@@ -2394,7 +2409,8 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
for (note = NEXT_INSN (insn); note != next;
note = NEXT_INSN (note))
- final_scan_insn (note, file, optimize, prescan, nopeepholes, seen);
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ final_scan_insn (note, file, optimizing, prescan, nopeepholes, seen);
/* In case this is prescan, put the notes
in proper position for later rescan. */
@@ -2632,11 +2648,10 @@ alter_subreg (rtx *xp)
if (new != 0)
*xp = new;
- else
+ else if (REG_P (y))
{
/* Simplify_subreg can't handle some REG cases, but we have to. */
unsigned int regno = subreg_regno (x);
- gcc_assert (REG_P (y));
*xp = gen_rtx_REG_offset (y, GET_MODE (x), regno, SUBREG_BYTE (x));
}
}
diff --git a/gcc/flags.h b/gcc/flags.h
index 695d6228f65..9ad21adf814 100644
--- a/gcc/flags.h
+++ b/gcc/flags.h
@@ -82,14 +82,8 @@ struct visibility_flags
/* Global visibility options. */
extern struct visibility_flags visibility_options;
-/* Nonzero means do optimizations. -opt. */
-
-extern int optimize;
-
-/* Nonzero means optimize for size. -Os. */
-
-extern int optimize_size;
-
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
/* Do print extra warnings (such as for uninitialized variables).
-W/-Wextra. */
@@ -143,12 +137,26 @@ extern int flag_short_enums;
extern int flag_pcc_struct_return;
+/* APPLE LOCAL begin fwritable-strings */
+/* Nonzero for -fwritable-strings:
+ store string constants in data segment and don't uniquize them. */
+
+extern int flag_writable_strings;
+/* APPLE LOCAL end fwritable-strings */
+
/* 0 means straightforward implementation of complex divide acceptable.
1 means wide ranges of inputs must work for complex divide.
2 means C99-like requirements for complex multiply and divide. */
extern int flag_complex_method;
+/* APPLE LOCAL begin -fobey-inline */
+/* Nonzero for -fobey-inline: 'inline' keyword must be obeyed, regardless
+ of codesize. */
+
+extern int flag_obey_inline;
+/* APPLE LOCAL end -fobey-inline */
+
/* Nonzero means that we don't want inlining by virtue of -fno-inline,
not just because the tree inliner turned us off. */
@@ -288,4 +296,38 @@ extern const char *flag_random_seed;
#define HONOR_SIGN_DEPENDENT_ROUNDING(MODE) \
(MODE_HAS_SIGN_DEPENDENT_ROUNDING (MODE) && flag_rounding_math)
+/* APPLE LOCAL begin -fast or -fastf or -fastcp */
+/* Nonzero if we should perform SPEC oriented optimizations for C. */
+extern int flag_fast;
+/* Nonzero if we should perform SPEC oriented optimizations for C that is
+ produced by the NAG Fortan-to-C translator. */
+extern int flag_fastf;
+/* Nonzero if we should perform SPEC oriented optimizations for C++. */
+extern int flag_fastcp;
+/* APPLE LOCAL end -fast or -fastf or -fastcp */
+
+/* APPLE LOCAL begin gdb only used symbols */
+#ifdef DBX_ONLY_USED_SYMBOLS
+/* Nonzero if generating debugger info for used symbols only. */
+extern int flag_debug_only_used_symbols;
+#endif
+/* APPLE LOCAL end gdb only used symbols */
+
+/* APPLE LOCAL begin predictive compilation */
+extern int predictive_compilation;
+/* APPLE LOCAL end predictive compilation */
+
+/* APPLE LOCAL begin disable_typechecking_for_spec_flag */
+extern int disable_typechecking_for_spec_flag;
+/* APPLE LOCAL end disable_typechecking_for_spec_flag */
+
+/* APPLE LOCAL begin Altivec */
+extern int flag_disable_opts_for_faltivec;
+/* APPLE LOCAL end Altivec */
+
+/* APPLE LOCAL begin ss2 */
+extern int flag_pch_file;
+extern int flag_save_repository;
+/* APPLE LOCAL end ss2 */
+
#endif /* ! GCC_FLAGS_H */
diff --git a/gcc/flow.c b/gcc/flow.c
index f356a6ee396..d3850cc9618 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -165,6 +165,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#endif
#endif
+/* This is the maximum number of times we process any given block if the
+ latest loop depth count is smaller than this number. Only used for the
+ failure strategy to avoid infinite loops in calculate_global_regs_live. */
+#define MAX_LIVENESS_ROUNDS 20
+
/* Nonzero if the second flow pass has completed. */
int flow2_completed;
@@ -729,21 +734,10 @@ update_life_info_in_dirty_blocks (enum update_life_extent extent, int prop_flags
sbitmap_zero (update_life_blocks);
FOR_EACH_BB (bb)
{
- if (extent == UPDATE_LIFE_LOCAL)
+ if (bb->flags & BB_DIRTY)
{
- if (bb->flags & BB_DIRTY)
- {
- SET_BIT (update_life_blocks, bb->index);
- n++;
- }
- }
- else
- {
- /* ??? Bootstrap with -march=pentium4 fails to terminate
- with only a partial life update. */
SET_BIT (update_life_blocks, bb->index);
- if (bb->flags & BB_DIRTY)
- n++;
+ n++;
}
}
@@ -823,21 +817,35 @@ delete_noop_moves (void)
void
delete_dead_jumptables (void)
{
- rtx insn, next;
- for (insn = get_insns (); insn; insn = next)
+ basic_block bb;
+
+ /* A dead jump table does not belong to any basic block. Scan insns
+ between two adjacent basic blocks. */
+ FOR_EACH_BB (bb)
{
- next = NEXT_INSN (insn);
- if (LABEL_P (insn)
- && LABEL_NUSES (insn) == LABEL_PRESERVE_P (insn)
- && JUMP_P (next)
- && (GET_CODE (PATTERN (next)) == ADDR_VEC
- || GET_CODE (PATTERN (next)) == ADDR_DIFF_VEC))
+ rtx insn, next;
+
+ for (insn = NEXT_INSN (BB_END (bb));
+ insn && !NOTE_INSN_BASIC_BLOCK_P (insn);
+ insn = next)
{
- if (dump_file)
- fprintf (dump_file, "Dead jumptable %i removed\n", INSN_UID (insn));
- delete_insn (NEXT_INSN (insn));
- delete_insn (insn);
- next = NEXT_INSN (next);
+ next = NEXT_INSN (insn);
+ if (LABEL_P (insn)
+ && LABEL_NUSES (insn) == LABEL_PRESERVE_P (insn)
+ && JUMP_P (next)
+ && (GET_CODE (PATTERN (next)) == ADDR_VEC
+ || GET_CODE (PATTERN (next)) == ADDR_DIFF_VEC))
+ {
+ rtx label = insn, jump = next;
+
+ if (dump_file)
+ fprintf (dump_file, "Dead jumptable %i removed\n",
+ INSN_UID (insn));
+
+ next = NEXT_INSN (next);
+ delete_insn (jump);
+ delete_insn (label);
+ }
}
}
}
@@ -1010,6 +1018,9 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
{
basic_block *queue, *qhead, *qtail, *qend, bb;
regset tmp, new_live_at_end, invalidated_by_call;
+ regset registers_made_dead;
+ bool failure_strategy_required = false;
+ int *block_accesses;
/* The registers that are modified within this in block. */
regset *local_sets;
@@ -1030,6 +1041,7 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
tmp = ALLOC_REG_SET (&reg_obstack);
new_live_at_end = ALLOC_REG_SET (&reg_obstack);
invalidated_by_call = ALLOC_REG_SET (&reg_obstack);
+ registers_made_dead = ALLOC_REG_SET (&reg_obstack);
/* Inconveniently, this is only readily available in hard reg set form. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; ++i)
@@ -1070,6 +1082,8 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
}
}
+ block_accesses = xcalloc (last_basic_block, sizeof (int));
+
/* We clean aux when we remove the initially-enqueued bbs, but we
don't enqueue ENTRY and EXIT initially, so clean them upfront and
unconditionally. */
@@ -1095,7 +1109,41 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
from GLOBAL_LIVE_AT_START. In the former case, the register
could go away only if it disappeared from GLOBAL_LIVE_AT_START
for one of the successor blocks. By induction, that cannot
- occur. */
+ occur.
+
+ ??? This reasoning doesn't work if we start from non-empty initial
+ GLOBAL_LIVE_AT_START sets. And there are actually two problems:
+ 1) Updating may not terminate (endless oscillation).
+ 2) Even if it does (and it usually does), the resulting information
+ may be inaccurate. Consider for example the following case:
+
+ a = ...;
+ while (...) {...} -- 'a' not mentioned at all
+ ... = a;
+
+ If the use of 'a' is deleted between two calculations of liveness
+ information and the initial sets are not cleared, the information
+ about a's liveness will get stuck inside the loop and the set will
+ appear not to be dead.
+
+ We do not attempt to solve 2) -- the information is conservatively
+ correct (i.e. we never claim that something live is dead) and the
+ amount of optimization opportunities missed due to this problem is
+ not significant.
+
+ 1) is more serious. In order to fix it, we monitor the number of times
+ each block is processed. Once one of the blocks has been processed more
+ times than the maximum number of rounds, we use the following strategy:
+ When a register disappears from one of the sets, we add it to a MAKE_DEAD
+ set, remove all registers in this set from all GLOBAL_LIVE_AT_* sets and
+ add the blocks with changed sets into the queue. Thus we are guaranteed
+ to terminate (the worst case corresponds to all registers in MADE_DEAD,
+ in which case the original reasoning above is valid), but in general we
+ only fix up a few offending registers.
+
+ The maximum number of rounds for computing liveness is the largest of
+ MAX_LIVENESS_ROUNDS and the latest loop depth count for this function. */
+
while (qhead != qtail)
{
int rescan, changed;
@@ -1108,6 +1156,17 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
qhead = queue;
bb->aux = NULL;
+ /* Should we start using the failure strategy? */
+ if (bb != ENTRY_BLOCK_PTR)
+ {
+ int max_liveness_rounds =
+ MAX (MAX_LIVENESS_ROUNDS, cfun->max_loop_depth);
+
+ block_accesses[bb->index]++;
+ if (block_accesses[bb->index] > max_liveness_rounds)
+ failure_strategy_required = true;
+ }
+
/* Begin by propagating live_at_start from the successor blocks. */
CLEAR_REG_SET (new_live_at_end);
@@ -1263,6 +1322,62 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
if (REG_SET_EQUAL_P (bb->global_live_at_start, new_live_at_end))
continue;
+ if (failure_strategy_required)
+ {
+ /* Get the list of registers that were removed from the
+ bb->global_live_at_start set. */
+ bitmap_and_compl (tmp, bb->global_live_at_start,
+ new_live_at_end);
+ if (!bitmap_empty_p (tmp))
+ {
+ bool pbb_changed;
+ basic_block pbb;
+
+ /* It should not happen that one of registers we have
+ removed last time is disappears again before any other
+ register does. */
+ pbb_changed = bitmap_ior_into (registers_made_dead, tmp);
+ gcc_assert (pbb_changed);
+
+ /* Now remove the registers from all sets. */
+ FOR_EACH_BB (pbb)
+ {
+ pbb_changed = false;
+
+ pbb_changed
+ |= bitmap_and_compl_into (pbb->global_live_at_start,
+ registers_made_dead);
+ pbb_changed
+ |= bitmap_and_compl_into (pbb->global_live_at_end,
+ registers_made_dead);
+ if (!pbb_changed)
+ continue;
+
+ /* Note the (possible) change. */
+ if (blocks_out)
+ SET_BIT (blocks_out, pbb->index);
+
+ /* Makes sure to really rescan the block. */
+ if (local_sets[pbb->index - (INVALID_BLOCK + 1)])
+ {
+ FREE_REG_SET (local_sets[pbb->index - (INVALID_BLOCK + 1)]);
+ FREE_REG_SET (cond_local_sets[pbb->index - (INVALID_BLOCK + 1)]);
+ local_sets[pbb->index - (INVALID_BLOCK + 1)] = 0;
+ }
+
+ /* Add it to the queue. */
+ if (pbb->aux == NULL)
+ {
+ *qtail++ = pbb;
+ if (qtail == qend)
+ qtail = queue;
+ pbb->aux = pbb;
+ }
+ }
+ continue;
+ }
+ } /* end of failure_strategy_required */
+
COPY_REG_SET (bb->global_live_at_start, new_live_at_end);
}
@@ -1284,6 +1399,7 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
FREE_REG_SET (tmp);
FREE_REG_SET (new_live_at_end);
FREE_REG_SET (invalidated_by_call);
+ FREE_REG_SET (registers_made_dead);
if (blocks_out)
{
@@ -1303,6 +1419,7 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
}
}
+ free (block_accesses);
free (queue);
free (cond_local_sets);
free (local_sets);
@@ -1826,12 +1943,12 @@ init_propagate_block_info (basic_block bb, regset live, regset local_set,
else
pbi->reg_next_use = NULL;
- pbi->new_set = BITMAP_XMALLOC ();
+ pbi->new_set = BITMAP_ALLOC (NULL);
#ifdef HAVE_conditional_execution
pbi->reg_cond_dead = splay_tree_new (splay_tree_compare_ints, NULL,
free_reg_cond_life_info);
- pbi->reg_cond_reg = BITMAP_XMALLOC ();
+ pbi->reg_cond_reg = BITMAP_ALLOC (NULL);
/* If this block ends in a conditional branch, for each register
live from one side of the branch and not the other, record the
@@ -1973,11 +2090,11 @@ free_propagate_block_info (struct propagate_block_info *pbi)
{
free_EXPR_LIST_list (&pbi->mem_set_list);
- BITMAP_XFREE (pbi->new_set);
+ BITMAP_FREE (pbi->new_set);
#ifdef HAVE_conditional_execution
splay_tree_delete (pbi->reg_cond_dead);
- BITMAP_XFREE (pbi->reg_cond_reg);
+ BITMAP_FREE (pbi->reg_cond_reg);
#endif
if (pbi->flags & PROP_REG_INFO)
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index ef31a32f54e..47088743a71 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -2004,16 +2004,12 @@ fold_convert (tree type, tree arg)
}
}
-/* Return an expr equal to X but certainly not valid as an lvalue. */
+/* Return false if expr can be assumed not to be an value, true
+ otherwise. */
-tree
-non_lvalue (tree x)
+static bool
+maybe_lvalue_p (tree x)
{
- /* While we are in GIMPLE, NON_LVALUE_EXPR doesn't mean anything to
- us. */
- if (in_gimple_form)
- return x;
-
/* We only need to wrap lvalue tree codes. */
switch (TREE_CODE (x))
{
@@ -2053,8 +2049,24 @@ non_lvalue (tree x)
/* Assume the worst for front-end tree codes. */
if ((int)TREE_CODE (x) >= NUM_TREE_CODES)
break;
- return x;
+ return false;
}
+
+ return true;
+}
+
+/* Return an expr equal to X but certainly not valid as an lvalue. */
+
+tree
+non_lvalue (tree x)
+{
+ /* While we are in GIMPLE, NON_LVALUE_EXPR doesn't mean anything to
+ us. */
+ if (in_gimple_form)
+ return x;
+
+ if (! maybe_lvalue_p (x))
+ return x;
return build1 (NON_LVALUE_EXPR, TREE_TYPE (x), x);
}
@@ -2936,8 +2948,7 @@ invert_truthvalue (tree arg)
switch (code)
{
case INTEGER_CST:
- return fold_convert (type,
- build_int_cst (NULL_TREE, integer_zerop (arg)));
+ return constant_boolean_node (integer_zerop (arg), type);
case TRUTH_AND_EXPR:
return build2 (TRUTH_OR_EXPR, type,
@@ -4267,7 +4278,13 @@ fold_cond_expr_with_comparison (tree type, tree arg0, tree arg1, tree arg2)
a number and A is not. The conditions in the original
expressions will be false, so all four give B. The min()
and max() versions would give a NaN instead. */
- if (operand_equal_for_comparison_p (arg01, arg2, arg00))
+ if (operand_equal_for_comparison_p (arg01, arg2, arg00)
+ /* Avoid these transformations if the COND_EXPR may be used
+ as an lvalue in the C++ front-end. PR c++/19199. */
+ && (in_gimple_form
+ || strcmp (lang_hooks.name, "GNU C++") != 0
+ || ! maybe_lvalue_p (arg1)
+ || ! maybe_lvalue_p (arg2)))
{
tree comp_op0 = arg00;
tree comp_op1 = arg01;
@@ -5382,9 +5399,6 @@ constant_boolean_node (int value, tree type)
return value ? integer_one_node : integer_zero_node;
else if (type == boolean_type_node)
return value ? boolean_true_node : boolean_false_node;
- else if (TREE_CODE (type) == BOOLEAN_TYPE)
- return lang_hooks.truthvalue_conversion (value ? integer_one_node
- : integer_zero_node);
else
return build_int_cst (type, value);
}
@@ -6074,6 +6088,15 @@ fold_widened_comparison (enum tree_code code, tree type, tree arg0, tree arg1)
return NULL_TREE;
shorter_type = TREE_TYPE (arg0_unw);
+#ifdef HAVE_canonicalize_funcptr_for_compare
+ /* Disable this optimization if we're casting a function pointer
+ type on targets that require function pointer canonicalization. */
+ if (HAVE_canonicalize_funcptr_for_compare
+ && TREE_CODE (shorter_type) == POINTER_TYPE
+ && TREE_CODE (TREE_TYPE (shorter_type)) == FUNCTION_TYPE)
+ return NULL_TREE;
+#endif
+
if (TYPE_PRECISION (TREE_TYPE (arg0)) <= TYPE_PRECISION (shorter_type))
return NULL_TREE;
@@ -6148,18 +6171,29 @@ fold_sign_changed_comparison (enum tree_code code, tree type,
tree arg0_inner, tmp;
tree inner_type, outer_type;
- if (TREE_CODE (arg0) != NOP_EXPR)
+ if (TREE_CODE (arg0) != NOP_EXPR
+ && TREE_CODE (arg0) != CONVERT_EXPR)
return NULL_TREE;
outer_type = TREE_TYPE (arg0);
arg0_inner = TREE_OPERAND (arg0, 0);
inner_type = TREE_TYPE (arg0_inner);
+#ifdef HAVE_canonicalize_funcptr_for_compare
+ /* Disable this optimization if we're casting a function pointer
+ type on targets that require function pointer canonicalization. */
+ if (HAVE_canonicalize_funcptr_for_compare
+ && TREE_CODE (inner_type) == POINTER_TYPE
+ && TREE_CODE (TREE_TYPE (inner_type)) == FUNCTION_TYPE)
+ return NULL_TREE;
+#endif
+
if (TYPE_PRECISION (inner_type) != TYPE_PRECISION (outer_type))
return NULL_TREE;
if (TREE_CODE (arg1) != INTEGER_CST
- && !(TREE_CODE (arg1) == NOP_EXPR
+ && !((TREE_CODE (arg1) == NOP_EXPR
+ || TREE_CODE (arg1) == CONVERT_EXPR)
&& TREE_TYPE (TREE_OPERAND (arg1, 0)) == inner_type))
return NULL_TREE;
@@ -6180,7 +6214,7 @@ fold_sign_changed_comparison (enum tree_code code, tree type,
else
arg1 = fold_convert (inner_type, arg1);
- return fold (build (code, type, arg0_inner, arg1));
+ return fold (build2 (code, type, arg0_inner, arg1));
}
/* Tries to replace &a[idx] CODE s * delta with &a[idx CODE delta], if s is
@@ -6340,26 +6374,12 @@ fold_complex_add (tree type, tree ac, tree bc, enum tree_code code)
/* Perform some simplifications of complex multiplication when one or more
of the components are constants or zeros. Return non-null if successful. */
-static tree
-fold_complex_mult (tree type, tree ac, tree bc)
+tree
+fold_complex_mult_parts (tree type, tree ar, tree ai, tree br, tree bi)
{
- tree ar, ai, br, bi, rr, ri, inner_type, zero;
+ tree rr, ri, inner_type, zero;
bool ar0, ai0, br0, bi0, bi1;
- if (TREE_CODE (ac) == COMPLEX_EXPR)
- ar = TREE_OPERAND (ac, 0), ai = TREE_OPERAND (ac, 1);
- else if (TREE_CODE (ac) == COMPLEX_CST)
- ar = TREE_REALPART (ac), ai = TREE_IMAGPART (ac);
- else
- return NULL;
-
- if (TREE_CODE (bc) == COMPLEX_EXPR)
- br = TREE_OPERAND (bc, 0), bi = TREE_OPERAND (bc, 1);
- else if (TREE_CODE (bc) == COMPLEX_CST)
- br = TREE_REALPART (bc), bi = TREE_IMAGPART (bc);
- else
- return NULL;
-
inner_type = TREE_TYPE (type);
zero = NULL;
@@ -6436,7 +6456,7 @@ fold_complex_mult (tree type, tree ac, tree bc)
}
else if (ar0 && br0)
{
- rr = fold (build2 (MULT_EXPR, inner_type, ai, br));
+ rr = fold (build2 (MULT_EXPR, inner_type, ai, bi));
rr = fold (build1 (NEGATE_EXPR, inner_type, rr));
ri = zero;
}
@@ -6468,6 +6488,152 @@ fold_complex_mult (tree type, tree ac, tree bc)
return fold (build2 (COMPLEX_EXPR, type, rr, ri));
}
+static tree
+fold_complex_mult (tree type, tree ac, tree bc)
+{
+ tree ar, ai, br, bi;
+
+ if (TREE_CODE (ac) == COMPLEX_EXPR)
+ ar = TREE_OPERAND (ac, 0), ai = TREE_OPERAND (ac, 1);
+ else if (TREE_CODE (ac) == COMPLEX_CST)
+ ar = TREE_REALPART (ac), ai = TREE_IMAGPART (ac);
+ else
+ return NULL;
+
+ if (TREE_CODE (bc) == COMPLEX_EXPR)
+ br = TREE_OPERAND (bc, 0), bi = TREE_OPERAND (bc, 1);
+ else if (TREE_CODE (bc) == COMPLEX_CST)
+ br = TREE_REALPART (bc), bi = TREE_IMAGPART (bc);
+ else
+ return NULL;
+
+ return fold_complex_mult_parts (type, ar, ai, br, bi);
+}
+
+/* Perform some simplifications of complex division when one or more of
+ the components are constants or zeros. Return non-null if successful. */
+
+tree
+fold_complex_div_parts (tree type, tree ar, tree ai, tree br, tree bi,
+ enum tree_code code)
+{
+ tree rr, ri, inner_type, zero;
+ bool ar0, ai0, br0, bi0, bi1;
+
+ inner_type = TREE_TYPE (type);
+ zero = NULL;
+
+ if (SCALAR_FLOAT_TYPE_P (inner_type))
+ {
+ ar0 = ai0 = br0 = bi0 = bi1 = false;
+
+ /* We're only interested in +0.0 here, thus we don't use real_zerop. */
+
+ if (TREE_CODE (ar) == REAL_CST
+ && REAL_VALUES_IDENTICAL (TREE_REAL_CST (ar), dconst0))
+ ar0 = true, zero = ar;
+
+ if (TREE_CODE (ai) == REAL_CST
+ && REAL_VALUES_IDENTICAL (TREE_REAL_CST (ai), dconst0))
+ ai0 = true, zero = ai;
+
+ if (TREE_CODE (br) == REAL_CST
+ && REAL_VALUES_IDENTICAL (TREE_REAL_CST (br), dconst0))
+ br0 = true, zero = br;
+
+ if (TREE_CODE (bi) == REAL_CST)
+ {
+ if (REAL_VALUES_IDENTICAL (TREE_REAL_CST (bi), dconst0))
+ bi0 = true, zero = bi;
+ else if (REAL_VALUES_IDENTICAL (TREE_REAL_CST (bi), dconst1))
+ bi1 = true;
+ }
+ }
+ else
+ {
+ ar0 = integer_zerop (ar);
+ if (ar0)
+ zero = ar;
+ ai0 = integer_zerop (ai);
+ if (ai0)
+ zero = ai;
+ br0 = integer_zerop (br);
+ if (br0)
+ zero = br;
+ bi0 = integer_zerop (bi);
+ if (bi0)
+ {
+ zero = bi;
+ bi1 = false;
+ }
+ else
+ bi1 = integer_onep (bi);
+ }
+
+ /* We won't optimize anything below unless something is zero. */
+ if (zero == NULL)
+ return NULL;
+
+ if (ai0 && bi0)
+ {
+ rr = fold (build2 (code, inner_type, ar, br));
+ ri = zero;
+ }
+ else if (ai0 && br0)
+ {
+ rr = zero;
+ ri = fold (build2 (code, inner_type, ar, bi));
+ ri = fold (build1 (NEGATE_EXPR, inner_type, ri));
+ }
+ else if (ar0 && bi0)
+ {
+ rr = zero;
+ ri = fold (build2 (code, inner_type, ai, br));
+ }
+ else if (ar0 && br0)
+ {
+ rr = fold (build2 (code, inner_type, ai, bi));
+ ri = zero;
+ }
+ else if (bi0)
+ {
+ rr = fold (build2 (code, inner_type, ar, br));
+ ri = fold (build2 (code, inner_type, ai, br));
+ }
+ else if (br0)
+ {
+ rr = fold (build2 (code, inner_type, ai, bi));
+ ri = fold (build2 (code, inner_type, ar, bi));
+ ri = fold (build1 (NEGATE_EXPR, inner_type, ri));
+ }
+ else
+ return NULL;
+
+ return fold (build2 (COMPLEX_EXPR, type, rr, ri));
+}
+
+static tree
+fold_complex_div (tree type, tree ac, tree bc, enum tree_code code)
+{
+ tree ar, ai, br, bi;
+
+ if (TREE_CODE (ac) == COMPLEX_EXPR)
+ ar = TREE_OPERAND (ac, 0), ai = TREE_OPERAND (ac, 1);
+ else if (TREE_CODE (ac) == COMPLEX_CST)
+ ar = TREE_REALPART (ac), ai = TREE_IMAGPART (ac);
+ else
+ return NULL;
+
+ if (TREE_CODE (bc) == COMPLEX_EXPR)
+ br = TREE_OPERAND (bc, 0), bi = TREE_OPERAND (bc, 1);
+ else if (TREE_CODE (bc) == COMPLEX_CST)
+ br = TREE_REALPART (bc), bi = TREE_IMAGPART (bc);
+ else
+ return NULL;
+
+ return fold_complex_div_parts (type, ar, ai, br, bi, code);
+}
+
/* Perform constant folding and related simplification of EXPR.
The related simplifications include x*1 => x, x*0 => 0, etc.,
and application of the associative law.
@@ -6484,7 +6650,8 @@ static
tree
fold (tree expr)
{
- const tree t = expr;
+ /* APPLE LOCAL altivec */
+ tree t = expr;
const tree type = TREE_TYPE (expr);
tree t1 = NULL_TREE;
tree tem;
@@ -6496,6 +6663,15 @@ fold (tree expr)
if all operands are constant. */
int wins = 1;
+ /* APPLE LOCAL begin AltiVec */
+ /* Fold constant comma expressions. */
+ while (TREE_CODE (t) == COMPOUND_EXPR && TREE_CONSTANT (t))
+ t = TREE_OPERAND (t, 1);
+
+ code = TREE_CODE (t);
+ kind = TREE_CODE_CLASS (code);
+ /* APPLE LOCAL end AltiVec */
+
/* Return right away if a constant. */
if (kind == tcc_constant)
return t;
@@ -6609,13 +6785,14 @@ fold (tree expr)
tem = fold (build2 (code == BIT_AND_EXPR ? TRUTH_AND_EXPR
: code == BIT_IOR_EXPR ? TRUTH_OR_EXPR
: TRUTH_XOR_EXPR,
- type, fold_convert (boolean_type_node, arg0),
+ boolean_type_node,
+ fold_convert (boolean_type_node, arg0),
fold_convert (boolean_type_node, arg1)));
if (code == EQ_EXPR)
tem = invert_truthvalue (tem);
- return tem;
+ return fold_convert (type, tem);
}
if (TREE_CODE_CLASS (code) == tcc_unary)
@@ -6744,16 +6921,19 @@ fold (tree expr)
int inside_int = INTEGRAL_TYPE_P (inside_type);
int inside_ptr = POINTER_TYPE_P (inside_type);
int inside_float = FLOAT_TYPE_P (inside_type);
+ int inside_vec = TREE_CODE (inside_type) == VECTOR_TYPE;
unsigned int inside_prec = TYPE_PRECISION (inside_type);
int inside_unsignedp = TYPE_UNSIGNED (inside_type);
int inter_int = INTEGRAL_TYPE_P (inter_type);
int inter_ptr = POINTER_TYPE_P (inter_type);
int inter_float = FLOAT_TYPE_P (inter_type);
+ int inter_vec = TREE_CODE (inter_type) == VECTOR_TYPE;
unsigned int inter_prec = TYPE_PRECISION (inter_type);
int inter_unsignedp = TYPE_UNSIGNED (inter_type);
int final_int = INTEGRAL_TYPE_P (type);
int final_ptr = POINTER_TYPE_P (type);
int final_float = FLOAT_TYPE_P (type);
+ int final_vec = TREE_CODE (type) == VECTOR_TYPE;
unsigned int final_prec = TYPE_PRECISION (type);
int final_unsignedp = TYPE_UNSIGNED (type);
@@ -6774,12 +6954,15 @@ fold (tree expr)
since then we sometimes need the inner conversion. Likewise if
the outer has a precision not equal to the size of its mode. */
if ((((inter_int || inter_ptr) && (inside_int || inside_ptr))
- || (inter_float && inside_float))
+ || (inter_float && inside_float)
+ || (inter_vec && inside_vec))
&& inter_prec >= inside_prec
- && (inter_float || inter_unsignedp == inside_unsignedp)
+ && (inter_float || inter_vec
+ || inter_unsignedp == inside_unsignedp)
&& ! (final_prec != GET_MODE_BITSIZE (TYPE_MODE (type))
&& TYPE_MODE (type) == TYPE_MODE (inter_type))
- && ! final_ptr)
+ && ! final_ptr
+ && (! final_vec || inter_prec == inside_prec))
return fold (build1 (code, type,
TREE_OPERAND (TREE_OPERAND (t, 0), 0)));
@@ -6793,6 +6976,7 @@ fold (tree expr)
/* Two conversions in a row are not needed unless:
- some conversion is floating-point (overstrict for now), or
+ - some conversion is a vector (overstrict for now), or
- the intermediate type is narrower than both initial and
final, or
- the intermediate type and innermost type differ in signedness,
@@ -6802,6 +6986,7 @@ fold (tree expr)
- the final type is a pointer type and the precisions of the
initial and intermediate types differ. */
if (! inside_float && ! inter_float && ! final_float
+ && ! inside_vec && ! inter_vec && ! final_vec
&& (inter_prec > inside_prec || inter_prec > final_prec)
&& ! (inside_int && inter_int
&& inter_unsignedp != inside_unsignedp
@@ -6874,9 +7059,14 @@ fold (tree expr)
#endif
}
if (change)
- return fold (build2 (BIT_AND_EXPR, type,
- fold_convert (type, and0),
- fold_convert (type, and1)));
+ {
+ tem = build_int_cst_wide (type, TREE_INT_CST_LOW (and1),
+ TREE_INT_CST_HIGH (and1));
+ tem = force_fit_type (tem, 0, TREE_OVERFLOW (and1),
+ TREE_CONSTANT_OVERFLOW (and1));
+ return fold (build2 (BIT_AND_EXPR, type,
+ fold_convert (type, and0), tem));
+ }
}
/* Convert (T1)((T2)X op Y) into (T1)X op Y, for pointer types T1 and
@@ -8041,6 +8231,13 @@ fold (tree expr)
TREE_OPERAND (arg1, 0)));
}
+ if (TREE_CODE (type) == COMPLEX_TYPE)
+ {
+ tem = fold_complex_div (type, arg0, arg1, code);
+ if (tem)
+ return tem;
+ }
+
if (flag_unsafe_math_optimizations)
{
enum built_in_function fcode = builtin_mathfn_code (arg1);
@@ -8165,6 +8362,12 @@ fold (tree expr)
code, NULL_TREE)))
return fold_convert (type, tem);
+ if (TREE_CODE (type) == COMPLEX_TYPE)
+ {
+ tem = fold_complex_div (type, arg0, arg1, code);
+ if (tem)
+ return tem;
+ }
goto binary;
case CEIL_MOD_EXPR:
@@ -8495,7 +8698,14 @@ fold (tree expr)
return non_lvalue (fold_convert (type, arg0));
/* If the second arg is constant true, this is a logical inversion. */
if (integer_onep (arg1))
- return non_lvalue (fold_convert (type, invert_truthvalue (arg0)));
+ {
+ /* Only call invert_truthvalue if operand is a truth value. */
+ if (TREE_CODE (TREE_TYPE (arg0)) != BOOLEAN_TYPE)
+ tem = fold (build1 (TRUTH_NOT_EXPR, TREE_TYPE (arg0), arg0));
+ else
+ tem = invert_truthvalue (arg0);
+ return non_lvalue (fold_convert (type, tem));
+ }
/* Identical arguments cancel to zero. */
if (operand_equal_p (arg0, arg1, 0))
return omit_one_operand (type, integer_zero_node, arg0);
@@ -8948,7 +9158,8 @@ fold (tree expr)
TREE_OPERAND (arg0, 0), TREE_OPERAND (arg0, 1)));
else if (TREE_CODE (TREE_TYPE (arg0)) == INTEGER_TYPE
- && TREE_CODE (arg0) == NOP_EXPR)
+ && (TREE_CODE (arg0) == NOP_EXPR
+ || TREE_CODE (arg0) == CONVERT_EXPR))
{
/* If we are widening one operand of an integer comparison,
see if the other operand is similarly being widened. Perhaps we
@@ -9759,8 +9970,11 @@ fold_checksum_tree (tree expr, struct md5_ctx *ctx, htab_t ht)
expr = (tree) buf;
TYPE_POINTER_TO (expr) = NULL;
TYPE_REFERENCE_TO (expr) = NULL;
- TYPE_CACHED_VALUES_P (expr) = 0;
- TYPE_CACHED_VALUES (expr) = NULL;
+ if (TYPE_CACHED_VALUES_P (expr))
+ {
+ TYPE_CACHED_VALUES_P (expr) = 0;
+ TYPE_CACHED_VALUES (expr) = NULL;
+ }
}
md5_process_bytes (expr, tree_size (expr), ctx);
fold_checksum_tree (TREE_TYPE (expr), ctx, ht);
@@ -11254,15 +11468,26 @@ fold_indirect_ref_1 (tree t)
/* *(foo *)&fooarray => fooarray[0] */
else if (TREE_CODE (optype) == ARRAY_TYPE
&& lang_hooks.types_compatible_p (type, TREE_TYPE (optype)))
- return build4 (ARRAY_REF, type, op, size_zero_node, NULL_TREE, NULL_TREE);
+ {
+ tree type_domain = TYPE_DOMAIN (optype);
+ tree min_val = size_zero_node;
+ if (type_domain && TYPE_MIN_VALUE (type_domain))
+ min_val = TYPE_MIN_VALUE (type_domain);
+ return build4 (ARRAY_REF, type, op, min_val, NULL_TREE, NULL_TREE);
+ }
}
/* *(foo *)fooarrptr => (*fooarrptr)[0] */
if (TREE_CODE (TREE_TYPE (subtype)) == ARRAY_TYPE
&& lang_hooks.types_compatible_p (type, TREE_TYPE (TREE_TYPE (subtype))))
{
+ tree type_domain;
+ tree min_val = size_zero_node;
sub = build_fold_indirect_ref (sub);
- return build4 (ARRAY_REF, type, sub, size_zero_node, NULL_TREE, NULL_TREE);
+ type_domain = TYPE_DOMAIN (TREE_TYPE (sub));
+ if (type_domain && TYPE_MIN_VALUE (type_domain))
+ min_val = TYPE_MIN_VALUE (type_domain);
+ return build4 (ARRAY_REF, type, sub, min_val, NULL_TREE, NULL_TREE);
}
return NULL_TREE;
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e8d487a6341..f4f43724837 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,401 @@
+2005-06-13 Geoffrey Keating <geoffk@apple.com>
+
+ * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
+ (rule for installing f95.1 manpage): Does depend on installdirs.
+
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-12 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * gfortran.texi: Warn about the limited abilities
+ of gfortran at this release.
+ * invoke.texi: Ditto.
+
+2005-04-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
+ comment according to GNU coding style.
+
+2005-04-08 Diego Novillo <dnovillo@redhat.com>
+
+ * match.c (gfc_match_arithmetic_if): Declare static.
+
+2005-04-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR fortran/17229
+ * match.c (gfc_match_arithmetic_if): New function to match an
+ arithmetic IF statement.
+ (gfc_match_if): Use gfc_match_arithmetic_if to match an
+ arithmetic IF statement embedded in a simple IF statement.
+
+2005-04-07 Steven G. Kargl <kargls@comcast.net>
+
+ * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
+
+2005-04-06 Steven G. Kargl <kargls@comcast.net>
+
+ * invoke.texi: Remove documentation of -std=f90.
+
+2005-04-06 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
+ non-pointer assignment.
+
+2005-04-05 Feng Wang <fengwang@nudt.edu.cn>
+
+ PR fortran/15959
+ PR fortran/20713
+
+ * array.c (resolve_character_array_constructor): New function. Set
+ constant character array's character length.
+ (gfc_resolve_array_constructor): Use it.
+ * decl.c (add_init_expr_to_sym): Set symbol and initializer character
+ length.
+ (gfc_set_constant_character_len): New function. Set constant character
+ expression according the given length.
+ * match.h (gfc_set_constant_character_len): Add prototype.
+
+2005-04-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * intrinsic.texi: BES?? functions are not in the f95 standard.
+
+2005-04-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
+
+2005-04-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
+ BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
+
+2005-04-02 Steven G. Kargl <kargls@comcast.net>
+
+ * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; Fix typos.
+
+2005-03-30 Canqun Yang <canqun@nudt.edu.cn>
+
+ * trans-common.c (create_common): Build RECORD_NODE for common blocks
+ contain no equivalence objects.
+ (add_equivalences): New argument saw_equiv.
+ (trans_common): New local variable saw_equiv.
+ (finish_equivalences): Add a local variable dummy, Always pass true
+ for the 3rd parameter to create_common.
+
+2005-03-29 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
+ flag_default_integer, flag_default_real
+ * invoke.texi: Update documentation
+ * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
+ fdefault-integer-8, and fdefault-real-8 definitions.
+ * options.c (gfc_init_options): Set option defaults
+ (gfc_handle_option): Handle command line options.
+ * trans-types.c (gfc_init_kinds): Use options.
+
+2005-03-27 Steven G. Kargl <kargls@comcast.net>
+
+ * intrinsic.texi: Document AIMAG, AINT, ALL
+
+2005-03-25 Steven G. Kargl <kargls@comcast.net>
+
+ * intrinsic.texi: Fix "make dvi"
+
+2005-03-24 Steven G. Kargl <kargls@comcast.net>
+
+ * intrinsic.texi: New file.
+ * gfortran.texi: Include it; white space change; fix typo.
+
+2005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
+ gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
+ gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
+ gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
+ gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
+ gfc_check_perror): new functions to check newly implemented
+ g77 intrinsics.
+ * gfortran.h: adding symbols for new intrinsics.
+ * intrinsic.c (add_functions): adding new intrinsics.
+ (add_subroutines): adding new intrinsics.
+ * intrinsic.h: prototype for all checking and resolving
+ functions.
+ * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
+ gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
+ gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
+ gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
+ gfc_resolve_kill_sub, gfc_resolve_link_sub,
+ gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
+ gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
+ gfc_resolve_perror): new functions to resolve intrinsics.
+ * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
+ for new symbols.
+
+2005-03-19 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
+ in which the variable is declared.
+
+ PR fortran/18525
+ * resolve.c (was_declared): Also check for dummy attribute.
+
+2005-03-19 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.h (arith): Remove ARITH_0TO0.
+ * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
+ (gfc_arith_power): Remove special casing of zero to integral
+ power zero.
+
+2005-03-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * invoke.texi: Fix typos.
+
+2005-03-15 Feng Wang <fengwang@nudt.edu.cn>
+
+ PR fortran/18827
+ * io.c (resolve_tag): Add checking on assigned label.
+ (match_dt_format): Does not set symbol assign attribute.
+ * match.c (gfc_match_goto):Does not set symbol assign attribute.
+ * resolve.c (resolve_code): Add checking on assigned label.
+ * trans-common.c (build_field): Deals with common variable assigned
+ a label.
+ * trans-stmt.c (gfc_conv_label_variable): New function.
+ (gfc_trans_label_assign): Use it.
+ (gfc_trans_goto): Ditto.
+ * trans-io.c (set_string): Ditto.
+ * trans.h (gfc_conv_label_variable): Add prototype.
+
+2005-03-14 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/20467
+ * symbol.c (check_conflict): A dummy argument can't be a statement
+ function.
+
+2005-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/16907
+ * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
+
+2005-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/20323
+ * resolve.c (gfc_resolve): Check if character lengths are
+ specification expressions.
+
+2005-03-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/20361
+ * trans-array.c (gfc_stack_space_left): Remove unused variable.
+ (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
+ code.
+ * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
+ Remove declaration / prototype.
+ * trans-common.c (build_equiv_decl): Give union a name. Check if
+ it can be put on the stack.
+ * trans-decl.c (gfc_stack_space_left): Move function here.
+ (gfc_build_qualified_array): Fix comment typo.
+ * trans.h (gfc_put_var_on_stack): Add prototype.
+
+2005-03-05 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/19936
+ * primary.c (match_complex_constant): Mangled complex constant may
+ be an implied do-loop. Give implied do-loop matcher a chance.
+
+2005-03-05 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/19754
+ * resolve.c (compare_shapes): New function.
+ (resolve_operator): Use it.
+
+2005-03-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/19673
+ * trans-expr.c (gfc_conv_function_call): Correctly dereference
+ argument from a pointer function also if it has a result clause.
+
+2005-03-04 Steven G. Kargl <kargls@comcast.net>
+
+ * expr.c (gfc_copy_shape_excluding): Change && to ||.
+
+2005-03-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
+ clarify comment.
+
+2005-02-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+ (port from g95)
+
+ PR fortran/19479
+ * simplify.c (gfc_simplify_bound): Rename to ...
+ (simplify_bound): ... this and overhaul.
+
+2005-02-28 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
+ (gfc_conv_intrinsic_function): update function calls
+
+2005-02-27 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/20058
+ * trans-types.c (gfc_max_integer_kind): Declare
+ (gfc_init_kinds): Initialize it.
+ * gfortran.h (gfc_max_integer_kind): extern it.
+ * primary.c (match_boz_constant): Use it; remove gfortran extension
+ of kind suffixes on BOZ literal constants
+
+2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
+
+2005-04-24 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ Unrevert previously reverted patch. Adding this fix:
+ * module.c (find_true_name): Deal with NULL module.
+
+2005-02-24 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ Revert yesterday's patch:
+ 2005-02-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.h (gfc_component, gfc_actual_arglist, ...
+ ... argument. Copy string instead of pointing to it.
+
+2005-02-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.h (gfc_get_namespace): Add second argument to prototype.
+ * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
+ gfc_get_namespace.
+ * module.c (mio_namespace_ref, load_needed): Likewise.
+ * parse.c (parse_interface, parse_contained): Likewise. Here the
+ correct second argument matters.
+ * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
+ parent's implicit types if this is set.
+ (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
+ * trans-common.c (build_common_decl): Likewise.
+
+ * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
+ formatting.
+ * symbol.c (gfc_set_default_type): Issue error only once, by setting
+ and checking 'untyped' attribute.
+
+ * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
+ fields into new struct 'op' inside the 'value' union.
+ * arith.c (eval_intrinsic): Adapt all users.
+ * dependency.c (gfc_check_dependency): Likewise.
+ * dump-parse-tree.c (gfc_show_expr): Likewise.
+ * expr.c (gfc_get_expr): Don't clear removed fields.
+ (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
+ gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
+ check_intrinsic_op): Adapt to new field names.
+ * interface.c (gfc_extend_expr): Likewise. Also explicitly
+ nullify 'esym' and 'isym' fields of new function call.
+ * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
+ Adapt to renamed structure fields.
+ * matchexp.c (build_node, match_level_1, match_expr): Likewise.
+ * module.c (mio_expr): Likewise.
+ * resolve.c (resolve_operator): Likewise.
+ (gfc_find_forall_index): Likewise. Only look through operands
+ if dealing with EXPR_OP
+ * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
+ * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
+ gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
+
+ [ Reverted ]
+ * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
+ 'name' a 'const char *'.
+ (gfc_symbol): Likewise, also for 'module'.
+ (gfc_symtree): Make 'name' a 'const char *'.
+ (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
+ (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
+ 'char *' argument.
+ (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
+ initialize 'SYM->module'.
+ * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
+ pointer instead of empty string.
+ * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
+ * interface.c (gfc_compare_types): Adapt check to account for possible
+ NULL pointer.
+ (compare_actual_formal): Check for NULL pointer instead of empty
+ string.
+ * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
+ Add 'const' qualifier.
+ (conv_name): Return a heap allocated string.
+ (find_conv): Add 'const' qualifier to 'target'.
+ (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
+ (make_generic): Check for NULL pointer instead of empty string.
+ (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
+ (add_conv): No need to strcpy result from 'conv_name'.
+ (sort_actual): Check for NULL pointer instead of empty string.
+ * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
+ Adapt prototype.
+ * module.c (compare_true_names): Compare pointers instead of strings
+ for 'module' member.
+ (find_true_name): Initialize string fields with gfc_get_string.
+ (mio_pool_string): New function.
+ (mio_internal_string): Adapt comment.
+ (mio_component_ref, mio_component, mio_actual_arg): Use
+ 'mio_pool_string' instead of 'mio_internal_string'.
+ (mio_symbol_interface): Add 'const' qualifier to string arguments.
+ Add level of indirection. Use 'mio_pool_string' instead of
+ 'mio_internal_string'.
+ (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
+ (write_common, write_symbol): Use 'mio_pool_string' instead of
+ 'mio_internal_string'.
+ (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
+ instead of empty string.
+ (write_operator, write_generic): Pass correct type variable to
+ 'mio_symbol_interface'.
+ (write_symtree): Use 'mio_pool_string' instead of
+ 'mio_internal_string'.
+ * primary.c (match_keyword_arg): Adapt check to possible
+ case of NULL pointer. Use 'gfc_get_string' instead of 'strcpy'.
+ * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
+ gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
+ 'strcpy'.
+ (ambiguous_symbol): Check for NULL pointer instead of empty string.
+ (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
+ arguments.
+ * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
+ pointer instead of empty string.
+ * trans-decl.c (gfc_sym_mangled_identifier,
+ gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
+ gfc_get_symbol_decl): Likewise.
+ * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
+ argument. Copy string instead of pointing to it.
+
+2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * intrinsic.h, st.c: Update copyright.
+
+2005-02-20 Steven G. Kargl <kargls@comcast.net>
+
+ * symbol.c: Typos in comments.
+
+2005-02-20 Steven G. Kargl <kargls@comcast.net>
+
+ * expr.c (gfc_type_convert_binary): Typo in comment.
+
+2005-02-19 Steven G. Kargl <kargls@comcast.net>
+
+ * check.c (gfc_check_selected_int_kind): New function.
+ * intrinsic.h: Prototype it.
+ * intrinsic.c (add_function): Use it.
+ * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
+ BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
+
+2005-02-19 Steven G. Kargl <kargls@comcast.net>
+
+ * check.c (gfc_check_int): improve checking of optional kind
+ * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
+
+2005-02-19 Steven G. Kargl <kargls@comcast.net>
+
+ * check.c (gfc_check_achar): New function
+ * intrinsic.h: Prototype it.
+ * intrinsic.c (add_function): Use it.
+
2005-02-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* trans-stmt.c (generate_loop_for_temp_to_lhs,
diff --git a/gcc/fortran/ChangeLog.lno b/gcc/fortran/ChangeLog.lno
new file mode 100644
index 00000000000..32ad9683ae5
--- /dev/null
+++ b/gcc/fortran/ChangeLog.lno
@@ -0,0 +1,2 @@
+ * f95-lang.c (gfc_init_builtin_functions): Init
+ BUILT_IN_MAYBE_INFINITE_LOOP builtin.
diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in
index bdd8494c0d8..0ee9ce92c81 100644
--- a/gcc/fortran/Make-lang.in
+++ b/gcc/fortran/Make-lang.in
@@ -205,13 +205,15 @@ f95.install-common: installdirs
install-info:: $(DESTDIR)$(infodir)/gfortran.info
-f95.install-man: installdirs \
- $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
+ # APPLE LOCAL begin mainline 4.1 2005-06-16
+f95.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
-$(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext): doc/gfortran.1
+$(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext): doc/gfortran.1 \
+ installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@
+ # APPLE LOCAL end mainline 4.1 2005-06-16
f95.uninstall:
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
diff --git a/gcc/fortran/arith.c b/gcc/fortran/arith.c
index 924eea0fb2f..b55713e571e 100644
--- a/gcc/fortran/arith.c
+++ b/gcc/fortran/arith.c
@@ -152,9 +152,6 @@ gfc_arith_error (arith code)
case ARITH_DIV0:
p = "Division by zero";
break;
- case ARITH_0TO0:
- p = "Indeterminate form 0 ** 0";
- break;
case ARITH_INCOMMENSURATE:
p = "Array operands are incommensurate";
break;
@@ -989,33 +986,23 @@ gfc_arith_power (gfc_expr * op1, gfc_expr * op2, gfc_expr ** resultp)
result = gfc_constant_result (op1->ts.type, op1->ts.kind, &op1->where);
if (power == 0)
- { /* Handle something to the zeroth power */
+ {
+ /* Handle something to the zeroth power. Since we're dealing
+ with integral exponents, there is no ambiguity in the
+ limiting procedure used to determine the value of 0**0. */
switch (op1->ts.type)
{
case BT_INTEGER:
- if (mpz_sgn (op1->value.integer) == 0)
- rc = ARITH_0TO0;
- else
- mpz_set_ui (result->value.integer, 1);
+ mpz_set_ui (result->value.integer, 1);
break;
case BT_REAL:
- if (mpfr_sgn (op1->value.real) == 0)
- rc = ARITH_0TO0;
- else
- mpfr_set_ui (result->value.real, 1, GFC_RND_MODE);
+ mpfr_set_ui (result->value.real, 1, GFC_RND_MODE);
break;
case BT_COMPLEX:
- if (mpfr_sgn (op1->value.complex.r) == 0
- && mpfr_sgn (op1->value.complex.i) == 0)
- rc = ARITH_0TO0;
- else
- {
- mpfr_set_ui (result->value.complex.r, 1, GFC_RND_MODE);
- mpfr_set_ui (result->value.complex.i, 0, GFC_RND_MODE);
- }
-
+ mpfr_set_ui (result->value.complex.r, 1, GFC_RND_MODE);
+ mpfr_set_ui (result->value.complex.i, 0, GFC_RND_MODE);
break;
default:
@@ -1598,10 +1585,10 @@ eval_intrinsic (gfc_intrinsic_op operator,
temp.expr_type = EXPR_OP;
gfc_clear_ts (&temp.ts);
- temp.operator = operator;
+ temp.value.op.operator = operator;
- temp.op1 = op1;
- temp.op2 = op2;
+ temp.value.op.op1 = op1;
+ temp.value.op.op2 = op2;
gfc_type_convert_binary (&temp);
@@ -1671,10 +1658,10 @@ runtime:
result->ts = temp.ts;
result->expr_type = EXPR_OP;
- result->operator = operator;
+ result->value.op.operator = operator;
- result->op1 = op1;
- result->op2 = op2;
+ result->value.op.op1 = op1;
+ result->value.op.op2 = op2;
result->where = op1->where;
diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c
index 4f4f19b100b..dc660d45580 100644
--- a/gcc/fortran/array.c
+++ b/gcc/fortran/array.c
@@ -1499,9 +1499,45 @@ resolve_array_list (gfc_constructor * p)
return t;
}
+/* Resolve character array constructor. If it is a constant character array and
+ not specified character length, update character length to the maximum of
+ its element constructors' length. */
-/* Resolve all of the expressions in an array list.
- TODO: String lengths. */
+static void
+resolve_character_array_constructor (gfc_expr * expr)
+{
+ gfc_constructor * p;
+ int max_length;
+
+ gcc_assert (expr->expr_type == EXPR_ARRAY);
+ gcc_assert (expr->ts.type == BT_CHARACTER);
+
+ max_length = -1;
+
+ if (expr->ts.cl == NULL || expr->ts.cl->length == NULL)
+ {
+ /* Find the maximum length of the elements. Do nothing for variable array
+ constructor. */
+ for (p = expr->value.constructor; p; p = p->next)
+ if (p->expr->expr_type == EXPR_CONSTANT)
+ max_length = MAX (p->expr->value.character.length, max_length);
+ else
+ return;
+
+ if (max_length != -1)
+ {
+ /* Update the character length of the array constructor. */
+ if (expr->ts.cl == NULL)
+ expr->ts.cl = gfc_get_charlen ();
+ expr->ts.cl->length = gfc_int_expr (max_length);
+ /* Update the element constructors. */
+ for (p = expr->value.constructor; p; p = p->next)
+ gfc_set_constant_character_len (max_length, p->expr);
+ }
+ }
+}
+
+/* Resolve all of the expressions in an array list. */
try
gfc_resolve_array_constructor (gfc_expr * expr)
@@ -1511,6 +1547,8 @@ gfc_resolve_array_constructor (gfc_expr * expr)
t = resolve_array_list (expr->value.constructor);
if (t == SUCCESS)
t = gfc_check_constructor_type (expr);
+ if (t == SUCCESS && expr->ts.type == BT_CHARACTER)
+ resolve_character_array_constructor (expr);
return t;
}
diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c
index a63112bd81e..8fae4449fbf 100644
--- a/gcc/fortran/check.c
+++ b/gcc/fortran/check.c
@@ -401,6 +401,16 @@ gfc_check_abs (gfc_expr * a)
return SUCCESS;
}
+try
+gfc_check_achar (gfc_expr * a)
+{
+
+ if (type_check (a, 0, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
try
gfc_check_all_any (gfc_expr * mask, gfc_expr * dim)
@@ -565,6 +575,35 @@ gfc_check_char (gfc_expr * i, gfc_expr * kind)
try
+gfc_check_chdir (gfc_expr * dir)
+{
+ if (type_check (dir, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_chdir_sub (gfc_expr * dir, gfc_expr * status)
+{
+ if (type_check (dir, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (status == NULL)
+ return SUCCESS;
+
+ if (type_check (status, 1, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (status, 1) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_cmplx (gfc_expr * x, gfc_expr * y, gfc_expr * kind)
{
if (numeric_check (x, 0) == FAILURE)
@@ -936,10 +975,18 @@ gfc_check_index (gfc_expr * string, gfc_expr * substring, gfc_expr * back)
try
gfc_check_int (gfc_expr * x, gfc_expr * kind)
{
- if (numeric_check (x, 0) == FAILURE
- || kind_check (kind, 1, BT_INTEGER) == FAILURE)
+ if (numeric_check (x, 0) == FAILURE)
+ return FAILURE;
+
+ if (kind != NULL)
+ {
+ if (type_check (kind, 1, BT_INTEGER) == FAILURE)
return FAILURE;
+ if (scalar_check (kind, 1) == FAILURE)
+ return FAILURE;
+ }
+
return SUCCESS;
}
@@ -990,6 +1037,41 @@ gfc_check_ishftc (gfc_expr * i, gfc_expr * shift, gfc_expr * size)
try
+gfc_check_kill (gfc_expr * pid, gfc_expr * sig)
+{
+ if (type_check (pid, 0, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (sig, 1, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_kill_sub (gfc_expr * pid, gfc_expr * sig, gfc_expr * status)
+{
+ if (type_check (pid, 0, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (sig, 1, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (status == NULL)
+ return SUCCESS;
+
+ if (type_check (status, 2, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (status, 2) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_kind (gfc_expr * x)
{
if (x->ts.type == BT_DERIVED)
@@ -1021,6 +1103,76 @@ gfc_check_lbound (gfc_expr * array, gfc_expr * dim)
try
+gfc_check_link (gfc_expr * path1, gfc_expr * path2)
+{
+ if (type_check (path1, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (path2, 1, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_link_sub (gfc_expr * path1, gfc_expr * path2, gfc_expr * status)
+{
+ if (type_check (path1, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (path2, 1, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (status == NULL)
+ return SUCCESS;
+
+ if (type_check (status, 2, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (status, 2) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_symlnk (gfc_expr * path1, gfc_expr * path2)
+{
+ if (type_check (path1, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (path2, 1, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_symlnk_sub (gfc_expr * path1, gfc_expr * path2, gfc_expr * status)
+{
+ if (type_check (path1, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (path2, 1, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (status == NULL)
+ return SUCCESS;
+
+ if (type_check (status, 2, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (status, 2) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_logical (gfc_expr * a, gfc_expr * kind)
{
if (type_check (a, 0, BT_LOGICAL) == FAILURE)
@@ -1196,7 +1348,7 @@ gfc_check_minloc_maxloc (gfc_actual_arglist * ap)
m = ap->next->next->expr;
if (m == NULL && d != NULL && d->ts.type == BT_LOGICAL
- && ap->next->name[0] == '\0')
+ && ap->next->name == NULL)
{
m = d;
d = NULL;
@@ -1241,7 +1393,7 @@ check_reduction (gfc_actual_arglist * ap)
m = ap->next->next->expr;
if (m == NULL && d != NULL && d->ts.type == BT_LOGICAL
- && ap->next->name[0] == '\0')
+ && ap->next->name == NULL)
{
m = d;
d = NULL;
@@ -1436,6 +1588,41 @@ gfc_check_real (gfc_expr * a, gfc_expr * kind)
try
+gfc_check_rename (gfc_expr * path1, gfc_expr * path2)
+{
+ if (type_check (path1, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (path2, 1, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_rename_sub (gfc_expr * path1, gfc_expr * path2, gfc_expr * status)
+{
+ if (type_check (path1, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (type_check (path2, 1, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (status == NULL)
+ return SUCCESS;
+
+ if (type_check (status, 2, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (status, 2) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_repeat (gfc_expr * x, gfc_expr * y)
{
if (type_check (x, 0, BT_CHARACTER) == FAILURE)
@@ -1536,6 +1723,20 @@ gfc_check_scan (gfc_expr * x, gfc_expr * y, gfc_expr * z)
try
+gfc_check_selected_int_kind (gfc_expr * r)
+{
+
+ if (type_check (r, 0, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (r, 0) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_selected_real_kind (gfc_expr * p, gfc_expr * r)
{
if (p == NULL && r == NULL)
@@ -1626,6 +1827,19 @@ gfc_check_size (gfc_expr * array, gfc_expr * dim)
try
+gfc_check_sleep_sub (gfc_expr * seconds)
+{
+ if (type_check (seconds, 0, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ if (scalar_check (seconds, 0) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_spread (gfc_expr * source, gfc_expr * dim, gfc_expr * ncopies)
{
if (source->rank >= GFC_MAX_DIMENSIONS)
@@ -2202,6 +2416,16 @@ gfc_check_etime_sub (gfc_expr * values, gfc_expr * time)
try
+gfc_check_gerror (gfc_expr * msg)
+{
+ if (type_check (msg, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_getcwd_sub (gfc_expr * cwd, gfc_expr * status)
{
if (type_check (cwd, 0, BT_CHARACTER) == FAILURE)
@@ -2221,6 +2445,16 @@ gfc_check_getcwd_sub (gfc_expr * cwd, gfc_expr * status)
try
+gfc_check_getlog (gfc_expr * msg)
+{
+ if (type_check (msg, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_exit (gfc_expr * status)
{
if (status == NULL)
@@ -2253,6 +2487,45 @@ gfc_check_flush (gfc_expr * unit)
try
+gfc_check_hostnm (gfc_expr * name)
+{
+ if (type_check (name, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_hostnm_sub (gfc_expr * name, gfc_expr * status)
+{
+ if (type_check (name, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ if (status == NULL)
+ return SUCCESS;
+
+ if (scalar_check (status, 1) == FAILURE)
+ return FAILURE;
+
+ if (type_check (status, 1, BT_INTEGER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
+gfc_check_perror (gfc_expr * string)
+{
+ if (type_check (string, 0, BT_CHARACTER) == FAILURE)
+ return FAILURE;
+
+ return SUCCESS;
+}
+
+
+try
gfc_check_umask (gfc_expr * mask)
{
if (type_check (mask, 0, BT_INTEGER) == FAILURE)
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 9ad5ef17973..f2d8d74856d 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -27,7 +27,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "parse.h"
-/* This flag is set if a an old-style length selector is matched
+/* This flag is set if an old-style length selector is matched
during a type-declaration statement. */
static int old_char_selector;
@@ -646,6 +646,30 @@ build_sym (const char *name, gfc_charlen * cl,
return SUCCESS;
}
+/* Set character constant to the given length. The constant will be padded or
+ truncated. */
+
+void
+gfc_set_constant_character_len (int len, gfc_expr * expr)
+{
+ char * s;
+ int slen;
+
+ gcc_assert (expr->expr_type == EXPR_CONSTANT);
+ gcc_assert (expr->ts.type == BT_CHARACTER && expr->ts.kind == 1);
+
+ slen = expr->value.character.length;
+ if (len != slen)
+ {
+ s = gfc_getmem (len);
+ memcpy (s, expr->value.character.string, MIN (len, slen));
+ if (len > slen)
+ memset (&s[slen], ' ', len - slen);
+ gfc_free (expr->value.character.string);
+ expr->value.character.string = s;
+ expr->value.character.length = len;
+ }
+}
/* Function called by variable_decl() that adds an initialization
expression to a symbol. */
@@ -711,6 +735,35 @@ add_init_expr_to_sym (const char *name, gfc_expr ** initp,
&& gfc_check_assign_symbol (sym, init) == FAILURE)
return FAILURE;
+ if (sym->ts.type == BT_CHARACTER && sym->ts.cl)
+ {
+ /* Update symbol character length according initializer. */
+ if (sym->ts.cl->length == NULL)
+ {
+ if (init->expr_type == EXPR_CONSTANT)
+ sym->ts.cl->length =
+ gfc_int_expr (init->value.character.length);
+ else if (init->expr_type == EXPR_ARRAY)
+ sym->ts.cl->length = gfc_copy_expr (init->ts.cl->length);
+ }
+ /* Update initializer character length according symbol. */
+ else if (sym->ts.cl->length->expr_type == EXPR_CONSTANT)
+ {
+ int len = mpz_get_si (sym->ts.cl->length->value.integer);
+ gfc_constructor * p;
+
+ if (init->expr_type == EXPR_CONSTANT)
+ gfc_set_constant_character_len (len, init);
+ else if (init->expr_type == EXPR_ARRAY)
+ {
+ gfc_free_expr (init->ts.cl->length);
+ init->ts.cl->length = gfc_copy_expr (sym->ts.cl->length);
+ for (p = init->value.constructor; p; p = p->next)
+ gfc_set_constant_character_len (len, p->expr);
+ }
+ }
+ }
+
/* Add initializer. Make sure we keep the ranks sane. */
if (sym->attr.dimension && init->rank == 0)
init->rank = sym->as->rank;
diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c
index fb0c5764d45..cb5cb50fd92 100644
--- a/gcc/fortran/dependency.c
+++ b/gcc/fortran/dependency.c
@@ -277,11 +277,11 @@ gfc_check_dependency (gfc_expr * expr1, gfc_expr * expr2, gfc_expr ** vars,
switch (expr2->expr_type)
{
case EXPR_OP:
- n = gfc_check_dependency (expr1, expr2->op1, vars, nvars);
+ n = gfc_check_dependency (expr1, expr2->value.op.op1, vars, nvars);
if (n)
return n;
- if (expr2->op2)
- return gfc_check_dependency (expr1, expr2->op2, vars, nvars);
+ if (expr2->value.op.op2)
+ return gfc_check_dependency (expr1, expr2->value.op.op2, vars, nvars);
return 0;
case EXPR_VARIABLE:
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index 7af7a625f65..3df244cca71 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -106,7 +106,7 @@ gfc_show_actual_arglist (gfc_actual_arglist * a)
for (; a; a = a->next)
{
gfc_status_char ('(');
- if (a->name[0] != '\0')
+ if (a->name != NULL)
gfc_status ("%s = ", a->name);
if (a->expr != NULL)
gfc_show_expr (a->expr);
@@ -409,13 +409,15 @@ gfc_show_expr (gfc_expr * p)
break;
case EXPR_VARIABLE:
+ if (p->symtree->n.sym->ns && p->symtree->n.sym->ns->proc_name)
+ gfc_status ("%s:", p->symtree->n.sym->ns->proc_name->name);
gfc_status ("%s", p->symtree->n.sym->name);
gfc_show_ref (p->ref);
break;
case EXPR_OP:
gfc_status ("(");
- switch (p->operator)
+ switch (p->value.op.operator)
{
case INTRINSIC_UPLUS:
gfc_status ("U+ ");
@@ -480,12 +482,12 @@ gfc_show_expr (gfc_expr * p)
("gfc_show_expr(): Bad intrinsic in expression!");
}
- gfc_show_expr (p->op1);
+ gfc_show_expr (p->value.op.op1);
- if (p->op2)
+ if (p->value.op.op2)
{
gfc_status (" ");
- gfc_show_expr (p->op2);
+ gfc_show_expr (p->value.op.op2);
}
gfc_status (")");
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 3898f7afd63..d0c99e335a0 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -36,12 +36,9 @@ gfc_get_expr (void)
e = gfc_getmem (sizeof (gfc_expr));
gfc_clear_ts (&e->ts);
- e->op1 = NULL;
- e->op2 = NULL;
e->shape = NULL;
e->ref = NULL;
e->symtree = NULL;
- e->uop = NULL;
return e;
}
@@ -170,10 +167,10 @@ free_expr0 (gfc_expr * e)
break;
case EXPR_OP:
- if (e->op1 != NULL)
- gfc_free_expr (e->op1);
- if (e->op2 != NULL)
- gfc_free_expr (e->op2);
+ if (e->value.op.op1 != NULL)
+ gfc_free_expr (e->value.op.op1);
+ if (e->value.op.op2 != NULL)
+ gfc_free_expr (e->value.op.op2);
break;
case EXPR_FUNCTION:
@@ -355,7 +352,7 @@ gfc_copy_shape_excluding (mpz_t * shape, int rank, gfc_expr * dim)
n = mpz_get_si (dim->value.integer);
n--; /* Convert to zero based index */
- if (n < 0 && n >= rank)
+ if (n < 0 || n >= rank)
return NULL;
s = new_shape = gfc_get_shape (rank-1);
@@ -437,17 +434,17 @@ gfc_copy_expr (gfc_expr * p)
break;
case EXPR_OP:
- switch (q->operator)
+ switch (q->value.op.operator)
{
case INTRINSIC_NOT:
case INTRINSIC_UPLUS:
case INTRINSIC_UMINUS:
- q->op1 = gfc_copy_expr (p->op1);
+ q->value.op.op1 = gfc_copy_expr (p->value.op.op1);
break;
default: /* Binary operators */
- q->op1 = gfc_copy_expr (p->op1);
- q->op2 = gfc_copy_expr (p->op2);
+ q->value.op.op1 = gfc_copy_expr (p->value.op.op1);
+ q->value.op.op2 = gfc_copy_expr (p->value.op.op2);
break;
}
@@ -584,8 +581,8 @@ gfc_type_convert_binary (gfc_expr * e)
{
gfc_expr *op1, *op2;
- op1 = e->op1;
- op2 = e->op2;
+ op1 = e->value.op.op1;
+ op2 = e->value.op.op2;
if (op1->ts.type == BT_UNKNOWN || op2->ts.type == BT_UNKNOWN)
{
@@ -618,18 +615,18 @@ gfc_type_convert_binary (gfc_expr * e)
{
e->ts = op1->ts;
- /* Special cose for ** operator. */
- if (e->operator == INTRINSIC_POWER)
+ /* Special case for ** operator. */
+ if (e->value.op.operator == INTRINSIC_POWER)
goto done;
- gfc_convert_type (e->op2, &e->ts, 2);
+ gfc_convert_type (e->value.op.op2, &e->ts, 2);
goto done;
}
if (op1->ts.type == BT_INTEGER)
{
e->ts = op2->ts;
- gfc_convert_type (e->op1, &e->ts, 2);
+ gfc_convert_type (e->value.op.op1, &e->ts, 2);
goto done;
}
@@ -640,9 +637,9 @@ gfc_type_convert_binary (gfc_expr * e)
else
e->ts.kind = op2->ts.kind;
if (op1->ts.type != BT_COMPLEX || op1->ts.kind != e->ts.kind)
- gfc_convert_type (e->op1, &e->ts, 2);
+ gfc_convert_type (e->value.op.op1, &e->ts, 2);
if (op2->ts.type != BT_COMPLEX || op2->ts.kind != e->ts.kind)
- gfc_convert_type (e->op2, &e->ts, 2);
+ gfc_convert_type (e->value.op.op2, &e->ts, 2);
done:
return;
@@ -665,9 +662,9 @@ gfc_is_constant_expr (gfc_expr * e)
switch (e->expr_type)
{
case EXPR_OP:
- rv = (gfc_is_constant_expr (e->op1)
- && (e->op2 == NULL
- || gfc_is_constant_expr (e->op2)));
+ rv = (gfc_is_constant_expr (e->value.op.op1)
+ && (e->value.op.op2 == NULL
+ || gfc_is_constant_expr (e->value.op.op2)));
break;
@@ -729,11 +726,11 @@ simplify_intrinsic_op (gfc_expr * p, int type)
{
gfc_expr *op1, *op2, *result;
- if (p->operator == INTRINSIC_USER)
+ if (p->value.op.operator == INTRINSIC_USER)
return SUCCESS;
- op1 = p->op1;
- op2 = p->op2;
+ op1 = p->value.op.op1;
+ op2 = p->value.op.op2;
if (gfc_simplify_expr (op1, type) == FAILURE)
return FAILURE;
@@ -745,10 +742,10 @@ simplify_intrinsic_op (gfc_expr * p, int type)
return SUCCESS;
/* Rip p apart */
- p->op1 = NULL;
- p->op2 = NULL;
+ p->value.op.op1 = NULL;
+ p->value.op.op2 = NULL;
- switch (p->operator)
+ switch (p->value.op.operator)
{
case INTRINSIC_UPLUS:
result = gfc_uplus (op1);
@@ -1191,15 +1188,17 @@ static try check_init_expr (gfc_expr *);
static try
check_intrinsic_op (gfc_expr * e, try (*check_function) (gfc_expr *))
{
+ gfc_expr *op1 = e->value.op.op1;
+ gfc_expr *op2 = e->value.op.op2;
- if ((*check_function) (e->op1) == FAILURE)
+ if ((*check_function) (op1) == FAILURE)
return FAILURE;
- switch (e->operator)
+ switch (e->value.op.operator)
{
case INTRINSIC_UPLUS:
case INTRINSIC_UMINUS:
- if (!numeric_type (et0 (e->op1)))
+ if (!numeric_type (et0 (op1)))
goto not_numeric;
break;
@@ -1209,11 +1208,11 @@ check_intrinsic_op (gfc_expr * e, try (*check_function) (gfc_expr *))
case INTRINSIC_GE:
case INTRINSIC_LT:
case INTRINSIC_LE:
- if ((*check_function) (e->op2) == FAILURE)
+ if ((*check_function) (op2) == FAILURE)
return FAILURE;
- if (!(et0 (e->op1) == BT_CHARACTER && et0 (e->op2) == BT_CHARACTER)
- && !(numeric_type (et0 (e->op1)) && numeric_type (et0 (e->op2))))
+ if (!(et0 (op1) == BT_CHARACTER && et0 (op2) == BT_CHARACTER)
+ && !(numeric_type (et0 (op1)) && numeric_type (et0 (op2))))
{
gfc_error ("Numeric or CHARACTER operands are required in "
"expression at %L", &e->where);
@@ -1226,34 +1225,34 @@ check_intrinsic_op (gfc_expr * e, try (*check_function) (gfc_expr *))
case INTRINSIC_TIMES:
case INTRINSIC_DIVIDE:
case INTRINSIC_POWER:
- if ((*check_function) (e->op2) == FAILURE)
+ if ((*check_function) (op2) == FAILURE)
return FAILURE;
- if (!numeric_type (et0 (e->op1)) || !numeric_type (et0 (e->op2)))
+ if (!numeric_type (et0 (op1)) || !numeric_type (et0 (op2)))
goto not_numeric;
- if (e->operator == INTRINSIC_POWER
- && check_function == check_init_expr && et0 (e->op2) != BT_INTEGER)
+ if (e->value.op.operator == INTRINSIC_POWER
+ && check_function == check_init_expr && et0 (op2) != BT_INTEGER)
{
gfc_error ("Exponent at %L must be INTEGER for an initialization "
- "expression", &e->op2->where);
+ "expression", &op2->where);
return FAILURE;
}
break;
case INTRINSIC_CONCAT:
- if ((*check_function) (e->op2) == FAILURE)
+ if ((*check_function) (op2) == FAILURE)
return FAILURE;
- if (et0 (e->op1) != BT_CHARACTER || et0 (e->op2) != BT_CHARACTER)
+ if (et0 (op1) != BT_CHARACTER || et0 (op2) != BT_CHARACTER)
{
gfc_error ("Concatenation operator in expression at %L "
- "must have two CHARACTER operands", &e->op1->where);
+ "must have two CHARACTER operands", &op1->where);
return FAILURE;
}
- if (e->op1->ts.kind != e->op2->ts.kind)
+ if (op1->ts.kind != op2->ts.kind)
{
gfc_error ("Concat operator at %L must concatenate strings of the "
"same kind", &e->where);
@@ -1263,10 +1262,10 @@ check_intrinsic_op (gfc_expr * e, try (*check_function) (gfc_expr *))
break;
case INTRINSIC_NOT:
- if (et0 (e->op1) != BT_LOGICAL)
+ if (et0 (op1) != BT_LOGICAL)
{
gfc_error (".NOT. operator in expression at %L must have a LOGICAL "
- "operand", &e->op1->where);
+ "operand", &op1->where);
return FAILURE;
}
@@ -1276,10 +1275,10 @@ check_intrinsic_op (gfc_expr * e, try (*check_function) (gfc_expr *))
case INTRINSIC_OR:
case INTRINSIC_EQV:
case INTRINSIC_NEQV:
- if ((*check_function) (e->op2) == FAILURE)
+ if ((*check_function) (op2) == FAILURE)
return FAILURE;
- if (et0 (e->op1) != BT_LOGICAL || et0 (e->op2) != BT_LOGICAL)
+ if (et0 (op1) != BT_LOGICAL || et0 (op2) != BT_LOGICAL)
{
gfc_error ("LOGICAL operands are required in expression at %L",
&e->where);
@@ -1790,11 +1789,12 @@ gfc_check_assign (gfc_expr * lvalue, gfc_expr * rvalue, int conform)
return FAILURE;
}
- /* This is a guaranteed segfault and possibly a typo: p = NULL()
- instead of p => NULL() */
- if (rvalue->expr_type == EXPR_NULL)
- gfc_warning ("NULL appears on right-hand side in assignment at %L",
- &rvalue->where);
+ if (rvalue->expr_type == EXPR_NULL)
+ {
+ gfc_error ("NULL appears on right-hand side in assignment at %L",
+ &rvalue->where);
+ return FAILURE;
+ }
/* This is possibly a typo: x = f() instead of x => f() */
if (gfc_option.warn_surprising
diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c
index 7f04b7ca261..4f3b4e1543d 100644
--- a/gcc/fortran/f95-lang.c
+++ b/gcc/fortran/f95-lang.c
@@ -145,6 +145,22 @@ static void gfc_expand_function (tree);
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
+/* APPLE LOCAL begin constant cfstrings */
+enum { blabla } c_language;
+const char *constant_string_class_name = "die die";
+int flag_next_runtime = 1;
+/* APPLE LOCAL end constant cfstrings */
+
+/* APPLE LOCAL disable_typechecking_for_spec_flag */
+int disable_typechecking_for_spec_flag = 0;
+
+/* APPLE LOCAL begin CW asm blocks */
+/* Dummies needed because we use them from cpplib, yuck. */
+int flag_cw_asm_blocks;
+int cw_asm_state;
+int cw_asm_in_operands;
+/* APPLE LOCAL end CW asm blocks */
+
/* A list (chain of TREE_LIST nodes) of all LABEL_DECLs in the function
that have names. Here so we can clear out their names' definitions
at the end of the function. */
@@ -828,6 +844,12 @@ gfc_init_builtin_functions (void)
ftype = build_function_type (long_integer_type_node, tmp);
gfc_define_builtin ("__builtin_expect", ftype, BUILT_IN_EXPECT,
"__builtin_expect", true);
+ /* APPLE LOCAL begin lno */
+ ftype = build_function_type (void_type_node, void_list_node);
+ gfc_define_builtin ("__builtin_maybe_infinite_loop", ftype,
+ BUILT_IN_MAYBE_INFINITE_LOOP, "maybe_infinite_loop",
+ false);
+ /* APPLE LOCAL end lno */
build_common_builtin_nodes ();
targetm.init_builtins ();
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 9df2f376ed3..1e56920c73c 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -181,7 +181,7 @@ extern mstring intrinsic_operators[];
/* Arithmetic results. */
typedef enum
{ ARITH_OK = 1, ARITH_OVERFLOW, ARITH_UNDERFLOW, ARITH_NAN,
- ARITH_DIV0, ARITH_0TO0, ARITH_INCOMMENSURATE, ARITH_ASYMMETRIC
+ ARITH_DIV0, ARITH_INCOMMENSURATE, ARITH_ASYMMETRIC
}
arith;
@@ -292,6 +292,7 @@ enum gfc_generic_isym_id
GFC_ISYM_BTEST,
GFC_ISYM_CEILING,
GFC_ISYM_CHAR,
+ GFC_ISYM_CHDIR,
GFC_ISYM_CMPLX,
GFC_ISYM_COMMAND_ARGUMENT_COUNT,
GFC_ISYM_CONJG,
@@ -317,6 +318,7 @@ enum gfc_generic_isym_id
GFC_ISYM_GETGID,
GFC_ISYM_GETPID,
GFC_ISYM_GETUID,
+ GFC_ISYM_HOSTNM,
GFC_ISYM_IACHAR,
GFC_ISYM_IAND,
GFC_ISYM_IARGC,
@@ -325,15 +327,18 @@ enum gfc_generic_isym_id
GFC_ISYM_IBSET,
GFC_ISYM_ICHAR,
GFC_ISYM_IEOR,
+ GFC_ISYM_IERRNO,
GFC_ISYM_INDEX,
GFC_ISYM_INT,
GFC_ISYM_IOR,
GFC_ISYM_IRAND,
GFC_ISYM_ISHFT,
GFC_ISYM_ISHFTC,
+ GFC_ISYM_KILL,
GFC_ISYM_LBOUND,
GFC_ISYM_LEN,
GFC_ISYM_LEN_TRIM,
+ GFC_ISYM_LINK,
GFC_ISYM_LGE,
GFC_ISYM_LGT,
GFC_ISYM_LLE,
@@ -359,6 +364,7 @@ enum gfc_generic_isym_id
GFC_ISYM_PRODUCT,
GFC_ISYM_RAND,
GFC_ISYM_REAL,
+ GFC_ISYM_RENAME,
GFC_ISYM_REPEAT,
GFC_ISYM_RESHAPE,
GFC_ISYM_RRSPACING,
@@ -378,9 +384,12 @@ enum gfc_generic_isym_id
GFC_ISYM_SR_KIND,
GFC_ISYM_STAT,
GFC_ISYM_SUM,
+ GFC_ISYM_SYMLNK,
GFC_ISYM_SYSTEM,
GFC_ISYM_TAN,
GFC_ISYM_TANH,
+ GFC_ISYM_TIME,
+ GFC_ISYM_TIME8,
GFC_ISYM_TRANSFER,
GFC_ISYM_TRANSPOSE,
GFC_ISYM_TRIM,
@@ -408,7 +417,8 @@ typedef struct
unsigned in_namelist:1, in_common:1;
unsigned function:1, subroutine:1, generic:1;
- unsigned implicit_type:1; /* Type defined via implicit rules */
+ unsigned implicit_type:1; /* Type defined via implicit rules. */
+ unsigned untyped:1; /* No implicit type could be found. */
/* Function/subroutine attributes */
unsigned sequence:1, elemental:1, pure:1, recursive:1;
@@ -539,7 +549,7 @@ gfc_array_spec;
/* Components of derived types. */
typedef struct gfc_component
{
- char name[GFC_MAX_SYMBOL_LEN + 1];
+ const char *name;
gfc_typespec ts;
int pointer, dimension;
@@ -570,7 +580,7 @@ gfc_formal_arglist;
/* The gfc_actual_arglist structure is for actual arguments. */
typedef struct gfc_actual_arglist
{
- char name[GFC_MAX_SYMBOL_LEN + 1];
+ const char *name;
/* Alternate return label when the expr member is null. */
struct gfc_st_label *label;
@@ -635,7 +645,7 @@ gfc_interface;
/* User operator nodes. These are like stripped down symbols. */
typedef struct
{
- char name[GFC_MAX_SYMBOL_LEN + 1];
+ const char *name;
gfc_interface *operator;
struct gfc_namespace *ns;
@@ -651,8 +661,8 @@ gfc_user_op;
typedef struct gfc_symbol
{
- char name[GFC_MAX_SYMBOL_LEN + 1]; /* Primary name, before renaming */
- char module[GFC_MAX_SYMBOL_LEN + 1]; /* Module this symbol came from */
+ const char *name; /* Primary name, before renaming */
+ const char *module; /* Module this symbol came from */
locus declared_at;
gfc_typespec ts;
@@ -743,7 +753,7 @@ gfc_entry_list;
typedef struct gfc_symtree
{
BBT_HEADER (gfc_symtree);
- char name[GFC_MAX_SYMBOL_LEN + 1];
+ const char *name;
int ambiguous;
union
{
@@ -1002,7 +1012,7 @@ gfc_resolve_f;
typedef struct gfc_intrinsic_sym
{
- char name[GFC_MAX_SYMBOL_LEN + 1], lib_name[GFC_MAX_SYMBOL_LEN + 1];
+ const char *name, *lib_name;
gfc_intrinsic_arg *formal;
gfc_typespec ts;
int elemental, pure, generic, specific, actual_ok, standard;
@@ -1043,15 +1053,11 @@ typedef struct gfc_expr
int rank;
mpz_t *shape; /* Can be NULL if shape is unknown at compile time */
- gfc_intrinsic_op operator;
-
/* Nonnull for functions and structure constructors */
gfc_symtree *symtree;
- gfc_user_op *uop;
gfc_ref *ref;
- struct gfc_expr *op1, *op2;
locus where;
union
@@ -1069,6 +1075,14 @@ typedef struct gfc_expr
struct
{
+ gfc_intrinsic_op operator;
+ gfc_user_op *uop;
+ struct gfc_expr *op1, *op2;
+ }
+ op;
+
+ struct
+ {
gfc_actual_arglist *actual;
const char *name; /* Points to the ultimate name of the function */
gfc_intrinsic_sym *isym;
@@ -1388,6 +1402,9 @@ typedef struct
int warn_surprising;
int warn_unused_labels;
+ int flag_default_double;
+ int flag_default_integer;
+ int flag_default_real;
int flag_dollar_ok;
int flag_underscoring;
int flag_second_underscore;
@@ -1399,9 +1416,7 @@ typedef struct
int flag_repack_arrays;
int q_kind;
- int r8;
- int i8;
- int d8;
+
int warn_std;
int allow_std;
int warn_nonstd_intrinsics;
@@ -1551,6 +1566,7 @@ void gfc_arith_done_1 (void);
int gfc_validate_kind (bt, int, bool);
extern int gfc_index_integer_kind;
extern int gfc_default_integer_kind;
+extern int gfc_max_integer_kind;
extern int gfc_default_real_kind;
extern int gfc_default_double_kind;
extern int gfc_default_character_kind;
@@ -1619,7 +1635,7 @@ void gfc_free_st_label (gfc_st_label *);
void gfc_define_st_label (gfc_st_label *, gfc_sl_type, locus *);
try gfc_reference_st_label (gfc_st_label *, gfc_sl_type);
-gfc_namespace *gfc_get_namespace (gfc_namespace *);
+gfc_namespace *gfc_get_namespace (gfc_namespace *, int);
gfc_symtree *gfc_new_symtree (gfc_symtree **, const char *);
gfc_symtree *gfc_find_symtree (gfc_symtree *, const char *);
gfc_user_op *gfc_get_uop (const char *);
@@ -1649,8 +1665,8 @@ void gfc_save_all (gfc_namespace *);
void gfc_symbol_state (void);
-gfc_gsymbol *gfc_get_gsymbol (char *);
-gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, char *);
+gfc_gsymbol *gfc_get_gsymbol (const char *);
+gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, const char *);
/* intrinsic.c */
extern int gfc_init_expr;
@@ -1659,7 +1675,7 @@ extern int gfc_init_expr;
by placing it into a special module that is otherwise impossible to
read or write. */
-#define gfc_intrinsic_symbol(SYM) strcpy (SYM->module, "(intrinsic)")
+#define gfc_intrinsic_symbol(SYM) SYM->module = gfc_get_string ("(intrinsic)")
void gfc_intrinsic_init_1 (void);
void gfc_intrinsic_done_1 (void);
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index c3242f7b5a3..442145bbf9f 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -109,25 +109,31 @@ the GNU Fortran 95 compiler. You can find in this manual how to invoke
@ifset DEVELOPMENT
@emph{Warning:} This document, and the compiler it describes, are still
-under development. While efforts are made too keep it up-to-date it might
+under development. While efforts are made to keep it up-to-date, it might
not accurately reflect the status of the most recent @command{gfortran}.
@end ifset
+@comment
+@comment When you add a new menu item, please keep the right hand
+@comment aligned to the same column. Do not use tabs. This provides
+@comment better formatting.
+@comment
@menu
-* Copying:: GNU General Public License says
- how you can copy and share GNU Fortran.
+* Copying:: GNU General Public License says
+ how you can copy and share GNU Fortran.
* GNU Free Documentation License::
- How you can copy and share this manual.
-* Funding:: How to help assure continued work for free software.
-* Getting Started:: What you should know about @command{gfortran}.
-* GFORTRAN and GCC:: You can compile Fortran, C, or other programs.
-* GFORTRAN and G77:: Why we choose to start from scratch.
+ How you can copy and share this manual.
+* Funding:: How to help assure continued work for free software.
+* Getting Started:: What you should know about @command{gfortran}.
+* GFORTRAN and GCC:: You can compile Fortran, C, or other programs.
+* GFORTRAN and G77:: Why we chose to start from scratch.
* Invoking GFORTRAN:: Command options supported by @command{gfortran}.
-* Project Status:: Status of @command{gfortran}, Roadmap, proposed extensions.
-* Contributing:: Helping you can help.
-* Standards:: Standards supported by @command{gfortran}
-* Extensions:: Language extensions implemented by @command{gfortran}
-* Index:: Index of this documentation.
+* Project Status:: Status of @command{gfortran}, roadmap, proposed extensions.
+* Contributing:: How you can help.
+* Standards:: Standards supported by @command{gfortran}
+* Extensions:: Language extensions implemented by @command{gfortran}
+* Intrinsic Procedures:: Intrinsic procedures supported by @command{gfortran}
+* Index:: Index of this documentation.
@end menu
@@ -168,9 +174,18 @@ designed initially as a free replacement for,
or alternative to, the unix @command{f95} command;
@command{gfortran} is command you'll use to invoke the compiler.
-Gfortran is still in an early state of development.
-@command{gfortran} can generate code for most constructs and expressions,
-but much work remains to be done.
+@emph{Gfortran is not yet a fully conformant Fortran 95 compiler}.
+It can generate code for most constructs and expressions,
+but work remains to be done. In particular, there are known
+deficiencies with ENTRY, NAMELIST, and sophisticated use of
+MODULES, POINTERS and DERIVED TYPES. For those whose Fortran
+codes conform to either the Fortran 77 standard or the
+GNU Fortran 77 language, we recommend to use @command{g77}
+from GCC 3.4. We recommend that distributors continue to provide
+packages of g77-3.4 until we announce that @command{gfortran}
+fully replaces @command{g77}.
+The gfortran developers welcome any feedback on user experience
+with @command{gfortran} at @email{fortran@@gcc.gnu.org}.
When @command{gfortran} is finished,
it will do everything you expect from any decent compiler:
@@ -369,7 +384,6 @@ because it was expected to be easier to maintain code we
develop ourselves than to do a major overhaul of @command{g77} first,
and then build a Fortran 95 compiler out of it.
-
@include invoke.texi
@c ---------------------------------------------------------------------
@@ -670,6 +684,7 @@ Examples of standard conforming code equivalent to the above example, are:
DATA i,j,x /1,2,3*0.,1./
@end smallexample
+@include intrinsic.texi
@c ---------------------------------------------------------------------
@c Contributing
@c ---------------------------------------------------------------------
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index 71555e48cbe..ecbf9a27aac 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -340,8 +340,9 @@ gfc_compare_types (gfc_typespec * ts1, gfc_typespec * ts2)
true names and module names are the same and the module name is
nonnull, then they are equal. */
if (strcmp (ts1->derived->name, ts2->derived->name) == 0
- && ts1->derived->module[0] != '\0'
- && strcmp (ts1->derived->module, ts2->derived->module) == 0)
+ && ((ts1->derived->module == NULL && ts2->derived->module == NULL)
+ || (ts1->derived != NULL && ts2->derived != NULL
+ && strcmp (ts1->derived->module, ts2->derived->module) == 0)))
return 1;
/* Compare type via the rules of the standard. Both types must have
@@ -1165,7 +1166,7 @@ compare_actual_formal (gfc_actual_arglist ** ap,
for (a = actual; a; a = a->next, f = f->next)
{
- if (a->name[0] != '\0')
+ if (a->name != NULL)
{
i = 0;
for (f = formal; f; f = f->next, i++)
@@ -1640,21 +1641,21 @@ gfc_extend_expr (gfc_expr * e)
sym = NULL;
actual = gfc_get_actual_arglist ();
- actual->expr = e->op1;
+ actual->expr = e->value.op.op1;
- if (e->op2 != NULL)
+ if (e->value.op.op2 != NULL)
{
actual->next = gfc_get_actual_arglist ();
- actual->next->expr = e->op2;
+ actual->next->expr = e->value.op.op2;
}
- i = fold_unary (e->operator);
+ i = fold_unary (e->value.op.operator);
if (i == INTRINSIC_USER)
{
for (ns = gfc_current_ns; ns; ns = ns->parent)
{
- uop = gfc_find_uop (e->uop->name, ns);
+ uop = gfc_find_uop (e->value.op.uop->name, ns);
if (uop == NULL)
continue;
@@ -1687,6 +1688,8 @@ gfc_extend_expr (gfc_expr * e)
e->expr_type = EXPR_FUNCTION;
e->symtree = find_sym_in_symtree (sym);
e->value.function.actual = actual;
+ e->value.function.esym = NULL;
+ e->value.function.isym = NULL;
if (gfc_pure (NULL) && !gfc_pure (sym))
{
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index 03d443f3c52..7336e63d552 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -37,7 +37,8 @@ int gfc_init_expr = 0;
/* Pointers to an intrinsic function and its argument names that are being
checked. */
-char *gfc_current_intrinsic, *gfc_current_intrinsic_arg[MAX_INTRINSIC_ARGS];
+const char *gfc_current_intrinsic;
+const char *gfc_current_intrinsic_arg[MAX_INTRINSIC_ARGS];
locus *gfc_current_intrinsic_where;
static gfc_intrinsic_sym *functions, *subroutines, *conversion, *next_sym;
@@ -107,7 +108,7 @@ gfc_get_intrinsic_sub_symbol (const char * name)
/* Return a pointer to the name of a conversion function given two
typespecs. */
-static char *
+static const char *
conv_name (gfc_typespec * from, gfc_typespec * to)
{
static char name[30];
@@ -115,7 +116,7 @@ conv_name (gfc_typespec * from, gfc_typespec * to)
sprintf (name, "__convert_%c%d_%c%d", gfc_type_letter (from->type),
from->kind, gfc_type_letter (to->type), to->kind);
- return name;
+ return gfc_get_string (name);
}
@@ -127,7 +128,7 @@ static gfc_intrinsic_sym *
find_conv (gfc_typespec * from, gfc_typespec * to)
{
gfc_intrinsic_sym *sym;
- char *target;
+ const char *target;
int i;
target = conv_name (from, to);
@@ -213,7 +214,7 @@ add_sym (const char *name, int elemental, int actual_ok ATTRIBUTE_UNUSED,
bt type, int kind, int standard, gfc_check_f check,
gfc_simplify_f simplify, gfc_resolve_f resolve, ...)
{
-
+ char buf[GFC_MAX_SYMBOL_LEN + 11]; /* 10 for '_gfortran_', 1 for '\0' */
int optional, first_flag;
va_list argp;
@@ -233,10 +234,11 @@ add_sym (const char *name, int elemental, int actual_ok ATTRIBUTE_UNUSED,
break;
case SZ_NOTHING:
- strcpy (next_sym->name, name);
+ next_sym->name = gfc_get_string (name);
- strcpy (next_sym->lib_name, "_gfortran_");
- strcat (next_sym->lib_name, name);
+ strcpy (buf, "_gfortran_");
+ strcat (buf, name);
+ next_sym->lib_name = gfc_get_string (buf);
next_sym->elemental = elemental;
next_sym->ts.type = type;
@@ -785,11 +787,11 @@ make_generic (const char *name, gfc_generic_isym_id generic_id, int standard)
g->generic = 1;
g->specific = 1;
g->generic_id = generic_id;
- if ((g + 1)->name[0] != '\0')
+ if ((g + 1)->name != NULL)
g->specific_head = g + 1;
g++;
- while (g->name[0] != '\0')
+ while (g->name != NULL)
{
g->next = g + 1;
g->specific = 1;
@@ -828,7 +830,7 @@ make_alias (const char *name, int standard)
case SZ_NOTHING:
next_sym[0] = next_sym[-1];
- strcpy (next_sym->name, name);
+ next_sym->name = gfc_get_string (name);
next_sym++;
break;
@@ -894,7 +896,7 @@ add_functions (void)
make_generic ("abs", GFC_ISYM_ABS, GFC_STD_F77);
add_sym_1 ("achar", 1, 1, BT_CHARACTER, dc, GFC_STD_F95,
- NULL, gfc_simplify_achar, NULL,
+ gfc_check_achar, gfc_simplify_achar, NULL,
i, BT_INTEGER, di, REQUIRED);
make_generic ("achar", GFC_ISYM_ACHAR, GFC_STD_F95);
@@ -1090,6 +1092,12 @@ add_functions (void)
make_generic ("char", GFC_ISYM_CHAR, GFC_STD_F77);
+ add_sym_1 ("chdir", 0, 1, BT_INTEGER, di, GFC_STD_GNU,
+ gfc_check_chdir, NULL, gfc_resolve_chdir,
+ a, BT_CHARACTER, dc, REQUIRED);
+
+ make_generic ("chdir", GFC_ISYM_CHDIR, GFC_STD_GNU);
+
add_sym_3 ("cmplx", 1, 1, BT_COMPLEX, dz, GFC_STD_F77,
gfc_check_cmplx, gfc_simplify_cmplx, gfc_resolve_cmplx,
x, BT_UNKNOWN, dr, REQUIRED, y, BT_UNKNOWN, dr, OPTIONAL,
@@ -1321,6 +1329,12 @@ add_functions (void)
make_generic ("getuid", GFC_ISYM_GETUID, GFC_STD_GNU);
+ add_sym_1 ("hostnm", 0, 1, BT_INTEGER, di, GFC_STD_GNU,
+ gfc_check_hostnm, NULL, gfc_resolve_hostnm,
+ a, BT_CHARACTER, dc, REQUIRED);
+
+ make_generic ("hostnm", GFC_ISYM_HOSTNM, GFC_STD_GNU);
+
add_sym_1 ("huge", 0, 1, BT_REAL, dr, GFC_STD_F95,
gfc_check_huge, gfc_simplify_huge, NULL,
x, BT_UNKNOWN, dr, REQUIRED);
@@ -1381,6 +1395,11 @@ add_functions (void)
make_generic ("ieor", GFC_ISYM_IEOR, GFC_STD_F95);
+ add_sym_0 ("ierrno", 1, 0, BT_INTEGER, di, GFC_STD_GNU,
+ NULL, NULL, gfc_resolve_ierrno);
+
+ make_generic ("ierrno", GFC_ISYM_IERRNO, GFC_STD_GNU);
+
add_sym_3 ("index", 1, 1, BT_INTEGER, di, GFC_STD_F77,
gfc_check_index, gfc_simplify_index, NULL,
stg, BT_CHARACTER, dc, REQUIRED, ssg, BT_CHARACTER, dc, REQUIRED,
@@ -1428,6 +1447,12 @@ add_functions (void)
make_generic ("ishftc", GFC_ISYM_ISHFTC, GFC_STD_F95);
+ add_sym_2 ("kill", 1, 1, BT_INTEGER, di, GFC_STD_GNU,
+ gfc_check_kill, NULL, gfc_resolve_kill,
+ a, BT_INTEGER, di, REQUIRED, b, BT_INTEGER, di, REQUIRED);
+
+ make_generic ("kill", GFC_ISYM_KILL, GFC_STD_GNU);
+
add_sym_1 ("kind", 0, 1, BT_INTEGER, di, GFC_STD_F95,
gfc_check_kind, gfc_simplify_kind, NULL,
x, BT_REAL, dr, REQUIRED);
@@ -1450,6 +1475,8 @@ add_functions (void)
NULL, gfc_simplify_len_trim, gfc_resolve_len_trim,
stg, BT_CHARACTER, dc, REQUIRED);
+ make_alias ("lnblnk", GFC_STD_GNU);
+
make_generic ("len_trim", GFC_ISYM_LEN_TRIM, GFC_STD_F95);
add_sym_2 ("lge", 1, 0, BT_LOGICAL, dl, GFC_STD_F77,
@@ -1476,6 +1503,12 @@ add_functions (void)
make_generic ("llt", GFC_ISYM_LLT, GFC_STD_F77);
+ add_sym_2 ("link", 0, 1, BT_INTEGER, di, GFC_STD_GNU,
+ gfc_check_link, NULL, gfc_resolve_link,
+ a, BT_CHARACTER, dc, REQUIRED, b, BT_CHARACTER, dc, REQUIRED);
+
+ make_generic ("link", GFC_ISYM_LINK, GFC_STD_GNU);
+
add_sym_1 ("log", 1, 1, BT_REAL, dr, GFC_STD_F77,
gfc_check_fn_rc, gfc_simplify_log, gfc_resolve_log,
x, BT_REAL, dr, REQUIRED);
@@ -1742,6 +1775,12 @@ add_functions (void)
make_generic ("real", GFC_ISYM_REAL, GFC_STD_F77);
+ add_sym_2 ("rename", 0, 1, BT_INTEGER, di, GFC_STD_GNU,
+ gfc_check_rename, NULL, gfc_resolve_rename,
+ a, BT_CHARACTER, dc, REQUIRED, b, BT_CHARACTER, dc, REQUIRED);
+
+ make_generic ("rename", GFC_ISYM_RENAME, GFC_STD_GNU);
+
add_sym_2 ("repeat", 0, 1, BT_CHARACTER, dc, GFC_STD_F95,
gfc_check_repeat, gfc_simplify_repeat, gfc_resolve_repeat,
stg, BT_CHARACTER, dc, REQUIRED, n, BT_INTEGER, di, REQUIRED);
@@ -1781,7 +1820,7 @@ add_functions (void)
make_generic ("second", GFC_ISYM_SECOND, GFC_STD_GNU);
add_sym_1 ("selected_int_kind", 0, 1, BT_INTEGER, di, GFC_STD_F95,
- NULL, gfc_simplify_selected_int_kind, NULL,
+ gfc_check_selected_int_kind, gfc_simplify_selected_int_kind, NULL,
r, BT_INTEGER, di, REQUIRED);
make_generic ("selected_int_kind", GFC_ISYM_SI_KIND, GFC_STD_F95);
@@ -1902,6 +1941,12 @@ add_functions (void)
make_generic ("sum", GFC_ISYM_SUM, GFC_STD_F95);
+ add_sym_2 ("symlnk", 0, 1, BT_INTEGER, di, GFC_STD_GNU,
+ gfc_check_symlnk, NULL, gfc_resolve_symlnk,
+ a, BT_CHARACTER, dc, REQUIRED, b, BT_CHARACTER, dc, REQUIRED);
+
+ make_generic ("symlnk", GFC_ISYM_SYMLNK, GFC_STD_GNU);
+
add_sym_1 ("system", 1, 1, BT_INTEGER, di, GFC_STD_GNU,
NULL, NULL, NULL,
c, BT_CHARACTER, dc, REQUIRED);
@@ -1928,6 +1973,16 @@ add_functions (void)
make_generic ("tanh", GFC_ISYM_TANH, GFC_STD_F77);
+ add_sym_0 ("time", 1, 0, BT_INTEGER, di, GFC_STD_GNU,
+ NULL, NULL, gfc_resolve_time);
+
+ make_generic ("time", GFC_ISYM_TIME, GFC_STD_GNU);
+
+ add_sym_0 ("time8", 1, 0, BT_INTEGER, di, GFC_STD_GNU,
+ NULL, NULL, gfc_resolve_time8);
+
+ make_generic ("time8", GFC_ISYM_TIME8, GFC_STD_GNU);
+
add_sym_1 ("tiny", 0, 1, BT_REAL, dr, GFC_STD_F95,
gfc_check_x, gfc_simplify_tiny, NULL,
x, BT_REAL, dr, REQUIRED);
@@ -2022,6 +2077,10 @@ add_subroutines (void)
gfc_check_second_sub, NULL, gfc_resolve_second_sub,
tm, BT_REAL, dr, REQUIRED);
+ add_sym_2s ("chdir", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_chdir_sub, NULL, gfc_resolve_chdir_sub,
+ name, BT_CHARACTER, dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
+
add_sym_4s ("date_and_time", 0, 1, BT_UNKNOWN, 0, GFC_STD_F95,
gfc_check_date_and_time, NULL, NULL,
dt, BT_CHARACTER, dc, OPTIONAL, tm, BT_CHARACTER, dc, OPTIONAL,
@@ -2036,6 +2095,10 @@ add_subroutines (void)
gfc_check_etime_sub, NULL, gfc_resolve_etime_sub,
vl, BT_REAL, 4, REQUIRED, tm, BT_REAL, 4, REQUIRED);
+ add_sym_1s ("gerror", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_gerror, NULL, gfc_resolve_gerror, c, BT_CHARACTER,
+ dc, REQUIRED);
+
add_sym_2s ("getcwd", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
gfc_check_getcwd_sub, NULL, gfc_resolve_getcwd_sub,
c, BT_CHARACTER, dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
@@ -2048,6 +2111,10 @@ add_subroutines (void)
NULL, NULL, gfc_resolve_getarg,
c, BT_INTEGER, di, REQUIRED, vl, BT_CHARACTER, dc, REQUIRED);
+ add_sym_1s ("getlog", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_getlog, NULL, gfc_resolve_getlog, c, BT_CHARACTER,
+ dc, REQUIRED);
+
/* F2003 commandline routines. */
add_sym_3s ("get_command", 0, 1, BT_UNKNOWN, 0, GFC_STD_F2003,
@@ -2096,6 +2163,32 @@ add_subroutines (void)
gfc_check_flush, NULL, gfc_resolve_flush,
c, BT_INTEGER, di, OPTIONAL);
+ add_sym_2s ("hostnm", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_hostnm_sub, NULL, gfc_resolve_hostnm_sub,
+ c, BT_CHARACTER, dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
+
+ add_sym_3s ("kill", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_kill_sub,
+ NULL, gfc_resolve_kill_sub, c, BT_INTEGER, di, REQUIRED,
+ val, BT_INTEGER, di, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
+
+ add_sym_3s ("link", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_link_sub, NULL, gfc_resolve_link_sub,
+ name, BT_CHARACTER, dc, REQUIRED, val, BT_CHARACTER,
+ dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
+
+ add_sym_1s ("perror", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_perror, NULL, gfc_resolve_perror,
+ c, BT_CHARACTER, dc, REQUIRED);
+
+ add_sym_3s ("rename", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_rename_sub, NULL, gfc_resolve_rename_sub,
+ name, BT_CHARACTER, dc, REQUIRED, val, BT_CHARACTER,
+ dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
+
+ add_sym_1s ("sleep", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_sleep_sub, NULL, gfc_resolve_sleep_sub,
+ val, BT_CHARACTER, dc, REQUIRED);
+
add_sym_3s ("fstat", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
gfc_check_fstat_sub, NULL, gfc_resolve_fstat_sub,
ut, BT_INTEGER, di, REQUIRED, vl, BT_INTEGER, di, REQUIRED,
@@ -2106,6 +2199,11 @@ add_subroutines (void)
name, BT_CHARACTER, dc, REQUIRED, vl, BT_INTEGER, di, REQUIRED,
st, BT_INTEGER, di, OPTIONAL);
+ add_sym_3s ("symlnk", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
+ gfc_check_symlnk_sub, NULL, gfc_resolve_symlnk_sub,
+ name, BT_CHARACTER, dc, REQUIRED, val, BT_CHARACTER,
+ dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
+
add_sym_2s ("system", 0, 1, BT_UNKNOWN, 0, GFC_STD_GNU,
NULL, NULL, gfc_resolve_system_sub,
c, BT_CHARACTER, dc, REQUIRED, st, BT_INTEGER, di, OPTIONAL);
@@ -2152,8 +2250,8 @@ add_conv (bt from_type, int from_kind, bt to_type, int to_kind,
sym = conversion + nconv;
- strcpy (sym->name, conv_name (&from, &to));
- strcpy (sym->lib_name, sym->name);
+ sym->name = conv_name (&from, &to);
+ sym->lib_name = sym->name;
sym->simplify.cc = simplify;
sym->elemental = 1;
sym->ts = to;
@@ -2241,7 +2339,7 @@ gfc_intrinsic_init_1 (void)
nargs = nfunc = nsub = nconv = 0;
/* Create a namespace to hold the resolved intrinsic symbols. */
- gfc_intrinsic_namespace = gfc_get_namespace (NULL);
+ gfc_intrinsic_namespace = gfc_get_namespace (NULL, 0);
sizing = SZ_FUNCS;
add_functions ();
@@ -2359,7 +2457,7 @@ sort_actual (const char *name, gfc_actual_arglist ** ap,
if (a == NULL)
goto optional;
- if (a->name[0] != '\0')
+ if (a->name != NULL)
goto keywords;
f->actual = a;
diff --git a/gcc/fortran/intrinsic.h b/gcc/fortran/intrinsic.h
index 41593efe9c1..bf2c80a0c7e 100644
--- a/gcc/fortran/intrinsic.h
+++ b/gcc/fortran/intrinsic.h
@@ -1,6 +1,7 @@
/* Header file for intrinsics check, resolve and simplify function
prototypes.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
Contributed by Andy Vaught & Katherine Holcomb
This file is part of GCC.
@@ -31,6 +32,7 @@ try gfc_check_a_xkind (gfc_expr *, gfc_expr *);
try gfc_check_a_p (gfc_expr *, gfc_expr *);
try gfc_check_abs (gfc_expr *);
+try gfc_check_achar (gfc_expr *);
try gfc_check_all_any (gfc_expr *, gfc_expr *);
try gfc_check_allocated (gfc_expr *);
try gfc_check_associated (gfc_expr *, gfc_expr *);
@@ -38,6 +40,7 @@ try gfc_check_atan2 (gfc_expr *, gfc_expr *);
try gfc_check_besn (gfc_expr *, gfc_expr *);
try gfc_check_btest (gfc_expr *, gfc_expr *);
try gfc_check_char (gfc_expr *, gfc_expr *);
+try gfc_check_chdir (gfc_expr *);
try gfc_check_cmplx (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_count (gfc_expr *, gfc_expr *);
try gfc_check_cshift (gfc_expr *, gfc_expr *, gfc_expr *);
@@ -53,6 +56,7 @@ try gfc_check_fn_r (gfc_expr *);
try gfc_check_fn_rc (gfc_expr *);
try gfc_check_fnum (gfc_expr *);
try gfc_check_g77_math1 (gfc_expr *);
+try gfc_check_hostnm (gfc_expr *);
try gfc_check_huge (gfc_expr *);
try gfc_check_i (gfc_expr *);
try gfc_check_iand (gfc_expr *, gfc_expr *);
@@ -67,8 +71,10 @@ try gfc_check_ior (gfc_expr *, gfc_expr *);
try gfc_check_irand (gfc_expr *);
try gfc_check_ishft (gfc_expr *, gfc_expr *);
try gfc_check_ishftc (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_kill (gfc_expr *, gfc_expr *);
try gfc_check_kind (gfc_expr *);
try gfc_check_lbound (gfc_expr *, gfc_expr *);
+try gfc_check_link (gfc_expr *, gfc_expr *);
try gfc_check_logical (gfc_expr *, gfc_expr *);
try gfc_check_min_max (gfc_actual_arglist *);
try gfc_check_min_max_integer (gfc_actual_arglist *);
@@ -88,11 +94,13 @@ try gfc_check_radix (gfc_expr *);
try gfc_check_rand (gfc_expr *);
try gfc_check_range (gfc_expr *);
try gfc_check_real (gfc_expr *, gfc_expr *);
+try gfc_check_rename (gfc_expr *, gfc_expr *);
try gfc_check_repeat (gfc_expr *, gfc_expr *);
try gfc_check_reshape (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_scale (gfc_expr *, gfc_expr *);
try gfc_check_scan (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_second_sub (gfc_expr *);
+try gfc_check_selected_int_kind (gfc_expr *);
try gfc_check_selected_real_kind (gfc_expr *, gfc_expr *);
try gfc_check_set_exponent (gfc_expr *, gfc_expr *);
try gfc_check_shape (gfc_expr *);
@@ -102,6 +110,7 @@ try gfc_check_spread (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_srand (gfc_expr *);
try gfc_check_stat (gfc_expr *, gfc_expr *);
try gfc_check_sum (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_symlnk (gfc_expr *, gfc_expr *);
try gfc_check_transfer (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_transpose (gfc_expr *);
try gfc_check_trim (gfc_expr *);
@@ -114,18 +123,28 @@ try gfc_check_x (gfc_expr *);
/* Intrinsic subroutines. */
+try gfc_check_chdir_sub (gfc_expr *, gfc_expr *);
try gfc_check_cpu_time (gfc_expr *);
try gfc_check_system_clock (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_date_and_time (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_exit (gfc_expr *);
try gfc_check_flush (gfc_expr *);
try gfc_check_fstat_sub (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_gerror (gfc_expr *);
+try gfc_check_getlog (gfc_expr *);
try gfc_check_mvbits (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
gfc_expr *);
try gfc_check_random_number (gfc_expr *);
try gfc_check_random_seed (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_etime_sub (gfc_expr *, gfc_expr *);
try gfc_check_getcwd_sub (gfc_expr *, gfc_expr *);
+try gfc_check_hostnm_sub (gfc_expr *, gfc_expr *);
+try gfc_check_kill_sub (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_perror (gfc_expr *);
+try gfc_check_rename_sub (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_link_sub (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_symlnk_sub (gfc_expr *, gfc_expr *, gfc_expr *);
+try gfc_check_sleep_sub (gfc_expr *);
try gfc_check_stat_sub (gfc_expr *, gfc_expr *, gfc_expr *);
try gfc_check_system_sub (gfc_expr *, gfc_expr *);
try gfc_check_umask_sub (gfc_expr *, gfc_expr *);
@@ -253,6 +272,7 @@ void gfc_resolve_besn (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_btest (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ceiling (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_char (gfc_expr *, gfc_expr *, gfc_expr *);
+void gfc_resolve_chdir (gfc_expr *, gfc_expr *);
void gfc_resolve_cmplx (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_dcmplx (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_conjg (gfc_expr *, gfc_expr *);
@@ -278,10 +298,12 @@ void gfc_resolve_getcwd (gfc_expr *, gfc_expr *);
void gfc_resolve_getgid (gfc_expr *);
void gfc_resolve_getpid (gfc_expr *);
void gfc_resolve_getuid (gfc_expr *);
+void gfc_resolve_hostnm (gfc_expr *, gfc_expr *);
void gfc_resolve_iand (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ibclr (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ibits (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ibset (gfc_expr *, gfc_expr *, gfc_expr *);
+void gfc_resolve_ierrno (gfc_expr *);
void gfc_resolve_ieor (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ichar (gfc_expr *, gfc_expr *);
void gfc_resolve_idnint (gfc_expr *, gfc_expr *);
@@ -289,9 +311,11 @@ void gfc_resolve_int (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ior (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ishft (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_ishftc (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
+void gfc_resolve_kill (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_lbound (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_len (gfc_expr *, gfc_expr *);
void gfc_resolve_len_trim (gfc_expr *, gfc_expr *);
+void gfc_resolve_link (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_log (gfc_expr *, gfc_expr *);
void gfc_resolve_log10 (gfc_expr *, gfc_expr *);
void gfc_resolve_logical (gfc_expr *, gfc_expr *, gfc_expr *);
@@ -311,6 +335,7 @@ void gfc_resolve_not (gfc_expr *, gfc_expr *);
void gfc_resolve_pack (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_product (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_real (gfc_expr *, gfc_expr *, gfc_expr *);
+void gfc_resolve_rename (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_repeat (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_reshape (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
gfc_expr *);
@@ -329,9 +354,12 @@ void gfc_resolve_sqrt (gfc_expr *, gfc_expr *);
void gfc_resolve_stat (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_srand (gfc_code *);
void gfc_resolve_sum (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
+void gfc_resolve_symlnk (gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_system (gfc_expr *, gfc_expr *);
void gfc_resolve_tan (gfc_expr *, gfc_expr *);
void gfc_resolve_tanh (gfc_expr *, gfc_expr *);
+void gfc_resolve_time (gfc_expr *);
+void gfc_resolve_time8 (gfc_expr *);
void gfc_resolve_transfer (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
void gfc_resolve_transpose (gfc_expr *, gfc_expr *);
void gfc_resolve_trim (gfc_expr *, gfc_expr *);
@@ -343,17 +371,27 @@ void gfc_resolve_verify (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
/* Intrinsic subroutine resolution. */
+void gfc_resolve_chdir_sub (gfc_code *);
void gfc_resolve_cpu_time (gfc_code *);
void gfc_resolve_exit (gfc_code *);
void gfc_resolve_flush (gfc_code *);
void gfc_resolve_fstat_sub (gfc_code *);
+void gfc_resolve_gerror (gfc_code *);
void gfc_resolve_getarg (gfc_code *);
void gfc_resolve_getcwd_sub (gfc_code *);
+void gfc_resolve_getlog (gfc_code *);
void gfc_resolve_get_command (gfc_code *);
void gfc_resolve_get_command_argument (gfc_code *);
void gfc_resolve_get_environment_variable (gfc_code *);
+void gfc_resolve_hostnm_sub (gfc_code *);
+void gfc_resolve_kill_sub (gfc_code *);
void gfc_resolve_mvbits (gfc_code *);
+void gfc_resolve_perror (gfc_code *);
void gfc_resolve_random_number (gfc_code *);
+void gfc_resolve_rename_sub (gfc_code *);
+void gfc_resolve_link_sub (gfc_code *);
+void gfc_resolve_symlnk_sub (gfc_code *);
+void gfc_resolve_sleep_sub (gfc_code *);
void gfc_resolve_stat_sub (gfc_code *);
void gfc_resolve_system_clock (gfc_code *);
void gfc_resolve_system_sub (gfc_code *);
@@ -365,6 +403,6 @@ void gfc_resolve_unlink_sub (gfc_code *);
#define MAX_INTRINSIC_ARGS 5
-extern char *gfc_current_intrinsic,
- *gfc_current_intrinsic_arg[MAX_INTRINSIC_ARGS];
+extern const char *gfc_current_intrinsic;
+extern const char *gfc_current_intrinsic_arg[MAX_INTRINSIC_ARGS];
extern locus *gfc_current_intrinsic_where;
diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi
new file mode 100644
index 00000000000..2f13838f1d6
--- /dev/null
+++ b/gcc/fortran/intrinsic.texi
@@ -0,0 +1,1904 @@
+@ignore
+Copyright (C) 2005
+Free Software Foundation, Inc.
+This is part of the GFORTRAN manual.
+For copying conditions, see the file gfortran.texi.
+
+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 gfdl(7) man page.
+
+
+Some basic guidelines for editing this document:
+
+ (1) The intrinsic procedures are to be listed in alphabetical order.
+ (2) The generic name is to be use.
+ (3) The specific names are included in the function index and in a
+ table at the end of the node (See ABS entry).
+ (4) Try to maintain the same style for each entry.
+
+
+@end ignore
+
+@node Intrinsic Procedures
+@chapter Intrinsic Procedures
+@cindex Intrinsic Procedures
+
+This portion of the document is incomplete and undergoing massive expansion
+and editing. All contributions and corrections are strongly encouraged.
+
+@menu
+* Introduction: Introduction
+* @code{ABORT}: ABORT, Abort the program
+* @code{ABS}: ABS, Absolute value
+* @code{ACHAR}: ACHAR, Character in @acronym{ASCII} collating sequence
+* @code{ACOS}: ACOS, Arccosine function
+* @code{ADJUSTL}: ADJUSTL, Left adjust a string
+* @code{ADJUSTR}: ADJUSTR, Right adjust a string
+* @code{AIMAG}: AIMAG, Imaginary part of complex number
+* @code{AINT}: AINT, Truncate to a whole number
+* @code{ALL}: ALL, Determine if all values are true
+* @code{ALLOCATED}: ALLOCATED, Status of allocatable entity
+* @code{ANINT}: ANINT, Nearest whole number
+* @code{ANY}: ANY, Determine if any values are true
+* @code{ASIN}: ASIN, Arcsine function
+* @code{ATAN}: ATAN, Arctangent function
+* @code{BESJ0}: BESJ0, Bessel function of the first kind of order 0
+* @code{BESJ1}: BESJ1, Bessel function of the first kind of order 1
+* @code{BESJN}: BESJN, Bessel function of the first kind
+* @code{BESY0}: BESY0, Bessel function of the second kind of order 0
+* @code{BESY1}: BESY1, Bessel function of the second kind of order 1
+* @code{BESYN}: BESYN, Bessel function of the second kind
+* @code{COS}: COS, Cosine function
+* @code{COSH}: COSH, Hyperbolic cosine function
+* @code{ERF}: ERF, Error function
+* @code{ERFC}: ERFC, Complementary error function
+* @code{EXP}: EXP, Cosine function
+* @code{LOG}: LOG, Logarithm function
+* @code{LOG10}: LOG10, Base 10 logarithm function
+* @code{SQRT}: SQRT, Square-root function
+* @code{SIN}: SIN, Sine function
+* @code{SINH}: SINH, Hyperbolic sine function
+* @code{TAN}: TAN, Tangent function
+* @code{TANH}: TANH, Hyperbolic tangent function
+@end menu
+
+@node Introduction
+@section Introduction to intrinsic procedures
+
+Gfortran provides a rich set of intrinsic procedures that includes all
+the intrinsic procedures required by the Fortran 95 standard, a set of
+intrinsic procedures for backwards compatibility with Gnu Fortran 77
+(i.e., @command{g77}), and a small selection of intrinsic procedures
+from the Fortran 2003 standard. Any description here, which conflicts with a
+description in either the Fortran 95 standard or the Fortran 2003 standard,
+is unintentional and the standard(s) should be considered authoritative.
+
+The enumeration of the @code{KIND} type parameter is processor defined in
+the Fortran 95 standard. Gfortran defines the default integer type and
+default real type by @code{INTEGER(KIND=4)} and @code{REAL(KIND=4)},
+respectively. The standard mandates that both data types shall have
+another kind, which have more precision. On typical target architectures
+supports by @command{gfortran}, this kind type parameter is @code{KIND=8}.
+Hence, @code{REAL(KIND=8)} and @code{DOUBLE PRECISION} are equivalent.
+In the description of generic intrinsic procedures, the kind type parameter
+will be specified by @code{KIND=*}, and in the description of specific
+names for an intrinsic procedure the kind type parameter will be explicitly
+given (e.g., @code{REAL(KIND=4)} or @code{REAL(KIND=8)}). Finally, for
+brevity the optional @code{KIND=} syntax will be omitted.
+
+Many of the intrinsics procedures take one or more optional arguments.
+This document follows the convention used in the Fortran 95 standard,
+and denotes such arguments by square brackets.
+
+@command{Gfortran} offers the @option{-std=f95} and @option{-std=gnu} options,
+which can be used to restrict the set of intrinsic procedures to a
+given standard. By default, @command{gfortran} sets the @option{-std=gnu}
+option, and so all intrinsic procedures describe here are accepted. There
+is one caveat. For a select group of intrinsic procedures, @command{g77}
+implemented both a function and a subroutine. Both classes
+have been implemented in @command{gfortran} for backwards compatibility
+with @command{g77}. It is noted here that these functions and subroutines
+cannot be intermixed in a given subprogram. In the descriptions that follow,
+the applicable option(s) is noted.
+
+
+
+@node ABORT
+@section @code{ABORT} --- Abort the program
+@findex @code{ABORT}
+@cindex abort
+
+@table @asis
+@item @emph{Description}:
+@code{ABORT} causes immediate termination of the program. On operating
+systems that support a core dump, @code{ABORT} will produce a core dump,
+which is suitable for debugging purposes.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+non-elemental subroutine
+
+@item @emph{Syntax}:
+@code{CALL ABORT}
+
+@item @emph{Return value}:
+Does not return.
+
+@item @emph{Example}:
+@smallexample
+program test_abort
+ integer :: i = 1, j = 2
+ if (i /= j) call abort
+end program test_abort
+@end smallexample
+@end table
+
+
+
+@node ABS
+@section @code{ABS} --- Absolute value
+@findex @code{ABS} intrinsic
+@findex @code{CABS} intrinsic
+@findex @code{DABS} intrinsic
+@findex @code{IABS} intrinsic
+@findex @code{ZABS} intrinsic
+@findex @code{CDABS} intrinsic
+@cindex absolute value
+
+@table @asis
+@item @emph{Description}:
+@code{ABS(X)} computes the absolute value of @code{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ABS(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type of the argument shall be an @code{INTEGER(*)},
+@code{REAL(*)}, or @code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of the same type and
+kind as the argument except the return value is @code{REAL(*)} for a
+@code{COMPLEX(*)} argument.
+
+@item @emph{Example}:
+@smallexample
+program test_abs
+ integer :: i = -1
+ real :: x = -1.e0
+ complex :: z = (-1.e0,0.e0)
+ i = abs(i)
+ x = abs(x)
+ x = abs(z)
+end program test_abs
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{CABS(Z)} @tab @code{COMPLEX(4) Z} @tab @code{REAL(4)} @tab f95, gnu
+@item @code{DABS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@item @code{IABS(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab f95, gnu
+@item @code{ZABS(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab gnu
+@item @code{CDABS(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node ACHAR
+@section @code{ACHAR} --- Character in @acronym{ASCII} collating sequence
+@findex @code{ACHAR} intrinsic
+@cindex @acronym{ASCII} collating sequence
+
+@table @asis
+@item @emph{Description}:
+@code{ACHAR(I)} returns the character located at position @code{I}
+in the @acronym{ASCII} collating sequence.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{C = ACHAR(I)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{I} @tab The type shall be an @code{INTEGER(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{CHARACTER} with a length of one. The
+kind type parameter is the same as @code{KIND('A')}.
+
+@item @emph{Example}:
+@smallexample
+program test_achar
+ character c
+ c = achar(32)
+end program test_achar
+@end smallexample
+@end table
+
+
+
+@node ACOS
+@section @code{ACOS} --- Arccosine function
+@findex @code{ACOS} intrinsic
+@findex @code{DACOS} intrinsic
+@cindex arccosine
+
+@table @asis
+@item @emph{Description}:
+@code{ACOS(X)} computes the arccosine of its @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ACOS(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}, and a magnitude that is
+less than one.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it lies in the
+range @math{ 0 \leq \arccos (x) \leq \pi}. The kind type
+parameter is the same as @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_acos
+ real(8) :: x = 0.866_8
+ x = achar(x)
+end program test_acos
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DACOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@node ADJUSTL
+@section @code{ADJUSTL} --- Left adjust a string
+@findex @code{ADJUSTL} intrinsic
+@cindex adjust string
+
+@table @asis
+@item @emph{Description}:
+@code{ADJUSTL(STR)} will left adjust a string by removing leading spaces.
+Spaces are inserted at the end of the string as needed.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{STR = ADJUSTL(STR)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{STR} @tab The type shall be @code{CHARACTER}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{CHARACTER} where leading spaces
+are removed and the same number of spaces are inserted on the end
+of @var{STR}.
+
+@item @emph{Example}:
+@smallexample
+program test_adjustl
+ character(len=20) :: str = ' gfortran'
+ str = adjustl(str)
+ print *, str
+end program test_adjustl
+@end smallexample
+@end table
+
+
+@node ADJUSTR
+@section @code{ADJUSTR} --- Right adjust a string
+@findex @code{ADJUSTR} intrinsic
+@cindex adjust string
+
+@table @asis
+@item @emph{Description}:
+@code{ADJUSTR(STR)} will right adjust a string by removing trailing spaces.
+Spaces are inserted at the start of the string as needed.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{STR = ADJUSTR(STR)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{STR} @tab The type shall be @code{CHARACTER}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{CHARACTER} where trailing spaces
+are removed and the same number of spaces are inserted at the start
+of @var{STR}.
+
+@item @emph{Example}:
+@smallexample
+program test_adjustr
+ character(len=20) :: str = 'gfortran'
+ str = adjustr(str)
+ print *, str
+end program test_adjustr
+@end smallexample
+@end table
+
+
+@node AIMAG
+@section @code{AIMAG} --- Imaginary part of complex number
+@findex @code{AIMAG} intrinsic
+@findex @code{DIMAG} intrinsic
+@cindex Imaginary part
+
+@table @asis
+@item @emph{Description}:
+@code{AIMAG(Z)} yields the imaginary part of complex argument @code{Z}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = AIMAG(Z)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{Z} @tab The type of the argument shall be @code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type real with the
+kind type parameter of the argument.
+
+@item @emph{Example}:
+@smallexample
+program test_aimag
+ complex(4) z4
+ complex(8) z8
+ z4 = cmplx(1.e0_4, 0.e0_4)
+ z8 = cmplx(0.e0_8, 1.e0_8)
+ print *, aimag(z4), dimag(z8)
+end program test_aimag
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DIMAG(Z)} @tab @code{COMPLEX(8) Z} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node AINT
+@section @code{AINT} --- Imaginary part of complex number
+@findex @code{AINT} intrinsic
+@findex @code{DINT} intrinsic
+@cindex whole number
+
+@table @asis
+@item @emph{Description}:
+@code{AINT(X [, KIND])} truncates its argument to a whole number.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = AINT(X)} @*
+@code{X = AINT(X, KIND)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type of the argument shall be @code{REAL(*)}.
+@item @var{KIND} @tab (Optional) @var{KIND} shall be a scalar integer
+initialization expression.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type real with the kind type parameter of the
+argument if the optional @var{KIND} is absence; otherwise, the kind
+type parameter will be given by @var{KIND}. If the magnitude of
+@var{X} is less than one, then @code{AINT(X)} returns zero. If the
+magnitude is equal to or greater than one, then it returns the largest
+whole number that does not exceed its magnitude. The sign is the same
+as the sign of @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_aint
+ real(4) x4
+ real(8) x8
+ x4 = 1.234E0_4
+ x8 = 4.321_8
+ print *, aint(x4), dint(x8)
+ x8 = aint(x4,8)
+end program test_aint
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node ALL
+@section @code{ALL} --- All values in @var{MASK} along @var{DIM} are true
+ @findex @code{ALL} intrinsic
+@cindex true values
+
+@table @asis
+@item @emph{Description}:
+@code{ALL(MASK [, DIM])} determines if all the values are true in @var{MASK}
+in the array along dimension @var{DIM}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+transformational function
+
+@item @emph{Syntax}:
+@code{L = ALL(MASK)} @*
+@code{L = ALL(MASK, DIM)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{MASK} @tab The type of the argument shall be @code{LOGICAL(*)} and
+it shall not be scalar.
+@item @var{DIM} @tab (Optional) @var{DIM} shall be a scalar integer
+with a value that lies between one and the rank of @var{MASK}.
+@end multitable
+
+@item @emph{Return value}:
+@code{ALL(MASK)} returns a scalar value of type @code{LOGICAL(*)} where
+the kind type parameter is the same as the kind type parameter of
+@var{MASK}. If @var{DIM} is present, then @code{ALL(MASK, DIM)} returns
+an array with the rank of @var{MASK} minus 1. The shape is determined from
+the shape of @var{MASK} where the @var{DIM} dimension is elided.
+
+@table @asis
+@item (A)
+@code{ALL(MASK)} is true if all elements of @var{MASK} are true.
+It also is true if @var{MASK} has zero size; otherwise, it is false.
+@item (B)
+If the rank of @var{MASK} is one, then @code{ALL(MASK,DIM)} is equivalent
+to @code{ALL(MASK)}. If the rank is greater than one, then @code{ALL(MASK,DIM)}
+is determined by applying @code{ALL} to the array sections.
+@end table
+
+@item @emph{Example}:
+@smallexample
+program test_all
+ logical l
+ l = all((/.true., .true., .true./))
+ print *, l
+ call section
+ contains
+ subroutine section
+ integer a(2,3), b(2,3)
+ a = 1
+ b = 1
+ b(2,2) = 2
+ print *, all(a .eq. b, 1)
+ print *, all(a .eq. b, 2)
+ end subroutine section
+end program test_all
+@end smallexample
+@end table
+
+
+@node ALLOCATED
+@section @code{ALLOCATED} --- Status of an allocatable entity
+@findex @code{ALLOCATED} intrinsic
+@cindex allocation status
+
+@table @asis
+@item @emph{Description}:
+@code{ALLOCATED(X)} checks the status of wether @var{X} is allocated.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+inquiry function
+
+@item @emph{Syntax}:
+@code{L = ALLOCATED(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The argument shall be an @code{ALLOCATABLE} array.
+@end multitable
+
+@item @emph{Return value}:
+The return value is a scalar @code{LOGICAL} with the default logical
+kind type parameter. If @var{X} is allocated, @code{ALLOCATED(X)}
+is @code{.TRUE.}; otherwise, it returns the @code{.TRUE.}
+
+@item @emph{Example}:
+@smallexample
+program test_allocated
+ integer :: i = 4
+ real(4), allocatable :: x(:)
+ if (allocated(x) .eqv. .false.) allocate(x(i)
+end program test_allocated
+@end smallexample
+@end table
+
+
+@node ANINT
+@section @code{ANINT} --- Imaginary part of complex number
+@findex @code{ANINT} intrinsic
+@findex @code{DNINT} intrinsic
+@cindex whole number
+
+@table @asis
+@item @emph{Description}:
+@code{ANINT(X [, KIND])} rounds its argument to the nearest whole number.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ANINT(X)} @*
+@code{X = ANINT(X, KIND)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type of the argument shall be @code{REAL(*)}.
+@item @var{KIND} @tab (Optional) @var{KIND} shall be a scalar integer
+initialization expression.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type real with the kind type parameter of the
+argument if the optional @var{KIND} is absence; otherwise, the kind
+type parameter will be given by @var{KIND}. If @var{X} is greater than
+zero, then @code{ANINT(X)} returns @code{AINT(X+0.5)}. If @var{X} is
+less than or equal to zero, then return @code{AINT(X-0.5)}.
+
+@item @emph{Example}:
+@smallexample
+program test_anint
+ real(4) x4
+ real(8) x8
+ x4 = 1.234E0_4
+ x8 = 4.321_8
+ print *, anint(x4), dnint(x8)
+ x8 = anint(x4,8)
+end program test_anint
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DNINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node ANY
+@section @code{ANY} --- Any value in @var{MASK} along @var{DIM} is true
+ @findex @code{ANY} intrinsic
+@cindex true values
+
+@table @asis
+@item @emph{Description}:
+@code{ANY(MASK [, DIM])} determines if any of the values is true in @var{MASK}
+in the array along dimension @var{DIM}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+transformational function
+
+@item @emph{Syntax}:
+@code{L = ANY(MASK)} @*
+@code{L = ANY(MASK, DIM)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{MASK} @tab The type of the argument shall be @code{LOGICAL(*)} and
+it shall not be scalar.
+@item @var{DIM} @tab (Optional) @var{DIM} shall be a scalar integer
+with a value that lies between one and the rank of @var{MASK}.
+@end multitable
+
+@item @emph{Return value}:
+@code{ANY(MASK)} returns a scalar value of type @code{LOGICAL(*)} where
+the kind type parameter is the same as the kind type parameter of
+@var{MASK}. If @var{DIM} is present, then @code{ANY(MASK, DIM)} returns
+an array with the rank of @var{MASK} minus 1. The shape is determined from
+the shape of @var{MASK} where the @var{DIM} dimension is elided.
+
+@table @asis
+@item (A)
+@code{ANY(MASK)} is true if any element of @var{MASK} is true;
+otherwise, it is false. It also is false if @var{MASK} has zero size.
+@item (B)
+If the rank of @var{MASK} is one, then @code{ANY(MASK,DIM)} is equivalent
+to @code{ANY(MASK)}. If the rank is greater than one, then @code{ANY(MASK,DIM)}
+is determined by applying @code{ANY} to the array sections.
+@end table
+
+@item @emph{Example}:
+@smallexample
+program test_any
+ logical l
+ l = any((/.true., .true., .true./))
+ print *, l
+ call section
+ contains
+ subroutine section
+ integer a(2,3), b(2,3)
+ a = 1
+ b = 1
+ b(2,2) = 2
+ print *, any(a .eq. b, 1)
+ print *, any(a .eq. b, 2)
+ end subroutine section
+end program test_any
+@end smallexample
+@end table
+
+
+@node ASIN
+@section @code{ASIN} --- Arcsine function
+@findex @code{ASIN} intrinsic
+@findex @code{DASIN} intrinsic
+@cindex arcsine
+
+@table @asis
+@item @emph{Description}:
+@code{ASIN(X)} computes the arcsine of its @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ASIN(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}, and a magnitude that is
+less than one.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it lies in the
+range @math{ \pi / 2 \leq \arccos (x) \leq \pi / 2}. The kind type
+parameter is the same as @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_asin
+ real(8) :: x = 0.866_8
+ x = asin(x)
+end program test_asin
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DASIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node ATAN
+@section @code{ATAN} --- Arctangent function
+@findex @code{ATAN} intrinsic
+@findex @code{DATAN} intrinsic
+@cindex arctangent
+
+@table @asis
+@item @emph{Description}:
+@code{ATAN(X)} computes the arctangent of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ATAN(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it lies in the
+range @math{ - \pi / 2 \leq \arcsin (x) \leq \pi / 2}.
+
+@item @emph{Example}:
+@smallexample
+program test_atan
+ real(8) :: x = 2.866_8
+ x = atan(x)
+end program test_atan
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DATAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@node BESJ0
+@section @code{BESJ0} --- Bessel function of the first kind of order 0
+@findex @code{BESJ0} intrinsic
+@findex @code{DBESJ0} intrinsic
+@cindex Bessel
+
+@table @asis
+@item @emph{Description}:
+@code{BESJ0(X)} computes the Bessel function of the first kind of order 0
+of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = BESJ0(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it lies in the
+range @math{ - 0.4027... \leq Bessel (0,x) \leq 1}.
+
+@item @emph{Example}:
+@smallexample
+program test_besj0
+ real(8) :: x = 0.0_8
+ x = besj0(x)
+end program test_besj0
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DBESJ0(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node BESJ1
+@section @code{BESJ1} --- Bessel function of the first kind of order 1
+@findex @code{BESJ1} intrinsic
+@findex @code{DBESJ1} intrinsic
+@cindex Bessel
+
+@table @asis
+@item @emph{Description}:
+@code{BESJ1(X)} computes the Bessel function of the first kind of order 1
+of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = BESJ1(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it lies in the
+range @math{ - 0.5818... \leq Bessel (0,x) \leq 0.5818 }.
+
+@item @emph{Example}:
+@smallexample
+program test_besj1
+ real(8) :: x = 1.0_8
+ x = besj1(x)
+end program test_besj1
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DBESJ1(X)}@tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node BESJN
+@section @code{BESJN} --- Bessel function of the first kind
+@findex @code{BESJN} intrinsic
+@findex @code{DBESJN} intrinsic
+@cindex Bessel
+
+@table @asis
+@item @emph{Description}:
+@code{BESJN(N, X)} computes the Bessel function of the first kind of order
+@var{N} of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{Y = BESJN(N, X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{N} @tab The type shall be an @code{INTEGER(*)}.
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)}.
+
+@item @emph{Example}:
+@smallexample
+program test_besjn
+ real(8) :: x = 1.0_8
+ x = besjn(5,x)
+end program test_besjn
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DBESJN(X)}@tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node BESY0
+@section @code{BESY0} --- Bessel function of the second kind of order 0
+@findex @code{BESY0} intrinsic
+@findex @code{DBESY0} intrinsic
+@cindex Bessel
+
+@table @asis
+@item @emph{Description}:
+@code{BESY0(X)} computes the Bessel function of the second kind of order 0
+of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = BESY0(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)}.
+
+@item @emph{Example}:
+@smallexample
+program test_besy0
+ real(8) :: x = 0.0_8
+ x = besy0(x)
+end program test_besy0
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DBESY0(X)}@tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node BESY1
+@section @code{BESY1} --- Bessel function of the second kind of order 1
+@findex @code{BESY1} intrinsic
+@findex @code{DBESY1} intrinsic
+@cindex Bessel
+
+@table @asis
+@item @emph{Description}:
+@code{BESY1(X)} computes the Bessel function of the second kind of order 1
+of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = BESY1(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)}.
+
+@item @emph{Example}:
+@smallexample
+program test_besy1
+ real(8) :: x = 1.0_8
+ x = besy1(x)
+end program test_besy1
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DBESY1(X)}@tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node BESYN
+@section @code{BESYN} --- Bessel function of the second kind
+@findex @code{BESYN} intrinsic
+@findex @code{DBESYN} intrinsic
+@cindex Bessel
+
+@table @asis
+@item @emph{Description}:
+@code{BESYN(N, X)} computes the Bessel function of the second kind of order
+@var{N} of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{Y = BESYN(N, X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{N} @tab The type shall be an @code{INTEGER(*)}.
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)}.
+
+@item @emph{Example}:
+@smallexample
+program test_besyn
+ real(8) :: x = 1.0_8
+ x = besyn(5,x)
+end program test_besyn
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DBESYN(X)}@tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+@node COS
+@section @code{COS} --- Cosine function
+@findex @code{COS} intrinsic
+@findex @code{DCOS} intrinsic
+@findex @code{ZCOS} intrinsic
+@findex @code{CDCOS} intrinsic
+@cindex cosine
+
+@table @asis
+@item @emph{Description}:
+@code{COS(X)} computes the cosine of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = COS(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)} or
+@code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value has same type and kind than @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_cos
+ real :: x = 0.0
+ x = cos(x)
+end program test_cos
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DCOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@item @code{CCOS(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu
+@item @code{ZCOS(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@item @code{CDCOS(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node COSH
+@section @code{COSH} --- Hyperbolic cosine function
+@findex @code{COSH} intrinsic
+@findex @code{DCOSH} intrinsic
+@cindex hyperbolic cosine
+
+@table @asis
+@item @emph{Description}:
+@code{COSH(X)} computes the hyperbolic cosine of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = COSH(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it is positive
+(@math{ \cosh (x) \geq 0 }.
+
+@item @emph{Example}:
+@smallexample
+program test_cosh
+ real(8) :: x = 1.0_8
+ x = cosh(x)
+end program test_cosh
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DCOSH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node ERF
+@section @code{ERF} --- Error function
+@findex @code{ERF} intrinsic
+@cindex error
+
+@table @asis
+@item @emph{Description}:
+@code{ERF(X)} computes the error function of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ERF(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it is positive
+(@math{ - 1 \leq erf (x) \leq 1 }.
+
+@item @emph{Example}:
+@smallexample
+program test_erf
+ real(8) :: x = 0.17_8
+ x = erf(x)
+end program test_erf
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DERF(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node ERFC
+@section @code{ERFC} --- Error function
+@findex @code{ERFC} intrinsic
+@cindex error
+
+@table @asis
+@item @emph{Description}:
+@code{ERFC(X)} computes the complementary error function of @var{X}.
+
+@item @emph{Option}:
+gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = ERFC(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and it is positive
+(@math{ 0 \leq erfc (x) \leq 2 }.
+
+@item @emph{Example}:
+@smallexample
+program test_erfc
+ real(8) :: x = 0.17_8
+ x = erfc(x)
+end program test_erfc
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DERFC(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab gnu
+@end multitable
+@end table
+
+
+
+@node EXP
+@section @code{EXP} --- Exponential function
+@findex @code{EXP} intrinsic
+@findex @code{DEXP} intrinsic
+@findex @code{ZEXP} intrinsic
+@findex @code{CDEXP} intrinsic
+@cindex exponential
+
+@table @asis
+@item @emph{Description}:
+@code{EXP(X)} computes the base @math{e} exponential of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = EXP(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)} or
+@code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value has same type and kind than @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_exp
+ real :: x = 1.0
+ x = exp(x)
+end program test_exp
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DEXP(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@item @code{CEXP(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu
+@item @code{ZEXP(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@item @code{CDEXP(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node LOG
+@section @code{LOG} --- Logarithm function
+@findex @code{LOG} intrinsic
+@findex @code{ALOG} intrinsic
+@findex @code{DLOG} intrinsic
+@findex @code{CLOG} intrinsic
+@findex @code{ZLOG} intrinsic
+@findex @code{CDLOG} intrinsic
+@cindex logarithm
+
+@table @asis
+@item @emph{Description}:
+@code{LOG(X)} computes the logarithm of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = LOG(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)} or
+@code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} or @code{COMPLEX(*)}.
+The kind type parameter is the same as @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_log
+ real(8) :: x = 1.0_8
+ complex :: z = (1.0, 2.0)
+ x = log(x)
+ z = log(z)
+end program test_log
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{ALOG(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab f95, gnu
+@item @code{DLOG(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@item @code{CLOG(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu
+@item @code{ZLOG(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@item @code{CDLOG(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@node LOG10
+@section @code{LOG10} --- Base 10 logarithm function
+@findex @code{LOG10} intrinsic
+@findex @code{ALOG10} intrinsic
+@findex @code{DLOG10} intrinsic
+@cindex logarithm
+
+@table @asis
+@item @emph{Description}:
+@code{LOG10(X)} computes the base 10 logarithm of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = LOG10(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)} or
+@code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} or @code{COMPLEX(*)}.
+The kind type parameter is the same as @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_log10
+ real(8) :: x = 10.0_8
+ x = log10(x)
+end program test_log10
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{ALOG10(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab f95, gnu
+@item @code{DLOG10(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@node SIN
+@section @code{SIN} --- Sine function
+@findex @code{SIN} intrinsic
+@findex @code{DSIN} intrinsic
+@findex @code{ZSIN} intrinsic
+@findex @code{CDSIN} intrinsic
+@cindex sine
+
+@table @asis
+@item @emph{Description}:
+@code{SIN(X)} computes the sine of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = SIN(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)} or
+@code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value has same type and king than @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_sin
+ real :: x = 0.0
+ x = sin(x)
+end program test_sin
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DSIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@item @code{CSIN(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu
+@item @code{ZSIN(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@item @code{CDSIN(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+
+@node SINH
+@section @code{SINH} --- Hyperbolic sine function
+@findex @code{SINH} intrinsic
+@findex @code{DSINH} intrinsic
+@cindex hyperbolic sine
+
+@table @asis
+@item @emph{Description}:
+@code{SINH(X)} computes the hyperbolic sine of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = SINH(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)}.
+
+@item @emph{Example}:
+@smallexample
+program test_sinh
+ real(8) :: x = - 1.0_8
+ x = sinh(x)
+end program test_sinh
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DSINH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@node SQRT
+@section @code{SQRT} --- Square-root function
+@findex @code{SQRT} intrinsic
+@findex @code{DSQRT} intrinsic
+@findex @code{CSQRT} intrinsic
+@findex @code{ZSQRT} intrinsic
+@findex @code{CDSQRT} intrinsic
+@cindex square-root
+
+@table @asis
+@item @emph{Description}:
+@code{SQRT(X)} computes the square root of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = SQRT(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)} or
+@code{COMPLEX(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} or @code{COMPLEX(*)}.
+The kind type parameter is the same as @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_sqrt
+ real(8) :: x = 2.0_8
+ complex :: z = (1.0, 2.0)
+ x = sqrt(x)
+ z = sqrt(z)
+end program test_sqrt
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DSQRT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@item @code{CSQRT(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu
+@item @code{ZSQRT(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@item @code{CDSQRT(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@node TAN
+@section @code{TAN} --- Tangent function
+@findex @code{TAN} intrinsic
+@findex @code{DTAN} intrinsic
+@cindex tangent
+
+@table @asis
+@item @emph{Description}:
+@code{TAN(X)} computes the tangent of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = TAN(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)}. The kind type parameter is
+the same as @var{X}.
+
+@item @emph{Example}:
+@smallexample
+program test_tan
+ real(8) :: x = 0.165_8
+ x = tan(x)
+end program test_tan
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DTAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+@node TANH
+@section @code{TANH} --- Hyperbolic tangent function
+@findex @code{TANH} intrinsic
+@findex @code{DTANH} intrinsic
+@cindex hyperbolic tangent
+
+@table @asis
+@item @emph{Description}:
+@code{TANH(X)} computes the hyperbolic tangent of @var{X}.
+
+@item @emph{Option}:
+f95, gnu
+
+@item @emph{Type}:
+elemental function
+
+@item @emph{Syntax}:
+@code{X = TANH(X)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{X} @tab The type shall be an @code{REAL(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{REAL(*)} and lies in the range
+@math{ - 1 \leq tanh(x) \leq 1 }.
+
+@item @emph{Example}:
+@smallexample
+program test_tanh
+ real(8) :: x = 2.1_8
+ x = tanh(x)
+end program test_tanh
+@end smallexample
+
+@item @emph{Specific names}:
+@multitable @columnfractions .24 .24 .24 .24
+@item Name @tab Argument @tab Return type @tab Option
+@item @code{DTANH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu
+@end multitable
+@end table
+
+
+
+@comment gen associated
+@comment
+@comment gen atan2
+@comment datan2
+@comment
+@comment gen bit_size
+@comment
+@comment gen btest
+@comment
+@comment gen ceiling
+@comment
+@comment gen char
+@comment
+@comment gen cmplx
+@comment
+@comment gen command_argument_count
+@comment
+@comment gen conjg
+@comment dconjg
+@comment
+@comment gen count
+@comment
+@comment sub cpu_time
+@comment
+@comment gen cshift
+@comment
+@comment sub date_and_time
+@comment
+@comment gen dble
+@comment dfloat
+@comment
+@comment gen dcmplx
+@comment
+@comment gen digits
+@comment
+@comment gen dim
+@comment idim
+@comment ddim
+@comment
+@comment gen dot_product
+@comment
+@comment gen dprod
+@comment
+@comment gen dreal
+@comment
+@comment sub dtime
+@comment
+@comment gen eoshift
+@comment
+@comment gen epsilon
+@comment
+@comment gen etime
+@comment sub etime
+@comment
+@comment sub exit
+@comment
+@comment gen exponent
+@comment
+@comment gen floor
+@comment
+@comment sub flush
+@comment
+@comment gen fnum
+@comment
+@comment gen fraction
+@comment
+@comment gen fstat
+@comment sub fstat
+@comment
+@comment sub getarg
+@comment
+@comment gen getcwd
+@comment sub getcwd
+@comment
+@comment sub getenv
+@comment
+@comment gen getgid
+@comment
+@comment gen getpid
+@comment
+@comment gen getuid
+@comment
+@comment sub get_command
+@comment
+@comment sub get_command_argument
+@comment
+@comment sub get_environment_variable
+@comment
+@comment gen huge
+@comment
+@comment gen iachar
+@comment
+@comment gen iand
+@comment
+@comment gen iargc
+@comment
+@comment gen ibclr
+@comment
+@comment gen ibits
+@comment
+@comment gen ibset
+@comment
+@comment gen ichar
+@comment
+@comment gen ieor
+@comment
+@comment gen index
+@comment
+@comment gen int
+@comment ifix
+@comment idint
+@comment
+@comment gen ior
+@comment
+@comment gen irand
+@comment
+@comment gen ishft
+@comment
+@comment gen ishftc
+@comment
+@comment gen kind
+@comment
+@comment gen lbound
+@comment
+@comment gen len
+@comment
+@comment gen len_trim
+@comment
+@comment gen lge
+@comment
+@comment gen lgt
+@comment
+@comment gen lle
+@comment
+@comment gen llt
+@comment
+@comment gen logical
+@comment
+@comment gen matmul
+@comment
+@comment gen max
+@comment max0
+@comment amax0
+@comment amax1
+@comment max1
+@comment dmax1
+@comment
+@comment gen maxexponent
+@comment
+@comment gen maxloc
+@comment
+@comment gen maxval
+@comment
+@comment gen merge
+@comment
+@comment gen min
+@comment min0
+@comment amin0
+@comment amin1
+@comment min1
+@comment dmin1
+@comment
+@comment gen minexponent
+@comment
+@comment gen minloc
+@comment
+@comment gen minval
+@comment
+@comment gen mod
+@comment amod
+@comment dmod
+@comment
+@comment gen modulo
+@comment
+@comment sub mvbits
+@comment
+@comment gen nearest
+@comment
+@comment gen nint
+@comment idnint
+@comment
+@comment gen not
+@comment
+@comment gen null
+@comment
+@comment gen pack
+@comment
+@comment gen precision
+@comment
+@comment gen present
+@comment
+@comment gen product
+@comment
+@comment gen radix
+@comment
+@comment gen rand
+@comment ran
+@comment
+@comment sub random_number
+@comment
+@comment sub random_seed
+@comment
+@comment gen range
+@comment
+@comment gen real
+@comment float
+@comment sngl
+@comment
+@comment gen repeat
+@comment
+@comment gen reshape
+@comment
+@comment gen rrspacing
+@comment
+@comment gen scale
+@comment
+@comment gen scan
+@comment
+@comment gen second
+@comment sub second
+@comment
+@comment gen selected_int_kind
+@comment
+@comment gen selected_real_kind
+@comment
+@comment gen set_exponent
+@comment
+@comment gen shape
+@comment
+@comment gen sign
+@comment isign
+@comment dsign
+@comment
+@comment gen size
+@comment
+@comment gen spacing
+@comment
+@comment gen spread
+@comment
+@comment sub srand
+@comment
+@comment gen stat
+@comment sub stat
+@comment
+@comment gen sum
+@comment
+@comment gen system
+@comment sub system
+@comment
+@comment sub system_clock
+@comment
+@comment gen tiny
+@comment
+@comment gen transfer
+@comment
+@comment gen transpose
+@comment
+@comment gen trim
+@comment
+@comment gen ubound
+@comment
+@comment gen umask
+@comment sub umask
+@comment
+@comment gen unlink
+@comment sub unlink
+@comment
+@comment gen unpack
+@comment
+@comment gen verify
+
diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi
index 0d2f94d4f49..e2da09aed57 100644
--- a/gcc/fortran/invoke.texi
+++ b/gcc/fortran/invoke.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2004
+@c Copyright (C) 2004,2005
@c Free Software Foundation, Inc.
@c This is part of the GFORTRAN manual.
@c For copying conditions, see the file gfortran.texi.
@@ -69,6 +69,19 @@ GFORTRAN@.
The @command{gfortran} command supports all the options supported by the
@command{gcc} command. Only options specific to gfortran are documented here.
+@emph{Gfortran is not yet a fully conformant Fortran 95 compiler}.
+It can generate code for most constructs and expressions,
+but work remains to be done. In particular, there are known
+deficiencies with ENTRY, NAMELIST, and sophisticated use of
+MODULES, POINTERS and DERIVED TYPES. For those whose Fortran
+codes conform to either the Fortran 77 standard or the
+GNU Fortran 77 language, we recommend to use @command{g77}
+from GCC 3.4. We recommend that distributors continue to provide
+packages of g77-3.4 until we announce that @command{gfortran}
+fully replaces @command{g77}.
+The gfortran developers welcome any feedback on user experience
+with @command{gfortran} at @email{fortran@@gcc.gnu.org}.
+
@xref{Invoking GCC,,GCC Command Options,gcc,Using the GNU Compiler
Collection (GCC)}, for information
on the non-Fortran-specific aspects of the @command{gcc} command (and,
@@ -119,7 +132,7 @@ by type. Explanations are in the following sections.
-fdollar-ok -fimplicit-none -fmax-identifier-length @gol
-std=@var{std}
-ffixed-line-length-@var{n} -ffixed-line-length-none @gol
--i8 -r8 -d8}
+-fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 }
@item Warning Options
@xref{Warning Options,,Options to Request or Suppress Warnings}.
@@ -183,6 +196,23 @@ Specify the layout used by the the source file. The free form layout
was introduced in Fortran 90. Fixed form was traditionally used in
older Fortran programs.
+@cindex option, -fdefault-double-8
+@cindex -fdefault-double-8, option
+@item -fdefault-double-8
+Set the "DOUBLE PRECISION" type to an 8 byte wide.
+
+@cindex option, -fdefault-integer-8
+@cindex -fdefault-integer-8, option
+@item -fdefault-integer-8
+Set the default integer and logical types to an 8 byte wide type.
+Do nothing if this is already the default.
+
+@cindex option, -fdefault-real-8
+@cindex -fdefault-real-8, option
+@item -fdefault-real-8
+Set the default real type to an 8 byte wide type.
+Do nothing if this is already the default.
+
@cindex -fdollar-ok option
@cindex options, -fdollar-ok
@item -fdollar-ok
@@ -231,24 +261,7 @@ Specify that no implicit typing is allowed, unless overridden by explicit
@cindex option, -std=@var{std}
@item -std=@var{std}
Conform to the specified standard. Allowed values for @var{std} are
-@samp{gnu}, @samp{f95} and @samp{f90}.
-
-@cindex option, -i8
-@cindex -i8, option
-@cindex option, -r8
-@cindex -r8, option
-@cindex option, -d8
-@cindex -d8, option
-@item -i8
-@item -r8
-@item -d8
-The @option{-i8} and @option{-r8} options set the default @code{INTEGER}
-and @code{REAL} kinds to @code{KIND=8}. The @option{-d8} option is
-equivalent to specifying both @option{-i8} and @option{-r8}.
-
-When @option{-r8} is specified, the @code{DOUBLE PRECISION} kind is set
-to @code{KIND=16} if the target supports a 16 byte floating point format.
-If no such format exists, the @code{DOUBLE PRECISION} kind is unchanged.
+@samp{gnu} and @samp{f95}.
@end table
@@ -371,8 +384,8 @@ This currently produces a warning under the following circumstances:
@itemize @bullet
@item
-An INTEGER SELECT construct has a CASE the can never be matched as it's
-lower value that is greater than its upper value.
+An INTEGER SELECT construct has a CASE that can never be matched as its
+lower value is greater than its upper value.
@item
A LOGICAL SELECT construct has three CASE statements.
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index 8230fa99cd0..12650f90f24 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -981,6 +981,14 @@ resolve_tag (const io_tag * tag, gfc_expr * e)
&e->where);
return FAILURE;
}
+ /* Check assigned label. */
+ if (e->expr_type == EXPR_VARIABLE && e->ts.type == BT_INTEGER
+ && e->symtree->n.sym->attr.assign != 1)
+ {
+ gfc_error ("Variable '%s' has not been assigned a format label at %L",
+ e->symtree->n.sym->name, &e->where);
+ return FAILURE;
+ }
}
else
{
@@ -1526,9 +1534,6 @@ match_dt_format (gfc_dt * dt)
gfc_free_expr (e);
goto conflict;
}
- if (e->ts.type == BT_INTEGER && e->rank == 0)
- e->symtree->n.sym->attr.assign = 1;
-
dt->format_expr = e;
return MATCH_YES;
}
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c
index a4ab2251761..746b97df444 100644
--- a/gcc/fortran/iresolve.c
+++ b/gcc/fortran/iresolve.c
@@ -253,6 +253,31 @@ gfc_resolve_char (gfc_expr * f, gfc_expr * a, gfc_expr * kind)
void
+gfc_resolve_chdir (gfc_expr * f, gfc_expr * d ATTRIBUTE_UNUSED)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = gfc_default_integer_kind;
+ f->value.function.name = gfc_get_string (PREFIX("chdir_i%d"), f->ts.kind);
+}
+
+
+void
+gfc_resolve_chdir_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->next->expr != NULL)
+ kind = c->ext.actual->next->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("chdir_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+void
gfc_resolve_cmplx (gfc_expr * f, gfc_expr * x, gfc_expr * y, gfc_expr * kind)
{
f->ts.type = BT_COMPLEX;
@@ -383,9 +408,9 @@ gfc_resolve_dot_product (gfc_expr * f, gfc_expr * a, gfc_expr * b)
{
temp.expr_type = EXPR_OP;
gfc_clear_ts (&temp.ts);
- temp.operator = INTRINSIC_NONE;
- temp.op1 = a;
- temp.op2 = b;
+ temp.value.op.operator = INTRINSIC_NONE;
+ temp.value.op.op1 = a;
+ temp.value.op.op2 = b;
gfc_type_convert_binary (&temp);
f->ts = temp.ts;
}
@@ -533,6 +558,14 @@ gfc_resolve_getuid (gfc_expr * f)
}
void
+gfc_resolve_hostnm (gfc_expr * f, gfc_expr * n ATTRIBUTE_UNUSED)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = 4;
+ f->value.function.name = gfc_get_string (PREFIX ("hostnm"));
+}
+
+void
gfc_resolve_iand (gfc_expr * f, gfc_expr * i, gfc_expr * j)
{
/* If the kind of i and j are different, then g77 cross-promoted the
@@ -596,6 +629,15 @@ gfc_resolve_idnint (gfc_expr * f, gfc_expr * a)
void
+gfc_resolve_ierrno (gfc_expr * f)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = gfc_default_integer_kind;
+ f->value.function.name = gfc_get_string (PREFIX("ierrno_i%d"), f->ts.kind);
+}
+
+
+void
gfc_resolve_ieor (gfc_expr * f, gfc_expr * i, gfc_expr * j)
{
/* If the kind of i and j are different, then g77 cross-promoted the
@@ -670,6 +712,17 @@ gfc_resolve_ishftc (gfc_expr * f, gfc_expr * i, gfc_expr * shift,
void
+gfc_resolve_kill (gfc_expr * f, ATTRIBUTE_UNUSED gfc_expr * p,
+ ATTRIBUTE_UNUSED gfc_expr * s)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = gfc_default_integer_kind;
+
+ f->value.function.name = gfc_get_string (PREFIX("kill_i%d"), f->ts.kind);
+}
+
+
+void
gfc_resolve_lbound (gfc_expr * f, gfc_expr * array,
gfc_expr * dim)
{
@@ -708,6 +761,16 @@ gfc_resolve_len_trim (gfc_expr * f, gfc_expr * string)
void
+gfc_resolve_link (gfc_expr * f, gfc_expr * p1 ATTRIBUTE_UNUSED,
+ gfc_expr * p2 ATTRIBUTE_UNUSED)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = gfc_default_integer_kind;
+ f->value.function.name = gfc_get_string (PREFIX("link_i%d"), f->ts.kind);
+}
+
+
+void
gfc_resolve_log (gfc_expr * f, gfc_expr * x)
{
f->ts = x->ts;
@@ -753,9 +816,9 @@ gfc_resolve_matmul (gfc_expr * f, gfc_expr * a, gfc_expr * b)
{
temp.expr_type = EXPR_OP;
gfc_clear_ts (&temp.ts);
- temp.operator = INTRINSIC_NONE;
- temp.op1 = a;
- temp.op2 = b;
+ temp.value.op.operator = INTRINSIC_NONE;
+ temp.value.op.op1 = a;
+ temp.value.op.op2 = b;
gfc_type_convert_binary (&temp);
f->ts = temp.ts;
}
@@ -1019,6 +1082,16 @@ gfc_resolve_real (gfc_expr * f, gfc_expr * a, gfc_expr * kind)
void
+gfc_resolve_rename (gfc_expr * f, gfc_expr * p1 ATTRIBUTE_UNUSED,
+ gfc_expr * p2 ATTRIBUTE_UNUSED)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = gfc_default_integer_kind;
+ f->value.function.name = gfc_get_string (PREFIX("rename_i%d"), f->ts.kind);
+}
+
+
+void
gfc_resolve_repeat (gfc_expr * f, gfc_expr * string,
gfc_expr * ncopies ATTRIBUTE_UNUSED)
{
@@ -1275,6 +1348,16 @@ gfc_resolve_sum (gfc_expr * f, gfc_expr * array, gfc_expr * dim,
}
+void
+gfc_resolve_symlnk (gfc_expr * f, gfc_expr * p1 ATTRIBUTE_UNUSED,
+ gfc_expr * p2 ATTRIBUTE_UNUSED)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = gfc_default_integer_kind;
+ f->value.function.name = gfc_get_string (PREFIX("symlnk_i%d"), f->ts.kind);
+}
+
+
/* Resolve the g77 compatibility function SYSTEM. */
void
@@ -1305,6 +1388,24 @@ gfc_resolve_tanh (gfc_expr * f, gfc_expr * x)
void
+gfc_resolve_time (gfc_expr * f)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = 4;
+ f->value.function.name = gfc_get_string (PREFIX("time_func"));
+}
+
+
+void
+gfc_resolve_time8 (gfc_expr * f)
+{
+ f->ts.type = BT_INTEGER;
+ f->ts.kind = 8;
+ f->value.function.name = gfc_get_string (PREFIX("time8_func"));
+}
+
+
+void
gfc_resolve_transfer (gfc_expr * f, gfc_expr * source ATTRIBUTE_UNUSED,
gfc_expr * mold, gfc_expr * size)
{
@@ -1490,6 +1591,70 @@ gfc_resolve_random_number (gfc_code * c ATTRIBUTE_UNUSED)
}
+void
+gfc_resolve_rename_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->next->next->expr != NULL)
+ kind = c->ext.actual->next->next->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("rename_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+void
+gfc_resolve_kill_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->next->next->expr != NULL)
+ kind = c->ext.actual->next->next->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("kill_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+void
+gfc_resolve_link_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->next->next->expr != NULL)
+ kind = c->ext.actual->next->next->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("link_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+void
+gfc_resolve_symlnk_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->next->next->expr != NULL)
+ kind = c->ext.actual->next->next->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("symlnk_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
/* G77 compatibility subroutines etime() and dtime(). */
void
@@ -1514,6 +1679,22 @@ gfc_resolve_second_sub (gfc_code * c)
}
+void
+gfc_resolve_sleep_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->expr != NULL)
+ kind = c->ext.actual->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("sleep_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
/* G77 compatibility function srand(). */
void
@@ -1665,6 +1846,43 @@ gfc_resolve_flush (gfc_code * c)
c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
}
+
+void
+gfc_resolve_gerror (gfc_code * c)
+{
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (PREFIX ("gerror"));
+}
+
+
+void
+gfc_resolve_getlog (gfc_code * c)
+{
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (PREFIX ("getlog"));
+}
+
+
+void
+gfc_resolve_hostnm_sub (gfc_code * c)
+{
+ const char *name;
+ int kind;
+
+ if (c->ext.actual->next->expr != NULL)
+ kind = c->ext.actual->next->expr->ts.kind;
+ else
+ kind = gfc_default_integer_kind;
+
+ name = gfc_get_string (PREFIX("hostnm_i%d_sub"), kind);
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+}
+
+
+void
+gfc_resolve_perror (gfc_code * c)
+{
+ c->resolved_sym = gfc_get_intrinsic_sub_symbol (PREFIX ("perror_sub"));
+}
+
/* Resolve the STAT and FSTAT intrinsic subroutines. */
void
diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt
index 976a2b436d2..bde1d753b07 100644
--- a/gcc/fortran/lang.opt
+++ b/gcc/fortran/lang.opt
@@ -69,9 +69,17 @@ Wunused-labels
F95
Warn when a label is unused
-d8
-F95 RejectNegative
-Set the default real and integer kinds to double precision
+fdefault-double-8
+F95
+Set the default double precision kind to an 8 byte wide type
+
+fdefault-integer-8
+F95
+Set the default integer kind to an 8 byte wide type
+
+fdefault-real-8
+F95
+Set the default real kind to an 8 byte wide type
fdollar-ok
F95
@@ -133,18 +141,10 @@ frepack-arrays
F95
Copy array sections into a contiguous block on procedure entry
-i8
-F95
-Set the default integer kind to double precision
-
qkind=
F95 RejectNegative Joined UInteger
-qkind=<n> Set the kind for a real with the 'q' exponent to 'n'
-r8
-F95
-Set the default real kind to double precision
-
std=f95
F95
Conform to the ISO Fortran 95 standard.
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 2a364478530..0a173b86ea0 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -899,6 +899,39 @@ cleanup:
}
+/* We try to match an easy arithmetic IF statement. This only happens
+ when just after having encountered a simple IF statement. This code
+ is really duplicate with parts of the gfc_match_if code, but this is
+ *much* easier. */
+static match
+match_arithmetic_if (void)
+{
+ gfc_st_label *l1, *l2, *l3;
+ gfc_expr *expr;
+ match m;
+
+ m = gfc_match (" ( %e ) %l , %l , %l%t", &expr, &l1, &l2, &l3);
+ if (m != MATCH_YES)
+ return m;
+
+ if (gfc_reference_st_label (l1, ST_LABEL_TARGET) == FAILURE
+ || gfc_reference_st_label (l2, ST_LABEL_TARGET) == FAILURE
+ || gfc_reference_st_label (l3, ST_LABEL_TARGET) == FAILURE)
+ {
+ gfc_free_expr (expr);
+ return MATCH_ERROR;
+ }
+
+ new_st.op = EXEC_ARITHMETIC_IF;
+ new_st.expr = expr;
+ new_st.label = l1;
+ new_st.label2 = l2;
+ new_st.label3 = l3;
+
+ return MATCH_YES;
+}
+
+
/* The IF statement is a bit of a pain. First of all, there are three
forms of it, the simple IF, the IF that starts a block and the
arithmetic IF.
@@ -1036,6 +1069,7 @@ gfc_match_if (gfc_statement * if_type)
match ("exit", gfc_match_exit, ST_EXIT)
match ("forall", match_simple_forall, ST_FORALL)
match ("go to", gfc_match_goto, ST_GOTO)
+ match ("if", match_arithmetic_if, ST_ARITHMETIC_IF)
match ("inquire", gfc_match_inquire, ST_INQUIRE)
match ("nullify", gfc_match_nullify, ST_NULLIFY)
match ("open", gfc_match_open, ST_OPEN)
@@ -1526,7 +1560,6 @@ gfc_match_goto (void)
== FAILURE)
return MATCH_ERROR;
- expr->symtree->n.sym->attr.assign = 1;
new_st.op = EXEC_GOTO;
new_st.expr = expr;
diff --git a/gcc/fortran/match.h b/gcc/fortran/match.h
index 1d46e85960c..2351f9b92bf 100644
--- a/gcc/fortran/match.h
+++ b/gcc/fortran/match.h
@@ -108,6 +108,8 @@ match gfc_match_derived_decl (void);
match gfc_match_implicit_none (void);
match gfc_match_implicit (void);
+void gfc_set_constant_character_len (int, gfc_expr *);
+
/* Matchers for attribute declarations */
match gfc_match_allocatable (void);
match gfc_match_dimension (void);
diff --git a/gcc/fortran/matchexp.c b/gcc/fortran/matchexp.c
index bde8d603dea..04fd31f3609 100644
--- a/gcc/fortran/matchexp.c
+++ b/gcc/fortran/matchexp.c
@@ -179,11 +179,11 @@ build_node (gfc_intrinsic_op operator, locus * where,
new = gfc_get_expr ();
new->expr_type = EXPR_OP;
- new->operator = operator;
+ new->value.op.operator = operator;
new->where = *where;
- new->op1 = op1;
- new->op2 = op2;
+ new->value.op.op1 = op1;
+ new->value.op.op2 = op2;
return new;
}
@@ -214,7 +214,7 @@ match_level_1 (gfc_expr ** result)
else
{
f = build_node (INTRINSIC_USER, &where, e, NULL);
- f->uop = uop;
+ f->value.op.uop = uop;
*result = f;
}
@@ -873,7 +873,7 @@ gfc_match_expr (gfc_expr ** result)
}
all = build_node (INTRINSIC_USER, &where, all, e);
- all->uop = uop;
+ all->value.op.uop = uop;
}
*result = all;
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 12d52c419a9..4b69b738db1 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -655,7 +655,8 @@ compare_true_names (void * _t1, void * _t2)
t1 = (true_name *) _t1;
t2 = (true_name *) _t2;
- c = strcmp (t1->sym->module, t2->sym->module);
+ c = ((t1->sym->module > t2->sym->module)
+ - (t1->sym->module < t2->sym->module));
if (c != 0)
return c;
@@ -673,8 +674,11 @@ find_true_name (const char *name, const char *module)
gfc_symbol sym;
int c;
- strcpy (sym.name, name);
- strcpy (sym.module, module);
+ sym.name = gfc_get_string (name);
+ if (module != NULL)
+ sym.module = gfc_get_string (module);
+ else
+ sym.module = NULL;
t.sym = &sym;
p = true_name_root;
@@ -1341,8 +1345,33 @@ mio_allocated_string (const char *s)
}
-/* Read or write a string that is in static memory or inside of some
- already-allocated structure. */
+/* Read or write a string that is in static memory. */
+
+static void
+mio_pool_string (const char **stringp)
+{
+ /* TODO: one could write the string only once, and refer to it via a
+ fixup pointer. */
+
+ /* As a special case we have to deal with a NULL string. This
+ happens for the 'module' member of 'gfc_symbol's that are not in a
+ module. We read / write these as the empty string. */
+ if (iomode == IO_OUTPUT)
+ {
+ const char *p = *stringp == NULL ? "" : *stringp;
+ write_atom (ATOM_STRING, p);
+ }
+ else
+ {
+ require_atom (ATOM_STRING);
+ *stringp = atom_string[0] == '\0' ? NULL : gfc_get_string (atom_string);
+ gfc_free (atom_string);
+ }
+}
+
+
+/* Read or write a string that is inside of some already-allocated
+ structure. */
static void
mio_internal_string (char *string)
@@ -1802,7 +1831,7 @@ mio_component_ref (gfc_component ** cp, gfc_symbol * sym)
p->type = P_COMPONENT;
if (iomode == IO_OUTPUT)
- mio_internal_string ((*cp)->name);
+ mio_pool_string (&(*cp)->name);
else
{
mio_internal_string (name);
@@ -1851,7 +1880,7 @@ mio_component (gfc_component * c)
if (p->type == P_UNKNOWN)
p->type = P_COMPONENT;
- mio_internal_string (c->name);
+ mio_pool_string (&c->name);
mio_typespec (&c->ts);
mio_array_spec (&c->as);
@@ -1907,7 +1936,7 @@ mio_actual_arg (gfc_actual_arglist * a)
{
mio_lparen ();
- mio_internal_string (a->name);
+ mio_pool_string (&a->name);
mio_expr (&a->expr);
mio_rparen ();
}
@@ -2404,14 +2433,15 @@ mio_expr (gfc_expr ** ep)
switch (e->expr_type)
{
case EXPR_OP:
- e->operator = MIO_NAME(gfc_intrinsic_op) (e->operator, intrinsics);
+ e->value.op.operator
+ = MIO_NAME(gfc_intrinsic_op) (e->value.op.operator, intrinsics);
- switch (e->operator)
+ switch (e->value.op.operator)
{
case INTRINSIC_UPLUS:
case INTRINSIC_UMINUS:
case INTRINSIC_NOT:
- mio_expr (&e->op1);
+ mio_expr (&e->value.op.op1);
break;
case INTRINSIC_PLUS:
@@ -2430,8 +2460,8 @@ mio_expr (gfc_expr ** ep)
case INTRINSIC_GE:
case INTRINSIC_LT:
case INTRINSIC_LE:
- mio_expr (&e->op1);
- mio_expr (&e->op2);
+ mio_expr (&e->value.op.op1);
+ mio_expr (&e->value.op.op2);
break;
default:
@@ -2598,14 +2628,14 @@ mio_interface (gfc_interface ** ip)
/* Save/restore a named operator interface. */
static void
-mio_symbol_interface (char *name, char *module,
+mio_symbol_interface (const char **name, const char **module,
gfc_interface ** ip)
{
mio_lparen ();
- mio_internal_string (name);
- mio_internal_string (module);
+ mio_pool_string (name);
+ mio_pool_string (module);
mio_interface_rest (ip);
}
@@ -2627,7 +2657,7 @@ mio_namespace_ref (gfc_namespace ** nsp)
ns = (gfc_namespace *)p->u.pointer;
if (ns == NULL)
{
- ns = gfc_get_namespace (NULL);
+ ns = gfc_get_namespace (NULL, 0);
associate_integer_pointer (p, ns);
}
else
@@ -2878,12 +2908,12 @@ load_needed (pointer_info * p)
the namespaces that hold the formal parameters of module
procedures. */
- ns = gfc_get_namespace (NULL);
+ ns = gfc_get_namespace (NULL, 0);
associate_integer_pointer (q, ns);
}
sym = gfc_new_symbol (p->u.rsym.true_name, ns);
- strcpy (sym->module, p->u.rsym.module);
+ sym->module = gfc_get_string (p->u.rsym.module);
associate_integer_pointer (p, sym);
}
@@ -3036,7 +3066,7 @@ read_module (void)
sym = info->u.rsym.sym =
gfc_new_symbol (info->u.rsym.true_name, gfc_current_ns);
- strcpy (sym->module, info->u.rsym.module);
+ sym->module = gfc_get_string (info->u.rsym.module);
}
st->n.sym = sym;
@@ -3169,7 +3199,7 @@ write_common (gfc_symtree *st)
write_common(st->right);
mio_lparen();
- mio_internal_string(st->name);
+ mio_pool_string(&st->name);
p = st->n.common;
mio_symbol_ref(&p->head);
@@ -3189,9 +3219,9 @@ write_symbol (int n, gfc_symbol * sym)
gfc_internal_error ("write_symbol(): bad module symbol '%s'", sym->name);
mio_integer (&n);
- mio_internal_string (sym->name);
+ mio_pool_string (&sym->name);
- mio_internal_string (sym->module);
+ mio_pool_string (&sym->module);
mio_pointer_ref (&sym->ns);
mio_symbol (sym);
@@ -3216,8 +3246,8 @@ write_symbol0 (gfc_symtree * st)
write_symbol0 (st->right);
sym = st->n.sym;
- if (sym->module[0] == '\0')
- strcpy (sym->module, module_name);
+ if (sym->module == NULL)
+ sym->module = gfc_get_string (module_name);
if (sym->attr.flavor == FL_PROCEDURE && sym->attr.generic
&& !sym->attr.subroutine && !sym->attr.function)
@@ -3264,8 +3294,8 @@ write_symbol1 (pointer_info * p)
/* FIXME: This shouldn't be necessary, but it works around
deficiencies in the module loader or/and symbol handling. */
- if (p->u.wsym.sym->module[0] == '\0' && p->u.wsym.sym->attr.dummy)
- strcpy (p->u.wsym.sym->module, module_name);
+ if (p->u.wsym.sym->module == NULL && p->u.wsym.sym->attr.dummy)
+ p->u.wsym.sym->module = gfc_get_string (module_name);
p->u.wsym.state = WRITTEN;
write_symbol (p->integer, p->u.wsym.sym);
@@ -3280,12 +3310,13 @@ static void
write_operator (gfc_user_op * uop)
{
static char nullstring[] = "";
+ const char *p = nullstring;
if (uop->operator == NULL
|| !gfc_check_access (uop->access, uop->ns->default_access))
return;
- mio_symbol_interface (uop->name, nullstring, &uop->operator);
+ mio_symbol_interface (&uop->name, &p, &uop->operator);
}
@@ -3299,7 +3330,7 @@ write_generic (gfc_symbol * sym)
|| !gfc_check_access (sym->attr.access, sym->ns->default_access))
return;
- mio_symbol_interface (sym->name, sym->module, &sym->generic);
+ mio_symbol_interface (&sym->name, &sym->module, &sym->generic);
}
@@ -3322,7 +3353,7 @@ write_symtree (gfc_symtree * st)
if (p == NULL)
gfc_internal_error ("write_symtree(): Symbol not written");
- mio_internal_string (st->name);
+ mio_pool_string (&st->name);
mio_integer (&st->ambiguous);
mio_integer (&p->integer);
}
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index 35964003785..21fb0a83c52 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -57,6 +57,9 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED,
gfc_option.warn_surprising = 0;
gfc_option.warn_unused_labels = 0;
+ gfc_option.flag_default_double = 0;
+ gfc_option.flag_default_integer = 0;
+ gfc_option.flag_default_real = 0;
gfc_option.flag_dollar_ok = 0;
gfc_option.flag_underscoring = 1;
gfc_option.flag_second_underscore = 1;
@@ -68,9 +71,6 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED,
gfc_option.flag_repack_arrays = 0;
gfc_option.q_kind = gfc_default_double_kind;
- gfc_option.i8 = 0;
- gfc_option.r8 = 0;
- gfc_option.d8 = 0;
flag_argument_noalias = 2;
flag_errno_math = 0;
@@ -285,16 +285,16 @@ gfc_handle_option (size_t scode, const char *arg, int value)
gfc_option.q_kind = value;
break;
- case OPT_i8:
- gfc_option.i8 = value;
+ case OPT_fdefault_integer_8:
+ gfc_option.flag_default_integer = value;
break;
- case OPT_r8:
- gfc_option.r8 = value;
+ case OPT_fdefault_real_8:
+ gfc_option.flag_default_real = value;
break;
- case OPT_d8:
- gfc_option.d8 = value;
+ case OPT_fdefault_double_8:
+ gfc_option.flag_default_double = value;
break;
case OPT_I:
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index dac40775d05..a3f0ac19539 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -1405,7 +1405,7 @@ parse_interface (void)
current_state = COMP_NONE;
loop:
- gfc_current_ns = gfc_get_namespace (current_interface.ns);
+ gfc_current_ns = gfc_get_namespace (current_interface.ns, 0);
st = next_statement ();
switch (st)
@@ -2170,7 +2170,7 @@ parse_contained (int module)
do
{
- gfc_current_ns = gfc_get_namespace (parent_ns);
+ gfc_current_ns = gfc_get_namespace (parent_ns, 1);
gfc_current_ns->sibling = parent_ns->contained;
parent_ns->contained = gfc_current_ns;
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index f122779b136..992bc5f0af7 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -300,17 +300,15 @@ match_boz_constant (gfc_expr ** result)
match_digits (0, radix, buffer);
gfc_next_char (); /* Eat delimiter. */
- kind = get_kind ();
- if (kind == -1)
- return MATCH_ERROR;
- if (kind == -2)
- kind = gfc_default_integer_kind;
- else if (pedantic
- && (gfc_notify_std (GFC_STD_GNU, "Extension: Kind parameter "
- "suffix to boz literal constant at %C.")
- == FAILURE))
- return MATCH_ERROR;
+ /* In section 5.2.5 and following C567 in the Fortran 2003 standard, we find
+ "If a data-stmt-constant is a boz-literal-constant, the corresponding
+ variable shall be of type integer. The boz-literal-constant is treated
+ as if it were an int-literal-constant with a kind-param that specifies
+ the representation method with the largest decimal exponent range
+ supported by the processor." */
+
+ kind = gfc_max_integer_kind;
e = gfc_convert_integer (buffer, kind, radix, &gfc_current_locus);
if (gfc_range_check (e) != ARITH_OK)
@@ -1076,7 +1074,17 @@ match_complex_constant (gfc_expr ** result)
m = gfc_match_char (')');
if (m == MATCH_NO)
+ {
+ /* Give the matcher for implied do-loops a chance to run. This
+ yields a much saner error message for (/ (i, 4=i, 6) /). */
+ if (gfc_peek_char () == '=')
+ {
+ m = MATCH_ERROR;
+ goto cleanup;
+ }
+ else
goto syntax;
+ }
if (m == MATCH_ERROR)
goto cleanup;
@@ -1273,7 +1281,7 @@ match_keyword_arg (gfc_actual_arglist * actual, gfc_actual_arglist * base)
if (name[0] != '\0')
{
for (a = base; a; a = a->next)
- if (strcmp (a->name, name) == 0)
+ if (a->name != NULL && strcmp (a->name, name) == 0)
{
gfc_error
("Keyword '%s' at %C has already appeared in the current "
@@ -1282,7 +1290,7 @@ match_keyword_arg (gfc_actual_arglist * actual, gfc_actual_arglist * base)
}
}
- strcpy (actual->name, name);
+ actual->name = gfc_get_string (name);
return MATCH_YES;
cleanup:
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index dd69a983406..16db94342d1 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -481,7 +481,7 @@ was_declared (gfc_symbol * sym)
if (!a.implicit_type && sym->ts.type != BT_UNKNOWN)
return 1;
- if (a.allocatable || a.dimension || a.external || a.intrinsic
+ if (a.allocatable || a.dimension || a.dummy || a.external || a.intrinsic
|| a.optional || a.pointer || a.save || a.target
|| a.access != ACCESS_UNKNOWN || a.intent != INTENT_UNKNOWN)
return 1;
@@ -884,8 +884,8 @@ set_type:
}
-/* Figure out if if a function reference is pure or not. Also sets the name
- of the function for a potential error message. Returns nonzero if the
+/* Figure out if a function reference is pure or not. Also set the name
+ of the function for a potential error message. Return nonzero if the
function is PURE, zero if not. */
static int
@@ -1249,6 +1249,36 @@ resolve_call (gfc_code * c)
return t;
}
+/* Compare the shapes of two arrays that have non-NULL shapes. If both
+ op1->shape and op2->shape are non-NULL return SUCCESS if their shapes
+ match. If both op1->shape and op2->shape are non-NULL return FAILURE
+ if their shapes do not match. If either op1->shape or op2->shape is
+ NULL, return SUCCESS. */
+
+static try
+compare_shapes (gfc_expr * op1, gfc_expr * op2)
+{
+ try t;
+ int i;
+
+ t = SUCCESS;
+
+ if (op1->shape != NULL && op2->shape != NULL)
+ {
+ for (i = 0; i < op1->rank; i++)
+ {
+ if (mpz_cmp (op1->shape[i], op2->shape[i]) != 0)
+ {
+ gfc_error ("Shapes for operands at %L and %L are not conformable",
+ &op1->where, &op2->where);
+ t = FAILURE;
+ break;
+ }
+ }
+ }
+
+ return t;
+}
/* Resolve an operator expression node. This can involve replacing the
operation with a user defined function call. */
@@ -1262,10 +1292,10 @@ resolve_operator (gfc_expr * e)
/* Resolve all subnodes-- give them types. */
- switch (e->operator)
+ switch (e->value.op.operator)
{
default:
- if (gfc_resolve_expr (e->op2) == FAILURE)
+ if (gfc_resolve_expr (e->value.op.op2) == FAILURE)
return FAILURE;
/* Fall through... */
@@ -1273,17 +1303,17 @@ resolve_operator (gfc_expr * e)
case INTRINSIC_NOT:
case INTRINSIC_UPLUS:
case INTRINSIC_UMINUS:
- if (gfc_resolve_expr (e->op1) == FAILURE)
+ if (gfc_resolve_expr (e->value.op.op1) == FAILURE)
return FAILURE;
break;
}
/* Typecheck the new node. */
- op1 = e->op1;
- op2 = e->op2;
+ op1 = e->value.op.op1;
+ op2 = e->value.op.op2;
- switch (e->operator)
+ switch (e->value.op.operator)
{
case INTRINSIC_UPLUS:
case INTRINSIC_UMINUS:
@@ -1296,7 +1326,7 @@ resolve_operator (gfc_expr * e)
}
sprintf (msg, "Operand of unary numeric operator '%s' at %%L is %s",
- gfc_op2string (e->operator), gfc_typename (&e->ts));
+ gfc_op2string (e->value.op.operator), gfc_typename (&e->ts));
goto bad_op;
case INTRINSIC_PLUS:
@@ -1312,7 +1342,7 @@ resolve_operator (gfc_expr * e)
sprintf (msg,
"Operands of binary numeric operator '%s' at %%L are %s/%s",
- gfc_op2string (e->operator), gfc_typename (&op1->ts),
+ gfc_op2string (e->value.op.operator), gfc_typename (&op1->ts),
gfc_typename (&op2->ts));
goto bad_op;
@@ -1345,7 +1375,7 @@ resolve_operator (gfc_expr * e)
}
sprintf (msg, "Operands of logical operator '%s' at %%L are %s/%s",
- gfc_op2string (e->operator), gfc_typename (&op1->ts),
+ gfc_op2string (e->value.op.operator), gfc_typename (&op1->ts),
gfc_typename (&op2->ts));
goto bad_op;
@@ -1393,7 +1423,7 @@ resolve_operator (gfc_expr * e)
}
sprintf (msg, "Operands of comparison operator '%s' at %%L are %s/%s",
- gfc_op2string (e->operator), gfc_typename (&op1->ts),
+ gfc_op2string (e->value.op.operator), gfc_typename (&op1->ts),
gfc_typename (&op2->ts));
goto bad_op;
@@ -1401,10 +1431,10 @@ resolve_operator (gfc_expr * e)
case INTRINSIC_USER:
if (op2 == NULL)
sprintf (msg, "Operand of user operator '%s' at %%L is %s",
- e->uop->name, gfc_typename (&op1->ts));
+ e->value.op.uop->name, gfc_typename (&op1->ts));
else
sprintf (msg, "Operands of user operator '%s' at %%L are %s/%s",
- e->uop->name, gfc_typename (&op1->ts),
+ e->value.op.uop->name, gfc_typename (&op1->ts),
gfc_typename (&op2->ts));
goto bad_op;
@@ -1417,7 +1447,7 @@ resolve_operator (gfc_expr * e)
t = SUCCESS;
- switch (e->operator)
+ switch (e->value.op.operator)
{
case INTRINSIC_PLUS:
case INTRINSIC_MINUS:
@@ -1460,10 +1490,14 @@ resolve_operator (gfc_expr * e)
if (op1->rank == op2->rank)
{
e->rank = op1->rank;
-
if (e->shape == NULL)
+ {
+ t = compare_shapes(op1, op2);
+ if (t == FAILURE)
+ e->shape = NULL;
+ else
e->shape = gfc_copy_shape (op1->shape, op1->rank);
-
+ }
}
else
{
@@ -1499,10 +1533,12 @@ resolve_operator (gfc_expr * e)
return t;
bad_op:
+
if (gfc_extend_expr (e) == SUCCESS)
return SUCCESS;
gfc_error (msg, &e->where);
+
return FAILURE;
}
@@ -1665,19 +1701,26 @@ gfc_resolve_index (gfc_expr * index, int check_scalar)
if (gfc_resolve_expr (index) == FAILURE)
return FAILURE;
- if (index->ts.type != BT_INTEGER)
+ if (check_scalar && index->rank != 0)
{
- gfc_error ("Array index at %L must be of INTEGER type", &index->where);
+ gfc_error ("Array index at %L must be scalar", &index->where);
return FAILURE;
}
- if (check_scalar && index->rank != 0)
+ if (index->ts.type != BT_INTEGER && index->ts.type != BT_REAL)
{
- gfc_error ("Array index at %L must be scalar", &index->where);
+ gfc_error ("Array index at %L must be of INTEGER type",
+ &index->where);
return FAILURE;
}
- if (index->ts.kind != gfc_index_integer_kind)
+ if (index->ts.type == BT_REAL)
+ if (gfc_notify_std (GFC_STD_GNU, "Extension: REAL array index at %L",
+ &index->where) == FAILURE)
+ return FAILURE;
+
+ if (index->ts.kind != gfc_index_integer_kind
+ || index->ts.type != BT_INTEGER)
{
ts.type = BT_INTEGER;
ts.kind = gfc_index_integer_kind;
@@ -3327,23 +3370,27 @@ gfc_find_forall_index (gfc_expr *expr, gfc_symbol *symbol)
gfc_error ("Unsupported statement while finding forall index in "
"expression");
break;
- default:
+
+ case EXPR_OP:
+ /* Find the FORALL index in the first operand. */
+ if (expr->value.op.op1)
+ {
+ if (gfc_find_forall_index (expr->value.op.op1, symbol) == SUCCESS)
+ return SUCCESS;
+ }
+
+ /* Find the FORALL index in the second operand. */
+ if (expr->value.op.op2)
+ {
+ if (gfc_find_forall_index (expr->value.op.op2, symbol) == SUCCESS)
+ return SUCCESS;
+ }
break;
- }
- /* Find the FORALL index in the first operand. */
- if (expr->op1)
- {
- if (gfc_find_forall_index (expr->op1, symbol) == SUCCESS)
- return SUCCESS;
+ default:
+ break;
}
- /* Find the FORALL index in the second operand. */
- if (expr->op2)
- {
- if (gfc_find_forall_index (expr->op2, symbol) == SUCCESS)
- return SUCCESS;
- }
return FAILURE;
}
@@ -3648,10 +3695,17 @@ resolve_code (gfc_code * code, gfc_namespace * ns)
break;
case EXEC_GOTO:
- if (code->expr != NULL && code->expr->ts.type != BT_INTEGER)
- gfc_error ("ASSIGNED GOTO statement at %L requires an INTEGER "
+ if (code->expr != NULL)
+ {
+ if (code->expr->ts.type != BT_INTEGER)
+ gfc_error ("ASSIGNED GOTO statement at %L requires an INTEGER "
"variable", &code->expr->where);
- else
+ else if (code->expr->symtree->n.sym->attr.assign != 1)
+ gfc_error ("Variable '%s' has not been assigned a target label "
+ "at %L", code->expr->symtree->n.sym->name,
+ &code->expr->where);
+ }
+ else
resolve_branch (code->label, code);
break;
@@ -4709,10 +4763,11 @@ gfc_resolve (gfc_namespace * ns)
if (cl->length == NULL || gfc_resolve_expr (cl->length) == FAILURE)
continue;
- if (cl->length->ts.type != BT_INTEGER)
- gfc_error
- ("Character length specification at %L must be of type INTEGER",
- &cl->length->where);
+ if (gfc_simplify_expr (cl->length, 0) == FAILURE)
+ continue;
+
+ if (gfc_specification_expr (cl->length) == FAILURE)
+ continue;
}
gfc_traverse_ns (ns, resolve_values);
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 423f3336d8b..a57731a7c1d 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -592,7 +592,7 @@ gfc_simplify_ceiling (gfc_expr * e, gfc_expr * k)
gfc_expr *ceil, *result;
int kind;
- kind = get_kind (BT_REAL, k, "CEILING", gfc_default_real_kind);
+ kind = get_kind (BT_INTEGER, k, "CEILING", gfc_default_integer_kind);
if (kind == -1)
return &gfc_bad_expr;
@@ -967,6 +967,7 @@ gfc_simplify_exp (gfc_expr * x)
gfc_expr *
gfc_simplify_exponent (gfc_expr * x)
{
+ int i;
mpfr_t tmp;
gfc_expr *result;
@@ -991,6 +992,12 @@ gfc_simplify_exponent (gfc_expr * x)
gfc_mpfr_to_mpz (result->value.integer, tmp);
+ /* The model number for tiny(x) is b**(emin - 1) where b is the base and emin
+ is the smallest exponent value. So, we need to add 1 if x is tiny(x). */
+ i = gfc_validate_kind (x->ts.type, x->ts.kind, false);
+ if (mpfr_cmp (x->value.real, gfc_real_kinds[i].tiny) == 0)
+ mpz_add_ui (result->value.integer,result->value.integer, 1);
+
mpfr_clear (tmp);
return range_check (result, "EXPONENT");
@@ -1017,7 +1024,7 @@ gfc_simplify_floor (gfc_expr * e, gfc_expr * k)
mpfr_t floor;
int kind;
- kind = get_kind (BT_REAL, k, "FLOOR", gfc_default_real_kind);
+ kind = get_kind (BT_INTEGER, k, "FLOOR", gfc_default_integer_kind);
if (kind == -1)
gfc_internal_error ("gfc_simplify_floor(): Bad kind");
@@ -1473,7 +1480,7 @@ gfc_simplify_int (gfc_expr * e, gfc_expr * k)
gfc_expr *rpart, *rtrunc, *result;
int kind;
- kind = get_kind (BT_REAL, k, "INT", gfc_default_real_kind);
+ kind = get_kind (BT_INTEGER, k, "INT", gfc_default_integer_kind);
if (kind == -1)
return &gfc_bad_expr;
@@ -1766,16 +1773,18 @@ gfc_simplify_kind (gfc_expr * e)
static gfc_expr *
-gfc_simplify_bound (gfc_expr * array, gfc_expr * dim, int upper)
+simplify_bound (gfc_expr * array, gfc_expr * dim, int upper)
{
gfc_ref *ref;
gfc_array_spec *as;
- int i;
+ gfc_expr *e;
+ int d;
if (array->expr_type != EXPR_VARIABLE)
return NULL;
if (dim == NULL)
+ /* TODO: Simplify constant multi-dimensional bounds. */
return NULL;
if (dim->expr_type != EXPR_CONSTANT)
@@ -1783,29 +1792,66 @@ gfc_simplify_bound (gfc_expr * array, gfc_expr * dim, int upper)
/* Follow any component references. */
as = array->symtree->n.sym->as;
- ref = array->ref;
- while (ref->next != NULL)
+ for (ref = array->ref; ref; ref = ref->next)
{
- if (ref->type == REF_COMPONENT)
- as = ref->u.c.sym->as;
- ref = ref->next;
+ switch (ref->type)
+ {
+ case REF_ARRAY:
+ switch (ref->u.ar.type)
+ {
+ case AR_ELEMENT:
+ as = NULL;
+ continue;
+
+ case AR_FULL:
+ /* We're done because 'as' has already been set in the
+ previous iteration. */
+ goto done;
+
+ case AR_SECTION:
+ case AR_UNKNOWN:
+ return NULL;
+ }
+
+ gcc_unreachable ();
+
+ case REF_COMPONENT:
+ as = ref->u.c.component->as;
+ continue;
+
+ case REF_SUBSTRING:
+ continue;
+ }
}
+
+ gcc_unreachable ();
- if (ref->type != REF_ARRAY || ref->u.ar.type != AR_FULL)
+ done:
+ if (as->type == AS_DEFERRED || as->type == AS_ASSUMED_SHAPE)
return NULL;
-
- i = mpz_get_si (dim->value.integer);
- if (upper)
- return gfc_copy_expr (as->upper[i-1]);
- else
- return gfc_copy_expr (as->lower[i-1]);
+
+ d = mpz_get_si (dim->value.integer);
+
+ if (d < 1 || d > as->rank
+ || (d == as->rank && as->type == AS_ASSUMED_SIZE && upper))
+ {
+ gfc_error ("DIM argument at %L is out of bounds", &dim->where);
+ return &gfc_bad_expr;
+ }
+
+ e = upper ? as->upper[d-1] : as->lower[d-1];
+
+ if (e->expr_type != EXPR_CONSTANT)
+ return NULL;
+
+ return gfc_copy_expr (e);
}
gfc_expr *
gfc_simplify_lbound (gfc_expr * array, gfc_expr * dim)
{
- return gfc_simplify_bound (array, dim, 0);
+ return simplify_bound (array, dim, 0);
}
@@ -3578,7 +3624,7 @@ gfc_simplify_trim (gfc_expr * e)
gfc_expr *
gfc_simplify_ubound (gfc_expr * array, gfc_expr * dim)
{
- return gfc_simplify_bound (array, dim, 1);
+ return simplify_bound (array, dim, 1);
}
diff --git a/gcc/fortran/st.c b/gcc/fortran/st.c
index b6515376e38..f4b32006ad1 100644
--- a/gcc/fortran/st.c
+++ b/gcc/fortran/st.c
@@ -1,5 +1,5 @@
/* Build executable statement trees.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
Contributed by Andy Vaught
This file is part of GCC.
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index c9205d58459..26e3f003442 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -179,8 +179,7 @@ gfc_merge_new_implicit (gfc_typespec * ts)
}
-/* Given a symbol, return a pointer to the typespec for it's default
- type. */
+/* Given a symbol, return a pointer to the typespec for its default type. */
gfc_typespec *
gfc_get_default_type (gfc_symbol * sym, gfc_namespace * ns)
@@ -214,9 +213,12 @@ gfc_set_default_type (gfc_symbol * sym, int error_flag, gfc_namespace * ns)
if (ts->type == BT_UNKNOWN)
{
- if (error_flag)
- gfc_error ("Symbol '%s' at %L has no IMPLICIT type", sym->name,
- &sym->declared_at);
+ if (error_flag && !sym->attr.untyped)
+ {
+ gfc_error ("Symbol '%s' at %L has no IMPLICIT type",
+ sym->name, &sym->declared_at);
+ sym->attr.untyped = 1; /* Ensure we only give an error once. */
+ }
return FAILURE;
}
@@ -367,6 +369,7 @@ check_conflict (symbol_attribute * attr, const char * name, locus * where)
{
case PROC_ST_FUNCTION:
conf2 (in_common);
+ conf2 (dummy);
break;
case PROC_MODULE:
@@ -483,9 +486,9 @@ check_used (symbol_attribute * attr, const char * name, locus * where)
/* Used to prevent changing the attributes of a symbol after it has been
- used. This check is only done from dummy variable as only these can be
+ used. This check is only done for dummy variables as only these can be
used in specification expressions. Applying this to all symbols causes
- error when we reach the body of a contained function. */
+ an error when we reach the body of a contained function. */
static int
check_done (symbol_attribute * attr, locus * where)
@@ -684,7 +687,7 @@ gfc_add_dummy (symbol_attribute * attr, const char *name, locus * where)
if (check_used (attr, name, where))
return FAILURE;
- /* Duplicate dummy arguments are allow due to ENTRY statements. */
+ /* Duplicate dummy arguments are allowed due to ENTRY statements. */
attr->dummy = 1;
return check_conflict (attr, name, where);
}
@@ -836,7 +839,7 @@ gfc_add_generic (symbol_attribute * attr, const char *name, locus * where)
}
-/* Flavors are special because some flavors are not what fortran
+/* Flavors are special because some flavors are not what Fortran
considers attributes and can be reaffirmed multiple times. */
try
@@ -1102,7 +1105,7 @@ gfc_copy_attr (symbol_attribute * dest, symbol_attribute * src, locus * where)
goto fail;
/* The subroutines that set these bits also cause flavors to be set,
- and that has already happened in the original, so don't let to
+ and that has already happened in the original, so don't let it
happen again. */
if (src->external)
dest->external = 1;
@@ -1147,7 +1150,7 @@ gfc_add_component (gfc_symbol * sym, const char *name, gfc_component ** componen
tail = p;
}
- /* Allocate new component */
+ /* Allocate a new component. */
p = gfc_get_component ();
if (tail == NULL)
@@ -1155,7 +1158,7 @@ gfc_add_component (gfc_symbol * sym, const char *name, gfc_component ** componen
else
tail->next = p;
- strcpy (p->name, name);
+ p->name = gfc_get_string (name);
p->loc = gfc_current_locus;
*component = p;
@@ -1194,7 +1197,7 @@ switch_types (gfc_symtree * st, gfc_symbol * from, gfc_symbol * to)
have to have a derived type in a parent unit. We find the node in
the other namespace and point the symtree node in this namespace to
that node. Further reference to this name point to the correct
- node. If we can't find the node in a parent namespace, then have
+ node. If we can't find the node in a parent namespace, then we have
an error.
This subroutine takes a pointer to a symbol node and returns a
@@ -1521,7 +1524,7 @@ done:
the internal subprograms must be read before we can start
generating code for the host.
- Given the tricky nature of the fortran grammar, we must be able to
+ Given the tricky nature of the Fortran grammar, we must be able to
undo changes made to a symbol table if the current interpretation
of a statement is found to be incorrect. Whenever a symbol is
looked up, we make a copy of it and link to it. All of these
@@ -1532,10 +1535,11 @@ done:
this case, that symbol has been used as a host associated variable
at some previous time. */
-/* Allocate a new namespace structure. */
+/* Allocate a new namespace structure. Copies the implicit types from
+ PARENT if PARENT_TYPES is set. */
gfc_namespace *
-gfc_get_namespace (gfc_namespace * parent)
+gfc_get_namespace (gfc_namespace * parent, int parent_types)
{
gfc_namespace *ns;
gfc_typespec *ts;
@@ -1557,7 +1561,7 @@ gfc_get_namespace (gfc_namespace * parent)
ns->set_flag[i - 'a'] = 0;
ts = &ns->default_type[i - 'a'];
- if (ns->parent != NULL)
+ if (parent_types && ns->parent != NULL)
{
/* Copy parent settings */
*ts = ns->parent->default_type[i - 'a'];
@@ -1610,7 +1614,7 @@ gfc_new_symtree (gfc_symtree ** root, const char *name)
gfc_symtree *st;
st = gfc_getmem (sizeof (gfc_symtree));
- strcpy (st->name, name);
+ st->name = gfc_get_string (name);
gfc_insert_bbt (root, st, compare_symtree);
return st;
@@ -1626,7 +1630,7 @@ delete_symtree (gfc_symtree ** root, const char *name)
st0 = gfc_find_symtree (*root, name);
- strcpy (st.name, name);
+ st.name = gfc_get_string (name);
gfc_delete_bbt (root, &st, compare_symtree);
gfc_free (st0);
@@ -1671,7 +1675,7 @@ gfc_get_uop (const char *name)
st = gfc_new_symtree (&gfc_current_ns->uop_root, name);
uop = st->n.uop = gfc_getmem (sizeof (gfc_user_op));
- strcpy (uop->name, name);
+ uop->name = gfc_get_string (name);
uop->access = ACCESS_UNKNOWN;
uop->ns = gfc_current_ns;
@@ -1740,7 +1744,7 @@ gfc_new_symbol (const char *name, gfc_namespace * ns)
if (strlen (name) > GFC_MAX_SYMBOL_LEN)
gfc_internal_error ("new_symbol(): Symbol name too long");
- strcpy (p->name, name);
+ p->name = gfc_get_string (name);
return p;
}
@@ -1751,7 +1755,7 @@ static void
ambiguous_symbol (const char *name, gfc_symtree * st)
{
- if (st->n.sym->module[0])
+ if (st->n.sym->module)
gfc_error ("Name '%s' at %C is an ambiguous reference to '%s' "
"from module '%s'", name, st->n.sym->name, st->n.sym->module);
else
@@ -2244,7 +2248,7 @@ void
gfc_symbol_init_2 (void)
{
- gfc_current_ns = gfc_get_namespace (NULL);
+ gfc_current_ns = gfc_get_namespace (NULL, 0);
}
@@ -2359,7 +2363,7 @@ gfc_symbol_state(void) {
/* Search a tree for the global symbol. */
gfc_gsymbol *
-gfc_find_gsymbol (gfc_gsymbol *symbol, char *name)
+gfc_find_gsymbol (gfc_gsymbol *symbol, const char *name)
{
gfc_gsymbol *s;
@@ -2396,7 +2400,7 @@ gsym_compare (void * _s1, void * _s2)
/* Get a global symbol, creating it if it doesn't exist. */
gfc_gsymbol *
-gfc_get_gsymbol (char *name)
+gfc_get_gsymbol (const char *name)
{
gfc_gsymbol *s;
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index e281619741d..bd77eb46850 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -99,43 +99,6 @@ static gfc_ss *gfc_walk_subexpr (gfc_ss *, gfc_expr *);
static gfc_ss gfc_ss_terminator_var;
gfc_ss * const gfc_ss_terminator = &gfc_ss_terminator_var;
-unsigned HOST_WIDE_INT gfc_stack_space_left;
-
-
-/* Returns true if a variable of specified size should go on the stack. */
-
-int
-gfc_can_put_var_on_stack (tree size)
-{
- unsigned HOST_WIDE_INT low;
-
- if (!INTEGER_CST_P (size))
- return 0;
-
- if (gfc_option.flag_max_stack_var_size < 0)
- return 1;
-
- if (TREE_INT_CST_HIGH (size) != 0)
- return 0;
-
- low = TREE_INT_CST_LOW (size);
- if (low > (unsigned HOST_WIDE_INT) gfc_option.flag_max_stack_var_size)
- return 0;
-
-/* TODO: Set a per-function stack size limit. */
-#if 0
- /* We should be a bit more clever with array temps. */
- if (gfc_option.flag_max_function_vars_size >= 0)
- {
- if (low > gfc_stack_space_left)
- return 0;
-
- gfc_stack_space_left -= low;
- }
-#endif
-
- return 1;
-}
static tree
gfc_array_dataptr_type (tree desc)
@@ -1271,7 +1234,7 @@ gfc_conv_ss_descriptor (stmtblock_t * block, gfc_ss * ss, int base)
/* Also the data pointer. */
tmp = gfc_conv_array_data (se.expr);
/* If this is a variable or address of a variable we use it directly.
- Otherwise we must evaluate it now to to avoid break dependency
+ Otherwise we must evaluate it now to avoid breaking dependency
analysis by pulling the expressions for elemental array indices
inside the loop. */
if (!(DECL_P (tmp)
@@ -3071,7 +3034,7 @@ gfc_trans_auto_array_allocation (tree decl, gfc_symbol * sym, tree fnbody)
gcc_assert (!sym->attr.use_assoc);
gcc_assert (!TREE_STATIC (decl));
- gcc_assert (!sym->module[0]);
+ gcc_assert (!sym->module);
if (sym->ts.type == BT_CHARACTER
&& !INTEGER_CST_P (sym->ts.cl->backend_decl))
@@ -4194,18 +4157,18 @@ gfc_walk_op_expr (gfc_ss * ss, gfc_expr * expr)
gfc_ss *head2;
gfc_ss *newss;
- head = gfc_walk_subexpr (ss, expr->op1);
- if (expr->op2 == NULL)
+ head = gfc_walk_subexpr (ss, expr->value.op.op1);
+ if (expr->value.op.op2 == NULL)
head2 = head;
else
- head2 = gfc_walk_subexpr (head, expr->op2);
+ head2 = gfc_walk_subexpr (head, expr->value.op.op2);
/* All operands are scalar. Pass back and let the caller deal with it. */
if (head2 == ss)
return head2;
/* All operands require scalarization. */
- if (head != ss && (expr->op2 == NULL || head2 != head))
+ if (head != ss && (expr->value.op.op2 == NULL || head2 != head))
return head2;
/* One of the operands needs scalarization, the other is scalar.
@@ -4223,7 +4186,7 @@ gfc_walk_op_expr (gfc_ss * ss, gfc_expr * expr)
gcc_assert (head);
newss->next = ss;
head->next = newss;
- newss->expr = expr->op1;
+ newss->expr = expr->value.op.op1;
}
else /* head2 == head */
{
@@ -4231,7 +4194,7 @@ gfc_walk_op_expr (gfc_ss * ss, gfc_expr * expr)
/* Second operand is scalar. */
newss->next = head2;
head2 = newss;
- newss->expr = expr->op2;
+ newss->expr = expr->value.op.op2;
}
return head2;
diff --git a/gcc/fortran/trans-array.h b/gcc/fortran/trans-array.h
index b4407693909..faaaf5ade4b 100644
--- a/gcc/fortran/trans-array.h
+++ b/gcc/fortran/trans-array.h
@@ -95,11 +95,6 @@ tree gfc_conv_array_stride (tree, int);
tree gfc_conv_array_lbound (tree, int);
tree gfc_conv_array_ubound (tree, int);
-/* The remaining space available for stack variables. */
-extern unsigned HOST_WIDE_INT gfc_stack_space_left;
-/* Returns true if a variable of specified size should go on the stack. */
-int gfc_can_put_var_on_stack (tree);
-
/* Build expressions for accessing components of an array descriptor. */
tree gfc_conv_descriptor_data (tree);
tree gfc_conv_descriptor_offset (tree);
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index 6a6e1395f10..42e67123328 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -242,6 +242,27 @@ build_field (segment_info *h, tree union_type, record_layout_info rli)
size_binop (PLUS_EXPR,
DECL_FIELD_OFFSET (field),
DECL_SIZE_UNIT (field)));
+ /* If this field is assigned to a label, we create another two variables.
+ One will hold the address of taget label or format label. The other will
+ hold the length of format label string. */
+ if (h->sym->attr.assign)
+ {
+ tree len;
+ tree addr;
+
+ gfc_allocate_lang_decl (field);
+ GFC_DECL_ASSIGN (field) = 1;
+ len = gfc_create_var_np (gfc_charlen_type_node,h->sym->name);
+ addr = gfc_create_var_np (pvoid_type_node, h->sym->name);
+ TREE_STATIC (len) = 1;
+ TREE_STATIC (addr) = 1;
+ DECL_INITIAL (len) = build_int_cst (NULL_TREE, -2);
+ gfc_set_decl_location (len, &h->sym->declared_at);
+ gfc_set_decl_location (addr, &h->sym->declared_at);
+ GFC_DECL_STRING_LEN (field) = pushdecl_top_level (len);
+ GFC_DECL_ASSIGN_ADDR (field) = pushdecl_top_level (addr);
+ }
+
h->field = field;
}
@@ -252,6 +273,8 @@ static tree
build_equiv_decl (tree union_type, bool is_init)
{
tree decl;
+ char name[15];
+ static int serial = 0;
if (is_init)
{
@@ -260,10 +283,13 @@ build_equiv_decl (tree union_type, bool is_init)
return decl;
}
- decl = build_decl (VAR_DECL, NULL, union_type);
+ snprintf (name, sizeof (name), "equiv.%d", serial++);
+ decl = build_decl (VAR_DECL, get_identifier (name), union_type);
DECL_ARTIFICIAL (decl) = 1;
+ DECL_IGNORED_P (decl) = 1;
- DECL_COMMON (decl) = 1;
+ if (!gfc_can_put_var_on_stack (DECL_SIZE_UNIT (decl)))
+ TREE_STATIC (decl) = 1;
TREE_ADDRESSABLE (decl) = 1;
TREE_USED (decl) = 1;
@@ -288,7 +314,7 @@ build_common_decl (gfc_common_head *com, tree union_type, bool is_init)
/* Create a namespace to store symbols for common blocks. */
if (gfc_common_ns == NULL)
- gfc_common_ns = gfc_get_namespace (NULL);
+ gfc_common_ns = gfc_get_namespace (NULL, 0);
gfc_get_symbol (com->name, gfc_common_ns, &common_sym);
decl = common_sym->backend_decl;
@@ -353,7 +379,7 @@ build_common_decl (gfc_common_head *com, tree union_type, bool is_init)
backend declarations for all of the elements. */
static void
-create_common (gfc_common_head *com, segment_info * head)
+create_common (gfc_common_head *com, segment_info * head, bool saw_equiv)
{
segment_info *s, *next_s;
tree union_type;
@@ -362,8 +388,16 @@ create_common (gfc_common_head *com, segment_info * head)
tree decl;
bool is_init = false;
- /* Declare the variables inside the common block. */
- union_type = make_node (UNION_TYPE);
+ /* Declare the variables inside the common block.
+ If the current common block contains any equivalence object, then
+ make a UNION_TYPE node, otherwise RECORD_TYPE. This will let the
+ alias analyzer work well when there is no address overlapping for
+ common variables in the current common block. */
+ if (saw_equiv)
+ union_type = make_node (UNION_TYPE);
+ else
+ union_type = make_node (RECORD_TYPE);
+
rli = start_record_layout (union_type);
field_link = &TYPE_FIELDS (union_type);
@@ -429,7 +463,7 @@ create_common (gfc_common_head *com, segment_info * head)
for (s = head; s; s = next_s)
{
s->sym->backend_decl = build3 (COMPONENT_REF, TREE_TYPE (s->field),
- decl, s->field, NULL_TREE);
+ decl, s->field, NULL_TREE);
next_s = s->next;
gfc_free (s);
@@ -677,7 +711,7 @@ find_equivalence (segment_info *n)
segment list multiple times to include indirect equivalences. */
static void
-add_equivalences (void)
+add_equivalences (bool *saw_equiv)
{
segment_info *f;
bool more;
@@ -692,6 +726,8 @@ add_equivalences (void)
{
f->sym->equiv_built = 1;
more = find_equivalence (f);
+ if (more)
+ *saw_equiv = true;
}
}
}
@@ -762,10 +798,12 @@ translate_common (gfc_common_head *common, gfc_symbol *var_list)
HOST_WIDE_INT current_offset;
unsigned HOST_WIDE_INT align;
unsigned HOST_WIDE_INT max_align;
+ bool saw_equiv;
common_segment = NULL;
current_offset = 0;
max_align = 1;
+ saw_equiv = false;
/* Add symbols to the segment. */
for (sym = var_list; sym; sym = sym->common_next)
@@ -795,7 +833,7 @@ translate_common (gfc_common_head *common, gfc_symbol *var_list)
/* Add all objects directly or indirectly equivalenced with this
symbol. */
- add_equivalences ();
+ add_equivalences (&saw_equiv);
if (current_segment->offset < 0)
gfc_error ("The equivalence set for '%s' cause an invalid "
@@ -839,7 +877,7 @@ translate_common (gfc_common_head *common, gfc_symbol *var_list)
common->name, &common->where, common_segment->offset);
}
- create_common (common, common_segment);
+ create_common (common, common_segment, saw_equiv);
}
@@ -852,6 +890,7 @@ finish_equivalences (gfc_namespace *ns)
gfc_symbol *sym;
HOST_WIDE_INT offset;
unsigned HOST_WIDE_INT align;
+ bool dummy;
for (z = ns->equiv; z; z = z->next)
for (y = z->eq; y; y = y->eq)
@@ -862,7 +901,7 @@ finish_equivalences (gfc_namespace *ns)
current_segment = get_segment_info (sym, 0);
/* All objects directly or indirectly equivalenced with this symbol. */
- add_equivalences ();
+ add_equivalences (&dummy);
/* Align the block. */
offset = align_segment (&align);
@@ -873,7 +912,7 @@ finish_equivalences (gfc_namespace *ns)
apply_segment_offset (current_segment, offset);
/* Create the decl. */
- create_common (NULL, current_segment);
+ create_common (NULL, current_segment, true);
break;
}
}
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 6567695ad29..08dd72af697 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -272,7 +272,7 @@ gfc_sym_mangled_identifier (gfc_symbol * sym)
{
char name[GFC_MAX_MANGLED_SYMBOL_LEN + 1];
- if (sym->module[0] == 0)
+ if (sym->module == NULL)
return gfc_sym_identifier (sym);
else
{
@@ -290,8 +290,8 @@ gfc_sym_mangled_function_id (gfc_symbol * sym)
int has_underscore;
char name[GFC_MAX_MANGLED_SYMBOL_LEN + 1];
- if (sym->module[0] == 0 || sym->attr.proc == PROC_EXTERNAL
- || (sym->module[0] != 0 && sym->attr.if_source == IFSRC_IFBODY))
+ if (sym->module == NULL || sym->attr.proc == PROC_EXTERNAL
+ || (sym->module != NULL && sym->attr.if_source == IFSRC_IFBODY))
{
if (strcmp (sym->name, "MAIN__") == 0
|| sym->attr.proc == PROC_INTRINSIC)
@@ -317,6 +317,32 @@ gfc_sym_mangled_function_id (gfc_symbol * sym)
}
+/* Returns true if a variable of specified size should go on the stack. */
+
+int
+gfc_can_put_var_on_stack (tree size)
+{
+ unsigned HOST_WIDE_INT low;
+
+ if (!INTEGER_CST_P (size))
+ return 0;
+
+ if (gfc_option.flag_max_stack_var_size < 0)
+ return 1;
+
+ if (TREE_INT_CST_HIGH (size) != 0)
+ return 0;
+
+ low = TREE_INT_CST_LOW (size);
+ if (low > (unsigned HOST_WIDE_INT) gfc_option.flag_max_stack_var_size)
+ return 0;
+
+/* TODO: Set a per-function stack size limit. */
+
+ return 1;
+}
+
+
/* Finish processing of a declaration and install its initial value. */
static void
@@ -404,7 +430,7 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym)
DECL_EXTERNAL (decl) = 1;
TREE_PUBLIC (decl) = 1;
}
- else if (sym->module[0] && !sym->attr.result && !sym->attr.dummy)
+ else if (sym->module && !sym->attr.result && !sym->attr.dummy)
{
/* TODO: Don't set sym->module for result or dummy variables. */
gcc_assert (current_function_decl == NULL_TREE);
@@ -533,7 +559,7 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
/* For some dummy arguments we don't use the actual argument directly.
- Instead we create a local decl and use that. This allows us to preform
+ Instead we create a local decl and use that. This allows us to perform
initialization, and construct full type information. */
static tree
@@ -766,7 +792,7 @@ gfc_get_symbol_decl (gfc_symbol * sym)
/* Symbols from modules should have their assembler names mangled.
This is done here rather than in gfc_finish_var_decl because it
is different for string length variables. */
- if (sym->module[0])
+ if (sym->module)
SET_DECL_ASSEMBLER_NAME (decl, gfc_sym_mangled_identifier (sym));
if (sym->attr.dimension)
@@ -808,7 +834,7 @@ gfc_get_symbol_decl (gfc_symbol * sym)
{
char name[GFC_MAX_MANGLED_SYMBOL_LEN + 2];
- if (sym->module[0])
+ if (sym->module)
{
/* Also prefix the mangled name for symbols from modules. */
strcpy (&name[1], sym->name);
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 494faa44135..b79d0743dec 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -414,7 +414,7 @@ gfc_conv_unary_op (enum tree_code code, gfc_se * se, gfc_expr * expr)
gcc_assert (expr->ts.type != BT_CHARACTER);
/* Initialize the operand. */
gfc_init_se (&operand, se);
- gfc_conv_expr_val (&operand, expr->op1);
+ gfc_conv_expr_val (&operand, expr->value.op.op1);
gfc_add_block_to_block (&se->pre, &operand.pre);
type = gfc_typenode_for_spec (&expr->ts);
@@ -607,25 +607,25 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
tree tmp;
gfc_init_se (&lse, se);
- gfc_conv_expr_val (&lse, expr->op1);
+ gfc_conv_expr_val (&lse, expr->value.op.op1);
gfc_add_block_to_block (&se->pre, &lse.pre);
gfc_init_se (&rse, se);
- gfc_conv_expr_val (&rse, expr->op2);
+ gfc_conv_expr_val (&rse, expr->value.op.op2);
gfc_add_block_to_block (&se->pre, &rse.pre);
- if (expr->op2->ts.type == BT_INTEGER
- && expr->op2->expr_type == EXPR_CONSTANT)
+ if (expr->value.op.op2->ts.type == BT_INTEGER
+ && expr->value.op.op2->expr_type == EXPR_CONSTANT)
if (gfc_conv_cst_int_power (se, lse.expr, rse.expr))
return;
gfc_int4_type_node = gfc_get_int_type (4);
- kind = expr->op1->ts.kind;
- switch (expr->op2->ts.type)
+ kind = expr->value.op.op1->ts.kind;
+ switch (expr->value.op.op2->ts.type)
{
case BT_INTEGER:
- ikind = expr->op2->ts.kind;
+ ikind = expr->value.op.op2->ts.kind;
switch (ikind)
{
case 1:
@@ -648,7 +648,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
{
case 1:
case 2:
- if (expr->op1->ts.type == BT_INTEGER)
+ if (expr->value.op.op1->ts.type == BT_INTEGER)
lse.expr = convert (gfc_int4_type_node, lse.expr);
else
gcc_unreachable ();
@@ -666,7 +666,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
gcc_unreachable ();
}
- switch (expr->op1->ts.type)
+ switch (expr->value.op.op1->ts.type)
{
case BT_INTEGER:
fndecl = gfor_fndecl_math_powi[kind][ikind].integer;
@@ -780,14 +780,14 @@ gfc_conv_concat_op (gfc_se * se, gfc_expr * expr)
tree args;
tree tmp;
- gcc_assert (expr->op1->ts.type == BT_CHARACTER
- && expr->op2->ts.type == BT_CHARACTER);
+ gcc_assert (expr->value.op.op1->ts.type == BT_CHARACTER
+ && expr->value.op.op2->ts.type == BT_CHARACTER);
gfc_init_se (&lse, se);
- gfc_conv_expr (&lse, expr->op1);
+ gfc_conv_expr (&lse, expr->value.op.op1);
gfc_conv_string_parameter (&lse);
gfc_init_se (&rse, se);
- gfc_conv_expr (&rse, expr->op2);
+ gfc_conv_expr (&rse, expr->value.op.op2);
gfc_conv_string_parameter (&rse);
gfc_add_block_to_block (&se->pre, &lse.pre);
@@ -846,10 +846,10 @@ gfc_conv_expr_op (gfc_se * se, gfc_expr * expr)
checkstring = 0;
lop = 0;
- switch (expr->operator)
+ switch (expr->value.op.operator)
{
case INTRINSIC_UPLUS:
- gfc_conv_expr (se, expr->op1);
+ gfc_conv_expr (se, expr->value.op.op1);
return;
case INTRINSIC_UMINUS:
@@ -951,19 +951,19 @@ gfc_conv_expr_op (gfc_se * se, gfc_expr * expr)
}
/* The only exception to this is **, which is handled separately anyway. */
- gcc_assert (expr->op1->ts.type == expr->op2->ts.type);
+ gcc_assert (expr->value.op.op1->ts.type == expr->value.op.op2->ts.type);
- if (checkstring && expr->op1->ts.type != BT_CHARACTER)
+ if (checkstring && expr->value.op.op1->ts.type != BT_CHARACTER)
checkstring = 0;
/* lhs */
gfc_init_se (&lse, se);
- gfc_conv_expr (&lse, expr->op1);
+ gfc_conv_expr (&lse, expr->value.op.op1);
gfc_add_block_to_block (&se->pre, &lse.pre);
/* rhs */
gfc_init_se (&rse, se);
- gfc_conv_expr (&rse, expr->op2);
+ gfc_conv_expr (&rse, expr->value.op.op2);
gfc_add_block_to_block (&se->pre, &rse.pre);
/* For string comparisons we generate a library call, and compare the return
@@ -1220,7 +1220,8 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym,
something like
x = f()
where f is pointer valued, we have to dereference the result. */
- if (sym->attr.pointer && !se->want_pointer && !byref)
+ if (!se->want_pointer && !byref
+ && (sym->attr.pointer || (sym->result && sym->result->attr.pointer)))
se->expr = gfc_build_indirect_ref (se->expr);
/* A pure function may still have side-effects - it may modify its
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index dcabd4112fe..554ff8ded40 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -1032,8 +1032,8 @@ gfc_conv_intrinsic_minmax (gfc_se * se, gfc_expr * expr, int op)
}
-/* Create a symbol node for this intrinsic. The symbol form the frontend
- is for the generic name. */
+/* Create a symbol node for this intrinsic. The symbol from the frontend
+ has the generic name. */
static gfc_symbol *
gfc_get_symbol_for_expr (gfc_expr * expr)
@@ -1793,7 +1793,8 @@ gfc_conv_intrinsic_ishft (gfc_se * se, gfc_expr * expr)
numbers, and we try to be compatible with other compilers, most
notably g77, here. */
rshift = fold_convert (type, build2 (RSHIFT_EXPR, utype,
- convert (type, arg), width));
+ /* APPLE LOCAL mainline 4102133 */
+ convert (utype, arg), width));
tmp = fold (build2 (GE_EXPR, boolean_type_node, arg2,
build_int_cst (TREE_TYPE (arg2), 0)));
@@ -2649,11 +2650,10 @@ gfc_conv_intrinsic_repeat (gfc_se * se, gfc_expr * expr)
}
-/* Generate code for the IARGC intrinsic. If args_only is true this is
- actually the COMMAND_ARGUMENT_COUNT intrinsic, so return IARGC - 1. */
+/* Generate code for the IARGC intrinsic. */
static void
-gfc_conv_intrinsic_iargc (gfc_se * se, gfc_expr * expr, bool args_only)
+gfc_conv_intrinsic_iargc (gfc_se * se, gfc_expr * expr)
{
tree tmp;
tree fndecl;
@@ -2667,8 +2667,6 @@ gfc_conv_intrinsic_iargc (gfc_se * se, gfc_expr * expr, bool args_only)
type = gfc_typenode_for_spec (&expr->ts);
tmp = fold_convert (type, tmp);
- if (args_only)
- tmp = build2 (MINUS_EXPR, type, tmp, build_int_cst (type, 1));
se->expr = tmp;
}
@@ -2827,7 +2825,7 @@ gfc_conv_intrinsic_function (gfc_se * se, gfc_expr * expr)
break;
case GFC_ISYM_COMMAND_ARGUMENT_COUNT:
- gfc_conv_intrinsic_iargc (se, expr, TRUE);
+ gfc_conv_intrinsic_iargc (se, expr);
break;
case GFC_ISYM_CONJG:
@@ -2869,7 +2867,7 @@ gfc_conv_intrinsic_function (gfc_se * se, gfc_expr * expr)
break;
case GFC_ISYM_IARGC:
- gfc_conv_intrinsic_iargc (se, expr, FALSE);
+ gfc_conv_intrinsic_iargc (se, expr);
break;
case GFC_ISYM_IEOR:
@@ -2980,6 +2978,7 @@ gfc_conv_intrinsic_function (gfc_se * se, gfc_expr * expr)
gfc_conv_intrinsic_bound (se, expr, 1);
break;
+ case GFC_ISYM_CHDIR:
case GFC_ISYM_DOT_PRODUCT:
case GFC_ISYM_ETIME:
case GFC_ISYM_FNUM:
@@ -2988,12 +2987,20 @@ gfc_conv_intrinsic_function (gfc_se * se, gfc_expr * expr)
case GFC_ISYM_GETGID:
case GFC_ISYM_GETPID:
case GFC_ISYM_GETUID:
+ case GFC_ISYM_HOSTNM:
+ case GFC_ISYM_KILL:
+ case GFC_ISYM_IERRNO:
case GFC_ISYM_IRAND:
+ case GFC_ISYM_LINK:
case GFC_ISYM_MATMUL:
case GFC_ISYM_RAND:
+ case GFC_ISYM_RENAME:
case GFC_ISYM_SECOND:
case GFC_ISYM_STAT:
+ case GFC_ISYM_SYMLNK:
case GFC_ISYM_SYSTEM:
+ case GFC_ISYM_TIME:
+ case GFC_ISYM_TIME8:
case GFC_ISYM_UMASK:
case GFC_ISYM_UNLINK:
gfc_conv_intrinsic_funcall (se, expr);
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index b5ef13f5e16..416932173de 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -397,7 +397,6 @@ set_string (stmtblock_t * block, stmtblock_t * postblock, tree var,
tree len;
gfc_init_se (&se, NULL);
- gfc_conv_expr (&se, e);
io = build3 (COMPONENT_REF, TREE_TYPE (var), ioparm_var, var, NULL_TREE);
len = build3 (COMPONENT_REF, TREE_TYPE (var_len), ioparm_var, var_len,
@@ -406,6 +405,7 @@ set_string (stmtblock_t * block, stmtblock_t * postblock, tree var,
/* Integer variable assigned a format label. */
if (e->ts.type == BT_INTEGER && e->symtree->n.sym->attr.assign == 1)
{
+ gfc_conv_label_variable (&se, e);
msg =
gfc_build_cstring_const ("Assigned label is not a format label");
tmp = GFC_DECL_STRING_LEN (se.expr);
@@ -417,6 +417,7 @@ set_string (stmtblock_t * block, stmtblock_t * postblock, tree var,
}
else
{
+ gfc_conv_expr (&se, e);
gfc_conv_string_parameter (&se);
gfc_add_modify_expr (&se.pre, io, fold_convert (TREE_TYPE (io), se.expr));
gfc_add_modify_expr (&se.pre, len, se.string_length);
@@ -816,7 +817,7 @@ gfc_trans_inquire (gfc_code * code)
static gfc_expr *
-gfc_new_nml_name_expr (char * name)
+gfc_new_nml_name_expr (const char * name)
{
gfc_expr * nml_name;
nml_name = gfc_get_expr();
@@ -825,7 +826,8 @@ gfc_new_nml_name_expr (char * name)
nml_name->ts.kind = gfc_default_character_kind;
nml_name->ts.type = BT_CHARACTER;
nml_name->value.character.length = strlen(name);
- nml_name->value.character.string = name;
+ nml_name->value.character.string = gfc_getmem (strlen (name) + 1);
+ strcpy (nml_name->value.character.string, name);
return nml_name;
}
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index da074c8b454..ea5da88fe7b 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -80,7 +80,23 @@ gfc_trans_label_here (gfc_code * code)
return build1_v (LABEL_EXPR, gfc_get_label_decl (code->here));
}
+
+/* Given a variable expression which has been ASSIGNed to, find the decl
+ containing the auxiliary variables. For variables in common blocks this
+ is a field_decl. */
+
+void
+gfc_conv_label_variable (gfc_se * se, gfc_expr * expr)
+{
+ gcc_assert (expr->symtree->n.sym->attr.assign == 1);
+ gfc_conv_expr (se, expr);
+ /* Deals with variable in common block. Get the field declaration. */
+ if (TREE_CODE (se->expr) == COMPONENT_REF)
+ se->expr = TREE_OPERAND (se->expr, 1);
+}
+
/* Translate a label assignment statement. */
+
tree
gfc_trans_label_assign (gfc_code * code)
{
@@ -95,7 +111,8 @@ gfc_trans_label_assign (gfc_code * code)
/* Start a new block. */
gfc_init_se (&se, NULL);
gfc_start_block (&se.pre);
- gfc_conv_expr (&se, code->expr);
+ gfc_conv_label_variable (&se, code->expr);
+
len = GFC_DECL_STRING_LEN (se.expr);
addr = GFC_DECL_ASSIGN_ADDR (se.expr);
@@ -103,6 +120,8 @@ gfc_trans_label_assign (gfc_code * code)
if (code->label->defined == ST_LABEL_TARGET)
{
+ /* Shouldn't need to set this flag. Reserve for optimization bug. */
+ DECL_ARTIFICIAL (label_tree) = 0;
label_tree = gfc_build_addr_expr (pvoid_type_node, label_tree);
len_tree = integer_minus_one_node;
}
@@ -140,7 +159,7 @@ gfc_trans_goto (gfc_code * code)
/* ASSIGNED GOTO. */
gfc_init_se (&se, NULL);
gfc_start_block (&se.pre);
- gfc_conv_expr (&se, code->expr);
+ gfc_conv_label_variable (&se, code->expr);
assign_error =
gfc_build_cstring_const ("Assigned label is not a target label");
tmp = GFC_DECL_STRING_LEN (se.expr);
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index 7bd0011ce8a..68262d6d161 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -81,6 +81,7 @@ int gfc_index_integer_kind;
/* The default kinds of the various types. */
int gfc_default_integer_kind;
+int gfc_max_integer_kind;
int gfc_default_real_kind;
int gfc_default_double_kind;
int gfc_default_character_kind;
@@ -135,6 +136,9 @@ gfc_init_kinds (void)
i_index += 1;
}
+ /* Set the maximum integer kind. Used with at least BOZ constants. */
+ gfc_max_integer_kind = gfc_integer_kinds[i_index - 1].kind;
+
for (r_index = 0, mode = MIN_MODE_FLOAT; mode <= MAX_MODE_FLOAT; mode++)
{
const struct real_format *fmt = REAL_MODE_FORMAT (mode);
@@ -183,10 +187,10 @@ gfc_init_kinds (void)
/* Choose the default integer kind. We choose 4 unless the user
directs us otherwise. */
- if (gfc_option.i8)
+ if (gfc_option.flag_default_integer)
{
if (!saw_i8)
- fatal_error ("integer kind=8 not available for -i8 option");
+ fatal_error ("integer kind=8 not available for -fdefault-integer-8 option");
gfc_default_integer_kind = 8;
}
else if (saw_i4)
@@ -195,10 +199,10 @@ gfc_init_kinds (void)
gfc_default_integer_kind = gfc_integer_kinds[i_index - 1].kind;
/* Choose the default real kind. Again, we choose 4 when possible. */
- if (gfc_option.r8)
+ if (gfc_option.flag_default_real)
{
if (!saw_r8)
- fatal_error ("real kind=8 not available for -r8 option");
+ fatal_error ("real kind=8 not available for -fdefault-real-8 option");
gfc_default_real_kind = 8;
}
else if (saw_r4)
@@ -206,9 +210,16 @@ gfc_init_kinds (void)
else
gfc_default_real_kind = gfc_real_kinds[0].kind;
- /* Choose the default double kind. If -r8 is specified, we use kind=16,
- if it's available, otherwise we do not change anything. */
- if (gfc_option.r8 && saw_r16)
+ /* Choose the default double kind. If -fdefault-real and -fdefault-double
+ are specified, we use kind=8, if it's available. If -fdefault-real is
+ specified without -fdefault-double, we use kind=16, if it's available.
+ Otherwise we do not change anything. */
+ if (gfc_option.flag_default_double && !gfc_option.flag_default_real)
+ fatal_error ("Use of -fdefault-double-8 requires -fdefault-real-8");
+
+ if (gfc_option.flag_default_real && gfc_option.flag_default_double && saw_r8)
+ gfc_default_double_kind = 8;
+ else if (gfc_option.flag_default_real && saw_r16)
gfc_default_double_kind = 16;
else if (saw_r4 && saw_r8)
gfc_default_double_kind = 8;
@@ -1667,4 +1678,24 @@ gfc_signed_type (tree type)
return gfc_signed_or_unsigned_type (0, type);
}
+/* APPLE LOCAL kext */
+int flag_weak = 0;
+
+/* APPLE LOCAL constant cfstrings */
+struct cpp_reader* parse_in;
+
+/* APPLE LOCAL begin AltiVec */
+tree
+build_stmt (enum tree_code code ATTRIBUTE_UNUSED, ...)
+{
+ gcc_assert(0);
+}
+
+void
+store_init_value (tree decl ATTRIBUTE_UNUSED, tree init ATTRIBUTE_UNUSED)
+{
+ gcc_assert(0);
+}
+/* APPLE LOCAL end AltiVec */
+
#include "gt-fortran-trans-types.h"
diff --git a/gcc/fortran/trans-types.h b/gcc/fortran/trans-types.h
index 647a62abc9a..36f4e4f841d 100644
--- a/gcc/fortran/trans-types.h
+++ b/gcc/fortran/trans-types.h
@@ -94,5 +94,9 @@ int gfc_is_nodesc_array (gfc_symbol *);
/* Return the DTYPE for an array. */
tree gfc_get_dtype (tree);
+/* APPLE LOCAL begin AltiVec */
+tree build_stmt (enum tree_code code ATTRIBUTE_UNUSED, ...);
+void store_init_value (tree decl ATTRIBUTE_UNUSED, tree init ATTRIBUTE_UNUSED);
+/* APPLE LOCAL end AltiVec */
#endif
diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h
index b670f7a3888..712c530aaee 100644
--- a/gcc/fortran/trans.h
+++ b/gcc/fortran/trans.h
@@ -118,7 +118,7 @@ typedef enum
scalarization loop. */
GFC_SS_SCALAR,
- /* Like GFC_SS_SCALAR except it evaluates a pointer the the expression.
+ /* Like GFC_SS_SCALAR except it evaluates a pointer to the expression.
Used for elemental function parameters. */
GFC_SS_REFERENCE,
@@ -289,6 +289,8 @@ void gfc_conv_expr_lhs (gfc_se * se, gfc_expr * expr);
void gfc_conv_expr_reference (gfc_se * se, gfc_expr *);
/* Equivalent to convert(type, gfc_conv_expr_val(se, expr)). */
void gfc_conv_expr_type (gfc_se * se, gfc_expr *, tree);
+/* Find the decl containing the auxiliary variables for assigned variables. */
+void gfc_conv_label_variable (gfc_se * se, gfc_expr * expr);
/* If the value is not constant, Create a temporary and copy the value. */
tree gfc_evaluate_now (tree, stmtblock_t *);
@@ -391,6 +393,9 @@ void gfc_shadow_sym (gfc_symbol *, tree, gfc_saved_var *);
/* Restore the original variable. */
void gfc_restore_sym (gfc_symbol *, gfc_saved_var *);
+/* Returns true if a variable of specified size should go on the stack. */
+int gfc_can_put_var_on_stack (tree);
+
/* Allocate the lang-spcific part of a decl node. */
void gfc_allocate_lang_decl (tree);
diff --git a/gcc/function.c b/gcc/function.c
index c4656e53587..b3aaf6ac6e8 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -501,6 +501,23 @@ assign_stack_local (enum machine_mode mode, HOST_WIDE_INT size, int align)
return assign_stack_local_1 (mode, size, align, cfun);
}
+/* APPLE LOCAL begin new function for rs6000 consumption */
+/* Wrapper around assign_stack_local_1; assign a local stack slot for the
+ current function, then set the mem_alias to a new alias set.
+ This can be used only in situations where the target code can
+ guarantee that the slot is used in a way that cannot conflict
+ with anything else. */
+
+rtx
+assign_stack_local_with_alias (enum machine_mode mode, HOST_WIDE_INT size,
+ int align)
+{
+ rtx mem = assign_stack_local_1 (mode, size, align, cfun);
+ set_mem_alias_set (mem, new_alias_set ());
+ return mem;
+}
+/* APPLE LOCAL end new function for rs6000 consumption */
+
/* Removes temporary slot TEMP from LIST. */
@@ -1992,7 +2009,6 @@ struct assign_parm_data_one
struct locate_and_pad_arg_data locate;
int partial;
BOOL_BITFIELD named_arg : 1;
- BOOL_BITFIELD last_named : 1;
BOOL_BITFIELD passed_pointer : 1;
BOOL_BITFIELD on_stack : 1;
BOOL_BITFIELD loaded_in_reg : 1;
@@ -2136,24 +2152,15 @@ assign_parm_find_data_types (struct assign_parm_data_all *all, tree parm,
memset (data, 0, sizeof (*data));
- /* Set LAST_NAMED if this is last named arg before last anonymous args. */
- if (current_function_stdarg)
- {
- tree tem;
- for (tem = TREE_CHAIN (parm); tem; tem = TREE_CHAIN (tem))
- if (DECL_NAME (tem))
- break;
- if (tem == 0)
- data->last_named = true;
- }
-
- /* Set NAMED_ARG if this arg should be treated as a named arg. For
- most machines, if this is a varargs/stdarg function, then we treat
- the last named arg as if it were anonymous too. */
- if (targetm.calls.strict_argument_naming (&all->args_so_far))
- data->named_arg = 1;
+ /* NAMED_ARG is a mis-nomer. We really mean 'non-varadic'. */
+ if (!current_function_stdarg)
+ data->named_arg = 1; /* No varadic parms. */
+ else if (TREE_CHAIN (parm))
+ data->named_arg = 1; /* Not the last non-varadic parm. */
+ else if (targetm.calls.strict_argument_naming (&all->args_so_far))
+ data->named_arg = 1; /* Only varadic ones are unnamed. */
else
- data->named_arg = !data->last_named;
+ data->named_arg = 0; /* Treat as varadic. */
nominal_type = TREE_TYPE (parm);
passed_type = DECL_ARG_TYPE (parm);
@@ -3055,7 +3062,8 @@ assign_parms (tree fndecl)
struct assign_parm_data_all all;
tree fnargs, parm;
rtx internal_arg_pointer;
- int varargs_setup = 0;
+ /* APPLE LOCAL AltiVec */
+ int pass, last_pass;
/* If the reg that the virtual arg pointer will be translated into is
not a fixed reg or is the stack pointer, make a copy of the virtual
@@ -3075,58 +3083,63 @@ assign_parms (tree fndecl)
assign_parms_initialize_all (&all);
fnargs = assign_parms_augmented_arg_list (&all);
- for (parm = fnargs; parm; parm = TREE_CHAIN (parm))
+ /* APPLE LOCAL begin AltiVec */
+ last_pass = 1;
+
+ for (pass = 1; pass <= last_pass; pass++)
{
- struct assign_parm_data_one data;
+ for (parm = fnargs; parm; parm = TREE_CHAIN (parm))
+ {
+ struct assign_parm_data_one data;
- /* Extract the type of PARM; adjust it according to ABI. */
- assign_parm_find_data_types (&all, parm, &data);
+ tree type = TREE_TYPE (parm);
+ /* In 1st iteration over actual arguments, only consider non-vectors.
+ During 2nd iteration, finish off with vector parameters. */
+ if (!current_function_stdarg && targetm.calls.skip_vec_args (type, pass, &last_pass))
+ continue;
- /* Early out for errors and void parameters. */
- if (data.passed_mode == VOIDmode)
- {
- SET_DECL_RTL (parm, const0_rtx);
- DECL_INCOMING_RTL (parm) = DECL_RTL (parm);
- continue;
- }
+ /* Extract the type of PARM; adjust it according to ABI. */
+ assign_parm_find_data_types (&all, parm, &data);
- /* Handle stdargs. LAST_NAMED is a slight mis-nomer; it's also true
- for the unnamed dummy argument following the last named argument.
- See ABI silliness wrt strict_argument_naming and NAMED_ARG. So
- we only want to do this when we get to the actual last named
- argument, which will be the first time LAST_NAMED gets set. */
- if (data.last_named && !varargs_setup)
- {
- varargs_setup = true;
- assign_parms_setup_varargs (&all, &data, false);
- }
+ /* Early out for errors and void parameters. */
+ if (data.passed_mode == VOIDmode)
+ {
+ SET_DECL_RTL (parm, const0_rtx);
+ DECL_INCOMING_RTL (parm) = DECL_RTL (parm);
+ continue;
+ }
- /* Find out where the parameter arrives in this function. */
- assign_parm_find_entry_rtl (&all, &data);
+ if (current_function_stdarg && !TREE_CHAIN (parm))
+ assign_parms_setup_varargs (&all, &data, false);
- /* Find out where stack space for this parameter might be. */
- if (assign_parm_is_stack_parm (&all, &data))
- {
- assign_parm_find_stack_rtl (parm, &data);
- assign_parm_adjust_entry_rtl (&data);
- }
+ /* Find out where the parameter arrives in this function. */
+ assign_parm_find_entry_rtl (&all, &data);
- /* Record permanently how this parm was passed. */
- set_decl_incoming_rtl (parm, data.entry_parm);
+ /* Find out where stack space for this parameter might be. */
+ if (assign_parm_is_stack_parm (&all, &data))
+ {
+ assign_parm_find_stack_rtl (parm, &data);
+ assign_parm_adjust_entry_rtl (&data);
+ }
- /* Update info on where next arg arrives in registers. */
- FUNCTION_ARG_ADVANCE (all.args_so_far, data.promoted_mode,
- data.passed_type, data.named_arg);
+ /* Record permanently how this parm was passed. */
+ set_decl_incoming_rtl (parm, data.entry_parm);
- assign_parm_adjust_stack_rtl (&data);
+ /* Update info on where next arg arrives in registers. */
+ FUNCTION_ARG_ADVANCE (all.args_so_far, data.promoted_mode,
+ data.passed_type, data.named_arg);
- if (assign_parm_setup_block_p (&data))
- assign_parm_setup_block (&all, parm, &data);
- else if (data.passed_pointer || use_register_for_decl (parm))
- assign_parm_setup_reg (&all, parm, &data);
- else
- assign_parm_setup_stack (&all, parm, &data);
+ assign_parm_adjust_stack_rtl (&data);
+
+ if (assign_parm_setup_block_p (&data))
+ assign_parm_setup_block (&all, parm, &data);
+ else if (data.passed_pointer || use_register_for_decl (parm))
+ assign_parm_setup_reg (&all, parm, &data);
+ else
+ assign_parm_setup_stack (&all, parm, &data);
+ }
}
+ /* APPLE LOCAL end AltiVec */
if (targetm.calls.split_complex_arg && fnargs != all.orig_fnargs)
assign_parms_unsplit_complex (&all, fnargs);
@@ -3160,6 +3173,8 @@ assign_parms (tree fndecl)
current_function_pretend_args_size = all.pretend_args_size;
all.stack_args_size.constant += all.extra_pretend_bytes;
current_function_args_size = all.stack_args_size.constant;
+ /* APPLE LOCAL sibcall optimization stomped CW frames (radar 3007352) */
+ cfun->unrounded_args_size = all.stack_args_size.constant;
/* Adjust function incoming argument size for alignment and
minimum length. */
diff --git a/gcc/function.h b/gcc/function.h
index f760075c638..89e3886406c 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -249,6 +249,15 @@ struct function GTY(())
needed by inner routines. */
rtx x_arg_pointer_save_area;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Nonzero if this is an all-assembly function. */
+ unsigned int cw_asm_function : 1;
+ /* Nonzero if we don't want to emit any return instructions. */
+ unsigned int cw_asm_noreturn : 1;
+ /* If nonzero, use this as the explicitly-defined frame size. */
+ int cw_asm_frame_size;
+ /* APPLE LOCAL end CW asm blocks */
+
/* Offset to end of allocated area of stack frame.
If stack grows down, this is the address of the last stack slot allocated.
If stack grows up, this is the address for the next slot. */
@@ -284,12 +293,20 @@ struct function GTY(())
int no_debugging_symbols;
rtvec original_arg_vector;
tree original_decl_initial;
+
/* Highest label number in current function. */
int inl_max_label_num;
/* Function sequence number for profiling, debugging, etc. */
int funcdef_no;
+ /* For flow.c. */
+
+ /* Highest loop depth seen so far in loop analysis. Used in flow.c
+ for the "failure strategy" when doing liveness analysis starting
+ with non-empty initial sets. */
+ int max_loop_depth;
+
/* For md files. */
/* tm.h can use this to store whatever it likes. */
@@ -329,6 +346,10 @@ struct function GTY(())
final flowgraph size. */
int max_jumptable_ents;
+ /* APPLE LOCAL begin sibcall optimization stomped CW frames (radar 3007352) */
+ int unrounded_args_size;
+ /* APPLE LOCAL end sibcall optimization stomped CW frames (radar 3007352) */
+
/* UIDs for LABEL_DECLs. */
int last_label_uid;
@@ -422,6 +443,15 @@ struct function GTY(())
/* Nonzero if code to initialize arg_pointer_save_area has been emitted. */
unsigned int arg_pointer_save_area_init : 1;
+
+ /* APPLE LOCAL begin lno */
+ /* Nonzero if the loops that are possibly infinite are marked. */
+ unsigned int marked_maybe_inf_loops : 1;
+ /* APPLE LOCAL end lno */
+
+ /* APPLE LOCAL begin 3837835 */
+ unsigned int uses_vector : 1;
+ /* APPLE LOCAL end 3837835 */
};
/* The function currently being compiled. */
diff --git a/gcc/gcc.c b/gcc/gcc.c
index a9eec5a7200..26765f24a8d 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -240,6 +240,36 @@ static const char *const spec_version = DEFAULT_TARGET_VERSION;
static const char *spec_machine = DEFAULT_TARGET_MACHINE;
+/* APPLE LOCAL begin CC_PRINT_OPTIONS (radar 3313335) */
+static char *cc_print_options = 0;
+static char *cc_print_options_filename;
+/* APPLE LOCAL end CC_PRINT_OPTIONS */
+
+/* APPLE LOCAL constant cfstrings */
+static int use_constant_cfstrings = 0;
+/* APPLE LOCAL begin deployment target */
+/* The deployment target (i.e., the minimum version of MacOS X that
+ the binary is expected to be used on). */
+static const char *macosx_deployment_target = 0;
+static unsigned int macosx_version_min_required = 0;
+
+/* The following table should be NULL-terminated and kept in
+ lexicographic order. */
+
+static struct macosx_vers {
+ const char *vers_str;
+ unsigned int vers_num;
+} macosx_vers_tbl[] = {
+ { "10.0", 1000 },
+ { "10.1", 1010 },
+ { "10.2", 1020 },
+ { "10.3", 1030 },
+ { "10.4", 1040 },
+ { "10.5", 1050 },
+ { NULL, 0 }
+};
+/* APPLE LOCAL end deployment target */
+
/* Nonzero if cross-compiling.
When -b is used, the value comes from the `specs' file. */
@@ -325,6 +355,8 @@ static const char *eval_spec_function (const char *, const char *);
static const char *handle_spec_function (const char *);
static char *save_string (const char *, int);
static void set_collect_gcc_options (void);
+/* APPLE LOCAL %b/save-temps can clobber input file (radar 2871891) --ilr */
+static const char *check_basename_derived_file (const char *string);
static void do_spec_path (struct prefix_list *, const char *, int, int, int, const char *, const char *);
static int do_spec_1 (const char *, int, const char *);
static int do_spec_2 (const char *);
@@ -453,6 +485,10 @@ or with constant text in a single argument.
%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.
+ APPLE LOCAL frameworks
+ %Q Substitute -iframework default paths.
+ APPLE LOCAL constant cfstrings
+ %yC Emit '-mconstant-cfstrings' option, if needed.
%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.
@@ -473,8 +509,6 @@ or with constant text in a single argument.
%l process LINK_SPEC as a spec.
%L process LIB_SPEC as a spec.
%G process LIBGCC_SPEC as a spec.
- %M output multilib_dir with directory separators replaced with "_";
- if multilib_dir is not set or is ".", output "".
%S process STARTFILE_SPEC as a spec. A capital S is actually used here.
%E process ENDFILE_SPEC as a spec. A capital E is actually used here.
%C process CPP_SPEC as a spec.
@@ -622,7 +656,7 @@ proper position among the other output files. */
#ifndef LIBGCC_SPEC
#if defined(REAL_LIBGCC_SPEC)
#define LIBGCC_SPEC REAL_LIBGCC_SPEC
-#elif defined(LINK_LIBGCC_SPECIAL) || defined(LINK_LIBGCC_SPECIAL_1)
+#elif defined(LINK_LIBGCC_SPECIAL_1)
/* Have gcc do the search for libgcc.a. */
#define LIBGCC_SPEC "libgcc.a%s"
#else
@@ -696,25 +730,22 @@ proper position among the other output files. */
/* We want %{T*} after %{L*} and %D so that it can be used to specify linker
scripts which exist in user specified directories, or in standard
directories. */
+/* APPLE LOCAL begin add fcreate-profile */
#ifndef LINK_COMMAND_SPEC
#define LINK_COMMAND_SPEC "\
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
%(linker) %l " LINK_PIE_SPEC "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
%{static:} %{L*} %(mfwrap) %(link_libgcc) %o %(mflib)\
- %{fprofile-arcs|fprofile-generate:-lgcov}\
+ %{fprofile-arcs|fprofile-generate|fcreate-profile:-lgcov}\
%{!nostdlib:%{!nodefaultlibs:%(link_gcc_c_sequence)}}\
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}"
#endif
+/* APPLE LOCAL end add fcreate-profile */
#ifndef LINK_LIBGCC_SPEC
-# ifdef LINK_LIBGCC_SPECIAL
-/* Don't generate -L options for startfile prefix list. */
-# define LINK_LIBGCC_SPEC ""
-# else
-/* Do generate them. */
-# define LINK_LIBGCC_SPEC "%D"
-# endif
+/* Generate -L options for startfile prefix list. */
+# define LINK_LIBGCC_SPEC "%D"
#endif
#ifndef STARTFILE_PREFIX_SPEC
@@ -763,10 +794,21 @@ static const char *sysroot_hdrs_suffix_spec = SYSROOT_HEADERS_SUFFIX_SPEC;
static const char *trad_capable_cpp =
"cc1 -E %{traditional|ftraditional|traditional-cpp:-traditional-cpp}";
+/* APPLE LOCAL begin pch */
+/* When making PCH file use this. */
+static const char *pch =
+/* APPLE LOCAL begin ss2 */
+"-o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*} \
+ %{fsave-repository=*: \n as -o %w%* %g.s %A}%V";
+/* APPLE LOCAL end ss2 */
+/* APPLE LOCAL end pch */
+
/* We don't wrap .d files in %W{} since a missing .d file, and
therefore no dependency entry, confuses make into thinking a .o
file that happens to exist is up-to-date. */
static const char *cpp_unique_options =
+/* APPLE LOCAL constant cfstrings */
+"%yC"
"%{C|CC:%{!E:%eGCC does not support -C or -CC without -E}}\
%{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I\
%{MD:-MD %{!o:%b.d}%{o*:%.d%*}}\
@@ -794,6 +836,13 @@ static const char *cpp_debug_options = "%{d*}";
/* NB: This is shared amongst all front-ends. */
static const char *cc1_options =
+/* APPLE LOCAL constant cfstrings */
+"%yC"
+/* APPLE LOCAL begin -fast */
+"%{fast:-O3}\
+ %{fastf:-O3}\
+ %{fastcp:-O3}"
+/* APPLE LOCAL end -fast */
"%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
%1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\
%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}}\
@@ -942,26 +991,30 @@ static const struct compiler default_compilers[] =
{"@c",
/* cc1 has an integrated ISO C preprocessor. We should invoke the
external preprocessor if -save-temps is given. */
+ /* APPLE LOCAL begin treat -fast same as -combine --dbj */
"%{E|M|MM:%(trad_capable_cpp) %(cpp_options) %(cpp_debug_options)}\
+ "/* APPLE LOCAL cpp-precomp compatibility */"\
+ %{precomp:%ecpp-precomp not supported}%{no-cpp-precomp:}%{Wno-precomp:}\
%{!E:%{!M:%{!MM:\
%{traditional|ftraditional:\
%eGNU C no longer supports -traditional without -E}\
- %{!combine:\
+ %{combine|fast|fastf|fastcp:\
+ %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
+ %(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i}}\
+ %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
+ cc1 %(cpp_unique_options) %(cc1_options)}}\
+ %{!fsyntax-only:%(invoke_as)}};:\
%{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
%(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i} \n\
- cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} \
+"/* APPLE LOCAL predictive compilation */"\
+ cc1 -fpreprocessed %<fpredictive-compilation* %{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)}} \
- %{combine:\
- %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
- %(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i}}\
- %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
- cc1 %(cpp_unique_options) %(cc1_options)}}\
- %{!fsyntax-only:%(invoke_as)}}}}}}", 0, 1, 1},
+ %{!fsyntax-only:%(invoke_as)}}}}}", 0, 1, 1},
+ /* APPLE LOCAL end treat -fast same as -combine --dbj */
{"-",
- "%{!E:%e-E required when input is from standard input}\
+ "%{!E:%e-E or -x required when input is from standard input}\
%(trad_capable_cpp) %(cpp_options) %(cpp_debug_options)", 0, 0, 0},
{".h", "@c-header", 0, 0, 0},
{"@c-header",
@@ -971,18 +1024,28 @@ static const struct compiler default_compilers[] =
%{!E:%{!M:%{!MM:\
%{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
%(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i} \n\
- cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} \
+"/* APPLE LOCAL predictive compilation */"\
+ cc1 -fpreprocessed %<fpredictive-compilation* %{save-temps:%b.i} %{!save-temps:%g.i} \
%(cc1_options)\
- -o %g.s %{!o*:--output-pch=%i.gch}\
- %W{o*:--output-pch=%*}%V}\
+"/* APPLE LOCAL pch */"\
+ %(pch)}\
%{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
cc1 %(cpp_unique_options) %(cc1_options)\
- -o %g.s %{!o*:--output-pch=%i.gch}\
- %W{o*:--output-pch=%*}%V}}}}}}", 0, 0, 0},
+"/* APPLE LOCAL pch */"\
+ %(pch)}}}}}}", 0, 0, 0},
{".i", "@cpp-output", 0, 1, 0},
{"@cpp-output",
- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 1, 0},
- {".s", "@assembler", 0, 1, 0},
+ /* APPLE LOCAL predictive compilation */
+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %<fpredictive-compilation* %{!fsyntax-only:%(invoke_as)}}}}", 0, 1, 0},
+ /* APPLE LOCAL begin preprocess .s files 2001-07-24 --sts */
+ /* This is kind of lame; the purpose of having .s and .S be treated
+ differently is so that we can control whether to run the
+ preprocessor on assembly files. The standard behavior would
+ still work even on HFS filesystems, because they preserve case,
+ but we'd have to get a number of projects to change their files,
+ and of course that's just *too* *hard*. */
+ {".s", "@assembler-with-cpp", 0, 1, 0},
+ /* APPLE LOCAL end preprocess .s files 2001-07-24 --sts */
{"@assembler",
"%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 1, 0},
{".S", "@assembler-with-cpp", 0, 1, 0},
@@ -1009,6 +1072,12 @@ static const struct compiler default_compilers[] =
static const int n_default_compilers = ARRAY_SIZE (default_compilers) - 1;
+/* APPLE LOCAL begin -ObjC 2001-08-03 --sts */
+/* -ObjC is not the same as -x objective-c, since it only affects the
+ expectation of the language in files already thought to be source
+ code. */
+static const char *default_language;
+/* APPLE LOCAL end -ObjC 2001-08-03 --sts */
/* A vector of options to give to the linker.
These options are accumulated by %x,
and substituted into the linker command with %X. */
@@ -1524,6 +1593,8 @@ static struct spec_list static_specs[] =
INIT_STATIC_SPEC ("cpp_debug_options", &cpp_debug_options),
INIT_STATIC_SPEC ("cpp_unique_options", &cpp_unique_options),
INIT_STATIC_SPEC ("trad_capable_cpp", &trad_capable_cpp),
+ /* APPLE LOCAL pch */
+ INIT_STATIC_SPEC ("pch", &pch),
INIT_STATIC_SPEC ("cc1", &cc1_spec),
INIT_STATIC_SPEC ("cc1_options", &cc1_options),
INIT_STATIC_SPEC ("cc1plus", &cc1plus_spec),
@@ -1704,11 +1775,7 @@ init_spec (void)
if (in_sep && *p == '-' && strncmp (p, "-lgcc", 5) == 0)
{
init_gcc_specs (&obstack,
-#ifdef NO_SHARED_LIBGCC_MULTILIB
"-lgcc_s"
-#else
- "-lgcc_s%M"
-#endif
#ifdef USE_LIBUNWIND_EXCEPTIONS
" -lunwind"
#endif
@@ -1732,12 +1799,7 @@ init_spec (void)
/* Ug. We don't know shared library extensions. Hope that
systems that use this form don't do shared libraries. */
init_gcc_specs (&obstack,
-#ifdef NO_SHARED_LIBGCC_MULTILIB
- "-lgcc_s"
-#else
- "-lgcc_s%M"
-#endif
- ,
+ "-lgcc_s",
"libgcc.a%s",
"libgcc_eh.a%s"
#ifdef USE_LIBUNWIND_EXCEPTIONS
@@ -2717,7 +2779,8 @@ execute (void)
/* If -v, print what we are about to do, and maybe query. */
- if (verbose_flag)
+ /* APPLE LOCAL begin CC_PRINT_OPTIONS (radar 3313335, 3360444) */
+ if (verbose_flag || cc_print_options)
{
/* For help listings, put a blank line between sub-processes. */
if (print_help_list)
@@ -2728,29 +2791,49 @@ execute (void)
{
const char *const *j;
- if (verbose_only_flag)
+ FILE *f = stderr;
+ if (cc_print_options)
+ {
+ if (cc_print_options_filename)
+ {
+ f = fopen (cc_print_options_filename, "a");
+ if (!f)
+ {
+ fprintf (stderr, "can not open CC_PRINT_OPTIONS_FILE %s\n",
+ cc_print_options_filename);
+ exit (1);
+ }
+ }
+ fprintf (f, "[Logging gcc options]");
+ }
+
+ if (verbose_only_flag || cc_print_options)
{
for (j = commands[i].argv; *j; j++)
{
const char *p;
- fprintf (stderr, " \"");
+ fprintf (f, " \"");
for (p = *j; *p; ++p)
{
if (*p == '"' || *p == '\\' || *p == '$')
- fputc ('\\', stderr);
- fputc (*p, stderr);
+ fputc ('\\', f);
+ fputc (*p, f);
}
- fputc ('"', stderr);
+ fputc ('"', f);
}
}
else
for (j = commands[i].argv; *j; j++)
- fprintf (stderr, " %s", *j);
+ fprintf (f, " %s", *j);
/* Print a pipe symbol after all but the last command. */
if (i + 1 != n_commands)
- fprintf (stderr, " |");
- fprintf (stderr, "\n");
+ fprintf (f, " |");
+ fprintf (f, "\n");
+
+ if (cc_print_options_filename)
+ fclose (f);
+/* APPLE LOCAL end CC_PRINT_OPTIONS */
}
fflush (stderr);
if (verbose_only_flag != 0)
@@ -2809,6 +2892,17 @@ execute (void)
char *errmsg_fmt, *errmsg_arg;
const char *string = commands[i].argv[0];
+ /* APPLE LOCAL begin verbose help (radar #2920964) */
+ if (verbose_flag && print_help_list
+ && (!strcmp ("/usr/libexec/gcc/darwin/ppc/as", string)
+ || !strcmp ("/usr/libexec/gcc/darwin/i386/as", string)
+ || !strcmp ("ld", string)))
+ {
+ /* Do nothing.
+ as and ld do not entertain --help. */
+ }
+ else
+ /* APPLE LOCAL end */
/* For some bizarre reason, the second argument of execvp() is
char *const *, not const char *const *. */
commands[i].pid = pexecute (string, (char *const *) commands[i].argv,
@@ -2848,6 +2942,16 @@ execute (void)
int status;
int pid;
+ /* APPLE LOCAL begin verbose help (radar #2920964) */
+ if (verbose_flag && print_help_list
+ && (!strcmp ("as", commands[i].prog)
+ || !strcmp ("ld", commands[i].prog)))
+ {
+ /* as and ld do not entertain --help. */
+ i++;
+ continue;
+ }
+ /* APPLE LOCAL end */
pid = pwait (commands[i].pid, &status, 0);
gcc_assert (pid >= 0);
@@ -2951,9 +3055,14 @@ struct infile
{
const char *name;
const char *language;
+ /* APPLE LOCAL begin IMI */
struct compiler *incompiler;
+
+ /* Use separate temp file for each input file. */
+ const char *temp_filename;
bool compiled;
bool preprocessed;
+ /* APPLE LOCAL end IMI */
};
/* Also a vector of input files specified. */
@@ -2967,6 +3076,15 @@ int n_infiles;
static bool combine_inputs;
+/* APPLE LOCAL begin IMA variables */
+
+/* True if "-traditional-cpp" appears on commandline. */
+static int traditional_cpp_flag = 0;
+
+/* True if "-E" appears on commandline. */
+static int capital_e_flag = 0;
+/* APPLE LOCAL end */
+
/* This counts the number of libraries added by lang_specific_driver, so that
we can tell if there were any user supplied any files or libraries. */
@@ -3174,6 +3292,13 @@ process_command (int argc, const char **argv)
}
}
+ /* APPLE LOCAL begin translate_options */
+ /* FSF patch pending. Move translate_options() call before -b processing
+ so that -bundle like options can be translated, if required. */
+ /* Convert new-style -- options to old-style. */
+ translate_options (&argc, (const char *const **) &argv);
+ /* APPLE LOCAL end */
+
/* If there is a -V or -b option (or both), process it now, before
trying to interpret the rest of the command line. */
if (argc > 1 && argv[1][0] == '-'
@@ -3376,6 +3501,24 @@ process_command (int argc, const char **argv)
}
}
+ /* APPLE LOCAL begin deployment target */
+ /* Retrieve the deployment target from the environment, and then decide
+ whether to enable '-fconstant-cfstrings' by default. */
+ macosx_deployment_target = getenv ("MACOSX_DEPLOYMENT_TARGET");
+ if (macosx_deployment_target)
+ {
+ struct macosx_vers *v = macosx_vers_tbl;
+
+ while (v->vers_str && strcmp (macosx_deployment_target, v->vers_str))
+ v++;
+ if (v->vers_str)
+ {
+ macosx_version_min_required = v->vers_num;
+ use_constant_cfstrings = (macosx_version_min_required >= 1020);
+ }
+ }
+ /* APPLE LOCAL end deployment target */
+
/* Convert new-style -- options to old-style. */
translate_options (&argc, (const char *const **) &argv);
@@ -3431,8 +3574,15 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
/* CPP driver cannot obtain switch from cc1_options. */
if (is_cpp_driver)
add_preprocessor_option ("--help", 6);
+ /* APPLE LOCAL begin verbose help (radar #2920964) */
+#if 0
+ /* Our assembler and linkder do not support --help. */
+ /* APPLE LOCAL end */
add_assembler_option ("--help", 6);
add_linker_option ("--help", 6);
+ /* APPLE LOCAL begin verbose help (radar #2920964) */
+#endif
+ /* APPLE LOCAL end */
}
else if (strcmp (argv[i], "-ftarget-help") == 0)
{
@@ -3549,6 +3699,43 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
save_temps_flag = 1;
n_switches++;
}
+ /* APPLE LOCAL begin IMA */
+ else if (strcmp (argv[i], "-fast") == 0
+ || strcmp (argv[i], "-fastf") == 0
+ || strcmp (argv[i], "-fastcp") == 0)
+ {
+ combine_flag = 1;
+ n_switches++;
+ }
+ else if (strcmp (argv[i], "-traditional-cpp") == 0)
+ {
+ traditional_cpp_flag = 1;
+ n_switches++;
+ }
+ else if (strcmp (argv[i], "-E") == 0)
+ {
+ capital_e_flag = 1;
+ n_switches++;
+ }
+ /* APPLE LOCAL end IMA */
+ /* APPLE LOCAL begin -weak_* (radar 3235250) */
+ else if (strcmp (argv[i], "-weak_library") == 0)
+ {
+ if (i + 1 == argc)
+ fatal ("argument to `-weak_library' is missing");
+
+ n_infiles += 2;
+ i++;
+ }
+ else if (strcmp (argv[i], "-weak_framework") == 0)
+ {
+ if (i + 1 == argc)
+ fatal ("argument to `-weak_framework' is missing");
+
+ n_infiles += 2;
+ i++;
+ }
+ /* APPLE LOCAL end -weak_* (radar 3235250) */
else if (strcmp (argv[i], "-combine") == 0)
{
combine_flag = 1;
@@ -3600,6 +3787,22 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
verbose_only_flag++;
verbose_flag++;
}
+ /* APPLE LOCAL begin constant cfstrings */
+ else if (strcmp (argv[i], "-fconstant-cfstrings") == 0)
+ use_constant_cfstrings = 1;
+ else if (strcmp (argv[i], "-fno-constant-cfstrings") == 0)
+ use_constant_cfstrings = 0;
+ /* APPLE LOCAL end constant cfstrings */
+ /* APPLE LOCAL begin frameworks */
+ else if (strcmp (argv[i], "-framework") == 0)
+ {
+ if (i + 1 == argc)
+ fatal ("argument to `-framework' is missing");
+
+ n_infiles += 2;
+ i++;
+ }
+ /* APPLE LOCAL end frameworks */
else if (argv[i][0] == '-' && argv[i][1] != 0)
{
const char *p = &argv[i][1];
@@ -3885,6 +4088,33 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
/* More prefixes are enabled in main, after we read the specs file
and determine whether this is cross-compilation or not. */
+ /* APPLE LOCAL begin constant cfstrings */
+ /* Check if '-fconstant-cfstrings' usage is valid, given our deployment
+ target. If not, issue a warning and then suppress the option. */
+ if (use_constant_cfstrings)
+ {
+ if (macosx_version_min_required && macosx_version_min_required < 1020)
+ {
+ error ("warning: `-fconstant-cfstrings' ignored because MACOSX_DEPLOYMENT_TARGET is \"%s\"",
+ macosx_deployment_target);
+ use_constant_cfstrings = 0;
+ }
+ }
+ /* APPLE LOCAL end constant cfstrings */
+ /* APPLE LOCAL begin deployment target */
+ /* Synthesize the deployment target manifest constant. */
+ if (macosx_version_min_required)
+ {
+#define VERSION_MIN_REQUIRED_FMT "-D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=%d"
+ char *macro_def = xmalloc (strlen (VERSION_MIN_REQUIRED_FMT) + 30);
+
+ sprintf (macro_def, VERSION_MIN_REQUIRED_FMT, macosx_version_min_required);
+ add_preprocessor_option (macro_def, strlen (macro_def));
+ free (macro_def);
+#undef VERSION_MIN_REQUIRED_FMT
+ }
+ /* APPLE LOCAL end deployment target */
+
/* Then create the space for the vectors and scan again. */
switches = xmalloc ((n_switches + 1) * sizeof (struct switchstr));
@@ -3991,14 +4221,62 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
infiles[n_infiles].language = "*";
infiles[n_infiles++].name = argv[i];
}
+ /* APPLE LOCAL begin -weak_* (radar 3235250) */
+ else if (strncmp (argv[i], "-weak-l", 7) == 0)
+ {
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[i];
+ }
+ else if (strcmp (argv[i], "-weak_library") == 0)
+ {
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[i];
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[++i];
+ }
+ else if (strcmp (argv[i], "-weak_framework") == 0)
+ {
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[i];
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[++i];
+ }
+ /* APPLE LOCAL end -weak_* (radar #3235250) */
else if (strcmp (argv[i], "-specs") == 0)
i++;
else if (strncmp (argv[i], "-specs=", 7) == 0)
;
+ /* APPLE LOCAL begin -ObjC 2001-08-03 --sts */
+ else if (!strcmp (argv[i], "-ObjC") || !strcmp (argv[i], "-fobjc"))
+ {
+ default_language = "objective-c";
+ add_linker_option ("-ObjC", 5);
+ }
+ else if (strcmp (argv[i], "-ObjC++") == 0)
+ {
+ default_language = "objective-c++";
+ add_linker_option ("-ObjC", 5);
+ }
+ /* APPLE LOCAL end -ObjC 2001-08-03 --sts */
else if (strcmp (argv[i], "-time") == 0)
;
else if (strcmp (argv[i], "-###") == 0)
;
+ /* APPLE LOCAL begin constant cfstrings */
+ else if (strcmp (argv[i], "-fconstant-cfstrings") == 0)
+ ;
+ else if (strcmp (argv[i], "-fno-constant-cfstrings") == 0)
+ ;
+ /* APPLE LOCAL end constant cfstrings */
+ /* APPLE LOCAL begin frameworks */
+ else if (strcmp (argv[i], "-framework") == 0)
+ {
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[i];
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = argv[++i];
+ }
+ /* APPLE LOCAL end frameworks */
else if (argv[i][0] == '-' && argv[i][1] != 0)
{
const char *p = &argv[i][1];
@@ -4228,6 +4506,14 @@ static int delete_this_arg;
is the output file name of this compilation. */
static int this_is_output_file;
+/* APPLE LOCAL begin %b/save-temps can clobber input file (radar 2871891) --ilr */
+/* Nonzero if %b or %B has been seen; the next arg to be terminated
+ is a temp file based on the input file's basename. This has
+ the potential to be the same as the input file itself so we
+ need to take precautions if it is. */
+static int this_is_basename_derived_file = 0;
+/* APPLE LOCAL end %b/save-temps can clobber input file (radar 2871891) --ilr */
+
/* Nonzero means %s has been seen; the next arg to be terminated
is the name of a library file and we should try the standard
search dirs for it. */
@@ -4248,6 +4534,10 @@ do_spec (const char *spec)
{
int value;
+ /* APPLE LOCAL begin %b/save-temps can clobber input file (radar 2871891) --ilr */
+ this_is_basename_derived_file = 0;
+ /* APPLE LOCAL end %b/save-temps can clobber input file (radar 2871891) --ilr */
+
value = do_spec_2 (spec);
/* Force out any unfinished command.
@@ -4266,6 +4556,81 @@ do_spec (const char *spec)
return value;
}
+/* APPLE LOCAL begin %b/save-temps can clobber input file (radar 2871891) --ilr */
+/* For %b and %B specs, which create a filename based on the input
+ file's basename, there is a possibility that the resulting file
+ is the same as the input file. Assuming that such names are
+ intended to be used as intermediate (temporary) files there is
+ the risk of clobbering the input file. We check for that here
+ and use a temp file instead if that would happen. */
+
+static const char *
+check_basename_derived_file (const char *string)
+{
+ int suffix_length, string_length;
+ const char *suffix;
+
+ static struct base_temp_name {
+ int suffix_length;
+ int filename_length;
+ const char *filename;
+ struct base_temp_name *next;
+ } *t, *base_temp_names = NULL;
+
+ if (strcmp (string, input_filename) != 0)
+ {
+ struct stat st_temp;
+
+ /* Note, set_input() resets input_stat_set to 0. This can also
+ be done buy or for %U, %u, and %g. */
+ if (input_stat_set == 0)
+ {
+ input_stat_set = stat (input_filename, &input_stat);
+ if (input_stat_set >= 0)
+ input_stat_set = 1;
+ }
+
+ if (input_stat_set != 1
+ || stat (string, &st_temp) < 0
+ || input_stat.st_dev != st_temp.st_dev
+ || input_stat.st_ino != st_temp.st_ino)
+ {
+ this_is_basename_derived_file = 0;
+ return string;
+ }
+ }
+
+ string_length = strlen (string);
+ suffix_length = string_length - basename_length;
+ suffix = string + string_length - suffix_length;
+
+ if (suffix_length > 0)
+ {
+ for (t = base_temp_names; t; t = t->next)
+ if (t->suffix_length == suffix_length
+ && strcmp (t->filename + t->filename_length - suffix_length,
+ suffix) == 0)
+ break;
+ }
+ else
+ t = NULL;
+
+ if (!t)
+ {
+ t = (struct base_temp_name *) xmalloc (sizeof (struct base_temp_name));
+ t->next = base_temp_names;
+ base_temp_names = t;
+
+ t->filename = make_temp_file (suffix);
+ t->filename_length = strlen (t->filename);
+ t->suffix_length = suffix_length;
+ }
+
+ delete_this_arg = 1;
+ return t->filename;
+}
+/* APPLE LOCAL end %b/save-temps can clobber input file (radar 2871891) --ilr */
+
static int
do_spec_2 (const char *spec)
{
@@ -4519,9 +4884,14 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
{
obstack_1grow (&obstack, 0);
string = obstack_finish (&obstack);
- if (this_is_library_file)
+ /* APPLE LOCAL begin %b/save-temps can clobber input file (radar 2871891) --ilr */
+ if (this_is_basename_derived_file)
+ string = check_basename_derived_file (string);
+ else if (this_is_library_file)
string = find_file (string);
- store_arg (string, delete_this_arg, this_is_output_file);
+ store_arg (string, delete_this_arg, this_is_output_file
+ || this_is_basename_derived_file);
+ /* APPLE LOCAL end %b/save-temps can clobber input file (radar 2871891) --ilr */
if (this_is_output_file)
outfiles[input_file_number] = string;
}
@@ -4554,6 +4924,8 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
arg_going = 0;
delete_this_arg = 0;
this_is_output_file = 0;
+ /* APPLE LOCAL %b/save-temps can clobber input file (radar 2871891) --ilr */
+ this_is_basename_derived_file = 0;
this_is_library_file = 0;
input_from_pipe = 0;
break;
@@ -4564,9 +4936,14 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
{
obstack_1grow (&obstack, 0);
string = obstack_finish (&obstack);
- if (this_is_library_file)
+ /* APPLE LOCAL begin %b/save-temps can clobber input file (radar 2871891) --ilr */
+ if (this_is_basename_derived_file)
+ string = check_basename_derived_file (string);
+ else if (this_is_library_file)
string = find_file (string);
- store_arg (string, delete_this_arg, this_is_output_file);
+ store_arg (string, delete_this_arg, this_is_output_file
+ || this_is_basename_derived_file);
+ /* APPLE LOCAL end %b/save-temps can clobber input file (radar 2871891) --ilr */
if (this_is_output_file)
outfiles[input_file_number] = string;
}
@@ -4583,9 +4960,14 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
{
obstack_1grow (&obstack, 0);
string = obstack_finish (&obstack);
- if (this_is_library_file)
+ /* APPLE LOCAL begin %b/save-temps can clobber input file (radar 2871891) --ilr */
+ if (this_is_basename_derived_file)
+ string = check_basename_derived_file (string);
+ else if (this_is_library_file)
string = find_file (string);
- store_arg (string, delete_this_arg, this_is_output_file);
+ store_arg (string, delete_this_arg, this_is_output_file
+ || this_is_basename_derived_file);
+ /* APPLE LOCAL end %b/save-temps can clobber input file (radar 2871891) --ilr */
if (this_is_output_file)
outfiles[input_file_number] = string;
}
@@ -4593,6 +4975,8 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
arg_going = 0;
delete_this_arg = 0;
this_is_output_file = 0;
+ /* APPLE LOCAL %b/save-temps can clobber input file (radar 2871891) --ilr */
+ this_is_basename_derived_file = 0;
this_is_library_file = 0;
break;
@@ -4603,6 +4987,8 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
fatal ("spec '%s' invalid", spec);
case 'b':
+ /* APPLE LOCAL %b/save-temps can clobber input file (radar 2871891) --ilr */
+ this_is_basename_derived_file = 1;
obstack_grow (&obstack, input_basename, basename_length);
arg_going = 1;
break;
@@ -4816,6 +5202,15 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
suffix. */
for (t = temp_names; t; t = t->next)
if (t->length == suffix_length
+ /* APPLE LOCAL begin IMA */
+#if 0
+ /* This causes gcc.dg/cpp/trad/builtins.c to fail.
+ Disable this for now. */
+ /* Create new temp file for each source file. */
+ && strcmp (suffix, ".i")
+ && strcmp (suffix, ".ii")
+#endif
+ /* APPLE LOCAL end IMA */
&& strncmp (t->suffix, suffix, suffix_length) == 0
&& t->unique == (c == 'u' || c == 'U' || c == 'j'))
break;
@@ -4843,13 +5238,17 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
temp_filename_length = strlen (temp_filename);
t->filename = temp_filename;
t->filename_length = temp_filename_length;
+ /* APPLE LOCAL begin IMA */
+ infiles[input_file_number].temp_filename = temp_filename;
+ /* APPLE LOCAL end IMA */
}
if (saved_suffix)
free (saved_suffix);
obstack_grow (&obstack, t->filename, t->filename_length);
- delete_this_arg = 1;
+ /* APPLE LOCAL what is this for? */
+ delete_this_arg = (save_temps_flag == 0);
}
arg_going = 1;
break;
@@ -4903,6 +5302,26 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
}
break;
+ /* APPLE LOCAL begin constant cfstrings */
+ case 'y':
+ {
+ int c1 = *p++;
+
+ if (c1 == 'C')
+ {
+ if (use_constant_cfstrings)
+ {
+ do_spec_1 (" ", 0, NULL);
+ do_spec_1 ("-mconstant-cfstrings", 1, NULL);
+ do_spec_1 (" ", 0, NULL);
+ }
+ }
+ else
+ abort ();
+ }
+ break;
+ /* APPLE LOCAL end constant cfstrings */
+
case 'o':
{
int max = n_infiles;
@@ -5078,23 +5497,6 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
return value;
break;
- case 'M':
- if (multilib_dir && strcmp (multilib_dir, ".") != 0)
- {
- char *p;
- const char *q;
- size_t len;
-
- len = strlen (multilib_dir);
- obstack_blank (&obstack, len + 1);
- p = obstack_next_free (&obstack) - (len + 1);
-
- *p++ = '_';
- for (q = multilib_dir; *q ; ++q, ++p)
- *p = (IS_DIR_SEPARATOR (*q) ? '_' : *q);
- }
- break;
-
case 'R':
/* We assume there is a directory
separator at the end of this string. */
@@ -6033,6 +6435,11 @@ main (int argc, const char **argv)
const char *p;
struct user_specs *uptr;
+ /* APPLE LOCAL begin CC_PRINT_OPTIONS (radar 3313335, 3360444) */
+ cc_print_options = getenv ("CC_PRINT_OPTIONS");
+ cc_print_options_filename = getenv ("CC_PRINT_OPTIONS_FILE");
+ /* APPLE LOCAL end */
+
p = argv[0] + strlen (argv[0]);
while (p != argv[0] && !IS_DIR_SEPARATOR (p[-1]))
--p;
@@ -6457,8 +6864,10 @@ main (int argc, const char **argv)
infiles[i].compiled = false;
infiles[i].preprocessed = false;
}
-
- if (combine_flag && save_temps_flag)
+
+ /* APPLE LOCAL begin IMA */
+ if (combine_flag
+ && (save_temps_flag || traditional_cpp_flag || capital_e_flag))
{
bool save_combine_inputs = combine_inputs;
/* Must do a separate pre-processing pass for C & Objective-C files, to
@@ -6485,7 +6894,7 @@ main (int argc, const char **argv)
input_filename, &input_file_compiler->spec[1]);
this_file_error = 1;
}
- else
+ else if (capital_e_flag)
{
value = do_spec (input_file_compiler->spec);
infiles[i].preprocessed = true;
@@ -6500,8 +6909,34 @@ main (int argc, const char **argv)
if (value < 0)
this_file_error = 1;
}
+ else if (save_temps_flag)
+ {
+ value = do_spec (input_file_compiler->spec);
+ infiles[i].preprocessed = TRUE;
+ if (have_o_argbuf_index)
+ infiles[i].name = argbuf[have_o_argbuf_index];
+ else
+ abort ();
+
+ infiles[i].incompiler = lookup_compiler (infiles[i].name,
+ strlen (infiles[i].name),
+ infiles[i].language);
+
+ }
+ else if (traditional_cpp_flag)
+ {
+ /* Temp file name is stored in infiles->temp_filename.
+ Use it as input file name. */
+ infiles[i].name = infiles[i].temp_filename;
+ infiles[i].incompiler = lookup_compiler (infiles[i].name,
+ strlen (infiles[i].name),
+ infiles[i].language);
+ }
}
+ if (value < 0)
+ this_file_error = 1;
+
if (this_file_error)
{
delete_failure_queue ();
@@ -6512,6 +6947,7 @@ main (int argc, const char **argv)
}
combine_inputs = save_combine_inputs;
}
+/* APPLE LOCAL end IMI */
for (i = 0; (int) i < n_infiles; i++)
{
@@ -6548,7 +6984,15 @@ main (int argc, const char **argv)
input_filename, &input_file_compiler->spec[1]);
this_file_error = 1;
}
- else
+ /* APPLE LOCAL begin IMA */
+ /* Check if -E is not used on command line OR input file is
+ assembly file. If -E is used then do not invoke compiler
+ again, because preprocessed output is already generated
+ above. However
+ 1) If -E is used with assembly input file then continue.
+ 2) If inputs are not combined then continue. */
+ else if (!capital_e_flag || !combine_inputs)
+ /* APPLE LOCAL end IMA */
{
value = do_spec (input_file_compiler->spec);
infiles[i].compiled = true;
@@ -6704,6 +7148,27 @@ lookup_compiler (const char *name, size_t length, const char *language)
if (cp >= compilers)
{
+ /* APPLE LOCAL begin -ObjC 2001-08-03 --sts */
+ /* We found a language, but because we set a default language,
+ override with the default. */
+ if (default_language)
+ {
+ struct compiler *ncomp = lookup_compiler (NULL, 0, default_language);
+#if 0 /* unhelpful without docs to educate users, skip for now -sts 2002-01-01 */
+ if (cp == ncomp
+ || (cp->spec[0] == '@'
+ && ncomp
+ && strcmp (cp->spec, ncomp->suffix) == 0))
+ {
+ if (strcmp (default_language, "objective-c") == 0)
+ error ("Warning: -ObjC/-fobjc option is redundant");
+ if (strcmp (default_language, "objective-c++") == 0)
+ error ("Warning: -ObjC++ option is redundant");
+ }
+#endif
+ return ncomp;
+ }
+ /* APPLE LOCAL end -ObjC 2001-08-03 --sts */
if (cp->spec[0] != '@')
/* A non-alias entry: return it. */
return cp;
diff --git a/gcc/gcc.h b/gcc/gcc.h
index 6c3c9829cbc..711adc0afc6 100644
--- a/gcc/gcc.h
+++ b/gcc/gcc.h
@@ -38,6 +38,8 @@ struct spec_function
|| (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \
|| (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \
|| (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'V' \
+ /* APPLE LOCAL frameworks */ \
+ || (CHAR) == 'F' \
|| (CHAR) == 'B' || (CHAR) == 'b')
/* This defines which multi-letter switches take arguments. */
diff --git a/gcc/gcov.c b/gcc/gcov.c
index ee4d6b9aa80..6675a06b60e 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -1774,7 +1774,7 @@ output_lines (FILE *gcov_file, const source_t *src)
const line_t *line; /* current line info ptr. */
char string[STRING_SIZE]; /* line buffer. */
char const *retval = ""; /* status of source file reading. */
- function_t *fn = src->functions;
+ function_t *fn = NULL;
fprintf (gcov_file, "%9s:%5d:Source:%s\n", "-", 0, src->name);
fprintf (gcov_file, "%9s:%5d:Graph:%s\n", "-", 0, bbg_file_name);
@@ -1803,6 +1803,9 @@ output_lines (FILE *gcov_file, const source_t *src)
}
}
+ if (flag_branches)
+ fn = src->functions;
+
for (line_num = 1, line = &src->lines[line_num];
line_num < src->num_lines; line_num++, line++)
{
@@ -1810,11 +1813,11 @@ output_lines (FILE *gcov_file, const source_t *src)
{
arc_t *arc = fn->blocks[fn->num_blocks - 1].pred;
gcov_type return_count = fn->blocks[fn->num_blocks - 1].count;
-
+
for (; arc; arc = arc->pred_next)
if (arc->fake)
return_count -= arc->count;
-
+
fprintf (gcov_file, "function %s", fn->name);
fprintf (gcov_file, " called %s",
format_gcov (fn->blocks[0].count, 0, -1));
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 92a19dbd545..e65f7364a0d 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -264,19 +264,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
the result of the expression is copied to a new register, and the redundant
expression is deleted by replacing it with this new register. Classic GCSE
doesn't have this problem as much as it computes the reaching defs of
- each register in each block and thus can try to use an existing register.
-
- **********************
-
- A fair bit of simplicity is created by creating small functions for simple
- tasks, even when the function is only called in one place. This may
- measurably slow things down [or may not] by creating more function call
- overhead than is necessary. The source is laid out so that it's trivial
- to make the affected functions inline so that one can measure what speed
- up, if any, can be achieved, and maybe later when things settle things can
- be rearranged.
-
- Help stamp out big monolithic functions! */
+ each register in each block and thus can try to use an existing
+ register. */
/* GCSE global vars. */
@@ -501,6 +490,10 @@ static bitmap modify_mem_list_set;
/* This array parallels modify_mem_list, but is kept canonicalized. */
static rtx * canon_modify_mem_list;
+/* Bitmap indexed by block numbers to record which blocks contain
+ function calls. */
+static bitmap blocks_with_calls;
+
/* Various variables for statistics gathering. */
/* Memory used in a pass.
@@ -739,6 +732,17 @@ gcse_main (rtx f, FILE *file)
changed = one_cprop_pass (pass + 1, 0, 0);
timevar_pop (TV_CPROP1);
+ /* APPLE LOCAL begin div by const */
+ /* div by const optimization can introduce new instructions.
+ All this stuff needs to be recomputed. */
+ free_gcse_mem ();
+ max_gcse_regno = max_reg_num ();
+ alloc_gcse_mem (f);
+ free_reg_set_mem ();
+ alloc_reg_set_mem (max_reg_num ());
+ compute_sets (f);
+ /* APPLE LOCAL end div by const */
+
if (optimize_size)
/* Do nothing. */ ;
else
@@ -958,7 +962,7 @@ alloc_gcse_mem (rtx f)
CUID_INSN (i++) = insn;
/* Allocate vars to track sets of regs. */
- reg_set_bitmap = BITMAP_XMALLOC ();
+ reg_set_bitmap = BITMAP_ALLOC (NULL);
/* Allocate vars to track sets of regs, memory per block. */
reg_set_in_block = sbitmap_vector_alloc (last_basic_block, max_gcse_regno);
@@ -966,7 +970,8 @@ alloc_gcse_mem (rtx f)
basic block. */
modify_mem_list = gcalloc (last_basic_block, sizeof (rtx));
canon_modify_mem_list = gcalloc (last_basic_block, sizeof (rtx));
- modify_mem_list_set = BITMAP_XMALLOC ();
+ modify_mem_list_set = BITMAP_ALLOC (NULL);
+ blocks_with_calls = BITMAP_ALLOC (NULL);
}
/* Free memory allocated by alloc_gcse_mem. */
@@ -977,11 +982,12 @@ free_gcse_mem (void)
free (uid_cuid);
free (cuid_insn);
- BITMAP_XFREE (reg_set_bitmap);
+ BITMAP_FREE (reg_set_bitmap);
sbitmap_vector_free (reg_set_in_block);
free_modify_mem_tables ();
- BITMAP_XFREE (modify_mem_list_set);
+ BITMAP_FREE (modify_mem_list_set);
+ BITMAP_FREE (blocks_with_calls);
}
/* Compute the local properties of each recorded expression.
@@ -1971,6 +1977,7 @@ record_last_mem_set_info (rtx insn)
need to insert a pair of items, as canon_list_insert does. */
canon_modify_mem_list[bb] =
alloc_INSN_LIST (insn, canon_modify_mem_list[bb]);
+ bitmap_set_bit (blocks_with_calls, bb);
}
else
note_stores (PATTERN (insn), canon_list_insert, (void*) insn);
@@ -2197,6 +2204,7 @@ clear_modify_mem_tables (void)
free_insn_expr_list_list (canon_modify_mem_list + i);
}
bitmap_clear (modify_mem_list_set);
+ bitmap_clear (blocks_with_calls);
}
/* Release memory used by modify_mem_list_set. */
@@ -2460,41 +2468,51 @@ compute_transp (rtx x, int indx, sbitmap *bmap, int set_p)
return;
case MEM:
- FOR_EACH_BB (bb)
- {
- rtx list_entry = canon_modify_mem_list[bb->index];
+ {
+ bitmap_iterator bi;
+ unsigned bb_index;
- while (list_entry)
- {
- rtx dest, dest_addr;
+ /* First handle all the blocks with calls. We don't need to
+ do any list walking for them. */
+ EXECUTE_IF_SET_IN_BITMAP (blocks_with_calls, 0, bb_index, bi)
+ {
+ if (set_p)
+ SET_BIT (bmap[bb_index], indx);
+ else
+ RESET_BIT (bmap[bb_index], indx);
+ }
- if (CALL_P (XEXP (list_entry, 0)))
- {
- if (set_p)
- SET_BIT (bmap[bb->index], indx);
- else
- RESET_BIT (bmap[bb->index], indx);
- break;
- }
- /* LIST_ENTRY must be an INSN of some kind that sets memory.
- Examine each hunk of memory that is modified. */
+ /* Now iterate over the blocks which have memory modifications
+ but which do not have any calls. */
+ EXECUTE_IF_AND_COMPL_IN_BITMAP (modify_mem_list_set, blocks_with_calls,
+ 0, bb_index, bi)
+ {
+ rtx list_entry = canon_modify_mem_list[bb_index];
- dest = XEXP (list_entry, 0);
- list_entry = XEXP (list_entry, 1);
- dest_addr = XEXP (list_entry, 0);
+ while (list_entry)
+ {
+ rtx dest, dest_addr;
- if (canon_true_dependence (dest, GET_MODE (dest), dest_addr,
- x, rtx_addr_varies_p))
- {
- if (set_p)
- SET_BIT (bmap[bb->index], indx);
- else
- RESET_BIT (bmap[bb->index], indx);
- break;
- }
- list_entry = XEXP (list_entry, 1);
- }
- }
+ /* LIST_ENTRY must be an INSN of some kind that sets memory.
+ Examine each hunk of memory that is modified. */
+
+ dest = XEXP (list_entry, 0);
+ list_entry = XEXP (list_entry, 1);
+ dest_addr = XEXP (list_entry, 0);
+
+ if (canon_true_dependence (dest, GET_MODE (dest), dest_addr,
+ x, rtx_addr_varies_p))
+ {
+ if (set_p)
+ SET_BIT (bmap[bb_index], indx);
+ else
+ RESET_BIT (bmap[bb_index], indx);
+ break;
+ }
+ list_entry = XEXP (list_entry, 1);
+ }
+ }
+ }
x = XEXP (x, 0);
goto repeat;
@@ -2946,6 +2964,64 @@ cprop_insn (rtx insn, int alter_jumps)
if (INSN_DELETED_P (insn))
return 1;
}
+ /* APPLE LOCAL begin div by const */
+ /* Look for int div by constant and expand if found. */
+ if ( GET_CODE (insn) == INSN
+ && GET_CODE (PATTERN (insn)) == SET
+ && ( GET_CODE (XEXP (PATTERN (insn), 1)) == DIV
+ || GET_CODE (XEXP (PATTERN (insn), 1)) == UDIV)
+ && GET_MODE (XEXP (PATTERN (insn), 1)) == SImode
+ && GET_CODE (XEXP (XEXP (PATTERN (insn), 1), 1)) == CONST_INT )
+ {
+ rtx seq, result, target;
+ target = XEXP (PATTERN (insn), 0);
+ start_sequence ();
+ result = expand_divmod (0, TRUNC_DIV_EXPR, SImode,
+ XEXP (XEXP (PATTERN (insn), 1), 0),
+ XEXP (XEXP (PATTERN (insn), 1), 1),
+ target,
+ GET_CODE (XEXP (PATTERN (insn), 1))==DIV ? 0 : 1);
+ if ( result != target )
+ emit_move_insn (target, result);
+ seq = get_insns ();
+ end_sequence ();
+ emit_insn_after (seq, insn);
+ PUT_CODE (insn, NOTE);
+ NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
+ NOTE_SOURCE_FILE (insn) = 0;
+ update_bb_for_insn (BLOCK_FOR_INSN (insn));
+ changed = 1;
+ break;
+ }
+ else if ( GET_CODE (insn) == INSN
+ && GET_CODE (PATTERN (insn)) == SET
+ && (note = find_reg_equal_equiv_note (insn))
+ && (GET_CODE (XEXP (note, 0)) == DIV
+ || GET_CODE (XEXP (note, 0)) == UDIV)
+ && GET_MODE (XEXP (note, 0)) == SImode
+ && GET_CODE (XEXP (XEXP (note, 0), 1)) == CONST_INT )
+ {
+ rtx seq, result, target;
+ target = XEXP (PATTERN (insn), 0);
+ start_sequence ();
+ result = expand_divmod (0, TRUNC_DIV_EXPR, SImode,
+ XEXP (XEXP (note, 0), 0),
+ XEXP (XEXP (note, 0), 1),
+ target,
+ GET_CODE (XEXP (note, 0))==DIV ? 0 : 1);
+ if ( result != target )
+ emit_move_insn (target, result);
+ seq = get_insns ();
+ end_sequence ();
+ emit_insn_after (seq, insn);
+ PUT_CODE (insn, NOTE);
+ NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
+ NOTE_SOURCE_FILE (insn) = 0;
+ update_bb_for_insn (BLOCK_FOR_INSN (insn));
+ changed = 1;
+ break;
+ }
+ /* APPLE LOCAL end div by const */
}
else if (REG_P (src)
&& REGNO (src) >= FIRST_PSEUDO_REGISTER
@@ -4123,7 +4199,7 @@ pre_edge_insert (struct edge_list *edge_list, struct expr **index_map)
if (! occr->deleted_p)
continue;
- /* Insert this expression on this edge if if it would
+ /* Insert this expression on this edge if it would
reach the deleted occurrence in BB. */
if (!TEST_BIT (inserted[e], j))
{
@@ -5839,7 +5915,7 @@ find_loads (rtx x, rtx store_pattern, int after)
/* Check if INSN kills the store pattern X (is aliased with it).
AFTER is true if we are checking the case when store X occurs
- after the insn. Return true if it it does. */
+ after the insn. Return true if it does. */
static bool
store_killed_in_insn (rtx x, rtx x_regs, rtx insn, int after)
diff --git a/gcc/genautomata.c b/gcc/genautomata.c
index 64dde93ed8e..e54cbbdaece 100644
--- a/gcc/genautomata.c
+++ b/gcc/genautomata.c
@@ -1,5 +1,6 @@
/* Pipeline hazard description translator.
- Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
Written by Vladimir Makarov <vmakarov@redhat.com>
@@ -8969,9 +8970,8 @@ output_get_cpu_unit_code_func (void)
int i;
unit_decl_t *units;
- fprintf (output_file, "int\n%s (%s)\n\tconst char *%s;\n",
- GET_CPU_UNIT_CODE_FUNC_NAME, CPU_UNIT_NAME_PARAMETER_NAME,
- CPU_UNIT_NAME_PARAMETER_NAME);
+ fprintf (output_file, "int\n%s (const char *%s)\n",
+ GET_CPU_UNIT_CODE_FUNC_NAME, CPU_UNIT_NAME_PARAMETER_NAME);
fprintf (output_file, "{\n struct %s {const char *%s; int %s;};\n",
NAME_CODE_STRUCT_NAME, NAME_MEMBER_NAME, CODE_MEMBER_NAME);
fprintf (output_file, " int %s, %s, %s, %s;\n", CMP_VARIABLE_NAME,
@@ -9018,9 +9018,9 @@ output_cpu_unit_reservation_p (void)
{
automaton_t automaton;
- fprintf (output_file, "int\n%s (%s, %s)\n\t%s %s;\n\tint %s;\n",
- CPU_UNIT_RESERVATION_P_FUNC_NAME, STATE_NAME,
- CPU_CODE_PARAMETER_NAME, STATE_TYPE_NAME, STATE_NAME,
+ fprintf (output_file, "int\n%s (%s %s, int %s)\n",
+ CPU_UNIT_RESERVATION_P_FUNC_NAME,
+ STATE_TYPE_NAME, STATE_NAME,
CPU_CODE_PARAMETER_NAME);
fprintf (output_file, "{\n gcc_assert (%s >= 0 && %s < %d);\n",
CPU_CODE_PARAMETER_NAME, CPU_CODE_PARAMETER_NAME,
diff --git a/gcc/genchecksum.c b/gcc/genchecksum.c
new file mode 100644
index 00000000000..3a7ee4b7226
--- /dev/null
+++ b/gcc/genchecksum.c
@@ -0,0 +1,79 @@
+/* APPLE LOCAL begin mainline 4.1 2005-06-17 3988498 */
+/* Generate checksums of executables for PCH validation
+ Copyright (C) 2005
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+#include "bconfig.h"
+#include "system.h"
+#include "md5.h"
+
+static void
+usage (void)
+{
+ fputs ("Usage: genchecksums <filename>\n", stderr);
+}
+
+static void
+dosum (const char *file)
+{
+ FILE *f;
+ unsigned char result[16];
+ int i;
+
+ f = fopen (file, "rb");
+ if (!f)
+ {
+ fprintf (stderr, "opening %s: %s\n", file, xstrerror (errno));
+ exit (1);
+ }
+
+ /* Some executable formats have timestamps in the first 16 bytes, yuck. */
+ if (fseek (f, 16, SEEK_SET) != 0)
+ {
+ fprintf (stderr, "seeking in %s: %s\n", file, xstrerror (errno));
+ exit (1);
+ }
+
+ if (md5_stream (f, result) != 0
+ || fclose (f) != 0)
+ {
+ fprintf (stderr, "reading %s: %s\n", file, xstrerror (errno));
+ exit (1);
+ }
+
+ fputs ("const unsigned char executable_checksum[16] = { ", stdout);
+ for (i = 0; i < 16; i++)
+ printf ("%#02x%s", result[i], i == 15 ? " };\n" : ", ");
+}
+
+int
+main (int argc, char ** argv)
+{
+ if (argc != 2)
+ {
+ usage ();
+ return 1;
+ }
+
+ dosum (argv[1]);
+
+ return 0;
+}
+/* APPLE LOCAL end mainline 4.1 2005-06-17 3988498 */
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index ad2c880ee51..e43db87fb1a 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -367,7 +367,9 @@ enum insn_note {
NOTE_INSN_MAX
};
-static const char *const note_insn_name[NOTE_INSN_MAX] = {
+/* We must allocate one more entry here, as we use NOTE_INSN_MAX as the
+ default field for line number notes. */
+static const char *const note_insn_name[NOTE_INSN_MAX+1] = {
#define DEF_INSN_NOTE(NAME) #NAME,
#include "insn-notes.def"
#undef DEF_INSN_NOTE
@@ -1236,6 +1238,17 @@ get_output_file_with_visibility (const char *input_file)
output_name = "gt-c-common.h", for_name = "c-common.c";
else if (strcmp (basename, "c-tree.h") == 0)
output_name = "gt-c-decl.h", for_name = "c-decl.c";
+ /* APPLE LOCAL begin mainline */
+ else if (strncmp (basename, "cp", 2) == 0 && IS_DIR_SEPARATOR (basename[2])
+ && strcmp (basename + 3, "cp-tree.h") == 0)
+ output_name = "gt-cp-tree.h", for_name = "cp/tree.c";
+ else if (strncmp (basename, "cp", 2) == 0 && IS_DIR_SEPARATOR (basename[2])
+ && strcmp (basename + 3, "decl.h") == 0)
+ output_name = "gt-cp-decl.h", for_name = "cp/decl.c";
+ else if (strncmp (basename, "cp", 2) == 0 && IS_DIR_SEPARATOR (basename[2])
+ && strcmp (basename + 3, "name-lookup.h") == 0)
+ output_name = "gt-cp-name-lookup.h", for_name = "cp/name-lookup.c";
+ /* APPLE LOCAL end mainline */
else if (strncmp (basename, "objc", 4) == 0 && IS_DIR_SEPARATOR (basename[4])
&& strcmp (basename + 5, "objc-act.h") == 0)
output_name = "gt-objc-objc-act.h", for_name = "objc/objc-act.c";
diff --git a/gcc/genpreds.c b/gcc/genpreds.c
index 874925de998..30fd3899bca 100644
--- a/gcc/genpreds.c
+++ b/gcc/genpreds.c
@@ -2,7 +2,7 @@
- prototype declarations for operand predicates (tm-preds.h)
- function definitions of operand predicates, if defined new-style
(insn-preds.c)
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -167,7 +167,7 @@ mark_mode_tests (rtx exp)
struct pred_data *p = lookup_predicate (XSTR (exp, 1));
if (!p)
error ("reference to undefined predicate '%s'", XSTR (exp, 1));
- else if (p->special)
+ else if (p->special || GET_MODE (exp) != VOIDmode)
NO_MODE_TEST (exp) = 1;
}
break;
@@ -366,7 +366,10 @@ write_predicate_expr (const char *name, rtx exp)
break;
case MATCH_OPERAND:
- printf ("%s (op, mode)", XSTR (exp, 1));
+ if (GET_MODE (exp) == VOIDmode)
+ printf ("%s (op, mode)", XSTR (exp, 1));
+ else
+ printf ("%s (op, %smode)", XSTR (exp, 1), mode_name[GET_MODE (exp)]);
break;
case MATCH_CODE:
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c
index 131731f1e7e..dd879fa55cb 100644
--- a/gcc/ggc-page.c
+++ b/gcc/ggc-page.c
@@ -2218,8 +2218,7 @@ ggc_pch_write_object (struct ggc_pch_data *d ATTRIBUTE_UNUSED,
/* To speed small writes, we use a nulled-out array that's larger
than most padding requests as the source for our null bytes. This
permits us to do the padding with fwrite() rather than fseek(), and
- limits the chance the the OS may try to flush any outstanding
- writes. */
+ limits the chance the OS may try to flush any outstanding writes. */
if (padding <= sizeof(emptyBytes))
{
if (fwrite (emptyBytes, 1, padding, f) != padding)
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index d461d776ee8..34ffaf18974 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -619,6 +619,25 @@ mostly_copy_tree_r (tree *tp, int *walk_subtrees, void *data)
return NULL_TREE;
}
+/* APPLE LOCAL begin PR 14498, etc --bowdidge */
+/* This routine was deleted from FSF mainline and lno-branch; however,
+ we're still using it in the next routine. Keep a local copy until
+ we can rewrite that other stuff. The FIXME on this worries me. */
+
+/* Mark all the _DECL nodes under *TP as volatile. FIXME: This must die
+ after VA_ARG_EXPRs are properly lowered. */
+
+static tree
+mark_decls_volatile_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED)
+{
+ if (SSA_VAR_P (*tp))
+ TREE_THIS_VOLATILE (*tp) = 1;
+
+ return NULL_TREE;
+}
+/* APPLE LOCAL end PR 14498, etc --bowdidge */
+
/* Callback for walk_tree to unshare most of the shared trees rooted at
*TP. If *TP has been visited already (i.e., TREE_VISITED (*TP) == 1),
then *TP is deep copied by calling copy_tree_r.
@@ -659,7 +678,24 @@ copy_if_shared_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
/* Otherwise, mark the tree as visited and keep looking. */
else
- TREE_VISITED (t) = 1;
+ /* APPLE LOCAL begin PR 14498 etc. --dbj */
+ /* History is complicated, this was in mainline prior to merge,
+ temporarily and erroneously removed at merge snapshot,
+ later put back, still later replaced by different mechanism. */
+ {
+ TREE_VISITED (t) = 1;
+ if (TREE_CODE (*tp) == VA_ARG_EXPR)
+ {
+ /* Mark any _DECL inside the operand as volatile to avoid
+ the optimizers messing around with it. We have to do this
+ early, otherwise we might mark a variable as volatile
+ after we gimplify other statements that use the variable
+ assuming it's not volatile. */
+ walk_tree (&TREE_OPERAND (*tp, 0), mark_decls_volatile_r,
+ NULL, NULL);
+ }
+ }
+ /* APPLE LOCAL end PR 14498 etc. */
return NULL_TREE;
}
@@ -2123,7 +2159,8 @@ gimple_boolify (tree expr)
*EXPR_P should be stored. */
static enum gimplify_status
-gimplify_cond_expr (tree *expr_p, tree *pre_p, tree *post_p, tree target)
+gimplify_cond_expr (tree *expr_p, tree *pre_p, tree *post_p, tree target,
+ fallback_t fallback)
{
tree expr = *expr_p;
tree tmp, tmp2, type;
@@ -2137,18 +2174,40 @@ gimplify_cond_expr (tree *expr_p, tree *pre_p, tree *post_p, tree target)
the arms. */
else if (! VOID_TYPE_P (type))
{
+ tree result;
+
if (target)
{
ret = gimplify_expr (&target, pre_p, post_p,
is_gimple_min_lval, fb_lvalue);
if (ret != GS_ERROR)
ret = GS_OK;
- tmp = target;
+ result = tmp = target;
tmp2 = unshare_expr (target);
}
+ else if ((fallback & fb_lvalue) == 0)
+ {
+ result = tmp2 = tmp = create_tmp_var (TREE_TYPE (expr), "iftmp");
+ ret = GS_ALL_DONE;
+ }
else
{
- tmp2 = tmp = create_tmp_var (TREE_TYPE (expr), "iftmp");
+ tree type = build_pointer_type (TREE_TYPE (expr));
+
+ if (TREE_TYPE (TREE_OPERAND (expr, 1)) != void_type_node)
+ TREE_OPERAND (expr, 1) =
+ build_fold_addr_expr (TREE_OPERAND (expr, 1));
+
+ if (TREE_TYPE (TREE_OPERAND (expr, 2)) != void_type_node)
+ TREE_OPERAND (expr, 2) =
+ build_fold_addr_expr (TREE_OPERAND (expr, 2));
+
+ tmp2 = tmp = create_tmp_var (type, "iftmp");
+
+ expr = build (COND_EXPR, void_type_node, TREE_OPERAND (expr, 0),
+ TREE_OPERAND (expr, 1), TREE_OPERAND (expr, 2));
+
+ result = build_fold_indirect_ref (tmp);
ret = GS_ALL_DONE;
}
@@ -2169,7 +2228,7 @@ gimplify_cond_expr (tree *expr_p, tree *pre_p, tree *post_p, tree target)
/* Move the COND_EXPR to the prequeue. */
gimplify_and_add (expr, pre_p);
- *expr_p = tmp;
+ *expr_p = result;
return ret;
}
@@ -2907,7 +2966,8 @@ gimplify_modify_expr_rhs (tree *expr_p, tree *from_p, tree *to_p, tree *pre_p,
if (!is_gimple_reg_type (TREE_TYPE (*from_p)))
{
*expr_p = *from_p;
- return gimplify_cond_expr (expr_p, pre_p, post_p, *to_p);
+ return gimplify_cond_expr (expr_p, pre_p, post_p, *to_p,
+ fb_rvalue);
}
else
ret = GS_UNHANDLED;
@@ -3207,6 +3267,9 @@ gimplify_addr_expr (tree *expr_p, tree *pre_p, tree *post_p)
builtins like __builtin_va_end). */
/* Caution: the silent array decomposition semantics we allow for
ADDR_EXPR means we can't always discard the pair. */
+ /* Gimplification of the ADDR_EXPR operand may drop
+ cv-qualification conversions, so make sure we add them if
+ needed. */
{
tree op00 = TREE_OPERAND (op0, 0);
tree t_expr = TREE_TYPE (expr);
@@ -3216,9 +3279,9 @@ gimplify_addr_expr (tree *expr_p, tree *pre_p, tree *post_p)
{
#ifdef ENABLE_CHECKING
tree t_op0 = TREE_TYPE (op0);
- gcc_assert (TREE_CODE (t_op0) == ARRAY_TYPE
- && POINTER_TYPE_P (t_expr)
- && cpt_same_type (TREE_TYPE (t_op0),
+ gcc_assert (POINTER_TYPE_P (t_expr)
+ && cpt_same_type (TREE_CODE (t_op0) == ARRAY_TYPE
+ ? TREE_TYPE (t_op0) : t_op0,
TREE_TYPE (t_expr))
&& POINTER_TYPE_P (t_op00)
&& cpt_same_type (t_op0, TREE_TYPE (t_op00)));
@@ -3330,16 +3393,81 @@ gimplify_asm_expr (tree *expr_p, tree *pre_p, tree *post_p)
char *p = xstrdup (constraint);
p[0] = '=';
TREE_VALUE (TREE_PURPOSE (link)) = build_string (constraint_len, p);
- free (p);
/* And add a matching input constraint. */
if (allows_reg)
{
sprintf (buf, "%d", i);
- input = build_string (strlen (buf), buf);
+
+ /* If there are multiple alternatives in the constraint,
+ handle each of them individually. Those that allow register
+ will be replaced with operand number, the others will stay
+ unchanged. */
+ if (strchr (p, ',') != NULL)
+ {
+ size_t len = 0, buflen = strlen (buf);
+ char *beg, *end, *str, *dst;
+
+ for (beg = p + 1;;)
+ {
+ end = strchr (beg, ',');
+ if (end == NULL)
+ end = strchr (beg, '\0');
+ if ((size_t) (end - beg) < buflen)
+ len += buflen + 1;
+ else
+ len += end - beg + 1;
+ if (*end)
+ beg = end + 1;
+ else
+ break;
+ }
+
+ str = alloca (len);
+ for (beg = p + 1, dst = str;;)
+ {
+ const char *tem;
+ bool mem_p, reg_p, inout_p;
+
+ end = strchr (beg, ',');
+ if (end)
+ *end = '\0';
+ beg[-1] = '=';
+ tem = beg - 1;
+ parse_output_constraint (&tem, i, 0, 0,
+ &mem_p, &reg_p, &inout_p);
+ if (dst != str)
+ *dst++ = ',';
+ if (reg_p)
+ {
+ memcpy (dst, buf, buflen);
+ dst += buflen;
+ }
+ else
+ {
+ if (end)
+ len = end - beg;
+ else
+ len = strlen (beg);
+ memcpy (dst, beg, len);
+ dst += len;
+ }
+ if (end)
+ beg = end + 1;
+ else
+ break;
+ }
+ *dst = '\0';
+ input = build_string (dst - str, str);
+ }
+ else
+ input = build_string (strlen (buf), buf);
}
else
input = build_string (constraint_len - 1, constraint + 1);
+
+ free (p);
+
input = build_tree_list (build_tree_list (NULL_TREE, input),
unshare_expr (TREE_VALUE (link)));
ASM_INPUTS (expr) = chainon (ASM_INPUTS (expr), input);
@@ -3721,11 +3849,30 @@ gimplify_expr (tree *expr_p, tree *pre_p, tree *post_p,
break;
case COND_EXPR:
- ret = gimplify_cond_expr (expr_p, pre_p, post_p, NULL_TREE);
+ ret = gimplify_cond_expr (expr_p, pre_p, post_p, NULL_TREE,
+ fallback);
+ /* C99 code may assign to an array in a structure value of a
+ conditional expression, and this has undefined behavior
+ only on execution, so create a temporary if an lvalue is
+ required. */
+ if (fallback == fb_lvalue)
+ {
+ *expr_p = get_initialized_tmp_var (*expr_p, pre_p, post_p);
+ lang_hooks.mark_addressable (*expr_p);
+ }
break;
case CALL_EXPR:
ret = gimplify_call_expr (expr_p, pre_p, fallback != fb_none);
+ /* C99 code may assign to an array in a structure returned
+ from a function, and this has undefined behavior only on
+ execution, so create a temporary if an lvalue is
+ required. */
+ if (fallback == fb_lvalue)
+ {
+ *expr_p = get_initialized_tmp_var (*expr_p, pre_p, post_p);
+ lang_hooks.mark_addressable (*expr_p);
+ }
break;
case TREE_LIST:
@@ -3805,6 +3952,16 @@ gimplify_expr (tree *expr_p, tree *pre_p, tree *post_p,
case MISALIGNED_INDIRECT_REF:
ret = gimplify_expr (&TREE_OPERAND (*expr_p, 0), pre_p, post_p,
is_gimple_reg, fb_rvalue);
+
+ /* APPLE LOCAL begin Radar 4124724 */
+ /* Useless type conversions may have been discarded, so ensure
+ that the INDIRECT_REF has a type corresponding to the pointee
+ type of its operand. */
+ if (TREE_CODE (*expr_p) == INDIRECT_REF)
+ TREE_TYPE (*expr_p)
+ = TREE_TYPE (TREE_TYPE (TREE_OPERAND (*expr_p, 0)));
+ /* APPLE LOCAL end Radar 4124724 */
+
recalculate_side_effects (*expr_p);
break;
diff --git a/gcc/ginclude/tgmath.h b/gcc/ginclude/tgmath.h
new file mode 100644
index 00000000000..8ad4448dbcc
--- /dev/null
+++ b/gcc/ginclude/tgmath.h
@@ -0,0 +1,175 @@
+/* APPLE LOCAL file radar 2872232 */
+/* Copyright (C) 2004
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+/* 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. */
+
+/*
+ * ISO C Standard: 7.22 Type-generic math <tgmath.h>
+ */
+
+#ifndef _TGMATH_H
+#define _TGMATH_H
+
+#include <math.h>
+
+#ifndef __cplusplus
+#include <complex.h>
+
+/* Naming convention: generic macros are defining using
+ __TGMATH_CPLX*, __TGMATH_REAL*, and __TGMATH_CPLX_ONLY. _CPLX
+ means the generic argument(s) may be real or complex, _REAL means
+ real only, _CPLX means complex only. If there is no suffix, we are
+ defining a function of one generic argument. If the suffix is _n
+ it is a function of n generic arguments. If the suffix is _m_n it
+ is a function of n arguments, the first m of which are generic. We
+ only define these macros for values of n and/or m that are needed. */
+
+/* The general rules for generic macros are given in 7.22 paragraphs 1 and 2.
+ If any generic parameter is complex, we use a complex version. Otherwise
+ we use a real version. If the real part of any generic parameter is long
+ double, we use the long double version. Otherwise if the real part of any
+ generic paramter is double or of integer type, we use the double version.
+ Otherwise we use the float version. */
+
+#define __tg_cplx(expr) \
+ __builtin_classify_type(expr) == 9
+
+#define __tg_ldbl(expr) \
+ __builtin_types_compatible_p(__typeof__(expr), long double)
+
+#define __tg_dbl(expr) \
+ (__builtin_types_compatible_p(__typeof__(expr), double) \
+ || __builtin_classify_type(expr) == 1)
+
+#define __tg_choose(x,f,d,l) \
+ __builtin_choose_expr(__tg_ldbl(x), l, \
+ __builtin_choose_expr(__tg_dbl(x), d, \
+ f))
+
+#define __tg_choose_2(x,y,f,d,l) \
+ __builtin_choose_expr(__tg_ldbl(x) || __tg_ldbl(y), l, \
+ __builtin_choose_expr(__tg_dbl(x) || __tg_dbl(y), d, \
+ f))
+
+#define __tg_choose_3(x,y,z,f,d,l) \
+ __builtin_choose_expr(__tg_ldbl(x) || __tg_ldbl(y) || __tg_ldbl(z), l, \
+ __builtin_choose_expr(__tg_dbl(x) || __tg_dbl(y) \
+ || __tg_dbl(z), d, \
+ f))
+
+#define __TGMATH_CPLX(z,R,C) \
+ __builtin_choose_expr (__tg_cplx(z), \
+ __tg_choose (__real__(z), C##f(z), (C)(z), C##l(z)), \
+ __tg_choose (z, R##f(z), (R)(z), R##l(z)))
+
+#define __TGMATH_CPLX_2(z1,z2,R,C) \
+ __builtin_choose_expr (__tg_cplx(z1) || __tg_cplx(z2), \
+ __tg_choose_2 (__real__(z1), __real__(z2), \
+ C##f(z1,z2), (C)(z1,z2), C##l(z1,z2)), \
+ __tg_choose_2 (z1, z2, \
+ R##f(z1,z2), (R)(z1,z2), R##l(z1,z2)))
+
+#define __TGMATH_REAL(x,R) \
+ __tg_choose (x, R##f(x), (R)(x), R##l(x))
+#define __TGMATH_REAL_2(x,y,R) \
+ __tg_choose_2 (x, y, R##f(x,y), (R)(x,y), R##l(x,y))
+#define __TGMATH_REAL_3(x,y,z,R) \
+ __tg_choose_3 (x, y, z, R##f(x,y,z), (R)(x,y,z), R##l(x,y,z))
+#define __TGMATH_REAL_1_2(x,y,R) \
+ __tg_choose (x, R##f(x,y), (R)(x,y), R##l(x,y))
+#define __TGMATH_REAL_2_3(x,y,z,R) \
+ __tg_choose_2 (x, y, R##f(x,y,z), (R)(x,y,z), R##l(x,y,z))
+#define __TGMATH_CPLX_ONLY(z,C) \
+ __tg_choose (__real__(z), C##f(z), (C)(z), C##l(z))
+
+/* Functions defined in both <math.h> and <complex.h> (7.22p4) */
+#define acos(z) __TGMATH_CPLX(z, acos, cacos)
+#define asin(z) __TGMATH_CPLX(z, asin, casin)
+#define atan(z) __TGMATH_CPLX(z, atan, catan)
+#define acosh(z) __TGMATH_CPLX(z, acosh, cacosh)
+#define asinh(z) __TGMATH_CPLX(z, asinh, casinh)
+#define atanh(z) __TGMATH_CPLX(z, atanh, catanh)
+#define cos(z) __TGMATH_CPLX(z, cos, ccos)
+#define sin(z) __TGMATH_CPLX(z, sin, csin)
+#define tan(z) __TGMATH_CPLX(z, tan, ctan)
+#define cosh(z) __TGMATH_CPLX(z, cosh, ccosh)
+#define sinh(z) __TGMATH_CPLX(z, sinh, csinh)
+#define tanh(z) __TGMATH_CPLX(z, tanh, ctanh)
+#define exp(z) __TGMATH_CPLX(z, exp, cexp)
+#define log(z) __TGMATH_CPLX(z, log, clog)
+#define pow(z1,z2) __TGMATH_CPLX_2(z1, z2, pow, cpow)
+#define sqrt(z) __TGMATH_CPLX(z, sqrt, csqrt)
+#define fabs(z) __TGMATH_CPLX(z, fabs, cabs)
+
+/* Functions defined in <math.h> only (7.22p5) */
+#define atan2(x,y) __TGMATH_REAL_2(x, y, atan2)
+#define cbrt(x) __TGMATH_REAL(x, cbrt)
+#define ceil(x) __TGMATH_REAL(x, ceil)
+#define copysign(x,y) __TGMATH_REAL_2(x, y, copysign)
+#define erf(x) __TGMATH_REAL(x, erf)
+#define erfc(x) __TGMATH_REAL(x, erfc)
+#define exp2(x) __TGMATH_REAL(x, exp2)
+#define expm1(x) __TGMATH_REAL(x, expm1)
+#define fdim(x,y) __TGMATH_REAL_2(x, y, fdim)
+#define floor(x) __TGMATH_REAL(x, floor)
+#define fma(x,y,z) __TGMATH_REAL_3(x, y, z, fma)
+#define fmax(x,y) __TGMATH_REAL_2(x, y, fmax)
+#define fmin(x,y) __TGMATH_REAL_2(x, y, fmin)
+#define fmod(x,y) __TGMATH_REAL_2(x, y, fmod)
+#define frexp(x,y) __TGMATH_REAL_1_2(x, y, frexp)
+#define hypot(x,y) __TGMATH_REAL_2(x, y, hypot)
+#define ilogb(x) __TGMATH_REAL(x, ilogb)
+#define ldexp(x,y) __TGMATH_REAL_1_2(x, y, ldexp)
+#define lgamma(x) __TGMATH_REAL(x, lgamma)
+#define llrint(x) __TGMATH_REAL(x, llrint)
+#define llround(x) __TGMATH_REAL(x, llround)
+#define log10(x) __TGMATH_REAL(x, log10)
+#define log1p(x) __TGMATH_REAL(x, log1p)
+#define log2(x) __TGMATH_REAL(x, log2)
+#define logb(x) __TGMATH_REAL(x, logb)
+#define lrint(x) __TGMATH_REAL(x, lrint)
+#define lround(x) __TGMATH_REAL(x, lround)
+#define nearbyint(x) __TGMATH_REAL(x, nearbyint)
+#define nextafter(x,y) __TGMATH_REAL_2(x, y, nextafter)
+#define nexttoward(x,y) __TGMATH_REAL_1_2(x, y, nexttoward)
+#define remainder(x,y) __TGMATH_REAL_2(x, y, remainder)
+#define remquo(x,y,z) __TGMATH_REAL_2_3(x, y, z, remquo)
+#define rint(x) __TGMATH_REAL(x, rint)
+#define round(x) __TGMATH_REAL(x, round)
+#define scalbn(x,y) __TGMATH_REAL_1_2(x, y, scalbn)
+#define scalbln(x,y) __TGMATH_REAL_1_2(x, y, scalbln)
+#define tgamma(x) __TGMATH_REAL(x, tgamma)
+#define trunc(x) __TGMATH_REAL(x, trunc)
+
+/* Functions defined in <complex.h> only (7.22p6) */
+#define carg(z) __TGMATH_CPLX_ONLY(z, carg)
+#define cimag(z) __TGMATH_CPLX_ONLY(z, cimag)
+#define conj(z) __TGMATH_CPLX_ONLY(z, conj)
+#define cproj(z) __TGMATH_CPLX_ONLY(z, cproj)
+#define creal(z) __TGMATH_CPLX_ONLY(z, creal)
+
+#endif /* __cplusplus */
+#endif /* _TGMATH_H */
diff --git a/gcc/global.c b/gcc/global.c
index 35fec4a4392..4e5d5a910f4 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -1,6 +1,6 @@
/* Allocate registers for pseudo-registers that span basic blocks.
Copyright (C) 1987, 1988, 1991, 1994, 1996, 1997, 1998,
- 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -37,6 +37,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "output.h"
#include "toplev.h"
+/* APPLE LOCAL begin rewrite weight computation */
+/* The rewritten weight computation works fine on Darwin, but causes
+ bootstrap compares to fail on Linux. */
+#ifdef CONFIG_DARWIN_H
+#define REWRITE_WEIGHT_COMPUTATION
+#endif
+/* APPLE LOCAL end rewrite weight computation */
+
/* This pass of the compiler performs global register allocation.
It assigns hard register numbers to all the pseudo registers
that were not handled in local_alloc. Assignments are recorded
@@ -225,6 +233,18 @@ static HARD_REG_SET regs_used_so_far;
static int local_reg_n_refs[FIRST_PSEUDO_REGISTER];
+/* APPLE LOCAL begin rewrite weight computation */
+#ifdef REWRITE_WEIGHT_COMPUTATION
+/* Overall weight of each hard reg, as used by local alloc.
+ This was formerly computed once as
+ SUM(REG_FREQ(i))/SUM(REG_LIVE_LENGTH(i)) where the sums
+ are computed over all uses. But that computation produces very
+ wrong answers when a reg is used both inside and outside a loop.
+ Now it is computed as
+ SUM (REG_FREQ(i)/REG_LIVE_LENGTH(i)) over all uses. */
+
+static double local_reg_weight[FIRST_PSEUDO_REGISTER];
+#else
/* Frequency of uses of given hard reg. */
static int local_reg_freq[FIRST_PSEUDO_REGISTER];
@@ -232,6 +252,8 @@ static int local_reg_freq[FIRST_PSEUDO_REGISTER];
This is actually the sum of the live lengths of the specific regs. */
static int local_reg_live_length[FIRST_PSEUDO_REGISTER];
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+/* APPLE LOCAL end rewrite weight computation */
/* Set to 1 a bit in a vector TABLE of HARD_REG_SETs, for vector
element I, and hard register number J. */
@@ -493,9 +515,17 @@ global_alloc (FILE *file)
/* Calculate amount of usage of each hard reg by pseudos
allocated by local-alloc. This is to see if we want to
override it. */
+ /* APPLE LOCAL begin rewrite weight computation */
+#ifndef REWRITE_WEIGHT_COMPUTATION
memset (local_reg_live_length, 0, sizeof local_reg_live_length);
+#endif /* REWRITE_WEIGHT_COMPUTATION */
memset (local_reg_n_refs, 0, sizeof local_reg_n_refs);
+#ifdef REWRITE_WEIGHT_COMPUTATION
+ memset (local_reg_weight, 0, sizeof local_reg_weight);
+#else
memset (local_reg_freq, 0, sizeof local_reg_freq);
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+ /* APPLE LOCAL end rewrite weight computation */
for (i = FIRST_PSEUDO_REGISTER; i < (size_t) max_regno; i++)
if (reg_renumber[i] >= 0)
{
@@ -506,15 +536,29 @@ global_alloc (FILE *file)
for (j = regno; j < endregno; j++)
{
local_reg_n_refs[j] += REG_N_REFS (i);
+ /* APPLE LOCAL begin rewrite weight computation */
+#ifdef REWRITE_WEIGHT_COMPUTATION
+ if ( REG_LIVE_LENGTH (i) > 0 )
+ local_reg_weight[j] += (double)REG_FREQ (i)
+ / (double) REG_LIVE_LENGTH (i);
+#else
local_reg_freq[j] += REG_FREQ (i);
local_reg_live_length[j] += REG_LIVE_LENGTH (i);
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+ /* APPLE LOCAL end rewrite weight computation */
}
}
/* We can't override local-alloc for a reg used not just by local-alloc. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (regs_ever_live[i])
+ /* APPLE LOCAL begin rewrite weight computation */
+#ifdef REWRITE_WEIGHT_COMPUTATION
+ local_reg_n_refs[i] = 0;
+#else
local_reg_n_refs[i] = 0, local_reg_freq[i] = 0;
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+ /* APPLE LOCAL end rewrite weight computation */
allocno_row_words = (max_allocno + INT_BITS - 1) / INT_BITS;
@@ -1265,6 +1309,15 @@ find_reg (int num, HARD_REG_SET losers, int alt_regs_p, int accept_call_clobbere
#endif
)
{
+ /* APPLE LOCAL begin rewrite weight computation */
+#ifdef REWRITE_WEIGHT_COMPUTATION
+ /* We explicitly evaluate the divide result into a temporary
+ variable so as to avoid excess precision problems that occur
+ on an i386-unknown-sysv4.2 (unixware) host. */
+ double tmp = ((double) allocno[num].freq
+ / allocno[num].live_length);
+#else
+ /* APPLE LOCAL end rewrite weight computation */
/* We explicitly evaluate the divide results into temporary
variables so as to avoid excess precision problems that occur
on an i386-unknown-sysv4.2 (unixware) host. */
@@ -1273,8 +1326,15 @@ find_reg (int num, HARD_REG_SET losers, int alt_regs_p, int accept_call_clobbere
/ local_reg_live_length[regno]);
double tmp2 = ((double) allocno[num].freq
/ allocno[num].live_length);
+ /* APPLE LOCAL begin rewrite weight computation */
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+#ifdef REWRITE_WEIGHT_COMPUTATION
+ if (local_reg_weight[regno] < tmp)
+#else
if (tmp1 < tmp2)
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+ /* APPLE LOCAL end rewrite weight computation */
{
/* Hard reg REGNO was used less in total by local regs
than it would be used by this one allocno! */
@@ -1321,7 +1381,11 @@ find_reg (int num, HARD_REG_SET losers, int alt_regs_p, int accept_call_clobbere
SET_HARD_REG_BIT (regs_used_so_far, j);
/* This is no longer a reg used just by local regs. */
local_reg_n_refs[j] = 0;
+ /* APPLE LOCAL begin rewrite weight computation */
+#ifndef REWRITE_WEIGHT_COMPUTATION
local_reg_freq[j] = 0;
+#endif /* REWRITE_WEIGHT_COMPUTATION */
+ /* APPLE LOCAL end rewrite weight computation */
}
/* For each other pseudo-reg conflicting with this one,
mark it as conflicting with the hard regs this one occupies. */
@@ -2033,21 +2097,21 @@ allocate_bb_info (void)
bitmap init;
alloc_aux_for_blocks (sizeof (struct bb_info));
- init = BITMAP_XMALLOC ();
+ init = BITMAP_ALLOC (NULL);
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
bitmap_set_bit (init, i);
FOR_EACH_BB (bb)
{
bb_info = bb->aux;
- bb_info->earlyclobber = BITMAP_XMALLOC ();
- bb_info->avloc = BITMAP_XMALLOC ();
- bb_info->killed = BITMAP_XMALLOC ();
- bb_info->live_pavin = BITMAP_XMALLOC ();
- bb_info->live_pavout = BITMAP_XMALLOC ();
+ bb_info->earlyclobber = BITMAP_ALLOC (NULL);
+ bb_info->avloc = BITMAP_ALLOC (NULL);
+ bb_info->killed = BITMAP_ALLOC (NULL);
+ bb_info->live_pavin = BITMAP_ALLOC (NULL);
+ bb_info->live_pavout = BITMAP_ALLOC (NULL);
bitmap_copy (bb_info->live_pavin, init);
bitmap_copy (bb_info->live_pavout, init);
}
- BITMAP_XFREE (init);
+ BITMAP_FREE (init);
}
/* The function frees the allocated info of all basic blocks. */
@@ -2061,11 +2125,11 @@ free_bb_info (void)
FOR_EACH_BB (bb)
{
bb_info = BB_INFO (bb);
- BITMAP_XFREE (bb_info->live_pavout);
- BITMAP_XFREE (bb_info->live_pavin);
- BITMAP_XFREE (bb_info->killed);
- BITMAP_XFREE (bb_info->avloc);
- BITMAP_XFREE (bb_info->earlyclobber);
+ BITMAP_FREE (bb_info->live_pavout);
+ BITMAP_FREE (bb_info->live_pavin);
+ BITMAP_FREE (bb_info->killed);
+ BITMAP_FREE (bb_info->avloc);
+ BITMAP_FREE (bb_info->earlyclobber);
}
free_aux_for_blocks ();
}
@@ -2297,7 +2361,7 @@ calculate_reg_pav (void)
VARRAY_BB_INIT (bbs, n_basic_blocks, "basic blocks");
VARRAY_BB_INIT (new_bbs, n_basic_blocks, "basic blocks for the next iter.");
- temp_bitmap = BITMAP_XMALLOC ();
+ temp_bitmap = BITMAP_ALLOC (NULL);
FOR_EACH_BB (bb)
{
VARRAY_PUSH_BB (bbs, bb);
@@ -2351,7 +2415,7 @@ calculate_reg_pav (void)
VARRAY_POP_ALL (new_bbs);
}
sbitmap_free (wset);
- BITMAP_XFREE (temp_bitmap);
+ BITMAP_FREE (temp_bitmap);
}
/* The function modifies partial availability information for two
@@ -2373,7 +2437,7 @@ modify_reg_pav (void)
CLEAR_HARD_REG_SET (stack_hard_regs);
for (i = FIRST_STACK_REG; i <= LAST_STACK_REG; i++)
SET_HARD_REG_BIT(stack_hard_regs, i);
- stack_regs = BITMAP_XMALLOC ();
+ stack_regs = BITMAP_ALLOC (NULL);
for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
{
COPY_HARD_REG_SET (used, reg_class_contents[reg_preferred_class (i)]);
@@ -2405,7 +2469,7 @@ modify_reg_pav (void)
#endif
}
#ifdef STACK_REGS
- BITMAP_XFREE (stack_regs);
+ BITMAP_FREE (stack_regs);
#endif
}
diff --git a/gcc/gthr-posix.c b/gcc/gthr-posix.c
index c74f3cecea9..dd7ad48d261 100644
--- a/gcc/gthr-posix.c
+++ b/gcc/gthr-posix.c
@@ -1,6 +1,6 @@
/* POSIX threads dummy routines for systems without weak definitions. */
/* Compile this one with gcc. */
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -75,6 +75,12 @@ pthread_create (pthread_t *thread ATTRIBUTE_UNUSED,
}
int
+pthread_cancel(pthread_t thread ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
+int
pthread_mutex_lock (pthread_mutex_t *mutex ATTRIBUTE_UNUSED)
{
return 0;
@@ -93,6 +99,25 @@ pthread_mutex_unlock (pthread_mutex_t *mutex ATTRIBUTE_UNUSED)
}
int
+pthread_mutexattr_init (pthread_mutexattr_t *attr ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
+int
+pthread_mutexattr_settype (pthread_mutexattr_t *attr ATTRIBUTE_UNUSED,
+ int type ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
+int
+pthread_mutexattr_destroy (pthread_mutexattr_t *attr ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
+int
pthread_cond_broadcast (pthread_cond_t *cond ATTRIBUTE_UNUSED)
{
return 0;
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 6a2ac54691f..12074224572 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -160,7 +160,8 @@ static int issue_rate;
N=3: rtl at abort point, control-flow, regions info.
N=5: dependences info. */
-static int sched_verbose_param = 0;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
int sched_verbose = 0;
/* Debugging file. All printouts are sent to dump, which is always set,
@@ -170,17 +171,8 @@ FILE *sched_dump = 0;
/* Highest uid before scheduling. */
static int old_max_uid;
-/* fix_sched_param() is called from toplev.c upon detection
- of the -fsched-verbose=N option. */
-
-void
-fix_sched_param (const char *param, const char *val)
-{
- if (!strcmp (param, "verbose"))
- sched_verbose_param = atoi (val);
- else
- warning ("fix_sched_param: unknown param: %s", param);
-}
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
struct haifa_insn_data *h_i_d;
diff --git a/gcc/hooks.c b/gcc/hooks.c
index d091583a2d3..eb91b5dc13f 100644
--- a/gcc/hooks.c
+++ b/gcc/hooks.c
@@ -149,10 +149,12 @@ hook_void_tree (tree a ATTRIBUTE_UNUSED)
{
}
+/* APPLE LOCAL begin 3739318 FSF Candidate. */
void
hook_void_constcharptr (const char *a ATTRIBUTE_UNUSED)
{
}
+/* APPLE LOCAL end 3739318 FSF Candidate. */
void
hook_void_tree_treeptr (tree a ATTRIBUTE_UNUSED, tree *b ATTRIBUTE_UNUSED)
@@ -234,6 +236,24 @@ hook_constcharptr_tree_null (tree t ATTRIBUTE_UNUSED)
return NULL;
}
+/* APPLE LOCAL begin constant cfstrings */
+/* Generic hook that takes a tree and returns NULL. */
+tree
+hook_tree_tree_null (tree a ATTRIBUTE_UNUSED)
+{
+ return NULL;
+}
+
+/* Generic hook that takes three trees and returns NULL. */
+tree
+hook_tree_tree_tree_tree_null (tree a ATTRIBUTE_UNUSED,
+ tree b ATTRIBUTE_UNUSED,
+ tree c ATTRIBUTE_UNUSED)
+{
+ return NULL;
+}
+/* APPLE LOCAL end constant cfstrings */
+
tree
hook_tree_tree_bool_null (tree t ATTRIBUTE_UNUSED, bool ignore ATTRIBUTE_UNUSED)
{
diff --git a/gcc/hooks.h b/gcc/hooks.h
index b0f47b7913f..51d062104e5 100644
--- a/gcc/hooks.h
+++ b/gcc/hooks.h
@@ -63,5 +63,9 @@ extern rtx hook_rtx_rtx_null (rtx);
extern rtx hook_rtx_tree_int_null (tree, int);
extern tree hook_tree_tree_identity (tree a);
extern const char *hook_constcharptr_tree_null (tree);
+/* APPLE LOCAL begin constant cfstrings */
+extern tree hook_tree_tree_null (tree);
+extern tree hook_tree_tree_tree_tree_null (tree, tree, tree);
+/* APPLE LOCAL end constant cfstrings */
extern tree hook_tree_tree_bool_null (tree, bool);
#endif
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 02d12c161b9..8a88b9ff5eb 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,118 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-07 Andrew Haley <aph@redhat.com>
+
+ * gcj.texi: Correct gcj-dbtool instructions.
+
+2005-04-06 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (libgcj Runtime Properties): Document
+ gnu.gcj.runtime.endorsed.dirs.
+
+2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * gcj.texi (Invoking gij): Add descriptions of new -X options.
+ Mention recognized-and-ignored compatibility options.
+ (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
+ JvFree.
+ (About CNI): Add Memory allocation section.
+
+2005-04-01 Tom Tromey <tromey@redhat.com>
+
+ * decl.c (java_init_decl_processing): Fix types of
+ _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
+ _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
+ _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
+
+2005-03-24 Anthony Green <green@redhat.com>
+
+ * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
+ 'gcj-dbtool -p'.
+
+2005-03-18 Andrew Haley <aph@redhat.com>
+
+ PR java/20522
+ * decl.c (update_aliases): Don't update variables that are about
+ to die.
+ (maybe_poplevels): Add comment.
+
+2005-03-16 Andrew Haley <aph@redhat.com>
+
+ * expr.c (expand_java_arrayload): Don't generate a
+ NullPointerException based on the type of the node.
+ (build_java_array_length_access): Likewise.
+
+2005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
+ warning.
+ * Make-lang.in: Don't elide warnings in jcf-io.c.
+
+2005-03-10 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
+ (libgcj Runtime Properties): Document the default .db.
+
+2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
+
+ * verify-glue.c (vfy_is_assignable_from): Perform static check using
+ can_widen_reference_to if the C++ ABI is in use.
+ (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
+ * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
+ type_isresolved, init_state, set_pc, state_get_pc,
+ _Jv_BytecodeVerifier): Clean up unused and disabled functions.
+ (verify_fail): Report the current PC from the verifier context.
+ (free_state): Remove #if 0 block to enable this function.
+ (free_verifier_context): Call free_state on state_list iterator
+ values before freeing them.
+ * expr.c (pop_type_0): Pop correct type for error message when stack
+ contains a multi-word type.
+
+2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
+
+ * expr.c (build_java_array_length_access): Remove !flag_new_verifier
+ for known NULL array length access.
+
+2005-03-07 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (Invoking gcj-dbtool): Document '-f'.
+
+2005-03-04 Andrew Haley <aph@redhat.com>
+
+ PR java/18362
+ * class.c (set_method_index): Don't set method_index if it is
+ NULL_TREE.
+ (layout_class_method): Don't complain about "non-static method foo
+ overrides static method" in the case of indirect dispatch.
+
+2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/16923
+ * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
+ JvVMOption.
+
+2005-02-22 Tom Tromey <tromey@redhat.com>
+
+ PR java/20056:
+ * verify-impl.c (EITHER): New define.
+ (types_compatible): Handle it.
+ (check_field_constant): Use it.
+
+2005-02-18 Tom Tromey <tromey@redhat.com>
+
+ PR java/20056:
+ * verify-impl.c (types_equal): Fixed test.
+
+ PR java/20056:
+ * verify-glue.c (vfy_class_has_field): New function.
+ * verify.h (vfy_class_has_field): Declare.
+ * verify-impl.c (check_field_constant): Added 'putfield'
+ argument.
+ (verify_instructions_0): Updated.
+ (types_equal): New function.
+
2005-02-14 Tom Tromey <tromey@redhat.com>
PR java/19921:
diff --git a/gcc/java/ChangeLog.lno b/gcc/java/ChangeLog.lno
new file mode 100644
index 00000000000..35f846515ff
--- /dev/null
+++ b/gcc/java/ChangeLog.lno
@@ -0,0 +1,4 @@
+2004-07-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * builtins.c (initialize_builtins): Initialize
+ BUILT_IN_MAYBE_INFINITE_LOOP.
diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in
index 26970e8f1df..ccdc38e7a4f 100644
--- a/gcc/java/Make-lang.in
+++ b/gcc/java/Make-lang.in
@@ -129,9 +129,6 @@ jvspec.o-warn = -Wno-error
java/parse-scan.o-warn = -Wno-error
java/parse.o-warn = -Wno-error
-# Use of non-standardized scandir
-java/jcf-io.o-warn = -Wno-error
-
jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
rm -f $@
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index f4a8efb2a1b..850e797426e 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -161,6 +161,8 @@ initialize_builtins (void)
{
tree double_ftype_double, double_ftype_double_double;
tree float_ftype_float, float_ftype_float_float;
+ /* APPLE LOCAL lno */
+ tree void_ftype;
tree t;
int i;
@@ -185,6 +187,10 @@ initialize_builtins (void)
t = tree_cons (NULL_TREE, double_type_node, t);
double_ftype_double_double = build_function_type (double_type_node, t);
+ /* APPLE LOCAL begin lno */
+ void_ftype = build_function_type (void_type_node, NULL_TREE);
+ /* APPLE LOCAL end lno */
+
define_builtin (BUILT_IN_FMOD, "__builtin_fmod",
double_ftype_double_double, "fmod");
define_builtin (BUILT_IN_FMODF, "__builtin_fmodf",
@@ -216,6 +222,10 @@ initialize_builtins (void)
double_ftype_double, "_ZN4java4lang4Math4sqrtEd");
define_builtin (BUILT_IN_TAN, "__builtin_tan",
double_ftype_double, "_ZN4java4lang4Math3tanEd");
+ /* APPLE LOCAL begin lno */
+ define_builtin (BUILT_IN_MAYBE_INFINITE_LOOP, "__builtin_maybe_infinite_loop",
+ void_ftype, "__builtin_maybe_infinite_loop");
+ /* APPLE LOCAL end lno */
build_common_builtin_nodes ();
}
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 53a31e94031..5e2e535dbc9 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -1476,14 +1476,19 @@ get_dispatch_table (tree type, tree this_class_addr)
void
set_method_index (tree decl, tree method_index)
{
- method_index = fold (convert (sizetype, method_index));
+ if (method_index != NULL_TREE)
+ {
+ /* method_index is null if we're using indirect dispatch. */
+ method_index = fold (convert (sizetype, method_index));
- if (TARGET_VTABLE_USES_DESCRIPTORS)
- /* Add one to skip bogus descriptor for class and GC descriptor. */
- method_index = size_binop (PLUS_EXPR, method_index, size_int (1));
- else
- /* Add 1 to skip "class" field of dtable, and 1 to skip GC descriptor. */
- method_index = size_binop (PLUS_EXPR, method_index, size_int (2));
+ if (TARGET_VTABLE_USES_DESCRIPTORS)
+ /* Add one to skip bogus descriptor for class and GC descriptor. */
+ method_index = size_binop (PLUS_EXPR, method_index, size_int (1));
+ else
+ /* Add 1 to skip "class" field of dtable, and 1 to skip GC
+ descriptor. */
+ method_index = size_binop (PLUS_EXPR, method_index, size_int (2));
+ }
DECL_VINDEX (decl) = method_index;
}
@@ -2357,6 +2362,7 @@ layout_class_method (tree this_class, tree super_class,
tree method_index = get_method_index (super_method);
set_method_index (method_decl, method_index);
if (method_index == NULL_TREE
+ && ! flag_indirect_dispatch
&& !CLASS_FROM_SOURCE_P (this_class)
&& ! DECL_ARTIFICIAL (super_method))
error ("%Jnon-static method '%D' overrides static method",
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index b7aa61650d3..9ecd223b6b3 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -149,7 +149,10 @@ update_aliases (tree decl, int index, int pc)
&& LOCAL_SLOT_P (tmp) == 0
&& (pc == -1
|| (pc >= DECL_LOCAL_START_PC (tmp)
- && pc <= DECL_LOCAL_END_PC (tmp)))
+ && pc < DECL_LOCAL_END_PC (tmp)))
+ /* This test is < (rather than <=) because there's no point
+ updating an alias that's about to die at the end of this
+ instruction. */
&& (tmp_type == decl_type
|| (INTEGRAL_TYPE_P (tmp_type)
&& INTEGRAL_TYPE_P (decl_type)
@@ -663,6 +666,8 @@ java_init_decl_processing (void)
/* Define these next since types below may used them. */
integer_type_node = java_type_for_size (INT_TYPE_SIZE, 0);
+ /* APPLE LOCAL lno */
+ long_integer_type_node = java_type_for_size (LONG_TYPE_SIZE, 0);
integer_zero_node = build_int_cst (NULL_TREE, 0);
integer_one_node = build_int_cst (NULL_TREE, 1);
integer_two_node = build_int_cst (NULL_TREE, 2);
@@ -989,8 +994,7 @@ java_init_decl_processing (void)
endlink = end_params_node = tree_cons (NULL_TREE, void_type_node, NULL_TREE);
- t = tree_cons (NULL_TREE, class_ptr_type,
- tree_cons (NULL_TREE, int_type_node, endlink));
+ t = tree_cons (NULL_TREE, class_ptr_type, endlink);
alloc_object_node = builtin_function ("_Jv_AllocObject",
build_function_type (ptr_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
@@ -1008,31 +1012,33 @@ java_init_decl_processing (void)
0, NOT_BUILT_IN, NULL, NULL_TREE);
throw_node = builtin_function ("_Jv_Throw",
- build_function_type (ptr_type_node, t),
+ build_function_type (void_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
/* Mark throw_nodes as `noreturn' functions with side effects. */
TREE_THIS_VOLATILE (throw_node) = 1;
TREE_SIDE_EFFECTS (throw_node) = 1;
- t = build_function_type (int_type_node, endlink);
+ t = build_function_type (void_type_node, tree_cons (NULL_TREE, ptr_type_node,
+ endlink));
soft_monitorenter_node
= builtin_function ("_Jv_MonitorEnter", t, 0, NOT_BUILT_IN,
NULL, NULL_TREE);
soft_monitorexit_node
= builtin_function ("_Jv_MonitorExit", t, 0, NOT_BUILT_IN,
NULL, NULL_TREE);
-
- t = tree_cons (NULL_TREE, int_type_node,
+
+ t = tree_cons (NULL_TREE, ptr_type_node,
tree_cons (NULL_TREE, int_type_node, endlink));
soft_newarray_node
= builtin_function ("_Jv_NewPrimArray",
- build_function_type(ptr_type_node, t),
+ build_function_type (ptr_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
DECL_IS_MALLOC (soft_newarray_node) = 1;
t = tree_cons (NULL_TREE, int_type_node,
tree_cons (NULL_TREE, class_ptr_type,
- tree_cons (NULL_TREE, object_ptr_type_node, endlink)));
+ tree_cons (NULL_TREE, object_ptr_type_node,
+ endlink)));
soft_anewarray_node
= builtin_function ("_Jv_NewObjectArray",
build_function_type (ptr_type_node, t),
@@ -1118,9 +1124,11 @@ java_init_decl_processing (void)
0, NOT_BUILT_IN, NULL, NULL_TREE);
soft_jnipopsystemframe_node
= builtin_function ("_Jv_JNI_PopSystemFrame",
- build_function_type (ptr_type_node, t),
+ build_function_type (void_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
+ t = tree_cons (NULL_TREE, int_type_node,
+ tree_cons (NULL_TREE, int_type_node, endlink));
soft_idiv_node
= builtin_function ("_Jv_divI",
build_function_type (int_type_node, t),
@@ -1131,6 +1139,8 @@ java_init_decl_processing (void)
build_function_type (int_type_node, t),
0, NOT_BUILT_IN, NULL, NULL_TREE);
+ t = tree_cons (NULL_TREE, long_type_node,
+ tree_cons (NULL_TREE, long_type_node, endlink));
soft_ldiv_node
= builtin_function ("_Jv_divJ",
build_function_type (long_type_node, t),
@@ -1741,6 +1751,12 @@ maybe_poplevels (int pc)
current_pc = pc;
#endif
+ /* FIXME: I'm pretty sure that this is wrong. Variable scopes are
+ inclusive, so a variable is live if pc == end_pc. Here, we
+ terminate a range if the current pc is equal to the end of the
+ range, and this is *before* we have generated code for the
+ instruction at end_pc. We're closing a binding level one
+ instruction too early. */
while (current_binding_level->end_pc <= pc)
poplevel (1, 0, 0);
}
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 7d515052ba0..30f67adfe5f 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -383,6 +383,10 @@ pop_type_0 (tree type, char **messagep)
fail:
{
char *temp = xstrdup (lang_printable_name (type, 0));
+ /* If the stack contains a multi-word type, keep popping the stack until
+ the real type is found. */
+ while (t == void_type_node)
+ t = stack_type_map[--stack_pointer];
*messagep = concat ("expected type '", temp,
"' but stack contains '", lang_printable_name (t, 0),
"'", NULL);
@@ -814,15 +818,6 @@ build_java_array_length_access (tree node)
tree array_type = TREE_TYPE (type);
HOST_WIDE_INT length;
- /* JVM spec: If the arrayref is null, the arraylength instruction
- throws a NullPointerException. The only way we could get a node
- of type ptr_type_node at this point is `aconst_null; arraylength'
- or something equivalent. */
- if (!flag_new_verifier && type == ptr_type_node)
- return build3 (CALL_EXPR, int_type_node,
- build_address_of (soft_nullpointer_node),
- NULL_TREE, NULL_TREE);
-
if (!is_array_type_p (type))
{
/* With the new verifier, we will see an ordinary pointer type
@@ -1225,21 +1220,11 @@ expand_java_arrayload (tree lhs_type_node)
index_node = save_expr (index_node);
array_node = save_expr (array_node);
- if (TREE_TYPE (array_node) == ptr_type_node)
- /* The only way we could get a node of type ptr_type_node at this
- point is `aconst_null; arraylength' or something equivalent, so
- unconditionally throw NullPointerException. */
- load_node = build3 (CALL_EXPR, lhs_type_node,
- build_address_of (soft_nullpointer_node),
- NULL_TREE, NULL_TREE);
- else
- {
- lhs_type_node = build_java_check_indexed_type (array_node,
- lhs_type_node);
- load_node = build_java_arrayaccess (array_node,
- lhs_type_node,
- index_node);
- }
+ lhs_type_node = build_java_check_indexed_type (array_node,
+ lhs_type_node);
+ load_node = build_java_arrayaccess (array_node,
+ lhs_type_node,
+ index_node);
if (INTEGRAL_TYPE_P (lhs_type_node) && TYPE_PRECISION (lhs_type_node) <= 32)
load_node = fold (build1 (NOP_EXPR, int_type_node, load_node));
push_value (load_node);
diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi
index 68531560ff9..6fc85271a93 100644
--- a/gcc/java/gcj.texi
+++ b/gcc/java/gcj.texi
@@ -949,16 +949,26 @@ be retrieved at runtime using the @code{java.lang.System.getProperty}
method.
@item -ms=@var{number}
-This sets the initial heap size.
+Equivalent to @code{-Xms}.
@item -mx=@var{number}
-This sets the maximum heap size.
+Equivalent to @code{-Xmx}.
@item -X
@itemx -X@var{argument}
Supplying @code{-X} by itself will cause @code{gij} to list all the
-supported @code{-X} options. Currently there are none. Unrecognized
-@code{-X} options are ignored, for compatibility with other runtimes.
+supported @code{-X} options. Currently these options are supported:
+
+@table @gcctabopt
+@item -Xms@var{size}
+Set the initial heap size.
+
+@item -Xmx@var{size}
+Set the maximum heap size.
+@end table
+
+Unrecognized @code{-X} options are ignored, for compatibility with
+other runtimes.
@item -jar
This indicates that the name passed to @code{gij} should be interpreted
@@ -971,6 +981,9 @@ Print help, then exit.
@item --showversion
Print version number and continue.
+@item --fullversion
+Print detailed version information, then exit.
+
@item --version
Print version number, then exit.
@@ -979,6 +992,12 @@ Print version number, then exit.
Each time a class is initialized, print a short message on standard error.
@end table
+@code{gij} also recognizes and ignores the following options, for
+compatibility with existing application launch scripts:
+@code{-client}, @code{-server}, @code{-hotspot}, @code{-jrockit},
+@code{-agentlib}, @code{-agentpath}, @code{-debug}, @code{-d32},
+@code{-d64}, @code{-javaagent} and @code{-noclassgc}.
+
@c man end
@node Invoking gcj-dbtool
@@ -990,8 +1009,9 @@ Each time a class is initialized, print a short message on standard error.
@c man begin SYNOPSIS gcj-dbtool
gcj-dbtool @option{OPTION} @var{DBFILE} [@option{MORE}] @dots{}
-gcj-dbtool [@option{-n}] [@option{-a}] [@option{-t}] [@option{-l}]
- [@option{-v}] [@option{--version}] [@option{--help}]
+gcj-dbtool [@option{-0}] [@option{-}] [@option{-n}] [@option{-a}] [@option{-f}]
+ [@option{-t}] [@option{-l}] [@option{-p} [@var{LIBDIR}]]
+ [@option{-v}] [@option{-m}] [@option{--version}] [@option{--help}]
@c man end
@c man begin SEEALSO gij
@@ -1027,11 +1047,26 @@ you can choose a larger initial size if desired. The default size is
32,749.
@item -a @var{DBFILE} @var{JARFILE} @var{LIB}
+@itemx -f @var{DBFILE} @var{JARFILE} @var{LIB}
This adds a jar file to the database. For each class file in the jar,
a cryptographic signature of the bytecode representation of the class
is recorded in the database. At runtime, a class is looked up by its
signature and the compiled form of the class is looked for in the
-corresponding shared library.
+corresponding shared library. The @option{-a} option will verify
+that @var{LIB} exists before adding it to the database; @option{-f}
+skips this check.
+
+@item [@option{-}][@option{-0}] -m @var{DBFILE} @var{DBFILE},[@var{DBFILE}]
+Merge a number of databases. The output database overwrites any
+existing database. To add databases into an existing database,
+include the destination in the list of sources.
+
+If @option{-} or @option{-0} are used, the list of files to read is
+taken from standard input instead of the command line. For
+@option{-0}, Input filenames are terminated by a null character
+instead of by whitespace. Useful when arguments might contain white
+space. The GNU find -print0 option produces input suitable for this
+mode.
@item -t @var{DBFILE}
Test a database.
@@ -1039,6 +1074,12 @@ Test a database.
@item -l @var{DBFILE}
List the contents of a database.
+@item -p
+Print the name of the default database. If there is no default
+database, this prints a blank line. If @var{LIBDIR} is specified, use
+it instead of the default library directory component of the database
+name.
+
@item --help
Print a help message, then exit.
@@ -1240,6 +1281,7 @@ alternative to the standard JNI (Java Native Interface).
* Objects and Classes:: C++ and Java classes.
* Class Initialization:: How objects are initialized.
* Object allocation:: How to create Java objects in C++.
+* Memory allocation:: How to allocate and free memory.
* Arrays:: Dealing with Java arrays in C++.
* Methods:: Java methods in C++.
* Strings:: Information about Java Strings.
@@ -1620,6 +1662,27 @@ java::util::Hashtable *ht = new java::util::Hashtable(120);
@end example
+@node Memory allocation
+@section Memory allocation
+
+When allocting memory in @acronym{CNI} methods it is best to handle
+out-of-memory conditions by throwing a Java exception. These
+functions are provided for that purpose:
+
+@deftypefun void* JvMalloc (jsize @var{size})
+Calls malloc. Throws @code{java.lang.OutOfMemoryError} if allocation
+fails.
+@end deftypefun
+
+@deftypefun void* JvRealloc (void* @var{ptr}, jsize @var{size})
+Calls realloc. Throws @code{java.lang.OutOfMemoryError} if
+reallocation fails.
+@end deftypefun
+
+@deftypefun void JvFree (void* @var{ptr})
+Calls free.
+@end deftypefun
+
@node Arrays
@section Arrays
@@ -2110,7 +2173,8 @@ CNI permits C++ applications to make calls into Java classes, in addition to
allowing Java code to call into C++. Several functions, known as the
@dfn{invocation API}, are provided to support this.
-@deftypefun jint JvCreateJavaVM (void* @var{vm_args})
+@deftypefun jint JvCreateJavaVM (JvVMInitArgs* @var{vm_args})
+
Initializes the Java runtime. This function performs essential initialization
of the threads interface, garbage collector, exception handling and other key
aspects of the runtime. It must be called once by an application with
@@ -2119,11 +2183,40 @@ It is safe, but not recommended, to call @code{JvCreateJavaVM()} more than
once provided it is only called from a single thread.
The @var{vmargs} parameter can be used to specify initialization parameters
for the Java runtime. It may be @code{NULL}.
-This function returns @code{0} upon success, or @code{-1} if the runtime is
-already initialized.
-@emph{Note:} In GCJ 3.1, the @code{vm_args} parameter is ignored. It may be
-used in a future release.
+JvVMInitArgs represents a list of virtual machine initialization
+arguments. @code{JvCreateJavaVM()} ignores the version field.
+
+@example
+typedef struct JvVMOption
+@{
+ // a VM initialization option
+ char* optionString;
+ // extra information associated with this option
+ void* extraInfo;
+@} JvVMOption;
+
+typedef struct JvVMInitArgs
+@{
+ // for compatibility with JavaVMInitArgs
+ jint version;
+
+ // number of VM initialization options
+ jint nOptions;
+
+ // an array of VM initialization options
+ JvVMOption* options;
+
+ // true if the option parser should ignore unrecognized options
+ jboolean ignoreUnrecognized;
+@} JvVMInitArgs;
+@end example
+
+@code{JvCreateJavaVM()} returns @code{0} upon success, or @code{-1} if
+the runtime is already initialized.
+
+@emph{Note:} In GCJ 3.1, the @code{vm_args} parameter is ignored. It
+is recognized and used as of release 4.0.
@end deftypefun
@deftypefun java::lang::Thread* JvAttachCurrentThread (jstring @var{name}, java::lang::ThreadGroup* @var{group})
@@ -2475,6 +2568,15 @@ search is done for each requested class. If this property is set to
tried again. If this property is set to @samp{never}, then lookups
are never done. For more information, @xref{Extensions}.
+@item gnu.gcj.runtime.endorsed.dirs
+This is like the standard @code{java.endorsed.dirs}, property, but
+specifies some extra directories which are searched after the standard
+endorsed directories. This is primarily useful for telling
+@code{libgcj} about additional libraries which are ordinarily
+incorporated into the JDK, and which should be loaded by the bootstrap
+class loader, but which are not yet part of @code{libgcj} itself for
+some reason.
+
@item gnu.gcj.jit.compiler
@c FIXME we should probably have a whole node on this...
This is the full path to @command{gcj} executable which should be
@@ -2497,7 +2599,8 @@ be set to a directory that is writable by any other user.
This is a sequence of file names, each referring to a file created by
@command{gcj-dbtool}. These files will be used by @code{libgcj} to
find shared libraries corresponding to classes that are loaded from
-bytecode.
+bytecode. @code{libgcj} often has a built-in default database; it
+can be queried using @code{gcj-dbtool -p}.
@end table
diff --git a/gcc/java/jcf-io.c b/gcc/java/jcf-io.c
index e0ab03e14cf..6588ef24441 100644
--- a/gcc/java/jcf-io.c
+++ b/gcc/java/jcf-io.c
@@ -376,11 +376,11 @@ caching_stat (char *filename, struct stat *buf)
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 cast
- to (void *) so that either way it is quietly accepted.
- FIXME: scandir is not in POSIX. */
- dent->num_files = scandir (filename, &dent->files,
- (void *) java_or_class_file,
- alphasort);
+ to (void *) and use __extension__ so that either way it is
+ quietly accepted. FIXME: scandir is not in POSIX. */
+ dent->num_files = __extension__ scandir (filename, &dent->files,
+ (void *) java_or_class_file,
+ alphasort);
*slot = dent;
}
else
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index b89bdf9b6d8..24c3d0b95ad 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -752,6 +752,56 @@ java_tree_inlining_walk_subtrees (tree *tp ATTRIBUTE_UNUSED,
#undef WALK_SUBTREE
}
+/* APPLE LOCAL begin AltiVec */
+/* Placeholders to make linking work, remove when altivec support is correct */
+
+int comptypes (tree type1, tree type2);
+
+int
+comptypes (tree type1, tree type2)
+{
+ register tree t1 = type1;
+ register tree t2 = type2;
+ if (t1 == t2 || !t1 || !t2
+ || TREE_CODE (t1) == ERROR_MARK || TREE_CODE (t2) == ERROR_MARK)
+ return 1;
+ return 0;
+}
+
+tree default_conversion (tree exp);
+
+tree
+default_conversion (tree exp)
+{
+ return exp;
+}
+
+tree lang_build_type_variant (tree type, int constp ATTRIBUTE_UNUSED, int volatilep ATTRIBUTE_UNUSED);
+
+tree
+lang_build_type_variant (tree type, int constp ATTRIBUTE_UNUSED, int volatilep ATTRIBUTE_UNUSED)
+{
+ return type;
+}
+/* APPLE LOCAL end AltiVec */
+
+/* APPLE LOCAL begin constant cfstrings */
+enum { blabla } c_language;
+const char *constant_string_class_name = "die die";
+int flag_next_runtime = 1;
+/* APPLE LOCAL end constant cfstrings */
+
+/* APPLE LOCAL disable_typechecking_for_spec_flag */
+int disable_typechecking_for_spec_flag = 0;
+
+/* APPLE LOCAL begin CW asm blocks */
+/* Dummies needed because we use them from cpplib, yuck. */
+int flag_cw_asm_blocks;
+int cw_asm_state;
+int cw_asm_in_operands;
+/* APPLE LOCAL end CW asm blocks */
+
+
/* Every call to a static constructor has an associated boolean
variable which is in the outermost scope of the calling method.
This variable is used to avoid multiple calls to the static
diff --git a/gcc/java/verify-glue.c b/gcc/java/verify-glue.c
index b2cd9156cd0..b1664ba991a 100644
--- a/gcc/java/verify-glue.c
+++ b/gcc/java/verify-glue.c
@@ -1,5 +1,5 @@
/* Glue to interface gcj with bytecode verifier.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -231,17 +231,18 @@ vfy_get_class_name (vfy_jclass klass)
bool
vfy_is_assignable_from (vfy_jclass target, vfy_jclass source)
{
- /* At compile time, for the BC-ABI we assume that reference types are always
- compatible. However, a type assertion table entry is emitted so that the
- runtime can detect binary-incompatible changes. */
-
- /* FIXME: implement real test for old ABI. */
-
/* Any class is always assignable to itself, or java.lang.Object. */
if (source == target || target == object_type_node)
return true;
- /* Otherwise, a type assertion is required. */
+ /* For the C++ ABI, perform this test statically. */
+ if (! flag_indirect_dispatch)
+ return can_widen_reference_to (source, target);
+
+ /* For the BC-ABI, we assume at compile time that reference types are always
+ compatible. However, a type assertion table entry is emitted so that the
+ runtime can detect binary-incompatible changes. */
+
add_type_assertion (current_class, JV_ASSERT_TYPES_COMPATIBLE, source,
target);
return true;
@@ -257,28 +258,6 @@ vfy_get_primitive_char (vfy_jclass klass)
return (IDENTIFIER_POINTER (sig))[0];
}
-int
-vfy_get_interface_count (vfy_jclass klass ATTRIBUTE_UNUSED)
-{
- /* FIXME: Need to merge from mainline to get this. */
- #if 0
- return BINFO_N_BASE_BINFOS (klass);
- #endif
- return -1;
-}
-
-vfy_jclass
-vfy_get_interface (vfy_jclass klass ATTRIBUTE_UNUSED, int index ATTRIBUTE_UNUSED)
-{
- /* FIXME: Need to merge from mainline to get this. */
- #if 0
- vfy_jclass k;
- k = BINFO_BASE_BINFO (klass, index);
- return k;
- #endif
- return NULL;
-}
-
bool
vfy_is_array (vfy_jclass klass)
{
@@ -385,6 +364,21 @@ vfy_null_type (void)
return TYPE_NULL;
}
+bool
+vfy_class_has_field (vfy_jclass klass, vfy_string name,
+ vfy_string signature)
+{
+ tree field = TYPE_FIELDS (klass);
+ while (field != NULL_TREE)
+ {
+ if (DECL_NAME (field) == name
+ && build_java_signature (TREE_TYPE (field)) == signature)
+ return true;
+ field = TREE_CHAIN (field);
+ }
+ return false;
+}
+
int
vfy_fail (const char *message, int pc, vfy_jclass ignore1 ATTRIBUTE_UNUSED,
vfy_method *ignore2 ATTRIBUTE_UNUSED)
diff --git a/gcc/java/verify-impl.c b/gcc/java/verify-impl.c
index ee8f426e5a3..30d12209449 100644
--- a/gcc/java/verify-impl.c
+++ b/gcc/java/verify-impl.c
@@ -42,22 +42,6 @@ debug_print (const char *fmt ATTRIBUTE_UNUSED, ...)
}
#endif /* VERIFY_DEBUG */
-#if 0
-static void debug_print (const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-
-static void
-debug_print (const char *fmt, ...)
-{
-#ifdef VERIFY_DEBUG
- va_list ap;
- va_start (ap, fmt);
- vfprintf (stderr, fmt, ap);
- va_end (ap);
-#endif /* VERIFY_DEBUG */
-}
-#endif
-
/* This started as a fairly ordinary verifier, and for the most part
it remains so. It works in the obvious way, by modeling the effect
of each opcode as it is encountered. For most opcodes, this is a
@@ -224,22 +208,6 @@ static GTY(()) verifier_context *vfr;
bool type_initialized (type *t);
int ref_count_dimensions (ref_intersection *ref);
-#if 0
- /* Create a new Utf-8 constant and return it. We do this to avoid
- having our Utf-8 constants prematurely collected. */
- static vfy_string
- make_utf8_const (const char *s, int len)
- {
- vfy_string val = vfy_make_string (s, len);
- vfy_string_list *lu = vfy_alloc (sizeof (vfy_string_list));
- lu->val = val;
- lu->next = vfr->utf8_list;
- vfr->utf8_list = lu;
-
- return val;
- }
-#endif
-
static void
verify_fail_pc (const char *s, int pc)
{
@@ -249,7 +217,7 @@ verify_fail_pc (const char *s, int pc)
static void
verify_fail (const char *s)
{
- verify_fail_pc (s, -1);
+ verify_fail_pc (s, vfr->PC);
}
/* This enum holds a list of tags for all the different types we
@@ -539,29 +507,21 @@ struct type
First, when constructing a new object, it is the PC of the
`new' instruction which created the object. We use the special
- value UNINIT to mean that this is uninitialized, and the
- special value SELF for the case where the current method is
- itself the <init> method.
-
+ value UNINIT to mean that this is uninitialized. The special
+ value SELF is used for the case where the current method is
+ itself the <init> method. the special value EITHER is used
+ when we may optionally allow either an uninitialized or
+ initialized reference to match.
+
Second, when the key is return_address_type, this holds the PC
of the instruction following the `jsr'. */
int pc;
- #define UNINIT -2
- #define SELF -1
+#define UNINIT -2
+#define SELF -1
+#define EITHER -3
};
-#if 0
-/* Basic constructor. */
-static void
-init_type (type *t)
-{
- t->key = unsuitable_type;
- t->klass = NULL;
- t->pc = UNINIT;
-}
-#endif
-
/* Make a new instance given the type tag. We assume a generic
`reference_type' means Object. */
static void
@@ -623,26 +583,6 @@ make_type_from_string (vfy_string n)
return t;
}
-#if 0
- /* Make a new instance given the name of a class. */
- type (vfy_string n)
- {
- key = reference_type;
- klass = new ref_intersection (n, verifier);
- pc = UNINIT;
- }
-
- /* Copy constructor. */
- static type copy_type (type *t)
- {
- type copy;
- copy.key = t->key;
- copy.klass = t->klass;
- copy.pc = t->pc;
- return copy;
- }
-#endif
-
/* Promote a numeric type. */
static void
vfy_promote_type (type *t)
@@ -721,23 +661,52 @@ types_compatible (type *t, type *k)
if (k->klass == NULL)
verify_fail ("programmer error in type::compatible");
- /* An initialized type and an uninitialized type are not
- compatible. */
- if (type_initialized (t) != type_initialized (k))
- return false;
-
- /* Two uninitialized objects are compatible if either:
- * The PCs are identical, or
- * One PC is UNINIT. */
- if (type_initialized (t))
+ /* Handle the special 'EITHER' case, which is only used in a
+ special case of 'putfield'. Note that we only need to handle
+ this on the LHS of a check. */
+ if (! type_initialized (t) && t->pc == EITHER)
{
- if (t->pc != k->pc && t->pc != UNINIT && k->pc != UNINIT)
+ /* If the RHS is uninitialized, it must be an uninitialized
+ 'this'. */
+ if (! type_initialized (k) && k->pc != SELF)
return false;
}
+ else if (type_initialized (t) != type_initialized (k))
+ {
+ /* An initialized type and an uninitialized type are not
+ otherwise compatible. */
+ return false;
+ }
+ else
+ {
+ /* Two uninitialized objects are compatible if either:
+ * The PCs are identical, or
+ * One PC is UNINIT. */
+ if (type_initialized (t))
+ {
+ if (t->pc != k->pc && t->pc != UNINIT && k->pc != UNINIT)
+ return false;
+ }
+ }
return ref_compatible (t->klass, k->klass);
}
+/* Return true if two types are equal. Only valid for reference
+ types. */
+static bool
+types_equal (type *t1, type *t2)
+{
+ if ((t1->key != reference_type && t1->key != uninitialized_reference_type)
+ || (t2->key != reference_type
+ && t2->key != uninitialized_reference_type))
+ return false;
+ /* Only single-ref types are allowed. */
+ if (t1->klass->ref_next || t2->klass->ref_next)
+ return false;
+ return refs_equal (t1->klass, t2->klass);
+}
+
static bool
type_isvoid (type *t)
{
@@ -842,16 +811,6 @@ type_initialized (type *t)
return t->key == reference_type || t->key == null_type;
}
-#if 0
-static bool
-type_isresolved (type *t)
-{
- return (t->key == reference_type
- || t->key == null_type
- || t->key == uninitialized_reference_type);
-}
-#endif
-
static void
type_verify_dimensions (type *t, int ndims)
{
@@ -986,16 +945,6 @@ struct state
acquired from the verification list. */
#define NO_NEXT -1
-#if 0
-static void
-init_state (state *s)
-{
- s->stack = NULL;
- s->locals = NULL;
- s->next = INVALID_STATE;
-}
-#endif
-
static void
init_state_with_stack (state *s, int max_stack, int max_locals)
{
@@ -1052,7 +1001,6 @@ make_state (int max_stack, int max_locals)
return s;
}
-#if 0
static void
free_state (state *s)
{
@@ -1061,29 +1009,6 @@ free_state (state *s)
if (s->locals != NULL)
vfy_free (s->locals);
}
-#endif
-
-#if 0
- void *operator new[] (size_t bytes)
- {
- return vfy_alloc (bytes);
- }
-
- void operator delete[] (void *mem)
- {
- vfy_free (mem);
- }
-
- void *operator new (size_t bytes)
- {
- return vfy_alloc (bytes);
- }
-
- void operator delete (void *mem)
- {
- vfy_free (mem);
- }
-#endif
/* Modify this state to reflect entry to an exception handler. */
static void
@@ -1097,20 +1022,6 @@ state_set_exception (state *s, type *t, int max_stack)
init_type_from_tag (&s->stack[i], unsuitable_type);
}
-static int
-state_get_pc (state *s)
-{
- return s->pc;
-}
-
-#if 0
-static void
-set_pc (state *s, int npc)
-{
- s->pc = npc;
-}
-#endif
-
/* 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. */
@@ -2117,9 +2028,10 @@ handle_field_or_method (int index, int expected,
return check_class_constant (class_index);
}
-/* Return field's type, compute class' type if requested. */
+/* Return field's type, compute class' type if requested. If
+ PUTFIELD is true, use the special 'putfield' semantics. */
static type
-check_field_constant (int index, type *class_type)
+check_field_constant (int index, type *class_type, bool putfield)
{
vfy_string name, field_type;
const char *typec;
@@ -2137,6 +2049,21 @@ check_field_constant (int index, type *class_type)
init_type_from_string (&t, field_type);
else
init_type_from_tag (&t, get_type_val_for_signature (typec[0]));
+
+ /* We have an obscure special case here: we can use `putfield' on a
+ field declared in this class, even if `this' has not yet been
+ initialized. */
+ if (putfield
+ && ! type_initialized (&vfr->current_state->this_type)
+ && vfr->current_state->this_type.pc == SELF
+ && types_equal (&vfr->current_state->this_type, &ct)
+ && vfy_class_has_field (vfr->current_class, name, field_type))
+ /* Note that we don't actually know whether we're going to match
+ against 'this' or some other object of the same type. So,
+ here we set things up so that it doesn't matter. This relies
+ on knowing what our caller is up to. */
+ type_set_uninitialized (class_type, EITHER);
+
return t;
}
@@ -2320,7 +2247,7 @@ verify_instructions_0 (void)
if (new_state == NULL)
break;
- vfr->PC = state_get_pc (new_state);
+ vfr->PC = new_state->pc;
debug_print ("== State pop from pending list\n");
/* Set up the current state. */
copy_state (vfr->current_state, new_state,
@@ -2971,15 +2898,15 @@ verify_instructions_0 (void)
invalidate_pc ();
break;
case op_getstatic:
- push_type_t (check_field_constant (get_ushort (), NULL));
+ push_type_t (check_field_constant (get_ushort (), NULL, false));
break;
case op_putstatic:
- pop_type_t (check_field_constant (get_ushort (), NULL));
+ pop_type_t (check_field_constant (get_ushort (), NULL, false));
break;
case op_getfield:
{
type klass;
- type field = check_field_constant (get_ushort (), &klass);
+ type field = check_field_constant (get_ushort (), &klass, false);
pop_type_t (klass);
push_type_t (field);
}
@@ -2987,15 +2914,8 @@ verify_instructions_0 (void)
case op_putfield:
{
type klass;
- type field = check_field_constant (get_ushort (), &klass);
+ type field = check_field_constant (get_ushort (), &klass, true);
pop_type_t (field);
-
- /* We have an obscure special case here: we can use
- `putfield' on a field declared in this class, even if
- `this' has not yet been initialized. */
- if (! type_initialized (&vfr->current_state->this_type)
- && vfr->current_state->this_type.pc == SELF)
- type_set_uninitialized (&klass, SELF);
pop_type_t (klass);
}
break;
@@ -3218,32 +3138,6 @@ verify_instructions_0 (void)
handle_jsr_insn (get_int ());
break;
-#if 0
- /* These are unused here, but we call them out explicitly
- so that -Wswitch-enum doesn't complain. */
- case op_putfield_1:
- case op_putfield_2:
- case op_putfield_4:
- case op_putfield_8:
- case op_putfield_a:
- case op_putstatic_1:
- case op_putstatic_2:
- case op_putstatic_4:
- case op_putstatic_8:
- case op_putstatic_a:
- case op_getfield_1:
- case op_getfield_2s:
- case op_getfield_2u:
- case op_getfield_4:
- case op_getfield_8:
- case op_getfield_a:
- case op_getstatic_1:
- case op_getstatic_2s:
- case op_getstatic_2u:
- case op_getstatic_4:
- case op_getstatic_8:
- case op_getstatic_a:
-#endif
default:
/* Unrecognized opcode. */
verify_fail_pc ("unrecognized instruction in verify_instructions_0",
@@ -3334,17 +3228,6 @@ verify_instructions (void)
}
}
-#if 0
-_Jv_BytecodeVerifier (_Jv_InterpMethod *m)
-{
- /* We just print the text as utf-8. This is just for debugging
- anyway. */
- debug_print ("--------------------------------\n");
- debug_print ("-- Verifying method `%s'\n", m->self->name->chars());
-
-}
-#endif
-
static void
make_verifier_context (vfy_method *m)
{
@@ -3395,6 +3278,7 @@ free_verifier_context (void)
while (iter != NULL)
{
state_list *next = iter->next;
+ free_state (iter->val);
vfy_free (iter->val);
vfy_free (iter);
iter = next;
diff --git a/gcc/java/verify.h b/gcc/java/verify.h
index 3553d357960..b23a08a9888 100644
--- a/gcc/java/verify.h
+++ b/gcc/java/verify.h
@@ -1,5 +1,5 @@
/* Declarations to interface gcj with bytecode verifier.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -126,6 +126,8 @@ void vfy_note_stack_type (vfy_method *method, int pc, int slot,
void vfy_note_local_type (vfy_method *method, int pc, int slot,
vfy_jclass type);
void vfy_note_instruction_seen (int pc);
+bool vfy_class_has_field (vfy_jclass klass, vfy_string name,
+ vfy_string signature);
#define GLOM(name, stuff) name ## stuff
#define VFY_PRIMITIVE_CLASS(name) \
diff --git a/gcc/lambda-code.c b/gcc/lambda-code.c
index 01310cca0b9..037be930a43 100644
--- a/gcc/lambda-code.c
+++ b/gcc/lambda-code.c
@@ -2314,23 +2314,23 @@ perfect_nestify (struct loops *loops,
preheaderbb = loop_split_edge_with (loop->single_exit, NULL);
headerbb = create_empty_bb (EXIT_BLOCK_PTR->prev_bb);
- /* This is done because otherwise, it will release the ssa_name too early
- when the edge gets redirected and it will get reused, causing the use of
- the phi node to get rewritten. */
-
+ /* Push the exit phi nodes that we are moving. */
for (phi = phi_nodes (olddest); phi; phi = PHI_CHAIN (phi))
{
VEC_safe_push (tree, phis, PHI_RESULT (phi));
VEC_safe_push (tree, phis, PHI_ARG_DEF (phi, 0));
- mark_for_rewrite (PHI_RESULT (phi));
}
e = redirect_edge_and_branch (EDGE_SUCC (preheaderbb, 0), headerbb);
- /* Remove the exit phis from the old basic block. */
+ /* Remove the exit phis from the old basic block. Make sure to set
+ PHI_RESULT to null so it doesn't get released. */
while (phi_nodes (olddest) != NULL)
- remove_phi_node (phi_nodes (olddest), NULL, olddest);
+ {
+ SET_PHI_RESULT (phi_nodes (olddest), NULL);
+ remove_phi_node (phi_nodes (olddest), NULL, olddest);
+ }
- /* and add them to the new basic block. */
+ /* and add them back to the new basic block. */
while (VEC_length (tree, phis) != 0)
{
tree def;
@@ -2341,7 +2341,6 @@ perfect_nestify (struct loops *loops,
add_phi_arg (phi, def, EDGE_PRED (preheaderbb, 0));
}
flush_pending_stmts (e);
- unmark_all_for_rewrite ();
bodybb = create_empty_bb (EXIT_BLOCK_PTR->prev_bb);
latchbb = create_empty_bb (EXIT_BLOCK_PTR->prev_bb);
diff --git a/gcc/lambda.h b/gcc/lambda.h
index 98fe6bd1ca6..b7d5dfc0b00 100644
--- a/gcc/lambda.h
+++ b/gcc/lambda.h
@@ -23,6 +23,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define LAMBDA_H
#include "vec.h"
+/* APPLE LOCAL lno */
+#include "ggc.h"
/* An integer vector. A vector formally consists of an element of a vector
space. A vector space is a set that is closed under vector addition
diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h
index 59083ad7b56..4484f866d88 100644
--- a/gcc/langhooks-def.h
+++ b/gcc/langhooks-def.h
@@ -52,6 +52,8 @@ extern tree lhd_do_nothing_iii_return_null_tree (int, int, int);
extern int lhd_safe_from_p (rtx, tree);
extern tree lhd_staticp (tree);
extern void lhd_print_tree_nothing (FILE *, tree, int);
+/* APPLE LOCAL kext identify vtables */
+extern int lhd_vtable_p (tree);
extern const char *lhd_decl_printable_name (tree, int);
extern int lhd_types_compatible_p (tree, tree);
extern rtx lhd_expand_expr (tree, rtx, enum machine_mode, int, rtx *);
@@ -68,6 +70,7 @@ extern bool lhd_decl_ok_for_sibcall (tree);
extern const char *lhd_comdat_group (tree);
extern tree lhd_expr_size (tree);
extern size_t lhd_tree_size (enum tree_code);
+extern HOST_WIDE_INT lhd_to_target_charset (HOST_WIDE_INT);
/* Declarations of default tree inlining hooks. */
extern tree lhd_tree_inlining_walk_subtrees (tree *, int *, walk_tree_fn,
@@ -82,7 +85,12 @@ extern void lhd_tree_inlining_end_inlining (tree);
extern tree lhd_tree_inlining_convert_parm_for_inlining (tree, tree, tree, int);
extern void lhd_initialize_diagnostics (struct diagnostic_context *);
extern tree lhd_callgraph_analyze_expr (tree *, int *, tree);
-
+/* APPLE LOCAL begin 4133801 */
+extern void lhd_start_source_file (int, const char *);
+extern void lhd_end_source_file (int, const char *);
+#define LANG_HOOKS_START_SOURCE_FILE lhd_start_source_file
+#define LANG_HOOKS_END_SOURCE_FILE lhd_end_source_file
+/* APPLE LOCAL end 4133801 */
/* Declarations for tree gimplification hooks. */
extern int lhd_gimplify_expr (tree *, tree *, tree *);
@@ -91,6 +99,8 @@ extern int lhd_gimplify_expr (tree *, tree *, tree *);
#define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
#define LANG_HOOKS_INIT hook_bool_void_false
#define LANG_HOOKS_FINISH lhd_do_nothing
+/* APPLE LOCAL mainline */
+#define LANG_HOOKS_FINISH_FILE lhd_do_nothing
#define LANG_HOOKS_PARSE_FILE lhd_do_nothing_i
#define LANG_HOOKS_CLEAR_BINDING_STACK lhd_do_nothing
#define LANG_HOOKS_INIT_OPTIONS hook_uint_uint_constcharptrptr_0
@@ -115,6 +125,8 @@ extern int lhd_gimplify_expr (tree *, tree *, tree *);
#define LANG_HOOKS_PRINT_DECL lhd_print_tree_nothing
#define LANG_HOOKS_PRINT_TYPE lhd_print_tree_nothing
#define LANG_HOOKS_PRINT_IDENTIFIER lhd_print_tree_nothing
+/* APPLE LOCAL kext identify vtables */
+#define LANG_HOOKS_VTABLE_P lhd_vtable_p
#define LANG_HOOKS_PRINT_ERROR_FUNCTION lhd_print_error_function
#define LANG_HOOKS_DECL_PRINTABLE_NAME lhd_decl_printable_name
#define LANG_HOOKS_GET_CALLEE_FNDECL lhd_return_null_tree
@@ -122,6 +134,7 @@ extern int lhd_gimplify_expr (tree *, tree *, tree *);
#define LANG_HOOKS_TREE_SIZE lhd_tree_size
#define LANG_HOOKS_TYPES_COMPATIBLE_P lhd_types_compatible_p
#define LANG_HOOKS_BUILTIN_FUNCTION builtin_function
+#define LANG_HOOKS_TO_TARGET_CHARSET lhd_to_target_charset
#define LANG_HOOKS_FUNCTION_INIT lhd_do_nothing_f
#define LANG_HOOKS_FUNCTION_FINAL lhd_do_nothing_f
@@ -259,6 +272,8 @@ extern tree lhd_make_node (enum tree_code);
LANG_HOOKS_POST_OPTIONS, \
LANG_HOOKS_INIT, \
LANG_HOOKS_FINISH, \
+ /* APPLE LOCAL mainline */ \
+ LANG_HOOKS_FINISH_FILE, \
LANG_HOOKS_PARSE_FILE, \
LANG_HOOKS_CLEAR_BINDING_STACK, \
LANG_HOOKS_GET_ALIAS_SET, \
@@ -285,9 +300,12 @@ extern tree lhd_make_node (enum tree_code);
LANG_HOOKS_GET_CALLEE_FNDECL, \
LANG_HOOKS_PRINT_ERROR_FUNCTION, \
LANG_HOOKS_EXPR_SIZE, \
+ LANG_HOOKS_TO_TARGET_CHARSET, \
LANG_HOOKS_ATTRIBUTE_TABLE, \
LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, \
LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, \
+/* APPLE LOCAL kext identify vtables */ \
+ LANG_HOOKS_VTABLE_P, \
LANG_HOOKS_FUNCTION_INITIALIZER, \
LANG_HOOKS_TREE_INLINING_INITIALIZER, \
LANG_HOOKS_CALLGRAPH_INITIALIZER, \
@@ -297,6 +315,10 @@ extern tree lhd_make_node (enum tree_code);
LANG_HOOKS_GIMPLIFY_EXPR, \
LANG_HOOKS_FOLD_OBJ_TYPE_REF, \
LANG_HOOKS_BUILTIN_FUNCTION, \
+/* APPLE LOCAL begin 4133801 */ \
+ LANG_HOOKS_START_SOURCE_FILE, \
+ LANG_HOOKS_END_SOURCE_FILE, \
+/* APPLE LOCAL end 4133801 */ \
}
#endif /* GCC_LANG_HOOKS_DEF_H */
diff --git a/gcc/langhooks.c b/gcc/langhooks.c
index 0cf31be7806..b8791e52b3a 100644
--- a/gcc/langhooks.c
+++ b/gcc/langhooks.c
@@ -1,5 +1,5 @@
/* Default language-specific hooks.
- Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Alexandre Oliva <aoliva@redhat.com>
This file is part of GCC.
@@ -34,6 +34,8 @@ Boston, MA 02111-1307, USA. */
#include "flags.h"
#include "langhooks.h"
#include "langhooks-def.h"
+/* APPLE LOCAL 4133801 */
+#include "debug.h"
#include "ggc.h"
#include "diagnostic.h"
@@ -366,6 +368,14 @@ lhd_tree_inlining_anon_aggr_type_p (tree t ATTRIBUTE_UNUSED)
return 0;
}
+/* APPLE LOCAL begin kext identify vtables */
+int
+lhd_vtable_p (tree t ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+/* APPLE LOCAL end kext identify vtables */
+
/* lang_hooks.tree_inlining.start_inlining and end_inlining perform any
language-specific bookkeeping necessary for processing
FN. start_inlining returns nonzero if inlining should proceed, zero if
@@ -546,3 +556,23 @@ lhd_make_node (enum tree_code code)
{
return make_node (code);
}
+
+HOST_WIDE_INT
+lhd_to_target_charset (HOST_WIDE_INT c)
+{
+ return c;
+}
+
+/* APPLE LOCAL begin 4133801 */
+void
+lhd_start_source_file (int n, const char *s)
+{
+ (*debug_hooks->start_source_file) (n, s);
+}
+
+void
+lhd_end_source_file (int n, const char *s ATTRIBUTE_UNUSED)
+{
+ (*debug_hooks->end_source_file) (n);
+}
+/* APPLE LOCAL end 4133801 */
diff --git a/gcc/langhooks.h b/gcc/langhooks.h
index f57f14821ec..c9dc5e51d24 100644
--- a/gcc/langhooks.h
+++ b/gcc/langhooks.h
@@ -1,5 +1,5 @@
/* The lang_hooks data structure.
- Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -253,6 +253,11 @@ struct lang_hooks
/* Called at the end of compilation, as a finalizer. */
void (*finish) (void);
+ /* APPLE LOCAL begin mainline */
+ /* Called at the end of the translation unit. */
+ void (*finish_file) PARAMS ((void));
+ /* APPLE LOCAL end mainline */
+
/* Parses the entire file. The argument is nonzero to cause bison
parsers to dump debugging information during parsing. */
void (*parse_file) (int);
@@ -374,6 +379,15 @@ struct lang_hooks
semantics in cases that it doesn't want to handle specially. */
tree (*expr_size) (tree);
+ /* Convert a character from the host's to the target's character
+ set. The character should be in what C calls the "basic source
+ character set" (roughly, the set of characters defined by plain
+ old ASCII). The default is to return the character unchanged,
+ which is correct in most circumstances. Note that both argument
+ and result should be sign-extended under -fsigned-char,
+ zero-extended under -fno-signed-char. */
+ HOST_WIDE_INT (*to_target_charset) (HOST_WIDE_INT);
+
/* Pointers to machine-independent attribute tables, for front ends
using attribs.c. If one is NULL, it is ignored. Respectively, a
table of attributes specific to the language, a table of
@@ -383,6 +397,10 @@ struct lang_hooks
const struct attribute_spec *common_attribute_table;
const struct attribute_spec *format_attribute_table;
+ /* APPLE LOCAL begin kext identify vtables */
+ int (*vtable_p) (tree);
+ /* APPLE LOCAL end kext identify vtables */
+
/* Function-related language hooks. */
struct lang_hooks_for_functions function;
@@ -416,6 +434,11 @@ struct lang_hooks
enum built_in_class bt_class,
const char *library_name, tree attrs);
+ /* APPLE LOCAL begin 4133801 */
+ void (*start_source_file) (int n, const char *s);
+ void (*end_source_file) (int n, const char *s);
+ /* APPLE LOCAL end 4133801 */
+
/* Whenever you add entries here, make sure you adjust langhooks-def.h
and langhooks.c accordingly. */
};
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 56a9bc4e87a..f4abeea8714 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -47,6 +47,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#undef abort
#endif
+/* APPLE LOCAL begin libcc_kext */
+#ifdef LIBCC_KEXT
+/* Make aborts into panics (kernel panics presumably) */
+#define abort() panic()
+extern void panic (void);
+#endif
+/* APPLE LOCAL end libcc_kext */
+
#ifdef HAVE_GAS_HIDDEN
#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
#else
@@ -148,13 +156,12 @@ __subvDI3 (DWtype a, DWtype b)
#endif
#ifdef L_mulvsi3
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
Wtype
__mulvSI3 (Wtype a, Wtype b)
{
const DWtype w = (DWtype) a * (DWtype) b;
- if ((Wtype) (w >> WORD_SIZE) != (Wtype) w >> (WORD_SIZE - 1))
+ if ((Wtype) (w >> W_TYPE_SIZE) != (Wtype) w >> (W_TYPE_SIZE - 1))
abort ();
return w;
@@ -273,7 +280,6 @@ __absvDI2 (DWtype a)
#endif
#ifdef L_mulvdi3
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
DWtype
__mulvDI3 (DWtype u, DWtype v)
{
@@ -282,10 +288,10 @@ __mulvDI3 (DWtype u, DWtype v)
const DWunion uu = {.ll = u};
const DWunion vv = {.ll = v};
- if (__builtin_expect (uu.s.high == uu.s.low >> (WORD_SIZE - 1), 1))
+ if (__builtin_expect (uu.s.high == uu.s.low >> (W_TYPE_SIZE - 1), 1))
{
/* u fits in a single Wtype. */
- if (__builtin_expect (vv.s.high == vv.s.low >> (WORD_SIZE - 1), 1))
+ if (__builtin_expect (vv.s.high == vv.s.low >> (W_TYPE_SIZE - 1), 1))
{
/* v fits in a single Wtype as well. */
/* A single multiplication. No overflow risk. */
@@ -304,7 +310,7 @@ __mulvDI3 (DWtype u, DWtype v)
if (uu.s.low < 0)
w1.ll -= vv.ll;
w1.ll += (UWtype) w0.s.high;
- if (__builtin_expect (w1.s.high == w1.s.low >> (WORD_SIZE - 1), 1))
+ if (__builtin_expect (w1.s.high == w1.s.low >> (W_TYPE_SIZE - 1), 1))
{
w0.s.high = w1.s.low;
return w0.ll;
@@ -313,7 +319,7 @@ __mulvDI3 (DWtype u, DWtype v)
}
else
{
- if (__builtin_expect (vv.s.high == vv.s.low >> (WORD_SIZE - 1), 1))
+ if (__builtin_expect (vv.s.high == vv.s.low >> (W_TYPE_SIZE - 1), 1))
{
/* v fits into a single Wtype. */
/* Two multiplications. */
@@ -327,7 +333,7 @@ __mulvDI3 (DWtype u, DWtype v)
if (vv.s.low < 0)
w1.ll -= uu.ll;
w1.ll += (UWtype) w0.s.high;
- if (__builtin_expect (w1.s.high == w1.s.low >> (WORD_SIZE - 1), 1))
+ if (__builtin_expect (w1.s.high == w1.s.low >> (W_TYPE_SIZE - 1), 1))
{
w0.s.high = w1.s.low;
return w0.ll;
@@ -1157,10 +1163,7 @@ __ucmpdi2 (DWtype a, DWtype b)
}
#endif
-#if defined(L_fixunstfdi) && (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128)
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_fixunstfdi) && LIBGCC2_HAS_TF_MODE
DWtype
__fixunstfDI (TFtype a)
{
@@ -1168,11 +1171,11 @@ __fixunstfDI (TFtype a)
return 0;
/* Compute high word of result, as a flonum. */
- const TFtype b = (a / HIGH_WORD_COEFF);
+ const TFtype b = (a / Wtype_MAXp1_F);
/* Convert that to fixed (but not to DWtype!),
and shift it into the high word. */
UDWtype v = (UWtype) b;
- v <<= WORD_SIZE;
+ v <<= W_TYPE_SIZE;
/* Remove high part from the TFtype, leaving the low part as flonum. */
a -= (TFtype)v;
/* Convert that to fixed (but not to DWtype!) and add it in.
@@ -1186,7 +1189,7 @@ __fixunstfDI (TFtype a)
}
#endif
-#if defined(L_fixtfdi) && (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128)
+#if defined(L_fixtfdi) && LIBGCC2_HAS_TF_MODE
DWtype
__fixtfdi (TFtype a)
{
@@ -1196,10 +1199,7 @@ __fixtfdi (TFtype a)
}
#endif
-#if defined(L_fixunsxfdi) && (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80)
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_fixunsxfdi) && LIBGCC2_HAS_XF_MODE
DWtype
__fixunsxfDI (XFtype a)
{
@@ -1207,11 +1207,11 @@ __fixunsxfDI (XFtype a)
return 0;
/* Compute high word of result, as a flonum. */
- const XFtype b = (a / HIGH_WORD_COEFF);
+ const XFtype b = (a / Wtype_MAXp1_F);
/* Convert that to fixed (but not to DWtype!),
and shift it into the high word. */
UDWtype v = (UWtype) b;
- v <<= WORD_SIZE;
+ v <<= W_TYPE_SIZE;
/* Remove high part from the XFtype, leaving the low part as flonum. */
a -= (XFtype)v;
/* Convert that to fixed (but not to DWtype!) and add it in.
@@ -1225,7 +1225,7 @@ __fixunsxfDI (XFtype a)
}
#endif
-#if defined(L_fixxfdi) && (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80)
+#if defined(L_fixxfdi) && LIBGCC2_HAS_XF_MODE
DWtype
__fixxfdi (XFtype a)
{
@@ -1235,29 +1235,26 @@ __fixxfdi (XFtype a)
}
#endif
-#ifdef L_fixunsdfdi
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_fixunsdfdi) && LIBGCC2_HAS_DF_MODE
DWtype
__fixunsdfDI (DFtype a)
{
/* Get high part of result. The division here will just moves the radix
point and will not cause any rounding. Then the conversion to integral
type chops result as desired. */
- const UWtype hi = a / HIGH_WORD_COEFF;
+ const UWtype hi = a / Wtype_MAXp1_F;
/* Get low part of result. Convert `hi' to floating type and scale it back,
then subtract this from the number being converted. This leaves the low
part. Convert that to integral type. */
- const UWtype lo = (a - ((DFtype) hi) * HIGH_WORD_COEFF);
+ const UWtype lo = a - (DFtype) hi * Wtype_MAXp1_F;
/* Assemble result from the two parts. */
- return ((UDWtype) hi << WORD_SIZE) | lo;
+ return ((UDWtype) hi << W_TYPE_SIZE) | lo;
}
#endif
-#ifdef L_fixdfdi
+#if defined(L_fixdfdi) && LIBGCC2_HAS_DF_MODE
DWtype
__fixdfdi (DFtype a)
{
@@ -1267,34 +1264,71 @@ __fixdfdi (DFtype a)
}
#endif
-#ifdef L_fixunssfdi
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_fixunssfdi) && LIBGCC2_HAS_SF_MODE
DWtype
-__fixunssfDI (SFtype original_a)
+__fixunssfDI (SFtype a)
{
+#if LIBGCC2_HAS_DF_MODE
/* Convert the SFtype to a DFtype, because that is surely not going
to lose any bits. Some day someone else can write a faster version
that avoids converting to DFtype, and verify it really works right. */
- const DFtype a = original_a;
+ const DFtype dfa = a;
/* Get high part of result. The division here will just moves the radix
point and will not cause any rounding. Then the conversion to integral
type chops result as desired. */
- const UWtype hi = a / HIGH_WORD_COEFF;
+ const UWtype hi = dfa / Wtype_MAXp1_F;
/* Get low part of result. Convert `hi' to floating type and scale it back,
then subtract this from the number being converted. This leaves the low
part. Convert that to integral type. */
- const UWtype lo = (a - ((DFtype) hi) * HIGH_WORD_COEFF);
+ const UWtype lo = dfa - (DFtype) hi * Wtype_MAXp1_F;
/* Assemble result from the two parts. */
- return ((UDWtype) hi << WORD_SIZE) | lo;
+ return ((UDWtype) hi << W_TYPE_SIZE) | lo;
+#elif FLT_MANT_DIG < W_TYPE_SIZE
+ if (a < 1)
+ return 0;
+ if (a < Wtype_MAXp1_F)
+ return (UWtype)a;
+ if (a < Wtype_MAXp1_F * Wtype_MAXp1_F)
+ {
+ /* Since we know that there are fewer significant bits in the SFmode
+ quantity than in a word, we know that we can convert out all the
+ significant bits in one step, and thus avoid losing bits. */
+
+ /* ??? This following loop essentially performs frexpf. If we could
+ use the real libm function, or poke at the actual bits of the fp
+ format, it would be significantly faster. */
+
+ UWtype shift = 0, counter;
+ SFtype msb;
+
+ a /= Wtype_MAXp1_F;
+ for (counter = W_TYPE_SIZE / 2; counter != 0; counter >>= 1)
+ {
+ SFtype counterf = (UWtype)1 << counter;
+ if (a >= counterf)
+ {
+ shift |= counter;
+ a /= counterf;
+ }
+ }
+
+ /* Rescale into the range of one word, extract the bits of that
+ one word, and shift the result into position. */
+ a *= Wtype_MAXp1_F;
+ counter = a;
+ return (DWtype)counter << shift;
+ }
+ return -1;
+#else
+# error
+#endif
}
#endif
-#ifdef L_fixsfdi
+#if defined(L_fixsfdi) && LIBGCC2_HAS_SF_MODE
DWtype
__fixsfdi (SFtype a)
{
@@ -1304,79 +1338,72 @@ __fixsfdi (SFtype a)
}
#endif
-#if defined(L_floatdixf) && (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80)
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_HALFWORD_COEFF (((UDWtype) 1) << (WORD_SIZE / 2))
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_floatdixf) && LIBGCC2_HAS_XF_MODE
XFtype
__floatdixf (DWtype u)
{
- XFtype d = (Wtype) (u >> WORD_SIZE);
- d *= HIGH_HALFWORD_COEFF;
- d *= HIGH_HALFWORD_COEFF;
- d += (UWtype) (u & (HIGH_WORD_COEFF - 1));
-
+ XFtype d = (Wtype) (u >> W_TYPE_SIZE);
+ d *= Wtype_MAXp1_F;
+ d += (UWtype)u;
return d;
}
#endif
-#if defined(L_floatditf) && (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128)
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_HALFWORD_COEFF (((UDWtype) 1) << (WORD_SIZE / 2))
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_floatditf) && LIBGCC2_HAS_TF_MODE
TFtype
__floatditf (DWtype u)
{
- TFtype d = (Wtype) (u >> WORD_SIZE);
- d *= HIGH_HALFWORD_COEFF;
- d *= HIGH_HALFWORD_COEFF;
- d += (UWtype) (u & (HIGH_WORD_COEFF - 1));
-
+ TFtype d = (Wtype) (u >> W_TYPE_SIZE);
+ d *= Wtype_MAXp1_F;
+ d += (UWtype)u;
return d;
}
#endif
-#ifdef L_floatdidf
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_HALFWORD_COEFF (((UDWtype) 1) << (WORD_SIZE / 2))
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
+#if defined(L_floatdidf) && LIBGCC2_HAS_DF_MODE
DFtype
__floatdidf (DWtype u)
{
- DFtype d = (Wtype) (u >> WORD_SIZE);
- d *= HIGH_HALFWORD_COEFF;
- d *= HIGH_HALFWORD_COEFF;
- d += (UWtype) (u & (HIGH_WORD_COEFF - 1));
-
+ DFtype d = (Wtype) (u >> W_TYPE_SIZE);
+ d *= Wtype_MAXp1_F;
+ d += (UWtype)u;
return d;
}
#endif
-#ifdef L_floatdisf
-#define WORD_SIZE (sizeof (Wtype) * BITS_PER_UNIT)
-#define HIGH_HALFWORD_COEFF (((UDWtype) 1) << (WORD_SIZE / 2))
-#define HIGH_WORD_COEFF (((UDWtype) 1) << WORD_SIZE)
-
-#define DI_SIZE (sizeof (DWtype) * BITS_PER_UNIT)
-#define DF_SIZE DBL_MANT_DIG
+#if defined(L_floatdisf) && LIBGCC2_HAS_SF_MODE
+#define DI_SIZE (W_TYPE_SIZE * 2)
#define SF_SIZE FLT_MANT_DIG
SFtype
__floatdisf (DWtype u)
{
+#if SF_SIZE >= W_TYPE_SIZE
+ /* When the word size is small, we never get any rounding error. */
+ SFtype f = (Wtype) (u >> W_TYPE_SIZE);
+ f *= Wtype_MAXp1_F;
+ f += (UWtype)u;
+ return f;
+#elif LIBGCC2_HAS_DF_MODE
+
+#if LIBGCC2_DOUBLE_TYPE_SIZE == 64
+#define DF_SIZE DBL_MANT_DIG
+#elif LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 64
+#define DF_SIZE LDBL_MANT_DIG
+#else
+# error
+#endif
+
+#define REP_BIT ((UDWtype) 1 << (DI_SIZE - DF_SIZE))
+
/* Protect against double-rounding error.
- Represent any low-order bits, that might be truncated in DFmode,
- by a bit that won't be lost. The bit can go in anywhere below the
- rounding position of the SFmode. A fixed mask and bit position
- handles all usual configurations. It doesn't handle the case
- of 128-bit DImode, however. */
+ Represent any low-order bits, that might be truncated by a bit that
+ won't be lost. The bit can go in anywhere below the rounding position
+ of the SFmode. A fixed mask and bit position handles all usual
+ configurations. It doesn't handle the case of 128-bit DImode, however. */
if (DF_SIZE < DI_SIZE
&& DF_SIZE > (DI_SIZE - DF_SIZE + SF_SIZE))
{
-#define REP_BIT ((UDWtype) 1 << (DI_SIZE - DF_SIZE))
if (! (- ((DWtype) 1 << DF_SIZE) < u
&& u < ((DWtype) 1 << DF_SIZE)))
{
@@ -1387,19 +1414,52 @@ __floatdisf (DWtype u)
}
}
}
- /* Do the calculation in DFmode
- so that we don't lose any of the precision of the high word
- while multiplying it. */
- DFtype f = (Wtype) (u >> WORD_SIZE);
- f *= HIGH_HALFWORD_COEFF;
- f *= HIGH_HALFWORD_COEFF;
- f += (UWtype) (u & (HIGH_WORD_COEFF - 1));
+ /* Do the calculation in DFmode so that we don't lose any of the
+ precision of the high word while multiplying it. */
+ DFtype f = (Wtype) (u >> W_TYPE_SIZE);
+ f *= Wtype_MAXp1_F;
+ f += (UWtype)u;
return (SFtype) f;
+#else
+ /* Finally, the word size is larger than the number of bits in SFmode,
+ and we've got no DFmode. The only way to avoid double rounding is
+ to special case the extraction. */
+
+ /* If there are no high bits set, fall back to one conversion. */
+ if ((Wtype)u == u)
+ return (SFtype)(Wtype)u;
+
+ /* Otherwise, find the power of two. */
+ Wtype hi = u >> W_TYPE_SIZE;
+ if (hi < 0)
+ hi = -hi;
+
+ UWtype count, shift;
+ count_leading_zeros (count, hi);
+
+ /* No leading bits means u == minimum. */
+ if (count == 0)
+ return -(Wtype_MAXp1_F * Wtype_MAXp1_F / 2);
+
+ shift = W_TYPE_SIZE - count;
+
+ /* Shift down the most significant bits. */
+ hi = u >> shift;
+
+ /* If we lost any nonzero bits, set the lsb to ensure correct rounding. */
+ if (u & ((1 << shift) - 1))
+ hi |= 1;
+
+ /* Convert the one word of data, and rescale. */
+ SFtype f = hi;
+ f *= (UWtype)1 << shift;
+ return f;
+#endif
}
#endif
-#if defined(L_fixunsxfsi) && LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80
+#if defined(L_fixunsxfsi) && LIBGCC2_HAS_XF_MODE
/* Reenable the normal types, in case limits.h needs them. */
#undef char
#undef short
@@ -1421,7 +1481,7 @@ __fixunsxfSI (XFtype a)
}
#endif
-#ifdef L_fixunsdfsi
+#if defined(L_fixunsdfsi) && LIBGCC2_HAS_DF_MODE
/* Reenable the normal types, in case limits.h needs them. */
#undef char
#undef short
@@ -1443,7 +1503,7 @@ __fixunsdfSI (DFtype a)
}
#endif
-#ifdef L_fixunssfsi
+#if defined(L_fixunssfsi) && LIBGCC2_HAS_SF_MODE
/* Reenable the normal types, in case limits.h needs them. */
#undef char
#undef short
@@ -1468,9 +1528,10 @@ __fixunssfSI (SFtype a)
/* Integer power helper used from __builtin_powi for non-constant
exponents. */
-#if defined(L_powisf2) || defined(L_powidf2) \
- || (defined(L_powixf2) && LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80) \
- || (defined(L_powitf2) && LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128)
+#if (defined(L_powisf2) && LIBGCC2_HAS_SF_MODE) \
+ || (defined(L_powidf2) && LIBGCC2_HAS_DF_MODE) \
+ || (defined(L_powixf2) && LIBGCC2_HAS_XF_MODE) \
+ || (defined(L_powitf2) && LIBGCC2_HAS_TF_MODE)
# if defined(L_powisf2)
# define TYPE SFtype
# define NAME __powisf2
@@ -1485,10 +1546,13 @@ __fixunssfSI (SFtype a)
# define NAME __powitf2
# endif
+/* APPLE LOCAL begin mainline 2005-03-30 */
+#undef int
+#undef unsigned
TYPE
-NAME (TYPE x, Wtype m)
+NAME (TYPE x, int m)
{
- UWtype n = m < 0 ? -m : m;
+ unsigned int n = m < 0 ? -m : m;
TYPE y = n % 2 ? x : 1;
while (n >>= 1)
{
@@ -1498,15 +1562,14 @@ NAME (TYPE x, Wtype m)
}
return m < 0 ? 1/y : y;
}
+/* APPLE LOCAL end mainline 2005-03-30 */
#endif
-#if defined(L_mulsc3) || defined(L_divsc3) \
- || defined(L_muldc3) || defined(L_divdc3) \
- || (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80 \
- && (defined(L_mulxc3) || defined(L_divxc3))) \
- || (LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128 \
- && (defined(L_multc3) || defined(L_divtc3)))
+#if ((defined(L_mulsc3) || defined(L_divsc3)) && LIBGCC2_HAS_SF_MODE) \
+ || ((defined(L_muldc3) || defined(L_divdc3)) && LIBGCC2_HAS_DF_MODE) \
+ || ((defined(L_mulxc3) || defined(L_divxc3)) && LIBGCC2_HAS_XF_MODE) \
+ || ((defined(L_multc3) || defined(L_divtc3)) && LIBGCC2_HAS_TF_MODE)
#undef float
#undef double
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h
index 16578731636..9bdc40cedfe 100644
--- a/gcc/libgcc2.h
+++ b/gcc/libgcc2.h
@@ -51,10 +51,34 @@ extern short int __get_eh_table_version (struct exception_descriptor *);
#define LIBGCC2_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
#endif
+#ifndef LIBGCC2_DOUBLE_TYPE_SIZE
+#define LIBGCC2_DOUBLE_TYPE_SIZE DOUBLE_TYPE_SIZE
+#endif
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
#endif
+#ifndef LIBGCC2_HAS_SF_MODE
+#define LIBGCC2_HAS_SF_MODE (BITS_PER_UNIT == 8)
+#endif
+
+#ifndef LIBGCC2_HAS_DF_MODE
+#define LIBGCC2_HAS_DF_MODE \
+ (BITS_PER_UNIT == 8 \
+ && (LIBGCC2_DOUBLE_TYPE_SIZE == 64 \
+ || LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 64))
+#endif
+
+#ifndef LIBGCC2_HAS_XF_MODE
+#define LIBGCC2_HAS_XF_MODE \
+ (BITS_PER_UNIT == 8 && LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80)
+#endif
+
+#ifndef LIBGCC2_HAS_TF_MODE
+#define LIBGCC2_HAS_TF_MODE \
+ (BITS_PER_UNIT == 8 && LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128)
+#endif
+
#ifndef MIN_UNITS_PER_WORD
#define MIN_UNITS_PER_WORD UNITS_PER_WORD
#endif
@@ -88,45 +112,23 @@ typedef unsigned int UTItype __attribute__ ((mode (TI)));
#endif
#endif
-#if BITS_PER_UNIT == 8
-
+#if LIBGCC2_HAS_SF_MODE
typedef float SFtype __attribute__ ((mode (SF)));
-typedef float DFtype __attribute__ ((mode (DF)));
typedef _Complex float SCtype __attribute__ ((mode (SC)));
+#endif
+#if LIBGCC2_HAS_DF_MODE
+typedef float DFtype __attribute__ ((mode (DF)));
typedef _Complex float DCtype __attribute__ ((mode (DC)));
-
-#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80
+#endif
+#if LIBGCC2_HAS_XF_MODE
typedef float XFtype __attribute__ ((mode (XF)));
typedef _Complex float XCtype __attribute__ ((mode (XC)));
#endif
-#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128
+#if LIBGCC2_HAS_TF_MODE
typedef float TFtype __attribute__ ((mode (TF)));
typedef _Complex float TCtype __attribute__ ((mode (TC)));
#endif
-#else /* BITS_PER_UNIT != 8 */
-
-/* On dsp's there are usually qf/hf/tqf modes used instead of the above.
- For now we don't support them in libgcc2.c. */
-
-#undef L_fixdfdi
-#undef L_fixsfdi
-#undef L_fixtfdi
-#undef L_fixunsdfdi
-#undef L_fixunsdfsi
-#undef L_fixunssfdi
-#undef L_fixunssfsi
-#undef L_fixunstfdi
-#undef L_fixunsxfdi
-#undef L_fixunsxfsi
-#undef L_fixxfdi
-#undef L_floatdidf
-#undef L_floatdisf
-#undef L_floatditf
-#undef L_floatdixf
-
-#endif /* BITS_PER_UNIT != 8 */
-
typedef int word_type __attribute__ ((mode (__word__)));
/* Make sure that we don't accidentally use any normal C language built-in
@@ -200,6 +202,18 @@ typedef int word_type __attribute__ ((mode (__word__)));
#define Wtype_MAX ((Wtype)(((UWtype)1 << (W_TYPE_SIZE - 1)) - 1))
#define Wtype_MIN (- Wtype_MAX - 1)
+#if W_TYPE_SIZE == 8
+# define Wtype_MAXp1_F 0x1p8f
+#elif W_TYPE_SIZE == 16
+# define Wtype_MAXp1_F 0x1p16f
+#elif W_TYPE_SIZE == 32
+# define Wtype_MAXp1_F 0x1p32f
+#elif W_TYPE_SIZE == 64
+# define Wtype_MAXp1_F 0x1p64f
+#else
+# error "expand the table"
+#endif
+
#define __muldi3 __NDW(mul,3)
#define __divdi3 __NDW(div,3)
#define __udivdi3 __NDW(udiv,3)
@@ -300,42 +314,51 @@ extern SItype __mulvsi3 (SItype, SItype);
extern SItype __negvsi2 (SItype);
#endif /* COMPAT_SIMODE_TRAPPING_ARITHMETIC */
-#if BITS_PER_UNIT == 8
-extern DWtype __fixdfdi (DFtype);
+/* APPLE LOCAL mainline 2005-03-30 */
+#undef int
+#if LIBGCC2_HAS_SF_MODE
extern DWtype __fixsfdi (SFtype);
-extern DFtype __floatdidf (DWtype);
extern SFtype __floatdisf (DWtype);
-extern UWtype __fixunsdfSI (DFtype);
extern UWtype __fixunssfSI (SFtype);
-extern DWtype __fixunsdfDI (DFtype);
extern DWtype __fixunssfDI (SFtype);
-extern SFtype __powisf2 (SFtype, Wtype);
-extern DFtype __powidf2 (DFtype, Wtype);
-
+/* APPLE LOCAL mainline 2005-03-30 */
+extern SFtype __powisf2 (SFtype, int);
extern SCtype __divsc3 (SFtype, SFtype, SFtype, SFtype);
extern SCtype __mulsc3 (SFtype, SFtype, SFtype, SFtype);
+#endif
+#if LIBGCC2_HAS_DF_MODE
+extern DWtype __fixdfdi (DFtype);
+extern DFtype __floatdidf (DWtype);
+extern UWtype __fixunsdfSI (DFtype);
+extern DWtype __fixunsdfDI (DFtype);
+/* APPLE LOCAL mainline 2005-03-30 */
+extern DFtype __powidf2 (DFtype, int);
extern DCtype __divdc3 (DFtype, DFtype, DFtype, DFtype);
extern DCtype __muldc3 (DFtype, DFtype, DFtype, DFtype);
+#endif
-#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 80
+#if LIBGCC2_HAS_XF_MODE
extern DWtype __fixxfdi (XFtype);
extern DWtype __fixunsxfDI (XFtype);
extern XFtype __floatdixf (DWtype);
extern UWtype __fixunsxfSI (XFtype);
-extern XFtype __powixf2 (XFtype, Wtype);
+/* APPLE LOCAL mainline 2005-03-30 */
+extern XFtype __powixf2 (XFtype, int);
extern XCtype __divxc3 (XFtype, XFtype, XFtype, XFtype);
extern XCtype __mulxc3 (XFtype, XFtype, XFtype, XFtype);
#endif
-#if LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 128
+#if LIBGCC2_HAS_TF_MODE
extern DWtype __fixunstfDI (TFtype);
extern DWtype __fixtfdi (TFtype);
extern TFtype __floatditf (DWtype);
-extern TFtype __powitf2 (TFtype, Wtype);
+/* APPLE LOCAL mainline 2005-03-30 */
+extern TFtype __powitf2 (TFtype, int);
extern TCtype __divtc3 (TFtype, TFtype, TFtype, TFtype);
extern TCtype __multc3 (TFtype, TFtype, TFtype, TFtype);
#endif
-#endif /* BITS_PER_UNIT == 8 */
+/* APPLE LOCAL mainline 2005-03-30 */
+#define int bogus_type
/* DWstructs are pairs of Wtype values in the order determined by
LIBGCC2_WORDS_BIG_ENDIAN. */
diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c
index 965e2e3edd8..fa497d5bf52 100644
--- a/gcc/loop-doloop.c
+++ b/gcc/loop-doloop.c
@@ -160,6 +160,13 @@ doloop_valid_p (struct loop *loop, struct niter_desc *desc)
If the absolute increment is not 1, the loop can be infinite
even with LTU/GTU, e.g. for (i = 3; i > 0; i -= 2)
+ APPLE LOCAL begin lno
+ Note that with LE and GE, the loop behavior is undefined
+ (C++ standard section 5 clause 5) if an overflow occurs, say
+ between INT_MAX and INT_MAX + 1. We thus don't have to worry
+ about these two cases.
+ APPLE LOCAL end lno
+
??? We could compute these conditions at run-time and have a
additional jump around the loop to ensure an infinite loop.
However, it is very unlikely that this is the intended
@@ -451,6 +458,17 @@ doloop_optimize (struct loop *loop)
if (dump_file)
fprintf (dump_file, "Doloop: Processing loop %d.\n", loop->num);
+ /* APPLE LOCAL begin lno */
+ /* Ignore large loops. */
+ if (loop->ninsns > (unsigned) PARAM_VALUE (PARAM_MAX_DOLOOP_INSNS))
+ {
+ if (dump_file)
+ fprintf (dump_file,
+ "Doloop: The loop is too large.\n");
+ return false;
+ }
+ /* APPLE LOCAL end lno */
+
iv_analysis_loop_init (loop);
/* Find the simple exit of a LOOP. */
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index 03f8c67a6c4..92e9d3614f0 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -1,5 +1,5 @@
/* Rtl-level loop invariant motion.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -296,13 +296,13 @@ static void
find_defs (struct loop *loop, basic_block *body, struct df *df)
{
unsigned i;
- bitmap blocks = BITMAP_XMALLOC ();
+ bitmap blocks = BITMAP_ALLOC (NULL);
for (i = 0; i < loop->num_nodes; i++)
bitmap_set_bit (blocks, body[i]->index);
df_analyze_subcfg (df, blocks, DF_UD_CHAIN | DF_HARD_REGS | DF_EQUIV_NOTES);
- BITMAP_XFREE (blocks);
+ BITMAP_FREE (blocks);
}
/* Creates a new invariant for definition DEF in INSN, depending on invariants
@@ -447,10 +447,10 @@ find_invariant_insn (rtx insn, bool always_reached, bool always_executed,
return;
}
- depends_on = BITMAP_XMALLOC ();
+ depends_on = BITMAP_ALLOC (NULL);
if (!check_dependencies (insn, df, depends_on))
{
- BITMAP_XFREE (depends_on);
+ BITMAP_FREE (depends_on);
return;
}
@@ -557,10 +557,10 @@ find_invariants_body (struct loop *loop, basic_block *body,
static void
find_invariants (struct loop *loop, struct df *df)
{
- bitmap may_exit = BITMAP_XMALLOC ();
- bitmap always_reached = BITMAP_XMALLOC ();
- bitmap has_exit = BITMAP_XMALLOC ();
- bitmap always_executed = BITMAP_XMALLOC ();
+ bitmap may_exit = BITMAP_ALLOC (NULL);
+ bitmap always_reached = BITMAP_ALLOC (NULL);
+ bitmap has_exit = BITMAP_ALLOC (NULL);
+ bitmap always_executed = BITMAP_ALLOC (NULL);
basic_block *body = get_loop_body_in_dom_order (loop);
find_exits (loop, body, may_exit, has_exit);
@@ -570,10 +570,10 @@ find_invariants (struct loop *loop, struct df *df)
find_defs (loop, body, df);
find_invariants_body (loop, body, always_reached, always_executed, df);
- BITMAP_XFREE (always_reached);
- BITMAP_XFREE (always_executed);
- BITMAP_XFREE (may_exit);
- BITMAP_XFREE (has_exit);
+ BITMAP_FREE (always_reached);
+ BITMAP_FREE (always_executed);
+ BITMAP_FREE (may_exit);
+ BITMAP_FREE (has_exit);
free (body);
}
@@ -863,7 +863,7 @@ free_inv_motion_data (struct df *df)
for (i = 0; i < VARRAY_ACTIVE_SIZE (invariants); i++)
{
inv = VARRAY_GENERIC_PTR_NOGC (invariants, i);
- BITMAP_XFREE (inv->depends_on);
+ BITMAP_FREE (inv->depends_on);
free (inv);
}
VARRAY_POP_ALL (invariants);
diff --git a/gcc/loop.c b/gcc/loop.c
index 2b765c821d8..4cbdf39ff2b 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -276,7 +276,8 @@ typedef struct loop_mem_info
{
rtx mem; /* The MEM itself. */
rtx reg; /* Corresponding pseudo, if any. */
- int optimize; /* Nonzero if we can optimize access to this MEM. */
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ int optimizable; /* Nonzero if we can optimize access to this MEM. */
} loop_mem_info;
@@ -502,12 +503,25 @@ struct loop_info
#define PREFETCH_CONDITIONAL 1
#endif
+/* APPLE LOCAL begin avoid out-of-bounds refs */
+/* If the first or last uid lies outside the loop, assume the
+ lifetime extends to that end of the loop. */
#define LOOP_REG_LIFETIME(LOOP, REGNO) \
-((REGNO_LAST_LUID (REGNO) - REGNO_FIRST_LUID (REGNO)))
-
+(((REGNO_LAST_UID (REGNO) > max_uid_for_loop) \
+ ? (INSN_LUID ((LOOP)->end)) \
+ : (REGNO_LAST_LUID (REGNO))) \
+ - ((REGNO_FIRST_UID (REGNO) > max_uid_for_loop) \
+ ? (INSN_LUID ((LOOP)->start)) \
+ : (REGNO_FIRST_LUID (REGNO))))
+
+/* uid's that are too big are derived from nested loops and are
+ not referenced outside this loop, hence they are not global. */
#define LOOP_REG_GLOBAL_P(LOOP, REGNO) \
-((REGNO_LAST_LUID (REGNO) > INSN_LUID ((LOOP)->end) \
- || REGNO_FIRST_LUID (REGNO) < INSN_LUID ((LOOP)->start)))
+((REGNO_LAST_UID (REGNO) > max_uid_for_loop) ? 0 : \
+(((REGNO_FIRST_UID (REGNO) > max_uid_for_loop) ? 0 : \
+((((REGNO_LAST_LUID (REGNO) > INSN_LUID ((LOOP)->end) \
+ || REGNO_FIRST_LUID (REGNO) < INSN_LUID ((LOOP)->start))))))))
+/* APPLE LOCAL end avoid out-of-bounds refs */
#define LOOP_REGNO_NREGS(REGNO, SET_DEST) \
((REGNO) < FIRST_PSEUDO_REGISTER \
@@ -1893,6 +1907,8 @@ combine_movables (struct loop_movables *movables, struct loop_regs *regs)
&& GET_MODE_CLASS (GET_MODE (m1->set_dest)) == MODE_INT
&& (GET_MODE_BITSIZE (GET_MODE (m->set_dest))
>= GET_MODE_BITSIZE (GET_MODE (m1->set_dest)))))
+ /* APPLE LOCAL combine hoisted consts */
+ && m1->regno >= FIRST_PSEUDO_REGISTER
/* See if the source of M1 says it matches M. */
&& ((REG_P (m1->set_src)
&& matched_regs[REGNO (m1->set_src)])
@@ -4655,12 +4671,18 @@ for_each_insn_in_loop (struct loop *loop, loop_insn_callback fncall)
int not_every_iteration = 0;
int maybe_multiple = 0;
int past_loop_latch = 0;
+ bool exit_test_is_entry = false;
rtx p;
- /* If loop_scan_start points to the loop exit test, we have to be wary of
- subversive use of gotos inside expression statements. */
+ /* If loop_scan_start points to the loop exit test, the loop body
+ cannot be counted on running on every iteration, and we have to
+ be wary of subversive use of gotos inside expression
+ statements. */
if (prev_nonnote_insn (loop->scan_start) != prev_nonnote_insn (loop->start))
- maybe_multiple = back_branch_in_range_p (loop, loop->scan_start);
+ {
+ exit_test_is_entry = true;
+ maybe_multiple = back_branch_in_range_p (loop, loop->scan_start);
+ }
/* Scan through loop and update NOT_EVERY_ITERATION and MAYBE_MULTIPLE. */
for (p = next_insn_in_loop (loop, loop->scan_start);
@@ -4718,10 +4740,12 @@ for_each_insn_in_loop (struct loop *loop, loop_insn_callback fncall)
beginning, don't set not_every_iteration for that.
This can be any kind of jump, since we want to know if insns
will be executed if the loop is executed. */
- && !(JUMP_LABEL (p) == loop->top
- && ((NEXT_INSN (NEXT_INSN (p)) == loop->end
- && any_uncondjump_p (p))
- || (NEXT_INSN (p) == loop->end && any_condjump_p (p)))))
+ && (exit_test_is_entry
+ || !(JUMP_LABEL (p) == loop->top
+ && ((NEXT_INSN (NEXT_INSN (p)) == loop->end
+ && any_uncondjump_p (p))
+ || (NEXT_INSN (p) == loop->end
+ && any_condjump_p (p))))))
{
rtx label = 0;
@@ -5470,9 +5494,20 @@ loop_givs_rescan (struct loop *loop, struct iv_class *bl, rtx *reg_map)
mark_reg_pointer (v->new_reg, 0);
if (v->giv_type == DEST_ADDR)
- /* Store reduced reg as the address in the memref where we found
- this giv. */
- validate_change (v->insn, v->location, v->new_reg, 0);
+ {
+ /* Store reduced reg as the address in the memref where we found
+ this giv. */
+ if (!validate_change (v->insn, v->location, v->new_reg, 0))
+ {
+ if (loop_dump_stream)
+ fprintf (loop_dump_stream,
+ "unable to reduce iv to register in insn %d\n",
+ INSN_UID (v->insn));
+ bl->all_reduced = 0;
+ v->ignore = 1;
+ continue;
+ }
+ }
else if (v->replaceable)
{
reg_map[REGNO (v->dest_reg)] = v->new_reg;
@@ -5571,7 +5606,8 @@ loop_giv_reduce_benefit (struct loop *loop ATTRIBUTE_UNUSED,
/* Increasing the benefit is risky, since this is only a guess.
Avoid increasing register pressure in cases where there would
be no other benefit from reducing this giv. */
- && benefit > 0
+ /* APPLE LOCAL compare >= 0, not > 0. */
+ && benefit >= 0
&& GET_CODE (v->mult_val) == CONST_INT)
{
int size = GET_MODE_SIZE (GET_MODE (v->mem));
@@ -6504,10 +6540,25 @@ strength_reduce (struct loop *loop, int flags)
value, so we don't need another one. We can't calculate the
proper final value for such a biv here anyways. */
if (bl->final_value && ! bl->reversed)
- loop_insn_sink_or_swim (loop,
- gen_load_of_final_value (bl->biv->dest_reg,
- bl->final_value));
-
+ /* APPLE LOCAL begin put this insn after the loop in all cases */
+ /* Putting it before the loop can cause problems in an
+ obscure case. "a" is the variable we're currently
+ looking at:
+ b <- a
+ loop beginning
+ b++; and references
+ a++; no references
+ if we put the final value for a before the loop, then
+ eliminate b in favor of c later on, we'll get this
+ before the loop:
+ b <- a
+ a <- final value
+ c <- a
+ which is no good. */
+ loop_insn_sink (loop, gen_load_of_final_value (bl->biv->dest_reg,
+ bl->final_value));
+ /* APPLE LOCAL end put this insn after the loop in all cases */
+
if (loop_dump_stream)
fprintf (loop_dump_stream, "Reg %d: biv eliminated\n",
bl->regno);
@@ -10542,7 +10593,8 @@ insert_loop_mem (rtx *mem, void *data ATTRIBUTE_UNUSED)
/* The modes of the two memory accesses are different. If
this happens, something tricky is going on, and we just
don't optimize accesses to this MEM. */
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
return 0;
}
@@ -10565,7 +10617,8 @@ insert_loop_mem (rtx *mem, void *data ATTRIBUTE_UNUSED)
because we can't put it in a register. We still store it in the
table, though, so that if we see the same address later, but in a
non-BLK mode, we'll not think we can optimize it at that point. */
- loop_info->mems[loop_info->mems_idx].optimize = (GET_MODE (m) != BLKmode);
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[loop_info->mems_idx].optimizable = (GET_MODE (m) != BLKmode);
loop_info->mems[loop_info->mems_idx].reg = NULL_RTX;
++loop_info->mems_idx;
@@ -10812,7 +10865,8 @@ load_mems (const struct loop *loop)
if (MEM_VOLATILE_P (mem)
|| loop_invariant_p (loop, XEXP (mem, 0)) != 1)
/* There's no telling whether or not MEM is modified. */
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
/* Go through the MEMs written to in the loop to see if this
one is aliased by one of them. */
@@ -10825,7 +10879,8 @@ load_mems (const struct loop *loop)
mem, rtx_varies_p))
{
/* MEM is indeed aliased by this store. */
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
break;
}
mem_list_entry = XEXP (mem_list_entry, 1);
@@ -10833,11 +10888,13 @@ load_mems (const struct loop *loop)
if (flag_float_store && written
&& GET_MODE_CLASS (GET_MODE (mem)) == MODE_FLOAT)
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
/* If this MEM is written to, we must be sure that there
are no reads from another MEM that aliases this one. */
- if (loop_info->mems[i].optimize && written)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (loop_info->mems[i].optimizable && written)
{
int j;
@@ -10853,7 +10910,8 @@ load_mems (const struct loop *loop)
/* It's not safe to hoist loop_info->mems[i] out of
the loop because writes to it might not be
seen by reads from loop_info->mems[j]. */
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
break;
}
}
@@ -10862,9 +10920,11 @@ load_mems (const struct loop *loop)
if (maybe_never && may_trap_p (mem))
/* We can't access the MEM outside the loop; it might
cause a trap that wouldn't have happened otherwise. */
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
- if (!loop_info->mems[i].optimize)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (!loop_info->mems[i].optimizable)
/* We thought we were going to lift this MEM out of the
loop, but later discovered that we could not. */
continue;
@@ -10927,7 +10987,8 @@ load_mems (const struct loop *loop)
CALL_INSN_FUNCTION_USAGE (p)))
{
cancel_changes (0);
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
break;
}
else
@@ -10941,11 +11002,13 @@ load_mems (const struct loop *loop)
maybe_never = 1;
}
- if (! loop_info->mems[i].optimize)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (! loop_info->mems[i].optimizable)
; /* We found we couldn't do the replacement, so do nothing. */
else if (! apply_change_group ())
/* We couldn't replace all occurrences of the MEM. */
- loop_info->mems[i].optimize = 0;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ loop_info->mems[i].optimizable = 0;
else
{
/* Load the memory immediately before LOOP->START, which is
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index c88fca98186..e2a4935f828 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -1,6 +1,6 @@
#!/bin/sh
# Construct makefile for libgcc.
-# Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GCC.
@@ -33,7 +33,6 @@
# EXTRA_MULTILIB_PARTS
# SHLIB_EXT
# SHLIB_LINK
-# SHLIB_MULTILIB
# SHLIB_MKMAP
# SHLIB_MKMAP_OPTS
# SHLIB_MAPFILES
@@ -73,6 +72,7 @@ fi
# Build lines.
gcc_compile='$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES)'
+gcc_s_compile="$gcc_compile -DSHARED"
make_compile='$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
AR_FOR_TARGET="$(AR_FOR_TARGET)" \
AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \
@@ -95,16 +95,23 @@ libgcov_c_dep='stmp-dirs $(srcdir)/libgcov.c $(srcdir)/gcov-io.h $(srcdir)/gcov-
# Dependencies for fp-bit.c
fpbit_c_dep='stmp-dirs config.status tsystem.h'
+# Flag whether we need eh_dummy.c
+need_eh_dummy=
+
if [ "$SHLIB_LINK" ]; then
# Test -fvisibility=hidden. We need both a -fvisibility=hidden on
# the command line, and a #define to prevent libgcc2.h etc from
# overriding that with #pragmas. The dance with @ is to prevent
# echo from seeing anything it might take for an option.
+ # echo turns the \$\$\$\$ into $$$$ and when make sees it it
+ # becomes $$ and the shell substitutes the pid. Makes for a
+ # slightly safer temp file.
echo "vis_hide := \$(strip \$(subst @,-,\\"
echo " \$(shell if echo 'void foo(void); void foo(void) {}' | \\"
echo " $gcc_compile -fvisibility=hidden -Werror \\"
- echo " -c -xc - -o /dev/null 2> /dev/null; \\"
+ echo " -c -xc - -o vis_temp_file\$\$\$\$.o 2> /dev/null; \\"
echo " then echo @fvisibility=hidden @DHIDE_EXPORTS; \\"
+ echo " rm vis_temp_file\$\$\$\$.o 2> /dev/null; \\"
echo " fi)))"
echo
@@ -154,79 +161,29 @@ for ml in $MULTILIBS; do
# Work out relevant parameters that depend only on the multilib.
dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- shlib_dir=
- shlib_dir_qual=
+ shlib_slibdir_qual=
libgcc_a=$dir/libgcc.a
libgcov_a=$dir/libgcov.a
libgcc_eh_a=
libgcc_s_so=
libunwind_a=
libunwind_so=
- if [ "$dir" = . ]; then
- suffix=
- else
- suffix=`echo $dir | sed s,/,_,g`
- fi
if [ "$LIBUNWIND" ]; then
libunwind_a=$dir/libunwind.a
fi
if [ "$SHLIB_LINK" ]; then
- if [ -z "$SHLIB_MULTILIB" ]; then
- if [ "$dir" = . ]; then
- libgcc_eh_a=$dir/libgcc_eh.a
- libgcc_s_so_base=libgcc_s
- libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
- libgcc_s_soname=libgcc_s
- if [ "$LIBUNWIND" ]; then
- libunwind_so_base=libunwind
- libunwind_so=${libunwind_so_base}${SHLIB_EXT}
- libunwind_soname=libunwind
- fi
- else
- libgcc_eh_a=$dir/libgcc_eh.a
- libgcc_s_so_base=libgcc_s_${suffix}
- libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
- libgcc_s_soname=libgcc_s_${suffix}
- if [ "$LIBUNWIND" ]; then
- libunwind_so_base=libunwind_${suffix}
- libunwind_so=${libunwind_so_base}${SHLIB_EXT}
- fi
- fi
-
- if [ -n "$MULTILIB_OSDIRNAMES" ]; then
- if [ "$dir" != . ]; then
- gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
- os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
- shlib_dir="$dir"/
- gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'`
- os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"`
- if [ -z "$os_multilib_base" ]; then
- libgcc_s_soname=libgcc_s
- libunwind_soname=libunwind
- if [ "$os_multilib_dir" != "." ]; then
- shlib_dir_qual="/$os_multilib_dir"
- fi
- else
- libgcc_s_soname=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g`
- libunwind_soname=libunwind_`echo $gcc_multilib_sup | sed s,/,_,g`
- shlib_dir_qual="/$os_multilib_base"
- fi
- fi
- fi
-
- elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
- libgcc_eh_a=$dir/libgcc_eh.a
- libgcc_s_so_base=libgcc_s
- libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
- libgcc_s_soname=libgcc_s
- if [ "$LIBUNWIND" ]; then
- libunwind_so_base=libunwind
- libunwind_so=${libunwind_so_base}${SHLIB_EXT}
- libunwind_soname=libunwind
- fi
+ libgcc_eh_a=$dir/libgcc_eh.a
+ libgcc_s_so=$dir/libgcc_s${SHLIB_EXT}
+ if [ "$LIBUNWIND" ]; then
+ libunwind_so=$dir/libunwind${SHLIB_EXT}
+ fi
+ os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
+ if [ "$os_multilib_dir" != . ]; then
+ shlib_slibdir_qual="/$os_multilib_dir"
fi
fi
+
libgcc_s_so_extra=
libunwind_so_extra=
@@ -240,20 +197,9 @@ for ml in $MULTILIBS; do
echo \# libgcc_eh_a: $libgcc_eh_a
echo \# libunwind_a: $libunwind_a
echo \#
- echo \# gcc_multilib_dir: $gcc_multilib_dir
- echo \# gcc_multilib_sup: $gcc_multilib_sup
- echo \# os_multilib_dir: $os_multilib_dir
- echo \# os_multilib_base: $os_multilib_base
- echo \# shlib_dir: $shlib_dir
- echo \# shlib_dir_qual: $shlib_dir_qual
- echo \#
+ echo \# shlib_slibdir_qual: $shlib_slibdir_qual
echo \# libgcc_s_so: $libgcc_s_so
- echo \# libgcc_s_so_base: $libgcc_s_so_base
- echo \# libgcc_s_soname: $libgcc_s_soname
- echo \#
echo \# libunwind_so: $libunwind_so
- echo \# libunwind_so_base: $libunwind_so_base
- echo \# libunwind_soname: $libunwind_soname
echo \#
echo
@@ -273,7 +219,7 @@ for ml in $MULTILIBS; do
outV="libgcc/${dir}/${name}.vis"
echo ${outS}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
- echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \
+ echo " $gcc_s_compile" $flags -DL$name -xassembler-with-cpp \
-c '$(srcdir)/config/$(LIB1ASMSRC)' -o $outS
echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)' ${outV}
@@ -306,7 +252,8 @@ for ml in $MULTILIBS; do
outS="libgcc/${dir}/${name}_s${objext}"
echo $outS: $libgcc2_c_dep
- echo " $gcc_compile" $flags -DL$name -c '$(srcdir)/libgcc2.c' -o $outS
+ echo " $gcc_s_compile" $flags -DL$name -c '$(srcdir)/libgcc2.c' \
+ -o $outS
echo $out: $libgcc2_c_dep
echo " $gcc_compile" $flags -DL$name '$(vis_hide)' \
@@ -339,13 +286,15 @@ for ml in $MULTILIBS; do
out="libgcc/${dir}/${name}${objext}"
outS="libgcc/${dir}/${name}_s${objext}"
+# APPLE LOCAL begin libcc_kext move options to start of line for overriding --bowdidge
echo $outS: $libgcc2_c_dep
- echo " $gcc_compile" $flags -DL$name \
- -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $outS
+ echo " $gcc_s_compile" -fexceptions -fnon-call-exceptions $flags -DL$name \
+ -c '$(srcdir)/libgcc2.c' -o $outS
echo $out: $libgcc2_c_dep
- echo " $gcc_compile" $flags -DL$name '$(vis_hide)' \
- -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $out
+ echo " $gcc_compile" -fexceptions -fnon-call-exceptions $flags -DL$name '$(vis_hide)' \
+ -c '$(srcdir)/libgcc2.c' -o $out
+# APPLE LOCAL end libcc_kext move options to start of line for overriding --bowdidge
echo $libgcc_a: $out
echo $libgcc_s_so: $outS
@@ -372,7 +321,7 @@ for ml in $MULTILIBS; do
outS="libgcc/${dir}/${name}_s${objext}"
echo $outS: $FPBIT $fpbit_c_dep
- echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
+ echo " $gcc_s_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
-c $FPBIT -o $outS
echo $out: $FPBIT $fpbit_c_dep
@@ -402,7 +351,7 @@ for ml in $MULTILIBS; do
outS="libgcc/${dir}/${name}_s${objext}"
echo $outS: $DPBIT $fpbit_c_dep
- echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
+ echo " $gcc_s_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
-c $DPBIT -o $outS
echo $out: $DPBIT $fpbit_c_dep
@@ -432,7 +381,7 @@ for ml in $MULTILIBS; do
outS="libgcc/${dir}/${name}_s${objext}"
echo $outS: $TPBIT $fpbit_c_dep
- echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
+ echo " $gcc_s_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
-c $TPBIT -o $outS
echo $out: $TPBIT $fpbit_c_dep
@@ -466,7 +415,7 @@ for ml in $MULTILIBS; do
case $file in
*.c)
echo $outS: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags -c $file -o $outS
+ echo " $gcc_s_compile" $flags -c $file -o $outS
echo $out: stmp-dirs $file $libgcc_dep
echo " $gcc_compile" $flags '$(vis_hide)' -c $file -o $out
@@ -476,7 +425,7 @@ for ml in $MULTILIBS; do
outV="libgcc/${dir}/${oname}.vis"
echo $outS: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags -xassembler-with-cpp \
+ echo " $gcc_s_compile" $flags -xassembler-with-cpp \
-c $file -o $outS
echo $out: stmp-dirs $file $libgcc_dep $outV
@@ -588,16 +537,29 @@ for ml in $MULTILIBS; do
name=`echo $file | sed -e 's/[.]c$//'`
oname=`echo $name | sed -e 's,.*/,,'`
- out="libgcc/${dir}/${oname}_s${objext}"
+ outS="libgcc/${dir}/${oname}_s${objext}"
- echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_compile" $flags -fexceptions -c $file -o $out
- echo $libgcc_s_so: $out
+ echo $outS: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+ echo " $gcc_s_compile" $flags -fexceptions -c $file -o $outS
+ echo $libgcc_s_so: $outS
if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $out
+ echo libgcc/${dir}/libgcc.map: $outS
fi
done
+ # If nothing went into libgcc_eh.a, create a dummy object -
+ # some linkers don't like totally empty archives.
+ if [ -z "$LIB2ADDEHSTATIC" ]; then
+ file=eh_dummy.c
+ out="libgcc/${dir}/eh_dummy${objext}"
+ need_eh_dummy=1
+
+ echo $out: stmp-dirs $file
+ echo " $gcc_compile" $flags '$(vis_hide)' -fexceptions -c $file -o $out
+ echo $libgcc_eh_a: $out
+ fi
+
+
else # no libgcc_eh.a
for file in $LIB2ADDEH; do
case $file in
@@ -634,7 +596,7 @@ for ml in $MULTILIBS; do
echo " $gcc_compile $flags -fexceptions \$(vis_hide) -c $file -o $out"
echo $outS: stmp-dirs $file $LIBUNWINDDEP
- echo " $gcc_compile $flags -fexceptions -DSHARED -c $file -o $outS"
+ echo " $gcc_s_compile $flags -fexceptions -c $file -o $outS"
echo $libunwind_a: $out
echo $libunwind_so: $outS
@@ -683,6 +645,11 @@ for ml in $MULTILIBS; do
extra="$extra $targ"
done
+ if [ "$dir" = . ]; then
+ suffix=
+ else
+ suffix=`echo $dir | sed s,/,_,g`
+ fi
echo extra$suffix: stmp-dirs
echo " $make_compile" \\
echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
@@ -766,15 +733,15 @@ EOF
fi
# Shared libraries.
- if [ "$libgcc_s_so" ]; then
+ # APPLE LOCAL libcc_kext
+ if [ "$libgcc_s_so" -a "$dir" != "static" -a "$dir" != "kext" ]; then
echo ""
echo "$libgcc_s_so: stmp-dirs $libunwind_so"
echo " $SHLIB_LINK" \
| sed -e "s%@multilib_flags@%$flags%g" \
-e "s%@multilib_dir@%$dir%g" \
-e "s%@shlib_objs@%\$(objects)%g" \
- -e "s%@shlib_base_name@%$libgcc_s_so_base%g" \
- -e "s%@shlib_so_name@%$libgcc_s_soname%g" \
+ -e "s%@shlib_base_name@%libgcc_s%g" \
-e "s%@shlib_map_file@%$mapfile%g" \
-e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g"
echo "all: $libgcc_s_so"
@@ -787,8 +754,7 @@ EOF
| sed -e "s%@multilib_flags@%$flags%g" \
-e "s%@multilib_dir@%$dir%g" \
-e "s%@shlib_objs@%\$(objects)%g" \
- -e "s%@shlib_base_name@%$libunwind_so_base%g" \
- -e "s%@shlib_so_name@%$libunwind_soname%g" \
+ -e "s%@shlib_base_name@%libunwind%g" \
-e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g"
echo "all: $libunwind_so"
fi
@@ -815,6 +781,11 @@ echo " if [ -d \$\$d ]; then true; else $mkinstalldirs \$\$d; fi; \\"
echo " done"
echo " if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi"
+if [ "$need_eh_dummy" ]; then
+ echo "eh_dummy.c:"
+ echo " echo 'struct eh_dummy;' > \$@"
+fi
+
echo ""
echo "install: all"
for ml in $MULTILIBS; do
@@ -835,66 +806,23 @@ for ml in $MULTILIBS; do
echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
- if [ -z "$SHLIB_MULTILIB" ]; then
- if [ "$dir" = . ]; then
- shlib_base_name=libgcc_s
- shlibunwind_base_name=libunwind
- else
- shlib_base_name=libgcc_s_`echo $dir | sed s,/,_,g`
- shlibunwind_base_name=libunwind_`echo $dir | sed s,/,_,g`
- fi
- shlib_so_name="$shlib_base_name"
- shlibunwind_so_name="$shlibunwind_base_name"
- shlib_dir=
- shlib_slibdir_qual=
- if [ -n "$MULTILIB_OSDIRNAMES" ]; then
- gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
- os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
- if [ "$dir" != . ]; then
- shlib_dir="$dir"/
- fi
- gcc_multilib_sup=`echo $gcc_multilib_dir | sed 's~^[^/]*/~~'`
- os_multilib_base=`echo $os_multilib_dir | sed -n "s~/${gcc_multilib_sup}\$~~p"`
- if [ -z "$os_multilib_base" ]; then
- shlib_so_name=libgcc_s
- shlibunwind_so_name=libunwind
- if [ "$os_multilib_dir" != "." ]; then
- shlib_slibdir_qual="/$os_multilib_dir"
- fi
- else
- shlib_so_name=libgcc_s_`echo $gcc_multilib_sup | sed s,/,_,g`
- shlibunwind_so_name=libunwind_`echo $gcc_multilib_sup | sed s,/,_,g`
- shlib_slibdir_qual="/$os_multilib_base"
- fi
- fi
- echo " $SHLIB_INSTALL" \
- | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \
- -e "s%@shlib_so_name@%$shlib_so_name%g" \
+ shlib_slibdir_qual=
+ os_multilib_dir=`./xgcc -B./ $flags --print-multi-os-directory`
+ if [ "$os_multilib_dir" != . ]; then
+ shlib_slibdir_qual="/$os_multilib_dir"
+ fi
+ echo " $SHLIB_INSTALL" \
+ | sed -e "s%@multilib_dir@%$dir%g" \
+ -e "s%@shlib_base_name@%libgcc_s%g" \
+ -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
+ if [ "$LIBUNWIND" ]; then
+ echo " $SHLIBUNWIND_INSTALL" \
+ | sed -e "s%@multilib_dir@%$dir%g" \
+ -e "s%@shlib_base_name@%libunwind%g" \
-e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
- if [ "$LIBUNWIND" ]; then
- echo " $SHLIBUNWIND_INSTALL" \
- | sed -e "s%@shlib_base_name@%$shlibunwind_base_name%g" \
- -e "s%@shlib_so_name@%$shlibunwind_so_name%g" \
- -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
- libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)'
- echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
- echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
- fi
- elif [ "$SHLIB_MULTILIB" = "$dir" ]; then
- shlib_base_name="libgcc_s";
- echo " $SHLIB_INSTALL" \
- | sed -e "s%@shlib_base_name@%$shlib_base_name%g" \
- -e "s%@shlib_so_name@%$shlib_base_name%g" \
- -e "s%@shlib_slibdir_qual@%%g"
- if [ "$LIBUNWIND" ]; then
- echo " $SHLIBUNWIND_INSTALL" \
- | sed -e "s%@shlib_base_name@%$shlibunwind_base_name%g" \
- -e "s%@shlib_so_name@%$shlibunwind_base_name%g" \
- -e "s%@shlib_slibdir_qual@%%g"
- libunwinddir='$(DESTDIR)$(slibdir)'
- echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
- echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
- fi
+ libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)'
+ echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
+ echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
fi
fi
done
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index 57879baf799..e623ea1cb53 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -339,6 +339,10 @@ const_iteration_count (rtx count_reg, basic_block pre_header,
{
rtx insn;
rtx head, tail;
+
+ if (! pre_header)
+ return NULL_RTX;
+
get_block_head_tail (pre_header->index, &head, &tail);
for (insn = tail; insn != PREV_INSN (head); insn = PREV_INSN (insn))
@@ -401,6 +405,8 @@ print_node_sched_params (FILE * dump_file, int num_nodes)
{
int i;
+ if (! dump_file)
+ return;
for (i = 0; i < num_nodes; i++)
{
node_sched_params_ptr nsp = &node_sched_params[i];
@@ -443,14 +449,17 @@ calculate_maxii (ddg_ptr g)
return maxii;
}
-
-/* Given the partial schedule, generate register moves when the length
- of the register live range is more than ii; the number of moves is
- determined according to the following equation:
- SCHED_TIME (use) - SCHED_TIME (def) { 1 broken loop-carried
- nreg_moves = ----------------------------------- - { dependence.
- ii { 0 if not.
- This handles the modulo-variable-expansions (mve's) needed for the ps. */
+/*
+ Breaking intra-loop register anti-dependences:
+ Each intra-loop register anti-dependence implies a cross-iteration true
+ dependence of distance 1. Therefore, we can remove such false dependencies
+ and figure out if the partial schedule broke them by checking if (for a
+ true-dependence of distance 1): SCHED_TIME (def) < SCHED_TIME (use) and
+ if so generate a register move. The number of such moves is equal to:
+ SCHED_TIME (use) - SCHED_TIME (def) { 0 broken
+ nreg_moves = ----------------------------------- + 1 - { dependecnce.
+ ii { 1 if not.
+*/
static void
generate_reg_moves (partial_schedule_ptr ps)
{
@@ -474,6 +483,9 @@ generate_reg_moves (partial_schedule_ptr ps)
{
int nreg_moves4e = (SCHED_TIME (e->dest) - SCHED_TIME (e->src)) / ii;
+ if (e->distance == 1)
+ nreg_moves4e = (SCHED_TIME (e->dest) - SCHED_TIME (e->src) + ii) / ii;
+
/* If dest precedes src in the schedule of the kernel, then dest
will read before src writes and we can save one reg_copy. */
if (SCHED_ROW (e->dest) == SCHED_ROW (e->src)
@@ -497,6 +509,9 @@ generate_reg_moves (partial_schedule_ptr ps)
{
int dest_copy = (SCHED_TIME (e->dest) - SCHED_TIME (e->src)) / ii;
+ if (e->distance == 1)
+ dest_copy = (SCHED_TIME (e->dest) - SCHED_TIME (e->src) + ii) / ii;
+
if (SCHED_ROW (e->dest) == SCHED_ROW (e->src)
&& SCHED_COLUMN (e->dest) < SCHED_COLUMN (e->src))
dest_copy--;
@@ -540,7 +555,8 @@ normalize_sched_times (partial_schedule_ptr ps)
int amount = PS_MIN_CYCLE (ps);
int ii = ps->ii;
- for (i = 0; i < g->num_nodes; i++)
+ /* Don't include the closing branch assuming that it is the last node. */
+ for (i = 0; i < g->num_nodes - 1; i++)
{
ddg_node_ptr u = &g->nodes[i];
int normalized_time = SCHED_TIME (u) - amount;
@@ -609,7 +625,7 @@ duplicate_insns_of_cycles (partial_schedule_ptr ps, int from_stage,
/* SCHED_STAGE (u_node) >= from_stage == 0. Generate increasing
number of reg_moves starting with the second occurrence of
u_node, which is generated if its SCHED_STAGE <= to_stage. */
- i_reg_moves = to_stage - SCHED_STAGE (u_node);
+ i_reg_moves = to_stage - SCHED_STAGE (u_node) + 1;
i_reg_moves = MAX (i_reg_moves, 0);
i_reg_moves = MIN (i_reg_moves, SCHED_NREG_MOVES (u_node));
@@ -1109,6 +1125,8 @@ sms_schedule (FILE *dump_file)
scheduling passes doesn't touch it. */
if (! flag_resched_modulo_sched)
g->bb->flags |= BB_DISABLE_SCHEDULE;
+ /* The life-info is not valid any more. */
+ g->bb->flags |= BB_DIRTY;
generate_reg_moves (ps);
if (dump_file)
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 88037f36bda..ea96a29060e 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,3 +1,21 @@
+2005-05-18 Geoffrey Keating <geoffk@apple.com>
+
+ * Make-lang.in (cc1obj-dummy): New.
+ (cc1obj-checksum.c): New.
+ (cc1obj-checksum.o): New.
+ (cc1obj): Add cc1obj-checksum.o.
+
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/772
+ PR c/17913
+ * objc-act.c (objc_start_function): Push context on
+ label_context_stack.
+
2005-01-29 Kazu Hirata <kazu@cs.umass.edu>
* lang-specs.h, objc-act.c, objc-act.h, objc-lang.c: Update
diff --git a/gcc/objc/ChangeLog.apple-ppc b/gcc/objc/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..8f0722939db
--- /dev/null
+++ b/gcc/objc/ChangeLog.apple-ppc
@@ -0,0 +1,326 @@
+2005-06-30 Devang Patel <dpatel@apple.com>
+
+ * lang-specs.h: While making PCH, invoke as if -fsave-repository
+ is used.
+
+2005-06-28 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4140824
+ * objc-act.c (objc_build_struct): Save the TYPE_OBJC_INFO
+ portion of TYPE_LANG_SPECIFIC info for all variants of
+ a class before calling finish_struct(), and restore
+ same TYPE_OBJC_INFO afterwards.
+
+2005-06-22 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4154928
+ * objc-act.c (objc_common_type): New function.
+
+2005-06-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4149909
+ * objc-act.c (objc_build_internal_const_str_type): New function.
+ (check_string_class_template): Use objc_get_class_ivars() instead
+ of TYPE_FIELDS() to retrieve ivar list.
+ (AT_LEAST_AS_LARGE_AS): Check the size of each field's type rather
+ than the field itself.
+ (objc_build_string_object): Synthesize a "__builtin_ObjCString"
+ type and use it to lay out compile-time string objects.
+ * objc-act.h (OCTI_INTERNAL_CNST_STR_TYPE, internal_const_str_type):
+ New.
+
+2005-05-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4035492
+ * objc-act.c (objc_build_struct, objc_derived_from_p,
+ objc_build_component_ref, objc_copy_binfo, objc_xref_basetypes,
+ objc_lookup_protocol, objc_compare_protocols, objc_volatilize_decl,
+ encode_aggregate_fields, volatilized_hash, volatilized_eq,
+ objc_compare_types, objc_type_quals_match):
+ New functions.
+ (DERIVED_FROM_P): New ObjC macro, corresponding to C++ macro
+ of same name.
+ (get_class_ivars): Add second parameter indicating if entire
+ hierarchy is desired.
+ (struct volatilized_type): New type.
+ (volatilized_htab): New hash table.
+ (objc_types_compatible_p, objc_comptypes): Remove functions.
+ (synth_module_prologue): Do not initialize 'unused_list'.
+ (objc_get_class_reference): Fix ObjC++ impedance mismatches.
+ (objc_declare_alias): Implement as a typedef.
+ (objc_substitute_decl, objc_gimplify_expr): Reformat.
+ (objc_get_class_ivars): Adjust call to get_class_ivars().
+ (next_sjlj_build_enter_and_setjmp, synth_forward_declarations,
+ build_ivar_reference, get_super_receiver): Call
+ objc_build_component_ref() instead of build_component_ref().
+ (objc_begin_catch_clause): Use DERIVED_FROM_P() instead of
+ objc_comptypes().
+ (build_private_template): Call objc_build_struct() instead of
+ start_struct() and finish_struct().
+ (hash_init): Initialize volatilized_htab.
+ (objc_is_public): Adjust calls to objc_get_ivars(); adjust
+ ObjC++ impedance mismatches.
+ (encode_aggregate_within): Streamline by calling
+ encode_aggregate_fields().
+ * objc-act.h (objc_types_compatible_p): Remove prototype.
+ (OCTI_UNUSED_LIST, unused_list): Remove slot.
+ * objc-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
+
+2005-04-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4056870
+ * objc-act.c (start_class): Traverse @compatibility_alias
+ declaration when looking up super class; produce error
+ message if super class only has a @class declaration.
+
+2005-04-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4073569
+ * objc-act.c (objc_finish_message_expr): When sending
+ messages to classes that were _only_ forward-declared
+ (via '@class'), do not issue "may not respond" to
+ warnings.
+
+2005-04-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4055183
+ * objc-act.c (objc_rewrite_function_call): New function.
+
+2005-03-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3995882
+ * objc-act.c (objc_begin_try_stmt): When doing _setjmp()/
+ _longjmp() EH, call objc_mark_locals_volatile().
+
+2005-02-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4006978
+ * objc-act.c (objc_is_public): Remove unneeded code.
+
+2005-02-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3635843, 3922342
+ * objc-act.c (OBJC_VERSION): Bump to '6' for the NeXT.
+ (objc_is_gcable_type, objc_substitute_decl,
+ objc_build_ivar_assignment, objc_build_global_assignment,
+ objc_build_strong_cast_assignment, objc_is_gcable_p,
+ objc_is_ivar_reference_p, objc_is_global_reference_p,
+ objc_generate_write_barrier): New functions.
+ (TAG_ASSIGNIVAR, TAG_ASSIGNGLOBAL, TAG_ASSIGNSTRONGCAST,
+ TAG_MSGSEND_FAST, TAG_ASSIGNIVAR_FAST, OFFS_MSGSEND_FAST,
+ OFFS_ASSIGNIVAR_FAST): New macros.
+ (synth_module_prologue): Synthesize 'objc_msgSend_Fast'
+ function prototype.
+ (build_next_objc_exception_stuff): Synthesize
+ 'objc_assign_ivar', 'objc_assign_ivar_Fast',
+ 'objc_assign_global' and 'objc_assign_strongCast'
+ function prototypes.
+ (build_objc_method_call): Call 'objc_msgSend_Fast'
+ instead of 'objc_msgSend' if '-fobjc-direct-dispatch'
+ has been specified.
+ (finish_objc): Generate image info if '-fobjc-gc'
+ has been specified.
+ (generate_objc_image_info): Set a bit indicating if
+ '-fobjc-gc' has been specified.
+ * objc-act.h (OCTI_UMSG_FAST_DECL, OCTI_ASSIGN_IVAR_DECL,
+ OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
+ OCTI_ASSIGN_STRONGCAST_DECL): New enum slots.
+ (umsg_fast_decl, objc_assign_ivar_decl,
+ objc_assign_ivar_fast_decl, objc_assign_global_decl,
+ objc_assign_strong_cast_decl): New slot accessors.
+
+2005-02-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3962013 (Part 2)
+ * objc-act.c (objc_types_share_size_and_alignment): New
+ function.
+ (check_duplicates): Update comment.
+ (comp_proto_with_proto): If types do not match, call
+ objc_types_share_size_and_alignment() as a fallback in
+ non-strict mode.
+
+2005-02-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978619
+ * objc-act.c (should_call_super_dealloc): New variable.
+ (objc_finish_message_expr): If calling [super dealloc],
+ clear the should_call_super_dealloc variable.
+ (start_method_def): If defining a 'dealloc' method in a
+ non-root class, set the should_call_super_dealloc variable.
+ (objc_finish_method_definition): Print a warning if
+ the should_call_super_dealloc is set.
+
+2005-02-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3982256
+ * objc-act.c: Update copyright notice; include langhooks-def.h.
+ (objc_types_compatible_p): New lang hook function.
+ * objc-act.h: Update copyright notice.
+ (objc_types_compatible_p): New prototype.
+ * objc-lang.c: Update copyright notice.
+ (LANG_HOOKS_TYPES_COMPATIBLE_P): Point at objc_types_compatible_p().
+
+2005-02-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3987972
+ * objc-act.c (objc_start_function): Reset
+ 'current_function_returns_value' and 'current_function_returns_null'
+ global flags.
+
+2005-01-30 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3962013
+ * objc-act.c (comp_proto_with_proto): Add a STRICT parameter
+ to allow for relaxed type comparisons.
+ (check_duplicates): If '-Wno-strict-selector-match' is specified,
+ do not warn about multiple method signatures if they differ only
+ in their ObjC types.
+ (add_method_to_hash_list, objc_add_method, really_start_method):
+ Adjust calls to comp_proto_with_proto().
+
+2005-01-27 Matt Austern <austern@apple.com>
+
+ Radar 3971445
+ * objc-act.c (objc_finish_file): In Objective-C++ mode, set at_eof
+ before calling instantiate_pending_templates.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ * objc-act.c (objc_get_class_reference): Move stray
+ APPLE LOCAL marker.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3955336
+ * objc-act.c (objc_get_class_reference): In Objective-C++,
+ make sure a type is declared in the global namespace before
+ looking it up as an ObjC class.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3953044 (PR objc/19321)
+ * objc-act.c (get_arg_type_list): Decay function arguments into
+ pointers.
+ (objc_push_parm): Likewise; bring PARM_DECL construction closer
+ in line with what the C front-end does.
+ (objc_get_parm_info): Call pushdecl() and finish_decl() on
+ each PARM_DECL, like the C front-end does.
+ (start_method_def): Remove redundant ARRAY_TYPE decay.
+ (objc_start_function): Bring closer in line with what the
+ C front-end does for functions.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3951689
+ * objc-act.c (next_sjlj_build_enter_and_setjmp): For
+ Objective-C++, convert _setjmp() argument to type the
+ function expects.
+ (objc_finish_try_stmt, objc_build_synchronized): Return
+ the resulting statement node.
+
+2005-01-14 Mike Stump <mrs@apple.com>
+
+ Radar 3948135
+ * lang-specs.h ("@objective-c"): Use cc1obj when -E is used so
+ that -fzero-link is accepted.
+
+2005-01-12 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3882153
+ * objc-act.c (objc_finish_file): Do not synthesize metadata
+ when generating a PCH file.
+
+2005-01-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3918079
+ * objc-act.c (OBJC_LOOKUP_CLASS, OBJC_LOOKUP_NO_SUPER): New
+ flags.
+ (lookup_method_static): Generalize third argument to indicate
+ whether to search superclasses for a method.
+ (really_start_method): When looking for matching method in
+ the @interface, do not look in superclasses.
+
+2005-01-06 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3925982
+ * objc-act.c (objc_method_parm_type): Return the type found
+ rather than its main variant.
+ (encode_aggregate_within): Streamline util_obstack accesses;
+ allow for records and/or pointers thereto to be const-qualified.
+
+2005-01-03 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3926282 (PR objc/18971)
+ * objc-act.c (get_arg_type_list, start_method_def): Decay
+ array arguments into pointers.
+ (gen_type_name_0): Learn to pretty-print array types.
+
+2004-11-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3761423
+ * objc-act.c (build_private_template): Return 'void';
+ move fix for Radar 3261135 from continue_class().
+ (objc_is_public): Robustify for use with ObjC++; examine
+ "raw" ivars of the ObjC class instead of side-effected
+ fields of the underlying struct.
+ (continue_class): Return "raw" ivar list instead of
+ struct field list; move Radar 3261135 to
+ build_private_template(), and call it.
+
+2004-11-01 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 2810013 (fix from mainline)
+ * objc-act.c (objc_lookup_ivar): The new OTHER parameter
+ contains the result of the ID lookup by the C or C++
+ front-end; in class methods, use OTHER if it exists;
+ in instance methods, use OTHER only if it is locally
+ declared.
+
+2004-10-27 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3854155
+ * objc-act.c (generate_shared_structures): Add a CLS_FLAGS
+ parameter whose value gets ORed into the INFO field of
+ the class descriptor.
+ (CLS_HAS_CXX_STRUCTORS): New metadata bit.
+ (objc_generate_cxx_cdtors): Set flag in current imp_entry
+ if either '-.cxx_construct' or '-.cxx_destruct' were
+ synthesized...
+ (continue_class): ...after initially clearing it herre.
+ (finish_objc): Adjust call to generate_shared_structures(),
+ passing in CLS_HAS_CXX_STRUCTORS for classes with non-POD
+ ivars.
+ * objc-act.h (struct imp_entry): New has_cxx_cdtors field.
+
+2004-10-26 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3833116 (fix from mainline)
+ * objc-act.c (finish_class): Do not synthesize bogus
+ 'extern objc_object *_Foo;' declarations for @interface Foo.
+
+2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
+
+ Radar 3845826 (PR objc/17923)
+ * objc-act.c (objc_build_string_object): Create a CONST_DECL
+ for the NeXT runtime case.
+
+2004-10-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3540965
+ * objc-act.c (objc_generate_cxx_ctor_or_dtor,
+ objc_generate_cxx_cdtors): New functions.
+ (TAG_CXX_CONSTRUCT, TAG_CXX_DESTRUCT): New macros.
+ (objc_finish_implementation): Call objc_generate_cxx_cdtors()
+ if -fobjc-call-cxx-cdtors has been specified.
+ (add_instance_variable): Emit different diagnostics for
+ -fobjc-call-cxx-cdtors than for -fno-objc-call-cxx-cdtors.
+
+2004-10-13 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3677258
+ * objc-act.c (add_class): Add a 'name' parameter, and point it
+ back at 'class' via IDENTIFIER_INTERFACE_VALUE accessor.
+ (lookup_interface): Look in IDENTIFIER_INTERFACE_VALUE accessor
+ instead of searching for class in a list.
+ (start_class): Adjust calls to add_class().
+ * objc-act.h (IDENTIFIER_INTERFACE_VALUE): Reformat.
diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in
index 08909437aa6..1e0e5a0e4a1 100644
--- a/gcc/objc/Make-lang.in
+++ b/gcc/objc/Make-lang.in
@@ -49,31 +49,59 @@ objc-warn = $(STRICT_WARN)
# Bison-1.75 output yields (harmless) -Wtraditional warnings
objc/objc-parse.o-warn = -Wno-error
+# APPLE LOCAL begin order files --ilr
+ifeq ($(ORDER_FILES),yes)
+CC1OBJ_ORDER_FLAGS = `if [ -f $(srcdir)/../order-files/cc1obj.order ]; then \
+ echo -sectorder __TEXT __text $(srcdir)/../order-files/cc1obj.order -e start ; fi`
+else
+CC1OBJ_ORDER_FLAGS =
+endif
+# APPLE LOCAL end order files --ilr
+
# Language-specific object files for Objective C.
OBJC_OBJS = objc/objc-lang.o objc/objc-parse.o objc/objc-act.o
-cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) $(BACKEND) $(LIBDEPS)
+# APPLE LOCAL begin order files --ilr
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+ $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o \
+ $(BACKEND) $(LIBS) $(CC1OBJ_ORDER_FLAGS)
+
+cc1obj-checksum.c : cc1obj-dummy$(exeext) build/genchecksum$(exeext)
+ build/genchecksum$(exeext) cc1obj-dummy$(exeext) > $@
+
+cc1obj-checksum.o : cc1obj-checksum.c
+
+cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
- $(OBJC_OBJS) $(C_AND_OBJC_OBJS) $(BACKEND) $(LIBS)
+ $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o \
+ $(BACKEND) $(LIBS) $(CC1OBJ_ORDER_FLAGS)
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
+# APPLE LOCAL end order files --ilr
# Objective C language specific files.
+# APPLE LOCAL begin mainline
objc/objc-lang.o : objc/objc-lang.c \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(C_TREE_H) $(C_PRETTY_PRINT_H) $(DIAGNOSTIC_H) \
$(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objc.h \
- c-objc-common.h objc/objc-act.h
+ c-objc-common.h objc/objc-act.h tree-gimple.h
+# APPLE LOCAL end mainline
objc/objc-parse.o : objc/objc-parse.c \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
toplev.h $(GGC_H) input.h flags.h output.h langhooks.h $(C_COMMON_H) \
$(C_PRAGMA_H)
+# APPLE LOCAL begin mainline
objc/objc-act.o : objc/objc-act.c \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \
$(EXPR_H) $(TARGET_H) $(C_TREE_H) diagnostic.h toplev.h flags.h \
- objc/objc-act.h input.h function.h output.h debug.h langhooks.h \
- $(LANGHOOKS_DEF_H) $(HASHTAB_H) c-pragma.h gt-objc-objc-act.h
+ objc/objc-act.h input.h function.h output.h debug.h langhooks.h opts.h \
+ $(LANGHOOKS_DEF_H) $(HASHTAB_H) c-pragma.h gt-objc-objc-act.h tree-gimple.h
+# APPLE LOCAL end mainline
objc.srcextra: objc/objc-parse.c objc/objc-parse.y
-cp -p $^ $(srcdir)/objc
diff --git a/gcc/objc/config-lang.in b/gcc/objc/config-lang.in
index 72de2ffc59d..8ca93dc1263 100644
--- a/gcc/objc/config-lang.in
+++ b/gcc/objc/config-lang.in
@@ -32,7 +32,11 @@ compilers="cc1obj\$(exeext)"
stagestuff="cc1obj\$(exeext)"
-target_libs=target-libobjc
+# APPLE LOCAL begin libobjc
+# We use libobjc4 instead. To build libobjc anyway, add
+# '--enable-libobjc' to the 'configure' command line.
+# target_libs=target-libobjc
+# APPLE LOCAL end libobjc
# Most of the object files for cc1obj actually come from C.
lang_requires="c"
diff --git a/gcc/objc/lang-specs.h b/gcc/objc/lang-specs.h
index b0f3c9bb54a..9c6307e1fc2 100644
--- a/gcc/objc/lang-specs.h
+++ b/gcc/objc/lang-specs.h
@@ -47,7 +47,8 @@ Boston, MA 02111-1307, USA. */
%{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\
cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
-o %g.s %{!o*:--output-pch=%i.gch}\
- %W{o*:--output-pch=%*}%V}\
+ "/* APPLE LOCAL ss2 */" \
+ %W{o*:--output-pch=%*} %{fsave-repository=*: \n as -o %w%* %g.s %A}%V}\
%{!save-temps:%{!no-integrated-cpp:\
cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
-o %g.s %{!o*:--output-pch=%i.gch}\
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index e6201afbad5..d418b204d4c 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -74,9 +74,15 @@ Boston, MA 02111-1307, USA. */
#include "libfuncs.h"
#include "hashtab.h"
#include "langhooks-def.h"
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+#include "opts.h"
#define OBJC_VOID_AT_END void_list_node
+/* APPLE LOCAL begin mainline */
+static unsigned int should_call_super_dealloc = 0;
+/* APPLE LOCAL end mainline */
+
/* When building Objective-C++, we are not linking against the C front-end
and so need to replicate the C tree-construction functions in some way. */
#ifdef OBJCPLUS
@@ -126,7 +132,8 @@ char *util_firstobj;
the module (file) was compiled for, and is recorded in the
module descriptor. */
-#define OBJC_VERSION (flag_next_runtime ? 5 : 8)
+/* APPLE LOCAL mainline */
+#define OBJC_VERSION (flag_next_runtime ? 6 : 8)
#define PROTOCOL_VERSION 2
/* (Decide if these can ever be validly changed.) */
@@ -175,6 +182,30 @@ static tree get_super_receiver (void);
static void build_objc_exception_stuff (void);
static void build_next_objc_exception_stuff (void);
+/* APPLE LOCAL begin mainline */
+static int objc_is_gcable_type (tree, int);
+static tree objc_substitute_decl (tree, tree, tree);
+static tree objc_build_ivar_assignment (tree, tree, tree);
+static tree objc_build_global_assignment (tree, tree);
+static tree objc_build_strong_cast_assignment (tree, tree);
+static int objc_is_gcable_p (tree);
+static int objc_is_ivar_reference_p (tree);
+static int objc_is_global_reference_p (tree);
+
+static tree objc_build_struct (tree, tree, tree);
+/* We only need the following for ObjC; ObjC++ will use C++'s definition
+ of DERIVED_FROM_P. */
+#ifndef OBJCPLUS
+static bool objc_derived_from_p (tree, tree);
+#define DERIVED_FROM_P(PARENT, CHILD) objc_derived_from_p (PARENT, CHILD)
+#endif
+static tree objc_build_component_ref (tree, tree);
+static tree objc_copy_binfo (tree);
+static void objc_xref_basetypes (tree, tree);
+static bool objc_lookup_protocol (tree, tree, tree, bool);
+static bool objc_compare_protocols (tree, tree, tree, tree, bool);
+
+/* APPLE LOCAL end mainline */
static tree build_ivar_template (void);
static tree build_method_template (void);
static void build_private_template (tree);
@@ -187,19 +218,30 @@ static tree build_category_initializer (tree, tree, tree, tree, tree, tree);
static tree build_protocol_initializer (tree, tree, tree, tree, tree);
static void synth_forward_declarations (void);
static int ivar_list_length (tree);
-static tree get_class_ivars (tree);
+/* APPLE LOCAL mainline */
+static tree get_class_ivars (tree, bool);
static void generate_ivar_lists (void);
static void generate_dispatch_tables (void);
-static void generate_shared_structures (void);
+/* APPLE LOCAL mainline */
+static void generate_shared_structures (int);
static tree generate_protocol_list (tree);
static void build_protocol_reference (tree);
+/* APPLE LOCAL begin mainline */
+#ifdef OBJCPLUS
+static void objc_generate_cxx_ctor_or_dtor (bool);
+static void objc_generate_cxx_cdtors (void);
+#endif
+/* APPLE LOCAL end mainline */
+
static tree build_keyword_selector (tree);
static const char *synth_id_with_class_suffix (const char *, tree);
static void generate_static_references (void);
static int check_methods_accessible (tree, tree, int);
static void encode_aggregate_within (tree, int, int, int, int);
+/* APPLE LOCAL mainline */
+static void encode_aggregate_fields (tree, int, int, int);
static const char *objc_demangle (const char *);
/* Hash tables to manage the global pool of method prototypes. */
@@ -215,7 +257,8 @@ static void hash_add_attr (hash, tree);
static tree lookup_method (tree, tree);
static tree lookup_method_static (tree, tree, int);
static void add_method_to_hash_list (hash *, tree);
-static tree add_class (tree);
+/* APPLE LOCAL mainline */
+static tree add_class (tree, tree);
static void add_category (tree, tree);
static inline tree lookup_category (tree, tree);
@@ -256,7 +299,10 @@ static void really_start_method (tree, tree);
static void really_start_method (tree, struct c_arg_info *);
#endif
static int objc_types_are_equivalent (tree, tree);
-static int comp_proto_with_proto (tree, tree);
+/* APPLE LOCAL begin mainline */
+static int objc_types_share_size_and_alignment (tree, tree);
+static int comp_proto_with_proto (tree, tree, int);
+/* APPLE LOCAL end mainline */
static tree get_arg_type_list (tree, int, int);
static void objc_push_parm (tree);
#ifdef OBJCPLUS
@@ -285,6 +331,8 @@ static void finish_var_decl (tree, tree);
static tree create_field_decl (tree, const char *);
static tree setup_string_decl (void);
static int check_string_class_template (void);
+/* APPLE LOCAL 4149909 */
+static tree objc_build_internal_const_str_type (void);
static tree my_build_string (int, const char *);
static void build_objc_symtab_template (void);
static tree init_def_list (tree);
@@ -378,6 +426,8 @@ static const char *default_constant_string_class_name;
/* Runtime metadata flags. */
#define CLS_FACTORY 0x0001L
#define CLS_META 0x0002L
+/* APPLE LOCAL mainline */
+#define CLS_HAS_CXX_STRUCTORS 0x2000L
#define OBJC_MODIFIER_STATIC 0x00000001
#define OBJC_MODIFIER_FINAL 0x00000002
@@ -405,11 +455,35 @@ static const char *default_constant_string_class_name;
#define TAG_SETJMP "_setjmp"
#define UTAG_EXCDATA "_objc_exception_data"
+/* APPLE LOCAL begin mainline */
+#define TAG_ASSIGNIVAR "objc_assign_ivar"
+#define TAG_ASSIGNGLOBAL "objc_assign_global"
+#define TAG_ASSIGNSTRONGCAST "objc_assign_strongCast"
+
+/* Branch entry points. All that matters here are the addresses;
+ functions with these names do not really exist in libobjc. */
+
+#define TAG_MSGSEND_FAST "objc_msgSend_Fast"
+#define TAG_ASSIGNIVAR_FAST "objc_assign_ivar_Fast"
+
+#define OFFS_MSGSEND_FAST 0xFFFEFF00
+#define OFFS_ASSIGNIVAR_FAST 0xFFFEFEC0
+
+#define TAG_CXX_CONSTRUCT ".cxx_construct"
+#define TAG_CXX_DESTRUCT ".cxx_destruct"
+/* APPLE LOCAL end mainline */
+
/* GNU-specific tags. */
#define TAG_EXECCLASS "__objc_exec_class"
#define TAG_GNUINIT "__objc_gnu_init"
+/* APPLE LOCAL begin mainline */
+/* Flags for lookup_method_static(). */
+#define OBJC_LOOKUP_CLASS 1 /* Look for class methods. */
+#define OBJC_LOOKUP_NO_SUPER 2 /* Do not examine superclasses. */
+/* APPLE LOCAL end mainline */
+
/* The OCTI_... enumeration itself is in objc/objc-act.h. */
tree objc_global_trees[OCTI_MAX];
@@ -456,6 +530,19 @@ static GTY((param_is (struct string_descriptor))) htab_t string_htab;
static hashval_t string_hash (const void *);
static int string_eq (const void *, const void *);
+/* APPLE LOCAL begin mainline */
+/* Store the EH-volatilized types in a hash table, for easy retrieval. */
+struct volatilized_type GTY(())
+{
+ tree type;
+};
+
+static GTY((param_is (struct volatilized_type))) htab_t volatilized_htab;
+
+static hashval_t volatilized_hash (const void *);
+static int volatilized_eq (const void *, const void *);
+
+/* APPLE LOCAL end mainline */
FILE *gen_declaration_file;
/* Tells "encode_pointer/encode_aggregate" whether we are generating
@@ -595,10 +682,12 @@ objc_finish_file (void)
instantiate_pending_templates (0);
#endif
+ /* APPLE LOCAL begin mainline */
/* Finalize Objective-C runtime data. No need to generate tables
- and code if only checking syntax. */
- if (!flag_syntax_only)
+ and code if only checking syntax, or if generating a PCH file. */
+ if (!flag_syntax_only && !pch_file)
finish_objc ();
+ /* APPLE LOCAL end mainline */
if (gen_declaration_file)
fclose (gen_declaration_file);
@@ -746,6 +835,13 @@ objc_continue_implementation (void)
void
objc_finish_implementation (void)
{
+ /* APPLE LOCAL begin mainline */
+#ifdef OBJCPLUS
+ if (flag_objc_call_cxx_cdtors)
+ objc_generate_cxx_cdtors ();
+#endif
+ /* APPLE LOCAL end mainline */
+
if (objc_implementation_context)
{
finish_class (objc_implementation_context);
@@ -839,352 +935,529 @@ objc_is_class_id (tree type)
}
-int
-objc_types_compatible_p (tree type1, tree type2)
+/* APPLE LOCAL begin mainline */
+/* The 'objc_types_compatible_p' and 'objc_comptypes' routines
+ have been removed. */
+
+/* Construct a C struct with tag NAME, a base struct with tag
+ SUPER_NAME (if any), and FIELDS indicated. */
+
+static tree
+objc_build_struct (tree name, tree fields, tree super_name)
+{
+ tree s = start_struct (RECORD_TYPE, name);
+ tree super = (super_name ? xref_tag (RECORD_TYPE, super_name) : NULL_TREE);
+ /* APPLE LOCAL mainline */
+ tree t, objc_info = NULL_TREE;
+
+ if (super)
+ {
+ /* Prepend a packed variant of the base class into the layout. This
+ is necessary to preserve ObjC ABI compatibility. */
+ tree base = build_decl (FIELD_DECL, NULL_TREE, super);
+ tree field = TYPE_FIELDS (super);
+
+ while (field && TREE_CHAIN (field)
+ && TREE_CODE (TREE_CHAIN (field)) == FIELD_DECL)
+ field = TREE_CHAIN (field);
+
+ /* For ObjC ABI purposes, the "packed" size of a base class is the
+ the sum of the offset and the size (in bits) of the last field
+ in the class. */
+ DECL_SIZE (base)
+ = (field && TREE_CODE (field) == FIELD_DECL
+ ? size_binop (PLUS_EXPR,
+ size_binop (PLUS_EXPR,
+ size_binop
+ (MULT_EXPR,
+ convert (bitsizetype,
+ DECL_FIELD_OFFSET (field)),
+ bitsize_int (BITS_PER_UNIT)),
+ DECL_FIELD_BIT_OFFSET (field)),
+ DECL_SIZE (field))
+ : bitsize_zero_node);
+ DECL_SIZE_UNIT (base)
+ = size_binop (FLOOR_DIV_EXPR, convert (sizetype, DECL_SIZE (base)),
+ size_int (BITS_PER_UNIT));
+ DECL_ARTIFICIAL (base) = 1;
+ DECL_ALIGN (base) = 1;
+ DECL_FIELD_CONTEXT (base) = s;
+#ifdef OBJCPLUS
+ DECL_FIELD_IS_BASE (base) = 1;
+
+ if (fields)
+ TREE_NO_WARNING (fields) = 1; /* Suppress C++ ABI warnings -- we */
+#endif /* are following the ObjC ABI here. */
+ TREE_CHAIN (base) = fields;
+ fields = base;
+ }
+
+ /* APPLE LOCAL begin mainline */
+ /* NB: Calling finish_struct() may cause type TYPE_LANG_SPECIFIC fields
+ in all variants of this RECORD_TYPE to be clobbered, but it is therein
+ that we store protocol conformance info (e.g., 'NSObject <MyProtocol>').
+ Hence, we must squirrel away the ObjC-specific information before calling
+ finish_struct(), and then reinstate it afterwards. */
+
+ for (t = TYPE_NEXT_VARIANT (s); t; t = TYPE_NEXT_VARIANT (t))
+ objc_info
+ = chainon (objc_info,
+ build_tree_list (NULL_TREE, TYPE_OBJC_INFO (t)));
+
+ /* APPLE LOCAL end mainline */
+ s = finish_struct (s, fields, NULL_TREE);
+ /* APPLE LOCAL begin mainline */
+
+ for (t = TYPE_NEXT_VARIANT (s); t;
+ t = TYPE_NEXT_VARIANT (t), objc_info = TREE_CHAIN (objc_info))
+ TYPE_OBJC_INFO (t) = TREE_VALUE (objc_info);
+
+ /* APPLE LOCAL end mainline */
+ /* Use TYPE_BINFO structures to point at the super class, if any. */
+ objc_xref_basetypes (s, super);
+
+ return s;
+}
+
+/* Mark DECL as being 'volatile' for purposes of Darwin _setjmp()/_longjmp()
+ exception handling. Called from objc_mark_locals_volatile(). */
+void
+objc_volatilize_decl (tree decl)
+{
+ /* Do not mess with variables that are 'static' or (already)
+ 'volatile'. */
+ if (!TREE_THIS_VOLATILE (decl) && !TREE_STATIC (decl)
+ && (TREE_CODE (decl) == VAR_DECL
+ || TREE_CODE (decl) == PARM_DECL))
+ {
+ tree t = TREE_TYPE (decl);
+ struct volatilized_type key;
+ void **loc;
+
+ t = build_qualified_type (t, (TYPE_QUALS (t)
+ | TYPE_QUAL_VOLATILE));
+ key.type = t;
+ loc = htab_find_slot (volatilized_htab, &key, INSERT);
+
+ if (!*loc)
+ {
+ *loc = ggc_alloc (sizeof (key));
+ ((struct volatilized_type *) *loc)->type = t;
+ }
+
+ TREE_TYPE (decl) = t;
+ TREE_THIS_VOLATILE (decl) = 1;
+ TREE_SIDE_EFFECTS (decl) = 1;
+ DECL_REGISTER (decl) = 0;
+#ifndef OBJCPLUS
+ C_DECL_REGISTER (decl) = 0;
+#endif
+ }
+}
+
+/* Check if protocol PROTO is adopted (directly or indirectly) by class CLS
+ (including its categoreis and superclasses) or by object type TYP.
+ Issue a warning if PROTO is not adopted anywhere and WARN is set. */
+
+static bool
+objc_lookup_protocol (tree proto, tree cls, tree typ, bool warn)
{
+ bool class_type = (cls != NULL_TREE);
- if (objc_is_object_ptr (type1) || objc_is_object_ptr (type2)
- || objc_is_class_name (type1) || objc_is_class_name (type2))
+ while (cls)
{
- return lhd_types_compatible_p (type1, type2);
+ tree c;
+
+ /* Check protocols adopted by the class and its categories. */
+ for (c = cls; c; c = CLASS_CATEGORY_LIST (c))
+ {
+ if (lookup_protocol_in_reflist (CLASS_PROTOCOL_LIST (c), proto))
+ return true;
+ }
+
+ /* Repeat for superclasses. */
+ cls = lookup_interface (CLASS_SUPER_NAME (cls));
}
- else
+
+ /* Check for any protocols attached directly to the object type. */
+ if (TYPE_HAS_OBJC_INFO (typ))
{
-#ifdef OBJCPLUS
- return cxx_types_compatible_p (type1, type2);
-#else
- return c_types_compatible_p (type1, type2);
-#endif
+ if (lookup_protocol_in_reflist (TYPE_OBJC_PROTOCOL_LIST (typ), proto))
+ return true;
+ }
+
+ if (warn)
+ {
+ strcpy (errbuf, class_type ? "class \'" : "type \'");
+ gen_type_name_0 (class_type ? typ : TYPE_POINTER_TO (typ));
+ strcat (errbuf, "\' does not ");
+ /* NB: Types 'id' and 'Class' cannot reasonably be described as
+ "implementing" a given protocol, since they do not have an
+ implementation. */
+ strcat (errbuf, class_type ? "implement" : "conform to");
+ strcat (errbuf, " the \'");
+ strcat (errbuf, IDENTIFIER_POINTER (PROTOCOL_NAME (proto)));
+ strcat (errbuf, "\' protocol");
+ warning (errbuf);
+ }
+
+ return false;
+}
+
+/* Check if class RCLS and instance struct type RTYP conform to at least the
+ same protocols that LCLS and LTYP conform to. */
+
+static bool
+objc_compare_protocols (tree lcls, tree ltyp, tree rcls, tree rtyp, bool warn)
+{
+ tree p;
+ bool have_lproto = false;
+
+ while (lcls)
+ {
+ /* NB: We do _not_ look at categories defined for LCLS; these may or
+ may not get loaded in, and therefore it is unreasonable to require
+ that RCLS/RTYP must implement any of their protocols. */
+ for (p = CLASS_PROTOCOL_LIST (lcls); p; p = TREE_CHAIN (p))
+ {
+ have_lproto = true;
+
+ if (!objc_lookup_protocol (TREE_VALUE (p), rcls, rtyp, warn))
+ return warn;
+ }
+
+ /* Repeat for superclasses. */
+ lcls = lookup_interface (CLASS_SUPER_NAME (lcls));
}
+
+ /* Check for any protocols attached directly to the object type. */
+ if (TYPE_HAS_OBJC_INFO (ltyp))
+ {
+ for (p = TYPE_OBJC_PROTOCOL_LIST (ltyp); p; p = TREE_CHAIN (p))
+ {
+ have_lproto = true;
+
+ if (!objc_lookup_protocol (TREE_VALUE (p), rcls, rtyp, warn))
+ return warn;
+ }
+ }
+
+ /* NB: If LTYP and LCLS have no protocols to search for, return 'true'
+ vacuously, _unless_ RTYP is a protocol-qualified 'id'. We can get
+ away with simply checking for 'id' or 'Class' (!RCLS), since this
+ routine will not get called in other cases. */
+ return have_lproto || (rcls != NULL_TREE);
}
+/* APPLE LOCAL begin 4154928 */
+/* Given two types TYPE1 and TYPE2, return their least common ancestor.
+ Both TYPE1 and TYPE2 must be pointers, and already determined to be
+ compatible by objc_compare_types() below. */
-/* Return 1 if LHS and RHS are compatible types for assignment or
- various other operations. Return 0 if they are incompatible, and
- return -1 if we choose to not decide (because the types are really
- just C types, not ObjC specific ones). When the operation is
- REFLEXIVE (typically comparisons), check for compatibility in
- either direction; when it's not (typically assignments), don't.
+tree
+objc_common_type (tree type1, tree type2)
+{
+ tree inner1 = TREE_TYPE (type1), inner2 = TREE_TYPE (type2);
- This function is called in two cases: when both lhs and rhs are
- pointers to records (in which case we check protocols too), and
- when both lhs and rhs are records (in which case we check class
- inheritance only).
+ while (POINTER_TYPE_P (inner1))
+ {
+ inner1 = TREE_TYPE (inner1);
+ inner2 = TREE_TYPE (inner2);
+ }
+
+ /* If one type is derived from another, return the base type. */
+ if (DERIVED_FROM_P (inner1, inner2))
+ return type1;
+ else if (DERIVED_FROM_P (inner2, inner1))
+ return type2;
- Warnings about classes/protocols not implementing a protocol are
- emitted here (multiple of those warnings might be emitted for a
- single line!); generic warnings about incompatible assignments and
- lacks of casts in comparisons are/must be emitted by the caller if
- we return 0.
+ /* If both types are 'Class', return 'Class'. */
+ if (objc_is_class_id (inner1) && objc_is_class_id (inner2))
+ return objc_class_type;
+
+ /* Otherwise, return 'id'. */
+ return objc_object_type;
+}
+
+/* APPLE LOCAL end 4154928 */
+/* Determine if it is permissible to assign (if ARGNO is greater than -3)
+ an instance of RTYP to an instance of LTYP or to compare the two
+ (if ARGNO is equal to -3), per ObjC type system rules. Before
+ returning 'true', this routine may issue warnings related to, e.g.,
+ protocol conformance. When returning 'false', the routine must
+ produce absolutely no warnings; the C or C++ front-end will do so
+ instead, if needed. If either LTYP or RTYP is not an Objective-C type,
+ the routine must return 'false'.
+
+ The ARGNO parameter is encoded as follows:
+ >= 1 Parameter number (CALLEE contains function being called);
+ 0 Return value;
+ -1 Assignment;
+ -2 Initialization;
+ -3 Comparison (LTYP and RTYP may match in either direction).
*/
-int
-objc_comptypes (tree lhs, tree rhs, int reflexive)
+bool
+objc_compare_types (tree ltyp, tree rtyp, int argno, tree callee)
{
- /* New clause for protocols. */
+ tree lcls, rcls, lproto, rproto;
+ bool pointers_compatible;
- /* Here we manage the case of a POINTER_TYPE = POINTER_TYPE. We only
- manage the ObjC ones, and leave the rest to the C code. */
- if (TREE_CODE (lhs) == POINTER_TYPE
- && TREE_CODE (TREE_TYPE (lhs)) == RECORD_TYPE
- && TREE_CODE (rhs) == POINTER_TYPE
- && TREE_CODE (TREE_TYPE (rhs)) == RECORD_TYPE)
+ /* We must be dealing with pointer types */
+ if (!POINTER_TYPE_P (ltyp) || !POINTER_TYPE_P (rtyp))
+ return false;
+
+ do
{
- int lhs_is_proto = IS_PROTOCOL_QUALIFIED_UNTYPED (lhs);
- int rhs_is_proto = IS_PROTOCOL_QUALIFIED_UNTYPED (rhs);
+ ltyp = TREE_TYPE (ltyp); /* Remove indirections. */
+ rtyp = TREE_TYPE (rtyp);
+ }
+ while (POINTER_TYPE_P (ltyp) && POINTER_TYPE_P (rtyp));
- if (lhs_is_proto)
- {
- tree lproto, lproto_list = TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (lhs));
- tree rproto, rproto_list;
- tree p;
+ /* Past this point, we are only interested in ObjC class instances,
+ or 'id' or 'Class'. */
+ if (TREE_CODE (ltyp) != RECORD_TYPE || TREE_CODE (rtyp) != RECORD_TYPE)
+ return false;
- /* <Protocol> = <Protocol> */
- if (rhs_is_proto)
- {
- /* Class <Protocol> != id <Protocol>;
- id <Protocol> != Class <Protocol> */
- if (IS_ID (lhs) != IS_ID (rhs))
- return 0;
+ if (!objc_is_object_id (ltyp) && !objc_is_class_id (ltyp)
+ && !TYPE_HAS_OBJC_INFO (ltyp))
+ return false;
- rproto_list = TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (rhs));
+ if (!objc_is_object_id (rtyp) && !objc_is_class_id (rtyp)
+ && !TYPE_HAS_OBJC_INFO (rtyp))
+ return false;
- if (!reflexive)
- {
- /* An assignment between objects of type 'id
- <Protocol>'; make sure the protocol on the lhs is
- supported by the object on the rhs. */
- for (lproto = lproto_list; lproto;
- lproto = TREE_CHAIN (lproto))
- {
- p = TREE_VALUE (lproto);
- rproto = lookup_protocol_in_reflist (rproto_list, p);
+ /* Past this point, we are committed to returning 'true' to the caller.
+ However, we can still warn about type and/or protocol mismatches. */
- if (!rproto)
- warning
- ("object does not conform to the %qs protocol",
- IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
- }
- return 1;
- }
- else
- {
- /* Obscure case - a comparison between two objects
- of type 'id <Protocol>'. Check that either the
- protocol on the lhs is supported by the object on
- the rhs, or viceversa. */
-
- /* Check if the protocol on the lhs is supported by the
- object on the rhs. */
- for (lproto = lproto_list; lproto;
- lproto = TREE_CHAIN (lproto))
- {
- p = TREE_VALUE (lproto);
- rproto = lookup_protocol_in_reflist (rproto_list, p);
-
- if (!rproto)
- {
- /* Check failed - check if the protocol on the rhs
- is supported by the object on the lhs. */
- for (rproto = rproto_list; rproto;
- rproto = TREE_CHAIN (rproto))
- {
- p = TREE_VALUE (rproto);
- lproto = lookup_protocol_in_reflist (lproto_list,
- p);
-
- if (!lproto)
- {
- /* This check failed too: incompatible */
- return 0;
- }
- }
- return 1;
- }
- }
- return 1;
- }
- }
- /* <Protocol> = <class> * */
- else if (TYPED_OBJECT (TREE_TYPE (rhs)))
- {
- tree rname = OBJC_TYPE_NAME (TREE_TYPE (rhs));
- tree rinter;
+ if (TYPE_HAS_OBJC_INFO (ltyp))
+ {
+ lcls = TYPE_OBJC_INTERFACE (ltyp);
+ lproto = TYPE_OBJC_PROTOCOL_LIST (ltyp);
+ }
+ else
+ lcls = lproto = NULL_TREE;
- /* Class <Protocol> != <class> * */
- if (IS_CLASS (lhs))
- return 0;
+ if (TYPE_HAS_OBJC_INFO (rtyp))
+ {
+ rcls = TYPE_OBJC_INTERFACE (rtyp);
+ rproto = TYPE_OBJC_PROTOCOL_LIST (rtyp);
+ }
+ else
+ rcls = rproto = NULL_TREE;
- /* Make sure the protocol is supported by the object on
- the rhs. */
- for (lproto = lproto_list; lproto; lproto = TREE_CHAIN (lproto))
- {
- p = TREE_VALUE (lproto);
- rproto = 0;
- rinter = lookup_interface (rname);
+ /* If either type is an unqualified 'id', we're done. */
+ if ((!lproto && objc_is_object_id (ltyp))
+ || (!rproto && objc_is_object_id (rtyp)))
+ return true;
- while (rinter && !rproto)
- {
- tree cat;
-
- rproto_list = CLASS_PROTOCOL_LIST (rinter);
- rproto = lookup_protocol_in_reflist (rproto_list, p);
- /* If the underlying ObjC class does not have
- the protocol we're looking for, check for "one-off"
- protocols (e.g., `NSObject<MyProt> *foo;') attached
- to the rhs. */
- if (!rproto && TYPE_HAS_OBJC_INFO (TREE_TYPE (rhs)))
- {
- rproto_list = TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (rhs));
- rproto = lookup_protocol_in_reflist (rproto_list, p);
- }
-
- /* Check for protocols adopted by categories. */
- cat = CLASS_CATEGORY_LIST (rinter);
- while (cat && !rproto)
- {
- rproto_list = CLASS_PROTOCOL_LIST (cat);
- rproto = lookup_protocol_in_reflist (rproto_list, p);
- cat = CLASS_CATEGORY_LIST (cat);
- }
-
- rinter = lookup_interface (CLASS_SUPER_NAME (rinter));
- }
+ pointers_compatible = (TYPE_MAIN_VARIANT (ltyp) == TYPE_MAIN_VARIANT (rtyp));
- if (!rproto)
- warning ("class %qs does not implement the %qs protocol",
- IDENTIFIER_POINTER (OBJC_TYPE_NAME (TREE_TYPE (rhs))),
- IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
- }
- return 1;
- }
- /* id <Protocol> = id; Class <Protocol> = id */
- else if (objc_is_object_id (TREE_TYPE (rhs)))
- {
- return 1;
- }
- /* id <Protocol> != Class; Class <Protocol> = Class */
- else if (objc_is_class_id (TREE_TYPE (rhs)))
- {
- return IS_CLASS (lhs);
- }
- /* <Protocol> = ?? : let comptypes decide. */
- return -1;
- }
- else if (rhs_is_proto)
- {
- /* <class> * = <Protocol> */
- if (TYPED_OBJECT (TREE_TYPE (lhs)))
- {
- /* <class> * != Class <Protocol> */
- if (IS_CLASS (rhs))
- return 0;
+ /* If the underlying types are the same, and at most one of them has
+ a protocol list, we do not need to issue any diagnostics. */
+ if (pointers_compatible && (!lproto || !rproto))
+ return true;
- if (reflexive)
- {
- tree rname = OBJC_TYPE_NAME (TREE_TYPE (lhs));
- tree rinter;
- tree rproto, rproto_list = TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (rhs));
-
- /* Make sure the protocol is supported by the object on
- the lhs. */
- for (rproto = rproto_list; rproto;
- rproto = TREE_CHAIN (rproto))
- {
- tree p = TREE_VALUE (rproto);
- tree lproto = 0;
- rinter = lookup_interface (rname);
-
- while (rinter && !lproto)
- {
- tree cat;
-
- tree lproto_list = CLASS_PROTOCOL_LIST (rinter);
- lproto = lookup_protocol_in_reflist (lproto_list, p);
- /* If the underlying ObjC class does not
- have the protocol we're looking for,
- check for "one-off" protocols (e.g.,
- `NSObject<MyProt> *foo;') attached to the
- lhs. */
- if (!lproto && TYPE_HAS_OBJC_INFO (TREE_TYPE (lhs)))
- {
- lproto_list = TYPE_OBJC_PROTOCOL_LIST
- (TREE_TYPE (lhs));
- lproto = lookup_protocol_in_reflist
- (lproto_list, p);
- }
-
- /* Check for protocols adopted by categories. */
- cat = CLASS_CATEGORY_LIST (rinter);
- while (cat && !lproto)
- {
- lproto_list = CLASS_PROTOCOL_LIST (cat);
- lproto = lookup_protocol_in_reflist (lproto_list,
- p);
- cat = CLASS_CATEGORY_LIST (cat);
- }
-
- rinter = lookup_interface (CLASS_SUPER_NAME
- (rinter));
- }
-
- if (!lproto)
- warning ("class %qs does not implement the %qs protocol",
- IDENTIFIER_POINTER (OBJC_TYPE_NAME
- (TREE_TYPE (lhs))),
- IDENTIFIER_POINTER (PROTOCOL_NAME (p)));
- }
- return 1;
- }
- else
- return 0;
- }
- /* id = id <Protocol>; id = Class <Protocol> */
- else if (objc_is_object_id (TREE_TYPE (lhs)))
- {
- return 1;
- }
- /* Class != id <Protocol>; Class = Class <Protocol> */
- else if (objc_is_class_id (TREE_TYPE (lhs)))
- {
- return IS_CLASS (rhs);
- }
- /* ??? = <Protocol> : let comptypes decide */
- else
- {
- return -1;
- }
- }
- else
+ /* If exactly one of the types is 'Class', issue a diagnostic; any
+ exceptions of this rule have already been handled. */
+ if (objc_is_class_id (ltyp) ^ objc_is_class_id (rtyp))
+ pointers_compatible = false;
+ /* Otherwise, check for inheritance relations. */
+ else
+ {
+ if (!pointers_compatible)
+ pointers_compatible
+ = (objc_is_object_id (ltyp) || objc_is_object_id (rtyp));
+
+ if (!pointers_compatible)
+ pointers_compatible = DERIVED_FROM_P (ltyp, rtyp);
+
+ if (!pointers_compatible && argno == -3)
+ pointers_compatible = DERIVED_FROM_P (rtyp, ltyp);
+ }
+
+ /* If the pointers match modulo protocols, check for protocol conformance
+ mismatches. */
+ if (pointers_compatible)
+ {
+ pointers_compatible = objc_compare_protocols (lcls, ltyp, rcls, rtyp,
+ argno != -3);
+
+ if (!pointers_compatible && argno == -3)
+ pointers_compatible = objc_compare_protocols (rcls, rtyp, lcls, ltyp,
+ argno != -3);
+ }
+
+ if (!pointers_compatible)
+ {
+ /* NB: For the time being, we shall make our warnings look like their
+ C counterparts. In the future, we may wish to make them more
+ ObjC-specific. */
+ switch (argno)
{
- /* Attention: we shouldn't defer to comptypes here. One bad
- side effect would be that we might loose the REFLEXIVE
- information.
- */
- lhs = TREE_TYPE (lhs);
- rhs = TREE_TYPE (rhs);
+ case -3:
+ warning ("comparison of distinct Objective-C types lacks a cast");
+ break;
+
+ case -2:
+ warning ("initialization from distinct Objective-C type");
+ break;
+
+ case -1:
+ warning ("assignment from distinct Objective-C type");
+ break;
+
+ case 0:
+ warning ("distinct Objective-C type in return");
+ break;
+
+ default:
+ warning ("passing argument %d of %qE from distinct "
+ "Objective-C type", argno, callee);
+ break;
}
}
- if (TREE_CODE (lhs) != RECORD_TYPE || TREE_CODE (rhs) != RECORD_TYPE)
+ return true;
+}
+
+/* Check if LTYP and RTYP have the same type qualifiers. If either type
+ lives in the volatilized hash table, ignore the 'volatile' bit when
+ making the comparison. */
+
+bool
+objc_type_quals_match (tree ltyp, tree rtyp)
+{
+ int lquals = TYPE_QUALS (ltyp), rquals = TYPE_QUALS (rtyp);
+ struct volatilized_type key;
+
+ key.type = ltyp;
+
+ if (htab_find_slot (volatilized_htab, &key, NO_INSERT))
+ lquals &= ~TYPE_QUAL_VOLATILE;
+
+ key.type = rtyp;
+
+ if (htab_find_slot (volatilized_htab, &key, NO_INSERT))
+ rquals &= ~TYPE_QUAL_VOLATILE;
+
+ return (lquals == rquals);
+}
+
+#ifndef OBJCPLUS
+/* Determine if CHILD is derived from PARENT. The routine assumes that
+ both parameters are RECORD_TYPEs, and is non-reflexive. */
+
+static bool
+objc_derived_from_p (tree parent, tree child)
+{
+ parent = TYPE_MAIN_VARIANT (parent);
+
+ for (child = TYPE_MAIN_VARIANT (child);
+ TYPE_BINFO (child) && BINFO_N_BASE_BINFOS (TYPE_BINFO (child));)
{
- /* Nothing to do with ObjC - let immediately comptypes take
- responsibility for checking. */
- return -1;
+ child = TYPE_MAIN_VARIANT (BINFO_TYPE (BINFO_BASE_BINFO
+ (TYPE_BINFO (child),
+ 0)));
+
+ if (child == parent)
+ return true;
}
- /* `id' = `<class> *' `<class> *' = `id': always allow it.
- Please note that
- 'Object *o = [[Object alloc] init]; falls
- in the case <class> * = `id'.
- */
- if ((objc_is_object_id (lhs) && TYPED_OBJECT (rhs))
- || (objc_is_object_id (rhs) && TYPED_OBJECT (lhs)))
- return 1;
+ return false;
+}
+#endif
- /* `id' = `Class', `Class' = `id' */
+static tree
+objc_build_component_ref (tree datum, tree component)
+{
+ /* If COMPONENT is NULL, the caller is referring to the anonymous
+ base class field. */
+ if (!component)
+ {
+ tree base = TYPE_FIELDS (TREE_TYPE (datum));
- else if ((objc_is_object_id (lhs) && objc_is_class_id (rhs))
- || (objc_is_class_id (lhs) && objc_is_object_id (rhs)))
- return 1;
+ return build3 (COMPONENT_REF, TREE_TYPE (base), datum, base, NULL_TREE);
+ }
- /* `Class' != `<class> *' && `<class> *' != `Class'! */
- else if ((OBJC_TYPE_NAME (lhs) == objc_class_id && TYPED_OBJECT (rhs))
- || (OBJC_TYPE_NAME (rhs) == objc_class_id && TYPED_OBJECT (lhs)))
- return 0;
+ /* The 'build_component_ref' routine has been removed from the C++
+ front-end, but 'finish_class_member_access_expr' seems to be
+ a worthy substitute. */
+#ifdef OBJCPLUS
+ return finish_class_member_access_expr (datum, component);
+#else
+ return build_component_ref (datum, component);
+#endif
+}
+
+/* Recursively copy inheritance information rooted at BINFO. To do this,
+ we emulate the song and dance performed by cp/tree.c:copy_binfo(). */
+
+static tree
+objc_copy_binfo (tree binfo)
+{
+ tree btype = BINFO_TYPE (binfo);
+ tree binfo2 = make_tree_binfo (BINFO_N_BASE_BINFOS (binfo));
+ tree base_binfo;
+ int ix;
- /* `<class> *' = `<class> *' */
+ BINFO_TYPE (binfo2) = btype;
+ BINFO_OFFSET (binfo2) = BINFO_OFFSET (binfo);
+ BINFO_BASE_ACCESSES (binfo2) = BINFO_BASE_ACCESSES (binfo);
- else if (TYPED_OBJECT (lhs) && TYPED_OBJECT (rhs))
+ /* Recursively copy base binfos of BINFO. */
+ for (ix = 0; BINFO_BASE_ITERATE (binfo, ix, base_binfo); ix++)
{
- tree lname = OBJC_TYPE_NAME (lhs);
- tree rname = OBJC_TYPE_NAME (rhs);
- tree inter;
+ tree base_binfo2 = objc_copy_binfo (base_binfo);
- if (lname == rname)
- return 1;
+ BINFO_INHERITANCE_CHAIN (base_binfo2) = binfo2;
+ BINFO_BASE_APPEND (binfo2, base_binfo2);
+ }
+
+ return binfo2;
+}
- /* If the left hand side is a super class of the right hand side,
- allow it. */
- for (inter = lookup_interface (rname); inter;
- inter = lookup_interface (CLASS_SUPER_NAME (inter)))
- if (lname == CLASS_SUPER_NAME (inter))
- return 1;
+/* Record superclass information provided in BASETYPE for ObjC class REF.
+ This is loosely based on cp/decl.c:xref_basetypes(). */
- /* Allow the reverse when reflexive. */
- if (reflexive)
- for (inter = lookup_interface (lname); inter;
- inter = lookup_interface (CLASS_SUPER_NAME (inter)))
- if (rname == CLASS_SUPER_NAME (inter))
- return 1;
+static void
+objc_xref_basetypes (tree ref, tree basetype)
+{
+ tree binfo = make_tree_binfo (basetype ? 1 : 0);
- return 0;
+ TYPE_BINFO (ref) = binfo;
+ BINFO_OFFSET (binfo) = size_zero_node;
+ BINFO_TYPE (binfo) = ref;
+
+ if (basetype)
+ {
+ tree base_binfo = objc_copy_binfo (TYPE_BINFO (basetype));
+
+ BINFO_INHERITANCE_CHAIN (base_binfo) = binfo;
+ BINFO_BASE_ACCESSES (binfo) = VEC_alloc (tree, 1);
+ BINFO_BASE_APPEND (binfo, base_binfo);
+ BINFO_BASE_ACCESS_APPEND (binfo, access_public_node);
}
- else
- /* Not an ObjC type - let comptypes do the check. */
- return -1;
}
+static hashval_t
+volatilized_hash (const void *ptr)
+{
+ tree typ = ((struct volatilized_type *)ptr)->type;
+
+ return (hashval_t) typ;
+}
+
+static int
+volatilized_eq (const void *ptr1, const void *ptr2)
+{
+ tree typ1 = ((struct volatilized_type *)ptr1)->type;
+ tree typ2 = ((struct volatilized_type *)ptr2)->type;
+
+ return typ1 == typ2;
+}
+
+/* APPLE LOCAL end mainline */
/* Called from finish_decl. */
void
@@ -1439,6 +1712,19 @@ synth_module_prologue (void)
objc_super_type = build_pointer_type (xref_tag (RECORD_TYPE,
get_identifier (TAG_SUPER)));
+ /* APPLE LOCAL begin mainline */
+ /* Declare pointers to method and ivar lists. */
+ objc_method_list_ptr = build_pointer_type
+ (xref_tag (RECORD_TYPE,
+ get_identifier (UTAG_METHOD_LIST)));
+ objc_method_proto_list_ptr
+ = build_pointer_type (xref_tag (RECORD_TYPE,
+ get_identifier (UTAG_METHOD_PROTOTYPE_LIST)));
+ objc_ivar_list_ptr = build_pointer_type
+ (xref_tag (RECORD_TYPE,
+ get_identifier (UTAG_IVAR_LIST)));
+ /* APPLE LOCAL end mainline */
+
if (flag_next_runtime)
{
/* NB: In order to call one of the ..._stret (struct-returning)
@@ -1468,6 +1754,23 @@ synth_module_prologue (void)
type, 0, NOT_BUILT_IN,
NULL, NULL_TREE);
+ /* APPLE LOCAL begin mainline */
+ /* id objc_msgSend_Fast (id, SEL, ...)
+ __attribute__ ((hard_coded_address (OFFS_MSGSEND_FAST))); */
+#ifdef TARGET_POWERPC
+ umsg_fast_decl = builtin_function (TAG_MSGSEND_FAST,
+ type, 0, NOT_BUILT_IN,
+ NULL, NULL_TREE);
+ DECL_ATTRIBUTES (umsg_fast_decl)
+ = tree_cons (get_identifier ("hard_coded_address"),
+ build_int_cst (NULL_TREE, OFFS_MSGSEND_FAST),
+ NULL_TREE);
+#else
+ /* Not needed on x86 (at least for now). */
+ umsg_fast_decl = umsg_decl;
+#endif
+ /* APPLE LOCAL end mainline */
+
/* id objc_msgSendSuper (struct objc_super *, SEL, ...); */
/* id objc_msgSendSuper_stret (struct objc_super *, SEL, ...); */
type
@@ -1567,10 +1870,8 @@ synth_module_prologue (void)
/* Pre-build the following entities - for speed/convenience. */
self_id = get_identifier ("self");
ucmd_id = get_identifier ("_cmd");
-#ifndef OBJCPLUS
- /* The C++ front-end does not appear to grok __attribute__((__unused__)). */
- unused_list = build_tree_list (get_identifier ("__unused__"), NULL_TREE);
-#endif
+ /* APPLE LOCAL mainline */
+ /* 'unused_list' removed. */
#ifdef OBJCPLUS
pop_lang_context ();
@@ -1595,11 +1896,13 @@ synth_module_prologue (void)
static int
check_string_class_template (void)
{
- tree field_decl = TYPE_FIELDS (constant_string_type);
+ /* APPLE LOCAL 4149909 */
+ tree field_decl = objc_get_class_ivars (constant_string_id);
#define AT_LEAST_AS_LARGE_AS(F, T) \
(F && TREE_CODE (F) == FIELD_DECL \
- && (TREE_INT_CST_LOW (DECL_SIZE (F)) \
+ /* APPLE LOCAL 4149909 */ \
+ && (TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (F))) \
>= TREE_INT_CST_LOW (TYPE_SIZE (T))))
if (!AT_LEAST_AS_LARGE_AS (field_decl, ptr_type_node))
@@ -1618,6 +1921,29 @@ check_string_class_template (void)
/* Avoid calling `check_string_class_template ()' more than once. */
static GTY(()) int string_layout_checked;
+/* APPLE LOCAL begin 4149909 */
+/* Construct an internal string layout to be used as a template for
+ creating NSConstantString/NXConstantString instances. */
+
+static tree
+objc_build_internal_const_str_type (void)
+{
+ tree type = (*lang_hooks.types.make_type) (RECORD_TYPE);
+ tree fields = build_decl (FIELD_DECL, NULL_TREE, ptr_type_node);
+ tree field = build_decl (FIELD_DECL, NULL_TREE, ptr_type_node);
+
+ TREE_CHAIN (field) = fields; fields = field;
+ field = build_decl (FIELD_DECL, NULL_TREE, unsigned_type_node);
+ TREE_CHAIN (field) = fields; fields = field;
+ /* NB: The finish_builtin_struct() routine expects FIELD_DECLs in
+ reverse order! */
+ finish_builtin_struct (type, "__builtin_ObjCString",
+ fields, NULL_TREE);
+
+ return type;
+}
+
+/* APPLE LOCAL end 4149909 */
/* Custom build_string which sets TREE_TYPE! */
static tree
@@ -1674,12 +2000,23 @@ objc_build_string_object (tree string)
TREE_SET_CODE (string, STRING_CST);
length = TREE_STRING_LENGTH (string) - 1;
+ /* APPLE LOCAL begin constant cfstrings */
+ /* The target may have different ideas on how to construct an
+ ObjC string literal. On Darwin (Mac OS X), for example,
+ we may wish to obtain a constant CFString reference instead. */
+ constructor = (*targetm.construct_objc_string) (string);
+ if (constructor)
+ return build_c_cast (objc_object_type, constructor);
+ /* APPLE LOCAL end constant cfstrings */
+
/* Check whether the string class being used actually exists and has the
correct ivar layout. */
if (!string_layout_checked)
{
string_layout_checked = -1;
constant_string_class = lookup_interface (constant_string_id);
+ /* APPLE LOCAL 4149909 */
+ internal_const_str_type = objc_build_internal_const_str_type ();
if (!constant_string_class
|| !(constant_string_type
@@ -1716,9 +2053,11 @@ objc_build_string_object (tree string)
*loc = desc = ggc_alloc (sizeof (*desc));
desc->literal = string;
- /* GNU: & ((NXConstantString) { NULL, string, length }) */
- /* NeXT: & ((NSConstantString) { isa, string, length }) */
- fields = TYPE_FIELDS (constant_string_type);
+ /* APPLE LOCAL begin 4149909 */
+ /* GNU: (NXConstantString *) & ((__builtin_ObjCString) { NULL, string, length }) */
+ /* NeXT: (NSConstantString *) & ((__builtin_ObjCString) { isa, string, length }) */
+ fields = TYPE_FIELDS (internal_const_str_type);
+ /* APPLE LOCAL end 4149909 */
initlist
= build_tree_list (fields,
flag_next_runtime
@@ -1730,13 +2069,15 @@ objc_build_string_object (tree string)
fields = TREE_CHAIN (fields);
initlist = tree_cons (fields, build_int_cst (NULL_TREE, length),
initlist);
- constructor = objc_build_constructor (constant_string_type,
+ /* APPLE LOCAL 4149909 */
+ constructor = objc_build_constructor (internal_const_str_type,
nreverse (initlist));
TREE_INVARIANT (constructor) = true;
if (!flag_next_runtime)
constructor
- = objc_add_static_instance (constructor, constant_string_type);
+ /* APPLE LOCAL 4149909 */
+ = objc_add_static_instance (constructor, internal_const_str_type);
else
{
var = build_decl (CONST_DECL, NULL, TREE_TYPE (constructor));
@@ -1748,7 +2089,10 @@ objc_build_string_object (tree string)
desc->constructor = constructor;
}
- addr = build_unary_op (ADDR_EXPR, desc->constructor, 1);
+ /* APPLE LOCAL begin 4149909 */
+ addr = convert (build_pointer_type (constant_string_type),
+ build_unary_op (ADDR_EXPR, desc->constructor, 1));
+ /* APPLE LOCAL end 4149909 */
return addr;
}
@@ -2547,18 +2891,42 @@ add_class_reference (tree ident)
tree
objc_get_class_reference (tree ident)
{
- tree orig_ident;
+ /* APPLE LOCAL begin mainline */
+ tree orig_ident = (DECL_P (ident)
+ ? DECL_NAME (ident)
+ : TYPE_P (ident)
+ ? OBJC_TYPE_NAME (ident)
+ : ident);
+ bool local_scope = false;
+ /* APPLE LOCAL end mainline */
#ifdef OBJCPLUS
if (processing_template_decl)
/* Must wait until template instantiation time. */
return build_min_nt (CLASS_REFERENCE_EXPR, ident);
+ /* APPLE LOCAL begin mainline */
+#endif
+
+ /* APPLE LOCAL end mainline */
if (TREE_CODE (ident) == TYPE_DECL)
- ident = DECL_NAME (ident);
+ /* APPLE LOCAL begin mainline */
+ ident = (DECL_ORIGINAL_TYPE (ident)
+ ? DECL_ORIGINAL_TYPE (ident)
+ : TREE_TYPE (ident));
+ /* APPLE LOCAL end mainline */
+
+/* APPLE LOCAL begin mainline */
+#ifdef OBJCPLUS
+ if (TYPE_P (ident) && TYPE_CONTEXT (ident)
+ && TYPE_CONTEXT (ident) != global_namespace)
+ local_scope = true;
+ /* APPLE LOCAL end mainline */
#endif
- orig_ident = ident;
+/* APPLE LOCAL mainline */
+/* 'orig_ident = ident' assignment removed. */
- if (!(ident = objc_is_class_name (ident)))
+ /* APPLE LOCAL mainline */
+ if (local_scope || !(ident = objc_is_class_name (ident)))
{
error ("%qs is not an Objective-C class name or alias",
IDENTIFIER_POINTER (orig_ident));
@@ -2684,7 +3052,22 @@ objc_declare_alias (tree alias_ident, tree class_ident)
else if (objc_is_class_name (alias_ident))
warning ("class %qs already exists", IDENTIFIER_POINTER (alias_ident));
else
- alias_chain = tree_cons (underlying_class, alias_ident, alias_chain);
+ /* APPLE LOCAL begin mainline */
+ {
+ /* Implement @compatibility_alias as a typedef. */
+#ifdef OBJCPLUS
+ push_lang_context (lang_name_c); /* extern "C" */
+#endif
+ lang_hooks.decls.pushdecl (build_decl
+ (TYPE_DECL,
+ alias_ident,
+ xref_tag (RECORD_TYPE, underlying_class)));
+#ifdef OBJCPLUS
+ pop_lang_context ();
+#endif
+ alias_chain = tree_cons (underlying_class, alias_ident, alias_chain);
+ }
+ /* APPLE LOCAL end mainline */
}
void
@@ -2806,21 +3189,293 @@ objc_is_object_ptr (tree type)
return ret;
}
+/* APPLE LOCAL begin mainline */
+static int
+objc_is_gcable_type (tree type, int or_strong_p)
+{
+ tree name;
+
+ if (!TYPE_P (type))
+ return 0;
+ if (objc_is_id (TYPE_MAIN_VARIANT (type)))
+ return 1;
+ if (or_strong_p && lookup_attribute ("objc_gc", TYPE_ATTRIBUTES (type)))
+ return 1;
+ if (TREE_CODE (type) != POINTER_TYPE && TREE_CODE (type) != INDIRECT_REF)
+ return 0;
+ type = TREE_TYPE (type);
+ if (TREE_CODE (type) != RECORD_TYPE)
+ return 0;
+ name = TYPE_NAME (type);
+ return (objc_is_class_name (name) != NULL_TREE);
+}
+
+static tree
+objc_substitute_decl (tree expr, tree oldexpr, tree newexpr)
+{
+ if (expr == oldexpr)
+ return newexpr;
+
+ switch (TREE_CODE (expr))
+ {
+ case COMPONENT_REF:
+ /* APPLE LOCAL begin mainline */
+ return objc_build_component_ref
+ (objc_substitute_decl (TREE_OPERAND (expr, 0),
+ oldexpr,
+ newexpr),
+ DECL_NAME (TREE_OPERAND (expr, 1)));
+ /* APPLE LOCAL end mainline */
+ case ARRAY_REF:
+ return build_array_ref (objc_substitute_decl (TREE_OPERAND (expr, 0),
+ oldexpr,
+ newexpr),
+ TREE_OPERAND (expr, 1));
+ case INDIRECT_REF:
+ return build_indirect_ref (objc_substitute_decl (TREE_OPERAND (expr, 0),
+ oldexpr,
+ newexpr), "->");
+ default:
+ return expr;
+ }
+}
+
+static tree
+objc_build_ivar_assignment (tree outervar, tree lhs, tree rhs)
+{
+ tree func_params;
+ /* The LHS parameter contains the expression 'outervar->memberspec';
+ we need to transform it into '&((typeof(outervar) *) 0)->memberspec',
+ where memberspec may be arbitrarily complex (e.g., 'g->f.d[2].g[3]').
+ */
+ tree offs
+ = objc_substitute_decl
+ (lhs, outervar, convert (TREE_TYPE (outervar), integer_zero_node));
+ tree func
+ = (flag_objc_direct_dispatch
+ ? objc_assign_ivar_fast_decl
+ : objc_assign_ivar_decl);
+
+ offs = convert (integer_type_node, build_unary_op (ADDR_EXPR, offs, 0));
+ offs = fold (offs);
+ func_params = tree_cons (NULL_TREE,
+ convert (objc_object_type, rhs),
+ tree_cons (NULL_TREE, convert (objc_object_type, outervar),
+ tree_cons (NULL_TREE, offs,
+ NULL_TREE)));
+
+ assemble_external (func);
+ return build_function_call (func, func_params);
+}
+
+static tree
+objc_build_global_assignment (tree lhs, tree rhs)
+{
+ tree func_params = tree_cons (NULL_TREE,
+ convert (objc_object_type, rhs),
+ tree_cons (NULL_TREE, convert (build_pointer_type (objc_object_type),
+ build_unary_op (ADDR_EXPR, lhs, 0)),
+ NULL_TREE));
+
+ assemble_external (objc_assign_global_decl);
+ return build_function_call (objc_assign_global_decl, func_params);
+}
+
+static tree
+objc_build_strong_cast_assignment (tree lhs, tree rhs)
+{
+ tree func_params = tree_cons (NULL_TREE,
+ convert (objc_object_type, rhs),
+ tree_cons (NULL_TREE, convert (build_pointer_type (objc_object_type),
+ build_unary_op (ADDR_EXPR, lhs, 0)),
+ NULL_TREE));
+
+ assemble_external (objc_assign_strong_cast_decl);
+ return build_function_call (objc_assign_strong_cast_decl, func_params);
+}
+
+static int
+objc_is_gcable_p (tree expr)
+{
+ return (TREE_CODE (expr) == COMPONENT_REF
+ ? objc_is_gcable_p (TREE_OPERAND (expr, 1))
+ : TREE_CODE (expr) == ARRAY_REF
+ ? (objc_is_gcable_p (TREE_TYPE (expr))
+ || objc_is_gcable_p (TREE_OPERAND (expr, 0)))
+ : TREE_CODE (expr) == ARRAY_TYPE
+ ? objc_is_gcable_p (TREE_TYPE (expr))
+ : TYPE_P (expr)
+ ? objc_is_gcable_type (expr, 1)
+ : (objc_is_gcable_p (TREE_TYPE (expr))
+ || (DECL_P (expr)
+ && lookup_attribute ("objc_gc", DECL_ATTRIBUTES (expr)))));
+}
+
+static int
+objc_is_ivar_reference_p (tree expr)
+{
+ return (TREE_CODE (expr) == ARRAY_REF
+ ? objc_is_ivar_reference_p (TREE_OPERAND (expr, 0))
+ : TREE_CODE (expr) == COMPONENT_REF
+ ? TREE_CODE (TREE_OPERAND (expr, 1)) == FIELD_DECL
+ : 0);
+}
+
+static int
+objc_is_global_reference_p (tree expr)
+{
+ return (TREE_CODE (expr) == INDIRECT_REF || TREE_CODE (expr) == PLUS_EXPR
+ ? objc_is_global_reference_p (TREE_OPERAND (expr, 0))
+ : DECL_P (expr)
+ ? (!DECL_CONTEXT (expr) || TREE_STATIC (expr))
+ : 0);
+}
+
+tree
+objc_generate_write_barrier (tree lhs, enum tree_code modifycode, tree rhs)
+{
+ tree result = NULL_TREE, outer;
+ int strong_cast_p = 0, outer_gc_p = 0, indirect_p = 0;
+
+ /* See if we have any lhs casts, and strip them out. NB: The lvalue casts
+ will have been transformed to the form '*(type *)&expr'. */
+ if (TREE_CODE (lhs) == INDIRECT_REF)
+ {
+ outer = TREE_OPERAND (lhs, 0);
+
+ while (!strong_cast_p
+ && (TREE_CODE (outer) == CONVERT_EXPR
+ || TREE_CODE (outer) == NOP_EXPR
+ || TREE_CODE (outer) == NON_LVALUE_EXPR))
+ {
+ tree lhstype = TREE_TYPE (outer);
+
+ /* Descend down the cast chain, and record the first objc_gc
+ attribute found. */
+ if (POINTER_TYPE_P (lhstype))
+ {
+ tree attr
+ = lookup_attribute ("objc_gc",
+ TYPE_ATTRIBUTES (TREE_TYPE (lhstype)));
+
+ if (attr)
+ strong_cast_p = 1;
+ }
+
+ outer = TREE_OPERAND (outer, 0);
+ }
+ }
+
+ /* If we have a __strong cast, it trumps all else. */
+ if (strong_cast_p)
+ {
+ if (modifycode != NOP_EXPR)
+ goto invalid_pointer_arithmetic;
+
+ if (warn_assign_intercept)
+ warning ("strong-cast assignment has been intercepted");
+
+ result = objc_build_strong_cast_assignment (lhs, rhs);
+
+ goto exit_point;
+ }
+
+ /* the lhs must be of a suitable type, regardless of its underlying
+ structure. */
+ if (!objc_is_gcable_p (lhs))
+ goto exit_point;
+
+ outer = lhs;
+
+ while (outer
+ && (TREE_CODE (outer) == COMPONENT_REF
+ || TREE_CODE (outer) == ARRAY_REF))
+ outer = TREE_OPERAND (outer, 0);
+
+ if (TREE_CODE (outer) == INDIRECT_REF)
+ {
+ outer = TREE_OPERAND (outer, 0);
+ indirect_p = 1;
+ }
+
+ outer_gc_p = objc_is_gcable_p (outer);
+
+ /* Handle ivar assignments. */
+ if (objc_is_ivar_reference_p (lhs))
+ {
+ /* if the struct to the left of the ivar is not an Objective-C object (__strong
+ doesn't cut it here), the best we can do here is suggest a cast. */
+ if (!objc_is_gcable_type (TREE_TYPE (outer), 0))
+ {
+ /* We may still be able to use the global write barrier... */
+ if (!indirect_p && objc_is_global_reference_p (outer))
+ goto global_reference;
+
+ suggest_cast:
+ if (modifycode == NOP_EXPR)
+ {
+ if (warn_assign_intercept)
+ warning ("strong-cast may possibly be needed");
+ }
+
+ goto exit_point;
+ }
+
+ if (modifycode != NOP_EXPR)
+ goto invalid_pointer_arithmetic;
+
+ if (warn_assign_intercept)
+ warning ("instance variable assignment has been intercepted");
+
+ result = objc_build_ivar_assignment (outer, lhs, rhs);
+
+ goto exit_point;
+ }
+
+ /* Likewise, intercept assignment to global/static variables if their type is
+ GC-marked. */
+ if (objc_is_global_reference_p (outer))
+ {
+ if (indirect_p)
+ goto suggest_cast;
+
+ global_reference:
+ if (modifycode != NOP_EXPR)
+ {
+ invalid_pointer_arithmetic:
+ if (outer_gc_p)
+ warning ("pointer arithmetic for garbage-collected objects not allowed");
+
+ goto exit_point;
+ }
+
+ if (warn_assign_intercept)
+ warning ("global/static variable assignment has been intercepted");
+
+ result = objc_build_global_assignment (lhs, rhs);
+ }
+
+ /* In all other cases, fall back to the normal mechanism. */
+ exit_point:
+ return result;
+}
+/* APPLE LOCAL end mainline */
+
static tree
lookup_interface (tree ident)
{
- tree chain;
+ /* APPLE LOCAL mainline */
+ /* tree chain; */
#ifdef OBJCPLUS
if (ident && TREE_CODE (ident) == TYPE_DECL)
ident = DECL_NAME (ident);
#endif
- for (chain = interface_chain; chain; chain = TREE_CHAIN (chain))
- {
- if (ident == CLASS_NAME (chain))
- return chain;
- }
- return NULL_TREE;
+ /* APPLE LOCAL begin mainline */
+ return (ident && TREE_CODE (ident) == IDENTIFIER_NODE
+ ? IDENTIFIER_INTERFACE_VALUE (ident)
+ : NULL_TREE);
+ /* APPLE LOCAL end mainline */
}
/* Implement @defs (<classname>) within struct bodies. */
@@ -2831,7 +3486,8 @@ objc_get_class_ivars (tree class_name)
tree interface = lookup_interface (class_name);
if (interface)
- return get_class_ivars (interface);
+ /* APPLE LOCAL mainline */
+ return get_class_ivars (interface, true);
error ("cannot find interface declaration for %qs",
IDENTIFIER_POINTER (class_name));
@@ -2843,7 +3499,8 @@ objc_get_class_ivars (tree class_name)
and for @defs constructs. */
static tree
-get_class_ivars (tree interface)
+/* APPLE LOCAL mainline */
+get_class_ivars (tree interface, bool inherited)
{
tree ivar_chain = copy_list (CLASS_RAW_IVARS (interface));
@@ -2854,6 +3511,11 @@ get_class_ivars (tree interface)
if (!CLASS_IVARS (interface))
CLASS_IVARS (interface) = ivar_chain;
+ /* APPLE LOCAL begin mainline */
+ if (!inherited)
+ return ivar_chain;
+
+ /* APPLE LOCAL end mainline */
while (CLASS_SUPER_NAME (interface))
{
/* Prepend super-class ivars. */
@@ -3011,9 +3673,19 @@ next_sjlj_build_enter_and_setjmp (void)
t = tree_cons (NULL, t, NULL);
enter = build_function_call (objc_exception_try_enter_decl, t);
- t = build_component_ref (cur_try_context->stack_decl,
- get_identifier ("buf"));
+ /* APPLE LOCAL begin mainline */
+ t = objc_build_component_ref (cur_try_context->stack_decl,
+ get_identifier ("buf"));
+ /* APPLE LOCAL end mainline */
t = build_fold_addr_expr (t);
+ /* APPLE LOCAL begin mainline */
+#ifdef OBJCPLUS
+ /* Convert _setjmp argument to type that is expected. */
+ if (TYPE_ARG_TYPES (TREE_TYPE (objc_setjmp_decl)))
+ t = convert (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (objc_setjmp_decl))), t);
+ else
+#endif
+ /* APPLE LOCAL end mainline */
t = convert (ptr_type_node, t);
t = tree_cons (NULL, t, NULL);
sj = build_function_call (objc_setjmp_decl, t);
@@ -3241,6 +3913,11 @@ objc_begin_try_stmt (location_t try_locus, tree body)
cur_try_context = c;
objc_init_exceptions ();
+ /* APPLE LOCAL begin mainline */
+
+ if (flag_objc_sjlj_exceptions)
+ objc_mark_locals_volatile (NULL);
+ /* APPLE LOCAL end mainline */
}
/* Called just after parsing "@catch (parm)". Open a binding level,
@@ -3286,7 +3963,8 @@ objc_begin_catch_clause (tree decl)
t = CATCH_TYPES (stmt);
if (t == error_mark_node)
continue;
- if (!t || objc_comptypes (TREE_TYPE (t), TREE_TYPE (type), 0) == 1)
+ /* APPLE LOCAL mainline */
+ if (!t || DERIVED_FROM_P (TREE_TYPE (t), TREE_TYPE (type)))
{
warning ("exception of type %<%T%> will be caught",
TREE_TYPE (type));
@@ -3336,7 +4014,8 @@ objc_build_finally_clause (location_t finally_locus, tree body)
/* Called to finalize a @try construct. */
-void
+/* APPLE LOCAL mainline */
+tree
objc_finish_try_stmt (void)
{
struct objc_try_context *c = cur_try_context;
@@ -3374,6 +4053,8 @@ objc_finish_try_stmt (void)
cur_try_context = c->outer;
free (c);
+ /* APPLE LOCAL mainline */
+ return stmt;
}
tree
@@ -3405,7 +4086,8 @@ objc_build_throw_stmt (tree throw_expr)
return add_stmt (build_function_call (objc_exception_throw_decl, args));
}
-void
+/* APPLE LOCAL mainline */
+tree
objc_build_synchronized (location_t start_locus, tree mutex, tree body)
{
tree args, call;
@@ -3425,7 +4107,8 @@ objc_build_synchronized (location_t start_locus, tree mutex, tree body)
/* Put the that and the body in a TRY_FINALLY. */
objc_begin_try_stmt (start_locus, body);
objc_build_finally_clause (input_location, call);
- objc_finish_try_stmt ();
+ /* APPLE LOCAL mainline */
+ return objc_finish_try_stmt ();
}
@@ -3507,6 +4190,44 @@ build_next_objc_exception_stuff (void)
OBJC_VOID_AT_END)));
objc_exception_match_decl
= builtin_function (TAG_EXCEPTIONMATCH, temp_type, 0, NOT_BUILT_IN, NULL, NULL_TREE);
+
+ /* APPLE LOCAL begin mainline */
+ /* id objc_assign_ivar (id, id, unsigned int); */
+ /* id objc_assign_ivar_Fast (id, id, unsigned int)
+ __attribute__ ((hard_coded_address (OFFS_ASSIGNIVAR_FAST))); */
+ temp_type
+ = build_function_type (objc_object_type,
+ tree_cons
+ (NULL_TREE, objc_object_type,
+ tree_cons (NULL_TREE, objc_object_type,
+ tree_cons (NULL_TREE,
+ unsigned_type_node,
+ OBJC_VOID_AT_END))));
+ objc_assign_ivar_decl
+ = builtin_function (TAG_ASSIGNIVAR, temp_type, 0, NOT_BUILT_IN, NULL, NULL_TREE);
+#ifdef TARGET_POWERPC
+ objc_assign_ivar_fast_decl
+ = builtin_function (TAG_ASSIGNIVAR_FAST, temp_type, 0, NOT_BUILT_IN, NULL, NULL_TREE);
+ DECL_ATTRIBUTES (objc_assign_ivar_fast_decl)
+ = tree_cons (get_identifier ("hard_coded_address"),
+ build_int_cst (NULL_TREE, OFFS_ASSIGNIVAR_FAST),
+ NULL_TREE);
+#else
+ /* Not needed on x86 (at least for now). */
+ objc_assign_ivar_fast_decl = objc_assign_ivar_decl;
+#endif
+
+ /* id objc_assign_global (id, id *); */
+ /* id objc_assign_strongCast (id, id *); */
+ temp_type = build_function_type (objc_object_type,
+ tree_cons (NULL_TREE, objc_object_type,
+ tree_cons (NULL_TREE, build_pointer_type (objc_object_type),
+ OBJC_VOID_AT_END)));
+ objc_assign_global_decl
+ = builtin_function (TAG_ASSIGNGLOBAL, temp_type, 0, NOT_BUILT_IN, NULL, NULL_TREE);
+ objc_assign_strong_cast_decl
+ = builtin_function (TAG_ASSIGNSTRONGCAST, temp_type, 0, NOT_BUILT_IN, NULL, NULL_TREE);
+ /* APPLE LOCAL end mainline */
}
static void
@@ -3547,13 +4268,24 @@ build_private_template (tree class)
{
if (!CLASS_STATIC_TEMPLATE (class))
{
- tree record = start_struct (RECORD_TYPE, CLASS_NAME (class));
+ /* APPLE LOCAL begin mainline */
+ tree record = objc_build_struct (CLASS_NAME (class),
+ get_class_ivars (class, false),
+ CLASS_SUPER_NAME (class));
- finish_struct (record, get_class_ivars (class), NULL_TREE);
/* mark this record as class template - for class type checking */
+ /* APPLE LOCAL end mainline */
INIT_TYPE_OBJC_INFO (record);
TYPE_OBJC_INTERFACE (record) = class;
CLASS_STATIC_TEMPLATE (class) = record;
+
+ /* APPLE LOCAL begin mainline */
+ /* FSF Candidate */
+ /* Set the TREE_USED bit for this struct, so that stab generator can emit
+ stabs for this struct type. */
+ if (flag_debug_only_used_symbols && TYPE_STUB_DECL (record))
+ TREE_USED (TYPE_STUB_DECL (record)) = 1;
+ /* APPLE LOCAL end mainline */
}
}
@@ -3593,20 +4325,18 @@ build_protocol_template (void)
"protocol_list");
chainon (field_decl_chain, field_decl);
- /* struct objc_method_list *instance_methods; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_METHOD_PROTOTYPE_LIST))),
+ /* APPLE LOCAL begin mainline */
+ /* struct _objc__method_prototype_list *instance_methods; */
+ field_decl = create_field_decl (objc_method_proto_list_ptr,
"instance_methods");
+ /* APPLE LOCAL end mainline */
chainon (field_decl_chain, field_decl);
- /* struct objc_method_list *class_methods; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_METHOD_PROTOTYPE_LIST))),
+ /* APPLE LOCAL begin mainline */
+ /* struct _objc__method_prototype_list *class_methods; */
+ field_decl = create_field_decl (objc_method_proto_list_ptr,
"class_methods");
+ /* APPLE LOCAL end mainline */
chainon (field_decl_chain, field_decl);
finish_struct (objc_protocol_template, field_decl_chain, NULL_TREE);
@@ -3706,7 +4436,8 @@ objc_method_parm_type (tree type)
type = TREE_VALUE (TREE_TYPE (type));
if (TREE_CODE (type) == TYPE_DECL)
type = TREE_TYPE (type);
- return TYPE_MAIN_VARIANT (type);
+ /* APPLE LOCAL mainline */
+ return type;
}
static int
@@ -3884,6 +4615,137 @@ generate_protocol_references (tree plist)
}
}
+/* APPLE LOCAL begin mainline */
+/* Generate either '- .cxx_construct' or '- .cxx_destruct' for the
+ current class. */
+#ifdef OBJCPLUS
+static void
+objc_generate_cxx_ctor_or_dtor (bool dtor)
+{
+ tree fn, body, compound_stmt, ivar;
+
+ /* - (id) .cxx_construct { ... return self; } */
+ /* - (void) .cxx_construct { ... } */
+
+ objc_set_method_type (MINUS_EXPR);
+ objc_start_method_definition
+ (objc_build_method_signature (build_tree_list (NULL_TREE,
+ dtor
+ ? void_type_node
+ : objc_object_type),
+ get_identifier (dtor
+ ? TAG_CXX_DESTRUCT
+ : TAG_CXX_CONSTRUCT),
+ make_node (TREE_LIST)));
+ body = begin_function_body ();
+ compound_stmt = begin_compound_stmt (0);
+
+ ivar = CLASS_IVARS (implementation_template);
+ /* Destroy ivars in reverse order. */
+ if (dtor)
+ ivar = nreverse (copy_list (ivar));
+
+ for (; ivar; ivar = TREE_CHAIN (ivar))
+ {
+ if (TREE_CODE (ivar) == FIELD_DECL)
+ {
+ tree type = TREE_TYPE (ivar);
+
+ /* Call the ivar's default constructor or destructor. Do not
+ call the destructor unless a corresponding constructor call
+ has also been made (or is not needed). */
+ if (IS_AGGR_TYPE (type)
+ && (dtor
+ ? (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
+ && (!TYPE_NEEDS_CONSTRUCTING (type)
+ || TYPE_HAS_DEFAULT_CONSTRUCTOR (type)))
+ : (TYPE_NEEDS_CONSTRUCTING (type)
+ && TYPE_HAS_DEFAULT_CONSTRUCTOR (type))))
+ finish_expr_stmt
+ (build_special_member_call
+ (build_ivar_reference (DECL_NAME (ivar)),
+ dtor ? complete_dtor_identifier : complete_ctor_identifier,
+ NULL_TREE, type, LOOKUP_NORMAL));
+ }
+ }
+
+ /* The constructor returns 'self'. */
+ if (!dtor)
+ finish_return_stmt (self_decl);
+
+ finish_compound_stmt (compound_stmt);
+ finish_function_body (body);
+ fn = current_function_decl;
+ finish_function ();
+ objc_finish_method_definition (fn);
+}
+
+/* The following routine will examine the current @interface for any
+ non-POD C++ ivars requiring non-trivial construction and/or
+ destruction, and then synthesize special '- .cxx_construct' and/or
+ '- .cxx_destruct' methods which will run the appropriate
+ construction or destruction code. Note that ivars inherited from
+ super-classes are _not_ considered. */
+static void
+objc_generate_cxx_cdtors (void)
+{
+ bool need_ctor = false, need_dtor = false;
+ tree ivar;
+
+ /* We do not want to do this for categories, since they do not have
+ their own ivars. */
+
+ if (TREE_CODE (objc_implementation_context) != CLASS_IMPLEMENTATION_TYPE)
+ return;
+
+ /* First, determine if we even need a constructor and/or destructor. */
+
+ for (ivar = CLASS_IVARS (implementation_template); ivar;
+ ivar = TREE_CHAIN (ivar))
+ {
+ if (TREE_CODE (ivar) == FIELD_DECL)
+ {
+ tree type = TREE_TYPE (ivar);
+
+ if (IS_AGGR_TYPE (type))
+ {
+ if (TYPE_NEEDS_CONSTRUCTING (type)
+ && TYPE_HAS_DEFAULT_CONSTRUCTOR (type))
+ /* NB: If a default constructor is not available, we will not
+ be able to initialize this ivar; the add_instance_variable()
+ routine will already have warned about this. */
+ need_ctor = true;
+
+ if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
+ && (!TYPE_NEEDS_CONSTRUCTING (type)
+ || TYPE_HAS_DEFAULT_CONSTRUCTOR (type)))
+ /* NB: If a default constructor is not available, we will not
+ call the destructor either, for symmetry. */
+ need_dtor = true;
+ }
+ }
+ }
+
+ /* Generate '- .cxx_construct' if needed. */
+
+ if (need_ctor)
+ objc_generate_cxx_ctor_or_dtor (false);
+
+ /* Generate '- .cxx_destruct' if needed. */
+
+ if (need_dtor)
+ objc_generate_cxx_ctor_or_dtor (true);
+
+ /* The 'imp_list' variable points at an imp_entry record for the current
+ @implementation. Record the existence of '- .cxx_construct' and/or
+ '- .cxx_destruct' methods therein; it will be included in the
+ metadata for the class. */
+ if (flag_next_runtime)
+ imp_list->has_cxx_cdtors = (need_ctor || need_dtor);
+}
+#endif
+/* APPLE LOCAL end mainline */
+
/* For each protocol which was referenced either from a @protocol()
expression, or because a class/category implements it (then a
pointer to the protocol is stored in the struct describing the
@@ -4017,7 +4879,10 @@ build_protocol_initializer (tree type, tree protocol_name,
initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
else
{
- expr = build_unary_op (ADDR_EXPR, instance_methods, 0);
+ /* APPLE LOCAL begin mainline */
+ expr = convert (objc_method_proto_list_ptr,
+ build_unary_op (ADDR_EXPR, instance_methods, 0));
+ /* APPLE LOCAL end mainline */
initlist = tree_cons (NULL_TREE, expr, initlist);
}
@@ -4025,7 +4890,10 @@ build_protocol_initializer (tree type, tree protocol_name,
initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
else
{
- expr = build_unary_op (ADDR_EXPR, class_methods, 0);
+ /* APPLE LOCAL begin mainline */
+ expr = convert (objc_method_proto_list_ptr,
+ build_unary_op (ADDR_EXPR, class_methods, 0));
+ /* APPLE LOCAL end mainline */
initlist = tree_cons (NULL_TREE, expr, initlist);
}
@@ -4057,18 +4925,14 @@ build_category_template (void)
chainon (field_decl_chain, field_decl);
/* struct _objc_method_list *instance_methods; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_METHOD_LIST))),
+ /* APPLE LOCAL mainline */
+ field_decl = create_field_decl (objc_method_list_ptr,
"instance_methods");
chainon (field_decl_chain, field_decl);
/* struct _objc_method_list *class_methods; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_METHOD_LIST))),
+ /* APPLE LOCAL mainline */
+ field_decl = create_field_decl (objc_method_list_ptr,
"class_methods");
chainon (field_decl_chain, field_decl);
@@ -4170,18 +5034,14 @@ build_class_template (void)
chainon (field_decl_chain, field_decl);
/* struct _objc_ivar_list *ivars; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_IVAR_LIST))),
+ /* APPLE LOCAL mainline */
+ field_decl = create_field_decl (objc_ivar_list_ptr,
"ivars");
chainon (field_decl_chain, field_decl);
/* struct _objc_method_list *methods; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_METHOD_LIST))),
+ /* APPLE LOCAL mainline */
+ field_decl = create_field_decl (objc_method_list_ptr,
"methods");
chainon (field_decl_chain, field_decl);
@@ -4261,8 +5121,10 @@ synth_forward_declarations (void)
/* Pre-build the following entities - for speed/convenience. */
an_id = get_identifier ("super_class");
- ucls_super_ref = build_component_ref (UOBJC_CLASS_decl, an_id);
- uucls_super_ref = build_component_ref (UOBJC_METACLASS_decl, an_id);
+ /* APPLE LOCAL begin mainline */
+ ucls_super_ref = objc_build_component_ref (UOBJC_CLASS_decl, an_id);
+ uucls_super_ref = objc_build_component_ref (UOBJC_METACLASS_decl, an_id);
+ /* APPLE LOCAL end mainline */
}
static void
@@ -4432,10 +5294,8 @@ build_method_list_template (tree list_type, int size)
objc_ivar_list_record = start_struct (RECORD_TYPE, NULL_TREE);
/* struct _objc__method_prototype_list *method_next; */
- field_decl = create_field_decl (build_pointer_type
- (xref_tag (RECORD_TYPE,
- get_identifier
- (UTAG_METHOD_PROTOTYPE_LIST))),
+ /* APPLE LOCAL mainline */
+ field_decl = create_field_decl (objc_method_proto_list_ptr,
"method_next");
field_decl_chain = field_decl;
@@ -4834,14 +5694,20 @@ build_category_initializer (tree type, tree cat_name, tree class_name,
initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
else
{
- expr = build_unary_op (ADDR_EXPR, instance_methods, 0);
+ /* APPLE LOCAL begin mainline */
+ expr = convert (objc_method_list_ptr,
+ build_unary_op (ADDR_EXPR, instance_methods, 0));
+ /* APPLE LOCAL end mainline */
initlist = tree_cons (NULL_TREE, expr, initlist);
}
if (!class_methods)
initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
else
{
- expr = build_unary_op (ADDR_EXPR, class_methods, 0);
+ /* APPLE LOCAL begin mainline */
+ expr = convert (objc_method_list_ptr,
+ build_unary_op (ADDR_EXPR, class_methods, 0));
+ /* APPLE LOCAL end mainline */
initlist = tree_cons (NULL_TREE, expr, initlist);
}
@@ -4917,7 +5783,10 @@ build_shared_structure_initializer (tree type, tree isa, tree super,
initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
else
{
- expr = build_unary_op (ADDR_EXPR, ivar_list, 0);
+ /* APPLE LOCAL begin mainline */
+ expr = convert (objc_ivar_list_ptr,
+ build_unary_op (ADDR_EXPR, ivar_list, 0));
+ /* APPLE LOCAL end mainline */
initlist = tree_cons (NULL_TREE, expr, initlist);
}
@@ -4926,7 +5795,10 @@ build_shared_structure_initializer (tree type, tree isa, tree super,
initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), initlist);
else
{
- expr = build_unary_op (ADDR_EXPR, dispatch_table, 0);
+ /* APPLE LOCAL begin mainline */
+ expr = convert (objc_method_list_ptr,
+ build_unary_op (ADDR_EXPR, dispatch_table, 0));
+ /* APPLE LOCAL end mainline */
initlist = tree_cons (NULL_TREE, expr, initlist);
}
@@ -5021,7 +5893,8 @@ generate_category (tree cat)
static struct objc_class _OBJC_CLASS_Foo={ ... }; */
static void
-generate_shared_structures (void)
+/* APPLE LOCAL mainline */
+generate_shared_structures (int cls_flags)
{
tree sc_spec, decl_specs, decl;
tree name_expr, super_expr, root_expr;
@@ -5112,7 +5985,8 @@ generate_shared_structures (void)
convert (integer_type_node,
TYPE_SIZE_UNIT (CLASS_STATIC_TEMPLATE
(implementation_template))),
- 1 /*CLS_FACTORY*/,
+ /* APPLE LOCAL mainline */
+ 1 /*CLS_FACTORY*/ | cls_flags,
UOBJC_INSTANCE_METHODS_decl,
UOBJC_INSTANCE_VARIABLES_decl,
protocol_decl);
@@ -5374,6 +6248,22 @@ check_duplicates (hash hsh, int methods, int is_class)
different types. */
attr loop;
+ /* APPLE LOCAL begin mainline */
+ /* But just how different are those types? If
+ -Wno-strict-selector-match is specified, we shall not complain
+ if the differences are solely among types with identical
+ size and alignment. */
+ if (!warn_strict_selector_match)
+ {
+ for (loop = hsh->list; loop; loop = loop->next)
+ if (!comp_proto_with_proto (meth, loop->value, 0))
+ goto issue_warning;
+
+ return meth;
+ }
+
+ issue_warning:
+ /* APPLE LOCAL end mainline */
warning ("multiple %s named %<%c%s%> found",
methods ? "methods" : "selectors",
(is_class ? '+' : '-'),
@@ -5584,6 +6474,12 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
|| (TREE_CODE (receiver) == COMPOUND_EXPR
&& !IS_SUPER (rtype)));
+ /* APPLE LOCAL begin mainline */
+ /* If we are calling [super dealloc], reset our warning flag. */
+ if (super && !strcmp ("dealloc", IDENTIFIER_POINTER (sel_name)))
+ should_call_super_dealloc = 0;
+ /* APPLE LOCAL end mainline */
+
/* If the receiver is a class object, retrieve the corresponding
@interface, if one exists. */
class_tree = receiver_is_class_object (receiver, self, super);
@@ -5612,18 +6508,15 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
/* If receiver is of type `id' or `Class' (or if the @interface for a
class is not visible), we shall be satisfied with the existence of
any instance or class method. */
- if (!rtype || objc_is_id (rtype))
+ /* APPLE LOCAL begin mainline */
+ if (objc_is_id (rtype))
{
- if (!rtype)
- rtype = xref_tag (RECORD_TYPE, class_tree);
- else
- {
- class_tree = (IS_CLASS (rtype) ? objc_class_name : NULL_TREE);
- rprotos = (TYPE_HAS_OBJC_INFO (TREE_TYPE (rtype))
- ? TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (rtype))
- : NULL_TREE);
- rtype = NULL_TREE;
- }
+ class_tree = (IS_CLASS (rtype) ? objc_class_name : NULL_TREE);
+ rprotos = (TYPE_HAS_OBJC_INFO (TREE_TYPE (rtype))
+ ? TYPE_OBJC_PROTOCOL_LIST (TREE_TYPE (rtype))
+ : NULL_TREE);
+ rtype = NULL_TREE;
+ /* APPLE LOCAL end mainline */
if (rprotos)
{
@@ -5648,7 +6541,8 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
}
}
}
- else
+ /* APPLE LOCAL mainline */
+ else if (rtype)
{
tree orig_rtype = rtype, saved_rtype;
@@ -5670,7 +6564,8 @@ objc_finish_message_expr (tree receiver, tree sel_name, tree method_params)
more intelligent about which methods the receiver will
understand. */
if (!rtype || TREE_CODE (rtype) == IDENTIFIER_NODE)
- rtype = saved_rtype;
+ /* APPLE LOCAL mainline */
+ rtype = NULL_TREE;
else if (TREE_CODE (rtype) == CLASS_INTERFACE_TYPE
|| TREE_CODE (rtype) == CLASS_IMPLEMENTATION_TYPE)
{
@@ -5785,7 +6680,11 @@ build_objc_method_call (int super_flag, tree method_prototype,
{
tree sender = (super_flag ? umsg_super_decl :
(!flag_next_runtime || flag_nil_receivers
- ? umsg_decl
+ /* APPLE LOCAL begin mainline */
+ ? (flag_objc_direct_dispatch
+ ? umsg_fast_decl
+ : umsg_decl)
+ /* APPLE LOCAL end mainline */
: umsg_nonnil_decl));
tree rcv_p = (super_flag ? objc_super_type : objc_object_type);
@@ -6024,7 +6923,8 @@ build_ivar_reference (tree id)
self_decl = convert (objc_instance_type, self_decl); /* cast */
}
- return build_component_ref (build_indirect_ref (self_decl, "->"), id);
+ /* APPLE LOCAL mainline */
+ return objc_build_component_ref (build_indirect_ref (self_decl, "->"), id);
}
/* Compute a hash value for a given method SEL_NAME. */
@@ -6052,6 +6952,11 @@ hash_init (void)
/* Initialize the hash table used to hold the constant string objects. */
string_htab = htab_create_ggc (31, string_hash,
string_eq, NULL);
+ /* APPLE LOCAL begin mainline */
+ /* Initialize the hash table used to hold EH-volatilized types. */
+ volatilized_htab = htab_create_ggc (31, volatilized_hash,
+ volatilized_eq, NULL);
+ /* APPLE LOCAL end mainline */
}
/* WARNING!!!! hash_enter is called with a method, and will peek
@@ -6122,11 +7027,27 @@ lookup_method (tree mchain, tree method)
return NULL_TREE;
}
+/* APPLE LOCAL begin mainline */
+/* Look up a class (if OBJC_LOOKUP_CLASS is set in FLAGS) or instance method
+ in INTERFACE, along with any categories and protocols attached thereto.
+ If method is not found, and the OBJC_LOOKUP_NO_SUPER is _not_ set in FLAGS,
+ recursively examine the INTERFACE's superclass. If OBJC_LOOKUP_CLASS is
+ set, OBJC_LOOKUP_NO_SUPER is cleared, and no suitable class method could
+ be found in INTERFACE or any of its superclasses, look for an _instance_
+ method of the same name in the root class as a last resort.
+
+ If a suitable method cannot be found, return NULL_TREE. */
+
static tree
-lookup_method_static (tree interface, tree ident, int is_class)
+lookup_method_static (tree interface, tree ident, int flags)
+/* APPLE LOCAL end mainline */
{
tree meth = NULL_TREE, root_inter = NULL_TREE;
tree inter = interface;
+ /* APPLE LOCAL begin mainline */
+ int is_class = (flags & OBJC_LOOKUP_CLASS);
+ int no_superclasses = (flags & OBJC_LOOKUP_NO_SUPER);
+ /* APPLE LOCAL end mainline */
while (inter)
{
@@ -6163,6 +7084,12 @@ lookup_method_static (tree interface, tree ident, int is_class)
return meth;
}
+ /* APPLE LOCAL begin mainline */
+ /* If we were instructed not to look in superclasses, don't. */
+ if (no_superclasses)
+ return NULL_TREE;
+ /* APPLE LOCAL end mainline */
+
/* Failing that, climb up the inheritance hierarchy. */
root_inter = inter;
inter = lookup_interface (CLASS_SUPER_NAME (inter));
@@ -6192,9 +7119,11 @@ add_method_to_hash_list (hash *hash_list, tree method)
{
/* Check types against those; if different, add to a list. */
attr loop;
- int already_there = comp_proto_with_proto (method, hsh->key);
+ /* APPLE LOCAL mainline */
+ int already_there = comp_proto_with_proto (method, hsh->key, 1);
for (loop = hsh->list; !already_there && loop; loop = loop->next)
- already_there |= comp_proto_with_proto (method, loop->value);
+ /* APPLE LOCAL mainline */
+ already_there |= comp_proto_with_proto (method, loop->value, 1);
if (!already_there)
hash_add_attr (hsh, method);
}
@@ -6230,7 +7159,8 @@ objc_add_method (tree class, tree method, int is_class)
definition errors). */
if ((TREE_CODE (class) == CLASS_INTERFACE_TYPE
|| TREE_CODE (class) == CATEGORY_INTERFACE_TYPE)
- && !comp_proto_with_proto (method, mth))
+ /* APPLE LOCAL mainline */
+ && !comp_proto_with_proto (method, mth, 1))
error ("duplicate declaration of method %<%c%s%>",
is_class ? '+' : '-',
IDENTIFIER_POINTER (METHOD_SEL_NAME (mth)));
@@ -6260,11 +7190,14 @@ objc_add_method (tree class, tree method, int is_class)
}
static tree
-add_class (tree class)
+/* APPLE LOCAL mainline */
+add_class (tree class, tree name)
{
/* Put interfaces on list in reverse order. */
TREE_CHAIN (class) = interface_chain;
interface_chain = class;
+ /* APPLE LOCAL mainline */
+ IDENTIFIER_INTERFACE_VALUE (name) = class;
return interface_chain;
}
@@ -6320,28 +7253,68 @@ add_instance_variable (tree class, int public, tree field_decl)
}
#ifdef OBJCPLUS
- /* zlaski 2001-Apr-24: C++ classes with non-trivial constructors and/or destructors
- cannot be ivars; ditto for classes with vtables. */
- if(IS_AGGR_TYPE (field_type) && (TYPE_NEEDS_CONSTRUCTING (field_type)
- || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type) || TYPE_POLYMORPHIC_P (field_type)))
+/* APPLE LOCAL begin mainline */
+ /* Check if the ivar being added has a non-POD C++ type. If so, we will
+ need to either (1) warn the user about it or (2) generate suitable
+ constructor/destructor call from '- .cxx_construct' or '- .cxx_destruct'
+ methods (if '-fobjc-call-cxx-cdtors' was specified). */
+ if (IS_AGGR_TYPE (field_type)
+ && (TYPE_NEEDS_CONSTRUCTING (field_type)
+ || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type)
+ || TYPE_POLYMORPHIC_P (field_type)))
{
const char *type_name = IDENTIFIER_POINTER (OBJC_TYPE_NAME (field_type));
- if(TYPE_POLYMORPHIC_P (field_type)) {
- /* vtable pointers are Real Bad(tm), since Obj-C cannot initialize them */
- error ("type %qs has virtual member functions", type_name);
- error ("illegal aggregate type %qs specified for instance variable %qs",
- type_name, ivar_name);
- /* Return class as is without adding this ivar. */
- return class;
- }
- /* user-defined constructors and destructors are not known to Obj-C and
- hence will not be called. This may or may not be a problem. */
- if (TYPE_NEEDS_CONSTRUCTING (field_type))
- warning ("type %qs has a user-defined constructor", type_name);
- if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type))
- warning ("type %qs has a user-defined destructor", type_name);
- warning ("C++ constructors and destructors will not be invoked for Objective-C fields");
+
+ if (flag_objc_call_cxx_cdtors)
+ {
+ /* Since the ObjC runtime will be calling the constructors and
+ destructors for us, the only thing we can't handle is the lack
+ of a default constructor. */
+ if (TYPE_NEEDS_CONSTRUCTING (field_type)
+ && !TYPE_HAS_DEFAULT_CONSTRUCTOR (field_type))
+ {
+ warning ("type `%s' has no default constructor to call",
+ type_name);
+
+ /* If we cannot call a constructor, we should also avoid
+ calling the destructor, for symmetry. */
+ if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type))
+ warning ("destructor for `%s' shall not be run either",
+ type_name);
+ }
+ }
+ else
+ {
+ static bool warn_cxx_ivars = false;
+
+ if (TYPE_POLYMORPHIC_P (field_type))
+ {
+ /* Vtable pointers are Real Bad(tm), since Obj-C cannot
+ initialize them. */
+ error ("type `%s' has virtual member functions", type_name);
+ error ("illegal aggregate type `%s' specified "
+ "for instance variable `%s'",
+ type_name, ivar_name);
+ /* Return class as is without adding this ivar. */
+ return class;
+ }
+
+ /* User-defined constructors and destructors are not known to Obj-C
+ and hence will not be called. This may or may not be a problem. */
+ if (TYPE_NEEDS_CONSTRUCTING (field_type))
+ warning ("type `%s' has a user-defined constructor", type_name);
+ if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type))
+ warning ("type `%s' has a user-defined destructor", type_name);
+
+ if (!warn_cxx_ivars)
+ {
+ warning ("C++ constructors and destructors will not "
+ "be invoked for Objective-C fields");
+ warn_cxx_ivars = true;
+ }
+ }
}
+/* APPLE LOCAL end mainline */
#endif
/* Overload the public attribute, it is not used for FIELD_DECLs. */
@@ -6396,22 +7369,31 @@ is_private (tree decl)
int
objc_is_public (tree expr, tree identifier)
{
- tree basetype = TREE_TYPE (expr);
- enum tree_code code = TREE_CODE (basetype);
- tree decl;
+ /* APPLE LOCAL begin mainline */
+ tree basetype, decl;
+
+#ifdef OBJCPLUS
+ if (processing_template_decl)
+ return 1;
+#endif
+
+ basetype = TYPE_MAIN_VARIANT (TREE_TYPE (expr));
- if (code == RECORD_TYPE)
+ if (basetype && TREE_CODE (basetype) == RECORD_TYPE)
{
if (TYPE_HAS_OBJC_INFO (basetype) && TYPE_OBJC_INTERFACE (basetype))
{
- if (TREE_CODE (TYPE_OBJC_INTERFACE (basetype)) == IDENTIFIER_NODE)
+ tree class = lookup_interface (OBJC_TYPE_NAME (basetype));
+
+ if (!class)
{
error ("cannot find interface declaration for %qs",
IDENTIFIER_POINTER (OBJC_TYPE_NAME (basetype)));
return 0;
}
- if ((decl = is_ivar (TYPE_FIELDS (basetype), identifier)))
+ if ((decl = is_ivar (get_class_ivars (class, true), identifier)))
+ /* APPLE LOCAL end mainline */
{
if (TREE_PUBLIC (decl))
return 1;
@@ -6420,19 +7402,28 @@ objc_is_public (tree expr, tree identifier)
all instance variables should be public within the context
of the implementation. */
if (objc_implementation_context
- && (((TREE_CODE (objc_implementation_context)
- == CLASS_IMPLEMENTATION_TYPE)
- || (TREE_CODE (objc_implementation_context)
- == CATEGORY_IMPLEMENTATION_TYPE))
- && (CLASS_NAME (objc_implementation_context)
- == OBJC_TYPE_NAME (basetype))))
+ /* APPLE LOCAL begin mainline */
+ && ((TREE_CODE (objc_implementation_context)
+ == CLASS_IMPLEMENTATION_TYPE)
+ || (TREE_CODE (objc_implementation_context)
+ == CATEGORY_IMPLEMENTATION_TYPE)))
{
- int private = is_private (decl);
+ tree curtype = TYPE_MAIN_VARIANT
+ (CLASS_STATIC_TEMPLATE
+ (implementation_template));
+
+ if (basetype == curtype
+ || DERIVED_FROM_P (basetype, curtype))
+ {
+ int private = is_private (decl);
- if (private)
- error ("instance variable %qs is declared private",
- IDENTIFIER_POINTER (DECL_NAME (decl)));
- return !private;
+ if (private)
+ error ("instance variable %qs is declared private",
+ IDENTIFIER_POINTER (DECL_NAME (decl)));
+
+ return !private;
+ }
+ /* APPLE LOCAL end mainline */
}
/* The 2.95.2 compiler sometimes allowed C functions to access
@@ -6452,12 +7443,8 @@ objc_is_public (tree expr, tree identifier)
return 0;
}
}
-
- else if (objc_implementation_context && (basetype == objc_object_reference))
- {
- expr = convert (uprivate_record, expr);
- warning ("static access to object of type %<id%>");
- }
+ /* APPLE LOCAL mainline */
+ /* Unneeded code removed. */
}
return 1;
@@ -6684,14 +7671,27 @@ start_class (enum tree_code code, tree class_name, tree super_name,
class = make_node (code);
TYPE_LANG_SLOT_1 (class) = make_tree_vec (CLASS_LANG_SLOT_ELTS);
- /* Check for existence of the super class, if one was specified. */
+ /* APPLE LOCAL begin mainline */
+ /* Check for existence of the super class, if one was specified. Note
+ that we must have seen an @interface, not just a @class. If we
+ are looking at a @compatibility_alias, traverse it first. */
+ /* APPLE LOCAL end mainline */
if ((code == CLASS_INTERFACE_TYPE || code == CLASS_IMPLEMENTATION_TYPE)
- && super_name && !objc_is_class_name (super_name))
+ /* APPLE LOCAL begin mainline */
+ && super_name)
{
- error ("cannot find interface declaration for %qs, superclass of %qs",
- IDENTIFIER_POINTER (super_name),
- IDENTIFIER_POINTER (class_name));
- super_name = NULL_TREE;
+ tree super = objc_is_class_name (super_name);
+
+ if (!super || !lookup_interface (super))
+ {
+ error ("cannot find interface declaration for %qs, superclass of %qs",
+ IDENTIFIER_POINTER (super ? super : super_name),
+ IDENTIFIER_POINTER (class_name));
+ super_name = NULL_TREE;
+ }
+ else
+ super_name = super;
+ /* APPLE LOCAL end mainline */
}
CLASS_NAME (class) = class_name;
@@ -6734,7 +7734,10 @@ start_class (enum tree_code code, tree class_name, tree super_name,
{
warning ("cannot find interface declaration for %qs",
IDENTIFIER_POINTER (class_name));
- add_class (implementation_template = objc_implementation_context);
+ /* APPLE LOCAL begin mainline */
+ add_class (implementation_template = objc_implementation_context,
+ class_name);
+ /* APPLE LOCAL end mainline */
}
/* If a super class has been specified in the implementation,
@@ -6768,7 +7771,8 @@ start_class (enum tree_code code, tree class_name, tree super_name,
#endif
IDENTIFIER_POINTER (class_name));
else
- add_class (class);
+ /* APPLE LOCAL mainline */
+ add_class (class, class_name);
if (protocol_list)
CLASS_PROTOCOL_LIST (class)
@@ -6825,7 +7829,8 @@ continue_class (tree class)
|| TREE_CODE (class) == CATEGORY_IMPLEMENTATION_TYPE)
{
struct imp_entry *imp_entry;
- tree ivar_context;
+ /* APPLE LOCAL mainline */
+ /* Delete ivar_context */
/* Check consistency of the instance variables. */
@@ -6840,7 +7845,8 @@ continue_class (tree class)
build_private_template (implementation_template);
uprivate_record = CLASS_STATIC_TEMPLATE (implementation_template);
- ivar_context = TYPE_FIELDS (uprivate_record);
+ /* APPLE LOCAL mainline */
+ /* Remove assignment of ivar_context. */
objc_instance_type = build_pointer_type (uprivate_record);
imp_entry = (struct imp_entry *) ggc_alloc (sizeof (struct imp_entry));
@@ -6852,6 +7858,8 @@ continue_class (tree class)
synth_forward_declarations ();
imp_entry->class_decl = UOBJC_CLASS_decl;
imp_entry->meta_decl = UOBJC_METACLASS_decl;
+ /* APPLE LOCAL mainline */
+ imp_entry->has_cxx_cdtors = 0;
/* Append to front and increment count. */
imp_list = imp_entry;
@@ -6864,7 +7872,8 @@ continue_class (tree class)
pop_lang_context ();
#endif /* OBJCPLUS */
- return ivar_context;
+ /* APPLE LOCAL mainline */
+ return get_class_ivars (implementation_template, true);
}
else if (TREE_CODE (class) == CLASS_INTERFACE_TYPE)
@@ -7150,18 +8159,64 @@ encode_array (tree type, int curtype, int format)
}
static void
+/* APPLE LOCAL begin mainline */
+encode_aggregate_fields (tree type, int pointed_to, int curtype, int format)
+{
+ tree field = TYPE_FIELDS (type);
+
+ for (; field; field = TREE_CHAIN (field))
+ {
+#ifdef OBJCPLUS
+ /* C++ static members, and things that are not field at all,
+ should not appear in the encoding. */
+ if (TREE_CODE (field) != FIELD_DECL || TREE_STATIC (field))
+ continue;
+#endif
+
+ /* Recursively encode fields of embedded base classes. */
+ if (DECL_ARTIFICIAL (field) && !DECL_NAME (field)
+ && TREE_CODE (TREE_TYPE (field)) == RECORD_TYPE)
+ {
+ encode_aggregate_fields (TREE_TYPE (field),
+ pointed_to, curtype, format);
+ continue;
+ }
+
+ if (generating_instance_variables && !pointed_to)
+ {
+ tree fname = DECL_NAME (field);
+
+ obstack_1grow (&util_obstack, '"');
+
+ if (fname && TREE_CODE (fname) == IDENTIFIER_NODE)
+ obstack_grow (&util_obstack,
+ IDENTIFIER_POINTER (fname),
+ strlen (IDENTIFIER_POINTER (fname)));
+
+ obstack_1grow (&util_obstack, '"');
+ }
+
+ encode_field_decl (field, curtype, format);
+ }
+}
+
+static void
+/* APPLE LOCAL end mainline */
encode_aggregate_within (tree type, int curtype, int format, int left,
int right)
{
tree name;
/* NB: aggregates that are pointed to have slightly different encoding
rules in that you never encode the names of instance variables. */
- int pointed_to
- = (obstack_object_size (&util_obstack) > 0
- && *(obstack_next_free (&util_obstack) - 1) == '^');
+ /* APPLE LOCAL begin mainline */
+ int ob_size = obstack_object_size (&util_obstack);
+ char c1 = ob_size > 1 ? *(obstack_next_free (&util_obstack) - 2) : 0;
+ char c0 = ob_size > 0 ? *(obstack_next_free (&util_obstack) - 1) : 0;
+ int pointed_to = (c0 == '^' || (c1 == '^' && c0 == 'r'));
int inline_contents
= ((format == OBJC_ENCODE_INLINE_DEFS || generating_instance_variables)
- && (!pointed_to || obstack_object_size (&util_obstack) - curtype == 1));
+ && (!pointed_to || ob_size - curtype == (c1 == 'r' ? 2 : 1)));
+ /* APPLE LOCAL end mainline */
/* Traverse struct aliases; it is important to get the
original struct and its tag name (if any). */
@@ -7188,30 +8243,11 @@ encode_aggregate_within (tree type, int curtype, int format, int left,
if required. */
if (inline_contents)
{
- tree fields = TYPE_FIELDS (type);
-
+ /* APPLE LOCAL mainline */
+ /* Variable 'fields' removed. */
obstack_1grow (&util_obstack, '=');
- for (; fields; fields = TREE_CHAIN (fields))
- {
-#ifdef OBJCPLUS
- /* C++ static members, and things that are not fields at all,
- should not appear in the encoding. */
- if (TREE_CODE (fields) != FIELD_DECL || TREE_STATIC (fields))
- continue;
-#endif
- if (generating_instance_variables && !pointed_to)
- {
- tree fname = DECL_NAME (fields);
-
- obstack_1grow (&util_obstack, '"');
- if (fname && TREE_CODE (fname) == IDENTIFIER_NODE)
- obstack_grow (&util_obstack,
- IDENTIFIER_POINTER (fname),
- strlen (IDENTIFIER_POINTER (fname)));
- obstack_1grow (&util_obstack, '"');
- }
- encode_field_decl (fields, curtype, format);
- }
+ /* APPLE LOCAL mainline */
+ encode_aggregate_fields (type, pointed_to, curtype, format);
}
/* Close parenth/bracket. */
obstack_1grow (&util_obstack, right);
@@ -7508,6 +8544,16 @@ start_method_def (tree method)
#endif
int have_ellipsis = 0;
+ /* APPLE LOCAL begin mainline */
+ /* If we are defining a "dealloc" method in a non-root class, we will need
+ to check if a [super dealloc] is missing, and warn if it is. */
+ if(CLASS_SUPER_NAME (objc_implementation_context)
+ && !strcmp ("dealloc", IDENTIFIER_POINTER (METHOD_SEL_NAME (method))))
+ should_call_super_dealloc = 1;
+ else
+ should_call_super_dealloc = 0;
+ /* APPLE LOCAL end mainline */
+
/* Required to implement _msgSuper. */
objc_method_context = method;
UOBJC_SUPER_decl = NULL_TREE;
@@ -7586,11 +8632,25 @@ objc_types_are_equivalent (tree type1, tree type2)
return 0;
}
+/* APPLE LOCAL begin mainline */
+/* Return 1 if TYPE1 has the same size and alignment as TYPE2. */
+
+static int
+objc_types_share_size_and_alignment (tree type1, tree type2)
+{
+ return (simple_cst_equal (TYPE_SIZE (type1), TYPE_SIZE (type2))
+ && TYPE_ALIGN (type1) == TYPE_ALIGN (type2));
+}
+
/* Return 1 if PROTO1 is equivalent to PROTO2
- for purposes of method overloading. */
+ for purposes of method overloading. Ordinarily, the type signatures
+ should match up exactly, unless STRICT is zero, in which case we
+ shall allow differences in which the size and alignment of a type
+ is the same. */
static int
-comp_proto_with_proto (tree proto1, tree proto2)
+comp_proto_with_proto (tree proto1, tree proto2, int strict)
+/* APPLE LOCAL end mainline */
{
tree type1, type2;
@@ -7603,7 +8663,10 @@ comp_proto_with_proto (tree proto1, tree proto2)
type1 = TREE_VALUE (TREE_TYPE (proto1));
type2 = TREE_VALUE (TREE_TYPE (proto2));
- if (!objc_types_are_equivalent (type1, type2))
+ /* APPLE LOCAL begin mainline */
+ if (!objc_types_are_equivalent (type1, type2)
+ && (strict || !objc_types_share_size_and_alignment (type1, type2)))
+ /* APPLE LOCAL end mainline */
return 0;
/* Compare argument types. */
@@ -7612,7 +8675,12 @@ comp_proto_with_proto (tree proto1, tree proto2)
type1 && type2;
type1 = TREE_CHAIN (type1), type2 = TREE_CHAIN (type2))
{
- if (!objc_types_are_equivalent (TREE_VALUE (type1), TREE_VALUE (type2)))
+ /* APPLE LOCAL begin mainline */
+ if (!objc_types_are_equivalent (TREE_VALUE (type1), TREE_VALUE (type2))
+ && (strict
+ || !objc_types_share_size_and_alignment (TREE_VALUE (type1),
+ TREE_VALUE (type2))))
+ /* APPLE LOCAL end mainline */
return 0;
}
@@ -7664,14 +8732,35 @@ objc_start_function (tree name, tree type, tree attrs,
TREE_STATIC (fndecl) = 1;
retrofit_lang_decl (fndecl);
cplus_decl_attributes (&fndecl, attrs, 0);
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ /* Build a mapping between this decl and the per-function options in
+ effect at this point. */
+ record_func_cl_pf_opts_mapping (fndecl);
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
start_preparsed_function (fndecl, attrs, /*flags=*/SF_DEFAULT);
#else
+ struct c_label_context *nstack;
+ nstack = XOBNEW (&parser_obstack, struct c_label_context);
+ nstack->labels_def = NULL;
+ nstack->labels_used = NULL;
+ nstack->next = label_context_stack;
+ label_context_stack = nstack;
+ /* APPLE LOCAL begin mainline */
+ current_function_returns_value = 0; /* Assume, until we see it does. */
+ current_function_returns_null = 0;
+ /* APPLE LOCAL end mainline */
+
decl_attributes (&fndecl, attrs, 0);
announce_function (fndecl);
DECL_INITIAL (fndecl) = error_mark_node;
DECL_EXTERNAL (fndecl) = 0;
TREE_STATIC (fndecl) = 1;
current_function_decl = pushdecl (fndecl);
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ /* Build a mapping between this decl and the per-function options in
+ effect at this point. */
+ record_func_cl_pf_opts_mapping (fndecl);
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
push_scope ();
declare_parm_level ();
DECL_RESULT (current_function_decl)
@@ -7756,11 +8845,15 @@ really_start_method (tree method,
tree proto
= lookup_method_static (implementation_template,
METHOD_SEL_NAME (method),
- TREE_CODE (method) == CLASS_METHOD_DECL);
+ /* APPLE LOCAL begin mainline */
+ ((TREE_CODE (method) == CLASS_METHOD_DECL)
+ | OBJC_LOOKUP_NO_SUPER));
+ /* APPLE LOCAL end mainline */
if (proto)
{
- if (!comp_proto_with_proto (method, proto))
+ /* APPLE LOCAL mainline */
+ if (!comp_proto_with_proto (method, proto, 1))
{
char type = (TREE_CODE (method) == INSTANCE_METHOD_DECL ? '-' : '+');
@@ -7817,13 +8910,16 @@ get_super_receiver (void)
}
/* Set receiver to self. */
- super_expr = build_component_ref (UOBJC_SUPER_decl, self_id);
+ /* APPLE LOCAL mainline */
+ super_expr = objc_build_component_ref (UOBJC_SUPER_decl, self_id);
super_expr = build_modify_expr (super_expr, NOP_EXPR, self_decl);
super_expr_list = super_expr;
/* Set class to begin searching. */
- super_expr = build_component_ref (UOBJC_SUPER_decl,
- get_identifier ("super_class"));
+ /* APPLE LOCAL begin mainline */
+ super_expr = objc_build_component_ref (UOBJC_SUPER_decl,
+ get_identifier ("super_class"));
+ /* APPLE LOCAL end mainline */
if (TREE_CODE (objc_implementation_context) == CLASS_IMPLEMENTATION_TYPE)
{
@@ -7932,6 +9028,11 @@ objc_finish_method_definition (tree fndecl)
/* Required to implement _msgSuper. This must be done AFTER finish_function,
since the optimizer may find "may be used before set" errors. */
objc_method_context = NULL_TREE;
+
+ /* APPLE LOCAL begin mainline */
+ if (should_call_super_dealloc)
+ warning ("method possibly missing a [super dealloc] call");
+ /* APPLE LOCAL end mainline */
}
#if 0
@@ -8306,7 +9407,11 @@ finish_objc (void)
/* all of the following reference the string pool... */
generate_ivar_lists ();
generate_dispatch_tables ();
- generate_shared_structures ();
+ /* APPLE LOCAL begin mainline */
+ generate_shared_structures (impent->has_cxx_cdtors
+ ? CLS_HAS_CXX_STRUCTORS
+ : 0);
+ /* APPLE LOCAL end mainline */
}
else
{
@@ -8323,7 +9428,8 @@ finish_objc (void)
if (protocol_chain)
generate_protocols ();
- if (flag_replace_objc_classes && imp_list)
+ /* APPLE LOCAL mainline */
+ if ((flag_replace_objc_classes && imp_list) || flag_objc_gc)
generate_objc_image_info ();
/* Arrange for ObjC data structures to be initialized at run time. */
@@ -8505,6 +9611,11 @@ static void
generate_objc_image_info (void)
{
tree decl, initlist;
+ /* APPLE LOCAL begin mainline */
+ int flags
+ = ((flag_replace_objc_classes && imp_list ? 1 : 0)
+ | (flag_objc_gc ? 2 : 0));
+ /* APPLE LOCAL end mainline */
decl = start_var_decl (build_array_type
(integer_type_node,
@@ -8512,7 +9623,8 @@ generate_objc_image_info (void)
"_OBJC_IMAGE_INFO");
initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, 0));
- initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 1), initlist);
+ /* APPLE LOCAL mainline */
+ initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, flags), initlist);
initlist = objc_build_constructor (TREE_TYPE (decl), nreverse (initlist));
finish_var_decl (decl, initlist);
@@ -8549,7 +9661,14 @@ objc_lookup_ivar (tree other, tree id)
/* In an instance method, a local variable (or parameter) may hide the
instance variable. */
if (TREE_CODE (objc_method_context) == INSTANCE_METHOD_DECL
- && other && other != error_mark_node && !DECL_FILE_SCOPE_P (other))
+ /* APPLE LOCAL begin mainline */
+ && other && other != error_mark_node
+#ifdef OBJCPLUS
+ && CP_DECL_CONTEXT (other) != global_namespace)
+#else
+ && !DECL_FILE_SCOPE_P (other))
+#endif
+ /* APPLE LOCAL end mainline */
{
warning ("local declaration of %qs hides instance variable",
IDENTIFIER_POINTER (id));
@@ -8563,4 +9682,89 @@ objc_lookup_ivar (tree other, tree id)
return build_ivar_reference (id);
}
+/* APPLE LOCAL begin mainline */
+/* Possibly rewrite a function CALL into an OBJ_TYPE_REF expression. This
+ needs to be done if we are calling a function through a cast. */
+
+tree
+objc_rewrite_function_call (tree function, tree params)
+{
+ if (TREE_CODE (function) == NOP_EXPR
+ && TREE_CODE (TREE_OPERAND (function, 0)) == ADDR_EXPR
+ && TREE_CODE (TREE_OPERAND (TREE_OPERAND (function, 0), 0))
+ == FUNCTION_DECL)
+ {
+ function = build (OBJ_TYPE_REF, TREE_TYPE (function),
+ TREE_OPERAND (function, 0),
+ TREE_VALUE (params), size_zero_node);
+ }
+
+ return function;
+}
+
+/* Look for the special case of OBJC_TYPE_REF with the address of
+ a function in OBJ_TYPE_REF_EXPR (presumably objc_msgSend or one
+ of its cousins). */
+
+/* APPLE LOCAL begin mainline */
+enum gimplify_status
+objc_gimplify_expr (tree *expr_p, tree *pre_p, tree *post_p)
+/* APPLE LOCAL end mainline */
+{
+ enum gimplify_status r0, r1;
+ /* APPLE LOCAL begin mainline */
+
+ if (TREE_CODE (*expr_p) == OBJ_TYPE_REF
+ /* APPLE LOCAL end mainline */
+ && TREE_CODE (OBJ_TYPE_REF_EXPR (*expr_p)) == ADDR_EXPR
+ /* APPLE LOCAL begin mainline */
+ && TREE_CODE (TREE_OPERAND (OBJ_TYPE_REF_EXPR (*expr_p), 0))
+ == FUNCTION_DECL)
+ /* APPLE LOCAL end mainline */
+ {
+ /* Postincrements in OBJ_TYPE_REF_OBJECT don't affect the
+ value of the OBJ_TYPE_REF, so force them to be emitted
+ during subexpression evaluation rather than after the
+ OBJ_TYPE_REF. This permits objc_msgSend calls in Objective
+ C to use direct rather than indirect calls when the
+ object expression has a postincrement. */
+ r0 = gimplify_expr (&OBJ_TYPE_REF_OBJECT (*expr_p), pre_p, NULL,
+ is_gimple_val, fb_rvalue);
+ r1 = gimplify_expr (&OBJ_TYPE_REF_EXPR (*expr_p), pre_p, post_p,
+ is_gimple_val, fb_rvalue);
+ /* APPLE LOCAL mainline */
+
+ return MIN (r0, r1);
+ }
+ /* APPLE LOCAL mainline */
+
+#ifdef OBJCPLUS
+ return cp_gimplify_expr (expr_p, pre_p, post_p);
+#else
+ return c_gimplify_expr (expr_p, pre_p, post_p);
+#endif
+}
+
+/* Given a CALL expression, find the function being called. The ObjC
+ version looks for the OBJ_TYPE_REF_EXPR which is used for objc_msgSend. */
+
+tree
+objc_get_callee_fndecl (tree call_expr)
+{
+ tree addr = TREE_OPERAND (call_expr, 0);
+ if (TREE_CODE (addr) != OBJ_TYPE_REF)
+ return 0;
+
+ addr = OBJ_TYPE_REF_EXPR (addr);
+
+ /* If the address is just `&f' for some function `f', then we know
+ that `f' is being called. */
+ if (TREE_CODE (addr) == ADDR_EXPR
+ && TREE_CODE (TREE_OPERAND (addr, 0)) == FUNCTION_DECL)
+ return TREE_OPERAND (addr, 0);
+
+ return 0;
+}
+/* APPLE LOCAL end mainline */
+
#include "gt-objc-objc-act.h"
diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h
index 9925d96ce6c..0f261aa3fd2 100644
--- a/gcc/objc/objc-act.h
+++ b/gcc/objc/objc-act.h
@@ -22,13 +22,23 @@ Boston, MA 02111-1307, USA. */
#ifndef GCC_OBJC_ACT_H
#define GCC_OBJC_ACT_H
+/* APPLE LOCAL begin mainline */
+/* For enum gimplify_status */
+#include "tree-gimple.h"
+
+/* APPLE LOCAL end mainline */
/*** Language hooks ***/
bool objc_init (void);
const char *objc_printable_name (tree, int);
+/* APPLE LOCAL mainline */
+tree objc_get_callee_fndecl (tree);
void objc_finish_file (void);
tree objc_fold_obj_type_ref (tree, tree);
-int objc_types_compatible_p (tree, tree);
+/* APPLE LOCAL mainline */
+/* The 'objc_types_compatible_p' routine has been removed. */
+/* APPLE LOCAL mainline */
+enum gimplify_status objc_gimplify_expr (tree *, tree *, tree *);
/* NB: The remaining public functions are prototyped in c-common.h, for the
benefit of stub-objc.c and objc-act.c. */
@@ -71,42 +81,46 @@ int objc_types_compatible_p (tree, tree);
/* ObjC-specific information pertaining to RECORD_TYPEs are stored in
the LANG_SPECIFIC structures, which may itself need allocating first. */
+
+/* APPLE LOCAL begin mainline */
+/* The following three macros must be overridden (in objcp/objcp-decl.h)
+ for Objective-C++. */
#define TYPE_OBJC_INFO(TYPE) TYPE_LANG_SPECIFIC (TYPE)->objc_info
+#define SIZEOF_OBJC_TYPE_LANG_SPECIFIC sizeof (struct lang_type)
+#define ALLOC_OBJC_TYPE_LANG_SPECIFIC(NODE) \
+ do { \
+ TYPE_LANG_SPECIFIC (NODE) = GGC_CNEW (struct lang_type); \
+ } while (0)
+
#define TYPE_HAS_OBJC_INFO(TYPE) \
- (TYPE_LANG_SPECIFIC (TYPE) \
- && TYPE_LANG_SPECIFIC (TYPE)->objc_info)
+ (TYPE_LANG_SPECIFIC (TYPE) && TYPE_OBJC_INFO (TYPE))
#define TYPE_OBJC_INTERFACE(TYPE) TREE_VEC_ELT (TYPE_OBJC_INFO (TYPE), 0)
#define TYPE_OBJC_PROTOCOL_LIST(TYPE) TREE_VEC_ELT (TYPE_OBJC_INFO (TYPE), 1)
+
#define INIT_TYPE_OBJC_INFO(TYPE) \
do \
{ \
if (!TYPE_LANG_SPECIFIC (TYPE)) \
- TYPE_LANG_SPECIFIC (TYPE) \
- = ALLOC_OBJC_TYPE_LANG_SPECIFIC; \
- if (!TYPE_LANG_SPECIFIC (TYPE)->objc_info) \
- TYPE_LANG_SPECIFIC (TYPE)->objc_info \
+ ALLOC_OBJC_TYPE_LANG_SPECIFIC(TYPE); \
+ if (!TYPE_OBJC_INFO (TYPE)) \
+ TYPE_OBJC_INFO (TYPE) \
= make_tree_vec (OBJC_INFO_SLOT_ELTS); \
} \
while (0)
#define DUP_TYPE_OBJC_INFO(DST, SRC) \
do \
{ \
- TYPE_LANG_SPECIFIC (DST) \
- = ALLOC_OBJC_TYPE_LANG_SPECIFIC; \
+ ALLOC_OBJC_TYPE_LANG_SPECIFIC(DST); \
if (TYPE_LANG_SPECIFIC (SRC)) \
memcpy (TYPE_LANG_SPECIFIC (DST), \
TYPE_LANG_SPECIFIC (SRC), \
SIZEOF_OBJC_TYPE_LANG_SPECIFIC); \
- TYPE_LANG_SPECIFIC (DST)->objc_info \
+ TYPE_OBJC_INFO (DST) \
= make_tree_vec (OBJC_INFO_SLOT_ELTS); \
} \
while (0)
-
-/* The following two macros must be overridden (in objcp/objcp-decl.h)
- for Objective-C++. */
-#define ALLOC_OBJC_TYPE_LANG_SPECIFIC GGC_CNEW (struct lang_type)
-#define SIZEOF_OBJC_TYPE_LANG_SPECIFIC sizeof (struct lang_type)
+/* APPLE LOCAL end mainline */
#define TYPED_OBJECT(TYPE) \
(TREE_CODE (TYPE) == RECORD_TYPE \
@@ -115,6 +129,11 @@ int objc_types_compatible_p (tree, tree);
#define OBJC_TYPE_NAME(TYPE) TYPE_NAME(TYPE)
#define OBJC_SET_TYPE_NAME(TYPE, NAME) (TYPE_NAME (TYPE) = NAME)
+/* APPLE LOCAL begin mainline */
+#define IDENTIFIER_INTERFACE_VALUE(NODE) \
+ (((struct lang_identifier *) (NODE))->interface_value)
+/* APPLE LOCAL end mainline */
+
/* Define the Objective-C or Objective-C++ language-specific tree codes. */
#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM,
@@ -164,6 +183,8 @@ struct imp_entry GTY(())
tree imp_template;
tree class_decl; /* _OBJC_CLASS_<my_name>; */
tree meta_decl; /* _OBJC_METACLASS_<my_name>; */
+ /* APPLE LOCAL mainline */
+ BOOL_BITFIELD has_cxx_cdtors : 1;
};
extern GTY(()) struct imp_entry *imp_list;
@@ -181,10 +202,13 @@ enum objc_tree_index
OCTI_STATIC_NST_DECL,
OCTI_SELF_ID,
OCTI_UCMD_ID,
- OCTI_UNUSED_LIST,
+ /* APPLE LOCAL mainline */
+ /* 'OCTI_UNUSED_LIST' removed. */
OCTI_SELF_DECL,
OCTI_UMSG_DECL,
+ /* APPLE LOCAL mainline */
+ OCTI_UMSG_FAST_DECL,
OCTI_UMSG_SUPER_DECL,
OCTI_UMSG_STRET_DECL,
OCTI_UMSG_SUPER_STRET_DECL,
@@ -235,6 +259,11 @@ enum objc_tree_index
OCTI_UUCLS_SUPER_REF,
OCTI_METH_TEMPL,
OCTI_IVAR_TEMPL,
+ /* APPLE LOCAL begin mainline */
+ OCTI_METH_LIST_TEMPL,
+ OCTI_METH_PROTO_LIST_TEMPL,
+ OCTI_IVAR_LIST_TEMPL,
+ /* APPLE LOCAL end mainline */
OCTI_SYMTAB_TEMPL,
OCTI_MODULE_TEMPL,
OCTI_SUPER_TEMPL,
@@ -252,6 +281,8 @@ enum objc_tree_index
OCTI_CNST_STR_TYPE,
OCTI_CNST_STR_GLOB_ID,
OCTI_STRING_CLASS_DECL,
+ /* APPLE LOCAL 4149909 */
+ OCTI_INTERNAL_CNST_STR_TYPE,
OCTI_SUPER_DECL,
OCTI_UMSG_NONNIL_DECL,
OCTI_UMSG_NONNIL_STRET_DECL,
@@ -272,6 +303,13 @@ enum objc_tree_index
OCTI_CATCH_TYPE,
OCTI_EXECCLASS_DECL,
+ /* APPLE LOCAL begin mainline */
+ OCTI_ASSIGN_IVAR_DECL,
+ OCTI_ASSIGN_IVAR_FAST_DECL,
+ OCTI_ASSIGN_GLOBAL_DECL,
+ OCTI_ASSIGN_STRONGCAST_DECL,
+ /* APPLE LOCAL end mainline */
+
OCTI_MAX
};
@@ -287,10 +325,13 @@ extern GTY(()) tree objc_global_trees[OCTI_MAX];
#define self_id objc_global_trees[OCTI_SELF_ID]
#define ucmd_id objc_global_trees[OCTI_UCMD_ID]
-#define unused_list objc_global_trees[OCTI_UNUSED_LIST]
+/* APPLE LOCAL mainline */
+/* 'unused_list' removed. */
#define self_decl objc_global_trees[OCTI_SELF_DECL]
#define umsg_decl objc_global_trees[OCTI_UMSG_DECL]
+/* APPLE LOCAL mainline */
+#define umsg_fast_decl objc_global_trees[OCTI_UMSG_FAST_DECL]
#define umsg_super_decl objc_global_trees[OCTI_UMSG_SUPER_DECL]
#define umsg_stret_decl objc_global_trees[OCTI_UMSG_STRET_DECL]
#define umsg_super_stret_decl objc_global_trees[OCTI_UMSG_SUPER_STRET_DECL]
@@ -402,8 +443,23 @@ extern GTY(()) tree objc_global_trees[OCTI_MAX];
#define execclass_decl objc_global_trees[OCTI_EXECCLASS_DECL]
+/* APPLE LOCAL begin mainline */
+#define objc_assign_ivar_decl objc_global_trees[OCTI_ASSIGN_IVAR_DECL]
+#define objc_assign_ivar_fast_decl \
+ objc_global_trees[OCTI_ASSIGN_IVAR_FAST_DECL]
+#define objc_assign_global_decl objc_global_trees[OCTI_ASSIGN_GLOBAL_DECL]
+#define objc_assign_strong_cast_decl \
+ objc_global_trees[OCTI_ASSIGN_STRONGCAST_DECL]
+/* APPLE LOCAL end mainline */
+
#define objc_method_template objc_global_trees[OCTI_METH_TEMPL]
#define objc_ivar_template objc_global_trees[OCTI_IVAR_TEMPL]
+/* APPLE LOCAL begin mainline */
+#define objc_method_list_ptr objc_global_trees[OCTI_METH_LIST_TEMPL]
+#define objc_method_proto_list_ptr \
+ objc_global_trees[OCTI_METH_PROTO_LIST_TEMPL]
+#define objc_ivar_list_ptr objc_global_trees[OCTI_IVAR_LIST_TEMPL]
+/* APPLE LOCAL end mainline */
#define objc_symtab_template objc_global_trees[OCTI_SYMTAB_TEMPL]
#define objc_module_template objc_global_trees[OCTI_MODULE_TEMPL]
#define objc_super_template objc_global_trees[OCTI_SUPER_TEMPL]
@@ -423,6 +479,8 @@ extern GTY(()) tree objc_global_trees[OCTI_MAX];
#define constant_string_global_id \
objc_global_trees[OCTI_CNST_STR_GLOB_ID]
#define string_class_decl objc_global_trees[OCTI_STRING_CLASS_DECL]
+/* APPLE LOCAL 4149909 */
+#define internal_const_str_type objc_global_trees[OCTI_INTERNAL_CNST_STR_TYPE]
#define UOBJC_SUPER_decl objc_global_trees[OCTI_SUPER_DECL]
#endif /* GCC_OBJC_ACT_H */
diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c
index 375bed9356a..9e0d001412b 100644
--- a/gcc/objc/objc-lang.c
+++ b/gcc/objc/objc-lang.c
@@ -45,9 +45,14 @@ enum c_language_kind c_language = clk_objc;
#define LANG_HOOKS_INIT objc_init
#undef LANG_HOOKS_DECL_PRINTABLE_NAME
#define LANG_HOOKS_DECL_PRINTABLE_NAME objc_printable_name
-#undef LANG_HOOKS_TYPES_COMPATIBLE_P
-#define LANG_HOOKS_TYPES_COMPATIBLE_P objc_types_compatible_p
-
+/* APPLE LOCAL mainline */
+/* The 'objc_types_compatible_p' routine has been removed. */
+/* APPLE LOCAL begin mainline */
+#undef LANG_HOOKS_GIMPLIFY_EXPR
+#define LANG_HOOKS_GIMPLIFY_EXPR objc_gimplify_expr
+#undef LANG_HOOKS_GET_CALLEE_FNDECL
+#define LANG_HOOKS_GET_CALLEE_FNDECL objc_get_callee_fndecl
+/* APPLE LOCAL end mainline */
/* Each front end provides its own lang hook initializer. */
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
diff --git a/gcc/objcp/ChangeLog b/gcc/objcp/ChangeLog
new file mode 100644
index 00000000000..220ac06117b
--- /dev/null
+++ b/gcc/objcp/ChangeLog
@@ -0,0 +1,7 @@
+2005-05-18 Geoffrey Keating <geoffk@apple.com>
+
+ * Make-lang.in (cc1objplus-dummy): New.
+ (cc1objplus-checksum.c): New.
+ (cc1objplus-checksum.o): New.
+ (cc1objplus): Add cc1objplus-checksum.o.
+
diff --git a/gcc/objcp/ChangeLog.apple-ppc b/gcc/objcp/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..1581cbc4c8c
--- /dev/null
+++ b/gcc/objcp/ChangeLog.apple-ppc
@@ -0,0 +1,22 @@
+2005-06-30 Devang Patel <dpatel@apple.com>
+
+ * lang-specs.h: While making PCH, invoke as if -fsave-repository
+ is used.
+
+2005-05-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4035492
+ * objcp-decl.c (objcp_start_struct, objcp_xref_tag): Adjust call
+ to xref_tag().
+ (objcp_build_component_ref): Remove function.
+ * objcp-decl.h (objcp_build_component_ref): Remove prototype.
+ (build_component_ref): Remove macro.
+ * objcp-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
+
+2005-02-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3982256
+ * ChangeLog.apple-ppc: New file.
+ * objcp-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Point at
+ objc_types_compatible_p().
+
diff --git a/gcc/objcp/Make-lang.in b/gcc/objcp/Make-lang.in
new file mode 100644
index 00000000000..5e23e91d8c0
--- /dev/null
+++ b/gcc/objcp/Make-lang.in
@@ -0,0 +1,165 @@
+# APPLE LOCAL file mainline
+# Top level -*- makefile -*- fragment for GNU Objective-C++
+# Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Contributed by Ziemowit Laski <zlaski@apple.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.
+
+# This file provides the language dependent support in the main Makefile.
+# Each language makefile fragment must provide the following targets:
+#
+# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
+# foo.install-normal, foo.install-common, foo.install-man,
+# foo.uninstall,
+# foo.mostlyclean, foo.clean, foo.distclean,
+# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
+#
+# where `foo' is the name of the language.
+#
+# It should also provide rules for:
+#
+# - making any compiler driver (eg: g++)
+# - the compiler proper (eg: cc1plus)
+# - define the names for selecting the language in LANGUAGES.
+
+#
+# Define the names for selecting Objective-C++ in LANGUAGES.
+OBJ-C++ obj-c++: cc1objplus$(exeext)
+
+# Tell GNU make to ignore these if they exist.
+.PHONY: Obj-c++ obj-C++
+
+# Use maximal warnings for this front end. Also, make ObjC and C++
+# headers accessible.
+objcp-warn = $(STRICT_WARN) -DOBJCPLUS -I$(srcdir)/objc -I$(srcdir)/cp
+
+# APPLE LOCAL begin order files --ilr
+ifeq ($(ORDER_FILES),yes)
+CC1OBJPLUS_ORDER_FLAGS = `if [ -f $(srcdir)/../order-files/cc1objplus.order ]; then \
+ echo -sectorder __TEXT __text $(srcdir)/../order-files/cc1objplus.order -e start ; fi`
+else
+CC1OBJPLUS_ORDER_FLAGS =
+endif
+# APPLE LOCAL end order files --ilr
+
+# Language-specific object files for Objective C++.
+OBJCXX_OBJS = objcp/objcp-act.o objcp/objcp-lang.o objcp/objcp-decl.o \
+ $(CXX_AND_OBJCXX_OBJS)
+
+# APPLE LOCAL begin order files --ilr
+ # APPLE LOCAL begin mainline 4.1 2005-06-17 3988498
+cc1objplus-dummy$(exeext): $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) \
+ $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+ $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) \
+ $(CC1OBJPLUS_ORDER_FLAGS)
+
+cc1objplus-checksum.c : cc1objplus-dummy$(exeext) build/genchecksum$(exeext)
+ build/genchecksum$(exeext) cc1objplus-dummy$(exeext) > $@
+
+cc1objplus-checksum.o : cc1objplus-checksum.c
+
+cc1objplus$(exeext): $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBDEPS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
+ $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBS) \
+ $(CC1OBJPLUS_ORDER_FLAGS)
+ # APPLE LOCAL end mainline 4.1 2005-06-17 3988498
+# APPLE LOCAL end order files --ilr
+
+# Objective C++ language specific files.
+
+objcp/objcp-lang.o : objcp/objcp-lang.c \
+ $(CXX_TREE_H) $(TM_H) toplev.h debug.h langhooks.h objc/objc-act.h \
+ $(LANGHOOKS_DEF_H) c-common.h gtype-objcp.h $(CXX_PRETTY_PRINT_H) \
+ $(DIAGNOSTIC_H) cp/cp-objcp-common.h tree-gimple.h
+
+objcp/objcp-decl.o : objcp/objcp-decl.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
+ toplev.h $(GGC_H) c-pragma.h input.h flags.h output.h objc/objc-act.h \
+ objcp/objcp-decl.h tree-gimple.h
+
+# The following must be an explicit rule; please keep in sync with the implicit
+# one in Makefile.in.
+objcp/objcp-act.o : objc/objc-act.c \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \
+ $(EXPR_H) $(TARGET_H) $(CXX_TREE_H) diagnostic.h toplev.h flags.h \
+ objc/objc-act.h input.h function.h output.h debug.h langhooks.h \
+ objcp/objcp-decl.h $(LANGHOOKS_DEF_H) $(HASHTAB_H) gt-objc-objc-act.h \
+ tree-gimple.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+
+po-generated:
+
+gtype-objcp.h : s-gtype ; @true
+
+#
+# Build hooks:
+
+obj-c++.all.build:
+obj-c++.all.cross:
+obj-c++.start.encap:
+obj-c++.rest.encap:
+obj-c++.info:
+obj-c++.srcinfo:
+obj-c++.srcextra:
+obj-c++.man:
+
+obj-c++.tags: force
+ cd $(srcdir)/objcp; etags -o TAGS.sub *.y *.c *.h; \
+ etags --include TAGS.sub --include ../TAGS.sub
+
+lang_checks += check-obj-c++
+
+#
+# Install hooks:
+# cc1objplus is installed elsewhere as part of $(COMPILERS).
+
+obj-c++.install-normal:
+
+obj-c++.install-common:
+
+obj-c++.install-man:
+
+obj-c++.uninstall:
+#
+# Clean hooks:
+# A lot of the ancillary files are deleted by the main makefile.
+# We just have to delete files specific to us.
+obj-c++.mostlyclean:
+ -rm -f objcp/*$(objext)
+ -rm -f objcp/*$(coverageexts)
+obj-c++.clean: obj-c++.mostlyclean
+obj-c++.distclean:
+ -rm -f objcp/config.status objcp/Makefile
+obj-c++.maintainer-clean:
+
+#
+# Stage hooks:
+
+obj-c++.stage1: stage1-start
+ -mv objcp/*$(objext) stage1/objcp
+obj-c++.stage2: stage2-start
+ -mv objcp/*$(objext) stage2/objcp
+obj-c++.stage3: stage3-start
+ -mv objcp/*$(objext) stage3/objcp
+obj-c++.stage4: stage4-start
+ -mv objcp/*$(objext) stage4/objcp
+obj-c++.stageprofile: stageprofile-start
+ -mv objcp/*$(objext) stageprofile/objcp
+obj-c++.stagefeedback: stagefeedback-start
+ -mv objcp/*$(objext) stagefeedback/objcp
diff --git a/gcc/objcp/config-lang.in b/gcc/objcp/config-lang.in
new file mode 100644
index 00000000000..0e0cb08b8d8
--- /dev/null
+++ b/gcc/objcp/config-lang.in
@@ -0,0 +1,47 @@
+# APPLE LOCAL file mainline
+# Top level configure fragment for GNU Objective-C++.
+# Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+# Contributed by Ziemowit Laski <zlaski@apple.com>
+
+#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.
+
+# Configure looks for the existence of this file to auto-config each language.
+# We define several parameters used by configure:
+#
+# language - name of language as it would appear in $(LANGUAGES)
+# compilers - value to add to $(COMPILERS)
+# stagestuff - files to add to $(STAGESTUFF)
+# diff_excludes - files to ignore when building diffs between two versions.
+
+language="obj-c++"
+
+compilers="cc1objplus\$(exeext)"
+
+stagestuff=""
+
+diff_excludes=""
+
+# Per GCC Steering Committee.
+build_by_default="no"
+
+# By building the Objective-C and C++ front-ends, we will get
+# the object files we need, along with the libraries (libstdc++,
+# libobjc).
+lang_requires="objc c++"
+
+gtfiles="\$(srcdir)/objcp/objcp-decl.c \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-act.h \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-lex.c \$(srcdir)/c-pragma.c"
diff --git a/gcc/objcp/lang-specs.h b/gcc/objcp/lang-specs.h
new file mode 100644
index 00000000000..29c581c011a
--- /dev/null
+++ b/gcc/objcp/lang-specs.h
@@ -0,0 +1,62 @@
+/* APPLE LOCAL file mainline */
+/* Definitions for specs for Objective-C++.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+ Contributed by Ziemowit Laski <zlaski@apple.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. */
+
+/* This is the contribution to the `default_compilers' array in gcc.c for
+ obj-c++. It is based on -- and should be kept in sync with -- the g++
+ spec (found in cp/lang-specs.h). */
+
+#ifndef CPLUSPLUS_CPP_SPEC
+#define CPLUSPLUS_CPP_SPEC 0
+#endif
+
+ {".mm", "@objective-c++", 0, 0, 0},
+ {".M", "@objective-c++", 0, 0, 0},
+ {"@objective-c++-header",
+ "%{E|M|MM:cc1objplus -E %(cpp_options) %2 %(cpp_debug_options)}\
+ %{!E:%{!M:%{!MM:\
+ %{save-temps|no-integrated-cpp:cc1objplus -E\
+ %(cpp_options) %2 -o %{save-temps:%b.mii} %{!save-temps:%g.mii} \n}\
+ cc1objplus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.mii} %{!save-temps:%g.mii}}\
+ %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+ %(cc1_options) %2 %{+e1*}\
+ "/* APPLE LOCAL ss2 */" \
+ -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*} %{fsave-repository=*: \n as -o %w%* %g.s %A}%V}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {"@objective-c++",
+ "%{E|M|MM:cc1objplus -E %(cpp_options) %2 %(cpp_debug_options)}\
+ %{!E:%{!M:%{!MM:\
+ %{save-temps|no-integrated-cpp:cc1objplus -E\
+ %(cpp_options) %2 -o %{save-temps:%b.mii} %{!save-temps:%g.mii} \n}\
+ cc1objplus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.mii} %{!save-temps:%g.mii}}\
+ %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+ %(cc1_options) %2 %{+e1*}\
+ %{!fsyntax-only:%(invoke_as)}}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {".mii", "@objective-c++-cpp-output", 0, 0, 0},
+ {"@objective-c++-cpp-output",
+ "%{!M:%{!MM:%{!E:\
+ cc1objplus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objc++-cpp-output",
+ "%{!M:%{!MM:%{!E:\
+ cc1objplus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
diff --git a/gcc/objcp/objcp-decl.c b/gcc/objcp/objcp-decl.c
new file mode 100644
index 00000000000..be82da8343c
--- /dev/null
+++ b/gcc/objcp/objcp-decl.c
@@ -0,0 +1,128 @@
+/* APPLE LOCAL file mainline */
+/* Process the ObjC-specific declarations and variables for
+ the Objective-C++ compiler.
+ Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Contributed by Ziemowit Laski <zlaski@apple.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 "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "tree.h"
+#include "rtl.h"
+#include "expr.h"
+#include "cp-tree.h"
+#include "c-common.h"
+#include "flags.h"
+#include "input.h"
+#include "except.h"
+#include "output.h"
+#include "toplev.h"
+#include "cpplib.h"
+#include "debug.h"
+#include "target.h"
+#include "varray.h"
+
+#include "objc-act.h"
+#include "objcp-decl.h"
+
+/* Hacks to simulate start_struct() and finish_struct(). */
+
+tree
+objcp_start_struct (enum tree_code code ATTRIBUTE_UNUSED, tree name)
+{
+ tree s;
+ /* The idea here is to mimic the actions that the C++ parser takes when
+ constructing 'extern "C" struct NAME {'. */
+ push_lang_context (lang_name_c);
+
+ if (!name)
+ name = make_anon_name ();
+
+ s = xref_tag (record_type, name, ts_global, 0);
+ CLASSTYPE_DECLARED_CLASS (s) = 0; /* this is a 'struct', not a 'class'. */
+ xref_basetypes (s, NULL_TREE); /* no base classes here! */
+
+ return begin_class_definition (s);
+}
+
+tree
+objcp_finish_struct (tree t, tree fieldlist, tree attributes)
+{
+ tree field, next_field;
+
+ for (field = fieldlist; field; field = next_field)
+ {
+ next_field = TREE_CHAIN (field); /* insert one field at a time; */
+ TREE_CHAIN (field) = NULL_TREE; /* otherwise, grokfield croaks. */
+ finish_member_declaration (field);
+ }
+ t = finish_struct (t, attributes);
+ pop_lang_context ();
+
+ return t;
+}
+
+void
+objcp_finish_function (void)
+{
+ /* The C++ flavor of 'finish_function' does not generate RTL -- one has
+ to call 'expand_or_defer_fn' to do that. */
+ expand_or_defer_fn (finish_function (0));
+}
+
+tree
+objcp_lookup_name (tree name)
+{
+ return lookup_name (name, -1);
+}
+
+tree
+objcp_xref_tag (enum tree_code code ATTRIBUTE_UNUSED, tree name)
+{
+ return xref_tag (record_type, name, ts_global, false);
+}
+
+int
+objcp_comptypes (tree type1, tree type2)
+{
+ return comptypes (type1, type2, COMPARE_STRICT);
+}
+
+tree
+objcp_begin_compound_stmt (int flags ATTRIBUTE_UNUSED)
+{
+ return begin_compound_stmt (0);
+}
+
+tree
+objcp_end_compound_stmt (tree stmt, int flags ATTRIBUTE_UNUSED)
+{
+ /* The following has been snarfed from
+ cp/semantics.c:finish_compound_stmt(). */
+ if (TREE_CODE (stmt) == BIND_EXPR)
+ BIND_EXPR_BODY (stmt) = do_poplevel (BIND_EXPR_BODY (stmt));
+ else if (STATEMENT_LIST_NO_SCOPE (stmt))
+ stmt = pop_stmt_list (stmt);
+ else
+ stmt = do_poplevel (stmt);
+
+ return stmt;
+}
diff --git a/gcc/objcp/objcp-decl.h b/gcc/objcp/objcp-decl.h
new file mode 100644
index 00000000000..376c343034f
--- /dev/null
+++ b/gcc/objcp/objcp-decl.h
@@ -0,0 +1,93 @@
+/* APPLE LOCAL file mainline */
+/* Process the ObjC-specific declarations and variables for
+ the Objective-C++ compiler.
+ Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Contributed by Ziemowit Laski <zlaski@apple.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. */
+
+#ifndef GCC_OBJCP_DECL_H
+#define GCC_OBJCP_DECL_H
+
+extern tree objcp_start_struct (enum tree_code, tree);
+extern tree objcp_finish_struct (tree, tree, tree);
+extern void objcp_finish_function (void);
+extern tree objcp_lookup_name (tree);
+extern tree objcp_build_function_call (tree, tree);
+extern tree objcp_xref_tag (enum tree_code, tree);
+extern int objcp_comptypes (tree, tree);
+extern tree objcp_builtin_function (const char *, tree, int,
+ enum built_in_class, const char *, tree);
+extern tree objcp_begin_compound_stmt (int);
+extern tree objcp_end_compound_stmt (tree, int);
+
+/* Now "cover up" the corresponding C++ functions if required (NB: the
+ OBJCP_ORIGINAL_FUNCTION macro, shown below, can still be used to
+ invoke the original C++ functions if needed). */
+#ifdef OBJCP_REMAP_FUNCTIONS
+
+#define start_struct(code, name) \
+ objcp_start_struct (code, name)
+#define finish_struct(t, fieldlist, attributes) \
+ objcp_finish_struct (t, fieldlist, attributes)
+#define finish_function() \
+ objcp_finish_function ()
+#define lookup_name(name) \
+ objcp_lookup_name (name)
+#define xref_tag(code, name) \
+ objcp_xref_tag (code, name)
+#define comptypes(type1, type2) \
+ objcp_comptypes (type1, type2)
+#define c_begin_compound_stmt(flags) \
+ objcp_begin_compound_stmt (flags)
+#define c_end_compound_stmt(stmt, flags) \
+ objcp_end_compound_stmt (stmt, flags)
+
+#undef OBJC_TYPE_NAME
+#define OBJC_TYPE_NAME(type) \
+ (TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL \
+ ? DECL_NAME (TYPE_NAME (type)) \
+ : TYPE_NAME (type))
+#undef OBJC_SET_TYPE_NAME
+#define OBJC_SET_TYPE_NAME(type, name) \
+ if(TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL) \
+ DECL_NAME (TYPE_NAME (type)) = name; \
+ else \
+ TYPE_NAME (type) = name;
+
+#undef TYPE_OBJC_INFO
+#define TYPE_OBJC_INFO(TYPE) LANG_TYPE_CLASS_CHECK (TYPE)->objc_info
+#undef SIZEOF_OBJC_TYPE_LANG_SPECIFIC
+#define SIZEOF_OBJC_TYPE_LANG_SPECIFIC sizeof (struct lang_type_class)
+#undef ALLOC_OBJC_TYPE_LANG_SPECIFIC
+#define ALLOC_OBJC_TYPE_LANG_SPECIFIC(NODE) \
+ do { \
+ TYPE_LANG_SPECIFIC (NODE) = GGC_CNEWVAR \
+ (struct lang_type, sizeof (struct lang_type_class)); \
+ TYPE_LANG_SPECIFIC (NODE)->u.c.h.is_lang_type_class = 1; \
+ } while (0)
+
+#define OBJCP_ORIGINAL_FUNCTION(name, args) (name)args
+
+/* C++ marks ellipsis-free function parameters differently from C. */
+#undef OBJC_VOID_AT_END
+#define OBJC_VOID_AT_END void_list_node
+
+#endif /* OBJCP_REMAP_FUNCTIONS */
+
+#endif /* ! GCC_OBJCP_DECL_H */
diff --git a/gcc/objcp/objcp-lang.c b/gcc/objcp/objcp-lang.c
new file mode 100644
index 00000000000..afb7e9457e7
--- /dev/null
+++ b/gcc/objcp/objcp-lang.c
@@ -0,0 +1,144 @@
+/* APPLE LOCAL file mainline */
+/* Language-dependent hooks for Objective-C++.
+ Copyright 2001, 2002, 2004 Free Software Foundation, Inc.
+ Contributed by Ziemowit Laski <zlaski@apple.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 "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "tree.h"
+#include "cp-tree.h"
+#include "c-common.h"
+#include "toplev.h"
+#include "objc-act.h"
+#include "langhooks.h"
+#include "langhooks-def.h"
+#include "diagnostic.h"
+#include "cxx-pretty-print.h"
+#include "debug.h"
+#include "cp-objcp-common.h"
+
+enum c_language_kind c_language = clk_objcxx;
+
+/* Lang hooks common to C++ and ObjC++ are declared in cp/cp-objcp-common.h;
+ consequently, there should be very few hooks below. */
+
+#undef LANG_HOOKS_NAME
+#define LANG_HOOKS_NAME "GNU Objective-C++"
+#undef LANG_HOOKS_INIT
+#define LANG_HOOKS_INIT objc_init
+#undef LANG_HOOKS_DECL_PRINTABLE_NAME
+#define LANG_HOOKS_DECL_PRINTABLE_NAME objc_printable_name
+#undef LANG_HOOKS_GIMPLIFY_EXPR
+#define LANG_HOOKS_GIMPLIFY_EXPR objc_gimplify_expr
+#undef LANG_HOOKS_GET_CALLEE_FNDECL
+#define LANG_HOOKS_GET_CALLEE_FNDECL objc_get_callee_fndecl
+/* Each front end provides its own lang hook initializer. */
+const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
+
+/* Tree code classes. */
+
+#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE,
+
+const enum tree_code_class tree_code_type[] = {
+#include "tree.def"
+ tcc_exceptional,
+#include "c-common.def"
+ tcc_exceptional,
+#include "cp-tree.def"
+ tcc_exceptional,
+#include "objc-tree.def"
+};
+#undef DEFTREECODE
+
+/* Table indexed by tree code giving number of expression
+ operands beyond the fixed part of the node structure.
+ Not used for types or decls. */
+
+#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH,
+
+const unsigned char tree_code_length[] = {
+#include "tree.def"
+ 0,
+#include "c-common.def"
+ 0,
+#include "cp-tree.def"
+ 0,
+#include "objc-tree.def"
+};
+#undef DEFTREECODE
+
+/* Names of tree components.
+ Used for printing out the tree and error messages. */
+#define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME,
+
+const char *const tree_code_name[] = {
+#include "tree.def"
+ "@@dummy",
+#include "c-common.def"
+ "@@dummy",
+#include "cp-tree.def"
+ "@@dummy",
+#include "objc-tree.def"
+};
+#undef DEFTREECODE
+
+/* Lang hook routines common to C++ and ObjC++ appear in cp/cp-objcp-common.c;
+ there should be very few (if any) routines below. */
+
+tree
+objcp_tsubst_copy_and_build (tree t, tree args, tsubst_flags_t complain,
+ tree in_decl, bool function_p ATTRIBUTE_UNUSED)
+{
+#define RECURSE(NODE) \
+ tsubst_copy_and_build (NODE, args, complain, in_decl, /*function_p=*/false)
+
+ /* The following two can only occur in Objective-C++. */
+
+ switch ((int) TREE_CODE (t))
+ {
+ case MESSAGE_SEND_EXPR:
+ return objc_finish_message_expr
+ (RECURSE (TREE_OPERAND (t, 0)),
+ TREE_OPERAND (t, 1), /* No need to expand the selector. */
+ RECURSE (TREE_OPERAND (t, 2)));
+
+ case CLASS_REFERENCE_EXPR:
+ return objc_get_class_reference
+ (RECURSE (TREE_OPERAND (t, 0)));
+
+ default:
+ break;
+ }
+
+ /* Fall back to C++ processing. */
+ return NULL_TREE;
+
+#undef RECURSE
+}
+
+void
+finish_file (void)
+{
+ objc_finish_file ();
+}
+
+#include "gtype-objcp.h"
diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk
index a21f29d4b12..00e6d016130 100644
--- a/gcc/opt-functions.awk
+++ b/gcc/opt-functions.awk
@@ -18,6 +18,14 @@
# Some common subroutines for use by opt[ch]-gen.awk.
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+# Return nonzero if FLAGS contains a flag matching REGEX.
+function flag_set_p(regex, flags)
+{
+ return (" " flags " ") ~ (" " regex " ")
+}
+# APPLE LOCAL end optimization pragmas 3124235/3420242
+
function switch_flags (flags)
{
flags = " " flags " "
@@ -37,6 +45,10 @@ function switch_flags (flags)
if (flags ~ " UInteger ") result = result " | CL_UINTEGER"
if (flags ~ " Undocumented ") result = result " | CL_UNDOCUMENTED"
if (flags ~ " Report ") result = result " | CL_REPORT"
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ if (flags ~ " VarUint ") result = result " | CL_VARUINT"
+ if (flags ~ " PerFunc ") result = result " | CL_PERFUNC"
+# APPLE LOCAL end optimization pragmas 3124235/3420242
sub( "^0 \\| ", "", result )
return result
}
@@ -69,8 +81,35 @@ function var_set(flags)
function var_ref(flags)
{
name = var_name(flags)
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ if (flags ~ "PerFunc") {
+ if (flags ~ "VarUint") {
+ return "&cl_pf_opts.fld_" name
+ } else {
+ return "0"
+ }
+ }
+# APPLE LOCAL end optimization pragmas 3124235/3420242
if (name == "")
return "0"
else
return "&" name
}
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+# Given that an option has flags FLAGS, return an initializer for the
+# "access_flag" field of its cl_options[] entry. This applies only to
+# PerFunc VarUint things (bitfields) at the moment.
+function access_ref(flags)
+{
+ name = var_name(flags)
+ if (flags !~ "PerFunc") {
+ return "0"
+ }
+ if (flags ~ "VarUint") {
+ return "0"
+ }
+ if (name != "")
+ return "cl_opt_access_func_" name
+ return "0"
+}
+# APPLE LOCAL end optimization pragmas 3124235/3420242
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index 3ed1cf881be..973e3b704cc 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -51,8 +51,14 @@ BEGIN {
# Dump that array of options into a C file.
END {
-print "/* This file is auto-generated by opts.sh. */"
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+print "/* This file is auto-generated by optc-gen.awk. */"
print ""
+print "#include " quote "config.h" quote
+print "#include " quote "system.h" quote
+print "#include " quote "coretypes.h" quote
+print "#include " quote "hwint.h" quote
+# APPLE LOCAL end optimization pragmas 3124235/3420242
print "#include <intl.h>"
print "#include " quote header_name quote
print "#include " quote "opts.h" quote
@@ -63,23 +69,97 @@ for (i = 0; i < n_opts; i++) {
if (name == "")
continue;
- if (flags[i] ~ "VarExists")
- continue;
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (flag_set_p("PerFunc", flags[i]))
+ continue;
+# APPLE LOCAL end optimization pragmas 3124235/3420242
if (flags[i] ~ "Init\\(")
{
init = flags[i];
sub(".*Init\\(","",init);
sub("\\).*","",init);
- init = " = " init;
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+# APPLE LOCAL end optimization pragmas 3124235/3420242
}
else
- init = "";
+# APPLE LOCAL optimization pragmas 3124235/3420242
+ init = "0";
- printf ("/* Set by -%s.\n %s */\nint %s%s;\n\n",
+# APPLE LOCAL optimization pragmas 3124235/3420242
+ printf ("/* Set by -%s.\n %s */\nint %s = %s;\n\n",
opts[i], help[i], name,init)
}
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+print "struct cl_perfunc_opts cl_pf_opts = {\n"
+
+# Per-function bitfield initializers.
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (flag_set_p("VarUint", flags[i]))
+ continue;
+
+ if (flags[i] ~ "Init\\(")
+ {
+ init = flags[i];
+ sub(".*Init\\(","",init);
+ sub("\\).*","",init);
+ }
+ else
+ init = "0";
+
+ print init ", /* fld_" name " */ "
+}
+
+print "0, /* fld_optimize_size */"
+
+# Padding, see comments in opth-gen.awk.
+
+print "0, /* padding */"
+
+# Per-function non-bitfield initializers.
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (!flag_set_p("VarUint", flags[i]))
+ continue;
+
+ if (flags[i] ~ "Init\\(")
+ {
+ init = flags[i];
+ sub(".*Init\\(","",init);
+ sub("\\).*","",init);
+ }
+ else
+ init = "0";
+
+ print init ", /* fld_" name " */ "
+}
+
+print "0 /* fld_optimize */"
+print "};"
+
+print "struct cl_perfunc_opts cl_pf_opts_raw;"
+print "struct cl_perfunc_opts cl_pf_opts_cooked;"
+# APPLE LOCAL end optimization pragmas 3124235/3420242
print "const char * const lang_names[] =\n{"
for (i = 0; i < n_langs; i++) {
@@ -92,6 +172,30 @@ for (i = 0; i < n_langs; i++) {
print " 0\n};\n"
print "const unsigned int cl_options_count = N_OPTS;\n"
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+# Access functions for per-function bitfields.
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (!flag_set_p("VarUint", flags[i])) {
+ print "int cl_opt_access_func_" name " (int value, unsigned int rw)"
+ print "{"
+ print " if (rw == 1)"
+ print " {"
+ printf (" cl_pf_opts.fld_%s = value;\n", name)
+ print " }"
+ printf (" return cl_pf_opts.fld_%s;\n", name)
+ print "}"
+ }
+}
+# APPLE LOCAL end optimization pragmas 3124235/3420242
+
print "const struct cl_option cl_options[] =\n{"
for (i = 0; i < n_opts; i++)
@@ -134,10 +238,13 @@ for (i = 0; i < n_opts; i++)
else
hlp = "N_(" quote help[i] quote ")";
- printf(" { %c-%s%c,\n %s,\n %s, %u, %s, %s, %s }%s\n",
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ printf(" { %c-%s%c,\n %s,\n %s, %u, %s, %s, %s, %s }%s\n",
quote, opts[i], quote, hlp, back_chain[i], len,
switch_flags(flags[i]),
- var_ref(flags[i]), var_set(flags[i]), comma)
+ var_ref(flags[i]), access_ref(flags[i]),
+ var_set(flags[i]), comma)
+# APPLE LOCAL end optimization pragmas 3124235/3420242
}
print "};"
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
index 6cea944bc49..6cec61797c1 100644
--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -48,7 +48,8 @@ BEGIN {
# Dump out an enumeration into a .h file.
# Combine the flags of duplicate options.
END {
-print "/* This file is auto-generated by opts.sh. */"
+# APPLE LOCAL optimization pragmas 3124235/3420242
+print "/* This file is auto-generated by opth-gen.awk. */"
print ""
print "#ifndef OPTIONS_H"
print "#define OPTIONS_H"
@@ -61,11 +62,100 @@ for (i = 0; i < n_opts; i++) {
print "/* Set by -" opts[i] "."
print " " help[i] " */"
- print "extern int " name ";"
+# APPLE LOCAL begin optimization pragmas 3124235/3420242
+ if (!flag_set_p("PerFunc", flags[i])) {
+ print "extern int " name ";"
+ } else {
+ if (flag_set_p("VarExists"))
+ continue;
+ print "#define " name " (cl_pf_opts.fld_" name ")"
+ }
print ""
-
}
+print "/* Nonzero means do optimizations. -O."
+print " Particular numeric values stand for particular amounts of optimization;"
+print " thus, -O2 stores 2 here. However, the optimizations beyond the basic"
+print " ones are not controlled directly by this variable. Instead, they are"
+print " controlled by individual `flag_...' variables that are defaulted"
+print " based on this variable. */"
+
+print "#define optimize (cl_pf_opts.fld_optimize)"
+
+print ""
+print "/* Nonzero means optimize for size. -Os."
+print " The only valid values are zero and nonzero. When optimize_size is"
+print " nonzero, optimize defaults to 2, but certain individual code"
+print " bloating optimizations are disabled. */"
+
+print "#define optimize_size (cl_pf_opts.fld_optimize_size)"
+print ""
+
+print "/* Flags which may be changed per function. */"
+count = 0
+print "struct cl_perfunc_opts {"
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (!flag_set_p("VarUint", flags[i]))
+ {
+ print " unsigned int fld_" name ":1;"
+ count++
+ }
+}
+
+print " unsigned int fld_optimize_size:1;"
+count++
+
+# Explicit padding so there are no holes, which might be
+# handled strangely by the hashing and comparison functions.
+# FIXME: A full word of padding is used in the case where we're
+# already at a word boundary; this is currently irrelevant.
+
+print " unsigned int padding: (HOST_BITS_PER_INT-("count"-(" count "/HOST_BITS_PER_INT)*HOST_BITS_PER_INT));"
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (flag_set_p("VarUint", flags[i]))
+ print " int fld_" name ";"
+}
+
+print " int fld_optimize;"
+print "};"
+print ""
+print "/* cl_pf_opts changes dynamically as pragmas are handled. */"
+print "extern struct cl_perfunc_opts cl_pf_opts;"
+print "/* " quote "raw" quote " options are before command line parsing. */"
+print "extern struct cl_perfunc_opts cl_pf_opts_raw;"
+print "/* " quote "cooked" quote " options are after command line parsing. */"
+print "extern struct cl_perfunc_opts cl_pf_opts_cooked;"
+
+for (i = 0; i < n_opts; i++) {
+ name = var_name(flags[i]);
+ if (name == "")
+ continue;
+ if (flag_set_p("VarExists", flags[i]))
+ continue;
+ if (!flag_set_p("PerFunc", flags[i]))
+ continue;
+ if (!flag_set_p("VarUint", flags[i]))
+ print "extern int cl_opt_access_func_" name " (int, unsigned int);"
+}
+
+print "extern int cl_opt_access_func_optimize_size (int, unsigned int);"
+# APPLE LOCAL end optimization pragmas 3124235/3420242
for (i = 0; i < n_langs; i++) {
macros[i] = "CL_" langs[i]
diff --git a/gcc/opts.c b/gcc/opts.c
index 8af263a8498..61f87e20d9f 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -38,6 +38,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tm_p.h" /* For OPTIMIZATION_OPTIONS. */
#include "insn-attr.h" /* For INSN_SCHEDULING. */
#include "target.h"
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+#include "hashtab.h"
/* Value of the -G xx switch, and whether it was passed or not. */
unsigned HOST_WIDE_INT g_switch_value;
@@ -373,6 +375,21 @@ handle_option (const char **argv, unsigned int lang_mask)
*option->flag_var = value;
}
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ else if (option->access_flag)
+ {
+ if (option->has_set_value)
+ {
+ if (value)
+ (option->access_flag) (option->set_value, 1);
+ else
+ (option->access_flag) (!option->set_value, 1);
+ }
+ else
+ (option->access_flag) (value, 1);
+ }
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
if (option->flags & lang_mask)
if (lang_hooks.handle_option (opt_index, arg, value) == 0)
result = 0;
@@ -428,54 +445,28 @@ handle_options (unsigned int argc, const char **argv, unsigned int lang_mask)
}
}
-/* Parse command line options and set default flag values. Do minimal
- options processing. */
-void
-decode_options (unsigned int argc, const char **argv)
-{
- unsigned int i, lang_mask;
-
- /* Perform language-specific options initialization. */
- lang_mask = lang_hooks.init_options (argc, argv);
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* Use OPTIMIZE and OPTIMIZE_SIZE to set default values of more
+ detailed flags that they control. CMDLINE tells whether this
+ is the first call, from the command line, or a later call due
+ to user pragmas. Those flags which are not safe to change on
+ a per-function basis are not reset when !CMDLINE. (FIXME:
+ There should be some better way to identify these than handcoding.) */
- lang_hooks.initialize_diagnostics (global_dc);
-
- /* Scan to see what optimization level has been specified. That will
- determine the default value of many flags. */
- for (i = 1; i < argc; i++)
- {
- if (!strcmp (argv[i], "-O"))
- {
- optimize = 1;
- optimize_size = 0;
- }
- else if (argv[i][0] == '-' && argv[i][1] == 'O')
- {
- /* Handle -Os, -O2, -O3, -O69, ... */
- const char *p = &argv[i][2];
-
- if ((p[0] == 's') && (p[1] == 0))
- {
- optimize_size = 1;
-
- /* Optimizing for size forces optimize to be 2. */
- optimize = 2;
- }
- else
- {
- const int optimize_val = read_integral_parameter (p, p - 2, -1);
- if (optimize_val != -1)
- {
- optimize = optimize_val;
- optimize_size = 0;
- }
- }
- }
- }
+void set_flags_from_O (unsigned int cmdline)
+{
+ /* Reset flags to the "raw" state before command line processing,
+ except for optimize and optimize_size. */
+ int save_optimize_size = optimize_size;
+ int save_optimize = optimize;
+ cl_pf_opts = cl_pf_opts_raw;
+ optimize = save_optimize;
+ optimize_size = save_optimize_size;
if (!optimize)
{
- flag_merge_constants = 0;
+ if (cmdline)
+ flag_merge_constants = 0;
}
if (optimize >= 1)
@@ -496,6 +487,13 @@ decode_options (unsigned int argc, const char **argv)
flag_tree_dce = 1;
flag_tree_dom = 1;
flag_tree_dse = 1;
+ /* APPLE LOCAL begin lno */
+ flag_tree_loop_im = 1;
+ flag_ivopts = 1;
+ flag_tree_vectorize = 0;
+ flag_tree_loop_linear = 0;
+ flag_tree_pre = 1;
+ /* APPLE LOCAL end lno */
flag_tree_ter = 1;
flag_tree_live_range_split = 1;
flag_tree_sra = 1;
@@ -525,18 +523,25 @@ decode_options (unsigned int argc, const char **argv)
flag_rerun_cse_after_loop = 1;
flag_rerun_loop_opt = 1;
flag_caller_saves = 1;
+/* APPLE LOCAL begin radar 4153339 */
+/** Removed - Note! Mainline will removed the entire -fforce-mem functionality.
flag_force_mem = 1;
+*/
+/* APPLE LOCAL end radar 4153339 */
flag_peephole2 = 1;
#ifdef INSN_SCHEDULING
flag_schedule_insns = 1;
flag_schedule_insns_after_reload = 1;
#endif
flag_regmove = 1;
- flag_strict_aliasing = 1;
flag_delete_null_pointer_checks = 1;
flag_reorder_blocks = 1;
- flag_reorder_functions = 1;
- flag_unit_at_a_time = 1;
+ if (cmdline)
+ {
+ flag_strict_aliasing = 1;
+ flag_reorder_functions = 1;
+ flag_unit_at_a_time = 1;
+ }
if (!optimize_size)
{
@@ -547,7 +552,8 @@ decode_options (unsigned int argc, const char **argv)
if (optimize >= 3)
{
- flag_inline_functions = 1;
+ if (cmdline)
+ flag_inline_functions = 1;
flag_unswitch_loops = 1;
flag_gcse_after_reload = 1;
}
@@ -557,7 +563,8 @@ decode_options (unsigned int argc, const char **argv)
align_loops = 1;
align_jumps = 1;
align_labels = 1;
- align_functions = 1;
+ if (cmdline)
+ align_functions = 1;
/* Don't reorder blocks when optimizing for size because extra
jump insns may be created; also barrier may create extra padding.
@@ -572,15 +579,93 @@ decode_options (unsigned int argc, const char **argv)
if (optimize_size)
{
- /* Inlining of very small functions usually reduces total size. */
- set_param_value ("max-inline-insns-single", 5);
- set_param_value ("max-inline-insns-auto", 5);
- flag_inline_functions = 1;
+ if (cmdline)
+ {
+ /* Inlining of very small functions usually reduces total size. */
+ set_param_value ("max-inline-insns-single", 5);
+ set_param_value ("max-inline-insns-auto", 5);
+ flag_inline_functions = 1;
+
+ /* We want to crossjump as much as possible. */
+ set_param_value ("min-crossjump-insns", 1);
+ }
+ }
+}
+
+/* Parse command line options and set default flag values. Do minimal
+ options processing. */
+void
+decode_options (unsigned int argc, const char **argv)
+{
+ unsigned int i, lang_mask;
+
+ /* Perform language-specific options initialization. */
+ lang_mask = lang_hooks.init_options (argc, argv);
+
+ lang_hooks.initialize_diagnostics (global_dc);
+
+ /* Make a backup copy of the default, pre-command line options.
+ Note this includes "optimize" and "optimize_size". */
+ cl_pf_opts_raw = cl_pf_opts;
+
+ /* Scan to see what optimization level has been specified. That will
+ determine the default value of many flags. */
+ for (i = 1; i < argc; i++)
+ {
+ if (!strcmp (argv[i], "-O"))
+ {
+ optimize = 1;
+ optimize_size = 0;
+ }
+ else if (argv[i][0] == '-' && argv[i][1] == 'O')
+ {
+ /* Handle -Os, -O2, -O3, -O69, ... */
+ const char *p = &argv[i][2];
- /* We want to crossjump as much as possible. */
- set_param_value ("min-crossjump-insns", 1);
+ if ((p[0] == 's') && (p[1] == 0))
+ {
+ optimize_size = 1;
+
+ /* Optimizing for size forces optimize to be 2. */
+ optimize = 2;
+ }
+ else
+ {
+ const int optimize_val = read_integral_parameter (p, p - 2, -1);
+ if (optimize_val != -1)
+ {
+ optimize = optimize_val;
+ optimize_size = 0;
+ }
+ }
+ }
+ /* APPLE LOCAL begin -fast or -fastf or -fastcp */
+ else if (argv[i][0] == '-' && argv[i][1] == 'f')
+ {
+ const char *p = &argv[i][2];
+ if (!strcmp(p, "ast"))
+ flag_fast = 1;
+ else if (!strcmp(p, "astf"))
+ flag_fastf = 1;
+ else if (!strcmp(p, "astcp"))
+ flag_fastcp = 1;
+ }
}
+ if (flag_fast || flag_fastf || flag_fastcp )
+ {
+ optimize = 3;
+ optimize_size = 0;
+ /* This goes here, rather than in rs6000.c, so that
+ later -fcommon can override it. */
+ if (flag_fast || flag_fastcp)
+ flag_no_common = 1;
+ }
+ /* APPLE LOCAL end -fast or -fastf or -fastcp */
+
+ set_flags_from_O (true);
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
/* Initialize whether `char' is signed. */
flag_signed_char = DEFAULT_SIGNED_CHAR;
/* Set this to a special "uninitialized" value. The actual default is set
@@ -662,6 +747,13 @@ decode_options (unsigned int argc, const char **argv)
flag_reorder_blocks_and_partition = 0;
flag_reorder_blocks = 1;
}
+
+ /* APPLE LOCAL begin AV 3846092 */
+ /* We have apple local patch to disable -fstrict-aliasing when -O2 is used.
+ Do not disable it when -ftree-vectorize is used. */
+ if (optimize >= 2 && flag_tree_vectorize)
+ flag_strict_aliasing = 1;
+ /* APPLE LOCAL end AV 3846092 */
}
/* Handle target- and language-independent options. Return zero to
@@ -676,6 +768,12 @@ common_handle_option (size_t scode, const char *arg, int value)
switch (code)
{
+ /* APPLE LOCAL begin fat builds */
+ case OPT_arch:
+ /* Ignore for now. */
+ break;
+ /* APPLE LOCAL end fat builds */
+
case OPT__help:
print_help ();
exit_after_options = true;
@@ -755,21 +853,39 @@ common_handle_option (size_t scode, const char *arg, int value)
dump_base_name = arg;
break;
- case OPT_falign_functions_:
- align_functions = value;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+ /* APPLE LOCAL begin falign-jumps-max-skip */
+ case OPT_falign_jumps_max_skip_:
+ align_jumps_max_skip = value;
break;
- case OPT_falign_jumps_:
- align_jumps = value;
+ case OPT_falign_loops_max_skip_:
+ align_loops_max_skip = value;
break;
+ /* APPLE LOCAL end falign-jumps-max-skip */
- case OPT_falign_labels_:
- align_labels = value;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+ /* APPLE LOCAL begin predictive compilation */
+ case OPT_fpredictive_compilation:
+ predictive_compilation = 0;
break;
- case OPT_falign_loops_:
- align_loops = value;
- break;
+ case OPT_fpredictive_compilation_:
+ {
+ char* buf = xmalloc (strlen(arg) + 1);
+ sprintf (buf, "%d", value);
+ if (strcmp(buf, arg))
+ {
+ error ("argument to \"-fpredictive-compilation=\" should be a valid non-negative integer instead of \"%s\"", arg);
+ value = 0;
+ }
+ free(buf);
+ predictive_compilation = value;
+ break;
+ }
+ /* APPLE LOCAL end predictive compilation */
case OPT_fbranch_probabilities:
flag_branch_probabilities_set = true;
@@ -834,6 +950,9 @@ common_handle_option (size_t scode, const char *arg, int value)
profile_arc_flag_set = true;
break;
+ /* APPLE LOCAL begin add fuse-profile */
+ case OPT_fuse_profile:
+ /* APPLE LOCAL end add fuse-profile */
case OPT_fprofile_use:
if (!flag_branch_probabilities_set)
flag_branch_probabilities = value;
@@ -853,6 +972,9 @@ common_handle_option (size_t scode, const char *arg, int value)
#endif
break;
+ /* APPLE LOCAL begin add fcreate-profile */
+ case OPT_fcreate_profile:
+ /* APPLE LOCAL end add fcreate-profile */
case OPT_fprofile_generate:
if (!profile_arc_flag_set)
profile_arc_flag = value;
@@ -906,13 +1028,8 @@ common_handle_option (size_t scode, const char *arg, int value)
flag_random_seed = arg;
break;
- case OPT_fsched_verbose_:
-#ifdef INSN_SCHEDULING
- fix_sched_param ("verbose", arg);
- break;
-#else
- return 0;
-#endif
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
case OPT_fsched_stalled_insns_:
flag_sched_stalled_insns = value;
@@ -920,9 +1037,8 @@ common_handle_option (size_t scode, const char *arg, int value)
flag_sched_stalled_insns = -1;
break;
- case OPT_fsched_stalled_insns_dep_:
- flag_sched_stalled_insns_dep = value;
- break;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
case OPT_fstack_limit:
/* The real switch is -fno-stack-limit. */
@@ -970,6 +1086,12 @@ common_handle_option (size_t scode, const char *arg, int value)
flag_unroll_loops_set = true;
break;
+ /* APPLE LOCAL begin fwritable strings */
+ case OPT_fwritable_strings:
+ flag_writable_strings = value;
+ break;
+ /* APPLE LOCAL end fwritable strings */
+
case OPT_g:
set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, arg);
break;
@@ -1015,7 +1137,8 @@ common_handle_option (size_t scode, const char *arg, int value)
default:
/* If the flag was handled in a standard way, assume the lack of
processing here is intentional. */
- if (cl_options[scode].flag_var)
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ if (cl_options[scode].flag_var || cl_options[scode].access_flag)
break;
abort ();
@@ -1097,6 +1220,7 @@ set_fast_math_flags (int set)
{
flag_signaling_nans = 0;
flag_rounding_math = 0;
+ flag_cx_limited_range = 1;
}
}
@@ -1132,6 +1256,12 @@ set_debug_level (enum debug_info_type type, int extended, const char *arg)
#elif defined DBX_DEBUGGING_INFO
write_symbols = DBX_DEBUG;
#endif
+/* APPLE LOCAL begin dwarf */
+/* Even though DWARF2_DEBUGGING_INFO is defined, use stabs for
+ debugging symbols with -ggdb. Remove this local patch when we
+ switch to dwarf. */
+ write_symbols = DBX_DEBUG;
+/* APPLE LOCAL end dwarf */
}
if (write_symbols == NO_DEBUG)
@@ -1375,3 +1505,156 @@ wrap_help (const char *help, const char *item, unsigned int item_width)
}
while (remaining);
}
+
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* Find or allocate a cl_perfunc_opts to represent the current
+ state of the per-function options, found in the global cl_pf_opts.
+ There are logically not many of these, usually only 1, so we use
+ a small hash table to avoid unnecessary copies. */
+
+static htab_t cl_perfunc_opts_hash_table;
+
+static hashval_t
+hash_cl_perfunc_opts (const void *p)
+{
+ const unsigned int *uip = p;
+ unsigned int i;
+ hashval_t h = 0;
+ for (i = 0; i < sizeof (struct cl_perfunc_opts) / sizeof (int); i++)
+ h += *uip++;
+ return h;
+}
+
+static int
+cmp_cl_perfunc_opts (const void *p, const void *q)
+{
+ return !memcmp(p, q, sizeof(struct cl_perfunc_opts));
+}
+
+static struct cl_perfunc_opts *
+make_perfunc_opts (void)
+{
+ PTR *slot;
+
+ if (!cl_perfunc_opts_hash_table)
+ cl_perfunc_opts_hash_table = htab_create (11, hash_cl_perfunc_opts,
+ cmp_cl_perfunc_opts, NULL);
+ slot = htab_find_slot (cl_perfunc_opts_hash_table, &cl_pf_opts,
+ INSERT);
+ if (*slot == NULL)
+ {
+ *slot = xmalloc (sizeof (struct cl_perfunc_opts));
+ memcpy (*slot, &cl_pf_opts, sizeof (struct cl_perfunc_opts));
+ }
+ return *slot;
+}
+
+/* Record the per-function opts in effect, and associate them with
+ a FUNCTION_DECL. The more natural way to do this is to put a field
+ in the struct function, but we want to record this info at a time
+ when the struct function has not been allocated yet. A hash table
+ isn't a great way to do this; maybe I'll think of something better. */
+
+static htab_t func_cl_pf_opts_mapping_hash_table;
+
+struct func_cl_pf_opts_mapping
+{
+ tree func;
+ /* The following pointer might or might not point to malloc'd storage.
+ Don't free it. */
+ struct cl_perfunc_opts *cl_pf_opts;
+};
+
+static hashval_t
+func_cl_pf_opts_mapping_hash (const void* entry)
+{
+ const struct func_cl_pf_opts_mapping *e = entry;
+ return htab_hash_pointer (e->func);
+}
+
+static int
+func_cl_pf_opts_mapping_eq (const void *p, const void *q)
+{
+ const struct func_cl_pf_opts_mapping *pp = p;
+ const struct func_cl_pf_opts_mapping *qq = q;
+ return pp->func == qq->func;
+}
+
+void
+record_func_cl_pf_opts_mapping (tree func)
+{
+ PTR *slot;
+ struct func_cl_pf_opts_mapping map, *entry;
+ if (!func_cl_pf_opts_mapping_hash_table)
+ func_cl_pf_opts_mapping_hash_table = htab_create (101,
+ func_cl_pf_opts_mapping_hash, func_cl_pf_opts_mapping_eq, 0);
+ map.func = func;
+ slot = htab_find_slot (func_cl_pf_opts_mapping_hash_table, &map, INSERT);
+ if (*slot)
+ entry = *slot;
+ else
+ {
+ entry = xmalloc (sizeof (struct func_cl_pf_opts_mapping));
+ entry->func = func;
+ *slot = entry;
+ }
+ entry->cl_pf_opts = make_perfunc_opts ();
+}
+
+void
+restore_func_cl_pf_opts_mapping (tree func)
+{
+ PTR *slot;
+ struct func_cl_pf_opts_mapping map, *entry;
+ /* This will be the case for languages whose FEs don't call
+ record_func_cl_pf_opts_mapping. */
+ if (!func_cl_pf_opts_mapping_hash_table)
+ return;
+ map.func = func;
+ slot = htab_find_slot (func_cl_pf_opts_mapping_hash_table, &map, INSERT);
+ if (*slot)
+ entry = *slot;
+ else
+ {
+ /* This means we did not call record_func_cl_opts_pf_mapping earlier.
+ Currently this happens for functions defined inside a C++ class;
+ we just record a token stream for those, which doesn't include
+ pragmas in a usable fashion. For now just use the command line
+ options for these. */
+ entry = xmalloc (sizeof (struct func_cl_pf_opts_mapping));
+ entry->func = func;
+ entry->cl_pf_opts = &cl_pf_opts_cooked;
+ *slot = entry;
+ }
+ cl_pf_opts = *(entry->cl_pf_opts);
+}
+
+void
+copy_func_cl_pf_opts_mapping (tree funcold, tree funcnew)
+{
+ PTR *slot;
+ struct func_cl_pf_opts_mapping map, *entry;
+ struct cl_perfunc_opts *oldcl_pf_opts;
+ /* This will be the case for languages whose FEs don't call
+ record_func_cl_pf_opts_mapping. */
+ if (!func_cl_pf_opts_mapping_hash_table)
+ return;
+ map.func = funcold;
+ slot = htab_find_slot (func_cl_pf_opts_mapping_hash_table, &map, NO_INSERT);
+ gcc_assert (*slot);
+ entry = *slot;
+ oldcl_pf_opts = entry->cl_pf_opts;
+
+ map.func = funcnew;
+ slot = htab_find_slot (func_cl_pf_opts_mapping_hash_table, &map, INSERT);
+ if (*slot)
+ entry = *slot;
+ else
+ {
+ entry = xmalloc (sizeof (struct func_cl_pf_opts_mapping));
+ entry->func = funcnew;
+ *slot = entry;
+ }
+ entry->cl_pf_opts = oldcl_pf_opts;
+}
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
diff --git a/gcc/opts.h b/gcc/opts.h
index e1e921babe0..c7fdc72ef0f 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -21,7 +21,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifndef GCC_OPTS_H
#define GCC_OPTS_H
-extern void decode_options (unsigned int argc, const char **argv);
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+extern void set_flags_from_O (unsigned int);
+extern void decode_options (unsigned int, const char **);
+extern void record_func_cl_pf_opts_mapping (tree);
+extern void restore_func_cl_pf_opts_mapping (tree);
+extern void copy_func_cl_pf_opts_mapping (tree, tree);
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
struct cl_option
{
@@ -31,6 +37,8 @@ struct cl_option
unsigned char opt_len;
unsigned int flags;
int *flag_var;
+ /* APPLE LOCAL optimization pragmas 3124235/3420242 */
+ int (*access_flag) (int, unsigned int);
int has_set_value;
int set_value;
};
@@ -39,6 +47,10 @@ extern const struct cl_option cl_options[];
extern const unsigned int cl_options_count;
extern const char *const lang_names[];
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+#define CL_VARUINT (1 << 20) /* Associated vbl is uint not bool. */
+#define CL_PERFUNC (1 << 21) /* Changeable per function. */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
#define CL_REPORT (1 << 23) /* Report argument with -fverbose-asm */
#define CL_JOINED (1 << 24) /* If takes joined argument. */
#define CL_SEPARATE (1 << 25) /* If takes a separate argument. */
diff --git a/gcc/params.def b/gcc/params.def
index c424ad59f10..7d6e6255796 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -58,10 +58,9 @@ DEFPARAM (PARAM_SRA_FIELD_STRUCTURE_RATIO,
of a function counted in internal gcc instructions (not in
real machine instructions) that is eligible for inlining
by the tree inliner.
- The default value is 500.
+ The default value is 450.
Only functions marked inline (or methods defined in the class
- definition for C++) are affected by this, unless you set the
- -finline-functions (included in -O3) compiler option.
+ definition for C++) are affected by this.
There are more restrictions to inlining: If inlined functions
call other functions, the already inlined instructions are
counted and once the recursive inline limit (see
@@ -70,7 +69,7 @@ DEFPARAM (PARAM_SRA_FIELD_STRUCTURE_RATIO,
DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
"max-inline-insns-single",
"The maximum number of instructions in a single function eligible for inlining",
- 500, 0, 0)
+ 450, 0, 0)
/* The single function inlining limit for functions that are
inlined by virtue of -finline-functions (-O3).
@@ -78,21 +77,21 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
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 150. */
+ The default value is 90. */
DEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO,
"max-inline-insns-auto",
"The maximum number of instructions when automatically inlining",
- 120, 0, 0)
+ 90, 0, 0)
DEFPARAM (PARAM_MAX_INLINE_INSNS_RECURSIVE,
"max-inline-insns-recursive",
"The maximum number of instructions inline function can grow to via recursive inlining",
- 500, 0, 0)
+ 450, 0, 0)
DEFPARAM (PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
"max-inline-insns-recursive-auto",
"The maximum number of instructions non-inline function can grow to via recursive inlining",
- 500, 0, 0)
+ 450, 0, 0)
DEFPARAM (PARAM_MAX_INLINE_RECURSIVE_DEPTH,
"max-inline-recursive-depth",
@@ -148,7 +147,7 @@ DEFPARAM(PARAM_MAX_PENDING_LIST_LENGTH,
DEFPARAM(PARAM_LARGE_FUNCTION_INSNS,
"large-function-insns",
"The size of function body to be considered large",
- 3000, 0, 0)
+ 2700, 0, 0)
DEFPARAM(PARAM_LARGE_FUNCTION_GROWTH,
"large-function-growth",
"Maximal growth due to inlining of large function (in percent)",
@@ -157,6 +156,10 @@ DEFPARAM(PARAM_INLINE_UNIT_GROWTH,
"inline-unit-growth",
"how much can given compilation unit grow because of the inlining (in percent)",
50, 0, 0)
+DEFPARAM(PARAM_INLINE_CALL_COST,
+ "inline-call-cost",
+ "expense of call operation relative to ordinary aritmetic operations",
+ 16, 0, 0)
/* The GCSE optimization will be disabled if it would require
significantly more memory than this value. */
@@ -245,6 +248,16 @@ DEFPARAM(PARAM_MAX_UNSWITCH_LEVEL,
"The maximum number of unswitchings in a single loop",
3, 0, 0)
+/* APPLE LOCAL begin lno */
+/* This parameter limits the size of loop for that we attempt to
+ do doloop optimalization. We set this quite high so that we do
+ not punish unrolled loops. */
+DEFPARAM(PARAM_MAX_DOLOOP_INSNS,
+ "max-doloop-insns",
+ "The maximum number of instructions of loop processed by doloop optimization",
+ 1000, 0, -1)
+/* APPLE LOCAL end lno */
+
/* The maximum number of iterations of a loop the brute force algorithm
for analysis of # of iterations of the loop tries to evaluate. */
DEFPARAM(PARAM_MAX_ITERATIONS_TO_TRACK,
@@ -361,6 +374,13 @@ DEFPARAM(PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND,
"If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization",
10, 0, 0)
+/* APPLE LOCAL begin mainline 4080945/ PR 20742 */
+DEFPARAM(PARAM_SCEV_MAX_EXPR_SIZE,
+ "scev-max-expr-size",
+ "Bound on size of expressions used in the scalar evolutions analyzer",
+ 20, 0, 0)
+/* APPLE LOCAL end mainline 4080945/ PR 20742 */
+
/* The product of the next two is used to decide whether or not to
use .GLOBAL_VAR. See tree-dfa.c. */
DEFPARAM(PARAM_GLOBAL_VAR_THRESHOLD,
@@ -377,8 +397,10 @@ DEFPARAM(PARAM_MAX_CSELIB_MEMORY_LOCATIONS,
# define GGC_MIN_EXPAND_DEFAULT 0
# define GGC_MIN_HEAPSIZE_DEFAULT 0
#else
-# define GGC_MIN_EXPAND_DEFAULT 30
-# define GGC_MIN_HEAPSIZE_DEFAULT 4096
+/* APPLE LOCAL begin try to improve ggc */
+# define GGC_MIN_EXPAND_DEFAULT 100
+# define GGC_MIN_HEAPSIZE_DEFAULT 8192
+/* APPLE LOCAL end try to improve ggc*/
#endif
DEFPARAM(GGC_MIN_EXPAND,
diff --git a/gcc/passes.c b/gcc/passes.c
index 695e4908cd1..c886410efac 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -251,6 +251,10 @@ rest_of_decl_compilation (tree decl,
debug_hooks->type_decl (decl, !top_level);
timevar_pop (TV_SYMOUT);
}
+
+ /* Let cgraph know about the existance of variables. */
+ if (TREE_CODE (decl) == VAR_DECL && !DECL_EXTERNAL (decl))
+ cgraph_varpool_node (decl);
}
/* Called after finishing a record, union or enumeral type. */
@@ -571,6 +575,8 @@ rest_of_handle_partition_blocks (void)
static void
rest_of_handle_sms (void)
{
+ sbitmap blocks;
+
timevar_push (TV_SMS);
open_dump_file (DFI_sms, current_function_decl);
@@ -583,10 +589,14 @@ rest_of_handle_sms (void)
/* Update the life information, because we add pseudos. */
max_regno = max_reg_num ();
allocate_reg_info (max_regno, FALSE, FALSE);
- update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES,
- (PROP_DEATH_NOTES
- | PROP_KILL_DEAD_CODE
- | PROP_SCAN_DEAD_CODE));
+ blocks = sbitmap_alloc (last_basic_block);
+ sbitmap_ones (blocks);
+ update_life_info (blocks, UPDATE_LIFE_GLOBAL_RM_NOTES,
+ (PROP_DEATH_NOTES
+ | PROP_REG_INFO
+ | PROP_KILL_DEAD_CODE
+ | PROP_SCAN_DEAD_CODE));
+
no_new_pseudos = 1;
ggc_collect ();
@@ -895,6 +905,7 @@ rest_of_handle_combine (void)
rebuild_jump_labels (get_insns ());
timevar_pop (TV_JUMP);
+ delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_UPDATE_LIFE);
}
@@ -971,6 +982,9 @@ rest_of_handle_cse (void)
expecting CSE to be run. But always rerun it in a cheap mode. */
cse_not_expected = !flag_rerun_cse_after_loop && !flag_gcse;
+ if (tem)
+ delete_dead_jumptables ();
+
if (tem || optimize > 1)
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
@@ -1006,6 +1020,7 @@ rest_of_handle_cse2 (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
+ delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE);
timevar_pop (TV_JUMP);
}
@@ -1053,6 +1068,7 @@ rest_of_handle_gcse (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
+ delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
timevar_pop (TV_JUMP);
}
@@ -1473,6 +1489,38 @@ rest_of_clean_state (void)
}
+/* APPLE LOCAL begin radar 4120689 */
+#ifdef TARGET_386
+static int MaxAlignForThisBlock (tree block)
+{
+ tree decl;
+ unsigned int max_align = 0;
+
+ for (decl = BLOCK_VARS (block); decl; decl = TREE_CHAIN (decl))
+ {
+ if (TREE_CODE (decl) == VAR_DECL
+ && DECL_ALIGN (decl) > max_align)
+ max_align = DECL_ALIGN (decl);
+ }
+ return max_align;
+
+}
+
+static int
+LargestAlignmentOfVariables (void)
+{
+ unsigned int align;
+ tree t;
+ tree outer_block = DECL_INITIAL (current_function_decl);
+ unsigned int max_align = MaxAlignForThisBlock (outer_block);
+
+ for (t = BLOCK_SUBBLOCKS (outer_block); t ; t = BLOCK_CHAIN (t))
+ if ((align = MaxAlignForThisBlock (t)) > max_align)
+ max_align = align;
+ return max_align;
+}
+#endif
+/* APPLE LOCAL end radar 4120689 */
/* This function is called from the pass manager in tree-optimize.c
after all tree passes have finished for a single function, and we
have expanded the function body from trees to RTL.
@@ -1485,6 +1533,11 @@ rest_of_clean_state (void)
static void
rest_of_compilation (void)
{
+ /* APPLE LOCAL begin radar 4095567 */
+#ifdef TARGET_386
+ unsigned int save_PREFERRED_STACK_BOUNDARY = 0;
+#endif
+ /* APPLE LOCAL end radar 4095567 */
/* If we're emitting a nested function, make sure its parent gets
emitted as well. Doing otherwise confuses debug info. */
{
@@ -1653,6 +1706,23 @@ rest_of_compilation (void)
since this can impact optimizations done by the prologue and
epilogue thus changing register elimination offsets. */
current_function_is_leaf = leaf_function_p ();
+ /* APPLE LOCAL begin radar 4095567 */
+#ifdef TARGET_386
+ if ((optimize > 0 || optimize_size)
+ && current_function_is_leaf
+ && PREFERRED_STACK_BOUNDARY >= 128
+/* APPLE LOCAL begin radar 4120689 */
+ && !DECL_STRUCT_FUNCTION (current_function_decl)->uses_vector
+ && LargestAlignmentOfVariables() < 128)
+/* APPLE LOCAL end radar 4120689 */
+ {
+ save_PREFERRED_STACK_BOUNDARY = PREFERRED_STACK_BOUNDARY;
+ PREFERRED_STACK_BOUNDARY = 32;
+ cfun->stack_alignment_needed = STACK_BOUNDARY;
+ cfun->preferred_stack_boundary = STACK_BOUNDARY;
+ }
+#endif
+ /* APPLE LOCAL end radar 4095567 */
if (rest_of_handle_old_regalloc ())
goto exit_rest_of_compilation;
@@ -1738,6 +1808,16 @@ rest_of_compilation (void)
exit_rest_of_compilation:
+ /* APPLE LOCAL begin radar 4095567 */
+#ifdef TARGET_386
+ if (save_PREFERRED_STACK_BOUNDARY > 0)
+ {
+ PREFERRED_STACK_BOUNDARY = save_PREFERRED_STACK_BOUNDARY;
+ cfun->stack_alignment_needed = STACK_BOUNDARY;
+ cfun->preferred_stack_boundary = STACK_BOUNDARY;
+ }
+#endif
+ /* APPLE LOCAL end radar 4095567 */
rest_of_clean_state ();
}
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 5177f603fb8..5210ce1ab8a 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,40 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-20 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.pot: Regenerated.
+
+2005-04-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2005-04-17 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * rw.po: New file.
+
+2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2005-03-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2005-03-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po: Update.
+
+2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.pot: Regenerate.
+
2004-12-20 Joseph S. Myers <joseph@codesourcery.com>
* de.po: Update.
diff --git a/gcc/po/be.po b/gcc/po/be.po
index 739518c21db..fbacab02bd9 100644
--- a/gcc/po/be.po
+++ b/gcc/po/be.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.1\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\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"
@@ -38,573 +38,581 @@ msgstr "\"%s\" звычайна функцыÑ"
msgid "offset outside bounds of constant string"
msgstr ""
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "аргумент `__builtin_args_info' выйшаў за межы"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "прапушчан аргумент у `__builtin_args_info'"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr ""
-"`va_start' выкарыÑтоўвываецца Ñž функцыі з нÑзьменнай\n"
-" колькаÑьцю аргументаў"
-
-#: builtins.c:3774 builtins.c:8677
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "\"__buitin_next_arg\" выклікаецца без аргумента"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
-
-#: builtins.c:4017
+#: builtins.c:4077
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:4031
+#: builtins.c:4091
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr ""
-#: builtins.c:4036
+#: builtins.c:4096
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr ""
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4220
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4162
+#: builtins.c:4222
msgid "invalid argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4176
+#: builtins.c:4235
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4178
+#: builtins.c:4237
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: builtins.c:5488
+#: builtins.c:5590
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr ""
-#: builtins.c:5840
+#: builtins.c:5942
#, fuzzy
msgid "target format does not support infinity"
msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
-#: c-common.c:831
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr ""
+"`va_start' выкарыÑтоўвываецца Ñž функцыі з нÑзьменнай\n"
+" колькаÑьцю аргументаў"
+
+#. 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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "\"__buitin_next_arg\" выклікаецца без аргумента"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr ""
+
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-common.c:852
+#: c-common.c:847
#, c-format
msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
msgstr ""
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr ""
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr ""
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr ""
-#: c-common.c:933
+#: c-common.c:923
msgid "vector overflow in expression"
msgstr ""
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr ""
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr ""
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr ""
-#: c-common.c:1151
+#: c-common.c:1141
#, c-format
msgid "operation on %qs may be undefined"
msgstr ""
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr ""
-#: c-common.c:1480
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
msgstr ""
-#: c-common.c:1488
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
msgstr ""
-#: c-common.c:1496
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
msgstr ""
-#: c-common.c:1505
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
msgstr ""
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr ""
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr ""
-#: c-common.c:2112
+#: c-common.c:2116
msgid "comparison is always false due to limited range of data type"
msgstr ""
-#: c-common.c:2114
+#: c-common.c:2118
msgid "comparison is always true due to limited range of data type"
msgstr ""
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr ""
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr ""
-#: c-common.c:2235
+#: c-common.c:2239
msgid "pointer of type %<void *%> used in arithmetic"
msgstr ""
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr ""
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr ""
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr ""
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: c-common.c:2766
+#: c-common.c:2801
#, c-format
msgid "invalid application of %qs to a void type"
msgstr ""
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "\"%s\" мае незавершаны тып"
-#: c-common.c:2813
+#: c-common.c:2848
msgid "%<__alignof%> applied to a bit-field"
msgstr ""
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr ""
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr ""
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr ""
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr ""
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr ""
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr ""
-#: c-common.c:3542
+#: c-common.c:3599
#, fuzzy
msgid "%Jpreviously used here"
msgstr "папÑÑ€ÑднÑе вызначÑньне"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr ""
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr ""
-#: c-common.c:3596
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
msgstr ""
-#: c-common.c:3599
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr ""
-#: c-common.c:3666
+#: c-common.c:3723
msgid "%Hswitch missing default case"
msgstr ""
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
msgid "%Henumeration value %qE not handled in switch"
msgstr ""
-#: c-common.c:3727
+#: c-common.c:3784
#, fuzzy
msgid "taking the address of a label is non-standard"
msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "\"%s\" атрыбут ігнарыруецца"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
msgid "use __attribute__ ((vector_size)) instead"
msgstr ""
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "немагу адчыніць файл \"%s\""
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "нÑма тыпа дадзеных Ð´Ð»Ñ Ñ€Ñжыма \"%s\""
-#: c-common.c:4309
+#: c-common.c:4366
#, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr ""
-#: c-common.c:4322
+#: c-common.c:4390
#, fuzzy, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-common.c:4355
+#: c-common.c:4421
#, fuzzy
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: c-common.c:4381
+#: c-common.c:4447
#, fuzzy
msgid "%Jsection attributes are not supported for this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr ""
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr ""
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr ""
-#: c-common.c:4455
+#: c-common.c:4521
msgid "%Jalignment may not be specified for %qD"
msgstr ""
-#: c-common.c:4493
+#: c-common.c:4559
msgid "%J%qD defined both normally and as an alias"
msgstr ""
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "\"%s\" атрыбут ігнарыруецца"
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#: c-common.c:4657
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr ""
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "не хапае аргументаў у функцыі"
-#: c-common.c:4663
+#: c-common.c:4735
msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-common.c:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "\"%s\" звычайна функцыÑ"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
msgid "%Jcan%'t set %qE attribute after definition"
msgstr ""
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "\"%s\" атрыбут ігнарыруецца"
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr ""
-#: c-common.c:4925
+#: c-common.c:4997
#, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr ""
-#: c-common.c:4944
+#: c-common.c:5016
#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:4952
+#: c-common.c:5024
#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
msgid "missing sentinel in function call"
msgstr ""
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "не хапае аргументаў у функцыі"
-#: c-common.c:5086
+#: c-common.c:5158
#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr ""
-#: c-common.c:5157
+#: c-common.c:5229
msgid "cleanup argument not an identifier"
msgstr ""
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "вельмі шмат аргументаў у функцыі"
-#: c-common.c:5202
+#: c-common.c:5274
#, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "\"%s\" звычайна функцыÑ"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr ""
-#: c-common.c:5637
+#: c-common.c:5730
#, fuzzy
msgid "invalid lvalue in increment"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: c-common.c:5640
+#: c-common.c:5733
#, fuzzy
msgid "invalid lvalue in decrement"
msgstr "ÐерÑчаіÑны выбар %s"
-#: c-common.c:5643
+#: c-common.c:5736
msgid "invalid lvalue in unary %<&%>"
msgstr ""
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr ""
@@ -613,105 +621,110 @@ msgstr ""
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr ""
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr ""
-#: c-decl.c:524
+#: c-decl.c:530
msgid "%Jarray %qD assumed to have one element"
msgstr ""
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "адмеціна `%D' вызначана, але не выкарыÑтоўваецца"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "невыкарыÑÑ‚Ð¾ÑžÐ²Ð°ÐµÐ¼Ð°Ñ Ð¿ÐµÑ€Ð°Ð¼ÐµÐ½Ð½Ð°Ñ \"%s\""
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
msgid "a parameter list with an ellipsis can%'t match an empty parameter name list declaration"
msgstr ""
-#: c-decl.c:1015
+#: c-decl.c:1029
msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
msgstr ""
-#: c-decl.c:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1080
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr ""
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr ""
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "папÑÑ€ÑднÑе вызначÑньне"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1134
+#: c-decl.c:1149
msgid "%J%qD redeclared as different kind of symbol"
msgstr ""
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "абвÑшчÑньне шаблёну `%#D'"
@@ -719,262 +732,262 @@ msgstr "абвÑшчÑньне шаблёну `%#D'"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
msgid "%Jconflicting types for %qD"
msgstr ""
-#: c-decl.c:1205
+#: c-decl.c:1232
msgid "%J conflicting type qualifiers for %qD"
msgstr ""
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr ""
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr ""
-#: c-decl.c:1326
+#: c-decl.c:1383
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr ""
-#: c-decl.c:1329
+#: c-decl.c:1386
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr ""
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1395
+#: c-decl.c:1452
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr ""
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
#, fuzzy
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1448
+#: c-decl.c:1505
msgid "%J%qD declared inline after being called"
msgstr ""
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: c-decl.c:1871
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr ""
-#: c-decl.c:1811
+#: c-decl.c:1874
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr ""
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
#, fuzzy
msgid "%Jshadowed declaration is here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "пуÑтое абвÑшчÑнне"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "пуÑтое абвÑшчÑнне"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Ðб кожным неабвешчаным ідÑнтыфікатары паведамлÑецца"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "адзін раз Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð°Ð¹ функцыі, дзе ён з'ÑўлÑецца.)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, c-format
msgid "label %qs referenced outside of any function"
msgstr ""
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "паўторнае абвÑшчÑньне адмеціны `%s'"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "паўтарÑнне \"%s\""
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr ""
-#: c-decl.c:2726
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2737
+#: c-decl.c:2780
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "пуÑтое абвÑшчÑньне"
-#: c-decl.c:2779
+#: c-decl.c:2822
msgid "%<auto%> in file-scope empty declaration"
msgstr ""
-#: c-decl.c:2785
+#: c-decl.c:2828
msgid "%<register%> in file-scope empty declaration"
msgstr ""
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: c-decl.c:2797
+#: c-decl.c:2840
msgid "useless %<__thread%> in empty declaration"
msgstr ""
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "пуÑтое абвÑшчÑньне"
-#: c-decl.c:2878
+#: c-decl.c:2921
#, fuzzy
msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
msgstr "ISO C89 не падтрымлівае \"long long\""
-#: c-decl.c:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C89 не падтрымлівае \"long long\""
-#: c-decl.c:2884
+#: c-decl.c:2927
#, fuzzy
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "ISO C89 не падтрымлівае \"long long\""
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "`%s' - звычайна функцыÑ"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: c-decl.c:2974
+#: c-decl.c:3019
msgid "function %qD is initialized like a variable"
msgstr ""
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "параметр \"%s\" ініцыÑлізаваны"
@@ -983,800 +996,795 @@ msgstr "параметр \"%s\" ініцыÑлізаваны"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr ""
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "\"%s\" мае незавершаны тып"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
#, fuzzy
msgid "%Jinline function %qD given attribute noinline"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:3154
+#: c-decl.c:3194
msgid "%Jinitializer fails to determine size of %qD"
msgstr ""
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "прапушчан памер маÑіва Ñž `%D'"
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "нулÑвы памер маÑіва `%D'"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
msgid "%Jstorage size of %qD isn%'t known"
msgstr ""
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:3266
+#: c-decl.c:3299
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr ""
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr ""
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr ""
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, c-format
msgid "negative width in bit-field %qs"
msgstr ""
-#: c-decl.c:3636
+#: c-decl.c:3670
#, c-format
msgid "zero width for bit-field %qs"
msgstr ""
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr ""
-#: c-decl.c:3664
+#: c-decl.c:3698
#, c-format
msgid "width of %qs exceeds its type"
msgstr ""
-#: c-decl.c:3677
+#: c-decl.c:3711
#, c-format
msgid "%qs is narrower than values of its type"
msgstr ""
-#: c-decl.c:3802
+#: c-decl.c:3836
msgid "type defaults to %<int%> in declaration of %qs"
msgstr ""
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "паўтарÑнне \"const\""
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "паўтарÑнне \"restrict\""
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "паўтарÑнне \"volatile\""
-#: c-decl.c:3853
+#: c-decl.c:3887
msgid "function definition declared %<auto%>"
msgstr ""
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: c-decl.c:3857
+#: c-decl.c:3891
msgid "function definition declared %<typedef%>"
msgstr ""
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: c-decl.c:3875
+#: c-decl.c:3909
#, c-format
msgid "storage class specified for structure field %qs"
msgstr ""
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, c-format
msgid "storage class specified for parameter %qs"
msgstr ""
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr ""
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
msgid "%qs initialized and declared %<extern%>"
msgstr ""
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
msgid "%qs has both %<extern%> and initializer"
msgstr ""
-#: c-decl.c:3902
+#: c-decl.c:3936
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr ""
-#: c-decl.c:3904
+#: c-decl.c:3938
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr ""
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
msgid "nested function %qs declared %<extern%>"
msgstr ""
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr ""
-#: c-decl.c:3999
+#: c-decl.c:4039
#, c-format
msgid "declaration of %qs as array of voids"
msgstr ""
-#: c-decl.c:4005
+#: c-decl.c:4045
#, c-format
msgid "declaration of %qs as array of functions"
msgstr ""
-#: c-decl.c:4010
+#: c-decl.c:4050
#, fuzzy
msgid "invalid use of structure with flexible array member"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: c-decl.c:4056
+#: c-decl.c:4096
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr ""
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "памер маÑіва \"%s\" вельмі вÑлікі"
-#: c-decl.c:4106
+#: c-decl.c:4150
#, fuzzy
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr ""
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, c-format
msgid "%qs declared as function returning an array"
msgstr ""
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ Ð½Ðµ вÑртае тып string"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4282
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr ""
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: c-decl.c:4461
+#: c-decl.c:4507
msgid "%<noreturn%> function returns non-void value"
msgstr ""
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4591
msgid "%Jvariable %qD 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:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
#, fuzzy
msgid "thread-local storage not supported for this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
msgid "function declaration isn%'t a prototype"
msgstr ""
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
#, fuzzy
msgid "%<void%> must be the only parameter"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-decl.c:4793
+#: c-decl.c:4829
msgid "%Jparameter %qD has just a forward declaration"
msgstr ""
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
msgid "%<%s %E%> declared inside parameter list"
msgstr ""
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr ""
-#: c-decl.c:4848
+#: c-decl.c:4884
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr ""
-#: c-decl.c:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "перанакіраванне stdout: %s"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr ""
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "паўтарÑнне \"%s\""
-#: c-decl.c:5165
+#: c-decl.c:5201
msgid "union has no named members"
msgstr ""
-#: c-decl.c:5167
+#: c-decl.c:5203
msgid "union has no members"
msgstr ""
-#: c-decl.c:5172
+#: c-decl.c:5208
msgid "struct has no named members"
msgstr ""
-#: c-decl.c:5174
+#: c-decl.c:5210
msgid "struct has no members"
msgstr ""
-#: c-decl.c:5231
+#: c-decl.c:5267
msgid "%Jflexible array member in union"
msgstr ""
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5248
+#: c-decl.c:5284
#, fuzzy
msgid "%Jinvalid use of structure with flexible array member"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr ""
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "перанакіраванне stdout: %s"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr ""
-#: c-decl.c:5626
+#: c-decl.c:5671
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr ""
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr ""
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "вÑртаемы тып \"%s\" не \"int\""
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "нÑма папÑÑ€ÑднÑга прататыпа Ð´Ð»Ñ \"%s\""
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "вÑртаемы тып \"%s\" не \"int\""
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "першым аргументам \"%s\" павінен быць \"int\""
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "другім аргументам \"%s\" павінен быць \"char **\""
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "другім аргументам \"%s\" павінен быць \"char **\""
-#: c-decl.c:5834
+#: c-decl.c:5879
msgid "%J%qD takes only zero or two arguments"
msgstr ""
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "`%s' - звычайна функцыÑ"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr ""
-#: c-decl.c:5908
+#: c-decl.c:5953
#, fuzzy
msgid "%Jparameter name omitted"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:5948
+#: c-decl.c:5993
msgid "%Jold-style function definition"
msgstr ""
-#: c-decl.c:5956
+#: c-decl.c:6001
msgid "%Jparameter name missing from parameter list"
msgstr ""
-#: c-decl.c:5967
+#: c-decl.c:6012
msgid "%J%qD declared as a non-parameter"
msgstr ""
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
msgid "%Jtype of %qD defaults to %<int%>"
msgstr ""
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-decl.c:6022
+#: c-decl.c:6067
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr ""
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ¾Ð²Ð°Ñ ÐºÐ¾Ð»ÑŒÐºÐ°Ñьць аргументаў, зададзеных Ð´Ð»Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ð° `%s'"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
#, fuzzy
msgid "%Hprototype declaration"
msgstr "пуÑтое абвÑшчÑньне"
-#: c-decl.c:6101
+#: c-decl.c:6146
msgid "promoted argument %qD doesn%'t match prototype"
msgstr ""
-#: c-decl.c:6109
+#: c-decl.c:6154
msgid "argument %qD doesn%'t match prototype"
msgstr ""
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr ""
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
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:6403
+#: c-decl.c:6461
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:6432
+#: c-decl.c:6490
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6435
+#: c-decl.c:6493
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6440
+#: c-decl.c:6498
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6444
+#: c-decl.c:6502
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6448
+#: c-decl.c:6506
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6452
+#: c-decl.c:6510
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "паўтарÑньне `%s'"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
msgid "two or more data types in declaration specifiers"
msgstr ""
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "`long long long' - вельмі доўга Ð´Ð»Ñ GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO C89 не падтрымлівае `long long'"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6875
+#: c-decl.c:6933
#, fuzzy
msgid "ISO C90 does not support complex types"
msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
msgstr ""
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
msgstr ""
-#: c-decl.c:7106
+#: c-decl.c:7164
msgid "multiple storage classes in declaration specifiers"
msgstr ""
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr "ISO C не падтрымлівае проÑÑ‚Ñ‹ \"complex\" у значÑнні \"double complex\""
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
@@ -2302,7 +2310,7 @@ msgstr ""
msgid "statement with no effect"
msgstr ""
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr ""
@@ -2325,17 +2333,17 @@ msgstr ""
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr ""
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr ""
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr ""
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr ""
@@ -2393,35 +2401,27 @@ msgstr ""
msgid "traditional C rejects string constant concatenation"
msgstr ""
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr ""
-#: c-objc-common.c:267
+#: c-objc-common.c:248
msgid "used struct type value where scalar is required"
msgstr ""
-#: c-objc-common.c:271
+#: c-objc-common.c:252
msgid "used union type value where scalar is required"
msgstr ""
@@ -2468,81 +2468,81 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "-pipe не падтрымліваецца."
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr ""
-#: c-opts.c:841
+#: c-opts.c:839
#, fuzzy
msgid "output filename specified twice"
msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr ""
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr ""
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr ""
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr ""
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr ""
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr ""
-#: c-opts.c:995
+#: c-opts.c:998
#, fuzzy, c-format
msgid "opening output file %s: %m"
msgstr "немагчыма адчыніць файл уводу `%s'"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, c-format
msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr ""
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr ""
-#: c-opts.c:1137
+#: c-opts.c:1140
#, fuzzy, c-format
msgid "when writing output to %s: %m"
msgstr "памылка запіÑу Ñž %s"
-#: c-opts.c:1216
+#: c-opts.c:1220
msgid "to generate dependencies you must specify either -M or -MM"
msgstr ""
-#: c-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr ""
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr ""
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2554,16 +2554,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
#, fuzzy
msgid "syntax error: cannot back up"
msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
@@ -2614,104 +2614,108 @@ msgstr "аргумент `__builtin_args_info' павінен быць канÑÑ
msgid "%<typeof%> applied to a bit-field"
msgstr ""
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr ""
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
msgstr ""
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
msgid "obsolete use of designated initializer with %<:%>"
msgstr ""
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr ""
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
msgid "ISO C forbids forward references to %<enum%> types"
msgstr ""
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr ""
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr ""
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr ""
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr ""
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr ""
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
#, fuzzy
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, c-format
msgid "%E qualifier ignored on asm"
msgstr ""
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr ""
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
msgid "ISO C requires a named argument before %<...%>"
msgstr ""
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
msgid "syntax error; also virtual memory exhausted"
msgstr ""
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr ""
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "Ð³Ñ€Ð°Ð¼Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
msgid "parse error; also virtual memory exhausted"
msgstr ""
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
@@ -2829,179 +2833,179 @@ msgstr ""
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr ""
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr ""
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr ""
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr ""
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr ""
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr ""
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr ""
-#: c-pragma.c:596
+#: c-pragma.c:628
msgid "malformed #pragma GCC visibility push"
msgstr ""
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr ""
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr ""
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr ""
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr ""
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
msgid "invalid use of undefined type %<%s %s%>"
msgstr "нÑвернае выкарыÑтанне \"restict\""
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr ""
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr ""
-#: c-typeck.c:987
+#: c-typeck.c:1045
msgid "function return types not compatible due to %<volatile%>"
msgstr ""
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr ""
-#: c-typeck.c:1483
+#: c-typeck.c:1559
msgid "%qT has no member named %qs"
msgstr ""
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, c-format
msgid "request for member %qs in something not a structure or union"
msgstr ""
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr ""
-#: c-typeck.c:1552
+#: c-typeck.c:1633
msgid "dereferencing %<void *%> pointer"
msgstr ""
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr ""
-#: c-typeck.c:1614
+#: c-typeck.c:1695
msgid "subscripted value is pointer to function"
msgstr ""
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
msgid "array subscript has type %<char%>"
msgstr ""
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
#, fuzzy
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
@@ -3009,774 +3013,770 @@ msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr ""
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr ""
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "вельмі шмат аргументаў у функцыі"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2121
+#: c-typeck.c:2204
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr ""
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr ""
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr ""
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr ""
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "не хапае аргументаў у функцыі"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr ""
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr ""
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr ""
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr ""
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr ""
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr ""
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr ""
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr ""
-#: c-typeck.c:2288
+#: c-typeck.c:2371
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr ""
-#: c-typeck.c:2314
+#: c-typeck.c:2397
msgid "pointer of type %<void *%> used in subtraction"
msgstr ""
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr ""
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr ""
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, fuzzy
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr "ISO C не падтрымлівае \"++\" Ñ– \"--\" Ð´Ð»Ñ Ñ‚Ñ‹Ð¿Ñƒ complex"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
#, fuzzy
msgid "wrong type argument to increment"
msgstr "не хапае аргументаў у функцыі"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr ""
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, c-format
msgid "assignment of read-only member %qs"
msgstr ""
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, c-format
msgid "increment of read-only member %qs"
msgstr ""
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, c-format
msgid "decrement of read-only member %qs"
msgstr ""
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, c-format
msgid "assignment of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, c-format
msgid "increment of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, c-format
msgid "decrement of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2734
+#: c-typeck.c:2817
msgid "assignment of read-only location"
msgstr ""
-#: c-typeck.c:2735
+#: c-typeck.c:2818
msgid "increment of read-only location"
msgstr ""
-#: c-typeck.c:2736
+#: c-typeck.c:2819
msgid "decrement of read-only location"
msgstr ""
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
-#: c-typeck.c:2783
+#: c-typeck.c:2866
msgid "global register variable %qD used in nested function"
msgstr ""
-#: c-typeck.c:2786
+#: c-typeck.c:2869
msgid "register variable %qD used in nested function"
msgstr ""
-#: c-typeck.c:2791
+#: c-typeck.c:2874
msgid "address of global register variable %qD requested"
msgstr ""
-#: c-typeck.c:2793
+#: c-typeck.c:2876
msgid "address of register variable %qD requested"
msgstr ""
-#: c-typeck.c:2841
+#: c-typeck.c:2924
msgid "non-lvalue array in conditional expression"
msgstr ""
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr ""
-#: c-typeck.c:2892
+#: c-typeck.c:2975
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr ""
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr ""
-#: c-typeck.c:3069
+#: c-typeck.c:3152
msgid "cast to union type from type not present in union"
msgstr ""
-#: c-typeck.c:3120
+#: c-typeck.c:3203
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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr ""
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr ""
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3181
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr ""
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr ""
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr ""
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
msgid "assignment makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
msgid "initialization makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
msgid "return makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
msgid "assignment discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "initialization discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "return discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:3628
+#: c-typeck.c:3714
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3631
+#: c-typeck.c:3717
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3633
+#: c-typeck.c:3719
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3635
+#: c-typeck.c:3721
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr ""
-#: c-typeck.c:3660
+#: c-typeck.c:3746
msgid "pointer targets in assignment differ in signedness"
msgstr ""
-#: c-typeck.c:3662
+#: c-typeck.c:3748
msgid "pointer targets in initialization differ in signedness"
msgstr ""
-#: c-typeck.c:3664
+#: c-typeck.c:3750
msgid "pointer targets in return differ in signedness"
msgstr ""
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3689
+#: c-typeck.c:3775
msgid "assignment from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3690
+#: c-typeck.c:3776
msgid "initialization from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3692
+#: c-typeck.c:3778
msgid "return from incompatible pointer type"
msgstr ""
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr ""
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3715
+#: c-typeck.c:3801
msgid "assignment makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3717
+#: c-typeck.c:3803
msgid "initialization makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3719
+#: c-typeck.c:3805
msgid "return makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:3728
+#: c-typeck.c:3814
msgid "assignment makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:3730
+#: c-typeck.c:3816
msgid "initialization makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:3732
+#: c-typeck.c:3818
msgid "return makes integer from pointer without a cast"
msgstr ""
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, c-format
msgid "incompatible type for argument %d of %qE"
msgstr ""
-#: c-typeck.c:3748
+#: c-typeck.c:3834
msgid "incompatible types in assignment"
msgstr ""
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
msgid "incompatible types in return"
msgstr ""
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr ""
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "ініцыÑлізацыÑ"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
msgid "array initialized from parenthesized string constant"
msgstr ""
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4116
+#: c-typeck.c:4202
msgid "wchar_t-array initialized from non-wide string"
msgstr ""
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4140
+#: c-typeck.c:4226
msgid "array of inappropriate type initialized from string constant"
msgstr ""
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
msgid "opaque vector types cannot be initialized"
msgstr ""
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr ""
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "прапушчан ініцыÑлізатар"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr ""
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "\"%s\" мае незавершаны тып"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, c-format
msgid "unknown field %qs specified in initializer"
msgstr ""
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr ""
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO C не падтрымлівае \"goto *expr;\""
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
#, fuzzy
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ Ð½Ðµ вÑртае тып string"
-#: c-typeck.c:6383
+#: c-typeck.c:6513
msgid "%<return%> with no value, in function returning non-void"
msgstr ""
-#: c-typeck.c:6390
+#: c-typeck.c:6520
msgid "%<return%> with a value, in function returning void"
msgstr ""
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr ""
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr ""
-#: c-typeck.c:6518
+#: c-typeck.c:6649
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr ""
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr ""
-#: c-typeck.c:6557
+#: c-typeck.c:6687
msgid "%<default%> label not within a switch statement"
msgstr ""
-#: c-typeck.c:6621
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
-#: c-typeck.c:6631
+#: c-typeck.c:6761
#, fuzzy
msgid "%Hempty body in an if-statement"
msgstr "пуÑтое цела Ñž else-выражÑнні"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "пуÑтое цела Ñž else-выражÑнні"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr ""
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr ""
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr ""
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr ""
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr ""
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr ""
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr ""
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr ""
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, fuzzy
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr ""
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr ""
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr ""
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr ""
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr ""
@@ -3820,7 +3820,7 @@ msgstr ""
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
@@ -3929,306 +3929,306 @@ msgstr "%s не падтрымлівае %s"
msgid "%s does not support flow_call_edges_add"
msgstr "%s не падтрымлівае %s"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, c-format
msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: cfgloop.c:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr ""
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr ""
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:231
+#: cgraph.c:278
msgid "function body not available"
msgstr ""
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr ""
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
#, fuzzy
msgid "function not considered for inlining"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
msgid "function not inlinable"
msgstr ""
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "гÑта папÑÑ€ÑднÑе абвÑшчÑньне"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
msgid "Inlined_to pointer is wrong"
msgstr ""
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
msgstr ""
-#: cgraphunit.c:797
+#: cgraphunit.c:807
msgid "failed to reclaim unneeded function"
msgstr ""
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "Ñпынена Ñž %s, Ð»Ñ %s:%d"
@@ -4237,158 +4237,158 @@ msgstr "Ñпынена Ñž %s, Ð»Ñ %s:%d"
msgid "no arguments"
msgstr "нÑма аргументаў"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr ""
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr ""
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr ""
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d канÑтруктар(аў) знойдзен(а)\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d дÑÑтруктар(аў) знойдзен(а)\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr ""
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr ""
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr ""
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[нельга знайÑці %s]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "нельга знайÑці \"%s\""
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "перанакіраванне stdout: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr ""
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "нельга знайÑці \"nm\""
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "канвеер"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr ""
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr ""
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr ""
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr ""
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr ""
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr ""
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr ""
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "не магу знайÑці \"ldd\""
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
msgstr ""
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr ""
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr ""
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr ""
-#: collect2.c:2631
+#: collect2.c:2641
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "БібліÑÑ‚Ñка lib%s не знойдзена"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4396,7 +4396,7 @@ msgid ""
"\n"
msgstr ""
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4508,7 +4508,7 @@ msgstr ""
msgid "too many input files"
msgstr "вельмі шмат уваходзÑчых файлаў"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
@@ -4564,32 +4564,24 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr ""
-#: emit-rtl.c:1215
-msgid "can't access real part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
#, fuzzy
msgid "Invalid rtl sharing found in the insn"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "Ñпынена Ñž %s, Ð»Ñ %s:%d"
@@ -4607,7 +4599,7 @@ msgstr "аргумент `__builtin_args_info' павінен быць канÑÑ
msgid "__builtin_eh_return not supported on this target"
msgstr ""
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr ""
@@ -4657,177 +4649,177 @@ msgstr ""
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr ""
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr ""
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
#, fuzzy
msgid "internal consistency failure"
msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:4899
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4904
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "памер маÑіва \"%s\" вельмі вÑлікі"
-#: function.c:1442
+#: function.c:1443
#, fuzzy
msgid "impossible constraint in %<asm%>"
msgstr "немагчымы апÑратар '%s'"
-#: function.c:3495
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3516
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr ""
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr ""
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr ""
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2057
+#: gcc.c:2047
#, fuzzy, c-format
msgid "could not find specs file %s\n"
msgstr "не магу знайÑці крыніцу %s\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr ""
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
"\n"
msgstr ""
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2635
+#: gcc.c:2625
#, c-format
msgid "system path '%s' is not absolute"
msgstr ""
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe не падтрымліваецца"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
msgstr ""
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -4835,165 +4827,165 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "ВыкарыÑтанне: %s [выбары] файл...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Выбары:\n"
-#: gcc.c:3036
+#: gcc.c:3026
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
-#: gcc.c:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr ""
-#: gcc.c:3040
+#: gcc.c:3030
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr ""
-#: gcc.c:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr ""
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion ÐдлюÑтраваць верÑÑ–ÑŽ кампілÑтара\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr ""
-#: gcc.c:3044
+#: gcc.c:3034
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr ""
-#: gcc.c:3045
+#: gcc.c:3035
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr ""
-#: gcc.c:3046
+#: gcc.c:3036
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr ""
-#: gcc.c:3047
+#: gcc.c:3037
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr ""
-#: gcc.c:3048
+#: gcc.c:3038
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr ""
-#: gcc.c:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
msgstr ""
-#: gcc.c:3052
+#: gcc.c:3042
msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr ""
-#: gcc.c:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr ""
-#: gcc.c:3054
+#: gcc.c:3044
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr ""
-#: gcc.c:3055
+#: gcc.c:3045
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr ""
-#: gcc.c:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr ""
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr ""
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr ""
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr ""
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr ""
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr ""
-#: gcc.c:3063
+#: gcc.c:3053
#, fuzzy
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
-#: gcc.c:3064
+#: gcc.c:3054
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
-#: gcc.c:3065
+#: gcc.c:3055
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr ""
-#: gcc.c:3066
+#: gcc.c:3056
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
-#: gcc.c:3067
+#: gcc.c:3057
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
-#: gcc.c:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr ""
-#: gcc.c:3069
+#: gcc.c:3059
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr ""
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr ""
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr ""
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5001,7 +4993,7 @@ msgid ""
" guessing the language based on the file's extension\n"
msgstr ""
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5010,28 +5002,28 @@ msgid ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
-#: gcc.c:3201
+#: gcc.c:3191
#, c-format
msgid "'-%c' option must have argument"
msgstr ""
-#: gcc.c:3223
+#: gcc.c:3213
#, c-format
msgid "couldn't run '%s': %s"
msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5039,95 +5031,95 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан"
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан"
-#: gcc.c:4093
+#: gcc.c:4083
#, c-format
msgid "warning: '-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
@@ -5135,89 +5127,89 @@ msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5266
+#: gcc.c:5239
#, fuzzy, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "нераÑпазнаны выбар \"-%s\""
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr ""
#. )
-#: gcc.c:5415
+#: gcc.c:5388
#, fuzzy
msgid "no arguments for spec function"
msgstr "не хапае аргументаў у функцыі"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "нераÑпазнаны выбар \"-%s\""
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "праграмы: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "бібліÑÑ‚Ñкі: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5226,72 +5218,77 @@ msgstr ""
"\n"
"ІнÑтрукцыі Ð´Ð»Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½ÑÑž аб памылках глÑдзіце тут:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "бібліÑÑ‚Ñкі: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "верÑÑ–Ñ gcc %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr ""
-#: gcc.c:6390
+#: gcc.c:6380
#, fuzzy
msgid "no input files"
msgstr "нÑма ўваходзÑчых файлаў"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s кампілÑтар не ÑžÑталÑваны на гÑтай ÑÑ–ÑÑ‚Ñме"
-#: gcc.c:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "мова %s не раÑпазнана"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr ""
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: gcc.c:7130
+#: gcc.c:7119
#, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr ""
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: gcc.c:7367
+#: gcc.c:7356
#, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr ""
@@ -5572,27 +5569,27 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr ""
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr ""
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr ""
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, fuzzy, c-format
msgid "can't write PCH file: %m"
@@ -5609,7 +5606,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "не магу запіÑаць Ñž %s"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, fuzzy, c-format
msgid "can't read PCH file: %m"
msgstr "не магу прачытаць з %s"
@@ -5618,12 +5615,12 @@ msgstr "не магу прачытаць з %s"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
#, fuzzy
msgid "can't write PCH file"
msgstr "не магу запіÑаць Ñž %s"
@@ -5632,27 +5629,27 @@ msgstr "не магу запіÑаць Ñž %s"
msgid "unexpected node"
msgstr ""
-#: gimplify.c:3137
+#: gimplify.c:3317
#, c-format
msgid "invalid lvalue in asm output %d"
msgstr ""
-#: gimplify.c:3185
+#: gimplify.c:3364
#, c-format
msgid "memory input %d is not directly addressable"
msgstr ""
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, fuzzy, c-format
msgid "%s cannot be used in asm here"
msgstr "\"%s\" звычайна функцыÑ"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, fuzzy, c-format
msgid "can't open %s: %m"
msgstr "немагчыма адчыніць %s"
@@ -5712,90 +5709,100 @@ msgstr "першым аргументам \"%s\" павінен быць \"int\"
msgid "unrecognized command line option \"%s\""
msgstr "ÐераÑпазнаны выбар \"%s\""
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr ""
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "нераÑÐ¿Ð°Ð·Ð½Ð°Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð° ÑÑкцыі \"%s\""
-#: opts.c:937
+#: opts.c:938
#, fuzzy, c-format
msgid "unrecognized register name \"%s\""
msgstr "нераÑÐ¿Ð°Ð·Ð½Ð°Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð° ÑÑкцыі \"%s\""
-#: opts.c:957
+#: opts.c:962
#, fuzzy, c-format
msgid "unknown tls-model \"%s\""
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "нерÑчаіÑны выбар --param : %s"
-#: opts.c:1133
+#: opts.c:1139
#, fuzzy
msgid "target system does not support debug output"
msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: opts.c:1140
+#: opts.c:1146
#, fuzzy, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: opts.c:1156
+#: opts.c:1162
#, fuzzy, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "нераÑÐ¿Ð°Ð·Ð½Ð°Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð° ÑÑкцыі \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "нерÑчаіÑны парамÑÑ‚Ñ€ `%s'"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "нерÑчаіÑны парамÑÑ‚Ñ€ `%s'"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6133,92 +6140,88 @@ msgstr ""
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: файл уводу павінен мець ÑÑƒÑ„Ñ–ÐºÑ .c: %s\n"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:631
+#: reg-stack.c:632
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:691
+#: reg-stack.c:692
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:711
msgid "output operand %d must use %<&%> constraint"
msgstr ""
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr ""
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1876
+#: regrename.c:1872
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1903
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1252
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
msgstr ""
-#: reload.c:1275
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
msgstr ""
-#: reload.c:3513
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
msgstr ""
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr ""
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
msgstr ""
@@ -6230,39 +6233,39 @@ msgstr ""
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1866
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr ""
-#: reload1.c:1871
+#: reload1.c:1870
#, c-format
msgid "unable to find a register to spill in class %qs"
msgstr ""
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr ""
-#: reload1.c:3864
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
#, fuzzy
msgid "could not find a spill register"
msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
-#: reload1.c:4988
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6607
+#: reload1.c:6615
msgid "output operand is constant in %<asm%>"
msgstr ""
@@ -6275,146 +6278,146 @@ msgstr "нераÑпазнаны выбар \"-%s\""
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:472
+#: rtl.c:471
#, c-format
msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:482
+#: rtl.c:481
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:492
+#: rtl.c:491
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:501
+#: rtl.c:500
#, c-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:511
+#: rtl.c:510
#, c-format
msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:522
+#: rtl.c:521
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:533
+#: rtl.c:532
#, c-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr ""
-#: stmt.c:316
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
msgstr ""
-#: stmt.c:331
+#: stmt.c:332
#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:354
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr ""
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
msgstr ""
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:451
+#: stmt.c:452
#, c-format
msgid "input operand constraint contains %qc"
msgstr ""
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
-#: stmt.c:555
+#: stmt.c:556
msgid "matching constraint does not allow a register"
msgstr ""
-#: stmt.c:583
+#: stmt.c:584
#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr ""
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s"
-#: stmt.c:680
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
msgstr ""
-#: stmt.c:727
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
msgstr ""
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#: stmt.c:869
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr ""
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
#, fuzzy
msgid "asm clobber conflict with output operand"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: stmt.c:1031
+#: stmt.c:1032
#, fuzzy
msgid "asm clobber conflict with input operand"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "вельмі шмат аргументаў у функцыі \"%s\""
-#: stmt.c:1120
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr ""
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "нераÑпазнаны аператар %s"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr ""
@@ -6525,101 +6528,101 @@ msgstr ""
msgid "ld returned %d exit status"
msgstr ""
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr ""
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr ""
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
msgid "%J%qF declared %<static%> but never defined"
msgstr ""
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "адмеціна `%D' вызначана, але не выкарыÑтоўваецца"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:927
+#: toplev.c:931
#, c-format
msgid "%qs is deprecated"
msgstr ""
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
"Target specific options:\n"
msgstr ""
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr ""
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr ""
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "ÐерÑчаіÑны выбар %s"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6630,339 +6633,349 @@ msgstr ""
"%s\tзкампілÑвана GNU C верÑÑ–Ñ %s.\n"
"%s%s%s верÑÑ–Ñ %s (%s) зкампілÑвана CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr ""
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "выбары ўключаны:"
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "немагчыма адчыніць %s Ð´Ð»Ñ Ð·Ð°Ð¿Ñ–Ñу"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr ""
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:1744
+#: toplev.c:1764
msgid "value-based profiling not yet implemented in trees."
msgstr ""
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: toplev.c:1831
+#: toplev.c:1851
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr ""
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "немагчыма адчыніць %s"
-#: toplev.c:1873
+#: toplev.c:1893
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: toplev.c:1878
+#: toplev.c:1898
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:1892
+#: toplev.c:1912
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: toplev.c:1904
+#: toplev.c:1924
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: toplev.c:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr ""
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "памылка запіÑу Ñž %s"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "памылка запіÑу Ñž %s"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr ""
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
msgstr ""
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
msgstr ""
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
msgid "Is not a valid GIMPLE statement."
msgstr ""
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
msgstr ""
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
msgid ""
"Case labels not sorted:\n"
" "
msgstr ""
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, fuzzy, c-format
msgid "Missing edge %i->%i"
msgstr "Прапушчан ідÑнтыфікатар"
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr ""
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
msgid "%H%<noreturn%> function does return"
msgstr ""
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
msgid "%Hcontrol reaches end of non-void function"
msgstr ""
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "Ðемагчыма адчыніць файл з дадзенымі %s.\n"
-#: tree-dump.c:960
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr ""
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
msgid "%Jinlining failed in call to %qF: %s"
msgstr ""
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "выклікана адÑюль"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr ""
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -6972,38 +6985,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "-pipe не падтрымліваецца"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "памер вÑртаемага значÑÐ½Ð½Ñ \"%s\" %u байт"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "памер вÑртаемага значÑÐ½Ð½Ñ \"%s\" больш чым %d байт"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7013,294 +7026,299 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "вельмі шмат аргументаў у функцыі"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "Прапушчан ідÑнтыфікатар"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, fuzzy, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: tree-ssa.c:305
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
msgstr ""
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
msgid "verify_ssa failed."
msgstr ""
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
msgstr ""
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
msgstr ""
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "Ð½ÐµÐ¿Ð°Ð´Ñ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÑ–Ñ"
-#: tree.c:3258
+#: tree.c:3272
msgid "%Jfunction %qD definition is marked dllimport."
msgstr ""
-#: tree.c:3266
+#: tree.c:3280
msgid "%Jvariable %qD definition is marked dllimport."
msgstr ""
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr ""
-#: tree.c:5446
+#: tree.c:5482
#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5483
+#: tree.c:5519
#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5496
+#: tree.c:5532
#, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5522
+#: tree.c:5558
#, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr ""
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr ""
-#: varasm.c:910
+#: varasm.c:911
msgid "%Jregister name not specified for %qD"
msgstr ""
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "нерÑчаіÑÐ½Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра `%s'"
-#: varasm.c:914
+#: varasm.c:915
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr ""
-#: varasm.c:917
+#: varasm.c:918
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr ""
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr ""
-#: varasm.c:930
+#: varasm.c:931
msgid "volatile register variables don%'t work as you might wish"
msgstr ""
-#: varasm.c:963
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
msgstr ""
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
-#: varasm.c:1592
+#: varasm.c:1607
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr ""
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr ""
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr ""
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr ""
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr ""
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
msgid "%Jweak declaration of %qD must precede definition"
msgstr ""
-#: varasm.c:4221
+#: varasm.c:4241
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr ""
-#: varasm.c:4255
+#: varasm.c:4275
msgid "%Jweak declaration of %qD must be public"
msgstr ""
-#: varasm.c:4264
+#: varasm.c:4284
msgid "%Jweak declaration of %qD not supported"
msgstr ""
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr ""
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr ""
-#: varasm.c:4418
+#: varasm.c:4504
+#, fuzzy
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: varasm.c:4532
#, fuzzy
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
@@ -7366,11 +7384,11 @@ msgid "debug: "
msgstr ""
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7397,203 +7415,211 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr ""
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: params.def:145
+#: params.def:135
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: params.def:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: params.def:180
+#: params.def:170
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr ""
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr ""
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr ""
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr ""
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr ""
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr ""
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr ""
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr ""
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: params.def:340
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr ""
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr ""
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr ""
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:424
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
msgid "The upper bound for sharing integer constants"
msgstr ""
@@ -7631,8 +7657,8 @@ msgstr ""
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+#: config/darwin.c:1350
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr ""
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -7683,16 +7709,16 @@ msgstr ""
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
msgstr ""
-#: config/darwin.h:154
+#: config/darwin.h:157
#, fuzzy
msgid "Generate code suitable for fast turn around debugging"
msgstr "Стварыць код Ð´Ð»Ñ DLL"
-#: config/darwin.h:156
+#: config/darwin.h:159
#, fuzzy
msgid "Don't generate code suitable for fast turn around debugging"
msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
@@ -7702,7 +7728,7 @@ msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "-pipe не падтрымліваецца"
@@ -7753,7 +7779,7 @@ msgstr ""
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr ""
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr ""
@@ -7793,91 +7819,91 @@ msgstr ""
msgid "bad value %qs for -mmemory-latency"
msgstr ""
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "нерÑчаіÑнае значÑньне %%H"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "дрÑннае %%Q значÑнне"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "нерÑчаіÑнае значÑньне %%r"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "нерÑчаіÑнае значÑньне %%R"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "нерÑчаіÑнае значÑньне %%N"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "нерÑчаіÑнае значÑньне %%P"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "нерÑчаіÑнае значÑньне %%h"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "нерÑчаіÑнае значÑньне %%L"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "нерÑчаіÑнае значÑньне %%m"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "нерÑчаіÑнае значÑньне %%M"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "нерÑчаіÑнае значÑньне %%U"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "нерÑчаіÑнае значÑньне %%v"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "нерÑчаіÑнае значÑньне %%C"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "нерÑчаіÑнае значÑньне %%E"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr ""
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "нерÑчаіÑнае значÑньне %%xn"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr ""
@@ -7894,14 +7920,14 @@ 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/alpha/alpha.h:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "ВыкарыÑтоўваць апаратную плаваючую кропку"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "Ðе выкарыÑтоўваць апаратную плаваючую кропку"
@@ -8021,7 +8047,7 @@ msgstr ""
msgid "Tune expected memory latency"
msgstr ""
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -8040,17 +8066,17 @@ msgstr "аргумент `__builtin_args_info' павінен быць канÑÑ
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, fuzzy, c-format
msgid "invalid operand to %%R code"
msgstr "нерÑчаіÑны %%-код"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, fuzzy, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "нерÑчаіÑны %%-код"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, fuzzy, c-format
msgid "invalid operand to %%U code"
msgstr "нерÑчаіÑны %%-код"
@@ -8062,167 +8088,167 @@ msgstr "нерÑчаіÑны %%-код"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr ""
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr ""
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr ""
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
#, fuzzy
msgid "target CPU does not support THUMB instructions"
msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr ""
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr ""
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "ÐерÑчаіÑны выбар %s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr ""
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "нерÑчаіÑны выбар --param : %s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr ""
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, c-format
msgid "structure size boundary can only be set to %s"
msgstr ""
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "\"%s\" звычайна функцыÑ"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
msgid "predicated instruction in conditional sequence"
msgstr ""
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
msgid "instruction never exectued"
msgstr ""
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "прапушчан ініцыÑлізатар"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr ""
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr ""
@@ -8330,7 +8356,7 @@ msgstr ""
msgid "Specify the register to be used for PIC addressing"
msgstr ""
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr ""
@@ -8346,56 +8372,66 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
#, fuzzy
msgid "invalid insn:"
msgstr "ÐерÑчаіÑны выбар %s"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr ""
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
msgid "only initialized variables can be placed into program memory area"
msgstr ""
-#: config/avr/avr.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr ""
-#: config/avr/avr.c:4615
+#: config/avr/avr.c:4728
#, c-format
msgid "MCU %qs supported for assembler only"
msgstr ""
@@ -8783,245 +8819,236 @@ msgstr ""
msgid "Select CPU to generate code for"
msgstr ""
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr ""
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr ""
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr ""
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr ""
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr ""
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr ""
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr ""
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr ""
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr ""
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr ""
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr ""
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr ""
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr ""
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°: дрÑнны Ñ€ÑгіÑÑ‚Ñ€: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr ""
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "нераÑпазнаны адраÑ"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "нераÑпазнаны выбар \"-%s\""
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr ""
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr ""
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr ""
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr ""
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
#, fuzzy
msgid "Do not use condition codes from normal instructions"
msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
#, fuzzy
msgid "Generate code for the specified chip or CPU version"
msgstr "Генерыраваць код Ð´Ð»Ñ Ð´Ð°Ð´Ð·ÐµÐ½Ð°Ð³Ð° ЦП"
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -9029,46 +9056,46 @@ msgstr ""
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr ""
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr ""
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr ""
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr ""
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
@@ -9076,141 +9103,137 @@ msgstr ""
msgid "Assume small address space"
msgstr ""
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2747
-msgid "Bad insn in frv_print_operand, bad const_double"
+#: config/frv/frv.c:2721
+msgid "bad condition code"
msgstr ""
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr ""
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#: config/frv/frv.c:2796
+msgid "Bad insn in frv_print_operand, bad const_double"
msgstr ""
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr ""
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr ""
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr ""
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr ""
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr ""
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr ""
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr ""
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr ""
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr ""
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr ""
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, c-format
msgid "inappropriate accumulator for %qs"
msgstr ""
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "нерÑчаіÑнае значÑньне %%C"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, c-format
msgid "%qs expects a constant argument"
msgstr ""
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, c-format
msgid "constant argument out of range for %qs"
msgstr ""
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9223,7 +9246,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr ""
@@ -9308,179 +9331,187 @@ msgstr ""
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr ""
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
msgid "code model %<large%> not supported yet"
msgstr ""
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
#, fuzzy
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr ""
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr ""
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr ""
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr ""
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr ""
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr ""
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "памер \"%s\" больш чам %d байт"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr ""
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
#, fuzzy
msgid "invalid constraints for operand"
msgstr "нерÑчаіÑны %%c аперанд"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
#, fuzzy
msgid "unknown insn mode"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr ""
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "\"%s\" атрыбут ігнарыруецца"
@@ -9583,166 +9614,166 @@ msgstr "-pipe не падтрымліваецца"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr ""
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -9756,54 +9787,54 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Генерыраваць код Ð´Ð»Ñ Ð´Ð°Ð´Ð·ÐµÐ½Ð°Ð³Ð° ЦП"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr ""
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr ""
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "ВыкарыÑтоўвываць зададзены дыÑлект аÑÑмблера"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
#, fuzzy
msgid "Use given thread-local storage dialect"
msgstr "ВыкарыÑтоўвываць зададзены дыÑлект аÑÑмблера"
@@ -9845,60 +9876,60 @@ msgstr ""
msgid "malformed #pragma builtin"
msgstr ""
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr ""
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
#, fuzzy
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
#, fuzzy
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "\"%s\" звычайна функцыÑ"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr ""
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr ""
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, c-format
msgid "bad value (%s) for -tune= switch"
msgstr ""
@@ -9906,172 +9937,168 @@ 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Генерыраваць код Ð´Ð»Ñ GNU as"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Генерыраваць код Ð´Ð»Ñ GNU ld"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Генерыраваць код Ð´Ð»Ñ Intel ld"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "Генерыраваць код без GP reg"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr ""
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
msgid "Do not inline floating point division"
msgstr ""
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
msgid "Do not inline integer division"
msgstr ""
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
msgstr ""
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr ""
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
#, fuzzy
msgid "bad operand"
msgstr "нерÑчаіÑны %%f аперанд"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, fuzzy, c-format
msgid "The compiler does not support -march=%s."
msgstr "%s не падтрымлівае %s"
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr ""
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr ""
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, fuzzy, c-format
msgid "invalid %%P operand"
msgstr "нерÑчаіÑны %%-код"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr ""
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr ""
@@ -10088,87 +10115,87 @@ msgstr ""
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr ""
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, fuzzy, c-format
msgid "invalid operand to %%s code"
msgstr "нерÑчаіÑны %%-код"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, fuzzy, c-format
msgid "invalid operand to %%p code"
msgstr "нерÑчаіÑны %%-код"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, fuzzy, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "нерÑчаіÑны %%-код"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, fuzzy, c-format
msgid "invalid operand to %%N code"
msgstr "нерÑчаіÑны %%-код"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "дрÑнны адраÑ"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
#, fuzzy
msgid "lo_sum not of register"
msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
@@ -10198,11 +10225,11 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr ""
@@ -10219,51 +10246,51 @@ msgstr ""
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr ""
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
msgstr ""
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
#, fuzzy
msgid "invalid register in the instruction"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr ""
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
#, fuzzy
msgid "invalid rotate insn"
msgstr "ÐерÑчаіÑны выбар %s"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr ""
@@ -10357,7 +10384,7 @@ msgstr ""
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr ""
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr ""
@@ -10499,7 +10526,7 @@ msgstr ""
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "ÐерÑчаіÑны выбар \"%s\""
@@ -10556,136 +10583,137 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr ""
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr ""
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, fuzzy, c-format
msgid "unsupported combination: %s"
msgstr "Ð½ÐµÐ¿Ð°Ð´Ñ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÑ–Ñ"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr ""
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr ""
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr ""
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr ""
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr ""
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr ""
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "дрÑннае %%Q значÑнне"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr ""
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr ""
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr ""
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -10695,64 +10723,64 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
msgstr ""
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
#, fuzzy
msgid "Output compiler statistics (now ignored)"
msgstr "ВывеÑці ÑтатыÑтыку капілÑтара"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "Ðе выводзіць ÑтатыÑтыку кампілÑтара"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr ""
@@ -10762,198 +10790,198 @@ 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "ВыкарыÑтоўваць апаратную \"плаваючую кропку\""
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "ВыкарыÑтоўваць 64-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ FP-Ñ€ÑгіÑтры"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "ВыкарыÑтоўваць 32-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ FP-Ñ€ÑгіÑтры"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "ВыкарыÑтоўваць 64-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ Ð³Ð°Ð»Ð¾ÑžÐ½Ñ‹Ñ Ñ€ÑгіÑтры"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "ВыкарыÑтоўваць 32-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ Ð³Ð°Ð»Ð¾ÑžÐ½Ñ‹Ñ Ñ€ÑгіÑтры"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "ВыкарыÑтоўваць Irix PIC"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "Ðе выкарыÑтоўваць Irix PIC"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "ВыкарыÑтоўваць апаратную \"плаваючую кропку\""
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
msgid "Use MIPS-3D instructions"
msgstr ""
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
msgid "Perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
msgid "Work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
msgid "Don't work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
msgid "Work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
msgid "Don't work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
msgid "Don't work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
msgid "Use trap to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
msgid "Use break to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
#, fuzzy
msgid "Generate mips16 code"
msgstr "Стварыць код Ð´Ð»Ñ DLL"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
#, fuzzy
msgid "Generate normal-mode code"
msgstr "Генерыраваць код Ð´Ð»Ñ GNU ld"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "выбары ўключаны:"
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "выбары ўключаны:"
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr ""
@@ -10980,70 +11008,70 @@ msgstr ""
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr ""
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr ""
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr ""
@@ -11117,16 +11145,16 @@ msgstr ""
msgid "Do not generate a single exit point for each function"
msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "ÐœÑта - AM33 працÑÑар"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
#, fuzzy
msgid "Target the AM33/2.0 processor"
msgstr "ÐœÑта - AM33 працÑÑар"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr ""
@@ -11211,63 +11239,68 @@ msgstr ""
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr ""
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
#, fuzzy
msgid "Generate cpp defines for server IO"
msgstr "Генерыраваць код Ð´Ð»Ñ Ð´Ð°Ð´Ð·ÐµÐ½Ð°Ð³Ð° ЦП"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
#, fuzzy
msgid "Generate cpp defines for workstation IO"
msgstr "Стварыць код Ð´Ð»Ñ DLL"
@@ -11427,11 +11460,11 @@ msgstr ""
msgid "Specify CPU for scheduling purposes."
msgstr ""
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -11571,218 +11604,246 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr ""
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, fuzzy, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, fuzzy, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
#, fuzzy
msgid "argument 1 must be a 5-bit signed literal"
msgstr "першым аргументам \"%s\" павінен быць \"int\""
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
#, fuzzy
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr "першым аргументам \"%s\" павінен быць \"int\""
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
#, fuzzy
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: config/rs6000/rs6000.c:6802
+#: config/rs6000/rs6000.c:6901
#, fuzzy
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "аргумент `__builtin_args_info' выйшаў за межы"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
#, fuzzy
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr "першым аргументам \"%s\" павінен быць \"int\""
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "першым аргументам \"%s\" павінен быць \"int\""
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
#, fuzzy
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "першым аргументам \"%s\" павінен быць \"int\""
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
#, fuzzy
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7670
#, fuzzy
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "аргумент `__builtin_args_info' выйшаў за межы"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "нерÑчаіÑнае значÑньне %%O"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr ""
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "%s - вельмі вÑлікі"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
msgstr ""
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr ""
@@ -11845,15 +11906,15 @@ msgstr ""
msgid "-m64 not supported in this configuration"
msgstr "-pipe не падтрымліваецца"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr ""
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr ""
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr ""
@@ -12007,7 +12068,7 @@ msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
msgid "Do not generate single field mfcr instruction"
msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr ""
@@ -12079,7 +12140,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
@@ -12231,80 +12292,84 @@ msgstr ""
msgid "-m%s not supported in this configuration"
msgstr "-pipe не падтрымліваецца"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr ""
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "-pipe не падтрымліваецца"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr ""
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
msgid "invalid value for -mwarn-framesize"
msgstr ""
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
msgid "invalid value for -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr ""
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "памер \"%s\" - %d байт"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12400,30 +12465,30 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
#, fuzzy
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs attribute only applies to interrupt functions"
msgstr "\"%s\" звычайна функцыÑ"
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs attribute argument not a string constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
@@ -12456,7 +12521,7 @@ msgstr ""
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
@@ -12469,183 +12534,183 @@ msgstr ""
msgid "Profiling is not supported on this target."
msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "нерÑчаіÑны %%Y аперанд"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "нерÑчаіÑны %%A аперанд"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "нерÑчаіÑны %%B аперанд"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "нерÑчаіÑны %%c аперанд"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "нерÑчаіÑны %%C аперанд"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "нерÑчаіÑны %%d аперанд"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "нерÑчаіÑны %%D аперанд"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "нерÑчаіÑны %%f аперанд"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, fuzzy, c-format
msgid "invalid %%s operand"
msgstr "нерÑчаіÑны %%f аперанд"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr ""
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr ""
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr ""
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr ""
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr ""
@@ -12758,64 +12823,64 @@ msgstr ""
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr ""
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s вельмі вÑлікі"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr ""
@@ -12999,12 +13064,12 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ada/misc.c:258
+#: ada/misc.c:257
#, fuzzy, c-format
msgid "missing argument to \"-%s\""
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: ada/misc.c:299
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
@@ -13012,549 +13077,566 @@ msgstr ""
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr ""
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "пераўтварÑньне з `%T' у `%T'"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
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:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2959
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "памер \"%s\" - %d байт"
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:3015
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:3020
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:3025
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:3028
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:3195
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr ""
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3398
+#: cp/call.c:3405
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr ""
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3700
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:3753
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
msgstr ""
-#: cp/call.c:3755
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
msgstr ""
-#: cp/call.c:3787
+#: cp/call.c:3793
msgid "comparison between %q#T and %q#T"
msgstr ""
-#: cp/call.c:4044
+#: cp/call.c:4052
#, fuzzy
msgid "no suitable %<operator %s> for %qT"
msgstr "немагчымы апÑратар '%s'"
-#: cp/call.c:4061
+#: cp/call.c:4069
msgid "%q+#D is private"
msgstr ""
-#: cp/call.c:4063
+#: cp/call.c:4071
msgid "%q+#D is protected"
msgstr ""
-#: cp/call.c:4065
+#: cp/call.c:4073
msgid "%q+#D is inaccessible"
msgstr ""
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr ""
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "пераўтварÑньне з `%T' у `%T'"
-#: cp/call.c:4156
+#: cp/call.c:4165
msgid " initializing argument %P of %qD"
msgstr ""
-#: cp/call.c:4300
+#: cp/call.c:4177
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr ""
+
+#: cp/call.c:4180
+msgid "converting to non-pointer type %qT from NULL"
+msgstr ""
+
+#: cp/call.c:4188
+msgid "passing %qT for argument %P to %qD"
+msgstr ""
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "пераўтварÑньне з `%T' у `%T'"
+
+#: cp/call.c:4200
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr ""
+
+#: cp/call.c:4203
+msgid "converting negative value %qE to %qT"
+msgstr ""
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
msgid "cannot bind packed field %qE to %qT"
msgstr ""
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/call.c:4401
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
-#: cp/call.c:4470
+#: cp/call.c:4529
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr ""
-#: cp/call.c:4675
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:4694
+#: cp/call.c:4753
msgid "%qT is not an accessible base of %qT"
msgstr ""
-#: cp/call.c:4944
+#: cp/call.c:5003
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:5206
+#: cp/call.c:5263
msgid "call to non-function %qD"
msgstr ""
-#: cp/call.c:5231
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/call.c:5310
+#: cp/call.c:5367
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr ""
-#: cp/call.c:5328
+#: cp/call.c:5385
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:5352
+#: cp/call.c:5409
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:5957
+#: cp/call.c:6014
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
msgid " in call to %qD"
msgstr ""
-#: cp/call.c:6016
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr "пераўтварÑньне з `%T' у `%T'"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr ""
-#: cp/call.c:6281
+#: cp/call.c:6338
msgid "could not convert %qE to %qT"
msgstr ""
-#: cp/call.c:6411
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr ""
-#: cp/call.c:6415
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:273
+#: cp/class.c:272
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr ""
-#: cp/class.c:898
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+#: cp/class.c:929
+msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:899
-msgid "Java class %qT cannot have a destructor"
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:998
+#: cp/class.c:1031
msgid "%q#D and %q#D cannot be overloaded"
msgstr ""
-#: cp/class.c:1055
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
msgstr ""
-#: cp/class.c:1058
+#: cp/class.c:1091
#, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr ""
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "У канÑтрукцыі"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/class.c:1121
+#: cp/class.c:1154
msgid "no members matching %qD in %q#T"
msgstr ""
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/class.c:1154
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
msgstr ""
-#: cp/class.c:1207
+#: cp/class.c:1237
msgid "base class %q#T has a non-virtual destructor"
msgstr ""
-#: cp/class.c:1226
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr ""
-
-#: cp/class.c:1534
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1545
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1585
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:1923
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
msgid "%qD was hidden"
msgstr ""
-#: cp/class.c:2380
+#: cp/class.c:2410
msgid " by %qD"
msgstr ""
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2545
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: cp/class.c:2629
+#: cp/class.c:2651
msgid "negative width in bit-field %qD"
msgstr ""
-#: cp/class.c:2634
+#: cp/class.c:2656
msgid "zero width for bit-field %qD"
msgstr ""
-#: cp/class.c:2640
+#: cp/class.c:2662
msgid "width of %qD exceeds its type"
msgstr ""
-#: cp/class.c:2649
+#: cp/class.c:2671
msgid "%qD is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:2711
+#: cp/class.c:2731
msgid "member %q#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:2714
+#: cp/class.c:2734
msgid "member %q#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:2717
+#: cp/class.c:2737
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:2744
+#: cp/class.c:2760
msgid "multiple fields in union %qT initialized"
msgstr ""
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
msgid "%qD may not be static because it is a member of a union"
msgstr ""
-#: cp/class.c:2875
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2895
msgid "field %qD in local class cannot be static"
msgstr ""
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
-#: cp/class.c:2929
+#: cp/class.c:2939
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2977
+#: cp/class.c:2986
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2992
+#: cp/class.c:3001
msgid "field %q#D with same name as class"
msgstr ""
-#: cp/class.c:3026
+#: cp/class.c:3034
msgid "%q#T has pointer data members"
msgstr ""
-#: cp/class.c:3030
+#: cp/class.c:3038
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3032
+#: cp/class.c:3040
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:3043
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3468
+#: cp/class.c:3476
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3588
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/class.c:4321
+#: cp/class.c:4333
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4432
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4432
+#: cp/class.c:4444
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4603
+#: cp/class.c:4621
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4683
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4693
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'"
-#: cp/class.c:5019
+#: cp/class.c:5042
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5114
+#: cp/class.c:5139
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "мова %s не раÑпазнана"
-#: cp/class.c:5617
+#: cp/class.c:5642
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5767
msgid "no matches converting function %qD to type %q#T"
msgstr ""
-#: cp/class.c:5765
+#: cp/class.c:5790
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr ""
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "прапушчан ініцыÑлізатар"
-#: cp/class.c:5794
+#: cp/class.c:5819
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr ""
-#: cp/class.c:5856
+#: cp/class.c:5881
msgid "argument of type %qT does not match %qT"
msgstr ""
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -13563,12 +13645,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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "абвÑшчÑньне `%#D'"
-#: cp/class.c:6273
+#: cp/class.c:6269
msgid "changes meaning of %qD from %q+#D"
msgstr ""
@@ -13589,181 +13671,189 @@ msgstr ""
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr ""
-#: cp/cvt.c:499
+#: cp/cvt.c:497
msgid "conversion from %qT to %qT discards qualifiers"
msgstr ""
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
msgid "casting %qT to %qT does not dereference pointer"
msgstr ""
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "пераўтварÑньне з `%T' у `%T'"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
msgid "%q#T used where a %qT was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:717
msgid "%q#T used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:765
+#: cp/cvt.c:764
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr ""
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+msgid "pseudo-destructor is not called"
+msgstr ""
+
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:856
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:872
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr ""
#. Only warn when there is no &.
-#: cp/cvt.c:894
+#: cp/cvt.c:898
#, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, c-format
msgid "%s has no effect"
msgstr ""
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+msgid "value computed is not used"
+msgstr ""
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
msgid "ambiguous default type conversion from %qT"
msgstr ""
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "адмеціна `%D' вызначана, але не выкарыÑтоўваецца"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr ""
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "у функцыі \"%s\":"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
msgid "library function %q#D redeclared as non-function %q#D"
msgstr ""
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "новае абвÑшчÑньне `%#D'"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:1356
+#: cp/decl.c:1221
msgid "%q#D redeclared as different kind of symbol"
msgstr ""
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%#D'"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "канфлікт з папÑÑ€Ñднім абвÑшчÑньнем `%#D'"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
@@ -13775,77 +13865,77 @@ msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "папÑÑ€ÑднÑе вызначÑньне"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "нÑма папÑÑ€ÑднÑга прататыпа Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1495
+#: cp/decl.c:1360
#, fuzzy
msgid "%Jfollows non-prototype definition here"
msgstr "папÑÑ€ÑднÑе вызначÑньне"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1550
+#: cp/decl.c:1415
msgid "%q#D was used before it was declared inline"
msgstr ""
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, c-format
msgid "declaration of %qF throws different exceptions"
msgstr ""
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
@@ -13858,232 +13948,232 @@ 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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "ініцыÑлізацыÑ"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "канфлікт з папÑÑ€Ñднім абвÑшчÑньнем `%#D'"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, c-format
msgid "label %qE referenced outside of any function"
msgstr ""
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "паўтарÑнне \"%s\""
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
#, fuzzy
msgid "%H from here"
msgstr " адÑюль"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr "ініцыÑлізацыÑ"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
msgid " enters scope of non-POD %q#D"
msgstr ""
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr ""
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " адÑюль"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr ""
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr "ініцыÑлізацыÑ"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "паўтарÑнне \"%s\""
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "вÑртаемы тып \"%s\" не \"int\""
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:3466
+#: cp/decl.c:3362
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3470
+#: cp/decl.c:3366
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3474
+#: cp/decl.c:3370
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
msgid "%<friend%> can only be specified inside a class"
msgstr ""
-#: cp/decl.c:3563
+#: cp/decl.c:3460
msgid "%<explicit%> can only be specified for constructors"
msgstr ""
-#: cp/decl.c:3565
+#: cp/decl.c:3462
msgid "a storage class can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3571
+#: cp/decl.c:3468
msgid "qualifiers can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
msgid "function %q#D is initialized like a variable"
msgstr ""
-#: cp/decl.c:3735
+#: cp/decl.c:3634
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr ""
-#: cp/decl.c:3766
+#: cp/decl.c:3665
msgid "%q#D is not a static member of %q#T"
msgstr ""
-#: cp/decl.c:3772
+#: cp/decl.c:3671
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:3822
+#: cp/decl.c:3726
msgid "declaration of %q#D outside of class is not definition"
msgstr ""
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr ""
-#: cp/decl.c:3944
+#: cp/decl.c:3848
msgid "%qD declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:3950
+#: cp/decl.c:3854
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr ""
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/decl.c:4011
+#: cp/decl.c:3912
msgid "initializer fails to determine size of %qD"
msgstr ""
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "прапушчан памер маÑіва Ñž `%D'"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "нулÑвы памер маÑіва `%D'"
@@ -14091,632 +14181,653 @@ 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:4065
+#: cp/decl.c:3966
msgid "storage size of %qD isn't known"
msgstr ""
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
msgid "brace-enclosed initializer used to initialize %qT"
msgstr ""
-#: cp/decl.c:4376
+#: cp/decl.c:4280
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr ""
-#: cp/decl.c:4396
+#: cp/decl.c:4300
msgid "%qT has no non-static data member named %qD"
msgstr ""
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/decl.c:4496
+#: cp/decl.c:4405
msgid "variable-sized object %qD may not be initialized"
msgstr ""
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr ""
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:4900
+#: cp/decl.c:4815
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr ""
-#: cp/decl.c:4915
+#: cp/decl.c:4830
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:5523
+#: cp/decl.c:5447
msgid "destructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5525
+#: cp/decl.c:5449
msgid "constructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5546
+#: cp/decl.c:5470
msgid "%qD declared as a %<virtual%> %s"
msgstr ""
-#: cp/decl.c:5548
+#: cp/decl.c:5472
msgid "%qD declared as an %<inline%> %s"
msgstr ""
-#: cp/decl.c:5550
+#: cp/decl.c:5474
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr ""
-#: cp/decl.c:5554
+#: cp/decl.c:5478
msgid "%qD declared as a friend"
msgstr ""
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
msgid "cannot declare %<::main%> to be a template"
msgstr ""
-#: cp/decl.c:5645
+#: cp/decl.c:5572
msgid "cannot declare %<::main%> to be inline"
msgstr ""
-#: cp/decl.c:5647
+#: cp/decl.c:5574
msgid "cannot declare %<::main%> to be static"
msgstr ""
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "`main' павінна вÑртаць `int'"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
msgid "non-local function %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:5690
+#: cp/decl.c:5617
msgid "non-local function %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD in friend declaration"
msgstr "ініцыÑлізацыÑ"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/decl.c:5775
+#: cp/decl.c:5702
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5783
+#: cp/decl.c:5710
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5850
+#: cp/decl.c:5776
msgid "definition of implicitly-declared %qD"
msgstr ""
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
msgid "no %q#D member function declared in class %qT"
msgstr ""
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
msgid "non-local variable %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:6035
+#: cp/decl.c:5953
msgid "non-local variable %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:6150
+#: cp/decl.c:6070
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr ""
-#: cp/decl.c:6160
+#: cp/decl.c:6080
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr ""
-#: cp/decl.c:6164
+#: cp/decl.c:6084
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr ""
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "памер маÑіва `%D' не цÑлалікавы тып"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "памер маÑіва `%D' - адмоўны"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "адмоўны памер маÑіва "
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
#, fuzzy
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
#, fuzzy
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "абвÑшчÑньне `%#D'"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr ""
-#: cp/decl.c:6370
+#: cp/decl.c:6289
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:6432
+#: cp/decl.c:6351
msgid "operator %qT declared to return %qT"
msgstr ""
-#: cp/decl.c:6434
+#: cp/decl.c:6353
msgid "return type specified for %<operator %T%>"
msgstr ""
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:6629
+#: cp/decl.c:6537
msgid "type %qT is not derived from type %qT"
msgstr ""
-#: cp/decl.c:6674
-msgid "declarator-id missing; using reserved word %qD"
-msgstr ""
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "абвÑшчÑньне `%#D'"
+
+#: cp/decl.c:6593
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++ не падтрымлівае \"long long\""
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "long, short, signed ці unsigned нерÑчаіÑны Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "long, short, signed ці unsigned нерÑчаіÑны Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, c-format
msgid "long and short specified together for %qs"
msgstr ""
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, c-format
msgid "long or short specified with char for %qs"
msgstr ""
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, c-format
msgid "long or short specified with floating type for %qs"
msgstr ""
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, c-format
msgid "signed and unsigned given together for %qs"
msgstr ""
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "long, short, signed ці unsigned нерÑчаіÑны Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "complex нерÑчаіÑны Ð´Ð»Ñ \"%s\""
-#: cp/decl.c:7003
+#: cp/decl.c:6922
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: cp/decl.c:6957
msgid "member %qD cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "паўторнае абвÑшчÑньне адмеціны `%s'"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, c-format
msgid "storage class specified for %s %qs"
msgstr ""
-#: cp/decl.c:7150
+#: cp/decl.c:7083
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr ""
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7292
+#: cp/decl.c:7223
msgid "destructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:7320
+#: cp/decl.c:7251
msgid "constructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "Ðе магу знайÑці файл Ð´Ð»Ñ ÐºÐ»Ð°Ñа %s."
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
msgid "cannot declare pointer to %q#T member"
msgstr ""
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+msgid "%qD is a namespace"
+msgstr ""
+
+#: cp/decl.c:7400
msgid "template-id %qD used as a declarator"
msgstr ""
-#: cp/decl.c:7497
+#: cp/decl.c:7447
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr ""
-#: cp/decl.c:7516
+#: cp/decl.c:7466
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:7531
+#: cp/decl.c:7481
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr ""
-#: cp/decl.c:7570
+#: cp/decl.c:7520
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:7572
+#: cp/decl.c:7522
msgid "parameter may not have variably modified type %qT"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
msgid "only declarations of constructors can be %<explicit%>"
msgstr ""
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7627
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
+#: cp/decl.c:7595
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:7689
-#, fuzzy
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7752
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr ""
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:7765
+#: cp/decl.c:7733
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:7771
+#: cp/decl.c:7739
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr ""
-#: cp/decl.c:7784
+#: cp/decl.c:7752
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:7814
+#: cp/decl.c:7782
msgid "abstract declarator %qT used as declaration"
msgstr ""
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "Ðе магу знайÑці дÑкларацыю пратакола Ð´Ð»Ñ \"%s\""
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "нерÑчаіÑнае выкарыÑтаньне `::'"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
msgid "can't make %qD into a method -- not in a class"
msgstr ""
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
msgid "%qD cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "абвÑшчÑньне шаблёну `%#D'"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -14732,82 +14843,82 @@ 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ініцыÑлізацыÑ"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
msgid "making %qD static"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8111
msgid "storage class %<auto%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:8140
+#: cp/decl.c:8113
msgid "storage class %<register%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:8142
+#: cp/decl.c:8115
msgid "storage class %<__thread%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:8153
+#: cp/decl.c:8126
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8156
+#: cp/decl.c:8129
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, c-format
msgid "virtual non-class function %qs"
msgstr ""
-#: cp/decl.c:8195
+#: cp/decl.c:8168
msgid "cannot declare member function %qD to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:8231
+#: cp/decl.c:8204
msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:8238
+#: cp/decl.c:8211
msgid "static member %qD declared %<register%>"
msgstr ""
-#: cp/decl.c:8243
+#: cp/decl.c:8216
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "звычайны аргумÑнт Ð´Ð»Ñ `%#D' мае тып `%T'"
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "звычайны аргумÑнт Ð´Ð»Ñ `%#D' мае тып `%T'"
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr ""
@@ -14826,115 +14937,115 @@ 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:8657
+#: cp/decl.c:8630
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
msgid "%qD must be a nonstatic member function"
msgstr ""
-#: cp/decl.c:8809
+#: cp/decl.c:8782
msgid "%qD must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:8827
+#: cp/decl.c:8800
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:8920
+#: cp/decl.c:8893
msgid "postfix %qD must take %<int%> as its argument"
msgstr ""
-#: cp/decl.c:8924
+#: cp/decl.c:8897
msgid "postfix %qD must take %<int%> as its second argument"
msgstr ""
-#: cp/decl.c:8931
+#: cp/decl.c:8904
msgid "%qD must take either zero or one argument"
msgstr ""
-#: cp/decl.c:8933
+#: cp/decl.c:8906
msgid "%qD must take either one or two arguments"
msgstr ""
-#: cp/decl.c:8954
+#: cp/decl.c:8927
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:8933
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8969
+#: cp/decl.c:8942
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
msgid "%qD must take exactly one argument"
msgstr ""
-#: cp/decl.c:8981
+#: cp/decl.c:8954
msgid "%qD must take exactly two arguments"
msgstr ""
-#: cp/decl.c:8989
+#: cp/decl.c:8962
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:9003
+#: cp/decl.c:8976
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/decl.c:9086
+#: cp/decl.c:9064
msgid "using typedef-name %qD after %qs"
msgstr ""
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "гÑта папÑÑ€ÑднÑе абвÑшчÑньне"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "гÑта папÑÑ€ÑднÑе абвÑшчÑньне"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
msgid "%qT referred to as enum"
msgstr ""
@@ -14945,52 +15056,56 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:9397
+#: cp/decl.c:9389
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:9405
+#: cp/decl.c:9397
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:9424
+#: cp/decl.c:9416
msgid "base type %qT fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:9457
+#: cp/decl.c:9449
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "паўтарÑнне \"restrict\""
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "папÑÑ€ÑднÑе вызначÑньне"
@@ -14999,71 +15114,71 @@ msgstr "папÑÑ€ÑднÑе вызначÑньне"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
msgid "enumerator value for %qD not integer constant"
msgstr ""
-#: cp/decl.c:9795
+#: cp/decl.c:9792
msgid "overflow in enumeration values at %qD"
msgstr ""
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "вÑртаемы тып \"%s\" не \"int\""
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
-#: cp/decl.c:11012
+#: cp/decl.c:11015
msgid "static member function %q#D declared with type qualifiers"
msgstr ""
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr ""
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:381
+#: cp/decl2.c:380
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr ""
-#: cp/decl2.c:426
+#: cp/decl2.c:423
msgid "deleting array %q#D"
msgstr ""
-#: cp/decl2.c:432
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr ""
-#: cp/decl2.c:444
+#: cp/decl2.c:441
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr ""
-#: cp/decl2.c:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "метка \"%s\" ужываецца, але не вызначана"
@@ -15071,179 +15186,173 @@ msgstr "метка \"%s\" ужываецца, але не вызначана"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
msgstr ""
-#: cp/decl2.c:572
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
msgstr ""
-#: cp/decl2.c:677
+#: cp/decl2.c:674
msgid "prototype for %q#D does not match any in class %qT"
msgstr ""
-#: cp/decl2.c:778
+#: cp/decl2.c:775
msgid "local class %q#T shall not have static data member %q#D"
msgstr ""
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:870
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:964
+#: cp/decl2.c:972
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "нерÑчаіÑны ініцыÑлізатар"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr ""
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
msgid "%<operator new%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr ""
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
msgid "%<operator delete%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr ""
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr ""
-#: cp/except.c:250
+#: cp/except.c:273
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr ""
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:810
+#: cp/except.c:836
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:895
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
msgstr ""
-#: cp/except.c:897
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
msgstr ""
-#: cp/except.c:927
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr ""
@@ -15325,194 +15434,202 @@ msgstr ""
msgid "argument to '%s' missing\n"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: cp/init.c:363
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr ""
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "прапушчан ініцыÑлізатар"
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
msgid "%qD will be initialized after"
msgstr ""
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
-#: cp/init.c:521
+#: cp/init.c:531
msgid " %q#D"
msgstr ""
-#: cp/init.c:523
+#: cp/init.c:533
msgid " base %qT"
msgstr ""
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "ініцыÑлізацыÑ"
-#: cp/init.c:543
+#: cp/init.c:553
msgid "%Jmultiple initializations given for base %qT"
msgstr ""
-#: cp/init.c:610
+#: cp/init.c:620
msgid "%Jinitializations for multiple members of %qT"
msgstr ""
-#: cp/init.c:667
+#: cp/init.c:677
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
msgid "class %qT does not have any field named %qD"
msgstr ""
-#: cp/init.c:897
+#: cp/init.c:907
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr ""
-#: cp/init.c:904
+#: cp/init.c:914
msgid "%q#D is not a non-static data member of %qT"
msgstr ""
-#: cp/init.c:943
+#: cp/init.c:953
msgid "unnamed initializer for %qT, which has no base classes"
msgstr ""
-#: cp/init.c:951
+#: cp/init.c:961
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:997
+#: cp/init.c:1007
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1005
+#: cp/init.c:1015
msgid "type %qD is not a direct or virtual base of %qT"
msgstr ""
-#: cp/init.c:1008
+#: cp/init.c:1018
msgid "type %qD is not a direct base of %qT"
msgstr ""
-#: cp/init.c:1088
+#: cp/init.c:1098
#, fuzzy
msgid "bad array initializer"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/init.c:1379
+#: cp/init.c:1389
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr ""
-#: cp/init.c:1387
+#: cp/init.c:1397
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:1679
+#: cp/init.c:1700
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:1695
+#: cp/init.c:1716
#, fuzzy
msgid "can't find class$"
msgstr "Ðе магу знайÑці ÐºÐ»Ð°Ñ \"%s\""
-#: cp/init.c:1823
+#: cp/init.c:1844
msgid "invalid type %<void%> for new"
msgstr ""
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/init.c:1867
+#: cp/init.c:1888
#, c-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "памер \"%s\" - %d байт"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr ""
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr ""
@@ -15587,14 +15704,18 @@ msgstr ""
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:650
+#: cp/method.c:657
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr ""
-#: cp/method.c:656
+#: cp/method.c:663
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr ""
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -15693,65 +15814,59 @@ msgstr "%s: %s: "
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "дÑÑтруктару неабходны \"%#D\""
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "\"%s\" мае незавершаны тып"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "YYDEBUG не вызначан."
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr ""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr ""
@@ -15759,421 +15874,438 @@ msgstr ""
msgid "using-declaration cannot name destructor"
msgstr ""
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr ""
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
msgid "namespace %qT undeclared"
msgstr ""
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "\"%s\" атрыбут ігнарыруецца"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "памер \"%s\" - %d байт"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
msgid "%qD denotes an ambiguous type"
msgstr ""
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
#, fuzzy
msgid "%J first type here"
msgstr " адÑюль"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "нерÑчаіÑнае выкарыÑтаньне `%D'"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
msgid " conflict with %qD"
msgstr ""
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
+
+#: cp/parser.c:1836
msgid "%<%D::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
msgid "%<::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1818
+#: cp/parser.c:1842
msgid "request for member %qD in non-class type %qT"
msgstr ""
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
msgid "%<%D::%D%> %s"
msgstr ""
-#: cp/parser.c:1829
+#: cp/parser.c:1853
msgid "%<::%D%> %s"
msgstr ""
-#: cp/parser.c:1831
+#: cp/parser.c:1855
msgid "%qD %s"
msgstr ""
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr ""
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "ÐерÑчаіÑны выбар %s"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "нÑвернае выкарыÑтанне \"restict\""
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
-#: cp/parser.c:2011
+#: cp/parser.c:2039
msgid "%qE in class %qT does not name a type"
msgstr ""
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr ""
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:3238
+#: cp/parser.c:3316
msgid "typedef-name %qD used as destructor declarator"
msgstr ""
-#: cp/parser.c:3886
+#: cp/parser.c:3965
#, fuzzy
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr ""
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr ""
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr ""
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr ""
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, c-format
msgid "case label %qE not within a switch statement"
msgstr ""
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "паўтарÑньне `%s'"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
#, fuzzy
msgid "class definition may not be declared a friend"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr ""
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
msgid "%<<::%> cannot begin a template-argument list"
msgstr ""
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+msgid "parse error in template argument list"
+msgstr ""
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
msgid "non-template %qD used as template"
msgstr ""
-#: cp/parser.c:8537
+#: cp/parser.c:8655
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:9554
-msgid "using %<typename%> outside of template"
-msgstr ""
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "пуÑтое абвÑшчÑнне"
-#: cp/parser.c:9677
-msgid "expected type-name"
+#: cp/parser.c:9688
+msgid "using %<typename%> outside of template"
msgstr ""
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr ""
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
#, fuzzy
msgid "a template-id may not appear in a using-declaration"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10597
#, fuzzy
msgid "attributes are not allowed on a function-definition"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "паўтарÑнне \"volatile\""
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr ""
-#: cp/parser.c:11858
+#: cp/parser.c:11980
msgid "default arguments are only permitted for function parameters"
msgstr ""
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
+
+#: cp/parser.c:12733
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr ""
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "ініцыÑлізацыÑ"
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'"
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
msgid "friend declaration does not name a class or function"
msgstr ""
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:13395
+#: cp/parser.c:13547
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr ""
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr ""
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "памер \"%s\" - %d байт"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
#, fuzzy
msgid "too few template-parameter-lists"
msgstr "невыкарыÑтаемы параметр \"%s\""
@@ -16182,161 +16314,161 @@ msgstr "невыкарыÑтаемы параметр \"%s\""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr ""
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "-pipe не падтрымліваецца."
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "пуÑтое абвÑшчÑнне"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:15063
+#: cp/parser.c:15233
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:15068
+#: cp/parser.c:15238
msgid "missing %<>%> to terminate the template argument list"
msgstr ""
-#: cp/parser.c:15586
+#: cp/parser.c:15766
msgid "%qs tag used in naming %q#T"
msgstr ""
-#: cp/parser.c:15607
+#: cp/parser.c:15787
msgid "%qD redeclared with different access"
msgstr ""
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
msgid "inter-module optimizations not implemented for C++"
msgstr ""
-#: cp/pt.c:240
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "ініцыÑлізацыÑ"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:669
+#: cp/pt.c:670
msgid "specialization of %qD in different namespace"
msgstr ""
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'"
-#: cp/pt.c:706
+#: cp/pt.c:707
msgid "specialization of %qT after instantiation"
msgstr ""
-#: cp/pt.c:738
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
msgstr ""
-#: cp/pt.c:753
+#: cp/pt.c:754
msgid "specialization %qT after instantiation %qT"
msgstr ""
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "ініцыÑлізацыÑ"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
msgid "specialization of %qD after instantiation"
msgstr ""
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:1542
+#: cp/pt.c:1543
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr ""
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr ""
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16345,63 +16477,58 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "у функцыі \"%s\":"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-msgid "too many template parameter lists in declaration of %qT"
-msgstr ""
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2630
+#: cp/pt.c:2605
msgid " %qD"
msgstr ""
-#: cp/pt.c:2641
+#: cp/pt.c:2616
msgid "partial specialization %qT does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2710
+#: cp/pt.c:2685
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
msgid "destructor %qD declared as member template"
msgstr ""
@@ -16410,61 +16537,66 @@ msgstr ""
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "абвÑшчÑньне шаблёну `%#D'"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr ""
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "пуÑтое абвÑшчÑнне"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr ""
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: cp/pt.c:3249
+#: cp/pt.c:3235
msgid "redeclared here as %q#D"
msgstr ""
@@ -16472,308 +16604,316 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr ""
-#: cp/pt.c:3370
+#: cp/pt.c:3342
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3411
+#: cp/pt.c:3383
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr ""
-#: cp/pt.c:3486
+#: cp/pt.c:3458
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr ""
-#: cp/pt.c:3536
+#: cp/pt.c:3508
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr ""
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr ""
-#: cp/pt.c:3576
+#: cp/pt.c:3548
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3618
+#: cp/pt.c:3590
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr ""
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr ""
-#: cp/pt.c:3658
+#: cp/pt.c:3630
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:3827
+#: cp/pt.c:3799
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:3845
+#: cp/pt.c:3818
msgid " expected a constant of type %qT, got %qT"
msgstr ""
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, c-format
msgid " expected a class template, got %qE"
msgstr ""
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, c-format
msgid " expected a type, got %qE"
msgstr ""
-#: cp/pt.c:3864
+#: cp/pt.c:3837
msgid " expected a type, got %qT"
msgstr ""
-#: cp/pt.c:3866
+#: cp/pt.c:3839
msgid " expected a class template, got %qT"
msgstr ""
-#: cp/pt.c:3903
+#: cp/pt.c:3876
msgid " expected a template of type %qD, got %qD"
msgstr ""
-#: cp/pt.c:3939
+#: cp/pt.c:3912
msgid "could not convert template argument %qE to %qT"
msgstr ""
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "дÑÑтруктару неабходны \"%#D\""
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr ""
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
msgid "non-template type %qT used as a template"
msgstr ""
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "пуÑтое абвÑшчÑнне"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:6522
+#: cp/pt.c:6510
msgid "instantiation of %qD as type %qT"
msgstr ""
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "нерÑчаіÑны тып парамÑтра `%T'"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "у абвÑшчÑньні `%D'"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ Ð½Ðµ вÑртае тып string"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
msgid "creating pointer to member function of non-class type %qT"
msgstr ""
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, c-format
msgid "creating array with size zero (%qE)"
msgstr ""
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:7178
+#: cp/pt.c:7171
msgid "forming %s to reference type %qT"
msgstr ""
-#: cp/pt.c:7215
+#: cp/pt.c:7208
msgid "creating pointer to member of non-class type %qT"
msgstr ""
-#: cp/pt.c:7221
+#: cp/pt.c:7214
msgid "creating pointer to member reference type %qT"
msgstr ""
-#: cp/pt.c:7291
+#: cp/pt.c:7280
msgid "creating array of %qT"
msgstr ""
-#: cp/pt.c:7297
+#: cp/pt.c:7286
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:7341
+#: cp/pt.c:7330
msgid "%qT is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr ""
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:7557
+#: cp/pt.c:7556
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+msgid "using invalid field %qD"
+msgstr ""
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/pt.c:8844
-msgid "%qT uses anonymous type"
+#: cp/pt.c:8872
+msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:8846
+#: cp/pt.c:8874
msgid "%qT uses local type %qT"
msgstr ""
-#: cp/pt.c:8854
+#: cp/pt.c:8883
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
msgid " trying to instantiate %qD"
msgstr ""
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr ""
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:10784
+#: cp/pt.c:10847
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr ""
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
msgid "storage class %qD applied to template instantiation"
msgstr ""
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:10860
+#: cp/pt.c:10923
msgid "explicit instantiation of %q#T before definition of template"
msgstr ""
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr ""
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: cp/pt.c:11278
+#: cp/pt.c:11341
msgid "explicit instantiation of %qD but no definition available"
msgstr ""
-#: cp/pt.c:11422
+#: cp/pt.c:11485
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr ""
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "нÑвернае выкарыÑтанне \"restict\""
@@ -16792,23 +16932,23 @@ msgstr ""
msgid "can't create repository information file %qs"
msgstr "немагчыма Ñтварыць дырÑкторыю \"%s\""
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr ""
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:321
+#: cp/rtti.c:322
msgid "cannot create type information for type %qT because its size is variable"
msgstr ""
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr ""
-#: cp/rtti.c:667
+#: cp/rtti.c:663
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr ""
@@ -16820,219 +16960,214 @@ msgstr ""
msgid "%qT is an inaccessible base of %qT"
msgstr ""
-#: cp/search.c:1834
+#: cp/search.c:1843
msgid "deprecated covariant return type for %q#D"
msgstr ""
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
msgid " overriding %q#D"
msgstr ""
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "нерÑчаіÑны тып парамÑтра `%T'"
-#: cp/search.c:1855
+#: cp/search.c:1864
msgid "conflicting return type specified for %q#D"
msgstr ""
-#: cp/search.c:1866
+#: cp/search.c:1875
msgid "looser throw specifier for %q#F"
msgstr ""
-#: cp/search.c:1867
+#: cp/search.c:1876
msgid " overriding %q#F"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
-#: cp/search.c:1961
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
msgstr ""
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "тып параметра \"%s\" не аб'Ñўлены"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
msgid "object missing in reference to %qD"
msgstr ""
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "памер \"%s\" больш чам %d байт"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
msgid "%<this%> is unavailable for static member functions"
msgstr ""
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr ""
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
msgid "%qE is not of type %qT"
msgstr ""
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
#, fuzzy
msgid "invalid default argument for a template template parameter"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
msgid "definition of %q#T inside template parameter list"
msgstr ""
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
#, fuzzy
msgid "invalid base-class specification"
msgstr "ÐерÑчаіÑÐ½Ð°Ñ ÑпецыфікацыÑ! Памылка Ñž cc."
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
msgid "base class %qT has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "памер \"%s\" - %d байт"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
msgid "%qD is not a member of %qT"
msgstr ""
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
msgid "%qD is not a member of %qD"
msgstr ""
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "памер маÑіва \"%s\" адмоўны"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
msgid "use of namespace %qD as expression"
msgstr ""
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
msgid "use of class template %qT as expression"
msgstr ""
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
msgid " %q#D declared here"
msgstr ""
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, c-format
msgid "type of %qE is unknown"
msgstr ""
-#: cp/tree.c:525
+#: cp/tree.c:539
msgid "%qV qualifiers cannot be applied to %qT"
msgstr ""
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
@@ -17049,198 +17184,198 @@ msgstr ""
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr ""
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, c-format
msgid "invalid application of %qs to a member function"
msgstr ""
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, c-format
msgid "invalid application of %qs to a bit-field"
msgstr ""
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
msgid "deprecated conversion from string constant to %qT'"
msgstr ""
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
msgid "%<%D::%D%> is not a member of %qT"
msgstr ""
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
msgid "%qT is not a base of %qT"
msgstr ""
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
msgid "%qD has no member named %qE"
msgstr ""
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD 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:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr ""
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr ""
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
msgid "subscripting array declared %<register%>"
msgstr ""
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, c-format
msgid "object missing in use of %qE"
msgstr ""
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "\"%s\" звычайна функцыÑ"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "вельмі шмат аргументаў у функцыі \"%s\""
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr ""
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "вельмі шмат аргументаў у функцыі"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "нехапае аргументаў у функцыі \"%s\""
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "не хапае аргументаў у функцыі"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
msgid "assuming cast to type %qT from overloaded function"
msgstr ""
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
msgid "division by zero in %<%E / 0%>"
msgstr ""
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
msgid "division by zero in %<%E / 0.%>"
msgstr ""
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
msgid "division by zero in %<%E %% 0%>"
msgstr ""
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
msgid "division by zero in %<%E %% 0.%>"
msgstr ""
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr ""
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr ""
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr ""
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
msgid "comparison between types %q#T and %q#T"
msgstr ""
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
@@ -17248,140 +17383,140 @@ 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr ""
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr ""
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr ""
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
msgid "invalid use of %<--%> on bool variable %qD"
msgstr ""
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл"
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr ""
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
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:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr ""
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr ""
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:4355
+#: cp/typeck.c:4318
msgid "address of explicit register variable %qD requested"
msgstr ""
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, c-format
msgid "%s expression list treated as compound expression"
msgstr ""
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
msgid "%s from type %qT to type %qT casts away constness"
msgstr ""
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "пераўтварÑньне з `%T' у `%T'"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
msgid "cast from %qT to %qT loses precision"
msgstr ""
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr ""
@@ -17389,153 +17524,129 @@ msgstr ""
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
msgid "incompatible types in assignment of %qT to %qT"
msgstr ""
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr ""
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
msgid "pointer to member cast via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
msgid "pointer to member conversion via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "ÐерÑчаіÑны выбар \"%s\""
-#: cp/typeck.c:5871
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5874
-msgid "%s to non-pointer type %qT from NULL"
-msgstr ""
-
-#: cp/typeck.c:5882
-msgid "passing %qT for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5885
-msgid "%s to %qT from %qT"
-msgstr ""
-
-#: cp/typeck.c:5894
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5897
-msgid "%s of negative value %qE to %qT"
-msgstr ""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr ""
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
msgid "cannot convert %qT to %qT in %s"
msgstr ""
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
msgid "reference to local variable %qD returned"
msgstr ""
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
msgid "address of local variable %qD returned"
msgstr ""
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
msgid "return-statement with no value, in function returning %qT"
msgstr ""
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
msgid "return-statement with a value, in function returning 'void'"
msgstr ""
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr ""
@@ -17594,163 +17705,163 @@ msgstr ""
msgid "%J since type %qT has pure virtual functions"
msgstr ""
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr ""
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
msgid "variable-sized object of type %qT may not be initialized"
msgstr ""
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr ""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "прапушчан ініцыÑлізатар"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "параметр \"%s\" ініцыÑлізаваны"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
msgid "no field %qD in union being initialized"
msgstr ""
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
msgid "union %qT with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "памер маÑіва `%D' не цÑлалікавы тып"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
msgid "base operand of %<->%> is not a pointer"
msgstr ""
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "\"%s\" мае незавершаны тып"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "\"%s\" мае незавершаны тып"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "немагчыма зачыніць уваходзÑчы файл %s"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, c-format
msgid "global register variable %qs used in nested function"
msgstr ""
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, c-format
msgid "register variable %qs used in nested function"
msgstr ""
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, c-format
msgid "address of global register variable %qs requested"
msgstr ""
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, c-format
msgid "address of register variable %qs requested"
msgstr ""
@@ -17769,82 +17880,82 @@ msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
msgid "no input files; unwilling to write output files"
msgstr ""
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ Ð½Ðµ вÑртае тып string"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "невыкарыÑтаемы параметр \"%s\""
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "невыкарыÑÑ‚Ð¾ÑžÐ²Ð°ÐµÐ¼Ð°Ñ Ð¿ÐµÑ€Ð°Ð¼ÐµÐ½Ð½Ð°Ñ \"%s\""
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
msgid "Function return value not set"
msgstr ""
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "мова %s не раÑпазнана"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -17861,7 +17972,7 @@ msgstr ""
msgid "Array element size too big"
msgstr ""
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -17871,27 +17982,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, c-format
msgid "Variable %qs may not have been initialized"
msgstr ""
-#: java/check-init.c:529
+#: java/check-init.c:535
#, c-format
msgid "variable %qs may not have been initialized"
msgstr ""
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:1013
+#: java/check-init.c:1026
msgid "%Jfinal field %qD may not have been initialized"
msgstr ""
@@ -17927,312 +18038,312 @@ msgstr "абÑтрактны метад у неабÑтрактным клаÑе
msgid "%Jnon-static method '%D' overrides static method"
msgstr ""
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, c-format
msgid "declaration of %qs shadows a parameter"
msgstr ""
-#: java/decl.c:1247
+#: java/decl.c:1304
#, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr ""
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
-#: java/decl.c:1580
+#: java/decl.c:1637
#, fuzzy
msgid "%Jlabel '%D' defined but not used"
msgstr "адмеціна `%D' вызначана, але не выкарыÑтоўваецца"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr ""
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, c-format
msgid "assert: %s is assign compatible with %s"
msgstr ""
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1699
+#: java/expr.c:1703
#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr ""
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "поле \"%s\" не знойдзена Ñž клаÑе"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "метад \"%s\" не знойдзен у клаÑе"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "прапушчана поле '%s' у '%s'"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, fuzzy, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "Прапушчана поле \"%s\" у \"%s\""
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr ""
-#: java/expr.c:2742
+#: java/expr.c:2746
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr ""
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr ""
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr ""
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "у метадзе \"%s\":"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "немагчыма знайÑьці клÑÑ `%s'"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, c-format
msgid "parse error while reading %s"
msgstr ""
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, c-format
msgid "unparseable signature: '%s'"
msgstr ""
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
msgid "Not a valid Java .class file."
msgstr ""
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr ""
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, c-format
msgid "error in constant pool entry #%d"
msgstr ""
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
msgid "class is of array type\n"
msgstr ""
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
"\n"
msgstr ""
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr ""
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr ""
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, c-format
msgid " -IDIR Append directory to class path\n"
msgstr ""
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -dumpversion ÐдлюÑтраваць верÑÑ–ÑŽ кампілÑтара\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -dumpversion ÐдлюÑтраваць верÑÑ–ÑŽ кампілÑтара\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -18241,30 +18352,30 @@ msgstr ""
"\n"
"ІнÑтрукцыі Ð´Ð»Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½ÑÑž аб памылках глÑдзіце тут:\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
msgid "'-MG' option is unimplemented"
msgstr ""
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
msgid "can't specify both -o and -MD"
msgstr ""
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "верÑÑ–Ñ gcc %s\n"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -18279,7 +18390,7 @@ msgstr ""
msgid "error while parsing constant pool\n"
msgstr ""
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
@@ -18353,104 +18464,104 @@ msgstr ""
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr ""
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr ""
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "немагчыма адчыніць %s"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "не магу зачыніць %s"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr "немагчыма знайÑьці файл Ð´Ð»Ñ ÐºÐ»ÑÑа %s"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr ""
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "немагчыма зачыніць уваходзÑчы файл %s"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "дрÑнны zip/jar файл \"%s\""
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr ""
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
#, fuzzy
msgid "field initializer type mismatch"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "немагчыма Ñтварыць дырÑкторыю \"%s\""
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, fuzzy, c-format
msgid "can't open %s for writing: %m"
msgstr "немагчыма адчыніць %s Ð´Ð»Ñ Ð·Ð°Ð¿Ñ–Ñу"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "немагчыма Ñтварыць дырÑкторыю \"%s\""
@@ -18504,26 +18615,26 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "немагчыма адчыніць файл уводу `%s'"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "файл `%s' Ð½Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "Ð³Ñ€Ð°Ð¼Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, c-format
msgid "%s: warning: "
msgstr "%s: увага: "
@@ -18576,15 +18687,15 @@ msgstr ""
msgid "cannot specify 'main' class when not linking"
msgstr ""
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:256
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -18593,7 +18704,7 @@ msgid ""
"%<--encoding=UTF-8%> option"
msgstr ""
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°: дрÑнны Ñ€ÑгіÑÑ‚Ñ€: %d"
@@ -18607,901 +18718,901 @@ msgstr "не магу зачыніць %s"
msgid "internal error - invalid Utf8 name"
msgstr ""
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr ""
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr ""
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "Прапушчана назва"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr ""
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr ""
-#: java/parse.y:841
+#: java/parse.y:840
#, c-format
msgid "Modifier %qs declared twice"
msgstr ""
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "Прапушчана назва клаÑа"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr ""
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr ""
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr ""
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr ""
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr ""
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr ""
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr ""
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr ""
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr ""
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr ""
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr ""
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "Прапушчан ідÑнтыфікатар"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr ""
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr ""
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr ""
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr ""
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr ""
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr ""
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr ""
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr ""
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr ""
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr ""
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr ""
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr ""
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr ""
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr ""
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr ""
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr ""
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr ""
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr ""
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr ""
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr ""
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr ""
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr ""
-#: java/parse.y:3042
+#: java/parse.y:3041
#, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ""
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Прапушчана назва"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
msgid "Unreachable statement"
msgstr ""
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, c-format
msgid "%s %qs already defined in %s:%d"
msgstr ""
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, c-format
msgid "Interface %qs repeated"
msgstr ""
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
msgid "Qualifier must be a reference"
msgstr ""
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "перанакіраванне stdout: %s"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
#, fuzzy
msgid "Class %qs not found in %<throws%>"
msgstr "поле \"%s\" не знойдзена Ñž клаÑе"
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "паўторнае абвÑшчÑньне адмеціны `%s'"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, c-format
msgid "Class or interface %qs not found in import"
msgstr ""
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: java/parse.y:7148
+#: java/parse.y:7151
#, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
-#: java/parse.y:7153
+#: java/parse.y:7156
#, fuzzy, c-format
msgid "Package %qs not found in import"
msgstr "поле \"%s\" не знойдзена Ñž клаÑе"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "невыкарыÑÑ‚Ð¾ÑžÐ²Ð°ÐµÐ¼Ð°Ñ Ð¿ÐµÑ€Ð°Ð¼ÐµÐ½Ð½Ð°Ñ \"%s\""
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "немагчыма знайÑьці файл Ð´Ð»Ñ ÐºÐ»ÑÑа %s"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, c-format
msgid "Can't use type %qs as a qualifier"
msgstr ""
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "поле \"%s\" не знойдзена Ñž клаÑе"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
msgid "Constant expression required"
msgstr ""
-#: java/parse.y:11796
+#: java/parse.y:11799
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "паўторнае абвÑшчÑньне адмеціны `%s'"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "прапушчана поле '%s' у '%s'"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, c-format
msgid "not a static field %qs"
msgstr ""
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr ""
-#: java/parse.y:12827
+#: java/parse.y:12830
msgid "Invalid left hand side of assignment"
msgstr ""
-#: java/parse.y:12878
+#: java/parse.y:12881
#, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr ""
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "нераÑпазнаны аператар %s"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "нÑвернае выкарыÑтанне \"restict\""
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr ""
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "нерÑчаіÑны тып парамÑтра `%T'"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, c-format
msgid "Invalid cast from %qs to %qs"
msgstr ""
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr ""
-#: java/parse.y:14931
+#: java/parse.y:14935
msgid "%<return%> inside instance initializer"
msgstr ""
-#: java/parse.y:14935
+#: java/parse.y:14939
msgid "%<return%> inside static initializer"
msgstr ""
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
msgid "%<return%> with value from constructor %qs"
msgstr ""
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "гÑта папÑÑ€ÑднÑе абвÑшчÑньне"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "перанакіраванне stdout: %s"
-#: java/parse.y:15311
+#: java/parse.y:15315
msgid "%<continue%> must be in loop"
msgstr ""
-#: java/parse.y:15314
+#: java/parse.y:15318
#, c-format
msgid "continue label %qs does not name a loop"
msgstr ""
-#: java/parse.y:15335
+#: java/parse.y:15339
msgid "%<break%> must be in loop or switch"
msgstr ""
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "паўтарÑнне \"%s\""
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
msgid "original label is here"
msgstr ""
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr ""
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr ""
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, c-format
msgid "verification failed: %s"
msgstr ""
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, c-format
msgid "verification failed at PC=%d: %s"
msgstr ""
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -19549,178 +19660,178 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr ""
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
msgid "%<@end%> must appear in an @implementation context"
msgstr ""
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
msgid "method declaration not in @interface context"
msgstr ""
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
msgid "method definition not in @implementation context"
msgstr ""
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, c-format
msgid "object does not conform to the %qs protocol"
msgstr ""
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "метад \"%s\" не знойдзен у клаÑе"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr ""
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "Ðе магу знайÑці дÑкларацыю пратакола Ð´Ð»Ñ \"%s\""
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr ""
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "Ðе магу знайÑці файл Ð´Ð»Ñ ÐºÐ»Ð°Ñа %s."
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr ""
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "немагчыма знайÑьці клÑÑ `%s'"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "клÑÑ `%s' ужо Ñ–Ñнуе"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr ""
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
#, fuzzy
msgid "%Jprevious declaration of '%D'"
msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
msgstr ""
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
msgstr ""
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
msgstr ""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "%s: %s: "
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
msgid "can not use an object as parameter to a method"
msgstr ""
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
msgid "multiple %s named %<%c%s%> found"
msgstr ""
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, c-format
msgid "no super class declared in @interface for %qs"
msgstr ""
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "нерÑчаіÑны тып парамÑтра `%T'"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "поле \"%s\" не знойдзена Ñž клаÑе"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
msgid "%qs may not respond to %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
msgstr ""
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, c-format
msgid "undeclared selector %qs"
msgstr ""
@@ -19734,148 +19845,148 @@ 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:5972
+#: objc/objc-act.c:6022
#, c-format
msgid "instance variable %qs accessed in class method"
msgstr ""
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr ""
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, c-format
msgid "instance variable %qs has unknown size"
msgstr ""
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, c-format
msgid "type %qs has virtual member functions"
msgstr ""
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr ""
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, c-format
msgid "type %qs has a user-defined constructor"
msgstr ""
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, c-format
msgid "type %qs has a user-defined destructor"
msgstr ""
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, c-format
msgid "instance variable %qs is declared private"
msgstr ""
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr ""
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, c-format
msgid "instance variable %qs is declared %s"
msgstr ""
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
msgid "static access to object of type %<id%>"
msgstr ""
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, c-format
msgid "incomplete implementation of class %qs"
msgstr ""
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, c-format
msgid "incomplete implementation of category %qs"
msgstr ""
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
msgid "method definition for %<%c%s%> not found"
msgstr ""
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "метад \"%s\" не знойдзен у клаÑе"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
msgid "%<@end%> missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "Прапушчана назва клаÑа"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, c-format
msgid "no super class declared in interface for %qs"
msgstr ""
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
msgid "extra semicolon in method definition specified"
msgstr ""
@@ -19884,19 +19995,19 @@ msgstr ""
msgid "%HDuplicate name %q.*s."
msgstr "паўтарÑнне \"%s\""
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
msgid "Global register variable %qD used in nested function."
msgstr ""
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
msgid "Register variable %qD used in nested function."
msgstr ""
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
msgid "Address of global register variable %qD requested."
msgstr ""
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
msgid "Address of register variable %qD requested."
msgstr ""
@@ -20242,659 +20353,659 @@ msgid "Warn about function pointer arithmetic"
msgstr ""
#: options.c:1237
-msgid "Warn if inherited methods are unimplemented"
+msgid "Warn when a pointer differs in signedness in an assignment."
msgstr ""
#: options.c:1240
-msgid "Warn about multiple declarations of the same object"
+msgid "Warn if inherited methods are unimplemented"
msgstr ""
#: options.c:1243
-msgid "Warn if modifiers are specified when not necessary"
+msgid "Warn about multiple declarations of the same object"
msgstr ""
#: options.c:1246
-msgid "Warn when the compiler reorders code"
+msgid "Warn if modifiers are specified when not necessary"
msgstr ""
#: options.c:1249
-msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
+msgid "Warn when the compiler reorders code"
msgstr ""
#: options.c:1252
-msgid "Warn if a selector has multiple methods"
+msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr ""
#: options.c:1255
-msgid "Warn about possible violations of sequence point rules"
+msgid "Warn if a selector has multiple methods"
msgstr ""
#: options.c:1258
-msgid "Warn when one local variable shadows another"
+msgid "Warn about possible violations of sequence point rules"
msgstr ""
#: options.c:1261
-msgid "Warn about signed-unsigned comparisons"
+msgid "Warn when one local variable shadows another"
msgstr ""
#: options.c:1264
+msgid "Warn about signed-unsigned comparisons"
+msgstr ""
+
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
msgid "Warn about code which might break strict aliasing rules"
msgstr ""
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
-#: options.c:1276
+#: options.c:1279
msgid "Warn about \"suspicious\" constructs"
msgstr ""
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr ""
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
msgid "Warn about @selector()s without previously declared methods"
msgstr ""
-#: options.c:1303
+#: options.c:1306
msgid "Warn if an undefined macro is used in an #if directive"
msgstr ""
-#: options.c:1306
+#: options.c:1309
msgid "Warn about underflow of numerical constant expressions"
msgstr ""
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr ""
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr ""
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr ""
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr ""
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr ""
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr ""
-#: options.c:1342
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr ""
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr ""
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
msgid "Generate position-independent code if possible (large mode)"
msgstr ""
-#: options.c:1378
+#: options.c:1381
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr ""
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr ""
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr ""
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr ""
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr ""
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr ""
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr ""
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr ""
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1447
#, fuzzy
msgid "Generate code to check bounds before indexing arrays"
msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr ""
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr ""
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr ""
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr ""
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "Стварыць код Ð´Ð»Ñ DLL"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr ""
-#: options.c:1498
+#: options.c:1501
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr ""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr ""
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr ""
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
msgid "Place data items into their own section"
msgstr ""
-#: options.c:1519
+#: options.c:1525
#, fuzzy
msgid "Inline member functions by default"
msgstr "у функцыі \"%s\":"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr ""
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr ""
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
msgid "Permit '$' as an identifier character"
msgstr ""
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
msgid "Display the code tree after parsing."
msgstr ""
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
#, fuzzy
msgid "Generate code to check exception specifications"
msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Уключыць апрацоўку выключÑньнÑÑž"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr ""
-#: options.c:1615
+#: options.c:1621
msgid "Assume that the source file is fixed form"
msgstr ""
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr ""
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr ""
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: options.c:1648
+#: options.c:1654
#, fuzzy
msgid "Place each function into its own section"
msgstr "адзін раз Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð°Ð¹ функцыі, дзе ён з'ÑўлÑецца.)"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr ""
-#: options.c:1654
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
msgstr ""
-#: options.c:1657
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr ""
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr ""
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr ""
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr ""
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr ""
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr ""
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr ""
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr ""
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr ""
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr ""
-#: options.c:1756
+#: options.c:1762
#, fuzzy
msgid "Perform loop optimizations"
msgstr "Уключаць SSA аптымізацыю"
-#: options.c:1759
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr ""
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr ""
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr ""
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: options.c:1792
+#: options.c:1798
msgid "Don't warn about uses of Microsoft extensions"
msgstr ""
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr ""
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
@@ -21326,321 +21437,325 @@ msgid "Enable loop vectorization on trees"
msgstr "Уключаць SSA аптымізацыю"
#: options.c:2161
-msgid "Append underscores to externally visible names"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
msgstr ""
#: options.c:2164
-msgid "Compile whole compilation unit at a time"
+msgid "Append underscores to externally visible names"
msgstr ""
#: options.c:2167
-msgid "Perform loop unrolling for all loops"
+msgid "Compile whole compilation unit at a time"
msgstr ""
#: options.c:2170
-msgid "Perform loop unrolling when iteration count is known"
+msgid "Perform loop unrolling for all loops"
msgstr ""
#: options.c:2173
-msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgid "Perform loop unrolling when iteration count is known"
msgstr ""
#: options.c:2176
-msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
#: options.c:2179
-msgid "Make \"char\" unsigned by default"
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
#: options.c:2182
-msgid "Perform loop unswitching"
+msgid "Make \"char\" unsigned by default"
msgstr ""
#: options.c:2185
-msgid "Just generate unwind tables for exception handling"
+msgid "Perform loop unswitching"
msgstr ""
#: options.c:2188
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
msgid "Perform variable tracking"
msgstr ""
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr ""
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr ""
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr ""
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr ""
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr ""
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
#, fuzzy
msgid "Generate debug information in default format"
msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr ""
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr ""
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr ""
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr ""
-#: options.c:2260
+#: options.c:2263
#, fuzzy
msgid "Generate debug information in STABS format"
msgstr "Стварыць код Ð´Ð»Ñ DLL"
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: options.c:2266
+#: options.c:2269
#, fuzzy
msgid "Generate debug information in VMS format"
msgstr "Стварыць код Ð´Ð»Ñ DLL"
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
#, fuzzy
msgid "-o <file>\tPlace output into <file>"
msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
-#: options.c:2323
+#: options.c:2326
#, fuzzy
msgid "Enable function profiling"
msgstr "Уключыць апрацоўку выключÑньнÑÑž"
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr ""
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr ""
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr ""
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
msgid "Remap file names when including files"
msgstr ""
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr ""
-#: options.c:2407
+#: options.c:2410
#, fuzzy
msgid "Suppress warnings"
msgstr "%s: увага: "
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr ""
@@ -21657,35 +21772,35 @@ msgstr "-mhard-float не падтрымліваецца"
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr ""
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
@@ -21713,29 +21828,21 @@ msgstr ""
msgid "shared and mdll are not compatible"
msgstr ""
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "-pipe не падтрымліваецца"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr ""
-#: treelang/lang-specs.h:52
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr ""
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr ""
-
#: config/vax/netbsd-elf.h:42
msgid "The -shared option is not currently supported for VAX ELF."
msgstr ""
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "-pipe не падтрымліваецца"
-
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
msgstr ""
@@ -21761,11 +21868,15 @@ msgstr ""
msgid "the m210 does not have little endian support"
msgstr ""
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr ""
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr ""
@@ -21783,10 +21894,14 @@ msgstr ""
msgid "does not support multilib"
msgstr "%s не падтрымлівае %s"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr ""
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr ""
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
@@ -21889,10 +22004,6 @@ msgstr ""
#~ msgid "invalid #ident directive"
#~ msgstr "нерÑчаіÑны ініцыÑлізатар"
-#, fuzzy
-#~ msgid "#pragma %s %s is already registered"
-#~ msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
-
#~ msgid "%s:%d: warning: "
#~ msgstr "%s:%d: увага: "
@@ -22097,10 +22208,6 @@ msgstr ""
#~ msgid "member initializers for `%#D'"
#~ msgstr "complex нерÑчаіÑны Ð´Ð»Ñ \"%s\""
-#, fuzzy
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
-
#~ msgid "%s before `%c'"
#~ msgstr "%s перад '%c'"
diff --git a/gcc/po/ca.po b/gcc/po/ca.po
index 9b43f23fa10..4e5aac4315a 100644
--- a/gcc/po/ca.po
+++ b/gcc/po/ca.po
@@ -28,7 +28,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.4.3\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
"PO-Revision-Date: 2004-11-10 00:42+0000\n"
"Last-Translator: Mateu Gilles <gilles@mateu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -60,69 +60,47 @@ msgstr "l'atribut \"%s\" només s'aplica a tipus de funcions"
msgid "offset outside bounds of constant string"
msgstr "desplaçament fora dels límits de la constant de cadena"
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "el segon argument de \"__builtin_prefetch\" ha de ser una constant"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "el segon argument de __builtin_prefetch no és vàlid; s'utilitzarà zero"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "el tercer argument de \"__builtin_prefetch\" ha de ser una constant"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "el tercer argument de __builtin_prefetch no és vàlid; s'utilitzarà zero"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "l'argument de \"__builtin_args_info\" ha de ser constant"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "l'argument de \"__builtin_args_info\" està fora de límits"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "falta un argument en \"__builtin_args_info\""
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "es va usar \"va_start\" en una funció amb arguments fixos"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "es va cridar a \"__builtin_next_arg\" sense argument"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "massa arguments per a la funció \"va_start\""
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "massa arguments per a la funció \"va_start\""
-
-#: builtins.c:4017
+#: builtins.c:4077
#, fuzzy
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\""
@@ -130,523 +108,553 @@ 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:4031
+#: builtins.c:4091
#, fuzzy
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "\"%s\" es promou a \"%s\" quan passa a través de \"...\""
-#: builtins.c:4036
+#: builtins.c:4096
#, fuzzy
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(així que ha de passar \"%s\" i no \"%s\" a \"va_arg\")"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr "si s'arriba a aquest codi, el programa avortarà"
-#: builtins.c:4160
+#: builtins.c:4220
#, fuzzy
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "argument no vàlid per a \"__builtin_frame_address\""
-#: builtins.c:4162
+#: builtins.c:4222
#, fuzzy
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "argument no vàlid per a \"__builtin_return_address\""
-#: builtins.c:4176
+#: builtins.c:4235
#, fuzzy
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "argument sense suport per a \"__builtin_frame_address\""
-#: builtins.c:4178
+#: builtins.c:4237
#, fuzzy
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "argument sense suport per a \"__builtin_return_address\""
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "el segon argument de \"__builtin_expect\" ha de ser una constant"
-#: builtins.c:5488
+#: builtins.c:5590
#, fuzzy
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "el segon argument de _builtin_longjump ha de ser 1"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr "el format objectiu no té suport per a infinit"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "massa pocs arguments per a la funció \"%s\""
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "massa arguments per a la funció \"%s\""
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "arguments que no són de coma flotant per a la funció \"%s\""
-#: c-common.c:831
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr "es va usar \"va_start\" en una funció amb arguments fixos"
+
+#. 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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "es va cridar a \"__builtin_next_arg\" sense argument"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "el segon paràmetre de \"va_start\" no és l'últim argument nomenat"
+
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "%Jno es defineix \"%D\" fora de l'àmbit de la funció"
-#: c-common.c:852
+#: c-common.c:847
#, fuzzy, c-format
msgid "string length %qd is greater than the length %qd 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:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "desbordament en la constant implícita"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "desbordament enter en l'expressió"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "desbordament de coma flotant en l'expressió"
-#: c-common.c:933
+#: c-common.c:923
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:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "enter gran truncat implícitament al tipus unsigned"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "enter negatiu truncat implícitament al tipus unsigned"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "desbordament en la conversió implícita de constant"
-#: c-common.c:1151
+#: c-common.c:1141
#, fuzzy, c-format
msgid "operation on %qs may be undefined"
msgstr "l'operació sobre \"%s\" pot estar indefinida"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "l'etiqueta d'un «case» no es redueix a una constant entera"
-#: c-common.c:1480
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
msgstr ""
-#: c-common.c:1488
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
msgstr ""
-#: c-common.c:1496
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
msgstr ""
-#: c-common.c:1505
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
msgstr ""
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "expressió de valor veritable no vàlida"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "operadors no vàlids per al binari %s"
-#: c-common.c:2112
+#: c-common.c:2116
msgid "comparison is always false due to limited range of data type"
msgstr "la comparança sempre és falsa a causa dels límits limitats del tipus de dades"
-#: c-common.c:2114
+#: c-common.c:2118
msgid "comparison is always true due to limited range of data type"
msgstr "la comparança sempre és certa a causa dels límits limitat del tipus de dades"
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "la comparança d'una expressió unsigned >= 0 sempre és certa"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "la comparança d'una expressió unsigned < 0 sempre és falsa"
-#: c-common.c:2235
+#: c-common.c:2239
#, fuzzy
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "es va usar un punter de tipus \"void *\" en l'aritmètica"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "es va usar un punter a una funció en l'aritmètica"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "es va usar un punter a una funció membre en l'aritmètica"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
#, fuzzy
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr "l'adreça de \"%D\", sempre serà \"true\""
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr "es suggereixen parèntesi al voltant de l'assignació usada com valor veritable"
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "ús no vàlid de \"restrict\""
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "aplicació invalida de \"sizeof\" a una expressió de tipus de funció"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "applicació no vàlida de \"%s\" a un tipus void"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "aplicació no vàlida de \"%s\" a un tipus incomplet \"T\" "
-#: c-common.c:2813
+#: c-common.c:2848
#, fuzzy
msgid "%<__alignof%> applied to a bit-field"
msgstr "\"__alignof\" aplicat a un camp de bits"
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "no es pot desactivar la funció interna \"%s\""
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "els punters no són permesos com valors d'un «case»"
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr "les expressions de límits en les declaracions «switch» no són estàndard"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "es va especificar uns límits buides"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "valor d'un «case» duplicat (o sobreposat)"
#
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr "%Jaquesta és la primera entrada que sobreposa aquest valor"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "valor d'un «case» duplicat"
-#: c-common.c:3542
+#: c-common.c:3599
msgid "%Jpreviously used here"
msgstr "%Jes va usar prèviament aquí"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "múltiples etiquetes per omissió en un sol «switch»"
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr "%Jaquesta és la primera etiqueta per omissió"
-#: c-common.c:3596
+#: c-common.c:3653
#, fuzzy
msgid "%Jcase value %qs not in enumerated type"
msgstr "el valor de «case» \"%ld\" no és un tipus enumerat"
-#: c-common.c:3599
+#: c-common.c:3656
#, fuzzy
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr "el valor de «case» \"%ld\" no és un tipus enumerat"
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "manca el «case» per defecte per a un «switch»"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
#, fuzzy
msgid "%Henumeration value %qE not handled in switch"
msgstr "el valor d'enumeració \"%s\" no es gestiona en un «switch»"
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr "prendre l'adreça d'una etiqueta no és estàndard"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "s'ignora l'atribut \"%s\""
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "es desconeix el mode de màquina \"%s\""
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
#, fuzzy
msgid "use __attribute__ ((vector_size)) instead"
msgstr "s'ignora la directiva d'atribut \"%s\""
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "no es pot emular \"%s\""
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "mode de punter \"%s\" no vàlid"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "no hi ha tipus de dades pel mode \"%s\""
-#: c-common.c:4309
+#: c-common.c:4366
#, fuzzy, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "no es pot convertir a un tipus punter"
-#: c-common.c:4322
+#: c-common.c:4390
#, fuzzy, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "mode \"%s\" aplicat a un tipus no inadequat"
-#: c-common.c:4355
+#: c-common.c:4421
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "%Jl'atribut de secció no pot ser especificat per a les variables locals"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "%Jla secció de \"%D\" causa conflictes amb la declaració prèvia"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "%Jno es permet un atribut de secció per a \"%D\""
-#: c-common.c:4381
+#: c-common.c:4447
msgid "%Jsection attributes are not supported for this target"
msgstr "%Jatributs de secció no suportats per aquest objectiu"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "l'alineació sol·licitada no és una constant"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "l'alineació sol·licitada no és una potència de 2"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "l'alineació sol·licitada és massa gran"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "%Jl'alineació no pot ser especificada per a \"%D\""
-#: c-common.c:4493
+#: c-common.c:4559
#, fuzzy
msgid "%J%qD defined both normally and as an alias"
msgstr "%J\"%D\" definit normalment i com un alies"
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "l'argument d'alies no és una cadena"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "atribut \"%s\" ignorat per a \"%s\""
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "l'argument de visibilitat no és una cadena"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "atribut \"%s\" ignorat per a \"%s\""
+
+#: c-common.c:4657
#, fuzzy
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr "l'argument de visibilitat ha de ser \"default\", \"hidden\", \"protected\" o \"internal\""
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "l'argument tls_model no és una cadena"
-#: c-common.c:4663
+#: c-common.c:4735
#, fuzzy
msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
msgstr "l'argument de tls_model ha de ser \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
-#: c-common.c:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "%Jl'atribut \"%E\" s'aplica solament a funcions"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "%Jno es pot establir l'atribut \"%E\" després de la definició"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "atribut \"%s\" ignorat per a \"%s\""
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "tipus de vector no vàlid per a l'atribut \"%s\""
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "un atribut nonnull sense arguments en un que no és prototip"
-#: c-common.c:4925
+#: c-common.c:4997
#, fuzzy, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "un argument no null té un nombre d'operadors no vàlid (arg %lu)"
-#: c-common.c:4944
+#: c-common.c:5016
#, fuzzy, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr "argument no \"null\" amb un nombre d'operadors fora de límits (arg %lu, operand %lu)"
-#: c-common.c:4952
+#: c-common.c:5024
#, fuzzy, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr "un argument no null fa referència a un operand que no és un punter (arg %lu, operand %lu)"
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "Prohibir la crida a funcions relatives al PC"
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "molt pocs arguments per a la funció"
-#: c-common.c:5086
+#: c-common.c:5158
#, fuzzy, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr "argument null on es requereix un que no sigui null (arg %lu)"
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "l'objecte cridat no és un identificador"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "l'objecte cridat no és una funció"
-#: c-common.c:5202
+#: c-common.c:5274
#, fuzzy, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr "l'atribut \"%s\" requereix una constant entera com argument"
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "l'atribut \"%s\" nomès s'aplica a funcions"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "la init_priority sol·licitada no és una constant entera"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
#, fuzzy
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr "%Hignorant el valor de retorn de \"%D\", declarat amb atributs \"warn_unused_result\""
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "es va intentar prendre l'adreça del membre de l'estructura de camps de bits \"%s\""
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "l-value no vàlid en l'assignació"
-#: c-common.c:5637
+#: c-common.c:5730
#, fuzzy
msgid "invalid lvalue in increment"
msgstr "l-value no vàlid en l'assignació"
-#: c-common.c:5640
+#: c-common.c:5733
#, fuzzy
msgid "invalid lvalue in decrement"
msgstr "l-value no vàlid en l'assignació"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "l-value no vàlid en \"&\" unari"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "lvalue no vàlid en declaració asm"
@@ -655,111 +663,116 @@ msgstr "lvalue no vàlid en declaració asm"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr "valor void no ignorat com deuria ser"
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "es va sol·licitar conversió a tipus no escalar"
-#: c-decl.c:524
+#: c-decl.c:530
#, fuzzy
msgid "%Jarray %qD assumed to have one element"
msgstr "%Js'assumeix que la matriu \"%D\" té un element"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "%Js'usa l'etiqueta \"%D\" però no està definida"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "%Jl'etiqueta \"%D\" no s'usa però està definida"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "%Jl'etiqueta \"%D\" està declarada però no està definida"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "s'usa la funció «inline» \"%D\" però mai es va definir"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "variable \"%s\" sense ús"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
#, fuzzy
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:1015
+#: c-decl.c:1029
#, fuzzy
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:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1080
#, fuzzy
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "el prototip per a \"%s\" a continuació i l'argument %d no coincideixen"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
#, fuzzy
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr "a continuació la definició del no prototip aquí"
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "%Jdefinició prèvia de \"%D\" aquí"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "%Jdeclaració implícita prèvia de \"%D\" aquí"
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "%Jdeclaració prèvia de \"%D\" aquí"
-#: c-decl.c:1134
+#: c-decl.c:1149
#, fuzzy
msgid "%J%qD redeclared as different kind of symbol"
msgstr "%J\"%D\" redeclarat com un tipus diferent de símbol"
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "%Jla funció interna \"%D\" no és declarada com funció"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "%Jla declaració de \"%D\" enfosqueix una declaració global"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "redeclaració de \"enum %s\""
@@ -767,276 +780,276 @@ msgstr "redeclaració de \"enum %s\""
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "%Jtipus en conflicte per a la funció interna \"%D\""
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "%Jtipus en conflicte per a \"%D\""
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "%Jtipus en conflicte per a \"%D\""
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "%Jredefinició de typedef \"%D\""
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "%Jredefinició de \"%D\""
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
#, fuzzy
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "%Jdeclaració \"static\" de \"%D\" a continuació d'una declaració \"non-static\""
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
#, fuzzy
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "%Jdeclaració \"non-static\" de \"%D\" a continuació d'una declaració \"static\""
-#: c-decl.c:1326
+#: c-decl.c:1383
#, fuzzy
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "%Jdeclaració \"thread-local\" de \"%D\" a continuació d'una declaració \"non-thread-local\""
-#: c-decl.c:1329
+#: c-decl.c:1386
#, fuzzy
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "%Jdeclaració \"non-thread-local\" de \"%D\" a continuació d'una declaració \"thread-local\""
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "%Jla declaració externa de \"%D\" no coincideix amb la declaració sense \"linkage\""
-#: c-decl.c:1395
+#: c-decl.c:1452
#, fuzzy
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "%Jla declaració de \"%D\" sense \"linkage\" segueix una declaració \"extern\""
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "%Jredeclaració de \"%D\" sense \"linkage\""
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
#, fuzzy
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "%Jla declaració externa de \"%D\" no coincideix amb la declaració sense \"linkage\""
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "%Jla declaració de \"%D\" sense \"linkage\" segueix una declaració \"extern\""
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "%J\"%D\" declarat «inline» abans de ser cridat"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "%J\"%D\" declarat «inline» després de la seva definició"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "%Jredefinició de typedef \"%D\""
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "%Jdeclaració redundant de \"%D\""
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "%Jla declaració de \"%D\" enfosqueix una declaració local"
+
+#: c-decl.c:1871
#, fuzzy
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "%Jla declaració de \"%D\" enfosqueix un paràmetre"
-#: c-decl.c:1811
+#: c-decl.c:1874
#, fuzzy
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "%Jla declaració de \"%D\" enfosqueix una declaració global"
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "%Jla declaració de \"%D\" enfosqueix una declaració local"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr "%Jla declaració enfosquit és aquí"
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "declaració extern niada de \"%s\""
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "declaració extern niada de \"%s\""
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "declaració implícita de la funció \"%s\""
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "declaració implícita de la funció \"%#D\""
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "declaració implícita de la funció \"%#D\""
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "\"%s\" no ha estat declarat aquí (no en una funció)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "\"%s\" no ha estat declarat aquí (primer us en aquesta funció)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Cada identificador no declarat solament es reporta una vegada"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "per a cada funció en la qual apareix.)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, fuzzy, c-format
msgid "label %qs referenced outside of any function"
msgstr "l'etiqueta %s es referenciada fora de qualsevol funció"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "declaració de l'etiqueta \"%s\" duplicada"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "%Hetiqueta duplicada \"%D\""
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "struct/union sense nom que no defineix cap instància"
-#: c-decl.c:2726
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2737
+#: c-decl.c:2780
#, fuzzy
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr "la declaració no declara res"
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "paraules claus inútils o noms de tipus en una declaració buida"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "declaració buida"
-#: c-decl.c:2779
+#: c-decl.c:2822
#, fuzzy
msgid "%<auto%> in file-scope empty declaration"
msgstr "es van especificar dos tipus en una declaració buida"
-#: c-decl.c:2785
+#: c-decl.c:2828
#, fuzzy
msgid "%<register%> in file-scope empty declaration"
msgstr "es van especificar dos tipus en una declaració buida"
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "especificadors de classe d'emmagatzematge no vàlids en les declaracions de paràmetres"
-#: c-decl.c:2797
+#: c-decl.c:2840
#, fuzzy
msgid "useless %<__thread%> in empty declaration"
msgstr "paraules claus inútils o noms de tipus en una declaració buida"
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "qualificadors de tipus duplicats en la declaració %s"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "declaració buida"
-#: c-decl.c:2878
+#: c-decl.c:2921
#, fuzzy
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 paràmetres"
-#: c-decl.c:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C90 no dóna suport a declaradors de paràmetres \"[*]\""
-#: c-decl.c:2884
+#: c-decl.c:2927
#, fuzzy
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "GCC no implementa encara correctament declaradors de matrius \"[*]\""
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "static o qualificador de tipus en un declarador abstracte"
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "%J\"%D\" és generalment una funció"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef \"%D\" està inicialitzat (utilitzi __typeof__ en el seu lloc)"
-#: c-decl.c:2974
+#: c-decl.c:3019
#, fuzzy
msgid "function %qD is initialized like a variable"
msgstr "la funció \"%#D\" està inicialitzada com una variable"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "el paràmetre \"%s\" té valor inicial"
@@ -1045,182 +1058,177 @@ msgstr "el paràmetre \"%s\" té valor inicial"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "un objecte de grandària variable no pot tenir valor inicial"
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "la variable \"%#D\" té inicializador però de tipus de dada incompleta"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "alguns elements de la matriu \"%#D\" tenen tipus de dada incompleta"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
#, fuzzy
msgid "%Jinline function %qD given attribute noinline"
msgstr "%Jha donat un atribut «noinline» a la funció «inline» \"%D\""
-#: c-decl.c:3154
+#: c-decl.c:3194
#, fuzzy
msgid "%Jinitializer fails to determine size of %qD"
msgstr "%Jl'inicialitzador no pot determinar la grandària de \"%D\""
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "%Jfalta la grandària de la matriu en \"%D\""
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "%Jmatriu \"%D\" de grandària zero o negatiu"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "no es coneix la grandària d'emmagatzematge de \"%D\""
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "%Jla grandària d'emmagatzematge de \"%D\" no és constant"
-#: c-decl.c:3266
+#: c-decl.c:3299
#, fuzzy
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "%Js'ignora l'especificador \"asm\" per a la variable local \"non-static\" \"%D\""
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "no es pot posar objecte amb camp volatile en register"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C prohibeix declaracions avançades de paràmetres"
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr "<anònim>"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "l'amplària del camp de bits \"%s\" no és una constant entera"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "amplària negativa en el camp de bit \"%s\""
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "amplària zero per al camp de bits \"%s\""
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "el camp de bits \"%s\" té un tipus no vàlid"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, fuzzy, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr "el tipus de camp de bits \"%s\" és una extensió del GCC"
-#: c-decl.c:3664
+#: c-decl.c:3698
#, fuzzy, c-format
msgid "width of %qs exceeds its type"
msgstr "l'amplària de \"%s\" excedeix el seu tipus"
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "\"%s\" és més estret que els valors del seu tipus"
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "el tipus de dada per omissió és \"int\" en la declaració de \"%s\""
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "\"const\" duplicat"
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "\"restrict\" duplicat"
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "\"volatile\" duplicat"
-#: c-decl.c:3853
+#: c-decl.c:3887
#, fuzzy
msgid "function definition declared %<auto%>"
msgstr "la definició de la funció ho va declarar com \"auto\""
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "la definició de la funció ho va declarar com \"register\""
-#: c-decl.c:3857
+#: c-decl.c:3891
#, fuzzy
msgid "function definition declared %<typedef%>"
msgstr "la definició de la funció ho va declarar com \"typedef\""
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "la definició de la funció ho va declarar com \"__thread\""
-#: c-decl.c:3875
+#: c-decl.c:3909
#, fuzzy, c-format
msgid "storage class specified for structure field %qs"
msgstr "es va especificar una classe d'emmagatzematge per al camp de l'estructura \"%s\""
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, fuzzy, c-format
msgid "storage class specified for parameter %qs"
msgstr "es va especificar una classe d'emmagatzematge per al paràmetre \"%s\""
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "es va especificar una classe d'emmagatzematge per al nom de tipus"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
#, fuzzy
msgid "%qs initialized and declared %<extern%>"
msgstr "\"%s\" iniciat i declarat com \"extern\""
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
#, fuzzy
msgid "%qs has both %<extern%> and initializer"
msgstr "\"%s\" té \"extern\" i assignador de valor inicial al mateix temps"
-#: c-decl.c:3902
+#: c-decl.c:3936
#, fuzzy
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "la declaració al nivell del fitxer de \"%s\" especifica \"auto\""
-#: c-decl.c:3904
+#: c-decl.c:3938
#, fuzzy
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "la declaració al nivell del fitxer de \"%s\" especifica \"auto\""
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
#, fuzzy
msgid "nested function %qs declared %<extern%>"
msgstr "la funció niada \"%s\" es va declarar \"extern\""
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
#, fuzzy
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr "l'àmbit de la funció \"%s\" és implícitament acte i declarada \"__thread\""
@@ -1228,667 +1236,667 @@ msgstr "l'àmbit de la funció \"%s\" és implícitament acte i declarada \"__threa
#. 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "static o qualificador de tipus en un declarador de matriu que no és paràmetre"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, fuzzy, c-format
msgid "declaration of %qs as array of voids"
msgstr "declaració de \"%s\" com una matriu de voids"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "declaració de \"%s\" com una matriu de funcions"
-#: c-decl.c:4010
+#: c-decl.c:4050
msgid "invalid use of structure with flexible array member"
msgstr "ús no vàlid d'estructura amb membres de matriu flexible"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "la grandària de la matriu \"%s\" té un tipus no enter"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO C prohibeix la matriu \"%s\" de grandària zero"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "la grandària de la matriu \"%s\" és negatiu"
-#: c-decl.c:4056
+#: c-decl.c:4096
#, fuzzy
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ISO C90 prohibeix matriu \"%s\" que la seua grandària no pot ser avaluada"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO C90 prohibeix la matriu \"%s\" de grandària variable"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "la grandària de la matriu \"%s\" és massa gran"
-#: c-decl.c:4106
+#: c-decl.c:4150
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C90 no té suport per a membres de matrius flexibles"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "el tipus array té tipus d'element incomplet"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "\"%s\" que és declarat com funció retorna una funció"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, fuzzy, c-format
msgid "%qs declared as function returning an array"
msgstr "\"%s\" que és declarat com funció retorna una matriu"
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "definició no vàlida del tipus qualificat \"%T\""
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr "s'ignoren els qualificadors de tipus en el tipus de retorn de la funció"
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO C prohibeix els tipus de funció qualificats"
-#: c-decl.c:4282
+#: c-decl.c:4324
#, fuzzy
msgid "%Jtypedef %qD declared %<inline%>"
msgstr "%Jla variable \"%D\" és declarada com \"inline\""
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C prohibeix els tipus de funció const o volatile"
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "variable o camp \"%s\" declarat void"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "atributs en el declarador de paràmetres de matriu ignorats"
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "%Jel paràmetre \"%D\" es va declarar void"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "el camp \"%s\" es declara com una funció"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "el camp \"%s\" té tipus de dada incompleta"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "classe d'emmagatzematge no vàlida per a la funció \"%s\""
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "la funció \"no return\" retorna un valor que no és \"void\""
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "no es pot fer «inline» la funció \"main\""
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4591
#, fuzzy
msgid "%Jvariable %qD declared %<inline%>"
msgstr "%Jla variable \"%D\" és 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:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
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:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
#, fuzzy
msgid "function declaration isn%'t a prototype"
msgstr "la declaració de la funció no és un prototip"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "noms de paràmetres (sense tipus) en la declaració de la funció"
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "%Jel paràmetre \"%D\" té un tipus incomplet"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "%Jel paràmetre \"%D\" té un tipus incomplet"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "%Jel paràmetre \"%D\" té un tipus incomplet"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "%Jel paràmetre \"%D\" té un tipus incomplet"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
msgstr ""
-#: c-decl.c:4793
+#: c-decl.c:4829
#, fuzzy
msgid "%Jparameter %qD has just a forward declaration"
msgstr "%Jel paràmetre \"%D\" només té una declaració posterior"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "\"%s %s\" declarat dintre d'una llista de paràmetres"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "%s anònim declarat dintre d'una llista de paràmetres"
-#: c-decl.c:4848
+#: c-decl.c:4884
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:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "redefinició de \"union %s\""
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "redefinició de \"struct %s\""
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "redefinició niada de \"%s\""
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "redefinició niada de \"%s\""
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "la declaració no declara res"
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C no té suport per a structs/unions sense nom"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "%Jmembre duplicat \"%D\""
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "membres nomenats"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "agregat anònim sense membres"
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "membres nomenats"
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "els destructors no prenen paràmetres"
-#: c-decl.c:5231
+#: c-decl.c:5267
msgid "%Jflexible array member in union"
msgstr "%Jmembre de matriu flexible en el union"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr "%Jel membre de matriu flexible no està al final del struct"
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr "%Jel membre de matriu flexible seria d'altra manera un struct buit"
#
-#: c-decl.c:5248
+#: c-decl.c:5284
msgid "%Jinvalid use of structure with flexible array member"
msgstr "%Jús no vàlid d'estructura amb membres de matriu flexible"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "union no es pot fer transparent"
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "redefinició niada de \"%s\""
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "redeclaració de \"enum %s\""
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr "els valors d'enumeració excedeixen els límits de l'enter més gran"
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "el valor de enumerator per a \"%s\" no és una constant entera"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "desbordament en valors d'enumeració"
-#: c-decl.c:5626
+#: c-decl.c:5671
#, fuzzy
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr "ISO C restringeix els valors d'enumeració als límits de \"int\""
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "el tipus de retorn és un tipus incomplet"
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "el tipus de retorn per omissió és \"int\""
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "%Jno hi ha un prototip previ per a \"%D\""
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "%Jes va usar \"%D\" sense prototip abans de la seva definició"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "no hi ha declaració prèvia per a \"%D\""
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "%Jes va usar \"%D\" sense declaració abans de la seva definició"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "el tipus de retorn de \"%D\" no és \"int\""
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "%Jel primer argument de \"%D\" ha de ser \"int\""
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "%Jel segon argument de \"%D\" ha de ser \"char **\""
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "%Jel tercer argument de \"%D\" ha de ser \"char **\""
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "%J\"%D\" només pren zero o dos arguments"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "%J\"%D\" generalment és una funció «non-static»"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
#, fuzzy
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr "C tradicional rebutja la definició de funcions d'estil ISO·C"
-#: c-decl.c:5908
+#: c-decl.c:5953
msgid "%Jparameter name omitted"
msgstr "%Jes va ometre el nom del paràmetre"
-#: c-decl.c:5948
+#: c-decl.c:5993
#, fuzzy
msgid "%Jold-style function definition"
msgstr "%s: no es va convertir la definició de la funció\n"
-#: c-decl.c:5956
+#: c-decl.c:6001
msgid "%Jparameter name missing from parameter list"
msgstr "%Jfalta el nom del paràmetre de la llista de paràmetres"
-#: c-decl.c:5967
+#: c-decl.c:6012
#, fuzzy
msgid "%J%qD declared as a non-parameter"
msgstr "%J\"%D\" declarat com «non-parameter»"
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "%Jmúltiples paràmetres nomenats \"%D\""
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "%Jel paràmetre \"%D\" es va declarar void"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "%Jel tipus de \"%D\" és \"int\" per omissió"
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "%Jel paràmetre \"%D\" té un tipus incomplet"
-#: c-decl.c:6022
+#: c-decl.c:6067
#, fuzzy
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "%Jexisteix la declaració per al paràmetre \"%D\" però no hi ha tal paràmetre"
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "el nombre d'arguments no coincideixen amb el prototip"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
msgid "%Hprototype declaration"
msgstr "%Hdeclaració de prototip"
-#: c-decl.c:6101
+#: c-decl.c:6146
#, fuzzy
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "l'argument promogut \"%D\" no coincideix amb el prototip"
-#: c-decl.c:6109
+#: c-decl.c:6154
#, fuzzy
msgid "argument %qD doesn%'t match prototype"
msgstr "l'argument \"%D\" no coincideix amb el prototip"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr "no hi ha una declaració de retorn en una funció que retorna \"non-void\""
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "aquesta funció pot retornar amb o sense un valor"
#. 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:6403
+#: c-decl.c:6461
#, fuzzy
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "es va usar la declaració inicial del cicle \"for\" fora del mode C99"
-#: c-decl.c:6432
+#: c-decl.c:6490
#, fuzzy
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "%Jdeclaració de la variable \"static\" \"%D\" en la declaració inicial del cicle \"for\""
-#: c-decl.c:6435
+#: c-decl.c:6493
#, fuzzy
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "%Jdeclaració de la variable \"extern\" \"%D\" en la declaració inicial del cicle \"for\""
-#: c-decl.c:6440
+#: c-decl.c:6498
#, fuzzy
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "\"struct %s\" declarat en la declaració inicial del cicle \"for\""
-#: c-decl.c:6444
+#: c-decl.c:6502
#, fuzzy
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "\"union %s\" declarat en la declaració inicial del cicle \"for\""
-#: c-decl.c:6448
+#: c-decl.c:6506
#, fuzzy
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "\"enum %s\" declarat en la declaració inicial del cicle \"for\""
-#: c-decl.c:6452
+#: c-decl.c:6510
#, fuzzy
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "%Jdeclaració de \"%D\" que és \"non-variable\" en la declaració inicial del cicle \"for\""
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "\"%s\" duplicat"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
#, fuzzy
msgid "two or more data types in declaration specifiers"
msgstr "dos o més tipus de dades en la declaració de \"%s\""
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "\"long long long\" és massa llarg per a GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO C90 no dóna suport a \"long long\""
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
#, fuzzy
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "s'especifica long i short al mateix temps per a \"%s\""
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
#, fuzzy
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "s'especifica long i short al mateix temps per a \"%s\""
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
#, fuzzy
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "s'especifica long i short al mateix temps per a \"%s\""
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
#, fuzzy
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "s'especifica long i short al mateix temps per a \"%s\""
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
#, fuzzy
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "s'especifica long i short al mateix temps per a \"%s\""
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
-#: c-decl.c:6875
+#: c-decl.c:6933
msgid "ISO C90 does not support complex types"
msgstr "ISO C90 no té suport per a tipus complexos"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, fuzzy, c-format
msgid "%qs 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:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "\"%s\" no està en l'inici de la declaració"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
#, fuzzy
msgid "%<__thread%> before %<extern%>"
msgstr "\"__thread\" abans \"extern\""
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
#, fuzzy
msgid "%<__thread%> before %<static%>"
msgstr "\"__thread\" abans \"static\""
-#: c-decl.c:7106
+#: c-decl.c:7164
#, fuzzy
msgid "multiple storage classes in declaration specifiers"
msgstr "múltiples classes d'emmagatzematge en la declaració de \"%s\""
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
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:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C no dóna suport a tipus enters complexos"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "\"%s\" utilitzat però mai definit"
@@ -2450,7 +2458,7 @@ msgstr "els formats de strftime no poden donar format als arguments"
msgid "statement with no effect"
msgstr "%s no té %s"
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "la declaració break no està dintre d'un cicle o «switch»"
@@ -2474,17 +2482,17 @@ msgstr " com és un directori que no és del sistema que duplica un directori del
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "ignorant el directori inexistent \"%s\"\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "la recerca de #include \"...\" s'inicia aquí:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "la recerca de #include <...> s'inicia aquí:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Fi de la llista de recerca.\n"
@@ -2546,37 +2554,29 @@ msgstr "la constant de coma flotant excedeix els límits de \"%s\""
msgid "traditional C rejects string constant concatenation"
msgstr "C tradicional rebutja la concatenació de cadenes constantes"
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
#, fuzzy
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "s'usa un valor de tipus matriu quan es requereix un escalar"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
#, fuzzy
msgid "used struct type value where scalar is required"
msgstr "s'usa un valor de tipus struct quan es requereix un escalar"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
#, fuzzy
msgid "used union type value where scalar is required"
msgstr "s'usa un valor de tipus union quan es requereix un escalar"
@@ -2624,80 +2624,80 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "el «switch» \"%s\" ja no té suport"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -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:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr "nom de fitxer de sortida especificat dues vegades"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "s'ignora -Wformat-y2k sense -Wformat"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "s'ignora -Wformat-extra-args sense -Wformat"
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "s'ignora -Wformat-zero-length sense -Wformat"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "s'ignora -Wformat-nonliteral sense -Wformat"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "s'ignora -Wformat-security sense -Wformat"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "s'ignora -Wformat-attribute sense -Wformat"
-#: c-opts.c:995
+#: c-opts.c:998
#, c-format
msgid "opening output file %s: %m"
msgstr "obrint el fitxer de sortida %s: %m"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, 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:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr "obrint el fitxer de dependències %s: %m"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr "tancant el fitxer de dependències %s: %m"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, c-format
msgid "when writing output to %s: %m"
msgstr "escrivint la sortida a %s: %m"
-#: c-opts.c:1216
+#: c-opts.c:1220
msgid "to generate dependencies you must specify either -M or -MM"
msgstr "per a generar dependències s'ha d'especificar -M o -MM"
-#: c-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr "<built-in>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<command line>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2709,16 +2709,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "error sintàctic"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "error sintàctic: no es pot regressar"
@@ -2770,108 +2770,113 @@ msgstr "el primer argument per a __builtin_choose_expr no és una constant"
msgid "%<typeof%> applied to a bit-field"
msgstr "\"typeof\" aplicat a un camp de bits"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C prohibeix les claus de iniciador buides"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C90 prohibeix l'especificació de «subobject» a iniciar"
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
#, fuzzy
msgid "obsolete use of designated initializer without %<=%>"
msgstr "ús obsolet de l'iniciador designat sense \"=\""
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
#, fuzzy
msgid "obsolete use of designated initializer with %<:%>"
msgstr "ús obsolet de l'iniciador designat amb \":\""
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C prohibeix l'especificació de límits d'elements a iniciar"
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C prohibeix les funcions niades"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
#, fuzzy
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO C prohibeix les declaracions posteriors per a tipus \"enum\""
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "coma al final de la llista de numeradors"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
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:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
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:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C prohibeix declaracions de membres sense membres"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr "etiqueta al final de la declaració composta"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C90 prohibeix les declaracions barrejades amb codi"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C prohibeix les declaracions etiquetades"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
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:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, fuzzy, c-format
msgid "%E qualifier ignored on asm"
msgstr "qualificador %s ignorat en asm"
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+#, fuzzy
+msgid "wide string literal in %<asm%>"
+msgstr "cadena literal no vàlida, s'ignora el \"\\\" finals"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO C requereix un argument amb nom abans de \"...\""
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "error d'analitza; també es va excedir la memòria virtual"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "s'ha desbordat la pila de l'analitzador"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "error sintàctic en l'element \"%s\""
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "error d'analitza"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
msgid "parse error; also virtual memory exhausted"
msgstr "error d'analitza; també es va excedir la memòria virtual"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "error sintàctic: no es pot regressar"
@@ -2996,188 +3001,188 @@ msgstr "l'alineació ha de ser una potència petita de dos, no %d"
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr "%Jl'aplicació del #pragma weak \"%s\" després del primer ús resulta en conducta no especificada"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr "#pragma weak malformat, ignorat"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "escombraries al final de \"#pragma weak\""
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr "#pragma redefine_extname malformat, ignorat"
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr "escombraries al final de #pragma redefine_extname"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "no es dóna suport a _builtin_eh_return en aquest objectiu"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "#pragma redefine_extname té conflictes amb la declaració"
-#: c-pragma.c:429
+#: c-pragma.c:461
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr "#pragma redefine_extname té conflictes amb la declaració"
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr "#pragma extern_prefix malformat, ignorat"
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr "escombraries al final de #pragma extern_prefix"
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "No es dóna suport a anàlisi de perfil en aquest objectiu."
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "la declaració asm causa conflictes amb el rename previ"
-#: c-pragma.c:514
+#: c-pragma.c:546
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr "#pragma redefine_extname té conflictes amb la declaració"
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
#, fuzzy
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr "\"(\" faltant desprès de \"#pragma %s\" - ignorat"
-#: c-pragma.c:596
+#: c-pragma.c:628
#, fuzzy
msgid "malformed #pragma GCC visibility push"
msgstr "secció #pragma builtin malformada"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "escombraries al final de #pragma %s"
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "\"%s\" té un tipus incompleta"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "ús no vàlid de l'expressió void"
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr "ús no vàlid de membres de matriu flexible"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "ús no vàlid de matrius amb límits sense especificar"
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
msgid "invalid use of undefined type %<%s %s%>"
msgstr "ús no vàlid del tipus indefinit \"%s %s\""
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "ús no vàlid del typedef incomplet \"%s\""
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
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:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "els tipus no són totalment compatibles"
-#: c-typeck.c:987
+#: c-typeck.c:1045
#, fuzzy
msgid "function return types not compatible due to %<volatile%>"
msgstr "el tipus de retorn d'una funció no pot ser una funció"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "aritmètica en punter a un tipus incomplet"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "%s no té un membre cridat \"%s\""
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, fuzzy, c-format
msgid "request for member %qs in something not a structure or union"
msgstr "petició del membre \"%s\" en alguna cosa que no és estructura o unió"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "punter dereferènciat a tipus de dada incompleta"
-#: c-typeck.c:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "dereferènciant el punter \"void *\""
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "argument de tipus no vàlid de \"%s\""
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "el valor indicat pel subindici no és ni matriu ni punter"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "el subindici de la matriu no és un enter"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "passant l'argument del punter a la funció"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
#, fuzzy
msgid "array subscript has type %<char%>"
msgstr "el subindici de matriu té un tipus \"char\""
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO C prohibeix el subindici d'una matriu \"register\""
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C90 prohibeix el subindici d'una matriu non-lvalue"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "l'objecte cridat no és una funció"
@@ -3185,816 +3190,812 @@ msgstr "l'objecte cridat no és una funció"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr ""
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "l'element de valor inicial no és constant"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "massa arguments per a la funció"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, 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:2084
+#: c-typeck.c:2167
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr "%s com enter en lloc de coma flotant a causa del prototip"
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr "%s com enter en lloc de complex a causa del prototip"
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr "%s com complex en lloc de coma flotant a causa del prototip"
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr "%s com coma flotant en lloc d'enter a causa del prototip"
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr "%s com complex en lloc d'enter a causa del prototip"
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr "%s com coma flotant en lloc de complex a causa del prototip"
-#: c-typeck.c:2121
+#: c-typeck.c:2204
#, fuzzy
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr "%s com \"float\" en lloc de \"double\" a causa del prototip"
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, fuzzy, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr "%s amb amplària diferent a causa del prototip"
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, fuzzy, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "%s com unsigned a causa del prototip"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "%s com signed a causa del prototip"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "molt pocs arguments per a la funció"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "es suggereixen parèntesi al voltant de + o - dintre d'un desplaçament"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "es suggereixen parèntesi al voltant de && dintre de ||"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "es suggereixen parèntesi al voltant de l'aritmètica per a operada de |"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "es suggereixen parèntesi al voltant de les comparances per a operada de |"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "es suggereixen parèntesi al voltant de l'aritmètica per a operada de ^"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "es suggereixen parèntesi al voltant de les comparances per a operada de ^"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "es suggereixen parèntesi al voltant de + o - per a operada de &"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "es suggereixen parèntesi al voltant de les comparances per a operada de &"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
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:2314
+#: c-typeck.c:2397
#, fuzzy
msgid "pointer of type %<void *%> used in subtraction"
msgstr "es va usar un punter de tipus \"void *\" en la substracció"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "es va usar un punter a una funció en la substracció"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "argument de tipus erroni per a l'increment unari"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "argument de tipus erroni per al decrement unari"
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO C no té suport de \"~\" per a conjugacions complexes"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "argument de tipus erroni per a complement de bits"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "argument de tipus erroni per a abs"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "argument de tipus erroni per a la conjugació"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "argument de tipus erroni per al signe d'exclamació unari"
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, fuzzy
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:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "argument de tipus erroni per a l'increment"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "argument de tipus erroni pel decrement"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "increment de punter a estructura desconeguda"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "decrement de punter a estructura desconeguda"
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, fuzzy, c-format
msgid "assignment of read-only member %qs"
msgstr "%s del membre de només lectura \"%s\""
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, fuzzy, c-format
msgid "increment of read-only member %qs"
msgstr "%s del membre de només lectura \"%s\""
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, fuzzy, c-format
msgid "decrement of read-only member %qs"
msgstr "%s del membre de només lectura \"%s\""
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, fuzzy, c-format
msgid "assignment of read-only variable %qs"
msgstr "%s de la variable de només lectura \"%s\""
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, fuzzy, c-format
msgid "increment of read-only variable %qs"
msgstr "%s de la variable de només lectura \"%s\""
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, fuzzy, c-format
msgid "decrement of read-only variable %qs"
msgstr "%s de la variable de només lectura \"%s\""
-#: c-typeck.c:2734
+#: c-typeck.c:2817
#, fuzzy
msgid "assignment of read-only location"
msgstr "%s de la ubicació de només lectura"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
#, fuzzy
msgid "increment of read-only location"
msgstr "%s de la ubicació de només lectura"
-#: c-typeck.c:2736
+#: c-typeck.c:2819
#, fuzzy
msgid "decrement of read-only location"
msgstr "%s de la ubicació de només lectura"
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "no es pot adquirir l'adreça del camp de bits \"%s\""
-#: c-typeck.c:2783
+#: c-typeck.c:2866
#, fuzzy
msgid "global register variable %qD used in nested function"
msgstr "es va usar la variable de registre global \"%s\" en funcions niades"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
#, fuzzy
msgid "register variable %qD used in nested function"
msgstr "es va usar la va variable \"%s\" en funcions niades"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
#, fuzzy
msgid "address of global register variable %qD requested"
msgstr "es va sol·licitar l'adreça de la variable de registre global \"%s\""
-#: c-typeck.c:2793
+#: c-typeck.c:2876
#, fuzzy
msgid "address of register variable %qD requested"
msgstr "es va sol·licitar l'adreça de la variable register \"%s\""
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "els tipus de dades no coincideixen en l'expressió condicional"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "tipus signed i unsigned en l'expressió condicional"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
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:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
#, fuzzy
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:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "els tipus de dades punters no coincideixen en l'expressió condicional"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "els tipus de dades punters/enters no coincideixen en l'expressió condicional"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "els tipus de dades no coincideixen en l'expressió condicional"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
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:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "la conversió especifica el tipus matriu"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "la conversió especifica el tipus funció"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
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:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C prohibeix la conversió al tipus union"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
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:3120
+#: c-typeck.c:3203
msgid "cast adds new qualifiers to function type"
msgstr "la conversió afegeix nous qualificadors del tipus de la funció"
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "la conversió descarta els qualificadors del tipus de la destinació del punter"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "la conversió incrementa l'alineació requerida del tipus de la destinació"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "conversió de punter a enter de grandària diferent"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "conversió a punter des d'un enter de grandària diferent"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
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:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr "el retorn de punters de tipus castigat trencarà les regles d'alies estricte"
-#: c-typeck.c:3181
+#: c-typeck.c:3264
#, fuzzy
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr "el retorn de punters de tipus castigat trencarà les regles d'alies estricte"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C prohibeix la conversió d'un punter de funció a un tipus punter d'objecte"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C prohibeix la conversió d'un punter d'objecte a un tipus punter de funció"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
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:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, fuzzy, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr "%s fa un punter de funció qualificat des d'un no qualificat"
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
#, fuzzy
msgid "assignment makes qualified function pointer from unqualified"
msgstr "%s fa un punter de funció qualificat des d'un no qualificat"
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
#, fuzzy
msgid "initialization makes qualified function pointer from unqualified"
msgstr "%s fa un punter de funció qualificat des d'un no qualificat"
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
#, fuzzy
msgid "return makes qualified function pointer from unqualified"
msgstr "%s fa un punter de funció qualificat des d'un no qualificat"
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, fuzzy, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr "la conversió de \"%T\" a \"%T\" descarta els qualificadors del tipus de la destinació del punter"
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
#, fuzzy
msgid "assignment discards qualifiers from pointer target type"
msgstr "la conversió descarta els qualificadors del tipus de la destinació del punter"
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
#, fuzzy
msgid "initialization discards qualifiers from pointer target type"
msgstr "la conversió descarta els qualificadors del tipus de la destinació del punter"
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
#, fuzzy
msgid "return discards qualifiers from pointer target type"
msgstr "la conversió descarta els qualificadors del tipus de la destinació del punter"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C prohibeix la conversió d'arguments a tipus union"
-#: c-typeck.c:3628
+#: c-typeck.c:3714
#, fuzzy
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ISO C prohibeix %s entre punters a funció i \"void *\""
-#: c-typeck.c:3631
+#: c-typeck.c:3717
#, fuzzy
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ISO C prohibeix %s entre punters a funció i \"void *\""
-#: c-typeck.c:3633
+#: c-typeck.c:3719
#, fuzzy
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ISO C prohibeix %s entre punters a funció i \"void *\""
-#: c-typeck.c:3635
+#: c-typeck.c:3721
#, fuzzy
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ISO C prohibeix %s entre punters a funció i \"void *\""
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, fuzzy, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr "el punter que punta a %s difereix en signe"
-#: c-typeck.c:3660
+#: c-typeck.c:3746
#, fuzzy
msgid "pointer targets in assignment differ in signedness"
msgstr "el punter que punta a %s difereix en signe"
-#: c-typeck.c:3662
+#: c-typeck.c:3748
#, fuzzy
msgid "pointer targets in initialization differ in signedness"
msgstr "el punter que punta a %s difereix en signe"
-#: c-typeck.c:3664
+#: c-typeck.c:3750
#, fuzzy
msgid "pointer targets in return differ in signedness"
msgstr "el punter que punta a %s difereix en signe"
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, fuzzy, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "%s de tipus de punter incompatible"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "%s de tipus de punter incompatible"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
#, fuzzy
msgid "initialization from incompatible pointer type"
msgstr "%s de tipus de punter incompatible"
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "%s de tipus de punter incompatible"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "ús no vàlid de matriu no evaluada"
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s crea un punter des d'un enter sense una conversió"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s crea un punter des d'un enter sense una conversió"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s crea un punter des d'un enter sense una conversió"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s crea un punter des d'un enter sense una conversió"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s crea un enter des d'un punter sense una conversió"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s crea un enter des d'un punter sense una conversió"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s crea un enter des d'un punter sense una conversió"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s crea un enter des d'un punter sense una conversió"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "tipus incompatibles en %s"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "tipus incompatibles en %s"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "tipus incompatibles en %s"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "C tradicional rebutja la iniciació automàtica d'agregats"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "(prop de l'assignació de valors inicials per a \"%s\")"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "matriu de caràcters amb valors inicials assignats d'una cadena ampla"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "matriu de caràcters amb valors inicials assignats d'una cadena ampla"
-#: c-typeck.c:4116
+#: c-typeck.c:4202
#, fuzzy
msgid "wchar_t-array initialized from non-wide string"
msgstr "matriu de caràcters amb valors inicials assignats d'una cadena ampla"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
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:4140
+#: c-typeck.c:4226
#, fuzzy
msgid "array of inappropriate type initialized from string constant"
msgstr "matriu de caràcters amb valors inicials assignats d'una cadena ampla"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
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:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
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:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "valor inicial no vàlid"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
msgid "opaque vector types cannot be initialized"
msgstr ""
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "grup extra de claus al final dels valors inicials"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "falten claus al voltant dels valors inicials"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "claus al voltant del valor inicial escalar"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
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:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "iniciació d'un membre de matriu flexible"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "falta valor inicial"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "valor inicial escalar buidor"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "elements extres en valor inicial escalar"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "no es poden niuar els designadors d'iniciació"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "índex de matriu en valor inicial que no és de matriu"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "el nom del camp no està en e l'inicialitzador de record o union"
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "l'índex de matriu en el valor inicial excedeix els límits de la matriu"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "índex de matriu no constant en valor inicial"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
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:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "límits d'índexs buits en valor inicial"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "els límits d'índexs de la matriu en el valor inicial excedeixen els límits de la matriu"
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, fuzzy, c-format
msgid "unknown field %qs specified in initializer"
msgstr "camp \"%s\" desconegut especificat en el valor inicial"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "camp iniciat amb efectes laterals sobreescrits"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "excés d'elements en valors inicials de matriu de caràcters"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "excés d'elements en valors inicials de struct"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr "iniciació no estàtica d'un membre de matriu flexible"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "excés d'elements en valors inicials d'union"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "C tradicional rebutja els valors inicials d'unions"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "excés d'elements en valors inicials de matriu"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr "excés d'elements en valor inicial vectorial"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "excés d'elements en valor inicial escalar"
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO C prohibeix \"goto *expr;\""
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
#, fuzzy
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "la funció declarada \"noreturn\" té una declaració \"return\""
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
msgid "%<return%> with no value, in function returning non-void"
msgstr "\"return\" sense valors, en una funció que retorna \"non-void\""
-#: c-typeck.c:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "\"return\" amb valor, en una funció que retorna \"void\""
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "la funció retorna l'adreça d'una variable local"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "la quantitat del «switch» no és un enter"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
#, fuzzy
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:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "l'etiqueta «case» no es troba dintre d'una declaració «switch»"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
#, fuzzy
msgid "%<default%> label not within a switch statement"
msgstr "l'etiqueta \"default\" no està dintre d'una declaració «switch»"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
#, fuzzy
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr "%Hsuggereix parèntesis explícits per evitar \"else\" ambigu"
-#: c-typeck.c:6631
+#: c-typeck.c:6761
msgid "%Hempty body in an if-statement"
msgstr "%Hcos buit en una declaració «if»"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "cos buit en una declaració else"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "la declaració continue no està dintre dintre d'un cicle"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr ""
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "la declaració de l'expressió té tipus de dada incompleta"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "divisió per zero"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "el valor de desplaçament a la dreta és negatiu"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "valor de desplaçament a la dreta >= amplària del tipus"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "el valor de desplaçament a l'esquerra és negatiu"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "valor de desplaçament a l'esquerra >= amplària del tipus"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "no és segura la comparança de coma flotant amb == o !="
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, fuzzy
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:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
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:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "comparança entre punter i enter"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "comparança de punters complets i incomplets"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C prohibeix la comparança entre punters a funcions"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "comparança ordenada de punter amb l'enter zero"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "comparança entre signed i unsigned"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "comparança d'un ~unsigned promogut amb una constant"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "comparança d'un ~unsigned promogut amb unsigned"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "la crida a la funció té valor agregat"
@@ -4038,7 +4039,7 @@ msgstr "verify_flow_info: Compte erroni de la vora %i->%i %i"
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: El bloc bàsic %d succ edge està corrupte"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, 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"
@@ -4147,308 +4148,308 @@ msgstr "%s no té suport per a %s"
msgid "%s does not support flow_call_edges_add"
msgstr "%s no té suport per a %s"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr "La grandària del cicle %d ha de ser %d, no %d."
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr "Bb %d no pertany al cicle %d."
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, 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:1345
+#: cfgloop.c:1353
#, 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:1350
+#: cfgloop.c:1358
#, 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:1355
+#: cfgloop.c:1363
#, 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:1361
+#: cfgloop.c:1369
#, 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."
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, 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:1954
+#: cfgrtl.c:1962
#, 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:1966
+#: cfgrtl.c:1974
#, 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:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr "verify_flow_info: REG_BR_PROB no coincideix amb la configuració %wi %i"
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, 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:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr "Massa vores de ramificació de sortida de bb %i"
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr "Vora de caiguda després del salt incondicional %i"
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, 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:2059
+#: cfgrtl.c:2067
#, 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:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr "Vores anormals sense cap propòsit en bb %i"
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, 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:2084
+#: cfgrtl.c:2092
#, 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:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK mancada per al bloc %d"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, 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:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr "en el bloc bàsic %d:"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr "control de fluix insn dintre el bloc bàsic"
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr "falta una barrera després del bloc %i"
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, 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:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: Respatller incorrecte %i->%i"
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr "insn erroni en la vora del respatller"
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr "els blocs bàsics no estan col·locats consecutivament"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr "insn fora del bloc bàsic"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr "return no és seguit per una barrera"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, 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)"
-#: cgraph.c:231
+#: cgraph.c:278
msgid "function body not available"
msgstr "la funció cso no és disponible"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr ""
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
msgid "function not considered for inlining"
msgstr ""
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
msgid "function not inlinable"
msgstr "la funció no pot ser «inline»"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "tipus múltiples en una declaració"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "falta la secció de punters"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
#, fuzzy
msgid "verify_cgraph_node failed."
msgstr "verify_flow_info fallat"
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "el camp \"%s\" es declara com una funció"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "abandó en %s, en %s:%d"
@@ -4457,72 +4458,72 @@ msgstr "abandó en %s, en %s:%d"
msgid "no arguments"
msgstr "sense arguments"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "es desconeix el mode de màquina \"%s\""
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 versió %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "es troba(en) %d constructor(s)\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "es troba(en) %d destructor(s)\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "es troba(en) %d marcs de matriu(es)\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s acabat amb el senyal %d [%s]%s"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s va retornar l'estat de sortida %d"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[no es pot trobar %s]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "no es pot trobar \"%s\""
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "redirigint sortida estàndard: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Deixant %s]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4531,55 +4532,55 @@ msgstr ""
"\n"
"write_c_file - el nom de sortida és %s, el prefix és %s\n"
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "no es pot trobar \"nm\""
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "es va trobar la funció init en l'objecte %s"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "es va trobar la funció fini en l'objecte %s"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "no es troba \"ldd\""
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4587,32 +4588,32 @@ msgstr ""
"\n"
"sortida de ldd amb constructors/destructors.\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "no es troba la dependència dinàmica %s"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "no es pot obrir la dependència dinàmica \"%s\""
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: no és un fitxer COFF"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: no es pot obrir com un fitxer COFF"
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr "no es troba la biblioteca lib%s"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4623,7 +4624,7 @@ msgstr ""
";; %d èxits.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4739,7 +4740,7 @@ msgstr "\"%s\" no es una opció vàlida per el preprocessador"
msgid "too many input files"
msgstr "massa fitxers d'entrada"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ";; Processant el bloc de %d a %d, %d establerts.\n"
@@ -4798,31 +4799,23 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s no està implementat\n"
-#: emit-rtl.c:1215
-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:1242
-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:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr ""
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
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:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "abandó en %s, en %s:%d"
@@ -4840,7 +4833,7 @@ msgstr "l'argument de \"__builtin_eh_return_regno\" ha de ser constant"
msgid "__builtin_eh_return not supported on this target"
msgstr "no es dóna suport a _builtin_eh_return en aquest objectiu"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "no es dóna suport a límits de pila en aquest objectiu"
@@ -4890,103 +4883,103 @@ msgstr "l'operand \"%%l\" no és una etiqueta"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "constant de coma flotant mal usada"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "expressió no vàlida com a operand"
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
#, fuzzy
msgid "internal consistency failure"
msgstr "avortament intern de gcc"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Intent d'esborrar insn pròleg/epíleg:"
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "la comparança sempre és %d"
-#: fold-const.c:4899
+#: fold-const.c:4933
#, fuzzy
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:4904
+#: fold-const.c:4938
#, fuzzy
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr "un \"and\" de proves equivalents mútuament exclusives sempre és 0"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "%Jla grandària de la variable \"%D\" és massa gran"
-#: function.c:1442
+#: function.c:1443
#, fuzzy
msgid "impossible constraint in %<asm%>"
msgstr "restricció impossible en \"asm\""
-#: function.c:3495
+#: function.c:3633
#, fuzzy
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "%Jla variable \"%D\" podria ser apallissada per \"longjmp\" o \"vfork\""
-#: function.c:3516
+#: function.c:3654
#, fuzzy
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "%Jl'argument \"%D\" podria ser apallissat per \"longjmp\" o \"vfork\""
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "la funció retorna un agregat"
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "%Jparàmetre \"%D\" sense ús"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "abreujament ambigu %s"
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "Opció \"%s\" incompleta"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "Falten arguments per a l'opció \"%s\""
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "argument estrany per a l'opció \"%s\""
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr "Usant especificacions internes.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -4995,42 +4988,42 @@ msgstr ""
"Canviant l'especificació de %s a \"%s\"\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr "Llegint especificacions de %s\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, 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:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr "No es pot trobar el fitxer d'especificacions %s\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, 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:2109
+#: gcc.c:2099
#, 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:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr "re-nomenada especificació %s a %s\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5039,30 +5032,30 @@ msgstr ""
"la especificació és \"%s\"\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "specs ordre %% desconegut després de %ld caràcters"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "specs fitxer mal format després de %ld caràcters"
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "el fitxer d'especificacions no té especificacions per a enllaçar"
-#: gcc.c:2635
+#: gcc.c:2625
#, fuzzy, c-format
msgid "system path '%s' is not absolute"
msgstr "la reservació \"%s\" no s'utilitza"
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe no té suport"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5070,7 +5063,7 @@ msgstr ""
"\n"
"Continuar? (s o n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5081,77 +5074,77 @@ msgstr ""
"Per favor envieu un informe complet d'error.\n"
"Consulta %s per a més instruccions."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Utilització: %s [opcions] fitxer...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Opcions:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Mostra aquesta informació\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr ""
" --target-help Mostra opcions de línia d'ordres específiques de\n"
" l'objectiu\n"
-#: gcc.c:3040
+#: gcc.c:3030
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 d'ordres dels subprocès)\n"
-#: gcc.c:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Mostra totes les cadenes internes d'especificació\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Mostra la versió del compilador\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Mostra el processador objectiu del compilador\n"
-#: gcc.c:3044
+#: gcc.c:3034
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr ""
" -print-search-dirs Mostra els directoris en la ruta de recerca del\n"
" compilador\n"
-#: gcc.c:3045
+#: gcc.c:3035
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:3046
+#: gcc.c:3036
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:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5160,108 +5153,108 @@ msgstr ""
" d'ordres i els múltiples directoris de la recerca\n"
" de biblioteques\n"
-#: gcc.c:3052
+#: gcc.c:3042
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:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<options> Passa <opcions> separades per coma al ensamblador\n"
-#: gcc.c:3054
+#: gcc.c:3044
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:3055
+#: gcc.c:3045
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:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xassembler <arg> Passa <arg> al ensamblador\n"
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xpreprocessor <arg> Passa el <arg> al preprocesador\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> Passa el <arg> al enllaçador\n"
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -o <fitxer> Col·loca la sortida en el <fitxer>\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps No esborra els fitxers intermedis\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Usa canonades en lloc de fitxers intermedis\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Obté el temps d'execució de cada subprocès\n"
-#: gcc.c:3063
+#: gcc.c:3053
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:3064
+#: gcc.c:3054
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
" -std=<estàndard> Assumeix qu'els fitxers d'entrada són per a el\n"
" <estàndard>\n"
-#: gcc.c:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
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:3067
+#: gcc.c:3057
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:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Mostra els programes invocats pel compilador\n"
-#: gcc.c:3069
+#: gcc.c:3059
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
" -### Com -v però les opcions i ordres entr \"\" no estan\n"
" executades\n"
-#: gcc.c:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E Solament preprocessa; no compila, ensambla o enllaça\n"
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Solament compila; no ensambla o enllaça\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Compila i ensambla, però no enllaça\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fitxer> Col·loca la sortida en el <fitxer>\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5274,7 +5267,7 @@ msgstr ""
" conducta habitual de endevinar el llenguatge basat\n"
" en l'extensió del fitxer\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5287,28 +5280,28 @@ msgstr ""
" 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:3201
+#: gcc.c:3191
#, fuzzy, c-format
msgid "'-%c' option must have argument"
msgstr "l'opció \"-%c\" ha de tenir arguments"
-#: gcc.c:3223
+#: gcc.c:3213
#, fuzzy, c-format
msgid "couldn't run '%s': %s"
msgstr "no és pot obrir %s"
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5319,95 +5312,95 @@ msgstr ""
"No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o\n"
"ADEQUACIÓ A UN PROPÒSIT PARTICULAR.\n"
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "falta l'argument per a \"-Xlinker\""
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "falta l'argument per a \"-Xpreprocessor\""
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "falta l'argument per a \"-Xassembler\""
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "falta l'argument per a \"-I\""
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "falta l'argument per a \"-specs\""
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "falta l'argument per a \"-specs=\""
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "falta l'argument per a \"-B\""
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "Avís: s'ignora -pipe perquè es va especificar -save-temps"
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr "Avís: s'ignora -pipe perquè es va especificar -time"
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "falta l'argument per a \"-x\""
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "falta l'argument per a \"-%s\""
-#: gcc.c:4093
+#: gcc.c:4083
#, fuzzy, 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:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "el camp de bits \"%s\" té un tipus no vàlid"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "el camp de bits \"%s\" té un tipus no vàlid"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "el camp de bits \"%s\" té un tipus no vàlid"
@@ -5415,88 +5408,88 @@ msgstr "el camp de bits \"%s\" té un tipus no vàlid"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, 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:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "Avís: ús de l'operador obsolet %%[ en specs"
-#: gcc.c:5203
+#: gcc.c:5176
#, 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:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "Falla en spec: Opció d'especificació \"%c\" no reconeguda"
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "funció d'especificació \"%s\" desconeguda"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "error en els arguments per a la funció d'especificació \"%s\""
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr "nom de la funció d'especificació malformat"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr "molt pocs arguments per a la funció spec"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "opció \"-%s\" no reconeguda"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "instal·lar: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "programes: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "biblioteques: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5505,71 +5498,76 @@ msgstr ""
"\n"
"Per a instruccions de report de bug, si us plau per favor vegi:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "biblioteques: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "Configurat amb: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Model de fils: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc versió %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "controlador gcc versió %s executant gcc versió %s\n"
-#: gcc.c:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "no hi ha fitxers d'entrada"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, 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:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "el paràmetre \"%s\" té valor inicial"
-#: gcc.c:6607
+#: gcc.c:6596
#, 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:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "no es reconeix el llenguatge %s"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "l'argument de patró %d no és vàlid"
-#: gcc.c:7130
+#: gcc.c:7119
#, fuzzy, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr "múltiples camps inicialitzats en la unió \"%#T\""
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "l'argument de patró %d no és vàlid"
-#: gcc.c:7367
+#: gcc.c:7356
#, fuzzy, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr "múltiples camps inicialitzats en la unió \"%#T\""
@@ -5857,27 +5855,27 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr "%s:el fitxer font és més nou qu'el fitxer graf \"%s\"\n"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr "GCSE desactivat"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr "evitació de salts desactivada"
-#: gcse.c:6597
+#: gcse.c:6535
#, fuzzy, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "GCSE desactivat: %d > 1000 blocs bàsics i %d >= 20 blocs bord/bàsics"
-#: gcse.c:6610
+#: gcse.c:6548
#, fuzzy, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "GCSE desactivat: %d blocs bàsics i %d registres"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, c-format
msgid "can't write PCH file: %m"
@@ -5894,7 +5892,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "no es pot escriure al fitxer de sortida"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, c-format
msgid "can't read PCH file: %m"
msgstr "no es pot llegir el fitxer PCH: %m"
@@ -5903,12 +5901,12 @@ msgstr "no es pot llegir el fitxer PCH: %m"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr "open /dev/zero: %m"
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
msgid "can't write PCH file"
msgstr "no es pot escriure el fitxer PCH"
@@ -5917,27 +5915,27 @@ msgstr "no es pot escriure el fitxer PCH"
msgid "unexpected node"
msgstr "operand inesperat"
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "lvalue no vàlid en declaració asm"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, fuzzy, c-format
msgid "memory input %d is not directly addressable"
msgstr "el nombre de sortida %d no és directament adreçable"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, fuzzy, c-format
msgid "%s cannot be used in asm here"
msgstr "no es pot usar %s en ensamblador aquí"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, fuzzy, c-format
msgid "can't open %s: %m"
msgstr "no es pot obrir %s"
@@ -5997,89 +5995,99 @@ msgstr "l'argument per a \"%s\" ha de ser un enter non negatiu"
msgid "unrecognized command line option \"%s\""
msgstr "opció de línia d'ordres \"%s\" desconeguda"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "no es dóna suport a -Wuninitialized sense -O"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, fuzzy, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr "l'alineació ha de ser una potència petita de dos, no %d"
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "no es reconeix el nom de registre \"%s\""
-#: opts.c:937
+#: opts.c:938
#, c-format
msgid "unrecognized register name \"%s\""
msgstr "no es reconeix el nom de registre \"%s\""
-#: opts.c:957
+#: opts.c:962
#, c-format
msgid "unknown tls-model \"%s\""
msgstr "tls-model \"%s\" desconegut"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "valor de --param \"%s\" no vàlid"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr "el sistema objectiu no té suport per a sortides de depuració"
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "format de depuració \"%s\" en conflicte amb una selecció prèvia"
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "no es reconeix el nivell de sortida de depuració \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr "el nivell de sortida de depuració %s és massa alt"
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "el paràmetre \"%s\" no és vàlid"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "el paràmetre \"%s\" no és vàlid"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6417,96 +6425,92 @@ msgstr "%s: no es pot obtenir el directori de treball: %s\n"
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:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "la restricció de sortida %d s'ha d'especificar un sol registre"
-#: reg-stack.c:631
+#: reg-stack.c:632
#, 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:654
+#: reg-stack.c:655
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:691
+#: reg-stack.c:692
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:710
+#: reg-stack.c:711
#, fuzzy
msgid "output operand %d must use %<&%> constraint"
msgstr "l'operand de sortida %d ha d'usar la restricció \"&\""
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "no es pot usar \"%s\" com un registre %s"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "nom de registre desconegut: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "la variable de registre global segueix a una definició de funció"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "nom de registre usat per dues variables de registre globals"
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr "registre de cridada alterada usat per a una variable de registre global"
-#: regrename.c:1876
+#: regrename.c:1872
#, 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:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: Cicle en la cadena regno (%u)"
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno erroni (%u)"
-#: regrename.c:1903
+#: regrename.c:1899
#, 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:1252
+#: reload.c:1270
#, fuzzy
msgid "cannot reload integer constant operand in %<asm%>"
msgstr "no es pot recarregar un operador constant enter en \"asm\""
-#: reload.c:1275
+#: reload.c:1293
#, fuzzy
msgid "impossible register constraint in %<asm%>"
msgstr "restricció de registres impossible en \"asm\""
-#: reload.c:3513
+#: reload.c:3535
#, fuzzy
msgid "%<&%> constraint used with no register class"
msgstr "es va usar la restricció \"&\" sense classe de registre"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr "no es poden generar recarregues per a:"
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
#, fuzzy
msgid "inconsistent operand constraints in an %<asm%>"
msgstr "restriccions d'operand inconsistents en un \"asm\""
@@ -6519,41 +6523,41 @@ msgstr "la grandària del marc és massa gran per a una revisió fiable de la pila"
msgid "try reducing the number of local variables"
msgstr "intenti reduir el nombre de variables locals"
-#: reload1.c:1866
+#: reload1.c:1865
#, fuzzy
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr "no es pot trobar un registre en la classe \"%s\" mentre es recarrega \"asm\"."
-#: reload1.c:1871
+#: reload1.c:1870
#, fuzzy, c-format
msgid "unable to find a register to spill in class %qs"
msgstr "no es pot trobar un registre per a buidar la classe \"%s\"."
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr "això és el insn:"
-#: reload1.c:3864
+#: reload1.c:3863
#, fuzzy
msgid "%<asm%> operand requires impossible reload"
msgstr "l'operand \"asm\" requereix una recarrega impossible"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr "no es pot trobar un registre de buidat "
-#: reload1.c:4988
+#: reload1.c:4987
#, fuzzy
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr "la restricció de l'operand \"asm\" és incompatible amb la grandària de l'operand"
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr "VOIDmode en una sortida"
-#: reload1.c:6607
+#: reload1.c:6615
#, fuzzy
msgid "output operand is constant in %<asm%>"
msgstr "l'operand de sortida és constant en \"asm\""
@@ -6566,152 +6570,152 @@ msgstr "insn no recognoscible:"
msgid "insn does not satisfy its constraints:"
msgstr "insn no satisfà les seves restriccions:"
-#: rtl.c:472
+#: rtl.c:471
#, fuzzy, 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:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
+#: rtl.c:500
#, fuzzy, 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:511
+#: rtl.c:510
#, fuzzy, 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:522
+#: rtl.c:521
#, 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:533
+#: rtl.c:532
#, fuzzy, 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:316
+#: stmt.c:317
#, fuzzy
msgid "output operand constraint lacks %<=%>"
msgstr "la restricció d'operand de sortida manca de \"=\""
-#: stmt.c:331
+#: stmt.c:332
#, fuzzy, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr "la restricció de sortida \"%c\" per a l'operand %d no està al principi"
-#: stmt.c:354
+#: stmt.c:355
#, fuzzy
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr "la restricció d'operand conté \"+\" o \"=\" mal posicionat"
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
#, fuzzy
msgid "%<%%%> constraint used with last operand"
msgstr "restricció \"%%\" utilitzada amb l'últim operand"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "la restricció coincident no és vàlida en l'operand de sortida"
-#: stmt.c:451
+#: stmt.c:452
#, fuzzy, c-format
msgid "input operand constraint contains %qc"
msgstr "la restricció d'operand d'entrada conté \"%c\""
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr "la restricció de coincidència fa referència a un nombre d'operand no vàlid"
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "puntuació no vàlida \"%c\" en la restricció"
-#: stmt.c:555
+#: stmt.c:556
#, fuzzy
msgid "matching constraint does not allow a register"
msgstr "la restricció coincident no és vàlida en l'operand de sortida"
-#: stmt.c:583
+#: stmt.c:584
#, fuzzy, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr "els qualificadors asm per a la variable \"%s\" generen conflicte amb la lista d'agrupació asm"
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "nom de registre \"%s\" desconegut en \"asm\""
-#: stmt.c:680
+#: stmt.c:681
#, fuzzy
msgid "PIC register %qs clobbered in %<asm%>"
msgstr "nom de registre desconegut \"%s\" en \"asm\""
-#: stmt.c:727
+#: stmt.c:728
#, fuzzy
msgid "more than %d operands in %<asm%>"
msgstr "no més de %d operands en \"asm\""
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "el nombre de sortida %d no és directament adreçable"
-#: stmt.c:869
+#: stmt.c:870
#, fuzzy
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "l'operand asm %d probablement no coincideix amb les restriccions"
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr "l'agrupació asm causa conflictes amb l'operand de sortida"
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr "l'agrupació asm causa conflictes amb l'operand d'entrada"
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "massa alternatives en \"asm\""
-#: stmt.c:1120
+#: stmt.c:1121
#, fuzzy
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr "les restriccions d'operands per a \"asm\" difereixen en el nombre d'alternatives"
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "nom d'operand asm \"%s\" duplicat"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr "falta la clau final per a l'operand nomenat"
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "operand nomenat no definit \"%s\""
-#: stmt.c:1464
+#: stmt.c:1465
#, fuzzy
msgid "%Hvalue computed is not used"
msgstr "l'autòmat \"%s\" no s'utilitza"
@@ -6829,66 +6833,66 @@ msgstr "collect: reenllaçant\n"
msgid "ld returned %d exit status"
msgstr "ld va retornar l'estat de sortida %d"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "opció \"%s\" no vàlida"
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "error intern"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
#, fuzzy
msgid "%J%qF declared %<static%> but never defined"
msgstr "\"%s\" declarat \"static\" però mai definit"
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "\"%s\" definit però no utilitzat"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, fuzzy, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr "\"%s\" és depreciat (declarat a %s:%d)"
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr "type és depreciat (declarat a %s:%d)"
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "\"%s\" és depreciat"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr "type és depreciat"
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -6897,12 +6901,12 @@ msgstr ""
"\n"
"Opcions específiques de l'objectiu:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, fuzzy, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23.23s [sense documentar]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -6911,24 +6915,24 @@ msgstr ""
"\n"
"A més hi ha opcions específiques de l'objectiu sense documentar.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " Existeixen, però no estan documentades.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "opció de depuració de gcc no reconeguda: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "opció \"%s\" no vàlida"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6939,348 +6943,359 @@ msgstr ""
"%s\tcompilat amb GNU C versió %s.\n"
"%s%s%s versió %s (%s) compilada per a CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "opcions passades: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "opcions activades: "
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "no es pot obrir %s per a escriptura"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr ""
-#: toplev.c:1736
+#: toplev.c:1756
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:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "aquesta màquina objectiu no té ramificacions alentides"
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "no s'ha implementat encara profiling"
-#: toplev.c:1757
+#: toplev.c:1777
#, 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:1831
+#: toplev.c:1851
#, fuzzy, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "%s no té suport per al format \"%%%s%c\" %s"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
#, fuzzy
msgid "variable tracking requested, but not supported by this debug format"
msgstr "%s no té suport per al format \"%%%s%c\" %s"
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "no es pot obrir %s"
-#: toplev.c:1873
+#: toplev.c:1893
msgid "-ffunction-sections not supported for this target"
msgstr "no es dóna suport a -ffunction-sections en aquest objectiu"
-#: toplev.c:1878
+#: toplev.c:1898
msgid "-fdata-sections not supported for this target"
msgstr "no es dóna suport a -fdata-sections en aquest objectiu"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections desactivat; fa impossible l'anàlisi de perfil"
-#: toplev.c:1892
+#: toplev.c:1912
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "no es dóna suport a -fprefetch-loop-arrays en aquest objectiu"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "no es dóna suport a -fdata-sections en aquest objectiu"
-#: toplev.c:1904
+#: toplev.c:1924
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 opcions -march)"
-#: toplev.c:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "no es dóna suport a -fprefetch-loop-arrays en aquest objectiu (prova opcions -march)"
-#: toplev.c:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "no es dóna suport a -fprefetch-loop-arrays amb -Os"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections podria afectar la depuració en alguns objectius"
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "error a l'escriure a %s"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "error al tancar %s"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
#, fuzzy
msgid "%Hwill never be executed"
msgstr "la cridada %2d mai s'executa\n"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
#, fuzzy
msgid "non-boolean used in condition"
msgstr "definició del enum \"%T\" en una condició"
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
msgstr ""
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "\"%E\" no és un argument de patró vàlid"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
#, fuzzy
msgid "verify_stmts failed."
msgstr "verify_flow_info fallat"
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, fuzzy, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr "control de fluix insn dintre el bloc bàsic"
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, fuzzy, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr "NOTE_INSN_BASIC_BLOCK %d en el mitjà del bloc bàsic %d"
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, fuzzy, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr "Vora de caiguda després del salt incondicional %i"
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "els trampolins no tenen suport"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, c-format
msgid "Missing edge %i->%i"
msgstr ""
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
#, fuzzy
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr "la funció pot ser un candidat possible per a l'atribut \"noreturn\""
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
#, fuzzy
msgid "%H%<noreturn%> function does return"
msgstr "la funció \"noreturn\" retorna"
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "el control arriba a el final d'una funció que no és void"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "no es pot obrir el fitxer de dump \"%s\""
-#: tree-dump.c:960
+#: tree-dump.c:965
#, fuzzy
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "ignorant l'opció desconeguda \"%.*s\" dintre \"-f%s\""
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
#, fuzzy
msgid "%Jinlining failed in call to %qF: %s"
msgstr "el \"inlining\" ha fallat en la cridada a \"%s\""
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "cridat des d'aquí"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "el control arriba a el final d'una funció que no és void"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7290,38 +7305,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "els trampolins no tenen suport"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "la grandària del valor de retorn de \"%s\" és de %u octets"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "la grandària del valor de retorn de \"%s\" és més gran que %d octets"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7331,315 +7346,319 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "En la declaració de la funció"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "error intern"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "falta valor inicial"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:305
+#: tree-ssa.c:302
#, fuzzy
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr "l'argument \"%d\" no és una constant"
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
#, fuzzy
msgid "verify_flow_insensitive_alias_info failed."
msgstr "verify_flow_info fallat"
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
#, fuzzy
msgid "verify_flow_sensitive_alias_info failed."
msgstr "verify_flow_info fallat"
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
#, fuzzy
msgid "verify_name_tags failed"
msgstr "verify_flow_info fallat"
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
#, fuzzy
msgid "verify_ssa failed."
msgstr "verify_flow_info fallat"
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "%J\"%D\" podria ser usat sense iniciar en aquesta funció"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
#, fuzzy
msgid "%H%qD may be used uninitialized in this function"
msgstr "%J\"%D\" podria ser usat sense iniciar en aquesta funció"
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
#, fuzzy
msgid "no support for reduction/induction"
msgstr "No donar suport per a funcions internes 3DNow!"
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "combinació sense suport: %s"
-#: tree.c:3258
+#: tree.c:3272
#, fuzzy
msgid "%Jfunction %qD definition is marked dllimport."
msgstr "la definició de la funció \"%s\" està marcada com dllimport"
-#: tree.c:3266
+#: tree.c:3280
#, fuzzy
msgid "%Jvariable %qD definition is marked dllimport."
msgstr "la variable \"%s\" està marcada com dllimport"
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "les matrius de funcions no tenen significat"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "el tipus de retorn d'una funció no pot ser una funció"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "assignador no vàlid per a cadena de bits"
-#: tree.c:5446
+#: tree.c:5482
#, fuzzy, c-format
msgid "tree check: %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:5483
+#: tree.c:5519
#, fuzzy, c-format
msgid "tree check: expected none of %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:5496
+#: tree.c:5532
#, fuzzy, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr "revisió d'arbre: s'esperava classe \"%c\", es té \"%c\" (%s) en %s, en %s:%d"
-#: tree.c:5510
+#: tree.c:5546
#, 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"
-#: tree.c:5522
+#: tree.c:5558
#, fuzzy, c-format
msgid "tree check: accessed elt %d of phi_node 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"
-#: tree.c:5534
+#: tree.c:5570
#, fuzzy, c-format
msgid "tree check: accessed operand %d of %s with %d operands 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:476
+#: varasm.c:477
#, fuzzy
msgid "%J%D causes a section type conflict"
msgstr "%s causa un conflicte de tipus de secció"
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "no s'especifica nom de registre per a \"%s\""
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "nom de registre no vàlid per a \"%s\""
-#: varasm.c:914
+#: varasm.c:915
#, fuzzy
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr "el tipus de dades de \"%s\" no és adequat per a un registre"
-#: varasm.c:917
+#: varasm.c:918
#, fuzzy
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr "el registre especificat per \"%s\" no és adequat per al tipus de dades"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "la variable de registre global té valor inicial"
-#: varasm.c:930
+#: varasm.c:931
#, fuzzy
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:963
+#: varasm.c:968
#, fuzzy
msgid "%Jregister name given for non-register variable %qD"
msgstr "nom de registre donat per a una variable \"%s\" que no és registre"
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "no es dóna suport a límits de pila en aquest objectiu"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "no es dóna suport a límits de pila en aquest objectiu"
-#: varasm.c:1592
+#: varasm.c:1607
#, fuzzy
msgid "%Jalignment of %qD 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:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
#, fuzzy
msgid "%Jrequested alignment for %qD 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:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "el assignador per a un valor enter és massa complicat"
-#: varasm.c:3741
+#: varasm.c:3777
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:3807
-msgid "unknown set constructor type"
-msgstr "conjunt de tipus constructor desconegut"
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "valor inicial no vàlid per al membre \"%s\""
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "la declaració feble de \"%s\" ha de precedir la definició"
-#: varasm.c:4221
+#: varasm.c:4241
#, fuzzy
msgid "%Jweak declaration of %qD 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:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "la declaració feble de \"%s\" ha de ser pública"
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "no es dóna suport a la declaració feble de \"%s\""
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "només els aliessis febles tenen suport en aquesta configuració"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "les definicions d'alies no tenen suport en aquesta configuració; ignorades"
-#: varasm.c:4418
+#: varasm.c:4504
+msgid "%qD aliased to undefined symbol %qE"
+msgstr ""
+
+#: varasm.c:4532
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "els atributs de visibilitat no tenen suport en aquesta configuració; ignorats"
@@ -7707,11 +7726,11 @@ msgid "debug: "
msgstr ""
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7740,218 +7759,227 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "El nombre màxim d'instruccions pel inliner RTL"
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
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:145
+#: params.def:135
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:155
+#: params.def:145
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:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:165
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:180
+#: params.def:170
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:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
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:216
+#: params.def:204
#, fuzzy
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr "El nombre màxim d'instruccions per a considerar el desenrotllo en un cicle"
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:214
#, fuzzy
msgid "The maximum number of insns of a peeled loop"
msgstr "El nombre màxim d'instruccions per a considerar l'omplert d'una ranura de retard"
-#: params.def:231
+#: params.def:219
#, fuzzy
msgid "The maximum number of peelings of a single loop"
msgstr "El nombre màxim de passos a realitzar quan es fa GCSE"
-#: params.def:236
+#: params.def:224
#, fuzzy
msgid "The maximum number of insns of a completely peeled loop"
msgstr "El nombre màxim d'instruccions per a considerar el desenrotllo en un cicle"
-#: params.def:241
+#: params.def:229
#, fuzzy
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr "El nombre màxim d'instruccions en una sola funció elegible per a inlining"
-#: params.def:246
+#: params.def:234
#, fuzzy
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr "El nombre màxim d'instruccions per al inliner de RTL"
-#: params.def:252
+#: params.def:240
#, fuzzy
msgid "The maximum number of insns of an unswitched loop"
msgstr "El nombre màxim d'instruccions per a considerar el desenrotllo en un cicle"
-#: params.def:257
+#: params.def:245
#, fuzzy
msgid "The maximum number of unswitchings in a single loop"
msgstr "El nombre màxim d'instruccions en una sola funció elegible per a un sol cicle"
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:311
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:340
+#: params.def:317
#, fuzzy
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr "El nombre màxim de vores d'entrada per a considerar el salt creuat"
-#: params.def:346
+#: params.def:323
+#, fuzzy
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "El nombre màxim d'instruccions per a considerar el desenrotllo en un cicle"
+
+#: params.def:329
#, fuzzy
msgid "The maximum length of path considered in cse"
msgstr "La longitud màxima de la llista d'operacions pendents del planificador de tasques"
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
#, fuzzy
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr "Realitzar un nombre menor d'optimitzacions costoses"
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
#, fuzzy
msgid "The maximum memory locations recorded by cselib"
msgstr "El nombre màxim d'instruccions per al inliner de RTL"
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:399
#, fuzzy
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr "El nombre màxim d'instruccions per a considerar el desenrotllo en un cicle"
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
#, fuzzy
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr "El nombre màxim de vores d'entrada per a considerar el salt creuat"
-#: params.def:424
+#: params.def:414
#, fuzzy
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr "El nombre màxim de vores d'entrada per a considerar el salt creuat"
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
#, fuzzy
msgid "The upper bound for sharing integer constants"
msgstr "el valor de enumerator per a \"%s\" no és una constant entera"
@@ -7990,9 +8018,9 @@ msgstr "escombraries al final de \"#pragma unused\""
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
+#: config/darwin.c:1350
#, fuzzy
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "els atributs de visibilitat no tenen suport en aquesta configuració; ignorats"
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -8053,17 +8081,17 @@ msgstr "escombraries al final de #pragma %s"
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
#, fuzzy
msgid "Set sizeof(bool) to 1"
msgstr "sizeof(long double) és 16."
-#: config/darwin.h:154
+#: config/darwin.h:157
#, fuzzy
msgid "Generate code suitable for fast turn around debugging"
msgstr "Generar codi per a un Sun Sky board"
-#: config/darwin.h:156
+#: config/darwin.h:159
#, fuzzy
msgid "Don't generate code suitable for fast turn around debugging"
msgstr "No generar codi per a una unitat de manipulació de bits"
@@ -8073,7 +8101,7 @@ msgstr "No generar codi per a una unitat de manipulació de bits"
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "les definicions d'alies no tenen suport en aquesta configuració; ignorades"
@@ -8124,7 +8152,7 @@ msgstr "valor erroni \"%s\" per a l'opció -mfp-rounding-mode"
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "valor erroni \"%s\" per a l'opció -mfp-trap-mode"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "valor erroni \"%s\" per a l'opció -mtls-size"
@@ -8165,91 +8193,91 @@ msgstr "latència de cau L%d desconeguda per a %s"
msgid "bad value %qs for -mmemory-latency"
msgstr "valor erroni \"%s\" per a -mmemory-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "valor %%H no vàlid"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr "valor %%J no vàlid"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "valor %%r no vàlid"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "valor %%R no vàlid"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "valor %%N no vàlid"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "valor %%P no vàlid"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "valor %%h no vàlid"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "valor %%L no vàlid"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "valor %%m no vàlid"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "valor %%M no vàlid"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "valor %%U no vàlid"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "valor %%s no vàlid"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "valor %%C no vàlid"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "valor %%E no vàlid"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr "reubicació unspec desconeguda"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "codi %%xn no vàlid"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr ""
@@ -8266,14 +8294,14 @@ 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/alpha/alpha.h:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Usar fp de maquinari"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "No usar fp de maquinari"
@@ -8395,7 +8423,7 @@ msgstr "Controlar la precisió donada a les excepcions de fp"
msgid "Tune expected memory latency"
msgstr "Ajustar la latència esperada de memòria"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -8414,17 +8442,17 @@ msgstr "l'argument de l'atribut \"%s\" no es una cadena constant"
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "l'argument de l'atribut \"%s\" no es \"ilink1\" o \"ilink2\""
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr "operand no vàlid per al codi %%R"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "operand no vàlid per al codi %%H/%%L"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr "operand no vàlid per al codi %%U"
@@ -8436,168 +8464,168 @@ msgstr "operand no vàlid per al codi %%V"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "operand no vàlid per al codi de sortida"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "l'opció -mcpu=%s genera conflictes amb l'opció -march="
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "valor erroni (%s) per a l'opció %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "el CPU objectiu no té suport per a treball intern"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr "el CPU objectiu no té suport les instruccions THUMB"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "habilitar el suport de rastrejat cap a endarrere només té significat quan es compila per al Thumb"
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "habilitar el suport de treball intern de crides només té significat quan es compila per al Thumb"
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
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:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check és incompatible amb -mno-apcs-frame"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic i -mapcs-reent són incompatibles"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "no se suporta el codi APCS que es torna a introduir.Ignorat"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
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:962
+#: config/arm/arm.c:976
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:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "opció \"%s\" no vàlida"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "opció d'emulació de coma flotant no vàlida: -mfpe-%s"
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "opció d'emulació de coma flotant no vàlida: -mfpe-%s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, fuzzy, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr "opció d'emulació de coma flotant no vàlida: -mfpe-%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, fuzzy, c-format
msgid "structure size boundary can only be set to %s"
msgstr "El límit de la grandària de l'estructura només pot establir-se a 8 o 32"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= és inútil sense -fpic"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "no es pot usar \"%s\" per a registre PIC"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "l'atribut \"%s\" nomès s'aplica a funcions"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "Generar instruccions char"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "els tipus de dades no coincideixen en l'expressió condicional"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "codi d'operand \"%c\" no vàlid"
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
#, fuzzy
msgid "instruction never exectued"
msgstr "l'incondicional %2d mai s'executa\n"
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "\"(\" faltant"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr "no es pot calcular la ubicació real del paràmetre apilat"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "el selector ha de ser immediat"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "la màscara ha de ser immediat"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
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:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "no es poden codificar les Rutines de Serveis d'Interrupció en el mode Thumb"
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
#, fuzzy
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "la variable iniciada \"%s\" està marcada com dllimport"
@@ -8709,7 +8737,7 @@ msgstr "Especificar l'alineació mínima de bit de les estructures"
msgid "Specify the register to be used for PIC addressing"
msgstr "Especificar el registre a usar per l'adreçament PIC"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr "Especificar un ABI"
@@ -8725,55 +8753,65 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorar l'atribut dllimport per a les funcions"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, 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:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr "adreça errònia, no (reg+disp)"
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr "error intern del compilador. Direcció errònia:"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr "error intern del compilador. Mode desconegut:"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
msgid "invalid insn:"
msgstr "insn no vàlid:"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr "insn incorrecte:"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr "desplaçament insn desconegut:"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr "desplaçament insn erròni:"
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr "error intern del compilador. Direcció errònia:"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
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:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
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:4615
+#: config/avr/avr.c:4728
#, fuzzy, c-format
msgid "MCU %qs supported for assembler only"
msgstr "MCU \"%s\" només té suport per a ensamblador"
@@ -9161,243 +9199,234 @@ msgstr "Especificar el nombre màxim d'iteracions per a RPTS"
msgid "Select CPU to generate code for"
msgstr "Seleccionar el CPU per al qual es genera codi"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr "index-type inesperat en cris_print_index"
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr "base-type inesperat en cris_print_base"
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "marc de pila massa grand: %d bytes"
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr "llista d'alenteixo assignada però sense ús en l'epíleg"
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
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:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr "operand no vàlid per al modificador \"b\""
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr "operand no vàlid per al modificador \"v\""
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr "operand no vàlid per al modificador \"P\""
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr "operand no vàlid per al modificador \"p\""
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr "operand no vàlid per al modificador \"z\""
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr "operand no vàlid per al modificador \"H\""
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr "registre erroni"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr "operand no vàlid per al modificador \"e\""
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr "operand no vàlid per al modificador \"m\""
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr "operand no vàlid per al modificador \"A\""
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr "operand no vàlid per al modificador \"D\""
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr "operand no vàlid per al modificador \"T\""
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr "lletra de modificador d'operand no vàlid"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "error intern: registre erroni: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr "operand multiplicatiu inesperat"
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr "operand inesperat"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "adreça no reconeguda"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
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:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr "error intern: cris_side_effect_mode_ok amb operands erronis"
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr "suposada constant no reconeguda"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "suposada constant no reconeguda en cris_global_pic_symbol"
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, 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:2658
+#: config/cris/cris.c:2650
#, 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:2694
+#: config/cris/cris.c:2686
#, 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:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "no es dóna suport a -fPIC i -fpic en aquesta configuració"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr "aquesta opció particular -g no és vàlid amb -maout i -melinux"
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
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:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr "símbol PIC inesperat"
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr "el registre PIC no està preparat"
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr "expressió d'adreça inesperada"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr "emetent un operand PIC, però el registre PIC no està preparat"
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr "NOTE com a addr_const inesperat:"
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
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
+#: config/cris/aout.h:92
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"
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
#, fuzzy
msgid "Work around bug in multiplication instruction"
msgstr "No usar instruccions de fp per a multiplicar-acumular"
#. 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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Compilar per a ETRAX 4 (CRIS v3)"
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Compilar per a ETRAX 100 (CRIS v8)"
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr "Emetre informació de depuració detallada en el codi ensamblador"
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr "No usar codis de condició per a les instruccions normals"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "No emetre modes d'adreçament amb assignacions col·laterals"
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr "No ajustar l'alineació de la pila"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr "No ajustar l'alineació de les dades modificables"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
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:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr "Alinear codi i dades a 32 bits"
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr "No alinear elements en el codi o les dades"
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr "Anular -mbest-lib-options"
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
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:462
+#: config/cris/cris.h:454
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:464
+#: config/cris/cris.h:456
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:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "no FUNCTION_PROFILER per a CRIS"
@@ -9405,46 +9434,46 @@ msgstr "no FUNCTION_PROFILER per a CRIS"
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "Juntament amb -fpic i -fPIC, no utilitzar referències GOTPLT"
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: adreça sense manejar"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand_address: no es reconeix el codi %%p"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand_address: no es reconeix el codi %%b"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand_address: no es reconeix el codi %%B"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: operand no vàlid per al codi %%A"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: codi %%x no vàlid"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: codi %%F no vàlid"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: codi desconegut"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: MEM sense manejar"
@@ -9452,142 +9481,139 @@ msgstr "fr30_print_operand: MEM sense manejar"
msgid "Assume small address space"
msgstr "Assumint espai d'adreces petit"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr "insn erroni per a frv_print_operand_address:"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
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:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr "insn erroni per a frv_print_operand_memory_reference:"
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+#, fuzzy
+msgid "bad condition code"
+msgstr "codi d'extensió de registre erroni"
+
+#: config/frv/frv.c:2796
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:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "insn erroni per a frv_print_operand, modificador \"C\":"
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "insn erroni per a frv_print_operand, modificador \"c\":"
-
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"e\":"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"F\":"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"f\":"
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
#, fuzzy
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"C\":"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"L\":"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
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:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"O\":"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr "insn erroni per a frv_print_operand, modificador \"P\":"
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr "insn erroni per a frv_print_operand, «case» z"
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr "insn erroni per a frv_print_operand, «case» 0"
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr "frv_print_operand: codi desconegut"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr "Operand output_move_single erroni"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr "Operand output_condmove_single erroni"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr "el acumulador no és una constant entera"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, fuzzy, c-format
msgid "inappropriate accumulator for %qs"
msgstr "acumulador inadequat per a \"%s\""
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "argument de tipus no vàlid"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, fuzzy, c-format
msgid "%qs expects a constant argument"
msgstr "l'atribut \"%s\" espera una constant com argument"
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "l'argument constant està fora de límits per a \"%s\""
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9600,7 +9626,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr ""
@@ -9680,180 +9706,188 @@ msgstr "No generar codi H8/300H"
msgid "Use H8/300 alignment rules"
msgstr "Usar regles d'alineació H8/300"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, 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:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "valor erroni (%s) per a l'opció -mcmodel="
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "valor erroni (%s) per a l'opció -masm="
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs 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:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "el model de codi \"large\" not té suport"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "no està compilat el mode %i-bit"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
#, fuzzy
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "el CPU objectiu no té suport les instruccions THUMB"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "valor erroni (%s) per a l'opció -march="
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, fuzzy, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "valor erroni (%s) per a l'opció -mcpu="
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d no està entre 0 i %d"
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops és obsolet, usi -falign-loops"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, 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:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps és obsolet, usi -falign-jumps"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions és obsolet, usi -falign-functions"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, 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:1452
+#: config/i386/i386.c:1448
#, 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:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "valor erroni (%s) per a l'opció -mtls-dialect="
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
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:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "la convenció de crides -mrtd no té suport en el mode 64 bit"
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
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:1538
+#: config/i386/i386.c:1554
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:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "valor erroni (%s) per a l'opció -mfpmath="
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
#, fuzzy
msgid "fastcall and stdcall attributes are not compatible"
msgstr "-f%s i -msdata=%s són incompatibles"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
#, fuzzy
msgid "fastcall and regparm attributes are not compatible"
msgstr "-f%s i -msdata=%s són incompatibles"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "l'atribut \"%s\" requereix una constant entera com argument"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "l'argument per a l'atribut \"%s\" és més gran que %d"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "UNSPEC no vàlid com a operand"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr "els registres estesos no tenen meitats superiors"
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr "mida d'operand sense suport per al registre estès"
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr "l'operand no és una constant ni un codi de condició, codi d'operand \"c\" no vàlid"
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "codi d'operand \"%c\" no vàlid"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
msgid "invalid constraints for operand"
msgstr "restriccions no vàlides per a l'operand"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
msgid "unknown insn mode"
msgstr "mode insn desconegut"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr "el desplaçament ha de ser immediat"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "s'ignora l'atribut \"%s\""
@@ -9959,166 +9993,166 @@ msgstr "-f%s no té suport: ignorat"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "Convenció de cridada alternativa"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Usar convenció de cridada normal"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "Alinear alguns dobles en límits de dword"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "Alinear dobles en límits de word"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr "Locals sense valors inicials en .bss"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr "Locals sense valors inicials en .data"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 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:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 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:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr "Retornar valors de funcions en registres FPU"
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr "No retornar valors de funcions en registres FPU"
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "No generar sin, cos, sqrt per a FPU"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generar sin, cos, sqrt per a FPU"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Ometre el marc de referència per a les funcions fulles"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "Habilitar la prova de la pila"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "Alinear destinació de les operacions de cadenes"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr "No alinear destinació de les operacions de cadenes"
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "Convertir a «inline» totes les operacions de cadenes conegudes"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr "No convertir a «inline» totes les operacions de cadenes conegudes"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr "Usar instruccions push per a guardar els arguments de sortida"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
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:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr "Donar suport per a funcions internes MMX"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr "No donar suport per a funcions internes MMX"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr "Donar suport per a funcions internes 3DNow!"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr "No donar suport per a funcions internes 3DNow!"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr "Donar suport per a funcions internes MMX i SSE i generació de codi"
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr "No donar suport per a funcions internes MMX i SSE i generació de codi"
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "Donar suport per a funcions internes MMX, SSE i SSE2 i generació de codi"
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
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 i generació de codi"
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Donar suport per a funcions internes MMX, SSE, SSE2 i SSE3 i generació de codi"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "No donar suport per a funcions internes MMX, SSE, SSE2 i SSE3 i generació de codi"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) és 16."
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) és 12."
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr "Generar codi 64 bit per a x86-64"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr "Generar codi 32 bit per a i386"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr "Usar red-zone en el codi x86-64"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr "No usar red-zone en el codi x86-64"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -10132,54 +10166,54 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Codi de planificador per al CPU donat"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
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:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Generar codi per al CPU donat"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "Nombre de registres usats per a passar arguments enters"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
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:482
+#: config/i386/i386.h:481
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:484
+#: config/i386/i386.h:483
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:487
+#: config/i386/i386.h:486
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:489
+#: config/i386/i386.h:488
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:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr "Usar el mpdel de codi x86-64 donat"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "Usar el dialecte de l'ensamblador donat"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr "Usar el dialecte d'emmagatzematge thread-local donat"
@@ -10220,59 +10254,59 @@ msgstr ""
msgid "malformed #pragma builtin"
msgstr "secció #pragma builtin malformada"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "no vàlid argument per a l'atribut \"%s\""
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "%Jno es pot especificar un atribut d'àrea de dades per a variables locals"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "%Jl'àrea d'adreça de \"%s\" és en conflicte amb una declaració prèvia"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "%Jno es pot especificar un atribut d'àrea d'adreça per a funcions"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: codi desconegut"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "el valor de -mfixed-range ha de ser de la forma REG1-REG2"
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s és un rang buit"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
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:4219
+#: config/ia64/ia64.c:4651
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:4236
+#: config/ia64/ia64.c:4668
#, fuzzy
msgid "cannot optimize square root 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:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "valor erroni (%s) per a l'opció -mtls-size="
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, fuzzy, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "valor erroni (%s) per a l'opció -mcpu="
@@ -10280,174 +10314,170 @@ msgstr "valor erroni (%s) per a l'opció -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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Generar codi big endian"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Generar codi little endian"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Generar codi per a GNU as"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Generar codi per a Intel as"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Generar codi per a GNU ld"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Generar codi per a Intel ld"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "Generar codi sense registre GP"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
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:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "No emetre bits de desocupada abans i després d'asms extesos amb volatile"
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr "Emetre codi per a Itanium (TM) processador de pas B"
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "Usar noms de registre in/loc/out"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "Desactivar l'ús de sdata/scommon/sbss"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "Activar l'ús de sdata/scommon/sbss"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp és constant (però hi ha save/restore de gp en crides indirectes)"
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "Generar codi self-relocatable"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr "Generar divisió de coma flotant «inline», optimitzar per a latència"
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr "Generar divisió de coma flotant «inline», optimitzar per a sortida"
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
#, fuzzy
msgid "Do not inline floating point division"
msgstr "No col·locar les constants de coma flotant en TOC"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr "Generar divisió entera «inline», optimitzar per a latència"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr "Generar divisió entera «inline», optimitzar per a sortida"
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "No avisar sobre la divisió entera per zero en temps de compilació"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr "Generar arrel quadrada «inline», optimitzar per a latència"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr "Generar arrel quadrada «inline», optimitzar per a sortida"
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
#, fuzzy
msgid "Do not inline square root"
msgstr "No desactivar registres d'espai"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
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:233
+#: config/ia64/ia64.h:227
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:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr ""
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr "Especifica el rang de registres a convertir en fixos"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr "operand no vàlid"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "valor erroni (%s) per a l'opció -mcpu="
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, c-format
msgid "The compiler does not support -march=%s."
msgstr "El compilador no dóna suport a -march=%s."
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr "gp_offset (%ld) o end_offset (%ld) és menys de zero"
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "l'argument \"%d\" no és una constant"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, punter nul"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, fuzzy, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: puntuació desconeguda \"%c\""
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND punter nul"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr "operand no vàlid per a %%P"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "valor no vàlid per a %%p"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ùs no vàlid de %%d, %%x, o %%X"
@@ -10464,87 +10494,87 @@ msgstr "Usar seccions sdata/sbss relatives a GP"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "No usar seccions sdata/sbss relatives a GP"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "Usar ROM enlloc de RAM"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "No usar ROM enlloc de RAM"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Posar les constants sense inicialitzar en ROM (necessita -membedded-data)"
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr "No posar les constants sense inicialitzar en ROM"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "Especificar el CPU per a propòsits de calendarització"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr "Especificar el CPU per a propòsits de generació de codi"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "valor erroni (%s) per a l'opció -mmodel"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "valor erroni (%s) per a l'opció -msdata"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "valor erroni (%s) per a -flush-trap=n (0=<n<=15)"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr "no vàlid operand per al codi %%s"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr "no vàlid operand per al codi %%p"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr "insn erroni per a \"A\""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "no vàlid operand per al codi %%T/%%B"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr "no vàlid operand per al codi %%N"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr "l'adreça de pre-increment no és un registre"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr "l'adreça de pre-decrement no és un registre"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr "l'adreça de post-increment no és un registre"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "adreça erroni"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr "lo_sum no és un registre"
@@ -10573,11 +10603,11 @@ msgstr "Grandària del codi: small, medium o large"
msgid "Small data area: none, sdata, use"
msgstr " Àrea de dades small: none, sdata, use"
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr "No cridar cap funció de neteja de memòria cau"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr "Especificar una funció de neteja de memòria cau"
@@ -10596,51 +10626,51 @@ msgstr "Especificar una funció de neteja de memòria cau"
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "s'ignora -f%s per a 68HC11/68HC12 (sense suport)"
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
#, fuzzy
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr "-f%s i -msdata=%s són incompatibles"
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
#, fuzzy
msgid "%<trap%> attribute is already used"
msgstr "l'atribut \"trap\" ja està en ús"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr "no es maneja move insn"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr "registre no vàlid en la instrucció move"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr "operand no vàlid en la instrucció"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr "registre no vàlid en la instrucció"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr "l'operand 1 ha de ser un registre fix"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr "rotació de insn no vàlida"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
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:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr "no es pot reemplaçar el registre-z"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr "reemplaçament de registre Z no vàlid per al insn"
@@ -10734,7 +10764,7 @@ msgstr ""
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr " -fPIC actualment no té suport en el 68000 o 68010\n"
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
#, fuzzy
msgid "stack limit expression is not supported"
msgstr "no es dóna suport a l'expressió del límit de la pila"
@@ -10878,7 +10908,7 @@ msgstr "Usar la convenció de cridada diferent usant 'rtd'"
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "opció no vàlida \"-mstack-increment=%s\""
@@ -10935,137 +10965,139 @@ msgstr "Generar codi per a M*Core M340"
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:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "valor erroni (%s) per a l'opció -mabi="
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr "s'utilitza -mgp32 amb una ABI de 64-bit"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr "s'utilitza -mgp64 amb una ABI de 32-bit"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, c-format
msgid "unsupported combination: %s"
msgstr "combinació sense suport: %s"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+#, fuzzy
+msgid "-mint64 is a deprecated option"
+msgstr "type és depreciat"
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
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:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
#, fuzzy
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-frepo ha de ser usat amb -c"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "error intern: es va trobar %%) sense un %%( en el patró de l'ensamblador"
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "error intern: es va trobar %%] sense un %%[ en el patró de l'ensamblador"
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "error intern: es va trobar %%> sense un %%< en el patró de l'ensamblador"
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "error intern: es va trobar %%} sense un %%{ en el patró de l'ensamblador"
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: puntuació desconeguda \"%c\""
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND punter nul"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND punter nul"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND punter nul"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND punter nul"
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "valor %%j no vàlid"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "no es poden manejar les crides inconsistents a \"%s\""
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr "el nom de cpu ha de estar en minúscules"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr "valor erroni (%s) per a %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11075,67 +11107,67 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "Usar tipus int de 64 bits"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "Usar tipus long de 64 bits"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "Usar tipus long de 32 bits"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "Optimitzar les càrregues de les adreces lui/addiu"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr "No optimitzar les càrregues de les adreces lui/addiu"
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
#, fuzzy
msgid "Use GNU as (now ignored)"
msgstr "Usar seccions sdata/sbss relatives a GP"
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
#, fuzzy
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "Usar seccions sdata/sbss relatives a GP"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
#, fuzzy
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "No usar seccions sdata/sbss relatives a GP"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
#, fuzzy
msgid "Output compiler statistics (now ignored)"
msgstr "Mostrar la sortida d'estadístiques del compilador"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "No mostrar la sortida d'estadístiques del compilador"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "No optimitzar els moviments de blocs"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "Optimitzar els moviments de blocs"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "Usar mips-tfile asm postpass"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "No usar mips-tfile asm postpass"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Usar coma flotant de programari"
@@ -11145,208 +11177,208 @@ msgstr "Usar coma flotant de programari"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "Usar coma flotant de maquinari"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "Usar registres FP de 64 bits"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "Usar registres FP de 32 bits"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "Usar registres generals de 64 bits"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "Usar registres generals de 32 bits"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Usar PIC de Irix"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "No usar PIC de Irix"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "Usar crides indirectes"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "No usar crides indirectes"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Usar ordre de bit big-endian"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Usar ordre de bit little-endian"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "Usar únicament una sola FP (32-bit)"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "No usar únicament una sola FP (32-bit)"
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "Usar instruccions de maquinari per a coma flotant"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "No usar instruccions MIPS16"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "Usar el acumulador de multiplicació"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "No usar el acumulador de multiplicació"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr "No generar instruccions multiply/add de curt circuit"
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "Generar instruccions multiply/add de curt circuit"
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
#, fuzzy
msgid "Perform VR4130-specific alignment optimizations"
msgstr "Realitzar optimitzacions de filat de salts"
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
#, fuzzy
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr "No realitzar optimització de la crida de l'extrem"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "Evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "No evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
#, fuzzy
msgid "Work around R4000 errata"
msgstr "Evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
#, fuzzy
msgid "Don't work around R4000 errata"
msgstr "No evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
#, fuzzy
msgid "Work around R4400 errata"
msgstr "Evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
#, fuzzy
msgid "Don't work around R4400 errata"
msgstr "No evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
#, fuzzy
msgid "Don't work around certain VR4120 errata"
msgstr "No evitar el bug del primer maquinari 4300"
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Atrapar la divisió entera per zero"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "No atrapar la divisió entera per zero"
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
#, fuzzy
msgid "Use trap to check for integer divide by zero"
msgstr "Atrapar la divisió entera per zero"
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
#, fuzzy
msgid "Use break to check for integer divide by zero"
msgstr "Atrapar la divisió entera per zero"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
#, fuzzy
msgid "Generate mips16 code"
msgstr "Generar codi SA"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
#, fuzzy
msgid "Generate normal-mode code"
msgstr "Generar codi SA"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "opcions activades: "
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "opcions activades: "
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr "Especificar el ISA de MIPS standard"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "anàlisi de perfil de les funcions mips16"
@@ -11373,70 +11405,70 @@ msgstr "suport per a function_profiler per a MMIX"
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:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX intern: Esperant un CONS_INT, no això"
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX intern: registre erroni: %d"
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
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:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX intern: Esperant un registre, no això"
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
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:1602
+#: config/mmix/mmix.c:1611
#, fuzzy, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr "MMIX intern: «case» \"%c\" faltant en mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX intern: aquest operand no es pot dexifrar"
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX intern: adreça no reconeguda"
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, 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:2127
+#: config/mmix/mmix.c:2133
#, 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:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, 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:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX intern: Intentant de mostrar una condició invertida de forma no vàlida:"
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX Internal: Quin és el CC per això"
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX Internal: Quin és el CC per això"
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX Internal: Això no és una constant:"
@@ -11509,16 +11541,16 @@ msgstr "Generar només un punt de sortida per a cada funció"
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/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "Apuntar al processador AM33"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
#, fuzzy
msgid "Target the AM33/2.0 processor"
msgstr "Apuntar al processador AM33"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr "Activar la relaxació del enllaçador"
@@ -11602,7 +11634,7 @@ msgstr "kludge de \"Classes de registre petites\""
msgid "No \"Small register classes\" kludge"
msgstr "No kludge de \"Classes de registre petites\""
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11611,7 +11643,7 @@ msgstr ""
"opció -mschedule= desconeguda (%s).\n"
"Les opcions vàlides són 700, 7100, 7100LC, 7200, 7300, i 8000\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11620,7 +11652,7 @@ msgstr ""
"opció -march= desconeguda (%s).\n"
"Les opcions vàlides són 1.0, 1.1, i 2.0\n"
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11629,7 +11661,7 @@ msgstr ""
"opció -march= desconeguda (%s).\n"
"Les opcions vàlides són 1.0, 1.1, i 2.0\n"
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11638,7 +11670,7 @@ msgstr ""
"opció -march= desconeguda (%s).\n"
"Les opcions vàlides són 1.0, 1.1, i 2.0\n"
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11647,27 +11679,32 @@ msgstr ""
"opció -march= desconeguda (%s).\n"
"Les opcions vàlides són 1.0, 1.1, i 2.0\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
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:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "La generació de codi PIC no és compatible amb les crides ràpides indirectes\n"
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
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:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr "opció -g desactivada"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr "Generar definicions cpp per a IO de servidor"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr "Generar definicions cpp per a IO d'estació de treball"
@@ -11815,11 +11852,11 @@ msgstr "Especifica el rang de registres a convertir en fixos"
msgid "Specify CPU for scheduling purposes."
msgstr "Especificar el CPU per a propòsits de calendarització"
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -11956,210 +11993,238 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr "escombraries al final de #pragma longcall"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple no té suport en sistemes little endian"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr "-mstringe no té suport en sistemes little endian"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "interruptor -mdebug-%s desconegut"
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "Opció -mlong-double-%s desconegut"
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, fuzzy, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "opció -misel= especificada desconeguda: \"%s\""
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ABI especificada desconeguda: \"%s\""
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "opció no vàlida \"-mshort-data-%s\""
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, fuzzy, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "opció -misel= especificada desconeguda: \"%s\""
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
msgid "argument 1 must be a 5-bit signed literal"
msgstr "l'argument 1 ha de ser una literal amb signe de 5-bit"
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr "l'argument 2 ha de ser una literal sense signe de 5-bit"
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "l'argument 1 de _builtin_altivec_predicate ha de ser una constant"
-#: config/rs6000/rs6000.c:6802
+#: config/rs6000/rs6000.c:6901
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "l'argument 1 de _builtin_altivec_predicate es fora de límits"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr "l'argument 3 ha de ser una literal sense signe de 4-bit"
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "l'argument per a \"%s\" ha de ser una literal sense signe de 2-bit"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "l'argument per a dss ha de ser una literal sense signe de 2-bit"
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr "l'argument 1 de __builtin__spe_predicate ha de ser una constant"
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7670
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "l'argument 1 de __builtin_spe_predicate està fora de límits"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "valor %%f no vàlid"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "valor %%F no vàlid"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "valor %%G no vàlid"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "valor %%j no vàlid"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "valor %%J no vàlid"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "valor %%k no vàlid"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "valor %%K no vàlid"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "valor %%O no vàlid"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "valor no vàlid per a %%q"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "valor %%S no vàlid"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "valor %%T no vàlid"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "valor %%u no vàlid"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "valor %%v no vàlid"
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "marc de pila massa grand: %d bytes"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/aix.h:203 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/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
-#: config/rs6000/aix.h:205 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/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "Suport per al pas de missatges amb l'Ambient Paral·lel"
@@ -12223,17 +12288,17 @@ msgstr "-maix64 requereix que l'arquitectura PowerPC64 romangui activada"
msgid "-m64 not supported in this configuration"
msgstr "%s no té suport en aquesta configuració"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
#, fuzzy
msgid "-m64 requires a PowerPC64 cpu"
msgstr "-maix64 requereix que l'arquitectura PowerPC64 romangui activada"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
#, fuzzy
msgid "Call mcount for profiling before a function prologue"
msgstr "No moure les instruccions al pròleg d'una funció"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
#, fuzzy
msgid "Call mcount for profiling after a function prologue"
msgstr "No moure les instruccions al pròleg d'una funció"
@@ -12391,7 +12456,7 @@ msgstr "Generar instruccions char"
msgid "Do not generate single field mfcr instruction"
msgstr "No generar instruccions char"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Usar característiques i calendaritzar el codi per al CPU donat"
@@ -12466,7 +12531,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "No es dóna suport a RETURN_ADDRESS_OFFSET"
@@ -12618,84 +12683,88 @@ msgstr "-mcall-aixdesc ha de ser big endian"
msgid "-m%s not supported in this configuration"
msgstr "%s no té suport en aquesta configuració"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, fuzzy, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "especificació de versió de cpu de CRIS desconeguda en -mtune= : %s"
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "no es dóna suport al mode trap en Unicos/Mk"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
#, fuzzy
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "el model de codi %s no té suport en el mode PIC"
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "valor erroni per a -mcall-%s"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "valor erroni per a -msdata=%s"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "valor erroni per a -msdata=%s"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr "No es pot descompondre l'adreça."
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr "UNKNOWN en print_operand !?"
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
#, fuzzy
msgid "Total size of local variables exceeds architecture limit."
msgstr "La grandària total de les variables locals excedeix els límits de l'arquitectura."
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "no es coneix la grandària d'emmagatzematge de \"%s\""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12795,29 +12864,29 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "no es dóna suport a _builtin_saveregs en aquest subobjectiu"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs 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:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs 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:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "l'argument de l'atribut \"%s\" no és una cadena entera"
@@ -12853,7 +12922,7 @@ msgstr "la variable \"%s\" està marcada com dllimport"
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr "revisió lang_*: ha fallat en %s, en %s:%d"
@@ -12865,183 +12934,183 @@ msgstr "revisió lang_*: ha fallat en %s, en %s:%d"
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:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s no té suport en aquesta configuració"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "no es permet -mlong-double-64 amb -m64"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= no té suport en sistemes de 32 bit"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "operand %%Y no vàlid"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "operand %%A no vàlid"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "operand %%B no vàlid"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "operand %%c no vàlid"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "operand %%C no vàlid"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "operand %%d no vàlid"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "operand %%D no vàlid"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "operand %%f no vàlid"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, c-format
msgid "invalid %%s operand"
msgstr "operand %%s no vàlid"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr "la constant long long no és un operand immediat vàlid"
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr "la constant de coma flotant no és un operand immediat vàlid"
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "Usar long doubles de 64 bit"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "Usar long doubles de 128 bits"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Generar codi per a big endian"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Generar codi per a little endian"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr "Usar l'ordre d'octet little-endian per a les dades"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "Assumir desalineació de double possible"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Assumir que tots els doubles estan alineats"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "Passar el text pur de -assert al enllaçador"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "No passar el text pur de -assert al enllaçador"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "Usar els registres ABI reservats"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "No usar els registres ABI reservats"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "Usar instruccions de fp quad de maquinari"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "No usar instruccions de fp quad de maquinari"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "Compilar per a el ABI de v8plus"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "No compilar per a el ABI de v8plus"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Utilitzar el Conjunt d'Instruccions Visuals"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "No utilitzar el Conjunt d'Instruccions Visuals"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "El punters són de 64 bits"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "El punters són de 32 bits"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "Usar el ABI 32 bits"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "Usar el ABI 64 bits"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "Usar tendència de la pila"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "No usar tendència de la pila"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
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:664
+#: config/sparc/sparc.h:670
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:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr "Optimitzar les instruccions de la crida extrem en l'ensamblador i l'enllaçador"
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "No optimitzar les instruccions de la crida extrem en l'ensamblador i l'enllaçador"
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr "Usar el model de codi del SPARC donat"
@@ -13158,65 +13227,65 @@ msgstr "escombraries al final del #pragma ghs endsda"
msgid "junk at end of #pragma ghs endzda"
msgstr "escombraries al final del #pragma ghs endzda"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s no és numèric"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s é massa gran"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr "const_double_split va rebre un insn erroni:"
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
#, fuzzy
msgid "%Jdata area attributes 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:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "l'àrea de dades de \"%s\" en conflicte amb una declaració prèvia"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "construcció JR ambigua: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, 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:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "construcció JARL ambigua: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "construcció DISPOSE ambigua: %d\n"
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "construcció PREPEARE ambigua: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr "Massa espai de pila per a preparar: %d"
@@ -13397,12 +13466,12 @@ msgstr "Usar instruccions CALLXn indirectes per a programes grans"
msgid "Use direct CALLn instructions for fast calls"
msgstr "Usar instruccions CALLn directes per a crides ràpides"
-#: ada/misc.c:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr "Falten arguments per a \"-%s\""
-#: ada/misc.c:299
+#: ada/misc.c:298
#, fuzzy
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr "\"-gnat\" mal lletrejat com \"-gant\""
@@ -13411,631 +13480,652 @@ msgstr "\"-gnat\" mal lletrejat com \"-gant\""
msgid "unable to call pointer to member function here"
msgstr "no es pot cridar un punter a una funció membre aquí"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <intern>"
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <intern>"
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <intern>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr "%s %T <conversió>"
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
#, fuzzy
msgid "%J%s %+#D"
msgstr "%s %+#D"
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "la conversió de \"%T\" a \"%T\" és ambigua"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
#, fuzzy
msgid "no matching function for call to %<%D(%A)%>"
msgstr "no hi ha una funció coincident per a la crida a \"%D(%A)\""
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
#, fuzzy
msgid "call of overloaded %<%D(%A)%> is ambiguous"
msgstr "la crida del \"%D(%A)\" sobrecarregat és ambigua"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2890
+#: cp/call.c:2896
#, 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:2959
+#: cp/call.c:2965
#, fuzzy
msgid "no match for call to %<(%T) (%A)%>"
msgstr "no hi ha coincidència per a la crida a \"(%T) (%A)\""
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "la crida de \"(%T) (%A)\" és ambigua"
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
#, fuzzy
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr "%s per a \"operator%s\" en \"%E%s\""
-#: cp/call.c:3015
+#: cp/call.c:3022
#, fuzzy
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr "%s per a \"operator%s\" en \"%E%s\""
-#: cp/call.c:3020
+#: cp/call.c:3027
#, fuzzy
msgid "%s for %qs in %<%s %E%>"
msgstr "%s per a \"operador%s\" en \"%s%E\""
-#: cp/call.c:3025
+#: cp/call.c:3032
#, fuzzy
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr "%s per a \"operador%s\" en \"%s%E\""
-#: cp/call.c:3028
+#: cp/call.c:3035
#, fuzzy
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr "%s per a \"operador%s\" en \"%s%E\""
-#: cp/call.c:3118
+#: cp/call.c:3125
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:3195
+#: cp/call.c:3202
#, fuzzy
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr "\"%E\" té tipus \"void\" i no és una expressió throw"
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr "els operands de ?: tenen tipus diferents"
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "no coincideix el enumeral en l'expressió condicional: \"%T\" vs \"%T\""
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "tipus enumeral i no enumeral en l'expressió condicional"
-#: cp/call.c:3700
+#: cp/call.c:3706
#, fuzzy
msgid "no %<%D(int)%> declared for postfix %qs, 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
+#: cp/call.c:3759
#, fuzzy
msgid "using synthesized %q#D for copy assignment"
msgstr "usant \"%#D\" sintetitzat per a assignació de còpia"
-#: cp/call.c:3755
+#: cp/call.c:3761
#, fuzzy
msgid " where cfront would use %q#D"
msgstr " on cfront podria usar \"%#D\""
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "comparança entre \"%#T\" i \"%#T\""
-#: cp/call.c:4044
+#: cp/call.c:4052
#, fuzzy
msgid "no suitable %<operator %s> for %qT"
msgstr "no hi ha un operador \"operator delete\" adequat per a \"%T\""
-#: cp/call.c:4061
+#: cp/call.c:4069
#, fuzzy
msgid "%q+#D is private"
msgstr "\"%+#D\" és privat"
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "\"%+#D\" està protegit"
-#: cp/call.c:4065
+#: cp/call.c:4073
#, fuzzy
msgid "%q+#D is inaccessible"
msgstr "\"%+#D\" és inaccessible"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr "des d'aquest context"
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "conversió no vàlida de \"%T\" a \"%T\""
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr " inicialitzant l'argument %P de \"%D\""
-#: cp/call.c:4300
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "passant NULL usat per al no punter %s %P de \"%D\""
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "%s al tipus \"%T\" que no és un punter des de NULL"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "en el pas de l'argument %P de \"%+D\""
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "convertint de \"%T\" a \"%T\""
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "passant el valor negatiu `%E' per a %s %P de \"%D\""
+
+#: cp/call.c:4203
+#, fuzzy
+msgid "converting negative value %qE to %qT"
+msgstr "%s de valor negatiu `%I' a \"%T\""
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "no es pot inicialitzar \"%T\" des de \"%T\""
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
#, fuzzy
msgid "cannot bind packed field %qE to %qT"
msgstr "no es pot declarar que el camp \"%D\" sigui de tipus \"%T\""
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "no es pot inicialitzar \"%T\" des de \"%T\""
-#: cp/call.c:4401
+#: cp/call.c:4460
#, fuzzy
msgid "cannot pass objects of non-POD type %q#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:4427
+#: cp/call.c:4486
#, fuzzy
msgid "cannot receive objects of non-POD type %q#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ó"
-#: cp/call.c:4470
+#: cp/call.c:4529
#, fuzzy
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "l'argument per omissió per al paràmetre del tipus \"%T\" té el tipus \"%T\""
-#: cp/call.c:4675
+#: cp/call.c:4734
#, fuzzy
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr "passar \"%T\" com l'argument \"this\" de \"%#D\" descarta als qualificadors"
-#: cp/call.c:4694
+#: cp/call.c:4753
#, fuzzy
msgid "%qT is not an accessible base of %qT"
msgstr "\"%T\" no és una base inaccessible de \"%T\""
-#: cp/call.c:4944
+#: cp/call.c:5003
#, fuzzy
msgid "could not find class$ field in java interface type %qT"
msgstr "no es va poder trobar un camp class$ en el tipus d'interfície java \"%T\""
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "cridada a \"%D\" que no és funció"
-#: cp/call.c:5231
+#: cp/call.c:5288
#, fuzzy
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr "sol·licitud pel membre \"%D\" en \"%E\" el qual és del tipus no agregat \"%T\""
-#: cp/call.c:5310
+#: cp/call.c:5367
#, fuzzy
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr "no es troba una funció coincident per a la cridada a \"%T::%D(%A)%#V\""
-#: cp/call.c:5328
+#: cp/call.c:5385
#, fuzzy
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr "la cridada del \"%D(%A)\" sobrecarregat és ambigua"
-#: cp/call.c:5352
+#: cp/call.c:5409
#, fuzzy
msgid "cannot call member function %qD without object"
msgstr "no es pot cridar a la funció membre \"%D\" sense un objecte"
-#: cp/call.c:5957
+#: cp/call.c:6014
#, fuzzy
msgid "passing %qT chooses %qT over %qT"
msgstr "passar \"%T\" escull \"%T\" sobre \"%T\""
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr " en la crida a \"%D\""
-#: cp/call.c:6016
+#: cp/call.c:6073
#, fuzzy
msgid "choosing %qD over %qD"
msgstr "escollint \"%D\" sobre \"%D\""
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr " per a la conversió de \"%T\" a \"%T\""
-#: cp/call.c:6019
+#: cp/call.c:6076
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:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr ""
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "no es pot convertir \"%E\" a \"%T\""
-#: cp/call.c:6411
+#: cp/call.c:6469
#, fuzzy
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr "const_cast no vàlid d'un rvalue de tipus \"%T\" al tipus \"%T\""
-#: cp/call.c:6415
+#: cp/call.c:6473
#, fuzzy
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr "initialització no vàlida de reference de tipus \"%T\" a partir d'una expressió de tipus \"%T\""
-#: cp/class.c:273
+#: cp/class.c:272
#, fuzzy
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr "no es pot convertir de la base \"%T\" al tipus derivat \"%T\" a través de la base virtual \"%T\""
-#: cp/class.c:898
+#: cp/class.c:929
#, fuzzy
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgid "Java class %qT cannot have a destructor"
msgstr "la classe base \"%#T\" té un destructor no virtual"
-#: cp/class.c:899
+#: cp/class.c:931
#, fuzzy
-msgid "Java class %qT cannot have a destructor"
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr "la classe base \"%#T\" té un destructor no virtual"
-#: cp/class.c:998
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "no es poden sobrecarregar \"%#D\" i \"%#D\""
-#: cp/class.c:1055
+#: cp/class.c:1088
#, fuzzy
msgid "conflicting access specifications for method %qD, ignored"
msgstr "especificacions d'accés en conflicte per al mètode \"%D\", ignorat"
-#: cp/class.c:1058
+#: cp/class.c:1091
#, fuzzy, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr "especificacions d'accés en conflicte per al camp \"%s\", ignorat"
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "\"%D\" nomena al constructor"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "\"%D\" no vàlid en \"%#T\""
-#: cp/class.c:1121
+#: cp/class.c:1154
#, fuzzy
msgid "no members matching %qD in %q#T"
msgstr "no hi ha membres que coincideixin amb \"%D\" en \"%#T\""
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "\"%D\" no vàlid en \"%#T\""
-#: cp/class.c:1154
+#: cp/class.c:1187
#, fuzzy
msgid " because of local method %q#D with same name"
msgstr " a causa del mètode local \"%D\" amb el mateix nom"
-#: cp/class.c:1162
+#: cp/class.c:1195
#, fuzzy
msgid " because of local member %q#D with same name"
msgstr " a causa del membre local \"%D\" amb el mateix nom"
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "la classe base \"%#T\" té un destructor no virtual"
-#: cp/class.c:1226
-#, fuzzy
-msgid "base %qT 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:1534
+#: cp/class.c:1551
#, fuzzy
msgid "all member functions in class %qT are private"
msgstr "tots les funcions membres en la classe \"%#T\" són privades"
-#: cp/class.c:1545
+#: cp/class.c:1562
#, fuzzy
msgid "%q#T only defines a private destructor and has no friends"
msgstr "\"%#T\" solament defineix un destructor privat i no té friends"
-#: cp/class.c:1585
+#: cp/class.c:1602
#, fuzzy
msgid "%q#T only defines private constructors and has no friends"
msgstr "\"%#T\" solament defineix constructors privats i no té friends"
-#: cp/class.c:1923
+#: cp/class.c:1935
#, fuzzy
msgid "no unique final overrider for %qD in %qT"
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:2379
+#: cp/class.c:2409
#, fuzzy
msgid "%qD was hidden"
msgstr "\"%D\" estava amagat"
-#: cp/class.c:2380
+#: cp/class.c:2410
#, fuzzy
msgid " by %qD"
msgstr " per \"%D\""
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
#, fuzzy
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr "\"%D\" no vàlid; un union anònim només pot tenir membres amb dades no estàtiques"
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
#, fuzzy
msgid "private member %q#D in anonymous union"
msgstr "membre privat \"%D\" en union anònima"
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
#, fuzzy
msgid "protected member %q#D in anonymous union"
msgstr "membre protegit \"%D\" en union anònima"
-#: cp/class.c:2545
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "camp de bits \"%D\" amb tipus no enter"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "l'amplària del camp de bits \"%D\" no és una constant entera"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "amplària negativa en el camp de bit \"%D\""
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "amplària zero per al camp de bits \"%D\""
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "l'amplària de \"%D\" excedeix el seu tipus"
-#: cp/class.c:2649
+#: cp/class.c:2671
#, fuzzy
msgid "%qD is too small to hold all values of %q#T"
msgstr "\"%D\" és massa petit per a guardar tots els valors de \"%#T\""
-#: cp/class.c:2711
+#: cp/class.c:2731
#, fuzzy
msgid "member %q#D with constructor not allowed in union"
msgstr "no es permet el membre \"%D\" amb constructor en la union"
-#: cp/class.c:2714
+#: cp/class.c:2734
#, fuzzy
msgid "member %q#D with destructor not allowed in union"
msgstr "no es permet el membre \"%D\" amb destructor en la union"
-#: cp/class.c:2717
+#: cp/class.c:2737
#, fuzzy
msgid "member %q#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:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "múltiples camps inicialitzats en la unió \"%#T\""
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
msgstr "\"%D\" ha de ser una funció membre que no sigui static"
-#: cp/class.c:2875
+#: cp/class.c:2886
#, fuzzy
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr "\"%D\" ha de ser una funció membre que no sigui static"
-#: cp/class.c:2884
+#: cp/class.c:2895
#, fuzzy
msgid "field %qD in local class cannot be static"
msgstr "el camp \"%D\" en la classe local no pot ser static"
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "el camp \"%D\" és declarat no vàlidament com un tipus de funció"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "el camp \"%D\" és declarat no vàlidament com un tipus de mètode"
-#: cp/class.c:2929
+#: cp/class.c:2939
#, fuzzy
msgid "non-static reference %q#D in class without a constructor"
msgstr "referència \"%D\" que no és static en una classe sense un constructor"
-#: cp/class.c:2977
+#: cp/class.c:2986
#, fuzzy
msgid "non-static const member %q#D in class without a constructor"
msgstr "membre const \"%D\" que no és static en una classe sense un constructor"
-#: cp/class.c:2992
+#: cp/class.c:3001
#, fuzzy
msgid "field %q#D with same name as class"
msgstr "camp \"%D\" amb el mateix nom que la classe"
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "\"%#T\" té membres punters a dades"
-#: cp/class.c:3030
+#: cp/class.c:3038
#, fuzzy
msgid " but does not override %<%T(const %T&)%>"
msgstr " però no s'imposa a \"%T(const %T&)\""
-#: cp/class.c:3032
+#: cp/class.c:3040
#, fuzzy
msgid " or %<operator=(const %T&)%>"
msgstr " o a \"operator=(cont %T&)\""
-#: cp/class.c:3035
+#: cp/class.c:3043
#, fuzzy
msgid " but does not override %<operator=(const %T&)%>"
msgstr " però no s'imposa a \"operator=(const %T&)\""
-#: cp/class.c:3468
+#: cp/class.c:3476
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3588
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "es va especificar un inicialitzador per al mètode no virtual \"%D\""
-#: cp/class.c:4321
+#: cp/class.c:4333
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4432
#, fuzzy
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr "base directa \"%T\" inaccessible en \"%T\" a causa d'ambigüitat"
-#: cp/class.c:4432
+#: cp/class.c:4444
#, fuzzy
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr "base virtual \"%T\" inaccessible en \"%T\" a causa d'ambigüitat"
-#: cp/class.c:4603
+#: cp/class.c:4621
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4683
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4693
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "redefinició de \"%#T\""
-#: cp/class.c:5019
+#: cp/class.c:5042
#, fuzzy
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr "\"%#T\" té funcions virtuals però destructors no virtuals"
-#: cp/class.c:5114
+#: cp/class.c:5139
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 d'errors previs de decodificació"
-#: cp/class.c:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "cadena de llenguatge \"\"%s\"\" no reconeguda"
-#: cp/class.c:5617
+#: cp/class.c:5642
#, fuzzy
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr "no es pot resoldre la funció sobrecarregada \"%D\" basant-se en la conversió al tipus \"%T\""
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
msgstr "no hi ha coincidències al convertir la funció \"%D\" al tipus \"%#T\""
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr "la conversió de la funció sobrecarregada \"%D\" al tipus \"%#T\" és ambigua"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "assumint el punter a membre \"%D\""
-#: cp/class.c:5794
+#: cp/class.c:5819
#, fuzzy
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:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "no hi ha suficient informació de tipus"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "l'argument de tipus \"%T\" no coincideix amb \"%T\""
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "operació no vàlida en tipus no instanciat"
@@ -14044,12 +14134,12 @@ msgstr "operació no vàlida en tipus no instanciat"
#. 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "la declaració de \"%#D\""
-#: cp/class.c:6273
+#: cp/class.c:6269
#, fuzzy
msgid "changes meaning of %qD from %q+#D"
msgstr "canvia el significat de \"%D\" a partir de \"%+#D\""
@@ -14074,194 +14164,204 @@ msgstr "no es pot convertir \"%E\" des del tipus \"%T\" al tipus \"%T\""
msgid "pointer to member cast from %qT to %qT 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:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "la conversió de \"%T\" a \"%T\" descarta els qualificadors"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "la conversió de \"%T\" a \"%T\" no dereferencia els punters"
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "no es pot convertir del tipus \"%T\" al tipus \"%T\""
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "conversió de \"%#T\" a \"%#T\""
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
#, fuzzy
msgid "%q#T used where a %qT was expected"
msgstr "es va usar un \"%#T\" on s'esperava un \"%T\""
-#: cp/cvt.c:718
+#: cp/cvt.c:717
#, fuzzy
msgid "%q#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:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "es va sol·licitar la conversió des de \"%T\" al tipus no escalar \"%T\""
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "l'argument per a l'atribut \"%s\" és més gran que %d"
+
+#: cp/cvt.c:857
#, fuzzy
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr "l'objecte de tipus incomplet \"%T\" no es accesará en %s"
-#: cp/cvt.c:856
+#: cp/cvt.c:860
#, fuzzy
msgid "object of type %qT will not be accessed in %s"
msgstr "l'objecte de tipus \"%T\" no es accesará en %s"
-#: cp/cvt.c:872
+#: cp/cvt.c:876
#, fuzzy
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, 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:894
+#: cp/cvt.c:898
#, fuzzy, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr "%s és una referència, no una cridada, a la funció \"%E\""
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, fuzzy, c-format
msgid "%s has no effect"
msgstr "%s no té %s"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "l'autòmat \"%s\" no s'utilitza"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr "convertint NULL a un tipus que no és punter"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
#, fuzzy
msgid "ambiguous default type conversion from %qT"
msgstr "conversió de tipus per omissió ambigua des de \"%T\""
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
#, fuzzy
msgid " candidate conversions include %qD and %qD"
msgstr " les conversions candidates inclouen \"%D\" i \"%D\""
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "s'usa l'etiqueta \"%D\" però no està definida"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "s'usa l'etiqueta \"%D\" però no està definida"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "\"%s\" va ser declarat \"extern\" i després \"static\""
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "declaració prèvia de \"%D\""
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "funció \"%s\" re declarada com «inline»"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "declaració prèvia de la funció \"%s\" amb l'atribut «noinline»"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "funció \"%s\" re-declarada amb l'atribut «noinline»"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "la declaració prèvia de la funció \"%s\" va ser «inline»"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "enfosquint la funció de biblioteca \"%#D\""
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "la funció de biblioteca \"%#D\" és redeclarada com \"%#D\" que no és funció"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "causa conflicte amb la declaració interna \"%#D\""
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "declaració nova \"%#D\""
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "fa ambigua la declaració interna \"%#D\""
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "\"%#D\" redeclarat com un tipus diferent de símbol"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "declaració prèvia de \"%#D\""
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "declaració del patró \"%#D\""
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "causa conflictes amb la declaració prèvia \"%#D\""
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "fa ambigua la declaració antiga \"%#D\""
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "la declaració de la funció C \"%#D\" té conflictes amb"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "declaració prèvia de \"%#D\" aquí"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "declaracions de \"%s\" en conflicte"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "declaració prèvia com \"%#D\""
@@ -14273,78 +14373,78 @@ msgstr "declaració prèvia com \"%#D\""
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "la declaració de la funció C \"%#D\" té conflictes amb"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "declaració prèvia de \"%#D\" aquí"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "es va definir \"%#D\" prèviament aquí"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "es va declarar \"%#D\" prèviament aquí"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "el prototip per a \"%#D\""
-#: cp/decl.c:1495
+#: cp/decl.c:1360
#, fuzzy
msgid "%Jfollows non-prototype definition here"
msgstr "a continuació la definició del no prototip aquí"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "declaració prèvia de \"%#D\" amb l'enllaç %L"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "té conflictes amb la declaració nova amb l'enllaç %L"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "argument per omissió donat per al paràmetre %d de \"%#D\""
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "després de l'especificació prèvia en \"%#D\""
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "es va usar \"%#D\" abans que sigui declarat «inline»"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "declaració prèvia no «inline» aquí"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "declaració redundant de \"%D\" en el mateix àmbit"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "la declaració de \"%F\" llança excepcions diferents"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "que la declaració prèvia \"%F\""
@@ -14357,252 +14457,252 @@ msgstr "que la declaració prèvia \"%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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "especialització explícita de %D després del primer ús"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "causa conflictes amb la declaració prèvia \"%#D\""
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "l'etiqueta %s es referenciada fora de qualsevol funció"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "salt a l'etiqueta \"%D\""
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "salt a l'etiqueta «case»"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
#, fuzzy
msgid "%H from here"
msgstr " des d'aquí"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr " creua la inicialització de \"%#D\""
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
#, fuzzy
msgid " enters scope of non-POD %q#D"
msgstr " entra en l'àmbit de \"%#D\" que no és POD"
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " entra intent de bloc"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " entra captura de bloc"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " des d'aquí"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
#, fuzzy
msgid "%J enters catch block"
msgstr " entra captura de bloc"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr " salta la inicialización de \"%#D\""
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr "etiqueta nomenada wchar_t"
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "etiqueta duplicada \"%D\""
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "s'usa \"%D\" sense paràmetres de patró"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
#, fuzzy
msgid "no class template named %q#T in %q#T"
msgstr "no hi ha una patró de classe cridada \"%#T\" en \"%#T\""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "no hi ha un tipus cridat \"%#T\" en \"%#T\""
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "els paràmetres del patró no poden ser friends"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr " \"%#D\" declarat aquí"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
#, fuzzy
msgid "%Jan anonymous union cannot have function members"
msgstr "un union anònim no pot tenir funcions membre"
-#: cp/decl.c:3466
+#: cp/decl.c:3362
#, fuzzy
msgid "member %q#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:3470
+#: cp/decl.c:3366
#, fuzzy
msgid "member %q#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:3474
+#: cp/decl.c:3370
#, fuzzy
msgid "member %q#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:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "tipus múltiples en una declaració"
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "redeclaració del tipus intern de C++ \"%T\""
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr "falta el nom del tipus en la declaració typedef"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ prohibeix structs anònims"
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "\"%D\" només pot ser especificat per a funcions"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
msgstr "\"%D\" només pot ser especificat dintre d'una classe"
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "\"%D\" només pot ser especificat per a constructors"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "\"%D\" només pot ser especificat per a objectes i funcions"
-#: cp/decl.c:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers can only be specified for objects and functions"
msgstr "\"%D\" només pot ser especificat per a objectes i funcions"
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "declaració friend prèvia de \"%D\""
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "la funció \"%#D\" està inicialitzada com una variable"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "la declaració de \"%#D\" té \"extern\" i està inicialitzada"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "\"%#D\" no és un membre static de \"%#T\""
-#: cp/decl.c:3772
+#: cp/decl.c:3671
#, fuzzy
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:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "inicialització duplicada de %D"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "la declaració de \"%#D\" fora de la classe no és una definició"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "la variable \"%#D\" té inicializador però de tipus de dada incompleta"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "alguns elements de la matriu \"%#D\" tenen tipus de dada incompleta"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "l'agregat \"%#D\" té un tipus incomplet i no es pot definir"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
msgstr "\"%D\" declarat com referència però no està inicialitzat"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ISO C++ prohibeix l'ús d'una llista de inicialitzadors per a inicialitzar la referència \"%D\""
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "no es pot inicialitzar \"%T\" des de \"%T\""
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "l'inicializador no pot determinar la grandària de \"%D\""
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "falta la grandària de la matriu en \"%D\""
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "matriu \"%D\" de grandària zero"
@@ -14610,687 +14710,710 @@ 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "no es coneix la grandària d'emmagatzematge de \"%D\""
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "la grandària d'emmagatzematge de \"%D\" no és constant"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
#, fuzzy
msgid "sorry: semantics of inline function static data %q#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:4145
+#: cp/decl.c:4046
#, fuzzy
msgid "%J you can work around this by removing the initializer"
msgstr " pot evitar això eliminant l'inicializador"
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "const \"%D\" sense inicialitzar"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "es va utilitzar un inicialitzador entre parèntesis per a inicialitzar \"%T\""
-#: cp/decl.c:4376
+#: cp/decl.c:4280
#, fuzzy
msgid "initializer for %qT must be brace-enclosed"
msgstr "l'inicialitzador per a \"%T\" ha d'estar tancat entre parèntesis"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ no permet inicialitzadors designats"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "\"%T\" té una dada membre que no és non-static cridada \"%D\""
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "massa inicialitzadors per a \"%T\""
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "l'objecte de grandària variable \"%D\" no pot ser inicialitzat"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "\"%D\" té un tipus de dada incompleta"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
#, fuzzy
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr "\"%D\" ha de ser inicialitzat per un constructor, no per \"{...}\""
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "_Pragma duu una cadena literal entre parèntesis"
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "estructura \"%D\" amb membres const sense inicialitzar"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "estructura \"%D\" amb membres de referència sense inicialitzar"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "assignació (no inicialització) en la declaració"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "no es poden inicialitzar \"%D\" per a l'espai de noms \"%D\""
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "enfosquint la declaració de tipus prèvia de \"%#D\""
-#: cp/decl.c:4900
+#: cp/decl.c:4815
#, fuzzy
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr "\"%D\" no pot ser thread-local perquè és de tipus \"%T\" que no és POD"
-#: cp/decl.c:4915
+#: cp/decl.c:4830
#, fuzzy
msgid "%qD 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:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "el destructor per a la classe estrangera \"%T\" no pot ser un membre"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "el constructor per a la classe estrangera \"%T\" no pot ser un membre"
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
msgstr "\"%D\" va ser declarat com un %s \"virtual\""
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
msgstr "\"%D\" va ser declarat com un %s \"inline\""
-#: cp/decl.c:5550
+#: cp/decl.c:5474
#, fuzzy
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr "especificadors de funció \"const\" i \"volatile\" en \"%D\" no vàlids en la declaració %s"
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "\"%D\" declarat com un friend"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "\"%D\" declarat amb una excepció d'especificació"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "no es pot declarar \"::main\" com template"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "no es pot declarar \"::main\" com «inline»"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "no es pot declarar \"::main\" com static"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "\"main\" ha de retornar \"int\""
-#: cp/decl.c:5681
+#: cp/decl.c:5608
#, fuzzy
msgid "non-local function %q#D uses anonymous type"
msgstr "la funció \"%#D\" que no és local usa un tipus anònim"
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
#, fuzzy
msgid "%q#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:5690
+#: cp/decl.c:5617
#, fuzzy
msgid "non-local function %q#D uses local type %qT"
msgstr "la funció \"%#D\" que no és local utilitza el tipus local \"%T\""
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "%sfunció membre \"%D\" no pot tenir el qualificador de mètode \"%T\""
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD 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:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "ús no vàlid de l'aneu de patró \"%D\" en la declaració del patró primàri"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
#, fuzzy
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr "no es permeten els argument per omissió en la declaració de l'especialització friend del patró \"%D\""
-#: cp/decl.c:5783
+#: cp/decl.c:5710
#, fuzzy
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr "no es permet \"inline\" en la declaració de l'especialització friend del patró \"%D\""
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
msgstr "la definició de \"%D\" declarat implícitament"
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "no hi ha una funció membre \"%#D\" declarada en la classe \"%T\""
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
#, fuzzy
msgid "non-local variable %q#D uses anonymous type"
msgstr "la funció \"%#D\" que no és local usa un tipus anònim"
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "la funció \"%#D\" que no és local utilitza el tipus local \"%T\""
-#: cp/decl.c:6150
+#: cp/decl.c:6070
#, fuzzy
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr "ISO C++ prohibeix la inicialització del membre constant \"%D\" del tipus \"%T\" que no és enter"
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "ISO C++ prohibeix la inicialización en la classe del membre static \"%D\" que no és constant"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "ISO C++ prohibeix la inicialització del membre constant \"%D\" del tipus \"%T\" que no és enter"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "la grandària de la matriu \"%D\" té un tipus no enter"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "la grandària de la matriu té un tipus no enter"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "la grandària de la matriu \"%D\" és negatiu"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "la grandària de la matriu és negatiu"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO C++ prohibeix la matriu \"%D\" de grandària zero"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C++ prohibeix la matriu de grandària zero"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "la grandària de la matriu \"%D\" no és una expressió constant integral"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
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:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO C++ prohibeix la matriu \"%D\" de grandària variable"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C++ prohibeix la matriu de grandària variable"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "desbordament en la dimensió de la matriu"
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "declaración de \"%D\" com %s"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr "creant %s"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
#, fuzzy
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr "la declaració de \"%D\" com una matriu multidimensional ha de tenir límits per a totes les dimensions excepte la primera"
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr "una matriu multidimensional ha de tenir límits per a totes les dimensions excepte per a la primera"
-#: cp/decl.c:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr "l'especificació del tipus de retorn per al constructor no és vàlid"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr "l'especificació del tipus de retorn per al destructor no és vàlid"
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "l'operador \"%T\" es va declarar per a retornar \"%T\""
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "es va especificar un tipus de retorn per a \"operator %T\""
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "variable sense nom o camp declarat void"
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "variable o camp \"%s\" declarat void"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "variable o camp declarat void"
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "el tipus \"%T\" no és derivat del tipus \"%T\""
-#: cp/decl.c:6674
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
-msgid "declarator-id missing; using reserved word %qD"
-msgstr "falta l'identificador del declarador; utilitzant la paraula reservada \"%D\""
+msgid "declaration of %qD as non-function"
+msgstr "la declaració de \"%D\" com una no funció"
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6563
#, fuzzy
-msgid "declaration of %qD as non-function"
+msgid "declaration of %qD as non-member"
msgstr "la declaració de \"%D\" com una no funció"
-#: cp/decl.c:6763
+#: cp/decl.c:6593
+#, fuzzy
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "falta l'identificador del declarador; utilitzant la paraula reservada \"%D\""
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "dos o més tipus de dades en la declaració de \"%s\""
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++ no dóna suport a \"long long\""
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO C++ prohibeix la declaració de \"%s\" sense tipus"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "short, signed o unsigned no vàlid per a \"%s\""
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "long, short, signed o unsigned no vàlids per a \"%s\""
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "long i short especificats junts per a \"%s\""
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "s'especifica long o short amb char per a \"%s\""
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "s'especifica long o short amb tipus floating per a \"%s\""
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "es van donar junts signed i unsigned per a \"%s\""
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "ús no vàlid de long, short, signed o unsigned per a \"%s\""
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "complex no vàlid per a \"%s\""
-#: cp/decl.c:7003
+#: cp/decl.c:6922
#, fuzzy
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr "no es permeten qualificadors en la declaració de \"operator %T\""
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "qualificadors no vàlids en el tipus de funció no membre"
+
+#: cp/decl.c:6957
#, fuzzy
msgid "member %qD cannot be declared both virtual and static"
msgstr "\"%D\" no es pot declarar virtual, ja que sempre és static"
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "\"%T::%D\" no és una declaració vàlida"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "declaració typedef no vàlida en la declaració de paràmetres"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr "especificadors de classe d'emmagatzematge no vàlids en les declaracions de paràmetres"
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "declaració de virtual fora de class"
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "múltiples classes d'emmagatzematge en la declaració de \"%s\""
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "classe d'emmagatzematge especificada per %s \"%s\""
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "la declaració del nivell superior de \"%s\" especifica \"auto\""
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr "especificadors de classe d'emmagatzematge no vàlids en les declaracions de funcions friend"
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "el destructor no pot ser una funció membre de tipus static"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "els destructors no poden ser \"%s\""
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "el constructor no pot ser una funció membre de tipus static"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "els constructors no poden ser declarats virtual"
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "els constructors no poden ser \"%s\""
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "no es pot inicialitzar la funció friend \"%s\""
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "les funcions virtuals no poden ser friend"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "la declaració friend no està en una definició de classe"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "no es pot definir la funció friend \"%s\" en una definició de classe local"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr "els destructors no poden tenir paràmetres"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "no es poden declarar referències a \"%#T\""
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "no es pot declarar un punter a \"%#T\""
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "no es pot declarar un punter al membre \"%#T\""
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "\"%D\" és un nom d'espai"
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
msgstr "l'identificador de patró \"%D\" s'usa com un declarador"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
#, fuzzy
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr "s'ignora la qualificació extra `%T::' en el membre \"%s\""
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
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:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "no es pot declarar el membre \"%T::%s\" dintre de \"%T\""
-#: cp/decl.c:7570
+#: cp/decl.c:7520
#, fuzzy
msgid "data member may not have variably modified type %qT"
msgstr "l'argument de patró \"%T\" és un tipus modificat variablement"
-#: cp/decl.c:7572
+#: cp/decl.c:7522
#, fuzzy
msgid "parameter may not have variably modified type %qT"
msgstr "l'argument de patró \"%T\" és un tipus modificat variablement"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
#, fuzzy
msgid "only declarations of constructors can be %<explicit%>"
msgstr "solament les declaracions de constructors poden ser \"explicit\""
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "el no-membre \"%s\" no pot ser declarat \"mutable\""
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "el membre non-objecte \"%s\" no pot ser declarat \"mutable\""
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "la funció \"%s\" no pot ser declarada \"mutable\""
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "static \"%s\" no pot ser declarat \"mutable\""
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "const \"%s\" no pot ser declarat \"mutable\""
-#: cp/decl.c:7627
-#, fuzzy
-msgid "ISO C++ forbids nested type %qD 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:7636
+#: cp/decl.c:7579
#, fuzzy
msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr "el nom de la definició de tipus pot no ser qualificada per a la classe"
-#: cp/decl.c:7689
+#: cp/decl.c:7595
#, fuzzy
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "qualificador de tipus no vàlid per al tipus de funció no membre"
+msgid "ISO C++ forbids nested type %qD 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:7752
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "el tipus de retorn d'una funció no pot ser una funció"
+
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr "es van especificar qualificadors de tipus en una declaració de classe friend"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "es va especificar \"inline\" per a la declaració de classe friend"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
msgid "template parameters cannot be friends"
msgstr "els paràmetres del patró no poden ser friends"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
#, fuzzy
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:7771
+#: cp/decl.c:7739
#, fuzzy
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:7784
+#: cp/decl.c:7752
#, fuzzy
msgid "trying to make class %qT a friend of global scope"
msgstr "tractant fer que la classe \"%T\" sigui un friend d'àmbit global"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr "qualificadors no vàlids en el tipus de funció no membre"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "el declarador abstracte \"%T\" es va utilitzar com una declaració"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
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:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "ús no vàlid de \"::\""
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "la funció \"%D\" no pot ser declarada friend"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
#, fuzzy
msgid "can't make %qD 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:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "la funció \"%s\" es va declarar virtual dintre d'un union"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD cannot be declared virtual, since it is always static"
msgstr "\"%D\" no es pot declarar virtual, ja que sempre és static"
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "la declaració de \"%s\" obscurece a un membre de \"this\""
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "el camp \"%D\" té tipus de dada incompleta"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "el nom \"%T\" té tipus de dada incompleta"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr " en la instanciació det patró \"%T\""
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE 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:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "les funcions membres són implícitament friends de la seva classe"
@@ -15306,92 +15429,92 @@ msgstr "les funcions membres són implícitament friends de la seva 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ISO C++ prohibeix la inicialización del membre \"%D\""
-#: cp/decl.c:8080
+#: cp/decl.c:8053
#, fuzzy
msgid "making %qD static"
msgstr "fent a \"%D\" static"
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "la classe d'emmagatzematge \"auto\" no és vàlida per a la funció \"%s\""
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "la classe d'emmagatzematge \"register\" no és vàlida per a la funció \"%s\""
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "la classe d'emmagatzematge \"__thread\" no és vàlida per a la funció \"%s\""
-#: cp/decl.c:8153
+#: cp/decl.c:8126
#, fuzzy
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr "la classe d'emmagatzematge \"inline\" no és vàlida per a la funció \"%s\" declarada fora de l'àmbit global"
-#: cp/decl.c:8156
+#: cp/decl.c:8129
#, fuzzy
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr "la classe d'emmagatzematge \"inline\" no és vàlida per a la funció \"%s\" declarada fora de l'àmbit global"
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "la funció virtual \"%s\" no és classe"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD 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:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr "no es pot declarar una funció static dintre d'altra funció"
-#: cp/decl.c:8231
+#: cp/decl.c:8204
#, fuzzy
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:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
msgstr "es va declarar el membre static \"%D\" com \"register\""
-#: cp/decl.c:8243
+#: cp/decl.c:8216
#, fuzzy
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr "no es pot declarar explícitament que el membre \"%#D\" tingui un enllaçat extern"
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "l'argument per omissió de \"%#D\" té tipus \"%T\""
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "l'argument per omissió per al paràmetre del tipus \"%T\" té el tipus \"%T\""
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "l'argument per omissió \"%E\" usa la variable local \"%D\""
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "el paràmetre \"%D\" es va declarar no vàlidament com tipus de mètode"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
#, fuzzy
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr "el paràmetre \"%D\" inclou %s per a la matriu \"%T\" de límit desconegut"
@@ -15411,132 +15534,132 @@ msgstr "el paràmetre \"%D\" inclou %s per a la matriu \"%T\" de límit desconegut
#. 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:8657
+#: cp/decl.c:8630
#, fuzzy
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr "constructor no vàlid; tal vegada va voler dir \"%T (const %T&)\""
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "\"%D\" no es va declarar en aquest àmbit"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "\"%#D\" no pot ser declarat"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "\"%D\" ha de ser una funció membre que no sigui static"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD must be either a non-static member function or a non-member function"
msgstr "\"%D\" ha de ser una funció membre no estàtic o una funció no membre"
-#: cp/decl.c:8827
+#: cp/decl.c:8800
#, fuzzy
msgid "%qD must have an argument of class or enumerated type"
msgstr "\"%D\" ha de tenir un argument de tipus classe o enumerat"
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, 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:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ prohibeix la sobrecàrrega de l'operador ?:"
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
msgstr "el postfix \"%D\" ha de prendre \"int\" com el seu argument"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
msgstr "el postfix \"%D\" ha de prendre \"int\" com el seu segon argument"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "\"%D\" ha de prendre zero o un argument"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "\"%D\" ha de prendre un o dos arguments"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
#, fuzzy
msgid "prefix %qD should return %qT"
msgstr "el prefix \"%D\" ha de regressar \"%T\""
-#: cp/decl.c:8960
+#: cp/decl.c:8933
#, fuzzy
msgid "postfix %qD should return %qT"
msgstr "el postfix \"%D\" ha de regressar \"%T\""
-#: cp/decl.c:8969
+#: cp/decl.c:8942
#, fuzzy
msgid "%qD must take %<void%>"
msgstr "\"%D\" ha de prendre \"void\""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
msgstr "\"%D\" ha de prendre un argument exactament"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "\"%D\" ha de prendre dos arguments exactament"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
#, fuzzy
msgid "user-defined %qD always evaluates both arguments"
msgstr "el \"%D\" definit per l'usuari sempre avalua ambdós arguments"
-#: cp/decl.c:9003
+#: cp/decl.c:8976
#, fuzzy
msgid "%qD should return by value"
msgstr "\"%D\" ha de regressar per valor"
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "\"%D\" no pot tenir arguments per omissió"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "usant el paràmetre de tipus patró \"%T\" després de \"%s\""
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
msgstr "usant el nom de definició de tipus \"%D\" després de \"%s\""
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "declaració prèvia com \"%#D\""
-#: cp/decl.c:9094
+#: cp/decl.c:9073
#, fuzzy
msgid "%qT referred to as %qs"
msgstr "\"%#D\" redeclarat com %C"
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "%Jaixò és una declaració prèvia"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
#, fuzzy
msgid "%qT referred to as enum"
msgstr "\"%#D\" redeclarat com %C"
@@ -15548,57 +15671,61 @@ msgstr "\"%#D\" redeclarat com %C"
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "es requereix un argument de patró per a \"%T\""
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "ús del enum \"%#D\" sense declaració prèvia"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "la declaració de \"%D\" com una no funció"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
#, fuzzy
msgid "derived union %qT invalid"
msgstr "union derivada \"%T\" no vàlida"
-#: cp/decl.c:9397
+#: cp/decl.c:9389
#, fuzzy
msgid "Java class %qT cannot have multiple bases"
msgstr "la classe base \"%#T\" té un destructor no virtual"
-#: cp/decl.c:9405
+#: cp/decl.c:9397
#, fuzzy
msgid "Java class %qT cannot have virtual bases"
msgstr "la classe base \"%#T\" té un destructor no virtual"
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT fails to be a struct or class type"
msgstr "el tipus base \"%T\" falla a ser un tipus struct o classe"
-#: cp/decl.c:9457
+#: cp/decl.c:9449
#, fuzzy
msgid "recursive type %qT undefined"
msgstr "tipus recursivo \"%T\" sense definir"
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "tipus base duplicat \"%T\" no vàlid"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "definició múltiple de \"%#T\""
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "definició prèvia aquí"
@@ -15607,79 +15734,79 @@ msgstr "definició prèvia aquí"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "el valor de enumerador per a \"%D\" no és una constant entera"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "desbordament en valors d'enumeració en \"%D\""
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "el tipus de retorn \"%#T\" és un tipus de dada incompleta"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
#, fuzzy
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr "\"operator=\" ha de retornar una referència a \"*this\""
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "el paràmetre \"%D\" es va declarar void"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "declaració del patró membre \"%D\" no vàlida"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "\"%D\" ja es va definir en la classe \"%T\""
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "la funció membre static \"%#D\" és declarada amb qualificadors de tipus"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "falta el nom per a la funció membre"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "conversió ambigua per a índex de matriu"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
#, fuzzy
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr "tipus no vàlids \"%T[%T]\" per a índex de matriu"
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "esborrant la matriu \"%#D\""
-#: cp/decl2.c:432
+#: cp/decl2.c:429
#, fuzzy
msgid "type %q#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:444
+#: cp/decl2.c:441
#, fuzzy
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:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "esborrar \"%T\" està indefinit"
@@ -15687,197 +15814,191 @@ msgstr "esborrar \"%T\" està indefinit"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "declaració no vàlida del patró membre \"%#D\" en la classe local"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "ús no vàlid de \"virtual\" en la declaració de patró de \"%#D\""
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "declaració en patró de \"%#D\""
-#: cp/decl2.c:556
+#: cp/decl2.c:553
#, fuzzy
msgid "Java method %qD has non-Java return type %qT"
msgstr "el mètode Java \"%D\" té un tipus de retorn \"%T\" que no és de Java"
-#: cp/decl2.c:572
+#: cp/decl2.c:569
#, fuzzy
msgid "Java method %qD has non-Java parameter type %qT"
msgstr "el mètode Java \"%D\" té un tipus de paràmetre \"%T\" que no és de Java"
-#: cp/decl2.c:677
+#: cp/decl2.c:674
#, fuzzy
msgid "prototype for %q#D does not match any in class %qT"
msgstr "el prototip per a \"%#D\" no coincideix amb cap altre en la classe \"%T\""
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "la classe local \"%#T\" no ha de tenir el membre static \"%#D\""
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "inicializador no vàlid per al membre static amb constructor"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(es requereix una inicialització fora de la classe)"
-#: cp/decl2.c:870
+#: cp/decl2.c:867
#, fuzzy
msgid "member %qD 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:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "\"%D\" ja està definit en \"%T\""
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "l'inicializador del camp no és constant"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
#, fuzzy
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:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "no es pot declarar \"%D\" que sigui un tipus de camp de bits"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "no es pot declarar el camp de bits \"%D\" amb un tipus de funció"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "\"%D\" ja està definit en la classe %T"
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "el membre static \"%D\" no pot ser un camp de bits"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "es va especificar un inicialitzador per a la funció no-membre \"%D\""
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "inicialitzador no vàlid per al mètode virtual \"%D\""
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "struct anònim no es troba dintre d'un tipus nomenat"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
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:1213
+#: cp/decl2.c:1171
#, fuzzy
msgid "anonymous union with no members"
msgstr "agregat anònim sense membres"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "\"operator new\" ha de retornar el tipus \"%T\""
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "\"operator new\" pren el tipus \"size_t\" (\"%T\") com primer argument"
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "\"operator delete\" ha de retornar el tipus \"%T\""
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "\"operator delete\" pren el tipus \"%T\" com primer argument"
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "s'usa la funció «inline» \"%D\" però mai es va definir"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "falta l'argument per omissió per al paràmetre %P de \"%+#D\""
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, fuzzy, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr "lletra \"%c\" inesperada en locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
#, fuzzy
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr "el tipus \"%T\" no està permès en \"throw\" o \"catch\" de Java"
-#: cp/except.c:250
+#: cp/except.c:273
#, fuzzy
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:257
+#: cp/except.c:280
#, fuzzy
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr "el tipus \"%T\" no és derivat de \"java::lang::Throwable\""
-#: cp/except.c:320
+#: cp/except.c:343
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:576
+#: cp/except.c:602
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:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
#, fuzzy
msgid "%qD should never be overloaded"
msgstr "\"%D\" ha de regressar per valor"
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " en expressió thrown"
-#: cp/except.c:810
+#: cp/except.c:836
#, fuzzy
msgid "expression %qE of abstract class type %qT 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:895
+#: cp/except.c:921
#, fuzzy
msgid "%Hexception of type %qT will be caught"
msgstr "l'excepció del tipus \"%T\" serà atrapada"
-#: cp/except.c:897
+#: cp/except.c:923
#, fuzzy
msgid "%H by earlier handler for %qT"
msgstr " per un gestor anterior per a \"%T\""
-#: cp/except.c:927
+#: cp/except.c:953
#, fuzzy
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr "el gestor \"...\" ha de ser l'últim gestor per al seu bloc try"
@@ -15965,212 +16086,220 @@ msgstr "(si aquesta no és la seva intenció, asseguri's qu'el patró de la funció
msgid "argument to '%s' missing\n"
msgstr "falta l'argument per a `%s'\n"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "inicialització de la dada membre no vàlida"
-#: cp/init.c:363
+#: cp/init.c:373
#, fuzzy
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr "l'inicialització per omissió de \"%#D\", el qual té el tipus de referència"
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "membre referència \"%D\" sense inicialitzar"
-#: cp/init.c:372
+#: cp/init.c:382
#, fuzzy
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr "const \"%D\" sense inicialitzar"
-#: cp/init.c:515
+#: cp/init.c:525
#, fuzzy
msgid "%qD will be initialized after"
msgstr "\"%D\" s'inicialitzarà després"
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "la base \"%T\" s'inicialitzarà després"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr " \"#%D\""
-#: cp/init.c:523
+#: cp/init.c:533
#, fuzzy
msgid " base %qT"
msgstr " base \"%T\""
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr "\"%D\" s'inicialitzarà després"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "es van donar inicialitzacions múltiples per a \"%D\""
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "es van donar inicialitzacions múltiples per a la base \"%T\""
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "inicialitzacions per a múltiples membres de \"%T\""
-#: cp/init.c:667
+#: cp/init.c:677
#, fuzzy
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr "la classe base \"%#T\" ha de ser inicialitzada explícitament en la còpia del constructor"
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
#, fuzzy
msgid "class %qT does not have any field named %qD"
msgstr "la classe \"%T\" no té cap camp cridat \"%D\""
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "el camp \"%#D\" és static; l'únic punt d'inicialització és la seva definició"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "\"%#D\" no és un membre static de \"%#T\""
-#: cp/init.c:943
+#: cp/init.c:953
#, fuzzy
msgid "unnamed initializer for %qT, which has no base classes"
msgstr "inicialitzador sense nom per a \"%T\", el qual no té una classe base"
-#: cp/init.c:951
+#: cp/init.c:961
#, fuzzy
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr "inicialitzador sense nom per a \"%T\", el qual usa herència múltiple"
-#: cp/init.c:997
+#: cp/init.c:1007
#, fuzzy
msgid "%qD is both a direct base and an indirect virtual base"
msgstr "el tipus \"%D\" no és una base directa o virtual de \"%T\""
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
msgstr "el tipus \"%D\" no és una base directa o virtual de \"%T\""
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "el tipus \"%D\" no és una base directa de \"%T\""
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "inicialitzador de matriu erroni"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "\"%T\" no és un tipus agregat"
-#: cp/init.c:1379
+#: cp/init.c:1389
#, fuzzy
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr "el tipus qualificat \"%T\" no coincideix amb el nom del destructor \"~%T\""
-#: cp/init.c:1387
+#: cp/init.c:1397
#, fuzzy
msgid "incomplete type %qT does not have member %qD"
msgstr "el tipus incomplet \"%T\" no té al membre \"%D\""
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "\"%D\" no és un membre de tipus \"%T\""
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "punter no vàlid al camp de bit \"%D\""
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "ús no vàlid del camp no static \"%D\""
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "ús no vàlid del camp no static \"%D\""
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr "la grandària de la matriu nova ha de tenir un tipus integral"
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr "la matriu de grandària zero no reserva espai"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "new no pot ser aplicat a un tipus de referència"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "new no pot ser aplicat a una funcció de referència"
-#: cp/init.c:1679
+#: cp/init.c:1700
#, fuzzy
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr "cridada a constructor Java, mentre \"jclass\" està indefinit"
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr "no es pot trobar class$"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "tipus \"void\" no vàlid per a new"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "const sense inicialitzar en \"new\" de \"%#T\""
-#: cp/init.c:1867
+#: cp/init.c:1888
#, fuzzy, c-format
msgid "call to Java constructor with %qs undefined"
msgstr "cridada a constructor Java amb \"%s\" sense definir"
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "a petició per al membre \"%D\" és ambigua"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ prohibeix la inicialització en la matriu new"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "l'inicialitzador acaba prematurament"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "no es poden inicialitzar matrius multidimensionals amb l'inicialitzador"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "grandària de matriu desconeguda en delete"
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr "el tipus de vector delete no és del tipus punter ni matriu"
@@ -16246,16 +16375,20 @@ msgstr ""
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr "el codi de thunk genèric ha fallat per al mètode \"%#D\" que utilitza \"...\""
-#: cp/method.c:650
+#: cp/method.c:657
#, fuzzy
msgid "non-static const member %q#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:656
+#: cp/method.c:663
#, fuzzy
msgid "non-static reference member %q#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ó"
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16358,67 +16491,61 @@ msgstr "%s: %s: "
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "\"%#D\" amaga el destructor per a \"%#T\""
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "\"%#D\" causa conflicte amb la declaració prèvia en ús \"%#D\""
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "la declaració prèvia \"%#D\" que no és funció"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "causa conflicte amb la declaració de la funció \"%#D\""
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "\"%T\" no és un nom d'espai"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
#, fuzzy
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/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "no es permet l'espai de noms \"%D\" en la declaració d'ús"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "no es va declarar \"%D\""
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "\"%D\" ja es va declarar en aquest àmbit"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
#, fuzzy
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr "l'ús de la declaració \"%D\" va introduir el tipus ambigu \"%T\""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr "declaració d'ús per a un no membre en l'àmbit de la classe"
@@ -16427,339 +16554,346 @@ msgstr "declaració d'ús per a un no membre en l'àmbit de la classe"
msgid "using-declaration cannot name destructor"
msgstr "declaració d'ús per al destructor"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "la declaració de \"%D\" no està en un espai de noms al voltant de \"%D\""
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "instanciació explícita de \"%#D\""
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
#, fuzzy
msgid "%qD should have been declared inside %qD"
msgstr "\"%D\" deuria ser declarat dintre de \"%D\""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "no es permet aquí l'alies de l'espai de noms \"%D\", assumint que és \"%D\""
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "espai de noms \"%D\" desconegut"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "espai de noms \"%T\" sense declarar"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "s'ignora la directiva d'atribut \"%s\""
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "l'ús de \"%D\" és ambigu"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr " declarat inicialment com \"%#D\" aquí"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr " també declarat com \"%#D\" aquí"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
#, fuzzy
msgid "%qD denotes an ambiguous type"
msgstr "\"%D\" denota un tipus ambigu"
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
#, fuzzy
msgid "%J first type here"
msgstr " primer tipus aquí"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
#, fuzzy
msgid "%J other type here"
msgstr " altre tipus aquí"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "ús no vàlid de \"%D\""
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "\"%D::%D\" no és un patró"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "\"%D\" no declarat en l'espai de noms \"%D\""
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "\"%D\" no és una funció,"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr " té conflicte amb \"%D\""
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "ja s'ha desat #pragma %s"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "\"%#D\" no pot ser declarat"
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "\"%#D\" no pot ser declarat"
-#: cp/parser.c:1818
+#: cp/parser.c:1842
#, fuzzy
msgid "request for member %qD in non-class type %qT"
msgstr "sol·licitud pel membre \"%D\" en \"%E\", el qual és del tipus no agregat \"%T\""
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "\"%#D\" no pot ser declarat"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "\"%#D\" no pot ser declarat"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
#, fuzzy
msgid "%<%D::%D%> %s"
msgstr "accés \"%D\""
-#: cp/parser.c:1829
+#: cp/parser.c:1853
#, fuzzy
msgid "%<::%D%> %s"
msgstr "accés \"%D\""
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr "accés \"%D\""
-#: cp/parser.c:1884
+#: cp/parser.c:1907
#, fuzzy
msgid "new types may not be defined in a return type"
msgstr "new no pot ser aplicat a un tipus de referència"
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "manca punt i coma després de la declaració de \"%T\""
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "\"%T\" no és un patró"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "\"%T\" no és un patró"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "rotació de insn no vàlida"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "desbordament en la constant implícita"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "ús no vàlid del nom de patró \"%E\" en un declarador"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "\"%T\" no és un tipus de classe"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
#, fuzzy
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr " (usi \"typename %T::%D\" si això és el que volia)"
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, fuzzy, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr "\"%T\" no és un tipus de classe"
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "\"%T\" no és un tipus de classe"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ prohibeix grups de parèntesis dintre de les expressions"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
#, fuzzy
msgid "statement-expressions are allowed only inside functions"
msgstr "un grup de claus dintre d'una expressió només es permet dintre d'una funció"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "\"%D\" no es va declarar en aquest àmbit"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
#, fuzzy
msgid "local variable %qD may not appear in this context"
msgstr "\"%D\" no es va declarar en aquest àmbit"
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
msgstr "l'identificador de patró \"%D\" s'usa com un declarador"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
#, fuzzy
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ prohibeix literals composats"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "la grandària de la matriu nova ha de tenir un tipus integral"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "la matriu de grandària zero no reserva espai"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
#, fuzzy
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "la grandària de la matriu nova ha de tenir un tipus integral"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "ús de la conversió d'estil antic"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "l'etiqueta «case» \"%E\" no es troba dintre d'una declaració «switch»"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ prohibeix gotos calculats"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "\"%s\" duplicat"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
#, fuzzy
msgid "class definition may not be declared a friend"
msgstr "la funció \"%D\" no pot ser declarada friend"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr ""
-#: cp/parser.c:7585
+#: cp/parser.c:7692
#, fuzzy
msgid "anachronistic old-style base class initializer"
msgstr "inicialitzador de classe base d'estil antic anacrònic"
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
#, fuzzy
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "la paraula clau \"export\" no està implementada, i serà ignorada"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "l'objecte \"%E\" no es pot usar com un argument de patró"
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "l'objecte \"%E\" no es pot usar com un argument de patró"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
msgstr "s'usa un no-patró com patró"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
#, fuzzy
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr "identificador de patró \"%D\" en la declaració del patró primari"
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "declaració en patró de \"%#D\""
+
+#: cp/parser.c:9688
#, fuzzy
msgid "using %<typename%> outside of template"
msgstr "usant \"typename\" fora de la plantilla"
-#: cp/parser.c:9677
-#, fuzzy
-msgid "expected type-name"
-msgstr "operand inesperat"
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
#, fuzzy
msgid "type attributes are honored only at type definition"
msgstr "l'atribut \"%s\" sol es pot aplicar a definicions de classe"
@@ -16767,116 +16901,126 @@ msgstr "l'atribut \"%s\" sol es pot aplicar a definicions de classe"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
#, fuzzy
msgid "a template-id may not appear in a using-declaration"
msgstr "no es permet l'espai de noms \"%D\" en la declaració d'ús"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10597
#, fuzzy
msgid "attributes are not allowed on a function-definition"
msgstr "la variable de registre global segueix a una definició de funció"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
#, fuzzy
msgid "attributes after parenthesized initializer ignored"
msgstr "atributs en el declarador de paràmetres de matriu ignorats"
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "el subindici de la matriu no és un enter"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "\"%D::%D\" no és un patró"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "ús no vàlid del patró \"%D\""
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "valor d'un «case» duplicat"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "%Hlectura de final de fitxer dintre de l'argument per defecte"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
#, fuzzy
msgid "deprecated use of default argument for parameter of non-function"
msgstr "argument per omissió donat per al paràmetre %d de \"%#D\""
-#: cp/parser.c:11858
+#: cp/parser.c:11980
#, fuzzy
msgid "default arguments are only permitted for function parameters"
msgstr "argument per omissió donat per al paràmetre %d de \"%#D\""
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "declaració del patró membre \"%D\" no vàlida"
+
+#: cp/parser.c:12733
#, fuzzy
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr "declaració de \"%D\" en \"%D\" la qual no inclou a \"%D\""
-#: cp/parser.c:12611
+#: cp/parser.c:12746
#, fuzzy
msgid "extra qualification ignored"
msgstr "s'ignora la qualificació extra \"%T::\" en el membre \"%D\""
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "especialització explícita no precedida per \"template <>\""
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "definició prèvia de \"%#T\""
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
#, fuzzy
msgid "friend declaration does not name a class or function"
msgstr "la declaració friend no està en una definició de classe"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
#, fuzzy
msgid "keyword %<typename%> not allowed outside of templates"
msgstr "usant \"typename\" fora de la plantilla"
-#: cp/parser.c:13395
+#: cp/parser.c:13547
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr "usant \"typename\" fora de la plantilla"
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "paràmetre de captura no vàlid"
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "l'ús de \"%D\" és ambigu"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
#, fuzzy
msgid "too few template-parameter-lists"
msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\""
@@ -16885,177 +17029,177 @@ msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
#, fuzzy
msgid "too many template-parameter-lists"
msgstr "massa llistes de paràmetres de patró en la declaració de \"%D\""
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "declarador no vàlid"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "--driver ja no té suport"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "declaració en patró de \"%#D\""
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
#, fuzzy
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr "\">>\" ha de ser \"> >\" en el nom de classe del patró"
-#: cp/parser.c:15063
+#: cp/parser.c:15233
#, fuzzy
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr "falta parèntesi dret en la llista de paràmetres de macro"
-#: cp/parser.c:15068
+#: cp/parser.c:15238
#, fuzzy
msgid "missing %<>%> to terminate the template argument list"
msgstr "falta parèntesi dret en la llista de paràmetres de macro"
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
msgstr "es va usar la marca \"%s\" al nomenar a\"%#T\""
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "\"%#D\" redeclarat com un tipus diferent de símbol"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "no s'ha implementat encara profiling"
-#: cp/pt.c:240
+#: cp/pt.c:241
#, fuzzy
msgid "data member %qD cannot be a member template"
msgstr "les dades membres \"%D\" no poden ser un patró membre"
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "declaració del patró membre \"%D\" no vàlida"
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "especialització explícita en l'àmbit \"%D\" que no és espai de noms"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr "les patrons de classe contingudes no són especialitzades explícitament"
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
msgstr "especialitzant \"%#T\" en diferents espais de noms"
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr " de la definició de \"%#D\""
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "especialització de \"%T\" després de la instanciació"
-#: cp/pt.c:738
+#: cp/pt.c:739
#, fuzzy
msgid "specializing %q#T in different namespace"
msgstr "especialitzant \"%#T\" en diferents espais de noms"
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "especialització de \"%T\" després de la instanciació \"%T\""
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "especialització explícita de \"%T\" que no és patró"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "especialització de %D després de la instanciació"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "\"%D\" no és un patró de funció"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
#, fuzzy
msgid "template-id %qD for %q+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:1542
+#: cp/pt.c:1543
#, fuzzy
msgid "ambiguous template specialization %qD for %q+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:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "identificador de patró \"%D\" en la declaració del patró primari"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
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:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr "es proveeix una definició per a instanciació explícita"
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "massa llistes de paràmetres de patró en la declaració de \"%D\""
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\""
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "especialització explícita no precedida per \"template <>\""
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr "es va especificar un argument per omissió en l'especialització explícita"
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr "especialització de patró amb enllaç C"
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "\"%D\" no és una funció patró membre"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -17064,67 +17208,61 @@ msgstr "especialització de patró amb enllaç C"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr "especialització de la funció membre especial declarada implícitament"
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "la funció no membre \"%D\" es va declarar en \"%T\""
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "massa llistes de paràmetres de patró en la declaració de \"%T\""
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr " enfosquen el paràmetre de patró \"%#D\""
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr "no s'usen els paràmetres de patró en l'especialització parcial:"
-#: cp/pt.c:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
msgstr " \"%D\""
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "l'especialització parcial \"%T\" no especialitza cap argument de patró"
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, fuzzy, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr "l'argument de patró \"%E\" involucra el(s) paràmetre(s) de patró"
-#: cp/pt.c:2710
+#: cp/pt.c:2685
#, fuzzy
msgid "type %qT of template argument %qE 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:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "no hi ha un argument per omissió per a \"%D\""
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr "patró amb enllaç C"
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr "classe de patró sense nom"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
msgstr "les dades membres \"%D\" no poden ser un patró membre"
@@ -17134,62 +17272,67 @@ msgstr "les dades membres \"%D\" no poden ser un patró membre"
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "declaració del patró membre \"%D\" no vàlida"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "\"%D\" no declara un tipus de patró"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "definició de patró de \"%#D\" que no és patró"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "s'esperaven %d nivells de paràmetres de patró per a \"%#D\", es van obtenir %d"
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "es van obtenir %d paràmetres de patró per a \"%#D\""
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "es van obtenir %d paràmetres de patró per a \"%#T\""
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " però es requereixen %d"
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "\"%T\" no és un tipus patró"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\""
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "declaració prèvia de \"%D\""
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, 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:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "paràmetre de patró \"%#D\""
-#: cp/pt.c:3249
+#: cp/pt.c:3235
#, fuzzy
msgid "redeclared here as %q#D"
msgstr "redeclarat aquí com \"%#D\""
@@ -17198,346 +17341,356 @@ msgstr "redeclarat aquí com \"%#D\""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "redefinició de l'argument per omissió per a \"%#D\""
-#: cp/pt.c:3260
+#: cp/pt.c:3246
#, fuzzy
msgid "%J original definition appeared here"
msgstr " la definició original apareix aquí"
-#: cp/pt.c:3370
+#: cp/pt.c:3342
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because function %qD has not external 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:3411
+#: cp/pt.c:3383
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
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:3486
+#: cp/pt.c:3458
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
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:3536
+#: cp/pt.c:3508
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
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:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
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:3576
+#: cp/pt.c:3548
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because object %qD has not external 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:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "\"%E\" no és un argument de patró vàlid"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "\"%E\" no és un argument de patró vàlid"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
#, fuzzy
msgid "standard conversions are not allowed in this context"
msgstr "\"%D\" no es va declarar en aquest àmbit"
-#: cp/pt.c:3827
+#: cp/pt.c:3799
#, fuzzy
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:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr "no coincideix el tipus/valor en l'argument %d en la llista de paràmetres de patró per a \"%D\""
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr " s'esperava una constant de tipus \"%T\", es va obtenir \"%T\""
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr " s'esperava un patró de classe, es va obtenir \"%T\""
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr " s'esperava un tipus, es va obtenir \"%E\""
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr " s'esperava un tipus, es va obtenir \"%T\""
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr " s'esperava un patró de classe, es va obtenir \"%T\""
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
msgstr " s'esperava un patró de tipus \"%D\", es va obtenir \"%D\""
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "no es pot convertir l'argument de patró \"%E\" a \"%T\""
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, 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:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "proveït per \"%D\""
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, c-format
msgid "template argument %d is invalid"
msgstr "l'argument de patró %d no és vàlid"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr "s'usa un no-patró com patró"
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "s'usa el tipus \"%T\" que és no-patró com patró"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "per a la declaració de patró \"%D\""
-#: cp/pt.c:5018
+#: cp/pt.c:4982
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
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:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "instanciació de patró classe ambigua per a \"%#T\""
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "instanciació de \"%D\" com tipus \"%T\""
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "tipus de paràmetre \"%T\" no vàlid"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "en la declaració \"%D\""
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "la funció retorna un agregat"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "\"%s\" que és declarat com funció retorna una funció"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "creant un punter a funció membre del tipus \"%T\" que no és classe"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "creant la matriu amb grandària zero"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "creant la matriu amb grandària zero (\"%E\")"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr "formant la referència a void"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "formant %s per a referenciar al tipus \"%T\""
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "creant un punter al membre del tipus \"%T\" que no és classe"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "creant un punter al membre de referència de tipus \"%T\""
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "creant la matriu de \"%T\""
-#: cp/pt.c:7297
+#: cp/pt.c:7286
#, fuzzy
msgid "creating array of %qT, which is an abstract class type"
msgstr "inicialitzador sense nom per a \"%T\", el qual no té una classe base"
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "\"%T\" no és de tipus classe, struct o union"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "inicialitzador sense nom per a \"%T\", el qual no té una classe base"
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "ús de \"%s\" en el patró"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, fuzzy, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr "s'usa \"%D\" com un tipus, però no està definit com un tipus."
-#: cp/pt.c:7557
+#: cp/pt.c:7556
#, fuzzy
msgid "say %<typename %E%> if a type is meant"
msgstr " (usi \"typename %T::%D\" si això és el que volia)"
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "%s: nom de fitxer no vàlid: %s\n"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "\"%T\" no és un nom d'espai"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "\"%D\" no és un nom d'espai"
-#: cp/pt.c:8844
+#: cp/pt.c:8872
#, fuzzy
-msgid "%qT uses anonymous type"
+msgid "%qT is/uses anonymous type"
msgstr "l'argument de patró \"%T\" usa un tipus anònim"
-#: cp/pt.c:8846
+#: cp/pt.c:8874
#, fuzzy
msgid "%qT uses local type %qT"
msgstr "l'argument de patró \"%T\" usa el tipus local \"%T\""
-#: cp/pt.c:8854
+#: cp/pt.c:8883
#, fuzzy
msgid "%qT is a variably modified type"
msgstr "l'argument de patró \"%T\" és un tipus modificat variablement"
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "la grandària d'emmagatzematge de \"%D\" no és constant"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr " tractant d'instanciar \"%D\""
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "unificació de tipus incomplet"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "instanciació explícita de \"%#D\" que no és patró"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
#, fuzzy
msgid "no matching template for %qD found"
msgstr "no es troba una patró coincident per a \"%D\""
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "instanciació explícita de \"%#D\""
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "instanciació explícita duplicada de \"%#D\""
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
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:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "classe d'emmagatzematge \"%D\" aplicada a la instanciació d'un patró"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "instanciació explícita del tipus \"%T\" del tipus no-patró"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "instanciació explícita de \"%#T\" abans de la definició del patró"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr "ISO C++ prohibeix l'ús de \"%s\" en les instanciacions explícites"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "instanciació explícita duplicada de \"%#T\""
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "instanciació explícita de \"%D\" però no hi ha una definició disponible"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
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:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#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ó"
@@ -17556,25 +17709,25 @@ msgstr "informació de \"repository\" misteriosa en %s"
msgid "can't create repository information file %qs"
msgstr "no es pot crear el fitxer d'informació de \"repository\" \"%s\""
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "no es pot usar typeid sense -fno-rtti"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "ha de fer #include <typeinfo> abans d'usar typeid"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
#, fuzzy
msgid "cannot create type information for type %qT 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:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
#, fuzzy
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr "dynamic_cast de \"%#D\" a \"%#T\" mai podrà tenir èxit"
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "no es pot fer dynamic_cast \"%E\" (de tipus \"%#T\") al tipus \"%#T\" (%s)"
@@ -17589,239 +17742,234 @@ msgstr "\"%T\" és una base ambigua de \"%T\""
msgid "%qT is an inaccessible base of %qT"
msgstr "\"%T\" és una base inaccessible de \"%T\""
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "tipus de retorn covariant no vàlid per a \"%#D\""
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
#, fuzzy
msgid " overriding %q#D"
msgstr " substituint \"%#D\""
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "tipus de retorn covariant no vàlid per a \"%#D\""
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "tipus de retorn en conflicte especificats per a \"%#D\""
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "especificador thrown més flexible per a \"%#F\""
-#: cp/search.c:1867
+#: cp/search.c:1876
#, fuzzy
msgid " overriding %q#F"
msgstr " substituint \"%#F\""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "\"%#D\" no pot ser declarat"
-#: cp/search.c:1961
+#: cp/search.c:1970
#, fuzzy
msgid " since %q#D declared in base class"
msgstr " ja que es va declarar \"%#D\" en la classe base"
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "no es pot determinar el tipus de l'operand asm \"%E\""
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "ús no vàlid del membre \"%D\" en la funció membre static"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "falta un objecte en \"%E\""
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "l'argument per a l'atribut \"%s\" és més gran que %d"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "\"this\" no està disponible per a funcions membre static"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "ús no vàlid de \"this\" en la funció no membre"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "ús no vàlid de \"this\" en el nivell principal"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
#, fuzzy
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "qualificadors no vàlids en el tipus de funció no membre"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "\"%E\" no és de tipus \"%T\""
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
#, fuzzy
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr "els paràmetres de tipus patró ha d'usar la paraula clau \"class\" o \"typename\""
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró"
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
#, fuzzy
msgid "invalid default argument for a template template parameter"
msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "definició de \"%#T\" dintre d'una llista de paràmetres de patró"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "definició no vàlida del tipus qualificat \"%T\""
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "definició prèvia de \"%#T\""
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
msgid "invalid base-class specification"
msgstr "especificació de classe base no vàlida"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "la classe base \"%T\" té qualificadors cv"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
#, fuzzy
msgid "incomplete type %qT used in nested name specifier"
msgstr "el tipus incomplet \"%T\" no es pot utilitzar per a nomenar un àmbit"
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "l'ús de \"%D\" és ambigu"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "\"%D\" no és un membre de \"%T\""
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "\"%D\" no és un membre de \"%T\""
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "la grandària de la matriu \"%D\" no és una expressió constant integral"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "ús de l'espai de noms \"%D\" com una expressió"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "ús de la plantilla de classe \"%T\" com una expressió"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr "la petició pel membre \"%D\" és ambigua en la xarxa d'herència múltiple"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr "ús de %s des d'una funció contenidora"
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr " \"%#D\" declarat aquí"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "el tipus de \"%E\" és desconegut"
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "els qualificadors \"%V\" no es poden aplicar a \"%T\""
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE 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:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "l'atribut \"%s\" sol es pot aplicar a definicions de classe"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, fuzzy, c-format
msgid "%qE 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:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "la init_priority sol·licitada no és una constant entera"
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, fuzzy, c-format
msgid "can only use %qE 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:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "la init_priority sol·licitada està fora de límits"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr "la init_priority sol·licitada està reservada per a ús intern"
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "l'atribut \"%s\" no té suport en aquesta plataforma"
@@ -17841,214 +17989,214 @@ msgstr "ISO C++ prohibeix %s entre punters de tipus \"void *\" i punters a funci
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "%s entre diferents tipus de punter \"%T\" i \"%T\" manca d'una conversió"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "aplicació no vàlida de \"%s\" a una funció membre"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "applicació no vàlida de \"%s\" a un tipus void"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO C++ prohibeix l'aplicació de \"sizeof\" a una expressió de tipus de funció"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "ús no vàlid del membre \"%D\" en la funció membre static"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "conversió obsoleta d'una constant de cadena a \"%T\""
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
#, fuzzy
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr "sol·licitud pel membre \"%D\" en \"%E\", el qual és del tipus no agregat \"%T\""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "ús no vàlid del camp no static \"%D\""
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
#, fuzzy
msgid "invalid access to non-static data member %qD of NULL object"
msgstr "accés no vàlid a dades del membre que no és static \"%D\" de l'objecte NULL"
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
#, fuzzy
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr "el tipus qualificat \"%T\" no coincideix amb el nom del destructor \"~%T\""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "\"%D::%D\" no és un membre de \"%T\""
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "\"%T\" no és una base de \"%T\""
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "\"%D\" no té un membre cridat \"%E\""
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD 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:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "\"%T\" no és de tipus punter-a-objecte"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "ús no vàlid de \"%s\" en punter a membre"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "argument de tipus no vàlid"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "falta subindici en la referència de la matriu"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ prohibeix el subindici d'una matriu de l-valors"
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "es va declarar el subindici de la matriu com \"register\""
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "falta un objecte en \"%E\""
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C++ prohibeix la crida \"::main\" dintre del mateix programa"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
#, fuzzy
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr "es ha d'usar .* o ->* en la crida a la funció punter-a-membre en \"%E (...)\""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "no es pot usar \"%E\" com una funció"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "massa arguments per a %s \"%+#D\""
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "en aquest punt en el fitxer"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "massa arguments per a la funció"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "el paràmetre \"%s\" té tipus de dada incompleta"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "el paràmetre té tipus incomplet"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "molt pocs arguments per a %s \"%+#D\""
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "molt pocs arguments per a la funció"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "assumint la conversió al tipus \"%T\" des de la funció sobrecarregada"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "divisió per zero en \"%E / 0\""
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "divisió per zero en \"%E / 0.\""
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "divisió per zero en \"%E %% 0\""
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "divisió per zero en \"%E %% 0.\""
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "el compte de rotació %s és negatiu"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "el compte de rotació %s >= amplària del tipus"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ prohibeix la comparança entre punters i enters"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "comparança sense ordre en argument de coma no flotant"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "operadors no vàlids de tipus \"%T\" i \"%T\" per al binari \"%O\""
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "comparança entre els tipus \"%#T\" i \"%#T\""
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "comparança entre expressions enteres signed i unsigned"
@@ -18056,150 +18204,150 @@ msgstr "comparança entre expressions enteres signed i unsigned"
#. 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr "es va usar NULL en l'aritmètica"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
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:3535
+#: cp/typeck.c:3491
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:3537
+#: cp/typeck.c:3493
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:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "ús no vàlid d'un punter a un tipus incomplet en aritmètica de punters"
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, fuzzy, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr "avisar quan el tipus converteix punters a funcions membre"
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "prenent l'adreça del temporal"
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ prohibeix %sing un enum"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "no es pot %s un punter a un tipus incomplet \"%T\""
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C++ prohibeix %sing un punter de tipus \"%T\""
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
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:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "ús no vàlid de \"--\" en la variable booleana \"%D\""
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
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:4050
+#: cp/typeck.c:4006
#, fuzzy
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized 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:4055
+#: cp/typeck.c:4011
#, 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++ prohibeix prendre l'adreça d'una funció membre límitada per a formar un punter a la funció membre. Com \"&%T::%D\""
-#: cp/typeck.c:4083
+#: cp/typeck.c:4039
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:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "es va intentar prendre l'adreça del membre de l'estructura de camps de bits \"%s\""
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr "prenent l'adreça del destructor"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr "prenent l'adreça de l'expressió límitada punter-a-membre"
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "no es pot crear un punter al membre referència \"%D\""
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
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:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "es va sol·licitar l'adreça de la variable register \"%s\""
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
#, fuzzy
msgid "address requested for %qD, which is declared %<register%>"
msgstr "es va sol·licitar l'adreça de \"%D\", el qual es va declarar com \"register\""
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, fuzzy, c-format
msgid "%s expression list treated as compound expression"
msgstr "la llista d'inicialitzadors es tracta com una expressió compostada"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
#, fuzzy
msgid "%s from type %qT to type %qT casts away constness"
msgstr "static_cast del tipus \"%T\" al tipus \"%T\" proscriu la constància"
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "static_cast no vàlid del tipus \"%T\" al tipus \"%T\""
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "convertint de \"%T\" a \"%T\""
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "reinterpret_cast no vàlid d'una expressió rvalue del tipus \"%T\" al tipus \"%T\""
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "reinterpret_cast de \"%T\" a \"%T\" perd precisió"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "la conversió de \"%T\" a \"%T\" incrementa l'alineació requerida del tipus de la destinació"
@@ -18208,172 +18356,142 @@ msgstr "la conversió de \"%T\" a \"%T\" incrementa l'alineació requerida del tip
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ISO C++ prohibeix la conversió entre punter a funció i punter a objecte"
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "const_cast no vàlid del tipus \"%T\" al tipus \"%T\""
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
#, fuzzy
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr "ús no vàlid de const_cast amb tipus \"%T\", que no és un punter, referència, ni un tipus punter-a-dades-membres"
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
#, fuzzy
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr "ús no vàlid de const_cast amb tipus \"%T\", el qual és un punter o referència a un tipus de funció"
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "const_cast no vàlid d'un rvalue de tipus \"%T\" al tipus \"%T\""
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "const_cast no vàlid del tipus \"%T\" al tipus \"%T\""
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C++ prohibeix la conversió a un tipus de matriu \"%T\""
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "conversió no vàlida al tipus de funció \"%T\""
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
#, fuzzy
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr " en l'avaluació de \"%Q(%#T, %#T)\""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "tipus incompatible en l'assignació de \"%T\" a \"%T\""
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ prohibeix l'assignació de matrius"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " en la conversió del punter a funció membre"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
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:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "punter a la conversió membre a través de la base virtual \"%T\" de \"%T\""
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "punter a la conversió membre a través de la base virtual \"%T\" de \"%T\""
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "conversió no vàlida del tipus \"%T\" a partir del tipus \"%T\""
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "passant NULL usat per al no punter %s %P de \"%D\""
-
-#: cp/typeck.c:5874
-#, fuzzy
-msgid "%s to non-pointer type %qT from NULL"
-msgstr "%s al tipus \"%T\" que no és un punter des de NULL"
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "passant \"%T\" per a %s %P de \"%D\""
-
-#: cp/typeck.c:5885
-#, fuzzy
-msgid "%s to %qT from %qT"
-msgstr "%s a \"%T\" des de \"%T\""
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "passant el valor negatiu `%E' per a %s %P de \"%D\""
-
-#: cp/typeck.c:5897
-#, fuzzy
-msgid "%s of negative value %qE to %qT"
-msgstr "%s de valor negatiu `%I' a \"%T\""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr "no es pot convertir \"%T\" a \"%T\" per a l'argument `%P' per a \"%D\""
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "no es pot convertir \"%T\" a \"%T\" en %s"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "en el pas de l'argument %P de \"%+D\""
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "retornant la referència al temporal"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "es va retornar una referència a un non-lvalue"
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "es va retornar una referència a la variable local \"%D\""
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "es va retornar l'adreça de la variable local \"%D\""
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "retornant un valor d'un constructor"
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "\"return\" sense valors, en una funció que retorna non-void"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
#, fuzzy
msgid "return-statement with a value, in function returning 'void'"
msgstr "\"return\" amb valor, en una funció que retorna void"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
#, fuzzy
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr "\"operator new\" no ha de regressar NULL a menys que es declari \"throw()\" (o -fcheck-new estigui en efecte)"
@@ -18440,172 +18558,172 @@ msgstr "\t%#D"
msgid "%J since type %qT has pure virtual functions"
msgstr " ja que el tipus \"%T\" té funcions virtuals abstractes"
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
#, fuzzy
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr "es va usar la sintaxi de constructor, però no es va declarar un constructor per al tipus \"%T\""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "no es poden inicialitzar matrius usant aquesta sintaxi"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "inicialitzant una matriu amb una llista de paràmetres"
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "matriu d'enters amb valors inicials assignats d'una cadena no ampla"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "l'inicialitzador per a una variable escalar requereix un element"
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "parèntesis al voltant de l'inicialitzador per a \"%T\""
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "ignorant els inicialitzadors extra per a \"%T\""
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "un objecte de grandària variable de tipus \"%T\" no pot ser inicialitzat"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
#, fuzzy
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr "el subobjecte de tipus \"%T\" ha de ser inicialitzat per un constructor, no per \"%E\""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "l'agregat té un inicialitzador amb parèntesis parcials"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "inicialitzadors etiquetats com no trivials"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr "inicialitzador no-buit per a una matriu d'elements buits"
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "falta e l'inicialitzador pel membre \"%D\""
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "membre const \"%D\" sense inicialitzar"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "membre \"%D\" amb camps const sense inicialitzar"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "el membre \"%D\" és una referència sense inicialitzar"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr "valor d'índex en lloc del nom del camp en l'inicialitzador d'union"
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "no existeix el camp \"%D\" en el union que s'està inicialitzant"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
#, fuzzy
msgid "union %qT with no named members cannot be initialized"
msgstr "no es pot inicialitzar el union \"%T\" sense membres nomenats"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "excés d'elements en l'inicialitzador agregat"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "es va detectar una delegació de punter circular"
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "l'operand base de \"->\" té el tipus \"%T\" que no és punter"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
#, fuzzy
msgid "result of %<operator->()%> yields non-pointer result"
msgstr "el resultat de \"operator->()\" produeix un resultat que no és un punter"
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "l'operand base de \"->\" no és un punter"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "no es pot usar \"%E\" com un punter membre, perquè és de tipus \"%T\""
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
#, fuzzy
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr "no es pot aplicar el punter a membre \"%E\" a \"%E\", el qual és del tipus no agregat \"%T\""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
#, fuzzy
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr "el tipus de membre \"%T::\" és incompatible amb el tipus objecte \"%T\""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "cridada a la funció \"%D\" la qual llança el tipus incomplet \"%#T\""
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "cridada a una funció la qual llança el tipus incomplet \"%#T\""
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, 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"
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "no es pot tancar el fitxer temporal"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "es va usar la variable de registre global \"%s\" en funcions niades"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "es va usar la va variable \"%s\" en funcions niades"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "es va sol·licitar l'adreça de la variable de registre global \"%s\""
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "es va sol·licitar l'adreça de la variable register \"%s\""
@@ -18624,83 +18742,83 @@ msgstr "falta l'argument per a \"%s\""
msgid "no input files; unwilling to write output files"
msgstr "no hi ha fitxers d'entrada; incapaç d'escriure fitxers de sortida"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "la funció no retorna un tipus string"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "%Jparàmetre \"%D\" sense ús"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "variable \"%s\" sense ús"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "la funció retorna un agregat"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "mode insn desconegut"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "no es reconeix el llenguatge %s"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18718,7 +18836,7 @@ msgstr ""
msgid "Array element size too big"
msgstr "Valor de l'element de la matriu en %0 està fora del rang definit"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18728,27 +18846,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "no existeix el camp \"%D\" en el union que s'està inicialitzant"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "no existeix el camp \"%D\" en el union que s'està inicialitzant"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "no existeix el camp \"%D\" en el union que s'està inicialitzant"
@@ -18784,195 +18902,195 @@ msgstr ""
msgid "%Jnon-static method '%D' overrides static method"
msgstr ""
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "s'usa \"%#D\" previ a la declaració"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "la declaració de \"%s\" enfosquí un paràmetre"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "la declaració de \"%s\" enfosquí un símbol de la llista de paràmetres"
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "s'usa l'etiqueta \"%D\" però no està definida"
-#: java/decl.c:1580
+#: java/decl.c:1637
#, fuzzy
msgid "%Jlabel '%D' defined but not used"
msgstr "s'usa l'etiqueta \"%D\" però no està definida"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr ""
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, c-format
msgid "assert: %s is assign compatible with %s"
msgstr ""
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1699
+#: java/expr.c:1703
#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr ""
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "no es troba la biblioteca lib%s"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr ""
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr ""
-#: java/expr.c:2742
+#: java/expr.c:2746
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr ""
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr ""
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr ""
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "no hi ha un mètode \"%T::%D\""
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "no es pot trobar class$"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "error a l'escriure a \"%s\""
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "no es pot avaluar el fitxer \"%s\""
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
msgid "Not a valid Java .class file."
msgstr ""
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr ""
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "escrivint en un objecte constant (argument %d)"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "la conversió especifica el tipus matriu"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "la conversió especifica el tipus matriu"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, fuzzy, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
@@ -18981,120 +19099,120 @@ msgstr ""
"Us: gcov [OPCIO]... FITXERFONT\n"
"\n"
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr ""
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe Usa canonades en lloc de fitxers intermedis\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -W Activar avisos extra\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr ""
" -B <directori> Agrega el <directori> a les rutes de recerca del\n"
" compilador\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <fitxer> Col·loca la sortida en el <fitxer>\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " -h, --help Mostra aquesta informació, i surt\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -v, --version Mostra el numero de versió, i surt\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -v, --version Mostra el numero de versió, i surt\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -h, --help Mostra aquesta informació, i surt\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " -h, --help Mostra aquesta informació, i surt\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -19104,30 +19222,30 @@ msgstr ""
"Per a instrucions d'informe de bug, si us plau consulta:\n"
"%s.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "no nom de «class» especificat amb \"%s\""
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
msgid "'-MG' option is unimplemented"
msgstr ""
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
msgid "can't specify both -o and -MD"
msgstr ""
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "Creant %s.\n"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -19142,7 +19260,7 @@ msgstr ""
msgid "error while parsing constant pool\n"
msgstr "%s abans d'una constant de cadena"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
@@ -19218,103 +19336,103 @@ msgstr ""
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr ""
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr ""
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "no és pot obrir %s"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "no és pot obrir %s"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr ""
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr ""
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr ""
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "no es pot tancar el fitxer temporal"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr ""
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr ""
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "no es pot obtenir el directori actual"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, fuzzy, c-format
msgid "can't open %s for writing: %m"
msgstr "no es pot obrir %s per a escriptura"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "no és pot obrir %s"
@@ -19370,26 +19488,26 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "%s:no es pot obrir el fitxer de sortida \"%s\"\n"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "no es pot trobar \"%s\""
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "error intern: "
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, fuzzy, c-format
msgid "%s: warning: "
msgstr "avís: "
@@ -19444,15 +19562,15 @@ msgstr ""
msgid "cannot specify 'main' class when not linking"
msgstr ""
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:256
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -19461,7 +19579,7 @@ msgid ""
"%<--encoding=UTF-8%> option"
msgstr ""
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "error intern: registre erroni: %d"
@@ -19475,912 +19593,912 @@ msgstr ""
msgid "internal error - invalid Utf8 name"
msgstr ""
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr ""
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr ""
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr ""
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr ""
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr ""
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "el camp \"%s\" es declara com una funció"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr ""
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr ""
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr ""
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr ""
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr ""
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr ""
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr ""
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr ""
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr ""
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr ""
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr ""
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr ""
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr ""
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr ""
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr ""
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr ""
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr ""
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr ""
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr ""
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr ""
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr ""
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr ""
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr ""
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr ""
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr ""
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr ""
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr ""
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr ""
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr ""
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr ""
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr ""
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr ""
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr ""
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr ""
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr ""
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr ""
-#: java/parse.y:3042
+#: java/parse.y:3041
#, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ""
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Falta l'especificador %A en la declaració en %0"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
msgid "Unreachable statement"
msgstr ""
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "\"%D\" ja està definit en \"%T\""
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, fuzzy, c-format
msgid "Interface %qs repeated"
msgstr "type és depreciat"
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "Usar referències a memòria sense alinear"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "redefinició de \"struct %s\""
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "el tipus de dada per omissió és \"int\" en la declaració de \"%s\""
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
msgid "Class %qs not found in %<throws%>"
msgstr ""
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "declaració de l'etiqueta \"%s\" duplicada"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, c-format
msgid "Class or interface %qs not found in import"
msgstr ""
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: java/parse.y:7148
+#: java/parse.y:7151
#, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
-#: java/parse.y:7153
+#: java/parse.y:7156
#, c-format
msgid "Package %qs not found in import"
msgstr ""
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "variable \"%s\" sense ús"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "\"%D\" ja es va definir en la classe \"%T\""
-#: java/parse.y:10029
+#: java/parse.y:10032
#, c-format
msgid "Undefined variable or class name: %qs"
msgstr ""
-#: java/parse.y:10100
+#: java/parse.y:10103
#, fuzzy, c-format
msgid "Can't use type %qs as a qualifier"
msgstr "no es pot usar \"%s\" com un registre %s"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "%Hdeclaració de prototip"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "desbordament en la constant implícita"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "valor d'un «case» duplicat"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "falta el camí després de \"%s\""
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "no es pot avaluar el fitxer \"%s\""
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr ""
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "l-value no vàlid en l'assignació"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr ""
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "no vàlid argument per a l'atribut \"%s\""
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "argument de tipus no vàlid de \"%s\""
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "conversió no vàlida de \"%T\" a \"%T\""
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "matriu amb valors inicials assignats d'una expressió matricial que no és constant"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "límits d'índexs buits en valor inicial"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "límits d'índexs buits en valor inicial"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "retornant un valor d'un constructor"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "la declaració de \"%#D\" enfosqueix un paràmetre"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "aquesta és la ubicació de la definició prèvia"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "No hi ha definició d'etiqueta per a la declaració FORMAT en %0"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "la declaració continue no està dintre dintre d'un cicle"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "la declaració continue no està dintre dintre d'un cicle"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "la declaració break no està dintre d'un cicle o «switch»"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "etiqueta duplicada \"%D\""
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
#, fuzzy
msgid "original label is here"
msgstr "Alinear totes les etiquetes"
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "límits d'índexs buits en valor inicial"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "tipus incompatible per a l'argument %d de \"%s\""
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr ""
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, fuzzy, c-format
msgid "verification failed: %s"
msgstr "verify_flow_info fallat"
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, c-format
msgid "verification failed at PC=%d: %s"
msgstr ""
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -20428,184 +20546,184 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "tipus incompatible per a l'argument %d de la crida indirecta a funció"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
msgid "%<@end%> must appear in an @implementation context"
msgstr ""
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "la declaració friend no està en una definició de classe"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
msgid "method definition not in @implementation context"
msgstr ""
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, c-format
msgid "object does not conform to the %qs protocol"
msgstr ""
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr ""
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr ""
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "no hi ha declaració prèvia per a \"%D\""
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "declaració extern niada de \"%s\""
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, fuzzy, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr "l'argument de \"asm\" no és una cadena constant"
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "no es pot trobar el fitxer font %s"
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "\"%T\" no és una classa o un espai de noms"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "no es pot trobar class$"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "ja s'ha desat #pragma %s %s"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "\"%s\" redeclarat com un tipus diferent de símbol"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
msgid "%Jprevious declaration of '%D'"
msgstr "%Jdeclaració prèvia de \"%D\""
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
#, fuzzy
msgid "@catch parameter is not a known Objective-C class type"
msgstr "\"%T\" no és una classa o un espai de noms"
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
#, fuzzy
msgid "exception of type %<%T%> will be caught"
msgstr "l'excepció del tipus \"%T\" serà atrapada"
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
#, fuzzy
msgid "%H by earlier handler for %<%T%>"
msgstr " per un gestor anterior per a \"%T\""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "En %s \"%s\":"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
#, fuzzy
msgid "can not use an object as parameter to a method"
msgstr "no es pot usar \"::\" en la declaració de paràmetres"
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "múltiples paràmetres nomenats \"%s\""
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "no hi ha declaració prèvia per a \"%s\""
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "tipus de paràmetre \"%T\" no vàlid"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
msgid "%<%c%s%> not found in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "\"%s\" no té suport per a %s"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
#, fuzzy
msgid "%<...%> as arguments.)"
msgstr "sense arguments"
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
msgstr "selector \"%s\" sense declarar"
@@ -20619,150 +20737,150 @@ msgstr "selector \"%s\" sense declarar"
#. 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "la variable estàtica \"%s\" està marcada com dllimport"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "declaració implícita de la funció \"%s\""
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "declaració implícita de la funció \"%s\""
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "s'ignora l'especificador asm per a la variable local no estàtica \"%s\""
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
msgstr "la variable estàtica \"%s\" està marcada com dllimport"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr " ja que el tipus \"%T\" té funcions virtuals abstractes"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "s'ignora l'especificador asm per a la variable local no estàtica \"%s\""
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, fuzzy, c-format
msgid "type %qs has a user-defined constructor"
msgstr "el tipus \"%T\" no té destructor"
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, fuzzy, c-format
msgid "type %qs has a user-defined destructor"
msgstr "el tipus \"%T\" no té destructor"
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "la variable estàtica \"%s\" està marcada com dllimport"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr ""
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "la variable estàtica \"%s\" està marcada com dllimport"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "no es pot assignar un objecte de tipus \"%T\""
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, c-format
msgid "incomplete implementation of class %qs"
msgstr ""
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, c-format
msgid "incomplete implementation of category %qs"
msgstr ""
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
msgid "method definition for %<%c%s%> not found"
msgstr ""
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr ""
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
msgid "%<@end%> missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr ""
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, c-format
msgid "reimplementation of class %qs"
msgstr ""
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "tipus en conflicte per a \"%s\""
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "declaració prèvia de \"%s\""
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "declaració de l'etiqueta \"%s\" duplicada"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "declaració implícita de la funció \"%s\""
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
#, fuzzy
msgid "%J%s %<%c%s%>"
msgstr "En %s \"%s\":"
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "no hi ha declaració prèvia per a \"%s\""
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "la declaració local de \"%s\" oculta la variable d'instància"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "es va especificar un punt i coma extra en un struct o union"
@@ -20772,22 +20890,22 @@ msgstr "es va especificar un punt i coma extra en un struct o union"
msgid "%HDuplicate name %q.*s."
msgstr "%Hetiqueta duplicada \"%D\""
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "es va usar la variable de registre global \"%s\" en funcions niades"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "es va usar la va variable \"%s\" en funcions niades"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "es va sol·licitar l'adreça de la variable de registre global \"%s\""
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "es va sol·licitar l'adreça de la variable register \"%s\""
@@ -21170,713 +21288,713 @@ msgstr "Avisar sobre l'aritmètica de punters de funcions"
#: options.c:1237
#, fuzzy
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "Avisar quan la sobrecàrrega promogui de unsigned a signed"
+
+#: options.c:1240
+#, fuzzy
msgid "Warn if inherited methods are unimplemented"
msgstr "Avisar si es detecten comentaris niats"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Avisar sobre declaracions múltiples del mateix objecte"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr ""
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr "Avisar quan el compilador reordeni codi"
-#: options.c:1249
+#: options.c:1252
#, fuzzy
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr "Avisar quan el tipus de retorn per defecte d'una funció canvia a int"
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr ""
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr "Avisar sobre possibles violacions a les regles de seqüència de punt"
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr "Avisar quan una variable local enfosque una altra"
-#: options.c:1261
+#: options.c:1264
#, fuzzy
msgid "Warn about signed-unsigned comparisons"
msgstr "Avisar sobre comparances signed/unsigned"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr "Avisar quan la sobrecàrrega promogui de unsigned a signed"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
#, fuzzy
msgid "Warn about code which might break strict aliasing rules"
msgstr "Avisar sobre codi que pugui trencar les regles estrictes d'aliessis"
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "Avisar sobre declaracions de funció sense prototip"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "Avisar sobre declaracions sospitoses de main"
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr "Avisar sobre «switch» enumerats, sense valor per defecte, que manquin d'un «case»"
-#: options.c:1282
+#: options.c:1285
#, fuzzy
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "Avisar sobre «switch» enumerats que manquin d'un \"default:\""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr "Avisar sobre tots els «switch» enumerats que manquin d'un «case» específic"
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr "Avisar quan el comportament de síntesi difereixi de Cfront"
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr "No suprimir els avisos dels encapçalats del sistema"
-#: options.c:1294
+#: options.c:1297
#, fuzzy
msgid "Warn about features not present in traditional C"
msgstr "es suggereix no usar #elif en C tradicional"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
#, fuzzy
msgid "Warn about @selector()s without previously declared methods"
msgstr "Avisar sobre funcions globals sense declaracions prèvies"
-#: options.c:1303
+#: options.c:1306
#, fuzzy
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "directiva # no definida o no vàlida"
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "desbordament en la constant implícita"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr "Avisar sobre variables automàtiques sense iniciar"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr "Avisar sobre pragmas no reconeguts"
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr "Avisar sobre codi que mai s'executarà"
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "Avisar quan no s'usi una funció"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "Avisar quan no s'usi una etiqueta"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "Avisar quan no s'usi un paràmetre d'una funció"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "Avisar quan no s'usi un valor d'una expressió"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "Avisar quan no s'usi una variable"
-#: options.c:1342
+#: options.c:1345
#, fuzzy
msgid "Do not warn about using variadic macros when -pedantic"
msgstr "No avisar sobre l'ús de \"long long\" quan s'usi -pedantic"
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
#, fuzzy
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr " -aux-info <fitxer> Emetre la informació de declaracions en el <fitxer>\n"
-#: options.c:1363
+#: options.c:1366
#, fuzzy
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr " -d[lletres] Activa els bolcats des de passos específics del compilador\n"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
#, fuzzy
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr " -dumpbase <fitxer> Nom base a usar per als bolcats des de passos específics\n"
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
#, fuzzy
msgid "Generate position-independent code if possible (large mode)"
msgstr "Generar codi independent de posició, si és possible"
-#: options.c:1378
+#: options.c:1381
#, fuzzy
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr "Generar codi independent de posició, si és possible"
-#: options.c:1384
+#: options.c:1387
#, fuzzy
msgid "Enforce class member access control semantics"
msgstr "No obeir les semàntiques de control d'accés"
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr "Alinear l'inici de les funcions"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr "Alinear les etiquetes que solament s'arriben a saltant"
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr "Alinear totes les etiquetes"
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr "Alinear l'inici dels cicles"
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr "Canviar quan s'emetin les instàncies del patró"
-#: options.c:1417
+#: options.c:1420
#, fuzzy
msgid "Specify that arguments may alias each other and globals"
msgstr "Especifica que els arguments poden ser alies de cada altre i dels globals"
-#: options.c:1420
+#: options.c:1423
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"
-#: options.c:1423
+#: options.c:1426
#, fuzzy
msgid "Assume arguments alias neither each other nor globals"
msgstr "Assumir que els arguments no poden ser alies de globals o de cada altre"
-#: options.c:1426
+#: options.c:1429
#, fuzzy
msgid "Recognize the \"asm\" keyword"
msgstr "No reconèixer la paraula clau \"asm\""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
#, fuzzy
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr "Generar matrius de desembolico exactament en cada límit d'instrucció"
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr "Generar codi per a revisar els límits abans de matrius"
-#: options.c:1447
+#: options.c:1450
#, fuzzy
msgid "Replace add, compare, branch with branch on count register"
msgstr "Reemplaçar add,compare,branch per branch en el compte de registres"
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr "Usar la informació d'anàlisi de perfil per a les probabilitats de ramificació"
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "No reconèixer cap funció interna"
-#: options.c:1468
+#: options.c:1471
#, fuzzy
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr " -fcall-saved-<registre> Marca el <registre> com preservat entre funcions\n"
-#: options.c:1471
+#: options.c:1474
#, fuzzy
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr " -fcall-used-<registre> Marca el <registre> com corrupte per a crides de funció\n"
-#: options.c:1474
+#: options.c:1477
#, fuzzy
msgid "Save registers around function calls"
msgstr "Permetre guardar registres al voltant de crides de funció"
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr "Revisar el valor de retorn de new"
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "Generar codi per a una DLL"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr "No posar globals sense iniciar en la secció comuna"
-#: options.c:1492
+#: options.c:1495
#, fuzzy
msgid "Allow the arguments of the '?' operator to have different types"
msgstr "els operands de ?: tenen tipus diferents"
-#: options.c:1495
+#: options.c:1498
#, fuzzy
msgid "Reduce the size of object files"
msgstr "Reduir la grandària dels fitxers objecte"
-#: options.c:1498
+#: options.c:1501
#, fuzzy
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Fer que les cadenes literals siguin \"char[]\" en lloc de \"const char[]\""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
#, fuzzy
msgid "Perform a register copy-propagation optimization pass"
msgstr "Fer el pas d'optimització de còpia-propagació de registres"
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr "Realitzar optimitzacions de salts creuats"
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr "Quan s'estigui executant CSE, seguir als salts als seus objectius"
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr "Quan s'estigui executant CSE, seguir als salts condicionals"
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
#, fuzzy
msgid "Place data items into their own section"
msgstr "col·locar els elements de dades en la seva pròpia secció"
-#: options.c:1519
+#: options.c:1525
msgid "Inline member functions by default"
msgstr "Fer que les funcions membre siguin «inline» per omissió"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr "Diferir l'extracció d'arguments de funcions de la pila fins més tard"
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr "Intentar emplenar les ranures de retard de les instruccions de ramificació"
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr "Esborrar les revisions de punters nuls sense ús"
-#: options.c:1531
+#: options.c:1537
#, fuzzy
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr " -fdiagnostics-show-location=[once | every-line] Indica que tan seguit es ha d'emetre la informació d'ubicació del codi, com prefix, a l'inici dels diagnòstics quan està activat el cort de línia\n"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
#, fuzzy
msgid "Permit '$' as an identifier character"
msgstr "el format és una cadena de caràcter ampla"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
#, fuzzy
msgid "Display the code tree after parsing."
msgstr "Mostra la versió del compilador"
-#: options.c:1552
+#: options.c:1558
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ó"
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr "Realitzar l'eliminació de DWARF2 duplicats"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
#, fuzzy
msgid "Generate code to check exception specifications"
msgstr "No generar codi per a revisar excepcions d'especificacions"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Activar el maneig d'excepcions"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr "Realitzar un nombre menor d'optimitzacions costoses"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
#, fuzzy
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr " -ffixed-<registre> Marca el <registre> com no disponible per al compilador\n"
-#: options.c:1615
+#: options.c:1621
#, fuzzy
msgid "Assume that the source file is fixed form"
msgstr "Assumir que els punters no tenen alies"
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1633
#, fuzzy
msgid "Scope of for-init-statement variables is local to the loop"
msgstr "L'àmbit de les variables de la declaració d'inici de for s'estén cap a fora"
-#: options.c:1630
+#: options.c:1636
#, fuzzy
msgid "Copy memory address constants into registers before use"
msgstr "Copiar les constants d'adreces de memòria en registres abans d'usar-los"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1642
#, fuzzy
msgid "Copy memory operands into registers before use"
msgstr "Copiar els operands de memòria en registres abans d'usar-los"
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
#, fuzzy
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr "Assumir que podrien no existir les biblioteques estàndard i main"
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr "Permetre que les adreces de les funcions es conserven en registres"
-#: options.c:1648
+#: options.c:1654
#, fuzzy
msgid "Place each function into its own section"
msgstr "col·locar cada funció en la seva pròpia secció"
-#: options.c:1651
+#: options.c:1657
#, fuzzy
msgid "Perform global common subexpression elimination"
msgstr "Realitzar l'eliminació de subexpressions comuns globals"
-#: options.c:1654
+#: options.c:1660
#, fuzzy
msgid "Perform global common subexpression elimination after register allocation"
msgstr "Realitzar l'eliminació de subexpressions comuns globals"
-#: options.c:1657
+#: options.c:1663
#, fuzzy
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr "Realitzar el moviment de càrrega millorada durant l'eliminació de subexpressions globals"
-#: options.c:1660
+#: options.c:1666
#, fuzzy
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "Realitzar el moviment de càrrega millorada durant l'eliminació de subexpressions globals"
-#: options.c:1663
+#: options.c:1669
#, fuzzy
msgid "Perform store motion after global common subexpression elimination"
msgstr "Realitzar el moviment de guardat després de l'eliminació de subexpressions globals"
-#: options.c:1666
+#: options.c:1672
#, fuzzy
msgid "Recognize GNU-defined keywords"
msgstr "No reconèixer les paraules claus definides per GNU"
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: options.c:1672
+#: options.c:1678
#, fuzzy
msgid "Enable guessing of branch probabilities"
msgstr "Activar la predicció de probabilitats de ramificació"
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr "Assumir l'ambient normal d'execució C"
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr "Activar el suport per a objectes enormes"
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "Processar directives #ident"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "Realitzar la conversió de salts condicionals a execució condicional"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr "Exportar funcions encara si poden ser «inline»"
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "Emetre solament instanciacions explícites de patrons «inline»"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "Emetre solament instanciacions explícites de patrons «inline»"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr "No generar directives .size"
-#: options.c:1720
+#: options.c:1726
#, fuzzy
msgid "Pay attention to the \"inline\" keyword"
msgstr "Fer atenció a la paraula clau \"inline\""
-#: options.c:1729
+#: options.c:1735
#, fuzzy
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr "-finline-limit=<nombre>\tLimita la grandària de funcions «inline» a <nombre>\n"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
#, fuzzy
msgid "Instrument function entry and exit with profiling calls"
msgstr "Instrumentar funcions entrada/sortida amb crides d'anàlisi de perfil"
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1750
#, fuzzy
msgid "Generate code for functions even if they are fully inlined"
msgstr "Generar codi per a les funcions encara si estan completament «inline»"
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr "Emetre variables static const encara si no s'usen"
-#: options.c:1753
+#: options.c:1759
#, fuzzy
msgid "Give external symbols a leading underscore"
msgstr "Els símbols externs tenen un subratllat inicial"
-#: options.c:1756
+#: options.c:1762
#, fuzzy
msgid "Perform loop optimizations"
msgstr "Realitzar les optimitzacions de cicle"
-#: options.c:1759
+#: options.c:1765
#, fuzzy
msgid "Perform loop optimizations using the new loop optimizer"
msgstr "Realitzar les optimitzacions de cicle"
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr "Establir errno després de les funcions matemàtiques internes"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
#, fuzzy
msgid "Report on permanent memory allocation"
msgstr "Reportar l'allotjament en memòria permanent al final de l'execució"
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr "Intentar barrejar constants idèntiques i variables constants"
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr "Intentar barrejar constants idèntiques a través de les unitats de compilació"
-#: options.c:1780
+#: options.c:1786
#, fuzzy
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
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"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
#, fuzzy
msgid "Move loop invariant computations out of loops"
msgstr "Forçar que totes les computacions invariantes del cicle siguin fora del cicle"
-#: options.c:1792
+#: options.c:1798
#, fuzzy
msgid "Don't warn about uses of Microsoft extensions"
msgstr "No avisar pedantment sobre els usos d'extensions Microsoft"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-#, fuzzy
-msgid "Use graph-coloring register allocation"
-msgstr "Utilitzar coloració de grafes per a l'allotjament de registres."
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
@@ -22333,320 +22451,325 @@ msgstr "Activar les optimitzacions del enllaçador"
#: options.c:2161
#, fuzzy
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr " -fsched-verbose=<nombre> Estableix el nivell de detall del calendaritzador\n"
+
+#: options.c:2164
+#, fuzzy
msgid "Append underscores to externally visible names"
msgstr "Mai agregar un segon subratllat als externs"
-#: options.c:2164
+#: options.c:2167
#, fuzzy
msgid "Compile whole compilation unit at a time"
msgstr "Buidar la unitat de traducció completa a un fitxer"
-#: options.c:2167
+#: options.c:2170
msgid "Perform loop unrolling for all loops"
msgstr "Realitzar el desenrollament del cicle per a tots els cicles"
-#: options.c:2170
+#: options.c:2173
msgid "Perform loop unrolling when iteration count is known"
msgstr "Realitzar el desenrollament del cicle quan es coneix el compte d'iteració"
-#: options.c:2173
+#: options.c:2176
#, fuzzy
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr "Permetre optimitzacions matemàtiques que poden violar els estàndards IEEE o ANSI"
-#: options.c:2176
+#: options.c:2179
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
-#: options.c:2179
+#: options.c:2182
msgid "Make \"char\" unsigned by default"
msgstr "Fer que \"char\" sigui unsigned per omissió"
-#: options.c:2182
+#: options.c:2185
#, fuzzy
msgid "Perform loop unswitching"
msgstr "Realitzar les optimitzacions de cicle"
-#: options.c:2185
+#: options.c:2188
msgid "Just generate unwind tables for exception handling"
msgstr "Només generar matrius de desembolico per a maneig d'excepcions"
-#: options.c:2188
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Generar codi per a M*Core M340"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr "Usar __cxa_atexit per a registrar destructors"
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
#, fuzzy
msgid "Perform variable tracking"
msgstr "Realitzar optimització de la crida de l'extrem"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr "Agregar comentaris extra a la sortida de l'ensamblador"
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
#, fuzzy
msgid "Use expression value profiles in optimizations"
msgstr "Activar les optimitzacions del enllaçador"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr "Descartar funcions virtual sense usar"
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr "Implementar vtables usant thunks"
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr "Emetre símbols comuns com símbols febles"
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr "Emetre informació de referència creuada"
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr "Posar dades inicialitzades a zero en la secció bss"
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr "Generar informació de depuració en el format per omissió"
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr "Generar informació de depuració en el format COFF"
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr "Generar informació de depuració en el format DWARF v2"
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr ""
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr "Generar informació de depuració en el format estès per omissió"
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr "Generar informació de depuració en el format STABS"
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr "Generar informació de depuració en el format STABS estès"
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr "Generar informació de depuració en el format VMS"
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr "Generar informació de depuració en el format XCOFF"
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr "Generar informació de depuració en el format XCOFF estès"
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
msgid "-o <file>\tPlace output into <file>"
msgstr "-o <fitxer>\tSituar la sortida en el <fitxer>"
-#: options.c:2323
+#: options.c:2326
msgid "Enable function profiling"
msgstr "Habilitar l'anàlisi de perfil de les funcions"
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr "Activar els avisos necessaris per a complir strictament amb ISO C"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr ""
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr "No mostrar les funcions compilades o el temps transcorregut"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
msgid "Remap file names when including files"
msgstr ""
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr "Activar la sortida de depuració verbosa"
-#: options.c:2407
+#: options.c:2410
msgid "Suppress warnings"
msgstr ""
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr ""
@@ -22663,35 +22786,35 @@ msgstr ""
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr ""
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr "no es permet -bundle amb -dynamiclib"
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "no es permet -bundle_loader amb -dynamiclib"
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr "no es permet -client_name amb -dynamiclib"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "no es permet -private_bundle amb -dynamiclib"
@@ -22719,29 +22842,21 @@ msgstr ""
msgid "shared and mdll are not compatible"
msgstr ""
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "no es dóna suport a l'expressió del límit de la pila"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr ""
-#: 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"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-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."
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "no es dóna suport a l'expressió del límit de la pila"
-
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
msgstr ""
@@ -22766,11 +22881,15 @@ msgstr ""
msgid "the m210 does not have little endian support"
msgstr ""
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr "GCC no dóna suport a -C o -CC sense usar -E"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr ""
@@ -22787,10 +22906,14 @@ msgstr ""
msgid "does not support multilib"
msgstr "no es dóna suport a multilib"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr ""
+#: 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"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
@@ -23030,6 +23153,9 @@ msgstr ""
#~ msgid "initialization"
#~ msgstr "assignació de valors inicials"
+#~ msgid "initialization designators may not nest"
+#~ msgstr "no es poden niuar els designadors d'iniciació"
+
#~ msgid "asm template is not a string constant"
#~ msgstr "la plantilla asm no és una cadena constant"
@@ -23372,9 +23498,6 @@ msgstr ""
#~ msgid "registering \"%s\" as both a pragma and a pragma namespace"
#~ msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "ja s'ha desat #pragma %s"
-
#~ msgid "#pragma once in main file"
#~ msgstr "#pragma una vegada en el fitxer principal"
@@ -23390,9 +23513,6 @@ msgstr ""
#~ msgid "current file is older than %s"
#~ msgstr "el fitxer actual és més vell que %s"
-#~ msgid "_Pragma takes a parenthesized string literal"
-#~ msgstr "_Pragma duu una cadena literal entre parèntesis"
-
#~ msgid "#else without #if"
#~ msgstr "#else sense #if"
@@ -23432,9 +23552,6 @@ msgstr ""
#~ msgid "could not determine date and time"
#~ msgstr "no es pot determinar la data i l'hora"
-#~ msgid "invalid string literal, ignoring final '\\'"
-#~ msgstr "cadena literal no vàlida, s'ignora el \"\\\" finals"
-
#~ 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"
@@ -23492,6 +23609,12 @@ msgstr ""
#~ msgid "syntax error in macro parameter list"
#~ msgstr "errore sintàctic en la llista de paràmetre de macro"
+#~ 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"
+
+#~ 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"
+
#~ msgid "function using short complex types cannot be inline"
#~ msgstr "les funcions que usen tipus short complex no poden ser «inline»"
@@ -23596,6 +23719,12 @@ msgstr ""
#~ msgid "invalid register name `%s' for register variable"
#~ msgstr "el nom de registre \"%s\" no és vàlid per a variable de registre"
+#~ msgid "unknown set constructor type"
+#~ msgstr "conjunt de tipus constructor desconegut"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "El nombre màxim d'instruccions pel inliner RTL"
+
#~ msgid "-msystem-v and -p are incompatible"
#~ msgstr "-msystem-v i -p són incompatibles"
@@ -23623,6 +23752,12 @@ msgstr ""
#~ msgid "Use library calls to perform FP operations"
#~ msgstr "Usar crides a biblioteques per a realitzar les operacions de FP"
+#~ msgid "unexpected address expression"
+#~ msgstr "expressió d'adreça inesperada"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "NOTE com a addr_const inesperat:"
+
#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
#~ msgstr "modes_tieable_p erroni per al registre %s, mode1 %s, mode2 %s"
@@ -23704,9 +23839,6 @@ msgstr ""
#~ msgid "invalid addressing mode"
#~ msgstr "mode d'adreçament no vàlid"
-#~ msgid "bad register extension code"
-#~ msgstr "codi d'extensió de registre erroni"
-
#~ msgid "invalid offset in ybase addressing"
#~ msgstr "desplaçament no vàlid en l'adreçament de ybase"
@@ -23785,6 +23917,9 @@ msgstr ""
#~ msgid "trampolines not yet implemented"
#~ msgstr "no s'han implementat encara trampolin"
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "insn erroni per a frv_print_operand, modificador \"c\":"
+
#~ msgid "junk at end of #pragma map"
#~ msgstr "escombraries al final de #pragma map"
@@ -23893,6 +24028,9 @@ msgstr ""
#~ msgid "Do not enable linker relaxation"
#~ msgstr "Desactivar la relaxació del enllaçador"
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Emetre codi per a Itanium (TM) processador de pas B"
+
#~ msgid "-malign-loops=%d is not between 1 and %d"
#~ msgstr "-malign-loops=%d no és entre 1 i %d"
@@ -23950,6 +24088,12 @@ msgstr ""
#~ msgid "Don't use embedded PIC"
#~ msgstr "No usar el PIC incrustat"
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Passar sempre els arguments de coma flotant en memòria"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "No passar sempre els arguments de coma flotant en memòria"
+
#~ msgid "invalid UNSPEC as operand (1)"
#~ msgstr "UNSPEC no vàlid com a operand (1)"
@@ -23989,6 +24133,9 @@ msgstr ""
#~ msgid "Optimize for SuperSPARC processors"
#~ msgstr "Optimitzar per als processadors SuperSPARC"
+#~ 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"
+
#~ msgid "label `%s' referenced outside of any function"
#~ msgstr "l'etiqueta \"%s\" es va referenciar fora de qualsevol funció"
@@ -24016,6 +24163,13 @@ msgstr ""
#~ msgid "return value type specifier for constructor ignored"
#~ msgstr "l'especificador de tipus del valor retornat per al constructor és ignorat"
+#, fuzzy
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "qualificador de tipus no vàlid per al tipus de funció no membre"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "la funció \"%D\" no pot ser declarada friend"
+
#~ msgid "storage class `static' invalid for function `%s' declared out of global scope"
#~ msgstr "la classe d'emmagatzematge \"static\" no és vàlida per a la funció \"%s\" declarada fora de l'àmbit global"
@@ -24031,6 +24185,12 @@ msgstr ""
#~ msgid "`%D' implicitly declared before its definition"
#~ msgstr "\"%D\" declarat implícitament abans de la seva definició"
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "es va especificar un inicialitzador per a la funció no-membre \"%D\""
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "inicialitzador no vàlid per al mètode virtual \"%D\""
+
#~ msgid "typename type `%#T' declared `friend'"
#~ msgstr "el tipus de nom de tipus \"%#T\" es va declarar \"friend\""
@@ -24073,12 +24233,19 @@ msgstr ""
#~ msgid "`%s' is not a template"
#~ msgstr "\"%T\" no és un patró"
+#, fuzzy
+#~ msgid "expected type-name"
+#~ msgstr "operand inesperat"
+
#~ msgid "explicit specialization not preceded by `template <>'"
#~ msgstr "especialització explícita no precedida per \"template <>\""
#~ msgid "partial specialization `%D' of function template"
#~ msgstr "especialització parcial \"%D\" del patró de funció"
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "massa llistes de paràmetres de patró en la declaració de \"%T\""
+
#~ msgid "it must be the address of a function with external linkage"
#~ msgstr "ha de ser l'adreça d'una funció amb enllaç extern"
@@ -24106,6 +24273,9 @@ msgstr ""
#~ msgid "invalid use of '%E' as a non-type template-argument"
#~ msgstr "ús no vàlid de \"%s\" en punter a membre"
+#~ msgid "non-template used as template"
+#~ msgstr "s'usa un no-patró com patró"
+
#~ msgid "use of `%s' in template type unification"
#~ msgstr "ús de \"%s\" en la unificació de tipus de patró"
@@ -24124,6 +24294,12 @@ msgstr ""
#~ 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"
+#~ msgid "passing `%T' for %s %P of `%D'"
+#~ msgstr "passant \"%T\" per a %s %P de \"%D\""
+
+#~ msgid "%s to `%T' from `%T'"
+#~ msgstr "%s a \"%T\" des de \"%T\""
+
#~ 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"
@@ -24639,6 +24815,10 @@ msgstr ""
#~ msgid "Integrate simple functions into their callers"
#~ msgstr "Integrar les funcions simples en els seus invocators"
+#, fuzzy
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Utilitzar coloració de grafes per a l'allotjament de registres."
+
#~ msgid "Store strings in writable data section"
#~ msgstr "Guardar les cadenes en la secció de dades modificables"
@@ -25578,9 +25758,6 @@ msgstr ""
#~ 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\")"
-#~ msgid "`%D' is a namespace"
-#~ msgstr "\"%D\" és un nom d'espai"
-
#~ 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\""
@@ -25728,9 +25905,6 @@ msgstr ""
#~ msgid "semicolon missing after %s declaration"
#~ msgstr "manca punt i coma després de la declaració %s"
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "manca punt i coma després de la declaració de \"%T\""
-
#~ msgid "`::%D' undeclared (first use here)"
#~ msgstr "\"::%D\" sense declarar (primer ús aquí)"
diff --git a/gcc/po/da.po b/gcc/po/da.po
index 7443ef49c97..45fb0425e68 100644
--- a/gcc/po/da.po
+++ b/gcc/po/da.po
@@ -128,7 +128,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.4-b20040206\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
"PO-Revision-Date: 2004-10-03 19:17+0200\n"
"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
@@ -160,69 +160,47 @@ msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper"
msgid "offset outside bounds of constant string"
msgstr "forskydning udenfor grænserne af konstant streng"
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "den anden parameter til '__builtin_prefetch' skal være en konstant"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "ugyldig anden parameter til '__builtin_prefetch'; benytter nul"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "en tredje parameter til '__builtin_prefetch' skal være en konstant"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "ugyldig tredje parameter til '__builtin_prefetch'; benytter nul"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "parameteren til '__builtin_args_info' skal være konstant"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "parameteren til '__builtin_args_info' er uden for det gyldige interval"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "manglende parameter i '__builtin_args_info'"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "`va_start' benyttet i en funktion med fast antal parametre"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-msgid "second parameter of %<va_start%> not last named argument"
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "`__builtin_next_arg' kaldt uden en parameter"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "for mange parametre til funktionen 'va_start'"
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "for mange parametre til funktionen 'va_start'"
-
-#: builtins.c:4017
+#: builtins.c:4077
#, fuzzy
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr "den første parameter til 'va_arg' er ikke af typen 'va_list'"
@@ -230,527 +208,558 @@ msgstr "den første parameter til 'va_arg' er ikke af typen '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:4031
+#: builtins.c:4091
#, fuzzy
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "'%s' forfremmes til '%s' ved overbringelse gennem '...'"
-#: builtins.c:4036
+#: builtins.c:4096
#, fuzzy
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(så du skal overbring '%s' ikke '%s' til 'va_arg')"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4220
#, fuzzy
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "ugyldig parameter til '__builtin_frame_address'"
-#: builtins.c:4162
+#: builtins.c:4222
#, fuzzy
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "ugyldig parameter til '__builtin_return_address'"
-#: builtins.c:4176
+#: builtins.c:4235
#, fuzzy
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "ikke-understøttet parameter til '__builtin_frame_address'"
-#: builtins.c:4178
+#: builtins.c:4237
#, fuzzy
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "ikke-understøttet parameter til '__builtin_return_address'"
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "den anden parameter til '__builtin_expect' skal være en konstant"
-#: builtins.c:5488
+#: builtins.c:5590
#, fuzzy
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "den anden paramter til '__builtin_longjmp' skal være 1"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr "målprocessoren understøtter ikke uendelig"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "for få parametre til funktionen '%s'"
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "for mange parametre til funktionen '%s'"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "parameter der ikke er et kommatal, til funktionen '%s'"
-#: c-common.c:831
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr "`va_start' benyttet i en funktion med fast antal parametre"
+
+#. 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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "`__builtin_next_arg' kaldt uden en parameter"
+
+#: builtins.c:8933
+#, fuzzy
+msgid "%<va_start%> used with too many arguments"
+msgstr "makroen '%s' kaldt med for mange (%d) parametre"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "den anden parameter til 'va_start' er ikke den sidste navngivne parameter"
+
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "%J'%D' er ikke defineret uden for funktionsvirkefelt"
-#: c-common.c:852
+#: c-common.c:847
#, fuzzy, c-format
msgid "string length %qd is greater than the length %qd 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:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "overløb i konstant udtryk"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "heltalsoverløb i udtryk"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "kommatalsoverløb i udtryk"
-#: c-common.c:933
+#: c-common.c:923
msgid "vector overflow in expression"
msgstr "vektoroverløb i udtryk"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "stort heltal forkortes underforstået til type uden fortegn"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "negativt heltal forkortes underforstået til type uden fortegn"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "overløb i underforstået konstant konvertering"
-#: c-common.c:1151
+#: c-common.c:1141
#, fuzzy, c-format
msgid "operation on %qs may be undefined"
msgstr "brug af '%s' er muligvis ikke defineret"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "case-etiketten kan ikke reduceres til en heltalskonstant"
-#: c-common.c:1480
+#: c-common.c:1468
#, fuzzy
msgid "case label value is less than minimum value for type"
msgstr "heltalskonstant er større end den maksimale værdi for dens type"
-#: c-common.c:1488
+#: c-common.c:1476
#, fuzzy
msgid "case label value exceeds maximum value for type"
msgstr "heltalskonstant er større end den maksimale værdi for dens type"
-#: c-common.c:1496
+#: c-common.c:1484
#, fuzzy
msgid "lower value in case label range less than minimum value for type"
msgstr "heltalskonstant er større end den maksimale værdi for dens type"
-#: c-common.c:1505
+#: c-common.c:1493
#, fuzzy
msgid "upper value in case label range exceeds maximum value for type"
msgstr "heltalskonstant er større end den maksimale værdi for dens type"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "ugyldigt sandhedsværdiudtryk"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "ugyldige operander til binær %s"
-#: c-common.c:2112
+#: c-common.c:2116
msgid "comparison is always false due to limited range of data type"
msgstr "sammenligning er altid falsk på grund af den begrænsede rækkevidde af datatypen"
-#: c-common.c:2114
+#: c-common.c:2118
msgid "comparison is always true due to limited range of data type"
msgstr "sammenligning er altid sand på grund af den begrænsede rækkevidde af datatypen"
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "sammenligning med unsigned udtryk >= 0 er altid sand"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "sammenligning med unsigned udtryk < 0 er altid falsk"
-#: c-common.c:2235
+#: c-common.c:2239
#, fuzzy
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "henvisning af typen 'void *' benyttet i udregning"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "henvisning til en funktion benyttet i udregning"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "henvisning til en medlemsfunktion benyttet i udregning"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
#, fuzzy
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr "adressen af '%D' vil altid være 'true'"
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr "foreslår paranteser omkring tildeling der er benyttet som boolsk værdi"
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "ugyldig brug af 'restrict'"
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "ugyldig anvendelse af 'sizeof' på en funktionstype"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "ugyldig anvendelse af '%s' på en void-type"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "ugyldig anvendelse af '%s' på en ufuldstændig type"
-#: c-common.c:2813
+#: c-common.c:2848
#, fuzzy
msgid "%<__alignof%> applied to a bit-field"
msgstr "'__alignof' benyttet på et bitfelt"
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "kan ikke deaktivere den indbyggede funktion '%s'"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "henvisningsvariabler er ikke tilladt som case-værdier"
-#: c-common.c:3452
+#: c-common.c:3509
#, fuzzy
msgid "range expressions in switch statements are non-standard"
msgstr "ISO C forbyder intervaludtryk i switch-sætninger"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "tomt interval angivet"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "case-værdi optræder mere end én gang (måske pga. intervalsammenfald)"
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr "%Jdette er det første punkt som falder sammen med den værdi"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "case-værdi optræder mere end én gang"
-#: c-common.c:3542
+#: c-common.c:3599
msgid "%Jpreviously used here"
msgstr "%Jtidligere benyttet her"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "flere default-etiketter i én switch-konstruktion"
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr "%Jdette er den første default-etiket"
-#: c-common.c:3596
+#: c-common.c:3653
#, fuzzy
msgid "%Jcase value %qs not in enumerated type"
msgstr "case-værdien '%ld' eksisterer ikke i enum-type"
-#: c-common.c:3599
+#: c-common.c:3656
#, fuzzy
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr "case-værdien '%ld' eksisterer ikke i enum-type"
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "switch-konstruktion mangler default"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
#, fuzzy
msgid "%Henumeration value %qE not handled in switch"
msgstr "enum-værdien '%s' håndteres ikke i switch-sætning"
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr "at tage adressen af en etiket følger ikke standarden"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "egenskaben '%s' ignoreret"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "ukendt maskintilstand '%s'"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
#, fuzzy
msgid "use __attribute__ ((vector_size)) instead"
msgstr "egenskabsdirektivet '%s' ignoreret"
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "kunne ikke emulere '%s'"
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "ugyldig henvisningstilstand '%s'"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "ingen datatype til tilstanden '%s'"
-#: c-common.c:4309
+#: c-common.c:4366
#, fuzzy, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "kan ikke konverteres til en henvisningstype"
-#: c-common.c:4322
+#: c-common.c:4390
#, fuzzy, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "'sigof' benyttet på en type der ikke er sammensat"
-#: c-common.c:4355
+#: c-common.c:4421
#, fuzzy
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "sektionsegenskaben kan ikke angives for lokale variabler"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "sektionen '%s' strider mod tidligere erklæring"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "sektionsegenskaben er ikke tilladt for '%s'"
-#: c-common.c:4381
+#: c-common.c:4447
#, fuzzy
msgid "%Jsection attributes are not supported for this target"
msgstr "sektionsegenskaber understøttes ikke på denne målarkitektur"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "angivet justering er ikke en konstant"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "angivet justering er ikke en potens af 2"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "angivet justering er for stor"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "justering må ikke angives for '%s'"
-#: c-common.c:4493
+#: c-common.c:4559
#, fuzzy
msgid "%J%qD defined both normally and as an alias"
msgstr "'%s' er defineret både normalt og som et alias"
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "aliasparameter er ikke en streng"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "'%s'-egenskaben ignoreret for '%s'"
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "synlighedsparameter er ikke en streng"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "'%s'-egenskaben ignoreret for '%s'"
+
+#: c-common.c:4657
#, fuzzy
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr "synlighedsparameter skal være en af \"default\", \"hidden\", \"protected\" eller \"internal\""
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "tls_model-parameter er ikke en streng"
-#: c-common.c:4663
+#: c-common.c:4735
#, fuzzy
msgid "tls_model argument 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:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "kan ikke angive '%s'-egenskaben efter definitionen"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "'%s'-egenskaben ignoreret for '%s'"
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "ugyldig vektortype for egenskaben '%s'"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "ikke-nul egenskab uden parametre til en ikke-prototype"
-#: c-common.c:4925
+#: c-common.c:4997
#, fuzzy, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "ikke-nul parameter har ugyldig operandnummer (parameter %lu)"
-#: c-common.c:4944
+#: c-common.c:5016
#, fuzzy, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr "ikke-nul parameter med operandnummer uden for det gyldig interval (parameter %lu, operand %lu)"
-#: c-common.c:4952
+#: c-common.c:5024
#, fuzzy, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr "ikke-nul parameter refererer til ikke-henvisningsoperand (parameter %lu, operand %lu)"
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "Forbyd PC-relative funktionskald"
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "for få parametre til funktionen"
-#: c-common.c:5086
+#: c-common.c:5158
#, fuzzy, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr "nulparameter hvor ikke-nul er påkrævet (parameter %lu)"
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "'defined' optræder uden et kaldenavn"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "det kaldte objekt er ikke en funktion"
-#: c-common.c:5202
+#: c-common.c:5274
#, fuzzy, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "den udbedte init_priority er ikke en heltalskonstant"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
#, fuzzy
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr "%Hignorerer returværdi for '%D' erklæret med egenskaben warn_unused_result"
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr "%Hignorerer returværdi af funktion erklæret med egenskaben warn_unused_result"
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%s'"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "ugyldig venstreværdi i tildeling"
-#: c-common.c:5637
+#: c-common.c:5730
msgid "invalid lvalue in increment"
msgstr "ugyldig venstreværdi i forøgelse"
-#: c-common.c:5640
+#: c-common.c:5733
msgid "invalid lvalue in decrement"
msgstr "ugyldig venstreværdi i formindskelse"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "ugyldig venstreværdi i unær '&'"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "ugyldig venstreværdi i asm-sætning"
@@ -759,113 +768,118 @@ msgstr "ugyldig venstreværdi i asm-sætning"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
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:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "konvertering til ikke-skalartype udbedt"
-#: c-decl.c:524
+#: c-decl.c:530
#, fuzzy
msgid "%Jarray %qD assumed to have one element"
msgstr "tabellen '%s' antages kun at have ét element"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "etiketten '%D' er benyttet, men ikke defineret"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "etiketten '%D' er defineret, men ikke benyttet"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "etiketten '%D' er benyttet, men ikke defineret"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "indbygget funktion '%D' benyttet, men aldrig defineret"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "%Jubrugt variabel '%D'"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
#, fuzzy
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:1015
+#: c-decl.c:1029
#, fuzzy
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:1051
+#: c-decl.c:1065
#, fuzzy
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr "følger definition uden prototype her"
-#: c-decl.c:1057
+#: c-decl.c:1071
#, fuzzy
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr "følger definition uden prototype her"
-#: c-decl.c:1066
+#: c-decl.c:1080
#, fuzzy
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "prototypen for '%s' følger og den %d. parameter passer ikke"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
#, fuzzy
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr "følger definition uden prototype her"
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "tidligere definition her"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "tidligere underforstået erklæring af '%s'"
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "tidligere erklæring af '%#D' her"
-#: c-decl.c:1134
+#: c-decl.c:1149
#, fuzzy
msgid "%J%qD redeclared as different kind of symbol"
msgstr "'%#D' omerklæret som en anden form for symbol"
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "den indbyggede funktion '%s' er erklæret som noget der ikke er en funktion"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "erklæring af '%s' skygger for en global erklæring"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "omerklæring af 'enum %s'"
@@ -873,280 +887,280 @@ msgstr "omerklæring af 'enum %s'"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "modstridende typer for den indbyggede funktion '%s'"
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "modstridende typer for '%#D'"
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "modstridende typer for '%#D'"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "omdefinering af '%s'"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "omdefinering af '%s'"
# anden 'declaration' er underforstået i engelsk original
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
#, fuzzy
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "static-erklæring af '%s' følger erklæring uden static"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
#, fuzzy
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "erklæring uden static af '%s' følger static-erklæring"
-#: c-decl.c:1326
+#: c-decl.c:1383
#, fuzzy
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "trådlokal erklæring af '%s' følger ikke-trådlokal erklæring"
-#: c-decl.c:1329
+#: c-decl.c:1386
#, fuzzy
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "ikke-trådlokal erklæring af '%s' følger trådlokal erklæring"
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "extern-erklæring af '%s' passer ikke med den globale"
-#: c-decl.c:1395
+#: c-decl.c:1452
#, fuzzy
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "erklæring af '%F' kaster forskellige undtagelser"
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "tidligere erklæring af '%#D' med %L-kædning"
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
#, fuzzy
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "tidligere erklæring af funktionen '%s' med egenskaben noinline"
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "erklæring af '%s' der er en statisk variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "'%s' er erklæret inline efter at være blevet kaldt"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "'%s' er erklæret inline efter dens definition"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "omdefinering af '%s'"
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "overflødig omerklæring af '%D' i samme virkefelt"
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "erklæring af '%s' skygger for en tidligere lokal variabel"
+
+#: c-decl.c:1871
#, fuzzy
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "erklæring af '%#D' skygger for en parameter"
-#: c-decl.c:1811
+#: c-decl.c:1874
#, fuzzy
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "erklæring af '%s' skygger for en global erklæring"
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "erklæring af '%s' skygger for en tidligere lokal variabel"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr "%Jskygget erklæring er her"
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "indlejret extern-erklæring af '%s'"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "indlejret extern-erklæring af '%s'"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "underforstået erklæring af funktionen '%s'"
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "underforstået erklæring af funktionen '%#D'"
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "underforstået erklæring af funktionen '%#D'"
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "'%s' ikke erklæret her (ikke i en funktion)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(et kaldenavn der ikke er erklæret, rapporteres kun én gang"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "per funktion)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, fuzzy, c-format
msgid "label %qs referenced outside of any function"
msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "etiketten '%s' er blevet erklæret mere end én gang"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "etiketten '%D' optræder mere end én gang"
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
#, fuzzy
msgid "%H%qs defined as wrong kind of tag"
msgstr "'%s' omerklæret som en anden form for symbol"
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "unavngiven struct/union som ikke definerer nogen instanser"
-#: c-decl.c:2726
+#: c-decl.c:2769
#, fuzzy
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr "lagringsklasseanvisning i tabelerklæring"
-#: c-decl.c:2737
+#: c-decl.c:2780
#, fuzzy
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr "erklæring erklærer ikke noget"
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "ubrugeligt reserveret ord eller typenavn i tom erklæring"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "tom erklæring"
-#: c-decl.c:2779
+#: c-decl.c:2822
#, fuzzy
msgid "%<auto%> in file-scope empty declaration"
msgstr "to typer angivet i én tom erklæring"
-#: c-decl.c:2785
+#: c-decl.c:2828
#, fuzzy
msgid "%<register%> in file-scope empty declaration"
msgstr "to typer angivet i én tom erklæring"
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "lagringsklasseanvisning i tabelerklæring"
-#: c-decl.c:2797
+#: c-decl.c:2840
#, fuzzy
msgid "useless %<__thread%> in empty declaration"
msgstr "ubrugeligt reserveret ord eller typenavn i tom erklæring"
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "dobbelte typemodifikationer i %s-erklæring"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "tom erklæring"
-#: c-decl.c:2878
+#: c-decl.c:2921
#, fuzzy
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:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C90 understøtter ikke tabelerklæringer med '[*]'"
-#: c-decl.c:2884
+#: c-decl.c:2927
#, fuzzy
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "GCC understøtter endnu ikke ordentligt tabelerklæringer med '[*]'"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "static eller typemodifikationer i abstrakt erklæring"
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "'%s' er sædvanligvis en funktion"
# init dækker over værditildeling her - samme for de næste mange
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef '%D' bliver tildelt en værdi (benyt __typeof__ i stedet)"
-#: c-decl.c:2974
+#: c-decl.c:3019
#, fuzzy
msgid "function %qD is initialized like a variable"
msgstr "funktionen '%#D' bliver tildelt en startværdi som en variabel"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "parameteren '%s' bliver tildelt en startværdi"
@@ -1155,184 +1169,179 @@ msgstr "parameteren '%s' bliver tildelt en startværdi"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "et objekt af variabel størrelse må ikke tildeles en startværdi"
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "variablen '%#D' bliver tildelt en startværdi, men er af en ufuldstændig type"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "elementer i tabellen '%#D' er af en ufuldstændig type"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
#, fuzzy
msgid "%Jinline function %qD given attribute noinline"
msgstr "inline funktion '%s' givet egenskaben noinline"
-#: c-decl.c:3154
+#: c-decl.c:3194
#, fuzzy
msgid "%Jinitializer fails to determine size of %qD"
msgstr "startværdien giver ikke størrelsen af '%D'"
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "tabelstørrelsen mangler i '%D'"
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "nul eller negativ størrelse for tabellen '%s'"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "%Jlagringsstørrelsen af '%D' er ikke kendt"
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "lagringsstørrelsen af '%D' er ikke konstant"
-#: c-decl.c:3266
+#: c-decl.c:3299
#, fuzzy
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "kan ikke anbringe et objekt med et volatile-felt i et register"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C forbyder forhåndsparametererklæringer"
-#: c-decl.c:3614
+#: c-decl.c:3648
#, fuzzy
msgid "<anonymous>"
msgstr "<anonym %s>"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "bredden af bitfeltet '%s' er ikke en heltalskonstant"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "negativ bredde i bitfeltet '%s'"
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "en bredde på nul for bitfeltet '%s'"
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "bitfeltet '%s' er af en ufuldstændig type"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, fuzzy, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr "linjestilsdirektiv er en GCC-udvidelse"
-#: c-decl.c:3664
+#: c-decl.c:3698
#, fuzzy, c-format
msgid "width of %qs exceeds its type"
msgstr "bredden af '%s' overstiger typen"
# RETMIG: find på et eller andet med præcisionen
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "'%s' er smallere end værdier af dens type"
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "typen antages at være 'int' i erklæringen af '%s'"
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "'const' optræder mere end én gang"
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "'restrict' optræder mere end én gang"
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "'volatile' optræder mere end én gang"
-#: c-decl.c:3853
+#: c-decl.c:3887
#, fuzzy
msgid "function definition declared %<auto%>"
msgstr "'auto' er påhæftet funktionsdefinitionen"
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "'register' er påhæftet funktionsdefinitionen"
-#: c-decl.c:3857
+#: c-decl.c:3891
#, fuzzy
msgid "function definition declared %<typedef%>"
msgstr "'typedef' er påhæftet funktionsdefinitionen"
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "'__thread' er påhæftet funktionsdefinitionen"
-#: c-decl.c:3875
+#: c-decl.c:3909
#, fuzzy, c-format
msgid "storage class specified for structure field %qs"
msgstr "lagringsklasse angivet for strukturfelt '%s'"
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, fuzzy, c-format
msgid "storage class specified for parameter %qs"
msgstr "lagringsklasse angivet for parameter '%s'"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "lagringsklasse angivet for typenavn"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
#, fuzzy
msgid "%qs initialized and declared %<extern%>"
msgstr "'%s' bliver tildelt en startværdi og er samtidig erklæret 'extern'"
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
#, fuzzy
msgid "%qs has both %<extern%> and initializer"
msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi"
-#: c-decl.c:3902
+#: c-decl.c:3936
#, fuzzy
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
-#: c-decl.c:3904
+#: c-decl.c:3938
#, fuzzy
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
#, fuzzy
msgid "nested function %qs declared %<extern%>"
msgstr "indlejret funktion '%s' er erklæret 'extern'"
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
#, fuzzy
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr "'%s' i funktionsvirkefelt underforstået auto og erklæret '__thread'"
@@ -1340,677 +1349,677 @@ msgstr "'%s' i funktionsvirkefelt underforstået auto og erklæret '__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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "static eller typemodifikationer i ikke-parametertabelerklæring"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, fuzzy, c-format
msgid "declaration of %qs as array of voids"
msgstr "'%s' erklæret som en tabel af void"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "'%s' erklæret som en tabel af funktioner"
-#: c-decl.c:4010
+#: c-decl.c:4050
msgid "invalid use of structure with flexible array member"
msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "størrelsen af tabellen '%s' er ikke af en heltalstype"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO C forbyder tabellen '%s' med størrelsen nul"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "størrelsen af tabellen '%s' er negativ"
-#: c-decl.c:4056
+#: c-decl.c:4096
#, fuzzy
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ISO C90 forbyder tabellen '%s' hvis størrelse ikke kan bestemmes"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "størrelsen af tabellen '%s' er for stor"
-#: c-decl.c:4106
+#: c-decl.c:4150
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C90 understøtter ikke fleksible tabelmedlemmer"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "tabeltypen er af en ufuldstændig type"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "'%s' er erklæret som en funktion der returnerer en funktion"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, fuzzy, c-format
msgid "%qs declared as function returning an array"
msgstr "'%s' er erklæret som en funktion der returnerer en tabel"
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "ugyldig definition af modificeret type '%T'"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr "typemodifikationer ignoreret i funktionsreturtypen"
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO C forbyder funktionsreturtype med modifikationer"
-#: c-decl.c:4282
+#: c-decl.c:4324
#, fuzzy
msgid "%Jtypedef %qD declared %<inline%>"
msgstr "variablen '%s' er erklæret 'inline'"
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C forbyder const eller volatile funktionstyper"
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "variabel eller felt '%s' erklæret void"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "egenskaber i parametertabelerklæring ignoreret"
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "parameteren '%D' erklæret void"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "feltet '%s' er erklæret som en funktion"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "feltet '%s' er af en ufuldstændig type"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "ugyldig lagringsklasse for funktion '%s'"
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "en funktion uden returtype returnerer en ikke-tom værdi"
# at oversætte inline med et udsagnsord her bliver vist for tvetydigt
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "funktionen 'main' kan ikke være inline"
-#: c-decl.c:4546
+#: c-decl.c:4582
#, fuzzy
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr "variabel eller felt '%s' erklæret void"
-#: c-decl.c:4555
+#: c-decl.c:4591
#, fuzzy
msgid "%Jvariable %qD declared %<inline%>"
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:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
msgid "thread-local storage not supported for this target"
msgstr "trådlokal lagring understøttes ikke på målarkitekturen"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
#, fuzzy
msgid "function declaration isn%'t a prototype"
msgstr "funktionserklæringen er ikke en prototype"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "parameternavne (uden typer) i funktionserklæringen"
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "parameteren er af en ufuldstændig type"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "parameteren er af en ufuldstændig type"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "parameteren er af en ufuldstændig type"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "parameteren er af en ufuldstændig type"
-#: c-decl.c:4761
+#: c-decl.c:4797
#, fuzzy
msgid "%<void%> as only parameter may not be qualified"
msgstr "typedef-navn kan ikke klassemodificeres"
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
#, fuzzy
msgid "%<void%> must be the only parameter"
msgstr "ugyldig brug af skabelonstypeparameter"
-#: c-decl.c:4793
+#: c-decl.c:4829
#, fuzzy
msgid "%Jparameter %qD has just a forward declaration"
msgstr "parameteren '%s' har kun en forhåndserklæring"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "'struct %s' erklæret inde i en parameterliste"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, fuzzy, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "anonym struct erklæret inde i en parameterliste"
-#: c-decl.c:4848
+#: c-decl.c:4884
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:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "omdefinering af 'union %s'"
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "omdefinering af 'struct %s'"
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "indlejret omdefinering af '%s'"
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "indlejret omdefinering af '%s'"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "erklæring erklærer ikke noget"
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C understøtter ikke unavngivne struct/union-konstruktioner"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "medlemmet '%D' optræder mere end én gang"
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "navngivne medlemmer"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "anonym sammensat type uden medlemmer"
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "navngivne medlemmer"
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "destruktionsfunktioner kan ikke have parametre"
-#: c-decl.c:5231
+#: c-decl.c:5267
#, fuzzy
msgid "%Jflexible array member in union"
msgstr "fleksibelt tabelmedlem i union"
-#: c-decl.c:5236
+#: c-decl.c:5272
#, fuzzy
msgid "%Jflexible array member not at end of struct"
msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur"
-#: c-decl.c:5241
+#: c-decl.c:5277
#, fuzzy
msgid "%Jflexible array member in otherwise empty struct"
msgstr "fleksibelt tabelmedlem i ellers tom struktur"
-#: c-decl.c:5248
+#: c-decl.c:5284
#, fuzzy
msgid "%Jinvalid use of structure with flexible array member"
msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "union kan ikke ikke gøres gennemsigtig"
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "indlejret omdefinering af '%s'"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "omerklæring af 'enum %s'"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr "enum-værdier overstige rækkevidden af det største heltal"
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "enum-værdier for store"
-#: c-decl.c:5626
+#: c-decl.c:5671
#, fuzzy
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr "ISO C begrænser enum-værdier til rækkevidden af 'int'"
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "returtypen er en ufuldstændig type"
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "returtypen antages at være 'int'"
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "ingen tidligere prototype for '%s'"
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "'%s' blev brugt uden en prototype før dens definition"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "ingen tidligere erklæring af '%s'"
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "'%s' blev brugt uden en erklæring før dens definition"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "returtypen til '%s' er ikke 'int'"
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "den første parameter til '%s' skal være 'int'"
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "den anden parameter til '%s' skal være 'char **'"
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "den tredje parameter til '%s' skal sandsynligvis være 'char **'"
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "'%s' tager kun mod to eller ingen parametre"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "'%s' er normalt en ikke-statisk funktion"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
#, fuzzy
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr "traditionel C tillader ikke ISO C-functionsdefinitioner"
-#: c-decl.c:5908
+#: c-decl.c:5953
#, fuzzy
msgid "%Jparameter name omitted"
msgstr "parameternavn udeladt"
-#: c-decl.c:5948
+#: c-decl.c:5993
#, fuzzy
msgid "%Jold-style function definition"
msgstr "%s: funktionsdefinitionen er ikke omdannet\n"
-#: c-decl.c:5956
+#: c-decl.c:6001
#, fuzzy
msgid "%Jparameter name missing from parameter list"
msgstr "parameternavn mangler fra parameterliste"
-#: c-decl.c:5967
+#: c-decl.c:6012
#, fuzzy
msgid "%J%qD declared as a non-parameter"
msgstr "'%D' er erklæret som en ven"
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "flere parametre ved navn '%s'"
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "parameteren '%D' erklæret void"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "typen til '%s' antages at være 'int'"
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "parameteren er af en ufuldstændig type"
-#: c-decl.c:6022
+#: c-decl.c:6067
#, fuzzy
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "erklæring af parameteren '%s', men ingen sådan parameter"
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "antallet af parametre passer ikke til prototypen"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
#, fuzzy
msgid "%Hprototype declaration"
msgstr "tom erklæring"
-#: c-decl.c:6101
+#: c-decl.c:6146
#, fuzzy
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "den forfremmede parameter '%s' passer ikke til prototypen"
-#: c-decl.c:6109
+#: c-decl.c:6154
#, fuzzy
msgid "argument %qD doesn%'t match prototype"
msgstr "parameteren '%s' passer ikke til prototypen"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr "ingen return-sætning i en funktion der ikke returnerer void"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "denne funktion kan returnere med eller uden en værdi"
#. 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:6403
+#: c-decl.c:6461
#, fuzzy
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "begyndelseserklæring i 'for'-løkke benyttet uden for C99-tilstand"
-#: c-decl.c:6432
+#: c-decl.c:6490
#, fuzzy
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "erklæring af '%s' der er en statisk variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6435
+#: c-decl.c:6493
#, fuzzy
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6440
+#: c-decl.c:6498
#, fuzzy
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "'struct %s' erklæret i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6444
+#: c-decl.c:6502
#, fuzzy
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "'union %s' erklæret i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6448
+#: c-decl.c:6506
#, fuzzy
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "'enum %s' erklæret i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6452
+#: c-decl.c:6510
#, fuzzy
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "erklæring af '%s' der ikke er en variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "'%s' optræder mere end én gang"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
#, fuzzy
msgid "two or more data types in declaration specifiers"
msgstr "mere end én datatype i erklæringen af '%s'"
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "'long long long' er for langt for GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO C90 understøtter ikke 'long long'"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
#, fuzzy
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "både long og short er angivet for '%s'"
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
#, fuzzy
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "både long og short er angivet for '%s'"
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
#, fuzzy
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "både long og short er angivet for '%s'"
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
#, fuzzy
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "både long og short er angivet for '%s'"
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
#, fuzzy
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "både long og short er angivet for '%s'"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:6875
+#: c-decl.c:6933
msgid "ISO C90 does not support complex types"
msgstr "ISO C90 understøtter ikke komplekse typer"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, fuzzy, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr "'%s' er hverken en typedef eller en indbygget type"
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "'%s' er ikke ved begyndelsen af erklæringen"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
#, fuzzy
msgid "%<__thread%> before %<extern%>"
msgstr "'__thread' før 'extern'"
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
#, fuzzy
msgid "%<__thread%> before %<static%>"
msgstr "'__thread' før 'static'"
-#: c-decl.c:7106
+#: c-decl.c:7164
#, fuzzy
msgid "multiple storage classes in declaration specifiers"
msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr "ISO C understøtter ikke at blot 'complex' betyder 'double complex'"
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C understøtter ikke komplekse heltalstyper"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "%J'%F' brugt, men aldrig defineret"
@@ -2573,7 +2582,7 @@ msgstr "strftime-formater kan ikke formatere parametre"
msgid "statement with no effect"
msgstr "%Hsætning uden nogen virkning"
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "break-sætning befinder sig ikke i en løkke- eller switch-konstruktion"
@@ -2597,17 +2606,17 @@ msgstr " da det er et ikke-systemkatalog som dublerer et systemkatalog\n"
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "ignorerer det ikke-eksisterende katalog \"%s\"\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\"-søgning begynder her:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "#include <...>-søgning begynder her:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Slut på søgningslisten.\n"
@@ -2670,37 +2679,29 @@ msgstr "kommatalskonstant overskrider intervallet for '%s'"
msgid "traditional C rejects string constant concatenation"
msgstr "traditionel C tillader ikke strengsammensætning"
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
#, fuzzy
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "værdi af tabeltype angivet hvor skalar er påkrævet"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
#, fuzzy
msgid "used struct type value where scalar is required"
msgstr "værdi af struct-type angivet hvor skalar er påkrævet"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
#, fuzzy
msgid "used union type value where scalar is required"
msgstr "værdi af union-type angivet hvor skalar er påkrævet"
@@ -2748,81 +2749,81 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "tilvalget '%s' understøttes ikke længere"
-#: c-opts.c:655
+#: c-opts.c:653
#, fuzzy
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr "-fhandle-exceptions er blevet omdøbt til -fexceptions (og er nu til som standard)"
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr "uddatafilnavnet er angivet to gange"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k ignoreret uden -Wformat"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args ignoreret uden -Wformat"
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-zero-length ignoreret uden -Wformat"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral ignoreret uden -Wformat"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security ignoreret uden -Wformat"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute ignoreret uden -Wformat"
-#: c-opts.c:995
+#: c-opts.c:998
#, fuzzy, c-format
msgid "opening output file %s: %m"
msgstr "åbner uddatafilen %s"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, 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-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, fuzzy, c-format
msgid "opening dependency file %s: %m"
msgstr "åbner afhængighedsfilen %s"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, fuzzy, c-format
msgid "closing dependency file %s: %m"
msgstr "lukker afhængighedsfilen %s"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, fuzzy, c-format
msgid "when writing output to %s: %m"
msgstr "ved skrivning af uddata til %s"
-#: c-opts.c:1216
+#: c-opts.c:1220
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-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr "<indbygget>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<kommandolinje>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2834,16 +2835,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "syntaksfejl"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "syntaksfejl: kan ikke gå tilbage"
@@ -2896,113 +2897,118 @@ msgstr "første parameter til '__builtin_choose_expr' skal være en konstant"
msgid "%<typeof%> applied to a bit-field"
msgstr "'sizeof' benyttet på et bitfelt"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C forbyder tom startværdiblok"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
#, fuzzy
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C89 forbyder angivelse af underobjekt til klargøring"
# RETMIG: hm, gad vide om dette er rigtigt
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
#, fuzzy
msgid "obsolete use of designated initializer without %<=%>"
msgstr "forældet brug af udpeget startværdi uden '='"
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
#, fuzzy
msgid "obsolete use of designated initializer with %<:%>"
msgstr "forældet brug af udpeget startværdi med ':'"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C forbyder angivelse af interval af elementer til klargøring"
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C forbyder indlejrede funktioner"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
#, fuzzy
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO C forbyder forhåndsreferencer til 'enum'-typer"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "komma i slutningen af enum-liste"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "intet semikolon i slutningen af struct eller union"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "ekstra semikolon angivet i struct eller union"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C forbyder medlemserklæringer uden medlemmer"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
#, fuzzy
msgid "label at end of compound statement"
msgstr "forældet brug af etiket i slutningen af sammensat sætning"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
#, fuzzy
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C89 forbyder blandede erklæringer og kode"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C forbyder etiketerklæringer"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
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:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, fuzzy, c-format
msgid "%E qualifier ignored on asm"
msgstr "%s-modifikation ignoreret ved asm"
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+#, fuzzy
+msgid "wide string literal in %<asm%>"
+msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO C påkræver en navngiven parameter før '...'"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "overløb i tolkerens stak"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "syntaksfejl ved symbolet '%s'"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "tolkningsfejl"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
#, fuzzy
msgid "parse error; also virtual memory exhausted"
msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "syntaksfejl: kan ikke gå tilbage"
@@ -3127,188 +3133,188 @@ msgstr "justering skal være en lille potens af to, ikke %d"
msgid "%Japplying #pragma weak %qD 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:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr "forkert udformet '#pragma weak' - ignoreret"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "ragelse i slutningen af '#pragma weak'"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr "forkert udformet '#pragma redefine_extname' - ignoreret"
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr "ragelse i slutningen af '#pragma redefine_extname'"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "__builtin_eh_return understøttes ikke på målarkitekturen"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "#pragma redefine_extname er i konflikt med erklæring"
-#: c-pragma.c:429
+#: c-pragma.c:461
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr "#pragma redefine_extname er i konflikt med erklæring"
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr "forkert udformet '#pragma extern_prefix' - ignoreret"
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr "ragelse i slutningen af '#pragma extern_prefix'"
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "Profilering er ikke understøttet på målarkitekturen."
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "asm-erklæring er i konflikt med tidligere omdøbelse"
-#: c-pragma.c:514
+#: c-pragma.c:546
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr "#pragma redefine_extname er i konflikt med erklæring"
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
#, fuzzy
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr "manglende '(' efter '#pragma %s' - ignoreret"
-#: c-pragma.c:596
+#: c-pragma.c:628
#, fuzzy
msgid "malformed #pragma GCC visibility push"
msgstr "forkert udformet '#pragma builtin'"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "ragelse i slutningen 'af #pragma %s'"
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "'%s' er af en ufuldstændig type"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "ugyldig brug af void-udtryk"
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr "ugyldig brug af fleksibelt tabelmedlem"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "ugyldig brug af tabel uden angivne grænser"
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
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:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "ugyldig brug af ufuldstændig typedef '%s'"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr "funktionstyper ikke er fuldt ud forenelige i ISO C"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "typer er ikke helt forenelige"
-#: c-typeck.c:987
+#: c-typeck.c:1045
#, fuzzy
msgid "function return types not compatible due to %<volatile%>"
msgstr "en funktions returtype kan ikke være en funktion"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "beregninger udført på en henvisning til en ufuldstændig type"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "%s har intet medlem ved navn '%s'"
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, fuzzy, c-format
msgid "request for member %qs 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:1548
+#: c-typeck.c:1629
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:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "forsøg på at følge en 'void *'-henvisning"
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "ugyldig typeparameter '%s'"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
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:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "tabelindeks er ikke et heltal"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "videregiver parameter af henvisning til funktion"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
#, fuzzy
msgid "array subscript has type %<char%>"
msgstr "tabelindeks er af typen 'char'"
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO C forbyder opslag i 'register'-tabel"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C90 forbyder opslag i tabel der ikke er venstreværdi"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "det kaldte objekt er ikke en funktion"
@@ -3316,830 +3322,826 @@ msgstr "det kaldte objekt er ikke en funktion"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
#, fuzzy
msgid "function called through a non-compatible type"
msgstr "sizeof benyttet på en ufuldstændig type"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "startværdielement er ikke en konstant"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "for mange parametre til funktionen"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "typen af den formelle parameter %d er ufuldstændig"
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr "%s som heltal i stedet for kommatal på grund af prototypen"
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr "%s som heltal i stedet for complex på grund af prototypen"
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr "%s som complex i stedet for kommatal på grund af prototypen"
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr "%s som kommatal i stedet for heltal på grund af prototypen"
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr "%s som complex i stedet for heltal på grund af prototypen"
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr "%s som kommatal i stedet for complex på grund af prototypen"
-#: c-typeck.c:2121
+#: c-typeck.c:2204
#, fuzzy
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr "%s som float i stedet for double på grund af prototypen"
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, fuzzy, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr "%s med anderledes bredde på grund af prototypen"
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, fuzzy, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "%s som unsigned på grund af prototypen"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "%s som signed på grund af prototypen"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "for få parametre til funktionen"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "foreslår paranteser omkring + eller - inden i skifteoperation"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "foreslår paranteser omkring && inden i ||"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "foreslår paranteser omkring beregning i operand til |"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "foreslår paranteser omkring sammenligning i operand til |"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "foreslår paranteser omkring beregning i operand til ^"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "foreslår paranteser omkring sammenligning i operand til ^"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "foreslår paranteser omkring + eller - i operand til &"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "foreslår paranteser omkring sammenligning i operand til &"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "sammenligninger som 'x <= y <= z' følger ikke den matematiske betydning"
-#: c-typeck.c:2314
+#: c-typeck.c:2397
#, fuzzy
msgid "pointer of type %<void *%> used in subtraction"
msgstr "henvisning af typen 'void *' benyttet i subtraktion"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "henvisning til en funktion benyttet i subtraktion"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "forkert parametertype til unært plus"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "forkert parametertype til unært minus"
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO C understøtter ikke '~' til compleks-konjugering"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "forkert parametertype til bitkomplement"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "forkert parametertype til abs"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "forkert parametertype til konjugation"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "forkert parametertype til unært udråbstegn"
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, fuzzy
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr "ISO C understøtter ikke '++' og '--' for complex-typer"
# man kan ikke stikke en forøgelse (++) en type som parameter, 'type
# argument' skal opfattes på en anden måde
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "forkert parametertype til forøgelse"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "forkert parametertype til formindskelse"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "forøgelse af henvisning til en ukendt struktur"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "formindskelse af henvisning til en ukendt struktur"
# RETMIG: lettere klodset konstruktion
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, fuzzy, c-format
msgid "assignment of read-only member %qs"
msgstr "%s af medlemmet '%s' der kun må læses"
# RETMIG: lettere klodset konstruktion
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, fuzzy, c-format
msgid "increment of read-only member %qs"
msgstr "%s af medlemmet '%s' der kun må læses"
# RETMIG: lettere klodset konstruktion
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, fuzzy, c-format
msgid "decrement of read-only member %qs"
msgstr "%s af medlemmet '%s' der kun må læses"
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, fuzzy, c-format
msgid "assignment of read-only variable %qs"
msgstr "%s af variablen '%s' der kun må læses"
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, fuzzy, c-format
msgid "increment of read-only variable %qs"
msgstr "%s af variablen '%s' der kun må læses"
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, fuzzy, c-format
msgid "decrement of read-only variable %qs"
msgstr "%s af variablen '%s' der kun må læses"
-#: c-typeck.c:2734
+#: c-typeck.c:2817
#, fuzzy
msgid "assignment of read-only location"
msgstr "%s af placering der kun må læses"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
#, fuzzy
msgid "increment of read-only location"
msgstr "%s af placering der kun må læses"
-#: c-typeck.c:2736
+#: c-typeck.c:2819
#, fuzzy
msgid "decrement of read-only location"
msgstr "%s af placering der kun må læses"
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "kan ikke finde adressen af bitfeltet '%s'"
-#: c-typeck.c:2783
+#: c-typeck.c:2866
#, fuzzy
msgid "global register variable %qD used in nested function"
msgstr "global registervariabel '%s' benyttet i indlejret funktion"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
#, fuzzy
msgid "register variable %qD used in nested function"
msgstr "registervariabel '%s' benyttet i indlejret funktion"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
#, fuzzy
msgid "address of global register variable %qD requested"
msgstr "forespørgsel efter adressen af den globale registervariabel '%s'"
-#: c-typeck.c:2793
+#: c-typeck.c:2876
#, fuzzy
msgid "address of register variable %qD requested"
msgstr "forespørgsel efter adressen af registervariablen '%s'"
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "typerne i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "signed og unsigned type i betinget udtryk"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
msgid "ISO C forbids conditional expr with only one void side"
msgstr "ISO C forbyder betingede udtryk med kun én tom side"
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
#, fuzzy
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr "ISO C++ forbyder betinget udtryk mellem 'void *' og funktionshenvisning"
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "henvisningstyperne i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "henvisnings- og heltalstype i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "typerne i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr "venstreoperanden til kommaudtrykket har ingen virkning"
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "typetildelingen angiver en tabeltype"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "typetildelingen angiver en funktionstype"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO C forbyder omtvingelse af ikke-skalar til den samme type"
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C forbyder omtvingelse til uniontype"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
msgid "cast to union type from type not present in union"
msgstr "typetildeling til en uniontype fra en type der ikke findes i union'en"
-#: c-typeck.c:3120
+#: c-typeck.c:3203
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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "typeomtvingelse forøger den påkrævne justering af måltypen"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "typeomtvingelse fra henvisning til heltal af en anden størrelse"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "typeomtvingelse fra heltal til henvisning af en anden størrelse"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr "typeomtvingning af ufuldstændig type bryder muligvis strenge aliasregler"
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr "følgning af en typeomtvunget henvisning vil bryde strenge aliasregler"
-#: c-typeck.c:3181
+#: c-typeck.c:3264
#, fuzzy
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr "følgning af en typeomtvunget henvisning vil bryde strenge aliasregler"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
#, fuzzy
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
#, fuzzy
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr "kan ikke videregive højreværdi til referenceparameter"
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, fuzzy, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr "%s opretter en funktionshenvisning med modifikationer fra én uden"
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
#, fuzzy
msgid "assignment makes qualified function pointer from unqualified"
msgstr "%s opretter en funktionshenvisning med modifikationer fra én uden"
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
#, fuzzy
msgid "initialization makes qualified function pointer from unqualified"
msgstr "%s opretter en funktionshenvisning med modifikationer fra én uden"
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
#, fuzzy
msgid "return makes qualified function pointer from unqualified"
msgstr "%s opretter en funktionshenvisning med modifikationer fra én uden"
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, fuzzy, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
#, fuzzy
msgid "assignment discards qualifiers from pointer target type"
msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
#, fuzzy
msgid "initialization discards qualifiers from pointer target type"
msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
#, fuzzy
msgid "return discards qualifiers from pointer target type"
msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C forbyder parameterkonvertering til uniontype"
-#: c-typeck.c:3628
+#: c-typeck.c:3714
#, fuzzy
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'"
-#: c-typeck.c:3631
+#: c-typeck.c:3717
#, fuzzy
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'"
-#: c-typeck.c:3633
+#: c-typeck.c:3719
#, fuzzy
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'"
-#: c-typeck.c:3635
+#: c-typeck.c:3721
#, fuzzy
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'"
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, fuzzy, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr "fortegnene i henvisningsmål i %s er forskellige"
-#: c-typeck.c:3660
+#: c-typeck.c:3746
#, fuzzy
msgid "pointer targets in assignment differ in signedness"
msgstr "fortegnene i henvisningsmål i %s er forskellige"
-#: c-typeck.c:3662
+#: c-typeck.c:3748
#, fuzzy
msgid "pointer targets in initialization differ in signedness"
msgstr "fortegnene i henvisningsmål i %s er forskellige"
-#: c-typeck.c:3664
+#: c-typeck.c:3750
#, fuzzy
msgid "pointer targets in return differ in signedness"
msgstr "fortegnene i henvisningsmål i %s er forskellige"
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, fuzzy, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
#, fuzzy
msgid "initialization from incompatible pointer type"
msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
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:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "uforenelige typer i %s"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "uforenelige typer i %s"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "uforenelige typer i %s"
# 'automatic aggregate' betyder automatisk allokerede variabler, dvs.
# ganske almindelige lokale variabler (kan evt. erklæres med 'auto')
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "traditionel C forbyder klargøring af auto-variabler af sammensatte typer"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "(i nærheden af klargøringen af '%s')"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "char-tabel får tildelt startværdi fra en bred streng"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "char-tabel får tildelt startværdi fra en bred streng"
-#: c-typeck.c:4116
+#: c-typeck.c:4202
#, fuzzy
msgid "wchar_t-array initialized from non-wide string"
msgstr "char-tabel får tildelt startværdi fra en bred streng"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "startværdistrengen til char-tabellen er for lang"
-#: c-typeck.c:4140
+#: c-typeck.c:4226
#, fuzzy
msgid "array of inappropriate type initialized from string constant"
msgstr "char-tabel får tildelt startværdi fra en bred streng"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
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:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "startværdielement kan ikke beregnes ved indlæsningstidspunktet"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "ugyldig startværdi"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
#, fuzzy
msgid "opaque vector types cannot be initialized"
msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "overskydende krøllede paranteser ved slutningen af startværdien"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "krøllede paranteser mangler omkring startværdien"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "krøllede paranteser omkring skalarstartværdi"
# RETMIG: eller er det fleksibel tabel-medlem
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr "klargøring af fleksibelt tabelmedlem i en indlejret kontekst"
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "klargøring af fleksibelt tabelmedlem"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "manglende startværdi"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "tom skalarstartværdi"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "overskydende elementer i skalarstarværdi"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "klargøringstegn må ikke indlejres"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "tabelindeks i en startværdi der ikke er en tabel"
# RETMIG: record?
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "feltnavn ikke i struktur- eller union-startværdi"
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "tabelindeks i startværdi overskrider tabelgrænser"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "tabelindekset i startværdien er ikke en konstant"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr "tabelindeks i startværdi overskrider tabelgrænser"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "tomt indeksinterval i startværdi"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "tabelindeksinterval i startværdi overskrider tabelgrænser"
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, fuzzy, c-format
msgid "unknown field %qs specified in initializer"
msgstr "ukendt felt '%s' angivet i startværdi"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "klargjort felt med bivirkninger overskrevet"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "for mange elementer i char-tabelstartværdien"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "for mange elementer i struct-startværdi"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr "ikke-statisk klargøring af fleksibelt tabelmedlem"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "for mange elementer i union-startværdi"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "traditionel C forbyder tildeling af startværdi til unioner"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "for mange elementer i tabelstartværdi"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr "for mange elementer i vektorstartværdi"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "for mange elementer i skalarstartværdi"
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO C forbyder 'goto *udtryk;'"
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
#, fuzzy
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "funktion der er erklæret 'noreturn' har en 'return'-sætning"
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
msgid "%<return%> with no value, in function returning non-void"
msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void"
-#: c-typeck.c:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "'return' med en værdi i en funktion der returnerer void"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "funktion returnerer adressen på en lokal variabel"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "switch-størrelsen er ikke et heltal"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
#, fuzzy
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr "'long'-udtryk i switch konverteres ikke til 'int' i ISO C"
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "case-etiket befinder sig ikke inden i en switch-sætning"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
#, fuzzy
msgid "%<default%> label not within a switch statement"
msgstr "'default'-etiket befinder sig ikke inden i en switch-sætning"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
#, fuzzy
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr "%Hforeslår eksplicitte krøllede paranteser for at undgå tvetydig 'else'"
-#: c-typeck.c:6631
+#: c-typeck.c:6761
#, fuzzy
msgid "%Hempty body in an if-statement"
msgstr "tom krop i en else-sætning"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "tom krop i en else-sætning"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "continue-sætning befinder sig ikke i en løkke"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr "%Hsætning uden nogen virkning"
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "udtrykket er af en ufuldstændig type"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "division med nul"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "højreskiftsantal er negativ"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "højreskiftsantal er større end bredden af typen"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "venstreskiftsantal er negativ"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "venstreskiftsantal er større end bredden af typen"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "sammenligning af kommatal med == eller != er ikke sikkert"
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, fuzzy
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "sammenligning med forskellige henvisningstyper mangler en typeomtvingelse"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "sammenligning mellem henvisningsvariabel og heltal"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "sammenligning mellem en fuldstændig og ufuldstændig henvisning"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C forbyder ordnede sammenligninger af henvisninger til funktioner"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "ordnet sammenligning af henvisning med heltallet nul"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "sammenligning mellem signed og unsigned"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "sammenligning af forfremmet ~unsigned med konstant"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "sammenligning af forfremmet ~unsigned med unsigned"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "funktionskald har en sammensat værdi"
@@ -4183,7 +4185,7 @@ msgstr "verify_flow_info: Ukorrekt antal for kant %i->%i %i"
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: Efterfølgende kant til basisblok %d er ødelagt"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr "Forkert antal forgreningskanter efter ubetinget spring %i"
@@ -4292,314 +4294,314 @@ msgstr "%s understøtter ikke %s"
msgid "%s does not support flow_call_edges_add"
msgstr "%s understøtter ikke %s"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, 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."
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr "Basisblok %d hører ikke til løkke %d."
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, 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:1345
+#: cfgloop.c:1353
#, 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."
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, 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:1355
+#: cfgloop.c:1363
#, 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:1361
+#: cfgloop.c:1369
#, 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."
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, fuzzy, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr "Løkke %d's ende tilhører ikke direkte løkken."
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, 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:1954
+#: cfgrtl.c:1962
#, 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:1966
+#: cfgrtl.c:1974
#, 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:1990
+#: cfgrtl.c:1998
#, fuzzy
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr "verify_flow_info: REG_BR_PROB passer ikke til konf. %i %i"
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, 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:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr "For mange udgående forgreningskanter fra basisblok %i"
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr "Fald gennem-kant efter ubetinget spring %i"
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr "Forkert antal forgreningskanter efter betinget spring %i"
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr "Kaldekanter for ikke-kaldsinstruktion i basisblok %i"
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr "Unormale kanter uden noget formål i basisblok %i"
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, 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:2084
+#: cfgrtl.c:2092
#, 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:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, 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:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr "i basisblok %d:"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr "strømkontrolinstruktion inden i en basisblok"
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr "manglende barriere efter blok %i"
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, 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:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: Ukorrekt fald-gennem %i->%i"
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr "forkert instruktion i fald-gennem-kant"
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
#, fuzzy
msgid "basic blocks not laid down consecutively"
msgstr "basisblokkene er ikke nummeret i rækkefølge"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr "instruktion uden for basisblok"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr "returnering følges ikke af barriere"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, 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)"
-#: cgraph.c:231
+#: cgraph.c:278
#, fuzzy
msgid "function body not available"
msgstr "funktion kan ikke indbygges"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
#, fuzzy
msgid "redefined extern inline functions are not considered for inlining"
msgstr "Advar når en inline funktion ikke kan indbygges"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
#, fuzzy
msgid "function not considered for inlining"
msgstr "funktion kan ikke indbygges"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
#, fuzzy
msgid "function not inlinable"
msgstr "funktion kan ikke indbygges"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "flere typer i én erklæring"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "sektionshenvisning mangler"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
#, fuzzy
msgid "verify_cgraph_node failed."
msgstr "verify_flow_info mislykkedes"
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "feltet '%s' er erklæret som en funktion"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "afbrudt i %s ved %s:%d"
@@ -4608,72 +4610,72 @@ msgstr "afbrudt i %s ved %s:%d"
msgid "no arguments"
msgstr "ingen parametre"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "ukendt maskintilstand '%s'"
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 version %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d konstruktionsfunktion(er) fundet\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d destruktionsfunktion(er) fundet\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d rammetabel(ler) fundet\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s afsluttet af signal %d [%s]%s"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s returnerede afslutningskoden %d"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[kan ikke finde %s]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "kan ikke finde '%s'"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "omdirigerer standard-ud: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Efterlader %s]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4682,55 +4684,55 @@ msgstr ""
"\n"
"write_c_file - uddatanavnet er %s, præfikset er %s\n"
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "kan ikke finde 'nm'"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "fejl under kørsel (vha. execv) af %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "klargøringsfunktion fundet i objekt %s"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "afslutningsfunktion fundet i objekt %s"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "kan ikke finde 'ldd'"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4738,32 +4740,32 @@ msgstr ""
"\n"
"ldd-uddata med konstruktions-/destruktionsfunktioner.\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "dynamisk afhængighed %s ikke fundet"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "kan ikke åbne den dynamiske afhængighed '%s'"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: ikke en COFF-fil"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: kan ikke åbnes som en COFF-fil"
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr "biblioteket lib%s ikke fundet"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4774,7 +4776,7 @@ msgstr ""
";; %d vellykkede.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4890,7 +4892,7 @@ msgstr "\"%s\" er ikke et gyldigt tilvalg til præprocessoren"
msgid "too many input files"
msgstr "for mange inddatafiler"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ";; Behandler blok fra %d til %d, %d mængder.\n"
@@ -4949,32 +4951,24 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s understøttes ikke\n"
-#: emit-rtl.c:1215
-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"
-
-#: emit-rtl.c:1242
-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:2303
+#: emit-rtl.c:2232
#, fuzzy
msgid "Invalid rtl sharing found in the insn"
msgstr "ugyldig operand i instruktionen"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
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:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "afbrudt i %s ved %s:%d"
@@ -4992,7 +4986,7 @@ msgstr "parameteren til '__builtin_eh_return_regno' skal være konstant"
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return understøttes ikke på målarkitekturen"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "stakgrænser understøttes ikke på målarkitekturen"
@@ -5042,104 +5036,104 @@ msgstr "'%%l'-operand er ikke en etiket"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "kommatalskonstant misbrugt"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "ugyldigt udtryk som operand"
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
#, fuzzy
msgid "internal consistency failure"
msgstr "intern GCC-afbrydelse"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "forsøg på at slette indledende/afsluttende instruktion:"
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "sammenligning er altid %d"
# RETMIG: det giver ikke mening
-#: fold-const.c:4899
+#: fold-const.c:4933
#, fuzzy
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr "'or' af uafbalancerede sammenligninger med forskellig fra er altid 1"
-#: fold-const.c:4904
+#: fold-const.c:4938
#, fuzzy
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr "'and' af udtryk der hver for sig udelukker hinanden, er altid 0"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "størrelsen af variablen '%s' er for stor"
-#: function.c:1442
+#: function.c:1443
#, fuzzy
msgid "impossible constraint in %<asm%>"
msgstr "umulig begrænsing i 'asm'"
-#: function.c:3495
+#: function.c:3633
#, fuzzy
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "variablen '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'"
-#: function.c:3516
+#: function.c:3654
#, fuzzy
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "parameteren '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'"
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "funktion returnerer en værdi af en sammensat type"
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "ubenyttet parameter '%s'"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "tvetydig forkortelse %s"
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "ufuldstændigt tilvalg '%s'"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "der mangler en parameter til tilvalget '%s'"
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "der er en parameter for meget til tilvalget '%s'"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr "Benytter indbyggede specifikationer.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -5148,42 +5142,42 @@ msgstr ""
"Sætter specifikation %s til '%s'\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr "Læser specifikationer fra %s\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "%%include-syntaks i specifikationer misdannet efter %ld tegn"
-#: gcc.c:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr "kunne ikke finde specifikationsfilen %s\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "%%rename-syntaks i specifikationer misdannet efter %ld tegn"
-#: gcc.c:2109
+#: gcc.c:2099
#, 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:2116
+#: gcc.c:2106
#, 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:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr "omdøb specifikation %s til %s\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5192,30 +5186,30 @@ msgstr ""
"specifikation er '%s'\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "ukendt %%-kommando i specifikationer efter %ld tegn"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "specifikationsfil misdannet efter %ld tegn"
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "specifikationsfil har ingen specifikation til sammenkædning"
-#: gcc.c:2635
+#: gcc.c:2625
#, fuzzy, c-format
msgid "system path '%s' is not absolute"
msgstr "reservering '%s' bliver ikke benyttet"
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe understøttes ikke"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5223,7 +5217,7 @@ msgstr ""
"\n"
"Fortsæt, ja (y) eller nej (n)?"
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5234,69 +5228,69 @@ msgstr ""
"Indsend venligst en komplet fejlrapport.\n"
"Se %s for instruktioner."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Brug: %s [tilvalg] fil...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Tilvalg:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Vis disse oplysninger\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help Vis målspecifikke kommandolinjetilvalg\n"
-#: gcc.c:3040
+#: gcc.c:3030
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:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Vis alle de indbyggede specifikationsstrenge\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Vis versionsnummeret af oversætteren\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Vis oversætterens målprocessor\n"
-#: gcc.c:3044
+#: gcc.c:3034
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:3045
+#: gcc.c:3035
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:3046
+#: gcc.c:3036
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:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5304,100 +5298,100 @@ msgstr ""
" -print-multi-lib Vis afbildningen mellem kommandolinjetilvalg og\n"
" flere bibliotekssøgekataloger\n"
-#: gcc.c:3052
+#: gcc.c:3042
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:3053
+#: gcc.c:3043
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:3054
+#: gcc.c:3044
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:3055
+#: gcc.c:3045
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:3056
+#: gcc.c:3046
#, fuzzy
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xlinker <para> Videregiv <para> til sammenkæderen\n"
-#: gcc.c:3057
+#: gcc.c:3047
#, fuzzy
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xlinker <para> Videregiv <para> til sammenkæderen\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <para> Videregiv <para> til sammenkæderen\n"
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -o <fil> Anbring uddataene i <fil>\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Slet ikke midlertidige filer\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Brug datakanaler i stedet for midlertidige filer\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Tag tid på udførslen af hver underproces\n"
-#: gcc.c:3063
+#: gcc.c:3053
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:3064
+#: gcc.c:3054
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:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
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:3067
+#: gcc.c:3057
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:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Vis de programmer der startes af oversætteren\n"
-#: gcc.c:3069
+#: gcc.c:3059
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:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E Forbehandl kun; oversæt og sammenkæd ikke\n"
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Oversæt kun; maskinekodeoversæt og sammenkæd ikke\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Oversæt, også til maskinkode, men sammenkæd ikke\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fil> Anbring uddataene i <fil>\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5409,7 +5403,7 @@ msgstr ""
" 'none' betyder at standardopførslen med at gætte\n"
" sproget på filendelsen udføres\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5423,28 +5417,28 @@ msgstr ""
" videregive andre indstillinger til disse processer kan tilvalg på formen\n"
" '-W<bogstav>' bruges.\n"
-#: gcc.c:3201
+#: gcc.c:3191
#, fuzzy, c-format
msgid "'-%c' option must have argument"
msgstr "tilvalget '-%c' skal have en parameter"
-#: gcc.c:3223
+#: gcc.c:3213
#, fuzzy, c-format
msgid "couldn't run '%s': %s"
msgstr "kunne ikke køre '%s': %s"
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5454,95 +5448,95 @@ 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:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "der mangler en parameter til '-Xlinker'"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "der mangler en parameter til '-specs'"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "der mangler en parameter til '-Xlinker'"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "der mangler en parameter til '-l'"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "der mangler en parameter til '-specs'"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "der mangler en parameter til '-specs='"
-#: gcc.c:3606
+#: gcc.c:3596
#, fuzzy, c-format
msgid "'-%c' must come at the start of the command line"
msgstr "'-%c' skal være i begyndelsen af kommandolinjen"
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "der mangler en parameter til '-B'"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "advarsel: -pipe ignoreret fordi -save-temps er angivet"
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr "advarsel: -pipe ignoreret fordi -time er angivet"
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "der mangler en parameter til '-x'"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "der mangler en parameter til '-%s'"
-#: gcc.c:4093
+#: gcc.c:4083
#, fuzzy, 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:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "bitfeltet '%s' er af en ufuldstændig type"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "bitfeltet '%s' er af en ufuldstændig type"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "bitfeltet '%s' er af en ufuldstændig type"
@@ -5550,88 +5544,88 @@ msgstr "bitfeltet '%s' er af en ufuldstændig type"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "specifikationsfejl: '%%*' er ikke blevet klargjort af mønstersøgning"
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "advarsel: forældet '%%['-operator benyttet i specifikationer"
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "Behandler specifikation %c%s%c, som er '%s'\n"
-#: gcc.c:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "specifikationsfejl: ukendt specifikationstilvalg '%c'"
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "ukendt specifikationsfunktion '%s'"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "fejl i parametre til specifikationsfunktion '%s'"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr "forkert udformet specifikationsfunktionsnavn"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr "ingen parametre til specifikationsfunktion"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr "forkert udformede specifikationsfunktionsparametre"
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "ukendt tilvalg '-%s'"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "installering: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "programmer: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "biblioteker: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5640,71 +5634,76 @@ msgstr ""
"\n"
"For fejlrapporteringsinstruktioner, se:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "biblioteker: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "Konfigureret med: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Trådmodel: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "GCC version %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, 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:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "ingen inddatafiler"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s-oversætter ikke installeret på dette system"
-#: gcc.c:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "typedef '%s' bliver tildelt en startværdi"
-#: gcc.c:6607
+#: gcc.c:6596
#, 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:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "sproget %s ikke genkendt"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "typedef '%s' bliver tildelt en startværdi"
-#: gcc.c:7130
+#: gcc.c:7119
#, fuzzy, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr "flere felter i union '%T' tildeles startværdi"
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "skabelonsparameter %d er ugyldig"
-#: gcc.c:7367
+#: gcc.c:7356
#, fuzzy, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr "flere felter i union '%T' tildeles startværdi"
@@ -5991,28 +5990,28 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr "Advarsel: kildefil %s er nyere end %s\n"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr "GCSE deaktiveret"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
#, fuzzy
msgid "jump bypassing disabled"
msgstr "tilvalget -g deaktiveret"
-#: gcse.c:6597
+#: gcse.c:6535
#, fuzzy, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "GCSE deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok"
-#: gcse.c:6610
+#: gcse.c:6548
#, fuzzy, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "GCSE deaktiveret: %d basisblokke og %d registre"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, fuzzy, c-format
msgid "can't write PCH file: %m"
@@ -6029,7 +6028,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "kan ikke skrive i uddatafil"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, fuzzy, c-format
msgid "can't read PCH file: %m"
msgstr "kan ikke læse fra midlertidig fil"
@@ -6038,12 +6037,12 @@ msgstr "kan ikke læse fra midlertidig fil"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr "åbn /dev/zero: %m"
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
#, fuzzy
msgid "can't write PCH file"
msgstr "kan ikke skrive i uddatafil"
@@ -6053,27 +6052,27 @@ msgstr "kan ikke skrive i uddatafil"
msgid "unexpected node"
msgstr "uventet operand"
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "ugyldig venstreværdi i asm-sætning"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, fuzzy, c-format
msgid "memory input %d is not directly addressable"
msgstr "uddata nr. %d kan ikke adresseres direkte"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, c-format
msgid "%s cannot be used in asm here"
msgstr "%s kan ikke bruges i asm her"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, c-format
msgid "can't open %s: %m"
msgstr "kan ikke åbne %s: %m"
@@ -6133,72 +6132,72 @@ msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
msgid "unrecognized command line option \"%s\""
msgstr "ignorerer kommandolinjetilvalget '%s'"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized understøttes ikke uden -O"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, fuzzy, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr "justering skal være en lille potens af to, ikke %d"
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "ukendt registernavn '%s'"
-#: opts.c:937
+#: opts.c:938
#, fuzzy, c-format
msgid "unrecognized register name \"%s\""
msgstr "ukendt registernavn '%s'"
-#: opts.c:957
+#: opts.c:962
#, fuzzy, c-format
msgid "unknown tls-model \"%s\""
msgstr "'%s': ukendt tls-model-tilvalg"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr "%s: '--param'-parametre skal være på formen NAVN=VÆRDI"
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "ugyldig '--param'-værdi '%s'"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr "målsystemet understøtter ikke fejlfindingsuddata"
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "fejlfindingsformatet \"%s\" er i modstrid med tidligere valg"
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "ukendt fejlfindingsuddataniveau \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr "fejlfindingsuddataniveau %s er for højt"
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr "De følgende tilvalg er sproguafhængige:\n"
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
@@ -6207,17 +6206,27 @@ msgstr ""
"Forenden %s genkender de følgende tilvalg:\n"
"\n"
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr "Tilvalget --param genkender følgende som parametre:\n"
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "ugyldig parameter '%s'"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "ugyldig parameter '%s'"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6555,96 +6564,92 @@ msgstr "%s: kan ikke få fat i arbejdskataloget: %s\n"
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: inddatafilnavn skal have '.c'-endelser: %s\n"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr "Kunne ikke finde en farvning.\n"
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "uddatabegrænsning %d skal angive et enkelt register"
-#: reg-stack.c:631
+#: reg-stack.c:632
#, 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:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr "uddataregistre skal grupperes i toppen af stakken"
-#: reg-stack.c:691
+#: reg-stack.c:692
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:710
+#: reg-stack.c:711
#, fuzzy
msgid "output operand %d must use %<&%> constraint"
msgstr "uddataoperand %d skal bruge begrænsningen '&'"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "kan ikke bruge '%s' som et %s-register"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "ukendt registernavn: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "en global registervariabel følger en funktionsdefinition"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "register brugt til to globale registervariabler"
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr "kaldeoverskrevet register brugt til global registervariabel"
-#: regrename.c:1876
+#: regrename.c:1872
#, 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:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: Løkke i registertalskæde (%u)"
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] Ugyldig oldest_regno (%u)"
-#: regrename.c:1903
+#: regrename.c:1899
#, 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:1252
+#: reload.c:1270
#, fuzzy
msgid "cannot reload integer constant operand in %<asm%>"
msgstr "kan ikke genindlæse heltalskonstantoperand i 'asm'"
-#: reload.c:1275
+#: reload.c:1293
#, fuzzy
msgid "impossible register constraint in %<asm%>"
msgstr "umulig registerbegrænsing i 'asm'"
-#: reload.c:3513
+#: reload.c:3535
#, fuzzy
msgid "%<&%> constraint used with no register class"
msgstr "'&'-begrænsning brugt uden registerklasse"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr "kunne ikke generere genindlæsninger for:"
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
#, fuzzy
msgid "inconsistent operand constraints in an %<asm%>"
msgstr "inkonsistente operandbegræsninger i 'asm'"
@@ -6657,41 +6662,41 @@ msgstr "rammestørrelse for stor til pålidelig stakkontrol"
msgid "try reducing the number of local variables"
msgstr "forsøg at reducere antallet af lokale variable"
-#: reload1.c:1866
+#: reload1.c:1865
#, fuzzy
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr "kan ikke finde et register i klassen '%s' ved genindlæsning af 'asm'"
-#: reload1.c:1871
+#: reload1.c:1870
#, fuzzy, c-format
msgid "unable to find a register to spill in class %qs"
msgstr "kan ikke finde et register at bortødsle i klassen '%s'"
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr "dette er instruktionen:"
-#: reload1.c:3864
+#: reload1.c:3863
#, fuzzy
msgid "%<asm%> operand requires impossible reload"
msgstr "'asm'-operand kræver umulig genindlæsning"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr "kunne ikke finde et register at bortødsle"
-#: reload1.c:4988
+#: reload1.c:4987
#, fuzzy
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:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr "VOID-tilstand ved uddata"
-#: reload1.c:6607
+#: reload1.c:6615
#, fuzzy
msgid "output operand is constant in %<asm%>"
msgstr "uddataoperand er konstant i 'asm'"
@@ -6704,152 +6709,152 @@ msgstr "ukendt instruktion:"
msgid "insn does not satisfy its constraints:"
msgstr "instruktion tilfredsstiller ikke sine begrænsninger:"
-#: rtl.c:472
+#: rtl.c:471
#, fuzzy, 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:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
+#: rtl.c:500
#, fuzzy, 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:511
+#: rtl.c:510
#, fuzzy, 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:522
+#: rtl.c:521
#, 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:533
+#: rtl.c:532
#, fuzzy, 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:316
+#: stmt.c:317
#, fuzzy
msgid "output operand constraint lacks %<=%>"
msgstr "uddataoperandbegrænsning mangler '='"
-#: stmt.c:331
+#: stmt.c:332
#, fuzzy, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr "uddatabegrænsning '%c' for operanden %d er ikke ved begyndelsen"
-#: stmt.c:354
+#: stmt.c:355
#, fuzzy
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr "operandbegrænsning indeholder forkert placeret '+' eller '='"
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
#, fuzzy
msgid "%<%%%> constraint used with last operand"
msgstr "'%%'-begrænsning brugt med sidste operand"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "begrænsningen er ikke gyldig for uddataoperanden"
-#: stmt.c:451
+#: stmt.c:452
#, fuzzy, c-format
msgid "input operand constraint contains %qc"
msgstr "inddataoperandbegrænsningen indeholder '%c'"
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr "begrænsning refererer til et ugyldigt operandtal"
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "ugyldig punktuering '%c' i begrænsning"
-#: stmt.c:555
+#: stmt.c:556
#, fuzzy
msgid "matching constraint does not allow a register"
msgstr "begrænsningen er ikke gyldig for uddataoperanden"
-#: stmt.c:583
+#: stmt.c:584
#, fuzzy, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr "asm-anvisning for variablen '%s' strider mod asm-overskrivelsesliste"
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "ukendt registernavn '%s' i 'asm'"
-#: stmt.c:680
+#: stmt.c:681
#, fuzzy
msgid "PIC register %qs clobbered in %<asm%>"
msgstr "ukendt registernavn '%s' i 'asm'"
-#: stmt.c:727
+#: stmt.c:728
#, fuzzy
msgid "more than %d operands in %<asm%>"
msgstr "mere end %d operander i 'asm'"
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "uddata nr. %d kan ikke adresseres direkte"
-#: stmt.c:869
+#: stmt.c:870
#, fuzzy
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "'asm'-operand %d passer sandsynligvis ikke til begrænsninger"
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr "asm-overskrivelse er i modstrid med uddataoperander"
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr "asm-overskrivelse er i modstrid med inddataoperander"
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "for mange alternativer i 'asm'"
-#: stmt.c:1120
+#: stmt.c:1121
#, fuzzy
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr "operandbegrænsninger til 'asm' har forskellige antal alternativer"
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "'asm'-operandnavnet '%s' optræder mere end én gang"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr "manglende afsluttende krøllet parantes til navngiven operand"
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "ikkedefineret navngiven operand '%s'"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr "%Hberegnet værdi benyttes ikke"
@@ -6967,66 +6972,66 @@ msgstr "collect: kæder sammen igen\n"
msgid "ld returned %d exit status"
msgstr "ld returnerede afslutningskoden %d"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "ugyldig tilvalgsparameter '%s'"
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "intern fejl"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
#, fuzzy
msgid "%J%qF declared %<static%> but never defined"
msgstr "%J'%F' erklæret 'static', men aldrig defineret"
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "%J'%D' defineret, men aldrig brugt"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, fuzzy, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr "'%s' er forældet (erklæret ved %s:%d)"
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr "type er forældet (erklæret ved %s:%d)"
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "'%s' er forældet"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr "type er forældet"
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -7035,12 +7040,12 @@ msgstr ""
"\n"
"Målspecifikke tilvalg:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23s [ikke dokumenteret]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -7049,24 +7054,24 @@ msgstr ""
"\n"
"Der er også ikke-dokumenterede målspecifikke tilvalg.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " De eksisterer, men er ikke dokumenteret.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "ukendt GCC-fejlfindingstilvalg: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "ugyldigt tilvalg %s"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7077,350 +7082,362 @@ msgstr ""
"%s\toversat af GNU C version %s.\n"
"%s%s%s version %s (%s) oversat af CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, 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:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "tilvalg overbragt: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "tilvalg slået til: "
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "kan ikke åbne %s til skrivning: %m"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, fuzzy, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr "oprettet og brugt med en anden indstilling af '-m%s'"
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr "løbet tør for hukommelse"
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr "instruktionsplanlægning understøttes ikke på målarkitekturen"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "målarkitekturen har ikke forsinkede forgreninger"
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "profilering understøttes ikke endnu"
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore understøttes ikke på målarkitekturen"
-#: toplev.c:1831
+#: toplev.c:1851
#, fuzzy, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "%s understøtter ikke '%%%s%c' %s-formateringen"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
#, fuzzy
msgid "variable tracking requested, but not supported by this debug format"
msgstr "%s understøtter ikke '%%%s%c' %s-formateringen"
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "kan ikke åbne %s: %m"
-#: toplev.c:1873
+#: toplev.c:1893
msgid "-ffunction-sections not supported for this target"
msgstr "-ffunction-sections understøttes ikke på målarkitekturen"
-#: toplev.c:1878
+#: toplev.c:1898
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections understøttes ikke på målarkitekturen"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections deaktiveret; dette gør profilering umulig"
-#: toplev.c:1892
+#: toplev.c:1912
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "-fdata-sections understøttes ikke på målarkitekturen"
-#: toplev.c:1904
+#: toplev.c:1924
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:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen (prøv '-march'-tilvalgene)"
-#: toplev.c:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays understøttes ikke med -Os"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections kan have indflydelse på fejlfinding på nogle målarkitekturer"
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "fejl ved skrivning til %s"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "fejl ved lukning af %s"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr "%Hvil aldrig blive udført"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
#, fuzzy
msgid "non-boolean used in condition"
msgstr "definition af enum '%T' i betingelse"
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
#, fuzzy
msgid "Invalid reference prefix."
msgstr "Ugyldig referencetype"
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "Ugyldig klargøringssætning"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
#, fuzzy
msgid "verify_stmts failed."
msgstr "verify_flow_info mislykkedes"
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, fuzzy, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr "strømkontrolinstruktion inden i en basisblok"
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, fuzzy, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr "NOTE_INSN_BASIC_BLOCK %d i midten af basisblok %d"
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, fuzzy, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr "Fald gennem-kant efter ubetinget spring %i"
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "trampoliner understøttes ikke"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, fuzzy, c-format
msgid "Missing edge %i->%i"
msgstr "Manglende kaldenavn"
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
#, fuzzy
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr "funktion er muligvis en kandidat til egenskaben 'noreturn'"
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
#, fuzzy
msgid "%H%<noreturn%> function does return"
msgstr "funktion med egenskaben 'noreturn' returnerer"
# RETMIG: dette må kunne gøres bedre
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "kontrol når til slutningen af ikke-void funktion"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "kunne ikke åbne dumpningsfilen '%s'"
-#: tree-dump.c:960
+#: tree-dump.c:965
#, fuzzy
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "ignorerer ukendt tilvalg '%.*s' i '-f%s'"
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
#, fuzzy
msgid "originally indirect function call not considered for inlining"
msgstr "Advar når en inline funktion ikke kan indbygges"
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
#, fuzzy
msgid "%Jinlining failed in call to %qF: %s"
msgstr "%Jindlejring mislykkedes i kald til '%F': %s"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "kaldt herfra"
-#: tree-mudflap.c:851
+# RETMIG: dette må kunne gøres bedre
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "kontrol når til slutningen af ikke-void funktion"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7430,38 +7447,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "-pipe understøttes ikke"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "%Jstørrelsen af returtypen til '%D' er %u byte"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "%Jstørrelsen af returtypen til '%D' er større end %wd byte"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7471,314 +7488,319 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "I sætningsfunktion"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "intern fejl"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "Manglende kaldenavn"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, fuzzy, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr "en parameter mangler efter %s"
-#: tree-ssa.c:305
+#: tree-ssa.c:302
#, fuzzy
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr "parameteren til 'asm' er ikke en konstant streng"
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
#, fuzzy
msgid "verify_flow_insensitive_alias_info failed."
msgstr "verify_flow_info mislykkedes"
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
#, fuzzy
msgid "verify_flow_sensitive_alias_info failed."
msgstr "verify_flow_info mislykkedes"
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
#, fuzzy
msgid "verify_name_tags failed"
msgstr "verify_flow_info mislykkedes"
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
#, fuzzy
msgid "verify_ssa failed."
msgstr "verify_flow_info mislykkedes"
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "'%s' bliver måske brugt uden at have en startværdi i denne funktion"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
#, fuzzy
msgid "%H%qD may be used uninitialized in this function"
msgstr "'%s' bliver måske brugt uden at have en startværdi i denne funktion"
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
#, fuzzy
msgid "no support for reduction/induction"
msgstr "Understøt ikke indbyggede 3DNow!-funktioner"
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "ikke-understøttet kombination: %s"
-#: tree.c:3258
+#: tree.c:3272
#, fuzzy
msgid "%Jfunction %qD definition is marked dllimport."
msgstr "'auto' er påhæftet funktionsdefinitionen"
-#: tree.c:3266
+#: tree.c:3280
#, fuzzy
msgid "%Jvariable %qD definition is marked dllimport."
msgstr "statisk variabel '%s' er markeret dllimport"
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "en tabel af funktioner giver ikke mening"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "en funktions returtype kan ikke være en funktion"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "ugyldig startværdi til bitstreng"
-#: tree.c:5446
+#: tree.c:5482
#, fuzzy, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr "træ-kontrol: forventede %s, har %s i %s, ved %s:%d"
-#: tree.c:5483
+#: tree.c:5519
#, fuzzy, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr "træ-kontrol: forventede %s, har %s i %s, ved %s:%d"
-#: tree.c:5496
+#: tree.c:5532
#, fuzzy, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr "træ-kontrol: forventede klasse '%c', har '%c' (%s) i %s, ved %s:%d"
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr "trækontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d"
-#: tree.c:5522
+#: tree.c:5558
#, fuzzy, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr "trækontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d"
-#: tree.c:5534
+#: tree.c:5570
#, fuzzy, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr "trækontrol: tilgik operand %d af %s med %d operander i %s, ved %s:%d"
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr "%J%D forårsager en sektionstypekonflikt"
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "%Jregisternavn ikke angivet for '%D'"
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "%Jugyldigt registernavn for '%D'"
-#: varasm.c:914
+#: varasm.c:915
#, fuzzy
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr "%Jdatatypen for '%D' passer ikke med et register"
-#: varasm.c:917
+#: varasm.c:918
#, fuzzy
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr "%Jregisteret som er angivet for '%D' passer ikke med datatypen"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "global registervariabel har en startværdi"
-#: varasm.c:930
+#: varasm.c:931
#, fuzzy
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:963
+#: varasm.c:968
#, fuzzy
msgid "%Jregister name given for non-register variable %qD"
msgstr "%Jregisternavn givet for ikke-registervariablen '%D'"
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "stakgrænser understøttes ikke på målarkitekturen"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "stakgrænser understøttes ikke på målarkitekturen"
-#: varasm.c:1592
+#: varasm.c:1607
#, fuzzy
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr "%Jjustering af '%D' er større end den maksimale objektfilsjustering - bruger %d"
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr "tråd-lokal COMMON-data er ikke implementeret"
-#: varasm.c:1666
+#: varasm.c:1671
#, fuzzy
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr "%Jforespurgt justering for '%D' er større end den implementerede justering på %d"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "startværdien for heltallet er for kompliceret"
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr "startværdien for kommatal er ikke en kommatalskonstant"
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr "ukendt mængdekonstruktionstype"
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "ugyldig startværdi for medlemmet '%s'"
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "%Jsvag erklæring af '%D' skal komme før definitionen"
-#: varasm.c:4221
+#: varasm.c:4241
#, fuzzy
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr "%Jsvag erklæring af '%D' efter første brug resulterer i ikke-defineret opførsel"
-#: varasm.c:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "%Jsvag erklæring af '%D' skal være public"
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "%Jsvag erklæring af '%D' ikke understøttet"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "kun svage aliaser understøttes i denne konfiguration"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "aliasdefinitioner er ikke understøttet i denne konfiguration; ignoreret"
-#: varasm.c:4418
+#: varasm.c:4504
+#, fuzzy
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "ugyldig brug af en ikke-defineret type '%#T'"
+
+#: varasm.c:4532
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "synlighedsegenskab er ikke understøttet i denne konfiguration; ignoreret"
@@ -7841,11 +7863,11 @@ msgid "debug: "
msgstr "fejlfinding: "
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7874,225 +7896,234 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
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:145
+#: params.def:135
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:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr "Den maksimale længde af planlæggerens liste over ventende operationer"
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr "Størrelsen af en funktionskrop som anses for stor"
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr "Maksimal kodevækst forårsaget af indlejring af stor funktion (i procent)"
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr "Hvor meget en oversættelsesenhed kan vokse pga. indlejring (i procent)"
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr "Den maksimale mængde hukommelse som skal allokeres af GCSE"
-#: params.def:180
+#: params.def:170
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:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
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:216
+#: params.def:204
#, fuzzy
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en løkke"
-#: params.def:221
+#: params.def:209
#, fuzzy
msgid "The maximum number of unrollings of a single loop"
msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
-#: params.def:226
+#: params.def:214
#, fuzzy
msgid "The maximum number of insns of a peeled loop"
msgstr "Det maksimale antal instruktioner det overvejes at udfylde ventepladser med"
-#: params.def:231
+#: params.def:219
#, fuzzy
msgid "The maximum number of peelings of a single loop"
msgstr "Det maksimale antal faser der skal gennemgås ved udførsel af GCSE"
-#: params.def:236
+#: params.def:224
#, fuzzy
msgid "The maximum number of insns of a completely peeled loop"
msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en løkke"
-#: params.def:241
+#: params.def:229
#, fuzzy
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr "Det maksimale antal instruktioner i en enkelt funktion der må indbygges"
-#: params.def:246
+#: params.def:234
#, fuzzy
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
-#: params.def:252
+#: params.def:240
#, fuzzy
msgid "The maximum number of insns of an unswitched loop"
msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en løkke"
-#: params.def:257
+#: params.def:245
#, fuzzy
msgid "The maximum number of unswitchings in a single loop"
msgstr "Det maksimale antal instruktioner i en enkelt funktion der må indbygges"
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
#, fuzzy
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr "Maksimal kodevækst forårsaget af haleduplikering (i procent)"
-#: params.def:317
+#: params.def:297
#, fuzzy
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr "Stop omvendt vækst hvis den omvendte sandsynlighed for den bedste kant er mindre end denne tærskel (i procent)"
-#: params.def:322
+#: params.def:301
#, fuzzy
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). 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:327
+#: params.def:305
#, fuzzy
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). 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:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr "Det maksimale antal indadgående kanter der overvejes til krydsspring"
-#: params.def:340
+#: params.def:317
#, fuzzy
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr "Det maksimale antal indadgående kanter der overvejes til krydsspring"
-#: params.def:346
+#: params.def:323
+#, fuzzy
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en løkke"
+
+#: params.def:329
#, fuzzy
msgid "The maximum length of path considered in cse"
msgstr "Den maksimale længde af planlæggerens liste over ventende operationer"
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
#, fuzzy
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr "Udfør et antal mindre, dyre optimeringer"
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
#, fuzzy
msgid "The maximum memory locations recorded by cselib"
msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
-#: params.def:395
+#: params.def:386
#, fuzzy
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:401
+#: params.def:391
#, fuzzy
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr "Minimal heap-størrelse før garbage collection startes, i kilobyte."
-#: params.def:409
+#: params.def:399
#, fuzzy
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en løkke"
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
#, fuzzy
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr "Det maksimale antal indadgående kanter der overvejes til krydsspring"
-#: params.def:424
+#: params.def:414
#, fuzzy
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr "Det maksimale antal indadgående kanter der overvejes til krydsspring"
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
#, fuzzy
msgid "The upper bound for sharing integer constants"
msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
@@ -8131,9 +8162,9 @@ msgstr "ragelse i slutningen af '#pragma unused'"
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
+#: config/darwin.c:1350
#, fuzzy
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "synlighedsegenskab er ikke understøttet i denne konfiguration; ignoreret"
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -8194,17 +8225,17 @@ msgstr "ragelse i slutningen 'af #pragma %s'"
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
#, fuzzy
msgid "Set sizeof(bool) to 1"
msgstr "sizeof(long double) er 16"
-#: config/darwin.h:154
+#: config/darwin.h:157
#, fuzzy
msgid "Generate code suitable for fast turn around debugging"
msgstr "Generér kode til et Sun Sky-kort"
-#: config/darwin.h:156
+#: config/darwin.h:159
#, fuzzy
msgid "Don't generate code suitable for fast turn around debugging"
msgstr "Generér ikke kode til en bit-manipuleringsenhed"
@@ -8214,7 +8245,7 @@ msgstr "Generér ikke kode til en bit-manipuleringsenhed"
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "aliasdefinitioner er ikke understøttet i denne konfiguration; ignoreret"
@@ -8265,7 +8296,7 @@ msgstr "ugyldig værdi '%s' til tilvalget -mfp-rounding-mode"
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "ugyldig værdi '%s' til tilvalget -mfp-trap-mode"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "ugyldig værdi '%s' til tilvalget -mtls-size"
@@ -8306,91 +8337,91 @@ msgstr "L%d-mellemlagersventetid ukendt for %s"
msgid "bad value %qs for -mmemory-latency"
msgstr "ugyldig værdi '%s' for -mmemory-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "ugyldig %%H-værdi"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr "ugyldig %%J-værdi"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "ugyldig %%r-værdi"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "ugyldig %%R-værdi"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "ugyldig %%N-værdi"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "ugyldig %%P-værdi"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "ugyldig %%h-værdi"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "ugyldig %%L-værdi"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "ugyldig %%m-værdi"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "ugyldig %%M-værdi"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "ugyldig %%U-værdi"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "ugyldig %%s-værdi"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "ugyldig %%C-værdi"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "ugyldig %%E-værdi"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr "ukendt relokaliserings-unspec"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "ugyldig %%xn-kode"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr "ugyldig indbygget fcode"
@@ -8407,14 +8438,14 @@ msgstr "ugyldig indbygget fcode"
#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Brug hardwarekommatal"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "Brug ikke hardwarekommatal"
@@ -8536,7 +8567,7 @@ msgstr "Kontrollér den præcision der gives til kommatalsundtagelser"
msgid "Tune expected memory latency"
msgstr "Justér den forventede hukommelsesventetid"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr "Angiv bitstørrelse for umiddelbar TLS-afsæt"
@@ -8555,17 +8586,17 @@ msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr "ugyldig operand til %%R-koden"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "ugyldig operand til %%H/%%L-koden"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr "ugyldig operand til %%U-koden"
@@ -8577,168 +8608,168 @@ msgstr "ugyldig operand til %%V-koden"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "ugyldig operand-uddatakode"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "tilvalget -mcpu=%s er i konflikt med tilvalget -march="
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "ugyldig værdi (%s) til tilvalget %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "målprocessoren understøtter ikke interarbejde"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
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:928
+#: config/arm/arm.c:942
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:931
+#: config/arm/arm.c:945
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:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check og -mno-apcs-frame er indbyrdes uforenelige"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS-genindtrædelig kode er ikke understøttet - ignoreret"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g med -mno-apcs-frame giver måske ikke fornuftig fejlanalysering"
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
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:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "ugyldigt tilvalg %s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, fuzzy, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr "ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, fuzzy, c-format
msgid "structure size boundary can only be set to %s"
msgstr "strukturstørrelsesgrænse kan kun sættes til 8 eller 32"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= er ubrugelig uden -fpic"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "kan ikke bruge '%s' til PIC-register"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "Generér char-instruktioner"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "ret-instruktion ikke implementeret"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "ugyldig operandkode '%c'"
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
#, fuzzy
msgid "instruction never exectued"
msgstr "ubetinget %2d aldrig udført\n"
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "manglende startparantes"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr "kan ikke beregne virkelig placering af stakkede parametre"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "vælger skal være en umiddelbar værdi"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "maske skal være en umiddelbar værdi"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
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"
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand"
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "%Jvariablen '%D' med startværdi er markeret dllimport"
@@ -8848,7 +8879,7 @@ msgstr "Angiv den mindste bitjustering af strukturer"
msgid "Specify the register to be used for PIC addressing"
msgstr "Angiv det register der skal bruges til PIC-adressering"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr "Angiv en ABI"
@@ -8864,55 +8895,65 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorér dllimport-egenskaben for funktioner"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "stor rammehenvisningsændring (%d) med -mtiny-stack"
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr "ugyldig adresse, ikke (reg+disp):"
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr "intern oversætterfejl - ugyldig adresse:"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr "intern oversætterfejl - ugyldig tilstand:"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
msgid "invalid insn:"
msgstr "ugyldig instruktion:"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr "ukorrekt instruktion:"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr "ukendt flytteinstruktion:"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr "ugyldig skifteinstruktion:"
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr "intern oversætterfejl - ukorrekt skift:"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
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:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
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:4615
+#: config/avr/avr.c:4728
#, fuzzy, c-format
msgid "MCU %qs supported for assembler only"
msgstr "MCU '%s' understøttes kun for maskinkode"
@@ -9302,243 +9343,234 @@ msgstr "Angiv maksimalt antal iterationer for RPTS"
msgid "Select CPU to generate code for"
msgstr "Vælg den processor der skal genereres kode til"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr "uventet indekstype i cris_print_index"
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr "uventet grundtype in cris_print_base"
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "stakramme for stor: %d byte"
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr "allokeret, men ubenyttet venteliste i afslutning"
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "uventet funktionstype behøver stak justering for __builtin_eh_return"
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr "ugyldig operand til 'b'-ændring"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr "ugyldig operand til 'v'-ændring"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr "ugyldig operand til 'P'-ændring"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr "ugyldig operand til 'p'-ændring"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr "ugyldig operand til 'z'-ændring"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr "ugyldig operand til 'H'-ændring"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr "ugyldigt register"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr "ugyldig operand til 'e'-ændring"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr "ugyldig operand til 'm'-ændring"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr "ugyldig operand til 'A'-ændring"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr "ugyldig operand til 'D'-ændring"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr "ugyldig operand til 'T'-ændring"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr "ugyldigt operandændringsbogstav"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "intern fejl: ugyldigt register: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr "uventet multiplikativ operand"
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr "uventet operand"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "ukendt adresse"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
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:2429
+#: config/cris/cris.c:2421
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:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr "ukendt formodet konstant"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "ukendt formodet konstant i cris_global_pic_symbol"
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, 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:2658
+#: config/cris/cris.c:2650
#, 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:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "ukendt CRIS-versionsspecifikation i -mtune=: %s"
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "-fPIC og -fpic understøttes ikke af denne konfiguration"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
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:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr "uventede bivirkninger i adresse"
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr "uventet PIC-symbol"
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr "PIC-register er ikke sat op"
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr "uventet adresseudtryk"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
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:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr "uventet NOTE som addr_const:"
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
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
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr "For elinux; forespørg en angivet stakstørrelse for dette program"
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
#, fuzzy
msgid "Work around bug in multiplication instruction"
msgstr "Benyt ikke kommatalsinstruktioner til multiplikationsakkumulering"
#. 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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Oversæt for ETRAX 4 (CRIS v3)"
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Oversæt for ETRAX 100 (CRIS v8)"
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr "Udsend fejlanalyseringsinfo i maskinkode"
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr "Benyt ikke betingelseskoder fra normale instruktioner"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "Udsend ikke adresseringstilstande med bivirkningstildeling"
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr "Finjustér ikke stakjustering"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr "Finjustér ikke justering af skrivbare data"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr "Finjustér ikke justering af kode og skrivebeskyttet data"
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr "Justér kode og data til 32 bit"
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr "Justér ikke elementer i kode eller data"
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr "Overskriv -mbest-lib-options"
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
msgid "Generate code for the specified chip or CPU version"
msgstr "Generér kode til en given chip- eller processorversion"
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr "Finjustér justering til en given chip- eller processorversion"
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
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:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "ingen FUNCTION_PROFILER for CRIS"
@@ -9546,46 +9578,46 @@ msgstr "ingen FUNCTION_PROFILER for CRIS"
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "Benyt ikke GOTPLT-referencer sammen med -fpic og -fPIC"
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: ikke-håndteret adresse"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: ukendt '%%p'-kode"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: ukendt '%%b'-kode"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: ukendt '%%B'-kode"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: ugyldig operand til '%%A'-kode"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: ugyldig '%%x'-kode"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: ugyldig '%%F'-kode"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: ukendt kode"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: ikke-håndteret MEM"
@@ -9593,145 +9625,142 @@ msgstr "fr30_print_operand: ikke-håndteret MEM"
msgid "Assume small address space"
msgstr "Antag lille adresserum"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr "Ukendt processor: -mcpu=%s"
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr "Ugyldig instruktion til frv_print_operand_address:"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr "Ugyldigt register til frv_print_operand_memory_reference_reg:"
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr "Ugyldig instruktion til frv_print_operand_memory_reference:"
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+#, fuzzy
+msgid "bad condition code"
+msgstr "ugyldig indbygget fcode"
+
+#: config/frv/frv.c:2796
msgid "Bad insn in frv_print_operand, bad const_double"
msgstr "Ugyldig instruktion i frv_print_operand, ugyldig const_double"
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "Ugyldig instruktionen til frv_print_operand, 'C'-modifikation:"
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "Ugyldig instruktion til frv_print_operand, 'c'-modifikation:"
-
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, 'e'-modifikation:"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, 'F'-modifikation:"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, 'f'-modifikation:"
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
#, fuzzy
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr "Ugyldig instruktionen til frv_print_operand, 'C'-modifikation:"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, 'L'-modifikation:"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, 'M/N'-modifikation:"
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, 'O'-modifikation:"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr "Ugyldig instruktion til frv_print_operand, P-modifikation:"
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr "Ugyldig instruktion i frv_print_operand, tilfældet z"
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr "Ugyldig instruktion i frv_print_operand, tilfældet 0"
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr "fr_print_operand: ukendt kode"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr "Ugyldig output_move_single-operand"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr "Ugyldig output_move_double-operand"
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr "Ugyldig output_condmove_single-operand"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr "akkumulator er ikke et konstant heltal"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr "akkumulatortal er uden for det gyldig interval"
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, fuzzy, c-format
msgid "inappropriate accumulator for %qs"
msgstr "forkert akkumulator for '%s'"
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "ugyldig typeparameter"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, fuzzy, c-format
msgid "%qs expects a constant argument"
msgstr "'%s' forventer en konstant parameter"
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "konstant parameter uden for det gyldige interval for '%s'"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr "mediafunktioner er ikke tilgængelige medmindre -mmedia benyttes"
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr "denne mediafunktion er kun tilgængelig på fr500"
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
#, fuzzy
msgid "this media function is only available on the fr400 and fr550"
msgstr "denne mediafunktion er kun tilgængelig på fr400"
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
#, fuzzy
msgid "this builtin function is only available on the fr405 and fr450"
msgstr "denne mediafunktion er kun tilgængelig på fr400"
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
#, fuzzy
msgid "this builtin function is only available on the fr500 and fr550"
msgstr "denne mediafunktion er kun tilgængelig på fr500"
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
#, fuzzy
msgid "this builtin function is only available on the fr450"
msgstr "denne mediafunktion er kun tilgængelig på fr400"
@@ -9745,7 +9774,7 @@ msgstr "denne mediafunktion er kun tilgængelig på fr400"
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr " (frv)"
@@ -9825,177 +9854,185 @@ msgstr "Generér ikke H8/300H-kode"
msgid "Use H8/300 alignment rules"
msgstr "Benyt H8/300-justeringsregler"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand"
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mcmodel="
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "ugyldig værdi (%s) til tilvalget -masm="
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "kodemodellen %s er ikke understøttet i %s bit-tilstand"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "kodemodellen 'large' er ikke understøttet endnu"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "%i bit-tilstand er ikke oversat med ind"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "den valgte processor understøtter ikke x86-64-instruktionssættet"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "ugyldig værdi (%s) til tilvalget -march="
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d er ikke mellem 0 og %d"
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops er forældet, benyt -falign-loops"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d er ikke mellem 0 og %d"
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps er forældet, benyt -falign-jumps"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions er forældet, benyt -falign-functions"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, 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/i386.c:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d er ikke mellem 0 og 5"
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mtls-dialect"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double giver ikke mening i 64 bit-tilstand"
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "kaldekonventionen -mrtd er ikke understøttet i 64 bit-tilstand"
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "SSE-instruktionssæt deaktiveret, bruger 387-beregninger"
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "387-instruktionssæt deaktiveret, bruger SSE-beregninger"
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mfpmath="
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr "fastcall og stdcall er indbyrdes uforenelige"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr "fastcall og regparm er indbyrdes uforenelige"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "parameter til egenskaben '%s' er større end %d"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "ugyldig UNSPEC som operand"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr "udvidede registre har ikke høje halvdele"
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr "ikke-understøttet operandstørrelse for udvidede registre"
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
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:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "ugyldig operandkode '%c'"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
msgid "invalid constraints for operand"
msgstr "ugyldige begrænsninger for operand"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
msgid "unknown insn mode"
msgstr "ukendt instruktionstilstand"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr "skifteværdi skal være en umiddelbar værdi"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "uforenelig egenskab '%s' ignoreret"
@@ -10100,170 +10137,170 @@ msgstr "-f%s er ikke understøttet: ignoreret"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "Alternativ kaldekonvention"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Brug normal kaldekonvention"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "Justér nogle double-variabler til dword-grænserne"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "Justér double-variabler til word-grænserne"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr "Lokale variabler uden startværdi i .bss"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr "Lokale variabler uden startværdi i .data"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "Brug IEEE-matematik til kommatalssammenligninger"
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "Brug ikke IEEE-matematik til kommatalssammenligninger"
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr "Returnér værdier fra funktioner i fpu-registre"
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
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:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "Generér ikke sin, cos, sqrt til fpu"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generér sin, cos og sqrt til fpu"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Udelad rammehenvisningen i de yderste funktioner"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "Aktivér stakprøvning"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "Justér strengoperationernes destination"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr "Justér ikke strengoperationernes destination"
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "Indbyg alle kendte strengoperationer"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr "Indbyg ikke alle kendte strengoperationer"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr "Brug push-instruktioner til at gemme udgående parametre"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr "Brug ikke push-instruktioner til at gemme udgående parametre"
# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr "Understøt indbyggede MMX-funktioner"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
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:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr "Understøt indbyggede 3DNow!-funktioner"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr "Understøt ikke indbyggede 3DNow!-funktioner"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
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:406
+#: config/i386/i386.h:405
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:408
+#: config/i386/i386.h:407
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:410
+#: config/i386/i386.h:409
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:412
+#: config/i386/i386.h:411
#, fuzzy
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Understøt indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
#, fuzzy
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Understøt ikke indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) er 16"
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) er 12"
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr "Generér 64 bit x86-64-kode"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr "Generér 64 bit i386-kode"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr "Benyt rødzone i x86-64-koden"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr "Benyt ikke rødzone i x86-64-koden"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -10277,54 +10314,54 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Planlæg koden til en given processor"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
msgid "Generate floating point mathematics using given instruction set"
msgstr "Generér kommatalsmatematik vha. givent instruktionssæt"
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Generér kode til en given processor"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "Antallet af registre der skal bruges til at overbringe heltalsparametre"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr "Løkkekode skal justeres til denne potens af 2"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
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:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr "Funktionsbegyndelser justeres til denne potens af 2"
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
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:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Forgreninger koster dette (1-5, vilkårlige enheder)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr "Benyt den givne x86-64-kodemodel"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "Benyt den givne maskinkodedialekt"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr "Benyt den givne tråd-lokale lagringsdialekt"
@@ -10365,62 +10402,62 @@ msgstr "Generér ikke kode som bruger FPU'en"
msgid "malformed #pragma builtin"
msgstr "forkert udformet '#pragma builtin'"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "ugyldig parameter til egenskaben '%s'"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
#, fuzzy
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "en dataområdeegenskab kan ikke angives for lokale variable"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
#, fuzzy
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
#, fuzzy
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "en dataområdeegenskab kan ikke angives for lokale variable"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: ukendt kode"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "værdien af -mfixed-range skal være på formen REG1-REG2"
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s er et tomt interval"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
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:4219
+#: config/ia64/ia64.c:4651
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:4236
+#: config/ia64/ia64.c:4668
#, fuzzy
msgid "cannot optimize square root for both latency and throughput"
msgstr "kan ikke optimere heltalsdivision for både ventetid og båndbredde"
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "ugyldig værdi (%s) for tilvalget -mtls-size="
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, fuzzy, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
@@ -10428,177 +10465,173 @@ msgstr "ugyldig værdi (%s) til tilvalget -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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Generér storendet kode"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Generér lilleendet kode"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Generér kode til GNU as"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Generér kode til Intel as"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Generér kode til GNU ld"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Generér kode til Intel ld"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "Generér kode uden GP-registeret"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr "Udsend stopbit før og efter volatile udvidede asm-sætninger"
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "Udsend ikke stopbit før og efter volatile udvidede asm-sætninger"
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr "Udsend kode for Itanium (TM) processor B-skridt"
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "Benyt in/loc/out-registernavne"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "Deaktivér brug af sdata/scommon/sbss"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "Aktivér brug af sdata/scommon/sbss"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp er konstant (men gem/gendan gp ved indirekte kald)"
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "Generér selvflyttende kode"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr "Generér indlejrede kommatalsdivisioner, optimér for ventetid"
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr "Generér indlejrede kommatalsdivisioner, optimér for båndbredde"
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
#, fuzzy
msgid "Do not inline floating point division"
msgstr "Anbring ikke kommatalskonstanter i indholdsfortegnelsen"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr "Generér indlejrede heltalsdivisioner, optimér for ventetid"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr "Generér indlejrede heltalsdivisioner, optimér for båndbredde"
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "Advar ikke om heltalsdivision på oversættelsestidspunktet med nul"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
#, fuzzy
msgid "Generate inline square root, optimize for latency"
msgstr "Generér indlejrede heltalsdivisioner, optimér for ventetid"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
#, fuzzy
msgid "Generate inline square root, optimize for throughput"
msgstr "Generér indlejrede heltalsdivisioner, optimér for båndbredde"
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
#, fuzzy
msgid "Do not inline square root"
msgstr "Deaktivér ikke pladsregistre"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "Aktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as"
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "Deaktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as"
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
#, fuzzy
msgid "Disable earlier placing stop bits"
msgstr "Deaktivér parallelle instruktioner"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr "Angiv interval af registre der skal gøres faste"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr "ugyldig operand"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, fuzzy, c-format
msgid "The compiler does not support -march=%s."
msgstr "%s understøtter ikke %s"
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, fuzzy, 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"
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "parameteren til 'asm' er ikke en konstant streng"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, nul-henvisning"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, fuzzy, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ukendt tegnsætning '%c'"
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND nul-henvisning"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr "ugyldig %%P-operand"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "ugyldig %%p-værdi"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ugyldigt brug af %%d, %%x eller %%X"
@@ -10615,87 +10648,87 @@ msgstr "Benyt GP-relative sdata/sbss-sektioner"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "Benyt ikke GP-relative sdata/sbss-sektioner"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "Benyt ROM i stedet for RAM"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "Benyt ikke ROM i stedet for RAM"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Anbring konstanter uden startværdi i ROM (behøver -membedded-data)"
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr "Anbring ikke konstanter uden startværdi i ROM"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "Angiv processor til planlægningsformål"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr "Angiv processor til kodegenereringsformål"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "ugyldig værdi (%s) til tilvalget -mmodel"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "ugyldig værdi (%s) til tilvalget -msdata"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, fuzzy, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "ugyldig værdi (%s) til tilvalget -msdata"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr "ugyldig operand til %%s-koden"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr "ugyldig operand til %%p-koden"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr "ugyldig instruktion for 'A'"
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "ugyldig operand til %%T/%%B-koden"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr "ugyldig operand til %%N-koden"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr "præfiks forøgelsesadresse er ikke et register"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr "præfiks formindskelsesadresse er ikke et register"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr "postfiks forøgelsesadresse er ikke et register"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "ugyldig adresse"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr "lo_sum ikke af register"
@@ -10724,11 +10757,11 @@ msgstr "Kodestørrelse: small, medium eller large"
msgid "Small data area: none, sdata, use"
msgstr "Område til små data: none, sdata, use"
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr "Kald ikke nogen mellemlagertømningsfunktion"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr "Angiv mellemlagertømningsfunktion"
@@ -10747,51 +10780,51 @@ msgstr "Angiv mellemlagertømningsfunktion"
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "-f%s ignoreret for 68HC11/68HC12 (ikke understøttet)"
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
#, fuzzy
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:1441
+#: config/m68hc11/m68hc11.c:1439
#, fuzzy
msgid "%<trap%> attribute is already used"
msgstr "egenskaben 'trap' er allerede benyttet"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr "flytteinstruktion ikke håndteret"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr "ugyldigt register i flytteinstruktionen"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr "ugyldig operand i instruktionen"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr "ugyldigt register i instruktionen"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr "operand 1 skal være et hårdt register"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr "ugyldig roteringsinstruktion"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
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:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr "kan ikke udføre Z-registererstatning"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr "ugyldig Z-registererstatning for instruktion"
@@ -10886,7 +10919,7 @@ msgstr "-C og -o er indbyrdes uforenelige"
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/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr "stakgrænseudtryk understøttes ikke"
@@ -11030,7 +11063,7 @@ msgstr "Benyt anden kaldekonvention vha. 'rtd'"
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "ugyldigt tilvalg '-mshort-increment=%s'"
@@ -11087,137 +11120,139 @@ msgstr "Generér kode til en M*Core M340"
msgid "Maximum amount for a single stack increment operation"
msgstr "Maksimalt antal for en enkelt stakforøgelsesoperation"
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "ugyldig værdi (%s) til tilvalget -mabi="
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, fuzzy, c-format
msgid "-mips%s 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:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "-march=%s er ikke forenelig med den valgte ABI"
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr "-mgp64 benyttet med en 32 bit-processor"
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr "-mgp32 benyttet med et 64 bit-ABI"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr "-mgp64 benyttet med et 32 bit-ABI"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, c-format
msgid "unsupported combination: %s"
msgstr "ikke-understøttet kombination: %s"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+#, fuzzy
+msgid "-mint64 is a deprecated option"
+msgstr "type er forældet"
+
+#: config/mips/mips.c:4187
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:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G er uforenelig med PIC-kode som genereres som standard"
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
#, fuzzy
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-frepo skal bruges med -c"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, 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:4772
+#: config/mips/mips.c:4783
#, 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:4785
+#: config/mips/mips.c:4796
#, 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:4798
+#: config/mips/mips.c:4809
#, 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:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ukendt tegnsætning '%c'"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND nul-henvisning"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND nul-henvisning"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND nul-henvisning"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND nul-henvisning"
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "ugyldig %%j-værdi"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "kan ikke håndtere inkonsistente kald af '%s'"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr "processornavnet skal staves med små bogstaver"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr "ugyldig værdi (%s) for %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11227,67 +11262,67 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "Benyt 64 bit int-type"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "Benyt 64 bit long-type"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "Benyt 32 bit long-type"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "Optimér lui/addiu-adresseindlæsninger"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr "Optimér ikke lui/addiu-adresseindlæsninger"
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
#, fuzzy
msgid "Use GNU as (now ignored)"
msgstr "Benyt GP-relative sdata/sbss-sektioner"
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
#, fuzzy
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "Benyt GP-relative sdata/sbss-sektioner"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
#, fuzzy
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "Benyt ikke GP-relative sdata/sbss-sektioner"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
#, fuzzy
msgid "Output compiler statistics (now ignored)"
msgstr "Udsend oversættelsesstatistik"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "Udsend ikke oversættelsesstatistik"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "Optimér ikke blokflytninger"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "Optimér blokflytninger"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "Benyt mips-tfile-maskinkodeefterfase"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "Benyt ikke mips-tfile-maskinkodeefterfase"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Benyt softwarekommatal"
@@ -11297,209 +11332,209 @@ msgstr "Benyt softwarekommatal"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "Benyt hardware-kommatal"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "Benyt 64 bit-kommatalsregistre"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "Benyt 32 bit-kommatalsregistre"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "Benyt 64 bit almene registre"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "Benyt 32 bit almene registre"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Benyt Irix PIC"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "Benyt ikke Irix PIC"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "Benyt indirekte kald"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "Benyt ikke indirekte kald"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Benyt storendet byteordning"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Benyt lilleendet byteordning"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "Benyt kun enkeltpræcisions (32 bit) kommatal"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "Benyt ikke kun enkeltpræcisions (32 bit) kommatal"
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "Benyt hardware-kommatalsinstruktioner"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "Benyt ikke MIPS16-instruktioner"
# hvad så det er...
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "Benyt multiplikationsakkumulering"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "Benyt ikke multiplikationsakkumulering"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr "Generér ikke sammensatte gang/addér-instruktioner"
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "Generér sammensatte gang/addér-instruktioner"
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
#, fuzzy
msgid "Perform VR4130-specific alignment optimizations"
msgstr "Udfør springtrådningsoptimeringer"
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
#, fuzzy
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr "Udfør ikke halekaldsoptimering"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "Arbejd rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
#, fuzzy
msgid "Work around R4000 errata"
msgstr "Arbejd rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
#, fuzzy
msgid "Don't work around R4000 errata"
msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
#, fuzzy
msgid "Work around R4400 errata"
msgstr "Arbejd rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
#, fuzzy
msgid "Don't work around R4400 errata"
msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
#, fuzzy
msgid "Don't work around certain VR4120 errata"
msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Forårsag undtagelse ved heltalsdivision med nul"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "Forårsag ikke undtagelse ved heltalsdivision med nul"
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
#, fuzzy
msgid "Use trap to check for integer divide by zero"
msgstr "Forårsag undtagelse ved heltalsdivision med nul"
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
#, fuzzy
msgid "Use break to check for integer divide by zero"
msgstr "Forårsag undtagelse ved heltalsdivision med nul"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr "Benyt Branch Likely-instruktioner, overskrivende forvalget for arkitektur"
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
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:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
#, fuzzy
msgid "Generate mips16 code"
msgstr "Generér SA-kode"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
#, fuzzy
msgid "Generate normal-mode code"
msgstr "Generér SA-kode"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "tilvalg slået til: "
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "tilvalg slået til: "
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr "Angiv en Standard MIPS ISA"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "MIPS16-funktionsprofilering"
@@ -11526,70 +11561,70 @@ msgstr "function_profiler-understøttelse for MMIX"
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:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX-intern: Forventede en CONST_INT, ikke dette"
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX-intern: Ugyldigt register: %d"
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
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:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX-intern: Forventede et register, ikke dette"
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
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:1602
+#: config/mmix/mmix.c:1611
#, fuzzy, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr "MMIX-intern: Mangler '%c'-case i mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX-intern: Kan ikke dekode denne operand"
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX-intern: Dette er ikke en genkendt adresse"
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, 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:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr "stakramme ikke et produkt af 8 byte: %d"
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, 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:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX-intern: Forsøger at udskrive ugyldigt omvendt betingelse:"
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX-intern: Hvad er CC af dette?"
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX-intern: Hvad er CC af dette?"
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX-intern: Dette er ikke en konstant:"
@@ -11662,16 +11697,16 @@ msgstr "Generér et enkelt afslutningspunkt for hver funktion"
msgid "Do not generate a single exit point for each function"
msgstr "Generér ikke et enkelt afslutningspunkt for hver funktion"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "Målret mod AM33-processoren"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
#, fuzzy
msgid "Target the AM33/2.0 processor"
msgstr "Målret mod AM33-processoren"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr "Aktivér tolerant sammenkædning"
@@ -11755,7 +11790,7 @@ msgstr "\"Små registerklasser\"-lapning"
msgid "No \"Small register classes\" kludge"
msgstr "Ingen \"Små registerklasser\"-lapning"
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11764,7 +11799,7 @@ msgstr ""
"ukendt parameter til -mschedule= (%s).\n"
"Gyldige parametre er 700, 7100, 7100LC, 7200, 7300 og 8000\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11773,7 +11808,7 @@ msgstr ""
"ukendt parameter til -march= (%s).\n"
"Gyldige parametre er 1.0, 1.1 og 2.0\n"
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11782,7 +11817,7 @@ msgstr ""
"ukendt parameter til -march= (%s).\n"
"Gyldige parametre er 1.0, 1.1 og 2.0\n"
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11791,7 +11826,7 @@ msgstr ""
"ukendt parameter til -march= (%s).\n"
"Gyldige parametre er 1.0, 1.1 og 2.0\n"
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11800,27 +11835,32 @@ msgstr ""
"ukendt parameter til -march= (%s).\n"
"Gyldige parametre er 1.0, 1.1 og 2.0\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "PIC-kodegenerering er ikke understøttet i den portable kørselsmodel\n"
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "PIC-kodegenerering er ikke kompatibel med hurtige indirekte kald\n"
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g er kun understøttet ved brug af GAS på denne processor,"
-#: config/pa/pa.c:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr "tilvalget -g deaktiveret"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr "Generér CPP-defineringer til server-IO"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr "Generér CPP-defineringer til arbejdsstation-IO"
@@ -11969,11 +12009,11 @@ msgstr "Angiv interval af registre der skal gøres faste"
msgid "Specify CPU for scheduling purposes."
msgstr "Angiv processor til planlægningsformål"
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
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
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr "Antag at kode vil blive sammenkædet med HP ld"
@@ -12110,211 +12150,239 @@ msgstr "tal skal enten være 0 eller 1"
msgid "junk at end of #pragma longcall"
msgstr "ragelse i slutningen af #pragma longcall"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple er ikke understøttet på lilleendede systemer"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring er ikke understøttet på lilleendede systemer"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "ukendt tilvalg -mdebug-%s"
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
#, fuzzy
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr "ukendt parameter '%s' til -mtraceback; forventer 'full', 'partial' eller 'none'"
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "Ukendt tilvalg -mlong-double-%s"
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, fuzzy, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "ukendt tilvalg til -misel= angivet: '%s'"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ukendt ABI angivet: '%s'"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "ugyldigt tilvalg '-mshort-data-%s'"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, fuzzy, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "ukendt tilvalg til -misel= angivet: '%s'"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
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:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
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:6748
+#: config/rs6000/rs6000.c:6847
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:6802
+#: config/rs6000/rs6000.c:6901
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:6964
+#: config/rs6000/rs6000.c:7063
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:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
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:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
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:7571
+#: config/rs6000/rs6000.c:7670
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:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "ugyldig %%f-værdi"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "ugyldig %%F-værdi"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "ugyldig %%G-værdi"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "ugyldig %%j-kode"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "ugyldig %%J-kode"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "ugyldig %%k-værdi"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "ugyldig %%K-værdi"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "ugyldig %%O-værdi"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "ugyldig %%q-værdi"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "ugyldig %%S-værdi"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "ugyldig %%T-værdi"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "ugyldig %%u-værdi"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "ugyldig %%v-værdi"
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "stakramme for stor"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr "ingen profilering af 64 bit-kode for denne ABI"
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
-msgstr "Overbring altid kommatalsparametre i hukommelse"
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
-msgstr "Overbring ikke altid kommatalsparametre i hukommelse"
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "Understøt meddelelsesoverbringelse med Parallel Environment"
@@ -12378,17 +12446,17 @@ msgstr "-maix64 kræver at PowerPC64-arkitekturen forbliver aktiveret"
msgid "-m64 not supported in this configuration"
msgstr "%s understøttes ikke af denne konfiguration"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
#, fuzzy
msgid "-m64 requires a PowerPC64 cpu"
msgstr "-maix64 kræver at PowerPC64-arkitekturen forbliver aktiveret"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
#, fuzzy
msgid "Call mcount for profiling before a function prologue"
msgstr "Flyt ikke instruktioner til en funktions begyndelse"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
#, fuzzy
msgid "Call mcount for profiling after a function prologue"
msgstr "Flyt ikke instruktioner til en funktions begyndelse"
@@ -12546,7 +12614,7 @@ msgstr "Generér char-instruktioner"
msgid "Do not generate single field mfcr instruction"
msgstr "Generér ikke char-instruktioner"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Benyt faciliteter fra og planlæg koden til en given processor"
@@ -12621,7 +12689,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET er ikke understøttet"
@@ -12773,83 +12841,87 @@ msgstr "-mcall-aixdesc skal være stor-endet"
msgid "-m%s not supported in this configuration"
msgstr "%s understøttes ikke af denne konfiguration"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, fuzzy, c-format
msgid "Unknown cpu used in -march=%s."
msgstr "Ukendt processor: -mcpu=%s"
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, fuzzy, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "Ukendt processor: -mcpu=%s"
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "fældetilstand understøttes ikke på Unicos/Mk"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
#, fuzzy
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand"
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "ugyldig værdi til -mcall-%s"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "ugyldig værdi til -msdata=%s"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "ugyldig værdi til -msdata=%s"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr "Kan ikke adskille adresse."
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr "UNKNOWN i print_operand !?"
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr "Total størrelse af lokale variable overstiger arkitekturgrænsen."
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "lagringsstørrelsen af '%s' er ikke kendt"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12950,29 +13022,29 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs understøttes ikke af denne undermålarkitektur"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
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.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs 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:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs 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:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant"
@@ -13008,7 +13080,7 @@ msgstr "statisk variabel '%s' er markeret dllimport"
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d"
@@ -13020,183 +13092,183 @@ msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d"
msgid "Profiling is not supported on this target."
msgstr "Profilering er ikke understøttet på målarkitekturen."
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s understøttes ikke af denne konfiguration"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 er ikke tilladt med -m64"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= understøttes ikke på 32 bit-systemer"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "ugyldig %%Y-operand"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "ugyldig %%A-operand"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "ugyldig %%B-operand"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "ugyldig %%c-operand"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "ugyldig %%C-operand"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "ugyldig %%d-operand"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "ugyldig %%D-operand"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "ugyldig %%f-operand"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, c-format
msgid "invalid %%s operand"
msgstr "ugyldig %%s-operand"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr "long long-konstant er ikke en gyldig umiddelbar operand"
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr "kommatalskonstant er ikke en gyldig umiddelbar operand"
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "Benyt 64 bit long double"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "Benyt 128 bit long double"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Generér kode til storendet"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Generér kode til lilleendet"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr "Benyt lilleendet byte-orden til data"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "Antag at double-variabler kan være ujusterede"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Antag at alle double-variabler er justerede"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "Overbring -assert pure-text til sammenkæderen"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "Overbring ikke -assert pure-text til sammenkæderen"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "Benyt ABI-reserverede registre"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "Benyt ikke ABI-reserverede registre"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "Benyt hardware quad-kommatalsinstruktioner"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "Benyt ikke hardware quad-kommatalsinstruktioner"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "Oversæt for v8plus-ABI"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "Oversæt ikke for v8plus-ABI"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Benyt Visual Instruction Set"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "Benyt ikke Visual Instruction Set"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "Henvisninger er 64 bit"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "Henvisninger er 32 bit"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "Benyt 32 bit-API"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "Benyt 64 bit-API"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "Benyt stakafsæt"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "Benyt ikke stakafsæt"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr "Benyt strukturer på stærkere justering til dobbelt-ord kopier"
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "Benyt ikke strukturer på stærkere justering til dobbelt-ord kopier"
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr "Optimér halekaldsinstruktioner i maskinkodeoversætteren og sammenkæderen"
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "Optimér ikke halekaldsinstruktioner i maskinkodeoversætteren og sammenkæderen"
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr "Benyt given SPARC-kodemodel"
@@ -13313,65 +13385,65 @@ msgstr "ragelse i slutningen af '#pragma ghs endsda'"
msgid "junk at end of #pragma ghs endzda"
msgstr "ragelse i slutningen af '#pragma ghs endzda'"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s er ikke et tal"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s er for stor"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr "const_double_split modtog en ugyldig instruktion:"
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
#, fuzzy
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "en dataområdeegenskab kan ikke angives for lokale variable"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "falsk JR-konstruktion: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr "ugyldig størrelse af stakpladsfjernelse: %d"
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "falsk JARL-konstruktion: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "Falsk DISPOSE-konstruktion: %d\n"
-#: config/v850/v850.c:3045
+#: 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:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "Falsk PREPARE-konstruktion: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr "For meget stakplads at forberede: %d"
@@ -13552,12 +13624,12 @@ msgstr "Benyt indirekte CALLXn-instruktioner for store programmer"
msgid "Use direct CALLn instructions for fast calls"
msgstr "Benyt direkte CALLn-instruktioner for hurtige kald"
-#: ada/misc.c:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr "der mangler en parameter til tilvalget '-%s'"
-#: ada/misc.c:299
+#: ada/misc.c:298
#, fuzzy
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr "'-gnat' stavet forkert som '-gant'"
@@ -13566,644 +13638,665 @@ msgstr "'-gnat' stavet forkert som '-gant'"
msgid "unable to call pointer to member function here"
msgstr "kan ikke kalde henvisning til medlemsfunktion her"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <indbygget>"
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <indbygget>"
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <indbygget>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr "%s %T <konvertering>"
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
#, fuzzy
msgid "%J%s %+#D"
msgstr "%s %+#D"
-#: cp/call.c:2421
+#: cp/call.c:2428
#, fuzzy
msgid "candidates are:"
msgstr "candidate%s: %+#D"
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "konvertering fra '%T' til '%T' er tvetydigt"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
#, fuzzy
msgid "no matching function for call to %<%D(%A)%>"
msgstr "ingen passende funktion for kald til '%D(%A)'"
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
#, fuzzy
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:2890
+#: cp/call.c:2896
#, 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:2959
+#: cp/call.c:2965
#, fuzzy
msgid "no match for call to %<(%T) (%A)%>"
msgstr "ingen passende fundet for kald til '(%T) (%A)'"
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "kald af '(%T) (%A)' er tvetydigt"
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
#, fuzzy
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr "%s for operatoren '%T %s' "
-#: cp/call.c:3015
+#: cp/call.c:3022
#, fuzzy
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr "%s for operatoren '%T %s' "
-#: cp/call.c:3020
+#: cp/call.c:3027
#, fuzzy
msgid "%s for %qs in %<%s %E%>"
msgstr "manglende felt '%s' i '%s'"
-#: cp/call.c:3025
+#: cp/call.c:3032
#, fuzzy
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr "%s for operatoren '%T %s' "
-#: cp/call.c:3028
+#: cp/call.c:3035
#, fuzzy
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr "%s for operatoren '%T %s' "
-#: cp/call.c:3118
+#: cp/call.c:3125
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:3195
+#: cp/call.c:3202
#, fuzzy
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr "'%E' har typen 'void' og er ikke et throw-udtryk"
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr "operander til ?: har forskellige typer"
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "enum-typer passer ikke sammen i betinget udtryk: '%T' og '%T'"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "enum- og ikke enum-type i betinget udtryk"
-#: cp/call.c:3700
+#: cp/call.c:3706
#, fuzzy
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr "ingen '%D(int)' erklæret for suffiks '%s', prøver præfiksoperatoren i stedet"
-#: cp/call.c:3753
+#: cp/call.c:3759
#, fuzzy
msgid "using synthesized %q#D for copy assignment"
msgstr "bruger syntetiseret '%#D' for kopitildeling"
-#: cp/call.c:3755
+#: cp/call.c:3761
#, fuzzy
msgid " where cfront would use %q#D"
msgstr " hvor cfront ville bruge '%#D'"
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "sammenligning mellem '%#T' og '%#T'"
-#: cp/call.c:4044
+#: cp/call.c:4052
#, fuzzy
msgid "no suitable %<operator %s> for %qT"
msgstr "ingen passende 'operator delete' for '%T'"
-#: cp/call.c:4061
+#: cp/call.c:4069
#, fuzzy
msgid "%q+#D is private"
msgstr "'%+#D' er privat"
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "'%+#D' er beskyttet"
-#: cp/call.c:4065
+#: cp/call.c:4073
#, fuzzy
msgid "%q+#D is inaccessible"
msgstr "'%+#D' er ikke tilgængelig"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr "i denne kontekst"
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "ugyldig konvertering fra '%T' til '%T'"
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr " ved klargøring af parameteren %P til '%D'"
-#: cp/call.c:4300
+# %s bliver til returnering eller tildeling eller noget i den retning
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'"
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "%s til ikke-henvisningstypen '%T' fra NULL"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "i overbringelse af parameter %P af '%+D'"
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "konvertering fra '%T' til '%T'"
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "overbringelse af negativ værdi '%E' for %s %P af '%D'"
+
+#: cp/call.c:4203
+#, fuzzy
+msgid "converting negative value %qE to %qT"
+msgstr "%s af negativ værdi '%E' til `%T'"
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "kan ikke klargøre '%T' fra %T'"
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
#, fuzzy
msgid "cannot bind packed field %qE to %qT"
msgstr "kan ikke erklære feltet '%D' til at være af typen '%T'"
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "kan ikke klargøre '%T' fra %T'"
-#: cp/call.c:4401
+#: cp/call.c:4460
#, fuzzy
msgid "cannot pass objects of non-POD type %q#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:4427
+#: cp/call.c:4486
#, fuzzy
msgid "cannot receive objects of non-POD type %q#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"
-#: cp/call.c:4470
+#: cp/call.c:4529
#, fuzzy
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
-#: cp/call.c:4675
+#: cp/call.c:4734
#, fuzzy
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer"
-#: cp/call.c:4694
+#: cp/call.c:4753
#, fuzzy
msgid "%qT is not an accessible base of %qT"
msgstr "'%T' er en utilgængelig stamklasse til '%T'"
-#: cp/call.c:4944
+#: cp/call.c:5003
#, fuzzy
msgid "could not find class$ field in java interface type %qT"
msgstr "kunne ikke finde et class$-felt i Java-grænsefladetypen '%T'"
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "kald af ikke-funktion '%D'"
-#: cp/call.c:5231
+#: cp/call.c:5288
#, fuzzy
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'"
-#: cp/call.c:5310
+#: cp/call.c:5367
#, fuzzy
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'"
-#: cp/call.c:5328
+#: cp/call.c:5385
#, fuzzy
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr "kald af flertydig '%D(%A)' er tvetydigt"
-#: cp/call.c:5352
+#: cp/call.c:5409
#, fuzzy
msgid "cannot call member function %qD without object"
msgstr "kan ikke kalde medlemsfunktionen '%D' uden et objekt"
-#: cp/call.c:5957
+#: cp/call.c:6014
#, fuzzy
msgid "passing %qT chooses %qT over %qT"
msgstr "videregivelse af '%T' vælger '%T' frem for '%T'"
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr " i kald af '%D'"
-#: cp/call.c:6016
+#: cp/call.c:6073
#, fuzzy
msgid "choosing %qD over %qD"
msgstr "vælger '%D' frem for '%D'"
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr " for konvertering fra '%T' til '%T'"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr " fordi konverteringssekvensen for parameteren er bedre"
-#: cp/call.c:6140
+#: cp/call.c:6197
#, fuzzy
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
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:6144
+#: cp/call.c:6201
#, fuzzy
msgid "candidate 1:"
msgstr "candidate%s: %+#D"
-#: cp/call.c:6145
+#: cp/call.c:6202
#, fuzzy
msgid "candidate 2:"
msgstr "candidate%s: %+#D"
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "kunne ikke konvertere '%E' til '%T'"
-#: cp/call.c:6411
+#: cp/call.c:6469
#, fuzzy
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
-#: cp/call.c:6415
+#: cp/call.c:6473
#, fuzzy
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
-#: cp/class.c:273
+#: cp/class.c:272
#, fuzzy
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr "kan ikke konvertere fra stamklassen '%T' til den nedarvede type '%T' via den virtuelle stamklasse '%T'"
-#: cp/class.c:898
+#: cp/class.c:929
#, fuzzy
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgid "Java class %qT cannot have a destructor"
msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
-#: cp/class.c:899
+#: cp/class.c:931
#, fuzzy
-msgid "Java class %qT cannot have a destructor"
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
-#: cp/class.c:998
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "'%#D' og '%#D' kan ikke flertydiggøres"
-#: cp/class.c:1055
+#: cp/class.c:1088
#, fuzzy
msgid "conflicting access specifications for method %qD, ignored"
msgstr "modstridende tilgangsanvisninger til metoden '%D', ignoreret"
-#: cp/class.c:1058
+#: cp/class.c:1091
#, fuzzy, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr "modstridende tilgangsanvisninger til feltet '%s', ignoreret"
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "'%D' navngiver en konstruktionsfunktion"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "'%D' ugyldig i '%T'"
-#: cp/class.c:1121
+#: cp/class.c:1154
#, fuzzy
msgid "no members matching %qD in %q#T"
msgstr "ingen medlemmer passer til '%D' i '%#T'"
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "'%D' ugyldig i '%#T'"
-#: cp/class.c:1154
+#: cp/class.c:1187
#, fuzzy
msgid " because of local method %q#D with same name"
msgstr " på grund af den lokale metode '%#D' med det samme navn"
-#: cp/class.c:1162
+#: cp/class.c:1195
#, fuzzy
msgid " because of local member %q#D with same name"
msgstr " på grund af det lokale medlem '%#D' med det samme navn"
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
-#: cp/class.c:1226
-#, fuzzy
-msgid "base %qT 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:1534
+#: cp/class.c:1551
#, fuzzy
msgid "all member functions in class %qT are private"
msgstr "alle medlemsfunktioner i klassen '%T' er private"
-#: cp/class.c:1545
+#: cp/class.c:1562
#, fuzzy
msgid "%q#T only defines a private destructor and has no friends"
msgstr "'%#T' definerer kun en privat destruktionsfunktion og har ingen venner"
-#: cp/class.c:1585
+#: cp/class.c:1602
#, fuzzy
msgid "%q#T only defines private constructors and has no friends"
msgstr "'%#T' definerer kun private konstruktionsfunktioner og har ingen venner"
# %D er en funktion
-#: cp/class.c:1923
+#: cp/class.c:1935
#, fuzzy
msgid "no unique final overrider for %qD in %qT"
msgstr "ingen unik endelig overskrivning af '%D' i '%T'"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
#, fuzzy
msgid "%qD was hidden"
msgstr "'%D' var skjult"
-#: cp/class.c:2380
+#: cp/class.c:2410
#, fuzzy
msgid " by %qD"
msgstr " af '%D'"
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
#, fuzzy
msgid "%q#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:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
#, fuzzy
msgid "private member %q#D in anonymous union"
msgstr "privat medlem '%#D' i en anonym union"
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
#, fuzzy
msgid "protected member %q#D in anonymous union"
msgstr "beskyttet medlem '%#D' i en anonym union"
-#: cp/class.c:2545
-#, fuzzy
-msgid "vtable layout for class %qT 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:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "bitfelt '%#D' med en ikke-heltalstype"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "bredden af bitfeltet '%D' er ikke en heltalskonstant"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "negativ bredde i bitfeltet '%D'"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "en bredde på nul for bitfeltet '%D'"
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "bredden af '%D' overstiger typen"
-#: cp/class.c:2649
+#: cp/class.c:2671
#, fuzzy
msgid "%qD is too small to hold all values of %q#T"
msgstr "'%D' er for lille til at indeholde alle værdierne af '%#T'"
-#: cp/class.c:2711
+#: cp/class.c:2731
#, fuzzy
msgid "member %q#D with constructor not allowed in union"
msgstr "medlemmet '%#D' med en konstruktionsfunktion er ikke tilladt i en union"
-#: cp/class.c:2714
+#: cp/class.c:2734
#, fuzzy
msgid "member %q#D with destructor not allowed in union"
msgstr "medlemmet '%#D' med en destruktionsfunktion er ikke tilladt i en union"
-#: cp/class.c:2717
+#: cp/class.c:2737
#, fuzzy
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr "medlemmet '%#D' med en kopitildelingsoperator er ikke tilladt i en union"
-#: cp/class.c:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "flere felter i union '%T' tildeles startværdi"
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
-#: cp/class.c:2875
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2895
#, fuzzy
msgid "field %qD in local class cannot be static"
msgstr "feltet '%D' i lokal klasse kan ikke være statisk"
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "feltet '%D' er på ugyldig vis erklæret som en funktionstype"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "feltet '%D' er på ugyldig vis erklæret som en medlemsfunktionstype"
-#: cp/class.c:2929
+#: cp/class.c:2939
#, fuzzy
msgid "non-static reference %q#D in class without a constructor"
msgstr "ikke-statisk reference '%#D' i klasse uden en konstruktionsfunktion"
-#: cp/class.c:2977
+#: cp/class.c:2986
#, fuzzy
msgid "non-static const member %q#D in class without a constructor"
msgstr "ikke-statisk konstant medlem '%#D' i klasse uden en konstruktionsfunktion"
-#: cp/class.c:2992
+#: cp/class.c:3001
#, fuzzy
msgid "field %q#D with same name as class"
msgstr "felt '%#D' med samme navn som klassen"
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "'%#T' har henvisningsdatamedlemmer"
-#: cp/class.c:3030
+#: cp/class.c:3038
#, fuzzy
msgid " but does not override %<%T(const %T&)%>"
msgstr " men overskriver ikke '%T(const %T&)'"
-#: cp/class.c:3032
+#: cp/class.c:3040
#, fuzzy
msgid " or %<operator=(const %T&)%>"
msgstr " eller 'operator=(const %T&)'"
-#: cp/class.c:3035
+#: cp/class.c:3043
#, fuzzy
msgid " but does not override %<operator=(const %T&)%>"
msgstr " men overskriver ikke 'operator=(const %T&)'"
-#: cp/class.c:3468
+#: cp/class.c:3476
#, fuzzy
msgid "offset of empty base %qT 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:3580
+#: cp/class.c:3588
#, fuzzy
msgid "class %qT 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:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "startværdi angivet for ikke-virtuel medlemsfunktion '%D'"
-#: cp/class.c:4321
+#: cp/class.c:4333
#, fuzzy
msgid "offset of virtual base %qT 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:4420
+#: cp/class.c:4432
#, fuzzy
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr "direkte stamklasse '%T' er ikke tilgængelig i '%T' på grund af tvetydighed"
-#: cp/class.c:4432
+#: cp/class.c:4444
#, fuzzy
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr "virtuel stamklasse '%T' er ikke tilgængelig i '%T' på grund af tvetydighed"
-#: cp/class.c:4603
+#: cp/class.c:4621
#, fuzzy
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
#, fuzzy
msgid "the offset of %qD 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:4665
+#: cp/class.c:4683
#, fuzzy
msgid "offset of %qD 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:4675
+#: cp/class.c:4693
#, fuzzy
msgid "%qD 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:4734
+#: cp/class.c:4753
#, fuzzy
msgid "layout of classes derived from empty class %qT 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:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "omdefinering af '%#T'"
-#: cp/class.c:5019
+#: cp/class.c:5042
#, fuzzy
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr "'%#T' har virtuelle funktioner, men ikke-virtuel destruktionsfunktion"
-#: cp/class.c:5114
+#: cp/class.c:5139
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:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "sprogstrengen '\"%s\"' ikke genkendt"
-#: cp/class.c:5617
+#: cp/class.c:5642
#, fuzzy
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr "kan ikke benytte den flertydiggjorte funktion '%D' baseret på konvertering til typen '%T'"
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
msgstr "ingen passende ved konvertering af funktionen '%D' til typen '%#T'"
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr "konvertering af den flertydiggjorte funktion '%D' til typen '%T' er tvetydig"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "antager henvisning til medlemmet '%D'"
-#: cp/class.c:5794
+#: cp/class.c:5819
#, fuzzy
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr "(en henvisning til medlem kan kun dannes med '&%E')"
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "ikke tilstrækkelig information om typen"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "parameter af typen '%T' passer ikke til '%T'"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "ugyldig operation på uudskiftet type"
@@ -14212,12 +14305,12 @@ msgstr "ugyldig operation på uudskiftet type"
#. 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "omerklæring af '%#D'"
-#: cp/class.c:6273
+#: cp/class.c:6269
#, fuzzy
msgid "changes meaning of %qD from %q+#D"
msgstr "skifter betydningen af '%D' fra '%+#D'"
@@ -14242,195 +14335,205 @@ msgstr "kan ikke konvertere '%E' fra typen '%T' til typen '%T'"
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr "typekonvertering af henvisning til medlem fra '%T' til '%T' er via virtuel stamklasse"
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "konvertering fra '%T' til '%T' forkaster modifikationer"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "typeomtvingning af '%T' til '%T' følger ikke henvisning"
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "kan ikke konvertere typen '%T' til typen '%T'"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "konvertering fra '%#T' til '%#T'"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
#, fuzzy
msgid "%q#T used where a %qT was expected"
msgstr "'%#T' benyttet hvor '%T' var forventet"
-#: cp/cvt.c:718
+#: cp/cvt.c:717
#, fuzzy
msgid "%q#T used where a floating point value was expected"
msgstr "'%#T' benyttet hvor der forventedes en kommatalsværdi"
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "konvertering fra '%T' til en ikke-skalartype '%T' udbedt"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "parameter til egenskaben '%s' er større end %d"
+
+#: cp/cvt.c:857
#, fuzzy
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr "objekt af den ufuldstændige type '%T' vil ikke blive tilgået i %s"
-#: cp/cvt.c:856
+#: cp/cvt.c:860
#, fuzzy
msgid "object of type %qT will not be accessed in %s"
msgstr "objekt af typen '%T' vil ikke blive tilgået i %s"
-#: cp/cvt.c:872
+#: cp/cvt.c:876
#, fuzzy
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, 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:894
+#: cp/cvt.c:898
#, fuzzy, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr "%s er en reference til og ikke et kald af funktionen '%E'"
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, fuzzy, c-format
msgid "%s has no effect"
msgstr "%s har ingen %s"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "%Hberegnet værdi benyttes ikke"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr "konverterer NULL til en ikke-henvisningstype"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
#, fuzzy
msgid "ambiguous default type conversion from %qT"
msgstr "tvetydig standardtypekonvertering fra '%T'"
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
#, fuzzy
msgid " candidate conversions include %qD and %qD"
msgstr " kandidater til konverteringen inkluderer '%D' og '%D'"
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "etiketten '%D' er benyttet, men ikke defineret"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "etiketten '%D' er defineret, men ikke benyttet"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "'%s' blev erklæret 'extern' og derefter 'static'"
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "'%D' er tidligere erklæret"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "funktionen '%s' omerklæret som inline"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "tidligere erklæring af funktionen '%s' med egenskaben noinline"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "funktionen '%s' omerklæret med egenskaben noinline"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "tidligere erklæring af funktionen '%s' var inline"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "skygger for en %s-funktion '%#D'"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "biblioteksfunktionen '%#D' er omerklæret som '%#D' der ikke er en funktion"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "strider mod indbygget erklæring '%#D'"
# følges af næste tekst
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "ny erklæring af '%#D'"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "tvetydiggør indbygget erklæring '%#D'"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "'%#D' omerklæret som en anden form for symbol"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "tidligere erklæring af '%#D'"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "erklæring af skabelon '%#D'"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "strider mod tidligere erklæring '%#D'"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "tvetydiggør tidligere erklæring '%#D'"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "erklæring af C-funktionen '%#D' strider mod"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "tidligere erklæring af '%#D' her"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "modstridende erklæringer af '%s'"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "tidligere erklæring som '%#D'"
@@ -14442,78 +14545,78 @@ msgstr "tidligere erklæring som '%#D'"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "erklæring af C-funktionen '%#D' strider mod"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "tidligere erklæring af '%#D' her"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "'%#D' tidligere defineret her"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "'%#D' tidligere erklæret her"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "prototypen for '%#D'"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
#, fuzzy
msgid "%Jfollows non-prototype definition here"
msgstr "følger definition uden prototype her"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "tidligere erklæring af '%#D' med %L-kædning"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "strider mod ny erklæring af med %L-kædning"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "standardparameter givet til %d. parameter for '%#D'"
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "efter tidligere specifikation i '%#D'"
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "'%#D' blev brugt før erklæring som inline"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "tidligere ikke-inline erklæring her"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "overflødig omerklæring af '%D' i samme virkefelt"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "erklæring af '%F' kaster forskellige undtagelser"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "end tidligere erklæring '%F'"
@@ -14526,252 +14629,252 @@ msgstr "end tidligere erklæring '%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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "eksplicit specialisering af %D efter første brug"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "strider mod tidligere erklæring '%#D'"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "spring til etiketten '%D' "
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "spring til case-etiket"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
#, fuzzy
msgid "%H from here"
msgstr " herfra"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr " krydser klargøring af '%#D'"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
#, fuzzy
msgid " enters scope of non-POD %q#D"
msgstr " går ind i virkefelt af ikke-POD '%#D'"
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " går ind i try-blok"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " går ind i catch-blok"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " herfra"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
#, fuzzy
msgid "%J enters catch block"
msgstr " går ind i catch-blok"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr " springer over klargøring af '%#D'"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr "etiket med navnet wchar_t"
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "etiketten '%D' optræder mere end én gang"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "'%D' benyttet uden skabelonsparametre"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
#, fuzzy
msgid "no class template named %q#T in %q#T"
msgstr "ingen klasseskabelon ved navn '%#T' i '%#T'"
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "ingen type ved navn '%#T' i '%#T'"
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "skabelonsparametre kan ikke være venner"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr " '%#D' erklæret her"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
#, fuzzy
msgid "%Jan anonymous union cannot have function members"
msgstr "en anonym union kan ikke have funktionsmedlemmer"
-#: cp/decl.c:3466
+#: cp/decl.c:3362
#, fuzzy
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr "medlemmet '%#D' med konstruktionsfunktion er ikke tilladt i anonym sammensat type"
-#: cp/decl.c:3470
+#: cp/decl.c:3366
#, fuzzy
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr "medlemmet '%#D' med destruktionsfunktion er ikke tilladt i anonym sammensat type"
-#: cp/decl.c:3474
+#: cp/decl.c:3370
#, fuzzy
msgid "member %q#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:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "flere typer i én erklæring"
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "omerklæring af indbygget type i C++ '%T'"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr "manglende typenavn i typedef-erklæring"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ forbyder anonyme strukturer"
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "'%D' kan kun angives for funktioner"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
msgstr "'%D' kan kun angives inden i en klasse"
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "'%D' kan kun angives for konstruktionsfunktioner"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "'%D' kan kun angives for objekter og funktioner"
-#: cp/decl.c:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers can only be specified for objects and functions"
msgstr "'%D' kan kun angives for objekter og funktioner"
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "forhåndserklæring af '%#T'"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "funktionen '%#D' bliver tildelt en startværdi som en variabel"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "erklæringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startværdi"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "'%#D' er ikke et statisk medlem af '%#T'"
-#: cp/decl.c:3772
+#: cp/decl.c:3671
#, fuzzy
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:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "%D tildelt startværdi mere end én gang"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "erklæring af '%#D' uden for en klasse er ikke en definition"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "variablen '%#D' bliver tildelt en startværdi, men er af en ufuldstændig type"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "elementer i tabellen '%#D' er af en ufuldstændig type"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#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:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
msgstr "'%D' erklæret som en reference, men bliver ikke tildelt en startværdi"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ISO C++ forbyder brug af en startværdiliste til at klargøre referencen '%D'"
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "kan ikke klargøre '%T' fra %T'"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "startværdien giver ikke størrelsen af '%D'"
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "tabelstørrelsen mangler i '%D'"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "nulstørrelsestabel '%D'"
@@ -14779,688 +14882,711 @@ 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "lagringsstørrelsen af '%D' er ikke kendt"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "lagringsstørrelsen af '%D' er ikke konstant"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
#, fuzzy
msgid "sorry: semantics of inline function static data %q#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:4145
+#: cp/decl.c:4046
#, fuzzy
msgid "%J 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:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "konstant '%D' uden startværdi"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "startværdi i krøllede paranteser benyttet til at klargøre '%T'"
-#: cp/decl.c:4376
+#: cp/decl.c:4280
#, fuzzy
msgid "initializer for %qT must be brace-enclosed"
msgstr "startværdi for '%T' skal være indesluttet i krøllede paranteser"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ tillader ikke udpegede startværdier"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "for mange startværdier for '%T'"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "objektet '%D' af variabel størrelse må ikke tildeles en startværdi"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "'%D' er af en ufuldstændig type"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
#, fuzzy
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr "'%D' skal klargøres af en konstruktionsfunktion, ikke af '{...}'"
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "_Pragma tager en strengkonstant med paranteser omkring"
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "struktur '%D' med konstante medlemmer uden startværdi"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "struktur '%D' med referencemedlemmer uden startværdi"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "tildeling (ikke klargøring) i erklæring"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "kan ikke tildele startværdi til '%D' med navnerummet '%D'"
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "skygger for tidligere typeerklæring af '%#D'"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
#, fuzzy
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr "'%D' kan ikke være trådlokal eftersom den er af en ikke-POD type '%T'"
-#: cp/decl.c:4915
+#: cp/decl.c:4830
#, fuzzy
msgid "%qD 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:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "destruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
msgstr "'%D' erklæret som 'virtual' %s"
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
msgstr "'%D' erklæret som 'inline' %s"
# %s bliver omsat til typen
-#: cp/decl.c:5550
+#: cp/decl.c:5474
#, fuzzy
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s"
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "'%D' er erklæret som en ven"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "'%D' erklæret med en undtagelsesspecifikation"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "kan ikke erklære '::main' som en skabelon"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "kan ikke erklære '::main' som indlejret"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "kan ikke erklære '::main' som statisk"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "'main' skal returnere typen 'int'"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
#, fuzzy
msgid "non-local function %q#D uses anonymous type"
msgstr "ikke-lokal funktion '%#D' bruger anonym type"
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
#, fuzzy
msgid "%q#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:5690
+#: cp/decl.c:5617
#, fuzzy
msgid "non-local function %q#D uses local type %qT"
msgstr "ikke-lokal funktion '%#D' bruger lokal type '%T'"
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD 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:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "ugyldig brug af skabelons-id '%D' i erklæring af primær skabelon"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
#, fuzzy
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
-#: cp/decl.c:5783
+#: cp/decl.c:5710
#, fuzzy
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr "'inline' er ikke tilladt i erklæring venneskabelonsspecialisering '%D'"
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
msgstr "definition af underforstået-erklæret '%D'"
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "ingen medlemsfunktion '%#D' erklæret i klassen '%T'"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
#, fuzzy
msgid "non-local variable %q#D uses anonymous type"
msgstr "ikke-lokal funktion '%#D' bruger anonym type"
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "ikke-lokal variabel '%#D' bruger lokal type '%T'"
-#: cp/decl.c:6150
+#: cp/decl.c:6070
#, fuzzy
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "ISO C++ forbyder tildeling af startværdi i klasse til ikke-konstant statisk medlem '%D'"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "ISO C++ forbyder tildeling af startværdi til medlemskonstant '%D' af en ikke-heltallig type"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "størrelsen af tabellen '%D' er ikke af en heltalstype"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "størrelsen af tabel er ikke af en heltalstype"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "størrelsen af tabellen '%D' er negativ"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "størrelsen af tabel er negativ"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO C++ forbyder tabellen '%D' med størrelsen nul"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C++ forbyder tabel med størrelsen nul"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
msgid "size of array is not an integral constant-expression"
msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO C++ forbyder tabellen '%D' med variabel størrelse"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C++ forbyder tabel med variabel størrelse"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "tabeldimension for stor"
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "erklæring af '%D' som %s"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr "opretter %s"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
#, fuzzy
msgid "declaration of %qD 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:6374
+#: cp/decl.c:6293
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:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr "angivelse af returneringstypen til konstruktionsfunktion er ugyldigt"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt"
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "operator '%T' erklæret til at returnere '%T'"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "returtype angivet for 'operator %T'"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "unavngiven variabel eller felt erklæret void"
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "variabel eller felt erklæret void"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "variabel eller felt erklæret void"
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "typen '%T' er ikke nedarvet fra typen '%T'"
-#: cp/decl.c:6674
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
-msgid "declarator-id missing; using reserved word %qD"
-msgstr "erklærer-id mangler; bruger reserveret ord '%D'"
+msgid "declaration of %qD as non-function"
+msgstr "erklæring af '%D' som ikke-funktion"
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6563
#, fuzzy
-msgid "declaration of %qD as non-function"
+msgid "declaration of %qD as non-member"
msgstr "erklæring af '%D' som ikke-funktion"
-#: cp/decl.c:6763
+#: cp/decl.c:6593
+#, fuzzy
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "erklærer-id mangler; bruger reserveret ord '%D'"
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "mere end én datatype i erklæringen af '%s'"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++ understøtter ikke 'long long'"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO C++ forbyder erklæring af '%s' uden en type"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "short, signed eller unsigned er ugyldig for '%s'"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "long, short, signed og unsigned er ugyldige for '%s'"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "long og short er begge angivet for '%s'"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "long eller short angivet samtidig med char for '%s'"
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "long eller short angivet samtidig med en kommatalstype for '%s'"
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "signed og unsigned er begge angivet for '%s'"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "long, short, signed og unsigned er benyttet på ugyldig vis for '%s'"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "complex ugyldig for '%s'"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
#, fuzzy
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "ignorerer modifikationerne '%V' til '%T'"
+
+#: cp/decl.c:6957
#, fuzzy
msgid "member %qD cannot be declared both virtual and static"
msgstr "medlemmet '%D' kan ikke afklæres både virtual og static"
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "'%T::%D' er ikke en gyldig erklærer"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "typedef-erklæringer er ugyldig i parametererklæringer"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer"
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "virtual angivet uden for klasseerklæring"
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "lagringsklasse angivet for %s '%s'"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr "lagringsklasseanvisninger er ugyldige i vennefunktionserklæringer"
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "destruktionsfunktionen kan ikke være en statisk medlemsfunktion"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "destruktionsfunktioner må ikke være '%s'"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "konstruktionsfunktioner må ikke være '%s'"
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "kan ikke tildele en startværdi til vennefunktionen '%s'"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "en virtuel funktion kan ikke erklæres som friend"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "friend-erklæringen er ikke i klassedefinitionen"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "kan ikke definere vennefunktion '%s' i en lokal klassedefinition"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr "destruktionsfunktioner må ikke have parametre"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "kan ikke erklære reference til '%#T'"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "kan ikke erklære henvisning til '%#T'"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "kan ikke erklære henvisning til medlemmet '%#T'"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "'%D' er et navnerum"
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
msgstr "skabelons-id '%D' benyttet som erklærer"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
#, fuzzy
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr "ekstra modifikation '%T::' af medlemmet '%s' ignoreret"
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr "kan ikke erklære medlemsfunktion '%T::%s' inde i '%T'"
-#: cp/decl.c:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "kan ikke erklære medlem '%T::%s' inde i '%T'"
-#: cp/decl.c:7570
+#: cp/decl.c:7520
#, fuzzy
msgid "data member may not have variably modified type %qT"
msgstr "datamedlem må ikke have variabelt ændret type '%T'"
-#: cp/decl.c:7572
+#: cp/decl.c:7522
#, fuzzy
msgid "parameter may not have variably modified type %qT"
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:7580
+#: cp/decl.c:7530
#, fuzzy
msgid "only declarations of constructors can be %<explicit%>"
msgstr "kun erklæringer af konstruktionsfunktioner kan være 'explicit'"
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "'%s' som ikke er medlem, kan ikke erklæres 'mutable'"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "'%s' som ikke er objektmedlem, kan ikke erklæres 'mutable'"
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "static '%s' kan ikke erklæres 'mutable'"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "const '%s' kan ikke erklæres 'mutable'"
-#: cp/decl.c:7627
-#, fuzzy
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
-msgstr "ISO C++ forbyder indlejret type '%D' med samme navn som den omgivende klasse"
-
-#: cp/decl.c:7636
+#: cp/decl.c:7579
#, fuzzy
msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr "typedef-navn kan ikke klassemodificeres"
-#: cp/decl.c:7689
+#: cp/decl.c:7595
#, fuzzy
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "ugyldig typemodifikation for ikke-medlemsfunktionstype"
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr "ISO C++ forbyder indlejret type '%D' med samme navn som den omgivende klasse"
-#: cp/decl.c:7752
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "en funktions returtype kan ikke være en funktion"
+
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr "typemodifikationer angivet for friend class-erklæring"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "'inline' angivet for friend class-erklæring"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
msgid "template parameters cannot be friends"
msgstr "skabelonsparametre kan ikke være venner"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
#, fuzzy
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:7771
+#: cp/decl.c:7739
#, fuzzy
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend %#T'"
-#: cp/decl.c:7784
+#: cp/decl.c:7752
#, fuzzy
msgid "trying to make class %qT a friend of global scope"
msgstr "forsøg på at gøre klassen '%T' til ven af det globale virkningsfelt"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "abstrakt erklærer '%T' benyttet som erklæring"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "kan ikke bruge '::' i parametererklæring"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "ugyldig brug af '::'"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "funktionen '%D' kan ikke erklæres friend"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
#, fuzzy
msgid "can't make %qD into a method -- not in a class"
msgstr "kan ikke gøre '%D' til en metode - er ikke i en klasse"
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "funktionen '%D' erklæret virtual inden i en union"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD cannot be declared virtual, since it is always static"
msgstr "'%D' kan ikke erklæres virtual eftersom den altid er statisk"
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "erklæring af '%s' skygger for et medlem af 'this'"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "feltet '%D' er af en ufuldstændig type"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "navnet '%T' er af en ufuldstændig type"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr " i instantiering af skabelonen '%T'"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE 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:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "medlemsfunktioner er underforstået venner af deres klasse"
@@ -15476,92 +15602,92 @@ msgstr "medlemsfunktioner er underforstået venner af deres klasse"
#. 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ISO C++ forbyder tildeling af startværdi til medlemmet '%D'"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
#, fuzzy
msgid "making %qD static"
msgstr "gør '%D' statisk"
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
#, fuzzy
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
-#: cp/decl.c:8156
+#: cp/decl.c:8129
#, fuzzy
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "virtuel funktion '%s' tilhører ikke en klasse"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD to have static linkage"
msgstr "kan ikke erklære medlemsfunktion '%D' til at have statisk kædning"
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
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:8231
+#: cp/decl.c:8204
#, fuzzy
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:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
msgstr "statisk medlem '%D' erklæret 'register'"
-#: cp/decl.c:8243
+#: cp/decl.c:8216
#, fuzzy
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr "kan ikke eksplicit erklære medlemmet '%#D' til at have extern-kædning"
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "standardparameter for '%#D' har typen '%T'"
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "standardparameter '%E' bruger lokal variabel '%D'"
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "parameteren '%D' er på ugyldig vis erklæret som af en medlemsfunktionstype"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
#, fuzzy
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grænse '%T'"
@@ -15581,132 +15707,132 @@ msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grænse '%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:8657
+#: cp/decl.c:8630
#, fuzzy
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr "ugyldig konstruktionsfunktion; du mente sandsynligvis '%T (const %T&)'"
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "'%D' blev ikke erklæret i dette virkefelt"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "'%#D' kan ikke erklæres"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD 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:8827
+#: cp/decl.c:8800
#, fuzzy
msgid "%qD must have an argument of class or enumerated type"
msgstr "'%D' skal have en parameter af en klasse- eller enum-type"
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, 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:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ forbyder flertydiggørelse af operatoren ?:"
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
msgstr "postfiks '%D' skal tage mod 'int' som parameter"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
msgstr "postfiks '%D' skal tage mod 'int' som den anden parameter"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "'%D' skal tage mod nul eller én parameter"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "'%D' skal tage mod én eller to parametre"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
#, fuzzy
msgid "prefix %qD should return %qT"
msgstr "præfiks '%D' skal returnere '%T'"
-#: cp/decl.c:8960
+#: cp/decl.c:8933
#, fuzzy
msgid "postfix %qD should return %qT"
msgstr "postfiks '%D' skal returnere '%T'"
-#: cp/decl.c:8969
+#: cp/decl.c:8942
#, fuzzy
msgid "%qD must take %<void%>"
msgstr "'%D' skal tage mod 'void'"
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
msgstr "'%s' skal tage mod én parameter"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "'%s' skal tage mod to parametre"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
#, fuzzy
msgid "user-defined %qD always evaluates both arguments"
msgstr "brugerdefineret '%D' evaluerer altid begge parametre"
-#: cp/decl.c:9003
+#: cp/decl.c:8976
#, fuzzy
msgid "%qD should return by value"
msgstr "'%D' skal returnere pr. værdi (ikke reference)"
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "'%D' kan ikke have standardparametre"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "bruger skabelonstypeparameter '%D' efter '%s'"
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
msgstr "bruger typedef-navn '%D' efter '%s'"
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "tidligere erklæring som '%#D'"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
#, fuzzy
msgid "%qT referred to as %qs"
msgstr "'%#D' omerklæret som %C"
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "dette er en tidligere erklæring"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
#, fuzzy
msgid "%qT referred to as enum"
msgstr "'%#D' omerklæret som %C"
@@ -15718,57 +15844,61 @@ msgstr "'%#D' omerklæret som %C"
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "skabelonsparameter er påkrævet for '%T'"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "brug af enum '%#D' uden tidligere erklæring"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "friend-erklæring '%#D' erklærer en ikke-skabelonsfunktion"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
#, fuzzy
msgid "derived union %qT invalid"
msgstr "nedarvet union '%T' ugyldig"
-#: cp/decl.c:9397
+#: cp/decl.c:9389
#, fuzzy
msgid "Java class %qT cannot have multiple bases"
msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
-#: cp/decl.c:9405
+#: cp/decl.c:9397
#, fuzzy
msgid "Java class %qT cannot have virtual bases"
msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT fails to be a struct or class type"
msgstr "stamklassetype '%T' er hverken en struct- eller class-type"
-#: cp/decl.c:9457
+#: cp/decl.c:9449
#, fuzzy
msgid "recursive type %qT undefined"
msgstr "rekursiv type '%T' ikke defineret"
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "stamklassetype '%T' optræder mere end én gang"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "flere definitioner af '%#T'"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "tidligere definition her"
@@ -15777,79 +15907,79 @@ msgstr "tidligere definition her"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "enum-værdi for '%D' er ikke en heltalskonstant"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "enum-værdier for store ved '%D'"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "returtype '%#T' er ufuldstændig"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
#, fuzzy
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr "'operator=' bør returnere en reference til '*this'"
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "parameteren '%D' erklæret void"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "ugyldig medlemsskabelonerklæring '%D'"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "'%D' er allerede defineret i klassen '%T'"
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "statisk medlemsfunktion '%#D' erklæret med typemodifikationer"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "navn mangler for medlemsfunktion"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "tvetydig konvertering af tabelindeks"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
#, fuzzy
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr "ugyldige typer '%T[%T]' for tabelopslag"
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "benyttelse af delete på tabellen '%#D'"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
#, fuzzy
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr "parameter af typen '%#T' givet til 'delete', forventede henvisning"
-#: cp/decl2.c:444
+#: cp/decl2.c:441
#, fuzzy
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr "kan ikke udføre delete på en funktion; kun henvisninger til objekter er gyldige som parameter til 'delete'"
-#: cp/decl2.c:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "benyttelse af delete på '%T' er ikke defineret"
@@ -15857,197 +15987,191 @@ msgstr "benyttelse af delete på '%T' er ikke defineret"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "ugyldig erklæring af medlemsskabelon '%#D' i lokal klasse"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "ugyldig brug af 'virtual' i skabelonserklæring af '%#D'"
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "skabelonserklæring af '%#D'"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
#, fuzzy
msgid "Java method %qD has non-Java return type %qT"
msgstr "Java-metoden '%D' har har en returtype '%T' som ikke er fra Java"
-#: cp/decl2.c:572
+#: cp/decl2.c:569
#, fuzzy
msgid "Java method %qD has non-Java parameter type %qT"
msgstr "Java-metoden '%D' har har en parametertype '%T' som ikke er fra Java"
-#: cp/decl2.c:677
+#: cp/decl2.c:674
#, fuzzy
msgid "prototype for %q#D does not match any in class %qT"
msgstr "prototypen for '%#D' passer ikke nogen i klassen '%T'"
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "lokal klasse '%#T' må ikke have det statiske datamedlem '%#D'"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "tildeling af startværdi er ugyldig for statisk medlem med konstruktionsfunktion"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(en klargøring uden for klassens erklæring er nødvendig)"
-#: cp/decl2.c:870
+#: cp/decl2.c:867
#, fuzzy
msgid "member %qD conflicts with virtual function table field name"
msgstr "medlemmet '%D' er i konflikt med feltnavn fra den virtuelle funktionstabel"
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "'%D' er allerede defineret i '%T'"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "feltets startværdi er ikke en konstant"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
#, fuzzy
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr "'asm'-angivelser er ikke tilladt på ikke-statiske datamedlemmer"
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "kan ikke erklære '%D' til at være en bitfeltstype"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "kan ikke erklære bitfelt '%D' med funktionstype"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "'%D' er allerede defineret i klassen '%T'"
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "statisk medlem '%D' kan ikke være et bitfelt"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "startværdi angivet for ikke-medlemsfunktion '%D'"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "ugyldig startværdi til virtuel medlemsfunktion '%D'"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "anonym struct er ikke inden i en navngiven type"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr "anonyme variabler af sammensatte typer i navnerumsvirkefelt skal erklæres static"
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
#, fuzzy
msgid "anonymous union with no members"
msgstr "anonym sammensat type uden medlemmer"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "'operator new' skal returnere typen '%T'"
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "den første parameter til 'operator new' skal være af typen 'size_t' ('%T')"
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "'operator delete' skal returnere typen '%T'"
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "den første parameter til 'operator delete' skal være af typen '%T'"
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "indbygget funktion '%D' benyttet, men aldrig defineret"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "standardparameter mangler for parameter %P i '%+#D'"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, fuzzy, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr "uventet bogstav '%c' i locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
#, fuzzy
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr "typen '%T' er ikke tilladt i Java 'throw' eller 'catch'"
-#: cp/except.c:250
+#: cp/except.c:273
#, fuzzy
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr "kald til Java 'catch' eller 'throw' mens 'jthrowable' ikke er defineret"
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
#, fuzzy
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr "typen '%T' nedarver ikke fra 'java::lang::Throwable'"
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "blander C++ og Java 'catch' i én oversættelsesenhed"
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr "kaster NULL som har en heltals-, ikke en henvisningstype"
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
#, fuzzy
msgid "%qD should never be overloaded"
msgstr "'%D' skal returnere pr. værdi (ikke reference)"
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " i kastet udtryk"
-#: cp/except.c:810
+#: cp/except.c:836
#, fuzzy
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr "udtrykket '%E' med den abstrakte klassetype '%T' kan ikke bruges i throw-udtryk"
-#: cp/except.c:895
+#: cp/except.c:921
#, fuzzy
msgid "%Hexception of type %qT will be caught"
msgstr "undtagelse af typen '%T' vil blive fanget"
-#: cp/except.c:897
+#: cp/except.c:923
#, fuzzy
msgid "%H by earlier handler for %qT"
msgstr " af tidligere håndtering af '%T'"
-#: cp/except.c:927
+#: cp/except.c:953
#, fuzzy
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr "håndteringen '...' skal være den sidste håndtering i try-blokken"
@@ -16135,211 +16259,219 @@ msgstr "(hvis dette er hvad du ønsker, så sikr dig at funktionsskabelonen allere
msgid "argument to '%s' missing\n"
msgstr "en parameter til '%s' mangler\n"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "'%D' bør blive klargjort i medlemsklargøringslisten"
-#: cp/init.c:363
+#: cp/init.c:373
#, fuzzy
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr "standardklargøring af '%#D' som er af en referencetype"
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "referencemedlem '%D' uden startværdi"
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
#, fuzzy
msgid "%qD will be initialized after"
msgstr "'%D' vil blive klargjort efter"
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "stamklasse '%T' vil blive klargjort efter"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr " '%#D'"
-#: cp/init.c:523
+#: cp/init.c:533
#, fuzzy
msgid " base %qT"
msgstr " stamklasse '%T'"
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr "'%D' vil blive klargjort efter"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "flere startværdier angivet for '%D'"
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "flere startværdier angivet for stamklassen '%T'"
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "startværdier for flere medlemmer af '%T'"
-#: cp/init.c:667
+#: cp/init.c:677
#, fuzzy
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr "stamklassen '%#T' bør eksplicit blive klargjort i kopikonstruktionsfunktionen"
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
#, fuzzy
msgid "class %qT does not have any field named %qD"
msgstr "klassen '%T' har ikke et felt ved navn '%D'"
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "feltet '%#D' er statisk; det eneste sted det kan klargøres er ved dets definition"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "'%#D' er ikke et statisk medlem af '%#T'"
-#: cp/init.c:943
+#: cp/init.c:953
#, fuzzy
msgid "unnamed initializer for %qT, which has no base classes"
msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser"
-#: cp/init.c:951
+#: cp/init.c:961
#, fuzzy
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr "unavngiven klargøring af '%T' som benytter multipel nedarvning"
-#: cp/init.c:997
+#: cp/init.c:1007
#, fuzzy
msgid "%qD is both a direct base and an indirect virtual base"
msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'"
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'"
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "typen '%D' er ikke en direkte stamklasse til '%T'"
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "ugyldig tildeling af startværdi til tabel"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "'%T' er ikke en sammensat type"
-#: cp/init.c:1379
+#: cp/init.c:1389
#, fuzzy
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
-#: cp/init.c:1387
+#: cp/init.c:1397
#, fuzzy
msgid "incomplete type %qT does not have member %qD"
msgstr "ufuldstændig type '%T' har ikke medlemmet '%D'"
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "'%D' er ikke et medlem af typen '%T'"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "ugyldig henvisning til bitfeltet '%D'"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "ugyldig brug af ikke-statisk felt '%D'"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "ugyldig brug af ikke-statisk felt '%D'"
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr "størrelse i tabel-new skal være en heltalstype"
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr "tabel med størrelsen nul reserverer ingen plads"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "new kan ikke bruges på en referencetype"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "new kan ikke bruges på en funktionstype"
-#: cp/init.c:1679
+#: cp/init.c:1700
#, fuzzy
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr "kald af Java-konstruktionsfunktion mens 'jclass' ikke er defineret"
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr "kan ikke finde class$"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "ugyldig type 'void' til new"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "konstant uden startværdi i 'new' af '%#T'"
-#: cp/init.c:1867
+#: cp/init.c:1888
#, fuzzy, c-format
msgid "call to Java constructor with %qs undefined"
msgstr "kald af Java-konstruktionsfunktion mens '%s' ikke er defineret"
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "forespørgsel efter medlemmet '%D' er tvetydigt"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ forbyder startværdier i tabel-new"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "startværdien slutter for tidligt"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "kan ikke klargøre multidimensional tabel med startværdi"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "ukendt tabelstørrelse i delete"
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
@@ -16418,16 +16550,21 @@ msgstr "det ABI-navnet for '%D' vil ændre sig i en fremtidig version af GCC"
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr "generel thunk-kode mislykkes for metoden '%#D' som bruger '...'"
-#: cp/method.c:650
+#: cp/method.c:657
#, fuzzy
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr "ikke-statisk konstant medlem '%#D' kan ikke bruge standardtildelingsoperatoren"
-#: cp/method.c:656
+#: cp/method.c:663
#, fuzzy
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr "ikke-statisk referencemedlem '%#D' kan ikke bruge standardtildelingsoperatoren"
+#: cp/method.c:1078
+#, fuzzy
+msgid "vtable layout for class %qT may not be ABI-compliantand 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/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16534,67 +16671,61 @@ msgstr "%s: %s: "
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "'%#D' skjuler konstruktionsfunktion for '%#T'"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "'%#D' strider mod tidligere using-erklæring '%#D'"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "tidligere ikke-funktionserklæring '%#D'"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "strider mod funktionserklæring '%#D'"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "'%T' er ikke et navnerum"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
#, fuzzy
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/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "navnerum '%D' ikke tilladt i using-erklæring"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "'%D' ikke erklæret"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "'%D' er allerede erklæret i dette navnerum"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
#, fuzzy
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr "using-erklæring '%D' introducerede tvetydig type '%T'"
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
@@ -16603,340 +16734,347 @@ msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
msgid "using-declaration cannot name destructor"
msgstr "using-erklæring for destruktionsfunktion"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "erklæring af '%D' er ikke i et navnerum der omgiver '%D'"
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "eksplicit instantiering af '%#D'"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
#, fuzzy
msgid "%qD should have been declared inside %qD"
msgstr "'%D' skulle have været erklæret inden i '%D'"
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "navnerumsalias '%D' er ikke tilladt her, antager '%D'"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "ukendt navnerum '%D'"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "navnerummet '%T' er ikke erklæret"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "egenskabsdirektivet '%s' ignoreret"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "brug af '%D' er tvetydigt"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr " først erklæret som '%#D' her"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr " også erklæret som '%#D' her"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
#, fuzzy
msgid "%qD denotes an ambiguous type"
msgstr "'%D' angiver en tvetydig type"
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
#, fuzzy
msgid "%J first type here"
msgstr " første type her"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
#, fuzzy
msgid "%J other type here"
msgstr " anden type her"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "ugyldig brug af '%D"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "'%D::%D' er ikke en skabelon"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "'%D' ikke erklæret i navnerummet '%D'"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "'%s' er ikke en funktion,"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr " konflikt med '%D'"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "#pragma %s er allerede registreret"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "'%#D' kan ikke erklæres"
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "'%#D' kan ikke erklæres"
-#: cp/parser.c:1818
+#: cp/parser.c:1842
#, fuzzy
msgid "request for member %qD in non-class type %qT"
msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-klassetype '%T'"
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "'%#D' kan ikke erklæres"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "'%#D' kan ikke erklæres"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
#, fuzzy
msgid "%<%D::%D%> %s"
msgstr "'%D'-tilgang"
-#: cp/parser.c:1829
+#: cp/parser.c:1853
#, fuzzy
msgid "%<::%D%> %s"
msgstr "'%D'-tilgang"
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr "'%D'-tilgang"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
#, fuzzy
msgid "new types may not be defined in a return type"
msgstr "new kan ikke bruges på en referencetype"
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "semikolon mangler efter erklæring af '%T'"
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "'%T' er ikke en skabelon"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "'%T' er ikke en skabelon"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "ugyldig roteringsinstruktion"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "overløb i konstant udtryk"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "ugyldig brug af skabelonsnavn '%E' i erklæring"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "'%D' erklærer ikke en skabelonstype"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
#, fuzzy
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr " (benyt 'typename %T::%D' hvis det er hvad du mener)"
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, fuzzy, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr "'%D' erklærer ikke en skabelonstype"
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "'%D' erklærer ikke en skabelonstype"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ forbyder krøllet parantes-grupper inden i udtryk"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
#, fuzzy
msgid "statement-expressions are allowed only inside functions"
msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "'%D' blev ikke erklæret i dette virkefelt"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
#, fuzzy
msgid "local variable %qD may not appear in this context"
msgstr "'%D' blev ikke erklæret i dette virkefelt"
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
msgstr "skabelons-id '%D' benyttet som erklærer"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
#, fuzzy
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ forbyder sammensatte konstanter"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
#, fuzzy
msgid "array bound forbidden after parenthesized type-id"
msgstr "egenskaber i parametertabelerklæring ignoreret"
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "størrelse i tabel-new skal være en heltalstype"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "tabel med størrelsen nul reserverer ingen plads"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
#, fuzzy
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "størrelse i tabel-new skal være en heltalstype"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "brug af ældre type typeomtvingning"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "case-etiket '%E' befinder sig ikke inden i en switch-sætning"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ forbyder beregnede goto'er"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "'%s' optræder mere end én gang"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
#, fuzzy
msgid "class definition may not be declared a friend"
msgstr "funktionen '%D' kan ikke erklæres friend"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr "kun konstruktionsfunktioner har stamklasseklargøringer"
-#: cp/parser.c:7585
+#: cp/parser.c:7692
#, fuzzy
msgid "anachronistic old-style base class initializer"
msgstr "forældet stamklasseklargøring"
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
#, fuzzy
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "det reserverede ord 'export' er ikke implementeret og vil blive ignoreret"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "objektet '%E' kan ikke bruges som skabelonsparameter"
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "objektet '%E' kan ikke bruges som skabelonsparameter"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
msgstr "ikke-skabelon benyttet som skabelon"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
#, fuzzy
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr "skabelons-id '%D' i erklæring af primær skabelon"
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "skabelonserklæring af '%#D'"
+
+#: cp/parser.c:9688
#, fuzzy
msgid "using %<typename%> outside of template"
msgstr "bruger 'typename' uden for en skabelon"
-#: cp/parser.c:9677
-#, fuzzy
-msgid "expected type-name"
-msgstr "uventet operand"
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
#, fuzzy
msgid "type attributes are honored only at type definition"
msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
@@ -16944,116 +17082,126 @@ msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
#, fuzzy
msgid "a template-id may not appear in a using-declaration"
msgstr "navnerum '%D' ikke tilladt i using-erklæring"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10597
#, fuzzy
msgid "attributes are not allowed on a function-definition"
msgstr "en global registervariabel følger en funktionsdefinition"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
#, fuzzy
msgid "attributes after parenthesized initializer ignored"
msgstr "egenskaber i parametertabelerklæring ignoreret"
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "tabelindeks er ikke et heltal"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "'%D::%D' er ikke en skabelon"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "ugyldig brug af ikke-statisk felt '%D'"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "case-værdi optræder mere end én gang"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "%Hslutningen af filen læst inden i standardparameter"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
#, fuzzy
msgid "deprecated use of default argument for parameter of non-function"
msgstr "standardparameter givet til %d. parameter for '%#D'"
-#: cp/parser.c:11858
+#: cp/parser.c:11980
#, fuzzy
msgid "default arguments are only permitted for function parameters"
msgstr "standardparameter givet til %d. parameter for '%#D'"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "ugyldig omerklæring af '%D'"
+
+#: cp/parser.c:12733
#, fuzzy
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr "erklæring af '%D' i '%D' som ikke omgiver '%D'"
-#: cp/parser.c:12611
+#: cp/parser.c:12746
#, fuzzy
msgid "extra qualification ignored"
msgstr "ekstra modifikation '%T::' af medlemmet '%D' ignoreret"
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "eksplicit specialisering følger ikke efter 'template <>'"
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "tidligere definition af '%#T'"
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
#, fuzzy
msgid "friend declaration does not name a class or function"
msgstr "friend-erklæringen er ikke i klassedefinitionen"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
#, fuzzy
msgid "keyword %<typename%> not allowed outside of templates"
msgstr "bruger 'typename' uden for en skabelon"
-#: cp/parser.c:13395
+#: cp/parser.c:13547
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr "bruger 'typename' uden for en skabelon"
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "ugyldig catch-parameter"
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "brug af '%D' er tvetydigt"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
#, fuzzy
msgid "too few template-parameter-lists"
msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
@@ -17062,178 +17210,178 @@ msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
#, fuzzy
msgid "too many template-parameter-lists"
msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'"
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "Ugyldig erklæring"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "--driver understøttes ikke længere"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "skabelonserklæring af '%#D'"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
#, fuzzy
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr "'>>' skulle have været '> >' i skabelonsklassenavn"
-#: cp/parser.c:15063
+#: cp/parser.c:15233
#, fuzzy
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr "'>>' skulle have været '> >' i skabelonsklassenavn"
-#: cp/parser.c:15068
+#: cp/parser.c:15238
#, fuzzy
msgid "missing %<>%> to terminate the template argument list"
msgstr "objektet '%E' kan ikke bruges som skabelonsparameter"
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
msgstr "'%s'-mærke benyttet i navngivning af '%#T'"
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "'%#D' omerklæret som en anden form for symbol"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "profilering understøttes ikke endnu"
-#: cp/pt.c:240
+#: cp/pt.c:241
#, fuzzy
msgid "data member %qD cannot be a member template"
msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "ugyldig medlemsskabelonerklæring '%D'"
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "eksplicit specialisering i virkefeltet '%D' der ikke er et navnerum"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede"
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
msgstr "specialiserer '%#T' i andet navnerum"
# hænger sammen med foregående tekst, derfor ikke 'fra'
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr " i forhold til definition af '%#D'"
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "specialisering af '%T' efter instantiering"
-#: cp/pt.c:738
+#: cp/pt.c:739
#, fuzzy
msgid "specializing %q#T in different namespace"
msgstr "specialiserer '%#T' i andet navnerum"
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "specialisering af '%T' efter instantiering '%T'"
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "specialisering af '%D' efter instantiering"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "'%D' er ikke en funktionsskabelon"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
#, fuzzy
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklæring"
-#: cp/pt.c:1542
+#: cp/pt.c:1543
#, fuzzy
msgid "ambiguous template specialization %qD for %q+D"
msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "skabelons-id '%D' i erklæring af primær skabelon"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr "skabelonsparameterliste benyttet i eksplicit instantiering"
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr "definition angivet for eksplicit instantiering"
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "eksplicit specialisering følger ikke efter 'template <>'"
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr "standardparameter angivet i eksplicit specialisering"
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr "skabelonsspecialisering med C-kædning"
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "'%D' er ikke en medlemsskabelonfunktion"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -17242,69 +17390,63 @@ msgstr "skabelonsspecialisering med C-kædning"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr "specialisering af underforstået erklæret speciel medlemsfunktion"
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "ingen medlemsfunktion '%D' erklæret i '%T'"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "for mange skabelonsparameterlister i erklæringen af '%T'"
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr " skygger for skabelonsparameter '%#D'"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr "skabelonsparametre der ikke bruges i partiel specialisering:"
-#: cp/pt.c:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
msgstr " '%D'"
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre"
# flertalsform unødvendig
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, fuzzy, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr "skabelonsparameter '%E' involverer skabelonsparameter"
# flertalsform unødvendig
-#: cp/pt.c:2710
+#: cp/pt.c:2685
#, fuzzy
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr "typen '%T' af skabelonsparameteren '%E' afhænger af skabelonsparameter"
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "ingen standardparameter til '%D'"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr "skabelon med C-kædning"
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr "skabelonsklasse uden et navn"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
@@ -17314,63 +17456,68 @@ msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "ugyldig medlemsskabelonerklæring '%D'"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "'%D' erklærer ikke en skabelonstype"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "skabelonsdefinition af ikke-skabelon '%#D'"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "forvented %d niveauer af skabelonsparametre for '%#D', modtog %d"
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "modtog %d skabelonsparametre for '%#D'"
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "modtog %d skabelonsparametre for '%#T'"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " men %d påkrævet"
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "'%T' er ikke en skabelonstype"
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
+
# hænger sammen med næste tekst
-#: cp/pt.c:3227
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "tidligere erklæring '%D'"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "benyttede %d skabelonsparameter%s i stedet for %d"
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "skabelonsparameter '%#D'"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
#, fuzzy
msgid "redeclared here as %q#D"
msgstr "omerklæret her som '%#D'"
@@ -17379,346 +17526,356 @@ msgstr "omerklæret her som '%#D'"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "omdefinering af standardparameter for '%#D'"
-#: cp/pt.c:3260
+#: cp/pt.c:3246
#, fuzzy
msgid "%J original definition appeared here"
msgstr " oprindelig definition er her"
-#: cp/pt.c:3370
+#: cp/pt.c:3342
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/pt.c:3411
+#: cp/pt.c:3383
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/pt.c:3486
+#: cp/pt.c:3458
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/pt.c:3536
+#: cp/pt.c:3508
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/pt.c:3576
+#: cp/pt.c:3548
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/pt.c:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "'%E' er ikke en gyldig skabelonsparameter"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "'%E' er ikke en gyldig skabelonsparameter"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
#, fuzzy
msgid "standard conversions are not allowed in this context"
msgstr "'%D' blev ikke erklæret i dette virkefelt"
-#: cp/pt.c:3827
+#: cp/pt.c:3799
#, fuzzy
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"
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr "type/værdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'"
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr " forventede en konstant af typen '%T', modtog '%T'"
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr " forventede en klasseskabelon, modtog '%T'"
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr " forventede en type, modtog '%E'"
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr " forventede en type, modtog '%T'"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr " forventede en klasseskabelon, modtog '%T'"
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
msgstr " forventede en skabelon af typen '%D', modtog '%D'"
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "kunne ikke konvertere skabelonsparameteren '%E' til '%T'"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "forkert antal skabelonsparametre (%d, skulle være %d)"
-#: cp/pt.c:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "angivet for '%D'"
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, c-format
msgid "template argument %d is invalid"
msgstr "skabelonsparameter %d er ugyldig"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr "ikke-skabelon benyttet som skabelon"
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "ikke-skabelonstype '%T' benyttet som skabelon"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "til skabelonserklæring '%D'"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "tvetydig klasseskabelonsinstantiering for '%#T'"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "instantiering af '%D' som typen '%T'"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "ugyldig parametertype '%T'"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "i erklæringen '%D'"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "funktion returnerer en værdi af en sammensat type"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "'%s' er erklæret som en funktion der returnerer en funktion"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "opretter henvisning til medlemsfunktion af typen '%T' der ikke er en klasse"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "opretter tabel med størrelsen nul"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "opretter tabel med størrelsen nul ('%E')"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr "danner reference til void"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "danner %s til referencetypen '%T'"
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "opretter henvisning til medlemsreference af typen '%T'"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "opretter tabel af '%T'"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
#, fuzzy
msgid "creating array of %qT, which is an abstract class type"
msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser"
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "'%T' er ikke en class-, struct- eller union-type"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser"
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "brug af '%s' i skabelon"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, fuzzy, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr "'%D' benyttes som en type, men er ikke defineret som en type"
-#: cp/pt.c:7557
+#: cp/pt.c:7556
#, fuzzy
msgid "say %<typename %E%> if a type is meant"
msgstr " (benyt 'typename %T::%D' hvis det er hvad du mener)"
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "manglende statisk felt '%s'"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "'%T' er ikke en klasse eller et navnerum"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "'%T' er ikke en klasse eller et navnerum"
-#: cp/pt.c:8844
+#: cp/pt.c:8872
#, fuzzy
-msgid "%qT uses anonymous type"
+msgid "%qT is/uses anonymous type"
msgstr "skabelonsparameter '%T' benytter anonym type"
-#: cp/pt.c:8846
+#: cp/pt.c:8874
#, fuzzy
msgid "%qT uses local type %qT"
msgstr "skabelonsparameter '%T' benytter lokal type '%T'"
-#: cp/pt.c:8854
+#: cp/pt.c:8883
#, fuzzy
msgid "%qT is a variably modified type"
msgstr "skabelonsparameter '%T' er en variabelt ændret type"
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "størrelsen af medlemmet '%D' er ikke konstant"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr " ved forsøg på at instantiere '%D'"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "ufuldstændig typeforening"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "eksplicit instantiering af ikke-skabelon '%#D'"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
#, fuzzy
msgid "no matching template for %qD found"
msgstr "ingen passende skabelon for '%D' fundet"
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "eksplicit instantiering af '%#D'"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "'%#D' er blevet eksplicit instantieret mere end én gang"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr "ISO C++ forbyder brugen af 'extern' ved eksplicitte instantieringer"
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "eksplicit instantiering af '%T' før definering af skabelonen"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr "ISO C++ forbyder brugen af '%s ved eksplicitte instantieringer"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "'%#T' er blevet eksplicit instantieret mere end én gang"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "eksplicit instantiering af '%D', men ingen definition tilgængelig"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant "
@@ -17737,25 +17894,25 @@ msgstr "mystisk info om opbevaringssted i '%s'"
msgid "can't create repository information file %qs"
msgstr "kan ikke oprette informationsfilen '%s' til opbevaringssted"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "kan ikke bruge typeid med -fno-rtti"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "'#include <typeinfo>' er nødvendig før typeid kan benyttes"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
#, fuzzy
msgid "cannot create type information for type %qT because its size is variable"
msgstr "kan ikke oprette typeinformation for typen '%T' fordi dens størrelse er variabel"
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
#, fuzzy
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr "dynamic_cast af '%#D' til '%#T' kan aldrig lykkes"
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "kan ikke anvende dynamic_cast på '%E' (af typen '%#T') til typen '%#T' (%s)"
@@ -17770,239 +17927,234 @@ msgstr "'%T' er en tvetydig stamklasse til '%T'"
msgid "%qT is an inaccessible base of %qT"
msgstr "'%T' er en utilgængelig stamklasse til '%T'"
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "ugyldig kovariant returneringstype for '%#D'"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
#, fuzzy
msgid " overriding %q#D"
msgstr " overskriver '%#D'"
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "ugyldig kovariant returneringstype for '%#D'"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "modstridende returtyper angivet for '%#D'"
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "løsere throw-angivelse for '%#F'"
-#: cp/search.c:1867
+#: cp/search.c:1876
#, fuzzy
msgid " overriding %q#F"
msgstr " overskriver '%#F'"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "'%#D' kan ikke erklæres"
-#: cp/search.c:1961
+#: cp/search.c:1970
#, fuzzy
msgid " since %q#D declared in base class"
msgstr " eftersom '%#D' er erklæret i stamklassen"
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "typen af asm-operanden '%E' kunne ikke afgøres"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "objekt mangler i brug af '%E'"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "parameter til egenskaben '%s' er større end %d"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "'this' er ikke tilgængelig for statiske medlemsfunktioner"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "ugyldig brug af 'this' i ikke-medlemsfunktion"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "ugyldig brug af 'this' ved øverste niveau"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
#, fuzzy
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "'%E' er ikke af typen '%T'"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
#, fuzzy
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr "skabelonstypeparametre skal begynde med 'class' eller 'typename'"
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "ugyldig brug af skabelonstypeparameter"
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "ugyldig brug af skabelonstypeparameter"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
#, fuzzy
msgid "invalid default argument for a template template parameter"
msgstr "ugyldig brug af skabelonstypeparameter"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "definition af '%#T' inden i skabelonsparameterliste"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "ugyldig definition af modificeret type '%T'"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "tidligere definition af '%#T'"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
msgid "invalid base-class specification"
msgstr "ugyldig stamklasseangivelse"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "stamklassen '%T' har const/volatile-modifikationer"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
#, fuzzy
msgid "incomplete type %qT used in nested name specifier"
msgstr "ufuldstændig type '%T' kan ikke bruges til at navngive et virkefelt"
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "brug af '%D' er tvetydigt"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "'%D' er ikke et medlem af '%T'"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "'%D' er ikke et medlem af '%T'"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "brug af navnerummet '%D' som udtryk"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "brug af klasseskabelonen '%T' som udtryk"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr "forespørgsel efter medlemmet '%D' er tvetydigt i det multiple nedarvningsnet"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr "brug af %s fra indeholdende funktion"
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr " '%#D' erklæret her"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "typen af '%E' er ukendt"
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "modifikationerne '%V' kan ikke anvendes på '%T'"
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr "egenskaben '%s' kan kun anvendes med Java-klassedefinitioner"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, fuzzy, c-format
msgid "%qE 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"
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "den udbedte init_priority er ikke en heltalskonstant"
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, fuzzy, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr "kan kun bruge egenskaben '%s' på filvirkefeltsdefinitioner af objekter af klassetype"
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "den udbedte init_priority er uden for det gyldige interval"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr "den udbedte init_priority er reserveret til intern brug"
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "egenskaben '%s' er ikke understøttet på denne platform"
@@ -18022,215 +18174,215 @@ msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning ti
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "ugyldig brug af '%s' på en medlemsfunktion"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "ugyldig anvendelse af '%s' på en void-type"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO C++ forbyder anvendelse af 'sizeof' på et udtryk af en funktionstype"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "forældet konvertering fra strengkonstant til '%T'"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
#, fuzzy
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-klassetype '%T'"
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "ugyldig brug af ikke-statisk felt '%D'"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
#, fuzzy
msgid "invalid access to non-static data member %qD of NULL object"
msgstr "ugyldig tilgang til ikke-statisk datamedlem '%D' af NULL-objekt"
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
#, fuzzy
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr "(måske blev 'offsetof'-makroen benyttet forkert)"
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
#, fuzzy
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "'%D::%D' er ikke et medlem af '%T'"
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "'%D' er ikke et medlem af '%T'"
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "'%D' har intet medlem ved navn '%E'"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD is not a member template function"
msgstr "'%D' er ikke en medlemsskabelonfunktion"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "'%T' er ikke af en henvisning til objekt-type"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "ugyldig brug af '%s' på henvisning til medlem"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "ugyldig typeparameter"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "indeks mangler i tabelopslag"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ forbyder indeksering af en ikke-venstreværdis tabel"
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "indeksering af tabel som er erklæret 'register'"
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "objekt mangler i brug af '%E'"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C++ forbyder kald af '::main' inde fra programmet"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
#, fuzzy
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr "brug .* eller ->* i kald af henvisning til medlemsfunktion i '%E (...)'"
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "'%E' kan ikke bruges som en funktion"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "for mange parametre til %s '%+#D'"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "ved dette sted i filen"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "for mange parametre til funktionen"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "parameteren '%s' er af en ufuldstændig type"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "parameteren er af en ufuldstændig type"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "for få parametre til %s '%+#D'"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "for få parametre til funktionen"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "antager typeomtvingning til typen '%T' fra flertydig funktion"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "division med nul i '%E / 0'"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "division med nul i '%E / 0.'"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "division med nul i '%E %% 0'"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "division med nul i '%E %% 0.'"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "%s-roteringsantal er negativt"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "%s-roteringsantal >= bredden af typen"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ forbyder sammenligning mellem henvisningsvariabel og heltal"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "uordnet sammenligning af ikke-kommatalsparameter"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "ugyldige operander af typerne '%T' og '%T' til binær '%O'"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "sammenligning mellem typerne '%#T' og '%#T'"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
@@ -18238,150 +18390,150 @@ msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
#. 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr "NULL benyttet i udregning"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr "ISO C++ forbyder brug af henvisning af typen 'void *' i fratrækning"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "ISO C++ forbyder brug af henvisning til funktion i fratrækning"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "ISO C++ forbyder brug af henvisning til medlemsfunktion i fratrækning"
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
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"
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, fuzzy, c-format
msgid "invalid use of %qE 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"
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, fuzzy, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr "paranteser omkring '%E' kan ikke bruges til at danne en henvisning til medlemsfunktion"
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "tager adressen på midlertidig variabel"
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ forbyder %s af en enum"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr "typeomtvingning til ikke-reference-type benyttet som venstreværdi"
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "ugyldig brug af '--' på den booleske variabel '%D'"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr "ISO C++ forbyder at tage adressen på funktionen '::main'"
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
#, fuzzy
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized 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'"
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
#, 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++ forbyder at tage adressen på en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
-#: cp/typeck.c:4083
+#: cp/typeck.c:4039
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"
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%D'"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr "tager adressen på en destruktionsfunktion"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr "tager adressen på et bundet henvisning til medlem-udtryk"
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "kan ikke oprette henvisning til reference medlemmet '%D'"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
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"
-#: cp/typeck.c:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "forespørgsel efter adressen af registervariablen '%s'"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
#, fuzzy
msgid "address requested for %qD, which is declared %<register%>"
msgstr "adresse forespurgt for '%D' som er erklæret 'register'"
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, fuzzy, c-format
msgid "%s expression list treated as compound expression"
msgstr "klargøringsliste behandlet som et sammensat udtryk"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
#, fuzzy
msgid "%s from type %qT to type %qT casts away constness"
msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed"
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "ugyldig static_cast fra typen '%T' til typen '%T'"
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "konvertering fra '%T' til '%T'"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "ugyldig reinterpret_cast af et højreværdiudtryk fra typen '%T' til typen '%T'"
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "reinterpret_cast fra '%T' til '%T' mister præcision"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "typeomtvingning fra '%T' til '%T' forøger den påkrævede justering af målets type"
@@ -18390,173 +18542,142 @@ msgstr "typeomtvingning fra '%T' til '%T' forøger den påkrævede justering af mål
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
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"
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "ugyldig const_cast fra typen '%T' til typen '%T'"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
#, fuzzy
msgid "invalid use of const_cast with type %qT, 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"
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
#, fuzzy
msgid "invalid use of const_cast with type %qT, 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"
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "ugyldig const_cast fra typen '%T' til typen '%T'"
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype '%T'"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "ugyldig omtvingelse til funktionstypen '%T'"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
#, fuzzy
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr " i evaluering af '%Q(%#T, %#T)'"
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "uforenelige typer i tildeling af '%T' til '%T'"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ forbyder tildeling af tabeller"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " i henvisning til medlemsfunktion-omdannelse"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr " i henvisning til medlem-omdannelse"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "henvisning til medlem-typeomtvingning via den virtuelle stamklasse '%T' af '%T'"
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "henvisning til medlem-omdannelse via den virtuelle stamklasse '%T' af '%T'"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
-# %s bliver til returnering eller tildeling eller noget i den retning
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'"
-
-#: cp/typeck.c:5874
-#, fuzzy
-msgid "%s to non-pointer type %qT from NULL"
-msgstr "%s til ikke-henvisningstypen '%T' fra NULL"
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "overbringelse af '%T' for ikke-henvisnings%s %P af '%D'"
-
-#: cp/typeck.c:5885
-#, fuzzy
-msgid "%s to %qT from %qT"
-msgstr "%s til '%T' fra '%T'"
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "overbringelse af negativ værdi '%E' for %s %P af '%D'"
-
-#: cp/typeck.c:5897
-#, fuzzy
-msgid "%s of negative value %qE to %qT"
-msgstr "%s af negativ værdi '%E' til `%T'"
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr "kan ikke konvertere '%T' til '%T' for parameter '%P' til '%D'"
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "kan ikke konvertere '%T' til '%T' i %s"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "i overbringelse af parameter %P af '%+D'"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "returnerer reference til midlertidig variabel"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "reference til ikke-venstreværdi returneret"
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "reference til den lokale variabel '%D' returneret"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "adresse af den lokale variabel '%D' returneret"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
msgid "returning a value from a destructor"
msgstr "returnerer en værdi fra en destruktionsfunktion"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6174
+#: cp/typeck.c:6063
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"
#. You can't return a value from a constructor.
-#: cp/typeck.c:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "returnerer en værdi fra en konstruktionsfunktion"
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
#, fuzzy
msgid "return-statement with a value, in function returning 'void'"
msgstr "'return' med en værdi i en funktion der returnerer void"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
#, fuzzy
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)"
@@ -18623,172 +18744,172 @@ msgstr "\t%#D"
msgid "%J since type %qT has pure virtual functions"
msgstr " eftersom typen '%T' har abstrakte virtuelle funktioner"
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
#, fuzzy
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr "konstruktionsfunktionsyntaks benyttet, men ingen konstruktionsfunktion er erklæret for typen '%T'"
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "kan ikke tildele tabeller startværdier med denne syntaks"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "klargør tabel med en parameterliste"
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "int-tabel får tildelt startværdi fra en ikke-bred streng"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "startværdien for en skalarvariabel kan kun bestå af ét element"
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "krøllede paranteser omkring skalarstartværdi for '%T'"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "ignorerer ekstra startværdier for '%T'"
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
#, fuzzy
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr "underobjekt af typen '%T' skal klargøres af en konstruktionsfunktion, ikke af '%E'"
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "sammensat type har delvis indklammet startværdi"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "ikke-trivielle navngivne startværdier"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
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/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "manglende startværdi for medlemmet '%D'"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "konstant medlem '%D' uden startværdi"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "medlem '%D' med konstante felter uden startværdi"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "medlemmet '%D' er en reference uden startværdi"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr "indeksværdi i stedet for feltnavn i union-startværdi"
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "intet felt '%D' i union der tildeles startværdi"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
#, fuzzy
msgid "union %qT with no named members cannot be initialized"
msgstr "union '%T' uden navngivne elementer kan ikke tildeles startværdi"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "for mange elementer i startværdi til sammensat type"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "fundet en henvisningsefterfølgelse der går i ring"
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "grundoperanden til '->' har en ikke-henvisningstype '%T'"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
#, fuzzy
msgid "result of %<operator->()%> yields non-pointer result"
msgstr "resultatet af 'operator->()' er ikke en henvisning"
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "grundoperanden til '->' er ikke en henvisning"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "'%E' kan ikke bruges som en medlemshenvisning eftersom udtrykkets type er '%T'"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
#, fuzzy
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr "kan ikke anvende medlemshenvisning '%E' på '%E' som er af den ikke-sammensatte type '%T'"
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
#, fuzzy
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr "medlemstypen '%T::' uforenelige med objekttypen '%T'"
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "kald af en funktion '%D' som kaster en ufuldstændig type '%#T'"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "kald af en funktion som kaster en ufuldstændig type '%#T'"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr "%s er forældet, se venligst dokumentationen for detaljer"
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "kan ikke åbne uddatafilen '%s'"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "global registervariabel '%s' benyttet i indlejret funktion"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "registervariabel '%s' benyttet i indlejret funktion"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "forespørgsel efter adressen af den globale registervariabel '%s'"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "forespørgsel efter adressen af registervariablen '%s'"
@@ -18807,83 +18928,83 @@ msgstr "parameter til '%s' mangler"
msgid "no input files; unwilling to write output files"
msgstr "ingen inputfiler; vil ikke skrive outputfiler"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "funktionen returnerer ikke en strengtype"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "ubenyttet parameter '%s'"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "%Jubrugt variabel '%D'"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "funktion returnerer en værdi af en sammensat type"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "ukendt instruktionstilstand"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "sproget %s ikke genkendt"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18901,7 +19022,7 @@ msgstr ""
msgid "Array element size too big"
msgstr "Tabelelementværdi ved %0 er uden for det definerede interval"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18911,27 +19032,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "slutfeltet '%s' bliver måske ikke klargjort"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "slutfeltet '%s' bliver måske ikke klargjort"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "intern fejl i check-init: trækode ikke implementeret: %s"
-#: java/check-init.c:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "slutfeltet '%s' bliver måske ikke klargjort"
@@ -18969,201 +19090,201 @@ msgstr "abstrakt metode i ikke-abstrakt klasse"
msgid "%Jnon-static method '%D' overrides static method"
msgstr "ikke-statisk metode '%s' overskriver statisk metode"
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "'%#D' benyttet før erklæring"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "erklæring af '%s' skygger for en parameter"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "erklæring af '%s' skygger for et symbol fra parameterlisten"
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "etiketten '%D' er benyttet, men ikke defineret"
-#: java/decl.c:1580
+#: java/decl.c:1637
#, fuzzy
msgid "%Jlabel '%D' defined but not used"
msgstr "etiketten '%D' er defineret, men ikke benyttet"
-#: java/decl.c:1702
+#: java/decl.c:1759
#, fuzzy
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr "I %s: overlappende variabel- og undtagelsesintervaller ved %d"
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr "ugyldig type i parameterfejlanalyseringsinfo"
-#: java/decl.c:1775
+#: java/decl.c:1832
#, fuzzy
msgid "%Jbad PC range for debug info for local '%D'"
msgstr "ugyldig PC-interval for fejlanalyseringsinfo for lokal '%s'"
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, fuzzy, c-format
msgid "assert: %s is assign compatible with %s"
msgstr "-march=%s er ikke forenelig med den valgte ABI"
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr "stakunderløb - dup*-operation"
-#: java/expr.c:1699
+#: java/expr.c:1703
#, fuzzy, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr "reference '%s' er tvetydig: den optræder i grænsefladen '%s' og grænsefladen '%s'"
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "feltet '%s' ikke fundet"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "metoden '%s' ikke fundet i klassen"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "kunne ikke finde klassen '%s'"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
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:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr "invokestatic på en ikke-statisk metode"
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr "invokestatic på en abstrakt metode"
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr "invoke[non-static] på en statisk metode"
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "manglende felt '%s' i '%s'"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "signatur passer ikke med feltet '%s' i '%s'"
-#: java/expr.c:2737
+#: java/expr.c:2741
#, fuzzy
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "tildeling til endeligt felt '%s' er ikke i feltets klasse"
-#: java/expr.c:2742
+#: java/expr.c:2746
#, fuzzy
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr "tildeling til endeligt statisk felt '%s' er ikke i klassens klargøring"
-#: java/expr.c:2751
+#: java/expr.c:2755
#, fuzzy
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "tildeling til endeligt felt '%s' er ikke i konstruktionsfunktion"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "ugyldig PC i linjetalstabel"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "kan ikke nå bytekode fra %d til før %d"
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
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:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr "ukendt bred underinstruktion"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "ingen metode ved navn '%T::%D'"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "kan ikke finde klassen '%s'"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "fejl ved tolkning af felter"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "kunne ikke få fat i oplysninger om filen '%s'"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "ikke en gyldig Java .class-fil"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr "fejl ved tolkning af konstant område"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "fejl i konstantområdelement nr. %d\n"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "typetildelingen angiver en tabeltype"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "typetildelingen angiver en tabeltype"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, fuzzy, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
@@ -19172,118 +19293,118 @@ msgstr ""
"Brug: gcov [TILVALG]... KILDEFIL\n"
"\n"
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, fuzzy, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr "Generér C-inkluderingsfil med platformspecifikke faciliteter"
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe Brug datakanaler i stedet for midlertidige filer\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -W Aktivér ekstra advarsler\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <katalog> Tilføj katalog til oversætterens søgestier\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <fil> Anbring uddataene i <fil>\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " -h, --help Udskriv denne hjælp og afslut\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -v, --version Udskriv versionsnummeret og afslut\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -v, --version Udskriv versionsnummeret og afslut\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -h, --help Udskriv denne hjælp og afslut\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " -h, --help Udskriv denne hjælp og afslut\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -19293,32 +19414,32 @@ msgstr ""
"For fejlrapporteringsinstruktioner, se:\n"
"%s.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "intet klassenavn angivet med '-%s'"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
#, fuzzy
msgid "'-MG' option is unimplemented"
msgstr "ret-instruktion ikke implementeret"
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "-C og -o er indbyrdes uforenelige"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "Opretter %s.\n"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -19333,7 +19454,7 @@ msgstr "ikke en gyldig Java .class-fil"
msgid "error while parsing constant pool\n"
msgstr "fejl ved tolkning af konstant område"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "fejl i konstantområdelement nr. %d\n"
@@ -19409,105 +19530,105 @@ msgstr "ugyldig indbygget fcode"
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr "kildekodefilen for klassen '%s' er nyere end dens tilsvarende klassefil; kildekodefilen '%s' benyttet i stedet"
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "ugyldig strengkonstant"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "ugyldig værdikonstanttype %d, indeks %d"
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "kan ikke genåbne %s"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "kan ikke lukke %s"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr "kan ikke finde filen for klassen %s"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr "ikke en gyldig Java .class-fil"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "læser klassen %s for anden gang fra %s"
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr "fejl ved tolkning af felter"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr "fejl ved tolkning af metoder"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr "fejl ved tolkning af endelige egenskaber"
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
#, fuzzy
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr "manglende Code-egenskab"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
#, fuzzy
msgid "%Hsource 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:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "ingen inddatafiler angivet"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "kan ikke lukke inddatafilen %s"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "ødelagt zip/jar-fil %s"
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, fuzzy, c-format
msgid "error while reading %s from zip file"
msgstr "fejl ved tolkning af felter"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "intern fejl i generate_bytecode_insn - trækode er ikke implementeret: %s"
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr "typen af startværdien for feltet passer ikke"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "kan ikke oprette kataloget %s"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, c-format
msgid "can't open %s for writing: %m"
msgstr "kan ikke åbne %s til skrivning: %m"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "kan ikke oprette %s"
@@ -19563,27 +19684,27 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
#, fuzzy
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:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "kan ikke åbne uddatafilen '%s'"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "filen '%s' blev ikke fundet"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "fejl: "
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, fuzzy, c-format
msgid "%s: warning: "
msgstr "%s:%d: advarsel: "
@@ -19640,15 +19761,15 @@ msgstr "brug af @FILE med flere filer er ikke implementeret"
msgid "cannot specify 'main' class when not linking"
msgstr "kan ikke angive 'main'-klassen når der ikke sammenkædes"
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr "kan ikke udføre afhængighedsfølgning med inddata fra standard-ind"
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr "kunne ikke bestemme målnavn for afhængighedsfølgning"
-#: java/lex.c:256
+#: java/lex.c:260
#, fuzzy
msgid ""
"unknown encoding: %qs\n"
@@ -19663,7 +19784,7 @@ msgstr ""
"ikke ønske at bruge en bestemt kodning for dine inddatafiler, \n"
"så prøv tilvalget '--encoding=UTF-8'"
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "intern fejl - ugyldigt UTF-8-navn"
@@ -19677,225 +19798,225 @@ msgstr "kan ikke sammensætte %s"
msgid "internal error - invalid Utf8 name"
msgstr "intern fejl - ugyldigt UTF-8-navn"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr "Manglende term"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "';' forventet"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "Manglende navn"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "'*' forventet"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr "Klasse- eller grænsefladeerklæring forventet"
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "feltet '%s' er erklæret som en funktion"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "Manglende klassenavn"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "'{' forventet"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr "Manglende superklassenavn"
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr "Manglende grænsefladenavn"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr "Manglende variabelstartværdi"
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "Ugyldig erklæring"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "']' forventet"
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr "Uafbalanceret ']'"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr "Ugyldig metodeerklæring, metodenavn påkrævet"
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr "Kaldenavn forventet"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr "Ugyldig metodeerklæring, returtype påkrævet"
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "')' forventet"
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr "Manglende formel parameterterm"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "Manglende kaldenavn"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr "Manglende klassetypeterm"
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr "Ugyldig grænsefladetype"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "':' forventet"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr "Ugyldig udtrykssætning"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "'(' forventet"
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr "Manglende term eller ')'"
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr "Manglende eller ugyldigt konstant udtryk"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr "Manglende term eller ')' forventet"
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr "Ugyldigt kontroludtryk"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr "Ugyldigt opdateringsudtryk"
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr "Ugyldig klargøringssætning"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr "Manglende term eller ')' forventet"
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr "'class' eller 'this' forventet"
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr "'class' forventet"
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr "')' eller term forventet"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "'[' forventet"
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr "Felt forventet"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr "Manglende term og ']' forventet"
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr "']' forventet, ugyldigt typeudtryk"
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr "Ugyldigt typeudtryk"
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr "Ugyldig referencetype"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr "Konstruktionsfunktionskald skal være det første i en konstruktionsfunktion"
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr "Kun konstruktionsfunktioner kan kalde konstruktionsfunktioner"
-#: java/parse.y:3042
+#: java/parse.y:3041
#, fuzzy, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ": '%s' JDK1.1(TM)-facilitet"
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19904,689 +20025,689 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Manglende navn"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "Ugyldig klargøringssætning"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "'%D' er allerede defineret i '%T'"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, fuzzy, c-format
msgid "Interface %qs repeated"
msgstr "type er forældet"
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "Benyt ikke-justerede hukommelsesreferencer"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, fuzzy, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr "medlemmet '%D' kan ikke afklæres både virtual og static"
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "omdefinering af 'struct %s'"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "typen antages at være 'int' i erklæringen af '%s'"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
#, fuzzy
msgid "Class %qs not found in %<throws%>"
msgstr "feltet '%s' blev ikke fundet i klassen"
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "etiketten '%s' er blevet erklæret mere end én gang"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, fuzzy, c-format
msgid "Class or interface %qs not found in import"
msgstr "Klasse- eller grænsefladeerklæring forventet"
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "ugyldigt udformet .zip-arkiv i CLASSPATH: %s"
-#: java/parse.y:7148
+#: java/parse.y:7151
#, fuzzy, c-format
msgid "Can't find default package %qs. 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:7153
+#: java/parse.y:7156
#, fuzzy, c-format
msgid "Package %qs not found in import"
msgstr "feltet '%s' blev ikke fundet i klassen"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "%Jubrugt variabel '%D'"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "'%D' er allerede defineret i klassen '%T'"
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "kan ikke finde filen for klassen %s"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, fuzzy, c-format
msgid "Can't use type %qs as a qualifier"
msgstr "kan ikke bruge '%s' som et %s-register"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "tom erklæring"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "overløb i konstant udtryk"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "case-værdi optræder mere end én gang"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "manglende statisk felt '%s'"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "ikke et statisk felt '%s'"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "Ingen case for %s"
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "ugyldig venstreværdi i tildeling"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "ikke-registreret operator %s"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "ugyldig parameter til egenskaben '%s'"
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "ugyldig typeparameter '%s'"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "ugyldig konvertering fra '%T' til '%T'"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "tabel får tildelt en startværdi fra et tabeludtryk der ikke er konstant"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "tomt indeksinterval i startværdi"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "tomt indeksinterval i startværdi"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "returnerer en værdi fra en konstruktionsfunktion"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "erklæring af '%s' skygger for en global erklæring"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "den foregående definition er her"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "Ingen etiketdefinition for FORMAT-sætning ved %0"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "continue-sætning befinder sig ikke i en løkke"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "continue-sætning befinder sig ikke i en løkke"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "break-sætning befinder sig ikke i en løkke- eller switch-konstruktion"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "etiketten '%D' optræder mere end én gang"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
#, fuzzy
msgid "original label is here"
msgstr "Justér alle etiketter"
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "tomt indeksinterval i startværdi"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "ragelse i slutningen signaturstreng"
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, fuzzy, c-format
msgid "verification failed: %s"
msgstr "verifikationsfejl ved PC=%d"
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, fuzzy, c-format
msgid "verification failed at PC=%d: %s"
msgstr "verifikationsfejl ved PC=%d"
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr "ugyldig pc i exception_table"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "ukendt kode %d@pc=%d under verifikation"
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr "verifikationsfejl ved PC=%d"
@@ -20634,189 +20755,189 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "typen af den %d. parameter i det indirekte funktionskald passer ikke"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
#, fuzzy
msgid "%<@end%> must appear in an @implementation context"
msgstr "'@end' skal optræde i en implementationskontekst"
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "metodedefinitionen optræder ikke i en klassekontekst"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "metodedefinitionen optræder ikke i en klassekontekst"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, fuzzy, c-format
msgid "object does not conform to the %qs protocol"
msgstr "objekt overholder ikke protokollen '%s'"
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "klassen '%s' implementerer ikke protokollen '%s'"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, fuzzy, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr "statisk allokerede objekter understøttes ikke"
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, fuzzy, c-format
msgid "protocol %qs has circular dependency"
msgstr "protokollen '%s' har cirkulær afhængighed"
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "kan ikke finde protokolerklæringen af '%s'"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "kan ikke finde grænsefladeerklæringen af '%s'"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, fuzzy, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr "parameteren til 'asm' er ikke en konstant streng"
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "kan ikke finde referencemærket for klassen '%s'"
-#: objc/objc-act.c:2330
+#: objc/objc-act.c:2374
#, fuzzy
-msgid "%Jcreating selector for nonexistent method %qE"
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr "opretter vælger for ikke-eksisterende metode '%s'"
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "'%s' er et ugyldigt klassenavn"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "kan ikke finde klassen '%s'"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "klassen '%s' eksisterer allerede"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "'%s' omerklæret som en anden form for symbol"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
#, fuzzy
msgid "%Jprevious declaration of '%D'"
msgstr "'%D' er tidligere erklæret"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
#, fuzzy
msgid "@catch parameter is not a known Objective-C class type"
msgstr "statisk allokerede objekter understøttes ikke"
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
#, fuzzy
msgid "exception of type %<%T%> will be caught"
msgstr "undtagelse af typen '%T' vil blive fanget"
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
#, fuzzy
msgid "%H by earlier handler for %<%T%>"
msgstr " af tidligere håndtering af '%T'"
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "I %s '%s':"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr "inkonsistent instansvariabelangivelse"
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
#, fuzzy
msgid "can not use an object as parameter to a method"
msgstr "kan ikke benytte et objekt som parameter til en metode\n"
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "flere parametre ved navn '%s'"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "ingen superklasse erklæret i grænsefladen for '%s'"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "ugyldig modtagertype '%s'"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "metoden '%s' er ikke implementeret af protokollen"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "'%s' svarer ikke på '%s'"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
#, fuzzy
msgid "%<...%> as arguments.)"
msgstr "ingen parametre"
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
msgstr "uerklæret vælger '%s'"
@@ -20830,152 +20951,152 @@ msgstr "uerklæret vælger '%s'"
#. 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "instansvariablen '%s' tilgået i klassemetode"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "mere end én erklæring af klassemetoden '%s'"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "mere end én grænsefladeerklæring af kategorien '%s(%s)'"
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'"
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
msgstr "instansvariablen '%s' er erklæret '%s'"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr " eftersom typen '%T' har abstrakte virtuelle funktioner"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'"
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, fuzzy, c-format
msgid "type %qs has a user-defined constructor"
msgstr "typen '%T' har ingen destruktionsfunktion"
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, fuzzy, c-format
msgid "type %qs has a user-defined destructor"
msgstr "typen '%T' har ingen destruktionsfunktion"
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "instansvariablen '%s' er erklæret privat"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, fuzzy, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr "instansvariablen '%s' er erklæret privat"
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "instansvariablen '%s' er erklæret '%s'"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "statisk tilgang til objekt af typen 'id'"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
msgstr "ufuldstændig implementering af klassen '%s'"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
msgstr "ufuldstændig implementering af kategorien '%s'"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
#, fuzzy
msgid "method definition for %<%c%s%> not found"
msgstr "metodedefinitionen for '%c%s' ikke fundet"
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "%s '%s' implementerer ikke helt protokollen '%s'"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
#, fuzzy
msgid "%<@end%> missing in implementation context"
msgstr "'@end' mangler i implementationskontekst"
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "kan ikke grænsefladeerklæringen af '%s', superklasse til '%s'"
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "omimplementering af klassen '%s'"
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "modstridende superklassenavn '%s'"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "'%s' er tidligere erklæret"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "mere end én grænsefladeerklæring af klassen '%s'"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "mere end én erklæring af protokollen '%s'"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
#, fuzzy
msgid "%J%s %<%c%s%>"
msgstr "I %s '%s':"
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "ingen superklasse erklæret i grænsefladen for '%s'"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] skal optræde i en metodekontekst"
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "den lokale erklæring af funktionen '%s' skjuler instansvariabel"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "ekstra semikolon angivet i struct eller union"
@@ -20985,22 +21106,22 @@ msgstr "ekstra semikolon angivet i struct eller union"
msgid "%HDuplicate name %q.*s."
msgstr "etiketten '%D' optræder mere end én gang"
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "global registervariabel '%s' benyttet i indlejret funktion"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "registervariabel '%s' benyttet i indlejret funktion"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "forespørgsel efter adressen af den globale registervariabel '%s'"
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "forespørgsel efter adressen af registervariablen '%s'"
@@ -21382,720 +21503,720 @@ msgstr "Advar om beregninger på funktionshenvisninger"
#: options.c:1237
#, fuzzy
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "Advar når flertydiggørelse forfremmer fra unsigned til signed"
+
+#: options.c:1240
+#, fuzzy
msgid "Warn if inherited methods are unimplemented"
msgstr "Advar ikk hvis nedarvede metoder ikke implementeres"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Advar om flere erklæring af det samme objekt"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr "Advar hvis modifikationer angives når det ikke er nødvendigt"
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr "Advar når oversætteren ændrer på ordenen af kode"
-#: options.c:1249
+#: options.c:1252
#, fuzzy
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr "Advar når en funktions returtype antages at være int"
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr "Advar hvis en vælger har flere metoder"
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr "Advar om mulige brud på sekvenspunktreglerne"
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr "Advar når en lokal variabel skygger for en anden"
-#: options.c:1261
+#: options.c:1264
#, fuzzy
msgid "Warn about signed-unsigned comparisons"
msgstr "Advar om sammenligninger mellem typer med og uden fortegn"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr "Advar når flertydiggørelse forfremmer fra unsigned til signed"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
#, fuzzy
msgid "Warn about code which might break strict aliasing rules"
msgstr "Advar om kode som kan bryde strenge aliasregler"
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "Advar om funktionserklæringer uden prototype"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "Advar om mistænkelige erklæringer af main"
-#: options.c:1279
+#: options.c:1282
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"
-#: options.c:1282
+#: options.c:1285
#, fuzzy
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "Advar om switch-sætninger over enum-typer som mangler default"
-#: options.c:1285
+#: options.c:1288
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"
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr "Advar når synteseopførslen adskiller sig fra Cfront"
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr "Undertryk ikke advarsler fra systeminkluderingsfiler"
-#: options.c:1294
+#: options.c:1297
#, fuzzy
msgid "Warn about features not present in traditional C"
msgstr "foreslår undladelse af brug af #elif i traditionel C"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
#, fuzzy
msgid "Warn about @selector()s without previously declared methods"
msgstr "Advar om globale funktioner uden tidligere erklæringer"
-#: options.c:1303
+#: options.c:1306
#, fuzzy
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "ugyldigt eller ikke-defineret #-direktiv"
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "overløb i konstant udtryk"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr "Advar om ikke-klargjorte automatiske variabler"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr "Advar om ukendte pragmaer"
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr "Advar om kode som aldrig bliver udført"
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "Advar når en funktion ikke benyttes"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "Advar når en etiket ikke benyttes"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "Advar når en funktionsparameter ikke benyttes"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "Advar når værdien af et udtryk ikke benyttes"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "Advar når en variabel ikke benyttes"
-#: options.c:1342
+#: options.c:1345
#, fuzzy
msgid "Do not warn about using variadic macros when -pedantic"
msgstr "Advar ikke om brug af 'long long' når -pedantic benyttes"
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
#, fuzzy
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr " -aux-info <fil> Udskriv erklæringsoplysninger til <fil>\n"
-#: options.c:1363
+#: options.c:1366
#, fuzzy
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr " -d[bogstaver] Aktivér dump fra specifikke faser i oversætteren\n"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
#, fuzzy
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr " -dumpbase <fil> Basisnavn til brug for dump fra specifikke faser\n"
-#: options.c:1372
+#: options.c:1375
#, fuzzy
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)"
-#: options.c:1375
+#: options.c:1378
#, fuzzy
msgid "Generate position-independent code if possible (large mode)"
msgstr "Generér placeringsuafhængig kode, om muligt"
-#: options.c:1378
+#: options.c:1381
#, fuzzy
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr "Generér placeringsuafhængig kode, om muligt"
-#: options.c:1384
+#: options.c:1387
#, fuzzy
msgid "Enforce class member access control semantics"
msgstr "Adlyd ikke tilgangskontrolsemantikker"
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr "Justér begyndelsen af funktioner"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr "Justér etiketter som kun nås ved spring"
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr "Justér alle etiketter"
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr "Justér begyndelsen af løkker"
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr "Skift hvornår skabelonsinstanser udsendes"
-#: options.c:1417
+#: options.c:1420
#, fuzzy
msgid "Specify that arguments may alias each other and globals"
msgstr "Angiv at parametre kan være aliaser for hinanden og for globale variable"
-#: options.c:1420
+#: options.c:1423
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"
-#: options.c:1423
+#: options.c:1426
#, fuzzy
msgid "Assume arguments alias neither each other nor globals"
msgstr "Antag at parametre ikke er aliaser for hinanden eller for globale variable"
-#: options.c:1426
+#: options.c:1429
#, fuzzy
msgid "Recognize the \"asm\" keyword"
msgstr "Genkend ikke det reserverede ord 'asm'"
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
#, fuzzy
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr "Generér afvindingstabeller eksakt for hver instruktionsgrænse"
-#: options.c:1441
+#: options.c:1444
#, fuzzy
msgid "--bootclasspath=<path>\tReplace system path"
msgstr "Erstat systemsti"
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr "Generér kode til at kontrollere grænserne før tabeller indekseres"
# RETMIG: rigtig?
-#: options.c:1447
+#: options.c:1450
#, fuzzy
msgid "Replace add, compare, branch with branch on count register"
msgstr "Erstat tilføj,sammenlign,forgrening med forgrening på tælleregister"
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr "Benyt profileringsoplysninger til forgreningssandsynligheder"
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "Genkend ikke nogen indbyggede funktioner"
-#: options.c:1468
+#: options.c:1471
#, fuzzy
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr " -fcall-saved-<register> Markér <register> som værende bevaret over funktioner\n"
-#: options.c:1471
+#: options.c:1474
#, fuzzy
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr " -fcall-used-<register> Markér <register> som værende benyttet af funktionskald\n"
-#: options.c:1474
+#: options.c:1477
#, fuzzy
msgid "Save registers around function calls"
msgstr "Aktivér gemning af registrer omkring funktionskald"
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr "Kontrollér returværdien for new"
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "Generér kode til en DLL"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr "Anbring ikke uklargjorte globale variabler i den fælles sektion"
-#: options.c:1492
+#: options.c:1495
#, fuzzy
msgid "Allow the arguments of the '?' operator to have different types"
msgstr "operander til ?: har forskellige typer"
-#: options.c:1495
+#: options.c:1498
#, fuzzy
msgid "Reduce the size of object files"
msgstr "Reducér størrelsen af objektfiler"
-#: options.c:1498
+#: options.c:1501
#, fuzzy
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Gør strengkonstanter til 'char[]' i stedet for 'const char[]'"
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
#, fuzzy
msgid "Perform a register copy-propagation optimization pass"
msgstr "Foretag registerkopipropageringsoptimering"
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr "Udfør krydsspringsoptimering"
# RETMIG: hvad er CSE?
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr "Ved kørsel af CSE følg spring til deres mål"
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr "Ved kørsel af CSE følg betingede spring"
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
#, fuzzy
msgid "Place data items into their own section"
msgstr "placér dataelementer i deres egen sektion"
-#: options.c:1519
+#: options.c:1525
#, fuzzy
msgid "Inline member functions by default"
msgstr "Integrér ikke medlemsfunktioner som standard"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr "Vent med fjernelse af funktionsparametre fra stakken til senere"
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr "Forsøg at udfylde ventepladser med forgreningsinstruktioner"
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr "Fjern ubrugelige nul-henvisningstjek"
-#: options.c:1531
+#: options.c:1537
#, fuzzy
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr " -fdiagnostics-show-location=[once | every-line] Indikerer hvor ofte kildeplaceringsoplysninger skal udsendes som præfiks til begyndelsen af meddelelserne ved linjeombrydning\n"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
#, fuzzy
msgid "Permit '$' as an identifier character"
msgstr "formatering er en bredtegnsstreng"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
msgid "Display the code tree after parsing."
msgstr ""
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr "Undtryk udskrift af instruktionstal og linjenummernoter i fejlfindingsdump"
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr "Udfør DWARF2-eliminering af dubletter"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
#, fuzzy
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr "Vælg inddatakodning (standardværdi kommer fra regionalindstillinger)"
-#: options.c:1582
+#: options.c:1588
#, fuzzy
msgid "Generate code to check exception specifications"
msgstr "Generér ikke kode til at kontrollere undtagelsesspecifikationer"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Aktivér undtagelseshåndtering"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr "Udfør et antal mindre, dyre optimeringer"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
#, fuzzy
msgid "Assume no NaNs or infinities are generated"
msgstr "Antag at ingen NaN eller +-Inf bliver genereret"
-#: options.c:1612
+#: options.c:1618
#, fuzzy
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr " -ffixed-<register> Markér <register> som værende utilgængeligt for oversætteren\n"
-#: options.c:1615
+#: options.c:1621
#, fuzzy
msgid "Assume that the source file is fixed form"
msgstr "Antag at henvisninger ikke kan være aliaser"
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
#, fuzzy
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr "Kontrollér tildelingsordenen for heltalsregistrene"
-#: options.c:1627
+#: options.c:1633
#, fuzzy
msgid "Scope of for-init-statement variables is local to the loop"
msgstr "Udvid virkefeltet for variabler i for-klargøringssætninger"
-#: options.c:1630
+#: options.c:1636
#, fuzzy
msgid "Copy memory address constants into registers before use"
msgstr "Kopiér hukommelsesadressekonstanter ind i registre før brug"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr "Kontrollér altid for ikke-GCJ-genererede klassearkiver"
-#: options.c:1636
+#: options.c:1642
#, fuzzy
msgid "Copy memory operands into registers before use"
msgstr "Kopiér hukommelsesoperander ind i registre før brug"
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
#, fuzzy
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr "Antag at standardbibliotekerne og main måske ikke eksisterer"
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr "Tillad funktionsadresser at blive opbevaret i registre"
-#: options.c:1648
+#: options.c:1654
#, fuzzy
msgid "Place each function into its own section"
msgstr "placér hver funktion i dens egen sektion"
-#: options.c:1651
+#: options.c:1657
#, fuzzy
msgid "Perform global common subexpression elimination"
msgstr "Udfør global eliminering af fælles underudtryk"
-#: options.c:1654
+#: options.c:1660
#, fuzzy
msgid "Perform global common subexpression elimination after register allocation"
msgstr "Udfør global eliminering af fælles underudtryk"
-#: options.c:1657
+#: options.c:1663
#, fuzzy
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr "Udfør forbedret indlæsningsbevægelse under eliminering af fælles underudtryk"
-#: options.c:1660
+#: options.c:1666
#, fuzzy
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "Udfør forbedret indlæsningsbevægelse under eliminering af fælles underudtryk"
-#: options.c:1663
+#: options.c:1669
#, fuzzy
msgid "Perform store motion after global common subexpression elimination"
msgstr "Udfør lagringsbevægelse efter eliminering af fælles underudtryk"
-#: options.c:1666
+#: options.c:1672
#, fuzzy
msgid "Recognize GNU-defined keywords"
msgstr "Genkend ikke GNU-definerede reserverede ord"
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr "Generér kode til GNU-kørselmiljø"
-#: options.c:1672
+#: options.c:1678
#, fuzzy
msgid "Enable guessing of branch probabilities"
msgstr "Aktivér gæt af forgreningssandsynligheder"
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr "Antag normalt C-kørselsmiljø"
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr "Aktivér understøttelse af enorme objekter"
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "Behandl #ident-direktiver"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr "Udfør konvertering af betingede spring til forgreningsløse ækvivalenter"
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "Udfør konvertering af betingede spring til betinget udførsel"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr "Eksportér funktioner også selvom de kan integreres"
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr "Benyt afsætstabeller til virtuelle metodekald"
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr "Generér ikke .size-direktiver"
-#: options.c:1720
+#: options.c:1726
#, fuzzy
msgid "Pay attention to the \"inline\" keyword"
msgstr "Læg mærke til 'inline'-nøgleordet"
-#: options.c:1729
+#: options.c:1735
#, fuzzy
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr " -finline-limit=<str> Begræns størrelsen af inlie funktion til <str>\n"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
#, fuzzy
msgid "Instrument function entry and exit with profiling calls"
msgstr "Instrumentér funktionsindgange/-afslutninger med profileringskald"
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr "Antag at indfødte funktioner er implementeret vha. JNI"
-#: options.c:1744
+#: options.c:1750
#, fuzzy
msgid "Generate code for functions even if they are fully inlined"
msgstr "Generér kode for funktioner selv hvis de indlejres helt"
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr "Konstruér statiske, konstante variabler selv hvis de ikke bruges"
-#: options.c:1753
+#: options.c:1759
#, fuzzy
msgid "Give external symbols a leading underscore"
msgstr "Eksterne symboler har indledende understreg"
-#: options.c:1756
+#: options.c:1762
#, fuzzy
msgid "Perform loop optimizations"
msgstr "Udfør løkkeoptimeringerne"
-#: options.c:1759
+#: options.c:1765
#, fuzzy
msgid "Perform loop optimizations using the new loop optimizer"
msgstr "Udfør løkkeoptimeringerne"
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr "Sæt errno efter indbyggede matematikfunktioner"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
#, fuzzy
msgid "Report on permanent memory allocation"
msgstr "Rapportér om permanente hukommelsesallokering ved afslutningen af kørslen"
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr "Forsøg at forene identiske konstanter og konstante variabler"
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr "Forsøg at forene identiske konstanter over forskellige oversættelsesenheder"
-#: options.c:1780
+#: options.c:1786
#, fuzzy
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr " -fmessage-length=<antal> Begræns længden af diagnosticeringmeddelelser til længden <antal> tegn/linje. 0 undertrykker linjeombrydning\n"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
#, fuzzy
msgid "Move loop invariant computations out of loops"
msgstr "Tving alle løkkeinvariansberegninger ud af løkker"
-#: options.c:1792
+#: options.c:1798
#, fuzzy
msgid "Don't warn about uses of Microsoft extensions"
msgstr "Udsend ikke pedantiske advarsler om brug af Microsoft-udvidelser"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-#, fuzzy
-msgid "Use graph-coloring register allocation"
-msgstr "Allokér registre vha. graffarvning"
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
#, fuzzy
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
@@ -22555,340 +22676,345 @@ msgstr "Aktivér sammenkæderoptimeringer"
#: options.c:2161
#, fuzzy
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr " -fsched-verbose=<tal> Angiv hvor meget planlæggeren skal fortælle\n"
+
+#: options.c:2164
+#, fuzzy
msgid "Append underscores to externally visible names"
msgstr "Tilføj aldrig en anden understreg til eksterne variable"
-#: options.c:2164
+#: options.c:2167
#, fuzzy
msgid "Compile whole compilation unit at a time"
msgstr "Anbring hele oversættelsesenheden i en fil"
-#: options.c:2167
+#: options.c:2170
msgid "Perform loop unrolling for all loops"
msgstr "Udfør løkkeudrulning for alle løkker"
-#: options.c:2170
+#: options.c:2173
msgid "Perform loop unrolling when iteration count is known"
msgstr "Udfør løkkeudrulning når iterationsantallet er kendt"
-#: options.c:2173
+#: options.c:2176
#, fuzzy
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr "Tillad matematikoptimeringer der kan overtræde IEEE- eller ANSI-standarderne"
-#: options.c:2176
+#: options.c:2179
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
-#: options.c:2179
+#: options.c:2182
#, fuzzy
msgid "Make \"char\" unsigned by default"
msgstr "Lad 'char' være uden fortegn som standard"
-#: options.c:2182
+#: options.c:2185
#, fuzzy
msgid "Perform loop unswitching"
msgstr "Udfør løkkeoptimeringerne"
-#: options.c:2185
+#: options.c:2188
msgid "Just generate unwind tables for exception handling"
msgstr "Generér blot afvindingstabeller for undtagelseshåndtering"
-#: options.c:2188
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Generér kode til en C300"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr "Benyt __cxa_atexit til at registrere destruktionsfunktioner"
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
#, fuzzy
msgid "Perform variable tracking"
msgstr "Udfør halekaldsoptimering"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr "Tilføj ekstra kommentarer til menneskeligt læsbar maskinkodeuddata"
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
#, fuzzy
msgid "Use expression value profiles in optimizations"
msgstr "Aktivér sammenkæderoptimeringer"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr "Kassér ubrugte virtuelle funktioner"
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr "Implementér virtuelle tabeller vha. thunk-kode"
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr "Udsend almindelige symboler som svage symboler"
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr "Udsend krydsreferenceoplysninger"
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr "Anbring nul-klargjorte data i bss-sektionen"
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
#, fuzzy
msgid "Generate debug information in default format"
msgstr "Generér fejlfindingsinfo i standardformat"
-#: options.c:2248
+#: options.c:2251
#, fuzzy
msgid "Generate debug information in COFF format"
msgstr "Generér fejlfindingsinfo i standardformat"
-#: options.c:2251
+#: options.c:2254
#, fuzzy
msgid "Generate debug information in DWARF v2 format"
msgstr "Generér fejlfindingsinfo i standardformat"
-#: options.c:2254
+#: options.c:2257
#, fuzzy
msgid "Dump declarations to a .decl file"
msgstr "Udskriv erklæringer i en .decl-fil"
-#: options.c:2257
+#: options.c:2260
#, fuzzy
msgid "Generate debug information in default extended format"
msgstr "Generér fejlfindingsinfo i udvidet standardformat"
-#: options.c:2260
+#: options.c:2263
#, fuzzy
msgid "Generate debug information in STABS format"
msgstr "Generér fejlfindingsinfo i standardformat"
-#: options.c:2263
+#: options.c:2266
#, fuzzy
msgid "Generate debug information in extended STABS format"
msgstr "Generér fejlfindingsinfo i udvidet standardformat"
-#: options.c:2266
+#: options.c:2269
#, fuzzy
msgid "Generate debug information in VMS format"
msgstr "Generér fejlfindingsinfo i standardformat"
-#: options.c:2269
+#: options.c:2272
#, fuzzy
msgid "Generate debug information in XCOFF format"
msgstr "Generér fejlfindingsinfo i standardformat"
-#: options.c:2272
+#: options.c:2275
#, fuzzy
msgid "Generate debug information in extended XCOFF format"
msgstr "Generér fejlfindingsinfo i udvidet standardformat"
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
#, fuzzy
msgid "-o <file>\tPlace output into <file>"
msgstr " -o <fil> Anbring uddata i <fil>\n"
-#: options.c:2323
+#: options.c:2326
#, fuzzy
msgid "Enable function profiling"
msgstr "MIPS16-funktionsprofilering"
-#: options.c:2326
+#: options.c:2329
#, fuzzy
msgid "Issue warnings needed for strict compliance to the standard"
msgstr " -pedantic Udsend advarsler som er nødvendige for streng overholdelse af ISO C\n"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
#, fuzzy
msgid "Generate C header of platform-specific features"
msgstr "Generér C-inkluderingsfil med platformspecifikke faciliteter"
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
#, fuzzy
msgid "Do not display functions compiled or elapsed time"
msgstr " -quiet Vis ikke funktioner der oversættes eller forløbet tid\n"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
#, fuzzy
msgid "Remap file names when including files"
msgstr "tomt filnavn i #%s"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
#, fuzzy
msgid "Enable traditional preprocessing"
msgstr "Aktivér stakprøvning"
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
#, fuzzy
msgid "Enable verbose output"
msgstr "Aktivér fejlanalyseringsuddata"
-#: options.c:2407
+#: options.c:2410
#, fuzzy
msgid "Suppress warnings"
msgstr "%s: advarsel: "
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "kan ikke bruge både -EB og -EL"
@@ -22906,35 +23032,35 @@ msgstr "-mhard-float understøttes ikke"
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float og -msoft-float er indbyrdes uforenelige"
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr "-current_version er kun tilladt med -dynamiclib"
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr "-install_name er kun tilladt med -dynamiclib"
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr "-bundle er ikke tilladt med -dynamiclib"
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "-bundle_loader er ikke tilladt med -dynamiclib"
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr "-client_name er ikke tilladt med -dynamiclib"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr "-force_flat_namespace er ikke tilladt med -dynamiclib"
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr "-keep_private_externs er ikke tilladt med -dynamiclib"
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-private_bundle er ikke tilladt med -dynamiclib"
@@ -22962,29 +23088,21 @@ msgstr "-femit-class-file skal bruges sammen med -fsyntax-only"
msgid "shared and mdll are not compatible"
msgstr "shared og mdll er indbyrdes uforenelige"
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "stakgrænseudtryk understøttes ikke"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr "-m32 og -m64 er indbyrdes uforenelige"
-#: 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"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige"
-
#: 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."
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "stakgrænseudtryk understøttes ikke"
-
#: 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"
@@ -23012,12 +23130,16 @@ msgstr "-mno-cygwin og -mnowin32 er indbyrdes uforenelige"
msgid "the m210 does not have little endian support"
msgstr "m210 har ikke understøttelse for lilleendet"
-#: gcc.c:769
+#: gcc.c:763
#, fuzzy
msgid "GCC does not support -C or -CC without -E"
msgstr "GNU C understøtter ikke -CC uden -E"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "-E påkrævet når inddata kommer fra standardind"
@@ -23035,10 +23157,14 @@ msgstr ""
msgid "does not support multilib"
msgstr "%s understøtter ikke %s"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr " konfliktende kodegenereringstilvalg er benyttet"
+#: 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"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr "-c eller -S kræves til Ada"
@@ -23321,6 +23447,9 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "initialization"
#~ msgstr "klargøring"
+#~ msgid "initialization designators may not nest"
+#~ msgstr "klargøringstegn må ikke indlejres"
+
#~ msgid "asm template is not a string constant"
#~ msgstr "asm-sætning er ikke en strengkonstant"
@@ -23690,9 +23819,6 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "#pragma %s %s is already registered"
#~ msgstr "#pragma %s %s er allerede registreret"
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "#pragma %s er allerede registreret"
-
#~ msgid "#pragma once in main file"
#~ msgstr "'#pragma once' i hovedfil"
@@ -23712,9 +23838,6 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "current file is older than %s"
#~ msgstr "aktuel fil er ældre end %s"
-#~ msgid "_Pragma takes a parenthesized string literal"
-#~ msgstr "_Pragma tager en strengkonstant med paranteser omkring"
-
#~ msgid "#else without #if"
#~ msgstr "#else uden #if"
@@ -23754,9 +23877,6 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "could not determine date and time"
#~ msgstr "kunne ikke bestemme dato og tid"
-#~ msgid "invalid string literal, ignoring final '\\'"
-#~ msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'"
-
#~ 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"
@@ -23832,6 +23952,12 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "syntax error in macro parameter list"
#~ msgstr "\"%s\" må ikke optræde i makroparameterliste"
+#~ 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"
+
+#~ 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"
+
#~ msgid "function using short complex types cannot be inline"
#~ msgstr "funktioner der benytter short complex-typer, kan ikke indbygges"
@@ -23928,6 +24054,9 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "%s: internal abort\n"
#~ msgstr "%s: intern afbrydelse\n"
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "Kunne ikke finde en farvning.\n"
+
#~ msgid "jump to `%s' invalidly jumps into binding contour"
#~ msgstr "spring til '%s' rammer på ugyldig vis ind i bindingskontur"
@@ -23954,6 +24083,12 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "invalid option `%s'"
#~ msgstr "ugyldigt tilvalg '%s'"
+#~ msgid "unknown set constructor type"
+#~ msgstr "ukendt mængdekonstruktionstype"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
+
#~ msgid "-msystem-v and -p are incompatible"
#~ msgstr "-msystem-v og -p er indbyrdes uforenelige"
@@ -23987,6 +24122,12 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "Use library calls to perform FP operations"
#~ msgstr "Benyt bibliotekskald til at udføre kommatalsoperationer"
+#~ msgid "unexpected address expression"
+#~ msgstr "uventet adresseudtryk"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "uventet NOTE som addr_const:"
+
#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
#~ msgstr "ugyldig modes_tieable_p for register %s, mode1 %s, mode2 %s"
@@ -24152,6 +24293,9 @@ msgstr "-c eller -S kræves til Ada"
#~ 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)"
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'c'-modifikation:"
+
#~ msgid "frv_registers_update"
#~ msgstr "frv_registers_update"
@@ -24269,6 +24413,9 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "Do not enable linker relaxation"
#~ msgstr "Aktivér ikke tolerant sammenkæder"
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Udsend kode for Itanium (TM) processor B-skridt"
+
#~ msgid "-malign-loops=%d is not between 1 and %d"
#~ msgstr "-malign-loops=%d er ikke mellem 1 og %d"
@@ -24327,6 +24474,12 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "Don't use embedded PIC"
#~ msgstr "Benyt ikke indlejret PIC"
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Overbring altid kommatalsparametre i hukommelse"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Overbring ikke altid kommatalsparametre i hukommelse"
+
#~ msgid "invalid UNSPEC as operand (1)"
#~ msgstr "ugyldig UNSPEC som operand (1)"
@@ -24382,6 +24535,9 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "duplicate member `%D'"
#~ msgstr "medlemmet '%D' optræder mere end én gang"
+#~ 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"
+
#~ 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"
@@ -24415,6 +24571,13 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "return value type specifier for constructor ignored"
#~ msgstr "angivelse af typen af returværdien til konstruktionsfunktionen ignoreret"
+#, fuzzy
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "ugyldig typemodifikation for ikke-medlemsfunktionstype"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "funktionen '%D' kan ikke erklæres friend"
+
#~ 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"
@@ -24436,6 +24599,12 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "anachronistic use of array size in vector delete"
#~ msgstr "forældet brug af tabelstørrelse i tabelformen af delete"
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "startværdi angivet for ikke-medlemsfunktion '%D'"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "ugyldig startværdi til virtuel medlemsfunktion '%D'"
+
#~ msgid "typename type `%#T' declared `friend'"
#~ msgstr "typename-type '%#T' erklæret 'friend'"
@@ -24482,12 +24651,19 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "`%s' is not a template"
#~ msgstr "'%T' er ikke en skabelon"
+#, fuzzy
+#~ msgid "expected type-name"
+#~ msgstr "uventet operand"
+
#~ msgid "explicit specialization not preceded by `template <>'"
#~ msgstr "eksplicit specialisering følger ikke efter 'template <>'"
#~ msgid "partial specialization `%D' of function template"
#~ msgstr "partiel specialisering '%D' af funktionsskabelon"
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "for mange skabelonsparameterlister i erklæringen af '%T'"
+
#~ 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"
@@ -24515,6 +24691,9 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "invalid use of '%E' as a non-type template-argument"
#~ msgstr "ugyldig standardparameter i skabelon"
+#~ msgid "non-template used as template"
+#~ msgstr "ikke-skabelon benyttet som skabelon"
+
#~ msgid "use of `%s' in template type unification"
#~ msgstr "brug af '%s' i skabelonstypeforening"
@@ -24536,6 +24715,12 @@ msgstr "-c eller -S kræves til Ada"
#~ 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"
+#~ msgid "passing `%T' for %s %P of `%D'"
+#~ msgstr "overbringelse af '%T' for ikke-henvisnings%s %P af '%D'"
+
+#~ msgid "%s to `%T' from `%T'"
+#~ msgstr "%s til '%T' fra '%T'"
+
#~ msgid "initializer list for object of class with virtual base classes"
#~ msgstr "klargøringsliste for objekt af en klasse med virtuelle stamklasser"
@@ -25457,6 +25642,10 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "Hide MIL-STD 1753 intrinsics"
#~ msgstr "Skjul MIL-STD 1753-indbyggede"
+#, fuzzy
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Allokér registre vha. graffarvning"
+
#~ msgid "Take at least one trip through each iterative DO loop"
#~ msgstr "Tag i det mindste et skridt gennem hver DO-løkke"
@@ -26594,9 +26783,6 @@ msgstr "-c eller -S kræves til Ada"
#~ 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')"
-#~ msgid "`%D' is a namespace"
-#~ msgstr "'%D' er et navnerum"
-
#~ 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'"
@@ -26744,9 +26930,6 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "semicolon missing after %s declaration"
#~ msgstr "semikolon mangler efter %s-erklæring"
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "semikolon mangler efter erklæring af '%T'"
-
#~ msgid "`::%D' undeclared (first use here)"
#~ msgstr "'::%D' er ikke erklæret (først benyttet her)"
@@ -27879,9 +28062,6 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid " will be re-ordered to precede member initializations"
#~ msgstr " vil blive omordnet for at komme før medlemsklargøringer"
-#~ msgid "ignoring `%V' qualifiers on `%T'"
-#~ msgstr "ignorerer modifikationerne '%V' til '%T'"
-
#~ msgid "ISO C++ forbids applying `sizeof' to a function type"
#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' på en funktionstype"
@@ -27921,9 +28101,6 @@ msgstr "-c eller -S kræves til Ada"
#~ 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"
-#~ msgid "invalid use of undefined type `%#T'"
-#~ msgstr "ugyldig brug af en ikke-defineret type '%#T'"
-
#~ msgid "invalid use of `%T'"
#~ msgstr "ugyldig brug af '%T'"
@@ -28263,9 +28440,6 @@ msgstr "-c eller -S kræves til Ada"
#~ msgid "macro `%s' used with only %d args"
#~ msgstr "makroen '%s' kaldt med kun %d parametre"
-#~ 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"
diff --git a/gcc/po/de.po b/gcc/po/de.po
index 4b2269289d7..b5688a68551 100644
--- a/gcc/po/de.po
+++ b/gcc/po/de.po
@@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 4.0-b20041128\n"
+"Project-Id-Version: gcc 4.0-b20050226\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
-"PO-Revision-Date: 2004-12-20 15:53+0100\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
+"PO-Revision-Date: 2005-04-19 10:52+0200\n"
"Last-Translator: Roland Stigge <stigge@antcom.de>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
@@ -40,539 +40,548 @@ msgstr "Attribut %qs kann nur auf Funktionstypen angewandt werden"
msgid "offset outside bounds of constant string"
msgstr "Adressabstand ist außerhalb der Grenzen der konstanten Zeichenkette"
-#: builtins.c:923
+#: builtins.c:928
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "zweites Argument für %<__builtin_prefetch%> muss eine Konstante sein"
-#: builtins.c:930
+#: builtins.c:935
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "ungültiges zweites Argument für %<__builtin_prefetch%>; es wird Null verwendet"
-#: builtins.c:938
+#: builtins.c:943
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "drittes Argument für %<__builtin_prefetch%> muss eine Konstante sein"
-#: builtins.c:945
+#: builtins.c:950
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "ungültiges drittes Argument für %<__builtin_prefetch%>; es wird Null verwendet"
-#: builtins.c:3727
+#: builtins.c:3806
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "Argument von %<__builtin_args_info%> muss konstant sein"
-#: builtins.c:3733
+#: builtins.c:3812
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "Argument von %<__builtin_args_info%> außerhalb des Wertebereichs"
-#: builtins.c:3739
+#: builtins.c:3818
msgid "missing argument in %<__builtin_args_info%>"
msgstr "fehlendes Argument in %<__builtin_args_info%>"
-#: builtins.c:3755 builtins.c:8661
-msgid "%<va_start%> used in function with fixed args"
-msgstr "%<va_start%> in Funktion mit fester Parameterzahl verwendet"
-
-#: builtins.c:3774 builtins.c:8677
-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:3779 builtins.c:8683
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "%<__builtin_next_arg%> ohne Argument gerufen"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
msgid "too few arguments to function %<va_start%>"
msgstr "zu wenige Argumente für %<va_start%>"
-#: builtins.c:3869
-msgid "too many arguments to function %<va_start%>"
-msgstr "zu viele Argumente für %<va_start%>"
-
-#: builtins.c:4017
+#: builtins.c:4077
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:4031
+#: builtins.c:4091
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "%qT auf %qT erweitert beim Durchlaufen von %<...%>"
-#: builtins.c:4036
+#: builtins.c:4096
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(Sie sollten also %qT statt %qT an %<va_arg%> übergeben)"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr "Wenn dieser Code erreicht wird, wird das Programm abgebrochen."
-#: builtins.c:4160
+#: builtins.c:4220
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "ungültiges Argument für %<__builtin_frame_address%>"
-#: builtins.c:4162
+#: builtins.c:4222
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "ungültiges Argument für %<__builtin_return_address%>"
-#: builtins.c:4176
+#: builtins.c:4235
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "nicht unterstütztes Argument für %<__builtin_frame_address%>"
-#: builtins.c:4178
+#: builtins.c:4237
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "nicht unterstütztes Argument für %<__builtin_return_address%>"
-#: builtins.c:4281
+#: builtins.c:4340
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "zweites Argument für %<__builtin_expect%> muss eine Konstante sein"
-#: builtins.c:5488
+#: builtins.c:5590
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "zweites Argument für %<__builtin_longjmp%> muss 1 sein"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr "Zielformat unterstützt nicht »unendlich«"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, c-format
msgid "too few arguments to function %qs"
msgstr "zu wenig Argumente für Funktion %qs"
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, c-format
msgid "too many arguments to function %qs"
msgstr "zu viele Argumente für Funktion %qs"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, c-format
msgid "non-floating-point argument to function %qs"
msgstr "Nicht-Gleitkomma-Argument für Funktion %qs"
-#: c-common.c:831
+#: builtins.c:8911
+msgid "%<va_start%> used in function with fixed args"
+msgstr "%<va_start%> in Funktion mit fester Parameterzahl verwendet"
+
+#. 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:8918
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "%<__builtin_next_arg%> ohne Argument gerufen"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr "%<va_start%> mit zu vielen Argumenten verwendet"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "zweiter Parameter von %<va_start%> ist nicht letztgenanntes Argument"
+
+#: c-common.c:826
msgid "%qD is not defined outside of function scope"
msgstr "%qD ist außerhalb des Funktionsgültigkeitsbereiches nicht definiert"
-#: c-common.c:852
+#: c-common.c:847
#, c-format
msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
msgstr "Zeichenkettenlänge %qd ist größer als die Länge %qd, die von ISO-C%d-Compilern unterstützt werden muss"
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "Ãœberlauf in Konstanten-Ausdruck"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "Ganzzahlüberlauf in Ausdruck"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "Gleitkommaüberlauf in Ausdruck"
-#: c-common.c:933
+#: c-common.c:923
msgid "vector overflow in expression"
msgstr "Vektorüberlauf in Ausdruck"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "negative Ganzzahl implizit in vorzeichenlosen Typen konvertiert"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "Ãœberlauf in impliziter Konstantenkonvertierung"
-#: c-common.c:1151
+#: c-common.c:1141
#, c-format
msgid "operation on %qs may be undefined"
msgstr "Operation auf %qs könnte undefiniert sein"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "case-Marke reduziert nicht auf Ganzzahlkonstante"
-#: c-common.c:1480
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
msgstr "case-Marke ist kleiner als Minimalwert des Typs"
-#: c-common.c:1488
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
msgstr "case-Marke überschreitet Maximalwert des Typs"
-#: c-common.c:1496
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
msgstr "unterer Wert in case-Marken-Bereich ist kleiner als der Minimalwert des Typs"
-#: c-common.c:1505
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
msgstr "oberer Wert in case-Marken-Bereich überschreitet den Maximalwert des Typs"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "ungültiger Wahrheitswert-Ausdruck"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "ungültige Operanden für binäres %s"
-#: c-common.c:2112
+#: c-common.c:2116
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:2114
+#: c-common.c:2118
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:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "Vergleich eines vorzeichenlosen Ausdrucks >= 0 ist stets »wahr«"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "Vergleich eines vorzeichenlosen Ausdrucks < 0 ist stets »unwahr«"
-#: c-common.c:2235
+#: c-common.c:2239
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "Zeiger auf Typen %<void *%> in Arithmetik verwendet"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "Zeiger auf Funktion in Arithmetik verwendet"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "Zeiger auf Elementfunktion in Arithmetik verwendet"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr "die Adresse von %qD wird immer zu %<wahr%> auswerten"
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
-msgstr "um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern vorgeschlagen"
+msgstr "um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern empfohlen"
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
msgid "invalid use of %<restrict%>"
msgstr "ungültige Verwendung von %<restrict%>"
-#: c-common.c:2756
+#: c-common.c:2791
msgid "invalid application of %<sizeof%> to a function type"
msgstr "ungültige Anwendung von %<sizeof%> auf einen Funktionstypen"
-#: c-common.c:2766
+#: c-common.c:2801
#, c-format
msgid "invalid application of %qs to a void type"
msgstr "ungültige Anwendung von %qs auf einen void-Typen"
-#: c-common.c:2772
+#: c-common.c:2807
msgid "invalid application of %qs to incomplete type %qT "
msgstr "ungültige Anwendung von %qs auf unvollständigen Typen %qT"
-#: c-common.c:2813
+#: c-common.c:2848
msgid "%<__alignof%> applied to a bit-field"
msgstr "%<__alignof%> auf Bitfeld angewandt"
-#: c-common.c:3258
+#: c-common.c:3315
#, c-format
msgid "cannot disable built-in function %qs"
msgstr "eingebaute Funktion %qs kann nicht abgeschaltet werden"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "Zeiger sind nicht als case-Werte zugelassen"
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr "Wertebereichsausdrücke in switch-Anweisungen sind nicht standardkonform"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "leerer Wertebereich angegeben"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "doppelte (oder sich überschneidende) case-Werte"
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr "%Jdies ist der erste Eintrag, der diesen Wert überschneidet"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "doppelter case-Wert"
-#: c-common.c:3542
+#: c-common.c:3599
msgid "%Jpreviously used here"
msgstr "%Jbereits hier verwendet"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "mehrere Standardmarken in einem »switch«"
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr "%Jdies ist die erste Standardmarke"
-#: c-common.c:3596
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
msgstr "%Jcase-Wert %qs nicht in Aufzählungstyp"
-#: c-common.c:3599
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr "%Jcase-Wert %qs nicht in Aufzählungstyp %qT"
-#: c-common.c:3666
+#: c-common.c:3723
msgid "%Hswitch missing default case"
msgstr "%Hdie Standardfallbehandlung in switch fehlt"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
msgid "%Henumeration value %qE not handled in switch"
msgstr "%HAufzählungswert %qE wird nicht von switch behandelt"
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr "das Ermitteln der Adresse einer Marke ist nicht standardkonform"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, c-format
msgid "%qs attribute ignored"
msgstr "Attribut %qs wird ignoriert"
-#: c-common.c:4243
+#: c-common.c:4300
#, c-format
msgid "unknown machine mode %qs"
msgstr "unbekannter Maschinenzustand %qs"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr "Angabe von Vektortypen mit __attribute__ ((Modus)) ist veraltet"
-#: c-common.c:4265
+#: c-common.c:4322
msgid "use __attribute__ ((vector_size)) instead"
msgstr "stattdessen __attribute__ ((Vektorgröße)) verwenden"
-#: c-common.c:4274
+#: c-common.c:4331
#, c-format
msgid "unable to emulate %qs"
msgstr "%qs kann nicht emuliert werden"
-#: c-common.c:4284
+#: c-common.c:4341
#, c-format
msgid "invalid pointer mode %qs"
msgstr "ungültiger Zeigermodus %qs"
-#: c-common.c:4299
+#: c-common.c:4356
#, c-format
msgid "no data type for mode %qs"
msgstr "kein Datentyp für Zustand %qs"
-#: c-common.c:4309
+#: c-common.c:4366
#, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "Modus %qs kann nicht für Aufzählungstypen verwendet werden"
-#: c-common.c:4322
+#: c-common.c:4390
#, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "Modus %qs auf unpassenden Typen angewendet"
-#: c-common.c:4355
+#: c-common.c:4421
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "%JAbschnitts-Attribut kann nicht für lokale Variablen angegeben werden"
-#: c-common.c:4366
+#: c-common.c:4432
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "%JAbschnitt von %qD in Konflikt mit vorheriger Deklaration"
-#: c-common.c:4375
+#: c-common.c:4441
msgid "%Jsection attribute not allowed for %qD"
msgstr "%JAbschnitts-Attribut nicht erlaubt für %qD"
-#: c-common.c:4381
+#: c-common.c:4447
msgid "%Jsection attributes are not supported for this target"
msgstr "%JAbschnitts-Attribute werden für dieses Ziel nicht unterstützt"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "verlangte Ausrichtung ist keine Konstante"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "verlangte Ausrichtung ist keine Zweierpotenz"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "verlangte Ausrichtung ist zu groß"
-#: c-common.c:4455
+#: c-common.c:4521
msgid "%Jalignment may not be specified for %qD"
msgstr "%Jfür %qD darf keine Ausrichtung angegeben werden"
-#: c-common.c:4493
+#: c-common.c:4559
msgid "%J%qD defined both normally and as an alias"
msgstr "%J%qD sowohl normal als auch als Alias definiert"
-#: c-common.c:4509
+#: c-common.c:4575
msgid "alias argument not a string"
msgstr "Alias-Argument ist keine Zeichenkette"
-#: c-common.c:4551
+#: c-common.c:4617
#, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "Attribut %qs ignoriert für Nicht-Klassen-Typen"
-#: c-common.c:4564
+#: c-common.c:4630
msgid "visibility argument not a string"
msgstr "Sichtbarkeitsargument ist keine Zeichenkette"
-#: c-common.c:4585
+#: c-common.c:4642
+#, c-format
+msgid "%qE attribute ignored on types"
+msgstr "Attribut %qE für Typen ignoriert"
+
+#: c-common.c:4657
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr "Sichtbarkeitsargument muss »default«, »hidden«, »protected« oder »internal« sein"
-#: c-common.c:4654
+#: c-common.c:4726
msgid "tls_model argument not a string"
msgstr "Argument für tls_model ist keine Zeichenkette"
-#: c-common.c:4663
+#: c-common.c:4735
msgid "tls_model argument 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:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
msgid "%J%qE attribute applies only to functions"
msgstr "%JAttribut %qE kann nur auf Funktionen angewandt werden"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "%JAttribut %qE kann nicht nach der Definition gesetzt werden"
-#: c-common.c:4812
+#: c-common.c:4884
#, c-format
msgid "%qs attribute ignored for %qs"
msgstr "Attribut %qs ignoriert für %qs"
-#: c-common.c:4873
+#: c-common.c:4945
#, c-format
msgid "invalid vector type for attribute %qs"
msgstr "ungültiger Vektortyp für Attribut %qs"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr "Komponentenanzahl des Vektors ist keine Zweierpotenz"
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "Nicht-Null-Attribut ohne Argumente für einen Nicht-Prototyp"
-#: c-common.c:4925
+#: c-common.c:4997
#, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "Nicht-Null-Argument hat ungültige Operandenzahl (Argument %lu)"
-#: c-common.c:4944
+#: c-common.c:5016
#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr "Nicht-Null-Argument mit Operandenzahl außerhalb des Wertebereiches (Argument %lu, Operand %lu)"
-#: c-common.c:4952
+#: c-common.c:5024
#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr "Nicht-Null-Argument referenziert Nicht-Zeiger-Operanden (Argument %lu, Operand %lu)"
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
msgid "missing sentinel in function call"
msgstr "Wächter in Funktionsaufruf fehlt"
-#: c-common.c:5030
+#: c-common.c:5102
msgid "not enough arguments to fit a sentinel"
msgstr "zu wenige Argumente, um in einen Wächter zu passen"
-#: c-common.c:5086
+#: c-common.c:5158
#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr "Null-Argument, wo Nicht-Null erwartet (Argument %lu)"
-#: c-common.c:5157
+#: c-common.c:5229
msgid "cleanup argument not an identifier"
msgstr "Argument für cleanup ist kein Bezeichner"
-#: c-common.c:5164
+#: c-common.c:5236
msgid "cleanup argument not a function"
msgstr "Argument für cleanup ist keine Funktion"
-#: c-common.c:5202
+#: c-common.c:5274
#, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr "Attribut %qs benötigt Prototypen mit benannten Argumenten"
-#: c-common.c:5213
+#: c-common.c:5285
#, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "Attribut %qs gilt nur für variadische Funktionen"
-#: c-common.c:5226
+#: c-common.c:5298
msgid "requested position is not an integer constant"
msgstr "angeforderte Position ist keine Ganzzahlkonstante"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr "angeforderte Position ist kleiner als Null"
-#: c-common.c:5539
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr "%Hder Rückgabewert von %qD, der mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert"
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr "%Hder Rückgabewert der Funktion, die mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert"
-#: c-common.c:5582
+#: c-common.c:5675
#, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "Versuch, die Adresse des Bitfeld-Elementes %qs zu verwenden"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "ungültiger L-Wert in Zuweisung"
-#: c-common.c:5637
+#: c-common.c:5730
msgid "invalid lvalue in increment"
msgstr "ungültiger L-Wert in Erhöhung"
-#: c-common.c:5640
+#: c-common.c:5733
msgid "invalid lvalue in decrement"
msgstr "ungültiger L-Wert in Verringerung"
-#: c-common.c:5643
+#: c-common.c:5736
msgid "invalid lvalue in unary %<&%>"
msgstr "ungültiger L-Wert in unärem %<&%>"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "ungültiger L-Wert in asm-Anweisung"
@@ -581,332 +590,336 @@ msgstr "ungültiger L-Wert in asm-Anweisung"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr "void-Wert nicht ignoriert wie es sein sollte"
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "Konvertierung zu Nicht-Skalar-Typ verlangt"
-#: c-decl.c:524
+#: c-decl.c:530
msgid "%Jarray %qD assumed to have one element"
msgstr "%JFeld %qD als einelementig betrachtet"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr "GCC unterstützt nur %u geschachtelte Gültigkeitsbereiche"
-#: c-decl.c:721
+#: c-decl.c:727
msgid "%Jlabel %qD used but not defined"
msgstr "%JMarke %qD verwendet, aber nicht definiert"
-#: c-decl.c:727
+#: c-decl.c:733
msgid "%Jlabel %qD defined but not used"
msgstr "%JMarke %qD definiert, aber nicht verwendet"
-#: c-decl.c:729
+#: c-decl.c:735
msgid "%Jlabel %qD declared but not defined"
msgstr "%JMarke %qD deklariert, aber nicht definiert"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+msgid "%Jnested function %qD declared but never defined"
+msgstr "%Jgeschachtelte Funktion %qD deklariert, aber nirgendwo definiert"
+
+#: c-decl.c:784 cp/decl.c:568
msgid "%Junused variable %qD"
msgstr "%JVariable %qD wird nicht verwendet"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
-msgstr "%JTyp des Feldes %qD unverträglich mit impliziter Initialisierung vervollständigt"
+msgstr "%JTyp des Feldes %qD vervollständigt Unverträglichkeit mit impliziter Initialisierung"
-#: c-decl.c:1008
+#: c-decl.c:1022
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:1015
+#: c-decl.c:1029
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:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr "%JPrototyp für %qD deklariert mehr Argumente als vorherige Definition im alten Stil"
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr "%JPrototyp für %qD deklariert weniger Argumente als vorherige Definition im alten Stil"
-#: c-decl.c:1066
+#: c-decl.c:1080
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "%JPrototyp für %qD deklariert Argument %d mit inkompatiblem Typen"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr "%JPrototyp für %qD folgt einer Nicht-Prototyp-Definition"
-#: c-decl.c:1094
+#: c-decl.c:1108
msgid "%Jprevious definition of %qD was here"
msgstr "%Jvorherige Definition von %qD war hier"
-#: c-decl.c:1096
+#: c-decl.c:1110
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "%Jvorherige implizite Deklaration von %qD war hier"
-#: c-decl.c:1098
+#: c-decl.c:1112
msgid "%Jprevious declaration of %qD was here"
msgstr "%Jvorherige Deklaration von %qD war hier"
-#: c-decl.c:1134
+#: c-decl.c:1149
msgid "%J%qD redeclared as different kind of symbol"
msgstr "%J%qD als andere Symbolart redeklariert"
-#: c-decl.c:1139
+#: c-decl.c:1154
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "%Jeingebaute Funktion %qD als Nicht-Funktion deklariert"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "%JDeklaration von %qD überdeckt eine eingebaute Funktion"
-#: c-decl.c:1151
+#: c-decl.c:1166
msgid "%Jredeclaration of enumerator %qD"
msgstr "%JRedeklaration von Aufzählung %qD"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
msgid "%Jconflicting types for built-in function %qD"
msgstr "%Jin Konflikt stehende Typen für eingebaute Funktion %qD"
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
msgid "%Jconflicting types for %qD"
msgstr "%Jin Konflikt stehende Typen für %qD"
-#: c-decl.c:1205
+#: c-decl.c:1232
msgid "%J conflicting type qualifiers for %qD"
msgstr "%J in Konflikt stehende Qualifizierer für %qD"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
msgid "%Jredefinition of typedef %qD"
msgstr "%JRedefinition des typedef %qD"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
msgid "%Jredefinition of %qD"
msgstr "%JRedefinition von %qD"
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "%Jstatische Deklaration von %qD folgt nicht-statischer Deklaration"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "%Jnicht-statische Deklaration von %qD folgt statischer Deklaration"
-#: c-decl.c:1326
+#: c-decl.c:1383
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "%JThread-lokale Deklaration von %qD folgt nicht-Thread-lokaler Deklaration"
-#: c-decl.c:1329
+#: c-decl.c:1386
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "%JNicht-Thread-lokale Deklaration von %qD folgt Thread-lokaler Deklaration"
-#: c-decl.c:1359
+#: c-decl.c:1416
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "%Jextern-Deklaration von %qD folgt Deklaration ohne Bindung"
-#: c-decl.c:1395
+#: c-decl.c:1452
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "%JDeklaration von %qD ohne Bindung folgt einer extern-Deklaration"
-#: c-decl.c:1401
+#: c-decl.c:1458
msgid "%Jredeclaration of %qD with no linkage"
msgstr "%JRedeklaration von %qD ohne Bindung"
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr "%JRedeklaration von %qD mit anderer Sichtbarkeit (alte Sichtbarkeit beibehalten)"
-#: c-decl.c:1426
+#: c-decl.c:1483
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "%Jinline-Deklaration von %qD folgt Deklaration mit Attribut noinline"
-#: c-decl.c:1433
+#: c-decl.c:1490
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "%JDeklaration von %qD mit Attribut noinline folgt inline-Deklaration "
-#: c-decl.c:1448
+#: c-decl.c:1505
msgid "%J%qD declared inline after being called"
msgstr "%J%qD als inline deklariert, nachdem es aufgerufen wurde"
-#: c-decl.c:1454
+#: c-decl.c:1511
msgid "%J%qD declared inline after its definition"
msgstr "%J%qD nach der Definition als inline deklariert"
-#: c-decl.c:1474
+#: c-decl.c:1531
msgid "%Jredefinition of parameter %qD"
msgstr "%JRedefinition des Parameters %qD"
-#: c-decl.c:1498
+#: c-decl.c:1555
msgid "%Jredundant redeclaration of %qD"
msgstr "%Jredundante Redeklaration von %qD"
-#: c-decl.c:1808
+#: c-decl.c:1866
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "%JDeklaration von %qD überdeckt eine vorhergehende Nicht-Variable"
+
+#: c-decl.c:1871
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "%JDeklaration von %qD überdeckt einen Parameter"
-#: c-decl.c:1811
+#: c-decl.c:1874
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "%JDeklaration von %qD überdeckt eine globale Deklaration"
-#: c-decl.c:1818
+#: c-decl.c:1884
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "%JDeklaration von %qD überdeckt einen vorhergehenden lokalen Bezeichner"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr "%Jverdeckte Deklaration ist hier"
-#: c-decl.c:1977
+#: c-decl.c:2041
msgid "nested extern declaration of %qD"
msgstr "geschachtelte extern-Deklaration von %qD"
-#: c-decl.c:2067
-msgid "nested static declaration of %qD"
-msgstr "geschachtelte static-Deklaration von %qD"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, c-format
msgid "implicit declaration of function %qE"
msgstr "implizite Deklaration der Funktion %qE"
-#: c-decl.c:2219
+#: c-decl.c:2262
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "unverträgliche implizite Deklaration der eingebauten Funktion %qD"
-#: c-decl.c:2228
+#: c-decl.c:2271
msgid "incompatible implicit declaration of function %qD"
msgstr "unverträgliche implizite Deklaration der Funktion %qD"
-#: c-decl.c:2281
+#: c-decl.c:2324
#, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "%qE ist hier nicht deklariert (nicht in einer Funktion)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "%qE nicht deklariert (erste Benutzung in dieser Funktion)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "für jede Funktion in der er auftritt.)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, c-format
msgid "label %qs referenced outside of any function"
msgstr "Marke %qs außerhalb einer Funktion referenziert"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, c-format
msgid "duplicate label declaration %qs"
msgstr "doppelte Markendeklaration %qs"
-#: c-decl.c:2407
+#: c-decl.c:2450
msgid "%Hduplicate label %qD"
msgstr "%Hdoppelte Marke %qD"
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr "%Htraditionelles C bietet keinen separaten Namespace für Marken an, Bezeichner %qs steht in Konflikt"
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr "%H%qs als falsche Symbolart definiert"
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "unbenannte struct/union, die keine Instanzen definiert"
-#: c-decl.c:2726
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr "leere Deklaration mit Speicherklassenangabe redeklariert nicht Symbol"
-#: c-decl.c:2737
+#: c-decl.c:2780
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr "leere Deklaration mit Typqualifizierer redeklariert nicht Symbol"
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
msgid "useless type name in empty declaration"
msgstr "nutzloser Typname in leerer Deklaration"
-#: c-decl.c:2773
+#: c-decl.c:2816
msgid "%<inline%> in empty declaration"
msgstr "%<inline%> in leerer Deklaration"
-#: c-decl.c:2779
+#: c-decl.c:2822
msgid "%<auto%> in file-scope empty declaration"
-msgstr "%<auto%> in einer leeren Deklaration im Datei-Gültigkeitsbereich"
+msgstr "%<auto%> in leerer Deklaration im Datei-Gültigkeitsbereich"
-#: c-decl.c:2785
+#: c-decl.c:2828
msgid "%<register%> in file-scope empty declaration"
-msgstr "%<register%> in leeren Deklaration im Datei-Gültigkeitsbereich"
+msgstr "%<register%> in leerer Deklaration im Datei-Gültigkeitsbereich"
-#: c-decl.c:2791
+#: c-decl.c:2834
msgid "useless storage class specifier in empty declaration"
msgstr "nutzlose Speicherklassenangabe in leerer Deklaration"
-#: c-decl.c:2797
+#: c-decl.c:2840
msgid "useless %<__thread%> in empty declaration"
msgstr "nutzloses %<__thread%> in leerer Deklaration"
-#: c-decl.c:2805
+#: c-decl.c:2848
msgid "useless type qualifier in empty declaration"
msgstr "nutzloser Typqualifizierer in leerer Deklaration"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "leere Deklaration"
-#: c-decl.c:2878
+#: c-decl.c:2921
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:2881
+#: c-decl.c:2924
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO-C90 unterstützt nicht %<[*]%>-Felddeklaratoren"
-#: c-decl.c:2884
+#: c-decl.c:2927
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "GCC implementiert noch keine richtigen %<[*]%>-Felddeklaratoren"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "static oder Typkennzeichner in abstraktem Deklarator"
-#: c-decl.c:2960
+#: c-decl.c:3005
msgid "%J%qD is usually a function"
msgstr "%J%qD ist üblicherweise eine Funktion"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef %qD ist initialisiert (stattdessen lieber __typeof__ verwenden)"
-#: c-decl.c:2974
+#: c-decl.c:3019
msgid "function %qD is initialized like a variable"
msgstr "Funktion %qD ist wie eine Variable initialisiert"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
msgid "parameter %qD is initialized"
msgstr "Parameter %qD ist initialisiert"
@@ -914,749 +927,745 @@ msgstr "Parameter %qD ist initialisiert"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "Objekt variabler Größe darf nicht initialisiert werden"
-#: c-decl.c:3005
+#: c-decl.c:3050
msgid "variable %qD has initializer but incomplete type"
msgstr "Variable %qD hat Initialisierung, aber unvollständigen Typ"
-#: c-decl.c:3010
-msgid "elements of array %qD have incomplete type"
-msgstr "Elemente des Feldes %qD haben unvollständigen Typ"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
msgid "%Jinline function %qD given attribute noinline"
msgstr "%Jinline-Funktion %qD wurde das Attribut »noinline« gegeben"
-#: c-decl.c:3154
+#: c-decl.c:3194
msgid "%Jinitializer fails to determine size of %qD"
msgstr "%JInitialisierung scheitert an Größenbestimmung von %qD"
-#: c-decl.c:3159
+#: c-decl.c:3199
msgid "%Jarray size missing in %qD"
msgstr "%JFeldgröße in %qD fehlt"
-#: c-decl.c:3175
+#: c-decl.c:3215
msgid "%Jzero or negative size array %qD"
msgstr "%JFeldgröße von %qD ist null oder negativ"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
msgid "%Jstorage size of %qD isn%'t known"
msgstr "%JSpeichergröße von %qD ist unbekannt"
-#: c-decl.c:3211
+#: c-decl.c:3251
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "%JSpeichergröße von %qD ist nicht konstant"
-#: c-decl.c:3266
+#: c-decl.c:3299
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "%Jasm-Symbol für nicht-statische lokale Variable %qD wird ignoriert"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "kann kein Objekt mit volatile-Feld in Register laden"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO-C verbietet Vorwärtsdeklaration für Parameter"
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr "<anonym>"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "Breite des Bitfeldes %qs ist keine Ganzzahlkonstante"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, c-format
msgid "negative width in bit-field %qs"
msgstr "negative Breite in Bitfeld %qs"
-#: c-decl.c:3636
+#: c-decl.c:3670
#, c-format
msgid "zero width for bit-field %qs"
msgstr "Breite null für Bitfeld %qs"
-#: c-decl.c:3646
+#: c-decl.c:3680
#, c-format
msgid "bit-field %qs has invalid type"
msgstr "Bitfeld %qs hat ungültigen Typen"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr "der Typ des Bitfeldes %qs ist eine Erweiterung des GCC"
-#: c-decl.c:3664
+#: c-decl.c:3698
#, c-format
msgid "width of %qs exceeds its type"
msgstr "Breite von %qs überschreitet dessen Typen"
-#: c-decl.c:3677
+#: c-decl.c:3711
#, c-format
msgid "%qs is narrower than values of its type"
msgstr "%qs ist schmaler als die Werte seines Typs"
-#: c-decl.c:3802
+#: c-decl.c:3836
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "%<int%> ist Standardtyp in Deklaration von %qs"
-#: c-decl.c:3830
+#: c-decl.c:3864
msgid "duplicate %<const%>"
msgstr "doppeltes %<const%>"
-#: c-decl.c:3832
+#: c-decl.c:3866
msgid "duplicate %<restrict%>"
msgstr "doppeltes %<restrict%>"
-#: c-decl.c:3834
+#: c-decl.c:3868
msgid "duplicate %<volatile%>"
msgstr "doppeltes %<volatile%>"
-#: c-decl.c:3853
+#: c-decl.c:3887
msgid "function definition declared %<auto%>"
msgstr "Funktionsdefinition deklarierte %<auto%>"
-#: c-decl.c:3855
+#: c-decl.c:3889
msgid "function definition declared %<register%>"
msgstr "Funktionsdefinition deklarierte %<register%>"
-#: c-decl.c:3857
+#: c-decl.c:3891
msgid "function definition declared %<typedef%>"
msgstr "Funktionsdefinition deklarierte %<typedef%>"
-#: c-decl.c:3859
+#: c-decl.c:3893
msgid "function definition declared %<__thread%>"
msgstr "Funktionsdefinition deklarierte %<__thread%>"
-#: c-decl.c:3875
+#: c-decl.c:3909
#, c-format
msgid "storage class specified for structure field %qs"
msgstr "Speicherklasse für Strukturfeld %qs angegeben"
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, c-format
msgid "storage class specified for parameter %qs"
msgstr "Speicherklasse für Parameter %qs angegeben"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "Speicherklasse für Typnamen angegeben"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
msgid "%qs initialized and declared %<extern%>"
msgstr "%qs initialisiert und als %<extern%> deklariert"
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
msgid "%qs has both %<extern%> and initializer"
msgstr "%qs hat sowohl %<extern%> als auch Initialisierung"
-#: c-decl.c:3902
+#: c-decl.c:3936
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "Deklaration von %qs in Datei-Sichtbarkeitsbereich spezifiziert %<auto%>"
-#: c-decl.c:3904
+#: c-decl.c:3938
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "Deklaration von %qs in Datei-Sichtbarkeitsbereich spezifiziert %<register%>"
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
msgid "nested function %qs declared %<extern%>"
msgstr "geschachtelte Funktion %qs als %<extern%> deklariert"
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr "Funktions-Gültigkeitsbereich %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "»static« oder Typkennzeichner in Nicht-Parameter-Felddeklarator"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, c-format
msgid "declaration of %qs as array of voids"
msgstr "Deklaration von %qs als Feld von voids"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, c-format
msgid "declaration of %qs as array of functions"
msgstr "Deklaration von %qs als Feld von Funktionen"
-#: c-decl.c:4010
+#: c-decl.c:4050
msgid "invalid use of structure with flexible array member"
msgstr "ungültige Verwendung einer Struktur mit flexiblem Feldelement"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, c-format
msgid "size of array %qs has non-integer type"
msgstr "Feldgröße von %qs hat Nicht-Ganzzahltyp"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO-C verbietet Feld %qs der Größe null"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, c-format
msgid "size of array %qs is negative"
msgstr "Größe des Feldes %qs ist negativ"
-#: c-decl.c:4056
+#: c-decl.c:4096
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ISO-C90 verbietet Feld %qs, dessen Größe nicht ausgewertet werden kann"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO-C90 verbietet Feld %qs variabler Größe"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, c-format
msgid "size of array %qs is too large"
msgstr "Feldgröße von %qs ist zu groß"
-#: c-decl.c:4106
+#: c-decl.c:4150
msgid "ISO C90 does not support flexible array members"
msgstr "ISO-C90 unterstützt keine flexiblen Felder als Elemente"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "Feldtyp hat unvollständigen Elementtypen"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, c-format
msgid "%qs declared as function returning a function"
msgstr "%qs als Funktion, die eine Funktion zurückgibt, deklariert"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, c-format
msgid "%qs declared as function returning an array"
msgstr "%qs als Funktion, die ein Feld zurückgibt, deklariert"
-#: c-decl.c:4199
+#: c-decl.c:4240
msgid "function definition has qualified void return type"
msgstr "Funktionsdefinition hat qualifizierten void-Rückgabetypen"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr "Typkennzeichner an Funktions-Rückgabewert ignoriert"
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO-C verbietet qualifizierte Funktionstypen"
-#: c-decl.c:4282
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
msgstr "%Jtypedef %qD als %<inline%> deklariert"
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO-C verbietet const- oder volatile-Funktionstypen"
-#: c-decl.c:4332
+#: c-decl.c:4374
#, c-format
msgid "variable or field %qs declared void"
msgstr "Variable oder Feld %qs als void deklariert"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "Attribute in Parameterfelddeklarator ignoriert"
-#: c-decl.c:4396
+#: c-decl.c:4438
msgid "%Jparameter %qD declared %<inline%>"
msgstr "%JParameter %qD als %<inline%> deklariert"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, c-format
msgid "field %qs declared as a function"
msgstr "Feld %qs als Funktion deklariert"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, c-format
msgid "field %qs has incomplete type"
msgstr "Feld %qs hat unvollständigen Typen"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, c-format
msgid "invalid storage class for function %qs"
msgstr "ungültige Speicherklasse für Funktion %qs"
-#: c-decl.c:4461
+#: c-decl.c:4507
msgid "%<noreturn%> function returns non-void value"
msgstr "%<noreturn%>-Funktion gibt nicht-void-Wert zurück"
-#: c-decl.c:4489
+#: c-decl.c:4535
msgid "cannot inline function %<main%>"
msgstr "%<main%> ist nicht als »inline« möglich"
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr "als %<extern%> redeklarierte Variable war bereits als %<static%> deklariert"
-#: c-decl.c:4555
+#: c-decl.c:4591
msgid "%Jvariable %qD declared %<inline%>"
msgstr "%JVariable %qD 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:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
msgid "thread-local storage not supported for this target"
msgstr "Thread-lokaler Speicher wird für dieses Ziel nicht unterstützt"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
msgid "function declaration isn%'t a prototype"
msgstr "Funktionsdeklaration ist kein Prototyp"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "Parameternamen (ohne Typen) in Funktionsdeklaration"
-#: c-decl.c:4689
+#: c-decl.c:4725
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "%JParameter %u (%qD) hat unvollständigen Typen"
-#: c-decl.c:4692
+#: c-decl.c:4728
msgid "%Jparameter %u has incomplete type"
msgstr "%JParameter %u hat unvollständigen Typen"
-#: c-decl.c:4701
+#: c-decl.c:4737
msgid "%Jparameter %u (%qD) has void type"
msgstr "%JParameter %u (%qD) hat void-Typen"
-#: c-decl.c:4704
+#: c-decl.c:4740
msgid "%Jparameter %u has void type"
msgstr "%JParameter %u hat void-Typen"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr "%<void%> kann nicht als einzelner Parameter qualifiziert werden"
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
msgstr "%<void%> muss der einzige Parameter sein"
-#: c-decl.c:4793
+#: c-decl.c:4829
msgid "%Jparameter %qD has just a forward declaration"
msgstr "%JParameter %qD hat nur eine Vorwärtsdeklaration"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
msgid "%<%s %E%> declared inside parameter list"
msgstr "%<%s %E%> innerhalb Parameterliste deklariert"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "anonymes %s innerhalb Parameterliste deklariert"
-#: c-decl.c:4848
+#: c-decl.c:4884
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:4981
+#: c-decl.c:5017
msgid "redefinition of %<union %s%>"
msgstr "Redefinition von %<union %s%>"
-#: c-decl.c:4983
+#: c-decl.c:5019
msgid "redefinition of %<struct %s%>"
msgstr "Redefinition von %<struct %s%>"
-#: c-decl.c:4988
+#: c-decl.c:5024
msgid "nested redefinition of %<union %s%>"
msgstr "Verschachtelte Redefinition von %<union %s%>"
-#: c-decl.c:4991
+#: c-decl.c:5027
msgid "nested redefinition of %<struct %s%>"
msgstr "Verschachtelte Redefinition von %<struct %s%>"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "Deklaration deklariert nichts"
-#: c-decl.c:5067
+#: c-decl.c:5103
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO-C unterstützt keine namenlosen structs/unions"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
msgid "%Jduplicate member %qD"
msgstr "%Jdoppeltes Element %qD"
-#: c-decl.c:5165
+#: c-decl.c:5201
msgid "union has no named members"
msgstr "Union hat keine benannten Elemente"
-#: c-decl.c:5167
+#: c-decl.c:5203
msgid "union has no members"
msgstr "Union hat keine Elemente"
-#: c-decl.c:5172
+#: c-decl.c:5208
msgid "struct has no named members"
msgstr "struct hat keine benannten Elemente"
-#: c-decl.c:5174
+#: c-decl.c:5210
msgid "struct has no members"
msgstr "struct hat keine Elemente"
-#: c-decl.c:5231
+#: c-decl.c:5267
msgid "%Jflexible array member in union"
msgstr "%Jflexibles Feldelement in Union"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr "%Jflexibles Feld-Element nicht am Ende von struct"
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr "%Jflexibles Feld-Element in ansonsten leerem struct"
-#: c-decl.c:5248
+#: c-decl.c:5284
msgid "%Jinvalid use of structure with flexible array member"
msgstr "%Jungültige Verwendung einer Struktur mit flexiblem Feld-Element"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "union kann nicht transparent gemacht werden"
-#: c-decl.c:5418
+#: c-decl.c:5463
msgid "nested redefinition of %<enum %s%>"
msgstr "Verschachtelte Redefinition von %<enum %s%>"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
msgid "redeclaration of %<enum %s%>"
msgstr "Redeklaration von %<enum %s%>"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr "Aufzählungswerte überschreiten Wertebereich des größten Ganzzahltypen"
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr "angegebener Modus zu klein für Aufzählungswerte"
-#: c-decl.c:5604
+#: c-decl.c:5649
#, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "Aufzählungswert für %qE ist keine Ganzzahlkonstante"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "Überlauf in Aufzählungswerten"
-#: c-decl.c:5626
+#: c-decl.c:5671
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr "ISO-C beschränkt Aufzählungswerte auf Bereich von %<int%>"
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "Rückgabetyp ist unvollständig"
-#: c-decl.c:5710
+#: c-decl.c:5755
msgid "return type defaults to %<int%>"
msgstr "Rückgabetyp ist auf %<int%> voreingestellt"
-#: c-decl.c:5739
+#: c-decl.c:5784
msgid "%Jno previous prototype for %qD"
msgstr "%Jkein vorheriger Prototyp für %qD"
-#: c-decl.c:5745
+#: c-decl.c:5790
msgid "%J%qD was used with no prototype before its definition"
msgstr "%J%qD wurde vor seiner Definition ohne Prototyp verwendet"
-#: c-decl.c:5752
+#: c-decl.c:5797
msgid "%Jno previous declaration for %qD"
msgstr "%Jkeine vorherige Deklaration für %qD"
-#: c-decl.c:5758
+#: c-decl.c:5803
msgid "%J%qD was used with no declaration before its definition"
msgstr "%J%qD wurde vor seiner Definition ohne Deklaration verwendet"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "%JRückgabetyp von %qD ist nicht %<int%>"
-#: c-decl.c:5806
+#: c-decl.c:5851
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "%Jerstes Argument von %qD sollte %<int%> sein"
-#: c-decl.c:5815
+#: c-decl.c:5860
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "%Jzweites Argument von %qD sollte %<char **%> sein"
-#: c-decl.c:5824
+#: c-decl.c:5869
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "%Jdrittes Argument von %qD sollte wahrscheinlich %<char **%> sein"
-#: c-decl.c:5834
+#: c-decl.c:5879
msgid "%J%qD takes only zero or two arguments"
msgstr "%J%qD benötigt entweder null oder zwei Argumente"
-#: c-decl.c:5837
+#: c-decl.c:5882
msgid "%J%qD is normally a non-static function"
msgstr "%J%qD ist normalerweise eine Nicht-static-Funktion"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr "%JParameterdeklarationen alten Stils in Prototyp-Funktionsdeklaration"
-#: c-decl.c:5896
+#: c-decl.c:5941
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr "%Jtraditionelles C weist Funktionsdefinitionen im ISO-C-Stil zurück"
-#: c-decl.c:5908
+#: c-decl.c:5953
msgid "%Jparameter name omitted"
msgstr "%JParametername ausgelassen"
-#: c-decl.c:5948
+#: c-decl.c:5993
msgid "%Jold-style function definition"
msgstr "%JFunktionsdefinition im alten Stil"
-#: c-decl.c:5956
+#: c-decl.c:6001
msgid "%Jparameter name missing from parameter list"
msgstr "%JParametername fehlt in Parameterliste"
-#: c-decl.c:5967
+#: c-decl.c:6012
msgid "%J%qD declared as a non-parameter"
msgstr "%J%qD als Nicht-Parameter deklariert"
-#: c-decl.c:5972
+#: c-decl.c:6017
msgid "%Jmultiple parameters named %qD"
msgstr "%Jmehrere Parameter wurden %qD genannt"
-#: c-decl.c:5980
+#: c-decl.c:6025
msgid "%Jparameter %qD declared with void type"
msgstr "%JParameter %qD als void deklariert"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "%JTyp von %qD ist auf %<int%> voreingestellt"
-#: c-decl.c:6016
+#: c-decl.c:6061
msgid "%Jparameter %qD has incomplete type"
msgstr "%JParameter %qD hat unvollständigen Typen"
-#: c-decl.c:6022
+#: c-decl.c:6067
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "%JDeklaration für nicht vorhandenen Parameter %qD"
-#: c-decl.c:6072
+#: c-decl.c:6117
msgid "number of arguments doesn%'t match prototype"
msgstr "Anzahl der Argumente passt nicht zum Prototypen"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
msgid "%Hprototype declaration"
msgstr "%HPrototyp-Deklaration"
-#: c-decl.c:6101
+#: c-decl.c:6146
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "weitergegebenes Argument %qD passt nicht zum Prototypen"
-#: c-decl.c:6109
+#: c-decl.c:6154
msgid "argument %qD doesn%'t match prototype"
msgstr "Argument %qD passt nicht zum Prototypen"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr "keine return-Anweisung in nicht void zurückgebender Funktion"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "diese Funktion kann mit oder ohne Wert zurückkehren"
#. 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:6403
+#: c-decl.c:6461
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "Anfangsdeklaration in %<for%>-Schleife außerhalb C99-Modus verwendet"
-#: c-decl.c:6432
+#: c-decl.c:6490
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "%JDeklaration der »static«-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
-#: c-decl.c:6435
+#: c-decl.c:6493
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "%JDeklaration der %<extern%>-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
-#: c-decl.c:6440
+#: c-decl.c:6498
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "%<struct %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
-#: c-decl.c:6444
+#: c-decl.c:6502
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "%<union %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
-#: c-decl.c:6448
+#: c-decl.c:6506
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "%<enum %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
-#: c-decl.c:6452
+#: c-decl.c:6510
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "%JDeklaration der Nicht-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, c-format
msgid "duplicate %qs"
msgstr "doppeltes %qs"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
msgid "two or more data types in declaration specifiers"
msgstr "zwei oder mehr Datentypen in Deklaration"
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
msgid "%<long long long%> is too long for GCC"
msgstr "%<long long long%> ist für GCC zu lang"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr "sowohl %<long long%> als auch %<double%> in Deklaration"
-#: c-decl.c:6787
+#: c-decl.c:6845
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO-C90 unterstützt nicht %<long long%>"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "sowohl %<long%> als auch %<short%> in Deklaration"
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "sowohl %<long%> als auch %<void%> in Deklaration"
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "sowohl %<long%> als auch %<_Bool%> in Deklaration"
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "sowohl %<long%> als auch %<char%> in Deklaration"
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "sowohl %<long%> als auch %<float%> in Deklaration"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr "sowohl %<short%> als auch %<void%> in Deklaration"
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr "sowohl %<short%> als auch %<_Bool%> in Deklaration"
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr "sowohl %<short%> als auch %<char%> in Deklaration"
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr "sowohl %<short%> als auch %<float%> in Deklaration"
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr "sowohl %<short%> als auch %<double%> in Deklaration"
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "sowohl %<signed%> als auch %<unsigned%> in Deklaration"
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "sowohl %<signed%> als auch %<void%> in Deklaration"
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "sowohl %<signed%> als auch %<_Bool%> in Deklaration"
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "sowohl %<signed%> als auch %<float%> in Deklaration"
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "sowohl %<signed%> als auch %<double%> in Deklaration"
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "sowohl %<unsigned%> als auch %<void%> in Deklaration"
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "sowohl %<unsigned%> als auch %<_Bool%> in Deklaration"
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "sowohl %<unsigned%> als auch %<float%> in Deklaration"
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "sowohl %<unsigned%> als auch %<double%> in Deklaration"
-#: c-decl.c:6875
+#: c-decl.c:6933
msgid "ISO C90 does not support complex types"
msgstr "ISO-C90 unterstützt nicht komplexe Typen"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr "sowohl %<complex%> als auch %<void%> in Deklaration"
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr "sowohl %<complex%> als auch %<_Bool%> in Deklaration"
-#: c-decl.c:7019
+#: c-decl.c:7077
#, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr "%qs ist kein typedef oder eingebauter Typ"
-#: c-decl.c:7051
+#: c-decl.c:7109
#, c-format
msgid "%qs is not at beginning of declaration"
msgstr "%qs ist nicht am Beginn einer Deklaration"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr "%<__thread%> mit %<auto%> verwendet"
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr "%<__thread%> mit %<register%> verwendet"
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr "%<__thread%> mit %<typedef%> verwendet"
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
msgstr "%<__thread%> vor %<extern%>"
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
msgstr "%<__thread%> vor %<static%>"
-#: c-decl.c:7106
+#: c-decl.c:7164
msgid "multiple storage classes in declaration specifiers"
msgstr "mehrere Speicherklassen in Deklaration"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr "%<__thread%> mit %qs verwendet"
-#: c-decl.c:7167
+#: c-decl.c:7225
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr "ISO-C unterstützt nicht %<double complex%> bedeutendes einfaches %<complex%>"
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO-C unterstützt keine komplexen Ganzzahltypen"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
msgid "%J%qF used but never defined"
msgstr "%J%qF verwendet, aber nirgendwo definiert"
@@ -2161,13 +2170,13 @@ msgstr "strftime-Formate können keine Argumente formatieren"
msgid "statement with no effect"
msgstr "Anweisung ohne Effekt"
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«"
#: c-gimplify.c:317
msgid "continue statement not within loop or switch"
-msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«"
+msgstr "continue-Anweisung nicht innerhalb einer Schleife oder »switch«"
#: c-incpath.c:70
#, c-format
@@ -2184,17 +2193,17 @@ msgstr " da es ein Nicht-Systemverzeichnis ist, das ein Systemverzeichnis dupli
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "nicht vorhandenes Verzeichnis »%s« wird ignoriert\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\" - Suche beginnt hier:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "#include <...> - Suche beginnt hier:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Ende der Suchliste.\n"
@@ -2252,36 +2261,27 @@ msgstr "Gleitkommakonstante überschreitet Wertebereich von %<%s%>"
msgid "traditional C rejects string constant concatenation"
msgstr "traditionelles C weist Stringkonstantenverkettung zurück"
-#: c-objc-common.c:81
-#, fuzzy
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr "%JFunktion %qF kann nie inline sein, da dies mit -fno-inline unterdrückt wird"
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr "%JFunktion %qF kann nie inline sein, da sie nicht in dieser Ãœbersetzungseinheit gebunden wird"
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr "%JFunktion %qF kann nie inline sein, da sie mit inline in Konflikt stehende Attribute hat"
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr "%JFunktion %qF kann nie inline sein, da sie noch offene Größen hat"
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr "%Jdie geschachtelte Funktion %qF kann nie inline sein, da sie möglicherweise gespeicherte, noch offene Größen hat"
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "Feld, das nicht in Zeiger umgewandelt werden kann, anstelle des geforderten Skalars verwendet"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
msgid "used struct type value where scalar is required"
msgstr "Wert eines struct-Typs anstelle des geforderten Skalars verwendet"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
msgid "used union type value where scalar is required"
msgstr "Wert eines union-Typs anstelle des geforderten Skalars verwendet"
@@ -2328,80 +2328,80 @@ msgstr "veraltete Option -I- verwendet, bitte stattdessen -iquote verwenden"
msgid "switch %qs is no longer supported"
msgstr "Schalter %qs wird nicht mehr unterstützt"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr "-fhandle-exceptions wurde in -fexceptions umbenannt (und ist nun voreingestellt)"
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr "Ausgabedatei doppelt angegeben"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k wird ohne -Wformat ignoriert"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args wird ohne -Wformat ignoriert"
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-zero-length wird ohne -Wformat ignoriert"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral wird ohne -Wformat ignoriert"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security wird ohne -Wformat ignoriert"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute wird ohne -Wformat ignoriert"
-#: c-opts.c:995
+#: c-opts.c:998
#, c-format
msgid "opening output file %s: %m"
msgstr "Ausgabedatei »%s« wird geöffnet: %m"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, c-format
msgid "too many filenames given. Type %s --help for usage"
-msgstr "zu viele Dateinamen angegeben. Geben sie »%s --help« für Hilfe ein"
+msgstr "zu viele Dateinamen angegeben. Für Hilfe »%s --help« eingeben"
-#: c-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr "YYDEBUG war zur Ãœbersetzungszeit nicht definiert, -dy ignoriert"
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr "Abhängigkeitsdatei »%s« wird geöffnet: %m"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr "Abhängigkeitsdatei »%s« wird geschlossen: %m"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, c-format
msgid "when writing output to %s: %m"
msgstr "beim Schreiben der Ausgabe nach %s: %m"
-#: c-opts.c:1216
+#: c-opts.c:1220
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:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr "<eingebaut>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<Kommandozeile>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr "zu spät für »#«-Direktive, um Debug-Verzeichnis festzulegen"
@@ -2413,16 +2413,16 @@ msgstr "zu spät für »#«-Direktive, um Debug-Verzeichnis festzulegen"
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "Syntaxfehler"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "Syntaxfehler: es kann nicht zurückgesetzt werden"
@@ -2470,103 +2470,107 @@ msgstr "das erste Argument für %<__builtin_choose_expr%> ist keine Konstante"
msgid "%<typeof%> applied to a bit-field"
msgstr "%<typeof%> auf ein Bitfeld angewandt"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO-C verbietet leere Initialisierungsklammern"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO-C90 verbietet die Angabe von zu initialisierenden Unterobjekten"
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
msgstr "veraltete Verwendung einer bestimmten Initialisierung ohne %<=%>"
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
msgid "obsolete use of designated initializer with %<:%>"
msgstr "veraltete Verwendung einer bestimmten Initialisierung mit %<:%>"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO-C verbietet die Angabe eines zu initialisierenden Wertebereiches"
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO-C verbietet verschachtelte Funktionen"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO-C verbietet Vorwärts-Referenzen auf %<enum%>-Typen"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "Komma am Ende der Aufzählungsliste"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "kein Semikolon am Ende von »struct« oder »union«"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO-C verbietet Elementdeklarationen ohne Elemente"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr "Marke am Ende einer Verbundanweisung"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO-C90 verbietet gemischte Deklarationen und Code"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO-C verbietet Markendeklarationen"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr "geklammerte Gruppe innerhalb eines Ausdrucks nur in Funktion erlaubt"
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, c-format
msgid "%E qualifier ignored on asm"
msgstr "%E-Qualifizierer für asm ignoriert"
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr "Wide-Zeichenkettenliteral in »asm«"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO-C erfordert ein benanntes Argument vor %<...%>"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
msgid "syntax error; also virtual memory exhausted"
msgstr "Syntaxfehler; auch virtueller Speicher verbraucht"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "Parser-Keller-Ãœberlauf"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, c-format
msgid "syntax error at %qs token"
msgstr "Syntaxfehler beim Token %qs"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "Fehler beim Parsen"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
msgid "parse error; also virtual memory exhausted"
msgstr "Syntaxfehler; auch virtueller Speicher verbraucht"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
msgid "parse error: cannot back up"
msgstr "Syntaxfehler: es kann nicht zurückgesetzt werden"
@@ -2674,172 +2678,172 @@ msgstr "Ausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr "%JAnwendung von #pragma weak %qD nach erster Benutzung führt zu nicht spezifiziertem Verhalten"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr "falsch geformtes #pragma weak, ignoriert"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "Ausschuss am Ende von #pragma weak"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr "falsch geformtes #pragma redefine_extname, ignoriert"
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr "Ausschuss am Ende von #pragma redefine_extname"
-#: c-pragma.c:389
+#: c-pragma.c:421
msgid "#pragma redefine_extname not supported on this target"
msgstr "#pragma redefine_extname für dieses Ziel nicht unterstützt"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "#pragma redefine_extname wegen Konflikt mit vorheriger Umbenennung ignoriert"
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr "#pragma redefine_extname wegen Konflikt mit vorherigem #pragma redefine_extname ignoriert"
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr "falsch geformtes #pragma extern_prefix, ignoriert"
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr "Ausschuss am Ende von #pragma extern_prefix"
-#: c-pragma.c:457
+#: c-pragma.c:489
msgid "#pragma extern_prefix not supported on this target"
msgstr "#pragma extern_prefix wird von diesem Ziel nicht unterstützt"
-#: c-pragma.c:483
+#: c-pragma.c:515
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "asm-Deklaration wegen Konflikt mit vorheriger Umbenennung ignoriert"
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr "#pragma redefine_extname wegen Konflikt mit __asm__-Deklaration ignoriert"
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr "#pragma GCC visibility muss von push oder pop gefolgt werden"
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr "Kein passendes push für %<#pragma GCC visibility pop%>"
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr "%<(%> hinter %<#pragma GCC visibility push%> fehlt - ignoriert"
-#: c-pragma.c:596
+#: c-pragma.c:628
msgid "malformed #pragma GCC visibility push"
msgstr "Falsch geformtes #pragma GCC visibility push"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr "Es werden nicht mehr als sechzehn #pragma GCC visibility pushes auf einmal erlaubt"
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr "#pragma GCC visibility push() muss default, internal, hidden oder protected angeben"
-#: c-pragma.c:625
+#: c-pragma.c:657
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "Ausschuss am Ende von %<#pragma GCC visibility%>"
-#: c-typeck.c:138
+#: c-typeck.c:139
#, c-format
msgid "%qs has an incomplete type"
msgstr "%qs hat unvollständigen Typ"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "falsche Benutzung eines void-Ausdruckes"
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr "falsche Benutzung eines flexiblen Feldelements"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "falsche Benutzung eines Feldes mit unbekannten Grenzen"
-#: c-typeck.c:182
+#: c-typeck.c:183
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:186
+#: c-typeck.c:187
#, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "falsche Benutzung des unvollständigen typedef %qs"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr "Funktionstypen nicht wirklich kompatibel in ISO-C"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "Typen nicht sehr kompatibel"
-#: c-typeck.c:987
+#: c-typeck.c:1045
msgid "function return types not compatible due to %<volatile%>"
msgstr "Funktionsrückgabetypen nicht kompatibel wegen %<volatile%>"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "Arithmetik mit Zeiger auf unvollständigen Typen"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
msgid "%qT has no member named %qs"
msgstr "%qT hat kein Element namens %qs"
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, c-format
msgid "request for member %qs in something not a structure or union"
msgstr "Anfrage nach Element %qs in etwas, was keine Struktur oder Variante ist"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "Dereferenzierung eines Zeigers auf unvollständigen Typen"
-#: c-typeck.c:1552
+#: c-typeck.c:1633
msgid "dereferencing %<void *%> pointer"
msgstr "Dereferenzierung eines %<void *%>-Zeigers"
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, c-format
msgid "invalid type argument of %qs"
msgstr "falsches Typ-Argument von %qs"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "indizierter Wert ist weder ein Feld noch ein Zeiger"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "Feldindex ist keine Ganzzahl"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
msgid "subscripted value is pointer to function"
msgstr "indizierter Wert ist Zeiger auf Funktion"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
msgid "array subscript has type %<char%>"
msgstr "Feldindex hat Typ %<char%>"
-#: c-typeck.c:1667
+#: c-typeck.c:1748
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO-C verbietet, ein %<register%>-Feld zu indizieren"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO-C90 verbietet, ein Nicht-L-Wert-Feld zu indizieren"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, c-format
msgid "called object %qE is not a function"
msgstr "gerufenes Objekt %qE ist keine Funktion"
@@ -2847,763 +2851,759 @@ msgstr "gerufenes Objekt %qE ist keine Funktion"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr "Funktion über nicht kompatiblen Typen aufgerufen"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "Initialisierungselement ist nicht konstant"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, c-format
msgid "too many arguments to function %qE"
msgstr "zu viele Argumente für Funktion %qE"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "Typ des formalen Parameters %d ist unvollständig"
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als Ganzzahl statt Gleitkomma aufgrund des Prototyps"
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als Ganzzahl statt komplex aufgrund des Prototyps"
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als komplex statt Gleitkomma aufgrund des Prototyps"
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als Gleitkomma statt Ganzzahl aufgrund des Prototyps"
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als komplex statt Ganzzahl aufgrund des Prototyps"
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als Gleitkomma statt komplex aufgrund des Prototyps"
-#: c-typeck.c:2121
+#: c-typeck.c:2204
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als %<float%> statt %<double%> aufgrund des Prototyps"
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE mit anderer Breite aufgrund des Prototyps"
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als vorzeichenlos aufgrund des Prototyps"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "Ãœbergabe des Arguments %d von %qE als vorzeichenbehaftet aufgrund des Prototyps"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, c-format
msgid "too few arguments to function %qE"
msgstr "zu wenige Argumente für Funktion %qE"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "Klammern um + oder - innerhalb von Schiebeoperation empfohlen"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "Klammern um && innerhalb von || empfohlen"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "Klammern um Arithmetik in Operand von | empfohlen"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "Klammern um Vergleich in Operand von | empfohlen"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "Klammern um Arithmetik in Operand von ^ empfohlen"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "Klammern um Vergleich in Operand von ^ empfohlen"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "Klammern um + oder - in Operand von & empfohlen"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "Klammern um Vergleich in Operand von & empfohlen"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
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:2314
+#: c-typeck.c:2397
msgid "pointer of type %<void *%> used in subtraction"
msgstr "Zeiger des Typs %<void *%> in Subtraktion verwendet"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "Zeiger auf eine Funktion in Subtraktion verwendet"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "Argument falschen Typs für unäres Plus"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "Argument falschen Typs für unäres Minus"
-#: c-typeck.c:2435
+#: c-typeck.c:2518
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO-C unterstützt nicht %<~%> für komplexe Konjugation"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "Argument falschen Typs für Bit-Komplement"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "Argument falschen Typs für abs"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "Argument falschen Typs für Konjugation"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "Argument falschen Typs für unäres Ausrufungszeichen"
-#: c-typeck.c:2512
+#: c-typeck.c:2595
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr "ISO-C unterstützt kein %<++%> und %<--%> für komplexe Typen"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "Argument falschen Typs für Inkrementierung"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "Argument falschen Typs für Dekrementierung"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "Erhöhung eines Zeigers auf unbekannte Struktur"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "Verminderung eines Zeigers auf unbekannte Struktur"
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, c-format
msgid "assignment of read-only member %qs"
msgstr "Zuweisung des schreibgeschützten Elementes %qs"
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, c-format
msgid "increment of read-only member %qs"
msgstr "Erhöhung des schreibgeschützten Elementes %qs"
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, c-format
msgid "decrement of read-only member %qs"
msgstr "Verringerung des schreibgeschützten Elementes %qs"
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, c-format
msgid "assignment of read-only variable %qs"
msgstr "Zuweisung der schreibgeschützten Variable %qs"
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, c-format
msgid "increment of read-only variable %qs"
msgstr "Erhöhung der schreibgeschützten Variable %qs"
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, c-format
msgid "decrement of read-only variable %qs"
msgstr "Verringerung der schreibgeschützten Variable %qs"
-#: c-typeck.c:2734
+#: c-typeck.c:2817
msgid "assignment of read-only location"
msgstr "Zuweisung der schreibgeschützten Speicherstelle"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
msgid "increment of read-only location"
msgstr "Erhöhung der schreibgeschützten Speicherstelle"
-#: c-typeck.c:2736
+#: c-typeck.c:2819
msgid "decrement of read-only location"
msgstr "Verringerung der schreibgeschützten Speicherstelle"
-#: c-typeck.c:2755
+#: c-typeck.c:2838
msgid "cannot take address of bit-field %qD"
msgstr "die Adresse des Bit-Feldes %qD kann nicht ermittelt werden"
-#: c-typeck.c:2783
+#: c-typeck.c:2866
msgid "global register variable %qD used in nested function"
msgstr "globale Register-Variable %qD in verschachtelter Funktion verwendet"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
msgid "register variable %qD used in nested function"
msgstr "Register-Variable %qD in verschachtelter Funktion verwendet"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
msgid "address of global register variable %qD requested"
msgstr "Adresse der globalen Variable %qD angefordert"
-#: c-typeck.c:2793
+#: c-typeck.c:2876
msgid "address of register variable %qD requested"
msgstr "Adresse der Register-Variablen %qD angefordert"
-#: c-typeck.c:2841
+#: c-typeck.c:2924
msgid "non-lvalue array in conditional expression"
msgstr "Nicht-L-Wert-Feld in bedingtem Ausdruck"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "Vorzeichenloser und -behafteter Typ in bedingtem Ausdruck"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
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:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr "ISO-C verbietet bedingten Ausdruck zwischen %<void *%> und Funktionszeiger"
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "Zeigertyp passt nicht in bedingtem Ausdruck"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "Zeiger-/Ganzzahltyp passt nicht in bedingtem Ausdruck"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "Typ passt nicht in bedingtem Ausdruck"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr "linker Operand des Komma-Ausdrucks hat keinen Effekt"
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "Typkonvertierung gibt Feldtyp an"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "Typkonvertierung gibt Funktionstyp an"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO-C verbietet Typkonvertierung von Nicht-Skalar auf selben Typen"
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO-C verbietet Typkonvertierung auf union-Typ"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
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:3120
+#: c-typeck.c:3203
msgid "cast adds new qualifiers to function type"
msgstr "Typkonvertierung fügt neue Typqualifizierer zu Funktionstyp hinzu"
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "Typkonvertierung streicht Qualifizierer von Zeiger-Zieltyp"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "Typkonvertierung erfordert Ausrichtung des Zieltyps"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "Typkonvertierung von Zeiger auf Ganzzahl anderer Breite"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr "Typumwandlung von Funktionsaufruf des Typs %qT in unpassenden Typen %qT"
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "Typkonvertierung in Zeiger von Ganzzahl anderer Breite"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
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:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr "Dereferenzierung eines Type-Pun-Zeigers verletzt strict-aliasing-Regeln"
-#: c-typeck.c:3181
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr "Dereferenzierung eines Type-Pun-Zeigers könnte strict-aliasing-Regeln verletzen"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO-C verbietet Konvertierung von Funktionszeigern in Objektzeigertyp"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO-C verbietet Konvertierung von Objektzeigertypen in Funktionszeigertyp"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr "R-Wert kann nicht an Referenzparameter übergeben werden"
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr "Ãœbergabe des Arguments %d von %qE erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger"
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
msgid "assignment makes qualified function pointer from unqualified"
msgstr "Zuweisung erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger"
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
msgid "initialization makes qualified function pointer from unqualified"
msgstr "Initialisierung erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger"
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
msgid "return makes qualified function pointer from unqualified"
msgstr "return erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger"
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr "Ãœbergabe des Arguments %d von %qE entfernt Kennzeichner von Zeiger-Ziel-Typ"
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
msgid "assignment discards qualifiers from pointer target type"
msgstr "Zuweisung streicht Qualifizierer von Zeiger-Zieltyp"
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "initialization discards qualifiers from pointer target type"
msgstr "Initialisierung streicht Qualifizierer von Zeiger-Zieltyp"
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "return discards qualifiers from pointer target type"
msgstr "return streicht Qualifizierer von Zeiger-Zieltyp"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO-C verbietet Argumentkonvertierung in union-Typ"
-#: c-typeck.c:3628
+#: c-typeck.c:3714
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ISO-C verbietet Ãœbergabe des Arguments %d von %qE zwischen Funktionszeiger und %<void *%>"
-#: c-typeck.c:3631
+#: c-typeck.c:3717
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ISO-C verbietet Zuweisung zwischen Funktionszeiger und %<void *%>"
-#: c-typeck.c:3633
+#: c-typeck.c:3719
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ISO-C verbietet Initialisierung zwischen Funktionszeiger und %<void *%>"
-#: c-typeck.c:3635
+#: c-typeck.c:3721
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ISO-C verbietet return zwischen Funktionszeiger und %<void *%>"
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr "Zeigerziele bei Ãœbergabe des Arguments %d von %qE unterscheiden sich im Vorzeichenbesitz"
-#: c-typeck.c:3660
+#: c-typeck.c:3746
msgid "pointer targets in assignment differ in signedness"
msgstr "Zeigerziele in Zuweisung unterscheiden sich im Vorzeichenbesitz"
-#: c-typeck.c:3662
+#: c-typeck.c:3748
msgid "pointer targets in initialization differ in signedness"
msgstr "Zeigerziele in Initialisierung unterscheiden sich im Vorzeichenbesitz"
-#: c-typeck.c:3664
+#: c-typeck.c:3750
msgid "pointer targets in return differ in signedness"
msgstr "Zeigerziele in return unterscheiden sich im Vorzeichenbesitz"
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "Ãœbergabe des Arguments %d von %qE von inkompatiblem Zeigertyp"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
msgid "assignment from incompatible pointer type"
msgstr "Zuweisung von inkompatiblem Zeigertyp"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
msgid "initialization from incompatible pointer type"
msgstr "Initialisierung von inkompatiblem Zeigertyp"
-#: c-typeck.c:3692
+#: c-typeck.c:3778
msgid "return from incompatible pointer type"
msgstr "return von inkompatiblem Zeigertyp"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "ungültige Verwendung eines Nicht-L-Wert-Feldes"
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "Ãœbergabe des Arguments %d von %qE erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
msgid "assignment makes pointer from integer without a cast"
msgstr "Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
msgid "initialization makes pointer from integer without a cast"
msgstr "Initialisierung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
msgid "return makes pointer from integer without a cast"
msgstr "return erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "Ãœbergabe des Arguments %d von %qE erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
msgid "assignment makes integer from pointer without a cast"
msgstr "Zuweisung erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
msgid "initialization makes integer from pointer without a cast"
msgstr "Initialisierung erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
msgid "return makes integer from pointer without a cast"
msgstr "return erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "inkompatibler Typ für Argument %d von %qE"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
msgid "incompatible types in assignment"
msgstr "inkompatible Typen in Zuweisung"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
msgid "incompatible types in initialization"
msgstr "inkompatible Typen in Initialisierung"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
msgid "incompatible types in return"
msgstr "inkompatible Typen in return"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "traditionelles C lehnt automatische Gesamt-Initialisierung ab"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, c-format
msgid "(near initialization for %qs)"
msgstr "(nahe der Initialisierung für %qs)"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
msgid "array initialized from parenthesized string constant"
msgstr "Feld mit geklammerter Zeichenkettenkonstante initialisiert"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "char-Feld mit wide-Zeichenkette initialisiert"
-#: c-typeck.c:4116
+#: c-typeck.c:4202
msgid "wchar_t-array initialized from non-wide string"
msgstr "wchar_t-Feld mit Nicht-wide-Zeichenkette initialisiert"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "Initialisierungs-Zeichenkette für char-Feld ist zu lang"
-#: c-typeck.c:4140
+#: c-typeck.c:4226
msgid "array of inappropriate type initialized from string constant"
msgstr "Feld unpassenden Typs mit Zeichenkettenkonstante initialisiert"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr "Feld mit nicht konstantem Feldausdruck initialisiert"
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "Initialisierungs-Element ist zur Lade-Zeit nicht berechenbar"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "ungültige Initialisierung"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
msgid "opaque vector types cannot be initialized"
msgstr "opake Vektortypen können nicht initialisiert werden"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "zusätzliche geschweifte Klammern am Ende der Initialisierung"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "geschweifte Klammern fehlen um Initialisierung"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "geschweifte Klammern um Skalar-Initialisierung"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr "Initialisierung eines flexiblen Feld-Elements in geschachteltem Kontext"
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "Initialisierung eines flexiblen Feld-Elements"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "fehlende Initialisierung"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "leere Skalar-Initialisierung"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "zusätzliche Elemente in Skalar-Initialisierung"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "Initialisierungs-Bezeichner dürfen nicht geschachtelt werden"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "Feldindex in Nicht-Feld-Initialisierung"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "Feldname nicht in Datensatz- oder union-Initialisierung"
-#: c-typeck.c:5104
+#: c-typeck.c:5199
msgid "array index in initializer not of integer type"
msgstr "Feldindex in Initialisierung hat nicht Ganzzahltyp"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "nichtkonstanter Feldindex in Initialisierung"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr "Feldindex in Initialisierung überschreitet Feldgrenzen"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "leerer Indexbereich in Initialisierung"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "Feldindexbereich in Initialisierung überschreitet Feldgrenzen"
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, c-format
msgid "unknown field %qs specified in initializer"
msgstr "unbekanntes Feld %qs in Initialisierung angegeben"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "initialisiertes Feld mit Seiteneffekten überschrieben"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "Elementüberschreitung in char-Feld-Initialisierung"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "Elementüberschreitung in struct-Initialisierung"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr "nicht-statische Initialisierung eines flexiblen Feldelements"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "Elementüberschreitung in union-Initialisierung"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "traditionelles C lehnt Initialisierung von unions ab"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "Elementüberschreitung in Feldinitialisierung"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr "Elementüberschreitung in Vektorinitialisierung"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
-msgstr "Elementüberschreitung in Skalar-Initialisierung"
+msgstr "Elementüberschreitung in Skalarinitialisierung"
-#: c-typeck.c:6362
+#: c-typeck.c:6492
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO-C verbietet %<goto *expr;%>"
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "als %<noreturn%> deklarierte Funktion hat %<return%>-Anweisung"
-#: c-typeck.c:6383
+#: c-typeck.c:6513
msgid "%<return%> with no value, in function returning non-void"
msgstr "%<return%> ohne Wert in nicht-void zurückgebender Funktion"
-#: c-typeck.c:6390
+#: c-typeck.c:6520
msgid "%<return%> with a value, in function returning void"
msgstr "%<return%> mit Wert in void zurückgebender Funktion"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "Funktion liefert Adresse einer lokalen Variablen zurück"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
-msgstr "switch-Größe keine Ganzzahl"
+msgstr "switch-Größe ist keine Ganzzahl"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
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:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "case-Marke nicht innerhalb einer switch-Anweisung"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
msgid "%<default%> label not within a switch statement"
msgstr "%<default%>-Marke nicht innerhalb einer switch-Anweisung"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr "%Hes wird empfohlen, explizite geschweifte Klammern zu setzen, um mehrdeutiges %<else%> zu vermeiden"
-#: c-typeck.c:6631
+#: c-typeck.c:6761
msgid "%Hempty body in an if-statement"
msgstr "%Hleerer Körper in einer if-Anweisung"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
msgid "%Hempty body in an else-statement"
msgstr "%Hleerer Körper in einer else-Anweisung"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "continue-Anweisung nicht innerhalb einer Schleife"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr "%HAnweisung ohne Effekt"
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "Ausdrucksanweisung hat unvollständigen Typ"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "Division durch Null"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "Rechts-Schiebe-Weite ist negativ"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "Rechts-Schiebe-Weite >= Breite des Typs"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "Links-Schiebe-Weite ist negativ"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "Links-Schiebe-Weite >= Breite des Typs"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "Vergleich von Gleitkomma mit == oder != ist unsicher"
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr "ISO-C verbietet Vergleich von %<void *%> mit Funktionszeiger"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "in Vergleich verschiedener Zeigertypen fehlt Typkonvertierung"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "Vergleich zwischen Zeiger und Ganzzahl"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "Vergleich von vollständigen und unvollständigen Zeigern"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO-C verbietet geordnete Vergleiche zwischen Zeigern auf Funktionen"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "geordneter Vergleich von Zeiger mit Ganzzahlnull"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "Vergleich zwischen vorzeichenbehaftet und vorzeichenlos"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "Vergleich von weitergegebenem ~unsigned mit Konstante"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "Vergleich von weitergegebenem ~unsigned mit unsigned"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "Funktionsaufruf hat zusammengesetzten Wert"
@@ -3647,7 +3647,7 @@ msgstr "verify_flow_info: Falsche Kantenzahl %i->%i %i"
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: Nachfolgekante des Basis-Blocks %d ist beschädigt"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr "Falsche Summe der Zweig-Kanten nach unbedingtem Sprung %i"
@@ -3756,380 +3756,378 @@ msgstr "%s unterstützt nicht block_ends_with_condjump_p"
msgid "%s does not support flow_call_edges_add"
msgstr "%s unterstützt nicht flow_call_edges_add"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, 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:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr "Bb %d gehört nicht zur Schleife %d."
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, 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:1345
+#: cfgloop.c:1353
#, 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:1350
+#: cfgloop.c:1358
#, 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:1355
+#: cfgloop.c:1363
#, 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:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr "Kopf der Schleife %d gehört nicht direkt zu ihr."
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr "Falle der Schleife %d ist als Teil einer irreduziblen Region markiert."
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr "Basisblock %d sollte als irreduzibel markiert werden."
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr "Basisblock %d sollte nicht als irreduzibel markiert werden."
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr "Kante von %d nach %d sollte als irreduzibel markiert werden."
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr "Kante von %d nach %d sollte nicht als irreduzibel markiert werden."
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr "Falscher einzelner Ausgang %d->%d für Schleife %d aufgezeichnet."
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr "Richtiger Ausgang ist %d->%d."
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr "Einzelner Ausgang nicht aufgezeichnet für Schleife %d."
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr "Schleife %d sollte nicht einzelnen Ausgang (%d -> %d) haben."
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr "Ende-Befehl %d für Block %d nicht im Befehlsstrom gefunden"
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr "Befehl %d ist in mehreren Basisblöcken (%d und %d)"
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr "Kopf-Befehl %d für Block %d nicht im Befehlsstrom gefunden"
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr "verify_flow_info: REG_BR_PROB passt nicht zu cfg %wi %i"
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr "Fall-Through-Kante erreicht Abschnittsgrenze (bb %i)"
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, 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:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr "Zu viele abgehende Zweig-Kanten vom bb %i"
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr "Fallthru-Kante nach unbedingtem Sprung %i"
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr "Falsche Summe der Zweig-Kanten nach bedingtem Sprung %i"
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr "Ruf-Kanten für Nicht-Aufruf-Befehl im bb %i"
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr "Abnormale Kanten ohne Zweck in bb %i"
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr "Befehl %d innerhalb des Basis-Blockes %d, aber block_for_insn ist NULL"
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr "Befehl %d innerhalb des Basis-Blockes %d, aber block_for_insn ist %i"
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK fehlt für Block %d"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, 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:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr "im Basis-Block %d:"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr "Flusskontrollbefehl innerhalb eines Basis-Blockes"
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr "fehlende Sperre nach Block %i"
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, 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:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: Falsches »fallthru« %i->%i"
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr "falscher Befehl in »fallthru«-Kante"
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr "Basis-Blöcke sind nicht fortlaufend"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr "Befehl außerhalb eines Basis-Blockes"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr "»return« nicht gefolgt von Sperre"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr "Anzahl der bb-Vermerke in Befehlskette (%d) != n_basic_blocks (%d)"
-#: cgraph.c:231
+#: cgraph.c:278
msgid "function body not available"
msgstr "Funktionskörper nicht verfügbar"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr "redefinierte »extern inline«-Funktionen kommen nicht als »inline« in Betracht"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
msgid "function not considered for inlining"
msgstr "Funktion kommt nicht für »inline« in Betracht"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
msgid "function not inlinable"
msgstr "Funktion kann nicht »inline« sein"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr "%D nach Referenzierung in Assemblierung umbenannt"
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr "Gemeinsam genutztes call_expr:"
-#: cgraphunit.c:508
+#: cgraphunit.c:518
msgid "Edge points to wrong declaration:"
msgstr "Kante zeigt auf falsche Deklaration:"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr "Fehlende Aufrufgraph-Kante für call_expr:"
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr "Aux-Feld für Kante %s->%s gesetzt"
-#: cgraphunit.c:555
+#: cgraphunit.c:565
msgid "Inlined_to pointer is wrong"
msgstr "Inlined_to-Zeiger ist falsch"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr "Mehrere Inline-Aufrufer"
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
-msgstr ""
+msgstr "Inlined_to-Zeiger für Nicht-Inline-Aufrufer gesetzt"
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
-msgstr ""
+msgstr "Inlined_to-Zeiger gesetzt, aber keine Vorgänger gefunden"
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
-msgstr ""
+msgstr "Inlined_to-Zeiger verweist auf sich selbst"
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
-msgstr ""
+msgstr "Knoten in DECL_ASSEMBLER_NAME-Hash nicht gefunden"
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
-msgstr ""
+msgstr "Kante %s->%s hat keine passende call_expr"
-#: cgraphunit.c:613
-#, fuzzy
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
-msgstr "verify_flow_info gescheitert"
+msgstr "verify_cgraph gescheitert."
-#: cgraphunit.c:797
-#, fuzzy
+#: cgraphunit.c:807
msgid "failed to reclaim unneeded function"
-msgstr "Feld »%s« als Funktion deklariert"
+msgstr "Zurückfordern der nicht genötigten Funktion gescheitert"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr "--param large-function-growth: Limit erreicht"
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr "rekursives inline"
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr "--param max-inline-insns-single: Limit erreicht"
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr "--param max-inline-insns-single: Limit nach »inline« im Aufgerufenen erreicht"
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr "--param inline-unit-growth: Limit erreicht"
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
-msgstr ""
+msgstr "Knoten ohne freigegebenen Speicher gefunden."
-#: collect2.c:402 gcc.c:6744
-#, fuzzy, c-format
+#: collect2.c:402 gcc.c:6733
+#, c-format
msgid "internal gcc abort in %s, at %s:%d"
-msgstr "Abbruch in %s, bei %s:%d"
+msgstr "interner GCC-Abbruch in %s, bei %s:%d"
#: collect2.c:895
msgid "no arguments"
msgstr "Keine Argumente"
-#: collect2.c:1187
-#, fuzzy, c-format
+#: collect2.c:1194
+#, c-format
msgid "unknown demangling style '%s'"
-msgstr "unbekannter Maschinenzustand »%s«"
+msgstr "unbekannter Aufbereitungszustand »%s«"
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2-Version %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d Konstruktor(en) gefunden\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d Destruktor(en) gefunden\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d Rahmentabelle(n) gefunden\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s mit Signal %d [%s]%s beendet"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s gab Ende-Status %d zurück"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
-msgstr "[kann %s nicht finden]"
+msgstr "[%s kann nicht gefunden werden]"
-#: collect2.c:1565
-#, fuzzy, c-format
+#: collect2.c:1572
+#, c-format
msgid "cannot find '%s'"
-msgstr "kann »%s« nicht finden"
+msgstr "»%s« kann nicht gefunden werden"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "leite Standardausgabe um: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
-msgstr "[Verlasse %s]\n"
+msgstr "[Verlassen von %s]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4138,55 +4136,53 @@ msgstr ""
"\n"
"write_c_file - Ausgabename ist %s, Präfix ist %s\n"
-#: collect2.c:2042
-#, fuzzy
+#: collect2.c:2049
msgid "cannot find 'nm'"
-msgstr "kann »nm« nicht finden"
+msgstr "»nm« kann nicht gefunden werden"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "Pipe"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "init-Funktion im Objekt %s gefunden"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "fini-Funktion im Objekt %s gefunden"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
-#, fuzzy
+#: collect2.c:2216
msgid "cannot find 'ldd'"
-msgstr "kann »ldd« nicht finden"
+msgstr "»ldd« kann nicht gefunden werden"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4194,32 +4190,32 @@ msgstr ""
"\n"
"Ausgabe von ldd mit Konstruktoren/Destruktoren.\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "dynamische Abhängigkeit %s nicht gefunden"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "kann dynamische Abhängigkeit »%s« nicht öffnen"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: keine COFF-Datei"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "kann %s nicht als COFF-Datei öffnen"
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr "Bibliothek lib%s nicht gefunden"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4230,7 +4226,7 @@ msgstr ""
";; %d Erfolge.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4259,7 +4255,7 @@ msgstr "Konvertierung in unvollständigen Typen"
#: convert.c:660 convert.c:736
msgid "can't convert between vector values of different size"
-msgstr "kann nicht zwischen Vektorwerten verschiedener Größen konvertieren"
+msgstr "zwischen Vektorwerten verschiedener Größen kann nicht konvertiert werden"
#: convert.c:666
msgid "aggregate value used where an integer was expected"
@@ -4275,17 +4271,16 @@ msgstr "zusammengesetzer Wert verwendet, wo »complex« erwartet wurde"
#: convert.c:742
msgid "can't convert value to a vector"
-msgstr "kann Wert nicht in Vektor konvertieren"
+msgstr "Wert kann nicht in Vektor konvertiert werden"
#: coverage.c:168
-#, fuzzy, c-format
+#, c-format
msgid "%qs is not a gcov data file"
-msgstr "»%s« ist keine gcov-Datei"
+msgstr "%qs ist keine gcov-Datei"
#: coverage.c:179
-#, fuzzy
msgid "%qs is version %q.*s, expected version %q.*s"
-msgstr "»%s« hat Version »%.4s«, Version »%.4s« erwartet"
+msgstr "%qs hat Version %q.*s, Version %q.*s erwartet"
#: coverage.c:259 coverage.c:267
#, c-format
@@ -4308,24 +4303,24 @@ msgid "cannot merge separate %s counters for function %u"
msgstr "separate %s Zähler für die Funktion %u können nicht verschmolzen werden"
#: coverage.c:296
-#, fuzzy, c-format
+#, c-format
msgid "%qs has overflowed"
-msgstr "»%s« übergelaufen"
+msgstr "%qs übergelaufen"
#: coverage.c:296
-#, fuzzy, c-format
+#, c-format
msgid "%qs is corrupted"
-msgstr "»%s« ist beschädigt"
+msgstr "%qs ist beschädigt"
#: coverage.c:333
-#, fuzzy, c-format
+#, c-format
msgid "no coverage for function %qs found."
-msgstr "keine Überdeckung für Funktion »%s« gefunden."
+msgstr "keine Überdeckung für Funktion %qs gefunden."
#: coverage.c:341 coverage.c:349
-#, fuzzy, c-format
+#, c-format
msgid "coverage mismatch for function %qs while reading counter %qs."
-msgstr "Überdeckung passt nicht bei Funktion »%s« beim Lesen des Zählers »%s«."
+msgstr "Überdeckung passt nicht bei Funktion %qs beim Lesen des Zählers %qs."
#: coverage.c:532
#, c-format
@@ -4333,9 +4328,9 @@ msgid "cannot open %s"
msgstr "Es ist nicht möglich, »%s« zu öffnen"
#: coverage.c:567
-#, fuzzy, c-format
+#, c-format
msgid "error writing %qs"
-msgstr "Fehler beim Schreiben der Datei »%s«"
+msgstr "Fehler beim Schreiben von %qs"
#: cppspec.c:106
#, c-format
@@ -4346,10 +4341,10 @@ msgstr "»%s« ist keine gültige Präprozessoroption"
msgid "too many input files"
msgstr "zu viele Eingabedateien"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
-msgstr ";; Bearbeite Block von %d bis %d, %d Sets.\n"
+msgstr ";; Bearbeitung von Block von %d bis %d, %d Sets.\n"
#: diagnostic.c:168
#, c-format
@@ -4357,9 +4352,8 @@ msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr "%s:%d: durch frühere Fehler verwirrt, Abbruch\n"
#: diagnostic.c:228
-#, fuzzy
msgid "compilation terminated due to -Wfatal-errors.\n"
-msgstr "Kompilierung beendet.\n"
+msgstr "Kompilierung wegen -Wfatal-errors beendet.\n"
#: diagnostic.c:237
#, c-format
@@ -4389,9 +4383,9 @@ msgid "in %s, at %s:%d"
msgstr "in %s, bei %s:%d"
#: dominance.c:834
-#, fuzzy, c-format
+#, c-format
msgid "dominator of %d status unknown"
-msgstr "Herrscher über %d sollte %d sein, nicht %d"
+msgstr "unbekannter Status für Herrscher über %d"
#: dominance.c:836
#, c-format
@@ -4401,48 +4395,39 @@ msgstr "Herrscher über %d sollte %d sein, nicht %d"
#: dominance.c:848
#, c-format
msgid "ENTRY does not dominate bb %d"
-msgstr ""
+msgstr "ENTRY dominiert nicht bb %d"
#: dwarf2out.c:3388
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s nicht implementiert\n"
-#: emit-rtl.c:1215
-msgid "can't access real part of complex value in hard register"
-msgstr "kann nicht auf Realteil des komplexen Wertes im festen Register zugreifen"
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr "kann nicht auf Imaginärteil des komplexen Wertes im festen Register zugreifen"
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr "ungültige gemeinsame rtl-Benutzung in Befehl gefunden"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr "Gemeinsames rtx"
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
-msgstr ""
+msgstr "Interner Konsistenzfehler"
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: emit_insn verwendet, wo emit_jump_insn erforderlich:\n"
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "Abbruch in %s, bei %s:%d"
#: except.c:340
msgid "exception handling disabled, use -fexceptions to enable"
-msgstr "Ausnahmebehandlung ausgeschaltet, benutzen Sie -fexeptions zum Anschalten"
+msgstr "Ausnahmebehandlung ausgeschaltet, benutzen Sie -fexeptions zum Einschalten"
#: except.c:2577
-#, fuzzy
msgid "argument of %<__builtin_eh_return_regno%> must be constant"
msgstr "Argument für »__builtin_eh_return_regno« muss konstant sein"
@@ -4450,7 +4435,7 @@ msgstr "Argument für »__builtin_eh_return_regno« muss konstant sein"
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return für dieses Ziel nicht unterstützt"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "Kellergrenzen nicht für dieses Ziel unterstützt"
@@ -4463,7 +4448,6 @@ msgid "could not split insn"
msgstr "Befehl kann nicht aufgeteilt werden"
#: final.c:2851
-#, fuzzy
msgid "invalid 'asm': "
msgstr "ungültiges »asm«: "
@@ -4490,7 +4474,7 @@ msgid "invalid %%-code"
msgstr "ungültiger %%-Code"
#: final.c:3203
-#, fuzzy, c-format
+#, c-format
msgid "'%%l' operand isn't a label"
msgstr "»%%l«-Operand ist keine Marke"
@@ -4500,147 +4484,139 @@ msgstr "»%%l«-Operand ist keine Marke"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "Gleitkommakonstante falsch benutzt"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "ungültiger Ausdruck als Operand"
-#: flow.c:495 flow.c:519 flow.c:541
-#, fuzzy
+#: flow.c:494 flow.c:518 flow.c:540
msgid "internal consistency failure"
-msgstr "interner Abbruch des gcc"
+msgstr "internes Konsistenzproblem"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Versuch, Prolog/Epilog-Befehl zu löschen"
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "Vergleich ist immer %d"
-#: fold-const.c:4899
-#, fuzzy
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr "»oder« nicht passender Ungleichheits-Tests ist immer 1"
-#: fold-const.c:4904
-#, fuzzy
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
-msgstr "»und« gegenseitig ausschließender Gleichheits-Tests ist immer 0"
+msgstr "»und« sich gegenseitig ausschließender Gleichheits-Tests ist immer 0"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr "Faltungstest: ursprünglicher Baum durch Faltung geändert"
-#: function.c:831 varasm.c:1569
-#, fuzzy
+#: function.c:832 varasm.c:1584
msgid "%Jsize of variable %qD is too large"
-msgstr "%JGröße der Variable »%D« ist zu hoch"
+msgstr "%JGröße der Variable %qD ist zu hoch"
-#: function.c:1442
-#, fuzzy
+#: function.c:1443
msgid "impossible constraint in %<asm%>"
msgstr "unmögliche Bedingung in »asm«"
-#: function.c:3495
-#, fuzzy
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%JVariable »%D« könnte von »longjmp« oder »vfork« zerstört werden"
+msgstr "%JVariable %qD könnte von »longjmp« oder »vfork« zerstört werden"
-#: function.c:3516
-#, fuzzy
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%JArgument »%D« könnte von »longjmp« oder »vfork« zerstört werden"
+msgstr "%JArgument %qD könnte von »longjmp« oder »vfork« zerstört werden"
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "Funktion gibt Aggregat zurück"
-#: function.c:4249
-#, fuzzy
+#: function.c:4368
msgid "%Junused parameter %qD"
-msgstr "%Jnicht benutzter Parameter »%D«"
+msgstr "%Jnicht benutzter Parameter %qD"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "mehrdeutige Abkürzung %s"
-#: gcc.c:1269
-#, fuzzy, c-format
+#: gcc.c:1264
+#, c-format
msgid "incomplete '%s' option"
msgstr "unvollständige »%s«-Option"
-#: gcc.c:1280
-#, fuzzy, c-format
+#: gcc.c:1275
+#, c-format
msgid "missing argument to '%s' option"
msgstr "fehlendes Argument für »%s«-Option"
-#: gcc.c:1293
-#, fuzzy, c-format
+#: gcc.c:1288
+#, c-format
msgid "extraneous argument to '%s' option"
-msgstr "zusätzliches (belangloses) Argument für »%s«-Option"
+msgstr "belangloses Argument für »%s«-Option"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
-msgstr "Benutze eingebaute Spezifikationen.\n"
+msgstr "Es werden eingebaute Spezifikationen verwendet.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr ""
-"Setze Spezifikation %s auf '%s'\n"
+"Spezifikation %s wird auf '%s' gesetzt\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
-msgstr "Lese Spezifikationen von %s\n"
+msgstr "Lesen der Spezifikationen von %s\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "falsche %%include-Syntax für Spezifikationen nach %ld Zeichen"
-#: gcc.c:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr "konnte Spezifikationsdatei %s nicht finden\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "falsche %%rename-Syntax für Spezifikationen nach %ld Zeichen"
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "keine %s-Spezifikation zum Umbenennen gefunden"
-#: gcc.c:2116
+#: gcc.c:2106
#, 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:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
-msgstr "benenne Spezifikation %s nach %s um\n"
+msgstr "Spezifikation wird %s nach %s umbenannt\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -4649,32 +4625,32 @@ msgstr ""
"Spezifikation ist '%s'\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "Spezifikation: unbekannter %%-Befehl nach %ld Zeichen"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "Fehler in Spezifikationsdatei nach %ld Zeichen"
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "Spezifikationsdatei hat keine Spezifikation zum Binden"
-#: gcc.c:2635
-#, fuzzy, c-format
+#: gcc.c:2625
+#, c-format
msgid "system path '%s' is not absolute"
-msgstr "Reservierung »%s« ist unbenutzt"
+msgstr "System-Pfad »%s« ist nicht absolut"
-#: gcc.c:2698
+#: gcc.c:2688
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:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -4682,7 +4658,7 @@ msgstr ""
"\n"
"Fortfahren? (y oder n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -4695,69 +4671,69 @@ msgstr ""
"sind an de@li.org zu melden.\n"
"Gehen Sie gemäß den Hinweisen in %s vor."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Aufruf: %s [Optionen] Datei...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Optionen:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Diese Informationen anzeigen\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help Zielspezifische Kommandozeilenoptionen anzeigen\n"
-#: gcc.c:3040
+#: gcc.c:3030
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:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Alle eingebauten Spezifikationszeichenketten anzeigen\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Compilerversion anzeigen\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Zielprozessor des Compilers anzeigen\n"
-#: gcc.c:3044
+#: gcc.c:3034
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:3045
+#: gcc.c:3035
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:3046
+#: gcc.c:3036
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:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -4765,106 +4741,105 @@ msgstr ""
" -print-multi-lib Abbildung zwischen Kommandozeilenoptionen und\n"
" mehreren Suchverzeichnissen für Bibliotheken anzeigen\n"
-#: gcc.c:3052
+#: gcc.c:3042
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:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<Optionen> Komma-getrennte <Optionen> an Assembler übergeben\n"
-#: gcc.c:3054
+#: gcc.c:3044
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:3055
+#: gcc.c:3045
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<Optionen> Komma-getrennte <Optionen> an Linker übergeben\n"
-#: gcc.c:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xassembler <arg> <arg> an den Assembler übergeben\n"
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xpreprocessor <arg> <arg> an den Präprozessor übergeben\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> <arg> an den Linker übergeben\n"
-#: gcc.c:3059
-#, fuzzy
+#: gcc.c:3049
msgid " -combine Pass multiple source files to compiler at once\n"
-msgstr " -o <Datei> Ausgabe in <Datei> schreiben\n"
+msgstr " -combine Mehrere Quelldateien auf einmal an Compiler übergeben\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Temporäre Dateien nicht löschen\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Pipes statt temporärer Dateien verwenden\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Zeit für Ausführung jedes Subprozesses stoppen\n"
-#: gcc.c:3063
+#: gcc.c:3053
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:3064
+#: gcc.c:3054
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:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
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:3067
+#: gcc.c:3057
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr " -V <Version> GCC <Version> laufen lassen, falls installiert\n"
-#: gcc.c:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Vom Compiler aufgerufene Programme anzeigen\n"
-#: gcc.c:3069
+#: gcc.c:3059
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:3070
+#: gcc.c:3060
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:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Nur kompilieren, nicht assemblieren oder binden\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Nur kompilieren und assemblieren, aber nicht binden\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <Datei> Ausgabe in <Datei> schreiben\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -4877,7 +4852,7 @@ msgstr ""
" verhalten, die Sprache aufgrund der Dateinamens-\n"
" erweiterung zu vermuten\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -4891,28 +4866,28 @@ msgstr ""
" Um andere Optionen an diese Prozesse zu übergeben, müssen die Optionen\n"
" -W<Buchstabe> verwendet werden.\n"
-#: gcc.c:3201
-#, fuzzy, c-format
+#: gcc.c:3191
+#, c-format
msgid "'-%c' option must have argument"
msgstr "Die Option »-%c« muss ein Argument haben"
-#: gcc.c:3223
-#, fuzzy, c-format
+#: gcc.c:3213
+#, c-format
msgid "couldn't run '%s': %s"
-msgstr "konnte »%s« nicht ausführen: %s"
+msgstr "»%s« nicht ausgeführt werden: %s"
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr "(C)"
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -4923,184 +4898,176 @@ msgstr ""
"gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE.\n"
"\n"
-#: gcc.c:3512
-#, fuzzy
+#: gcc.c:3502
msgid "argument to '-Xlinker' is missing"
msgstr "Argument für »-Xlinker« fehlt"
-#: gcc.c:3520
-#, fuzzy
+#: gcc.c:3510
msgid "argument to '-Xpreprocessor' is missing"
msgstr "Argument für »-Xpreprocessor« fehlt"
-#: gcc.c:3527
-#, fuzzy
+#: gcc.c:3517
msgid "argument to '-Xassembler' is missing"
msgstr "Argument für »-Xassembler« fehlt"
-#: gcc.c:3534
-#, fuzzy
+#: gcc.c:3524
msgid "argument to '-l' is missing"
msgstr "Argument für »-l« fehlt"
-#: gcc.c:3555
-#, fuzzy
+#: gcc.c:3545
msgid "argument to '-specs' is missing"
msgstr "Argument für »-specs« fehlt"
-#: gcc.c:3569
-#, fuzzy
+#: gcc.c:3559
msgid "argument to '-specs=' is missing"
msgstr "Argument für »-specs=« fehlt"
-#: gcc.c:3606
-#, fuzzy, c-format
+#: gcc.c:3596
+#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr "»-%c« muss am Anfang der Kommandozeile stehen"
-#: gcc.c:3615
-#, fuzzy
+#: gcc.c:3605
msgid "argument to '-B' is missing"
msgstr "Argument für »-B« fehlt"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "Warnung: -pipe ignoriert, da -save-temps angegeben"
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr "Warnung: -pipe ignoriert, da -time angegeben"
-#: gcc.c:4004
-#, fuzzy
+#: gcc.c:3994
msgid "argument to '-x' is missing"
msgstr "Argument für »-x« fehlt"
-#: gcc.c:4032
-#, fuzzy, c-format
+#: gcc.c:4022
+#, c-format
msgid "argument to '-%s' is missing"
msgstr "Argument für »-%s« fehlt"
-#: gcc.c:4093
-#, fuzzy, c-format
+#: gcc.c:4083
+#, 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:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
-msgstr ""
+msgstr "Schalter '%s' beginnt nicht mit '-'"
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
-msgstr ""
+msgstr "Spezifikation '%s' ist ungültig"
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
-#, fuzzy, c-format
+#: gcc.c:4726
+#, c-format
msgid "spec '%s' has invalid '%%0%c'"
-msgstr "Bitfeld »%s« hat ungültigen Typen"
+msgstr "Spezifikation »%s« hat ungültiges »%%0%c«"
-#: gcc.c:4933
-#, fuzzy, c-format
+#: gcc.c:4923
+#, c-format
msgid "spec '%s' has invalid '%%W%c"
-msgstr "Bitfeld »%s« hat ungültigen Typen"
+msgstr "Spezifikation »%s« hat ungültiges »%%W%c«"
-#: gcc.c:4964
-#, fuzzy, c-format
+#: gcc.c:4954
+#, c-format
msgid "spec '%s' has invalid '%%x%c'"
-msgstr "Bitfeld »%s« hat ungültigen Typen"
+msgstr "Spezifikation »%s« hat ungültiges »%%x%c«"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "Spezifikationsfehler: »%%*« wurde nicht durch Mustererkennung initialisiert"
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "Warnung: Verwendung des veralteten Operators %%[ in Spezifikation"
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
-msgstr "Verarbeite Spezifikation %c%s%c, welche »%s« ist\n"
+msgstr "Spezifikation %c%s%c wird verarbeitet, welche »%s« ist\n"
-#: gcc.c:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "Spezifikationsfehler: nicht erkannte Option »%c«"
-#: gcc.c:5345
-#, fuzzy, c-format
+#: gcc.c:5318
+#, c-format
msgid "unknown spec function '%s'"
msgstr "unbekannte Spezifikationsfunktion »%s«"
-#: gcc.c:5364
-#, fuzzy, c-format
+#: gcc.c:5337
+#, c-format
msgid "error in args to spec function '%s'"
msgstr "Fehler in Argumenten für Spezifikationsfunktion »%s«"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr "schlechter Name für Spezifikationsfunktion"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr "keine Argumente für Spezifikationsfunktion"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr "schlechte Argumente für Spezifikationsfunktion"
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
-msgstr ""
+msgstr "geschweift geklammertes '%s' ist bei '%c' ungültig"
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
-msgstr ""
+msgstr "geschweift geklammerter Körper '%s' ist ungültig"
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_SUFFIX_SPEC."
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr "Spezifikationsfehler: mehr als ein Argument für SYSROOT_HEADERS_SUFFIX_SPEC."
-#: gcc.c:6274
-#, fuzzy, c-format
+#: gcc.c:6263
+#, c-format
msgid "unrecognized option '-%s'"
msgstr "nicht erkannte Option »-%s«"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "installiere: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "Programme: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "Bibliotheken: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5111,74 +5078,79 @@ msgstr ""
"folgenden Hinweise; Fehler in der deutschen Ãœbersetzung sind an de@li.org\n"
"zu melden:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, c-format
+msgid "Target: %s\n"
+msgstr "Ziel: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "Konfiguriert mit: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Thread-Modell: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc-Version %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
-msgstr "gcc-Treiberversion %s führt gcc Version %s aus\n"
+msgstr "gcc-Treiberversion %s führt GCC-Version %s aus\n"
-#: gcc.c:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "keine Eingabedateien"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s-Compiler ist auf diesem System nicht installiert"
-#: gcc.c:6470
-#, fuzzy, c-format
+#: gcc.c:6460
+#, c-format
msgid "spec '%s' is invalid"
-msgstr "Parameter »%s« ist initialisiert"
+msgstr "Spezifikation »%s« ist ungültig"
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr "%s: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht"
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "Sprache %s nicht erkannt"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
-#, fuzzy, c-format
+#: gcc.c:6927
+#, c-format
msgid "multilib spec '%s' is invalid"
-msgstr "Templateargument %d ist ungültig"
+msgstr "Multilib-Spezifikation »%s« ist ungültig"
-#: gcc.c:7130
-#, fuzzy, c-format
+#: gcc.c:7119
+#, c-format
msgid "multilib exclusions '%s' is invalid"
-msgstr "in Union »%T« werden mehrere Felder initialisiert"
+msgstr "Multilib-Ausschlüsse »%s« sind ungültig"
-#: gcc.c:7188 gcc.c:7329
-#, fuzzy, c-format
+#: gcc.c:7177 gcc.c:7318
+#, c-format
msgid "multilib select '%s' is invalid"
-msgstr "Templateargument %d ist ungültig"
+msgstr "Multilib-select »%s« ist ungültig"
-#: gcc.c:7367
-#, fuzzy, c-format
+#: gcc.c:7356
+#, c-format
msgid "multilib exclusion '%s' is invalid"
-msgstr "in Union »%T« werden mehrere Felder initialisiert"
+msgstr "Multilib-Ausschluss »%s« ist ungültig"
#: gcov.c:385
msgid ""
@@ -5286,24 +5258,24 @@ msgid "\n"
msgstr "\n"
#: gcov.c:540
-#, fuzzy, c-format
+#, c-format
msgid "%s:creating '%s'\n"
-msgstr "%s: Erzeugen von »%s«\n"
+msgstr "%s: »%s« wird erzeugt\n"
#: gcov.c:544
-#, fuzzy, c-format
+#, c-format
msgid "%s:error writing output file '%s'\n"
msgstr "%s: Fehler beim Schreiben der Ausgabedatei »%s«\n"
#: gcov.c:549
-#, fuzzy, c-format
+#, c-format
msgid "%s:could not open output file '%s'\n"
-msgstr "%s: Ausgabedatei %s konnte nicht geöffnet werden\n"
+msgstr "%s: Ausgabedatei »%s« konnte nicht geöffnet werden\n"
#: gcov.c:700
#, c-format
msgid "%s:cannot open graph file\n"
-msgstr "%s: Graph-Datei kann nicht geöffnet werden\n"
+msgstr "%s: Graphen-Datei kann nicht geöffnet werden\n"
#: gcov.c:706
#, c-format
@@ -5311,12 +5283,12 @@ msgid "%s:not a gcov graph file\n"
msgstr "%s: keine gcov-Graph-Datei\n"
#: gcov.c:719
-#, fuzzy, c-format
+#, c-format
msgid "%s:version '%.4s', prefer '%.4s'\n"
msgstr "%s: Version »%.4s«, aber »%.4s« wird bevorzugt\n"
#: gcov.c:771
-#, fuzzy, c-format
+#, c-format
msgid "%s:already seen blocks for '%s'\n"
msgstr "%s: bereits gesehene Blöcke für »%s«\n"
@@ -5336,7 +5308,7 @@ msgid "%s:not a gcov data file\n"
msgstr "%s: keine gcov-Datei\n"
#: gcov.c:981
-#, fuzzy, c-format
+#, c-format
msgid "%s:version '%.4s', prefer version '%.4s'\n"
msgstr "%s: Version »%.4s«, aber Version »%.4s« wird bevorzugt\n"
@@ -5346,14 +5318,14 @@ msgid "%s:stamp mismatch with graph file\n"
msgstr "%s: Marke passt nicht zur Graph-Datei\n"
#: gcov.c:1013
-#, fuzzy, c-format
+#, c-format
msgid "%s:unknown function '%u'\n"
msgstr "%s: unbekannte Funktion »%u«\n"
#: gcov.c:1026
-#, fuzzy, c-format
+#, c-format
msgid "%s:profile mismatch for '%s'\n"
-msgstr "%s: Profil passt nicht für `%s'\n"
+msgstr "%s: Profil passt nicht für »%s«\n"
#: gcov.c:1045
#, c-format
@@ -5361,27 +5333,27 @@ msgid "%s:overflowed\n"
msgstr "%s: übergelaufen\n"
#: gcov.c:1069
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' lacks entry and/or exit blocks\n"
msgstr "%s: Eintrag und/oder Exit-Blöcke fehlen in »%s«\n"
#: gcov.c:1074
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' has arcs to entry block\n"
msgstr "%s: »%s« hat Bögen zum Eintrittsblock\n"
#: gcov.c:1082
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' has arcs from exit block\n"
msgstr "%s: »%s« hat Bögen vom Eintrittsblock\n"
#: gcov.c:1290
-#, fuzzy, c-format
+#, c-format
msgid "%s:graph is unsolvable for '%s'\n"
msgstr "%s: Graph ist für »%s« unlösbar\n"
#: gcov.c:1370
-#, fuzzy, c-format
+#, c-format
msgid "%s '%s'\n"
msgstr "%s: »%s«\n"
@@ -5391,9 +5363,8 @@ msgid "Lines executed:%s of %d\n"
msgstr "%s von %d Zeilen ausgeführt\n"
#: gcov.c:1377
-#, fuzzy
msgid "No executable lines\n"
-msgstr "Keine ausführbaren Zeilen"
+msgstr "Keine ausführbaren Zeilen\n"
#: gcov.c:1383
#, c-format
@@ -5419,7 +5390,7 @@ msgid "No calls\n"
msgstr "Keine Aufrufe\n"
#: gcov.c:1540
-#, fuzzy, c-format
+#, c-format
msgid "%s:no lines for '%s'\n"
msgstr "%s: keine Zeilen für »%s«\n"
@@ -5459,32 +5430,32 @@ msgid "%s:cannot open source file\n"
msgstr "%s: Quelldatei kann nicht geöffnet werden\n"
#: gcov.c:1799
-#, fuzzy, c-format
+#, c-format
msgid "%s:source file is newer than graph file '%s'\n"
-msgstr "%s: Quelldatei ist neuer als Graph-Datei »%s«\n"
+msgstr "%s: Quelldatei ist neuer als Graphen-Datei »%s«\n"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr "GCSE ausgeschaltet"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr "Sprungumgehungen ausgeschaltet"
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "%s: %d Basis-Blöcke und %d Kanten/Basis-Blöcke"
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "%s: %d Basis-Blöcke und %d Register"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, c-format
msgid "can't write PCH file: %m"
@@ -5501,7 +5472,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "Auffüllung für PCH-Datei kann nicht geschrieben werden: %m"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, c-format
msgid "can't read PCH file: %m"
msgstr "PCH-Datei kann nicht gelesen werden: %m"
@@ -5510,41 +5481,40 @@ msgstr "PCH-Datei kann nicht gelesen werden: %m"
msgid "had to relocate PCH"
msgstr "PCH musste verschoben werden"
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr "/dev/zero öffnen: %m"
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
msgid "can't write PCH file"
msgstr "PCH-Datei kann nicht geschrieben werden"
#: gimple-low.c:203
-#, fuzzy
msgid "unexpected node"
-msgstr "unerwarteter Operand"
+msgstr "unerwarteter Knoten"
-#: gimplify.c:3137
-#, fuzzy, c-format
+#: gimplify.c:3317
+#, c-format
msgid "invalid lvalue in asm output %d"
-msgstr "ungültiger L-Wert in asm-Anweisung"
+msgstr "ungültiger L-Wert in asm-Ausgabe %d"
-#: gimplify.c:3185
-#, fuzzy, c-format
+#: gimplify.c:3364
+#, c-format
msgid "memory input %d is not directly addressable"
-msgstr "Ausgabezahl %d nicht direkt adressierbar"
+msgstr "Speichereingabe %d ist nicht direkt adressierbar"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
-msgstr ""
+msgstr "Gimplifikation gescheitert"
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, c-format
msgid "%s cannot be used in asm here"
msgstr "%s kann nicht hier in »asm« verwendet werden"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, c-format
msgid "can't open %s: %m"
msgstr "%s kann nicht geöffnet werden: %m"
@@ -5557,26 +5527,26 @@ msgstr "fix_sched_param: unbekannter Parameter: %s"
#. Opening quotation mark.
#: intl.c:58
msgid "`"
-msgstr ""
+msgstr "»"
#. Closing quotation mark.
#: intl.c:61
msgid "'"
-msgstr ""
+msgstr "«"
#: langhooks.c:516
msgid "At top level:"
msgstr "Auf höchster Ebene:"
#: langhooks.c:521
-#, fuzzy, c-format
+#, c-format
msgid "In member function %qs:"
-msgstr "In Funktion »%s«:"
+msgstr "In Elementfunktion %qs:"
#: langhooks.c:525
-#, fuzzy, c-format
+#, c-format
msgid "In function %qs:"
-msgstr "In Funktion »%s«:"
+msgstr "In Funktion %qs:"
#. What to print when a switch has no documentation.
#: opts.c:89
@@ -5604,72 +5574,72 @@ msgstr "Argument von »%s« sollte eine nicht-negative Ganzzahl sein"
msgid "unrecognized command line option \"%s\""
msgstr "nicht erkannte Kommandozeilenoption »%s«"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized wird nicht ohne -O unterstützt"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
-msgstr ""
+msgstr "-freorder-blocks-and-partition funktioniert nicht mit Ausnahmen"
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
-msgstr ""
+msgstr "-freorder-blocks-and-partition funktioniert (momentan) nicht mit -g"
-#: opts.c:820
-#, fuzzy, c-format
+#: opts.c:821
+#, c-format
msgid "structure alignment must be a small power of two, not %d"
-msgstr "Ausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
+msgstr "Strukturausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
-#: opts.c:885
-#, fuzzy, c-format
+#: opts.c:886
+#, c-format
msgid "unrecognised visibility value \"%s\""
-msgstr "unbekannter Registername: \"%s\""
+msgstr "unbekannter Sichtbarkeitswert \"%s\""
-#: opts.c:937
+#: opts.c:938
#, c-format
msgid "unrecognized register name \"%s\""
msgstr "unbekannter Registername: \"%s\""
-#: opts.c:957
+#: opts.c:962
#, c-format
msgid "unknown tls-model \"%s\""
msgstr "unbekanntes tls-Modell »%s«"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr "%s: »--param«-Argumente sollten von der Form NAME=VALUE sein"
-#: opts.c:1037
-#, fuzzy, c-format
+#: opts.c:1042
+#, c-format
msgid "invalid --param value %qs"
-msgstr "ungültiger Wert für --param: »%s«"
+msgstr "ungültiger Wert für --param: %qs"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr "Zielsystem unterstützt keine Testausgaben"
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "Testformat »%s« steht in Konflikt mit vorheriger Auswahl"
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "Testausgabestufe »%s« nicht erkannt"
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr "Testausgabestufe »%s« ist zu groß"
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr "Die folgenden Optionen sind sprach-unabhängig:\n"
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
@@ -5678,17 +5648,27 @@ msgstr ""
"Das %s-Frontend erkennt die folgenden Optionen:\n"
"\n"
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr "Die Option »--param« erkennt die folgenden Parameter:\n"
+#: params.c:72
+#, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "minimaler Wert des Parameters %qs ist %u"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "maximaler Wert des Parameters %qs ist %u"
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
-#, fuzzy, c-format
+#: params.c:86
+#, c-format
msgid "invalid parameter %qs"
-msgstr "ungültiger Parameter »%s«"
+msgstr "ungültiger Parameter %qs"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr "Ladeoptimierung für Zweig-Zielregister ist nicht dafür vorgesehen, mehrfach zu laufen"
@@ -5716,7 +5696,7 @@ msgid "corrupted profile info: number of executions for edge %d-%d thought to be
msgstr "Info zum beschädigten Profil: Anzahl der Ausführungen der Kante »%d-%d« sollte %i sein"
#: protoize.c:582
-#, fuzzy, c-format
+#, c-format
msgid "%s: error writing file '%s': %s\n"
msgstr "%s: Fehler beim Schreiben der Datei »%s«: %s\n"
@@ -5731,19 +5711,19 @@ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: Aufruf '%s [ -VqfnkNlgC ] [ -B <VerzName> ] [ Dateiname ... ]'\n"
#: protoize.c:735
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no read access for file '%s'\n"
msgstr "%s: Warnung: kein Leserecht für Datei »%s«\n"
#: protoize.c:743
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no write access for file '%s'\n"
msgstr "%s: Warnung: kein Schreibrecht für Datei »%s«\n"
#: protoize.c:751
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: no write access for dir containing '%s'\n"
-msgstr "%s: Warnung: kein Schreibrecht für Verzeichnis von »%s«\n"
+msgstr "%s: Warnung: kein Schreibrecht für Verzeichnis mit »%s«\n"
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
@@ -5756,7 +5736,7 @@ msgstr "%s: ungültiger Dateiname: %s\n"
#: protoize.c:1286
#, c-format
msgid "%s: %s: can't get status: %s\n"
-msgstr "%s: %s: kann Status nicht ermitteln: %s\n"
+msgstr "%s: %s: Status kann nicht ermittelt werden: %s\n"
#: protoize.c:1307
#, c-format
@@ -5768,12 +5748,12 @@ msgstr ""
"%s: kritischer Fehler: Datei mit Hilfsinformationen beschädigt in Zeile %d\n"
#: protoize.c:1636
-#, fuzzy, c-format
+#, 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:1891
-#, fuzzy, c-format
+#, c-format
msgid "%s: compiling '%s'\n"
msgstr "%s: »%s« wird kompiliert\n"
@@ -5793,47 +5773,47 @@ msgid "%s: %s exited with status %d\n"
msgstr "%s: %s beendet mit Status %d\n"
#: protoize.c:1976
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: missing SYSCALLS file '%s'\n"
msgstr "%s: Warnung: SYSCALLS-Datei »%s« fehlt\n"
#: protoize.c:1985 protoize.c:2014
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't read aux info file '%s': %s\n"
-msgstr "%s: Datei mit Hilfsinformationen »%s« kann nicht gelesen werden: %s\n"
+msgstr "%s: Datei mit Zusatzinformationen »%s« kann nicht gelesen werden: %s\n"
#: protoize.c:2030 protoize.c:2058
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't get status of aux info file '%s': %s\n"
-msgstr "%s: Status der Datei mit Hilfsinformationen »%s« kann nicht ermittelt werden: %s\n"
+msgstr "%s: Status der Datei mit Zusatzinformationen »%s« kann nicht ermittelt werden: %s\n"
#: protoize.c:2086
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't open aux info file '%s' for reading: %s\n"
-msgstr "%s: Datei mit Hilfsinformationen »%s« kann nicht zum Lesen geöffnet werden: %s\n"
+msgstr "%s: Datei mit Zusatzinformationen »%s« kann nicht zum Lesen geöffnet werden: %s\n"
#: protoize.c:2104
-#, fuzzy, c-format
+#, c-format
msgid "%s: error reading aux info file '%s': %s\n"
-msgstr "%s: Fehler beim Lesen der Datei mit Hilfsinformationen »%s«: %s\n"
+msgstr "%s: Fehler beim Lesen der Datei mit Zusatzinformationen »%s«: %s\n"
#: protoize.c:2117
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: Fehler beim Schließen der Datei mit Zusatzinformationen »%s«: %s\n"
#: protoize.c:2133
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: Fehler beim Löschen der Datei mit Zusatzinformationen »%s«: %s\n"
#: protoize.c:2215 protoize.c:4185
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't delete file '%s': %s\n"
msgstr "%s: Fehler beim Löschen der Datei »%s«: %s\n"
#: protoize.c:2293
-#, fuzzy, c-format
+#, 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"
@@ -5853,27 +5833,27 @@ msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: Konfliktliste für »%s« folgt:\n"
#: protoize.c:2454
-#, fuzzy, c-format
+#, 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:2494
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: '%s' used but missing from SYSCALLS\n"
msgstr "%s: %d: »%s« verwendet, fehlt jedoch in SYSCALLS\n"
#: protoize.c:2500
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: no extern definition for '%s'\n"
msgstr "%s: %d: Warnung: keine externe Definition für »%s«\n"
#: protoize.c:2530
-#, fuzzy, c-format
+#, 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:2536
-#, fuzzy, c-format
+#, c-format
msgid "%s: multiple static defs of '%s' in file '%s'\n"
msgstr "%s: mehrere statische Definitionen von »%s« in Datei »%s«\n"
@@ -5888,17 +5868,17 @@ msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr "%s: %d: Warnung: Funktionsdeklaration mit variablen Argumenten nicht konvertiert\n"
#: protoize.c:2920
-#, fuzzy, c-format
+#, c-format
msgid "%s: declaration of function '%s' not converted\n"
msgstr "%s: Deklaration der Funktion »%s« nicht konvertiert\n"
#: protoize.c:3043
-#, fuzzy, c-format
+#, 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:3064
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: warning: too few parameter lists in declaration of '%s'\n"
@@ -5907,31 +5887,31 @@ msgstr ""
"%s: Warnung: zu wenige Parameterlisten in Deklaration von »%s«\n"
#: protoize.c:3160
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: found '%s' but expected '%s'\n"
msgstr "%s: %d: Warnung: »%s« gefunden, aber »%s« erwartet\n"
#: protoize.c:3335
-#, fuzzy, c-format
+#, 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:3362
-#, fuzzy, c-format
+#, 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"
+"%s: %d: Warnung: Deklaration von »%s« kann nicht zu Makro-Aufruf hinzugefügt werden\n"
#: protoize.c:3434
-#, fuzzy, c-format
+#, 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:3523 protoize.c:3553
-#, fuzzy, c-format
+#, c-format
msgid "%s: definition of function '%s' not converted\n"
msgstr "%s: Definition der Funktion »%s« nicht konvertiert\n"
@@ -5941,14 +5921,14 @@ msgid "%s: %d: warning: definition of %s not converted\n"
msgstr "%s: %d: Warnung: Definition von %s nicht konvertiert\n"
#: protoize.c:3868
-#, fuzzy, c-format
+#, c-format
msgid "%s: found definition of '%s' at %s(%d)\n"
-msgstr "%s: Definition von »%s« an Stelle %s(%d) gefunden\n"
+msgstr "%s: Definition von »%s« bei %s(%d) gefunden\n"
#. If we make it here, then we did not know about this
#. function definition.
#: protoize.c:3884
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: '%s' excluded by preprocessing\n"
msgstr "%s: %d: Warnung: »%s« durch Präprozessor ausgeschlossen\n"
@@ -5958,32 +5938,32 @@ msgid "%s: function definition not converted\n"
msgstr "%s: Funktionsdefinition nicht konvertiert\n"
#: protoize.c:3945
-#, fuzzy, c-format
+#, c-format
msgid "%s: '%s' not converted\n"
msgstr "%s: »%s« nicht konvertiert\n"
#: protoize.c:3953
-#, fuzzy, c-format
+#, c-format
msgid "%s: would convert file '%s'\n"
-msgstr "%s: würde Datei »%s« konvertieren\n"
+msgstr "%s: Datei »%s« würde konvertiert werden\n"
#: protoize.c:3956
-#, fuzzy, c-format
+#, c-format
msgid "%s: converting file '%s'\n"
msgstr "%s: Datei »%s« wird konvertiert\n"
#: protoize.c:3966
-#, fuzzy, c-format
+#, 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:4008
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: Datei »%s« kann nicht zum Lesen geöffnet werden: %s\n"
#: protoize.c:4023
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: error reading input file '%s': %s\n"
@@ -5992,27 +5972,27 @@ msgstr ""
"%s: Fehler beim Lesen der Eingabedatei »%s«: %s\n"
#: protoize.c:4057
-#, fuzzy, c-format
+#, 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:4162
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: file '%s' already saved in '%s'\n"
msgstr "%s: Warnung: Datei »%s« bereits in »%s« gesichert\n"
#: protoize.c:4170
-#, fuzzy, c-format
+#, 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:4200
-#, fuzzy, c-format
+#, 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:4233
-#, fuzzy, c-format
+#, 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"
@@ -6026,99 +6006,90 @@ msgstr "%s: aktuelles Verzeichnis kann nicht ermittelt werden: %s\n"
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:774
-msgid "Didn't find a coloring.\n"
-msgstr "Färbung konnte nicht gefunden werden.\n"
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "Ausgabebedingung %d muss ein einzelnes Register angeben"
-#: reg-stack.c:631
+#: reg-stack.c:632
#, 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:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr "Ausgaberegister müssen oben auf dem Stack gruppiert werden"
-#: reg-stack.c:691
+#: reg-stack.c:692
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:710
-#, fuzzy
+#: reg-stack.c:711
msgid "output operand %d must use %<&%> constraint"
-msgstr "Ausgabeoperand %d muss »&«-Bedingung benutzen"
+msgstr "Ausgabeoperand %d muss %<&%>-Bedingung verwenden"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "»%s« kann nicht als ein %s-Register verwendet werden"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "unbekannter Registername: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "globale Registervariable folgt einer Funktionsdefinition"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "Register für zwei globale Registervariablen verwendet"
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr "für Ruf vorgesehenes Register wurde für globale Registervariable verwendet"
-#: regrename.c:1876
+#: regrename.c:1872
#, 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:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: Zyklus in regno-Kette (%u)"
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] Falsches oldest_regno (%u)"
-#: regrename.c:1903
+#: regrename.c:1899
#, 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:1252
-#, fuzzy
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
-msgstr "Ganzzahlkonstantenoperand kann in »asm« nicht neu geladen werden"
+msgstr "Ganzzahlkonstantenoperand kann in %<asm%> nicht neu geladen werden"
-#: reload.c:1275
-#, fuzzy
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
-msgstr "unmögliche Registerbedingung in »asm«"
+msgstr "unmögliche Registerbedingung in %<asm%>"
-#: reload.c:3513
-#, fuzzy
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
-msgstr "»&«-Bedingung ohne Registerklasse verwendet"
+msgstr "%<&%>-Bedingung ohne Registerklasse verwendet"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr "Neuladungen konnten nicht generiert werden für:"
-#: reload.c:3680 reload.c:3912
-#, fuzzy
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
-msgstr "inkonsistente Operandenbedingungen in einem »asm«"
+msgstr "inkonsistente Operandenbedingungen in einem %<asm%>"
#: reload1.c:1211
msgid "frame size too large for reliable stack checking"
@@ -6128,44 +6099,40 @@ msgstr "Rahmengröße zu groß für zuverlässige Kellerüberprüfung"
msgid "try reducing the number of local variables"
msgstr "versuchen Sie, die Anzahl der lokalen Variablen zu verringern"
-#: reload1.c:1866
-#, fuzzy
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
-msgstr "in der Klasse »%s« konnte während des Neuladens von »asm« kein Register gefunden werden"
+msgstr "in der Klasse %qs konnte während des Neuladens von %<asm%> kein Register gefunden werden"
-#: reload1.c:1871
-#, fuzzy, c-format
+#: reload1.c:1870
+#, c-format
msgid "unable to find a register to spill in class %qs"
-msgstr "in Klasse »%s« konnte kein Register für Überlauf gefunden werden"
+msgstr "in Klasse %qs konnte kein Register für Überlauf gefunden werden"
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr "dies ist der Befehl:"
-#: reload1.c:3864
-#, fuzzy
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
-msgstr "»asm«-Operand erfordert unmögliches Neuladen"
+msgstr "%<asm%>-Operand erfordert unmögliches Neuladen"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr "es konnte kein Ãœberlaufregister gefunden werden"
-#: reload1.c:4988
-#, fuzzy
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
-msgstr "»asm«-Operandenbedingung inkompatibel mit Operandengröße"
+msgstr "%<asm%>-Operandenbedingung inkompatibel mit Operandengröße"
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr "VOIDmode bei einer Ausgabe"
-#: reload1.c:6607
-#, fuzzy
+#: reload1.c:6615
msgid "output operand is constant in %<asm%>"
-msgstr "Ausgabeoperand ist in »asm« konstant"
+msgstr "Ausgabeoperand ist in %<asm%> konstant"
#: rtl-error.c:128
msgid "unrecognizable insn:"
@@ -6175,156 +6142,146 @@ msgstr "unerkennbarer Befehl:"
msgid "insn does not satisfy its constraints:"
msgstr "Befehl erfüllt nicht seine Bedingungen:"
-#: rtl.c:472
-#, fuzzy, c-format
+#: rtl.c:471
+#, 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:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
-#, fuzzy, c-format
+#: rtl.c:500
+#, 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:511
-#, fuzzy, c-format
+#: rtl.c:510
+#, 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:522
+#: rtl.c:521
#, 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:533
-#, fuzzy, c-format
+#: rtl.c:532
+#, 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:316
-#, fuzzy
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
-msgstr "Bedingung des Ausgabeoperanden erfordert »=«"
+msgstr "Bedingung des Ausgabeoperanden erfordert %<=%>"
-#: stmt.c:331
-#, fuzzy, c-format
+#: stmt.c:332
+#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
-msgstr "Ausgabebedingung »%c« für Operand %d steht nicht am Anfang"
+msgstr "Ausgabebedingung %qc für Operand %d steht nicht am Anfang"
-#: stmt.c:354
-#, fuzzy
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
-msgstr "Operandenbedingung enthält falsch positioniertes »+« oder »=«"
+msgstr "Operandenbedingung enthält falsch positioniertes %<+%> oder %<=%>"
-#: stmt.c:361 stmt.c:460
-#, fuzzy
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
-msgstr "»%%«-Bedingung mit letztem Operanden verwendet"
+msgstr "%<%%%>-Bedingung mit letztem Operanden verwendet"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "dazu passende Bedingung in Ausgabeoperanden ungültig"
-#: stmt.c:451
-#, fuzzy, c-format
+#: stmt.c:452
+#, c-format
msgid "input operand constraint contains %qc"
-msgstr "Bedingung für Eingabeoperanden enthält »%c«"
+msgstr "Bedingung für Eingabeoperanden enthält %qc"
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr "dazu passende Bedingung referenziert ungültige Operandennummer"
-#: stmt.c:531
-#, fuzzy, c-format
+#: stmt.c:532
+#, c-format
msgid "invalid punctuation %qc in constraint"
-msgstr "ungültiges Zeichen »%c« in Bedingung"
+msgstr "ungültiges Zeichen %qc in Bedingung"
-#: stmt.c:555
+#: stmt.c:556
msgid "matching constraint does not allow a register"
msgstr "dazu passende Bedingung erlaubt kein Register"
-#: stmt.c:583
-#, fuzzy, c-format
+#: stmt.c:584
+#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
-msgstr "asm-Spezifizierer für Variable »%s« steht in Konflikt mit asm-Konflikt-Liste"
+msgstr "asm-Spezifizierer für Variable %qs steht in Konflikt mit asm-Konflikt-Liste"
-#: stmt.c:672
-#, fuzzy
+#: stmt.c:673
msgid "unknown register name %qs in %<asm%>"
-msgstr "unbekannter Registername »%s« in »asm«"
+msgstr "unbekannter Registername %qs in %<asm%>"
-#: stmt.c:680
-#, fuzzy
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
-msgstr "PIC-Register »%s« wird in »asm« zerstört"
+msgstr "PIC-Register %qs wird in %<asm%> zerstört"
-#: stmt.c:727
-#, fuzzy
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
-msgstr "mehr als %d Operanden in »asm«"
+msgstr "mehr als %d Operanden in %<asm%>"
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "Ausgabezahl %d nicht direkt adressierbar"
-#: stmt.c:869
-#, fuzzy
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "asm-Operand %d passt wahrscheinlich nicht zu den Bedingungen"
-#: stmt.c:879
+#: stmt.c:880
#, 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:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr "asm-Konflikt mit Ausgabeoperand"
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr "asm-Konflikt mit Eingabeoperand"
-#: stmt.c:1108
-#, fuzzy
+#: stmt.c:1109
msgid "too many alternatives in %<asm%>"
-msgstr "zu viele Alternativen in »asm«"
+msgstr "zu viele Alternativen in %<asm%>"
-#: stmt.c:1120
-#, fuzzy
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
-msgstr "Operandenbedingungen für »asm« unterscheiden sich in der Anzahl der Alternativen"
+msgstr "Operandenbedingungen für %<asm%> unterscheiden sich in der Anzahl der Alternativen"
-#: stmt.c:1173
-#, fuzzy, c-format
+#: stmt.c:1174
+#, c-format
msgid "duplicate asm operand name %qs"
-msgstr "doppelter asm-Operandenname »%s«"
+msgstr "doppelter asm-Operandenname %qs"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr "schließende geschweifte Klammer für benannten Operanden fehlt"
-#: stmt.c:1299
-#, fuzzy, c-format
+#: stmt.c:1300
+#, c-format
msgid "undefined named operand %qs"
-msgstr "benannter Operand »%s« ist nicht definiert"
+msgstr "benannter Operand %qs ist nicht definiert"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr "%Hberechneter Wert ist unbenutzt"
#: stor-layout.c:152
-#, fuzzy
msgid "type size can%'t be explicitly evaluated"
msgstr "die Typgröße kann nicht explizit ausgewertet werden"
@@ -6333,43 +6290,38 @@ msgid "variable-size type declared outside of any function"
msgstr "Typ mit variabler Größe wurde außerhalb einer Funktion definiert"
#: stor-layout.c:458
-#, fuzzy
msgid "%Jsize of %qD is %d bytes"
-msgstr "%JGröße von »%Ds« ist %d Bytes"
+msgstr "%JGröße von %qD ist %d Bytes"
#: stor-layout.c:460
-#, fuzzy
msgid "%Jsize of %qD is larger than %d bytes"
-msgstr "%JGröße von »%D« übertrifft %d Bytes"
+msgstr "%JGröße von %qD überschreitet %d Bytes"
#: stor-layout.c:844
-#, fuzzy
msgid "%Jpacked attribute causes inefficient alignment for %qD"
-msgstr "%Jgepacktes Attribut verursacht ineffiziente Ausrichtung für »%D«"
+msgstr "%Jgepacktes Attribut verursacht ineffiziente Ausrichtung für %qD"
#: stor-layout.c:847
-#, fuzzy
msgid "%Jpacked attribute is unnecessary for %qD"
-msgstr "%Jgepacktes Attribut ist unnötig für »%D«"
+msgstr "%Jgepacktes Attribut ist unnötig für %qD"
#: stor-layout.c:863
-#, fuzzy
msgid "%Jpadding struct to align %qD"
-msgstr "%Jstruct wird aufgefüllt, um »%D« auszurichten"
+msgstr "%Jstruct wird aufgefüllt, um %qD auszurichten"
#: stor-layout.c:1205
msgid "padding struct size to alignment boundary"
msgstr "struct wird bis zur Ausrichtungsgrenze aufgefüllt"
#: stor-layout.c:1235
-#, fuzzy, c-format
+#, c-format
msgid "packed attribute causes inefficient alignment for %qs"
-msgstr "gepacktes Attribut verursacht ineffiziente Ausrichtung für »%s«"
+msgstr "gepacktes Attribut verursacht ineffiziente Ausrichtung für %qs"
#: stor-layout.c:1238
-#, fuzzy, c-format
+#, c-format
msgid "packed attribute is unnecessary for %qs"
-msgstr "gepacktes Attribut ist unnötig für »%s«"
+msgstr "gepacktes Attribut ist unnötig für %qs"
#: stor-layout.c:1243
msgid "packed attribute causes inefficient alignment"
@@ -6409,7 +6361,7 @@ msgstr "sammeln: %s lesen\n"
#: tlink.c:475
#, c-format
msgid "repository file '%s' does not contain command-line arguments"
-msgstr ""
+msgstr "Repository-Datei »%s« enthält keine Kommandozeilenargumente"
#: tlink.c:525
#, c-format
@@ -6419,7 +6371,7 @@ msgstr "sammeln: %s neu kompilieren\n"
#: tlink.c:696
#, c-format
msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
-msgstr ""
+msgstr "»%s« wurde an »%s« zugewiesen, war aber nicht während Rekompilierung definiert, oder umgekehrt"
#: tlink.c:705
#, c-format
@@ -6436,66 +6388,63 @@ msgstr "sammeln: neu binden\n"
msgid "ld returned %d exit status"
msgstr "ld gab %d als Ende-Status zurück"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
-#, fuzzy, c-format
+#: toplev.c:536
+#, c-format
msgid "invalid option argument %qs"
-msgstr "ungültiges Optionsargument »%s«"
+msgstr "ungültiges Optionsargument %qs"
-#: toplev.c:602
-#, fuzzy
+#: toplev.c:606
msgid "unrecoverable error"
-msgstr "interner Fehler"
+msgstr "nicht behebbarer Fehler"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr "Kern-Dateigrößenlimit wird geholt: %m"
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr "Kern-Dateigrößenlimit wird gesetzt: %m"
-#: toplev.c:846
-#, fuzzy
+#: toplev.c:850
msgid "%J%qF declared %<static%> but never defined"
-msgstr "%J»%F« als »static« deklariert, aber nirgendwo definiert"
+msgstr "%J%qF als %<static%> deklariert, aber nirgendwo definiert"
-#: toplev.c:872
-#, fuzzy
+#: toplev.c:876
msgid "%J%qD defined but not used"
-msgstr "%J»%D« definiert, aber nicht verwendet"
+msgstr "%J%qD definiert, aber nicht verwendet"
-#: toplev.c:895 toplev.c:918
-#, fuzzy, c-format
+#: toplev.c:899 toplev.c:922
+#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
-msgstr "»%s« ist veraltet (deklariert bei %s:%d)"
+msgstr "%qs ist veraltet (deklariert bei %s:%d)"
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr "Typ ist veraltet (in %s:%d deklariert)"
-#: toplev.c:927
-#, fuzzy, c-format
+#: toplev.c:931
+#, c-format
msgid "%qs is deprecated"
-msgstr "»%s« ist veraltet"
+msgstr "%qs ist veraltet"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr "Typ ist veraltet"
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -6504,12 +6453,12 @@ msgstr ""
"\n"
"Zielspezifische Optionen:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23s [undokumentiert]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -6518,24 +6467,24 @@ msgstr ""
"\n"
"Es gibt auch undokumentierte zielspezifische Optionen.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " Es gibt sie, aber sie sind nicht dokumentiert.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
-msgstr "gcc-Debuggingoption nicht erkannt: %c"
+msgstr "GCC-Debuggingoption nicht erkannt: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
-#, fuzzy, c-format
+#, c-format
msgid "invalid option %qs"
-msgstr "ungültige Option »%s«"
+msgstr "ungültige Option %qs"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6546,715 +6495,676 @@ msgstr ""
"%s\tkompiliert von GNU-C-Version %s.\n"
"%s%s%s Version %s (%s) kompiliert von CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr "%s%sGGC-Heuristik: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "angegebene Optionen: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "angeschaltete Optionen: "
-#: toplev.c:1402
-#, fuzzy
+#: toplev.c:1414
msgid "can%'t open %s for writing: %m"
-msgstr "Datei »%s« kann nicht zum Schreiben geöffnet werden: %m"
+msgstr "%s kann nicht zum Schreiben geöffnet werden: %m"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr "erzeugt und mit anderen Einstellungen von -fpic verwendet"
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr "erzeugt und mit anderen Einstellungen von -fpie verwendet"
-#: toplev.c:1538 config/sh/sh.c:7358
-#, fuzzy, c-format
+#: toplev.c:1545 config/sh/sh.c:7386
+#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr "erzeugt und mit anderen Einstellungen von »-m%s« verwendet"
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr "Platz im Hauptspeicher reicht nicht aus"
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr "Befehlsplanung wird von dieser Zielmaschine nicht unterstützt"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "diese Zielmaschine hat keine verzögerten Zweige"
-#: toplev.c:1744
-#, fuzzy
+#: toplev.c:1764
msgid "value-based profiling not yet implemented in trees."
-msgstr "Profiling noch nicht implementiert"
+msgstr "wertebasiertes Profiling noch nicht in Bäumen implementiert"
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore wird auf dieser Zielmaschine nicht unterstützt"
-#: toplev.c:1831
+#: toplev.c:1851
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "Zielsystem unterstützt nicht das Testformat \"%s\""
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
-msgstr ""
+msgstr "Variablenverfolgung angefordert, jedoch nutzlos ohne Debug-Info"
-#: toplev.c:1846
-#, fuzzy
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
-msgstr "Zielsystem unterstützt nicht das Testformat \"%s\""
+msgstr "Variablenverfolgung angefordert, jedoch nicht von diesem Debug-Format unterstützt"
-#: toplev.c:1866
-#, fuzzy
+#: toplev.c:1886
msgid "can%'t open %s: %m"
msgstr "%s kann nicht geöffnet werden: %m"
-#: toplev.c:1873
+#: toplev.c:1893
msgid "-ffunction-sections not supported for this target"
msgstr "-ffunction-sections wird für dieses Ziel nicht unterstützt"
-#: toplev.c:1878
+#: toplev.c:1898
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections wird für dieses Ziel nicht unterstützt"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections ausgeschaltet; das macht Profiling unmöglich"
-#: toplev.c:1892
+#: toplev.c:1912
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt"
-#: toplev.c:1898
-#, fuzzy
+#: toplev.c:1918
msgid "-fspeculative-prefetching not supported for this target"
-msgstr "-fdata-sections wird für dieses Ziel nicht unterstützt"
+msgstr "-fspeculative-prefetching wird für dieses Ziel nicht unterstützt"
-#: toplev.c:1904
+#: toplev.c:1924
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
-msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt (versuchen Sie die »-march«-Schalter)"
+msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt (ggf. die »-march«-Schalter versuchen)"
-#: toplev.c:1910
-#, fuzzy
+#: toplev.c:1930
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
-msgstr "-fprefetch-loop-arrays wird für dieses Ziel nicht unterstützt (versuchen Sie die »-march«-Schalter)"
+msgstr "-fspeculative-prefetching wird für dieses Ziel nicht unterstützt (ggf die »-march«-Schalter versuchen)"
-#: toplev.c:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays wird nicht mit -Os unterstützt"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections kann für verschiedene Ziele die Fehlersuche beeinträchtigen"
-#: toplev.c:2034
+#: toplev.c:2057
#, c-format
msgid "error writing to %s: %m"
msgstr "Fehler beim Schreiben der Datei %s: %m"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, c-format
msgid "error closing %s: %m"
msgstr "Fehler beim Schließen von %s: %m"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr "%Hwird niemals ausgeführt"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
-msgstr ""
+msgstr "SSA-Name in Frei-Liste, jedoch immer noch referenziert"
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
-msgstr ""
+msgstr "GIMPLE-Register mit BIT_FIELD_REF verändert"
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
-msgstr ""
+msgstr "Adresse genommen, aber ADDRESSABLE-Bit nicht gesetzt"
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
-msgstr ""
+msgstr "Nicht-Boolean in Bedingung verwendet"
-#: tree-cfg.c:3316
-#, fuzzy
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
-msgstr "Ungültiger Referenztyp"
+msgstr "Ungültiger Referenzprefix."
-#: tree-cfg.c:3381
-#, fuzzy
+#: tree-cfg.c:3456
msgid "Is not a valid GIMPLE statement."
-msgstr "Ungültige Init-Anweisung"
+msgstr "Ist keine gültige GIMPLE-Anweisung."
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
-msgstr ""
+msgstr "Anweisung für throw markiert, tut es jedoch nicht."
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
-msgstr ""
+msgstr "Anweisung für throw inmitten eines Blockes markiert."
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
-msgstr ""
+msgstr "PHI def ist kein GIMPLE-Wert"
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
-msgstr ""
+msgstr "Falscher gemeinsamer Zugriff auf Baumknoten"
-#: tree-cfg.c:3550
-#, fuzzy
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
-msgstr "verify_flow_info gescheitert"
+msgstr "verify_stmts gescheitert."
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
-msgstr ""
+msgstr "ENTRY_BLOCK hat zugehörige Anweisungsliste\n"
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
-msgstr ""
+msgstr "EXIT_BLOCK hat zugehörige Anweisungsliste\n"
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
-msgstr ""
+msgstr "Fallthru zum Austritt von bb %d\n"
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr "Nicht-lokale Marke %s kommt nicht zuerst in Sequenz der Marken in bb %d"
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
-msgstr ""
+msgstr "Marke %s zum Block passt nicht in bb %d\n"
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
-msgstr ""
+msgstr "Marke %s hat falschen Kontext in bb %d\n"
-#: tree-cfg.c:3625
-#, fuzzy, c-format
+#: tree-cfg.c:3714
+#, c-format
msgid "Control flow in the middle of basic block %d\n"
-msgstr "Flusskontrollbefehl innerhalb eines Basis-Blockes"
+msgstr "Kontrollfluss inmitten des Basis-Blockes %d\n"
-#: tree-cfg.c:3635
-#, fuzzy, c-format
+#: tree-cfg.c:3724
+#, c-format
msgid "Label %s in the middle of basic block %d\n"
-msgstr "NOTE_INSN_BASIC_BLOCK %d in der Mitte des Basis-Blocks %d"
+msgstr "Marke %s in der Mitte des Basis-Blocks %d\n"
-#: tree-cfg.c:3652
-#, fuzzy, c-format
+#: tree-cfg.c:3741
+#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
-msgstr "Fallthru-Kante nach unbedingtem Sprung %i"
+msgstr "Fallthru-Kante hinter einer Kontrollanweisung in bb %d \n"
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
-msgstr ""
+msgstr "Strukturiertes COND_EXPR am Ende von bb %d\n"
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
-msgstr ""
+msgstr "Falsche ausgehende Kantenmarken am Ende des bb %d\n"
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
-msgstr ""
+msgstr "%<then%>-Marke passt nicht zur Kante am Ende des bb %d\n"
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
-msgstr ""
+msgstr "%<else%>-Marke passt nicht zur Kante am Ende von bb %d\n"
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
-msgstr ""
+msgstr "Explizites Goto am Ende von bb %d\n"
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
-msgstr ""
+msgstr "Return-Kante zeigt nicht auf Ausgang in bb %d\n"
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
-msgstr ""
+msgstr "Default-Fall nicht am Ende des case-Vektors gefunden"
-#: tree-cfg.c:3774
-#, fuzzy
+#: tree-cfg.c:3863
msgid ""
"Case labels not sorted:\n"
" "
-msgstr "Keine Trampoline unterstützt"
+msgstr ""
+"Case-Marken nicht sortiert:\n"
+" "
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
-msgstr ""
+msgstr "Kein Default-Fall am Ende des Case-Vektors gefunden"
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
-msgstr ""
+msgstr "Zusätzliche ausgehende Kante %d->%d\n"
-#: tree-cfg.c:3815
-#, fuzzy, c-format
+#: tree-cfg.c:3904
+#, c-format
msgid "Missing edge %i->%i"
-msgstr "Fehlender Bezeichner"
+msgstr "Fehlende Kante %i->%i"
-#: tree-cfg.c:5516
-#, fuzzy
+#: tree-cfg.c:5707
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
-msgstr "Funktion könnte möglicher Kandidat für Attribut »noreturn« sein"
+msgstr "%JFunktion könnte möglicher Kandidat für Attribut %<noreturn%> sein"
-#: tree-cfg.c:5543 tree-cfg.c:5547
-#, fuzzy
+#: tree-cfg.c:5734 tree-cfg.c:5738
msgid "%H%<noreturn%> function does return"
-msgstr "»noreturn«-Funktion kehrt zurück"
+msgstr "%H%<noreturn%>-Funktion kehrt zurück"
-#: tree-cfg.c:5567 tree-cfg.c:5572
-#, fuzzy
+#: tree-cfg.c:5759 tree-cfg.c:5764
msgid "%Hcontrol reaches end of non-void function"
-msgstr "Kontrollfluss erreicht Ende einer Nicht-void-Funktion"
+msgstr "%HKontrollfluss erreicht Ende einer Nicht-void-Funktion"
-#: tree-dump.c:847
-#, fuzzy, c-format
+#: tree-dump.c:849
+#, c-format
msgid "could not open dump file %qs: %s"
-msgstr "Abzugsdatei »%s« konnte nicht geöffnet werden"
+msgstr "Abzugsdatei %qs konnte nicht geöffnet werden: %s"
-#: tree-dump.c:960
-#, fuzzy
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
-msgstr "unbekannte Option »%.*s« in »-fdump-%s« wird ignoriert"
+msgstr "unbekannte Option %q.*s in %<-fdump-%s%> wird ignoriert"
-#: tree-inline.c:945
-#, fuzzy
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie alloca verwendet (zum Aufheben: Attribut »always_inline« verwenden)"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie alloca verwendet (zum Aufheben: Attribut »always_inline« verwenden)"
-#: tree-inline.c:957
-#, fuzzy
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie setjmp verwendet"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie setjmp verwendet"
-#: tree-inline.c:971
-#, fuzzy
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie eine variable Argumentliste verwendet"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie eine variable Argumentliste verwendet"
-#: tree-inline.c:982
-#, fuzzy
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie »setjmp-longjmp«-Ausnahmebehandlung verwendet"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie »setjmp-longjmp«-Ausnahmebehandlung verwendet"
-#: tree-inline.c:989
-#, fuzzy
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
-#: tree-inline.c:1008
-#, fuzzy
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie ein berechnetes »goto« enthält"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie ein berechnetes »goto« enthält"
-#: tree-inline.c:1022
-#, fuzzy
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie ein nichtlokales »goto« empfängt"
-#: tree-inline.c:1044
-#, fuzzy
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
-msgstr "%Jdie Funktion »%F« kann nie »inline« sein, da sie Variablen variabler Größe verwendet"
+msgstr "%Jdie Funktion %qF kann nie »inline« sein, da sie Variablen variabler Größe verwendet"
-#: tree-inline.c:1463
-#, fuzzy
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
-msgstr "redefinierte »extern inline«-Funktionen kommen nicht als »inline« in Betracht"
+msgstr "ursprünglich indirekter Funktionsaufruf kommt nicht als »inline« in Betracht"
-#: tree-inline.c:1473 tree-inline.c:1481
-#, fuzzy
+#: tree-inline.c:1505 tree-inline.c:1513
msgid "%Jinlining failed in call to %qF: %s"
-msgstr "%J»inline« beim Aufruf von »%F« gescheitert: %s"
+msgstr "%J»inline« beim Aufruf von %qF gescheitert: %s"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "von hier aufgerufen"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "Kontrollfluss kann Ende der Nicht-void-Funktion %qD erreichen"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
-msgstr ""
+msgstr "Schmutzfängerprüfung noch nicht für ARRAY_RANGE_REF implementiert"
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
-msgstr ""
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
+msgstr "Schmutzfänger kann nicht %qs in Stub-Funktion verfolgen"
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
-msgstr ""
+msgstr "Schmutzfänger kann nicht externes %qs unbekannter Größe verfolgen"
#: tree-nomudflap.c:51
-#, fuzzy
msgid "mudflap: this language is not supported"
-msgstr "-pipe wird nicht unterstützt"
+msgstr "Schmutzfänger: diese Sprache wird nicht unterstützt"
-#: tree-optimize.c:698
-#, fuzzy
+#: tree-optimize.c:720
msgid "%Jsize of return value of %qD is %u bytes"
-msgstr "%JGröße des Rückgabewertes von »%D« ist %u Bytes"
+msgstr "%JGröße des Rückgabewertes von %qD ist %u Bytes"
-#: tree-optimize.c:701
-#, fuzzy
+#: tree-optimize.c:723
msgid "%Jsize of return value of %qD is larger than %wd bytes"
-msgstr "%JGröße des Rückgabewertes von »%D« ist größer als %wd Bytes"
+msgstr "%JGröße des Rückgabewertes von %qD ist größer als %wd Bytes"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
-msgstr ""
+msgstr "SSA-Beschädigung"
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
-msgstr ""
+msgstr " Hängende Anweisungen auf PRED-Kante nicht ausgeführt (%d, %d)\n"
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
-msgstr ""
+msgstr " Hängende Anweisungen auf SUCC-Kante nicht ausgeführt (%d, %d)\n"
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
-msgstr ""
+msgstr " Hängende Anweisungen auf ENTRY-Kante nicht ausgeführt (%d, %d)\n"
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
-msgstr ""
+msgstr " Hängende Anweisungen auf EXIT-Kante nicht ausgeführt (%d, %d)\n"
#: tree-profile.c:111 tree-profile.c:127 tree-profile.c:143 tree-profile.c:160
-#, fuzzy
msgid "unimplemented functionality"
-msgstr "In Anweisungsfunktion"
+msgstr "nicht implementierte Funktionalität"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "interner Fehler"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
-msgstr ""
+msgstr "SSA_NAME-Objekt erwartet"
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
-msgstr ""
+msgstr "Unpassende Typen für SSA_NAME und sein Symbol."
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
-msgstr ""
+msgstr "SSA_NAME gefunden, das bereits in den Frei-Bereich geschoben wurde"
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
-msgstr ""
+msgstr "Virtuelle Definition für ein GIMPLE-Register gefunden"
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
-msgstr ""
+msgstr "Reale Definition für Nicht-Register gefunden"
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
-msgstr ""
+msgstr "SSA_NAME in zwei verschiedenen Blöcken (%i und %i) erzeugt"
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
-msgstr ""
+msgstr "SSA_NAME_DEF_STMT ist falsch"
-#: tree-ssa.c:230
-#, fuzzy
+#: tree-ssa.c:227
msgid "Missing definition"
-msgstr "Fehlender Bezeichner"
+msgstr "Fehlende Definition"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
-msgstr ""
+msgstr "Definition in Block %i herrscht nicht vor in Block %i"
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
-msgstr ""
+msgstr "Definition in Block %i folgt der Verwendung"
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
-msgstr ""
+msgstr "SSA_NAME_OCCURS_IN_ABNORMAL_PHI sollte gesetzt sein"
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
-msgstr ""
+msgstr "Eingehende Kantenzahl passt nicht zur Anzahl der PHI-Argumente\n"
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, c-format
msgid "PHI argument is missing for edge %d->%d\n"
-msgstr ""
+msgstr "PHI-Argument fehlt für Kante %d->%d\n"
-#: tree-ssa.c:305
-#, fuzzy
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
-msgstr "Argument »%d« ist keine Konstante"
+msgstr "PHI-Argument ist kein SSA_NAME, oder invariant"
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
-msgstr ""
+msgstr "Falsche Kante %d->%d für PHI-Argument\n"
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
-msgstr ""
+msgstr "Nicht-adressierbare Variable innerhalb einer Alias-Menge"
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
-msgstr ""
+msgstr "Adressierbare Variable, die eine Aliasmarke ist, jedoch in keiner Aliasmenge vorkommt."
-#: tree-ssa.c:395
-#, fuzzy
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
-msgstr "verify_flow_info gescheitert"
+msgstr "verify_flow_insensitive_alias_info gescheitert."
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
-msgstr ""
+msgstr "Dereferenzierte Zeiger sollten einen Namen oder eine Typenmarke haben"
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
-msgstr ""
+msgstr "Zeiger mit Speichermarke sollten Zeigt-Auf-Menge haben oder auf malloc zeigen"
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
-msgstr ""
+msgstr "Zeiger entweicht, aber sein Namensschild ist nicht aufrufmarkiert."
-#: tree-ssa.c:462
-#, fuzzy
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
-msgstr "verify_flow_info gescheitert"
+msgstr "verify_flow_sensitive_alias_info gescheitert."
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr "Aliasmenge einer Zeiger-Typenmarke sollte eine Obermenge des korrespondierenden Namensschilds sein"
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
-msgstr ""
+msgstr "Zwei verschiedene Zeiger mit identischen Zeigt-Auf-Mengen, aber mit verschiedenen Namensschildern"
-#: tree-ssa.c:540
-#, fuzzy
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
-msgstr "verify_flow_info gescheitert"
+msgstr "verify_name_tags gescheitert"
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
-msgstr ""
+msgstr "AUX-Zeiger für Kante %d->%d initialisiert\n"
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
-msgstr ""
+msgstr "Anweisung erzeugt Alias-Speicherzugriffe, hat aber kein V_MAY_DEFS"
-#: tree-ssa.c:668
-#, fuzzy
+#: tree-ssa.c:710
msgid "verify_ssa failed."
-msgstr "verify_flow_info gescheitert"
+msgstr "verify_ssa gescheitert."
-#: tree-ssa.c:1329
-#, fuzzy
+#: tree-ssa.c:1376
msgid "%H%qD is used uninitialized in this function"
-msgstr "%J»%D« könnte in dieser Funktion uninitialisiert bleiben"
+msgstr "%J%qD wird in dieser Funktion uninitialisiert verwendet"
-#: tree-ssa.c:1354
-#, fuzzy
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
-msgstr "%J»%D« könnte in dieser Funktion uninitialisiert bleiben"
+msgstr "%H%qD könnte in dieser Funktion uninitialisiert verwendet werden"
-#: tree-vectorizer.c:2138
-#, fuzzy
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
-msgstr "Eingebaute 3DNow!-Funktionen nicht unterstützen"
+msgstr "keine Unterstützung für Reduktion/Induktion"
-#: tree-vectorizer.c:2164
-#, fuzzy
+#: tree-vect-transform.c:624
msgid "unsupported defining stmt"
-msgstr "nicht unterstützte Kombination: %s"
+msgstr "nicht unterstützte Definitionsanweisung"
-#: tree.c:3258
-#, fuzzy
+#: tree.c:3272
msgid "%Jfunction %qD definition is marked dllimport."
-msgstr "%JFunktionsdefinition von »%D« ist als »dllimport« markiert"
+msgstr "%JFunktionsdefinition von %qD ist als »dllimport« markiert."
-#: tree.c:3266
-#, fuzzy
+#: tree.c:3280
msgid "%Jvariable %qD definition is marked dllimport."
-msgstr "%JVariablendefinition von »%d« ist als dllimport markiert."
+msgstr "%JVariablendefinition von %qD ist als dllimport markiert."
-#: tree.c:3286
-#, fuzzy
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
-msgstr "%Jfür Symbol »%D« wird wegen des Attributes »%s« externe Bindung benötigt"
+msgstr "%Jfür Symbol %qD wird wegen des Attributes %qs externe Bindung benötigt"
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "Felder von Funktionen sind sinnlos"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "Rückgabetyp der Funktion kann keine Funktion sein"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "ungültige Initialisierung für Bitstring"
-#: tree.c:5446
-#, fuzzy, c-format
+#: tree.c:5482
+#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
-msgstr "Baumprüfung: %s erwartet, haben %s in %s, bei %s:%d"
+msgstr "Baumprüfung: %s, haben %s in %s, bei %s:%d"
-#: tree.c:5483
-#, fuzzy, c-format
+#: tree.c:5519
+#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
-msgstr "Baumprüfung: %s erwartet, haben %s in %s, bei %s:%d"
+msgstr "Baumprüfung: nichts von %s erwartet, haben %s in %s, bei %s:%d"
-#: tree.c:5496
-#, fuzzy, c-format
+#: tree.c:5532
+#, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
-msgstr "Baumprüfung: Klasse %c erwartet, haben '%c' (%s) in %s, bei %s:%d"
+msgstr "Baumprüfung: Klasse %qs erwartet, haben %qs (%s) in %s, bei %s:%d"
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr "Baumprüfung: auf Elt %d von tree_vec mit %d Elts in %s bei %s:%d zugegriffen"
-#: tree.c:5522
-#, fuzzy, c-format
+#: tree.c:5558
+#, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
-msgstr "Baumprüfung: auf Elt %d von tree_vec mit %d Elts in %s bei %s:%d zugegriffen"
+msgstr "Baumprüfung: auf Elt %d von phi_node mit %d Elts in %s bei %s:%d zugegriffen"
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr "Baumprüfung: auf Operand %d von %s mit %d Operanden in %s bei %s:%d zugegriffen"
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr "%J%D löst einen Abschnittstypkonflikt aus"
-#: varasm.c:910
-#, fuzzy
+#: varasm.c:911
msgid "%Jregister name not specified for %qD"
-msgstr "%Jfür »%D« wurde kein Registername angegeben"
+msgstr "%Jfür %qD wurde kein Registername angegeben"
-#: varasm.c:912
-#, fuzzy
+#: varasm.c:913
msgid "%Jinvalid register name for %qD"
-msgstr "%Jungültiger Registername für »%D«"
+msgstr "%Jungültiger Registername für %qD"
-#: varasm.c:914
-#, fuzzy
+#: varasm.c:915
msgid "%Jdata type of %qD isn%'t suitable for a register"
-msgstr "%JDatentyp von »%D« eignet sich nicht für Register"
+msgstr "%JDatentyp von %qD ist nicht für Register geeignet"
-#: varasm.c:917
-#, fuzzy
+#: varasm.c:918
msgid "%Jregister specified for %qD isn%'t suitable for data type"
-msgstr "%Jfür »%D« angegebenes Register eignet sich nicht für Datentyp"
+msgstr "%Jfür %qD angegebenes Register eignet sich nicht für Datentyp"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
-msgstr "globle Registervariable hat Anfangswert"
+msgstr "globale Registervariable hat Anfangswert"
-#: varasm.c:930
-#, fuzzy
+#: varasm.c:931
msgid "volatile register variables don%'t work as you might wish"
-msgstr "»volatile«-Registervariablen funktionieren oft nicht so wie erhofft"
+msgstr "»volatile«-Registervariablen funktionieren nicht so wie erhofft"
-#: varasm.c:963
-#, fuzzy
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
-msgstr "%JRegistername für Nicht-Registervariable »%D« verwendet"
+msgstr "%JRegistername für Nicht-Registervariable %qD angegeben"
-#: varasm.c:1038
-#, fuzzy
+#: varasm.c:1046
msgid "global destructors not supported on this target"
-msgstr "Kellergrenzen nicht für dieses Ziel unterstützt"
+msgstr "globale Destrukoren werden für dieses Ziel nicht unterstützt"
-#: varasm.c:1099
-#, fuzzy
+#: varasm.c:1107
msgid "global constructors not supported on this target"
-msgstr "Kellergrenzen nicht für dieses Ziel unterstützt"
+msgstr "globale Konstruktoren werden für dieses Ziel nicht unterstützt"
-#: varasm.c:1592
-#, fuzzy
+#: varasm.c:1607
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
-msgstr "%JAusrichtung von »%D ist größer als maximale Objektdateiausrichtung. %d verwendet«"
+msgstr "%JAusrichtung von %qD ist größer als maximale Objektdateiausrichtung. %d verwendet«"
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr "Thread-lokale COMMON-Daten nicht implementiert"
-#: varasm.c:1666
-#, fuzzy
+#: varasm.c:1671
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
-msgstr "%Jangeforderte Ausrichtung für »%D« ist größer als die implementierte Ausrichtung von %d"
+msgstr "%Jangeforderte Ausrichtung für %qD ist größer als die implementierte Ausrichtung von %d"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "Initialisierung für Ganzzahlwert ist zu kompliziert"
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr "Initialisierung für Gleitkommawert ist keine Gleitkommakonstante"
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr "unbekannter Mengenkonstruktortyp"
-
-#: varasm.c:4026
-#, fuzzy, c-format
+#: varasm.c:4046
+#, c-format
msgid "invalid initial value for member %qs"
-msgstr "ungültiger Anfangswert für Element »%s«"
+msgstr "ungültiger Anfangswert für Element %qs"
-#: varasm.c:4213 varasm.c:4257
-#, fuzzy
+#: varasm.c:4233 varasm.c:4277
msgid "%Jweak declaration of %qD must precede definition"
-msgstr "%Jschwache Deklaration von »%D« muss der Definition vorangehen"
+msgstr "%Jschwache Deklaration von %qD muss der Definition vorangehen"
-#: varasm.c:4221
-#, fuzzy
+#: varasm.c:4241
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
-msgstr "%Jschwache Deklaration von »%D« nach erster Benutzung führt zu undefiniertem Verhalten"
+msgstr "%Jschwache Deklaration von %qD nach erster Benutzung führt zu undefiniertem Verhalten"
-#: varasm.c:4255
-#, fuzzy
+#: varasm.c:4275
msgid "%Jweak declaration of %qD must be public"
-msgstr "%Jschwache Deklaration von »%D« muss öffentlich sein"
+msgstr "%Jschwache Deklaration von %qD muss öffentlich sein"
-#: varasm.c:4264
-#, fuzzy
+#: varasm.c:4284
msgid "%Jweak declaration of %qD not supported"
-msgstr "%Jschwache Deklaration von »%D« wird nicht unterstützt"
+msgstr "%Jschwache Deklaration von %qD wird nicht unterstützt"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "in dieser Konfiguration werden nur schwache Aliase unterstützt"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "Alias-Definitionen werden in dieser Konfiguration nicht unterstützt; ignoriert"
-#: varasm.c:4418
+#: varasm.c:4504
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "%qD als Alias für undefiniertes Symbol %qE"
+
+#: varasm.c:4532
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert"
@@ -7271,7 +7181,7 @@ msgstr "Unterlauf im virtuellen Feld %s in %s bei %s:%d"
#: vec.c:146
#, c-format
msgid "vector %s %s domain error, in %s at %s:%u"
-msgstr ""
+msgstr "Bereichsfehler im Vektor %s %s, in %s bei %s:%u"
#. Print an error message for unrecognized stab codes.
#: xcoffout.c:187
@@ -7317,12 +7227,12 @@ msgid "debug: "
msgstr "zur Fehlersuche: "
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
-msgstr ""
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
+msgstr "Die höchste Strukturgröße (in Bytes), bei der GCC Block-Kopien macht"
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
-msgstr ""
+msgid "The threshold ratio between instantiated fields and the total structure size"
+msgstr "Der Anteil-Schwellwert zwischen instanzierten Feldern und der Gesamt-Strukturgröße"
#: params.def:72
msgid "The maximum number of instructions in a single function eligible for inlining"
@@ -7333,235 +7243,237 @@ msgid "The maximum number of instructions when automatically inlining"
msgstr "Die Höchstzahl der Anweisungen für automatisches »inline«"
#: params.def:89
-#, fuzzy
msgid "The maximum number of instructions inline function can grow to via recursive inlining"
-msgstr "Die Höchstzahl der Anweisungen in einer einzelnen für »inline« geeigneten Funktion"
+msgstr "Die Höchstzahl der Anweisungen, bis zu der eine Inline-Funktion per Rekursion wachsen kann"
#: params.def:94
-#, fuzzy
msgid "The maximum number of instructions non-inline function can grow to via recursive inlining"
-msgstr "Die Höchstzahl der Anweisungen in einer einzelnen für »inline« geeigneten Funktion"
+msgstr "Die Höchstzahl der Anweisungen, bis zu der eine Nicht-Inline-Funktion per Rekursion wachsen kann"
#: params.def:99
msgid "The maximum depth of recursive inlining for inline functions"
-msgstr ""
+msgstr "Größte Tiefe mit rekursivem Inline für Inline-Funktionen"
#: params.def:104
msgid "The maximum depth of recursive inlining for non-inline functions"
-msgstr ""
+msgstr "Größte Tiefe mit rekursivem Inline für Nicht-Inline-Funktionen"
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "Die Höchstzahl der Anweisungen für RTL »inline«"
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
-msgstr ""
+msgstr "Wenn -fvariable-expansion-in-unroller verwendet wird, die Höchstzahl der Fälle, dass eine bestimmte Variable während Loop-Unrolling expandiert wird"
-#: params.def:134
+#: params.def:124
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr "Die Höchstzahl der zu betrachtenden Anweisungen um Verzögerungsschlitz zu füllen"
-#: params.def:145
+#: params.def:135
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr "Die Höchstzahl der zu betrachtenden Anweisungen um richtige aktive Registerinformationen zu finden"
-#: params.def:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr "Die Maximallänge der Liste der anhängigen geplanten Operationen"
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr "Die Größe eines als groß angesehenen Funktionskörpers"
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr "Maximales Wachstum durch »inline« einer großen Funktion (in Prozent)"
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr "um wie viel eine Übersetzungseinheit durch »inline« wachsen kann (in Prozent)"
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr "Maximalbetrag des von GCSE zu belegenden Speichers"
-#: params.def:180
+#: params.def:170
msgid "The maximum number of passes to make when doing GCSE"
msgstr "Die Höchstzahl der Durchläufe für GCSE"
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
-msgstr ""
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
+msgstr "Der Anteil-Schwellwert für die Ausführung partieller Redundanzbeseitigung nach dem Neuladen."
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
-msgstr ""
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+msgstr "Der Anteil-Schwellwert des Zählers kritischer Kanten, die Redundanzbeseitigung nach dem Neuladen erlauben"
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr "Die Höchstzahl der zum Aufrollen von Schleifen zu betrachtenden Anweisungen"
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr "Die Höchstzahl der zum Aufrollen von Schleifen im Mittel zu betrachtenden Anweisungen"
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr "Die Höchstzahl der Iterationen zum Aufrollen in einzelner Schleife"
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr "Die Höchstzahl der Befehle einer geschälten Schleife"
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr "Die Höchstzahl der Schälvorgänge einer einzelnen Schleife"
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr "Die Höchstzahl der Befehle einer vollständig geschälten Schleife"
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr "Die Höchstzahl der Schälvorgänge einer einzelnen Schleife, die vollständig geschält wird"
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr "Die Höchstzahl der Befehle einer geschälten Schleife, die nur einmal rollt"
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr "Die Höchstzahl der Befehle einer ungeschalteten Schleife"
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr "Die Höchstzahl der Abschaltungen in einer einzelnen Schleife"
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
-msgstr ""
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
+msgstr "Schranke für die Anzahl der Iterationen, die der Brute-Force-Algorithmus zur Auswertung der Anzahl von Iterationen auswertet"
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
-msgstr ""
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
+msgstr "Höchstzahl der Schleifen für die Anwendung von Swing-Modulo-Scheduling (hauptsächlich zur Fehlersuche)"
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
-msgstr ""
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
+msgstr "Ein Faktor, um die obere Schranke des Swing-Modulo-Schedulers für Schleifenplanung einzustellen"
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
-msgstr ""
+msgstr "Anzahl der Durchläufe, die der Swing-Modulo-Scheduler bei \t Konfliktprüfung mit DFA betrachtet"
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
-msgstr ""
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
+msgstr "Schwellwert für vom Swing-Modulo-Scheduler betrachteten Durchschnitts-Schleifen-Zähler"
-#: params.def:293
+#: params.def:277
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 "Auswahl des Anteils an der Anzahl der Wiederholungen des Basisblocks im Programm, vorausgesetzt, der Basisblock muss als »heiß« angesehen werden"
-#: params.def:298
+#: params.def:281
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 "Auswahl des Anteils an der Höchstfrequenz der Ausführungen des Basisblocks im Programm, vorausgesetzt, der Basisblock muss als »heiß« angesehen werden"
-#: params.def:303
+#: params.def:285
msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
msgstr "Prozentsatz der Funktion, gewichtet nach Ausführungsfrequenz, die bei Verfolgungsentwurf abgedeckt werden muss. Verwendet, wenn Profil-Rückmeldung verfügbar ist"
-#: params.def:308
+#: params.def:289
msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
msgstr "Prozentsatz der Funktion, gewichtet nach Ausführungsfrequenz, die bei Verfolgungsentwurf abgedeckt werden muss. Verwendet, wenn Profil-Rückmeldung nicht verfügbar ist"
-#: params.def:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr "Maximaler Code-Zuwachs durch Ende-Vervielfältigung (in Prozent)"
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr "Umgekehrtes Wachstum anhalten, wenn die umgekehrte Wahrscheinlichkeit der besten Kante weniger als dieser Schwellwert ist (in Prozent)"
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr "Vorwärtswachstum anhalten, wenn die Wahrscheinlichkeit der besten Kante weniger als dieser Schwellwert ist. Verwendet, wenn Profil-Rückmeldung verfügbar ist"
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr "Vorwärtswachstum anhalten, wenn die Wahrscheinlichkeit der besten Kante weniger als dieser Schwellwert ist. Verwendet, wenn Profil-Rückmeldung nicht verfügbar ist"
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr "Höchstzahl der zu betrachtenden eingehenden Kanten für Kreuzsprung"
-#: params.def:340
-#, fuzzy
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
-msgstr "Höchstzahl der zu betrachtenden eingehenden Kanten für Kreuzsprung"
+msgstr "Mindestanzahl der passenden zu betrachtenden Anweisungen für Kreuzsprung"
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "Die Höchstzahl der zu vervielfältigenden Anweisungen, wenn berechnete Gotos expandiert werden"
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr "Größte Länge des betrachteten Pfades in cse"
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
-msgstr ""
+msgstr "Die Mindestkosten eines teuren Ausdrucks in der Schleifeninvariantenbewegung"
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
-msgstr ""
+msgstr "Schranke für Anzahl der Kandidaten, unter der alle Kandidaten in IV-Optimierungen betrachtet werden"
-#: params.def:370
+#: params.def:353
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
-msgstr ""
+msgstr "Schranke für Anzahl der IV-Verwendungen in bei IV-Optimierungen optimierter Schleife"
+
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr "Wenn die Anzahl der Kandidaten in der Menge kleiner ist, wird immer versucht, ungenutzte IVs während ihrer Optimierung zu entfernen"
-#: params.def:377
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
-msgstr ""
+msgstr "Mit N Aufrufen und V rufmarkierten Variablen in einer Funktion: .GLOBAL_VAR verwenden, wenn NxV größer als diese Grenze ist."
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr "Höchstzahl der Speicherstellen, die von csellib aufgezeichnet werden"
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr "Minimale Heaperweiterung, die Speicherbereinigung anstößt, als Prozentsatz der Gesamtgröße des Heap"
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr "Kleinste Heapgröße vor Speicherbereinigungsbeginn, in Kilobytes"
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr "Höchstzahl der rückwärts zu suchenden Anweisungen, wenn nach äquivalentem Neuladen gesucht wird"
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
-msgstr ""
+msgstr "Höchstzahl der erlaubten virtuellen Operanden, um Aliase vor Auslösen des Alias-Grouping zu repräsentieren"
-#: params.def:419
-#, fuzzy
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
-msgstr "Höchstzahl der zu betrachtenden eingehenden Kanten für Kreuzsprung"
+msgstr "Höchstzahl der für Zwischen-Block-Scheduling zu betrachtenden Blöcke in einer Region"
-#: params.def:424
-#, fuzzy
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
-msgstr "Höchstzahl der zu betrachtenden eingehenden Kanten für Kreuzsprung"
+msgstr "Höchstzahl der für Zwischen-Block-Scheduling zu betrachtenden Anweisungen in einer Region"
-#: params.def:432
-#, fuzzy
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr "Höchstzahl der RTL-Knoten, die als letzte Werte des Kombinierers aufgezeichnet werden können"
+
+#: params.def:427
msgid "The upper bound for sharing integer constants"
-msgstr "Aufzählungswert für »%s« ist keine Ganzzahlkonstante"
+msgstr "Obere Schranke zum gemeinsamen Verwenden von Ganzzahlkonstanten"
#: config/darwin-c.c:84
msgid "too many #pragma options align=reset"
-msgstr "zu viele #pragma-Optionen align=reset"
+msgstr "zu viele #pragma options align=reset"
#: config/darwin-c.c:104 config/darwin-c.c:107 config/darwin-c.c:109
#: config/darwin-c.c:111
msgid "malformed '#pragma options', ignoring"
-msgstr "Falsch geformte '#pragma options', ignoriert"
+msgstr "Falsch geformtes '#pragma options', ignoriert"
#: config/darwin-c.c:114
msgid "junk at end of '#pragma options'"
@@ -7569,7 +7481,7 @@ msgstr "Ausschuss am Ende von '#pragma options'"
#: config/darwin-c.c:124
msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
-msgstr "Falsch geformte '#pragma options align={mac68k|power|reset}', ignoriert"
+msgstr "Falsch geformtes '#pragma options align={mac68k|power|reset}', ignoriert"
#: config/darwin-c.c:136
msgid "missing '(' after '#pragma unused', ignoring"
@@ -7586,107 +7498,92 @@ msgstr "Ausschuss am Ende von '#pragma unused'"
#: config/darwin-c.c:367
#, c-format
msgid "subframework include %s conflicts with framework include"
-msgstr ""
+msgstr "Unter-Framework-Include %s steht mit Framework-Include in Konflikt"
-#: config/darwin.c:1332
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+#: config/darwin.c:1350
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "interne und geschützte Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert"
#: config/sol2-c.c:94 config/sol2-c.c:110
-#, fuzzy
msgid "malformed %<#pragma align%>, ignoring"
-msgstr "Falsch geformtes #pragma align - ignoriert"
+msgstr "Falsch geformtes %<#pragma align%> - ignoriert"
#: config/sol2-c.c:103
-#, fuzzy
msgid "invalid alignment for %<#pragma align%>, ignoring"
-msgstr "Falsch geformtes #pragma align - ignoriert"
+msgstr "ungültige Ausrichtung for %<#pragma align%> - ignoriert"
#: config/sol2-c.c:118
msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
-msgstr ""
+msgstr "%<#pragma align%> muss vor der Deklaration von %D auftreten, ignoriert"
#: config/sol2-c.c:130 config/sol2-c.c:142
-#, fuzzy
msgid "malformed %<#pragma align%>"
-msgstr "Falsch geformtes #pragma builtin"
+msgstr "Falsch geformtes %<#pragma align%>"
#: config/sol2-c.c:137
-#, fuzzy
msgid "junk at end of %<#pragma align%>"
-msgstr "Ausschuss am Ende von #pragma %s"
+msgstr "Ausschuss am Ende von %<#pragma align%>"
#: config/sol2-c.c:158 config/sol2-c.c:165
-#, fuzzy
msgid "malformed %<#pragma init%>, ignoring"
-msgstr "Falsch geformte '#pragma options', ignoriert"
+msgstr "Falsch geformtes %<#pragma init%>', ignoriert"
#: config/sol2-c.c:188 config/sol2-c.c:200
-#, fuzzy
msgid "malformed %<#pragma init%>"
-msgstr "Falsch geformtes #pragma builtin"
+msgstr "Falsch geformtes %<#pragma init%>"
#: config/sol2-c.c:195
-#, fuzzy
msgid "junk at end of %<#pragma init%>"
-msgstr "Ausschuss am Ende von #pragma %s"
+msgstr "Ausschuss am Ende von %<#pragma init%>"
#: config/sol2-c.c:216 config/sol2-c.c:223
-#, fuzzy
msgid "malformed %<#pragma fini%>, ignoring"
-msgstr "Falsch geformte '#pragma options', ignoriert"
+msgstr "Falsch geformtes %<#pragma fini%>, ignoriert"
#: config/sol2-c.c:246 config/sol2-c.c:258
-#, fuzzy
msgid "malformed %<#pragma fini%>"
-msgstr "Falsch geformtes #pragma builtin"
+msgstr "Falsch geformtes %<#pragma fini%>"
#: config/sol2-c.c:253
-#, fuzzy
msgid "junk at end of %<#pragma fini%>"
-msgstr "Ausschuss am Ende von #pragma %s"
+msgstr "Ausschuss am Ende von %<#pragma fini%>"
#: config/sol2.c:54
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
-msgstr ""
+msgstr "%J%<#pragma align%> wird für explizit ausgerichtetes %<%D%> ignoriert"
-#: config/darwin.h:152
-#, fuzzy
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
-msgstr "sizeof(long double) ist 16"
+msgstr "sizeof(bool) auf 1 setzen"
-#: config/darwin.h:154
-#, fuzzy
+#: config/darwin.h:157
msgid "Generate code suitable for fast turn around debugging"
-msgstr "Code für ausführbare Dateien (NICHT Shared Libraries) erzeugen"
+msgstr "Für schnelles Debugging geeigneten Code erzeugen"
-#: config/darwin.h:156
-#, fuzzy
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
-msgstr "Keinen Code für eine Bitverarbeitungseinheit erzeugen"
+msgstr "Keinen für schnelles Debugging geeigneten Code erzeugen"
#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
#. sections. machopic_select_section ensures that weak variables go in
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
-#, fuzzy
+#: config/darwin.h:395
msgid "alias definitions not supported in Mach-O; ignored"
-msgstr "Alias-Definitionen werden in dieser Konfiguration nicht unterstützt; ignoriert"
+msgstr "Alias-Definitionen werden nicht in Mach-O unterstützt; ignoriert"
#: config/lynx.h:137
-#, fuzzy
msgid "Use shared libraries"
-msgstr "ID-basierte Shared Library einschalten"
+msgstr "Shared Libraries verwenden"
#: config/lynx.h:138
msgid "Support multi-threading"
-msgstr ""
+msgstr "Multi-Threading unterstützen"
#: config/lynx.h:139
msgid "Support legacy multi-threading"
-msgstr ""
+msgstr "Altes Multi-Threading unterstützen"
#: config/windiss.h:37
msgid "profiler support for WindISS"
@@ -7706,29 +7603,29 @@ msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr "-mieee-with-inexact für Unicos/Mk nicht unterstützt"
#: config/alpha/alpha.c:306
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mtrap-precision switch"
-msgstr "falscher Wert »%s« für Schalter -mtrap-precision"
+msgstr "falscher Wert %qs für Schalter -mtrap-precision"
#: config/alpha/alpha.c:320
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mfp-rounding-mode switch"
-msgstr "Falscher Wert »%s« für Schalter -mfp-rounding-mode"
+msgstr "Falscher Wert %qs für Schalter -mfp-rounding-mode"
#: config/alpha/alpha.c:335
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mfp-trap-mode switch"
-msgstr "Falscher Wert »%s« für Schalter -mfp-trap-mode"
+msgstr "Falscher Wert %qs für Schalter -mfp-trap-mode"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
-#, fuzzy, c-format
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
+#, c-format
msgid "bad value %qs for -mtls-size switch"
-msgstr "Falscher Wert »%s« für Schalter -mtls-size"
+msgstr "Falscher Wert %qs für Schalter -mtls-size"
#: config/alpha/alpha.c:366 config/alpha/alpha.c:378
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mcpu switch"
-msgstr "Falscher Wert (%s) für Schalter -mcpu"
+msgstr "Falscher Wert %qs für Schalter -mcpu"
#: config/alpha/alpha.c:385
msgid "trap mode not supported on Unicos/Mk"
@@ -7756,95 +7653,95 @@ msgid "L%d cache latency unknown for %s"
msgstr "L%d Cache-Wartezeit unbekannt für %s"
#: config/alpha/alpha.c:460
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mmemory-latency"
-msgstr "Falscher Wert »%s« für -mmemory-latency"
+msgstr "Falscher Wert %qs für -mmemory-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "Ungültiger %%H-Wert"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr "Ungültiger %%J-Wert"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "Ungültiger %%r-Wert"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "Ungültiger %%R-Wert"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "Ungültiger %%N-Wert"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "Ungültiger %%P-Wert"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "Ungültiger %%h-Wert"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "Ungültiger %%L-Wert"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "Ungültiger %%m-Wert"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "Ungültiger %%M-Wert"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "Ungültiger %%U-Wert"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "Ungültiger %%s-Wert"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "Ungültiger %%C-Wert"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "Ungültiger %%E-Wert"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr "Unbekanntes relocation unspec"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "Ungültiger %%xn-Code"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr "Falscher eingebauter fcode"
@@ -7861,14 +7758,14 @@ msgstr "Falscher eingebauter fcode"
#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Hardware-FP verwenden"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "Hardware-FP nicht verwenden"
@@ -7987,7 +7884,7 @@ msgstr "Die Präzision der FP-Ausnahmen steuern"
msgid "Tune expected memory latency"
msgstr "Die erwartete Speicher-Wartezeit abstimmen"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr "Bit-Breite des unmittelbaren TLS-Versatzes angeben"
@@ -7997,26 +7894,26 @@ msgid "bad value (%s) for -mcpu switch"
msgstr "Falscher Wert (%s) für Schalter -mcpu"
#: config/arc/arc.c:394
-#, fuzzy, c-format
+#, c-format
msgid "argument of %qs attribute is not a string constant"
-msgstr "Argument des Attributes »%s« ist keine Zeichenkettenkonstante"
+msgstr "Argument des Attributes %qs ist keine Zeichenkettenkonstante"
#: config/arc/arc.c:401
-#, fuzzy, c-format
+#, c-format
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
-msgstr "Argument des Attributes »%s« ist nicht \"ilink1\" oder \"ilink2\""
+msgstr "Argument des Attributes %qs ist nicht \"ilink1\" oder \"ilink2\""
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr "Ungültiger Operand für %%R-Code"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "Ungültiger Operand für %%H/%%L-Code"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr "Ungültiger Operand für %%U-Code"
@@ -8028,168 +7925,164 @@ msgstr "Ungültiger Operand für %%V-Code"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "Ungültiger Operanden-Ausgabecode"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "Schalter -mcpu=%s steht in Konflikt mit dem Schalter -march="
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "Falscher Wert (%s) für Schalter %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "Ziel-CPU unterstützt keine Zusammenarbeit"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr "Ziel-CPU unterstützt keine THUMB-Befehle"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "Das Aktivieren der Ablaufverfolgung ist nur bei der Übersetzung für THUMB sinnvoll"
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "Das Aktivieren der Unterstützung der Aufgerufenen-Zusammenarbeit ist nur bei der Übersetzung für THUMB sinnvoll"
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr "Das Aktivieren der Unterstützung der Aufrufer-Zusammenarbeit ist nur bei der Übersetzung für THUMB sinnvoll"
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check inkompatibel mit -mno-apcs-frame"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic und -mapcs-reent sind inkompatibel"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "wieder einsprungsfähiger APCS Code nicht unterstützt. Ignoriert."
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g mit -mno-apcs-frame könnte vernünftige Fehlersuche verhindern"
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "Die Übergabe von Fließkommaargumenten in FP-Registern wird noch nicht unterstützt"
-#: config/arm/arm.c:1004
-#, fuzzy, c-format
+#: config/arm/arm.c:1018
+#, c-format
msgid "invalid ABI option: -mabi=%s"
-msgstr "ungültige Option »%s«"
+msgstr "ungültige ABI-Option -mabi=%s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
-msgstr ""
+msgstr "iwmmxt erfordert ein AAPCS-komptibles ABI für den richtigen Einsatz"
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
-msgstr ""
+msgstr "iwmmxt ABI erfordert eine iwmmxt-fähige CPU"
-#: config/arm/arm.c:1023
-#, fuzzy, c-format
+#: config/arm/arm.c:1037
+#, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "Ungültige Option für Fließkommaemulation: -mfpe-%s"
-#: config/arm/arm.c:1040
-#, fuzzy, c-format
+#: config/arm/arm.c:1054
+#, c-format
msgid "invalid floating point option: -mfpu=%s"
-msgstr "Ungültige Option für Fließkommaemulation: -mfpe-%s"
+msgstr "Ungültige Fließkommaoption: -mfpu=%s"
-#: config/arm/arm.c:1081
-#, fuzzy, c-format
+#: config/arm/arm.c:1095
+#, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
-msgstr "Ungültige Option für Fließkommaemulation: -mfpe-%s"
+msgstr "Ungültiges Fließkomma-ABI: -mfloat-abi=%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
-msgstr ""
+msgstr "-mfloat-abi=hard und VFP"
-#: config/arm/arm.c:1122
-#, fuzzy, c-format
+#: config/arm/arm.c:1136
+#, c-format
msgid "structure size boundary can only be set to %s"
-msgstr "Grenze für Strukturgrößen kann nur auf 8 oder 32 gesetzt werden"
+msgstr "Grenze für Strukturgröße kann nur auf %s gesetzt werden"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= ist ohne -fpic nutzlos"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "»%s« kann nicht für PIC-Register verwendet werden"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
-#, fuzzy, c-format
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
+#, c-format
msgid "%qs attribute only applies to functions"
-msgstr "Attribut »%s« gilt nur für Funktionen"
+msgstr "Attribut %qs gilt nur für Funktionen"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
-#, fuzzy
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
msgid "predicated Thumb instruction"
-msgstr "Zeichenbefehle erzeugen"
+msgstr "angegebene Thumb-Anweisung"
-#: config/arm/arm.c:10391
-#, fuzzy
+#: config/arm/arm.c:10460
msgid "predicated instruction in conditional sequence"
-msgstr "ret-Befehl nicht implementiert"
+msgstr "angegebene Anweisung in bedingter Sequenz"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
-#, fuzzy, c-format
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
+#, c-format
msgid "invalid operand for code '%c'"
-msgstr "ungültiger Operandencode »%c«"
+msgstr "ungültiger Operande für Code »%c«"
-#: config/arm/arm.c:10558
-#, fuzzy
+#: config/arm/arm.c:10627
msgid "instruction never exectued"
-msgstr "unbedingtes %2d niemals ausgeführt\n"
+msgstr "Anweisung wird niemals ausgeführt"
-#: config/arm/arm.c:10683
-#, fuzzy
+#: config/arm/arm.c:10752
msgid "missing operand"
-msgstr "öffnende Klammer fehlt"
+msgstr "fehlender Operand"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr "Wirkliche Stelle des gestapelten Parameters kann nicht berechnet werden"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "Wähler muss »immediate« sein"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "Maske muss »immediate« sein"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr "keine unteren Register für das Hervorholen der hohen Register verfügbar"
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "Interrupt-Dienst-Routinen können nicht im »Thumb«-Modus codiert werden"
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "%Jinitialisierte Variable »%D« ist als »dllimport« markiert"
@@ -8231,7 +8124,7 @@ msgstr "Aufrufe zwischen Thumb- und ARM-Befehlssätzen unterstützen"
#: config/arm/arm.h:342
msgid "Generate a call to abort if a noreturn function returns"
-msgstr "Aufruf zum Abbruch erzeugen, wenn eine »noreturn«-Funktion zurückkehrt"
+msgstr "Aufruf zum Abbruch erzeugen, wenn eine »noreturn«-Funktion zurückkehrt"
#: config/arm/arm.h:345
msgid "Do not move instructions into a function's prologue"
@@ -8282,14 +8175,12 @@ msgid "Specify the name of the target architecture"
msgstr "Namen der Ziel-Architektur angeben"
#: config/arm/arm.h:389
-#, fuzzy
msgid "Specify the name of the target floating point hardware/format"
-msgstr "Version des Fließkommaemulators angeben"
+msgstr "Namen der Fließkommahardware/-format des Zielsystems angeben"
#: config/arm/arm.h:391
-#, fuzzy
msgid "Specify if floating point hardware should be used"
-msgstr "yes/no angeben; je nachdem, ob Fließkomma in den GPRs verwendet wird"
+msgstr "Angeben, ob Fließkommahardware verwendet werden sollte"
#: config/arm/arm.h:393
msgid "Specify the minimum bit alignment of structures"
@@ -8299,74 +8190,84 @@ msgstr "Kleinste Bitausrichtung von Strukturen angeben"
msgid "Specify the register to be used for PIC addressing"
msgstr "Für PIC-Adressierung zu verwendendes Register angeben"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr "ABI angeben"
#: config/arm/arm.h:398
msgid "Alias for -mfloat-abi=soft"
-msgstr ""
+msgstr "Alias für -mfloat-abi=soft"
#: config/arm/arm.h:400
msgid "Alias for -mfloat-abi=hard"
-msgstr ""
+msgstr "Alias für -mfloat-abi=hard"
#: config/arm/pe.h:59
msgid "Ignore dllimport attribute for functions"
msgstr "Attribut dllimport für Funktionen ignorieren"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "Wechsel großer Rahmenzeiger (%d) mit -mtiny-stack"
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr "Falsche Adresse, nicht (reg+disp):"
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr "Interner Compiler-Fehler. Falsche Adresse:"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr "Interner Compiler-Fehler. Unbekannter Modus:"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
msgid "invalid insn:"
msgstr "Ungültiger Befehl:"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr "Falscher Befehl:"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr "Falscher Kopierbefehl:"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr "Falscher Schiebe-Befehl:"
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr "Interner Compiler-Fehler. Falsche Verschiebung:"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
msgid "only initialized variables can be placed into program memory area"
msgstr "Nur initialisierte Variablen können im Programmspeicherbereich platziert werden"
-#: config/avr/avr.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr "»%s« scheint ein falsch geschriebener Interrupt-Handler zu sein"
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr "»%s« scheint ein falsch geschriebener Signal-Handler zu sein"
+
+#: config/avr/avr.c:4714
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr "Nur uninitialisierte Variablen können im .noinit-Bereich platziert werden"
-#: config/avr/avr.c:4615
-#, fuzzy, c-format
+#: config/avr/avr.c:4728
+#, c-format
msgid "MCU %qs supported for assembler only"
-msgstr "MCU »%s« nur für Assemblierung unterstützt"
+msgstr "MCU %qs nur für Assemblierung unterstützt"
#: config/avr/avr.h:73
msgid "Assume int to be 8 bit integer"
@@ -8751,242 +8652,233 @@ msgstr "Höchstzahl der Iterationen für RPTS angeben"
msgid "Select CPU to generate code for"
msgstr "CPU auswählen, für die Code erzeugt werden soll"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr "unerwarteter Indextyp in cris_print_index"
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr "unerwarteter Basistyp in cris_print_index"
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "Stapelrahmen zu groß: %d Bytes"
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr "zugewiesene aber unbenutzte Verzögerungsliste in Epilog"
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "Unerwarteter Funktionstyp benötigt Stapelausrichtung für __builtin_eh_return"
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr "ungültiger Operand für Modifizierer »b«"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr "ungültiger Operand für Modifizierer »v«"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr "ungültiger Operand für Modifizierer »P«"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr "ungültiger Operand für Modifizierer »p«"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr "ungültiger Operand für Modifizierer »z«"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr "ungültiger Operand für Modifizierer »H«"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr "falsches Register"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr "ungültiger Operand für Modifizierer »e«"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr "ungültiger Operand für Modifizierer »m«"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr "ungültiger Operand für Modifizierer »A«"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr "ungültiger Operand für Modifizierer »D«"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr "ungültiger Operand für Modifizierer »T«"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
-msgstr "ungültiger Operand für Modifizier-Buchstaben"
+msgstr "ungültiger Operand für Modifizierer-Buchstaben"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "interner Fehler: falsches Register: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr "unerwarteter multiplikativer Operand"
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr "unerwarteter Operand"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "unerkannte Adresse"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr "interner Fehler: Seiteneffekt-Befehl wirkt sich auf Haupteffekt aus"
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr "interner Fehler: cris_side_effect_mode_ok mit falschen Operanden"
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr "unerkannte vermutete Konstante"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "unerkannte vermutete Konstante in cris_global_pic_symbol"
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "-max-stackframe=%d ist nicht verwendbar, nicht zwischen 0 und %d"
-#: config/cris/cris.c:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr "unbekannte CRIS-Versionsangabe in -march= oder -mcpu= : %s"
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "unbekannte CRIS-CPU-Versionsangabe in -mtune= : %s"
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "-fPIC und -fpic werden in dieser Konfiguration nicht unterstützt"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr "diese spezielle Option -g ist mit -maout und -melinux ungültig"
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr "unerwartete Seiteneffekte in Adresse"
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr "unerwartetes PIC-Symbol"
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr "PIC-Register ist nicht vorbereitet"
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr "unerwarteter Adressausdruck"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr "PIC-Operand wird ausgegeben, aber PIC-Register ist nicht vorbereitet"
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr "unerwartetes NOTE als addr_const:"
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr "Für das MMU-lose Etrax 100-basierte elinux-System übersetzen"
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr "Für elinux eine angegebene Stapelgröße für diese Programm anfordern"
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
msgid "Work around bug in multiplication instruction"
msgstr "Fehler in Multiplikationsbefehl umgehen"
#. 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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Für ETRAX 4 (CRIS v3) übersetzen"
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Für ETRAX 100 (CRIS v8) übersetzen"
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr "Ausführliche Informationen zur Fehlersuche im Assemblercode ausgeben"
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr "Keine Bedingungscodes normaler Befehle verwenden"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "Keine Adressierungsmodi mit Seiteneffektzuweisungen ausgeben"
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr "Stapelausrichtung nicht optimieren"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr "Ausrichtung der schreibbaren Daten nicht optimieren"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr "Ausrichtung von Code und der Nur-Lese-Daten nicht optimieren"
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr "Code und Daten auf 32 Bit ausrichten"
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr "Code- und Datenelemente nicht ausrichten"
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
msgid "Do not emit function prologue or epilogue"
msgstr "Keinen Funktionsprolog oder -epilog ausgeben"
#. 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:422
+#: config/cris/cris.h:414
msgid "Use the most feature-enabling options allowed by other options"
msgstr "Die meisten Optionen verwenden, die spezielle Fähigkeiten einschalten, solange sie durch andere Optionen erlaubt sind"
#. 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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr "-mbest-lib-options überschreiben"
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
msgid "Generate code for the specified chip or CPU version"
msgstr "Code für die angegebene Chip- oder CPU-Version erzeugen"
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr "Ausrichtung für den angegebenen Chip oder CPU optimieren"
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr "Warnen, wenn ein Stapelrahmen größer als die angegebene Größe ist"
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "kein FUNCTION_PROFILER for CRIS"
@@ -8994,46 +8886,46 @@ msgstr "kein FUNCTION_PROFILER for CRIS"
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "Keine GOTPLT-Referenzen zusammen mit -fpic und -fPIC verwenden"
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: unbehandelte Adresse"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: nicht erkannter Code %%p"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: nicht erkannter Code %%b"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: nicht erkannter Code %%B"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: ungültiger Operand für Code %%A"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: ungültiger Code %%x"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: ungültiger Code %%F"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: unbekannter Code"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: unbehandeltes MEM"
@@ -9041,145 +8933,140 @@ msgstr "fr30_print_operand: unbehandeltes MEM"
msgid "Assume small address space"
msgstr "Kleinen Adressraum annehmen"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr "Unbekannte CPU: -mcpu=%s"
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr "Falscher Befehl für frv_print_operand_address:"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr "Falsches Register für frv_print_operand_memory_reference_reg:"
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr "Falscher Befehl für frv_print_operand_memory_references"
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+msgid "bad condition code"
+msgstr "Falscher Bedingungscode"
+
+#: config/frv/frv.c:2796
msgid "Bad insn in frv_print_operand, bad const_double"
msgstr "Falscher Befehl in frv_print_operand, falsches const_double"
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "Falscher Befehl für frv_print_operand, Modifizierer »C«:"
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "Falscher Befehl für frv_print_operand, Modifizierer »c«: "
-
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »e«:"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »F«:"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »f«:"
-#: config/frv/frv.c:2878
-#, fuzzy
+#: config/frv/frv.c:2895
msgid "Bad insn to frv_print_operand, 'g' modifier:"
-msgstr "Falscher Befehl für frv_print_operand, Modifizierer »C«:"
+msgstr "Falscher Befehl für frv_print_operand, Modifizierer »g«:"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »L«:"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »M/N«:"
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »O«:"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr "Falscher Befehl für frv_print_operand, Modifizierer »P«:"
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr "Falscher Befehl für frv_print_operand, Fall »z«:"
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr "Falscher Befehl für frv_print_operand, Fall 0:"
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr "frv_print_operand: unbekannter Code"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr "Falscher Operand für output_mode_single"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr "Falscher Operand für output_move_double"
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr "Falscher Operand für output_condmove_single"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr "Akkumulator ist keine Ganzzahlkonstante"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr "Akkumulatorzahl außerhalb der Grenzen"
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, fuzzy, c-format
msgid "inappropriate accumulator for %qs"
msgstr "unpassender Akkumulator für »%s«"
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "ungültiges Typargument"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, fuzzy, c-format
msgid "%qs expects a constant argument"
msgstr "»%s« erwartet ein konstantes Argument"
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "Konstantes Argument außerhalb des Wertebereiches für »%s«"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr "Medienfunktionen sind ohne -mmedia nicht verfügbar"
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr "diese Medienfunktion ist nur auf dem fr500 verfügbar"
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
#, fuzzy
msgid "this media function is only available on the fr400 and fr550"
msgstr "diese Medienfunktion ist nur auf dem fr400 verfügbar"
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
#, fuzzy
msgid "this builtin function is only available on the fr405 and fr450"
msgstr "diese Medienfunktion ist nur auf dem fr400 verfügbar"
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
#, fuzzy
msgid "this builtin function is only available on the fr500 and fr550"
msgstr "diese Medienfunktion ist nur auf dem fr500 verfügbar"
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
#, fuzzy
msgid "this builtin function is only available on the fr450"
msgstr "diese Medienfunktion ist nur auf dem fr400 verfügbar"
@@ -9193,7 +9080,7 @@ msgstr "diese Medienfunktion ist nur auf dem fr400 verfügbar"
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr " (frv)"
@@ -9273,177 +9160,187 @@ msgstr "Keinen H8/300H-Code erzeugen"
msgid "Use H8/300 alignment rules"
msgstr "H8/300-Ausrichtungsregeln verwenden"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr "Codemodell %s wird im PIC-Modus nicht unterstützt"
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "Falscher Wert (%s) für Schalter -mcmodel="
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "Falscher Wert (%s) für Schalter -masm="
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "Codemodell »%s« wird im %s-Bit-Modus nicht unterstützt"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "Codemodell »large« wird noch nicht unterstützt"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "%i-Bit-Modus nicht einkompiliert"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "Die ausgewählte CPU unterstützt nicht den x86-64 Befehlssatz"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "Falscher Wert (%s) für Schalter -march="
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "Falscher Wert (%s) für Schalter -mtune="
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d ist nicht zwischen 0 und %d"
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops ist veraltet, Ersatz: -falign-loops"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d ist nicht zwischen 0 und %d"
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps ist veraltet, Ersatz: -falign-jumps"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions ist veraltet, Ersatz: -falign-functions"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr "-mpreferred-stack-boundary=%d ist nicht zwischen %d und 12"
-#: config/i386/i386.c:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d ist nicht zwischen 0 und 5"
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "Falscher Wert (%s) für Schalter -mtls-dialect="
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double ist im 64-Bit-Modus sinnlos"
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "Aufrufkonvention -mrtd wird im 64-Bit-Modus nicht unterstützt"
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "SSE-Befehlssatz ausgeschaltet, es wird 387-Arithmetik verwendet"
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "387-Befehlssatz ausgeschaltet, es wird SSE-Arithmetik verwendet"
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "Falscher Wert (%s) für Schalter -mfpmath="
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr "Attribute fastcall und stdcall sind nicht verträglich"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr "Attribute fastcall und regparm sind nicht verträglich"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "Attribut »%s« benötigt eine Ganzzahlkonstante als Argument"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "Argument für Attribut »%s« ist größer als %d"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+#, fuzzy
+msgid "SSE register return with SSE disabled"
+msgstr "SSE-Vektorrückgabe ohne eingeschaltetes SSE ändert das ABI"
+
+#: config/i386/i386.c:2567
+#, fuzzy
+msgid "SSE register argument with SSE disabled"
+msgstr "SSE-Vektorargument ohne eingeschaltetes SSE ändert das ABI"
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr "SSE-Vektorargument ohne eingeschaltetes SSE ändert das ABI"
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr "MMX-Vektorargument ohne eingeschaltetes MMX ändert das ABI"
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr "SSE-Vektorrückgabe ohne eingeschaltetes SSE ändert das ABI"
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "ungültiges UNSPEC als Operand"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr "erweiterte Register haben keine oberen Hälften"
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr "nicht unterstützte Operandengröße für erweitertes Register"
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr "Operand ist weder eine Konstante noch ein Bedingungscode, ungültiger Operandencode »c«"
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "ungültiger Operandencode »%c«"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
msgid "invalid constraints for operand"
msgstr "ungültige Bedingungen für Operand"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
msgid "unknown insn mode"
msgstr "unbekannter Befehlsmodus"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr "Wahl muss auf Ganzzahlkonstante im Bereich 0..%i fallen"
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr "Verschiebung muss direkt angegeben werden"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "»%s«-inkompatibles Attribut wird ignoriert"
@@ -9545,166 +9442,166 @@ msgstr "MS-Bitfelder nicht unterstützt für objc"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "Alternative Aufrufkonvention"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Normale Aufrufkonvention verwenden"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "Mehrere Doubles auf DWord-Grenze ausrichten"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "Doubles auf Wortgrenze ausrichten"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr "Nicht initialisierte lokale Symbole in .bss"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr "Nicht initialisierte lokale Symbole in .data"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "IEEE-Arithmetik für Fließkommavergleiche verwenden"
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "Keine IEEE-Arithmetik für Fließkommavergleiche verwenden"
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr "Funktionswerte über FPU-Register zurück geben"
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr "Funktionswerte nicht über FPU-Register zurück geben"
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "sin, cos und sqrt nicht für FPU erzeugen"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "sin, cos und sqrt für FPU erzeugen"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Rahmenzeiger in Blattfunktionen auslassen"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "Stapelsondierung einschalten"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "Ziel der Zeichenkettenoperationen ausrichten"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr "Ziel der Zeichenkettenoperationen nicht ausrichten"
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "Alle bekannten Zeichenkettenoperationen einbetten (inline)"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr "Bekannte Zeichenkettenoperationen nicht einbetten (inline)"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr "push-Befehle verwenden, um ausgehende Argumente zu sichern"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr "Keine push-Befehle verwenden, um ausgehende Argumente zu sichern"
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr "Eingebaute MMX-Funktionen unterstützen"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr "Eingebaute MMX-Funktionen nicht unterstützen"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr "Eingebaute 3DNow!-Funktionen unterstützen"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr "Eingebaute 3DNow!-Funktionen nicht unterstützen"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr "Eingebaute MMX- und SSE-Funktionen und Codeerzeugung unterstützen"
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr "Eingebaute MMX- und SSE-Funktionen und Codeerzeugung nicht unterstützen"
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "Eingebaute MMX-, SSE- und SSE2-Funktionen und Codeerzeugung unterstützen"
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "Eingebaute MMX-, SSE- und SSE2-Funktionen und Codeerzeugung nicht unterstützen"
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Eingebaute MMX-, SSE-, SSE2 und SSE3-Funktionen und Codeerzeugung unterstützen"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Eingebaute MMX-, SSE-, SSE2 und SSE3-Funktionen und Codeerzeugung nicht unterstützen"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) ist 16"
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) ist 12"
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr "64-Bit-x86-64-Code erzeugen"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr "32-Bit-i386-Code erzeugen"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr "MS-Bitfeld-Anordnung verwenden"
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr "Standard-GCC-Bitfeld-Anordnung verwenden"
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr "Rote Zone in x86-64-Code verwenden"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr "Rote Zone in x86-64-Code nicht verwenden"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr "Direkte Referenzen gegen %gs beim Zugriff auf TLS-Daten verwenden"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr "Keine direkten Referenzen gegen %gs beim Zugriff auf TLS-Daten verwenden"
@@ -9718,54 +9615,54 @@ msgstr "Keine direkten Referenzen gegen %gs beim Zugriff auf TLS-Daten verwenden
#. 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Code für die gegebene CPU planen"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
msgid "Generate floating point mathematics using given instruction set"
msgstr "Fließkommaarithmetik mit gegebenem Befehlssatz erzeugen"
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Code für die gegebene CPU erzeugen"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "Anzahl der zur Ãœbergabe von Ganzzahlargumenten verwendeten Register"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr "Schleifen zu dieser Zweierpotenz ausrichten"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr "Sprungziele werden zu dieser Zweierpotenz ausgerichtet"
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr "Funktionsanfänge werden zu dieser Zweierpotenz ausgerichtet"
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Versuch, den Stapel zu dieser Zweierpotenz auszurichten"
-#: config/i386/i386.h:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Verzweigungen sind so teuer wie hier angegeben (1-5, beliebige Einheit)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr "Gegebenes x86-64-Codemodell verwenden"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "Gegebenen Assemblerdialekt verwenden"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr "Gegebenen Thread-lokalen Speicherdialekt verwenden"
@@ -9806,58 +9703,58 @@ msgstr "Keinen FPU verwendenden Code erzeugen"
msgid "malformed #pragma builtin"
msgstr "Falsch geformtes #pragma builtin"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "ungültiges Argument für Attribut »%s«"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "%Jfür lokale Variablen kann kein Adressbereichsattribut angegeben werden"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "%JAdressbereich von »%s« in Konflikt mit vorheriger Deklaration"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "%JAdressbereichsattribut kann nicht für Funktionen angegeben werden"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: unbekannter Code"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "Wert von -mfixed-range muss die Form REG1-REG2 haben"
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s ist ein leerer Bereich"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
msgid "cannot optimize floating point division for both latency and throughput"
msgstr "Fließkommadivision kann nicht gleichzeitig auf Wartezeit und Durchsatz optimiert werden"
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
msgid "cannot optimize integer division for both latency and throughput"
msgstr "Ganzzahldivision kann nicht gleichzeitig auf Wartezeit und Durchsatz optimiert werden"
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr "Quadratwurzel kann nicht gleichzeitig auf Wartezeit und Durchsatz optimiert werden"
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr "noch nicht implementiert: Wartezeit-optimierte eingebettete Quadratwurzel"
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "Falscher Wert (%s) für Schalter -mtls-size="
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "Falscher Wert (%s) für Schalter -tune="
@@ -9865,174 +9762,170 @@ msgstr "Falscher Wert (%s) für Schalter -tune="
#. 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Big-Endian-Code erzeugen"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Little-Endian-Code erzeugen"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Code für GNU as erzeugen"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Code für Intel as erzeugen"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Code für GNU ld erzeugen"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Code für Intel ld erzeugen"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "Code ohne GP-Register erzeugen"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr "Vor und nach flüchtig erweiterten asms Stop-Bits ausgeben"
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "Keine Stop-Bits vor und nach flüchtig erweiterten asms ausgeben"
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr "Code für Itanium (TM) B step ausgeben"
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "in/loc/out-Registernamen ausgeben"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "Verwendung von sdata/scommon/sbss ausschalten"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "Verwendung von sdata/scommon/sbss einschalten"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp ist konstant (aber gp wird bei indirekten Aufrufen gesichert/wiederhergestellt)"
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "Selbstverschiebbaren Code erzeugen"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr "Eingebettete Fließkommadivision erzeugen, auf Wartezeit optimieren"
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr "Eingebettete Fließkommadivision erzeugen, auf Durchsatz optimieren"
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
#, fuzzy
msgid "Do not inline floating point division"
msgstr "Fließkommakonstanten nicht ins TOC legen"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr "Eingebettete Ganzzahldivision erzeugen, auf Wartezeit optimieren"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr "Eingebettete Ganzzahldivision erzeugen, auf Durchsatz optimieren"
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "Indizierte Adressierung nicht ausschalten"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr "Eingebettete Quadratwurzel erzeugen, auf Wartezeit optimieren"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr "Eingebettete Quadratwurzel erzeugen, auf Durchsatz optimieren"
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
#, fuzzy
msgid "Do not inline square root"
msgstr "Leerregister nicht ausschalten"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "Dwarf 2 Zeilenfehlersuchinfo über GNU as einschalten"
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "Dwarf 2 Zeilenfehlersuchinfo über GNU as ausschalten"
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr "Frühere Stop-Bit-Platzierung für bessere Planung einschalten"
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr "Frühere Stop-Bit-Platzierung ausschalten"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr "Bereich der zu fixierenden Register angeben"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr "Falscher Operand"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "Falscher Wert (%s) für Schalter -mcpu="
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, c-format
msgid "The compiler does not support -march=%s."
msgstr "Der Compiler unterstützt nicht -march=%s."
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr "gp_offset (%ld) oder end_offset (%ld) ist kleiner als null."
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "Argument »%d« ist keine Konstante"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, Null-Zeiger"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: Unbekanntes Zeichen '%c'"
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND Null-Zeiger"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr "unbekannter Operand für %%P"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "unbekannter Wert für %%p"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ungültige Verwendung von %%d, %%x oder %%X"
@@ -10049,87 +9942,87 @@ msgstr "Relative GP sdata/sbss-Abschnitte verwenden"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "Relative GP sdata/sbss-Abschnitte nicht verwenden"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "ROM statt RAM verwenden"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "Nicht ROM statt RAM verwenden"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Uninitialisierte Konstanten im ROM ablegen (benötigt -membedded-data)"
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr "Keine uninitialisierte Konstanten im ROM ablegen"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "CPU für Planzwecke angeben"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr "CPU für Codeerzeugungszwecke angeben"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "falscher Wert (%s) für Schalter -mmodel"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "falscher Wert (%s) für Schalter -msdata"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "falscher Wert (%s) für -flush-trap=n (0<=n<=15)"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr "ungültiger Operand für Code %%s"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr "ungültiger Operand für Code %%p"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr "falscher Befehl für 'A'"
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "ungültiger Operand für Code %%T/%%B"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr "ungültiger Operand für Code %%N"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr "Pre-Increment-Adresse ist kein Register"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr "Pre-Decrement-Adresse ist kein Register"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr "Post-Increment-Adresse ist kein Register"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "Falsche Adresse"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr "lo_sum nicht von einem Register"
@@ -10158,11 +10051,11 @@ msgstr "Code-Größe: klein, mittel, groß"
msgid "Small data area: none, sdata, use"
msgstr "Kleiner Datenbereich: keiner, sdata, verwenden"
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr "Keine Funktionen zum Entleeren des Zwischenspeichers aufrufen"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr "Funktion zum Entleeren des Zwischenspeichers angeben"
@@ -10179,51 +10072,51 @@ msgstr "Abfangfunktionsnummer zum Entleeren des Zwischenspeichers angeben"
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "-f%s für 68HC11/68HC12 ignoriert (nicht unterstützt)"
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
#, fuzzy
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr "Attribute »trap« und »far« sind unverträglich, »far« wird ignoriert"
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
#, fuzzy
msgid "%<trap%> attribute is already used"
msgstr "Attribut »trap« wird bereits verwendet"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr "Kopierbefehl nicht behandelt"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr "ungültiges Register in Kopierbefehl"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr "ungültiger Operand in Befehl"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr "ungültiges Register in Befehl"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr "erster Operand muss ein hartes Register sein"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr "ungültiger Rotierbefehl"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr "Register IX, IY und Z im selben Befehl verwendet"
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr "Z-Register kann nicht ausgetauscht werden"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr "ungültiger Z-Register-Ersatz für Befehl"
@@ -10317,7 +10210,7 @@ msgstr "-msep-data und -mid-shared-library können nicht zusammen angegeben werd
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr "-fPIC wird derzeit nicht für 68000 oder 68010 unterstützt\n"
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt"
@@ -10456,7 +10349,7 @@ msgstr "Andere Aufrufkonvention mit 'RTD' verwenden"
msgid "ID of shared library to build"
msgstr "ID der zu bauenden Shared Library"
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "ungültige Option »-mstack-increment=%s«"
@@ -10513,137 +10406,139 @@ msgstr "Code für M*Core M340 erzeugen"
msgid "Maximum amount for a single stack increment operation"
msgstr "Größter Betrag für einzelne Stapelvergrößerungsoperation"
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "Falscher Wert (%s) für Schalter -mabi="
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr "-mips%s steht in Konflikt mit den anderen Architekturoptionen, die einen MIPS%d-Prozessor angeben"
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "-march=%s ist mit dem ausgewählten ABI unverträglich"
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr "-mgp64 mit einem 32-Bit-Prozessor verwendet"
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr "-mgp32 mit einem 64-Bit-ABI verwendet"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr "-mgp64 mit einem 32-Bit-ABI verwendet"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, c-format
msgid "unsupported combination: %s"
msgstr "nicht unterstützte Kombination: %s"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+#, fuzzy
+msgid "-mint64 is a deprecated option"
+msgstr "Typ ist veraltet"
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr "Erzeugung von »Branch Likely«-Befehlen eingeschaltet, aber nicht unterstützt durch Architektur"
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G ist mit PIC-Code unverträglich, was Standard ist"
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
#, fuzzy
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-frepo muss mit -c verwendet werden"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr "mips_debugger_offset mit nicht-Stapel/Rahmen/Argument-Zeiger aufgerufen"
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "interner Fehler: %%) ohne %%( in Assemblermuster gefunden"
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "interner Fehler: %%] ohne %%[ in Assemblermuster gefunden"
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "interner Fehler: %%> ohne %%< in Assemblermuster gefunden"
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "interner Fehler: %%} ohne %%{ in Assemblermuster gefunden"
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: unbekanntes Zeichen '%c'"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND, ungültiger Befehl für %%C"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND, ungültiger Befehl für %%N"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND, ungültiger Befehl für %%F"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND, ungültiger Befehl für %%W"
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "ungültiger %%x-Wert"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr "PRINT_OPERAND, ungültiger Operand für Auslagerung"
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "inkonsistente Aufrufe von »%s« nicht behandeln"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr "CPU-Name muss klein geschrieben sein"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr "Falscher Wert (%s) für %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr "Wie -mabi=32, nur heikler"
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -10653,64 +10548,64 @@ msgstr "Wie -mabi=32, nur heikler"
#. 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:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "64-Bit-»int«-Typ verwenden"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "64-Bit-»long«-Typ verwenden"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "32-Bit-»long«-Typ verwenden"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "lui/addiu-Adressladebefehle optimieren"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr "lui/addiu-Adressladebefehle nicht optimieren"
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
#, fuzzy
msgid "Use GNU as (now ignored)"
msgstr "GP-relative sdata/sbss-Abschnitte verwenden (jetzt ignoriert)"
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "GP-relative sdata/sbss-Abschnitte verwenden (jetzt ignoriert)"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "GP-relative sdata/sbss-Abschnitte nicht verwenden (jetzt ignoriert)"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr "Compiler-Statistik ausgeben (jetzt ignoriert)"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "Compiler-Statistik nicht ausgeben"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "Blockkopierbefehle nicht optimieren"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "Blockkopierbefehle optimieren"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "mips-tfile asm Nachbearbeitung verwenden"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "mips-tfile asm Nachbearbeitung nicht verwenden"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Software-Fließkomma verwenden"
@@ -10720,206 +10615,206 @@ msgstr "Software-Fließkomma verwenden"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "Hardware-Fließkomma verwenden"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "64-Bit-Fließkomma-Register verwenden"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "32-Bit-Fließkomma-Register verwenden"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "Allgemeine Register in 64 Bit Breite verwenden"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "Allgemeine Register in 32 Bit Breite verwenden"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Irix PIC verwenden"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "Irix PIC nicht verwenden"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "Indirekte Aufrufe verwenden"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "Keine indirekten Aufrufe verwenden"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Big-Endian Byte-Reihenfolge verwenden"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Little-Endian Byte-Reihenfolge verwenden"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "Nur single (32-bit) Fließkomma verwenden"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "Nicht nur single (32-bit) Fließkomma verwenden"
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "Hardware-Fließkommabefehle verwenden"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "POWER-Befehlssatz verwenden"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "Multiplizier-Zwischenspeicher verwenden"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "Keinen Multiplizier-Zwischenspeicher verwenden"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr "Keine verschmolzenen Multiplizier-/Addier-Befehle erzeugen"
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "Verschmolzene Multiplizier-/Addier-Befehle erzeugen"
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
#, fuzzy
msgid "Perform VR4130-specific alignment optimizations"
msgstr "End-Aufruf-Optimierung durchführen"
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
#, fuzzy
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr "Keine End-Aufruf-Optimierung durchführen"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "Frühen 4300-Hardware-Bug umgehen"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "Frühen 4300-Hardware-Bug nicht umgehen"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr "Fehler früher SB-1 Revision 2 Kerne umgehen"
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr "Fehler früher SB-1 Revision 2 Kerne nicht umgehen"
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
#, fuzzy
msgid "Work around R4000 errata"
msgstr "Frühen 4300-Hardware-Bug umgehen"
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
#, fuzzy
msgid "Don't work around R4000 errata"
msgstr "Frühen 4300-Hardware-Bug nicht umgehen"
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
#, fuzzy
msgid "Work around R4400 errata"
msgstr "Frühen 4300-Hardware-Bug umgehen"
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
#, fuzzy
msgid "Don't work around R4400 errata"
msgstr "Frühen 4300-Hardware-Bug nicht umgehen"
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
#, fuzzy
msgid "Don't work around certain VR4120 errata"
msgstr "Frühen 4300-Hardware-Bug nicht umgehen"
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Ganzzahldivision durch Null abfangen"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "Ganzzahldivision durch Null nicht abfangen"
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
#, fuzzy
msgid "Use trap to check for integer divide by zero"
msgstr "Ganzzahldivision durch Null abfangen"
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
#, fuzzy
msgid "Use break to check for integer divide by zero"
msgstr "Ganzzahldivision durch Null abfangen"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr "»Branch Likely«-Befehle verwenden, Standard für die Architektur aufheben"
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr "Nicht »Branch Likely«-Befehle verwenden, Standard für die Architektur aufheben"
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr "%reloc()-Assebmleroperatoren im NewABI-Stil verwenden"
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr "Assemblermakros statt Auslagerungsoperatoren verwenden"
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
msgid "Generate mips16 code"
msgstr "mips16-Code erzeugen"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
msgid "Generate normal-mode code"
msgstr "Code im normalen Modus erzeugen"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr "Beschränkungen für GOT-Größe aufheben"
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr "Beschränkungen für GOT-Größe nicht aufheben"
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "angeschaltete Optionen: "
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "angeschaltete Optionen: "
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr "Standard MIPS ISA angeben"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "Profiling für mips16-Funktionen"
@@ -10946,70 +10841,70 @@ msgstr "function_profiler-Unterstützung für MMIX"
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr "MMIX-intern: Letzte benannte Vararg würde nicht in ein Register passen"
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX-intern: CONST_INT erwartet, aber nicht dies"
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX-intern: Falsches Register: %d"
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr "MMIX-intern: Falscher Wert für 'm', kein CONST_INT"
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX-intern: Register erwartet, aber nicht dies"
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr "MMIX-intern: Konstante erwartet, aber nicht dies"
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, fuzzy, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr "MMIX-intern: Fall »%c« fehlt in mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX-internal: Dieser Operand kann nicht dekodiert werden"
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX-intern: Diese Adresse wird nicht erkannt"
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr "Stapelrahmen ist kein Vielfaches von 8 Bytes: %d"
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr "Stapelrahmen ist kein Vielfaches eines Octabytes: %d"
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr "MMIX-intern: %s ist kein schiebbares int"
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX-intern: Versuch, ungültig umgekehrte Bedingung auszugeben:"
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX-intern: Was ist der CC davon?"
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX-intern: Was ist der CC davon?"
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX-intern: Dies ist keine Konstante:"
@@ -11082,15 +10977,15 @@ msgstr "Einen einzigen Austrittspunkt für jede Funktion erzeugen"
msgid "Do not generate a single exit point for each function"
msgstr "Nicht unbedingt einen einzigen Austrittspunkt für jede Funktion erzeugen"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "Auf AM33-Prozessor abzielen"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr "Auf AM33/2.0-Prozessor abzielen"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr "Binderlockerung einschalten"
@@ -11174,7 +11069,7 @@ msgstr "»Kleine Registerklassen«-Kludge"
msgid "No \"Small register classes\" kludge"
msgstr "Keine »Kleine Registerklassen«-Kludge"
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11183,7 +11078,7 @@ msgstr ""
"Unbekannte Option für -mschedule= (%s).\n"
"Gültige Optionen sind 700, 7100, 7100LC, 7200, 7300, und 8000\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11192,7 +11087,7 @@ msgstr ""
"Unbekannte Option für -march= (%s).\n"
"Gültige Optionen sind 1.0, 1.1, und 2.0\n"
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11201,7 +11096,7 @@ msgstr ""
"Unbekannte Option für -march= (%s).\n"
"Gültige Optionen sind 1.0, 1.1, und 2.0\n"
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11210,7 +11105,7 @@ msgstr ""
"Unbekannte Option für -march= (%s).\n"
"Gültige Optionen sind 1.0, 1.1, und 2.0\n"
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11219,27 +11114,32 @@ msgstr ""
"Unbekannte Option für -march= (%s).\n"
"Gültige Optionen sind 1.0, 1.1, und 2.0\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "PIC-Code-Generierung wird im portierbaren Laufzeitmodell nicht unterstützt\n"
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "PIC-Code-Generierung ist mit schnellen indirekten Aufrufen unverträglich\n"
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g wird nur bei der Verwendung von GAS auf diesem Prozessor unterstützt"
-#: config/pa/pa.c:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr "Option -g ausgeschaltet"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr "cpp-Defines für Server-IO erzeugen"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr "cpp-Defines für Workstation-IO erzeugen"
@@ -11388,11 +11288,11 @@ msgstr "Bereich der zu fixierenden Register angeben"
msgid "Specify CPU for scheduling purposes."
msgstr "CPU für Planzwecke angeben"
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr "Code als später mit GNU ld gebunden annehmen"
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr "Code als später mit HP ld gebunden annehmen"
@@ -11529,211 +11429,246 @@ msgstr "Zahl muss 0 oder 1 sein"
msgid "junk at end of #pragma longcall"
msgstr "Ausschuss am Ende von #pragma longcall"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple wird auf »little endian«-Systemen nicht unterstützt"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring wird auf »little endian«-Systemen nicht unterstützt"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "unbekannter Schalter -mdebug-%s"
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
#, fuzzy
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr "unbekanntes Argument »%s« für -mtraceback; »full«, »partial« oder »none« erwartet"
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "Unbekannter Schalter -mlong-double-%s"
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr "AltiVec- und E500-Befehle können nicht koexistieren"
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "unbekannte Option für -m%s= angegeben: »%s«"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr "nicht für ABI konfiguriert: »%s«"
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "unbekanntes ABI angegeben: »%s«"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "ungültige Bedingungen für Operand"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "unbekannte Option -malign-XXXXX angegeben: »%s«"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "Wert kann nicht in Vektorregister zurückgegeben werden, da AltiVec-Befehle ausgeschaltet sind; -maltivec schaltet sie ein."
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "Argument kann nicht in Vektorregister übergegeben werden, da AltiVec-Befehle ausgeschaltet sind; -maltivec schaltet sie ein."
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
msgid "argument 1 must be a 5-bit signed literal"
msgstr "Argument 1 muss ein vorzeichenbehaftetes 5-Bit-Symbol sein"
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr "Argument 2 muss ein vorzeichenloses 5-Bit-Symbol sein"
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "Argument 1 von __builtin_altivec_predicate muss eine Konstante sein"
-#: config/rs6000/rs6000.c:6802
+#: config/rs6000/rs6000.c:6901
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "Argument 1 von __builtin_altivec_predicate ist außerhalb des Wertebereiches"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr "Argument 3 muss ein vorzeichenloses 4-Bit-Symbol sein"
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "Argument für »%s« muss ein vorzeichenloses 2-Bit-Symbol sein"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "Argument für dss muss ein vorzeichenloses 2-Bit-Symbol sein"
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7363
#, fuzzy, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr "ungültige Parameterkombination für intrinsisches »%s« AltiVec"
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr "Argument 1 von __builtin_spe_predicate muss eine Konstante sein"
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7670
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "Argument 1 von __builtin_spe_predicate ist außerhalb des Wertebereiches"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "ungültiger %%f-Wert"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "ungültiger %%F-Wert"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "ungültiger %%G-Wert"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "ungültiger %%j-Code"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "ungültiger %%J-Code"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "ungültiger %%k-Wert"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "ungültiger %%K-Wert"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "ungültiger %%O-Wert"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "ungültiger %%q-Wert"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "ungültiger %%S-Wert"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "ungültiger %%T-Wert"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "ungültiger %%u-Wert"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "ungültiger %%v-Wert"
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "Stapelrahmen zu groß: %d Bytes"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr "kein Profiling von 64-bit-Code für dieses ABI"
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+#, fuzzy
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
+
+#: config/rs6000/rs6000.c:17165
+#, fuzzy
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
+
+#: config/rs6000/rs6000.c:17169
+#, fuzzy
+msgid "use of %<long long%> in AltiVec types is invalid"
msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
-msgstr "Fließkommaargumente immer über Speicher übergeben"
+#: config/rs6000/rs6000.c:17171
+#, fuzzy
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
-msgstr "Fließkommaargumente nicht immer über Speicher übergeben"
+#: config/rs6000/rs6000.c:17173
+#, fuzzy
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17175
+#, fuzzy
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
+
+#: config/rs6000/rs6000.c:17177
+#, fuzzy
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr "Verwendung von »long« in AltiVec-Typen ist veraltet; »int« verwenden"
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "Message Passing mit paralleler Umgebung unterstützen"
@@ -11794,15 +11729,15 @@ msgstr "-maix64 setzt eingeschaltete PowerPC64-Architektur voraus"
msgid "-m64 not supported in this configuration"
msgstr "-m%s wird in dieser Konfiguration nicht unterstützt"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr "-m64 benötigt eine PowerPC64-CPU"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr "mcount für Profiling vor Funktionsprolog aufrufen"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr "mcount für Profiling nach Funktionsprolog aufrufen"
@@ -11949,7 +11884,7 @@ msgstr "Einzelfeld-mfcr-Befehl erzeugen"
msgid "Do not generate single field mfcr instruction"
msgstr "Keinen Einzelfeld-mfcr-Befehl erzeugen"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Eigenschaften und Programmplanung für gegebene CPU verwenden"
@@ -12021,7 +11956,7 @@ msgstr "Planungspriorität für Verteilschlitz-beschränkte Befehle angeben"
#. 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET nicht unterstützt"
@@ -12173,82 +12108,86 @@ msgstr "-mcall-aixdesc muss »big endian« sein"
msgid "-m%s not supported in this configuration"
msgstr "-m%s wird in dieser Konfiguration nicht unterstützt"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr "Unbekannte CPU verwendet in -march=%s."
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "Unbekannte CPU verwendet in -mtune=%s."
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "z/Architektur-Modus nicht unterstützt auf %s."
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "64-Bit-ABI nicht unterstützt im ESA/390-Modus"
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "Falscher Wert für -mcall-%s"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "Falscher Wert für -msdata=%s"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "Falscher Wert für -msdata=%s"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr "Adresse kann nicht zerlegt werden."
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr "UNKNOWN in print_operand !?"
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr "Gesamtgröße der lokalen Variablen übersteigt Grenze der Architektur."
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "Speichergröße von »%D« ist unbekannt"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12346,29 +12285,29 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs wird für dieses Teilziel nicht unterstützt"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr "Attribut interrupt_handler ist mit-m5-compact unverträglich"
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs attribute only applies to interrupt functions"
msgstr "Attribut »%s« bezieht sich nur auf Unterbrechungsfunktionen"
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs attribute argument not a string constant"
msgstr "Attributargument »%s« ist keine Zeichenkettenkonstante"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "Attributargument »%s« ist keine Ganzzahlkonstante"
@@ -12408,7 +12347,7 @@ msgstr "%JVariablendefinition von »%d« ist als dllimport markiert."
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr "%Jfür Symbol »%D« wird wegen des Attributes »%s« externe Bindung benötigt"
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr "Überprüfung von lang_*: in %s, bei %s:%d gescheitert"
@@ -12420,183 +12359,183 @@ msgstr "Überprüfung von lang_*: in %s, bei %s:%d gescheitert"
msgid "Profiling is not supported on this target."
msgstr "Profiling wird von diesem Ziel nicht unterstützt"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s wird von dieser Konfiguration nicht unterstützt"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 ist mit -m64 nicht erlaubt"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= wird auf 32-Bit-Systemen nicht unterstützt"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "ungültiger %%Y-Operand"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "ungültiger %%A-Operand"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "ungültiger %%B-Operand"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "ungültiger %%c-Operand"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "ungültiger %%C-Operand"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "ungültiger %%d-Operand"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "ungültiger %%D-Operand"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "ungültiger %%f-Operand"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, c-format
msgid "invalid %%s operand"
msgstr "ungültiger %%s-Operand"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr "»long long«-Konstante ist kein gültiger direkter Operand"
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr "Fließkommakonstante ist kein gültiger direkter Operand"
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "64-Bit long doubles verwenden"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "128-Bit-»long double«s verwenden"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Code für »big endian« erzeugen"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Code für »little endian« erzeugen"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr "»little-endian« Bytereihenfolge für Daten verwenden"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "Mögliche doppelte Fehlausrichtung annehmen"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Annehmen, dass alle doubles ausgerichtet sind"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "-assert pure-text an Binder übergeben"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "Nicht -assert pure-text an Binder übergeben"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "ABI-reservierte Register verwenden"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "Nicht ABI-reservierte Register verwenden"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "Hardware-Vierfach-Fließkommabefehle verwenden"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "Hardware-Vierfach-Fließkommabefehle nicht verwenden"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "Für v8plus-ABI-übersetzen"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "Nicht für v8plus-ABI-übersetzen"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Visuellen Befehlssatz verwenden"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "Nicht visuellen Befehlssatz verwenden"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "Zeiger sind 64 Bit"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "Zeiger sind 32 Bit"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "32-Bit-ABI verwenden"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "64-Bit-ABI verwenden"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "Stapelversatz verwenden"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "Nicht Stapelversatz verwenden"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr "Bei stärkerer Ausrichtung für Doppelwort-Kopien Structs verwenden"
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "Bei stärkerer Ausrichtung für Doppelwort-Kopien keine Structs verwenden"
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr "Ende-Aufruf-Befehle in Assembler und Binder optimieren"
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "Ende-Aufruf-Befehle in Assembler und Binder nicht optimieren"
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr "Gegebenes SPARC-Code-Modell verwenden"
@@ -12710,63 +12649,63 @@ msgstr "Ausschuss am Ende von #pragma ghs endsda"
msgid "junk at end of #pragma ghs endzda"
msgstr "Ausschuss am Ende von #pragma ghs endzda"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s ist nicht numerisch"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s ist zu groß"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr "const_double_split bekam einen falschen Befehl:"
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "%JDatenabschnittsattribute können nicht für lokale Variablen angegeben werden"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "%JDatenabschnitt von »%D« in Konflikt mit vorheriger Deklaration"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "nur simulierte JR-Konstruktion: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr "Falscher Betrag der Stapelspeicherentfernung: %d"
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "nur simulierte JARL-Konstruktion: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "nur simulierte DISPOSE-Konstruktion: %d\n"
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr "Zu viel Stapelspeicher zu entsorgen: %dd"
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "nur simulierte PREPARE-Konstruktion: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr "Zu viel Stapelspeicher vorzubereiten: %d"
@@ -12944,12 +12883,12 @@ msgstr "Indirekte CALLXn-Befehle für große Programme verwenden"
msgid "Use direct CALLn instructions for fast calls"
msgstr "Direkte CALLn-Befehle für schnelle Aufrufe verwenden"
-#: ada/misc.c:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr "fehlendes Argument für »-%s«"
-#: ada/misc.c:299
+#: ada/misc.c:298
#, fuzzy
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr "»-gnat« falsch buchstabiert als »-gant«"
@@ -12958,641 +12897,658 @@ msgstr "»-gnat« falsch buchstabiert als »-gant«"
msgid "unable to call pointer to member function here"
msgstr "Zeiger auf Elementfunktion kann hier nicht aufgerufen werden"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <eingebaut>"
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <eingebaut>"
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <eingebaut>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr "%s %T <Umformung>"
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr "%J%s %+#D <nahe Ãœbereinstimmung>"
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr "%J%s %+#D"
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr "Kandidaten sind:"
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "Umformung von »%T« in »%T« ist nicht eindeutig"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
#, fuzzy
msgid "no matching function for call to %<%D(%A)%>"
msgstr "keine passende Funktion für Aufruf von »%D(%A)«"
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
#, fuzzy
msgid "call of overloaded %<%D(%A)%> is ambiguous"
msgstr "Aufruf des überladenen »%D(%A)« ist nicht eindeutig"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr "Zeiger auf Elementfunktion %E kann nicht ohne Objekt aufgerufen werden; Beispiele: .* oder ->*"
-#: cp/call.c:2959
+#: cp/call.c:2965
#, fuzzy
msgid "no match for call to %<(%T) (%A)%>"
msgstr "keine Übereinstimmung für Aufruf von »(%T) (%A)«"
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "Aufruf von »(%T) (%A)« ist nicht eindeutig"
-#: cp/call.c:3005
+#: cp/call.c:3012
#, fuzzy
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr "%s für ternären »operator?:« in »%E ? %E : %E«"
-#: cp/call.c:3011
+#: cp/call.c:3018
#, fuzzy
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr "%s für »operator%s« in »%E%s«"
-#: cp/call.c:3015
+#: cp/call.c:3022
#, fuzzy
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr "%s für »operator[]« in »%E[%E]«"
-#: cp/call.c:3020
+#: cp/call.c:3027
#, fuzzy
msgid "%s for %qs in %<%s %E%>"
msgstr "%s für »%s« in »%s %E«"
-#: cp/call.c:3025
+#: cp/call.c:3032
#, fuzzy
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr "%s für »operator%s« in »%E %s %E«"
-#: cp/call.c:3028
+#: cp/call.c:3035
#, fuzzy
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr "%s für »operator%s« in »%s%E«"
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO-C++ verbietet das Auslassen des mittleren Terms eines »?:«-Ausdruckes"
-#: cp/call.c:3195
+#: cp/call.c:3202
#, fuzzy
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr "»%E« hat den Typ »void« und ist kein throw-Ausdruck"
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr "Operanden für ?: haben verschiedene Typen"
-#: cp/call.c:3398
-#, fuzzy
+#: cp/call.c:3405
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
-msgstr "Aufzählungsfehler in bedingtem Ausdruck: »%T« vs. »%T«"
+msgstr "Aufzählungsfehler in bedingtem Ausdruck: %qT vs. %qT"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "Aufzählungs- und Nicht-Aufzählungstyp in bedingtem Ausdruck"
-#: cp/call.c:3700
-#, fuzzy
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
-msgstr "kein »%D(int)« für Suffix »%s« deklariert, stattdessen wird Präfixoperator versucht"
+msgstr "kein %<%D(int)%> für Suffix %qs deklariert, stattdessen wird Präfixoperator versucht"
-#: cp/call.c:3753
-#, fuzzy
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
-msgstr "künstlich erstelltes »%#D« für Kopierzuweisung"
+msgstr "künstlich erstelltes %q#D für Kopierzuweisung wird verwendet"
-#: cp/call.c:3755
+#: cp/call.c:3761
#, fuzzy
msgid " where cfront would use %q#D"
msgstr " wobei cfront »%#D« verwenden würde"
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "Vergleich zwischen »%#T« und »%#T«"
-#: cp/call.c:4044
+#: cp/call.c:4052
#, fuzzy
msgid "no suitable %<operator %s> for %qT"
msgstr "kein geeignetes »operator %s« für »%T«"
-#: cp/call.c:4061
+#: cp/call.c:4069
#, fuzzy
msgid "%q+#D is private"
msgstr "»%+#D« ist privat"
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "»%+#D« ist geschützt"
-#: cp/call.c:4065
+#: cp/call.c:4073
#, fuzzy
msgid "%q+#D is inaccessible"
msgstr "»%+#D« ist unzugänglich"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr "in diesem Zusammenhang"
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "ungültige Umwandlung von »%T« in »%T«"
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr " Argument %P von »%D« wird initialisiert"
-#: cp/call.c:4300
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "Übergabe von NULL für Nicht-Zeiger %s %P von `%D' verwendet"
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "%s in Nicht-Zeiger-Typ »%T« von NULL"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "Übergabe von »%T« für %s %P von »%D«"
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "Umwandlung von »%T« nach »%T«"
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "Übergabe des negativen Werts »%E« für %s %P von »%D«"
+
+#: cp/call.c:4203
+#, fuzzy
+msgid "converting negative value %qE to %qT"
+msgstr "%s vom negativen Wert »%E« nach »%T«"
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "das Bitfeld »%E« kann nicht mit »%T« verbunden werden"
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
#, fuzzy
msgid "cannot bind packed field %qE to %qT"
msgstr "das gepackte Feld »%E« kann nicht mit »%T« verbunden werden"
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "der R-Wert »%E« kann nicht mit »%T« verbunden werden"
-#: cp/call.c:4401
+#: cp/call.c:4460
#, fuzzy
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr "Objekte des Nicht-POD-Typs »%#T« können nicht über »...« übergeben werden; Aufruf wird zur Laufzeit abbrechen"
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
#, fuzzy
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr "Objekte des Nicht-POD-Typs »%#T« können nicht über »...« empfangen werden; Aufruf wird zur Laufzeit abbrechen"
-#: cp/call.c:4470
+#: cp/call.c:4529
#, fuzzy
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "das Standardargument für den Parameter %d von »%D« wurde noch nicht gelesen"
-#: cp/call.c:4675
+#: cp/call.c:4734
#, fuzzy
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr "Die Übergabe von »%T« als »this«-Argument von »%#D« streicht Qualifizierer"
-#: cp/call.c:4694
+#: cp/call.c:4753
#, fuzzy
msgid "%qT is not an accessible base of %qT"
msgstr "»%T« ist keine erreichbare Basis von »%T«"
-#: cp/call.c:4944
+#: cp/call.c:5003
#, fuzzy
msgid "could not find class$ field in java interface type %qT"
msgstr "class$-Feld konnte nicht im Java-Schnittstellentyp »%T« gefunden werden"
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "Aufruf der Nicht-Funktion »%D«"
-#: cp/call.c:5231
+#: cp/call.c:5288
#, fuzzy
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr "Anforderung des Elements »%D« in »%E«, das vom Nicht-Aggregattyp »%T« ist"
-#: cp/call.c:5310
+#: cp/call.c:5367
#, fuzzy
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr "keine passende Funktion für Aufruf von »%T::%s(%A)%#V«"
-#: cp/call.c:5328
+#: cp/call.c:5385
#, fuzzy
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr "Aufruf des überladenen »%s(%A)« ist mehrdeutig"
-#: cp/call.c:5352
+#: cp/call.c:5409
#, fuzzy
msgid "cannot call member function %qD without object"
msgstr "Elementfunktion »%D« kann nicht ohne Objekt aufgerufen werden"
-#: cp/call.c:5957
+#: cp/call.c:6014
#, fuzzy
msgid "passing %qT chooses %qT over %qT"
msgstr "Übergabe von »%T« wählt »%T« (statt »%T«)"
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr " in Aufruf von »%D«"
-#: cp/call.c:6016
+#: cp/call.c:6073
#, fuzzy
msgid "choosing %qD over %qD"
msgstr "Wahl von »%D« (statt »%D«)"
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr " für Umwandlung von »%T« in »%T«"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr " denn die Umwandlungsfolge für das Argument ist besser"
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr "ISO C++ besagt, dass diese mehrdeutig sind, auch wenn die schlechteste Umwandlung für das erste besser ist als die schlechteste Umwandlung für das zweite:"
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr "Kandidat 1:"
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr "Kandidat 2:"
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "»%E« konnte nicht nach »%T« konvertiert werden"
-#: cp/call.c:6411
+#: cp/call.c:6469
#, fuzzy
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs »%T« von temporärem Wert des Typs »%T«"
-#: cp/call.c:6415
+#: cp/call.c:6473
#, fuzzy
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs »%T« von Ausdruck des Typs »%T"
-#: cp/class.c:273
+#: cp/class.c:272
#, fuzzy
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr "Es kann nicht von Basis »%T« in abgeleiteten Typ »%T« über virtuelle Basis »%T« gewandelt werden"
-#: cp/class.c:898
-#, fuzzy
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
-msgstr "Java-Klasse »%T« kann keinen impliziten nicht-trivialen Destruktor haben"
-
-#: cp/class.c:899
+#: cp/class.c:929
#, fuzzy
msgid "Java class %qT cannot have a destructor"
msgstr "Java-Klasse »%T« kann keinen Destruktor haben"
-#: cp/class.c:998
+#: cp/class.c:931
+#, fuzzy
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "Java-Klasse »%T« kann keinen impliziten nicht-trivialen Destruktor haben"
+
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "»%#D« und »%#D« können nicht überladen werden"
-#: cp/class.c:1055
+#: cp/class.c:1088
#, fuzzy
msgid "conflicting access specifications for method %qD, ignored"
msgstr "Zugriffsangaben für Methode »%D« stehen in Konflikt, ignoriert"
-#: cp/class.c:1058
+#: cp/class.c:1091
#, fuzzy, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr "Zugriffsangaben für Feld »%s« stehen in Konflikt, ignoriert"
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "»%D« benennt Konstruktor"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "»%D« ungültig in »%T«"
-#: cp/class.c:1121
+#: cp/class.c:1154
#, fuzzy
msgid "no members matching %qD in %q#T"
msgstr "kein Element passt zu »%D« in »%#T«"
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "»%D« ungültig in »%#T«"
-#: cp/class.c:1154
+#: cp/class.c:1187
#, fuzzy
msgid " because of local method %q#D with same name"
msgstr " wegen lokaler Methode »%#D« mit gleichem Namen"
-#: cp/class.c:1162
+#: cp/class.c:1195
#, fuzzy
msgid " because of local member %q#D with same name"
msgstr " wegen lokalem Element »%#D« mit gleichem Namen"
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "Basisklasse »%#T« hat nicht-virtuellen Destruktor"
-#: cp/class.c:1226
-#, fuzzy
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr "Basis »%T« ohne Standard-Konstruktor in Klasse ohne Konstruktor"
-
-#: cp/class.c:1534
+#: cp/class.c:1551
#, fuzzy
msgid "all member functions in class %qT are private"
msgstr "alle Elementfunktionen in Klasse »%T« sind privat"
-#: cp/class.c:1545
+#: cp/class.c:1562
#, fuzzy
msgid "%q#T only defines a private destructor and has no friends"
msgstr "»%#T« definiert nur einen privaten Destruktor und hat keine »friends«"
-#: cp/class.c:1585
+#: cp/class.c:1602
#, fuzzy
msgid "%q#T only defines private constructors and has no friends"
msgstr "»%#T« definiert nur private Konstruktoren und hat keine »friends«"
-#: cp/class.c:1923
+#: cp/class.c:1935
#, fuzzy
msgid "no unique final overrider for %qD in %qT"
msgstr "»%D« wurde nicht eindeutig und endgültig in »%T« überschrieben"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
#, fuzzy
msgid "%qD was hidden"
msgstr "»%D« war versteckt"
-#: cp/class.c:2380
+#: cp/class.c:2410
#, fuzzy
msgid " by %qD"
msgstr " von »%D«"
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
#, fuzzy
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr "»%#D« ungültig; eine anonyme Union kann nur nicht-statische Datentypen haben"
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
#, fuzzy
msgid "private member %q#D in anonymous union"
msgstr "privates Element »%#D« in anonymer Union"
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
#, fuzzy
msgid "protected member %q#D in anonymous union"
msgstr "geschütztes Element »%#D« in anonymer Union"
-#: cp/class.c:2545
-#, fuzzy
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr "vtable-Anordnung für Klasse »%T« könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen durch implizite virtuelle Destruktoren ändern"
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "Bit-Feld »%#D« ohne eingebauten Typ"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "Breite des Bitfeldes »%D« ist keine Ganzzahlkonstante"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "negative Breite in Bitfeld »%D«"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "Breite null für Bitfeld »%D«"
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "Breite von »%D« übersteigt seinen Typen"
-#: cp/class.c:2649
+#: cp/class.c:2671
#, fuzzy
msgid "%qD is too small to hold all values of %q#T"
msgstr "»%D« ist zu klein um alle Werte von »%#T« aufzunehmen"
-#: cp/class.c:2711
+#: cp/class.c:2731
#, fuzzy
msgid "member %q#D with constructor not allowed in union"
msgstr "Element »%#D« mit Konstruktor nicht erlaubt in Union"
-#: cp/class.c:2714
+#: cp/class.c:2734
#, fuzzy
msgid "member %q#D with destructor not allowed in union"
msgstr "Element »%#D« mit Destruktor nicht erlaubt in Union"
-#: cp/class.c:2717
+#: cp/class.c:2737
#, fuzzy
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr "Element »%#D« mit Zuweisungsoperator ist nicht erlaubt in Union"
-#: cp/class.c:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "in Union »%T« werden mehrere Felder initialisiert"
-#: cp/class.c:2810
+#: cp/class.c:2821
#, fuzzy
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr "»gepackt«-Attribut für ungepacktes nicht-POD-Feld »%#D« wird ignoriert"
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
msgstr "»%D« kann nicht static sein, da es ein Union-Element ist"
-#: cp/class.c:2875
+#: cp/class.c:2886
#, fuzzy
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr "»%D« darf keinen Referenztyp »%T« haben, da es ein Element einer Union ist"
-#: cp/class.c:2884
+#: cp/class.c:2895
#, fuzzy
msgid "field %qD in local class cannot be static"
msgstr "Feld »%D« in lokaler Klasse kann nicht statisch sein"
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "Feld »%D« deklarierte ungültigerweise einen Funktionstypen"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "Feld »%D« deklarierte ungültigerweise einen Methodentypen"
-#: cp/class.c:2929
+#: cp/class.c:2939
#, fuzzy
msgid "non-static reference %q#D in class without a constructor"
msgstr "nicht-statische Referenz »%#D« in Klasse ohne Konstruktor"
-#: cp/class.c:2977
+#: cp/class.c:2986
#, fuzzy
msgid "non-static const member %q#D in class without a constructor"
msgstr "nicht-statisches const-Element »%#D« in Klasse ohne einen Konstruktor"
-#: cp/class.c:2992
+#: cp/class.c:3001
#, fuzzy
msgid "field %q#D with same name as class"
msgstr "Feld »%#D« mit gleichem Namen wie die Klasse"
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "»%#T« hat Zeigertypen als Elemente"
-#: cp/class.c:3030
+#: cp/class.c:3038
#, fuzzy
msgid " but does not override %<%T(const %T&)%>"
msgstr " aber überschreibt nicht »%T(const %T&)«"
-#: cp/class.c:3032
+#: cp/class.c:3040
#, fuzzy
msgid " or %<operator=(const %T&)%>"
msgstr " oder »operator=(const %T&)«"
-#: cp/class.c:3035
+#: cp/class.c:3043
#, fuzzy
msgid " but does not override %<operator=(const %T&)%>"
msgstr " aber überschreibt nicht »operator=(const %T&)«"
-#: cp/class.c:3468
+#: cp/class.c:3476
#, fuzzy
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr "Versatz der leeren Basis »%T« könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen ändern"
-#: cp/class.c:3580
+#: cp/class.c:3588
#, fuzzy
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr "Klasse »%T« wird in zukünftigen GCC-Versionen als fast leer betrachtet werden"
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "Initialisierung für nicht-virtuelle Methode »%D« angegeben"
-#: cp/class.c:4321
+#: cp/class.c:4333
#, fuzzy
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr "Versatz der virtuellen Basis »%T« ist ABI-unverträglich und kann sich in zukünftigen GCC-Versionen ändern"
-#: cp/class.c:4420
+#: cp/class.c:4432
#, fuzzy
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr "direkte Basis »%T« ist in »%T« durch Mehrdeutigkeit unzugänglich"
-#: cp/class.c:4432
+#: cp/class.c:4444
#, fuzzy
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr "virtuelle Basis »%T« ist in »%T« durch Mehrdeutigkeit unzugänglich"
-#: cp/class.c:4603
+#: cp/class.c:4621
#, fuzzy
msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC"
msgstr "»%T« zugewiesene Größe könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen ändern"
#. Versions of G++ before G++ 3.4 did not reset the
#. DECL_MODE.
-#: cp/class.c:4642
+#: cp/class.c:4660
#, fuzzy
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr "der Versatz von »%D« könnte ABI-unverträglich sein und sich in einer zukünftigen GCC-Version ändern"
-#: cp/class.c:4665
+#: cp/class.c:4683
#, fuzzy
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr "Versatz von »%D« ist ABI-unverträglich und kann sich in zukünftigen GCC-Versionen ändern"
-#: cp/class.c:4675
+#: cp/class.c:4693
#, fuzzy
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr "»%D« enthält leere Klassen, die in zukünftigen GCC-Versionen die Basisklassen an andere Orte verschieben können"
-#: cp/class.c:4734
+#: cp/class.c:4753
#, fuzzy
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr "die Anordnung der von der leeren Klasse »%T« abgeleiteten Klassen könnte sich in zukünftigen GCC-Versionen ändern"
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "Redefinition von »%#T«"
-#: cp/class.c:5019
+#: cp/class.c:5042
#, fuzzy
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr "»%#T« hat virtuelle Funktionen aber nicht-virtuellen Destruktor"
-#: cp/class.c:5114
+#: cp/class.c:5139
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr "struct konnte wegen Syntaxfehlern nicht beendet werden"
-#: cp/class.c:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "Sprachen-Zeichenkette »\"%s\"« nicht erkannt"
-#: cp/class.c:5617
+#: cp/class.c:5642
#, fuzzy
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr "überladene Funktion »%D« konnte nicht durch Umwandlung in Typ »%T« aufgelöst werden"
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
msgstr "bei der Umwandlung der Funktion »%D« in den Typ »%#T« gab es keine Übereinstimmungen"
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr "Umwandung der überladenen Funktion »%D« in den Typ »%#T« ist mehrdeutig"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "Zeiger auf Element »%D« wird angenommen"
-#: cp/class.c:5794
+#: cp/class.c:5819
#, fuzzy
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr "(ein Zeiger auf ein Element kann nur mit »&%E« erzeugt werden)"
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "zu wenig Typinformationen"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "Argument des Typs »%T« passt nicht zu »%T«"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "ungültige Operation auf nicht instanziierten Typen"
@@ -13601,12 +13557,12 @@ msgstr "ungültige Operation auf nicht instanziierten Typen"
#. 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "Deklaration von »%#D«"
-#: cp/class.c:6273
+#: cp/class.c:6269
#, fuzzy
msgid "changes meaning of %qD from %q+#D"
msgstr "verändert die Bedeutung von »%D« von »%+#D«"
@@ -13631,194 +13587,204 @@ msgstr "»%E« kann nicht vom Typ »%T« in den Typ »%T« umgewandelt werden"
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr "Umwandlung von Zeiger auf Element von »%T« nach »%T« geschieht über virtuelle Basis"
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "Umwandlung von »%T« in »%T« löscht Qualifizierer"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "Umwandlung von »%T« in »%T« dereferenziert nicht den Zeiger"
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "Typ »%T« kann nicht in den Typ »%T« umgewandelt werden"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "Umwandlung von »%#T« nach »%#T«"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
#, fuzzy
msgid "%q#T used where a %qT was expected"
msgstr "»%#T« verwendet, wo »%T« erwartet wurde"
-#: cp/cvt.c:718
+#: cp/cvt.c:717
#, fuzzy
msgid "%q#T used where a floating point value was expected"
msgstr "»%#T« verwendet, wo ein Fließkommawert erwartet wurde"
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "Umwandlung von »%T« in nicht-skalaren Typen »%T« angefordert"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "Argumente für Destruktor sind nicht erlaubt"
+
+#: cp/cvt.c:857
#, fuzzy
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr "auf Objekt unvollständigen Typs »%T« wird in %s nicht zugegriffen"
-#: cp/cvt.c:856
+#: cp/cvt.c:860
#, fuzzy
msgid "object of type %qT will not be accessed in %s"
msgstr "auf Objekt des Typs »%T« wird in %s nicht zugegriffen"
-#: cp/cvt.c:872
+#: cp/cvt.c:876
#, fuzzy
msgid "object %qE of incomplete type %qT will not be accessed in %s"
msgstr "auf Objekt »%E« des unvollständigen Typs »%T« wird in %s nicht zugegriffen"
#. [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:888
+#: cp/cvt.c:892
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "%s kann die Adresse der überladenen Funktion nicht auflösen"
#. Only warn when there is no &.
-#: cp/cvt.c:894
+#: cp/cvt.c:898
#, fuzzy, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr "%s ist eine Referenz, kein Aufruf, zur Funktion »%E«"
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, c-format
msgid "%s has no effect"
msgstr "%s hat keinen Effekt"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "%Hberechneter Wert ist unbenutzt"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr "Umwandlung von NULL in Nicht-Zeiger-Typ"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
#, fuzzy
msgid "ambiguous default type conversion from %qT"
msgstr "mehrdeutige Standard-Typumwandlung von »%T«"
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
#, fuzzy
msgid " candidate conversions include %qD and %qD"
msgstr " in Frage kommende Umwandlungen beziehen »%D« und »%D« ein"
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "Marke »%D« verwendet, aber nicht definiert"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "Marke »%D« definiert, aber nicht verwendet"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "»%s« wurde »extern« deklariert und später »static«"
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "vorherige Deklaration von »%D«"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "%JFunktion »%D« als inline redeklariert"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "%Jvorherige Deklaration von »%D« mit Attribut noinline"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "%JFunktion »%D« mit Attribut noinline redeklariert"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "%Jvorherige Deklaration von »%D« war inline"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "überschatten der %s Funktion »%#D«"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "Bibliotheksfunktion »%#D« als Nicht-Funktion »%#D« redeklariert"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "steht mit eingebauter Deklaration »%#D« in Konflikt"
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "neue Deklaration »%#D«"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "macht eingebaute Deklaration »%#D« mehrdeutig"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "»%#D« als andere Symbolart redeklariert"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "vorherige Deklaration von »%#D«"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "Deklaration des Templates »%#D«"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "steht mit der vorherigen Deklaration »%#D« in Konflikt"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "macht alte Deklaration »%#D« mehrdeutig"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "Deklaration der C-Funktion »%#D« steht in Konflikt mit"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "vorherige Deklaration »%#D« hier"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "in Konflikt stehende Deklaration »%#D«"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "»%D« hat eine vorherige Deklaration als »%#D«"
@@ -13830,76 +13796,76 @@ msgstr "»%D« hat eine vorherige Deklaration als »%#D«"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "Deklaration von »namespace %D« steht in Konflikt mit"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "vorherige Deklaration von »namespace %D« hier"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "»%#D« wurde vorher hier definiert"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "»%#D« wurde vorher hier deklariert"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "Prototyp für »%#D«"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
msgid "%Jfollows non-prototype definition here"
msgstr "%Jfolgt Nicht-Prototyp-Definition hier"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "vorherige Deklaration von »%#D« mit %L-Bindung"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "steht mit neuer Deklaration mit %L-Bindung in Konflikt"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "Standardargument für Parameter %d von »%#D« angegeben"
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "nach vorheriger Spezifikation in »%#D«"
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "»%#D« wurde verwendet, bevor es »inline« deklariert wurde"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
msgid "%Jprevious non-inline declaration here"
msgstr "%Jvorherige Nicht-inline-Deklaration hier"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "redundante Redeklaration von »%D« im selben Gültigkeitsbereich"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "Deklaration von »%F« wirft andere Ausnahmen"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "als vorherige Deklaration »%F«"
@@ -13912,249 +13878,249 @@ msgstr "als vorherige Deklaration »%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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "explizite Spezialisierung von %D nach erster Benutzung"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
#, fuzzy
msgid "%J%qD: visibility attribute ignored because it"
msgstr "%J»%D«: Sichtbarkeitsattribut ignoriert, da es"
-#: cp/decl.c:1933
+#: cp/decl.c:1805
msgid "%Jconflicts with previous declaration here"
msgstr "%Jin Konflikt mit vorheriger Deklaration (hier) steht"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "Marke %s außerhalb einer Funktion referenziert"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "Sprung zur Marke »%D«"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "Sprung zur case-Marke"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
msgid "%H from here"
msgstr "%H von hier"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr " überkreuzt Initialisierung von »%#D«"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
#, fuzzy
msgid " enters scope of non-POD %q#D"
msgstr " tritt in Gültigkeitsbereich des nicht-POD »%#D« ein"
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " tritt in try-Block ein"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " tritt in catch-Block ein"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " von hier"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr "%J tritt in catch-Block ein"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr " überspringt Initialisierung von »%#D«"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr "Marke wurde wchar_t genannt"
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "doppelte Marke »%D«"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "»%D« ohne Template-Parameter verwendet"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
#, fuzzy
msgid "no class template named %q#T in %q#T"
msgstr "kein Klassentemplate namens »%#T« in »%#T«"
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "kein Typ namens »%#T« in »%#T«"
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "Template-Parameter können keine »friends« sein"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr " »%#D« hier deklariert"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr "%Jeine anonyme Union kann keine Funktionselemente haben"
-#: cp/decl.c:3466
+#: cp/decl.c:3362
#, fuzzy
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr "Element »%#D« mit Konstruktor in anonymem Aggregat nicht erlaubt"
-#: cp/decl.c:3470
+#: cp/decl.c:3366
#, fuzzy
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr "Element »%#D« mit Destruktor in anonymem Aggregat nicht erlaubt"
-#: cp/decl.c:3474
+#: cp/decl.c:3370
#, fuzzy
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr "Element »%#D« mit Zuweisungsoperator ist in anonymem Aggregt nicht erlaubt"
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "mehrere Typen in einer Deklaration"
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "Redeklaration des eingebauten C++-Typs »%T«"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr "fehlender Typname in typedef-Deklaration"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO-C++ verbietet anonyme structs"
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "»%D« kann nur für Funktionen angegeben werden"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
msgstr "»%D« kann nur innerhalb einer Klasse angegeben werden"
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "»%D« kann nur für Konstruktoren angegeben werden"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "»%D« kann nur für Objekte und Funktionen angegeben werden"
-#: cp/decl.c:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers can only be specified for objects and functions"
msgstr "»%D« kann nur für Objekte und Funktionen angegeben werden"
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "macht alte Deklaration »%#D« mehrdeutig"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "Funktion »%#D« ist wie eine Variable initialisiert"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "Deklaration von »%#D« hat »extern« und ist initialisiert"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "»%#D« ist kein statisches Element von »%#T«"
-#: cp/decl.c:3772
+#: cp/decl.c:3671
#, fuzzy
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr "ISO-C++ erlaubt nicht, »%T::%D« als »%T::%D« zu definieren"
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "doppelte Initialisierung von %D"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "Deklaration von »%#D« außerhalb einer Klasse ist keine Definition"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "Variable »%#D« hat Initialisierung, aber unvollständigen Typ"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "Elemente des Feldes »%#D« haben unvollständigen Typ"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "Aggregat »%#D« hat unvollständigen Typ und kann nicht definiert werden"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
msgstr "»%D« als Referenz deklariert, aber nicht initialisiert"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ISO-C++ verbietet die Verwendung einer Initialisierungsliste zur Initialisierung der Referenz »%D«"
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "»%T« kann nicht von »%T« initialisiert werden"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "Initialisierung gibt nicht die Größe von »%D« an"
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "Feldgröße fehlt in »%D«"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "Feld »%D« der Größe null"
@@ -14162,685 +14128,709 @@ msgstr "Feld »%D« der Größe null"
#. 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "Speichergröße von »%D« ist unbekannt"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "Speichergröße von »%D« ist nicht konstant"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
#, fuzzy
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr "Entschuldigung: Semantik der statischen Daten »%#D« der inline-Funktion ist falsch (mehrere Kopien wären die Folge)"
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr "%J dies kann durch das Löschen des Initialisierers umgangen werden"
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "nicht initialisiertes const »%D«"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
#, fuzzy
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr "Name »%D« in benannter Initialisierung im GNU-Stil für ein Feld verwendet"
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, fuzzy, c-format
msgid "Designated initializer %qE larger than array size"
msgstr "Bestimmte Initialisierung »%E« größer als Feldgröße"
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "geklammerter Initialisierer zur Initialisierung von »%T« verwendet"
-#: cp/decl.c:4376
+#: cp/decl.c:4280
#, fuzzy
msgid "initializer for %qT must be brace-enclosed"
msgstr "Initialisierung für »%T« muss geklammert sein"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO-C++ erlaubt keine benannten Initialisierungen"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "»%T« hat kein nicht-statisches Datenelement namens »%D«"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "zu viele Initialisierer für »%T«"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "Objekt »%D« variabler Größe kann nicht initialisiert werden"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "»%D« hat unvollständigen Typen"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
#, fuzzy
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr "»%D« muss mit Konstruktor initialisiert werden, nicht mit »{...}«"
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "Feld mit geklammerter Zeichenkettenkonstante initialisiert"
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "Struktur »%D« mit nicht initialisierten const-Elementen"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "Struktur »%D« mit nicht initialisierten Referenzelementen"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "Zuweisung (nicht Initialisierung) in Deklaration"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "»%D« kann nicht zu Namespace »%D« initialisiert werden"
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "vorherige Typdeklaration von »%#D« wird überschattet"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
#, fuzzy
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr "»%D« kann nicht Thread-lokal sein, weil es Nicht-POD-Typen »%T« hat"
-#: cp/decl.c:4915
+#: cp/decl.c:4830
#, fuzzy
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr "»%D« ist Thread-lokal und kann damit nicht dynamisch initialisiert werden"
-#: cp/decl.c:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "Destruktor für fremde Klasse »%T« kann kein Element sein"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "Konstruktor für fremde Klasse »%T« kann kein Element sein"
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
msgstr "»%D« als »virtuelles« %s deklariert"
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
msgstr "»%D« als »inline« %s deklariert"
-#: cp/decl.c:5550
+#: cp/decl.c:5474
#, fuzzy
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr "Funktionsspezifizierer »const« und »volatile« an »%D« ungültig in %d-Deklaration"
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "»%D« als »friend« deklariert"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "»%D« mit Ausnahmespezifikation deklariert"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "»::main« kann nicht als Template deklariert werden"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "»::main« kann nicht inline deklariert werden"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "»::main« kann nicht statisch deklariert werden"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "»main« muss »int« zurückgeben"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
#, fuzzy
msgid "non-local function %q#D uses anonymous type"
msgstr "nicht lokale Funktion »%#D« verwendet anonymen Typen"
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
#, fuzzy
msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr "»%#D« verweist nicht auf den unqualifizierten Typen, also wird es nicht zum Binden verwendet"
-#: cp/decl.c:5690
+#: cp/decl.c:5617
#, fuzzy
msgid "non-local function %q#D uses local type %qT"
msgstr "nicht lokale Funktion »%#D« verwendet lokalen Typen »%T«"
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "%sElementfunktion »%D« kann nicht den Methodenqualifizierer »%T« haben"
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD in friend declaration"
msgstr "Definition der expliziten Spezialisierung »%D« in friend-Deklaration"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "ungültige Verwendung der Template-ID »%D« in Deklaration des ursprünglichen Templates"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
#, fuzzy
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr "Standardargumente sind nicht in Deklaration der friend-Template-Spezialisierung »%D« erlaubt"
-#: cp/decl.c:5783
+#: cp/decl.c:5710
#, fuzzy
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr "»inline« ist nicht in Deklaration der friend-Template-Spezialisierung »%D« erlaubt"
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
msgstr "Definition des implizit deklarierten »%D«"
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "keine Elementfunktion »%#D« in Klasse »%T« deklariert"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
#, fuzzy
msgid "non-local variable %q#D uses anonymous type"
msgstr "nicht lokale Funktion »%#D« verwendet anonymen Typen"
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "nicht-lokale Variable »%#D« verwendet lokalen Typen »%T«"
-#: cp/decl.c:6150
+#: cp/decl.c:6070
#, fuzzy
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr "ungültige Initialisierung des statischen Datenelements vom nicht eingebauten Typen »%T«"
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "ISO-C++ verbietet Initialisierung des nicht konstanten statischen Elements »%D« in der Klasse"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "ISO-C++ verbietet Initialisierung der Elementkonstante »%D« vom nicht eingebauten Typen »%T«"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "Feldgröße von »%D« hat nicht-ganzzahligen Typen »%T«"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "Feldgröße hat nicht-ganzzahligen Typen »%T«"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "Größe des Feldes »%D« ist negativ"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "Größe des Feldes ist negativ"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO-C++ verbietet Feld »%D« der Größe null"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
msgstr "ISO-C++ verbietet Feld der Größe null"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "Größe des Feldes »%D« ist kein konstanter Ganzzahlausdruck"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
msgid "size of array is not an integral constant-expression"
msgstr "Größe des Feldes ist kein konstanter Ganzzahlausdruck"
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO-C++ verbietet Feld »%D« variabler Größe"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
msgstr "ISO-C++ verbietet Feld variabler Größe"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "Überlauf in Feldgröße"
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "Deklaration von »%D« als %s"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr "Erzeugen von %s"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
#, fuzzy
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr "Deklaration von »%D« als multidimensionales Feld muss für alle Dimensionen außer der ersten Grenzen haben"
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr " multidimensionales Feld muss für alle Dimensionen außer der ersten Grenzen haben"
-#: cp/decl.c:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr "Angabe des Rückgabetyps für Konstruktor ist ungültig"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr "Angabe des Rückgabetyps für Destruktor ist ungültig"
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "Operator »%T« ist deklariert, »%T« zurückzugeben"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "Rückgabetyp für »operator %T« angegeben"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "unbenannte Variable oder Feld als »void« deklariert"
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "Variable oder Feld »%E« als »void« deklariert"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "Variable oder Feld als »void« deklariert"
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "Typ »%T« ist nicht vom Typ »%T« abgeleitet"
-#: cp/decl.c:6674
-#, fuzzy
-msgid "declarator-id missing; using reserved word %qD"
-msgstr "Deklarator-ID fehlt: reserviertes Wort »%D« wird verwendet"
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "Deklaration von »%D« als Nicht-Funktion"
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "Redeklaration von »%T« als Nicht-Template"
+
+#: cp/decl.c:6593
+#, fuzzy
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "Deklarator-ID fehlt: reserviertes Wort »%D« wird verwendet"
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "zwei oder mehr Datentypen in Deklaration von »%s«"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO-C++ unterstützt nicht »long long«"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO-C++ verbietet Deklaration von »%s« ohne Typ"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "»short«, »signed« oder »unsigned« ungültig für »%s«"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "long, short, signed oder unsigned ist ungültig für »%s«"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "»long« und »short« für »%s« gleichzeitig angegeben"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "»long« oder »short« mit »char« für »%s« angegeben"
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "»long« oder »short« mit Gleitkommatyp für »%s« angegeben"
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "»signed« und »unsigned« für »%s« gleichzeitig angegeben"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "long, short, signed oder unsigned ungültig verwendet für »%s«"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "complex ungültig für »%s«"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
#, fuzzy
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr "Qualifizierer sind bei Deklaration von »operator %T« nicht erlaubt"
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "ungültige Umwandlung in Funktionstyp »%T«"
+
+#: cp/decl.c:6957
#, fuzzy
msgid "member %qD cannot be declared both virtual and static"
msgstr "Element »%D« kann nicht gleichzeitig virtuell und statisch deklariert werden"
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "»%T::%D« ist kein gültiger Deklarator"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "»typedef«-Deklaration in Parameterdeklaration ungültig"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr "Speicherklassenangaben sind in Parameterdeklarationen ungültig"
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "virtuelle Deklaration einer äußeren Klasse"
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "mehrere Speicherklassen in Deklaration von »%s«"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "Speicherklasse für %s »%s« angegeben"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "Deklaration höchster Ebene von »%s« gibt »auto« an"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr "Speicherklassenangaben sind in friend-Funktionsdeklarationen ungültig"
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "Destruktor kann keine statische Elementfunktion sein"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "Destruktoren dürfen nicht »%s« sein"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "Konstruktor kann keine statische Elementfunktion sein"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "Konstruktoren können nicht als virtuell deklariert werden"
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "Konstruktoren dürfen nicht »%s« sein"
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "friend-Funktion »%s« kann nicht initialisiert werden"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "virtuelle Funktionen können keine friends sein"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "friend-Deklaration nicht in Klassendefinition"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "friend-Funktion »%s« kann nicht in einer lokalen Klassendefinition definiert werden"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr "Destruktoren dürfen keine Parameter haben"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "Referenz auf »%#T« kann nicht definiert werden"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "Zeiger auf »%#T« kann nicht deklariert werden"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "Zeiger auf Element von »%#T« kann nicht deklariert werden"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "»%T« ist kein Namensbereich"
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
msgstr "Template-ID »%D« als Deklarator verwendet"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
#, fuzzy
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr "zusätzliche Qualifizierung »%T::« an Element »%s« ignoriert"
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr "Elementfunktion »%T::%s« kann nicht in »%T« deklariert werden"
-#: cp/decl.c:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "Element »%T::%s« kann nicht in »%T« deklariert werden"
-#: cp/decl.c:7570
+#: cp/decl.c:7520
#, fuzzy
msgid "data member may not have variably modified type %qT"
msgstr "Datenelement darf nicht variabel modifizierten Typ »%T« haben"
-#: cp/decl.c:7572
+#: cp/decl.c:7522
#, fuzzy
msgid "parameter may not have variably modified type %qT"
msgstr "Parameter darf nicht variabel modifizierten Typ »%T« haben"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
#, fuzzy
msgid "only declarations of constructors can be %<explicit%>"
msgstr "nur Deklarationen von Konstruktoren können »explicit« sein"
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "Nicht-Element »%s« kann nicht als »mutable« deklariert sein"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "Nicht-Objekt-Element »%s« kann nicht als »mutable« deklariert sein"
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "Funktion »%s« kann nicht als »mutable« deklariert sein"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "statisches »%s« kann nicht als »mutable« deklariert sein"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "Konstante »%s« kann nicht als »mutable« deklariert sein"
-#: cp/decl.c:7627
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
+msgstr "%Jtypedef-Name darf kein Spezifizierer mit geschachteltem Namen sein"
+
+#: cp/decl.c:7595
#, fuzzy
msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr "ISO-C++ verbietet geschachtelten Typen »%D« mit gleichem Namen wie umschließende Klasse"
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
-msgstr "%Jtypedef-Name darf kein Spezifizierer mit geschachteltem Namen sein"
-
-#: cp/decl.c:7689
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "%Jungültiger Typkennzeichner für Nicht-Element-Funktionstyp"
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "Rückgabetyp der Funktion kann keine Funktion sein"
-#: cp/decl.c:7752
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr "Typkennzeichner für friend-Klassen-Deklaration angegeben"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "»inline« für friend-Klassen-Deklaration angegeben"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
msgid "template parameters cannot be friends"
msgstr "Template-Parameter können keine »friends« sein"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
#, fuzzy
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr "friend-Deklaration erfordert Klassenschlüssel, z.B. »friend class %T::%D«"
-#: cp/decl.c:7771
+#: cp/decl.c:7739
#, fuzzy
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr "friend-Deklaration erfordert Klassenschlüssel, z.B. »friend %#T«"
-#: cp/decl.c:7784
+#: cp/decl.c:7752
#, fuzzy
msgid "trying to make class %qT a friend of global scope"
msgstr "Versuch, die Klasse »%T« zu einem »friend« des globalen Gültigkeitsbereiches zu machen"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr "ungültige Qualifizierer an Nicht-Element-Funktionstyp"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "abstrakter Deklarator »%T« als Deklaration verwendet"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "»::« kann nicht in Parameterdeklaration verwendet werden"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "ungültige Verwendung von »::«"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "Funktion »%D« kann nicht als »friend« deklariert werden"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
#, fuzzy
msgid "can't make %qD into a method -- not in a class"
msgstr "»%D« kann nicht zur Methode gemacht werden -- nicht in einer Klasse"
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "Funktion »%D« als virtuell innerhalb einer Union deklariert"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD cannot be declared virtual, since it is always static"
msgstr "»%D« kann nicht als virtuell deklariert werden, da es immer statisch ist"
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "Deklaration von »%D« überdeckt ein Element von 'this'"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "Feld »%D« hat unvollständigen Typen"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "Name »%T« hat unvollständigen Typen"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr " in Instanziierung des Templates »%T«"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr "»%s« ist weder eine Funktion noch Elementfunktion; kann nicht als »friend« deklariert werden"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "Elementfunktionen sind implizite »friends« ihrer Klasse"
@@ -14856,92 +14846,92 @@ msgstr "Elementfunktionen sind implizite »friends« ihrer Klasse"
#. 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ISO-C++ verbietet Initialisierung des Elementes »%D«"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
#, fuzzy
msgid "making %qD static"
msgstr "»%D« wird statisch gemacht"
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "Speicherklasse »auto« ungültig für Funktion »%s«"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "Speicherklasse »register« ungültig für Funktion »%s«"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "Speicherklasse »__thread« ungültig für Funktion »%s«"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
#, fuzzy
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr "Speicherklasse »inline« ungültig für außerhalb des globalen Gültigkeitsbereiches deklarierte Funktion »%s«"
-#: cp/decl.c:8156
+#: cp/decl.c:8129
#, fuzzy
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr "Speicherklasse »inline« ungültig für außerhalb des globalen Gültigkeitsbereiches deklarierte Funktion »%s«"
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "virtuelle Nicht-Klassen-Funktion »%s«"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD to have static linkage"
msgstr "Elementfunktion »%D« kann nicht deklariert werden, statische Bindung zu haben"
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr "statische Funktion innerhalb anderer Funktion kann nicht deklariert werden"
-#: cp/decl.c:8231
+#: cp/decl.c:8204
#, fuzzy
msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
msgstr "»static« darf nicht bei der Definition (im Gegensatz zu Deklaration) eines statischen Datenelementes verwendet werden"
-#: cp/decl.c:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
msgstr "statisches Element »%D« als »register« deklariert"
-#: cp/decl.c:8243
+#: cp/decl.c:8216
#, fuzzy
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr "Element »%#D« kann nicht explizit deklariert werden, externe Bindung zu haben"
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "Standardargument für »%#D« hat Typ »%T«"
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "Standardargument für Parameter des Typs »%T« hat Typ »%T«"
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "Standardargument »%E« verwendet lokale Variable »%D«"
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "Parameter »%D« deklariert ungültigerweise Methodentyp"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
#, fuzzy
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr "Parameter »%D« bezieht %s in Feld mit unbekannter Grenze »%T« ein"
@@ -14961,132 +14951,132 @@ msgstr "Parameter »%D« bezieht %s in Feld mit unbekannter Grenze »%T« ein"
#. 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:8657
+#: cp/decl.c:8630
#, fuzzy
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr "ungültiger Konstruktor; wahrscheinlich war »%T (const %T&)« gemeint"
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "»%D« wurde in diesem Gültigkeitsbereich nicht definiert"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "»%D« wurde nicht deklariert"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "»%D« muss eine nichtstatische Elementfunktion sein"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD must be either a non-static member function or a non-member function"
msgstr "»%D« muss entweder eine nichtstatische Elementfunktion oder eine Nicht-Element-Funktion sein"
-#: cp/decl.c:8827
+#: cp/decl.c:8800
#, fuzzy
msgid "%qD must have an argument of class or enumerated type"
msgstr "»%D« muss ein Argument von einem Klassen- oder Aufzählungstyp haben"
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr "Umwandlung in %s%s wird nie einen Typumwandlungsoperator verwenden"
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO-C++ verbietet Ãœberladen des Operators ?:"
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
msgstr "Suffix-»%D« muss »int« als sein Argument nehmen"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
msgstr "Suffix-»%D« muss »int« als sein zweites Argument nehmen"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "»%D« muss entweder null oder ein Argument nehmen"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "»%D« muss entweder ein oder zwei Argumente nehmen"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
#, fuzzy
msgid "prefix %qD should return %qT"
msgstr "Präfix-»%D« sollte »%T« zurückgeben"
-#: cp/decl.c:8960
+#: cp/decl.c:8933
#, fuzzy
msgid "postfix %qD should return %qT"
msgstr "Suffix-»%D« sollte »%T« zurückgeben"
-#: cp/decl.c:8969
+#: cp/decl.c:8942
#, fuzzy
msgid "%qD must take %<void%>"
msgstr "»%D« muss »void« nehmen"
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
msgstr "»%D« muss genau ein Argument nehmen"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "»%D« muss genau zwei Argumente nehmen"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
#, fuzzy
msgid "user-defined %qD always evaluates both arguments"
msgstr "benutzerdefiniertes »%D« wertet immer beide Argumente aus"
-#: cp/decl.c:9003
+#: cp/decl.c:8976
#, fuzzy
msgid "%qD should return by value"
msgstr "»%D« sollte Wert zurückgeben"
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "»%D« kann keine Standardargumente haben"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "Templatetyp-Parameter »%T« wird nach »%s« verwendet"
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
msgstr "typedef-Name »%D« wird nach »%s« verwendet"
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "»%D« hat eine vorherige Deklaration als »%#D«"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
#, fuzzy
msgid "%qT referred to as %qs"
msgstr "»%T« als »%s« verwendet"
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "%Jdies ist eine vorherige Deklaration"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
#, fuzzy
msgid "%qT referred to as enum"
msgstr "»%T« als enum verwendet"
@@ -15098,57 +15088,62 @@ msgstr "»%T« als enum verwendet"
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "Template-Argument für »%s %T« benötigt"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+#, fuzzy
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "»%D« hat den gleichen Namen wie die Klasse, in der es deklariert wurde"
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "Verwendung des enum »%#D« ohne vorherige Deklaration"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "Redeklaration von »%T« als Nicht-Template"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
#, fuzzy
msgid "derived union %qT invalid"
msgstr "abgeleitete Union »%T« ist ungültig"
-#: cp/decl.c:9397
+#: cp/decl.c:9389
#, fuzzy
msgid "Java class %qT cannot have multiple bases"
msgstr "Java-Klasse »%T« kann nicht mehrere Basen haben"
-#: cp/decl.c:9405
+#: cp/decl.c:9397
#, fuzzy
msgid "Java class %qT cannot have virtual bases"
msgstr "Java-Klasse »%T« kann keine virtuellen Basen haben"
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT fails to be a struct or class type"
msgstr "Basistyp »%T« ist kein struct- oder Klassentyp"
-#: cp/decl.c:9457
+#: cp/decl.c:9449
#, fuzzy
msgid "recursive type %qT undefined"
msgstr "rekursiver Typ »%T« nicht definiert"
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "doppelter Basistyp »%T« ungültig"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "mehrfache Definition von »%#T«"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
msgid "%Jprevious definition here"
msgstr "%Jvorherige Definition hier"
@@ -15156,79 +15151,79 @@ msgstr "%Jvorherige Definition hier"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
#, fuzzy
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr "kein Ganzzahltyp kann alle Aufzählungswerte für »%T« darstellen"
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "Aufzählungswert für »%D« ist keine Ganzzahlkonstante"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "Überlauf in Aufzählungswerten bei »%D«"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "Rückgabetyp »%#T« ist unvollständig"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
#, fuzzy
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr "»operator=« sollte eine Referenz auf »*this« zurück geben"
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "Parameter »%D« leer definiert"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
msgid "invalid member function declaration"
msgstr "ungültige Elementfunktionsdeklaration"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "»%D« ist bereits in Klasse »%T« definiert"
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "statische Elementfunktion »%#D« mit Typqualifizierern deklariert"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "Name der Elementfunktion fehlt"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "mehrdeutige Umwandlung für Feldindex"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
#, fuzzy
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr "ungültige Typen »%T[%T]« für Feldindex"
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "Feld »%#D« wird gelöscht"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
#, fuzzy
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr "Argument vom Typ »%#T« wurde »delete« übergeben, Zeiger erwartet"
-#: cp/decl2.c:444
+#: cp/decl2.c:441
#, fuzzy
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr "Funktion kann nicht gelöscht werden. Nur Zeiger auf Objekte sind gültige Argumente für »delete«"
-#: cp/decl2.c:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "Löschen von »%T« ist nicht definiert"
@@ -15236,196 +15231,190 @@ msgstr "Löschen von »%T« ist nicht definiert"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "ungültige Deklaration des Elementtemplates »%#D« in lokaler Klasse"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "ungültige Verwendung von »virtual« in Templatedeklaration von »%#D«"
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "Templatedeklaration von »%#D«"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
#, fuzzy
msgid "Java method %qD has non-Java return type %qT"
msgstr "Java-Methode »%D« hat Nicht-Java-Rückgabetyp »%T«"
-#: cp/decl2.c:572
+#: cp/decl2.c:569
#, fuzzy
msgid "Java method %qD has non-Java parameter type %qT"
msgstr "Java-Methode »%D« hat Nicht-Java-Parametertyp »%T«"
-#: cp/decl2.c:677
+#: cp/decl2.c:674
#, fuzzy
msgid "prototype for %q#D does not match any in class %qT"
msgstr "Prototyp für »%#D« passt zu nichts in Klasse »%T«"
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "lokale Klasse »%#T« sollte nicht statische Datenelemente »%#D« haben"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "Initialisierung ungültig für statisches Element mit Konstruktor"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(eine Initialisierung außerhalb der Klasse ist erforderlich)"
-#: cp/decl2.c:870
+#: cp/decl2.c:867
#, fuzzy
msgid "member %qD conflicts with virtual function table field name"
msgstr "Element »%D« steht in Konflikt mit Feldname in virtueller Funktionstabelle"
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "»%D« ist bereits in »%T« definiert"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "Feldinitialisierung ist nicht konstant"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
#, fuzzy
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr "»asm«-Symbole sind an nicht statischen Datenelementen nicht erlaubt"
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "»%D« kann nicht mit Bitfeldtyp deklariert werden"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "Bitfeld »%D« kann nicht mit Funktionstyp deklariert werden"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "»%D« ist bereits in der Klasse %T definiert"
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "statisches Element »%D« kann kein Bitfeld sein"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "Initialisierung für Nicht-Element-Funktion »%D« angegeben"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "ungültige Initialisierung für virtuelle Methode »%D«"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "anonymes struct nicht innerhalb eines benannten Typs"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr "anonymes Aggregat im Gültigkeitsbereich eines Namespace muss statisch sein"
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr "anonyme Union ohne Element"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "»operator new« muss Typ »%T« zurück geben"
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "»operator new« nimmt Typ »size_t« (»%T«) als ersten Parameter"
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "»operator delete« muss Typ »%T« zurück geben"
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "»operator delete« nimmt Typ »%T« als ersten Parameter"
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "inline-Funktion »%D« verwendet, aber nirgendwo definiert"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "Standardargument fehlt für Parameter %P von »%+#D«"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, fuzzy, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr "unerwarteter Buchstabe »%c« in locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
#, fuzzy
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr "Typ »%T« ist in Javas »throw« oder »catch« nicht erlaubt"
-#: cp/except.c:250
+#: cp/except.c:273
#, fuzzy
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr "Aufruf von Javas »catch« oder »throw« mit »jthrowable« ist nicht definiert"
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
#, fuzzy
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr "Typ »%T« ist nicht von »java::lang::Throwable« abgeleitet"
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "Mischen von »catch« in C++ und Java in einzelner Übersetzungseinheit"
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr "wirft NULL, was ganzzahlig, aber kein Zeigertyp ist"
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
#, fuzzy
msgid "%qD should never be overloaded"
msgstr "»%D« sollte niemals überladen werden"
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " in geworfenem Ausdruck"
-#: cp/except.c:810
+#: cp/except.c:836
#, fuzzy
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr "Ausdruck »%E« von abstraktem Klassentyp »%T« kann nicht in throw-Ausdruck verwendet werden"
-#: cp/except.c:895
+#: cp/except.c:921
#, fuzzy
msgid "%Hexception of type %qT will be caught"
msgstr "Ausnahme des Typs »%T« wird gefangen werden"
-#: cp/except.c:897
+#: cp/except.c:923
#, fuzzy
msgid "%H by earlier handler for %qT"
msgstr " von früherem Behandler für »%T«"
-#: cp/except.c:927
+#: cp/except.c:953
#, fuzzy
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr "»...«-Behandler muss der letzte Behandler für seinen »try«-Block sein"
@@ -15513,212 +15502,220 @@ msgstr "(wenn das nicht beabsichtigt war, sollte sicher gestellt werden, dass da
msgid "argument to '%s' missing\n"
msgstr "Argument für »%s« fehlt\n"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "»%D« sollte in Elementinitialisierungsliste initialisiert werden"
-#: cp/init.c:363
+#: cp/init.c:373
#, fuzzy
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr "Standardinitialisierung von »%#D«, das Referenztyp hat"
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "nicht initialisiertes Referenzelement »%D«"
-#: cp/init.c:372
+#: cp/init.c:382
#, fuzzy
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr "nicht initialisiertes Element »%D« mit »const«-Typ »%T«"
-#: cp/init.c:515
+#: cp/init.c:525
#, fuzzy
msgid "%qD will be initialized after"
msgstr "»%D« wird initialisiert nach"
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "Basis »%T« wird initialisiert nach"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr " »%#D«"
-#: cp/init.c:523
+#: cp/init.c:533
#, fuzzy
msgid " base %qT"
msgstr " Basis »%T«"
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr " während es hier initialisiert wurde"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "mehrere Initialisierungen für »%D« angegeben"
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "mehrere Initialisierungen für Basis »%T« angegeben"
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "Initialisierungen für mehrere Elemente von »%T«"
-#: cp/init.c:667
+#: cp/init.c:677
#, fuzzy
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr "Basisklasse »%#T« sollte explizit im Kopierkonstruktor initialisiert werden"
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
#, fuzzy
msgid "class %qT does not have any field named %qD"
msgstr "Klasse »%T« hat keinen Feldnamen »%D«"
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "»%#D« ist ein statisches Datenelement; es kann nur bei seiner Definition initialisiert werden"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "»%#D« ist kein Nicht-static-Datenelement von »%T«"
-#: cp/init.c:943
+#: cp/init.c:953
#, fuzzy
msgid "unnamed initializer for %qT, which has no base classes"
msgstr "unbenannte Initialisierung für »%T«, das keine Basisklassen hat"
-#: cp/init.c:951
+#: cp/init.c:961
#, fuzzy
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr "unbenannte Initialisierung für »%T«, das Mehrfachvererbung verwendet"
-#: cp/init.c:997
+#: cp/init.c:1007
#, fuzzy
msgid "%qD is both a direct base and an indirect virtual base"
msgstr "»%D« ist sowohl eine direkte Basis als auch eine indirekte virtuelle Basis"
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
msgstr "Typ »%D« ist keine direkte oder virtuelle Basis von »%T«"
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "Typ »%D« ist keine direkte Basis von »%T«"
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "schlechte Feldinitialisierung"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "»%T« ist kein Aggregattyp"
-#: cp/init.c:1379
+#: cp/init.c:1389
#, fuzzy
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr "qualifizierter Typ »%T« passt nicht zum Destruktornamen »~%T«"
-#: cp/init.c:1387
+#: cp/init.c:1397
#, fuzzy
msgid "incomplete type %qT does not have member %qD"
msgstr "unvollständiger Typ »%T« hat kein Element »%D«"
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "»%D« ist kein Element vom Typ »%T«"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "ungültiger Zeiger auf Bitfeld »%D«"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "ungültige Verwendung der nicht-statischen Elementfunktion »%D«"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "ungültige Verwendung des nicht-statischen Datenelementes »%D«"
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr "Größe des Feldes bei »new« muss Ganzzahltyp haben"
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr "Feld der Größe Null belegt keinen Platz"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "»new« kann nicht auf Referenztyp angewendet werden"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "»new« kann nicht auf Funktionstyp angewendet werden"
-#: cp/init.c:1679
+#: cp/init.c:1700
#, fuzzy
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr "Aufruf von Java-Konstruktor, wobei »jclass« nicht definiert ist"
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr "class$ kann nicht gefunden werden"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "ungültiger Typ »void« für »new«"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "nicht initialisierte Konstante in »new« von »%#T«"
-#: cp/init.c:1867
+#: cp/init.c:1888
#, fuzzy, c-format
msgid "call to Java constructor with %qs undefined"
msgstr "Aufruf von Java-Konstruktor mit »%s« ist nicht definiert"
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "Abfrage des Elementes »%D« ist mehrdeutig"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO-C++ verbietet Initialisierung eines Feldes mit »new«"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "Initialisierung endet vorzeitig"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "mehrdimensionales Feld kann nicht initialisiert werden"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr "mögliches Problem bei Aufruf des »delete«-Operators erkannt"
-#: cp/init.c:2725
+#: cp/init.c:2744
msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
msgstr "weder der Destruktor noch der klassenspezifische Operator »delete« wird aufgerufen, auch wenn sie bei der Klassendefinition deklariert werden"
-#: cp/init.c:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "unbekannte Feldgröße in »delete«"
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr "Typ für Vektor-»delete« ist weder Zeiger- noch Feldtyp"
@@ -15799,16 +15796,21 @@ msgstr "der verarbeitete Name von »%D« wird sich in einer zukünftigen Version
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr "allgemeiner Thunk-Code für Methode »%#D« mit »...« scheitert"
-#: cp/method.c:650
+#: cp/method.c:657
#, fuzzy
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr "nicht-statisches konstantes Element »%#D«, Standard-Zuweisungsoperator kann nicht verwendet werden"
-#: cp/method.c:656
+#: cp/method.c:663
#, fuzzy
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr "nicht-statisches Referenzelement »%#D«, Standard-Zuweisungsoperator kann nicht verwendet werden"
+#: cp/method.c:1078
+#, fuzzy
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr "vtable-Anordnung für Klasse »%T« könnte ABI-unverträglich sein und sich in zukünftigen GCC-Versionen durch implizite virtuelle Destruktoren ändern"
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -15915,68 +15917,61 @@ msgstr "%s %s %p %d\n"
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr "XXX is_class_level != (current_scope == class_scope)\n"
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "»%#D« verdeckt Konstruktor für »%#T«"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "»%#D« steht mit vorheriger »using«-Deklaration »%#D« in Konflikt"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "vorherige Deklaration »%#D« einer Nicht-Funktion"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "steht mit Funktionsdeklaration »%#D« in Konflikt"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "»%T« ist kein Namensbereich"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
#, fuzzy
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr "eine »using«-Deklaration kann keine Template-ID angeben. Stattdessen »using %D« versuchen"
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "namespace »%D« in »using«-Deklaration nicht erlaubt"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "»%D« nicht deklariert"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "»%D« wurde in diesem Gültigkeitsbereich bereits deklariert"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
#, fuzzy
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr "»using«-Deklaration »%D« führte mehrdeutigen Typen »%T« ein"
-#: cp/name-lookup.c:2594
-#, fuzzy
-msgid "%qD has the same name as the class in which it is declared"
-msgstr "»%D« hat den gleichen Namen wie die Klasse, in der es deklariert wurde"
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr "»using«-Deklaration für Nicht-Element im Gültigkeitsbereich der Klasse"
@@ -15984,442 +15979,460 @@ msgstr "»using«-Deklaration für Nicht-Element im Gültigkeitsbereich der Klas
msgid "using-declaration cannot name destructor"
msgstr "»using«-Deklaration kann nicht den Destruktor benennen"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "Deklaration von »%D« nicht in einem Namensbereich um »%D«"
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "explizite Instanziierung von »%#D«"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
#, fuzzy
msgid "%qD should have been declared inside %qD"
msgstr "»%D« sollte innerhalb von »%D« deklariert werden"
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "Namensbereich-Alias »%D« ist hier nicht erlaubt, »%D« angenommen"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "unbekannter Namensbereich »%D«"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "Namensbereich »%T« nicht deklariert"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr "starkes »using« ist nur im Gültigkeitsbereich des Namensbereiches sinnvoll"
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "Attribut-Anweisung »%D« wird ignoriert"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "Verwendung von »%D« ist mehrdeutig"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr " zuerst hier deklariert as »%#D«"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr " auch hier deklariert als »%#D«"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
#, fuzzy
msgid "%qD denotes an ambiguous type"
msgstr "»%D« bezeichnet einen mehrdeutigen Typen"
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
msgid "%J first type here"
msgstr "%J erster Typ hier"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr "%J anderer Typ hier"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "ungültige Verwendung von »%D«"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "»%D::%D« ist kein Template"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "»%D« nicht deklariert in Namensbereich »%D«"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "»%D« ist keine Funktion"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr " Konflikt mit »%D«"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr "XXX Eintritt in pop_everything ()\n"
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr "XXX pop_everything () wird verlassen\n"
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "#pragma %s ist bereits registriert"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "»%D::%D« wurde nicht deklariert"
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "»%D::%D« wurde nicht deklariert"
-#: cp/parser.c:1818
+#: cp/parser.c:1842
#, fuzzy
msgid "request for member %qD in non-class type %qT"
msgstr "Abfrage des Elementes »%D« in »%E«, das vom Nicht-Klassentyp »%T« ist"
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "»%D::%D« wurde nicht deklariert"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "»%D« wurde nicht deklariert"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
#, fuzzy
msgid "%<%D::%D%> %s"
msgstr "»%D::%D« %s"
-#: cp/parser.c:1829
+#: cp/parser.c:1853
#, fuzzy
msgid "%<::%D%> %s"
msgstr "»%D::%D« %s"
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr "»%D« %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr "neue Typen dürfen nicht in einem Rückgabetyp definiert werden"
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben"
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "»%T« ist kein Template"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "»%T« ist kein Template"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
msgid "invalid template-id"
msgstr "ungültige Template-ID"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "%s kann nicht in einem Konstanten-Ausdruck auftreten"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "ungültige Verwendung des Template-Namens »%E« in einem Deklarator"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "»%s« bezeichnet keinen Typ"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
#, fuzzy
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr "(vielleicht war »typename %T::%s« beabsichtigt)"
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, fuzzy, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr "»%s« bezeichnet keinen Typ"
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "»%s« bezeichnet keinen Typ"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO-C++ verbietet Gruppen in geschweiften Klammern innerhalb von Ausdrücken"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr "Anweisungs-Ausdrücke sind nur innerhalb von Funktionen erlaubt"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "»this« darf in diesem Kontext nicht verwendet werden"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
#, fuzzy
msgid "local variable %qD may not appear in this context"
msgstr "lokale Variable »%D« darf in diesem Kontext nicht auftauchen"
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
msgstr "typedef-Name »%D« als Destruktor-Deklarator verwendet"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
msgid "ISO C++ forbids compound-literals"
msgstr "ISO-C++ verbietet zusammengesetzte Literale"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr "Feldgrenze hinter geklammerter type-id ist verboten"
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr "Klammern um die Type-ID sollten entfernt werden"
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "Größe des Feldes bei »new« muss Ganzzahltyp haben"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "Feld der Größe Null belegt keinen Platz"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "Ausdruck in new-Deklarator muss Ganzzahl- oder Aufzählungstyp haben"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "Verwendung einer Typumwandlung im alten Stil"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "»case«-Marke »%E« nicht innerhalb einer »switch«-Anweisung"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO-C++ verbietet berechnete Gotos"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
#, fuzzy
msgid "extra %<;%>"
msgstr "zusätzliches »;«"
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr "Vermischung von Deklarationen und Funktionsdefinitionen ist verboten"
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "doppeltes »friend«"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
msgid "class definition may not be declared a friend"
msgstr "Klassendefinition darf nicht als »friend« deklariert sein"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr "nur Konstruktoren nehmen Basisinitialisierungen"
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr "anachronistische Basisklasseninitialisierung im alten Stil"
-#: cp/parser.c:7626
+#: cp/parser.c:7734
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr "Schlüsselwort »typename« in diesem Kontext nicht erlaubt (eine qualifizierte Elementinitialisierung ist implizit ein Typ)"
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
#, fuzzy
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "Schlüsselwort »export« nicht implementiert, und wird ignoriert"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "»<::« kann keine Templateargumentliste einleiten"
-#: cp/parser.c:8359
+#: cp/parser.c:8470
#, fuzzy
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr "»<:« ist ein andere Schreibweise für »[«. Leerraum zwischen »<« und »::« einfügen"
-#: cp/parser.c:8366
+#: cp/parser.c:8477
#, fuzzy
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr "(»-fpermissive« wird den Code akzeptieren)"
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "»<::« kann keine Templateargumentliste einleiten"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
msgstr "Nicht-Template »%D« als Template verwendet"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
#, fuzzy
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr "»%T::template %D« verwenden, um dies als Template zu kennzeichnen"
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "Templatedeklaration von »%#D«"
+
+#: cp/parser.c:9688
#, fuzzy
msgid "using %<typename%> outside of template"
msgstr "»typename« außerhalb des Templates verwendet"
-#: cp/parser.c:9677
-msgid "expected type-name"
-msgstr "Typname erwartet"
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr "Typattribute werden nur bei Typdefinition beachtet"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
msgid "a template-id may not appear in a using-declaration"
msgstr "eine Template-ID darf nicht in »using«-Deklaration auftreten"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr "asm-Spezifikation ist bei Funktionsdefinition nicht erlaubt"
-#: cp/parser.c:10463
+#: cp/parser.c:10597
msgid "attributes are not allowed on a function-definition"
msgstr "bei einer Funktionsdefinition sind keine Attribute erlaubt"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr "Attribute hinter geklammerter Initialisierung werden ignoriert"
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "Feldindex ist keine Ganzzahl"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "»%T::%D« ist kein Typ"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "ungültige Benutzung des nicht-statischen Datenelements »%E«"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "doppelter case-Wert"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
msgid "file ends in default argument"
msgstr "Datei endet in Standardargument"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr "veraltete Verwendung des Standardarguments für Parameter einer Nicht-Funktion"
-#: cp/parser.c:11858
+#: cp/parser.c:11980
msgid "default arguments are only permitted for function parameters"
msgstr "Standardargumente sind nur für Funktionsparameter zugelassen"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "ungültige Templatedeklaration von »%D«"
+
+#: cp/parser.c:12733
#, fuzzy
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr "Deklaration von »%D« in »%D«, das nicht »%D« einschließt"
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr "zusätzliche Qualifizierung ignoriert"
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "einer expliziten Spezialisierung muss »template <>« vorausgehen"
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "vorherige Definition von »%#T«"
+
+#: cp/parser.c:13059
#, fuzzy
msgid "%Hextra %<;%>"
msgstr "zusätzliches »;«"
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr "ein Klassenschlüssel muss bei Deklaration als »friend« verwendet werden"
-#: cp/parser.c:12946
+#: cp/parser.c:13091
msgid "friend declaration does not name a class or function"
msgstr "»friend«-Deklaration benennt keine Klasse oder Funktion"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr "reiner Spezifizierer bei Funktionsdefinition"
-#: cp/parser.c:13393
+#: cp/parser.c:13545
#, fuzzy
msgid "keyword %<typename%> not allowed outside of templates"
msgstr "Schlüsselwort »typename« nicht außerhalb von Templates erlaubt"
-#: cp/parser.c:13395
+#: cp/parser.c:13547
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr "Schlüsselwort »typename« nicht erlaubt in diesem Kontext (die Basisklasse ist implizit ein Typ)"
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "ungültiger catch-Parameter"
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "Referenz auf »%D« ist mehrdeutig"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
msgid "too few template-parameter-lists"
msgstr "zu wenige Templateparameterlisten"
@@ -16427,175 +16440,175 @@ msgstr "zu wenige Templateparameterlisten"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr "zu viele Templateparameterlisten"
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
msgid "invalid function declaration"
msgstr "ungültige Funktionsdeklaration"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
msgid "named return values are no longer supported"
msgstr "benannte Rückgabewerte werden nicht mehr unterstützt"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "Templatedeklaration von »%#D«"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
#, fuzzy
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr "»>>« sollte innerhalb einer geschachtelten Templateargumentliste »> >« sein"
-#: cp/parser.c:15063
+#: cp/parser.c:15233
#, fuzzy
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr "falsches »>>«; »>« verwenden, um eine Templateargumentliste zu beenden"
-#: cp/parser.c:15068
+#: cp/parser.c:15238
#, fuzzy
msgid "missing %<>%> to terminate the template argument list"
msgstr "fehlendes '>', um Templateargumentliste zu beenden"
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
msgstr "Markierung »%s« bei Benennung von »%#T« verwendet"
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "%D mit anderem Zugriff redeklariert"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
#, fuzzy
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr "»template« (zur Erklärung) ist nur innerhalb von Templates erlaubt"
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "Optimierungen zwischen Modulen noch nicht implementiert"
-#: cp/pt.c:240
+#: cp/pt.c:241
#, fuzzy
msgid "data member %qD cannot be a member template"
msgstr "Datenelement »%D« kann kein Elementtemplate sein"
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "ungültige Elementtemplatedeklaration »%D«"
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "explizite Spezialisierung in Gültigkeitsbereich des Nicht-Namensbereiches »%D«"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr "einschließende Klassentemplates werden nicht explizit spezialisiert"
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
msgstr "Spezialisierung von »%D« in anderem Namensbereich"
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr " aus Definition von »%#D«"
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "Spezialisierung von »%T« hinter Instanziierung"
-#: cp/pt.c:738
+#: cp/pt.c:739
#, fuzzy
msgid "specializing %q#T in different namespace"
msgstr "»%#T« wird in anderem Namensbereich spezialisiert"
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "Spezialisierung »%T« hinter Instanziierung »%T«"
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "explizite Spezialisierung des Nicht-Templates »%T«"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "Spezialisierung von »%D« nach Instanziierung"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "»%D« ist kein Funktionstemplate"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
#, fuzzy
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr "Template-ID »%D« für »%+D« passt zu keiner Templatedeklaration"
-#: cp/pt.c:1542
+#: cp/pt.c:1543
#, fuzzy
msgid "ambiguous template specialization %qD for %q+D"
msgstr "mehrdeutige Templatespezialisierung »%D« für »%+D«"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "Template-ID »%D« in Deklaration des ersten Templates"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr "Templateparameterliste in expliziter Instanziierung verwendet"
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr "Definition für explizite Instanziierung angegeben"
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "zu viele Templateparameterlisten in Deklaration von »%D«"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "zu wenige Templateparameterlisten in Deklaration von »%D«"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "einer expliziten Spezialisierung muss »template <>« vorausgehen"
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr "Standardargument in expliziter Spezialisierung angegeben"
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr "Templatespezialisierung mit C-Bindung angegeben"
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "»%D« ist keine Elementtemplatefunktion"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16604,67 +16617,61 @@ msgstr "Templatespezialisierung mit C-Bindung angegeben"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr "Spezialisierung der implizit deklarierten speziellen Elementfunktion"
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "keine Elementfunktion »%D« in »%T« deklariert"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "zu viele Templateparameterlisten in Deklaration von »%T«"
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr " überdeckt Templateparameter »%#D«"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr "nicht in partieller Spezialisierung verwendete Templateparameter:"
-#: cp/pt.c:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
msgstr " »%D«"
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "partielle Spezialisierung »%T« spezialisiert keine Templateargumente"
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, fuzzy, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr "Templateargument »%E« betrifft Templateparameter"
-#: cp/pt.c:2710
+#: cp/pt.c:2685
#, fuzzy
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr "Typ »%T« des Templatearguments »%E« hängt von Templateparameter(n) ab"
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "kein Standard-Argument für »%D«"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr "Template mit C-Bindung"
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr "Templateklasse ohne Namen"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
msgstr "Destruktor »%D« als Element-Template deklariert"
@@ -16674,62 +16681,67 @@ msgstr "Destruktor »%D« als Element-Template deklariert"
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "ungültige Templatedeklaration von »%D«"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "»%D« deklariert keinen Template-Typen"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "Template-Definition eines Nicht-Templates »%#D«"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "%d Ebenen von Template-Parametern für »%#D« erwartet, %d erhalten"
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "%d Template-Parameter für »%#D« erhalten"
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "%d Template-Parameter für »%#T« erhalten"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " aber %d benötigt"
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "»%T« ist kein Template-Typ"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "zu wenige Templateparameterlisten in Deklaration von »%D«"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "vorherige Deklaration »%D«"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "%d Template-Parameter%.0s statt %d verwendet"
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "Template-Parameter »%#D«"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
#, fuzzy
msgid "redeclared here as %q#D"
msgstr "hier als »%#D« redeklariert"
@@ -16738,345 +16750,356 @@ msgstr "hier als »%#D« redeklariert"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "Redefinition des Standardarguments für »%#D«"
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr "%J ursprüngliche Definition trat hier auf"
-#: cp/pt.c:3370
+#: cp/pt.c:3342
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist"
-#: cp/pt.c:3411
+#: cp/pt.c:3383
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist"
-#: cp/pt.c:3486
+#: cp/pt.c:3458
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist"
-#: cp/pt.c:3536
+#: cp/pt.c:3508
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist"
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist"
-#: cp/pt.c:3576
+#: cp/pt.c:3548
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr "Zeichenkettensymbol %E ist kein gültiges Templateargument, weil es die Adresse eines Objektes mit statischer Bindung ist"
-#: cp/pt.c:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "»%E« ist kein gültiges Templateargument"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "»%E« ist kein gültiges Templateargument"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
#, fuzzy
msgid "standard conversions are not allowed in this context"
msgstr "»this« darf in diesem Kontext nicht verwendet werden"
-#: cp/pt.c:3827
+#: cp/pt.c:3799
#, fuzzy
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr "um auf ein Typelement eines Templateparameters zu verweisen, »typename %E« verwenden"
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr "Typ/Wert des Arguments %d passt nicht in Template-Parameterliste für »%D«"
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr " Konstante des Typs »%T« erwartet, »%T« erhalten"
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr " Klassentemplate erwartet, »%E« erhalten"
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr " einen Typ erwartet, »%E« erhalten"
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr " einen Typ erwartet, »%T« erhalten"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr " Klassentemplate erwartet, »%T« erhalten"
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
msgstr " ein Template des Typs »%D« erwartet, »%D« erhalten"
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "Templateargument »%E« konnte nicht in »%T« umgewandelt werden"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "falsche Anzahl der Templateargumente (%d, sollte %d sein)"
-#: cp/pt.c:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "für »%D« bereitgestellt"
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, c-format
msgid "template argument %d is invalid"
msgstr "Templateargument %d ist ungültig"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr "Nicht-Template als Template verwendet"
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "Nicht-Template-Typ »%T« als Template verwendet"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "Für Template-Deklaration »%D«"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (-ftemplate-depth-NN verwenden, um dies zu erhöhen) bei Instanziierung von »%D«"
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "mehrdeutige Klassentemplate-Instanziierung für »%#T«"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "Instanziierung von »%D« als Typ »%T«"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "ungültiger Parametertyp »%T«"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "in Deklaration »%D«"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "Funktion gibt Aggregat zurück"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "»%s« als Funktion, die eine Funktion zurückgibt, deklariert"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "Erzeugung eines Zeigers auf Elementfunktion des Nicht-Klassentyps »%T«"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "Feld der Größe null wird erzeugt"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "Feld der Größe null (»%E«) wird erzeugt"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr "Referenz auf »void« wird gebildet"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "%s wird in Referenztyp »%T« umgeformt"
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "Zeiger auf Element des Nicht-Klassentypen »%T« wird erzeugt"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "Zeiger auf Elementreferenztyp »%T« wird erzeugt"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "Feld von »%T« wird erzeugt"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
#, fuzzy
msgid "creating array of %qT, which is an abstract class type"
msgstr "Feld von »%T« wird erzeugt, was ein abstrakter Klassentyp ist"
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "»%T« ist kein Klassen-, Struktur- oder Union-Typ"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+#, fuzzy
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr "%Jcase-Wert %qs nicht in Aufzählungstyp"
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "Feld von »%T« wird erzeugt, was ein abstrakter Klassentyp ist"
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "Verwendung von »%s« in Template"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, fuzzy, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr "Abhängigenname »%E« wird als Nicht-Typ erkannt, aber die Instanziierung liefert Typ"
-#: cp/pt.c:7557
+#: cp/pt.c:7556
#, fuzzy
msgid "say %<typename %E%> if a type is meant"
msgstr "»typename %E« sagen, wenn ein Typ gemeint ist"
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "statisches Feld »%s« fehlt"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "»%T« ist keine Klasse oder Namensbereich"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "»%D« ist keine Klasse oder Namensbereich"
-#: cp/pt.c:8844
+#: cp/pt.c:8872
#, fuzzy
-msgid "%qT uses anonymous type"
+msgid "%qT is/uses anonymous type"
msgstr "»%T« verwendet anonymen Typen"
-#: cp/pt.c:8846
+#: cp/pt.c:8874
#, fuzzy
msgid "%qT uses local type %qT"
msgstr "»%T« verwendet lokalen Typen »%T«"
-#: cp/pt.c:8854
+#: cp/pt.c:8883
#, fuzzy
msgid "%qT is a variably modified type"
msgstr "»%T« ist ein variabel modifizierter Typ"
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "Integralausdruck »%E« ist nicht konstant"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr " Versuch, »%D« zu instanziieren"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "unvollständige Typvereinigung"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "explizite Instanziierung des Nicht-Templates »%#D«"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
#, fuzzy
msgid "no matching template for %qD found"
msgstr "kein passendes Template für »%D« gefunden"
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "explizite Instanziierung von »%#D«"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "doppelte explizite Instanziierung von »%#D«"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr "ISO-C++ verbietet die Verwendung von »extern« bei expliziten Instanziierungen"
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "Speicherklasse »%D« auf Templateinstanziierung angewendet"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "explizite Instanziierung des Nicht-Templatetyps »%T«"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "explizite Instanziierung von »%#T« vor Definition des Templates"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr "ISO-C++ verbietet die Verwendung von »%s« bei expliziten Instanziierungen"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "doppelte explizite Instanziierung von »%#T«"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "explizite Instanziierung von »%D«, aber keine Definition verfügbar"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (-ftemplate-depth-NN verwenden, um dies zu erhöhen) bei Instanziierung von »%D«"
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "»%#T« ist kein gültiger Typ für einen Templatekonstanten-Parameter"
@@ -17095,25 +17118,25 @@ msgstr "rätselhafte Repository-Information in %s"
msgid "can't create repository information file %qs"
msgstr "Repository-Informationsdatei »%s« kann nicht erzeugt werden"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "typeid kann nicht mit -fno-rtti verwendet werden"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "vor Verwendung von typeid muss #include <typeinfo> angegeben werden"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
#, fuzzy
msgid "cannot create type information for type %qT because its size is variable"
msgstr "für Typ »%T« kann keine Typinformation erzeugt werden, weil seine Größe variabel ist"
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
#, fuzzy
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr "dynamic_cast von »%#D« nach »%#T« kann nie erfolgreich sein"
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "dynamic_cast »%E« (des Typs »%#T«) in Typ »%#T« (%s) kann nicht vorgenommen werden"
@@ -17128,237 +17151,232 @@ msgstr "»%T« ist mehrdeutige Basis von »%T«"
msgid "%qT is an inaccessible base of %qT"
msgstr "»%T« ist eine nicht erreichbare Basis von »%T«"
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "ungültiger kovarianter Rückgabetyp für »%#D«"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
#, fuzzy
msgid " overriding %q#D"
msgstr " »%#D« wird überschrieben"
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "ungültiger kovarianter Rückgabetyp für »%#D«"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "in Konflikt stehende Rückgabetypen für »%#D« angegeben"
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "loser »throw«-Spezifizierer für »%#F«"
-#: cp/search.c:1867
+#: cp/search.c:1876
#, fuzzy
msgid " overriding %q#F"
msgstr " »%#F« wird überschrieben"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "»%#D« kann nicht deklariert werden"
-#: cp/search.c:1961
+#: cp/search.c:1970
#, fuzzy
msgid " since %q#D declared in base class"
msgstr " denn »%#D« ist in Basisklasse deklariert"
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "Typ des asm-Operanden »%E« konnte nicht ermittelt werden"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "ungültige Verwendung des Elementes »%D« in statischer Elementfunktion"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr "von dieser Stelle"
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "Objekt fehlt in Referenz auf »%D«"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
msgid "arguments to destructor are not allowed"
msgstr "Argumente für Destruktor sind nicht erlaubt"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "»this« ist für statische Elementfunktionen nicht verfügbar"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "ungültige Verwendung von »this« in Nicht-Element-Funktion"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "ungültige Verwendung von »this« auf höchster Ebene"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "ungültiger angegebener Gültigkeitsbereich in Pseudodestruktor-Name"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "»%E« ist nicht vom Typ »%T«"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
#, fuzzy
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr "Templatetypparameter müssen das Schlüsselwort »class« oder »typename« verwenden"
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "ungültige Verwendung des Typs »%T« als Standardwert für einen Template-Templateparameter"
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "ungültige Verwendung von »%D« als Standardwert für einen Template-Templateparameter"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
msgid "invalid default argument for a template template parameter"
msgstr "ungültiges Standardargument für einen Template-Templateparameter"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "Definition von »%#T« in Templateparameterliste"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "ungültige Definition des qualifizierten Typen »%T«"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "vorherige Definition von »%#T«"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
msgid "invalid base-class specification"
msgstr "ungültige Spezifizierung der Basisklasse"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "Basisklasse »%T« hat CV-Kennzeichner"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
#, fuzzy
msgid "incomplete type %qT used in nested name specifier"
msgstr "unvollständiger Typ »%T« in geschachtelter Namensangabe verwendet"
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "Referenz auf »%D« ist mehrdeutig"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "»%D« ist kein Element von »%T«"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "»%D« ist kein Element von »%D«"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
#, fuzzy
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr "Templateparameter »%D« vom Typ »%T« ist in ganzzahligem Konstantenausdruck nicht erlaubt, da er nicht Ganzzahl- oder Aufzählungstyp hat"
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "»%D« kann nicht in Konstanten-Ausdruck auftreten"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "Verwendung des Namespace »%D« als Ausdruck"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "Verwendung des Klassentemplates »%T« als Ausdruck"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr "Abfrage des Elementes »%D« ist im Gitter der Mehrfachvererbung mehrdeutig"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr "Verwendung von %s von enthaltener Funktion aus"
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr " »%#D« hier deklariert"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "Typ von »%E« ist unbekannt"
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "»%V«-Qualifizierer können nicht auf »%T« angewendet werden"
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr "Attribut »%s« kann nur auf Java-Klassendefinitionen angewendet werden"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "Attribut »%s« kann nur auf Klassendefinitionen angewendet werden"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, fuzzy, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr "»%s« ist veraltet; g++-vtables sind jetzt standardmäßig COM-verträglich"
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "angefordertes init_priority ist keine Ganzzahlkonstante"
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, fuzzy, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr "nur Attribut »%s« kann für Definitionen von Objekten eines Klassentyps im Datei-Gültigkeitsbereich verwendet werden"
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "angefordertes init_priority ist außerhalb des Wertebereiches"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr "angefordertes init_priority ist für interne Verwendung reserviert"
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "Attribut »%s« wird auf dieser Plattform nicht unterstützt"
@@ -17378,215 +17396,215 @@ msgstr "ISO-C++ verbietet %s zwischen Zeiger des Typs »void *« und Zeiger auf
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "%s zwischen verschiedenen Zeiger-auf-Element-Typen »%T« und »%T« fehlt eine Typkonvertierung"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "ungültige Anwendung von »%s« auf Elementfunktion"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "ungültige Anwendung von »%s« auf ein Bitfeld"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO-C++ verbietet Anwendung von »%s« auf einen Ausdruck mit Funktionstyp"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
msgid "invalid use of non-static member function"
msgstr "falsche Benutzung einer nicht-statischen Elementfunktion"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "veraltete Konvertierung von Zeichenkettenkonstante in »%T«"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
#, fuzzy
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr "Abfrage des Elementes »%D« in »%E«, das vom Nicht-Klassentyp »%T« ist"
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "ungültige Benutzung des nicht-statischen Datenelements »%E«"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
#, fuzzy
msgid "invalid access to non-static data member %qD of NULL object"
msgstr "ungültiger Zugriff auf nicht-statisches Datenelement »%D« des NULL-Objektes"
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
#, fuzzy
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr "(vielleicht wurde das Makro »offsetof« falsch verwendet)"
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
#, fuzzy
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr "qualifizierter Typ »%T« passt nicht zum Destruktornamen »~%T«"
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
#, fuzzy
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr "der zerstörte Typ ist »%T«, aber der Destruktor verweist auf »%T«"
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "»%D::%D« ist kein Element von »%T«"
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "»%T« ist keine Basis von »%T«"
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "»%D« hat kein Element namens »%E«"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD is not a member template function"
msgstr "»%D« ist keine Elementtemplatefunktion"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "»%T« ist kein Zeiger auf Objekt"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "ungültige Verwendung von »%s« bei Zeiger auf Element"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "ungültiges Typargument"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "Index fehlt in Feldreferenz"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO-C++ verbietet Indizierung eines Nicht-L-Wert-Feldes"
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "Indizierung eines als »register« deklarierten Feldes"
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "bei Verwendung von »%E« fehlt Objekt"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO-C++ verbietet den Aufruf von »::main« vom Programm aus"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
#, fuzzy
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ".* oder ->* muss verwendet werden, um Zeiger auf Element in »%E (...)« aufzurufen"
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "»%E« kann nicht als Funktion verwendet werden"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "zu viele Argumente für %s »%+#D«"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "an dieser Stelle in der Datei"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "zu viele Argumente für Funktion"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "Parameter %P von »%D« hat unvollständigen Typen »%T«"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "Parameter %P hat unvollständigen Typen »%T«"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "zu wenige Argumente für %s »%+#D«"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "zu wenige Argumente für Funktion"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "Umwandlung in Typ »%T« von überladener Funktion wird angenommen"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "Division durch Null in »%E / 0«"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "Division durch Null in »%E / 0.«"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "Division durch Null in »%E %% 0«"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "Division durch Null in »%E %% 0.«"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "Rotationszähler %s ist negativ"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "Rotationszähler %s >= Breite des Typs"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO-C++ verbietet Vergleich zwischen Zeiger und Ganzzahl"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "ungeordneter Vergleich mit Nicht-Gleitkomma-Argument"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "ungültige Operanden der Typen »%T« und »%T« für binäres »%O«"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "Vergleich zwischen den Typen »%#T« und »%#T«"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken"
@@ -17594,150 +17612,150 @@ msgstr "Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausd
#. 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr "NULL in Arithmetik verwendet"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr "ISO-C++ verbietet die Verwendung eines Zeigers des Typs »void *« in Subtraktion"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "ISO-C++ verbietet die Verwendung eines Zeigers auf eine Funktion in Subtraktion"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "ISO-C++ verbietet die Verwendung eines Zeigers auf Methode in Subtraktion"
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "ungültige Verwendung eines Zeigers auf einen unvollständigen Typen in Zeigerarithmetik"
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, fuzzy, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr "ungültige Verwendung von »%E« um Zeiger auf Elementfunktion zu erzeugen. Qualifizierer-ID sollte verwendet werden"
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, fuzzy, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr "Klammern um »%E« können nicht verwendet werden, einen Zeiger auf Elementfunktion zu erzeugen"
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "Adresse eines temporären Wertes wird ermittelt"
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO-C++ verbietet %s einer Aufzählung"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "Fehler bei %s eines Zeigers auf unvollständigen Typen »%T«"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO-C++ verbietet %s eines Zeigers vom Typ »%T«"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr "Umwandlung in als L-Wert verwendeten Nicht-Referenz-Typ"
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "ungültige Verwendung der boolschen Variable »%D«"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr "ISO-C++ verbietet das Ermitteln der Adresse der Funktion »::main«"
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
#, fuzzy
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer nicht qualifizierten oder geklammerten nicht-statischen Elementfunktion, um einen Zeiger auf Elementfunktion zu erzeugen. Stattdessen »&%T::%D« verwenden"
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
#, 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++ verbietet das Ermitteln der Adresse einer gebundenen Elementfunktion, um einen Zeiger auf Elementfunktion zu erzeugen. Stattdessen »&%T::%D« verwenden"
-#: cp/typeck.c:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer Umwandlung in einen Nicht-L-Wert-Ausdruck"
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "Versuch, die Adresse des Bitfeldstrukturelements »%D« zu ermitteln"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr "Adresse des Destruktors wird ermittelt"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr "Adresse des gebundenen Zeiger-auf-Element-Ausdrucks wird ermittelt"
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "Zeiger auf Referenzelement »%D« kann nicht erzeugt werden"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr "Adresse von »this« kann nicht ermittelt werden, das ein R-Wert-Ausdruck ist"
-#: cp/typeck.c:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "Adresse der Register-Variablen »%s« angefordert"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
#, fuzzy
msgid "address requested for %qD, which is declared %<register%>"
msgstr "Adresse für »%D« angefordert, was als »register« deklariert ist"
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, c-format
msgid "%s expression list treated as compound expression"
msgstr "%s Ausdrucksliste als zusammengesetzten Ausdruck behandelt"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
#, fuzzy
msgid "%s from type %qT to type %qT casts away constness"
msgstr "%s vom Typ »%T« in Typ »%T« entfernt Konstantheit"
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "ungültiges static_cast vom Typ »%T« in den Typ »%T«"
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "Umwandlung von »%T« nach »%T«"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "ungültiges reinterpret_cast eines R-Wert-Ausdrucks des Typs »%T« in Typ »%T«"
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "reinterpret_cast von »%T« nach »%T« verliert Genauigkeit"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "Umwandlung von »%T« in »%T« erhöht erforderliche Ausrichtung des Zieltyps"
@@ -17746,171 +17764,141 @@ msgstr "Umwandlung von »%T« in »%T« erhöht erforderliche Ausrichtung des Zi
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ISO-C++ verbietet Umwandlung zwischen Zeiger auf Funktion und Zeiger auf Objekt"
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "ungültiges const_cast von Typ »%T« in Typ »%T«"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
#, fuzzy
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr "ungültige Verwendung von const_cast mit Typ »%T«, das weder Zeiger, Referenz, noch vom Typ eines Zeigers auf Datenelement ist"
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
#, fuzzy
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr "ungültige Verwendung von const_cast mit Typ »%T«, das ein Zeiger oder Referenz auf Funktionstyp ist"
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "ungültiges const_cast eines R-Wertes des Typs »%T« in Typ »%T«"
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "ungültiges const_cast von Typ »%T« in Typ »%T«"
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO-C++ verbietet Umwandlung in Feldtyp »%T«"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "ungültige Umwandlung in Funktionstyp »%T«"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
#, fuzzy
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr " in Auswertung von »%Q(%#T, %#T)«"
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "unverträgliche Typen in Zuweisung von »%T« an »%T«"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO-C++ verbietet Zuweisung von Feldern"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " in Umwandlung in Zeiger auf Elementfunktion"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr " in Umwandlung in Zeiger auf Element"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "Typumwandlung von Zeiger in Element über virtuelle Basis »%T«"
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "Umwandlung von Zeiger in Element über virtuelle Basis »%T«"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "ungültige Umwandlung in Typ »%T« von Typ »%T«"
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "Übergabe von NULL für Nicht-Zeiger %s %P von `%D' verwendet"
-
-#: cp/typeck.c:5874
-#, fuzzy
-msgid "%s to non-pointer type %qT from NULL"
-msgstr "%s in Nicht-Zeiger-Typ »%T« von NULL"
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "Übergabe von »%T« für %s %P von »%D«"
-
-#: cp/typeck.c:5885
-#, fuzzy
-msgid "%s to %qT from %qT"
-msgstr "%s nach »%T« von »%T«"
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "Übergabe des negativen Werts »%E« für %s %P von »%D«"
-
-#: cp/typeck.c:5897
-#, fuzzy
-msgid "%s of negative value %qE to %qT"
-msgstr "%s vom negativen Wert »%E« nach »%T«"
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr "»%T« kann nicht nach »%T« für Argument »%P« nach »%D« umgewandelt werden"
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "»%T« kann nicht nach »%T« in %s umgewandelt werden"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "bei Übergabe des Arguments %P von »%+D«"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "Referenz auf temporären Wert wird zurückgegeben"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "Referenz auf Nicht-L-Wert zurückgegeben"
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "Referenz auf lokale Variable »%D« zurückgegeben"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "Adresse der lokalen Variable »%D« zurückgegeben"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
msgid "returning a value from a destructor"
msgstr "Wert von Destruktor zurückgegeben"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6174
+#: cp/typeck.c:6063
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr "vom Behandler eines Funktions-try-Blocks eines Konstruktors kann nicht zurückgekehrt werden"
#. You can't return a value from a constructor.
-#: cp/typeck.c:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "Rückgabe eines Wertes von einem Konstruktor"
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "Return-Anweisung ohne Wert, in »%T« zurückgebender Funktion"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
msgid "return-statement with a value, in function returning 'void'"
msgstr "Return-Anweisung mit Wert in »void« zurückgebender Funktion"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
#, fuzzy
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr "»operator new« darf nicht NULL zurückgeben, außer es ist mit »throw()« deklariert (oder -fcheck-new ist eingeschaltet)"
@@ -17977,172 +17965,172 @@ msgstr "\t%#D"
msgid "%J since type %qT has pure virtual functions"
msgstr " denn der Typ »%T« hat abstrakte virtuelle Funktionen"
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
#, fuzzy
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr "Konstruktorsyntax verwendet, aber kein Konstruktor für Typ »%T« deklariert"
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "mit dieser Syntax können keine Felder initialisiert werden"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "Feld wird mit Parameterliste initialisiert"
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "int-Feld mit Nicht-wide-Zeichenkette initialisiert"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "Initialisierung für skalare Variable benötigt ein Element"
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "geschweifte Klammern um skalare Initialisierung für »%T«"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "zusätzliche Initialisierung für »%T« wird ignoriert"
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "Objekt variabler Größe vom Typ »%T« könnte nicht initialisiert sein"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
#, fuzzy
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr "Unterobjekt vom Typ »%T« muss vom Konstruktor initialisiert werden, nicht von »%E«"
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "Aggregat hat teilweise eckig geklammerte Initialisierung"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "nicht-trivial markierte Initialisierungen"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr "nicht-leere Initialisierung für Feld leerer Elemente"
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "Initialisierung für Element »%D« fehlt"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "nicht initialisiertes konstantes Element »%D«"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "Element »%D« mit nicht initialisierten konstanten Feldern"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "Feld »%D« ist nicht initialisierte Referenz"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr "Indexwert statt Feldname in Union-Initialisierung"
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "kein Feld »%D« in initialisierter Union"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
#, fuzzy
msgid "union %qT with no named members cannot be initialized"
msgstr "Union »%T« ohne benannte Elemente kann nicht initialisiert werden"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "überschüssige Elemente in Aggregatinitialisierung"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "ringförmige Zeigerdelegation erkannt"
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "Basisoperand von »->« hat Nicht-Zeiger-Typ »%T«"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
#, fuzzy
msgid "result of %<operator->()%> yields non-pointer result"
msgstr "Ergebnis von »operator->()« ergibt Nicht-Zeiger-Ergebnis"
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "Basisoperand von »->« ist kein Zeiger"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "»%E« kannt nicht als Elementzeiger verwendet werden, da es vom Typ »%T« ist"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
#, fuzzy
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr "Elementzeiger »%E« kann nicht auf »%E« angewandt werden, da letzteres vom Nicht-Aggregat-Typ »%T« ist"
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
#, fuzzy
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr "Elementtyp »%T::« mit Objekttyp »%T« inkompatibel"
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "Aufruf der Funktion »%D«, die unvollständigen Typen »%#T« wirft"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "Aufruf einer Funktion, die unvollständigen Typen »%#T« wirft"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr "%s ist veraltet, siehe Dokumentation für Details"
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "Ausgabedatei »%s« kann nicht geöffnet werden"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "globale Register-Variable »%s« in verschachtelter Funktion verwendet"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "Register-Variable »%s« in verschachtelter Funktion verwendet"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "Adresse der globalen Variable »%s« angefordert"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "Adresse der Register-Variablen »%s« angefordert"
@@ -18161,83 +18149,83 @@ msgstr "Argument für »%s« fehlt"
msgid "no input files; unwilling to write output files"
msgstr "keine Eingabedateien; es werden keine Ausgabedateien geschrieben"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "Funktion gibt keinen Zeichenkettentypen zurück"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "%Jnicht benutzter Parameter »%D«"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "%JVariable »%D« wird nicht verwendet"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "Funktion gibt Aggregat zurück"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "unbekannter Befehlsmodus"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "Sprache %s nicht erkannt"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18255,7 +18243,7 @@ msgstr ""
msgid "Array element size too big"
msgstr "Wert des Feldelementes bei %0 außerhalb des definierten Bereiches"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18265,27 +18253,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "%Jletztes Feld »%D« könnte nicht initialisiert worden sein"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "%Jletztes Feld »%D« könnte nicht initialisiert worden sein"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "interner Fehler in check-init: Baumcode nicht implementiert: %s"
-#: java/check-init.c:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "%Jletztes Feld »%D« könnte nicht initialisiert worden sein"
@@ -18321,194 +18309,194 @@ msgstr "%Jabstrakte Methode in nicht-abstrakter Klasse"
msgid "%Jnon-static method '%D' overrides static method"
msgstr "%Jnicht-statische Methode »%D« überschreibt statische Methode"
-#: java/decl.c:1203
+#: java/decl.c:1260
msgid "%J'%D' used prior to declaration"
msgstr "%J»%D« bereits vor Deklaration benutzt"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "Deklaration von »%s« überdeckt einen Parameter"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "Deklaration von »%s« überdeckt ein Symbol aus der Parameterliste"
-#: java/decl.c:1575
+#: java/decl.c:1632
msgid "%Jlabel '%D' used but not defined"
msgstr "%JMarke »%D« verwendet, aber nicht definiert"
-#: java/decl.c:1580
+#: java/decl.c:1637
msgid "%Jlabel '%D' defined but not used"
msgstr "%JMarke »%D« definiert, aber nicht verwendet"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr "%JIn %D: überlappende Variablen- und Ausnahmebereiche bei %d"
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr "schlechter Typ in Parameter-Debug-Info"
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr "%Jschlechter PC-Bereich für Debuginfo für lokales »%D«"
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, fuzzy, c-format
msgid "assert: %s is assign compatible with %s"
msgstr "-march=%s ist mit dem ausgewählten ABI unverträglich"
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr "Stapelunterlauf - dup*-Operation"
-#: java/expr.c:1699
+#: java/expr.c:1703
#, fuzzy, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr "Referenz »%s« ist mehrdeutig: erscheint in den Schnittstellen »%s« und »%s«"
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "Feld »%s« nicht gefunden"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "Methode »%s« nicht gefunden in Klasse"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "Suche nach Klasse »%s« gescheitert"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr "Klasse »%s« hat keine Methode namens »%s«, die zur Signatur »%s« passt"
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr "invokestatic an nichtstatischer Methode"
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr "invokestatic an abstrakter Methode"
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr "invoke[non-static] an statischer Methode"
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "Feld »%s« fehlt in »%s«"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "unpassende Signatur für Feld »%s« in »%s«"
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "%JZuweisung an final-Feld »%D« nicht in Klasse des Feldes"
-#: java/expr.c:2742
+#: java/expr.c:2746
#, fuzzy
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr "%JZuweisung an »final static«-Feld »%D« nicht in Klasseninitialisierung"
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "%JZuweisung an final-Feld »%D« nicht in Konstruktor"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "ungültiges PC in Zeilennummerntabelle"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "unerreichbarer Bytecode von %d bis vor %d"
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr "unerreichbarer Bytecode von %d bis an's Ende der Methode"
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr "nicht erkannter breiter Teilbefehl"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, c-format
msgid "ignored method '"
msgstr ""
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "Klasse »%s« kann nicht gefunden werden"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "Fehler beim Lesen von %s aus ZIP-Datei"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "kann Dateistatus für »%s« nicht ermitteln"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "keine gültige Java-.class-Datei"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr "Fehler beim Analysieren der Konstantenbasis"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "Fehler im Konstantenbasiseintrag #%d\n"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "Typkonvertierung gibt Feldtyp an"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "Typkonvertierung gibt Feldtyp an"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, fuzzy, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr "verwenden Sie -Winvalid-pch für mehr Informationen"
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, fuzzy, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
@@ -18517,118 +18505,118 @@ msgstr ""
"Aufruf: gcov [OPTION]... QUELLDATEI\n"
"\n"
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, fuzzy, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr "C-Header mit Plattform-spezifischen Merkmalen erzeugen"
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe Pipes statt temporärer Dateien verwenden\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -pipe Pipes statt temporärer Dateien verwenden\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <Verzeichnis> <Verzeichnis> zum Suchpfad des Compilers hinzufügen\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <Datei> Ausgabe in <Datei> schreiben\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " -h, --help Diese Hilfe anzeigen\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -v, --version Versionsnummer anzeigen\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -v, --version Versionsnummer anzeigen\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -h, --help Diese Hilfe anzeigen\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " -h, --help Diese Hilfe anzeigen\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -18639,32 +18627,32 @@ msgstr ""
"%s.\n"
"Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "kein Klassenname mit \"%s\" angegeben"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
#, fuzzy
msgid "'-MG' option is unimplemented"
msgstr "ret-Befehl nicht implementiert"
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "-C und -o können nicht zusammen angegeben werden"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "Erzeuge %s.\n"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -18679,7 +18667,7 @@ msgstr "keine gültige Java-.class-Datei"
msgid "error while parsing constant pool\n"
msgstr "Fehler beim Analysieren der Konstantenbasis"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "Fehler im Konstantenbasiseintrag #%d\n"
@@ -18755,104 +18743,104 @@ msgstr "Falscher eingebauter fcode"
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr "Quelldatei für Klasse »%s« ist neuer als die dazu passende Klassendatei. Stattdessen wurde Quelldatei »%s« verwendet"
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "Schlechte Zeichenkettenkonstante"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "Schlechter Wertekonstantentyp %d, Index %d"
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, c-format
msgid "can't reopen %s: %m"
msgstr "Es ist nicht möglich, »%s« erneut zu öffnen: %m"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, c-format
msgid "can't close %s: %m"
msgstr "Es ist nicht möglich, »%s« zu schließen: %m"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr "Datei für Klasse %s kann nicht gefunden werden"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr "keine gültige Java-.class-Datei"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "Lesen der Klasse %s zu zweiten Mal von %s"
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr "Fehler bei der Analyse der Felder"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr "Fehler beim Analysieren der Methoden"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr "Fehler beim Analysieren der final-Attribute"
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
#, fuzzy
msgid "the %<java.lang.Object%> that was found in %qs 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 "das in »%s« gefundene »java.lang.Object« hatte nicht das spezielle Attribut »gnu.gcj.gcj-compiled« der Länge Null. Dies bedeutet allgemein, dass der Classpath falsch gesetzt ist. »info gcj \"Input Options\"« verwenden, um die Info-Seiten zu sehen, die das Setzen des Classpath beschreiben"
-#: java/jcf-parse.c:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr "fehlendes Code-Attribut"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr "%HQuelldatei zweimal auf Kommandozeile gesehen; wird nur einmal kompiliert"
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "keine Eingabedatei angegeben"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, c-format
msgid "can't close input file %s: %m"
msgstr "die Eingabedatei »%s« kann nicht geschlossen werden: %m"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "schlechte ZIP/JAR-Datei %s"
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr "Fehler beim Lesen von %s aus ZIP-Datei"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "interner Fehler in generate_bytecode_insn - Baumcode nicht implementiert: %s"
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr "Typ der Feldinitialisierung passt nicht"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, c-format
msgid "can't create directory %s: %m"
msgstr "das Verzeichnis %s kann nicht erzeugt werden: %m"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, c-format
msgid "can't open %s for writing: %m"
msgstr "Datei »%s« kann nicht zum Schreiben geöffnet werden: %m"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, c-format
msgid "can't create %s: %m"
msgstr "Es ist nicht möglich, %s zu erzeugen: %m"
@@ -18908,27 +18896,27 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
#, fuzzy
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr "nur eines von »--print-main«, »--list-class« und »--complexity« erlaubt"
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "Ausgabedatei »%s« kann nicht geöffnet werden"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "Datei »%s« nicht gefunden"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "Fehler: "
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, fuzzy, c-format
msgid "%s: warning: "
msgstr "Warnung: "
@@ -18985,15 +18973,15 @@ msgstr "Verwendung von @FILE mit mehreren Dateien ist nicht implementiert"
msgid "cannot specify 'main' class when not linking"
msgstr "»main«-Klasse kann ohne Binden nicht angegeben werden"
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr "Abhängigkeiten-Verfolgung kann bei Eingabe von stdin nicht durchgeführt werden"
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr "Zielname für Abhängigkeiten-Verfolgung konnte nicht ermittelt werden"
-#: java/lex.c:256
+#: java/lex.c:260
#, fuzzy
msgid ""
"unknown encoding: %qs\n"
@@ -19008,7 +18996,7 @@ msgstr ""
"nicht versucht wird, eine bestimmte Codierung der Eingabedatei\n"
"zu benutzen, kann die Option »--encoding=UTF-8« verwendet werden"
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "interner Fehler - ungültiger UTF-8-Name"
@@ -19022,225 +19010,225 @@ msgstr "%s kann nicht verarbeitet werden"
msgid "internal error - invalid Utf8 name"
msgstr "interner Fehler - ungültiger UTF-8-Name"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr "Fehlender Term"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "»;« erwartet"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "Fehlender Name"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "»*« erwartet"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr "Klassen- oder Schnittstellendeklaration erwartet"
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "Feld »%s« als Funktion deklariert"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "Fehlender Klassenname"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "»{« erwartet"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr "Fehlender Superklassenname"
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr "Fehlender Schnittstellenname"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr "Fehlende Variableninitialisierung"
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "Ungültige Deklaration"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "»]« erwartet"
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr "Unsymmetrisches »]«"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr "Ungültige Methodendeklaration, Methodenname erforderlich"
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr "Bezeichner erforderlich"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr "Ungültige Methodendeklaration, Rückgabetyp erforderlich"
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "»)« erwartet"
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr "Fehlender Term für formalen Parameter"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "Fehlender Bezeichner"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr "Fehlender Term für Klassentyp"
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr "Ungültiger Schnittstellentyp"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "»:« erwartet"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr "Ungültiger Ausdruck"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "»(« erwartet"
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr "Fehlender Term oder »)«"
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr "Fehlender oder ungültiger Konstantenausdruck"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr "Fehlender Term und »)« erwartet"
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr "Ungültiger Steuerausdruck"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr "Ungültiger Aktualisierungsausdruck"
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr "Ungültige Init-Anweisung"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr "Fehlender Term oder »)« erwartet"
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr "»class« oder »this« erwartet"
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr "»class« erwartet"
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr "»)« oder Term erwartet"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "»[« erwartet"
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr "Feld erwartet"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr "Fehlender Term und »]« erwartet"
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr "»]« erwartet, ungültiger Typausdruck"
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr "Ungültiger Typausdruck"
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr "Ungültiger Referenztyp"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr "Konstruktoraufruf muss das erste in einem Konstruktor sein"
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr "Nur Konstruktoren dürfen Konstruktoren aufrufen"
-#: java/parse.y:3042
+#: java/parse.y:3041
#, fuzzy, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ": `%s' JDK1.1(TM)-Fähigkeit"
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19249,688 +19237,688 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Fehlender Name"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "Gesondertes Datensegment einschalten"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "»%D« ist bereits in »%T« definiert"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, fuzzy, c-format
msgid "Interface %qs repeated"
msgstr "Typ ist veraltet"
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "Unausgerichtete Speicherreferenzen verwenden"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, fuzzy, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr "Element »%D« kann nicht gleichzeitig virtuell und statisch deklariert werden"
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "Redefinition von »struct %s«"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "»int« ist Standardtyp in Deklaration von »%s«"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
#, fuzzy
msgid "Class %qs not found in %<throws%>"
msgstr "Feld »%s« nicht in Klasse gefunden"
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "doppelte Markendeklaration »%s«"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, fuzzy, c-format
msgid "Class or interface %qs not found in import"
msgstr "Klassen- oder Schnittstellendeklaration erwartet"
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "falsch geformtes ZIP-Archiv in CLASSPATH: %s"
-#: java/parse.y:7148
+#: java/parse.y:7151
#, fuzzy, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr "Standardpaket »%s« kann nicht gefunden werden. CLASSPATH-Umgebungsvariable und die Zugriffsrechte auf die Archive prüfen"
-#: java/parse.y:7153
+#: java/parse.y:7156
#, fuzzy, c-format
msgid "Package %qs not found in import"
msgstr "Feld »%s« nicht in Klasse gefunden"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, fuzzy, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr "kein geeignetes oder mehrdeutiges »%D« in Klasse »%T« gefunden"
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "%JVariable »%D« wird nicht verwendet"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "»%D« ist bereits in Klasse »%T« definiert"
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "Datei für Klasse %s kann nicht gefunden werden"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, fuzzy, c-format
msgid "Can't use type %qs as a qualifier"
msgstr "»%s« kann nicht als ein %s-Register verwendet werden"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "%HPrototyp-Deklaration"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "Ãœberlauf in Konstanten-Ausdruck"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "inkompatibler Typ für Argument %d von »%s«"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "doppelter case-Wert"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "statisches Feld »%s« fehlt"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "»%s« ist kein statisches Feld"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "Kein Fall für »%s«"
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "ungültiger L-Wert in Zuweisung"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "inkompatibler Typ für Argument %d von »%s«"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "nicht registrierter Operator %s"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "ungültiges Argument für Attribut »%s«"
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "inkompatibler Typ für Argument %d von »%s«"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "falsches Typ-Argument von »%s«"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "Ungültige Umformung von »%T« in »%T«"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "inkompatibler Typ für Argument %d von »%s«"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "Feld mit nicht konstantem Feldausdruck initialisiert"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "inkompatibler Typ für Argument %d von »%s«"
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "leerer Indexbereich in Initialisierung"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "leerer Indexbereich in Initialisierung"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "Rückgabe eines Wertes von einem Konstruktor"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "Deklaration von »%D« überdeckt eine globale Deklaration"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "dies ist die Stelle der vorherigen Definition"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "Keine Markendefinition für FORMAT-Anweisung bei %0"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "continue-Anweisung nicht innerhalb einer Schleife"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "continue-Anweisung nicht innerhalb einer Schleife"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "doppelte Marke »%D«"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
msgid "original label is here"
msgstr ""
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "leerer Indexbereich in Initialisierung"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "inkompatibler Typ für Argument %d von »%s«"
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "Ausschuss am Ende der Signaturzeichenketten"
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, fuzzy, c-format
msgid "verification failed: %s"
msgstr "Prüffehler bei PC=%d"
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, fuzzy, c-format
msgid "verification failed at PC=%d: %s"
msgstr "Prüffehler bei PC=%d"
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr "schlechtes PC in execution_table"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "unbekannter Opcode %d@pc=%d bei Überprüfung"
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr "Prüffehler bei PC=%d"
@@ -19978,192 +19966,192 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "inkompatibler Typ für Argument %d eines indirekten Funktionsaufrufes"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
#, fuzzy
msgid "%<@end%> must appear in an @implementation context"
msgstr "»@end« muss in einem Implementationskontext auftreten"
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "Methodendefinition nicht im Klassenkontext"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "Methodendefinition nicht im Klassenkontext"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, fuzzy, c-format
msgid "object does not conform to the %qs protocol"
msgstr "Objekt entspricht nicht dem Protokoll »%s«"
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "Klasse »%s« implementiert nicht das Protokoll »%s«"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, fuzzy, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr "statisch reservierte Instanz der Objective-C-Klasse »%s«"
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, fuzzy, c-format
msgid "protocol %qs has circular dependency"
msgstr "Protokoll »%s« hat ringförmige Abhängigkeit"
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "Protokolldeklaration für »%s« kann nicht gefunden werden"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "Schnittstellendeklaration für »%s« kann nicht gefunden werden"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, fuzzy, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr "die Schnittstelle »%s« hat nicht die Form einer konstanten Zeichenkette"
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "Referenzmarke für Klasse »%s« kann nicht gefunden werden"
-#: objc/objc-act.c:2330
+#: objc/objc-act.c:2374
#, fuzzy
-msgid "%Jcreating selector for nonexistent method %qE"
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr "Für nicht existierende Methode %s wird Selektor erzeugt"
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "»%s« ist kein Klassenname oder Alias in Objective-C"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr "Objective-C-Deklarationen dürfen nur im globalen Gültigkeitsbereich erscheinen"
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "Klasse »%s« kann nicht gefunden werden"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "Klasse »%s« existiert bereits"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "»%s« als andere Symbolart redeklariert"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
msgid "%Jprevious declaration of '%D'"
msgstr "%Jvorherige Deklaration von »%D«"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
#, fuzzy
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr "»-fobjc-exceptions« verwenden, um Syntax für Objective-C-Ausnahmen einzuschalten"
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
#, fuzzy
msgid "@catch parameter is not a known Objective-C class type"
msgstr "»@catch«-Parameter ist kein bekannter Objective-C-Klassentyp"
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
#, fuzzy
msgid "exception of type %<%T%> will be caught"
msgstr "Ausnahme des Typs »%T« wird gefangen werden"
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
#, fuzzy
msgid "%H by earlier handler for %<%T%>"
msgstr " von früherem Behandler für »%T«"
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
#, fuzzy
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr "»@try« ohne »@catch« oder »@finally«"
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
#, fuzzy
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr "»@throw;« (rethrow) außerhalb von »@catch«-Block verwendet"
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr "%JTyp »%D« hat keine bekannte Größe"
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "%J%s: »%s«"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr "widersprüchliche Spezifikation von Instanzvariable"
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
#, fuzzy
msgid "can not use an object as parameter to a method"
msgstr "ein Objekt kann nicht als Parameter für eine Methode verwendet werden\n"
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "mehrere %s namens »%c%s« gefunden"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "keine Superklasse im @interface für »%s« deklariert"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "ungültiger Empfängertyp »%s«"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "»%c%s« nicht von Protokoll(en) implementiert"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "»%s« antwortet möglicherweise nicht auf »%c%s«"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr "(Nachrichten ohne passende Methodensignatur"
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
#, fuzzy
msgid "will be assumed to return %<id%> and accept"
msgstr "werden als »id« zurückgebend angenommen und akzeptieren"
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
#, fuzzy
msgid "%<...%> as arguments.)"
msgstr "»...« als Argumente.)"
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
msgstr "nicht deklarierter Selektor »%s«"
@@ -20177,152 +20165,152 @@ msgstr "nicht deklarierter Selektor »%s«"
#. 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "in Klassenmethode wird auf Instanzvariable »%s« zugegriffen"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "doppelte Deklaration der Methode »%c%s«"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "doppelte Schnittstellendeklaration für Kategorie »%s(%s)«"
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "unzulässiger Referenztyp für Instanzvariable »%s« angegeben"
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
msgstr "Instanzvariable »%s« hat unbekannte Größe"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr "der Typ »%s« hat virtuelle Elementfunktionen"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "unzulässiger Aggregattyp »%s« für Instanzvariable »%s« angegeben"
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, fuzzy, c-format
msgid "type %qs has a user-defined constructor"
msgstr "Typ »%s« hat einen benutzerdefinierten Konstruktor"
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, fuzzy, c-format
msgid "type %qs has a user-defined destructor"
msgstr "Typ »%s« hat einen benutzerdefinierten Destruktor"
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr "C++-Konstruktoren und -Destruktoren werden für Objective-C-Felder nicht aufgerufen"
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "Instanzvariable »%s« ist als »private« deklariert"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, fuzzy, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr "Instanzvariable »%s« ist »%s«; dies wird zukünftig ein schwerer Fehler sein"
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "Instanzvariable »%s« ist als »%s« deklariert"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "statischer Zugriff auf Objekt des Typs »id«"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
msgstr "unvollständige Implementierung der Klasse »%s«"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
msgstr "unvollständige Implementierung der Kategorie »%s«"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
#, fuzzy
msgid "method definition for %<%c%s%> not found"
msgstr "Methodendefinition für »%c%s« nicht gefunden"
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "%s »%s« implementiert das »%s«-Protokoll nicht vollständig"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
#, fuzzy
msgid "%<@end%> missing in implementation context"
msgstr "»@end« fehlt in Implementationskontext"
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "Schnittstellendeklaration für »%s«, Superklasse von »%s«, kann nicht gefunden werden"
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "Reimplementation der Klasse »%s«"
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "in Konflikt stehender Superklassenname »%s«"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "vorherige Deklaration von »%s«"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "doppelte Schnittstellendeklaration für Klasse »%s«"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "Doppelte Deklaration für Protokoll »%s«"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
#, fuzzy
msgid "%J%s %<%c%s%>"
msgstr "%J%s »%c%s«"
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "keine Superklasse in Schnittstelle für »%s« deklariert"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] muss in einem Methodenkontext auftreten"
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "lokale Deklaration von »%s« verdeckt Instanzvariable"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben"
@@ -20332,22 +20320,22 @@ msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben"
msgid "%HDuplicate name %q.*s."
msgstr "%Hdoppelte Marke »%D«"
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "globale Register-Variable »%s« in verschachtelter Funktion verwendet"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "Register-Variable »%s« in verschachtelter Funktion verwendet"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "Adresse der globalen Variable »%s« angefordert"
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "Adresse der Register-Variablen »%s« angefordert"
@@ -20689,655 +20677,655 @@ msgid "Warn about function pointer arithmetic"
msgstr ""
#: options.c:1237
-msgid "Warn if inherited methods are unimplemented"
+msgid "Warn when a pointer differs in signedness in an assignment."
msgstr ""
#: options.c:1240
-msgid "Warn about multiple declarations of the same object"
+msgid "Warn if inherited methods are unimplemented"
msgstr ""
#: options.c:1243
-msgid "Warn if modifiers are specified when not necessary"
+msgid "Warn about multiple declarations of the same object"
msgstr ""
#: options.c:1246
-msgid "Warn when the compiler reorders code"
+msgid "Warn if modifiers are specified when not necessary"
msgstr ""
#: options.c:1249
-msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
+msgid "Warn when the compiler reorders code"
msgstr ""
#: options.c:1252
-msgid "Warn if a selector has multiple methods"
+msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr ""
#: options.c:1255
-msgid "Warn about possible violations of sequence point rules"
+msgid "Warn if a selector has multiple methods"
msgstr ""
#: options.c:1258
-msgid "Warn when one local variable shadows another"
+msgid "Warn about possible violations of sequence point rules"
msgstr ""
#: options.c:1261
-msgid "Warn about signed-unsigned comparisons"
+msgid "Warn when one local variable shadows another"
msgstr ""
#: options.c:1264
+msgid "Warn about signed-unsigned comparisons"
+msgstr ""
+
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
msgid "Warn about code which might break strict aliasing rules"
msgstr "Vor Code warnen, der strict-aliasing-Regeln verletzen könnte"
-#: options.c:1273
+#: options.c:1276
msgid "Warn about unprototyped function declarations"
msgstr "Vor Funktionsdeklarationen ohne Prototyp warnen"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "Vor verdächtigen Deklarationen von \"main\" warnen"
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr "Vor Sprachmerkmalen, die in traditionellem C nicht verfügbar sind, warnen"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
#, fuzzy
msgid "Warn about @selector()s without previously declared methods"
msgstr "Vor globalen Funktionen ohne vorherige Deklaration warnen"
-#: options.c:1303
+#: options.c:1306
msgid "Warn if an undefined macro is used in an #if directive"
msgstr ""
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "Ãœberlauf in Konstanten-Ausdruck"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr ""
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr ""
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr ""
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr ""
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr ""
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr ""
-#: options.c:1342
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr ""
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr ""
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
msgid "Generate position-independent code if possible (large mode)"
msgstr ""
-#: options.c:1378
+#: options.c:1381
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr ""
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr ""
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr ""
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr ""
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr ""
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr ""
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr ""
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr ""
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
msgid "Recognize built-in functions"
msgstr "Eingebaute Funktionen erkennen"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr ""
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr ""
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr ""
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr ""
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "Code für DLL erzeugen"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr ""
-#: options.c:1498
+#: options.c:1501
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr ""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr ""
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr ""
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
msgid "Place data items into their own section"
msgstr ""
-#: options.c:1519
+#: options.c:1525
msgid "Inline member functions by default"
msgstr "Standardmäßig »inline«-Elementfunktionen"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr ""
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr ""
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
msgid "Permit '$' as an identifier character"
msgstr "'$' als Bezeichnerzeichen zulassen"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
#, fuzzy
msgid "Display the code tree after parsing."
msgstr "Compiler-Version anzeigen"
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
msgid "Generate code to check exception specifications"
msgstr "Code zur Überprüfung von Exception-Spezifikationen erzeugen"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr ""
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr ""
-#: options.c:1615
+#: options.c:1621
#, fuzzy
msgid "Assume that the source file is fixed form"
msgstr "Annehmen, dass Zeiger nicht mit anderem Namen verwendet werden können"
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr ""
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr ""
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: options.c:1648
+#: options.c:1654
msgid "Place each function into its own section"
msgstr "Jede Funktion in ihren eigenen Abschnitt platzieren"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr ""
-#: options.c:1654
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
msgstr ""
-#: options.c:1657
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr "Code für die GNU-Laufzeitumgebung erzeugen"
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr ""
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr ""
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr ""
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr ""
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr ""
-#: options.c:1705
+#: options.c:1711
msgid "Emit implicit instantiations of inline templates"
msgstr ""
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
msgid "Emit implicit instantiations of templates"
msgstr ""
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr ""
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr ""
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr ""
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr ""
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr ""
-#: options.c:1756
+#: options.c:1762
msgid "Perform loop optimizations"
msgstr ""
-#: options.c:1759
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr ""
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr ""
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr ""
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: options.c:1792
+#: options.c:1798
msgid "Don't warn about uses of Microsoft extensions"
msgstr ""
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr ""
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr "Code für die NeXT (Apple Mac OS X) Laufzeitumgebung erzeugen"
@@ -21767,316 +21755,320 @@ msgid "Enable loop vectorization on trees"
msgstr "Binder-Optimierungen einschalten"
#: options.c:2161
-msgid "Append underscores to externally visible names"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
msgstr ""
#: options.c:2164
-msgid "Compile whole compilation unit at a time"
+msgid "Append underscores to externally visible names"
msgstr ""
#: options.c:2167
-msgid "Perform loop unrolling for all loops"
+msgid "Compile whole compilation unit at a time"
msgstr ""
#: options.c:2170
-msgid "Perform loop unrolling when iteration count is known"
+msgid "Perform loop unrolling for all loops"
msgstr ""
#: options.c:2173
-msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgid "Perform loop unrolling when iteration count is known"
msgstr ""
#: options.c:2176
-msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
#: options.c:2179
-msgid "Make \"char\" unsigned by default"
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
#: options.c:2182
-msgid "Perform loop unswitching"
+msgid "Make \"char\" unsigned by default"
msgstr ""
#: options.c:2185
-msgid "Just generate unwind tables for exception handling"
+msgid "Perform loop unswitching"
msgstr ""
#: options.c:2188
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Code für M*Core M340 erzeugen"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
#, fuzzy
msgid "Perform variable tracking"
msgstr "End-Aufruf-Optimierung durchführen"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr ""
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr ""
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr ""
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr ""
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr ""
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr ""
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr ""
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr ""
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr "Deklaration in .decl-Datei ausgeben"
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr ""
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr ""
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr ""
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
msgid "-o <file>\tPlace output into <file>"
msgstr "-o <Datei>\tAusgabe in <Datei> schreiben"
-#: options.c:2323
+#: options.c:2326
msgid "Enable function profiling"
msgstr ""
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr ""
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr "C-Header mit Plattform-spezifischen Merkmalen erzeugen"
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr ""
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
msgid "Remap file names when including files"
msgstr "Dateinamen beim Einfügen von Dateien neu abbilden"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr ""
-#: options.c:2407
+#: options.c:2410
msgid "Suppress warnings"
msgstr ""
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "-EB und -EL können nicht gleichzeitig verwendet werden"
@@ -22094,35 +22086,35 @@ msgstr "-mhard-float nicht unterstützt"
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float und -msoft-float können nicht zusammen angegeben werden"
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr "-current_version ist nur mit -dynamiclib erlaubt"
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr "-install_name ist nur mit -dynamiclib erlaubt"
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr "-bundle ist nicht mit -dynamiclib erlaubt"
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "-bundle_loader ist nicht mit -dynamiclib erlaubt"
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr "-client_name ist nicht mit -dynamiclib erlaubt"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr "-force_flat_namespace ist nicht mit -dynamiclib erlaubt"
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr "-keep_private_externs ist mit -dynamiclib nicht erlaubt"
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-private_bundle ist mit -dynamiclib nicht erlaubt"
@@ -22150,29 +22142,21 @@ msgstr "-femit-class-file sollte zusammen mit -fsyntax-only verwendet werden"
msgid "shared and mdll are not compatible"
msgstr "shared und mdll sind unverträglich"
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr "-m32 und -m64 können nicht zusammen angegeben werden"
-#: treelang/lang-specs.h:52
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg oder -p und -fomit-frame-pointer sind unverträglich"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg und -fomit-frame-pointer sind unverträglich"
-
#: config/vax/netbsd-elf.h:42
msgid "The -shared option is not currently supported for VAX ELF."
msgstr "Die Option -shared wird derzeit nicht für VAX ELF unterstützt."
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt"
-
#: 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"
@@ -22197,11 +22181,15 @@ msgstr "mno-cygwin und mno-win32 sind unverträglich"
msgid "the m210 does not have little endian support"
msgstr "der m210 hat keine Little-Endian-Unterstützung"
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr "GCC unterstützt nicht -C oder -CC ohne -E"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg und -fomit-frame-pointer sind unverträglich"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "-E benötigt, wenn die Eingabe von der Standardeingabe kommt"
@@ -22218,14 +22206,108 @@ msgstr ""
msgid "does not support multilib"
msgstr "unterstützt nicht multilib"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr " in Konflikt stehende Codeerzeugungsschalter verwendet"
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg oder -p und -fomit-frame-pointer sind unverträglich"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
+#~ msgid "too many arguments to function %<va_start%>"
+#~ msgstr "zu viele Argumente für %<va_start%>"
+
+#~ msgid "nested static declaration of %qD"
+#~ msgstr "geschachtelte static-Deklaration von %qD"
+
+#~ msgid "elements of array %qD have incomplete type"
+#~ msgstr "Elemente des Feldes %qD haben unvollständigen Typ"
+
+#~ msgid "%Jfunction %qF can never be inlined because it has pending sizes"
+#~ msgstr "%JFunktion %qF kann nie inline sein, da sie noch offene Größen hat"
+
+#~ msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
+#~ msgstr "%Jdie geschachtelte Funktion %qF kann nie inline sein, da sie möglicherweise gespeicherte, noch offene Größen hat"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "Initialisierungs-Bezeichner dürfen nicht geschachtelt werden"
+
+#~ msgid "can't access real part of complex value in hard register"
+#~ msgstr "kann nicht auf Realteil des komplexen Wertes im festen Register zugreifen"
+
+#~ msgid "can't access imaginary part of complex value in hard register"
+#~ msgstr "kann nicht auf Imaginärteil des komplexen Wertes im festen Register zugreifen"
+
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "Färbung konnte nicht gefunden werden.\n"
+
+#~ msgid "unknown set constructor type"
+#~ msgstr "unbekannter Mengenkonstruktortyp"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "Die Höchstzahl der Anweisungen für RTL »inline«"
+
+#~ msgid "unexpected address expression"
+#~ msgstr "unerwarteter Adressausdruck"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "unerwartetes NOTE als addr_const:"
+
+#~ msgid "Bad insn to frv_print_operand, 'C' modifier:"
+#~ msgstr "Falscher Befehl für frv_print_operand, Modifizierer »C«:"
+
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "Falscher Befehl für frv_print_operand, Modifizierer »c«: "
+
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Code für Itanium (TM) B step ausgeben"
+
+#~ msgid "Same as -mabi=32, just trickier"
+#~ msgstr "Wie -mabi=32, nur heikler"
+
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Fließkommaargumente immer über Speicher übergeben"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Fließkommaargumente nicht immer über Speicher übergeben"
+
+#, fuzzy
+#~ msgid "base %qT with only non-default constructor in class without a constructor"
+#~ msgstr "Basis »%T« ohne Standard-Konstruktor in Klasse ohne Konstruktor"
+
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "%Jungültiger Typkennzeichner für Nicht-Element-Funktionstyp"
+
+#, fuzzy
+#~ msgid "function %qD cannot be declared friend"
+#~ msgstr "Funktion »%D« kann nicht als »friend« deklariert werden"
+
+#, fuzzy
+#~ msgid "initializer specified for non-member function %qD"
+#~ msgstr "Initialisierung für Nicht-Element-Funktion »%D« angegeben"
+
+#, fuzzy
+#~ msgid "invalid initializer for virtual method %qD"
+#~ msgstr "ungültige Initialisierung für virtuelle Methode »%D«"
+
+#~ msgid "expected type-name"
+#~ msgstr "Typname erwartet"
+
+#, fuzzy
+#~ msgid "too many template parameter lists in declaration of %qT"
+#~ msgstr "zu viele Templateparameterlisten in Deklaration von »%T«"
+
+#~ msgid "non-template used as template"
+#~ msgstr "Nicht-Template als Template verwendet"
+
+#, fuzzy
+#~ msgid "%s to %qT from %qT"
+#~ msgstr "%s nach »%T« von »%T«"
+
#~ msgid "built-in function `%s' not currently supported"
#~ msgstr "eingebaute Funktion »%s« gegenwärtig nicht unterstützt"
@@ -22871,9 +22953,6 @@ msgstr ""
#~ msgid "#pragma %s %s is already registered"
#~ msgstr "#pragma %s %s ist bereits registriert"
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "#pragma %s ist bereits registriert"
-
#~ msgid "#pragma once in main file"
#~ msgstr "#pragma once in Hauptdatei"
diff --git a/gcc/po/el.po b/gcc/po/el.po
index 41673543df1..dbd69482a10 100644
--- a/gcc/po/el.po
+++ b/gcc/po/el.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 4.0-b20041128\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
"PO-Revision-Date: 2004-12-15 18:53+0000\n"
"Last-Translator: Simos Xenitellis <simos74@gmx.net>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -38,587 +38,595 @@ msgstr ""
msgid "offset outside bounds of constant string"
msgstr ""
-#: builtins.c:923
+#: builtins.c:928
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr ""
-#: builtins.c:930
+#: builtins.c:935
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr ""
-#: builtins.c:938
+#: builtins.c:943
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr ""
-#: builtins.c:945
+#: builtins.c:950
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr ""
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: builtins.c:3755 builtins.c:8661
-msgid "%<va_start%> used in function with fixed args"
-msgstr ""
-
-#: builtins.c:3774 builtins.c:8677
-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:3779 builtins.c:8683
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr ""
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "πάÏα πολλά οÏίσματα"
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "πάÏα πολλά οÏίσματα"
-
-#: builtins.c:4017
+#: builtins.c:4077
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:4031
+#: builtins.c:4091
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr ""
-#: builtins.c:4036
+#: builtins.c:4096
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr ""
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4220
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4162
+#: builtins.c:4222
msgid "invalid argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4176
+#: builtins.c:4235
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4178
+#: builtins.c:4237
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4281
+#: builtins.c:4340
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr ""
-#: builtins.c:5488
+#: builtins.c:5590
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr ""
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr ""
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "πάÏα πολλά οÏίσματα"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "πάÏα πολλά οÏίσματα"
-#: c-common.c:831
+#: builtins.c:8911
+msgid "%<va_start%> used in function with fixed args"
+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:8918
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr ""
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr ""
+
+#: c-common.c:826
msgid "%qD is not defined outside of function scope"
msgstr ""
-#: c-common.c:852
+#: c-common.c:847
#, c-format
msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
msgstr ""
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr ""
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr ""
-#: c-common.c:927
+#: c-common.c:917
#, fuzzy
msgid "floating point overflow in expression"
msgstr "ΕξαίÏεση κινητής υποδιαστολής"
-#: c-common.c:933
+#: c-common.c:923
#, fuzzy
msgid "vector overflow in expression"
msgstr "ΕξαίÏεση κινητής υποδιαστολής"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr ""
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr ""
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr ""
-#: c-common.c:1151
+#: c-common.c:1141
#, c-format
msgid "operation on %qs may be undefined"
msgstr ""
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr ""
-#: c-common.c:1480
+#: c-common.c:1468
#, fuzzy
msgid "case label value is less than minimum value for type"
msgstr ""
"ο δηλωμένος αÏιθμός bytes `%s' είναι μεγαλÏτεÏος από το μέγιστο\n"
"που μποÏεί να αναπαÏασταθεί από το Ï„Ïπο δεδομένων `long'"
-#: c-common.c:1488
+#: c-common.c:1476
#, fuzzy
msgid "case label value exceeds maximum value for type"
msgstr ""
"ο δηλωμένος αÏιθμός bytes `%s' είναι μεγαλÏτεÏος από το μέγιστο\n"
"που μποÏεί να αναπαÏασταθεί από το Ï„Ïπο δεδομένων `long'"
-#: c-common.c:1496
+#: c-common.c:1484
#, fuzzy
msgid "lower value in case label range less than minimum value for type"
msgstr ""
"ο δηλωμένος αÏιθμός bytes `%s' είναι μεγαλÏτεÏος από το μέγιστο\n"
"που μποÏεί να αναπαÏασταθεί από το Ï„Ïπο δεδομένων `long'"
-#: c-common.c:1505
+#: c-common.c:1493
#, fuzzy
msgid "upper value in case label range exceeds maximum value for type"
msgstr ""
"ο δηλωμένος αÏιθμός bytes `%s' είναι μεγαλÏτεÏος από το μέγιστο\n"
"που μποÏεί να αναπαÏασταθεί από το Ï„Ïπο δεδομένων `long'"
-#: c-common.c:1821
+#: c-common.c:1833
#, fuzzy
msgid "invalid truth-value expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: c-common.c:1869
+#: c-common.c:1881
#, fuzzy, c-format
msgid "invalid operands to binary %s"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: c-common.c:2112
+#: c-common.c:2116
msgid "comparison is always false due to limited range of data type"
msgstr ""
-#: c-common.c:2114
+#: c-common.c:2118
msgid "comparison is always true due to limited range of data type"
msgstr ""
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr ""
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr ""
-#: c-common.c:2235
+#: c-common.c:2239
msgid "pointer of type %<void *%> used in arithmetic"
msgstr ""
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr ""
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr ""
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr ""
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "μη έγκυÏος αÏιθμός από γÏαμμές"
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "μη έγκυÏος αÏιθμός αÏχείου στη δήλωση πεδίου: `%s'"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "μη έγκυÏος δεÏτεÏος τελεστής σε κατάσταση συμβατότητας `%s'"
-#: c-common.c:2813
+#: c-common.c:2848
msgid "%<__alignof%> applied to a bit-field"
msgstr ""
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr ""
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr ""
-#: c-common.c:3477
+#: c-common.c:3534
#, fuzzy
msgid "empty range specified"
msgstr "μη οÏισμένο"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr ""
-#: c-common.c:3537
+#: c-common.c:3594
#, fuzzy
msgid "%Jthis is the first entry overlapping that value"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: c-common.c:3541
+#: c-common.c:3598
#, fuzzy
msgid "duplicate case value"
msgstr "διπλός αÏιθμός μηνÏματος"
-#: c-common.c:3542
+#: c-common.c:3599
#, fuzzy
msgid "%Jpreviously used here"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr ""
-#: c-common.c:3547
+#: c-common.c:3604
#, fuzzy
msgid "%Jthis is the first default label"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: c-common.c:3596
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
msgstr ""
-#: c-common.c:3599
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr ""
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
msgid "%Henumeration value %qE not handled in switch"
msgstr ""
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr ""
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "άγνωστο σετ `%s'"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
msgid "use __attribute__ ((vector_size)) instead"
msgstr ""
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "Δεν μπόÏεσα να ανοίξω το αÏχείο %s"
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "δεν οÏίστηκε βαÏÏτητα για το σÏμβολο `%s'"
-#: c-common.c:4309
+#: c-common.c:4366
#, fuzzy, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "Δεν είναι δυνατόν να βÏεθεί ο Ï„Ïπος του επεξεÏγαστή."
-#: c-common.c:4322
+#: c-common.c:4390
#, c-format
msgid "mode %qs applied to inappropriate type"
msgstr ""
-#: c-common.c:4355
+#: c-common.c:4421
#, fuzzy
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: c-common.c:4381
+#: c-common.c:4447
#, fuzzy
msgid "%Jsection attributes are not supported for this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr ""
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr ""
-#: c-common.c:4429
+#: c-common.c:4495
#, fuzzy
msgid "requested alignment is too large"
msgstr "Κακή αίτηση παÏαμέτÏων"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "μόνο ένα ÏŒÏισμα μποÏεί να δηλωθεί"
-#: c-common.c:4493
+#: c-common.c:4559
msgid "%J%qD defined both normally and as an alias"
msgstr ""
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
+
+#: c-common.c:4657
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr ""
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: c-common.c:4663
+#: c-common.c:4735
msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-common.c:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
msgid "%J%qE attribute applies only to functions"
msgstr ""
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr ""
-#: c-common.c:4925
+#: c-common.c:4997
#, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr ""
-#: c-common.c:4944
+#: c-common.c:5016
#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:4952
+#: c-common.c:5024
#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το αÏχείο fifo `%s'"
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "Ï€Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα"
-#: c-common.c:5086
+#: c-common.c:5158
#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr ""
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "διπλός Ï€ÏοσδιοÏιστής μηνÏματος"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "πάÏα πολλά οÏίσματα"
-#: c-common.c:5202
+#: c-common.c:5274
#, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: c-common.c:5213
+#: c-common.c:5285
#, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr ""
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το αÏχείο fifo `%s'"
-#: c-common.c:5634
+#: c-common.c:5727
#, fuzzy
msgid "invalid lvalue in assignment"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: c-common.c:5637
+#: c-common.c:5730
#, fuzzy
msgid "invalid lvalue in increment"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: c-common.c:5640
+#: c-common.c:5733
#, fuzzy
msgid "invalid lvalue in decrement"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "μη έγκυÏος χÏόνος αναπήδης"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr ""
@@ -627,101 +635,106 @@ msgstr ""
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr ""
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr ""
-#: c-decl.c:524
+#: c-decl.c:530
msgid "%Jarray %qD assumed to have one element"
msgstr ""
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
msgid "%Jlabel %qD used but not defined"
msgstr ""
-#: c-decl.c:727
+#: c-decl.c:733
msgid "%Jlabel %qD defined but not used"
msgstr ""
-#: c-decl.c:729
+#: c-decl.c:735
msgid "%Jlabel %qD declared but not defined"
msgstr ""
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "αχÏησιμοποίητη μεταβλητή `%s'"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
msgid "a parameter list with an ellipsis can%'t match an empty parameter name list declaration"
msgstr ""
-#: c-decl.c:1015
+#: c-decl.c:1029
msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
msgstr ""
-#: c-decl.c:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1080
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr ""
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr ""
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: c-decl.c:1134
+#: c-decl.c:1149
msgid "%J%qD redeclared as different kind of symbol"
msgstr ""
-#: c-decl.c:1139
+#: c-decl.c:1154
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr ""
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "δημιουÏγία αÏχείου `%s'\n"
@@ -729,255 +742,255 @@ msgstr "δημιουÏγία αÏχείου `%s'\n"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr ""
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr ""
-#: c-decl.c:1326
+#: c-decl.c:1383
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr ""
-#: c-decl.c:1329
+#: c-decl.c:1386
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr ""
-#: c-decl.c:1359
+#: c-decl.c:1416
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr ""
-#: c-decl.c:1395
+#: c-decl.c:1452
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr ""
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr ""
-#: c-decl.c:1433
+#: c-decl.c:1490
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr ""
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "%s: διπλός οÏισμός έκδοσης κατηγοÏίας"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "%s: διπλός οÏισμός έκδοσης κατηγοÏίας"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
+
+#: c-decl.c:1871
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr ""
-#: c-decl.c:1811
+#: c-decl.c:1874
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr ""
-#: c-decl.c:1818
+#: c-decl.c:1884
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr ""
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr ""
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "Μη έγκυÏη επιλογή `%s'"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "αυτονόητη διακÏÏηξη της συνάÏτησης `%s'"
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "αυτονόητη διακÏÏηξη της συνάÏτησης `%#D'"
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "αυτονόητη διακÏÏηξη της συνάÏτησης `%#D'"
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "%qE δεν έχει διακυÏηχθεί (Ï€Ïώτη χÏήση στη συνάÏτηση αυτή)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr ""
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr ""
-#: c-decl.c:2329
+#: c-decl.c:2372
#, c-format
msgid "label %qs referenced outside of any function"
msgstr ""
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "διπλό κλειδί"
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr ""
-#: c-decl.c:2726
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2737
+#: c-decl.c:2780
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "κενό αλφαÏιθμητικό"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "κενό αλφαÏιθμητικό"
-#: c-decl.c:2779
+#: c-decl.c:2822
msgid "%<auto%> in file-scope empty declaration"
msgstr ""
-#: c-decl.c:2785
+#: c-decl.c:2828
msgid "%<register%> in file-scope empty declaration"
msgstr ""
-#: c-decl.c:2791
+#: c-decl.c:2834
msgid "useless storage class specifier in empty declaration"
msgstr ""
-#: c-decl.c:2797
+#: c-decl.c:2840
msgid "useless %<__thread%> in empty declaration"
msgstr ""
-#: c-decl.c:2805
+#: c-decl.c:2848
msgid "useless type qualifier in empty declaration"
msgstr ""
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
#, fuzzy
msgid "empty declaration"
msgstr "κενό αλφαÏιθμητικό"
-#: c-decl.c:2878
+#: c-decl.c:2921
msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
msgstr ""
-#: c-decl.c:2881
+#: c-decl.c:2924
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr ""
-#: c-decl.c:2884
+#: c-decl.c:2927
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr ""
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr ""
-#: c-decl.c:2974
+#: c-decl.c:3019
msgid "function %qD is initialized like a variable"
msgstr ""
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "έχουν παÏαληφθεί οÏίσματα"
@@ -986,816 +999,811 @@ msgstr "έχουν παÏαληφθεί οÏίσματα"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr ""
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "μη πλήÏης εγγÏαφή"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
msgid "%Jinline function %qD given attribute noinline"
msgstr ""
-#: c-decl.c:3154
+#: c-decl.c:3194
msgid "%Jinitializer fails to determine size of %qD"
msgstr ""
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "σφάλμα κατά το κλείσιμο της εισόδου `%s'"
-#: c-decl.c:3175
+#: c-decl.c:3215
msgid "%Jzero or negative size array %qD"
msgstr ""
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "Το όνομα `%s' είναι άγνωστο\n"
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "Το όνομα `%s' είναι άγνωστο\n"
-#: c-decl.c:3266
+#: c-decl.c:3299
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr ""
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr ""
-#: c-decl.c:3614
+#: c-decl.c:3648
#, fuzzy
msgid "<anonymous>"
msgstr "((ανώνυμο))"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "ΑÏνητικό πλάτος στην αποτίμηση"
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "ΑÏνητικό πλάτος στην αποτίμηση"
-#: c-decl.c:3646
+#: c-decl.c:3680
#, c-format
msgid "bit-field %qs has invalid type"
msgstr ""
-#: c-decl.c:3655
+#: c-decl.c:3689
#, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr ""
-#: c-decl.c:3664
+#: c-decl.c:3698
#, c-format
msgid "width of %qs exceeds its type"
msgstr ""
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "διπλό κλειδί"
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "διπλό κλειδί"
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "διπλό κλειδί"
-#: c-decl.c:3853
+#: c-decl.c:3887
msgid "function definition declared %<auto%>"
msgstr ""
-#: c-decl.c:3855
+#: c-decl.c:3889
msgid "function definition declared %<register%>"
msgstr ""
-#: c-decl.c:3857
+#: c-decl.c:3891
msgid "function definition declared %<typedef%>"
msgstr ""
-#: c-decl.c:3859
+#: c-decl.c:3893
msgid "function definition declared %<__thread%>"
msgstr ""
-#: c-decl.c:3875
+#: c-decl.c:3909
#, c-format
msgid "storage class specified for structure field %qs"
msgstr ""
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, c-format
msgid "storage class specified for parameter %qs"
msgstr ""
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr ""
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
msgid "%qs initialized and declared %<extern%>"
msgstr ""
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
msgid "%qs has both %<extern%> and initializer"
msgstr ""
-#: c-decl.c:3902
+#: c-decl.c:3936
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr ""
-#: c-decl.c:3904
+#: c-decl.c:3938
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr ""
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
msgid "nested function %qs declared %<extern%>"
msgstr ""
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr ""
-#: c-decl.c:3999
+#: c-decl.c:4039
#, c-format
msgid "declaration of %qs as array of voids"
msgstr ""
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "αυτονόητη διακÏÏηξη της συνάÏτησης `%s'"
-#: c-decl.c:4010
+#: c-decl.c:4050
#, fuzzy
msgid "invalid use of structure with flexible array member"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "Ο κατάλογος `%s' δεν είναι Ï€Ïοσιτός."
-#: c-decl.c:4035
+#: c-decl.c:4075
#, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr ""
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "Ο κατάλογος `%s' δεν είναι Ï€Ïοσιτός."
-#: c-decl.c:4056
+#: c-decl.c:4096
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr ""
-#: c-decl.c:4060
+#: c-decl.c:4100
#, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr ""
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "Ο κατάλογος `%s' δεν είναι Ï€Ïοσιτός."
-#: c-decl.c:4106
+#: c-decl.c:4150
#, fuzzy
msgid "ISO C90 does not support flexible array members"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr ""
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "%s: διπλός οÏισμός έκδοσης κατηγοÏίας"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, c-format
msgid "%qs declared as function returning an array"
msgstr ""
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "μη έγκυÏος αÏιθμός αÏχείου στη δήλωση πεδίου: `%s'"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4282
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr ""
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, c-format
msgid "field %qs declared as a function"
msgstr ""
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "μη έγκυÏη τάξη χαÏακτήÏων `%s'"
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "`return' χωÏίς τιμή, σε συνάÏτηση που επιστÏέφει μη-κενό"
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το αÏχείο fifo `%s'"
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4591
msgid "%Jvariable %qD 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:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
#, fuzzy
msgid "thread-local storage not supported for this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
msgid "function declaration isn%'t a prototype"
msgstr ""
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
msgstr ""
-#: c-decl.c:4793
+#: c-decl.c:4829
msgid "%Jparameter %qD has just a forward declaration"
msgstr ""
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "συνεχίζεται στο τμήμα"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, fuzzy, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "συνεχίζεται στο τμήμα"
-#: c-decl.c:4848
+#: c-decl.c:4884
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr ""
-#: c-decl.c:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "Οι οÏισμοί πηγή βÏίσκονται στο ΑΡΧΕΙΟ"
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr ""
-#: c-decl.c:5067
+#: c-decl.c:5103
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr ""
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "διπλός αÏιθμός μηνÏματος"
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "επώνυμα μέλη"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "επώνυμα μέλη"
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "επώνυμα μέλη"
# src/request.c:37
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "%s σε %s"
-#: c-decl.c:5231
+#: c-decl.c:5267
#, fuzzy
msgid "%Jflexible array member in union"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5248
+#: c-decl.c:5284
#, fuzzy
msgid "%Jinvalid use of structure with flexible array member"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr ""
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr ""
-#: c-decl.c:5626
+#: c-decl.c:5671
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr ""
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr ""
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "ο επιστÏεφόμενος Ï„Ïπος Ï€ÏοκαθοÏίζεται σε `int'"
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "διατήÏηση ωÏών στο %s"
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "αυτή είναι η θέση του Ï€Ïώτου οÏισμοÏ"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "αυτή είναι η θέση του Ï€Ïώτου οÏισμοÏ"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "η επιστÏεφόμενη τιμή της `%s' δεν είναι `int'"
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "το Ï€Ïώτο ÏŒÏισμα της `%s' Ï€Ïέπει να είναι `int'"
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "το δεÏτεÏο ÏŒÏισμα της `%s' Ï€Ïέπει να είναι `char **'"
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "το Ï„Ïίτο ÏŒÏισμα της `%s' Ï€Ïέπει να είναι `char **'"
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "η `%s' παίÏνει είτε κανένα είτε δÏο οÏίσματα"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "η `%s' είναι συνήθως μη-στατική συνάÏτηση"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr ""
-#: c-decl.c:5908
+#: c-decl.c:5953
#, fuzzy
msgid "%Jparameter name omitted"
msgstr "έχει παÏαληφθεί το όνομα της παÏαμέτÏου"
-#: c-decl.c:5948
+#: c-decl.c:5993
msgid "%Jold-style function definition"
msgstr ""
-#: c-decl.c:5956
+#: c-decl.c:6001
#, fuzzy
msgid "%Jparameter name missing from parameter list"
msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
-#: c-decl.c:5967
+#: c-decl.c:6012
msgid "%J%qD declared as a non-parameter"
msgstr ""
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "ο επιστÏεφόμενος Ï„Ïπος Ï€ÏοκαθοÏίζεται σε `int'"
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-decl.c:6022
+#: c-decl.c:6067
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr ""
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "λάθος αÏιθμός οÏισμάτων"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
#, fuzzy
msgid "%Hprototype declaration"
msgstr "κενό αλφαÏιθμητικό"
-#: c-decl.c:6101
+#: c-decl.c:6146
msgid "promoted argument %qD doesn%'t match prototype"
msgstr ""
-#: c-decl.c:6109
+#: c-decl.c:6154
msgid "argument %qD doesn%'t match prototype"
msgstr ""
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
#, fuzzy
msgid "no return statement in function returning non-void"
msgstr "`return' χωÏίς τιμή, σε συνάÏτηση που επιστÏέφει μη-κενό"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
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:6403
+#: c-decl.c:6461
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:6432
+#: c-decl.c:6490
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6435
+#: c-decl.c:6493
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6440
+#: c-decl.c:6498
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6444
+#: c-decl.c:6502
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6448
+#: c-decl.c:6506
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6452
+#: c-decl.c:6510
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "διπλό κλειδί"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
msgid "two or more data types in declaration specifiers"
msgstr ""
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
msgid "%<long long long%> is too long for GCC"
msgstr ""
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: c-decl.c:6875
+#: c-decl.c:6933
#, fuzzy
msgid "ISO C90 does not support complex types"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
msgstr ""
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
msgstr ""
-#: c-decl.c:7106
+#: c-decl.c:7164
msgid "multiple storage classes in declaration specifiers"
msgstr ""
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr ""
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr ""
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
msgid "%J%qF used but never defined"
msgstr ""
@@ -2316,7 +2324,7 @@ msgstr ""
msgid "statement with no effect"
msgstr ""
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr ""
@@ -2339,17 +2347,17 @@ msgstr ""
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "διαγÏαφή μη-καταλόγου `%s'\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr ""
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr ""
-#: c-incpath.c:292
+#: c-incpath.c:295
#, fuzzy, c-format
msgid "End of search list.\n"
msgstr "Τέλος τμήματος"
@@ -2409,35 +2417,27 @@ msgstr "σχετική θέση αÏχείου είναι εκτός οÏίων"
msgid "traditional C rejects string constant concatenation"
msgstr ""
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr ""
-#: c-objc-common.c:267
+#: c-objc-common.c:248
msgid "used struct type value where scalar is required"
msgstr ""
-#: c-objc-common.c:271
+#: c-objc-common.c:252
msgid "used union type value where scalar is required"
msgstr ""
@@ -2485,80 +2485,80 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr ""
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr ""
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr ""
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr ""
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr ""
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr ""
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr ""
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr ""
-#: c-opts.c:995
+#: c-opts.c:998
#, fuzzy, c-format
msgid "opening output file %s: %m"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου `%s'"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, c-format
msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr ""
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr ""
-#: c-opts.c:1137
+#: c-opts.c:1140
#, fuzzy, c-format
msgid "when writing output to %s: %m"
msgstr "σφάλμα εγγÏαφής %s"
-#: c-opts.c:1216
+#: c-opts.c:1220
msgid "to generate dependencies you must specify either -M or -MM"
msgstr ""
-#: c-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr ""
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr ""
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2570,16 +2570,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "σφάλμα σÏνταξης"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
#, fuzzy
msgid "syntax error: cannot back up"
msgstr "ο διαχωÏιστής δε μποÏεί να είναι κενός"
@@ -2628,108 +2628,113 @@ msgstr ""
msgid "%<typeof%> applied to a bit-field"
msgstr ""
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr ""
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
msgstr ""
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
msgid "obsolete use of designated initializer with %<:%>"
msgstr ""
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr ""
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
msgid "ISO C forbids forward references to %<enum%> types"
msgstr ""
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
#, fuzzy
msgid "comma at end of enumerator list"
msgstr "σκουπίδια στο τέλος του αÏιθμοÏ"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr ""
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr ""
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr ""
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr ""
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr ""
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr ""
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, c-format
msgid "%E qualifier ignored on asm"
msgstr ""
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+#, fuzzy
+msgid "wide string literal in %<asm%>"
+msgstr "ελάχιστο μέγεθος αλφαÏιθμητικοÏ"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "Κακή αίτηση παÏαμέτÏων"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "σφάλμα επεξεÏγασίας· επίσης η μνήμη εξαντλήθηκε"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
#, fuzzy
msgid "parser stack overflow"
msgstr "ΥπεÏχείλιση πίνακα αÏχείου"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, c-format
msgid "syntax error at %qs token"
msgstr "συντακτικό σφάλμα στο σÏμβολο %qs"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "σφάλμα επεξεÏγασίας"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
#, fuzzy
msgid "parse error; also virtual memory exhausted"
msgstr "σφάλμα επεξεÏγασίας· επίσης η μνήμη εξαντλήθηκε"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "ο διαχωÏιστής δε μποÏεί να είναι κενός"
@@ -2854,190 +2859,190 @@ msgstr ""
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
#, fuzzy
msgid "malformed #pragma weak, ignored"
msgstr "κακοδιαμοÏφωμένη γÏαμμή αγνοήθηκε"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr ""
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
#, fuzzy
msgid "malformed #pragma redefine_extname, ignored"
msgstr "κακοδιαμοÏφωμένη γÏαμμή αγνοήθηκε"
-#: c-pragma.c:384
+#: c-pragma.c:416
#, fuzzy
msgid "junk at end of #pragma redefine_extname"
msgstr "μη τεÏματιζόμενo αλφαÏιθμητικό"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr ""
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:448
+#: c-pragma.c:480
#, fuzzy
msgid "malformed #pragma extern_prefix, ignored"
msgstr "κακοδιαμοÏφωμένη γÏαμμή αγνοήθηκε"
-#: c-pragma.c:451
+#: c-pragma.c:483
#, fuzzy
msgid "junk at end of #pragma extern_prefix"
msgstr "μη τεÏματιζόμενo αλφαÏιθμητικό"
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: c-pragma.c:483
+#: c-pragma.c:515
msgid "asm declaration ignored due to conflict with previous rename"
msgstr ""
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
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
-#: c-pragma.c:596
+#: c-pragma.c:628
#, fuzzy
msgid "malformed #pragma GCC visibility push"
msgstr "κακοσχηματισμένος μετÏητής επανάληψης"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "μη τεÏματιζόμενo αλφαÏιθμητικό"
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
#, fuzzy
msgid "invalid use of void expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: c-typeck.c:168
+#: c-typeck.c:169
#, fuzzy
msgid "invalid use of flexible array member"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr ""
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
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:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "μη έγκυÏος δεÏτεÏος τελεστής σε κατάσταση συμβατότητας `%s'"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr ""
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr ""
-#: c-typeck.c:987
+#: c-typeck.c:1045
msgid "function return types not compatible due to %<volatile%>"
msgstr ""
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr ""
# src/main.c:697 src/main.c:751
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "Άγνωστη γλώσσα `%s'"
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, c-format
msgid "request for member %qs in something not a structure or union"
msgstr ""
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr ""
-#: c-typeck.c:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "Δεν μποÏεί να καθοÏιστεί το όνομα του συστήματος"
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr ""
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "το πέÏασμα του οÏίσματος %d του δείκτη στη συνάÏτηση"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
msgid "array subscript has type %<char%>"
msgstr ""
-#: c-typeck.c:1667
+#: c-typeck.c:1748
msgid "ISO C forbids subscripting %<register%> array"
msgstr ""
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr ""
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
@@ -3045,790 +3050,786 @@ msgstr "Το επώνυμο αντικείμενο δεν είναι αναζηÏ
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr ""
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
#, fuzzy
msgid "initializer element is not constant"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "πάÏα πολλά οÏίσματα"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2121
+#: c-typeck.c:2204
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr ""
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr ""
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr ""
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "το πέÏασμα του οÏίσματος %d του δείκτη στη συνάÏτηση"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "Ï€Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr ""
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr ""
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr ""
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr ""
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr ""
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr ""
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr ""
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr ""
-#: c-typeck.c:2288
+#: c-typeck.c:2371
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr ""
-#: c-typeck.c:2314
+#: c-typeck.c:2397
msgid "pointer of type %<void *%> used in subtraction"
msgstr ""
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr ""
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2435
+#: c-typeck.c:2518
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr ""
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2449
+#: c-typeck.c:2532
#, fuzzy
msgid "wrong type argument to abs"
msgstr "λάθος αÏιθμός οÏισμάτων"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2512
+#: c-typeck.c:2595
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr ""
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr ""
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr ""
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, fuzzy, c-format
msgid "assignment of read-only member %qs"
msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, fuzzy, c-format
msgid "increment of read-only member %qs"
msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, fuzzy, c-format
msgid "decrement of read-only member %qs"
msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, fuzzy, c-format
msgid "assignment of read-only variable %qs"
msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, fuzzy, c-format
msgid "increment of read-only variable %qs"
msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, fuzzy, c-format
msgid "decrement of read-only variable %qs"
msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
-#: c-typeck.c:2734
+#: c-typeck.c:2817
#, fuzzy
msgid "assignment of read-only location"
msgstr "Η παÏάμετÏος στο <%s> Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
msgid "increment of read-only location"
msgstr ""
-#: c-typeck.c:2736
+#: c-typeck.c:2819
msgid "decrement of read-only location"
msgstr ""
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το αÏχείο fifo `%s'"
-#: c-typeck.c:2783
+#: c-typeck.c:2866
msgid "global register variable %qD used in nested function"
msgstr ""
-#: c-typeck.c:2786
+#: c-typeck.c:2869
msgid "register variable %qD used in nested function"
msgstr ""
-#: c-typeck.c:2791
+#: c-typeck.c:2874
msgid "address of global register variable %qD requested"
msgstr ""
-#: c-typeck.c:2793
+#: c-typeck.c:2876
msgid "address of register variable %qD requested"
msgstr ""
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr ""
-#: c-typeck.c:2892
+#: c-typeck.c:2975
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr ""
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr ""
-#: c-typeck.c:3069
+#: c-typeck.c:3152
msgid "cast to union type from type not present in union"
msgstr ""
-#: c-typeck.c:3120
+#: c-typeck.c:3203
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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr ""
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr ""
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3181
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr ""
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr ""
-#: c-typeck.c:3457
+#: c-typeck.c:3537
#, fuzzy
msgid "cannot pass rvalue to reference parameter"
msgstr "δεν είναι δυνατόν να γίνει `stat' το locale αÏχείο `%s'"
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
msgid "assignment makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
msgid "initialization makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
msgid "return makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
msgid "assignment discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "initialization discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "return discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:3628
+#: c-typeck.c:3714
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3631
+#: c-typeck.c:3717
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3633
+#: c-typeck.c:3719
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3635
+#: c-typeck.c:3721
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr ""
-#: c-typeck.c:3660
+#: c-typeck.c:3746
msgid "pointer targets in assignment differ in signedness"
msgstr ""
-#: c-typeck.c:3662
+#: c-typeck.c:3748
msgid "pointer targets in initialization differ in signedness"
msgstr ""
-#: c-typeck.c:3664
+#: c-typeck.c:3750
msgid "pointer targets in return differ in signedness"
msgstr ""
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, fuzzy, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "Η παÏάμετÏος στο <%s> Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "Δεν είναι δυνατόν να βÏεθεί ο Ï„Ïπος του επεξεÏγαστή."
-#: c-typeck.c:3690
+#: c-typeck.c:3776
msgid "initialization from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "μη πλήÏης εγγÏαφή"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
#, fuzzy
msgid "invalid use of non-lvalue array"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s μετατÏέπει ακέÏαιο σε δείκτη χωÏίς μετατÏοπέα"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
# src/request.c:263
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "Το βήμα αÏχικοποίησης απέτυχε"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4116
+#: c-typeck.c:4202
#, fuzzy
msgid "wchar_t-array initialized from non-wide string"
msgstr "Η αλυσίδα μοÏφής δεν είναι έγκυÏη: `%s'"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4140
+#: c-typeck.c:4226
msgid "array of inappropriate type initialized from string constant"
msgstr ""
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
#, fuzzy
msgid "invalid initializer"
msgstr "μη έγκυÏο μέγεθος οÏιζόντιου στηλοθέτη: %s"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
#, fuzzy
msgid "opaque vector types cannot be initialized"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
#, fuzzy
msgid "extra brace group at end of initializer"
msgstr "ακολουθοÏν σκουπίδια στο τέλος της γÏαμμής"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:4916
+#: c-typeck.c:5017
#, fuzzy
msgid "missing initializer"
msgstr "έχει παÏαληφθεί το αÏχείο Ï€ÏοοÏισμοÏ"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr ""
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5104
+#: c-typeck.c:5199
msgid "array index in initializer not of integer type"
msgstr ""
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, c-format
msgid "unknown field %qs specified in initializer"
msgstr ""
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr ""
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6362
+#: c-typeck.c:6492
msgid "ISO C forbids %<goto *expr;%>"
msgstr ""
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr ""
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
msgid "%<return%> with no value, in function returning non-void"
msgstr "`return' χωÏίς τιμή, σε συνάÏτηση που επιστÏέφει μη-κενό"
-#: c-typeck.c:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "`return' χωÏίς τιμή, σε συνάÏτηση που επιστÏέφει μη-κενό"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr ""
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr ""
-#: c-typeck.c:6518
+#: c-typeck.c:6649
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr ""
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr ""
-#: c-typeck.c:6557
+#: c-typeck.c:6687
msgid "%<default%> label not within a switch statement"
msgstr ""
-#: c-typeck.c:6621
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
-#: c-typeck.c:6631
+#: c-typeck.c:6761
msgid "%Hempty body in an if-statement"
msgstr ""
-#: c-typeck.c:6639
+#: c-typeck.c:6769
msgid "%Hempty body in an else-statement"
msgstr ""
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr ""
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr ""
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr ""
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "διαίÏεση με μηδέν"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr ""
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr ""
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr ""
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr ""
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr ""
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr ""
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr ""
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr ""
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr ""
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr ""
@@ -3872,7 +3873,7 @@ msgstr ""
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
@@ -3981,310 +3982,310 @@ msgstr "αÏχεία fifo δεν υποστηÏίζονται"
msgid "%s does not support flow_call_edges_add"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, c-format
msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: cfgloop.c:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr ""
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr ""
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:231
+#: cgraph.c:278
#, fuzzy
msgid "function body not available"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr ""
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
#, fuzzy
msgid "function not considered for inlining"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
#, fuzzy
msgid "function not inlinable"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "οÏισμός δικαιωμάτων στο %s"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
msgstr ""
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u"
@@ -4293,160 +4294,160 @@ msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u"
msgid "no arguments"
msgstr "χωÏίς οÏίσματα"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "άγνωστο σετ `%s'"
# src/getopt1.c:132
# src/getopt1.c:132
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr ""
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr ""
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr ""
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr ""
-#: collect2.c:1507
+#: collect2.c:1514
#, fuzzy, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s: Ο Ï€ÏοεπεξεÏγαστής C απέτυχε με σήμα %d\n"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr ""
-#: collect2.c:1550
+#: collect2.c:1557
#, fuzzy, c-format
msgid "[cannot find %s]"
msgstr "Δεν είναι δυνατόν να εκτελεστεί το %s"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr ""
-#: collect2.c:1618
+#: collect2.c:1625
#, fuzzy, c-format
msgid "[Leaving %s]\n"
msgstr "διαγÏαφή καταλόγου %s\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "σωλήνωση"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr ""
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr ""
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
msgstr ""
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr ""
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: collect2.c:2456
+#: collect2.c:2463
#, fuzzy, c-format
msgid "%s: not a COFF file"
msgstr "%s: Δεν είναι κανονικό αÏχείο"
-#: collect2.c:2576
+#: collect2.c:2583
#, fuzzy, c-format
msgid "%s: cannot open as COFF file"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
-#: collect2.c:2631
+#: collect2.c:2641
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "Πιθανόν δε βÏέθηκε"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4454,7 +4455,7 @@ msgid ""
"\n"
msgstr ""
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4569,7 +4570,7 @@ msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
msgid "too many input files"
msgstr "υπεÏβολικά πολλά αÏχεία εισόδου"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
@@ -4626,32 +4627,24 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: emit-rtl.c:1215
-msgid "can't access real part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
#, fuzzy
msgid "Invalid rtl sharing found in the insn"
msgstr "μη έγκυÏη μέτÏηση επανάληψης `%s' στη κατασκευή [c*n]"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr ""
@@ -4670,7 +4663,7 @@ msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζοντÎ
msgid "__builtin_eh_return not supported on this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: explow.c:1355
+#: explow.c:1301
#, fuzzy
msgid "stack limits not supported on this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
@@ -4724,173 +4717,173 @@ msgstr ""
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr ""
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
#, fuzzy
msgid "invalid expression as operand"
msgstr "%s: μη έγκυÏη κανονική έκφÏαση: %s"
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
#, fuzzy
msgid "internal consistency failure"
msgstr "εσωτεÏικό σφάλμα gcc"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:4899
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4904
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
# src/shred.c:1134
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "%s: το αÏχείο είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿"
-#: function.c:1442
+#: function.c:1443
msgid "impossible constraint in %<asm%>"
msgstr ""
-#: function.c:3495
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3516
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr ""
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "άγνωστος χαÏακτήÏας `%s'"
# src/main.c:785
-#: gcc.c:1242
+#: gcc.c:1237
#, fuzzy, c-format
msgid "ambiguous abbreviation %s"
msgstr "Ασαφής μοÏφή `%s'"
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "Μεταγλωττισμός Ï€ÏοδιαγÏαφών τοπικών Ïυθμίσεων"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1825
+#: gcc.c:1815
#, fuzzy, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr "δημιουÏγία %s %s στο %s"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2057
+#: gcc.c:2047
#, fuzzy, c-format
msgid "could not find specs file %s\n"
msgstr "Δεν μπόÏεσα να ανοίξω το αÏχείο %s"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, fuzzy, c-format
msgid "rename spec %s to %s\n"
msgstr "δημιουÏγία %s %s στο %s"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
"\n"
msgstr ""
-#: gcc.c:2136
+#: gcc.c:2126
#, fuzzy, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "λίστα με όλα τα γνωστά σÏνολα χαÏακτήÏων"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2635
+#: gcc.c:2625
#, c-format
msgid "system path '%s' is not absolute"
msgstr ""
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "το -pipe δεν υποστηÏίζεται"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -4898,7 +4891,7 @@ msgstr ""
"\n"
"Îα συνεχίσετε; (y ή n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -4906,69 +4899,69 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "χÏήση: %s [επιλογές] αÏχείο...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Επιλογές:\n"
-#: gcc.c:3036
+#: gcc.c:3026
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr " -pass-exit-codes Έξοδος με το υψηλότεÏο κωδικό σφάλματος της φάσης\n"
-#: gcc.c:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Εμφάνιση αυτών των πληÏοφοÏιών\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help Εμφάνιση επιλογές γÏαμμών εντολής σχετικές με το στόχο\n"
-#: gcc.c:3040
+#: gcc.c:3030
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr " (ΧÏήση '-v --help' για την εμφάνιση επιλογών γÏαμμής εντολής υποδιεÏγασιών)\n"
-#: gcc.c:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Εμφάνιση όλων των Ï€ÏοκαθοÏισμένων αλφαÏιθμητικών των Ï€ÏοσδιοÏισμών\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Εμφάνιση της έκδοσης του μεταγλωττιστή\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Εμφάνιση του επεξεÏγαστή στόχου του μεταγλωττιστή\n"
-#: gcc.c:3044
+#: gcc.c:3034
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr " -print-search-dirs Εμφάνιση των καταλόγων στις διαδÏομές αναζήτησης του μεταγλωττιστή\n"
-#: gcc.c:3045
+#: gcc.c:3035
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr " -print-libgcc-file-name Εμφάνιση του ονόματος της συνοδευτικής βιβλιοθήκης του μεταγλωττιστή\n"
-#: gcc.c:3046
+#: gcc.c:3036
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr " -print-file-name=<βιβλιοθ> Εμφάνιση της πλήÏης διαδÏομής στη βιβλιοθήκη <βιβλιοθ>\n"
-#: gcc.c:3047
+#: gcc.c:3037
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr " -print-prog-name=<Ï€ÏόγÏ> Εμφάνιση της πλήÏης διαδÏομής στο συστατικό μεταγλωττιστή <Ï€ÏόγÏ>\n"
-#: gcc.c:3048
+#: gcc.c:3038
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr " -print-multi-directory Εμφάνιση του ÏÎ¹Î¶Î¹ÎºÎ¿Ï ÎºÎ±Ï„Î±Î»ÏŒÎ³Î¿Ï… για εκδόσεις της libgcc\n"
-#: gcc.c:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -4977,101 +4970,101 @@ msgstr ""
" εντολής και καταλόγων αναζήτησης πολλαπλών\n"
" βιβλιοθηκών\n"
-#: gcc.c:3052
+#: gcc.c:3042
#, fuzzy
msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr " -print-multi-directory Εμφάνιση του ÏÎ¹Î¶Î¹ÎºÎ¿Ï ÎºÎ±Ï„Î±Î»ÏŒÎ³Î¿Ï… για εκδόσεις της libgcc\n"
-#: gcc.c:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<επιλογές> ΠέÏασμα <επιλογών> διαχωÏισμένων με κόμμα στο συναÏμολογητή\n"
-#: gcc.c:3054
+#: gcc.c:3044
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<επιλογές> ΠέÏασμα <επιλογών> διαχωÏισμένων με κόμμα στον Ï€Ïο-επεξεÏγαστή\n"
-#: gcc.c:3055
+#: gcc.c:3045
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<επιλογές> ΠέÏασμα <επιλογών> διαχωÏισμένων με κόμμα στο συνδέτη\n"
-#: gcc.c:3056
+#: gcc.c:3046
#, fuzzy
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xlinker <ÏŒÏισμα> ΠέÏασμα <οÏίσματος> στο συνδέτη\n"
-#: gcc.c:3057
+#: gcc.c:3047
#, fuzzy
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xlinker <ÏŒÏισμα> ΠέÏασμα <οÏίσματος> στο συνδέτη\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <ÏŒÏισμα> ΠέÏασμα <οÏίσματος> στο συνδέτη\n"
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -o <αÏχείο> Τοποθέτηση της εξόδου στο <αÏχείο>\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Îα μη διαγÏαφοÏν τα ενδιάμεσα αÏχεία\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe ΧÏήση σωληνώσεων αντί ενδιάμεσων αÏχείων\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time ΜέτÏηση του χÏόνου εκτέλεσης κάθε υποδιεÏγασίας\n"
-#: gcc.c:3063
+#: gcc.c:3053
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -specs=<αÏχείο> ΧÏήση του πεÏιεχομένου του <αÏχείου> αντί των Ï€ÏοκαθοÏισμένων Ï€ÏοσδιοÏισμών\n"
-#: gcc.c:3064
+#: gcc.c:3054
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
" -std=<Ï€Ïότυπο> ΘεώÏησε ότι οι πηγές κώδικα είναι για το <Ï€Ïότυπο>\n"
"\n"
-#: gcc.c:3065
+#: gcc.c:3055
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr " -B <κατάλογος> ΠÏοσθήκη του <καταλόγου> στις διαδÏομές αναζήτησης του μεταγλωττιστή\n"
-#: gcc.c:3066
+#: gcc.c:3056
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr " -b <μηχανή> Εκτέλεση του gcc για το στόχο <μηχανή>, αν είναι εγκατεστημένος\n"
-#: gcc.c:3067
+#: gcc.c:3057
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr " -V <έκδοση> Εκτέλεση της έκδοσης <έκδοση> του gcc, αν είναι εγκατεστημένη\n"
-#: gcc.c:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Εμφάνιση των Ï€ÏογÏαμμάτων που καλεί ο μεταγλωττιστής\n"
-#: gcc.c:3069
+#: gcc.c:3059
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E ΠÏοεπεξεÏγασία μόνο· όχι μεταγλώττιση, συναÏμολόγηση ή σÏνδεση\n"
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Μεταγλώττιση μόνο· όχι συναÏμολόγηση ήσÏνδεση\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Μεταγλώττιση και συναÏμολόγηση, όχιόμως σÏνδεση\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <αÏχείο> Τοποθέτηση της εξόδου στο <αÏχείο>\n"
-#: gcc.c:3074
+#: gcc.c:3064
#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
@@ -5085,7 +5078,7 @@ msgstr ""
" συμπεÏιφοÏά εÏÏεσης της γλώσσας βάσει της επέκτασης\n"
" του αÏχείου\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5099,29 +5092,29 @@ msgstr ""
" επιλογές σε αυτές τις διεÏγασίες, Ï€Ïέπει να χÏησιμοποιήσετε τις επιλογές\n"
" -W<γÏάμμα>.\n"
-#: gcc.c:3201
+#: gcc.c:3191
#, fuzzy, c-format
msgid "'-%c' option must have argument"
msgstr "παÏάληψη οÏίσματος αÏχείου"
-#: gcc.c:3223
+#: gcc.c:3213
#, c-format
msgid "couldn't run '%s': %s"
msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
# src/main.c:850
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, fuzzy, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5132,95 +5125,95 @@ msgstr ""
"αντιγÏαφής. Δεν υπάÏχει ΚΑΜΙΑ εγγÏηση· οÏτε ακόμα για ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ή \n"
"ΚΑΤΑΛΛΗΛΟΤΗΤΑ ΓΙΑ ΕÎΑ ΣΥΓΚΕΚΡΙΜΕÎΟ ΣΚΟΠΟ.\n"
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:4093
+#: gcc.c:4083
#, c-format
msgid "warning: '-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr ""
-#: gcc.c:4736
+#: gcc.c:4726
#, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr ""
-#: gcc.c:4933
+#: gcc.c:4923
#, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr ""
-#: gcc.c:4964
+#: gcc.c:4954
#, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr ""
@@ -5228,89 +5221,89 @@ msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5266
+#: gcc.c:5239
#, fuzzy, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "%s: μη αναγνωÏίσιμη επιλογή `-%c'\n"
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "άγνωστο σετ `%s'"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "πάÏα πολλά οÏίσματα"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr ""
#. )
-#: gcc.c:5415
+#: gcc.c:5388
#, fuzzy
msgid "no arguments for spec function"
msgstr "Ï€Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "μη αναγνωÏίσημη επιλογή `-%s'"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "εγκατάσταση: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "Ï€ÏογÏάμματα: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "βιβλιοθήκες: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5319,72 +5312,77 @@ msgstr ""
"\n"
"Για οδηγίες για αναφοÏές σφαλμάτων. παÏακαλώ δείτε:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "βιβλιοθήκες: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "Έχει Ïυθμιστεί με: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Μοντέλο νημάτων: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "έκδοση gcc %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "έκδοση Î¿Î´Î·Î³Î¿Ï gcc %s εκτελεί την έκδοση gcc %s\n"
-#: gcc.c:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "δεν υπάÏχουν αÏχεία εισόδου"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: ο μεταγλωττιστής %s δεν έχει εγκατασταθεί στο σÏστημα αυτό"
-#: gcc.c:6470
+#: gcc.c:6460
#, c-format
msgid "spec '%s' is invalid"
msgstr ""
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr ""
# src/request.c:37
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:7130
+#: gcc.c:7119
#, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr ""
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: gcc.c:7367
+#: gcc.c:7356
#, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr ""
@@ -5676,28 +5674,28 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
#, fuzzy
msgid "jump bypassing disabled"
msgstr "Η λειτουÏγία NIS+ απέτυχε"
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr ""
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr ""
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, fuzzy, c-format
msgid "can't write PCH file: %m"
@@ -5714,7 +5712,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "αδυναμία εγγÏαφής αÏχείων εξόδου στο `%s'"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, fuzzy, c-format
msgid "can't read PCH file: %m"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
@@ -5723,12 +5721,12 @@ msgstr "αδυναμία ανοίγματος αÏχείου εξόδου"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
#, fuzzy
msgid "can't write PCH file"
msgstr "αδυναμία εγγÏαφής αÏχείων εξόδου στο `%s'"
@@ -5738,27 +5736,27 @@ msgstr "αδυναμία εγγÏαφής αÏχείων εξόδου στο `%s
msgid "unexpected node"
msgstr "Μη οÏισμένο όνομα %s"
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, fuzzy, c-format
msgid "memory input %d is not directly addressable"
msgstr "Ο κατάλογος `%s' δεν είναι Ï€Ïοσιτός."
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, fuzzy, c-format
msgid "%s cannot be used in asm here"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, fuzzy, c-format
msgid "can't open %s: %m"
msgstr "αδυναμία ανοίγματος του `%s'"
@@ -5818,93 +5816,103 @@ msgstr "το Ï€Ïώτο ÏŒÏισμα της `%s' Ï€Ïέπει να είναι `i
msgid "unrecognized command line option \"%s\""
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr ""
# src/request.c:806 src/request.c:912
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "Μη αναγνωÏίσημο όνομα επιφάνειας `%s'"
# src/request.c:806 src/request.c:912
-#: opts.c:937
+#: opts.c:938
#, fuzzy, c-format
msgid "unrecognized register name \"%s\""
msgstr "Μη αναγνωÏίσημο όνομα επιφάνειας `%s'"
# src/grep.c:1133
-#: opts.c:957
+#: opts.c:962
#, fuzzy, c-format
msgid "unknown tls-model \"%s\""
msgstr "άγνωστη μέθοδος καταλόγων"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "Μη έγκυÏο διάστημα χÏόνου `%s'"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr ""
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr ""
# src/request.c:806 src/request.c:912
-#: opts.c:1156
+#: opts.c:1162
#, fuzzy, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "Μη αναγνωÏίσημο όνομα επιφάνειας `%s'"
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
+
+#: params.c:77
+#, fuzzy, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6236,93 +6244,89 @@ msgstr "%s: δεν είναι δυνατό να γÏαφτεί πάνω σε κÎ
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: το αÏχείο εισόδου είναι το αÏχείο εξόδου"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:631
+#: reg-stack.c:632
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:691
+#: reg-stack.c:692
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:711
msgid "output operand %d must use %<&%> constraint"
msgstr ""
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, fuzzy, c-format
msgid "unknown register name: %s"
msgstr "άγνωστος χαÏακτήÏας `%s'"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr ""
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1876
+#: regrename.c:1872
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1903
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1252
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
msgstr ""
-#: reload.c:1275
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
msgstr ""
-#: reload.c:3513
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
msgstr ""
-#: reload.c:3679
+#: reload.c:3705
#, fuzzy
msgid "unable to generate reloads for:"
msgstr "ΑδÏνατη η δημιουÏγία διεÏγασίας στον εξυπηÏετητή"
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
msgstr ""
@@ -6334,40 +6338,40 @@ msgstr ""
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1866
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr ""
-#: reload1.c:1871
+#: reload1.c:1870
#, c-format
msgid "unable to find a register to spill in class %qs"
msgstr ""
-#: reload1.c:1873
+#: reload1.c:1872
#, fuzzy
msgid "this is the insn:"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: reload1.c:3864
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
#, fuzzy
msgid "could not find a spill register"
msgstr "αδυναμία εÏÏεσης βÏόχου"
-#: reload1.c:4988
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6607
+#: reload1.c:6615
msgid "output operand is constant in %<asm%>"
msgstr ""
@@ -6380,145 +6384,145 @@ msgstr "Μη αναγνωÏίσιμη μεταβλητή `%s'"
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:472
+#: rtl.c:471
#, c-format
msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:482
+#: rtl.c:481
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:492
+#: rtl.c:491
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:501
+#: rtl.c:500
#, c-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:511
+#: rtl.c:510
#, c-format
msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:522
+#: rtl.c:521
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:533
+#: rtl.c:532
#, c-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr ""
-#: stmt.c:316
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
msgstr ""
-#: stmt.c:331
+#: stmt.c:332
#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:354
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr ""
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
msgstr ""
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:451
+#: stmt.c:452
#, c-format
msgid "input operand constraint contains %qc"
msgstr ""
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "μη έγκυÏη μέτÏηση επανάληψης `%s' στη κατασκευή [c*n]"
-#: stmt.c:555
+#: stmt.c:556
#, fuzzy
msgid "matching constraint does not allow a register"
msgstr "σχετική θέση αÏχείου είναι εκτός οÏίων"
-#: stmt.c:583
+#: stmt.c:584
#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr ""
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "άγνωστος χαÏακτήÏας στο πεδίο `%s' της κατηγοÏίας `%s'"
-#: stmt.c:680
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
msgstr ""
-#: stmt.c:727
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
msgstr ""
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#: stmt.c:869
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr ""
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr ""
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr ""
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "ΥπεÏβολικα πολλά ανοικτά αÏχεία στο σÏστημα"
-#: stmt.c:1120
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr ""
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "Μη οÏισμένο όνομα %s"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr ""
@@ -6630,100 +6634,100 @@ msgstr ""
msgid "ld returned %d exit status"
msgstr "η ld επέστÏεψε κατάσταση εξόδου %d"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "εσωτεÏικό σφάλμα"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
msgid "%J%qF declared %<static%> but never defined"
msgstr ""
-#: toplev.c:872
+#: toplev.c:876
msgid "%J%qD defined but not used"
msgstr ""
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1087
#, fuzzy, c-format
msgid ""
"\n"
"Target specific options:\n"
msgstr "δήλωση πλάτους"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr ""
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1175
#, fuzzy, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "μη αναγνωÏίσημη επιλογή `-%c'"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "μη έγκυÏη επιλογή %s"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6731,355 +6735,366 @@ msgid ""
"%s%s%s version %s (%s) compiled by CC.\n"
msgstr ""
-#: toplev.c:1247
+#: toplev.c:1259
#, 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:1299
+#: toplev.c:1311
#, fuzzy
msgid "options passed: "
msgstr "επιλογή %s"
# src/getopt1.c:155
# src/getopt1.c:155
-#: toplev.c:1328
+#: toplev.c:1340
#, fuzzy
msgid "options enabled: "
msgstr "επιλογή α\n"
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "%s: Σφάλμα εγγÏαφής "
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr ""
-#: toplev.c:1736
+#: toplev.c:1756
#, fuzzy
msgid "instruction scheduling not supported on this target machine"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: toplev.c:1757
+#: toplev.c:1777
#, fuzzy, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: toplev.c:1831
+#: toplev.c:1851
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr ""
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: toplev.c:1873
+#: toplev.c:1893
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "το --no-dereference (-h) δεν υποστηÏίζεται σε αυτό το σÏστημα"
-#: toplev.c:1878
+#: toplev.c:1898
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:1892
+#: toplev.c:1912
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "το --no-dereference (-h) δεν υποστηÏίζεται σε αυτό το σÏστημα"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: toplev.c:1904
+#: toplev.c:1924
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: toplev.c:1919
+#: toplev.c:1939
#, fuzzy
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "το --no-dereference (-h) δεν υποστηÏίζεται σε αυτό το σÏστημα"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "σφάλμα εγγÏαφής %s"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "σφάλμα ανάγνωσης %s"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr ""
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
msgstr ""
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
#, fuzzy
msgid "Invalid reference prefix."
msgstr "Μη έγκυÏη πισω-παÏαπομπή"
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "Μη έγκυÏη παÏάμετÏος"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
msgstr ""
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, fuzzy, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr "το αÏχείο δεδομένων Ï€Ïοφίλ `%s' δεν ταιÏιάζει με το διαμοιÏαζόμενο αντικείμενο `%s'"
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
#, fuzzy
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr "το αÏχείο δεδομένων Ï€Ïοφίλ `%s' δεν ταιÏιάζει με το διαμοιÏαζόμενο αντικείμενο `%s'"
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
#, fuzzy
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr "το αÏχείο δεδομένων Ï€Ïοφίλ `%s' δεν ταιÏιάζει με το διαμοιÏαζόμενο αντικείμενο `%s'"
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, fuzzy, c-format
msgid "Missing edge %i->%i"
msgstr "έχει παÏαληφθεί το αÏχείο Ï€ÏοοÏισμοÏ"
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr ""
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
msgid "%H%<noreturn%> function does return"
msgstr ""
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "ο έλεγχος φθάνει στο τέλος μη-κενής συνάÏτησης"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου `%s'"
-#: tree-dump.c:960
+#: tree-dump.c:965
#, fuzzy
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "Άγνωστη επιλογή: %s %s %s"
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
msgid "%Jinlining failed in call to %qF: %s"
msgstr ""
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr ""
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "ο έλεγχος φθάνει στο τέλος μη-κενής συνάÏτησης"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7089,38 +7104,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "το -pipe δεν υποστηÏίζεται"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "%s: οι τιμές του πεδίου `%s' δεν Ï€Ïέπει να είναι μεγαλÏτεÏες από %d"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "%s: οι τιμές του πεδίου `%s' δεν Ï€Ïέπει να είναι μεγαλÏτεÏες από %d"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7130,300 +7145,304 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "πάÏα πολλά οÏίσματα"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "εσωτεÏικό σφάλμα"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "έχει παÏαληφθεί το αÏχείο Ï€ÏοοÏισμοÏ"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, fuzzy, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: tree-ssa.c:305
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
msgstr ""
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
msgid "verify_ssa failed."
msgstr ""
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
msgid "%H%qD is used uninitialized in this function"
msgstr ""
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
msgstr ""
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
msgstr ""
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "Εμφάνιση έκδοσης Ï€ÏογÏάμματος"
-#: tree.c:3258
+#: tree.c:3272
msgid "%Jfunction %qD definition is marked dllimport."
msgstr ""
-#: tree.c:3266
+#: tree.c:3280
msgid "%Jvariable %qD definition is marked dllimport."
msgstr ""
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:5362
+#: tree.c:5398
#, fuzzy
msgid "invalid initializer for bit string"
msgstr "Η αλυσίδα μοÏφής δεν είναι έγκυÏη: `%s'"
-#: tree.c:5446
+#: tree.c:5482
#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5483
+#: tree.c:5519
#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5496
+#: tree.c:5532
#, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5522
+#: tree.c:5558
#, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr ""
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr ""
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "ΕγγÏαφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "μη έγκυÏος αÏιθμός πεδίου: `%s'"
-#: varasm.c:914
+#: varasm.c:915
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr ""
-#: varasm.c:917
+#: varasm.c:918
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr ""
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr ""
-#: varasm.c:930
+#: varasm.c:931
msgid "volatile register variables don%'t work as you might wish"
msgstr ""
-#: varasm.c:963
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
msgstr ""
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: varasm.c:1592
+#: varasm.c:1607
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr ""
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr ""
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr ""
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr ""
-#: varasm.c:3807
-#, fuzzy
-msgid "unknown set constructor type"
-msgstr "Δεν είναι δυνατόν να βÏεθεί ο Ï„Ïπος του επεξεÏγαστή."
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "μη έγκυÏος αÏιθμός πεδίου: `%s'"
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: varasm.c:4221
+#: varasm.c:4241
#, fuzzy
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: varasm.c:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr ""
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr ""
-#: varasm.c:4418
+#: varasm.c:4504
+#, fuzzy
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
+
+#: varasm.c:4532
#, fuzzy
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "Η οικογένεια διευθÏνσεων δεν υποστηÏίζεται από την οικογένεια Ï€Ïωτοκόλλου"
@@ -7487,11 +7506,11 @@ msgid "debug: "
msgstr "εκσφαλμάτωση: "
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7518,203 +7537,211 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr ""
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: params.def:145
+#: params.def:135
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: params.def:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: params.def:180
+#: params.def:170
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr ""
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr ""
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr ""
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr ""
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr ""
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr ""
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr ""
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr ""
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: params.def:340
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr ""
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr ""
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr ""
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:424
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
msgid "The upper bound for sharing integer constants"
msgstr ""
@@ -7754,9 +7781,9 @@ msgstr ""
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
+#: config/darwin.c:1350
#, fuzzy
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "Η οικογένεια διευθÏνσεων δεν υποστηÏίζεται από την οικογένεια Ï€Ïωτοκόλλου"
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -7821,15 +7848,15 @@ msgstr "μη τεÏματιζόμενo αλφαÏιθμητικό"
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
msgstr ""
-#: config/darwin.h:154
+#: config/darwin.h:157
msgid "Generate code suitable for fast turn around debugging"
msgstr ""
-#: config/darwin.h:156
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
msgstr ""
@@ -7838,7 +7865,7 @@ msgstr ""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
@@ -7888,7 +7915,7 @@ msgstr ""
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "Ακατάλληλη τιμή στο ai_flags"
@@ -7932,92 +7959,92 @@ msgstr ""
msgid "bad value %qs for -mmemory-latency"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, fuzzy, c-format
msgid "invalid %%H value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, fuzzy, c-format
msgid "invalid %%r value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, fuzzy, c-format
msgid "invalid %%R value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, fuzzy, c-format
msgid "invalid %%N value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, fuzzy, c-format
msgid "invalid %%P value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, fuzzy, c-format
msgid "invalid %%h value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, fuzzy, c-format
msgid "invalid %%L value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, fuzzy, c-format
msgid "invalid %%m value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, fuzzy, c-format
msgid "invalid %%M value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, fuzzy, c-format
msgid "invalid %%U value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, fuzzy, c-format
msgid "invalid %%s value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, fuzzy, c-format
msgid "invalid %%C value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, fuzzy, c-format
msgid "invalid %%E value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
#, fuzzy
msgid "unknown relocation unspec"
msgstr "Δεν είναι δυνατόν να βÏεθεί ο Ï„Ïπος του επεξεÏγαστή."
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, fuzzy, c-format
msgid "invalid %%xn code"
msgstr "μη έγκυÏο δικαίωμα"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr ""
@@ -8034,14 +8061,14 @@ 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/alpha/alpha.h:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr ""
@@ -8162,7 +8189,7 @@ msgstr ""
msgid "Tune expected memory latency"
msgstr ""
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -8181,17 +8208,17 @@ msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι έναÏ
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, fuzzy, c-format
msgid "invalid operand to %%R code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, fuzzy, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, fuzzy, c-format
msgid "invalid operand to %%U code"
msgstr "Μη έγκυÏη επιλογή `%s'"
@@ -8203,171 +8230,171 @@ msgstr "Μη έγκυÏη επιλογή `%s'"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
#, fuzzy
msgid "invalid operand output code"
msgstr "Μη έγκυÏος κώδικας αίτησης"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr ""
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr ""
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr ""
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr ""
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr ""
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "μη έγκυÏη επιλογή %s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, fuzzy, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, c-format
msgid "structure size boundary can only be set to %s"
msgstr ""
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, c-format
msgid "%qs attribute only applies to functions"
msgstr ""
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "Ακατάλληλη εντολή"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
#, fuzzy
msgid "instruction never exectued"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "έχει παÏαληφθεί η λίστα με τα πεδία"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
#, fuzzy
msgid "selector must be an immediate"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
#, fuzzy
msgid "mask must be an immediate"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr ""
@@ -8475,7 +8502,7 @@ msgstr ""
msgid "Specify the register to be used for PIC addressing"
msgstr ""
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr ""
@@ -8491,58 +8518,68 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
#, fuzzy
msgid "invalid insn:"
msgstr "μη έγκυÏος χÏήστης"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
#, fuzzy
msgid "incorrect insn:"
msgstr "λάθος συνθηματικό"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
#, fuzzy
msgid "unknown move insn:"
msgstr "άγνωστο σετ `%s'"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
msgid "only initialized variables can be placed into program memory area"
msgstr ""
-#: config/avr/avr.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr ""
-#: config/avr/avr.c:4615
+#: config/avr/avr.c:4728
#, c-format
msgid "MCU %qs supported for assembler only"
msgstr ""
@@ -8937,261 +8974,251 @@ msgstr ""
msgid "Select CPU to generate code for"
msgstr ""
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
#, fuzzy
msgid "invalid operand for 'b' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
#, fuzzy
msgid "invalid operand for 'v' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
#, fuzzy
msgid "invalid operand for 'P' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
#, fuzzy
msgid "invalid operand for 'p' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
#, fuzzy
msgid "invalid operand for 'z' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
#, fuzzy
msgid "invalid operand for 'H' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
#, fuzzy
msgid "bad register"
msgstr "Δεν είναι δυνατή η καταχώÏηση της υπηÏεσίας"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
#, fuzzy
msgid "invalid operand for 'e' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
#, fuzzy
msgid "invalid operand for 'm' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
#, fuzzy
msgid "invalid operand for 'A' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
#, fuzzy
msgid "invalid operand for 'D' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
#, fuzzy
msgid "invalid operand for 'T' modifier"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
#, fuzzy
msgid "invalid operand modifier letter"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
#, fuzzy
msgid "unexpected operand"
msgstr "Μη οÏισμένο όνομα %s"
# src/request.c:806 src/request.c:912
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
#, fuzzy
msgid "unrecognized address"
msgstr "Μη αναγνωÏίσημο όνομα επιφάνειας `%s'"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "άγνωστο Ï€Ïόθεμα: %s"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, fuzzy, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "πάÏα πολλές δηλώσεις μετατÏοπής στην κατάληξη"
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
#, fuzzy
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "Η οικογένεια διευθÏνσεων δεν υποστηÏίζεται από την οικογένεια Ï€Ïωτοκόλλου"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr ""
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-#, fuzzy
-msgid "unexpected address expression"
-msgstr "Μη έγκυÏη Ï€ÏοποÏευόμενη κανονική έκφÏαση"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr ""
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr ""
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
msgid "Generate code for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -9199,46 +9226,46 @@ msgstr ""
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr ""
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr ""
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, fuzzy, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, fuzzy, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "μη έγκυÏο δικαίωμα"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
@@ -9246,153 +9273,148 @@ msgstr ""
msgid "Assume small address space"
msgstr ""
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2747
-msgid "Bad insn in frv_print_operand, bad const_double"
-msgstr ""
-
-#: config/frv/frv.c:2792
+#: config/frv/frv.c:2721
#, fuzzy
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "Μη έγκυÏη επιλογή `%s'"
+msgid "bad condition code"
+msgstr "Δεν είναι δυνατή η καταχώÏηση της υπηÏεσίας"
-#: config/frv/frv.c:2815
-#, fuzzy
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "Μη έγκυÏη επιλογή `%s'"
+#: config/frv/frv.c:2796
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
#, fuzzy
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
#, fuzzy
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
#, fuzzy
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
#, fuzzy
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
#, fuzzy
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
#, fuzzy
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
#, fuzzy
msgid "frv_print_operand: unknown code"
msgstr "μη έγκυÏο δικαίωμα"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
#, fuzzy
msgid "Bad output_move_single operand"
msgstr "αÏχείο εξόδου"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
#, fuzzy
msgid "Bad output_condmove_single operand"
msgstr "αÏχείο εξόδου"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
#, fuzzy
msgid "accumulator is not a constant integer"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, c-format
msgid "inappropriate accumulator for %qs"
msgstr ""
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "Μη έγκυÏη παÏάμετÏος"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, c-format
msgid "%qs expects a constant argument"
msgstr ""
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "Ο αÏιθμός σÏνδεσμου είναι έξω από το ÏŒÏιο"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9405,7 +9427,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr ""
@@ -9485,182 +9507,190 @@ msgstr ""
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr ""
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "ειδικά αÏχεία μπλοκ δεν υποστηÏίζονται"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, fuzzy, c-format
msgid "%i-bit mode not compiled in"
msgstr "%s: η υποστήÏιξη εκσφαλμάτωσης δεν έχει συμπεÏιληφθεί στη μεταγλώττιση.\n"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr ""
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr ""
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr ""
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr ""
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr ""
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "%s: οι τιμές του πεδίου `%s' δεν Ï€Ïέπει να είναι μεγαλÏτεÏες από %d"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
#, fuzzy
msgid "invalid UNSPEC as operand"
msgstr "μη έγκυÏη μετατόπιση UTC"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
#, fuzzy
msgid "invalid constraints for operand"
msgstr "μη έγκυÏος χÏήστης"
# src/grep.c:1133
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
#, fuzzy
msgid "unknown insn mode"
msgstr "άγνωστη μέθοδος καταλόγων"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, fuzzy, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
#, fuzzy
msgid "shift must be an immediate"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "μη έγκυÏο δικαίωμα"
@@ -9763,167 +9793,167 @@ msgstr "αÏχεία fifo δεν υποστηÏίζονται"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
#, fuzzy
msgid "Alternate calling convention"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -9937,54 +9967,54 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr ""
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr ""
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr ""
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr ""
@@ -10028,58 +10058,58 @@ msgstr ""
msgid "malformed #pragma builtin"
msgstr "κακοσχηματισμένος μετÏητής επανάληψης"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr ""
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr ""
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr ""
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr ""
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, fuzzy, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "Ακατάλληλη τιμή στο ai_flags"
@@ -10087,173 +10117,169 @@ 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr ""
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr ""
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr ""
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr ""
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr ""
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
msgid "Do not inline floating point division"
msgstr ""
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
msgid "Do not inline integer division"
msgstr ""
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
msgstr ""
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
#, fuzzy
msgid "Disable earlier placing stop bits"
msgstr "Ακατάλληλη εντολή"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
#, fuzzy
msgid "bad operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, fuzzy, c-format
msgid "The compiler does not support -march=%s."
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr ""
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr ""
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, fuzzy, c-format
msgid "invalid %%P operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, fuzzy, c-format
msgid "invalid %%p value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr ""
@@ -10270,88 +10296,88 @@ msgstr ""
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr ""
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, fuzzy, c-format
msgid "invalid operand to %%s code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, fuzzy, c-format
msgid "invalid operand to %%p code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, fuzzy, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, fuzzy, c-format
msgid "invalid operand to %%N code"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
#, fuzzy
msgid "bad address"
msgstr "Εσφαλμένη διεÏθυνση"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
#, fuzzy
msgid "lo_sum not of register"
msgstr "RPC: Το Ï€ÏόγÏαμμα δεν έχει καταχωÏηθεί"
@@ -10381,11 +10407,11 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr ""
@@ -10402,53 +10428,53 @@ msgstr ""
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr ""
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
msgstr ""
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "μη έγκυÏη μέτÏηση επανάληψης `%s' στη κατασκευή [c*n]"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
#, fuzzy
msgid "invalid register in the instruction"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr ""
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
#, fuzzy
msgid "invalid rotate insn"
msgstr "Μη έγκυÏη ημεÏομηνία `%s'."
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
#, fuzzy
msgid "cannot do z-register replacement"
msgstr "Δεν είναι δυνατή η καταχώÏηση της υπηÏεσίας"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr ""
@@ -10547,7 +10573,7 @@ msgstr "δεν είναι δυνατό να παÏαληφθεί ο χÏήστη
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr ""
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
#, fuzzy
msgid "stack limit expression is not supported"
msgstr "ειδικά αÏχεία μπλοκ δεν υποστηÏίζονται"
@@ -10690,7 +10716,7 @@ msgstr ""
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "Μη έγκυÏη επιλογή `%s'"
@@ -10748,138 +10774,139 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
#, fuzzy
msgid "-mgp32 used with a 64-bit ABI"
msgstr "ΧÏήση ABI 64-bit"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
#, fuzzy
msgid "-mgp64 used with a 32-bit ABI"
msgstr "ΧÏήση ABI 32-bit"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, fuzzy, c-format
msgid "unsupported combination: %s"
msgstr "Εμφάνιση έκδοσης Ï€ÏογÏάμματος"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr ""
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr ""
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr ""
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr ""
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr ""
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr ""
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr ""
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, fuzzy, c-format
msgid "bad value (%s) for %s"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -10889,63 +10916,63 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
msgstr ""
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr ""
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr ""
@@ -10955,201 +10982,201 @@ 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "Ακατάλληλη εντολή"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "Ακατάλληλη εντολή"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
msgid "Perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
msgid "Work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
msgid "Don't work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
msgid "Work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
msgid "Don't work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
msgid "Don't work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
msgid "Use trap to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
msgid "Use break to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
msgid "Generate mips16 code"
msgstr ""
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
msgid "Generate normal-mode code"
msgstr ""
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
# src/getopt1.c:155
# src/getopt1.c:155
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "επιλογή α\n"
# src/getopt1.c:155
# src/getopt1.c:155
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "επιλογή α\n"
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr ""
@@ -11176,70 +11203,70 @@ msgstr ""
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, fuzzy, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr "ο ίδιος κανόνας σε πολλαπλά αÏχεία"
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr ""
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr ""
@@ -11313,15 +11340,15 @@ msgstr ""
msgid "Do not generate a single exit point for each function"
msgstr ""
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr ""
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr ""
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr ""
@@ -11407,64 +11434,69 @@ msgstr ""
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:486
+#: config/pa/pa.c:494
#, fuzzy
msgid "-g option disabled"
msgstr "Η λειτουÏγία NIS+ απέτυχε"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
#, fuzzy
msgid "Generate cpp defines for server IO"
msgstr "ΧÏήση ξεχωÏιστής λανθάνουσας μνήμης για κάθε χÏήστη"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr ""
@@ -11618,11 +11650,11 @@ msgstr ""
msgid "Specify CPU for scheduling purposes."
msgstr ""
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -11766,220 +11798,246 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr "μη τεÏματιζόμενo αλφαÏιθμητικό"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
#, fuzzy
msgid "-mmultiple is not supported on little endian systems"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
#, fuzzy
msgid "-mstring is not supported on little endian systems"
msgstr "Ï€Ïοειδοποίηση: το --pid=PID δεν υποστηÏίζεται σε αυτό το σÏστημα"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, fuzzy, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "άγνωστο σετ `%s'"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "άγνωστο σετ `%s'"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, fuzzy, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "άγνωστο σετ `%s'"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
#, fuzzy
msgid "argument 1 must be a 5-bit signed literal"
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
#, fuzzy
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:6802
+#: config/rs6000/rs6000.c:6901
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
#, fuzzy
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
#, fuzzy
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "Η παÏάμετÏος στο `%s' Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
#, fuzzy
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr "Η παÏάμετÏος στο <%s> Ï€Ïέπει να είναι ένας απλός χαÏακτήÏας"
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7670
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, fuzzy, c-format
msgid "invalid %%f value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, fuzzy, c-format
msgid "invalid %%F value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, fuzzy, c-format
msgid "invalid %%G value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, fuzzy, c-format
msgid "invalid %%j code"
msgstr "μη έγκυÏο δικαίωμα"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, fuzzy, c-format
msgid "invalid %%J code"
msgstr "μη έγκυÏο δικαίωμα"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, fuzzy, c-format
msgid "invalid %%k value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, fuzzy, c-format
msgid "invalid %%K value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, fuzzy, c-format
msgid "invalid %%O value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, fuzzy, c-format
msgid "invalid %%q value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, fuzzy, c-format
msgid "invalid %%S value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, fuzzy, c-format
msgid "invalid %%T value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, fuzzy, c-format
msgid "invalid %%u value"
msgstr "μη έγκυÏος χÏήστης"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, fuzzy, c-format
msgid "invalid %%v value"
msgstr "μη έγκυÏος χÏήστης"
# src/shred.c:1134
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "%s: το αÏχείο είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
msgstr ""
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-#, fuzzy
-msgid "Always pass floating-point arguments in memory"
-msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-#, fuzzy
-msgid "Don't always pass floating-point arguments in memory"
-msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr ""
@@ -12040,15 +12098,15 @@ msgstr ""
msgid "-m64 not supported in this configuration"
msgstr "Η οικογένεια διευθÏνσεων δεν υποστηÏίζεται από την οικογένεια Ï€Ïωτοκόλλου"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr ""
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr ""
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr ""
@@ -12202,7 +12260,7 @@ msgstr "Ακατάλληλη εντολή"
msgid "Do not generate single field mfcr instruction"
msgstr "Ακατάλληλη εντολή"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr ""
@@ -12275,7 +12333,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
@@ -12430,83 +12488,87 @@ msgstr "τα μεγέθη του στηλογνώμονα Ï€Ïέπει να εί
msgid "-m%s not supported in this configuration"
msgstr "Η οικογένεια διευθÏνσεων δεν υποστηÏίζεται από την οικογένεια Ï€Ïωτοκόλλου"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, fuzzy, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "πάÏα πολλές δηλώσεις μετατÏοπής στην κατάληξη"
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "Το servname δεν υποστηÏίζεται από το ai_socktype"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr ""
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "Ακατάλληλη τιμή στο ai_flags"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
#, fuzzy
msgid "Cannot decompose address."
msgstr "Δεν είναι δυνατή η εκχώÏηση της ζητηθήσας διεÏθυνσης"
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "Το όνομα `%s' είναι άγνωστο\n"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12604,30 +12666,30 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
#, fuzzy
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, c-format
msgid "%qs attribute only applies to interrupt functions"
msgstr ""
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs attribute argument not a string constant"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
@@ -12660,7 +12722,7 @@ msgstr ""
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
@@ -12673,185 +12735,185 @@ msgstr ""
msgid "Profiling is not supported on this target."
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, fuzzy, c-format
msgid "%s is not supported by this configuration"
msgstr "Η οικογένεια διευθÏνσεων δεν υποστηÏίζεται από την οικογένεια Ï€Ïωτοκόλλου"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
#, fuzzy
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "συμβολικοί σÏνδεσμοι δεν υποστηÏίζονται στο σÏστημα αυτό"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "μη έγκυÏη μετατόπιση UTC"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, fuzzy, c-format
msgid "invalid %%s operand"
msgstr "μη έγκυÏος χÏήστης"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr ""
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr ""
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr ""
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr ""
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
#, fuzzy
msgid "Utilize Visual Instruction Set"
msgstr "ΠαÏάνομη Εντολή"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "ΧÏήση ABI 32-bit"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "ΧÏήση ABI 64-bit"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr ""
@@ -12967,66 +13029,66 @@ msgstr ""
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr ""
# src/shred.c:1134
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "%s: το αÏχείο είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
#, fuzzy
msgid "output_move_single:"
msgstr "αÏχείο εξόδου"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr ""
@@ -13212,12 +13274,12 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ada/misc.c:258
+#: ada/misc.c:257
#, fuzzy, c-format
msgid "missing argument to \"-%s\""
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: ada/misc.c:299
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
@@ -13225,570 +13287,592 @@ msgstr ""
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr ""
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
# src/getopt.c:813
# src/getopt.c:813
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
#, fuzzy
msgid "call of overloaded %<%D(%A)%> is ambiguous"
msgstr "%s: η επιλογή `-W %s' είναι διφοÏοÏμενη\n"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2959
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
# src/getopt.c:813
# src/getopt.c:813
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "%s: η επιλογή `-W %s' είναι διφοÏοÏμενη\n"
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:3015
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:3020
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:3025
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:3028
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:3195
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr ""
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "Σφάλμα στο ταίÏιασμα στην κανονική έκφÏαση `%s'"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3700
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:3753
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
msgstr ""
-#: cp/call.c:3755
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
msgstr ""
-#: cp/call.c:3787
+#: cp/call.c:3793
msgid "comparison between %q#T and %q#T"
msgstr ""
-#: cp/call.c:4044
+#: cp/call.c:4052
msgid "no suitable %<operator %s> for %qT"
msgstr ""
-#: cp/call.c:4061
+#: cp/call.c:4069
msgid "%q+#D is private"
msgstr ""
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/call.c:4065
+#: cp/call.c:4073
#, fuzzy
msgid "%q+#D is inaccessible"
msgstr "το `%s' είναι μη-Ï€Ïοσπελάσιμο"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr ""
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: cp/call.c:4300
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "Λείπει παÏάμετÏος για `%s'"
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "το πέÏασμα του οÏίσματος %d από `%s'"
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
+
+#: cp/call.c:4203
+#, fuzzy
+msgid "converting negative value %qE to %qT"
+msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
#, fuzzy
msgid "cannot bind packed field %qE to %qT"
msgstr "άγνωστος χαÏακτήÏας στο πεδίο `%s' της κατηγοÏίας `%s'"
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
-#: cp/call.c:4401
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
-#: cp/call.c:4470
+#: cp/call.c:4529
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr ""
-#: cp/call.c:4675
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:4694
+#: cp/call.c:4753
#, fuzzy
msgid "%qT is not an accessible base of %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/call.c:4944
+#: cp/call.c:5003
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:5206
+#: cp/call.c:5263
msgid "call to non-function %qD"
msgstr "κλήση σε μη-συνάÏτηση %qD"
-#: cp/call.c:5231
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/call.c:5310
+#: cp/call.c:5367
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr "δεν ταιÏιάζει συνάÏτηση για την κλήση στο %<%T::%s(%A)%#V%>"
# src/getopt.c:813
# src/getopt.c:813
-#: cp/call.c:5328
+#: cp/call.c:5385
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr "η κλήση της υπεÏφοÏτωμένης %<%s(%A)%> είναι διφοÏοÏμενη"
-#: cp/call.c:5352
+#: cp/call.c:5409
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:5957
+#: cp/call.c:6014
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/call.c:6016
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr ""
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/call.c:6411
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr ""
-#: cp/call.c:6415
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:273
+#: cp/class.c:272
#, fuzzy
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/class.c:898
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+#: cp/class.c:929
+msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:899
-msgid "Java class %qT cannot have a destructor"
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:998
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/class.c:1055
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
msgstr ""
-#: cp/class.c:1058
+#: cp/class.c:1091
#, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr ""
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/class.c:1121
+#: cp/class.c:1154
msgid "no members matching %qD in %q#T"
msgstr ""
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/class.c:1154
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
msgstr ""
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/class.c:1226
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr ""
-
-#: cp/class.c:1534
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1545
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1585
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:1923
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
msgid "%qD was hidden"
msgstr ""
-#: cp/class.c:2380
+#: cp/class.c:2410
#, fuzzy
msgid " by %qD"
msgstr " κατά `%D'"
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2545
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2628
msgid "bit-field %q#D with non-integral type"
msgstr ""
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "ΑÏνητικό πλάτος στην αποτίμηση"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "ΑÏνητικό πλάτος στην αποτίμηση"
-#: cp/class.c:2640
+#: cp/class.c:2662
msgid "width of %qD exceeds its type"
msgstr ""
-#: cp/class.c:2649
+#: cp/class.c:2671
msgid "%qD is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:2711
+#: cp/class.c:2731
msgid "member %q#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:2714
+#: cp/class.c:2734
msgid "member %q#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:2717
+#: cp/class.c:2737
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:2744
+#: cp/class.c:2760
msgid "multiple fields in union %qT initialized"
msgstr ""
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
msgid "%qD may not be static because it is a member of a union"
msgstr ""
-#: cp/class.c:2875
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2895
msgid "field %qD in local class cannot be static"
msgstr ""
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/class.c:2896
+#: cp/class.c:2907
msgid "field %qD invalidly declared method type"
msgstr ""
-#: cp/class.c:2929
+#: cp/class.c:2939
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2977
+#: cp/class.c:2986
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2992
+#: cp/class.c:3001
#, fuzzy
msgid "field %q#D with same name as class"
msgstr "ΥπάÏχει αντικείμενο με το ίδιο όνομα"
-#: cp/class.c:3026
+#: cp/class.c:3034
msgid "%q#T has pointer data members"
msgstr ""
-#: cp/class.c:3030
+#: cp/class.c:3038
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3032
+#: cp/class.c:3040
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:3043
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3468
+#: cp/class.c:3476
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3588
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: cp/class.c:4321
+#: cp/class.c:4333
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4432
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4432
+#: cp/class.c:4444
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4603
+#: cp/class.c:4621
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4683
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4693
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: cp/class.c:5019
+#: cp/class.c:5042
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5114
+#: cp/class.c:5139
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5530
+#: cp/class.c:5555
msgid "language string %<\"%E\"%> not recognized"
msgstr ""
-#: cp/class.c:5617
+#: cp/class.c:5642
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/class.c:5794
+#: cp/class.c:5819
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
#, fuzzy
msgid "not enough type information"
msgstr "εμφάνιση πληÏοφοÏιών Ï€Ïοόδου"
-#: cp/class.c:5856
+#: cp/class.c:5881
msgid "argument of type %qT does not match %qT"
msgstr ""
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -13797,12 +13881,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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/class.c:6273
+#: cp/class.c:6269
msgid "changes meaning of %qD from %q+#D"
msgstr ""
@@ -13825,180 +13909,189 @@ msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr ""
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "Δεν μποÏεί να καθοÏιστεί το όνομα του συστήματος"
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
msgid "%q#T used where a %qT was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:717
msgid "%q#T used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "%s: οι τιμές του πεδίου `%s' δεν Ï€Ïέπει να είναι μεγαλÏτεÏες από %d"
+
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:856
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:872
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr ""
#. Only warn when there is no &.
-#: cp/cvt.c:894
+#: cp/cvt.c:898
#, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr ""
# src/request.c:37
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, fuzzy, c-format
msgid "%s has no effect"
msgstr "%s σε %s"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+msgid "value computed is not used"
+msgstr ""
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
msgid "ambiguous default type conversion from %qT"
msgstr ""
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/decl.c:379
+#: cp/decl.c:372
msgid "label %qD defined but not used"
msgstr ""
-#: cp/decl.c:1138
+#: cp/decl.c:1003
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr ""
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr ""
-#: cp/decl.c:1195
+#: cp/decl.c:1060
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr ""
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
msgid "shadowing %s function %q#D"
msgstr ""
-#: cp/decl.c:1227
+#: cp/decl.c:1092
msgid "library function %q#D redeclared as non-function %q#D"
msgstr ""
-#: cp/decl.c:1232
+#: cp/decl.c:1097
msgid "conflicts with built-in declaration %q#D"
msgstr ""
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
msgid "%q#D redeclared as different kind of symbol"
msgstr ""
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "αυτονόητη διακÏÏηξη της συνάÏτησης `%#D'"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "Μη έγκυÏη ανταλλαγή"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
@@ -14010,73 +14103,73 @@ msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
msgid "declaration of namespace %qD conflicts with"
msgstr ""
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
msgid "prototype for %q#D"
msgstr ""
-#: cp/decl.c:1495
+#: cp/decl.c:1360
msgid "%Jfollows non-prototype definition here"
msgstr ""
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
msgid "conflicts with new declaration with %qL linkage"
msgstr ""
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "%s: Μη έγκυÏη ÏÏθμιση `%s'.\n"
-#: cp/decl.c:1550
+#: cp/decl.c:1415
msgid "%q#D was used before it was declared inline"
msgstr ""
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, c-format
msgid "declaration of %qF throws different exceptions"
msgstr ""
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
@@ -14089,865 +14182,889 @@ 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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, c-format
msgid "label %qE referenced outside of any function"
msgstr ""
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "διπλό κλειδί"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
msgid "%H from here"
msgstr ""
# src/request.c:263
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr "Το βήμα αÏχικοποίησης απέτυχε"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
msgid " enters scope of non-POD %q#D"
msgstr ""
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr ""
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr ""
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr ""
# src/request.c:263
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr "Το βήμα αÏχικοποίησης απέτυχε"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "διπλό κλειδί"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "ο διαχωÏιστής δε μποÏεί να είναι κενός"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:3466
+#: cp/decl.c:3362
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3470
+#: cp/decl.c:3366
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3474
+#: cp/decl.c:3370
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, c-format
msgid "%qs can only be specified for functions"
msgstr ""
-#: cp/decl.c:3561
+#: cp/decl.c:3458
msgid "%<friend%> can only be specified inside a class"
msgstr ""
-#: cp/decl.c:3563
+#: cp/decl.c:3460
msgid "%<explicit%> can only be specified for constructors"
msgstr ""
-#: cp/decl.c:3565
+#: cp/decl.c:3462
msgid "a storage class can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3571
+#: cp/decl.c:3468
msgid "qualifiers can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
msgid "function %q#D is initialized like a variable"
msgstr ""
-#: cp/decl.c:3735
+#: cp/decl.c:3634
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr ""
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/decl.c:3772
+#: cp/decl.c:3671
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
# src/request.c:263
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "Το βήμα αÏχικοποίησης απέτυχε"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr ""
-#: cp/decl.c:3944
+#: cp/decl.c:3848
msgid "%qD declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:3950
+#: cp/decl.c:3854
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr ""
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
msgid "initializer fails to determine size of %qD"
msgstr ""
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "σφάλμα κατά το κλείσιμο της εισόδου `%s'"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
msgid "zero-size array %qD"
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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "Το όνομα `%s' είναι άγνωστο\n"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "Το όνομα `%s' είναι άγνωστο\n"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:4172
+#: cp/decl.c:4073
msgid "uninitialized const %qD"
msgstr "μη αÏχικοποιημένη σταθεÏά const %qD"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
msgid "brace-enclosed initializer used to initialize %qT"
msgstr ""
-#: cp/decl.c:4376
+#: cp/decl.c:4280
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr ""
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "υπεÏβολικά πολλά αÏχεία εισόδου"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
msgid "variable-sized object %qD may not be initialized"
msgstr ""
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
+
+#: cp/decl.c:4521
msgid "structure %qD with uninitialized const members"
msgstr ""
-#: cp/decl.c:4608
+#: cp/decl.c:4523
msgid "structure %qD with uninitialized reference members"
msgstr ""
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr ""
-#: cp/decl.c:4915
+#: cp/decl.c:4830
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:5523
+#: cp/decl.c:5447
msgid "destructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5525
+#: cp/decl.c:5449
msgid "constructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5546
+#: cp/decl.c:5470
msgid "%qD declared as a %<virtual%> %s"
msgstr ""
-#: cp/decl.c:5548
+#: cp/decl.c:5472
msgid "%qD declared as an %<inline%> %s"
msgstr ""
-#: cp/decl.c:5550
+#: cp/decl.c:5474
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr ""
-#: cp/decl.c:5554
+#: cp/decl.c:5478
msgid "%qD declared as a friend"
msgstr ""
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "συντακτικό σφάλμα στον καθοÏισμό σειÏάς"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "αδυναμία αλλαγής στο κατάλογο %s"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "αδυναμία αλλαγής στο κατάλογο %s"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
msgid "%<::main%> must return %<int%>"
msgstr "%<::main%> Ï€Ïέπει να επιστÏέψει %<int%>"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
msgid "non-local function %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:5690
+#: cp/decl.c:5617
msgid "non-local function %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:5713
+#: cp/decl.c:5640
msgid "%smember function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:5737
+#: cp/decl.c:5664
msgid "defining explicit specialization %qD in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5783
+#: cp/decl.c:5710
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5850
+#: cp/decl.c:5776
msgid "definition of implicitly-declared %qD"
msgstr ""
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
msgid "no %q#D member function declared in class %qT"
msgstr ""
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
msgid "non-local variable %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/decl.c:6150
+#: cp/decl.c:6070
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr ""
-#: cp/decl.c:6160
+#: cp/decl.c:6080
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr ""
-#: cp/decl.c:6164
+#: cp/decl.c:6084
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr ""
-#: cp/decl.c:6184
+#: cp/decl.c:6104
msgid "size of array %qD has non-integral type %qT"
msgstr ""
-#: cp/decl.c:6186
+#: cp/decl.c:6106
msgid "size of array has non-integral type %qT"
msgstr ""
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "Ο κατάλογος `%s' δεν είναι Ï€Ïοσιτός."
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr ""
-#: cp/decl.c:6232
+#: cp/decl.c:6152
msgid "ISO C++ forbids zero-size array %qD"
msgstr ""
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
msgstr ""
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "%s: μη έγκυÏη κανονική έκφÏαση: %s"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:6249
+#: cp/decl.c:6169
msgid "ISO C++ forbids variable-size array %qD"
msgstr ""
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
msgstr ""
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, fuzzy, c-format
msgid "creating %s"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:6432
+#: cp/decl.c:6351
msgid "operator %qT declared to return %qT"
msgstr ""
-#: cp/decl.c:6434
+#: cp/decl.c:6353
msgid "return type specified for %<operator %T%>"
msgstr ""
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/decl.c:6674
-msgid "declarator-id missing; using reserved word %qD"
-msgstr ""
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "αυτονόητη διακÏÏηξη της συνάÏτησης `%s'"
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
+
+#: cp/decl.c:6593
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr ""
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "μόνο ένα ÏŒÏισμα μποÏεί να δηλωθεί"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, c-format
msgid "long or short specified with char for %qs"
msgstr ""
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, c-format
msgid "long or short specified with floating type for %qs"
msgstr ""
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "Μη έγκυÏη Ï€ÏοτεÏαιότητα `%s'"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "Μη έγκυÏη επιλογή `%s'"
+
+#: cp/decl.c:6957
msgid "member %qD cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "ΕγγÏαφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr ""
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7292
+#: cp/decl.c:7223
msgid "destructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:7320
+#: cp/decl.c:7251
msgid "constructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "Δεν ήταν δυνατή η εÏÏεση ετικέττας για μεταγωγή στο `%s'"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:7348
+#: cp/decl.c:7279
#, fuzzy
msgid "friend declaration not in class definition"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "αδυναμία αλλαγής στο κατάλογο %s"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "δεν είναι δυνατόν να γίνει `stat' το locale αÏχείο `%s'"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "το `%s' δεν είναι κανονικό αÏχείο"
+
+#: cp/decl.c:7400
msgid "template-id %qD used as a declarator"
msgstr ""
-#: cp/decl.c:7497
+#: cp/decl.c:7447
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr ""
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/decl.c:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/decl.c:7570
+#: cp/decl.c:7520
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:7572
+#: cp/decl.c:7522
msgid "parameter may not have variably modified type %qT"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
msgid "only declarations of constructors can be %<explicit%>"
msgstr ""
-#: cp/decl.c:7588
+#: cp/decl.c:7538
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7593
+#: cp/decl.c:7543
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/decl.c:7627
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
+msgstr ""
+
+#: cp/decl.c:7595
#, fuzzy
msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr "ΥπάÏχει αντικείμενο με το ίδιο όνομα"
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
-msgstr ""
-
-#: cp/decl.c:7689
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr ""
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cp/decl.c:7752
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr ""
-#: cp/decl.c:7757
+#: cp/decl.c:7725
msgid "%<inline%> specified for friend class declaration"
msgstr ""
-#: cp/decl.c:7765
+#: cp/decl.c:7733
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "ο διαχωÏιστής δε μποÏεί να είναι κενός"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:7771
+#: cp/decl.c:7739
#, fuzzy
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: cp/decl.c:7784
+#: cp/decl.c:7752
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:7814
+#: cp/decl.c:7782
msgid "abstract declarator %qT used as declaration"
msgstr ""
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "αδυναμία εισαγωγής στοιχείο παÏαβολής `%.*s'"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "μη έγκυÏος χÏήστης"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
msgid "can't make %qD into a method -- not in a class"
msgstr ""
-#: cp/decl.c:7917
+#: cp/decl.c:7876
msgid "function %qD declared virtual inside a union"
msgstr ""
-#: cp/decl.c:7926
+#: cp/decl.c:7885
msgid "%qD cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "δημιουÏγία αÏχείου `%s'\n"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr "%s: Μη έγκυÏη ÏÏθμιση `%s'.\n"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -14963,83 +15080,83 @@ 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:8078
+#: cp/decl.c:8051
msgid "ISO C++ forbids initialization of member %qD"
msgstr ""
-#: cp/decl.c:8080
+#: cp/decl.c:8053
msgid "making %qD static"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "μη έγκυÏη τάξη χαÏακτήÏων `%s'"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "μη έγκυÏη τάξη χαÏακτήÏων `%s'"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "μη έγκυÏη τάξη χαÏακτήÏων `%s'"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8156
+#: cp/decl.c:8129
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "μη έγκυÏη τάξη χαÏακτήÏων `%s'"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
msgid "cannot declare member function %qD to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:8231
+#: cp/decl.c:8204
msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:8238
+#: cp/decl.c:8211
msgid "static member %qD declared %<register%>"
msgstr ""
-#: cp/decl.c:8243
+#: cp/decl.c:8216
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: cp/decl.c:8389
+#: cp/decl.c:8362
msgid "default argument for parameter of type %qT has type %qT"
msgstr ""
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr ""
@@ -15058,118 +15175,118 @@ 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:8657
+#: cp/decl.c:8630
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8754
msgid "%qD may not be declared within a namespace"
msgstr ""
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "η `%s' είναι συνήθως μη-στατική συνάÏτηση"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
msgid "%qD must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:8827
+#: cp/decl.c:8800
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:8920
+#: cp/decl.c:8893
msgid "postfix %qD must take %<int%> as its argument"
msgstr ""
-#: cp/decl.c:8924
+#: cp/decl.c:8897
msgid "postfix %qD must take %<int%> as its second argument"
msgstr ""
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "η `%s' παίÏνει είτε κανένα είτε δÏο οÏίσματα"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "η `%s' παίÏνει είτε κανένα είτε δÏο οÏίσματα"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:8933
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8969
+#: cp/decl.c:8942
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
msgid "%qD must take exactly one argument"
msgstr ""
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "η `%s' παίÏνει είτε κανένα είτε δÏο οÏίσματα"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:9003
+#: cp/decl.c:8976
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "ο διαχωÏιστής δε μποÏεί να είναι κενός"
-#: cp/decl.c:9086
+#: cp/decl.c:9064
msgid "using typedef-name %qD after %qs"
msgstr ""
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
msgid "%qT referred to as enum"
msgstr ""
@@ -15180,52 +15297,56 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:9397
+#: cp/decl.c:9389
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:9405
+#: cp/decl.c:9397
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:9424
+#: cp/decl.c:9416
msgid "base type %qT fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:9457
+#: cp/decl.c:9449
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "διπλός οÏισμός συνόλου"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "κανένας οÏισμός του `UNDEFINED'"
@@ -15234,251 +15355,245 @@ msgstr "κανένας οÏισμός του `UNDEFINED'"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
msgid "overflow in enumeration values at %qD"
msgstr ""
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "η επιστÏεφόμενη τιμή της `%s' δεν είναι `int'"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/decl.c:11012
+#: cp/decl.c:11015
msgid "static member function %q#D declared with type qualifiers"
msgstr ""
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr ""
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:381
+#: cp/decl2.c:380
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr ""
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr ""
-#: cp/decl2.c:444
+#: cp/decl2.c:441
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr ""
-#: cp/decl2.c:452
+#: cp/decl2.c:449
msgid "deleting %qT is undefined"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
msgid "invalid declaration of member template %q#D in local class"
msgstr ""
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
msgstr ""
-#: cp/decl2.c:572
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
msgstr ""
-#: cp/decl2.c:677
+#: cp/decl2.c:674
#, fuzzy
msgid "prototype for %q#D does not match any in class %qT"
msgstr "το αÏχείο δεδομένων Ï€Ïοφίλ `%s' δεν ταιÏιάζει με το διαμοιÏαζόμενο αντικείμενο `%s'"
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:870
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:964
+#: cp/decl2.c:972
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "άγνωστος χαÏακτήÏας στο πεδίο `%s' της κατηγοÏίας `%s'"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "άγνωστος χαÏακτήÏας στο πεδίο `%s' της κατηγοÏίας `%s'"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
msgid "%qD is already defined in the class %qT"
msgstr ""
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "ο διαχωÏιστής δε μποÏεί να είναι κενός"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "Δεν ήταν δυνατή η εÏÏεση ετικέττας για μεταγωγή στο `%s'"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr ""
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
msgid "%<operator new%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr ""
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
msgid "%<operator delete%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr ""
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
msgid "inline function %qD used but never defined"
msgstr ""
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "έχουν παÏαληφθεί οÏίσματα"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr ""
-#: cp/except.c:250
+#: cp/except.c:273
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr ""
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:810
+#: cp/except.c:836
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:895
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
msgstr ""
-#: cp/except.c:897
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
msgstr ""
-#: cp/except.c:927
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr ""
@@ -15561,200 +15676,208 @@ msgstr ""
msgid "argument to '%s' missing\n"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: cp/init.c:316
+#: cp/init.c:326
msgid "%J%qD should be initialized in the member initialization list"
msgstr ""
-#: cp/init.c:363
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr ""
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "δεν είναι δυνατόν να γίνει `stat' το locale αÏχείο `%s'"
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
msgid "%qD will be initialized after"
msgstr ""
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "η κλάση χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: cp/init.c:521
+#: cp/init.c:531
msgid " %q#D"
msgstr ""
-#: cp/init.c:523
+#: cp/init.c:533
msgid " base %qT"
msgstr ""
-#: cp/init.c:524
+#: cp/init.c:534
msgid "%J when initialized here"
msgstr ""
# src/request.c:263
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "Το βήμα αÏχικοποίησης απέτυχε"
# src/request.c:263
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "Το βήμα αÏχικοποίησης απέτυχε"
-#: cp/init.c:610
+#: cp/init.c:620
msgid "%Jinitializations for multiple members of %qT"
msgstr ""
-#: cp/init.c:667
+#: cp/init.c:677
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
#, fuzzy
msgid "class %qT does not have any field named %qD"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/init.c:897
+#: cp/init.c:907
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr ""
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/init.c:943
+#: cp/init.c:953
msgid "unnamed initializer for %qT, which has no base classes"
msgstr ""
-#: cp/init.c:951
+#: cp/init.c:961
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:997
+#: cp/init.c:1007
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/init.c:1379
+#: cp/init.c:1389
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr ""
-#: cp/init.c:1387
+#: cp/init.c:1397
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "ακατάλληλος Ï„Ïπος δικτÏου :`%s'\n"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "μη έγκυÏος αÏιθμός από στήλες: `%s'"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "μη έγκυÏος αÏιθμός από στήλες: `%s'"
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:1679
+#: cp/init.c:1700
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr ""
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "μη έγκυÏη κατάσταση για την dlopen()"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/init.c:1867
+#: cp/init.c:1888
#, c-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
# src/getopt.c:628
# src/getopt.c:628
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr ""
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr ""
@@ -15829,14 +15952,18 @@ msgstr ""
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:650
+#: cp/method.c:657
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr ""
-#: cp/method.c:656
+#: cp/method.c:663
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr ""
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -15935,62 +16062,56 @@ msgstr "%s: %s: "
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "σφάλμα ταιÏιάσματος Ï„Ïπου με Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
msgid "conflicts with function declaration %q#D"
msgstr ""
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1987
msgid "namespace %qD not allowed in using-declaration"
msgstr ""
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
msgid "%qD is already declared in this scope"
msgstr ""
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr ""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr ""
@@ -15999,428 +16120,444 @@ msgstr ""
msgid "using-declaration cannot name destructor"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr ""
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr ""
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "άγνωστο σετ `%s'"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
msgid "namespace %qT undeclared"
msgstr ""
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
# src/getopt.c:628
# src/getopt.c:628
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
msgid " first declared as %q#D here"
msgstr ""
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
msgid " also declared as %q#D here"
msgstr ""
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
msgid "%qD denotes an ambiguous type"
msgstr ""
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
msgid "%J first type here"
msgstr ""
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "μη έγκυÏος χÏήστης"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "άγνωστο σετ `%s'"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
msgid " conflict with %qD"
msgstr ""
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/parser.c:1818
+#: cp/parser.c:1842
msgid "request for member %qD in non-class type %qT"
msgstr ""
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/parser.c:1827
+#: cp/parser.c:1851
msgid "%<%D::%D%> %s"
msgstr ""
-#: cp/parser.c:1829
+#: cp/parser.c:1853
msgid "%<::%D%> %s"
msgstr ""
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr " %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr ""
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr ""
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "Μη έγκυÏη ημεÏομηνία `%s'."
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "%s: μη έγκυÏη κανονική έκφÏαση: %s"
# src/grep.c:785 src/grep.c:792
# src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "μη έγκυÏο ÏŒÏισμα μήκους πεÏιεχομένου"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr ""
-#: cp/parser.c:2738
+#: cp/parser.c:2808
msgid "%<this%> may not be used in this context"
msgstr ""
-#: cp/parser.c:2873
+#: cp/parser.c:2944
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:3238
+#: cp/parser.c:3316
msgid "typedef-name %qD used as destructor declarator"
msgstr ""
-#: cp/parser.c:3886
+#: cp/parser.c:3965
msgid "ISO C++ forbids compound-literals"
msgstr ""
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr ""
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr ""
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr ""
-#: cp/parser.c:5177
+#: cp/parser.c:5276
#, fuzzy
msgid "use of old-style cast"
msgstr "Ï€Î±Î»Î±Î¹Î¿Ï ÎµÎ¯Î´Î¿Ï…Ï‚ θέση"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, c-format
msgid "case label %qE not within a switch statement"
msgstr ""
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "διπλό κλειδί"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
msgid "class definition may not be declared a friend"
msgstr ""
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr ""
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
msgid "non-template %qD used as template"
msgstr ""
-#: cp/parser.c:8537
+#: cp/parser.c:8655
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "δημιουÏγία αÏχείου `%s'\n"
+
+#: cp/parser.c:9688
msgid "using %<typename%> outside of template"
msgstr ""
-#: cp/parser.c:9677
-#, fuzzy
-msgid "expected type-name"
-msgstr "%s: αναμενόταν αÏιθμητική τιμή."
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr ""
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
msgid "a template-id may not appear in a using-declaration"
msgstr ""
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10597
msgid "attributes are not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "η τιμή για το %s Ï€Ïέπει να είναι ακέÏαιος"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "μη έγκυÏος αÏιθμός από γÏαμμές"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "διπλός αÏιθμός μηνÏματος"
# src/grep.c:785 src/grep.c:792
# src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "μη έγκυÏο ÏŒÏισμα μήκους πεÏιεχομένου"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr ""
-#: cp/parser.c:11858
+#: cp/parser.c:11980
msgid "default arguments are only permitted for function parameters"
msgstr ""
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
+
+#: cp/parser.c:12733
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr ""
-#: cp/parser.c:12622
+#: cp/parser.c:12757
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr ""
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "κανένας οÏισμός του `UNDEFINED'"
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
#, fuzzy
msgid "friend declaration does not name a class or function"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:13395
+#: cp/parser.c:13547
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr ""
-#: cp/parser.c:13669
+#: cp/parser.c:13821
#, fuzzy
msgid "invalid catch parameter"
msgstr "Μη έγκυÏος χαÏακτήÏας παÏαβολής"
# src/getopt.c:628
# src/getopt.c:628
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
#, fuzzy
msgid "too few template-parameter-lists"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
@@ -16429,161 +16566,161 @@ msgstr "διπλό όνομα χαÏακτήÏα `%s'"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr ""
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "Μη έγκυÏη ανταλλαγή"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "δημιουÏγία αÏχείου `%s'\n"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:15063
+#: cp/parser.c:15233
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:15068
+#: cp/parser.c:15238
msgid "missing %<>%> to terminate the template argument list"
msgstr ""
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/parser.c:15607
+#: cp/parser.c:15787
msgid "%qD redeclared with different access"
msgstr ""
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: cp/pt.c:240
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
-#: cp/pt.c:574
+#: cp/pt.c:575
msgid "explicit specialization in non-namespace scope %qD"
msgstr ""
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:669
+#: cp/pt.c:670
msgid "specialization of %qD in different namespace"
msgstr ""
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr "κανένας οÏισμός του `UNDEFINED'"
-#: cp/pt.c:706
+#: cp/pt.c:707
msgid "specialization of %qT after instantiation"
msgstr ""
-#: cp/pt.c:738
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
msgstr ""
-#: cp/pt.c:753
+#: cp/pt.c:754
msgid "specialization %qT after instantiation %qT"
msgstr ""
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
msgid "specialization of %qD after instantiation"
msgstr ""
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/pt.c:1533
+#: cp/pt.c:1534
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:1542
+#: cp/pt.c:1543
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
msgid "template-id %qD in declaration of primary template"
msgstr ""
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr ""
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr ""
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "Το `%s' δεν είναι κατάλογος."
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16592,58 +16729,52 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "Στη συνάÏτηση μέλος `%s':"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
msgstr " `%D'"
-#: cp/pt.c:2641
+#: cp/pt.c:2616
msgid "partial specialization %qT does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2710
+#: cp/pt.c:2685
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2957
+#: cp/pt.c:2932
#, fuzzy
msgid "template class without a name"
msgstr "μη τεÏματιζόμενο όνομα βάÏους"
@@ -16651,7 +16782,7 @@ msgstr "μη τεÏματιζόμενο όνομα βάÏους"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
msgid "destructor %qD declared as member template"
msgstr ""
@@ -16660,61 +16791,66 @@ msgstr ""
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr ""
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " αλλά %d απαιτοÏνται"
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr ""
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
msgid "redeclared here as %q#D"
msgstr ""
@@ -16722,323 +16858,333 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr ""
-#: cp/pt.c:3370
+#: cp/pt.c:3342
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3411
+#: cp/pt.c:3383
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr ""
-#: cp/pt.c:3486
+#: cp/pt.c:3458
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr ""
-#: cp/pt.c:3536
+#: cp/pt.c:3508
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr ""
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: cp/pt.c:3576
+#: cp/pt.c:3548
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: cp/pt.c:3658
+#: cp/pt.c:3630
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:3827
+#: cp/pt.c:3799
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr "%s: αναμενόταν ακέÏαιος μετά το `%c'"
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr "%s: αναμενόταν ακέÏαιος μετά το `%c'"
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr "%s: αναμενόταν ακέÏαιος μετά το `%c'"
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr "%s: αναμενόταν ακέÏαιος μετά το `%c'"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr "%s: αναμενόταν ακέÏαιος μετά το `%c'"
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
msgstr "%s: αναμενόταν ακέÏαιος μετά το `%c'"
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, fuzzy, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "λάθος αÏιθμός οÏισμάτων"
-#: cp/pt.c:3982
+#: cp/pt.c:3955
msgid "provided for %qD"
msgstr ""
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "έχουν παÏαληφθεί οÏίσματα"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr ""
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
msgid "non-template type %qT used as a template"
msgstr ""
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "διπλός οÏισμός συνόλου"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "μη έγκυÏος αÏιθμός αÏχείου στη δήλωση πεδίου: `%s'"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "Μη έγκυÏη Ï€ÏοτεÏαιότητα `%s'"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
msgid "function returning an array"
msgstr ""
-#: cp/pt.c:6748
+#: cp/pt.c:6743
msgid "function returning a function"
msgstr ""
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "δημιουÏγία αÏχείου `%s'\n"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr ""
+
+#: cp/pt.c:7429
#, c-format
msgid "use of %qs in template"
msgstr ""
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:7557
+#: cp/pt.c:7556
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "έχει παÏαληφθεί η λίστα με τα πεδία"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/pt.c:8844
-msgid "%qT uses anonymous type"
-msgstr ""
+#: cp/pt.c:8872
+#, fuzzy
+msgid "%qT is/uses anonymous type"
+msgstr "το `%s' δεν είναι κανονικό αÏχείο"
-#: cp/pt.c:8846
+#: cp/pt.c:8874
msgid "%qT uses local type %qT"
msgstr ""
-#: cp/pt.c:8854
+#: cp/pt.c:8883
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
#, fuzzy
msgid "incomplete type unification"
msgstr "Μεταγλωττισμός Ï€ÏοδιαγÏαφών τοπικών Ïυθμίσεων"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
#, fuzzy
msgid "no matching template for %qD found"
msgstr "Ο έλεγχος Î¼Î¿Î½Î¿Ï€Î±Ï„Î¹Î¿Ï Î³Î¹Î± το `%s' βÏήκε `%s'"
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "διπλός οÏισμός συνόλου"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "διπλός οÏισμός συνόλου"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr ""
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
msgid "storage class %qD applied to template instantiation"
msgstr ""
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
msgid "explicit instantiation of %q#T before definition of template"
msgstr ""
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr ""
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "διπλός οÏισμός συνόλου"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
msgid "explicit instantiation of %qD but no definition available"
msgstr ""
-#: cp/pt.c:11422
+#: cp/pt.c:11485
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr ""
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
@@ -17057,24 +17203,24 @@ msgstr ""
msgid "can't create repository information file %qs"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
#, fuzzy
msgid "cannot use typeid with -fno-rtti"
msgstr "Δεν είναι δυνατό να χÏησιμοποιηθεί η επιλογή -a χωÏίς το -n"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:321
+#: cp/rtti.c:322
msgid "cannot create type information for type %qT because its size is variable"
msgstr ""
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr ""
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
@@ -17089,232 +17235,227 @@ msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
msgid "%qT is an inaccessible base of %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
#, fuzzy
msgid " overriding %q#D"
msgstr "αντιγÏάφεται από πάνω"
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "μη έγκυÏο είδος αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/search.c:1866
+#: cp/search.c:1875
msgid "looser throw specifier for %q#F"
msgstr ""
-#: cp/search.c:1867
+#: cp/search.c:1876
#, fuzzy
msgid " overriding %q#F"
msgstr "αντιγÏάφεται από πάνω"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "Δεν μποÏεί να τεθεί η ημεÏομηνία."
-#: cp/search.c:1961
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
msgstr ""
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, c-format
msgid "type of asm operand %qE could not be determined"
msgstr ""
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "μη έγκυÏος αÏιθμός πεδίου: `%s'"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
msgid "object missing in reference to %qD"
msgstr ""
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "%s: οι τιμές του πεδίου `%s' δεν Ï€Ïέπει να είναι μεγαλÏτεÏες από %d"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "η `%s' είναι συνήθως μη-στατική συνάÏτηση"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "μη έγκυÏος αÏιθμός πεδίου: `%s'"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "μη έγκυÏος χÏήστης"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr ""
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
#, fuzzy
msgid "invalid default argument for a template template parameter"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
msgid "definition of %q#T inside template parameter list"
msgstr ""
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "μη έγκυÏος αÏιθμός αÏχείου στη δήλωση πεδίου: `%s'"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "κανένας οÏισμός του `UNDEFINED'"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
#, fuzzy
msgid "invalid base-class specification"
msgstr "Μη έγκυÏη ÏÏθμιση θÏÏας (port)"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
msgid "base class %qT has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
# src/getopt.c:628
# src/getopt.c:628
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "%s: μη έγκυÏη κανονική έκφÏαση: %s"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr "Δεν υπάÏχει Ï€ÏοηγοÏμενη κανονική έκφÏαση"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, c-format
msgid "type of %qE is unknown"
msgstr ""
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr ""
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr ""
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "Ï€Ïοειδοποίηση: το --pid=PID δεν υποστηÏίζεται σε αυτό το σÏστημα"
@@ -17331,210 +17472,210 @@ msgstr ""
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr ""
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, c-format
msgid "invalid application of %qs to a member function"
msgstr ""
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, c-format
msgid "invalid application of %qs to a bit-field"
msgstr ""
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr ""
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "μη έγκυÏος αÏιθμός από στήλες: `%s'"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "μη έγκυÏος αÏιθμός από στήλες: `%s'"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "δεν είστε μέλος της ομάδας `%s'"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD 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:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "μη έγκυÏη ÏŽÏα της μέÏας"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
#, fuzzy
msgid "invalid type argument"
msgstr "Μη έγκυÏη παÏάμετÏος"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr ""
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
msgid "subscripting array declared %<register%>"
msgstr ""
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, c-format
msgid "object missing in use of %qE"
msgstr ""
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr ""
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "πάÏα πολλά οÏίσματα"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr ""
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
#, fuzzy
msgid "too many arguments to function"
msgstr "πάÏα πολλά οÏίσματα"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "Ï€Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
#, fuzzy
msgid "too few arguments to function"
msgstr "Ï€Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
msgid "assuming cast to type %qT from overloaded function"
msgstr ""
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "ΔιαίÏεση με μηδέν στην αποτίμηση: %s"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "ΔιαίÏεση με μηδέν στην αποτίμηση: %s"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "ΔιαίÏεση με μηδέν στην αποτίμηση: %s"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "ΔιαίÏεση με μηδέν στην αποτίμηση: %s"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr ""
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
#, fuzzy
msgid "unordered comparison on non-floating point argument"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
msgid "comparison between types %q#T and %q#T"
msgstr ""
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
@@ -17542,140 +17683,140 @@ 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr ""
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr ""
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr ""
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr ""
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "μη έγκυÏος αÏιθμός από κενές γÏαμμές: `%s'"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr ""
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr ""
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
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:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το αÏχείο fifo `%s'"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr ""
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr ""
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "δεν είναι δυνατόν να γίνει `stat' το locale αÏχείο `%s'"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:4355
+#: cp/typeck.c:4318
msgid "address of explicit register variable %qD requested"
msgstr ""
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, fuzzy, c-format
msgid "%s expression list treated as compound expression"
msgstr "Λάθος έκφÏαση στην αποτίμηση: %s"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
msgid "%s from type %qT to type %qT casts away constness"
msgstr ""
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
msgid "cast from %qT to %qT loses precision"
msgstr ""
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr ""
@@ -17683,160 +17824,135 @@ msgstr ""
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
msgid "ISO C++ forbids casting to an array type %qT"
msgstr ""
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr ""
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
msgid "pointer to member cast via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
msgid "pointer to member conversion via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "μη έγκυÏος χαÏακτήÏας `%c' στο Ï„Ïπο αλφαÏÎ¹Î¸Î¼Î·Ï„Î¹ÎºÎ¿Ï `%s'"
-#: cp/typeck.c:5871
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5874
-msgid "%s to non-pointer type %qT from NULL"
-msgstr ""
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "το πέÏασμα του οÏίσματος %d από `%s'"
-
-#: cp/typeck.c:5885
-msgid "%s to %qT from %qT"
-msgstr ""
-
-#: cp/typeck.c:5894
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5897
-msgid "%s of negative value %qE to %qT"
-msgstr ""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "δεν είναι δυνατό να δημιουÏγηθεί το %s `%s' στο `%s'"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
#, fuzzy
msgid "returning reference to temporary"
msgstr "xdr_reference: η μνήμη εξαντλήθηκε\n"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
msgid "reference to local variable %qD returned"
msgstr ""
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
msgid "address of local variable %qD returned"
msgstr ""
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "`return' χωÏίς τιμή, σε συνάÏτηση που επιστÏέφει μη-κενό"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
#, fuzzy
msgid "return-statement with a value, in function returning 'void'"
msgstr "`return' χωÏίς τιμή, σε συνάÏτηση που επιστÏέφει μη-κενό"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr ""
@@ -17899,159 +18015,159 @@ msgstr ""
msgid "%J since type %qT has pure virtual functions"
msgstr ""
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr ""
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "ακολουθοÏν σκουπίδια στο τέλος της γÏαμμής"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
msgid "ignoring extra initializers for %qT"
msgstr ""
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
msgid "variable-sized object of type %qT may not be initialized"
msgstr ""
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr ""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "έχει παÏαληφθεί το αÏχείο Ï€ÏοοÏισμοÏ"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
msgid "member %qD is uninitialized reference"
msgstr ""
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
msgid "no field %qD in union being initialized"
msgstr ""
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
msgid "union %qT with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr ""
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
msgid "base operand of %<->%> is not a pointer"
msgstr ""
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr ""
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "μη πλήÏης εγγÏαφή"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "μη πλήÏης εγγÏαφή"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "αδυναμία ανοίγματος αÏχείου εισόδου `%s'"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, c-format
msgid "global register variable %qs used in nested function"
msgstr ""
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, c-format
msgid "register variable %qs used in nested function"
msgstr ""
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, c-format
msgid "address of global register variable %qs requested"
msgstr ""
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, c-format
msgid "address of register variable %qs requested"
msgstr ""
@@ -18071,82 +18187,82 @@ msgstr "έχουν παÏαληφθεί οÏίσματα"
msgid "no input files; unwilling to write output files"
msgstr "%s: το αÏχείο εισόδου είναι το αÏχείο εξόδου"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
msgid "Function does not return a value"
msgstr ""
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "άγνωστος χαÏακτήÏας `%s'"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "αχÏησιμοποίητη μεταβλητή `%s'"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
msgid "Function return value not set"
msgstr ""
# src/grep.c:1133
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "άγνωστη μέθοδος καταλόγων"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr ""
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18163,7 +18279,7 @@ msgstr ""
msgid "Array element size too big"
msgstr ""
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18174,27 +18290,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr "συγγνώμη, η λειτουÏγία δεν έχει υλοποιηθεί: "
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, c-format
msgid "Variable %qs may not have been initialized"
msgstr ""
-#: java/check-init.c:529
+#: java/check-init.c:535
#, c-format
msgid "variable %qs may not have been initialized"
msgstr ""
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:1013
+#: java/check-init.c:1026
msgid "%Jfinal field %qD may not have been initialized"
msgstr ""
@@ -18229,196 +18345,196 @@ msgstr ""
msgid "%Jnon-static method '%D' overrides static method"
msgstr ""
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr ""
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "αόÏιστο"
-#: java/decl.c:1580
+#: java/decl.c:1637
msgid "%Jlabel '%D' defined but not used"
msgstr ""
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr ""
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, c-format
msgid "assert: %s is assign compatible with %s"
msgstr ""
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1699
+#: java/expr.c:1703
#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr ""
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "το αÏχείο χάÏτη χαÏακτήÏων `%s' δεν βÏέθηκε"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr ""
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr ""
-#: java/expr.c:2742
+#: java/expr.c:2746
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr ""
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr ""
-#: java/expr.c:2941
+#: java/expr.c:2945
#, fuzzy
msgid "invalid PC in line number table"
msgstr "μη έγκυÏος αÏχικός αÏιθμός γÏαμμής: `%s'"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, c-format
msgid "ignored method '"
msgstr ""
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "σφάλμα κατά το κλείσιμο του αÏχείου εξόδου"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "Μη έγκυÏος χαÏακτήÏας ονόματος κλάσης"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
#, fuzzy
msgid "error while parsing constant pool"
msgstr "σφάλμα κατά το κλείσιμο του αÏχείου εξόδου"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "σφάλμα κατά το κλείσιμο του αÏχείου εξόδου"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
msgid "class is of array type\n"
msgstr ""
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "η κλάση χαÏακτήÏων `%s' οÏίστηκε ήδη"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, fuzzy, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
@@ -18427,118 +18543,118 @@ msgstr ""
"ΧÏήση: gcov [ΕΠΙΛΟΓΗ]... [ΑΡΧΕΊΟΠΗΓΗΣ]\n"
"\n"
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr ""
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe ΧÏήση σωληνώσεων αντί ενδιάμεσων αÏχείων\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -pipe ΧÏήση σωληνώσεων αντί ενδιάμεσων αÏχείων\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <κατάλογος> ΠÏοσθήκη του <καταλόγου> στις διαδÏομές αναζήτησης του μεταγλωττιστή\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <αÏχείο> Τοποθέτηση της εξόδου στο <αÏχείο>\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " -h, --help Εμφάνιση αυτής της βοήθειας, μετά έξοδος\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -v, --version Εμφάνιση αÏÎ¹Î¸Î¼Î¿Ï Î­ÎºÎ´Î¿ÏƒÎ·Ï‚, μετά έξοδος\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -v, --version Εμφάνιση αÏÎ¹Î¸Î¼Î¿Ï Î­ÎºÎ´Î¿ÏƒÎ·Ï‚, μετά έξοδος\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -h, --help Εμφάνιση αυτής της βοήθειας, μετά έξοδος\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " -h, --help Εμφάνιση αυτής της βοήθειας, μετά έξοδος\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -18548,32 +18664,32 @@ msgstr ""
"Για οδηγίες στις αναφοÏές σφαλμάτων, παÏακαλώ δείτε:\n"
"%s.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "Δεν υπάÏχουν αÏχεία εισόδου"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
#, fuzzy
msgid "'-MG' option is unimplemented"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "δεν είναι δυνατό να παÏαληφθεί ο χÏήστης και η ομάδα"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "σφάλμα ανάγνωσης %s"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -18588,7 +18704,7 @@ msgstr "Μη έγκυÏος χαÏακτήÏας ονόματος κλάσης"
msgid "error while parsing constant pool\n"
msgstr "σφάλμα κατά το κλείσιμο του αÏχείου εξόδου"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
@@ -18664,111 +18780,111 @@ msgstr ""
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr ""
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
#, fuzzy
msgid "bad string constant"
msgstr "μη τεÏματιζμένο αλφαÏιθμητικό σταθεÏάς"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "αδυναμία ανοίγματος του `%s'"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "δεν είναι δυνατό να αλλαχτοÏν τα δικαιώματα του `%s'"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "δε βÏέθηκε ο Ï€ÏοεπεξεÏγαστής C: %s \n"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
#, fuzzy
msgid "not a valid Java .class file"
msgstr "Μη έγκυÏος χαÏακτήÏας ονόματος κλάσης"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
#, fuzzy
msgid "error while parsing fields"
msgstr "σφάλμα κατά το κλείσιμο του αÏχείου εξόδου"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
#, fuzzy
msgid "error while parsing methods"
msgstr "σφάλμα κατά την ανάγνωση της εισόδου"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
#, fuzzy
msgid "error while parsing final attributes"
msgstr "σφάλμα κατά το κλείσιμο της εισόδου `%s'"
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
#, fuzzy
msgid "missing Code attribute"
msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
#, fuzzy
msgid "no input file specified"
msgstr "Δεν υπάÏχουν αÏχεία εισόδου"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "αδυναμία ανοίγματος αÏχείου εισόδου `%s'"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, fuzzy, c-format
msgid "error while reading %s from zip file"
msgstr "σφάλμα κατά το κλείσιμο του αÏχείου εξόδου"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
#, fuzzy
msgid "field initializer type mismatch"
msgstr "ΚακοσυνταίÏιασμα Ï„Ïπων καταχώÏησης/πίνακα"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "%s: Δεν είναι δυνατόν να δημιουÏγηθεί ο κατάλογος %s: %s\n"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, fuzzy, c-format
msgid "can't open %s for writing: %m"
msgstr "%s: Σφάλμα εγγÏαφής "
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "αδυναμία ανοίγματος του `%s'"
@@ -18824,26 +18940,26 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "αδυναμία ανοίγματος αÏχείου εξόδου `%s'"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "Μη έγκυÏη επιλογή `%s'"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "σφάλμα επεξεÏγασίας"
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, c-format
msgid "%s: warning: "
msgstr "%s: Ï€Ïοειδοποίηση: "
@@ -18902,15 +19018,15 @@ msgstr ""
msgid "cannot specify 'main' class when not linking"
msgstr "Δεν είναι δυνατό να δηλωθεί αÏιθμός στηλών στην παÏάλληλη εκτÏπωση."
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:256
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -18919,7 +19035,7 @@ msgid ""
"%<--encoding=UTF-8%> option"
msgstr ""
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u"
@@ -18934,84 +19050,84 @@ msgstr "Δεν είναι δυνατόν να εκτελεστεί το %s"
msgid "internal error - invalid Utf8 name"
msgstr "εσωτεÏικό σφάλμα στο %s, γÏαμμή %u"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
#, fuzzy
msgid "Missing term"
msgstr "Έχει παÏαληφθεί εντολή"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "αναμενόταν ';'"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
#, fuzzy
msgid "Missing name"
msgstr "Έχει παÏαληφθεί εντολή"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "αναμενόταν '*'"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr ""
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "αναμενόταν σταθεÏά ή Ï€ÏοσδιοÏιστής"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
#, fuzzy
msgid "Missing class name"
msgstr "Έχει παÏαληφθεί εντολή"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "αναμενόταν '{'"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr ""
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
#, fuzzy
msgid "Missing interface name"
msgstr "παÏάληψη οÏίσματος αÏχείου"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr ""
-#: java/parse.y:1007
+#: java/parse.y:1006
#, fuzzy
msgid "Invalid declaration"
msgstr "Μη έγκυÏη ανταλλαγή"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "αναμενόταν ']'"
@@ -19019,166 +19135,166 @@ 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
-#: java/parse.y:1014
+#: java/parse.y:1013
#, fuzzy
msgid "Unbalanced ']'"
msgstr "Μη ισσοÏοπημένο ["
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr ""
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
#, fuzzy
msgid "Identifier expected"
msgstr "ΠÏοσδιοÏιστής αφαιÏέθηκε"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr ""
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "αναμενόταν '('"
-#: java/parse.y:1109
+#: java/parse.y:1108
#, fuzzy
msgid "Missing formal parameter term"
msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
#, fuzzy
msgid "Missing identifier"
msgstr "έχει παÏαληφθεί το αÏχείο Ï€ÏοοÏισμοÏ"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr ""
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
#, fuzzy
msgid "Invalid interface type"
msgstr "Μη έγκυÏος εξακÏιβωτής(verifier) εξυπηÏετοÏμενου"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "αναμενόταν ':'"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
#, fuzzy
msgid "Invalid expression statement"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "αναμενόταν '('"
-#: java/parse.y:1629
+#: java/parse.y:1628
#, fuzzy
msgid "Missing term or ')'"
msgstr "Λείπει παÏάμετÏος για `%s'"
-#: java/parse.y:1676
+#: java/parse.y:1675
#, fuzzy
msgid "Missing or invalid constant expression"
msgstr "%s: μη έγκυÏη κανονική έκφÏαση: %s"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr ""
-#: java/parse.y:1736
+#: java/parse.y:1735
#, fuzzy
msgid "Invalid control expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
#, fuzzy
msgid "Invalid update expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: java/parse.y:1765
+#: java/parse.y:1764
#, fuzzy
msgid "Invalid init statement"
msgstr "Μη έγκυÏη παÏάμετÏος"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr ""
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr ""
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
#, fuzzy
msgid "'class' expected"
msgstr "αναμενόταν ')'\n"
-#: java/parse.y:2057
+#: java/parse.y:2056
#, fuzzy
msgid "')' or term expected"
msgstr "αναμενόταν ')'\n"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "αναμενόταν '['"
-#: java/parse.y:2266
+#: java/parse.y:2265
#, fuzzy
msgid "Field expected"
msgstr "Η θυγατÏική διεÏγασία τεÏματίστηκε"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr ""
-#: java/parse.y:2450
+#: java/parse.y:2449
#, fuzzy
msgid "']' expected, invalid type expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: java/parse.y:2453
+#: java/parse.y:2452
#, fuzzy
msgid "Invalid type expression"
msgstr "Μη έγκυÏη κανονική έκφÏαση"
-#: java/parse.y:2565
+#: java/parse.y:2564
#, fuzzy
msgid "Invalid reference type"
msgstr "Μη έγκυÏη πισω-παÏαπομπή"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr ""
-#: java/parse.y:3042
+#: java/parse.y:3041
#, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ""
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19187,684 +19303,684 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Έχει παÏαληφθεί εντολή"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "Μη έγκυÏη παÏάμετÏος"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, c-format
msgid "Interface %qs repeated"
msgstr ""
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "Μη έγκυÏη πισω-παÏαπομπή"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr ""
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
msgid "Class %qs not found in %<throws%>"
msgstr ""
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, c-format
msgid "Class or interface %qs not found in import"
msgstr ""
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: java/parse.y:7148
+#: java/parse.y:7151
#, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
-#: java/parse.y:7153
+#: java/parse.y:7156
#, c-format
msgid "Package %qs not found in import"
msgstr ""
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "αχÏησιμοποίητη μεταβλητή `%s'"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, c-format
msgid "No variable %qs defined in class %qs"
msgstr ""
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "δε βÏέθηκε ο Ï€ÏοεπεξεÏγαστής C: %s \n"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, c-format
msgid "Can't use type %qs as a qualifier"
msgstr ""
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "Αδυναμία Ï€Ïοσπέλασης του αÏχείου της αλλαγής"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "διπλός αÏιθμός μηνÏματος"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "έχει παÏαληφθεί η λίστα με τα πεδία"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "αδυναμία Ï€Ïοσπέλασης(stat()) αÏχείου `%s': %s"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, fuzzy, c-format
msgid "No case for %s"
msgstr "Σφάλμα επεξεÏγασίας: %s"
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, fuzzy, c-format
msgid "unregistered operator %s"
msgstr "ποτέ δεν δηλώθηκε το Ï€ÏόγÏαμμα %d\n"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "Η παÏάμετÏος `%s' δεν είναι έγκυÏη."
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "η μετατÏοπή από `%s' σε `%s' δεν υποστηÏίζετε"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/parse.y:14931
+#: java/parse.y:14935
msgid "%<return%> inside instance initializer"
msgstr ""
-#: java/parse.y:14935
+#: java/parse.y:14939
msgid "%<return%> inside static initializer"
msgstr ""
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
msgid "%<return%> with value from constructor %qs"
msgstr ""
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "αυτή είναι η θέση του Ï€Ïώτου οÏισμοÏ"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "Οι οÏισμοί πηγή βÏίσκονται στο ΑΡΧΕΙΟ"
-#: java/parse.y:15311
+#: java/parse.y:15315
msgid "%<continue%> must be in loop"
msgstr ""
-#: java/parse.y:15314
+#: java/parse.y:15318
#, c-format
msgid "continue label %qs does not name a loop"
msgstr ""
-#: java/parse.y:15335
+#: java/parse.y:15339
msgid "%<break%> must be in loop or switch"
msgstr ""
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "διπλό κλειδί"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
msgid "original label is here"
msgstr ""
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
-#: java/typeck.c:547
+#: java/typeck.c:533
#, fuzzy
msgid "junk at end of signature string"
msgstr "μη τεÏματιζόμενo αλφαÏιθμητικό"
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, c-format
msgid "verification failed: %s"
msgstr ""
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, c-format
msgid "verification failed at PC=%d: %s"
msgstr ""
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
#, fuzzy
msgid "bad pc in exception_table"
msgstr "ΕξαίÏεση κινητής υποδιαστολής"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -19912,184 +20028,184 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr ""
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
msgid "%<@end%> must appear in an @implementation context"
msgstr ""
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "Η λειτουÏγία δεν έχει υλοποιηθεί"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, c-format
msgid "object does not conform to the %qs protocol"
msgstr ""
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται από το Ï€Ïωτόκολλο"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr ""
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "αδυναμία εισαγωγής στοιχείο παÏαβολής `%.*s'"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr ""
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "δε βÏέθηκε ο Ï€ÏοεπεξεÏγαστής C: %s \n"
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "%s' δεν είναι ισχÏων θετικός ακέÏαιος."
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "(το αÏχείο ήδη υπάÏχει)"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr ""
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
#, fuzzy
msgid "%Jprevious declaration of '%D'"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
msgstr ""
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
msgstr ""
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
msgstr ""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
# src/request.c:37
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "%s: %s"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
#, fuzzy
msgid "inconsistent instance variable specification"
msgstr "Μεταγλωττισμός Ï€ÏοδιαγÏαφών τοπικών Ïυθμίσεων"
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
msgid "can not use an object as parameter to a method"
msgstr ""
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
# src/outer.c:102
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "Ο αντιτοποθετητής επιφάνειας έχει τεθεί πεÏισσότεÏο από μια φοÏά για το `%s'"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "Μη έγκυÏη Ï€ÏοτεÏαιότητα `%s'"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
msgid "%<%c%s%> not found in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "το `%s' είναι Ï€Ïόγονος του `%s'"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
msgstr ""
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
@@ -20103,152 +20219,152 @@ msgstr "μη έγκυÏος δηλωτής πεδίου: `%s'"
#. 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:5972
+#: objc/objc-act.c:6022
#, c-format
msgid "instance variable %qs accessed in class method"
msgstr ""
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr ""
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, c-format
msgid "instance variable %qs has unknown size"
msgstr ""
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, c-format
msgid "type %qs has virtual member functions"
msgstr ""
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr ""
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, fuzzy, c-format
msgid "type %qs has a user-defined constructor"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, fuzzy, c-format
msgid "type %qs has a user-defined destructor"
msgstr "Το `%s' δεν είναι κατάλογος."
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, c-format
msgid "instance variable %qs is declared private"
msgstr ""
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr ""
# src/shred.c:1134
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "%s: το αÏχείο είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "αδυναμία ανάγνωσης καταλόγου locale `%s'"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
msgstr "αποτυχία κατά την εγγÏαφή δεδομένων για την κατηγοÏία `%s'"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
msgstr "αποτυχία κατά την εγγÏαφή δεδομένων για την κατηγοÏία `%s'"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
msgid "method definition for %<%c%s%> not found"
msgstr ""
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "Η λειτουÏγία δεν υποστηÏίζεται από το Ï€Ïωτόκολλο"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
msgid "%<@end%> missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "αποτυχία κατά την εγγÏαφή δεδομένων για την κατηγοÏία `%s'"
# src/request.c:806 src/request.c:912
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "Μη αναγνωÏίσημο όνομα επιφάνειας `%s'"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "Ï€ÏοηγοÏμενη αυτονόητη διακÏÏηξη του `%s'"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
msgstr ""
# src/outer.c:102
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "Ο αντιτοποθετητής επιφάνειας έχει τεθεί πεÏισσότεÏο από μια φοÏά για το `%s'"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
msgid "extra semicolon in method definition specified"
msgstr ""
@@ -20257,19 +20373,19 @@ msgstr ""
msgid "%HDuplicate name %q.*s."
msgstr "διπλό όνομα χαÏακτήÏα `%s'"
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
msgid "Global register variable %qD used in nested function."
msgstr ""
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
msgid "Register variable %qD used in nested function."
msgstr ""
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
msgid "Address of global register variable %qD requested."
msgstr ""
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
msgid "Address of register variable %qD requested."
msgstr ""
@@ -20610,662 +20726,661 @@ msgid "Warn about function pointer arithmetic"
msgstr ""
#: options.c:1237
-msgid "Warn if inherited methods are unimplemented"
+msgid "Warn when a pointer differs in signedness in an assignment."
msgstr ""
#: options.c:1240
-msgid "Warn about multiple declarations of the same object"
+msgid "Warn if inherited methods are unimplemented"
msgstr ""
#: options.c:1243
+msgid "Warn about multiple declarations of the same object"
+msgstr ""
+
+#: options.c:1246
#, fuzzy
msgid "Warn if modifiers are specified when not necessary"
msgstr "δε μποÏοÏν να δηλώνονται αÏχεία όταν γίνεται χÏήση του --string"
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr ""
-#: options.c:1249
+#: options.c:1252
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr ""
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr ""
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr ""
-#: options.c:1261
+#: options.c:1264
msgid "Warn about signed-unsigned comparisons"
msgstr ""
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
msgid "Warn about code which might break strict aliasing rules"
msgstr ""
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "αδυναμία εισαγωγής στοιχείο παÏαβολής `%.*s'"
-#: options.c:1276
+#: options.c:1279
msgid "Warn about \"suspicious\" constructs"
msgstr ""
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: options.c:1291
+#: options.c:1294
#, fuzzy
msgid "Do not suppress warnings from system headers"
msgstr "Αποσιώπηση Ï€Ïοηδοποιήσεων και μηνυμάτων πληÏοφόÏησης"
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr ""
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
msgid "Warn about @selector()s without previously declared methods"
msgstr ""
-#: options.c:1303
+#: options.c:1306
#, fuzzy
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "%%%c: κατευθυντήÏιος γÏαμμή μη έγκυÏη."
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "%s: μη έγκυÏη κανονική έκφÏαση: %s"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr ""
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr ""
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr ""
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr ""
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr ""
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr ""
-#: options.c:1342
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr ""
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr ""
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
msgid "Generate position-independent code if possible (large mode)"
msgstr ""
-#: options.c:1378
+#: options.c:1381
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr ""
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr ""
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr ""
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr ""
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr ""
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr ""
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr ""
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr ""
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1447
#, fuzzy
msgid "Generate code to check bounds before indexing arrays"
msgstr "ΧÏήση ξεχωÏιστής λανθάνουσας μνήμης για κάθε χÏήστη"
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr ""
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr ""
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr ""
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr ""
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "ΧÏήση ξεχωÏιστής λανθάνουσας μνήμης για κάθε χÏήστη"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr ""
-#: options.c:1498
+#: options.c:1501
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr ""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr ""
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr ""
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
msgid "Place data items into their own section"
msgstr ""
-#: options.c:1519
+#: options.c:1525
#, fuzzy
msgid "Inline member functions by default"
msgstr "Στη συνάÏτηση μέλος `%s':"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr ""
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr ""
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
#, fuzzy
msgid "Permit '$' as an identifier character"
msgstr "λίστα με όλα τα γνωστά σÏνολα χαÏακτήÏων"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
msgid "Display the code tree after parsing."
msgstr ""
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
msgid "Generate code to check exception specifications"
msgstr ""
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr ""
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr ""
-#: options.c:1615
+#: options.c:1621
msgid "Assume that the source file is fixed form"
msgstr ""
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr ""
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr ""
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: options.c:1648
+#: options.c:1654
msgid "Place each function into its own section"
msgstr ""
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr ""
-#: options.c:1654
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
msgstr ""
-#: options.c:1657
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr ""
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr ""
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr ""
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr ""
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr ""
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "αδυναμία ανοίγματος αÏχείου οÏÎ¹ÏƒÎ¼Î¿Ï locale `%s'"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "διπλός οÏισμός συνόλου"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr ""
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr ""
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr ""
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr ""
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr ""
-#: options.c:1756
+#: options.c:1762
msgid "Perform loop optimizations"
msgstr ""
-#: options.c:1759
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr ""
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr ""
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr ""
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: options.c:1792
+#: options.c:1798
msgid "Don't warn about uses of Microsoft extensions"
msgstr ""
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-#, fuzzy
-msgid "Use graph-coloring register allocation"
-msgstr "Αποτυχία δέσμευσης πόÏων συστήματος"
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
@@ -21689,321 +21804,325 @@ msgid "Enable loop vectorization on trees"
msgstr ""
#: options.c:2161
-msgid "Append underscores to externally visible names"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
msgstr ""
#: options.c:2164
-msgid "Compile whole compilation unit at a time"
+msgid "Append underscores to externally visible names"
msgstr ""
#: options.c:2167
-msgid "Perform loop unrolling for all loops"
+msgid "Compile whole compilation unit at a time"
msgstr ""
#: options.c:2170
-msgid "Perform loop unrolling when iteration count is known"
+msgid "Perform loop unrolling for all loops"
msgstr ""
#: options.c:2173
-msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgid "Perform loop unrolling when iteration count is known"
msgstr ""
#: options.c:2176
-msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
#: options.c:2179
-msgid "Make \"char\" unsigned by default"
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
#: options.c:2182
-msgid "Perform loop unswitching"
+msgid "Make \"char\" unsigned by default"
msgstr ""
#: options.c:2185
-msgid "Just generate unwind tables for exception handling"
+msgid "Perform loop unswitching"
msgstr ""
#: options.c:2188
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "ΧÏήση ξεχωÏιστής λανθάνουσας μνήμης για κάθε χÏήστη"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
msgid "Perform variable tracking"
msgstr ""
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr ""
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
#, fuzzy
msgid "Use expression value profiles in optimizations"
msgstr "Λάθος έκφÏαση στην αποτίμηση: %s"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr ""
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr ""
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
#, fuzzy
msgid "Emit cross referencing information"
msgstr "εμφάνιση πληÏοφοÏιών Ï€Ïοόδου"
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr ""
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr ""
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr ""
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr ""
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr ""
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr ""
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr ""
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
#, fuzzy
msgid "-o <file>\tPlace output into <file>"
msgstr " -o <αÏχείο> Τοποθέτηση της εξόδου στο <αÏχείο>\n"
-#: options.c:2323
+#: options.c:2326
#, fuzzy
msgid "Enable function profiling"
msgstr "αδÏνατη η φόÏτωση δεδομένων Ï€Ïοφίλ"
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr ""
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr ""
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr ""
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
#, fuzzy
msgid "Remap file names when including files"
msgstr "Μη οÏισμένο όνομα %s"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr ""
-#: options.c:2407
+#: options.c:2410
#, fuzzy
msgid "Suppress warnings"
msgstr "%s: Ï€Ïοειδοποίηση: "
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr ""
@@ -22024,35 +22143,35 @@ msgstr ""
"Οι επιλογές για να εκτυπωθεί και να οÏιστεί η ÏŽÏα δεν μποÏοÏν να\n"
"χÏησιμοποιηθοÏν παÏάλληλα."
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
@@ -22086,30 +22205,22 @@ msgstr ""
msgid "shared and mdll are not compatible"
msgstr ""
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "ειδικά αÏχεία μπλοκ δεν υποστηÏίζονται"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
#, fuzzy
msgid "may not use both -m32 and -m64"
msgstr "δεν είναι δυνατό να παÏαληφθεί ο χÏήστης και η ομάδα"
-#: treelang/lang-specs.h:52
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr ""
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr ""
-
#: config/vax/netbsd-elf.h:42
msgid "The -shared option is not currently supported for VAX ELF."
msgstr ""
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "ειδικά αÏχεία μπλοκ δεν υποστηÏίζονται"
-
#: config/vax/vax.h:50 config/vax/vax.h:51
#, fuzzy
msgid "profiling not supported with -mg\n"
@@ -22138,11 +22249,15 @@ msgstr ""
msgid "the m210 does not have little endian support"
msgstr ""
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr ""
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr ""
@@ -22160,15 +22275,75 @@ msgstr ""
msgid "does not support multilib"
msgstr "αÏχεία fifo δεν υποστηÏίζονται"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr ""
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr ""
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
#, fuzzy
+#~ msgid "too many arguments to function %<va_start%>"
+#~ msgstr "πάÏα πολλά οÏίσματα"
+
+#, fuzzy
+#~ msgid "nested static declaration of %qD"
+#~ msgstr "Μη έγκυÏη επιλογή `%s'"
+
+#, fuzzy
+#~ msgid "elements of array %qD have incomplete type"
+#~ msgstr "μη πλήÏης εγγÏαφή"
+
+#, fuzzy
+#~ msgid "unknown set constructor type"
+#~ msgstr "Δεν είναι δυνατόν να βÏεθεί ο Ï„Ïπος του επεξεÏγαστή."
+
+#, fuzzy
+#~ msgid "unexpected address expression"
+#~ msgstr "Μη έγκυÏη Ï€ÏοποÏευόμενη κανονική έκφÏαση"
+
+#, fuzzy
+#~ msgid "Bad insn to frv_print_operand, 'C' modifier:"
+#~ msgstr "Μη έγκυÏη επιλογή `%s'"
+
+#, fuzzy
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "Μη έγκυÏη επιλογή `%s'"
+
+#, fuzzy
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
+
+#, fuzzy
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Η παÏάμετÏος κινητής υποδιαστολής δεν είναι έγκυÏη: %s"
+
+#, fuzzy
+#~ msgid "initializer specified for non-member function %qD"
+#~ msgstr "Δεν ήταν δυνατή η εÏÏεση ετικέττας για μεταγωγή στο `%s'"
+
+#, fuzzy
+#~ msgid "invalid initializer for virtual method %qD"
+#~ msgstr "Μη έγκυÏη ακέÏαια παÏάμετÏος `%s'"
+
+#, fuzzy
+#~ msgid "expected type-name"
+#~ msgstr "%s: αναμενόταν αÏιθμητική τιμή."
+
+#, fuzzy
+#~ msgid "too many template parameter lists in declaration of %qT"
+#~ msgstr "ΠÏοειδοποίηση: Î Î¿Î»Ï Î»Î¯Î³Î± οÏίσματα στο εσωδομημένο `%s'"
+
+#, fuzzy
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Αποτυχία δέσμευσης πόÏων συστήματος"
+
+#, fuzzy
#~ msgid "unknown C standard `%s'"
#~ msgstr "άγνωστο σετ `%s'"
@@ -22477,10 +22652,6 @@ msgstr ""
#~ msgstr "%%%c: κατευθυντήÏιος γÏαμμή μη έγκυÏη."
#, fuzzy
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "ο χάÏτης χαÏακτήÏων `%s' οÏίστηκε ήδη"
-
-#, fuzzy
#~ msgid "cannot find source %s"
#~ msgstr "αδυναμία ανοίγματος υποδοχής: %s"
@@ -22731,10 +22902,6 @@ msgstr ""
#~ msgstr "%s: η υποστήÏιξη εκσφαλμάτωσης δεν έχει συμπεÏιληφθεί στη μεταγλώττιση.\n"
#, fuzzy
-#~ msgid "bad register extension code"
-#~ msgstr "Δεν είναι δυνατή η καταχώÏηση της υπηÏεσίας"
-
-#, fuzzy
#~ msgid "invalid offset in ybase addressing"
#~ msgstr "μη έγκυÏος χÏόνος έναÏξης"
@@ -23141,10 +23308,6 @@ msgstr ""
#~ msgstr "μη έγκυÏος χÏήστης"
#, fuzzy
-#~ msgid "bad string length in %s"
-#~ msgstr "ελάχιστο μέγεθος αλφαÏιθμητικοÏ"
-
-#, fuzzy
#~ msgid "this is the first ELSE label"
#~ msgstr "αυτός είναι ο Ï€Ïώτος οÏισμός"
@@ -23472,10 +23635,6 @@ msgstr ""
#~ msgstr "%s: αναμενόταν αÏιθμητική τιμή."
#, fuzzy
-#~ msgid "syntax error in parameter name list"
-#~ msgstr "συντακτικό σφάλμα στον οÏισμό κλάσης χαÏακτήÏων"
-
-#, fuzzy
#~ msgid "syntax error while parsing signal definition statement"
#~ msgstr "συντακτικό σφάλμα στο οÏισμό του %s: %s"
diff --git a/gcc/po/es.po b/gcc/po/es.po
index d343be11a50..5e83d05dd84 100644
--- a/gcc/po/es.po
+++ b/gcc/po/es.po
@@ -1,13 +1,13 @@
-# Mensajes en español para gcc-3.4.3
-# Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004.
+# Mensajes en español para gcc-4.0-b20050226.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004, 2005.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.4.3\n"
+"Project-Id-Version: gcc 4.0-b20050226\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
-"PO-Revision-Date: 2004-11-05 09:24-0600\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
+"PO-Revision-Date: 2005-03-06 13:22-0600\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"
@@ -15,617 +15,571 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: attribs.c:175
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute directive ignored"
-msgstr "se ignora la directiva de atributo `%s'"
+msgstr "se ignora la directiva de atributo %qs"
#: attribs.c:183
-#, fuzzy, c-format
+#, c-format
msgid "wrong number of arguments specified for %qs attribute"
-msgstr "se especificó el número equivocado de argumentos para el atributo `%s'"
+msgstr "se especificó el número equivocado de argumentos para el atributo %qs"
#: attribs.c:200
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute does not apply to types"
-msgstr "el atributo `%s' no se aplica a tipos"
+msgstr "el atributo %qs no se aplica a tipos"
#: attribs.c:246
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute only applies to function types"
-msgstr "el atributo `%s' se aplica solamente a tipos de funciones"
+msgstr "el atributo %qs se aplica solamente a tipos de funciones"
#: builtins.c:341
msgid "offset outside bounds of constant string"
msgstr "el desplazamiento fuera de los límites de la constante de cadena"
-#: builtins.c:923
-#, fuzzy
+#: builtins.c:928
msgid "second argument to %<__builtin_prefetch%> must be a constant"
-msgstr "el segundo argumento de `__builtin_prefetch' debe ser una constante"
+msgstr "el segundo argumento de %<__builtin_prefetch%> debe ser una constante"
-#: builtins.c:930
-#, fuzzy
+#: builtins.c:935
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
-msgstr "el segundo argumento para __builtin_prefetch es inválido; se usará cero"
+msgstr "el segundo argumento para %<__builtin_prefetch%> es inválido; se usará cero"
-#: builtins.c:938
-#, fuzzy
+#: builtins.c:943
msgid "third argument to %<__builtin_prefetch%> must be a constant"
-msgstr "el tercer argumento de `__builtin_prefetch' debe ser una constante"
+msgstr "el tercer argumento de %<__builtin_prefetch%> debe ser una constante"
-#: builtins.c:945
-#, fuzzy
+#: builtins.c:950
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
-msgstr "el tercer argumento para __builtin_prefetch es inválido; se usará cero"
+msgstr "el tercer argumento para %<__builtin_prefetch%> es inválido; se usará cero"
-#: builtins.c:3727
-#, fuzzy
+#: builtins.c:3806
msgid "argument of %<__builtin_args_info%> must be constant"
-msgstr "el argumento de `__builtin_args_info' debe ser constante"
+msgstr "el argumento de %<__builtin_args_info%> debe ser una constante"
-#: builtins.c:3733
-#, fuzzy
+#: builtins.c:3812
msgid "argument of %<__builtin_args_info%> out of range"
-msgstr "el argumento de `__builtin_args_info' está fuera de rango"
+msgstr "el argumento de %<__builtin_args_info%> está fuera de rango"
-#: builtins.c:3739
-#, fuzzy
+#: builtins.c:3818
msgid "missing argument in %<__builtin_args_info%>"
-msgstr "falta un argumento en `__builtin_args_info'"
+msgstr "falta un argumento en %<__builtin_args_info%>"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "se usó `va_start' en una función con argumentos fijos"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "se llamó a `__builtin_next_arg' sin un argumento"
-
-#: builtins.c:3865
-#, fuzzy
+#: builtins.c:3914 gimplify.c:1765
msgid "too few arguments to function %<va_start%>"
-msgstr "demasiados argumentos para la función `va_start'"
-
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "demasiados argumentos para la función `va_start'"
+msgstr "faltan argumentos para la función %<va_start%>"
-#: builtins.c:4017
-#, fuzzy
+#: builtins.c:4077
msgid "first argument to %<va_arg%> not of type %<va_list%>"
-msgstr "el primer argumento para `va_arg' no es del tipo `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:4031
-#, fuzzy
+#: builtins.c:4091
msgid "%qT is promoted to %qT when passed through %<...%>"
-msgstr "`%s' se promueve a `%s' cuando pasa a través de `...'"
+msgstr "%qT se promueve a %qT cuando pasa a través de %<...%>"
-#: builtins.c:4036
-#, fuzzy
+#: builtins.c:4096
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
-msgstr "(así que debe pasar `%s' y no `%s' a `va_arg')"
+msgstr "(así que debe pasar %qT y no %qT a %<va_arg%>)"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr "si se alcanza este código, el programa abortará"
-#: builtins.c:4160
-#, fuzzy
+#: builtins.c:4220
msgid "invalid argument to %<__builtin_frame_address%>"
-msgstr "argumento inválido para `__builtin_frame_address'"
+msgstr "argumento inválido para %<__builtin_frame_address%>"
-#: builtins.c:4162
-#, fuzzy
+#: builtins.c:4222
msgid "invalid argument to %<__builtin_return_address%>"
-msgstr "argumento inválido para `__builtin_return_address'"
+msgstr "argumento inválido para %<__builtin_return_address%>"
-#: builtins.c:4176
-#, fuzzy
+#: builtins.c:4235
msgid "unsupported argument to %<__builtin_frame_address%>"
-msgstr "argumento sin soporte para `__builtin_frame_address'"
+msgstr "argumento no soportado para %<__builtin_frame_address%>"
-#: builtins.c:4178
-#, fuzzy
+#: builtins.c:4237
msgid "unsupported argument to %<__builtin_return_address%>"
-msgstr "argumento no soportado para `__builtin_return_address'"
+msgstr "argumento no soportado para %<__builtin_return_address%>"
-#: builtins.c:4281
-#, fuzzy
+#: builtins.c:4340
msgid "second argument to %<__builtin_expect%> must be a constant"
-msgstr "el segundo argumento de `__builtin_expect' debe ser una constante"
+msgstr "el segundo argumento de %<__builtin_expect%> debe ser una constante"
-#: builtins.c:5488
-#, fuzzy
+#: builtins.c:5590
msgid "%<__builtin_longjmp%> second argument must be 1"
-msgstr "el segundo argumento de __builtin_longjump debe ser 1"
+msgstr "el segundo argumento de %<__builtin_longjump%> debe ser 1"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
-msgstr "el formato objetivo no tiene soporte para infinito"
+msgstr "el formato objetivo no soporta infinito"
-#: builtins.c:7518 builtins.c:7613
-#, fuzzy, c-format
+#: builtins.c:7699 builtins.c:7794
+#, c-format
msgid "too few arguments to function %qs"
-msgstr "muy pocos argumentos para la función `%s'"
+msgstr "muy pocos argumentos para la función %qs"
-#: builtins.c:7524 builtins.c:7619
-#, fuzzy, c-format
+#: builtins.c:7705 builtins.c:7800
+#, c-format
msgid "too many arguments to function %qs"
-msgstr "demasiados argumentos para la función `%s'"
+msgstr "demasiados argumentos para la función %qs"
-#: builtins.c:7530 builtins.c:7644
-#, fuzzy, c-format
+#: builtins.c:7711 builtins.c:7825
+#, c-format
msgid "non-floating-point argument to function %qs"
-msgstr "argumentos que no son de coma flotante para la función `%s'"
+msgstr "argumentos que no son de coma flotante para la función %qs"
-#: c-common.c:831
-#, fuzzy
+#: builtins.c:8911
+msgid "%<va_start%> used in function with fixed args"
+msgstr "se usó %<va_start%> en una función con argumentos fijos"
+
+#. 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:8918
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "se llamó a %<__builtin_next_arg%> sin un argumento"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr "se usó %<va_start%> con demasiados argumentos"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "el segundo parámetro de %<va_start%> no es el último argumento nombrado"
+
+#: c-common.c:826
msgid "%qD is not defined outside of function scope"
-msgstr "%J'%D' no está definido fuera del ámbito de la función"
+msgstr "%qD no está definido fuera del ámbito de la función"
-#: c-common.c:852
-#, fuzzy, c-format
+#: c-common.c:847
+#, c-format
msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
-msgstr "la longitud de la cadena `%d' es mayor que la longitud `%d', la máxima que los compiladores ISO C%d deben soportar"
+msgstr "la longitud de la cadena %qd es mayor que la longitud %qd, la máxima que los compiladores ISO C%d deben soportar"
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "desbordamiento en la expresión constante"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "desbordamiento entero en la expresión"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "desbordamiento de coma flotante en la expresión"
-#: c-common.c:933
+#: c-common.c:923
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:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "entero grande truncado implícitamente al tipo unsigned"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "entero negativo truncado implícitamente al tipo unsigned"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "desbordamiento en la conversión implícita de constante"
-#: c-common.c:1151
-#, fuzzy, c-format
+#: c-common.c:1141
+#, c-format
msgid "operation on %qs may be undefined"
-msgstr "la operación sobre `%s' puede no estar definida"
+msgstr "la operación sobre %qs puede no estar definida"
-#: c-common.c:1437
+#: c-common.c:1425
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:1480
-#, fuzzy
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
-msgstr "la constante entera es más grande que el valor máximo para su tipo"
+msgstr "el valor de la etiqueta `case' es menor que el valor mínimo para el tipo"
-#: c-common.c:1488
-#, fuzzy
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
-msgstr "la constante entera es más grande que el valor máximo para su tipo"
+msgstr "el valor de la etiqueta `case' excede el valor máximo para el tipo"
-#: c-common.c:1496
-#, fuzzy
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
-msgstr "la constante entera es más grande que el valor máximo para su tipo"
+msgstr "el valor inferior de la etiqueta de rango `case' es menor que el valor mínimo para el tipo"
-#: c-common.c:1505
-#, fuzzy
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
-msgstr "la constante entera es más grande que el valor máximo para su tipo"
+msgstr "el valor superior de la etiqueta de rango `case' excede el valor máximo para el tipo"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "expresión de valor verdadero inválida"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "operadores inválidos para el binario %s"
-#: c-common.c:2112
+#: c-common.c:2116
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:2114
+#: c-common.c:2118
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:2184
+#: c-common.c:2188
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:2193
+#: c-common.c:2197
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:2235
-#, fuzzy
+#: c-common.c:2239
msgid "pointer of type %<void *%> used in arithmetic"
-msgstr "se usó un puntero de tipo `void *' en la aritmética"
+msgstr "se usó un puntero de tipo %<void *%> en la aritmética"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "se usó un puntero a una función en la aritmética"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "se usó un puntero a una función miembro en la aritmética"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
-#, fuzzy
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
-msgstr "la dirección de `%D', siempre se evaluará como `true'"
+msgstr "la dirección de %qD, siempre se evaluará como %<true%>"
-#: c-common.c:2451
+#: c-common.c:2467
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:2500 c-common.c:2540
-#, fuzzy
+#: c-common.c:2535 c-common.c:2575
msgid "invalid use of %<restrict%>"
-msgstr "uso inválido de `restrict'"
+msgstr "uso inválido de %<restrict%>"
-#: c-common.c:2756
-#, fuzzy
+#: c-common.c:2791
msgid "invalid application of %<sizeof%> to a function type"
-msgstr "aplicación inválida de `sizeof' a un tipo de función"
+msgstr "aplicación inválida de %<sizeof%> a un tipo de función"
-#: c-common.c:2766
-#, fuzzy, c-format
+#: c-common.c:2801
+#, c-format
msgid "invalid application of %qs to a void type"
-msgstr "aplicación inválida de `%s' a un tipo void"
+msgstr "aplicación inválida de %qs a un tipo void"
-#: c-common.c:2772
-#, fuzzy
+#: c-common.c:2807
msgid "invalid application of %qs to incomplete type %qT "
-msgstr "aplicación inválida de `%s' a un tipo de dato incompleto `%T' "
+msgstr "aplicación inválida de %qs a un tipo de dato incompleto %qT "
-#: c-common.c:2813
-#, fuzzy
+#: c-common.c:2848
msgid "%<__alignof%> applied to a bit-field"
-msgstr "`__alignof' applicado a un campo de bits"
+msgstr "%<__alignof%> applicado a un campo de bits"
-#: c-common.c:3258
-#, fuzzy, c-format
+#: c-common.c:3315
+#, c-format
msgid "cannot disable built-in function %qs"
-msgstr "no se puede desactivar la función interna `%s'"
+msgstr "no se puede desactivar la función interna %qs"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "no se permite usar punteros como valores case"
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr "las expresiones de rango en las declaraciones switch no son estándard"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "se especificó un rango vacío"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "valor case duplicado (o con solapamiento de rangos)"
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr "%Jesta es la primera entrada que solapa ese valor"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "valor de case duplicado"
-#: c-common.c:3542
+#: c-common.c:3599
msgid "%Jpreviously used here"
msgstr "%Jse usó previamente aquí"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "múltiples etiquetas por defecto en un solo switch"
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr "%Jesta es la primera etiqueta por defecto"
-#: c-common.c:3596
-#, fuzzy
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
-msgstr "el valor de case `%ld' no es un tipo enumerado"
+msgstr "%Jel valor de case %qs no es un tipo enumerado"
-#: c-common.c:3599
-#, fuzzy
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
-msgstr "el valor de case `%ld' no es un tipo enumerado"
+msgstr "%Jel valor de case %qs no es un tipo enumerado %qT"
-#: c-common.c:3666
-#, fuzzy
+#: c-common.c:3723
msgid "%Hswitch missing default case"
-msgstr "falta el case por defecto para un switch"
+msgstr "%Hfalta el case por defecto para un switch"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
-#, fuzzy
+#: c-common.c:3757
msgid "%Henumeration value %qE not handled in switch"
-msgstr "el valor de enumeración `%s' no se maneja en un switch"
+msgstr "%Hel valor de enumeración %qE no se maneja en un switch"
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr "tomar la dirección de una etiqueta no es estándard"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
-#, fuzzy, c-format
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
+#, c-format
msgid "%qs attribute ignored"
-msgstr "se ignora el atributo `%s'"
+msgstr "se ignora el atributo %qs"
-#: c-common.c:4243
-#, fuzzy, c-format
+#: c-common.c:4300
+#, c-format
msgid "unknown machine mode %qs"
-msgstr "se desconoce el modo de máquina `%s'"
+msgstr "se desconoce el modo de máquina %qs"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
-msgstr ""
+msgstr "es obsoleto especificar tipos vectoriales con __attribute__ ((mode))"
-#: c-common.c:4265
-#, fuzzy
+#: c-common.c:4322
msgid "use __attribute__ ((vector_size)) instead"
-msgstr "se ignora la directiva de atributo `%s'"
+msgstr "utilice __attribute__ ((tamaño_vector)) en su lugar"
-#: c-common.c:4274
-#, fuzzy, c-format
+#: c-common.c:4331
+#, c-format
msgid "unable to emulate %qs"
-msgstr "no se puede emular '%s'"
+msgstr "no se puede emular %qs"
-#: c-common.c:4284
-#, fuzzy, c-format
+#: c-common.c:4341
+#, c-format
msgid "invalid pointer mode %qs"
-msgstr "modo de puntero `%s' inválido"
+msgstr "modo de puntero %qs inválido"
-#: c-common.c:4299
-#, fuzzy, c-format
+#: c-common.c:4356
+#, c-format
msgid "no data type for mode %qs"
-msgstr "no hay tipo de datos para el modo `%s'"
+msgstr "no hay tipo de datos para el modo %qs"
-#: c-common.c:4309
-#, fuzzy, c-format
+#: c-common.c:4366
+#, c-format
msgid "cannot use mode %qs for enumeral types"
-msgstr "no se puede convertir a un tipo puntero"
+msgstr "no se puede usar el modo %qs para tipos de enumeración"
-#: c-common.c:4322
-#, fuzzy, c-format
+#: c-common.c:4390
+#, c-format
msgid "mode %qs applied to inappropriate type"
-msgstr "se aplicó el modo `%s' a un tipo inapropiado"
+msgstr "se aplicó el modo %qs a un tipo inapropiado"
-#: c-common.c:4355
+#: c-common.c:4421
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "%Jno se puede especificar el atributo de sección para las variables locales"
-#: c-common.c:4366
-#, fuzzy
+#: c-common.c:4432
msgid "%Jsection of %qD conflicts with previous declaration"
-msgstr "%Jla sección de '%D' causa conflictos con la declaración previa"
+msgstr "%Jla sección de %qD causa conflictos con la declaración previa"
-#: c-common.c:4375
-#, fuzzy
+#: c-common.c:4441
msgid "%Jsection attribute not allowed for %qD"
-msgstr "%Jno se permite un atributo de sección para '%D'"
+msgstr "%Jno se permite un atributo de sección para %qD"
-#: c-common.c:4381
+#: c-common.c:4447
msgid "%Jsection attributes are not supported for this target"
msgstr "%Jno se soportan atributos de sección en este objetivo"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "la alineación solicitada no es una constante"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "la alineación solicitada no es una potencia de 2"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "la alineación solicitada es demasiado grande"
-#: c-common.c:4455
-#, fuzzy
+#: c-common.c:4521
msgid "%Jalignment may not be specified for %qD"
-msgstr "%Jla alineación puede no estar especificada para '%D'"
+msgstr "%Jla alineación puede no estar especificada para %qD"
-#: c-common.c:4493
-#, fuzzy
+#: c-common.c:4559
msgid "%J%qD defined both normally and as an alias"
-msgstr "%J'%D' definido normalmente y como un alias"
+msgstr "%J%qD definido normalmente y como un alias"
-#: c-common.c:4509
-#, fuzzy
+#: c-common.c:4575
msgid "alias argument not a string"
msgstr "el argumento de alias no es una cadena"
-#: c-common.c:4551
-#, fuzzy, c-format
+#: c-common.c:4617
+#, c-format
msgid "%qs attribute ignored on non-class types"
-msgstr "se ignora el atributo `%s' para `%s'"
+msgstr "se ignora el atributo %qs en tipos que no son clases"
-#: c-common.c:4564
-#, fuzzy
+#: c-common.c:4630
msgid "visibility argument not a string"
msgstr "el argumento de visibilidad no es una cadena"
-#: c-common.c:4585
-#, fuzzy
+#: c-common.c:4642
+#, c-format
+msgid "%qE attribute ignored on types"
+msgstr "se ignora el atributo %qE en tipos"
+
+#: c-common.c:4657
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
-msgstr "el argumento de visibilidad debe ser \"default\", \"hidden\", \"protected\" o \"internal\""
+msgstr "el argumento de visibilidad debe ser uno de \"default\", \"hidden\", \"protected\" o \"internal\""
-#: c-common.c:4654
-#, fuzzy
+#: c-common.c:4726
msgid "tls_model argument not a string"
msgstr "el argumento de tls_model no es una cadena"
-#: c-common.c:4663
-#, fuzzy
+#: c-common.c:4735
msgid "tls_model argument 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:4685 c-common.c:4731
-#, fuzzy
+#: c-common.c:4757 c-common.c:4803
msgid "%J%qE attribute applies only to functions"
-msgstr "el atributo %J'%E' se aplica solamente a funciones"
+msgstr "el atributo %J%qE se aplica solamente a funciones"
-#: c-common.c:4690 c-common.c:4736
-#, fuzzy
+#: c-common.c:4762 c-common.c:4808
msgid "%Jcan%'t set %qE attribute after definition"
-msgstr "%Jno se puede establecer el atributo '%E' después de la definición"
+msgstr "%Jno se puede establecer el atributo %qE después de la definición"
-#: c-common.c:4812
-#, fuzzy, c-format
+#: c-common.c:4884
+#, c-format
msgid "%qs attribute ignored for %qs"
-msgstr "se ignora el atributo `%s' para `%s'"
+msgstr "se ignora el atributo %qs para %qs"
-#: c-common.c:4873
-#, fuzzy, c-format
+#: c-common.c:4945
+#, c-format
msgid "invalid vector type for attribute %qs"
-msgstr "tipo vector inválido para el atributo `%s'"
+msgstr "tipo vector inválido para el atributo %qs"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
-msgstr ""
+msgstr "el número de componentes del vector no es una potencia de dos"
-#: c-common.c:4910
+#: c-common.c:4982
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:4925
-#, fuzzy, c-format
+#: c-common.c:4997
+#, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
-msgstr "un argumento que no es nulo tiene un número inválido de operandos (arg %lu)"
+msgstr "un argumento que no es nulo tiene un número inválido de operandos (argumento %lu)"
-#: c-common.c:4944
-#, fuzzy, c-format
+#: c-common.c:5016
+#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
-msgstr "un argumento que no es nulo con un número de operandos fuera de rango (arg %lu, operando %lu)"
+msgstr "un argumento que no es nulo con un número de operandos fuera de rango (argumento %lu, operando %lu)"
-#: c-common.c:4952
-#, fuzzy, c-format
+#: c-common.c:5024
+#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
-msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (arg %lu, operando %lu)"
+msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)"
-#: c-common.c:5007 c-common.c:5044
-#, fuzzy
+#: c-common.c:5079 c-common.c:5116
msgid "missing sentinel in function call"
-msgstr "Prohibir la llamada a funciones relativas al PC"
+msgstr "falta un centinela en la llamada a la función"
-#: c-common.c:5030
-#, fuzzy
+#: c-common.c:5102
msgid "not enough arguments to fit a sentinel"
-msgstr "muy pocos argumentos para la función"
+msgstr "no hay suficientes argumentos para ajustar un centinela"
-#: c-common.c:5086
-#, fuzzy, c-format
+#: c-common.c:5158
+#, c-format
msgid "null argument where non-null required (argument %lu)"
-msgstr "un argumento nulo donde se requiere uno que no sea nulo (arg %lu)"
+msgstr "un argumento nulo donde se requiere uno que no sea nulo (argumento %lu)"
-#: c-common.c:5157
-#, fuzzy
+#: c-common.c:5229
msgid "cleanup argument not an identifier"
msgstr "el argumento de limpieza no es un identificador"
-#: c-common.c:5164
-#, fuzzy
+#: c-common.c:5236
msgid "cleanup argument not a function"
msgstr "el argumento de limpieza no es una función"
-#: c-common.c:5202
-#, fuzzy, c-format
+#: c-common.c:5274
+#, c-format
msgid "%qs attribute requires prototypes with named arguments"
-msgstr "el atributo `%s' requiere una constante entera como argumento"
+msgstr "el atributo %qs requiere prototipos con argumentos nombrados"
-#: c-common.c:5213
-#, fuzzy, c-format
+#: c-common.c:5285
+#, c-format
msgid "%qs attribute only applies to variadic functions"
-msgstr "el atributo `%s' se aplica solamente a funciones"
+msgstr "el atributo %qs se aplica solamente a funciones variadic"
-#: c-common.c:5226
-#, fuzzy
+#: c-common.c:5298
msgid "requested position is not an integer constant"
-msgstr "la init_priority solicitada no es una constante entera"
+msgstr "la posición solicitada no es una constante entera"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
-msgstr ""
+msgstr "la posición solicitada es menor a cero"
-#: c-common.c:5539
-#, fuzzy
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
-msgstr "%Hse ignora el valor de devolución de `%D', se declaró con el atributo warn_unused_result"
+msgstr "%Hse ignora el valor de devolución de %qD, se declaró con el atributo warn_unused_result"
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr "%Hse ignora el valor de devolución de la función declarada con el atributo warn_unused_result"
-#: c-common.c:5582
-#, fuzzy, c-format
+#: c-common.c:5675
+#, c-format
msgid "attempt to take address of bit-field structure member %qs"
-msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%s'"
+msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits %qs"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "l-valor inválido en la asignación"
-#: c-common.c:5637
+#: c-common.c:5730
msgid "invalid lvalue in increment"
msgstr "l-valor inválido en incremento"
-#: c-common.c:5640
+#: c-common.c:5733
msgid "invalid lvalue in decrement"
msgstr "l-valor inválido en decremento"
-#: c-common.c:5643
-#, fuzzy
+#: c-common.c:5736
msgid "invalid lvalue in unary %<&%>"
-msgstr "l-valor inválido en `&' unario"
+msgstr "l-valor inválido en %<&%> unario"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "l-valor inválido en la declaración asm"
@@ -634,1251 +588,1084 @@ msgstr "l-valor inválido en la declaración asm"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr "valor void no ignorado como debería de ser"
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "se solicitó conversión a tipo no escalar"
-#: c-decl.c:524
-#, fuzzy
+#: c-decl.c:530
msgid "%Jarray %qD assumed to have one element"
-msgstr "%Jse asume que la matriz '%D' tiene un elemento"
+msgstr "%Jse asume que la matriz %qD tiene un elemento"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
-msgstr ""
+msgstr "GCC tiene soporte sólo para %u ámbitos anidados"
-#: c-decl.c:721
-#, fuzzy
+#: c-decl.c:727
msgid "%Jlabel %qD used but not defined"
-msgstr "%Jse usa la etiqueta `%D' pero no está definida"
+msgstr "%Jse usa la etiqueta %qD pero no está definida"
-#: c-decl.c:727
-#, fuzzy
+#: c-decl.c:733
msgid "%Jlabel %qD defined but not used"
-msgstr "%Jla etiqueta '%D' está definida pero no se usa"
+msgstr "%Jla etiqueta %qD está definida pero no se usa"
-#: c-decl.c:729
-#, fuzzy
+#: c-decl.c:735
msgid "%Jlabel %qD declared but not defined"
-msgstr "%Jla etiqueta `%D' está declarada pero no está definida"
+msgstr "%Jla etiqueta %qD está declarada pero no está definida"
+
+#: c-decl.c:770
+msgid "%Jnested function %qD declared but never defined"
+msgstr "%Jla función anidada %qD está declarada pero nunca se definió"
-#: c-decl.c:772 cp/decl.c:575
-#, fuzzy
+#: c-decl.c:784 cp/decl.c:568
msgid "%Junused variable %qD"
-msgstr "%Jvariable '%D' sin uso"
+msgstr "%Jvariable %qD sin uso"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
-msgstr ""
+msgstr "%Jel tipo de la matriz %qD se completó de forma incompatible con la inicialización implícita"
-#: c-decl.c:1008
-#, fuzzy
+#: c-decl.c:1022
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:1015
-#, fuzzy
+#: c-decl.c:1029
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 defecto no puede coincidir con una declaración de nombre de lista de parámetros vacía."
-#: c-decl.c:1051
-#, fuzzy
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
-msgstr "%Jel prototipo para '%D' declara más argumentos que la definición anterior de estilo antiguo"
+msgstr "%Jel prototipo para %qD declara más argumentos que la definición anterior de estilo antiguo"
-#: c-decl.c:1057
-#, fuzzy
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
-msgstr "%Jel prototipo para '%D' declara menos argumentos que la definición anterior de estilo antiguo"
+msgstr "%Jel prototipo para %qD declara menos argumentos que la definición anterior de estilo antiguo"
-#: c-decl.c:1066
-#, fuzzy
+#: c-decl.c:1080
msgid "%Jprototype for %qD declares argument %d with incompatible type"
-msgstr "%Jel prototipo para '%D' declara el argumento %d con un tipo incompatible"
+msgstr "%Jel prototipo para %qD declara el argumento %d con un tipo incompatible"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
-#, fuzzy
+#: c-decl.c:1093
msgid "%Jprototype for %qD follows non-prototype definition"
-msgstr "%Jel prototipo para '%D' a continuación de una definición que no es prototipo"
+msgstr "%Jel prototipo para %qD a continuación de una definición que no es prototipo"
-#: c-decl.c:1094
-#, fuzzy
+#: c-decl.c:1108
msgid "%Jprevious definition of %qD was here"
-msgstr "%Jla definición previa de '%D' estaba aquí"
+msgstr "%Jla definición previa de %qD estaba aquí"
-#: c-decl.c:1096
-#, fuzzy
+#: c-decl.c:1110
msgid "%Jprevious implicit declaration of %qD was here"
-msgstr "%Jla declaración implícita previa de '%D' estaba aquí"
+msgstr "%Jla declaración implícita previa de %qD estaba aquí"
-#: c-decl.c:1098
-#, fuzzy
+#: c-decl.c:1112
msgid "%Jprevious declaration of %qD was here"
-msgstr "%Jla declaración previa de '%D' estaba aquí"
+msgstr "%Jla declaración previa de %qD estaba aquí"
-#: c-decl.c:1134
-#, fuzzy
+#: c-decl.c:1149
msgid "%J%qD redeclared as different kind of symbol"
-msgstr "%J'%D' redeclarado como un tipo diferente de símbolo"
+msgstr "%J%qD redeclarado como un tipo diferente de símbolo"
-#: c-decl.c:1139
-#, fuzzy
+#: c-decl.c:1154
msgid "%Jbuilt-in function %qD declared as non-function"
-msgstr "%Jla función interna '%D' no es declarada como función"
+msgstr "%Jla función interna %qD no es declarada como función"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
-#, fuzzy
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
msgid "%Jdeclaration of %qD shadows a built-in function"
-msgstr "%Jla declaración de '%D' oscurece una declaración global"
+msgstr "%Jla declaración de %qD oscurece una función interna"
-#: c-decl.c:1151
-#, fuzzy
+#: c-decl.c:1166
msgid "%Jredeclaration of enumerator %qD"
-msgstr "redeclaración de `enum %s'"
+msgstr "%Jredeclaración del enumerador %qD"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
-#, fuzzy
+#: c-decl.c:1187
msgid "%Jconflicting types for built-in function %qD"
-msgstr "%Jtipos en conflicto para la función interna '%D'"
+msgstr "%Jtipos en conflicto para la función interna %qD"
-#: c-decl.c:1196 c-decl.c:1207
-#, fuzzy
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
msgid "%Jconflicting types for %qD"
-msgstr "%Jtipos en conflicto para '%D'"
+msgstr "%Jtipos en conflicto para %qD"
-#: c-decl.c:1205
-#, fuzzy
+#: c-decl.c:1232
msgid "%J conflicting type qualifiers for %qD"
-msgstr "%Jtipos en conflicto para '%D'"
+msgstr "%Jcalificadores de tipos en conflicto para %qD"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
-#, fuzzy
+#: c-decl.c:1249
msgid "%Jredefinition of typedef %qD"
-msgstr "%Jredefinición de la definición de tipo '%D'"
+msgstr "%Jredefinición de la definición de tipo %qD"
-#: c-decl.c:1261 c-decl.c:1339
-#, fuzzy
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
msgid "%Jredefinition of %qD"
-msgstr "%Jredefinición de '%D'"
+msgstr "%Jredefinición de %qD"
-#: c-decl.c:1296 c-decl.c:1377
-#, fuzzy
+#: c-decl.c:1353 c-decl.c:1434
msgid "%Jstatic declaration of %qD follows non-static declaration"
-msgstr "%Jla declaración static de '%D' a continuación de una no static"
+msgstr "%Jla declaración static de %qD a continuación de una no static"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
-#, fuzzy
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
msgid "%Jnon-static declaration of %qD follows static declaration"
-msgstr "%Jla declaración no static de '%D' a continuación de una static"
+msgstr "%Jla declaración no static de %qD a continuación de una static"
-#: c-decl.c:1326
-#, fuzzy
+#: c-decl.c:1383
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
-msgstr "%Jla declaración thread-local de '%D' a continuación de una que no es thread-local"
+msgstr "%Jla declaración thread-local de %qD a continuación de una que no es thread-local"
-#: c-decl.c:1329
-#, fuzzy
+#: c-decl.c:1386
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
-msgstr "%Jla declaración que no es thread-local de '%D' a continuación de una thread-local"
+msgstr "%Jla declaración que no es thread-local de %qD a continuación de una thread-local"
-#: c-decl.c:1359
-#, fuzzy
+#: c-decl.c:1416
msgid "%Jextern declaration of %qD follows declaration with no linkage"
-msgstr "%Jla declaración extern de '%D' a continuación de una declaración sin enlazado"
+msgstr "%Jla declaración extern de %qD a continuación de una declaración sin enlazado"
-#: c-decl.c:1395
-#, fuzzy
+#: c-decl.c:1452
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
-msgstr "%Jla declaración de '%D' sin enlazado a continuación de una declaración extern"
+msgstr "%Jla declaración de %qD sin enlazado a continuación de una declaración extern"
-#: c-decl.c:1401
-#, fuzzy
+#: c-decl.c:1458
msgid "%Jredeclaration of %qD with no linkage"
-msgstr "%Jdeclaración previa de '%D' sin enlazado"
+msgstr "%Jdeclaración previa de %qD sin enlazado"
-#: c-decl.c:1415
-#, fuzzy
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
-msgstr "%Jredeclaración de '%D' con visibilidad diferente (se preserva la visibilidad anterior)"
+msgstr "%Jredeclaración de %qD con visibilidad diferente (se preserva la visibilidad anterior)"
-#: c-decl.c:1426
-#, fuzzy
+#: c-decl.c:1483
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
-msgstr "%Jla declaración inline de '%D' a continuación de una declaración con atributo noinline"
+msgstr "%Jla declaración inline de %qD a continuación de una declaración con atributo noinline"
-#: c-decl.c:1433
-#, fuzzy
+#: c-decl.c:1490
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
-msgstr "%Jla declaración de '%D' con atributo noinline a continuación de la declaració inline "
+msgstr "%Jla declaración de %qD con atributo noinline a continuación de la declaración inline "
-#: c-decl.c:1448
-#, fuzzy
+#: c-decl.c:1505
msgid "%J%qD declared inline after being called"
-msgstr "%J'%D' declarado inline antes de ser llamado"
+msgstr "%J%qD declarado inline antes de ser llamado"
-#: c-decl.c:1454
-#, fuzzy
+#: c-decl.c:1511
msgid "%J%qD declared inline after its definition"
-msgstr "%J'%D' declarado inline después de su definición"
+msgstr "%J%qD declarado inline después de su definición"
-#: c-decl.c:1474
-#, fuzzy
+#: c-decl.c:1531
msgid "%Jredefinition of parameter %qD"
-msgstr "%Jredefinición del parámetro '%D'"
+msgstr "%Jredefinición del parámetro %qD"
-#: c-decl.c:1498
-#, fuzzy
+#: c-decl.c:1555
msgid "%Jredundant redeclaration of %qD"
-msgstr "%Jdeclaración redundante de '%D'"
+msgstr "%Jdeclaración redundante de %qD"
+
+#: c-decl.c:1866
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "%Jla declaración de %qD oscurece a una declaración previa que no es variable"
-#: c-decl.c:1808
-#, fuzzy
+#: c-decl.c:1871
msgid "%Jdeclaration of %qD shadows a parameter"
-msgstr "%Jla declaración de '%D' oscurece un parámetro"
+msgstr "%Jla declaración de %qD oscurece un parámetro"
-#: c-decl.c:1811
-#, fuzzy
+#: c-decl.c:1874
msgid "%Jdeclaration of %qD shadows a global declaration"
-msgstr "%Jla declaración de '%D' oscurece una declaración global"
+msgstr "%Jla declaración de %qD oscurece una declaración global"
-#: c-decl.c:1818
-#, fuzzy
+#: c-decl.c:1884
msgid "%Jdeclaration of %qD shadows a previous local"
-msgstr "%Jla declaración de '%D' obscurece a una declaración local previa"
+msgstr "%Jla declaración de %qD oscurece a una declaración local previa"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr "%Jaquí está la declaración oscurecida"
-#: c-decl.c:1977
-#, fuzzy
+#: c-decl.c:2041
msgid "nested extern declaration of %qD"
-msgstr "declaración externa anidada de `%s'"
+msgstr "declaración externa anidada de %qD"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "declaración externa anidada de `%s'"
-
-#: c-decl.c:2161
-#, fuzzy, c-format
+#: c-decl.c:2201
+#, c-format
msgid "implicit declaration of function %qE"
-msgstr "declaración implícita de la función `%s'"
+msgstr "declaración implícita de la función %qE"
-#: c-decl.c:2219
-#, fuzzy
+#: c-decl.c:2262
msgid "incompatible implicit declaration of built-in function %qD"
-msgstr "declaración implícita de la función `%#D'"
+msgstr "declaración implícita incompatible de la función interna %qD"
-#: c-decl.c:2228
-#, fuzzy
+#: c-decl.c:2271
msgid "incompatible implicit declaration of function %qD"
-msgstr "declaración implícita de la función `%#D'"
+msgstr "declaración implícita incompatible de la función %qD"
-#: c-decl.c:2281
-#, fuzzy, c-format
+#: c-decl.c:2324
+#, c-format
msgid "%qE undeclared here (not in a function)"
-msgstr "`%s' no se declaró aquí (no en una función)"
+msgstr "%qE no se declaró aquí (no en una función)"
-#: c-decl.c:2286
-#, fuzzy, c-format
+#: c-decl.c:2329
+#, c-format
msgid "%qE undeclared (first use in this function)"
-msgstr "`%s' no se declaró aquí (primer uso en esta función)"
+msgstr "%qE no se declaró aquí (primer uso en esta función)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Cada identificador no declarado solamente se reporta una vez"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "para cada funcion en la que aparece.)"
-#: c-decl.c:2329
-#, fuzzy, c-format
+#: c-decl.c:2372
+#, c-format
msgid "label %qs referenced outside of any function"
-msgstr "la etiqueta %s es referenciada fuera de cualquier función"
+msgstr "la etiqueta %qs es referenciada fuera de cualquier función"
-#: c-decl.c:2372
-#, fuzzy, c-format
+#: c-decl.c:2415
+#, c-format
msgid "duplicate label declaration %qs"
-msgstr "declaración de la etiqueta `%s' duplicada"
+msgstr "declaración duplicada de la etiqueta %qs"
-#: c-decl.c:2407
-#, fuzzy
+#: c-decl.c:2450
msgid "%Hduplicate label %qD"
-msgstr "%Hetiqueta duplicada `%D'"
+msgstr "%Hetiqueta duplicada %qD"
-#: c-decl.c:2429
-#, fuzzy
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
-msgstr "%HC tradicional carece de un espacio de nombres separado para etiquetas, el identificador `%s' tiene conflictos con "
+msgstr "%HC tradicional carece de un espacio de nombres separado para etiquetas, el identificador %qs tiene conflictos con"
-#: c-decl.c:2495
-#, fuzzy
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
-msgstr "%H`%s' definido como un tipo erróneo de etiqueta"
+msgstr "%H%qs definido como un tipo erróneo de etiqueta"
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "struct/union sin nombre que no define ninguna instancia"
-#: c-decl.c:2726
-#, fuzzy
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
-msgstr "especificadores de clase de almacenamiento en el declarador de una matriz"
+msgstr "una declaración vacía con especificadores de clase de almacenamiento no redeclara la etiqueta"
-#: c-decl.c:2737
-#, fuzzy
+#: c-decl.c:2780
msgid "empty declaration with type qualifier does not redeclare tag"
-msgstr "la declaración no declara nada"
+msgstr "uan declaración vacía con calificador de tipo no redeclara la etiqueta"
-#: c-decl.c:2758 c-decl.c:2765
-#, fuzzy
+#: c-decl.c:2801 c-decl.c:2808
msgid "useless type name in empty declaration"
-msgstr "palabras claves inútiles o nombres de tipos en una declaración vacía"
+msgstr "nombre de tipo inútil en una declaración vacía"
-#: c-decl.c:2773
-#, fuzzy
+#: c-decl.c:2816
msgid "%<inline%> in empty declaration"
-msgstr "declaración vacía"
+msgstr "%<inline%> en una declaración vacía"
-#: c-decl.c:2779
-#, fuzzy
+#: c-decl.c:2822
msgid "%<auto%> in file-scope empty declaration"
-msgstr "se especificaron dos tipos en una declaración vacía"
+msgstr "%<auto%> en una declaración vacía en ámbito de fichero"
-#: c-decl.c:2785
-#, fuzzy
+#: c-decl.c:2828
msgid "%<register%> in file-scope empty declaration"
-msgstr "se especificaron dos tipos en una declaración vacía"
+msgstr "%<register%> en una declaración vacía en ámbito de fichero"
-#: c-decl.c:2791
-#, fuzzy
+#: c-decl.c:2834
msgid "useless storage class specifier in empty declaration"
-msgstr "especificadores de clase de almacenamiento en el declarador de una matriz"
+msgstr "especificador de clase de almacenamiento inútil en una declaración vacía"
-#: c-decl.c:2797
-#, fuzzy
+#: c-decl.c:2840
msgid "useless %<__thread%> in empty declaration"
-msgstr "palabras claves inútiles o nombres de tipos en una declaración vacía"
+msgstr "<%__thread%> inútil en una declaración vacía"
-#: c-decl.c:2805
-#, fuzzy
+#: c-decl.c:2848
msgid "useless type qualifier in empty declaration"
-msgstr "calificadores de tipo duplicados en la declaración %s"
+msgstr "calificador de tipo inútil en una declaración vacía"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "declaración vacía"
-#: c-decl.c:2878
-#, fuzzy
+#: c-decl.c:2921
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"
+msgstr "ISO C90 no tiene soporte para <%static%> o calificadores de tipo en los declaradores de parámetros de matrices"
-#: c-decl.c:2881
-#, fuzzy
+#: c-decl.c:2924
msgid "ISO C90 does not support %<[*]%> array declarators"
-msgstr "ISO C90 no tiene soporte para declaradores de matriz `[*]'"
+msgstr "ISO C90 no tiene soporte para declaradores de matriz %<[*]%>"
-#: c-decl.c:2884
-#, fuzzy
+#: c-decl.c:2927
msgid "GCC does not yet properly implement %<[*]%> array declarators"
-msgstr "GCC aún no implementa adecuadamente los declaradores de matriz `[*]'"
+msgstr "GCC aún no implementa adecuadamente los declaradores de matriz %<[*]%>"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "static o calificador de tipo en un declarador abstracto"
-#: c-decl.c:2960
-#, fuzzy
+#: c-decl.c:3005
msgid "%J%qD is usually a function"
-msgstr "%J'%D' generalmente es una función"
+msgstr "%J%qD generalmente es una función"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
-#, fuzzy
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
msgid "typedef %qD is initialized (use __typeof__ instead)"
-msgstr "typedef `%D' está inicializado (utilice __typeof__ en su lugar)"
+msgstr "typedef %qD está inicializado (utilice __typeof__ en su lugar)"
-#: c-decl.c:2974
-#, fuzzy
+#: c-decl.c:3019
msgid "function %qD is initialized like a variable"
-msgstr "la función `%#D' está inicializada como una variable"
+msgstr "la función %qD está inicializada como una variable"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
-#, fuzzy
+#: c-decl.c:3025
msgid "parameter %qD is initialized"
-msgstr "el parámetro `%s' está inicializado"
+msgstr "el parámetro %qD está inicializado"
#. Although C99 is unclear about whether incomplete arrays
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "un objeto de tamaño variable no puede ser inicializado"
-#: c-decl.c:3005
-#, fuzzy
+#: c-decl.c:3050
msgid "variable %qD has initializer but incomplete type"
-msgstr "la variable `%#D' tiene inicializador pero de tipo de dato incompleto"
+msgstr "la variable %qD tiene inicializador pero de tipo de dato incompleto"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "algunos elementos de la matriz `%#D' tienen tipo de dato incompleto"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
-#, fuzzy
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
msgid "%Jinline function %qD given attribute noinline"
-msgstr "%Jse le dió a la función inline '%D' un atributo noinline"
+msgstr "%Jse le dió a la función inline %qD un atributo noinline"
-#: c-decl.c:3154
-#, fuzzy
+#: c-decl.c:3194
msgid "%Jinitializer fails to determine size of %qD"
-msgstr "%Jel inicializador no puede determinar el tamaño de '%D'"
+msgstr "%Jel inicializador no puede determinar el tamaño de %qD"
-#: c-decl.c:3159
-#, fuzzy
+#: c-decl.c:3199
msgid "%Jarray size missing in %qD"
-msgstr "%Jfalta el tamaño de la matriz en '%D'"
+msgstr "%Jfalta el tamaño de la matriz en %qD"
-#: c-decl.c:3175
-#, fuzzy
+#: c-decl.c:3215
msgid "%Jzero or negative size array %qD"
-msgstr "%Jmatriz '%D' de tamaño cero o negativo"
+msgstr "%Jmatriz %qD de tamaño cero o negativo"
-#: c-decl.c:3201 varasm.c:1541
-#, fuzzy
+#: c-decl.c:3241 varasm.c:1556
msgid "%Jstorage size of %qD isn%'t known"
-msgstr "%Jno se conoce el tamaño de almacenamiento de `%D'"
+msgstr "%Jno se conoce el tamaño de almacenamiento de %qD"
-#: c-decl.c:3211
-#, fuzzy
+#: c-decl.c:3251
msgid "%Jstorage size of %qD isn%'t constant"
-msgstr "%Jel tamaño de almacenamiento de '%D' no es una constante"
+msgstr "%Jel tamaño de almacenamiento de %qD no es una constante"
-#: c-decl.c:3266
-#, fuzzy
+#: c-decl.c:3299
msgid "%Jignoring asm-specifier for non-static local variable %qD"
-msgstr "%Jse ignora el especificador asm para la variable local no estática '%D'"
+msgstr "%Jse ignora el especificador asm para la variable local no estática %qD"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "no se puede poner objeto con campo volatile en register"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C prohíbe declaraciones adelantadas de parámetros"
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr "<anónimo>"
-#: c-decl.c:3623
-#, fuzzy, c-format
+#: c-decl.c:3657
+#, c-format
msgid "bit-field %qs width not an integer constant"
-msgstr "la anchura del campo de bits `%s' no es una constante entera"
+msgstr "la anchura del campo de bits %qs no es una constante entera"
-#: c-decl.c:3631
-#, fuzzy, c-format
+#: c-decl.c:3665
+#, c-format
msgid "negative width in bit-field %qs"
-msgstr "anchura negativa en el campo de bit `%s'"
+msgstr "anchura negativa en el campo de bit %qs"
-#: c-decl.c:3636
-#, fuzzy, c-format
+#: c-decl.c:3670
+#, c-format
msgid "zero width for bit-field %qs"
-msgstr "anchura cero para el campo de bits `%s'"
+msgstr "anchura cero para el campo de bits %qs"
-#: c-decl.c:3646
-#, fuzzy, c-format
+#: c-decl.c:3680
+#, c-format
msgid "bit-field %qs has invalid type"
-msgstr "el campo de bits `%s' tiene un tipo inválido"
+msgstr "el campo de bits %qs tiene un tipo inválido"
-#: c-decl.c:3655
-#, fuzzy, c-format
+#: c-decl.c:3689
+#, c-format
msgid "type of bit-field %qs is a GCC extension"
-msgstr "el tipo de campo de bits `%s' es una extensión de GCC"
+msgstr "el tipo de campo de bits %qs es una extensión de GCC"
-#: c-decl.c:3664
-#, fuzzy, c-format
+#: c-decl.c:3698
+#, c-format
msgid "width of %qs exceeds its type"
-msgstr "la anchura de `%s' excede su tipo"
+msgstr "la anchura de %qs excede su tipo"
-#: c-decl.c:3677
-#, fuzzy, c-format
+#: c-decl.c:3711
+#, c-format
msgid "%qs is narrower than values of its type"
-msgstr "`%s' es más estrecho que los valores de su tipo"
+msgstr "%qs es más estrecho que los valores de su tipo"
-#: c-decl.c:3802
-#, fuzzy
+#: c-decl.c:3836
msgid "type defaults to %<int%> in declaration of %qs"
-msgstr "el tipo de dato por defecto es `int' en la declaración de `%s'"
+msgstr "el tipo de dato por defecto es %<int%> en la declaración de %qs"
-#: c-decl.c:3830
-#, fuzzy
+#: c-decl.c:3864
msgid "duplicate %<const%>"
-msgstr "`const' duplicado"
+msgstr "%<const%> duplicado"
-#: c-decl.c:3832
-#, fuzzy
+#: c-decl.c:3866
msgid "duplicate %<restrict%>"
-msgstr "`restrict' duplicado"
+msgstr "%<restrict%> duplicado"
-#: c-decl.c:3834
-#, fuzzy
+#: c-decl.c:3868
msgid "duplicate %<volatile%>"
-msgstr "`volatile' duplicado"
+msgstr "%<volatile%> duplicado"
-#: c-decl.c:3853
-#, fuzzy
+#: c-decl.c:3887
msgid "function definition declared %<auto%>"
-msgstr "la definición de la función se declaró como `auto'"
+msgstr "la definición de la función se declaró como %<auto%>"
-#: c-decl.c:3855
-#, fuzzy
+#: c-decl.c:3889
msgid "function definition declared %<register%>"
-msgstr "la definición de la función se declaró como `register'"
+msgstr "la definición de la función se declaró como %<register%>"
-#: c-decl.c:3857
-#, fuzzy
+#: c-decl.c:3891
msgid "function definition declared %<typedef%>"
-msgstr "la definición de la función se declaró como `typedef'"
+msgstr "la definición de la función se declaró como %<typedef%>"
-#: c-decl.c:3859
-#, fuzzy
+#: c-decl.c:3893
msgid "function definition declared %<__thread%>"
-msgstr "la definición de la función se declaró como `__thread'"
+msgstr "la definición de la función se declaró como %<__thread%>"
-#: c-decl.c:3875
-#, fuzzy, c-format
+#: c-decl.c:3909
+#, c-format
msgid "storage class specified for structure field %qs"
-msgstr "se especificó una clase de almacenamiento para el campo de la estructura `%s'"
+msgstr "se especificó una clase de almacenamiento para el campo de la estructura %qs"
-#: c-decl.c:3879 cp/decl.c:7120
-#, fuzzy, c-format
+#: c-decl.c:3913 cp/decl.c:7053
+#, c-format
msgid "storage class specified for parameter %qs"
-msgstr "se especificó una clase de almacenamiento para el parámetro `%s'"
+msgstr "se especificó una clase de almacenamiento para el parámetro %qs"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "se especificó una clase de almacenamiento para el nombre de tipo"
-#: c-decl.c:3895 cp/decl.c:7139
-#, fuzzy
+#: c-decl.c:3929 cp/decl.c:7072
msgid "%qs initialized and declared %<extern%>"
-msgstr "`%s' inicializado y declarado como `extern'"
+msgstr "%qs inicializado y declarado como %<extern%>"
-#: c-decl.c:3897 cp/decl.c:7142
-#, fuzzy
+#: c-decl.c:3931 cp/decl.c:7075
msgid "%qs has both %<extern%> and initializer"
-msgstr "`%s' tiene `extern' e inicializador al mismo tiempo"
+msgstr "%qs tiene %<extern%> e inicializador al mismo tiempo"
-#: c-decl.c:3902
-#, fuzzy
+#: c-decl.c:3936
msgid "file-scope declaration of %qs specifies %<auto%>"
-msgstr "la declaración del ámbito de fichero de `%s' especifica `auto'"
+msgstr "la declaración del ámbito de fichero de %qs especifica %<auto%>"
-#: c-decl.c:3904
-#, fuzzy
+#: c-decl.c:3938
msgid "file-scope declaration of %qs specifies %<register%>"
-msgstr "la declaración del ámbito de fichero de `%s' especifica `auto'"
+msgstr "la declaración del ámbito de fichero de %qs especifica %<register%>"
-#: c-decl.c:3909 cp/decl.c:7146
-#, fuzzy
+#: c-decl.c:3943 cp/decl.c:7079
msgid "nested function %qs declared %<extern%>"
-msgstr "la función anidada `%s' se declaró `extern'"
+msgstr "la función anidada %qs se declaró %<extern%>"
-#: c-decl.c:3912 cp/decl.c:7156
-#, fuzzy
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
-msgstr "el ámbito de la función `%s' es implícitamente auto y declarada `__thread'"
+msgstr "el ámbito de la función %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
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:3999
-#, fuzzy, c-format
+#: c-decl.c:4039
+#, c-format
msgid "declaration of %qs as array of voids"
-msgstr "la declaración de `%s' como una matriz de voids"
+msgstr "la declaración de %qs como una matriz de voids"
-#: c-decl.c:4005
-#, fuzzy, c-format
+#: c-decl.c:4045
+#, c-format
msgid "declaration of %qs as array of functions"
-msgstr "la declaración de `%s' como una matriz de funciones"
+msgstr "la declaración de %qs como una matriz de funciones"
-#: c-decl.c:4010
+#: c-decl.c:4050
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:4030
-#, fuzzy, c-format
+#: c-decl.c:4070
+#, c-format
msgid "size of array %qs has non-integer type"
-msgstr "el tamaño de la matriz `%s' tiene un tipo no entero"
+msgstr "el tamaño de la matriz %qs tiene un tipo no entero"
-#: c-decl.c:4035
-#, fuzzy, c-format
+#: c-decl.c:4075
+#, c-format
msgid "ISO C forbids zero-size array %qs"
-msgstr "ISO C prohíbe la matriz `%s' de tamaño cero"
+msgstr "ISO C prohíbe la matriz %qs de tamaño cero"
-#: c-decl.c:4042
-#, fuzzy, c-format
+#: c-decl.c:4082
+#, c-format
msgid "size of array %qs is negative"
-msgstr "el tamaño de la matriz `%s' es negativo"
+msgstr "el tamaño de la matriz %qs es negativo"
-#: c-decl.c:4056
-#, fuzzy
+#: c-decl.c:4096
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
-msgstr "ISO C90 prohíbe la matriz `%s' cuyo tamaño no se puede evaluar"
+msgstr "ISO C90 prohíbe la matriz %qs cuyo tamaño no se puede evaluar"
-#: c-decl.c:4060
-#, fuzzy, c-format
+#: c-decl.c:4100
+#, c-format
msgid "ISO C90 forbids variable-size array %qs"
-msgstr "ISO C90 prohíbe la matriz `%s' de tamaño variable"
+msgstr "ISO C90 prohíbe la matriz %qs de tamaño variable"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
-#, fuzzy, c-format
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
+#, c-format
msgid "size of array %qs is too large"
-msgstr "el tamaño de la matriz `%s' es demasiado grande"
+msgstr "el tamaño de la matriz %qs es demasiado grande"
-#: c-decl.c:4106
+#: c-decl.c:4150
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C90 no tiene soporte para miembros de matriz flexibles"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "el tipo matriz tiene tipo de elemento incompleto"
-#: c-decl.c:4174 cp/decl.c:7248
-#, fuzzy, c-format
+#: c-decl.c:4215 cp/decl.c:7179
+#, c-format
msgid "%qs declared as function returning a function"
-msgstr "`%s' que es declarado como función devuelve una función"
+msgstr "%qs que es declarado como función devuelve una función"
-#: c-decl.c:4179 cp/decl.c:7253
-#, fuzzy, c-format
+#: c-decl.c:4220 cp/decl.c:7184
+#, c-format
msgid "%qs declared as function returning an array"
-msgstr "`%s' que es declarado como función devuelve una matriz"
+msgstr "%qs que es declarado como función devuelve una matriz"
-#: c-decl.c:4199
-#, fuzzy
+#: c-decl.c:4240
msgid "function definition has qualified void return type"
-msgstr "definición inválida del tipo calificado `%T'"
+msgstr "la definición de la función tiene un tipo calificado void"
-#: c-decl.c:4201
+#: c-decl.c:4242
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:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO C prohíbe los tipos de función calificados"
-#: c-decl.c:4282
-#, fuzzy
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
-msgstr "%Jla variable '%D' se declaró como `inline'"
+msgstr "%Jla variable %qD se declaró como %<inline%>"
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C prohíbe los tipos de función const o volatile"
-#: c-decl.c:4332
-#, fuzzy, c-format
+#: c-decl.c:4374
+#, c-format
msgid "variable or field %qs declared void"
-msgstr "variable o campo `%s' declarado void"
+msgstr "variable o campo %qs se declaró void"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "se ignoran los atributos en los declaradores de parámetros de matriz"
-#: c-decl.c:4396
-#, fuzzy
+#: c-decl.c:4438
msgid "%Jparameter %qD declared %<inline%>"
-msgstr "%Jel parámetro \"%D\" se declaró void"
+msgstr "%Jel parámetro %qD se declaró %<inline%>"
-#: c-decl.c:4409
-#, fuzzy, c-format
+#: c-decl.c:4451
+#, c-format
msgid "field %qs declared as a function"
-msgstr "el campo `%s' declarado como una función"
+msgstr "el campo %qs declarado como una función"
-#: c-decl.c:4415
-#, fuzzy, c-format
+#: c-decl.c:4457
+#, c-format
msgid "field %qs has incomplete type"
-msgstr "el campo `%s' tiene tipo de dato incompleto"
+msgstr "el campo %qs tiene tipo de dato incompleto"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
-#, fuzzy, c-format
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
+#, c-format
msgid "invalid storage class for function %qs"
-msgstr "clase de almacenamiento inválida para la función `%s'"
+msgstr "clase de almacenamiento inválida para la función %qs"
-#: c-decl.c:4461
-#, fuzzy
+#: c-decl.c:4507
msgid "%<noreturn%> function returns non-void value"
-msgstr "la función `no return' devuelve un valor que no es void"
+msgstr "la función %<noreturn%> devuelve un valor que no es void"
-#: c-decl.c:4489
-#, fuzzy
+#: c-decl.c:4535
msgid "cannot inline function %<main%>"
-msgstr "no se puede hacer inline la función `main'"
+msgstr "no se puede hacer inline la función %<main%>"
-#: c-decl.c:4546
-#, fuzzy
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
-msgstr "variable previamente declarada como `static' redeclarada como `extern'"
+msgstr "variable previamente declarada como %<static%> redeclarada como %<extern%>"
-#: c-decl.c:4555
-#, fuzzy
+#: c-decl.c:4591
msgid "%Jvariable %qD declared %<inline%>"
-msgstr "%Jla variable '%D' se declaró como `inline'"
+msgstr "%Jla variable %qD se declaró como %<inline%>"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
-#: c-decl.c:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
msgid "thread-local storage not supported for this target"
msgstr "no se da soporte a almacenamiento thread-local para este objetivo"
-#: c-decl.c:4648 c-decl.c:5733
-#, fuzzy
+#: c-decl.c:4684 c-decl.c:5778
msgid "function declaration isn%'t a prototype"
msgstr "la declaración de la función no es un prototipo"
-#: c-decl.c:4656
+#: c-decl.c:4692
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:4689
-#, fuzzy
+#: c-decl.c:4725
msgid "%Jparameter %u (%qD) has incomplete type"
-msgstr "%Jel parámetro \"%D\" tiene tipo incompleto"
+msgstr "%Jel parámetro %u (%qD) tiene tipo incompleto"
-#: c-decl.c:4692
-#, fuzzy
+#: c-decl.c:4728
msgid "%Jparameter %u has incomplete type"
-msgstr "%Jel parámetro \"%D\" tiene tipo incompleto"
+msgstr "%Jel parámetro %u tiene tipo incompleto"
-#: c-decl.c:4701
-#, fuzzy
+#: c-decl.c:4737
msgid "%Jparameter %u (%qD) has void type"
-msgstr "%Jel parámetro \"%D\" tiene tipo incompleto"
+msgstr "%Jel parámetro %u (%qD) tiene tipo void"
-#: c-decl.c:4704
-#, fuzzy
+#: c-decl.c:4740
msgid "%Jparameter %u has void type"
-msgstr "%Jel parámetro \"%D\" tiene tipo incompleto"
+msgstr "%Jel parámetro %u tiene tipo void"
-#: c-decl.c:4761
-#, fuzzy
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
-msgstr "no se puede calificar \"void\" si es el único parámetro"
+msgstr "no se puede calificar %<void%> si es el único parámetro"
-#: c-decl.c:4765 c-decl.c:4800
-#, fuzzy
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
-msgstr "\"void\" debe ser el único parámetro"
+msgstr "%<void%> debe ser el único parámetro"
-#: c-decl.c:4793
-#, fuzzy
+#: c-decl.c:4829
msgid "%Jparameter %qD has just a forward declaration"
-msgstr "%Jel parámetro \"%D\" sólo tiene una declaración posterior"
+msgstr "%Jel parámetro %qD sólo tiene una declaración posterior"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
-#, fuzzy
+#: c-decl.c:4875
msgid "%<%s %E%> declared inside parameter list"
-msgstr "se declaró \"%s %s\" dentro de la lista de parámetros"
+msgstr "se declaró %<%s %E%> dentro de la lista de parámetros"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "el %s anónimo se declaró dentro de una lista de parámetros"
-#: c-decl.c:4848
+#: c-decl.c:4884
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:4981
-#, fuzzy
+#: c-decl.c:5017
msgid "redefinition of %<union %s%>"
-msgstr "redefinición de `union %s'"
+msgstr "redefinición de %<union %s%>'"
-#: c-decl.c:4983
-#, fuzzy
+#: c-decl.c:5019
msgid "redefinition of %<struct %s%>"
-msgstr "redefinición de `struct %s'"
+msgstr "redefinición de %<struct %s%>"
-#: c-decl.c:4988
-#, fuzzy
+#: c-decl.c:5024
msgid "nested redefinition of %<union %s%>"
-msgstr "redefinición anidada de `%s'"
+msgstr "redefinición anidada de %<union %s%>"
-#: c-decl.c:4991
-#, fuzzy
+#: c-decl.c:5027
msgid "nested redefinition of %<struct %s%>"
-msgstr "redefinición anidada de `%s'"
+msgstr "redefinición anidada de %<struct %s%>"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "la declaración no declara nada"
-#: c-decl.c:5067
-#, fuzzy
+#: c-decl.c:5103
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C no tiene soporte para structs/unions sin nombre"
-#: c-decl.c:5110 c-decl.c:5126
-#, fuzzy
+#: c-decl.c:5146 c-decl.c:5162
msgid "%Jduplicate member %qD"
-msgstr "%Jmiembro duplicado '%D'"
+msgstr "%Jmiembro duplicado %qD"
-#: c-decl.c:5165
-#, fuzzy
+#: c-decl.c:5201
msgid "union has no named members"
-msgstr "miembros nombrados"
+msgstr "union no tiene miembros nombrados"
-#: c-decl.c:5167
-#, fuzzy
+#: c-decl.c:5203
msgid "union has no members"
-msgstr "union anónima sin miembros"
+msgstr "union no tiene miembros"
-#: c-decl.c:5172
-#, fuzzy
+#: c-decl.c:5208
msgid "struct has no named members"
-msgstr "miembros nombrados"
+msgstr "struct no tiene miembros nombrados"
-#: c-decl.c:5174
-#, fuzzy
+#: c-decl.c:5210
msgid "struct has no members"
-msgstr "los destructores no tienen parámetros"
+msgstr "struct no tiene miembros"
-#: c-decl.c:5231
+#: c-decl.c:5267
msgid "%Jflexible array member in union"
msgstr "%Jmiembro de matriz flexible en el union"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr "%Jel miembro de matriz flexible no está al final del struct"
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr "%Jel miembro de matriz flexible sería de otra manera un struct vacío"
-#: c-decl.c:5248
+#: c-decl.c:5284
msgid "%Jinvalid use of structure with flexible array member"
msgstr "%Juso inválido de una estructura con un miembro de matriz flexible"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "union no se puede hacer transparente"
-#: c-decl.c:5418
-#, fuzzy
+#: c-decl.c:5463
msgid "nested redefinition of %<enum %s%>"
-msgstr "redefinición anidada de `%s'"
+msgstr "redefinición anidada de %<enum %s%>"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
-#, fuzzy
+#: c-decl.c:5470
msgid "redeclaration of %<enum %s%>"
-msgstr "redeclaración de `enum %s'"
+msgstr "redeclaración de %<enum %s%>"
-#: c-decl.c:5488
+#: c-decl.c:5533
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:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
-msgstr ""
+msgstr "el modo especificado es demasiado pequeño para valores enumerados"
-#: c-decl.c:5604
-#, fuzzy, c-format
+#: c-decl.c:5649
+#, c-format
msgid "enumerator value for %qE is not an integer constant"
-msgstr "el valor de enumerador para `%s' no es una constante entera"
+msgstr "el valor de enumerador para %qE no es una constante entera"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "desbordamiento en valores de enumeración"
-#: c-decl.c:5626
-#, fuzzy
+#: c-decl.c:5671
msgid "ISO C restricts enumerator values to range of %<int%>"
-msgstr "ISO C restringe los valores de enumeración al rango de `int'"
+msgstr "ISO C restringe los valores de enumeración al rango de %<int%>"
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "el tipo de devolución es un tipo de dato incompleto"
-#: c-decl.c:5710
-#, fuzzy
+#: c-decl.c:5755
msgid "return type defaults to %<int%>"
-msgstr "el tipo de devolución por defecto es `int'"
+msgstr "el tipo de devolución por defecto es %<int%>"
-#: c-decl.c:5739
-#, fuzzy
+#: c-decl.c:5784
msgid "%Jno previous prototype for %qD"
-msgstr "%Jno hay un prototipo previo para '%D'"
+msgstr "%Jno hay un prototipo previo para %qD"
-#: c-decl.c:5745
-#, fuzzy
+#: c-decl.c:5790
msgid "%J%qD was used with no prototype before its definition"
-msgstr "%Jse usó '%D' sin prototipo antes de su definición"
+msgstr "%Jse usó %qD sin prototipo antes de su definición"
-#: c-decl.c:5752
-#, fuzzy
+#: c-decl.c:5797
msgid "%Jno previous declaration for %qD"
-msgstr "%Jno hay declaración previa para '%D'"
+msgstr "%Jno hay declaración previa para %qD"
-#: c-decl.c:5758
-#, fuzzy
+#: c-decl.c:5803
msgid "%J%qD was used with no declaration before its definition"
-msgstr "se usó %J`%D' sin declaración antes de su definición"
+msgstr "%Jse usó %qD sin declaración antes de su definición"
-#: c-decl.c:5791 c-decl.c:6280
-#, fuzzy
+#: c-decl.c:5836 c-decl.c:6328
msgid "%Jreturn type of %qD is not %<int%>"
-msgstr "%Jel tipo de devolución de '%D' no es `int'"
+msgstr "%Jel tipo de devolución de %qD no es %<int%>"
-#: c-decl.c:5806
-#, fuzzy
+#: c-decl.c:5851
msgid "%Jfirst argument of %qD should be %<int%>"
-msgstr "%Jel primer argumento de '%D' debe ser `int'"
+msgstr "%Jel primer argumento de %qD debe ser %<int%>"
-#: c-decl.c:5815
-#, fuzzy
+#: c-decl.c:5860
msgid "%Jsecond argument of %qD should be %<char **%>"
-msgstr "%Jel segundo argumento de '%D' debe ser 'char **'"
+msgstr "%Jel segundo argumento de %qD debe ser %<char **%>"
-#: c-decl.c:5824
-#, fuzzy
+#: c-decl.c:5869
msgid "%Jthird argument of %qD should probably be %<char **%>"
-msgstr "%Jel tercer argumento de '%D' debería ser 'char **'"
+msgstr "%Jel tercer argumento de %qD debería ser %<char **%>"
-#: c-decl.c:5834
-#, fuzzy
+#: c-decl.c:5879
msgid "%J%qD takes only zero or two arguments"
-msgstr "%J'%D' sólo toma cero o dos argumentos"
+msgstr "%J%qD sólo toma cero o dos argumentos"
-#: c-decl.c:5837
-#, fuzzy
+#: c-decl.c:5882
msgid "%J%qD is normally a non-static function"
-msgstr "%J'%D' generalmente es una función no estática"
+msgstr "%J%qD generalmente es una función no estática"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr "%Jdeclaraciones de parámetros de estilo antiguo en una definición de una función prototipo"
-#: c-decl.c:5896
-#, fuzzy
+#: c-decl.c:5941
msgid "%Jtraditional C rejects ISO C style function definitions"
-msgstr "C tradicional rechaza la definición de funciones de estilo ISO C"
+msgstr "%JC tradicional rechaza la definición de funciones de estilo ISO C"
-#: c-decl.c:5908
+#: c-decl.c:5953
msgid "%Jparameter name omitted"
msgstr "%Jse omitió el nombre del parámetro"
-#: c-decl.c:5948
-#, fuzzy
+#: c-decl.c:5993
msgid "%Jold-style function definition"
-msgstr "especificador puro en la definición de función"
+msgstr "%Jdefinición de función de estilo antiguo"
-#: c-decl.c:5956
+#: c-decl.c:6001
msgid "%Jparameter name missing from parameter list"
msgstr "%Jfalta el nombre del parámetro de la lista de parámetros"
-#: c-decl.c:5967
-#, fuzzy
+#: c-decl.c:6012
msgid "%J%qD declared as a non-parameter"
-msgstr "%J\"%D\" declarado como un no-parámetro"
+msgstr "%J%qD declarado como un no-parámetro"
-#: c-decl.c:5972
-#, fuzzy
+#: c-decl.c:6017
msgid "%Jmultiple parameters named %qD"
-msgstr "%Jmúltiples parámetros nombrados \"%D\""
+msgstr "%Jmúltiples parámetros nombrados %qD"
-#: c-decl.c:5980
-#, fuzzy
+#: c-decl.c:6025
msgid "%Jparameter %qD declared with void type"
-msgstr "%Jel parámetro \"%D\" se declaró void"
+msgstr "%Jel parámetro %qD se declaró con tipo void"
-#: c-decl.c:5995 c-decl.c:5997
-#, fuzzy
+#: c-decl.c:6040 c-decl.c:6042
msgid "%Jtype of %qD defaults to %<int%>"
-msgstr "%Jel tipo de \"%D\" es \"int\" por defecto"
+msgstr "%Jel tipo de %qD es %<int%> por defecto"
-#: c-decl.c:6016
-#, fuzzy
+#: c-decl.c:6061
msgid "%Jparameter %qD has incomplete type"
-msgstr "%Jel parámetro \"%D\" tiene tipo incompleto"
+msgstr "%Jel parámetro %qD tiene tipo incompleto"
-#: c-decl.c:6022
-#, fuzzy
+#: c-decl.c:6067
msgid "%Jdeclaration for parameter %qD but no such parameter"
-msgstr "%Jexiste la declaración para el parámetro \"%D\" pero no hay tal parámetro"
+msgstr "%Jexiste la declaración para el parámetro %qD pero no hay tal parámetro"
-#: c-decl.c:6072
-#, fuzzy
+#: c-decl.c:6117
msgid "number of arguments doesn%'t match prototype"
msgstr "el número de argumentos no coinciden con el prototipo"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
msgid "%Hprototype declaration"
msgstr "%Hdeclaración vacía"
-#: c-decl.c:6101
-#, fuzzy
+#: c-decl.c:6146
msgid "promoted argument %qD doesn%'t match prototype"
-msgstr "el argumento promovido \"%D\" no coincide con el prototipo"
+msgstr "el argumento promovido %qD no coincide con el prototipo"
-#: c-decl.c:6109
-#, fuzzy
+#: c-decl.c:6154
msgid "argument %qD doesn%'t match prototype"
-msgstr "el argumento \"%D\" no coincide con el prototipo"
+msgstr "el argumento %qD no coincide con el prototipo"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
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:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "esta función puede devolver con o sin un valor"
#. 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:6403
-#, fuzzy
+#: c-decl.c:6461
msgid "%<for%> loop initial declaration used outside C99 mode"
-msgstr "se usó la declaración inicial del ciclo 'for' fuera del modo C99"
+msgstr "se usó la declaración inicial del ciclo %<for%> fuera del modo C99"
-#: c-decl.c:6432
-#, fuzzy
+#: c-decl.c:6490
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
-msgstr "%Jdeclaración de la variable static '%D' en la declaración inicial del ciclo 'for'"
+msgstr "%Jdeclaración de la variable static %qD en la declaración inicial del ciclo %<for%>"
-#: c-decl.c:6435
-#, fuzzy
+#: c-decl.c:6493
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
-msgstr "%Jdeclaración de la variable 'extern' '%D' en la declaración inicial del ciclo 'for'"
+msgstr "%Jdeclaración de la variable %<extern%> %qD en la declaración inicial del ciclo %<for%>"
-#: c-decl.c:6440
-#, fuzzy
+#: c-decl.c:6498
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
-msgstr "'struct %s' declarado en la declaración inicial del ciclo 'for'"
+msgstr "%<struct %E%> declarado en la declaración inicial del ciclo %<for%>"
-#: c-decl.c:6444
-#, fuzzy
+#: c-decl.c:6502
msgid "%<union %E%> declared in %<for%> loop initial declaration"
-msgstr "'union %s' declarado en la declaración inicial del ciclo 'for'"
+msgstr "%<union %E%> declarado en la declaración inicial del ciclo %<for%>"
-#: c-decl.c:6448
-#, fuzzy
+#: c-decl.c:6506
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
-msgstr "'enum %s' declarado en la declaración inicial del ciclo 'for'"
+msgstr "%<enum %E%> declarado en la declaración inicial del ciclo %<for%>"
-#: c-decl.c:6452
-#, fuzzy
+#: c-decl.c:6510
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
-msgstr "%J declaración de '%D' que no es variable en la declaración inicial del ciclo 'for'"
+msgstr "%J declaración de %qD que no es variable en la declaración inicial del ciclo %<for%>"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
-#, fuzzy, c-format
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
+#, c-format
msgid "duplicate %qs"
-msgstr "`%s' duplicado"
+msgstr "%qs duplicado"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
-#, fuzzy
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
msgid "two or more data types in declaration specifiers"
-msgstr "dos o más tipos de datos en la declaración de `%s'"
+msgstr "dos o más tipos de datos en los especificadores de la declaración"
-#: c-decl.c:6774 cp/decl.c:6804
-#, fuzzy
+#: c-decl.c:6832 cp/decl.c:6723
msgid "%<long long long%> is too long for GCC"
-msgstr "`long long long' es demasiado largo para GCC"
+msgstr "%<long long long%> es demasiado largo para GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<long long%> y %<double%> en los especificadores de declaración"
-#: c-decl.c:6787
-#, fuzzy
+#: c-decl.c:6845
msgid "ISO C90 does not support %<long long%>"
-msgstr "ISO C90 no da soporte a `long long'"
+msgstr "ISO C90 no da soporte a %<long long%>"
-#: c-decl.c:6792 c-decl.c:6812
-#, fuzzy
+#: c-decl.c:6850 c-decl.c:6870
msgid "both %<long%> and %<short%> in declaration specifiers"
-msgstr "se especifica long y short al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<long%> y %<short%> en los especificadores de declaración"
-#: c-decl.c:6795 c-decl.c:6906
-#, fuzzy
+#: c-decl.c:6853 c-decl.c:6964
msgid "both %<long%> and %<void%> in declaration specifiers"
-msgstr "se especifica long y short al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<long%> y %<void%> en los especificadores de declaración"
-#: c-decl.c:6798 c-decl.c:6925
-#, fuzzy
+#: c-decl.c:6856 c-decl.c:6983
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
-msgstr "se especifica long y short al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<long%> y %<_Bool%> en los especificadores de declaración"
-#: c-decl.c:6801 c-decl.c:6944
-#, fuzzy
+#: c-decl.c:6859 c-decl.c:7002
msgid "both %<long%> and %<char%> in declaration specifiers"
-msgstr "se especifica long y short al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<long%> y %<char%> en los especificadores de declaración"
-#: c-decl.c:6804 c-decl.c:6957
-#, fuzzy
+#: c-decl.c:6862 c-decl.c:7015
msgid "both %<long%> and %<float%> in declaration specifiers"
-msgstr "se especifica long y short al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<long%> y %<float%> en los especificadores de declaración"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<short%> y %<void%> en los especificadores de declaración"
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<short%> y %<_Bool%> en los especificadores de declaración"
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<short%> y %<char%> en los especificadores de declaración"
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<short%> y %<float%> en los especificadores de declaración"
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<short%> y %<double%> en los especificadores de declaración"
-#: c-decl.c:6835 c-decl.c:6855
-#, fuzzy
+#: c-decl.c:6893 c-decl.c:6913
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<signed%> y %<unsigned%> en los especificadores de declaración"
-#: c-decl.c:6838 c-decl.c:6912
-#, fuzzy
+#: c-decl.c:6896 c-decl.c:6970
msgid "both %<signed%> and %<void%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<signed%> y %<void%> en los especificadores de declaración"
-#: c-decl.c:6841 c-decl.c:6931
-#, fuzzy
+#: c-decl.c:6899 c-decl.c:6989
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<signed%> y %<_Bool%> en los especificadores de declaración"
-#: c-decl.c:6844 c-decl.c:6963
-#, fuzzy
+#: c-decl.c:6902 c-decl.c:7021
msgid "both %<signed%> and %<float%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<signed%> y %<float%> en los especificadores de declaración"
-#: c-decl.c:6847 c-decl.c:6979
-#, fuzzy
+#: c-decl.c:6905 c-decl.c:7037
msgid "both %<signed%> and %<double%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<signed%> y %<double%> en los especificadores de declaración"
-#: c-decl.c:6858 c-decl.c:6915
-#, fuzzy
+#: c-decl.c:6916 c-decl.c:6973
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<unsigned%> y %<void%> en los especificadores de declaración"
-#: c-decl.c:6861 c-decl.c:6934
-#, fuzzy
+#: c-decl.c:6919 c-decl.c:6992
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<unsigned%> y %<_Bool%> en los especificadores de declaración"
-#: c-decl.c:6864 c-decl.c:6966
-#, fuzzy
+#: c-decl.c:6922 c-decl.c:7024
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<unsigned%> y %<float%> en los especificadores de declaración"
-#: c-decl.c:6867 c-decl.c:6982
-#, fuzzy
+#: c-decl.c:6925 c-decl.c:7040
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
-msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
+msgstr "se usaron al mismo tiempo %<unsigned%> y %<double%> en los especificadores de declaración"
-#: c-decl.c:6875
+#: c-decl.c:6933
msgid "ISO C90 does not support complex types"
msgstr "ISO C90 no tiene soporte para tipos complejos"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<complex%> y %<void%> en los especificadores de declaración"
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
-msgstr ""
+msgstr "se usaron al mismo tiempo %<complex%> y %<_Bool%> en los especificadores de declaración"
-#: c-decl.c:7019
-#, fuzzy, c-format
+#: c-decl.c:7077
+#, c-format
msgid "%qs fails to be a typedef or built in type"
-msgstr "`%s' falla al ser un typedef o un tipo interno del compilador"
+msgstr "%qs falla al ser un typedef o un tipo interno del compilador"
-#: c-decl.c:7051
-#, fuzzy, c-format
+#: c-decl.c:7109
+#, c-format
msgid "%qs is not at beginning of declaration"
-msgstr "`%s' no está en el inicio de la declaración"
+msgstr "%qs no está al inicio de la declaración"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
-msgstr ""
+msgstr "se usó %<__thread%> con %<auto%>"
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
-msgstr ""
+msgstr "se usó %<__thread%> con %<register%>"
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
-msgstr ""
+msgstr "se usó %<__thread%> con %<typedef%>"
-#: c-decl.c:7081 cp/parser.c:7114
-#, fuzzy
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
-msgstr "`__thread' antes de `extern'"
+msgstr "%<__thread%> antes de %<extern%>"
-#: c-decl.c:7090 cp/parser.c:7104
-#, fuzzy
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
-msgstr "`__thread' antes de `static'"
+msgstr "%<__thread%> antes de %<static%>"
-#: c-decl.c:7106
-#, fuzzy
+#: c-decl.c:7164
msgid "multiple storage classes in declaration specifiers"
-msgstr "múltiples clases de almacenamiento en la declaración de `%s'"
+msgstr "múltiples clases de almacenamiento en los especificadores de declaración"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
-msgstr ""
+msgstr "se usó %<__thread%> con %qs"
-#: c-decl.c:7167
-#, fuzzy
+#: c-decl.c:7225
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
-msgstr "ISO C no tiene soporte para `complex' simples que significan `double complex'"
+msgstr "ISO C no tiene soporte para %<complex%> simples que significan %<double complex%>"
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C no da soporte a tipos enteros complejos"
-#: c-decl.c:7313 toplev.c:844
-#, fuzzy
+#: c-decl.c:7371 toplev.c:848
msgid "%J%qF used but never defined"
-msgstr "%Jse usa '%F' pero nunca se definió"
+msgstr "%Jse usa %qF pero nunca se definió"
#: c-format.c:96 c-format.c:209
msgid "format string has invalid operand number"
@@ -1889,7 +1676,6 @@ msgid "function does not return string type"
msgstr "la función no devuelve valores de tipo cadena"
#: c-format.c:142
-#, fuzzy
msgid "format string argument not a string type"
msgstr "el argumento de la cadena de formato no es del tipo cadena de texto"
@@ -1898,89 +1684,73 @@ msgid "unrecognized format specifier"
msgstr "no se reconoce el especificador de formato"
#: c-format.c:202
-#, fuzzy, c-format
+#, c-format
msgid "%qs is an unrecognized format function type"
-msgstr "`%s' es un formato de tipo de función no reconocido"
+msgstr "%qs es un formato de tipo de función no reconocido"
#: c-format.c:215
-#, fuzzy
msgid "%<...%> has invalid operand number"
-msgstr "'...' tiene un número de operandos inválido"
+msgstr "%<...%> tiene un número de operandos inválido"
#: c-format.c:222
-#, fuzzy
msgid "format string argument follows the args to be formatted"
-msgstr "el argumento de la cadena de formato sigue a los argumentos que recibirán formato"
+msgstr "el argumento de la cadena de formato a continuación de los argumentos que recibirán formato"
#: c-format.c:345 c-format.c:369
-#, fuzzy
msgid "' ' flag"
-msgstr "opción ` '"
+msgstr "opción ' '"
#: c-format.c:345 c-format.c:369
-#, fuzzy
msgid "the ' ' printf flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de printf ' '"
#: c-format.c:346 c-format.c:370 c-format.c:408 c-format.c:465
-#, fuzzy
msgid "'+' flag"
-msgstr "opción `+'"
+msgstr "opción '+'"
#: c-format.c:346 c-format.c:370 c-format.c:408
-#, fuzzy
msgid "the '+' printf flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de printf '+'"
#: c-format.c:347 c-format.c:371 c-format.c:409 c-format.c:441
-#, fuzzy
msgid "'#' flag"
-msgstr "opción `#'"
+msgstr "opción '#'"
#: c-format.c:347 c-format.c:371 c-format.c:409
-#, fuzzy
msgid "the '#' printf flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de printf '#'"
#: c-format.c:348 c-format.c:372 c-format.c:439
-#, fuzzy
msgid "'0' flag"
-msgstr "opción `0'"
+msgstr "opción '0'"
#: c-format.c:348 c-format.c:372
-#, fuzzy
msgid "the '0' printf flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de printf '0'"
#: c-format.c:349 c-format.c:373 c-format.c:438 c-format.c:468
-#, fuzzy
msgid "'-' flag"
-msgstr "opción `-'"
+msgstr "opción '-'"
#: c-format.c:349 c-format.c:373
-#, fuzzy
msgid "the '-' printf flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de printf '-'"
#: c-format.c:350 c-format.c:422
-#, fuzzy
msgid "''' flag"
-msgstr "opción `''"
+msgstr "opción '''"
#: c-format.c:350
-#, fuzzy
msgid "the ''' printf flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de printf '''"
#: c-format.c:351 c-format.c:423
-#, fuzzy
msgid "'I' flag"
-msgstr "opción `''"
+msgstr "opción 'I'"
#: c-format.c:351
-#, fuzzy
msgid "the 'I' printf flag"
-msgstr "la opción de printf `I'"
+msgstr "la opción de printf 'I'"
#: c-format.c:352 c-format.c:374 c-format.c:420 c-format.c:442 c-format.c:469
#: c-format.c:1531 config/sol2-c.c:46
@@ -2010,14 +1780,12 @@ msgid "length modifier in printf format"
msgstr "modificador de longitud en formato printf"
#: c-format.c:398 c-format.c:410
-#, fuzzy
msgid "'q' flag"
-msgstr "opción `''"
+msgstr "opción 'q'"
#: c-format.c:398 c-format.c:410
-#, fuzzy
msgid "the 'q' diagnostic flag"
-msgstr "la opción de printf `''"
+msgstr "la opción de diagnóstico 'q'"
#: c-format.c:418
msgid "assignment suppression"
@@ -2028,14 +1796,12 @@ msgid "the assignment suppression scanf feature"
msgstr "la supresión de la asignación es una característica de scanf"
#: c-format.c:419
-#, fuzzy
msgid "'a' flag"
-msgstr "opción `''"
+msgstr "opción 'a'"
#: c-format.c:419
-#, fuzzy
msgid "the 'a' scanf flag"
-msgstr "la opción de scanf `''"
+msgstr "la opción de scanf 'a'"
#: c-format.c:420
msgid "field width in scanf format"
@@ -2046,78 +1812,64 @@ msgid "length modifier in scanf format"
msgstr "modificador de longitud en formato scanf"
#: c-format.c:422
-#, fuzzy
msgid "the ''' scanf flag"
-msgstr "la opción de scanf `''"
+msgstr "la opción de scanf '''"
#: c-format.c:423
-#, fuzzy
msgid "the 'I' scanf flag"
-msgstr "la opción de scanf `I'"
+msgstr "la opción de scanf 'I'"
#: c-format.c:437
-#, fuzzy
msgid "'_' flag"
-msgstr "opción `''"
+msgstr "opción '_'"
#: c-format.c:437
-#, fuzzy
msgid "the '_' strftime flag"
-msgstr "la opción de strftime `_'"
+msgstr "la opción de strftime '_'"
#: c-format.c:438
-#, fuzzy
msgid "the '-' strftime flag"
-msgstr "la opción de strftime `-'"
+msgstr "la opción de strftime '-'"
#: c-format.c:439
-#, fuzzy
msgid "the '0' strftime flag"
-msgstr "la opción de strftime `0'"
+msgstr "la opción de strftime '0'"
#: c-format.c:440 c-format.c:464
-#, fuzzy
msgid "'^' flag"
-msgstr "opción `''"
+msgstr "opción '^'"
#: c-format.c:440
-#, fuzzy
msgid "the '^' strftime flag"
-msgstr "la opción de strftime `^'"
+msgstr "la opción de strftime '^'"
#: c-format.c:441
-#, fuzzy
msgid "the '#' strftime flag"
-msgstr "la opción de strftime `#'"
+msgstr "la opción de strftime '#'"
#: c-format.c:442
msgid "field width in strftime format"
msgstr "anchura de campo en formato strftime"
#: c-format.c:443
-#, fuzzy
msgid "'E' modifier"
-msgstr "modificador `E'"
+msgstr "modificador 'E'"
#: c-format.c:443
-#, fuzzy
msgid "the 'E' strftime modifier"
-msgstr "el modificador de strftime `E'"
+msgstr "el modificador de strftime 'E'"
#: c-format.c:444
-#, fuzzy
msgid "'O' modifier"
-msgstr "modificador `O'"
+msgstr "modificador 'O'"
#: c-format.c:444
-#, fuzzy
msgid "the 'O' strftime modifier"
-msgstr "el modificador de strftime `O'"
+msgstr "el modificador de strftime 'O'"
#: c-format.c:445
-#, fuzzy
msgid "the 'O' modifier"
-msgstr "el modificador `O'"
+msgstr "el modificador 'O'"
#: c-format.c:463
msgid "fill character"
@@ -2128,39 +1880,32 @@ msgid "fill character in strfmon format"
msgstr "carácter de relleno en el formato de strfmon"
#: c-format.c:464
-#, fuzzy
msgid "the '^' strfmon flag"
-msgstr "la opción de strfmon `^'"
+msgstr "la opción de strfmon '^'"
#: c-format.c:465
-#, fuzzy
msgid "the '+' strfmon flag"
-msgstr "la opción de strfmon `+'"
+msgstr "la opción de strfmon '+'"
#: c-format.c:466
-#, fuzzy
msgid "'(' flag"
-msgstr "opción `''"
+msgstr "opción '('"
#: c-format.c:466
-#, fuzzy
msgid "the '(' strfmon flag"
-msgstr "la opción de strfmon `('"
+msgstr "la opción de strfmon '('"
#: c-format.c:467
-#, fuzzy
msgid "'!' flag"
-msgstr "opción `''"
+msgstr "opción '!'"
#: c-format.c:467
-#, fuzzy
msgid "the '!' strfmon flag"
-msgstr "la opción de strfmon `!'"
+msgstr "la opción de strfmon '!'"
#: c-format.c:468
-#, fuzzy
msgid "the '-' strfmon flag"
-msgstr "la opción de strfmon `-'"
+msgstr "la opción de strfmon '-'"
#: c-format.c:469
msgid "field width in strfmon format"
@@ -2187,9 +1932,9 @@ msgid "length modifier in strfmon format"
msgstr "modificador de longitud en formato strfmon"
#: c-format.c:840
-#, fuzzy, c-format
+#, c-format
msgid "function might be possible candidate for %qs format attribute"
-msgstr "la función puede ser un candidato posible para el atributo de formato `%s'"
+msgstr "la función puede ser un candidato posible para el atributo de formato %qs"
#: c-format.c:931 c-format.c:952 c-format.c:1947
msgid "missing $ operand number in format"
@@ -2210,9 +1955,8 @@ 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:1023
-#, fuzzy
msgid "$ operand number used after format without operand number"
-msgstr "el número de operandos especificados para el formato no toma argumentos"
+msgstr "se usó el número de operando $ de un formato sin número de operando"
#: c-format.c:1053
#, c-format
@@ -2253,14 +1997,12 @@ msgid "unterminated format string"
msgstr "constante de formato sin terminar"
#: c-format.c:1400
-#, fuzzy
msgid "embedded %<\\0%> in format"
-msgstr "`\\0' incrustado en el formato"
+msgstr "%<\\0%> incrustado en el formato"
#: c-format.c:1415
-#, fuzzy
msgid "spurious trailing %<%%%> in format"
-msgstr "`%%' final espurio en el formato"
+msgstr "%<%%%> final espurio en el formato"
#: c-format.c:1459 c-format.c:1703
#, c-format
@@ -2295,18 +2037,18 @@ msgid "empty precision in %s format"
msgstr "precisión vacía en el formato %s"
#: c-format.c:1687
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support the %qs %s length modifier"
-msgstr "%1$s no tiene soporte para el modificador de longitud %3$s `%2$s'"
+msgstr "%s no tiene soporte para el modificador de longitud %qs %s"
#: c-format.c:1737
msgid "conversion lacks type at end of format"
msgstr "la conversión carece de tipo al final del formato"
#: c-format.c:1748
-#, fuzzy, c-format
+#, c-format
msgid "unknown conversion type character %qc in format"
-msgstr "se desconoce el carácter de tipo de conversión `%c' en el formato"
+msgstr "se desconoce el carácter de tipo de conversión %qc en el formato"
#: c-format.c:1751
#, c-format
@@ -2314,14 +2056,12 @@ 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:1758
-#, fuzzy
msgid "%s does not support the %<%%%c%> %s format"
-msgstr "%1$s no tiene soporte para el formato %4$s `%%%2$s%3$c'"
+msgstr "%s no tiene soporte para el formato %<%%%c%> %s"
#: c-format.c:1774
-#, fuzzy
msgid "%s used with %<%%%c%> %s format"
-msgstr "se usó %1$s con el formato %3$s `%%%2$c'"
+msgstr "se usó %s con el formato %<%%%c%> %s"
#: c-format.c:1783
#, c-format
@@ -2329,14 +2069,12 @@ msgid "%s does not support %s"
msgstr "%s no tiene soporte para %s"
#: c-format.c:1792
-#, fuzzy
msgid "%s does not support %s with the %<%%%c%> %s format"
-msgstr "%1$s no tiene soporte para %2$s con el formato %4$s `%%%3$c'"
+msgstr "%s no tiene soporte para %s con el formato %<%%%c%> %s"
#: c-format.c:1825
-#, fuzzy
msgid "%s ignored with %s and %<%%%c%> %s format"
-msgstr "se ignora %1$s con %2$s y el formato %4$s `%%%3$c'"
+msgstr "se ignora %s con %s y el formato %<%%%c%> %s"
#: c-format.c:1829
#, c-format
@@ -2344,9 +2082,8 @@ msgid "%s ignored with %s in %s format"
msgstr "se ignora %s con %s en el formato %s"
#: c-format.c:1835
-#, fuzzy
msgid "use of %s and %s together with %<%%%c%> %s format"
-msgstr "uso de %1$s y %2$s junto con el formato %4$s `%%%3$c'"
+msgstr "uso de %s y %s junto con el formato %<%%%c%> %s"
#: c-format.c:1839
#, c-format
@@ -2354,30 +2091,26 @@ msgid "use of %s and %s together in %s format"
msgstr "uso de %s y %s juntos en el formato %s"
#: c-format.c:1858
-#, fuzzy
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"
+msgstr "%<%%%c%> sólo produce los dos últimos dígitos del año en algunos lugares"
#: c-format.c:1861
-#, fuzzy
msgid "%<%%%c%> yields only last 2 digits of year"
-msgstr "`%%%c' sólo produce los dos últimos dígitos del año"
+msgstr "%<%%%c%> sólo produce los dos últimos dígitos del año"
#. The end of the format string was reached.
#: c-format.c:1877
-#, fuzzy
msgid "no closing %<]%> for %<%%[%> format"
-msgstr "no hay un `]' que cierre para el formato `%%['"
+msgstr "no hay un %<]%> que cierre para el formato %<%%[%>"
#: c-format.c:1890
-#, fuzzy, c-format
+#, c-format
msgid "use of %qs length modifier with %qc type character"
-msgstr "uso del modificador de longitud `%s' con el carácter de tipo `%c'"
+msgstr "uso del modificador de longitud %qs con el carácter de tipo %qc"
#: c-format.c:1911
-#, fuzzy
msgid "%s does not support the %<%%%s%c%> %s format"
-msgstr "%1$s no tiene soporte para el formato %4$s `%%%2$s%3$c'"
+msgstr "%s no tiene soporte para el formato %<%%%s%c%> %s"
#: c-format.c:1928
msgid "operand number specified with suppressed assignment"
@@ -2388,63 +2121,60 @@ 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:2072
-#, fuzzy, c-format
+#, c-format
msgid "writing through null pointer (argument %d)"
msgstr "escribiendo a través de un puntero nulo (argumento %d)"
#: c-format.c:2080
-#, fuzzy, c-format
+#, c-format
msgid "reading through null pointer (argument %d)"
msgstr "leyendo a través de un puntero nulo (argumento %d)"
#: c-format.c:2100
-#, fuzzy, c-format
+#, c-format
msgid "writing into constant object (argument %d)"
msgstr "escribiendo en un objeto constante (argumento %d)"
#: c-format.c:2111
-#, fuzzy, c-format
+#, c-format
msgid "extra type qualifiers in format argument (argument %d)"
msgstr "calificadores de tipo extra en el argumento de formato (argumento %d)"
#: c-format.c:2222
msgid "%s should have type %<%s%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "%s debe ser del tipo %<%s%s%>, pero el argumento %d es del tipo %qT"
#: c-format.c:2225
msgid "format %q.*s expects type %<%s%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "el formato %q.*s espera el tipo %<%s%s%>, pero el argumento %d es del tipo %qT"
#: c-format.c:2232
msgid "%s should have type %<%T%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "%s debe ser del tipo %<%T%s%>, pero el argumento %d es del tipo %qT"
#: c-format.c:2235
msgid "format %q.*s expects type %<%T%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "el formato %q.*s espera el tipo %<%T%s%>, pero el argumento %d es del tipo %qT"
#: c-format.c:2501
-#, fuzzy
msgid "args to be formatted is not %<...%>"
-msgstr "los argumentos que recibirán formato no son '...'"
+msgstr "los argumentos que recibirán formato no son %<...%>"
#: c-format.c:2510
msgid "strftime formats cannot format arguments"
msgstr "los formatos de strftime no pueden dar formato a los argumentos"
#: c-gimplify.c:237
-#, fuzzy
msgid "statement with no effect"
-msgstr "%Hdeclaración sin efecto"
+msgstr "declaración sin efecto"
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "la declaración break no está dentro de un ciclo o switch"
#: c-gimplify.c:317
-#, fuzzy
msgid "continue statement not within loop or switch"
-msgstr "la declaración break no está dentro de un ciclo o switch"
+msgstr "la declaración continue no está dentro de un ciclo o switch"
#: c-incpath.c:70
#, c-format
@@ -2461,17 +2191,17 @@ msgstr " porque es un directorio que no es del sistema que duplica un directori
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "ignorando el directorio inexistente \"%s\"\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "la búsqueda de #include \"...\" inicia aquí:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "la búsqueda de #include <...> inicia aquí:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Fin de la lista de búsqueda.\n"
@@ -2481,20 +2211,18 @@ msgid "badly nested C headers from preprocessor"
msgstr "encabezados C mal anidados del preprocesador"
#: c-lex.c:307
-#, fuzzy
msgid "%Hignoring #pragma %s %s"
-msgstr "ignorando el #pragma %s %s"
+msgstr "%Hignorando el #pragma %s %s"
#. ... or not.
#: c-lex.c:411
-#, fuzzy
msgid "%Hstray %<@%> in program"
-msgstr "%H'@' parásita en el programa"
+msgstr "%H%<@%> parásita en el programa"
#: c-lex.c:425
-#, fuzzy, c-format
+#, c-format
msgid "stray %qs in program"
-msgstr "'%c' parásito en el programa"
+msgstr "%qs parásito en el programa"
#: c-lex.c:435
#, c-format
@@ -2502,14 +2230,13 @@ msgid "missing terminating %c character"
msgstr "falta carácter terminando %c"
#: c-lex.c:437
-#, fuzzy, c-format
+#, c-format
msgid "stray %qc in program"
-msgstr "'%c' parásito en el programa"
+msgstr "%qc parásito en el programa"
#: c-lex.c:439
-#, fuzzy
msgid "stray %<\\%o%> in program"
-msgstr "'\\%o' parásito en el programa"
+msgstr "%<\\%o%> parásito en el programa"
#: c-lex.c:599
msgid "this decimal constant is unsigned only in ISO C90"
@@ -2520,88 +2247,71 @@ msgid "this decimal constant would be unsigned in ISO C90"
msgstr "esta constante decimal será unsigned en ISO C90"
#: c-lex.c:618
-#, fuzzy, c-format
+#, c-format
msgid "integer constant is too large for %qs type"
-msgstr "la constante entera es demasiado grande para el tipo \"%s\""
+msgstr "la constante entera es demasiado grande para el tipo %qs"
#: c-lex.c:684
-#, fuzzy
msgid "floating constant exceeds range of %<%s%>"
-msgstr "el número de coma flotante excede el rango de \"%s\""
+msgstr "la constante de coma flotante excede el rango de %<%s%>"
#: c-lex.c:766
msgid "traditional C rejects string constant concatenation"
msgstr "C tradicional rechaza la concatenación de constantes de cadenas"
-#: c-objc-common.c:81
-#, fuzzy
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
-msgstr "%Jla función '%F' nunca puede ser inlined porque se suprime al usar -fno-inline"
+msgstr "%Jla función %qF nunca puede ser inlined porque se suprime al usar -fno-inline"
-#: c-objc-common.c:91
-#, fuzzy
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
-msgstr "%Jla función '%F' nunca puede ser inlined porque puede no estar ligada dentro de esta unidad de traducción"
+msgstr "%Jla función %qF nunca puede ser inlined porque puede no estar ligada dentro de esta unidad de traducción"
-#: c-objc-common.c:99
-#, fuzzy
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
-msgstr "%Jla función '%F' nunca puede ser inlined porque utiliza atributos que causan conflictos con el inlining"
-
-#: c-objc-common.c:114
-#, fuzzy
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr "%Jla función '%F' nunca puede ser inlined porque tiene tamaños pendientes"
+msgstr "%Jla función %qF nunca puede ser inlined porque utiliza atributos que causan conflictos con el inlining"
-#: c-objc-common.c:127
-#, fuzzy
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr "%Jla función anidada '%F' nunca puede ser inlined porque posiblemente tiene tamaños pendientes guardados"
-
-#: c-objc-common.c:263
-#, fuzzy
+#: c-objc-common.c:244
msgid "used array that cannot be converted to pointer where scalar is required"
-msgstr "se usa un valor de tipo matriz cuando se requiere un escalar"
+msgstr "se usa un valor de tipo matriz que no se puede cambiar a puntero cuando se requiere un escalar"
-#: c-objc-common.c:267
-#, fuzzy
+#: c-objc-common.c:248
msgid "used struct type value where scalar is required"
msgstr "se usa un valor de tipo struct cuando se requiere un escalar"
-#: c-objc-common.c:271
-#, fuzzy
+#: c-objc-common.c:252
msgid "used union type value where scalar is required"
msgstr "se usa un valor de tipo union cuando se requiere un escalar"
#: c-opts.c:144
-#, fuzzy, c-format
+#, c-format
msgid "no class name specified with %qs"
-msgstr "no se especificó un nombre de clase con \"%s\""
+msgstr "no se especificó un nombre de clase con %qs"
#: c-opts.c:148
-#, fuzzy, c-format
+#, c-format
msgid "assertion missing after %qs"
-msgstr "falta una aserción después de \"%s\""
+msgstr "falta una aserción después de %qs"
#: c-opts.c:153
-#, fuzzy, c-format
+#, c-format
msgid "macro name missing after %qs"
-msgstr "falta el nombre de macro después de \"%s\""
+msgstr "falta el nombre de macro después de %qs"
#: c-opts.c:162
-#, fuzzy, c-format
+#, c-format
msgid "missing path after %qs"
-msgstr "falta una ruta después de \"%s\""
+msgstr "falta una ruta después de %qs"
#: c-opts.c:171
-#, fuzzy, c-format
+#, c-format
msgid "missing filename after %qs"
-msgstr "falta un nombre de fichero después de \"%s\""
+msgstr "falta un nombre de fichero después de %qs"
#: c-opts.c:176
-#, fuzzy, c-format
+#, c-format
msgid "missing makefile target after %qs"
-msgstr "falta un fichero make objetivo después de \"%s\""
+msgstr "falta un fichero make objetivo después de %qs"
#: c-opts.c:303
msgid "-I- specified twice"
@@ -2609,87 +2319,87 @@ msgstr "se especificó -I- dos veces"
#: c-opts.c:306
msgid "obsolete option -I- used, please use -iquote instead"
-msgstr ""
+msgstr "se usó la opción obsoleta -I-, por favor utilice -iquote en su lugar"
#: c-opts.c:540
-#, fuzzy, c-format
+#, c-format
msgid "switch %qs is no longer supported"
-msgstr "la opción \"%s\" ya no tiene soporte"
+msgstr "la opción %qs ya no tiene soporte"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr "se renombró -fhandle-exceptions a -fexceptions (y ahora está activado por defecto)"
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr "se especificó dos veces el nombre del fichero de salida"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "se ignora -Wformat-y2k sin -Wformat"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "se ignora -Wformat-extra-args sin -Wformat"
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "se ignora -Wformat-zero-lenght sin -Wformat"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "se ignora -Wformat-nonliteral sin -Wformat"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "se ignora -Wformat-security sin -Wformat"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "se ignora -Wformat-attribute sin -Wformat"
-#: c-opts.c:995
+#: c-opts.c:998
#, c-format
msgid "opening output file %s: %m"
msgstr "abriendo el fichero de salida %s: %m"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, 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-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
-msgstr ""
+msgstr "YYDEBUG no se definió al momento de compilar, se ignora -dy"
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr "abriendo el fichero de dependencias %s: %m"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr "cerrando el fichero de dependencias %s: %m"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, c-format
msgid "when writing output to %s: %m"
msgstr "al escribir la salida a %s: %m"
-#: c-opts.c:1216
+#: c-opts.c:1220
msgid "to generate dependencies you must specify either -M or -MM"
msgstr "para generar dependencias debe especificar -M ó -MM"
-#: c-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr "<interno>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<línea de orden>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr "demasiado tarde para que la directiva # establezca el directorio de depuración"
@@ -2701,16 +2411,16 @@ msgstr "demasiado tarde para que la directiva # establezca el directorio de depu
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "error sintáctico"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "error sintáctico: no se puede regresar"
@@ -2723,18 +2433,16 @@ 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:388 objc/objc-parse.y:411
-#, fuzzy
msgid "ISO C does not allow extra %<;%> outside of a function"
-msgstr "ISO C no permite ';' extra fuera de una función"
+msgstr "ISO C no permite %<;%> extra fuera de una función"
#: c-parse.y:445
msgid "traditional C rejects the unary plus operator"
msgstr "C tradicional rechaza el operador unario mas"
#: c-parse.y:498 objc/objc-parse.y:520
-#, fuzzy
msgid "%<sizeof%> applied to a bit-field"
-msgstr "sizeof aplicado a un campo de bits"
+msgstr "%<sizeof%> aplicado a un campo de bits"
#: c-parse.y:595 objc/objc-parse.y:617
msgid "ISO C forbids omitting the middle term of a ?: expression"
@@ -2742,7 +2450,7 @@ msgstr "ISO C prohíbe la omisión del término medio de una expresión ?:"
#: c-parse.y:636 objc/objc-parse.y:658
msgid "compound literal has variable size"
-msgstr ""
+msgstr "la literal compuesta tiene tamaño variable"
#: c-parse.y:648 objc/objc-parse.y:670
msgid "ISO C90 forbids compound literals"
@@ -2753,170 +2461,157 @@ msgid "ISO C forbids braced-groups within expressions"
msgstr "ISO C prohíbe grupos de llaves dentro de expresiones"
#: c-parse.y:697 objc/objc-parse.y:719
-#, fuzzy
msgid "first argument to %<__builtin_choose_expr%> not a constant"
-msgstr "el primer argumento de __builtin_choose_expr no es una constante"
+msgstr "el primer argumento de %<__builtin_choose_expr%> no es una constante"
#: c-parse.y:1224 objc/objc-parse.y:1273
-#, fuzzy
msgid "%<typeof%> applied to a bit-field"
-msgstr "`typeof' aplicado a un campo de bits"
+msgstr "%<typeof%> aplicado a un campo de bits"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C prohíbe las llaves de inicializador vacías"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C90 prohíbe la especificación de subobjetos a inicializar"
-#: c-parse.y:1375 objc/objc-parse.y:1424
-#, fuzzy
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
-msgstr "uso obsoleto del inicializador designado sin `='"
+msgstr "uso obsoleto del inicializador designado sin %<=%>"
-#: c-parse.y:1379 objc/objc-parse.y:1428
-#, fuzzy
+#: c-parse.y:1393 objc/objc-parse.y:1442
msgid "obsolete use of designated initializer with %<:%>"
-msgstr "uso obsoleto del inicializador asignado con `:'"
+msgstr "uso obsoleto del inicializador asignado con %<:%>"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C prohíbe la especificación de rangos de elementos a inicializar"
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C prohíbe las funciones anidadas"
-#: c-parse.y:1623 objc/objc-parse.y:1672
-#, fuzzy
+#: c-parse.y:1637 objc/objc-parse.y:1686
msgid "ISO C forbids forward references to %<enum%> types"
-msgstr "ISO C prohíbe las declaraciones posteriores para tipos `enum'"
+msgstr "ISO C prohíbe las declaraciones posteriores para tipos %<enum%>"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "coma al final de la lista de enumeradores"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "no hay punto y coma al final del struct o union"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "se especificó un punto y coma extra en un struct o union"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C prohíbe declaraciones de miembros con no miembros"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr "la etiqueta al final de una declaración compuesta"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C90 prohíbe las declaraciones mezcladas y código"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C prohíbe las declaraciones etiquetadas"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
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:2249 objc/objc-parse.y:2344
-#, fuzzy, c-format
+#: c-parse.y:2263 objc/objc-parse.y:2358
+#, c-format
msgid "%E qualifier ignored on asm"
-msgstr "se ignora el calificador %s en asm"
+msgstr "se ignora el calificador %E en asm"
-#: c-parse.y:2343 objc/objc-parse.y:2438
-#, fuzzy
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr "literal de cadena ancha en %<asm%>"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
msgid "ISO C requires a named argument before %<...%>"
-msgstr "ISO C requiere un argumento con nombre antes de `...'"
+msgstr "ISO C requiere un argumento con nombre antes de %<...%>"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
-#, fuzzy
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
msgid "syntax error; also virtual memory exhausted"
-msgstr "error de decodificación; también se agotó la memoria"
+msgstr "error sintáctico; también se agotó la memoria"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "desbordamiento de la pila del decodificador"
-#: c-parse.y:2849 objc/objc-parse.y:3439
-#, fuzzy, c-format
+#: c-parse.y:2877 objc/objc-parse.y:3467
+#, c-format
msgid "syntax error at %qs token"
-msgstr "error sintáctico en el elemento '%s'"
+msgstr "error sintáctico en el elemento %qs"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "error de decodificación"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
msgid "parse error; also virtual memory exhausted"
msgstr "error de decodificación; también se agotó la memoria"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
-#, fuzzy
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
msgid "parse error: cannot back up"
-msgstr "error sintáctico: no se puede regresar"
+msgstr "error de decodificación: no se puede regresar"
#: c-pch.c:130
-#, fuzzy
msgid "can%'t create precompiled header %s: %m"
msgstr "no se puede crear el encabezado precompilado %s: %m"
#: c-pch.c:158
-#, fuzzy
msgid "can%'t write to %s: %m"
msgstr "no se puede escribir a %s: %m"
#: c-pch.c:164
-#, fuzzy, c-format
+#, c-format
msgid "%qs is not a valid output file"
-msgstr "`%s' no es un nombre de fichero de salida válido"
+msgstr "%qs no es un nombre de fichero de salida válido"
#: c-pch.c:193 c-pch.c:208 c-pch.c:222
-#, fuzzy
msgid "can%'t write %s: %m"
msgstr "no se puede escribir %s: %m"
#: c-pch.c:198 c-pch.c:215
-#, fuzzy
msgid "can%'t seek in %s: %m"
msgstr "no se puede buscar en %s: %m"
#: c-pch.c:206 c-pch.c:248 c-pch.c:276 c-pch.c:281 c-pch.c:365
-#, fuzzy
msgid "can%'t read %s: %m"
msgstr "no se puede leer %s: %m"
#: c-pch.c:483
-#, fuzzy
msgid "malformed #pragma GCC pch_preprocess, ignored"
-msgstr "#pragma map malformado, ignorado"
+msgstr "#pragma GCC pch_preprocess malformado, ignorado"
#: c-pch.c:489
-#, fuzzy
msgid "pch_preprocess pragma should only be used with -fpreprocessed"
-msgstr "no se pueden usar -include e -imacros con -fpreprocessed"
+msgstr "el pragma pch_preprocess sólo se debe usar con -fpreprocessed"
#: c-pch.c:490
-#, fuzzy
msgid "use #include instead"
-msgstr "#include anidado con demasiada profundidad"
+msgstr "use #include en su lugar"
#: c-pch.c:498
-#, fuzzy
msgid "%s: couldn%'t open PCH file: %m\n"
-msgstr "%s:no se puede abrir el fichero de salida `%s'\n"
+msgstr "%s: no se puede abrir el fichero PCH: %m\n"
#: c-pch.c:503
msgid "use -Winvalid-pch for more information"
@@ -2925,17 +2620,16 @@ msgstr "use -Winvalid-pch para más información"
#: c-pch.c:504
#, c-format
msgid "%s: PCH file was invalid"
-msgstr ""
+msgstr "%s: el fichero PCH era inválido"
#: c-pragma.c:98
-#, fuzzy
msgid "#pragma pack (pop) encountered without matching #pragma pack (push)"
-msgstr "se encontró un #pragma pack (pop) sin un #pragma pack (push, <n>) coincidente"
+msgstr "se encontró un #pragma pack (pop) sin un #pragma pack (push) coincidente"
#: c-pragma.c:111
-#, fuzzy, c-format
+#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
-msgstr "se encontró un #pragma pack (pop, %s) sin un #pragma pack (push, %s, <n>) coincidente"
+msgstr "se encontró un #pragma pack (pop, %s) sin un #pragma pack (push, %s) coincidente"
#: c-pragma.c:125
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
@@ -2946,38 +2640,32 @@ 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:148
-#, fuzzy
msgid "missing %<(%> after %<#pragma pack%> - ignored"
-msgstr "falta un '(' después de '#pragma pack' - ignorado"
+msgstr "falta un %<(%> después de %<#pragma pack%> - ignorado"
#: c-pragma.c:161 c-pragma.c:201
-#, fuzzy
msgid "malformed %<#pragma pack%> - ignored"
-msgstr "'#pragma pack' mal formado - ignorado"
+msgstr "%<#pragma pack%> mal formado - ignorado"
#: c-pragma.c:166
-#, fuzzy
msgid "malformed %<#pragma pack(push[, id][, <n>])%> - ignored"
-msgstr "'#pragma pack(push[, id], <n>)' mal formado - ignorado"
+msgstr "%<#pragma pack(push[, id], <n>)%> mal formado - ignorado"
#: c-pragma.c:168
-#, fuzzy
msgid "malformed %<#pragma pack(pop[, id])%> - ignored"
-msgstr "'#pragma pack(pop[, id], <n>)' mal formado - ignorado"
+msgstr "%<#pragma pack(pop[, id], <n>)%> mal formado - ignorado"
#: c-pragma.c:177
-#, fuzzy
msgid "unknown action %qs for %<#pragma pack%> - ignored"
-msgstr "acción desconocida '%s' para '#pragma pack' - ignorado"
+msgstr "acción %qs desconocida para %<#pragma pack%> - ignorado"
#: c-pragma.c:204
-#, fuzzy
msgid "junk at end of %<#pragma pack%>"
-msgstr "basura al final de '#pragma pack'"
+msgstr "basura al final de %<#pragma pack%>"
#: c-pragma.c:207
msgid "#pragma pack has no effect with -fpack-struct - ignored"
-msgstr ""
+msgstr "#pragma pack no tiene efecto con -fpack-struct - ignorado"
#: c-pragma.c:227
#, c-format
@@ -2985,1009 +2673,935 @@ 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:260
-#, fuzzy
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
-msgstr "%Jla aplicación del #pragma weak '%D' después del primer uso resulta en conducta no especificada"
+msgstr "%Jla aplicación de #pragma weak %qD después del primer uso resulta en conducta no especificada"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr "#pragma weak malformado, ignorado"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "basura al final de #pragma weak"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr "#pragma redefine_extname malformado, ignorado"
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr "basura al final de #pragma redefine_extname"
-#: c-pragma.c:389
-#, fuzzy
+#: c-pragma.c:421
msgid "#pragma redefine_extname not supported on this target"
-msgstr "no se da soporte a __builtin_eh_return en este objetivo"
+msgstr "no se da soporte a #pragma redefine_extname en este objetivo"
-#: c-pragma.c:406 c-pragma.c:492
-#, fuzzy
+#: c-pragma.c:438 c-pragma.c:524
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
-msgstr "#pragma redefine_extname tiene conflictos con la declaración"
+msgstr "se ignora #pragma redefine_extname debido a conflictos con el renombrado previo"
-#: c-pragma.c:429
-#, fuzzy
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
-msgstr "#pragma redefine_extname tiene conflictos con la declaración"
+msgstr "se ignora #pragma redefine_extname debido a conflictos con un #pragma redefine_extname previo"
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr "#pragma extern_prefix malformado, ignorado"
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr "basura al final de #pragma extern_prefix"
-#: c-pragma.c:457
-#, fuzzy
+#: c-pragma.c:489
msgid "#pragma extern_prefix not supported on this target"
-msgstr "No se da soporte a análisis de perfil en este objetivo."
+msgstr "No se da soporte a #pragma extern_prefix en este objetivo"
-#: c-pragma.c:483
-#, fuzzy
+#: c-pragma.c:515
msgid "asm declaration ignored due to conflict with previous rename"
-msgstr "la declaración asm causa conflictos con el renombrado previo"
+msgstr "se ignora la declaración asm debido a conflictos con el renombrado previo"
-#: c-pragma.c:514
-#, fuzzy
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
-msgstr "#pragma redefine_extname tiene conflictos con la declaración"
+msgstr "se ignora #pragma redefine_extname debido a conflictos con la declaración __asm__"
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
-msgstr ""
+msgstr "el #pragma GCC visibility debe ser seguido por push o pop"
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
-msgstr ""
+msgstr "No hay un push coincidente para %<#pragma GCC visibility pop%>"
-#: c-pragma.c:592 c-pragma.c:621
-#, fuzzy
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
-msgstr "falta un '(' después de '#pragma %s' - ignorado"
+msgstr "falta un %<(%> después de %<#pragma GCC visibility push%> - ignorado"
-#: c-pragma.c:596
-#, fuzzy
+#: c-pragma.c:628
msgid "malformed #pragma GCC visibility push"
-msgstr "#pragma interno malformado"
+msgstr "#pragma GCC visibility push malformado"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
-msgstr ""
+msgstr "No se permiten más de dieciséis #pragma GCC visibility push al mismo tiempo"
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
-msgstr ""
+msgstr "#pragma GCC visibility push() debe especificar default, internal, hidden o protected"
-#: c-pragma.c:625
-#, fuzzy
+#: c-pragma.c:657
msgid "junk at end of %<#pragma GCC visibility%>"
-msgstr "basura al final de #pragma %s"
+msgstr "basura al final de %<#pragma GCC visibility%>"
-#: c-typeck.c:138
-#, fuzzy, c-format
+#: c-typeck.c:139
+#, c-format
msgid "%qs has an incomplete type"
-msgstr "`%s' tiene un tipo de dato incompleto"
+msgstr "%qs tiene un tipo de dato incompleto"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "uso inválido de la expresión void"
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr "uso inválido de un miembro de matriz flexible"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "uso inválido de matrices con límites sin especificar"
-#: c-typeck.c:182
-#, fuzzy
+#: c-typeck.c:183
msgid "invalid use of undefined type %<%s %s%>"
-msgstr "uso inválido del tipo indefinido `%s %s'"
+msgstr "uso inválido del tipo indefinido %<%s %s%>"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:186
-#, fuzzy, c-format
+#: c-typeck.c:187
+#, c-format
msgid "invalid use of incomplete typedef %qs"
-msgstr "uso inválido del typedef incompleto `%s'"
+msgstr "uso inválido del typedef incompleto %qs"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
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:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "los tipos no son totalmente compatibles"
-#: c-typeck.c:987
-#, fuzzy
+#: c-typeck.c:1045
msgid "function return types not compatible due to %<volatile%>"
-msgstr "los tipos de devolución de función no son compatibles debido a `volatile'"
+msgstr "los tipos de devolución de función no son compatibles debido a %<volatile%>"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "aritmética en puntero a un tipo de dato incompleto"
-#: c-typeck.c:1483
-#, fuzzy
+#: c-typeck.c:1559
msgid "%qT has no member named %qs"
-msgstr "%s no tiene un miembro llamado `%s'"
+msgstr "%qT no tiene un miembro llamado %qs"
-#: c-typeck.c:1519
-#, fuzzy, c-format
+#: c-typeck.c:1595
+#, c-format
msgid "request for member %qs in something not a structure or union"
-msgstr "petición del miembro `%s' en algo que no es estructura ó unión"
+msgstr "petición del miembro %qs en algo que no es una estructura o unión"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "puntero deferenciado a tipo de dato incompleto"
-#: c-typeck.c:1552
-#, fuzzy
+#: c-typeck.c:1633
msgid "dereferencing %<void *%> pointer"
-msgstr "deferenciando el puntero `void *'"
+msgstr "deferenciando el puntero %<void *%>"
-#: c-typeck.c:1569 cp/typeck.c:2150
-#, fuzzy, c-format
+#: c-typeck.c:1650 cp/typeck.c:2109
+#, c-format
msgid "invalid type argument of %qs"
-msgstr "argumento de tipo inválido de `%s'"
+msgstr "argumento de tipo inválido de %qs"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "el valor indicado por el subíndice no es ni matriz ni puntero"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "el subíndice de la matriz no es un entero"
-#: c-typeck.c:1614
-#, fuzzy
+#: c-typeck.c:1695
msgid "subscripted value is pointer to function"
-msgstr "al pasar un argumento de puntero a la función"
+msgstr "el valor de subíndice es un puntero a función"
-#: c-typeck.c:1627 cp/typeck.c:2216
-#, fuzzy
+#: c-typeck.c:1708 cp/typeck.c:2175
msgid "array subscript has type %<char%>"
-msgstr "el subíndice de la matriz tiene tipo `char'"
+msgstr "el subíndice de la matriz es de tipo %<char%>"
-#: c-typeck.c:1667
-#, fuzzy
+#: c-typeck.c:1748
msgid "ISO C forbids subscripting %<register%> array"
-msgstr "ISO C prohíbe el subíndice de una matriz `register'"
+msgstr "ISO C prohíbe el subíndice de una matriz %<registe%>"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C90 prohíbe el subíndice de una matriz no-lvaluada"
-#: c-typeck.c:1904
-#, fuzzy, c-format
+#: c-typeck.c:1987
+#, c-format
msgid "called object %qE is not a function"
-msgstr "el objeto llamado no es una función"
+msgstr "el objeto %qE llamado no es una función"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr "función llamada a través de un tipo de dato que no es compatible"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "el elemento inicializador no es constante"
-#: c-typeck.c:2044
-#, fuzzy, c-format
+#: c-typeck.c:2127
+#, c-format
msgid "too many arguments to function %qE"
-msgstr "demasiados argumentos para la función"
+msgstr "demasiados argumentos para la función %qE"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, 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:2084
-#, fuzzy, c-format
+#: c-typeck.c:2167
+#, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
-msgstr "%s como entero en lugar de coma flotante debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como entero en lugar de coma flotante debido al prototipo"
-#: c-typeck.c:2089
-#, fuzzy, c-format
+#: c-typeck.c:2172
+#, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
-msgstr "%s como entero en lugar de complejo debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como entero en lugar de complejo debido al prototipo"
-#: c-typeck.c:2094
-#, fuzzy, c-format
+#: c-typeck.c:2177
+#, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
-msgstr "%s como complejo en lugar de coma flotante debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como complejo en lugar de coma flotante debido al prototipo"
-#: c-typeck.c:2099
-#, fuzzy, c-format
+#: c-typeck.c:2182
+#, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
-msgstr "%s como coma flotante en lugar de entero debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como coma flotante en lugar de entero debido al prototipo"
-#: c-typeck.c:2104
-#, fuzzy, c-format
+#: c-typeck.c:2187
+#, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
-msgstr "%s como complejo en lugar de entero debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como complejo en lugar de entero debido al prototipo"
-#: c-typeck.c:2109
-#, fuzzy, c-format
+#: c-typeck.c:2192
+#, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
-msgstr "%s como coma flotante en lugar de complejo debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como coma flotante en lugar de complejo debido al prototipo"
-#: c-typeck.c:2121
-#, fuzzy
+#: c-typeck.c:2204
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
-msgstr "%s como `float' en lugar de `double' debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como %<float%> en lugar de %<double%> debido al prototipo"
-#: c-typeck.c:2141
-#, fuzzy, c-format
+#: c-typeck.c:2224
+#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
-msgstr "%s con anchura diferente debido al prototipo"
+msgstr "se pasa el argumento %d de %qE con anchura diferente debido al prototipo"
-#: c-typeck.c:2168
-#, fuzzy, c-format
+#: c-typeck.c:2251
+#, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
-msgstr "%s como unsigned debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como unsigned debido al prototipo"
-#: c-typeck.c:2171
-#, fuzzy, c-format
+#: c-typeck.c:2254
+#, c-format
msgid "passing argument %d of %qE as signed due to prototype"
-msgstr "%s como signed debido al prototipo"
+msgstr "se pasa el argumento %d de %qE como signed debido al prototipo"
-#: c-typeck.c:2202
-#, fuzzy, c-format
+#: c-typeck.c:2285
+#, c-format
msgid "too few arguments to function %qE"
-msgstr "muy pocos argumentos para la función"
+msgstr "muy pocos argumentos para la función %qE"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "se sugieren paréntesis alrededor de + o - dentro de un desplazamiento"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "se sugieren paréntesis alrededor de && junto con ||"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "se sugieren paréntesis alrededor de la aritmética para operandos de |"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de |"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "se sugieren paréntesis alrededor de la aritmética para operandos de ^"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de ^"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "se sugieren paréntesis alrededor de + o - para operandos de &"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de &"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
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:2314
-#, fuzzy
+#: c-typeck.c:2397
msgid "pointer of type %<void *%> used in subtraction"
-msgstr "se usó un puntero de tipo `void *' en la sustracción"
+msgstr "se usó un puntero de tipo %<void *%> en la sustracción"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "se utilizó un puntero a una función en la sustracción"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "argumento de tipo erróneo para el incremento unario"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "argumento de tipo erróneo para el decremento unario"
-#: c-typeck.c:2435
-#, fuzzy
+#: c-typeck.c:2518
msgid "ISO C does not support %<~%> for complex conjugation"
-msgstr "ISO C no tiene soporte de `~' para conjugaciones complejas"
+msgstr "ISO C no tiene soporte de %<~%> para conjugaciones complejas"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "argumento de tipo erróneo para complemento de bits"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "argumento de tipo erróneo para abs"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "argumento de tipo erróneo para la conjugación"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "argumento de tipo erróneo para el signo de exclamación unario"
-#: c-typeck.c:2512
-#, fuzzy
+#: c-typeck.c:2595
msgid "ISO C does not support %<++%> and %<--%> on complex types"
-msgstr "ISO C no tiene soporte para `++' y `--' en tipos complejos"
+msgstr "ISO C no tiene soporte para %<++%> y %<--%> en tipos complejos"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "argumento de tipo erróneo para el incremento"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "argumento de tipo erróneo para el decremento"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "incremento de puntero a estructura desconocida"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "decremento de puntero a estructura desconocida"
-#: c-typeck.c:2723
-#, fuzzy, c-format
+#: c-typeck.c:2806
+#, c-format
msgid "assignment of read-only member %qs"
-msgstr "%s del miembro de sólo lectura `%s'"
+msgstr "asignación del miembro de sólo lectura %qs"
-#: c-typeck.c:2724
-#, fuzzy, c-format
+#: c-typeck.c:2807
+#, c-format
msgid "increment of read-only member %qs"
-msgstr "%s del miembro de sólo lectura `%s'"
+msgstr "incremento del miembro de sólo lectura %qs"
-#: c-typeck.c:2725
-#, fuzzy, c-format
+#: c-typeck.c:2808
+#, c-format
msgid "decrement of read-only member %qs"
-msgstr "%s del miembro de sólo lectura `%s'"
+msgstr "decremento del miembro de sólo lectura %qs"
-#: c-typeck.c:2729
-#, fuzzy, c-format
+#: c-typeck.c:2812
+#, c-format
msgid "assignment of read-only variable %qs"
-msgstr "%s de la variable de sólo lectura `%s'"
+msgstr "asignación de la variable de sólo lectura %qs"
-#: c-typeck.c:2730
-#, fuzzy, c-format
+#: c-typeck.c:2813
+#, c-format
msgid "increment of read-only variable %qs"
-msgstr "%s de la variable de sólo lectura `%s'"
+msgstr "incremento de la variable de sólo lectura %qs"
-#: c-typeck.c:2731
-#, fuzzy, c-format
+#: c-typeck.c:2814
+#, c-format
msgid "decrement of read-only variable %qs"
-msgstr "%s de la variable de sólo lectura `%s'"
+msgstr "decremento de la variable de sólo lectura %qs"
-#: c-typeck.c:2734
-#, fuzzy
+#: c-typeck.c:2817
msgid "assignment of read-only location"
-msgstr "%s de la ubicación de sólo lectura"
+msgstr "asignación de la ubicación de sólo lectura"
-#: c-typeck.c:2735
-#, fuzzy
+#: c-typeck.c:2818
msgid "increment of read-only location"
-msgstr "%s de la ubicación de sólo lectura"
+msgstr "incremento de la ubicación de sólo lectura"
-#: c-typeck.c:2736
-#, fuzzy
+#: c-typeck.c:2819
msgid "decrement of read-only location"
-msgstr "%s de la ubicación de sólo lectura"
+msgstr "decremento de la ubicación de sólo lectura"
-#: c-typeck.c:2755
-#, fuzzy
+#: c-typeck.c:2838
msgid "cannot take address of bit-field %qD"
-msgstr "no se puede tomar la dirección del campo de bits `%s'"
+msgstr "no se puede tomar la dirección del campo de bits %qD"
-#: c-typeck.c:2783
-#, fuzzy
+#: c-typeck.c:2866
msgid "global register variable %qD used in nested function"
-msgstr "se usó la variable de registro global `%s' en funciones anidadas"
+msgstr "se usó la variable de registro global %qD en la función anidada"
-#: c-typeck.c:2786
-#, fuzzy
+#: c-typeck.c:2869
msgid "register variable %qD used in nested function"
-msgstr "se usó la variable de registro `%s' en funciones anidadas"
+msgstr "se usó la variable de registro %qD en la función anidada"
-#: c-typeck.c:2791
-#, fuzzy
+#: c-typeck.c:2874
msgid "address of global register variable %qD requested"
-msgstr "se solicitó la dirección de la variable de registro global `%s'"
+msgstr "se solicitó la dirección de la variable de registro global %qD"
-#: c-typeck.c:2793
-#, fuzzy
+#: c-typeck.c:2876
msgid "address of register variable %qD requested"
-msgstr "se solicitó la dirección de la variable register `%s'"
+msgstr "se solicitó la dirección de la variable de registro %qD"
-#: c-typeck.c:2841
-#, fuzzy
+#: c-typeck.c:2924
msgid "non-lvalue array in conditional expression"
-msgstr "modo no-booleano en la expresión condicional"
+msgstr "matriz no-lvaluada en la expresión condicional"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "tipos signed y unsigned en la expresión condicional"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
msgid "ISO C forbids conditional expr with only one void side"
msgstr "ISO C prohíbe una expresión condicional con sólo un lado void"
-#: c-typeck.c:2908 c-typeck.c:2916
-#, fuzzy
+#: c-typeck.c:2991 c-typeck.c:2999
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
-msgstr "ISO C prohíbe expresiones condicionales entre `void *' y punteros de función"
+msgstr "ISO C prohíbe expresiones condicionales entre %<void *%> y punteros de función"
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "los tipos de datos punteros no coinciden en la expresión condicional"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "los tipos de datos punteros/enteros no coinciden en la expresión condicional"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "los tipos de datos no coinciden en la expresión condicional"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
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:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "la conversión especifica el tipo matriz"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "la conversión especifica el tipo función"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO C prohíbe la conversión de un no escalar al mismo tipo"
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C prohíbe la conversión al tipo union"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
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:3120
+#: c-typeck.c:3203
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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "la conversión descarta los calificadores del tipo del destino del puntero"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "la conversión incrementa la alineación requerida del tipo del destino"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "conversión de puntero a entero de tamaño diferente"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
-msgstr ""
+msgstr "conversión desde una llamada a función de tipo %qT al tipo %qT que no coincide"
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "conversión a puntero desde un entero de tamaño diferente"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
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:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr "la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto"
-#: c-typeck.c:3181
-#, fuzzy
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
-msgstr "la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto"
+msgstr "la dereferencia de punteros de tipo castigado puede romper las reglas de alias estricto"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C prohíbe la conversión de un apuntador a función a un tipo de objeto apuntador"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C prohíbe la conversión de objeto apuntador a un tipo de apuntador a función"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr "no se puede pasar un valor-r a un parámetro de referencia"
-#: c-typeck.c:3566 c-typeck.c:3675
-#, fuzzy, c-format
+#: c-typeck.c:3646 c-typeck.c:3761
+#, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
-msgstr "%s hace que la función calificada apunte desde una no calificada"
+msgstr "el paso del argumento %d de %qE hace que la función calificada apunte desde una no calificada"
-#: c-typeck.c:3569 c-typeck.c:3678
-#, fuzzy
+#: c-typeck.c:3649 c-typeck.c:3764
msgid "assignment makes qualified function pointer from unqualified"
-msgstr "%s hace que la función calificada apunte desde una no calificada"
+msgstr "la asignación hace que la función calificada apunte desde una no calificada"
-#: c-typeck.c:3572 c-typeck.c:3680
-#, fuzzy
+#: c-typeck.c:3652 c-typeck.c:3766
msgid "initialization makes qualified function pointer from unqualified"
-msgstr "%s hace que la función calificada apunte desde una no calificada"
+msgstr "la inicialización hace que la función calificada apunte desde una no calificada"
-#: c-typeck.c:3575 c-typeck.c:3682
-#, fuzzy
+#: c-typeck.c:3655 c-typeck.c:3768
msgid "return makes qualified function pointer from unqualified"
-msgstr "%s hace que la función calificada apunte desde una no calificada"
+msgstr "la devolución hace que la función calificada apunte desde una no calificada"
-#: c-typeck.c:3579 c-typeck.c:3643
-#, fuzzy, c-format
+#: c-typeck.c:3659 c-typeck.c:3729
+#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
-msgstr "la conversión de `%T' a `%T' descarta los calificadores del tipo del destino del puntero"
+msgstr "el paso del argumento %d de %qE descarta los calificadores del tipo del destino del puntero"
-#: c-typeck.c:3581 c-typeck.c:3645
-#, fuzzy
+#: c-typeck.c:3661 c-typeck.c:3731
msgid "assignment discards qualifiers from pointer target type"
-msgstr "la conversión descarta los calificadores del tipo del destino del puntero"
+msgstr "la asignación descarta los calificadores del tipo del destino del puntero"
-#: c-typeck.c:3583 c-typeck.c:3647
-#, fuzzy
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "initialization discards qualifiers from pointer target type"
-msgstr "la conversión descarta los calificadores del tipo del destino del puntero"
+msgstr "la inicialización descarta los calificadores del tipo del destino del puntero"
-#: c-typeck.c:3585 c-typeck.c:3649
-#, fuzzy
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "return discards qualifiers from pointer target type"
-msgstr "la conversión descarta los calificadores del tipo del destino del puntero"
+msgstr "la devolución descarta los calificadores del tipo del destino del puntero"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C prohíbe la conversión de argumentos a tipo union"
-#: c-typeck.c:3628
-#, fuzzy
+#: c-typeck.c:3714
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
-msgstr "ISO C prohíbe %s entre punteros a función y `void *'"
+msgstr "ISO C prohíbe el paso del argumento %d de %qE entre un puntero a función y %<void *%>"
-#: c-typeck.c:3631
-#, fuzzy
+#: c-typeck.c:3717
msgid "ISO C forbids assignment between function pointer and %<void *%>"
-msgstr "ISO C prohíbe %s entre punteros a función y `void *'"
+msgstr "ISO C prohíbe la asignación entre un puntero a función y %<void *%>"
-#: c-typeck.c:3633
-#, fuzzy
+#: c-typeck.c:3719
msgid "ISO C forbids initialization between function pointer and %<void *%>"
-msgstr "ISO C prohíbe %s entre punteros a función y `void *'"
+msgstr "ISO C prohíbe la inicialización entre un puntero a función y %<void *%>"
-#: c-typeck.c:3635
-#, fuzzy
+#: c-typeck.c:3721
msgid "ISO C forbids return between function pointer and %<void *%>"
-msgstr "ISO C prohíbe %s entre punteros a función y `void *'"
+msgstr "ISO C prohíbe la devolución entre un puntero a función y %<void *%>"
-#: c-typeck.c:3658
-#, fuzzy, c-format
+#: c-typeck.c:3744
+#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
-msgstr "el puntero que apunta a %s difiere en signo"
+msgstr "el puntero que apunta en el paso del argumento %d de %qE difiere en signo"
-#: c-typeck.c:3660
-#, fuzzy
+#: c-typeck.c:3746
msgid "pointer targets in assignment differ in signedness"
-msgstr "el puntero que apunta a %s difiere en signo"
+msgstr "el puntero que apunta en la asignación difiere en signo"
-#: c-typeck.c:3662
-#, fuzzy
+#: c-typeck.c:3748
msgid "pointer targets in initialization differ in signedness"
-msgstr "el puntero que apunta a %s difiere en signo"
+msgstr "el puntero que apunta en la inicialización difiere en signo"
-#: c-typeck.c:3664
-#, fuzzy
+#: c-typeck.c:3750
msgid "pointer targets in return differ in signedness"
-msgstr "el puntero que apunta a %s difiere en signo"
+msgstr "el puntero que apunta en la devolución difiere en signo"
-#: c-typeck.c:3687
-#, fuzzy, c-format
+#: c-typeck.c:3773
+#, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
-msgstr "%s de tipo de puntero incompatible"
+msgstr "se pasa el argumento %d de %qE desde un tipo de puntero incompatible"
-#: c-typeck.c:3689
-#, fuzzy
+#: c-typeck.c:3775
msgid "assignment from incompatible pointer type"
-msgstr "%s de tipo de puntero incompatible"
+msgstr "asignación desde un tipo de puntero incompatible"
-#: c-typeck.c:3690
-#, fuzzy
+#: c-typeck.c:3776
msgid "initialization from incompatible pointer type"
-msgstr "%s de tipo de puntero incompatible"
+msgstr "inicialización desde un tipo de puntero incompatible"
-#: c-typeck.c:3692
-#, fuzzy
+#: c-typeck.c:3778
msgid "return from incompatible pointer type"
-msgstr "%s de tipo de puntero incompatible"
+msgstr "devolución desde un tipo de puntero incompatible"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "uso inválido de matriz no-lvaluada"
-#: c-typeck.c:3713
-#, fuzzy, c-format
+#: c-typeck.c:3799
+#, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
-msgstr "%s se crea un puntero desde un entero sin una conversión"
+msgstr "el paso del argumento %d de %qE crea un puntero desde un entero sin una conversión"
-#: c-typeck.c:3715
-#, fuzzy
+#: c-typeck.c:3801
msgid "assignment makes pointer from integer without a cast"
-msgstr "%s se crea un puntero desde un entero sin una conversión"
+msgstr "la asignación crea un puntero desde un entero sin una conversión"
-#: c-typeck.c:3717
-#, fuzzy
+#: c-typeck.c:3803
msgid "initialization makes pointer from integer without a cast"
-msgstr "%s se crea un puntero desde un entero sin una conversión"
+msgstr "la inicialización crea un puntero desde un entero sin una conversión"
-#: c-typeck.c:3719
-#, fuzzy
+#: c-typeck.c:3805
msgid "return makes pointer from integer without a cast"
-msgstr "%s se crea un puntero desde un entero sin una conversión"
+msgstr "la devolución crea un puntero desde un entero sin una conversión"
-#: c-typeck.c:3726
-#, fuzzy, c-format
+#: c-typeck.c:3812
+#, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
-msgstr "%s se crea un entero desde un puntero sin una conversión"
+msgstr "el paso del argumento %d de %qE crea un entero desde un puntero sin una conversión"
-#: c-typeck.c:3728
-#, fuzzy
+#: c-typeck.c:3814
msgid "assignment makes integer from pointer without a cast"
-msgstr "%s se crea un entero desde un puntero sin una conversión"
+msgstr "la asignación crea un entero desde un puntero sin una conversión"
-#: c-typeck.c:3730
-#, fuzzy
+#: c-typeck.c:3816
msgid "initialization makes integer from pointer without a cast"
-msgstr "%s se crea un entero desde un puntero sin una conversión"
+msgstr "la inicialización crea un entero desde un puntero sin una conversión"
-#: c-typeck.c:3732
-#, fuzzy
+#: c-typeck.c:3818
msgid "return makes integer from pointer without a cast"
-msgstr "%s se crea un entero desde un puntero sin una conversión"
+msgstr "la devolución crea un entero desde un puntero sin una conversión"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
-#, fuzzy, c-format
+#: c-typeck.c:3831
+#, c-format
msgid "incompatible type for argument %d of %qE"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "tipo incompatible para el argumento %d de %qE"
-#: c-typeck.c:3748
-#, fuzzy
+#: c-typeck.c:3834
msgid "incompatible types in assignment"
-msgstr "tipos incompatibles en %s"
+msgstr "tipos incompatibles en la asignación"
-#: c-typeck.c:3751
-#, fuzzy
+#: c-typeck.c:3837
msgid "incompatible types in initialization"
-msgstr "tipos incompatibles en %s"
+msgstr "tipos incompatibles en la inicialización"
-#: c-typeck.c:3754
-#, fuzzy
+#: c-typeck.c:3840
msgid "incompatible types in return"
-msgstr "tipos incompatibles en %s"
+msgstr "tipos incompatibles en la devolución"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "C tradicional rechaza la inicialización automática de agregados"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
-#, fuzzy, c-format
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
+#, c-format
msgid "(near initialization for %qs)"
-msgstr "(cerca de la inicialización de `%s')"
+msgstr "(cerca de la inicialización de %qs)"
-#: c-typeck.c:4047
-#, fuzzy
+#: c-typeck.c:4133
msgid "array initialized from parenthesized string constant"
-msgstr "matriz de caracteres inicializada con una cadena ancha"
+msgstr "matriz inicializada con una constante de cadena entre paréntesis"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "matriz de caracteres inicializada con una cadena ancha"
-#: c-typeck.c:4116
-#, fuzzy
+#: c-typeck.c:4202
msgid "wchar_t-array initialized from non-wide string"
-msgstr "matriz de caracteres inicializada con una cadena ancha"
+msgstr "matriz de tipo wchar_t inicializada con una cadena que no es ancha"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "la cadena del inicializador para la matriz de caracteres es demasiado larga"
-#: c-typeck.c:4140
-#, fuzzy
+#: c-typeck.c:4226
msgid "array of inappropriate type initialized from string constant"
-msgstr "matriz de caracteres inicializada con una cadena ancha"
+msgstr "matriz de tipo inapropiado inicializada con una constante de cadena"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr "matriz inicializada con una expresión matrizal que no es constante"
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "el elemento inicializador no es calculable al momento de la carga"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "inicializador inválido"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
msgid "opaque vector types cannot be initialized"
msgstr "no se pueden inicializar los tipos de vector opacos"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "grupo extra de llaves al final del inicializador"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "faltan llaves alrededor del inicializador"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "llaves alrededor del inicializador escalar"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr "inicialización de un miembro de matriz flexible en un contexto anidado"
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "inicialización de un miembro de matriz flexible"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "falta el inicializador"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "inicializador escalar vacío"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "elementos extras en el inicializador escalar"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "no se pueden anidar los designadores de inicialización"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "índice de matriz en el inicializador que no es matriz"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "el nombre del campo no está en el inicializador de record o union"
-#: c-typeck.c:5104
-#, fuzzy
+#: c-typeck.c:5199
msgid "array index in initializer not of integer type"
-msgstr "el índice de matriz en el inicializador excede los límites de la matriz"
+msgstr "el índice de matriz en el inicializador no es de tipo entero"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "índice de matriz no constante en el inicializador"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr "el índice de matriz en el inicializador excede los límites de la matriz"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "rango de índices vacío en el inicializador"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "el rango de índices de la matriz en el inicializador excede los límites de la matriz"
-#: c-typeck.c:5193
-#, fuzzy, c-format
+#: c-typeck.c:5288
+#, c-format
msgid "unknown field %qs specified in initializer"
-msgstr "campo `%s' desconocido especificado en el inicializador"
+msgstr "campo %qs desconocido especificado en el inicializador"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "campo inicializado con efectos laterales sobreescritos"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "exceso de elementos en el inicializador de matriz de caracteres"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "exceso de elementos en el inicializador de struct"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr "inicialización no estática de un miembro de matriz flexible"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "exceso de elementos en el inicializador de union"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "C tradicional rechaza la inicialización de unions"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "exceso de elementos en el inicializador de matriz"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr "exceso de elementos en el inicializador de vector"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "exceso de elementos en el inicializador de escalar"
-#: c-typeck.c:6362
-#, fuzzy
+#: c-typeck.c:6492
msgid "ISO C forbids %<goto *expr;%>"
-msgstr "ISO C prohíbe `goto *expr;'"
+msgstr "ISO C prohíbe %<goto *expr;%>"
-#: c-typeck.c:6376 cp/typeck.c:6160
-#, fuzzy
+#: c-typeck.c:6506 cp/typeck.c:6049
msgid "function declared %<noreturn%> has a %<return%> statement"
-msgstr "la función declarada `noreturn' tiene una declaración `return'"
+msgstr "la función declarada %<noreturn%> tiene una declaración %<return%>"
-#: c-typeck.c:6383
-#, fuzzy
+#: c-typeck.c:6513
msgid "%<return%> with no value, in function returning non-void"
-msgstr "`return' sin valores, en una función que no devuelve void"
+msgstr "%<return%> sin valores, en una función que no devuelve void"
-#: c-typeck.c:6390
-#, fuzzy
+#: c-typeck.c:6520
msgid "%<return%> with a value, in function returning void"
-msgstr "`return' con valor, en una función que devuelve void"
+msgstr "%<return%> con valor, en una función que devuelve void"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "la función devuelve la dirección de una variable local"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "la cantidad de switch no es un entero"
-#: c-typeck.c:6518
-#, fuzzy
+#: c-typeck.c:6649
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"
+msgstr "no se convierte la expresión de switch %<long%> a %<int%> en ISO C"
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "la etiqueta case no se encuentra dentro de una declaración switch"
-#: c-typeck.c:6557
-#, fuzzy
+#: c-typeck.c:6687
msgid "%<default%> label not within a switch statement"
-msgstr "la etiqueta `default' no está dentro de una declaración switch"
+msgstr "la etiqueta %<default%> no está dentro de una declaración switch"
-#: c-typeck.c:6621
-#, fuzzy
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
-msgstr "%Hsugiere llaves explícitas para evitar un `else' ambiguo"
+msgstr "%Hsugiere llaves explícitas para evitar un %<else%> ambiguo"
-#: c-typeck.c:6631
+#: c-typeck.c:6761
msgid "%Hempty body in an if-statement"
msgstr "%Hcuerpo vacío en una declaración if"
-#: c-typeck.c:6639
-#, fuzzy
+#: c-typeck.c:6769
msgid "%Hempty body in an else-statement"
-msgstr "cuerpo vacío en una declaración else"
+msgstr "%Hcuerpo vacío en una declaración else"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
-msgstr "la declaración continue no está dentro dentro de un ciclo"
+msgstr "la declaración continue no está dentro de un ciclo"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr "%Hdeclaración sin efecto"
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "la declaración de la expresión tiene tipo de dato incompleto"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "división por cero"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "la cuenta de desplazamiento a la derecha es negativa"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "cuenta de desplazamiento a la derecha >= anchura del tipo"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "la cuenta de desplazamiento a la izquierda es negativa"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "cuenta de desplazamiento a la izquierda >= anchura del tipo"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "no es segura la comparacion de coma flotante con == o !="
-#: c-typeck.c:7255 c-typeck.c:7262
-#, fuzzy
+#: c-typeck.c:7408 c-typeck.c:7415
msgid "ISO C forbids comparison of %<void *%> with function pointer"
-msgstr "ISO C prohíbe la comparación de `void *' con un puntero de función"
+msgstr "ISO C prohíbe la comparación de %<void *%> con un puntero de función"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "la comparación de diferentes tipos de puntero carece de una conversión"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "comparación entre puntero y entero"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "comparación de punteros completos e incompletos"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C prohíbe la comparación entre punteros a funciones"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "comparación ordenada de puntero con el entero cero"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "comparación entre signed y unsigned"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "comparación de un ~unsigned promovido con una constante"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "comparación de un ~unsigned promovido con unsigned"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "la llamada a la función tiene valor agregado"
@@ -4031,7 +3645,7 @@ msgstr "verify_flow_info: Cuenta errónea del borde %i->%i %i"
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: El bloque básico %d succ edge está corrupto"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, 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"
@@ -4042,9 +3656,9 @@ msgid "basic block %d pred edge is corrupted"
msgstr "el bloque básico %d pred edge está corrupto"
#: cfghooks.c:185
-#, fuzzy, c-format
+#, c-format
msgid "its dest_idx should be %d, not %d"
-msgstr "el dominador de %d debería ser %d, no %d"
+msgstr "su dest_idx debería ser %d, no %d"
#: cfghooks.c:214
#, c-format
@@ -4056,466 +3670,462 @@ msgid "verify_flow_info failed"
msgstr "falló verify_flow_info"
#: cfghooks.c:289
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support redirect_edge_and_branch."
-msgstr "%s no tiene soporte para el operando de formato de número %%n$"
+msgstr "%s no tiene soporte para redirect_edge_and_branch."
#: cfghooks.c:307
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support redirect_edge_and_branch_force."
-msgstr "%s no tiene soporte para el operando de formato de número %%n$"
+msgstr "%s no tiene soporte para redirect_edge_and_branch_force."
#: cfghooks.c:325
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support split_block."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para split_block."
#: cfghooks.c:361
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support move_block_after."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para move_block_after."
#: cfghooks.c:374
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support delete_basic_block."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para delete_basic_block."
#: cfghooks.c:406
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support split_edge."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para split_edge."
#: cfghooks.c:467
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support create_basic_block."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para create_basic_block."
#: cfghooks.c:495
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support can_merge_blocks_p."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para can_merge_blocks_p."
#: cfghooks.c:506
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support predict_edge."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para predict_edge."
#: cfghooks.c:515
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support predicted_by_p."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para predicted_by_p."
#: cfghooks.c:529
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support merge_blocks."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para merge_blocks."
#: cfghooks.c:575
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support make_forwarder_block."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para make_forwarder_block."
#: cfghooks.c:680
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support can_duplicate_block_p."
-msgstr "no tiene soporte para multilib"
+msgstr "%s no tiene soporte para can_duplicate_block_p."
#: cfghooks.c:707
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support duplicate_block."
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para duplicate_block."
#: cfghooks.c:773
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support block_ends_with_call_p"
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para block_ends_with_call_p"
#: cfghooks.c:784
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support block_ends_with_condjump_p"
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para block_ends_with_condjump_p"
#: cfghooks.c:802
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support flow_call_edges_add"
-msgstr "%s no tiene soporte para %s"
+msgstr "%s no tiene soporte para flow_call_edges_add"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, 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:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr "Bb %d no pertenece al ciclo %d."
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, 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:1345
+#: cfgloop.c:1353
#, 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:1350
+#: cfgloop.c:1358
#, 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:1355
+#: cfgloop.c:1363
#, 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:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr "El encabezado del ciclo %d no pertenece directamente a él."
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr "El cerrojo del ciclo %d está marcado como parte de una región irreducible."
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr "El bloque básico %d se debe marcar como irreducible."
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr "El bloque básico %d no se debe marcar como irreducible."
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr "El borde de %d a %d se debe marcar como irreducible."
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr "El borde de %d a %d no se debe marcar como irreducible."
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
-msgstr ""
+msgstr "Salida única %d->%d errónea grabada para el ciclo %d."
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
-msgstr ""
+msgstr "La salida correcta es %d->%d."
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
-msgstr ""
+msgstr "No se grabó la salida única para el ciclo %d."
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
-msgstr ""
+msgstr "El ciclo %d no debe tener una salida única (%d -> %d)."
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, 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:1954
+#: cfgrtl.c:1962
#, 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:1966
+#: cfgrtl.c:1974
#, 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:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr "verify_flow_info: REG_BR_PROB no coincide con la configuración %wi %i"
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
-msgstr ""
+msgstr "El borde de caída cruza el límite de la sección (bb %i)"
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, 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:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr "Demasiados bordes de ramificación de salida de bb %i"
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr "Borde de caída después del salto incondicional %i"
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, 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:2059
+#: cfgrtl.c:2067
#, 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:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr "Bordes anormales sin ningún propósito en bb %i"
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, 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:2084
+#: cfgrtl.c:2092
#, 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:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK falta para el bloque %d"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, 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:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr "en el bloque básico %d:"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr "control de flujo insn dentro de un bloque básico"
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr "falta una barrera después del bloque %i"
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, 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:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: Respaldo incorrecto %i->%i"
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr "insn erróneo en el borde del respaldo"
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr "los bloques básicos no están ubicados consecutivamente"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr "insn fuera del bloque básico"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr "return no es seguido por una barrera"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, 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)"
-#: cgraph.c:231
+#: cgraph.c:278
msgid "function body not available"
msgstr "el cuerpo de la función no está disponible"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr "las funciones extern inline redefinidas no se consideran para el `inlining'"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
msgid "function not considered for inlining"
msgstr "la función no se consideró para `inlining'"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
msgid "function not inlinable"
msgstr "la función no se puede hacer inline"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr "se renombró %D después de ser referenciado en el ensamblado"
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
-msgstr ""
+msgstr "call_expr compartida:"
-#: cgraphunit.c:508
-#, fuzzy
+#: cgraphunit.c:518
msgid "Edge points to wrong declaration:"
-msgstr "tipos múltiples en una declaración"
+msgstr "Puntos de borde para una declaración errónea:"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
-msgstr ""
+msgstr "Falta el borde de callgraph para la expresión de llamada:"
-#: cgraphunit.c:543
-#, fuzzy, c-format
+#: cgraphunit.c:553
+#, c-format
msgid "Aux field set for edge %s->%s"
-msgstr "(aún) no hay un campo para la marca %s"
+msgstr "Campo aux establecido para el borde %s->%s"
-#: cgraphunit.c:555
-#, fuzzy
+#: cgraphunit.c:565
msgid "Inlined_to pointer is wrong"
-msgstr "falta la sección de punteros"
+msgstr "El puntero inlined_to está mal"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
-msgstr ""
+msgstr "Múltiples llamantes a inline"
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
-msgstr ""
+msgstr "Se estableció el puntero inlined_to para llamantes no-inline"
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
-msgstr ""
+msgstr "Se estableció el puntero inlined_to, pero no se encontraron predecesores"
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
-msgstr ""
+msgstr "El puntero inlined_to se refiere a sí mismo"
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
-msgstr ""
+msgstr "No se encontró un nodo en el hash DECL_ASSEMBLER_NAME"
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
-msgstr ""
+msgstr "El borde %s->%s no tiene un call_expr correspondiente"
-#: cgraphunit.c:613
-#, fuzzy
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
-msgstr "falló verify_flow_info"
+msgstr "falló verify_cgraph_node."
-#: cgraphunit.c:797
-#, fuzzy
+#: cgraphunit.c:807
msgid "failed to reclaim unneeded function"
-msgstr "el campo `%s' declarado como una función"
+msgstr "falló al reclamar una función innecesaria"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr "se alcanzó el límite de --param large-function-growth"
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr "inlining recursivo"
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr "se alcanzó el límite de --param max-inline-insns-single"
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr "se alcanzó el límite de --param max-inline-insns-single después de hacer inlining en el invocado"
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr "se alcanzó el límite de --param inline-unit-growth"
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
-msgstr ""
+msgstr "Se encontraron nodos sin memoria liberada."
-#: collect2.c:402 gcc.c:6744
-#, fuzzy, c-format
+#: collect2.c:402 gcc.c:6733
+#, c-format
msgid "internal gcc abort in %s, at %s:%d"
-msgstr "aborto en %s, en %s:%d"
+msgstr "aborto interno de gcc en %s, en %s:%d"
#: collect2.c:895
msgid "no arguments"
msgstr "sin argumentos"
-#: collect2.c:1187
-#, fuzzy, c-format
+#: collect2.c:1194
+#, c-format
msgid "unknown demangling style '%s'"
-msgstr "se desconoce el modo de máquina `%s'"
+msgstr "se desconoce el estilo de desenredado '%s'"
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 versión %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "se encuentra(n) %d constructor(es)\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "se encuentra(n) %d destructor(es)\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "se encuentra(n) %d marcos de tabla(s)\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s terminado con la señal %d [%s]%s"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s devolvió el estado de salida %d"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[no se puede encontrar %s]"
-#: collect2.c:1565
-#, fuzzy, c-format
+#: collect2.c:1572
+#, c-format
msgid "cannot find '%s'"
-msgstr "no se puede encontrar `%s'"
+msgstr "no se puede encontrar '%s'"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "redirigiendo salida estándard: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Dejando %s]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4524,55 +4134,53 @@ msgstr ""
"\n"
"write_c_file - el nombre de salida es %s, el prefijo es %s\n"
-#: collect2.c:2042
-#, fuzzy
+#: collect2.c:2049
msgid "cannot find 'nm'"
-msgstr "no se puede encontrar `nm'"
+msgstr "no se puede encontrar 'nm'"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "se encontró la función init en el objeto %s"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "se encontró la función fini en el objeto %s"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
-#, fuzzy
+#: collect2.c:2216
msgid "cannot find 'ldd'"
-msgstr "no se encuentra `ldd'"
+msgstr "no se puede encontrar 'ldd'"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4580,32 +4188,32 @@ msgstr ""
"\n"
"salida de ldd con constructores/destructores.\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "no se encuentra la dependencia dinámica %s"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "no se puede abrir la dependencia dinámica '%s'"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: no es un fichero COFF"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: no se puede abrir como un fichero COFF"
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr "no se encuentra la biblioteca lib%s"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4616,7 +4224,7 @@ msgstr ""
";; %d éxitos.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4664,14 +4272,13 @@ msgid "can't convert value to a vector"
msgstr "no se puede convertir el valor a un vector"
#: coverage.c:168
-#, fuzzy, c-format
+#, c-format
msgid "%qs is not a gcov data file"
-msgstr "`%s' no es un fichero de datos gcov"
+msgstr "%qs no es un fichero de datos gcov"
#: coverage.c:179
-#, fuzzy
msgid "%qs is version %q.*s, expected version %q.*s"
-msgstr "`%s' es versión `%.4s', se esperaba la versión `%.4s'"
+msgstr "%qs es versión %q.*s, se esperaba la versión %q.*s"
#: coverage.c:259 coverage.c:267
#, c-format
@@ -4694,24 +4301,24 @@ msgid "cannot merge separate %s counters for function %u"
msgstr "no se pueden mezclar %s contadores separados para la función %u"
#: coverage.c:296
-#, fuzzy, c-format
+#, c-format
msgid "%qs has overflowed"
-msgstr "`%s' se ha desbordado"
+msgstr "%qs se ha desbordado"
#: coverage.c:296
-#, fuzzy, c-format
+#, c-format
msgid "%qs is corrupted"
-msgstr "`%s' está corrupto"
+msgstr "%qs está corrupto"
#: coverage.c:333
-#, fuzzy, c-format
+#, c-format
msgid "no coverage for function %qs found."
-msgstr "no se encontró cobertura para la función `%s'."
+msgstr "no se encontró cobertura para la función %qs."
#: coverage.c:341 coverage.c:349
-#, fuzzy, c-format
+#, c-format
msgid "coverage mismatch for function %qs while reading counter %qs."
-msgstr "no coincide la cobertura para la función '%s' al leer el contador '%s'."
+msgstr "no coincide la cobertura para la función %qs al leer el contador %qs."
#: coverage.c:532
#, c-format
@@ -4719,9 +4326,9 @@ msgid "cannot open %s"
msgstr "no se puede abrir %s"
#: coverage.c:567
-#, fuzzy, c-format
+#, c-format
msgid "error writing %qs"
-msgstr "error al escribir `%s'"
+msgstr "error al escribir %qs"
#: cppspec.c:106
#, c-format
@@ -4732,7 +4339,7 @@ msgstr "\"%s\" no es una opción válida para el preprocesador"
msgid "too many input files"
msgstr "demasiados ficheros de entrada"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ";; Procesando el bloque de %d a %d, %d establecido.\n"
@@ -4743,9 +4350,8 @@ msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr "%s:%d: confusión por errores previos, saliendo\n"
#: diagnostic.c:228
-#, fuzzy
msgid "compilation terminated due to -Wfatal-errors.\n"
-msgstr "compilación terminada.\n"
+msgstr "compilación terminada debido a -Wfatal-errors.\n"
#: diagnostic.c:237
#, c-format
@@ -4754,7 +4360,7 @@ msgid ""
"with preprocessed source if appropriate.\n"
"See %s for instructions.\n"
msgstr ""
-"Por favor envíe un reporte completo de `bugs',\n"
+"Por favor envíe un reporte completo de bichos,\n"
"con el código preprocesado si es apropiado.\n"
"Vea %s para más instrucciones.\n"
@@ -4772,9 +4378,9 @@ msgid "in %s, at %s:%d"
msgstr "en %s, en %s:%d"
#: dominance.c:834
-#, fuzzy, c-format
+#, c-format
msgid "dominator of %d status unknown"
-msgstr "el dominador de %d debería ser %d, no %d"
+msgstr "el dominador de %d en un estado desconocido"
#: dominance.c:836
#, c-format
@@ -4784,38 +4390,30 @@ msgstr "el dominador de %d debería ser %d, no %d"
#: dominance.c:848
#, c-format
msgid "ENTRY does not dominate bb %d"
-msgstr ""
+msgstr "ENTRY no domina bb %d"
#: dwarf2out.c:3388
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s no está implementado\n"
-#: emit-rtl.c:1215
-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:1242
-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"
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr "Se encontró una compartición de rtl inválida en insn"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr "Rtx compartido"
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
-msgstr ""
+msgstr "Falla de consistencia interna"
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: se usa emit_insn donde se necesita emit_jump_insn:\n"
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "aborto en %s, en %s:%d"
@@ -4825,15 +4423,14 @@ msgid "exception handling disabled, use -fexceptions to enable"
msgstr "manejo de excepciones desactivado, use -fexceptions para activar"
#: except.c:2577
-#, fuzzy
msgid "argument of %<__builtin_eh_return_regno%> must be constant"
-msgstr "el argumento de `builtin_eh_return_regno' debe ser constante"
+msgstr "el argumento de %<__builtin_eh_return_regno%> debe ser constante"
#: except.c:2708
msgid "__builtin_eh_return not supported on this target"
msgstr "no se da soporte a __builtin_eh_return en este objetivo"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "no se da soporte a límites de la pila en este objetivo"
@@ -4846,9 +4443,8 @@ msgid "could not split insn"
msgstr "no se puede dividir insn"
#: final.c:2851
-#, fuzzy
msgid "invalid 'asm': "
-msgstr "`asm' inválido: "
+msgstr "'asm' inválido: "
#: final.c:3034
msgid "nested assembly dialect alternatives"
@@ -4873,9 +4469,9 @@ msgid "invalid %%-code"
msgstr "%%-código inválido"
#: final.c:3203
-#, fuzzy, c-format
+#, c-format
msgid "'%%l' operand isn't a label"
-msgstr "el operando `%%l' no es una etiqueta"
+msgstr "el operando '%%l' no es una etiqueta"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
@@ -4883,103 +4479,95 @@ msgstr "el operando `%%l' no es una etiqueta"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "constante de coma flotante mal usada"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "expresión inválida como operando"
-#: flow.c:495 flow.c:519 flow.c:541
-#, fuzzy
+#: flow.c:494 flow.c:518 flow.c:540
msgid "internal consistency failure"
-msgstr "aborto interno de gcc"
+msgstr "falla interna de consistencia"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Se intentó borrar el insn de prólogo/epílogo"
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "la comparación siempre es %d"
-#: fold-const.c:4899
-#, fuzzy
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
-msgstr "un `or' de pruebas no equivalentes sin coincidencia siempre es 1"
+msgstr "un %<or%> de pruebas no equivalentes sin coincidencia siempre es 1"
-#: fold-const.c:4904
-#, fuzzy
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
-msgstr "un `and' de pruebas equivalentes mutuamente exclusivas siempre es 0"
+msgstr "un %<and%> de pruebas equivalentes mutuamente exclusivas siempre es 0"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr "fold check: el árbol original cambió por un pliegue"
-#: function.c:831 varasm.c:1569
-#, fuzzy
+#: function.c:832 varasm.c:1584
msgid "%Jsize of variable %qD is too large"
-msgstr "%Jel tamaño de la variable '%D' es demasiado grande"
+msgstr "%Jel tamaño de la variable %qD es demasiado grande"
-#: function.c:1442
-#, fuzzy
+#: function.c:1443
msgid "impossible constraint in %<asm%>"
-msgstr "restricción imposible en `asm'"
+msgstr "restricción imposible en %<asm%>"
-#: function.c:3495
-#, fuzzy
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%Jla variable '%D' puede ser sobreescrita por `longjmp' o `vfork'"
+msgstr "%Jla variable %qD puede ser sobreescrita por %<longjmp%> o %<vfork%>"
-#: function.c:3516
-#, fuzzy
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%Jel argumento '%D' puede ser sobreescrito por `longjmp' o `vfork'"
+msgstr "%Jel argumento %qD puede ser sobreescrito por %<longjmp%> o %<vfork%>"
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "la función devuelve un agregado"
-#: function.c:4249
-#, fuzzy
+#: function.c:4368
msgid "%Junused parameter %qD"
-msgstr "%Jparámetro '%D' sin uso"
+msgstr "%Jparámetro %qD sin uso"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "abreviación ambigua %s"
-#: gcc.c:1269
-#, fuzzy, c-format
+#: gcc.c:1264
+#, c-format
msgid "incomplete '%s' option"
-msgstr "opción `%s' incompleta"
+msgstr "opción '%s' incompleta"
-#: gcc.c:1280
-#, fuzzy, c-format
+#: gcc.c:1275
+#, c-format
msgid "missing argument to '%s' option"
-msgstr "faltan argumentos para la opción `%s'"
+msgstr "faltan argumentos para la opción '%s'"
-#: gcc.c:1293
-#, fuzzy, c-format
+#: gcc.c:1288
+#, c-format
msgid "extraneous argument to '%s' option"
-msgstr "argumento extraño para la opción `%s'"
+msgstr "argumento extraño para la opción '%s'"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr "Usando especificaciones internas.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -4988,42 +4576,42 @@ msgstr ""
"Cambiando la especificación de %s a '%s'\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr "Leyendo especificaciones de %s\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "specs sintaxis mal formada de %%include después de %ld caracteres"
-#: gcc.c:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr "no se puede encontrar el fichero de especificaciones %s\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs sintaxis mal formada de %%rename después de %ld caracteres"
-#: gcc.c:2109
+#: gcc.c:2099
#, 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:2116
+#: gcc.c:2106
#, 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:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr "renombrando especificación %s a %s\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5032,30 +4620,30 @@ msgstr ""
"la especificacion es '%s'\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "specs comando %% desconocido después de %ld caracteres"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "specs fichero mal formado después de %ld caracteres"
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "el fichero de especificaciones no tiene especificaciones para enlazar"
-#: gcc.c:2635
-#, fuzzy, c-format
+#: gcc.c:2625
+#, c-format
msgid "system path '%s' is not absolute"
-msgstr "la reservación `%s' no se utiliza"
+msgstr "la ruta del sistema '%s' no es absoluta"
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe no tiene soporte"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5063,7 +4651,7 @@ msgstr ""
"\n"
"¿Continuar? (s ó n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5074,69 +4662,69 @@ msgstr ""
"Por favor envíe un reporte completo de error.\n"
"Vea %s para más instrucciones."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Modo de empleo: %s [opciones] fichero...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Opciones:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Muestra esta información\n"
-#: gcc.c:3038
+#: gcc.c:3028
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:3040
+#: gcc.c:3030
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:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Muestra todas las cadenas internas de especificación\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Muestra la versión del compilador\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Muestra el procesador objetivo del compilador\n"
-#: gcc.c:3044
+#: gcc.c:3034
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:3045
+#: gcc.c:3035
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:3046
+#: gcc.c:3036
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:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5144,96 +4732,95 @@ 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:3052
+#: gcc.c:3042
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:3053
+#: gcc.c:3043
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:3054
+#: gcc.c:3044
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:3055
+#: gcc.c:3045
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:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xassembler <argumento> Pasa el <argumento> al ensamblador\n"
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xpreprocessor <argumento> Pasa el <argumento> al preprocesador\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <argumento> Pasa el <argumento> al enlazador\n"
-#: gcc.c:3059
-#, fuzzy
+#: gcc.c:3049
msgid " -combine Pass multiple source files to compiler at once\n"
-msgstr " -o <fichero> Coloca la salida en el <fichero>\n"
+msgstr " -combine Pasa múltiples ficheros fuente al compilador al mismo tiempo\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps No borra los ficheros intermedios\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Obtiene el tiempo de ejecución de cada subproceso\n"
-#: gcc.c:3063
+#: gcc.c:3053
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:3064
+#: gcc.c:3054
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 <estándard>\n"
-#: gcc.c:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr " -b <máquina> Ejecuta gcc para el objetivo <máquina>, si se instaló\n"
-#: gcc.c:3067
+#: gcc.c:3057
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 se instaló\n"
-#: gcc.c:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Muestra los programas invocados por el compilador\n"
-#: gcc.c:3069
+#: gcc.c:3059
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:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E Solamente preprocesa; no compila, ensambla o enlaza\n"
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Solamente compila; no ensambla o enlaza\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Compila y ensambla, pero no enlaza\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fichero> Coloca la salida en el <fichero>\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5245,7 +4832,7 @@ msgstr ""
" 'none' significa revertir a la conducta habitual de\n"
" adivinar el lenguaje basado en la extensión del fichero\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5258,28 +4845,28 @@ 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:3201
-#, fuzzy, c-format
+#: gcc.c:3191
+#, c-format
msgid "'-%c' option must have argument"
-msgstr "la opción `-%c' debe tener argumentos"
+msgstr "la opción '-%c' debe tener argumentos"
-#: gcc.c:3223
-#, fuzzy, c-format
+#: gcc.c:3213
+#, c-format
msgid "couldn't run '%s': %s"
-msgstr "no se puede ejecutar `%s': %s"
+msgstr "no se puede ejecutar '%s': %s"
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr "(C)"
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5291,260 +4878,257 @@ msgstr ""
"PARTICULAR\n"
"\n"
-#: gcc.c:3512
-#, fuzzy
+#: gcc.c:3502
msgid "argument to '-Xlinker' is missing"
-msgstr "falta el argumento para `-Xlinker'"
+msgstr "falta el argumento para '-Xlinker'"
-#: gcc.c:3520
-#, fuzzy
+#: gcc.c:3510
msgid "argument to '-Xpreprocessor' is missing"
-msgstr "falta el argumento para `-Xpreprocessor'"
+msgstr "falta el argumento para '-Xpreprocessor'"
-#: gcc.c:3527
-#, fuzzy
+#: gcc.c:3517
msgid "argument to '-Xassembler' is missing"
-msgstr "falta el argumento para `-Xassembler'"
+msgstr "falta el argumento para '-Xassembler'"
-#: gcc.c:3534
-#, fuzzy
+#: gcc.c:3524
msgid "argument to '-l' is missing"
-msgstr "falta el argumento para `-l'"
+msgstr "falta el argumento para '-l'"
-#: gcc.c:3555
-#, fuzzy
+#: gcc.c:3545
msgid "argument to '-specs' is missing"
-msgstr "falta el argumento para `-specs'"
+msgstr "falta el argumento para '-specs'"
-#: gcc.c:3569
-#, fuzzy
+#: gcc.c:3559
msgid "argument to '-specs=' is missing"
-msgstr "falta el argumento para `-specs='"
+msgstr "falta el argumento para '-specs='"
-#: gcc.c:3606
-#, fuzzy, c-format
+#: gcc.c:3596
+#, 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"
+msgstr "'-%c' debe estar al inicio de la línea de comandos"
-#: gcc.c:3615
-#, fuzzy
+#: gcc.c:3605
msgid "argument to '-B' is missing"
-msgstr "falta el argumento para `-B'"
+msgstr "falta el argumento para '-B'"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "aviso: se ignora -pipe porque se especificó -save-temps"
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr "aviso: se ignora -pipe porque se especificó -time"
-#: gcc.c:4004
-#, fuzzy
+#: gcc.c:3994
msgid "argument to '-x' is missing"
-msgstr "falta el argumento para `-x'"
+msgstr "falta el argumento para '-x'"
-#: gcc.c:4032
-#, fuzzy, c-format
+#: gcc.c:4022
+#, c-format
msgid "argument to '-%s' is missing"
-msgstr "falta el argumento para `-%s'"
+msgstr "falta el argumento para '-%s'"
-#: gcc.c:4093
-#, fuzzy, c-format
+#: gcc.c:4083
+#, 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"
+msgstr "aviso: '-x %s' después del último fichero de entrada no tiene efecto"
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
-msgstr ""
+msgstr "la opción '%s' no inicia con '-'"
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
-msgstr ""
+msgstr "la especificación '%s' es inválida"
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
-#, fuzzy, c-format
+#: gcc.c:4726
+#, c-format
msgid "spec '%s' has invalid '%%0%c'"
-msgstr "el campo de bits `%s' tiene un tipo inválido"
+msgstr "la especificación '%s' tiene un '%%0%c' inválido"
-#: gcc.c:4933
-#, fuzzy, c-format
+#: gcc.c:4923
+#, c-format
msgid "spec '%s' has invalid '%%W%c"
-msgstr "el campo de bits `%s' tiene un tipo inválido"
+msgstr "la especificación '%s' tiene un '%%W%c' inválido"
-#: gcc.c:4964
-#, fuzzy, c-format
+#: gcc.c:4954
+#, c-format
msgid "spec '%s' has invalid '%%x%c'"
-msgstr "el campo de bits `%s' tiene un tipo inválido"
+msgstr "la especificación '%s' tiene un '%%x%c' inválido"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "falla en spec: '%%*' no ha sido inicializado por coincidencia de patrón"
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "aviso: uso del operador obsoleto %%[ en especificación"
-#: gcc.c:5203
+#: gcc.c:5176
#, 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:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "falla en spec: opción de especificación '%c' no reconocida"
-#: gcc.c:5345
-#, fuzzy, c-format
+#: gcc.c:5318
+#, c-format
msgid "unknown spec function '%s'"
-msgstr "función de especificación `%s' desconocida"
+msgstr "función de especificación '%s' desconocida"
-#: gcc.c:5364
-#, fuzzy, c-format
+#: gcc.c:5337
+#, c-format
msgid "error in args to spec function '%s'"
-msgstr "error en los argumentos para la función de especificación `%s'"
+msgstr "error en los argumentos para la función de especificación '%s'"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr "nombre de la función de especificación malformado"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr "no hay argumentos para la función de especificación"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr "argumentos de la función de especificación malformados"
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
-msgstr ""
+msgstr "la especificación entre llaves '%s' es inválida en '%c'"
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
-msgstr ""
+msgstr "el cuerpo de la especificación entre llaves '%s' es inválido"
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr "falla de especificación: más de un argumento para SYSROOT_SUFFIX_SPEC."
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr "falla de especificación: más de un argumento para SYSROOT_HEADERS_SUFFIX_SPEC."
-#: gcc.c:6274
-#, fuzzy, c-format
+#: gcc.c:6263
+#, c-format
msgid "unrecognized option '-%s'"
-msgstr "opción `-%s' no reconocida"
+msgstr "opción '-%s' no reconocida"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "instalar: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "programas: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "bibliotecas: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
"\n"
-"Para instrucciones de reporte de `bugs', por favor vea:\n"
+"Para instrucciones de reporte de bichos, por favor vea:\n"
+
+#: gcc.c:6344
+#, c-format
+msgid "Target: %s\n"
+msgstr "Objetivo: %s\n"
-#: gcc.c:6355
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "Configurado con: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Modelo de hilos: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc versión %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, 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:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "no hay ficheros de entrada"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: el compilador %s no está instalado en este sistema"
-#: gcc.c:6470
-#, fuzzy, c-format
+#: gcc.c:6460
+#, c-format
msgid "spec '%s' is invalid"
-msgstr "la definición de tipo `%s' está inicializada"
+msgstr "la especificación '%s' es inválida"
-#: gcc.c:6607
+#: gcc.c:6596
#, 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:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "no se reconoce el lenguaje %s"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
-#, fuzzy, c-format
+#: gcc.c:6927
+#, c-format
msgid "multilib spec '%s' is invalid"
-msgstr "la definición de tipo `%s' está inicializada"
+msgstr "la especificación multilib '%s' es inválida"
-#: gcc.c:7130
-#, fuzzy, c-format
+#: gcc.c:7119
+#, c-format
msgid "multilib exclusions '%s' is invalid"
-msgstr "múltiples campos inicializados en la unión `%T'"
+msgstr "las exclusiones multilib '%s' son inválidas"
-#: gcc.c:7188 gcc.c:7329
-#, fuzzy, c-format
+#: gcc.c:7177 gcc.c:7318
+#, c-format
msgid "multilib select '%s' is invalid"
-msgstr "el argumento de plantilla %d es inválido"
+msgstr "la selección multilib '%s' es inválida"
-#: gcc.c:7367
-#, fuzzy, c-format
+#: gcc.c:7356
+#, c-format
msgid "multilib exclusion '%s' is invalid"
-msgstr "múltiples campos inicializados en la unión `%T'"
+msgstr "la exclusión multilib '%s' es inválida"
#: gcov.c:385
msgid ""
@@ -5622,7 +5206,7 @@ msgid ""
"%s.\n"
msgstr ""
"\n"
-"Para instrucciones de reporte de `bugs', por favor vea:\n"
+"Para instrucciones de reporte de bichos, por favor vea:\n"
"%s.\n"
#: gcov.c:410
@@ -5652,19 +5236,19 @@ msgid "\n"
msgstr "\n"
#: gcov.c:540
-#, fuzzy, c-format
+#, c-format
msgid "%s:creating '%s'\n"
-msgstr "%s:creando `%s'\n"
+msgstr "%s:creando '%s'\n"
#: gcov.c:544
-#, fuzzy, c-format
+#, c-format
msgid "%s:error writing output file '%s'\n"
-msgstr "%s:error al escribir el fichero de salida `%s'\n"
+msgstr "%s:error al escribir el fichero de salida '%s'\n"
#: gcov.c:549
-#, fuzzy, c-format
+#, c-format
msgid "%s:could not open output file '%s'\n"
-msgstr "%s:no se puede abrir el fichero de salida `%s'\n"
+msgstr "%s:no se puede abrir el fichero de salida '%s'\n"
#: gcov.c:700
#, c-format
@@ -5677,14 +5261,14 @@ msgid "%s:not a gcov graph file\n"
msgstr "%s:no es un fichero de grafo gcov\n"
#: gcov.c:719
-#, fuzzy, c-format
+#, c-format
msgid "%s:version '%.4s', prefer '%.4s'\n"
-msgstr "%s:versión `%.4s' se prefiere `%.4s'\n"
+msgstr "%s:versión '%.4s' se prefiere '%.4s'\n"
#: gcov.c:771
-#, fuzzy, c-format
+#, c-format
msgid "%s:already seen blocks for '%s'\n"
-msgstr "%s:ya se vieron bloques para `%s'\n"
+msgstr "%s:ya se vieron bloques para '%s'\n"
#: gcov.c:889 gcov.c:1045
#, c-format
@@ -5702,9 +5286,9 @@ msgid "%s:not a gcov data file\n"
msgstr "%s:no es un fichero de datos gcov\n"
#: gcov.c:981
-#, fuzzy, c-format
+#, c-format
msgid "%s:version '%.4s', prefer version '%.4s'\n"
-msgstr "%s:versión `%.4s' se prefiere la versión `%.4s'\n"
+msgstr "%s:versión '%.4s' se prefiere la versión '%.4s'\n"
#: gcov.c:987
#, c-format
@@ -5712,14 +5296,14 @@ msgid "%s:stamp mismatch with graph file\n"
msgstr "%s:no coincide la marca con el fichero de grafo\n"
#: gcov.c:1013
-#, fuzzy, c-format
+#, c-format
msgid "%s:unknown function '%u'\n"
-msgstr "%s:función `%u' desconocida\n"
+msgstr "%s:función '%u' desconocida\n"
#: gcov.c:1026
-#, fuzzy, c-format
+#, c-format
msgid "%s:profile mismatch for '%s'\n"
-msgstr "%s:no coincide el perfil para `%s'\n"
+msgstr "%s:no coincide el perfil para '%s'\n"
#: gcov.c:1045
#, c-format
@@ -5727,29 +5311,29 @@ msgid "%s:overflowed\n"
msgstr "%s:desbordado\n"
#: gcov.c:1069
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' lacks entry and/or exit blocks\n"
-msgstr "%s:`%s' carece de bloques de entrada y/o salida\n"
+msgstr "%s:'%s' carece de bloques de entrada y/o salida\n"
#: gcov.c:1074
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' has arcs to entry block\n"
-msgstr "%s:`%s' tiene arcos hacia el bloque de entrada\n"
+msgstr "%s:'%s' tiene arcos hacia el bloque de entrada\n"
#: gcov.c:1082
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' has arcs from exit block\n"
-msgstr "%s:`%s' tiene arcos del bloque de salida\n"
+msgstr "%s:'%s' tiene arcos del bloque de salida\n"
#: gcov.c:1290
-#, fuzzy, c-format
+#, c-format
msgid "%s:graph is unsolvable for '%s'\n"
-msgstr "%s:no se puede resolver el grafo para `%s'\n"
+msgstr "%s:no se puede resolver el grafo para '%s'\n"
#: gcov.c:1370
-#, fuzzy, c-format
+#, c-format
msgid "%s '%s'\n"
-msgstr "%s `%s'\n"
+msgstr "%s '%s'\n"
#: gcov.c:1373
#, c-format
@@ -5757,9 +5341,8 @@ msgid "Lines executed:%s of %d\n"
msgstr "Líneas ejecutadas:%s de %d\n"
#: gcov.c:1377
-#, fuzzy
msgid "No executable lines\n"
-msgstr "No hay líneas de código ejecutables"
+msgstr "No hay líneas de código ejecutables\n"
#: gcov.c:1383
#, c-format
@@ -5785,9 +5368,9 @@ msgid "No calls\n"
msgstr "No hay llamadas\n"
#: gcov.c:1540
-#, fuzzy, c-format
+#, c-format
msgid "%s:no lines for '%s'\n"
-msgstr "%s:no hay líneas para `%s'\n"
+msgstr "%s:no hay líneas para '%s'\n"
#: gcov.c:1735
#, c-format
@@ -5825,32 +5408,32 @@ msgid "%s:cannot open source file\n"
msgstr "%s:no se puede abrir el fichero fuente\n"
#: gcov.c:1799
-#, fuzzy, c-format
+#, c-format
msgid "%s:source file is newer than graph file '%s'\n"
-msgstr "%s:el fichero fuente es más nuevo que el fichero de grafo `%s'\n"
+msgstr "%s:el fichero fuente es más nuevo que el fichero de grafo '%s'\n"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr "GCSE desactivado"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr "omisión del salto desactivado"
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "%s: %d bloques básicos y %d bloques borde/básicos"
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "%s: %d bloques básicos y %d registros"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, c-format
msgid "can't write PCH file: %m"
@@ -5867,7 +5450,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "no se puede escribir relleno al fichero PCH: %m"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, c-format
msgid "can't read PCH file: %m"
msgstr "no se puede leer el fichero PCH: %m"
@@ -5876,41 +5459,40 @@ msgstr "no se puede leer el fichero PCH: %m"
msgid "had to relocate PCH"
msgstr "se debe reubicar el PCH"
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr "open /dev/zero: %m"
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
msgid "can't write PCH file"
msgstr "no se puede escribir el fichero PCH"
#: gimple-low.c:203
-#, fuzzy
msgid "unexpected node"
-msgstr "operando inesperado"
+msgstr "nodo inesperado"
-#: gimplify.c:3137
-#, fuzzy, c-format
+#: gimplify.c:3317
+#, c-format
msgid "invalid lvalue in asm output %d"
-msgstr "l-valor inválido en la declaración asm"
+msgstr "l-valor inválido en la salida asm %d"
-#: gimplify.c:3185
-#, fuzzy, c-format
+#: gimplify.c:3364
+#, c-format
msgid "memory input %d is not directly addressable"
-msgstr "el número de salida %d no es directamente direccionable"
+msgstr "la entrada de memoria %d no es directamente direccionable"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
-msgstr ""
+msgstr "falló la gimplificación"
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, c-format
msgid "%s cannot be used in asm here"
msgstr "no se puede usar %s en asm aquí"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, c-format
msgid "can't open %s: %m"
msgstr "no se puede abrir %s: %m"
@@ -5923,26 +5505,26 @@ msgstr "fix_sched_param: parámetro desconocido: %s"
#. Opening quotation mark.
#: intl.c:58
msgid "`"
-msgstr ""
+msgstr "`"
#. Closing quotation mark.
#: intl.c:61
msgid "'"
-msgstr ""
+msgstr "'"
#: langhooks.c:516
msgid "At top level:"
msgstr "En el nivel principal:"
#: langhooks.c:521
-#, fuzzy, c-format
+#, c-format
msgid "In member function %qs:"
-msgstr "En la función miembro `%s':"
+msgstr "En la función miembro %qs:"
#: langhooks.c:525
-#, fuzzy, c-format
+#, c-format
msgid "In function %qs:"
-msgstr "En la función `%s':"
+msgstr "En la función %qs:"
#. What to print when a switch has no documentation.
#: opts.c:89
@@ -5970,72 +5552,72 @@ msgstr "el argumento para \"%s\" debe ser un entero no negativo"
msgid "unrecognized command line option \"%s\""
msgstr "no se reconoce la opción de línea de comando \"%s\""
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized no tiene soporte sin -O"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
-msgstr ""
+msgstr "-freorder-blocks-and-partition no funciona con excepciones"
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
-msgstr ""
+msgstr "-freorder-blocks-and-partition no funciona con -g (actualmente)"
-#: opts.c:820
-#, fuzzy, c-format
+#: opts.c:821
+#, c-format
msgid "structure alignment must be a small power of two, not %d"
-msgstr "la alineación debe ser una potencia pequeña de dos, no %d"
+msgstr "la alineación de la estructura debe ser una potencia pequeña de dos, no %d"
-#: opts.c:885
-#, fuzzy, c-format
+#: opts.c:886
+#, c-format
msgid "unrecognised visibility value \"%s\""
-msgstr "no se reconoce el nombre de registro \"%s\""
+msgstr "no se reconoce el valor de visibilidad \"%s\""
-#: opts.c:937
+#: opts.c:938
#, c-format
msgid "unrecognized register name \"%s\""
msgstr "no se reconoce el nombre de registro \"%s\""
-#: opts.c:957
+#: opts.c:962
#, c-format
msgid "unknown tls-model \"%s\""
msgstr "tls-model \"%s\" desconocido"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr "%s: los argumentos --param deben ser de la forma NOMBRE=VALOR"
-#: opts.c:1037
-#, fuzzy, c-format
+#: opts.c:1042
+#, c-format
msgid "invalid --param value %qs"
-msgstr "valor de --param `%s' inválido"
+msgstr "valor de --param %qs inválido"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr "el sistema objetivo no tiene soporte para salida de depuración"
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "el formato de depuración \"%s\" tiene conflictos con una selección previa"
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "no se reconoce el nivel de salida de depuración \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr "el nivel de salida de depuración %s es demasiado elevado"
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr "Las siguientes opciones son independientes del lenguaje:\n"
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
@@ -6044,17 +5626,27 @@ msgstr ""
"El frente %s reconoce las siguientes opciones:\n"
"\n"
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr "La opción --param reconoce como parámetros a los siguientes:\n"
+#: params.c:72
+#, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "el valor mínimo del parámetro %qs es %u"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "el valor máximo del parámetro %qs es %u"
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
-#, fuzzy, c-format
+#: params.c:86
+#, c-format
msgid "invalid parameter %qs"
-msgstr "el parámetro `%s' es inválido"
+msgstr "el parámetro %qs es inválido"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr "la optimización de carga de registro objetivo no se pensó para ser ejecutada dos veces"
@@ -6082,9 +5674,9 @@ msgid "corrupted profile info: number of executions for edge %d-%d thought to be
msgstr "información de análisis de perfil corrupta: el número de ejecuciones para el borde %d-%d debería ser %i"
#: protoize.c:582
-#, fuzzy, c-format
+#, c-format
msgid "%s: error writing file '%s': %s\n"
-msgstr "%s: error al escribir al fichero `%s': %s\n"
+msgstr "%s: error al escribir al fichero '%s': %s\n"
#: protoize.c:626
#, c-format
@@ -6097,19 +5689,19 @@ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: modo de empleo '%s [ -VqufnkNlgC ] [ -B <nombre_directorio> ] [ nombre_fichero ... ]'\n"
#: protoize.c:735
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: no hay acceso de lectura para el fichero '%s'\n"
#: protoize.c:743
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: no hay acceso de escritura para el fichero '%s'\n"
#: protoize.c:751
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: no hay acceso de escritura para el directorio que contiene a '%s'\n"
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
@@ -6134,14 +5726,14 @@ msgstr ""
"%s: error fatal: fichero de información auxiliar corrupto en la línea %d\n"
#: protoize.c:1636
-#, fuzzy, c-format
+#, 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"
+msgstr "%s:%d: la declaración de la función '%s' toma formas diferentes\n"
#: protoize.c:1891
-#, fuzzy, c-format
+#, c-format
msgid "%s: compiling '%s'\n"
-msgstr "%s: compilando `%s'\n"
+msgstr "%s: compilando '%s'\n"
#: protoize.c:1914
#, c-format
@@ -6159,49 +5751,49 @@ msgid "%s: %s exited with status %d\n"
msgstr "%s: %s terminó con estado %d\n"
#: protoize.c:1976
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: missing SYSCALLS file '%s'\n"
-msgstr "%s: aviso: falta el fichero SYSCALLS `%s'\n"
+msgstr "%s: aviso: falta el fichero SYSCALLS '%s'\n"
#: protoize.c:1985 protoize.c:2014
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede leer el fichero de información auxiliar '%s': %s\n"
#: protoize.c:2030 protoize.c:2058
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede obtener el estado del fichero de información auxiliar '%s': %s\n"
#: protoize.c:2086
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede abrir el fichero de información auxiliar '%s' para lectura: %s\n"
#: protoize.c:2104
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: error al leer el fichero de información auxiliar '%s': %s\n"
#: protoize.c:2117
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: error al cerrar el fichero de información auxiliar '%s': %s\n"
#: protoize.c:2133
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede borrar el fichero de información auxiliar '%s': %s\n"
#: protoize.c:2215 protoize.c:4185
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't delete file '%s': %s\n"
-msgstr "%s: no se puede borrar el fichero `%s': %s\n"
+msgstr "%s: no se puede borrar el fichero '%s': %s\n"
#: protoize.c:2293
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: no se puede renombrar el fichero '%s' a '%s': %s\n"
#: protoize.c:2415
#, c-format
@@ -6219,29 +5811,29 @@ msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: listas de conflictos para '%s' a continuación:\n"
#: protoize.c:2454
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: usando listas formales de %s(%d) para la función '%s'\n"
#: protoize.c:2494
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: '%s' used but missing from SYSCALLS\n"
-msgstr "%s: %d: se usa `%s' pero falta en SYSCALLS\n"
+msgstr "%s: %d: se usa '%s' pero falta en SYSCALLS\n"
#: protoize.c:2500
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: no extern definition for '%s'\n"
-msgstr "%s: %d: aviso: no hay definición extern para `%s'\n"
+msgstr "%s: %d: aviso: no hay definición extern para '%s'\n"
#: protoize.c:2530
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: no hay definición static para '%s' en el fichero '%s'\n"
#: protoize.c:2536
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: definiciones static múltiples de '%s' en el fichero '%s'\n"
#: protoize.c:2706 protoize.c:2709
#, c-format
@@ -6254,52 +5846,52 @@ 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:2920
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se convirtió la declaración de la función '%s'\n"
#: protoize.c:3043
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: demasiadas listas de parámetros en la declaración de '%s'\n"
#: protoize.c:3064
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: warning: too few parameter lists in declaration of '%s'\n"
msgstr ""
"\n"
-"%s: aviso: muy pocas listas de parámetros en la declaración de `%s'\n"
+"%s: aviso: muy pocas listas de parámetros en la declaración de '%s'\n"
#: protoize.c:3160
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: found '%s' but expected '%s'\n"
-msgstr "%s: %d: aviso: se encontró `%s' pero se esperaba `%s'\n"
+msgstr "%s: %d: aviso: se encontró '%s' pero se esperaba '%s'\n"
#: protoize.c:3335
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se insertó la declaración local para la función '%s'\n"
#: protoize.c:3362
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: %d: warning: can't add declaration of '%s' into macro call\n"
msgstr ""
"\n"
-"%s: %d: aviso: no se puede agregar la declaración de `%s' en la llamada a macro\n"
+"%s: %d: aviso: no se puede agregar la declaración de '%s' en la llamada a macro\n"
#: protoize.c:3434
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se insertaron las declaraciones globales para el fichero '%s'\n"
#: protoize.c:3523 protoize.c:3553
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se convirtió la definición de la función '%s'\n"
#: protoize.c:3542
#, c-format
@@ -6307,16 +5899,16 @@ 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:3868
-#, fuzzy, c-format
+#, 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"
+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:3884
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: '%s' excluded by preprocessing\n"
-msgstr "%s: %d: aviso: `%s' fue excluído por el preprocesamiento\n"
+msgstr "%s: %d: aviso: se excluyó '%s' por el preprocesamiento\n"
#: protoize.c:3887
#, c-format
@@ -6324,63 +5916,63 @@ msgid "%s: function definition not converted\n"
msgstr "%s: no se convirtió la definición de la función\n"
#: protoize.c:3945
-#, fuzzy, c-format
+#, c-format
msgid "%s: '%s' not converted\n"
-msgstr "%s: no se convirtió `%s'\n"
+msgstr "%s: no se convirtió '%s'\n"
#: protoize.c:3953
-#, fuzzy, c-format
+#, c-format
msgid "%s: would convert file '%s'\n"
-msgstr "%s: se podría convertir el fichero `%s'\n"
+msgstr "%s: se podría convertir el fichero '%s'\n"
#: protoize.c:3956
-#, fuzzy, c-format
+#, c-format
msgid "%s: converting file '%s'\n"
-msgstr "%s: convirtiendo el fichero `%s'\n"
+msgstr "%s: convirtiendo el fichero '%s'\n"
#: protoize.c:3966
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede obtener el estado del fichero '%s': %s\n"
#: protoize.c:4008
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede abrir el fichero '%s' para lectura: %s\n"
#: protoize.c:4023
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: error reading input file '%s': %s\n"
msgstr ""
"\n"
-"%s: error al leer el fichero de entrada `%s': %s\n"
+"%s: error al leer el fichero de entrada '%s': %s\n"
#: protoize.c:4057
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede crear/abrir el fichero limpio '%s': %s\n"
#: protoize.c:4162
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: aviso: el fichero '%s' ya se había guardado en '%s'\n"
#: protoize.c:4170
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede enlazar el fichero '%s' a '%s': %s\n"
#: protoize.c:4200
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede crear/abrir el fichero de salida '%s': %s\n"
#: protoize.c:4233
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: no se puede cambiar el modo del fichero '%s': %s\n"
#: protoize.c:4406
#, c-format
@@ -6392,100 +5984,91 @@ msgstr "%s: no se puede obtener el directorio de trabajo: %s\n"
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"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr "No se puede encontrar un coloreado.\n"
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, 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:631
+#: reg-stack.c:632
#, 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:654
+#: reg-stack.c:655
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:691
+#: reg-stack.c:692
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:710
-#, fuzzy
+#: reg-stack.c:711
msgid "output operand %d must use %<&%> constraint"
-msgstr "el operando de salida %d debe usar la restricción `&'"
+msgstr "el operando de salida %d debe usar la restricción %<&%>"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "no se puede usar '%s' como un registro %s"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "nombre de registro desconocido: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "la variable de registro global sigue a una definiciónd de función"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "nombre de registro usado por dos variables de registro globales"
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr "registro de llamada alterada usado para una variable de registro global"
-#: regrename.c:1876
+#: regrename.c:1872
#, 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:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: Ciclo en la cadena regno (%u)"
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno erróneo (%u)"
-#: regrename.c:1903
+#: regrename.c:1899
#, 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:1252
-#, fuzzy
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
-msgstr "no se puede recargar operandos constantes enteros en `asm'"
+msgstr "no se puede recargar operandos constantes enteros en %<asm%>"
-#: reload.c:1275
-#, fuzzy
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
-msgstr "es imposible inicio la restricción de registros en `asm'"
+msgstr "es imposible la restricción de registros en %<asm%>"
-#: reload.c:3513
-#, fuzzy
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
-msgstr "se usó la restricción `&' sin una clase de registro"
+msgstr "se usó la restricción %<&%> sin una clase de registro"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr "no se pueden generar recargas para:"
-#: reload.c:3680 reload.c:3912
-#, fuzzy
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
-msgstr "restricciones de operandos inconsistentes en un `asm'"
+msgstr "restricciones de operandos inconsistentes en un %<asm%>"
#: reload1.c:1211
msgid "frame size too large for reliable stack checking"
@@ -6495,44 +6078,40 @@ msgstr "el tamaño del marco es demasiado grande para una revisión confiable de l
msgid "try reducing the number of local variables"
msgstr "intente reducir el número de variables locales"
-#: reload1.c:1866
-#, fuzzy
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
-msgstr "no se puede encontrar un registro en la clase `%s' mientras se recarga `asm'"
+msgstr "no se puede encontrar un registro en la clase %qs al recargar %<asm%>"
-#: reload1.c:1871
-#, fuzzy, c-format
+#: reload1.c:1870
+#, c-format
msgid "unable to find a register to spill in class %qs"
-msgstr "no se puede encontrar un registro para vaciar la clase `%s'"
+msgstr "no se puede encontrar un registro para vaciar la clase %qs"
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr "este es el insn:"
-#: reload1.c:3864
-#, fuzzy
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
-msgstr "el operando `asm' requiere una recarga imposible"
+msgstr "el operando %<asm%> requiere una recarga imposible"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr "no se puede encontrar un registro de vaciado"
-#: reload1.c:4988
-#, fuzzy
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
-msgstr "la restricción del operando `asm' es incompatible con el tamaño del operando"
+msgstr "la restricción del operando %<asm%> es incompatible con el tamaño del operando"
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr "modoVOID en una salida"
-#: reload1.c:6607
-#, fuzzy
+#: reload1.c:6615
msgid "output operand is constant in %<asm%>"
-msgstr "el operando de salida es constante en `asm'"
+msgstr "el operando de salida es constante en %<asm%>"
#: rtl-error.c:128
msgid "unrecognizable insn:"
@@ -6542,157 +6121,147 @@ msgstr "insn no reconocible:"
msgid "insn does not satisfy its constraints:"
msgstr "insn no satisface sus restricciones:"
-#: rtl.c:472
-#, fuzzy, c-format
+#: rtl.c:471
+#, 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"
+msgstr "Revisión RTL: acceso de elt %d de '%s' con el último elt %d en %s, en %s:%d"
-#: rtl.c:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
-#, fuzzy, c-format
+#: rtl.c:500
+#, 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"
+msgstr "Revisión RTL: se esperaba el código '%s', se tiene '%s' en %s, en %s:%d"
-#: rtl.c:511
-#, fuzzy, c-format
+#: rtl.c:510
+#, 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"
+msgstr "Revisión RTL: se esperaba el código '%s' ó '%s', se tiene '%s' en %s, en %s:%d"
-#: rtl.c:522
+#: rtl.c:521
#, 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"
-#: rtl.c:533
-#, fuzzy, c-format
+#: rtl.c:532
+#, 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"
+msgstr "Revisión de opción RTL: se usó %s con el código rtx inesperado '%s' en %s, en %s:%d"
-#: stmt.c:316
-#, fuzzy
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
-msgstr "la restricción de operando de salida carece de `='"
+msgstr "la restricción de operando de salida carece de %<=%>"
-#: stmt.c:331
-#, fuzzy, c-format
+#: stmt.c:332
+#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
-msgstr "la restricción de salida `%c' para el operando %d no está al principio"
+msgstr "la restricción de salida %qc para el operando %d no está al inicio"
-#: stmt.c:354
-#, fuzzy
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
-msgstr "la restriccion de operando contiene '+' ó '=' en una posición ilegal"
+msgstr "la restriccion de operando contiene %<+%> ó %<=%> en una posición incorrecta"
-#: stmt.c:361 stmt.c:460
-#, fuzzy
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
-msgstr "se usó la restricción `%%' con el último operando"
+msgstr "se usó la restricción %<%%%> con el último operando"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "la restricción coincidente no es válida en el operando de salida"
-#: stmt.c:451
-#, fuzzy, c-format
+#: stmt.c:452
+#, c-format
msgid "input operand constraint contains %qc"
-msgstr "la restrcción de operando de entrada contiene `%c'"
+msgstr "la restricción de operando de entrada contiene %qc"
-#: stmt.c:493
+#: stmt.c:494
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:531
-#, fuzzy, c-format
+#: stmt.c:532
+#, c-format
msgid "invalid punctuation %qc in constraint"
-msgstr "puntuación inválida `%c' en la restricción"
+msgstr "puntuación %qc inválida en la restricción"
-#: stmt.c:555
+#: stmt.c:556
msgid "matching constraint does not allow a register"
msgstr "la restricción coincidente no permite un registro"
# FIXME: encontrar una mejor traducción para `clobber' en este contexto. cfuga
-#: stmt.c:583
-#, fuzzy, c-format
+#: stmt.c:584
+#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
-msgstr "los calificadores asm para la variable `%s' generan conflicto con la lista de agrupación asm"
+msgstr "los calificadores asm para la variable %qs generan conflicto con la lista de agrupación asm"
-#: stmt.c:672
-#, fuzzy
+#: stmt.c:673
msgid "unknown register name %qs in %<asm%>"
-msgstr "nombre de registro `%s' desconocido en `asm'"
+msgstr "nombre de registro %qs desconocido en %<asm%>"
-#: stmt.c:680
-#, fuzzy
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
-msgstr "registro PIC `%s' sobreescrito en `asm'"
+msgstr "registro PIC %qs sobreescrito en %<asm%>"
-#: stmt.c:727
-#, fuzzy
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
-msgstr "más de %d operandos en `asm'"
+msgstr "más de %d operandos en %<asm%>"
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "el número de salida %d no es directamente direccionable"
-#: stmt.c:869
-#, fuzzy
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "el operando asm %d probablemente no coincide con las restricciones"
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr "el uso de entrada de memoria sin un lvalor en el operando asm %d es obsoleto"
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr "la agrupación asm causa conflictos con el operando de salida"
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr "la agrupación asm causa conflictos con el operando de entrada"
-#: stmt.c:1108
-#, fuzzy
+#: stmt.c:1109
msgid "too many alternatives in %<asm%>"
-msgstr "demasiadas alternativas en `asm'"
+msgstr "demasiadas alternativas en %<asm%>"
-#: stmt.c:1120
-#, fuzzy
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
-msgstr "las restricciones de operandos para `asm' difieren en el número de alternativas"
+msgstr "las restricciones de operandos para %<asm%> difieren en el número de alternativas"
-#: stmt.c:1173
-#, fuzzy, c-format
+#: stmt.c:1174
+#, c-format
msgid "duplicate asm operand name %qs"
-msgstr "nombre `%s' de operando asm duplicado"
+msgstr "nombre de operando asm %qs duplicado"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr "falta la llave final para el operando nombrado"
-#: stmt.c:1299
-#, fuzzy, c-format
+#: stmt.c:1300
+#, c-format
msgid "undefined named operand %qs"
-msgstr "operador '%s' nombrado sin definir"
+msgstr "operador %qs nombrado sin definir"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr "%Hno se utiliza el valor calculado"
#: stor-layout.c:152
-#, fuzzy
msgid "type size can%'t be explicitly evaluated"
msgstr "el tamaño del tipo no se puede evaluar explícitamente"
@@ -6701,43 +6270,38 @@ msgid "variable-size type declared outside of any function"
msgstr "tipo de tamaño variable declarado fuera de cualquier función"
#: stor-layout.c:458
-#, fuzzy
msgid "%Jsize of %qD is %d bytes"
-msgstr "%Jel tamaño de '%D' es de %d bytes"
+msgstr "%Jel tamaño de %qD es de %d bytes"
#: stor-layout.c:460
-#, fuzzy
msgid "%Jsize of %qD is larger than %d bytes"
-msgstr "%Jel tamaño de '%D' es mayor que %d bytes"
+msgstr "%Jel tamaño de %qD es mayor que %d bytes"
#: stor-layout.c:844
-#, fuzzy
msgid "%Jpacked attribute causes inefficient alignment for %qD"
-msgstr "%Jel atributo packed causa una alineación ineficiente para '%D'"
+msgstr "%Jel atributo packed causa una alineación ineficiente para %qD"
#: stor-layout.c:847
-#, fuzzy
msgid "%Jpacked attribute is unnecessary for %qD"
-msgstr "%Jno es necesario el atributo packed para '%D'"
+msgstr "%Jel atributo packed es innecesario para %qD"
#: stor-layout.c:863
-#, fuzzy
msgid "%Jpadding struct to align %qD"
-msgstr "%Jestructura de relleno para alinear '%D'"
+msgstr "%Jestructura de relleno para alinear %qD"
#: stor-layout.c:1205
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:1235
-#, fuzzy, c-format
+#, c-format
msgid "packed attribute causes inefficient alignment for %qs"
-msgstr "el atributo packed causa una alineación ineficiente para `%s'"
+msgstr "el atributo packed causa una alineación ineficiente para %qs"
#: stor-layout.c:1238
-#, fuzzy, c-format
+#, c-format
msgid "packed attribute is unnecessary for %qs"
-msgstr "no es necesario el atributo packed para `%s'"
+msgstr "el atributo packed es innecesario para %qs"
#: stor-layout.c:1243
msgid "packed attribute causes inefficient alignment"
@@ -6777,7 +6341,7 @@ msgstr "collect: leyendo %s\n"
#: tlink.c:475
#, c-format
msgid "repository file '%s' does not contain command-line arguments"
-msgstr ""
+msgstr "el fichero de repositorio '%s' no contiene argumentos de línea de comandos"
#: tlink.c:525
#, c-format
@@ -6787,7 +6351,7 @@ msgstr "collect: recompilando %s\n"
#: tlink.c:696
#, c-format
msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
-msgstr ""
+msgstr "'%s' se asignó a '%s', pero no se definió durante la recompilación, o viceversa"
#: tlink.c:705
#, c-format
@@ -6804,66 +6368,63 @@ msgstr "collect: reenlazando\n"
msgid "ld returned %d exit status"
msgstr "ld devolvió el estado de salida %d"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
-#, fuzzy, c-format
+#: toplev.c:536
+#, c-format
msgid "invalid option argument %qs"
-msgstr "argumento de opción `%s' inválido"
+msgstr "argumento de opción %qs inválido"
-#: toplev.c:602
-#, fuzzy
+#: toplev.c:606
msgid "unrecoverable error"
-msgstr "error interno"
+msgstr "error no recuperable"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr "obteniendo el límite del tamaño máximo del fichero core: %m"
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr "estableciendo el límite del tamaño máximo del fichero core: %m"
-#: toplev.c:846
-#, fuzzy
+#: toplev.c:850
msgid "%J%qF declared %<static%> but never defined"
-msgstr "%J'%F' declarado `static' pero nunca se definió"
+msgstr "%J%qF se declaró %<static%> pero nunca se definió"
-#: toplev.c:872
-#, fuzzy
+#: toplev.c:876
msgid "%J%qD defined but not used"
-msgstr "%Jse definió '%D' pero no se usa"
+msgstr "%Jse definió %qD pero no se usa"
-#: toplev.c:895 toplev.c:918
-#, fuzzy, c-format
+#: toplev.c:899 toplev.c:922
+#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
-msgstr "`%s' es obsoleto (declarado en %s:%d)"
+msgstr "%qs es obsoleto (declarado en %s:%d)"
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr "el tipo es obsoleto (declarado en %s:%d)"
-#: toplev.c:927
-#, fuzzy, c-format
+#: toplev.c:931
+#, c-format
msgid "%qs is deprecated"
-msgstr "`%s' es obsoleto"
+msgstr "%qs es obsoleto"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr "el tipo es obsoleto"
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -6872,12 +6433,12 @@ msgstr ""
"\n"
"Opciones específicas del objetivo:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23s [sin documentar]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -6886,24 +6447,24 @@ msgstr ""
"\n"
"Además hay opciones específicas del objetivo sin documentar.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " Existen, pero no están documentadas.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "opción de depuración de gcc no reconocida: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
-#, fuzzy, c-format
+#, c-format
msgid "invalid option %qs"
-msgstr "opción %s inválida"
+msgstr "opción %qs inválida"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6914,719 +6475,677 @@ msgstr ""
"%s\t compilado por GNU C versión %s.\n"
"%s%s%s versión %s (%s) compilado por CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, 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:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "opciones pasadas: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "opciones activadas: "
-#: toplev.c:1402
-#, fuzzy
+#: toplev.c:1414
msgid "can%'t open %s for writing: %m"
msgstr "no se puede abrir %s para escritura: %m"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr "creado y usado con diferentes opciones de -fpic"
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr "creado y usado con diferentes opciones de -fpie"
-#: toplev.c:1538 config/sh/sh.c:7358
-#, fuzzy, c-format
+#: toplev.c:1545 config/sh/sh.c:7386
+#, c-format
msgid "created and used with differing settings of '-m%s'"
-msgstr "creado y usado con diferentes opciones de `-m%s'"
+msgstr "creado y usado con diferentes opciones de '-m%s'"
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr "memoria agotada"
-#: toplev.c:1736
+#: toplev.c:1756
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:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "esta máquina objetivo no tiene ramificaciones retardadas"
-#: toplev.c:1744
-#, fuzzy
+#: toplev.c:1764
msgid "value-based profiling not yet implemented in trees."
-msgstr "aún no se ha implementado el análisis de perfil"
+msgstr "aún no se ha implementado el análisis de perfil basado en valores para árboles."
-#: toplev.c:1757
+#: toplev.c:1777
#, 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:1831
+#: toplev.c:1851
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "el sistema objetivo no tiene soporte para el formato de depuración \"%s\""
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
-msgstr ""
+msgstr "se solicitó seguimiento de variables, pero es inútil a menos que se produzca información de depuración"
-#: toplev.c:1846
-#, fuzzy
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
-msgstr "el sistema objetivo no tiene soporte para el formato de depuración \"%s\""
+msgstr "se solicitó seguimiento de variables, pero no tiene soporte en este formato de depuración"
-#: toplev.c:1866
-#, fuzzy
+#: toplev.c:1886
msgid "can%'t open %s: %m"
msgstr "no se puede abrir %s: %m"
-#: toplev.c:1873
+#: toplev.c:1893
msgid "-ffunction-sections not supported for this target"
msgstr "no se da soporte a -ffunction-sections para este objetivo"
-#: toplev.c:1878
+#: toplev.c:1898
msgid "-fdata-sections not supported for this target"
msgstr "no se da soporte a -fdata-sections para este objetivo"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections desactivado; hace imposible el análisis de perfil"
-#: toplev.c:1892
+#: toplev.c:1912
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "no se da soporte a -fprefetch-loop-arrays para este objetivo"
-#: toplev.c:1898
-#, fuzzy
+#: toplev.c:1918
msgid "-fspeculative-prefetching not supported for this target"
-msgstr "no se da soporte a -fdata-sections para este objetivo"
+msgstr "no se da soporte a -fspeculative-prefetching para este objetivo"
-#: toplev.c:1904
+#: toplev.c:1924
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:1910
-#, fuzzy
+#: toplev.c:1930
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
-msgstr "no se da soporte a -fprefetch-loop-arrays para este objetivo (intente los interruptores -march)"
+msgstr "no se da soporte a -fspeculative-prefetching para este objetivo (intente los interruptores -march)"
-#: toplev.c:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays no tiene soporte con -Os"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections podría afectar la depuración en algunos objetivos"
-#: toplev.c:2034
+#: toplev.c:2057
#, c-format
msgid "error writing to %s: %m"
msgstr "error al escribir a %s: %m"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, c-format
msgid "error closing %s: %m"
msgstr "error al cerrar %s: %m"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr "%Hnunca se ejecutará"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
-msgstr ""
+msgstr "hay un nombre SSA en la lista libre, pero aún está referenciado"
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
-msgstr ""
+msgstr "registro GIMPLE modificado con BIT_FIELD_REF"
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
-msgstr ""
+msgstr "se tomó la dirección, pero el bit ADDRESSABLE no está activado"
-#: tree-cfg.c:3260
-#, fuzzy
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
-msgstr "modo no-booleano en la expresión condicional"
+msgstr "se usó un modo no-booleano en la condición"
-#: tree-cfg.c:3316
-#, fuzzy
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
-msgstr "Tipo de referencia inválido"
+msgstr "Prefijo de referencia inválido."
-#: tree-cfg.c:3381
-#, fuzzy
+#: tree-cfg.c:3456
msgid "Is not a valid GIMPLE statement."
-msgstr "Declaración de inicio inválida"
+msgstr "No es una declaración GIMPLE válida"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
-msgstr ""
+msgstr "Se marcó la sentencia para throw, pero no lo hace."
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
-msgstr ""
+msgstr "Se marcó la sentencia para throw en medio del bloque."
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
-msgstr ""
+msgstr "La definición de PHI no es un valor GIMPLE"
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
-msgstr ""
+msgstr "Compartición incorrecta de nodos de árbol"
-#: tree-cfg.c:3550
-#, fuzzy
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
-msgstr "falló verify_flow_info"
+msgstr "falló verify_stmts."
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
-msgstr ""
+msgstr "ENTRY_BLOCK tiene una lista de sentencias asociadas con él\n"
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
-msgstr ""
+msgstr "EXIT_BLOCK tiene una lista de sentencias asociadas con él\n"
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
-msgstr ""
+msgstr "Salida a través para salir del bb %d\n"
-#: tree-cfg.c:3601
-#, fuzzy, c-format
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr "La etiqueta %s que no es local no es la primera en una secuencia de etiquetas en el bb %d"
+
+#: tree-cfg.c:3691
+#, c-format
msgid "Label %s to block does not match in bb %d\n"
-msgstr "la etiqueta de inicio '%s' no coincide con la etiqueta final '%s'"
+msgstr "La etiqueta %s para bloquear no coincide con el bb %d\n"
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
-msgstr ""
+msgstr "La etiqueta %s tiene un contexto incorrecto en el bb %d\n"
-#: tree-cfg.c:3625
-#, fuzzy, c-format
+#: tree-cfg.c:3714
+#, c-format
msgid "Control flow in the middle of basic block %d\n"
-msgstr "control de flujo insn dentro de un bloque básico"
+msgstr "Control de flujo insn en el medio del bloque básico %d\n"
-#: tree-cfg.c:3635
-#, fuzzy, c-format
+#: tree-cfg.c:3724
+#, c-format
msgid "Label %s in the middle of basic block %d\n"
-msgstr "NOTE_INSN_BASIC_BLOCK %d en el medio del bloque básico %d"
+msgstr "Etiqueta %s en el medio del bloque básico %d\n"
-#: tree-cfg.c:3652
-#, fuzzy, c-format
+#: tree-cfg.c:3741
+#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
-msgstr "Borde de caída después del salto incondicional %i"
+msgstr "Borde de caída después de una sentencia de control en bb %d \n"
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
-msgstr ""
+msgstr "COND_EXPR estructurado al final de bb %d\n"
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
-msgstr ""
+msgstr "Banderas de borde de salida erróneas al final de bb %d\n"
-#: tree-cfg.c:3688
-#, fuzzy
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
-msgstr "la etiqueta de inicio '%s' no coincide con la etiqueta final '%s'"
+msgstr "La etiqueta %<then%> no coincide con el borde al final de bb %d\n"
-#: tree-cfg.c:3696
-#, fuzzy
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
-msgstr "la etiqueta de inicio '%s' no coincide con la etiqueta final '%s'"
+msgstr "La etiqueta %<else%> no coincide con el borde al final de bb %d\n"
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
-msgstr ""
+msgstr "Goto explícito al final de bb %d\n"
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
-msgstr ""
+msgstr "El borde de devolución no apunta a salir en bb %d\n"
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
-msgstr ""
+msgstr "Se encontró un case por defecto que no está al final del vector case"
-#: tree-cfg.c:3774
-#, fuzzy
+#: tree-cfg.c:3863
msgid ""
"Case labels not sorted:\n"
" "
-msgstr "el modo en la etiqueta no es discreto"
+msgstr ""
+"Las etiquetas case no están ordenadas\n"
+" "
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
-msgstr ""
+msgstr "No se encontró un case por defecto al final del vector case"
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
-msgstr ""
+msgstr "Borde de salida extra %d->%d\n"
-#: tree-cfg.c:3815
-#, fuzzy, c-format
+#: tree-cfg.c:3904
+#, c-format
msgid "Missing edge %i->%i"
-msgstr "Falta el identificador"
+msgstr "Falta el borde %i->%i"
-#: tree-cfg.c:5516
-#, fuzzy
+#: tree-cfg.c:5707
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
-msgstr "la función puede ser un posible candidato para el atributo `noreturn'"
+msgstr "%Jla función puede ser un posible candidato para el atributo %<noreturn%>"
-#: tree-cfg.c:5543 tree-cfg.c:5547
-#, fuzzy
+#: tree-cfg.c:5734 tree-cfg.c:5738
msgid "%H%<noreturn%> function does return"
-msgstr "la función `noreturn' devuelve"
+msgstr "%Hla función %<noreturn%> devuelve"
-#: tree-cfg.c:5567 tree-cfg.c:5572
-#, fuzzy
+#: tree-cfg.c:5759 tree-cfg.c:5764
msgid "%Hcontrol reaches end of non-void function"
-msgstr "el control alcanza el final de una función que no es void"
+msgstr "%Hel control alcanza el final de una función que no es void"
-#: tree-dump.c:847
-#, fuzzy, c-format
+#: tree-dump.c:849
+#, c-format
msgid "could not open dump file %qs: %s"
-msgstr "no se puede abrir el fichero de volcado `%s'"
+msgstr "no se puede abrir el fichero de volcado %qs: %s"
-#: tree-dump.c:960
-#, fuzzy
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
-msgstr "se ignora la opción desconocida `%.*s' en `-fdump-%s'"
+msgstr "se ignora la opción desconocida %q.*s en %<-fdump-%s%>"
-#: tree-inline.c:945
-#, fuzzy
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
-msgstr "%Jla función '%F' nunca puede ser inlined porque usa alloca (forzar usando el atributo always_inline)"
+msgstr "%Jla función %qF nunca puede ser inlined porque usa alloca (forzar usando el atributo always_inline)"
-#: tree-inline.c:957
-#, fuzzy
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
-msgstr "%Jla función '%F' nunca puede ser inlined porque usa setjmp"
+msgstr "%Jla función %qF nunca puede ser inlined porque usa setjmp"
-#: tree-inline.c:971
-#, fuzzy
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
-msgstr "%Jla función '%F' nunca puede ser inlined porque usa listas variables de argumentos"
+msgstr "%Jla función %qF nunca puede ser inlined porque usa listas variables de argumentos"
-#: tree-inline.c:982
-#, fuzzy
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
-msgstr "%Jla función '%F' nunca puede ser inlined porque usa manejo de excepciones setjmp-longjmp"
+msgstr "%Jla función %qF nunca puede ser inlined porque usa manejo de excepciones setjmp-longjmp"
-#: tree-inline.c:989
-#, fuzzy
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
-msgstr "%Jla función '%F' nunca puede ser inlined porque contiene un goto que no es local"
+msgstr "%Jla función %qF nunca puede ser inlined porque contiene un goto que no es local"
-#: tree-inline.c:1008
-#, fuzzy
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
-msgstr "%Jla función '%F' nunca puede ser inlined porque contiene un goto calculado"
+msgstr "%Jla función %qF nunca puede ser inlined porque contiene un goto calculado"
-#: tree-inline.c:1022
-#, fuzzy
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
-msgstr "%Jla función '%F' nunca puede ser inlined porque contiene un goto que no es local"
+msgstr "%Jla función %qF nunca puede ser inlined porque recibe un goto que no es local"
-#: tree-inline.c:1044
-#, fuzzy
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
-msgstr "%Jla función '%F' nunca puede ser inlined porque usa variables de tamaño variable"
+msgstr "%Jla función %qF nunca puede ser inlined porque usa variables de tamaño variable"
-#: tree-inline.c:1463
-#, fuzzy
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
-msgstr "las funciones extern inline redefinidas no se consideran para el `inlining'"
+msgstr "originalmente la llamada indirecta a función no se considera para el `inlining'"
# ¿Cómo traducir inlining de forma correcta? cfuga
-#: tree-inline.c:1473 tree-inline.c:1481
-#, fuzzy
+#: tree-inline.c:1505 tree-inline.c:1513
msgid "%Jinlining failed in call to %qF: %s"
-msgstr "%Jel `inlining' falló en la llamada a '%F': %s"
+msgstr "%Jel 'inlining' falló en la llamada a %qF: %s"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "llamado desde aquí"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "el control puede alcanzar el final de la función %qD que no es void al ser inlined"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
-msgstr ""
+msgstr "no se ha implementado la revisión mudflap para ARRAY_RANGE_REF"
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
-msgstr ""
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
+msgstr "mudflap no puede seguir a %qs en la función stub"
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
-msgstr ""
+msgstr "mudflap no puede seguir al extern %qs de tamaño desconocido"
#: tree-nomudflap.c:51
-#, fuzzy
msgid "mudflap: this language is not supported"
-msgstr "-pipe no tiene soporte"
+msgstr "mudflap: este lenguaje no tiene soporte"
-#: tree-optimize.c:698
-#, fuzzy
+#: tree-optimize.c:720
msgid "%Jsize of return value of %qD is %u bytes"
-msgstr "%Jel tamaño del valor de devolución de '%D' es de %u bytes"
+msgstr "%Jel tamaño del valor de devolución de %qD es de %u bytes"
-#: tree-optimize.c:701
-#, fuzzy
+#: tree-optimize.c:723
msgid "%Jsize of return value of %qD is larger than %wd bytes"
-msgstr "%Jel tamaño del valor de devolución de '%D' es más grande que %wd bytes"
+msgstr "%Jel tamaño del valor de devolución de %qD es más grande que %wd bytes"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
-msgstr ""
+msgstr "corrupción de SSA"
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
-msgstr ""
+msgstr " No se ejecutaron los stmts pendientes en el borde PRED (%d, %d)\n"
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
-msgstr ""
+msgstr " No se ejecutaron los stmts pendientes en el borde SUCC (%d, %d)\n"
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
-msgstr ""
+msgstr " No se ejecutaron los stmts pendientes en el borde ENTRY (%d, %d)\n"
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
-msgstr ""
+msgstr " No se ejecutaron los stmts pendientes en el borde EXIT (%d, %d)\n"
#: tree-profile.c:111 tree-profile.c:127 tree-profile.c:143 tree-profile.c:160
-#, fuzzy
msgid "unimplemented functionality"
-msgstr "función interna `%s' sin implementar"
+msgstr "funcionalidad sin implementar"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "error interno"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
-msgstr ""
+msgstr "Se esperaba un objeto SSA_NAME"
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
-msgstr ""
+msgstr "No coinciden los tipos entre un SSA_NAME y su símbolo."
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
-msgstr ""
+msgstr "Se encontró un SSA_NAME que fue liberado en el conjunto libre"
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
-msgstr ""
+msgstr "Se encontró una definición virtual para un registro GIMPLE"
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
-msgstr ""
+msgstr "Se encontró una definición real para uno que no es registro"
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
-msgstr ""
+msgstr "Se creó SSA_NAME en dos bloques diferentes %i y %i"
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
-msgstr ""
+msgstr "SSA_NAME_DEF_STMT es erróneo"
-#: tree-ssa.c:230
-#, fuzzy
+#: tree-ssa.c:227
msgid "Missing definition"
-msgstr "Falta el identificador"
+msgstr "Falta la definición"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
-msgstr ""
+msgstr "La definición en el bloque %i no domina el uso en el bloque %i"
-#: tree-ssa.c:244
-#, fuzzy, c-format
+#: tree-ssa.c:241
+#, c-format
msgid "Definition in block %i follows the use"
-msgstr "una definición a continuación de la acción"
+msgstr "Una definición en el bloque %i a continuación del uso"
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
-msgstr ""
+msgstr "Se debe establecer SSA_NAME_OCCURS_IN_ABNORMAL_PHI"
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
-msgstr ""
+msgstr "La cuenta de borde de entrada no coincide con el número de argumentos PHI\n"
-#: tree-ssa.c:296
-#, fuzzy, c-format
+#: tree-ssa.c:293
+#, c-format
msgid "PHI argument is missing for edge %d->%d\n"
-msgstr "falta un argumento después de %s"
+msgstr "Falta un argumento PHI para el borde %d->%d\n"
-#: tree-ssa.c:305
-#, fuzzy
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
-msgstr "el argumento `%d' no es una constante"
+msgstr "el argumento PHI no es SSA_NAME, o invariante"
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
-msgstr ""
+msgstr "Borde erróneo %d->%d para el argumento PHI\n"
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
-msgstr ""
+msgstr "Variable no direccionable dentro de un conjunto de alias."
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
-msgstr ""
+msgstr "Variable direccionable que es una etiqueta de alias pero no está en ningún conjunto de alias."
-#: tree-ssa.c:395
-#, fuzzy
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
-msgstr "falló verify_flow_info"
+msgstr "falló verify_flow_insensitive_alias_info."
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
-msgstr ""
+msgstr "Los punteros dereferenciados deben tener un nombre o una etiqueta de tipo"
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
-msgstr ""
+msgstr "Los punteros con una etiqueta de memoria deben tener punteros a conjuntos o apuntar a malloc"
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
-msgstr ""
+msgstr "El puntero escapa pero su etiqueta de nombre no es sobreescrita en la llamada."
-#: tree-ssa.c:462
-#, fuzzy
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
-msgstr "falló verify_flow_info"
+msgstr "falló verify_flow_sensitive_alias_info."
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr "El conjunto de alias de una etiqueta de tipo de puntero debe ser un superconjunto del nombre de la etiqueta de nombre correspondiente"
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
-msgstr ""
+msgstr "Dos punteros diferentes con punteros a conjuntos idénticos pero diferentes etiquetas de nombre"
-#: tree-ssa.c:540
-#, fuzzy
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
-msgstr "falló verify_flow_info"
+msgstr "falló verify_name_tags"
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
-msgstr ""
+msgstr "se inicializó el puntero AUX para el borde %d->%d\n"
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
-msgstr ""
+msgstr "La sentencia hizo almacenamientos con alias, pero no tiene V_MAY_DEFS"
-#: tree-ssa.c:668
-#, fuzzy
+#: tree-ssa.c:710
msgid "verify_ssa failed."
-msgstr "falló verify_flow_info"
+msgstr "falló verify_ssa."
-#: tree-ssa.c:1329
-#, fuzzy
+#: tree-ssa.c:1376
msgid "%H%qD is used uninitialized in this function"
-msgstr "%Jpuede ser que se utilice '%D' sin inicializar en esta función"
+msgstr "%Hse utiliza %qD sin inicializar en esta función"
-#: tree-ssa.c:1354
-#, fuzzy
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
-msgstr "%Jpuede ser que se utilice '%D' sin inicializar en esta función"
+msgstr "%Hpuede ser que se utilice %qD sin inicializar en esta función"
-#: tree-vectorizer.c:2138
-#, fuzzy
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
-msgstr "No dar soporte para funciones internas 3DNow!"
+msgstr "no hay soporte para reducción/inducción"
-#: tree-vectorizer.c:2164
-#, fuzzy
+#: tree-vect-transform.c:624
msgid "unsupported defining stmt"
-msgstr "combinación sin soporte: %s"
+msgstr "definición de stmt sin soporte"
-#: tree.c:3258
-#, fuzzy
+#: tree.c:3272
msgid "%Jfunction %qD definition is marked dllimport."
-msgstr "%Jla definición de la función `%D' está marcada como dllimport."
+msgstr "%Jla definición de la función %qD está marcada como dllimport."
-#: tree.c:3266
-#, fuzzy
+#: tree.c:3280
msgid "%Jvariable %qD definition is marked dllimport."
-msgstr "%Jla definición de la variable '%D' está marcada como dllimport."
+msgstr "%Jla definición de la variable %qD está marcada como dllimport."
-#: tree.c:3286
-#, fuzzy
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
-msgstr "%Jse requiere enlazado externo para el símbolo '%D' debido al atributo '%s'."
+msgstr "%Jse requiere enlazado externo para el símbolo %qD debido al atributo %qs."
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "las matrices de funciones no tienen significado"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "el tipo de devolución de función no puede ser función"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "inicializador inválido para la cadena de bits"
-#: tree.c:5446
-#, fuzzy, c-format
+#: tree.c:5482
+#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
-msgstr "revisión de árbol: se esperaba %s, se tiene %s en %s, en %s:%d"
+msgstr "revisión de árbol: %s, se tiene %s en %s, en %s:%d"
-#: tree.c:5483
-#, fuzzy, c-format
+#: tree.c:5519
+#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
-msgstr "revisión de árbol: se esperaba %s, se tiene %s en %s, en %s:%d"
+msgstr "revisión de árbol: se no esperaba nada de %s, se tiene %s en %s, en %s:%d"
-#: tree.c:5496
-#, fuzzy, c-format
+#: tree.c:5532
+#, c-format
msgid "tree check: expected class %qs, have %qs (%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"
+msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
-#: tree.c:5510
+#: tree.c:5546
#, 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"
-#: tree.c:5522
-#, fuzzy, c-format
+#: tree.c:5558
+#, c-format
msgid "tree check: accessed elt %d of phi_node 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"
+msgstr "revisión de árbol: acceso de elt %d de phi_node con %d elts en %s, en %s:%d"
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d"
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr "%J%D causa un conflicto de tipo de sección"
-#: varasm.c:910
-#, fuzzy
+#: varasm.c:911
msgid "%Jregister name not specified for %qD"
-msgstr "%Jno se especifica un nombre de registro para '%D'"
+msgstr "%Jno se especifica un nombre de registro para %qD"
-#: varasm.c:912
-#, fuzzy
+#: varasm.c:913
msgid "%Jinvalid register name for %qD"
-msgstr "%Jnombre de registro inválido para '%D'"
+msgstr "%Jnombre de registro inválido para %qD"
-#: varasm.c:914
-#, fuzzy
+#: varasm.c:915
msgid "%Jdata type of %qD isn%'t suitable for a register"
-msgstr "%Jel tipo de datos de `%D' no es adecuado para un registro"
+msgstr "%Jel tipo de datos de %qD no es adecuado para un registro"
-#: varasm.c:917
-#, fuzzy
+#: varasm.c:918
msgid "%Jregister specified for %qD isn%'t suitable for data type"
-msgstr "%Jel registro especificado por '%D' no es adecuado para el tipo de datos"
+msgstr "%Jel registro especificado por %qD no es adecuado para el tipo de datos"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "la variable de registro global tiene el valor inicial"
-#: varasm.c:930
-#, fuzzy
+#: varasm.c:931
msgid "volatile register variables don%'t work as you might wish"
msgstr "las variables de registro volatile no funcionan como usted quisiera"
-#: varasm.c:963
-#, fuzzy
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
-msgstr "%Jnombre de registro dado para una variable '%D' que no es registro"
+msgstr "%Jnombre de registro dado para una variable %qD que no es registro"
-#: varasm.c:1038
-#, fuzzy
+#: varasm.c:1046
msgid "global destructors not supported on this target"
-msgstr "no se da soporte a límites de la pila en este objetivo"
+msgstr "no se da soporte a destructores globales en este objetivo"
-#: varasm.c:1099
-#, fuzzy
+#: varasm.c:1107
msgid "global constructors not supported on this target"
-msgstr "no se da soporte a límites de la pila en este objetivo"
+msgstr "no se da soporte a constructores globales en este objetivo"
-#: varasm.c:1592
-#, fuzzy
+#: varasm.c:1607
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
-msgstr "%Jla alineación de '%D' es mayor que la alineación máxima del fichero objeto. Se usa %d"
+msgstr "%Jla alineación de %qD es mayor que la alineación máxima del fichero objeto. Se usa %d"
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr "los datos COMMON thread-local no están implentados"
-#: varasm.c:1666
-#, fuzzy
+#: varasm.c:1671
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
-msgstr "%Jla alineación solicitada para '%D' es mayor que la alineación implementada de %d"
+msgstr "%Jla alineación solicitada para %qD es mayor que la alineación implementada de %d"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "el inicializador para un valor entero es demasiado complicado"
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr "el inicializador para un valor de coma flotante no es una constante de coma flotante"
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr "conjunto de tipo constructor desconocido"
-
-#: varasm.c:4026
-#, fuzzy, c-format
+#: varasm.c:4046
+#, c-format
msgid "invalid initial value for member %qs"
-msgstr "valor inicial inválido para el miembro `%s'"
+msgstr "valor inicial inválido para el miembro %qs"
-#: varasm.c:4213 varasm.c:4257
-#, fuzzy
+#: varasm.c:4233 varasm.c:4277
msgid "%Jweak declaration of %qD must precede definition"
-msgstr "%Jla declaración débil de '%D' debe preceder a la definición"
+msgstr "%Jla declaración débil de %qD debe preceder a la definición"
-#: varasm.c:4221
-#, fuzzy
+#: varasm.c:4241
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
-msgstr "%Jla declaración débil de '%D' después del primer uso resulta en una conducta no especificada"
+msgstr "%Jla declaración débil de %qD después del primer uso resulta en una conducta no especificada"
-#: varasm.c:4255
-#, fuzzy
+#: varasm.c:4275
msgid "%Jweak declaration of %qD must be public"
-msgstr "%Jla declaración débil de '%D' debe ser public"
+msgstr "%Jla declaración débil de %qD debe ser public"
-#: varasm.c:4264
-#, fuzzy
+#: varasm.c:4284
msgid "%Jweak declaration of %qD not supported"
-msgstr "%Jla declaración débil de '%D' no tiene soporte"
+msgstr "%Jla declaración débil de %qD no tiene soporte"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "sólo los aliases débiles tienen soporte en esta configuración"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "las definiciones de alias no tienen soporte en esta configuración; ignoradas"
-#: varasm.c:4418
+#: varasm.c:4504
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "%qD es un alias del símbolo sin definir %qE"
+
+#: varasm.c:4532
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "los atributos de visibilidad no tienen soporte en esta configuración; ignorados"
@@ -7643,7 +7162,7 @@ msgstr "desbordamiento por debajo de la matriz virtual %s en %s, en %s:%d"
#: vec.c:146
#, c-format
msgid "vector %s %s domain error, in %s at %s:%u"
-msgstr ""
+msgstr "error de dominio del vector %s %s, en %s en %s:%u"
#. Print an error message for unrecognized stab codes.
#: xcoffout.c:187
@@ -7689,12 +7208,12 @@ msgid "debug: "
msgstr "depuración: "
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
-msgstr ""
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
+msgstr "El tamaño máximo de la estructura (en bytes) para el cual GCC hará copias de bloques"
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
-msgstr ""
+msgid "The threshold ratio between instantiated fields and the total structure size"
+msgstr "La tasa de intervalo entre los campos instanciados y el tamaño total de la estructura"
#: params.def:72
msgid "The maximum number of instructions in a single function eligible for inlining"
@@ -7705,228 +7224,230 @@ 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:89
-#, fuzzy
msgid "The maximum number of instructions inline function can grow to via recursive inlining"
-msgstr "El número máximo de instrucciones en una sola función elegible para inlining"
+msgstr "El número máximo de instrucciones que una función inline puede crecer a través de inlining recursivo"
#: params.def:94
-#, fuzzy
msgid "The maximum number of instructions non-inline function can grow to via recursive inlining"
-msgstr "El número máximo de instrucciones en una sola función elegible para inlining"
+msgstr "El número máximo de instrucciones que una función que no es inline puede crecer a través de inlining recursivo"
#: params.def:99
msgid "The maximum depth of recursive inlining for inline functions"
-msgstr ""
+msgstr "La máxima profundidad para el inlining recursivo para funciones inline"
#: params.def:104
msgid "The maximum depth of recursive inlining for non-inline functions"
-msgstr ""
-
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "El número máximo de instrucciones para el inlineador de RTL"
+msgstr "La máxima profundidad para el inlining recursivo para funciones ´que no son inline"
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
-msgstr ""
+msgstr "Si se usa -fvariable-expansion-in-unroller, el número máximo de veces que una variable individual se expanderá durante el desenrollo de ciclos"
-#: params.def:134
+#: params.def:124
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:145
+#: params.def:135
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:155
+#: params.def:145
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:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr "El tamaño del cuerpo de la función a considerar grande"
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr "Crecimiento de código maximal causado por el inlining de una función grande (en porcentajes)"
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr "cuánto puede crecer la unidad de compilación dada a causa del inlining (en porcentajes)"
-#: params.def:175
+#: params.def:165
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:180
+#: params.def:170
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"
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
-msgstr ""
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
+msgstr "La tasa de intervalo para realizar la eliminación parcial de redundancia después de la recarga."
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
-msgstr ""
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+msgstr "la tasa de intervalo para la cuenta de ejecución de bordes críticos que permitan la eliminación de redundancia después de la recarga."
-#: params.def:210
+#: params.def:198
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:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr "El número máximo de instrucciones para considerar el desenrollo en un ciclo en promedio"
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr "El número máximo de desenrollos de un solo ciclo"
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr "El número máximo de insns en un ciclo pelado"
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr "El número máximo de pelados en un solo ciclo"
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr "El número máximo de insns en un ciclo completamente pelado"
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr "El número máximo de pelados en un solo ciclo que está completamente pelado"
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr "El número máximo de insns en un ciclo pelado que se enrolla solamente una vez"
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr "El número máximo de insns en un ciclo sin switch"
# No me gusta la traducción. Aquí 'switch' se refiere a la instrucción del lenguaje C. cfuga.
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr "El número máximo de desinterrupciones en un solo ciclo"
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
-msgstr ""
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
+msgstr "Límite en el número de iteraciones que evalúa el algoritmo de análisis de iteraciones de # de fuerza bruta"
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
-msgstr ""
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
+msgstr "Número máximo de ciclos que realizan calendarización de cambio de módulo en (principalmente para depuración)"
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
-msgstr ""
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
+msgstr "Un factor para ajustar el límite superior que el calendarizador de cambio de módulo utiliza para calendarizar un ciclo"
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
-msgstr ""
+msgstr "El número de ciclos que el calendarizador de cambio de módulo \t considera al revisar conflictos utilizando DFA"
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
-msgstr ""
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
+msgstr "Un intervalo en la cuenta promedio de ciclos considerado por el calendarizador de cambio de módulo"
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr "Crecimiento de código maximal causado por duplicación de colas (en porcentaje)"
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr "Detener el crecimiento inverso si la probabilidad reversa del mejor borde es menor a este intervalo (en porcentaje)"
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr "Detener el crecimiento hacia adelante si la probabilidad del mejor borde es menor que este intervalo (en porcentaje). Se utiliza cuando la retroalimentación de análisis de perfil está disponible"
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr "Detener el crecimiento hacia adelante si la probabilidad del mejor borde es menor a este intervalo (en porcentaje). Se utiliza cuando la retroalimentación de análisis de perfil no está disponible"
-#: params.def:334
+#: params.def:311
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:340
-#, fuzzy
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
-msgstr "El número máximo de bordes de entrada para considerar el salto cruzado"
+msgstr "El número máximo de instrucciones coincidentes para considerar el salto cruzado"
+
+# 'desfactorizar' no me gusta. ¿Alguna sugerencia? - cfuga
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "El número máximo de insns a duplicar al gotos desfactorizar gotos calculados"
-#: params.def:346
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr "La longitud máxima de la ruta considerada en cse"
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
-msgstr ""
+msgstr "El costo mínimo de una expresión costosa en el movimiento invariante del ciclo"
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
-msgstr ""
+msgstr "Límite en el número de candidatos bajo el cual todos los candidatos se consideran en optimizaciones iv"
-#: params.def:370
-#, fuzzy
+#: params.def:353
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
-msgstr "Realizar un número de optimizaciones menores y costosas"
+msgstr "Límite en el número de usos de iv en ciclos optimizados en optimizaciones iv"
+
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr "Si el número de candidatos en el conjunto es menor, siempre se tratará de eliminar ivs sin usar durante su optimización"
-#: params.def:377
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
-msgstr ""
+msgstr "Dadas N llamadas y V variables sobreescritas por llamada en una función. Use .GLOBAL_VAR si NxV es mayor que este límite"
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr "El número máximo de ubicaciones grabadas por cselib"
-#: params.def:395
+#: params.def:386
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:401
+#: params.def:391
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"
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr "El número máximo de instrucciones para buscar hacia atrás al buscar por una recarga equivalente"
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
-msgstr ""
+msgstr "El número máximo de operadores virtuales permitidos para representar aliases antes de disparar el agrupamiento de alias."
-#: params.def:419
-#, fuzzy
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
-msgstr "El número máximo de bordes de entrada para considerar el salto cruzado"
+msgstr "El número máximo de bloques en una región para ser considerada para interbloqueo"
-#: params.def:424
-#, fuzzy
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
-msgstr "El número máximo de bordes de entrada para considerar el salto cruzado"
+msgstr "El número máximo de insns en una región para ser considerada para interbloqueo"
+
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr "El número máximo de nodos RTL que se pueden grabar como el último valor del combinador"
-#: params.def:432
-#, fuzzy
+#: params.def:427
msgid "The upper bound for sharing integer constants"
-msgstr "el valor de enumerador para `%s' no es una constante entera"
+msgstr "El límite superior para compartir constantes enteras"
#: config/darwin-c.c:84
msgid "too many #pragma options align=reset"
@@ -7960,107 +7481,92 @@ msgstr "basura al final de '#pragma unused'"
#: config/darwin-c.c:367
#, c-format
msgid "subframework include %s conflicts with framework include"
-msgstr ""
+msgstr "la inclusión del submarco de trabajo %s tiene conflicto con el marco de trabajo incluido"
-#: config/darwin.c:1332
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
-msgstr "los atributos de visibilidad internal y protected no tienen soporte en esta configuración; ignorados"
+#: config/darwin.c:1350
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
+msgstr "los atributos de visibilidad internal y protected no tienen soporte en esta configuración; se ignoran"
#: config/sol2-c.c:94 config/sol2-c.c:110
-#, fuzzy
msgid "malformed %<#pragma align%>, ignoring"
-msgstr "#pragma align mal formado - ignorado"
+msgstr "%<#pragma align%> mal formado - ignorado"
#: config/sol2-c.c:103
-#, fuzzy
msgid "invalid alignment for %<#pragma align%>, ignoring"
-msgstr "#pragma align mal formado - ignorado"
+msgstr "alineación inválida para %<#pragma align%>, ignorado"
#: config/sol2-c.c:118
msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
-msgstr ""
+msgstr "%<#pragma align%> debe aparecer antes de la declaración de %D, ignorado"
#: config/sol2-c.c:130 config/sol2-c.c:142
-#, fuzzy
msgid "malformed %<#pragma align%>"
-msgstr "#pragma interno malformado"
+msgstr "%<#pragma align%> malformado"
#: config/sol2-c.c:137
-#, fuzzy
msgid "junk at end of %<#pragma align%>"
-msgstr "basura al final de #pragma %s"
+msgstr "basura al final de %<#pragma align%>"
#: config/sol2-c.c:158 config/sol2-c.c:165
-#, fuzzy
msgid "malformed %<#pragma init%>, ignoring"
-msgstr "'#pragma options' malformado, ignorando"
+msgstr "'%<#pragma init%> malformado, ignorando"
#: config/sol2-c.c:188 config/sol2-c.c:200
-#, fuzzy
msgid "malformed %<#pragma init%>"
-msgstr "#pragma interno malformado"
+msgstr "%<#pragma init%> malformado"
#: config/sol2-c.c:195
-#, fuzzy
msgid "junk at end of %<#pragma init%>"
-msgstr "basura al final de #pragma %s"
+msgstr "basura al final de %<#pragma init%>"
#: config/sol2-c.c:216 config/sol2-c.c:223
-#, fuzzy
msgid "malformed %<#pragma fini%>, ignoring"
-msgstr "'#pragma options' malformado, ignorando"
+msgstr "'%<#pragma fini%> malformado, ignorando"
#: config/sol2-c.c:246 config/sol2-c.c:258
-#, fuzzy
msgid "malformed %<#pragma fini%>"
-msgstr "#pragma interno malformado"
+msgstr "%<#pragma fini%> malformado"
#: config/sol2-c.c:253
-#, fuzzy
msgid "junk at end of %<#pragma fini%>"
-msgstr "basura al final de #pragma %s"
+msgstr "basura al final de %<#pragma fini%>"
#: config/sol2.c:54
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
-msgstr ""
+msgstr "%Jse ignora %<#pragma align%> para %<%D%> que está alineado explícitamente"
-#: config/darwin.h:152
-#, fuzzy
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
-msgstr "sizeof(long double) es 16"
+msgstr "Establecer sizeof(bool) a 1"
-#: config/darwin.h:154
-#, fuzzy
+#: config/darwin.h:157
msgid "Generate code suitable for fast turn around debugging"
-msgstr "Generar código adecuado para ejecutables (NO para bibliotecas compartidas)"
+msgstr "Generar código adecuado para vuelta rápida en la depuración"
-#: config/darwin.h:156
-#, fuzzy
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
-msgstr "No generar código para una unidad de manipulación de bits"
+msgstr "No generar código adecuado para vuelta rápida en la depuración"
#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
#. sections. machopic_select_section ensures that weak variables go in
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
-#, fuzzy
+#: config/darwin.h:395
msgid "alias definitions not supported in Mach-O; ignored"
-msgstr "las definiciones de alias no tienen soporte en esta configuración; ignoradas"
+msgstr "las definiciones de alias no tienen soporte en Mach-O; ignoradas"
#: config/lynx.h:137
-#, fuzzy
msgid "Use shared libraries"
-msgstr "Activar la biblioteca compartida basada en ID"
+msgstr "Usar bibliotecas compartidas"
#: config/lynx.h:138
msgid "Support multi-threading"
-msgstr ""
+msgstr "Soporte para multihilos"
#: config/lynx.h:139
msgid "Support legacy multi-threading"
-msgstr ""
+msgstr "Soporte para multihilos antiguo"
#: config/windiss.h:37
msgid "profiler support for WindISS"
@@ -8080,29 +7586,29 @@ msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr "-mieee-with-inexact no tiene soporte en Unicos/Mk"
#: config/alpha/alpha.c:306
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mtrap-precision switch"
-msgstr "valor erróneo `%s' para el interruptor -mtrap-precision"
+msgstr "valor %qs erróneo para el interruptor -mtrap-precision"
#: config/alpha/alpha.c:320
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mfp-rounding-mode switch"
-msgstr "valor erróneo `%s' para el interruptor -mfp-rounding-mode"
+msgstr "valor %qs erróneo para el interruptor -mfp-rounding-mode"
#: config/alpha/alpha.c:335
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mfp-trap-mode switch"
-msgstr "valor erróneo `%s' para el interruptor -mfp-trap-mode"
+msgstr "valor %qs erróneo para el interruptor -mfp-trap-mode"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
-#, fuzzy, c-format
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
+#, c-format
msgid "bad value %qs for -mtls-size switch"
-msgstr "valor erróneo `%s' para el interruptor -mtls-size"
+msgstr "valor %qs erróneo para el interruptor -mtls-size"
#: config/alpha/alpha.c:366 config/alpha/alpha.c:378
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mcpu switch"
-msgstr "valor erróneo (%s) para el interruptor -mcpu"
+msgstr "valor %qs erróneo para el interruptor -mcpu"
#: config/alpha/alpha.c:385
msgid "trap mode not supported on Unicos/Mk"
@@ -8130,95 +7636,95 @@ msgid "L%d cache latency unknown for %s"
msgstr "latencia de caché L%d desconocida para %s"
#: config/alpha/alpha.c:460
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mmemory-latency"
-msgstr "valor erróneo `%s' para -mmemory-latency"
+msgstr "valor %qs erróneo para -mmemory-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "valor %%H inválido"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr "valor %%J inválido"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "valor %%r inválido"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "valor %%R inválido"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "valor %%N inválido"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "valor %%P inválido"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "valor %%h inválido"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "valor %%L inválido"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "valor %%m inválido"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "valor %%M inválido"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "valor %%U inválido"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "valor %%s inválido"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "valor %%C inválido"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "valor %%E inválido"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr "reubicación unspec desconocida"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "código %%xn inválido"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr "fcode interno erróneo"
@@ -8235,14 +7741,14 @@ msgstr "fcode interno erróneo"
#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Usar fp de hardware"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "No usar fp de hardware"
@@ -8361,7 +7867,7 @@ msgstr "Controlar la precisión dada a las excepciones de fp"
msgid "Tune expected memory latency"
msgstr "Ajustar la latencia esperada de memoria"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr "Especificar el tamaño de bit para los desplazamientos TLS inmediatos"
@@ -8371,26 +7877,26 @@ msgid "bad value (%s) for -mcpu switch"
msgstr "valor erróneo (%s) para el interruptor -mcpu"
#: config/arc/arc.c:394
-#, fuzzy, c-format
+#, c-format
msgid "argument of %qs attribute is not a string constant"
-msgstr "el argumento del atributo `%s' no es una cadena constante"
+msgstr "el argumento del atributo %qs no es una cadena constante"
#: config/arc/arc.c:401
-#, fuzzy, c-format
+#, c-format
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
-msgstr "el argumento del atributo `%s' no es \"ilink1\" o \"ilink2\""
+msgstr "el argumento del atributo %qs no es \"ilink1\" o \"ilink2\""
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr "operando inválido para el código %%R"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "operando inválido para el código %%H%%L"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr "operando inválido para el código %%U"
@@ -8402,169 +7908,165 @@ msgstr "operando inválido para el código %%V"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "operando inválido para el código de salida"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, 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:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "valor erróneo (%s) para el interruptor %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "el CPU objetivo no tiene soporte para trabajo interno"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr "el CPU objetivo no tiene soporte para las instrucciones THUMB"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
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:928
+#: config/arm/arm.c:942
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:931
+#: config/arm/arm.c:945
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:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check es incompatible con -mno-apcs-frame"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic y -mapcs-reent son incompatibles"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "no se soporta el código reentrante APCS. Ignorado"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
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:962
+#: config/arm/arm.c:976
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:1004
-#, fuzzy, c-format
+#: config/arm/arm.c:1018
+#, c-format
msgid "invalid ABI option: -mabi=%s"
-msgstr "opción %s inválida"
+msgstr "opción de ABI inválida: -mabi=%s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
-msgstr ""
+msgstr "iwmmxt requiere una ABI compatible con AAPCS para una operación adecuada"
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
-msgstr ""
+msgstr "el abi iwmmxt requiere un cpu capaz de iwmmxt"
-#: config/arm/arm.c:1023
-#, fuzzy, c-format
+#: config/arm/arm.c:1037
+#, 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:1040
-#, fuzzy, c-format
+#: config/arm/arm.c:1054
+#, c-format
msgid "invalid floating point option: -mfpu=%s"
-msgstr "opción de emulación de coma flotante inválida: -mfpe-%s"
+msgstr "opción coma flotante inválida: -mfpu-%s"
-#: config/arm/arm.c:1081
-#, fuzzy, c-format
+#: config/arm/arm.c:1095
+#, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
-msgstr "opción de emulación de coma flotante inválida: -mfpe-%s"
+msgstr "abi de coma flotante inválida: -mfloat-abi=%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
-msgstr ""
+msgstr "-mfloat-abi=hard y VFP"
-#: config/arm/arm.c:1122
-#, fuzzy, c-format
+#: config/arm/arm.c:1136
+#, c-format
msgid "structure size boundary can only be set to %s"
-msgstr "el límite del tamaño de la estructura sólo puede establecerse a 8 o 32"
+msgstr "el límite del tamaño de la estructura sólo puede establecerse a %s"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= es inútil sin -fpic"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "no se puede usar '%s' para registro PIC"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
-#, fuzzy, c-format
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
+#, c-format
msgid "%qs attribute only applies to functions"
-msgstr "el atributo `%s' se aplica solamente a funciones"
+msgstr "el atributo %qs se aplica solamente a funciones"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
-#, fuzzy
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
msgid "predicated Thumb instruction"
-msgstr "Generar instrucciones char"
+msgstr "instrucción de predicado Thumb"
-#: config/arm/arm.c:10391
-#, fuzzy
+#: config/arm/arm.c:10460
msgid "predicated instruction in conditional sequence"
-msgstr "no se ha implementado aún la instrucción ret"
+msgstr "instrucción de predicado en secuencia condicional"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
-#, fuzzy, c-format
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
+#, c-format
msgid "invalid operand for code '%c'"
-msgstr "código de operando `%c' inválido"
+msgstr "operando inválido para el '%c'"
-#: config/arm/arm.c:10558
-#, fuzzy
+#: config/arm/arm.c:10627
msgid "instruction never exectued"
-msgstr "incondicional %2d nunca se ejecuta\n"
+msgstr "la instrucción nunca se ejecuta"
-#: config/arm/arm.c:10683
-#, fuzzy
+#: config/arm/arm.c:10752
msgid "missing operand"
-msgstr "falta el paréntesis que abre"
+msgstr "falta un operando"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr "no se puede calcular la ubicación real del parámetro apilado"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "el selector debe ser un inmediato"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "la máscara debe ser un inmediato"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr "no hay registros inferiores disponibles para almacenar registros superiores"
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
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:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "%Jla variable inicializada '%D' está marcada como dllimport"
@@ -8657,14 +8159,12 @@ msgid "Specify the name of the target architecture"
msgstr "Especificar el nombre de la arquitectura destino"
#: config/arm/arm.h:389
-#, fuzzy
msgid "Specify the name of the target floating point hardware/format"
-msgstr "Especificar la versión del emulador de coma flotante"
+msgstr "Especificar el nombre del hardware/formato de coma flotante destino"
#: config/arm/arm.h:391
-#, fuzzy
msgid "Specify if floating point hardware should be used"
-msgstr "Especificar sí/no si se utiliza la coma flotante en los GPRs"
+msgstr "Especificar si se debe usar la coma flotante"
#: config/arm/arm.h:393
msgid "Specify the minimum bit alignment of structures"
@@ -8674,74 +8174,84 @@ msgstr "Especificar la alineación mínima de bit de las estructuras"
msgid "Specify the register to be used for PIC addressing"
msgstr "Especificar el registro a usar para el direccionamiento PIC"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr "Especificar una ABI"
#: config/arm/arm.h:398
msgid "Alias for -mfloat-abi=soft"
-msgstr ""
+msgstr "Alias para -mfloat-abi=soft"
#: config/arm/arm.h:400
msgid "Alias for -mfloat-abi=hard"
-msgstr ""
+msgstr "Alias para -mfloat-abi=hard"
#: config/arm/pe.h:59
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorar el atributo dllimport para las funciones"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "cambio de puntero de marco grande (%d) con -mtiny-stack"
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr "dirección errónea, no (reg+disp)"
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr "error interno del compilador. Dirección errónea:"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr "error interno del compilador. Modo desconocido:"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
msgid "invalid insn:"
msgstr "insn inválido:"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr "insn incorrecto:"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr "movimiento insn desconocido:"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr "desplazamiento insn erróneo:"
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr "error interno del compilador. Desplazamiento incorrecto:"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
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"
-#: config/avr/avr.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr "`%s' parece ser un manejador de interrupciones mal escrito"
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr "`%s' parece ser un manejador de señales mal escrito"
+
+#: config/avr/avr.c:4714
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:4615
-#, fuzzy, c-format
+#: config/avr/avr.c:4728
+#, c-format
msgid "MCU %qs supported for assembler only"
-msgstr "MCU `%s' sólo tiene soporte para ensamblador"
+msgstr "MCU %qs sólo tiene soporte para ensamblador"
#: config/avr/avr.h:73
msgid "Assume int to be 8 bit integer"
@@ -9130,242 +8640,233 @@ msgstr "Especificar el número máximo de iteraciones para RPTS"
msgid "Select CPU to generate code for"
msgstr "Seleccionar el CPU para el cual se genera código"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr "tipo-índice inesperado en cris_print_index"
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr "tipo-base inesperado en cris_print_base"
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "marco de la pila demasiado grande: %d bytes"
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr "lista de retardo asignada pero sin uso en el epílogo"
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
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:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr "operando inválido para el modificador 'b'"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr "operando inválido para el modificador 'v'"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr "operando inválido para el modificador 'P'"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr "operador inválido para el modificador 'p'"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr "operando inválido para el modificador 'z'"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr "operando inválido para el modificador 'H'"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr "registro erróneo"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr "operando inválido para el modificador 'e'"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr "operando inválido para el modificador 'm'"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr "operando inválido para el modificador 'A'"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr "operando inválido para el modificador 'D'"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr "operando inválido para el modificador 'T'"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr "modificador de letra de operando inválido"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "error interno: registro erróneo: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr "operando multiplicativo inesperado"
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr "operando inesperado"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "no se reconoce la dirección"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
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:2429
+#: config/cris/cris.c:2421
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:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr "supuesta constante no reconocida"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "supuesta constante no reconocida en cris_global_pic_symbol"
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, 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:2658
+#: config/cris/cris.c:2650
#, 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:2694
+#: config/cris/cris.c:2686
#, 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:2712
+#: config/cris/cris.c:2704
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:2727
+#: config/cris/cris.c:2719
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:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
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:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr "símbolo PIC inesperado"
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr "el registro PIC aún no está preparado"
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr "expresión de dirección inesperada"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
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:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr "NOTE inesperado como addr_const:"
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
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:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr "Para elinux, solicitar un tamaño de pila especificado para este programa"
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
msgid "Work around bug in multiplication instruction"
msgstr "Evitar el bicho en la instrucción de multiplicación"
#. 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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Compilar para ETRAX 4 (CRIS v3)"
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Compilar para ETRAX 100 (CRIS v8)"
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
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:380
+#: config/cris/cris.h:372
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:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "No emitir modos de direccionamiento con asignaciones colaterales"
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr "No ajustar la alineación de la pila"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr "No ajustar la alineación de los datos modificables"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
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:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr "Alinear código y datos a 32 bits"
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr "No alinear elementos en el código o los datos"
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr "Anular -mbest-lib-options"
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
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:462
+#: config/cris/cris.h:454
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:464
+#: config/cris/cris.h:456
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:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "no hay FUNCTION_PROFILER para CRIS"
@@ -9373,46 +8874,46 @@ msgstr "no hay FUNCTION_PROFILER para CRIS"
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "Junto con -fpic y -fPIC, no utilizar referencias GOTPLT"
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: dirección sin manejar"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: no se reconoce el código %%p"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: no se reconoce el código %%b"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: no se reconoce el código %%B"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, 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:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: código %%x inválido"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: código %%F inválido"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: código desconocido"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: MEM sin manejar"
@@ -9420,148 +8921,138 @@ msgstr "fr30_print_operand: MEM sin manejar"
msgid "Assume small address space"
msgstr "Asumiendo espacio de direcciones pequeño"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr "cpu desconocido: -mcpu=%s"
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr "insn errónea para frv_print_operand_address:"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
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:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr "insn erróneo para frv_print_operand_memory_reference:"
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+msgid "bad condition code"
+msgstr "código de condición erróneo"
+
+#: config/frv/frv.c:2796
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:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "insn erróneo para frv_print_operand, modificador 'C':"
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "insn erróneo para frv_print_operand, modificador 'c':"
-
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'e':"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'F':"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'f':"
-#: config/frv/frv.c:2878
-#, fuzzy
+#: config/frv/frv.c:2895
msgid "Bad insn to frv_print_operand, 'g' modifier:"
-msgstr "insn erróneo para frv_print_operand, modificador 'C':"
+msgstr "insn erróneo para frv_print_operand, modificador 'g':"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'L':"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
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:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'O':"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr "insn erróneo para frv_print_operand, modificador 'P':"
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr "insn erróneo en frv_print_operand, caso z"
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr "insn erróneo en frv_print_operand, caso 0"
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr "frv_print_operand: código desconocido"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr "Operando output_move_single erróneo"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr "Operando output_move_double erróneo"
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr "Operando output_condmove_single erróneo"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr "el acumulador no es una constante entera"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr "el número del acumulador está fuera de los límites"
-#: config/frv/frv.c:9634
-#, fuzzy, c-format
+#: config/frv/frv.c:9790
+#, c-format
msgid "inappropriate accumulator for %qs"
-msgstr "acumulador inapropiado para `%s'"
+msgstr "acumulador inapropiado para %qs"
-#: config/frv/frv.c:9700
-#, fuzzy
+#: config/frv/frv.c:9856
msgid "invalid IACC argument"
-msgstr "argumento de tipo inválido"
+msgstr "argumento IACC inválido"
-#: config/frv/frv.c:9723
-#, fuzzy, c-format
+#: config/frv/frv.c:9879
+#, c-format
msgid "%qs expects a constant argument"
-msgstr "el atributo `%s' espera una constante como argumento"
+msgstr "%qs espera una constante como argumento"
-#: config/frv/frv.c:9728
-#, fuzzy, c-format
+#: config/frv/frv.c:9884
+#, c-format
msgid "constant argument out of range for %qs"
-msgstr "el argumento constante está fuera de rango para `%s'"
+msgstr "el argumento constante está fuera de rango para %qs"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
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:10137
+#: config/frv/frv.c:10331
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:10165
-#, fuzzy
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
-msgstr "esta función de medios sólo está disponible en el fr400"
+msgstr "esta función de medios sólo está disponible en el fr400 y fr550"
-#: config/frv/frv.c:10184
-#, fuzzy
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
-msgstr "esta función de medios sólo está disponible en el fr400"
+msgstr "esta función interna sólo está disponible en el fr405 y fr450"
-#: config/frv/frv.c:10193
-#, fuzzy
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
-msgstr "esta función de medios sólo está disponible en el fr500"
+msgstr "esta función interna sólo está disponible en el fr500 y fr550"
-#: config/frv/frv.c:10205
-#, fuzzy
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
-msgstr "esta función de medios sólo está disponible en el fr400"
+msgstr "esta función interna sólo está disponible en el fr450"
#. This macro is a C statement to print on `stderr' a string describing the
#. particular machine description choice. Every machine description should
@@ -9572,7 +9063,7 @@ msgstr "esta función de medios sólo está disponible en el fr400"
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr " (frv)"
@@ -9599,14 +9090,12 @@ msgid "Do not generate H8S code"
msgstr "No generar código H8S"
#: config/h8300/h8300.h:161
-#, fuzzy
msgid "Generate H8SX code"
-msgstr "Generar código H8S"
+msgstr "Generar código H8SX"
#: config/h8300/h8300.h:162
-#, fuzzy
msgid "Do not generate H8SX code"
-msgstr "No generar código H8S"
+msgstr "No generar código H8SX"
#: config/h8300/h8300.h:163
msgid "Generate H8S/2600 code"
@@ -9652,185 +9141,192 @@ msgstr "No generar código H8/300H"
msgid "Use H8/300 alignment rules"
msgstr "Usar reglas de alineación H8/300"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, 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:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "valor erróneo (%s) para el interruptor -mcmodel="
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "valor erróneo (%s) para el interruptor -masm="
-#: config/i386/i386.c:1274
-#, fuzzy, c-format
+#: config/i386/i386.c:1270
+#, c-format
msgid "code model %qs not supported in the %s bit mode"
-msgstr "el modelo de código `%s' no tiene soporte en el modo de bit %s"
+msgstr "el modelo de código %qs no tiene soporte en el modo de bit %s"
-#: config/i386/i386.c:1277
-#, fuzzy
+#: config/i386/i386.c:1273
msgid "code model %<large%> not supported yet"
-msgstr "aún no hay soporte para el modelo de código `large'"
+msgstr "aún no hay soporte para el modelo de código %<large%>"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "no está compilado el modo bit-%i"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "el CPU que seleccionó no tiene soporte para el conjunto de instrucciones x86-64"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "valor erróneo (%s) para el interruptor -march="
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "valor erróneo (%s) para el interruptor -mtune="
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d no está entre 0 y %d"
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops es obsoleto, use -falign-loops"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, 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:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps es obsoleto, use -falign-jumps"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions es obsoleto, use -falign-functions"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, 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:1452
+#: config/i386/i386.c:1448
#, 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:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "valor erróneo (%s) para el interruptor -mtls-dialect="
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double no tiene sentido en el modo 64bit"
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
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:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
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:1538
+#: config/i386/i386.c:1554
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:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "valor erróneo (%s) para el interruptor -mfpmath="
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr "los atributos fastcall y stdcall no son compatibles"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr "los atributos fastcall y regparm no son compatibles"
-#: config/i386/i386.c:1754
-#, fuzzy, c-format
+#: config/i386/i386.c:1761
+#, c-format
msgid "%qs attribute requires an integer constant argument"
-msgstr "el atributo `%s' requiere una constante entera como argumento"
+msgstr "el atributo %qs requiere una constante entera como argumento"
-#: config/i386/i386.c:1760
-#, fuzzy, c-format
+#: config/i386/i386.c:1767
+#, c-format
msgid "argument to %qs attribute larger than %d"
-msgstr "el argumento para el atributo `%s' es más grande que %d"
+msgstr "el argumento para el atributo %qs es más grande que %d"
+
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr "se devuelve el registro SSE con SSE desactivado"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr "argumento de registro SSE con SSE desactivado"
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr "el argumento de vector SSE sin SSE activado cambia la ABI"
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr "el argumento de vector MMX sin MMX activado cambia la ABI"
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr "el vector de devolución SSE sin SSE activado cambia la ABI"
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "UNSPEC inválido como operando"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr "los registros extendidos no tiene mitades superiores"
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr "tamaño de operando sin soporte para el registro extendido"
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
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:6522
-#, fuzzy, c-format
+#: config/i386/i386.c:6625
+#, c-format
msgid "invalid operand code '%c'"
-msgstr "código de operando `%c' inválido"
+msgstr "código de operando '%c' inválido"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
msgid "invalid constraints for operand"
msgstr "restricciones inválidas para el operando"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
msgid "unknown insn mode"
msgstr "modo insn desconocido"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr "el selector debe ser una constante entera en el rango 0..%i"
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr "el desplazamiento debe ser un inmediato"
-#: config/i386/i386.c:14489
-#, fuzzy, c-format
+#: config/i386/i386.c:15634
+#, c-format
msgid "%qs incompatible attribute ignored"
-msgstr "se ignora el atributo incompatible `%s'"
+msgstr "se ignora el atributo incompatible %qs"
#: config/i386/winnt.c:74
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute only applies to variables"
-msgstr "el atributo `%s' solamente se aplica a variables"
+msgstr "el atributo %qs solamente se aplica a variables"
#: config/i386/winnt.c:172
msgid "%Jfunction '%D' is defined after prior declaration as dllimport: attribute ignored"
@@ -9849,9 +9345,9 @@ msgid "%Jinconsistent dll linkage for '%D', dllexport assumed."
msgstr "%Jenlazado de dll inconsistente para '%D', se asume dllexport."
#: config/i386/winnt.c:299 config/sh/symbian.c:279
-#, fuzzy, c-format
+#, c-format
msgid "%qs 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"
+msgstr "%qs se declara como exportado a e importado de una DLL al mismo tiempo"
#: config/i386/winnt.c:308
msgid "%Jfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
@@ -9924,166 +9420,166 @@ msgstr "ms-bitfields no tiene soporte para objc"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "Convención de llamada alternativa"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Usar convención de llamada normal"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "Alinear algunos doubles en límites de dword"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "Alinear doubles en límites de word"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr "Locales sin inicializar en .bss"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr "Locales sin inicializar en .data"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "Usar matemática IEEE para comparaciones fp"
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 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:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr "Devolver valores de funciones en registros FPU"
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr "No devolver valores de funciones en registros FPU"
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "No generar sin, cos, sqrt para FPU"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generar sin, cos, sqrt para FPU"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Omitir el marco de referencia para las funciones hojas"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "Habilitar la prueba de la pila"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "Alinear destino de las operaciones de cadenas"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr "No alinear destino de las operaciones de cadenas"
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "Convertir a inline todas las operaciones de cadenas conocidas"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr "No convertir a inline todas las operaciones de cadenas conocidas"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr "Usar instrucciones push para guardar los argumentos de salida"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
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:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr "Dar soporte para funciones internas MMX"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr "No dar soporte para funciones internas MMX"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr "Dar soporte para funciones internas 3DNow!"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr "No dar soporte para funciones internas 3DNow!"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
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:406
+#: config/i386/i386.h:405
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:408
+#: config/i386/i386.h:407
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:410
+#: config/i386/i386.h:409
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:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Dar soporte para funciones internas y generación de código MMX, SSE, SSE2 y SSE3"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "No dar soporte para funciones internas y generación de código MMX, SSE, SSE2 y SSE3"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) es 16"
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) es 12"
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr "Generar código x86-64 de 64bit"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr "Generar código i386 de 32bit"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr "Usar la disposición de campos de bits nativos (MS)"
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr "Usar la disposición de campos de bits por defecto de gcc"
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr "Usar la zona roja en el código x86-64"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr "No usar la zona roja en el código x86-64"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr "Usar referencias directas contra %gs cuando se accesen datos tls"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr "No usar referencias directas contra %gs cuando se accesen datos tls"
@@ -10097,54 +9593,54 @@ msgstr "No usar referencias directas contra %gs cuando se accesen datos tls"
#. 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Código de calendarizador para el CPU dado"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
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:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Generar código para el CPU dado"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "Número de registros usados para pasar argumentos enteros"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
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:482
+#: config/i386/i386.h:481
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:484
+#: config/i386/i386.h:483
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:487
+#: config/i386/i386.h:486
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:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Las ramificaciones son así de caras (1-5, unidades arbitrarias)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr "Usar el modelo de código del x86-64 dado"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "Usar el dialecto del ensamblador dado"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr "Usar el dialecto de almacenamiento thread-local dado"
@@ -10183,60 +9679,60 @@ msgstr "No generar código que use el FPU"
#: config/ia64/ia64-c.c:52
msgid "malformed #pragma builtin"
-msgstr "#pragma interno malformado"
+msgstr "#pragma builtin malformado"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
-#, fuzzy, c-format
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
+#, c-format
msgid "invalid argument of %qs attribute"
-msgstr "argumento inválido del atributo `%s'"
+msgstr "argumento inválido del atributo %qs"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "%Jno se puede especificar un atributo de área de direcciones para variables locales"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "%Jel área de direcciones de '%s' en conflicto con una declaración previa"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "%Jno se puede especificar un atributo de área de direcciones para funciones"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: código desconocido"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
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:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s es un rango vacío"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
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:4219
+#: config/ia64/ia64.c:4651
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:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr "no se puede optimizar la raíz cuadrada para latencia y salida al mismo tiempo"
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr "no se ha implementado aún: raíz cuadrada inline optimizada para latencia"
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "valor erróneo (%s) para el interruptor -mtls-size="
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "valor erróneo (%s) para el interruptor -tune="
@@ -10244,174 +9740,167 @@ msgstr "valor erróneo (%s) para el interruptor -tune="
#. 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Generar código big endian"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Generar código little endian"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Generar código para as de GNU"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Generar código as de Intel"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Generar código para ld de GNU"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Generar código para ld de Intel"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "Generar código sin registro GP"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
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:198
+#: config/ia64/ia64.h:194
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:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr "Emitir código para el procesador Itanium (TM) paso B"
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "Usar nombres de registro in/loc/out"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "Desactivar el uso de sdata/scommon/sbss"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "Activar el uso de sdata/scommon/sbss"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
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:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "Generar código auto-reubicable"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr "Generar división de coma flotante inline, optimizada para latencia"
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr "Generar división de coma flotante inline, optimizada para salida"
-#: config/ia64/ia64.h:217
-#, fuzzy
+#: config/ia64/ia64.h:211
msgid "Do not inline floating point division"
-msgstr "No colocar las constantes de coma flotante en TOC"
+msgstr "No generar división de coma flotante inline"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr "Generar división entera inline, optimizada para latencia"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr "Generar división entera inline, optimizada para salida"
-#: config/ia64/ia64.h:223
-#, fuzzy
+#: config/ia64/ia64.h:217
msgid "Do not inline integer division"
-msgstr "Avisar sobre la división entera por cero en tiempo de compilación"
+msgstr "No generar división entera inline"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr "Generar raíz cuadrada inline, optimizada para latencia"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr "Generar raíz cuadrada inline, optimizada para salida"
-#: config/ia64/ia64.h:229
-#, fuzzy
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
-msgstr "No desactivar registros de espacio"
+msgstr "No generar raíz cuadrada inline"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
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:233
+#: config/ia64/ia64.h:227
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:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr "Activar la ubicación temprana de bits de paro para mejor calendarización"
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr "Desactivar la ubicación temprana de bits de paro"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr "Especifica el rango de registros a convertir en fijos"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr "operando erróneo"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "valor erróneo (%s) para el interruptor -mcpu="
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, c-format
msgid "The compiler does not support -march=%s."
msgstr "El compilador no tiene soporte para -march=%s."
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, 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/iq2000/iq2000.c:2845
-#, fuzzy, c-format
+#: config/iq2000/iq2000.c:2847
+#, c-format
msgid "argument %qd is not a constant"
-msgstr "el argumento `%d' no es una constante"
+msgstr "el argumento %qd no es una constante"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, puntero nulo"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: Puntuación desconocida '%c'"
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND puntero nulo"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr "operando %%P inválido"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "valor %%p inválido"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "uso inválido de %%d, %%x, o %%X"
@@ -10428,87 +9917,87 @@ msgstr "Utilizar secciones sdata/sbss relativas a GP"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "No utilizar secciones sdata/sbss relativas a GP"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "Usar la ROM en lugar de la RAM"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "No usar la ROM en lugar de la RAM"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Poner las constantes sin inicializar en ROM (necesita -membedded-data)"
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr "No poner las constantes sin inicializar en ROM"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "Especificar el CPU para propósitos de calendarización"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr "Especificar el CPU para propósitos de generación de código"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "valor erróneo (%s) para el interruptor -mmodel"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "valor erróneo (%s) para el interruptor -msdata"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "valor erróneo (%s) para -flush-trap=n (0=<n<=15)"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr "operando inválido para el código %%s"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr "operador inválido para el código %%p"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr "insn erróneo para 'A'"
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "operador inválido para el código %%T/%%B"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr "operando inválido para el código %%N"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr "la dirección de pre-incremento no es un registro"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr "la dirección de pre-decremento no es un registro"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr "la dirección de post-incremento no es un registro"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "dirección errónea"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr "lo_sum no de un registro"
@@ -10537,11 +10026,11 @@ 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/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr "No llamar ninguna función de limpieza de caché"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr "Especificar la función de limpieza de caché"
@@ -10558,52 +10047,50 @@ msgstr "Especificar el número de trampa de limpieza de caché"
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "se ignora -f%s para 68HC11/68HC12 (sin soporte)"
-#: config/m68hc11/m68hc11.c:1435
-#, fuzzy
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
-msgstr "los atributos `trap' y `far' no son compatibles, se ignora `far'"
+msgstr "los atributos %<trap%> y %<far%> no son compatibles, se ignora %<far%>"
-#: config/m68hc11/m68hc11.c:1441
-#, fuzzy
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
-msgstr "el atributo `trap' ya está en uso"
+msgstr "el atributo %<trap%> ya está en uso"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr "no se maneja move insn"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr "registro inválido en la instrucción move"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr "operando inválido en la instrucción"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr "registro inválido en la instrucción"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
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:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr "rotate insn inválido"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
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:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr "no se puede reemplazar el registro-z"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr "reemplazo de registro Z inválido para el insn"
@@ -10701,7 +10188,7 @@ msgstr "no se pueden especificar -msep-data y -mid-shared-library al mismo tiemp
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/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr "no se da soporte a la expresión del límite de la pila"
@@ -10722,12 +10209,10 @@ msgid "Do not use the bit-field instructions"
msgstr "No usar las instrucciones de campos de bit"
#: config/m68k/m68k.h:256
-#, fuzzy
msgid "Consider type 'int' to be 16 bits wide"
msgstr "Considerar que el tipo `int' es de 16 bits de anchura"
#: config/m68k/m68k.h:258
-#, fuzzy
msgid "Consider type 'int' to be 32 bits wide"
msgstr "Considerar que el tipo `int' es de 32 bits de anchura"
@@ -10841,10 +10326,9 @@ msgstr "Usar la convención de llamada diferente usando 'rtd'"
msgid "ID of shared library to build"
msgstr "ID de la biblioteca compartida a crear"
-#: config/mcore/mcore.c:2987
-#, fuzzy
+#: config/mcore/mcore.c:2992
msgid "invalid option %<-mstack-increment=%s%>"
-msgstr "opción inválida `-mstack-increment=%s'"
+msgstr "opción inválida %<-mstack-increment=%s%>"
#: config/mcore/mcore.h:113
msgid "Inline constants if it can be done in 2 insns or less"
@@ -10898,137 +10382,137 @@ 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:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "valor erróneo (%s) para el interruptor -mabi="
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr "-mips%s tiene conflictos con las otras opciones de la arquitectura, las cuales especifican un procesador MIPS%d"
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "-march=%s no es compatible con la ABI seleccionada"
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr "se utiliza -mgp64 con un procesador de 32-bit"
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr "se utiliza -mgp32 cun una ABI de 64-bit"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr "se utiliza -mgp64 con una ABI de 32-bit"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, c-format
msgid "unsupported combination: %s"
msgstr "combinación sin soporte: %s"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr "-mint64 es una opción obsoleta"
+
+#: config/mips/mips.c:4187
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:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G es incompatible con el código PIC el cual es por defecto"
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
-msgstr ""
+msgstr "-mips3d requiere -mpaired-single"
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
-msgstr ""
+msgstr "-mips3d/-mpaired-single se deben usar con -mfp64 -mhard-float"
-#: config/mips/mips.c:4274
-#, fuzzy
+#: config/mips/mips.c:4285
msgid "-mips3d/-mpaired-single must be used with -mips64"
-msgstr "-frepo debe ser usado con -c"
+msgstr "-mips3d/-mpaired-single se deben usar con -mips64"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr "se llamó a mips_debuger_offset con un puntero que no es stack/frame/arg"
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, 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:4772
+#: config/mips/mips.c:4783
#, 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:4785
+#: config/mips/mips.c:4796
#, 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:4798
+#: config/mips/mips.c:4809
#, 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:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: puntuación desconocida '%c'"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND, insn inválido para %%C"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND, insn inválido para %%N"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND, insn inválido para %%F"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND, insn inválido para %%W"
-#: config/mips/mips.c:4897
-#, fuzzy, c-format
+#: config/mips/mips.c:4908
+#, c-format
msgid "invalid %%Y value"
-msgstr "valor %%j inválido"
+msgstr "valor %%Y inválido"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr "PRINT_OPERAND, operando inválido para la reubicación"
-#: config/mips/mips.c:7561
-#, fuzzy, c-format
+#: config/mips/mips.c:7573
+#, c-format
msgid "cannot handle inconsistent calls to %qs"
-msgstr "no se pueden manejar llamadas inconsistentes a `%s'"
+msgstr "no se pueden manejar llamadas inconsistentes a %qs"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr "el nombre de cpu debe estar en minúsculas"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr "valor erróneo (%s) para %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr "Igual que -mabi=32, solo que con más trucos"
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11038,64 +10522,63 @@ msgstr "Igual que -mabi=32, solo que con más trucos"
#. 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:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "Usar tipo int de 64-bit"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "Usar tipo long de 64-bit"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "Usar tipo long de 32-bit"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "Optimizar las cargas de las direcciones lui/addiu"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
-msgstr "No ptimizar las cargas de las direcciones lui/addiu"
+msgstr "No optimizar las cargas de las direcciones lui/addiu"
-#: config/mips/mips.h:543
-#, fuzzy
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
-msgstr "Utilizar secciones sdata/sbss relativas a GP (ahora ignorado)"
+msgstr "Usar as de GNU (ahora ignorado)"
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "Utilizar secciones sdata/sbss relativas a GP (ahora ignorado)"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "No utilizar secciones sdata/sbss relativas a GP (ahora ignorado)"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr "Mostrar la salida de estadísticas del compilador (ahora ignorado)"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "No mostrar la salida de estadísticas del compilador"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "No optimizar los movimientos de bloques"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "Optimizar los movimientos de bloques"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "Usar el postpase asm mips-tfile"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "No usar el postpase asm mips-tfile"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Usar coma flotante de software"
@@ -11105,206 +10588,193 @@ msgstr "Usar coma flotante de software"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "Usar coma flotante de hardware"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "Usar registros FP de 64-bit"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "Usar registros FP de 32-bit"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "Usar registros generales de 64-bit"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "Usar registros generales de 32-bit"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Usar PIC de Irix"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "No usar PIC de Irix"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "Usar llamadas indirectas"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "No usar llamadas indirectas"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Usar el orden de byte big-endian"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Usar el orden de byte little-endian"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "Usar únicamente una sola FP (32-bit)"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "No usar únicamente una sola FP (32-bit)"
-#: config/mips/mips.h:601 config/mips/mips.h:603
-#, fuzzy
+#: config/mips/mips.h:605 config/mips/mips.h:607
msgid "Use paired-single floating point instructions"
-msgstr "Usar instrucciones de hardware para coma flotante"
+msgstr "Usar instrucciones sencillas-apareadas de coma flotante"
-#: config/mips/mips.h:605 config/mips/mips.h:607
-#, fuzzy
+#: config/mips/mips.h:609 config/mips/mips.h:611
msgid "Use MIPS-3D instructions"
-msgstr "No usar instrucciones MIPS16"
+msgstr "Usar instrucciones MIPS-3D"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "Usar el acumulador de multiplicación"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "No usar el acumulador de multiplicación"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr "No generar instrucciones multiply/add de corto circuito"
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "Generar instrucciones multiply/add de corto circuito"
-#: config/mips/mips.h:617
-#, fuzzy
+#: config/mips/mips.h:621
msgid "Perform VR4130-specific alignment optimizations"
-msgstr "Realizar optimizaciones de hilado de saltos"
+msgstr "Realizar optimizaciones de alineación específicas para VR4130"
-#: config/mips/mips.h:619
-#, fuzzy
+#: config/mips/mips.h:623
msgid "Don't perform VR4130-specific alignment optimizations"
-msgstr "No realizar optimización de la llamada del extremo"
+msgstr "No realizar optimizaciones de alineación específicas para VR4130"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "Evitar el bug del primer hardware 4300"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "No evitar el bug del primer hardware 4300"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr "Evitar los errores para núcleos tempranos SB-1 revisión 2"
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr "No evitar los errores para núcleos tempranos SB-1 revisión 2"
-#: config/mips/mips.h:629
-#, fuzzy
+#: config/mips/mips.h:633
msgid "Work around R4000 errata"
-msgstr "Evitar el bug del primer hardware 4300"
+msgstr "Evitar el error del R4000"
-#: config/mips/mips.h:631
-#, fuzzy
+#: config/mips/mips.h:635
msgid "Don't work around R4000 errata"
-msgstr "No evitar el bug del primer hardware 4300"
+msgstr "No evitar el error del R4000"
-#: config/mips/mips.h:633
-#, fuzzy
+#: config/mips/mips.h:637
msgid "Work around R4400 errata"
-msgstr "Evitar el bug del primer hardware 4300"
+msgstr "Evitar el error del R4400"
-#: config/mips/mips.h:635
-#, fuzzy
+#: config/mips/mips.h:639
msgid "Don't work around R4400 errata"
-msgstr "No evitar el bug del primer hardware 4300"
+msgstr "No evitar el error del R4400"
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
-msgstr ""
+msgstr "Evitar errores de ciertos VR4120"
-#: config/mips/mips.h:639
-#, fuzzy
+#: config/mips/mips.h:643
msgid "Don't work around certain VR4120 errata"
-msgstr "No evitar el bug del primer hardware 4300"
+msgstr "No evitar errores de ciertos VR4120"
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Atrapar la división entera por cero"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "No atrapar la división entera por cero"
-#: config/mips/mips.h:645
-#, fuzzy
+#: config/mips/mips.h:649
msgid "Use trap to check for integer divide by zero"
-msgstr "Atrapar la división entera por cero"
+msgstr "Atrapar para revisar la división entera por cero"
-#: config/mips/mips.h:647
-#, fuzzy
+#: config/mips/mips.h:651
msgid "Use break to check for integer divide by zero"
-msgstr "Atrapar la división entera por cero"
+msgstr "Interrumpir para revisar la división entera por cero"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
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:651
+#: config/mips/mips.h:655
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:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr "Usar los operadores de ensamblador %reloc() del estilo NewABI"
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr "Usar macros de ensamblador en lugar de operadores de reubicación"
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
msgid "Generate mips16 code"
msgstr "Generar código mips16"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
msgid "Generate normal-mode code"
msgstr "Generar código normal-mode"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr "Levantar restricciones en el tamaño de GOT"
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr "No levantar restricciones en el tamaño de GOT"
-#: config/mips/mips.h:665
-#, fuzzy
+#: config/mips/mips.h:669
msgid "FP exceptions are enabled"
-msgstr "opciones activadas: "
+msgstr "Las excepciones FP están activadas"
-#: config/mips/mips.h:667
-#, fuzzy
+#: config/mips/mips.h:671
msgid "FP exceptions are not enabled"
-msgstr "los nombres de excepción ON deben ser únicos"
+msgstr "Las excepciones FP no están activadas"
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr "Especificar el ISA de MIPS Standard"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "análisis de perfil de las funciones mips16"
@@ -11314,9 +10784,9 @@ msgid "-f%s not supported: ignored"
msgstr "-f%s no tiene soporte: ignorado"
#: config/mmix/mmix.c:657
-#, fuzzy, c-format
+#, c-format
msgid "support for mode %qs"
-msgstr "no hay tipo de datos para el modo `%s'"
+msgstr "soporte para el modo %qs"
#: config/mmix/mmix.c:671
#, c-format
@@ -11331,70 +10801,70 @@ msgstr "soporte para function_profiler para MMIX"
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr "MMIX Interno: El último vararg nombrado no cabe en un registro"
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX Interno: Se esperaba un CONST_INT, no esto"
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX Interno: Registro erróneo: %d"
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
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:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX Interno: Se esperaba un registro, no esto"
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
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:1602
-#, fuzzy, c-format
+#: config/mmix/mmix.c:1611
+#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
-msgstr "MMIX Interno: Falta un case `%c' en mmix_print_operand"
+msgstr "MMIX Interno: Falta un case %qc en mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX Interno: No se puede decodificar este operando"
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX Interno: Esta no es una dirección reconocida"
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, 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:2127
+#: config/mmix/mmix.c:2133
#, 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:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr "MMIX Interno: %s no es un int desplazable"
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
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:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX Interno: ¿Cuál es el CC de esto?"
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX Interno: ¿Cuál es el CC de esto?"
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX Interno: Esto no es una constante:"
@@ -11467,15 +10937,15 @@ msgstr "Generar un sólo punto de salida para cada función"
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/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "Apuntar al procesador AM33"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr "Apuntar al procesador AM33/2.0"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr "Activar la relajación del enlazador"
@@ -11559,7 +11029,7 @@ msgstr "Con truco sucio \"Clases de registro pequeñas\""
msgid "No \"Small register classes\" kludge"
msgstr "Sin truco sucio \"Clases de registro pequeñas\""
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11568,7 +11038,7 @@ msgstr ""
"opción -mschedule= desconocida (%s).\n"
"Las opciones válidas son 700, 7100, 7100LC, 7200, 7300, y 8000\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11577,54 +11047,59 @@ msgstr ""
"opción -march= desconocida (%s).\n"
"Las opciones válidas son 1.0, 1.1, y 2.0\n"
-#: config/pa/pa.c:449
-#, fuzzy, c-format
+#: config/pa/pa.c:457
+#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-"opción -march= desconocida (%s).\n"
-"Las opciones válidas son 1.0, 1.1, y 2.0\n"
+"opción -unix= desconocida (%s).\n"
+"Las opciones válidas son 93, 95 y 98.\n"
-#: config/pa/pa.c:454
-#, fuzzy, c-format
+#: config/pa/pa.c:462
+#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-"opción -march= desconocida (%s).\n"
-"Las opciones válidas son 1.0, 1.1, y 2.0\n"
+"opción -munix= desconocida (%s).\n"
+"Las opciones válidas son 93 y 95.\n"
-#: config/pa/pa.c:458
-#, fuzzy, c-format
+#: config/pa/pa.c:466
+#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-"opción -march= desconocida (%s).\n"
-"Las opciones válidas son 1.0, 1.1, y 2.0\n"
+"opción -munix= desconocida (%s).\n"
+"La opción válida es 93.\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
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:480
+#: config/pa/pa.c:488
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:485
+#: config/pa/pa.c:493
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:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr "opción -g desactivada"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr "la alineación (%u) para %s excede la alineación máxima para los datos comunes globales. Se usará %u"
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr "Generar definiciones cpp para ES de servidor"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr "Generar definiciones cpp para ES de estación de trabajo"
@@ -11633,22 +11108,28 @@ msgid ""
"Specify UNIX standard for predefines and linking.\n"
"Supported value is 93."
msgstr ""
+"Especificar el estándar UNIX para las predefiniciones y enlazado.\n"
+"El valor con soporte es 93."
#: config/pa/pa-hpux1010.h:28 config/pa/pa-hpux11.h:99
msgid ""
"Specify UNIX standard for predefines and linking.\n"
"Supported values are 93 and 95."
msgstr ""
+"Especificar el estándar UNIX para las predefiniciones y enlazado.\n"
+"Los valores con soporte son 93 y 95."
#: config/pa/pa-hpux11.h:82
msgid "-munix=98 option required for C89 Amendment 1 features.\n"
-msgstr ""
+msgstr "se requiere la opción -munix=98 para las características C89 Enmienda 1.\n"
#: config/pa/pa-hpux1111.h:28
msgid ""
"Specify UNIX standard for predefines and linking.\n"
"Supported values are 93, 95 and 98."
msgstr ""
+"Especificar el estándar UNIX para las predefiniciones y enlazado.\n"
+"Los valores con soporte son 93, 95 y 98."
#. Macro to define tables used to set the flags. This is a
#. list in braces of target switches with each switch being
@@ -11758,27 +11239,26 @@ msgid "Enable linker optimizations"
msgstr "Activar las optimizaciones del enlazador"
#: config/pa/pa.h:332
-#, fuzzy
msgid ""
"Specify PA-RISC architecture for code generation.\n"
"Values are 1.0, 1.1 and 2.0."
-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."
+msgstr ""
+"Especificar la arquitectura PA-RISC para la generación del código.\n"
+"Los valores son 1.0, 1.1, y 2.0."
#: config/pa/pa.h:335
-#, fuzzy
msgid "Specify range of registers to make fixed."
-msgstr "Especifica el rango de registros a convertir en fijos"
+msgstr "Especificar el rango de registros a convertir en fijos."
#: config/pa/pa.h:337
-#, fuzzy
msgid "Specify CPU for scheduling purposes."
-msgstr "Especificar el CPU para propósitos de calendarización"
+msgstr "Especificar el CPU para propósitos de calendarización."
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
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
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr "Asumir que el código será enlazado por ld de HP"
@@ -11859,9 +11339,9 @@ msgid "Out of stack space.\n"
msgstr "Espacio de pila agotado.\n"
#: config/rs6000/host-darwin.c:104
-#, fuzzy, c-format
+#, c-format
msgid "Try running '%s' in the shell to raise its limit.\n"
-msgstr "Pruebe ejecutar `%s' en el intérprete de comandos para elevar su límite.\n"
+msgstr "Pruebe ejecutar '%s' en el intérprete de comandos para elevar su límite.\n"
#: config/rs6000/host-darwin.c:117
msgid "Segmentation Fault"
@@ -11916,211 +11396,236 @@ 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:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple no tiene soporte en sistemas little endian"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring no tiene soporte en sistemas little endian"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "interruptor -mdebug-%s desconocido"
-#: config/rs6000/rs6000.c:1277
-#, fuzzy
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
-msgstr "argumento de -mtraceback `%s' desconocido; se esperaba `full', `partial' o `none'"
+msgstr "argumento de -mtraceback %qs desconocido; se esperaba %<full%>, %<partial%> o %<none%>"
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "Interruptor -mlong-double-%s desconocido"
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr "Las instrucciones AltiVec y E500 no pueden coexistir"
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "opción -m%s= especificada desconocida: '%s'"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr "no se configuró para ABI: '%s'"
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
-msgstr ""
+msgstr "Usando ABI darwin64"
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
-msgstr ""
+msgstr "Usando ABI de darwin antiguo"
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ABI especificada desconocida: '%s'"
-#: config/rs6000/rs6000.c:1673
-#, fuzzy
+#: config/rs6000/rs6000.c:1679
msgid "invalid option for -mfloat-gprs"
-msgstr "opción inválida `-mshort-data-%s'"
+msgstr "opción inválida para -mfloat-gprs"
+
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr "-malign-power no tiene soporte para Darwin de 64-bit; es incompatible con las bibliotecas C y C++ instaladas"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1702
#, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "opción -malign-XXXXX especificada desconocida: '%s'"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
-msgstr ""
+msgstr "Se devolvió un vector GCC por referencia: extensión de ABI no estándard sin garantía de compatibilidad"
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "No se puede devolver un valor en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas."
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "No se puede pasar argumentos en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas."
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
-msgstr ""
+msgstr "vector GCC pasado por referencia: extensión ABI que no es estándar sin garantía de compatibilidad"
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
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:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
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:6748
+#: config/rs6000/rs6000.c:6847
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:6802
+#: config/rs6000/rs6000.c:6901
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:6964
+#: config/rs6000/rs6000.c:7063
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:7136
-#, fuzzy, c-format
+#: config/rs6000/rs6000.c:7235
+#, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
-msgstr "el argumento para `%s' debe ser una literal sin signo de 2-bit"
+msgstr "el argumento para %qs debe ser una literal sin signo de 2-bit"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
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:7264
-#, fuzzy, c-format
+#: config/rs6000/rs6000.c:7363
+#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
-msgstr "combinación de parámetros inválida para el intrínseco AltiVec `%s'"
+msgstr "combinación de parámetros inválida para el intrínseco AltiVec %qs"
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
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:7571
+#: config/rs6000/rs6000.c:7670
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:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "valor %%f inválido"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "valor %%F inválido"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "valor %%G inválido"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "código %%j inválido"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "código %%J inválido"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "valor %%k inválido"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "valor %%K inválido"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "valor %%O inválido"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "valor %%q inválido"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "valor %%S inválido"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "valor %%T inválido"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "valor %%u inválido"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "valor %%v inválido"
-#: config/rs6000/rs6000.c:13442
-#, fuzzy
+#: config/rs6000/rs6000.c:13555
msgid "stack frame too large"
msgstr "marco de pila demasiado grande"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
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/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
-msgstr "el uso de 'long' en tipos AltiVec es obsoleto; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit"
+
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "el uso de %<long%> en tipos AltiVec es obsoleto; use %<int%>"
+
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr "el uso de %<long long%> en tipos AltiVec es inválido"
-#: config/rs6000/aix.h:203 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/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "el uso de %<double%> en tipos AltiVec es inválido"
-#: config/rs6000/aix.h:205 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/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "el uso de %<long double%> en tipos AltiVec es inválido"
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "el uso de tipos booleanos en tipos AltiVec es inválido"
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr "el uso de %<complex%> en tipos AltiVec es inválido"
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr "Conforme más cerca a la semántica XLC de IBM"
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr "Semántica GCC por defecto que difiere de XLC de IBM"
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "Soporte para el paso de mensajes con el Ambiente Paralelo"
@@ -12169,27 +11674,25 @@ msgid "-fpic is not supported; -fPIC assumed"
msgstr "-fpic no tiene soporte; se asume -fPIC"
#: config/rs6000/darwin.h:113
-#, fuzzy
msgid "-m64 requires PowerPC64 architecture, enabling"
-msgstr "-maix64 requiere que la arquitectura PowerPC64 permanezca activada"
+msgstr "-m64 requiere la arquitectura PowerPC64, activando"
#. See note below.
#. if (rs6000_long_double_size_string == NULL)
#. rs6000_long_double_type_size = 128;
#: config/rs6000/eabispe.h:45 config/rs6000/linuxspe.h:62
-#, fuzzy
msgid "-m64 not supported in this configuration"
-msgstr "-m%s no tiene soporte en esta configuración"
+msgstr "-m64 no tiene soporte en esta configuración"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr "-m64 requiere un procesador PowerPC64"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr "Llamar a mcount para análisis de perfil antes del prólogo de una función"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr "Llamar a mcount para análisis de perfil después del prólogo de una función"
@@ -12336,7 +11839,7 @@ msgstr "Generar instrucciones mfcr de un solo campo"
msgid "Do not generate single field mfcr instruction"
msgstr "No generar instrucciones mfcr de un solo campo"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Usar características del código de calendarizador and para el CPU dado"
@@ -12408,7 +11911,7 @@ msgstr "Especificar la prioridad de calendarización para despachar insns restrin
#. 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET no tiene soporte"
@@ -12560,85 +12063,86 @@ msgstr "-mcall-aixdesc debe ser big endian"
msgid "-m%s not supported in this configuration"
msgstr "-m%s no tiene soporte en esta configuración"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr "Se utilizó un cpu desconocido en -mcpu=%s."
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "Se utilizó un cpu desconocido en -mtune=%s."
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "el modo z/Architecture no tiene soporte en %s."
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "la ABI de 64-bit no tiene soporte en el modo ESA/390."
-#: config/s390/s390.c:1325
-#, fuzzy
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr "no hay soporte para -mbackchain -mpacked-stack -mhard-float en combinación."
+
+#: config/s390/s390.c:1450
msgid "invalid value for -mwarn-framesize"
-msgstr "valor erróneo para -mcall-%s"
+msgstr "valor inválido para -mwarn-framesize"
-#: config/s390/s390.c:1335
-#, fuzzy
+#: config/s390/s390.c:1460
msgid "invalid value for -mstack-size"
-msgstr "valor erróneo para -msdata=%s"
+msgstr "valor inválido para -mwarn-framesize"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
-msgstr ""
+msgstr "el tamaño de la pila debe ser una potencia exacta de 2"
-#: config/s390/s390.c:1344
-#, fuzzy
+#: config/s390/s390.c:1469
msgid "invalid value for -mstack-guard"
-msgstr "valor erróneo para -msdata=%s"
+msgstr "valor inválido para -mstack-guard"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
-msgstr ""
+msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila"
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
-msgstr ""
+msgstr "el valor de guardia de pila debe ser una potencia exacta de 2"
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
-msgstr ""
+msgstr "-mstack-size implica el uso de -mstack-guard"
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
-msgstr ""
+msgstr "-mstack-guard implica el uso de -mstack-size"
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr "No se puede descomponer la dirección."
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr "UNKNOWN en print_operand !?"
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
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.c:6823
-#, fuzzy, c-format
+#: config/s390/s390.c:7085
+#, c-format
msgid "frame size of %qs is "
-msgstr "no se conoce el tamaño de almacenamiento de `%s'"
+msgstr "el tamaño de almacenamiento de %qs es"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
-msgstr ""
+msgstr " bytes"
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
-msgstr ""
+msgstr "%qs utiliza alojamiento dinámico de pila"
#: config/s390/s390.h:136
msgid "Use bras for executable < 64k"
@@ -12681,122 +12185,109 @@ msgid "mvc&ex"
msgstr "mvc&ex"
#: config/s390/s390.h:146
-#, fuzzy
msgid "Enable tpf OS tracing code"
-msgstr "activar código tpf de OS"
+msgstr "Activar código de rastreo tpf de OS"
#: config/s390/s390.h:147
-#, fuzzy
msgid "Disable tpf OS tracing code"
-msgstr "desactivar código tpf de OS"
+msgstr "Desactivar código de rastreo tpf de OS"
#: config/s390/s390.h:148
-#, fuzzy
msgid "Disable fused multiply/add instructions"
-msgstr "desactivar instrucciones multiply/add de corto circuito"
+msgstr "Desactivar instrucciones multiply/add de corto circuito"
#: config/s390/s390.h:149
-#, fuzzy
msgid "Enable fused multiply/add instructions"
-msgstr "activar instrucciones multiply/add de corto circuito"
+msgstr "Activar instrucciones multiply/add de corto circuito"
#: config/s390/s390.h:150
msgid "Maintain backchain pointer"
-msgstr ""
+msgstr "Mantener puntero a la cadena hacia atrás"
#: config/s390/s390.h:151
-#, fuzzy
msgid "Don't maintain backchain pointer"
-msgstr "No emitir código de revisión de la pila"
+msgstr "No mantener puntero a la cadena hacia atrás"
#: config/s390/s390.h:152
msgid "Use packed stack layout"
-msgstr ""
+msgstr "Usar disposición de pila empacada"
#: config/s390/s390.h:153
-#, fuzzy
msgid "Don't use packed stack layout"
-msgstr "No usar la tendencia de la pila"
+msgstr "No usar disposición de pila empacada"
#: config/s390/s390.h:162
msgid "Warn if a single function's framesize exceeds the given framesize"
-msgstr ""
+msgstr "Avisar si el tamaño de marco de una sola función excede el tamaño de marco dado"
#: config/s390/s390.h:165
msgid "Warn if a function uses alloca or creates an array with dynamic size"
-msgstr ""
+msgstr "Avisar si una función usa alloca o crea una matriz de tamaño dinámico"
#: config/s390/s390.h:168
msgid "Emit extra code in the function prologue in order to trap if the stacksize exceeds the given limit"
-msgstr ""
+msgstr "Emitir código extra en el prólogo de la función para atrapar en caso de que el tamaño de la pila exceda el límite dado"
#: config/s390/s390.h:171
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
-msgstr ""
+msgstr "Establecer el número máximo de bytes que se deben dejar en el tamaño de la pila antes de que se active una instrucción trap"
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "no se da soporte a __builtin_saveregs en este subobjetivo"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
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.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
-#, fuzzy, c-format
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
+#, c-format
msgid "%qs attribute only applies to interrupt functions"
-msgstr "el atributo `%s' se aplica solamente a funciones de interrupción"
+msgstr "el atributo %qs se aplica solamente a funciones de interrupción"
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
-#, fuzzy, c-format
+#: config/sh/sh.c:7223
+#, c-format
msgid "%qs attribute argument not a string constant"
-msgstr "el argumento del atributo `%s' no es una cadena constante"
+msgstr "el argumento del atributo %qs no es una constante de cadena"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
-#, fuzzy, c-format
+#: config/sh/sh.c:7258
+#, c-format
msgid "%qs attribute argument not an integer constant"
-msgstr "el argumento del atributo `%s' no es una constante entera"
+msgstr "el argumento del atributo %qs no es una constante entera"
#: config/sh/symbian.c:147
-#, fuzzy
msgid "%H function '%D' is defined after prior declaration as dllimport: attribute ignored"
-msgstr "%Jla función '%D' se define después de una declaración previa como dllimport: se ignora el atributo"
+msgstr "%H la función '%D' se define después de una declaración previa como dllimport: se ignora el atributo"
#: config/sh/symbian.c:158
-#, fuzzy
msgid "%Hinline function '%D' is declared as dllimport: attribute ignored."
-msgstr "%Jla función inline '%D' se declara como dllimport: se ignora el atributo."
+msgstr "%Hla función inline '%D' se declara como dllimport: se ignora el atributo."
#: config/sh/symbian.c:171
-#, fuzzy
msgid "%Hdefinition of static data member '%D' of dllimport'd class."
-msgstr "%Jla definición del dato miembro static '%D' es de la clase dllimport."
+msgstr "%Hla definición del dato miembro static '%D' es de la clase dllimport."
#: config/sh/symbian.c:286
-#, fuzzy
msgid "%Hfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
-msgstr "%Jfalla en la redeclaración de '%D': el símbolo dllimport carece de enlazado externo."
+msgstr "%Hfalla en la redeclaración de '%D': el símbolo dllimport carece de enlazado externo."
#: config/sh/symbian.c:332
-#, fuzzy
msgid "%H%s '%D' %s after being referenced with dllimport linkage."
-msgstr "%J'%D' se define localmente después de ser referenciado con enlazado dllimport"
+msgstr "%H%s '%D' %s después de ser referenciado con enlazado dllimport."
#: config/sh/symbian.c:436
-#, fuzzy
msgid "%Hvariable %qD definition is marked dllimport."
-msgstr "%Jla definición de la variable '%D' está marcada como dllimport."
+msgstr "%Hla definición de la variable %qD está marcada como dllimport."
#: config/sh/symbian.c:511
-#, fuzzy
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
-msgstr "%Jse requiere enlazado externo para el símbolo '%D' debido al atributo '%s'."
+msgstr "%Hse requiere enlazado externo para el símbolo '%D' debido al atributo '%s'."
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr "revisión lang_*: falló en %s, en %s:%d"
@@ -12808,183 +12299,183 @@ msgstr "revisión lang_*: falló en %s, en %s:%d"
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:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s no tiene soporte en esta configuración"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "no se permite -mlong-double-64 con -m64"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= no tiene soporte en sistemas de 32 bit"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "operando %%Y inválido"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "operando %%A inválido"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "operando %%B inválido"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "operando %%c inválido"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "operando %%C inválido"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "operando %%d inválido"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "operando %%D inválido"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "operando %%f inválido"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, c-format
msgid "invalid %%s operand"
msgstr "operando %%s inválido"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
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:7550
+#: config/sparc/sparc.c:7560
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:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "Usar long doubles de 64 bit"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "Usar long doubles de 128 bit"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Generar código para big endian"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Generar código para little endian"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr "Usar el orden de byte little-endian para los datos"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "Asumir desalineación de double posible"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Asumir que todos los doubles están alineados"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "Pasar el texto puro de -assert al enlazador"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "No pasar el texto puro de -assert al enlazador"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "Usar los registros ABI reservados"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "No usar los registros ABI reservados"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "Usar instrucciones de fp quad de hardware"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "No usar instrucciones de fp quad de hardware"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "Compilar para el ABI de v8plus"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "No compilar para el ABI de v8plus"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Utilizar el Conjunto de Instrucciones Visuales"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "No utilizar el Conjunto de Instrucciones Visuales"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "Los punteros son de 64-bit"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "Los punteros son de 32-bit"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "Usar ABI de 32-bit"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "Usar ABI de 64-bit"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "Usar tendencia de la pila"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "No usar la tendencia de la pila"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
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:664
+#: config/sparc/sparc.h:670
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:666
+#: config/sparc/sparc.h:672
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:668
+#: config/sparc/sparc.h:674
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:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr "Usar el modelo de código del SPARC dado"
@@ -13009,19 +12500,16 @@ 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:1921 config/stormy16/stormy16.c:1992
-#, fuzzy
msgid "'B' operand is not constant"
-msgstr "el operando `B' no es una constante"
+msgstr "el operando 'B' no es una constante"
#: config/stormy16/stormy16.c:1948
-#, fuzzy
msgid "'B' operand has multiple bits set"
-msgstr "el operando `B' tiene establecidos múltiples bits"
+msgstr "el operando 'B' tiene establecidos múltiples bits"
#: config/stormy16/stormy16.c:1974
-#, fuzzy
msgid "'o' operand is not constant"
-msgstr "el operando `o' no es una constante"
+msgstr "el operando 'o' no es una constante"
#: config/stormy16/stormy16.c:2006
msgid "xstormy16_print_operand: unknown code"
@@ -13033,13 +12521,12 @@ msgid "switch statement of size %lu entries too large"
msgstr "la declaración switch de tamaño de %lu entradas es demasiado grande"
#: config/stormy16/stormy16.c:2434
-#, fuzzy
msgid "%<__BELOW100__%> attribute only applies to variables"
-msgstr "el atributo `%s' solamente se aplica a variables"
+msgstr "el atributo %<__BELOW100__%> solamente se aplica a variables"
#: config/stormy16/stormy16.c:2441
msgid "__BELOW100__ attribute not allowed with auto storage class."
-msgstr ""
+msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento."
#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
@@ -13098,63 +12585,63 @@ msgstr "basura al final del #pragma ghs endsda"
msgid "junk at end of #pragma ghs endzda"
msgstr "basura al final del #pragma ghs endzda"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s no es numérico"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s es demasiado grande"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr "const_double_split recibió un insn erróneo:"
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "%Jno se puede especificar atributos de área para variables locales"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "%Jel área de datos de '%D' en conflicto con una declaración previa"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "construcción JR ambigua: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, 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:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "construcción JARL ambigua: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "construcción DISPOSE ambigua: %d\n"
-#: config/v850/v850.c:3045
+#: 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:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "construcción PREPARE ambigua: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr "Demasiado espacio de pila para preparar: %d"
@@ -13333,656 +12820,561 @@ 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:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr "faltan argumentos para \"-%s\""
-#: ada/misc.c:299
-#, fuzzy
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
-msgstr "`-gnat' mal deletreado como `-gant'"
+msgstr "%<-gnat%> mal deletreado como %<-gant%>"
#: cp/call.c:288
msgid "unable to call pointer to member function here"
msgstr "no se puede llamar un puntero a una función miembro aquí"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <interno>"
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <interno>"
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <interno>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr "%s %T <conversión>"
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr "%J%s %+#D <coincidencia cercana>"
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr "%J%s %+#D"
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr "los candidatos son:"
-#: cp/call.c:2607
-#, fuzzy
+#: cp/call.c:2614
msgid "conversion from %qT to %qT is ambiguous"
-msgstr "la conversión de `%T' a `%T' es ambigua"
+msgstr "la conversión de %qT a %qT es ambigua"
-#: cp/call.c:2761 cp/call.c:2819
-#, fuzzy
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
-msgstr "no hay una función coincidente para la llamada a `%D(%A)'"
+msgstr "no hay una función coincidente para la llamada a %<%D(%A)%>"
-#: cp/call.c:2764 cp/call.c:2822
-#, fuzzy
+#: cp/call.c:2770 cp/call.c:2828
msgid "call of overloaded %<%D(%A)%> is ambiguous"
-msgstr "la llamada del `%D(%A)' sobrecargado es ambigua"
+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:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr "la función puntero-a-miembro %E no se puede llamar dentro de un objeto; considere utilizar .* o ->*"
-#: cp/call.c:2959
-#, fuzzy
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
-msgstr "no hay coincidencia para la llamada a `(%T) (%A)'"
+msgstr "no hay coincidencia para la llamada a %<(%T) (%A)%>"
-#: cp/call.c:2968
-#, fuzzy
+#: cp/call.c:2974
msgid "call of %<(%T) (%A)%> is ambiguous"
-msgstr "la llamada de `(%T) (%A)' es ambigua"
+msgstr "la llamada de %<(%T) (%A)%> es ambigua"
-#: cp/call.c:3005
-#, fuzzy
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
-msgstr "%s para el 'operador?:' terniario en '%E ? %E : %E'"
+msgstr "%s para el %<operator?:%> terniario en %<%E ? %E : %E%>"
-#: cp/call.c:3011
-#, fuzzy
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
-msgstr "%s para 'operador%s' en `%E%s'"
+msgstr "%s para %<operator%s%> en %<%E%s%>"
-#: cp/call.c:3015
-#, fuzzy
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
-msgstr "%s para el 'operador[]' en '%E[%E]'"
+msgstr "%s para el %<operador[]%> en %<%E[%E]%>"
-#: cp/call.c:3020
-#, fuzzy
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
-msgstr "%s para '%s' en '%s %E'"
+msgstr "%s para %qs en %<%s %E%>"
-#: cp/call.c:3025
-#, fuzzy
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
-msgstr "%s para 'operador%s' en '%E %s %E'"
+msgstr "%s para %<operator%s%> en %<%E %s %E%>"
-#: cp/call.c:3028
-#, fuzzy
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
-msgstr "%s para 'operador%s' en `%s%E'"
+msgstr "%s para %<operador%s%> en %<%s%E%>"
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ prohíbe la omisión del término medio de una expresión ?:"
-#: cp/call.c:3195
-#, fuzzy
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
-msgstr "`%E' tiene tipo `void' y no es una expresión throw"
+msgstr "%qE tiene tipo %<void%> y no es una expresión throw"
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr "los operandos de ?: tienen tipos diferentes"
-#: cp/call.c:3398
-#, fuzzy
+#: cp/call.c:3405
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
-msgstr "no coincide el enumeral en la expresión condicional: `%T' vs `%T'"
+msgstr "no coincide el enumeral en la expresión condicional: %qT vs %qT"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "tipos enumeral y no enumeral en la expresión condicional"
-#: cp/call.c:3700
-#, fuzzy
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
-msgstr "no se declaró `%D(int)' para el `%s' postfijo, intentando en su lugar el operador prefijo"
+msgstr "no se declaró %<%D(int)%> para el %qs postfijo, intentando en su lugar el operador prefijo"
-#: cp/call.c:3753
-#, fuzzy
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
-msgstr "usando `%#D' sintetizado para asignación de copia"
+msgstr "usando %q#D sintetizado para asignación de copia"
-#: cp/call.c:3755
-#, fuzzy
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
-msgstr " donde cfront podría usar `%#D'"
+msgstr " donde cfront podría usar %q#D"
-#: cp/call.c:3787
-#, fuzzy
+#: cp/call.c:3793
msgid "comparison between %q#T and %q#T"
-msgstr "comparación entre `%#T' y `%#T'"
+msgstr "comparación entre %q#T y %q#T"
-#: cp/call.c:4044
-#, fuzzy
+#: cp/call.c:4052
msgid "no suitable %<operator %s> for %qT"
-msgstr "no hay un `operator %s' para `%T'"
+msgstr "no hay un %<operator %s%> para %qT"
-#: cp/call.c:4061
-#, fuzzy
+#: cp/call.c:4069
msgid "%q+#D is private"
-msgstr "`%+#D' es privado"
+msgstr "%q+#D es privado"
-#: cp/call.c:4063
-#, fuzzy
+#: cp/call.c:4071
msgid "%q+#D is protected"
-msgstr "`%+#D' está protegido"
+msgstr "%q+#D está protegido"
-#: cp/call.c:4065
-#, fuzzy
+#: cp/call.c:4073
msgid "%q+#D is inaccessible"
-msgstr "`%+#D' es inaccesible"
+msgstr "%q+#D es inaccesible"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr "desde este contexto"
-#: cp/call.c:4154 cp/cvt.c:263
-#, fuzzy
+#: cp/call.c:4163 cp/cvt.c:263
msgid "invalid conversion from %qT to %qT"
-msgstr "conversión inválida de '%T' a '%T'"
+msgstr "conversión inválida de %qT a %qT"
-#: cp/call.c:4156
-#, fuzzy
+#: cp/call.c:4165
msgid " initializing argument %P of %qD"
-msgstr " argumento de inicialización %P de `%D'"
+msgstr " argumento de inicialización %P de %qD"
+
+#: cp/call.c:4177
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "se pasó NULL al argumento %P de %qD que no es puntero"
+
+#: cp/call.c:4180
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "convirtiendo al tipo %qT que no es puntero desde NULL"
-#: cp/call.c:4300
-#, fuzzy
+#: cp/call.c:4188
+msgid "passing %qT for argument %P to %qD"
+msgstr "pasando %qT para el argumento %P de %qD"
+
+#: cp/call.c:4191
+msgid "converting to %qT from %qT"
+msgstr "convirtiendo a %qT desde %qT"
+
+#: cp/call.c:4200
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "pasando el valor negativo %qE para el argumento %P de %qD"
+
+#: cp/call.c:4203
+msgid "converting negative value %qE to %qT"
+msgstr "convirtiendo el valor negativo %qE a %qT"
+
+#: cp/call.c:4345
msgid "cannot bind bitfield %qE to %qT"
-msgstr "no se puede unir el campo de bits `%E' a `%T'"
+msgstr "no se puede unir el campo de bits %qE a %qT"
-#: cp/call.c:4303
-#, fuzzy
+#: cp/call.c:4348 cp/call.c:4364
msgid "cannot bind packed field %qE to %qT"
-msgstr "no se unir el campo empacado `%E' a `%T'"
+msgstr "no se unir el campo empacado %qE a %qT"
-#: cp/call.c:4306
-#, fuzzy
+#: cp/call.c:4351
msgid "cannot bind rvalue %qE to %qT"
-msgstr "no se puede unir el rvalue `%E' a `%T'"
+msgstr "no se puede unir el rvalue %qE a %qT"
-#: cp/call.c:4401
-#, fuzzy
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#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"
+msgstr "no se puede pasar objetos de tipo %q#T que no es POD a través de %<...%>; la llamada abortará en tiempo de ejecución"
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
-#, fuzzy
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
-msgstr "no se puede recibir objetos de tipo `%#T' que no es POD a través de `...'; la llamada abortará en tiempo de ejecución"
+msgstr "no se puede recibir objetos de tipo %q#T que no es POD a través de %<...%>; la llamada abortará en tiempo de ejecución"
-#: cp/call.c:4470
-#, fuzzy
+#: cp/call.c:4529
msgid "the default argument for parameter %d of %qD has not yet been parsed"
-msgstr "el argumento por defecto para el parámetro %d de `%D' no se ha decodificado aún"
+msgstr "el argumento por defecto para el parámetro %d de %qD no se ha decodificado aún"
-#: cp/call.c:4675
-#, fuzzy
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
-msgstr "pasar `%T' como el argumento `this' de `%#D' descarta a los calificadores"
+msgstr "pasar %qT como el argumento %<this%> de %q#D descarta a los calificadores"
-#: cp/call.c:4694
-#, fuzzy
+#: cp/call.c:4753
msgid "%qT is not an accessible base of %qT"
-msgstr "`%T' no es una base inaccesible de `%T'"
+msgstr "%qT no es una base inaccesible de %qT"
-#: cp/call.c:4944
-#, fuzzy
+#: cp/call.c:5003
msgid "could not find class$ field in java interface type %qT"
-msgstr "no se puede encontrar un campo class$ en el tipo de interfaz java `%T'"
+msgstr "no se puede encontrar un campo class$ en el tipo de interfaz java %qT"
-#: cp/call.c:5206
-#, fuzzy
+#: cp/call.c:5263
msgid "call to non-function %qD"
-msgstr "llamada a `%D' que no es función"
+msgstr "llamada a %qD que no es función"
-#: cp/call.c:5231
-#, fuzzy
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
-msgstr "solicitud por el miembro `%D' en `%E' el cual es del tipo no agregado `%T'"
+msgstr "solicitud por el miembro %qD en %qE el cual es del tipo no agregado %qT"
-#: cp/call.c:5310
-#, fuzzy
+#: cp/call.c:5367
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
-msgstr "no se encuentra una función coincidente para la llamada a `%T::%s(%A)%#V'"
+msgstr "no se encuentra una función coincidente para la llamada a %<%T::%s(%A)%#V%>"
-#: cp/call.c:5328
-#, fuzzy
+#: cp/call.c:5385
msgid "call of overloaded %<%s(%A)%> is ambiguous"
-msgstr "la llamada del `%s(%A)' sobrecargado es ambigua"
+msgstr "la llamada del %<%s(%A)%> sobrecargado es ambigua"
-#: cp/call.c:5352
-#, fuzzy
+#: cp/call.c:5409
msgid "cannot call member function %qD without object"
-msgstr "no se puede llamar a la función miembro `%D' sin un objeto"
+msgstr "no se puede llamar a la función miembro %qD sin un objeto"
-#: cp/call.c:5957
-#, fuzzy
+#: cp/call.c:6014
msgid "passing %qT chooses %qT over %qT"
-msgstr "pasar `%T' escoge `%T'n sobre `%T'"
+msgstr "al pasar %qT se escoge %qT sobre %qT"
-#: cp/call.c:5959 cp/name-lookup.c:4110
-#, fuzzy
+#: cp/call.c:6016 cp/name-lookup.c:4104
msgid " in call to %qD"
-msgstr " en la llamada a `%D'"
+msgstr " en la llamada a %qD"
-#: cp/call.c:6016
-#, fuzzy
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
-msgstr "escogiendo `%D' sobre `%D'"
+msgstr "escogiendo %qD sobre %qD"
-#: cp/call.c:6017
-#, fuzzy
+#: cp/call.c:6074
msgid " for conversion from %qT to %qT"
-msgstr " para la conversión de `%T' a `%T'"
+msgstr " para la conversión de %qT a %qT"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr " porque la secuencia de conversión para el argumento es mejor"
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr "ISO C++ dice que estos 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:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr "candidato 1:"
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr "candidato 2:"
-#: cp/call.c:6281
-#, fuzzy
+#: cp/call.c:6338
msgid "could not convert %qE to %qT"
-msgstr "no se puede convertir `%E' a `%T'"
+msgstr "no se puede convertir %qE a %qT"
-#: cp/call.c:6411
-#, fuzzy
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
-msgstr "inicialización inválida de una referencia que no es constante de tipo '%T' desde un temporal de tipo '%T'"
+msgstr "inicialización inválida de una referencia que no es constante de tipo %qT desde un temporal de tipo %qT"
-#: cp/call.c:6415
-#, fuzzy
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
-msgstr "inicialización inválida de la referencia de tipo '%T' desde una expresión de tipo '%T'"
+msgstr "inicialización inválida de la referencia de tipo %qT desde una expresión de tipo %qT"
-#: cp/class.c:273
-#, fuzzy
+#: cp/class.c:272
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
-msgstr "no se puede convertir de la base `%T' al tipo derivado `%T' a través de la base virtual `%T'"
+msgstr "no se puede convertir de la base %qT al tipo derivado %qT a través de la base virtual %qT"
-#: cp/class.c:898
-#, fuzzy
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
-msgstr "la clase Java '%T' no puede tener un destructor implícito que no es trivial"
-
-#: cp/class.c:899
-#, fuzzy
+#: cp/class.c:929
msgid "Java class %qT cannot have a destructor"
-msgstr "la clase Java '%T' no puede tener un destructor"
+msgstr "la clase Java %qT no puede tener un destructor"
+
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "la clase Java %qT no puede tener un destructor implícito que no es trivial"
-#: cp/class.c:998
-#, fuzzy
+#: cp/class.c:1031
msgid "%q#D and %q#D cannot be overloaded"
-msgstr "no se pueden sobrecargar `%#D' y `%#D'"
+msgstr "no se pueden sobrecargar %q#D y %q#D"
-#: cp/class.c:1055
-#, fuzzy
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
-msgstr "especificaciones de acceso en conflicto para el método `%D', ignorado"
+msgstr "especificaciones de acceso en conflicto para el método %qD, ignorado"
-#: cp/class.c:1058
-#, fuzzy, c-format
+#: cp/class.c:1091
+#, c-format
msgid "conflicting access specifications for field %qE, ignored"
-msgstr "especificaciones de acceso en conflicto para el campo `%s', ignorado"
+msgstr "especificaciones de acceso en conflicto para el campo %qE, ignorado"
-#: cp/class.c:1108
-#, fuzzy
+#: cp/class.c:1141
msgid "%qD names constructor"
-msgstr "`%D' nombra al constructor"
+msgstr "%qD nombra al constructor"
-#: cp/class.c:1113
-#, fuzzy
+#: cp/class.c:1146
msgid "%qD invalid in %qT"
-msgstr "`%D' inválido en `%T'"
+msgstr "%qD inválido en %qT"
-#: cp/class.c:1121
-#, fuzzy
+#: cp/class.c:1154
msgid "no members matching %qD in %q#T"
-msgstr "no hay miembros que coincidan con `%D' en `%#T'"
+msgstr "no hay miembros que coincidan con %qD en %q#T"
-#: cp/class.c:1153 cp/class.c:1161
-#, fuzzy
+#: cp/class.c:1186 cp/class.c:1194
msgid "%qD invalid in %q#T"
-msgstr "`%D' inválido en `%#T'"
+msgstr "%qD inválido en %q#T"
-#: cp/class.c:1154
-#, fuzzy
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
-msgstr " debido al método local `%#D' con el mismo nombre"
+msgstr " debido al método local %q#D con el mismo nombre"
-#: cp/class.c:1162
-#, fuzzy
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
-msgstr " debido al miembro local `%#D' con el mismo nombre"
+msgstr " debido al miembro local %q#D con el mismo nombre"
-#: cp/class.c:1207
-#, fuzzy
+#: cp/class.c:1237
msgid "base class %q#T has a non-virtual destructor"
-msgstr "la clase base `%#T' tiene un destructor no virtual"
-
-#: cp/class.c:1226
-#, fuzzy
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr "base `%T' con sólo un constructor que no es por defecto en una clase sin un constructor"
+msgstr "la clase base %q#T tiene un destructor no virtual"
-#: cp/class.c:1534
-#, fuzzy
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
-msgstr "todos las funciones miembros en la clase `%T' son privadas"
+msgstr "todos las funciones miembros en la clase %qT son privadas"
-#: cp/class.c:1545
-#, fuzzy
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
-msgstr "`%#T' solamente define un destructor privado y no tiene friends"
+msgstr "%q#T solamente define un destructor privado y no tiene friends"
-#: cp/class.c:1585
-#, fuzzy
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
-msgstr "`%#T' solamente define constructores privados y no tiene friends"
+msgstr "%q#T solamente define constructores privados y no tiene friends"
# Ojo, no es impostor, sino impositor, el que impone. cfuga
-#: cp/class.c:1923
-#, fuzzy
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
-msgstr "no hay un impositor único final para `%D' en `%T'"
+msgstr "no hay un impositor único final para %qD en %qT"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
-#, fuzzy
+#: cp/class.c:2409
msgid "%qD was hidden"
-msgstr "`%D' estaba escondido"
+msgstr "%qD estaba escondido"
-#: cp/class.c:2380
-#, fuzzy
+#: cp/class.c:2410
msgid " by %qD"
-msgstr " por `%D'"
+msgstr " por %qD"
-#: cp/class.c:2421 cp/decl2.c:1142
-#, fuzzy
+#: cp/class.c:2451 cp/decl2.c:1100
msgid "%q#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"
+msgstr "%q#D inválido; un union anónimo sólo puede tener miembros con datos no estáticos"
-#: cp/class.c:2428 cp/decl2.c:1149
-#, fuzzy
+#: cp/class.c:2458 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
-msgstr "miembro privado `%#D' en union anónima"
+msgstr "miembro privado %q#D en union anónima"
-#: cp/class.c:2431 cp/decl2.c:1151
-#, fuzzy
+#: cp/class.c:2461 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
-msgstr "miembro protegido `%#D' en union anónima"
+msgstr "miembro protegido %q#D en union anónima"
-#: cp/class.c:2545
-#, fuzzy
-msgid "vtable layout for class %qT 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:2603
-#, fuzzy
+#: cp/class.c:2628
msgid "bit-field %q#D with non-integral type"
-msgstr "campo de bits `%#D' con tipo no entero"
+msgstr "campo de bits %q#D con tipo no entero"
-#: cp/class.c:2623
-#, fuzzy
+#: cp/class.c:2645
msgid "bit-field %qD width not an integer constant"
-msgstr "la anchura del campo de bits `%D' no es una constante entera"
+msgstr "la anchura del campo de bits %qD no es una constante entera"
-#: cp/class.c:2629
-#, fuzzy
+#: cp/class.c:2651
msgid "negative width in bit-field %qD"
-msgstr "anchura negativa en el campo de bit `%D'"
+msgstr "anchura negativa en el campo de bit %qD"
-#: cp/class.c:2634
-#, fuzzy
+#: cp/class.c:2656
msgid "zero width for bit-field %qD"
-msgstr "anchura cero para el campo de bits `%D'"
+msgstr "anchura cero para el campo de bits %qD"
-#: cp/class.c:2640
-#, fuzzy
+#: cp/class.c:2662
msgid "width of %qD exceeds its type"
-msgstr "la anchura de `%D' excede su tipo"
+msgstr "la anchura de %qD excede su tipo"
-#: cp/class.c:2649
-#, fuzzy
+#: cp/class.c:2671
msgid "%qD is too small to hold all values of %q#T"
-msgstr "`%D' es demasiado pequeño para guardar todos los valores de `%#T'"
+msgstr "%qD es demasiado pequeño para guardar todos los valores de %q#T"
-#: cp/class.c:2711
-#, fuzzy
+#: cp/class.c:2731
msgid "member %q#D with constructor not allowed in union"
-msgstr "no se permite el miembro `%#D' con constructor en la union"
+msgstr "no se permite el miembro %q#D con constructor en la union"
-#: cp/class.c:2714
-#, fuzzy
+#: cp/class.c:2734
msgid "member %q#D with destructor not allowed in union"
-msgstr "no se permite el miembro `%#D' con destructor en la union"
+msgstr "no se permite el miembro %q#D con destructor en la union"
-#: cp/class.c:2717
-#, fuzzy
+#: cp/class.c:2737
msgid "member %q#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"
+msgstr "no se permite el miembro %q#D con operador de asignación de copia en la union"
-#: cp/class.c:2744
-#, fuzzy
+#: cp/class.c:2760
msgid "multiple fields in union %qT initialized"
-msgstr "múltiples campos inicializados en la unión `%T'"
+msgstr "múltiples campos inicializados en la unión %qT"
-#: cp/class.c:2810
-#, fuzzy
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
-msgstr "se ignoran los atributos empacados en el campo `%#D' no empacado que no es POD"
+msgstr "se ignoran los atributos empacados en el campo %q#D no empacado que no es POD"
-#: cp/class.c:2870
-#, fuzzy
+#: cp/class.c:2881
msgid "%qD may not be static because it is a member of a union"
-msgstr "`%D' no debe ser static porque es el miembro de una unión"
+msgstr "%qD no debe ser static porque es el miembro de una unión"
-#: cp/class.c:2875
-#, fuzzy
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
-msgstr "'%D' no puede tener el tipo de referencia `%T' porque es el miembro de una unión"
+msgstr "%qD no puede tener el tipo de referencia %qT porque es el miembro de una unión"
-#: cp/class.c:2884
-#, fuzzy
+#: cp/class.c:2895
msgid "field %qD in local class cannot be static"
-msgstr "el campo `%D' en la clase local no puede ser static"
+msgstr "el campo %qD en la clase local no puede ser static"
-#: cp/class.c:2890
-#, fuzzy
+#: cp/class.c:2901
msgid "field %qD invalidly declared function type"
-msgstr "el campo `%D' es declarado inválidamente como un tipo de función"
+msgstr "el campo %qD es declarado inválidamente como un tipo de función"
-#: cp/class.c:2896
-#, fuzzy
+#: cp/class.c:2907
msgid "field %qD invalidly declared method type"
-msgstr "el campo `%D' es declarado inválidamente como un tipo de método"
+msgstr "el campo %qD es declarado inválidamente como un tipo de método"
-#: cp/class.c:2929
-#, fuzzy
+#: cp/class.c:2939
msgid "non-static reference %q#D in class without a constructor"
-msgstr "referencia `%#D' que no es static en una clase sin un constructor"
+msgstr "referencia %q#D que no es static en una clase sin un constructor"
-#: cp/class.c:2977
-#, fuzzy
+#: cp/class.c:2986
msgid "non-static const member %q#D in class without a constructor"
-msgstr "miembro const `%#D' que no es static en una clase sin un constructor"
+msgstr "miembro const %q#D que no es static en una clase sin un constructor"
-#: cp/class.c:2992
-#, fuzzy
+#: cp/class.c:3001
msgid "field %q#D with same name as class"
-msgstr "campo `%#D' con el mismo nombre que la clase"
+msgstr "campo %q#D con el mismo nombre que la clase"
-#: cp/class.c:3026
-#, fuzzy
+#: cp/class.c:3034
msgid "%q#T has pointer data members"
-msgstr "`%#T' tiene miembros punteros a datos"
+msgstr "%q#T tiene miembros punteros a datos"
-#: cp/class.c:3030
-#, fuzzy
+#: cp/class.c:3038
msgid " but does not override %<%T(const %T&)%>"
-msgstr " pero no se impone a `%T(const %T&)'"
+msgstr " pero no se impone a %<%T(const %T&)%>"
-#: cp/class.c:3032
-#, fuzzy
+#: cp/class.c:3040
msgid " or %<operator=(const %T&)%>"
-msgstr " o a `operator=(cont %T&)'"
+msgstr " o a %<operator=(cont %T&)%>"
-#: cp/class.c:3035
-#, fuzzy
+#: cp/class.c:3043
msgid " but does not override %<operator=(const %T&)%>"
-msgstr " pero no se impone a `operator=(const %T&)'"
+msgstr " pero no se impone a %<operator=(const %T&)%>"
-#: cp/class.c:3468
-#, fuzzy
+#: cp/class.c:3476
msgid "offset of empty base %qT 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"
+msgstr "el desplazamiento de la base vacía %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC"
-#: cp/class.c:3580
-#, fuzzy
+#: cp/class.c:3588
msgid "class %qT 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"
+msgstr "la clase %qT se considerará casi vacía en una versión futura de GCC"
-#: cp/class.c:3662
-#, fuzzy
+#: cp/class.c:3670
msgid "initializer specified for non-virtual method %qD"
-msgstr "se especificó un inicializador para el método no virtual `%D'"
+msgstr "se especificó un inicializador para el método no virtual %qD"
-#: cp/class.c:4321
-#, fuzzy
+#: cp/class.c:4333
msgid "offset of virtual base %qT 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"
+msgstr "el desplazamiento de la base virtual %qT no cumple con la ABI y puede cambiar en una versión futura de GCC"
-#: cp/class.c:4420
-#, fuzzy
+#: cp/class.c:4432
msgid "direct base %qT inaccessible in %qT due to ambiguity"
-msgstr "base directa `%T' inaccesible en `%T' debido a ambigüedad"
+msgstr "base directa %qT inaccesible en %qT debido a ambigüedad"
-#: cp/class.c:4432
-#, fuzzy
+#: cp/class.c:4444
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
-msgstr "base virtual `%T' inaccesible en `%T' debido a ambigüedad"
+msgstr "base virtual %qT inaccesible en %qT debido a ambigüedad"
-#: cp/class.c:4603
-#, fuzzy
+#: cp/class.c:4621
msgid "size assigned to %qT 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"
+msgstr "el tamaño asignado a %qT 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:4642
-#, fuzzy
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
-msgstr "el desplazamiento de `%D' tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC"
+msgstr "el desplazamiento de %qD tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC"
-#: cp/class.c:4665
-#, fuzzy
+#: cp/class.c:4683
msgid "offset of %qD 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"
+msgstr "el desplazamiento de %qD no cumple con la ABI y puede cambiar en una versión futura de GCC"
-#: cp/class.c:4675
-#, fuzzy
+#: cp/class.c:4693
msgid "%qD 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"
+msgstr "%qD 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:4734
-#, fuzzy
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT 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"
+msgstr "la disposición de clases derivadas de la clase vacía %qT puede cambiar en una versión futura de GCC"
-#: cp/class.c:4875 cp/semantics.c:2100
-#, fuzzy
+#: cp/class.c:4894 cp/parser.c:12849
msgid "redefinition of %q#T"
-msgstr "redefinición de `%#T'"
+msgstr "redefinición de %q#T"
-#: cp/class.c:5019
-#, fuzzy
+#: cp/class.c:5042
msgid "%q#T has virtual functions but non-virtual destructor"
-msgstr "`%#T' tiene funciones virtuales pero destructores no virtuales"
+msgstr "%q#T tiene funciones virtuales pero destructores no virtuales"
-#: cp/class.c:5114
+#: cp/class.c:5139
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:5530
-#, fuzzy
+#: cp/class.c:5555
msgid "language string %<\"%E\"%> not recognized"
-msgstr "cadena de lenguaje `\"%s\"' no se reconocen"
+msgstr "no se reconoce la cadena de lenguaje %<\"%E\"%>"
-#: cp/class.c:5617
-#, fuzzy
+#: cp/class.c:5642
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
-msgstr "no se puede resolver la función sobrecargada `%D' basándose en la conversión al tipo `%T'"
+msgstr "no se puede resolver la función sobrecargada %qD basándose en la conversión al tipo %qT"
-#: cp/class.c:5742
-#, fuzzy
+#: cp/class.c:5767
msgid "no matches converting function %qD to type %q#T"
-msgstr "no hay coincidencias al convertir la función `%D' al tipo `%#T'"
+msgstr "no hay coincidencias al convertir la función %qD al tipo %q#T"
-#: cp/class.c:5765
-#, fuzzy
+#: cp/class.c:5790
msgid "converting overloaded function %qD to type %q#T is ambiguous"
-msgstr "la conversión de la función sobrecargada `%D' al tipo `%#T' es ambigua"
+msgstr "la conversión de la función sobrecargada %qD al tipo %q#T es ambigua"
-#: cp/class.c:5791
-#, fuzzy
+#: cp/class.c:5816
msgid "assuming pointer to member %qD"
-msgstr "asumiendo el puntero a miembro `%D'"
+msgstr "asumiendo el puntero a miembro %qD"
-#: cp/class.c:5794
-#, fuzzy
+#: cp/class.c:5819
msgid "(a pointer to member can only be formed with %<&%E%>)"
-msgstr "(un puntero a miembro solamente se puede formar con `&%E')"
+msgstr "(un puntero a miembro solamente se puede formar con %<&%E%>)"
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "no hay suficiente información de tipo"
-#: cp/class.c:5856
-#, fuzzy
+#: cp/class.c:5881
msgid "argument of type %qT does not match %qT"
-msgstr "el argumento de tipo `%T' no coincide con `%T'"
+msgstr "el argumento de tipo %qT no coincide con %qT"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "operación inválida en tipo no instanciado"
@@ -13991,227 +13383,195 @@ 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
-#, fuzzy
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
msgid "declaration of %q#D"
-msgstr "la declaración de `%#D'"
+msgstr "la declaración de %q#D"
-#: cp/class.c:6273
-#, fuzzy
+#: cp/class.c:6269
msgid "changes meaning of %qD from %q+#D"
-msgstr "cambia el significado de `%D' a partir de `%+#D'"
+msgstr "cambia el significado de %qD a partir de %q+#D"
#: cp/cvt.c:90
-#, fuzzy
msgid "can't convert from incomplete type %qT to %qT"
-msgstr "no se puede convertir desde el tipo de dato incompleto `%T' a `%T'"
+msgstr "no se puede convertir desde el tipo de dato incompleto %qT a %qT"
#: cp/cvt.c:99
-#, fuzzy
msgid "conversion of %qE from %qT to %qT is ambiguous"
-msgstr "la conversión de `%E' desde `%T' a `%T' es ambigua"
+msgstr "la conversión de %qE desde %qT a %qT es ambigua"
#: cp/cvt.c:168 cp/cvt.c:237 cp/cvt.c:284
-#, fuzzy
msgid "cannot convert %qE from type %qT to type %qT"
-msgstr "no se puede convertir `%E' desde el tipo `%T' al tipo `%T'"
+msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT"
#: cp/cvt.c:197 cp/cvt.c:201
-#, fuzzy
msgid "pointer to member cast from %qT to %qT is via virtual base"
-msgstr "puntero 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 %qT a %qT es a través de una base virtual"
-#: cp/cvt.c:499
-#, fuzzy
+#: cp/cvt.c:497
msgid "conversion from %qT to %qT discards qualifiers"
-msgstr "la conversión de `%T' a `%T' descarta los calificadores"
+msgstr "la conversión de %qT a %qT descarta los calificadores"
-#: cp/cvt.c:517 cp/typeck.c:4879
-#, fuzzy
+#: cp/cvt.c:515 cp/typeck.c:4840
msgid "casting %qT to %qT does not dereference pointer"
-msgstr "la conversión de `%T' a `%T' no dereferencía a los punteros"
+msgstr "la conversión de %qT a %qT no dereferencía a los punteros"
-#: cp/cvt.c:544
-#, fuzzy
+#: cp/cvt.c:542
msgid "cannot convert type %qT to type %qT"
-msgstr "no se puede convertir del tipo `%T' al tipo `%T'"
+msgstr "no se puede convertir del tipo %qT al tipo %qT"
-#: cp/cvt.c:671
-#, fuzzy
+#: cp/cvt.c:670
msgid "conversion from %q#T to %q#T"
-msgstr "conversión de `%#T' a `%#T'"
+msgstr "conversión de %q#T a %q#T"
-#: cp/cvt.c:683 cp/cvt.c:703
-#, fuzzy
+#: cp/cvt.c:682 cp/cvt.c:702
msgid "%q#T used where a %qT was expected"
-msgstr "se usó un `%#T' donde se esperaba un `%T'"
+msgstr "se usó %q#T donde se esperaba un %qT"
-#: cp/cvt.c:718
-#, fuzzy
+#: cp/cvt.c:717
msgid "%q#T used where a floating point value was expected"
-msgstr "se usó un `%#T' donde se esperaba un valor de coma flotante"
+msgstr "se usó %q#T donde se esperaba un valor de coma flotante"
-#: cp/cvt.c:765
-#, fuzzy
+#: cp/cvt.c:764
msgid "conversion from %qT to non-scalar type %qT requested"
-msgstr "se solicitó la conversión desde `%T' al tipo no escalar `%T'"
+msgstr "se solicitó la conversión desde %qT al tipo no escalar %qT"
+
+#: cp/cvt.c:798
+msgid "pseudo-destructor is not called"
+msgstr "no se llamó al seudo-destructor"
-#: cp/cvt.c:853
-#, fuzzy
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
-msgstr "el objeto de tipo incompleto `%T' no se accesará en %s"
+msgstr "el objeto de tipo incompleto %qT no se accesará en %s"
-#: cp/cvt.c:856
-#, fuzzy
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
-msgstr "el objeto de tipo `%T' no se accesará en %s"
+msgstr "el objeto de tipo %qT no se accesará en %s"
-#: cp/cvt.c:872
-#, fuzzy
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT will not be accessed in %s"
-msgstr "el objeto `%E' de tipo incompleto `%T' no se accesará en %s"
+msgstr "el objeto %qE de tipo incompleto %qT 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:888
+#: cp/cvt.c:892
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "%s no se puede resolver la dirección de la función sobrecargada"
#. Only warn when there is no &.
-#: cp/cvt.c:894
-#, fuzzy, c-format
+#: cp/cvt.c:898
+#, c-format
msgid "%s is a reference, not call, to function %qE"
-msgstr "%s es una referencia, no una llamada, a la función `%E'"
+msgstr "%s es una referencia, no una llamada, a la función %qE"
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, c-format
msgid "%s has no effect"
msgstr "%s no tiene efecto"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+msgid "value computed is not used"
+msgstr "no se usa el valor calculado"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr "convirtiendo NULL a un tipo que no es puntero"
-#: cp/cvt.c:1086
-#, fuzzy
+#: cp/cvt.c:1121
msgid "ambiguous default type conversion from %qT"
-msgstr "conversión de tipo por defecto ambigua desde `%T'"
+msgstr "conversión de tipo por defecto ambigua desde %qT"
-#: cp/cvt.c:1088
-#, fuzzy
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
-msgstr " las conversiones candidatas incluyen `%D' y `%D'"
+msgstr " las conversiones candidatas incluyen %qD y %qD"
-#: cp/decl.c:368
-#, fuzzy
+#: cp/decl.c:361
msgid "label %qD used but not defined"
-msgstr "se usa la etiqueta `%D' pero no está definida"
+msgstr "se usa la etiqueta %qD pero no está definida"
-#: cp/decl.c:379
-#, fuzzy
+#: cp/decl.c:372
msgid "label %qD defined but not used"
-msgstr "la etiqueta `%D' está definida pero no se usa"
+msgstr "se define la etiqueta %qD pero no se usa"
-#: cp/decl.c:1138
-#, fuzzy
+#: cp/decl.c:1003
msgid "%qD was declared %<extern%> and later %<static%>"
-msgstr "`%s' fue declarado `extern' y después `static'"
+msgstr "%qD se declaró %<extern%> y después %<static%>"
-#: cp/decl.c:1139 cp/decl.c:1604
-#, fuzzy
+#: cp/decl.c:1004 cp/decl.c:1469
msgid "previous declaration of %qD"
-msgstr "declaración previa de `%D'"
+msgstr "declaración previa de %qD"
-#: cp/decl.c:1187
-#, fuzzy
+#: cp/decl.c:1052
msgid "%Jfunction %qD redeclared as inline"
-msgstr "%Jla función '%D' es redeclarada como inline"
+msgstr "%Jla función %qD es redeclarada como inline"
-#: cp/decl.c:1188
-#, fuzzy
+#: cp/decl.c:1053
msgid "%Jprevious declaration of %qD with attribute noinline"
-msgstr "%Jdeclaración previa de '%D' con el atributo noinline"
+msgstr "%Jdeclaración previa de %qD con el atributo noinline"
-#: cp/decl.c:1195
-#, fuzzy
+#: cp/decl.c:1060
msgid "%Jfunction %qD redeclared with attribute noinline"
-msgstr "%Jla función '%D' redeclarada con el atributo noinline"
+msgstr "%Jfunción %qD redeclarada con el atributo noinline"
-#: cp/decl.c:1197
-#, fuzzy
+#: cp/decl.c:1062
msgid "%Jprevious declaration of %qD was inline"
-msgstr "%Jla declaración previa de la función '%D' era inline"
+msgstr "%Jla declaración previa de %qD era inline"
-#: cp/decl.c:1218 cp/decl.c:1289
-#, fuzzy
+#: cp/decl.c:1083 cp/decl.c:1154
msgid "shadowing %s function %q#D"
-msgstr "oscureciendo la función de biblioteca `%#D'"
+msgstr "oscureciendo la función %s %q#D"
-#: cp/decl.c:1227
-#, fuzzy
+#: cp/decl.c:1092
msgid "library function %q#D redeclared as non-function %q#D"
-msgstr "la función de biblioteca `%#D' es redeclarada como `%#D' que no es función"
+msgstr "la función de biblioteca %q#D se redeclara como %q#D que no es función"
-#: cp/decl.c:1232
-#, fuzzy
+#: cp/decl.c:1097
msgid "conflicts with built-in declaration %q#D"
-msgstr "causa conflicto con la declaración interna `%#D'"
+msgstr "causa conflicto con la declaración interna %q#D"
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
-#, fuzzy
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
msgid "new declaration %q#D"
-msgstr "declaración nueva `%#D'"
+msgstr "declaración nueva %q#D"
-#: cp/decl.c:1285
-#, fuzzy
+#: cp/decl.c:1150
msgid "ambiguates built-in declaration %q#D"
-msgstr "hace ambigua la declaración interna `%#D'"
+msgstr "hace ambigua la declaración interna %q#D"
-#: cp/decl.c:1356
-#, fuzzy
+#: cp/decl.c:1221
msgid "%q#D redeclared as different kind of symbol"
-msgstr "`%#D' redeclarado como un tipo diferente de símbolo"
+msgstr "%q#D redeclarado como un tipo diferente de símbolo"
-#: cp/decl.c:1359
-#, fuzzy
+#: cp/decl.c:1224
msgid "previous declaration of %q#D"
-msgstr "declaración previa de `%#D'"
+msgstr "declaración previa de %q#D"
-#: cp/decl.c:1378
-#, fuzzy
+#: cp/decl.c:1243
msgid "declaration of template %q#D"
-msgstr "redeclaración de la plantilla `%#D'"
+msgstr "redeclaración de la plantilla %q#D"
-#: cp/decl.c:1379 cp/name-lookup.c:509
-#, fuzzy
+#: cp/decl.c:1244 cp/name-lookup.c:509
msgid "conflicts with previous declaration %q#D"
-msgstr "causa conflictos con la declaración previa `%#D'"
+msgstr "causa conflictos con la declaración previa %q#D"
-#: cp/decl.c:1394 cp/decl.c:1410
-#, fuzzy
+#: cp/decl.c:1259 cp/decl.c:1275
msgid "ambiguates old declaration %q#D"
-msgstr "hace ambigua la declaración antigua `%#D'"
+msgstr "hace ambigua la declaración antigua %q#D"
-#: cp/decl.c:1402
-#, fuzzy
+#: cp/decl.c:1267
msgid "declaration of C function %q#D conflicts with"
-msgstr "la declaración de la función C `%#D' tiene conflictos con"
+msgstr "la declaración de la función C %q#D tiene conflictos con"
-#: cp/decl.c:1404
-#, fuzzy
+#: cp/decl.c:1269
msgid "previous declaration %q#D here"
-msgstr "declaración previa de `%#D' aquí"
+msgstr "declaración previa de %q#D aquí"
-#: cp/decl.c:1417
-#, fuzzy
+#: cp/decl.c:1282
msgid "conflicting declaration %q#D"
-msgstr "declaraciones de '%#D' en conflicto"
+msgstr "declaraciones de %q#D en conflicto"
-#: cp/decl.c:1418
-#, fuzzy
+#: cp/decl.c:1283
msgid "%qD has a previous declaration as %q#D"
-msgstr "'%D' tiene una declaración previa como `%#D'"
+msgstr "%qD tiene una declaración previa como %q#D"
#. [namespace.alias]
#.
@@ -14220,79 +13580,68 @@ msgstr "'%D' tiene una declaración previa como `%#D'"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
-#, fuzzy
+#: cp/decl.c:1336
msgid "declaration of namespace %qD conflicts with"
-msgstr "la declaración de `namespace %D' tiene conflictos con"
+msgstr "la declaración del espacio de nombres %qD tiene conflictos con"
-#: cp/decl.c:1472
-#, fuzzy
+#: cp/decl.c:1337
msgid "previous declaration of namespace %qD here"
-msgstr "declaración previa de `namespace %D' aquí"
+msgstr "declaración previa del espacio de nombres %qD aquí"
-#: cp/decl.c:1484
-#, fuzzy
+#: cp/decl.c:1349
msgid "%q#D previously defined here"
-msgstr "se definió `%#D' previamente aquí"
+msgstr "se definió %q#D previamente aquí"
-#: cp/decl.c:1485
-#, fuzzy
+#: cp/decl.c:1350
msgid "%q#D previously declared here"
-msgstr "se declaró `%#D' previamente aquí"
+msgstr "se declaró %q#D previamente aquí"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
-#, fuzzy
+#: cp/decl.c:1359
msgid "prototype for %q#D"
-msgstr "el prototipo para '%#D'"
+msgstr "el prototipo para %q#D"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
msgid "%Jfollows non-prototype definition here"
msgstr "%Ja continuación de la definición del no prototipo aquí"
-#: cp/decl.c:1507
-#, fuzzy
+#: cp/decl.c:1372
msgid "previous declaration of %q#D with %qL linkage"
-msgstr "declaración previa de `%#D' con el enlace %L"
+msgstr "declaración previa de %q#D con el enlace %qL"
-#: cp/decl.c:1509
-#, fuzzy
+#: cp/decl.c:1374
msgid "conflicts with new declaration with %qL linkage"
-msgstr "tiene conflictos con la declaración nueva con el enlace %L"
+msgstr "tiene conflictos con la declaración nueva con el enlace %qL"
-#: cp/decl.c:1532 cp/decl.c:1539
-#, fuzzy
+#: cp/decl.c:1397 cp/decl.c:1404
msgid "default argument given for parameter %d of %q#D"
-msgstr "argumento por defecto dado para el parámetro %d de `%#D'"
+msgstr "argumento por defecto dado para el parámetro %d de %q#D"
-#: cp/decl.c:1534 cp/decl.c:1541
-#, fuzzy
+#: cp/decl.c:1399 cp/decl.c:1406
msgid "after previous specification in %q#D"
-msgstr "después de la especificación previa en `%#D'"
+msgstr "después de la especificación previa en %q#D"
-#: cp/decl.c:1550
-#, fuzzy
+#: cp/decl.c:1415
msgid "%q#D was used before it was declared inline"
-msgstr "se usó `%#D' antes de que fuera declarado inline"
+msgstr "se usó %q#D antes de que fuera declarado inline"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
msgid "%Jprevious non-inline declaration here"
msgstr "%Jla declaración previa no inline aquí"
-#: cp/decl.c:1603
-#, fuzzy
+#: cp/decl.c:1468
msgid "redundant redeclaration of %qD in same scope"
-msgstr "declaración redundante de `%D' en el mismo ámbito"
+msgstr "declaración redundante de %qD en el mismo ámbito"
-#: cp/decl.c:1697
-#, fuzzy, c-format
+#: cp/decl.c:1562
+#, c-format
msgid "declaration of %qF throws different exceptions"
-msgstr "la declaración de `%F' arroja excepciones diferentes"
+msgstr "la declaración de %qF arroja excepciones diferentes"
-#: cp/decl.c:1699
-#, fuzzy, c-format
+#: cp/decl.c:1564
+#, c-format
msgid "than previous declaration %qF"
-msgstr "que la declaración previa `%F'"
+msgstr "que la declaración previa %qF"
#. From [temp.expl.spec]:
#.
@@ -14302,935 +13651,825 @@ 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:1852
-#, fuzzy
+#: cp/decl.c:1724
msgid "explicit specialization of %qD after first use"
-msgstr "especialización explícita de %D después del primer uso"
+msgstr "especialización explícita de %qD después del primer uso"
-#: cp/decl.c:1931
-#, fuzzy
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
-msgstr "$J'%D': se ignora el atributo de visibilidad porque"
+msgstr "%J%qD: se ignora el atributo de visibilidad porque"
-#: cp/decl.c:1933
+#: cp/decl.c:1805
msgid "%Jconflicts with previous declaration here"
msgstr "%Jcausa conflictos con la declaración previa aquí"
-#: cp/decl.c:2161
-#, fuzzy, c-format
+#: cp/decl.c:2048
+#, c-format
msgid "label %qE referenced outside of any function"
-msgstr "la etiqueta %s es referenciada fuera de cualquier función"
+msgstr "la etiqueta %qE es referenciada fuera de cualquier función"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
-#, fuzzy
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
msgid "jump to label %qD"
-msgstr "salto a la etiqueta `%D'"
+msgstr "salto a la etiqueta %qD"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "salto a la etiqueta case"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
msgid "%H from here"
msgstr "%H desde aquí"
-#: cp/decl.c:2267
-#, fuzzy
+#: cp/decl.c:2154
msgid " crosses initialization of %q#D"
-msgstr " cruza la inicialización de `%#D'"
+msgstr " cruza la inicialización de %q#D"
-#: cp/decl.c:2270 cp/decl.c:2385
-#, fuzzy
+#: cp/decl.c:2157 cp/decl.c:2272
msgid " enters scope of non-POD %q#D"
-msgstr " entra en el ámbito de `%#D' que no es POD"
+msgstr " entra en el ámbito de %q#D que no es POD"
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
-msgstr " entra intento de bloque"
+msgstr " entra al bloque try"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
-msgstr " entra captura de bloque"
+msgstr " entra al bloque catch"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " desde aquí"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr "%J entra al bloque de captura"
-#: cp/decl.c:2383
-#, fuzzy
+#: cp/decl.c:2270
msgid " skips initialization of %q#D"
-msgstr " salta la inicialización de `%#D'"
+msgstr " salta la inicialización de %q#D"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr "etiqueta nombrada wchar_t"
-#: cp/decl.c:2420
-#, fuzzy
+#: cp/decl.c:2307
msgid "duplicate label %qD"
-msgstr "etiqueta duplicada `%D'"
+msgstr "etiqueta %qD duplicada"
-#: cp/decl.c:2651 cp/parser.c:3437
-#, fuzzy
+#: cp/decl.c:2555 cp/parser.c:3514
msgid "%qD used without template parameters"
-msgstr "se usa `%D' sin parámetros de plantilla"
+msgstr "se usa %qD sin parámetros de plantilla"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
-#, fuzzy
+#: cp/decl.c:2572 cp/decl.c:2663
msgid "no class template named %q#T in %q#T"
-msgstr "no hay una plantilla de clase llamada `%#T' en `%#T'"
+msgstr "no hay una plantilla de clase llamada %q#T en %q#T"
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
-#, fuzzy
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
msgid "no type named %q#T in %q#T"
-msgstr "no hay un tipo llamado `%#T' en `%#T'"
+msgstr "no hay un tipo llamado %q#T en %q#T"
-#: cp/decl.c:2776
-#, fuzzy
+#: cp/decl.c:2672
msgid "template parameters do not match template"
-msgstr "los parámetros de la plantilla no pueden ser friends"
+msgstr "los parámetros de la plantilla no coinciden con la plantilla"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
-#, fuzzy
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
msgid "%qD declared here"
-msgstr " `%#D' declarado aquí"
+msgstr "%qD declarado aquí"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr "%Jun union anónimo no puede tener funciones miembro"
-#: cp/decl.c:3466
-#, fuzzy
+#: cp/decl.c:3362
msgid "member %q#D with constructor not allowed in anonymous aggregate"
-msgstr "no se permite el miembro %#D' con constructor en un agregado anónimo"
+msgstr "no se permite el miembro %q#D con constructor en un agregado anónimo"
-#: cp/decl.c:3470
-#, fuzzy
+#: cp/decl.c:3366
msgid "member %q#D with destructor not allowed in anonymous aggregate"
-msgstr "no se permite el miembro %#D' con destructor en un agregado anónimo"
+msgstr "no se permite el miembro %q#D con destructor en un agregado anónimo"
-#: cp/decl.c:3474
-#, fuzzy
+#: cp/decl.c:3370
msgid "member %q#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"
+msgstr "no se permite el miembro %q#D con operador de asignación de copia en un agregado anónimo"
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "tipos múltiples en una declaración"
-#: cp/decl.c:3504
-#, fuzzy
+#: cp/decl.c:3400
msgid "redeclaration of C++ built-in type %qT"
-msgstr "redeclaración del tipo interno de C++ `%T'"
+msgstr "redeclaración del tipo interno de C++ %qT"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr "falta el nombre del tipo en la declaración typedef"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ prohíbe structs anónimos"
-#: cp/decl.c:3555
-#, fuzzy, c-format
+#: cp/decl.c:3452
+#, c-format
msgid "%qs can only be specified for functions"
-msgstr "`%D' sólo puede ser especificado para funciones"
+msgstr "%qs sólo se puede especificar para funciones"
-#: cp/decl.c:3561
-#, fuzzy
+#: cp/decl.c:3458
msgid "%<friend%> can only be specified inside a class"
-msgstr "`%D' sólo puede ser especificado dentro de una clase"
+msgstr "%<friend%> sólo se puede especificar dentro de una clase"
-#: cp/decl.c:3563
-#, fuzzy
+#: cp/decl.c:3460
msgid "%<explicit%> can only be specified for constructors"
-msgstr "`%D' sólo puede ser especificado para constructores"
+msgstr "%<explicit%> sólo se puede especificar para constructores"
-#: cp/decl.c:3565
-#, fuzzy
+#: cp/decl.c:3462
msgid "a storage class can only be specified for objects and functions"
-msgstr "`%D' sólo puede ser especificado para objetos y funciones"
+msgstr "una clase de almacenamiento sólo se puede especificar para objetos y funciones"
-#: cp/decl.c:3571
-#, fuzzy
+#: cp/decl.c:3468
msgid "qualifiers can only be specified for objects and functions"
-msgstr "`%D' sólo puede ser especificado para objetos y funciones"
+msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
-#: cp/decl.c:3601
-#, fuzzy
+#: cp/decl.c:3498
msgid "attribute ignored in declaration of %q#T"
-msgstr "declaración hacia adelante de `%#T'"
+msgstr "atributo ignorado en la declaración de %q#T"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
-msgstr ""
+msgstr "el atributo para %q#T debe seguir a la palabra clave %qs"
-#: cp/decl.c:3723
-#, fuzzy
+#: cp/decl.c:3622
msgid "function %q#D is initialized like a variable"
-msgstr "la función `%#D' está inicializada como una variable"
+msgstr "la función %q#D está inicializada como una variable"
-#: cp/decl.c:3735
-#, fuzzy
+#: cp/decl.c:3634
msgid "declaration of %q#D has %<extern%> and is initialized"
-msgstr "la declaración de `%#D' tiene `extern' y está inicializada"
+msgstr "la declaración de %q#D tiene %<extern%> y está inicializada"
-#: cp/decl.c:3766
-#, fuzzy
+#: cp/decl.c:3665
msgid "%q#D is not a static member of %q#T"
-msgstr "`%#D' no es un miembro static de `%#T'"
+msgstr "%q#D no es un miembro static de %q#T"
-#: cp/decl.c:3772
-#, fuzzy
+#: cp/decl.c:3671
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
-msgstr "ISO C++ no permite que `%T::%D' se defina como `%T::%D'"
+msgstr "ISO C++ no permite que %<%T::%D%> se defina como %<%T::%D%>"
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
-msgstr ""
+msgstr "no se permite un encabezado de plantilla en la definición de miembro de una clase explícitamente especializada"
-#: cp/decl.c:3789
-#, fuzzy
+#: cp/decl.c:3688
msgid "duplicate initialization of %qD"
-msgstr "inicialización duplicada de %D"
+msgstr "inicialización duplicada de %qD"
-#: cp/decl.c:3822
-#, fuzzy
+#: cp/decl.c:3726
msgid "declaration of %q#D outside of class is not definition"
-msgstr "la declaración de `%#D' fuera de la clase no es una definición"
+msgstr "la declaración de %q#D fuera de la clase no es una definición"
-#: cp/decl.c:3871
-#, fuzzy
+#: cp/decl.c:3775
msgid "variable %q#D has initializer but incomplete type"
-msgstr "la variable `%#D' tiene inicializador pero de tipo de dato incompleto"
+msgstr "la variable %q#D tiene inicializador pero de tipo de dato incompleto"
-#: cp/decl.c:3878 cp/decl.c:4502
-#, fuzzy
+#: cp/decl.c:3782 cp/decl.c:4411
msgid "elements of array %q#D have incomplete type"
-msgstr "algunos elementos de la matriz `%#D' tienen tipo de dato incompleto"
+msgstr "algunos elementos de la matriz %q#D tienen tipo de dato incompleto"
-#: cp/decl.c:3894
-#, fuzzy
+#: cp/decl.c:3798
msgid "aggregate %q#D has incomplete type and cannot be defined"
-msgstr "el agregado `%#D' tiene un tipo incompleto y no se puede definir"
+msgstr "el agregado %q#D tiene un tipo incompleto y no se puede definir"
-#: cp/decl.c:3944
-#, fuzzy
+#: cp/decl.c:3848
msgid "%qD declared as reference but not initialized"
-msgstr "`%D' declarado como referencia pero no está inicializado"
+msgstr "%qD declarado como referencia pero no está inicializado"
-#: cp/decl.c:3950
-#, fuzzy
+#: cp/decl.c:3854
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
-msgstr "ISO C++ prohíbe el uso de una lista de inicializadores para inicializar la referencia `%D'"
+msgstr "ISO C++ prohíbe el uso de una lista de inicializadores para inicializar la referencia %qD"
-#: cp/decl.c:3979
-#, fuzzy
+#: cp/decl.c:3880
msgid "cannot initialize %qT from %qT"
-msgstr "no se pueden inicializar `%T' desde `%T'"
+msgstr "no se pueden inicializar %qT desde %qT"
-#: cp/decl.c:4011
-#, fuzzy
+#: cp/decl.c:3912
msgid "initializer fails to determine size of %qD"
-msgstr "el inicializador no puede determinar el tamaño de `%D'"
+msgstr "el inicializador no puede determinar el tamaño de %qD"
-#: cp/decl.c:4016
-#, fuzzy
+#: cp/decl.c:3917
msgid "array size missing in %qD"
-msgstr "falta el tamaño de la matriz en `%D'"
+msgstr "falta el tamaño de la matriz en %qD"
-#: cp/decl.c:4028
-#, fuzzy
+#: cp/decl.c:3929
msgid "zero-size array %qD"
-msgstr "matriz `%D' de tamaño cero"
+msgstr "matriz %qD 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:4065
-#, fuzzy
+#: cp/decl.c:3966
msgid "storage size of %qD isn't known"
-msgstr "no se conoce el tamaño de almacenamiento de `%D'"
+msgstr "no se conoce el tamaño de almacenamiento de %qD"
-#: cp/decl.c:4087
-#, fuzzy
+#: cp/decl.c:3988
msgid "storage size of %qD isn't constant"
-msgstr "el tamaño de almacenamiento de `%D' no es constante"
+msgstr "el tamaño de almacenamiento de %qD no es constante"
-#: cp/decl.c:4142
-#, fuzzy
+#: cp/decl.c:4043
msgid "sorry: semantics of inline function static data %q#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)"
+msgstr "perdón: la semántica de los datos static de la función inline %q#D es errónea (terminará con múltiples copias)"
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr "%J puede evitar esto eliminando el inicializador"
-#: cp/decl.c:4172
-#, fuzzy
+#: cp/decl.c:4073
msgid "uninitialized const %qD"
-msgstr "const `%D' sin inicializar"
+msgstr "const %qD sin inicializar"
-#: cp/decl.c:4232
-#, fuzzy
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
-msgstr "el nombre `%D' se utiliza en un inicializador designado en estilo GNU para una matriz"
+msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz"
-#: cp/decl.c:4242
-#, fuzzy, c-format
+#: cp/decl.c:4143
+#, c-format
msgid "Designated initializer %qE larger than array size"
-msgstr "El inicializador designado `%E' es más grande que el tamaño de la matriz"
+msgstr "El inicializador designado %qE es más grande que el tamaño de la matriz"
-#: cp/decl.c:4313
-#, fuzzy
+#: cp/decl.c:4215
msgid "brace-enclosed initializer used to initialize %qT"
-msgstr "se utilizó un inicializador encerrado entre llaves para inicializar a `%T'"
+msgstr "se utilizó un inicializador encerrado entre llaves para inicializar a %qT"
-#: cp/decl.c:4376
-#, fuzzy
+#: cp/decl.c:4280
msgid "initializer for %qT must be brace-enclosed"
-msgstr "el inicializador para `%T' debe estar encerrado entre llaves"
+msgstr "el inicializador para %qT debe estar encerrado entre llaves"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ no permite inicializadores designados"
-#: cp/decl.c:4396
-#, fuzzy
+#: cp/decl.c:4300
msgid "%qT has no non-static data member named %qD"
-msgstr "`%T' no tiene un dato miembro que no es static llamado `%D'"
+msgstr "%qT no tiene un dato miembro que no es static llamado %qD"
-#: cp/decl.c:4458
-#, fuzzy
+#: cp/decl.c:4364
msgid "too many initializers for %qT"
-msgstr "demasiados inicializadores para `%T'"
+msgstr "demasiados inicializadores para %qT"
-#: cp/decl.c:4496
-#, fuzzy
+#: cp/decl.c:4405
msgid "variable-sized object %qD may not be initialized"
-msgstr "el objeto de tamaño variable `%D' no puede ser inicializado"
+msgstr "el objeto de tamaño variable %qD no se puede inicializar"
-#: cp/decl.c:4507
-#, fuzzy
+#: cp/decl.c:4416
msgid "%qD has incomplete type"
-msgstr "`%D' tiene un tipo de dato incompleto"
+msgstr "%qD tiene un tipo de dato incompleto"
-#: cp/decl.c:4561
-#, fuzzy
+#: cp/decl.c:4470
msgid "%qD must be initialized by constructor, not by %<{...}%>"
-msgstr "`%D' debe ser inicializado por un constructor, no por `{...}'"
+msgstr "%qD debe ser inicializado por un constructor, no por %<{...}%>"
-#: cp/decl.c:4606
-#, fuzzy
+#: cp/decl.c:4506
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "matriz %qD inicializada con una constante de cadena entre paréntesis %qE"
+
+#: cp/decl.c:4521
msgid "structure %qD with uninitialized const members"
-msgstr "estructura `%D' con miembros const sin inicializar"
+msgstr "estructura %qD con miembros const sin inicializar"
-#: cp/decl.c:4608
-#, fuzzy
+#: cp/decl.c:4523
msgid "structure %qD with uninitialized reference members"
-msgstr "estructura `%D' con miembros de referencia sin inicializar"
+msgstr "estructura %qD con miembros de referencia sin inicializar"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "asignación (no inicialización) en la declaración"
-#: cp/decl.c:4820
-#, fuzzy
+#: cp/decl.c:4740
msgid "cannot initialize %qD to namespace %qD"
-msgstr "no se pueden inicializar `%D' para el espacio de nombres `%D'"
+msgstr "no se puede inicializar %qD para el espacio de nombres %qD"
-#: cp/decl.c:4863
-#, fuzzy
+#: cp/decl.c:4781
msgid "shadowing previous type declaration of %q#D"
-msgstr "oscureciendo la declaración de tipo previa de `%#D'"
+msgstr "oscureciendo la declaración de tipo previa de %q#D"
-#: cp/decl.c:4900
-#, fuzzy
+#: cp/decl.c:4815
msgid "%qD cannot be thread-local because it has non-POD type %qT"
-msgstr "`%D' no puede ser thread-local porque es de tipo `%T' que no es POD"
+msgstr "%qD no puede ser thread-local porque es de tipo %qT que no es POD"
-#: cp/decl.c:4915
-#, fuzzy
+#: cp/decl.c:4830
msgid "%qD is thread-local and so cannot be dynamically initialized"
-msgstr "`%D' es thread-local y por lo tanto no se puede inicializar dinámicamente"
+msgstr "q%D es thread-local y por lo tanto no se puede inicializar dinámicamente"
-#: cp/decl.c:5523
-#, fuzzy
+#: cp/decl.c:5447
msgid "destructor for alien class %qT cannot be a member"
-msgstr "el destructor para la clase extranjera `%T' no puede ser un miembro"
+msgstr "el destructor para la clase extranjera %qT no puede ser un miembro"
-#: cp/decl.c:5525
-#, fuzzy
+#: cp/decl.c:5449
msgid "constructor for alien class %qT cannot be a member"
-msgstr "el constructor para la clase extranjera `%T' no puede ser un miembro"
+msgstr "el constructor para la clase extranjera %qT no puede ser un miembro"
-#: cp/decl.c:5546
-#, fuzzy
+#: cp/decl.c:5470
msgid "%qD declared as a %<virtual%> %s"
-msgstr "`%D' fue declarado como un %s `virtual'"
+msgstr "%qD fue declarado como un %s %<virtual%>"
-#: cp/decl.c:5548
-#, fuzzy
+#: cp/decl.c:5472
msgid "%qD declared as an %<inline%> %s"
-msgstr "`%D' fue declarado como un %s `inline'"
+msgstr "%qD fue declarado como un %s %<inline%>"
-#: cp/decl.c:5550
-#, fuzzy
+#: cp/decl.c:5474
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
-msgstr "especificadores de función `const' y `volatile' en `%D' inválidos en la declaración %s"
+msgstr "especificadores de función %<const%> y %<volatile%> en %qD inválidos en la declaración %s"
-#: cp/decl.c:5554
-#, fuzzy
+#: cp/decl.c:5478
msgid "%qD declared as a friend"
-msgstr "`%D' declarado como un friend"
+msgstr "%qD declarado como un friend"
-#: cp/decl.c:5560
-#, fuzzy
+#: cp/decl.c:5484
msgid "%qD declared with an exception specification"
-msgstr "`%D' declarado con una excepción de especificación"
+msgstr "%qD declarado con una excepción de especificación"
-#: cp/decl.c:5643
-#, fuzzy
+#: cp/decl.c:5570
msgid "cannot declare %<::main%> to be a template"
-msgstr "no se puede declarar `::main' como template"
+msgstr "no se puede declarar %<::main%> como plantilla"
-#: cp/decl.c:5645
-#, fuzzy
+#: cp/decl.c:5572
msgid "cannot declare %<::main%> to be inline"
-msgstr "no se puede declarar `::main' como inline"
+msgstr "no se puede declarar %<::main%> como inline"
-#: cp/decl.c:5647
-#, fuzzy
+#: cp/decl.c:5574
msgid "cannot declare %<::main%> to be static"
-msgstr "no se puede declarar `::main' como static"
+msgstr "no se puede declarar %<::main%> como static"
-#: cp/decl.c:5651
-#, fuzzy
+#: cp/decl.c:5578
msgid "%<::main%> must return %<int%>"
-msgstr "`main' debe devolver `int'"
+msgstr "%<main%> debe devolver %<int%>"
-#: cp/decl.c:5681
-#, fuzzy
+#: cp/decl.c:5608
msgid "non-local function %q#D uses anonymous type"
-msgstr "la función `%#D' que no es local usa un tipo anónimo"
+msgstr "la función %q#D que no es local usa un tipo anónimo"
-#: cp/decl.c:5684 cp/decl.c:6029
-#, fuzzy
+#: cp/decl.c:5611 cp/decl.c:5947
msgid "%q#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"
+msgstr "%q#D no se refiere al tipo sin calificar, así que no se usa para el enlazado"
-#: cp/decl.c:5690
-#, fuzzy
+#: cp/decl.c:5617
msgid "non-local function %q#D uses local type %qT"
-msgstr "la función `%#D' que no es local utiliza el tipo local `%T'"
+msgstr "la función %q#D que no es local utiliza el tipo local %qT"
-#: cp/decl.c:5713
-#, fuzzy
+#: cp/decl.c:5640
msgid "%smember function %qD cannot have cv-qualifier"
-msgstr "%sfunción miembro `%D' no puede tener el calificador de método `%T'"
+msgstr "%sla función miembro %qD no puede tener un calificador-cv"
-#: cp/decl.c:5737
-#, fuzzy
+#: cp/decl.c:5664
msgid "defining explicit specialization %qD in friend declaration"
-msgstr "definiendo la especialización explícita `%D' en la declaración friend"
+msgstr "definiendo la especialización explícita %qD en la declaración friend"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
-#, fuzzy
+#: cp/decl.c:5674
msgid "invalid use of template-id %qD in declaration of primary template"
-msgstr "uso inválido del id de plantilla `%D' en la declaración de la plantilla primaria"
+msgstr "uso inválido del id de plantilla %qD en la declaración de la plantilla primaria"
-#: cp/decl.c:5775
-#, fuzzy
+#: cp/decl.c:5702
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
-msgstr "no se permiten los argumentos por defecto 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 %qD"
-#: cp/decl.c:5783
-#, fuzzy
+#: cp/decl.c:5710
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
-msgstr "no se permiten `inline' en la declaración de la especialización friend de la plantilla `%D'"
+msgstr "no se permite %<inline%> en la declaración de la especialización friend de la plantilla %qD"
-#: cp/decl.c:5850
-#, fuzzy
+#: cp/decl.c:5776
msgid "definition of implicitly-declared %qD"
-msgstr "la definición de `%D' declarado implícitamente"
+msgstr "la definición de %qD declarado implícitamente"
-#: cp/decl.c:5870 cp/decl2.c:715
-#, fuzzy
+#: cp/decl.c:5796 cp/decl2.c:712
msgid "no %q#D member function declared in class %qT"
-msgstr "no hay una función miembro `%#D' declarada en la clase `%T'"
+msgstr "no hay una función miembro %q#D declarada en la clase %qT"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
-#, fuzzy
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
msgid "non-local variable %q#D uses anonymous type"
-msgstr "la función `%#D' que no es local usa un tipo anónimo"
+msgstr "la variable %q#D que no es local usa un tipo anónimo"
-#: cp/decl.c:6035
-#, fuzzy
+#: cp/decl.c:5953
msgid "non-local variable %q#D uses local type %qT"
-msgstr "la variable `%#D' que no es local usa el tipo local `%T'"
+msgstr "la variable %q#D que no es local usa el tipo local %qT"
-#: cp/decl.c:6150
-#, fuzzy
+#: cp/decl.c:6070
msgid "invalid in-class initialization of static data member of non-integral type %qT"
-msgstr "inicializació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 %qT que no es integral"
-#: cp/decl.c:6160
-#, fuzzy
+#: cp/decl.c:6080
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
-msgstr "ISO C++ prohíbe la inicializació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 %qD que no es constante"
-#: cp/decl.c:6164
-#, fuzzy
+#: cp/decl.c:6084
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
-msgstr "ISO C++ prohíbe la inicialización del miembro constante `%D' del tipo `%T' que no es entero"
+msgstr "ISO C++ prohíbe la inicialización del miembro constante %qD del tipo %qT que no es entero"
-#: cp/decl.c:6184
-#, fuzzy
+#: cp/decl.c:6104
msgid "size of array %qD has non-integral type %qT"
-msgstr "el tamaño de la matriz `%D' tiene un tipo `%T' que no es entero"
+msgstr "el tamaño de la matriz %qD tiene un tipo %qT que no es entero"
-#: cp/decl.c:6186
-#, fuzzy
+#: cp/decl.c:6106
msgid "size of array has non-integral type %qT"
-msgstr "el tamaño de la matriz tiene un tipo `%T' que no es entero"
+msgstr "el tamaño de la matriz tiene un tipo %qT que no es entero"
-#: cp/decl.c:6222
-#, fuzzy
+#: cp/decl.c:6142
msgid "size of array %qD is negative"
-msgstr "el tamaño de la matriz `%D' es negativo"
+msgstr "el tamaño de la matriz %qD es negativo"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "el tamaño de la matriz es negativo"
-#: cp/decl.c:6232
-#, fuzzy
+#: cp/decl.c:6152
msgid "ISO C++ forbids zero-size array %qD"
-msgstr "ISO C++ prohíbe la matriz `%D' de tamaño cero"
+msgstr "ISO C++ prohíbe la matriz %qD de tamaño cero"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
-msgstr "ISO C++ prohíbe una matriz de tamaño cero"
+msgstr "ISO C++ prohíbe matrices de tamaño cero"
-#: cp/decl.c:6241
-#, fuzzy
+#: cp/decl.c:6161
msgid "size of array %qD is not an integral constant-expression"
-msgstr "el tamaño de la matriz `%D' no es una expresion constante integral"
+msgstr "el tamaño de la matriz %qD no es una expresion constante entera"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
msgid "size of array is not an integral constant-expression"
-msgstr "el tamaño de la matriz no es una expresion constante integral"
+msgstr "el tamaño de la matriz no es una expresion constante entera"
-#: cp/decl.c:6249
-#, fuzzy
+#: cp/decl.c:6169
msgid "ISO C++ forbids variable-size array %qD"
-msgstr "ISO C++ prohíbe la matriz `%D' de tamaño variable"
+msgstr "ISO C++ prohíbe la matriz %qD de tamaño variable"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
-msgstr "ISO C++ prohíbe la matriz de tamaño variable"
+msgstr "ISO C++ prohíbe las matrices de tamaño variable"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "desbordamiento en la dimensión de la matriz"
-#: cp/decl.c:6356
-#, fuzzy
+#: cp/decl.c:6275
msgid "declaration of %qD as %s"
-msgstr "redeclaración de `%D' como %s"
+msgstr "redeclaración de %qD como %s"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr "creando %s"
-#: cp/decl.c:6370
-#, fuzzy
+#: cp/decl.c:6289
msgid "declaration of %qD 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"
+msgstr "la declaración de %qD como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera"
-#: cp/decl.c:6374
+#: cp/decl.c:6293
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:6409
+#: cp/decl.c:6328
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:6419
+#: cp/decl.c:6338
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:6432
-#, fuzzy
+#: cp/decl.c:6351
msgid "operator %qT declared to return %qT"
-msgstr "el operador `%T' se declaró para devolver `%T'"
+msgstr "el operador %qT se declaró para devolver %qT"
-#: cp/decl.c:6434
-#, fuzzy
+#: cp/decl.c:6353
msgid "return type specified for %<operator %T%>"
-msgstr "se especificó un tipo de devolución para `operator %T'"
+msgstr "se especificó un tipo de devolución para %<operator %T%>"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "variable sin nombre o campo declarado void"
-#: cp/decl.c:6460
-#, fuzzy, c-format
+#: cp/decl.c:6379
+#, c-format
msgid "variable or field %qE declared void"
-msgstr "variable o campo `%E' declarado void"
+msgstr "variable o campo %qE declarado void"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "variable o campo declarado void"
-#: cp/decl.c:6629
-#, fuzzy
+#: cp/decl.c:6537
msgid "type %qT is not derived from type %qT"
-msgstr "el tipo `%T' no es derivado del tipo `%T'"
+msgstr "el tipo %qT no es derivado del tipo %T"
-#: cp/decl.c:6674
-#, fuzzy
-msgid "declarator-id missing; using reserved word %qD"
-msgstr "falta el id del declarador; utilizando la palabra reservada `%D'"
-
-#: cp/decl.c:6730 cp/decl.c:7824
-#, fuzzy
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
msgid "declaration of %qD as non-function"
-msgstr "la declaración de `%D' como una no función"
+msgstr "la declaración de %qD como una no función"
+
+#: cp/decl.c:6563
+msgid "declaration of %qD as non-member"
+msgstr "declaración de %qD como algo que no es miembro"
+
+#: cp/decl.c:6593
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "falta el id del declarador; utilizando la palabra reservada %qD"
-#: cp/decl.c:6763
-#, fuzzy, c-format
+#: cp/decl.c:6682
+#, c-format
msgid "two or more data types in declaration of %qs"
-msgstr "dos o más tipos de datos en la declaración de `%s'"
+msgstr "dos o más tipos de datos en la declaración de %qs"
-#: cp/decl.c:6806
-#, fuzzy
+#: cp/decl.c:6725
msgid "ISO C++ does not support %<long long%>"
-msgstr "ISO C++ no da soporte a `long long'"
+msgstr "ISO C++ no da soporte a %<long long%>"
-#: cp/decl.c:6866 cp/decl.c:6868
-#, fuzzy, c-format
+#: cp/decl.c:6785 cp/decl.c:6787
+#, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
-msgstr "ISO C++ prohíbe la declaración de `%s' sin tipo"
+msgstr "ISO C++ prohíbe la declaración de %qs sin tipo"
-#: cp/decl.c:6893
-#, fuzzy, c-format
+#: cp/decl.c:6812
+#, c-format
msgid "short, signed or unsigned invalid for %qs"
-msgstr "short, signed ó unsigned inválido para `%s'"
+msgstr "short, signed ó unsigned inválido para %qs"
-#: cp/decl.c:6895
-#, fuzzy, c-format
+#: cp/decl.c:6814
+#, c-format
msgid "long, short, signed or unsigned invalid for %qs"
-msgstr "long, short, signed ó unsigned inválidos para `%s'"
+msgstr "long, short, signed ó unsigned inválidos para %qs"
-#: cp/decl.c:6897
-#, fuzzy, c-format
+#: cp/decl.c:6816
+#, c-format
msgid "long and short specified together for %qs"
-msgstr "long y short especificados juntos para `%s'"
+msgstr "long y short especificados juntos para %qs"
-#: cp/decl.c:6899
-#, fuzzy, c-format
+#: cp/decl.c:6818
+#, c-format
msgid "long or short specified with char for %qs"
-msgstr "se especifica long ó short con char para `%s'"
+msgstr "se especifica long ó short con char para %qs"
-#: cp/decl.c:6901
-#, fuzzy, c-format
+#: cp/decl.c:6820
+#, c-format
msgid "long or short specified with floating type for %qs"
-msgstr "se especifica long ó short con tipo floating para `%s'"
+msgstr "se especifica long ó short con tipo floating para %qs"
-#: cp/decl.c:6903
-#, fuzzy, c-format
+#: cp/decl.c:6822
+#, c-format
msgid "signed and unsigned given together for %qs"
-msgstr "se dieron juntos signed y unsigned para `%s'"
+msgstr "se dieron juntos signed y unsigned para %qs"
-#: cp/decl.c:6909
-#, fuzzy, c-format
+#: cp/decl.c:6828
+#, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
-msgstr "uso inválido de long, short, signed ó unsigned para `%s'"
+msgstr "uso inválido de long, short, signed ó unsigned para %qs"
-#: cp/decl.c:6974
-#, fuzzy, c-format
+#: cp/decl.c:6893
+#, c-format
msgid "complex invalid for %qs"
-msgstr "complex inválido para `%s'"
+msgstr "complex inválido para %qs"
-#: cp/decl.c:7003
-#, fuzzy
+#: cp/decl.c:6922
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
-msgstr "no se permiten calificadores en la declaración de `operator %T'"
+msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
-#: cp/decl.c:7024
-#, fuzzy
+#: cp/decl.c:6934 cp/typeck.c:6404
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "se ignoran los calificadores %qV agregados al tipo de función %qT"
+
+#: cp/decl.c:6957
msgid "member %qD cannot be declared both virtual and static"
-msgstr "el miembro `%D' no puede ser declarado como virtual y static al mismo tiempo"
+msgstr "el miembro %qD no se puee declarar como virtual y static al mismo tiempo"
-#: cp/decl.c:7031
-#, fuzzy
+#: cp/decl.c:6964
msgid "%<%T::%D%> is not a valid declarator"
-msgstr "`%T::%D' no es una declaración válida"
+msgstr "%<%T::%D%> no es un declarador válido"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "declaración typedef inválida en la declaración de parámetros"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
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:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "declaración de virtual fuera de class"
-#: cp/decl.c:7063 cp/decl.c:7070
-#, fuzzy, c-format
+#: cp/decl.c:6996 cp/decl.c:7003
+#, c-format
msgid "multiple storage classes in declaration of %qs"
-msgstr "múltiples clases de almacenamiento en la declaración de `%s'"
+msgstr "múltiples clases de almacenamiento en la declaración de %qs"
-#: cp/decl.c:7113
-#, fuzzy, c-format
+#: cp/decl.c:7046
+#, c-format
msgid "storage class specified for %s %qs"
-msgstr "clase de almacenamiento especificada por %s `%s'"
+msgstr "clase de almacenamiento especificada por %s %qs"
-#: cp/decl.c:7150
-#, fuzzy
+#: cp/decl.c:7083
msgid "top-level declaration of %qs specifies %<auto%>"
-msgstr "la declaración del nivel superior de `%s' especifica `auto'"
+msgstr "la declaración del nivel superior de %qs especifica %<auto%>"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
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:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "el destructor no puede ser una función miembro de tipo static"
-#: cp/decl.c:7292
-#, fuzzy
+#: cp/decl.c:7223
msgid "destructors may not be cv-qualified"
-msgstr "los destructores no pueden ser `%s'"
+msgstr "los destructores no pueden ser cv-calificados"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "el constructor no puede ser una función miembro de tipo static"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "los constructores no pueden ser declarados virtual"
-#: cp/decl.c:7320
-#, fuzzy
+#: cp/decl.c:7251
msgid "constructors may not be cv-qualified"
-msgstr "los constructores no pueden ser `%s'"
+msgstr "los constructores tal vez no sean cv-calificados"
-#: cp/decl.c:7340
-#, fuzzy, c-format
+#: cp/decl.c:7271
+#, c-format
msgid "can't initialize friend function %qs"
-msgstr "no se puede inicializar la función friend `%s'"
+msgstr "no se puede inicializar la función friend %qs"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "las funciones virtual no pueden ser friend"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "la declaración friend no está en una definición de clase"
-#: cp/decl.c:7350
-#, fuzzy, c-format
+#: cp/decl.c:7281
+#, c-format
msgid "can't define friend function %qs in a local class definition"
-msgstr "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 %qs en una definición de clase local"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr "los destructores no pueden tener parámetros"
-#: cp/decl.c:7381 cp/decl.c:7388
-#, fuzzy
+#: cp/decl.c:7313 cp/decl.c:7320
msgid "cannot declare reference to %q#T"
-msgstr "no se pueden declarar referencias a `%#T'"
+msgstr "no se pueden declarar referencias a %q#T"
-#: cp/decl.c:7382
-#, fuzzy
+#: cp/decl.c:7314
msgid "cannot declare pointer to %q#T"
-msgstr "no se pueden declarar punteros a `%#T'"
+msgstr "no se pueden declarar punteros a %q#T"
-#: cp/decl.c:7390
-#, fuzzy
+#: cp/decl.c:7322
msgid "cannot declare pointer to %q#T member"
-msgstr "no se pueden declarar un puntero al miembro `%#T'"
+msgstr "no se pueden declarar un puntero al miembro %q#T"
+
+#: cp/decl.c:7361
+msgid "%qD is a namespace"
+msgstr "%qD es un nombre de espacio"
-#: cp/decl.c:7446
-#, fuzzy
+#: cp/decl.c:7400
msgid "template-id %qD used as a declarator"
-msgstr "el id de plantilla `%D' se usa como un declarador"
+msgstr "el id de plantilla %qD se usa como un declarador"
-#: cp/decl.c:7497
-#, fuzzy
+#: cp/decl.c:7447
msgid "extra qualification %<%T::%> on member %qs ignored"
-msgstr "se ignora la calificación extra `%T::' en el miembro `%s'"
+msgstr "se ignora la calificación extra %<%T::%> en el miembro %qs"
-#: cp/decl.c:7516
-#, fuzzy
+#: cp/decl.c:7466
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
-msgstr "no se puede declarar la función miembro `%T::%s' dentro de `%T'"
+msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>"
-#: cp/decl.c:7531
-#, fuzzy
+#: cp/decl.c:7481
msgid "cannot declare member %<%T::%s%> within %qT"
-msgstr "no se puede declarar el miembro `%T::%s' dentro de `%T'"
+msgstr "no se puede declarar el miembro %<%T::%s%> dentro de %qT"
-#: cp/decl.c:7570
-#, fuzzy
+#: cp/decl.c:7520
msgid "data member may not have variably modified type %qT"
-msgstr "los datos miembro pueden no tener el tipo modificado variablemente `%T'"
+msgstr "los datos miembro pueden no tener el tipo modificado variablemente %qT"
-#: cp/decl.c:7572
-#, fuzzy
+#: cp/decl.c:7522
msgid "parameter may not have variably modified type %qT"
-msgstr "el parámetro puede no tener el tipo modificado variablemente `%T'"
+msgstr "el parámetro puede no tener el tipo modificado variablemente %qT"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
-#, fuzzy
+#: cp/decl.c:7530
msgid "only declarations of constructors can be %<explicit%>"
-msgstr "solamente las declaraciones de constructores pueden ser `explicit'"
+msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>"
-#: cp/decl.c:7588
-#, fuzzy
+#: cp/decl.c:7538
msgid "non-member %qs cannot be declared %<mutable%>"
-msgstr "el no-miembro `%s' no puede ser declarado `mutable'"
+msgstr "el no-miembro %qs no puede ser declarado %<mutable%>"
-#: cp/decl.c:7593
-#, fuzzy
+#: cp/decl.c:7543
msgid "non-object member %qs cannot be declared %<mutable%>"
-msgstr "el miembro no-objeto `%s' no puede ser declarado `mutable'"
+msgstr "el miembro no-objeto %qs no puede ser declarado %<mutable%>"
-#: cp/decl.c:7599
-#, fuzzy
+#: cp/decl.c:7549
msgid "function %qs cannot be declared %<mutable%>"
-msgstr "la función `%s' no puede ser declarada `mutable'"
+msgstr "la función %qs no puede ser declarada %<mutable%>"
-#: cp/decl.c:7604
-#, fuzzy
+#: cp/decl.c:7554
msgid "static %qs cannot be declared %<mutable%>"
-msgstr "static `%s' no puede ser declarado `mutable'"
+msgstr "static %qs no puede ser declarado %<mutable%>"
-#: cp/decl.c:7609
-#, fuzzy
+#: cp/decl.c:7559
msgid "const %qs cannot be declared %<mutable%>"
-msgstr "const `%s' no puede ser declarado `mutable'"
-
-#: cp/decl.c:7627
-#, fuzzy
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
-msgstr "ISO C++ prohíbe el tipo anidado `%D' con el mismo nombre que la clase que lo contiene"
+msgstr "const %qs no puede ser declarado %<mutable%>"
-#: cp/decl.c:7636
+#: cp/decl.c:7579
msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr "%Jel nombre del typedef puede no ser un especificador de nombre anidado"
-#: cp/decl.c:7689
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "%Jcalificador de tipo inválido para el tipo de función no miembro"
+#: cp/decl.c:7595
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr "ISO C++ prohíbe el tipo anidado %qD con el mismo nombre que la clase que lo contiene"
-#: cp/decl.c:7752
+#: cp/decl.c:7694
+#, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "los tipos de función calificados no se pueden usar para declarar funciones %s"
+
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr "se especificaron calificadores de tipo en una declaración de clase friend"
-#: cp/decl.c:7757
-#, fuzzy
+#: cp/decl.c:7725
msgid "%<inline%> specified for friend class declaration"
-msgstr "se especificó `inline' para la declaración de clase friend"
+msgstr "se especificó %<inline%> para la declaración de clase friend"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
msgid "template parameters cannot be friends"
msgstr "los parámetros de la plantilla no pueden ser friends"
-#: cp/decl.c:7767
-#, fuzzy
+#: cp/decl.c:7735
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'"
+msgstr "la declaración friend requere una llave de clase, p.e. %<friend class %T::%D%>"
-#: cp/decl.c:7771
-#, fuzzy
+#: cp/decl.c:7739
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
-msgstr "la declaración friend requiere una llave de clase, p.e. `friend %#T'"
+msgstr "la declaración friend requiere una llave de clase, p.e. %<friend %#T%>"
-#: cp/decl.c:7784
-#, fuzzy
+#: cp/decl.c:7752
msgid "trying to make class %qT a friend of global scope"
-msgstr "tratando hacer que la clase `%T' sea un friend de ámbito global"
+msgstr "tratando hacer que la clase %qT sea un friend de ámbito global"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr "calificadores inválidos en el tipo de función no miembro"
-#: cp/decl.c:7814
-#, fuzzy
+#: cp/decl.c:7782
msgid "abstract declarator %qT used as declaration"
-msgstr "el declarador abstracto `%T' se utilizó como una declaración"
+msgstr "el declarador abstracto %qT se usó como una declaración"
-#: cp/decl.c:7839
-#, fuzzy
+#: cp/decl.c:7807
msgid "cannot use %<::%> in parameter declaration"
-msgstr "no se puede usar `::' en la declaración de parámetros"
+msgstr "no se puede usar %<::%> en la declaración de parámetros"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
-#, fuzzy
+#: cp/decl.c:7852
msgid "invalid use of %<::%>"
-msgstr "uso inválido de `::'"
-
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "la función `%D' no puede ser declarada friend"
+msgstr "uso inválido de %<::%>"
-#: cp/decl.c:7908
-#, fuzzy
+#: cp/decl.c:7867
msgid "can't make %qD into a method -- not in a class"
-msgstr "no se puede hacer `%D' en un método -- no está en una clase"
+msgstr "no se puede hacer %qD en un método -- no está en una clase"
-#: cp/decl.c:7917
-#, fuzzy
+#: cp/decl.c:7876
msgid "function %qD declared virtual inside a union"
-msgstr "la función `%s' se declaró virtual dentro de un union"
+msgstr "la función %qD se declaró virtual dentro de un union"
-#: cp/decl.c:7926
-#, fuzzy
+#: cp/decl.c:7885
msgid "%qD cannot be declared virtual, since it is always static"
-msgstr "`%D' no se puede declarar virtual, ya que siempre es static"
+msgstr "%qD no se puede declarar virtual, ya que siempre es static"
-#: cp/decl.c:8006
-#, fuzzy
+#: cp/decl.c:7903
+msgid "declaration of %qD as member of %qT"
+msgstr "la declaración de %qD como miembro de %qT"
+
+#: cp/decl.c:7979
msgid "field %qD has incomplete type"
-msgstr "el campo `%D' tiene tipo de dato incompleto"
+msgstr "el campo %qD tiene tipo de dato incompleto"
-#: cp/decl.c:8008
-#, fuzzy
+#: cp/decl.c:7981
msgid "name %qT has incomplete type"
-msgstr "el nombre `%T' tiene tipo de dato incompleto"
+msgstr "el nombre %qT tiene tipo de dato incompleto"
-#: cp/decl.c:8017
-#, fuzzy
+#: cp/decl.c:7990
msgid " in instantiation of template %qT"
-msgstr " en la instanciación de la plantilla `%T'"
+msgstr " en la instanciación de la plantilla %qT"
-#: cp/decl.c:8027
-#, fuzzy, c-format
+#: cp/decl.c:8000
+#, c-format
msgid "%qE 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"
+msgstr "%qE no es ni función ni función miembro; no puede ser declarado friend"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "las funciones miembros son implícitamente friends de su clase"
@@ -15246,95 +14485,79 @@ 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:8078
-#, fuzzy
+#: cp/decl.c:8051
msgid "ISO C++ forbids initialization of member %qD"
-msgstr "ISO C++ prohíbe la inicialización del miembro `%D'"
+msgstr "ISO C++ prohíbe la inicialización del miembro %qD"
-#: cp/decl.c:8080
-#, fuzzy
+#: cp/decl.c:8053
msgid "making %qD static"
-msgstr "haciendo a `%D' static"
+msgstr "haciendo a %qD static"
-#: cp/decl.c:8138
-#, fuzzy
+#: cp/decl.c:8111
msgid "storage class %<auto%> invalid for function %qs"
-msgstr "la clase de almacenamiento `auto' es inválida para la función `%s'"
+msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs"
-#: cp/decl.c:8140
-#, fuzzy
+#: cp/decl.c:8113
msgid "storage class %<register%> invalid for function %qs"
-msgstr "la clase de almacenamiento `register' es inválida para la función `%s'"
+msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs"
-#: cp/decl.c:8142
-#, fuzzy
+#: cp/decl.c:8115
msgid "storage class %<__thread%> invalid for function %qs"
-msgstr "la clase de almacenamiento `__thread' es inválida para la función `%s'"
+msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs"
-#: cp/decl.c:8153
-#, fuzzy
+#: cp/decl.c:8126
msgid "%<static%> specified invalid for function %qs declared out of global scope"
-msgstr "la clase de almacenamiento `inline' es inválida para la función `%s' declarada fuera del ámbito global"
+msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global"
-#: cp/decl.c:8156
-#, fuzzy
+#: cp/decl.c:8129
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
-msgstr "la clase de almacenamiento `inline' es inválida para la función `%s' declarada fuera del ámbito global"
+msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global"
-#: cp/decl.c:8164
-#, fuzzy, c-format
+#: cp/decl.c:8137
+#, c-format
msgid "virtual non-class function %qs"
-msgstr "la función virtual `%s' no es clase"
+msgstr "la función virtual %qs que no es clase"
-#: cp/decl.c:8195
-#, fuzzy
+#: cp/decl.c:8168
msgid "cannot declare member function %qD to have static linkage"
-msgstr "no se puede declarar que la función miembro `%D' tenga enlazado estático"
+msgstr "no se puede declarar que la función miembro %qD tenga enlazado estático"
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
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:8231
-#, fuzzy
+#: cp/decl.c:8204
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"
+msgstr "%<static%> puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static"
-#: cp/decl.c:8238
-#, fuzzy
+#: cp/decl.c:8211
msgid "static member %qD declared %<register%>"
-msgstr "se declaró el miembro static `%D' como `register'"
+msgstr "se declaró el miembro static %qD como %<register%>"
-#: cp/decl.c:8243
-#, fuzzy
+#: cp/decl.c:8216
msgid "cannot explicitly declare member %q#D to have extern linkage"
-msgstr "no se puede declarar explícitamente que el miembro `%#D' tenga un enlazado externo"
+msgstr "no se puede declarar explícitamente que el miembro %q#D tenga un enlazado externo"
-#: cp/decl.c:8386
-#, fuzzy
+#: cp/decl.c:8359
msgid "default argument for %q#D has type %qT"
-msgstr "el argumento por defecto de `%#D' tiene tipo `%T'"
+msgstr "el argumento por defecto de %q#D tiene tipo %qT"
-#: cp/decl.c:8389
-#, fuzzy
+#: cp/decl.c:8362
msgid "default argument for parameter of type %qT has type %qT"
-msgstr "el argumento por defecto para el parámetro del tipo `%T' tiene el tipo `%T'"
+msgstr "el argumento por defecto para el parámetro del tipo %qT tiene el tipo %qT"
-#: cp/decl.c:8406
-#, fuzzy
+#: cp/decl.c:8379
msgid "default argument %qE uses local variable %qD"
-msgstr "el argumento por defecto `%E' usa la variable local `%D'"
+msgstr "el argumento por defecto %qE usa la variable local %qD"
-#: cp/decl.c:8474
-#, fuzzy
+#: cp/decl.c:8447
msgid "parameter %qD invalidly declared method type"
-msgstr "el parámetro `%D' se declaró inválidamente como tipo de método"
+msgstr "el parámetro %qD se declaró inválidamente como tipo de método"
-#: cp/decl.c:8498
-#, fuzzy
+#: cp/decl.c:8471
msgid "parameter %qD includes %s to array of unknown bound %qT"
-msgstr "el parámetro `%D' incluye %s para la matriz `%T' de límite desconocido"
+msgstr "el parámetro %qD incluye %s para la matriz %qT de límite desconocido"
#. [class.copy]
#.
@@ -15351,135 +14574,111 @@ 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:8657
-#, fuzzy
+#: cp/decl.c:8630
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
-msgstr "constructor inválido; tal vez quiso decir `%T (const %T&)'"
+msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>"
-#: cp/decl.c:8781
-#, fuzzy
+#: cp/decl.c:8754
msgid "%qD may not be declared within a namespace"
-msgstr "`%D' no se declaró en este ámbito"
+msgstr "%qD no se puede declarar dentro de un espacio de nombres"
-#: cp/decl.c:8783
-#, fuzzy
+#: cp/decl.c:8756
msgid "%qD may not be declared as static"
-msgstr "`%D' no puede ser declarado"
+msgstr "%qD no se puede declarar como static"
-#: cp/decl.c:8803
-#, fuzzy
+#: cp/decl.c:8776
msgid "%qD must be a nonstatic member function"
-msgstr "`%D' debe ser una función miembro que no sea static"
+msgstr "%qD debe ser una función miembro que no sea static"
-#: cp/decl.c:8809
-#, fuzzy
+#: cp/decl.c:8782
msgid "%qD 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"
+msgstr "%qD debe ser una función miembro no estático o una función no miembro"
-#: cp/decl.c:8827
-#, fuzzy
+#: cp/decl.c:8800
msgid "%qD must have an argument of class or enumerated type"
-msgstr "`%D' debe tener un argumento de tipo clase o enumerado"
+msgstr "%qD debe tener un argumento de tipo clase o enumerado"
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, 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:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ prohíbe la sobrecarga del operador ?:"
-#: cp/decl.c:8920
-#, fuzzy
+#: cp/decl.c:8893
msgid "postfix %qD must take %<int%> as its argument"
-msgstr "el postfijo `%D' debe tomar `int' como su argumento"
+msgstr "el postfijo %qD debe tomar %<int%> como su argumento"
-#: cp/decl.c:8924
-#, fuzzy
+#: cp/decl.c:8897
msgid "postfix %qD must take %<int%> as its second argument"
-msgstr "el postfijo `%D' debe tomar `int' como su segundo argumento"
+msgstr "el postfijo %qD debe tomar %<int%> como su segundo argumento"
-#: cp/decl.c:8931
-#, fuzzy
+#: cp/decl.c:8904
msgid "%qD must take either zero or one argument"
-msgstr "`%D' debe tomar cero o un argumentos"
+msgstr "%qD debe tomar cero o un argumentos"
-#: cp/decl.c:8933
-#, fuzzy
+#: cp/decl.c:8906
msgid "%qD must take either one or two arguments"
-msgstr "`%D' debe tomar uno o dos argumentos"
+msgstr "%qD debe tomar uno o dos argumentos"
-#: cp/decl.c:8954
-#, fuzzy
+#: cp/decl.c:8927
msgid "prefix %qD should return %qT"
-msgstr "el prefijo `%D' debe regresar `%T'"
+msgstr "el prefijo %qD debe regresar %qT"
-#: cp/decl.c:8960
-#, fuzzy
+#: cp/decl.c:8933
msgid "postfix %qD should return %qT"
-msgstr "el postfijo `%D' debe regresar `%T'"
+msgstr "el postfijo %qD debe regresar %qT"
-#: cp/decl.c:8969
-#, fuzzy
+#: cp/decl.c:8942
msgid "%qD must take %<void%>"
-msgstr "`%D' debe tomar `void'"
+msgstr "%qD debe tomar %<void%>"
-#: cp/decl.c:8971 cp/decl.c:8979
-#, fuzzy
+#: cp/decl.c:8944 cp/decl.c:8952
msgid "%qD must take exactly one argument"
-msgstr "`%D' debe tomar cero o un argumentos exactamente"
+msgstr "%qD debe tomar un argumento exactamente"
-#: cp/decl.c:8981
-#, fuzzy
+#: cp/decl.c:8954
msgid "%qD must take exactly two arguments"
-msgstr "`%s' debe tomar cero o dos argumentos exactamente"
+msgstr "%qD debe tomar dos argumentos exactamente"
-#: cp/decl.c:8989
-#, fuzzy
+#: cp/decl.c:8962
msgid "user-defined %qD always evaluates both arguments"
-msgstr "el `%D' definido por el usuario siempre evalúa ambos argumentos"
+msgstr "el %qD definido por el usuario siempre evalúa ambos argumentos"
-#: cp/decl.c:9003
-#, fuzzy
+#: cp/decl.c:8976
msgid "%qD should return by value"
-msgstr "`%D' debe regresar por valor"
+msgstr "%qD debe devolver por valor"
-#: cp/decl.c:9015 cp/decl.c:9018
-#, fuzzy
+#: cp/decl.c:8988 cp/decl.c:8991
msgid "%qD cannot have default arguments"
-msgstr "`%D' no puede tener argumentos por defecto"
+msgstr "%qD no puede tener argumentos por defecto"
-#: cp/decl.c:9072
-#, fuzzy
+#: cp/decl.c:9049
msgid "using template type parameter %qT after %qs"
-msgstr "usando el parámetro de tipo plantilla `%T' después de `%s'"
+msgstr "usando el parámetro de tipo plantilla %qT después de %qs"
-#: cp/decl.c:9086
-#, fuzzy
+#: cp/decl.c:9064
msgid "using typedef-name %qD after %qs"
-msgstr " usando el nombre de definición de tipo `%D' después de `%s'"
+msgstr "usando el nombre de definición de tipo %qD después de %qs"
-#: cp/decl.c:9087
-#, fuzzy
+#: cp/decl.c:9065
msgid "%qD has a previous declaration here"
-msgstr "'%D' tiene una declaración previa como `%#D'"
+msgstr "%qD tiene una declaración previa aquí"
-#: cp/decl.c:9094
-#, fuzzy
+#: cp/decl.c:9073
msgid "%qT referred to as %qs"
-msgstr "se refiere a `%T' como `%s'"
+msgstr "se refiere a %qT como %qs"
-#: cp/decl.c:9095 cp/decl.c:9102
-#, fuzzy
+#: cp/decl.c:9074 cp/decl.c:9082
msgid "%qT has a previous declaration here"
-msgstr "%Jesta es una declaración previa"
+msgstr "%qT tiene una declaración previa aquí"
-#: cp/decl.c:9101
-#, fuzzy
+#: cp/decl.c:9081
msgid "%qT referred to as enum"
-msgstr "se refiere a `%T' como un enum"
+msgstr "se refiere a %qT como un enum"
#. If a class template appears as elaborated type specifier
#. without a template header such as:
@@ -15488,57 +14687,51 @@ msgstr "se refiere a `%T' como un enum"
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
-#, fuzzy
+#: cp/decl.c:9097
msgid "template argument required for %<%s %T%>"
-msgstr "se requiere un argumento de plantilla para `%s %T'"
+msgstr "se requiere un argumento de plantilla para %<%s %T%>"
+
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "%qD tiene el mismo nombre que la clase en la cual se declaró"
-#: cp/decl.c:9279
-#, fuzzy
+#: cp/decl.c:9271
msgid "use of enum %q#D without previous declaration"
-msgstr "uso del enum `%#D' sin declaración previa"
+msgstr "uso del enum %q#D sin declaración previa"
-#: cp/decl.c:9298
-#, fuzzy
+#: cp/decl.c:9290
msgid "redeclaration of %qT as a non-template"
-msgstr "redeclaración de `%T' como algo que no es plantilla"
+msgstr "redeclaración de %qT como algo que no es plantilla"
-#: cp/decl.c:9391
-#, fuzzy
+#: cp/decl.c:9383
msgid "derived union %qT invalid"
-msgstr "union derivada `%T' inválida"
+msgstr "union derivada %qT inválida"
-#: cp/decl.c:9397
-#, fuzzy
+#: cp/decl.c:9389
msgid "Java class %qT cannot have multiple bases"
-msgstr "la clase Java '%T' no puede tener bases múltiples"
+msgstr "la clase Java %qT no puede tener bases múltiples"
-#: cp/decl.c:9405
-#, fuzzy
+#: cp/decl.c:9397
msgid "Java class %qT cannot have virtual bases"
-msgstr "la clase Java '%T' no puede tener bases virtuales"
+msgstr "la clase Java %qT no puede tener bases virtuales"
-#: cp/decl.c:9424
-#, fuzzy
+#: cp/decl.c:9416
msgid "base type %qT fails to be a struct or class type"
-msgstr "el tipo base `%T' falla en ser un tipo struct o clase"
+msgstr "el tipo base %qT falla en ser un tipo struct o clase"
-#: cp/decl.c:9457
-#, fuzzy
+#: cp/decl.c:9449
msgid "recursive type %qT undefined"
-msgstr "tipo recursivo `%T' sin definir"
+msgstr "tipo recursivo %qT sin definir"
-#: cp/decl.c:9459
-#, fuzzy
+#: cp/decl.c:9451
msgid "duplicate base type %qT invalid"
-msgstr "tipo base duplicado `%T' inválido"
+msgstr "tipo base duplicado %qT inválido"
-#: cp/decl.c:9529
-#, fuzzy
+#: cp/decl.c:9521
msgid "multiple definition of %q#T"
-msgstr "definición múltiple de `%#T'"
+msgstr "definición múltiple de %q#T"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
msgid "%Jprevious definition here"
msgstr "%Jdefinición previa aquí"
@@ -15546,289 +14739,240 @@ msgstr "%Jdefinición previa aquí"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
-#, fuzzy
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
-msgstr "ningún tipo integral puede representar todos los valores de enumerador de `%T'"
+msgstr "ningún tipo integral puede representar todos los valores de enumerador de %qT"
-#: cp/decl.c:9768
-#, fuzzy
+#: cp/decl.c:9765
msgid "enumerator value for %qD not integer constant"
-msgstr "el valor de enumerador para `%D' no es una constante entera"
+msgstr "el valor de enumerador para %qD no es una constante entera"
-#: cp/decl.c:9795
-#, fuzzy
+#: cp/decl.c:9792
msgid "overflow in enumeration values at %qD"
-msgstr "desbordamiento en valores de enumeración en `%D'"
+msgstr "desbordamiento en valores de enumeración en %qD"
-#: cp/decl.c:9866
-#, fuzzy
+#: cp/decl.c:9863
msgid "return type %q#T is incomplete"
-msgstr "el tipo de devolución `%#T' es un tipo de dato incompleto"
+msgstr "el tipo de devolución %q#T es un tipo de dato incompleto"
-#: cp/decl.c:9981 cp/typeck.c:6274
-#, fuzzy
+#: cp/decl.c:9978 cp/typeck.c:6163
msgid "%<operator=%> should return a reference to %<*this%>"
-msgstr "`operator=' debe devolver una referencia a `*this'"
+msgstr "%<operator=%> debe devolver una referencia a %<*this%>"
-#: cp/decl.c:10304
-#, fuzzy
+#: cp/decl.c:10301
msgid "parameter %qD declared void"
-msgstr "el parámetro `%D' se declaró void"
+msgstr "el parámetro %qD se declaró void"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
msgid "invalid member function declaration"
msgstr "declaración de la función miembro inválida"
-#: cp/decl.c:10801
-#, fuzzy
+#: cp/decl.c:10805
msgid "%qD is already defined in class %qT"
-msgstr "`%D' ya se definió en la clase `%T'"
+msgstr "%qD ya se definió en la clase %qT"
-#: cp/decl.c:11012
-#, fuzzy
+#: cp/decl.c:11015
msgid "static member function %q#D declared with type qualifiers"
-msgstr "la función miembro static `%#D' es declarada con calificadores de tipo"
+msgstr "la función miembro static %q#D se declara con calificadores de tipo"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "falta el nombre para la función miembro"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "conversión ambigua para índice de matriz"
-#: cp/decl2.c:381
-#, fuzzy
+#: cp/decl2.c:380
msgid "invalid types %<%T[%T]%> for array subscript"
-msgstr "tipos inválidos `%T[%T]' para índice de matriz"
+msgstr "tipos inválidos %<%T[%T]%> para índice de matriz"
-#: cp/decl2.c:426
-#, fuzzy
+#: cp/decl2.c:423
msgid "deleting array %q#D"
-msgstr "borrando la matriz `%#D'"
+msgstr "borrando la matriz %q#D"
-#: cp/decl2.c:432
-#, fuzzy
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
-msgstr "se dió un argumento de tipo `%#T' a `delete', se esperaba un puntero"
+msgstr "se dió un argumento de tipo %q#T a %<delete%>, se esperaba un puntero"
-#: cp/decl2.c:444
-#, fuzzy
+#: cp/decl2.c:441
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
-msgstr "no se puede borrar una función. Solamente los punteros 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:452
-#, fuzzy
+#: cp/decl2.c:449
msgid "deleting %qT is undefined"
-msgstr "el borrar `%T' está indefinido"
+msgstr "el borrado de %qT está indefinido"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
-#, fuzzy
+#: cp/decl2.c:485
msgid "invalid declaration of member template %q#D in local class"
-msgstr "declaración inválida de la plantilla miembro `%#D' en la clase local"
+msgstr "declaración inválida de la plantilla miembro %q#D en la clase local"
-#: cp/decl2.c:497
-#, fuzzy
+#: cp/decl2.c:494
msgid "invalid use of %<virtual%> in template declaration of %q#D"
-msgstr "uso inválido de `virtual' en la declaración de plantilla de `%#D'"
+msgstr "uso inválido de %<virtual%> en la declaración de plantilla de %q#D"
-#: cp/decl2.c:507 cp/pt.c:2990
-#, fuzzy
+#: cp/decl2.c:504 cp/pt.c:2965
msgid "template declaration of %q#D"
-msgstr "redeclaración en plantilla de `%#D'"
+msgstr "declaración plantilla de %q#D"
-#: cp/decl2.c:556
-#, fuzzy
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
-msgstr "el método Java `%D' tiene un tipo de devolución `%T' que no es de Java"
+msgstr "el método Java %qD tiene un tipo de devolución %qT que no es de Java"
-#: cp/decl2.c:572
-#, fuzzy
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
-msgstr "el método Java `%D' tiene un tipo de parámetro `%T' que no es de Java"
+msgstr "el método Java %qD tiene un tipo de parámetro %qT que no es de Java"
-#: cp/decl2.c:677
-#, fuzzy
+#: cp/decl2.c:674
msgid "prototype for %q#D does not match any in class %qT"
-msgstr "el prototipo para `%#D' no coincide con ningún otro en la clase `%T'"
+msgstr "el prototipo para %q#D no coincide con ningún otro en la clase %qT"
-#: cp/decl2.c:778
-#, fuzzy
+#: cp/decl2.c:775
msgid "local class %q#T shall not have static data member %q#D"
-msgstr "la clase local `%#T' no debe tener el miembro static `%#D'"
+msgstr "la clase local %q#T no debe tener datos miembro static %q#D"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "inicializador inválido para el miembro static con constructor"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(se requiere una inicialización fuera de la clase)"
-#: cp/decl2.c:870
-#, fuzzy
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
-msgstr "el miembro `%D' tiene conflictos con el nombre de campo de la tabla de funciones virtuales"
+msgstr "el miembro %qD tiene conflictos con el nombre de campo de la tabla de funciones virtuales"
+
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr "no está implementada la aplicación de atributos a parámetros de plantilla"
-#: cp/decl2.c:890
-#, fuzzy
+#: cp/decl2.c:896
msgid "%qD is already defined in %qT"
-msgstr "`%D' ya está definido en `%T'"
+msgstr "%qD ya está definido en %qT"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "el inicializador del campo no es constante"
-#: cp/decl2.c:964
-#, fuzzy
+#: cp/decl2.c:972
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"
+msgstr "no se permiten los especificadores %<asm%> en miembros de datos no estáticos"
-#: cp/decl2.c:1010
-#, fuzzy
+#: cp/decl2.c:1018
msgid "cannot declare %qD to be a bit-field type"
-msgstr "no se puede declarar `%D' que sea un tipo de campo de bits"
+msgstr "no se puede declarar %qD que sea un tipo de campo de bits"
-#: cp/decl2.c:1020
-#, fuzzy
+#: cp/decl2.c:1028
msgid "cannot declare bit-field %qD with function type"
-msgstr "no se puede declarar el campo de bits `%D' con un tipo de función"
+msgstr "no se puede declarar el campo de bits %qD con un tipo de función"
-#: cp/decl2.c:1027
-#, fuzzy
+#: cp/decl2.c:1035
msgid "%qD is already defined in the class %qT"
-msgstr "`%D' ya está definido en la clase %T"
+msgstr "%qD ya está definido en la clase %qT"
-#: cp/decl2.c:1034
-#, fuzzy
+#: cp/decl2.c:1042
msgid "static member %qD cannot be a bit-field"
-msgstr "el miembro static `%D' no puede ser un campo de bits"
+msgstr "el miembro static %qD no puede ser un campo de bits"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "se especificó un inicializador para la función no-miembro `%D'"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "inicializador inválido para el método virtual `%D'"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "struct anónimo no se encuentra dentro de un tipo nombrado"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
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:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr "union anónima sin miembros"
-#: cp/decl2.c:1249
-#, fuzzy
+#: cp/decl2.c:1207
msgid "%<operator new%> must return type %qT"
-msgstr "`operator new' debe devolver el tipo `%T'"
+msgstr "%<operator new%> debe devolver el tipo %qT"
-#: cp/decl2.c:1258
-#, fuzzy
+#: cp/decl2.c:1216
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
-msgstr "`operator new' toma el tipo `size_t' (`%T') como primer argumento"
+msgstr "%<operator new%> toma el tipo %<size_t%> (%qT) como primer argumento"
-#: cp/decl2.c:1287
-#, fuzzy
+#: cp/decl2.c:1245
msgid "%<operator delete%> must return type %qT"
-msgstr "`operator delete' debe devolver el tipo `%T'"
+msgstr "%<operator delete%> debe devolver el tipo %qT"
-#: cp/decl2.c:1296
-#, fuzzy
+#: cp/decl2.c:1254
msgid "%<operator delete%> takes type %qT as first parameter"
-msgstr "`operator delete' toma el tipo `%T' como primer argumento"
+msgstr "%<operator delete%> toma el tipo %qT como primer argumento"
-#: cp/decl2.c:3033
-#, fuzzy
+#: cp/decl2.c:2992
msgid "inline function %qD used but never defined"
-msgstr "se usa la función inline `%D' pero nunca se definió"
+msgstr "se usa la función inline %qD pero nunca se definió"
-#: cp/decl2.c:3178
-#, fuzzy
+#: cp/decl2.c:3140
msgid "default argument missing for parameter %P of %q+#D"
-msgstr "falta el argumento por defecto para el parámetro %P de `%+#D'"
+msgstr "falta el argumento por defecto para el parámetro %P de %q+#D"
#. damn ICE suppression
-#: cp/error.c:2365
-#, fuzzy, c-format
+#: cp/error.c:2371
+#, c-format
msgid "unexpected letter %qc in locate_error\n"
-msgstr "letra `%c' inesperada en locate_error\n"
+msgstr "letra %qc inesperada en locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:239
-#, fuzzy
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
-msgstr "el tipo `%T' no está permitido en `throw' o `catch' de Java"
+msgstr "el tipo %qT no está permitido en %<throw%> o %<catch%> de Java"
-#: cp/except.c:250
-#, fuzzy
+#: cp/except.c:273
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
-msgstr "llamada a `catch' ó `throw' de Java con `jthrowable' sin definir"
+msgstr "llamada a %<catch%> ó %<throw%> de Java con %<jthrowable%> sin definir"
#. Thrown object must be a Throwable.
-#: cp/except.c:257
-#, fuzzy
+#: cp/except.c:280
msgid "type %qT is not derived from %<java::lang::Throwable%>"
-msgstr "el tipo `%T' no es derivado de `java::lang::Throwable'"
+msgstr "el tipo %qT no es derivado de %<java::lang::Throwable%>"
-#: cp/except.c:320
+#: cp/except.c:343
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:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero"
-#: cp/except.c:599 cp/init.c:1872
-#, fuzzy
+#: cp/except.c:625 cp/init.c:1893
msgid "%qD should never be overloaded"
-msgstr "`%D' nunca se debe sobrecargar"
+msgstr "%qD nunca se debe sobrecargar"
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " en la expresión thrown"
-#: cp/except.c:810
-#, fuzzy
+#: cp/except.c:836
msgid "expression %qE of abstract class type %qT 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"
+msgstr "no se puede usar la expresión %qE del tipo de clase abstracta %qT en las expresiones throw"
-#: cp/except.c:895
-#, fuzzy
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
-msgstr "la excepción del tipo `%T' será atrapada"
+msgstr "%Hla excepción del tipo %qT será atrapada"
-#: cp/except.c:897
-#, fuzzy
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
-msgstr " por un manejador anterior para `%T'"
+msgstr "%H por un manejador anterior de %qT"
-#: cp/except.c:927
-#, fuzzy
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
-msgstr "el manejador `...' debe ser el último manejador para su bloque try"
+msgstr "%Hel manejador %<...%> debe ser el último manejador para su bloque try"
#: cp/friend.c:152
-#, fuzzy
msgid "%qD is already a friend of class %qT"
-msgstr "`%D' ya es un friend de la clase `%T'"
+msgstr "%qD ya es un friend de la clase %qT"
#: cp/friend.c:228
-#, fuzzy
msgid "invalid type %qT declared %<friend%>"
-msgstr "el tipo inválido `%T' fue declarado `friend'"
+msgstr "el tipo inválido %qT fue declarado %<friend%>"
#. [temp.friend]
#. Friend declarations shall not declare partial
@@ -15838,277 +14982,242 @@ msgstr "el tipo inválido `%T' fue declarado `friend'"
#. Friend declarations shall not declare partial
#. specializations.
#: cp/friend.c:244 cp/friend.c:274
-#, fuzzy
msgid "partial specialization %qT declared %<friend%>"
-msgstr "la especialización parcial `%T' se declaró `friend'"
+msgstr "la especialización parcial %qT se declaró %<friend%>"
#: cp/friend.c:252
-#, fuzzy
msgid "class %qT is implicitly friends with itself"
-msgstr "la clase `%T' es implícitamente friend con sí misma"
+msgstr "la clase %qT es implícitamente friend con sí misma"
#: cp/friend.c:310
-#, fuzzy
msgid "%qT is not a member of %qT"
-msgstr "`%D' no es un miembro de `%T'"
+msgstr "%qT no es un miembro de %qT"
#: cp/friend.c:315
-#, fuzzy
msgid "%qT is not a member class template of %qT"
-msgstr "`%D' no es una función plantilla miembro"
+msgstr "%qT no es una plantilla de clase miembro de %qT"
#: cp/friend.c:323
-#, fuzzy
msgid "%qT is not a nested class of %qT"
-msgstr "`%T' no es una base de `%T'"
+msgstr "%qT no es una base anidada de %qT"
#. template <class T> friend class T;
#: cp/friend.c:336
-#, fuzzy
msgid "template parameter type %qT declared %<friend%>"
-msgstr "el tipo de parámetro de plantilla `%T' se declaró `friend'"
+msgstr "el tipo de parámetro de plantilla %qT se declaró %<friend%>"
#. template <class T> friend class A; where A is not a template
#: cp/friend.c:342
-#, fuzzy
msgid "%q#T is not a template"
-msgstr "`%#T' no es una plantilla"
+msgstr "%q#T no es una plantilla"
#: cp/friend.c:364
-#, fuzzy
msgid "%qD is already a friend of %qT"
-msgstr "`%D' ya es un friend de `%T'"
+msgstr "%qD ya es un friend de %qT"
#: cp/friend.c:373
-#, fuzzy
msgid "%qT is already a friend of %qT"
-msgstr "`%T' ya es un friend de `%T'"
+msgstr "%qT ya es un friend de %qT"
#: cp/friend.c:497
-#, fuzzy
msgid "member %qD declared as friend before type %qT defined"
-msgstr "el miembro `%D' es declarado friend antes que se defina el tipo `%T'"
+msgstr "el miembro %qD es declarado friend antes que se defina el tipo %qT"
#: cp/friend.c:553
-#, fuzzy
msgid "friend declaration %q#D declares a non-template function"
-msgstr "la declaración friend `%#D' declara una función que no es plantilla"
+msgstr "la declaración friend %q#D declara una función que no es plantilla"
#: cp/friend.c:557
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:238 java/jvspec.c:417
-#, fuzzy, c-format
+#, c-format
msgid "argument to '%s' missing\n"
-msgstr "falta el argumento para `%s'\n"
+msgstr "falta el argumento para '%s'\n"
-#: cp/init.c:316
-#, fuzzy
+#: cp/init.c:326
msgid "%J%qD should be initialized in the member initialization list"
-msgstr "`%D' se debe inicializar en la lista de inicialización de miembros"
+msgstr "%J%qD se debe inicializar en la lista de inicialización de miembros"
-#: cp/init.c:363
-#, fuzzy
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
-msgstr "la inicialización por defecto de `%#D', el cual tiene el tipo de referencia"
+msgstr "%Jla inicialización por defecto de %q#D, el cual tiene el tipo de referencia"
-#: cp/init.c:369
-#, fuzzy
+#: cp/init.c:379
msgid "%Juninitialized reference member %qD"
-msgstr "miembro referencia `%D' sin inicializar"
+msgstr "%Jmiembro referencia %qD sin inicializar"
-#: cp/init.c:372
-#, fuzzy
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
-msgstr "miembro `%D' sin inicializar con tipo `%T' `const'"
+msgstr "%Jmiembro %qD sin inicializar con tipo %qT %<const%>"
-#: cp/init.c:515
-#, fuzzy
+#: cp/init.c:525
msgid "%qD will be initialized after"
-msgstr "`%D' se inicializará después de"
+msgstr "%qD se inicializará después de"
-#: cp/init.c:518
-#, fuzzy
+#: cp/init.c:528
msgid "base %qT will be initialized after"
-msgstr "la base `%T' se inicializará después de"
+msgstr "la base %qT se inicializará después de"
-#: cp/init.c:521
-#, fuzzy
+#: cp/init.c:531
msgid " %q#D"
-msgstr " `%#D'"
+msgstr " %q#D"
-#: cp/init.c:523
-#, fuzzy
+#: cp/init.c:533
msgid " base %qT"
-msgstr " base `%T'"
+msgstr " base %qT"
-#: cp/init.c:524
-#, fuzzy
+#: cp/init.c:534
msgid "%J when initialized here"
-msgstr " cuando se inicializó aquí"
+msgstr "%J cuando se inicializó aquí"
-#: cp/init.c:540
-#, fuzzy
+#: cp/init.c:550
msgid "%Jmultiple initializations given for %qD"
-msgstr "se dieron inicializaciones múltiples para `%D'"
+msgstr "%Jse dieron inicializaciones múltiples para %qD"
-#: cp/init.c:543
-#, fuzzy
+#: cp/init.c:553
msgid "%Jmultiple initializations given for base %qT"
-msgstr "se dieron inicializaciones múltiples para la base `%T'"
+msgstr "%Jse dieron inicializaciones múltiples para la base %qT"
-#: cp/init.c:610
-#, fuzzy
+#: cp/init.c:620
msgid "%Jinitializations for multiple members of %qT"
-msgstr "inicializaciones para múltiples miembros de `%T'"
+msgstr "%Jinicializaciones para múltiples miembros de %qT"
-#: cp/init.c:667
-#, fuzzy
+#: cp/init.c:677
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
-msgstr "la clase base `%#T' debe ser inicializada explícitamente en la copia del constructor"
+msgstr "%Jla clase base %q#T debe ser inicializada explícitamente en la copia del constructor"
-#: cp/init.c:891 cp/init.c:910
-#, fuzzy
+#: cp/init.c:901 cp/init.c:920
msgid "class %qT does not have any field named %qD"
-msgstr "la clase `%T' no tiene ningún campo llamado `%D'"
+msgstr "la clase %qT no tiene ningún campo llamado %qD"
-#: cp/init.c:897
-#, fuzzy
+#: cp/init.c:907
msgid "%q#D is a static data member; it can only be initialized at its definition"
-msgstr "`%#D' es un dato miembro static; sólo se puede inicializar en su definición"
+msgstr "%q#D es un dato miembro static; sólo se puede inicializar en su definición"
-#: cp/init.c:904
-#, fuzzy
+#: cp/init.c:914
msgid "%q#D is not a non-static data member of %qT"
-msgstr "`%#D' no es un miembro no static de `%T'"
+msgstr "%q#D no es un dato miembro no static de %qT"
-#: cp/init.c:943
-#, fuzzy
+#: cp/init.c:953
msgid "unnamed initializer for %qT, which has no base classes"
-msgstr "inicializador sin nombre para `%T', el cual no tiene una clase base"
+msgstr "inicializador sin nombre para %qT, el cual no tiene clases base"
-#: cp/init.c:951
-#, fuzzy
+#: cp/init.c:961
msgid "unnamed initializer for %qT, which uses multiple inheritance"
-msgstr "inicializador sin nombre para `%T', el cual usa herencia múltiple"
+msgstr "inicializador sin nombre para %qT, el cual usa herencia múltiple"
-#: cp/init.c:997
-#, fuzzy
+#: cp/init.c:1007
msgid "%qD is both a direct base and an indirect virtual base"
-msgstr "'%D' es tanto una base directa como una base virtual indirecta"
+msgstr "%qD es tanto una base directa como una base virtual indirecta"
-#: cp/init.c:1005
-#, fuzzy
+#: cp/init.c:1015
msgid "type %qD is not a direct or virtual base of %qT"
-msgstr "el tipo `%D' no es una base directa o virtual de `%T'"
+msgstr "el tipo %qD no es una base directa o virtual de %qT"
-#: cp/init.c:1008
-#, fuzzy
+#: cp/init.c:1018
msgid "type %qD is not a direct base of %qT"
-msgstr "el tipo `%D' no es una base directa de `%T'"
+msgstr "el tipo %qD no es una base directa de %qT"
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "inicializador de matriz erróneo"
-#: cp/init.c:1287
-#, fuzzy
+#: cp/init.c:1297
msgid "%qT is not an aggregate type"
-msgstr "`%T' no es un tipo agregado"
+msgstr "%qT no es un tipo agregado"
-#: cp/init.c:1379
-#, fuzzy
+#: cp/init.c:1389
msgid "qualified type %qT does not match destructor name %<~%T%>"
-msgstr "el tipo calificado `%T' no coincide con el nombre del destructor `~%T'"
+msgstr "el tipo calificado %qT no coincide con el nombre del destructor %<~%T%>"
-#: cp/init.c:1387
-#, fuzzy
+#: cp/init.c:1397
msgid "incomplete type %qT does not have member %qD"
-msgstr "el tipo incompleto `%T' no tiene al miembro `%D'"
+msgstr "el tipo incompleto %qT no tiene al miembro %qD"
-#: cp/init.c:1406
-#, fuzzy
+#: cp/init.c:1416
msgid "%qD is not a member of type %qT"
-msgstr "`%D' no es un miembro de tipo `%T'"
+msgstr "%qD no es un miembro de tipo %qT"
-#: cp/init.c:1433
-#, fuzzy
+#: cp/init.c:1443
msgid "invalid pointer to bit-field %qD"
-msgstr "puntero inválido al campo de bit `%D'"
+msgstr "puntero inválido al campo de bit %qD"
-#: cp/init.c:1535
-#, fuzzy
+#: cp/init.c:1545
msgid "invalid use of non-static member function %qD"
-msgstr "uso inválido de la función miembro no static `%D'"
+msgstr "uso inválido de la función miembro no static %qD"
-#: cp/init.c:1541 cp/semantics.c:1293
-#, fuzzy
+#: cp/init.c:1551 cp/semantics.c:1321
msgid "invalid use of non-static data member %qD"
-msgstr "uso inválido del dato miembro no static `%D'"
+msgstr "uso inválido del dato miembro no static %qD"
-#: cp/init.c:1641
+#: cp/init.c:1651
+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:1654
+msgid "zero size array reserves no space"
+msgstr "la matriz de tamaño cero no reserva espacio"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "new no se puede aplicar a un tipo de referencia"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "new no se puede aplicar a un tipo de función"
-#: cp/init.c:1679
-#, fuzzy
+#: cp/init.c:1700
msgid "call to Java constructor, while %<jclass%> undefined"
-msgstr "llamado a constructor Java, mientras `jclass' está indefinido"
+msgstr "llamado a constructor Java, mientras %<jclass%> está indefinido"
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr "no se puede encontrar class$"
-#: cp/init.c:1823
-#, fuzzy
+#: cp/init.c:1844
msgid "invalid type %<void%> for new"
-msgstr "tipo `void' inválido para new"
+msgstr "tipo %<void%> inválido para new"
-#: cp/init.c:1833
-#, fuzzy
+#: cp/init.c:1854
msgid "uninitialized const in %<new%> of %q#T"
-msgstr "const sin inicializar en `new' de `%#T'"
+msgstr "const sin inicializar en %<new%> de %q#T"
-#: cp/init.c:1867
-#, fuzzy, c-format
+#: cp/init.c:1888
+#, c-format
msgid "call to Java constructor with %qs undefined"
-msgstr "llamado a constructor Java con `%s' sin definir"
+msgstr "llamado a constructor Java con %qs sin definir"
-#: cp/init.c:1907
-#, fuzzy
+#: cp/init.c:1928
msgid "request for member %qD is ambiguous"
-msgstr "la petición para el miembro `%D' es ambigua"
+msgstr "la petición para el miembro %qD es ambigua"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ prohíbe la inicialización en la matriz new"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "el inicializador termina prematuramente"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "no se pueden inicializar matrices multidimensionales con el inicializador"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr "se detectó un posible problema en la invocación del operador delete:"
-#: cp/init.c:2725
+#: cp/init.c:2744
msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
msgstr "no se llamará ni al destructor ni al operador delete específico de la clase, aún si se declaran cuando se defina la clase."
-#: cp/init.c:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "tamaño de matriz desconocida en delete"
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr "el tipo de vector delete no es del tipo puntero ni matriz"
@@ -16127,23 +15236,21 @@ msgid "#pragma vtable no longer supported"
msgstr "#pragma vtable ya no tiene soporte"
#: cp/lex.c:530
-#, fuzzy, c-format
+#, c-format
msgid "#pragma implementation for %qs appears after file is included"
-msgstr "implementación de #pragma para %s aparece después de que el fichero es incluído"
+msgstr "implementación de #pragma para %qs aparece después de que se incluye el fichero"
#: cp/lex.c:555
msgid "junk at end of #pragma GCC java_exceptions"
msgstr "basura al final del #pragma GCC java_exceptions"
#: cp/lex.c:569
-#, fuzzy
msgid "%qD not defined"
-msgstr "`%D' no está definido"
+msgstr "%qD no está definido"
#: cp/lex.c:573
-#, fuzzy
msgid "%qD was not declared in this scope"
-msgstr "`%D' no se declaró en este ámbito"
+msgstr "%qD no se declaró en este ámbito"
#. In a template, it is invalid to write "f()" or "f(3)" if no
#. declaration of "f" is available. Historically, G++ and most
@@ -16156,53 +15263,48 @@ msgstr "`%D' no se declaró en este ámbito"
#. the manual (trouble.texi, node "Name lookup"), so they need to
#. be kept in synch.
#: cp/lex.c:610
-#, fuzzy
msgid "there are no arguments to %qD that depend on a template parameter, so a declaration of %qD must be available"
-msgstr "no hay argumentos para `%D' que dependan de un parámetro de plantilla, por lo cual una declaración de `%D' debe estar disponible"
+msgstr "no hay argumentos para %qD que dependan de un parámetro de plantilla, por lo cual una declaración de %qD debe estar disponible"
#: cp/lex.c:619
-#, fuzzy
msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
-msgstr "(si utiliza `-fpermissive', G++ aceptará su código, pero permitir el uso de un nombre sin declarar es obsoleto)"
+msgstr "(si utiliza %<-fpermissive%>, G++ aceptará su código, pero permitir el uso de un nombre sin declarar es obsoleto)"
#: cp/mangle.c:2114
msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
msgstr "call_expr no se puede decodificar debido a un defecto en la ABI de C++"
#: cp/mangle.c:2122
-#, fuzzy
msgid "zero-operand casts cannot be mangled due to a defect in the C++ ABI"
-msgstr "call_expr no se puede decodificar debido a un defecto en la ABI de C++"
+msgstr "las conversiones con cero operandos no se pueden decodificar debido a un defecto en la ABI de C++"
#: cp/mangle.c:2172
-#, fuzzy
msgid "omitted middle operand to %<?:%> operand cannot be mangled"
-msgstr "se omitió el operando de enmedio de `?': no se puede revolver el operando"
+msgstr "se omitió el operando de enmedio de %<?%>: no se puede revolver el operando"
#: cp/mangle.c:2482
-#, fuzzy
msgid "the mangled name of %qD will change in a future version of GCC"
-msgstr "el nombre revuelto de `%D' cambiará en una versión futura de GCC"
+msgstr "el nombre revuelto de %qD cambiará en una versión futura de GCC"
#: cp/method.c:441
-#, fuzzy
msgid "generic thunk code fails for method %q#D which uses %<...%>"
-msgstr "el código de thunk genérico falló para el método `%#D' que utiliza `...'"
+msgstr "el código de thunk genérico falló para el método %q#D que utiliza %<...%>"
-#: cp/method.c:650
-#, fuzzy
+#: cp/method.c:657
msgid "non-static const member %q#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 defecto"
+msgstr "el miembro const %q#D que no es static, no puede usar el operador de asignación por defecto"
-#: cp/method.c:656
-#, fuzzy
+#: cp/method.c:663
msgid "non-static reference member %q#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 defecto"
+msgstr "el miembro de referencia %q#D que no es static, no puede usar el operador de asignación por defecto"
+
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr "la disposición vtable para la clase %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC debido al destructor virtual implícito"
#: cp/name-lookup.c:693
-#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
-msgstr "redeclaración de `wchar_t' como `%T'"
+msgstr "redeclaración de %<wchar_t%> como %qT"
#. A redeclaration of main, but not a duplicate of the
#. previous one.
@@ -16211,85 +15313,69 @@ msgstr "redeclaración de `wchar_t' como `%T'"
#.
#. This function shall not be overloaded.
#: cp/name-lookup.c:725
-#, fuzzy
msgid "invalid redeclaration of %qD"
-msgstr "redeclaración inválida de `%D'"
+msgstr "redeclaración inválida de %qD"
#: cp/name-lookup.c:726
-#, fuzzy
msgid "as %qD"
-msgstr "como `%D'"
+msgstr "como %qD"
#: cp/name-lookup.c:814
-#, fuzzy
msgid "type mismatch with previous external decl of %q#D"
-msgstr "no coinciden los tipos con la declaración externa previa de `%#D'"
+msgstr "no coinciden los tipos con la declaración externa previa de %q#D"
#: cp/name-lookup.c:815
-#, fuzzy
msgid "previous external decl of %q#D"
-msgstr "declaración externa previa de `%#D'"
+msgstr "declaración externa previa de %q#D"
#: cp/name-lookup.c:897
-#, fuzzy
msgid "extern declaration of %q#D doesn't match"
-msgstr "la declaración externa de `%#D' no coincide"
+msgstr "la declaración extern de %q#D no coincide"
#: cp/name-lookup.c:898
-#, fuzzy
msgid "global declaration %q#D"
-msgstr "con la declaración global `%#D'"
+msgstr "con la declaración global %q#D"
#: cp/name-lookup.c:934 cp/name-lookup.c:941
-#, fuzzy
msgid "declaration of %q#D shadows a parameter"
-msgstr "la declaración de '%#D' oscurece un parámetro"
+msgstr "la declaración de %q#D oscurece un parámetro"
#. Location of previous decl is not useful in this case.
#: cp/name-lookup.c:966
-#, fuzzy
msgid "declaration of %qD shadows a member of 'this'"
-msgstr "la declaración de '%D' oscurece a un miembro de 'this'"
+msgstr "la declaración de %qD oscurece a un miembro de 'this'"
#: cp/name-lookup.c:972
-#, fuzzy
msgid "declaration of %qD shadows a previous local"
-msgstr "la declaración de '%D' oscurece a una declaración local previa"
+msgstr "la declaración de %qD oscurece a una declaración local previa"
#: cp/name-lookup.c:979
-#, fuzzy
msgid "declaration of %qD shadows a global declaration"
-msgstr "la declaración de '%D' oscurece a una declaración global"
+msgstr "la declaración de %qD oscurece a una declaración global"
#: cp/name-lookup.c:1095
-#, fuzzy
msgid "name lookup of %qD changed"
-msgstr "la búsqueda de nombre de `%D' cambió"
+msgstr "la búsqueda de nombre de %qD cambió"
#: cp/name-lookup.c:1096
-#, fuzzy
msgid " matches this %qD under ISO standard rules"
-msgstr " coincide con este `%D' bajo las reglas de ISO estándard"
+msgstr " coincide con este %qD bajo las reglas de ISO estándard"
#: cp/name-lookup.c:1098
-#, fuzzy
msgid " matches this %qD under old rules"
-msgstr " coincide con este `%D' bajo las reglas antiguas"
+msgstr " coincide con este %qD bajo las reglas antiguas"
#: cp/name-lookup.c:1116 cp/name-lookup.c:1124
-#, fuzzy
msgid "name lookup of %qD changed for new ISO %<for%> scoping"
-msgstr "la búsqueda de nombre de `%D' cambió por el nuevo alcance ISO de `for'"
+msgstr "la búsqueda de nombre de %qD cambió por el nuevo alcance ISO de %<for%>"
#: cp/name-lookup.c:1118
-#, fuzzy
msgid " cannot use obsolete binding at %qD because it has a destructor"
-msgstr " no se puede usar la asignación obsoleta en `%D' porque tiene un destructor"
+msgstr " no se puede usar la asignación obsoleta en %qD porque tiene un destructor"
#: cp/name-lookup.c:1126
-#, fuzzy
msgid " using obsolete binding at %qD"
-msgstr " usando la asignación obsoleta en `%D'"
+msgstr " usando la asignación obsoleta en %qD"
#: cp/name-lookup.c:1179
#, c-format
@@ -16305,68 +15391,51 @@ msgstr "%s %s %p %d\n"
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr "XXX is_class_level != (current_scope == class_scope)\n"
-#: cp/name-lookup.c:1859
-#, fuzzy
+#: cp/name-lookup.c:1864
msgid "%q#D hides constructor for %q#T"
-msgstr "`%#D' esconde el destructor para `%#T'"
+msgstr "%q#D esconde el destructor para %q#T"
-#: cp/name-lookup.c:1874
-#, fuzzy
+#: cp/name-lookup.c:1879
msgid "%q#D conflicts with previous using declaration %q#D"
-msgstr "`%#D' causa conflicto con la declaración previa en uso `%#D'"
+msgstr "%q#D causa conflicto con la declaración previa en uso %q#D"
-#: cp/name-lookup.c:1886
-#, fuzzy
+#: cp/name-lookup.c:1891
msgid "previous non-function declaration %q#D"
-msgstr "la declaración previa `%#D' que no es función"
+msgstr "la declaración previa %q#D que no es función"
-#: cp/name-lookup.c:1887
-#, fuzzy
+#: cp/name-lookup.c:1892
msgid "conflicts with function declaration %q#D"
-msgstr "causa conflicto con la declaración de la función `%#D'"
+msgstr "causa conflicto con la declaración de la función %q#D"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
-#, fuzzy
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
msgid "%qT is not a namespace"
-msgstr "`%T' no es un nombre de espacio"
+msgstr "%qT no es un espacio de nombres"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
-#, fuzzy
+#: cp/name-lookup.c:1980
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'"
+msgstr "una declaración de uso no puede especificar un id de plantilla. Intente %<using %D%>"
-#: cp/name-lookup.c:1982
-#, fuzzy
+#: cp/name-lookup.c:1987
msgid "namespace %qD not allowed in using-declaration"
-msgstr "no se permite el espacio de nombres `%D' en la declaración de uso"
+msgstr "no se permite el espacio de nombres %qD en la declaración de uso"
-#: cp/name-lookup.c:2018
-#, fuzzy
+#: cp/name-lookup.c:2023
msgid "%qD not declared"
-msgstr "no se declaró `%D'"
+msgstr "no se declaró %qD"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
-#, fuzzy
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
msgid "%qD is already declared in this scope"
-msgstr "`%D' ya se declaró en este ámbito"
+msgstr "%qD ya se declaró en este ámbito"
-#: cp/name-lookup.c:2115
-#, fuzzy
+#: cp/name-lookup.c:2120
msgid "using declaration %qD introduced ambiguous type %qT"
-msgstr "el uso de la declaración `%D' introdujo el tipo ambiguo `%T'"
-
-#: cp/name-lookup.c:2594
-#, fuzzy
-msgid "%qD has the same name as the class in which it is declared"
-msgstr "`%D' tiene el mismo nombre que la clase en la cual se declaró"
+msgstr "el uso de la declaración %qD introdujo el tipo ambiguo %qT"
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr "declaración de uso para un no miembro en el ámbito de la clase"
@@ -16374,442 +15443,405 @@ msgstr "declaración de uso para un no miembro en el ámbito de la clase"
msgid "using-declaration cannot name destructor"
msgstr "uan declaración de uso no puede nombrar al destructor"
-#: cp/name-lookup.c:2775
-#, fuzzy
+#: cp/name-lookup.c:2769
msgid "declaration of %qD not in a namespace surrounding %qD"
-msgstr "la declaración de `%D' no está en un espacio de nombres alrededor de `%D'"
+msgstr "la declaración de %qD no está en un espacio de nombres alrededor de %qD"
-#: cp/name-lookup.c:2783
-#, fuzzy
+#: cp/name-lookup.c:2777
msgid "explicit qualification in declaration of `%D'"
-msgstr "instanciación explícita de `%#D'"
+msgstr "calificación explícita en la declaración de `%D'"
-#: cp/name-lookup.c:2819
-#, fuzzy
+#: cp/name-lookup.c:2813
msgid "%qD should have been declared inside %qD"
-msgstr "`%D' debería ser declarado dentro de `%D'"
+msgstr "%qD debería declararse dentro de %qD"
-#: cp/name-lookup.c:2881
-#, fuzzy
+#: cp/name-lookup.c:2875
msgid "namespace alias %qD not allowed here, assuming %qD"
-msgstr "no se permite aquí el alias del espacio de nombres `%D', asumiendo que es `%D'"
+msgstr "no se permite aquí el alias del espacio de nombres %qD, asumiendo que es %qD"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
-#, fuzzy
+#: cp/name-lookup.c:2990
msgid "unknown namespace %qD"
-msgstr "espacio de nombres `%D' desconocido"
+msgstr "espacio de nombres %qD desconocido"
-#: cp/name-lookup.c:3157
-#, fuzzy
+#: cp/name-lookup.c:3151
msgid "namespace %qT undeclared"
-msgstr "espacio de nombres `%T' sin declarar"
+msgstr "espacio de nombres %qT sin declarar"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr "el uso de strong solamente tiene significado en el ámbito de espacio de nombres"
-#: cp/name-lookup.c:3208
-#, fuzzy
+#: cp/name-lookup.c:3202
msgid "%qD attribute directive ignored"
-msgstr "se ignora la directiva de atributo `%D'"
+msgstr "se ignora la directiva de atributo %qD"
-#: cp/name-lookup.c:3342
-#, fuzzy
+#: cp/name-lookup.c:3336
msgid "use of %qD is ambiguous"
-msgstr "el uso de `%D' es ambiguo"
+msgstr "el uso de %qD es ambiguo"
-#: cp/name-lookup.c:3343
-#, fuzzy
+#: cp/name-lookup.c:3337
msgid " first declared as %q#D here"
-msgstr " declarado inicialmente como `%#D' aquí"
+msgstr " declarado inicialmente como %q#D aquí"
-#: cp/name-lookup.c:3345
-#, fuzzy
+#: cp/name-lookup.c:3339
msgid " also declared as %q#D here"
-msgstr " también declarado como `%#D' aquí"
+msgstr " también declarado como %q#D aquí"
-#: cp/name-lookup.c:3360
-#, fuzzy
+#: cp/name-lookup.c:3354
msgid "%qD denotes an ambiguous type"
-msgstr "`%D' denota un tipo ambiguo"
+msgstr "%qD denota un tipo ambiguo"
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
msgid "%J first type here"
msgstr "%J primer tipo aquí"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr "%J otro tipo aquí"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
-#, fuzzy
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
msgid "invalid use of %qD"
-msgstr "uso inválido de %D"
+msgstr "uso inválido de %qD"
-#: cp/name-lookup.c:3466
-#, fuzzy
+#: cp/name-lookup.c:3460
msgid "%<%D::%D%> is not a template"
-msgstr "`%D::%D' no es una plantilla"
+msgstr "%<%D::%D%> no es una plantilla"
-#: cp/name-lookup.c:3482
-#, fuzzy
+#: cp/name-lookup.c:3476
msgid "%qD undeclared in namespace %qD"
-msgstr "`%D' no declarado en el espacio de nombres `%D'"
+msgstr "%qD no declarado en el espacio de nombres %qD"
-#: cp/name-lookup.c:4108
-#, fuzzy
+#: cp/name-lookup.c:4102
msgid "%qD is not a function,"
-msgstr "`%D' no es una función,"
+msgstr "%qD no es una función,"
-#: cp/name-lookup.c:4109
-#, fuzzy
+#: cp/name-lookup.c:4103
msgid " conflict with %qD"
-msgstr " tiene conflicto con `%D'"
+msgstr " tiene conflicto con %qD"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr "XXX entrando a pop_everything ()\n"
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr "XXX saliendo de pop_everything ()\n"
-#: cp/parser.c:1812
-#, fuzzy
+#: cp/parser.c:1807
+msgid "%<#pragma%> is not allowed here"
+msgstr "%<#pragma%> no se permite aquí"
+
+#: cp/parser.c:1836
msgid "%<%D::%D%> has not been declared"
-msgstr "`%D::%D' no puede ser declarado"
+msgstr "%<%D::%D%> no se puede declarar"
-#: cp/parser.c:1815 cp/semantics.c:2318
-#, fuzzy
+#: cp/parser.c:1839 cp/semantics.c:2375
msgid "%<::%D%> has not been declared"
-msgstr "`%D::%D' no puede ser declarado"
+msgstr "%<::%D%> no se puede declarar"
-#: cp/parser.c:1818
-#, fuzzy
+#: cp/parser.c:1842
msgid "request for member %qD in non-class type %qT"
-msgstr "solicitud por el miembro `%D' en `%E', el cual es del tipo `%T' que no es clase"
+msgstr "solicitud por el miembro %qD en el tipo %qT que no es clase"
-#: cp/parser.c:1821
-#, fuzzy
+#: cp/parser.c:1845
msgid "%<%T::%D%> has not been declared"
-msgstr "`%D::%D' no puede ser declarado"
+msgstr "%<%T::%D%> no se puede declarar"
-#: cp/parser.c:1824
-#, fuzzy
+#: cp/parser.c:1848
msgid "%qD has not been declared"
-msgstr "`%D' no puede ser declarado"
+msgstr "%qD no se puede declarar"
-#: cp/parser.c:1827
-#, fuzzy
+#: cp/parser.c:1851
msgid "%<%D::%D%> %s"
-msgstr "`%D::%D' %s"
+msgstr "%<%D::%D%> %s"
-#: cp/parser.c:1829
-#, fuzzy
+#: cp/parser.c:1853
msgid "%<::%D%> %s"
-msgstr "`%D::%D' %s"
+msgstr "%<%D::%D%> %s"
-#: cp/parser.c:1831
-#, fuzzy
+#: cp/parser.c:1855
msgid "%qD %s"
-msgstr "`%D' %s"
+msgstr "%qD %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr "no se pueden definir tipos nuevos en una devolución de tipo"
-#: cp/parser.c:1901 cp/pt.c:4364
-#, fuzzy
+#: cp/parser.c:1908
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "(tal vez falta punto y coma después de la definición de %qT)"
+
+#: cp/parser.c:1927 cp/pt.c:4328
msgid "%qT is not a template"
-msgstr "`%T' no es una plantilla"
+msgstr "%qT no es una plantilla"
-#: cp/parser.c:1903
-#, fuzzy, c-format
+#: cp/parser.c:1929
+#, c-format
msgid "%qE is not a template"
-msgstr "`%T' no es una plantilla"
+msgstr "%qE no es una plantilla"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
msgid "invalid template-id"
msgstr "id de plantilla inválido"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "%s no puede aparecer en una expresión constante"
-#: cp/parser.c:1957
-#, fuzzy, c-format
+#: cp/parser.c:1985
+#, c-format
msgid "invalid use of template-name %qE without an argument list"
-msgstr "uso inválido del nombre de plantilla `%E' en un declarador"
+msgstr "uso inválido del nombre de plantilla %qE sin una lista de argumentos"
#. Issue an error message.
-#: cp/parser.c:1962
-#, fuzzy, c-format
+#: cp/parser.c:1990
+#, c-format
msgid "%qE does not name a type"
-msgstr "`%s' no nombra a un tipo"
+msgstr "%qE no nombra a un tipo"
-#: cp/parser.c:1993
-#, fuzzy
+#: cp/parser.c:2021
msgid "(perhaps %<typename %T::%E%> was intended)"
-msgstr "(tal vez se intentaba `typename %T::%s')"
+msgstr "(tal vez se intentaba %<typename %T::%E%>)"
-#: cp/parser.c:2008
-#, fuzzy, c-format
+#: cp/parser.c:2036
+#, c-format
msgid "%qE in namespace %qE does not name a type"
-msgstr "`%s' no nombra a un tipo"
+msgstr "%qE en el espacio de nombres %qE no nombra a un tipo"
-#: cp/parser.c:2011
-#, fuzzy
+#: cp/parser.c:2039
msgid "%qE in class %qT does not name a type"
-msgstr "`%s' no nombra a un tipo"
+msgstr "%qE en la clase %qT no nombra a un tipo"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ prohíbe grupos de llaves dentro de las expresiones"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr "las expresiones de declaración sólo se permiten dentro de funciones"
-#: cp/parser.c:2738
-#, fuzzy
+#: cp/parser.c:2808
msgid "%<this%> may not be used in this context"
-msgstr "`this' no se puede usar en este ámbito"
+msgstr "%<this%> no se puede usar en este contexto"
-#: cp/parser.c:2873
-#, fuzzy
+#: cp/parser.c:2944
msgid "local variable %qD may not appear in this context"
-msgstr "la variable local `%D' no puede aparecer en este ámbito"
+msgstr "la variable local %qD no puede aparecer en este contexto"
-#: cp/parser.c:3238
-#, fuzzy
+#: cp/parser.c:3316
msgid "typedef-name %qD used as destructor declarator"
-msgstr "se usa el nombre de typedef `%D' como un declarador de destructor"
+msgstr "se usa el nombre de typedef %qD como un declarador de destructor"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ prohíbe literales compuestos"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr "se prohíbe el límite de matriz después del id de tipo entre paréntesis"
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr "intente eliminando los paréntesis alrededor del id de tipo"
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "el tamaño de la matriz nueva debe tener un tipo integral"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "la matriz de tamaño cero no reserva espacio"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "la expresión en el declarador new debe tener un tipo integral o de enumeración"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "uso de la conversión de estilo antiguo"
-#: cp/parser.c:5932
-#, fuzzy, c-format
+#: cp/parser.c:6041
+#, c-format
msgid "case label %qE not within a switch statement"
-msgstr "la etiqueta case `%E' no se encuentra dentro de una declaración switch"
+msgstr "la etiqueta case %qE no se encuentra dentro de una declaración switch"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ prohíbe gotos calculados"
-#: cp/parser.c:6601
-#, fuzzy
+#: cp/parser.c:6709
msgid "extra %<;%>"
-msgstr "`;' extra"
+msgstr "%<;%> extra"
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr "se prohibe mezclar declaraciones y definiciones de funciones"
-#: cp/parser.c:7052
-#, fuzzy
+#: cp/parser.c:7159
msgid "duplicate %<friend%>"
-msgstr "`friend' duplicado"
+msgstr "%<friend%> duplicado"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
msgid "class definition may not be declared a friend"
msgstr "la definición de clase no se puede declarar como friend"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr "solamente los constructores toman inicializadores base"
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr "inicializador de clase base de estilo antiguo anacrónico"
-#: cp/parser.c:7626
-#, fuzzy
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
-msgstr "no se permite la palabra clave `typename' en este contexto (un inicializador de miembro calificado implícitamente es un tipo)"
+msgstr "no se permite la palabra clave %<typename%> en este contexto (un inicializador de miembro calificado implícitamente es un tipo)"
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
-#, fuzzy
+#: cp/parser.c:8096
msgid "keyword %<export%> not implemented, and will be ignored"
-msgstr "la palabra clave `export' no está implementada, y será ignorada"
+msgstr "la palabra clave %<export%> no está implementada, y será ignorada"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
-#, fuzzy
+#: cp/parser.c:8469
msgid "%<<::%> cannot begin a template-argument list"
-msgstr "`<::' no puede empezar una lista de argumentos de plantilla"
+msgstr "%<<::%> no puede iniciar una lista de argumentos de plantilla"
-#: cp/parser.c:8359
-#, fuzzy
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
-msgstr "`<:' es una forma alternativa para escribir `['. Inserte espacios entre `<' y `::'"
+msgstr "%<<:%> es una forma alternativa para escribir %<[%>. Inserte espacios entre %<<%> y %<::%>"
-#: cp/parser.c:8366
-#, fuzzy
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
-msgstr "(si utiliza `-fpermissive' G++ aceptará su código)"
+msgstr "(si utiliza -fpermissive G++ aceptará su código)"
+
+#: cp/parser.c:8541
+msgid "parse error in template argument list"
+msgstr "error de decodificación en la lista de argumentos de plantilla"
#. Explain what went wrong.
-#: cp/parser.c:8536
-#, fuzzy
+#: cp/parser.c:8654
msgid "non-template %qD used as template"
-msgstr "se usa `%D' que no es plantilla como plantilla"
+msgstr "se usa %qD que no es plantilla como plantilla"
-#: cp/parser.c:8537
-#, fuzzy
+#: cp/parser.c:8655
msgid "use %<%T::template %D%> to indicate that it is a template"
-msgstr "utilice `%T::template %D' para indicar que es una plantilla"
+msgstr "utilice %<%T::template %D%> para indicar que es una plantilla"
-#: cp/parser.c:9554
-#, fuzzy
-msgid "using %<typename%> outside of template"
-msgstr "usando `typename' fuera de la plantilla"
+#: cp/parser.c:9245 cp/parser.c:15012
+#, c-format
+msgid "template declaration of %qs"
+msgstr "declaración plantilla de %qs"
-#: cp/parser.c:9677
-msgid "expected type-name"
-msgstr "se esperaba un nombre de tipo"
+#: cp/parser.c:9688
+msgid "using %<typename%> outside of template"
+msgstr "usando %<typename%> fuera de la plantilla"
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr "las definiciones de atributos solamente se honran en las definiciones de tipo"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
msgid "a template-id may not appear in a using-declaration"
msgstr "un id de plantilla no puede aparecer en una declaración de uso"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr "no se permite una especificación de asm en una definición de función"
-#: cp/parser.c:10463
+#: cp/parser.c:10597
msgid "attributes are not allowed on a function-definition"
msgstr "no se permiten atributos en una definición de función"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr "se ignoran los atributos después del inicializador entre paréntesis"
-#: cp/parser.c:10976
-#, fuzzy
+#: cp/parser.c:11113
msgid "array bound is not an integer constant"
-msgstr "la cuenta de repetición no es una constante entera"
+msgstr "el límite de la matriz no es una constante entera"
-#: cp/parser.c:11045
-#, fuzzy
+#: cp/parser.c:11183
msgid "%<%T::%D%> is not a type"
-msgstr "`%T::%D' no es un tipo"
+msgstr "%<%T::%D%> no es un tipo"
-#: cp/parser.c:11090
-#, fuzzy
+#: cp/parser.c:11225
msgid "invalid use of constructor as a template"
-msgstr "uso inválido del dato miembro no static '%E'"
+msgstr "uso inválido del constructor como una plantilla"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
-msgstr ""
+msgstr "use %<%T::%D%> en lugar de %<%T::%T%> para nombrar el constructor en un nombre calificado"
-#: cp/parser.c:11279
-#, fuzzy
+#: cp/parser.c:11414
msgid "duplicate cv-qualifier"
-msgstr "calificador duplicado (desplazamiento %d)"
+msgstr "calificador-cv duplicado"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
msgid "file ends in default argument"
msgstr "el fichero termina en el argumento por defecto"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr "uso obsoleto del argumento por defecto para el parámetro de una no función"
-#: cp/parser.c:11858
+#: cp/parser.c:11980
msgid "default arguments are only permitted for function parameters"
msgstr "los argumentos por defecto sólo se permiten para parámetros de función"
-#: cp/parser.c:12598
-#, fuzzy
+#: cp/parser.c:12722
+msgid "invalid class name in declaration of %qD"
+msgstr "nombre de clase inválido en la declaración de %qD"
+
+#: cp/parser.c:12733
msgid "declaration of %qD in %qD which does not enclose %qD"
-msgstr "la declaración de `%D' en `%D' la cual no incluye a `%D'"
+msgstr "la declaración de %qD en %qD la cual no incluye a %qD"
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr "se ignora la calificación extra"
-#: cp/parser.c:12622
-#, fuzzy
+#: cp/parser.c:12757
msgid "an explicit specialization must be preceded by %<template <>%>"
-msgstr "una especialización explícita debe ser precedida por 'template <>'"
+msgstr "una especialización explícita debe ser precedida por %<template <>%>"
-#: cp/parser.c:12914
-#, fuzzy
+#: cp/parser.c:12850
+msgid "previous definition of %q#T"
+msgstr "definición previa de %q#T"
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
-msgstr "`;' extra"
+msgstr "%H%<;%> extra"
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr "se debe usar una llave clase cuando se declara un friend"
-#: cp/parser.c:12946
+#: cp/parser.c:13091
msgid "friend declaration does not name a class or function"
msgstr "la declaración friend no nombra una clase o función"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr "especificador puro en la definición de función"
-#: cp/parser.c:13393
-#, fuzzy
+#: cp/parser.c:13545
msgid "keyword %<typename%> not allowed outside of templates"
-msgstr "no se permite la palabra clave `typename' fuera de las plantillas"
+msgstr "no se permite la palabra clave %<typename%> fuera de las plantillas"
-#: cp/parser.c:13395
-#, fuzzy
+#: cp/parser.c:13547
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
-msgstr "no se permite la palabra clave `typename' en este contexto (la clase base implícitamente es un tipo)"
+msgstr "no se permite la palabra clave %<typename%> en este contexto (la clase base implícitamente es un tipo)"
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "parámetro de captura inválido"
-#: cp/parser.c:14231
-#, fuzzy
+#: cp/parser.c:14399
msgid "reference to %qD is ambiguous"
-msgstr "la referencia a `%D' es ambigua"
+msgstr "la referencia a %qD es ambigua"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
msgid "too few template-parameter-lists"
msgstr "muy pocas listas de parámetros de plantilla"
@@ -16817,175 +15849,150 @@ msgstr "muy pocas listas de parámetros de plantilla"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr "demasiadas listas de parámetros de plantilla"
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
msgid "invalid function declaration"
msgstr "declaración inválida de función"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
msgid "named return values are no longer supported"
msgstr "los valores de devolución nombrados ya no tiene soporte"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "redeclaración en plantilla de `%#D'"
-
-#: cp/parser.c:15048
-#, fuzzy
+#: cp/parser.c:15218
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
-msgstr "`>>' debe ser `> >' dentro de una lista de argumentos plantilla anidados"
+msgstr "%H%<>>%> debe ser %<> >%> dentro de una lista de argumentos plantilla anidados"
-#: cp/parser.c:15063
-#, fuzzy
+#: cp/parser.c:15233
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
-msgstr "`>>' sobrante, use `>' para terminar una lista de argumentos de plantilla"
+msgstr "%<>>%> sobrante, use %<>%> para terminar una lista de argumentos de plantilla"
-#: cp/parser.c:15068
-#, fuzzy
+#: cp/parser.c:15238
msgid "missing %<>%> to terminate the template argument list"
-msgstr "falta un `>' para terminar la lista de argumentos de plantilla"
+msgstr "falta un %<>%> para terminar la lista de argumentos de plantilla"
-#: cp/parser.c:15586
-#, fuzzy
+#: cp/parser.c:15766
msgid "%qs tag used in naming %q#T"
-msgstr "se usó la marca `%s' al nombrar a`%#T'"
+msgstr "se usó la marca %qs al nombrar a %q#T"
-#: cp/parser.c:15607
-#, fuzzy
+#: cp/parser.c:15787
msgid "%qD redeclared with different access"
-msgstr "`%D' redeclarado con acceso diferente"
+msgstr "%qD redeclarado con acceso diferente"
-#: cp/parser.c:15624
-#, fuzzy
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
-msgstr "`template' (para eliminar ambigüedades) sólo se permite dentro de plantillas"
+msgstr "%<template%> (para eliminar ambigüedades) sólo se permite dentro de plantillas"
-#: cp/parser.c:15832
-#, fuzzy
+#: cp/parser.c:16012
msgid "inter-module optimizations not implemented for C++"
-msgstr "aún no se ha implementado las optimizaciones intermódulos"
+msgstr "aún no se ha implementado las optimizaciones intermódulos para C++"
-#: cp/pt.c:240
-#, fuzzy
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
-msgstr "los datos miembros `%D' no puede ser una plantilla miembro"
+msgstr "el dato miembro %qD no puede ser una plantilla miembro"
-#: cp/pt.c:252
-#, fuzzy
+#: cp/pt.c:253
msgid "invalid member template declaration %qD"
-msgstr "declaración de la plantilla miembro `%D' inválida"
+msgstr "declaración de la plantilla miembro %qD inválida"
-#: cp/pt.c:574
-#, fuzzy
+#: cp/pt.c:575
msgid "explicit specialization in non-namespace scope %qD"
-msgstr "especialización explícita en el ámbito `%D' que no es espacio de nombres"
+msgstr "especialización explícita en el ámbito %qD que no es espacio de nombres"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr "las plantillas de clase contenidas no son especializadas explícitamente"
-#: cp/pt.c:669
-#, fuzzy
+#: cp/pt.c:670
msgid "specialization of %qD in different namespace"
-msgstr "especialización de `%D' en diferentes espacios de nombres"
+msgstr "especialización de %qD en un espacio de nombres diferente"
-#: cp/pt.c:670 cp/pt.c:739
-#, fuzzy
+#: cp/pt.c:671 cp/pt.c:740
msgid " from definition of %q#D"
-msgstr " de la definición de `%#D'"
+msgstr " de la definición de %q#D"
-#: cp/pt.c:706
-#, fuzzy
+#: cp/pt.c:707
msgid "specialization of %qT after instantiation"
-msgstr "especialización de `%T' después de la instanciación"
+msgstr "especialización de %qT después de la instanciación"
-#: cp/pt.c:738
-#, fuzzy
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
-msgstr "especializando `%#T' en diferentes espacios de nombres"
+msgstr "especializando %q#T en un espacio de nombres diferente"
-#: cp/pt.c:753
-#, fuzzy
+#: cp/pt.c:754
msgid "specialization %qT after instantiation %qT"
-msgstr "especialización de `%T' después de la instanciación `%T'"
+msgstr "especialización de %qT después de la instanciación %qT"
-#: cp/pt.c:765
-#, fuzzy
+#: cp/pt.c:766
msgid "explicit specialization of non-template %qT"
-msgstr "especialización explícita de `%T' que no es plantilla"
+msgstr "especialización explícita de %qT que no es plantilla"
-#: cp/pt.c:1163
-#, fuzzy
+#: cp/pt.c:1164
msgid "specialization of %qD after instantiation"
-msgstr "especialización de %D después de la instanciación"
+msgstr "especialización de %qD después de la instanciación"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1348
-#, fuzzy
+#: cp/pt.c:1349
msgid "%qD is not a function template"
-msgstr "`%D' no es una plantilla de función"
+msgstr "%qD no es una plantilla de función"
-#: cp/pt.c:1533
-#, fuzzy
+#: cp/pt.c:1534
msgid "template-id %qD for %q+D does not match any template declaration"
-msgstr "el id de plantilla `%D' para `%+D' no coincide con ninguna declaración de plantilla"
+msgstr "el id de plantilla %qD para %q+D no coincide con ninguna declaración de plantilla"
-#: cp/pt.c:1542
-#, fuzzy
+#: cp/pt.c:1543
msgid "ambiguous template specialization %qD for %q+D"
-msgstr "especialización de plantilla ambigua `%D' para `%+D'"
+msgstr "especialización de plantilla ambigua %qD para %q+D"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
-#, fuzzy
+#: cp/pt.c:1774 cp/pt.c:1828
msgid "template-id %qD in declaration of primary template"
-msgstr "id de plantilla `%D' en la declaración de la plantilla primaria"
+msgstr "id de plantilla %qD en la declaración de la plantilla primaria"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
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:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr "se provee una definición para instanciación explícita"
-#: cp/pt.c:1792
-#, fuzzy
+#: cp/pt.c:1801
msgid "too many template parameter lists in declaration of %qD"
-msgstr "demasiadas listas de parámetros de plantilla en la declaración de `%D'"
+msgstr "demasiadas listas de parámetros de plantilla en la declaración de %qD"
-#: cp/pt.c:1795
-#, fuzzy
+#: cp/pt.c:1804
msgid "too few template parameter lists in declaration of %qD"
-msgstr "muy pocas listas de parámetros de plantilla en la declaración de `%D'"
+msgstr "muy pocas listas de parámetros de plantilla en la declaración de %qD"
-#: cp/pt.c:1797
-#, fuzzy
+#: cp/pt.c:1806
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
-msgstr "una especialización explícita debe ser precedida por 'template <>'"
+msgstr "la especialización explícita %qD debe ser introducida por %<template <>%>"
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
-msgstr ""
+msgstr "no se permite la especialización parcial de la función de plantilla %qD"
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr "se especificó un argumento por defecto en la especialización explícita"
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr "especialización de plantilla con enlace C"
+#: cp/pt.c:1888
+msgid "%qD is not a template function"
+msgstr "%qD no es una función plantilla"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16994,486 +16001,422 @@ msgstr "especialización de plantilla con enlace C"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr "especialización de la función miembro especial declarada implícitamente"
-#: cp/pt.c:1980
-#, fuzzy
+#: cp/pt.c:1994
msgid "no member function %qD declared in %qT"
-msgstr "la función no miembro `%D' se declaró en `%T'"
+msgstr "la función no miembro %qD se declaró en %qT"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "demasiadas listas de parámetros de plantilla en la declaración de `%T'"
-
-#: cp/pt.c:2224
-#, fuzzy
+#: cp/pt.c:2199
msgid " shadows template parm %q#D"
-msgstr " oscurece el parámetro de plantilla `%#D'"
+msgstr " oscurece el parámetro de plantilla %q#D"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
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:2630
-#, fuzzy
+#: cp/pt.c:2605
msgid " %qD"
-msgstr " `%D'"
+msgstr " %qD"
-#: cp/pt.c:2641
-#, fuzzy
+#: cp/pt.c:2616
msgid "partial specialization %qT does not specialize any template arguments"
-msgstr "la especialización parcial `%T' no especializa ningún argumento de plantilla"
+msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla"
-#: cp/pt.c:2666
-#, fuzzy, c-format
+#: cp/pt.c:2641
+#, c-format
msgid "template argument %qE involves template parameter(s)"
-msgstr "el argumento de plantilla `%E' involucra a el(los) parámetro(s) de plantilla"
+msgstr "el argumento de plantilla %qE involucra a el(los) parámetro(s) de plantilla"
-#: cp/pt.c:2710
-#, fuzzy
+#: cp/pt.c:2685
msgid "type %qT of template argument %qE depends on template parameter(s)"
-msgstr "el tipo `%T' del argumento de plantilla `%E' depende de el(los) parámetro(s) de plantilla"
+msgstr "el tipo %qT del argumento de plantilla %qE depende de el(los) parámetro(s) de plantilla"
-#: cp/pt.c:2797
-#, fuzzy
+#: cp/pt.c:2772
msgid "no default argument for %qD"
-msgstr "no hay un argumento por defecto para `%D'"
+msgstr "no hay un argumento por defecto para %qD"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr "plantilla con enlace C"
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr "clase de plantilla sin nombre"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
-#, fuzzy
+#: cp/pt.c:2940
msgid "destructor %qD declared as member template"
-msgstr "se declara el destructor `%D' como una plantilla miembro"
+msgstr "se declara el destructor %qD como una plantilla miembro"
#. [basic.stc.dynamic.allocation]
#.
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
-#, fuzzy
+#: cp/pt.c:2955
msgid "invalid template declaration of %qD"
-msgstr "declaración de la plantilla de `%D' inválida"
+msgstr "declaración de la plantilla de %qD inválida"
-#: cp/pt.c:3061
-#, fuzzy
+#: cp/pt.c:3036
msgid "%qD does not declare a template type"
-msgstr "`%D' no declara un tipo de plantilla"
+msgstr "%qD no declara un tipo de plantilla"
-#: cp/pt.c:3067
-#, fuzzy
+#: cp/pt.c:3042
msgid "template definition of non-template %q#D"
-msgstr "definición de plantilla de `%#D' que no es plantilla"
+msgstr "definición de plantilla de %q#D que no es plantilla"
-#: cp/pt.c:3109
-#, fuzzy
+#: cp/pt.c:3084
msgid "expected %d levels of template parms for %q#D, got %d"
-msgstr "se esperaban %d niveles de parámetros de plantilla para `%#D', se obtuvieron %d"
+msgstr "se esperaban %d niveles de parámetros de plantilla para %q#D, se obtuvieron %d"
-#: cp/pt.c:3121
-#, fuzzy
+#: cp/pt.c:3096
msgid "got %d template parameters for %q#D"
-msgstr "se obtuvieron %d parámetros de plantilla para `%#D'"
+msgstr "se obtuvieron %d parámetros de plantilla para %q#D"
-#: cp/pt.c:3124
-#, fuzzy
+#: cp/pt.c:3099
msgid "got %d template parameters for %q#T"
-msgstr "se obtuvieron %d parámetros de plantilla para `%#T'"
+msgstr "se obtuvieron %d parámetros de plantilla para %q#T"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " pero se requieren %d"
-#: cp/pt.c:3211
-#, fuzzy
+#: cp/pt.c:3190
msgid "%qT is not a template type"
-msgstr "`%T' no es un tipo plantilla"
+msgstr "%qT no es un tipo plantilla"
-#: cp/pt.c:3227
-#, fuzzy
+#: cp/pt.c:3203
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "no se especificaron los especificadores de plantilla en la declaración de %qD"
+
+#: cp/pt.c:3213
msgid "previous declaration %qD"
-msgstr "declaración previa de `%D'"
+msgstr "declaración previa de %qD"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, 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:3248
-#, fuzzy
+#: cp/pt.c:3234
msgid "template parameter %q#D"
-msgstr "parámetro de plantilla `%#D'"
+msgstr "parámetro de plantilla %q#D"
-#: cp/pt.c:3249
-#, fuzzy
+#: cp/pt.c:3235
msgid "redeclared here as %q#D"
-msgstr "redeclarado aquí como `%#D'"
+msgstr "redeclarado aquí como %q#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:3259
-#, fuzzy
+#: cp/pt.c:3245
msgid "redefinition of default argument for %q#D"
-msgstr "redefinición del argumento por defecto para `%#D'"
+msgstr "redefinición del argumento por defecto para %q#D"
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr "%J la definición original apareció aquí"
-#: cp/pt.c:3370
-#, fuzzy
+#: cp/pt.c:3342
msgid "%qE is not a valid template argument for type %qT because function %qD has not external 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"
+msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque la función %qD no tiene enlazado externo"
-#: cp/pt.c:3411
-#, fuzzy
+#: cp/pt.c:3383
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
-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"
+msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque las literales de cadena nunca se pueden usar en este contexto"
-#: cp/pt.c:3486
-#, fuzzy
+#: cp/pt.c:3458
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
-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"
+msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque es una expresión que no es constante"
-#: cp/pt.c:3536
-#, fuzzy
+#: cp/pt.c:3508
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
-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"
+msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es puntero constante"
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
-msgstr ""
+msgstr "%qE no es un argumento de plantilla válido para el tipo %qT debido a conflictos en la calificación cv"
-#: cp/pt.c:3563
-#, fuzzy
+#: cp/pt.c:3535
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
-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"
+msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un lvalor"
-#: cp/pt.c:3576
-#, fuzzy
+#: cp/pt.c:3548
msgid "%qE is not a valid template argument for type %qT because object %qD has not external 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"
+msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque el objeto %qD no tiene enlazado externo"
-#: cp/pt.c:3618
-#, fuzzy
+#: cp/pt.c:3590
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
-msgstr "`%E' no es un argumento de plantilla válido"
+msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es un puntero"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
-msgstr ""
+msgstr "intente utilizar %qE en su lugar"
-#: cp/pt.c:3655
-#, fuzzy
+#: cp/pt.c:3627
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
-msgstr "`%E' no es un argumento de plantilla válido"
+msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es de tipo %qT"
-#: cp/pt.c:3658
-#, fuzzy
+#: cp/pt.c:3630
msgid "standard conversions are not allowed in this context"
-msgstr "no se permite una expresión condicional en este contexto"
+msgstr "no se permiten las conversiones estándar en este contexto"
-#: cp/pt.c:3827
-#, fuzzy
+#: cp/pt.c:3799
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'"
+msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use %<typename %E%>"
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
-#, fuzzy
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
msgid "type/value mismatch at argument %d in template parameter list for %qD"
-msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para `%D'"
+msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para %qD"
-#: cp/pt.c:3845
-#, fuzzy
+#: cp/pt.c:3818
msgid " expected a constant of type %qT, got %qT"
-msgstr " se esperaba una constante de tipo `%T', se obtuvo `%T'"
+msgstr " se esperaba una constante de tipo %qT, se obtuvo %qT"
-#: cp/pt.c:3849
-#, fuzzy, c-format
+#: cp/pt.c:3822
+#, c-format
msgid " expected a class template, got %qE"
-msgstr " se esperaba una plantilla de clase, se obtuvo `%E'"
+msgstr " se esperaba una plantilla de clase, se obtuvo %qE"
-#: cp/pt.c:3851
-#, fuzzy, c-format
+#: cp/pt.c:3824
+#, c-format
msgid " expected a type, got %qE"
-msgstr " se esperaba un tipo, se obtuvo `%E'"
+msgstr " se esperaba un tipo, se obtuvo %qE"
-#: cp/pt.c:3864
-#, fuzzy
+#: cp/pt.c:3837
msgid " expected a type, got %qT"
-msgstr " se esperaba un tipo, se obtuvo `%T'"
+msgstr " se esperaba un tipo, se obtuvo %qT"
-#: cp/pt.c:3866
-#, fuzzy
+#: cp/pt.c:3839
msgid " expected a class template, got %qT"
-msgstr " se esperaba una plantilla de clase, se obtuvo `%T'"
+msgstr " se esperaba una plantilla de clase, se obtuvo %qT"
-#: cp/pt.c:3903
-#, fuzzy
+#: cp/pt.c:3876
msgid " expected a template of type %qD, got %qD"
-msgstr " se esperaba una plantilla de tipo `%D', se obtuvo `%D'"
+msgstr " se esperaba una plantilla de tipo %qD, se obtuvo %qD"
-#: cp/pt.c:3939
-#, fuzzy
+#: cp/pt.c:3912
msgid "could not convert template argument %qE to %qT"
-msgstr "no se puede convertir el argumento de plantilla `%E' a `%T'"
+msgstr "no se puede convertir el argumento de plantilla %qE a %qT"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, 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:3982
-#, fuzzy
+#: cp/pt.c:3955
msgid "provided for %qD"
-msgstr "provisto por `%D'"
+msgstr "provisto por %qD"
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, c-format
msgid "template argument %d is invalid"
msgstr "el argumento de plantilla %d es inválido"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr "se usa una no plantilla como plantilla"
-
-#: cp/pt.c:4376
-#, fuzzy
+#: cp/pt.c:4340
msgid "non-template type %qT used as a template"
-msgstr "se usa el tipo `%T' que no es plantilla como una plantilla"
+msgstr "se usa el tipo %qT que no es plantilla como una plantilla"
-#: cp/pt.c:4378
-#, fuzzy
+#: cp/pt.c:4342
msgid "for template declaration %qD"
-msgstr "para la declaración de plantilla `%D'"
+msgstr "para la declaración de plantilla %qD"
-#: cp/pt.c:5018
-#, fuzzy
+#: cp/pt.c:4982
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
-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'"
+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 %qD"
-#: cp/pt.c:5457
-#, fuzzy
+#: cp/pt.c:5424
msgid "ambiguous class template instantiation for %q#T"
-msgstr "instanciación de plantilla clase ambigua para `%#T'"
+msgstr "instanciación de plantilla clase ambigua para %q#T"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:6522
-#, fuzzy
+#: cp/pt.c:6510
msgid "instantiation of %qD as type %qT"
-msgstr "instanciación de `%D' como tipo `%T'"
+msgstr "instanciación de %qD como tipo %qT"
-#: cp/pt.c:6683
-#, fuzzy
+#: cp/pt.c:6678
msgid "invalid parameter type %qT"
-msgstr "tipo de parámetro `%T' inválido"
+msgstr "tipo de parámetro %qT inválido"
-#: cp/pt.c:6685
-#, fuzzy
+#: cp/pt.c:6680
msgid "in declaration %qD"
-msgstr "en la declaración `%D'"
+msgstr "en la declaración %qD"
-#: cp/pt.c:6746
-#, fuzzy
+#: cp/pt.c:6741
msgid "function returning an array"
-msgstr "la función devuelve un agregado"
+msgstr "la función devuelve una matriz"
-#: cp/pt.c:6748
-#, fuzzy
+#: cp/pt.c:6743
msgid "function returning a function"
-msgstr "`%s' que es declarado como función devuelve una función"
+msgstr "la función devuelve una función"
-#: cp/pt.c:6775
-#, fuzzy
+#: cp/pt.c:6770
msgid "creating pointer to member function of non-class type %qT"
-msgstr "creando un puntero a función miembro del tipo `%T' que no es clase"
+msgstr "creando un puntero a función miembro del tipo %qT que no es clase"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "creando la matriz con tamaño cero"
-#: cp/pt.c:6959
-#, fuzzy, c-format
+#: cp/pt.c:6952
+#, c-format
msgid "creating array with size zero (%qE)"
-msgstr "creando la matriz con tamaño cero (`%E')"
+msgstr "creando la matriz con tamaño cero (%qE)"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr "formando la referencia a void"
-#: cp/pt.c:7178
-#, fuzzy
+#: cp/pt.c:7171
msgid "forming %s to reference type %qT"
-msgstr "formando %s para referenciar al tipo `%T'"
+msgstr "formando %s para referenciar al tipo %qT"
-#: cp/pt.c:7215
-#, fuzzy
+#: cp/pt.c:7208
msgid "creating pointer to member of non-class type %qT"
-msgstr "creando un puntero al miembro del tipo `%T' que no es clase"
+msgstr "creando un puntero al miembro del tipo %qT que no es clase"
-#: cp/pt.c:7221
-#, fuzzy
+#: cp/pt.c:7214
msgid "creating pointer to member reference type %qT"
-msgstr "creando un puntero al miembro de referencia de tipo `%T'"
+msgstr "creando un puntero al miembro de referencia de tipo %qT"
-#: cp/pt.c:7291
-#, fuzzy
+#: cp/pt.c:7280
msgid "creating array of %qT"
-msgstr "creando la matriz de `%T'"
+msgstr "creando la matriz de %qT"
-#: cp/pt.c:7297
-#, fuzzy
+#: cp/pt.c:7286
msgid "creating array of %qT, which is an abstract class type"
-msgstr "creando la matriz de `%T', la cual es un tipo de clase abstracta"
+msgstr "creando la matriz de %qT, la cual es un tipo de clase abstracta"
-#: cp/pt.c:7341
-#, fuzzy
+#: cp/pt.c:7330
msgid "%qT is not a class, struct, or union type"
-msgstr "`%T' no es de tipo clase, struct o union"
+msgstr "%qT no es de tipo clase, struct o union"
-#: cp/pt.c:7430
-#, fuzzy, c-format
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr "%qT resuelve a %qT, el cual no es un tipo enumerado"
+
+#: cp/pt.c:7368
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "%qT resuelve a %qT, el cual no es un tipo de clase"
+
+#: cp/pt.c:7429
+#, c-format
msgid "use of %qs in template"
-msgstr "uso de `%s' en la plantilla"
+msgstr "uso de %qs en la plantilla"
-#: cp/pt.c:7555
-#, fuzzy, c-format
+#: cp/pt.c:7554
+#, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
-msgstr "el nombre dependiente '%E' se decodifica como un no tipo, la instanciación genera un tipo"
+msgstr "el nombre dependiente %qE se decodifica como un no tipo, la instanciación genera un tipo"
-#: cp/pt.c:7557
-#, fuzzy
+#: cp/pt.c:7556
msgid "say %<typename %E%> if a type is meant"
-msgstr " escriba `typename %E' si quería un tipo"
+msgstr "escriba %<typename %E%> si quería un tipo"
-#: cp/pt.c:8708
-#, fuzzy
+#: cp/pt.c:7675
+msgid "using invalid field %qD"
+msgstr "se usa el campo inválido %qD"
+
+#: cp/pt.c:8729
msgid "%qT is not a class or namespace"
-msgstr "`%T' no es una clase o un espacio de nombres"
+msgstr "%qT no es una clase o un espacio de nombres"
-#: cp/pt.c:8711
-#, fuzzy
+#: cp/pt.c:8732
msgid "%qD is not a class or namespace"
-msgstr "`%D' no es una clase o un espacio de nombres"
+msgstr "%qD no es una clase o un espacio de nombres"
-#: cp/pt.c:8844
-#, fuzzy
-msgid "%qT uses anonymous type"
-msgstr "`%T' usa un tipo anónimo"
+#: cp/pt.c:8872
+msgid "%qT is/uses anonymous type"
+msgstr "%qT es/usa un tipo anónimo"
-#: cp/pt.c:8846
-#, fuzzy
+#: cp/pt.c:8874
msgid "%qT uses local type %qT"
-msgstr "`%T' usa el tipo local `%T'"
+msgstr "%qT usa el tipo local %qT"
-#: cp/pt.c:8854
-#, fuzzy
+#: cp/pt.c:8883
msgid "%qT is a variably modified type"
-msgstr "`%T' es un tipo modificado variablemente"
+msgstr "%qT es un tipo modificado variablemente"
-#: cp/pt.c:8865
-#, fuzzy, c-format
+#: cp/pt.c:8894
+#, c-format
msgid "integral expression %qE is not constant"
-msgstr "la expresión integral `%E' no es una constante"
+msgstr "la expresión integral %qE no es una constante"
-#: cp/pt.c:8870
-#, fuzzy
+#: cp/pt.c:8899
msgid " trying to instantiate %qD"
-msgstr " tratando de instanciar `%D'"
+msgstr " tratando de instanciar %qD"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "unificación de tipo incompleto"
-#: cp/pt.c:10704 cp/pt.c:10775
-#, fuzzy
+#: cp/pt.c:10767 cp/pt.c:10838
msgid "explicit instantiation of non-template %q#D"
-msgstr "instanciación explícita de `%#D' que no es plantilla"
+msgstr "instanciación explícita de %q#D que no es plantilla"
-#: cp/pt.c:10720 cp/pt.c:10770
-#, fuzzy
+#: cp/pt.c:10783 cp/pt.c:10833
msgid "no matching template for %qD found"
-msgstr "no se encuentra una plantilla coincidente para `%D'"
+msgstr "no se encuentra una plantilla coincidente para %qD"
-#: cp/pt.c:10726
-#, fuzzy
+#: cp/pt.c:10789
msgid "explicit instantiation of %q#D"
-msgstr "instanciación explícita de `%#D'"
+msgstr "instanciación explícita de %q#D"
-#: cp/pt.c:10762
-#, fuzzy
+#: cp/pt.c:10825
msgid "duplicate explicit instantiation of %q#D"
-msgstr "instanciación explícita duplicada de `%#D'"
+msgstr "instanciación explícita duplicada de %q#D"
-#: cp/pt.c:10784
-#, fuzzy
+#: cp/pt.c:10847
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
-msgstr "ISO C++ prohíbe el uso de `extern' en instanciaciones explícitas"
+msgstr "ISO C++ prohíbe el uso de %<extern%> en instanciaciones explícitas"
-#: cp/pt.c:10789 cp/pt.c:10879
-#, fuzzy
+#: cp/pt.c:10852 cp/pt.c:10942
msgid "storage class %qD applied to template instantiation"
-msgstr "clase de almacenamiento `%D' aplicada a la instanciación de una plantilla"
+msgstr "clase de almacenamiento %qD aplicada a la instanciación de una plantilla"
-#: cp/pt.c:10851
-#, fuzzy
+#: cp/pt.c:10914
msgid "explicit instantiation of non-template type %qT"
-msgstr "instanciación explícita del tipo `%T' del tipo no plantilla"
+msgstr "instanciación explícita del tipo %qT que no es plantilla"
-#: cp/pt.c:10860
-#, fuzzy
+#: cp/pt.c:10923
msgid "explicit instantiation of %q#T before definition of template"
-msgstr "instanciación explícita de `%#T' antes de la definición de la plantilla"
+msgstr "instanciación explícita de %q#T antes de la definición de la plantilla"
-#: cp/pt.c:10868
-#, fuzzy, c-format
+#: cp/pt.c:10931
+#, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
-msgstr "ISO C++ prohíbe el uso de `%s' en las instanciaciones explícitas"
+msgstr "ISO C++ prohíbe el uso de %qE en las instanciaciones explícitas"
-#: cp/pt.c:10913
-#, fuzzy
+#: cp/pt.c:10976
msgid "duplicate explicit instantiation of %q#T"
-msgstr "instanciación explícita duplicada de `%#T'"
+msgstr "instanciación explícita duplicada de %q#T"
-#: cp/pt.c:11278
-#, fuzzy
+#: cp/pt.c:11341
msgid "explicit instantiation of %qD but no definition available"
-msgstr "instanciación explícita de `%D' pero no hay una definición disponible"
+msgstr "instanciación explícita de %qD pero no hay una definición disponible"
-#: cp/pt.c:11422
-#, fuzzy
+#: cp/pt.c:11485
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
-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'"
+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 %q+D, posiblemente de la generación de tabla virtual"
-#: cp/pt.c:11701
-#, fuzzy
+#: cp/pt.c:11753
msgid "%q#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"
+msgstr "%q#T no es un tipo válido para un parámetro constante de plantilla"
#: cp/repo.c:112
msgid "-frepo must be used with -c"
-msgstr "-frepo debe ser usado con -c"
+msgstr "-frepo se debe usar con -c"
#: cp/repo.c:200
#, c-format
@@ -17481,502 +16424,433 @@ msgid "mysterious repository information in %s"
msgstr "información de repositorio misteriosa en %s"
#: cp/repo.c:214
-#, fuzzy, c-format
+#, c-format
msgid "can't create repository information file %qs"
-msgstr "no se puede crear el fichero de información de repositorio `%s'"
+msgstr "no se puede crear el fichero de información de repositorio %qs"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "no se puede usar typeid sin -fno-rtti"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "debe hacer #include <typeinfo> antes de usar typeid"
-#: cp/rtti.c:321
-#, fuzzy
+#: cp/rtti.c:322
msgid "cannot create type information for type %qT 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"
+msgstr "no se puede crear la información de tipo para el tipo %qT porque su tamaño es variable"
-#: cp/rtti.c:574 cp/rtti.c:588
-#, fuzzy
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
-msgstr "dynamic_cast de `%#D' a `%#T' nunca podrá tener éxito"
+msgstr "dynamic_cast de %q#D a %q#T nunca podrá tener éxito"
-#: cp/rtti.c:667
-#, fuzzy
+#: cp/rtti.c:663
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
-msgstr "no se puede hacer dynamic_cast `%E' (de tipo `%#T') al tipo `%#T' (%s)"
+msgstr "no se puede hacer dynamic_cast %qE (de tipo %q#T) al tipo %q#T (%s)"
#: cp/search.c:257
-#, fuzzy
msgid "%qT is an ambiguous base of %qT"
-msgstr "`%T' es una base ambigua de `%T'"
+msgstr "%qT es una base ambigua de %qT"
#: cp/search.c:275
-#, fuzzy
msgid "%qT is an inaccessible base of %qT"
-msgstr "`%T' es una base inaccesible de `%T'"
+msgstr "%qT es una base inaccesible de %qT"
-#: cp/search.c:1834
-#, fuzzy
+#: cp/search.c:1843
msgid "deprecated covariant return type for %q#D"
-msgstr "tipo de devolución covariante inválido para `%#D'"
+msgstr "tipo de devolución covariante obsoleto para %q#D"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
-#, fuzzy
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
msgid " overriding %q#D"
-msgstr " sustituyendo `%#D'"
+msgstr " sustituyendo %q#D"
-#: cp/search.c:1850
-#, fuzzy
+#: cp/search.c:1859
msgid "invalid covariant return type for %q#D"
-msgstr "tipo de devolución covariante inválido para `%#D'"
+msgstr "tipo de devolución covariante inválido para %q#D"
-#: cp/search.c:1855
-#, fuzzy
+#: cp/search.c:1864
msgid "conflicting return type specified for %q#D"
-msgstr "tipos de devolución en conflicto especificados para `%#D'"
+msgstr "tipos de devolución en conflicto especificados para %q#D"
-#: cp/search.c:1866
-#, fuzzy
+#: cp/search.c:1875
msgid "looser throw specifier for %q#F"
-msgstr "especificador thrown más flexible para `%#F'"
+msgstr "especificador throw más flexible para %q#F"
-#: cp/search.c:1867
-#, fuzzy
+#: cp/search.c:1876
msgid " overriding %q#F"
-msgstr " sustituyendo `%#F'"
+msgstr " sustituyendo %q#F"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
-#, fuzzy
+#: cp/search.c:1969
msgid "%q#D cannot be declared"
-msgstr "`%#D' no puede ser declarado"
+msgstr "%q#D no se puede declarar"
-#: cp/search.c:1961
-#, fuzzy
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
-msgstr " ya que se declaró `%#D' en la clase base"
+msgstr " ya que se declaró %q#D en la clase base"
-#: cp/semantics.c:1157
-#, fuzzy, c-format
+#: cp/semantics.c:1199
+#, c-format
msgid "type of asm operand %qE could not be determined"
-msgstr "no se puede determinar el tipo del operando asm `%E'"
+msgstr "no se puede determinar el tipo del operando asm %qE"
-#: cp/semantics.c:1290
-#, fuzzy
+#: cp/semantics.c:1318
msgid "invalid use of member %qD in static member function"
-msgstr "uso inválido del miembro `%D' en la función miembro static"
+msgstr "uso inválido del miembro %qD en la función miembro static"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr "desde esta ubicación"
-#: cp/semantics.c:1332
-#, fuzzy
+#: cp/semantics.c:1360
msgid "object missing in reference to %qD"
-msgstr "falta un objeto en la referencia a `%D'"
+msgstr "falta un objeto en la referencia a %qD"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
msgid "arguments to destructor are not allowed"
msgstr "no se permiten argumentos para el destructor"
-#: cp/semantics.c:1861
-#, fuzzy
+#: cp/semantics.c:1888
msgid "%<this%> is unavailable for static member functions"
-msgstr "`this' no está disponible para funciones miembro static"
+msgstr "%<this%> no está disponible para funciones miembro static"
-#: cp/semantics.c:1867
-#, fuzzy
+#: cp/semantics.c:1894
msgid "invalid use of %<this%> in non-member function"
-msgstr "uso inválido de `this' en la función no miembro"
+msgstr "uso inválido de %<this%> en la función no miembro"
-#: cp/semantics.c:1869
-#, fuzzy
+#: cp/semantics.c:1896
msgid "invalid use of %<this%> at top level"
-msgstr "uso inválido de `this' en el nivel principal"
+msgstr "uso inválido de %<this%> en el nivel principal"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "ámbito calificador inválido en el nombre del seudo-destructor"
-#: cp/semantics.c:1913
-#, fuzzy
+#: cp/semantics.c:1940
msgid "%qE is not of type %qT"
-msgstr "`%E' no es de tipo `%T'"
+msgstr "%qE no es de tipo %qT"
-#: cp/semantics.c:2007
-#, fuzzy
+#: cp/semantics.c:2039
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'"
+msgstr "los parámetros de tipo plantilla debe usar la palabra clave %<class%> o %<typename%>"
-#: cp/semantics.c:2051
-#, fuzzy
+#: cp/semantics.c:2083
msgid "invalid use of type %qT as a default value for a template template-parameter"
-msgstr "uso inválido del tipo `%T' como un valor por defecto para una plantilla de parámetro de plantilla"
+msgstr "uso inválido del tipo %qT como un valor por defecto para una plantilla de parámetro de plantilla"
-#: cp/semantics.c:2054
-#, fuzzy
+#: cp/semantics.c:2086
msgid "invalid use of %qD as a default value for a template template-parameter"
-msgstr "uso inválido de `%D' como un valor por defecto para una plantilla de parámetro de plantilla"
+msgstr "uso inválido de %qD como un valor por defecto para una plantilla de parámetro de plantilla"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
msgid "invalid default argument for a template template parameter"
msgstr "argumento por defecto inválido para una plantilla de parámetro de plantilla"
-#: cp/semantics.c:2075
-#, fuzzy
+#: cp/semantics.c:2107
msgid "definition of %q#T inside template parameter list"
-msgstr "la definición de `%#T' dentro de la lista de parámetros de plantilla"
+msgstr "la definición de %q#T dentro de la lista de parámetros de plantilla"
-#: cp/semantics.c:2086
-#, fuzzy
+#: cp/semantics.c:2118
msgid "invalid definition of qualified type %qT"
-msgstr "definición inválida del tipo calificado `%T'"
-
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "definición previa de `%#T'"
+msgstr "definición inválida del tipo calificado %qT"
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
msgid "invalid base-class specification"
msgstr "especificación de clase base inválida"
-#: cp/semantics.c:2286
-#, fuzzy
+#: cp/semantics.c:2343
msgid "base class %qT has cv qualifiers"
-msgstr "la clase base `%T' tiene calificadores cv"
+msgstr "la clase base %qT tiene calificadores cv"
-#: cp/semantics.c:2306
-#, fuzzy
+#: cp/semantics.c:2363
msgid "incomplete type %qT used in nested name specifier"
-msgstr "se utilizó el tipo incompleto `%T' en un especificador de nombre anidado"
+msgstr "se utilizó el tipo incompleto %qT en un especificador de nombre anidado"
-#: cp/semantics.c:2309
-#, fuzzy
+#: cp/semantics.c:2366
msgid "reference to %<%T::%D%> is ambiguous"
-msgstr "la referencia a `%D' es ambigua"
+msgstr "la referencia a %<%T::%D%> es ambigua"
-#: cp/semantics.c:2313 cp/typeck.c:1653
-#, fuzzy
+#: cp/semantics.c:2370 cp/typeck.c:1621
msgid "%qD is not a member of %qT"
-msgstr "`%D' no es un miembro de `%T'"
+msgstr "%qD no es un miembro de %qT"
-#: cp/semantics.c:2316
-#, fuzzy
+#: cp/semantics.c:2373
msgid "%qD is not a member of %qD"
-msgstr "`%D' no es un miembro de `%D'"
+msgstr "%qD no es un miembro de %qD"
-#: cp/semantics.c:2441
-#, fuzzy
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
-msgstr "no se permite el parámetro de plantilla `%D' de tipo `%T' en una expresión integral constante porque no es de tipo integral o de enumeración"
+msgstr "no se permite el parámetro de plantilla %qD de tipo %qT en una expresión integral constante porque no es de tipo integral o de enumeración"
-#: cp/semantics.c:2585
-#, fuzzy
+#: cp/semantics.c:2656
msgid "%qD cannot appear in a constant-expression"
-msgstr "`%D' no puede aparece en una expresion constante"
+msgstr "%qD no puede aparece en una expresion constante"
-#: cp/semantics.c:2593
-#, fuzzy
+#: cp/semantics.c:2664
msgid "use of namespace %qD as expression"
-msgstr "uso del espacio de nombres `%D' como una expresión"
+msgstr "uso del espacio de nombres %qD como una expresión"
-#: cp/semantics.c:2598
-#, fuzzy
+#: cp/semantics.c:2669
msgid "use of class template %qT as expression"
-msgstr "uso de la plantilla de clase `%T' como una expresión"
+msgstr "uso de la plantilla de clase %qT como una expresión"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
-#, fuzzy
+#: cp/semantics.c:2675
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
-msgstr "la petición por el miembro `%D' es ambigua en la red de herencia múltiple"
+msgstr "la petición por el miembro %qD es ambigua en la red de herencia múltiple"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr "uso de %s desde una función contenedora"
-#: cp/semantics.c:2668
-#, fuzzy
+#: cp/semantics.c:2751
msgid " %q#D declared here"
-msgstr " `%#D' declarado aquí"
+msgstr " %q#D declarado aquí"
-#: cp/semantics.c:2719
-#, fuzzy, c-format
+#: cp/semantics.c:2801
+#, c-format
msgid "type of %qE is unknown"
-msgstr "el tipo de '%E' es desconocido"
+msgstr "el tipo de %qE es desconocido"
-#: cp/tree.c:525
-#, fuzzy
+#: cp/tree.c:539
msgid "%qV qualifiers cannot be applied to %qT"
-msgstr "los calificadores `%V' no se pueden aplicar a `%T'"
+msgstr "los calificadores %qV no se pueden aplicar a %qT"
-#: cp/tree.c:1760
-#, fuzzy, c-format
+#: cp/tree.c:1740
+#, c-format
msgid "%qE attribute can only be applied to Java class definitions"
-msgstr "el atributo `%s' sólo se puede aplicar a definiciones de clases Java"
+msgstr "el atributo %qE sólo se puede aplicar a definiciones de clases Java"
-#: cp/tree.c:1789
-#, fuzzy, c-format
+#: cp/tree.c:1769
+#, c-format
msgid "%qE attribute can only be applied to class definitions"
-msgstr "el atributo `%s' sólo se puede aplicar a definiciones de clase"
+msgstr "el atributo %qE sólo se puede aplicar a definiciones de clase"
-#: cp/tree.c:1794
-#, fuzzy, c-format
+#: cp/tree.c:1774
+#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
-msgstr "`%s' es obsoleto; las vtables de g++ ahora son compatibles con COM por defecto"
+msgstr "%qE es obsoleto; las vtables de g++ ahora son compatibles con COM por defecto"
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "la init_priority solicitada no es una constante entera"
-#: cp/tree.c:1839
-#, fuzzy, c-format
+#: cp/tree.c:1819
+#, c-format
msgid "can only use %qE 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"
+msgstr "solo se puede usar el atributo %qE en definiciones de rango de fichero de objetos de tipo class"
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "la init_priority solicitada está fuera de rango"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr "la init_priority solicitada está reservada para uso interno"
-#: cp/tree.c:1867
-#, fuzzy, c-format
+#: cp/tree.c:1847
+#, c-format
msgid "%qE attribute is not supported on this platform"
-msgstr "el atributo `%s' no tiene soporte en esta plataforma"
+msgstr "el atributo %qE no tiene soporte en esta plataforma"
#: cp/typeck.c:434 cp/typeck.c:448 cp/typeck.c:541
-#, fuzzy
msgid "%s between distinct pointer types %qT and %qT lacks a cast"
-msgstr "%s entre diferentes tipos de punteros `%T' y `%T' carece de una conversión"
+msgstr "%s entre diferentes tipos de punteros %qT y %qT carece de una conversión"
#: cp/typeck.c:510
-#, fuzzy
msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
-msgstr "ISO C++ prohíbe %s entre punteros de tipo `void *' y punteros a funciones"
+msgstr "ISO C++ prohíbe %s entre punteros de tipo %<void *%> y punteros a funciones"
#: cp/typeck.c:561
-#, fuzzy
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
-msgstr "%s entre diferentes tipos de punteros a miembro `%T' y `%T' carece de una conversión"
+msgstr "%s entre diferentes tipos de punteros a miembro %qT y %qT carece de una conversión"
-#: cp/typeck.c:1250
-#, fuzzy, c-format
+#: cp/typeck.c:1239
+#, c-format
msgid "invalid application of %qs to a member function"
-msgstr "aplicación inválida de `%s' a una función miembro"
+msgstr "aplicación inválida de %qs a una función miembro"
-#: cp/typeck.c:1283
-#, fuzzy, c-format
+#: cp/typeck.c:1272
+#, c-format
msgid "invalid application of %qs to a bit-field"
-msgstr "aplicación inválida de `%s' a un campo de bits"
+msgstr "aplicación inválida de %qs a un campo de bits"
-#: cp/typeck.c:1288
-#, fuzzy, c-format
+#: cp/typeck.c:1277
+#, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
-msgstr "ISO C++ prohíbe la aplicación de `%s' a una expresión de tipo de función"
+msgstr "ISO C++ prohíbe la aplicación de %qs a una expresión de tipo de función"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
msgid "invalid use of non-static member function"
msgstr "uso inválido de una función miembro que no es static"
-#: cp/typeck.c:1510
-#, fuzzy
+#: cp/typeck.c:1481
msgid "deprecated conversion from string constant to %qT'"
-msgstr "conversión obsoleta de una constante de cadena a `%T'"
+msgstr "conversión obsoleta de una constante de cadena a %qT"
-#: cp/typeck.c:1624 cp/typeck.c:1923
-#, fuzzy
+#: cp/typeck.c:1592 cp/typeck.c:1882
msgid "request for member %qD in %qE, which is of non-class type %qT"
-msgstr "solicitud por el miembro `%D' en `%E', el cual es del tipo `%T' que no es clase"
+msgstr "solicitud por el miembro %qD en %qE, el cual es del tipo %qT que no es clase"
-#: cp/typeck.c:1651
-#, fuzzy, c-format
+#: cp/typeck.c:1619
+#, c-format
msgid "invalid use of nonstatic data member %qE"
-msgstr "uso inválido del dato miembro no static '%E'"
+msgstr "uso inválido del dato miembro no static %qE"
-#: cp/typeck.c:1703 cp/typeck.c:1731
-#, fuzzy
+#: cp/typeck.c:1671 cp/typeck.c:1699
msgid "invalid access to non-static data member %qD of NULL object"
-msgstr "acceso inválido a datos del miembro que no es static `%D' del objeto NULL"
+msgstr "acceso inválido a datos del miembro que no es static %qD del objeto NULL"
-#: cp/typeck.c:1706 cp/typeck.c:1733
-#, fuzzy
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
-msgstr "(tal vez se utilizó incorrectamente la macro `offsetof')"
+msgstr "(tal vez se utilizó incorrectamente la macro %<offsetof%>)"
-#: cp/typeck.c:1844
-#, fuzzy
+#: cp/typeck.c:1812
msgid "qualified type %qT does not match destructor name ~%qT"
-msgstr "el tipo calificado `%T' no coincide con el nombre del destructor `~%T'"
+msgstr "el tipo calificado %qT no coincide con el nombre del destructor ~%qT"
-#: cp/typeck.c:1850
-#, fuzzy
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
-msgstr "el tipo que se destruye es `%T', pero el destructor se refiere a `%T'"
+msgstr "el tipo que se destruye es %qT, pero el destructor se refiere a %qT"
-#: cp/typeck.c:1969
-#, fuzzy
+#: cp/typeck.c:1928
msgid "%<%D::%D%> is not a member of %qT"
-msgstr "`%D::%D' no es un miembro de `%T'"
+msgstr "%<%D::%D%> no es un miembro de %qT"
-#: cp/typeck.c:1980
-#, fuzzy
+#: cp/typeck.c:1939
msgid "%qT is not a base of %qT"
-msgstr "`%T' no es una base de `%T'"
+msgstr "%qT no es una base de %qT"
-#: cp/typeck.c:1999
-#, fuzzy
+#: cp/typeck.c:1958
msgid "%qD has no member named %qE"
-msgstr "'%D' no tiene un miembro llamado '%E'"
+msgstr "%qD no tiene un miembro llamado %qE"
-#: cp/typeck.c:2014
-#, fuzzy
+#: cp/typeck.c:1973
msgid "%qD is not a member template function"
-msgstr "`%D' no es una función plantilla miembro"
+msgstr "%qD 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:2121
-#, fuzzy
+#: cp/typeck.c:2080
msgid "%qT is not a pointer-to-object type"
-msgstr "`%T' no es de tipo puntero-a-objeto"
+msgstr "%qT no es de tipo puntero-a-objeto"
-#: cp/typeck.c:2146
-#, fuzzy, c-format
+#: cp/typeck.c:2105
+#, c-format
msgid "invalid use of %qs on pointer to member"
-msgstr "uso inválido de `%s' en puntero a miembro"
+msgstr "uso inválido de %qs en puntero a miembro"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "argumento de tipo inválido"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "falta subíndice en la referencia de la matriz"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ prohíbe el subíndice de una matriz de l-valores"
-#: cp/typeck.c:2268
-#, fuzzy
+#: cp/typeck.c:2227
msgid "subscripting array declared %<register%>"
-msgstr "se declaró el subíndice de la matriz como `register'"
+msgstr "se declaró el subíndice de la matriz como %<register%>"
-#: cp/typeck.c:2351
-#, fuzzy, c-format
+#: cp/typeck.c:2310
+#, c-format
msgid "object missing in use of %qE"
-msgstr "falta un objeto en el uso de `%E'"
+msgstr "falta un objeto en el uso de %qE"
-#: cp/typeck.c:2452
-#, fuzzy
+#: cp/typeck.c:2411
msgid "ISO C++ forbids calling %<::main%> from within program"
-msgstr "ISO C++ prohíbe la llamada `::main' dentro del mismo programa"
+msgstr "ISO C++ prohíbe la llamada %<::main%> dentro del mismo programa"
-#: cp/typeck.c:2477
-#, fuzzy
+#: cp/typeck.c:2436
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
-msgstr "se debe usar .* o ->* en la llamada a la función puntero-a-miembro en `%E (...)'"
+msgstr "se debe usar %<.*%> o %<->*%> en la llamada a la función puntero-a-miembro en %<%E (...)%>"
-#: cp/typeck.c:2491
-#, fuzzy, c-format
+#: cp/typeck.c:2450
+#, c-format
msgid "%qE cannot be used as a function"
-msgstr "no se puede usar `%E' como una función"
+msgstr "no se puede usar %qE como una función"
-#: cp/typeck.c:2570
-#, fuzzy
+#: cp/typeck.c:2529
msgid "too many arguments to %s %q+#D"
-msgstr "demasiados argumentos para %s `%+#D'"
+msgstr "demasiados argumentos para %s %q+#D"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "en este punto en el fichero"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "demasiados argumentos para la función"
-#: cp/typeck.c:2609
-#, fuzzy
+#: cp/typeck.c:2568
msgid "parameter %P of %qD has incomplete type %qT"
-msgstr "el parámetro %P de `%D' tiene el tipo incompleto `%T'"
+msgstr "el parámetro %P de %qD tiene el tipo incompleto %qT"
-#: cp/typeck.c:2612
-#, fuzzy
+#: cp/typeck.c:2571
msgid "parameter %P has incomplete type %qT"
-msgstr "el parámetro %P tiene el tipo incompleto `%T'"
+msgstr "el parámetro %P tiene el tipo incompleto %qT"
-#: cp/typeck.c:2676
-#, fuzzy
+#: cp/typeck.c:2632
msgid "too few arguments to %s %q+#D"
-msgstr "muy pocos argumentos para %s `%+#D'"
+msgstr "muy pocos argumentos para %s %q+#D"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "muy pocos argumentos para la función"
-#: cp/typeck.c:2828 cp/typeck.c:2838
-#, fuzzy
+#: cp/typeck.c:2784 cp/typeck.c:2794
msgid "assuming cast to type %qT from overloaded function"
-msgstr "asumiendo la conversión al tipo `%T' desde la función sobrecargada"
+msgstr "asumiendo la conversión al tipo %qT desde la función sobrecargada"
-#: cp/typeck.c:2899
-#, fuzzy
+#: cp/typeck.c:2855
msgid "division by zero in %<%E / 0%>"
-msgstr "división por cero en `%E / 0'"
+msgstr "división por cero en %<%E / 0%>"
-#: cp/typeck.c:2901
-#, fuzzy
+#: cp/typeck.c:2857
msgid "division by zero in %<%E / 0.%>"
-msgstr "división por cero en `%E / 0.'"
+msgstr "división por cero en %<%E / 0.%>"
-#: cp/typeck.c:2935
-#, fuzzy
+#: cp/typeck.c:2891
msgid "division by zero in %<%E %% 0%>"
-msgstr "división por cero en `%E %% 0'"
+msgstr "división por cero en %<%E %% 0%>"
-#: cp/typeck.c:2937
-#, fuzzy
+#: cp/typeck.c:2893
msgid "division by zero in %<%E %% 0.%>"
-msgstr "división por cero en `%E %% 0.'"
+msgstr "división por cero en %<%E %% 0.%>"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "la cuenta de rotación %s es negativa"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "la cuenta de rotación %s >= anchura del tipo"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ prohíbe la comparación entre puntero y entero"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "comparación sin orden en argumento de coma no flotante"
-#: cp/typeck.c:3196
-#, fuzzy
+#: cp/typeck.c:3152
msgid "invalid operands of types %qT and %qT to binary %qO"
-msgstr "operadores inválidos de tipos `%T' y `%T' para el binario `%O'"
+msgstr "operadores inválidos de tipos %qT y %qT para el binario %qO"
-#: cp/typeck.c:3360
-#, fuzzy
+#: cp/typeck.c:3316
msgid "comparison between types %q#T and %q#T"
-msgstr "comparación entre los tipos `%#T' y `%#T'"
+msgstr "comparación entre los tipos %q#T y %q#T"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "comparación entre expresiones enteras signed y unsigned"
@@ -17984,705 +16858,602 @@ msgstr "comparación entre expresiones enteras signed y unsigned"
#. 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr "se usó NULL en la aritmética"
-#: cp/typeck.c:3533
-#, fuzzy
+#: cp/typeck.c:3489
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
-msgstr "ISO C++ prohíbe el uso de un puntero 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:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "ISO C++ prohíbe el uso de un puntero a una función en la sustracción"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "ISO C++ prohíbe el uso de un puntero a un método en la sustracción"
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "uso inválido de un puntero a un tipo incompleto en aritmética de punteros"
-#: cp/typeck.c:3625
-#, fuzzy, c-format
+#: cp/typeck.c:3581
+#, c-format
msgid "invalid use of %qE 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."
+msgstr "uso inválido de %qE para formar una función puntero a miembro. Use un identificador calificado."
-#: cp/typeck.c:3632
-#, fuzzy, c-format
+#: cp/typeck.c:3588
+#, c-format
msgid "parenthesis around %qE 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"
+msgstr "no se pueden usar paréntesis alrededor de %qE para formar una función puntero a miembro"
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "tomando la dirección del temporal"
# Esta cadena solamente funciona bien en inglés. cfuga
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ prohíbe %sing un enum"
-#: cp/typeck.c:3901
-#, fuzzy
+#: cp/typeck.c:3857
msgid "cannot %s a pointer to incomplete type %qT"
-msgstr "no se puede %s un puntero a un tipo incompleto `%T'"
+msgstr "no se puede %s un puntero a un tipo incompleto %qT"
-#: cp/typeck.c:3907
-#, fuzzy
+#: cp/typeck.c:3863
msgid "ISO C++ forbids %sing a pointer of type %qT"
-msgstr "ISO C++ prohíbe el %s un puntero de tipo `%T'"
+msgstr "ISO C++ prohíbe el %s un puntero de tipo %qT"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
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:3967
-#, fuzzy
+#: cp/typeck.c:3923
msgid "invalid use of %<--%> on bool variable %qD"
-msgstr "uso inválido de `--' en la variable booleana `%D'"
+msgstr "uso inválido de %<--%> en la variable booleana %qD"
#. ARM $3.4
-#: cp/typeck.c:3996
-#, fuzzy
+#: cp/typeck.c:3952
msgid "ISO C++ forbids taking address of function %<::main%>"
-msgstr "ISO C++ prohíbe 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:4050
-#, fuzzy
+#: cp/typeck.c:4006
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
-msgstr "ISO C++ prohíbe tomar la dirección de una función miembro no estática sin calificar o entre paréntesis para formar un puntero 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 o entre paréntesis para formar un puntero a la función miembro. Como %<&%T::%D%>"
-#: cp/typeck.c:4055
-#, fuzzy
+#: cp/typeck.c:4011
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++ prohíbe tomar la dirección de una función miembro limitada para formar un puntero 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:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr "ISO C++ prohíbe tomar la dirección de una conversión a una expresión no l-valuada"
-#: cp/typeck.c:4135
-#, fuzzy
+#: cp/typeck.c:4091
msgid "attempt to take address of bit-field structure member %qD"
-msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%D'"
+msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits %qD"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
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:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr "tomando la dirección de la expresión limitada puntero-a-miembro"
-#: cp/typeck.c:4269
-#, fuzzy
+#: cp/typeck.c:4232
msgid "cannot create pointer to reference member %qD"
-msgstr "no se puede crear un puntero al miembro referencia `%D'"
+msgstr "no se puede crear un puntero al miembro referencia %qD"
-#: cp/typeck.c:4332
-#, fuzzy
+#: cp/typeck.c:4295
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"
+msgstr "no se puede tomar la dirección de %<this%> que es una expresión r-valuada"
-#: cp/typeck.c:4355
-#, fuzzy
+#: cp/typeck.c:4318
msgid "address of explicit register variable %qD requested"
-msgstr "se solicitó la dirección de la variable register `%s'"
+msgstr "se solicitó la dirección de la variable register %qD"
-#: cp/typeck.c:4360
-#, fuzzy
+#: cp/typeck.c:4323
msgid "address requested for %qD, which is declared %<register%>"
-msgstr "se solicitó la dirección de `%D', el cual se declaró como `register'"
+msgstr "se solicitó la dirección de %qD, el cual se declaró como %<register%>"
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, c-format
msgid "%s expression list treated as compound expression"
msgstr "se trata la lista de expresiones %s como una expresión compuesta"
-#: cp/typeck.c:4502
-#, fuzzy
+#: cp/typeck.c:4464
msgid "%s from type %qT to type %qT casts away constness"
-msgstr "%s del tipo `%T' al tipo `%T' proscribe la constancia"
+msgstr "%s del tipo %qT al tipo %qT proscribe la constancia"
-#: cp/typeck.c:4800
-#, fuzzy
+#: cp/typeck.c:4761
msgid "invalid static_cast from type %qT to type %qT"
-msgstr "static_cast inválido del tipo `%T' al tipo `%T'"
+msgstr "static_cast inválido del tipo %qT al tipo %qT"
-#: cp/typeck.c:4822
-#, fuzzy
+#: cp/typeck.c:4783
msgid "converting from %qT to %qT"
-msgstr "convirtiendo de `%T' a `%T'"
+msgstr "convirtiendo de %qT a %qT"
-#: cp/typeck.c:4867
-#, fuzzy
+#: cp/typeck.c:4828
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
-msgstr "reinterpret_cast inválido de una expresión valor-r del tipo `%T' al tipo `%T'"
+msgstr "conversión inválida de una expresión valor-r del tipo %qT al tipo %qT"
-#: cp/typeck.c:4926
-#, fuzzy
+#: cp/typeck.c:4887
msgid "cast from %qT to %qT loses precision"
-msgstr "reinterpret_cast de `%T' a `%T' pierde precisión"
+msgstr "la conversión de %qT a %qT pierde precisión"
-#: cp/typeck.c:4954
-#, fuzzy
+#: cp/typeck.c:4912
msgid "cast from %qT to %qT increases required alignment of target type"
-msgstr "la conversión de `%T' a `%T' incrementa la alineación requerida del tipo del destino"
+msgstr "la conversión de %qT a %qT incrementa la alineación requerida del tipo del destino"
#. Only issue a warning, as we have always supported this
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ISO C++ prohíbe la conversión entre entre puntero a función y puntero a objeto"
-#: cp/typeck.c:4979
-#, fuzzy
+#: cp/typeck.c:4937
msgid "invalid cast from type %qT to type %qT"
-msgstr "const_cast inválido del tipo `%T' al tipo `%T'"
+msgstr "conversión inválida del tipo %qT al tipo %qT"
-#: cp/typeck.c:5035
-#, fuzzy
+#: cp/typeck.c:4993
msgid "invalid use of const_cast with type %qT, 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 puntero, referencia, ni un tipo puntero-a-datos-miembros"
+msgstr "uso inválido de const_cast con tipo %qT, que no es puntero, referencia, ni un tipo puntero-a-datos-miembros"
-#: cp/typeck.c:5044
-#, fuzzy
+#: cp/typeck.c:5002
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
-msgstr "uso inválido de const_cast con tipo `%T', el cual es un puntero o referencia a un tipo de función"
+msgstr "uso inválido de const_cast con tipo %qT, el cual es un puntero o referencia a un tipo de función"
-#: cp/typeck.c:5066
-#, fuzzy
+#: cp/typeck.c:5024
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
-msgstr "const_cast inválido de un valor-r de tipo `%T' al tipo `%T'"
+msgstr "const_cast inválido de un valor-r de tipo %qT al tipo %qT"
-#: cp/typeck.c:5109
-#, fuzzy
+#: cp/typeck.c:5067
msgid "invalid const_cast from type %qT to type %qT"
-msgstr "const_cast inválido del tipo `%T' al tipo `%T'"
+msgstr "const_cast inválido del tipo %qT al tipo %qT"
-#: cp/typeck.c:5177 cp/typeck.c:5182
-#, fuzzy
+#: cp/typeck.c:5135 cp/typeck.c:5140
msgid "ISO C++ forbids casting to an array type %qT"
-msgstr "ISO C++ prohíbe la conversión a un tipo de matriz `%T'"
+msgstr "ISO C++ prohíbe la conversión a un tipo de matriz %qT"
-#: cp/typeck.c:5190
-#, fuzzy
+#: cp/typeck.c:5148
msgid "invalid cast to function type %qT"
-msgstr "conversión inválida al tipo de función `%T'"
+msgstr "conversión inválida al tipo de función %qT"
-#: cp/typeck.c:5411
-#, fuzzy
+#: cp/typeck.c:5364
msgid " in evaluation of %<%Q(%#T, %#T)%>"
-msgstr " en la evaluación de `%Q(%#T, %#T)'"
+msgstr " en la evaluación de %<%Q(%#T, %#T)%>"
-#: cp/typeck.c:5480
-#, fuzzy
+#: cp/typeck.c:5433
msgid "incompatible types in assignment of %qT to %qT"
-msgstr "tipos incompatible en la asignación de `%T' a `%T'"
+msgstr "tipos incompatible en la asignación de %qT a %qT"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ prohíbe la asignación de matrices"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " en la conversión del puntero a función miembro"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr " en la conversión del puntero a miembro"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
-#, fuzzy
+#: cp/typeck.c:5568 cp/typeck.c:5584
msgid "pointer to member cast via virtual base %qT"
-msgstr "puntero a la conversión miembro a través de la base virtual `%T'"
+msgstr "puntero a la conversión miembro a través de la base virtual %qT"
-#: cp/typeck.c:5634
-#, fuzzy
+#: cp/typeck.c:5587
msgid "pointer to member conversion via virtual base %qT"
-msgstr "puntero a la conversión miembro a través de la base virtual `%T'"
+msgstr "puntero a la conversión miembro a través de la base virtual %qT"
-#: cp/typeck.c:5707
-#, fuzzy
+#: cp/typeck.c:5660
msgid "invalid conversion to type %qT from type %qT"
-msgstr "conversión inválida del tipo `%T' a partir del tipo `%T'"
-
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "pasando NULL usado para el no puntero %s %P de `%D'"
-
-#: cp/typeck.c:5874
-#, fuzzy
-msgid "%s to non-pointer type %qT from NULL"
-msgstr "%s al tipo `%T' que no es puntero desde NULL"
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "pasando `%T' para %s %P de `%D'"
-
-#: cp/typeck.c:5885
-#, fuzzy
-msgid "%s to %qT from %qT"
-msgstr "%s a `%T' desde `%T'"
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "pasando el valor negativo `%E' para %s %P de `%D'"
-
-#: cp/typeck.c:5897
-#, fuzzy
-msgid "%s of negative value %qE to %qT"
-msgstr "%s de valor negatio `%E' a `%T'"
-
-#: cp/typeck.c:5983
-#, fuzzy
+msgstr "conversión inválida del tipo %qT a partir del tipo %qT"
+
+#: cp/typeck.c:5875
msgid "cannot convert %qT to %qT for argument %qP to %qD"
-msgstr "no se puede convertir `%T' a `%T' para el argumento `%P' para `%D'"
+msgstr "no se puede convertir %qT a %qT para el argumento %qP para %qD"
-#: cp/typeck.c:5986
-#, fuzzy
+#: cp/typeck.c:5878
msgid "cannot convert %qT to %qT in %s"
-msgstr "no se puede convertir `%T' a `%T' en %s"
+msgstr "no se puede convertir %qT a %qT en %s"
-#: cp/typeck.c:6062 cp/typeck.c:6064
-#, fuzzy
+#: cp/typeck.c:5951 cp/typeck.c:5953
msgid "in passing argument %P of %q+D"
-msgstr "en el paso del argumento %P de `%+D'"
+msgstr "en el paso del argumento %P de %q+D"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "devolviendo la referencia al temporal"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "se devolvió una referencia a un valor que no es l-valor"
-#: cp/typeck.c:6133
-#, fuzzy
+#: cp/typeck.c:6022
msgid "reference to local variable %qD returned"
-msgstr "se devolvió una referencia a la variable local `%D'"
+msgstr "se devolvió una referencia a la variable local %qD"
-#: cp/typeck.c:6136
-#, fuzzy
+#: cp/typeck.c:6025
msgid "address of local variable %qD returned"
-msgstr "se devolvió la dirección de la variable local `%D'"
+msgstr "se devolvió la dirección de la variable local %qD"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "devolviendo un valor de un constructor"
-#: cp/typeck.c:6200
-#, fuzzy
+#: cp/typeck.c:6089
msgid "return-statement with no value, in function returning %qT"
-msgstr "declaración return sin valores, en una función que devuelve '%T'"
+msgstr "declaración return sin valores, en una función que devuelve %qT"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
msgid "return-statement with a value, in function returning 'void'"
msgstr "declaración return con un valor, en una función que devuelve 'void'"
-#: cp/typeck.c:6248
-#, fuzzy
+#: cp/typeck.c:6137
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)"
+msgstr "%<operator new%> no debe regresar NULL a menos que se declare %<throw()%> (o -fcheck-new esté en efecto)"
#: cp/typeck2.c:52
-#, fuzzy
msgid "type %qT is not a base type for type %qT"
-msgstr "el tipo `%T' no es un tipo base para el tipo `%T'"
+msgstr "el tipo %qT no es un tipo base para el tipo %qT"
#: cp/typeck2.c:292
-#, fuzzy
msgid "cannot declare variable %q+D to be of abstract type %qT"
-msgstr "no se puede declarar que la variable `%D' sea de tipo `%T'"
+msgstr "no se puede declarar que la variable %q+D sea del tipo abstracto %qT"
#: cp/typeck2.c:295
-#, fuzzy
msgid "cannot declare parameter %q+D to be of abstract type %qT"
-msgstr "no se puede declarar que el parámetro `%D' sea de tipo `%T'"
+msgstr "no se puede declarar que el parámetro %q+D sea del tipo abstracto %qT"
#: cp/typeck2.c:298
-#, fuzzy
msgid "cannot declare field %q+D to be of abstract type %qT"
-msgstr "no se puede declarar que el campo `%D' sea de tipo `%T'"
+msgstr "no se puede declarar que el campo %q+D sea de tipo abstracto %qT"
#: cp/typeck2.c:302
-#, fuzzy
msgid "invalid abstract return type for member function %q+#D"
-msgstr "tipo de devolución inválido para la función miembro `%#D'"
+msgstr "tipo abstracto de devolución inválido para la función miembro %q+#D"
#: cp/typeck2.c:305
-#, fuzzy
msgid "invalid abstract return type for function %q+#D"
-msgstr "tipo de devolución inválido para la función `%#D'"
+msgstr "tipo abstracto de devolución inválido para la función %q+#D"
#. Here we do not have location information, so use error instead
#. of cp_error_at.
#: cp/typeck2.c:310
-#, fuzzy
msgid "invalid abstract type %qT for %qE"
-msgstr "tipo de parámetro `%T' inválido"
+msgstr "tipo abstracto %qT inválido para %qE"
#: cp/typeck2.c:312
-#, fuzzy
msgid "invalid abstract type for %q+D"
-msgstr "tipo de devolución covariante inválido para `%#D'"
+msgstr "tipo abstracto inválido para %q+D"
#: cp/typeck2.c:315
-#, fuzzy
msgid "cannot allocate an object of abstract type %qT"
-msgstr "no se puede asignar un objeto de tipo `%T'"
+msgstr "no se puede asignar un objeto de tipo abstracto %qT"
#: cp/typeck2.c:323
-#, fuzzy
msgid "%J because the following virtual functions are pure within %qT:"
-msgstr " porque las siguientes funciones virtual son abstractas:"
+msgstr "%J porque las siguientes funciones virtual son puras en %qT:"
#: cp/typeck2.c:327
-#, fuzzy
msgid "%J\t%#D"
-msgstr "\t%#D"
+msgstr "%J\t%#D"
#: cp/typeck2.c:334
-#, fuzzy
msgid "%J since type %qT has pure virtual functions"
-msgstr " ya que el tipo `%T' tiene funciones virtuales abstractas"
+msgstr "%J ya que el tipo %qT tiene funciones virtuales puras"
-#: cp/typeck2.c:581
-#, fuzzy
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
-msgstr "se usó la sintaxis de constructor, pero no se declaró un constructor para el tipo `%T'"
+msgstr "se usó la sintaxis de constructor, pero no se declaró un constructor para el tipo %qT"
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "no se pueden inicializar matrices usando esta sintaxis"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "inicializando una matriz con una lista de parámetros"
# no ancha -> angosta? cfuga
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "matriz de enteros inicializada con una cadena no ancha"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "inicializador para una variable escalar requiere un elemento"
-#: cp/typeck2.c:749
-#, fuzzy
+#: cp/typeck2.c:750
msgid "braces around scalar initializer for %qT"
-msgstr "llaves alrededor del inicializador para `%T'"
+msgstr "llaves alrededor del inicializador escalar para %qT"
-#: cp/typeck2.c:752
-#, fuzzy
+#: cp/typeck2.c:753
msgid "ignoring extra initializers for %qT"
-msgstr "ignorando los inicializadores extra para `%T'"
+msgstr "ignorando los inicializadores extra para %qT"
-#: cp/typeck2.c:764
-#, fuzzy
+#: cp/typeck2.c:765
msgid "variable-sized object of type %qT may not be initialized"
-msgstr "un objeto de tamaño variable de tipo `%T' no puede ser inicializado"
+msgstr "un objeto de tamaño variable de tipo %qT no puede ser inicializado"
-#: cp/typeck2.c:775
-#, fuzzy
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
-msgstr "el subobjeto de tipo `%T' debe ser inicializado por un constructor, no por `%E'"
+msgstr "el subobjeto de tipo %qT debe ser inicializado por un constructor, no por %qE"
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "el agregado tiene un inicializador con llaves parciales"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "inicializadores etiquetados como no triviales"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr "inicializador no-vacío para una matriz de elementos vacíos"
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
-#, fuzzy
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
msgid "missing initializer for member %qD"
-msgstr "falta el inicializador para el miembro `%D'"
+msgstr "falta el inicializador para el miembro %qD"
-#: cp/typeck2.c:1012
-#, fuzzy
+#: cp/typeck2.c:1013
msgid "uninitialized const member %qD"
-msgstr "miembro const `%D' sin inicializar"
+msgstr "miembro const %qD sin inicializar"
-#: cp/typeck2.c:1014
-#, fuzzy
+#: cp/typeck2.c:1015
msgid "member %qD with uninitialized const fields"
-msgstr "miembro `%D' con campos const sin inicializar"
+msgstr "miembro %qD con campos const sin inicializar"
-#: cp/typeck2.c:1016
-#, fuzzy
+#: cp/typeck2.c:1017
msgid "member %qD is uninitialized reference"
-msgstr "el miembro `%D' es una referencia sin inicializar"
+msgstr "el miembro %qD es una referencia sin inicializar"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr "valor de índice en lugar del nombre del campo en el inicializador de union"
-#: cp/typeck2.c:1075
-#, fuzzy
+#: cp/typeck2.c:1076
msgid "no field %qD in union being initialized"
-msgstr "no existe el campo `%D' en la union que se está inicializando"
+msgstr "no existe el campo %qD en la union que se está inicializando"
-#: cp/typeck2.c:1083
-#, fuzzy
+#: cp/typeck2.c:1084
msgid "union %qT with no named members cannot be initialized"
-msgstr "no se puede inicializar la union `%T' sin miembros nombrados"
+msgstr "no se puede inicializar la union %qT sin miembros nombrados"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "exceso de elementos en el inicializador agregado"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "se detectó una delegación de puntero circular"
-#: cp/typeck2.c:1245
-#, fuzzy
+#: cp/typeck2.c:1240
msgid "base operand of %<->%> has non-pointer type %qT"
-msgstr "el operando base de `->' tiene el tipo `%T' que no es puntero"
+msgstr "el operando base de %<->%> tiene el tipo %qT que no es puntero"
-#: cp/typeck2.c:1269
-#, fuzzy
+#: cp/typeck2.c:1264
msgid "result of %<operator->()%> yields non-pointer result"
-msgstr "el resultado de `operator->()' produce un resultado que no es puntero"
+msgstr "el resultado de %<operator->()%> produce un resultado que no es puntero"
-#: cp/typeck2.c:1271
-#, fuzzy
+#: cp/typeck2.c:1266
msgid "base operand of %<->%> is not a pointer"
-msgstr "el operando base de `->' no es un puntero"
+msgstr "el operando base de %<->%> no es un puntero"
-#: cp/typeck2.c:1295
-#, fuzzy
+#: cp/typeck2.c:1290
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
-msgstr "no se puede usar `%E' como un puntero miembro, porque es de tipo `%T'"
+msgstr "no se puede usar %qE como un puntero miembro, porque es de tipo %qT"
-#: cp/typeck2.c:1304
-#, fuzzy
+#: cp/typeck2.c:1299
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
-msgstr "no se puede aplicar el puntero a miembro `%E' a `%E', el cual es del tipo no agregado `%T'"
+msgstr "no se puede aplicar el puntero a miembro %qE a %qE, el cual es del tipo no agregado %qT"
-#: cp/typeck2.c:1326
-#, fuzzy
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
-msgstr "el tipo de miembro `%T::' es incompatible con el tipo objeto `%T'"
+msgstr "el tipo de puntero a miembro %qT es incompatible con el tipo objeto %qT"
-#: cp/typeck2.c:1549
-#, fuzzy
+#: cp/typeck2.c:1544
msgid "call to function %qD which throws incomplete type %q#T"
-msgstr "llamada a la función `%D' la cual arroja el tipo incompleto `%#T'"
+msgstr "llamada a la función %qD la cual arroja el tipo incompleto %q#T"
-#: cp/typeck2.c:1552
-#, fuzzy
+#: cp/typeck2.c:1547
msgid "call to function which throws incomplete type %q#T"
-msgstr "llamada a una función la cual arroja el tipo incompleto `%#T'"
+msgstr "llamada a una función la cual arroja el tipo incompleto %q#T"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr "%s es obsoleto, por favor vea la documentación para más detalles"
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
-msgstr ""
+msgstr "Tipo inesperado en truthvalue_conversion"
-#: fortran/f95-lang.c:296
-#, fuzzy, c-format
+#: fortran/f95-lang.c:295
+#, c-format
msgid "can't open input file: %s"
-msgstr "no se puede abrir el fichero de salida `%s'"
+msgstr "no se puede abrir el fichero de entrada: %s"
-#: fortran/f95-lang.c:623
-#, fuzzy, c-format
+#: fortran/f95-lang.c:622
+#, c-format
msgid "global register variable %qs used in nested function"
-msgstr "se usó la variable de registro global `%s' en funciones anidadas"
+msgstr "se usó la variable de registro global %qs en la función anidada"
-#: fortran/f95-lang.c:627
-#, fuzzy, c-format
+#: fortran/f95-lang.c:626
+#, c-format
msgid "register variable %qs used in nested function"
-msgstr "se usó la variable de registro `%s' en funciones anidadas"
+msgstr "se usó la variable de registro %qs en la función anidada"
-#: fortran/f95-lang.c:634
-#, fuzzy, c-format
+#: fortran/f95-lang.c:633
+#, c-format
msgid "address of global register variable %qs requested"
-msgstr "se solicitó la dirección de la variable de registro global `%s'"
+msgstr "se solicitó la dirección de la variable de registro global %qs"
-#: fortran/f95-lang.c:652
-#, fuzzy, c-format
+#: fortran/f95-lang.c:651
+#, c-format
msgid "address of register variable %qs requested"
-msgstr "se solicitó la dirección de la variable register `%s'"
+msgstr "se solicitó la dirección de la variable de registro %qs"
#: fortran/gfortranspec.c:231
-#, fuzzy, c-format
+#, c-format
msgid "overflowed output arg list for '%s'"
-msgstr "lista de argumentos de salida desbordada para `%s'"
+msgstr "lista de argumentos de salida desbordada para '%s'"
#: fortran/gfortranspec.c:375
-#, fuzzy, c-format
+#, c-format
msgid "argument to '%s' missing"
-msgstr "falta el argumento para `%s'"
+msgstr "falta el argumento para '%s'"
#: fortran/gfortranspec.c:379
msgid "no input files; unwilling to write output files"
msgstr "no hay ficheros de entrada; incapaz de escribir ficheros de salida"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
-msgstr ""
+msgstr "Posible bicho del frente: no se expandió el constructor de la matriz"
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
-msgstr ""
+msgstr "Posible bicho del frente: Tamaño de matriz diferido sin atributo pointer o allocatable."
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
-msgstr ""
+msgstr "¿¿¿subíndice del vector escalar???"
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
-msgstr ""
+msgstr "tipo de expresión errónea durante la caminata (%d)"
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
-msgstr ""
+msgstr "gfc_conv_constant_to_tree(): tipo inválido: %s"
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
-msgstr ""
+msgstr "variable intrínsica que no es un procedimiento"
-#: fortran/trans-decl.c:1899
-#, fuzzy
+#: fortran/trans-decl.c:1893
msgid "Function does not return a value"
-msgstr "la función no devuelve valores de tipo cadena"
+msgstr "La función no devuelve un valor"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
-msgstr ""
+msgstr "símbolo de módulo %s en un espacio de nombres incorrecto"
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
-msgstr ""
+msgstr "ya existe la declaración del extremo trasero para la variable de módulo %s"
-#: fortran/trans-decl.c:2094
-#, fuzzy, c-format
+#: fortran/trans-decl.c:2088
+#, c-format
msgid "unused parameter %qs"
-msgstr "%Jparámetro '%D' sin uso"
+msgstr "parámetro %qs sin uso"
-#: fortran/trans-decl.c:2099
-#, fuzzy, c-format
+#: fortran/trans-decl.c:2093
+#, c-format
msgid "unused variable %qs"
-msgstr "%Jvariable '%D' sin uso"
+msgstr "variable %qs sin uso"
-#: fortran/trans-decl.c:2243
-#, fuzzy
+#: fortran/trans-decl.c:2234
msgid "Function return value not set"
-msgstr "la función devuelve un agregado"
+msgstr "La función devuelve un valor no establecido"
-#: fortran/trans-expr.c:950
-#, fuzzy
+#: fortran/trans-expr.c:949
msgid "Unknown intrinsic op"
-msgstr "modo insn desconocido"
+msgstr "Operador intrínseco desconocido"
-#: fortran/trans-intrinsic.c:585
-#, fuzzy, c-format
+#: fortran/trans-intrinsic.c:583
+#, c-format
msgid "Intrinsic function %s(%d) not recognized"
-msgstr "no se reconoce el lenguaje %s"
+msgstr "No se reconoce la función intrínseca %s(%d)"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
-msgstr ""
+msgstr "Lista de nombres de tipo base ES errónea (%d)"
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
-msgstr ""
+msgstr "No se puede especificar un formato con una lista de nombres"
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
-msgstr ""
+msgstr "Tipo base ES erróneo (%d)"
#: fortran/trans-types.c:189
msgid "integer kind=8 not available for -i8 option"
-msgstr ""
+msgstr "el entero kind=8 no está disponible para la opción -i8"
#: fortran/trans-types.c:201
msgid "real kind=8 not available for -r8 option"
-msgstr ""
+msgstr "el real kind=8 no está disponible para la opción -r8"
#: fortran/trans-types.c:916
-#, fuzzy
msgid "Array element size too big"
-msgstr "Valor del elementro de la matriz en %0 está fuera del rango definido"
+msgstr "El tamaño del elemento de la matriz es demasiado grande"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
-msgstr ""
+msgstr "gfc_trans_code(): Código de declaración erróneo"
#. I changed this from sorry(...) because it should not return.
#. TODO: Remove gfc_todo_error before releasing version 1.0.
#: fortran/trans.h:564
msgid "gfc_todo: Not Implemented: "
-msgstr ""
+msgstr "gfc_todo: Sin Implementar: "
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
-msgstr ""
+msgstr "No se puede reasignar un valor a la variable final %qs"
-#: java/check-init.c:513 java/parse.h:377
-#, fuzzy, c-format
+#: java/check-init.c:519 java/parse.h:377
+#, c-format
msgid "Variable %qs may not have been initialized"
-msgstr "%Jel campo final '%D' puede no haber sido inicializado"
+msgstr "La variable %qs puede no haber sido inicializada"
-#: java/check-init.c:529
-#, fuzzy, c-format
+#: java/check-init.c:535
+#, c-format
msgid "variable %qs may not have been initialized"
-msgstr "%Jel campo final '%D' puede no haber sido inicializado"
+msgstr "la variable %qs puede no haber sido inicializada"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, 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:1013
-#, fuzzy
+#: java/check-init.c:1026
msgid "%Jfinal field %qD may not have been initialized"
-msgstr "%Jel campo final '%D' puede no haber sido inicializado"
+msgstr "%Jel campo final %qD puede no haber sido inicializado"
#: java/class.c:745
msgid "bad method signature"
@@ -18715,395 +17486,393 @@ msgstr "%Jmétodo abstracto en una clase que no es abstracta"
msgid "%Jnon-static method '%D' overrides static method"
msgstr "%Jel método '%D' que no es estático anula al método estático"
-#: java/decl.c:1203
+#: java/decl.c:1260
msgid "%J'%D' used prior to declaration"
msgstr "%Jse usa `%D' previo a la declaración"
-#: java/decl.c:1244
-#, fuzzy, c-format
+#: java/decl.c:1301
+#, c-format
msgid "declaration of %qs shadows a parameter"
-msgstr "la declaración de \"%s\" oscurece un parámetro"
+msgstr "la declaración de %qs oscurece un parámetro"
-#: java/decl.c:1247
-#, fuzzy, c-format
+#: java/decl.c:1304
+#, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
-msgstr "la declaración de `%s' oscurece un símbolo de la lista de parámetros"
+msgstr "la declaración de %qs oscurece un símbolo de la lista de parámetros"
-#: java/decl.c:1575
+#: java/decl.c:1632
msgid "%Jlabel '%D' used but not defined"
msgstr "%Jse usa la etiqueta '%D' pero no está definida"
-#: java/decl.c:1580
+#: java/decl.c:1637
msgid "%Jlabel '%D' defined but not used"
msgstr "%Jse define la etiqueta '%D' pero no se usa"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr "%JEn %D: variable sobreescrita y rangos de excepción en %d"
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr "tipo erróneo en la información de parámetros de depuración"
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr "%Jrango de PC erróneo para la información de depuración para '%D' local"
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
-msgstr ""
+msgstr "se necesita insertar revisión en tiempo de ejecución para %s"
-#: java/expr.c:500 java/expr.c:547
-#, fuzzy, c-format
+#: java/expr.c:501 java/expr.c:548
+#, c-format
msgid "assert: %s is assign compatible with %s"
-msgstr "-march=%s no es compatible con la ABI seleccionada"
+msgstr "assert: %s es compatible para asignación con %s"
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr "desbordamiento de la pila - operación dup*"
-#: java/expr.c:1699
-#, fuzzy, c-format
+#: java/expr.c:1703
+#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
-msgstr "la referencia `%s' es ambigua: aparece en la interfaz `%s' y en la interfaz `%s'"
+msgstr "la referencia %qs es ambigua: aparece en la interfaz %qs y en la interfaz %qs"
-#: java/expr.c:1727
-#, fuzzy, c-format
+#: java/expr.c:1731
+#, c-format
msgid "field %qs not found"
-msgstr "no se encuentra el campo `%s'"
+msgstr "no se encuentra el campo %qs"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "no se encuentra el método '%s' en la clase"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "no se encontró la clase '%s'"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, 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:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr "invokestatic en un método no estático"
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr "invokestatic en un método abstracto"
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr "invoke[no-estático] en un método estático"
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "falta el campo '%s' en '%s'"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "no coincide la firma para el campo '%s' en '%s'"
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "%Jla asignación para el campo final '%D' no está en el campo de la clase"
-#: java/expr.c:2742
-#, fuzzy
+#: java/expr.c:2746
msgid "%Jassignment to final static field %qD not in class initializer"
-msgstr "%Jla asignación para el campo final estático '%D' no está en el inicializador de la clase"
+msgstr "%Jla asignación para el campo final estático %qD no está en el inicializador de la clase"
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "%Jla asignación al campo final '%D' no está en el constructor"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "PC inválido en la tabla de números de línea"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "bytecode inalcanzable desde %d hasta antes de %d"
-#: java/expr.c:3037
+#: java/expr.c:3043
#, 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:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr "no se reconoce la sub-instrucción ancha"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
-msgstr ""
+msgstr "el campo estático tiene el mismo nombre que el método"
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
-#, fuzzy, c-format
+#: java/gjavah.c:899
+#, c-format
msgid "ignored method '"
-msgstr "no hay un método `%T::%D'"
+msgstr "se ignora el método '"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
-msgstr ""
+msgstr "' marcado como virtual\n"
-#: java/gjavah.c:1241
-#, fuzzy, c-format
+#: java/gjavah.c:1249
+#, c-format
msgid "couldn't find class %s"
-msgstr "no se puede encontrar la clase `%s'"
+msgstr "no se puede encontrar la clase %s"
-#: java/gjavah.c:1248
-#, fuzzy, c-format
+#: java/gjavah.c:1256
+#, c-format
msgid "parse error while reading %s"
-msgstr "error al leer %s desde el fichero zip"
+msgstr "error de decodificación al leer %s"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
-#, fuzzy, c-format
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
+#, c-format
msgid "unparseable signature: '%s'"
-msgstr "no se puede evaluar el fichero '%s'"
+msgstr "no se puede decodificar la firma: '%s'"
-#: java/gjavah.c:2041
-#, fuzzy
+#: java/gjavah.c:2049
msgid "Not a valid Java .class file."
-msgstr "no es un fichero .class de Java válido"
+msgstr "No es un fichero .class de Java válido."
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr "error mientras se analizaba el conjunto de constantes"
-#: java/gjavah.c:2055
-#, fuzzy, c-format
+#: java/gjavah.c:2063
+#, c-format
msgid "error in constant pool entry #%d"
-msgstr "error en la entrada de #%d del conjunto de constantes\n"
+msgstr "error en la entrada #%d del conjunto de constantes"
-#: java/gjavah.c:2198
-#, fuzzy
+#: java/gjavah.c:2206
msgid "class is of array type\n"
-msgstr "la conversión especifica el tipo matriz"
+msgstr "la clase es de tipo matriz\n"
-#: java/gjavah.c:2206
-#, fuzzy
+#: java/gjavah.c:2214
msgid "base class is of array type"
-msgstr "la conversión especifica el tipo matriz"
+msgstr "la clase base es de tipo matriz"
-#: java/gjavah.c:2322
-#, fuzzy, c-format
+#: java/gjavah.c:2330
+#, c-format
msgid "Try 'gcjh --help' for more information.\n"
-msgstr "use -Winvalid-pch para más información"
+msgstr "Use 'gcjh --help' para más información\n"
-#: java/gjavah.c:2329
-#, fuzzy, c-format
+#: java/gjavah.c:2337
+#, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
"\n"
msgstr ""
-"Modo de empleo: gcov [OPCIÓN]... FICHERO-FUENTE\n"
+"Modo de empleo: gcjh [OPCIÓN]... CLASE...\n"
"\n"
-#: java/gjavah.c:2330
-#, fuzzy, c-format
+#: java/gjavah.c:2338
+#, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
-msgstr "Generar encabezado C de características específicas de la plataforma"
+msgstr ""
+"Genera ficheros de encabezado C++ a partir de ficheros .class\n"
+"\n"
-#: java/gjavah.c:2331
-#, fuzzy, c-format
+#: java/gjavah.c:2339
+#, c-format
msgid " -stubs Generate an implementation stub file\n"
-msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n"
+msgstr " -stubs Genera un fichero de implementación inicial\n"
-#: java/gjavah.c:2332
-#, fuzzy, c-format
+#: java/gjavah.c:2340
+#, c-format
msgid " -jni Generate a JNI header or stub\n"
-msgstr " -W Activar avisos extra\n"
+msgstr " -jni Genera un encabezado o inicio JNI\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
-msgstr ""
+msgstr " -add TEXTO Inserta el TEXTO en el cuerpo de la clase\n"
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
-msgstr ""
+msgstr " -append TEXTO Inserta el TEXTO después de la declaración de la clase\n"
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
-msgstr ""
+msgstr " -friend TEXTO Inserta el TEXTO como una declaración 'friend'\n"
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
-msgstr ""
+msgstr " -prepend TEXTO Inserta el TEXTO antes del inicio de la clase\n"
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
-msgstr ""
+msgstr " --classpath RUTA Establece la ruta para encontrar ficheros .class\n"
-#: java/gjavah.c:2340 java/jcf-dump.c:898
-#, fuzzy, c-format
+#: java/gjavah.c:2348 java/jcf-dump.c:898
+#, c-format
msgid " -IDIR Append directory to class path\n"
-msgstr " -B <directorio> Agrega el <directorio> a las rutas de búsqueda del compilador\n"
+msgstr " -IDIR Agrega el directorio a la ruta de clases\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
-msgstr ""
+msgstr " --bootclasspath RUTA Sobreescribe la ruta interna de clases\n"
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
-msgstr ""
+msgstr " --extdirs RUTA Establece la ruta del directorio de extensiones\n"
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
-msgstr ""
+msgstr " -d DIRECTORIO Establece el nombre del directorio de salida\n"
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
-#, fuzzy, c-format
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
+#, c-format
msgid " -o FILE Set output file name\n"
-msgstr " -o <fichero> Coloca la salida en el <fichero>\n"
+msgstr " -o FICHERO Establece el nombre del fichero de salida\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
-msgstr ""
+msgstr " -td DIRECTORIO Establece el nombre del directorio temporal\n"
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
-#, fuzzy, c-format
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
+#, c-format
msgid " --help Print this help, then exit\n"
-msgstr " -h, --help Muestra esta información, y finaliza\n"
+msgstr " --help Muestra esta información, y finaliza\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
-#, fuzzy, c-format
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
+#, c-format
msgid " --version Print version number, then exit\n"
-msgstr " -v, --version Muestra el número de versión, y finaliza\n"
+msgstr " --version Muestra el número de versión, y finaliza\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
-#, fuzzy, c-format
+#: java/gjavah.c:2357 java/jcf-dump.c:905
+#, c-format
msgid " -v, --verbose Print extra information while running\n"
-msgstr " -v, --version Muestra el número de versión, y finaliza\n"
+msgstr " -v, --verbose Muestra información extra durante la ejecución\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
+" -M Muestra todas las dependencias en la salida estándar;\n"
+" suprime la salida normal\n"
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
+" -MM Muestra las dependencias que no son del sistema en la salida estándar;\n"
+" suprime la salida normal\n"
-#: java/gjavah.c:2355
-#, fuzzy, c-format
+#: java/gjavah.c:2363
+#, c-format
msgid " -MD Print all dependencies to stdout\n"
-msgstr " -h, --help Muestra esta información, y finaliza\n"
+msgstr " -MD Muestra todas las dependencias en la salida estándar\n"
-#: java/gjavah.c:2356
-#, fuzzy, c-format
+#: java/gjavah.c:2364
+#, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
-msgstr " -h, --help Muestra esta información, y finaliza\n"
+msgstr " -MMD Muestra todas las dependencias que no son del sistema en la salida estándar\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
-#, fuzzy, c-format
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
+#, c-format
msgid ""
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
-"\n"
-"Para instrucciones de reporte de `bugs', por favor vea:\n"
+"Para instrucciones de reporte de bichos, por favor vea:\n"
"%s.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
-#, fuzzy
+#: java/gjavah.c:2395 java/gjavah.c:2509
msgid "no classes specified"
-msgstr "no se especificó un nombre de clase con \"%s\""
+msgstr "no se especificó ninguna clase"
-#: java/gjavah.c:2480
-#, fuzzy
+#: java/gjavah.c:2488
msgid "'-MG' option is unimplemented"
-msgstr "no se ha implementado aún la instrucción ret"
+msgstr "no se ha implementado la opción '-MG'"
-#: java/gjavah.c:2509
-#, fuzzy
+#: java/gjavah.c:2517
msgid "can't specify both -o and -MD"
-msgstr "no se pueden especificar -C y -o al mismo tiempo"
+msgstr "no se pueden especificar -o y -MD al mismo tiempo"
-#: java/gjavah.c:2520
-#, fuzzy, c-format
+#: java/gjavah.c:2528
+#, c-format
msgid "Processing %s\n"
-msgstr "Creando %s.\n"
+msgstr "Procesando %s\n"
-#: java/gjavah.c:2526
-#, fuzzy, c-format
+#: java/gjavah.c:2534
+#, c-format
msgid "%s: no such class"
-msgstr "%T no es un tipo de clase"
+msgstr "%s: no existe esa clase"
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
-msgstr ""
+msgstr "Se encontró en %s\n"
#: java/jcf-dump.c:814
-#, fuzzy, c-format
+#, c-format
msgid "Not a valid Java .class file.\n"
-msgstr "no es un fichero .class de Java válido"
+msgstr "No es un fichero .class de Java válido.\n"
#: java/jcf-dump.c:820
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing constant pool\n"
-msgstr "error mientras se analizaba el conjunto de constantes"
+msgstr "error al decodificar el conjunto de constantes\n"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
-msgstr "error en la entrada de #%d del conjunto de constantes\n"
+msgstr "error en la entrada #%d del conjunto de constantes\n"
#: java/jcf-dump.c:836
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing fields\n"
-msgstr "error mientras se analizaban los campos"
+msgstr "error al decodificar los campos\n"
#: java/jcf-dump.c:842
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing methods\n"
-msgstr "error mientras se analizaban los métodos"
+msgstr "error al decodificar los métodos\n"
#: java/jcf-dump.c:848
-#, fuzzy, c-format
+#, c-format
msgid "error while parsing final attributes\n"
-msgstr "error mientras se analizaban los atributos finales"
+msgstr "error al decodificar los atributos finales\n"
#: java/jcf-dump.c:885
-#, fuzzy, c-format
+#, c-format
msgid "Try 'jcf-dump --help' for more information.\n"
-msgstr "use -Winvalid-pch para más información"
+msgstr "Use 'jcf-dump --help' para más información.\n"
#: java/jcf-dump.c:892
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: jcf-dump [OPTION]... CLASS...\n"
"\n"
msgstr ""
-"Modo de empleo: gcov [OPCIÓN]... FICHERO-FUENTE\n"
+"Modo de empleo: jcf-dump [OPCIÓN]... CLASE...\n"
"\n"
#: java/jcf-dump.c:893
@@ -19112,156 +17881,157 @@ msgid ""
"Display contents of a class file in readable form.\n"
"\n"
msgstr ""
+"Muestra el contenido de un fichero clase en una forma legible.\n"
+"\n"
#: java/jcf-dump.c:894
-#, fuzzy, c-format
+#, c-format
msgid " -c Disassemble method bodies\n"
-msgstr " -W Activar avisos extra\n"
+msgstr " -c Desensambla los cuerpos de los métodos\n"
#: java/jcf-dump.c:895
-#, fuzzy, c-format
+#, c-format
msgid " --javap Generate output in 'javap' format\n"
-msgstr " --help Muestra esta información\n"
+msgstr " --javap Genera la salida en formato 'javap'\n"
#: java/jcf-dump.c:932 java/jcf-dump.c:1000
#, c-format
msgid "jcf-dump: no classes specified\n"
-msgstr ""
+msgstr "jcf-dump: no se especificaron clases\n"
#: java/jcf-dump.c:1020
-#, fuzzy, c-format
+#, c-format
msgid "Cannot open '%s' for output.\n"
-msgstr "no se puede abrir %s"
+msgstr "No se puede abrir '%s' para la salida.\n"
#: java/jcf-dump.c:1066
#, c-format
msgid "bad format of .zip/.jar archive\n"
-msgstr ""
+msgstr "formato erróneo del archivo .zip/.jar\n"
#: java/jcf-dump.c:1184
-#, fuzzy, c-format
+#, c-format
msgid "Bad byte codes.\n"
-msgstr "fcode interno erróneo"
+msgstr "Byte codes erróneos.\n"
#: java/jcf-io.c:536
-#, fuzzy, c-format
+#, c-format
msgid "source file for class %qs is newer than its matching class file. Source file %qs 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'"
+msgstr "el fichero fuente para la clase %qs es más nuevo que su fichero de clase coincidente. Se usa entonces el fichero fuente %qs"
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "constante de cadena errónea"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "valor erróneo del tipo constante %d, índice %d"
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, c-format
msgid "can't reopen %s: %m"
msgstr "no se puede reabrir %s: %m"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, c-format
msgid "can't close %s: %m"
msgstr "no se puede cerrar %s: %m"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr "no se puede encontrar el fichero para la clase %s"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr "no es un fichero .class de Java válido"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, 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:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
-msgstr "error mientras se analizaban los campos"
+msgstr "error al decodificar los campos"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
-msgstr "error mientras se analizaban los métodos"
+msgstr "error al decodificar los métodos"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
-msgstr "error mientras se analizaban los atributos finales"
+msgstr "error al decodificar los atributos finales"
-#: java/jcf-parse.c:795
-#, fuzzy
+#: java/jcf-parse.c:802
msgid "the %<java.lang.Object%> that was found in %qs 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"
+msgstr "el %<java.lang.Object%> que se encontró en %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr "falta el atributo Code"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr "%Hel fichero fuente se vio dos veces en la línea de comando y se compilará solo una vez"
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "no se especificaron ficheros de entrada"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, c-format
msgid "can't close input file %s: %m"
msgstr "no se puede cerrar el fichero de entrada %s: %m"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "fichero zip/jar %s erróneo"
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr "error al leer %s desde el fichero zip"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, 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:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr "no coincide el tipo del inicializador del campo"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, c-format
msgid "can't create directory %s: %m"
msgstr "no se puede crear el directorio %s: %m"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, c-format
msgid "can't open %s for writing: %m"
msgstr "no se puede abrir %s para escritura: %m"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, c-format
msgid "can't create %s: %m"
msgstr "no se puede crear %s: %m"
#: java/jv-scan.c:99
-#, fuzzy, c-format
+#, c-format
msgid "Try 'jv-scan --help' for more information.\n"
-msgstr "use -Winvalid-pch para más información"
+msgstr "Use 'jv-scan --help' para más información.\n"
#: java/jv-scan.c:106
-#, fuzzy, c-format
+#, c-format
msgid ""
"Usage: jv-scan [OPTION]... FILE...\n"
"\n"
msgstr ""
-"Modo de empleo: gcov [OPCIÓN]... FICHERO-FUENTE\n"
+"Modo de empleo: jv-scan [OPCIÓN]... FICHERO...\n"
"\n"
#: java/jv-scan.c:107
@@ -19269,89 +18039,85 @@ msgstr ""
msgid ""
"Print useful information read from Java source files.\n"
"\n"
-msgstr ""
+msgstr "Muestra información útil a partir de ficheros fuente Java.\n"
#: java/jv-scan.c:108
#, c-format
msgid " --no-assert Don't recognize the assert keyword\n"
-msgstr ""
+msgstr " --no-assert No reconocer la palabra clave assert\n"
#: java/jv-scan.c:109
#, c-format
msgid " --complexity Print cyclomatic complexity of input file\n"
-msgstr ""
+msgstr " --complexity Muestra la complejidad ciclomática del fichero de entrada\n"
#: java/jv-scan.c:110
#, c-format
msgid " --encoding NAME Specify encoding of input file\n"
-msgstr ""
+msgstr " --encoding NOMBRE Especifica la codificación del fichero fuente\n"
#: java/jv-scan.c:111
#, c-format
msgid " --print-main Print name of class containing 'main'\n"
-msgstr ""
+msgstr " --print-main Muestra el nombre de la clase que contiene 'main'\n"
#: java/jv-scan.c:112
#, c-format
msgid " --list-class List all classes defined in file\n"
-msgstr ""
+msgstr " --list-class Muestra todas las clases definidas en el fichero\n"
#: java/jv-scan.c:113
#, c-format
msgid " --list-filename Print input filename when listing class names\n"
-msgstr ""
+msgstr " --list-filename Muestra el fichero de entrada al enumerar los nombres de clases\n"
-#: java/jv-scan.c:213
-#, fuzzy
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
-msgstr "sólo se permite uno de `--print-main', `--list-class' y `--complexity'"
+msgstr "sólo se permite uno de '--print-main', '--list-class' y '--complexity'"
-#: java/jv-scan.c:216
-#, fuzzy, c-format
+#: java/jv-scan.c:193
+#, c-format
msgid "can't open output file '%s'"
-msgstr "no se puede abrir el fichero de salida `%s'"
+msgstr "no se puede abrir el fichero de salida '%s'"
-#: java/jv-scan.c:251
-#, fuzzy, c-format
+#: java/jv-scan.c:229
+#, c-format
msgid "file not found '%s'"
-msgstr "no se puede encontrar el fichero `%s'"
+msgstr "no se encuentra el fichero '%s'"
-#: java/jv-scan.c:273
-#, fuzzy, c-format
+#: java/jv-scan.c:251
+#, c-format
msgid "%s: error: "
-msgstr "error: "
+msgstr "%s: error: "
-#: java/jv-scan.c:285
-#, fuzzy, c-format
+#: java/jv-scan.c:263
+#, c-format
msgid "%s: warning: "
-msgstr "%s:%d: aviso: "
+msgstr "%s: aviso: "
#: java/jvgenmain.c:48
-#, fuzzy, c-format
+#, c-format
msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
-msgstr ""
-"Modo de empleo: gcov [OPCIÓN]... FICHERO-FUENTE\n"
-"\n"
+msgstr "Modo de empleo: %s [OPCIONES]... NOMBRECLASEmain [FICHERO-SALIDA]\n"
#: java/jvgenmain.c:98
-#, fuzzy, c-format
+#, c-format
msgid "%s: Cannot open output file: %s\n"
-msgstr "%s:no se puede abrir el fichero de salida `%s'\n"
+msgstr "%s: No se puede abrir el fichero de salida: %s\n"
#: java/jvgenmain.c:135
-#, fuzzy, c-format
+#, c-format
msgid "%s: Failed to close output file %s\n"
-msgstr "%s:no se puede abrir el fichero de salida `%s'\n"
+msgstr "%s: No se puede cerrar el fichero de salida %s\n"
#: java/jvspec.c:420
-#, fuzzy
msgid "can't specify '-D' without '--main'\n"
-msgstr "no se puede especificar `-D' sin `--main'\n"
+msgstr "no se puede especificar '-D' sin '--main'\n"
#: java/jvspec.c:423
-#, fuzzy, c-format
+#, c-format
msgid "'%s' is not a valid class name"
-msgstr "`%s' no es un nombre de clase válido"
+msgstr "'%s' no es un nombre de clase válido"
#: java/jvspec.c:429
msgid "--resource requires -o"
@@ -19374,20 +18140,18 @@ msgid "using both @FILE with multiple files not implemented"
msgstr "no está implementado usar ambos @FILE con ficheros múltiples"
#: java/jvspec.c:534
-#, fuzzy
msgid "cannot specify 'main' class when not linking"
-msgstr "no se puede especificar la clase `main' cuando no se está enlazando"
+msgstr "no se puede especificar la clase 'main' cuando no se está enlazando"
-#: java/lang.c:620
+#: java/lang.c:629
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:636
+#: java/lang.c:645
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:256
-#, fuzzy
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -19395,16 +18159,15 @@ msgid ""
"to use a particular encoding for your input file, try the\n"
"%<--encoding=UTF-8%> option"
msgstr ""
-"codificación desconocida: `%s'\n"
+"codificación desconocida: %qs\n"
"Esto puede significar que la codificación de su localización\n"
"no tiene soporte en la implementación iconv(3) de su sistema.\n"
"Si no está intentando usar una codificación particular para su\n"
-"fichero de entrada, utilice la opción `--encoding=UTF-8'"
+"fichero de entrada, utilice la opción %<--encoding=UTF-8%>"
-#: java/lex.c:627
-#, fuzzy
+#: java/lex.c:631
msgid "internal error - bad unget"
-msgstr "error interno - nombre Utf8 inválido"
+msgstr "error interno - unget erróneo"
#: java/mangle.c:89
#, c-format
@@ -19415,225 +18178,225 @@ msgstr "no se puede deshacer %s"
msgid "internal error - invalid Utf8 name"
msgstr "error interno - nombre Utf8 inválido"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr "Falta el término"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "se esperaba ';'"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "Falta el nombre"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
-msgstr ""
+msgstr "Clase ambigua: %qs y %qs"
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "se esperaba '*'"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr "se esperaba una declaración de clase o interfaz"
-#: java/parse.y:841
-#, fuzzy, c-format
+#: java/parse.y:840
+#, c-format
msgid "Modifier %qs declared twice"
-msgstr "identificador de ciclo sin declarar"
+msgstr "Modificador %qs declarado dos veces"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "Falta el nombre de la clase"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "Se esperaba '{'"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr "No se encuentra el nombre de la super clase"
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr "No se encuentra el nombre de la interfaz"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr "Falta el inicializador de la variable"
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "Declaración inválida"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "Se esperaba ']'"
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr "']' desbalanceado"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr "Declaración de método inválida, se requiere un nombre de método"
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr "Se esperaba un identificador"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr "Declaración de método inválida, se requiere un tipo de devolución"
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
-msgstr ""
+msgstr "Forma no recomendada para especificación de tipo devuelto"
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "Se esperaba ')'"
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr "Falta el término de parámetro formal"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "Falta el identificador"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr "Falta el término de tipo de clase"
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
-msgstr ""
+msgstr "No se puede definir un inicializador estático en la clase %qs. Un inicializador estático sólo se puede definir en clases de alto nivel"
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr "Tipo de interfaz inválido"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
-msgstr ""
+msgstr "Una declaración vacía es una característica obsoleta que no se debe usar"
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "Se esperaba ':'"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr "Declaración de expresión inválida"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "Se esperaba '('"
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr "Falta término o ')'"
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr "Expresión constante faltante o inválida"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr "Faltan término y ')' esperados"
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr "Expresión de control inválida"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr "Expresión de actualización inválida"
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr "Declaración de inicio inválida"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr "Faltan término o ')' esperados"
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr "Se esperaba 'class' o 'this'"
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr "Se esperaba 'class'"
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr "Se esperaba ')' o término"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "Se esperaba '['"
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr "Se esperaba un campo"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr "Faltan término y ']' esperados"
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr "Se esperaba ']', expresión de tipo inválida"
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr "Expresión de tipo inválida"
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr "Tipo de referencia inválido"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr "La invocación del constructor debe ser el primer elemento en un constructor"
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr "Solamente los constructores pueden invocar constructores"
-#: java/parse.y:3042
-#, fuzzy, c-format
+#: java/parse.y:3041
+#, c-format
msgid ": %qs JDK1.1(TM) feature"
-msgstr ": `%s' es una característica de JDK1.1(MR)"
+msgstr ": %qs es una característica de JDK1.1(MR)"
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19642,925 +18405,890 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
-#, fuzzy
+#: java/parse.y:3282
msgid "Missing return statement"
-msgstr "Falta el nombre"
+msgstr "Falta la declaración de devolución"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
-#, fuzzy
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
msgid "Unreachable statement"
-msgstr "Activar segmentos de datos separados"
+msgstr "Declaración inalcanzable"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
-msgstr ""
+msgstr "No se puede accesar %s al campo %<%s.%s%> desde %qs"
-#: java/parse.y:3384
-#, fuzzy, c-format
+#: java/parse.y:3383
+#, c-format
msgid "%s %qs already defined in %s:%d"
-msgstr "`%D' ya está definido en `%T'"
+msgstr "%s %qs ya está definido en %s:%d"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
-msgstr ""
+msgstr "La variable %qs ya está definida en este método y se declaró %<%s %s%> en la línea %d"
-#: java/parse.y:3513
-#, fuzzy, c-format
+#: java/parse.y:3512
+#, c-format
msgid "Interface %qs repeated"
-msgstr "el tipo es obsoleto"
+msgstr "Interfaz %qs repetida"
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
-msgstr ""
+msgstr "%s el nombre %qs choca con el tipo importado %qs"
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
-msgstr ""
+msgstr "El %s %qs público se debe definir en un fichero llamado %<%s.java%>"
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
-msgstr ""
+msgstr "La clase interna %qs no puede ser estática. Las clases estáticas sólo pueden suceder en interfaces y en clases de alto nivel"
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
-msgstr ""
+msgstr "El nombre de clase %qs ya está definido en este ámbito. Una clase interna no puede tener el mismo nombre simple que cualquiera de sus clases contenidas"
-#: java/parse.y:3713
-#, fuzzy
+#: java/parse.y:3712
msgid "Qualifier must be a reference"
-msgstr "el parámetro 1 debe ser referenciable"
+msgstr "El calificador debe ser una referencia"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
-msgstr ""
+msgstr "Herencia cíclica que involucra a %s"
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
-msgstr ""
+msgstr "Uso redundante del modificador %<abstract%>. La interfaz %qs es implícitamente abstracta"
-#: java/parse.y:4153
-#, fuzzy, c-format
+#: java/parse.y:4152
+#, c-format
msgid "Class %qs can't be declared both abstract and final"
-msgstr "el miembro `%D' no puede ser declarado como virtual y static al mismo tiempo"
+msgstr "La clase %qs no se puede declarar como abstract y final al mismo tiempo"
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
-msgstr ""
+msgstr "%<java.lang.Object%> no puede extender nada"
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
-msgstr ""
+msgstr "Declaración de variable duplicada: %<%s %s%> era %<%s %s%> (%s:%d)"
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
-msgstr ""
+msgstr "El campo %qs no puede ser estático en la clase interna %qs a menos que sea final"
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
-msgstr ""
+msgstr "La clase %qs se debe declarar abstracta para definir el método abstracto %qs"
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
-msgstr ""
+msgstr "el método nativo %qs no puede ser strictfp"
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
-msgstr ""
+msgstr "el método %qs no puede ser transient"
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
-msgstr ""
+msgstr "el método %qs no puede ser volatile"
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
-msgstr ""
+msgstr "El método %qs no puede ser estático en la clase interna %qs. Sólo los miembros de interfaces y de clases de alto nivel pueden ser estáticos"
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
-msgstr ""
+msgstr "%s el método %qs no puede tener un cuerpo definido"
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
-msgstr ""
+msgstr "El método %qs que no es nativo ni abstracto debe tener un cuerpo definido"
-#: java/parse.y:5029
-#, fuzzy, c-format
+#: java/parse.y:5028
+#, c-format
msgid "%s: recursive invocation of constructor %qs"
-msgstr "redefinición de `struct %s'"
+msgstr "%s: invocación recursiva del constructor %qs"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
-msgstr ""
+msgstr "Declaración inconsistente de miembro. Se debe especificar por lo menos uno de %<public%>, %<private%>, o %<protected%>"
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
-msgstr ""
+msgstr "Declaración inconsistente de miembro. Se debe especificar por lo menos uno de %<final%> o %<volatile%>"
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
-msgstr ""
+msgstr "La variable %qs se usa más de una vez en la lista de argumentos del método %qs"
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
-msgstr ""
+msgstr "%s %qs no puede implementar/extender %s %qs"
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
-msgstr ""
+msgstr "La clase %qs no puede hacer subclase a %s %qs"
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
-msgstr ""
+msgstr "No se puede hacer subclase de clases finales: %s"
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
-msgstr ""
+msgstr "Herencia%s con ciclo de clase"
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
-msgstr ""
+msgstr "No se encontró la superclase %qs de la clase %qs"
-#: java/parse.y:6187
-#, fuzzy, c-format
+#: java/parse.y:6190
+#, c-format
msgid "Type %qs not found in declaration of field %qs"
-msgstr "el tipo de dato por defecto es `int' en la declaración de `%s'"
+msgstr "No se encontró el tipo %qs en la declaración del campo %qs"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
-msgstr ""
+msgstr "No se encontró el tipo %qs en la declaración del argumento %qs del método %qs"
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
-msgstr ""
+msgstr "No se encontró el tipo %qs en la declaración del tipo de devolución del método %qs"
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
-msgstr ""
+msgstr "No se encontró la superinterfaz %qs de %s %qs"
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
-msgstr ""
+msgstr "No se encontró el tipo %qs en la declaración de la variable local %qs"
-#: java/parse.y:6220
-#, fuzzy
+#: java/parse.y:6223
msgid "Class %qs not found in %<throws%>"
-msgstr "no se encuentra el campo '%s' en la clase"
+msgstr "No se encuentró la clase %qs en %<throws%>"
-#: java/parse.y:6277
-#, fuzzy, c-format
+#: java/parse.y:6280
+#, c-format
msgid "Duplicate %s declaration %qs"
-msgstr "declaración de la etiqueta `%s' duplicada"
+msgstr "Declaración %s %qs duplicada"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
-msgstr ""
+msgstr "La clase %qs no define el método abstracto %<%s %s%> de %s %<%s%>. Se debe definir este método o se debe declarar a %s %qs como abstracta"
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
-msgstr ""
+msgstr "La clase %qs en la cláusula %<throws%> debe ser una subclase de la clase %<java.lang.Throwable%>"
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
-msgstr ""
+msgstr "La clase %qs debe sobreescribir a %qs con un método público para implementar la interfaz %qs"
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
-msgstr ""
+msgstr "Se definió el método %qs con tipo de devolución %qs en la clase %qs"
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
-msgstr ""
+msgstr "Los métodos %s no se pueden sobreescribir. El método %qs es %s en la clase %qs"
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
-msgstr ""
+msgstr "Los métodos de instancia no se pueden sobreescribir con un método estático. El método %qs es un método de instancia en la clase %qs"
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
-msgstr ""
+msgstr "Los métodos no se pueden sobreescribir para hacerlos más privados. El método %qs no es %s en la clase %qs"
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
-msgstr ""
+msgstr "Clase de excepción revisada %qs inválida en la cláusula %<throws%>. La excepción debe ser una subclase de una excepción arrojada por %qs de la clase %qs"
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
-msgstr ""
+msgstr "La interfaz %qs hereda el método %qs de la interfaz %qs. Este método se redefine con un tipo de devolución diferente en la interfaz %qs"
-#: java/parse.y:6992
-#, fuzzy, c-format
+#: java/parse.y:6995
+#, c-format
msgid "Class or interface %qs not found in import"
-msgstr "se esperaba una declaración de clase o interfaz"
+msgstr "No se encuentra la clase o interfaz %qs en la importación"
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "archivo .zip malformado en CLASSPATH: %s"
-#: java/parse.y:7148
-#, fuzzy, c-format
+#: java/parse.y:7151
+#, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
-msgstr "No se puede encontrar el paquete por defecto `%s'. Revise la variable de ambiente CLASSPATH y el acceso a los archivos"
+msgstr "No se puede encontrar el paquete por defecto %qs. Revise la variable de ambiente CLASSPATH y el acceso a los archivos"
-#: java/parse.y:7153
-#, fuzzy, c-format
+#: java/parse.y:7156
+#, c-format
msgid "Package %qs not found in import"
-msgstr "no se encuentra el campo '%s' en la clase"
+msgstr "No se encuentra el paquete %qs en la importación"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
-msgstr ""
+msgstr "El tipo %qs también está potencialmente definido en el paquete %qs"
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
-msgstr ""
+msgstr "El %s %s anidado es %s; no se puede accesar desde aquí"
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
-msgstr ""
+msgstr "No se puede accesar %s %qs. Sólo se pueden accesar las clases públicas y las interfaces en otros paquetes"
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
-msgstr ""
+msgstr "Sólo se permite <%final%> como un modificador de variables local"
-#: java/parse.y:9025
-#, fuzzy, c-format
+#: java/parse.y:9028
+#, c-format
msgid "No constructor matching %qs found in class %qs"
-msgstr "se encontró un `%D' ambiguo o no adecuado en la clase `%T'"
+msgstr "No se encontró un constructor que coincida con %qs en la clase %qs"
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
-msgstr ""
+msgstr "No se puede referenciar a %qs antes que se llame el constructor de la superclase"
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
-msgstr ""
+msgstr "No se puede accesar la variable local %qs desde la clase interna %qs a menos que se declare final"
-#: java/parse.y:9584 java/parse.y:10047
-#, fuzzy, c-format
+#: java/parse.y:9587 java/parse.y:10050
+#, c-format
msgid "Undefined variable %qs"
-msgstr "%Jvariable '%D' sin uso"
+msgstr "No se definió la variable %qs"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
-msgstr ""
+msgstr "No se puede hacer una referencia estática a la variable %qs que no es estática en la clase %qs"
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
-msgstr ""
+msgstr "No se encontró una instancia terminal para la clase interna %qs que está en ámbito%s"
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
-msgstr ""
+msgstr "Se usó la palabra clave %<this%> fuera del contexto permitido"
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
-msgstr ""
+msgstr "No se puede referenciar %<this%> antes de que se llame al constructor de la superclase"
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
-msgstr ""
+msgstr "No se puede usar la variable %<%s.this%>: el tipo %qs no es un tipo externo del tipo %qs"
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
-msgstr ""
+msgstr "Se usó la palabra clave %<super%> fuera del contexto permitido"
-#: java/parse.y:10024
-#, fuzzy, c-format
+#: java/parse.y:10027
+#, c-format
msgid "No variable %qs defined in class %qs"
-msgstr "`%D' ya se definió en la clase `%T'"
+msgstr "No se definió la variable %qs en la clase %qs"
-#: java/parse.y:10029
-#, fuzzy, c-format
+#: java/parse.y:10032
+#, c-format
msgid "Undefined variable or class name: %qs"
-msgstr "no se puede encontrar el fichero para la clase %s"
+msgstr "Variable o nombre de clase sin definir: %qs"
-#: java/parse.y:10100
-#, fuzzy, c-format
+#: java/parse.y:10103
+#, c-format
msgid "Can't use type %qs as a qualifier"
-msgstr "no se puede usar '%s' como un registro %s"
+msgstr "No se puede usar %qs como un calificador"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
-msgstr ""
+msgstr "Se intentó referenciar el campo %qs en %<%s %s%>"
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
-msgstr ""
+msgstr "No se definió la variable %qs en el tipo %qs"
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
-msgstr ""
+msgstr "Se intentó referenciar el campo %<new%> en un %qs"
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
-msgstr ""
+msgstr "La clase %qs es obsoleta"
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
-msgstr ""
+msgstr "El %s %qs en la clase %qs es obsoleto"
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
-msgstr ""
+msgstr "No se puede invocar un método en el tipo primitivo %qs"
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
-msgstr ""
+msgstr "No se puede hacer una referencia estática al método %qs en la interfaz %qs"
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
-msgstr ""
+msgstr "No se puede hacer una referencia al método %<%s %s%> en la clase %qs"
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
-msgstr ""
+msgstr "No se puede invocar al super constructor en java.lang.Object"
-#: java/parse.y:10576 java/parse.y:14433
-#, fuzzy, c-format
+#: java/parse.y:10579 java/parse.y:14437
+#, c-format
msgid "Class %qs not found in type declaration"
-msgstr "%Hdeclaración vacía"
+msgstr "No se encontró la clase %qs en la declaración de tipo"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
-msgstr ""
+msgstr "La clase %qs es una clase abstracta. No se puede instanciar"
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
-msgstr ""
+msgstr "No hay un método llamado %qs en el ámbito"
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
-msgstr ""
+msgstr "No se puede accesar %s %s %<%s.%s%> desde %qs"
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
-msgstr ""
+msgstr "No se puede encontrar %s %<%s(%s)%> en el tipo %qs%s"
-#: java/parse.y:11783
-#, fuzzy
+#: java/parse.y:11786
msgid "Constant expression required"
-msgstr "expresión no constante"
+msgstr "Se requiere una expresión constante"
-#: java/parse.y:11796
-#, fuzzy
+#: java/parse.y:11799
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para el case. No se puede convertir %qs a %<int%>"
-#: java/parse.y:11830
-#, fuzzy
+#: java/parse.y:11833
msgid "Duplicate case label: %<default%>"
-msgstr "valor de case duplicado"
+msgstr "Valor de case duplicado: %default%>"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
-msgstr ""
+msgstr "Tipo incompatible para %<+=%>. No se puede convertir %qs a %<java.lang.String%>"
-#: java/parse.y:12349
-#, fuzzy, c-format
+#: java/parse.y:12352
+#, c-format
msgid "missing static field %qs"
-msgstr "falta el campo static `%s'"
+msgstr "falta el campo static %qs"
-#: java/parse.y:12354
-#, fuzzy, c-format
+#: java/parse.y:12357
+#, c-format
msgid "not a static field %qs"
-msgstr "'%s' no es un campo static"
+msgstr "%qs no es un campo static"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
-msgstr ""
+msgstr "No se puede referenciar %<this%> o %<super%> antes que se llame al constructor de la superclase"
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "No hay case para %s"
-#: java/parse.y:12827
-#, fuzzy
+#: java/parse.y:12830
msgid "Invalid left hand side of assignment"
-msgstr "el lado derecho de la asignación es un modo"
+msgstr "La parte izquierda de la asignación es inválida"
-#: java/parse.y:12878
-#, fuzzy, c-format
+#: java/parse.y:12881
+#, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para el argumento %s. No se puede convertir %qs a %qs"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
-msgstr ""
+msgstr "Tipo incompatible para %s. Se necesita una conversión explícita para convertir %qs a %qs"
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
-msgstr ""
+msgstr "La expresión constante %qs es demasiado ancha para la conversión primitiva que estrecha a %qs"
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "operador %s sin registrar"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
-msgstr ""
+msgstr "La evaluación de esta expresión resultará en que se arroje una excepción aritmética"
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
-msgstr ""
+msgstr "Tipo incompatible para %qs. Se requiere una conversión explícita para convertir la distancia de desplazamiento de %qs a integral"
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
-msgstr ""
+msgstr "Tipo incompatible para %qs. No se puede convertir la distancia de desplazamiento de %qs a integral"
-#: java/parse.y:13657
-#, fuzzy
+#: java/parse.y:13660
msgid "Invalid argument %qs for %<instanceof%>"
-msgstr "argumento inválido del atributo `%s'"
+msgstr "Argumento %qs inválido para %<instanceof%>"
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
-msgstr ""
+msgstr "Es imposible para %qs que sea instancia de %qs"
-#: java/parse.y:13813
-#, fuzzy, c-format
+#: java/parse.y:13818
+#, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para %qs. No se puede convertir %qs a %qs"
-#: java/parse.y:14294
-#, fuzzy, c-format
+#: java/parse.y:14298
+#, c-format
msgid "Invalid argument type %qs to %qs"
-msgstr "Argumento actual inválido en %0"
+msgstr "Tipo de argumento %qs a %qs inválido"
-#: java/parse.y:14524
-#, fuzzy, c-format
+#: java/parse.y:14528
+#, c-format
msgid "Invalid cast from %qs to %qs"
-msgstr "conversión inválida de `%T' a `%T'"
+msgstr "Conversión inválida de %qs a %qs"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
-msgstr ""
+msgstr "%<[]%> sólo se puede aplicar a matrices. No se puede aplicar a %qs"
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
-msgstr ""
+msgstr "Tipo incompatible para %<[]%>. Se necesita una conversión explícita para convertir %qs a %<int%>"
-#: java/parse.y:14588
-#, fuzzy
+#: java/parse.y:14592
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para %<[]%>. No se puede convertir %qs a %<int%>"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
-msgstr ""
+msgstr "Tipo incompatible para la dimensión en la expresión de creación de matriz. %s convierte %qs a %<int%>"
-#: java/parse.y:14775
-#, fuzzy, c-format
+#: java/parse.y:14779
+#, c-format
msgid "Invalid array initializer for non-array type %qs"
-msgstr "matriz inicializada con una expresión matrizal que no es constante"
+msgstr "Inicializador de matriz inválido para el tipo %qs que no es matriz"
-#: java/parse.y:14862
-#, fuzzy, c-format
+#: java/parse.y:14866
+#, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para matriz. %s convierte %qs a %qs"
-#: java/parse.y:14931
-#, fuzzy
+#: java/parse.y:14935
msgid "%<return%> inside instance initializer"
-msgstr "rango de índices vacío en el inicializador"
+msgstr "%<return%> dentro de un inicializador de instancia"
-#: java/parse.y:14935
-#, fuzzy
+#: java/parse.y:14939
msgid "%<return%> inside static initializer"
-msgstr "rango de índices vacío en el inicializador"
+msgstr "%<return%> dentro de un inicializador estático"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
-msgstr ""
+msgstr "%<return%> con%s valor de %<%s %s%>"
-#: java/parse.y:14948
-#, fuzzy
+#: java/parse.y:14952
msgid "%<return%> with value from constructor %qs"
-msgstr "devolviendo un valor de un constructor"
+msgstr "%<return%> con valor del constructor %qs"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
-msgstr ""
+msgstr "Tipo incompatible para %<if%>. No se puede convertir %qs a %<boolean%>"
-#: java/parse.y:15046
-#, fuzzy, c-format
+#: java/parse.y:15050
+#, c-format
msgid "Declaration of %qs shadows a previous label declaration"
-msgstr "la declaración de '%D' oscurece a una declaración global"
+msgstr "La declaración de %qs oscurece a una declaración de etiqueta previa"
-#: java/parse.y:15051
-#, fuzzy, c-format
+#: java/parse.y:15055
+#, c-format
msgid "This is the location of the previous declaration of label %qs"
-msgstr "esta es la ubicación de la definición previa"
+msgstr "Esta es la ubicación de la declaración previa de la etiqueta %qs"
-#: java/parse.y:15298
-#, fuzzy, c-format
+#: java/parse.y:15302
+#, c-format
msgid "No label definition found for %qs"
-msgstr "No hay definición de etiqueta para la declaración FORMAT en %0"
+msgstr "No se encontró una definición de etiqueta para %qs"
-#: java/parse.y:15311
-#, fuzzy
+#: java/parse.y:15315
msgid "%<continue%> must be in loop"
-msgstr "la declaración continue no está dentro dentro de un ciclo"
+msgstr "%<continue%> debe estar dentro de un ciclo"
-#: java/parse.y:15314
-#, fuzzy, c-format
+#: java/parse.y:15318
+#, c-format
msgid "continue label %qs does not name a loop"
-msgstr "la declaración continue no está dentro dentro de un ciclo"
+msgstr "la etiqueta continue %qs no nombra un ciclo"
-#: java/parse.y:15335
-#, fuzzy
+#: java/parse.y:15339
msgid "%<break%> must be in loop or switch"
-msgstr "la declaración break no está dentro de un ciclo o switch"
+msgstr "%<break%> debe estar dentro de un ciclo o switch"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
-msgstr ""
+msgstr "Tipo incompatible para condicional de ciclo. No se puede convertir %qs a %<boolean%>"
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
-msgstr ""
+msgstr "Tipo incompatible para %<switch%>. No se puede convertir %qs a %<int%>"
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
-#, fuzzy
+#: java/parse.y:15449
msgid "duplicate case label: %<"
-msgstr "etiqueta duplicada `%D'"
+msgstr "etiqueta de case duplicada: %<"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
-msgstr ""
+msgstr "%>"
-#: java/parse.y:15449
-#, fuzzy
+#: java/parse.y:15453
msgid "original label is here"
-msgstr "Alinear todas las etiquetas"
+msgstr "la etiqueta original está aquí"
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
-msgstr ""
+msgstr "No se puede capturar la clase %qs. El tipo del parámetro de la cláusula catch debe ser una subclase de la clase %<java.lang.Throwable%>"
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
-msgstr ""
+msgstr "No se alcanzó %<catch%> por la cláusula catch en la línea %d"
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
-msgstr ""
+msgstr "Tipo incompatible para %<synchronized%>. No se puede convertir %qs a %<java.lang.Object%>"
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
-msgstr ""
+msgstr "No se puede arrojar %qs; debe ser una subclase de la clase %<java.lang.Throwable%>"
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
-msgstr ""
+msgstr "La excepción revisada %qs no se puede arrojar en el inicializador de instancia (no todos los constructores declarados la están declarando en su cláusula %<throws%>)"
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
-msgstr ""
+msgstr "La excepción revisada %qs no puede ser capturada por ninguna de la(s) cláusula(s) catch del bloque %<try%> que las contiene"
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
-msgstr ""
+msgstr "La excepción revisada %qs no se puede arrojar en el inicializador"
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
-msgstr ""
+msgstr "La excepción revisada %qs no se arroja desde un bloque %<try%>"
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
-msgstr ""
+msgstr "La excepción revisada %qs no coincide con ninguno de los métodos actuales de la(s) declaración(es) %<throws%>"
-#: java/parse.y:15944
-#, fuzzy, c-format
+#: java/parse.y:15948
+#, c-format
msgid "Exception %qs can't be thrown in initializer"
-msgstr "rango de índices vacío en el inicializador"
+msgstr "La excepción %qs no se puede arrojar en el inicializador"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
-msgstr ""
+msgstr "La excepción %qs se debe capturar, o se debe declarar en la cláusula %<throws%> de %qs"
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
-msgstr ""
+msgstr "Tipo incompatible para %<?:%>. No se puede convertir %qs a %<boolean%>"
-#: java/parse.y:16128
-#, fuzzy
+#: java/parse.y:16134
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para %<?:%>. No se puede convertir %qs a %qs"
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "basura al final de la cadena de firma"
-#: java/verify-glue.c:393
-#, fuzzy, c-format
+#: java/verify-glue.c:408
+#, c-format
msgid "verification failed: %s"
-msgstr "error de verificación en PC=%d"
+msgstr "error de verificación: %s"
-#: java/verify-glue.c:395
-#, fuzzy, c-format
+#: java/verify-glue.c:410
+#, c-format
msgid "verification failed at PC=%d: %s"
-msgstr "error de verificación en PC=%d"
+msgstr "error de verificación en PC=%d: %s"
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr "pc erróneo en exception_table"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "opcode desconocido %d@pc=%d durante la verificación"
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr "error de verificación en PC=%d"
#: java/parse.h:125
-#, fuzzy, c-format
+#, c-format
msgid "%s method can't be abstract"
-msgstr "%Jmétodo abstracto en una clase que no es abstracta"
+msgstr "el método %s no puede ser abstracto"
#: java/parse.h:129
-#, fuzzy, c-format
+#, c-format
msgid "Constructor can't be %s"
-msgstr "los constructores no pueden ser `%s'"
+msgstr "El constructor no puede ser %s"
#. Pedantic warning on obsolete modifiers. Note: when cl is NULL,
#. flags was set artificially, such as for a interface method
#: java/parse.h:161
-#, fuzzy, c-format
+#, c-format
msgid "Discouraged redundant use of %qs modifier in declaration of %s"
-msgstr "múltiples clases de almacenamiento en la declaración de `%s'"
+msgstr "Uso redundante no recomendado del modificador %qs en la declaración de %s"
#: java/parse.h:168
#, c-format
msgid "Discouraged redundant use of %qs modifier in declaration of %s %qs"
-msgstr ""
+msgstr "Uso redundante no recomendado del modificador %qs en la declaración de %s %qs"
#. Standard error messages
#: java/parse.h:352
-#, fuzzy, c-format
+#, c-format
msgid "Incompatible type for %qs. Can't convert %qs to boolean"
-msgstr "tipo incompatible para el argumento %d de `%s'"
+msgstr "Tipo incompatible para %qs. No se puede convertir %qs a boolean"
#: java/parse.h:357
#, c-format
msgid "Incompatible type for %qs. Can't convert %qs to numeric type"
-msgstr ""
+msgstr "Tipo incompatible para %qs. No se puede convertir %qs a un tipo numérico"
#: java/parse.h:365
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert %qs to integral"
-msgstr ""
+msgstr "Tipo incompatible para %qs. Se necesita una conversión explícita para convertir %qs a integral"
#: java/parse.h:370
-#, fuzzy, c-format
+#, c-format
msgid "Incompatible type for %qs. Can't convert %qs to integral"
-msgstr "tipo incompatible para el argumento %d de la llamada indirecta a función"
+msgstr "Tipo incompatible para %qs. No se puede convertir %qs a integral"
-#: objc/objc-act.c:753
-#, fuzzy
+#: objc/objc-act.c:756
msgid "%<@end%> must appear in an @implementation context"
-msgstr "`@end' debe aparecer en el contexto de una implementación"
+msgstr "%<@end%> debe aparecer en el contexto de @implementation"
-#: objc/objc-act.c:780
-#, fuzzy
+#: objc/objc-act.c:783
msgid "method declaration not in @interface context"
-msgstr "la definición de método no está en el contexto de la clase"
+msgstr "la declaración de método no está en el contexto @interface"
-#: objc/objc-act.c:791
-#, fuzzy
+#: objc/objc-act.c:794
msgid "method definition not in @implementation context"
-msgstr "la definición de método no está en el contexto de la clase"
+msgstr "la definición de método no está en el contexto @implementation"
-#: objc/objc-act.c:901
-#, fuzzy, c-format
+#: objc/objc-act.c:925
+#, c-format
msgid "object does not conform to the %qs protocol"
-msgstr "el objeto no es conforme con el protocolo `%s'"
+msgstr "el objeto no es conforme con el protocolo %qs"
-#: objc/objc-act.c:991 objc/objc-act.c:1068
-#, fuzzy, c-format
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
+#, c-format
msgid "class %qs does not implement the %qs protocol"
-msgstr "la clase `%s' no implementa el protocolo `%s'"
+msgstr "la clase %qs no implementa el protocolo %qs"
-#: objc/objc-act.c:1174
-#, fuzzy, c-format
+#: objc/objc-act.c:1198
+#, c-format
msgid "statically allocated instance of Objective-C class %qs"
-msgstr "instancia de la clase Objective-C `%s' alojada estáticamente"
+msgstr "instancia de la clase Objective-C %qs alojada estáticamente"
-#: objc/objc-act.c:1231
-#, fuzzy, c-format
+#: objc/objc-act.c:1269
+#, c-format
msgid "protocol %qs has circular dependency"
-msgstr "el protocolo `%s' tiene una dependencia circular"
+msgstr "el protocolo %qs tiene una dependencia circular"
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
-#, fuzzy, c-format
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
+#, c-format
msgid "cannot find protocol declaration for %qs"
-msgstr "no se puede encontrar la declaración de protocolo para `%s'"
+msgstr "no se puede encontrar la declaración de protocolo para %qs"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
-#, fuzzy, c-format
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
+#, c-format
msgid "cannot find interface declaration for %qs"
-msgstr "no se puede encontrar la declaración de interfaz para `%s'"
+msgstr "no se puede encontrar la declaración de interfaz para %qs"
-#: objc/objc-act.c:1653
-#, fuzzy, c-format
+#: objc/objc-act.c:1691
+#, c-format
msgid "interface %qs does not have valid constant string layout"
-msgstr "la interfaz `%s' no tiene una disposición de cadena constante válida"
+msgstr "la interfaz %qs no tiene una disposición de cadena constante válida"
-#: objc/objc-act.c:1658
-#, fuzzy, c-format
+#: objc/objc-act.c:1696
+#, c-format
msgid "cannot find reference tag for class %qs"
-msgstr "no se puede encontrar la marca de referencia para la clase %s"
+msgstr "no se puede encontrar la marca de referencia para la clase %qs"
-#: objc/objc-act.c:2330
-#, fuzzy
-msgid "%Jcreating selector for nonexistent method %qE"
-msgstr "creando un selector para el método `%s' que no existe"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
+msgstr "%Hcreando un selector para el método %qE que no existe"
-#: objc/objc-act.c:2518
-#, fuzzy, c-format
+#: objc/objc-act.c:2563
+#, c-format
msgid "%qs is not an Objective-C class name or alias"
-msgstr "`%s' no es un nombre de clase o alias de Objective-C válido"
+msgstr "%qs no es un nombre de clase o alias de Objective-C"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr "las declaraciones Objective-C sólo pueden aparacer en el ámbito global"
-#: objc/objc-act.c:2638
-#, fuzzy, c-format
+#: objc/objc-act.c:2683
+#, c-format
msgid "cannot find class %qs"
-msgstr "no se puede encontrar la clase `%s'"
+msgstr "no se puede encontrar la clase %qs"
-#: objc/objc-act.c:2640
-#, fuzzy, c-format
+#: objc/objc-act.c:2685
+#, c-format
msgid "class %qs already exists"
-msgstr "ya existe la clase `%s'"
+msgstr "ya existe la clase %qs"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
-#, fuzzy, c-format
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
+#, c-format
msgid "%qs redeclared as different kind of symbol"
-msgstr "`%s' redeclarado como un tipo diferente de símbolo"
+msgstr "%qs redeclarado como un tipo diferente de símbolo"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
msgid "%Jprevious declaration of '%D'"
msgstr "%Jdeclaración previa de '%D'"
-#: objc/objc-act.c:2893
-#, fuzzy
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
-msgstr "Use `-fobjc-exceptions' para activar la sintaxis de excepción de Objective-C"
+msgstr "Use %<-fobjc-exceptions%> para activar la sintaxis de excepción de Objective-C"
-#: objc/objc-act.c:3222
-#, fuzzy
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
-msgstr "el parámetro de `@catch' no es un tipo de clase conocido para Objective-C"
+msgstr "el parámetro de @catch no es un tipo de clase conocido para Objective-C"
-#: objc/objc-act.c:3238
-#, fuzzy
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
-msgstr "la excepción del tipo `%T' será atrapada"
+msgstr "la excepción del tipo %<%T%> será atrapada"
-#: objc/objc-act.c:3240
-#, fuzzy
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
-msgstr " por un manejador anterior para `%T'"
+msgstr "%H por un manejador anterior para %<%T%>"
-#: objc/objc-act.c:3293
-#, fuzzy
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
-msgstr "`@try' sin `@catch' o `@finally'"
+msgstr "%<@try%> sin %<@catch%> o %<@finally%>"
-#: objc/objc-act.c:3340
-#, fuzzy
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
-msgstr "se usó `@throw;' (rethrow) fuera de un bloque `@catch'"
+msgstr "se usó %<@throw%> (rethrow) fuera de un bloque @catch"
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr "%Jel tipo '%D' no tiene un tamaño conocido"
-#: objc/objc-act.c:4229
-#, fuzzy
+#: objc/objc-act.c:4271
msgid "%J%s %qs"
-msgstr "%J%s `%s'"
+msgstr "%J%s %qs"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr "especificación de instancia de variable inconsistente"
-#: objc/objc-act.c:5127
-#, fuzzy
+#: objc/objc-act.c:5169
msgid "can not use an object as parameter to a method"
-msgstr "no se puede usar un objeto como un parámetro para un método\n"
+msgstr "no se puede usar un objeto como un parámetro para un método"
-#: objc/objc-act.c:5329
-#, fuzzy
+#: objc/objc-act.c:5377
msgid "multiple %s named %<%c%s%> found"
-msgstr "se encontraron múltiples %s nombrados `%c%s'"
+msgstr "se encontraron múltiples %s nombrados %<%c%s%>"
-#: objc/objc-act.c:5554
-#, fuzzy, c-format
+#: objc/objc-act.c:5602
+#, c-format
msgid "no super class declared in @interface for %qs"
-msgstr "no se declaró una super clase en @interface para `%s'"
+msgstr "no se declaró una super clase en @interface para %qs"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
-msgstr ""
+msgstr "se encontró %<-%s%> en lugar de %<+%s%> en el(los) protocolo(s)"
-#: objc/objc-act.c:5654
-#, fuzzy, c-format
+#: objc/objc-act.c:5704
+#, c-format
msgid "invalid receiver type %qs"
-msgstr "tipo receptor `%s' inválido"
+msgstr "tipo receptor %qs inválido"
-#: objc/objc-act.c:5669
-#, fuzzy
+#: objc/objc-act.c:5719
msgid "%<%c%s%> not found in protocol(s)"
-msgstr "`%c%s' no se ha implementado por el(los) protocolo(s)"
+msgstr "no se encontró %<%c%s%> en el(los) protocolo(s)"
-#: objc/objc-act.c:5683
-#, fuzzy
+#: objc/objc-act.c:5733
msgid "%qs may not respond to %<%c%s%>"
-msgstr "`%s' tal vez no responde a `%c%s'"
+msgstr "%qs tal vez no responde a %<%c%s%>"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
-msgstr ""
+msgstr "no se encontró el método %<%c%s%>"
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr "(Mensajes sin una firma de método coincidente"
-#: objc/objc-act.c:5698
-#, fuzzy
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
-msgstr "se asumirán que devuelven `id' y aceptarán"
+msgstr "se asumirán que devuelven %<id%> y aceptarán"
-#: objc/objc-act.c:5699
-#, fuzzy
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
-msgstr "`...' sin argumentos"
+msgstr "%<...%> como argumentos.)"
-#: objc/objc-act.c:5930
-#, fuzzy, c-format
+#: objc/objc-act.c:5980
+#, c-format
msgid "undeclared selector %qs"
-msgstr "selector `%s' sin declarar"
+msgstr "selector %qs sin declarar"
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
@@ -20571,180 +19299,168 @@ msgstr "selector `%s' sin declarar"
#. 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:5972
-#, fuzzy, c-format
+#: objc/objc-act.c:6022
+#, c-format
msgid "instance variable %qs accessed in class method"
-msgstr "la variable de instancia `%s' es accessada en el método de la clase"
+msgstr "la variable de instancia %qs es accessada en el método de la clase"
-#: objc/objc-act.c:6184
-#, fuzzy
+#: objc/objc-act.c:6234
msgid "duplicate declaration of method %<%c%s%>"
-msgstr "declaración duplicada del método `%c%s'"
+msgstr "declaración duplicada del método %<%c%s%>"
-#: objc/objc-act.c:6229
-#, fuzzy
+#: objc/objc-act.c:6279
msgid "duplicate interface declaration for category %<%s(%s)%>"
-msgstr "declaración de interfaz duplicada para la categoría `%s(%s)'"
+msgstr "declaración de interfaz duplicada para la categoría %<%s(%s)%>"
-#: objc/objc-act.c:6256
-#, fuzzy, c-format
+#: objc/objc-act.c:6306
+#, c-format
msgid "illegal reference type specified for instance variable %qs"
-msgstr "se especificó un tipo de referencia ilegal para la variable de instancia `%s'"
+msgstr "se especificó un tipo de referencia ilegal para la variable de instancia %qs"
-#: objc/objc-act.c:6267
-#, fuzzy, c-format
+#: objc/objc-act.c:6317
+#, c-format
msgid "instance variable %qs has unknown size"
-msgstr "la variable de instancia `%s' es de tamaño desconocido"
+msgstr "la variable de instancia %qs es de tamaño desconocido"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
-#, fuzzy, c-format
+#: objc/objc-act.c:6331
+#, c-format
msgid "type %qs has virtual member functions"
-msgstr "el tipo `%s' tiene funciones virtuales miembro virtuales"
+msgstr "el tipo %qs tiene funciones virtuales miembro virtuales"
-#: objc/objc-act.c:6282
-#, fuzzy, c-format
+#: objc/objc-act.c:6332
+#, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
-msgstr "se especificó un tipo agregado `%s' ilegal para la variable de instancia `%s'"
+msgstr "se especificó un tipo agregado %qs ilegal para la variable de instancia %qs"
-#: objc/objc-act.c:6290
-#, fuzzy, c-format
+#: objc/objc-act.c:6340
+#, c-format
msgid "type %qs has a user-defined constructor"
-msgstr "el tipo `%s' tiene un constructor definido por el usuario"
+msgstr "el tipo %qs tiene un constructor definido por el usuario"
-#: objc/objc-act.c:6292
-#, fuzzy, c-format
+#: objc/objc-act.c:6342
+#, c-format
msgid "type %qs has a user-defined destructor"
-msgstr "el tipo `%s' tiene un destructor definido por el usuario"
+msgstr "el tipo %qs tiene un destructor definido por el usuario"
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr "los constructores y destructores de C++ no se invocan para campos Objective-C"
-#: objc/objc-act.c:6383
-#, fuzzy, c-format
+#: objc/objc-act.c:6433
+#, c-format
msgid "instance variable %qs is declared private"
-msgstr "la variable de instancia `%s' es declarada privada"
+msgstr "la variable de instancia %qs es declarada privada"
-#: objc/objc-act.c:6392
-#, fuzzy, c-format
+#: objc/objc-act.c:6442
+#, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
-msgstr "la variable de instancia `%s' es %s; esto será un error severo en el futuro"
+msgstr "la variable de instancia %qs es %s; esto será un error severo en el futuro"
-#: objc/objc-act.c:6399
-#, fuzzy, c-format
+#: objc/objc-act.c:6449
+#, c-format
msgid "instance variable %qs is declared %s"
-msgstr "la variable de instancia `%s' es declarada %s"
+msgstr "la variable de instancia %qs es declarada %s"
-#: objc/objc-act.c:6409
-#, fuzzy
+#: objc/objc-act.c:6459
msgid "static access to object of type %<id%>"
-msgstr "acceso estático al objeto de tipo `id'"
+msgstr "acceso estático al objeto de tipo %<id%>"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
-#, fuzzy, c-format
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
+#, c-format
msgid "incomplete implementation of class %qs"
-msgstr "implementación incompleta de la clase `%s'"
+msgstr "implementación incompleta de la clase %qs"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
-#, fuzzy, c-format
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
+#, c-format
msgid "incomplete implementation of category %qs"
-msgstr "implementación incompleta de la categoría `%s'"
+msgstr "implementación incompleta de la categoría %qs"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
-#, fuzzy
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
msgid "method definition for %<%c%s%> not found"
-msgstr "no se encuentra la definición de método para `%c%s'"
+msgstr "no se encuentra la definición de método para %<%c%s%>"
-#: objc/objc-act.c:6570
-#, fuzzy, c-format
+#: objc/objc-act.c:6620
+#, c-format
msgid "%s %qs does not fully implement the %qs protocol"
-msgstr "%s `%s' no implementa completamente el protocolo `%s'"
+msgstr "%s %qs no implementa completamente el protocolo %qs"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
-#, fuzzy
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
msgid "%<@end%> missing in implementation context"
-msgstr "falta un `@end' en el contexto de una implementación"
+msgstr "falta un %<@end%> en el contexto de una implementación"
-#: objc/objc-act.c:6641
-#, fuzzy, c-format
+#: objc/objc-act.c:6691
+#, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
-msgstr "no se puede encontrar la declaración de interfaz para `%s', superclase de `%s'"
+msgstr "no se puede encontrar la declaración de interfaz para %qs, superclase de %qs"
-#: objc/objc-act.c:6668
-#, fuzzy, c-format
+#: objc/objc-act.c:6718
+#, c-format
msgid "reimplementation of class %qs"
-msgstr "reimplementación de la clase `%s'"
+msgstr "reimplementación de la clase %qs"
-#: objc/objc-act.c:6699
-#, fuzzy, c-format
+#: objc/objc-act.c:6749
+#, c-format
msgid "conflicting super class name %qs"
-msgstr "el nombre de la super clase `%s' causa conflicto"
+msgstr "el nombre de la super clase %qs causa conflicto"
-#: objc/objc-act.c:6701
-#, fuzzy, c-format
+#: objc/objc-act.c:6751
+#, c-format
msgid "previous declaration of %qs"
-msgstr "declaración previa de `%s'"
+msgstr "declaración previa de %qs"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
-#, fuzzy, c-format
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
+#, c-format
msgid "duplicate interface declaration for class %qs"
-msgstr "declaración de interfaz duplicada para la clase `%s'"
+msgstr "declaración de interfaz duplicada para la clase %qs"
-#: objc/objc-act.c:6977
-#, fuzzy, c-format
+#: objc/objc-act.c:7022
+#, c-format
msgid "duplicate declaration for protocol %qs"
-msgstr "declaración duplicada para el protocolo `%s'"
+msgstr "declaración duplicada para el protocolo %qs"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
-#, fuzzy
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
-msgstr "%J%s `%c%s'"
+msgstr "%J%s %<%c%s%>"
-#: objc/objc-act.c:7784
-#, fuzzy, c-format
+#: objc/objc-act.c:7849
+#, c-format
msgid "no super class declared in interface for %qs"
-msgstr "no se declaró una super clase en la interfaz para `%s'"
+msgstr "no se declaró una super clase en la interfaz para %qs"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] debe aparecer en el contexto de un método"
-#: objc/objc-act.c:8459
-#, fuzzy, c-format
+#: objc/objc-act.c:8554
+#, c-format
msgid "local declaration of %qs hides instance variable"
-msgstr "la declaración local de `%s' oculta la variable de instancia"
+msgstr "la declaración local de %qs oculta la variable de instancia"
-#: objc/objc-parse.y:2720
-#, fuzzy
+#: objc/objc-parse.y:2748
msgid "extra semicolon in method definition specified"
-msgstr "se especificó un punto y coma extra en un struct o union"
+msgstr "se especificó un punto y coma extra en la definición del método especificado"
#: treelang/tree1.c:278
-#, fuzzy
msgid "%HDuplicate name %q.*s."
-msgstr "%Hetiqueta duplicada `%D'"
+msgstr "%HEtiqueta duplicada %q.*s."
-#: treelang/treetree.c:842
-#, fuzzy
+#: treelang/treetree.c:826
msgid "Global register variable %qD used in nested function."
-msgstr "se usó la variable de registro global `%s' en funciones anidadas"
+msgstr "Se usó la variable de registro global %qD en una función anidada."
-#: treelang/treetree.c:846
-#, fuzzy
+#: treelang/treetree.c:830
msgid "Register variable %qD used in nested function."
-msgstr "se usó la variable de registro `%s' en funciones anidadas"
+msgstr "Se usó la variable de registro %qD en una función anidada."
-#: treelang/treetree.c:852
-#, fuzzy
+#: treelang/treetree.c:836
msgid "Address of global register variable %qD requested."
-msgstr "se solicitó la dirección de la variable de registro global `%s'"
+msgstr "Se solicitó la dirección de la variable de registro global %qD."
-#: treelang/treetree.c:857
-#, fuzzy
+#: treelang/treetree.c:841
msgid "Address of register variable %qD requested."
-msgstr "se solicitó la dirección de la variable register `%s'"
+msgstr "Se solicitó la dirección de la variable de registro %qD."
#: options.c:943
msgid "Display this information"
@@ -20771,9 +19487,8 @@ msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value. If just <ma
msgstr "-D<macro>[=<val>]\tDefine una <macro> con <val> como su valor. Si sólo se da la <macro>, <val> se toma como 1"
#: options.c:973
-#, fuzzy
msgid "-F <dir>\tAdd <dir> to the end of the main framework include path "
-msgstr "-iwithprefixbefore <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión principal"
+msgstr "-F <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión del marco de trabajo principal"
#: options.c:976
msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
@@ -20785,7 +19500,7 @@ msgstr "Mostrar los nombres de los ficheros de encabezado mientras se utilizan"
#: options.c:985
msgid "-J<directory>\tPut MODULE files in 'directory'"
-msgstr ""
+msgstr "-J<directorio>\tColoca los ficheros MODULE en el 'directorio'"
#: options.c:991
msgid "Generate make dependencies and compile"
@@ -20825,16 +19540,15 @@ msgstr "Esta opción es obsoleta; utilice en su lugar -Wextra"
#: options.c:1036
msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
-msgstr ""
+msgstr "Avisar sobre cosas que cambiarán cuando se compile con un compilador que cumpla con la ABI"
#: options.c:1039
msgid "Warn about returning structures, unions or arrays"
msgstr "Avisar sobre la devolución de estructuras, unions o matrices"
#: options.c:1042
-#, fuzzy
msgid "Warn about possible aliasing of dummy arguments"
-msgstr "Avisar sobre posibles paréntesis faltantes"
+msgstr "Avisar sobre posibles aliases de argumentos de relleno"
#: options.c:1048
msgid "Warn about casting functions to incompatible types"
@@ -20861,9 +19575,8 @@ msgid "Synonym for -Wcomment"
msgstr "Sinónimo de -Wcomment"
#: options.c:1066
-#, fuzzy
msgid "Warn about implicit conversion"
-msgstr "Avisar sobre la declaración implícita de funciones"
+msgstr "Avisar sobre conversiones implícitas"
#: options.c:1069
msgid "Warn when all constructors and destructors are private"
@@ -20874,9 +19587,8 @@ msgid "Warn when a declaration is found after a statement"
msgstr "Avisar cuando se encuentra una declaración después de una declaración"
#: options.c:1075
-#, fuzzy
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
-msgstr "Avisar si se usan clases, métodos o campos obsoletos"
+msgstr "Avisar si se usan opciones de compilador, clases, métodos o campos obsoletos"
#: options.c:1078
msgid "Warn about uses of __attribute__((deprecated)) declarations"
@@ -20916,7 +19628,7 @@ msgstr "Avisar si se encuentran declaraciones vacías obsoletas"
#: options.c:1105
msgid "Exit on the first error occurred"
-msgstr ""
+msgstr "Salir cuando suceda el primer error"
#: options.c:1108
msgid "Warn if testing floating point numbers for equality"
@@ -20943,9 +19655,8 @@ msgid "Warn about strftime formats yielding 2-digit years"
msgstr "Avisar sobre formatos de strftime que producen dos dígitos para el año"
#: options.c:1126
-#, fuzzy
msgid "Warn about zero-length formats"
-msgstr "cadena de formato %s de longitud cero"
+msgstr "Avisar sobre formatos de longitud cero"
#: options.c:1135
msgid "Warn about implicit function declarations"
@@ -20956,9 +19667,8 @@ msgid "Warn when a declaration does not specify a type"
msgstr "Avisar cuando una declaración no especifique un tipo"
#: options.c:1141
-#, fuzzy
msgid "Warn about calls with implicit interface"
-msgstr "Avisar sobre la declaración implícita de funciones"
+msgstr "Avisar sobre llamadas con interfaz implícita"
#: options.c:1144
msgid "Deprecated. This switch has no effect."
@@ -20985,9 +19695,8 @@ msgid "-Wlarger-than-<number>\tWarn if an object is larger than <number> bytes"
msgstr "-Wlarger-than-<número>\tAvisar si un objeto es más grande que <número> bytes"
#: options.c:1162
-#, fuzzy
msgid "Warn about truncated source lines"
-msgstr "Avisar sobre características obsoletas del compilador"
+msgstr "Avisar sobre líneas de código truncadas"
#: options.c:1165
msgid "Do not warn about using \"long long\" when -pedantic"
@@ -21006,18 +19715,16 @@ msgid "Warn about global functions without previous declarations"
msgstr "Avisar sobre funciones globales sin declaraciones previas"
#: options.c:1177
-#, fuzzy
msgid "Warn about missing fields in struct initializers"
-msgstr "Avisar sobre posibles llaves faltantes alrededor de los inicializadores"
+msgstr "Avisar sobre campos faltantes en los inicializadores de struct"
#: options.c:1180
msgid "Warn about functions which might be candidates for format attributes"
msgstr "Avisar por funciones que pueden ser candidatas para atributos de formato"
#: options.c:1183
-#, fuzzy
msgid "Warn about user-specified include directories that do not exist"
-msgstr "Avisar sobre macros definidas en el fichero principal que no se usan"
+msgstr "Avisar sobre directorios de inclusión definidos por el usuario que no existen"
#: options.c:1186
msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
@@ -21045,12 +19752,11 @@ msgstr "Avisar sobre destructores no virtuales"
#: options.c:1204
msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL"
-msgstr ""
+msgstr "Avisar sobre el paso de NULL a ranuras de argumento marcadas que requieren no-NULL"
#: options.c:1207
-#, fuzzy
msgid "Warn about usage of non-standard intrinsics"
-msgstr "Avisar sobre el uso de (sólo algunas por ahora) extensiones Fortran"
+msgstr "Avisar sobre el uso de intrínsecos no estándar"
#: options.c:1210
msgid "Warn if a C-style cast is used in a program"
@@ -21089,663 +19795,650 @@ msgid "Warn about function pointer arithmetic"
msgstr "Avisar sobre la aritmética de punteros de funciones"
#: options.c:1237
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "Avisar cuando un puntero difiere en signo en una asignación."
+
+#: options.c:1240
msgid "Warn if inherited methods are unimplemented"
msgstr "Avisar si los métodos heredados no están implementados"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Avisar sobre declaraciones múltiples del mismo objeto"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr "Avisar si se especifican modificadores cuando no son necesarios"
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr "Avisar cuando el compilador reordene código"
-#: options.c:1249
+#: options.c:1252
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr "Avisar cuando el tipo de devolución por defecto de una función cambia a \"int\" (C), o sobre tipos de devolución inconsistentes (C++)"
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr "Avisar si un selector tiene métodos múltiples"
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr "Avisar sobre posibles violaciones a las reglas de secuencia de punto"
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr "Avisar cuando una variable local oscurece otra"
-#: options.c:1261
+#: options.c:1264
msgid "Warn about signed-unsigned comparisons"
msgstr "Avisar sobre comparaciones signed-unsigned"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr "Avisar cuando la sobrecarga promueva de unsigned a signed"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
msgid "Warn about code which might break strict aliasing rules"
msgstr "Avisar sobre código que pueda romper las reglas estrictas de aliases"
-#: options.c:1273
+#: options.c:1276
msgid "Warn about unprototyped function declarations"
msgstr "Avisar sobre declaraciones de función sin prototipo"
-#: options.c:1276
-#, fuzzy
+#: options.c:1279
msgid "Warn about \"suspicious\" constructs"
-msgstr "Avisar sobre declaraciones sospechosas de \"main\""
+msgstr "Avisar sobre construcciones \"sospechosas\" "
-#: options.c:1279
+#: options.c:1282
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"
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "Avisar sobre switches enumerados que carezcan de una declaración \"default:\""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr "Avisar sobre todos los switches enumerados que carezcan de un case específico"
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr "Avisar cuando el comportamiento de síntesis difiera de Cfront"
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr "No suprimir los avisos de los encabezados del sistema"
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr "Avisar sobre características no presentes en C tradicional"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr "Avisar si se encuentran trigrafos que puedan afectar el significado del programa"
-#: options.c:1300
-#, fuzzy
+#: options.c:1303
msgid "Warn about @selector()s without previously declared methods"
-msgstr "Avisar sobre funciones globales sin declaraciones previas"
+msgstr "Avisar sobre @selector()es sin métodos declarados previamente"
-#: options.c:1303
+#: options.c:1306
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "Avisar si se usa una macro indefinida en una directiva #if"
-#: options.c:1306
-#, fuzzy
+#: options.c:1309
msgid "Warn about underflow of numerical constant expressions"
-msgstr "desbordamiento en la expresión constante"
+msgstr "Avisar sobre desbordamiento por debajo de expresiones numéricas constantes"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr "Avisar sobre variables automáticas sin inicializar"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr "Avisar sobre pragmas no reconocidos"
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr "Avisar sobre código que nunca se ejecutará"
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr "Activar todos los avisos -Wunused-"
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "Avisar cuando no se use una función"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "Avisar cuando no se use una etiqueta"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr "Avisar sobre macros definidas en el fichero principal que no se usan"
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "Avisar cuando no se use un parámetro de una función"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "Avisar cuando no se use un valor de una expresión"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "Avisar cuando no se use una variable"
-#: options.c:1342
-#, fuzzy
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
-msgstr "No avisar sobre el uso de \"long long\" cuando se use -pedantic"
+msgstr "No avisar sobre el uso de macros variadic cuando se use -pedantic"
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr "Dar a las cadenas el tipo \"matriz de char\""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr "Un sinónimo de -std=c89. En una versión futura de GCC será sinónimo con -std=99 en lugar del actual"
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr "-aux-info <fichero>\tEmitir la información de declaraciones en el <fichero>"
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr "-d<letras>\tActiva los volcados de pasos específicos del compilador"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
-msgstr ""
+msgstr "Establece los tipos real e integer por defecto para precisión doble"
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr "-dumpbase <fichero>\tEstablecer el nombre base a usar para los volcados"
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr "--CLASSPATH\tObsoleto; utilice en su lugar --classpath"
-#: options.c:1375
-#, fuzzy
+#: options.c:1378
msgid "Generate position-independent code if possible (large mode)"
-msgstr "Generar código independiente de posición si es posible"
+msgstr "Generar código independiente de posición si es posible (modo large)"
-#: options.c:1378
-#, fuzzy
+#: options.c:1381
msgid "Generate position-independent code for executables if possible (large mode)"
-msgstr "Generar código independiente de posición para ejecutables si es posible"
+msgstr "Generar código independiente de posición para ejecutables si es posible (modo large)"
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr "Cumplir las semánticas de control de acceso de miembros de clase"
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr "Alinear el inicio de las funciones"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr "Alinear las etiquetas que solamente se alcanzan saltando"
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr "Alinear todas las etiquetas"
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr "Alinear el inicio de los ciclos"
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr "Cambiar cuando se emitan las instancias de la plantilla"
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr "Especificar que los argumentos pueden ser alias de cada otro y de los globales"
-#: options.c:1420
+#: options.c:1423
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"
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr "Asumir que los argumentos no pueden ser alias de globales o de cada otro"
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr "Reconocer la palabra clave \"asm\""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
-msgstr ""
+msgstr "Permitir el uso de la palabra clave assert"
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr "Generar tablas de desenredo que sean exactas en cada límite de instrucción"
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr "--bootclasspath=<ruta>\tReemplazar la ruta del sistema"
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr "Generar código para revisar los límites antes de indizar matrices"
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr "Reemplazar add, compare, branch con branch en la cuenta de registros"
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr "Usar la información de análisis de perfil para las probabilidades de ramificación"
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr "Realizar optimización de carga de ramificación objetivo antes del hilo prólogo / epílogo"
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr "Realizar optimización de carga de ramificación objetivo después del hilo prólogo / epílogo"
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
-msgstr ""
+msgstr "Restringir que la migración de carga de objetivos no reuse registros en ningún bloque básico"
-#: options.c:1462
+#: options.c:1465
msgid "Recognize built-in functions"
msgstr "Reconocer funciones internas"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr "-fcall-saved-<registro>\tMarcar el <registro> como preservado entre funciones"
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr "-fcall-used-<registro>\tMarcar el <registro> como corrupto para llamadas de función"
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr "Guardar registros alrededor de llamadas de función"
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr "Revisar el valor de devolución de new"
-#: options.c:1480
-#, fuzzy
+#: options.c:1483
msgid "Generate checks for references to NULL"
-msgstr "Generar código para una DLL"
+msgstr "Generar revisiones para referencias a NULL"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr "--classpath=<ruta>\tEstablecer la ruta de clases"
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr "No poner globales sin inicializar en la sección común"
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr "Permitir que los argumentos del operador '?' tengan tipos diferentes"
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr "Reducir el tamaño de los ficheros objeto"
-#: options.c:1498
+#: options.c:1501
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Hacer que las cadenas literales sean \"const char[]\" en lugar de \"char[]\""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr "-fconst-string-class=<nombre>\tUsar la clase <nombre> para cadenas constantes"
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr "Realizar el paso de optimización de copia-propagación de registros"
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr "Realizar optimizaciones de saltos cruzados"
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr "Cuando se esté ejecutando CSE, seguir a los saltos a sus objetivos"
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr "Cuando se esté ejecutando CSE, seguir a los saltos condicionales"
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr "Omitir el paso de reducción de rango al realizar divisiones complejas"
+
+#: options.c:1522
msgid "Place data items into their own section"
msgstr "Colocar los elementos de datos en su propia sección"
-#: options.c:1519
+#: options.c:1525
msgid "Inline member functions by default"
msgstr "Hacer Inline por defecto a las funciones miembro"
-#: options.c:1522
+#: options.c:1528
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"
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr "Intentar rellenar las ranuras de retraso de las instrucciones de ramificación"
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr "Borrar las revisiones de punteros nulos sin uso"
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr "-fdiagnostics-show-location=[once|every-line]\tIndica que tan seguido se debe emitir la ubicación del código al inicio de los diagnósticos con corte de línea"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
-msgstr ""
+msgstr "Permitir signos de dólar en nombres de entidades"
-#: options.c:1543
+#: options.c:1549
msgid "Permit '$' as an identifier character"
msgstr "Permitir '$' como un identificador de carácter"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr "-fdump-<tipo>\tVolcar varios internos del compilador a un fichero"
-#: options.c:1549
-#, fuzzy
+#: options.c:1555
msgid "Display the code tree after parsing."
-msgstr "Muestra la versión del compilador"
+msgstr "Muestra el árbol de código después de decodificar."
-#: options.c:1552
+#: options.c:1558
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"
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr "Realizar la eliminación de DWARF2 duplicados"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr "Realizar eliminación de tipos sin uso en la información de depuración"
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
-msgstr ""
+msgstr "Generar un fichero clase como salida"
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
-msgstr ""
+msgstr "Alias para -femit-class-file"
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr "--encoding=<codificación>\tEscoger la codificación de entrada (por defecto viene del local)"
-#: options.c:1582
+#: options.c:1588
msgid "Generate code to check exception specifications"
msgstr "Generar código para revisar excepciones de especificaciones"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Activar el manejo de excepciones"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr "-fexec-charset=<cset>\tConvertir todas las constantes de cadenas y carácter al conjunto de caracteres <cset>"
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr "Realizar un número de optimizaciones menores y costosas"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
-msgstr ""
+msgstr "--extdirs=<ruta>\tEstablece la ruta del directorio de extensiones"
-#: options.c:1606
-#, fuzzy
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
-msgstr "el fichero de entrada es la lista de nombres de fichero a compilar"
+msgstr "El fichero de entrada es un fichero con la lista de nombres de fichero a compilar"
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr "Asumir que no se generan NaNs o infinitos"
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr "-ffixed-<registro>\tMarca el <registro> como no disponible para el compilador"
-#: options.c:1615
-#, fuzzy
+#: options.c:1621
msgid "Assume that the source file is fixed form"
-msgstr "Asumir que no se pueden hacer alias de los punteros"
+msgstr "Asumir que el fichero fuente es de forma fija"
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
-msgstr ""
+msgstr "-ffixed-line-length-<n>\t\tUsa n como ancho de línea de carácter en modo fijo"
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
-msgstr ""
+msgstr "Permitir ancho de línea de carácter arbitrario en modo fijo"
-#: options.c:1624
-#, fuzzy
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
-msgstr "Control del orden de alojamiento de registros enteros"
+msgstr "No alojar floats y doubles en registros de precisión extendida"
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr "El ámbito de las variables de la declaración de inicio-de-for es local para el ciclo"
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr "Copiar las constantes de direcciones de memoria en registros antes de usarlos"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr "Revisar siempre por archivos de clases no generados por gcj"
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr "Copiar los operandos de memoria en registros antes de usarlos"
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
-msgstr ""
+msgstr "Asumir que el fichero fuente es de forma libre"
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr "No asumir que existen las bibliotecas C estándard y \"main\""
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr "Permitir que las direcciones de las funciones se conservern en registros"
-#: options.c:1648
+#: options.c:1654
msgid "Place each function into its own section"
msgstr "Colocar cada función en su propia sección"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr "Realizar la eliminación de subexpresiones comunes globales"
-#: options.c:1654
-#, fuzzy
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
-msgstr "Realizar la eliminación de subexpresiones comunes globales"
+msgstr "Realizar la eliminación de subexpresiones comunes globales despúes del alojamiento de registros"
-#: options.c:1657
-#, fuzzy
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
-msgstr "Realizar el movimiento de la carga mejorada durante la eliminación de subexpresiones comunes globales"
+msgstr "Realizar la carga redundante después de la eliminación de almacenamiento en las subexpresiones comunes globales"
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "Realizar el movimiento de la carga mejorada durante la eliminación de subexpresiones comunes globales"
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr "Realizar el movimiento de guardado después de la eliminación de subexpresiones comunes globales"
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr "Reconocer las palabras claves definidas por GNU"
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr "Generar código para el ambiente de tiempo de ejecución GNU"
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr "Activar la predicción de probabilidades de ramificación"
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
-msgstr ""
+msgstr "Asumir que el tiempo de ejecución usa una tabla hash para mapear un objeto a su estructura de sincronización"
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr "Asumir el ambiente normal de ejecución C"
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr "Activar el soporte para objetos enormes"
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "Procesar directivas #ident"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr "Realizar la conversión de saltos condicionales a equivalentes sin ramificación"
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "Realizar la conversión de saltos condicionales a ejecución condicional"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr "Exportar funciones aún si pueden ser inline"
-#: options.c:1705
+#: options.c:1711
msgid "Emit implicit instantiations of inline templates"
msgstr "Emitir instanciaciones implícitas de plantillas inline"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
-msgstr ""
+msgstr "Especificar que no se permite tipos implícitos, a menos que se sobreescriban con sentencias IMPLICIT explícitas"
-#: options.c:1711
+#: options.c:1717
msgid "Emit implicit instantiations of templates"
msgstr "Emitir instanciaciones implícitas de plantillas"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr "Utilizar tablas de desplazamiento para llamadas a métodos virtuales"
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr "No generar directivas .size"
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr "Poner atención a la palabra clave \"inline\""
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr "-finline-limit=<número>\tLimita el tamaño de las funciones inline a <número>"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr "-finput-charset=<cset> Establece el conjunto de caracteres por defecto para los ficheros fuente."
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr "Instrumentar funciones de entrada y salida con llamadas de análisis de perfil"
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
-msgstr ""
+msgstr "Optimizar la inducción de variables en los árboles"
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr "Asumir que las funciones nativas se implementan usando JNI"
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr "Generar código para las funciones aún si están completamente inline"
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr "Emitir variables static const aún si no se usan"
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr "Dar a los símbolos externos un subrayado inicial"
-#: options.c:1756
+#: options.c:1762
msgid "Perform loop optimizations"
msgstr "Realizar optimizaciones de ciclo"
-#: options.c:1759
-#, fuzzy
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
-msgstr "Realizar optimizaciones de ciclo"
+msgstr "Realizar optimizaciones de ciclo usando el nuevo optimizador de ciclo"
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr "Establecer errno después de las funciones matemáticas internas"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
+"-fmax-identifier-length=<n>\n"
+"Máxima longitud de identificador."
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
-msgstr ""
+msgstr "-fmax-stack-var-size=<n>\tTamaño en bytes de la matriz más grande que se colocará en la pila"
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr "Reportar el alojamiento en memoria permanente"
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr "Intentar mezclar constantes idénticas y variables constantes"
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr "Intentar mezclar constantes idénticas a través de las unidades de compilación"
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr "-fmessage-length=<número>\tLimita los diagnósticos a <número> caracteres por línea. 0 suprime el corte de línea"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
-msgstr ""
+msgstr "Establecer la accesibilidad por defecto de las entidades de módulo en PRIVATE"
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
-msgstr ""
+msgstr "Realizar calendarización SMS basada en módulo antes del primer paso de calendarización"
-#: options.c:1789
-#, fuzzy
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
-msgstr "Forzar que todas las computaciones invariantes del ciclo sean fuera del ciclo"
+msgstr "Mover las computaciones invariantes de ciclo fuera de los ciclos"
-#: options.c:1792
+#: options.c:1798
msgid "Don't warn about uses of Microsoft extensions"
msgstr "No avisar sobre los usos de extensiones Microsoft"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
-msgstr ""
+msgstr "Agregar instrumentación mudflap de revisión de límites para programas de un solo hilo."
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
-msgstr ""
+msgstr "Ignorar operaciones de lectura al insertar instrumentación mudflap."
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
-msgstr ""
-
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr "Utilizar coloración de grafos para el alojamiento de registros."
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
+msgstr "Agregar instrumentación mudflap de revisión de límites para programas multi-hilo."
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
@@ -21757,7 +20450,7 @@ msgstr "Asumir que los receptores de mensajes de Objective-C pueden ser nil"
#: options.c:1822
msgid "Don't generate code, just do syntax and semantics checking"
-msgstr ""
+msgstr "No generar código, sólo revisar sintaxis y semántica"
#: options.c:1825
msgid "Support synchronous non-call exceptions"
@@ -21768,9 +20461,8 @@ msgid "Enable Objective-C exception and synchronization syntax"
msgstr "Activar la sintaxis de excepción y sincronización de Objective-C"
#: options.c:1837
-#, fuzzy
msgid "Enable Objective-C setjmp exception handling runtime"
-msgstr "Activar la sintaxis de excepción y sincronización de Objective-C"
+msgstr "Activar el manejo de excepciones setjmp en tiempo de ejecución de Objective-C"
#: options.c:1840
msgid "When possible do not generate stack frames"
@@ -21798,7 +20490,7 @@ msgstr "Activar los diagnósticos opcionales"
#: options.c:1861
msgid "Try to layout derived types as compact as possible"
-msgstr ""
+msgstr "Tratar de acomodar los tipos derivados tan compactos como sea posible"
#: options.c:1864
msgid "Pack structure members together without holes"
@@ -21806,7 +20498,7 @@ msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros"
#: options.c:1867
msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
-msgstr ""
+msgstr "-fpack-struct=<número>\tEstablece la alineación inicial máxima de estructuras miembro"
#: options.c:1870
msgid "Return small aggregates in memory, not registers"
@@ -21814,7 +20506,7 @@ msgstr "Devolver los agregados small en memoria, no en registros"
#: options.c:1876
msgid "Look for and use PCH files even when preprocessing"
-msgstr ""
+msgstr "Buscar y utilizar ficheros PCH aún cuando se esté preprocesando"
#: options.c:1879
msgid "Perform loop peeling"
@@ -21833,14 +20525,12 @@ msgid "Downgrade conformance errors to warnings"
msgstr "Degradar los errores de concordancia a advertencias"
#: options.c:1891
-#, fuzzy
msgid "Generate position-independent code if possible (small mode)"
-msgstr "Generar código independiente de posición si es posible"
+msgstr "Generar código independiente de posición si es posible (modo small)"
#: options.c:1894
-#, fuzzy
msgid "Generate position-independent code for executables if possible (small mode)"
-msgstr "Generar código independiente de posición para ejecutables si es posible"
+msgstr "Generar código independiente de posición para ejecutables si es posible (modo small)"
#: options.c:1897
msgid "Generate prefetch instructions, if available, for arrays in loops"
@@ -21891,9 +20581,8 @@ msgid "Reorder basic blocks to improve code placement"
msgstr "Reordenar los bloques básicos para mejorar la ubicación del código"
#: options.c:1936
-#, fuzzy
msgid "Reorder basic blocks and partition into hot and cold sections"
-msgstr "Reordenar los bloques básicos para mejorar la ubicación del código"
+msgstr "Reordenar los bloques básicos y particionar en secciones caliente y fría"
#: options.c:1939
msgid "Reorder functions to improve code placement"
@@ -21901,7 +20590,7 @@ msgstr "Reordenar las funciones para mejorar la ubicación del código"
#: options.c:1942
msgid "Copy array sections into a contiguous block on procedure entry"
-msgstr ""
+msgstr "Copiar secciones de matriz en un bloque contiguo en la entrada de procedimiento"
#: options.c:1945
msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime"
@@ -21921,7 +20610,7 @@ msgstr "Ejecutar el optimizador de ciclos dos veces"
#: options.c:1957
msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
-msgstr ""
+msgstr "Activar/Desactivar la calendarización tradicional en ciclos que ya pasaron la calendarización módulo"
#: options.c:1960
msgid "Disable optimizations that assume default FP rounding behavior"
@@ -21985,7 +20674,7 @@ msgstr "Recalendarizar las instrucciones después del alojamiento de registros"
#: options.c:2005
msgid "Append a second underscore if the name already contains an underscore"
-msgstr ""
+msgstr "Agregar un segundo guión bajo si el nombre ya tiene un guión bajo"
#: options.c:2008
msgid "Mark data as shared rather than private"
@@ -22021,15 +20710,15 @@ msgstr "Convertir constantes de coma flotante a constantes de precisión simple"
#: options.c:2035
msgid "Use value profiling for speculative prefetching"
-msgstr ""
+msgstr "Usar valores de perfilado para precargado especulativo"
#: options.c:2038
msgid "Split lifetimes of induction variables when loops are unrolled."
-msgstr ""
+msgstr "Dividir tiempos de vida de las variables de inducción cuando se desenrollen los ciclos."
#: options.c:2044
msgid "Insert stack checking code into the program"
-msgstr "Inserta código de revisión de la pila en el programa"
+msgstr "Insertar código de revisión de la pila en el programa"
#: options.c:2050
msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
@@ -22077,7 +20766,7 @@ msgstr "Realizar optimizaciones de hilado de saltos"
#: options.c:2089
msgid "-fno-threadsafe-statics\tDo not generate thread-safe code for initializing local statics."
-msgstr ""
+msgstr "-fno-threadsafe-statics\tNo generar código seguro en hilos para inicializar statics locales."
#: options.c:2092
msgid "Report the time taken by each compiler pass"
@@ -22101,449 +20790,434 @@ msgstr "Atrapar desbordamientos signed en adición, sustracción y multiplicación"
#: options.c:2107
msgid "Use tree-ssa based implementation of profiling"
-msgstr ""
+msgstr "Usar la implementación basada en tree-ssa de perfilado"
#: options.c:2110
-#, fuzzy
msgid "Enable SSA-CCP optimization on trees"
-msgstr "Activar las optimizaciones SSA"
+msgstr "Activar las optimizaciones SSA-CCP en árboles"
#: options.c:2113
msgid "Enable loop header copying on trees"
-msgstr ""
+msgstr "Activar la copia de encabezado de ciclo en árboles"
#: options.c:2116
msgid "Coalesce memory temporaries in the SSA->normal pass"
-msgstr ""
+msgstr "Coalescer temporales de memoria en el paso SSA->normal"
#: options.c:2119
msgid "Replace SSA temporaries with better names in copies."
-msgstr ""
+msgstr "Reemplazar temporales SSA con mejores nombres en las copias."
#: options.c:2122
-#, fuzzy
msgid "Enable SSA dead code elimination optimization on trees"
-msgstr "Activar la eliminación agresiva de código muerto SSA"
+msgstr "Activar la optimización de eliminación de código muerto SSA en árboles"
#: options.c:2125
-#, fuzzy
msgid "Enable dominator optimizations"
-msgstr "Activar las optimizaciones del enlazador"
+msgstr "Activar las optimizaciones dominadoras"
#: options.c:2128
-#, fuzzy
msgid "Enable dead store elimination"
-msgstr "Activar la eliminación agresiva de código muerto SSA"
+msgstr "Activar la eliminación de almacenamiento muerto"
#: options.c:2131
msgid "Enable Full Redundancy Elimination (FRE) on trees"
-msgstr ""
+msgstr "Activar la Eliminación de Redundancia Completa en árboles"
#: options.c:2134
-#, fuzzy
msgid "Enable loop invariant motion on trees"
-msgstr "Forzar que todas las computaciones invariantes del ciclo sean fuera del ciclo"
+msgstr "Permitir movimiento invariante de ciclo en árboles"
#: options.c:2137
-#, fuzzy
msgid "Create canonical induction variables in loops"
-msgstr "Reducir la fuerza de todas las variables generales de inducción de ciclo"
+msgstr "Crear variables de inducción canónica en los ciclos"
#: options.c:2140
-#, fuzzy
msgid "Enable linear loop transforms on trees"
-msgstr "Activar las optimizaciones del enlazador"
+msgstr "Activar las transformaciones lineales de ciclos en árboles"
#: options.c:2143
-#, fuzzy
msgid "Enable loop optimizations on tree level"
-msgstr "Activar las optimizaciones SSA"
+msgstr "Activar las optimizaciones de ciclo a nivel de árbol"
#: options.c:2146
msgid "Perform live range splitting during the SSA->normal pass."
-msgstr ""
+msgstr "Realizar división de rango vivo durante el paso SSA->normal."
#: options.c:2149
-#, fuzzy
msgid "Enable SSA-PRE optimization on trees"
-msgstr "Activar las optimizaciones SSA"
+msgstr "Activar las optimizaciones SSA-PRE en árboles"
#: options.c:2152
msgid "Perform scalar replacement of aggregates"
-msgstr ""
+msgstr "Realizar reemplazo escalar de agregados"
#: options.c:2155
msgid "Replace temporary expressions in the SSA->normal pass"
-msgstr ""
+msgstr "Reemplazar expresiones temporales en el paso SSA->normal"
#: options.c:2158
-#, fuzzy
msgid "Enable loop vectorization on trees"
-msgstr "Activar las optimizaciones del enlazador"
+msgstr "Activar la vectorización de ciclos en árboles"
#: options.c:2161
-#, fuzzy
-msgid "Append underscores to externally visible names"
-msgstr "Agregar subrayado a los externos"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr "-ftree-vectorizer-verbose=<número> Establece el nivel de detalle del vectorizador"
#: options.c:2164
+msgid "Append underscores to externally visible names"
+msgstr "Agregar subrayado a los nombres visibles externamente"
+
+#: options.c:2167
msgid "Compile whole compilation unit at a time"
msgstr "Compilar la unidad de compilación completa a la vez"
-#: options.c:2167
+#: options.c:2170
msgid "Perform loop unrolling for all loops"
msgstr "Realizar el desenrollamiento del ciclo para todos los ciclos"
-#: options.c:2170
+#: options.c:2173
msgid "Perform loop unrolling when iteration count is known"
msgstr "Realizar el desenrollamiento del ciclo cuando se conoce la cuenta de iteración"
-#: options.c:2173
+#: options.c:2176
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr "Permitir optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO"
-#: options.c:2176
+#: options.c:2179
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr "Cuando no se proporciona \"signed\" o \"unsigned\" hacer unsigned el campo de bits"
-#: options.c:2179
+#: options.c:2182
msgid "Make \"char\" unsigned by default"
msgstr "Hacer que \"char\" sea unsigned por defecto"
-#: options.c:2182
+#: options.c:2185
msgid "Perform loop unswitching"
msgstr "Realizar la eliminación de opciones del ciclo"
-#: options.c:2185
+#: options.c:2188
msgid "Just generate unwind tables for exception handling"
msgstr "Sólo generar tablas de desenredo para manejo de excepciones"
-#: options.c:2188
-#, fuzzy
+#: options.c:2191
msgid "Generate code for the Boehm GC"
-msgstr "Generar código para Boehm GC"
+msgstr "Generar código para el GC de Boehm"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr "Usar __cxa_atexit para registrar destructores"
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
-msgstr ""
+msgstr "Llamar a una rutina de biblioteca para hacer divisiones enteras"
-# ¿O mejor "llamada de la cola"? cfuga
-#: options.c:2197
-#, fuzzy
+#: options.c:2200
msgid "Perform variable tracking"
-msgstr "Realizar optimización de la llamada del extremo"
+msgstr "Realizar seguimiento de variables"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
-msgstr ""
+msgstr "Aplicar la expansión de variables cuando se desenrollan los ciclos."
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr "Agregar comentarios extra a la salida de ensamblador"
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
-msgstr ""
+msgstr "Marcar todos los métodos inlined como que tienen visibilidad hidden"
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
-msgstr ""
+msgstr "-fvisibility=[default|internal|hidden|protected]\tEstablece la visibilidad de símbolos por defecto"
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr "Usar perfiles de valor de expresión en las optimizaciones"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr "Descartar funciones virtual sin usar"
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr "Implementar vtables usando thunks"
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr "Emitir símbolos comunes como símbolos débiles"
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr "Construir redes y dividir usos no relacionados de una sola variable"
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr "-fwide-exec-charset=<cset>\tConvertir todas las cadenas anchas y constantes de cáracter al conjunto de caracteres <cset>"
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr "Generar una directiva #line que apunte al directorio de trabajo actual"
# wraps around? No entiendo bien. cfuga
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr "Asumir que el desbordamiento aritmético con signo se envuelve"
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr "Emitir información de referencia cruzada"
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr "Poner datos inicializados a cero en la sección bss"
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr "Generar la búsqueda no estricta de clases (a través de objc_getClass()) para usarlas en el modo Zero-Link"
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr "Generar información de depuración en el formato por defecto"
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr "Generar información de depuración en el formato COFF"
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr "Generar información de depuración en el formato DWARF v2"
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr "Volcar declaraciones a un fichero .decl"
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr "Generar información de depuración en el formato extendido por defecto"
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr "Generar información de depuración en el formato STABS"
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr "Generar información de depuración en el formato STABS extendido"
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr "Generar información de depuración en el formato VMS"
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr "Generar información de depuración en el formato XCOFF"
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr "Generar información de depuración en el formato XCOFF extendido"
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
-msgstr ""
+msgstr "Establecer el tipo entero por defecto para doble precisión"
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr "-idirafter <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión del sistema"
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr "-imacros <fich>\tAceptar la definición de macros en el <fich>ero"
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr "-include <fich>\tIncluir los contenidos del <fichero> antes de otros ficheros"
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr "-iprefix <ruta>\tEspecificar la <ruta> como un prefijo para las siguientes dos opciones"
-#: options.c:2290
-#, fuzzy
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
-msgstr "-idirafter <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión del sistema"
+msgstr "-iquote <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión de citas"
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr "-isysroot <dir>\tEstablecer el <dir>ectorio como el directorio raíz del sistema"
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr "-isystem <dir>\tAgregar el <dir>ectorio al inicio de la ruta de inclusión del sistema"
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr "-iwithprefix <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión del sistema"
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr "-iwithprefixbefore <dir>\tAgregar el <dir>ectorio al final de la ruta de inclusión principal"
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr "No buscar directorios de inclusión del sistema por defecto (aquellos especificados con -isystem aún serán utilizados)"
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr "No buscar directorios de inclusión del sistema por defecto para C++"
-#: options.c:2320
+#: options.c:2323
msgid "-o <file>\tPlace output into <file>"
-msgstr "-o<fichero>\tColocar la salida en el <fichero>"
+msgstr "-o <fichero>\tColocar la salida en el <fichero>"
-#: options.c:2323
+#: options.c:2326
msgid "Enable function profiling"
msgstr "Activar el análisis de perfil de las funciones"
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr "Activar los avisos necesarios para cumplir estrictamente con el estándard"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr "Como -pedantic pero los muestra como errores"
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr "Generar encabezado C de características específicas de la plataforma"
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
-msgstr ""
+msgstr "-qkind=<n>\tEstablece el tipo para un real con el exponente 'q' a la 'n'"
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr "No mostrar las funciones compiladas o el tiempo transcurrido"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
-msgstr ""
+msgstr "Establecer el tipo real por defecto para doble precisión"
-#: options.c:2344
+#: options.c:2347
msgid "Remap file names when including files"
msgstr "Remapear nombres de fichero cuando incluyen ficheros"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr "Conforme al estándard ISO 1998 C++"
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr "Conforme al estándard ISO 1990 C"
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr "Conforme al estándard ISO 1999 C"
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr "Obsoleto en favor de -std=c99"
-#: options.c:2359
-#, fuzzy
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
-msgstr "Conforme al estándard ISO 1999 C"
+msgstr "Conforme al estándard ISO Fortran 2003"
-#: options.c:2362
-#, fuzzy
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
-msgstr "Conforme al estándard ISO 1999 C"
+msgstr "Conforme al estándard ISO Fortran 95"
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
-msgstr ""
+msgstr "Conforme a nada en particular."
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr "Conforme al estándard ISO 1998 C++ con extensiones GNU"
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr "Conforme al estándard ISO 1990 C con extensiones GNU"
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr "Conforme al estándard ISO 1999 C con extensiones GNU"
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr "Obsoleto en favor de -std=gnu99"
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr "Obsoleto en favor de -std=c89"
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr "Conforme al estándard ISO 1990 C como se enmendó en 1994"
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr "Habilitar el preprocesamiento tradicional"
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr "-trigraphs\tSoporte para los trigrafos de ISO C"
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr "No predefinir macros específicas del sistema y específica de GCC"
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr "Activar la salida detallada"
-#: options.c:2407
+#: options.c:2410
msgid "Suppress warnings"
msgstr "Suprimir avisos"
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 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/sh/sh.h:685
-#, fuzzy
msgid "SH2a does not support little-endian"
-msgstr "no tiene soporte para multilib"
+msgstr "SH2a no tiene soporte para little-endian"
#: config/mips/r3900.h:35
msgid "-mhard-float not supported"
msgstr "-mhard-float no tiene soporte"
#: config/mips/r3900.h:37
-#, fuzzy
msgid "-msingle-float and -msoft-float cannot both be specified"
-msgstr "-msingle-float y -msoft-float no se pueden especificar al mismo tiempo"
+msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo"
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr "sólo se permite -current_version con -dynamiclib"
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr "sólo se permite -install_name con -dynamiclib"
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr "no se permite -bundle con -dynamiclib"
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "no se permite -bundle_loader con -dynamiclib"
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr "no se permite -client_name con -dynamiclib"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr "no se permite -force_flat_namespace con -dynamiclib"
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr "no se permite keep_private_externs con -dynamiclib"
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "no se permite -private_bundle con -dynamiclib"
@@ -22571,29 +21245,20 @@ msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
msgid "shared and mdll are not compatible"
msgstr "shared y mdll no son compatibles."
+#: config/i386/nwld.h:34
+msgid "Static linking is not supported.\n"
+msgstr "No se da soporte al enlazado estático.\n"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
-#: treelang/lang-specs.h:52
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg ó -p y -fomit-frame-pointer son incompatibles"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg y -fomit-frame-pointer son incompatibles"
-
#: 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/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "no se da soporte a la expresión del límite de la pila"
-
#: 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"
@@ -22618,35 +21283,136 @@ msgstr "-mno-cygwin y -mno-win32 no son compatibles"
msgid "the m210 does not have little endian support"
msgstr "el m210 no tiene soporte para little endian"
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr "GCC no da soporte a -C o -CC sin usar -E"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg y -fomit-frame-pointer son incompatibles"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "se requiere -E cuando la entrada es de entrada estándar"
#: config/lynx.h:71
msgid "Cannot use mthreads and mlegacy-threads together."
-msgstr ""
+msgstr "No se pueden usar mthreads y mlegacy-threads juntos."
#: config/lynx.h:96
msgid "Cannot use mshared and static together."
-msgstr ""
+msgstr "No se pueden usar mshared y static juntos."
#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172
#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
msgid "does not support multilib"
msgstr "no tiene soporte para multilib"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr " se usan interruptores de estilo de generación de código en conflicto"
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg ó -p y -fomit-frame-pointer son incompatibles"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr "se requiere -c o -S para Ada"
+#~ msgid "too many arguments to function %<va_start%>"
+#~ msgstr "demasiados argumentos para la función %<va_start%>"
+
+#~ msgid "nested static declaration of %qD"
+#~ msgstr "declaración static anidada de %qD"
+
+#~ msgid "elements of array %qD have incomplete type"
+#~ msgstr "algunos elementos de la matriz %qD tienen tipo de dato incompleto"
+
+#~ msgid "%Jfunction %qF can never be inlined because it has pending sizes"
+#~ msgstr "%Jla función %qF nunca puede ser inlined porque tiene tamaños pendientes"
+
+#~ msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
+#~ msgstr "%Jla función anidada %qF nunca puede ser inlined porque posiblemente tiene tamaños pendientes guardados"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "no se pueden anidar los designadores de inicialización"
+
+#~ 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"
+
+#~ 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"
+
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "No se puede encontrar un coloreado.\n"
+
+#~ msgid "mudflap ran off end of BIND_EXPR body"
+#~ msgstr "se terminó mudflap al final del cuerpo BIND_EXPR"
+
+#~ msgid "unknown set constructor type"
+#~ msgstr "conjunto de tipo constructor desconocido"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "El número máximo de instrucciones para el inlineador de RTL"
+
+#~ msgid "unexpected address expression"
+#~ msgstr "expresión de dirección inesperada"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "NOTE inesperado como addr_const:"
+
+#~ msgid "Bad insn to frv_print_operand, 'C' modifier:"
+#~ msgstr "insn erróneo para frv_print_operand, modificador 'C':"
+
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "insn erróneo para frv_print_operand, modificador 'c':"
+
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Emitir código para el procesador Itanium (TM) paso B"
+
+#~ msgid "Same as -mabi=32, just trickier"
+#~ msgstr "Igual que -mabi=32, solo que con más trucos"
+
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Pasar siempre los argumentos de coma flotante en memoria"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "No pasar siempre los argumentos de coma flotante en memoria"
+
+#~ msgid "base %qT with only non-default constructor in class without a constructor"
+#~ msgstr "base %qT con sólo un constructor que no es por defecto en una clase sin un constructor"
+
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "%Jcalificador de tipo inválido para el tipo de función no miembro"
+
+#~ msgid "function %qD cannot be declared friend"
+#~ msgstr "la función %qD no se puede declarar friend"
+
+#~ msgid "initializer specified for non-member function %qD"
+#~ msgstr "se especificó un inicializador para la función no-miembro %qD"
+
+#~ msgid "invalid initializer for virtual method %qD"
+#~ msgstr "inicializador inválido para el método virtual %qD"
+
+#~ msgid "expected type-name"
+#~ msgstr "se esperaba un nombre de tipo"
+
+#~ msgid "too many template parameter lists in declaration of %qT"
+#~ msgstr "demasiadas listas de parámetros de plantilla en la declaración de %qT"
+
+#~ msgid "non-template used as template"
+#~ msgstr "se usa una no plantilla como plantilla"
+
+#~ msgid "%s to %qT from %qT"
+#~ msgstr "%s a %qT desde %qT"
+
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Utilizar coloración de grafos para el alojamiento de registros."
+
+#~ msgid "Enable the new bytecode verifier"
+#~ msgstr "Activar el nuevo verificador de bytecode"
+
#~ msgid "built-in function `%s' not currently supported"
#~ msgstr "no se soporta actualmente la función interna `%s'"
@@ -23296,9 +22062,6 @@ msgstr "se requiere -c o -S para Ada"
#~ msgid "#pragma %s %s is already registered"
#~ msgstr "#pragma %s %s ya está registrado"
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "#pragma %s ya está registrado"
-
#~ msgid "#pragma once in main file"
#~ msgstr "#pragma una vez en el fichero principal"
@@ -24147,7 +22910,7 @@ msgstr "se requiere -c o -S para Ada"
#~ msgstr "de forma adecuada a menos que todos sean de 32 bits de anchura"
#~ msgid "Please keep this in mind before you report bugs."
-#~ msgstr "Por favor tenga esto presente antes de reportar `bugs'."
+#~ msgstr "Por favor tenga esto presente antes de reportar bichos."
#~ msgid "configuration: char * holds %d bits, but ftnlen only %d"
#~ msgstr "configuration: char * guarda %d bits, pero ftnlen sólo %d"
@@ -24970,7 +23733,7 @@ msgstr "se requiere -c o -S para Ada"
#~ msgstr "Permitir '$' en los nombres de símbolos"
#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
-#~ msgstr "Hace que el frente emule aritmética COMPLEX para evitar `bugs'"
+#~ msgstr "Hace que el frente emule aritmética COMPLEX para evitar bichos"
#~ msgid "f2c-compatible code can be generated"
#~ msgstr "Se puede generar generar código compatible con f2c"
@@ -26235,9 +24998,6 @@ msgstr "se requiere -c o -S para Ada"
#~ 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')"
-#~ msgid "`%D' is a namespace"
-#~ msgstr "`%D' es un nombre de espacio"
-
#~ 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'"
@@ -26385,9 +25145,6 @@ msgstr "se requiere -c o -S para Ada"
#~ msgid "semicolon missing after %s declaration"
#~ msgstr "falta punto y coma después de la declaración %s"
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "falta punto y coma después de la declaración de `%T'"
-
#~ msgid "`::%D' undeclared (first use here)"
#~ msgstr "`::%D' sin declarar (primer uso aquí)"
@@ -27521,9 +26278,6 @@ msgstr "se requiere -c o -S para Ada"
#~ 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"
diff --git a/gcc/po/fr.po b/gcc/po/fr.po
index 4081b0474df..255c25142b0 100644
--- a/gcc/po/fr.po
+++ b/gcc/po/fr.po
@@ -119,7 +119,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU gcc 3.4.3\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
"PO-Revision-Date: 2004-11-05 08:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -152,69 +152,47 @@ msgstr "l'attribut « %s » ne s'applique qu'à des types de fonction"
msgid "offset outside bounds of constant string"
msgstr "décalage hors des limites d'une chaîne de constante"
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "second argument de « __builtin_prefetch » doit être une constante"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "second argument invalide de « __builtin_prefetch »; utilisation de zéro"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "troisième argument de « __builtin_prefetch » doit être une constante"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "troisième argument invalide de « __builtin_prefetch »; utilisation de zéro"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "argument de « __builtin_args_info » doit être une constante"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "argument de « __builtin_args_info » hors des limites"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "argument manquant dans « __builtin_args_info »"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "« va_start » utilisé dans une fonction ayant des arguments fixes"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "« __builtin_next_arg » appelé sans argument"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "trop d'arguments pour la function « va_start »"
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "trop d'arguments pour la function « va_start »"
-
-#: builtins.c:4017
+#: builtins.c:4077
#, fuzzy
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr "premier argument de « va_arg » n'est pas de type « va_list »"
@@ -222,526 +200,556 @@ 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:4031
+#: builtins.c:4091
#, fuzzy
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "« %s » a été promu à « %s » lors du passage à travers « ... »"
-#: builtins.c:4036
+#: builtins.c:4096
#, fuzzy
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(vous devriez donc passer « %s » et non « %s » à « va_arg »)"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr "si ce code est atteint, le programme s'arrêtera"
-#: builtins.c:4160
+#: builtins.c:4220
#, fuzzy
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "argument de « __builtin_frame_address » invalide"
-#: builtins.c:4162
+#: builtins.c:4222
#, fuzzy
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "argument de « __builtin_return_address » invalide"
-#: builtins.c:4176
+#: builtins.c:4235
#, fuzzy
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "argument de « __builtin_frame_address » non supporté"
-#: builtins.c:4178
+#: builtins.c:4237
#, fuzzy
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "argument de « __builtin_return_address » non supporté"
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "le second argument de « __builtin_expect » doit être une constante"
-#: builtins.c:5488
+#: builtins.c:5590
#, fuzzy
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "le second argument de « __builtin_longjmp » doit être 1"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr "le format cible ne supporte pas l'infini"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "pas assez d'arguments pour la fonction « %s »"
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "trop d'arguments pour la fonction « %s »"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "argument pour la fonction « %s » n'étant pas en virgule flottante"
-#: c-common.c:831
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr "« va_start » utilisé dans une fonction ayant des arguments fixes"
+
+#. 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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "« __builtin_next_arg » appelé sans argument"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "second paramètre de « va_start » n'est pas le dernier argument nommé"
+
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "%J« %D » n'est pas défini à l'extérieur de la portée de la fonction"
-#: c-common.c:852
+#: c-common.c:847
#, fuzzy, c-format
msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
msgstr "longueur de la chaîne « %d » plus grande que la longueur « %d » que les compilateurs ISO C%d doivent supporter"
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "débordement dans l'expression de la constante"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "débordement d'entier dans l'expression"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "débordement d'un nombre en virgule flottante dans l'expression"
-#: c-common.c:933
+#: c-common.c:923
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:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "grand entier implicitement tronqué pour un type non signé"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "entier négatif implicitement converti en un type non signé"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "débordement dans la conversion implicte de la constante"
-#: c-common.c:1151
+#: c-common.c:1141
#, fuzzy, c-format
msgid "operation on %qs may be undefined"
msgstr "l'opération portant sur « %s » est peut être indéfinie"
-#: c-common.c:1437
+#: c-common.c:1425
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:1480
+#: c-common.c:1468
#, fuzzy
msgid "case label value is less than minimum value for type"
msgstr "constante entière est plus grande que la valeur maximale pour ce type"
-#: c-common.c:1488
+#: c-common.c:1476
#, fuzzy
msgid "case label value exceeds maximum value for type"
msgstr "constante entière est plus grande que la valeur maximale pour ce type"
-#: c-common.c:1496
+#: c-common.c:1484
#, fuzzy
msgid "lower value in case label range less than minimum value for type"
msgstr "constante entière est plus grande que la valeur maximale pour ce type"
-#: c-common.c:1505
+#: c-common.c:1493
#, fuzzy
msgid "upper value in case label range exceeds maximum value for type"
msgstr "constante entière est plus grande que la valeur maximale pour ce type"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "expression valeur de vérité invalide"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "opérandes invalides pour le binaire %s"
-#: c-common.c:2112
+#: c-common.c:2116
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:2114
+#: c-common.c:2118
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:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "comparaison d'une expression non signée >=0 est toujours vraie"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "comparaison d'une expression non signée < 0 est toujours fausse"
-#: c-common.c:2235
+#: c-common.c:2239
#, fuzzy
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "usage en arithmétique d'un pointeur de type « void * »"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "usage en arithmétique d'un pointeur vers une fonction"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "usage en arithmétique d'un pointeur vers une fonction membre"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
#, fuzzy
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr "l'adresse de « %D » sera toujours évaluée comme étant « true »"
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr "parenthèses suggérées autour de l'affectation utilisée comme valeur de vérité"
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "usage de « restrict » invalide"
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "application de « sizeof » sur un type de fonction invalide"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "application invalide de « %s » sur un type void"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "application invalide de « %s » sur un type incomplet « %T »"
-#: c-common.c:2813
+#: c-common.c:2848
#, fuzzy
msgid "%<__alignof%> applied to a bit-field"
msgstr "« __alignof » appliqué sur un champ de bits"
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "ne peut désactiver la fonction interne « %s »"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "les pointeurs ne sont pas permis comme valeurs de « case »"
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr "l'étendue des expressions dans les déclarations switch ne sont pas standard"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "intervalle vide spécifié"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "valeur du « case » duppliquée (ou en chevauchant une autre)"
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr "%Jest la première entrée chevauchant cette valeur"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "valeur du « case » duppliquée"
-#: c-common.c:3542
+#: c-common.c:3599
msgid "%Jpreviously used here"
msgstr "%Jprécédemment utilisé ici"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "plusieurs étiquettes par défaut dans un « switch »"
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr "%Jest la première étiquette par défaut"
-#: c-common.c:3596
+#: c-common.c:3653
#, fuzzy
msgid "%Jcase value %qs not in enumerated type"
msgstr "valeur du case « %ld » n'est pas dans le type énuméré"
-#: c-common.c:3599
+#: c-common.c:3656
#, fuzzy
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr "valeur du case « %ld » n'est pas dans le type énuméré"
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "switch n'a pas de case par défaut"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
#, fuzzy
msgid "%Henumeration value %qE not handled in switch"
msgstr "valeur d'énumération « %s » n'est pas traitée dans le switch"
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr "prendre l'adresse d'une étiquette n'est pas standard"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "attribut « %s » ignoré"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "mode machine « %s » inconnu"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
#, fuzzy
msgid "use __attribute__ ((vector_size)) instead"
msgstr "attribut de directive « %s » ignoré"
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "impossible d'émuler « %s »"
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "mode pointeur invalide « %s »"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "aucun type de données pour le mode « %s »"
-#: c-common.c:4309
+#: c-common.c:4366
#, fuzzy, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "ne peut convertir en un type pointeur"
-#: c-common.c:4322
+#: c-common.c:4390
#, fuzzy, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "mode « %s » appliqué à un type inapproprié"
-#: c-common.c:4355
+#: c-common.c:4421
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "%Jl'attribut de section ne peut être spécifié pour des variables locales"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "%Jsection de « %D » en conflit avec une déclaration précédente"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "%Jattribut de section n'est pas permis pour « %D »"
-#: c-common.c:4381
+#: c-common.c:4447
msgid "%Jsection attributes are not supported for this target"
msgstr "%Jattributs de section ne sont pas supportés pour la cible"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "l'alignement demandé n'est pas une constante"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "l'alignement demandé n'est pas une puissance de 2"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "l'alignement demandé est trop grand"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "%Jl'alignement ne peut pas être spécifié pour « %D »"
-#: c-common.c:4493
+#: c-common.c:4559
#, fuzzy
msgid "%J%qD defined both normally and as an alias"
msgstr "%J'%D défini à la fois normalement et en tant qu'alias"
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "l'argument d'alias n'est pas une chaîne"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "attribut « %s » ignoré pour « %s »"
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "l'argument de visibilité n'est pas une chaîne"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "attribut « %s » ignoré pour « %s »"
+
+#: c-common.c:4657
#, fuzzy
msgid "visibility argument 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:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "l'argument de tls_model n'est pas une chaîne"
-#: c-common.c:4663
+#: c-common.c:4735
#, fuzzy
msgid "tls_model argument 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:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "%J'%E l'attribut ne s'applique seulement qu'à des fonctions"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "%Jne peut initialiser l'attribut « %E » après définition"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "attribut « %s » ignoré pour « %s »"
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "type de vecteur invalide pour l'attribut « %s »"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "attribut non nul sans argument sur un non-prototype"
-#: c-common.c:4925
+#: c-common.c:4997
#, fuzzy, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "un argument non nul a un nombre d'opérande invalide (argument %lu)"
-#: c-common.c:4944
+#: c-common.c:5016
#, fuzzy, c-format
msgid "nonnull argument with out-of-range operand number (argument %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:4952
+#: c-common.c:5024
#, fuzzy, c-format
msgid "nonnull argument references non-pointer operand (argument %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:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "Interdire les appels relatifs de fonctions par le PC"
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "trop peu d'arguments pour la fonction"
-#: c-common.c:5086
+#: c-common.c:5158
#, fuzzy, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr "argument nul là où un non-nul est requis (arg %lu)"
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "argument de nettoyage n'est pas un identificateur"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "argument de nettoyage n'est pas une fonction"
-#: c-common.c:5202
+#: c-common.c:5274
#, fuzzy, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr "l'attribut « %s » requiert un argument de type constante entière"
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "attribut « %s » s'applique seulement aux fonctions"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "init_priority demandé n'est pas une constante entière"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
#, fuzzy
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr "%Hvaleur à retourner « %D » ignorée, déclarée avec l'attribut warn_unused_result"
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr "%Hvaleur à retourner ignorée de la fonction déclarée avec l'attribut warn_unused_result"
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "tentative pour prendre l'adresse du membre « %s » d'une structure de champ de bits"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "membre gauche de l'affectation invalide"
-#: c-common.c:5637
+#: c-common.c:5730
#, fuzzy
msgid "invalid lvalue in increment"
msgstr "membre gauche de l'affectation invalide"
-#: c-common.c:5640
+#: c-common.c:5733
#, fuzzy
msgid "invalid lvalue in decrement"
msgstr "membre gauche de l'affectation invalide"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "membre gauche invalide pour le « & » unaire"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "membre gauche invalide avec asm"
@@ -750,113 +758,118 @@ msgstr "membre gauche invalide avec asm"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
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:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "conversion vers un type non scalaire demandée"
-#: c-decl.c:524
+#: c-decl.c:530
#, fuzzy
msgid "%Jarray %qD assumed to have one element"
msgstr "%Jon assume que le tableau « %D » n'a qu'un seul élément"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "%Jétiquette « %D » utilisée mais non définie"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "%Jétiquette « %D » définie mais non utilisée"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "%Jétiquette « %D » utilisée mais non définie"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "fonction enligne « %D » utilisé mais n'a jamais été défini"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "%Jvariable « %D » inutilisée"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
#, fuzzy
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:1015
+#: c-decl.c:1029
#, fuzzy
msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
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:1051
+#: c-decl.c:1065
#, fuzzy
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr "%Jprototype pour « %D » déclare plus d'arguments que la définition précédente de style ancien"
-#: c-decl.c:1057
+#: c-decl.c:1071
#, fuzzy
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr "%Jprototype pour « %D » déclare moins d'arguments que la définition précédente de style ancien"
-#: c-decl.c:1066
+#: c-decl.c:1080
#, fuzzy
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "%Jprototype pour « %D » déclare l'arguments %d avec un type incompatible"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
#, fuzzy
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr "%Jprototype pour « %D » suit la définition d'un non prototype"
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "%Jdéfinition précédente de « %D » était ici"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "%Jdéclaration précédente implicite de « %D » était ici"
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "%Jdéclaration précédente de « %D » était ici"
-#: c-decl.c:1134
+#: c-decl.c:1149
#, fuzzy
msgid "%J%qD redeclared as different kind of symbol"
msgstr "%J« %D » redéclaré comme une sorte différente de symbole"
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "%Jfonction interne « %D » n'est pas déclarée comme une fonction"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "%Jdéclaration de « %D » masque une déclaration globale"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "redéclaration de « enum %s »"
@@ -864,280 +877,280 @@ msgstr "redéclaration de « enum %s »"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "%Jtypes conflictuels pour la fonction interne « %D »"
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "%Jtypes conflictuels pour « %D »"
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "%Jtypes conflictuels pour « %D »"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "%Jredéfinition de « %D »"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "%Jredéfinition de « %D »"
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
#, fuzzy
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "%Jdéclaration statique de « %D » suit une déclaration non statique"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
#, fuzzy
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "%Jdéclaration non statique de « %D » suite une déclaration statique"
-#: c-decl.c:1326
+#: c-decl.c:1383
#, fuzzy
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "%Jdéclaration de thread local de « %D » suit une déclaration non thread-local"
-#: c-decl.c:1329
+#: c-decl.c:1386
#, fuzzy
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "%Jdéclaration non thread local de « %D » suit une déclaration de thread local"
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "%Jdéclaration externe de « %D » suit une déclaraion sans lien"
-#: c-decl.c:1395
+#: c-decl.c:1452
#, fuzzy
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "%Jdéclaration de « %D » sasn lien suivant une déclaration externe"
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "%Jredéclaration de « %D » sans lien"
-#: c-decl.c:1415
+#: c-decl.c:1472
#, fuzzy
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr "%Jredéclaration de « %D » avec une visibilité différente (visibilité précédente conservée)"
-#: c-decl.c:1426
+#: c-decl.c:1483
#, fuzzy
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "%Jdéclaration enligne de « %D » suit la déclaration avec un attribut non enligne"
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "%Jéclaration de « %D » avec un attribut non enligne suit une déclaration enligne"
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "%J« %D » déclaré enligne après avoir été appelé"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "%J« %D » déclaré enligne après sa définition"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "%Jredéfinition du paramètre « %D »"
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "%Jdéclaration redondante de « %D »"
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "%Jdéclaration de « %D » masque la déclaration d'un local précédent"
+
+#: c-decl.c:1871
#, fuzzy
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "%Jdéclaration de « %D » masque un paramètre"
-#: c-decl.c:1811
+#: c-decl.c:1874
#, fuzzy
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "%Jdéclaration de « %D » masque une déclaration globale"
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "%Jdéclaration de « %D » masque la déclaration d'un local précédent"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr "%Jdéclaration est masquée ici"
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "déclaration de « %s » externe imbriquée"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "déclaration de « %s » externe imbriquée"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "déclaration implicite de la fonction « %s »"
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "déclaration implicite de la fonction « %#D »"
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "déclaration implicite de la fonction « %#D »"
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "« %s » non déclaré ici (hors de toute fonction)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "« %s » non déclaré (première utilisation dans cette fonction)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Chaque identificateur non déclaré est rapporté une seule fois"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "pour chaque fonction dans laquelle il apparaît.)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, fuzzy, c-format
msgid "label %qs referenced outside of any function"
msgstr "étiquette %s référencée à l'extérieur de toute fonction"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "déclaration de l'étiquette « %s » en double"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "%Hétiquette « %D » apparaît en double"
-#: c-decl.c:2429
+#: c-decl.c:2472
#, fuzzy
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr "%HC traditionnel manque d'un espace nom séparé pour les étiquettes, identificateur « %D » est en conflit"
-#: c-decl.c:2495
+#: c-decl.c:2538
#, fuzzy
msgid "%H%qs defined as wrong kind of tag"
msgstr "%H« %s » défini incorrectement comme une mauvais sorte d'étiquette"
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "struct/union sans nom ne définissant aucune instance"
-#: c-decl.c:2726
+#: c-decl.c:2769
#, fuzzy
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr "spécificateur de classe de stockage dans le déclarateur de tableau"
-#: c-decl.c:2737
+#: c-decl.c:2780
#, fuzzy
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr "déclaration ne déclarant rien du tout"
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "mot clé ou nom de type inutile dans une déclaration vide"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "déclaration vide"
-#: c-decl.c:2779
+#: c-decl.c:2822
#, fuzzy
msgid "%<auto%> in file-scope empty declaration"
msgstr "deux types spécifiés dans une déclaration vide"
-#: c-decl.c:2785
+#: c-decl.c:2828
#, fuzzy
msgid "%<register%> in file-scope empty declaration"
msgstr "deux types spécifiés dans une déclaration vide"
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "spécificateur de classe de stockage dans le déclarateur de tableau"
-#: c-decl.c:2797
+#: c-decl.c:2840
#, fuzzy
msgid "useless %<__thread%> in empty declaration"
msgstr "mot clé ou nom de type inutile dans une déclaration vide"
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "qualificateurs de types dupliqués dans déclaration %s"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "déclaration vide"
-#: c-decl.c:2878
+#: c-decl.c:2921
#, fuzzy
msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
msgstr "ISO C90 ne supporte pas « static » ou les qualificateurs de type dans les déclarateurs de tableau de paramètres"
-#: c-decl.c:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C90 ne supporte pas « [*] » dans les déclarateurs de tableau"
-#: c-decl.c:2884
+#: c-decl.c:2927
#, fuzzy
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "GCC n'implémente pas encore correctement les déclarateurs de tableau « [*] »"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "static ou qualificateurs de type dans un déclarateur abstrait"
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "%J« %D » est habituellement une fonction"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef « %D » est initialisé (use __typeof__ instead)"
-#: c-decl.c:2974
+#: c-decl.c:3019
#, fuzzy
msgid "function %qD is initialized like a variable"
msgstr "fonction « %#D » est initialisée comme une variable"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "le paramètre « %s » est initialisé"
@@ -1146,182 +1159,177 @@ msgstr "le paramètre « %s » est initialisé"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "un objet de taille variable peut ne pas être initialisé"
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "la variable « %#D » est initialisée, mais a un type incomplet"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "éléments du tableau « %#D » ont un type incomplet"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
#, fuzzy
msgid "%Jinline function %qD given attribute noinline"
msgstr "%J fonction enligne « %D » a reçu l'attribut non enligne"
-#: c-decl.c:3154
+#: c-decl.c:3194
#, fuzzy
msgid "%Jinitializer fails to determine size of %qD"
msgstr "%Jinitialisateur a échoué à déterminer la taille de « %D »"
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "%Jtaille du tableau est manquante dans « %D »"
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "%Jtableau « %D » de taille zéro ou négative"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "%Jtaille de stockage de « %D » n'est pas connue"
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "%Jtaille de stockage de « %D » n'est pas une constante"
-#: c-decl.c:3266
+#: c-decl.c:3299
#, fuzzy
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "%Jspécificateur asm ignoré pour la variable locale non statique « %D »"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "impossible de mettre un objet avec un champ volatile dans un registre"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C interdit la déclaration anticipée de paramètres"
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr "<anonymous>"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "la largeur du champ de bits « %s » n'est pas une constante entière"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "largeur négative du champ de bits « %s »"
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "largeur nulle pour le champ de bits « %s »"
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "le champ de bits « %s » a un type invalide"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, fuzzy, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr "le type de champ de bit « %s » est une extension GCC"
-#: c-decl.c:3664
+#: c-decl.c:3698
#, fuzzy, c-format
msgid "width of %qs exceeds its type"
msgstr "la largeur de « %s » excède son type"
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "« %s » est plus étroit que les valeurs de son type"
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "dans la déclaration de « %s », utilisation de « int » par défaut pour le type"
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "« const » apparaît en double"
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "« restrict » apparaît en double"
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "« volatile » apparaît en double"
-#: c-decl.c:3853
+#: c-decl.c:3887
#, fuzzy
msgid "function definition declared %<auto%>"
msgstr "définition de fonction déclaré « auto »"
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "définition de fonction déclarée « register »"
-#: c-decl.c:3857
+#: c-decl.c:3891
#, fuzzy
msgid "function definition declared %<typedef%>"
msgstr "définition de fonction déclarée « typedef »"
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "définition de fonction déclarée « __thread »"
-#: c-decl.c:3875
+#: c-decl.c:3909
#, fuzzy, c-format
msgid "storage class specified for structure field %qs"
msgstr "classe de stockage spécifiée pour le champ de structure « %s »"
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, fuzzy, c-format
msgid "storage class specified for parameter %qs"
msgstr "classe de stockage spécifiée pour le paramètre « %s »"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "classe de stockage spécifié pour un typename"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
#, fuzzy
msgid "%qs initialized and declared %<extern%>"
msgstr "« %s » initialisé et déclaré « extern »"
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
#, fuzzy
msgid "%qs has both %<extern%> and initializer"
msgstr "« %s » a les deux « extern » et initialisateur"
-#: c-decl.c:3902
+#: c-decl.c:3936
#, fuzzy
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "la déclaration de l'étendue de fichier « %s » spécifie « auto »"
-#: c-decl.c:3904
+#: c-decl.c:3938
#, fuzzy
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "la déclaration de l'étendue de fichier « %s » spécifie « auto »"
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
#, fuzzy
msgid "nested function %qs declared %<extern%>"
msgstr "fonction imbriquée « %s » déclarée « extern »"
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
#, fuzzy
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr "« %s » dans le champ de la fonction est implicitement déclaré auto, et déclaré « __thread »"
@@ -1329,669 +1337,669 @@ msgstr "« %s » dans le champ de la fonction est implicitement déclaré auto, et d
#. 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "static ou qualificateurs de type dans un déclarateur de tableau n'étant pas un paramètre"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, fuzzy, c-format
msgid "declaration of %qs as array of voids"
msgstr "déclaration de « %s » comme un tableau de « void »"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "déclaration de « %s » comme un tableau de fonctions"
-#: c-decl.c:4010
+#: c-decl.c:4050
msgid "invalid use of structure with flexible array member"
msgstr "utilisation invalide d'une structure ayant un membre flexible"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "la taille du tableau « %s » n'est pas de type entier"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO C interdit le tableau de taille zéro « %s »"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "la taille du tableau « %s » est négative"
-#: c-decl.c:4056
+#: c-decl.c:4096
#, fuzzy
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ISO C90 interdit le tableau « %s » dont la taille ne peut être évaluée"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO C90 interdit le tableau « %s » de taille variable"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "la taille du tableau « %s » est trop grande"
-#: c-decl.c:4106
+#: c-decl.c:4150
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C90 interdit les tableaux ayant des membres flexibles"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "les éléments du tableau sont de type incomplet"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "« %s » déclaré comme une fonction retournant une fonction"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, fuzzy, c-format
msgid "%qs declared as function returning an array"
msgstr "« %s » déclaré comme une fonction retournant un tableau"
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "définition invalide d'un type qualifié « %T »"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr "qualificateurs de type ignorés pour le type à retourner par la fonction"
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO C interdit les types de fonction qualifiés"
-#: c-decl.c:4282
+#: c-decl.c:4324
#, fuzzy
msgid "%Jtypedef %qD declared %<inline%>"
msgstr "%Jvariable « %D » déclarée « inline »"
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C interdit les fonction de type volatile ou constante"
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "variable ou champ « %s » déclaré « void »"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "les attributs dans un déclarateur de tableau de paramètres sont ignorés"
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "%Jparamètre \"%D\" déclaré «void »"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "champ « %s » déclaré comme une fonction"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "champ « %s » est de type incomplet"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "classe de stockage invalide pour la fonction « %s »"
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "fonction marquée « noreturn » retourne une valeur n'étant pas de type « void »"
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "ne peut transformer « main » en fonction enligne"
-#: c-decl.c:4546
+#: c-decl.c:4582
#, fuzzy
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr "variable précédemment déclarée « static » redéclarée « extern »"
-#: c-decl.c:4555
+#: c-decl.c:4591
#, fuzzy
msgid "%Jvariable %qD declared %<inline%>"
msgstr "%Jvariable « %D » déclarée « inline »"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
-#: c-decl.c:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
msgid "thread-local storage not supported for this target"
msgstr "cette cible ne permet pas le stockage en local au thread"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
#, fuzzy
msgid "function declaration isn%'t a prototype"
msgstr "la déclaration de fonction n'est pas un prototype valide"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "noms de paramètres (sans type) dans la déclaration de fonction"
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "%Jparamètre \"%D\" a un type incomplet"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "%Jparamètre \"%D\" a un type incomplet"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "%Jparamètre \"%D\" a un type incomplet"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "%Jparamètre \"%D\" a un type incomplet"
-#: c-decl.c:4761
+#: c-decl.c:4797
#, fuzzy
msgid "%<void%> as only parameter may not be qualified"
msgstr "\"void\" comme seul paramètre ne peut être qualifié"
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
#, fuzzy
msgid "%<void%> must be the only parameter"
msgstr "\"void\" doit être le seul paramètre"
-#: c-decl.c:4793
+#: c-decl.c:4829
#, fuzzy
msgid "%Jparameter %qD has just a forward declaration"
msgstr "%Jparamètre « %D » n'a qu'une déclaration anticipée"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "\"%s %s\" déclarée à l'intérieur de la liste de paramètres"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "structure anonyme %s déclarée à l'intérieur de la liste des paramètres"
-#: c-decl.c:4848
+#: c-decl.c:4884
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr "visible uniquement depuis cette définition ou déclaration, ce qui n'est probablement pas ce que vous désirez"
-#: c-decl.c:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "redéfinition de « union %s »"
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "redéfinition de « struct %s »"
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "redéfinition imbriquée de « %s »"
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "redéfinition imbriquée de « %s »"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "déclaration ne déclarant rien du tout"
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C ne permet pas les structures et unions sans nom"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "%Jmembre « %D » est double"
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "membres nommés"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "aggrégat anonyme sans aucun membre"
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "membres nommés"
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "destructeurs ne prend aucun paramètre"
-#: c-decl.c:5231
+#: c-decl.c:5267
msgid "%Jflexible array member in union"
msgstr "%Jmembre flexible de tableau dans l'union"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr "%Jle membre flexible de tableau n'est pas à la fin de la structure"
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr "%Jmembre flexible de tableau dans une structure vide par ailleurs"
-#: c-decl.c:5248
+#: c-decl.c:5284
msgid "%Jinvalid use of structure with flexible array member"
msgstr "%Jutilisation invalide d'une structure ayant un membre flexible"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "union ne peut pas être rendu transparente"
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "redéfinition imbriquée de « %s »"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "redéclaration de « enum %s »"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr "valeurs d'énumération excède les bornes du plus grand entier"
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "valeur de l'énumérateur pour « %s » n'est pas une constante entière"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "débordement dans les valeurs de l'énumération"
-#: c-decl.c:5626
+#: c-decl.c:5671
#, fuzzy
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 »"
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "le type du retour est incomplet"
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "le type du retour est « int » par défaut"
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "%Jaucun prototype précédent pour « %D »"
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "%J« %D » a été utilisé sans prototype avant sa définition"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "%Jaucune déclaration précédente pour « %D »"
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "%J« %D » a été utilisé sans déclaration avant sa définition"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "%Jle type de retour de « %D » n'est pas « int »"
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "%Jle premier argument de « %D » devrait être « int »"
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "%Jle second argument de « %D » devrait être « char ** »"
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "%Jle troisième argument de « %D » devrait probablement être « char ** »"
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "%J« %D » prend soit aucun argument ou soit deux arguments"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "%J« %D » n'est pas normalement une fonction statique"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr "%Jdéclaration de paramètre d'ancien style dans la définition prototypée de fonction"
-#: c-decl.c:5896
+#: c-decl.c:5941
#, fuzzy
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr "le C traditionel rejette les définitions de fonction de style ISO C"
-#: c-decl.c:5908
+#: c-decl.c:5953
msgid "%Jparameter name omitted"
msgstr "%Jnom de paramètre omis"
-#: c-decl.c:5948
+#: c-decl.c:5993
#, fuzzy
msgid "%Jold-style function definition"
msgstr "spécificateur pur lors de la définition d'une fonction"
-#: c-decl.c:5956
+#: c-decl.c:6001
msgid "%Jparameter name missing from parameter list"
msgstr "%Jnom du paramètre manquant dans la liste des paramètres"
-#: c-decl.c:5967
+#: c-decl.c:6012
#, fuzzy
msgid "%J%qD declared as a non-parameter"
msgstr "%J\"%D\" déclaré comme un non paramètre"
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "%Jplusieurs paramètres nommés « %D »"
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "%Jparamètre \"%D\" déclaré «void »"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "%Jtype de « %D » est « int » par défaut"
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "%Jparamètre \"%D\" a un type incomplet"
-#: c-decl.c:6022
+#: c-decl.c:6067
#, fuzzy
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "%Jdéclaration du paramètre « %D » mais pas de tel paramètre"
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "le nombre d'arguments ne concorde pas avec celui du prototype"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
msgid "%Hprototype declaration"
msgstr "%Hdéclaration de prototype"
-#: c-decl.c:6101
+#: c-decl.c:6146
#, fuzzy
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "argument promu \"%D\" ne concorde pas avec le prototype"
-#: c-decl.c:6109
+#: c-decl.c:6154
#, fuzzy
msgid "argument %qD doesn%'t match prototype"
msgstr "argument \"%D\" ne concorde pas avec le prototype"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr "« return » manquant dans une fonction devant retourner une valeur"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "cette fonction devrait finir en retournant ou non une valeur"
#. 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:6403
+#: c-decl.c:6461
#, fuzzy
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "déclaration initiale de la boucle « for » utilisée en dehors du mode C99"
-#: c-decl.c:6432
+#: c-decl.c:6490
#, fuzzy
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "%Jdéclaration de la variable statique « %D » dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:6435
+#: c-decl.c:6493
#, fuzzy
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "%Jdéclaration de la variable externe « %D » dans la déclaration initiale « for »"
-#: c-decl.c:6440
+#: c-decl.c:6498
#, fuzzy
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "« struct %s » déclarée dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:6444
+#: c-decl.c:6502
#, fuzzy
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "« union %s » déclarée dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:6448
+#: c-decl.c:6506
#, fuzzy
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "« enum %s » déclarée dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:6452
+#: c-decl.c:6510
#, fuzzy
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "%Jdéclaration de « %D » (qui n'est pas une variable) dans la déclaration initiale de « for »"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "« %s » apparaît en double"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
#, fuzzy
msgid "two or more data types in declaration specifiers"
msgstr "deux types de données ou plus dans la déclaration de « %s »"
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "« long long long » est trop long pour GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO C90 ne permet pas « long long »"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
#, fuzzy
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "« long » et « short » spécifiés à la fois pour « %s »"
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
#, fuzzy
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "« long » et « short » spécifiés à la fois pour « %s »"
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
#, fuzzy
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "« long » et « short » spécifiés à la fois pour « %s »"
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
#, fuzzy
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "« long » et « short » spécifiés à la fois pour « %s »"
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
#, fuzzy
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "« long » et « short » spécifiés à la fois pour « %s »"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:6875
+#: c-decl.c:6933
msgid "ISO C90 does not support complex types"
msgstr "ISO C90 ne permet pas les types « complex »"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, fuzzy, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr "« %s » n'a pu devenir un typedef ou un type construit"
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "« %s » n'est pas au début de la déclaration"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
#, fuzzy
msgid "%<__thread%> before %<extern%>"
msgstr "« __thread » avant « extern »"
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
#, fuzzy
msgid "%<__thread%> before %<static%>"
msgstr "« __thread » avant « static »"
-#: c-decl.c:7106
+#: c-decl.c:7164
#, fuzzy
msgid "multiple storage classes in declaration specifiers"
msgstr "multiples classes de stockage dans la déclaration de « %s »"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr "ISO C ne permet pas d'utiliser « complex » à la place de « double complex »"
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C interdit le type d'entiers complexes"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "%J« %F » utilisé mais n'a jamais été défini"
@@ -2553,7 +2561,7 @@ msgstr "Les formats de strftime ne peuvent pas formater d'argument"
msgid "statement with no effect"
msgstr "%Hdéclaration sasn effet"
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "mot-clé « break » à l'extérieur de toute boucle ou « switch »"
@@ -2577,17 +2585,17 @@ msgstr " car il s'agit d'un répertoire non système dupliquant un répertoire sys
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "le répertoire « %s » est ignoré car inexistant\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "la recherche pour #include \"...\" débute ici :\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "la recherche pour #include <...> débute ici:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Fin de la liste de recherche.\n"
@@ -2649,42 +2657,32 @@ msgstr "constante en nombre flottant excédant les limites de « %s »"
msgid "traditional C rejects string constant concatenation"
msgstr "le C traditionel rejette la concaténation de chaînes de constantes"
-#: c-objc-common.c:81
+#: c-objc-common.c:80
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr "%Jfonction « %F » ne jamais être enlignée parce qu'elle supprime l'utilisation de -fno-inline"
-#: c-objc-common.c:91
+#: c-objc-common.c:90
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr "%Jfonction « %F » ne jamais être enlignée parce qu'elle ne peut être lié dans cette unité de traduction"
-#: c-objc-common.c:99
+#: c-objc-common.c:98
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr "%Jfonction « %F » ne jamais être enlignée parce qu'elle utilise un attribut en conflit avec l'enlignage"
-#: c-objc-common.c:114
-#, fuzzy
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr "%Jfonction « %F » ne jamais être enlignée parce qu'elle a des tailles en attente"
-
-#: c-objc-common.c:127
-#, fuzzy
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr "%Jfonction imbriqué « %F » ne peut jamais être enlignée parce qu'ella possiblement sauvegardé des tailles en attente"
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
#, fuzzy
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "valeur de type « array » utilisé là où un scalaire est attendu"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
#, fuzzy
msgid "used struct type value where scalar is required"
msgstr "valeur de type « struct » utilisé là où un scalaire est attendu"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
#, fuzzy
msgid "used union type value where scalar is required"
msgstr "valeur de type « union » utilisé là où un scalaire est attendu"
@@ -2732,80 +2730,80 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "l'option « %s » n'est plus supportée"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr "-fhandle-exceptions a été renommé -fexceptions (et est maintenant utilisé par défaut)"
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr "nom du fichier de sortie spécifié deux fois"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k ignorée sans -Wformat"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args ignorée sans -Wformat"
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-zero-length ignorée sans -Wformat"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral ignorée sans -Wformat"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security ignorée sans -Wformat"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute ignorée sans -Wformat"
-#: c-opts.c:995
+#: c-opts.c:998
#, c-format
msgid "opening output file %s: %m"
msgstr "ouverture du fichier de sortie %s: %m"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, 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-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr "ouverture du fichier de dépendances %s: %m"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr "fermeture du fichier de dépendances %s: %m"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, c-format
msgid "when writing output to %s: %m"
msgstr "lors de l'écriture de la sortie dans %s: %m"
-#: c-opts.c:1216
+#: c-opts.c:1220
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-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr "<interne>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<ligne de commande>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr "il est trop tard pour la directive # pour fixer un répertoire de mise au point"
@@ -2817,17 +2815,17 @@ msgstr "il est trop tard pour la directive # pour fixer un répertoire de mise au
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "erreur de syntaxe"
# FIXME
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "erreur de syntaxe : impossible de reculer"
@@ -2880,109 +2878,114 @@ msgstr "le premier argument de « __builtin_choose_expr » n'est pas une constante
msgid "%<typeof%> applied to a bit-field"
msgstr "« typeof » appliqué à un champ de bits"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C interdit d'initialiser avec des accolades vides"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C90 interdit de spécifier des sous-objets à initialiser"
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
#, fuzzy
msgid "obsolete use of designated initializer without %<=%>"
msgstr "utilisation obsolète d'une initialisation désignée sans « = »"
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
#, fuzzy
msgid "obsolete use of designated initializer with %<:%>"
msgstr "utilisation obsolète d'une initialisation désignée avec « : »"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C interdit de spécifier les bornes des éléments à initaliser"
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C interdit les fonctions imbriquées"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
#, fuzzy
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO C interdit les références anticipée vers un type « enum »"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "virgule à la fin de liste d'énumerateurs"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "pas de point virgule à la fin de la structure ou de l'union"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "point virgule superflu dans la structure ou dans l'union"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C interdit les déclarations de membre sans aucun membre"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr "étiquette à la fin d'une déclaration composée"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C89 interdit les mélanges de déclarations et de code"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C interdit la déclaration d'étiquette"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr "groupe entre accolades à l'intérieur d'expression permis seulement à l'intérieur d'une fonction"
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, fuzzy, c-format
msgid "%E qualifier ignored on asm"
msgstr "%s qualificateur ignoré avec asm"
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+#, fuzzy
+msgid "wide string literal in %<asm%>"
+msgstr "chaîne de longueur erronée dans %s"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO C requiert un argument nommé devant « ... »"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "erreur d'analyse syntaxique; et la mémoire virtuelle est épuisée"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "débordement de la pile de l'analyseur syntaxique"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "erreur de syntaxe à l'élément lexical « %s »"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "erreur d'analyse syntaxique"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
msgid "parse error; also virtual memory exhausted"
msgstr "erreur d'analyse syntaxique; et la mémoire virtuelle est épuisée"
# FIXME
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "erreur de syntaxe : impossible de reculer"
@@ -3108,188 +3111,188 @@ msgstr "l'alignement doit être une petite puissance de 2, pas %d"
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr "%Japplication de la #pragma weak « %D » après la première utilisation conduit à un comportement non spécifié"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr "#pragma weak mal composée, ignoré"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "rebut à la fin de #pragma weak"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr "#pragma redefine_extname mal composée, ignoré"
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr "rebut à la fin de #pragma redefine_extname"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "« __builtin_eh_return » n'est pas possible sur cette cible"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "#pragma redefine_extname en conflit avec la déclaration"
-#: c-pragma.c:429
+#: c-pragma.c:461
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr "#pragma redefine_extname en conflit avec la déclaration"
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr "#pragma extern_prefix mal composée, ignoré"
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr "rebut à la fin de #pragma extern_prefix"
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "le profilage n'est pas supporté sur cette cible"
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "déclaration asm en conflit avec le changement de nom précédent"
-#: c-pragma.c:514
+#: c-pragma.c:546
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr "#pragma redefine_extname en conflit avec la déclaration"
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
#, fuzzy
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr "«(» manquante après «#pragma %s» - ignoré"
-#: c-pragma.c:596
+#: c-pragma.c:628
#, fuzzy
msgid "malformed #pragma GCC visibility push"
msgstr "construit #pragma mal composé"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "rebut à la fin de #pragma %s"
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "« %s » a un type incomplet"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "utilisation invalide d'expression void"
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr "utilisation invalide d'un membre flexible de tableau"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "utilisation invalide d'un tableau sans borne spécifiée"
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
msgid "invalid use of undefined type %<%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:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "utilisation invalide d'un typedef incomplet « %s »"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr "types de fonction pas vraiment compatibles en C ISO"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "les types ne sont pas vraiment compatibles"
-#: c-typeck.c:987
+#: c-typeck.c:1045
#, fuzzy
msgid "function return types not compatible due to %<volatile%>"
msgstr "les types retournés d'une fonction ne sont pas compatibles en raison de « volatile »"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "arithmétique sur un pointeur vers un type incomplet"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "%s n'a pas de membre nommé « %s »"
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, fuzzy, c-format
msgid "request for member %qs in something not a structure or union"
msgstr "requête du membre « %s » dans quelque chose n'étant ni une structure ni une union"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "déréférencement d'un pointeur de type incomplet"
-#: c-typeck.c:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "déréférencement d'un pointeur « void * »"
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "type d'argument invalide pour « %s »"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "la valeur indicée n'est ni un tableau ni un pointeur"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "l'indice du tableau n'est pas un entier"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "passage des arguments au pointeur de fonction"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
#, fuzzy
msgid "array subscript has type %<char%>"
msgstr "l'indice du tableau est de type « char »"
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO C interdit de sous-indicer des tableaux « register »"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C90 interdit d'indicer de tableau n'étant pas membre gauche"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "l'objet appelé n'est pas une fonction"
@@ -3297,819 +3300,815 @@ msgstr "l'objet appelé n'est pas une fonction"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr "fonction appellée à travers un type non compatible"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "un élément de l'initialisation n'est pas une constante"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "trop d'arguments pour la fonction"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "le type du paramètre formel %d est incomplet"
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr "%s est entier plutôt que flottant en raison du prototype"
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr "%s est entier plutôt que complexe en raison du prototype"
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr "%s est complexe plutôt que flottant en raison du prototype"
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr "%s est flottant plutôt qu'entier en raison du prototype"
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr "%s est complexe plutôt qu'entier en raison du prototype"
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr "%s est flottant plutôt que complexe en raison du prototype"
-#: c-typeck.c:2121
+#: c-typeck.c:2204
#, fuzzy
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr "%s est « float » plutôt qu'un « double » en raison du prototype"
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, fuzzy, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr "%s a une largeur différente en raison du prototype"
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, fuzzy, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "%s est non signé en raison du prototype"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "%s est signé en raison du prototype"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "trop peu d'arguments pour la fonction"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
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:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "parenthèses suggérées autour de && à l'intérieur de ||"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de |"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de |"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de ^"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de ^"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "parenthèses suggérées autour de + ou - dans l'opérande de &"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de &"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "les comparaisons telles que X<=Y<=Z n'ont pas de signification mathématique"
-#: c-typeck.c:2314
+#: c-typeck.c:2397
#, fuzzy
msgid "pointer of type %<void *%> used in subtraction"
msgstr "pointeur de type « void * » utilisé dans une soustraction"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "pointeur vers un fonction utilisé dans une soustraction"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "type d'argument erroné pour le plus unaire"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "type d'argument erroné pour le moins unaire"
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO C ne permet pas d'utiliser « ~ » pour le complexe conjugué"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "type d'argument erroné pour un complément de bit"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "type d'argument erroné pour abs"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "type d'argument erroné pour la conjugaison"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "type d'argument erroné pour le point d'exclamation unaire"
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, fuzzy
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr "ISO C ne permet pas « ++ » ni « -- » sur les types complexes"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "type d'argument erroné pour un incrément"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "type d'argument erroné pour un décrément"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "incrément d'un pointeur vers une structure inconnue"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "décrément d'un pointeur vers une structure inconnue"
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, fuzzy, c-format
msgid "assignment of read-only member %qs"
msgstr "%s d'un membre en lecture seule « %s »"
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, fuzzy, c-format
msgid "increment of read-only member %qs"
msgstr "%s d'un membre en lecture seule « %s »"
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, fuzzy, c-format
msgid "decrement of read-only member %qs"
msgstr "%s d'un membre en lecture seule « %s »"
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, fuzzy, c-format
msgid "assignment of read-only variable %qs"
msgstr "%s d'une variable en lecture seule « %s »"
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, fuzzy, c-format
msgid "increment of read-only variable %qs"
msgstr "%s d'une variable en lecture seule « %s »"
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, fuzzy, c-format
msgid "decrement of read-only variable %qs"
msgstr "%s d'une variable en lecture seule « %s »"
-#: c-typeck.c:2734
+#: c-typeck.c:2817
#, fuzzy
msgid "assignment of read-only location"
msgstr "%s d'une position en lecture seule"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
#, fuzzy
msgid "increment of read-only location"
msgstr "%s d'une position en lecture seule"
-#: c-typeck.c:2736
+#: c-typeck.c:2819
#, fuzzy
msgid "decrement of read-only location"
msgstr "%s d'une position en lecture seule"
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "ne peut prendre l'adresse du champ de bits « %s »"
-#: c-typeck.c:2783
+#: c-typeck.c:2866
#, fuzzy
msgid "global register variable %qD used in nested function"
msgstr "variable globale de registre « %s » utilisée dans une fonction imbriquée"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
#, fuzzy
msgid "register variable %qD used in nested function"
msgstr "variable de registre « %s » utilisée dans une fonction imbriquée"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
#, fuzzy
msgid "address of global register variable %qD requested"
msgstr "adresse d'une variable registre globale « %s » requise"
-#: c-typeck.c:2793
+#: c-typeck.c:2876
#, fuzzy
msgid "address of register variable %qD requested"
msgstr "adresse d'une variable registre « %s » requise"
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "mode non booléen dans l'expression conditionnelle"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "type signé et non signé dans une expression conditionnelle"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
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 »"
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
#, fuzzy
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"
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "non concordance de type de pointeurs dans un expression conditionnelle"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "non concordance entre pointeur et entier dans une expression conditionnelle"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "non concordance de type dans une expression conditionnelle"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr "l'opérande à gauche de la virgule n'a pas d'effet"
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "le transtypage spécifie un type de tableau"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "le transtypage spécifie un type de fonction"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO C interdit le transtypage d'un type non scalaire vers lui-même"
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C interdit le transtypage vers un type union"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
msgid "cast to union type from type not present in union"
msgstr "transtypage vers un type union depuis un type absent de l'union"
-#: c-typeck.c:3120
+#: c-typeck.c:3203
msgid "cast adds new qualifiers to function type"
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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "le transtypage annule des qualificateurs du type pointeur ciblé"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "le transtypage augmente l'alignement requis pour le type ciblé"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "transtypage d'un pointeur vers un entier de taille différente"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "transtypage vers un pointeur depuis un entier de taille différente"
# FIXME
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr "type-punning vers un type incomplet peut briser les règles stricte d'aliases"
# FIXME
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr "déréférencement du pointeur type-punned brisera les strictes d'aliases"
# FIXME
-#: c-typeck.c:3181
+#: c-typeck.c:3264
#, fuzzy
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr "déréférencement du pointeur type-punned brisera les strictes d'aliases"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C interdit la conversion d'un pointeur de fonction en un type pointeur d'objet"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C interdit la conversion d'un pointeur d'objet vers un type de pointeur à une fonction"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr "impossible de passer un membre droit en paramètre par référence"
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, fuzzy, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr "%s qualifie un pointeur de fonction non qualifié"
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
#, fuzzy
msgid "assignment makes qualified function pointer from unqualified"
msgstr "%s qualifie un pointeur de fonction non qualifié"
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
#, fuzzy
msgid "initialization makes qualified function pointer from unqualified"
msgstr "%s qualifie un pointeur de fonction non qualifié"
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
#, fuzzy
msgid "return makes qualified function pointer from unqualified"
msgstr "%s qualifie un pointeur de fonction non qualifié"
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, fuzzy, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr "transtypage de « %T » vers « %T » écarte les qualificateurs du type cible du pointeur"
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
#, fuzzy
msgid "assignment discards qualifiers from pointer target type"
msgstr "le transtypage annule des qualificateurs du type pointeur ciblé"
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
#, fuzzy
msgid "initialization discards qualifiers from pointer target type"
msgstr "le transtypage annule des qualificateurs du type pointeur ciblé"
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
#, fuzzy
msgid "return discards qualifiers from pointer target type"
msgstr "le transtypage annule des qualificateurs du type pointeur ciblé"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C interdit la conversion d'argument en type union"
-#: c-typeck.c:3628
+#: c-typeck.c:3714
#, fuzzy
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ISO C interdit %s entre pointeur de fonction et « void * »"
-#: c-typeck.c:3631
+#: c-typeck.c:3717
#, fuzzy
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ISO C interdit %s entre pointeur de fonction et « void * »"
-#: c-typeck.c:3633
+#: c-typeck.c:3719
#, fuzzy
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ISO C interdit %s entre pointeur de fonction et « void * »"
-#: c-typeck.c:3635
+#: c-typeck.c:3721
#, fuzzy
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ISO C interdit %s entre pointeur de fonction et « void * »"
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, fuzzy, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
-#: c-typeck.c:3660
+#: c-typeck.c:3746
#, fuzzy
msgid "pointer targets in assignment differ in signedness"
msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
-#: c-typeck.c:3662
+#: c-typeck.c:3748
#, fuzzy
msgid "pointer targets in initialization differ in signedness"
msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
-#: c-typeck.c:3664
+#: c-typeck.c:3750
#, fuzzy
msgid "pointer targets in return differ in signedness"
msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, fuzzy, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "%s d'un type pointeur incompatible"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "%s d'un type pointeur incompatible"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
#, fuzzy
msgid "initialization from incompatible pointer type"
msgstr "%s d'un type pointeur incompatible"
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "%s d'un type pointeur incompatible"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "utilisation invalide d'un tableau n'étant pas membre gauche"
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s transforme un entier en pointeur sans transtypage"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s transforme un entier en pointeur sans transtypage"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s transforme un entier en pointeur sans transtypage"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s transforme un entier en pointeur sans transtypage"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s transforme un pointeur en entier sans transtypage"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s transforme un pointeur en entier sans transtypage"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s transforme un pointeur en entier sans transtypage"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s transforme un pointeur en entier sans transtypage"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "type incompatibles dans %s"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "type incompatibles dans %s"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "type incompatibles dans %s"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "le C traditionel rejette l'initialisation automatique d'aggrégats"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "(près de l'initialisation de « %s »)"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "tableau de caractères initialisé à l'aide d'une chaîne large de caractères"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "tableau de caractères initialisé à l'aide d'une chaîne large de caractères"
-#: c-typeck.c:4116
+#: c-typeck.c:4202
#, fuzzy
msgid "wchar_t-array initialized from non-wide string"
msgstr "tableau de caractères initialisé à l'aide d'une chaîne large de caractères"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "la chaîne d'initialisation est trop longue pour le tableau de caractères"
-#: c-typeck.c:4140
+#: c-typeck.c:4226
#, fuzzy
msgid "array of inappropriate type initialized from string constant"
msgstr "tableau de caractères initialisé à l'aide d'une chaîne large de caractères"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr "tableau initialisé à l'aide de l'expression de tableau non constante"
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "un élément de l'initialisation n'est pas évaluable lors du chargement"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "initialisation invalide"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
msgid "opaque vector types cannot be initialized"
msgstr "type de vecteur opaque ne peut être initialisé"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "groupe d'accolades superflu à la fin de l'initialisation"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "accolades manquantes autour de l'initialisation"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "accolades autour d'une initialisation de scalaire"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
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:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "initialisation d'un membre de tableau flexible"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "initialisation manquante"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "initialisation vide de scalaire"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "éléments superflus dans l'initialisation de scalaire"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "l'initialisation des désignateurs ne doit pas être imbriquée"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "index de tableau dans l'initialisation de quelque chose n'étant pas un tableau"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "nom de champ dans l'initialisation de quelque chose n'étant ni un enregistrement ni une union"
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "index de tableau hors limites lors de l'initialisation"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "index de tableau non constant dans l'initialisation"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr "index de tableau hors limites lors de l'initialisation"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "borne d'index vide lors de l'initialisation"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "plage d'index du tableau excédant les bornes lors de l'initialisation"
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, fuzzy, c-format
msgid "unknown field %qs specified in initializer"
msgstr "champ inconnu « %s » spécifié lors de l'initialisation"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "le champ initialisé par effet de bord a été écrasé"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "éléments en excès dans l'initialisation de tableau de caractères"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "éléments en excès dans l'initialisation de la structure"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr "initialisation non statique d'un membre de tableau flexible"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "éléments en excès dans l'initialisation d'union"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "le C traditionel rejette l'initialisation d'union"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "éléments en excès dans l'initialisation de tableau"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr "éléments en excès dans l'initialisation du vecteur"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "éléments en excès dans l'initialisation d'un scalaire"
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO C interdit « goto *expr; »"
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
#, fuzzy
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "fonction déclarée avec « noreturn» utilisant le mot-clé « return »"
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
msgid "%<return%> with no value, in function returning non-void"
msgstr "« return » sans valeur dans une fonction retournant autre chose que void"
-#: c-typeck.c:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "« return » avec une valeur dans une fonction retournant un void"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "cette fonction retourne l'adresse d'une variable locale"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "quantité du switch n'est pas un entier"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
#, fuzzy
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr "expression « long » du switch non convertie en « int » par ISO C"
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "étiquette de « case » en dehors de tout switch"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
#, fuzzy
msgid "%<default%> label not within a switch statement"
msgstr "étiquette « default » en dehors de tout switch"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
#, fuzzy
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr "%Hon vous suggère des accolades explicitement pour éviter des « else » ambiguës"
-#: c-typeck.c:6631
+#: c-typeck.c:6761
msgid "%Hempty body in an if-statement"
msgstr "%Hle corps de la déclaration du if est vide"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "le corps du else est vide"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "mot-clé « continue » à l'extérieur de toute boucle"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr "%Hdéclaration sasn effet"
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "la déclaration de l'expression a un type incomplet"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "division par zéro"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "le compteur de décalage vers la droite est négatif"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "compteur de décalage vers la droite >= à la largeur du type"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "le compteur de décalage vers la gauche est négatif"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "compteur de décalage vers la gauche >= à la largeur du type"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "comparer des nombres flottants à l'aide de == ou != n'est pas sûr"
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, fuzzy
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr "ISO C interdit la comparaison de « void * » avec un pointeur de fonction"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "il manque un transtypage pour comparer des types distincts de pointeur"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "comparaison entre un pointeur et un entier"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "comparaison de pointeurs complet et incomplet"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C interdit les comparaisons ordonnées de pointeurs vers des fonctions"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "comparaison ordonnée de pointeur avec le zéro entier"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "comparaison entre élément signé et élément non signé"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "comparaison entre élément promu ~unsigned et une constante"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "comparaison entre élément promu ~unsigned et un élément non signé"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "l'appel de fonction a une valeur d'aggrégat"
@@ -4153,7 +4152,7 @@ msgstr "verify_flow_info: Mauvais nombre d'arrête %i->%i %i"
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: l'arrête succ du bloc de base %d est corrompue"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, 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"
@@ -4263,311 +4262,311 @@ msgstr "%s ne supporte pas %s"
msgid "%s does not support flow_call_edges_add"
msgstr "%s ne supporte pas %s"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, 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:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr "Bb %d n'appartient pas à la boucle %d."
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, 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:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr "Le verrou %d de la boucle n'a pas exactement 1 successeur."
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr "Le verrou %d de la boucle n'a pas une en-tête comme successeur."
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr "Le verrou %d de la boucle ne lui appartient pas directement."
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, 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."
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr "Le verrou %d de la boucle est défini comme faisant partie d'une zone irréductible"
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr "bloc de base %d devrait être marqué irréductible."
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr "bloc de base %d ne devrait pas être marqué irréductible."
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr "Bordures à partir de %d à %d devraient être marqués irréductibles."
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr "Bordures à partir de %d à %d ne devraient être marquées irréductibles."
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, 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:1954
+#: cfgrtl.c:1962
#, 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:1966
+#: cfgrtl.c:1974
#, 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:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr "verify_flow_info: REG_BR_PROB ne correspond pas à la config %wi %i"
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, 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:2038
+#: cfgrtl.c:2046
#, 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:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr "Arrête fallthru après le branchement inconditionnel %i"
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, 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:2059
+#: cfgrtl.c:2067
#, 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:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr "Arrête anormale sans but dans le bb %i"
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, 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:2084
+#: cfgrtl.c:2092
#, 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"
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK manquant pour le bloc %d"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr "NOTE_INSN_BASIC_BLOCK %d au milieu du bloc de base %d"
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr "dans le bloc de base %d :"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr "insn de contrôle de flot à l'intérieur d'un bloc de base"
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr "barrière manquante après le boc %i"
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, 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:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: fallthru incorrect %i->%i"
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr "insn erronée dans l'arrête fallthru"
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr "les blocs de base ne se suivent pas consécutivement"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr "insn à l'extérieur de tout bloc de base"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr "return n'est pas suivi d'une barrière"
# FIXME
# bb est une abréviation courante dans cette partie du fichier pour « basic block »
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr "nombre de bb noté dans la chaîne d'insn (%d) != n_basic_blocks (%d)"
-#: cgraph.c:231
+#: cgraph.c:278
msgid "function body not available"
msgstr "corps de la fonction n'est pas disponible"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr "fonctions externes enlignes redéfinies n'ont pas été retenues pour l'enlignage"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
msgid "function not considered for inlining"
msgstr "fonction n'a pas été retenue pour l'enlignage"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
msgid "function not inlinable"
msgstr "fonction ne peut être enligne"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr "« %D » renommé après avoir été référencé durant l'assemblage"
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "types multiples dans une déclaration"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, fuzzy, c-format
msgid "Aux field set for edge %s->%s"
msgstr "pas de champ (encore) pour l'étiquette %s"
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "pointeur de section manquant"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
#, fuzzy
msgid "verify_cgraph_node failed."
msgstr "verify_flow_info a échoué"
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "champ « %s » déclaré comme une fonction"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr "--param large-function-growth limite atteinte"
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr "enlignage récursif"
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr "--param max-inline-insns-single limite atteinte"
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr "--param max-inline-insns-single limite atteinte après l'enlignage dans l'appellé"
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr "--param inline-unit-growth limite atteinte"
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "abandon dans %s, à %s:%d"
@@ -4576,75 +4575,75 @@ msgstr "abandon dans %s, à %s:%d"
msgid "no arguments"
msgstr "pas d'argument"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "mode machine « %s » inconnu"
# I18N
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen() %s"
# I18N
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose() %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 version %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d constructeur(s) trouvé(s)\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d destructeur(s) trouvé(s)\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d table(s) de trame trouvée(s)\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s terminé par le signal %d [%s]%s"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s a retourné %d comme valeur de sortie"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[%s introuvable]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "« %s » introuvable"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "redirection de stdout : %s"
# FIXME
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Laissant %s]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4653,61 +4652,61 @@ msgstr ""
"\n"
"write_c_file - le nom de sortie est %s, le préfixe est %s\n"
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "« nm » introuvable"
# I18N
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "pipe"
# I18N
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
# I18N
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
# I18N
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
# I18N
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "fonction init trouvée dans l'objet %s"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "fonction fini() trouvée dans l'objet %s"
# I18N
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "« ldd » introuvable"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4715,33 +4714,33 @@ msgstr ""
"\n"
"sortie de ldd avec constructeurs/destructeurs.\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "dépendance dynamique %s introuvable"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "incapable d'ouvrir la dépendance dynamique « %s »"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s : n'est pas un fichier COFF"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s : ne peut ouvrir en tant que fichier COFF"
# I18N
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr "bibliothèque lib%s introuvable"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4752,7 +4751,7 @@ msgstr ""
";; %d succès.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4870,7 +4869,7 @@ msgid "too many input files"
msgstr "trop de fichiers d'entrée"
# FIXME: Initialisé, ou ensembles?
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ";; traitement du bloc de %d à %d, %d initialisés.\n"
@@ -4932,31 +4931,23 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s n'est pas implanté\n"
-#: emit-rtl.c:1215
-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 un registre matériel"
-
-#: emit-rtl.c:1242
-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 un registre matériel"
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr "partage rtl invalide repéré dans l'insn"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr "rtx partagé"
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE : emit_insn utilisé là où emit_jump_insn était attendu :\n"
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "abandon dans %s, à %s:%d"
@@ -4975,7 +4966,7 @@ msgid "__builtin_eh_return not supported on this target"
msgstr "« __builtin_eh_return » n'est pas possible sur cette cible"
# FIXME
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "les limites de la pile ne sont pas supportées sur cette cible"
@@ -5025,103 +5016,103 @@ msgstr "opérande « %%l » n'est pas une étiquette"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "constante flottante mal utilisée"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "expression invalide comme opérande"
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
#, fuzzy
msgid "internal consistency failure"
msgstr "abandon interne de gcc"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Tentative pour détruire le prologue/épilogue insn:"
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "comparaison est toujours %d"
-#: fold-const.c:4899
+#: fold-const.c:4933
#, fuzzy
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:4904
+#: fold-const.c:4938
#, fuzzy
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr "« and » de tests d'égalité mutuellement exclusifs est toujours 0"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr "vérification fold: arbre originale modifié par fold"
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "%Jtaille de la variable « %D » est trop grande"
-#: function.c:1442
+#: function.c:1443
#, fuzzy
msgid "impossible constraint in %<asm%>"
msgstr "contrainte impossible dans « asm »"
-#: function.c:3495
+#: function.c:3633
#, fuzzy
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "%Jvariable « %D » pourrait être maltraitée par un «longjmp» ou un «vfork »"
-#: function.c:3516
+#: function.c:3654
#, fuzzy
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "%Jargument « %D » pourrait être maltraitée par un «longjmp» ou un «vfork »"
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "fonction retourne un aggrégat"
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "%Jparamètre « %D » inutilisé"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "abréviation %s est ambiguë"
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "option « %s » est incomplète"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "argument manquant à l'option « %s »"
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "argument superflu à l'option « %s »"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr "Utilisation des specs internes.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -5130,42 +5121,42 @@ msgstr ""
"Initialisation des spec %s à « %s »\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr "Lecture des spécification à partir de %s\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, 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:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr "ne peut repérer le fichiers des specs %s\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, 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:2109
+#: gcc.c:2099
#, 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:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr "%s: tentative pour renommner la spécification « %s » à un spécification « %s » déjà définie"
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr "renommé les specs %s à %s\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5174,30 +5165,30 @@ msgstr ""
"spec est « %s »\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "specs inconnus de la commande %% après %ld caractères"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "fichier de specs mal composé après %ld caractères"
-#: gcc.c:2213
+#: gcc.c:2203
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:2635
+#: gcc.c:2625
#, fuzzy, c-format
msgid "system path '%s' is not absolute"
msgstr "réservation « %s » n'est utilisé"
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe n'est pas supporté"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5205,7 +5196,7 @@ msgstr ""
"\n"
"Aller de l'avant? (y ou n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5216,69 +5207,69 @@ msgstr ""
"SVP soumettre un rapport complet d'anomalies.\n"
"Consulter %s pour les instructions."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Usage: %s [options] fichier...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Options:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help afficher l'aide mémoire\n"
-#: gcc.c:3038
+#: gcc.c:3028
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:3040
+#: gcc.c:3030
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:3041
+#: gcc.c:3031
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:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion afficher la version du compilateur\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine afficher le processeur ciblé par le compilateur\n"
-#: gcc.c:3044
+#: gcc.c:3034
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:3045
+#: gcc.c:3035
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 bibliothèque compagne du compilateur\n"
-#: gcc.c:3046
+#: gcc.c:3036
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 bibliothèque <lib>\n"
-#: gcc.c:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5287,96 +5278,96 @@ msgstr ""
" la ligne de commande et les multiples répertoires de\n"
" recherches des bibliothèques\n"
-#: gcc.c:3052
+#: gcc.c:3042
msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr " -print-multi-os-directory afficher le chemin relatif du répertoire vers les librairies de l'OS\n"
-#: gcc.c:3053
+#: gcc.c:3043
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:3054
+#: gcc.c:3044
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:3055
+#: gcc.c:3045
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:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xassembler <arg> passer l'<arg>ument à l'assembleur\n"
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xpreprocessor <arg> passer l'<arg>ument au pré-processeur\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <argument> passer l'<argument> à l'éditeur de liens\n"
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -o <fichier> placer la sortie dans le <fichier>\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps ne pas détruire les fichiers intermédiaires\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe utiliser des pipes au lieu de fichiers intermédiares\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time mesurer le temps d'exécution de chaque sous-processus\n"
-#: gcc.c:3063
+#: gcc.c:3053
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:3064
+#: gcc.c:3054
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr " -std=<standard> Présumer que les fichiers sources respectent le <standard>\n"
-#: gcc.c:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
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:3067
+#: gcc.c:3057
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:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v afficher les programmes invoqués par le compilateur\n"
-#: gcc.c:3069
+#: gcc.c:3059
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:3070
+#: gcc.c:3060
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:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S compiler seulement; ne pas assembler ou éditer les liens\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -S compiler et assembler, mais ne pas éditer les liens\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fichier> placer la sortie dans le <fichier>\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5388,7 +5379,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:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5401,28 +5392,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:3201
+#: gcc.c:3191
#, fuzzy, c-format
msgid "'-%c' option must have argument"
msgstr "l'option « -%c » requière un argument"
-#: gcc.c:3223
+#: gcc.c:3213
#, fuzzy, c-format
msgid "couldn't run '%s': %s"
msgstr "impossible d'exécuter « %s » : %s"
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr "©"
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5433,95 +5424,95 @@ msgstr ""
"GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.\n"
"\n"
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "argument de «-Xlinker» est manquant"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "argument de « -Xpreprocessor » est manquant"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "argument de « -Xassembler » est manquant"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "argument pour « -l » est manquant"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "argument de « -specs » est manquant"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "argument de «-specs=» est manquant"
-#: gcc.c:3606
+#: gcc.c:3596
#, fuzzy, c-format
msgid "'-%c' must come at the start of the command line"
msgstr "« -%c » doit apparaître au début de la ligne de commande"
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "argument de « -B » est manquant"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "AVERTISSEMENT: -pipe ignoré parce que -save-temps a été spécifié"
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr "AVERTISSEMENT: -pipe ignoré parce que -time a été spécifié"
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "argument pour « -x » est manquant"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "argument pour « -%s » est manquant"
-#: gcc.c:4093
+#: gcc.c:4083
#, fuzzy, 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:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "le champ de bits « %s » a un type invalide"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "le champ de bits « %s » a un type invalide"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "le champ de bits « %s » a un type invalide"
@@ -5529,88 +5520,88 @@ msgstr "le champ de bits « %s » a un type invalide"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, 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"
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "AVERTISSEMENT: utilisation obsolète de l'opérateur %%[ dans les specs"
-#: gcc.c:5203
+#: gcc.c:5176
#, 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:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "échec de spec: option « %c » de spec non reconnue"
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "spécification de fonction inconnue « %s »:"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "ERREUR d'arguments pour la spécification de fonction « %s »"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr "nom de spécification de fonction mal composé"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr "aucun argument pour la spécification de fonction"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr "arguments de spécification de fonction mal composés"
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr "échec de spécification: plus d'un argument à SYSROOT_SUFFIX_SPEC."
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr "échec de spécification: plus d'un argument à SYSROOT_HEADERS_SUFFIX_SPEC."
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "option « -%s » non reconnue"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "installés: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "programmes: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "libraries: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5619,71 +5610,76 @@ msgstr ""
"\n"
"Pour les instructons afin de rapporter des anomales, SVP consulter:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "libraries: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "Configuré avec: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Modèle de thread: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "version gcc %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, 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:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "pas de fichier à l'entrée"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, 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:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "le paramètre « %s » est initialisé"
-#: gcc.c:6607
+#: gcc.c:6596
#, 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:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "language %s n'est pas reconnu"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s : %s"
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "patron de l'argument %d est invalide"
-#: gcc.c:7130
+#: gcc.c:7119
#, fuzzy, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr "champs multiples dans l'union « %T » initialisés"
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "patron de l'argument %d est invalide"
-#: gcc.c:7367
+#: gcc.c:7356
#, fuzzy, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr "champs multiples dans l'union « %T » initialisés"
@@ -5975,27 +5971,27 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr "%s: fichier source est plus récent que le fichier graphe « %s »\n"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr "GCSE désactivé"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr "saut d'évitement désactivé"
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "%s: %d blocs de base et %d blocs edges/basic"
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "%s: %d blocs basic et %d registres"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, c-format
msgid "can't write PCH file: %m"
@@ -6012,7 +6008,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "ne peut écrire de remplissage dans le fichier PCH: %m"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, c-format
msgid "can't read PCH file: %m"
msgstr "ne peut lire le fichier PCH: %m"
@@ -6021,12 +6017,12 @@ msgstr "ne peut lire le fichier PCH: %m"
msgid "had to relocate PCH"
msgstr "a dû relocaliser PCH"
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr "ouverture de /dev/zero: %m"
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
msgid "can't write PCH file"
msgstr "ne peut écrire dans le fichier PCH"
@@ -6035,27 +6031,27 @@ msgstr "ne peut écrire dans le fichier PCH"
msgid "unexpected node"
msgstr "opérande inattendue"
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "membre gauche invalide avec asm"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, fuzzy, c-format
msgid "memory input %d is not directly addressable"
msgstr "nombre de sortie %d n,est pas directement adressable"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, c-format
msgid "%s cannot be used in asm here"
msgstr "%s ne peut être utilisé dans asm ici"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, c-format
msgid "can't open %s: %m"
msgstr "ne peut ouvrir %s: %m"
@@ -6115,72 +6111,72 @@ msgstr "argument de \"%s\" doit être un entier non négatif"
msgid "unrecognized command line option \"%s\""
msgstr "option \"%s\" de la ligne de commande non reconnue"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized n'est pas supporté sans -O"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, fuzzy, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr "l'alignement doit être une petite puissance de 2, pas %d"
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "nom de registre non reconnue \"%s\""
-#: opts.c:937
+#: opts.c:938
#, c-format
msgid "unrecognized register name \"%s\""
msgstr "nom de registre non reconnue \"%s\""
-#: opts.c:957
+#: opts.c:962
#, c-format
msgid "unknown tls-model \"%s\""
msgstr "tls-model \"%s\" inconnu"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr "%s: arguments de --param devrait être de la forme NOM=VALEUR"
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "valeur de --param invalide « %s »"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr "le ssytème cible ne supporte pas la sortie pour mise au point"
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "le format de mise au point \"%s\" entre en conflit avec une sélection précédente"
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "niveau de sortie de mise au point non reconnu \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr "niveau de sortie de mise au point %s est trop élevé"
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr "Les options suivantes sont indépendantes du langage:\n"
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
@@ -6189,17 +6185,27 @@ msgstr ""
"L'interface %s reconnaît les options suivantes:\n"
"\n"
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr "L'option --param reconnaît les paramètres suivant:\n"
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "paramètre invalide « %s »"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "paramètre invalide « %s »"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr "optimisation du chargement du registre cible de branchement est pas prévu pour être exécuté deux fois"
@@ -6537,96 +6543,92 @@ msgstr "%s: ne peut repérer le répertoire de travail: %s\n"
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"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr "N'a pas repéré une coloration.\n"
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, 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:631
+#: reg-stack.c:632
#, 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:654
+#: reg-stack.c:655
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:691
+#: reg-stack.c:692
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:710
+#: reg-stack.c:711
#, fuzzy
msgid "output operand %d must use %<&%> constraint"
msgstr "opérande de sortie %d doit utiliser la contrainte « & »"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "ne peut utiliser « %s » comme le registre %s"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "nom de registre inconnu: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "variable registre globale suit la définition d'une fonction"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "registre utilisé pour deux variables registres globales"
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr "registre maltraité par un appel utilisé par un variable registre globale"
-#: regrename.c:1876
+#: regrename.c:1872
#, 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:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: boucle dans la chaîne regno (%u)"
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno erroné (%u)"
-#: regrename.c:1903
+#: regrename.c:1899
#, 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:1252
+#: reload.c:1270
#, fuzzy
msgid "cannot reload integer constant operand in %<asm%>"
msgstr "ne peut recharger l'opérande de constante entière dans « asm »"
-#: reload.c:1275
+#: reload.c:1293
#, fuzzy
msgid "impossible register constraint in %<asm%>"
msgstr "impossible de contraindre les registres en « asm »"
-#: reload.c:3513
+#: reload.c:3535
#, fuzzy
msgid "%<&%> constraint used with no register class"
msgstr "contrainte « & » utilisé sans classe registre"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr "incapable de générer des recharges pour:"
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
#, fuzzy
msgid "inconsistent operand constraints in an %<asm%>"
msgstr "contrainte d'opérande inconsistente en « asm »"
@@ -6639,41 +6641,41 @@ msgstr "taille de trame trop grande pour une vérification fiable de la pile"
msgid "try reducing the number of local variables"
msgstr "essayer de réduire le nombre de variables locales"
-#: reload1.c:1866
+#: reload1.c:1865
#, fuzzy
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr "ne peut repérer un registre dans la classe « %s » durant le rechargement «asm »"
-#: reload1.c:1871
+#: reload1.c:1870
#, fuzzy, c-format
msgid "unable to find a register to spill in class %qs"
msgstr "incapable de trouver un registre de déversement dans la classe « %s »"
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr "ceci est le insn:"
-#: reload1.c:3864
+#: reload1.c:3863
#, fuzzy
msgid "%<asm%> operand requires impossible reload"
msgstr "opérande « asm » requiert une recharge impossible"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr "ne peut repérer un registre de déversement"
-#: reload1.c:4988
+#: reload1.c:4987
#, fuzzy
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:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr "mode VOID sur une sortie"
-#: reload1.c:6607
+#: reload1.c:6615
#, fuzzy
msgid "output operand is constant in %<asm%>"
msgstr "opérande de sortie est une constante dans « asm »"
@@ -6686,151 +6688,151 @@ msgstr "insn non reconnaissable:"
msgid "insn does not satisfy its constraints:"
msgstr "insn ne satisfait pas à ses contraintes:"
-#: rtl.c:472
+#: rtl.c:471
#, fuzzy, 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:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
+#: rtl.c:500
#, fuzzy, 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:511
+#: rtl.c:510
#, fuzzy, 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:522
+#: rtl.c:521
#, 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"
-#: rtl.c:533
+#: rtl.c:532
#, fuzzy, c-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr "vérification du fanion RTL: %s utilisé avec un code rtx inattendu, « %s » dans %s, à %s:%d"
-#: stmt.c:316
+#: stmt.c:317
#, fuzzy
msgid "output operand constraint lacks %<=%>"
msgstr "contrainte de sortie de l'opérande manque « = »"
-#: stmt.c:331
+#: stmt.c:332
#, fuzzy, c-format
msgid "output constraint %qc 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:354
+#: stmt.c:355
#, fuzzy
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr "contrainte de l'opérande contient « + » ou « - » incorrectement positionné"
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
#, fuzzy
msgid "%<%%%> constraint used with last operand"
msgstr "contrainte « %% » utilisée avec la dernière opérande"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "contrainte concordante n'est pas valide dans une opérande de sortie"
-#: stmt.c:451
+#: stmt.c:452
#, fuzzy, c-format
msgid "input operand constraint contains %qc"
msgstr "contrainte d'entrée de l'opérande contient « %c »"
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr "nombre d'opérandes invalides pour références de containte concordantes"
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "ponctuation invalide « %c » dans la contrainte"
-#: stmt.c:555
+#: stmt.c:556
msgid "matching constraint does not allow a register"
msgstr "contrainte de concordance ne permet pas de reigstre"
-#: stmt.c:583
+#: stmt.c:584
#, fuzzy, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr "asm-specifier pour la variable « %s » est en conflit avec la liste asm clobber"
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "nom de registre inconnu « %s » dans «asm »"
-#: stmt.c:680
+#: stmt.c:681
#, fuzzy
msgid "PIC register %qs clobbered in %<asm%>"
msgstr "registre PIC « %s » est maltraité dans «asm »"
-#: stmt.c:727
+#: stmt.c:728
#, fuzzy
msgid "more than %d operands in %<asm%>"
msgstr "plus que %d opérandes dans « asm »"
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "nombre de sortie %d n,est pas directement adressable"
-#: stmt.c:869
+#: stmt.c:870
#, fuzzy
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "opérande asm %d ne concorde pas probablement avec les contraintes"
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr "utilisation de l'entré mémoire sans lvalue dans l'opérande asm %d est obsolète"
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr "asm clobber est en conflit sans opérande de sortie"
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr "asm globber est en conflit avec l'opérande d'entrée"
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "trop d'alternatives dans « asm »"
-#: stmt.c:1120
+#: stmt.c:1121
#, fuzzy
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:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "nom d'opérande asm « %s » apparaît en double"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr "accolade de fermeture manquante pour l'opérandé nommée"
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "opérande nommée « %s » indéfinie"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr "%Hvaleur calculée n'est pas utilisée"
@@ -6948,67 +6950,67 @@ msgid "ld returned %d exit status"
msgstr "ld a retourné %d code d'état d'exécution"
# I18N
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
# I18N
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "argument de l'option invalide « %s »"
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "erreur interne"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr "limite maximale obtenue de la taille du fichier de vidange (core file): %m"
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr "initialisation de la limite maximal de la taille du fichier de vidance (core file): %m"
-#: toplev.c:846
+#: toplev.c:850
#, fuzzy
msgid "%J%qF declared %<static%> but never defined"
msgstr "%J« %F » déclaré « static » mais n'a jamais été définie"
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "%J« %F » défini mais n'a pas été utilisé"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, fuzzy, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr "« %s » est obsolète (déclaré à %s:%d)"
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr "type est obsolète (déclaré à %s:%d)"
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "« %s » est obsolète"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr "type est obsolète"
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -7017,12 +7019,12 @@ msgstr ""
"\n"
"Options spécifiques à la cible:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23s [non documenté]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -7031,24 +7033,24 @@ msgstr ""
"\n"
"Il y a des options spécifiques à la cible qui ne sont pas documentés aussi.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " Ils existent, mais ils ne sont pas documentés.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "option gcc de mise au point non reconnue: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "option invalide %s"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7059,360 +7061,371 @@ msgstr ""
"%s\tcompilé par GNU C version %s.\n"
"%s%s%s version %s (%s) compilé par CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr "heuristiques %s%sGGC: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "options passées: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "options autorisées: "
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "ne peut ouvrir %s en écriture: %m"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr "créé et utilisé avec des configurations différentes de -fpic"
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr "créé et utilisé avec des configurations différentes de -fpie"
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, fuzzy, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr "créé et utilisé avec des configurations différentes de « -m%s »"
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr "mémoire épuisée"
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr "instruction d'ordonnancement n'est pas supportée sur cette machine cible"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "cette machine cible n'a pas de branchments avec délais"
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "profilage n'est pas implanté encore"
-#: toplev.c:1757
+#: toplev.c:1777
#, 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:1831
+#: toplev.c:1851
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "système cible ne supporte par le format \"%s\" de mise au point"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
#, fuzzy
msgid "variable tracking requested, but not supported by this debug format"
msgstr "système cible ne supporte par le format \"%s\" de mise au point"
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "ne peut ouvrir %s: %m"
-#: toplev.c:1873
+#: toplev.c:1893
msgid "-ffunction-sections not supported for this target"
msgstr "-ffunction-sections n'est pas supporté pour cette cible"
-#: toplev.c:1878
+#: toplev.c:1898
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections n'est pas supporté pour cette machine cible"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections désactivé; cela rend le profilage impossible"
-#: toplev.c:1892
+#: toplev.c:1912
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "-fprefetch-loop-arrays n'est pas supporté pour cette machine cible"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "-fdata-sections n'est pas supporté pour cette machine cible"
-#: toplev.c:1904
+#: toplev.c:1924
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:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching 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:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays n'est pas supporté avec -Os"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections peut affecter la mise au point sur quelques machines cibles."
-#: toplev.c:2034
+#: toplev.c:2057
#, c-format
msgid "error writing to %s: %m"
msgstr "erreur d'écriture dans %s: %m"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, c-format
msgid "error closing %s: %m"
msgstr "erreur de fermeture %s: %m"
# FIXME: c'est de l'assembleur ?
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr "%Hne sera jamais exécuté"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
#, fuzzy
msgid "non-boolean used in condition"
msgstr "mode non booléen dans l'expression conditionnelle"
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
#, fuzzy
msgid "Invalid reference prefix."
msgstr "Type de référence invalide"
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "Déclaration init invalide"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
#, fuzzy
msgid "verify_stmts failed."
msgstr "verify_flow_info a échoué"
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, fuzzy, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr "étiquette de départ « %s » ne concorde pas avec l'étiquette de fin « %s »"
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, fuzzy, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr "insn de contrôle de flot à l'intérieur d'un bloc de base"
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, fuzzy, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr "NOTE_INSN_BASIC_BLOCK %d au milieu du bloc de base %d"
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, fuzzy, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr "Arrête fallthru après le branchement inconditionnel %i"
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
#, fuzzy
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr "étiquette de départ « %s » ne concorde pas avec l'étiquette de fin « %s »"
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
#, fuzzy
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr "étiquette de départ « %s » ne concorde pas avec l'étiquette de fin « %s »"
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "mode dans l'étiquette n'est pas discret"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, fuzzy, c-format
msgid "Missing edge %i->%i"
msgstr "Identificateur manquant"
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
#, fuzzy
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr "fonction peut être une possible candidate pour l'attribut « norreturn »"
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
#, fuzzy
msgid "%H%<noreturn%> function does return"
msgstr "fonction avec « noreturn » effectue des retour"
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "contrôle a atteint la fin non void de la fonction"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "ne peut ouvrir le fichier de vidange « %s »"
-#: tree-dump.c:960
+#: tree-dump.c:965
#, fuzzy
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "option inconnue « %.*s » ignorée dans « -fdump-%s »"
-#: tree-inline.c:945
+#: tree-inline.c:969
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle utilise alloca (écrasant l'utiliastion de l'attribut always_inline)"
-#: tree-inline.c:957
+#: tree-inline.c:981
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle utilise setjmp"
-#: tree-inline.c:971
+#: tree-inline.c:995
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle utilise une liste variable d'arguments"
-#: tree-inline.c:982
+#: tree-inline.c:1006
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle utilise le traitement d'exception setjmp-longjmp"
-#: tree-inline.c:989
+#: tree-inline.c:1013
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle contient un goto qui n'est pas local"
-#: tree-inline.c:1008
+#: tree-inline.c:1032
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle contient un goto calculé"
-#: tree-inline.c:1022
+#: tree-inline.c:1046
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle contient un goto qui n'est pas local"
-#: tree-inline.c:1044
+#: tree-inline.c:1071
#, fuzzy
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle utilise une taille variable de variables"
-#: tree-inline.c:1463
+#: tree-inline.c:1495
#, fuzzy
msgid "originally indirect function call not considered for inlining"
msgstr "fonctions externes enlignes redéfinies n'ont pas été retenues pour l'enlignage"
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
#, fuzzy
msgid "%Jinlining failed in call to %qF: %s"
msgstr "%Jl'enlignage de l'appel à « %F »: %s a échoué"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "appelé d'ici"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "contrôle a atteint la fin non void de la fonction"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7422,38 +7435,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "-pipe n'est pas supporté"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "%Jtaille de la valeur retournée par « %D » est %u octets"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "%Jtaille de la valeur retournée par « %D » supérieure à %wd octets"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7463,317 +7476,322 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "fonction interne non implantée « %s »"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "erreur interne"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "Identificateur manquant"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, fuzzy, c-format
msgid "Definition in block %i follows the use"
msgstr "définition suit l'action"
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, fuzzy, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr "argument manquant après %s"
-#: tree-ssa.c:305
+#: tree-ssa.c:302
#, fuzzy
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr "l'argument de « %d » n'est pas une constante"
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
#, fuzzy
msgid "verify_flow_insensitive_alias_info failed."
msgstr "verify_flow_info a échoué"
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
#, fuzzy
msgid "verify_flow_sensitive_alias_info failed."
msgstr "verify_flow_info a échoué"
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
#, fuzzy
msgid "verify_name_tags failed"
msgstr "verify_flow_info a échoué"
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
#, fuzzy
msgid "verify_ssa failed."
msgstr "verify_flow_info a échoué"
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "%J« %D » pourrait être utilisé sans être initialisé dans cette fonction"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
#, fuzzy
msgid "%H%qD may be used uninitialized in this function"
msgstr "%J« %D » pourrait être utilisé sans être initialisé dans cette fonction"
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
#, fuzzy
msgid "no support for reduction/induction"
msgstr "Ne supporte pas les fonctions internes 3DNOW!"
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "combinaison non supportée: %s"
-#: tree.c:3258
+#: tree.c:3272
#, fuzzy
msgid "%Jfunction %qD definition is marked dllimport."
msgstr "%Jdéfinition de la fonction « %D » est marquée dllimport"
-#: tree.c:3266
+#: tree.c:3280
#, fuzzy
msgid "%Jvariable %qD definition is marked dllimport."
msgstr "%Jdéfinition de la variable « %D » est marquée dllimport"
-#: tree.c:3286
+#: tree.c:3300
#, fuzzy
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr "%Jédition de lien externe requise pour le symbole « %D » en raison de l'attribut « %s »"
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "tableaux de fonctions n'a pas grand sens"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "Le type retourné d'une fonction ne peut être une fonction"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "initialisation invalide pour une chaîne de bits"
-#: tree.c:5446
+#: tree.c:5482
#, fuzzy, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr "vérification de l'arbre: attendait %s, obtenu %s dans %s, à %s:%d"
-#: tree.c:5483
+#: tree.c:5519
#, fuzzy, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr "vérification de l'arbre: attendait %s, obtenu %s dans %s, à %s:%d"
-#: tree.c:5496
+#: tree.c:5532
#, fuzzy, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr "vérification de l'arbre: attendait classe « %c », obtenu « %c » (%s) dans %s, à %s:%d"
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr "vérification de l'arbre: accès de elt %d de tree-vec avec %d elts dans %s, à %s:%d"
-#: tree.c:5522
+#: tree.c:5558
#, fuzzy, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr "vérification de l'arbre: accès de elt %d de tree-vec avec %d elts dans %s, à %s:%d"
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr "vérification de l'arbre: opérande accédé %d de %s avec %d opérandes dans %s, à %s:%d"
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr "%J%D cause un conflit du type de section"
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "%Jnom de registre n'est pas spécifié pour « %D »"
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "%Jnom de registre invalide pour « %D »"
-#: varasm.c:914
+#: varasm.c:915
#, fuzzy
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr "%Jtype de données de « %D » n'est pas applicable pour un registre"
-#: varasm.c:917
+#: varasm.c:918
#, fuzzy
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr "%Jregistre spécifié pour « %D » n'est applicable à un type de données"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "variable globale registre a une valeur initiale"
-#: varasm.c:930
+#: varasm.c:931
#, fuzzy
msgid "volatile register variables don%'t work as you might wish"
msgstr "variables resgistres volatiles ne fonctionne pas comme vous le souhaiteriez"
-#: varasm.c:963
+#: varasm.c:968
#, fuzzy
msgid "%Jregister name given for non-register variable %qD"
msgstr "%Jnom de registre donné pour une variable non registre « %D »"
# FIXME
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "les limites de la pile ne sont pas supportées sur cette cible"
# FIXME
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "les limites de la pile ne sont pas supportées sur cette cible"
-#: varasm.c:1592
+#: varasm.c:1607
#, fuzzy
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr "%Jalignement de « %D » est plus grand que l'alignement maximal du fichier objet. %d est utilisé."
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr "thread-local COMMON data n'est pas implanté"
-#: varasm.c:1666
+#: varasm.c:1671
#, fuzzy
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr "%Jrequête d'alignement pour '%D' est plus grand que l'alignement implanté de %d"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "initialisation d'entier trop compliquée"
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr "l'initialisation d'une valeur à virgule flottante n'est pas une constante à virgule flottante"
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr "type de jeu de constructeurs inconnu"
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "valeur initiale invalide pour le membre « %s »"
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "%Jdéclaration faible de « %D » qui doit être précédée d'une définition"
-#: varasm.c:4221
+#: varasm.c:4241
#, fuzzy
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr "%Jdéclaration faible de « %D » après une première utilisation des résultats d'un comportement non spécifié"
-#: varasm.c:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "%Jdéclaration faible de « %D » doit être publique"
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "%Jdéclaration faible de « %D » n'est pas supportée"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "seulement les alias faibles sont supportés dans cette configuration"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "définitions d'alias ne sont pas supportés dans cette configuration; ignoré"
-#: varasm.c:4418
+#: varasm.c:4504
+#, fuzzy
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "utilisation invalide d'un type indéfini « %#T »"
+
+#: varasm.c:4532
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "visibilité de l'attribut n'est pas supporté dans cette configuration; ignoré"
@@ -7836,11 +7854,11 @@ msgid "debug: "
msgstr "mise au point: "
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7869,207 +7887,216 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "Le nombre maximum d'instructions pour la fonction d'enlignage RTL"
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
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:145
+#: params.def:135
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:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr "La longueur maximale de la liste des opération en attente d'ordonnancement"
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr "La taille du corps de la fonction est considéré comme étant grande"
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr "Croissance maximal en raison de l'enlignage d'une grande fonction (en pourcent)"
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr "quelle croissance d'une unité de compilation peut être tolérée en raison de l'enlignage (en pourcent)"
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr "La taille maximale de mémoire à être alloué par GCSE"
-#: params.def:180
+#: params.def:170
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"
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr "Le nombre maximum d'instructions à considérer à inclure dans une boucle"
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr "Le nombre maximum d'instructions à considérer à inclure dans une boucle en moyenne"
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr "Le nombre maximum d'instructions à inclure dans une boucle simple"
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr "Le nombre maximum d'insns de boucle réduite"
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr "Le nombre maxium de passes de réduction d'une boucle simple"
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr "Le nombre maximum d'insns d'une boucle complètement réduite"
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr "Le nombre maximum de réductions d'une boucle simple qui a été complètement réduite"
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr "Le nombre maximum d'insns d'une boucle réduite qui tourne une seule fois"
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr "Le nombre maximum d'insns d'une boucle sans branchement"
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr "Le nombre maximum de non branchement dans une boucle simple"
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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 "Sélectionner la fraction du décompte maximal de répétition du bloc de base dans le programme selon le bloc de bsae donné doit être considéré comme chaud « hot »"
-#: params.def:298
+#: params.def:281
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 "Sélectionner la fraction de la fréquence maximale d'exécutions du bloc de base dans la fonction selon le bloc de bsae donné doit être considéré comme chaud « hot »"
-#: params.def:303
+#: params.def:285
msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
msgstr "Le pourcentage de fonction, pondéré par la fréquence d'exécutions, qui doit être couvert la formation de la trace. Utilisé lorsque le feedback par profile est disponible"
-#: params.def:308
+#: params.def:289
msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
msgstr "Le pourcentage de fonction, pondéré par la fréquence d'exécutions, qui doit être couvert la formation de la trace. Utilisé lorsque le feedback par profilage n'est disponible"
-#: params.def:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr "Croissance maximal du code en raison de duplication de queue (en pourcent)"
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr "Stopper la croissance renversée si la probabilité inverse des meilleures bordures est inférieure à ce seuil (en pourcent)"
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr "Stopper la croissance anticipée si la probabilité des meilleures bordures est inférieure à ce seuil (en pourcent). Utilisé lorsque le feedback par profilage est disponible"
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr "Stopper la croissance anticipée si la probabilité des meilleures bordures est inférieure à ce seuil (en pourcent). Utilisé lorsque le feedback par profilage n'est pas disponible"
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr "Le nombre maximum de bordures à considérer pour les sauts croisés"
-#: params.def:340
+#: params.def:317
#, fuzzy
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr "Le nombre maximum de bordures à considérer pour les sauts croisés"
-#: params.def:346
+#: params.def:323
+#, fuzzy
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "Le nombre maximum d'insns d'une boucle sans branchement"
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr "La longueur maximale des chemins considérés dans cse"
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
#, fuzzy
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr "Effectuer un nombre mineur d'optimisations coûteuses"
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr "Le nombre maximum de localisations mémoire enregistrées par cselib"
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr "L'expansion minimale des tas pour lancer la collecte des rebuts, en pourcentage de la taille totale du tas."
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr "La taille minimale du tas avant de lancer la collecte des rebuts, en kilo-octets."
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr "Le nombre maximum d'instructions à rechercher antérieurement lors d'une recherche d'une recharge équivalente"
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
#, fuzzy
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr "Le nombre maximum de bordures à considérer pour les sauts croisés"
-#: params.def:424
+#: params.def:414
#, fuzzy
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr "Le nombre maximum de bordures à considérer pour les sauts croisés"
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
#, fuzzy
msgid "The upper bound for sharing integer constants"
msgstr "valeur de l'énumérateur pour « %s » n'est pas une constante entière"
@@ -8108,8 +8135,9 @@ msgstr "rebut à la fin de « #pragma unused »"
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+#: config/darwin.c:1350
+#, fuzzy
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "visibilité des attributs internes et protégées n'est pas supportée dans cette configuration; ignoré"
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -8170,17 +8198,17 @@ msgstr "rebut à la fin de #pragma %s"
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
#, fuzzy
msgid "Set sizeof(bool) to 1"
msgstr "sizeof(long double) est 16"
-#: config/darwin.h:154
+#: config/darwin.h:157
#, fuzzy
msgid "Generate code suitable for fast turn around debugging"
msgstr "Générer du code adapté pour les exécutables (PAS les librairies partagées)"
-#: config/darwin.h:156
+#: config/darwin.h:159
#, fuzzy
msgid "Don't generate code suitable for fast turn around debugging"
msgstr "Ne pas générer du code pour une unité de manipulation de bits"
@@ -8190,7 +8218,7 @@ msgstr "Ne pas générer du code pour une unité de manipulation de bits"
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "définitions d'alias ne sont pas supportés dans cette configuration; ignoré"
@@ -8240,7 +8268,7 @@ msgstr "valeur « %s » erronée pour l'option -mfp-rounding-mode"
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "valeur « %s » erronée pour l'option -mfp-trap-mode"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "valeur « %s » erronée pour l'option -mtls-size"
@@ -8280,91 +8308,91 @@ msgstr "latence de la cache L%d inconnue pour %s"
msgid "bad value %qs for -mmemory-latency"
msgstr "valeur « %s » erronée pour -mmemory-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "valeur %%H invalide"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr "valeur %%J invalide"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "valeur %%r invalide"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "valeur %%R invalide"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "valeur %%N invalide"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "valeur %%P invalide"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "valeur %%h invalide"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "valeur %%L invalide"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "valeur %%m invalide"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "valeur %%M invalide"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "valeur %%U invalide"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "valeur %%s invalide"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "valeur %%C invalide"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "valeur %%E invalide"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr "relocalisation unspec inconnue"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "valeur %%xn invalide"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr "construit interne erroné de fcode"
@@ -8381,14 +8409,14 @@ msgstr "construit interne erroné de fcode"
#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Utiliser le FP matériel"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "Ne pas utiliser l'unité FP matérielle"
@@ -8507,7 +8535,7 @@ msgstr "Contrôler la précision donnée des exceptions FP"
msgid "Tune expected memory latency"
msgstr "Ajuster la latence mémoire attendue"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr "Spécifier la taille de bit des décalages immédiats TLS"
@@ -8526,17 +8554,17 @@ msgstr "argument de l'attribut « %s » n'est pas une chaîne de constante"
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "l'argument de l'attribut « %s » n'est pas «ilink1» ou «ilink2 »"
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr "opérande invalide pour le code %%R"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "opérande invalide pour le code %%H/%%L"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr "opérande invalide pour le code %%U"
@@ -8548,169 +8576,169 @@ msgstr "opérande invalide pour le code %%V"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "opérande invalide pour le code de sortie"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, 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:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "valeur (%s) erronée pour l'option %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "le processeur cible ne supporte pas l'inter-réseautage"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr "le processeur cible ne supporte pas les instructions THUMB"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
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:928
+#: config/arm/arm.c:942
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:931
+#: config/arm/arm.c:945
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:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check incompatible avec -mno-apcs-frame"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic et -mapcs-reent sont incompatibles"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "Code réentrant APCS n'est pas supporté. Ignoré"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
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:962
+#: config/arm/arm.c:976
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:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "option invalide %s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "option d'émulation en virgule flottante invalide: -mfpe-%s"
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "option d'émulation en virgule flottante invalide: -mfpe-%s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, fuzzy, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr "option d'émulation en virgule flottante invalide: -mfpe-%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, fuzzy, c-format
msgid "structure size boundary can only be set to %s"
msgstr "taille des bornes de la structure peut seulement être 8 ou 32"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= est inutile sans -fpic"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "incapable d'utiliser « %s » pour un registre PIC"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "attribut « %s » s'applique seulement aux fonctions"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "Générer des instructions « char »"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "instruction ret n'est pas implantée"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "opérande invalide pour « %c »"
# FIXME: c'est de l'assembleur ?
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
#, fuzzy
msgid "instruction never exectued"
msgstr "inconditionnel %2d n'a jamais été exécuté\n"
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "parenthèse ouvrante manquante"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr "incapable de calculer la localisation réelle de la pile de paramètres"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "sélecteur doit être un immédiat"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "masque doit être un immédiat"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
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:13056
+#: config/arm/arm.c:13125
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:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "%Jvariable initialisé « %D » est marquée dllimport"
@@ -8820,7 +8848,7 @@ msgstr "Spécifier le minimum de bits pour l'alignement de structures"
msgid "Specify the register to be used for PIC addressing"
msgstr "Spécifier le registre à utiliser pour l'adressage PIC"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr "Spécifier une ABI"
@@ -8836,55 +8864,65 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorer l'attribut dllimport pour les fonctions"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, 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:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr "adresse erronée, pas (reg+disp):"
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr "erreur internal du compilateur. Adresse erronée:"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr "erreur internal du compilateur. Mode inconnu:"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
msgid "invalid insn:"
msgstr "insn invalide:"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr "insn incoorect:"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr "insn de déplacement inconnu:"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr "décalage insn erroné:"
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr "erreur internal du compilateur. Décalage incorrect:"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
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.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr "seuls les variables non initialisées peuvent être placées dans une section .noinit"
-#: config/avr/avr.c:4615
+#: config/avr/avr.c:4728
#, fuzzy, c-format
msgid "MCU %qs supported for assembler only"
msgstr "MCU « %s » est supporté pour l'assembleur seulement"
@@ -9272,242 +9310,233 @@ msgstr "Spécifier le nombre maximum d'itérations pour RPTS"
msgid "Select CPU to generate code for"
msgstr "Sélectionner le processeur pour lequel le code doit être généré"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr "type d'index inattendu dans cris_print_index"
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr "type de base inattendu dans cris_print_base"
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "trame de pile trop grande: %d octets"
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
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:1248
+#: config/cris/cris.c:1266
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:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr "opérande invalide pour le modificateur « b »"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr "opérande invalide pour le modificateur « v »"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr "opérande invalide pour le modificateur « P »"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr "opérande invalide pour le modificateur « p »"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr "opérande invalide pour le modificateur « z »"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr "opérande invalide pour le modificateur « H »"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr "registre erroné"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr "opérande invalide pour le modificateur « e »"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr "opérande invalide pour le modificateur « m »"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr "opérande invalide pour le modificateur « A »"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr "opérande invalide pour le modificateur « D »"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr "opérande invalide pour le modificateur « T »"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr "opérande invalide pour le modificateur de lettre"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "erreur interne: registre erroné: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr "opérande multiplicative inattendue"
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr "opérande inattendue"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "adresse non reconnue"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
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:2429
+#: config/cris/cris.c:2421
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:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr "supposée constante non reconnue"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "supposée constante non reconnue dans cris_global_pic_symbol"
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, 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:2658
+#: config/cris/cris.c:2650
#, 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:2694
+#: config/cris/cris.c:2686
#, 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:2712
+#: config/cris/cris.c:2704
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:2727
+#: config/cris/cris.c:2719
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:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
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:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr "symbole PIC inattendue"
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr "le registre n'est pas initialisé"
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr "expression d'adresse inattendue"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
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:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr "NOTE inattendu comme addr_conts:"
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
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:115
+#: config/cris/aout.h:92
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"
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
msgid "Work around bug in multiplication instruction"
msgstr "Travailler autour de l'anomalie dans l'instructions de multiplication"
#. 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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Compilé pour ETRAX 4 (CRIS v3)"
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Compile pour ETRAX 100 (CRIS v8)"
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr "Produire des informations de mise au point dans le code assemblé"
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr "Ne pas utiliser du code conditionnel pour des instructions normales"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
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:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr "Ne pas ajuster l'alignement de la pile"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr "Ne pas ajuster l'alignement les sections de données dynamiques"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
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:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr "Aligner le code et les données sur 32 bits"
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
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:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr "Écraser -mbest-lib-options"
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
msgid "Generate code for the specified chip or CPU version"
msgstr "Générer le code pour la version de processeur ou de circuit spécifiée"
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr "Ajuster l'alignement pour la version de processeur ou de circuit spécifiée"
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
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:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "pas de FUNCTION_PROFILER pour CRIS"
@@ -9515,46 +9544,46 @@ msgstr "pas de FUNCTION_PROFILER pour CRIS"
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/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: adresse non traitée"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: code %%p non reconnue"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: code %%b non reconnue"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: code %%B non reconnu"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, 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:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: code %%x invalide"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: code %%F invalide"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: code inconnu"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: MEM non traité"
@@ -9562,145 +9591,142 @@ msgstr "fr30_print_operand: MEM non traité"
msgid "Assume small address space"
msgstr "Présumer un petit espace d'adressage"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr "Processeur inconnu : -mcpu=%s"
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr "insn erroné pour frv_print_operand_addresse:"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr "registre erroné pour frv_print_operand_memory_reference_reg:"
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr "insn erroné pour frv_print_operand_memory_reference:"
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+#, fuzzy
+msgid "bad condition code"
+msgstr "construit interne erroné de fcode"
+
+#: config/frv/frv.c:2796
msgid "Bad insn in frv_print_operand, bad const_double"
msgstr "insn erroné dans frv_print_operand, bad const_double"
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "insn erroné pour frv_print_operand, modificateur « C »:"
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "insn erroné pour frv_print_operand, modificateur « c »:"
-
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « e »:"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « F »:"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « f »:"
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
#, fuzzy
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « C »:"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « L »:"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « M/N »:"
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « O »:"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr "insn erroné pour frv_print_operand, modificateur « P »:"
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr "insn erroné dans frv_print_operand, case z"
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr "insn erroné dans frv_print_operand, case 0"
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr "frv_print_operand: code inconnu"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr "opérande output_move_single erronée"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr "opérande output_move_double erronée"
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr "opérande output_condmove_single erronée"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr "accumulateur n'est pas une constante en entier"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr "numéro de l'accumulateur est hors limite"
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, fuzzy, c-format
msgid "inappropriate accumulator for %qs"
msgstr "accumulateur inapproprié pour « %s »"
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "type d'argument invalide"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, fuzzy, c-format
msgid "%qs expects a constant argument"
msgstr "« %s » attend un argument de constante"
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "argument de constante hors limite pour « %s »"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr "fonctions média ne sont pas disponibles à mois que -mmedia soit utilisé"
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr "cette fonction média est seulement disponible sur le fr500"
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
#, fuzzy
msgid "this media function is only available on the fr400 and fr550"
msgstr "cette fonction média est seulement disponible sur le fr400"
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
#, fuzzy
msgid "this builtin function is only available on the fr405 and fr450"
msgstr "cette fonction média est seulement disponible sur le fr400"
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
#, fuzzy
msgid "this builtin function is only available on the fr500 and fr550"
msgstr "cette fonction média est seulement disponible sur le fr500"
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
#, fuzzy
msgid "this builtin function is only available on the fr450"
msgstr "cette fonction média est seulement disponible sur le fr400"
@@ -9714,7 +9740,7 @@ msgstr "cette fonction média est seulement disponible sur le fr400"
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr " (frv)"
@@ -9794,177 +9820,187 @@ msgstr "Ne pas générer du code H8/300H"
msgid "Use H8/300 alignment rules"
msgstr "Utiliser les règles d'alignement H8/300"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, 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:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "valeur erronée (%s) pour l'opton -mcmodel="
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "valeur erronée (%s) pour l'option -masm"
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs 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:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "model de code « large » n'est pas supporté encore"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "mode %i bits pas compilé en"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "le processeur sélectionné ne supporte pas le jeu d'instructions x86-64"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "valeur erronée (%s) pour l'option -march="
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "valeur erronée (%s) pour l'option -mtune="
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, 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:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops est obsolète, utiliser -falign-loops"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, 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:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps est obsolète, utiliser -falign-loops"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions est obsolète, utiliser -falign-loops"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, 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:1452
+#: config/i386/i386.c:1448
#, 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:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "valeur erronée (%s) pour l'option -mtls-dialect"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
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:1500
+#: config/i386/i386.c:1509
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:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "jeu d'instructions SSE désactivé, arithmétique 387 est utilisé"
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "jeu d'instructions 387 désactivé, arithmétique SSE est utilisé"
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "valeur erronée (%s) pour l'option -mfpmath"
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr "les attributs fastcall et stdcall ne sont pas compatibles"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr "les attributs fastcall et regparm ne sont pas compatibles"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "l'attribut « %s » requiert un argument de type constante entière"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "l'argument pour l'attribut « %s » est plus grand que %d"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+#, fuzzy
+msgid "SSE register return with SSE disabled"
+msgstr "vecteur SSE retourné sans autorisation SSE des changements de l'ABI "
+
+#: config/i386/i386.c:2567
+#, fuzzy
+msgid "SSE register argument with SSE disabled"
+msgstr "l'argument vecteur SSE sans autorisation SSE modifie l'ABI "
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr "l'argument vecteur SSE sans autorisation SSE modifie l'ABI "
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr "l'argument vecteur SSE sans autorisation MXX modifie l'ABI "
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr "vecteur SSE retourné sans autorisation SSE des changements de l'ABI "
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "UNSPEC invalide comme opérande"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr "registres étendus n'a pas de demis hauts"
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr "taille d'opérande non supportée pour un registre étendu"
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
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:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "opérande invalide pour « %c »"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
msgid "invalid constraints for operand"
msgstr "contrainte invalide pour l'opérande"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
msgid "unknown insn mode"
msgstr "mode insn inconnu"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr "le sélecteur doit être une constante entière entre les bornes 0..%i"
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr "décalage doit être un immédiat"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "attribut « %s » incompatible ignoré"
@@ -10066,166 +10102,166 @@ msgstr "ms-bitfields n'est pas supporté pour objc"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "Convention alternative d'appels"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Utiliser la convention normale d'appels"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "Aligner quelques doubles sur des frontières de mots doubles"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "Aligner les doubles sur des frontières de mots"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr "Var. locales non initialisées dans .bss"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr "Var. locales non initialisées dans .data"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 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:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 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:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr "Retourner les valeurs de fonctions dans les registres FPU"
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
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:368
+#: config/i386/i386.h:367
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:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Générer sin, cos, sqrt pour le FPU"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Omettre le pointeur de trame dans les fonctions feuilles"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "Autoriser le sondage de la pile"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "Aligner la destination des opérations sur les chaînes"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
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:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "Permettre l'enlignage dans toutes les opérations portant sur les chaînes"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
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:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr "Utiliser les instructions push pour sauvegardes les arguments sortants"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
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:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr "Supporte les fonctions internes MMX"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr "Ne supporte pas les fonctions internes MMX"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr "Supporte les fonctions internes 3DNOW!"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr "Ne supporte pas les fonctions internes 3DNOW!"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
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:406
+#: config/i386/i386.h:405
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:408
+#: config/i386/i386.h:407
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:410
+#: config/i386/i386.h:409
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:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Supporte les fonctions internes MMX, SSE, SSE2 et SSE3 et la génération de code"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Ne supporte pas les fonctions internes MMX, SSE, SSE2 et SSE3 et la génération de code"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) est 16"
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) est 12"
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr "Générer du code 64 bits pour x86-64"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr "Générer du code 32 bits pour i386"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr "Utiliser une configuration de champ de bits native (MS)"
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr "Utiliser la configuration par défaut de gcc pour les champs de bits"
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr "Utiliser la zone-rouge pour le code x86-64"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr "Ne pas utiliser la zone-rouge pour le code x86-64"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr "Utiliser la référence directe envers %gs lors de l'accès des données tls"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr "Ne pas utiliser la référence directe envers %gs lors de l'accès des données tls"
@@ -10239,54 +10275,54 @@ msgstr "Ne pas utiliser la référence directe envers %gs lors de l'accès des donn
#. 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Ordonnancer le code pour le processeur donné"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
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:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Générer le code pour le processeur donné"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "Nombre de registres utilisés pour passer les arguments entiers"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr "Codes de boucles alignés selon une puissance de 2"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
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:484
+#: config/i386/i386.h:483
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:487
+#: config/i386/i386.h:486
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:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Branchements coûteux à ce point (1-4, unités arbitraires)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr "Utiliser le modèle de x86-64 donné"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "Utiliser la syntaxe de l'assembleur donné"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr "Utiliser le dialecte de stockage du thread local fourni"
@@ -10327,58 +10363,58 @@ msgstr "Ne pas générer du code qui utilise le FPU"
msgid "malformed #pragma builtin"
msgstr "construit #pragma mal composé"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "type d'argument invalide pour l'attribut « %s »"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "%Jun attribut d'adresse de zone de données ne peut pas être spécifié pour des variables locales"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "%Jl'adresse de la zone « %s » entre en conflit avec un déclaration précédente"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "%Jl'attribut de la zone d'adresse ne peut pas être spécifié pour des fonctiones"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: code inconnu"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
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:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s est une étendue vide"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
msgid "cannot optimize floating point division for both latency and throughput"
msgstr "ne peut optimiser la division en point flottant à la fois pour la latence et le débit"
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
msgid "cannot optimize integer division for both latency and throughput"
msgstr "ne peut optimiser la division entière à la fois pour la latence et le débit"
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr "ne peut optimiser la racine carrée à la fois pour la latence et le débit"
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr "pas encore implanté: racine carrée enligne optimisée pour la latence"
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "valeur erronée (%s) pour l'option -mtls-size"
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "valeur erronée (%s) pour l'option -tune="
@@ -10386,174 +10422,170 @@ msgstr "valeur erronée (%s) pour l'option -tune="
#. 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Générer du code de système à octets de poids fort"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Générer du code de système à octets de poids faible"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Générer du code pour GNU tel que"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Générer du code pour Intel tel que"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Générer du code pour GNU ld"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Générer du code pour Intel ld"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "Générer du code sans registre GP"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
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:198
+#: config/ia64/ia64.h:194
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:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr "Produire du code pour le processeur B Itanium (TM)"
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "Utilise les noms des registres in/loc/out "
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "Interdire l'utilisation de sdata/scommon/sbss"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "Autoriser l'utilisation de sdata/scommon/sbss"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
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:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "Générer du code auto-relocalisable"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr "Générer la division enligne en point flottant, optimiser pour la latence"
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr "Générer la division en point flottant enligne, optimiser pour le débit"
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
#, fuzzy
msgid "Do not inline floating point division"
msgstr "Ne pas placer les constantes en virgule flottante dans le TOC"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr "Générer la division entière enligne, optimiser pour la latence"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr "Générer la divisions entière enligne, optimiser pour le débit"
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "Avertir au sujet de la division entière par zéro au moment de la compilation"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr "Générer la racine carrée enligne, optimiser pour la latence"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr "Générer la racine carrée enligne, optimiser pour le débit"
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
#, fuzzy
msgid "Do not inline square root"
msgstr "Ne pas désactiver l'espace registre"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
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:233
+#: config/ia64/ia64.h:227
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:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr "Autoriser l'insertion antérieure de stop bits pour un meilleur ordonnancement"
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr "Interdire l'installation antérieure de bits d'arrêt"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr "spécifier l'étendue des registres pour la rendre fixe"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr "opérande erronée"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "valeur erronée (%s) pour l'option -mcpu="
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, c-format
msgid "The compiler does not support -march=%s."
msgstr "Le compilateur ne supporte pas -march=%s."
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, 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/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "l'argument de « %d » n'est pas une constante"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, pointeur nul"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ponctuation « %c » inconnue"
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND pointeur nul"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr "opérande %%P invalide"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "valeur %%p invalide"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "utilisation invalide de %%d, %%x, ou %%X"
@@ -10570,87 +10602,87 @@ msgstr "Utiliser GP en mode relatif aux sections sdata/sbss"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "Utiliser le ROM au lieu de la RAM"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "Ne pas utiliser le ROM au lieu de la RAM"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
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/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
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)"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "Spécifier le processeur pour les besoins de l'ordonnancement"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr "Spécifier le processeur pour les besoins de la génération de code"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "valeur erronée (%s) pour l'option -mmodel"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "valeur erronée (%s) pour l'option -msdata"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "valeur erronée (%s) pour l'option -flush-trap=n (0=<n<=15)"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr "opérande invalide pour le code %%s"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr "opérande invalide pour le code %%p"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr "insn erroné pour « A »"
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "opérande invalide pour le code %%T/%%B"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr "opérande invalide pour le code %%N"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr "pré-incrément d'adresse n'est pas un registre"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr "pré-décrément d'adresse n'est pas un registre"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr "post-incrément d'adresse n'est pas un registre"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "adresse erronée"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr "lo_sum n'est pas un registre"
@@ -10679,11 +10711,11 @@ 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/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr "Ne pas faire d'appel de fonction de vidange de la cache"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr "Spécifier la fonction de vidange de la cache"
@@ -10700,51 +10732,51 @@ msgstr "Spécifier la fonction de déroutement de vidange de la cache"
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "-f%s ignoré pour 68HC11/68HC12 (non supporté)"
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
#, fuzzy
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr "attributs « trap » et « far » ne sont pas compatibles, « far » ignoré "
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
#, fuzzy
msgid "%<trap%> attribute is already used"
msgstr "attribut « trap » est déjà utilisé"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr "déplacement insn non traité"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr "registre invalide dans l'instruction de déplacement"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr "opérande invalide dans l'instruction"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr "registre invalide dans l'instruction"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr "l'opérande 1 doit être un registre matériel"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr "rotation invalide insn"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
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:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr "ne peut effectuer le remplacement d'un registre z"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr "remplacement invalide de registre Z pour insn"
@@ -10838,7 +10870,7 @@ msgstr "ne peut spécifier à la fois -msep-data et -mid-shared-library"
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/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr "expression limitant la pile n'est pas supportée"
@@ -10977,7 +11009,7 @@ msgstr "Utiliser une convention différente d'appel en utilisant « rtd »"
msgid "ID of shared library to build"
msgstr "Identification de librairie partagé à construire"
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "opton invalide « -mstack-increment=%s »"
@@ -11034,137 +11066,139 @@ 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:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "valeur erronée (%s) pour l'option -mabi"
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr "-mips%s en conflit avec d'autres options d'architecture, lesquelles spécifie un processeur MIPS%d"
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "-march=%s n'est pas compatible avec l'ABI sélectionné"
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr "-mgp64 utilisé avec un processeur de 32 bits"
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr "-mgp32 utilisé avec un ABI de 64 bits"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr "-mgp64 utilisé avec un ABI de 32 bits"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, c-format
msgid "unsupported combination: %s"
msgstr "combinaison non supportée: %s"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+#, fuzzy
+msgid "-mint64 is a deprecated option"
+msgstr "type est obsolète"
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr "activer la génération d'instructions identiques à des branchements mais non supportés par l'architecture"
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
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:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
#, fuzzy
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-frepo doit être utilisé avec -c"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr "mips_debugger_offset appellé avec un pointeur non stack/frame/arg"
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, 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:4772
+#: config/mips/mips.c:4783
#, 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:4785
+#: config/mips/mips.c:4796
#, 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:4798
+#: config/mips/mips.c:4809
#, 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:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ponctuation « %c » inconnue"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND insn invalide pour %%C"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND insn invalide pour %%N"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND insn invalide pour %%F"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND insn invalide pour %%W"
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "valeur %%j invalide"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr "PRINT_OPERAND, opérande invalide pour la relocalisation"
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "ne peut traiter des appels inconsistents à « %s »"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr "le nom du cpu doit être en minuscules"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr "valeur (%s) erronée pour %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr "Identique à -mabi=32, juste plus complexe"
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11174,64 +11208,64 @@ msgstr "Identique à -mabi=32, juste plus complexe"
#. 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:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "Utiliser le type int de 64 bits"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "Utiliser le type long de 64 bits"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "Utiliser le type long de 32 bits"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "Optimiser les chargements d'adresses lui/addiu"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr "Ne pas optimiser les chargements d'adresses lui/addiu"
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
#, fuzzy
msgid "Use GNU as (now ignored)"
msgstr "Utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignoré)"
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "Utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignoré)"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignoré)"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr "Afficher les statistiques de compilation (maintenant ignoré)"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "Ne pas afficher les statistiques de compilation"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "Ne pas optimiser les déplacements de blocs"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "Optimiser les déplacements de blocs"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "Utiliser la post-passe de type mips-tfile de l'assembleur"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "Ne pas utiliser la post-passe de type mips-tfile de l'assembleur"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Utiliser le traitement par logiciel des nombres flottants"
@@ -11241,206 +11275,206 @@ msgstr "Utiliser le traitement par logiciel des nombres flottants"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "Utiliser l'unité matérielle en virgule flottante"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "Utiliser les registres FP de 64 bits"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "Utiliser les registres FP de 32 bits"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "Utiliser les registres généraux de 64 bits"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "Utiliser les registres généraux de 32 bits"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Utiliser le code PIC Irix"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "Ne pas utiliser le code PIC Irix"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "Utiliser les appels indirects"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "Ne pas utiliser les appels indirects"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Utiliser l'ordre des octets pour système à octets de poids fort"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Utiliser l'ordre des octets pour système à octets de poids faible"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "Utiliser un simple FP (32 bits) seulement"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "Ne pas utiliser un simple FP (32 bits) seulement"
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "Utiliser les instructions matérielles en virgule flottante"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "Ne pas utiliser les instructions MIPS16"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "Utiliser les multiplications par accumulations"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "Ne pas utiliser les multiplications par accumulations"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
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:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "Générer des instructions fusionnés de multiplication/addition"
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
#, fuzzy
msgid "Perform VR4130-specific alignment optimizations"
msgstr "Exécuter des optimisations de sauts de thread"
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
#, fuzzy
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr "Ne pas effectuer une optimisation sur mesure des appels"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "Contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "Ne pas contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr "Contourner l'erreur pour la révision 2 du noyau des versions initiales SB-1"
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr "Ne pas contourner l'erreur pour la révision 2 du noyau des versions initiales SB-1"
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
#, fuzzy
msgid "Work around R4000 errata"
msgstr "Contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
#, fuzzy
msgid "Don't work around R4000 errata"
msgstr "Ne pas contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
#, fuzzy
msgid "Work around R4400 errata"
msgstr "Contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
#, fuzzy
msgid "Don't work around R4400 errata"
msgstr "Ne pas contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
#, fuzzy
msgid "Don't work around certain VR4120 errata"
msgstr "Ne pas contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Intercepter les divisions par zéros sur des entiers"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
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:645
+#: config/mips/mips.h:649
#, fuzzy
msgid "Use trap to check for integer divide by zero"
msgstr "Intercepter les divisions par zéros sur des entiers"
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
#, fuzzy
msgid "Use break to check for integer divide by zero"
msgstr "Intercepter les divisions par zéros sur des entiers"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr "Utiliser des instructions se comportant comme des branchements, écrasant le défaut de l'architecture"
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr "Ne pas utiliser des instructions se comportant comme des branchements, écrasant le défaut de l'architecture"
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr "Utiliser NewABI-style %reloc() les opérateurs d'assemblage"
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr "Utiliser les macros assembleurs au lieu des opérateurs de relocalisation"
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
msgid "Generate mips16 code"
msgstr "Générer du code mips16"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
msgid "Generate normal-mode code"
msgstr "Générer du code en mode normal"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr "Enlever les restrictions sur la taille GOT"
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr "Ne pas enlever les restrictions sur la taille GOT"
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "options autorisées: "
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "noms d'exception ON doivent être uniques"
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr "Spécifier le standard MIPS ISA"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "profilage de fonction mips16"
@@ -11467,70 +11501,70 @@ msgstr "function_profiler supporté pour MMIX"
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"
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX interne: attendait CONST_INT, pas ceci"
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX interne: registre erroné: %d"
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
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:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX interne: attendait un registre, pas ceci"
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
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:1602
+#: config/mmix/mmix.c:1611
#, fuzzy, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr "MMIX interne: cas « %c » manquant dans mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX interne: ne peut décoder cette opérande"
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX interne: ce n'est pas une adresse reconnue"
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, 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:2127
+#: config/mmix/mmix.c:2133
#, 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:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, 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:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX interne: tentative de produire incorrectement une condition renversée:"
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX interne: quel sorte de CC est-ce?"
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX interne: quel sorte de CC est-ce?"
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr "interne MMIX: ce n'est pas une constante:"
@@ -11603,15 +11637,15 @@ msgstr "Générer un point de sortie simple pour chaque fonction"
msgid "Do not generate a single exit point for each function"
msgstr "Ne pas générer un point de sortie simple pour chaque fonction"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "Cible le processeur AM33"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr "Cibler le processeur AM33/2.0"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr "Autoriser la relâche de l'éditeur de liens"
@@ -11695,7 +11729,7 @@ msgstr "\"Petites classes de registres\" kludge"
msgid "No \"Small register classes\" kludge"
msgstr "Pas de \"Petites classes de registres\" kludge"
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11704,7 +11738,7 @@ msgstr ""
"Option inconnue -mschedule= (%s)\n"
"Les options valides sont 700, 7100, 7100LC, 7200, 7300 et 8000\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11713,7 +11747,7 @@ msgstr ""
"Option inconnue -march= (%s)\n"
"Les options valides sont 1.0, 1.1 et 2.0\n"
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11722,7 +11756,7 @@ msgstr ""
"Option inconnue -march= (%s)\n"
"Les options valides sont 1.0, 1.1 et 2.0\n"
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11731,7 +11765,7 @@ msgstr ""
"Option inconnue -march= (%s)\n"
"Les options valides sont 1.0, 1.1 et 2.0\n"
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11740,27 +11774,32 @@ msgstr ""
"Option inconnue -march= (%s)\n"
"Les options valides sont 1.0, 1.1 et 2.0\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
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:480
+#: config/pa/pa.c:488
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:485
+#: config/pa/pa.c:493
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:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr "option -g désactivée"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr "Générer les defines pour les IO d'un serveur"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr "Générer les defines pour les IO d'une station de travail"
@@ -11909,11 +11948,11 @@ msgstr "spécifier l'étendue des registres pour la rendre fixe"
msgid "Specify CPU for scheduling purposes."
msgstr "Spécifier le processeur pour les besoins de l'ordonnancement"
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr "Assumer que le code sera lié par GNU ld"
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr "Assumer que le code sera lié par HP ld"
@@ -12050,211 +12089,246 @@ msgstr "le nombre doit être 0 ou 1"
msgid "junk at end of #pragma longcall"
msgstr "rebut à la fin de #pragma longcall"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
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:1251
+#: config/rs6000/rs6000.c:1261
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:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "option -mdebug-%s inconnue"
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
#, fuzzy
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr "argument « %s » inconnu de l'option -mtraceback; attendu « full », « partial » ou « none »"
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "option -mlong-double-%s inconnue"
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr "Les instructions AltiVec et E500 ne peuvent coexister."
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "option -m%s= inconnue spécifiée: « %s »"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr "pas configuré pour ABI: « %s »"
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ABI spécifié inconnu: « %s »"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "option invalide «-mshort-data-%s'"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "option -malign-XXXXX inconnue spécifiée: « %s »"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "Ne peut retourner la valeur dans le registre de vecteur parce que les instructions altivec sont désactivées, utiliser -maltivec pour les autoriser"
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "Ne peut relayer l'argument dans le registre de vecteur parce que les instructions altivec sont désactivées, utiliser -maltivec pour les autoriser"
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
msgid "argument 1 must be a 5-bit signed literal"
msgstr "argument 1 doit être un litéral signé de 5 bits"
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr "argument 2 doit être un litéral non signé de 5 bits"
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
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:6802
+#: config/rs6000/rs6000.c:6901
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "argument 1 de « __builtin_altivec_predicate » est hors limite"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr "argument 3 doit être un litéral non signé de 4 bits"
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "argument de « %s » doit être un litéral non signé de 2 bits"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "argument de dss doit être un litéral non signé de 2 bits"
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7363
#, fuzzy, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr "combinaison invalide de paramètres pour l'intrinsèque Altivec « %s »"
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr "argument 1 de « __builtin_spe_predicate » doit être une constante"
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7670
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "argument 1 de « __builtin_spe_predicate » est hors limite"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "valeur %%f invalide"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "valeur %%F invalide"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "valeur %%G invalide"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "valeur %%j invalide"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "valeur %%J invalide"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "valeur %%k invalide"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "valeur %%K invalide"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "valeur %%O invalide"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "valeur %%q invalide"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "valeur %%S invalide"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "valeur %%T invalide"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "valeur %%u invalide"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "valeur %%v invalide"
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "trame de pile trop grande"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr "pas de profilage du code de 64 bits pour cet ABI"
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+#, fuzzy
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
+
+#: config/rs6000/rs6000.c:17165
+#, fuzzy
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
+
+#: config/rs6000/rs6000.c:17169
+#, fuzzy
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
+
+#: config/rs6000/rs6000.c:17171
+#, fuzzy
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
+
+#: config/rs6000/rs6000.c:17173
+#, fuzzy
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
+
+#: config/rs6000/rs6000.c:17175
+#, fuzzy
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
+
+#: config/rs6000/rs6000.c:17177
+#, fuzzy
+msgid "use of %<complex%> in AltiVec types is invalid"
msgstr "utilisation du type 'long' Altivec est obsolète; utilisez 'int'"
-#: config/rs6000/aix.h:203 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:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
-#: config/rs6000/aix.h:205 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/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "Supporter le passage de messages dans un environnement parallèle"
@@ -12315,15 +12389,15 @@ msgstr "-maix64 requiert une architecture PowerPC64 qui demeure sélectionnée"
msgid "-m64 not supported in this configuration"
msgstr "-m%s n'est pas supporté par cette configuration"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr "-m64 requiert un processeur PowerPC64"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr "Appeller mcount pour le profilage avant le prologue de la fonction"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr "Ne pas appeller mcount pour le profilage avant le prologue de la fonction"
@@ -12470,7 +12544,7 @@ msgstr "Générer des instructions à champ simple mfcr"
msgid "Do not generate single field mfcr instruction"
msgstr "Ne pas générer des instructions à champ simple mfcr"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Utiliser les options et ordonnancer le code pour le processeur donné"
@@ -12542,7 +12616,7 @@ msgstr "Spécifier la priorité d'ordonnancement pour la répartition de fentes ins
#. 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET n'est pas supporté"
@@ -12694,82 +12768,86 @@ msgstr "-mcall-aixdesc doit être pour un système à octets de poids fort"
msgid "-m%s not supported in this configuration"
msgstr "-m%s n'est pas supporté par cette configuration"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr "Processeur inconnu utilisé dans -march=%s"
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "Processeur inconnu dans -mtune=%s"
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "z/mode d'architecture n'est pas supporté sur %s"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "ABI 64 bits n'est pas supporté en mode ESA/390"
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "valeur erronée pour -mcall-%s"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "valeur erronée pour -msdata=%s"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "valeur erronée pour -msdata=%s"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr "Ne pas décomposer l'adresse"
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr "INCONNNU dans print_operand !?"
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
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.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "taille de stockage de « %s » inconnue"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12868,29 +12946,29 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs n'est pas supporté par la sous-cible"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr "attribut interrupt_handler n'est pas compatible avec -m5-compact"
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs 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:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs 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:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "l'attribut « %s » de l'argument n'est pas une contante entière"
@@ -12930,7 +13008,7 @@ msgstr "%Jdéfinition de la variable « %D » est marquée dllimport"
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr "%Jédition de lien externe requise pour le symbole « %D » en raison de l'attribut « %s »"
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr "vérification lang_* : éched dans %s, à %s:%d"
@@ -12942,183 +13020,183 @@ msgstr "vérification lang_* : éched dans %s, à %s:%d"
msgid "Profiling is not supported on this target."
msgstr "le profilage n'est pas supporté sur cette cible"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s n'est pas supporté par cette configuration"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 n'est pas permis avec -m64"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
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:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "opérande %%Y invalide"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "opérande %%A invalide"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "Opérande %%B invalide"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "opérande %%c invalide"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "opérande %%C invalide"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "opérande %%d invalide"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "opérande %%D invalide"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "opérande %%f invalide"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, c-format
msgid "invalid %%s operand"
msgstr "opérande %%s invalide"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
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:7550
+#: config/sparc/sparc.c:7560
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:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "Utiliser les doubles longs de 64 bits"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "Utiliser des longs doubles de 128 bits"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Générer du code pour un système à octets de poids fort"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Générer du code pour un système à octets de poids faible"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
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:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "Présumer un possible mauvais alignement des doubles"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Présumer que tous les doubles sont alignés"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "Passer -assert pure-text à l'éditeur de liens"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "Ne pas passer -assert pure-text à l'éditeur de liens"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "Utiliser les registres réservés ABI"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "Ne pas utiliser les registres réservés ABI"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "Utiliser les instructions matérielles quad FP"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "Ne pas utiliser les instructions matérielles quad FP"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "Compiler pour ABI v8plus"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "Ne pas compiler pour ABI v8plus"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Utiliser le jeu d'instructions Visual"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "Ne pas utiliser le jeu d'instructions Visual"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "Pointeurs sont de 64 bits"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "Pointeurs sont de 32 bits"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "Utiliser ABI de 32 bits"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "Utiliser ABI de 64 bits"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "Utiliser le biais de la pile"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "Ne pas utiliser le biais de la pile"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
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:664
+#: config/sparc/sparc.h:670
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:666
+#: config/sparc/sparc.h:672
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:668
+#: config/sparc/sparc.h:674
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:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr "Utiliser le modèle donné de code pour le SPARC"
@@ -13232,63 +13310,63 @@ msgstr "rebut à la fin de #pragma ghs endsda"
msgid "junk at end of #pragma ghs endzda"
msgstr "rebut à la fin de #pragma ghs endzda"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s n'est pas numérique"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s est trop grand"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr "const_double_split a reçu un insn erroné:"
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "%Jattribut de zone de donnéées ne peut être spécifié pour des variables locales"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "%Jzone de données de « %D » entre en conflit avec un déclaration précédente"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "construction JR boggé: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, 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:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "construction JARL boggée: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "construction DISPOSE boggé: %d\n"
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr "Trop d'espace pour l'empilage pour la disposition de: %d"
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "construction PREPEARE boggée: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr "Trop d'espace pour l'empilage pour la préparation: %d"
@@ -13466,12 +13544,12 @@ 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:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr "argument manquant à « -%s »"
-#: ada/misc.c:299
+#: ada/misc.c:298
#, fuzzy
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr "« -gnat » mal épellé comme « -gant »"
@@ -13480,641 +13558,661 @@ msgstr "« -gnat » mal épellé comme « -gant »"
msgid "unable to call pointer to member function here"
msgstr "incapable de faire l'appel avec le pointeur vers la fonction membre ici"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <construit-interne>"
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <construit-interne>"
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <interne>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr "%s %T <conversion>"
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr "%J%s %+#D <près d'une concordance>"
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr "%J%s %+#D"
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr "candidats sont:"
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "conversion de « %T » vers « %T » est ambiguë"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
#, fuzzy
msgid "no matching function for call to %<%D(%A)%>"
msgstr "pas de fonction concordante pour l'appel de « %D(%A) »"
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
#, fuzzy
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:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr "pointeur vers fonction membre %E ne peut être appelé sans un objet; utilisez .* ou ->*"
-#: cp/call.c:2959
+#: cp/call.c:2965
#, fuzzy
msgid "no match for call to %<(%T) (%A)%>"
msgstr "pas de concordance pour l'appel de « (%T) (%A) »"
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "appel de « (%T) (%A) » est ambiguë"
-#: cp/call.c:3005
+#: cp/call.c:3012
#, fuzzy
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr "%s pour « operator?: » ternaire dans « %E ? %E : %E »"
-#: cp/call.c:3011
+#: cp/call.c:3018
#, fuzzy
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr "%s pour « operator%s » dans « %E%s »"
-#: cp/call.c:3015
+#: cp/call.c:3022
#, fuzzy
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr "%s pour « operator[] » dans « %E[%E] »"
-#: cp/call.c:3020
+#: cp/call.c:3027
#, fuzzy
msgid "%s for %qs in %<%s %E%>"
msgstr "%s pour « %s » dans « %s %E »"
-#: cp/call.c:3025
+#: cp/call.c:3032
#, fuzzy
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr "%s pour « operator%s » dans « %E %s %E »"
-#: cp/call.c:3028
+#: cp/call.c:3035
#, fuzzy
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr "%s pour « operator%s » dans « %s%E »"
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ interdit l'omission du terme milieu de l'expression ?:"
-#: cp/call.c:3195
+#: cp/call.c:3202
#, fuzzy
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr "« %E » a le type « void » et n'est pas une expression de retour de type throw"
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr "opérande vers ?: a différents types"
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "non concordance de type énuméré dans l'expression conditionnelle: « %T » vs « %T »"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "type énuméré et non énuméré dans l'expression conditionnelle"
-#: cp/call.c:3700
+#: cp/call.c:3706
#, fuzzy
msgid "no %<%D(int)%> declared for postfix %qs, 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:3753
+#: cp/call.c:3759
#, fuzzy
msgid "using synthesized %q#D for copy assignment"
msgstr "utilisation du synthétisé « %#D » pour l'affectaion par copie"
-#: cp/call.c:3755
+#: cp/call.c:3761
#, fuzzy
msgid " where cfront would use %q#D"
msgstr " où cfront utiliserait « %#D »"
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "comparaison entre « %#T » et « %#T »"
-#: cp/call.c:4044
+#: cp/call.c:4052
#, fuzzy
msgid "no suitable %<operator %s> for %qT"
msgstr "pas « operator %s » adapté pour « %T »"
-#: cp/call.c:4061
+#: cp/call.c:4069
#, fuzzy
msgid "%q+#D is private"
msgstr "« %+#D » est privé"
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "« %+#D » est protégé"
-#: cp/call.c:4065
+#: cp/call.c:4073
#, fuzzy
msgid "%q+#D is inaccessible"
msgstr "« %+#D » et inaccessible"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr "à l'intérieur du contexte"
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "conversion invalide de « %T » vers « %T »"
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr " initialisation de l'argument %P de « %D »"
-#: cp/call.c:4300
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "passage d'un NULL utilisé pour un non pointeur %s %P de « %D »"
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "%s vers un type non pointeur « %T » à partir d'un NULL"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "dans le passage de l'argument %P de « %+D »"
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "conversion de « %T » vers « %T »"
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "passage de valeur négative « %E » pour %s %P de « %D »"
+
+#: cp/call.c:4203
+#, fuzzy
+msgid "converting negative value %qE to %qT"
+msgstr "%s de valeur négative « %E » vers « %T »"
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "ne peut lier le champ de bits « %E » avec « %T »"
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
#, fuzzy
msgid "cannot bind packed field %qE to %qT"
msgstr "ne peut lier le champs empaqueté « %E » avec « %T »"
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "ne peut lier la rvalue « %E » avec « %T »"
-#: cp/call.c:4401
+#: cp/call.c:4460
#, fuzzy
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr "ne peut recevoir d'objets de type non POD « %#T » through « ... »; l'appel échouera lors de l'éxecution"
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
#, fuzzy
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr "ne peut recevoir d'objets de type non POD « %#T » through « ... »; l'appel échouera lors de l'éxecution"
-#: cp/call.c:4470
+#: cp/call.c:4529
#, fuzzy
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "argument par défaut pour le paramètre %d de « %D » n'a pas encore été analysé"
-#: cp/call.c:4675
+#: cp/call.c:4734
#, fuzzy
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr "passant « %T» comme «cet» argument de « %#D » écarte les qualificateurs"
-#: cp/call.c:4694
+#: cp/call.c:4753
#, fuzzy
msgid "%qT is not an accessible base of %qT"
msgstr "« %T » est une base accessible de « %T »"
-#: cp/call.c:4944
+#: cp/call.c:5003
#, fuzzy
msgid "could not find class$ field in java interface type %qT"
msgstr "ne peut repérer le champ classe$ dans le type d'interface JAVA « %T »"
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "appel à une non fonction « %D »"
-#: cp/call.c:5231
+#: cp/call.c:5288
#, fuzzy
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type aggrégat « %T »"
-#: cp/call.c:5310
+#: cp/call.c:5367
#, fuzzy
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr "pas de fonction concordante pour l'appel à « %T::%s(%A)%#V »"
-#: cp/call.c:5328
+#: cp/call.c:5385
#, fuzzy
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr "appel du surchargé « %s(%A) » est ambiguë"
-#: cp/call.c:5352
+#: cp/call.c:5409
#, fuzzy
msgid "cannot call member function %qD without object"
msgstr "ne peut appeler la fonction membre « %D » sans objet"
-#: cp/call.c:5957
+#: cp/call.c:6014
#, fuzzy
msgid "passing %qT chooses %qT over %qT"
msgstr "passant « %T » à choisit « %T » au lieu de « %T »"
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr " dans l'appel de « %D »"
-#: cp/call.c:6016
+#: cp/call.c:6073
#, fuzzy
msgid "choosing %qD over %qD"
msgstr "choix de « %D » à la place de « %D »"
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr " pour la conversion de « %T » vers « %T »"
-#: cp/call.c:6019
+#: cp/call.c:6076
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:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr "ISO C++ indique qu'ils sont ambiguës même à travers la plus mauvaise conversion pour le premier que la plus mauvaise pour la seconde:"
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr "candidat 1:"
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr "candidat 2:"
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "ne peut convertir « %E » vers « %T »"
-#: cp/call.c:6411
+#: cp/call.c:6469
#, fuzzy
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr "initialisation invalide pour une référence à un non constante de type « %T » à partir d'un type temporaire de type « %T »"
-#: cp/call.c:6415
+#: cp/call.c:6473
#, fuzzy
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr "initialisation invalide de référence d'un type « %T » à partir d'une expression de type « %T »"
-#: cp/class.c:273
+#: cp/class.c:272
#, fuzzy
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr "ne peut convertir de la base « %T » à un type dérivé « %T » via la base virtuel « %T »"
-#: cp/class.c:898
-#, fuzzy
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
-msgstr "classe Java « %T » ne peut avoir un destructeur implicite non trivial"
-
-#: cp/class.c:899
+#: cp/class.c:929
#, fuzzy
msgid "Java class %qT cannot have a destructor"
msgstr "classe Java « %T » ne peut avoir un destructeur"
-#: cp/class.c:998
+#: cp/class.c:931
+#, fuzzy
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "classe Java « %T » ne peut avoir un destructeur implicite non trivial"
+
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "« %#D » et « %#D » ne peut être surchargé"
-#: cp/class.c:1055
+#: cp/class.c:1088
#, fuzzy
msgid "conflicting access specifications for method %qD, ignored"
msgstr "spécifications d'accès conflictuelles pour la méthode « %D », ignoré"
-#: cp/class.c:1058
+#: cp/class.c:1091
#, fuzzy, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr "spécifications d'accès conflictuelles pour le champ « %s », ignoré"
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "« %D » nomme le constructeur"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "« %D » invalide dans « %T »"
-#: cp/class.c:1121
+#: cp/class.c:1154
#, fuzzy
msgid "no members matching %qD in %q#T"
msgstr "aucun membre concordant « %D » dans « %#T »"
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "« %D » invalide dans « %#T »"
-#: cp/class.c:1154
+#: cp/class.c:1187
#, fuzzy
msgid " because of local method %q#D with same name"
msgstr " parce que la méthode locale « %#D » a le même nom"
-#: cp/class.c:1162
+#: cp/class.c:1195
#, fuzzy
msgid " because of local member %q#D with same name"
msgstr " parce que le membre local « %#D » a le même nom"
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "classe de base « %#T » a un destructeur non virtuel"
-#: cp/class.c:1226
-#, fuzzy
-msgid "base %qT 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:1534
+#: cp/class.c:1551
#, fuzzy
msgid "all member functions in class %qT are private"
msgstr "toutes les fonctions membres de la classe « %T » sont privés"
-#: cp/class.c:1545
+#: cp/class.c:1562
#, fuzzy
msgid "%q#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:1585
+#: cp/class.c:1602
#, fuzzy
msgid "%q#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:1923
+#: cp/class.c:1935
#, fuzzy
msgid "no unique final overrider for %qD in %qT"
msgstr "pas d'écraseur unique final pour « %D » dans « %T »"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
#, fuzzy
msgid "%qD was hidden"
msgstr "« %D » était caché"
-#: cp/class.c:2380
+#: cp/class.c:2410
#, fuzzy
msgid " by %qD"
msgstr " par « %D »"
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
#, fuzzy
msgid "%q#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:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
#, fuzzy
msgid "private member %q#D in anonymous union"
msgstr "membre privé « %#D » dans une union anonyme"
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
#, fuzzy
msgid "protected member %q#D in anonymous union"
msgstr "membre protégé « %#D » dans une union anonyme"
-#: cp/class.c:2545
-#, fuzzy
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr "disposition vtable pour la classe « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future deGCC en raison d'un destructeur virtuel implicite"
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "largeur du champ de bits « %#D » n'est pas une constante entière"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "largeur du champ de bits « %D » n'est pas une constante entière"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "largeur négative du champ de bits « %D »"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "largeur zéro pour le champ de bits « %D »"
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "largeur de « %D » excède son type"
-#: cp/class.c:2649
+#: cp/class.c:2671
#, fuzzy
msgid "%qD is too small to hold all values of %q#T"
msgstr "« %D » est trop petit pour contenir toutes les valeurs de « %#T »"
-#: cp/class.c:2711
+#: cp/class.c:2731
#, fuzzy
msgid "member %q#D with constructor not allowed in union"
msgstr "membre « %#D » avec consructeur n'est pas permis dans l'union"
-#: cp/class.c:2714
+#: cp/class.c:2734
#, fuzzy
msgid "member %q#D with destructor not allowed in union"
msgstr "membre « %#D » avec destructeur n'est pas permis dans l'union"
-#: cp/class.c:2717
+#: cp/class.c:2737
#, fuzzy
msgid "member %q#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:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "champs multiples dans l'union « %T » initialisés"
-#: cp/class.c:2810
+#: cp/class.c:2821
#, fuzzy
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr "attribut empaqueté ignoré sur un champ non POD non paqueté « %#D »"
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
msgstr "« %D » peut ne pas être statique parce qu'il est membre de l'uniont"
-#: cp/class.c:2875
+#: cp/class.c:2886
#, fuzzy
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr "« %D » peut ne pas avoir de type référencé « %T » parce qu'il est membre de l'union"
-#: cp/class.c:2884
+#: cp/class.c:2895
#, fuzzy
msgid "field %qD in local class cannot be static"
msgstr "champ « %D » dans une classe locale ne peut être statique"
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "champ « %D » incorrectement validé comme un type de fonction"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "champ « %D » incorrectement validé comme un type de méthode"
-#: cp/class.c:2929
+#: cp/class.c:2939
#, fuzzy
msgid "non-static reference %q#D in class without a constructor"
msgstr "référence non statique « %#D » dans la classe sans un constructeur"
-#: cp/class.c:2977
+#: cp/class.c:2986
#, fuzzy
msgid "non-static const member %q#D in class without a constructor"
msgstr "constante non statique de membre « %#D » dans la classe sans un constructeur"
-#: cp/class.c:2992
+#: cp/class.c:3001
#, fuzzy
msgid "field %q#D with same name as class"
msgstr "champ « %#D » avec le même nom qu'une classe"
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "« %#T » a un pointeur vers un membre de données"
-#: cp/class.c:3030
+#: cp/class.c:3038
#, fuzzy
msgid " but does not override %<%T(const %T&)%>"
msgstr " mais n'écrase pas « %T(const %T&) »"
-#: cp/class.c:3032
+#: cp/class.c:3040
#, fuzzy
msgid " or %<operator=(const %T&)%>"
msgstr " ou « operator=(const %T&) »"
-#: cp/class.c:3035
+#: cp/class.c:3043
#, fuzzy
msgid " but does not override %<operator=(const %T&)%>"
msgstr " mais n'écrase pas « operator=(const %T&) »"
-#: cp/class.c:3468
+#: cp/class.c:3476
#, fuzzy
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr "décalage d'une base vide « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC"
-#: cp/class.c:3580
+#: cp/class.c:3588
#, fuzzy
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr "classe « %T » devra être considérée pratiquement vide dans une version future de GCC"
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "initialisation spécifiée pour une méthode non virtuelle « %D »"
-#: cp/class.c:4321
+#: cp/class.c:4333
#, fuzzy
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr "décalage relatif d'une base virtuelle « %T » n'est pas compatible avec l'ABI et peut être modifié dans une version future de GCC"
-#: cp/class.c:4420
+#: cp/class.c:4432
#, fuzzy
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr "base directe « %T » inaccessible dans « %T » en raison de l'ambiguité"
-#: cp/class.c:4432
+#: cp/class.c:4444
#, fuzzy
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr "base virtuelle « %T » inaccessible dans « %T » en raison de l'ambiguité"
-#: cp/class.c:4603
+#: cp/class.c:4621
#, fuzzy
msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC"
msgstr "taille assignée à « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC"
#. Versions of G++ before G++ 3.4 did not reset the
#. DECL_MODE.
-#: cp/class.c:4642
+#: cp/class.c:4660
#, fuzzy
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr "le décalage relatif de « %D » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC"
-#: cp/class.c:4665
+#: cp/class.c:4683
#, fuzzy
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr "le décalage relatif de « %D » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future de GCC"
-#: cp/class.c:4675
+#: cp/class.c:4693
#, fuzzy
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr "« %D » contient des classes vides lesquelles peuvent placer les classes de base à une localisation différente dans une version future de GCC"
-#: cp/class.c:4734
+#: cp/class.c:4753
#, fuzzy
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr "disposition des classes est dérivés de la classe vide « %T » peut être modifiée dans une version future de GCC"
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "redéfinition de « %#T »"
-#: cp/class.c:5019
+#: cp/class.c:5042
#, fuzzy
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr "« %#T » a des fonctions virtuelles mais un destructeur non virtuel"
-#: cp/class.c:5114
+#: cp/class.c:5139
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:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "chaîne du langage « \"%s\" » n'est pas reconnue"
-#: cp/class.c:5617
+#: cp/class.c:5642
#, fuzzy
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr "ne peut résoudre la fonction surchargé « %D » basé sur la conversion vers le type « %T »"
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
msgstr "pas de concordance de conversion de fonction « %D » vers le type « %#T »"
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr "conversion d'une fonction surchargée « %D » vers le type « %#T » est ambiguë"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "pointeur assumé vers le membre « %D »"
-#: cp/class.c:5794
+#: cp/class.c:5819
#, fuzzy
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:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "pas assez d'information sur le type"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "argument de type « %T » ne concorde pas avec « %T »"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "opération invalide sur un type non instancié"
@@ -14123,12 +14221,12 @@ 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "déclaration de « %#D »"
-#: cp/class.c:6273
+#: cp/class.c:6269
#, fuzzy
msgid "changes meaning of %qD from %q+#D"
msgstr "changements signifiant de « %D » à partir de « %+#D »"
@@ -14153,194 +14251,204 @@ msgstr "ne peut convertir « %E » du type « %T » vers le type « %T »"
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr "pointeur vers un membre transtypé de « %T » à « %T » est fait via une base virtuelle"
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "conversion de « %T » à « %T » écarte les qualificateurs"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "transtypage de « %T » vers « %T » ne fait pas de dé-référence de pointeur"
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "ne peut convertir type « %T » vers le type « %T »"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "conversion de « %#T » vers « %#T »"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
#, fuzzy
msgid "%q#T used where a %qT was expected"
msgstr "« %#T » utilisé où « %T » était attendu"
-#: cp/cvt.c:718
+#: cp/cvt.c:717
#, fuzzy
msgid "%q#T used where a floating point value was expected"
msgstr "« %#T » utilisé où un nombre flottant était attendu"
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "conversion de « %T » vers un type non scalaire « %T » demandée"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "arguments au destructeur ne sont pas permis"
+
+#: cp/cvt.c:857
#, fuzzy
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr "objet de type incomplet « %T » ne sera pas accessible dans %s"
-#: cp/cvt.c:856
+#: cp/cvt.c:860
#, fuzzy
msgid "object of type %qT will not be accessed in %s"
msgstr "objet de type « %T » ne sera pas acccessible dans %s"
-#: cp/cvt.c:872
+#: cp/cvt.c:876
#, fuzzy
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, 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:894
+#: cp/cvt.c:898
#, fuzzy, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr "%s est un référence, pas un appel, à la fonction « %E »"
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, c-format
msgid "%s has no effect"
msgstr "%s n'a pas d'effet"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "%Hvaleur calculée n'est pas utilisée"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr "conversion d'un NULL vers un type non pointeur"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
#, fuzzy
msgid "ambiguous default type conversion from %qT"
msgstr "conversion de type par défaut ambiguë à partir de « %T »"
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
#, fuzzy
msgid " candidate conversions include %qD and %qD"
msgstr " conversions de candidat inclut « %D » et « %D »"
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "étiquette « %D » utilisée mais non définie"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "étiquette « %D » définie mais non utilisée"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "« %s » a été déclaré « extern » et plus loin « static »"
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "déclaration précédente de « %D »"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "%Jfonction « %D » redéclarée comme étant enligne"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "%Jdéclaration précédente de « %D » avec l'attribut non enligne"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "%Jfonction « %D » redéclarée avec l'attribut non enligne"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "%Jdéclaration précédente de « %D » était enligne"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "%s masque la fonction « %#D »"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "fonction « %#D » de la bibliothèque redéclarée comme n'étant pas une fonction « %#D »"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "conflits avec la déclaration interne de « %#D »"
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "nouvelle déclaration de « %#D »"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "ambiguités de la déclaration interne de « %#D »"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "« %#D » redéclaré comme une sorte différente de symbole"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "déclaration précédente de « %#D »"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "déclaration du patron « %#D »"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "conflits avec la déclaration précédente de « %#D »"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "ambiguités d'une vieille déclaration de « %#D »"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "déclaration de la fonction C « %#D » en conflit avec"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "déclaration précédente de « %#D » ici"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "déclaration conflictuelle « %#D »"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "« %D » a une déclaration précédente tel que « %#D »"
@@ -14352,76 +14460,76 @@ msgstr "« %D » a une déclaration précédente tel que « %#D »"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "déclaration de « namespace %D » entre en conflit avec"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "déclaration précédente de « namespace %D » ici"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "« %#D » précédemment défini ici"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "« %#D » précédemment déclaré ici"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "prototype de « %#D »"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
msgid "%Jfollows non-prototype definition here"
msgstr "%Jsuit la définition d'un non prototype ici"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "déclaration précédente de « %#D » avec le lien %L"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "conflits avec la nouvelle déclaration avec le lien %L"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "argument par défaut donné pour le paramètre %d de « %#D »"
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "après la déclaration précédente dans « %#D »"
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "« %#D » a été utilisé avant qu'il ne soit déclaré enligne"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
msgid "%Jprevious non-inline declaration here"
msgstr "%Jdéclaration précédente non enligne ici"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "déclaration redondante de « %D » dans la même étendue"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "déclaration de « %F » amène différentes exceptions"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "qu'une précédente déclaratio « %F »"
@@ -14434,249 +14542,249 @@ 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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "spécialisation explicite de %D après la première utilisation"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
#, fuzzy
msgid "%J%qD: visibility attribute ignored because it"
msgstr "%J« %D »: attribut de visibilité ignoré en cause de lui"
-#: cp/decl.c:1933
+#: cp/decl.c:1805
msgid "%Jconflicts with previous declaration here"
msgstr "%Jentre en conflit avec la déclaration précédente ici"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "étiquette %s référencée à l'extérieur de toute fonction"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "saut à l'étiquette « %D »"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "saut à l'étiquette du « case »"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
msgid "%H from here"
msgstr "%H à partir d'ici"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr " initialisation croisée pour « %#D »"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
#, fuzzy
msgid " enters scope of non-POD %q#D"
msgstr " entre dans la porté d'un non POD « %#D »"
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " entre dans le bloc d'essais"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " entre dans le bloc d'interceptions"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " à partir d'ici"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr "%J entre dans le bloc d'interception"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr " saut d'initialisation pour « %#D »"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr "étiquette nommée wchar_t"
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "étiquette « %D » apparaît en double"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "« %D » utilisé sans patron de paramétres"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
#, fuzzy
msgid "no class template named %q#T in %q#T"
msgstr "pas de patron de classe nommé « %#T » in « %#T »"
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "pas de type nommé dans « %#T » dans « %#T »"
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "paramètres du patron ne peuvent pas être amis"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr " « %#D » déclaré ici"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr "%Jun UNION anonyme ne peut avoir de fonctions membres"
-#: cp/decl.c:3466
+#: cp/decl.c:3362
#, fuzzy
msgid "member %q#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:3470
+#: cp/decl.c:3366
#, fuzzy
msgid "member %q#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:3474
+#: cp/decl.c:3370
#, fuzzy
msgid "member %q#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:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "types multiples dans une déclaration"
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "redéclaration du type interne C++ « %T »"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr "nom de type manquant dans la déclaration typedef"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ interdit les structures anonymes"
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "« %D » ne peut seulement être spécifier pour les fonctions"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
msgstr "« %D » peut seulement être spécifié à l'intérieur d'une classe"
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "« %D » ne peut seulement être spécifié pour les constructeurs"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class 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:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers 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:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "déclaration amie précédente de « %D »"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "fonction « %#D » est initialisée comme une variable"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "déclaration de « %#D » est externe et initialisé"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "« %#D » n'est pas un membre statique de « %#T »"
-#: cp/decl.c:3772
+#: cp/decl.c:3671
#, fuzzy
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr "ISO C++ ne permet pas que « %T::%D » soit défini comme « %T::%D »"
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "initialisation en double de %D"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "déclaraion de « %#D » en dehors de la classe n'est pas une définition"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "la variable « %#D » est initialisée, mais a un type incomplet"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "éléments du tableau « %#D » ont un type incomplet"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "aggrégat « %#D » a un type incomplet et ne peut être défini"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
msgstr "« %D » déclaré comme référence mais n'est pas initialisé"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ISO C++ interdit l'usage de liste d'initialiseur pour initialiser la référence « %D »"
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "ne peut initialiser « %T » à partir de « %T »"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "l'initialisation n'a pu déterminer la taille de « %D »"
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "taille de tableau manquante dans « %D »"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "tableau « %D » de taille zéro"
@@ -14684,685 +14792,709 @@ 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "taille de stockage de « %D » n'est pas connue"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "taille de stockage de « %D » n'est pas une constante"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
#, fuzzy
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr "désolé: sémantique de fonction enligne de données statiques « %#D » est erronée (vous obtiendrez de multiples copies)"
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr "%J vous pouvez contourner cela en enlevant l'initialiseur"
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "constante « %D » non initialisée"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
#, fuzzy
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr "nom « %D » utilisé dans un style GNU de l'initialisateur désigné pour un tableau"
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, fuzzy, c-format
msgid "Designated initializer %qE larger than array size"
msgstr "Initialisateur désigné « %E » est plus grand que la taille du tableau"
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "initialiseur utilisé entre accolades pour initialiser « %T »"
-#: cp/decl.c:4376
+#: cp/decl.c:4280
#, fuzzy
msgid "initializer for %qT must be brace-enclosed"
msgstr "initialiseur de « %T » doit être entre accolades"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ ne permet de désigner les initialiseurs"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "« %T » n'a pas de membre de données non statique nommé « %D »"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "trop d'initialiseurs pour « %T »"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "objet de taille variable « %D » peut ne pas être initialisé"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "« %D » a un type incomplet"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
#, fuzzy
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr "« %D » doit être initialisé par un constructeur, non pas par « {...} »"
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "_Pragma prend une chaîne entourée de parenthèrese"
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "structure « %D » avec constantes non initialisées de membres"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "structure « %D » avec références non initialisées de membres"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "affectation (non pas l'initialisation) dans la déclaration"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "ne peut initialiser « %D » à l'espace de noms « %D »"
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "masque la déclaration précédente de « %#D »"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
#, fuzzy
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr "« %D » ne peut être utilisé comme un thread local parce qu'il a un non POD de type « %T »"
-#: cp/decl.c:4915
+#: cp/decl.c:4830
#, fuzzy
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr "« %D » est un thread local et ne peut donc pas être initialisé dynamiquement"
-#: cp/decl.c:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "destructeur pour la classe étrangère « %T » ne peut être un membre"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "constructeur pour la classe étrangère « %T » ne peut être un membre"
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
msgstr "« %D» déclaré comme « virtual » %s"
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
msgstr "« %D» déclaré comme « inline » %s"
-#: cp/decl.c:5550
+#: cp/decl.c:5474
#, fuzzy
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr "spécificateurs de fonction « const» et «volatile» invalide pour « %D » dans la déclaration %s"
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "« %D » déclaré comme un ami"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "« %D » déclaré avec une exception de spécification"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "ne peut déclarer « ::main » comme étant un patron"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "ne peut déclarer «::main» à être enligne"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "ne peut déclarer « ::main » comme étant static"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "« main» doit retourner « int »"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
#, fuzzy
msgid "non-local function %q#D uses anonymous type"
msgstr "fonction non locale « %#D » utilise un type anonyme"
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
#, fuzzy
msgid "%q#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:5690
+#: cp/decl.c:5617
#, fuzzy
msgid "non-local function %q#D uses local type %qT"
msgstr "fonction non locale « %#D » utilise un type local « %T »"
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "%sfonction membre « %D » ne peut avoir « %T » comme qualificateur de méthode"
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD 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:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "utilisation invalide du template-id « %D » dans la déclaration du patron primaire"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
#, fuzzy
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr "arguments par défaut ne sont pas permis dans la déclaration amie de la spécialisation du patron « %D »"
-#: cp/decl.c:5783
+#: cp/decl.c:5710
#, fuzzy
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr "« inline» n'estpas permis dans la déclaration amie de la spécialisation du patron « %D »"
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
msgstr "définition implicitement déclarée « %D »"
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "pas de fonction membre « %#D » déclarée dans la classe « %T »"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
#, fuzzy
msgid "non-local variable %q#D uses anonymous type"
msgstr "fonction non locale « %#D » utilise un type anonyme"
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "variable non locale « %#D » utilise un type local « %T »"
-#: cp/decl.c:6150
+#: cp/decl.c:6070
#, fuzzy
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr "initialisation invalide dans la class de données de membre statiques d'un non entier de type « %T »"
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "ISO C++ interdit l'initialisation intra-classe d'un membre statique non constant « %D »"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "ISO C++ interdit l'initialisation d'une membre constant « %D » d'un type non entier « %T »"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "taille du tableau « %D » n'est pas de type entier « %T »"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "taille du tableau a type non entier « %T »"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "taille du tableau « %D » est négative"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "taille du tableau est négative"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO C++ interdit les tableaux de taille zéro « %D »"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C++ interdit les tableaux de taille zéro"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "taille du tableau « %D » n'a pas une expression de constante de type entier"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
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:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO C++ interdit les tableaus de taille variable « %D »"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C++ interdit le tableau de taille variable"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "débordement dans les dimensions du tableau"
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "déclaration de « %D » comme « %s »"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr "création de %s"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
#, fuzzy
msgid "declaration of %qD 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:6374
+#: cp/decl.c:6293
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:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr "spécification de type retourné pour un constructeur est invalide"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr "spécification de type retourné pour un destructeur est invalide"
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "opérateur « %T » déclaré comme retournant « %T »"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "type spécifié retourné pour l'opérateur « %T »"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "variable non nommée ou champ déclaré void"
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "variable ou champ « %E » déclaré « void »"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "variable ou champ déclaré void"
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "type « %T » n'est pas dérivé du type « %T »"
-#: cp/decl.c:6674
-#, fuzzy
-msgid "declarator-id missing; using reserved word %qD"
-msgstr "declarator-id manquant; utilisation du mot réservé « %D »"
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "déclaration de « %D » comme non-fonction"
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "redéclaration de « %T » qui n'est pas un patron"
+
+#: cp/decl.c:6593
+#, fuzzy
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "declarator-id manquant; utilisation du mot réservé « %D »"
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "deux types de données ou plus dans la déclaration de « %s »"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++ ne permet pas « long long »"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO C++ interdit la déclaration de « %s » sans type"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "short, signed ou unsigned est invalide pour « %s »"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "« long », « short », « signed » ou « unsigned » invalide pour « %s »"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "long et short spécifiés ensembles pour « %s »"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "« long » ou « short » spécifié avec « char » pour « %s »"
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "« long » ou « short » spécifié avec un type flottant pour « %s »"
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "signed et unsigned donnés ensembles pour « %s »"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "« long », « short », « signed » ou « unsigned » utilisé incorrectement pour « %s »"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "« complex » invalide pour « %s »"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
#, fuzzy
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:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "qualificateurs « %V » ignorés pour « %T »"
+
+#: cp/decl.c:6957
#, fuzzy
msgid "member %qD cannot be declared both virtual and static"
msgstr "membre « %D » ne peut être déclaré virtuel et statique"
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "« %T::%D » n'est pas un déclarateur valide"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "déclaration typedef invalide dans le paramètre de la déclaration"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
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:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "virtuel en dehors de la déclaration de classe"
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "multiples classes de stockage dans la déclaration de « %s »"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "classe de stockage spécifiée pour %s « %s »"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "la déclaration hors de toute fonction de « %s » a spécifié « auto »"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
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:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "le destructeur ne peut être une fonction membre statique"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "destructeurs ne peut être « %s »"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "le constructeur ne peut être une fonction membre statique"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "constructeurs ne peut être déclarés virtuels"
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "constructeurs ne peuvent pas être « %s »"
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "ne peut initialiser la fonction amie « %s »"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "fonctions virtuelles ne peuvent être amies"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "déclaration amie n'est pas dans la définition de classe"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "ne peut définir une fonction amie « %s » dans une définition locale de classe"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr "destructeurs ne peuvent pas avoir de paramètre"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "ne peut déclarer une référence vers « %#T »"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "ne peut déclarer un pointeur vers « %#T »"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "ne peut déclarer un pointeur vers le membre « %#T »"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "« %D » est un nom d'espace"
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
msgstr "identificateur de patron « %D » utilisé comme déclarateur"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
#, fuzzy
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr "qualification additionnelle « %T:: » sur le membre « %s » est ignorée"
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr "ne peut déclarer la fonction membre « %T::%s » à l'intérieur de « %T »"
-#: cp/decl.c:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "ne peut déclarer le membre « %T::%s » à l'intérieur de « %T »"
-#: cp/decl.c:7570
+#: cp/decl.c:7520
#, fuzzy
msgid "data member may not have variably modified type %qT"
msgstr "membre de données peut ne pas avoir de type « %T » modifié de manière variable"
-#: cp/decl.c:7572
+#: cp/decl.c:7522
#, fuzzy
msgid "parameter may not have variably modified type %qT"
msgstr "paramètre peut ne pas avoir de type « %T » modifié de manière variable"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
#, fuzzy
msgid "only declarations of constructors can be %<explicit%>"
msgstr "seuls les déclarations de constructeurs peuvent être « explicit »"
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "le non membre « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "un membre non objet « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "fonction « %s » ne peut être déclarée « mutable »"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "static « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "const « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:7627
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
+msgstr "%Jnom du typedef peut ne pas être un nom de spécificateur imbriqué"
+
+#: cp/decl.c:7595
#, fuzzy
msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr "ISO C++ interdit le type imbriqué « %D » avec le même nom que la classe de fermeture"
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
-msgstr "%Jnom du typedef peut ne pas être un nom de spécificateur imbriqué"
-
-#: cp/decl.c:7689
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "%Jqualificateur de type invalide pour un type de fonction non membre"
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "Le type retourné d'une fonction ne peut être une fonction"
-#: cp/decl.c:7752
+#: cp/decl.c:7720
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:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "« inline » spécifié pour la déclaration d'une classe amie"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
msgid "template parameters cannot be friends"
msgstr "paramètres du patron ne peuvent pas être amis"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
#, 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::%D »"
-#: cp/decl.c:7771
+#: cp/decl.c:7739
#, fuzzy
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:7784
+#: cp/decl.c:7752
#, fuzzy
msgid "trying to make class %qT a friend of global scope"
msgstr "tentative de rendre la classe « %T » un ami de la portée globale"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr "qualificteurs invalide pour un type de fonction (autre que fonction membre)"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "déclaration abstrait « %T » utilisé dans la déclaration"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
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:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "utilisation invalide de « :: »"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "fonction « %D » ne peut être déclarée amie"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
#, fuzzy
msgid "can't make %qD 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:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "fonction « %D » déclaré comme virtuelle à l'intérieur d'un agrégat"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD 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:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "déclaration de « %D » masque un membre de « this »"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "champ « %D » a un type incomplet"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "nom « %T » a un type incomplet"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr " dans l'instanciation du patron « %T »"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr "« %s » n'est ni une fonction ni une fonction membre ; ne peut être déclaré ami"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "les fonctions membres sont implicitement amis de leur classe"
@@ -15378,92 +15510,92 @@ msgstr "les fonctions membres 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ISO C++ interdit l'initialisation du membre « %D »"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
#, fuzzy
msgid "making %qD static"
msgstr "rendant « %D » statique"
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "classe de stockage « auto» invalide pour une fonction « %s »"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "classe de stockage « register» invalide pour une fonction « %s »"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "classe de stockage « __thread » invalide pour la fonction « %s »"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
#, fuzzy
msgid "%<static%> specified invalid for function %qs 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:8156
+#: cp/decl.c:8129
#, fuzzy
msgid "%<inline%> specifier invalid for function %qs 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:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "fonction virtuelle d'une non classe « %s »"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD 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:8202
+#: cp/decl.c:8175
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:8231
+#: cp/decl.c:8204
#, fuzzy
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:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
msgstr "mambre statique « %D» déclaré «register »"
-#: cp/decl.c:8243
+#: cp/decl.c:8216
#, fuzzy
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr "ne peut explicitement déclarer le membre « %#D » comme ayant une liaison externe"
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "argument par défaut pour « %#D » à un type « %T »"
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "argument par défaut pour le paramètre de type « %T » a le type « %T »"
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "argument par défaut « %E » utiliser une variable locale « %D »"
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "paramètre « %D » incorrectement validé comme type de méthode"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
#, fuzzy
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr "paramètre « %D » inclut %s au tableau de bornes inconnues « %T »"
@@ -15483,132 +15615,132 @@ 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:8657
+#: cp/decl.c:8630
#, fuzzy
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr "constructeur invalide; vous vouliez probablement dire « %T (const %T&) »"
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "« %D » n'a pas été déclaré dans cet horizon"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "« %D » n'a pas été déclaré"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "« %D » doit être une fonction membre non statique"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD 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:8827
+#: cp/decl.c:8800
#, fuzzy
msgid "%qD 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:8862
+#: cp/decl.c:8835
#, 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:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ interdit la surcharge de l'opérateur ?:"
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
msgstr "postfixe « %D» doit prendre « int » comme argument"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
msgstr "postfixe « %D» doit prndre « int » pour son second argument"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "« %D » doit prendre seulement zéro ou un autre argument"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "« %D » doit prendre seulement un OU deux arguments"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
#, fuzzy
msgid "prefix %qD should return %qT"
msgstr "préfixe « %D » devrait retourner « %T »"
-#: cp/decl.c:8960
+#: cp/decl.c:8933
#, fuzzy
msgid "postfix %qD should return %qT"
msgstr "postfixe « %D » devrait retourner « %T »"
-#: cp/decl.c:8969
+#: cp/decl.c:8942
#, fuzzy
msgid "%qD must take %<void%>"
msgstr "« %D» doit prendre « void »"
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
msgstr "« %D » doit prendre exactement un argument"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "« %D » doit prendre exactemenr deux arguments"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
#, fuzzy
msgid "user-defined %qD always evaluates both arguments"
msgstr "« %D » défini par l'usager évalue toujours les 2 arguments"
-#: cp/decl.c:9003
+#: cp/decl.c:8976
#, fuzzy
msgid "%qD should return by value"
msgstr "« %D » devrait retourner par valeur"
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "« %D » ne peut avoir d'arguments par défaut"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "utilisation de type de patron de paramètre « %T » après « %s »"
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
msgstr "utilisation d'un nom de typedef « %D » après « %s »"
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "« %D » a une déclaration précédente tel que « %#D »"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
#, fuzzy
msgid "%qT referred to as %qs"
msgstr "« %TD » référé comme « %s »"
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "%Jest la déclaration précédente"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
#, fuzzy
msgid "%qT referred to as enum"
msgstr "« %T » référé comme enum"
@@ -15620,57 +15752,62 @@ msgstr "« %T » référé comme enum"
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "argument du patron est requis pour « %s %T »"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+#, fuzzy
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "« %D » a le même nom que la classe dans laquelle il est déclaré"
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "utilisation de enum « %#D » sans déclaration précédente"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "redéclaration de « %T » qui n'est pas un patron"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
#, fuzzy
msgid "derived union %qT invalid"
msgstr "union dérivée « %T » invalide"
-#: cp/decl.c:9397
+#: cp/decl.c:9389
#, fuzzy
msgid "Java class %qT cannot have multiple bases"
msgstr "classe Java « %T » ne peut avoir de bases multiples"
-#: cp/decl.c:9405
+#: cp/decl.c:9397
#, fuzzy
msgid "Java class %qT cannot have virtual bases"
msgstr "classe Java « %T » ne peut avoir de bases virtuelles"
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT 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:9457
+#: cp/decl.c:9449
#, fuzzy
msgid "recursive type %qT undefined"
msgstr "type récursif « %T » non défini"
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "duplication du type de base « %T » invalide"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "définition multiple de « %#T »"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
msgid "%Jprevious definition here"
msgstr "%Jdéfinition précédente ici"
@@ -15678,79 +15815,79 @@ msgstr "%Jdéfinition précédente ici"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
#, fuzzy
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr "aucun type entier peut représenter toutes les valeurs de l'énumérateur pour « %T »"
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "valeur de l'énumérateur pour « %D » n'est pas une constante entière"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "débordement dans les valeurs de l'énumération à « %D »"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "type retourné « %#T » est incomplet"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
#, fuzzy
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr "« operator= » devrait retourner une référence à «*ceci »"
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "paramètre « %D » déclaré «void »"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
msgid "invalid member function declaration"
msgstr "déclaration de membre de fonction invalide"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "« %D » est déjà défini dans la classe « %T »"
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "membre de fonction statique « %#D » déclaré avec des qualificateurs de tyep"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "nom manquant pour le membre d'une fonction"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "comversion ambigue pour un sous-tableau"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
#, fuzzy
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr "types invalides « %T[%T] » pour un sous-script de tableau"
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "destruction du tableau « %#D »"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
#, fuzzy
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr "type « %#T » de l'argument donné pour « delete », attendait un pointeur"
-#: cp/decl2.c:444
+#: cp/decl2.c:441
#, fuzzy
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:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "destruction de « %T » est indéfinie"
@@ -15758,196 +15895,190 @@ msgstr "destruction de « %T » est indéfinie"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "déclaration invalide du patron de membre « %#D » dans la classe locale"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "utilisation invalide de « virtual» dans la déclaration d'un patron de « %#D »"
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "déclaration du patron de « %#D »"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
#, fuzzy
msgid "Java method %qD has non-Java return type %qT"
msgstr "méthode Java « %D » a un type non Java retourné « %T »"
-#: cp/decl2.c:572
+#: cp/decl2.c:569
#, fuzzy
msgid "Java method %qD has non-Java parameter type %qT"
msgstr "méthode Java « %D » a un paramètre non Java de type « %T »"
-#: cp/decl2.c:677
+#: cp/decl2.c:674
#, fuzzy
msgid "prototype for %q#D does not match any in class %qT"
msgstr "prototype pour « %#D » ne concorde avec aucun dans la classe « %T »"
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "la classe locale « %#T » ne doit pas être un membre de données statiques de « %#D »"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "initialisation invalide pour un membre statique avec constructeur"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(une initialisation en dehors de la classe est requise)"
-#: cp/decl2.c:870
+#: cp/decl2.c:867
#, fuzzy
msgid "member %qD 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:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "« %D » est déjà défini dans « %T »"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "l'initialisation du champ n'est pas une constante"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
#, fuzzy
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:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "ne peut déclarer « %D » comme étant un type de champ de bits"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "ne peut déclarer un champ de bits « %D » avec un type de fonction"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "« %D » est déjà défini dans la classe %T"
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "membre statique « %D » ne peut être un champ de bits"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "initialisation spécifiée pour une fonction « %D » n'étant pas membre"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "initialisation invalide pour la méthode virtuelle « %D »"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "struct anonyme n'est pas l'intérieur du type nommé"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr "aggrégats anonymes de champs d'espace nom doit être statique"
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr "aggrégat anonyme sans aucun membre"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "« operator new » doit retourner un type « %T »"
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "« operator new » prend le type « size_t » (« %T ») comme premier paramètre"
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "« operator delete » doit retourner le type « %T »"
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "« operator delete » prend le type « %T » comme premier paramètre"
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "fonction enligne « %D » utilisé mais n'a jamais été défini"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "argument par défaut manquant pour le paramètre %P de « %+#D »"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, fuzzy, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr "lettre inattendue « %c » dans locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
#, fuzzy
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr "type « %T» n'est pas permis en Java «throw» ou «catch »"
-#: cp/except.c:250
+#: cp/except.c:273
#, fuzzy
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:257
+#: cp/except.c:280
#, fuzzy
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr "type « %T» n'est pas dérivé de «java::lang::Throwable »"
-#: cp/except.c:320
+#: cp/except.c:343
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:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr "retounrnant NULL (par throw), lequel est entier, pas de type pointeur"
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
#, fuzzy
msgid "%qD should never be overloaded"
msgstr "« %D » ne devrait jamais être surchargé"
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " dans l'expression projetée"
-#: cp/except.c:810
+#: cp/except.c:836
#, fuzzy
msgid "expression %qE of abstract class type %qT 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:895
+#: cp/except.c:921
#, fuzzy
msgid "%Hexception of type %qT will be caught"
msgstr "exception du type « %T » sera interceptée"
-#: cp/except.c:897
+#: cp/except.c:923
#, fuzzy
msgid "%H by earlier handler for %qT"
msgstr " par un handler antérieur pour « %T »"
-#: cp/except.c:927
+#: cp/except.c:953
#, fuzzy
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr "« ... » handler doit être le dernier handler de son bloc d'essai"
@@ -16035,212 +16166,220 @@ msgstr "(si ce n'est pas ce que vous vouliez faire, soyez sûr que le patron de l
msgid "argument to '%s' missing\n"
msgstr "argument pour « %s » est manquant\n"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "« %D » devrait être initialisé dans la liste d'initialisation du membre"
-#: cp/init.c:363
+#: cp/init.c:373
#, fuzzy
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr "initialisation par défaut de « %#D », lequel a un type référencé"
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "référence de membre non initialisé « %D »"
-#: cp/init.c:372
+#: cp/init.c:382
#, fuzzy
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr "membre non initialisé « %D » avec « const » type « %T »"
-#: cp/init.c:515
+#: cp/init.c:525
#, fuzzy
msgid "%qD will be initialized after"
msgstr "« %D » sera initialisé après"
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "base « %T » sera initialisé après"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr " « %D »"
-#: cp/init.c:523
+#: cp/init.c:533
#, fuzzy
msgid " base %qT"
msgstr " base « %T »"
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr " lorsqu'initialisé ici"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "multiples initialisations données pour « %D »"
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "multiples initialisations données pour base « %T »"
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "initialisation de multiples membres de « %T »"
-#: cp/init.c:667
+#: cp/init.c:677
#, fuzzy
msgid "%Jbase class %q#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:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
#, fuzzy
msgid "class %qT does not have any field named %qD"
msgstr "classe « %T » n'a pas aucun champ nommé « %D »"
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "« %#D » est un membre statique de données; il peut seulement être initialisée lors de sa définition"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "« %#D » n'est pas un membre statique de données de « %T »"
-#: cp/init.c:943
+#: cp/init.c:953
#, fuzzy
msgid "unnamed initializer for %qT, which has no base classes"
msgstr "initialiseur sans nom pour « %T », lequel n'a pas de classe de base"
-#: cp/init.c:951
+#: cp/init.c:961
#, fuzzy
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr "initialiseur sans nom pour « %T », lequel utilise de multiples héritages"
-#: cp/init.c:997
+#: cp/init.c:1007
#, fuzzy
msgid "%qD is both a direct base and an indirect virtual base"
msgstr "« %D » est à la fois une base directe et indirecte virtuelle"
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
msgstr "type « %D » n'est pas une base directe ou virtuelle de « %T »"
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "type « %D » n'est pas une base directe de « %T »"
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "mauvaise initialisation de tableau"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "« %T » n'est pas de type aggrégat"
-#: cp/init.c:1379
+#: cp/init.c:1389
#, fuzzy
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr "type qualifé « %T » ne concorde pas le nom du destructeur «~%T»"
-#: cp/init.c:1387
+#: cp/init.c:1397
#, fuzzy
msgid "incomplete type %qT does not have member %qD"
msgstr "type incomplet « %T » n'a pas de membre « %D »"
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "« %D » n'est pas un membre de type « %T »"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "pointeur invalide pour un champ de bits « %D »"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "utilisation invalide d'un membre non statique de fonction « %D »"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "utilisation invalide d'un membre non statique de données « %D »"
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr "taille d'un nouveau tableau (new) doit avoir un type entier"
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr "tableau de taille zéro ne réserve pas d'espace"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "new ne peut être appliqué à un type référencé"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "new ne peut être appliqué à un type de fonction"
-#: cp/init.c:1679
+#: cp/init.c:1700
#, fuzzy
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr "appel d'un constructeur Java, alors que « jclass » est indéfini"
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr "ne peut repérer class$"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "type « void » invalide pour new"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "constante non initialisée dans « new» pour « %#T »"
-#: cp/init.c:1867
+#: cp/init.c:1888
#, fuzzy, c-format
msgid "call to Java constructor with %qs undefined"
msgstr "appel au constructeur Java avec « %s » indéfini"
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "la requête pour le membre « %D » est ambiguë"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ interdit l'initialisation d'un nouveau tableau"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "fin prématurée de l'initialisation"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "ne peut initialiser un table multi-dimensionnel avec initialiseur"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr "problème possible détecté dans l'invocation de l'opérateur delete:"
-#: cp/init.c:2725
+#: cp/init.c:2744
msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
msgstr "ni le destructeur ni l'opérateur « delete » spécifique à la classe ne sera appellé, même s'ils sont déclarés lorsque la classe est définie"
-#: cp/init.c:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "taille du tableau inconnue dans delete"
-#: cp/init.c:3006
+#: cp/init.c:2998
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"
@@ -16321,16 +16460,21 @@ msgstr "le nom mutilé de « %D » sera modifié dans une version future de GCC"
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr "code « thunk» générique a échoué pour la méthode « %#D » laquelle utilise « ... »"
-#: cp/method.c:650
+#: cp/method.c:657
#, fuzzy
msgid "non-static const member %q#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:656
+#: cp/method.c:663
#, fuzzy
msgid "non-static reference member %q#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"
+#: cp/method.c:1078
+#, fuzzy
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr "disposition vtable pour la classe « %T » peut ne pas être compatible avec l'ABI et peut être modifié dans une version future deGCC en raison d'un destructeur virtuel implicite"
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16437,68 +16581,61 @@ msgstr "%s %s %p %d\n"
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr "XXX is_class_level != (current_scope == class_scope)\n"
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "« %#D » cache un constructeur pour « %#T »"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "« %#D » en conflit avec une déclaration précédente « %#D »"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "déclaration précédente d'un non fonction « %#D »"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "conflits avec la déclaration de fonction de « %#D »"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "« %T » n'est pas un espace de noms"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
#, fuzzy
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/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "espace de noms « %D » n'est pas permis dans l'utilisation d'une déclaration"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "« %D » n'est pas déclaré"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "« %D » est déjà déclaré dans cette portée"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
#, fuzzy
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr "l'utlisation de la déclaration « %D » introduit un type ambigu « %T »"
-#: cp/name-lookup.c:2594
-#, fuzzy
-msgid "%qD has the same name as the class in which it is declared"
-msgstr "« %D » a le même nom que la classe dans laquelle il est déclaré"
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
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"
@@ -16506,442 +16643,460 @@ msgstr "l'utilisation de déclaration pour un non membre au niveau de la portée d
msgid "using-declaration cannot name destructor"
msgstr "utilisation de déclaration ne peut nommer le destructeur"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "déclaration de « %D » n'est pas dans l'espace de noms entourant « %D »"
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "instanciation explicite de « %#D »"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
#, fuzzy
msgid "%qD should have been declared inside %qD"
msgstr "« %D » devrait avoir été déclaré à l'intérieur de « %D »"
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "alias d'espace de noms « %D » n'est pas permis ici, on assume « %D »"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "espace de nomes inconnu « %D »"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "espace de noms « %T » n'est pas déclaré"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr "forte n'ayant un sens seulement sur l'étendue de l'espace nom"
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "« %D » attribut de directive ignoré"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "utilisation de « %D » est ambiguë"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr " d'abord déclaré comme « %#D » ici"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr " aussi déclaré comme « %#D » ici"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
#, fuzzy
msgid "%qD denotes an ambiguous type"
msgstr "« %D » dénote un type ambigu"
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
msgid "%J first type here"
msgstr "%J premier type ici"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr "%J autre type ici"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "utilisation invalide de %D"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "« %D::%D » n'est pas un patron"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "« %D » non déclaré dans l'espace de noms « %D »"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "« %D » n'est pas une fonction"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr " en conflit avec « %D »"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr "XXX on entre dans pop_everything ()\n"
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr "XXX on quitte pop_everything ()\n"
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "la #pragma %s est déjà enregistrée"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "« %D::%D » n'a pas été déclaré"
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "« %D::%D » n'a pas été déclaré"
-#: cp/parser.c:1818
+#: cp/parser.c:1842
#, fuzzy
msgid "request for member %qD in non-class type %qT"
msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type classe « %T »"
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "« %D::%D » n'a pas été déclaré"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "« %D » n'a pas été déclaré"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
#, fuzzy
msgid "%<%D::%D%> %s"
msgstr "« %D::%D » %s"
-#: cp/parser.c:1829
+#: cp/parser.c:1853
#, fuzzy
msgid "%<::%D%> %s"
msgstr "« %D::%D » %s"
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr "« %D » %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr "nouveaux types ne peuvent être définis dans un type à retourner"
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "«;» manquant après la déclaration « %T »"
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "« %T » n'est pas un patron"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "« %T » n'est pas un patron"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
msgid "invalid template-id"
msgstr "id de patron invalide"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "%s ne peut apparaître dans une expression de constante"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "utilisation invalide du template-name « %E » dans le déclarateur"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "« %s » ne nomme pas un type"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
#, fuzzy
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr "(peut-être « typename %T::%s » était votre intention"
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, fuzzy, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr "« %s » ne nomme pas un type"
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "« %s » ne nomme pas un type"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ interdit les groupes d'accolades à l'intérieur des expressions"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr "expression de déclaration sont permises seulement à l'intérieur de fonctions"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "« cela » ne peut être utilisé dans ce contexte"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
#, fuzzy
msgid "local variable %qD may not appear in this context"
msgstr "variable locale « %D » ne peut apparaître dans ce contexte"
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
msgstr "nom du typdef « %D » utilisé comme déclarateur de destructeur"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ interdit les chaînes composées"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr "les limites du tableau interdisent ce qui suit après le type-id mis entre parenthèses"
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr "essayer d'enlever les parenthèses autour du type-id"
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "taille d'un nouveau tableau (new) doit avoir un type entier"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "tableau de taille zéro ne réserve pas d'espace"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "expression dans le nouveau déclarateur doit être un type entier ou d'énumération"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "utilisation d'un vieux style de transtypage (cast)"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "étiquette du CASE « %E » n'est pas à l'intérieur de la déclaration du SWITCH"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ interdit les gotos calculés"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
#, fuzzy
msgid "extra %<;%>"
msgstr "« ; » superflu"
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr "mélange de déclarations et de définitions de fonction est interdit"
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "« friend » apparaît en double"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
msgid "class definition may not be declared a friend"
msgstr "définition de classe ne peut pas être déclaré comme ami"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr "seuls les constructeurs prennent des initialiseurs de base"
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr "ancien style anachronique d'initialiseur de classe de base"
-#: cp/parser.c:7626
+#: cp/parser.c:7734
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr "mot clé « typename » n'est pas permis dans ce contexte (un initialisateur de membre qualifié est implicitement un type)"
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
#, fuzzy
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "mot clé « export » n'est pas implanté et sera ignoré"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "« <:: » ne peut pas être au début d'une liste d'un patron d'arguments"
-#: cp/parser.c:8359
+#: cp/parser.c:8470
#, fuzzy
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr "« <: » est une épellation alternative pour « [ ». Insérer des blancs d,espacement entre « < » et « :: »"
-#: cp/parser.c:8366
+#: cp/parser.c:8477
#, fuzzy
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr "(si vous utiliser « -fpermissive » G++ acceptera votre code)"
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "« <:: » ne peut pas être au début d'une liste d'un patron d'arguments"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
msgstr "« %D » qui n'est pas un patron est utilisé comme patron"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
#, fuzzy
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr "utiliser « %T::template %D » pour indiquer que c'est un patron"
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "déclaration du patron de « %#D »"
+
+#: cp/parser.c:9688
#, fuzzy
msgid "using %<typename%> outside of template"
msgstr "utilisation de « typename » en dehors du patron"
-#: cp/parser.c:9677
-msgid "expected type-name"
-msgstr "un nom de type attendu"
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr "type d'attributs sont honorés seulement lors de la définitions de type"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
msgid "a template-id may not appear in a using-declaration"
msgstr "un id de patron ne peut pas apparaître dans l'utilisation de la déclaration"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr "une spécification asm n'est pas permise dans la définition de fonction"
-#: cp/parser.c:10463
+#: cp/parser.c:10597
msgid "attributes are not allowed on a function-definition"
msgstr "attributs ne sont pas permis dans la définition de fonction"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr "attributs après l'initialisateur mis entre parenthèses sont ignorés"
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "compteur de répétition n'est pas une constante entière"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "« %T::%D » n'est pas un type"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "utilisation invalide du patron « %D »"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "duplication du qualificateur (décalage %d)"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
msgid "file ends in default argument"
msgstr "fin de fichier dans l'argument par défaut"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr "utilisation de l'argument par défaut pour un paramètre d'une non fonction"
-#: cp/parser.c:11858
+#: cp/parser.c:11980
msgid "default arguments are only permitted for function parameters"
msgstr "arguments par défaut sont permis seulement pour les paramètres de fonction"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "déclaration de patron invalide « %D »"
+
+#: cp/parser.c:12733
#, fuzzy
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr "déclaration de « %D » dans « %D » lequel n'entoure pas « %D »"
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr "qualification superflue ignorée"
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "spécialisation explicite doit être précédé par « template <> »"
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "définition précédente de « %#T »"
+
+#: cp/parser.c:13059
#, fuzzy
msgid "%Hextra %<;%>"
msgstr "« ; » superflu"
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr "une clé de classe doit être utilise lors de la déclaration d'un ami"
-#: cp/parser.c:12946
+#: cp/parser.c:13091
msgid "friend declaration does not name a class or function"
msgstr "déclaration amie ne nomme pas une classe ou une fonction"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr "spécificateur pur lors de la définition d'une fonction"
-#: cp/parser.c:13393
+#: cp/parser.c:13545
#, fuzzy
msgid "keyword %<typename%> not allowed outside of templates"
msgstr "mot clé « typename » n'est pas permis en dehors du patron"
-#: cp/parser.c:13395
+#: cp/parser.c:13547
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr "mot clé « typename » n'est pas permis dans ce contexte (la classe de base est implicitement un type)"
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "paramètre d'interception invalide"
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "référence à « %D » est ambiguë"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
msgid "too few template-parameter-lists"
msgstr "trop peu de patron de listes de paramètres"
@@ -16949,175 +17104,175 @@ msgstr "trop peu de patron de listes de paramètres"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr "trop de patron de listes de paramètres"
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
msgid "invalid function declaration"
msgstr "déclaration de fonction invalide"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
msgid "named return values are no longer supported"
msgstr "valeurs nommées à retourner ne sont plus supportées"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "déclaration du patron de « %#D »"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
#, fuzzy
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr "« >> » devrait être « > > » à l'intérieur du patron de la liste d'arguments"
-#: cp/parser.c:15063
+#: cp/parser.c:15233
#, fuzzy
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr "faux « >> », utiliser « > » pour terminer la liste d'argument du patron"
-#: cp/parser.c:15068
+#: cp/parser.c:15238
#, fuzzy
msgid "missing %<>%> to terminate the template argument list"
msgstr "« > » manquant pour terminer la liste d'argument du patron"
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
msgstr "étiquette « %s » utilisée dans la dénomination de « %#T »"
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "« %#D » redéclaré avec un accès différent"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
#, fuzzy
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr "« template » (afin de rendre moins ambiguë) est seulement permis à l'intérieur des patron"
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "les optimisations inter-module n'est pas implanté encore"
-#: cp/pt.c:240
+#: cp/pt.c:241
#, fuzzy
msgid "data member %qD cannot be a member template"
msgstr "membre de données « %D » ne peut être membre du patron"
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "déclaration de membre de patron invalide « %D »"
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "spécialisation explicite dans la portée d'un non espace de noms « %D »"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr "fermetures de patrons de classe ne sont pas explicitement spécialisées"
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
msgstr "spécialisation de « %D » dans différents espaces de noms"
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr " à partir de la définition de « %#D »"
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "spécialisation de « %T » après instanciation"
-#: cp/pt.c:738
+#: cp/pt.c:739
#, fuzzy
msgid "specializing %q#T in different namespace"
msgstr "spécialisation de « %#T » dans différents espaces de noms"
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "spécialisation de « %T » après instanciation « %T »"
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "spécialisation explicite du non patron « %T »"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "spécialisation de %D après instanciation"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "« %D » n'est pas un patron de fonction"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
#, fuzzy
msgid "template-id %qD for %q+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:1542
+#: cp/pt.c:1543
#, fuzzy
msgid "ambiguous template specialization %qD for %q+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:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "template-id « %D » dans la déclaration de patron primaire"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr "patron de liste de paramètres utilisé dans une instanciation explicite"
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr "définition fournie pour une instanciation explicite"
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "trop de patrons de listes de paramètres dans la déclaration de « %D »"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "trop peu de patrons de listes de paramètres dans la déclaration de « %D »"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "spécialisation explicite doit être précédé par « template <> »"
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr "argument par défaut spécifié dans la spécialisation explicite"
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr "spécialisation de patron avec édition de liens C"
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "« %D » n'est pas une membre du patron de fonction"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -17126,67 +17281,61 @@ msgstr "spécialisation de patron avec édition de liens C"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
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:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "pas de membre de fonction « %D » déclaré dans « %T »"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "trop de patrons de listes de paramètres dans la déclaration de « %T »"
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr " masque le paramètre du patron « %#D »"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
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:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
msgstr " « %D »"
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "spécialisation partielle « %T » ne spécialise pas aucun patron d'arguments"
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, fuzzy, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr "patron d'argument « %E » implique des paramètres du patron"
-#: cp/pt.c:2710
+#: cp/pt.c:2685
#, fuzzy
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr "type « %T » du patron d'argument « %E » dépend des paramètres du patron"
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "pas d'argument par défaut pour « %D »"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr "patron avec liaison C"
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr "patron de classe sans nom"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
msgstr "destructeur « %D » déclaré en tant que membre du patron"
@@ -17196,62 +17345,67 @@ msgstr "destructeur « %D » déclaré en tant que membre du patron"
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "déclaration de patron invalide « %D »"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "« %D » ne déclare pas un type de patron"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "définition de patron d'un non patron « %#D »"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "attendait %d niveaux de patron de paramètres pour « %#D », obtenu %d"
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "a obtenu %d paramètres de patron pour « %#D »"
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "a obtenu %d paramètres de patron pour « %#T »"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " mais %d son requis"
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "« %T » n'est pas un type patron"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "trop peu de patrons de listes de paramètres dans la déclaration de « %D »"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "déclaration précédente de « %D »"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, 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:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "patron de paramètre « %#D »"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
#, fuzzy
msgid "redeclared here as %q#D"
msgstr "redéclaré ici comme « %#D »"
@@ -17260,345 +17414,355 @@ 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:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "redéfinition de l'argument par défaut pour « %#D »"
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr "%J définition originale apparaît ici"
-#: cp/pt.c:3370
+#: cp/pt.c:3342
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because function %qD has not external 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:3411
+#: cp/pt.c:3383
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
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:3486
+#: cp/pt.c:3458
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
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:3536
+#: cp/pt.c:3508
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
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:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
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:3576
+#: cp/pt.c:3548
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because object %qD has not external 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:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "« %E » n'est pas un argument valide pour le patron"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "« %E » n'est pas un argument valide pour le patron"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
#, fuzzy
msgid "standard conversions are not allowed in this context"
msgstr "expression conditionnelle n'est pas permise dans ce contexte"
-#: cp/pt.c:3827
+#: cp/pt.c:3799
#, fuzzy
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:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr "non concordance de type/valeur pour l'argument %d dans la liste des paramètres du patron de « %D »"
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr " attendait une constante de type « %T », a obtenu « %T »"
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr " attendait un patron de classe, a obtenu « %E »"
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr " attendait un type, a obtenu « %E »"
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr " attendait un type, a obtenu « %T »"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr " attendait un patron de classe, a obtenu « %T »"
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
msgstr " attendait un patron de type « %D », a obtenu « %D »"
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "ne peut convertir l'argument du patron « %E » vers « %T »"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, 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:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "fournie pour « %D »"
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, c-format
msgid "template argument %d is invalid"
msgstr "patron de l'argument %d est invalide"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr "non patron utilisé comme patron"
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "type non patron « %T » utilisé comme un patron"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "pour la déclaration du patron « %D »"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
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:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "instanciation ambiguë de patron de classe pour « %#T »"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "instanciation de « %D » comme type « %T »"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "paramètre invalide pour le type « %T »"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "dans la déclaration de « %D »"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "fonction retourne un aggrégat"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "« %s » déclaré comme une fonction retournant une fonction"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "création d'un pointeur vers le membre d'une fonction d'un type non classe « %T »"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "création d'un tableau de taille zéro"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "création d'un tableau de taille zéro (« %E »)"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr "formation d'une référence en void"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "formant %s pour référencer le type « %T »"
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "création d'un pointeur vers le membre d'un type non classe « %T »"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "création d'un pointeur vers le membre de référence du type « %T »"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "création du tableau « %T »"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
#, fuzzy
msgid "creating array of %qT, which is an abstract class type"
msgstr "création d'un tableau « %T », lequel est un type de classe abstraite"
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "« %T » n'est pas une classe, struct ou un type d'union"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "« %T » n'est pas un type de classe"
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "utilisation de « %s » dans le patron"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, fuzzy, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr "nom dépendant « %E » est analysé comme un non type, mais son instantiation le rend comme un type"
-#: cp/pt.c:7557
+#: cp/pt.c:7556
#, fuzzy
msgid "say %<typename %E%> if a type is meant"
msgstr "utiliser « typename %E » si un type est désiré"
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "champ statique manquant « %s »"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "« %T » n'est pas une classe ou un espace de noms"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "« %D » n'est pas une classe ou un espace de noms"
-#: cp/pt.c:8844
+#: cp/pt.c:8872
#, fuzzy
-msgid "%qT uses anonymous type"
+msgid "%qT is/uses anonymous type"
msgstr "« %T » utilise un type anonyme"
-#: cp/pt.c:8846
+#: cp/pt.c:8874
#, fuzzy
msgid "%qT uses local type %qT"
msgstr "« %T » utilise un type local « %T »"
-#: cp/pt.c:8854
+#: cp/pt.c:8883
#, fuzzy
msgid "%qT is a variably modified type"
msgstr "« %T » est type modifié de manière variable"
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "expression intégrale « %E » n'est pas une constante"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr " tentative d'instanciation « %D »"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "type d'unification incomplète"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "instanciation explicite d'un non patron « %#D »"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
#, fuzzy
msgid "no matching template for %qD found"
msgstr "non concordance de patron pour « %D » repéré"
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "instanciation explicite de « %#D »"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "duplication d'instanciation explicite de « %#D »"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr "ISO C++ interdit l'utilisation de « extern » sur instanciations explicites"
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "classe de stockage « %D » appliqué à l'instanciation du patron"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "instanciation explicite de type non patron « %T »"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "instanciation explicite de « %#T » avant la définition de patron"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr "ISO C++ interdit l'utilisation de « %s » sur instanciations explicites"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "duplication d'instanciation explicite de « %#T »"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "instanciation explicite de « %D » mais pas de définition disponible"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
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:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#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"
@@ -17617,25 +17781,25 @@ msgstr "dépôt mystérieux d'informations dans %s"
msgid "can't create repository information file %qs"
msgstr "ne peut créer le fichier « %s » pour dépôt d'informations"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "ne peut utiliser typeid avec -fno-rtti"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "doit utiliser #include <typeinfo> avant d'utiliser typeid"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
#, fuzzy
msgid "cannot create type information for type %qT 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:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
#, fuzzy
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr "dynamic_cast de « %#D » vers « %#T » ne pourra jamais réussir"
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "ne peut effectuer un dynamic_cast « %E » (du type « %#T ») vers le type « %#T » (%s)"
@@ -17650,237 +17814,232 @@ msgstr "« %T » est une base ambiguë de « %T »"
msgid "%qT is an inaccessible base of %qT"
msgstr "« %T » est une base inaccessible de « %T »"
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "type retourné covariant invalide pour « %#D »"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
#, fuzzy
msgid " overriding %q#D"
msgstr " écrasant « %#D »"
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "type retourné covariant invalide pour « %#D »"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "types retournés conflictuels spécifiés pour « %#D »"
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "a placé un spécificateur pour « %#F »"
-#: cp/search.c:1867
+#: cp/search.c:1876
#, fuzzy
msgid " overriding %q#F"
msgstr " écrasant « %#F »"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "« %#D » ne peut être déclaré"
-#: cp/search.c:1961
+#: cp/search.c:1970
#, fuzzy
msgid " since %q#D declared in base class"
msgstr " alors que « %#D » est déclaré dans la classe de base"
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "type d'opérande asm « %E » ne peut être déterminé"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "utilisation invalide du membre « %D » dans un membre statique de fonction"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr "à partir de cette localisation"
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "objet manquant dans la référence à « %D »"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
msgid "arguments to destructor are not allowed"
msgstr "arguments au destructeur ne sont pas permis"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "« cela » n'est pas disponible pour les membres statiques de fonctions"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "utilisation invalide de « ceci » dans un non membre de fonction"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "utilisation invalide de « this » hors de toute fonction"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "étendue invalide du qualificateur dans un nom de pseudo-destructeur"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "« %E » n'est pas un type « %T »"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
#, fuzzy
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:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "utilisation invalide du type « %T » comme valeur par défaut pour un patron de paramètres de patron"
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "utilisation invalide de « %D » comme valeur par défaut pour un patron de paramètres de patron"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
msgid "invalid default argument for a template template parameter"
msgstr "utilisation invalide d'argumenet pour un patron de paramètres de patron"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "définition de « %#T » à l'intérieur d'un patron de liste de paramètres"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "définition invalide d'un type qualifié « %T »"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "définition précédente de « %#T »"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
msgid "invalid base-class specification"
msgstr "spécification de base de classe invalide"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "classe de base « %T » a des qualificateurs cv"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
#, fuzzy
msgid "incomplete type %qT used in nested name specifier"
msgstr "type « %T » incomplet utilisé dans un spécificateur de noms imbriqué"
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "référence à « %D » est ambiguë"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "« %D » n'est pas un membre de « %T »"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "« %D » n'est pas un membre de « %D »"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
#, fuzzy
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr "paramètre « %D » du patron du type « %T » ne sont pas permises dans une expression intégrale de constante parce qu'elle n'est pas intégral ou un type énumération"
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "« %D » ne peut apparaître dans une expression de constante"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "utilisation d'un espace de dnomes « %D » comme expression"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "utilisation du patron de classe « %T » comme expression"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr "requête du membre « %D » est ambiquë dans de mutliples héritage de treillis"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr "utilisation de %s d'un fonction contenante"
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr " « %#D » déclaré ici"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "type « %E » est inconnu"
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "qualificateur « %V » ne peut pas être appliqué à « %T »"
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE 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:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, fuzzy, c-format
msgid "%qE 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:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "init_priority demandé n'est pas une constante entière"
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, fuzzy, c-format
msgid "can only use %qE 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:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "init_priority demandé est hors limite"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr "init_priority demandé est réservé pour un usage interne"
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "attribut « %s » n'est pas supporté sur cette plate-forme"
@@ -17900,215 +18059,215 @@ msgstr "ISO C++ interdit %s entre les pointeurs de type « void * » et les pointe
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "%s entre des types distincs de pointeurs vers les membres « %T » et « %T » manque de transtypage"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "application invalide de « %s » à une fonction membre"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "application invalide de « %s » sur un champ de bits"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO C++ interdit l'application de « %s » à une expression d'un type de fonction"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
msgid "invalid use of non-static member function"
msgstr "utilisation invalide d'un membre non statique de fonction"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "conversion obsolète de la chaîne de constante vers « %T »"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
#, fuzzy
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type classe « %T »"
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "utilisation invalide d'un membre de données non statique « %E »"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
#, fuzzy
msgid "invalid access to non-static data member %qD of NULL object"
msgstr "accès invalide à un membre de données non statique « %D » d'un objet null"
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
#, fuzzy
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr "(peut-être que le macro « offsetof » a été utilisé incorrectement)"
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
#, fuzzy
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr "type qualifé « %T » ne concorde pas le nom du destructeur «~%T»"
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
#, fuzzy
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr "le type devant être détruit est « %T », mais le destructeur réfère à « %T »"
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "« %D::%D » n'est pas un membre de « %T »"
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "« %D » n'est pas une base de « %T »"
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "« %D » n'a pas de membre nommé « %E »"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD is not a member template function"
msgstr "« %D » n'est pas une membre du patron de fonction"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "« %T » n'est pas un type pointeur-vers-objet"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "utilisation invalide de « %s » sur un pointeur vers un membre"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "type d'argument invalide"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "indice manquant dans la référence du tableau"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ interdit le souscriptage de non lvalue de tableau"
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "souscriptage de tableau déclaré « register »"
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "objet manquant dans l'usage de « %E »"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C++ interdit l'appel de «::main» depuis l'intérieur du programme"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
#, fuzzy
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:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "« %E » ne peut être utilisé comme une fonction"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "trop d'arguments pour %s « %+#D »"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "à ce point dans le fichier"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "trop d'arguments pour la fonction"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "paramètre %P de « %D » a un type incomplet « %T »"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "paramètre %P a un type incomplet « %T »"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "pas assez d'argument pour %s « %+#D »"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "trop peu d'arguments pour la fonction"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "transtypage vers le type « %T » est assumé à partir de la fonction surchargée"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "division par zéro dans « %E / 0 »"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "division par zéro dans « %E / 0. »"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "division par zéro dans « %E %% 0 »"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "division par zéro dans « %E %% 0. »"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "compteur de rotation %s est négatif"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "compteur de rotation %s >= largeur du type"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ interdit la comparaison entre un pointeur et un entier"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "comparaison non ordonnée sur un argument n'étant pas en virgule flottante"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "opérandes invalides pour les types « %T » et « %T » en binaire « %O »"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "comparaison entre les types « %#T » et « %#T »"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "comparaison entre des expressions entières signée et non signée"
@@ -18116,151 +18275,151 @@ msgstr "comparaison entre des expressions entières signée et non signée"
#. 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr "NULL utilisé en arithmétique"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
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"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
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"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
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"
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
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:3625
+#: cp/typeck.c:3581
#, fuzzy, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr "utilisation invalide de « %E » pour former pointer-to-member-function. Utiliser un identifateur qualifié"
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, fuzzy, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr "parenthèses autour de « %E » ne peuvent être utilisées pour former pointer-to-member-function"
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "prise de l'adresse du temporaire"
# FIXME: I18N
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ interdit de %ser un enum"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "ne peut utiliser %s comme pointeur sur un type incomplet « %T »"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C++ interdit %s utilisation d'un pointeur de type « %T »"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr "transtypage d'un type non référencé utilisé comme membre gauche"
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "utilisation invalide de «--» sur une variable booléenne « %D »"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr "ISO C++ interdit de prendre l'adresse d'une fonction «::main»"
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
#, fuzzy
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized 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é ou entre parenthèses pour former un pointeur d'un membre de fonction. Utilisers «&%T::%D»"
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
#, 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++ 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:4083
+#: cp/typeck.c:4039
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 n'etant pas membre gauche"
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "tentative de prise d'adresse du membre « %D » d'une structure de champ de bits"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr "prise de l'adresse du destructeur"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
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:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "ne peut déclarer un pointeur vers le membre de référence « %D »"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
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:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "adresse d'une variable registre « %s » requise"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
#, fuzzy
msgid "address requested for %qD, which is declared %<register%>"
msgstr "adresse requise pour « %D», lequel est déclaré «register »"
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, c-format
msgid "%s expression list treated as compound expression"
msgstr "%s liste d'expressions traitée comme une expression composée"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
#, fuzzy
msgid "%s from type %qT to type %qT casts away constness"
msgstr "%S à partir du « %T » vers le type « %T » provoque un transtypage sans constante"
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "static_cast invalide du type « %T » au type « %T »"
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "conversion de « %T » vers « %T »"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "reinterpret_cast invalide d'une expression rvalue de type « %T » vers le type « %T »"
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "reinterpret_cast de « %T » vers « %T » génère une perte de précision"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "transtypage de « %T » vers « %T » augmente l'alignement requis pour le type ciblé"
@@ -18269,171 +18428,141 @@ msgstr "transtypage de « %T » vers « %T » augmente l'alignement requis pour le t
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
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"
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "const_cast invalide à partir du type « %T » vers le type « %T »"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
#, fuzzy
msgid "invalid use of const_cast with type %qT, 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:5044
+#: cp/typeck.c:5002
#, fuzzy
msgid "invalid use of const_cast with type %qT, 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:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "const_cast invalide de la rvalue du type « %T » vers le type « %T »"
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "const_cast invalide à partir du type « %T » vers le type « %T »"
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C++ interdit le transtypage vers un type tableau « %T »"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "transtypage invalide pour un type de fonction « %T »"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
#, fuzzy
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr " lors de l'évaluation de « %Q(%#T, %#T) »"
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "type incompatible dans l'affectation de « %T » vers « %T »"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ interdit l'affectation de tableaux"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " dans la conversion d'un pointeur vers un membre de fonction"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
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:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "pointeur vers un membre transtypé via la base virtuelle « %T »"
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "conversion de pointeur à membre à l'aide de la base virtuelle « %T »"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "conversion invalide vers un type « %T » à partir du type « %T »"
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "passage d'un NULL utilisé pour un non pointeur %s %P de « %D »"
-
-#: cp/typeck.c:5874
-#, fuzzy
-msgid "%s to non-pointer type %qT from NULL"
-msgstr "%s vers un type non pointeur « %T » à partir d'un NULL"
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "passage « %T » pour %s %P de « %D »"
-
-#: cp/typeck.c:5885
-#, fuzzy
-msgid "%s to %qT from %qT"
-msgstr "%s vers « %T » à partir de « %T »"
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "passage de valeur négative « %E » pour %s %P de « %D »"
-
-#: cp/typeck.c:5897
-#, fuzzy
-msgid "%s of negative value %qE to %qT"
-msgstr "%s de valeur négative « %E » vers « %T »"
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr "ne peut convertir « %T » à « %T » pour l'argument « %P » vers « %D »"
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "ne peut convertir « %T » vers « %T » dans %s"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "dans le passage de l'argument %P de « %+D »"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "retourné la référence vers le temporaire"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "une référence vers quelque chose n'étant pas un membre gauche a été retourné"
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "référence vers une variable locale « %D » retourné"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "adresse d'une variable locale « %D » retournée"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "retourné une valeur d'un constructeur"
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "déclaration à retourner sans valeur dans une fonction retournant « %T »"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
msgid "return-statement with a value, in function returning 'void'"
msgstr "déclaration éa retourner avec une valeur dans une fonction retournant un « void »"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
#, fuzzy
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)"
@@ -18500,172 +18629,172 @@ msgstr "\t%#D"
msgid "%J since type %qT has pure virtual functions"
msgstr " depuis que le type « %T » a des fonctions virtuelles abstraites"
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
#, fuzzy
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr "syntaxe de constructeur utilisé mais aucun constructeur déclaré pour le type « %T »"
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "ne peut initialiser les tableaux en utilisant la syntaxe"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "initialise le tableau avec la liste des paramètres"
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "tableau d'entier initialisé à l'aide d'une chaîne non-large"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "l'initialisation de variable scalaire requiert un élément"
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "accolades autour de l'initialiseur scalaire pour « %T »"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "initialiseurs superflus pour « %T » ignorés"
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "un objet de taille variable de type « %T » peut ne pas être initialisé"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
#, fuzzy
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr "sous-objet de type « %T » doit être initialisé par un constructeur, non pas par « %E »"
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "aggrégat a un initialiseur partiellement entouré d'accolades"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "initialiseur étiqueté de manière non trivial"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr "initialiseurs non vides pour un tableau d'éléments vides"
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "initialiseur manquant pour le membre « %D »"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "membre de constante non initialisé pour « %D »"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "membre « %D » avec des champs de constantes non initialisée"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "membre « %D » est une référence non initialisée"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
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:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "pas de champ « %D » dans l'aggrégat n'a été initialisé"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
#, fuzzy
msgid "union %qT with no named members cannot be initialized"
msgstr "aggrégat « %T » sans mambre nommé ne peut être initialisé"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "éléments en excès dans l'initialiseur d'aggrégat"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "délégation de pointeur circulaire détecté"
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "l'opérande de base de «->» a un type non pointeur « %T »"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
#, fuzzy
msgid "result of %<operator->()%> yields non-pointer result"
msgstr "résultat de « operator->() » laisse comme résultat un non pointeur"
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "l'opérande de base de «->» n'est pas un pointeur"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "« %E » ne peut être utilisé comme pointeur de membre, alors qu'il est de type « %T »"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
#, fuzzy
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr "ne peut appliquer un pointeur de membre « %E » à « %E », lequel n'est pas un type d'aggrégat « %T »"
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
#, fuzzy
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr "type du membre « %T:: » incompatible avec le type d'objet « %T »"
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "l'appel à la fonction « %D » laquelle écarte le type incomplet « %T »"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "l'appel à la fonction laquelle écarte le type incomplet « %T »"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr "%s est obsolète, SVP voir la documentation pour les détails"
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "ne peut ouvrir le fichier de sortie « %s »"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "variable globale de registre « %s » utilisée dans une fonction imbriquée"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "variable de registre « %s » utilisée dans une fonction imbriquée"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "adresse d'une variable registre globale « %s » requise"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "adresse d'une variable registre « %s » requise"
@@ -18684,83 +18813,83 @@ msgstr "argument pour « %s » est manquant"
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"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "fonction ne retourne pas un type « string »"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "%Jparamètre « %D » inutilisé"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "%Jvariable « %D » inutilisée"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "fonction retourne un aggrégat"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "mode insn inconnu"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "language %s n'est pas reconnu"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18778,7 +18907,7 @@ msgstr ""
msgid "Array element size too big"
msgstr "Valeur de l'élément du tableau à %0 en dehors de la plage définie"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18788,27 +18917,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "%Jchamp final « %D » peut ne pas avoir été initialisé"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "%Jchamp final « %D » peut ne pas avoir été initialisé"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, 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:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "%Jchamp final « %D » peut ne pas avoir été initialisé"
@@ -18844,194 +18973,194 @@ msgstr "%Jméthode abstraite dans une classe non abstraite"
msgid "%Jnon-static method '%D' overrides static method"
msgstr "%Jméthode non statique « %D » écrase la méthode statique"
-#: java/decl.c:1203
+#: java/decl.c:1260
msgid "%J'%D' used prior to declaration"
msgstr "%J« %D » utilisé précédemment avant sa déclaration"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "la déclaration de « %s » masque un paramètre"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "la déclaration de « %s » masque un symbole de la liste des paramètres"
-#: java/decl.c:1575
+#: java/decl.c:1632
msgid "%Jlabel '%D' used but not defined"
msgstr "%Jétiquette « %D » utilisée mais non définie"
-#: java/decl.c:1580
+#: java/decl.c:1637
msgid "%Jlabel '%D' defined but not used"
msgstr "%Jétiquette « %D » définie mais non utilisée"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr "%JDans %D: chevauchement de variable et plage d'exception à %d"
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr "type erroné dans les paramètres d'informations de mise au point"
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr "%Jplage PC erroné pour les infos de débug pour la var. locale « %D »"
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, fuzzy, c-format
msgid "assert: %s is assign compatible with %s"
msgstr "-march=%s n'est pas compatible avec l'ABI sélectionné"
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr "sous débordement de la pile - opération dup*"
-#: java/expr.c:1699
+#: java/expr.c:1703
#, fuzzy, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr "référence « %s » est ambigue: apparaît dans l'interface « %s » et l'interface « %s »"
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "champ « %s » n'a pas été trouvé"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, 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:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "échec de repérage de la classe « %s »"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, 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:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr "invocation statique sur un méthode non statique"
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr "invocation statique sur un méthode abstraite"
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr "invocation non statique sur un méthode statique"
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "champ « %s » manquant dans « %s »"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "aignature ne concorde pas pour le champ « %s » dans « %s »"
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "%Jaffectation au champ final « %D » n'est pas le champ de la classe"
-#: java/expr.c:2742
+#: java/expr.c:2746
#, fuzzy
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr "%Jaffectation au champ statique final « %D » n'est pas dans l'initialiseur de la classe"
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "%Jaffectation au champ final « %D » n'est pas dans le constructeur"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "PC invalide dans la numéro de ligne de la table"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "bytcode n'est pas atteignable à partir de %d jusqu'à %d"
-#: java/expr.c:3037
+#: java/expr.c:3043
#, 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:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr "sous-instruction très large non reconnue"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "pas de méthode «%T::%D»"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "ne peut repérer la classe « %s »"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "erreur lors de la lecture de %s à partir du fichier zip"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "impossible d'analyser le fichier « %s » avec stat()"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "n'est pas un fichier Java .class valide"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr "error lors de l'analyse syntaxique du lots de constantes"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "erreur dans l'entrée #%d du lot de constantes\n"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "le transtypage spécifie un type de tableau"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "le transtypage spécifie un type de tableau"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, fuzzy, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr "utiliser -Winvalid-pch pour plus d'informations"
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, fuzzy, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
@@ -19040,118 +19169,118 @@ msgstr ""
"Usage: gcov [OPTION]... FICHIER-SOURCE\n"
"\n"
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, fuzzy, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr "Générer les en-têtes C pour les options spécifiques à la plate-forme"
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe utiliser des pipes au lieu de fichiers intermédiares\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -W autoriser les avertissements additionnels\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <répertoire> ajouter le <répertoire> aux chemins de recherche du compilateur\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <fichier> placer la sortie dans le <fichier>\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " -h, --help afficher l'aide mémoire\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -v, --version exécuter le numéro de <version> de gcc, si installée\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -v, --version exécuter le numéro de <version> de gcc, si installée\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -h, --help afficher l'aide mémoire\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " -h, --help afficher l'aide mémoire\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -19161,32 +19290,32 @@ msgstr ""
"Pour les instructons afin de rapporter des anomales, SVP consulter:\n"
"%s.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "aucun nom de classe spécifié avec \"%s\""
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
#, fuzzy
msgid "'-MG' option is unimplemented"
msgstr "instruction ret n'est pas implantée"
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "ne peut spécéfier à la fois -C et -o"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "Création de %s.\n"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, fuzzy, c-format
msgid "%s: no such class"
msgstr "« %T » n'est pas un type de classe"
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -19201,7 +19330,7 @@ msgstr "n'est pas un fichier Java .class valide"
msgid "error while parsing constant pool\n"
msgstr "error lors de l'analyse syntaxique du lots de constantes"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "erreur dans l'entrée #%d du lot de constantes\n"
@@ -19277,104 +19406,104 @@ msgstr "construit interne erroné de fcode"
msgid "source file for class %qs is newer than its matching class file. Source file %qs 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:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "constante chaîne erronée"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, 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:559
+#: java/jcf-parse.c:572
#, c-format
msgid "can't reopen %s: %m"
msgstr "ne peut ré-ouvrir %s: %m"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, c-format
msgid "can't close %s: %m"
msgstr "ne peut fermer %s: %m"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr "ne peut repérer le fichier pour la classe %s."
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr "n'est pas un fichier Java .class valide"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, 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:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr "erreur lors de l'analyse syntaxique des champs"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr "erreur lors de l'analyse syntaxique des méthodes"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr "erreur lors de l'analyse syntaxique des attributs"
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
#, fuzzy
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr "attribut Code manquant"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr "%Hfichier source vu deux fois sur la ligne de commande et ne sera compilé une seule fois"
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "aucun fichier n'a été spécifié à l'entrée"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, c-format
msgid "can't close input file %s: %m"
msgstr "ne peut fermer le fichier d'entrée %s: %m"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "fichier zip/jar erroné %s"
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr "erreur lors de la lecture de %s à partir du fichier zip"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, 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:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr "type de initialiseur du champ ne concorde pas"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, c-format
msgid "can't create directory %s: %m"
msgstr "ne peut créer le répertoire %s: %m"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, c-format
msgid "can't open %s for writing: %m"
msgstr "ne peut ouvrir %s en écriture: %m"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, c-format
msgid "can't create %s: %m"
msgstr "ne peut créer %s: %m"
@@ -19430,27 +19559,27 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
#, fuzzy
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:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "ne peut ouvrir le fichier de sortie « %s »"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "fichier non repéré « %s »"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "erreur: "
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, fuzzy, c-format
msgid "%s: warning: "
msgstr "%s:%d: AVERTISSEMENT: "
@@ -19507,15 +19636,15 @@ msgstr "utilisé ensemble @FICHIER avec de multiples fichiers bMest pas implanté"
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:620
+#: java/lang.c:629
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:636
+#: java/lang.c:645
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:256
+#: java/lex.c:260
#, fuzzy
msgid ""
"unknown encoding: %qs\n"
@@ -19530,7 +19659,7 @@ msgstr ""
"d'utiliser un encodage particulier pour votre fichier d'entrée, essayer\n"
"l'option «--encoding=UTF-8»."
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "erreur interne - nom Utf8 invalide"
@@ -19544,225 +19673,225 @@ msgstr "ne peut mutiler %s"
msgid "internal error - invalid Utf8 name"
msgstr "erreur interne - nom Utf8 invalide"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr "Terme manquant"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "«;» attendu"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "Nom manquant"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "« * » attendu"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr "Déclaration de classe ou d'interface attendue"
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "identificateur de boucle non déclaré"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "Nom de classe manquant"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "«{» attendu"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr "Nom de super classe manquant"
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr "Nom d'interface manquant"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr "Initialiseur de variable manquant"
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "Déclaration invalide"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "«]» attendu"
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr "«]» non pairé"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr "Déclaration de méthode invalide, nom de méthode requis"
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr "Identificateur attendu"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr "Déclaration de méthode invalide, type retourné requis"
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "«)» attendu"
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr "Paramètre term formel manquant"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "Identificateur manquant"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr "Type term de classe manquant"
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr "Type d'interface invalide"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "«:» attendu"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr "Déclaration d'expression invalide"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "«(» attendu"
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr "Terme manquant ou «)»"
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr "Expresion de constante manquante ou invalide"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr "Terme manquant et «)» attendus"
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr "Expression de contrôle invalide"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr "Expression de mise à jour invalide"
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr "Déclaration init invalide"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr "Terme manquant ou «)» attendu"
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr "« class» ou «ceci » attendu"
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr "« class » attendu"
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr "«)» or terme attendu"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "«[» attendu"
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr "Champ attendu"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr "Terme manquant et «]» attendu"
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr "«]» attendu, type d'expression invalide"
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr "Type d'expression invalide"
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr "Type de référence invalide"
-#: java/parse.y:3032
+#: java/parse.y:3031
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"
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr "Seuls les constructeurs peuvent invoquer des constructeurs"
-#: java/parse.y:3042
+#: java/parse.y:3041
#, fuzzy, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ": « %s » option JDK1.1(TM)"
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19771,689 +19900,689 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Nom manquant"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "Autoriser des segments de données séparés"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "« %D » est déjà défini dans « %T »"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, fuzzy, c-format
msgid "Interface %qs repeated"
msgstr "type est obsolète"
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "paramètre 1 doit pouvoir être référencé"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, fuzzy, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr "membre « %D » ne peut être déclaré virtuel et statique"
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "redéfinition de « struct %s »"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "dans la déclaration de « %s », utilisation de « int » par défaut pour le type"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
#, fuzzy
msgid "Class %qs not found in %<throws%>"
msgstr "champ « %s » n'a pas été repéré dans la classe"
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "déclaration de l'étiquette « %s » en double"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, fuzzy, c-format
msgid "Class or interface %qs not found in import"
msgstr "Déclaration de classe ou d'interface attendue"
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "archive .zip mal composée dans CLASSPATH: %s"
-#: java/parse.y:7148
+#: java/parse.y:7151
#, fuzzy, c-format
msgid "Can't find default package %qs. 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."
-#: java/parse.y:7153
+#: java/parse.y:7156
#, fuzzy, c-format
msgid "Package %qs not found in import"
msgstr "champ « %s » n'a pas été repéré dans la classe"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, fuzzy, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr "« %D » non adapté ou ambiguë repéré dans la classe « %T »"
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "%Jvariable « %D » inutilisée"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "« %D » est déjà défini dans la classe « %T »"
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "ne peut repérer le fichier pour la classe %s."
-#: java/parse.y:10100
+#: java/parse.y:10103
#, fuzzy, c-format
msgid "Can't use type %qs as a qualifier"
msgstr "ne peut utiliser « %s » comme le registre %s"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "%Hdéclaration de prototype"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "expression n'est pas une constante"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "valeur du « case » duppliquée"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "champ statique manquant « %s »"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "n'est pas un champ statique « %s »"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "Oas de case pour %s"
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "côté droit de l'affectation est un mode"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "opérator %s non enregistré"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "type d'argument invalide pour l'attribut « %s »"
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "argument actuel invalide à %0"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "conversion invalide de « %T » vers « %T »"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "tableau initialisé à l'aide de l'expression de tableau non constante"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "borne d'index vide lors de l'initialisation"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "borne d'index vide lors de l'initialisation"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "retourné une valeur d'un constructeur"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "déclaration de « %D » masque une déclaration globale"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "ceci est la localisation d'une précédente définition"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "pas de définition d'étiquette pour la déclaration de FORMAT à %0"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "mot-clé « continue » à l'extérieur de toute boucle"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "mot-clé « continue » à l'extérieur de toute boucle"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "mot-clé « break » à l'extérieur de toute boucle ou « switch »"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "étiquette « %D » apparaît en double"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
#, fuzzy
msgid "original label is here"
msgstr "Aligner toutes les étiquettes"
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "borne d'index vide lors de l'initialisation"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "rebut à la fin de la chaîne de signature"
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, fuzzy, c-format
msgid "verification failed: %s"
msgstr "erreur de vérification au PC=%d"
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, fuzzy, c-format
msgid "verification failed at PC=%d: %s"
msgstr "erreur de vérification au PC=%d"
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr "PC erroné dans exception_table"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "code-op inconnu %d@pc=%d durant la vérification"
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr "erreur de vérification au PC=%d"
@@ -20501,192 +20630,192 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "type incompatible pour l'argument n°%d de l'appel indirect de fonction"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
#, fuzzy
msgid "%<@end%> must appear in an @implementation context"
msgstr "«@end» doit appraître dans un contaxte d'implantation"
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "méthode de définition n'est pas dans un contexte de classe"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "méthode de définition n'est pas dans un contexte de classe"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, fuzzy, c-format
msgid "object does not conform to the %qs protocol"
msgstr "objet n'est pas conforme au protocole « %s »"
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "classe « %s » n'implante pas le protocole « %s »"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, fuzzy, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr "instance allouée de manière statique de la classe Objective-C « %s »"
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, fuzzy, c-format
msgid "protocol %qs has circular dependency"
msgstr "le protocole « %s » a une dépendance circulaire"
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "ne peut repérer la déclaration de protocole pour « %s »"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "ne peut repérer la déclaration d'interface pour « %s »"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, fuzzy, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr "interface « %s » n'a pas une organisation valide de chaînes de constantes"
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "ne peut repérer la référence pour l'étiquette de classe %s."
-#: objc/objc-act.c:2330
+#: objc/objc-act.c:2374
#, fuzzy
-msgid "%Jcreating selector for nonexistent method %qE"
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr "création du sélection pour une méthode inexistente %s"
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "« %s » n'est pas une classe Objective-C ou un alias"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr "déclarations Objective-C peut seulement apparaître dans l'étendue globale"
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "ne peut repérer la classe « %s »"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "classe « %s » existe déjà"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "« %s » redéclaré comme une autre sorte de symbole"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
msgid "%Jprevious declaration of '%D'"
msgstr "%Jdéclaration précédente de « %D »"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
#, fuzzy
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr "Utiliser « -fobjc-exceptions » pour autoriser la syntaxe d'exception d'Objective-C"
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
#, fuzzy
msgid "@catch parameter is not a known Objective-C class type"
msgstr "paramètre « @catch » n'est pas connu comme un type de classe Objective-C"
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
#, fuzzy
msgid "exception of type %<%T%> will be caught"
msgstr "exception du type « %T » sera interceptée"
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
#, fuzzy
msgid "%H by earlier handler for %<%T%>"
msgstr " par un handler antérieur pour « %T »"
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
#, fuzzy
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr "« @try » sans « @catch » ou « @finally »"
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
#, fuzzy
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr "« @throw; » (rethrow) utilisé en dehors d'un bloc « @catch »"
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr "%Jtype « %D » n'a pas de taille connue"
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "%J%s « %s »"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr "spécification inconsistente avec l'instance de la vairable"
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
#, fuzzy
msgid "can not use an object as parameter to a method"
msgstr "ne peut utiliser un objet comme paramètre à une méthode\n"
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "multiples %s nommés « %c%s » repérés"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "pas de super classe déclarée dans @nterface pour « %s »"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "type du receveur invalide « %s »"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "« %c%s » n'est pas implantée dans le protocole"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "« %s » peut ne pas répondre à « %c%s »"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr "(Messages sans une méthode concordante de signature"
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
#, fuzzy
msgid "will be assumed to return %<id%> and accept"
msgstr "sera assumé pour retourner « id » et accepter"
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
#, fuzzy
msgid "%<...%> as arguments.)"
msgstr " « ... » comme argument.)"
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
msgstr "sélecteur « %s » non déclaré"
@@ -20700,152 +20829,152 @@ msgstr "sélecteur « %s » non déclaré"
#. 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "instance « %s » de la variable accédé par la méthode de classe"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "duplication de déclaration de la méthode « %c%s »"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
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:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "type deréférence spécifié illégal pour l'instance de variable « %s »"
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
msgstr "instance de la variable « %s » a une taille inconnue"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr "type « %s » a des membres de fonction virtuelle"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "type d'aggrégat illégal « %s » spécifié pour l'instance de la variable « %s »"
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, fuzzy, c-format
msgid "type %qs has a user-defined constructor"
msgstr "type « %s » a un constructeur défini par l'usager"
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, fuzzy, c-format
msgid "type %qs has a user-defined destructor"
msgstr "type « %s » a un destructeur défini par l'usager"
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr "constructeurs et destructeurs C++ ne seront pas invoqués pour les champs en Objective-C"
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "instance de la variable « %s » est déclaré privée"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, fuzzy, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr "instance de la variable « %s » est %s; cela déclenchera une erreur dure dans le futur"
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "instance de la variable « %s » est déclaré %s"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "accès statique à un objket de type « id »"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
msgstr "implantation incomplète de la classe « %s »"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
msgstr "implantation incomplète de la catégorie « %s »"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
#, fuzzy
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:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "%s « %s » n'implante pas complètement le protocole « %s »"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
#, fuzzy
msgid "%<@end%> missing in implementation context"
msgstr "«@end» manquant dans l'implantation du contexte"
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "ne peut repérer une déclaration d'interface pour « %s », super classe de « %s »"
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "ré-implantation de la classe « %s »"
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "nom de super classe « %s » est conflictuel"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "déclaration précédente de « %s »"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "double déclaration d'interface pour la classe « %s »"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "double déclaration pour le protocole « %s »"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
#, fuzzy
msgid "%J%s %<%c%s%>"
msgstr "%J%s « %c%s »"
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "pas de super classe déclarée dans l'interface pour « %s »"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] doit apparaître dans une méthode du contexte"
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "la déclaration locale de « %s » masque l'instance d'une variable"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "point virgule superflu dans la structure ou dans l'union"
@@ -20855,22 +20984,22 @@ msgstr "point virgule superflu dans la structure ou dans l'union"
msgid "%HDuplicate name %q.*s."
msgstr "%Hétiquette « %D » apparaît en double"
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "variable globale de registre « %s » utilisée dans une fonction imbriquée"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "variable de registre « %s » utilisée dans une fonction imbriquée"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "adresse d'une variable registre globale « %s » requise"
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "adresse d'une variable registre « %s » requise"
@@ -21221,664 +21350,665 @@ msgid "Warn about function pointer arithmetic"
msgstr "Avertir à propos d'arithmétique portant sur un pointeur de fonction"
#: options.c:1237
+#, fuzzy
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "Avertir lorsque la surcharge fait la promotion d'un non signé en signé"
+
+#: options.c:1240
msgid "Warn if inherited methods are unimplemented"
msgstr "Avertir si les méthodes héritées ne sont pas implantées"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Avertir à propos des déclarations multiples portant sur le même objet"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr "Avertir si des modificateurs sont spécifiés sans que cela ne soit nécessaires"
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr "Avertir lorsque le compilateur réordonne le code"
-#: options.c:1249
+#: options.c:1252
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr "Avertir lorsque le type de fonction à retourner par défaut est \"int\" (C) ou à propos d'un type inconsisten à retourner (C++)"
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr "Avertir si le sélecteur a de multiples méthodes"
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr "Avertir à propos des violations possibles des règles de séquence de points"
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr "Avertir lorsqu'une variable locale masque une autre"
-#: options.c:1261
+#: options.c:1264
msgid "Warn about signed-unsigned comparisons"
msgstr "Avertir à propos des comparaisons signés ou non signés"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr "Avertir lorsque la surcharge fait la promotion d'un non signé en signé"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
msgid "Warn about code which might break strict aliasing rules"
msgstr "Avertir à propos du code qui pourrait briser les règles strictes d'alias"
-#: options.c:1273
+#: options.c:1276
msgid "Warn about unprototyped function declarations"
msgstr "Avertir à propos des déclarations de fonctions sans prototype"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "Avertir à propos des déclarations douteuses de \"main\""
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr "Avertir à propos d'un switch énuméré, sans défaut ou un case est manquant"
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "Avertir à propos d'un switch énuméré n'ayant pas de déclaration \"default:\""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr "Avertir à propos de tous les switch énumérés où un case spécific manque"
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr "Avertir lorsque le comportement de synthère diffère de Cfront"
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr "Ne pas supprimer les avertissements pour les en-têtes système"
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr "Avertir à propos d'une option absente en C traditionnel"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr "Avertir si des trigraphes sont rencontrés et qui pourraient affecter le sens du programme"
-#: options.c:1300
+#: options.c:1303
#, fuzzy
msgid "Warn about @selector()s without previously declared methods"
msgstr "Avertir à propos des fonctions globales sans déclaration précédente"
-#: options.c:1303
+#: options.c:1306
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "Avertir si un macro indéfini est utilisé dans un directive #if"
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "débordement dans l'expression de la constante"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr "Avertir à propos des variables automatiques non initialisées"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr "Avertir à propos des pragmas non reconnus"
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr "Avertir à propos du code qui ne sera jamais exécuté"
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr "Autoriser tous les -Wunused- warnings"
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "Avertir lorsqu'une fonction est inutilisée"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "Avertir lorsqu'une étiquette est inutilisée"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr "Avertir à propos de macros définis dans le fichier principal qui ne sont pas utilisés"
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "Avertir lorsqu'un paramètre de fonction est inutilisé"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "Avertir lorsque la valeur d'une expression n'est pas utilisée"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "Avertir lorsque 'une variable est inutilisée"
-#: options.c:1342
+#: options.c:1345
#, fuzzy
msgid "Do not warn about using variadic macros when -pedantic"
msgstr "Ne pas avertir à propos de l'utilisation de \"long long\" avec -pedantic"
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr "Fournir des chaînes de type \"array of char\""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr "Un synonyme pour -std=c89. Dans une version future de GCC cela deviendra synonyme de -std=c99 à la place"
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr "-aux-info <fichier>\tproduire une déclaration d'information dans le <fichier>"
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr "-d<lettres>\tautoriser les vidanges pour des passes spécifiques du compilateur"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr "-dumpbase <fichier>\tfixer le nom de base du fichier à utiliser pour les vidanges"
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr "--CLASSPATH\tobsolète; utiliser --classpath à la place"
-#: options.c:1375
+#: options.c:1378
#, fuzzy
msgid "Generate position-independent code if possible (large mode)"
msgstr "Générer du code indépendant de la position si possible"
-#: options.c:1378
+#: options.c:1381
#, fuzzy
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr "Générer du code indépendant de la position pour les exécutables si possible"
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr "Forcer à la sémantique du contrôle d'accès à un membre de classe"
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr "Aligner le début des fonctions"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr "Aligner les étiquettes qui sont seulement atteintes par sauts"
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr "Aligner toutes les étiquettes"
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr "Aligner le début des boucles"
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr "Changer lorsque les instances du patron sont produites"
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr "Spécifier que les arguments peuvent avoir des alias l'un vers l'autre et globaux"
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr "Présumer que les arguments peuvent avoir des alias globaux mais pas l'un vers l'autre"
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr "Assumer que les alias d'arguments n'en ont pas l'un vers l'autre ou globaux"
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr "Reconnaître le mot clé « asm »"
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr "Générer des tables étendues qui soient exactes pour chaque borne d'instruction"
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr "--bootclasspath=<chemin>\tremplacer le <chemin> système"
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr "Générer du code pour vérifier les bornes avant d'indexer les tableaux"
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr "Remplacer add,compare,branch avec des branchements utilisant un compteur registre"
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr "Utiliser les informations de profilage pour les probabilités de branchements"
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr "Effectuer l'optimisation du chargement du branchement cible avant le thread prologue / epilogue"
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr "Effectuer l'optimisation du chargement du branchement cible après le thread prologue / epilogue"
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
msgid "Recognize built-in functions"
msgstr "Reconnaître aucun construit dans les fonctions"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr "-fcall-saved-<registre>\tmarquer le <registre> comme étant préservé à travers les fonctions"
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr "-fcall-used-<registre>\tmarquer le <registre> comme étant corrompu par les appels de fonctions"
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr "Sauvegarder les registres autour des appels de fonction"
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr "Vérifier la valeur retournée de new"
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "Générer le code pour un DLL"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr "--classpath=<chemin>\tfixer le chemin des classes"
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr "Ne pas placer de globaux non initialisés dans la section commune"
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr "Permettre les arguments de l'opérateur « ? » d'avoir différents types"
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr "Réduire la taille des fichiers objets"
-#: options.c:1498
+#: options.c:1501
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Rendre les chaînes de mots \"const char[]\" et non pas \"char[]\""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr "-fconst-string-class=<nom>\tutiliser la classe <nom> pour la chaînes de constantes"
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr "Effectuer la passe d'optimisation de la propagation-de-copie par registre"
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr "Exécuter des optimisations de sauts croisés"
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr "Lorsque CSE s'exécute, suivre les sauts vers leurs cibles"
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr "Lorsque CSE s'exécute, suivre les sauts considitionnels vers leurs cibles"
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
msgid "Place data items into their own section"
msgstr "placer les items des données dans leur propre section"
-#: options.c:1519
+#: options.c:1525
msgid "Inline member functions by default"
msgstr "Rendre enligne un membre de fonction par défaut"
-#: options.c:1522
+#: options.c:1528
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"
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr "Tented de remplir de délais les fentes des instructions de branchement"
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr "Détruire les vérifications de pointeurs nul inutiles"
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr "-fdiagnostics-show-location=[once|every-line]\tindiquer combien de fois les informations de localisation des sources doivent être produites au début d'un diagnostique lorsque les lignes doivent s'enrouler"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
msgid "Permit '$' as an identifier character"
msgstr "Autoriser '$' comme identificateur de caractère"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr "-fdump-<type>\tvidander les divers internes du compilateur dans un fichier"
-#: options.c:1549
+#: options.c:1555
#, fuzzy
msgid "Display the code tree after parsing."
msgstr "Afficher la version du compilateur"
-#: options.c:1552
+#: options.c:1558
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"
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr "Exécuter une élimination DAWRF2 des doublons"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr "Effectuer l'élimination des types non utilisés dans l'information de mise au point"
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr "--encoding=<encodage>\tchoisir l'encodade d'entrée (par défaut provient de la locale)"
-#: options.c:1582
+#: options.c:1588
msgid "Generate code to check exception specifications"
msgstr "Générer le code pour vérifier les exceptions de spécifications"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Autoriser le traitement des exceptions"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr "-fexec-charset=<jeucar>\tconvertir toutes les chaînes et les constantes de caractères en jeu de caractères <jeucar>"
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr "Effectuer un nombre mineur d'optimisations coûteuses"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
#, fuzzy
msgid "Input file is a file with a list of filenames to compile"
msgstr "fichier d'entrée est listé dans les noms de fichiers à compiler"
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr "Assumer qu'aucun NaNs ou infinités ne soit généré"
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr "-ffixed-<registre>\tmarquer le <registre> comme n'étant plus disponible pour le compilateur"
-#: options.c:1615
+#: options.c:1621
#, fuzzy
msgid "Assume that the source file is fixed form"
msgstr "Présumer que les pointeurs ne peuvent pas être aliasés"
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
#, fuzzy
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr "Contrôle l'ordre d'allocation des registres entier"
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr "Étendue des variables for-init-statement est local à la boucle"
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr "Copier les constantes d'adresses mémoire dans les registres avant de les utiliser"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr "Toujours vérifier dans les archives de classes non générées gcj"
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr "Copier les opérandes mémoire dans les registres avant de les utiliser"
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr "Ne pas assumer que les bibliothèques standards C et \"main\" existent"
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr "Autoriser le maintien des adresses de fonction dans les registres"
-#: options.c:1648
+#: options.c:1654
msgid "Place each function into its own section"
msgstr "placer chaque fonction dans sa propre section"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr "Exécuter l'élimination de sous-expression commune globale"
-#: options.c:1654
+#: options.c:1660
#, fuzzy
msgid "Perform global common subexpression elimination after register allocation"
msgstr "Exécuter l'élimination de sous-expression commune globale"
-#: options.c:1657
+#: options.c:1663
#, fuzzy
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr "Exécuter un stockage redondant après l'élimination de sous-expression commune globale"
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "Exécuter un chargement amélioré lors de l'élimination de sous-expression commune globale"
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr "Exécuter un stockage après l'élimination de sous-expression commune globale"
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr "Reconnaître les mots clés définis GNU"
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr "Générer du code pour l'environnement GNU d'exécution"
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr "Autoriser l'estimation des probabilités de branchement"
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr "Présumer que l'environnement d'exécution C est normal"
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr "Autoriser le support des grands objets"
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "Traiter les directive #ident"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr "Exécuter la conversion des sauts conditionels à des équivalents sans branchements"
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "Exécuter la conversion des sauts conditionnels à une exécution conditionnel"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr "Exporter les fonctions même si elles peuvent être enligne"
-#: options.c:1705
+#: options.c:1711
msgid "Emit implicit instantiations of inline templates"
msgstr "Produire les instanciations explicites de patron enligne"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
msgid "Emit implicit instantiations of templates"
msgstr "Produire les instanciations explicites de patron"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr "Utiliser des tables de décalage pour les appels de méthodes virtuelles"
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr "Ne pas générer de directives .size"
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr "Porter attention au mot clé \"inline\""
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr "-finline-limit=<nombre>\tlimiter la taille des fonction enligne à <nombre>"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr "-finput-charset=<jeucar> spécifier le jeu de caractères par défaut pour les fichiers source"
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr "Traiter les entrées et les sorties des fonctions avec appels de profilage"
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr "Présumer que les fonctions natives sont implantées et qu'elles utilisent JNI"
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr "Générer le code pour les fonctions même si elles sont complètement enligne"
-#: options.c:1747
+#: options.c:1753
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"
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr "Afficher les symboles externes préfixés d'un caractère de soulignement"
-#: options.c:1756
+#: options.c:1762
msgid "Perform loop optimizations"
msgstr "Exécuter l'optimisation des boucles"
-#: options.c:1759
+#: options.c:1765
#, fuzzy
msgid "Perform loop optimizations using the new loop optimizer"
msgstr "Exécuter l'optimisation des boucles"
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr "Initialiser errno après les fonctions internes mathématiques"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr "Rapporter l'allocation de mémoire permanente"
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr "Tentative de fusion de constantes identique et des variables constantes"
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr "Tentative de fusion de constantes identiques à travers des unités de compilation"
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr "-fmessage-length=<nombre>\tlimiter la longueur des diagnotiques à <nombre> de caractères par ligne. 0 supprime l'enroulement de ligne"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
#, fuzzy
msgid "Move loop invariant computations out of loops"
msgstr "Forcer pour toutes les boucles des calculs invariants en dehors des boucles"
-#: options.c:1792
+#: options.c:1798
msgid "Don't warn about uses of Microsoft extensions"
msgstr "Ne donner d'avertissement au sujet de l'utilisation des extensions de Microsoft"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr "Utiliser l'allocation des registres par coloriage de graphe"
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr "Générer le code pour l'environnement d'exécution du NeXT (Apple Mac OS X)"
@@ -22315,319 +22445,324 @@ msgstr "Activer les optimisations par l'éditeur de liens"
#: options.c:2161
#, fuzzy
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr "-fsched-verbose=<numéro>\tnitialiser le niveau de verbosité de l'ordonnanceur"
+
+#: options.c:2164
+#, fuzzy
msgid "Append underscores to externally visible names"
msgstr "Ajouter des caractères de soulignement aux externes"
-#: options.c:2164
+#: options.c:2167
msgid "Compile whole compilation unit at a time"
msgstr "Compiler complètement à la fois une unité de compilation"
-#: options.c:2167
+#: options.c:2170
msgid "Perform loop unrolling for all loops"
msgstr "Exécuter la boucle par désenroulement de toutes les boucles"
-#: options.c:2170
+#: options.c:2173
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"
-#: options.c:2173
+#: options.c:2176
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr "Permettre les optimisations mathématiques qui peuvent violer les standards IEEE ou ISO"
-#: options.c:2176
+#: options.c:2179
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr "Lorsque \"signed\" ou \"unsigned\" n'est pas fourni rendre le champ de bits non signé"
-#: options.c:2179
+#: options.c:2182
msgid "Make \"char\" unsigned by default"
msgstr "Rendre les \"char\" non signés par défaut"
-#: options.c:2182
+#: options.c:2185
msgid "Perform loop unswitching"
msgstr "Exécuter des boucles sans branchement"
-#: options.c:2185
+#: options.c:2188
msgid "Just generate unwind tables for exception handling"
msgstr "Générer simplement des tables étendues pour le traitement des exceptions"
-#: options.c:2188
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Générer le code pour Boehm GC"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr "Utiliser « __cxa_atexit » pour enregistrer les destructeurs."
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
#, fuzzy
msgid "Perform variable tracking"
msgstr "Effectuer une optimisation sur mesure des appels"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr "Ajouter des commentaires additionnels à la sortie de l'assembleur"
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr "Utiliser le profile de la valeur d'expression dans l'optimisation"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr "Écarter les fonctions virtuelles non utilisées"
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr "Implanter les vtables en utilisant des thunks"
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr "Produire les symboles communs comme des symboles faibles"
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr "Construire une toile et séparer les utilisations de variables simples"
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr "-fwide-exec-charset=<cset>\tconvertir toutes les chaînes et les constantes larges de caractères en jeux de caractères <cset>"
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr "Générer une directive #line pointant sur le répertoire courant de travail"
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr "Assumer un débordement arithmétique signé enroulé"
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr "Produire l'information des références croisées"
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr "Placer des données initialisées de zéros dans la section bss"
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr "Générer un recherche molle de class (via objc_getClass()) pour l'utilisation en mode Zero-Link"
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr "Générer les informations de mise au point dans le format par défaut"
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr "Générer les informations de mise au point dans le format COFF"
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr "Générer les informations de mise au point dans le format DWARF v2"
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr "Vidanger les déclarations dans un fichier .decl"
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr "Générer les informations de mise au point dans le format étendu par défaut"
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr "Générer les informations de mise au point dans le format STABS"
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr "Générer les informations de mise au point dans le format étendu STABS"
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr "Générer les informations de mise au point dans le format VMS"
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr "Générer les information de mise au point dans le format XCOFF"
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr "Générer les informations de mise au point dans le format étendu XCOFF"
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr "-idirafter <répertoire>\tajouter <répertoire> à la fin du chemin système d'inclusion"
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr "-imacros <fichier>\taccepter la définition de macros dans le <fichier>"
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr "-include <fichier>\tinclure le contenu du <fichier> avant les autres fichiers"
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr "-iprefix <chemin>\tsélectionner le <chemin> comme préfixer aux deux prochaines options"
-#: options.c:2290
+#: options.c:2293
#, fuzzy
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr "-idirafter <répertoire>\tajouter <répertoire> à la fin du chemin système d'inclusion"
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr "-isysroot <répertoire>\tsélectionner le <répertoire> comme répertoire racine du système"
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr "-isystem <répertoire>\tajouter le <répertoire> au début du chemin d'inclusion principal"
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr "-iwithprefix <répertoire>\tajouter le <répertoire> à la fin du chemin d'inclusion principal"
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr "-iwithprefixbefore <répertoire>\tajouter le <répertoire> à la fin du chemin d'inclusion principal"
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr "Ne pas rechercher les répertoires standard système d'inclusion (ceux spécifiés avec -isystem seront encore utilisés)"
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr "Ne pas rechercher les répertoires standard système d'inclusion pour C++"
-#: options.c:2320
+#: options.c:2323
msgid "-o <file>\tPlace output into <file>"
msgstr "-o <fichier>\tproduire la sortie dans le <fichier>"
-#: options.c:2323
+#: options.c:2326
msgid "Enable function profiling"
msgstr "Autoriser le profilage de fonction"
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr "Émettre les avertissements nécessaires pour être conforme au standard"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr "Identique à -pedantic mais les marque comme des erreurs"
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr "Générer les en-têtes C pour les options spécifiques à la plate-forme"
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr "Ne pas afficher les fonctions compilées ou le temps écoulé"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
msgid "Remap file names when including files"
msgstr "Rampper les noms lors de l'inclusion des fichiers"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr "Conforme au standard ISO C++ de 1998"
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr "Conforme au standard ISO C de 1990"
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr "Conforme au standard ISO C de 1999"
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr "Obsolète à la faveur de l'option -std=c99"
-#: options.c:2359
+#: options.c:2362
#, fuzzy
msgid "Conform to the ISO Fortran 2003 standard."
msgstr "Conforme au standard ISO C de 1999"
-#: options.c:2362
+#: options.c:2365
#, fuzzy
msgid "Conform to the ISO Fortran 95 standard."
msgstr "Conforme au standard ISO C de 1999"
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr "Conforme au standard ISO C++ de 1998 avec les extensions de GNU"
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr "Conforme au standard ISO C de 1990 avec les extensions de GNU"
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr "Conforme au standard ISO C de 1999 avec les extensions de GNU"
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr "Obsolète à la faveur de l'option -std=gnu99"
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr "Obsolète à la faveur de l'option -std=c89"
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr "Conforme au standard ISO C de 1990 tel amendé en 1994"
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr "Autoriser le traitement traditionnel"
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr "-trigraphs\tSupporter les tri-graphes ISO C"
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr "Ne pas prédéfinir les macros spécifiques au système ou à GCC"
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr "Autoriser le mode bavard sur la sortie"
-#: options.c:2407
+#: options.c:2410
msgid "Suppress warnings"
msgstr "Supprimer les avertissements"
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "ne peut utiliser ensemble -EB et -EL"
@@ -22645,35 +22780,35 @@ msgstr "-mhard-float n'est pas supporté"
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float et -msoft-float ne peuvent être spécifiés ensembles"
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr "-current_version permis seulement avec -dynamiclib"
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr "-install_name permis seulement avec with -dynamiclib"
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr "-bundle n'est pas permis avec -dynamiclib"
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "-bundle_loader n'est pas permis avec -dynamiclib"
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr "-client_name n'est pas permis avec -dynamiclib"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr "-force_flat_namespace n'est pas permis avec -dynamiclib"
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr "-keep_private_externs n'est pas permis avec -dynamiclib"
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-private_bundle n'est pas permis avec -dynamiclib"
@@ -22701,29 +22836,21 @@ msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only"
msgid "shared and mdll are not compatible"
msgstr "shared et mdll ne sont pas compatibles"
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "expression limitant la pile n'est pas supportée"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr "ne peut utiliser ensemble -m32 et -m64"
-#: treelang/lang-specs.h:52
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg et -p et -fomit-frame-pointer sont incompatibles"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg et -fomit-frame-pointer sont incompatibles"
-
#: config/vax/netbsd-elf.h:42
msgid "The -shared option is not currently supported for VAX ELF."
msgstr "L'option -shared n'est pas couramment supportée pour VAS ELF."
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "expression limitant la pile n'est pas supportée"
-
#: 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"
@@ -22748,11 +22875,15 @@ msgstr "mno-cygwin et mno-win32 ne sont pas compatibles"
msgid "the m210 does not have little endian support"
msgstr "Le m210 ne supporte pas le code pour système à octets de poids faible"
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr "GCC ne supporte pas -C ou -CC sans utiliser -E"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg et -fomit-frame-pointer sont incompatibles"
+
+#: gcc.c:957
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"
@@ -22769,10 +22900,14 @@ msgstr ""
msgid "does not support multilib"
msgstr "ne supporte pas multilib"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr " code de génération de style de switches utilisées est en conflit"
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg et -p et -fomit-frame-pointer sont incompatibles"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr "-c ou -S requis pour Ada"
@@ -22945,6 +23080,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "%s format, %s arg (arg %d)"
#~ msgstr "format %s, arg %s (arg %d)"
+#~ msgid "%Jfunction '%F' can never be inlined because it has pending sizes"
+#~ msgstr "%Jfonction « %F » ne jamais être enlignée parce qu'elle a des tailles en attente"
+
+#~ msgid "%Jnested function '%F' can never be inlined because it has possibly saved pending sizes"
+#~ msgstr "%Jfonction imbriqué « %F » ne peut jamais être enlignée parce qu'ella possiblement sauvegardé des tailles en attente"
+
#~ msgid "YYDEBUG not defined"
#~ msgstr "YYDEBUG n'est pas défini"
@@ -23044,6 +23185,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "initialization"
#~ msgstr "initialisation"
+#~ msgid "initialization designators may not nest"
+#~ msgstr "l'initialisation des désignateurs ne doit pas être imbriquée"
+
#~ msgid "asm template is not a string constant"
#~ msgstr "le patron asm n'est pas une chaîne de constante"
@@ -23434,9 +23578,6 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "#pragma %s %s is already registered"
#~ msgstr "la #pragma %s %s est déjà enregistrée"
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "la #pragma %s est déjà enregistrée"
-
# FIXME
#~ msgid "#pragma once in main file"
#~ msgstr "#pragma once utilisée une seule fois dans le fichier principal"
@@ -23458,9 +23599,6 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "current file is older than %s"
#~ msgstr "le fichier courant est plus vieux que %s"
-#~ msgid "_Pragma takes a parenthesized string literal"
-#~ msgstr "_Pragma prend une chaîne entourée de parenthèrese"
-
#~ msgid "#else without #if"
#~ msgstr "#else sans #if"
@@ -23580,6 +23718,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "syntax error in macro parameter list"
#~ msgstr "erreur de syntaxe dans la liste de paramètres macro"
+#~ 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 un registre matériel"
+
+#~ 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 un registre matériel"
+
#~ msgid "function using short complex types cannot be inline"
#~ msgstr "un foncton utilisant un type « complex short » ne peut être enligne"
@@ -23674,6 +23818,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "%s: internal abort\n"
#~ msgstr "%s: abandon interne\n"
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "N'a pas repéré une coloration.\n"
+
#~ msgid "jump to `%s' invalidly jumps into binding contour"
#~ msgstr "saut vers « %s » saute de manière invalide dans un contour de liaison"
@@ -23698,6 +23845,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "%Jfunction '%F' can never be inlined because it contains a nested function"
#~ msgstr "%Jfonction « %F » ne peut être enligne parce qu'elle contient une fonction imbriquée"
+#~ msgid "unknown set constructor type"
+#~ msgstr "type de jeu de constructeurs inconnu"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "Le nombre maximum d'instructions pour la fonction d'enlignage RTL"
+
#~ msgid "-msystem-v and -p are incompatible"
#~ msgstr "-msystem-v et -p sont incompatibles"
@@ -23731,6 +23884,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "Use library calls to perform FP operations"
#~ msgstr "Utiliser les appels de bibliothèque pour exécuter les opérations FP"
+#~ msgid "unexpected address expression"
+#~ msgstr "expression d'adresse inattendue"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "NOTE inattendu comme addr_conts:"
+
#~ 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"
@@ -23896,6 +24055,9 @@ msgstr "-c ou -S requis pour Ada"
#~ 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)"
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "insn erroné pour frv_print_operand, modificateur « c »:"
+
#~ msgid "frv_registers_update"
#~ msgstr "frv_registers_update"
@@ -24013,6 +24175,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "Do not enable linker relaxation"
#~ msgstr "Ne pas autoriser la relâche par l'éditeur de liens"
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Produire du code pour le processeur B Itanium (TM)"
+
#~ msgid "-malign-loops=%d is not between 1 and %d"
#~ msgstr "-malign-loops=%d n'est pas entre 1 et %d"
@@ -24049,6 +24214,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "can't close temp file: %m"
#~ msgstr "ne peut fermer le fichier temporaire: %m"
+#~ msgid "Same as -mabi=32, just trickier"
+#~ msgstr "Identique à -mabi=32, juste plus complexe"
+
#~ msgid "Use MIPS as"
#~ msgstr "Utiliser MIPS tel que"
@@ -24067,6 +24235,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "Don't use embedded PIC"
#~ msgstr "Ne pas utiliser le code PIC enchâssé"
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Toujours passer des arguments en virgule flottante en mémoire"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Na pas toujours passer des arguments en virgule flottante en mémoire"
+
#~ msgid "invalid UNSPEC as operand (1)"
#~ msgstr "UNSPEC invalide comme opérande (1)"
@@ -24106,6 +24280,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "Optimize for SuperSPARC processors"
#~ msgstr "Optimiser pour les processeurs SuperSPARC"
+#~ 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"
+
#~ msgid "label `%s' referenced outside of any function"
#~ msgstr "étiquette « %s » référencée à l'extérieur de n'importe quelle fonction"
@@ -24133,6 +24310,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "return value type specifier for constructor ignored"
#~ msgstr "type de valeur retournée d'un spécificateur pour un constructeur est ignoré"
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "%Jqualificateur de type invalide pour un type de fonction non membre"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "fonction « %D » ne peut être déclarée amie"
+
#~ 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"
@@ -24148,6 +24331,12 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "`%D' implicitly declared before its definition"
#~ msgstr "« %D » implicitement déclaré avant sa définition"
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "initialisation spécifiée pour une fonction « %D » n'étant pas membre"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "initialisation invalide pour la méthode virtuelle « %D »"
+
#~ msgid "typename type `%#T' declared `friend'"
#~ msgstr "type typename « %#T» déclaré «friend »"
@@ -24193,6 +24382,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "`%s' is not a template"
#~ msgstr "« %s » n'est pas un patron"
+#~ msgid "expected type-name"
+#~ msgstr "un nom de type attendu"
+
#~ msgid "extra semicolon"
#~ msgstr "« ; » superflu"
@@ -24202,6 +24394,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "partial specialization `%D' of function template"
#~ msgstr "spécialisation partielle « %D » du patron de fonction"
+#~ 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 »"
+
#~ msgid "it must be the address of a function with external linkage"
#~ msgstr "il doit être l'adresse d'une fonction avec lien externe"
@@ -24226,6 +24421,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "invalid use of '%E' as a non-type template-argument"
#~ msgstr "utilisation invalide de « %E » pour un non type de paramètre de patron"
+#~ msgid "non-template used as template"
+#~ msgstr "non patron utilisé comme patron"
+
#~ msgid "use of `%s' in template type unification"
#~ msgstr "utilisation de « %s » dans le patron du type d'unification"
@@ -24247,6 +24445,12 @@ msgstr "-c ou -S requis pour Ada"
#~ 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 membre gauche"
+#~ msgid "passing `%T' for %s %P of `%D'"
+#~ msgstr "passage « %T » pour %s %P de « %D »"
+
+#~ msgid "%s to `%T' from `%T'"
+#~ msgstr "%s vers « %T » à partir de « %T »"
+
#~ 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"
@@ -25038,6 +25242,9 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "Integrate simple functions into their callers"
#~ msgstr "Intégrer les fonctions simples à l'intérieur des appelants"
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Utiliser l'allocation des registres par coloriage de graphe"
+
#~ msgid "Store strings in writable data section"
#~ msgstr "Stocker les chaînes dans les sections d'écriture des données"
@@ -26347,9 +26554,6 @@ msgstr "-c ou -S requis pour Ada"
#~ 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 »)"
-#~ msgid "`%D' is a namespace"
-#~ msgstr "« %D » est un nom d'espace"
-
#~ 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 »"
@@ -26491,9 +26695,6 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "semicolon missing after %s declaration"
#~ msgstr "«;» manquant après la déclaration de %s"
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "«;» manquant après la déclaration « %T »"
-
#~ msgid "`::%D' undeclared (first use here)"
#~ msgstr "«::%D» non déclaré (première utilisation ici)"
@@ -27483,9 +27684,6 @@ msgstr "-c ou -S requis pour Ada"
#~ 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"
@@ -27516,9 +27714,6 @@ msgstr "-c ou -S requis pour Ada"
#~ 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 »"
@@ -27696,9 +27891,6 @@ msgstr "-c ou -S requis pour Ada"
#~ msgid "incompatible modes in %s"
#~ msgstr "modes incompatibles dans %s"
-#~ msgid "bad string length in %s"
-#~ msgstr "chaîne de longueur erronée dans %s"
-
#~ msgid "mode mismatch in %s expression"
#~ msgstr "non concordance de mode dans l'expression %s"
diff --git a/gcc/po/gcc.pot b/gcc/po/gcc.pot
index d3b96a32764..1267152b26a 100644
--- a/gcc/po/gcc.pot
+++ b/gcc/po/gcc.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-04-20 21:41-0700\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"
@@ -40,550 +40,559 @@ msgstr ""
msgid "offset outside bounds of constant string"
msgstr ""
-#: builtins.c:923
+#: builtins.c:928
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr ""
-#: builtins.c:930
+#: builtins.c:935
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr ""
-#: builtins.c:938
+#: builtins.c:943
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr ""
-#: builtins.c:945
+#: builtins.c:950
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr ""
-#: builtins.c:3727
+#: builtins.c:3802
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr ""
-#: builtins.c:3733
+#: builtins.c:3808
msgid "argument of %<__builtin_args_info%> out of range"
msgstr ""
-#: builtins.c:3739
+#: builtins.c:3814
msgid "missing argument in %<__builtin_args_info%>"
msgstr ""
-#: builtins.c:3755 builtins.c:8661
-msgid "%<va_start%> used in function with fixed args"
-msgstr ""
-
-#: builtins.c:3774 builtins.c:8677
-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:3779 builtins.c:8683
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr ""
-
-#: builtins.c:3865
+#: builtins.c:3910 gimplify.c:1765
msgid "too few arguments to function %<va_start%>"
msgstr ""
-#: builtins.c:3869
-msgid "too many arguments to function %<va_start%>"
-msgstr ""
-
-#: builtins.c:4017
+#: builtins.c:4073
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:4031
+#: builtins.c:4087
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr ""
-#: builtins.c:4036
+#: builtins.c:4092
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr ""
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4098 c-typeck.c:2025
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4216
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4162
+#: builtins.c:4218
msgid "invalid argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4176
+#: builtins.c:4231
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4178
+#: builtins.c:4233
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4281
+#: builtins.c:4336
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr ""
-#: builtins.c:5488
+#: builtins.c:5586
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr ""
-#: builtins.c:5840
+#: builtins.c:5938
msgid "target format does not support infinity"
msgstr ""
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7695 builtins.c:7790
#, c-format
msgid "too few arguments to function %qs"
msgstr ""
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7701 builtins.c:7796
#, c-format
msgid "too many arguments to function %qs"
msgstr ""
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7707 builtins.c:7821
#, c-format
msgid "non-floating-point argument to function %qs"
msgstr ""
-#: c-common.c:831
+#: builtins.c:8907
+msgid "%<va_start%> used in function with fixed args"
+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:8914
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr ""
+
+#: builtins.c:8929
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8949
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr ""
+
+#: c-common.c:826
msgid "%qD is not defined outside of function scope"
msgstr ""
-#: c-common.c:852
+#: c-common.c:847
#, c-format
msgid ""
"string length %qd is greater than the length %qd ISO C%d compilers are "
"required to support"
msgstr ""
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr ""
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr ""
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr ""
-#: c-common.c:933
+#: c-common.c:923
msgid "vector overflow in expression"
msgstr ""
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr ""
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr ""
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr ""
-#: c-common.c:1151
+#: c-common.c:1141
#, c-format
msgid "operation on %qs may be undefined"
msgstr ""
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr ""
-#: c-common.c:1480
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
msgstr ""
-#: c-common.c:1488
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
msgstr ""
-#: c-common.c:1496
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
msgstr ""
-#: c-common.c:1505
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
msgstr ""
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr ""
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr ""
-#: c-common.c:2112
+#: c-common.c:2116
msgid "comparison is always false due to limited range of data type"
msgstr ""
-#: c-common.c:2114
+#: c-common.c:2118
msgid "comparison is always true due to limited range of data type"
msgstr ""
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr ""
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr ""
-#: c-common.c:2235
+#: c-common.c:2239
msgid "pointer of type %<void *%> used in arithmetic"
msgstr ""
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr ""
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr ""
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2375
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr ""
-#: c-common.c:2451
+#: c-common.c:2471
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2539 c-common.c:2579
msgid "invalid use of %<restrict%>"
msgstr ""
-#: c-common.c:2756
+#: c-common.c:2795
msgid "invalid application of %<sizeof%> to a function type"
msgstr ""
-#: c-common.c:2766
+#: c-common.c:2805
#, c-format
msgid "invalid application of %qs to a void type"
msgstr ""
-#: c-common.c:2772
+#: c-common.c:2811
msgid "invalid application of %qs to incomplete type %qT "
msgstr ""
-#: c-common.c:2813
+#: c-common.c:2852
msgid "%<__alignof%> applied to a bit-field"
msgstr ""
-#: c-common.c:3258
+#: c-common.c:3319
#, c-format
msgid "cannot disable built-in function %qs"
msgstr ""
-#: c-common.c:3448
+#: c-common.c:3509
msgid "pointers are not permitted as case values"
msgstr ""
-#: c-common.c:3452
+#: c-common.c:3513
msgid "range expressions in switch statements are non-standard"
msgstr ""
-#: c-common.c:3477
+#: c-common.c:3538
msgid "empty range specified"
msgstr ""
-#: c-common.c:3536
+#: c-common.c:3597
msgid "duplicate (or overlapping) case value"
msgstr ""
-#: c-common.c:3537
+#: c-common.c:3598
msgid "%Jthis is the first entry overlapping that value"
msgstr ""
-#: c-common.c:3541
+#: c-common.c:3602
msgid "duplicate case value"
msgstr ""
-#: c-common.c:3542
+#: c-common.c:3603
msgid "%Jpreviously used here"
msgstr ""
-#: c-common.c:3546
+#: c-common.c:3607
msgid "multiple default labels in one switch"
msgstr ""
-#: c-common.c:3547
+#: c-common.c:3608
msgid "%Jthis is the first default label"
msgstr ""
-#: c-common.c:3596
+#: c-common.c:3657
msgid "%Jcase value %qs not in enumerated type"
msgstr ""
-#: c-common.c:3599
+#: c-common.c:3660
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr ""
-#: c-common.c:3666
+#: c-common.c:3727
msgid "%Hswitch missing default case"
msgstr ""
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3761
msgid "%Henumeration value %qE not handled in switch"
msgstr ""
-#: c-common.c:3727
+#: c-common.c:3788
msgid "taking the address of a label is non-standard"
msgstr ""
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3957 c-common.c:3976 c-common.c:3994 c-common.c:4021
+#: c-common.c:4040 c-common.c:4063 c-common.c:4087 c-common.c:4113
+#: c-common.c:4147 c-common.c:4191 c-common.c:4219 c-common.c:4247
+#: c-common.c:4266 c-common.c:4597 c-common.c:4628 c-common.c:4720
+#: c-common.c:4787 c-common.c:4833 c-common.c:4891 c-common.c:4920
+#: c-common.c:5199 c-common.c:5222 c-common.c:5261 tree.c:3258
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4657 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15694 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, c-format
msgid "%qs attribute ignored"
msgstr ""
-#: c-common.c:4243
+#: c-common.c:4304
#, c-format
msgid "unknown machine mode %qs"
msgstr ""
-#: c-common.c:4263
+#: c-common.c:4324
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4326
msgid "use __attribute__ ((vector_size)) instead"
msgstr ""
-#: c-common.c:4274
+#: c-common.c:4335
#, c-format
msgid "unable to emulate %qs"
msgstr ""
-#: c-common.c:4284
+#: c-common.c:4345
#, c-format
msgid "invalid pointer mode %qs"
msgstr ""
-#: c-common.c:4299
+#: c-common.c:4360
#, c-format
msgid "no data type for mode %qs"
msgstr ""
-#: c-common.c:4309
+#: c-common.c:4370
#, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr ""
-#: c-common.c:4322
+#: c-common.c:4394
#, c-format
msgid "mode %qs applied to inappropriate type"
msgstr ""
-#: c-common.c:4355
+#: c-common.c:4425
msgid "%Jsection attribute cannot be specified for local variables"
msgstr ""
-#: c-common.c:4366
+#: c-common.c:4436
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr ""
-#: c-common.c:4375
+#: c-common.c:4445
msgid "%Jsection attribute not allowed for %qD"
msgstr ""
-#: c-common.c:4381
+#: c-common.c:4451
msgid "%Jsection attributes are not supported for this target"
msgstr ""
-#: c-common.c:4419
+#: c-common.c:4489
msgid "requested alignment is not a constant"
msgstr ""
-#: c-common.c:4424
+#: c-common.c:4494
msgid "requested alignment is not a power of 2"
msgstr ""
-#: c-common.c:4429
+#: c-common.c:4499
msgid "requested alignment is too large"
msgstr ""
-#: c-common.c:4455
+#: c-common.c:4525
msgid "%Jalignment may not be specified for %qD"
msgstr ""
-#: c-common.c:4493
+#: c-common.c:4563
msgid "%J%qD defined both normally and as an alias"
msgstr ""
-#: c-common.c:4509
+#: c-common.c:4579
msgid "alias argument not a string"
msgstr ""
-#: c-common.c:4551
+#: c-common.c:4621
#, c-format
msgid "%qs attribute ignored on non-class types"
msgstr ""
-#: c-common.c:4564
+#: c-common.c:4634
msgid "visibility argument not a string"
msgstr ""
-#: c-common.c:4585
+#: c-common.c:4646
+#, c-format
+msgid "%qE attribute ignored on types"
+msgstr ""
+
+#: c-common.c:4661
msgid ""
"visibility argument must be one of \"default\", \"hidden\", \"protected\" or "
"\"internal\""
msgstr ""
-#: c-common.c:4654
+#: c-common.c:4730
msgid "tls_model argument not a string"
msgstr ""
-#: c-common.c:4663
+#: c-common.c:4739
msgid ""
"tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-"
"dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-common.c:4685 c-common.c:4731
+#: c-common.c:4761 c-common.c:4807
msgid "%J%qE attribute applies only to functions"
msgstr ""
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4766 c-common.c:4812
msgid "%Jcan%'t set %qE attribute after definition"
msgstr ""
-#: c-common.c:4812
+#: c-common.c:4888
#, c-format
msgid "%qs attribute ignored for %qs"
msgstr ""
-#: c-common.c:4873
+#: c-common.c:4949
#, c-format
msgid "invalid vector type for attribute %qs"
msgstr ""
-#: c-common.c:4882
+#: c-common.c:4958
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4986
msgid "nonnull attribute without arguments on a non-prototype"
msgstr ""
-#: c-common.c:4925
+#: c-common.c:5001
#, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr ""
-#: c-common.c:4944
+#: c-common.c:5020
#, c-format
msgid ""
"nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:4952
+#: c-common.c:5028
#, c-format
msgid ""
"nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5083 c-common.c:5120
msgid "missing sentinel in function call"
msgstr ""
-#: c-common.c:5030
+#: c-common.c:5106
msgid "not enough arguments to fit a sentinel"
msgstr ""
-#: c-common.c:5086
+#: c-common.c:5162
#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr ""
-#: c-common.c:5157
+#: c-common.c:5233
msgid "cleanup argument not an identifier"
msgstr ""
-#: c-common.c:5164
+#: c-common.c:5240
msgid "cleanup argument not a function"
msgstr ""
-#: c-common.c:5202
+#: c-common.c:5278
#, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: c-common.c:5213
+#: c-common.c:5289
#, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr ""
-#: c-common.c:5226
+#: c-common.c:5302
msgid "requested position is not an integer constant"
msgstr ""
-#: c-common.c:5233
+#: c-common.c:5309
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5615
msgid ""
"%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5543
+#: c-common.c:5619
msgid ""
"%Hignoring return value of function declared with attribute "
"warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5679
#, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr ""
-#: c-common.c:5634
+#: c-common.c:5731
msgid "invalid lvalue in assignment"
msgstr ""
-#: c-common.c:5637
+#: c-common.c:5734
msgid "invalid lvalue in increment"
msgstr ""
-#: c-common.c:5640
+#: c-common.c:5737
msgid "invalid lvalue in decrement"
msgstr ""
-#: c-common.c:5643
+#: c-common.c:5740
msgid "invalid lvalue in unary %<&%>"
msgstr ""
-#: c-common.c:5646
+#: c-common.c:5743
msgid "invalid lvalue in asm statement"
msgstr ""
@@ -592,346 +601,354 @@ msgstr ""
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1432 c-typeck.c:3528 cp/typeck.c:1367
+#: cp/typeck.c:5829 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr ""
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr ""
-#: c-decl.c:524
+#: c-decl.c:530
msgid "%Jarray %qD assumed to have one element"
msgstr ""
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
msgid "%Jlabel %qD used but not defined"
msgstr ""
-#: c-decl.c:727
+#: c-decl.c:733
msgid "%Jlabel %qD defined but not used"
msgstr ""
-#: c-decl.c:729
+#: c-decl.c:735
msgid "%Jlabel %qD declared but not defined"
msgstr ""
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+msgid "%Jnested function %qD declared but never defined"
+msgstr ""
+
+#: c-decl.c:784 cp/decl.c:568
msgid "%Junused variable %qD"
msgstr ""
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
msgid ""
"a parameter list with an ellipsis can%'t match an empty parameter name list "
"declaration"
msgstr ""
-#: c-decl.c:1015
+#: c-decl.c:1029
msgid ""
"an argument type that has a default promotion can%'t match an empty "
"parameter name list declaration"
msgstr ""
-#: c-decl.c:1051
+#: c-decl.c:1064
msgid ""
"%Jprototype for %qD declares more arguments than previous old-style "
"definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1070
msgid ""
"%Jprototype for %qD declares fewer arguments than previous old-style "
"definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1079
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr ""
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1092
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr ""
-#: c-decl.c:1094
+#: c-decl.c:1107
msgid "%Jprevious definition of %qD was here"
msgstr ""
-#: c-decl.c:1096
+#: c-decl.c:1109
msgid "%Jprevious implicit declaration of %qD was here"
msgstr ""
-#: c-decl.c:1098
+#: c-decl.c:1111
msgid "%Jprevious declaration of %qD was here"
msgstr ""
-#: c-decl.c:1134
+#: c-decl.c:1148
msgid "%J%qD redeclared as different kind of symbol"
msgstr ""
-#: c-decl.c:1139
+#: c-decl.c:1153
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr ""
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1156 c-decl.c:1272 c-decl.c:1878
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr ""
-#: c-decl.c:1151
+#: c-decl.c:1165
msgid "%Jredeclaration of enumerator %qD"
msgstr ""
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1186
msgid "%Jconflicting types for built-in function %qD"
msgstr ""
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1210 c-decl.c:1223 c-decl.c:1233
msgid "%Jconflicting types for %qD"
msgstr ""
-#: c-decl.c:1205
+#: c-decl.c:1231
msgid "%J conflicting type qualifiers for %qD"
msgstr ""
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1248
msgid "%Jredefinition of typedef %qD"
msgstr ""
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1290 c-decl.c:1300 c-decl.c:1313 c-decl.c:1395
msgid "%Jredefinition of %qD"
msgstr ""
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1352 c-decl.c:1433
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr ""
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1362 c-decl.c:1369 c-decl.c:1422 c-decl.c:1430
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr ""
-#: c-decl.c:1326
+#: c-decl.c:1382
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr ""
-#: c-decl.c:1329
+#: c-decl.c:1385
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr ""
-#: c-decl.c:1359
+#: c-decl.c:1415
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr ""
-#: c-decl.c:1395
+#: c-decl.c:1451
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr ""
-#: c-decl.c:1401
+#: c-decl.c:1457
msgid "%Jredeclaration of %qD with no linkage"
msgstr ""
-#: c-decl.c:1415
+#: c-decl.c:1471
msgid ""
"%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1482
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr ""
-#: c-decl.c:1433
+#: c-decl.c:1489
msgid ""
"%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr ""
-#: c-decl.c:1448
+#: c-decl.c:1504
msgid "%J%qD declared inline after being called"
msgstr ""
-#: c-decl.c:1454
+#: c-decl.c:1510
msgid "%J%qD declared inline after its definition"
msgstr ""
-#: c-decl.c:1474
+#: c-decl.c:1530
msgid "%Jredefinition of parameter %qD"
msgstr ""
-#: c-decl.c:1498
+#: c-decl.c:1554
msgid "%Jredundant redeclaration of %qD"
msgstr ""
-#: c-decl.c:1808
+#: c-decl.c:1865
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr ""
+
+#: c-decl.c:1870
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr ""
-#: c-decl.c:1811
+#: c-decl.c:1873
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr ""
-#: c-decl.c:1818
+#: c-decl.c:1883
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr ""
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1886 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr ""
-#: c-decl.c:1977
+#: c-decl.c:2040
msgid "nested extern declaration of %qD"
msgstr ""
-#: c-decl.c:2067
-msgid "nested static declaration of %qD"
-msgstr ""
-
-#: c-decl.c:2161
+#: c-decl.c:2200
#, c-format
msgid "implicit declaration of function %qE"
msgstr ""
-#: c-decl.c:2219
+#: c-decl.c:2261
msgid "incompatible implicit declaration of built-in function %qD"
msgstr ""
-#: c-decl.c:2228
+#: c-decl.c:2270
msgid "incompatible implicit declaration of function %qD"
msgstr ""
-#: c-decl.c:2281
+#: c-decl.c:2323
#, c-format
msgid "%qE undeclared here (not in a function)"
msgstr ""
-#: c-decl.c:2286
+#: c-decl.c:2328
#, c-format
msgid "%qE undeclared (first use in this function)"
msgstr ""
-#: c-decl.c:2290
+#: c-decl.c:2332
msgid "(Each undeclared identifier is reported only once"
msgstr ""
-#: c-decl.c:2291
+#: c-decl.c:2333
msgid "for each function it appears in.)"
msgstr ""
-#: c-decl.c:2329
+#: c-decl.c:2371
#, c-format
msgid "label %qs referenced outside of any function"
msgstr ""
-#: c-decl.c:2372
+#: c-decl.c:2414
#, c-format
msgid "duplicate label declaration %qs"
msgstr ""
-#: c-decl.c:2407
+#: c-decl.c:2450
msgid "%Hduplicate label %qD"
msgstr ""
-#: c-decl.c:2429
+#: c-decl.c:2460
+msgid "%Jjump into statement expression"
+msgstr ""
+
+#: c-decl.c:2474
msgid ""
"%Htraditional C lacks a separate namespace for labels, identifier %qs "
"conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2545
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2768
msgid "unnamed struct/union that defines no instances"
msgstr ""
-#: c-decl.c:2726
+#: c-decl.c:2776
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2737
+#: c-decl.c:2787
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2808 c-decl.c:2815
msgid "useless type name in empty declaration"
msgstr ""
-#: c-decl.c:2773
+#: c-decl.c:2823
msgid "%<inline%> in empty declaration"
msgstr ""
-#: c-decl.c:2779
+#: c-decl.c:2829
msgid "%<auto%> in file-scope empty declaration"
msgstr ""
-#: c-decl.c:2785
+#: c-decl.c:2835
msgid "%<register%> in file-scope empty declaration"
msgstr ""
-#: c-decl.c:2791
+#: c-decl.c:2841
msgid "useless storage class specifier in empty declaration"
msgstr ""
-#: c-decl.c:2797
+#: c-decl.c:2847
msgid "useless %<__thread%> in empty declaration"
msgstr ""
-#: c-decl.c:2805
+#: c-decl.c:2855
msgid "useless type qualifier in empty declaration"
msgstr ""
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2862 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr ""
-#: c-decl.c:2878
+#: c-decl.c:2928
msgid ""
"ISO C90 does not support %<static%> or type qualifiers in parameter array "
"declarators"
msgstr ""
-#: c-decl.c:2881
+#: c-decl.c:2931
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr ""
-#: c-decl.c:2884
+#: c-decl.c:2934
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr ""
-#: c-decl.c:2903
+#: c-decl.c:2953
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:2960
+#: c-decl.c:3012
msgid "%J%qD is usually a function"
msgstr ""
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3021 cp/decl.c:3624 cp/decl2.c:850
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr ""
-#: c-decl.c:2974
+#: c-decl.c:3026
msgid "function %qD is initialized like a variable"
msgstr ""
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3032
msgid "parameter %qD is initialized"
msgstr ""
@@ -939,465 +956,461 @@ msgstr ""
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3051 c-decl.c:3066 c-typeck.c:4382
msgid "variable-sized object may not be initialized"
msgstr ""
-#: c-decl.c:3005
+#: c-decl.c:3057
msgid "variable %qD has initializer but incomplete type"
msgstr ""
-#: c-decl.c:3010
-msgid "elements of array %qD have incomplete type"
-msgstr ""
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3133 c-decl.c:5690 cp/decl.c:3663 cp/decl.c:9883
msgid "%Jinline function %qD given attribute noinline"
msgstr ""
-#: c-decl.c:3154
+#: c-decl.c:3202
msgid "%Jinitializer fails to determine size of %qD"
msgstr ""
-#: c-decl.c:3159
+#: c-decl.c:3207
msgid "%Jarray size missing in %qD"
msgstr ""
-#: c-decl.c:3175
+#: c-decl.c:3218
msgid "%Jzero or negative size array %qD"
msgstr ""
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3247 varasm.c:1556
msgid "%Jstorage size of %qD isn%'t known"
msgstr ""
-#: c-decl.c:3211
+#: c-decl.c:3257
msgid "%Jstorage size of %qD isn%'t constant"
msgstr ""
-#: c-decl.c:3266
+#: c-decl.c:3304
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr ""
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3334 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-decl.c:3430
+#: c-decl.c:3468
msgid "ISO C forbids forward parameter declarations"
msgstr ""
-#: c-decl.c:3614
+#: c-decl.c:3588
msgid "<anonymous>"
msgstr ""
-#: c-decl.c:3623
+#: c-decl.c:3598
#, c-format
msgid "bit-field %qs width not an integer constant"
msgstr ""
-#: c-decl.c:3631
+#: c-decl.c:3606
#, c-format
msgid "negative width in bit-field %qs"
msgstr ""
-#: c-decl.c:3636
+#: c-decl.c:3611
#, c-format
msgid "zero width for bit-field %qs"
msgstr ""
-#: c-decl.c:3646
+#: c-decl.c:3621
#, c-format
msgid "bit-field %qs has invalid type"
msgstr ""
-#: c-decl.c:3655
+#: c-decl.c:3630
#, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr ""
-#: c-decl.c:3664
+#: c-decl.c:3639
#, c-format
msgid "width of %qs exceeds its type"
msgstr ""
-#: c-decl.c:3677
+#: c-decl.c:3652
#, c-format
msgid "%qs is narrower than values of its type"
msgstr ""
-#: c-decl.c:3802
+#: c-decl.c:3777
msgid "type defaults to %<int%> in declaration of %qs"
msgstr ""
-#: c-decl.c:3830
+#: c-decl.c:3805
msgid "duplicate %<const%>"
msgstr ""
-#: c-decl.c:3832
+#: c-decl.c:3807
msgid "duplicate %<restrict%>"
msgstr ""
-#: c-decl.c:3834
+#: c-decl.c:3809
msgid "duplicate %<volatile%>"
msgstr ""
-#: c-decl.c:3853
+#: c-decl.c:3828
msgid "function definition declared %<auto%>"
msgstr ""
-#: c-decl.c:3855
+#: c-decl.c:3830
msgid "function definition declared %<register%>"
msgstr ""
-#: c-decl.c:3857
+#: c-decl.c:3832
msgid "function definition declared %<typedef%>"
msgstr ""
-#: c-decl.c:3859
+#: c-decl.c:3834
msgid "function definition declared %<__thread%>"
msgstr ""
-#: c-decl.c:3875
+#: c-decl.c:3850
#, c-format
msgid "storage class specified for structure field %qs"
msgstr ""
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3854 cp/decl.c:6994
#, c-format
msgid "storage class specified for parameter %qs"
msgstr ""
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3857 cp/decl.c:6996
msgid "storage class specified for typename"
msgstr ""
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3870 cp/decl.c:7013
msgid "%qs initialized and declared %<extern%>"
msgstr ""
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3872 cp/decl.c:7016
msgid "%qs has both %<extern%> and initializer"
msgstr ""
-#: c-decl.c:3902
+#: c-decl.c:3877
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr ""
-#: c-decl.c:3904
+#: c-decl.c:3879
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr ""
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3884 cp/decl.c:7020
msgid "nested function %qs declared %<extern%>"
msgstr ""
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3887 cp/decl.c:7030
msgid "function-scope %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3934 c-decl.c:4124
msgid "static or type qualifiers in non-parameter array declarator"
msgstr ""
-#: c-decl.c:3999
+#: c-decl.c:3980
#, c-format
msgid "declaration of %qs as array of voids"
msgstr ""
-#: c-decl.c:4005
+#: c-decl.c:3986
#, c-format
msgid "declaration of %qs as array of functions"
msgstr ""
-#: c-decl.c:4010
+#: c-decl.c:3991
msgid "invalid use of structure with flexible array member"
msgstr ""
-#: c-decl.c:4030
+#: c-decl.c:4011
#, c-format
msgid "size of array %qs has non-integer type"
msgstr ""
-#: c-decl.c:4035
+#: c-decl.c:4016
#, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr ""
-#: c-decl.c:4042
+#: c-decl.c:4023
#, c-format
msgid "size of array %qs is negative"
msgstr ""
-#: c-decl.c:4056
+#: c-decl.c:4037
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr ""
-#: c-decl.c:4060
+#: c-decl.c:4041
#, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr ""
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4080 c-decl.c:4244 cp/decl.c:7451
#, c-format
msgid "size of array %qs is too large"
msgstr ""
-#: c-decl.c:4106
+#: c-decl.c:4091
msgid "ISO C90 does not support flexible array members"
msgstr ""
-#: c-decl.c:4115
+#: c-decl.c:4101
msgid "array type has incomplete element type"
msgstr ""
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4156 cp/decl.c:7121
#, c-format
msgid "%qs declared as function returning a function"
msgstr ""
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4161 cp/decl.c:7126
#, c-format
msgid "%qs declared as function returning an array"
msgstr ""
-#: c-decl.c:4199
+#: c-decl.c:4181
msgid "function definition has qualified void return type"
msgstr ""
-#: c-decl.c:4201
+#: c-decl.c:4183
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4212 c-decl.c:4257 c-decl.c:4351 c-decl.c:4442
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4282
+#: c-decl.c:4265
msgid "%Jtypedef %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4312
+#: c-decl.c:4295
msgid "ISO C forbids const or volatile function types"
msgstr ""
-#: c-decl.c:4332
+#: c-decl.c:4315
#, c-format
msgid "variable or field %qs declared void"
msgstr ""
-#: c-decl.c:4361
+#: c-decl.c:4344
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4396
+#: c-decl.c:4379
msgid "%Jparameter %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4409
+#: c-decl.c:4392
#, c-format
msgid "field %qs declared as a function"
msgstr ""
-#: c-decl.c:4415
+#: c-decl.c:4398
#, c-format
msgid "field %qs has incomplete type"
msgstr ""
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4412 c-decl.c:4424 c-decl.c:4428
#, c-format
msgid "invalid storage class for function %qs"
msgstr ""
-#: c-decl.c:4461
+#: c-decl.c:4448
msgid "%<noreturn%> function returns non-void value"
msgstr ""
-#: c-decl.c:4489
+#: c-decl.c:4476
msgid "cannot inline function %<main%>"
msgstr ""
-#: c-decl.c:4546
+#: c-decl.c:4523
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4532
msgid "%Jvariable %qD 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:4586 cp/decl.c:5994
+#: c-decl.c:4563 cp/decl.c:5861
msgid "thread-local storage not supported for this target"
msgstr ""
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4625 c-decl.c:5728
msgid "function declaration isn%'t a prototype"
msgstr ""
-#: c-decl.c:4656
+#: c-decl.c:4633
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:4689
+#: c-decl.c:4666
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr ""
-#: c-decl.c:4692
+#: c-decl.c:4669
msgid "%Jparameter %u has incomplete type"
msgstr ""
-#: c-decl.c:4701
+#: c-decl.c:4678
msgid "%Jparameter %u (%qD) has void type"
msgstr ""
-#: c-decl.c:4704
+#: c-decl.c:4681
msgid "%Jparameter %u has void type"
msgstr ""
-#: c-decl.c:4761
+#: c-decl.c:4738
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4742 c-decl.c:4777
msgid "%<void%> must be the only parameter"
msgstr ""
-#: c-decl.c:4793
+#: c-decl.c:4770
msgid "%Jparameter %qD has just a forward declaration"
msgstr ""
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4816
msgid "%<%s %E%> declared inside parameter list"
msgstr ""
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4820
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr ""
-#: c-decl.c:4848
+#: c-decl.c:4825
msgid ""
"its scope is only this definition or declaration, which is probably not what "
"you want"
msgstr ""
-#: c-decl.c:4981
+#: c-decl.c:4958
msgid "redefinition of %<union %s%>"
msgstr ""
-#: c-decl.c:4983
+#: c-decl.c:4960
msgid "redefinition of %<struct %s%>"
msgstr ""
-#: c-decl.c:4988
+#: c-decl.c:4965
msgid "nested redefinition of %<union %s%>"
msgstr ""
-#: c-decl.c:4991
+#: c-decl.c:4968
msgid "nested redefinition of %<struct %s%>"
msgstr ""
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5040 cp/decl.c:3421
msgid "declaration does not declare anything"
msgstr ""
-#: c-decl.c:5067
+#: c-decl.c:5044
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr ""
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5087 c-decl.c:5103
msgid "%Jduplicate member %qD"
msgstr ""
-#: c-decl.c:5165
+#: c-decl.c:5142
msgid "union has no named members"
msgstr ""
-#: c-decl.c:5167
+#: c-decl.c:5144
msgid "union has no members"
msgstr ""
-#: c-decl.c:5172
+#: c-decl.c:5149
msgid "struct has no named members"
msgstr ""
-#: c-decl.c:5174
+#: c-decl.c:5151
msgid "struct has no members"
msgstr ""
-#: c-decl.c:5231
+#: c-decl.c:5208
msgid "%Jflexible array member in union"
msgstr ""
-#: c-decl.c:5236
+#: c-decl.c:5213
msgid "%Jflexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5241
+#: c-decl.c:5218
msgid "%Jflexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5248
+#: c-decl.c:5225
msgid "%Jinvalid use of structure with flexible array member"
msgstr ""
-#: c-decl.c:5353
+#: c-decl.c:5333
msgid "union cannot be made transparent"
msgstr ""
-#: c-decl.c:5418
+#: c-decl.c:5404
msgid "nested redefinition of %<enum %s%>"
msgstr ""
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5411
msgid "redeclaration of %<enum %s%>"
msgstr ""
-#: c-decl.c:5488
+#: c-decl.c:5474
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:5505
+#: c-decl.c:5491
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5591
#, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr ""
-#: c-decl.c:5621
+#: c-decl.c:5608
msgid "overflow in enumeration values"
msgstr ""
-#: c-decl.c:5626
+#: c-decl.c:5613
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr ""
-#: c-decl.c:5702
+#: c-decl.c:5696
msgid "return type is an incomplete type"
msgstr ""
-#: c-decl.c:5710
+#: c-decl.c:5704
msgid "return type defaults to %<int%>"
msgstr ""
-#: c-decl.c:5739
+#: c-decl.c:5735
msgid "%Jno previous prototype for %qD"
msgstr ""
-#: c-decl.c:5745
+#: c-decl.c:5743
msgid "%J%qD was used with no prototype before its definition"
msgstr ""
-#: c-decl.c:5752
+#: c-decl.c:5750
msgid "%Jno previous declaration for %qD"
msgstr ""
@@ -1405,7 +1418,7 @@ msgstr ""
msgid "%J%qD was used with no declaration before its definition"
msgstr ""
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5791 c-decl.c:6285
msgid "%Jreturn type of %qD is not %<int%>"
msgstr ""
@@ -1489,203 +1502,203 @@ msgstr ""
msgid "argument %qD doesn%'t match prototype"
msgstr ""
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6318 cp/decl.c:10649
msgid "no return statement in function returning non-void"
msgstr ""
-#: c-decl.c:6314
+#: c-decl.c:6325
msgid "this function may return with or without a value"
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:6403
+#: c-decl.c:6418
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:6432
+#: c-decl.c:6447
msgid ""
"%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6435
+#: c-decl.c:6450
msgid ""
"%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6440
+#: c-decl.c:6455
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6444
+#: c-decl.c:6459
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6448
+#: c-decl.c:6463
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6452
+#: c-decl.c:6467
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr ""
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6756 c-decl.c:6905 c-decl.c:7116 cp/decl.c:6688
#, c-format
msgid "duplicate %qs"
msgstr ""
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6777 c-decl.c:6914 c-decl.c:7017
msgid "two or more data types in declaration specifiers"
msgstr ""
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6789 cp/decl.c:6664
msgid "%<long long long%> is too long for GCC"
msgstr ""
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6796 c-decl.c:6988
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6802
msgid "ISO C90 does not support %<long long%>"
msgstr ""
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6807 c-decl.c:6827
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6810 c-decl.c:6921
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6813 c-decl.c:6940
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6816 c-decl.c:6959
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6819 c-decl.c:6972
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6830 c-decl.c:6924
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6833 c-decl.c:6943
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6836 c-decl.c:6962
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6839 c-decl.c:6975
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6842 c-decl.c:6991
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6850 c-decl.c:6870
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6853 c-decl.c:6927
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6856 c-decl.c:6946
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6859 c-decl.c:6978
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6862 c-decl.c:6994
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6873 c-decl.c:6930
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6876 c-decl.c:6949
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6879 c-decl.c:6981
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6882 c-decl.c:6997
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6875
+#: c-decl.c:6890
msgid "ISO C90 does not support complex types"
msgstr ""
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6892 c-decl.c:6933
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6895 c-decl.c:6952
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7034
#, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:7051
+#: c-decl.c:7066
#, c-format
msgid "%qs is not at beginning of declaration"
msgstr ""
-#: c-decl.c:7066
+#: c-decl.c:7081
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7083
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7085
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7096 cp/parser.c:7247
msgid "%<__thread%> before %<extern%>"
msgstr ""
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7105 cp/parser.c:7237
msgid "%<__thread%> before %<static%>"
msgstr ""
-#: c-decl.c:7106
+#: c-decl.c:7121
msgid "multiple storage classes in declaration specifiers"
msgstr ""
-#: c-decl.c:7113
+#: c-decl.c:7128
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7182
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr ""
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7227 c-decl.c:7253
msgid "ISO C does not support complex integer types"
msgstr ""
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7328 toplev.c:850
msgid "%J%qF used but never defined"
msgstr ""
@@ -2190,7 +2203,7 @@ msgstr ""
msgid "statement with no effect"
msgstr ""
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6914 cp/parser.c:6568
msgid "break statement not within loop or switch"
msgstr ""
@@ -2204,7 +2217,6 @@ msgid "ignoring duplicate directory \"%s\"\n"
msgstr ""
#: c-incpath.c:73
-#, c-format
msgid " as it is a non-system directory that duplicates a system directory\n"
msgstr ""
@@ -2213,18 +2225,15 @@ msgstr ""
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr ""
-#: c-incpath.c:283
-#, c-format
+#: c-incpath.c:286
msgid "#include \"...\" search starts here:\n"
msgstr ""
-#: c-incpath.c:287
-#, c-format
+#: c-incpath.c:290
msgid "#include <...> search starts here:\n"
msgstr ""
-#: c-incpath.c:292
-#, c-format
+#: c-incpath.c:295
msgid "End of search list.\n"
msgstr ""
@@ -2281,43 +2290,33 @@ msgstr ""
msgid "traditional C rejects string constant concatenation"
msgstr ""
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid ""
"%Jfunction %qF can never be inlined because it is suppressed using -fno-"
"inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid ""
"%Jfunction %qF can never be inlined because it might not be bound within "
"this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid ""
"%Jfunction %qF can never be inlined because it uses attributes conflicting "
"with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid ""
-"%Jnested function %qF can never be inlined because it has possibly saved "
-"pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr ""
-#: c-objc-common.c:267
+#: c-objc-common.c:248
msgid "used struct type value where scalar is required"
msgstr ""
-#: c-objc-common.c:271
+#: c-objc-common.c:252
msgid "used union type value where scalar is required"
msgstr ""
@@ -2364,81 +2363,81 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr ""
-#: c-opts.c:655
+#: c-opts.c:653
msgid ""
"-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr ""
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr ""
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr ""
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr ""
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr ""
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr ""
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr ""
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr ""
-#: c-opts.c:995
+#: c-opts.c:998
#, c-format
msgid "opening output file %s: %m"
msgstr ""
-#: c-opts.c:1000
+#: c-opts.c:1003
#, c-format
msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1132
#, c-format
msgid "opening dependency file %s: %m"
msgstr ""
-#: c-opts.c:1134
+#: c-opts.c:1142
#, c-format
msgid "closing dependency file %s: %m"
msgstr ""
-#: c-opts.c:1137
+#: c-opts.c:1145
#, c-format
msgid "when writing output to %s: %m"
msgstr ""
-#: c-opts.c:1216
+#: c-opts.c:1225
msgid "to generate dependencies you must specify either -M or -MM"
msgstr ""
-#: c-opts.c:1281
+#: c-opts.c:1292
msgid "<built-in>"
msgstr ""
-#: c-opts.c:1296
+#: c-opts.c:1307
msgid "<command line>"
msgstr ""
-#: c-opts.c:1379
+#: c-opts.c:1390
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2450,17 +2449,17 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373
-#: java/parse.c:6166 java/parse.y:16413 objc/objc-parse.y:53
-#: objc/objc-parse.c:6384 objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.y:2955
+#: java/parse-scan.y:1370
+#: java/parse.y:16419
+#: objc/objc-parse.y:53 objc/objc-parse.y:3545
msgid "syntax error"
msgstr ""
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931
-#: java/parse.y:16417 objc/objc-parse.c:2666
-#: objc/objc-parse.y:3521
+#: /usr/share/bison/bison.simple:179 c-parse.y:2959
+#: java/parse-scan.y:1374
+#: java/parse.y:16423
+#: objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr ""
@@ -2508,104 +2507,113 @@ msgstr ""
msgid "%<typeof%> applied to a bit-field"
msgstr ""
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr ""
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
msgstr ""
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
msgid "obsolete use of designated initializer with %<:%>"
msgstr ""
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr ""
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
msgid "ISO C forbids forward references to %<enum%> types"
msgstr ""
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:10015 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr ""
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr ""
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr ""
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr ""
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr ""
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr ""
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr ""
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, c-format
msgid "%E qualifier ignored on asm"
msgstr ""
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr ""
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
msgid "ISO C requires a named argument before %<...%>"
msgstr ""
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162
-#: java/parse.y:16415 objc/objc-parse.c:6380
-#: objc/objc-parse.y:3519
-msgid "syntax error; also virtual memory exhausted"
+#: /usr/share/bison/bison.simple:795 c-parse.y:2958
+#: java/parse-scan.y:1373
+#: java/parse.y:16422
+#: objc/objc-parse.y:3548
+msgid "parse error; also virtual memory exhausted"
msgstr ""
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: /usr/share/bison/bison.simple:799 c-parse.y:2956
+#: java/parse-scan.y:1371
+#: java/parse.y:16420
+#: objc/objc-parse.y:3546
+msgid "parse error"
+msgstr ""
+
+#: /usr/share/bison/bison.simple:924
msgid "parser stack overflow"
msgstr ""
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, c-format
msgid "syntax error at %qs token"
msgstr ""
-#: c-parse.y:2928 java/parse-scan.y:1374
-#: java/parse.y:16414 objc/objc-parse.y:3518
-msgid "parse error"
-msgstr ""
-
-#: c-parse.y:2930 java/parse-scan.y:1376
-#: java/parse.y:16416 objc/objc-parse.y:3520
-msgid "parse error; also virtual memory exhausted"
+#: c-parse.y:2957
+#: java/parse-scan.y:1372
+#: java/parse.y:16421
+#: objc/objc-parse.y:3547
+msgid "syntax error; also virtual memory exhausted"
msgstr ""
-#: c-parse.y:2932 java/parse-scan.y:1378
-#: java/parse.y:16418 objc/objc-parse.y:3522
+#: c-parse.y:2960
+#: java/parse-scan.y:1375
+#: java/parse.y:16424
+#: objc/objc-parse.y:3550
msgid "parse error: cannot back up"
msgstr ""
@@ -2715,177 +2723,177 @@ msgid ""
"%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr ""
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr ""
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr ""
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr ""
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:389
+#: c-pragma.c:421
msgid "#pragma redefine_extname not supported on this target"
msgstr ""
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr ""
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid ""
"#pragma redefine_extname ignored due to conflict with previous #pragma "
"redefine_extname"
msgstr ""
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr ""
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr ""
-#: c-pragma.c:457
+#: c-pragma.c:489
msgid "#pragma extern_prefix not supported on this target"
msgstr ""
-#: c-pragma.c:483
+#: c-pragma.c:515
msgid "asm declaration ignored due to conflict with previous rename"
msgstr ""
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid ""
"#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr ""
-#: c-pragma.c:596
+#: c-pragma.c:628
msgid "malformed #pragma GCC visibility push"
msgstr ""
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid ""
"#pragma GCC visibility push() must specify default, internal, hidden or "
"protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr ""
-#: c-typeck.c:138
+#: c-typeck.c:141
#, c-format
msgid "%qs has an incomplete type"
msgstr ""
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:163 cp/call.c:2679
msgid "invalid use of void expression"
msgstr ""
-#: c-typeck.c:168
+#: c-typeck.c:171
msgid "invalid use of flexible array member"
msgstr ""
-#: c-typeck.c:174
+#: c-typeck.c:177
msgid "invalid use of array with unspecified bounds"
msgstr ""
-#: c-typeck.c:182
+#: c-typeck.c:185
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:186
+#: c-typeck.c:189
#, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr ""
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:396 c-typeck.c:421
msgid "function types not truly compatible in ISO C"
msgstr ""
-#: c-typeck.c:745
+#: c-typeck.c:805
msgid "types are not quite compatible"
msgstr ""
-#: c-typeck.c:987
+#: c-typeck.c:1047
msgid "function return types not compatible due to %<volatile%>"
msgstr ""
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1206 c-typeck.c:2447
msgid "arithmetic on pointer to an incomplete type"
msgstr ""
-#: c-typeck.c:1483
+#: c-typeck.c:1561
msgid "%qT has no member named %qs"
msgstr ""
-#: c-typeck.c:1519
+#: c-typeck.c:1597
#, c-format
msgid "request for member %qs in something not a structure or union"
msgstr ""
-#: c-typeck.c:1548
+#: c-typeck.c:1631
msgid "dereferencing pointer to incomplete type"
msgstr ""
-#: c-typeck.c:1552
+#: c-typeck.c:1635
msgid "dereferencing %<void *%> pointer"
msgstr ""
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1652 cp/typeck.c:2125
#, c-format
msgid "invalid type argument of %qs"
msgstr ""
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1680 cp/typeck.c:2276
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1691 cp/typeck.c:2195 cp/typeck.c:2281
msgid "array subscript is not an integer"
msgstr ""
-#: c-typeck.c:1614
+#: c-typeck.c:1697
msgid "subscripted value is pointer to function"
msgstr ""
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1710 cp/typeck.c:2191
msgid "array subscript has type %<char%>"
msgstr ""
-#: c-typeck.c:1667
+#: c-typeck.c:1750
msgid "ISO C forbids subscripting %<register%> array"
msgstr ""
-#: c-typeck.c:1669
+#: c-typeck.c:1752
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr ""
-#: c-typeck.c:1904
+#: c-typeck.c:1989
#, c-format
msgid "called object %qE is not a function"
msgstr ""
@@ -2893,775 +2901,786 @@ msgstr ""
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2021
msgid "function called through a non-compatible type"
msgstr ""
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2068 c-typeck.c:4329 c-typeck.c:4331 c-typeck.c:4339
+#: c-typeck.c:4364 c-typeck.c:5746
msgid "initializer element is not constant"
msgstr ""
-#: c-typeck.c:2044
+#: c-typeck.c:2129
#, c-format
msgid "too many arguments to function %qE"
msgstr ""
-#: c-typeck.c:2071
+#: c-typeck.c:2156
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:2084
+#: c-typeck.c:2169
#, c-format
msgid ""
"passing argument %d of %qE as integer rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:2089
+#: c-typeck.c:2174
#, c-format
msgid ""
"passing argument %d of %qE as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2094
+#: c-typeck.c:2179
#, c-format
msgid ""
"passing argument %d of %qE as complex rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:2099
+#: c-typeck.c:2184
#, c-format
msgid ""
"passing argument %d of %qE as floating rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:2104
+#: c-typeck.c:2189
#, c-format
msgid ""
"passing argument %d of %qE as complex rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:2109
+#: c-typeck.c:2194
#, c-format
msgid ""
"passing argument %d of %qE as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2121
+#: c-typeck.c:2206
msgid ""
"passing argument %d of %qE as %<float%> rather than %<double%> due to "
"prototype"
msgstr ""
-#: c-typeck.c:2141
+#: c-typeck.c:2226
#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr ""
-#: c-typeck.c:2168
+#: c-typeck.c:2253
#, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr ""
-#: c-typeck.c:2171
+#: c-typeck.c:2256
#, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr ""
-#: c-typeck.c:2202
+#: c-typeck.c:2287
#, c-format
msgid "too few arguments to function %qE"
msgstr ""
-#: c-typeck.c:2238
+#: c-typeck.c:2323
msgid "suggest parentheses around + or - inside shift"
msgstr ""
-#: c-typeck.c:2245
+#: c-typeck.c:2330
msgid "suggest parentheses around && within ||"
msgstr ""
-#: c-typeck.c:2254
+#: c-typeck.c:2339
msgid "suggest parentheses around arithmetic in operand of |"
msgstr ""
-#: c-typeck.c:2258
+#: c-typeck.c:2343
msgid "suggest parentheses around comparison in operand of |"
msgstr ""
-#: c-typeck.c:2267
+#: c-typeck.c:2352
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr ""
-#: c-typeck.c:2271
+#: c-typeck.c:2356
msgid "suggest parentheses around comparison in operand of ^"
msgstr ""
-#: c-typeck.c:2278
+#: c-typeck.c:2363
msgid "suggest parentheses around + or - in operand of &"
msgstr ""
-#: c-typeck.c:2282
+#: c-typeck.c:2367
msgid "suggest parentheses around comparison in operand of &"
msgstr ""
-#: c-typeck.c:2288
+#: c-typeck.c:2373
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr ""
-#: c-typeck.c:2314
+#: c-typeck.c:2399
msgid "pointer of type %<void *%> used in subtraction"
msgstr ""
-#: c-typeck.c:2316
+#: c-typeck.c:2401
msgid "pointer to a function used in subtraction"
msgstr ""
-#: c-typeck.c:2405
+#: c-typeck.c:2490
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2418
+#: c-typeck.c:2503
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2435
+#: c-typeck.c:2520
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr ""
-#: c-typeck.c:2441
+#: c-typeck.c:2526
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2449
+#: c-typeck.c:2534
msgid "wrong type argument to abs"
msgstr ""
-#: c-typeck.c:2461
+#: c-typeck.c:2546
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2475
+#: c-typeck.c:2560
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2512
+#: c-typeck.c:2597
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr ""
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to increment"
msgstr ""
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2615 c-typeck.c:2647
msgid "wrong type argument to decrement"
msgstr ""
-#: c-typeck.c:2551
+#: c-typeck.c:2636
msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2553
+#: c-typeck.c:2638
msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2723
+#: c-typeck.c:2808
#, c-format
msgid "assignment of read-only member %qs"
msgstr ""
-#: c-typeck.c:2724
+#: c-typeck.c:2809
#, c-format
msgid "increment of read-only member %qs"
msgstr ""
-#: c-typeck.c:2725
+#: c-typeck.c:2810
#, c-format
msgid "decrement of read-only member %qs"
msgstr ""
-#: c-typeck.c:2729
+#: c-typeck.c:2814
#, c-format
msgid "assignment of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2730
+#: c-typeck.c:2815
#, c-format
msgid "increment of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2731
+#: c-typeck.c:2816
#, c-format
msgid "decrement of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2734
+#: c-typeck.c:2819
msgid "assignment of read-only location"
msgstr ""
-#: c-typeck.c:2735
+#: c-typeck.c:2820
msgid "increment of read-only location"
msgstr ""
-#: c-typeck.c:2736
+#: c-typeck.c:2821
msgid "decrement of read-only location"
msgstr ""
-#: c-typeck.c:2755
+#: c-typeck.c:2840
msgid "cannot take address of bit-field %qD"
msgstr ""
-#: c-typeck.c:2783
+#: c-typeck.c:2868
msgid "global register variable %qD used in nested function"
msgstr ""
-#: c-typeck.c:2786
+#: c-typeck.c:2871
msgid "register variable %qD used in nested function"
msgstr ""
-#: c-typeck.c:2791
+#: c-typeck.c:2876
msgid "address of global register variable %qD requested"
msgstr ""
-#: c-typeck.c:2793
+#: c-typeck.c:2878
msgid "address of register variable %qD requested"
msgstr ""
-#: c-typeck.c:2841
+#: c-typeck.c:2926
msgid "non-lvalue array in conditional expression"
msgstr ""
-#: c-typeck.c:2885
+#: c-typeck.c:2970
msgid "signed and unsigned type in conditional expression"
msgstr ""
-#: c-typeck.c:2892
+#: c-typeck.c:2977
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2993 c-typeck.c:3001
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr ""
-#: c-typeck.c:2923
+#: c-typeck.c:3008
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3015 c-typeck.c:3025
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2954
+#: c-typeck.c:3039
msgid "type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2993
+#: c-typeck.c:3078
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3026
+#: c-typeck.c:3111
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3032
+#: c-typeck.c:3117
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3042
+#: c-typeck.c:3127
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3060
+#: c-typeck.c:3145
msgid "ISO C forbids casts to union type"
msgstr ""
-#: c-typeck.c:3069
+#: c-typeck.c:3154
msgid "cast to union type from type not present in union"
msgstr ""
-#: c-typeck.c:3120
+#: c-typeck.c:3205
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:3125
+#: c-typeck.c:3210
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3140
+#: c-typeck.c:3225
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3146
+#: c-typeck.c:3231
msgid "cast from pointer to integer of different size"
msgstr ""
-#: c-typeck.c:3151
+#: c-typeck.c:3236
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3244
msgid "cast to pointer from integer of different size"
msgstr ""
-#: c-typeck.c:3171
+#: c-typeck.c:3256
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3178
+#: c-typeck.c:3263
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3181
+#: c-typeck.c:3266
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3193
+#: c-typeck.c:3278
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr ""
-#: c-typeck.c:3202
+#: c-typeck.c:3287
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr ""
-#: c-typeck.c:3457
+#: c-typeck.c:3539
msgid "cannot pass rvalue to reference parameter"
msgstr ""
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3648 c-typeck.c:3763
#, c-format
msgid ""
"passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3651 c-typeck.c:3766
msgid "assignment makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3654 c-typeck.c:3768
msgid "initialization makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3657 c-typeck.c:3770
msgid "return makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3661 c-typeck.c:3731
#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "assignment discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "initialization discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3667 c-typeck.c:3737
msgid "return discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3590
+#: c-typeck.c:3672
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:3628
+#: c-typeck.c:3716
msgid ""
"ISO C forbids passing argument %d of %qE between function pointer and %<void "
"*%>"
msgstr ""
-#: c-typeck.c:3631
+#: c-typeck.c:3719
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3633
+#: c-typeck.c:3721
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3635
+#: c-typeck.c:3723
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr ""
-#: c-typeck.c:3658
+#: c-typeck.c:3746
#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr ""
-#: c-typeck.c:3660
+#: c-typeck.c:3748
msgid "pointer targets in assignment differ in signedness"
msgstr ""
-#: c-typeck.c:3662
+#: c-typeck.c:3750
msgid "pointer targets in initialization differ in signedness"
msgstr ""
-#: c-typeck.c:3664
+#: c-typeck.c:3752
msgid "pointer targets in return differ in signedness"
msgstr ""
-#: c-typeck.c:3687
+#: c-typeck.c:3775
#, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3689
+#: c-typeck.c:3777
msgid "assignment from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3690
+#: c-typeck.c:3778
msgid "initialization from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3692
+#: c-typeck.c:3780
msgid "return from incompatible pointer type"
msgstr ""
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3787 c-typeck.c:4289 cp/typeck.c:1393
msgid "invalid use of non-lvalue array"
msgstr ""
-#: c-typeck.c:3713
+#: c-typeck.c:3801
#, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3715
+#: c-typeck.c:3803
msgid "assignment makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3717
+#: c-typeck.c:3805
msgid "initialization makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3719
+#: c-typeck.c:3807
msgid "return makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:3726
+#: c-typeck.c:3814
#, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:3728
+#: c-typeck.c:3816
msgid "assignment makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:3730
+#: c-typeck.c:3818
msgid "initialization makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:3732
+#: c-typeck.c:3820
msgid "return makes integer from pointer without a cast"
msgstr ""
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3833
#, c-format
msgid "incompatible type for argument %d of %qE"
msgstr ""
-#: c-typeck.c:3748
+#: c-typeck.c:3836
msgid "incompatible types in assignment"
msgstr ""
-#: c-typeck.c:3751
+#: c-typeck.c:3839
msgid "incompatible types in initialization"
msgstr ""
-#: c-typeck.c:3754
+#: c-typeck.c:3842
msgid "incompatible types in return"
msgstr ""
-#: c-typeck.c:3835
+#: c-typeck.c:3923
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404
-#: java/parse.y:5021 java/verify.c:1593 java/verify.c:1594
-#: java/verify.c:1613
+#: c-typeck.c:4088 c-typeck.c:4103 c-typeck.c:4118 final.c:2862 final.c:2864
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1894 cp/typeck.c:4158 java/expr.c:409
+#: java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr ""
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4091 c-typeck.c:4106 c-typeck.c:4121
#, c-format
msgid "(near initialization for %qs)"
msgstr ""
-#: c-typeck.c:4047
+#: c-typeck.c:4135
msgid "array initialized from parenthesized string constant"
msgstr ""
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4199 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4116
+#: c-typeck.c:4204
msgid "wchar_t-array initialized from non-wide string"
msgstr ""
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4222 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4140
+#: c-typeck.c:4228
msgid "array of inappropriate type initialized from string constant"
msgstr ""
-#: c-typeck.c:4210
+#: c-typeck.c:4312
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4371 c-typeck.c:5750
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4386 cp/typeck2.c:804
msgid "invalid initializer"
msgstr ""
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4653 cp/decl.c:4450
msgid "opaque vector types cannot be initialized"
msgstr ""
-#: c-typeck.c:4750
+#: c-typeck.c:4852
msgid "extra brace group at end of initializer"
msgstr ""
-#: c-typeck.c:4770
+#: c-typeck.c:4872 cp/decl.c:4365
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:4830
+#: c-typeck.c:4933
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:4887
+#: c-typeck.c:4990
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:4889
+#: c-typeck.c:4992
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:4916
+#: c-typeck.c:5019
msgid "missing initializer"
msgstr ""
-#: c-typeck.c:4938
+#: c-typeck.c:5041
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:4943
+#: c-typeck.c:5046
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr ""
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5150 c-typeck.c:5225
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5155 c-typeck.c:5278
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5104
+#: c-typeck.c:5201
msgid "array index in initializer not of integer type"
msgstr ""
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5221 c-typeck.c:5223
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5227 c-typeck.c:5230
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5144
+#: c-typeck.c:5241
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5153
+#: c-typeck.c:5250
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5193
+#: c-typeck.c:5290
#, c-format
msgid "unknown field %qs specified in initializer"
msgstr ""
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5326 c-typeck.c:5347 c-typeck.c:5813
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:5925
+#: c-typeck.c:6022
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6029 c-typeck.c:6075
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:5993
+#: c-typeck.c:6090
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:6061
+#: c-typeck.c:6158
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6083
+#: c-typeck.c:6180
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6147
+#: c-typeck.c:6244
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6177
+#: c-typeck.c:6274
msgid "excess elements in vector initializer"
msgstr ""
-#: c-typeck.c:6200
+#: c-typeck.c:6298
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6362
+#: c-typeck.c:6486
+msgid "jump into statement expression"
+msgstr ""
+
+#: c-typeck.c:6511
msgid "ISO C forbids %<goto *expr;%>"
msgstr ""
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6525 cp/typeck.c:6036
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr ""
-#: c-typeck.c:6383
+#: c-typeck.c:6532
msgid "%<return%> with no value, in function returning non-void"
msgstr ""
-#: c-typeck.c:6390
+#: c-typeck.c:6539
msgid "%<return%> with a value, in function returning void"
msgstr ""
-#: c-typeck.c:6447
+#: c-typeck.c:6596
msgid "function returns address of local variable"
msgstr ""
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6662 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr ""
-#: c-typeck.c:6518
+#: c-typeck.c:6673
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr ""
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6712
+msgid ""
+"case label in statement expression not containing enclosing switch statement"
+msgstr ""
+
+#: c-typeck.c:6715
+msgid ""
+"%<default%> label in statement expression not containing enclosing switch "
+"statement"
+msgstr ""
+
+#: c-typeck.c:6719 cp/parser.c:6076
msgid "case label not within a switch statement"
msgstr ""
-#: c-typeck.c:6557
+#: c-typeck.c:6721
msgid "%<default%> label not within a switch statement"
msgstr ""
-#: c-typeck.c:6621
+#: c-typeck.c:6787
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
-#: c-typeck.c:6631
+#: c-typeck.c:6797
msgid "%Hempty body in an if-statement"
msgstr ""
-#: c-typeck.c:6639
+#: c-typeck.c:6805
msgid "%Hempty body in an else-statement"
msgstr ""
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6916 cp/parser.c:6579
msgid "continue statement not within a loop"
msgstr ""
-#: c-typeck.c:6747
+#: c-typeck.c:6936
msgid "%Hstatement with no effect"
msgstr ""
-#: c-typeck.c:6776
+#: c-typeck.c:6965
msgid "expression statement has incomplete type"
msgstr ""
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7334 c-typeck.c:7373
msgid "division by zero"
msgstr ""
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7418 cp/typeck.c:2943
msgid "right shift count is negative"
msgstr ""
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7425 cp/typeck.c:2949
msgid "right shift count >= width of type"
msgstr ""
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7446 cp/typeck.c:2968
msgid "left shift count is negative"
msgstr ""
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7449 cp/typeck.c:2970
msgid "left shift count >= width of type"
msgstr ""
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7466 cp/typeck.c:3005
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7490 c-typeck.c:7497
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr ""
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7501 c-typeck.c:7547
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7515 c-typeck.c:7520 c-typeck.c:7567 c-typeck.c:7572
msgid "comparison between pointer and integer"
msgstr ""
-#: c-typeck.c:7304
+#: c-typeck.c:7539
msgid "comparison of complete and incomplete pointers"
msgstr ""
-#: c-typeck.c:7307
+#: c-typeck.c:7542
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr ""
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7555 c-typeck.c:7562
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:7548
+#: c-typeck.c:7783
msgid "comparison between signed and unsigned"
msgstr ""
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7829 cp/typeck.c:3412
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7837 cp/typeck.c:3420
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr ""
@@ -3705,7 +3724,7 @@ msgstr ""
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
@@ -3814,305 +3833,305 @@ msgstr ""
msgid "%s does not support flow_call_edges_add"
msgstr ""
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, c-format
msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: cfgloop.c:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr ""
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr ""
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:231
+#: cgraph.c:282
msgid "function body not available"
msgstr ""
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:284 cgraphunit.c:662
msgid "redefined extern inline functions are not considered for inlining"
msgstr ""
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:287 cgraphunit.c:667
msgid "function not considered for inlining"
msgstr ""
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:289 cgraphunit.c:665
msgid "function not inlinable"
msgstr ""
-#: cgraph.c:556
+#: cgraph.c:673
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:513
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:519
msgid "Edge points to wrong declaration:"
msgstr ""
-#: cgraphunit.c:517
+#: cgraphunit.c:528
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:554
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:566
msgid "Inlined_to pointer is wrong"
msgstr ""
-#: cgraphunit.c:560
+#: cgraphunit.c:571
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:578
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:584
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:589
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:599
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:613
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:624
msgid "verify_cgraph_node failed."
msgstr ""
-#: cgraphunit.c:797
+#: cgraphunit.c:810
msgid "failed to reclaim unneeded function"
msgstr ""
-#: cgraphunit.c:1184
+#: cgraphunit.c:1201
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1238
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1403 cgraphunit.c:1655
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1427
msgid ""
"--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1477
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1829
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr ""
@@ -4121,156 +4140,156 @@ msgstr ""
msgid "no arguments"
msgstr ""
-#: collect2.c:1187
+#: collect2.c:1194
#, c-format
msgid "unknown demangling style '%s'"
msgstr ""
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr ""
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr ""
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr ""
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr ""
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr ""
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr ""
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr ""
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr ""
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr ""
-#: collect2.c:1565
+#: collect2.c:1572
#, c-format
msgid "cannot find '%s'"
msgstr ""
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr ""
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr ""
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
-#: collect2.c:2042
+#: collect2.c:2049
msgid "cannot find 'nm'"
msgstr ""
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr ""
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr ""
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr ""
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr ""
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr ""
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr ""
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr ""
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr ""
-#: collect2.c:2209
+#: collect2.c:2216
msgid "cannot find 'ldd'"
msgstr ""
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
msgstr ""
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr ""
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr ""
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr ""
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr ""
-#: combine.c:12382
+#: combine.c:12516
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new "
@@ -4279,7 +4298,7 @@ msgid ""
"\n"
msgstr ""
-#: combine.c:12391
+#: combine.c:12525
#, c-format
msgid ""
"\n"
@@ -4391,7 +4410,7 @@ msgstr ""
msgid "too many input files"
msgstr ""
-#: cse.c:6784
+#: cse.c:6812
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
@@ -4441,36 +4460,28 @@ msgstr ""
msgid "ENTRY does not dominate bb %d"
msgstr ""
-#: dwarf2out.c:3388
+#: dwarf2out.c:3393
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr ""
-#: emit-rtl.c:1215
-msgid "can't access real part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr ""
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr ""
@@ -4487,222 +4498,218 @@ msgstr ""
msgid "__builtin_eh_return not supported on this target"
msgstr ""
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr ""
-#: final.c:1061
+#: final.c:1062
msgid "negative insn length"
msgstr ""
-#: final.c:2501
+#: final.c:2508
msgid "could not split insn"
msgstr ""
-#: final.c:2851
+#: final.c:2857
msgid "invalid 'asm': "
msgstr ""
-#: final.c:3034
+#: final.c:3040
msgid "nested assembly dialect alternatives"
msgstr ""
-#: final.c:3051 final.c:3063
+#: final.c:3057 final.c:3069
msgid "unterminated assembly dialect alternative"
msgstr ""
-#: final.c:3110
+#: final.c:3116
#, c-format
msgid "operand number missing after %%-letter"
msgstr ""
-#: final.c:3113 final.c:3154
+#: final.c:3119 final.c:3160
msgid "operand number out of range"
msgstr ""
-#: final.c:3173
+#: final.c:3179
#, c-format
msgid "invalid %%-code"
msgstr ""
-#: final.c:3203
+#: final.c:3209
#, c-format
msgid "'%%l' operand isn't a label"
msgstr ""
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#. 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:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3311 vmsdbgout.c:488 config/i386/i386.c:5957
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr ""
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3367 vmsdbgout.c:545 config/i386/i386.c:6035
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr ""
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
msgid "internal consistency failure"
msgstr ""
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3232 fold-const.c:3243
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:4755 fold-const.c:4770
+#: fold-const.c:4807 fold-const.c:4822
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:4899
+#: fold-const.c:4951
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4904
+#: fold-const.c:4956
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
-#: fold-const.c:9334
+#: fold-const.c:9925
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
msgid "%Jsize of variable %qD is too large"
msgstr ""
-#: function.c:1442
+#: function.c:1443
msgid "impossible constraint in %<asm%>"
msgstr ""
-#: function.c:3495
+#: function.c:3614
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3516
+#: function.c:3635
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3907
+#: function.c:4026
msgid "function returns an aggregate"
msgstr ""
-#: function.c:4249
+#: function.c:4349
msgid "%Junused parameter %qD"
msgstr ""
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr ""
-#: gcc.c:1269
+#: gcc.c:1264
#, c-format
msgid "incomplete '%s' option"
msgstr ""
-#: gcc.c:1280
+#: gcc.c:1275
#, c-format
msgid "missing argument to '%s' option"
msgstr ""
-#: gcc.c:1293
+#: gcc.c:1288
#, c-format
msgid "extraneous argument to '%s' option"
msgstr ""
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr ""
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr ""
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr ""
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
"\n"
msgstr ""
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2635
+#: gcc.c:2625
#, c-format
msgid "system path '%s' is not absolute"
msgstr ""
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr ""
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
msgstr ""
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -4710,189 +4717,189 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr ""
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr ""
-#: gcc.c:3036
+#: gcc.c:3026
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
-#: gcc.c:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr ""
-#: gcc.c:3038
+#: gcc.c:3028
msgid ""
" --target-help Display target specific command line options\n"
msgstr ""
-#: gcc.c:3040
+#: gcc.c:3030
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr ""
-#: gcc.c:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr ""
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr ""
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr ""
-#: gcc.c:3044
+#: gcc.c:3034
msgid ""
" -print-search-dirs Display the directories in the compiler's search "
"path\n"
msgstr ""
-#: gcc.c:3045
+#: gcc.c:3035
msgid ""
" -print-libgcc-file-name Display the name of the compiler's companion "
"library\n"
msgstr ""
-#: gcc.c:3046
+#: gcc.c:3036
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr ""
-#: gcc.c:3047
+#: gcc.c:3037
msgid ""
" -print-prog-name=<prog> Display the full path to compiler component "
"<prog>\n"
msgstr ""
-#: gcc.c:3048
+#: gcc.c:3038
msgid ""
" -print-multi-directory Display the root directory for versions of "
"libgcc\n"
msgstr ""
-#: gcc.c:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options "
"and\n"
" multiple library search directories\n"
msgstr ""
-#: gcc.c:3052
+#: gcc.c:3042
msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr ""
-#: gcc.c:3053
+#: gcc.c:3043
msgid ""
" -Wa,<options> Pass comma-separated <options> on to the "
"assembler\n"
msgstr ""
-#: gcc.c:3054
+#: gcc.c:3044
msgid ""
" -Wp,<options> Pass comma-separated <options> on to the "
"preprocessor\n"
msgstr ""
-#: gcc.c:3055
+#: gcc.c:3045
msgid ""
" -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr ""
-#: gcc.c:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr ""
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr ""
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr ""
-#: gcc.c:3059
+#: gcc.c:3049
msgid ""
" -combine Pass multiple source files to compiler at once\n"
msgstr ""
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr ""
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr ""
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr ""
-#: gcc.c:3063
+#: gcc.c:3053
msgid ""
" -specs=<file> Override built-in specs with the contents of "
"<file>\n"
msgstr ""
-#: gcc.c:3064
+#: gcc.c:3054
msgid ""
" -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
-#: gcc.c:3065
+#: gcc.c:3055
msgid ""
" -B <directory> Add <directory> to the compiler's search paths\n"
msgstr ""
-#: gcc.c:3066
+#: gcc.c:3056
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
-#: gcc.c:3067
+#: gcc.c:3057
msgid ""
" -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
-#: gcc.c:3068
+#: gcc.c:3058
msgid ""
" -v Display the programs invoked by the compiler\n"
msgstr ""
-#: gcc.c:3069
+#: gcc.c:3059
msgid ""
" -### Like -v but options quoted and commands not "
"executed\n"
msgstr ""
-#: gcc.c:3070
+#: gcc.c:3060
msgid ""
" -E Preprocess only; do not compile, assemble or "
"link\n"
msgstr ""
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr ""
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr ""
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr ""
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input "
"files\n"
@@ -4903,7 +4910,7 @@ msgid ""
"extension\n"
msgstr ""
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -4912,116 +4919,115 @@ msgid ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
-#: gcc.c:3201
+#: gcc.c:3191
#, c-format
msgid "'-%c' option must have argument"
msgstr ""
-#: gcc.c:3223
+#: gcc.c:3213
#, c-format
msgid "couldn't run '%s': %s"
msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
-#, c-format
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
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:3512
+#: gcc.c:3502
msgid "argument to '-Xlinker' is missing"
msgstr ""
-#: gcc.c:3520
+#: gcc.c:3510
msgid "argument to '-Xpreprocessor' is missing"
msgstr ""
-#: gcc.c:3527
+#: gcc.c:3517
msgid "argument to '-Xassembler' is missing"
msgstr ""
-#: gcc.c:3534
+#: gcc.c:3524
msgid "argument to '-l' is missing"
msgstr ""
-#: gcc.c:3555
+#: gcc.c:3545
msgid "argument to '-specs' is missing"
msgstr ""
-#: gcc.c:3569
+#: gcc.c:3559
msgid "argument to '-specs=' is missing"
msgstr ""
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
msgid "argument to '-B' is missing"
msgstr ""
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:4004
+#: gcc.c:3994
msgid "argument to '-x' is missing"
msgstr ""
-#: gcc.c:4032
+#: gcc.c:4022
#, c-format
msgid "argument to '-%s' is missing"
msgstr ""
-#: gcc.c:4093
+#: gcc.c:4083
#, c-format
msgid "warning: '-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr ""
-#: gcc.c:4736
+#: gcc.c:4726
#, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr ""
-#: gcc.c:4933
+#: gcc.c:4923
#, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr ""
-#: gcc.c:4964
+#: gcc.c:4954
#, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr ""
@@ -5029,159 +5035,163 @@ msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr ""
-#: gcc.c:5345
+#: gcc.c:5318
#, c-format
msgid "unknown spec function '%s'"
msgstr ""
-#: gcc.c:5364
+#: gcc.c:5337
#, c-format
msgid "error in args to spec function '%s'"
msgstr ""
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr ""
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr ""
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, c-format
msgid "unrecognized option '-%s'"
msgstr ""
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr ""
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr ""
-#: gcc.c:6339
-#, c-format
+#: gcc.c:6328
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
-#: gcc.c:6355
+#: gcc.c:6344
+#, c-format
+msgid "Target: %s\n"
+msgstr ""
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr ""
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr ""
-#: gcc.c:6390
+#: gcc.c:6380
msgid "no input files"
msgstr ""
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr ""
-#: gcc.c:6470
+#: gcc.c:6460
#, c-format
msgid "spec '%s' is invalid"
msgstr ""
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr ""
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr ""
-#: gcc.c:6938
+#: gcc.c:6927
#, c-format
msgid "multilib spec '%s' is invalid"
msgstr ""
-#: gcc.c:7130
+#: gcc.c:7119
#, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr ""
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, c-format
msgid "multilib select '%s' is invalid"
msgstr ""
-#: gcc.c:7367
+#: gcc.c:7356
#, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr ""
@@ -5459,33 +5469,33 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr ""
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr ""
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr ""
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, c-format
msgid "can't write PCH file: %m"
msgstr ""
-#: ggc-common.c:487
+#: ggc-common.c:487 config/i386/host-cygwin.c:58
#, c-format
msgid "can't get position in PCH file: %m"
msgstr ""
@@ -5496,7 +5506,7 @@ msgid "can't write padding to PCH file: %m"
msgstr ""
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, c-format
msgid "can't read PCH file: %m"
msgstr ""
@@ -5505,12 +5515,12 @@ msgstr ""
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
msgid "can't write PCH file"
msgstr ""
@@ -5518,27 +5528,27 @@ msgstr ""
msgid "unexpected node"
msgstr ""
-#: gimplify.c:3137
+#: gimplify.c:3344
#, c-format
msgid "invalid lvalue in asm output %d"
msgstr ""
-#: gimplify.c:3185
+#: gimplify.c:3456
#, c-format
msgid "memory input %d is not directly addressable"
msgstr ""
-#: gimplify.c:4032
+#: gimplify.c:4330
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, c-format
msgid "%s cannot be used in asm here"
msgstr ""
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, c-format
msgid "can't open %s: %m"
msgstr ""
@@ -5598,89 +5608,99 @@ msgstr ""
msgid "unrecognized command line option \"%s\""
msgstr ""
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr ""
-#: opts.c:885
+#: opts.c:886
#, c-format
msgid "unrecognised visibility value \"%s\""
msgstr ""
-#: opts.c:937
+#: opts.c:938
#, c-format
msgid "unrecognized register name \"%s\""
msgstr ""
-#: opts.c:957
+#: opts.c:962
#, c-format
msgid "unknown tls-model \"%s\""
msgstr ""
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, c-format
msgid "invalid --param value %qs"
msgstr ""
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr ""
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr ""
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr ""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr ""
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, c-format
msgid "invalid parameter %qs"
msgstr ""
-#: passes.c:1250
+#: passes.c:1210
msgid ""
"branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6014,92 +6034,88 @@ msgstr ""
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr ""
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:631
+#: reg-stack.c:632
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:691
+#: reg-stack.c:692
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:711
msgid "output operand %d must use %<&%> constraint"
msgstr ""
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4572 config/ia64/ia64.c:4579
+#: config/pa/pa.c:342 config/pa/pa.c:349
#, c-format
msgid "unknown register name: %s"
msgstr ""
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr ""
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1876
+#: regrename.c:1872
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1903
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1252
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
msgstr ""
-#: reload.c:1275
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
msgstr ""
-#: reload.c:3513
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
msgstr ""
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr ""
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
msgstr ""
@@ -6111,38 +6127,38 @@ msgstr ""
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1866
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr ""
-#: reload1.c:1871
+#: reload1.c:1870
#, c-format
msgid "unable to find a register to spill in class %qs"
msgstr ""
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr ""
-#: reload1.c:3864
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr ""
-#: reload1.c:4988
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6613
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6607
+#: reload1.c:6614
msgid "output operand is constant in %<asm%>"
msgstr ""
@@ -6154,145 +6170,145 @@ msgstr ""
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:472
+#: rtl.c:471
#, c-format
msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:482
+#: rtl.c:481
#, c-format
msgid ""
"RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:492
+#: rtl.c:491
#, c-format
msgid ""
"RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %"
"s:%d"
msgstr ""
-#: rtl.c:501
+#: rtl.c:500
#, c-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:511
+#: rtl.c:510
#, c-format
msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:522
+#: rtl.c:521
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:533
+#: rtl.c:532
#, c-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr ""
-#: stmt.c:316
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
msgstr ""
-#: stmt.c:331
+#: stmt.c:332
#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:354
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr ""
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
msgstr ""
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:451
+#: stmt.c:452
#, c-format
msgid "input operand constraint contains %qc"
msgstr ""
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:531
+#: stmt.c:532
#, c-format
msgid "invalid punctuation %qc in constraint"
msgstr ""
-#: stmt.c:555
+#: stmt.c:556
msgid "matching constraint does not allow a register"
msgstr ""
-#: stmt.c:583
+#: stmt.c:584
#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr ""
-#: stmt.c:672
+#: stmt.c:673
msgid "unknown register name %qs in %<asm%>"
msgstr ""
-#: stmt.c:680
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
msgstr ""
-#: stmt.c:727
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
msgstr ""
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#: stmt.c:869
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr ""
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr ""
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr ""
-#: stmt.c:1108
+#: stmt.c:1109
msgid "too many alternatives in %<asm%>"
msgstr ""
-#: stmt.c:1120
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr ""
-#: stmt.c:1173
+#: stmt.c:1174
#, c-format
msgid "duplicate asm operand name %qs"
msgstr ""
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1299
+#: stmt.c:1300
#, c-format
msgid "undefined named operand %qs"
msgstr ""
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr ""
@@ -6394,7 +6410,6 @@ msgid "collect: tweaking %s in %s\n"
msgstr ""
#: tlink.c:751
-#, c-format
msgid "collect: relinking\n"
msgstr ""
@@ -6403,99 +6418,96 @@ msgstr ""
msgid "ld returned %d exit status"
msgstr ""
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr ""
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr ""
-#: toplev.c:532
+#: toplev.c:536
#, c-format
msgid "invalid option argument %qs"
msgstr ""
-#: toplev.c:602
+#: toplev.c:606
msgid "unrecoverable error"
msgstr ""
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:852
msgid "%J%qF declared %<static%> but never defined"
msgstr ""
-#: toplev.c:872
+#: toplev.c:878
msgid "%J%qD defined but not used"
msgstr ""
-#: toplev.c:895 toplev.c:918
+#: toplev.c:901 toplev.c:924
#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:921
+#: toplev.c:927
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:927
+#: toplev.c:933
#, c-format
msgid "%qs is deprecated"
msgstr ""
-#: toplev.c:929
+#: toplev.c:935
msgid "type is deprecated"
msgstr ""
-#: toplev.c:1075
-#, c-format
+#: toplev.c:1086
msgid ""
"\n"
"Target specific options:\n"
msgstr ""
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1100 toplev.c:1119
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr ""
-#: toplev.c:1117
-#, c-format
+#: toplev.c:1128
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:1119
-#, c-format
+#: toplev.c:1130
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1174
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr ""
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1236 config/rs6000/rs6000.c:1408 config/rs6000/rs6000.c:1419
#: config/rs6000/darwin.h:106
#, c-format
msgid "invalid option %qs"
msgstr ""
-#: toplev.c:1240
+#: toplev.c:1251
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6503,342 +6515,358 @@ msgid ""
"%s%s%s version %s (%s) compiled by CC.\n"
msgstr ""
-#: toplev.c:1247
+#: toplev.c:1258
#, c-format
msgid ""
"%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1310
msgid "options passed: "
msgstr ""
-#: toplev.c:1328
+#: toplev.c:1339
msgid "options enabled: "
msgstr ""
-#: toplev.c:1402
+#: toplev.c:1413
msgid "can%'t open %s for writing: %m"
msgstr ""
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1491 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1493 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1544 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1547 config/sh/sh.c:7389
msgid "out of memory"
msgstr ""
-#: toplev.c:1736
+#: toplev.c:1755
msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: toplev.c:1740
+#: toplev.c:1759
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:1744
+#: toplev.c:1763
msgid "value-based profiling not yet implemented in trees."
msgstr ""
-#: toplev.c:1757
+#: toplev.c:1776
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: toplev.c:1831
+#: toplev.c:1850
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr ""
-#: toplev.c:1843
+#: toplev.c:1862
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1865
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1866
+#: toplev.c:1885
msgid "can%'t open %s: %m"
msgstr ""
-#: toplev.c:1873
+#: toplev.c:1892
msgid "-ffunction-sections not supported for this target"
msgstr ""
-#: toplev.c:1878
+#: toplev.c:1897
msgid "-fdata-sections not supported for this target"
msgstr ""
-#: toplev.c:1885
+#: toplev.c:1904
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:1892
+#: toplev.c:1911
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr ""
-#: toplev.c:1898
+#: toplev.c:1917
msgid "-fspeculative-prefetching not supported for this target"
msgstr ""
-#: toplev.c:1904
+#: toplev.c:1923
msgid ""
"-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1910
+#: toplev.c:1929
msgid ""
"-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1919
+#: toplev.c:1938
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr ""
-#: toplev.c:1925
+#: toplev.c:1944
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:2034
+#: toplev.c:2056
#, c-format
msgid "error writing to %s: %m"
msgstr ""
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2058 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, c-format
msgid "error closing %s: %m"
msgstr ""
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr ""
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
msgstr ""
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
msgstr ""
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
msgid "Is not a valid GIMPLE statement."
msgstr ""
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
msgstr ""
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
msgid ""
"Case labels not sorted:\n"
" "
msgstr ""
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, c-format
msgid "Missing edge %i->%i"
msgstr ""
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr ""
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
msgid "%H%<noreturn%> function does return"
msgstr ""
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
msgid "%Hcontrol reaches end of non-void function"
msgstr ""
-#: tree-dump.c:847
+#: tree-dump.c:849
#, c-format
msgid "could not open dump file %qs: %s"
msgstr ""
-#: tree-dump.c:960
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr ""
-#: tree-inline.c:945
+#: tree-inline.c:974
msgid ""
"%Jfunction %qF can never be inlined because it uses alloca (override using "
"the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:986
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:1000
msgid ""
"%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1011
msgid ""
"%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception "
"handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1018
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1029
+msgid ""
+"%Jfunction %qF can never be inlined because it uses __builtin_return or "
+"__builtin_apply_args"
+msgstr ""
+
+#: tree-inline.c:1048
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1062
msgid ""
"%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1087
msgid ""
"%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1565
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1575 tree-inline.c:1583
msgid "%Jinlining failed in call to %qF: %s"
msgstr ""
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1576 tree-inline.c:1584
msgid "called from here"
msgstr ""
-#: tree-mudflap.c:851
+#: tree-inline.c:1698
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr ""
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -6847,36 +6875,36 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr ""
-#: tree-optimize.c:698
+#: tree-optimize.c:718
msgid "%Jsize of return value of %qD is %u bytes"
msgstr ""
-#: tree-optimize.c:701
+#: tree-optimize.c:721
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr ""
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -6885,197 +6913,203 @@ msgstr ""
msgid "unimplemented functionality"
msgstr ""
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr ""
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
msgid "Missing definition"
msgstr ""
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:305
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid ""
"Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid ""
+"Alias set of a pointer's type tag should be a superset of the corresponding "
+"name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid ""
"Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
msgstr ""
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
msgid "verify_ssa failed."
msgstr ""
-#: tree-ssa.c:1329
+#: tree-ssa.c:1379
msgid "%H%qD is used uninitialized in this function"
msgstr ""
-#: tree-ssa.c:1354
+#: tree-ssa.c:1404
msgid "%H%qD may be used uninitialized in this function"
msgstr ""
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
msgstr ""
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
msgid "unsupported defining stmt"
msgstr ""
-#: tree.c:3258
+#: tree.c:3276
msgid "%Jfunction %qD definition is marked dllimport."
msgstr ""
-#: tree.c:3266
+#: tree.c:3284
msgid "%Jvariable %qD definition is marked dllimport."
msgstr ""
-#: tree.c:3286
+#: tree.c:3304
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4457
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:4480
+#: tree.c:4509
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:5362
+#: tree.c:5405
msgid "invalid initializer for bit string"
msgstr ""
-#: tree.c:5446
+#: tree.c:5489
#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5483
+#: tree.c:5526
#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5496
+#: tree.c:5539
#, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:5510
+#: tree.c:5553
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5522
+#: tree.c:5565
#, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5534
+#: tree.c:5577
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr ""
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr ""
@@ -7103,75 +7137,83 @@ msgstr ""
msgid "volatile register variables don%'t work as you might wish"
msgstr ""
-#: varasm.c:963
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
msgstr ""
-#: varasm.c:1038
+#: varasm.c:1046
msgid "global destructors not supported on this target"
msgstr ""
-#: varasm.c:1099
+#: varasm.c:1107
msgid "global constructors not supported on this target"
msgstr ""
-#: varasm.c:1592
+#: varasm.c:1607
msgid ""
"%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr ""
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
msgid ""
"%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr ""
-#: varasm.c:3736
+#: varasm.c:3774
msgid "initializer for integer value is too complicated"
msgstr ""
-#: varasm.c:3741
+#: varasm.c:3779
msgid "initializer for floating value is not a floating constant"
msgstr ""
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr ""
-
-#: varasm.c:4026
+#: varasm.c:4048
#, c-format
msgid "invalid initial value for member %qs"
msgstr ""
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4235 varasm.c:4279
msgid "%Jweak declaration of %qD must precede definition"
msgstr ""
-#: varasm.c:4221
+#: varasm.c:4243
msgid ""
"%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr ""
-#: varasm.c:4255
+#: varasm.c:4277
msgid "%Jweak declaration of %qD must be public"
msgstr ""
-#: varasm.c:4264
+#: varasm.c:4286
msgid "%Jweak declaration of %qD not supported"
msgstr ""
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4315
msgid "only weak aliases are supported in this configuration"
msgstr ""
-#: varasm.c:4389
-msgid "alias definitions not supported in this configuration; ignored"
+#: varasm.c:4476
+msgid "%J%qD aliased to undefined symbol %qE"
+msgstr ""
+
+#: varasm.c:4479
+msgid "%J%qD aliased to external symbol %qE"
msgstr ""
-#: varasm.c:4418
+#: varasm.c:4510
+msgid "%Jalias definitions not supported in this configuration"
+msgstr ""
+
+#: varasm.c:4515
+msgid "%Jonly weak aliases are supported in this configuration"
+msgstr ""
+
+#: varasm.c:4573
msgid "visibility attribute not supported in this configuration; ignored"
msgstr ""
@@ -7234,293 +7276,308 @@ msgid "debug: "
msgstr ""
#: params.def:44
-msgid ""
-"The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
msgid ""
-"The threshold ratio between instantiated fields and the total structure size."
+"The threshold ratio between instantiated fields and the total structure size"
msgstr ""
-#: params.def:72
+#: params.def:71
msgid ""
"The maximum number of instructions in a single function eligible for inlining"
msgstr ""
-#: params.def:84
+#: params.def:83
msgid "The maximum number of instructions when automatically inlining"
msgstr ""
-#: params.def:89
+#: params.def:88
msgid ""
"The maximum number of instructions inline function can grow to via recursive "
"inlining"
msgstr ""
-#: params.def:94
+#: params.def:93
msgid ""
"The maximum number of instructions non-inline function can grow to via "
"recursive inlining"
msgstr ""
-#: params.def:99
+#: params.def:98
msgid "The maximum depth of recursive inlining for inline functions"
msgstr ""
-#: params.def:104
+#: params.def:103
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr ""
-
-#: params.def:121
+#: params.def:110
msgid ""
"If -fvariable-expansion-in-unroller is used, the maximum number "
"of times that an individual variable will be expanded "
"during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:123
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: params.def:145
+#: params.def:134
msgid ""
"The maximum number of instructions to consider to find accurate live "
"register information"
msgstr ""
-#: params.def:155
+#: params.def:144
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: params.def:160
+#: params.def:149
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:153
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:157
msgid ""
"how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:161
+msgid "expense of call operation relative to ordinary aritmetic operations"
+msgstr ""
+
+#: params.def:168
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: params.def:180
+#: params.def:173
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: params.def:190
+#: params.def:183
msgid ""
-"The threshold ratio for performing partial redundancy elimination "
-"after reload."
+"The threshold ratio for performing partial redundancy elimination after "
+"reload."
msgstr ""
-#: params.def:198
+#: params.def:190
msgid ""
-"The threshold ratio of critical edges execution count that permit "
-"performing redundancy elimination after reload."
+"The threshold ratio of critical edges execution count that permit performing "
+"redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:201
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: params.def:216
+#: params.def:207
msgid ""
"The maximum number of instructions to consider to unroll in a loop on average"
msgstr ""
-#: params.def:221
+#: params.def:212
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:217
msgid "The maximum number of insns of a peeled loop"
msgstr ""
-#: params.def:231
+#: params.def:222
msgid "The maximum number of peelings of a single loop"
msgstr ""
-#: params.def:236
+#: params.def:227
msgid "The maximum number of insns of a completely peeled loop"
msgstr ""
-#: params.def:241
+#: params.def:232
msgid ""
"The maximum number of peelings of a single loop that is peeled completely"
msgstr ""
-#: params.def:246
+#: params.def:237
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr ""
-#: params.def:252
+#: params.def:243
msgid "The maximum number of insns of an unswitched loop"
msgstr ""
-#: params.def:257
+#: params.def:248
msgid "The maximum number of unswitchings in a single loop"
msgstr ""
-#: params.def:264
+#: params.def:255
msgid ""
-"Bound on the number of iterations the brute force # of iterations \t "
-"analysis algorithm evaluates"
+"Bound on the number of iterations the brute force # of iterations analysis "
+"algorithm evaluates"
msgstr ""
-#: params.def:270
+#: params.def:260
msgid ""
-"Maximum number of loops to perform swing modulo scheduling on \t (mainly "
-"for debugging)"
+"Maximum number of loops to perform swing modulo scheduling on (mainly for "
+"debugging)"
msgstr ""
-#: params.def:277
+#: params.def:266
msgid ""
-"A factor for tuning the upper bound that swing modulo scheduler uses \t for "
+"A factor for tuning the upper bound that swing modulo scheduler uses for "
"scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:270
msgid ""
"The number of cycles the swing modulo scheduler considers when \t checking "
"conflicts using DFA"
msgstr ""
-#: params.def:287
+#: params.def:275
msgid ""
-"A threshold on the average loop count considered by the swing modulo \t "
+"A threshold on the average loop count considered by the swing modulo "
"scheduler"
msgstr ""
-#: params.def:293
+#: params.def:280
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:298
+#: params.def:284
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:303
+#: params.def:288
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:308
+#: params.def:292
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:313
+#: params.def:296
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:300
msgid ""
"Stop reverse growth if the reverse probability of best edge is less than "
"this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:304
msgid ""
"Stop forward growth if the probability of best edge is less than this "
"threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:308
msgid ""
"Stop forward growth if the probability of best edge is less than this "
"threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:314
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: params.def:340
+#: params.def:320
msgid ""
"The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-#: params.def:346
+#: params.def:326
+msgid ""
+"The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:332
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:339
msgid ""
"The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:348
msgid ""
"Bound on number of candidates below that all candidates are considered in iv "
"optimizations"
msgstr ""
-#: params.def:370
+#: params.def:356
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr ""
-#: params.def:377
+#: params.def:364
+msgid ""
+"If number of candidates in the set is smaller, we always try to remove "
+"unused ivs during its optimization"
+msgstr ""
+
+#: params.def:371
msgid ""
"Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if "
"NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:376
msgid "The maximum memory locations recorded by cselib"
msgstr ""
-#: params.def:395
+#: params.def:389
msgid ""
"Minimum heap expansion to trigger garbage collection, as a percentage of the "
"total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:394
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:402
msgid ""
"The maximum number of instructions to search backward when looking for "
"equivalent reload"
msgstr ""
-#: params.def:414
+#: params.def:407
msgid ""
"The maximum number of virtual operands allowed to represent aliases before "
"triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:412
msgid ""
"The maximum number of blocks in a region to be considered for interblock "
"scheduling"
msgstr ""
-#: params.def:424
+#: params.def:417
msgid ""
"The maximum number of insns in a region to be considered for interblock "
"scheduling"
msgstr ""
-#: params.def:432
+#: params.def:422
+msgid ""
+"The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:430
msgid "The upper bound for sharing integer constants"
msgstr ""
@@ -7558,9 +7615,9 @@ msgstr ""
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
+#: config/darwin.c:1350
msgid ""
-"internal and protected visibility attributes not supportedin this "
+"internal and protected visibility attributes not supported in this "
"configuration; ignored"
msgstr ""
@@ -7612,15 +7669,15 @@ msgstr ""
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
msgstr ""
-#: config/darwin.h:154
+#: config/darwin.h:157
msgid "Generate code suitable for fast turn around debugging"
msgstr ""
-#: config/darwin.h:156
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
msgstr ""
@@ -7629,7 +7686,7 @@ msgstr ""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
msgid "alias definitions not supported in Mach-O; ignored"
msgstr ""
@@ -7677,7 +7734,7 @@ msgstr ""
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr ""
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1728
#, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr ""
@@ -7717,91 +7774,91 @@ msgstr ""
msgid "bad value %qs for -mmemory-latency"
msgstr ""
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr ""
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr ""
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4137
#, c-format
msgid "invalid %%r value"
msgstr ""
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10927
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr ""
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10846
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr ""
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10874
#, c-format
msgid "invalid %%P value"
msgstr ""
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr ""
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr ""
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10828
#, c-format
msgid "invalid %%m value"
msgstr ""
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10836
#, c-format
msgid "invalid %%M value"
msgstr ""
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr ""
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10935
#, c-format
msgid "invalid %%s value"
msgstr ""
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr ""
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10666
+#: config/rs6000/rs6000.c:10685
#, c-format
msgid "invalid %%E value"
msgstr ""
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr ""
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11253
#, c-format
msgid "invalid %%xn code"
msgstr ""
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6036 config/alpha/alpha.c:6039 config/s390/s390.c:8033
+#: config/s390/s390.c:8036
msgid "bad builtin fcode"
msgstr ""
@@ -7810,22 +7867,14 @@ 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.
-#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:625 config/sparc/sparc.h:630
msgid "Use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:627 config/sparc/sparc.h:632
msgid "Do not use hardware fp"
msgstr ""
@@ -7944,7 +7993,7 @@ msgstr ""
msgid "Tune expected memory latency"
msgstr ""
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -7963,17 +8012,17 @@ msgstr ""
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr ""
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr ""
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr ""
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr ""
@@ -7984,170 +8033,169 @@ msgid "invalid operand to %%V code"
msgstr ""
#. Unknown flag.
-#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7516
msgid "invalid operand output code"
msgstr ""
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr ""
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1238 config/sparc/sparc.c:653
#, c-format
msgid "bad value (%s) for %s switch"
msgstr ""
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr ""
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid ""
"enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid ""
"enabling callee interworking support is only meaningful when compiling for "
"the Thumb"
msgstr ""
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
msgid ""
"enabling caller interworking support is only meaningful when compiling for "
"the Thumb"
msgstr ""
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr ""
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr ""
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:1004
+#: config/arm/arm.c:1018
#, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr ""
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr ""
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr ""
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr ""
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, c-format
msgid "structure size boundary can only be set to %s"
msgstr ""
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4676
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17375 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, c-format
msgid "%qs attribute only applies to functions"
msgstr ""
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
msgid "predicated Thumb instruction"
msgstr ""
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
msgid "predicated instruction in conditional sequence"
msgstr ""
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, c-format
msgid "invalid operand for code '%c'"
msgstr ""
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
msgid "instruction never exectued"
msgstr ""
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
msgid "missing operand"
msgstr ""
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14498 config/i386/i386.c:14532
msgid "mask must be an immediate"
msgstr ""
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr ""
@@ -8255,7 +8303,7 @@ msgstr ""
msgid "Specify the register to be used for PIC addressing"
msgstr ""
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:792
msgid "Specify an ABI"
msgstr ""
@@ -8271,55 +8319,69 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1117
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1124
+msgid "bad address, not post_inc or pre_dec:"
+msgstr ""
+
+#: config/avr/avr.c:1135
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1148
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1771 config/avr/avr.c:2454
msgid "invalid insn:"
msgstr ""
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1805 config/avr/avr.c:1891 config/avr/avr.c:1940
+#: config/avr/avr.c:1968 config/avr/avr.c:2063 config/avr/avr.c:2232
+#: config/avr/avr.c:2488 config/avr/avr.c:2600
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1987 config/avr/avr.c:2148 config/avr/avr.c:2303
+#: config/avr/avr.c:2666
msgid "unknown move insn:"
msgstr ""
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2896
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:3012 config/avr/avr.c:3460 config/avr/avr.c:3846
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4650 config/ip2k/ip2k.c:3157
msgid "only initialized variables can be placed into program memory area"
msgstr ""
-#: config/avr/avr.c:4601
+#: config/avr/avr.c:4693
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4701
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4770
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr ""
-#: config/avr/avr.c:4615
+#: config/avr/avr.c:4784
#, c-format
msgid "MCU %qs supported for assembler only"
msgstr ""
@@ -8489,6 +8551,11 @@ msgstr ""
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.
@@ -8707,243 +8774,234 @@ msgstr ""
msgid "Select CPU to generate code for"
msgstr ""
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
msgid ""
"unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr ""
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr ""
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr ""
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr ""
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr ""
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr ""
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr ""
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr ""
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr ""
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr ""
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr ""
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr ""
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr ""
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr ""
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr ""
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr ""
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr ""
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr ""
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr ""
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr ""
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr ""
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr ""
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
msgid "Generate code for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -8951,46 +9009,46 @@ msgstr ""
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr ""
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr ""
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr ""
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr ""
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
@@ -8998,140 +9056,136 @@ msgstr ""
msgid "Assume small address space"
msgstr ""
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2747
-msgid "Bad insn in frv_print_operand, bad const_double"
-msgstr ""
-
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
+#: config/frv/frv.c:2721
+msgid "bad condition code"
msgstr ""
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#: config/frv/frv.c:2796
+msgid "Bad insn in frv_print_operand, bad const_double"
msgstr ""
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr ""
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr ""
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr ""
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr ""
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr ""
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr ""
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr ""
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr ""
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr ""
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr ""
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, c-format
msgid "inappropriate accumulator for %qs"
msgstr ""
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
msgid "invalid IACC argument"
msgstr ""
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, c-format
msgid "%qs expects a constant argument"
msgstr ""
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, c-format
msgid "constant argument out of range for %qs"
msgstr ""
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9144,8 +9198,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
-#, c-format
+#: config/frv/frv.h:550
msgid " (frv)"
msgstr ""
@@ -9222,177 +9275,195 @@ msgstr ""
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i386/i386.c:1246
+#: config/i386/host-cygwin.c:65
+#, c-format
+msgid "can't extend PCH file: %m"
+msgstr ""
+
+#: config/i386/host-cygwin.c:76
+#, c-format
+msgid "can't set position in PCH file: %m"
+msgstr ""
+
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:616
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr ""
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr ""
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
msgid "code model %<large%> not supported yet"
msgstr ""
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr ""
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr ""
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr ""
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr ""
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr ""
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr ""
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr ""
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, c-format
msgid "argument to %qs attribute larger than %d"
msgstr ""
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2867
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2884
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3132
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6029
msgid "invalid UNSPEC as operand"
msgstr ""
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6267
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6282
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6598
msgid ""
"operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6651
#, c-format
msgid "invalid operand code '%c'"
msgstr ""
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6694
msgid "invalid constraints for operand"
msgstr ""
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11971
msgid "unknown insn mode"
msgstr ""
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14226
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14564
msgid "shift must be an immediate"
msgstr ""
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15703
#, c-format
msgid "%qs incompatible attribute ignored"
msgstr ""
@@ -9500,167 +9571,167 @@ msgstr ""
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr ""
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid ""
"Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -9674,54 +9745,54 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:720
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr ""
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr ""
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr ""
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr ""
@@ -9762,58 +9833,58 @@ msgstr ""
msgid "malformed #pragma builtin"
msgstr ""
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, c-format
msgid "invalid argument of %qs attribute"
msgstr ""
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr ""
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr ""
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr ""
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4187
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4560 config/pa/pa.c:330
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4587 config/pa/pa.c:357
#, c-format
msgid "%s-%s is an empty range"
msgstr ""
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4638
msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4655
msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4672
msgid "cannot optimize square root for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4686
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4698
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr ""
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4714
#, c-format
msgid "bad value (%s) for -tune= switch"
msgstr ""
@@ -9821,171 +9892,167 @@ 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr ""
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr ""
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr ""
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr ""
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr ""
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
msgid "Do not inline floating point division"
msgstr ""
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
msgid "Do not inline integer division"
msgstr ""
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
msgstr ""
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr ""
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr ""
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, c-format
msgid "The compiler does not support -march=%s."
msgstr ""
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr ""
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, c-format
msgid "argument %qd is not a constant"
msgstr ""
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr ""
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4838
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr ""
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10864
#, c-format
msgid "invalid %%p value"
msgstr ""
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4964
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr ""
@@ -10002,87 +10069,87 @@ msgstr ""
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:593
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:595
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:597
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:599
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:788
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:790
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr ""
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr ""
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr ""
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr ""
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr ""
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17580
msgid "bad address"
msgstr ""
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr ""
@@ -10111,11 +10178,11 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:796
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:798
msgid "Specify cache flush function"
msgstr ""
@@ -10132,49 +10199,49 @@ msgstr ""
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr ""
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
msgstr ""
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr ""
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr ""
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr ""
@@ -10268,7 +10335,7 @@ msgstr ""
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr ""
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13707
msgid "stack limit expression is not supported"
msgstr ""
@@ -10405,7 +10472,7 @@ msgstr ""
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
msgid "invalid option %<-mstack-increment=%s%>"
msgstr ""
@@ -10461,140 +10528,145 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4028
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4051
#, c-format
msgid ""
"-mips%s conflicts with the other architecture options, which specify a MIPS%"
"d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4070
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4085
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4087
msgid "-mgp32 used with a 64-bit ABI"
msgstr ""
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4089
msgid "-mgp64 used with a 32-bit ABI"
msgstr ""
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4107 config/mips/mips.c:4109 config/mips/mips.c:4111
+#: config/mips/mips.c:4198
#, c-format
msgid "unsupported combination: %s"
msgstr ""
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4139
+msgid "-mint64 is a deprecated option"
+msgstr ""
+
+#: config/mips/mips.c:4142
+msgid "unrecognized option %<-mfix-vr4130%s%>"
+msgstr ""
+
+#: config/mips/mips.c:4193
msgid ""
"generation of Branch Likely instructions enabled, but not supported by "
"architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4210
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4277
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4286
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4291
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr ""
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4649
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4775
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4789
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4802
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4815
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4829
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4858
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr ""
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4875
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr ""
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4884
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr ""
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4893
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr ""
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4914
#, c-format
msgid "invalid %%Y value"
msgstr ""
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4992
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7589
#, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr ""
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8989
msgid "the cpu name must be lower case"
msgstr ""
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:9011
#, c-format
msgid "bad value (%s) for %s"
msgstr ""
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -10604,63 +10676,63 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:541
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:535
+#: config/mips/mips.h:543
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:537
+#: config/mips/mips.h:545
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:539
+#: config/mips/mips.h:547
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:541
+#: config/mips/mips.h:549
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:543
+#: config/mips/mips.h:551
msgid "Use GNU as (now ignored)"
msgstr ""
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:557 config/mips/mips.h:559
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:553
+#: config/mips/mips.h:561
msgid "Output compiler statistics (now ignored)"
msgstr ""
-#: config/mips/mips.h:555
+#: config/mips/mips.h:563
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:557
+#: config/mips/mips.h:565
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:559
+#: config/mips/mips.h:567
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:561
+#: config/mips/mips.h:569
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:563
+#: config/mips/mips.h:571
msgid "Don't use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:573 config/pa/pa.h:288
msgid "Use software floating point"
msgstr ""
@@ -10670,193 +10742,205 @@ 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:575 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:569
+#: config/mips/mips.h:577
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:571
+#: config/mips/mips.h:579
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:573
+#: config/mips/mips.h:581
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:575
+#: config/mips/mips.h:583
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:577
+#: config/mips/mips.h:585
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:579
+#: config/mips/mips.h:587
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:581
+#: config/mips/mips.h:589
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:583
+#: config/mips/mips.h:591
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:593
+#: config/mips/mips.h:601
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:595
+#: config/mips/mips.h:603
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:597
+#: config/mips/mips.h:605
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:599
+#: config/mips/mips.h:607
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:609 config/mips/mips.h:611
msgid "Use paired-single floating point instructions"
msgstr ""
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:613 config/mips/mips.h:615
msgid "Use MIPS-3D instructions"
msgstr ""
-#: config/mips/mips.h:609
+#: config/mips/mips.h:617
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:611
+#: config/mips/mips.h:619
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:613
+#: config/mips/mips.h:621
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:623 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:617
+#: config/mips/mips.h:625
msgid "Perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:619
+#: config/mips/mips.h:627
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:621
+#: config/mips/mips.h:629
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:623
+#: config/mips/mips.h:631
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:625
+#: config/mips/mips.h:633
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:635
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:637
msgid "Work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:631
+#: config/mips/mips.h:639
msgid "Don't work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:633
+#: config/mips/mips.h:641
msgid "Work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:635
+#: config/mips/mips.h:643
msgid "Don't work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:637
+#: config/mips/mips.h:645
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:647
msgid "Don't work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:641
+#: config/mips/mips.h:649
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:643
+#: config/mips/mips.h:651
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:645
+#: config/mips/mips.h:653
msgid "Use trap to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:647
+#: config/mips/mips.h:655
msgid "Use break to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:649
+#: config/mips/mips.h:657
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:659
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:661
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:663
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:665
msgid "Generate mips16 code"
msgstr ""
-#: config/mips/mips.h:659
+#: config/mips/mips.h:667
msgid "Generate normal-mode code"
msgstr ""
-#: config/mips/mips.h:661
+#: config/mips/mips.h:669
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:671
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:673
msgid "FP exceptions are enabled"
msgstr ""
-#: config/mips/mips.h:667
+#: config/mips/mips.h:675
msgid "FP exceptions are not enabled"
msgstr ""
-#: config/mips/mips.h:782
+#: config/mips/mips.h:677
+msgid "Assume all symbols have 32-bit values"
+msgstr ""
+
+#: config/mips/mips.h:679
+msgid "Don't assume all symbols have 32-bit values"
+msgstr ""
+
+#: config/mips/mips.h:794
msgid "Specify a Standard MIPS ISA"
msgstr ""
+#: config/mips/mips.h:800
+msgid "Work around VR4130 mflo/mfhi errata"
+msgstr ""
+
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2334
msgid "mips16 function profiling"
msgstr ""
@@ -10885,73 +10969,90 @@ msgstr ""
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr ""
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr ""
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
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 ""
@@ -11023,15 +11124,15 @@ msgstr ""
msgid "Do not generate a single exit point for each function"
msgstr ""
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr ""
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr ""
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr ""
@@ -11115,62 +11216,69 @@ msgstr ""
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:404
+#: config/pa/pa.c:418
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:429
+#: config/pa/pa.c:443
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:449
+#: config/pa/pa.c:463
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-#: config/pa/pa.c:454
+#: config/pa/pa.c:468
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-#: config/pa/pa.c:458
+#: config/pa/pa.c:472
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-#: config/pa/pa.c:475
+#: config/pa/pa.c:489
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:480
+#: config/pa/pa.c:494
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:485
+#: config/pa/pa.c:499
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:486
+#: config/pa/pa.c:500
msgid "-g option disabled"
msgstr ""
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8348
+#, c-format
+msgid ""
+"alignment (%u) for %s exceeds maximum alignment for global common data. "
+"Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr ""
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr ""
@@ -11316,11 +11424,11 @@ msgstr ""
msgid "Specify CPU for scheduling purposes."
msgstr ""
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -11457,217 +11565,247 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr ""
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1262
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1269
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1283
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1295
msgid ""
"unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1306
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1362
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1630
#, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1651
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1659
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1664
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1670
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1687
msgid "invalid option for -mfloat-gprs"
msgstr ""
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1703
+msgid ""
+"-malign-power is not supported for 64-bit Darwin; it is incompatible with "
+"the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1710
#, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4770
msgid ""
"GCC vector returned by reference: non-standard ABI extension with no "
"compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4843
msgid ""
"Cannot return value in vector register because altivec instructions are "
"disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5075
msgid ""
"Cannot pass argument in vector register because altivec instructions are "
"disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5938
msgid ""
"GCC vector passed by reference: non-standard ABI extension with no "
"compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6833
msgid "argument 1 must be a 5-bit signed literal"
msgstr ""
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6936 config/rs6000/rs6000.c:7606
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6976
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:6802
+#: config/rs6000/rs6000.c:7030
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7192
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7364
#, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7477
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7492
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7726
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7799
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10694
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10703
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10712
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10747
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10757
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10767
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10787 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10854
#, c-format
msgid "invalid %%O value"
msgstr ""
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10901
#, c-format
msgid "invalid %%q value"
msgstr ""
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10945
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10987
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10997
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:11006 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13670
msgid "stack frame too large"
msgstr ""
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16188
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17278
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17280
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17284
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17286
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17288
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17290
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17292
+msgid "use of %<complex%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
msgstr ""
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr ""
@@ -11727,15 +11865,15 @@ msgstr ""
msgid "-m64 not supported in this configuration"
msgstr ""
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr ""
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr ""
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr ""
@@ -11882,7 +12020,7 @@ msgstr ""
msgid "Do not generate single field mfcr instruction"
msgstr ""
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:718
msgid "Use features of and schedule code for given CPU"
msgstr ""
@@ -11954,7 +12092,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1833
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
@@ -12106,79 +12244,84 @@ msgstr ""
msgid "-m%s not supported in this configuration"
msgstr ""
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr ""
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, c-format
msgid "z/Architecture mode not supported on %s."
msgstr ""
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr ""
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid ""
+"-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
msgid "invalid value for -mwarn-framesize"
msgstr ""
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
msgid "invalid value for -mstack-size"
msgstr ""
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
msgid "invalid value for -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4313
msgid "Cannot decompose address."
msgstr ""
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4505
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6552
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7088
#, c-format
msgid "frame size of %qs is "
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7088
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7092
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12275,29 +12418,28 @@ msgid ""
"trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr ""
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
-#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, c-format
msgid "%qs attribute only applies to interrupt functions"
msgstr ""
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
+#: config/sh/sh.c:7223
#, c-format
msgid "%qs attribute argument not a string constant"
msgstr ""
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, c-format
msgid "%qs attribute argument not an integer constant"
msgstr ""
@@ -12334,7 +12476,7 @@ msgstr ""
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2279
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
@@ -12346,183 +12488,183 @@ msgstr ""
msgid "Profiling is not supported on this target."
msgstr ""
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:589
#, c-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:596
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:621
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7324 config/sparc/sparc.c:7330
#, c-format
msgid "invalid %%Y operand"
msgstr ""
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7400
#, c-format
msgid "invalid %%A operand"
msgstr ""
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7410
#, c-format
msgid "invalid %%B operand"
msgstr ""
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7449
#, c-format
msgid "invalid %%c operand"
msgstr ""
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%C operand"
msgstr ""
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7471
#, c-format
msgid "invalid %%d operand"
msgstr ""
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%D operand"
msgstr ""
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7488
#, c-format
msgid "invalid %%f operand"
msgstr ""
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7502
#, c-format
msgid "invalid %%s operand"
msgstr ""
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7556
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7559
msgid "floating point constant not a valid immediate operand"
msgstr ""
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr ""
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr ""
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr ""
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:635
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:637
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:639
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:641
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:643
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:645
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:647
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:649
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:651
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:653
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:655
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:657
msgid "Do not utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:659
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:661
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:663
msgid "Use 32-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:665
msgid "Use 64-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:667
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:669
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:671
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:673
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:675
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:677
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:722
msgid "Use given SPARC code model"
msgstr ""
@@ -12632,63 +12774,63 @@ msgstr ""
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr ""
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr ""
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr ""
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr ""
@@ -12866,12 +13008,12 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ada/misc.c:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr ""
-#: ada/misc.c:299
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
@@ -12879,483 +13021,488 @@ msgstr ""
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr ""
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
msgid "conversion from %qT to %qT is ambiguous"
msgstr ""
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
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:2890
+#: cp/call.c:2896
#, c-format
msgid ""
"pointer-to-member function %E cannot be called without an object; consider "
"using .* or ->*"
msgstr ""
-#: cp/call.c:2959
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
-#: cp/call.c:2968
+#: cp/call.c:2974
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:3015
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:3020
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:3025
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:3028
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:3195
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr ""
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3398
+#: cp/call.c:3405
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr ""
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3700
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:3753
-msgid "using synthesized %q#D for copy assignment"
-msgstr ""
-
-#: cp/call.c:3755
-msgid " where cfront would use %q#D"
-msgstr ""
-
-#: cp/call.c:3787
+#: cp/call.c:3779
msgid "comparison between %q#T and %q#T"
msgstr ""
-#: cp/call.c:4044
+#: cp/call.c:4038
msgid "no suitable %<operator %s> for %qT"
msgstr ""
-#: cp/call.c:4061
+#: cp/call.c:4055
msgid "%q+#D is private"
msgstr ""
-#: cp/call.c:4063
+#: cp/call.c:4057
msgid "%q+#D is protected"
msgstr ""
-#: cp/call.c:4065
+#: cp/call.c:4059
msgid "%q+#D is inaccessible"
msgstr ""
-#: cp/call.c:4066
+#: cp/call.c:4060
msgid "within this context"
msgstr ""
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4149 cp/cvt.c:263
msgid "invalid conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:4156
+#: cp/call.c:4151
msgid " initializing argument %P of %qD"
msgstr ""
-#: cp/call.c:4300
+#: cp/call.c:4163
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr ""
+
+#: cp/call.c:4166
+msgid "converting to non-pointer type %qT from NULL"
+msgstr ""
+
+#: cp/call.c:4174
+msgid "passing %qT for argument %P to %qD"
+msgstr ""
+
+#: cp/call.c:4177
+msgid "converting to %qT from %qT"
+msgstr ""
+
+#: cp/call.c:4186
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr ""
+
+#: cp/call.c:4189
+msgid "converting negative value %qE to %qT"
+msgstr ""
+
+#: cp/call.c:4331
msgid "cannot bind bitfield %qE to %qT"
msgstr ""
-#: cp/call.c:4303
+#: cp/call.c:4334 cp/call.c:4350
msgid "cannot bind packed field %qE to %qT"
msgstr ""
-#: cp/call.c:4306
+#: cp/call.c:4337
msgid "cannot bind rvalue %qE to %qT"
msgstr ""
-#: cp/call.c:4401
+#: cp/call.c:4446
msgid ""
"cannot pass objects of non-POD type %q#T through %<...%>; call will abort at "
"runtime"
msgstr ""
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4472
msgid ""
"cannot receive objects of non-POD type %q#T through %<...%>; call will abort "
"at runtime"
msgstr ""
-#: cp/call.c:4470
+#: cp/call.c:4515
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr ""
-#: cp/call.c:4675
+#: cp/call.c:4720
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:4694
+#: cp/call.c:4739
msgid "%qT is not an accessible base of %qT"
msgstr ""
-#: cp/call.c:4944
+#: cp/call.c:4989
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:5206
+#: cp/call.c:5249
msgid "call to non-function %qD"
msgstr ""
-#: cp/call.c:5231
+#: cp/call.c:5274
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/call.c:5310
+#: cp/call.c:5353
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr ""
-#: cp/call.c:5328
+#: cp/call.c:5371
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:5352
+#: cp/call.c:5395
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:5957
+#: cp/call.c:6000
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6002 cp/name-lookup.c:4105
msgid " in call to %qD"
msgstr ""
-#: cp/call.c:6016
+#: cp/call.c:6059
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:6017
+#: cp/call.c:6060
msgid " for conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:6019
+#: cp/call.c:6062
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:6140
+#: cp/call.c:6183
msgid ""
"ISO C++ says that these are ambiguous, even though the worst conversion for "
"the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6187
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6188
msgid "candidate 2:"
msgstr ""
-#: cp/call.c:6281
+#: cp/call.c:6324
msgid "could not convert %qE to %qT"
msgstr ""
-#: cp/call.c:6411
+#: cp/call.c:6455
msgid ""
"invalid initialization of non-const reference of type %qT from a temporary "
"of type %qT"
msgstr ""
-#: cp/call.c:6415
+#: cp/call.c:6459
msgid ""
"invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:273
+#: cp/class.c:272
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr ""
-#: cp/class.c:898
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+#: cp/class.c:929
+msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:899
-msgid "Java class %qT cannot have a destructor"
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:998
+#: cp/class.c:1031
msgid "%q#D and %q#D cannot be overloaded"
msgstr ""
-#: cp/class.c:1055
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
msgstr ""
-#: cp/class.c:1058
+#: cp/class.c:1091
#, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr ""
-#: cp/class.c:1108
+#: cp/class.c:1141
msgid "%qD names constructor"
msgstr ""
-#: cp/class.c:1113
+#: cp/class.c:1146
msgid "%qD invalid in %qT"
msgstr ""
-#: cp/class.c:1121
+#: cp/class.c:1154
msgid "no members matching %qD in %q#T"
msgstr ""
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
msgid "%qD invalid in %q#T"
msgstr ""
-#: cp/class.c:1154
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
msgstr ""
-#: cp/class.c:1207
+#: cp/class.c:1237
msgid "base class %q#T has a non-virtual destructor"
msgstr ""
-#: cp/class.c:1226
-msgid ""
-"base %qT with only non-default constructor in class without a constructor"
-msgstr ""
-
-#: cp/class.c:1534
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1545
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1585
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:1923
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2413
msgid "%qD was hidden"
msgstr ""
-#: cp/class.c:2380
+#: cp/class.c:2414
msgid " by %qD"
msgstr ""
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2455 cp/decl2.c:1100
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2462 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2465 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2545
-msgid ""
-"vtable layout for class %qT may not be ABI-compliant and may change in a "
-"future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2632
msgid "bit-field %q#D with non-integral type"
msgstr ""
-#: cp/class.c:2623
+#: cp/class.c:2649
msgid "bit-field %qD width not an integer constant"
msgstr ""
-#: cp/class.c:2629
+#: cp/class.c:2655
msgid "negative width in bit-field %qD"
msgstr ""
-#: cp/class.c:2634
+#: cp/class.c:2660
msgid "zero width for bit-field %qD"
msgstr ""
-#: cp/class.c:2640
+#: cp/class.c:2666
msgid "width of %qD exceeds its type"
msgstr ""
-#: cp/class.c:2649
+#: cp/class.c:2675
msgid "%qD is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:2711
+#: cp/class.c:2735
msgid "member %q#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:2714
+#: cp/class.c:2738
msgid "member %q#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:2717
+#: cp/class.c:2741
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:2744
+#: cp/class.c:2764
msgid "multiple fields in union %qT initialized"
msgstr ""
-#: cp/class.c:2810
+#: cp/class.c:2825
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2885
msgid "%qD may not be static because it is a member of a union"
msgstr ""
-#: cp/class.c:2875
+#: cp/class.c:2890
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2899
msgid "field %qD in local class cannot be static"
msgstr ""
-#: cp/class.c:2890
+#: cp/class.c:2905
msgid "field %qD invalidly declared function type"
msgstr ""
-#: cp/class.c:2896
+#: cp/class.c:2911
msgid "field %qD invalidly declared method type"
msgstr ""
-#: cp/class.c:2929
+#: cp/class.c:2943
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2977
+#: cp/class.c:2990
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2992
+#: cp/class.c:3005
msgid "field %q#D with same name as class"
msgstr ""
-#: cp/class.c:3026
+#: cp/class.c:3038
msgid "%q#T has pointer data members"
msgstr ""
-#: cp/class.c:3030
+#: cp/class.c:3042
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3032
+#: cp/class.c:3044
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:3047
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3468
+#: cp/class.c:3480
msgid ""
"offset of empty base %qT may not be ABI-compliant and maychange in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3592
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3674
msgid "initializer specified for non-virtual method %qD"
msgstr ""
-#: cp/class.c:4321
+#: cp/class.c:4337
msgid ""
"offset of virtual base %qT is not ABI-compliant and may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4436
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4432
+#: cp/class.c:4448
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4603
+#: cp/class.c:4625
msgid ""
"size assigned to %qT may not be ABI-compliant and may change in a future "
"version of GCC"
@@ -13363,74 +13510,74 @@ msgstr ""
#. Versions of G++ before G++ 3.4 did not reset the
#. DECL_MODE.
-#: cp/class.c:4642
+#: cp/class.c:4664
msgid ""
"the offset of %qD may not be ABI-compliant and may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4687
msgid ""
"offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4697
msgid ""
"%qD contains empty classes which may cause base classes to be placed at "
"different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4757
msgid ""
"layout of classes derived from empty class %qT may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4898 cp/parser.c:12906
msgid "redefinition of %q#T"
msgstr ""
-#: cp/class.c:5019
+#: cp/class.c:5048
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5114
+#: cp/class.c:5145
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5530
+#: cp/class.c:5561
msgid "language string %<\"%E\"%> not recognized"
msgstr ""
-#: cp/class.c:5617
+#: cp/class.c:5648
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5773
msgid "no matches converting function %qD to type %q#T"
msgstr ""
-#: cp/class.c:5765
+#: cp/class.c:5796
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr ""
-#: cp/class.c:5791
+#: cp/class.c:5822
msgid "assuming pointer to member %qD"
msgstr ""
-#: cp/class.c:5794
+#: cp/class.c:5825
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5870 cp/class.c:5901 cp/class.c:6053 cp/class.c:6060
msgid "not enough type information"
msgstr ""
-#: cp/class.c:5856
+#: cp/class.c:5887
msgid "argument of type %qT does not match %qT"
msgstr ""
-#: cp/class.c:6006
+#: cp/class.c:6037
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -13439,11 +13586,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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6274 cp/decl.c:1102 cp/name-lookup.c:508 cp/pt.c:2206
msgid "declaration of %q#D"
msgstr ""
-#: cp/class.c:6273
+#: cp/class.c:6275
msgid "changes meaning of %qD from %q+#D"
msgstr ""
@@ -13463,161 +13610,169 @@ msgstr ""
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr ""
-#: cp/cvt.c:499
+#: cp/cvt.c:497
msgid "conversion from %qT to %qT discards qualifiers"
msgstr ""
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4824
msgid "casting %qT to %qT does not dereference pointer"
msgstr ""
-#: cp/cvt.c:544
+#: cp/cvt.c:542
msgid "cannot convert type %qT to type %qT"
msgstr ""
-#: cp/cvt.c:671
+#: cp/cvt.c:670
msgid "conversion from %q#T to %q#T"
msgstr ""
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
msgid "%q#T used where a %qT was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:717
msgid "%q#T used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:765
+#: cp/cvt.c:764
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr ""
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+msgid "pseudo-destructor is not called"
+msgstr ""
+
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:856
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:872
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr ""
#. Only warn when there is no &.
-#: cp/cvt.c:894
+#: cp/cvt.c:898
#, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, c-format
msgid "%s has no effect"
msgstr ""
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+msgid "value computed is not used"
+msgstr ""
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
msgid "ambiguous default type conversion from %qT"
msgstr ""
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/decl.c:368
+#: cp/decl.c:361
msgid "label %qD used but not defined"
msgstr ""
-#: cp/decl.c:379
+#: cp/decl.c:372
msgid "label %qD defined but not used"
msgstr ""
-#: cp/decl.c:1138
+#: cp/decl.c:1009
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr ""
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1010 cp/decl.c:1475
msgid "previous declaration of %qD"
msgstr ""
-#: cp/decl.c:1187
+#: cp/decl.c:1058
msgid "%Jfunction %qD redeclared as inline"
msgstr ""
-#: cp/decl.c:1188
+#: cp/decl.c:1059
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr ""
-#: cp/decl.c:1195
+#: cp/decl.c:1066
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr ""
-#: cp/decl.c:1197
+#: cp/decl.c:1068
msgid "%Jprevious declaration of %qD was inline"
msgstr ""
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1089 cp/decl.c:1160
msgid "shadowing %s function %q#D"
msgstr ""
-#: cp/decl.c:1227
+#: cp/decl.c:1098
msgid "library function %q#D redeclared as non-function %q#D"
msgstr ""
-#: cp/decl.c:1232
+#: cp/decl.c:1103
msgid "conflicts with built-in declaration %q#D"
msgstr ""
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1155 cp/decl.c:1264 cp/decl.c:1280
msgid "new declaration %q#D"
msgstr ""
-#: cp/decl.c:1285
+#: cp/decl.c:1156
msgid "ambiguates built-in declaration %q#D"
msgstr ""
-#: cp/decl.c:1356
+#: cp/decl.c:1227
msgid "%q#D redeclared as different kind of symbol"
msgstr ""
-#: cp/decl.c:1359
+#: cp/decl.c:1230
msgid "previous declaration of %q#D"
msgstr ""
-#: cp/decl.c:1378
+#: cp/decl.c:1249
msgid "declaration of template %q#D"
msgstr ""
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1250 cp/name-lookup.c:509
msgid "conflicts with previous declaration %q#D"
msgstr ""
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1265 cp/decl.c:1281
msgid "ambiguates old declaration %q#D"
msgstr ""
-#: cp/decl.c:1402
+#: cp/decl.c:1273
msgid "declaration of C function %q#D conflicts with"
msgstr ""
-#: cp/decl.c:1404
+#: cp/decl.c:1275
msgid "previous declaration %q#D here"
msgstr ""
-#: cp/decl.c:1417
+#: cp/decl.c:1288
msgid "conflicting declaration %q#D"
msgstr ""
-#: cp/decl.c:1418
+#: cp/decl.c:1289
msgid "%qD has a previous declaration as %q#D"
msgstr ""
@@ -13628,65 +13783,65 @@ msgstr ""
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1342
msgid "declaration of namespace %qD conflicts with"
msgstr ""
-#: cp/decl.c:1472
+#: cp/decl.c:1343
msgid "previous declaration of namespace %qD here"
msgstr ""
-#: cp/decl.c:1484
+#: cp/decl.c:1355
msgid "%q#D previously defined here"
msgstr ""
-#: cp/decl.c:1485
+#: cp/decl.c:1356
msgid "%q#D previously declared here"
msgstr ""
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1365
msgid "prototype for %q#D"
msgstr ""
-#: cp/decl.c:1495
+#: cp/decl.c:1366
msgid "%Jfollows non-prototype definition here"
msgstr ""
-#: cp/decl.c:1507
+#: cp/decl.c:1378
msgid "previous declaration of %q#D with %qL linkage"
msgstr ""
-#: cp/decl.c:1509
+#: cp/decl.c:1380
msgid "conflicts with new declaration with %qL linkage"
msgstr ""
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1403 cp/decl.c:1410
msgid "default argument given for parameter %d of %q#D"
msgstr ""
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1405 cp/decl.c:1412
msgid "after previous specification in %q#D"
msgstr ""
-#: cp/decl.c:1550
+#: cp/decl.c:1421
msgid "%q#D was used before it was declared inline"
msgstr ""
-#: cp/decl.c:1551
+#: cp/decl.c:1422
msgid "%Jprevious non-inline declaration here"
msgstr ""
-#: cp/decl.c:1603
+#: cp/decl.c:1474
msgid "redundant redeclaration of %qD in same scope"
msgstr ""
-#: cp/decl.c:1697
+#: cp/decl.c:1568
#, c-format
msgid "declaration of %qF throws different exceptions"
msgstr ""
-#: cp/decl.c:1699
+#: cp/decl.c:1570
#, c-format
msgid "than previous declaration %qF"
msgstr ""
@@ -13699,824 +13854,839 @@ 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:1852
+#: cp/decl.c:1730
msgid "explicit specialization of %qD after first use"
msgstr ""
-#: cp/decl.c:1931
+#: cp/decl.c:1809
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1811
msgid "%Jconflicts with previous declaration here"
msgstr ""
-#: cp/decl.c:2161
+#: cp/decl.c:2055
#, c-format
msgid "label %qE referenced outside of any function"
msgstr ""
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2151 cp/decl.c:2175 cp/decl.c:2263
msgid "jump to label %qD"
msgstr ""
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2153 cp/decl.c:2177
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2156 cp/decl.c:2180
msgid "%H from here"
msgstr ""
-#: cp/decl.c:2267
+#: cp/decl.c:2161
msgid " crosses initialization of %q#D"
msgstr ""
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2164 cp/decl.c:2279
msgid " enters scope of non-POD %q#D"
msgstr ""
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2184 cp/decl.c:2283
msgid " enters try block"
msgstr ""
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2186 cp/decl.c:2285
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:2370
+#: cp/decl.c:2264
msgid " from here"
msgstr ""
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2275
msgid "%J enters catch block"
msgstr ""
-#: cp/decl.c:2383
+#: cp/decl.c:2277
msgid " skips initialization of %q#D"
msgstr ""
-#: cp/decl.c:2417
+#: cp/decl.c:2311
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:2420
+#: cp/decl.c:2314
msgid "duplicate label %qD"
msgstr ""
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2562 cp/parser.c:3525
msgid "%qD used without template parameters"
msgstr ""
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2579 cp/decl.c:2670
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2600 cp/decl.c:2610 cp/decl.c:2630
msgid "no type named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2776
+#: cp/decl.c:2679
msgid "template parameters do not match template"
msgstr ""
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2680 cp/friend.c:317 cp/friend.c:325
msgid "%qD declared here"
msgstr ""
-#: cp/decl.c:3448
+#: cp/decl.c:3351
msgid "%Jan anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:3466
+#: cp/decl.c:3369
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3470
+#: cp/decl.c:3373
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3474
+#: cp/decl.c:3377
msgid ""
"member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3500
+#: cp/decl.c:3403
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:3504
+#: cp/decl.c:3407
msgid "redeclaration of C++ built-in type %qT"
msgstr ""
-#: cp/decl.c:3540
+#: cp/decl.c:3444
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:3548
+#: cp/decl.c:3452
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:3555
+#: cp/decl.c:3459
#, c-format
msgid "%qs can only be specified for functions"
msgstr ""
-#: cp/decl.c:3561
+#: cp/decl.c:3465
msgid "%<friend%> can only be specified inside a class"
msgstr ""
-#: cp/decl.c:3563
+#: cp/decl.c:3467
msgid "%<explicit%> can only be specified for constructors"
msgstr ""
-#: cp/decl.c:3565
+#: cp/decl.c:3469
msgid "a storage class can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3571
+#: cp/decl.c:3475
msgid "qualifiers can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3601
+#: cp/decl.c:3505
msgid "attribute ignored in declaration of %q#T"
msgstr ""
-#: cp/decl.c:3602
+#: cp/decl.c:3506
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3629
msgid "function %q#D is initialized like a variable"
msgstr ""
-#: cp/decl.c:3735
+#: cp/decl.c:3641
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr ""
-#: cp/decl.c:3766
+#: cp/decl.c:3671
msgid "%q#D is not a static member of %q#T"
msgstr ""
-#: cp/decl.c:3772
+#: cp/decl.c:3677
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:3781
+#: cp/decl.c:3686
msgid ""
"template header not allowed in member definition of explicitly specialized "
"class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3694
msgid "duplicate initialization of %qD"
msgstr ""
-#: cp/decl.c:3822
+#: cp/decl.c:3732
msgid "declaration of %q#D outside of class is not definition"
msgstr ""
-#: cp/decl.c:3871
+#: cp/decl.c:3781
msgid "variable %q#D has initializer but incomplete type"
msgstr ""
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3788 cp/decl.c:4410
msgid "elements of array %q#D have incomplete type"
msgstr ""
-#: cp/decl.c:3894
+#: cp/decl.c:3804
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr ""
-#: cp/decl.c:3944
+#: cp/decl.c:3854
msgid "%qD declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:3950
+#: cp/decl.c:3860
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr ""
-#: cp/decl.c:3979
+#: cp/decl.c:3886
msgid "cannot initialize %qT from %qT"
msgstr ""
-#: cp/decl.c:4011
+#: cp/decl.c:3919
msgid "initializer fails to determine size of %qD"
msgstr ""
-#: cp/decl.c:4016
+#: cp/decl.c:3924
msgid "array size missing in %qD"
msgstr ""
-#: cp/decl.c:4028
+#: cp/decl.c:3934
msgid "zero-size array %qD"
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:4065
+#: cp/decl.c:3971
msgid "storage size of %qD isn't known"
msgstr ""
-#: cp/decl.c:4087
+#: cp/decl.c:3993
msgid "storage size of %qD isn't constant"
msgstr ""
-#: cp/decl.c:4142
+#: cp/decl.c:4048
msgid ""
"sorry: semantics of inline function static data %q#D are wrong (you'll wind "
"up with multiple copies)"
msgstr ""
-#: cp/decl.c:4145
+#: cp/decl.c:4051
msgid "%J you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:4172
+#: cp/decl.c:4078
msgid "uninitialized const %qD"
msgstr ""
-#: cp/decl.c:4232
+#: cp/decl.c:4143
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
-#, c-format
-msgid "Designated initializer %qE larger than array size"
-msgstr ""
-
-#: cp/decl.c:4313
+#: cp/decl.c:4214
msgid "brace-enclosed initializer used to initialize %qT"
msgstr ""
-#: cp/decl.c:4376
+#: cp/decl.c:4279
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:4392
+#: cp/decl.c:4295
msgid "ISO C++ does not allow designated initializers"
msgstr ""
-#: cp/decl.c:4396
+#: cp/decl.c:4299
msgid "%qT has no non-static data member named %qD"
msgstr ""
-#: cp/decl.c:4458
+#: cp/decl.c:4363
msgid "too many initializers for %qT"
msgstr ""
-#: cp/decl.c:4496
+#: cp/decl.c:4404
msgid "variable-sized object %qD may not be initialized"
msgstr ""
-#: cp/decl.c:4507
+#: cp/decl.c:4415
msgid "%qD has incomplete type"
msgstr ""
-#: cp/decl.c:4561
+#: cp/decl.c:4469
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:4606
+#: cp/decl.c:4505
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr ""
+
+#: cp/decl.c:4520
msgid "structure %qD with uninitialized const members"
msgstr ""
-#: cp/decl.c:4608
+#: cp/decl.c:4522
msgid "structure %qD with uninitialized reference members"
msgstr ""
-#: cp/decl.c:4803
+#: cp/decl.c:4722
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:4820
+#: cp/decl.c:4739
msgid "cannot initialize %qD to namespace %qD"
msgstr ""
-#: cp/decl.c:4863
+#: cp/decl.c:4780
msgid "shadowing previous type declaration of %q#D"
msgstr ""
-#: cp/decl.c:4900
+#: cp/decl.c:4814
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr ""
-#: cp/decl.c:4915
+#: cp/decl.c:4829
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:5523
+#: cp/decl.c:5388
msgid "destructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5525
+#: cp/decl.c:5390
msgid "constructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5546
+#: cp/decl.c:5411
msgid "%qD declared as a %<virtual%> %s"
msgstr ""
-#: cp/decl.c:5548
+#: cp/decl.c:5413
msgid "%qD declared as an %<inline%> %s"
msgstr ""
-#: cp/decl.c:5550
+#: cp/decl.c:5415
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in %s "
"declaration"
msgstr ""
-#: cp/decl.c:5554
+#: cp/decl.c:5419
msgid "%qD declared as a friend"
msgstr ""
-#: cp/decl.c:5560
+#: cp/decl.c:5425
msgid "%qD declared with an exception specification"
msgstr ""
-#: cp/decl.c:5643
+#: cp/decl.c:5511
msgid "cannot declare %<::main%> to be a template"
msgstr ""
-#: cp/decl.c:5645
+#: cp/decl.c:5513
msgid "cannot declare %<::main%> to be inline"
msgstr ""
-#: cp/decl.c:5647
+#: cp/decl.c:5515
msgid "cannot declare %<::main%> to be static"
msgstr ""
-#: cp/decl.c:5651
+#: cp/decl.c:5519
msgid "%<::main%> must return %<int%>"
msgstr ""
-#: cp/decl.c:5681
+#: cp/decl.c:5549
msgid "non-local function %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5552 cp/decl.c:5888
msgid ""
"%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:5690
+#: cp/decl.c:5558
msgid "non-local function %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:5713
+#: cp/decl.c:5581
msgid "%smember function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:5737
+#: cp/decl.c:5605
msgid "defining explicit specialization %qD in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5615
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr ""
-#: cp/decl.c:5775
+#: cp/decl.c:5643
msgid ""
"default arguments are not allowed in declaration of friend template "
"specialization %qD"
msgstr ""
-#: cp/decl.c:5783
+#: cp/decl.c:5651
msgid ""
"%<inline%> is not allowed in declaration of friend template specialization %"
"qD"
msgstr ""
-#: cp/decl.c:5850
+#: cp/decl.c:5717
msgid "definition of implicitly-declared %qD"
msgstr ""
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5737 cp/decl2.c:712
msgid "no %q#D member function declared in class %qT"
msgstr ""
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5885
msgid "non-local variable %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:6035
+#: cp/decl.c:5894
msgid "non-local variable %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:6150
+#: cp/decl.c:6011
msgid ""
"invalid in-class initialization of static data member of non-integral type %"
"qT"
msgstr ""
-#: cp/decl.c:6160
+#: cp/decl.c:6021
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr ""
-#: cp/decl.c:6164
+#: cp/decl.c:6025
msgid ""
"ISO C++ forbids initialization of member constant %qD of non-integral type %"
"qT"
msgstr ""
-#: cp/decl.c:6184
+#: cp/decl.c:6045
msgid "size of array %qD has non-integral type %qT"
msgstr ""
-#: cp/decl.c:6186
+#: cp/decl.c:6047
msgid "size of array has non-integral type %qT"
msgstr ""
-#: cp/decl.c:6222
+#: cp/decl.c:6083
msgid "size of array %qD is negative"
msgstr ""
-#: cp/decl.c:6224
+#: cp/decl.c:6085
msgid "size of array is negative"
msgstr ""
-#: cp/decl.c:6232
+#: cp/decl.c:6093
msgid "ISO C++ forbids zero-size array %qD"
msgstr ""
-#: cp/decl.c:6234
+#: cp/decl.c:6095
msgid "ISO C++ forbids zero-size array"
msgstr ""
-#: cp/decl.c:6241
+#: cp/decl.c:6102
msgid "size of array %qD is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:6244
+#: cp/decl.c:6105
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:6249
+#: cp/decl.c:6110
msgid "ISO C++ forbids variable-size array %qD"
msgstr ""
-#: cp/decl.c:6251
+#: cp/decl.c:6112
msgid "ISO C++ forbids variable-size array"
msgstr ""
-#: cp/decl.c:6281
+#: cp/decl.c:6142
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:6356
+#: cp/decl.c:6216
msgid "declaration of %qD as %s"
msgstr ""
-#: cp/decl.c:6358
+#: cp/decl.c:6218
#, c-format
msgid "creating %s"
msgstr ""
-#: cp/decl.c:6370
+#: cp/decl.c:6230
msgid ""
"declaration of %qD as multidimensional array must have bounds for all "
"dimensions except the first"
msgstr ""
-#: cp/decl.c:6374
+#: cp/decl.c:6234
msgid ""
"multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6409
+#: cp/decl.c:6269
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:6419
+#: cp/decl.c:6279
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:6432
+#: cp/decl.c:6292
msgid "operator %qT declared to return %qT"
msgstr ""
-#: cp/decl.c:6434
+#: cp/decl.c:6294
msgid "return type specified for %<operator %T%>"
msgstr ""
-#: cp/decl.c:6456
+#: cp/decl.c:6316
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:6460
+#: cp/decl.c:6320
#, c-format
msgid "variable or field %qE declared void"
msgstr ""
-#: cp/decl.c:6463
+#: cp/decl.c:6323
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:6629
+#: cp/decl.c:6478
msgid "type %qT is not derived from type %qT"
msgstr ""
-#: cp/decl.c:6674
-msgid "declarator-id missing; using reserved word %qD"
+#: cp/decl.c:6498 cp/decl.c:6590 cp/decl.c:7734
+msgid "declaration of %qD as non-function"
msgstr ""
-#: cp/decl.c:6730 cp/decl.c:7824
-msgid "declaration of %qD as non-function"
+#: cp/decl.c:6504
+msgid "declaration of %qD as non-member"
msgstr ""
-#: cp/decl.c:6763
+#: cp/decl.c:6534
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.c:6623
#, c-format
msgid "two or more data types in declaration of %qs"
msgstr ""
-#: cp/decl.c:6806
+#: cp/decl.c:6666
msgid "ISO C++ does not support %<long long%>"
msgstr ""
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6726 cp/decl.c:6728
#, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr ""
-#: cp/decl.c:6893
+#: cp/decl.c:6753
#, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr ""
-#: cp/decl.c:6895
+#: cp/decl.c:6755
#, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr ""
-#: cp/decl.c:6897
+#: cp/decl.c:6757
#, c-format
msgid "long and short specified together for %qs"
msgstr ""
-#: cp/decl.c:6899
+#: cp/decl.c:6759
#, c-format
msgid "long or short specified with char for %qs"
msgstr ""
-#: cp/decl.c:6901
+#: cp/decl.c:6761
#, c-format
msgid "long or short specified with floating type for %qs"
msgstr ""
-#: cp/decl.c:6903
+#: cp/decl.c:6763
#, c-format
msgid "signed and unsigned given together for %qs"
msgstr ""
-#: cp/decl.c:6909
+#: cp/decl.c:6769
#, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr ""
-#: cp/decl.c:6974
+#: cp/decl.c:6834
#, c-format
msgid "complex invalid for %qs"
msgstr ""
-#: cp/decl.c:7003
+#: cp/decl.c:6863
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:6875 cp/typeck.c:6391
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr ""
+
+#: cp/decl.c:6898
msgid "member %qD cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:7031
+#: cp/decl.c:6905
msgid "%<%T::%D%> is not a valid declarator"
msgstr ""
-#: cp/decl.c:7039
+#: cp/decl.c:6913
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:7043
+#: cp/decl.c:6917
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:7050
+#: cp/decl.c:6924
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6937 cp/decl.c:6944
#, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr ""
-#: cp/decl.c:7113
+#: cp/decl.c:6987
#, c-format
msgid "storage class specified for %s %qs"
msgstr ""
-#: cp/decl.c:7150
+#: cp/decl.c:7024
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr ""
-#: cp/decl.c:7162
+#: cp/decl.c:7036
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:7289
+#: cp/decl.c:7162
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7292
+#: cp/decl.c:7165
msgid "destructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:7312
+#: cp/decl.c:7185
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7315
+#: cp/decl.c:7188
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:7320
+#: cp/decl.c:7193
msgid "constructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:7340
+#: cp/decl.c:7213
#, c-format
msgid "can't initialize friend function %qs"
msgstr ""
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7217
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:7348
+#: cp/decl.c:7221
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:7350
+#: cp/decl.c:7223
#, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr ""
-#: cp/decl.c:7363
+#: cp/decl.c:7236
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7255 cp/decl.c:7262
msgid "cannot declare reference to %q#T"
msgstr ""
-#: cp/decl.c:7382
+#: cp/decl.c:7256
msgid "cannot declare pointer to %q#T"
msgstr ""
-#: cp/decl.c:7390
+#: cp/decl.c:7264
msgid "cannot declare pointer to %q#T member"
msgstr ""
-#: cp/decl.c:7446
+#: cp/decl.c:7303
+msgid "%qD is a namespace"
+msgstr ""
+
+#: cp/decl.c:7342
msgid "template-id %qD used as a declarator"
msgstr ""
-#: cp/decl.c:7497
+#: cp/decl.c:7389
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr ""
-#: cp/decl.c:7516
+#: cp/decl.c:7408
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:7531
+#: cp/decl.c:7423
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr ""
-#: cp/decl.c:7570
+#: cp/decl.c:7462
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:7572
+#: cp/decl.c:7464
msgid "parameter may not have variably modified type %qT"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7472
msgid "only declarations of constructors can be %<explicit%>"
msgstr ""
-#: cp/decl.c:7588
+#: cp/decl.c:7480
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7593
+#: cp/decl.c:7485
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7599
+#: cp/decl.c:7491
msgid "function %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7604
+#: cp/decl.c:7496
msgid "static %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7609
+#: cp/decl.c:7501
msgid "const %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:7627
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+#: cp/decl.c:7521
+msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
+#: cp/decl.c:7537
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:7689
-msgid "%Jinvalid type qualifier for non-member function type"
+#: cp/decl.c:7636
+#, c-format
+msgid "qualified function types cannot be used to declare %s functions"
msgstr ""
-#: cp/decl.c:7752
+#: cp/decl.c:7662
msgid "type qualifiers specified for friend class declaration"
msgstr ""
-#: cp/decl.c:7757
+#: cp/decl.c:7667
msgid "%<inline%> specified for friend class declaration"
msgstr ""
-#: cp/decl.c:7765
+#: cp/decl.c:7675
msgid "template parameters cannot be friends"
msgstr ""
-#: cp/decl.c:7767
+#: cp/decl.c:7677
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:7771
+#: cp/decl.c:7681
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr ""
-#: cp/decl.c:7784
+#: cp/decl.c:7694
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:7705
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:7814
+#: cp/decl.c:7724
msgid "abstract declarator %qT used as declaration"
msgstr ""
-#: cp/decl.c:7839
+#: cp/decl.c:7749
msgid "cannot use %<::%> in parameter declaration"
msgstr ""
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7794
msgid "invalid use of %<::%>"
msgstr ""
-#: cp/decl.c:7896
-msgid "function %qD cannot be declared friend"
-msgstr ""
-
-#: cp/decl.c:7908
+#: cp/decl.c:7809
msgid "can't make %qD into a method -- not in a class"
msgstr ""
-#: cp/decl.c:7917
+#: cp/decl.c:7818
msgid "function %qD declared virtual inside a union"
msgstr ""
-#: cp/decl.c:7926
+#: cp/decl.c:7827
msgid "%qD cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:8006
+#: cp/decl.c:7845
+msgid "declaration of %qD as member of %qT"
+msgstr ""
+
+#: cp/decl.c:7921
msgid "field %qD has incomplete type"
msgstr ""
-#: cp/decl.c:8008
+#: cp/decl.c:7923
msgid "name %qT has incomplete type"
msgstr ""
-#: cp/decl.c:8017
+#: cp/decl.c:7932
msgid " in instantiation of template %qT"
msgstr ""
-#: cp/decl.c:8027
+#: cp/decl.c:7942
#, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:8038
+#: cp/decl.c:7953
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -14532,81 +14702,81 @@ 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:8078
+#: cp/decl.c:7993
msgid "ISO C++ forbids initialization of member %qD"
msgstr ""
-#: cp/decl.c:8080
+#: cp/decl.c:7995
msgid "making %qD static"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8053
msgid "storage class %<auto%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:8140
+#: cp/decl.c:8055
msgid "storage class %<register%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:8142
+#: cp/decl.c:8057
msgid "storage class %<__thread%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:8153
+#: cp/decl.c:8068
msgid ""
"%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8156
+#: cp/decl.c:8071
msgid ""
"%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8164
+#: cp/decl.c:8079
#, c-format
msgid "virtual non-class function %qs"
msgstr ""
-#: cp/decl.c:8195
+#: cp/decl.c:8110
msgid "cannot declare member function %qD to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8117
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:8231
+#: cp/decl.c:8146
msgid ""
"%<static%> may not be used when defining (as opposed to declaring) a static "
"data member"
msgstr ""
-#: cp/decl.c:8238
+#: cp/decl.c:8153
msgid "static member %qD declared %<register%>"
msgstr ""
-#: cp/decl.c:8243
+#: cp/decl.c:8158
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:8386
+#: cp/decl.c:8301
msgid "default argument for %q#D has type %qT"
msgstr ""
-#: cp/decl.c:8389
+#: cp/decl.c:8304
msgid "default argument for parameter of type %qT has type %qT"
msgstr ""
-#: cp/decl.c:8406
+#: cp/decl.c:8321
msgid "default argument %qE uses local variable %qD"
msgstr ""
-#: cp/decl.c:8474
+#: cp/decl.c:8389
msgid "parameter %qD invalidly declared method type"
msgstr ""
-#: cp/decl.c:8498
+#: cp/decl.c:8413
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr ""
@@ -14625,110 +14795,110 @@ 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:8657
+#: cp/decl.c:8572
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8696
msgid "%qD may not be declared within a namespace"
msgstr ""
-#: cp/decl.c:8783
+#: cp/decl.c:8698
msgid "%qD may not be declared as static"
msgstr ""
-#: cp/decl.c:8803
+#: cp/decl.c:8718
msgid "%qD must be a nonstatic member function"
msgstr ""
-#: cp/decl.c:8809
+#: cp/decl.c:8724
msgid ""
"%qD must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:8827
+#: cp/decl.c:8742
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:8862
+#: cp/decl.c:8777
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8785
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:8920
+#: cp/decl.c:8835
msgid "postfix %qD must take %<int%> as its argument"
msgstr ""
-#: cp/decl.c:8924
+#: cp/decl.c:8839
msgid "postfix %qD must take %<int%> as its second argument"
msgstr ""
-#: cp/decl.c:8931
+#: cp/decl.c:8846
msgid "%qD must take either zero or one argument"
msgstr ""
-#: cp/decl.c:8933
+#: cp/decl.c:8848
msgid "%qD must take either one or two arguments"
msgstr ""
-#: cp/decl.c:8954
+#: cp/decl.c:8869
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:8875
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8969
+#: cp/decl.c:8884
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8886 cp/decl.c:8894
msgid "%qD must take exactly one argument"
msgstr ""
-#: cp/decl.c:8981
+#: cp/decl.c:8896
msgid "%qD must take exactly two arguments"
msgstr ""
-#: cp/decl.c:8989
+#: cp/decl.c:8904
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:9003
+#: cp/decl.c:8918
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8930 cp/decl.c:8933
msgid "%qD cannot have default arguments"
msgstr ""
-#: cp/decl.c:9072
+#: cp/decl.c:8991
msgid "using template type parameter %qT after %qs"
msgstr ""
-#: cp/decl.c:9086
+#: cp/decl.c:9006
msgid "using typedef-name %qD after %qs"
msgstr ""
-#: cp/decl.c:9087
+#: cp/decl.c:9007
msgid "%qD has a previous declaration here"
msgstr ""
-#: cp/decl.c:9094
+#: cp/decl.c:9015
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9016 cp/decl.c:9024
msgid "%qT has a previous declaration here"
msgstr ""
-#: cp/decl.c:9101
+#: cp/decl.c:9023
msgid "%qT referred to as enum"
msgstr ""
@@ -14739,47 +14909,51 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9039
msgid "template argument required for %<%s %T%>"
msgstr ""
-#: cp/decl.c:9279
+#: cp/decl.c:9075 cp/name-lookup.c:2596
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9213
msgid "use of enum %q#D without previous declaration"
msgstr ""
-#: cp/decl.c:9298
+#: cp/decl.c:9232
msgid "redeclaration of %qT as a non-template"
msgstr ""
-#: cp/decl.c:9391
+#: cp/decl.c:9325
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:9397
+#: cp/decl.c:9331
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:9405
+#: cp/decl.c:9339
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:9424
+#: cp/decl.c:9358
msgid "base type %qT fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:9457
+#: cp/decl.c:9391
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:9459
+#: cp/decl.c:9393
msgid "duplicate base type %qT invalid"
msgstr ""
-#: cp/decl.c:9529
+#: cp/decl.c:9463
msgid "multiple definition of %q#T"
msgstr ""
-#: cp/decl.c:9530
+#: cp/decl.c:9464
msgid "%Jprevious definition here"
msgstr ""
@@ -14787,237 +14961,233 @@ msgstr ""
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9601
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9707
msgid "enumerator value for %qD not integer constant"
msgstr ""
-#: cp/decl.c:9795
+#: cp/decl.c:9734
msgid "overflow in enumeration values at %qD"
msgstr ""
-#: cp/decl.c:9866
+#: cp/decl.c:9805
msgid "return type %q#T is incomplete"
msgstr ""
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9920 cp/typeck.c:6150
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:10248
msgid "parameter %qD declared void"
msgstr ""
-#: cp/decl.c:10786
+#: cp/decl.c:10737
msgid "invalid member function declaration"
msgstr ""
-#: cp/decl.c:10801
+#: cp/decl.c:10752
msgid "%qD is already defined in class %qT"
msgstr ""
-#: cp/decl.c:11012
+#: cp/decl.c:10962
msgid "static member function %q#D declared with type qualifiers"
msgstr ""
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr ""
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:381
+#: cp/decl2.c:380
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr ""
-#: cp/decl2.c:426
+#: cp/decl2.c:423
msgid "deleting array %q#D"
msgstr ""
-#: cp/decl2.c:432
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr ""
-#: cp/decl2.c:444
+#: cp/decl2.c:441
msgid ""
"cannot delete a function. Only pointer-to-objects are valid arguments to %"
"<delete%>"
msgstr ""
-#: cp/decl2.c:452
+#: cp/decl2.c:449
msgid "deleting %qT is undefined"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
msgid "invalid declaration of member template %q#D in local class"
msgstr ""
-#: cp/decl2.c:497
+#: cp/decl2.c:494
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr ""
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2973
msgid "template declaration of %q#D"
msgstr ""
-#: cp/decl2.c:556
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
msgstr ""
-#: cp/decl2.c:572
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
msgstr ""
-#: cp/decl2.c:677
+#: cp/decl2.c:674
msgid "prototype for %q#D does not match any in class %qT"
msgstr ""
-#: cp/decl2.c:778
+#: cp/decl2.c:775
msgid "local class %q#T shall not have static data member %q#D"
msgstr ""
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:870
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
msgid "%qD is already defined in %qT"
msgstr ""
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:964
+#: cp/decl2.c:972
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
msgid "cannot declare %qD to be a bit-field type"
msgstr ""
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
msgid "cannot declare bit-field %qD with function type"
msgstr ""
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
msgid "%qD is already defined in the class %qT"
msgstr ""
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
msgid "static member %qD cannot be a bit-field"
msgstr ""
-#: cp/decl2.c:1093
-msgid "initializer specified for non-member function %qD"
-msgstr ""
-
-#: cp/decl2.c:1097
-msgid "invalid initializer for virtual method %qD"
-msgstr ""
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr ""
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
msgid "%<operator new%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr ""
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
msgid "%<operator delete%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr ""
-#: cp/decl2.c:3033
+#: cp/decl2.c:3013
msgid "inline function %qD used but never defined"
msgstr ""
-#: cp/decl2.c:3178
+#: cp/decl2.c:3161
msgid "default argument missing for parameter %P of %q+#D"
msgstr ""
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr ""
-#: cp/except.c:250
+#: cp/except.c:273
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr ""
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1887
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:810
+#: cp/except.c:836
msgid ""
"expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:895
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
msgstr ""
-#: cp/except.c:897
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
msgstr ""
-#: cp/except.c:927
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr ""
@@ -15032,10 +15202,6 @@ msgstr ""
#. [temp.friend]
#. Friend declarations shall not declare partial
#. specializations.
-#. template <class U> friend class T::X<U>;
-#. [temp.friend]
-#. Friend declarations shall not declare partial
-#. specializations.
#: cp/friend.c:244 cp/friend.c:274
msgid "partial specialization %qT declared %<friend%>"
msgstr ""
@@ -15094,184 +15260,192 @@ msgstr ""
msgid "argument to '%s' missing\n"
msgstr ""
-#: cp/init.c:316
+#: cp/init.c:326
msgid "%J%qD should be initialized in the member initialization list"
msgstr ""
-#: cp/init.c:363
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr ""
-#: cp/init.c:369
+#: cp/init.c:379
msgid "%Juninitialized reference member %qD"
msgstr ""
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
msgid "%qD will be initialized after"
msgstr ""
-#: cp/init.c:518
+#: cp/init.c:528
msgid "base %qT will be initialized after"
msgstr ""
-#: cp/init.c:521
+#: cp/init.c:531
msgid " %q#D"
msgstr ""
-#: cp/init.c:523
+#: cp/init.c:533
msgid " base %qT"
msgstr ""
-#: cp/init.c:524
+#: cp/init.c:534
msgid "%J when initialized here"
msgstr ""
-#: cp/init.c:540
+#: cp/init.c:550
msgid "%Jmultiple initializations given for %qD"
msgstr ""
-#: cp/init.c:543
+#: cp/init.c:553
msgid "%Jmultiple initializations given for base %qT"
msgstr ""
-#: cp/init.c:610
+#: cp/init.c:620
msgid "%Jinitializations for multiple members of %qT"
msgstr ""
-#: cp/init.c:667
+#: cp/init.c:682
msgid ""
"%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:906 cp/init.c:925
msgid "class %qT does not have any field named %qD"
msgstr ""
-#: cp/init.c:897
+#: cp/init.c:912
msgid ""
"%q#D is a static data member; it can only be initialized at its definition"
msgstr ""
-#: cp/init.c:904
+#: cp/init.c:919
msgid "%q#D is not a non-static data member of %qT"
msgstr ""
-#: cp/init.c:943
+#: cp/init.c:958
msgid "unnamed initializer for %qT, which has no base classes"
msgstr ""
-#: cp/init.c:951
+#: cp/init.c:966
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:997
+#: cp/init.c:1012
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1005
+#: cp/init.c:1020
msgid "type %qD is not a direct or virtual base of %qT"
msgstr ""
-#: cp/init.c:1008
+#: cp/init.c:1023
msgid "type %qD is not a direct base of %qT"
msgstr ""
-#: cp/init.c:1088
+#: cp/init.c:1103
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1287
+#: cp/init.c:1302
msgid "%qT is not an aggregate type"
msgstr ""
-#: cp/init.c:1379
+#: cp/init.c:1394
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr ""
-#: cp/init.c:1387
+#: cp/init.c:1402
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1421
msgid "%qD is not a member of type %qT"
msgstr ""
-#: cp/init.c:1433
+#: cp/init.c:1440
msgid "invalid pointer to bit-field %qD"
msgstr ""
-#: cp/init.c:1535
+#: cp/init.c:1542
msgid "invalid use of non-static member function %qD"
msgstr ""
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1548 cp/semantics.c:1321
msgid "invalid use of non-static data member %qD"
msgstr ""
-#: cp/init.c:1641
+#: cp/init.c:1645
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1648
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:1656
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:1647
+#: cp/init.c:1662
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:1679
+#: cp/init.c:1694
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:1695
+#: cp/init.c:1710
msgid "can't find class$"
msgstr ""
-#: cp/init.c:1823
+#: cp/init.c:1838
msgid "invalid type %<void%> for new"
msgstr ""
-#: cp/init.c:1833
+#: cp/init.c:1848
msgid "uninitialized const in %<new%> of %q#T"
msgstr ""
-#: cp/init.c:1867
+#: cp/init.c:1882
#, c-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
-#: cp/init.c:1907
+#: cp/init.c:1922
msgid "request for member %qD is ambiguous"
msgstr ""
-#: cp/init.c:2040
+#: cp/init.c:2055
msgid "ISO C++ forbids initialization in array new"
msgstr ""
-#: cp/init.c:2510
+#: cp/init.c:2530
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2563
+#: cp/init.c:2583
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:2722
+#: cp/init.c:2738
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2741
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:2746
+#: cp/init.c:2762
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3006
+#: cp/init.c:2995
msgid "type to vector delete is neither pointer or array type"
msgstr ""
@@ -15344,18 +15518,24 @@ msgstr ""
msgid "the mangled name of %qD will change in a future version of GCC"
msgstr ""
-#: cp/method.c:441
+#: cp/method.c:445
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:650
+#: cp/method.c:661
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr ""
-#: cp/method.c:656
+#: cp/method.c:667
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr ""
+#: cp/method.c:1082
+msgid ""
+"vtable layout for class %qT may not be ABI-compliantand may change in a "
+"future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
msgid "redeclaration of %<wchar_t%> as %qT"
msgstr ""
@@ -15445,458 +15625,469 @@ msgstr ""
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
msgid "%q#D hides constructor for %q#T"
msgstr ""
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1880
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr ""
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1892
msgid "previous non-function declaration %q#D"
msgstr ""
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1893
msgid "conflicts with function declaration %q#D"
msgstr ""
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1971 cp/name-lookup.c:1996 cp/name-lookup.c:3158
msgid "%qT is not a namespace"
msgstr ""
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1981
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1988
msgid "namespace %qD not allowed in using-declaration"
msgstr ""
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2024
msgid "%qD not declared"
msgstr ""
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2036 cp/name-lookup.c:2081 cp/name-lookup.c:2115
msgid "%qD is already declared in this scope"
msgstr ""
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2121
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr ""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2692
msgid "using-declaration for non-member at class scope"
msgstr ""
-#: cp/name-lookup.c:2696
+#: cp/name-lookup.c:2697
msgid "using-declaration cannot name destructor"
msgstr ""
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2770
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr ""
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2778
msgid "explicit qualification in declaration of `%D'"
msgstr ""
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2814
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2876
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr ""
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2991
msgid "unknown namespace %qD"
msgstr ""
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3152
msgid "namespace %qT undeclared"
msgstr ""
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3196
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3203
msgid "%qD attribute directive ignored"
msgstr ""
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3337
msgid "use of %qD is ambiguous"
msgstr ""
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3338
msgid " first declared as %q#D here"
msgstr ""
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3340
msgid " also declared as %q#D here"
msgstr ""
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3355
msgid "%qD denotes an ambiguous type"
msgstr ""
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3356
msgid "%J first type here"
msgstr ""
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3357
msgid "%J other type here"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3421 cp/parser.c:4384 cp/typeck.c:1802
msgid "invalid use of %qD"
msgstr ""
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3461
msgid "%<%D::%D%> is not a template"
msgstr ""
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3477
msgid "%qD undeclared in namespace %qD"
msgstr ""
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4103
msgid "%qD is not a function,"
msgstr ""
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4104
msgid " conflict with %qD"
msgstr ""
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4869
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4878
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1797
+msgid "minimum/maximum operators are deprecated"
+msgstr ""
+
+#: cp/parser.c:1817
+msgid "%<#pragma%> is not allowed here"
+msgstr ""
+
+#: cp/parser.c:1846
msgid "%<%D::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1849 cp/semantics.c:2379
msgid "%<::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1818
+#: cp/parser.c:1852
msgid "request for member %qD in non-class type %qT"
msgstr ""
-#: cp/parser.c:1821
+#: cp/parser.c:1855
msgid "%<%T::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1824
+#: cp/parser.c:1858
msgid "%qD has not been declared"
msgstr ""
-#: cp/parser.c:1827
+#: cp/parser.c:1861
msgid "%<%D::%D%> %s"
msgstr ""
-#: cp/parser.c:1829
+#: cp/parser.c:1863
msgid "%<::%D%> %s"
msgstr ""
-#: cp/parser.c:1831
+#: cp/parser.c:1865
msgid "%qD %s"
msgstr ""
-#: cp/parser.c:1884
+#: cp/parser.c:1917
msgid "new types may not be defined in a return type"
msgstr ""
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1918
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr ""
+
+#: cp/parser.c:1937 cp/pt.c:4336
msgid "%qT is not a template"
msgstr ""
-#: cp/parser.c:1903
+#: cp/parser.c:1939
#, c-format
msgid "%qE is not a template"
msgstr ""
-#: cp/parser.c:1905
+#: cp/parser.c:1941
msgid "invalid template-id"
msgstr ""
-#: cp/parser.c:1933
+#: cp/parser.c:1970
#, c-format
msgid "%s cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:1957
+#: cp/parser.c:1995
#, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr ""
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:2000
#, c-format
msgid "%qE does not name a type"
msgstr ""
-#: cp/parser.c:1993
+#: cp/parser.c:2032
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2008
+#: cp/parser.c:2047
#, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
-#: cp/parser.c:2011
+#: cp/parser.c:2050
msgid "%qE in class %qT does not name a type"
msgstr ""
-#: cp/parser.c:2678
+#: cp/parser.c:2759
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: cp/parser.c:2687
+#: cp/parser.c:2768
msgid "statement-expressions are allowed only inside functions"
msgstr ""
-#: cp/parser.c:2738
+#: cp/parser.c:2819
msgid "%<this%> may not be used in this context"
msgstr ""
-#: cp/parser.c:2873
+#: cp/parser.c:2955
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:3238
+#: cp/parser.c:3327
msgid "typedef-name %qD used as destructor declarator"
msgstr ""
-#: cp/parser.c:3886
+#: cp/parser.c:3984
msgid "ISO C++ forbids compound-literals"
msgstr ""
-#: cp/parser.c:4786
+#: cp/parser.c:4904
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4905
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr ""
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr ""
-
-#: cp/parser.c:4995
+#: cp/parser.c:5107
msgid "expression in new-declarator must have integral or enumeration type"
msgstr ""
-#: cp/parser.c:5177
+#: cp/parser.c:5296
msgid "use of old-style cast"
msgstr ""
-#: cp/parser.c:5932
+#: cp/parser.c:6066
#, c-format
msgid "case label %qE not within a switch statement"
msgstr ""
-#: cp/parser.c:6476
+#: cp/parser.c:6610
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: cp/parser.c:6601
+#: cp/parser.c:6735
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7054
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7185
msgid "duplicate %<friend%>"
msgstr ""
-#: cp/parser.c:7221
+#: cp/parser.c:7354
msgid "class definition may not be declared a friend"
msgstr ""
-#: cp/parser.c:7534
+#: cp/parser.c:7668
msgid "only constructors take base initializers"
msgstr ""
-#: cp/parser.c:7585
+#: cp/parser.c:7719
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:7626
+#: cp/parser.c:7761
msgid ""
"keyword %<typename%> not allowed in this context (a qualified member "
"initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8127
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8500
msgid "%<<::%> cannot begin a template-argument list"
msgstr ""
-#: cp/parser.c:8359
+#: cp/parser.c:8501
msgid ""
"%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> "
"and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8508
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8572
+msgid "parse error in template argument list"
+msgstr ""
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8685
msgid "non-template %qD used as template"
msgstr ""
-#: cp/parser.c:8537
+#: cp/parser.c:8686
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:9554
-msgid "using %<typename%> outside of template"
+#: cp/parser.c:9275 cp/parser.c:15071
+#, c-format
+msgid "template declaration of %qs"
msgstr ""
-#: cp/parser.c:9677
-msgid "expected type-name"
+#: cp/parser.c:9718
+msgid "using %<typename%> outside of template"
msgstr ""
-#: cp/parser.c:9748
+#: cp/parser.c:9913
msgid "type attributes are honored only at type definition"
msgstr ""
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10295
msgid "a template-id may not appear in a using-declaration"
msgstr ""
-#: cp/parser.c:10461
+#: cp/parser.c:10625
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10627
msgid "attributes are not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10594
+#: cp/parser.c:10758
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:10976
+#: cp/parser.c:11143
msgid "array bound is not an integer constant"
msgstr ""
-#: cp/parser.c:11045
+#: cp/parser.c:11213
msgid "%<%T::%D%> is not a type"
msgstr ""
-#: cp/parser.c:11090
+#: cp/parser.c:11255
msgid "invalid use of constructor as a template"
msgstr ""
-#: cp/parser.c:11091
+#: cp/parser.c:11256
msgid ""
"use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified "
"name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11444
msgid "duplicate cv-qualifier"
msgstr ""
-#: cp/parser.c:11795
+#: cp/parser.c:11973
msgid "file ends in default argument"
msgstr ""
-#: cp/parser.c:11855
+#: cp/parser.c:12034
msgid "deprecated use of default argument for parameter of non-function"
msgstr ""
-#: cp/parser.c:11858
+#: cp/parser.c:12037
msgid "default arguments are only permitted for function parameters"
msgstr ""
-#: cp/parser.c:12598
+#: cp/parser.c:12779
+msgid "invalid class name in declaration of %qD"
+msgstr ""
+
+#: cp/parser.c:12790
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:12611
+#: cp/parser.c:12803
msgid "extra qualification ignored"
msgstr ""
-#: cp/parser.c:12622
+#: cp/parser.c:12814
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr ""
-#: cp/parser.c:12914
+#: cp/parser.c:12907
+msgid "previous definition of %q#T"
+msgstr ""
+
+#: cp/parser.c:13117
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13135
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13149
msgid "friend declaration does not name a class or function"
msgstr ""
-#: cp/parser.c:13120
+#: cp/parser.c:13325
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13603
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:13395
+#: cp/parser.c:13605
msgid ""
"keyword %<typename%> not allowed in this context (the base class is "
"implicitly a type)"
msgstr ""
-#: cp/parser.c:13669
+#: cp/parser.c:13880
msgid "invalid catch parameter"
msgstr ""
-#: cp/parser.c:14231
+#: cp/parser.c:14458
msgid "reference to %qD is ambiguous"
msgstr ""
-#: cp/parser.c:14400
+#: cp/parser.c:14627
msgid "too few template-parameter-lists"
msgstr ""
@@ -15904,151 +16095,150 @@ msgstr ""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14642
msgid "too many template-parameter-lists"
msgstr ""
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14866
msgid "invalid function declaration"
msgstr ""
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14903
msgid "named return values are no longer supported"
msgstr ""
-#: cp/parser.c:14844
-#, c-format
-msgid "template declaration of %qs"
-msgstr ""
-
-#: cp/parser.c:15048
+#: cp/parser.c:15277
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:15063
+#: cp/parser.c:15292
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:15068
+#: cp/parser.c:15297
msgid "missing %<>%> to terminate the template argument list"
msgstr ""
-#: cp/parser.c:15586
+#: cp/parser.c:15825
msgid "%qs tag used in naming %q#T"
msgstr ""
-#: cp/parser.c:15607
+#: cp/parser.c:15846
msgid "%qD redeclared with different access"
msgstr ""
-#: cp/parser.c:15624
+#: cp/parser.c:15863
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16071
msgid "inter-module optimizations not implemented for C++"
msgstr ""
-#: cp/pt.c:240
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:252
+#: cp/pt.c:253
msgid "invalid member template declaration %qD"
msgstr ""
-#: cp/pt.c:574
+#: cp/pt.c:575
msgid "explicit specialization in non-namespace scope %qD"
msgstr ""
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:669
+#: cp/pt.c:670
msgid "specialization of %qD in different namespace"
msgstr ""
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
msgid " from definition of %q#D"
msgstr ""
-#: cp/pt.c:706
+#: cp/pt.c:707
msgid "specialization of %qT after instantiation"
msgstr ""
-#: cp/pt.c:738
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
msgstr ""
-#: cp/pt.c:753
+#: cp/pt.c:754
msgid "specialization %qT after instantiation %qT"
msgstr ""
-#: cp/pt.c:765
+#: cp/pt.c:766
msgid "explicit specialization of non-template %qT"
msgstr ""
-#: cp/pt.c:1163
+#: cp/pt.c:1164
msgid "specialization of %qD after instantiation"
msgstr ""
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1348
+#: cp/pt.c:1349
msgid "%qD is not a function template"
msgstr ""
-#: cp/pt.c:1533
+#: cp/pt.c:1542
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:1542
+#: cp/pt.c:1551
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1782 cp/pt.c:1836
msgid "template-id %qD in declaration of primary template"
msgstr ""
-#: cp/pt.c:1778
+#: cp/pt.c:1795
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1784
+#: cp/pt.c:1801
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1792
+#: cp/pt.c:1809
msgid "too many template parameter lists in declaration of %qD"
msgstr ""
-#: cp/pt.c:1795
+#: cp/pt.c:1812
msgid "too few template parameter lists in declaration of %qD"
msgstr ""
-#: cp/pt.c:1797
+#: cp/pt.c:1814
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr ""
-#: cp/pt.c:1816
+#: cp/pt.c:1833
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1865
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1852
+#: cp/pt.c:1869
msgid "template specialization with C linkage"
msgstr ""
+#: cp/pt.c:1896
+msgid "%qD is not a template function"
+msgstr ""
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16057,60 +16247,55 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1958
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1980
+#: cp/pt.c:2002
msgid "no member function %qD declared in %qT"
msgstr ""
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-msgid "too many template parameter lists in declaration of %qT"
-msgstr ""
-
-#: cp/pt.c:2224
+#: cp/pt.c:2207
msgid " shadows template parm %q#D"
msgstr ""
-#: cp/pt.c:2626
+#: cp/pt.c:2609
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2630
+#: cp/pt.c:2613
msgid " %qD"
msgstr ""
-#: cp/pt.c:2641
+#: cp/pt.c:2624
msgid "partial specialization %qT does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2666
+#: cp/pt.c:2649
#, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2710
+#: cp/pt.c:2693
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2797
+#: cp/pt.c:2780
msgid "no default argument for %qD"
msgstr ""
-#: cp/pt.c:2954
+#: cp/pt.c:2937
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2957
+#: cp/pt.c:2940
msgid "template class without a name"
msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2948
msgid "destructor %qD declared as member template"
msgstr ""
@@ -16119,53 +16304,57 @@ msgstr ""
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2963
msgid "invalid template declaration of %qD"
msgstr ""
-#: cp/pt.c:3061
+#: cp/pt.c:3044
msgid "%qD does not declare a template type"
msgstr ""
-#: cp/pt.c:3067
+#: cp/pt.c:3050
msgid "template definition of non-template %q#D"
msgstr ""
-#: cp/pt.c:3109
+#: cp/pt.c:3092
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr ""
-#: cp/pt.c:3121
+#: cp/pt.c:3104
msgid "got %d template parameters for %q#D"
msgstr ""
-#: cp/pt.c:3124
+#: cp/pt.c:3107
msgid "got %d template parameters for %q#T"
msgstr ""
-#: cp/pt.c:3126
+#: cp/pt.c:3109
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:3211
+#: cp/pt.c:3198
msgid "%qT is not a template type"
msgstr ""
-#: cp/pt.c:3227
+#: cp/pt.c:3211
+msgid "template specifiers not specified in declaration of %qD"
+msgstr ""
+
+#: cp/pt.c:3221
msgid "previous declaration %qD"
msgstr ""
-#: cp/pt.c:3228
+#: cp/pt.c:3222
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr ""
-#: cp/pt.c:3248
+#: cp/pt.c:3242
msgid "template parameter %q#D"
msgstr ""
-#: cp/pt.c:3249
+#: cp/pt.c:3243
msgid "redeclared here as %q#D"
msgstr ""
@@ -16173,314 +16362,322 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3253
msgid "redefinition of default argument for %q#D"
msgstr ""
-#: cp/pt.c:3260
+#: cp/pt.c:3254
msgid "%J original definition appeared here"
msgstr ""
-#: cp/pt.c:3370
+#: cp/pt.c:3350
msgid ""
"%qE is not a valid template argument for type %qT because function %qD has "
"not external linkage"
msgstr ""
-#: cp/pt.c:3411
+#: cp/pt.c:3391
msgid ""
"%qE is not a valid template argument for type %qT because string literals "
"can never be used in this context"
msgstr ""
-#: cp/pt.c:3486
+#: cp/pt.c:3466
msgid ""
"%qE is not a valid template argument for type %qT because it is a non-"
"constant expression"
msgstr ""
-#: cp/pt.c:3536
+#: cp/pt.c:3516
msgid ""
"%qE is not a valid template argument for type %qT because it is not a "
"constant pointer"
msgstr ""
-#: cp/pt.c:3556
+#: cp/pt.c:3536
msgid ""
"%qE is not a valid template argument for type %qT because of conflicts in cv-"
"qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3543
msgid ""
"%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr ""
-#: cp/pt.c:3576
+#: cp/pt.c:3556
msgid ""
"%qE is not a valid template argument for type %qT because object %qD has not "
"external linkage"
msgstr ""
-#: cp/pt.c:3618
+#: cp/pt.c:3598
msgid ""
"%qE is not a valid template argument for type %qT because it is a pointer"
msgstr ""
-#: cp/pt.c:3620
+#: cp/pt.c:3600
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3635
msgid ""
"%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr ""
-#: cp/pt.c:3658
+#: cp/pt.c:3638
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:3827
+#: cp/pt.c:3807
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3822 cp/pt.c:3841 cp/pt.c:3881
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:3845
+#: cp/pt.c:3826
msgid " expected a constant of type %qT, got %qT"
msgstr ""
-#: cp/pt.c:3849
+#: cp/pt.c:3830
#, c-format
msgid " expected a class template, got %qE"
msgstr ""
-#: cp/pt.c:3851
+#: cp/pt.c:3832
#, c-format
msgid " expected a type, got %qE"
msgstr ""
-#: cp/pt.c:3864
+#: cp/pt.c:3845
msgid " expected a type, got %qT"
msgstr ""
-#: cp/pt.c:3866
+#: cp/pt.c:3847
msgid " expected a class template, got %qT"
msgstr ""
-#: cp/pt.c:3903
+#: cp/pt.c:3884
msgid " expected a template of type %qD, got %qD"
msgstr ""
-#: cp/pt.c:3939
+#: cp/pt.c:3920
msgid "could not convert template argument %qE to %qT"
msgstr ""
-#: cp/pt.c:3978
+#: cp/pt.c:3959
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3982
+#: cp/pt.c:3963
msgid "provided for %qD"
msgstr ""
-#: cp/pt.c:4012
+#: cp/pt.c:3993
#, c-format
msgid "template argument %d is invalid"
msgstr ""
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr ""
-
-#: cp/pt.c:4376
+#: cp/pt.c:4348
msgid "non-template type %qT used as a template"
msgstr ""
-#: cp/pt.c:4378
+#: cp/pt.c:4350
msgid "for template declaration %qD"
msgstr ""
-#: cp/pt.c:5018
+#: cp/pt.c:4992
msgid ""
"template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN "
"to increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:5457
+#: cp/pt.c:5438
msgid "ambiguous class template instantiation for %q#T"
msgstr ""
-#: cp/pt.c:5463
+#: cp/pt.c:5444
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:6522
+#: cp/pt.c:6526
msgid "instantiation of %qD as type %qT"
msgstr ""
-#: cp/pt.c:6683
+#: cp/pt.c:6694
msgid "invalid parameter type %qT"
msgstr ""
-#: cp/pt.c:6685
+#: cp/pt.c:6696
msgid "in declaration %qD"
msgstr ""
-#: cp/pt.c:6746
+#: cp/pt.c:6757
msgid "function returning an array"
msgstr ""
-#: cp/pt.c:6748
+#: cp/pt.c:6759
msgid "function returning a function"
msgstr ""
-#: cp/pt.c:6775
+#: cp/pt.c:6786
msgid "creating pointer to member function of non-class type %qT"
msgstr ""
-#: cp/pt.c:6945
+#: cp/pt.c:6954
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6959
+#: cp/pt.c:6968
#, c-format
msgid "creating array with size zero (%qE)"
msgstr ""
-#: cp/pt.c:7176
+#: cp/pt.c:7185
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:7178
+#: cp/pt.c:7187
msgid "forming %s to reference type %qT"
msgstr ""
-#: cp/pt.c:7215
+#: cp/pt.c:7224
msgid "creating pointer to member of non-class type %qT"
msgstr ""
-#: cp/pt.c:7221
+#: cp/pt.c:7230
msgid "creating pointer to member reference type %qT"
msgstr ""
-#: cp/pt.c:7291
+#: cp/pt.c:7296
msgid "creating array of %qT"
msgstr ""
-#: cp/pt.c:7297
+#: cp/pt.c:7302
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:7341
+#: cp/pt.c:7346
msgid "%qT is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:7430
+#: cp/pt.c:7381
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7384
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr ""
+
+#: cp/pt.c:7445
#, c-format
msgid "use of %qs in template"
msgstr ""
-#: cp/pt.c:7555
+#: cp/pt.c:7570
#, c-format
msgid ""
"dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:7557
+#: cp/pt.c:7572
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:8708
+#: cp/pt.c:7691
+msgid "using invalid field %qD"
+msgstr ""
+
+#: cp/pt.c:8745
msgid "%qT is not a class or namespace"
msgstr ""
-#: cp/pt.c:8711
+#: cp/pt.c:8748
msgid "%qD is not a class or namespace"
msgstr ""
-#: cp/pt.c:8844
-msgid "%qT uses anonymous type"
+#: cp/pt.c:8888
+msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:8846
+#: cp/pt.c:8890
msgid "%qT uses local type %qT"
msgstr ""
-#: cp/pt.c:8854
+#: cp/pt.c:8899
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:8865
+#: cp/pt.c:8910
#, c-format
msgid "integral expression %qE is not constant"
msgstr ""
-#: cp/pt.c:8870
+#: cp/pt.c:8915
msgid " trying to instantiate %qD"
msgstr ""
-#: cp/pt.c:9386
+#: cp/pt.c:9434
msgid "incomplete type unification"
msgstr ""
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10783 cp/pt.c:10854
msgid "explicit instantiation of non-template %q#D"
msgstr ""
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10799 cp/pt.c:10849
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:10726
+#: cp/pt.c:10805
msgid "explicit instantiation of %q#D"
msgstr ""
-#: cp/pt.c:10762
+#: cp/pt.c:10841
msgid "duplicate explicit instantiation of %q#D"
msgstr ""
-#: cp/pt.c:10784
+#: cp/pt.c:10863
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr ""
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10868 cp/pt.c:10958
msgid "storage class %qD applied to template instantiation"
msgstr ""
-#: cp/pt.c:10851
+#: cp/pt.c:10930
msgid "explicit instantiation of non-template type %qT"
msgstr ""
-#: cp/pt.c:10860
+#: cp/pt.c:10939
msgid "explicit instantiation of %q#T before definition of template"
msgstr ""
-#: cp/pt.c:10868
+#: cp/pt.c:10947
#, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr ""
-#: cp/pt.c:10913
+#: cp/pt.c:10992
msgid "duplicate explicit instantiation of %q#T"
msgstr ""
-#: cp/pt.c:11278
+#: cp/pt.c:11365
msgid "explicit instantiation of %qD but no definition available"
msgstr ""
-#: cp/pt.c:11422
+#: cp/pt.c:11510
msgid ""
"template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN "
"to increase the maximum) instantiating %q+D, possibly from virtual table "
"generation"
msgstr ""
-#: cp/pt.c:11701
+#: cp/pt.c:11779
msgid "%q#T is not a valid type for a template constant parameter"
msgstr ""
@@ -16498,24 +16695,24 @@ msgstr ""
msgid "can't create repository information file %qs"
msgstr ""
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr ""
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:321
+#: cp/rtti.c:322
msgid ""
"cannot create type information for type %qT because its size is variable"
msgstr ""
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr ""
-#: cp/rtti.c:667
+#: cp/rtti.c:663
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr ""
@@ -16527,209 +16724,205 @@ msgstr ""
msgid "%qT is an inaccessible base of %qT"
msgstr ""
-#: cp/search.c:1834
+#: cp/search.c:1843
msgid "deprecated covariant return type for %q#D"
msgstr ""
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
msgid " overriding %q#D"
msgstr ""
-#: cp/search.c:1850
+#: cp/search.c:1859
msgid "invalid covariant return type for %q#D"
msgstr ""
-#: cp/search.c:1855
+#: cp/search.c:1864
msgid "conflicting return type specified for %q#D"
msgstr ""
-#: cp/search.c:1866
+#: cp/search.c:1875
msgid "looser throw specifier for %q#F"
msgstr ""
-#: cp/search.c:1867
+#: cp/search.c:1876
msgid " overriding %q#F"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
msgid "%q#D cannot be declared"
msgstr ""
-#: cp/search.c:1961
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
msgstr ""
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, c-format
msgid "type of asm operand %qE could not be determined"
msgstr ""
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
msgid "invalid use of member %qD in static member function"
msgstr ""
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
msgid "object missing in reference to %qD"
msgstr ""
-#: cp/semantics.c:1811
+#: cp/semantics.c:1841
msgid "arguments to destructor are not allowed"
msgstr ""
-#: cp/semantics.c:1861
+#: cp/semantics.c:1891
msgid "%<this%> is unavailable for static member functions"
msgstr ""
-#: cp/semantics.c:1867
+#: cp/semantics.c:1897
msgid "invalid use of %<this%> in non-member function"
msgstr ""
-#: cp/semantics.c:1869
+#: cp/semantics.c:1899
msgid "invalid use of %<this%> at top level"
msgstr ""
-#: cp/semantics.c:1893
+#: cp/semantics.c:1923
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr ""
-#: cp/semantics.c:1913
+#: cp/semantics.c:1943
msgid "%qE is not of type %qT"
msgstr ""
-#: cp/semantics.c:2007
+#: cp/semantics.c:2043
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2051
+#: cp/semantics.c:2087
msgid ""
"invalid use of type %qT as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2054
+#: cp/semantics.c:2090
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2058
+#: cp/semantics.c:2094
msgid "invalid default argument for a template template parameter"
msgstr ""
-#: cp/semantics.c:2075
+#: cp/semantics.c:2111
msgid "definition of %q#T inside template parameter list"
msgstr ""
-#: cp/semantics.c:2086
+#: cp/semantics.c:2122
msgid "invalid definition of qualified type %qT"
msgstr ""
-#: cp/semantics.c:2101
-msgid "previous definition of %q#T"
-msgstr ""
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2338
msgid "invalid base-class specification"
msgstr ""
-#: cp/semantics.c:2286
+#: cp/semantics.c:2347
msgid "base class %qT has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2306
+#: cp/semantics.c:2367
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/semantics.c:2309
+#: cp/semantics.c:2370
msgid "reference to %<%T::%D%> is ambiguous"
msgstr ""
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2374 cp/typeck.c:1637
msgid "%qD is not a member of %qT"
msgstr ""
-#: cp/semantics.c:2316
+#: cp/semantics.c:2377
msgid "%qD is not a member of %qD"
msgstr ""
-#: cp/semantics.c:2441
+#: cp/semantics.c:2506
msgid ""
"template parameter %qD of type %qT is not allowed in an integral constant "
"expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2660
msgid "%qD cannot appear in a constant-expression"
msgstr ""
-#: cp/semantics.c:2593
+#: cp/semantics.c:2668
msgid "use of namespace %qD as expression"
msgstr ""
-#: cp/semantics.c:2598
+#: cp/semantics.c:2673
msgid "use of class template %qT as expression"
msgstr ""
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2679
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/semantics.c:2665
+#: cp/semantics.c:2752
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/semantics.c:2668
+#: cp/semantics.c:2755
msgid " %q#D declared here"
msgstr ""
-#: cp/semantics.c:2719
+#: cp/semantics.c:2805
#, c-format
msgid "type of %qE is unknown"
msgstr ""
-#: cp/tree.c:525
+#: cp/tree.c:539
msgid "%qV qualifiers cannot be applied to %qT"
msgstr ""
-#: cp/tree.c:1760
+#: cp/tree.c:1741
#, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr ""
-#: cp/tree.c:1789
+#: cp/tree.c:1770
#, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr ""
-#: cp/tree.c:1794
+#: cp/tree.c:1775
#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1818
+#: cp/tree.c:1799
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1839
+#: cp/tree.c:1820
#, c-format
msgid ""
"can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1847
+#: cp/tree.c:1828
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1857
+#: cp/tree.c:1838
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1867
+#: cp/tree.c:1848
#, c-format
msgid "%qE attribute is not supported on this platform"
msgstr ""
@@ -16747,191 +16940,191 @@ msgstr ""
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr ""
-#: cp/typeck.c:1250
+#: cp/typeck.c:1255
#, c-format
msgid "invalid application of %qs to a member function"
msgstr ""
-#: cp/typeck.c:1283
+#: cp/typeck.c:1288
#, c-format
msgid "invalid application of %qs to a bit-field"
msgstr ""
-#: cp/typeck.c:1288
+#: cp/typeck.c:1293
#, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr ""
-#: cp/typeck.c:1325
+#: cp/typeck.c:1330
msgid "invalid use of non-static member function"
msgstr ""
-#: cp/typeck.c:1510
+#: cp/typeck.c:1497
msgid "deprecated conversion from string constant to %qT'"
msgstr ""
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1608 cp/typeck.c:1898
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1635
#, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr ""
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1687 cp/typeck.c:1715
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1690 cp/typeck.c:1717
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1828
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1834
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1944
msgid "%<%D::%D%> is not a member of %qT"
msgstr ""
-#: cp/typeck.c:1980
+#: cp/typeck.c:1955
msgid "%qT is not a base of %qT"
msgstr ""
-#: cp/typeck.c:1999
+#: cp/typeck.c:1974
msgid "%qD has no member named %qE"
msgstr ""
-#: cp/typeck.c:2014
+#: cp/typeck.c:1989
msgid "%qD 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:2121
+#: cp/typeck.c:2096
msgid "%qT is not a pointer-to-object type"
msgstr ""
-#: cp/typeck.c:2146
+#: cp/typeck.c:2121
#, c-format
msgid "invalid use of %qs on pointer to member"
msgstr ""
-#: cp/typeck.c:2152
+#: cp/typeck.c:2127
msgid "invalid type argument"
msgstr ""
-#: cp/typeck.c:2175
+#: cp/typeck.c:2150
msgid "subscript missing in array reference"
msgstr ""
-#: cp/typeck.c:2257
+#: cp/typeck.c:2232
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2268
+#: cp/typeck.c:2243
msgid "subscripting array declared %<register%>"
msgstr ""
-#: cp/typeck.c:2351
+#: cp/typeck.c:2326
#, c-format
msgid "object missing in use of %qE"
msgstr ""
-#: cp/typeck.c:2452
+#: cp/typeck.c:2427
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr ""
-#: cp/typeck.c:2477
+#: cp/typeck.c:2452
msgid ""
"must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2466
#, c-format
msgid "%qE cannot be used as a function"
msgstr ""
-#: cp/typeck.c:2570
+#: cp/typeck.c:2545
msgid "too many arguments to %s %q+#D"
msgstr ""
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2547 cp/typeck.c:2650
msgid "at this point in file"
msgstr ""
-#: cp/typeck.c:2575
+#: cp/typeck.c:2550
msgid "too many arguments to function"
msgstr ""
-#: cp/typeck.c:2609
+#: cp/typeck.c:2584
msgid "parameter %P of %qD has incomplete type %qT"
msgstr ""
-#: cp/typeck.c:2612
+#: cp/typeck.c:2587
msgid "parameter %P has incomplete type %qT"
msgstr ""
-#: cp/typeck.c:2676
+#: cp/typeck.c:2648
msgid "too few arguments to %s %q+#D"
msgstr ""
-#: cp/typeck.c:2681
+#: cp/typeck.c:2653
msgid "too few arguments to function"
msgstr ""
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2800 cp/typeck.c:2810
msgid "assuming cast to type %qT from overloaded function"
msgstr ""
-#: cp/typeck.c:2899
+#: cp/typeck.c:2871
msgid "division by zero in %<%E / 0%>"
msgstr ""
-#: cp/typeck.c:2901
+#: cp/typeck.c:2873
msgid "division by zero in %<%E / 0.%>"
msgstr ""
-#: cp/typeck.c:2935
+#: cp/typeck.c:2907
msgid "division by zero in %<%E %% 0%>"
msgstr ""
-#: cp/typeck.c:2937
+#: cp/typeck.c:2909
msgid "division by zero in %<%E %% 0.%>"
msgstr ""
-#: cp/typeck.c:3017
+#: cp/typeck.c:2989
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3020
+#: cp/typeck.c:2992
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3026 cp/typeck.c:3031 cp/typeck.c:3127 cp/typeck.c:3132
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr ""
-#: cp/typeck.c:3174
+#: cp/typeck.c:3146
msgid "unordered comparison on non-floating point argument"
msgstr ""
-#: cp/typeck.c:3196
+#: cp/typeck.c:3168
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr ""
-#: cp/typeck.c:3360
+#: cp/typeck.c:3332
msgid "comparison between types %q#T and %q#T"
msgstr ""
-#: cp/typeck.c:3396
+#: cp/typeck.c:3368
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
@@ -16939,139 +17132,131 @@ 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:3475
+#: cp/typeck.c:3447
msgid "NULL used in arithmetic"
msgstr ""
-#: cp/typeck.c:3533
+#: cp/typeck.c:3505
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr ""
-#: cp/typeck.c:3535
+#: cp/typeck.c:3507
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:3537
+#: cp/typeck.c:3509
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:3549
+#: cp/typeck.c:3521
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:3625
+#: cp/typeck.c:3580
#, c-format
msgid ""
"invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3587
#, c-format
msgid ""
"parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:3655
+#: cp/typeck.c:3610
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:3890
+#: cp/typeck.c:3845
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr ""
-#: cp/typeck.c:3901
+#: cp/typeck.c:3856
msgid "cannot %s a pointer to incomplete type %qT"
msgstr ""
-#: cp/typeck.c:3907
+#: cp/typeck.c:3862
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr ""
-#: cp/typeck.c:3932
+#: cp/typeck.c:3887
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:3967
+#: cp/typeck.c:3922
msgid "invalid use of %<--%> on bool variable %qD"
msgstr ""
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3951
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr ""
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4005
msgid ""
"ISO C++ forbids taking the address of an unqualified or parenthesized non-"
"static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr ""
-#: cp/typeck.c:4055
+#: cp/typeck.c:4010
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:4083
+#: cp/typeck.c:4038
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:4135
-msgid "attempt to take address of bit-field structure member %qD"
-msgstr ""
-
-#: cp/typeck.c:4248
-msgid "taking address of destructor"
-msgstr ""
-
-#: cp/typeck.c:4261
-msgid "taking address of bound pointer-to-member expression"
+#: cp/typeck.c:4058
+msgid "cannot create pointer to reference member %qD"
msgstr ""
-#: cp/typeck.c:4269
-msgid "cannot create pointer to reference member %qD"
+#: cp/typeck.c:4118
+msgid "attempt to take address of bit-field structure member %qD"
msgstr ""
-#: cp/typeck.c:4332
+#: cp/typeck.c:4277
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:4355
+#: cp/typeck.c:4300
msgid "address of explicit register variable %qD requested"
msgstr ""
-#: cp/typeck.c:4360
+#: cp/typeck.c:4305
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:4426
+#: cp/typeck.c:4371
#, c-format
msgid "%s expression list treated as compound expression"
msgstr ""
-#: cp/typeck.c:4502
+#: cp/typeck.c:4446
msgid "%s from type %qT to type %qT casts away constness"
msgstr ""
-#: cp/typeck.c:4800
+#: cp/typeck.c:4745
msgid "invalid static_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:4822
+#: cp/typeck.c:4767
msgid "converting from %qT to %qT"
msgstr ""
-#: cp/typeck.c:4867
+#: cp/typeck.c:4812
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:4926
+#: cp/typeck.c:4871
msgid "cast from %qT to %qT loses precision"
msgstr ""
-#: cp/typeck.c:4954
+#: cp/typeck.c:4896
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr ""
@@ -17079,152 +17264,128 @@ msgstr ""
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4910
msgid ""
"ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:4979
+#: cp/typeck.c:4921
msgid "invalid cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5035
+#: cp/typeck.c:4977
msgid ""
"invalid use of const_cast with type %qT, which is not a pointer, reference, "
"nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5044
+#: cp/typeck.c:4986
msgid ""
"invalid use of const_cast with type %qT, which is a pointer or reference to "
"a function type"
msgstr ""
-#: cp/typeck.c:5066
+#: cp/typeck.c:5008
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5109
+#: cp/typeck.c:5051
msgid "invalid const_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5119 cp/typeck.c:5124
msgid "ISO C++ forbids casting to an array type %qT"
msgstr ""
-#: cp/typeck.c:5190
+#: cp/typeck.c:5132
msgid "invalid cast to function type %qT"
msgstr ""
-#: cp/typeck.c:5411
+#: cp/typeck.c:5348
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5417
msgid "incompatible types in assignment of %qT to %qT"
msgstr ""
-#: cp/typeck.c:5487
+#: cp/typeck.c:5424
msgid "ISO C++ forbids assignment of arrays"
msgstr ""
-#: cp/typeck.c:5598
+#: cp/typeck.c:5535
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5604
+#: cp/typeck.c:5541
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5552 cp/typeck.c:5568
msgid "pointer to member cast via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5634
+#: cp/typeck.c:5571
msgid "pointer to member conversion via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5707
+#: cp/typeck.c:5644
msgid "invalid conversion to type %qT from type %qT"
msgstr ""
-#: cp/typeck.c:5871
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5874
-msgid "%s to non-pointer type %qT from NULL"
-msgstr ""
-
-#: cp/typeck.c:5882
-msgid "passing %qT for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5885
-msgid "%s to %qT from %qT"
-msgstr ""
-
-#: cp/typeck.c:5894
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5897
-msgid "%s of negative value %qE to %qT"
-msgstr ""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5862
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr ""
-#: cp/typeck.c:5986
+#: cp/typeck.c:5865
msgid "cannot convert %qT to %qT in %s"
msgstr ""
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5938 cp/typeck.c:5940
msgid "in passing argument %P of %q+D"
msgstr ""
-#: cp/typeck.c:6114
+#: cp/typeck.c:5990
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:6121
+#: cp/typeck.c:5997
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6133
+#: cp/typeck.c:6009
msgid "reference to local variable %qD returned"
msgstr ""
-#: cp/typeck.c:6136
+#: cp/typeck.c:6012
msgid "address of local variable %qD returned"
msgstr ""
-#: cp/typeck.c:6166
+#: cp/typeck.c:6042
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:6174
+#: cp/typeck.c:6050
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:6177
+#: cp/typeck.c:6053
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6200
+#: cp/typeck.c:6076
msgid "return-statement with no value, in function returning %qT"
msgstr ""
-#: cp/typeck.c:6217
+#: cp/typeck.c:6093
msgid "return-statement with a value, in function returning 'void'"
msgstr ""
-#: cp/typeck.c:6248
+#: cp/typeck.c:6124
msgid ""
"%<operator new%> must not return NULL unless it is declared %<throw()%> (or -"
"fcheck-new is in effect)"
@@ -17280,154 +17441,154 @@ msgstr ""
msgid "%J since type %qT has pure virtual functions"
msgstr ""
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr ""
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
msgid "braces around scalar initializer for %qT"
msgstr ""
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
msgid "ignoring extra initializers for %qT"
msgstr ""
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
msgid "variable-sized object of type %qT may not be initialized"
msgstr ""
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr ""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
msgid "missing initializer for member %qD"
msgstr ""
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
msgid "uninitialized const member %qD"
msgstr ""
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
msgid "member %qD with uninitialized const fields"
msgstr ""
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
msgid "member %qD is uninitialized reference"
msgstr ""
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
msgid "no field %qD in union being initialized"
msgstr ""
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
msgid "union %qT with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr ""
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
msgid "base operand of %<->%> is not a pointer"
msgstr ""
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr ""
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
msgid ""
"cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
msgid "call to function %qD which throws incomplete type %q#T"
msgstr ""
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
msgid "call to function which throws incomplete type %q#T"
msgstr ""
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3888
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, c-format
msgid "can't open input file: %s"
msgstr ""
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, c-format
msgid "global register variable %qs used in nested function"
msgstr ""
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, c-format
msgid "register variable %qs used in nested function"
msgstr ""
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, c-format
msgid "address of global register variable %qs requested"
msgstr ""
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, c-format
msgid "address of register variable %qs requested"
msgstr ""
@@ -17446,129 +17607,133 @@ msgstr ""
msgid "no input files; unwilling to write output files"
msgstr ""
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2849
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3952
msgid ""
"Possible frontend bug: Deferred array size without pointer or allocatable "
"attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4112
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4386
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:780
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1919
msgid "Function does not return a value"
msgstr ""
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:2018
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2032
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2114
#, c-format
msgid "unused parameter %qs"
msgstr ""
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2119
#, c-format
msgid "unused variable %qs"
msgstr ""
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2260
msgid "Function return value not set"
msgstr ""
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
msgid "Unknown intrinsic op"
msgstr ""
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr ""
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:937
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1014
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1312
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
-#: fortran/trans-types.c:189
-msgid "integer kind=8 not available for -i8 option"
+#: fortran/trans-types.c:193
+msgid "integer kind=8 not available for -fdefault-integer-8 option"
+msgstr ""
+
+#: fortran/trans-types.c:205
+msgid "real kind=8 not available for -fdefault-real-8 option"
msgstr ""
-#: fortran/trans-types.c:201
-msgid "real kind=8 not available for -r8 option"
+#: fortran/trans-types.c:218
+msgid "Use of -fdefault-double-8 requires -fdefault-real-8"
msgstr ""
-#: fortran/trans-types.c:916
+#: fortran/trans-types.c:927
msgid "Array element size too big"
msgstr ""
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
#. I changed this from sorry(...) because it should not return.
#. TODO: Remove gfc_todo_error before releasing version 1.0.
-#: fortran/trans.h:564
+#: fortran/trans.h:569
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, c-format
msgid "Variable %qs may not have been initialized"
msgstr ""
-#: java/check-init.c:529
+#: java/check-init.c:535
#, c-format
msgid "variable %qs may not have been initialized"
msgstr ""
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:1013
+#: java/check-init.c:1026
msgid "%Jfinal field %qD may not have been initialized"
msgstr ""
@@ -17599,406 +17764,370 @@ msgstr ""
msgid "%Jabstract method in non-abstract class"
msgstr ""
-#: java/class.c:2362
+#: java/class.c:2368
msgid "%Jnon-static method '%D' overrides static method"
msgstr ""
-#: java/decl.c:1203
+#: java/decl.c:1268
msgid "%J'%D' used prior to declaration"
msgstr ""
-#: java/decl.c:1244
+#: java/decl.c:1309
#, c-format
msgid "declaration of %qs shadows a parameter"
msgstr ""
-#: java/decl.c:1247
+#: java/decl.c:1312
#, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr ""
-#: java/decl.c:1575
+#: java/decl.c:1640
msgid "%Jlabel '%D' used but not defined"
msgstr ""
-#: java/decl.c:1580
+#: java/decl.c:1645
msgid "%Jlabel '%D' defined but not used"
msgstr ""
-#: java/decl.c:1702
+#: java/decl.c:1773
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1766
+#: java/decl.c:1837
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1775
+#: java/decl.c:1846
msgid "%Jbad PC range for debug info for local '%D'"
msgstr ""
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:505 java/expr.c:552
#, c-format
msgid "assert: %s is assign compatible with %s"
msgstr ""
-#: java/expr.c:667
+#: java/expr.c:672
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1699
+#: java/expr.c:1688
#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr ""
-#: java/expr.c:1727
+#: java/expr.c:1716
#, c-format
msgid "field %qs not found"
msgstr ""
-#: java/expr.c:2112
+#: java/expr.c:2101
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2317
+#: java/expr.c:2306
#, c-format
msgid "failed to find class '%s'"
msgstr ""
-#: java/expr.c:2346
+#: java/expr.c:2335
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2377
+#: java/expr.c:2366
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2371
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2390
+#: java/expr.c:2379
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2708
+#: java/expr.c:2697
#, c-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2715
+#: java/expr.c:2704
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2737
+#: java/expr.c:2726
msgid "%Jassignment to final field '%D' not in field's class"
msgstr ""
-#: java/expr.c:2742
+#: java/expr.c:2731
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr ""
-#: java/expr.c:2751
+#: java/expr.c:2740
msgid "%Jassignment to final field '%D' not in constructor"
msgstr ""
-#: java/expr.c:2941
+#: java/expr.c:2930
msgid "invalid PC in line number table"
msgstr ""
-#: java/expr.c:2995
+#: java/expr.c:2986
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3037
+#: java/expr.c:3028
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3328
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
-#, c-format
+#: java/gjavah.c:899
msgid "ignored method '"
msgstr ""
-#: java/gjavah.c:893
-#, c-format
+#: java/gjavah.c:901
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, c-format
msgid "couldn't find class %s"
msgstr ""
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, c-format
msgid "parse error while reading %s"
msgstr ""
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, c-format
msgid "unparseable signature: '%s'"
msgstr ""
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
msgid "Not a valid Java .class file."
msgstr ""
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr ""
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, c-format
msgid "error in constant pool entry #%d"
msgstr ""
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
msgid "class is of array type\n"
msgstr ""
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
msgid "base class is of array type"
msgstr ""
-#: java/gjavah.c:2322
-#, c-format
+#: java/gjavah.c:2330
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
-#, c-format
+#: java/gjavah.c:2337
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
"\n"
msgstr ""
-#: java/gjavah.c:2330
-#, c-format
+#: java/gjavah.c:2338
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr ""
-#: java/gjavah.c:2331
-#, c-format
+#: java/gjavah.c:2339
msgid " -stubs Generate an implementation stub file\n"
msgstr ""
-#: java/gjavah.c:2332
-#, c-format
+#: java/gjavah.c:2340
msgid " -jni Generate a JNI header or stub\n"
msgstr ""
-#: java/gjavah.c:2334
-#, c-format
+#: java/gjavah.c:2342
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
-#, c-format
+#: java/gjavah.c:2343
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
-#, c-format
+#: java/gjavah.c:2344
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
-#, c-format
+#: java/gjavah.c:2345
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
-#, c-format
+#: java/gjavah.c:2347 java/jcf-dump.c:897
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
-#, c-format
+#: java/gjavah.c:2348 java/jcf-dump.c:898
msgid " -IDIR Append directory to class path\n"
msgstr ""
-#: java/gjavah.c:2341 java/jcf-dump.c:899
-#, c-format
+#: java/gjavah.c:2349 java/jcf-dump.c:899
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
-#, c-format
+#: java/gjavah.c:2350 java/jcf-dump.c:900
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
-#, c-format
+#: java/gjavah.c:2351
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
-#, c-format
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
msgid " -o FILE Set output file name\n"
msgstr ""
-#: java/gjavah.c:2345
-#, c-format
+#: java/gjavah.c:2353
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
-#, c-format
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
msgid " --help Print this help, then exit\n"
msgstr ""
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
-#, c-format
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
msgid " --version Print version number, then exit\n"
msgstr ""
-#: java/gjavah.c:2349 java/jcf-dump.c:905
-#, c-format
+#: java/gjavah.c:2357 java/jcf-dump.c:905
msgid " -v, --verbose Print extra information while running\n"
msgstr ""
-#: java/gjavah.c:2351
-#, c-format
+#: java/gjavah.c:2359
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
-#, c-format
+#: java/gjavah.c:2361
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
-#, c-format
+#: java/gjavah.c:2363
msgid " -MD Print all dependencies to stdout\n"
msgstr ""
-#: java/gjavah.c:2356
-#, c-format
+#: java/gjavah.c:2364
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr ""
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, c-format
msgid ""
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
msgid "no classes specified"
msgstr ""
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
msgid "'-MG' option is unimplemented"
msgstr ""
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
msgid "can't specify both -o and -MD"
msgstr ""
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, c-format
msgid "Processing %s\n"
msgstr ""
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
#: java/jcf-dump.c:814
-#, c-format
msgid "Not a valid Java .class file.\n"
msgstr ""
#: java/jcf-dump.c:820
-#, c-format
msgid "error while parsing constant pool\n"
msgstr ""
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
#: java/jcf-dump.c:836
-#, c-format
msgid "error while parsing fields\n"
msgstr ""
#: java/jcf-dump.c:842
-#, c-format
msgid "error while parsing methods\n"
msgstr ""
#: java/jcf-dump.c:848
-#, c-format
msgid "error while parsing final attributes\n"
msgstr ""
#: java/jcf-dump.c:885
-#, c-format
msgid "Try 'jcf-dump --help' for more information.\n"
msgstr ""
#: java/jcf-dump.c:892
-#, c-format
msgid ""
"Usage: jcf-dump [OPTION]... CLASS...\n"
"\n"
msgstr ""
#: java/jcf-dump.c:893
-#, c-format
msgid ""
"Display contents of a class file in readable form.\n"
"\n"
msgstr ""
#: java/jcf-dump.c:894
-#, c-format
msgid " -c Disassemble method bodies\n"
msgstr ""
#: java/jcf-dump.c:895
-#, c-format
msgid " --javap Generate output in 'javap' format\n"
msgstr ""
#: java/jcf-dump.c:932 java/jcf-dump.c:1000
-#, c-format
msgid "jcf-dump: no classes specified\n"
msgstr ""
@@ -18008,12 +18137,10 @@ msgid "Cannot open '%s' for output.\n"
msgstr ""
#: java/jcf-dump.c:1066
-#, c-format
msgid "bad format of .zip/.jar archive\n"
msgstr ""
#: java/jcf-dump.c:1184
-#, c-format
msgid "Bad byte codes.\n"
msgstr ""
@@ -18024,53 +18151,53 @@ msgid ""
"file %qs used instead"
msgstr ""
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr ""
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, c-format
msgid "can't reopen %s: %m"
msgstr ""
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, c-format
msgid "can't close %s: %m"
msgstr ""
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr ""
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr ""
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
msgid ""
"the %<java.lang.Object%> that was found in %qs didn't have the special zero-"
"length %<gnu.gcj.gcj-compiled%> attribute. This generally means that your "
@@ -18078,128 +18205,119 @@ msgid ""
"info page describing how to set the classpath"
msgstr ""
-#: java/jcf-parse.c:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr ""
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, c-format
msgid "can't close input file %s: %m"
msgstr ""
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr ""
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid ""
"internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr ""
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, c-format
msgid "can't create directory %s: %m"
msgstr ""
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, c-format
msgid "can't open %s for writing: %m"
msgstr ""
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, c-format
msgid "can't create %s: %m"
msgstr ""
#: java/jv-scan.c:99
-#, c-format
msgid "Try 'jv-scan --help' for more information.\n"
msgstr ""
#: java/jv-scan.c:106
-#, c-format
msgid ""
"Usage: jv-scan [OPTION]... FILE...\n"
"\n"
msgstr ""
#: java/jv-scan.c:107
-#, c-format
msgid ""
"Print useful information read from Java source files.\n"
"\n"
msgstr ""
#: java/jv-scan.c:108
-#, c-format
msgid " --no-assert Don't recognize the assert keyword\n"
msgstr ""
#: java/jv-scan.c:109
-#, c-format
msgid " --complexity Print cyclomatic complexity of input file\n"
msgstr ""
#: java/jv-scan.c:110
-#, c-format
msgid " --encoding NAME Specify encoding of input file\n"
msgstr ""
#: java/jv-scan.c:111
-#, c-format
msgid " --print-main Print name of class containing 'main'\n"
msgstr ""
#: java/jv-scan.c:112
-#, c-format
msgid " --list-class List all classes defined in file\n"
msgstr ""
#: java/jv-scan.c:113
-#, c-format
msgid ""
" --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, c-format
msgid "can't open output file '%s'"
msgstr ""
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, c-format
msgid "file not found '%s'"
msgstr ""
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, c-format
msgid "%s: error: "
msgstr ""
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, c-format
msgid "%s: warning: "
msgstr ""
@@ -18252,15 +18370,15 @@ msgstr ""
msgid "cannot specify 'main' class when not linking"
msgstr ""
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:256
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -18269,7 +18387,7 @@ msgid ""
"%<--encoding=UTF-8%> option"
msgstr ""
-#: java/lex.c:627
+#: java/lex.c:631
msgid "internal error - bad unget"
msgstr ""
@@ -18282,986 +18400,1061 @@ msgstr ""
msgid "internal error - invalid Utf8 name"
msgstr ""
-#: java/parse-scan.y:881 java/parse.y:975
-#: java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811
-#: java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854
-#: java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969
-#: java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392
-#: java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419
-#: java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482
-#: java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504
-#: java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557
-#: java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581
-#: java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616
-#: java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655
-#: java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878
+#: java/parse.y:974
+#: java/parse.y:1315
+#: java/parse.y:1376
+#: java/parse.y:1587
+#: java/parse.y:1810
+#: java/parse.y:1819
+#: java/parse.y:1830
+#: java/parse.y:1841
+#: java/parse.y:1853
+#: java/parse.y:1868
+#: java/parse.y:1885
+#: java/parse.y:1887
+#: java/parse.y:1968
+#: java/parse.y:2145
+#: java/parse.y:2214
+#: java/parse.y:2378
+#: java/parse.y:2391
+#: java/parse.y:2398
+#: java/parse.y:2405
+#: java/parse.y:2416
+#: java/parse.y:2418
+#: java/parse.y:2456
+#: java/parse.y:2458
+#: java/parse.y:2460
+#: java/parse.y:2481
+#: java/parse.y:2483
+#: java/parse.y:2485
+#: java/parse.y:2501
+#: java/parse.y:2503
+#: java/parse.y:2524
+#: java/parse.y:2526
+#: java/parse.y:2528
+#: java/parse.y:2556
+#: java/parse.y:2558
+#: java/parse.y:2560
+#: java/parse.y:2562
+#: java/parse.y:2580
+#: java/parse.y:2582
+#: java/parse.y:2593
+#: java/parse.y:2604
+#: java/parse.y:2615
+#: java/parse.y:2626
+#: java/parse.y:2637
+#: java/parse.y:2650
+#: java/parse.y:2654
+#: java/parse.y:2656
+#: java/parse.y:2669
msgid "Missing term"
msgstr ""
-#: java/parse-scan.y:883 java/parse.y:749
-#: java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351
-#: java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822
-#: java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880
+#: java/parse.y:748
+#: java/parse.y:786
+#: java/parse.y:811
+#: java/parse.y:995
+#: java/parse.y:1350
+#: java/parse.y:1563
+#: java/parse.y:1565
+#: java/parse.y:1795
+#: java/parse.y:1821
+#: java/parse.y:1832
+#: java/parse.y:1843
+#: java/parse.y:1855
+#: java/parse.y:1870
msgid "';' expected"
msgstr ""
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746
+#: java/parse.y:784
msgid "Missing name"
msgstr ""
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr ""
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr ""
-#: java/parse.y:841
+#: java/parse.y:840
#, c-format
msgid "Modifier %qs declared twice"
msgstr ""
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860
+#: java/parse.y:862
msgid "Missing class name"
msgstr ""
-#: java/parse.y:866 java/parse.y:870
-#: java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299
-#: java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865
+#: java/parse.y:869
+#: java/parse.y:877
+#: java/parse.y:1035
+#: java/parse.y:1296
+#: java/parse.y:1298
+#: java/parse.y:1630
+#: java/parse.y:1881
+#: java/parse.y:1913
+#: java/parse.y:1975
msgid "'{' expected"
msgstr ""
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr ""
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889
+#: java/parse.y:905
msgid "Missing interface name"
msgstr ""
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr ""
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr ""
-#: java/parse.y:1010 java/parse.y:1095
-#: java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216
-#: java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009
+#: java/parse.y:1094
+#: java/parse.y:2160
+#: java/parse.y:2189
+#: java/parse.y:2211
+#: java/parse.y:2215
+#: java/parse.y:2250
+#: java/parse.y:2329
+#: java/parse.y:2339
+#: java/parse.y:2349
msgid "']' expected"
msgstr ""
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr ""
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr ""
-#: java/parse.y:1055 java/parse.y:1060
-#: java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054
+#: java/parse.y:1059
+#: java/parse.y:1064
+#: java/parse.y:2063
msgid "Identifier expected"
msgstr ""
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069
+#: java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr ""
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544
-#: java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590
-#: java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092
+#: java/parse.y:1543
+#: java/parse.y:1550
+#: java/parse.y:1559
+#: java/parse.y:1561
+#: java/parse.y:1589
+#: java/parse.y:1698
+#: java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr ""
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr ""
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123
+#: java/parse.y:1128
msgid "Missing identifier"
msgstr ""
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148
+#: java/parse.y:1157
msgid "Missing class type term"
msgstr ""
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid ""
"Can't define static initializer in class %qs. Static initializer can only be "
"defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr ""
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678
-#: java/parse.y:1680
+#: java/parse.y:1503
+#: java/parse.y:1677
+#: java/parse.y:1679
msgid "':' expected"
msgstr ""
-#: java/parse.y:1530 java/parse.y:1535
-#: java/parse.y:1540
+#: java/parse.y:1529
+#: java/parse.y:1534
+#: java/parse.y:1539
msgid "Invalid expression statement"
msgstr ""
-#: java/parse.y:1558 java/parse.y:1586
-#: java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884
-#: java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068
-#: java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557
+#: java/parse.y:1585
+#: java/parse.y:1626
+#: java/parse.y:1694
+#: java/parse.y:1762
+#: java/parse.y:1883
+#: java/parse.y:1961
+#: java/parse.y:2052
+#: java/parse.y:2054
+#: java/parse.y:2067
+#: java/parse.y:2310
+#: java/parse.y:2312
msgid "'(' expected"
msgstr ""
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr ""
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr ""
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr ""
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr ""
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737
+#: java/parse.y:1739
msgid "Invalid update expression"
msgstr ""
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr ""
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr ""
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr ""
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009
+#: java/parse.y:2011
msgid "'class' expected"
msgstr ""
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr ""
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158
+#: java/parse.y:2187
msgid "'[' expected"
msgstr ""
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr ""
-#: java/parse.y:2325 java/parse.y:2335
-#: java/parse.y:2345
+#: java/parse.y:2324
+#: java/parse.y:2334
+#: java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr ""
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr ""
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr ""
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr ""
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr ""
-#: java/parse.y:3042
+#: java/parse.y:3041
#, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ""
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121
+#: java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
-#: java/parse.y:3283
+#: java/parse.y:3282
msgid "Missing return statement"
msgstr ""
-#: java/parse.y:3305 java/parse.y:11937
-#: java/parse.y:11941
+#: java/parse.y:3304
+#: java/parse.y:11940
+#: java/parse.y:11944
msgid "Unreachable statement"
msgstr ""
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, c-format
msgid "%s %qs already defined in %s:%d"
msgstr ""
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid ""
"Variable %qs is already defined in this method and was declared %<%s %s%> at "
"line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, c-format
msgid "Interface %qs repeated"
msgstr ""
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid ""
"Inner class %qs can't be static. Static classes can only occur in interfaces "
"and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid ""
"The class name %qs is already defined in this scope. An inner class may not "
"have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
msgid "Qualifier must be a reference"
msgstr ""
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid ""
"Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780
+#: java/parse.y:6533
#, c-format
msgid ""
"Method %qs can't be static in inner class %qs. Only members of interfaces "
"and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr ""
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid ""
"Inconsistent member declaration. At most one of %<public%>, %<private%>, or "
"%<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid ""
"Inconsistent member declaration. At most one of %<final%> or %<volatile%> "
"may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr ""
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
msgid "Class %qs not found in %<throws%>"
msgstr ""
-#: java/parse.y:6277
+#: java/parse.y:6280
#, c-format
msgid "Duplicate %s declaration %qs"
msgstr ""
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid ""
"Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This "
"method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid ""
"Class %qs in %<throws%> clause must be a subclass of class %<java.lang."
"Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid ""
"Class %qs must override %qs with a public method in order to implement "
"interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568
+#: java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid ""
"Instance methods can't be overridden by a static method. Method %qs is an "
"instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid ""
"Methods can't be overridden to be more private. Method %qs is not %s in "
"class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid ""
"Invalid checked exception class %qs in %<throws%> clause. The exception "
"must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid ""
"Interface %qs inherits method %qs from interface %qs. This method is "
"redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, c-format
msgid "Class or interface %qs not found in import"
msgstr ""
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: java/parse.y:7148
+#: java/parse.y:7151
#, c-format
msgid ""
"Can't find default package %qs. Check the CLASSPATH environment variable and "
"the access to the archives"
msgstr ""
-#: java/parse.y:7153
+#: java/parse.y:7156
#, c-format
msgid "Package %qs not found in import"
msgstr ""
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid ""
"Can't access %s %qs. Only public classes and interfaces in other packages "
"can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid ""
"Local variable %qs can't be accessed from within the inner class %qs unless "
"it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587
+#: java/parse.y:10050
#, c-format
msgid "Undefined variable %qs"
msgstr ""
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804
+#: java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923
+#: java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929
+#: java/parse.y:10813
msgid ""
"Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid ""
"Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, c-format
msgid "No variable %qs defined in class %qs"
msgstr ""
-#: java/parse.y:10029
+#: java/parse.y:10032
#, c-format
msgid "Undefined variable or class name: %qs"
msgstr ""
-#: java/parse.y:10100
+#: java/parse.y:10103
#, c-format
msgid "Can't use type %qs as a qualifier"
msgstr ""
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526
+#: java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579
+#: java/parse.y:14437
#, c-format
msgid "Class %qs not found in type declaration"
msgstr ""
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
msgid "Constant expression required"
msgstr ""
-#: java/parse.y:11796
+#: java/parse.y:11799
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:11830
+#: java/parse.y:11833
msgid "Duplicate case label: %<default%>"
msgstr ""
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, c-format
msgid "missing static field %qs"
msgstr ""
-#: java/parse.y:12354
+#: java/parse.y:12357
#, c-format
msgid "not a static field %qs"
msgstr ""
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid ""
"Can't reference %<this%> or %<super%> before the superclass constructor has "
"been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr ""
-#: java/parse.y:12827
+#: java/parse.y:12830
msgid "Invalid left hand side of assignment"
msgstr ""
-#: java/parse.y:12878
+#: java/parse.y:12881
#, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr ""
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid ""
"Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr ""
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid ""
"Evaluating this expression will result in an arithmetic exception being "
"thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid ""
"Incompatible type for %qs. Explicit cast needed to convert shift distance "
"from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid ""
"Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
msgid "Invalid argument %qs for %<instanceof%>"
msgstr ""
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr ""
-#: java/parse.y:14294
+#: java/parse.y:14298
#, c-format
msgid "Invalid argument type %qs to %qs"
msgstr ""
-#: java/parse.y:14524
+#: java/parse.y:14528
#, c-format
msgid "Invalid cast from %qs to %qs"
msgstr ""
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid ""
"Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid ""
"Incompatible type for dimension in array creation expression. %s convert %qs "
"to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr ""
-#: java/parse.y:14862
+#: java/parse.y:14866
#, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr ""
-#: java/parse.y:14931
+#: java/parse.y:14935
msgid "%<return%> inside instance initializer"
msgstr ""
-#: java/parse.y:14935
+#: java/parse.y:14939
msgid "%<return%> inside static initializer"
msgstr ""
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
msgid "%<return%> with value from constructor %qs"
msgstr ""
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr ""
-#: java/parse.y:15051
+#: java/parse.y:15055
#, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr ""
-#: java/parse.y:15298
+#: java/parse.y:15302
#, c-format
msgid "No label definition found for %qs"
msgstr ""
-#: java/parse.y:15311
+#: java/parse.y:15315
msgid "%<continue%> must be in loop"
msgstr ""
-#: java/parse.y:15314
+#: java/parse.y:15318
#, c-format
msgid "continue label %qs does not name a loop"
msgstr ""
-#: java/parse.y:15335
+#: java/parse.y:15339
msgid "%<break%> must be in loop or switch"
msgstr ""
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid ""
"Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
msgid "duplicate case label: %<"
msgstr ""
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
msgid "original label is here"
msgstr ""
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid ""
"Can't catch class %qs. Catch clause parameter type must be a subclass of "
"class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid ""
"Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang."
"Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid ""
"Checked exception %qs can't be thrown in instance initializer (not all "
"declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid ""
"Checked exception %qs can't be caught by any of the catch clause(s) of the "
"surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid ""
"Checked exception %qs doesn't match any of current method's %<throws%> "
"declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid ""
"Exception %qs must be caught, or it must be declared in the %<throws%> "
"clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr ""
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr ""
-#: java/verify-glue.c:393
+#: java/verify-glue.c:387
#, c-format
msgid "verification failed: %s"
msgstr ""
-#: java/verify-glue.c:395
+#: java/verify-glue.c:389
#, c-format
msgid "verification failed at PC=%d: %s"
msgstr ""
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:473 java/verify.c:480
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -19310,175 +19503,175 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr ""
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
msgid "%<@end%> must appear in an @implementation context"
msgstr ""
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
msgid "method declaration not in @interface context"
msgstr ""
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
msgid "method definition not in @implementation context"
msgstr ""
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, c-format
msgid "object does not conform to the %qs protocol"
msgstr ""
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr ""
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr ""
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, c-format
msgid "cannot find protocol declaration for %qs"
msgstr ""
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, c-format
msgid "cannot find interface declaration for %qs"
msgstr ""
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr ""
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, c-format
msgid "cannot find reference tag for class %qs"
msgstr ""
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr ""
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, c-format
msgid "cannot find class %qs"
msgstr ""
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, c-format
msgid "class %qs already exists"
msgstr ""
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr ""
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
msgid "%Jprevious declaration of '%D'"
msgstr ""
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
msgstr ""
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
msgstr ""
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
msgstr ""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
msgid "%J%s %qs"
msgstr ""
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
msgid "can not use an object as parameter to a method"
msgstr ""
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
msgid "multiple %s named %<%c%s%> found"
msgstr ""
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, c-format
msgid "no super class declared in @interface for %qs"
msgstr ""
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, c-format
msgid "invalid receiver type %qs"
msgstr ""
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
msgid "%<%c%s%> not found in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
msgid "%qs may not respond to %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
msgstr ""
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, c-format
msgid "undeclared selector %qs"
msgstr ""
@@ -19492,147 +19685,147 @@ 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:5972
+#: objc/objc-act.c:6022
#, c-format
msgid "instance variable %qs accessed in class method"
msgstr ""
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
msgid "duplicate declaration of method %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr ""
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr ""
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, c-format
msgid "instance variable %qs has unknown size"
msgstr ""
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, c-format
msgid "type %qs has virtual member functions"
msgstr ""
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr ""
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, c-format
msgid "type %qs has a user-defined constructor"
msgstr ""
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, c-format
msgid "type %qs has a user-defined destructor"
msgstr ""
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid ""
"C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, c-format
msgid "instance variable %qs is declared private"
msgstr ""
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr ""
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, c-format
msgid "instance variable %qs is declared %s"
msgstr ""
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
msgid "static access to object of type %<id%>"
msgstr ""
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, c-format
msgid "incomplete implementation of class %qs"
msgstr ""
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, c-format
msgid "incomplete implementation of category %qs"
msgstr ""
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
msgid "method definition for %<%c%s%> not found"
msgstr ""
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr ""
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8278
msgid "%<@end%> missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr ""
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, c-format
msgid "reimplementation of class %qs"
msgstr ""
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, c-format
msgid "conflicting super class name %qs"
msgstr ""
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, c-format
msgid "previous declaration of %qs"
msgstr ""
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, c-format
msgid "duplicate interface declaration for class %qs"
msgstr ""
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, c-format
msgid "duplicate declaration for protocol %qs"
msgstr ""
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7855
#, c-format
msgid "no super class declared in interface for %qs"
msgstr ""
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7903
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8560
#, c-format
msgid "local declaration of %qs hides instance variable"
msgstr ""
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
msgid "extra semicolon in method definition specified"
msgstr ""
@@ -19640,1949 +19833,1830 @@ msgstr ""
msgid "%HDuplicate name %q.*s."
msgstr ""
-#: treelang/treetree.c:842
+#: treelang/treetree.c:825
msgid "Global register variable %qD used in nested function."
msgstr ""
-#: treelang/treetree.c:846
+#: treelang/treetree.c:829
msgid "Register variable %qD used in nested function."
msgstr ""
-#: treelang/treetree.c:852
+#: treelang/treetree.c:835
msgid "Address of global register variable %qD requested."
msgstr ""
-#: treelang/treetree.c:857
+#: treelang/treetree.c:840
msgid "Address of register variable %qD requested."
msgstr ""
-#: options.c:943
+#: options.c:942
msgid "Display this information"
msgstr ""
-#: options.c:949
+#: options.c:948
msgid ""
"--param <param>=<value>\tSet parameter <param> to value. See below for a "
"complete list of parameters"
msgstr ""
-#: options.c:958
+#: options.c:957
msgid ""
"-A<question>=<answer>\tAssert the <answer> to <question>. Putting '-' "
"before <question> disables the <answer> to <question>"
msgstr ""
-#: options.c:961
+#: options.c:960
msgid "Do not discard comments"
msgstr ""
-#: options.c:964
+#: options.c:963
msgid "Do not discard comments in macro expansions"
msgstr ""
-#: options.c:967
+#: options.c:966
msgid ""
"-D<macro>[=<val>]\tDefine a <macro> with <val> as its value. If just "
"<macro> is given, <val> is taken to be 1"
msgstr ""
-#: options.c:973
-msgid "-F <dir>\tAdd <dir> to the end of the main framework include path "
+#: options.c:972
+msgid "-F <dir>\tAdd <dir> to the end of the main framework include path"
msgstr ""
-#: options.c:976
+#: options.c:975
msgid ""
"-G<number>\tPut global and static data smaller than <number> bytes into a "
"special section (on some targets)"
msgstr ""
-#: options.c:979
+#: options.c:978
msgid "Print the name of header files as they are used"
msgstr ""
-#: options.c:985
-msgid "-J<directory>\tPut MODULE files in 'directory'"
-msgstr ""
-
-#: options.c:991
+#: options.c:987
msgid "Generate make dependencies and compile"
msgstr ""
-#: options.c:1000
+#: options.c:996
msgid "Treat missing header files as generated files"
msgstr ""
-#: options.c:1006
+#: options.c:1002
msgid "Like -MD but ignore system header files"
msgstr ""
-#: options.c:1015
+#: options.c:1011
msgid "-MQ <target>\tAdd a MAKE-quoted target"
msgstr ""
-#: options.c:1021
+#: options.c:1017
msgid "-O<number>\tSet optimization level to <number>"
msgstr ""
-#: options.c:1024
+#: options.c:1020
msgid "Optimize for space rather than speed"
msgstr ""
-#: options.c:1027
+#: options.c:1023
msgid "Do not generate #line directives"
msgstr ""
-#: options.c:1030
+#: options.c:1026
msgid "-U<macro>\tUndefine <macro>"
msgstr ""
-#: options.c:1033
+#: options.c:1029
msgid "This switch is deprecated; use -Wextra instead"
msgstr ""
-#: options.c:1036
+#: options.c:1032
msgid ""
"Warn about things that will change when compiling with an ABI-compliant "
"compiler"
msgstr ""
-#: options.c:1039
+#: options.c:1035
msgid "Warn about returning structures, unions or arrays"
msgstr ""
-#: options.c:1042
-msgid "Warn about possible aliasing of dummy arguments"
-msgstr ""
-
-#: options.c:1048
+#: options.c:1041
msgid "Warn about casting functions to incompatible types"
msgstr ""
-#: options.c:1051
+#: options.c:1044
msgid "Warn about pointer casts which increase alignment"
msgstr ""
-#: options.c:1054
+#: options.c:1047
msgid "Warn about casts which discard qualifiers"
msgstr ""
-#: options.c:1057
+#: options.c:1050
msgid "Warn about subscripts whose type is \"char\""
msgstr ""
-#: options.c:1060
+#: options.c:1053
msgid ""
"Warn about possibly nested block comments, and C++ comments spanning more "
"than one physical line"
msgstr ""
-#: options.c:1063
+#: options.c:1056
msgid "Synonym for -Wcomment"
msgstr ""
-#: options.c:1066
-msgid "Warn about implicit conversion"
+#: options.c:1059
+msgid "Warn about possibly confusing type conversions"
msgstr ""
-#: options.c:1069
+#: options.c:1062
msgid "Warn when all constructors and destructors are private"
msgstr ""
-#: options.c:1072
+#: options.c:1065
msgid "Warn when a declaration is found after a statement"
msgstr ""
-#: options.c:1075
+#: options.c:1068
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
msgstr ""
-#: options.c:1078
+#: options.c:1071
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr ""
-#: options.c:1081
+#: options.c:1074
msgid "Warn when an optimization pass is disabled"
msgstr ""
-#: options.c:1084
+#: options.c:1077
msgid "Warn about compile-time integer division by zero"
msgstr ""
-#: options.c:1087
+#: options.c:1080
msgid "Warn about violations of Effective C++ style rules"
msgstr ""
-#: options.c:1090
+#: options.c:1083
msgid "Warn about stray tokens after #elif and #endif"
msgstr ""
-#: options.c:1093
+#: options.c:1086
msgid "Treat all warnings as errors"
msgstr ""
-#: options.c:1096
+#: options.c:1089
msgid "Make implicit function declarations an error"
msgstr ""
-#: options.c:1099
+#: options.c:1092
msgid "Print extra (possibly unwanted) warnings"
msgstr ""
-#: options.c:1102
+#: options.c:1095
msgid "Warn if deprecated empty statements are found"
msgstr ""
-#: options.c:1105
+#: options.c:1098
msgid "Exit on the first error occurred"
msgstr ""
-#: options.c:1108
+#: options.c:1101
msgid "Warn if testing floating point numbers for equality"
msgstr ""
-#: options.c:1111
+#: options.c:1104
msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
msgstr ""
-#: options.c:1114
+#: options.c:1107
msgid "Warn if passing too many arguments to a function for its format string"
msgstr ""
-#: options.c:1117
+#: options.c:1110
msgid "Warn about format strings that are not literals"
msgstr ""
-#: options.c:1120
+#: options.c:1113
msgid "Warn about possible security problems with format functions"
msgstr ""
-#: options.c:1123
+#: options.c:1116
msgid "Warn about strftime formats yielding 2-digit years"
msgstr ""
-#: options.c:1126
+#: options.c:1119
msgid "Warn about zero-length formats"
msgstr ""
-#: options.c:1135
+#: options.c:1128
msgid "Warn about implicit function declarations"
msgstr ""
-#: options.c:1138
+#: options.c:1131
msgid "Warn when a declaration does not specify a type"
msgstr ""
-#: options.c:1141
-msgid "Warn about calls with implicit interface"
-msgstr ""
-
-#: options.c:1144
+#: options.c:1134
msgid "Deprecated. This switch has no effect."
msgstr ""
-#: options.c:1147
+#: options.c:1137
msgid "Warn about variables which are initialized to themselves."
msgstr ""
-#: options.c:1150
+#: options.c:1140
msgid "Warn when an inlined function cannot be inlined"
msgstr ""
-#: options.c:1153
+#: options.c:1143
msgid "Warn about invalid uses of the \"offsetof\" macro"
msgstr ""
-#: options.c:1156
+#: options.c:1146
msgid "Warn about PCH files that are found but not used"
msgstr ""
-#: options.c:1159
+#: options.c:1149
msgid "-Wlarger-than-<number>\tWarn if an object is larger than <number> bytes"
msgstr ""
-#: options.c:1162
-msgid "Warn about truncated source lines"
-msgstr ""
-
-#: options.c:1165
+#: options.c:1152
msgid "Do not warn about using \"long long\" when -pedantic"
msgstr ""
-#: options.c:1168
+#: options.c:1155
msgid "Warn about suspicious declarations of \"main\""
msgstr ""
-#: options.c:1171
+#: options.c:1158
msgid "Warn about possibly missing braces around initializers"
msgstr ""
-#: options.c:1174
+#: options.c:1161
msgid "Warn about global functions without previous declarations"
msgstr ""
-#: options.c:1177
+#: options.c:1164
msgid "Warn about missing fields in struct initializers"
msgstr ""
-#: options.c:1180
+#: options.c:1167
msgid "Warn about functions which might be candidates for format attributes"
msgstr ""
-#: options.c:1183
+#: options.c:1170
msgid "Warn about user-specified include directories that do not exist"
msgstr ""
-#: options.c:1186
+#: options.c:1173
msgid ""
"Warn about functions which might be candidates for __attribute__((noreturn))"
msgstr ""
-#: options.c:1189
+#: options.c:1176
msgid "Warn about global functions without prototypes"
msgstr ""
-#: options.c:1192
+#: options.c:1179
msgid "Warn about use of multi-character character constants"
msgstr ""
-#: options.c:1195
+#: options.c:1182
msgid "Warn about \"extern\" declarations not at file scope"
msgstr ""
-#: options.c:1198
+#: options.c:1185
msgid ""
"Warn when non-templatized friend functions are declared within a template"
msgstr ""
-#: options.c:1201
+#: options.c:1188
msgid "Warn about non-virtual destructors"
msgstr ""
-#: options.c:1204
+#: options.c:1191
msgid ""
"Warn about NULL being passed to argument slots marked as requiring non-NULL"
msgstr ""
-#: options.c:1207
-msgid "Warn about usage of non-standard intrinsics"
-msgstr ""
-
-#: options.c:1210
+#: options.c:1194
msgid "Warn if a C-style cast is used in a program"
msgstr ""
-#: options.c:1213
+#: options.c:1197
msgid "Warn if an old-style parameter definition is used"
msgstr ""
-#: options.c:1216
+#: options.c:1200
msgid "Warn if .class files are out of date"
msgstr ""
-#: options.c:1219
+#: options.c:1203
msgid "Warn about overloaded virtual function names"
msgstr ""
-#: options.c:1222
+#: options.c:1206
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr ""
-#: options.c:1225
+#: options.c:1209
msgid "Warn when padding is required to align structure members"
msgstr ""
-#: options.c:1228
+#: options.c:1212
msgid "Warn about possibly missing parentheses"
msgstr ""
-#: options.c:1231
+#: options.c:1215
msgid "Warn when converting the type of pointers to member functions"
msgstr ""
-#: options.c:1234
+#: options.c:1218
msgid "Warn about function pointer arithmetic"
msgstr ""
-#: options.c:1237
+#: options.c:1221
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr ""
+
+#: options.c:1224
msgid "Warn if inherited methods are unimplemented"
msgstr ""
-#: options.c:1240
+#: options.c:1227
msgid "Warn about multiple declarations of the same object"
msgstr ""
-#: options.c:1243
+#: options.c:1230
msgid "Warn if modifiers are specified when not necessary"
msgstr ""
-#: options.c:1246
+#: options.c:1233
msgid "Warn when the compiler reorders code"
msgstr ""
-#: options.c:1249
+#: options.c:1236
msgid ""
"Warn whenever a function's return type defaults to \"int\" (C), or about "
"inconsistent return types (C++)"
msgstr ""
-#: options.c:1252
+#: options.c:1239
msgid "Warn if a selector has multiple methods"
msgstr ""
-#: options.c:1255
+#: options.c:1242
msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: options.c:1258
+#: options.c:1245
msgid "Warn when one local variable shadows another"
msgstr ""
-#: options.c:1261
+#: options.c:1248
msgid "Warn about signed-unsigned comparisons"
msgstr ""
-#: options.c:1264
+#: options.c:1251
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: options.c:1267
-#: options.c:1270
+#: options.c:1254
+#: options.c:1257
msgid "Warn about code which might break strict aliasing rules"
msgstr ""
-#: options.c:1273
+#: options.c:1260
msgid "Warn about unprototyped function declarations"
msgstr ""
-#: options.c:1276
-msgid "Warn about \"suspicious\" constructs"
-msgstr ""
-
-#: options.c:1279
+#: options.c:1263
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: options.c:1282
+#: options.c:1266
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: options.c:1285
+#: options.c:1269
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: options.c:1288
+#: options.c:1272
msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: options.c:1291
+#: options.c:1275
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: options.c:1294
+#: options.c:1278
msgid "Warn about features not present in traditional C"
msgstr ""
-#: options.c:1297
+#: options.c:1281
msgid ""
"Warn if trigraphs are encountered that might affect the meaning of the "
"program"
msgstr ""
-#: options.c:1300
+#: options.c:1284
msgid "Warn about @selector()s without previously declared methods"
msgstr ""
-#: options.c:1303
+#: options.c:1287
msgid "Warn if an undefined macro is used in an #if directive"
msgstr ""
-#: options.c:1306
-msgid "Warn about underflow of numerical constant expressions"
-msgstr ""
-
-#: options.c:1309
+#: options.c:1290
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: options.c:1312
+#: options.c:1293
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: options.c:1315
+#: options.c:1296
msgid "Warn about code that will never be executed"
msgstr ""
-#: options.c:1318
+#: options.c:1299
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1302
msgid "Warn when a function is unused"
msgstr ""
-#: options.c:1324
-#: options.c:1327
+#: options.c:1305
msgid "Warn when a label is unused"
msgstr ""
-#: options.c:1330
+#: options.c:1308
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1311
msgid "Warn when a function parameter is unused"
msgstr ""
-#: options.c:1336
+#: options.c:1314
msgid "Warn when an expression value is unused"
msgstr ""
-#: options.c:1339
+#: options.c:1317
msgid "Warn when a variable is unused"
msgstr ""
-#: options.c:1342
+#: options.c:1320
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: options.c:1345
+#: options.c:1323
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
-msgid ""
-"A synonym for -std=c89. In a future version of GCC it will become "
-"synonymous with -std=c99 instead"
+#: options.c:1326
+msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)."
msgstr ""
-#: options.c:1351
+#: options.c:1329
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr ""
-#: options.c:1363
+#: options.c:1341
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr ""
-#: options.c:1366
-msgid "Set the default real and integer kinds to double precision"
-msgstr ""
-
-#: options.c:1369
+#: options.c:1344
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: options.c:1372
+#: options.c:1347
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1350
msgid "Generate position-independent code if possible (large mode)"
msgstr ""
-#: options.c:1378
+#: options.c:1353
msgid ""
"Generate position-independent code for executables if possible (large mode)"
msgstr ""
-#: options.c:1384
+#: options.c:1359
msgid "Enforce class member access control semantics"
msgstr ""
-#: options.c:1387
+#: options.c:1362
msgid "Align the start of functions"
msgstr ""
-#: options.c:1393
+#: options.c:1368
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: options.c:1399
+#: options.c:1374
msgid "Align all labels"
msgstr ""
-#: options.c:1405
+#: options.c:1380
msgid "Align the start of loops"
msgstr ""
-#: options.c:1414
+#: options.c:1389
msgid "Change when template instances are emitted"
msgstr ""
-#: options.c:1417
+#: options.c:1392
msgid "Specify that arguments may alias each other and globals"
msgstr ""
-#: options.c:1420
+#: options.c:1395
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: options.c:1423
+#: options.c:1398
msgid "Assume arguments alias neither each other nor globals"
msgstr ""
-#: options.c:1426
+#: options.c:1401
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: options.c:1429
+#: options.c:1404
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1413
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: options.c:1441
+#: options.c:1416
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1419
msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-#: options.c:1447
+#: options.c:1422
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: options.c:1450
+#: options.c:1425
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: options.c:1453
+#: options.c:1428
msgid ""
"Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1431
msgid ""
"Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1434
msgid ""
"Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1437
msgid "Recognize built-in functions"
msgstr ""
-#: options.c:1468
+#: options.c:1443
msgid ""
"-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr ""
-#: options.c:1471
+#: options.c:1446
msgid ""
"-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr ""
-#: options.c:1474
+#: options.c:1449
msgid "Save registers around function calls"
msgstr ""
-#: options.c:1477
+#: options.c:1452
msgid "Check the return value of new"
msgstr ""
-#: options.c:1480
+#: options.c:1455
msgid "Generate checks for references to NULL"
msgstr ""
-#: options.c:1483
+#: options.c:1458
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1461
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: options.c:1492
+#: options.c:1467
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1470
msgid "Reduce the size of object files"
msgstr ""
-#: options.c:1498
+#: options.c:1473
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr ""
-#: options.c:1501
+#: options.c:1476
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1479
msgid "Perform a register copy-propagation optimization pass"
msgstr ""
-#: options.c:1507
+#: options.c:1482
msgid "Perform cross-jumping optimization"
msgstr ""
-#: options.c:1510
+#: options.c:1485
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: options.c:1513
+#: options.c:1488
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: options.c:1516
+#: options.c:1491
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1494
msgid "Place data items into their own section"
msgstr ""
-#: options.c:1519
+#: options.c:1497
msgid "Inline member functions by default"
msgstr ""
-#: options.c:1522
+#: options.c:1500
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: options.c:1525
+#: options.c:1503
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: options.c:1528
+#: options.c:1506
msgid "Delete useless null pointer checks"
msgstr ""
-#: options.c:1531
+#: options.c:1509
msgid ""
"-fdiagnostics-show-location=[once|every-line]\tHow often to emit source "
"location at the beginning of line-wrapped diagnostics"
msgstr ""
-#: options.c:1540
-msgid "Allow dollar signs in entity names"
-msgstr ""
-
-#: options.c:1543
+#: options.c:1518
msgid "Permit '$' as an identifier character"
msgstr ""
-#: options.c:1546
+#: options.c:1521
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
-msgid "Display the code tree after parsing."
-msgstr ""
-
-#: options.c:1552
+#: options.c:1524
msgid ""
"Suppress output of instruction numbers and line number notes in debugging "
"dumps"
msgstr ""
-#: options.c:1558
+#: options.c:1530
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: options.c:1561
-#: options.c:1564
+#: options.c:1533
+#: options.c:1536
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1539
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1542
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1551
msgid ""
"--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1554
msgid "Generate code to check exception specifications"
msgstr ""
-#: options.c:1588
+#: options.c:1560
msgid "Enable exception handling"
msgstr ""
-#: options.c:1591
+#: options.c:1563
msgid ""
"-fexec-charset=<cset>\tConvert all strings and character constants to "
"character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1566
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: options.c:1597
+#: options.c:1569
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1578
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1581
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1584
msgid ""
"-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr ""
-#: options.c:1615
-msgid "Assume that the source file is fixed form"
-msgstr ""
-
-#: options.c:1618
-msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
-msgstr ""
-
-#: options.c:1621
-msgid "Allow arbitrary character line width in fixed mode"
-msgstr ""
-
-#: options.c:1624
+#: options.c:1593
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1596
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: options.c:1630
+#: options.c:1599
msgid "Copy memory address constants into registers before use"
msgstr ""
-#: options.c:1633
+#: options.c:1602
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1605
msgid "Copy memory operands into registers before use"
msgstr ""
-#: options.c:1639
-msgid "Assume that the source file is free form"
-msgstr ""
-
-#: options.c:1642
+#: options.c:1608
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: options.c:1645
+#: options.c:1611
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: options.c:1648
+#: options.c:1614
msgid "Place each function into its own section"
msgstr ""
-#: options.c:1651
+#: options.c:1617
msgid "Perform global common subexpression elimination"
msgstr ""
-#: options.c:1654
+#: options.c:1620
msgid ""
"Perform global common subexpression elimination after register allocation"
msgstr ""
-#: options.c:1657
+#: options.c:1623
msgid ""
"Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1626
msgid ""
"Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: options.c:1663
+#: options.c:1629
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: options.c:1666
+#: options.c:1632
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: options.c:1669
+#: options.c:1635
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: options.c:1672
+#: options.c:1638
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: options.c:1681
+#: options.c:1647
msgid ""
"Assume the runtime uses a hash table to map an object to its synchronization "
"structure"
msgstr ""
-#: options.c:1687
+#: options.c:1653
msgid "Assume normal C execution environment"
msgstr ""
-#: options.c:1690
+#: options.c:1656
msgid "Enable support for huge objects"
msgstr ""
-#: options.c:1693
+#: options.c:1659
msgid "Process #ident directives"
msgstr ""
-#: options.c:1696
+#: options.c:1662
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1665
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr ""
-#: options.c:1702
+#: options.c:1668
msgid "Export functions even if they can be inlined"
msgstr ""
-#: options.c:1705
+#: options.c:1671
msgid "Emit implicit instantiations of inline templates"
msgstr ""
-#: options.c:1708
-msgid ""
-"Specify that no implicit typing is allowed, unless overridden by explicit "
-"IMPLICIT statements"
-msgstr ""
-
-#: options.c:1711
+#: options.c:1674
msgid "Emit implicit instantiations of templates"
msgstr ""
-#: options.c:1714
+#: options.c:1677
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1680
msgid "Do not generate .size directives"
msgstr ""
-#: options.c:1720
+#: options.c:1683
msgid "Pay attention to the \"inline\" keyword"
msgstr ""
-#: options.c:1729
+#: options.c:1692
msgid ""
"-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr ""
-#: options.c:1732
+#: options.c:1695
msgid ""
-"-finput-charset=<cset> Specify the default character set for source "
-"files."
+"-finput-charset=<cset>\tSpecify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1698
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: options.c:1738
+#: options.c:1701
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1704
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1707
msgid "Generate code for functions even if they are fully inlined"
msgstr ""
-#: options.c:1747
+#: options.c:1710
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: options.c:1753
+#: options.c:1716
msgid "Give external symbols a leading underscore"
msgstr ""
-#: options.c:1756
+#: options.c:1719
msgid "Perform loop optimizations"
msgstr ""
-#: options.c:1759
+#: options.c:1722
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1725
msgid "Set errno after built-in math functions"
msgstr ""
-#: options.c:1765
-msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
-msgstr ""
-
-#: options.c:1768
-msgid ""
-"-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be "
-"put on the stack"
-msgstr ""
-
-#: options.c:1771
+#: options.c:1728
msgid "Report on permanent memory allocation"
msgstr ""
-#: options.c:1774
+#: options.c:1731
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1734
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1737
msgid ""
"-fmessage-length=<number>\tLimit diagnostics to <number> characters per "
"line. 0 suppresses line-wrapping"
msgstr ""
-#: options.c:1783
-msgid "Set default accessibility of module entities to PRIVATE"
-msgstr ""
-
-#: options.c:1786
+#: options.c:1740
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1743
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: options.c:1792
+#: options.c:1746
msgid "Don't warn about uses of Microsoft extensions"
msgstr ""
-#: options.c:1795
+#: options.c:1749
msgid ""
"Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1752
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1755
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr ""
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
-#: options.c:1816
+#: options.c:1764
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
-#: options.c:1819
+#: options.c:1767
msgid "Assume that receivers of Objective-C messages may be nil"
msgstr ""
-#: options.c:1822
-msgid "Don't generate code, just do syntax and semantics checking"
-msgstr ""
-
-#: options.c:1825
+#: options.c:1770
msgid "Support synchronous non-call exceptions"
msgstr ""
-#: options.c:1834
+#: options.c:1779
msgid "Enable Objective-C exception and synchronization syntax"
msgstr ""
-#: options.c:1837
+#: options.c:1782
msgid "Enable Objective-C setjmp exception handling runtime"
msgstr ""
-#: options.c:1840
+#: options.c:1785
msgid "When possible do not generate stack frames"
msgstr ""
-#: options.c:1843
+#: options.c:1788
msgid "Recognize C++ kewords like \"compl\" and \"xor\""
msgstr ""
-#: options.c:1846
+#: options.c:1791
msgid "Do the full register move optimization pass"
msgstr ""
-#: options.c:1849
+#: options.c:1794
msgid "Optimize sibling and tail recursive calls"
msgstr ""
-#: options.c:1852
+#: options.c:1797
msgid "Enable optimization of static class initialization code"
msgstr ""
-#: options.c:1855
+#: options.c:1800
msgid "Enable optional diagnostics"
msgstr ""
-#: options.c:1861
-msgid "Try to layout derived types as compact as possible"
-msgstr ""
-
-#: options.c:1864
+#: options.c:1806
msgid "Pack structure members together without holes"
msgstr ""
-#: options.c:1867
+#: options.c:1809
msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
msgstr ""
-#: options.c:1870
+#: options.c:1812
msgid "Return small aggregates in memory, not registers"
msgstr ""
-#: options.c:1876
+#: options.c:1818
msgid "Look for and use PCH files even when preprocessing"
msgstr ""
-#: options.c:1879
+#: options.c:1821
msgid "Perform loop peeling"
msgstr ""
-#: options.c:1882
+#: options.c:1824
msgid "Enable machine specific peephole optimizations"
msgstr ""
-#: options.c:1885
+#: options.c:1827
msgid "Enable an RTL peephole pass before sched2"
msgstr ""
-#: options.c:1888
+#: options.c:1830
msgid "Downgrade conformance errors to warnings"
msgstr ""
-#: options.c:1891
+#: options.c:1833
msgid "Generate position-independent code if possible (small mode)"
msgstr ""
-#: options.c:1894
+#: options.c:1836
msgid ""
"Generate position-independent code for executables if possible (small mode)"
msgstr ""
-#: options.c:1897
+#: options.c:1839
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: options.c:1900
+#: options.c:1842
msgid "Treat the input file as already preprocessed"
msgstr ""
-#: options.c:1903
+#: options.c:1845
msgid "Enable basic program profiling code"
msgstr ""
-#: options.c:1906
+#: options.c:1848
msgid "Insert arc-based program profiling code"
msgstr ""
-#: options.c:1909
+#: options.c:1851
msgid ""
"Enable common options for generating profile info for profile feedback "
"directed optimizations"
msgstr ""
-#: options.c:1912
+#: options.c:1854
msgid ""
"Enable common options for performing profile feedback directed optimizations"
msgstr ""
-#: options.c:1915
+#: options.c:1857
msgid "Insert code to profile values of expressions"
msgstr ""
-#: options.c:1921
+#: options.c:1863
msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
msgstr ""
-#: options.c:1924
+#: options.c:1866
msgid "Return small aggregates in registers"
msgstr ""
-#: options.c:1927
+#: options.c:1869
msgid "Enables a register move optimization"
msgstr ""
-#: options.c:1930
+#: options.c:1872
msgid "Perform a register renaming optimization pass"
msgstr ""
-#: options.c:1933
+#: options.c:1875
msgid "Reorder basic blocks to improve code placement"
msgstr ""
-#: options.c:1936
+#: options.c:1878
msgid "Reorder basic blocks and partition into hot and cold sections"
msgstr ""
-#: options.c:1939
+#: options.c:1881
msgid "Reorder functions to improve code placement"
msgstr ""
-#: options.c:1942
-msgid "Copy array sections into a contiguous block on procedure entry"
-msgstr ""
-
-#: options.c:1945
+#: options.c:1884
msgid ""
"Used in Fix-and-Continue mode to indicate that object files may be swapped "
"in at runtime"
msgstr ""
-#: options.c:1948
+#: options.c:1887
msgid "Enable automatic template instantiation"
msgstr ""
-#: options.c:1951
+#: options.c:1890
msgid "Add a common subexpression elimination pass after loop optimizations"
msgstr ""
-#: options.c:1954
+#: options.c:1893
msgid "Run the loop optimizer twice"
msgstr ""
-#: options.c:1957
+#: options.c:1896
msgid ""
"Enable/Disable the traditional scheduling in loops that already passed "
"modulo scheduling"
msgstr ""
-#: options.c:1960
+#: options.c:1899
msgid "Disable optimizations that assume default FP rounding behavior"
msgstr ""
-#: options.c:1963
+#: options.c:1902
msgid "Generate run time type descriptor information"
msgstr ""
-#: options.c:1966
+#: options.c:1905
msgid "Enable scheduling across basic blocks"
msgstr ""
-#: options.c:1969
+#: options.c:1908
msgid "Allow speculative motion of non-loads"
msgstr ""
-#: options.c:1972
+#: options.c:1911
msgid "Allow speculative motion of some loads"
msgstr ""
-#: options.c:1975
+#: options.c:1914
msgid "Allow speculative motion of more loads"
msgstr ""
-#: options.c:1978
+#: options.c:1917
msgid "Allow premature scheduling of queued insns"
msgstr ""
-#: options.c:1981
+#: options.c:1920
msgid ""
"Set dependence distance checking in premature scheduling of queued insns"
msgstr ""
-#: options.c:1984
+#: options.c:1923
msgid ""
-"-fsched-stalled-insns-dep=<number> Set dependence distance checking in "
+"-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in "
"premature scheduling of queued insns"
msgstr ""
-#: options.c:1987
+#: options.c:1926
msgid ""
-"-fsched-stalled-insns=<number> Set number of queued insns that can be "
+"-fsched-stalled-insns=<number>\tSet number of queued insns that can be "
"prematurely scheduled"
msgstr ""
-#: options.c:1990
+#: options.c:1929
msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
msgstr ""
-#: options.c:1993
+#: options.c:1932
msgid "If scheduling post reload, do superblock scheduling"
msgstr ""
-#: options.c:1996
+#: options.c:1935
msgid "If scheduling post reload, do trace scheduling"
msgstr ""
-#: options.c:1999
+#: options.c:1938
msgid "Reschedule instructions before register allocation"
msgstr ""
-#: options.c:2002
+#: options.c:1941
msgid "Reschedule instructions after register allocation"
msgstr ""
-#: options.c:2005
-msgid "Append a second underscore if the name already contains an underscore"
-msgstr ""
-
-#: options.c:2008
+#: options.c:1944
msgid "Mark data as shared rather than private"
msgstr ""
-#: options.c:2011
+#: options.c:1947
msgid "Use the same size for double as for float"
msgstr ""
-#: options.c:2014
+#: options.c:1950
msgid "Use the narrowest integer type possible for enumeration types"
msgstr ""
-#: options.c:2017
+#: options.c:1953
msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
msgstr ""
-#: options.c:2023
+#: options.c:1959
msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: options.c:2026
+#: options.c:1962
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
msgstr ""
-#: options.c:2029
+#: options.c:1965
msgid "Make \"char\" signed by default"
msgstr ""
-#: options.c:2032
+#: options.c:1968
msgid "Convert floating point constants to single precision constants"
msgstr ""
-#: options.c:2035
+#: options.c:1971
msgid "Use value profiling for speculative prefetching"
msgstr ""
-#: options.c:2038
+#: options.c:1974
msgid "Split lifetimes of induction variables when loops are unrolled."
msgstr ""
-#: options.c:2044
+#: options.c:1980
msgid "Insert stack checking code into the program"
msgstr ""
-#: options.c:2050
+#: options.c:1986
msgid ""
"-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
msgstr ""
-#: options.c:2053
+#: options.c:1989
msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
msgstr ""
-#: options.c:2056
+#: options.c:1992
msgid "Display statistics accumulated during compilation"
msgstr ""
-#: options.c:2059
+#: options.c:1995
msgid "Enable assignability checks for stores into object arrays"
msgstr ""
-#: options.c:2062
+#: options.c:1998
msgid "Perform strength reduction optimizations"
msgstr ""
-#: options.c:2065
+#: options.c:2001
msgid "Assume strict aliasing rules apply"
msgstr ""
-#: options.c:2071
+#: options.c:2007
msgid "Check for syntax errors, then stop"
msgstr ""
-#: options.c:2074
+#: options.c:2010
msgid "-ftabstop=<number>\tDistance between tab stops for column reporting"
msgstr ""
-#: options.c:2077
+#: options.c:2013
msgid "-ftemplate-depth-<number>\tSpecify maximum template instantiation depth"
msgstr ""
-#: options.c:2080
+#: options.c:2016
msgid "Create data files needed by \"gcov\""
msgstr ""
-#: options.c:2086
+#: options.c:2022
msgid "Perform jump threading optimizations"
msgstr ""
-#: options.c:2089
+#: options.c:2025
msgid ""
"-fno-threadsafe-statics\tDo not generate thread-safe code for initializing "
"local statics."
msgstr ""
-#: options.c:2092
+#: options.c:2028
msgid "Report the time taken by each compiler pass"
msgstr ""
-#: options.c:2095
+#: options.c:2031
msgid ""
"-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the "
"default thread-local storage code generation model"
msgstr ""
-#: options.c:2098
+#: options.c:2034
msgid "Perform superblock formation via tail duplication"
msgstr ""
-#: options.c:2101
+#: options.c:2037
msgid "Assume floating-point operations can trap"
msgstr ""
-#: options.c:2104
+#: options.c:2040
msgid "Trap for signed overflow in addition, subtraction and multiplication"
msgstr ""
-#: options.c:2107
+#: options.c:2043
msgid "Use tree-ssa based implementation of profiling"
msgstr ""
-#: options.c:2110
+#: options.c:2046
msgid "Enable SSA-CCP optimization on trees"
msgstr ""
-#: options.c:2113
+#: options.c:2049
msgid "Enable loop header copying on trees"
msgstr ""
-#: options.c:2116
+#: options.c:2052
msgid "Coalesce memory temporaries in the SSA->normal pass"
msgstr ""
-#: options.c:2119
+#: options.c:2055
msgid "Replace SSA temporaries with better names in copies."
msgstr ""
-#: options.c:2122
+#: options.c:2058
msgid "Enable SSA dead code elimination optimization on trees"
msgstr ""
-#: options.c:2125
+#: options.c:2061
msgid "Enable dominator optimizations"
msgstr ""
-#: options.c:2128
+#: options.c:2064
msgid "Enable dead store elimination"
msgstr ""
-#: options.c:2131
+#: options.c:2067
msgid "Enable Full Redundancy Elimination (FRE) on trees"
msgstr ""
-#: options.c:2134
+#: options.c:2070
msgid "Enable loop invariant motion on trees"
msgstr ""
-#: options.c:2137
+#: options.c:2073
msgid "Create canonical induction variables in loops"
msgstr ""
-#: options.c:2140
+#: options.c:2076
msgid "Enable linear loop transforms on trees"
msgstr ""
-#: options.c:2143
+#: options.c:2079
msgid "Enable loop optimizations on tree level"
msgstr ""
-#: options.c:2146
+#: options.c:2082
msgid "Perform live range splitting during the SSA->normal pass."
msgstr ""
-#: options.c:2149
+#: options.c:2085
msgid "Enable SSA-PRE optimization on trees"
msgstr ""
-#: options.c:2152
+#: options.c:2088
msgid "Perform scalar replacement of aggregates"
msgstr ""
-#: options.c:2155
+#: options.c:2091
msgid "Replace temporary expressions in the SSA->normal pass"
msgstr ""
-#: options.c:2158
+#: options.c:2094
msgid "Enable loop vectorization on trees"
msgstr ""
-#: options.c:2161
-msgid "Append underscores to externally visible names"
+#: options.c:2097
+msgid ""
+"-ftree-vectorizer-verbose=<number>\tSet the verbosity level of the vectorizer"
msgstr ""
-#: options.c:2164
+#: options.c:2100
msgid "Compile whole compilation unit at a time"
msgstr ""
-#: options.c:2167
+#: options.c:2103
msgid "Perform loop unrolling for all loops"
msgstr ""
-#: options.c:2170
+#: options.c:2106
msgid "Perform loop unrolling when iteration count is known"
msgstr ""
-#: options.c:2173
+#: options.c:2109
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
-#: options.c:2176
+#: options.c:2112
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
-#: options.c:2179
+#: options.c:2115
msgid "Make \"char\" unsigned by default"
msgstr ""
-#: options.c:2182
+#: options.c:2118
msgid "Perform loop unswitching"
msgstr ""
-#: options.c:2185
+#: options.c:2121
msgid "Just generate unwind tables for exception handling"
msgstr ""
-#: options.c:2188
+#: options.c:2124
msgid "Generate code for the Boehm GC"
msgstr ""
-#: options.c:2191
+#: options.c:2127
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: options.c:2194
+#: options.c:2130
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2133
msgid "Perform variable tracking"
msgstr ""
-#: options.c:2200
+#: options.c:2136
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2139
msgid "Add extra commentary to assembler output"
msgstr ""
-#: options.c:2206
+#: options.c:2142
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2145
msgid ""
"-fvisibility=[default|internal|hidden|protected]\tSet the default symbol "
"visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2148
msgid "Use expression value profiles in optimizations"
msgstr ""
-#: options.c:2215
+#: options.c:2151
msgid "Discard unused virtual functions"
msgstr ""
-#: options.c:2218
+#: options.c:2154
msgid "Implement vtables using thunks"
msgstr ""
-#: options.c:2221
+#: options.c:2157
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: options.c:2224
+#: options.c:2160
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2163
msgid ""
"-fwide-exec-charset=<cset>\tConvert all wide strings and character constants "
"to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2166
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2169
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2172
msgid "Emit cross referencing information"
msgstr ""
-#: options.c:2239
+#: options.c:2175
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: options.c:2242
+#: options.c:2178
msgid ""
"Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2181
msgid "Generate debug information in default format"
msgstr ""
-#: options.c:2248
+#: options.c:2184
msgid "Generate debug information in COFF format"
msgstr ""
-#: options.c:2251
+#: options.c:2187
msgid "Generate debug information in DWARF v2 format"
msgstr ""
-#: options.c:2254
+#: options.c:2190
msgid "Dump declarations to a .decl file"
msgstr ""
-#: options.c:2257
+#: options.c:2193
msgid "Generate debug information in default extended format"
msgstr ""
-#: options.c:2260
+#: options.c:2196
msgid "Generate debug information in STABS format"
msgstr ""
-#: options.c:2263
+#: options.c:2199
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: options.c:2266
+#: options.c:2202
msgid "Generate debug information in VMS format"
msgstr ""
-#: options.c:2269
+#: options.c:2205
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: options.c:2272
+#: options.c:2208
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: options.c:2275
-msgid "Set the default integer kind to double precision"
-msgstr ""
-
-#: options.c:2278
+#: options.c:2211
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2214
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2217
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2220
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2223
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2226
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2229
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2232
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2235
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2247
msgid ""
"Do not search standard system include directories (those specified with -"
"isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2250
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2253
msgid "-o <file>\tPlace output into <file>"
msgstr ""
-#: options.c:2323
+#: options.c:2256
msgid "Enable function profiling"
msgstr ""
-#: options.c:2326
+#: options.c:2259
msgid "Issue warnings needed for strict compliance to the standard"
msgstr ""
-#: options.c:2329
+#: options.c:2262
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2265
msgid "Generate C header of platform-specific features"
msgstr ""
-#: options.c:2335
-msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
-msgstr ""
-
-#: options.c:2338
+#: options.c:2268
msgid "Do not display functions compiled or elapsed time"
msgstr ""
-#: options.c:2341
-msgid "Set the default real kind to double precision"
-msgstr ""
-
-#: options.c:2344
+#: options.c:2271
msgid "Remap file names when including files"
msgstr ""
-#: options.c:2347
+#: options.c:2274
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2277
+#: options.c:2298
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2280
+#: options.c:2304
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356
-#: options.c:2386
-#: options.c:2389
+#: options.c:2283
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
-msgid "Conform to the ISO Fortran 2003 standard."
-msgstr ""
-
-#: options.c:2362
-msgid "Conform to the ISO Fortran 95 standard."
-msgstr ""
-
-#: options.c:2365
-msgid "Conform nothing in particular."
-msgstr ""
-
-#: options.c:2368
+#: options.c:2286
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2289
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2292
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2295
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
-msgid "Deprecated in favor of -std=c89"
+#: options.c:2301
+msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2383
-msgid "Conform to the ISO 1990 C standard as amended in 1994"
+#: options.c:2307
+msgid "Deprecated in favor of -std=iso9899:1999"
msgstr ""
-#: options.c:2392
+#: options.c:2310
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2313
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2316
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2319
msgid "Enable verbose output"
msgstr ""
-#: options.c:2407
+#: options.c:2325
msgid "Suppress warnings"
msgstr ""
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1140 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr ""
-#: config/sh/sh.h:685
-msgid "SH2a does not support little-endian"
+#: ada/lang-specs.h:34 java/jvspec.c:80 gcc.c:790
+msgid "-pg and -fomit-frame-pointer are incompatible"
msgstr ""
-#: config/mips/r3900.h:35
-msgid "-mhard-float not supported"
+#: ada/lang-specs.h:35
+msgid "-c or -S required for Ada"
msgstr ""
-#: config/mips/r3900.h:37
-msgid "-msingle-float and -msoft-float cannot both be specified"
+#: config/i386/cygwin.h:29
+msgid "mno-cygwin and mno-win32 are not compatible"
msgstr ""
-#: config/darwin.h:248
-msgid "-current_version only allowed with -dynamiclib"
+#: config/i386/cygwin.h:70 config/i386/mingw32.h:58
+msgid "shared and mdll are not compatible"
msgstr ""
-#: config/darwin.h:250
-msgid "-install_name only allowed with -dynamiclib"
+#: config/i386/nwld.h:34
+msgid "Static linking is not supported.\n"
msgstr ""
-#: config/darwin.h:255
-msgid "-bundle not allowed with -dynamiclib"
+#: config/i386/sco5.h:189
+msgid "-pg not supported on this platform"
msgstr ""
-#: config/darwin.h:256
-msgid "-bundle_loader not allowed with -dynamiclib"
+#: config/i386/sco5.h:190
+msgid "-p and -pp specified - pick one"
msgstr ""
-#: config/darwin.h:257
-msgid "-client_name not allowed with -dynamiclib"
+#: config/i386/sco5.h:264
+msgid "-G and -static are mutually exclusive"
msgstr ""
-#: config/darwin.h:262
-msgid "-force_flat_namespace not allowed with -dynamiclib"
+#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
+#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
+msgid "may not use both -m32 and -m64"
msgstr ""
-#: config/darwin.h:264
-msgid "-keep_private_externs not allowed with -dynamiclib"
+#: config/darwin.h:251
+msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
-msgid "-private_bundle not allowed with -dynamiclib"
+#: config/darwin.h:253
+msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/arm/arm.h:153
-msgid "-msoft-float and -mhard_float may not be used together"
+#: config/darwin.h:258
+msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/arm/arm.h:155
-msgid "-mbig-endian and -mlittle-endian may not be used together"
+#: config/darwin.h:259
+msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: java/lang-specs.h:34
-msgid "-fjni and -femit-class-files are incompatible"
+#: config/darwin.h:260
+msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: java/lang-specs.h:35
-msgid "-fjni and -femit-class-file are incompatible"
+#: config/darwin.h:265
+msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: java/lang-specs.h:36 java/lang-specs.h:37
-msgid "-femit-class-file should used along with -fsyntax-only"
+#: config/darwin.h:267
+msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/i386/mingw32.h:58 config/i386/cygwin.h:70
-msgid "shared and mdll are not compatible"
+#: config/darwin.h:268
+msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
-#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
-#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
-msgid "may not use both -m32 and -m64"
+#: 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"
+#: config/lynx.h:71
+msgid "Cannot use mthreads and mlegacy-threads together."
msgstr ""
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
+#: config/lynx.h:96
+msgid "Cannot use mshared and static together."
msgstr ""
-#: config/vax/netbsd-elf.h:42
-msgid "The -shared option is not currently supported for VAX ELF."
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
msgstr ""
-#: config/i386/nwld.h:34
-msgid "Static linking is not supported.\n"
+#: config/mcore/mcore.h:57
+msgid "the m210 does not have little endian support"
msgstr ""
-#: config/vax/vax.h:50 config/vax/vax.h:51
-msgid "profiling not supported with -mg\n"
+#: config/arm/arm.h:153
+msgid "-msoft-float and -mhard_float may not be used together"
msgstr ""
-#: config/i386/sco5.h:189
-msgid "-pg not supported on this platform"
+#: config/arm/arm.h:155
+msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr ""
-#: config/i386/sco5.h:190
-msgid "-p and -pp specified - pick one"
+#: gcc.c:763
+msgid "GCC does not support -C or -CC without -E"
msgstr ""
-#: config/i386/sco5.h:264
-msgid "-G and -static are mutually exclusive"
+#: gcc.c:957
+msgid "-E or -x required when input is from standard input"
msgstr ""
-#: config/i386/cygwin.h:29
-msgid "mno-cygwin and mno-win32 are not compatible"
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-files are incompatible"
msgstr ""
-#: config/mcore/mcore.h:57
-msgid "the m210 does not have little endian support"
+#: java/lang-specs.h:35
+msgid "-fjni and -femit-class-file are incompatible"
msgstr ""
-#: gcc.c:769
-msgid "GCC does not support -C or -CC without -E"
+#: java/lang-specs.h:36 java/lang-specs.h:37
+msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
-#: gcc.c:963
-msgid "-E required when input is from standard input"
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
msgstr ""
-#: config/lynx.h:71
-msgid "Cannot use mthreads and mlegacy-threads together."
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr ""
-#: config/lynx.h:96
-msgid "Cannot use mshared and static together."
+#: treelang/lang-specs.h:53
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
msgstr ""
-#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172
-#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
-msgid "does not support multilib"
+#: config/rs6000/darwin.h:130
+msgid " conflicting code gen style switches are used"
msgstr ""
-#: config/rs6000/darwin.h:132
-msgid " conflicting code gen style switches are used"
+#: config/sh/sh.h:685
+msgid "SH2a does not support little-endian"
msgstr ""
-#: ada/lang-specs.h:35
-msgid "-c or -S required for Ada"
+#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172
+#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
+msgid "does not support multilib"
msgstr ""
diff --git a/gcc/po/ja.po b/gcc/po/ja.po
index 167cd81e128..6a43323d467 100644
--- a/gcc/po/ja.po
+++ b/gcc/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.0\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\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"
@@ -40,69 +40,47 @@ msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
msgid "offset outside bounds of constant string"
msgstr "¥ª¥Õ¥»¥Ã¥È¤¬Äê¿ôʸ»úÎó¤Î¶­³¦¤Î³°¤Ë¤¢¤ê¤Þ¤¹"
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "`__builtin_expect' ¤Ø¤ÎÂèÆó°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "`__builtin_expect' ¤Ø¤ÎÂèÆó°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "`__builtin_args_info' ¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "`va_start' ¤¬¸ÇÄê¸Ä°ú¿ô¤Î´Ø¿ôÆâ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "`__builtin_next_arg' ¤¬°ú¿ô̵¤·¤Ç¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "`va_start' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "`va_start' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: builtins.c:4017
+#: builtins.c:4077
#, fuzzy
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr "`va_arg' ¤ËÂФ¹¤ëÂè°ì°ú¿ô¤¬ `va_list' ·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
@@ -110,531 +88,562 @@ msgstr "`va_arg' ¤ËÂФ¹¤ëÂè°ì°ú¿ô¤¬ `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:4031
+#: builtins.c:4091
#, fuzzy
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "`%s' ¤Ï `...' ¤Î½èÍý¤Î²áÄø¤Ç `%s' ¤Ë³Ê¾å¤²¤µ¤ì¤Þ¤·¤¿"
-#: builtins.c:4036
+#: builtins.c:4096
#, fuzzy
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(½¾¤Ã¤Æ¡¢`va_arg' ¤Ë¤Ï `%s' ¤ò(`%s' ¤Ç¤Ê¤¯)ÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó)"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4220
#, fuzzy
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "`__builtin_frame_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:4162
+#: builtins.c:4222
#, fuzzy
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:4176
+#: builtins.c:4235
#, fuzzy
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ `__builtin_frame_address' ¤Ø¤Î°ú¿ô¤Ç¤¹"
-#: builtins.c:4178
+#: builtins.c:4237
#, fuzzy
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ `__builtin_return_address' ¤Ø°ú¿ô¤Ç¤¹"
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "`__builtin_expect' ¤Ø¤ÎÂèÆó°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:5488
+#: builtins.c:5590
#, fuzzy
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "__builtin_longjmp ÂèÆó°ú¿ô¤Ï 1 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:5840
+#: builtins.c:5942
#, fuzzy
msgid "target format does not support infinity"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï interworking ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: c-common.c:831
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "`__builtin_next_arg' ¤¬°ú¿ô̵¤·¤Ç¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿"
+
+#: builtins.c:8933
+#, fuzzy
+msgid "%<va_start%> used with too many arguments"
+msgstr "¥Þ¥¯¥í `%s' ¤Î°ú¿ô(%d ¸Ä)¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "`va_start' ¤ÎÆóÈÖÌܤÎÃͤ¬°ú¿ô¤ÎºÇ¸å¤Î̾Á°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó"
+
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "¥é¥Ù¥ë %s ¤¬¤¢¤é¤æ¤ë´Ø¿ô¤Î³°Â¦¤Ç»²¾È¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:852
+#: c-common.c:847
#, fuzzy, c-format
msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
msgstr "ʸ»úÎóĹ `%d' ¤Ï¡¢Ä¹¤µ `%d' (ISO C%d ¥³¥ó¥Ñ¥¤¥é¤Î¥µ¥Ý¡¼¥ÈÍ×·ï)¤è¤êÂ礭¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "¼°¤ÎÀ°¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:933
+#: c-common.c:923
#, fuzzy
msgid "vector overflow in expression"
msgstr "¼°¤ÎÀ°¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "Â礭¤ÊÀ°¿ô¤¬°ÅÌÛ¤ËÉä¹ç̵¤··¿¤ËÀÚ¤êµÍ¤á¤é¤ì¤Þ¤·¤¿"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "Éé¤ÎÀ°¿ô¤¬°ÅÌÛ¤ËÉä¹ç̵¤··¿¤ËÊÑ´¹¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "°ÅÌÛ¤ÎÄê¿ôÊÑ´¹¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:1151
+#: c-common.c:1141
#, fuzzy, c-format
msgid "operation on %qs may be undefined"
msgstr "`%s' ¤Ç¤Î±é»»¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È»×¤ï¤ì¤Þ¤¹"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "case ¥é¥Ù¥ë¤òÀ°¿ôÄê¿ô¤Ë´Ô¸µ¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:1480
+#: c-common.c:1468
#, fuzzy
msgid "case label value is less than minimum value for type"
msgstr "¤½¤Î·¿¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
-#: c-common.c:1488
+#: c-common.c:1476
#, fuzzy
msgid "case label value exceeds maximum value for type"
msgstr "¤½¤Î·¿¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
-#: c-common.c:1496
+#: c-common.c:1484
#, fuzzy
msgid "lower value in case label range less than minimum value for type"
msgstr "¤½¤Î·¿¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
-#: c-common.c:1505
+#: c-common.c:1493
#, fuzzy
msgid "upper value in case label range exceeds maximum value for type"
msgstr "¤½¤Î·¿¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "¿¿µ¶Ãͼ°¤¬ÉÔŬÀڤǤ¹"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
-#: c-common.c:2112
+#: c-common.c:2116
msgid "comparison is always false due to limited range of data type"
msgstr "¥Ç¡¼¥¿·¿¤ÎÈÏ°ÏÀ©¸Â¤Ë¤è¤Ã¤Æ¡¢Èæ³Ó¤¬¾ï¤Ë false ¤È¤Ê¤ê¤Þ¤¹"
-#: c-common.c:2114
+#: c-common.c:2118
msgid "comparison is always true due to limited range of data type"
msgstr "¥Ç¡¼¥¿·¿¤ÎÈÏ°ÏÀ©¸Â¤Ë¤è¤Ã¤Æ¡¢Èæ³Ó¤¬¾ï¤Ë true ¤È¤Ê¤ê¤Þ¤¹"
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "Éä¹ç̵¤·¤Î¼° >= 0 ¤È¤¤¤¦Èæ³Ó¤Ï¾ï¤Ë true ¤Ç¤¹"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "Éä¹ç̵¤·¤Î¼° < 0 ¤È¤¤¤¦Èæ³Ó¤Ï¾ï¤Ë false ¤Ç¤¹"
-#: c-common.c:2235
+#: c-common.c:2239
#, fuzzy
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:2247
+#: c-common.c:2251
#, fuzzy
msgid "pointer to member function used in arithmetic"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr ""
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr "¿¿µ¶ÃͤȤ·¤Æ»È¤ï¤ì¤ëÂåÆþ¤Î¤Þ¤ï¤ê¤Ç¤Ï¡¢´Ý³ç¸Ì¤Î»ÈÍѤò¤ª´«¤á¤·¤Þ¤¹"
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "ISO C++ ¤Ï´Ø¿ô·¿¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: c-common.c:2813
+#: c-common.c:2848
#, fuzzy
msgid "%<__alignof%> applied to a bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ë `__alignof' ¤¬Å¬ÍѤµ¤ì¤Þ¤·¤¿"
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "case ¤ÎÃͤȤ·¤Æ¤Î¥Ý¥¤¥ó¥¿¤Ïµö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-common.c:3452
+#: c-common.c:3509
#, fuzzy
msgid "range expressions in switch statements are non-standard"
msgstr "ISO C ¤Ç¤Ï switch ʸ¤Ç¤ÎÈϰϼ°¤Ï¶Ø¤¸¤é¤ì¤Æ¤¤¤Þ¤¹"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "¶õ¤ÎÈϰϤ¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "Æó½Å¤Î(¤¢¤ë¤¤¤Ï½ÅÊ£¤·¤Æ¤¤¤ë) case ¤ÎÃÍ"
-#: c-common.c:3537
+#: c-common.c:3594
#, fuzzy
msgid "%Jthis is the first entry overlapping that value"
msgstr "¤³¤ì¤¬¤½¤ÎÃͤȽÅÊ£¤·¤¿ºÇ½é¤Î¹àÌܤǤ¹"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: c-common.c:3542
+#: c-common.c:3599
#, fuzzy
msgid "%Jpreviously used here"
msgstr "Á°¤Ë¤³¤³¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "°ì¤Ä¤Î switch ¤ËÊ£¿ô¤Î default ¥é¥Ù¥ë¤¬¤¢¤ê¤Þ¤¹"
-#: c-common.c:3547
+#: c-common.c:3604
#, fuzzy
msgid "%Jthis is the first default label"
msgstr "¤³¤ì¤¬ºÇ½é¤Î default ¥é¥Ù¥ë¤Ç¤¹"
-#: c-common.c:3596
+#: c-common.c:3653
#, fuzzy
msgid "%Jcase value %qs not in enumerated type"
msgstr "case ÃÍ `%ld' ¤ÏÎóµó·¿¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:3599
+#: c-common.c:3656
#, fuzzy
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr "case ÃÍ `%ld' ¤ÏÎóµó·¿¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "¤³¤ì¤¬ºÇ½é¤Î default ¥é¥Ù¥ë¤Ç¤¹"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
#, fuzzy
msgid "%Henumeration value %qE not handled in switch"
msgstr "ÎóµóÃÍ `%s' ¤Ï switch Æâ¤Ç°·¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-common.c:3727
+#: c-common.c:3784
#, fuzzy
msgid "taking the address of a label is non-standard"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
#, fuzzy
msgid "use __attribute__ ((vector_size)) instead"
msgstr "`%s' °À­¤Îµ¿»÷Ì¿Î᤬̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "̵¸ú¤Ê¼±ÊÌ»Ò `%s'"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "¥â¡¼¥É `%s' ¤ËÂФ¹¤ë¥Ç¡¼¥¿·¿¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:4309
+#: c-common.c:4366
#, fuzzy, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:4322
+#: c-common.c:4390
#, fuzzy, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-#: c-common.c:4355
+#: c-common.c:4421
#, fuzzy
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "section °À­¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤ËÂФ·¤Æ¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-#: c-common.c:4381
+#: c-common.c:4447
#, fuzzy
msgid "%Jsection attributes are not supported for this target"
msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Â礭¤¹¤®¤Þ¤¹"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "`%s' ¤ËÂФ·¤Æ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:4493
+#: c-common.c:4559
#, fuzzy
msgid "%J%qD defined both normally and as an alias"
msgstr "`%s' ¤¬Ä̾ï¤Î¤â¤Î¤È¥¨¥¤¥ê¥¢¥¹¤È¤ÎξÊý¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: c-common.c:4657
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr ""
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
-#: c-common.c:4663
+#: c-common.c:4735
msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-common.c:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
#, fuzzy
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "²¾°ú¿ô¤Î¿ô¤¬¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-common.c:4925
+#: c-common.c:4997
#, fuzzy, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ËÉÔŬÀڤʥª¥Ú¥é¥ó¥É¿ô¤¬¤¢¤ê¤Þ¤¹"
-#: c-common.c:4944
+#: c-common.c:5016
#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:4952
+#: c-common.c:5024
#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "PC ´ØÏ¢¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¶Ø¤¸¤ë"
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: c-common.c:5086
+#: c-common.c:5158
#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr ""
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "½Ò¸ì¤Ï¼±Ê̻ҤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: c-common.c:5202
+#: c-common.c:5274
#, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "ÂåÆþ¤È¤·¤Æ̵¸ú¤Êº¸ÊÕÃͤǤ¹"
-#: c-common.c:5637
+#: c-common.c:5730
msgid "invalid lvalue in increment"
msgstr "¥¤¥ó¥¯¥ê¥á¥ó¥È¤ÎÃæ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
-#: c-common.c:5640
+#: c-common.c:5733
msgid "invalid lvalue in decrement"
msgstr "¥Ç¥¯¥ê¥á¥ó¥È¤ÎÃæ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "ñ¹à¤Î `&' ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "asm ʸ¤ÎÃæ¤Ë̵¸ú¤Êº¸ÊÕÃÍ"
@@ -643,110 +652,115 @@ msgstr "asm ʸ¤ÎÃæ¤Ë̵¸ú¤Êº¸ÊÕÃÍ"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr "void ¤ÎÃͤ¬ËÜÍè¤Î°ÕÌ£Ä̤ê¤Ë̵»ë¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "Èó¥¹¥«¥é¡¼·¿¤Ø¤ÎÊÑ´¹¤¬Í׵ᤵ¤ì¤Þ¤¹"
-#: c-decl.c:524
+#: c-decl.c:530
#, fuzzy
msgid "%Jarray %qD assumed to have one element"
msgstr "ÇÛÎó `%s' ¤Ï°ìÍ×ÁǤò»ý¤Ã¤Æ¤¤¤ë¤â¤Î¤È¸«¤Ê¤µ¤ì¤Þ¤¹"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "ÊÑ¿ô `%s' ¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
#, fuzzy
msgid "a parameter list with an ellipsis can%'t match an empty parameter name list declaration"
msgstr "¾Êάµ­¹æÉÕ¤­¥Ñ¥é¥á¥¿¥ê¥¹¥È¤Ï¡¢¶õ¤Î²¾°ú¿ô̾¥ê¥¹¥ÈÀë¸À¤È°ìÃפǤ­¤Þ¤»¤ó¡£"
-#: c-decl.c:1015
+#: c-decl.c:1029
#, fuzzy
msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
msgstr "¥Ç¥Õ¥©¥ë¥È¤Ç³Ê¾å¤²¤µ¤ì¤ë·¿¤Î°ú¿ô¤¬¡¢¶õ¤Î²¾°ú¿ô̾¥ê¥¹¥ÈÀë¸À¤ÈŬ¹ç¤·¤Þ¤»¤ó¡£"
-#: c-decl.c:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1080
#, fuzzy
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¡¢°ú¿ô %d ¤¬°ìÃפ·¤Þ¤»¤ó"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr ""
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À"
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: c-decl.c:1134
+#: c-decl.c:1149
#, fuzzy
msgid "%J%qD redeclared as different kind of symbol"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "`enum %s' ¤ÎºÆÀë¸À"
@@ -754,274 +768,274 @@ msgstr "`enum %s' ¤ÎºÆÀë¸À"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
#, fuzzy
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "`%s' ¤ÏÈó static ¤Î¸å¤Ç static Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
#, fuzzy
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "`%s' ¤Ï static ¤Î¸å¤ÇÈó static Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1326
+#: c-decl.c:1383
#, fuzzy
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1329
+#: c-decl.c:1386
#, fuzzy
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "`%s' ¤Îextern Àë¸À¤Ï¥°¥í¡¼¥Ð¥ë¤Î¤½¤ì¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:1395
+#: c-decl.c:1452
#, fuzzy
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "%s: '%s' ¤ÎÀë¸À¤ÏÊÑ´¹¤µ¤ì¤Þ¤»¤ó\n"
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr ""
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "`%s' ¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤è¤ê¤â¸å¤í¤Ç inline Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤è¤ê¤â¸å¤Ç inline Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "`%s %s' ¤ÎºÆÄêµÁ"
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "`%s' ¤Î¾éĹ¤ÊºÆÀë¸À¤¬Æ±°ì¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "`%s' ¤ÎÀë¸À¤ÏÁ°Êý¤Î¥í¡¼¥«¥ë¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
+
+#: c-decl.c:1871
#, fuzzy
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1811
+#: c-decl.c:1874
#, fuzzy
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "`%s' ¤ÎÀë¸À¤ÏÁ°Êý¤Î¥í¡¼¥«¥ë¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr ""
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "`%s' ¤Î extern Àë¸À¤¬¥Í¥¹¥È¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "`%s' ¤Î extern Àë¸À¤¬¥Í¥¹¥È¤·¤Æ¤¤¤Þ¤¹"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "`%s' ¤¬¤³¤³¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (´Ø¿ô¤ÎÃæ¤Ç¤Ï¤Ê¤¤)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "`%s' ¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (¤³¤Î´Ø¿ôÆâ¤ÇºÇ½é¤ËÍøÍÑ)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(̤Àë¸À¤Î³ÆÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿¤½¤ì¤¾¤ì¤Î´Ø¿ô"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr " ¤ËÂФ·¤Æ°ìÅÙ¤À¤±Êó¹ð¤µ¤ì¤Þ¤¹¡£)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, fuzzy, c-format
msgid "label %qs referenced outside of any function"
msgstr "¥é¥Ù¥ë %s ¤¬¤¢¤é¤æ¤ë´Ø¿ô¤Î³°Â¦¤Ç»²¾È¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "̵̾¹½Â¤ÂÎ/¶¦ÍÑÂΤ¬¡¢¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:2726
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2737
+#: c-decl.c:2780
#, fuzzy
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr "Àë¸À¤¬²¿¤âÀë¸À¤·¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "¶õ¤ÎÀë¸À¤ÎÃæ¤Ë¡¢Ìµ°ÕÌ£¤Ê¥­¡¼¥ï¡¼¥ÉËô¤Ï·¿Ì¾¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: c-decl.c:2779
+#: c-decl.c:2822
#, fuzzy
msgid "%<auto%> in file-scope empty declaration"
msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2785
+#: c-decl.c:2828
#, fuzzy
msgid "%<register%> in file-scope empty declaration"
msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: c-decl.c:2797
+#: c-decl.c:2840
#, fuzzy
msgid "useless %<__thread%> in empty declaration"
msgstr "¶õ¤ÎÀë¸À¤ÎÃæ¤Ë¡¢Ìµ°ÕÌ£¤Ê¥­¡¼¥ï¡¼¥ÉËô¤Ï·¿Ì¾¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "¶õ¤ÎÀë¸À¤ÎÃæ¤Ë¡¢Ìµ°ÕÌ£¤Ê¥­¡¼¥ï¡¼¥ÉËô¤Ï·¿Ì¾¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: c-decl.c:2878
+#: c-decl.c:2921
msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
msgstr ""
-#: c-decl.c:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:2884
+#: c-decl.c:2927
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr ""
-#: c-decl.c:2903
+#: c-decl.c:2946
#, fuzzy
msgid "static or type qualifiers in abstract declarator"
msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò"
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "`%s' ¤ÏÄ̾ï¤Ï´Ø¿ô¤Ç¤¹"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2974
+#: c-decl.c:3019
#, fuzzy
msgid "function %qD is initialized like a variable"
msgstr "´Ø¿ô `%s' ¤¬ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤Þ¤·¤¿"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
@@ -1030,860 +1044,855 @@ msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "ÊÑ¿ô `%s' ¤Ë¤Ï½é´ü²½»Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "ÇÛÎó `%s' ¤ÎÍ×ÁǤËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
msgid "%Jinline function %qD given attribute noinline"
msgstr ""
-#: c-decl.c:3154
+#: c-decl.c:3194
#, fuzzy
msgid "%Jinitializer fails to determine size of %qD"
msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "`%s' ¤ÎÇÛÎó¥µ¥¤¥º¤¬¥¼¥íËô¤ÏÉé¤Ç¤¹"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó"
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:3266
+#: c-decl.c:3299
#, fuzzy
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "Èó static ¥í¡¼¥«¥ëÊÑ¿ô `%s' ¤Ø¤Î asm »ØÄê»Ò¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "volatile ¥Õ¥£¡¼¥ë¥É¤ò¥ì¥¸¥¹¥¿¤Ë»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤òÃÖ¤±¤Þ¤»¤ó"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C ¤ÏÁ°Êý²¾°ú¿ôÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:3614
+#: c-decl.c:3648
#, fuzzy
msgid "<anonymous>"
msgstr "<̵̾ %s>"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹"
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬ 0 ¤Ç¤¹"
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, fuzzy, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr "#%s ¤Ï GCC ¤Î³ÈÄ¥¤Ç¤¹"
-#: c-decl.c:3664
+#: c-decl.c:3698
#, fuzzy, c-format
msgid "width of %qs exceeds its type"
msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "`%s' ¤Ï¤½¤Î·¿¤ÎÃͤè¤ê¤â¶¹¤¤¤Ç¤¹"
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "`%s' ¤ÎÀë¸À¤Ç·¿¤¬¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "½ÅÊ£¤·¤¿ `const'"
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "½ÅÊ£¤·¤¿¥é¥Ù¥ë `restrict'"
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "½ÅÊ£¤·¤¿ `volatile'"
-#: c-decl.c:3853
+#: c-decl.c:3887
#, fuzzy
msgid "function definition declared %<auto%>"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `register' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3857
+#: c-decl.c:3891
#, fuzzy
msgid "function definition declared %<typedef%>"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3875
+#: c-decl.c:3909
#, fuzzy, c-format
msgid "storage class specified for structure field %qs"
msgstr "¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É `%s' ¤Ë»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹"
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, fuzzy, c-format
msgid "storage class specified for parameter %qs"
msgstr "²¾°ú¿ô `%s' ¤Ç»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "·¿Ì¾¤ËÂФ·¤Æ»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
#, fuzzy
msgid "%qs initialized and declared %<extern%>"
msgstr "`%s' ¤¬½é´ü²½¤µ¤ì¤ë¤È¤³¤í¤Ç¡¢`extern' Àë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
#, fuzzy
msgid "%qs has both %<extern%> and initializer"
msgstr "`%s' ¤Ë `extern' ¤È½é´ü²½»Ò¤ÎξÊý¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:3902
+#: c-decl.c:3936
#, fuzzy
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹"
-#: c-decl.c:3904
+#: c-decl.c:3938
#, fuzzy
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹"
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
#, fuzzy
msgid "nested function %qs declared %<extern%>"
msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
#, fuzzy
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, fuzzy, c-format
msgid "declaration of %qs as array of voids"
msgstr "`%s' ¤ÎÀë¸À¤Ï void ¤ÎÇÛÎó"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó"
-#: c-decl.c:4010
+#: c-decl.c:4050
#, fuzzy
msgid "invalid use of structure with flexible array member"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹"
-#: c-decl.c:4056
+#: c-decl.c:4096
#, fuzzy
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ISO C89 ¤Ï¥µ¥¤¥º¤¬É¾²Á¤Ç¤­¤Ê¤¤ÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Â礭¤¹¤®¤Þ¤¹"
-#: c-decl.c:4106
+#: c-decl.c:4150
#, fuzzy
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "ÇÛÎó¤Î·¿¤¬ÉÔ´°Á´Í×ÁÇ·¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "`%s' ¤Ï´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, fuzzy, c-format
msgid "%qs declared as function returning an array"
msgstr "`%s' ¤ÏÇÛÎó¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr "´Ø¿ôÌá¤êÃͤη¿½¤¾þ»Ò¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO C ¤Ï´Ø¿ô¤Î·¿½¤¾þ»Ò¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4282
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C ¤Ï const ¤ä volatile ¤Î´Ø¿ô·¿¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "ÊÑ¿ô¤Þ¤¿¤ÏÎΰè `%s' ¤Ï void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4361
+#: c-decl.c:4403
#, fuzzy
msgid "attributes in parameter array declarator ignored"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó"
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "´Ø¿ô `%s' ¤ËÂФ·¤ÆÉÔŬÀÚ¤ÊÊݸ¥¯¥é¥¹"
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "`noreturn' ´Ø¿ô¤¬Èó void ÃͤòÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "`main' ¤ò inline ´Ø¿ô¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4591
#, fuzzy
msgid "%Jvariable %qD declared %<inline%>"
msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
-#: c-decl.c:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
#, fuzzy
msgid "thread-local storage not supported for this target"
msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
#, fuzzy
msgid "function declaration isn%'t a prototype"
msgstr "´Ø¿ôÀë¸À¤Ï¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "´Ø¿ôÀë¸ÀÃæ¤Ë¡Ê·¿¤Î̵¤¤¡Ë²¾°ú¿ô̾¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
msgstr ""
-#: c-decl.c:4793
+#: c-decl.c:4829
#, fuzzy
msgid "%Jparameter %qD has just a forward declaration"
msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, fuzzy, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "̵̾¹½Â¤ÂΤ¬²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4848
+#: c-decl.c:4884
#, fuzzy
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr "¤½¤Î¥¹¥³¡¼¥×¤ÏÄêµÁ¤«Àë¸À¤À¤±¤Ç¤¹¡¢¶²¤é¤¯Ë¾¤ó¤À¤³¤È¤È°Û¤Ê¤ë¤Ç¤·¤ç¤¦¡£"
-#: c-decl.c:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "`%s %s' ¤ÎºÆÄêµÁ"
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "`%s %s' ¤ÎºÆÄêµÁ"
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "`%s' ¤Î¥Í¥¹¥È¤·¤¿ºÆÄêµÁ"
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "`%s' ¤Î¥Í¥¹¥È¤·¤¿ºÆÄêµÁ"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "Àë¸À¤¬²¿¤âÀë¸À¤·¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C ¤Ç¤Ï̵̾¹½Â¤ÂΤ䶦ÍÑÂΤò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "̾Á°ÉÕ¤­¥á¥ó¥Ð"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "̾Á°ÉÕ¤­¥á¥ó¥Ð"
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó"
-#: c-decl.c:5231
+#: c-decl.c:5267
#, fuzzy
msgid "%Jflexible array member in union"
msgstr "¶¦ÍÑÂΤ˲ÄÊÑÇÛÎó¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:5236
+#: c-decl.c:5272
#, fuzzy
msgid "%Jflexible array member not at end of struct"
msgstr "¹½Â¤ÂΤκǸå¤Ç¤Ï¤Ê¤¤½ê¤Ë²ÄÊÑÇÛÎó¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:5241
+#: c-decl.c:5277
#, fuzzy
msgid "%Jflexible array member in otherwise empty struct"
msgstr "¹½Â¤ÂΤ˲ÄÊÑÇÛÎó¥á¥ó¥Ð°Ê³°¤Î¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5248
+#: c-decl.c:5284
#, fuzzy
msgid "%Jinvalid use of structure with flexible array member"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "¶¦ÍÑÂΤòÆ©²áŪ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "`%s' ¤Î¥Í¥¹¥È¤·¤¿ºÆÄêµÁ"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "`enum %s' ¤ÎºÆÀë¸À"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr "Îóµó»Ò¤ÎÃͤ¬À°¿ô¤ÎÈϰϤκÇÂçÃͤòĶ¤¨¤Þ¤·¤¿"
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "ÎóµóÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼"
-#: c-decl.c:5626
+#: c-decl.c:5671
#, fuzzy
msgid "ISO C restricts enumerator values to range of %<int%>"
msgstr "ISO C ¤ÏÎóµó»Ò¤ÎÃͤò `int' ¤ÎÈϰϤ˸ÂÄꤷ¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "Ìá¤êÃͤη¿¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "Ìá¤êÃͤη¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹"
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "`%s' ¤ÎÁ°Êý¥×¥í¥È¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤Ë¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤ÇÀë¸À¤Ê¤·¤Ç»ÈÍѤµ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "`%s' ¤ÎÌá¤êÃͤη¿¤¬ `int' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹"
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "`%s' ¤ÎÂèÆó°ú¿ô¤Ï `char **' ¤È¤¹¤Ù¤­¤Ç¤¹"
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "`%s' ¤ÎÂè»°°ú¿ô¤Ï¤ª¤½¤é¤¯ `char **' ¤È¤¹¤Ù¤­¤Ç¤·¤ç¤¦"
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "`%s' ¤ÏÄ̾Èó static ¤Ê´Ø¿ô¤Ç¤¹"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
#, fuzzy
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr "¸Å¤¤ C ¤Ç¤Ïʸ»úÎó·ë¹ç¤òµñÈݤ·¤Þ¤¹"
-#: c-decl.c:5908
+#: c-decl.c:5953
#, fuzzy
msgid "%Jparameter name omitted"
msgstr "²¾°ú¿ô¤¬¾Êά¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5948
+#: c-decl.c:5993
#, fuzzy
msgid "%Jold-style function definition"
msgstr "%s: ´Ø¿ô¤ÎÄêµÁ¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: c-decl.c:5956
+#: c-decl.c:6001
#, fuzzy
msgid "%Jparameter name missing from parameter list"
msgstr "²¾°ú¿ô¥ê¥¹¥È¤«¤é¤Î²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5967
+#: c-decl.c:6012
#, fuzzy
msgid "%J%qD declared as a non-parameter"
msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "`%s' ¤Î·¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹"
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:6022
+#: c-decl.c:6067
#, fuzzy
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "²¾°ú¿ô `%s' ¤ÎÀë¸À¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤ó¤Ê²¾°ú¿ô¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "²¾°ú¿ô¤Î¿ô¤¬¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
#, fuzzy
msgid "%Hprototype declaration"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: c-decl.c:6101
+#: c-decl.c:6146
#, fuzzy
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "³Ê¾å¤²¤µ¤ì¤¿²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:6109
+#: c-decl.c:6154
#, fuzzy
msgid "argument %qD doesn%'t match prototype"
msgstr "²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ë°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
#, fuzzy
msgid "no return statement in function returning non-void"
msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
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:6403
+#: c-decl.c:6461
#, fuzzy
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "`for' ¥ë¡¼¥×¤Î½é´ü²½Àë¸À¤¬ C99 ¥â¡¼¥É°Ê³°¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-decl.c:6432
+#: c-decl.c:6490
#, fuzzy
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:6435
+#: c-decl.c:6493
#, fuzzy
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "`extern' ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:6440
+#: c-decl.c:6498
#, fuzzy
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:6444
+#: c-decl.c:6502
#, fuzzy
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:6448
+#: c-decl.c:6506
#, fuzzy
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:6452
+#: c-decl.c:6510
#, fuzzy
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "ÈóÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸À¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "`%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
#, fuzzy
msgid "two or more data types in declaration specifiers"
msgstr "`%s' ¤ÎÀë¸À¤ËÆó¤Ä°Ê¾å¤Î¥Ç¡¼¥¿·¿¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "`long long long' ¤Ï GCC ¤Ë¤È¤Ã¤ÆŤ¹¤®¤Þ¤¹"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO C89 ¤Ï `long long' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
#, fuzzy
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
#, fuzzy
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
#, fuzzy
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
#, fuzzy
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
#, fuzzy
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6875
+#: c-decl.c:6933
#, fuzzy
msgid "ISO C90 does not support complex types"
msgstr "ISO C89 ¤Ï complex ·¿¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, fuzzy, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr "`%s' ¤ò typedef ¤Þ¤¿¤ÏÁȤ߹þ¤ß·¿¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "`%s' ¤ÏÀë¸À¤Î»Ï¤Þ¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
msgstr ""
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
msgstr ""
-#: c-decl.c:7106
+#: c-decl.c:7164
#, fuzzy
msgid "multiple storage classes in declaration specifiers"
msgstr "`%s' ¤ÎÀë¸À¤Ë¤ª¤¤¤ÆÊ£¿ô¤ÎÊݸ¥¯¥é¥¹"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
msgstr "ISO C ¤Ï `double complex' ¤ò°ÕÌ£¤¹¤ë̵½¤¾þ¤Î `complex' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C ¤ÏÀ°¿ô·¿¤Î complex ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "`%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
@@ -2445,7 +2454,7 @@ msgstr "strftime ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°ú¿ô¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤­¤Þ¤»¤ó"
msgid "statement with no effect"
msgstr ""
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "break ʸ¤¬ loop ¤Þ¤¿¤Ï switch ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
@@ -2469,17 +2478,17 @@ msgstr ""
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "¸ºß¤·¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê \"%s\" ¤ò̵»ë¤·¤Þ¤¹\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\" ¤Îõº÷¤Ï¤³¤³¤«¤é»Ï¤Þ¤ê¤Þ¤¹:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "#include <...> ¤Îõº÷¤Ï¤³¤³¤«¤é»Ï¤Þ¤ê¤Þ¤¹:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "õº÷¥ê¥¹¥È¤Î½ª¤ï¤ê\n"
@@ -2542,37 +2551,29 @@ msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬ '%s' ¤ÎÈϰϤòĶ¤¨¤Þ¤·¤¿"
msgid "traditional C rejects string constant concatenation"
msgstr "¸Å¤¤ C ¤Ç¤Ïʸ»úÎó·ë¹ç¤òµñÈݤ·¤Þ¤¹"
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
#, fuzzy
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤ËÇÛÎ󷿤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
#, fuzzy
msgid "used struct type value where scalar is required"
msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤Ë¹½Â¤Âη¿¤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
#, fuzzy
msgid "used union type value where scalar is required"
msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤Ë¶¦ÍÑÂη¿¤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
@@ -2620,85 +2621,85 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "-f%s ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: c-opts.c:655
+#: c-opts.c:653
#, fuzzy
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr "-fhandle-exceptions ¤Ï -fexception ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿(¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹)"
-#: c-opts.c:841
+#: c-opts.c:839
#, fuzzy
msgid "output filename specified twice"
msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë̾¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-opts.c:975
+#: c-opts.c:973
#, fuzzy
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-opts.c:995
+#: c-opts.c:998
#, fuzzy, c-format
msgid "opening output file %s: %m"
msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, fuzzy, c-format
msgid "too many filenames given. Type %s --help for usage"
msgstr "¥Õ¥¡¥¤¥ë̾¤¬Â¿¤¹¤®¤Þ¤¹¡£%s --help ¤È¥¿¥¤¥×¤·¤Æ»È¤¤Êý¤ò¸«¤Þ¤·¤ç¤¦"
-#: c-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr ""
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr ""
-#: c-opts.c:1137
+#: c-opts.c:1140
#, fuzzy, c-format
msgid "when writing output to %s: %m"
msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹"
-#: c-opts.c:1216
+#: c-opts.c:1220
#, fuzzy
msgid "to generate dependencies you must specify either -M or -MM"
msgstr "-M ¤« -MM ¤Î¤¤¤º¤ì¤«¤òÄɲÃŪ¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: c-opts.c:1281
+#: c-opts.c:1287
#, fuzzy
msgid "<built-in>"
msgstr "<ÁȤ߹þ¤ß>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<¥³¥Þ¥ó¥É¥é¥¤¥ó>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2710,16 +2711,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "ʸˡ¥¨¥é¡¼"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "ʸˡ¥¨¥é¡¼: ÄÉ¿ï¤Ç¤­¤Þ¤»¤ó"
@@ -2772,112 +2773,117 @@ msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
msgid "%<typeof%> applied to a bit-field"
msgstr "sizeof ¤¬¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C ¤Ç¤Ï¶õ¤Î½é´ü²½Íѥ֥졼¥¹¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
#, fuzzy
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C89 ¤Ï½é´ü²½ÍѤÎÉû¥ª¥Ö¥¸¥§¥¯¥È»ØÄê¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
#, fuzzy
msgid "obsolete use of designated initializer without %<=%>"
msgstr "`=' ¤Î¤Ê¤¤¥á¥ó¥Ð»Ø̾½é´ü²½»Ò¤ÏÇѤì¤Þ¤·¤¿"
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
#, fuzzy
msgid "obsolete use of designated initializer with %<:%>"
msgstr "`:' ¤ò¤Ä¤±¤ë¥á¥ó¥Ð»Ø̾½é´ü²½»Ò¤ÏÇѤì¤Þ¤·¤¿"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C ¤Ï½é´ü²½ÍѤÎÍ×ÁÇÈÏ°Ï»ØÄê¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C ¤Ï ¥Í¥¹¥È¤µ¤ì¤¿´Ø¿ô¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
#, fuzzy
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO C ¤Ï `enum' ·¿¤ÎÁ°Êý»²¾È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "Îóµó»Ò¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥«¥ó¥Þ¤¬¤¢¤ê¤Þ¤¹"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "struct ¤ä union ¤ÎºÇ¸å¤Ë¥»¥ß¥³¥í¥ó¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "struct ¤ä union ¤ÎÃæ¤Ç;ʬ¤Ê¥»¥ß¥³¥í¥ó¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C ¤Ï¥á¥ó¥Ð¤Î¤Ê¤¤¥á¥ó¥ÐÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
#, fuzzy
msgid "label at end of compound statement"
msgstr "Ê£¹çʸ¤Î½ª¤ê¤Ç¥é¥Ù¥ë¤ò»È¤¦¤³¤È¤Ï¿ä¾©¤µ¤ì¤Þ¤»¤ó"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
#, fuzzy
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C89 ¤ÏÀë¸À¤È¥³¡¼¥É¤È¤Îº®¹ç¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C ¤Ï¥é¥Ù¥ëÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr "¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤Ï´Ø¿ô¤ÎÆ⦤ǤΤߵö¤µ¤ì¤Þ¤¹"
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, fuzzy, c-format
msgid "%E qualifier ignored on asm"
msgstr "asm ¤Ç¤Ï %s ½¤¾þ»Ò¤¬Ìµ»ë¤µ¤ì¤Þ¤¹"
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+#, fuzzy
+msgid "wide string literal in %<asm%>"
+msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤¬Ìµ¸ú¤Ç¤¹¡¢ºÇ¸å¤Î '\\' ¤ò̵»ë¤·¤Þ¤¹"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO C ¤Ï `...' ¤ÎÁ°¤Ë̾Á°¤ò¤Ä¤±¤é¤ì¤¿°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "¹½Ê¸²òÀÏ¥¨¥é¡¼ -- ¤µ¤é¤Ë²¾ÁÛ¥á¥â¥ê¤òĶ²á¤·¤Þ¤·¤¿"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "¹½Ê¸²òÀÏ´ï¤Î¥¹¥¿¥Ã¥¯¤¬°î¤ì¤Þ¤·¤¿"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "'%s' ¥È¡¼¥¯¥ó¤Î½ê¤Çʸˡ¥¨¥é¡¼"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "¹½Ê¸²òÀÏ¥¨¥é¡¼"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
#, fuzzy
msgid "parse error; also virtual memory exhausted"
msgstr "¹½Ê¸²òÀÏ¥¨¥é¡¼ -- ¤µ¤é¤Ë²¾ÁÛ¥á¥â¥ê¤òĶ²á¤·¤Þ¤·¤¿"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "ʸˡ¥¨¥é¡¼: ÄÉ¿ï¤Ç¤­¤Þ¤»¤ó"
@@ -3003,191 +3009,191 @@ msgstr ""
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr ""
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
#, fuzzy
msgid "malformed #pragma weak, ignored"
msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "#pragma weak ¤ÎËöÈø¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
#, fuzzy
msgid "malformed #pragma redefine_extname, ignored"
msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:384
+#: c-pragma.c:416
#, fuzzy
msgid "junk at end of #pragma redefine_extname"
msgstr "#pragma weak ¤ÎËöÈø¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "__builtin_eh_return ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr ""
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:448
+#: c-pragma.c:480
#, fuzzy
msgid "malformed #pragma extern_prefix, ignored"
msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:451
+#: c-pragma.c:483
#, fuzzy
msgid "junk at end of #pragma extern_prefix"
msgstr "#pragma map ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr ""
-#: c-pragma.c:596
+#: c-pragma.c:628
#, fuzzy
msgid "malformed #pragma GCC visibility push"
msgstr "¤ª¤«¤·¤Ê #pragma ghs section"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "#pragma %s ¤ÎËöÈø¤Ë¥´¥ß"
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "void ¼°¤ÎÉÔŬÀڤʻÈÍÑ"
-#: c-typeck.c:168
+#: c-typeck.c:169
#, fuzzy
msgid "invalid use of flexible array member"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "¶­³¦¤¬»ØÄꤵ¤ì¤Ê¤¤ÇÛÎó¤ÎÉÔŬÀÚ¤ÊÍøÍÑ"
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
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:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr "´Ø¿ô·¿¤¬ ISO C ¤È´°Á´¸ß´¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "·¿¤ÏÁ´¤¯¸ß´¹¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:987
+#: c-typeck.c:1045
#, fuzzy
msgid "function return types not compatible due to %<volatile%>"
msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "ÉÔ´°Á´·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÂФ¹¤ë±é»»"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, fuzzy, c-format
msgid "request for member %qs in something not a structure or union"
msgstr "¹½Â¤ÂΤǤⶦÍÑÂΤǤâ¤Ê¤¤²¿¤«¤Ç¡¢¥á¥ó¥Ð `%s' ¤òÍ׵ᤵ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "ÉÔ´°Á´·¿¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È"
-#: c-typeck.c:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "`void *' ¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È¤Ç¤¹"
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "ź»ú¤ò¤Ä¤±¤é¤ì¤¿Ãͤ¬ÇÛÎó¤Ç¤â¥Ý¥¤¥ó¥¿¤Ç¤â¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "ÇÛÎó¤Îź»ú¤¬À°¿ô·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "ź»ú¤ò¤Ä¤±¤é¤ì¤¿Ãͤ¬ÇÛÎó¤Ç¤â¥Ý¥¤¥ó¥¿¤Ç¤â¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
#, fuzzy
msgid "array subscript has type %<char%>"
msgstr "ÇÛÎó¤Îź»ú¤¬ `char' ·¿¤Ç¤¹"
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO C ¤Ï `register' ÇÛÎó¤Ø¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
#, fuzzy
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C89 Èóº¸ÊÕÃÍÇÛÎó¤Ø¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
@@ -3195,828 +3201,824 @@ msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
#, fuzzy
msgid "function called through a non-compatible type"
msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "½é´ü²½»Ò¤ÎÍ×ÁǤ¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "Àµ¼°¤Ê²¾°ú¿ô %d ¤Î·¿¤¬ÉÔ´°Á´¤Ç¤¹"
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÉâÆ°¾®¿ô·¿¤Ç¤Ï¤Ê¤¯À°¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÊ£ÁÇ¿ô¤Ç¤Ï¤Ê¤¯À°¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÉâÆ°¾®¿ô·¿¤Ç¤Ï¤Ê¤¯Ê£ÁÇ¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÀ°¿ô·¿¤Ç¤Ï¤Ê¤¯ÉâÆ°¾®¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÀ°¿ô·¿¤Ç¤Ï¤Ê¤¯Ê£ÁÇ¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÊ£ÁÇ¿ô¤Ç¤Ï¤Ê¤¯ÉâÆ°¾®¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2121
+#: c-typeck.c:2204
#, fuzzy
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤Ï `double' ¤Ç¤Ê¤¯ `float' ¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, fuzzy, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr "%s ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ç¤Î·¿¤ÎÉý¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, fuzzy, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ê %s ¤ÏÉä¹ç¤Ê¤·¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ê %s ¤ÏÉä¹çÉÕ¤­¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "¥·¥Õ¥ÈÃæ¤Î + ¤ä - ¤Î¼þ¤ê¤Ç¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "|| ¤È¶¦¤Ë»È¤ï¤ì¤ë && ¤Î¼þ¤ê¤Ç¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "·×»»¤¬ | ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "Èæ³Ó¤¬ | ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "·×»»¤¬ ^ ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "·×»»¤¬ ^ ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "& ±é»»»Ò¤Î¼þ¤ê¤Î + ¤ä - ¤Î¼þ¤ê¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "Èæ³Ó¤¬ & ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "X<=Y<=Z ¤ÎÍͤÊÈæ³Ó¤Ï¿ô³ØŪ¤Ê°ÕÌ£¤Ç¤Î·ë²Ì¤ò¤â¤¿¤é¤·¤Þ¤»¤ó"
-#: c-typeck.c:2314
+#: c-typeck.c:2397
#, fuzzy
msgid "pointer of type %<void *%> used in subtraction"
msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤Îº¹¤òµá¤á¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤Îº¹¤òµá¤á¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "ñ¹à¥×¥é¥¹¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "ñ¹à¥Þ¥¤¥Ê¥¹¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO C ¤ÏÊ£ÁǶ¦ÌòÍѤΠ`~' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "abs ¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "Ê£ÁǶ¦Ìò(~)¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "ñ¹à´¶Ã²Éä(!)¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, fuzzy
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr "ISO C ¤Ï complex ·¿¤Ç¤Î `++' ¤È `--' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
#, fuzzy
msgid "wrong type argument to increment"
msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
#, fuzzy
msgid "wrong type argument to decrement"
msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
#, fuzzy
msgid "increment of pointer to unknown structure"
msgstr "ÉÔÌÀ¤Ê¹½Â¤ÂΤËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤Î%s"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
#, fuzzy
msgid "decrement of pointer to unknown structure"
msgstr "ÉÔÌÀ¤Ê¹½Â¤ÂΤËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤Î%s"
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, fuzzy, c-format
msgid "assignment of read-only member %qs"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑ¥á¥ó¥Ð `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, fuzzy, c-format
msgid "increment of read-only member %qs"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑ¥á¥ó¥Ð `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, fuzzy, c-format
msgid "decrement of read-only member %qs"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑ¥á¥ó¥Ð `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, fuzzy, c-format
msgid "assignment of read-only variable %qs"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÊÑ¿ô `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, fuzzy, c-format
msgid "increment of read-only variable %qs"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÊÑ¿ô `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, fuzzy, c-format
msgid "decrement of read-only variable %qs"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÊÑ¿ô `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2734
+#: c-typeck.c:2817
#, fuzzy
msgid "assignment of read-only location"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÎΰè¤Ç¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
#, fuzzy
msgid "increment of read-only location"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÎΰè¤Ç¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2736
+#: c-typeck.c:2819
#, fuzzy
msgid "decrement of read-only location"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÎΰè¤Ç¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-#: c-typeck.c:2783
+#: c-typeck.c:2866
#, fuzzy
msgid "global register variable %qD used in nested function"
msgstr "Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
#, fuzzy
msgid "register variable %qD used in nested function"
msgstr "¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
#, fuzzy
msgid "address of global register variable %qD requested"
msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹"
-#: c-typeck.c:2793
+#: c-typeck.c:2876
#, fuzzy
msgid "address of register variable %qD requested"
msgstr "register ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
msgid "ISO C forbids conditional expr with only one void side"
msgstr "ISO C ¤ÏÊÒ¦¤À¤±¤¬ void ¤È¤Ê¤ë¾ò·ï¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
#, fuzzy
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ò¾ò·ï¼°¤È¤¹¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "¾ò·ï¼°¤Ç¤Î¥Ý¥¤¥ó¥¿¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "¾ò·ï¼°¤Ç¥Ý¥¤¥ó¥¿·¿¤ÈÀ°¿ô·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr "¥«¥ó¥Þ±é»»»Ò¤Îº¸Â¦¤Î¼°¤Ë¸úÎϤ¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "¥­¥ã¥¹¥È¤¬ÇÛÎ󷿤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO C ¤ÏÈó¥¹¥«¥é¡¼¤«¤éƱ¤¸·¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
msgid "cast to union type from type not present in union"
msgstr "¶¦ÍÑÂΤÎÃæ¤Ë¤Ê¤¤·¿¤«¤é¶¦ÍÑÂη¿¤Ø¥­¥ã¥¹¥È¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:3120
+#: c-typeck.c:3203
#, 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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤«¤é°Û¤Ê¤ë¥µ¥¤¥º¤ÎÀ°¿ô¤È¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "°Û¤Ê¤ë¥µ¥¤¥º¤ÎÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3181
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3193
+#: c-typeck.c:3276
#, fuzzy
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
#, fuzzy
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
#, fuzzy
msgid "cannot pass rvalue to reference parameter"
msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, fuzzy, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr "%s¤Ë¤è¤ê¡¢½¤¾þ¤µ¤ì¤Ê¤¤´Ø¿ô¥Ý¥¤¥ó¥¿¤«¤é¡¢½¤¾þ¤µ¤ì¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤¹"
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
#, fuzzy
msgid "assignment makes qualified function pointer from unqualified"
msgstr "%s¤Ë¤è¤ê¡¢½¤¾þ¤µ¤ì¤Ê¤¤´Ø¿ô¥Ý¥¤¥ó¥¿¤«¤é¡¢½¤¾þ¤µ¤ì¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤¹"
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
#, fuzzy
msgid "initialization makes qualified function pointer from unqualified"
msgstr "%s¤Ë¤è¤ê¡¢½¤¾þ¤µ¤ì¤Ê¤¤´Ø¿ô¥Ý¥¤¥ó¥¿¤«¤é¡¢½¤¾þ¤µ¤ì¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤¹"
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
#, fuzzy
msgid "return makes qualified function pointer from unqualified"
msgstr "%s¤Ë¤è¤ê¡¢½¤¾þ¤µ¤ì¤Ê¤¤´Ø¿ô¥Ý¥¤¥ó¥¿¤«¤é¡¢½¤¾þ¤µ¤ì¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤¹"
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, fuzzy, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
#, fuzzy
msgid "assignment discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
#, fuzzy
msgid "initialization discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
#, fuzzy
msgid "return discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C ¤Ç¤Ï°ú¿ô¤«¤é¶¦ÍÑÂΤؤÎÊÑ´¹¤ò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:3628
+#: c-typeck.c:3714
#, fuzzy
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ISO C ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È `void *' ¤È¤Î%s¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3631
+#: c-typeck.c:3717
#, fuzzy
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ISO C ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È `void *' ¤È¤Î%s¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3633
+#: c-typeck.c:3719
#, fuzzy
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ISO C ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È `void *' ¤È¤Î%s¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3635
+#: c-typeck.c:3721
#, fuzzy
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ISO C ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È `void *' ¤È¤Î%s¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, fuzzy, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr "%s ¤Ç¥Ý¥¤¥ó¥¿¤Î¼¨¤¹ÂоݤÎÉä¹æ¤Î̵ͭ¤¬°Û¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:3660
+#: c-typeck.c:3746
#, fuzzy
msgid "pointer targets in assignment differ in signedness"
msgstr "%s ¤Ç¥Ý¥¤¥ó¥¿¤Î¼¨¤¹ÂоݤÎÉä¹æ¤Î̵ͭ¤¬°Û¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:3662
+#: c-typeck.c:3748
#, fuzzy
msgid "pointer targets in initialization differ in signedness"
msgstr "%s ¤Ç¥Ý¥¤¥ó¥¿¤Î¼¨¤¹ÂоݤÎÉä¹æ¤Î̵ͭ¤¬°Û¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:3664
+#: c-typeck.c:3750
#, fuzzy
msgid "pointer targets in return differ in signedness"
msgstr "%s ¤Ç¥Ý¥¤¥ó¥¿¤Î¼¨¤¹ÂоݤÎÉä¹æ¤Î̵ͭ¤¬°Û¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, fuzzy, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "¸ß´¹À­¤Î¤Ê¤¤¥Ý¥¤¥ó¥¿·¿¤«¤é¤Î%s¤Ç¤¹"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "¸ß´¹À­¤Î¤Ê¤¤¥Ý¥¤¥ó¥¿·¿¤«¤é¤Î%s¤Ç¤¹"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
#, fuzzy
msgid "initialization from incompatible pointer type"
msgstr "¸ß´¹À­¤Î¤Ê¤¤¥Ý¥¤¥ó¥¿·¿¤«¤é¤Î%s¤Ç¤¹"
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "¸ß´¹À­¤Î¤Ê¤¤¥Ý¥¤¥ó¥¿·¿¤«¤é¤Î%s¤Ç¤¹"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "Èóº¸ÊÕÃÍÇÛÎó¤Î̵¸ú¤ÊÍøÍÑ"
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤ÇÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤ÇÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤ÇÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤ÇÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤Ç¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤Ç¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤Ç¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤Ç¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤òºî¤ê¤Þ¤·¤¿"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "¸Å¤¤ C ¤Ç¤Ï¼«Æ°Åª¤Ê½¸¹çÂΤνé´ü²½¤òµñÀ䤷¤Þ¤¹"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "¥ï¥¤¥Éʸ»úÎ󤫤é char ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "¥ï¥¤¥Éʸ»úÎ󤫤é char ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4116
+#: c-typeck.c:4202
#, fuzzy
msgid "wchar_t-array initialized from non-wide string"
msgstr "¥ï¥¤¥Éʸ»úÎ󤫤é char ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "char ¤ÎÇÛÎó¤Ë¤È¤Ã¤Æ½é´ü²½»Òʸ»úÎó¤¬Ä¹¤¹¤®¤Þ¤¹"
-#: c-typeck.c:4140
+#: c-typeck.c:4226
#, fuzzy
msgid "array of inappropriate type initialized from string constant"
msgstr "¥ï¥¤¥Éʸ»úÎ󤫤é char ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr "ÈóÄê¿ôÇÛÎó¼°¤«¤éÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "½é´ü²½»Ò¤ÎÍ×ÁÇ¤Ï¥í¡¼¥É»þ¤Ë·×»»¤µ¤ìÆÀ¤Þ¤»¤ó"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "̵¸ú¤Ê½é´ü²½»Ò"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
#, fuzzy
msgid "opaque vector types cannot be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "½é´ü²½»Ò¤Î½ª¤ï¤ê¤Ë;ʬ¤Ê¥Ö¥ì¡¼¥¹¤Î¥°¥ë¡¼¥×"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "½é´ü²½»Ò¤Î¤Þ¤ï¤ê¤Î¥Ö¥ì¡¼¥¹¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤¬¥Ö¥ì¡¼¥¹¤Ç°Ï¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr "¥Í¥¹¥È¤·¤¿Ê¸Ì®¤Ç²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "¶õ¤Î¥¹¥«¥é¡¼½é´ü²½»Ò"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤Ë;ʬ¤ÊÍ×ÁÇ"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "½é´ü²½»Ø̾»Ò¤Ç¤Ï¥Í¥¹¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "ÈóÇÛÎó¤Î½é´ü²½»Ò¤ËÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "¥ì¥³¡¼¥É¤ä¶¦ÍÑÂΤ˥ե£¡¼¥ë¥É̾¤¬¤Ê¤¤½é´ü²½»Ò¤Ç¤¹"
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "½é´ü²½»ÒÆâ¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr "½é´ü²½»ÒÆâ¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "½é´ü²½»Ò¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿"
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, fuzzy, c-format
msgid "unknown field %qs specified in initializer"
msgstr "ÉÔÌÀ¤Ê¥Õ¥£¡¼¥ë¥É `%s' ¤¬½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "½é´ü²½¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤¬ÉûºîÍѤǾå½ñ¤­¤µ¤ì¤Þ¤¹"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "char ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "¹½Â¤Âνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
#, fuzzy
msgid "non-static initialization of a flexible array member"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "¶¦ÍÑÂνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "¸Å¤¤ C ¤Ï¶¦ÍÑÂΤνé´ü¤òµñÀ䤷¤Þ¤¹"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
#, fuzzy
msgid "excess elements in vector initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO C `goto *¼°;' ¤Î½ñ¤­Êý¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
#, fuzzy
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "`noreturn' ¤ÎÀë¸À¤µ¤ì¤¿´Ø¿ô¤Ë `return' ʸ¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
msgid "%<return%> with no value, in function returning non-void"
msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "Ìá¤ê·¿¤¬ void ¤Î´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "´Ø¿ô¤¬¥í¡¼¥«¥ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "switch ¤ÎÆâÍƤ¬À°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
#, fuzzy
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr "ISO C ¤Ç¤Ï `long' ¤Î switch ¼°¤Ï `int' ¤ËÊÑ´¹¤µ¤ì¤Þ¤»¤ó"
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
#, fuzzy
msgid "%<default%> label not within a switch statement"
msgstr "`default' ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
-#: c-typeck.c:6631
+#: c-typeck.c:6761
#, fuzzy
msgid "%Hempty body in an if-statement"
msgstr "else ʸ¤ÎÃæ¿È¤¬¶õ¤Ç¤¹"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "else ʸ¤ÎÃæ¿È¤¬¶õ¤Ç¤¹"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "continue ʸ¤¬ loop ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr ""
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "¼°¤ÎÃæ¤Îʸ¤ËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
#, fuzzy
msgid "division by zero"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "±¦¥·¥Õ¥È²ó¿ô¤¬Éé¤Î¿ô¤Ç¤¹"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "±¦¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "º¸¥·¥Õ¥È²ó¿ô¤¬Éé¤Î¿ô¤Ç¤¹"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "º¸¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "ÉâÆ°¾®¿ôÅÀ¤ÎÈæ³Ó¤Ç == ¤ä != ¤ò»È¤¦¤Î¤Ï°ÂÁ´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, fuzzy
msgid "ISO C forbids comparison of %<void *%> with function pointer"
msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "·¿¤¬Á´¤¯°Û¤Ê¤ë¥Ý¥¤¥ó¥¿¤ÎÈæ³Ó¤Ç¥­¥ã¥¹¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "´°Á´¤Ê¥Ý¥¤¥ó¥¿¤ÈÉÔ´°Á´¤Ê¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C ´Ø¿ô¥Ý¥¤¥ó¥¿¤Î½ç½øÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "À°¿ô 0 ¤È¥Ý¥¤¥ó¥¿¤È¤Î½ç½øÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "~¤Çȿž¤µ¤ì¤¿³Ê¾å¤²Éä¹ç̵¤··¿¤ÈÄê¿ô¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "~¤Çȿž¤µ¤ì¤¿Éä¹ç̵¤··¿¤ÈÉä¹ç̵¤··¿¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "´Ø¿ô¸Æ¤Ó½Ð¤·¤¬½¸¹çÂΤÎÃͤò»ý¤Ã¤Æ¤¤¤Þ¤¹"
@@ -4060,7 +4062,7 @@ msgstr ""
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d pred edge ¥ê¥¹¥È¤¬µ¡Ç½¤·¤Æ¤¤¤Þ¤»¤ó"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
@@ -4169,314 +4171,314 @@ msgstr "%s ¤Ï %s ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
msgid "%s does not support flow_call_edges_add"
msgstr "%s ¤Ï %s ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, c-format
msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: cfgloop.c:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, fuzzy, c-format
msgid "Basic block %d should be marked irreducible."
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d pred edge ¥ê¥¹¥È¤¬µ¡Ç½¤·¤Æ¤¤¤Þ¤»¤ó"
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, fuzzy, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¤¬Ï¢Â³Åª¤ËÈÖ¹æÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, fuzzy, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr "½ªÎ»Ì¿Îá %d(¥Ö¥í¥Ã¥¯ %d) ¤¬°ìÏ¢¤ÎÌ¿ÎáÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, fuzzy, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr "Ì¿Îá %d ¤¬Ê£¿ô¤Î´ðËÜ¥Ö¥í¥Ã¥¯(%d ¤È %d)¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, fuzzy, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr "³«»ÏÌ¿Îá %d(¥Ö¥í¥Ã¥¯ %d) ¤¬°ìÏ¢¤ÎÌ¿ÎáÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, fuzzy, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr "¾ò·ï¤Î¼Â¹Ô¤è¤ê¤Ïʬ´ô¤ÎÀ¸À®¤òÍ¥À褹¤ë"
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK ¤¬¥Ö¥í¥Ã¥¯ %d ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, fuzzy, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr "NOTE_INSN_BASIC_BLOCK %d ¤¬´ðËÜ¥Ö¥í¥Ã¥¯ %d ¤ÎÃæ¤Û¤É¤Ë¤¢¤ê¤Þ¤¹"
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, fuzzy, c-format
msgid "in basic block %d:"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
#, fuzzy
msgid "basic blocks not laid down consecutively"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¤¬Ï¢Â³Åª¤ËÈÖ¹æÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
#, fuzzy
msgid "insn outside basic block"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
#, fuzzy
msgid "return not followed by barrier"
msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr "Ì¿ÎáÏ¢º¿Ãæ¤Î bb ¤Î¿ô (%d) ¤¬ n_basic_blocks (%d) ¤È°ã¤¤¤Þ¤¹"
-#: cgraph.c:231
+#: cgraph.c:278
#, fuzzy
msgid "function body not available"
msgstr "´Ø¿ô¤ò inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
#, fuzzy
msgid "redefined extern inline functions are not considered for inlining"
msgstr "¥¤¥ó¥é¥¤¥ó´Ø¿ô¤ò¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
#, fuzzy
msgid "function not considered for inlining"
msgstr "´Ø¿ô¤ò inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
#, fuzzy
msgid "function not inlinable"
msgstr "´Ø¿ô¤ò inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "¥»¥¯¥·¥ç¥ó¥Ý¥¤¥ó¥¿¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
msgstr ""
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "%s ¤ÇÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼ (%s:%d)"
@@ -4485,72 +4487,72 @@ msgstr "%s ¤ÇÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼ (%s:%d)"
msgid "no arguments"
msgstr "°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 version %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d ¸Ä¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d ¸Ä¤Î¥Ç¥¹¥È¥é¥¯¥¿¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d ¸Ä¤Î¥Õ¥ì¡¼¥à¥Æ¡¼¥Ö¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s ¥·¥°¥Ê¥ë %d [%s]%s ¤Ç½ªÎ»¤µ¤»¤é¤ì¤Þ¤·¤¿"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s ¤Ï exit ¾õÂÖ %d ¤òÊÖ¤·¤Þ¤·¤¿"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[%s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "`%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "stdout ¤Ø¤Î¥ê¥À¥¤¥ì¥¯¥È: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[%s ¤òÎ¥¤ì¤Þ¤¹]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4559,55 +4561,55 @@ msgstr ""
"\n"
"write_c_file - ½ÐÎÏ̾¤Ï %s¡¢¥×¥ì¥Õ¥£¥¯¥¹¤Ï %s\n"
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "`nm' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "init ´Ø¿ô¤ò¥ª¥Ö¥¸¥§¥¯¥È %s ¤Ç¸«¤Ä¤±¤Þ¤·¤¿"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "fini ´Ø¿ô¤ò¥ª¥Ö¥¸¥§¥¯¥È %s ¤Ç¸«¤Ä¤±¤Þ¤·¤¿"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "`ldd' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4615,32 +4617,32 @@ msgstr ""
"\n"
"ldd ½ÐÎϤ¬¥³¥ó¥¹¥È¥é¥¯¥¿/¥Ç¥¹¥È¥é¥¯¥¿¤òȼ¤¤¤Þ¤¹¡£\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "ưŪ°Í¸´Ø·¸ %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "ưŪ°Í¸´Ø·¸ '%s' ¤ò³«¤±¤Þ¤»¤ó"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: COFF ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: COFF ¥Õ¥¡¥¤¥ë¤È¤·¤Æ³«¤±¤Þ¤»¤ó"
-#: collect2.c:2631
+#: collect2.c:2641
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "¥é¥¤¥Ö¥é¥ê lib%s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4650,7 +4652,7 @@ msgstr ""
";; ·ë¹çÅý·×: %d »î¹Ô, %d ÂåÂØ (%d ¿·¤¿¤Ê¶õ´Ö¤òÍ×µá),\n"
";; %d À®¸ù¡£\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4766,7 +4768,7 @@ msgstr "\"%s\" ¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ëÀµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
msgid "too many input files"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ";; %d ¤«¤é %d ¤Þ¤Ç¤Î½èÍý¥Ö¥í¥Ã¥¯¡¢%d ¥»¥Ã¥È¡£\n"
@@ -4825,32 +4827,23 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: emit-rtl.c:1215
-#, fuzzy
-msgid "can't access real part of complex value in hard register"
-msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿Æâ¤ÇÊ£ÁÇ¿ô¤Î¼Â¿ôÉôʬ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó"
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿Æâ¤ÇÊ£ÁÇ¿ô¤Îµõ¿ôÉôʬ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó"
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr ""
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: emit_insn ¤¬ emit_jump_insn ¤òÍפ¹¤ë½ê¤Ç»È¤ï¤ì¤Þ¤·¤¿:\n"
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "%s ¤ÇÃæÃÇ, °ÌÃÖ %s:%d"
@@ -4868,7 +4861,7 @@ msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
@@ -4918,103 +4911,103 @@ msgstr "`%l' ±é»»¤Ï¥é¥Ù¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "ÉâÆ°¾®¿ôÄê¿ô¤ò»È¤¤Â»¤Í¤Þ¤·¤¿"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê¼°"
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
msgid "internal consistency failure"
msgstr ""
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, fuzzy, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ÎÉý¤Î¤»¤¤¤ÇÈæ³Ó¤¬¾ï¤Ë %d ¤È¤Ê¤ê¤Þ¤¹"
-#: fold-const.c:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "Èæ³Ó¤¬¾ï¤Ë %d ¤È¤Ê¤ê¤Þ¤¹"
-#: fold-const.c:4899
+#: fold-const.c:4933
#, fuzzy
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr "°ìÃפ·¤Ê¤¤ÃÍƱ»Î¤Ç¤ÎÈóÅù²Á¤Î `or' ¥Æ¥¹¥È¤Ï¾ï¤Ë 1 ¤Ç¤¹"
-#: fold-const.c:4904
+#: fold-const.c:4938
#, fuzzy
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr "Áê¸ßÇÓ¾Ū¤ÊÃͤÎÅù²Á¤Î `and' ¥Æ¥¹¥È¤Ï¾ï¤Ë 0 ¤Ç¤¹"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "ÊÑ¿ô `%s' ¤Î¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹"
-#: function.c:1442
+#: function.c:1443
#, fuzzy
msgid "impossible constraint in %<asm%>"
msgstr "`asm' Æâ¤Ç¤Ï¥ì¥¸¥¹¥¿À©Ìó¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: function.c:3495
+#: function.c:3633
#, fuzzy
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "ÊÑ¿ô `%s' ¤Ï `longjmp' ¤ä `vfork' ¤Ë¤è¤Ã¤Æ¹ó¤¤¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: function.c:3516
+#: function.c:3654
#, fuzzy
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr "°ú¿ô `%s' ¤Ï `longjmp' ¤ä `vfork' ¤Ë¤è¤Ã¤Æ¹ó¤¤¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "´Ø¿ô¤¬½¸¹çÂΤòÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "°ú¿ô `%s' ¤¬Ì¤»ÈÍѤǤ¹"
-#: gcc.c:1242
+#: gcc.c:1237
#, fuzzy, c-format
msgid "ambiguous abbreviation %s"
msgstr "¤¢¤¤¤Þ¤¤¤Ê¾Êά %s ¤Ç¤¹"
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "ÉÔ´°Á´¤Ê `%s' ¥ª¥×¥·¥ç¥ó¤Ç¤¹"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "`%s' ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "`%s' ¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ̵´Ø·¸¤Ê°ú¿ô"
-#: gcc.c:1637
+#: gcc.c:1632
#, fuzzy
msgid "Using built-in specs.\n"
msgstr "ÁȤ߹þ¤ß spec ¤ò»ÈÍÑ.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -5023,42 +5016,42 @@ msgstr ""
"spec %s ¤ò '%s' ¤ËÀßÄêÃæ\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr "%s ¤«¤é spec ¤òÆɤ߹þ¤ßÃæ\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "specs ¤Î %ld ʸ»úÌܰʹߤΠ%%include ¤Î½ñ¼°¤¬ÊѤǤ¹"
-#: gcc.c:2057
+#: gcc.c:2047
#, fuzzy, c-format
msgid "could not find specs file %s\n"
msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs ¤Î %ld ʸ»úÌܰʹߤΠ%%rename ¤Î½ñ¼°¤¬ÊѤǤ¹"
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤Ë̾Á°¤òÊѹ¹¤¹¤ë spec ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
-#: gcc.c:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr "spec %s ¤ò %s ¤Ë̾Á°¤òÊѹ¹\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5067,30 +5060,30 @@ msgstr ""
"spec ¤Ï '%s' ¤Ç¤¹\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "spec ¥Õ¥¡¥¤¥ëÃæ¤Î %ld ʸ»ú¤Î¸å¤ËÉÔÌÀ¤Ê %% ¥³¥Þ¥ó¥É"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "%ld ʸ»ú¤Î¸å¤Ë¤ª¤«¤·¤Ê spec ¥Õ¥¡¥¤¥ë"
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "spec ¥Õ¥¡¥¤¥ë¤Ë¥ê¥ó¥¯¤Ë´Ø¤¹¤ë spec ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:2635
+#: gcc.c:2625
#, c-format
msgid "system path '%s' is not absolute"
msgstr ""
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5098,7 +5091,7 @@ msgstr ""
"\n"
"³¤±¤Þ¤¹¤«? (y ¤Þ¤¿¤Ï n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5109,71 +5102,71 @@ msgstr ""
"´°Á´¤Ê¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
"%s ¤Ë¼ê½ç¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£"
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] ¥Õ¥¡¥¤¥ë...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "¥ª¥×¥·¥ç¥ó:\n"
-#: gcc.c:3036
+#: gcc.c:3026
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
" -pass-exit-codes ¥Õ¥§¡¼¥º¤«¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤ÎºÇÂçÃͤò exit\n"
" ¥³¡¼¥É¤È¤·¤ÆÊÖ¤¹\n"
-#: gcc.c:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help ¤³¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help ¥¿¡¼¥²¥Ã¥È¸ÇÍ­¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òɽ¼¨\n"
-#: gcc.c:3040
+#: gcc.c:3030
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr "(`-v --help' ¤ò»È¤¦¤È¡¢»Ò¥×¥í¥»¥¹¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òɽ¼¨)\n"
-#: gcc.c:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs ÁȤ߹þ¤Þ¤ì¤¿ spec ʸ»úÎó¤òÁ´¤Æɽ¼¨\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine ¥³¥ó¥Ñ¥¤¥é¤Î¥¿¡¼¥²¥Ã¥È¥×¥í¥»¥Ã¥µ¤òɽ¼¨\n"
-#: gcc.c:3044
+#: gcc.c:3034
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr " -print-search-dirs ¥³¥ó¥Ñ¥¤¥é¤Î¥µ¡¼¥Á¥Ñ¥¹¤Ë¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨\n"
-#: gcc.c:3045
+#: gcc.c:3035
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr " -print-libgcc-file-name ¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ó¥Ñ¥Ë¥ª¥ó¥é¥¤¥Ö¥é¥ê̾¤òɽ¼¨\n"
-#: gcc.c:3046
+#: gcc.c:3036
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr " -print-file-name=<lib> ¥é¥¤¥Ö¥é¥ê <lib> ¤Ø¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¼¨\n"
-#: gcc.c:3047
+#: gcc.c:3037
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr " -print-prog-name=<prog> ¥³¥ó¥Ñ¥¤¥é¤ÎÉôÉÊ <prog> ¤Ø¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¼¨\n"
-#: gcc.c:3048
+#: gcc.c:3038
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr " -print-multi-directory libgcc ¤Î¥Ð¡¼¥¸¥ç¥ó¥Ç¥£¥ì¥¯¥È¥ê¥ë¡¼¥È¤òɽ¼¨\n"
-#: gcc.c:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5181,106 +5174,106 @@ msgstr ""
" -print-multi-lib ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈÊ£¿ô¤Î¥é¥¤¥Ö¥é¥êõº÷\n"
" ¥Ç¥£¥ì¥¯¥È¥ê¤È¤ÎÂбþ¤òɽ¼¨\n"
-#: gcc.c:3052
+#: gcc.c:3042
#, fuzzy
msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr " -print-multi-directory libgcc ¤Î¥Ð¡¼¥¸¥ç¥ó¥Ç¥£¥ì¥¯¥È¥ê¥ë¡¼¥È¤òɽ¼¨\n"
-#: gcc.c:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<options> ¥«¥ó¥Þ¶èÀÚ¤ê¤Î <options> ¤ò¥¢¥»¥ó¥Ö¥é¤ËÅϤ¹\n"
-#: gcc.c:3054
+#: gcc.c:3044
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<options> ¥«¥ó¥Þ¶èÀÚ¤ê¤Î <options> ¤ò¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÅϤ¹\n"
-#: gcc.c:3055
+#: gcc.c:3045
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<options> ¥«¥ó¥Þ¶èÀÚ¤ê¤Î <options> ¤ò¥ê¥ó¥«¤ËÅϤ¹\n"
-#: gcc.c:3056
+#: gcc.c:3046
#, fuzzy
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xlinker <arg> <arg> ¤ò¥ê¥ó¥«¤ËÅϤ¹\n"
-#: gcc.c:3057
+#: gcc.c:3047
#, fuzzy
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xlinker <arg> <arg> ¤ò¥ê¥ó¥«¤ËÅϤ¹\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> <arg> ¤ò¥ê¥ó¥«¤ËÅϤ¹\n"
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -quiet ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ô¤ä·Ð²á»þ´Ö¤òɽ¼¨¤·¤Ê¤¤\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Ãæ´Ö¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Ãæ´Ö¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¥Ñ¥¤¥×¤ò»È¤¦\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time »Ò¥×¥í¥»¥¹¤´¤È¤Î¼Â¹Ô»þ´Ö¤ò·×¬¤¹¤ë\n"
-#: gcc.c:3063
+#: gcc.c:3053
#, fuzzy
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -specs=<file> ÁȤ߹þ¤ß specs ¤ò <file> ¤ÎÆâÍƤÇÃÖ¤­´¹¤¨¤ë\n"
-#: gcc.c:3064
+#: gcc.c:3054
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr " -std=<standard> ÆþÎÏ¥½¡¼¥¹¤ò <standard> ¤È¸«¤Ê¤¹\n"
-#: gcc.c:3065
+#: gcc.c:3055
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr " -B <directory> <directory> ¤ò¥³¥ó¥Ñ¥¤¥é¤Îõº÷¥Ñ¥¹¤ËÄɲ乤ë\n"
-#: gcc.c:3066
+#: gcc.c:3056
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
" -b <machine> ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð¥¿¡¼¥²¥Ã¥È <machine> ¤È¤·¤Æ\n"
" gcc ¤ò¼Â¹Ô¤¹¤ë\n"
-#: gcc.c:3067
+#: gcc.c:3057
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
" -V <version> ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð <version> ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î\n"
" gcc ¤È¤·¤Æ¼Â¹Ô¤¹¤ë\n"
-#: gcc.c:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥à¤òɽ¼¨\n"
-#: gcc.c:3069
+#: gcc.c:3059
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr ""
" -E ¥×¥ê¥×¥í¥»¥¹¤Î¤ß -- ¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯\n"
" ¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S ¥³¥ó¥Ñ¥¤¥ë¤Î¤ß -- ¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c ¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¤¹¤ë¤¬¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <file> <file> ¤Ë½ÐÎϤò¹Ô¤Ê¤¦\n"
-#: gcc.c:3074
+#: gcc.c:3064
#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
@@ -5293,7 +5286,7 @@ msgstr ""
" 'none' ¤ò»ØÄꤹ¤ë¤È¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Ë¤è¤Ã¤Æ¸À¸ì¤ò\n"
" ¿äÄꤹ¤ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤ËÌá¤ë\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5306,28 +5299,28 @@ msgstr ""
"»Ò¥×¥í¥»¥¹¤Ë¼«Æ°Åª¤ËÅϤµ¤ì¤Þ¤¹¡£¤³¤¦¤¤¤Ã¤¿¥×¥í¥»¥¹¤Ë¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤òÅϤ¹\n"
"¤Ë¤Ï -W<letter> ¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
-#: gcc.c:3201
+#: gcc.c:3191
#, fuzzy, c-format
msgid "'-%c' option must have argument"
msgstr "-param ¥ª¥×¥·¥ç¥ó¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3223
+#: gcc.c:3213
#, c-format
msgid "couldn't run '%s': %s"
msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5335,97 +5328,97 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "`-Xlinker' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "`-specs' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "`-Xlinker' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "`-b' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "`-specs' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "`-specs=' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "`-B' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3788
+#: gcc.c:3778
#, fuzzy
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "·Ù¹ð: -save-temps ¤¬»ØÄꤵ¤ì¤¿¤Î¤Ç -pipe ¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: gcc.c:3792
+#: gcc.c:3782
#, fuzzy
msgid "warning: -pipe ignored because -time specified"
msgstr "·Ù¹ð: -time ¤¬»ØÄꤵ¤ì¤¿¤Î¤Ç -pipe ¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "`-x' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "`-%s' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:4093
+#: gcc.c:4083
#, fuzzy, c-format
msgid "warning: '-x %s' after last input file has no effect"
msgstr "·Ù¹ð: ºÇ¸å¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î¸å¤Î `-x %s' ¤Ï²¿¤â¤·¤Þ¤»¤ó"
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
@@ -5433,90 +5426,90 @@ msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, fuzzy, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "spec ¥¨¥é¡¼: '%%*' ¤Ï¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤Ç½é´ü²½¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ç¤¹"
-#: gcc.c:5185
+#: gcc.c:5158
#, fuzzy, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "·Ù¹ð: µì¼°¤Î %%[ ±é»»»Ò¤¬ spec ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "spec %c%s%c ¤ò½èÍýÃæ, ¤³¤ì¤Ï '%s' ¤Ç¤¹\n"
-#: gcc.c:5266
+#: gcc.c:5239
#, fuzzy, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "spec ¥¨¥é¡¼: ǧ¼±ÉÔǽ¤Ê spec ¥ª¥×¥·¥ç¥ó '%c'"
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ '\\%c'"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: gcc.c:5412
+#: gcc.c:5385
#, fuzzy
msgid "malformed spec function name"
msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
#, fuzzy
msgid "no arguments for spec function"
msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "ǧ¼±ÉÔǽ¤Ê¥ª¥×¥·¥ç¥ó `-%s'"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "¥¤¥ó¥¹¥È¡¼¥ë: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "¥×¥í¥°¥é¥à: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "¥é¥¤¥Ö¥é¥ê: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5525,72 +5518,77 @@ msgstr ""
"\n"
"¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "¥é¥¤¥Ö¥é¥ê: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr "¥³¥ó¥Õ¥£¥°¥ª¥×¥·¥ç¥ó: %s\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "¥¹¥ì¥Ã¥É¥â¥Ç¥ë: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc ¥Ð¡¼¥¸¥ç¥ó %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "gcc ¥É¥é¥¤¥Ð¥Ð¡¼¥¸¥ç¥ó %s ¼Â¹Ô gcc ¥Ð¡¼¥¸¥ç¥ó %s\n"
-#: gcc.c:6390
+#: gcc.c:6380
#, fuzzy
msgid "no input files"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: gcc.c:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr "%s: ¥ê¥ó¥¯¤¬´°Î»¤·¤Ê¤«¤Ã¤¿¤Î¤Ç¥ê¥ó¥«¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "¸À¸ì %s ¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: gcc.c:7130
+#: gcc.c:7119
#, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr ""
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, c-format
msgid "multilib select '%s' is invalid"
msgstr ""
-#: gcc.c:7367
+#: gcc.c:7356
#, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr ""
@@ -5875,28 +5873,28 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
#, fuzzy
msgid "jump bypassing disabled"
msgstr "-g ¥ª¥×¥·¥ç¥ó¤ò̵¸ú²½¤·¤Þ¤·¤¿¡£"
-#: gcse.c:6597
+#: gcse.c:6535
#, fuzzy, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "GCSE ¤ò̵¸ú²½: %d > 1000 ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d >= 20 edge/´ðËÜ¥Ö¥í¥Ã¥¯"
-#: gcse.c:6610
+#: gcse.c:6548
#, fuzzy, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "GCSE ¤ò̵¸ú²½: %d ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d ¸Ä¤Î¥ì¥¸¥¹¥¿"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, fuzzy, c-format
msgid "can't write PCH file: %m"
@@ -5913,7 +5911,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "%s ¤Ø½ñ¤­¹þ¤á¤Þ¤»¤ó"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, fuzzy, c-format
msgid "can't read PCH file: %m"
msgstr "%s ¤«¤éÆɹþ¤á¤Þ¤»¤ó"
@@ -5922,12 +5920,12 @@ msgstr "%s ¤«¤éÆɹþ¤á¤Þ¤»¤ó"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
#, fuzzy
msgid "can't write PCH file"
msgstr "%s ¤Ø½ñ¤­¹þ¤á¤Þ¤»¤ó"
@@ -5937,27 +5935,27 @@ msgstr "%s ¤Ø½ñ¤­¹þ¤á¤Þ¤»¤ó"
msgid "unexpected node"
msgstr "ͽ´ü¤µ¤ì¤ë¥á¥â¥ê¥ì¥¤¥Æ¥ó¥·¤òÄ´À°¤¹¤ë"
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "asm ʸ¤ÎÃæ¤Ë̵¸ú¤Êº¸ÊÕÃÍ"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, fuzzy, c-format
msgid "memory input %d is not directly addressable"
msgstr "½ÐÎÏÈÖ¹æ %d ¤ÏľÀÜ¥¢¥É¥ì¥¹»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, fuzzy, c-format
msgid "%s cannot be used in asm here"
msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, fuzzy, c-format
msgid "can't open %s: %m"
msgstr "%s ¤ò³«¤±¤Þ¤»¤ó"
@@ -6017,90 +6015,100 @@ msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹"
msgid "unrecognized command line option \"%s\""
msgstr "¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó '%s' ¤ò̵»ë¤·¤Þ¤¹"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized ¤Ï -O ̵¤·¤Ë¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, fuzzy, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥»¥¯¥·¥ç¥ó̾ \"%s\""
-#: opts.c:937
+#: opts.c:938
#, fuzzy, c-format
msgid "unrecognized register name \"%s\""
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥ì¥¸¥¹¥¿Ì¾ `%s'"
-#: opts.c:957
+#: opts.c:962
#, fuzzy, c-format
msgid "unknown tls-model \"%s\""
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "̵¸ú¤Ê¥Ñ¥é¥á¥¿ÃÍ `%s'"
-#: opts.c:1133
+#: opts.c:1139
#, fuzzy
msgid "target system does not support debug output"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï interworking ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: opts.c:1140
+#: opts.c:1146
#, fuzzy, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "¥Ç¡¼¥¿Îΰè '%s' ¤ÏÁ°¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
-#: opts.c:1156
+#: opts.c:1162
#, fuzzy, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥»¥¯¥·¥ç¥ó̾ \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6438,99 +6446,95 @@ msgstr "%s: ºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤¬Ê¬¤«¤ê¤Þ¤»¤ó: %s\n"
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: ÆþÎÏ¥Õ¥¡¥¤¥ë̾¤Ë¤Ï³ÈÄ¥»Ò .c ¤¬¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó: %s\n"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, fuzzy, c-format
msgid "output constraint %d must specify a single register"
msgstr "½ÐÎÏÀ©Ìó %d ¤Ï°ì¤Ä¤Î¥ì¥¸¥¹¥¿¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:631
+#: reg-stack.c:632
#, fuzzy, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr "½ÐÎÏÀ©Ìó %d ¤Ï°ì¤Ä¤Î¥ì¥¸¥¹¥¿¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:654
+#: reg-stack.c:655
#, fuzzy
msgid "output regs must be grouped at top of stack"
msgstr "½ÐÎϥ쥸¥¹¥¿¤Ï¥¹¥¿¥Ã¥¯¤Î¥È¥Ã¥×¤Ë¥°¥ë¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:691
+#: reg-stack.c:692
#, fuzzy
msgid "implicitly popped regs must be grouped at top of stack"
msgstr "°ÅÌÛ¤Ë pop ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤Ï¥¹¥¿¥Ã¥¯¤Î¥È¥Ã¥×¤Ë¥°¥ë¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:710
+#: reg-stack.c:711
#, fuzzy
msgid "output operand %d must use %<&%> constraint"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É %d ¤Ï `&' À©Ìó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "'%s' ¤ò %s ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "Âç°è register ÊÑ¿ô¤¬´Ø¿ôÄêµÁ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "¥ì¥¸¥¹¥¿¤¬Æó¤Ä¤Î¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ»È¤ï¤ì¤Þ¤·¤¿"
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr "¸Æ¤Ó½Ð¤·¤ÇÇ˲õ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤¬¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ»È¤ï¤ì¤Þ¤·¤¿"
-#: regrename.c:1876
+#: regrename.c:1872
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1903
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1252
+#: reload.c:1270
#, fuzzy
msgid "cannot reload integer constant operand in %<asm%>"
msgstr "À°¿ôÄê¿ô¥ª¥Ú¥é¥ó¥É¤ò `asm' Æâ¤ÇºÆ¥í¡¼¥É¤Ç¤­¤Þ¤»¤ó"
-#: reload.c:1275
+#: reload.c:1293
#, fuzzy
msgid "impossible register constraint in %<asm%>"
msgstr "`asm' Æâ¤Ç¤Ï¥ì¥¸¥¹¥¿À©Ìó¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: reload.c:3513
+#: reload.c:3535
#, fuzzy
msgid "%<&%> constraint used with no register class"
msgstr "`&' À©Ì󤬥쥸¥¹¥¿¥¯¥é¥¹Ìµ¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: reload.c:3679
+#: reload.c:3705
#, fuzzy
msgid "unable to generate reloads for:"
msgstr "¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë CPU ¤òÁªÂò¤¹¤ë"
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
#, fuzzy
msgid "inconsistent operand constraints in an %<asm%>"
msgstr "`asm' Æâ¤Ç¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
@@ -6543,43 +6547,43 @@ msgstr "¥Õ¥ì¡¼¥à¥µ¥¤¥º¤¬Â礭¤¹¤®¤Æ¡¢¥¹¥¿¥Ã¥¯¸¡ºº¤¬¿®Íê¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹"
msgid "try reducing the number of local variables"
msgstr "¥í¡¼¥«¥ëÊÑ¿ô¤Î¿ô¤òºï¸º¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤"
-#: reload1.c:1866
+#: reload1.c:1865
#, fuzzy
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr "¥¯¥é¥¹ `%s' Æâ¤Î¥ì¥¸¥¹¥¿¤ò `asm' ºÆ¥í¡¼¥ÉÃæ¤Ë¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
-#: reload1.c:1871
+#: reload1.c:1870
#, fuzzy, c-format
msgid "unable to find a register to spill in class %qs"
msgstr "¥¯¥é¥¹ `%s' Æâ¤Ç¤Õ¤ë¤¤Íî¤È¤¹¥ì¥¸¥¹¥¿¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr ""
-#: reload1.c:3864
+#: reload1.c:3863
#, fuzzy
msgid "%<asm%> operand requires impossible reload"
msgstr "`asm' ¥ª¥Ú¥é¥ó¥É¤ÏºÆ¥í¡¼¥É¤Ç¤­¤Ê¤¤»ö¤¬Í׵ᤵ¤ì¤Þ¤¹"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
#, fuzzy
msgid "could not find a spill register"
msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-#: reload1.c:4988
+#: reload1.c:4987
#, fuzzy
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr "`asm' ¥ª¥Ú¥é¥ó¥ÉÀ©Ì󤬥ª¥Ú¥é¥ó¥É¥µ¥¤¥º¤ÈÀ°¹ç¤·¤Þ¤»¤ó"
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
#, fuzzy
msgid "VOIDmode on an output"
msgstr "½ÐÎÏÃæ¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸"
-#: reload1.c:6607
+#: reload1.c:6615
#, fuzzy
msgid "output operand is constant in %<asm%>"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬ `asm' Æâ¤ÇÄê¿ô¤Ç¤¹"
@@ -6594,151 +6598,151 @@ msgstr "ǧ¼±ÉÔǽ¤ÊÌ¿Îá:"
msgid "insn does not satisfy its constraints:"
msgstr "Ì¿Î᤬¤½¤ÎÀ©Ìó¤òËþ¤¿¤·¤Þ¤»¤ó"
-#: rtl.c:472
+#: rtl.c:471
#, fuzzy, 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:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
+#: rtl.c:500
#, fuzzy, c-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr "RTL ¸¡ºº: ¥³¡¼¥É `%s' ¤Î¤Ï¤º¤Ê¤Î¤Ë `%s' (%s Ãæ)¤Ç¤¹ (%s:%d)"
-#: rtl.c:511
+#: rtl.c:510
#, fuzzy, 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:522
+#: rtl.c:521
#, 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)"
-#: rtl.c:533
+#: rtl.c:532
#, 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:316
+#: stmt.c:317
#, fuzzy
msgid "output operand constraint lacks %<=%>"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤Ë `=' ¤¬·ç¤±¤Æ¤¤¤Þ¤¹"
-#: stmt.c:331
+#: stmt.c:332
#, fuzzy, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr "½ÐÎÏÀ©Ìó `%c' (operand %d ÍÑ) ¤¬³«»ÏÉôʬ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: stmt.c:354
+#: stmt.c:355
#, fuzzy
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr "¥ª¥Ú¥é¥ó¥ÉÀ©ÌóÃæ¡¢ÉÔÀµ¤Ê°ÌÃÖ¤Ë '+' ¤ä '=' ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
#, fuzzy
msgid "%<%%%> constraint used with last operand"
msgstr "`%%' À©Ì󤬺Ǹå¤Î¥ª¥Ú¥é¥ó¥É¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥ÉÆâ¤ÎÀ©Ìó¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: stmt.c:451
+#: stmt.c:452
#, fuzzy, c-format
msgid "input operand constraint contains %qc"
msgstr "ÆþÎÏ¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬ `%c' ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr "À©Ìó¤ËŬ¹ç¤µ¤»¤ë»þ¤Ë¡¢Ìµ¸ú¤Ê¥ª¥Ú¥é¥ó¥ÉÈÖ¹æ¤ò»²¾È¤·¤Þ¤·¤¿"
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: stmt.c:555
+#: stmt.c:556
#, fuzzy
msgid "matching constraint does not allow a register"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥ÉÆâ¤ÎÀ©Ìó¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: stmt.c:583
+#: stmt.c:584
#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr ""
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "`asm' Ãæ¤ËÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾ `%s' ¤¬¤¢¤ê¤Þ¤¹"
-#: stmt.c:680
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
msgstr ""
-#: stmt.c:727
+#: stmt.c:728
#, fuzzy
msgid "more than %d operands in %<asm%>"
msgstr "`asm' ¤ÎÃæ¤Ë %d ¤ò±Û¤¨¤ë¥ª¥Ú¥é¥ó¥É¤¬¤¢¤ê¤Þ¤¹"
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "½ÐÎÏÈÖ¹æ %d ¤ÏľÀÜ¥¢¥É¥ì¥¹»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: stmt.c:869
+#: stmt.c:870
#, fuzzy
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "asm ¥ª¥Ú¥é¥ó¥É %d ¤Ï¶²¤é¤¯À©Ìó¤ËŬ¹ç¤·¤Þ¤»¤ó"
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr ""
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr ""
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "`asm' Ãæ¤ÎÂåÂØ¥­¡¼¥ï¡¼¥É¤¬Â¿¤¹¤®¤Þ¤¹"
-#: stmt.c:1120
+#: stmt.c:1121
#, fuzzy
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr "`asm' ¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬ÂåÂØÈÖ¹æ¤È¤Ï°Û¤Ê¤ê¤Þ¤¹"
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "¥Þ¥¯¥í²¾°ú¿ô \"%s\" ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤±é»»»Ò %s ¤Ç¤¹"
-#: stmt.c:1464
+#: stmt.c:1465
#, fuzzy
msgid "%Hvalue computed is not used"
msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»È¤¤ÀڤäƤ¤¤Þ¤»¤ó\n"
@@ -6856,66 +6860,66 @@ msgstr "collect: ºÆ¥ê¥ó¥¯¤·¤Þ¤¹\n"
msgid "ld returned %d exit status"
msgstr "ld ¤Ï¥¹¥Æ¡¼¥¿¥¹ %d ¤Ç½ªÎ»¤·¤Þ¤·¤¿"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "ÆâÉô¥¨¥é¡¼"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
#, fuzzy
msgid "%J%qF declared %<static%> but never defined"
msgstr "`%s' ¤¬ `static' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "`%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "%s ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -6924,12 +6928,12 @@ msgstr ""
"\n"
"¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, fuzzy, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23.23s [ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -6938,24 +6942,24 @@ msgstr ""
"\n"
"ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " ¤³¤ì¤é¤Ï¸ºß¤·¤Þ¤¹¤¬¡¢Ê¸½ñ²½¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ gcc ¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó %s"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6966,352 +6970,363 @@ msgstr ""
"%s\tcompiled by GNU C version %s.\n"
"%s%s%s version %s (%s) compiled by CC.\n"
-#: toplev.c:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "ÅϤµ¤ì¤¿¥ª¥×¥·¥ç¥ó: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "Í­¸ú¥ª¥×¥·¥ç¥ó: "
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "%s ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤±¤Þ¤»¤ó¤Ç¤·¤¿"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr ""
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤ÏÃÙ±äʬ´ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:1831
+#: toplev.c:1851
#, fuzzy, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "%s ¤Ï `%%%s%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "%s ¤ò³«¤±¤Þ¤»¤ó"
-#: toplev.c:1873
+#: toplev.c:1893
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "-ffunction-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:1878
+#: toplev.c:1898
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:1885
+#: toplev.c:1905
#, fuzzy
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections ¤¬Ìµ¸ú¤Ç¤¹ -- ¥×¥í¥Õ¥¡¥¤¥ë¤ÏÉÔ²Äǽ¤Ç¤¹"
-#: toplev.c:1892
+#: toplev.c:1912
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:1904
+#: toplev.c:1924
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr "-f%sleading-underscore ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:1919
+#: toplev.c:1939
#, fuzzy
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-mg ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó\n"
-#: toplev.c:1925
+#: toplev.c:1945
#, fuzzy
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections ¤Ï¥¿¡¼¥²¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¥Ç¥Ð¥Ã¥°¤Ë±Æ¶Á¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó"
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "¥¨¥é¡¼¤Ë¤è¤ê %s ¤òÊĤ¸¤Þ¤¹"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
#, fuzzy
msgid "%Hwill never be executed"
msgstr "¸Æ¤Ó½Ð¤· %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤»¤º\n"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
msgstr ""
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
#, fuzzy
msgid "Invalid reference prefix."
msgstr "̵¸ú¤Ê»²¾È·¿¤Ç¤¹"
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "̵¸ú¤Ê½é´ü²½¼°¤Ç¤¹"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
msgstr ""
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, fuzzy, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr "NOTE_INSN_BASIC_BLOCK %d ¤¬´ðËÜ¥Ö¥í¥Ã¥¯ %d ¤ÎÃæ¤Û¤É¤Ë¤¢¤ê¤Þ¤¹"
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, fuzzy, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr "NOTE_INSN_BASIC_BLOCK %d ¤¬´ðËÜ¥Ö¥í¥Ã¥¯ %d ¤ÎÃæ¤Û¤É¤Ë¤¢¤ê¤Þ¤¹"
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "¥È¥é¥ó¥Ý¥ê¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, fuzzy, c-format
msgid "Missing edge %i->%i"
msgstr "¼±Ê̻Ҥò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
#, fuzzy
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr "´Ø¿ô¤Ï¶²¤é¤¯ `noreturn' °À­¤Î¸õÊä¤È»×¤ï¤ì¤Þ¤¹"
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
#, fuzzy
msgid "%H%<noreturn%> function does return"
msgstr "`noreturn' ´Ø¿ô¤¬ return ¤·¤Æ¤¤¤Þ¤¹"
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "À©¸æ¤¬Èó void ´Ø¿ô¤Î½ª¤ê¤ËÅþ㤷¤Þ¤·¤¿"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "¥À¥ó¥×¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿"
-#: tree-dump.c:960
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr ""
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
#, fuzzy
msgid "%Jinlining failed in call to %qF: %s"
msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Î¥¤¥ó¥é¥¤¥ó²½¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "¤³¤³¤«¤é¸Æ¤Ð¤ì¤Þ¤·¤¿"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "À©¸æ¤¬Èó void ´Ø¿ô¤Î½ª¤ê¤ËÅþ㤷¤Þ¤·¤¿"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7321,38 +7336,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "`%s' ¤ÎÌá¤êÃͤΥµ¥¤¥º¤¬ %u ¥Ð¥¤¥È¤Ç¤¹"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "`%s' ¤ÎÌá¤êÃͤΥµ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤è¤ê¤âÂ礭¤¯¤Ê¤ê¤Þ¤¹"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7361,308 +7376,312 @@ msgstr ""
msgid "unimplemented functionality"
msgstr ""
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "ÆâÉô¥¨¥é¡¼"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "¼±Ê̻Ҥò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, fuzzy, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr "%s ¤Î¸å¤í¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: tree-ssa.c:305
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
msgstr ""
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
msgid "verify_ssa failed."
msgstr ""
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "`%s' ¤Ï¤³¤Î´Ø¿ôÆâ¤Ç½é´ü²½¤µ¤ì¤º¤Ë»ÈÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
#, fuzzy
msgid "%H%qD may be used uninitialized in this function"
msgstr "`%s' ¤Ï¤³¤Î´Ø¿ôÆâ¤Ç½é´ü²½¤µ¤ì¤º¤Ë»ÈÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
msgstr ""
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹"
-#: tree.c:3258
+#: tree.c:3272
#, fuzzy
msgid "%Jfunction %qD definition is marked dllimport."
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: tree.c:3266
+#: tree.c:3280
#, fuzzy
msgid "%Jvariable %qD definition is marked dllimport."
msgstr "ÀÅŪÊÑ¿ô `%s' ¤Ï dllimport ¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "´Ø¿ô¤ÎÇÛÎó¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹"
-#: tree.c:5446
+#: tree.c:5482
#, fuzzy, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)"
-#: tree.c:5483
+#: tree.c:5519
#, fuzzy, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)"
-#: tree.c:5496
+#: tree.c:5532
#, fuzzy, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr "Tree ¸¡ºº: ¥¯¥é¥¹ '%c' ¤Î¤Ï¤º¤¬ '%c' (%s) ¤Ç¤¹(%s Æâ, %s:%d)"
-#: tree.c:5510
+#: tree.c:5546
#, 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)"
-#: tree.c:5522
+#: tree.c:5558
#, fuzzy, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr "RTL check: ¥Ù¥¯¥È¥ë¤Î elt %d ¤òºÇ¸å¤Î elt %d (%s Ãæ)¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)"
-#: tree.c:5534
+#: tree.c:5570
#, fuzzy, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr "RTL ¸¡ºº: elt %d(%s) ¤¬ºÇ¸å¤Î elt %d(%s Ãæ) ¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)"
-#: varasm.c:476
+#: varasm.c:477
#, fuzzy
msgid "%J%D causes a section type conflict"
msgstr "%s ¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Î¶¥¹ç¤ò°ú¤­µ¯¤³¤·¤Þ¤¹"
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "¥ì¥¸¥¹¥¿Ì¾¤¬ `%s' ÍѤ˻ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: varasm.c:914
+#: varasm.c:915
#, fuzzy
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr "`%s' ¤Î¥Ç¡¼¥¿·¿¤Ï register ¤Ë¤Ï¤Õ¤µ¤ï¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: varasm.c:917
+#: varasm.c:918
#, fuzzy
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr "`%s' ¤Ë»ØÄꤵ¤ì¤¿ register ¤Ï¥Ç¡¼¥¿·¿¤Ë¤Õ¤µ¤ï¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "Âç°è register ÊÑ¿ô¤¬½é´üÃͤò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: varasm.c:930
+#: varasm.c:931
#, fuzzy
msgid "volatile register variables don%'t work as you might wish"
msgstr "volatile register ÊÑ¿ô¤Ï°Õ¿Þ¤·¤¿¤è¤¦¤Ë¤ÏÆ°ºî¤·¤Þ¤»¤ó"
-#: varasm.c:963
+#: varasm.c:968
#, fuzzy
msgid "%Jregister name given for non-register variable %qD"
msgstr "¥ì¥¸¥¹¥¿Ì¾¤¬Èó register ÊÑ¿ô `%s' ¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: varasm.c:1592
+#: varasm.c:1607
#, fuzzy
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr "`%s' ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤¤¤Ç¤¹¡£ %d ¤ò»È¤¤¤Þ¤¹¡£"
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
#, fuzzy
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr "%s ¤ËÍ׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï¼ÂÁõ¤µ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È %d ¤è¤êÂ礭¤¤¤Ç¤¹"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "À°¿ô¤Î½é´üÀßÄê»Ò¤ÎÃͤ¬Ê£»¨¤¹¤®¤Þ¤¹"
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤Î½é´üÀßÄê»Ò¤ÎÃͤ¬¡¢ÉâÆ°¾®¿ôÅÀÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr "ÉÔÌÀ¤ÊÀßÄêºÑ¥³¥ó¥¹¥È¥é¥¯¥¿·¿¤Ç¤¹"
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "`%s' ¤Î weak Àë¸À¤ÏÄêµÁ¤è¤ê¤âÀè¤Ë¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: varasm.c:4221
+#: varasm.c:4241
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr ""
-#: varasm.c:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "`%s' ¤Î weak Àë¸À¤Ï public ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "%s: '%s' ¤ÎÀë¸À¤ÏÊÑ´¹¤µ¤ì¤Þ¤»¤ó\n"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï weak alias ¤·¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: varasm.c:4418
+#: varasm.c:4504
+msgid "%qD aliased to undefined symbol %qE"
+msgstr ""
+
+#: varasm.c:4532
#, fuzzy
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿"
@@ -7730,11 +7749,11 @@ msgid "debug: "
msgstr ""
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7761,205 +7780,212 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-#, fuzzy
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "RPTS ÍѤκÇÂçÈ¿Éü¿ô¤ò»ØÄꤹ¤ë"
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: params.def:145
+#: params.def:135
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: params.def:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: params.def:180
+#: params.def:170
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr ""
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr ""
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr ""
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr ""
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr ""
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr ""
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr ""
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr ""
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: params.def:340
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
#, fuzzy
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr "ÌÜΩ¤¿¤Ê¤¤¡¢¥³¥¹¥È¤Î¤«¤«¤ëºÇŬ²½¤ò¹Ô¤Ê¤¦"
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr ""
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr ""
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:424
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
#, fuzzy
msgid "The upper bound for sharing integer constants"
msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
@@ -8003,9 +8029,9 @@ msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
+#: config/darwin.c:1350
#, fuzzy
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿"
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -8066,16 +8092,16 @@ msgstr "#pragma %s ¤ÎËöÈø¤Ë¥´¥ß"
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
msgstr ""
-#: config/darwin.h:154
+#: config/darwin.h:157
#, fuzzy
msgid "Generate code suitable for fast turn around debugging"
msgstr "unix ¥¢¥»¥ó¥Ö¥é¤¬½èÍý¤Ç¤­¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/darwin.h:156
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
msgstr ""
@@ -8084,7 +8110,7 @@ msgstr ""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿"
@@ -8135,7 +8161,7 @@ msgstr "-mfp-rounding-mode ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "-mfp-trap-mode ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "-mips ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
@@ -8177,92 +8203,92 @@ msgstr "L%d ¥­¥ã¥Ã¥·¥å¥ì¥¤¥Æ¥ó¥·¤Ï %s ¤Ë¤È¤Ã¤ÆÉÔÌÀ¤Ç¤¹"
msgid "bad value %qs for -mmemory-latency"
msgstr "`%s' ¤Ï -mmemory-latency ¤Ë¤È¤Ã¤ÆÉÔÀµ¤ÊÃͤǤ¹"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "̵¸ú¤Ê %%H ÃÍ"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "̵¸ú¤Ê %%W ÃͤǤ¹"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "̵¸ú¤Ê %%r ÃÍ"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "̵¸ú¤Ê %%R ÃÍ"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "̵¸ú¤Ê %%N ÃÍ"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "̵¸ú¤Ê %%P ÃÍ"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "̵¸ú¤Ê %%h ÃÍ"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "̵¸ú¤Ê %%L ÃÍ"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "̵¸ú¤Ê %%m ÃÍ"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "̵¸ú¤Ê %%M ÃÍ"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "̵¸ú¤Ê %%U ÃÍ"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "̵¸ú¤Ê %%s ÃÍ"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "̵¸ú¤Ê %%C ÃÍ"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "̵¸ú¤Ê %%E ÃÍ"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
#, fuzzy
msgid "unknown relocation unspec"
msgstr "ÉÔÌÀ¤ÊÀßÄêºÑ¥³¥ó¥¹¥È¥é¥¯¥¿·¿¤Ç¤¹"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "̵¸ú¤Ê %%xn ¥³¡¼¥É"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
#, fuzzy
msgid "bad builtin fcode"
msgstr "ÁȤ߹þ¤ß¥Þ¥¯¥í \"%s\" ¤Ï̵¸ú¤Ç¤¹"
@@ -8280,14 +8306,14 @@ msgstr "ÁȤ߹þ¤ß¥Þ¥¯¥í \"%s\" ¤Ï̵¸ú¤Ç¤¹"
#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍÑ"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ·¤Ê¤¤"
@@ -8409,7 +8435,7 @@ msgstr "ÉâÆ°¾®¿ôÅÀÎã³°¤ËÍ¿¤¨¤é¤ì¤¿ÀºÅÙ¤òÀ©¸æ¤¹¤ë"
msgid "Tune expected memory latency"
msgstr "ͽ´ü¤µ¤ì¤ë¥á¥â¥ê¥ì¥¤¥Æ¥ó¥·¤òÄ´À°¤¹¤ë"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -8428,17 +8454,17 @@ msgstr "asm ¥Æ¥ó¥×¥ì¡¼¥È¤¬Ê¸»úÎóÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr ""
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, fuzzy, c-format
msgid "invalid operand to %%R code"
msgstr "%R ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, fuzzy, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "%H/%L ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, fuzzy, c-format
msgid "invalid operand to %%U code"
msgstr "%U ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
@@ -8450,175 +8476,175 @@ msgstr "%V ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É½ÐÎÏ¥³¡¼¥É"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "-mcpu=%s ¥¹¥¤¥Ã¥Á¤Ï -march= ¥¹¥¤¥Ã¥Á¤È¶¥¹ç¤·¤Þ¤¹"
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "ÃÍ (%s) ¤Ï %s switch ¤Ë¤È¤Ã¤ÆÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï interworking ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
#, fuzzy
msgid "target CPU does not support THUMB instructions"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï THUMB Ì¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
#, fuzzy
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Î¤ß¡¢°ÕÌ£¤Î¤¢¤ë¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹"
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
#, fuzzy
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Î¤ß¡¢Èï¸Æ¤Ó½Ð¤·Â¦ interworking ¤òÍ­¸ú¤Ë¤·¤Þ¤¹"
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
#, fuzzy
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr "Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Î¤ß¡¢¸Æ¤Ó½Ð¤·Â¦ interworking ¤òÍ­¸ú¤Ë¤·¤Þ¤¹"
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check ¤Ï -mno-apcs-frame ¤È¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic ¤È -mapcs-reent ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS ºÆÆþ²Äǽ¥³¡¼¥É¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g ¤Ë -mno-apcs-frame ¤ò¤Ä¤±¤ë¤È¡¢¤­¤áºÙ¤«¤Ê¥Ç¥Ð¥Ã¥°¤Ï¤Ç¤­¤Ê¤¤¤Ç¤·¤ç¤¦"
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
#, fuzzy
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤òÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ÇÅϤ¹¤³¤È¤Ï¡¢¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/arm/arm.c:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó %s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "̵¸ú¤ÊÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥È¥ª¥×¥·¥ç¥ó: -mfpe-%s"
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "̵¸ú¤ÊÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥È¥ª¥×¥·¥ç¥ó: -mfpe-%s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, fuzzy, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr "̵¸ú¤ÊÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥È¥ª¥×¥·¥ç¥ó: -mfpe-%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, fuzzy, c-format
msgid "structure size boundary can only be set to %s"
msgstr "¹½Â¤ÂΤΥµ¥¤¥º¶­³¦¤Ï 8 Ëô¤Ï 32 ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= ¤Ï -fpic ¤ò¤Ä¤±¤Ê¤¤¤ÈÌò¤ËΩ¤Á¤Þ¤»¤ó"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, fuzzy, c-format
msgid "unable to use '%s' for PIC register"
msgstr "'%s' ¤ò PIC ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "ʸ»úÌ¿Îá¤òÀ¸À®¤¹¤ë"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "%R ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
#, fuzzy
msgid "instruction never exectued"
msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
#, fuzzy
msgid "unable to compute real location of stacked parameter"
msgstr "¥¹¥¿¥Ã¥¯¤ËÀѤޤ줿²¾°ú¿ô¤Î¼ÂºÝ¤ÎÎΰè¤ò·×»»¤Ç¤­¤Þ¤»¤ó"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "¥»¥ì¥¯¥¿¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "¥Þ¥¹¥¯¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr "¹â°Ì¥ì¥¸¥¹¥¿¤ò pop ¤¹¤ë°Ù¤Ë»ÈÍѤǤ­¤ëÄã°Ì¥ì¥¸¥¹¥¿¤¬¤¢¤ê¤Þ¤»¤ó"
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
#, fuzzy
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "Thumb ¥â¡¼¥É¤Ç¤Ï³ä¤ê¹þ¤ß¥µ¡¼¥Ó¥¹¥ë¡¼¥Á¥ó¤ò¥³¡¼¥É²½¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
#, fuzzy
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "½é´ü²½¤µ¤ì¤¿ÊÑ¿ô `%s' ¤Ï dllimport ¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
@@ -8729,7 +8755,7 @@ msgstr "¹½Â¤ÂÎ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎºÇ¾®¥Ó¥Ã¥È¿ô¤ò»ØÄꤹ¤ë"
msgid "Specify the register to be used for PIC addressing"
msgstr "PIC ¥¢¥É¥ì¥·¥ó¥°¤ËÍøÍѤµ¤ì¤ë¥ì¥¸¥¹¥¿¤ò»ØÄꤹ¤ë"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
#, fuzzy
msgid "Specify an ABI"
msgstr "MIPS ISA ¤ò»ØÄꤹ¤ë"
@@ -8746,62 +8772,72 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr "´Ø¿ô¤Î dllimport °À­¤ò̵»ë¤¹¤ë"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "-mtiny-stack ¤Ë¤è¤ê¥é¡¼¥¸¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤¬Êѹ¹¤µ¤ì¤Þ¤¹(%d)"
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
#, fuzzy
msgid "internal compiler error. Bad address:"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼."
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
#, fuzzy
msgid "internal compiler error. Unknown mode:"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼."
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
#, fuzzy
msgid "invalid insn:"
msgstr "̵¸ú¤Ê #line"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
#, fuzzy
msgid "unknown move insn:"
msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
#, fuzzy
msgid "internal compiler error. Incorrect shift:"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼."
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
#, fuzzy
msgid "only initialized variables can be placed into program memory area"
msgstr "¥×¥í¥°¥é¥à¥á¥â¥êÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤ò½é´ü²½¤·¤Þ¤·¤¿"
-#: config/avr/avr.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
#, fuzzy
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr "8 ¥Ó¥Ã¥ÈÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: config/avr/avr.c:4615
+#: config/avr/avr.c:4728
#, c-format
msgid "MCU %qs supported for assembler only"
msgstr ""
@@ -9198,268 +9234,258 @@ msgstr "RPTS ÍѤκÇÂçÈ¿Éü¿ô¤ò»ØÄꤹ¤ë"
msgid "Select CPU to generate code for"
msgstr "¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë CPU ¤òÁªÂò¤¹¤ë"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
#, fuzzy
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "´Ø¿ô¤¬ __builtin_eh_return ¤ò»È¤¤¤Þ¤¹"
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
#, fuzzy
msgid "invalid operand for 'b' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
#, fuzzy
msgid "invalid operand for 'v' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
#, fuzzy
msgid "invalid operand for 'P' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
#, fuzzy
msgid "invalid operand for 'p' modifier"
msgstr "%p ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
#, fuzzy
msgid "invalid operand for 'z' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
#, fuzzy
msgid "invalid operand for 'H' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
#, fuzzy
msgid "bad register"
msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ¹¤ë"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
#, fuzzy
msgid "invalid operand for 'e' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
#, fuzzy
msgid "invalid operand for 'm' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
#, fuzzy
msgid "invalid operand for 'A' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
#, fuzzy
msgid "invalid operand for 'D' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
#, fuzzy
msgid "invalid operand for 'T' modifier"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
#, fuzzy
msgid "invalid operand modifier letter"
msgstr "̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É½ÐÎÏ¥³¡¼¥É"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "ÆâÉô¥¨¥é¡¼: "
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
#, fuzzy
msgid "unexpected operand"
msgstr "ͽ´ü¤µ¤ì¤ë¥á¥â¥ê¥ì¥¤¥Æ¥ó¥·¤òÄ´À°¤¹¤ë"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
#, fuzzy
msgid "unrecognized address"
msgstr "ǧ¼±ÉÔǽ¤Î¥¨¥¹¥±¡¼¥× \\r%c"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "ǧ¼±ÉÔǽ¤Î¥¨¥¹¥±¡¼¥× \\r%c"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, fuzzy, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "-mregparm=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/cris/cris.c:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
#, fuzzy
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr ""
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-#, fuzzy
-msgid "unexpected address expression"
-msgstr "']' ¤¬É¬Íפǡ¢Ìµ¸ú¤Ê·¿É½¸½¤Ç¤¹"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr ""
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
#, fuzzy
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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
#, fuzzy
msgid "Do not use condition codes from normal instructions"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
#, fuzzy
msgid "Do not tune stack alignment"
msgstr "¥¹¥¿¥Ã¥¯¥Ð¥¤¥¢¥¹¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
#, fuzzy
msgid "Do not tune writable data alignment"
msgstr "ʸ»úÎó¤ò½ñ¤­¹þ¤ß²Äǽ¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤Ë³ÊǼ¤¹¤ë"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
#, 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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
#, fuzzy
msgid "Generate code for the specified chip or CPU version"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
#, fuzzy
msgid "Tune alignment for the specified chip or CPU version"
msgstr "`%s' ¤ËÂФ·¤Æ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -9467,46 +9493,46 @@ msgstr ""
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, fuzzy, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %p ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, fuzzy, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %b ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, fuzzy, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %B ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, fuzzy, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: %A ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê±é»»»Ò¤Ç¤¹"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, fuzzy, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: ̵¸ú¤Ê %x ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, fuzzy, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: ̵¸ú¤Ê %F ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: ½èÍý¤µ¤ì¤Ê¤¤ MEM ¤Ç¤¹"
@@ -9514,145 +9540,141 @@ msgstr "fr30_print_operand: ½èÍý¤µ¤ì¤Ê¤¤ MEM ¤Ç¤¹"
msgid "Assume small address space"
msgstr "¥¹¥â¡¼¥ë¥¢¥É¥ì¥¹¶õ´Ö¤È¤ß¤Ê¤¹"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
#, fuzzy
msgid "Bad insn to frv_print_operand_address:"
msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+msgid "bad condition code"
+msgstr ""
+
+#: config/frv/frv.c:2796
#, fuzzy
msgid "Bad insn in frv_print_operand, bad const_double"
msgstr "¥ª¥Ú¥é¥ó¥É¤Ï const_double ¤Ç¤¹"
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr ""
-
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr ""
-
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr ""
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr ""
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr ""
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr ""
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr ""
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr ""
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
#, fuzzy
msgid "frv_print_operand: unknown code"
msgstr "fr30_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr ""
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr ""
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
#, fuzzy
msgid "accumulator is not a constant integer"
msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, c-format
msgid "inappropriate accumulator for %qs"
msgstr ""
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "̵¸ú¤Ê·¿°ú¿ô¤Ç¤¹"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, c-format
msgid "%qs expects a constant argument"
msgstr ""
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "±é»»»ÒÈֹ椬¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÈϰϳ°¤Ç¤¹"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9665,7 +9687,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr ""
@@ -9751,188 +9773,196 @@ msgstr "H8/300H ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
msgid "Use H8/300 alignment rules"
msgstr "H8/300 ¥¢¥é¥¤¥ó¥á¥ó¥Èµ¬Â§¤ò»ÈÍѤ¹¤ë"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, fuzzy, c-format
msgid "code model %s not supported in PIC mode"
msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "-mcmodel= ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤ÆÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, fuzzy, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
msgid "code model %<large%> not supported yet"
msgstr ""
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
#, fuzzy
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï THUMB Ì¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "-march= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, fuzzy, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
#, fuzzy
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
#, fuzzy
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
#, fuzzy
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, 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:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d ¤¬ 0 ¤«¤é 5 ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "-msdata ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
#, fuzzy
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï²Äȼ¹Իþ¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n"
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
#, fuzzy
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
#, fuzzy
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, fuzzy, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "-march= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
#, fuzzy
msgid "fastcall and stdcall attributes are not compatible"
msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
#, fuzzy
msgid "fastcall and regparm attributes are not compatible"
msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "3 ¤Ä¤Î 'l' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê UNSPEC"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
#, fuzzy
msgid "invalid constraints for operand"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê¼°"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
#, fuzzy
msgid "unknown insn mode"
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
#, fuzzy
msgid "shift must be an immediate"
msgstr "¥Þ¥¹¥¯¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
@@ -10037,175 +10067,175 @@ msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "¸Æ¤Ó½Ð¤·µ¬Ìó¤òÆþ¤ìÂؤ¨¤ë"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "ÉáÄ̤θƤӽФ·µ¬Ìó¤ò»È¤¦"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "double ¤ò dword ¶­³¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "double ¤ò word ¶­³¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ".bss ¤Ë¤¢¤ë¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ï½é´ü²½¤µ¤ì¤Ê¤¤"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ".data ¤Ë¤¢¤ë¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ï½é´ü²½¤µ¤ì¤Ê¤¤"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "ÉâÆ°¾®¿ôÅÀÈæ³Ó¤Ë IEEE µ¬³Ê¤ò»È¤¦"
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "ÉâÆ°¾®¿ôÅÀÈæ³Ó¤Ë IEEE µ¬³Ê¤ò»È¤ï¤Ê¤¤"
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr "FPU ¥ì¥¸¥¹¥¿Æâ¤Îµ¡Ç½¤ÎÃͤòÊÖ¤¹"
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr "FPU ¥ì¥¸¥¹¥¿Æâ¤Îµ¡Ç½¤ÎÃͤòÊÖ¤µ¤Ê¤¤"
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "FPU ÍѤΠsin, cos, sqrt ¤òÀ¸À®¤·¤Ê¤¤"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "FPU ÍѤΠsin, cos, sqrt ¤òÀ¸À®¤¹¤ë"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Ëöü¤Î´Ø¿ô¤Ç¤Ï¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ò¾Êά¤¹¤ë"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "¥¹¥¿¥Ã¥¯Ãµº÷¤òÍ­¸ú¤Ë¤¹¤ë"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "ʸ»úÎóÁàºî¤Î½ñ¹þ¤ßÀè¤ò¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr "ʸ»úÎóÁàºî¤Î½ñ¹þ¤ßÀè¤ò¥¢¥é¥¤¥ó¥á¥ó¥È¤·¤Ê¤¤"
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤¹¤ë"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤·¤Ê¤¤"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr "½ÐÎϤ¹¤ë°ú¿ô¤ò¥»¡¼¥Ö¤¹¤ë¤¿¤á push Ì¿Îá¤ò»È¤¦"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr "½ÐÎϤ¹¤ë°ú¿ô¤ò¥»¡¼¥Ö¤¹¤ë¤¿¤á¤Ë¤Ï push Ì¿Îá¤ò»È¤ï¤Ê¤¤"
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
#, fuzzy
msgid "Support MMX built-in functions"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
#, fuzzy
msgid "Do not support MMX built-in functions"
msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
#, fuzzy
msgid "Support 3DNow! built-in functions"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
#, fuzzy
msgid "Do not support 3DNow! built-in functions"
msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
#, fuzzy
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) ¤Ï 16 ¤È¤¹¤ë¡£"
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
#, fuzzy
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) ¤Ï 12 ¤È¤¹¤ë¡£"
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
#, fuzzy
msgid "Generate 64bit x86-64 code"
msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
#, fuzzy
msgid "Generate 32bit i386 code"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
#, fuzzy
msgid "Do not use red-zone in the x86-64 code"
msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -10219,57 +10249,57 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤ò¥¹¥±¥¸¥å¡¼¥ë¤¹¤ë"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
#, fuzzy
msgid "Generate floating point mathematics using given instruction set"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "¥ì¥¸¥¹¥¿¤Î¿ô¤¬À°¿ô¤ò°ú¿ô¤òÅϤ¹¤¿¤á¤Ë»È¤ï¤ì¤ë"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr "¥ë¡¼¥×¥³¡¼¥É¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr "¥¸¥ã¥ó¥×Àè¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr "´Ø¿ô¤Î³«»Ï°ÌÃÖ¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "¤Ç¤­¤ë¤À¤±¥¹¥¿¥Ã¥¯¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "¥Ö¥é¥ó¥Á¤Î¥³¥¹¥È¤ò»Ø¼¨¤¹¤ë (1-5, Ǥ°Õ¤Î¸Ä¿ô)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
#, fuzzy
msgid "Use given x86-64 code model"
msgstr "Í¿¤¨¤é¤ì¤¿ Sparc ¥³¡¼¥É¥â¥Ç¥ë¤ò»ÈÍѤ¹¤ë"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
#, fuzzy
msgid "Use given assembler dialect"
msgstr "DEC ¥¢¥»¥ó¥Ö¥éʸˡ¤ò»ÈÍѤ¹¤ë"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr ""
@@ -10312,64 +10342,64 @@ msgstr "ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤òÍøÍѤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
msgid "malformed #pragma builtin"
msgstr "¤ª¤«¤·¤Ê #pragma implementation"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
#, fuzzy
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "¥Ç¡¼¥¿Îΰè°À­¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
#, fuzzy
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "¥Ç¡¼¥¿Îΰè '%s' ¤ÏÁ°¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
#, fuzzy
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "¥Ç¡¼¥¿Îΰè°À­¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "-mfixed-range ¤ÎÃÍ¤Ï REG1-REG2 ·Á¼°¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s ¤¬¶õ¤ÎÈϰϤǤ¹"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
#, fuzzy
msgid "cannot optimize floating point division for both latency and throughput"
msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
#, fuzzy
msgid "cannot optimize integer division for both latency and throughput"
msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
#, fuzzy
msgid "cannot optimize square root for both latency and throughput"
msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, fuzzy, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
@@ -10377,183 +10407,179 @@ msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "GNU as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "GNU ld ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Intel ld ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "GP ¥ì¥¸¥¹¥¿ÉÔ»ÈÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr "³ÈÄ¥¥¢¥»¥ó¥Ö¥ê volatile ¤ÎÁ°¸å¤Ë stop ¥Ó¥Ã¥È¤òÁ÷½Ð¤¹¤ë"
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "³ÈÄ¥¥¢¥»¥ó¥Ö¥ê volatile ¤ÎÁ°¸å¤Ë stop ¥Ó¥Ã¥È¤òÁ÷½Ð¤¹¤ë"
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr "Itanium (TM) ¥×¥í¥»¥Ã¥µ B step ÍÑ¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "in/loc/out ¥ì¥¸¥¹¥¿Ì¾¤ò»ÈÍѤ¹¤ë"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss ¤Î»ÈÍѤò̵¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss ¤Î»ÈÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp ¤òÄê¿ô¤È¤¹¤ë¡Êâ¡¢´ÖÀܸƤӽФ·¤Ç¤Ï gp ¤ò save/restore ¤¹¤ë¡Ë"
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "¼«¸ÊºÆÇÛÃÖ²Äǽ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
#, fuzzy
msgid "Generate inline floating point division, optimize for latency"
msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
#, fuzzy
msgid "Generate inline floating point division, optimize for throughput"
msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
#, fuzzy
msgid "Do not inline floating point division"
msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤·¤Ê¤¤"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
#, fuzzy
msgid "Generate inline integer division, optimize for latency"
msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
#, fuzzy
msgid "Generate inline integer division, optimize for throughput"
msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
#, fuzzy
msgid "Generate inline square root, optimize for latency"
msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
#, fuzzy
msgid "Generate inline square root, optimize for throughput"
msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
#, fuzzy
msgid "Do not inline square root"
msgstr "Visual Ì¿Î᥻¥Ã¥È¤òÍøÍѤ·¤Ê¤¤"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "GNU as ¤òÄ̤¸¤¿ Dwarf2 ¤Î¹Ô¥Ç¥Ð¥Ã¥°¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "GNU as ¤òÄ̤¸¤¿ Dwarf2 ¤Î¹Ô¥Ç¥Ð¥Ã¥°¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
#, fuzzy
msgid "Disable earlier placing stop bits"
msgstr "ÊÂÎóÌ¿Îá¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
#, fuzzy
msgid "Specify range of registers to make fixed"
msgstr "¸ÇÄꤹ¤ë¤¿¤á¤Î¥ì¥¸¥¹¥¿¤ÎÈϰϤò»ØÄꤹ¤ë"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
#, fuzzy
msgid "bad operand"
msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, fuzzy, c-format
msgid "The compiler does not support -march=%s."
msgstr "¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ï -mabi ¥¹¥¤¥Ã¥Á¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr "gp_offset (%ld) Ëô¤Ï end_offset (%ld) ¤¬¥¼¥í¤è¤ê¤â¾®¤µ¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, null ¥Ý¥¤¥ó¥¿"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ÉÔÌÀ¤Ê¶çÆÉÅÀ '%c'"
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, fuzzy, c-format
msgid "invalid %%P operand"
msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "̵¸ú¤Ê %%p ÃͤǤ¹"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "̵¸ú¤ÊÍÑË¡¤Î of %%d, %%x, Ëô¤Ï %%X"
@@ -10570,91 +10596,91 @@ msgstr "GP ´ØÏ¢ sdata/sbss ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "GP ´ØÏ¢ sdata/sbss ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "RAM ¤ÎÂå¤ï¤ê¤Ë ROM ¤òÍøÍѤ¹¤ë"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "RAM ¤ÎÂå¤ï¤ê¤Ë ROM ¤òÍøÍѤ·¤Ê¤¤"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤¯(Í× -membedded-data)"
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¤¿¤á¤Ë CPU ¤ò»ØÄꤹ¤ë"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
#, fuzzy
msgid "Specify CPU for code generation purposes"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¤¿¤á¤Ë CPU ¤ò»ØÄꤹ¤ë"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "-mmodel ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "-msdata ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, fuzzy, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "-msdata ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, fuzzy, c-format
msgid "invalid operand to %%s code"
msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, fuzzy, c-format
msgid "invalid operand to %%p code"
msgstr "%p ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, fuzzy, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "%T/%B ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, fuzzy, c-format
msgid "invalid operand to %%N code"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
#, fuzzy
msgid "pre-increment address is not a register"
msgstr "`%d' ¥ª¥Ú¥é¥ó¥É¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
#, fuzzy
msgid "pre-decrement address is not a register"
msgstr "thumb_load_double_from_address: ¥Ù¡¼¥¹¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
#, fuzzy
msgid "bad address"
msgstr "ÉÔÀµ¤Ê¥Ø¥Ã¥À¥Ð¡¼¥¸¥ç¥ó"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
#, fuzzy
msgid "lo_sum not of register"
msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ·¤Ê¤¤"
@@ -10684,12 +10710,12 @@ msgstr "¥³¡¼¥É¥µ¥¤¥º: small, medium Ëô¤Ï large"
msgid "Small data area: none, sdata, use"
msgstr "¥¹¥â¡¼¥ë¥Ç¡¼¥¿Îΰè: none, sdata, use"
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
#, fuzzy
msgid "Don't call any cache flush functions"
msgstr "´Ø¿ô %s ¤Ë¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr ""
@@ -10706,54 +10732,54 @@ msgstr ""
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "-f%s ¤Ï 68HC11/68HC12 ÍѤȤ·¤Æ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿ (¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó)"
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr ""
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
msgstr ""
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
#, fuzzy
msgid "invalid register in the move instruction"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
#, fuzzy
msgid "invalid register in the instruction"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
#, fuzzy
msgid "operand 1 must be a hard register"
msgstr "`%d' ¥ª¥Ú¥é¥ó¥É¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
#, fuzzy
msgid "invalid rotate insn"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
#, fuzzy
msgid "invalid Z register replacement for insn"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
@@ -10855,7 +10881,7 @@ msgstr "-C ¤È -o ¤ÏξÊý¤ò°ì½ï¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó"
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr "º£¤Î¤È¤³¤í 68000 ¤ä 68010 ¤Ç¤Ï -fPIC ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
@@ -11017,7 +11043,7 @@ msgstr "ÉáÄ̤θƤӽФ·µ¬Ìó¤ò»È¤¦"
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "`-mstack-increment=%s' ¤Ï̵¸ú¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹"
@@ -11077,140 +11103,141 @@ msgstr "M*Core M340 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
msgid "Maximum amount for a single stack increment operation"
msgstr "ñ°ì¥¹¥¿¥Ã¥¯¥¤¥ó¥¯¥ê¥á¥ó¥ÈÁàºî¤ÎºÇÂçÃÍ"
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
#, fuzzy
msgid "-mgp32 used with a 64-bit ABI"
msgstr "64 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
#, fuzzy
msgid "-mgp64 used with a 32-bit ABI"
msgstr "32 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, fuzzy, c-format
msgid "unsupported combination: %s"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr ""
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î PIC ¥³¡¼¥É¤È¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
#, fuzzy
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-frepo ¤Ï -c ÉÕ¤­¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%( ¤Ê¤·¤Î %%) ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%[ ¤Ê¤·¤Î %%] ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%< ¤Ê¤·¤Î %%> ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%{ ¤Ê¤·¤Î %%} ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, fuzzy, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ÉÔÌÀ¤Ê¶çÆÉÅÀ '%c'"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿"
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "̵¸ú¤Ê %%W ÃͤǤ¹"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "`%s' ¤Ø¤ÎÌ·½â¤·¤¿¸Æ¤Ó½Ð¤·¤òÊ᪤Ǥ­¤Þ¤»¤ó"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
#, fuzzy
msgid "the cpu name must be lower case"
msgstr "¥·¥ó¥Ü¥ë̾¤ò¾®Ê¸»ú¤È¤¹¤ë"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, fuzzy, c-format
msgid "bad value (%s) for %s"
msgstr "ÃÍ (%s) ¤Ï %s switch ¤Ë¤È¤Ã¤ÆÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11220,66 +11247,66 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "64 ¥Ó¥Ã¥È int ·¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "64 ¥Ó¥Ã¥È long ·¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "32 ¥Ó¥Ã¥È long ·¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "lui/addiu ¥¢¥É¥ì¥¹¥í¡¼¥É¤òºÇŬ²½¤¹¤ë"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr "lui/addiu ¥¢¥É¥ì¥¹¥í¡¼¥É¤òºÇŬ²½¤·¤Ê¤¤"
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
msgstr ""
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
#, fuzzy
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "GP ´ØÏ¢ sdata/sbss ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
#, fuzzy
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "GP ´ØÏ¢ sdata/sbss ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
#, fuzzy
msgid "Output compiler statistics (now ignored)"
msgstr "¥³¥ó¥Ñ¥¤¥éÅý·×¤ò½ÐÎϤ¹¤ë"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "¥³¥ó¥Ñ¥¤¥éÅý·×¤ò½ÐÎϤ·¤Ê¤¤"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "¥Ö¥í¥Ã¥¯°ÜÆ°¤òºÇŬ²½¤·¤Ê¤¤"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "¥Ö¥í¥Ã¥¯°ÜÆ°¤òºÇŬ²½¤¹¤ë"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "asm ¸å²áÄø¤Ç mips-tfile ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "asm ¸å²áÄø¤Ç mips-tfile ¤òÍøÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "¥½¥Õ¥ÈÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
@@ -11289,209 +11316,209 @@ 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "64 ¥Ó¥Ã¥È FP ¥ì¥¸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "32 ¥Ó¥Ã¥È FP ¥ì¥¸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "64 ¥Ó¥Ã¥È°ìÈ̥쥸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "32 ¥Ó¥Ã¥È°ìÈ̥쥸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Irix PIC ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "Irix PIC ¤òÍøÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "´ÖÀܸƤӽФ·¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "´ÖÀܸƤӽФ·¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥Ð¥¤¥È½ç¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥Ð¥¤¥È½ç¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "ñÀºÅÙ(32bit) FP ¤Î¤ß¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "ñÀºÅÙ(32bit) FP °Ê³°¤âÍøÍѤ¹¤ë"
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "MIPS16 Ì¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "¾è»»Ì¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "¾è»»¡¦²Ã»»Ì¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤¹¤ë"
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
#, fuzzy
msgid "Perform VR4130-specific alignment optimizations"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
#, fuzzy
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤ï¤Ê¤¤"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤¦"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤ï¤Ê¤¤"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
#, fuzzy
msgid "Work around R4000 errata"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤¦"
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
#, fuzzy
msgid "Don't work around R4000 errata"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤ï¤Ê¤¤"
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
#, fuzzy
msgid "Work around R4400 errata"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤¦"
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
#, fuzzy
msgid "Don't work around R4400 errata"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤ï¤Ê¤¤"
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
#, fuzzy
msgid "Don't work around certain VR4120 errata"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤ï¤Ê¤¤"
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤¹¤ë"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤·¤Ê¤¤"
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
#, fuzzy
msgid "Use trap to check for integer divide by zero"
msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤¹¤ë"
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
#, fuzzy
msgid "Use break to check for integer divide by zero"
msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤¹¤ë"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
#, fuzzy
msgid "Generate mips16 code"
msgstr "SA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
#, fuzzy
msgid "Generate normal-mode code"
msgstr "SA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "Í­¸ú¥ª¥×¥·¥ç¥ó: "
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "Í­¸ú¥ª¥×¥·¥ç¥ó: "
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
#, fuzzy
msgid "Specify a Standard MIPS ISA"
msgstr "MIPS ISA ¤ò»ØÄꤹ¤ë"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "mips16 ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë"
@@ -11518,70 +11545,70 @@ msgstr ""
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr ""
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr ""
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
#, fuzzy
msgid "MMIX Internal: This is not a constant:"
msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
@@ -11663,16 +11690,16 @@ msgstr "noreturn ´Ø¿ô¤¬ return ¤¹¤ë¤È¤­ abort ¤Î¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë"
msgid "Do not generate a single exit point for each function"
msgstr "multm Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "AM33 ¥×¥í¥»¥Ã¥µ¤ò¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
#, fuzzy
msgid "Target the AM33/2.0 processor"
msgstr "AM33 ¥×¥í¥»¥Ã¥µ¤ò¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
#, fuzzy
msgid "Enable linker relaxations"
msgstr "¥ê¥ó¥«¤Î´ËϤòÍ­¸ú¤Ë¤¹¤ë"
@@ -11759,7 +11786,7 @@ msgstr "\"¥¹¥â¡¼¥ë¥ì¥¸¥¹¥¿¥¯¥é¥¹\" ¤Î¥Ä¥®¥Ï¥®(kludge)¤ò¹Ô¤Ê¤¦"
msgid "No \"Small register classes\" kludge"
msgstr "\"¥¹¥â¡¼¥ë¥ì¥¸¥¹¥¿¥¯¥é¥¹\" ¤Î¥Ä¥®¥Ï¥®(kludge)¤ò¹Ô¤Ê¤ï¤Ê¤¤"
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, fuzzy, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11768,7 +11795,7 @@ msgstr ""
"ÉÔÌÀ¤Ê -mschedule= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 700, 7100, 7100LC, 7200, µÚ¤Ó 8000 ¤Ç¤¹\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, fuzzy, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11777,7 +11804,7 @@ msgstr ""
"ÉÔÌÀ¤Ê -march= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 1.0, 1.1, µÚ¤Ó 2.0\n"
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11786,7 +11813,7 @@ msgstr ""
"ÉÔÌÀ¤Ê -march= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 1.0, 1.1, µÚ¤Ó 2.0\n"
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11795,7 +11822,7 @@ msgstr ""
"ÉÔÌÀ¤Ê -march= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 1.0, 1.1, µÚ¤Ó 2.0\n"
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, fuzzy, c-format
msgid ""
"unknown -munix= option (%s).\n"
@@ -11804,29 +11831,34 @@ msgstr ""
"ÉÔÌÀ¤Ê -march= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 1.0, 1.1, µÚ¤Ó 2.0\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï²Äȼ¹Իþ¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n"
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï¹â®´ÖÀܸƤӽФ·¤ÈÁêÍƤì¤Þ¤»¤ó\n"
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g ¤Ï¤³¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï GAS ¤ò»ÈÍѤ¹¤ë»þ¤À¤±¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹"
-#: config/pa/pa.c:486
+#: config/pa/pa.c:494
#, fuzzy
msgid "-g option disabled"
msgstr "-g ¥ª¥×¥·¥ç¥ó¤ò̵¸ú²½¤·¤Þ¤·¤¿¡£"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
#, fuzzy
msgid "Generate cpp defines for server IO"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
#, fuzzy
msgid "Generate cpp defines for workstation IO"
msgstr "11/40 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
@@ -11990,11 +12022,11 @@ msgstr "¸ÇÄꤹ¤ë¤¿¤á¤Î¥ì¥¸¥¹¥¿¤ÎÈϰϤò»ØÄꤹ¤ë"
msgid "Specify CPU for scheduling purposes."
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¤¿¤á¤Ë CPU ¤ò»ØÄꤹ¤ë"
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -12136,214 +12168,242 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr "#pragma map ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥·¥¹¥Æ¥à¾å¤Ç¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥·¥¹¥Æ¥à¾å¤Ç¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, fuzzy, c-format
msgid "unknown -mdebug-%s switch"
msgstr "ÉÔÌÀ¤Ê -mdebug-%s ¥¹¥¤¥Ã¥Á¤Ç¤¹"
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó `-mshort-data-%s'"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
msgid "argument 1 must be a 5-bit signed literal"
msgstr ""
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
#, fuzzy
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/rs6000/rs6000.c:6802
+#: config/rs6000/rs6000.c:6901
#, fuzzy
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
#, fuzzy
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/rs6000/rs6000.c:7571
+#: config/rs6000/rs6000.c:7670
#, fuzzy
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "̵¸ú¤Ê %%f ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "̵¸ú¤Ê %%F ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "̵¸ú¤Ê %%G ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "̵¸ú¤Ê %%j ¥³¡¼¥É¤Ç¤¹"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "̵¸ú¤Ê %%J ¥³¡¼¥É¤Ç¤¹"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "̵¸ú¤Ê %%k ÃÍ"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "̵¸ú¤Ê %%K ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "̵¸ú¤Ê %%O ÃÍ"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "̵¸ú¤Ê %%q ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "̵¸ú¤Ê %%S ÃÍ"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "̵¸ú¤Ê %%T ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "̵¸ú¤Ê %%u ÃͤǤ¹"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "̵¸ú¤Ê %%v ÃͤǤ¹"
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "%s ¤ÏÂ礭¤¹¤®¤Þ¤¹"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
msgstr ""
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
-msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤¹¤ë"
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
-msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤·¤Ê¤¤"
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "ÊÂÎó´Ä¶­¤Ç¤Î¥á¥Ã¥»¡¼¥¸¥Ñ¥Ã¥·¥ó¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
@@ -12410,17 +12470,17 @@ msgstr "PowerPC64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ê¤¤¤È -maix64 ¤òÍ­¸ú¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
msgid "-m64 not supported in this configuration"
msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
#, fuzzy
msgid "-m64 requires a PowerPC64 cpu"
msgstr "PowerPC64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ê¤¤¤È -maix64 ¤òÍ­¸ú¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
#, fuzzy
msgid "Call mcount for profiling before a function prologue"
msgstr "´Ø¿ô¤Î³«»ÏÉôʬ¤ËÌ¿Îá¤ò°ÜÆ°¤·¤Ê¤¤"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
#, fuzzy
msgid "Call mcount for profiling after a function prologue"
msgstr "´Ø¿ô¤Î³«»ÏÉôʬ¤ËÌ¿Îá¤ò°ÜÆ°¤·¤Ê¤¤"
@@ -12579,7 +12639,7 @@ msgstr "ʸ»úÌ¿Îá¤òÀ¸À®¤¹¤ë"
msgid "Do not generate single field mfcr instruction"
msgstr "ʸ»úÌ¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Í¿¤¨¤é¤ì¤¿ CPU ÍѤε¡Ç½¤È¥¹¥±¥¸¥å¡¼¥ë¥³¡¼¥É¤òÍøÍѤ¹¤ë"
@@ -12655,7 +12715,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
@@ -12824,83 +12884,87 @@ msgstr "-mcall-aixdesc ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
msgid "-m%s not supported in this configuration"
msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr ""
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "VAX ÉâÆ°¾®¿ô¤Ç¤Ï¥È¥é¥Ã¥×¥â¡¼¥É¤òÍøÍѤǤ­¤Þ¤»¤ó"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr ""
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "-mcall-%s ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "-msdata=%s ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "-msdata=%s ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
#, fuzzy
msgid "Cannot decompose address."
msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤òÍøÍѤ·¤Ê¤¤"
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -13000,30 +13064,30 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
#, fuzzy
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs attribute only applies to interrupt functions"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs attribute argument not a string constant"
msgstr "asm ¥Æ¥ó¥×¥ì¡¼¥È¤¬Ê¸»úÎóÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
@@ -13057,7 +13121,7 @@ msgstr "ÀÅŪÊÑ¿ô `%s' ¤Ï dllimport ¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, fuzzy, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)"
@@ -13070,183 +13134,183 @@ msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)"
msgid "Profiling is not supported on this target."
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "̵¸ú¤Ê %%Y ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "̵¸ú¤Ê %%A ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "̵¸ú¤Ê %%B ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "̵¸ú¤Ê %%c ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "̵¸ú¤Ê %%C ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "̵¸ú¤Ê %%d ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "̵¸ú¤Ê %%D ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "̵¸ú¤Ê %%f ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, fuzzy, c-format
msgid "invalid %%s operand"
msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr "long long Äê¿ô¤ÏÀµ¾ï¤Ê¨ÃÍ¥ª¥Ú¥é¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr "ÉâÆ°¾®¿ôÄê¿ô¤ÏÀµ¾ï¤Ê¨ÃÍ¥ª¥Ú¥é¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "64 ¥Ó¥Ã¥È long double ¤ò»ÈÍѤ¹¤ë"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "128 ¥Ó¥Ã¥È¤Î long double ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr "¥Ç¡¼¥¿¤Î¥Ð¥¤¥È½ç¤Ë¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "double ¤¬¸í¤Ã¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤È¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤È¤ß¤Ê¤¹"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Á´¤Æ¤Î double ¤ò¥¢¥é¥¤¥ó¤µ¤ì¤¿¤â¤Î¤È¤ß¤Ê¤¹"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "¥ê¥ó¥«¤Ë -assert pure-text ¤òÅϤ¹"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "¥ê¥ó¥«¤Ë -assert pure-text ¤òÅϤµ¤Ê¤¤"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "ABI ͽÌó¥ì¥¸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "ABI ͽÌó¥ì¥¸¥¹¥¿¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "»ÍÇÜÀºÅÙÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "»ÍÇÜÀºÅÙÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "v8plus ABI ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "v8plus ABI ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Visual Ì¿Î᥻¥Ã¥È¤òÍøÍѤ¹¤ë"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "Visual Ì¿Î᥻¥Ã¥È¤òÍøÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "¥Ý¥¤¥ó¥¿¤ò 64 ¥Ó¥Ã¥È¤È¤¹¤ë"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "¥Ý¥¤¥ó¥¿¤ò 32 ¥Ó¥Ã¥È¤È¤¹¤ë"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "32 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "64 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "¥¹¥¿¥Ã¥¯¥Ð¥¤¥¢¥¹¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "¥¹¥¿¥Ã¥¯¥Ð¥¤¥¢¥¹¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr "¥À¥Ö¥ë¥ï¡¼¥É¥³¥Ô¡¼ÍѤζ¯¤¯¥¢¥é¥¤¥ó¤µ¤ì¤¿¹½Â¤ÂΤò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "¥À¥Ö¥ë¥ï¡¼¥É¥³¥Ô¡¼ÍѤζ¯¤¯¥¢¥é¥¤¥ó¤µ¤ì¤¿¹½Â¤ÂΤò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr "¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ÇËöÈø¸Æ¤Ó½Ð¤·Ì¿Îá¤òºÇŬ²½¤¹¤ë"
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ÇËöÈø¸Æ¤Ó½Ð¤·Ì¿Îá¤òºÇŬ²½¤·¤Ê¤¤"
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
#, fuzzy
msgid "Use given SPARC code model"
msgstr "Í¿¤¨¤é¤ì¤¿ Sparc ¥³¡¼¥É¥â¥Ç¥ë¤ò»ÈÍѤ¹¤ë"
@@ -13363,65 +13427,65 @@ msgstr "#pragma ghs endsda ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
msgid "junk at end of #pragma ghs endzda"
msgstr "#pragma ghs ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, fuzzy, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s ¤Ï¿ôÃͤǤϤ¢¤ê¤Þ¤»¤ó"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "%s=%s ¤ÏÂ礭¤¹¤®¤Þ¤¹¡£"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
#, fuzzy
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "¥Ç¡¼¥¿Îΰè°À­¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "¥Ç¡¼¥¿Îΰè '%s' ¤ÏÁ°¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, fuzzy, c-format
msgid "bogus JR construction: %d\n"
msgstr "¸íËâ²½¤µ¤ì¤¿ JR ¹½Â¤: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, fuzzy, c-format
msgid "bad amount of stack space removal: %d"
msgstr "¥¹¥¿¥Ã¥¯¶õ´Öºï½üÎ̤¬ÉÔÀµ¤Ç¤¹: %d"
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, fuzzy, c-format
msgid "bogus JARL construction: %d\n"
msgstr "¸íËâ²½¤µ¤ì¤¿ JARL ¹½Â¤: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, fuzzy, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "¸íËâ²½¤µ¤ì¤¿ JR ¹½Â¤: %d\n"
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, fuzzy, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "¸íËâ²½¤µ¤ì¤¿ JARL ¹½Â¤: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, fuzzy, c-format
msgid "Too much stack space to prepare: %d"
msgstr "¥¹¥¿¥Ã¥¯¶õ´Öºï½üÎ̤¬ÉÔÀµ¤Ç¤¹: %d"
@@ -13613,12 +13677,12 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr "ÁȤ߹þ¤ß¤Î½ü»»Ì¿Îá¤ò»ÈÍѤ¹¤ë"
-#: ada/misc.c:258
+#: ada/misc.c:257
#, fuzzy, c-format
msgid "missing argument to \"-%s\""
msgstr "`%s' ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: ada/misc.c:299
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
@@ -13626,564 +13690,583 @@ msgstr ""
msgid "unable to call pointer to member function here"
msgstr "¤³¤³¤Ç¤Ï¥á¥ó¥Ð´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤¬¤Ç¤­¤Þ¤»¤ó"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2378
+#: cp/call.c:2385
#, fuzzy
msgid "%s %D(%T) <built-in>"
msgstr "<ÁȤ߹þ¤ß>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr ""
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
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:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2959
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
-#: cp/call.c:2968
+#: cp/call.c:2974
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:3015
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:3020
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:3025
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:3028
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ ¤ÏÃæ´Ö¹à¤¬¾Êά¤µ¤ì¤¿ ?: ¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/call.c:3195
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr ""
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: cp/call.c:3405
+#: cp/call.c:3412
#, fuzzy
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹"
-#: cp/call.c:3700
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:3753
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
msgstr ""
-#: cp/call.c:3755
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
msgstr ""
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: cp/call.c:4044
+#: cp/call.c:4052
#, fuzzy
msgid "no suitable %<operator %s> for %qT"
msgstr "¤¢¤ê¤¨¤Ê¤¤±é»»»Ò '%s'"
-#: cp/call.c:4061
+#: cp/call.c:4069
msgid "%q+#D is private"
msgstr ""
-#: cp/call.c:4063
+#: cp/call.c:4071
msgid "%q+#D is protected"
msgstr ""
-#: cp/call.c:4065
+#: cp/call.c:4073
msgid "%q+#D is inaccessible"
msgstr ""
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr ""
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: cp/call.c:4300
+#: cp/call.c:4177
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr ""
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/call.c:4191
+msgid "converting to %qT from %qT"
+msgstr ""
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/call.c:4203
+msgid "converting negative value %qE to %qT"
+msgstr ""
+
+#: cp/call.c:4345
msgid "cannot bind bitfield %qE to %qT"
msgstr ""
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
msgid "cannot bind packed field %qE to %qT"
msgstr ""
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "¥½¡¼¥¹ %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: cp/call.c:4401
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
-#: cp/call.c:4470
+#: cp/call.c:4529
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr ""
-#: cp/call.c:4675
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:4694
+#: cp/call.c:4753
msgid "%qT is not an accessible base of %qT"
msgstr ""
-#: cp/call.c:4944
+#: cp/call.c:5003
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "´Ø¿ô %s ¤Ë¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: cp/call.c:5231
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/call.c:5310
+#: cp/call.c:5367
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr ""
-#: cp/call.c:5328
+#: cp/call.c:5385
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:5352
+#: cp/call.c:5409
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:5957
+#: cp/call.c:6014
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Þ¤»¤ó"
-#: cp/call.c:6016
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr ""
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "0x%l.8x ¤òÎΰè¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/call.c:6411
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr ""
-#: cp/call.c:6415
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:273
+#: cp/class.c:272
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr ""
-#: cp/class.c:898
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+#: cp/class.c:929
+msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:899
-msgid "Java class %qT cannot have a destructor"
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:998
+#: cp/class.c:1031
msgid "%q#D and %q#D cannot be overloaded"
msgstr ""
-#: cp/class.c:1055
+#: cp/class.c:1088
#, fuzzy
msgid "conflicting access specifications for method %qD, ignored"
msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤ËÂФ¹¤ë¥¢¥¯¥»¥¹»ØÄê»Ò¤¬¶¥¹ç¤·¤¿¤¿¤á¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:1058
+#: cp/class.c:1091
#, fuzzy, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤ËÂФ¹¤ë¥¢¥¯¥»¥¹»ØÄê»Ò¤¬¶¥¹ç¤·¤¿¤¿¤á¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:1108
+#: cp/class.c:1141
msgid "%qD names constructor"
msgstr ""
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "%s: ̵¸ú¤Ê¥ª¥×¥·¥ç¥ó -- %c\n"
-#: cp/class.c:1121
+#: cp/class.c:1154
msgid "no members matching %qD in %q#T"
msgstr ""
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "%s: ̵¸ú¤Ê¥ª¥×¥·¥ç¥ó -- %c\n"
-#: cp/class.c:1154
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
msgstr ""
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: cp/class.c:1226
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr ""
-
-#: cp/class.c:1534
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1545
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1585
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:1923
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
msgid "%qD was hidden"
msgstr ""
-#: cp/class.c:2380
+#: cp/class.c:2410
msgid " by %qD"
msgstr ""
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2545
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬ 0 ¤Ç¤¹"
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹"
-#: cp/class.c:2649
+#: cp/class.c:2671
msgid "%qD is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:2711
+#: cp/class.c:2731
msgid "member %q#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:2714
+#: cp/class.c:2734
msgid "member %q#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:2717
+#: cp/class.c:2737
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "¶¦ÍÑÂνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
msgid "%qD may not be static because it is a member of a union"
msgstr ""
-#: cp/class.c:2875
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2895
msgid "field %qD in local class cannot be static"
msgstr ""
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
-#: cp/class.c:2929
+#: cp/class.c:2939
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2977
+#: cp/class.c:2986
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2992
+#: cp/class.c:3001
msgid "field %q#D with same name as class"
msgstr ""
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/class.c:3030
+#: cp/class.c:3038
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3032
+#: cp/class.c:3040
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:3043
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3468
+#: cp/class.c:3476
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3588
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "²¾ÁÛ´Ø¿ô¤ò»ÈÍѤ¹¤ë¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹"
-#: cp/class.c:4321
+#: cp/class.c:4333
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4432
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4432
+#: cp/class.c:4444
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4603
+#: cp/class.c:4621
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4683
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4693
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:5019
+#: cp/class.c:5042
#, fuzzy
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: cp/class.c:5114
+#: cp/class.c:5139
#, fuzzy
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr "¹½Ê¸²òÀϤ¬¹½Â¤ÂΤνª¤ê¤Ëº¹¤·³Ý¤«¤ê¤Þ¤·¤¿¤¬¡¢Á°¤Î¥¨¥é¡¼¤Î¤»¤¤¤Çʸ̮¤ò¸«¼º¤¤¤Þ¤·¤¿"
-#: cp/class.c:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "¸À¸ìʸ»úÎó `\"%s\"' ¤Ïǧ¼±¤µ¤ì¤Þ¤»¤ó"
-#: cp/class.c:5617
+#: cp/class.c:5642
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5767
msgid "no matches converting function %qD to type %q#T"
msgstr ""
-#: cp/class.c:5765
+#: cp/class.c:5790
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr ""
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/class.c:5794
+#: cp/class.c:5819
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "ÉÔ½½Ê¬¤Ê·¿¾ðÊó"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ë°ìÃפ·¤Þ¤»¤ó"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹"
@@ -14192,12 +14275,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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:6273
+#: cp/class.c:6269
msgid "changes meaning of %qD from %q+#D"
msgstr ""
@@ -14219,188 +14302,197 @@ msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr ""
-#: cp/cvt.c:499
+#: cp/cvt.c:497
msgid "conversion from %qT to %qT discards qualifiers"
msgstr ""
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
msgid "casting %qT to %qT does not dereference pointer"
msgstr ""
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
#, fuzzy
msgid "%q#T used where a %qT was expected"
msgstr "Ê£ÁÇ¿ô·¿¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢¥Ý¥¤¥ó¥¿Ãͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/cvt.c:718
+#: cp/cvt.c:717
#, fuzzy
msgid "%q#T used where a floating point value was expected"
msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢¥Ý¥¤¥ó¥¿Ãͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "Èó¥¹¥«¥é¡¼·¿¤Ø¤ÎÊÑ´¹¤¬Í׵ᤵ¤ì¤Þ¤¹"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+msgid "pseudo-destructor is not called"
+msgstr ""
+
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:856
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:872
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, fuzzy, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "À©¸æ¤¬Èó void ´Ø¿ô¤Î½ª¤ê¤ËÅþ㤷¤Þ¤·¤¿"
#. Only warn when there is no &.
-#: cp/cvt.c:894
+#: cp/cvt.c:898
#, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, fuzzy, c-format
msgid "%s has no effect"
msgstr "%s¤¬%s¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»È¤¤ÀڤäƤ¤¤Þ¤»¤ó\n"
+
+#: cp/cvt.c:1049
#, fuzzy
msgid "converting NULL to non-pointer type"
msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
msgid "ambiguous default type conversion from %qT"
msgstr ""
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "`%s' ¤Ï `extern' ¤ÈÀë¸À¤µ¤ì¡¢¸å¤Ç `static' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "´Ø¿ô¤¬Â礭¤¹¤®¤Æ inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "´Ø¿ô¤¬Â礭¤¹¤®¤Æ inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "`enum %s' ¤ÎºÆÀë¸À"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÀë¸À¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
@@ -14412,74 +14504,74 @@ msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
msgid "declaration of namespace %qD conflicts with"
msgstr ""
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
#, fuzzy
msgid "%Jfollows non-prototype definition here"
msgstr "Èó¥×¥í¥È¥¿¥¤¥×ÄêµÁ¤¬¤³¤³¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
msgid "default argument given for parameter %d of %q#D"
msgstr ""
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
msgid "after previous specification in %q#D"
msgstr ""
-#: cp/decl.c:1550
+#: cp/decl.c:1415
msgid "%q#D was used before it was declared inline"
msgstr ""
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "`%s' ¤Î¾éĹ¤ÊºÆÀë¸À¤¬Æ±°ì¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
@@ -14492,239 +14584,239 @@ 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:1852
+#: cp/decl.c:1724
msgid "explicit specialization of %qD after first use"
msgstr ""
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "¥é¥Ù¥ë %s ¤¬¤¢¤é¤æ¤ë´Ø¿ô¤Î³°Â¦¤Ç»²¾È¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
#, fuzzy
msgid "%H from here"
msgstr " ¤³¤³¤«¤é"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
msgid " enters scope of non-POD %q#D"
msgstr ""
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " try ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " catch ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " ¤³¤³¤«¤é"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
#, fuzzy
msgid "%J enters catch block"
msgstr " catch ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr "½é´ü²½"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
msgid "%qD used without template parameters"
msgstr ""
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
msgid "no type named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "²¾°ú¿ô `%s' ¤Î·¿¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:3466
+#: cp/decl.c:3362
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3470
+#: cp/decl.c:3366
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3474
+#: cp/decl.c:3370
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "`enum %s' ¤ÎºÆÀë¸À"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
#, fuzzy
msgid "missing type-name in typedef-declaration"
msgstr "typdef Àë¸À¤Ç·¿Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ ¤Ï̵̾¹½Â¤ÂΤò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
msgid "%<friend%> can only be specified inside a class"
msgstr ""
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "%s ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹»ØÄê»Ò `%s'"
-#: cp/decl.c:3571
+#: cp/decl.c:3468
msgid "qualifiers can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "`%s' ¤ÎÀë¸À¤ËÆó¤Ä°Ê¾å¤Î¥Ç¡¼¥¿·¿¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "´Ø¿ô `%s' ¤¬ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "`%s' ¤ÎÀë¸À¤Ë `extern' ¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢½é´ü²½¤â¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
msgid "%q#D is not a static member of %q#T"
msgstr ""
-#: cp/decl.c:3772
+#: cp/decl.c:3671
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "½ÅÊ£¤·¤¿½é´ü²½»Ò"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "ÊÑ¿ô `%s' ¤Ë¤Ï½é´ü²½»Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "ÇÛÎó `%s' ¤ÎÍ×ÁǤËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
msgid "%qD declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ISO C++ ¤Ï new ¤Ø¤Î½¸¹çÂνé´ü²½»Ò¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
@@ -14732,662 +14824,684 @@ 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "´ðÄ쥯¥é¥¹½é´üÀßÄê»Ò¤¬»ØÄꤵ¤ì¤Þ¤·¤¿¤¬¡¢½é´ü²½¤¹¤Ù¤­´ðÄ쥯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:4376
+#: cp/decl.c:4280
#, fuzzy
msgid "initializer for %qT must be brace-enclosed"
msgstr "̵̾´ðÄ쥯¥é¥¹¤Î½é´üÀßÄê»Ò¤¬Û£Ëæ¤Ç¤¹"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
#, fuzzy
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ ¤Ï̾Á°¤Ä¤­Ìá¤êÃͤòµö²Ä¤·¤Þ¤»¤ó"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "_Pramga ¤¬³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎó¥ê¥Æ¥é¥ë¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿"
+
+#: cp/decl.c:4521
msgid "structure %qD with uninitialized const members"
msgstr ""
-#: cp/decl.c:4608
+#: cp/decl.c:4523
msgid "structure %qD with uninitialized reference members"
msgstr ""
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "Àë¸À¤ÎÃæ¤ËÂåÆþ(½é´ü²½¤Ç¤Ï¤Ê¤¯)¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
msgid "cannot initialize %qD to namespace %qD"
msgstr ""
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr ""
-#: cp/decl.c:4915
+#: cp/decl.c:4830
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "¾¤Î¥¯¥é¥¹ `%s' ¤Î¥Ç¥¹¥È¥é¥¯¥¿¤ò¡¢¥á¥ó¥Ð¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "¾¤Î¥¯¥é¥¹ `%s' ¤Î¥Ç¥¹¥È¥é¥¯¥¿¤ò¡¢¥á¥ó¥Ð¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:5546
+#: cp/decl.c:5470
msgid "%qD declared as a %<virtual%> %s"
msgstr ""
-#: cp/decl.c:5548
+#: cp/decl.c:5472
msgid "%qD declared as an %<inline%> %s"
msgstr ""
-#: cp/decl.c:5550
+#: cp/decl.c:5474
#, fuzzy
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "`::main' ¤ò inline ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "`main' ¤Ï `int' ¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
msgid "non-local function %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:5690
+#: cp/decl.c:5617
msgid "non-local function %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:5713
+#: cp/decl.c:5640
msgid "%smember function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD in friend declaration"
msgstr "Àë¸À¤ÎÃæ¤ËÂåÆþ(½é´ü²½¤Ç¤Ï¤Ê¤¯)¤¬¤¢¤ê¤Þ¤¹"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr ""
-#: cp/decl.c:5775
+#: cp/decl.c:5702
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5783
+#: cp/decl.c:5710
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5850
+#: cp/decl.c:5776
msgid "definition of implicitly-declared %qD"
msgstr ""
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
msgid "non-local variable %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:6035
+#: cp/decl.c:5953
msgid "non-local variable %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:6150
+#: cp/decl.c:6070
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr ""
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
#, fuzzy
msgid "size of array is negative"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
#, fuzzy
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
#, fuzzy
msgid "size of array is not an integral constant-expression"
msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
#, fuzzy
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "ÇÛÎó¤Î¼¡¸µ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, fuzzy, c-format
msgid "creating %s"
msgstr "%s ¤òºîÀ®Ãæ.\n"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6409
+#: cp/decl.c:6328
#, fuzzy
msgid "return type specification for constructor invalid"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
#, fuzzy
msgid "return type specification for destructor invalid"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "̵̾ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "ÊÑ¿ô¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "ÊÑ¿ô¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6629
+#: cp/decl.c:6537
msgid "type %qT is not derived from type %qT"
msgstr ""
-#: cp/decl.c:6674
-msgid "declarator-id missing; using reserved word %qD"
-msgstr ""
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó"
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
+
+#: cp/decl.c:6593
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "`%s' ¤ÎÀë¸À¤ËÆó¤Ä°Ê¾å¤Î¥Ç¡¼¥¿·¿¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++ ¤Ï `long long' ¤ò¼õ¤±Æþ¤ì¤Þ¤»¤ó"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO C ¤Ï¥á¥ó¥Ð¤Î¤Ê¤¤¥á¥ó¥ÐÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "short, Éä¹ç¤Ä¤­¤Þ¤¿¤ÏÉä¹ç¤Ê¤·¤Ï `%s' ¤Ë¤È¤Ã¤Æ̵¸ú¤Ç¤¹"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "`%s' ¤ËÂФ·¤Æ long, short, signed ¤Þ¤¿¤Ï unsigned ¤ÏÉÔŬÀڤǤ¹"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "long ¤È short ¤¬ `%s' ¤ËÂФ·¤Æ°ì½ï¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "`%s' ¤ËÂФ·¤Æ char ¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "`%s' ¤ËÂФ·¤ÆÉâÆ°¾®¿ô·¿¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤¬ `%s' ¤ËÂФ·¤Æ°ì½ï¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "`%s' ¤ËÂФ¹¤ë long, short, singed ¤ä unsigned ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "`%s' ¤ËÂФ·¤Æ complex ¤ÏÉÔŬÀڤǤ¹"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "´Ø¿ôÌá¤êÃͤη¿½¤¾þ»Ò¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: cp/decl.c:6957
#, fuzzy
msgid "member %qD cannot be declared both virtual and static"
msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7031
+#: cp/decl.c:6964
msgid "%<%T::%D%> is not a valid declarator"
msgstr ""
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Î typedef Àë¸À¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "¥¯¥é¥¹Àë¸À¤Î³°Â¦¤Ç virtual »ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "`%s' ¤ÎÀë¸À¤Ë¤ª¤¤¤ÆÊ£¿ô¤ÎÊݸ¥¯¥é¥¹"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "%s ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹»ØÄê»Ò `%s'"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr "friend ´Ø¿ôÀë¸ÀÆâ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "²¾ÁÛ´Ø¿ô¤Ï friend ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
#, fuzzy
msgid "destructors may not have parameters"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "»²¾È¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+msgid "%qD is a namespace"
+msgstr ""
+
+#: cp/decl.c:7400
msgid "template-id %qD used as a declarator"
msgstr ""
-#: cp/decl.c:7497
+#: cp/decl.c:7447
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr ""
-#: cp/decl.c:7516
+#: cp/decl.c:7466
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:7531
+#: cp/decl.c:7481
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr ""
-#: cp/decl.c:7570
+#: cp/decl.c:7520
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:7572
+#: cp/decl.c:7522
msgid "parameter may not have variably modified type %qT"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
#, fuzzy
msgid "only declarations of constructors can be %<explicit%>"
msgstr "`explicit' ¤Ë¤Ç¤­¤ë¤Î¤Ï¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤À¤±¤Ç¤¹"
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "È󥪥֥¸¥§¥¯¥È¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "static `%s' ¤ò mutable ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7627
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
+#: cp/decl.c:7595
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:7689
-#, fuzzy
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7752
+#: cp/decl.c:7720
#, fuzzy
msgid "type qualifiers specified for friend class declaration"
msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "¥¯¥é¥¹Àë¸À¤Î³°Â¦¤Ç virtual »ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "Ê£»¨¤Ê¥Ñ¥é¥á¥¿¤ò¤â¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:7771
+#: cp/decl.c:7739
#, fuzzy
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7784
+#: cp/decl.c:7752
#, fuzzy
msgid "trying to make class %qT a friend of global scope"
msgstr "¥¯¥é¥¹ `%s' ¤òÂç°è¥¹¥³¡¼¥×¤Î friend ¤Ë¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
#, fuzzy
msgid "invalid qualifiers on non-member function type"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "̵¸ú¤ÊÍÑË¡¤Î of %%d, %%x, Ëô¤Ï %%X"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
msgid "can't make %qD into a method -- not in a class"
msgstr ""
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD cannot be declared virtual, since it is always static"
msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "`%s' ¤ÎÀë¸À¤Ë¤è¤ê `this' ¤Î¥á¥ó¥Ð¤¬Ê¤¤¤±£¤µ¤ì¤Þ¤¹"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr "`%s' ¤Ï´Ø¿ô¤Ç¤â¥á¥ó¥Ð´Ø¿ô¤Ç¤â¤¢¤ê¤Þ¤»¤ó -- friend ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Ï°ÅÌÛŪ¤Ë¤½¤Î¥¯¥é¥¹¤Î friend ¤Ç¤¹"
@@ -15403,86 +15517,86 @@ 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
msgid "making %qD static"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `auto' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `register' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `auto' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
#, fuzzy
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr "Âç°è¥¹¥³¡¼¥×³°¤Î´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `inline' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:8156
+#: cp/decl.c:8129
#, fuzzy
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr "Âç°è¥¹¥³¡¼¥×³°¤Î´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `inline' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "virtual ¤ÊÈ󥯥饹´Ø¿ô `%s'"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD to have static linkage"
msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr "¾¤Î´Ø¿ôÆâ¤Ç static ´Ø¿ô¤òÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8231
+#: cp/decl.c:8204
msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:8238
+#: cp/decl.c:8211
msgid "static member %qD declared %<register%>"
msgstr ""
-#: cp/decl.c:8243
+#: cp/decl.c:8216
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:8386
+#: cp/decl.c:8359
msgid "default argument for %q#D has type %qT"
msgstr ""
-#: cp/decl.c:8389
+#: cp/decl.c:8362
msgid "default argument for parameter of type %qT has type %qT"
msgstr ""
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "´Ø¿ô¤¬¥í¡¼¥«¥ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr ""
@@ -15501,117 +15615,117 @@ 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:8657
+#: cp/decl.c:8630
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8754
msgid "%qD may not be declared within a namespace"
msgstr ""
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
msgid "%qD must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:8827
+#: cp/decl.c:8800
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr "%s%s ¤Ø¤ÎÊÑ´¹¤Ç·¿ÊÑ´¹±é»»»Ò¤¬ÍøÍѤµ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤¢¤ê¤Þ¤»¤ó"
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
#, fuzzy
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ ¤Ï̵̾¹½Â¤ÂΤò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:8920
+#: cp/decl.c:8893
msgid "postfix %qD must take %<int%> as its argument"
msgstr ""
-#: cp/decl.c:8924
+#: cp/decl.c:8897
msgid "postfix %qD must take %<int%> as its second argument"
msgstr ""
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:8933
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8969
+#: cp/decl.c:8942
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
msgid "%qD must take exactly one argument"
msgstr ""
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:9003
+#: cp/decl.c:8976
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
msgid "%qD cannot have default arguments"
msgstr ""
-#: cp/decl.c:9072
+#: cp/decl.c:9049
msgid "using template type parameter %qT after %qs"
msgstr ""
-#: cp/decl.c:9086
+#: cp/decl.c:9064
msgid "using typedef-name %qD after %qs"
msgstr ""
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
msgid "%qT referred to as enum"
msgstr ""
@@ -15622,52 +15736,56 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
msgid "template argument required for %<%s %T%>"
msgstr ""
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "»öÁ°¤ÎÀë¸À¤Ê¤·¤ÎÂç°è´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:9397
+#: cp/decl.c:9389
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:9405
+#: cp/decl.c:9397
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT fails to be a struct or class type"
msgstr "·¿½¤¾þ»Ò `%s' ¤Ï struct ¤ä class ¤Î¸å¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-#: cp/decl.c:9457
+#: cp/decl.c:9449
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
@@ -15676,253 +15794,247 @@ msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "ÎóµóÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "Ìá¤êÃͤη¿¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
msgid "%qD is already defined in class %qT"
msgstr ""
-#: cp/decl.c:11012
+#: cp/decl.c:11015
msgid "static member function %q#D declared with type qualifiers"
msgstr ""
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Î̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "ÇÛÎó¤Îź»ú¤ËÂФ¹¤ëÛ£Ëæ¤ÊÊÑ´¹"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr ""
-#: cp/decl2.c:426
+#: cp/decl2.c:423
msgid "deleting array %q#D"
msgstr ""
-#: cp/decl2.c:432
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr ""
-#: cp/decl2.c:444
+#: cp/decl2.c:441
#, fuzzy
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr "´Ø¿ô¤Ï delete ¤Ç¤­¤Þ¤»¤ó¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤À¤±¤¬ `delete' °ú¿ô¤È¤·¤ÆÍ­¸ú¤Ç¤¹"
-#: cp/decl2.c:452
+#: cp/decl2.c:449
msgid "deleting %qT is undefined"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
msgid "invalid declaration of member template %q#D in local class"
msgstr ""
-#: cp/decl2.c:497
+#: cp/decl2.c:494
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr ""
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
msgstr ""
-#: cp/decl2.c:572
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
msgstr ""
-#: cp/decl2.c:677
+#: cp/decl2.c:674
msgid "prototype for %q#D does not match any in class %qT"
msgstr ""
-#: cp/decl2.c:778
+#: cp/decl2.c:775
msgid "local class %q#T shall not have static data member %q#D"
msgstr ""
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ÎÀÅŪ¥á¥ó¥Ð½é´ü²½»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(¥¯¥é¥¹³°¤Ç¤Î½é´ü²½¤òɬÍפȤ·¤Þ¤¹)"
-#: cp/decl2.c:870
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
msgid "%qD is already defined in %qT"
msgstr ""
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
msgid "%qD is already defined in the class %qT"
msgstr ""
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
msgid "static member %qD cannot be a bit-field"
msgstr ""
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÈó¥á¥ó¥Ð´Ø¿ô¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "̵̾¹½Â¤ÂΤ¬Ì¾Á°¤Ä¤­·¿¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr "anonumous ̾Á°¶õ´Ö¤Î½¸¹çÂÎ¤Ï static ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
#, fuzzy
msgid "anonymous union with no members"
msgstr "̵̾¶¦ÍÑÂΤ˥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "`operator new' ¤ÏÂè°ì°ú¿ô¤È¤·¤Æ `size_t' ¤ò¤È¤ê¤Þ¤¹"
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "`operator delete' ¤ÏÂè°ì°ú¿ô¤È¤·¤Æ `void *' ·¿¤ò¤È¤ê¤Þ¤¹"
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "`%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "²¾°ú¿ô¥ê¥¹¥È¤«¤é¤Î²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr ""
-#: cp/except.c:250
+#: cp/except.c:273
#, fuzzy
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr "Java `catch' ¤ä `throw' ¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`jthrowable' ¤Ï̤ÄêµÁ¤Ç¤¹"
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr ""
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "C++ ¤È Java ¤Î `catch' ¤ò°ì¤Ä¤ÎËÝÌõ¥æ¥Ë¥Ã¥È¤Ë¤Þ¤È¤á¤Þ¤¹"
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " throw ¤µ¤ì¤¿¼°¤ÎÃæ"
-#: cp/except.c:810
+#: cp/except.c:836
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:895
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
msgstr ""
-#: cp/except.c:897
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
msgstr ""
-#: cp/except.c:927
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr ""
@@ -16000,193 +16112,201 @@ msgstr "¡Ê¤â¤·¤³¤ì¤¬¤¢¤Ê¤¿¤Î°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢´Ø¿ô¥Æ¥ó¥×¥ì¡¼¥È¤Ï´û¤ËÀë¸ÀºÑ
msgid "argument to '%s' missing\n"
msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹\n"
-#: cp/init.c:316
+#: cp/init.c:326
msgid "%J%qD should be initialized in the member initialization list"
msgstr ""
-#: cp/init.c:363
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr ""
-#: cp/init.c:369
+#: cp/init.c:379
msgid "%Juninitialized reference member %qD"
msgstr ""
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
msgid "%qD will be initialized after"
msgstr ""
-#: cp/init.c:518
+#: cp/init.c:528
msgid "base %qT will be initialized after"
msgstr ""
-#: cp/init.c:521
+#: cp/init.c:531
msgid " %q#D"
msgstr ""
-#: cp/init.c:523
+#: cp/init.c:533
msgid " base %qT"
msgstr ""
-#: cp/init.c:524
+#: cp/init.c:534
msgid "%J when initialized here"
msgstr ""
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: cp/init.c:543
+#: cp/init.c:553
msgid "%Jmultiple initializations given for base %qT"
msgstr ""
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: cp/init.c:667
+#: cp/init.c:677
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
msgid "class %qT does not have any field named %qD"
msgstr ""
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "`com_interface' °À­¤Ï¥¯¥é¥¹ÄêµÁ¤Ë¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹"
-#: cp/init.c:904
+#: cp/init.c:914
msgid "%q#D is not a non-static data member of %qT"
msgstr ""
-#: cp/init.c:943
+#: cp/init.c:953
#, fuzzy
msgid "unnamed initializer for %qT, which has no base classes"
msgstr "´ðÄ쥯¥é¥¹¤ò»ý¤Ä¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹"
-#: cp/init.c:951
+#: cp/init.c:961
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:997
+#: cp/init.c:1007
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1005
+#: cp/init.c:1015
msgid "type %qD is not a direct or virtual base of %qT"
msgstr ""
-#: cp/init.c:1008
+#: cp/init.c:1018
msgid "type %qD is not a direct base of %qT"
msgstr ""
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "ÇÛÎó¤ÎÉÔÀµ¤Ê½é´ü²½"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "È󽸹çÂη¿¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'"
-#: cp/init.c:1379
+#: cp/init.c:1389
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr ""
-#: cp/init.c:1387
+#: cp/init.c:1397
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1416
msgid "%qD is not a member of type %qT"
msgstr ""
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr "ÇÛÎó new ¤Ç¤Î¥µ¥¤¥º¤Ï´°Á´¤Ê·¿¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr "¥µ¥¤¥º¥¼¥í¤ÎÇÛÎó¤Ï¶õ´Ö¤ò³ÎÊݤ·¤Þ¤»¤ó"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/init.c:1679
+#: cp/init.c:1700
#, fuzzy
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr "Java ¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`jclass' ¤Ï̤ÄêµÁ¤Ç¤¹"
-#: cp/init.c:1695
+#: cp/init.c:1716
#, fuzzy
msgid "can't find class$"
msgstr "class$ ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "new ¤ËÂФ·¤Æ̵¸ú¤Ê·¿¤Ç¤¢¤ë `void'"
-#: cp/init.c:1833
+#: cp/init.c:1854
msgid "uninitialized const in %<new%> of %q#T"
msgstr ""
-#: cp/init.c:1867
+#: cp/init.c:1888
#, fuzzy, c-format
msgid "call to Java constructor with %qs undefined"
msgstr "Java ¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`%s' ¤Ï̤ÄêµÁ¤Ç¤¹"
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "Í׵ᤵ¤ì¤¿¥á¥ó¥Ð `%s' ¤Ï¿½Å·Ñ¾µ¥°¥é¥Õ¤ÎÃæ¤ÇÛ£Ëæ¤Ç¤¹"
-#: cp/init.c:2040
+#: cp/init.c:2061
#, fuzzy
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "½é´üÀßÄê»Ò¤ÎËöÈø¤¬ËÜÍè¤è¤êÁ᤯½Ð¸½¤·¤Þ¤·¤¿"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "¿¼¡¸µÇÛÎó¤Ï½é´ü²½»Ò¤Ç½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "delete ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤¬ÉÔÌÀ¤Ç¤¹"
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr "¥Ù¥¯¥È¥ë·¿¤Î delete ¤Ç¤¹¤¬¡¢¥Ý¥¤¥ó¥¿¤Ç¤âÇÛÎ󷿤Ǥ⤢¤ê¤Þ¤»¤ó"
@@ -16262,14 +16382,18 @@ msgstr ""
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:650
+#: cp/method.c:657
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr ""
-#: cp/method.c:656
+#: cp/method.c:663
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr ""
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16371,62 +16495,56 @@ msgstr "%s: %s: "
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "%d ¸Ä¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "°ÅÌۤδؿôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "%s=%s ¤Ï¿ôÃͤǤϤ¢¤ê¤Þ¤»¤ó"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1987
msgid "namespace %qD not allowed in using-declaration"
msgstr ""
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
msgid "%qD not declared"
msgstr ""
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
msgid "%qD is already declared in this scope"
msgstr ""
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr ""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr ""
@@ -16435,419 +16553,436 @@ msgstr ""
msgid "using-declaration cannot name destructor"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr ""
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr ""
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "ÉÔÌÀ¤Ê #pragma namespace %s ¤Ç¤¹"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
msgid "namespace %qT undeclared"
msgstr ""
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "`%s' °À­¤Îµ¿»÷Ì¿Î᤬̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
msgid " first declared as %q#D here"
msgstr ""
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
msgid " also declared as %q#D here"
msgstr ""
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
msgid "%qD denotes an ambiguous type"
msgstr ""
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
#, fuzzy
msgid "%J first type here"
msgstr " ¤³¤³¤«¤é"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
msgid "%<%D::%D%> is not a template"
msgstr ""
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
msgid "%qD undeclared in namespace %qD"
msgstr ""
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr "`%s' ¤Ï `-g%s' ¤È¶¥¹ç¤¹¤ë¤¿¤á̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+msgid "%<#pragma%> is not allowed here"
+msgstr ""
+
+#: cp/parser.c:1836
msgid "%<%D::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
msgid "%<::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1818
+#: cp/parser.c:1842
msgid "request for member %qD in non-class type %qT"
msgstr ""
-#: cp/parser.c:1821
+#: cp/parser.c:1845
msgid "%<%T::%D%> has not been declared"
msgstr ""
-#: cp/parser.c:1824
+#: cp/parser.c:1848
msgid "%qD has not been declared"
msgstr ""
-#: cp/parser.c:1827
+#: cp/parser.c:1851
msgid "%<%D::%D%> %s"
msgstr ""
-#: cp/parser.c:1829
+#: cp/parser.c:1853
msgid "%<::%D%> %s"
msgstr ""
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr " %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
#, fuzzy
msgid "new types may not be defined in a return type"
msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "%s Àë¸À¤Î¸å¤í¤Î¥»¥ß¥³¥í¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#: cp/parser.c:1927 cp/pt.c:4328
msgid "%qT is not a template"
msgstr ""
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, c-format
msgid "%qE is not a template"
msgstr ""
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "̵¸ú¤Ê·¿: `void &'"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, c-format
msgid "%qE does not name a type"
msgstr ""
-#: cp/parser.c:1993
+#: cp/parser.c:2021
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
-#: cp/parser.c:2011
+#: cp/parser.c:2039
msgid "%qE in class %qT does not name a type"
msgstr ""
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ ¤Ï¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
#, fuzzy
msgid "statement-expressions are allowed only inside functions"
msgstr "¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤Ï´Ø¿ô¤ÎÆ⦤ǤΤߵö¤µ¤ì¤Þ¤¹"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "¥Þ¥¯¥í°ú¿ôÆâ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:3238
+#: cp/parser.c:3316
msgid "typedef-name %qD used as destructor declarator"
msgstr ""
-#: cp/parser.c:3886
+#: cp/parser.c:3965
#, fuzzy
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ ¤ÏÊ£¹ç¥ê¥Æ¥é¥ë¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "ÇÛÎó new ¤Ç¤Î¥µ¥¤¥º¤Ï´°Á´¤Ê·¿¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "¥µ¥¤¥º¥¼¥í¤ÎÇÛÎó¤Ï¶õ´Ö¤ò³ÎÊݤ·¤Þ¤»¤ó"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
#, fuzzy
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "ÇÛÎó new ¤Ç¤Î¥µ¥¤¥º¤Ï´°Á´¤Ê·¿¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "¸Å¤¤¥¹¥¿¥¤¥ë¤Î¥­¥ã¥¹¥È¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ ¤Ï·×»»·¿ goto ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "`%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
#, fuzzy
msgid "class definition may not be declared a friend"
msgstr "`%s' ¤Ï´Ø¿ô¤Ç¤â¥á¥ó¥Ð´Ø¿ô¤Ç¤â¤¢¤ê¤Þ¤»¤ó -- friend ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤·¤«´ðÄì½é´ü²½»Ò¥ê¥¹¥È¤ò¤È¤ê¤Þ¤»¤ó"
-#: cp/parser.c:7585
+#: cp/parser.c:7692
#, fuzzy
msgid "anachronistic old-style base class initializer"
msgstr "Á°»þÂåŪ¤Ê¸Å¤¤¥¹¥¿¥¤¥ë¤Î´ðÄ쥯¥é¥¹½é´ü²½»Ò¤Ç¤¹"
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
msgid "%<<::%> cannot begin a template-argument list"
msgstr ""
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "¥Þ¥¯¥í°ú¿ô¥ê¥¹¥È¤Ë¤¢¤êÆÀ¤Ê¤¤¥È¡¼¥¯¥ó"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
msgid "non-template %qD used as template"
msgstr ""
-#: cp/parser.c:8537
+#: cp/parser.c:8655
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:9554
-msgid "using %<typename%> outside of template"
-msgstr ""
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/parser.c:9677
-msgid "expected type-name"
+#: cp/parser.c:9688
+msgid "using %<typename%> outside of template"
msgstr ""
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr ""
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
msgid "a template-id may not appear in a using-declaration"
msgstr ""
-#: cp/parser.c:10461
+#: cp/parser.c:10595
#, fuzzy
msgid "an asm-specification is not allowed on a function-definition"
msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÈó¥á¥ó¥Ð´Ø¿ô¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
-#: cp/parser.c:10463
+#: cp/parser.c:10597
#, fuzzy
msgid "attributes are not allowed on a function-definition"
msgstr "Âç°è register ÊÑ¿ô¤¬´Ø¿ôÄêµÁ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "ÇÛÎó¤Îź»ú¤¬À°¿ô·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
msgid "%<%T::%D%> is not a type"
msgstr ""
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "¥È¥Ã¥×¥ì¥Ù¥ë¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr ""
-#: cp/parser.c:11858
+#: cp/parser.c:11980
#, fuzzy
msgid "default arguments are only permitted for function parameters"
msgstr "¥á¥½¥Ã¥É¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "`%s' ¤ÎÀë¸À¤Ë¤ª¤¤¤ÆÊ£¿ô¤ÎÊݸ¥¯¥é¥¹"
+
+#: cp/parser.c:12733
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr ""
-#: cp/parser.c:12622
+#: cp/parser.c:12757
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr ""
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
#, fuzzy
msgid "friend declaration does not name a class or function"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:13395
+#: cp/parser.c:13547
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr ""
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "̵¸ú¤Ê catch ¤Î°ú¿ô"
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
msgid "too few template-parameter-lists"
msgstr ""
@@ -16855,166 +16990,166 @@ msgstr ""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr ""
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "--driver ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:15063
+#: cp/parser.c:15233
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:15068
+#: cp/parser.c:15238
msgid "missing %<>%> to terminate the template argument list"
msgstr ""
-#: cp/parser.c:15586
+#: cp/parser.c:15766
msgid "%qs tag used in naming %q#T"
msgstr ""
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/pt.c:240
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò"
-#: cp/pt.c:574
+#: cp/pt.c:575
msgid "explicit specialization in non-namespace scope %qD"
msgstr ""
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:669
+#: cp/pt.c:670
msgid "specialization of %qD in different namespace"
msgstr ""
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:706
+#: cp/pt.c:707
msgid "specialization of %qT after instantiation"
msgstr ""
-#: cp/pt.c:738
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
msgstr ""
-#: cp/pt.c:753
+#: cp/pt.c:754
msgid "specialization %qT after instantiation %qT"
msgstr ""
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
msgid "specialization of %qD after instantiation"
msgstr ""
-#: cp/pt.c:1292
+#: cp/pt.c:1293
#, fuzzy
msgid "%s %+#D"
msgstr "%s: %s"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤ë´Ø¿ô¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:1542
+#: cp/pt.c:1543
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "`operator delete' ¤ÎÀë¸ÀÆâ¤Ë¿¤¹¤®¤ë°ú¿ô"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
#, fuzzy
msgid "template parameter list used in explicit instantiation"
msgstr "#define Ãæ¤Î²¾°ú¿ô¥ê¥¹¥È¤¬½ªÃ¼¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr ""
"\n"
"%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬¾¯¤Ê¤¹¤®¤Þ¤¹\n"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr ""
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr ""
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "`%s' ¤ÏÄ̾Èó static ¤Ê´Ø¿ô¤Ç¤¹"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -17023,63 +17158,57 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n"
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
msgid " shadows template parm %q#D"
msgstr ""
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2630
+#: cp/pt.c:2605
msgid " %qD"
msgstr ""
-#: cp/pt.c:2641
+#: cp/pt.c:2616
msgid "partial specialization %qT does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2710
+#: cp/pt.c:2685
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
msgid "destructor %qD declared as member template"
msgstr ""
@@ -17088,58 +17217,63 @@ msgstr ""
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "`%s' ¤Î extern Àë¸À¤¬¥Í¥¹¥È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
msgid "%qD does not declare a template type"
msgstr ""
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É `%s' ¤ÎÄêµÁ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr ""
-#: cp/pt.c:3121
+#: cp/pt.c:3096
msgid "got %d template parameters for %q#D"
msgstr ""
-#: cp/pt.c:3124
+#: cp/pt.c:3099
msgid "got %d template parameters for %q#T"
msgstr ""
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "friend ´Ø¿ôÀë¸ÀÆâ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, fuzzy, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "¥Þ¥¯¥í²¾°ú¿ô \"%s\" ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
msgid "redeclared here as %q#D"
msgstr ""
@@ -17147,318 +17281,327 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
msgid "redefinition of default argument for %q#D"
msgstr ""
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr ""
-#: cp/pt.c:3370
+#: cp/pt.c:3342
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3411
+#: cp/pt.c:3383
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr ""
-#: cp/pt.c:3486
+#: cp/pt.c:3458
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr ""
-#: cp/pt.c:3536
+#: cp/pt.c:3508
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr ""
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr ""
-#: cp/pt.c:3576
+#: cp/pt.c:3548
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3618
+#: cp/pt.c:3590
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr ""
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr ""
-#: cp/pt.c:3658
+#: cp/pt.c:3630
#, fuzzy
msgid "standard conversions are not allowed in this context"
msgstr "#if ¼°¤ÎÃæ¤Ç¤Ïʸ»úÎóÄê¿ô¤¬»È¤¨¤Þ¤»¤ó"
-#: cp/pt.c:3827
+#: cp/pt.c:3799
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:3845
+#: cp/pt.c:3818
msgid " expected a constant of type %qT, got %qT"
msgstr ""
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, c-format
msgid " expected a class template, got %qE"
msgstr ""
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
msgid " expected a class template, got %qT"
msgstr ""
-#: cp/pt.c:3903
+#: cp/pt.c:3876
msgid " expected a template of type %qD, got %qD"
msgstr ""
-#: cp/pt.c:3939
+#: cp/pt.c:3912
msgid "could not convert template argument %qE to %qT"
msgstr ""
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3982
+#: cp/pt.c:3955
msgid "provided for %qD"
msgstr ""
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "¥Þ¥¯¥í°ú¿ô \"%s\" ¤Ïʸ»úÎ󲽤µ¤ì¤Þ¤¹"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr ""
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
msgid "non-template type %qT used as a template"
msgstr ""
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
#, fuzzy
msgid "%s %+#T"
msgstr "%s: %s"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "´Ø¿ô¤¬½¸¹çÂΤòÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "`%s' ¤Ï´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
#, fuzzy
msgid "forming reference to void"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
msgid "forming %s to reference type %qT"
msgstr ""
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:7341
+#: cp/pt.c:7330
msgid "%qT is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr ""
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:7557
+#: cp/pt.c:7556
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#: cp/pt.c:8729
msgid "%qT is not a class or namespace"
msgstr ""
-#: cp/pt.c:8711
+#: cp/pt.c:8732
msgid "%qD is not a class or namespace"
msgstr ""
-#: cp/pt.c:8844
-msgid "%qT uses anonymous type"
+#: cp/pt.c:8872
+msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:8846
+#: cp/pt.c:8874
msgid "%qT uses local type %qT"
msgstr ""
-#: cp/pt.c:8854
+#: cp/pt.c:8883
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "½é´ü²½»Ò¤ÎÍ×ÁǤ¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr "ÉÔÀµ¤Êʸ»úÎóÄê¿ô¤Ç¤¹"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "ÉÔ´°Á´¤Ê·¿¤Îñ°ì²½"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr "ISO C++ ¤Ï¸º»»¤Ë¥á¥½¥Ã¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr "ISO C++ ¤Ï¸º»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr ""
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
@@ -17477,23 +17620,23 @@ msgstr "%s ¤ËÉԲIJò¤Ê¥ê¥Ý¥¸¥È¥ê¾ðÊ󤬤¢¤ê¤Þ¤¹"
msgid "can't create repository information file %qs"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Ë¥ê¥Ý¥¸¥È¥ê¾ðÊó¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "-fno-rtti ¤¬»ØÄꤵ¤ì¤ë¤È typeid ¤ò»È¤¨¤Þ¤»¤ó"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "typeid ¤ò»È¤¦Á°¤Ë #include <typeinfo> ¤È¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
msgid "cannot create type information for type %qT because its size is variable"
msgstr ""
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr ""
-#: cp/rtti.c:667
+#: cp/rtti.c:663
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr ""
@@ -17505,228 +17648,223 @@ msgstr ""
msgid "%qT is an inaccessible base of %qT"
msgstr ""
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ËÌá¤ë¤Ï¤º¤Ç¤·¤¿"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
msgid " overriding %q#D"
msgstr ""
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "`%s' ¤ËÂФ·¤Æ char ¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/search.c:1867
+#: cp/search.c:1876
msgid " overriding %q#F"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/search.c:1961
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
msgstr ""
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, c-format
msgid "type of asm operand %qE could not be determined"
msgstr ""
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "ÇÛÎ󻲾ȤǤÎź»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "°ú¿ô¤¬¹½Â¤ÂΤǤ¹"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "`this' ¤ÏÀÅŪ¥á¥ó¥Ð´Ø¿ô¤«¤é»ÈÍѤǤ­¤Þ¤»¤ó"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "¥È¥Ã¥×¥ì¥Ù¥ë¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr ""
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "%s ¤Ï·¿ %s ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó (°ú¿ô %d)"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
#, fuzzy
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr "¥Æ¥ó¥×¥ì¡¼¥È·¿²¾°ú¿ô¤Ë¤Ï `class' ¤ä `typename' ͽÌó¸ì¤ò»È¤ï¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
#, fuzzy
msgid "invalid default argument for a template template parameter"
msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¥ê¥¹¥È¤Î¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
#, fuzzy
msgid "invalid base-class specification"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
msgid "base class %qT has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
msgid "reference to %<%T::%D%> is ambiguous"
msgstr ""
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
msgid "use of namespace %qD as expression"
msgstr ""
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
msgid "use of class template %qT as expression"
msgstr ""
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr "Í׵ᤵ¤ì¤¿¥á¥ó¥Ð `%s' ¤Ï¿½Å·Ñ¾µ¥°¥é¥Õ¤ÎÃæ¤ÇÛ£Ëæ¤Ç¤¹"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "¥ì¥¸¥¹¥¿ '%c' ¤¬ÉÔÌÀ¤Ç¤¹"
-#: cp/tree.c:525
+#: cp/tree.c:539
msgid "%qV qualifiers cannot be applied to %qT"
msgstr ""
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr "`java_interface' °À­¤Ï Java ¥¯¥é¥¹ÄêµÁ¤ËÂФ·¤Æ¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "`com_interface' °À­¤Ï¥¯¥é¥¹ÄêµÁ¤Ë¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, fuzzy, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr "init_priority °À­¤Ï¥¯¥é¥¹·¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Õ¥¡¥¤¥ë¥¹¥³¡¼¥×ÄêµÁ¤Ç¤Î¤ß»È¤¨¤Þ¤¹"
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤¬Èϰϳ°¤Ç¤¹"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÆâÉô¤Ç»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤Þ¤¹"
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "init_priority °À­¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
@@ -17746,206 +17884,206 @@ msgstr "ISO C++ ¤Ï `void *' ·¿¥Ý¥¤¥ó¥¿¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤Î %s ¤ò¶Ø¤¸¤Þ¤¹"
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "·¿¤¬Á´¤¯°Û¤Ê¤ë¥Ý¥¤¥ó¥¿¤ÎÈæ³Ó¤Ç¥­¥ã¥¹¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ë `__alignof' ¤¬Å¬ÍѤµ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO C++ ¤Ï´Ø¿ô·¿¤Î¼°¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "ʸ»úÎóÄê¿ôÃæ¤Î \\r ¥¨¥¹¥±¡¼¥×"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
msgid "%<%D::%D%> is not a member of %qT"
msgstr ""
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
msgid "%qT is not a base of %qT"
msgstr ""
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD 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:2121
+#: cp/typeck.c:2080
msgid "%qT is not a pointer-to-object type"
msgstr ""
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "̵¸ú¤Ê·¿°ú¿ô¤Ç¤¹"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "ÇÛÎ󻲾ȤǤÎź»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ ¤Ïº¸ÊÕÃͤǤϤʤ¤ÇÛÎó¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "`register' ¤ÈÀë¸À¤µ¤ì¤¿ÇÛÎó¤Ëź»ú¤ò¤Ä¤±¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¹½ÃۤλÈÍѤǥª¥Ö¥¸¥§¥¯¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C++ ¤Ï¥×¥í¥°¥é¥à¤ÎÃ椫¤é `::main' ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "¥Õ¥¡¥¤¥ë¤Î¤³¤Î°ÌÃÖ"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
msgid "assuming cast to type %qT from overloaded function"
msgstr ""
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "%s ¥í¡¼¥Æ¡¼¥È²ó¿ô¤¬Éé¤ÎÃͤǤ¹"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "%s ¥í¡¼¥Æ¡¼¥È²ó¿ô >= ·¿¤ÎÉý¤Ç¤¹"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "ÈóÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ç¤Î½ç½øÉÕ¤±¤é¤ì¤Ê¤¤Èæ³Ó¤Ç¤¹"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤ÎÀ°¿ô¼°Æ±»Î¤ÎÈæ³Ó¤Ç¤¹"
@@ -17953,148 +18091,148 @@ 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:3475
+#: cp/typeck.c:3431
#, fuzzy
msgid "NULL used in arithmetic"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë `void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë¥á¥½¥Ã¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "¥Ý¥¤¥ó¥¿±é»»¤ÇÉÔ´°Á´·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤Ï̵¸ú¤Ç¤¹"
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ ¤Ï enum ¤Î %s ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤ò»Ø¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C++ ¤Ï enum ¤Î %s ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr "º¸ÊÕÃͤȤ·¤Æ»È¤ï¤ì¤ëÈ󻲾ȷ¿¤Ø¤Î¥­¥ã¥¹¥È¤Ç¤¹"
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "̵¸ú¤ÊÍÑË¡¤Î of %%d, %%x, Ëô¤Ï %%X"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr "ISO C++ ¤Ï `::main' ´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr ""
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
#, 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:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr "ISO C++ ¤ÏÈóº¸ÊÕÃͼ°¤Ø¤Î¥­¥ã¥¹¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
#, fuzzy
msgid "taking address of destructor"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
#, fuzzy
msgid "taking address of bound pointer-to-member expression"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr "`this' ¤Ï±¦ÊÕÃͼ°¤Ç¤¢¤ê¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck.c:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "register ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, fuzzy, c-format
msgid "%s expression list treated as compound expression"
msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÊ£¹ç¼°¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
msgid "%s from type %qT to type %qT casts away constness"
msgstr ""
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
msgid "invalid static_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "%s: Á´ÂÎŪ¤ÊÀºÅÙ¤ÎÄã²¼"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹"
@@ -18103,160 +18241,135 @@ msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹"
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ISO C++ ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È¥ª¥Ö¥¸¥§¥¯¥È¥Ý¥¤¥ó¥¿¤Î´Ö¤Ç¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
msgid "invalid const_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "sizeof ¤¬´Ø¿ô·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ ¤ÏÇÛÎó¤ÎÂåÆþ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð´Ø¿ô¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
msgid "pointer to member cast via virtual base %qT"
msgstr ""
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "̵¸ú¤Ê¥Ð¡¼¥¸¥ç¥óÈÖ¹æ·Á¼°"
-#: cp/typeck.c:5871
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5874
-msgid "%s to non-pointer type %qT from NULL"
-msgstr ""
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
-
-#: cp/typeck.c:5885
-msgid "%s to %qT from %qT"
-msgstr ""
-
-#: cp/typeck.c:5894
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5897
-msgid "%s of negative value %qE to %qT"
-msgstr ""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr ""
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "Èóº¸ÊÕÃͤؤλ²¾È¤¬ÊÖ¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "Èóº¸ÊÕÃͤؤλ²¾È¤¬ÊÖ¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤«¤éÃͤòÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
#, fuzzy
msgid "return-statement with a value, in function returning 'void'"
msgstr "Ìá¤ê·¿¤¬ void ¤Î´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤¹"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr ""
@@ -18319,168 +18432,168 @@ msgstr ""
msgid "%J since type %qT has pure virtual functions"
msgstr "»È¤ï¤ì¤Ê¤¤²¾ÁÛ´Ø¿ô¤òÀÚ¤ê¼Î¤Æ¤ë"
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "¤³¤Îʸˡ¤ò»È¤Ã¤ÆÇÛÎó¤ò½é´ü²½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "ÇÛÎó¤ò²¾°ú¿ô¥ê¥¹¥È¤Ë¤è¤Ã¤Æ½é´ü²½¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "Èó¥ï¥¤¥Éʸ»úÎ󤫤é int ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "¥¹¥«¥é¡¼ÊÑ¿ô¤Î½é´ü²½»Ò¤Ï°ì¤Ä¤ÎÍ×ÁǤòÍ׵ᤷ¤Þ¤¹"
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤¬¥Ö¥ì¡¼¥¹¤Ç°Ï¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "ÊÑ¿ô½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr ""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "½¸¹çÂΤ¬ÉôʬŪ¤Ë¥Ö¥é¥±¥Ã¥È¤Î½é´ü²½»Ò¤ò»ý¤Á¤Þ¤¹"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "¼«ÌÀ¤Ç¤Ê¤¤¥é¥Ù¥ë¤Î¤Ä¤¤¤¿½é´ü²½»Ò¤Ç¤¹"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr "Í×ÁǤΤʤ¤ÇÛÎó¤ËÂФ¹¤ë¡¢¶õ¤Ç¤Ï¤Ê¤¤½é´ü²½»Ò¤Ç¤¹"
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr "union ½é´ü²½»Ò¤¬¥Õ¥£¡¼¥ë¥É̾¤Ç¤Ï¤Ê¤¯¥¤¥ó¥Ç¥Ã¥¯¥¹ÃͤˤʤäƤ¤¤Þ¤¹"
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "ÉÔÌÀ¤Ê¥Õ¥£¡¼¥ë¥É `%s' ¤¬½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
#, fuzzy
msgid "union %qT with no named members cannot be initialized"
msgstr "Ê£»¨¤Ê¥Ñ¥é¥á¥¿¤ò¤â¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "½¸¹çÂνé´ü²½»ÒÆâ¤Ç¤½¤ÎÍ×ÁǤ¬°î¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "½Û´Ä¥Ý¥¤¥ó¥¿¤ÎÂåɽ¤ò¸¡½Ð¤·¤Þ¤·¤¿"
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
#, fuzzy
msgid "result of %<operator->()%> yields non-pointer result"
msgstr "`operator->()'¤Î·ë²Ì¤¬Èó¥Ý¥¤¥ó¥¿¤Î·ë²Ì¤ò¤â¤¿¤é¤·¤Þ¤¹"
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "\"%s\" ¤Ï C++ ¤Î±é»»»Ò¤Ç¤¢¤ê¡¢¥Þ¥¯¥í̾¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "register ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
@@ -18500,82 +18613,82 @@ msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
msgid "no input files; unwilling to write output files"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó -- ÉÔËܰդʽÐÎÏ¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "´Ø¿ô¤¬Ê¸»úÎ󷿤òÊÖ¤·¤Þ¤»¤ó"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "°ú¿ô `%s' ¤¬Ì¤»ÈÍѤǤ¹"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "ÊÑ¿ô `%s' ¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "´Ø¿ô¤¬½¸¹çÂΤòÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
msgid "Unknown intrinsic op"
msgstr ""
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "¸À¸ì %s ¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18592,7 +18705,7 @@ msgstr ""
msgid "Array element size too big"
msgstr ""
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18603,27 +18716,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr "»ÄÇ°¤Ê¤¬¤é¸«¼ÂÁõ¤Ç¤¹: "
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "check-init ¤ÇÆâÉô¥¨¥é¡¼: ¥Ä¥ê¡¼¥³¡¼¥É¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: %s"
-#: java/check-init.c:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
@@ -18661,321 +18774,321 @@ msgstr "abstract ¥á¥½¥Ã¥É¤¬ÈóÃê¾Ý¥¯¥é¥¹¤Ë¤¢¤ê¤Þ¤¹"
msgid "%Jnon-static method '%D' overrides static method"
msgstr "ÈóÀÅŪ¥á¥½¥Ã¥É '%s' ¤¬ÀÅŪ¥á¥½¥Ã¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¤¤Þ¤¹"
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "`%s' ¤ÏÀë¸À¤è¤ê¤âÀè¤Ë»ÈÍѤµ¤ì¤Þ¤·¤¿"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¥ê¥¹¥È¤Î¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/decl.c:1580
+#: java/decl.c:1637
#, fuzzy
msgid "%Jlabel '%D' defined but not used"
msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/decl.c:1702
+#: java/decl.c:1759
#, fuzzy
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr "%s Æâ: ÊÑ¿ô¤ÈÎã³°ÈϰϤ¬ %d ¤Ç½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr "²¾°ú¿ô¥Ç¥Ð¥Ã¥°¾ðÊó¤ËÉÔÀµ¤Ê·¿¤¬¤¢¤ê¤Þ¤¹"
-#: java/decl.c:1775
+#: java/decl.c:1832
#, fuzzy
msgid "%Jbad PC range for debug info for local '%D'"
msgstr "¥í¡¼¥«¥ë¤Î `%s' ÍѥǥХå°¾ðÊó¤Î¤¿¤á¤Î PC ÈϰϤ¬ÉÔÀµ¤Ç¤¹"
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, c-format
msgid "assert: %s is assign compatible with %s"
msgstr ""
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr "¥¹¥¿¥Ã¥¯¥¢¥ó¥À¡¼¥Õ¥í¡¼ - dup* Áàºî"
-#: java/expr.c:1699
+#: java/expr.c:1703
#, fuzzy, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr "»²¾È `%s' ¤ÏÛ£Ëæ¤Ç¤¹: interface `%s' ¤È interface `%s' ¤Ë¸½¤ì¤Þ¤·¤¿"
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "¥á¥½¥Ã¥É '%s' ¤Ï¥¯¥é¥¹Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "'%s' ¥¯¥é¥¹¤ò¸«¤Ä¤±¤ë¤Î¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, fuzzy, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr "¥¯¥é¥¹ '%s' ¤Ï̾Á°¤¬ '%s' ¤Ç¥·¥°¥Í¥¤¥Á¥ã '%s' ¤È°ìÃפ¹¤ë¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr "ÈóÀÅŪ¥á¥½¥Ã¥É¤Ë invokestatic ¤·¤Þ¤·¤¿"
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr "Ãê¾Ý¥á¥½¥Ã¥É¤Ë invokestatic ¤·¤Þ¤·¤¿"
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr "ÀÅŪ¥á¥½¥Ã¥É¤Ë invoke[Èó static] ¤·¤Þ¤·¤¿"
-#: java/expr.c:2708
+#: java/expr.c:2712
#, fuzzy, c-format
msgid "missing field '%s' in '%s'"
msgstr "¥Õ¥£¡¼¥ë¥É '%s'('%s' Æâ) ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, fuzzy, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "¥Õ¥£¡¼¥ë¥É '%s'('%s' Æâ) ¤Î¥·¥°¥Í¥¤¥Á¥ã¤¬°ìÃפ·¤Þ¤»¤ó"
-#: java/expr.c:2737
+#: java/expr.c:2741
#, fuzzy
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "final ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Î¥¯¥é¥¹Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/expr.c:2742
+#: java/expr.c:2746
#, fuzzy
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr "final static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Î¥¯¥é¥¹Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/expr.c:2751
+#: java/expr.c:2755
#, fuzzy
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "final ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¥³¥ó¥¹¥È¥é¥¯¥¿Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "̵¸ú¤Ê PC ¤¬¹ÔÈÖ¹æ¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ê¤Þ¤¹"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, fuzzy, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "%d ¤«¤é %d ¤ÎÁ°¤Þ¤Ç¤Î¥Ð¥¤¥È¥³¡¼¥É¤Ë¤ÏÅþã¤Ç¤­¤Þ¤»¤ó"
-#: java/expr.c:3037
+#: java/expr.c:3043
#, fuzzy, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr "%d ¤«¤é¥á¥½¥Ã¥É¤Î½ª¤ê¤Þ¤Ç¤Î¥Ð¥¤¥È¥³¡¼¥É¤Ë¤ÏÅþã¤Ç¤­¤Þ¤»¤ó"
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ wide sub Ì¿Îá¤Ç¤¹"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "¥á¥½¥Ã¥É `%s' Æâ:"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "¥¯¥é¥¹ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "¥Õ¥£¡¼¥ë¥É¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò stat ¤Ç¤­¤Þ¤»¤ó"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "Àµ¾ï¤Ê Java .class ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr "constant ¥×¡¼¥ë¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "constant ¥×¡¼¥ë¹àÌÜ #%d Æâ¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿\n"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "¥­¥ã¥¹¥È¤¬ÇÛÎ󷿤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "¥­¥ã¥¹¥È¤¬ÇÛÎ󷿤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
"\n"
msgstr ""
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, fuzzy, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr "¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îµ¡Ç½¤Î C ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë"
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe Ãæ´Ö¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¥Ñ¥¤¥×¤ò»È¤¦\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -W ÆÃÊ̤ʷٹð¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <directory> <directory> ¤ò¥³¥ó¥Ñ¥¤¥é¤Îõº÷¥Ñ¥¹¤ËÄɲ乤ë\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <file> ½ÐÎϤò <file> ¤Ë½ñ¤­¹þ¤à\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " --help ¤³¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr ""
" -V <version> ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð <version> ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î\n"
" gcc ¤È¤·¤Æ¼Â¹Ô¤¹¤ë\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr ""
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -p ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr ""
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -18984,32 +19097,32 @@ msgstr ""
"\n"
"¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
#, fuzzy
msgid "'-MG' option is unimplemented"
msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "-C ¤È -o ¤ÏξÊý¤ò°ì½ï¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "¥¨¥é¡¼¤Ë¤è¤ê %s ¤òÊĤ¸¤Þ¤¹"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -19024,7 +19137,7 @@ msgstr "Àµ¾ï¤Ê Java .class ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
msgid "error while parsing constant pool\n"
msgstr "constant ¥×¡¼¥ë¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "constant ¥×¡¼¥ë¹àÌÜ #%d Æâ¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿\n"
@@ -19098,106 +19211,106 @@ msgstr ""
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr "¥¯¥é¥¹ `%s' ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢°ìÃפ¹¤ë¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤è¤ê¿·¤·¤¤¤Ç¤¹¡£¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤òÂå¤ê¤Ë»È¤¤¤Þ¤¹"
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "ÉÔÀµ¤Êʸ»úÎóÄê¿ô¤Ç¤¹"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "ÉÔÀµ¤ÊÄê¿ôÃÍ·¿ %d, ¥¤¥ó¥Ç¥Ã¥¯¥¹ %d"
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "%s ¤òºÆ open ¤Ç¤­¤Þ¤»¤ó"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "%s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "¥¯¥é¥¹ %s ÍѤΥե¡¥¤¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr "Àµ¾ï¤Ê Java .class ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "class %s ¤òÆɹþ¤à¤Î¤Ï %s ¤«¤éÆó²óÌܤˤʤê¤Þ¤¹"
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr "¥Õ¥£¡¼¥ë¥É¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr "¥á¥½¥Ã¥É¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr "final °À­¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
#, fuzzy
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr "Code °À­¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
#, fuzzy
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr "¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËºÆ¤Ó¸½¤ì¤Þ¤·¤¿¤¬¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤Î¤Ï°ìÅÙ¤À¤±¤Ç¤¹"
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "zip/jar ¥Õ¥¡¥¤¥ë %s ¤ÏÉÔÀµ¤Ç¤¹"
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, fuzzy, c-format
msgid "error while reading %s from zip file"
msgstr "¥Õ¥£¡¼¥ë¥É¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "generate_bytecode_insn ¤ÇÆâÉô¥¨¥é¡¼ - ¥Ä¥ê¡¼¥³¡¼¥É¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: %s"
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
#, fuzzy
msgid "field initializer type mismatch"
msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "¥Ç¥£¥ì¥¯¥È¥ê %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, fuzzy, c-format
msgid "can't open %s for writing: %m"
msgstr "%s ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤±¤Þ¤»¤ó¤Ç¤·¤¿"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "%s ¤òºÆ open ¤Ç¤­¤Þ¤»¤ó"
@@ -19251,27 +19364,27 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
#, fuzzy
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr "`--print-main', `--list-class', `--complexity' ¤«¤é¤Ï°ì¤Ä¤·¤«Áª¤Ù¤Þ¤»¤ó"
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "¹½Ê¸²òÀÏ¥¨¥é¡¼"
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, c-format
msgid "%s: warning: "
msgstr "%s: ·Ù¹ð: "
@@ -19327,15 +19440,15 @@ msgstr "@FILE ¤Ç¤ÎÊ£¿ô¥Õ¥¡¥¤¥ë¤Î»ÈÍѤϼÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
msgid "cannot specify 'main' class when not linking"
msgstr "¥ê¥ó¥¯»þ°Ê³°¤Ë¤Ï `main' ¥¯¥é¥¹¤ò»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr "ɸ½àÆþÎϤ«¤é¤ÎÆþÎϤǤϰ͸´Ø·¸¤ÎÄÉÀפ¬¤Ç¤­¤Þ¤»¤ó"
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr "°Í¸´Ø·¸¤ÎÄÉÀפΤ¿¤á¤Î¥¿¡¼¥²¥Ã¥È̾¤¬ÆÃÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
-#: java/lex.c:256
+#: java/lex.c:260
#, fuzzy
msgid ""
"unknown encoding: %qs\n"
@@ -19350,7 +19463,7 @@ msgstr ""
"¤ÎÆÃÄꥨ¥ó¥³¡¼¥É¤ò»È¤¦¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢`--encoding=UTF-8' ¥ª¥×¥·¥ç¥ó\n"
"¤ò»È¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£"
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "ÆâÉô¥¨¥é¡¼ - ̵¸ú¤Ê Utf8 ̾¤Ç¤¹"
@@ -19364,225 +19477,225 @@ msgstr "%s ¤Î̾Á°ÊÑ´¹(mangle) ¤Ç¤­¤Þ¤»¤ó"
msgid "internal error - invalid Utf8 name"
msgstr "ÆâÉô¥¨¥é¡¼ - ̵¸ú¤Ê Utf8 ̾¤Ç¤¹"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr "¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "';' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:775
+#: java/parse.y:774
#, fuzzy, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr "¤¢¤¤¤Þ¤¤¤Ê¾Êά %s ¤Ç¤¹"
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "'*' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr "¥¯¥é¥¹¤ä¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬É¬ÍפǤ¹"
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "'{' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr "¥¹¡¼¥Ñ¡¼¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr "¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr "ÊÑ¿ô½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "']' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr "Âбþ¤Î¤Ê¤¤ ']' ¤Ç¤¹"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹"
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr "¼±Ê̻Ҥ¬É¬ÍפǤ¹"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹"
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "')' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr "Àµ¼°¤Ê²¾°ú¿ô¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "¼±Ê̻Ҥò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr "¥¯¥é¥¹¥¿¥¤¥×¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr "¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹·¿¤¬Ìµ¸ú¤Ç¤¹"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "':' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "'(' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr "¹à¤Þ¤¿¤Ï ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr "¹à¤Èɬ¿Ü¤Î ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr "̵¸ú¤ÊÀ©¸æ¼°¤Ç¤¹"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr "̵¸ú¤Ê¹¹¿·¼°¤Ç¤¹"
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr "̵¸ú¤Ê½é´ü²½¼°¤Ç¤¹"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr "¹à¤Þ¤¿¤Ïɬ¿Ü¤Î ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr "'class' ¤Þ¤¿¤Ï 'this' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr "'class' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr "')' ¤Þ¤¿¤Ï¹à¤¬É¬ÍפǤ¹"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "'[' ¤¬É¬ÍפǤ¹"
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr "¥Õ¥£¡¼¥ë¥É¤¬É¬ÍפǤ¹"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr "¹à¤Èɬ¿Ü¤Î ']' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr "']' ¤¬É¬Íפǡ¢Ìµ¸ú¤Ê·¿É½¸½¤Ç¤¹"
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr "̵¸ú¤Ê·¿É½¸½¤Ç¤¹"
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr "̵¸ú¤Ê»²¾È·¿¤Ç¤¹"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Îµ¯Æ°¤Ï¥³¥ó¥¹¥È¥é¥¯¥¿Æâ¤ÇºÇ½é¤Ë¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤À¤±¤¬¥³¥ó¥¹¥È¥é¥¯¥¿¤òµ¯Æ°¤Ç¤­¤Þ¤¹"
-#: java/parse.y:3042
+#: java/parse.y:3041
#, fuzzy, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ": `%s' ¤Ï JDK1.1(TM) ¤Îµ¡Ç½¤Ç¤¹"
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19591,687 +19704,687 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "̵¸ú¤Ê½é´ü²½¼°¤Ç¤¹"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, c-format
msgid "%s %qs already defined in %s:%d"
msgstr ""
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, c-format
msgid "Interface %qs repeated"
msgstr ""
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
msgid "Qualifier must be a reference"
msgstr ""
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Î´Ø¿ôËÜÂΤò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, fuzzy, c-format
msgid "Can't subclass final classes: %s"
msgstr "¥¯¥é¥¹ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "`%s' ¤ÎÀë¸À¤Ç·¿¤¬¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤µ¤ì¤Þ¤·¤¿"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
#, fuzzy
msgid "Class %qs not found in %<throws%>"
msgstr "¥Õ¥£¡¼¥ë¥É '%s' ¤¬¥¯¥é¥¹Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, fuzzy, c-format
msgid "Class or interface %qs not found in import"
msgstr "¥¯¥é¥¹¤ä¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬É¬ÍפǤ¹"
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "CLASSPATH Æâ¤ËÊÑ¤Ê .zip ¥¢¡¼¥«¥¤¥Ö¤¬¤¢¤ê¤Þ¤¹: %s"
-#: java/parse.y:7148
+#: java/parse.y:7151
#, fuzzy, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr "¥Ç¥Õ¥©¥ë¥È¥Ñ¥Ã¥±¡¼¥¸ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£CLASSPATH ´Ä¶­ÊÑ¿ô¤È¥¢¡¼¥«¥¤¥Ö¤Ø¤Î¥¢¥¯¥»¥¹¤ò³Î¤«¤á¤Æ¤¯¤À¤µ¤¤¡£"
-#: java/parse.y:7153
+#: java/parse.y:7156
#, fuzzy, c-format
msgid "Package %qs not found in import"
msgstr "¥Õ¥£¡¼¥ë¥É '%s' ¤¬¥¯¥é¥¹Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "ÊÑ¿ô `%s' ¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤¬¥¯¥é¥¹¥á¥½¥Ã¥É¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤·¤¿"
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "¥¯¥é¥¹ %s ÍѤΥե¡¥¤¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, fuzzy, c-format
msgid "Can't use type %qs as a qualifier"
msgstr "'%s' ¤ò %s ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, fuzzy, c-format
msgid "No variable %qs defined in type %qs"
msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "`%s' ¤ËÂФ¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹Àë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "%s ¤Î¤¿¤á¤Î case ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "ÂåÆþ¤È¤·¤Æ̵¸ú¤Êº¸ÊÕÃͤǤ¹"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤±é»»»Ò %s ¤Ç¤¹"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
msgid "Invalid argument %qs for %<instanceof%>"
msgstr ""
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó %s"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "ÈóÄê¿ôÇÛÎó¼°¤«¤éÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤«¤éÃͤòÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "¤³¤³¤¬°ÊÁ°¤ÎÀë¸À¤¬¤¢¤ë°ÌÃ֤Ǥ¹"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "continue ʸ¤¬ loop ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "continue ʸ¤¬ loop ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "break ʸ¤¬ loop ¤Þ¤¿¤Ï switch ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
#, fuzzy
msgid "original label is here"
msgstr "Á´¤Æ¤Î¥é¥Ù¥ë¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "¥·¥°¥Í¥¤¥Á¥ãʸ»úÎó¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, fuzzy, c-format
msgid "verification failed: %s"
msgstr "¸¡¾Ú¥¨¥é¡¼ (PC=%d)"
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, fuzzy, c-format
msgid "verification failed at PC=%d: %s"
msgstr "¸¡¾Ú¥¨¥é¡¼ (PC=%d)"
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr "exception_table ¤ËÉÔÀµ¤Ê pc ¤¬¤¢¤ê¤Þ¤¹"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "ÉÔÌÀ¤Ê opcode %d@pc=%d ¤ò¸¡¾ÚÃæ¤Ëȯ¸«¤·¤Þ¤·¤¿"
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr "¸¡¾Ú¥¨¥é¡¼ (PC=%d)"
@@ -20319,184 +20432,184 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "´ÖÀÜŪ¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÂè %d °ú¿ô¤ËÂФ·¤Æ¸ß´¹À­¤Î¤Ê¤¤·¿¤Ç¤¹"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
#, fuzzy
msgid "%<@end%> must appear in an @implementation context"
msgstr "`@end' ¤Ï¼ÂÁõ¥³¥ó¥Æ¥¯¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "¥á¥½¥Ã¥ÉÄêµÁ¤¬¥¯¥é¥¹¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "¥á¥½¥Ã¥ÉÄêµÁ¤¬¥¯¥é¥¹¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, fuzzy, c-format
msgid "object does not conform to the %qs protocol"
msgstr "¥ª¥Ö¥¸¥§¥¯¥È¤¬ `%s' ¥×¥í¥È¥³¥ë¤ËŬ¹ç¤·¤Þ¤»¤ó"
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "¥¯¥é¥¹ `%s' ¤Ï `%s' ¥×¥í¥È¥³¥ë¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, fuzzy, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr "¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀÅŪ¤Ê³äÅö¤Æ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "`%s' ¤ËÂФ¹¤ë¥×¥í¥È¥³¥ëÀë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "`%s' ¤ËÂФ¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹Àë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr ""
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "¥¯¥é¥¹ %s ÍѤΥե¡¥¤¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr ""
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "¥¯¥é¥¹ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "¥¯¥é¥¹ `%s' ¤Ï´û¤Ë¸ºß¤·¤Þ¤¹"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
#, fuzzy
msgid "%Jprevious declaration of '%D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
msgstr ""
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
msgstr ""
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
msgstr ""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "%s: %s"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤Î»ÅÍͤ¬°ì´Ó¤·¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
#, fuzzy
msgid "can not use an object as parameter to a method"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó"
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "`%s' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë´ðÄ쥯¥é¥¹¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "¥ì¥·¡¼¥Ð·¿ `%s' ¤¬Ìµ¸ú¤Ç¤¹"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "¥Õ¥£¡¼¥ë¥É '%s' ¤¬¥¯¥é¥¹Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
msgstr ""
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, c-format
msgid "undeclared selector %qs"
msgstr ""
@@ -20510,151 +20623,151 @@ 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤¬¥¯¥é¥¹¥á¥½¥Ã¥É¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤·¤¿"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "¥¯¥é¥¹¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "¥«¥Æ¥´¥ê `%s(%s)' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "Èó static ¥í¡¼¥«¥ëÊÑ¿ô `%s' ¤Ø¤Î asm »ØÄê»Ò¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤Ï %s ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Î̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "Èó static ¥í¡¼¥«¥ëÊÑ¿ô `%s' ¤Ø¤Î asm »ØÄê»Ò¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, c-format
msgid "type %qs has a user-defined constructor"
msgstr ""
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, c-format
msgid "type %qs has a user-defined destructor"
msgstr ""
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤Ï private ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, fuzzy, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤Ï private ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤Ï %s ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "`id' ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂΤ¹¤ëÀÅŪ¥¢¥¯¥»¥¹¤Ç¤¹"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
msgstr "¥¯¥é¥¹ `%s' ¤Î¼ÂÁõ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
msgstr "¥«¥Æ¥´¥ê `%s' ¤Î¼ÂÁõ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
#, fuzzy
msgid "method definition for %<%c%s%> not found"
msgstr "`%c%s' ¤Î¥á¥½¥Ã¥ÉÄêµÁ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "%s `%s' ¤Ï `%s' ¥×¥í¥È¥³¥ë¤ò´°Á´¤Ë¤Ï¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
#, fuzzy
msgid "%<@end%> missing in implementation context"
msgstr "`@end' ¤Ï¼ÂÁõ¥³¥ó¥Æ¥¯¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "`%s' ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡Ê`%s' ¤Î´ðÄ쥯¥é¥¹¤Ç¤¹¡Ë"
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "¥¯¥é¥¹ `%s' ¤ÎºÆ¼ÂÁõ¤Ç¤¹"
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "´ðÄ쥯¥é¥¹Ì¾ `%s' ¤¬¾×Æͤ·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "¥¯¥é¥¹ `%s' ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "¥×¥í¥È¥³¥ë '%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "`%s' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë´ðÄ쥯¥é¥¹¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] ¤Ï¥á¥½¥Ã¥É¥³¥ó¥Æ¥­¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "`%s' ¤Î¥í¡¼¥«¥ëÀë¸À¤Ç¡¢¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤¬±£¤µ¤ì¤Þ¤¹"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "struct ¤ä union ¤ÎÃæ¤Ç;ʬ¤Ê¥»¥ß¥³¥í¥ó¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
@@ -20664,22 +20777,22 @@ msgstr "struct ¤ä union ¤ÎÃæ¤Ç;ʬ¤Ê¥»¥ß¥³¥í¥ó¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
msgid "%HDuplicate name %q.*s."
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹"
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "register ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
@@ -21063,724 +21176,724 @@ msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤Î·×»»¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
#: options.c:1237
#, fuzzy
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬Éä¹ç̵¤·¤«¤éÉä¹çÉÕ¤­¤Ë³Ê¾å¤²¤È¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
+
+#: options.c:1240
+#, fuzzy
msgid "Warn if inherited methods are unimplemented"
msgstr "ÇÉÀ¸¥á¥½¥Ã¥É¤¬Ì¤¼ÂÁõ¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Ʊ°ì¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀë¸À¤¬Ê£¿ô¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr "»ØÄꤵ¤ì¤¿½¤¾þ»Ò¤¬ÉÔÍפʤâ¤Î¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr "¥³¥ó¥Ñ¥¤¥é¤¬¥³¡¼¥É¤òʤÙÂؤ¨¤ë¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1249
+#: options.c:1252
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr ""
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr "¥»¥ì¥¯¥¿¤¬Ê£¿ô¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr "ÉûºîÍÑ´°Î»ÅÀµ¬Â§¤òÇˤë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr "¤¢¤ë¥í¡¼¥«¥ëÊÑ¿ô¤¬Â¾¤Î¤â¤Î¤òʤ¤¤±£¤¹¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1261
+#: options.c:1264
#, fuzzy
msgid "Warn about signed-unsigned comparisons"
msgstr "Éä¹çÉÕ¤­/Éä¹ç̵¤·¤ÎÈæ³Ó¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬Éä¹ç̵¤·¤«¤éÉä¹çÉÕ¤­¤Ë³Ê¾å¤²¤È¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
#, fuzzy
msgid "Warn about code which might break strict aliasing rules"
msgstr "format °À­¤ò¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "¥×¥í¥È¥¿¥¤¥×¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "µ¿¤ï¤·¤¤ main ¤ÎÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1279
+#: options.c:1282
#, fuzzy
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1282
+#: options.c:1285
#, fuzzy
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1285
+#: options.c:1288
#, fuzzy
msgid "Warn about all enumerated switches missing a specific case"
msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1288
+#: options.c:1291
#, fuzzy
msgid "Warn when synthesis behavior differs from Cfront"
msgstr "¹çÀ®¤Î¿¶¤ëÉñ¤¤¤¬ Cfront ¤È°Û¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr "¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤·¤Ê¤¤"
-#: options.c:1294
+#: options.c:1297
#, fuzzy
msgid "Warn about features not present in traditional C"
msgstr "¸Å¤¤ C ¤Ç¤Ï #elif ¤ò»È¤ï¤Ê¤¤Êý¤¬¤¤¤¤¤Ç¤¹"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
#, fuzzy
msgid "Warn about @selector()s without previously declared methods"
msgstr "»öÁ°¤ÎÀë¸À¤Ê¤·¤ÎÂç°è´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1303
+#: options.c:1306
#, fuzzy
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "̤ÄêµÁËô¤ÏÉÔÀµ¤Ê # ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤¹"
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: options.c:1309
+#: options.c:1312
#, fuzzy
msgid "Warn about uninitialized automatic variables"
msgstr "½é´ü²½¤µ¤ì¤Ê¤¤¼«Æ°ÊÑ¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ pragma ¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr "¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¥³¡¼¥É¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "´Ø¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "¥é¥Ù¥ë¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "´Ø¿ô¤Î²¾°ú¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "¼°¤ÎÃͤ¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "ÊÑ¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: options.c:1342
+#: options.c:1345
#, fuzzy
msgid "Do not warn about using variadic macros when -pedantic"
msgstr "-pedantic »ØÄê»þ¤Ç¤â 'long long' ¤Î»ÈÍѤˤĤ¤¤Æ¤Ï·Ù¹ð¤·¤Ê¤¤"
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
#, fuzzy
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr " -aux-info <file> Àë¸À¾ðÊó¤ò <file> ¤Øȯ¹Ô¤¹¤ë\n"
-#: options.c:1363
+#: options.c:1366
#, fuzzy
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr " -d[letters] ¥³¥ó¥Ñ¥¤¥é¤Î²áÄø¤«¤é¤Î¥À¥ó¥×¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
#, fuzzy
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr " -dumpbase <file> ²áÄø¤«¤é¤Î¥À¥ó¥×¤Ë»È¤ï¤ì¤ë̾Á°¤Î¥Ù¡¼¥¹¤È¤¹¤ë\n"
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
#, fuzzy
msgid "Generate position-independent code if possible (large mode)"
msgstr "²Äǽ¤Ç¤¢¤ì¤Ð°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:1378
+#: options.c:1381
#, fuzzy
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr "²Äǽ¤Ç¤¢¤ì¤Ð°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:1384
+#: options.c:1387
#, fuzzy
msgid "Enforce class member access control semantics"
msgstr "¥¢¥¯¥»¥¹À©¸æ¤Î°ÕÌ£¤Ë½¾¤ï¤Ê¤¤"
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr "´Ø¿ô¤Î³«»Ï¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr "¥é¥Ù¥ë¤Î¤¦¤Á¥¸¥ã¥ó¥×ÅþãÀè¤È¤Ê¤ë¤â¤Î¤À¤±¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr "Á´¤Æ¤Î¥é¥Ù¥ë¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr "¥ë¡¼¥×¤Î³«»Ï¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr "¥Æ¥ó¥×¥ì¡¼¥È¥¤¥ó¥¹¥¿¥ó¥¹¤¬Á÷½Ð¤µ¤ì¤¿»þ¤ËÊѹ¹¤¹¤ë"
-#: options.c:1417
+#: options.c:1420
#, fuzzy
msgid "Specify that arguments may alias each other and globals"
msgstr "°ú¿ô¤ÈÂç°è¥Ç¡¼¥¿¤ä¾¤Î°ú¿ô¤ÈÊÌ̾¤Ë¤Ê¤ê¤¦¤ë»ö¤ò»ØÄꤹ¤ë"
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr "°ú¿ô¤ÈÂç°è¥Ç¡¼¥¿¤ÏÊÌ̾¤Ë¤Ê¤ê¤¦¤ë¤¬Â¾¤Î°ú¿ô¤È¤ÏÊÌ̾¤Ç¤Ï¤Ê¤¤¤È¤ß¤Ê¤¹"
-#: options.c:1423
+#: options.c:1426
#, fuzzy
msgid "Assume arguments alias neither each other nor globals"
msgstr "°ú¿ô¤¬Âç°è¥Ç¡¼¥¿¤ä¾¤Î°ú¿ô¤ÈÊÌ̾¤Ë¤Ï¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤¹"
-#: options.c:1426
+#: options.c:1429
#, fuzzy
msgid "Recognize the \"asm\" keyword"
msgstr "'asm' ͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
#, fuzzy
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr "´¬¤­Ìᤷ¤ò¹Ô¤Ê¤¦Îã³°Êä­Íѥơ¼¥Ö¥ë¤òÀ¸À®¤¹¤ë"
-#: options.c:1441
+#: options.c:1444
#, fuzzy
msgid "--bootclasspath=<path>\tReplace system path"
msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤷ¤Æ¥·¥¹¥Æ¥à¥Ñ¥¹¤ò±£¤¹"
-#: options.c:1444
+#: options.c:1447
#, fuzzy
msgid "Generate code to check bounds before indexing arrays"
msgstr "ÇÛÎó¤Îź»ú¤Èź»ú¶­³¦¤ò¸¡ºº¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:1447
+#: options.c:1450
#, fuzzy
msgid "Replace add, compare, branch with branch on count register"
msgstr "²Ã»»¡¢Èæ³Ó¥Ö¥é¥ó¥Á¤ÎÂå¤ï¤ê¤Ë¥«¥¦¥ó¥È¥ì¥¸¥¹¥¿¤Î¥Ö¥é¥ó¥Á¤ò»È¤¦"
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr "ʬ´ô·ÐÏ©¿ä¬ÍѤΥץí¥Õ¥¡¥¤¥ë¾ðÊó¤òÍøÍѤ¹¤ë"
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: options.c:1468
+#: options.c:1471
#, fuzzy
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr " -fcall-saved-<register> <register> ¤¬´Ø¿ô¤òÄ̤¸¤ÆÊÝ»ý¤µ¤ì¤ë¤È¥Þ¡¼¥¯¤¹¤ë\n"
-#: options.c:1471
+#: options.c:1474
#, fuzzy
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr " -fcall-used-<register> ´Ø¿ô¸Æ¤Ó½Ð¤·¤ÇÇ˲õ¤µ¤ì¤ë <register> ¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë\n"
-#: options.c:1474
+#: options.c:1477
#, fuzzy
msgid "Save registers around function calls"
msgstr "´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁ°¸å¤Ç¥ì¥¸¥¹¥¿¤ÎÊݸ¤òÍ­¸ú¤Ë¤¹¤ë"
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr "new ¤ÎÌá¤êÃͤò¸¡ºº¤¹¤ë"
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "DLL ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
#, fuzzy
msgid "Do not put uninitialized globals in the common section"
msgstr "Âç°èÊÑ¿ôÅù¤ò½é´ü²½¤µ¤ì¤Ê¤¤¥³¥â¥ó¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤Ê¤¤"
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1498
#, fuzzy
msgid "Reduce the size of object files"
msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë"
-#: options.c:1498
+#: options.c:1501
#, fuzzy
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤ò `const char[]' ¤ÎÂå¤ï¤ê¤Ë `char[]' ¤È¤¹¤ë"
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
#, fuzzy
msgid "Perform a register copy-propagation optimization pass"
msgstr "ºÇŬ²½²áÄø¤Î¥ì¥¸¥¹¥¿¤Ä¤±ÊѤ¨¤ò¹Ô¤Ê¤¦"
-#: options.c:1507
+#: options.c:1510
#, fuzzy
msgid "Perform cross-jumping optimization"
msgstr "¥¸¥ã¥ó¥×ʬ´ôºÇŬ²½¤ò¹Ô¤Ê¤¦"
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr "CSE ¤ÇÆ°ºî¤¹¤ë¤È¤­¡¢¤½¤ì¤é¤Î¥¿¡¼¥²¥Ã¥È¤Ø¤Î¥¸¥ã¥ó¥×¤ËÄɿ魯¤ë"
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr "CSE ¤ÇÆ°ºî¤¹¤ë¤È¤­¡¢¾ò·ï¥¸¥ã¥ó¥×¤ËÄɿ魯¤ë"
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
#, fuzzy
msgid "Place data items into their own section"
msgstr "¥Ç¡¼¥¿¹àÌܤò¤½¤ì¤é¼«¿È¤Î¥»¥¯¥·¥ç¥ó¤ËÇÛÃÖ¤¹¤ë"
-#: options.c:1519
+#: options.c:1525
#, fuzzy
msgid "Inline member functions by default"
msgstr "¥á¥ó¥Ð´Ø¿ô¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¥¤¥ó¥é¥¤¥ó¤È¤·¤Ê¤¤"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr "´Ø¿ô°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤«¤é pop ¤¹¤ë¤Î¤ò¸Æ¤Ó½Ð¤·¸å¤Þ¤ÇÃ٤餻¤ë"
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr "ʬ´ôÌ¿Îá¤ÎÃٱ䥹¥í¥Ã¥È¤ò»È¤¦¤³¤È¤ò»î¤ß¤ë"
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr "̵°ÕÌ£¤Ê null ¥Ý¥¤¥ó¥¿¸¡ºº¤òºï½ü¤¹¤ë"
-#: options.c:1531
+#: options.c:1537
#, fuzzy
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr ""
" -fdiagnostics-show-location=[once | every-line] ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤Î²þ¹Ô¤ÎºÝ¤Ë,\n"
" ¥½¡¼¥¹°ÌÃÖ¾ðÊ󤬹Ԥκǽé¤Ëɽ¼¨¤µ¤ì¤ëÉÑÅÙ¤ò»ØÄꤹ¤ë\n"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
#, fuzzy
msgid "Permit '$' as an identifier character"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¥ï¥¤¥Éʸ»úÎó¤Ç¤¹"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
msgid "Display the code tree after parsing."
msgstr ""
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr "¥Ç¥Ð¥Ã¥°¥À¥ó¥×¤ÇÌ¿ÎáÈÖ¹æ¤È¹ÔÈÖ¹æ¥Î¡¼¥È¤Î½ÐÎϤòÍÞÀ©¤¹¤ë"
-#: options.c:1558
+#: options.c:1564
#, fuzzy
msgid "Perform DWARF2 duplicate elimination"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
#, fuzzy
msgid "Generate code to check exception specifications"
msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Îã³°Ê᪤òÍ­¸ú¤Ë¤¹¤ë"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
#, fuzzy
msgid "Perform a number of minor, expensive optimizations"
msgstr "ÌÜΩ¤¿¤Ê¤¤¡¢¥³¥¹¥È¤Î¤«¤«¤ëºÇŬ²½¤ò¹Ô¤Ê¤¦"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
#, fuzzy
msgid "Input file is a file with a list of filenames to compile"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¥Õ¥¡¥¤¥ë̾¤Î¥ê¥¹¥È¤È¤¹¤ë"
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
#, fuzzy
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr " -ffixed-<register> ¥³¥ó¥Ñ¥¤¥é¤ËÂФ· <register> ¤ò»ÈÍÑÉԲĤȥޡ¼¥¯¤¹¤ë\n"
-#: options.c:1615
+#: options.c:1621
#, fuzzy
msgid "Assume that the source file is fixed form"
msgstr "¥Ý¥¤¥ó¥¿¤ÏÊÌ̾¤Ë¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤¹"
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
#, fuzzy
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr "À°¿ô¥ì¥¸¥¹¥¿¤Î³ÎÊݽç¤òÀ©¸æ¤¹¤ë"
-#: options.c:1627
+#: options.c:1633
#, fuzzy
msgid "Scope of for-init-statement variables is local to the loop"
msgstr "for ½é´ü²½Ê¸¤ÎÊÑ¿ô¤ò¥¹¥³¡¼¥×³°¤Ë³ÈÂ礹¤ë"
-#: options.c:1630
+#: options.c:1636
#, fuzzy
msgid "Copy memory address constants into registers before use"
msgstr "¥á¥â¥ê¥¢¥É¥ì¥¹Äê¿ô¤òÍøÍѤ¹¤ëÁ°¤Ë¥ì¥¸¥¹¥¿¤Ø¥³¥Ô¡¼¤¹¤ë"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr "gcj ¤¬À¸À®¤·¤Æ¤¤¤Ê¤¤¥¯¥é¥¹¥¢¡¼¥«¥¤¥Ö¤ò¾ï¤Ë¸¡ºº¤¹¤ë"
-#: options.c:1636
+#: options.c:1642
#, fuzzy
msgid "Copy memory operands into registers before use"
msgstr "¥á¥â¥ê¥ª¥Ú¥é¥ó¥É¤òÍøÍѤ¹¤ëÁ°¤Ë¥ì¥¸¥¹¥¿¤Ø¥³¥Ô¡¼¤¹¤ë"
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
#, fuzzy
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr "ɸ½à¥é¥¤¥Ö¥é¥ê¤ä main ¤¬Â¸ºß¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤â¤Î¤È¤¹¤ë"
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr "´Ø¿ô¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤Ë»ý¤¿¤»¤ë»ö¤òµö²Ä¤¹¤ë"
-#: options.c:1648
+#: options.c:1654
#, fuzzy
msgid "Place each function into its own section"
msgstr "³Æ¡¹¤Î´Ø¿ô¤ò¤½¤ì¼«¿È¤Î¥»¥¯¥·¥ç¥ó¤ËÇÛÃÖ¤¹¤ë"
-#: options.c:1651
+#: options.c:1657
#, fuzzy
msgid "Perform global common subexpression elimination"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: options.c:1654
+#: options.c:1660
#, fuzzy
msgid "Perform global common subexpression elimination after register allocation"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: options.c:1657
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1666
#, fuzzy
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: options.c:1663
+#: options.c:1669
#, fuzzy
msgid "Perform store motion after global common subexpression elimination"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: options.c:1666
+#: options.c:1672
#, fuzzy
msgid "Recognize GNU-defined keywords"
msgstr "GNU ÄêµÁ¤ÎͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr "GNU ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:1672
+#: options.c:1678
#, fuzzy
msgid "Enable guessing of branch probabilities"
msgstr "ʬ´ô·ÐÏ©¿ä¬¤òÍ­¸ú¤Ë¤¹¤ë"
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr "Ä̾ï¤Î C ¼Â¹Ô´Ä¶­¤òÁ°Äó¤È¤¹¤ë"
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr "Â礭¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥Ý¡¼¥È"
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "#ident ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò½èÍý¤¹¤ë"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
#, fuzzy
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "¾ò·ïŪ¤Ê¼Â¹Ô¤Ø¤ÎÊѹ¹¤Î¤¿¤á¤ÎïçÃͤòÊѹ¹¤¹¤ë"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr "¥¤¥ó¥é¥¤¥ó¤Ë¤Ç¤­¤ë´Ø¿ô¤Ç¤â export ¤¹¤ë"
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr ".size µ¿»÷Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: options.c:1720
+#: options.c:1726
#, fuzzy
msgid "Pay attention to the \"inline\" keyword"
msgstr "'inline' ¥­¡¼¥ï¡¼¥É¤ËÃí°Õ¤òʧ¤¦"
-#: options.c:1729
+#: options.c:1735
#, fuzzy
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr " -finline-limit=<number> ¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¥µ¥¤¥º¤ò <number> ¤ËÀ©¸Â¤¹¤ë\n"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
#, fuzzy
msgid "Instrument function entry and exit with profiling calls"
msgstr "´Ø¿ô¤ÎÆþ¤ê¸ý/½Ð¸ý¤Ç¥×¥í¥Õ¥¡¥¤¥ë¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë"
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr "native ´Ø¿ô¤¬ JNI ¤òÍøÍѤ·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹"
-#: options.c:1744
+#: options.c:1750
#, fuzzy
msgid "Generate code for functions even if they are fully inlined"
msgstr "Á´¤Æ¥¤¥ó¥é¥¤¥ó¤È¤µ¤ì¤¿¤È¤·¤Æ¤â´Ø¿ô¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr "»ÈÍѤµ¤ì¤Ê¤¤ÀÅŪÄê¿ôÊÑ¿ô¤Ç¤¢¤Ã¤Æ¤â½ÐÎϤ¹¤ë"
-#: options.c:1753
+#: options.c:1759
#, fuzzy
msgid "Give external symbols a leading underscore"
msgstr "³°Éô¥·¥ó¥Ü¥ë¤ËƬʸ»ú¥¢¥ó¥À¡¼¥¹¥³¥¢¤ò»ý¤¿¤»¤ë"
-#: options.c:1756
+#: options.c:1762
#, fuzzy
msgid "Perform loop optimizations"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
-#: options.c:1759
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr "ÁȤ߹þ¤ß¿ô³Ø´Ø¿ô¤Î¸å¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
#, fuzzy
msgid "Report on permanent memory allocation"
msgstr "¼Â¹Ô½ªÎ»»þ¤Ë±Ê³Ū¤Ë³ÎÊݤµ¤ì¤¿¥á¥â¥ê¤òÊó¹ð¤¹¤ë"
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1786
#, fuzzy
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr " -fmessage-length=<number> ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò°ì¹ÔÊÕ¤ê <number> ʸ»ú¤ËÀ©¸Â¤¹¤ë¡£ 0 ¤À¤È²þ¹Ô¤òÍÞÀ©¤¹¤ë\n"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
#, fuzzy
msgid "Move loop invariant computations out of loops"
msgstr "¥ë¡¼¥×Ãæ¤ËÉÔÊѤʷ׻»¤ò¥ë¡¼¥×¤Î³°¤Ë°ÜÆ°¤¹¤ë"
-#: options.c:1792
+#: options.c:1798
#, fuzzy
msgid "Don't warn about uses of Microsoft extensions"
msgstr "Microsoft ³ÈÄ¥¤ÎÍøÍѤ˴ؤ·¤Æ pedantic ·Ù¹ð¤ò¹Ô¤ï¤Ê¤¤"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-#, fuzzy
-msgid "Use graph-coloring register allocation"
-msgstr "¥ì¥¸¥¹¥¿³ÎÊݤÎÁ°¤ËÌ¿Îá¤òÊ¤Ùľ¤¹"
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
#, fuzzy
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
@@ -22243,341 +22356,346 @@ msgstr "SSA ºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë"
#: options.c:2161
#, fuzzy
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr " -fsched-verbose=<number> ¥¹¥±¥¸¥å¡¼¥é¤ÎñÁÀå¥ì¥Ù¥ë¤òÀßÄꤹ¤ë\n"
+
+#: options.c:2164
+#, fuzzy
msgid "Append underscores to externally visible names"
msgstr "³°ÉôÊÑ¿ô¤ËÆó¤ÄÌܤΥ¢¥ó¥À¡¼¥¹¥³¥¢¤òÉÕ¤±Â­¤µ¤Ê¤¤"
-#: options.c:2164
+#: options.c:2167
#, fuzzy
msgid "Compile whole compilation unit at a time"
msgstr "ËÝÌõñ°ÌÁ´ÂΤò¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë"
-#: options.c:2167
+#: options.c:2170
msgid "Perform loop unrolling for all loops"
msgstr "Á´¤Æ¤Î¥ë¡¼¥×¤Ç¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦"
-#: options.c:2170
+#: options.c:2173
msgid "Perform loop unrolling when iteration count is known"
msgstr "È¿Éü²ó¿ô¤¬´ûÃΤΤȤ­¡¢¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦"
-#: options.c:2173
+#: options.c:2176
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
-#: options.c:2176
+#: options.c:2179
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
-#: options.c:2179
+#: options.c:2182
#, fuzzy
msgid "Make \"char\" unsigned by default"
msgstr "'char' ¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÉä¹ç̵¤·¤È¤¹¤ë"
-#: options.c:2182
+#: options.c:2185
#, fuzzy
msgid "Perform loop unswitching"
msgstr "Á´¤Æ¤Î¥ë¡¼¥×¤Ç¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦"
-#: options.c:2185
+#: options.c:2188
msgid "Just generate unwind tables for exception handling"
msgstr "´¬¤­Ìᤷ¤ò¹Ô¤Ê¤¦Îã³°Êä­Íѥơ¼¥Ö¥ë¤òÀ¸À®¤¹¤ë"
-#: options.c:2188
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Boehm GC ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: options.c:2191
+#: options.c:2194
#, fuzzy
msgid "Use __cxa_atexit to register destructors"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤ÎÅÐÏ¿¤Ë __cxa_atexit ¤òÍøÍѤ¹¤ë"
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
#, fuzzy
msgid "Perform variable tracking"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
#, fuzzy
msgid "Add extra commentary to assembler output"
msgstr ";ʬ¤Ê¥³¥á¥ó¥È¤ò¥¢¥»¥ó¥Ö¥é½ÐÎϤËÄɲ乤ë"
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr ""
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr "»È¤ï¤ì¤Ê¤¤²¾ÁÛ´Ø¿ô¤òÀÚ¤ê¼Î¤Æ¤ë"
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr "thunk ¤ò»È¤Ã¤Æ vtable ¤ò¼ÂÁõ¤¹¤ë"
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr "¥³¥â¥ó¥·¥ó¥Ü¥ë¤ò¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤ÎÍͤËÀ¸À®¤¹¤ë"
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr "Áê¸ß»²¾È¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2239
+#: options.c:2242
#, fuzzy
msgid "Put zero initialized data in the bss section"
msgstr "Âç°èÊÑ¿ôÅù¤ò½é´ü²½¤µ¤ì¤Ê¤¤¥³¥â¥ó¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤Ê¤¤"
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
#, fuzzy
msgid "Generate debug information in default format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2248
+#: options.c:2251
#, fuzzy
msgid "Generate debug information in COFF format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2251
+#: options.c:2254
#, fuzzy
msgid "Generate debug information in DWARF v2 format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2254
+#: options.c:2257
#, fuzzy
msgid "Dump declarations to a .decl file"
msgstr "Àë¸À¤ò .decl ¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë"
-#: options.c:2257
+#: options.c:2260
#, fuzzy
msgid "Generate debug information in default extended format"
msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2260
+#: options.c:2263
#, fuzzy
msgid "Generate debug information in STABS format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2263
+#: options.c:2266
#, fuzzy
msgid "Generate debug information in extended STABS format"
msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2266
+#: options.c:2269
#, fuzzy
msgid "Generate debug information in VMS format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2269
+#: options.c:2272
#, fuzzy
msgid "Generate debug information in XCOFF format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2272
+#: options.c:2275
#, fuzzy
msgid "Generate debug information in extended XCOFF format"
msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
#, fuzzy
msgid "-o <file>\tPlace output into <file>"
msgstr " -o <file> ½ÐÎϤò <file> ¤Ë½ñ¤­¹þ¤à\n"
-#: options.c:2323
+#: options.c:2326
#, fuzzy
msgid "Enable function profiling"
msgstr "mips16 ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë"
-#: options.c:2326
+#: options.c:2329
#, fuzzy
msgid "Issue warnings needed for strict compliance to the standard"
msgstr " -pedantic ¸·Ì©¤Ê ISO C ¤Ø¤ÎŬ¹ç¤ËÍפ¹¤ë·Ù¹ð¤òȯ¤¹¤ë\n"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
#, fuzzy
msgid "Generate C header of platform-specific features"
msgstr "¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îµ¡Ç½¤Î C ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë"
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
#, fuzzy
msgid "Do not display functions compiled or elapsed time"
msgstr " -quiet ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ô¤ä·Ð²á»þ´Ö¤òɽ¼¨¤·¤Ê¤¤\n"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
#, fuzzy
msgid "Remap file names when including files"
msgstr "#%s ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤¬¶õ¤Ç¤¹"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
#, fuzzy
msgid "Enable traditional preprocessing"
msgstr "¥¹¥¿¥Ã¥¯Ãµº÷¤òÍ­¸ú¤Ë¤¹¤ë"
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
#, fuzzy
msgid "Enable verbose output"
msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤòÍ­¸ú¤Ë¤¹¤ë"
-#: options.c:2407
+#: options.c:2410
#, fuzzy
msgid "Suppress warnings"
msgstr "%s: ·Ù¹ð: "
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "-EB ¤È -EL ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
@@ -22596,38 +22714,38 @@ msgstr "-mhard-float ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó."
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float ¤È -msoft-float ¤ò°ìÅ٤˻ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:255
+#: config/darwin.h:258
#, fuzzy
msgid "-bundle not allowed with -dynamiclib"
msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/darwin.h:256
+#: config/darwin.h:259
#, fuzzy
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/darwin.h:257
+#: config/darwin.h:260
#, fuzzy
msgid "-client_name not allowed with -dynamiclib"
msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:268
#, fuzzy
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
@@ -22656,32 +22774,23 @@ msgstr ""
msgid "shared and mdll are not compatible"
msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
#, fuzzy
msgid "may not use both -m32 and -m64"
msgstr "-mfp64 ¤È -m4650 ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: treelang/lang-specs.h:52
-#, fuzzy
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-
#: config/vax/netbsd-elf.h:42
#, fuzzy
msgid "The -shared option is not currently supported for VAX ELF."
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤Ï¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
msgstr "-mg ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó\n"
@@ -22709,12 +22818,16 @@ msgstr "mno-cygwin ¤È mno-win32 ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
msgid "the m210 does not have little endian support"
msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: gcc.c:769
+#: gcc.c:763
#, fuzzy
msgid "GCC does not support -C or -CC without -E"
msgstr "GNU C ¤Ï -E ¤òȼ¤ï¤Ê¤¤ -C ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "ÆþÎϤ¬É¸½àÆþÎϤξì¹ç¤Ï -E ¤¬É¬ÍפǤ¹"
@@ -22732,10 +22845,15 @@ msgstr ""
msgid "does not support multilib"
msgstr "%s ¤Ï %s ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr ""
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
@@ -23124,6 +23242,9 @@ msgstr ""
#~ msgid "initialization of zero-length array inside a nested context"
#~ msgstr "¥Í¥¹¥È¤·¤¿Ê¸Ì®¤ÎÆ⦤ÇŤµ 0 ¤ÎÇÛÎó¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
+#~ msgid "initialization designators may not nest"
+#~ msgstr "½é´ü²½»Ø̾»Ò¤Ç¤Ï¥Í¥¹¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
+
#~ msgid "modification by `asm'"
#~ msgstr "`asm' ¤Ë¤è¤ë½¤Àµ"
@@ -23563,6 +23684,9 @@ msgstr ""
#~ msgid "The -mlong-double-64 option does not work yet."
#~ msgstr "-mlong-double-64 ¥ª¥×¥·¥ç¥ó¤Ï¤Þ¤ÀÆ°ºî¤·¤Þ¤»¤ó"
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Itanium (TM) ¥×¥í¥»¥Ã¥µ B step ÍÑ¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
+
#~ msgid "-msystem-v and -p are incompatible"
#~ msgstr "-msystem-v ¤È -p ¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
@@ -23761,6 +23885,12 @@ msgstr ""
#~ msgid "can't have varargs with -mfp-arg-in-fp-regs"
#~ msgstr "-mfp-arg-in-fp-regs ¤ò»È¤¦¤È²ÄÊѸİú¿ô¤ò»ý¤Æ¤Þ¤»¤ó"
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤¹¤ë"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤·¤Ê¤¤"
+
#~ msgid "-f%s ignored for AIX (all code is position independent)"
#~ msgstr "AIX ÍÑ¤Ë -f%s ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡ÊÁ´¤Æ¤Î¥³¡¼¥É¤Ï°ÌÃÖÈó°Í¸¤Ç¤¹¡Ë"
@@ -23920,9 +24050,6 @@ msgstr ""
#~ msgid "type name expected before `&'"
#~ msgstr "`&' ¤ÎÁ°¤Ë·¿¤Î̾Á°¤¬¤¢¤ë¤Ù¤­¤Ç¤¹"
-#~ msgid "semicolon missing after %s declaration"
-#~ msgstr "%s Àë¸À¤Î¸å¤í¤Î¥»¥ß¥³¥í¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
#~ msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
#~ msgstr "(̤Àë¸ÀÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬´Ø¿ôÆâ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿»þ¤À¤±Êó¹ð¤µ¤ì¤Þ¤¹¡£)"
@@ -24485,9 +24612,6 @@ msgstr ""
#~ msgid "current file is older than %s"
#~ msgstr "¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ï %s ¤è¤ê¸Å¤¤¤Ç¤¹"
-#~ msgid "_Pragma takes a parenthesized string literal"
-#~ msgstr "_Pramga ¤¬³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎó¥ê¥Æ¥é¥ë¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿"
-
#~ msgid "#else without #if"
#~ msgstr "#else ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
@@ -24527,9 +24651,6 @@ msgstr ""
#~ msgid "file \"%s\" entered but not left"
#~ msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ËÆþ¤ê¤Þ¤·¤¿¤¬½Ð¤Þ¤»¤ó¤Ç¤·¤¿"
-#~ msgid "invalid string literal, ignoring final '\\'"
-#~ msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤¬Ìµ¸ú¤Ç¤¹¡¢ºÇ¸å¤Î '\\' ¤ò̵»ë¤·¤Þ¤¹"
-
#~ msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
#~ msgstr "\"%s\" ¤È \"%s\" ¤òŽÉÕ¤±¤Þ¤·¤¿¤¬Àµ¾ï¤Ê¥×¥ê¥×¥í¥»¥Ã¥µ¥È¡¼¥¯¥ó¤È¤Ê¤ê¤Þ¤»¤ó"
@@ -24606,6 +24727,12 @@ msgstr ""
#~ msgid "can't get current directory"
#~ msgstr "¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+#~ msgid "Can't access real part of complex value in hard register"
+#~ msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿Æâ¤ÇÊ£ÁÇ¿ô¤Î¼Â¿ôÉôʬ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "can't access imaginary part of complex value in hard register"
+#~ msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿Æâ¤ÇÊ£ÁÇ¿ô¤Îµõ¿ôÉôʬ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó"
+
#~ msgid "function using short complex types cannot be inline"
#~ msgstr "short complex ·¿¤ò»È¤¦´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
@@ -25807,9 +25934,6 @@ msgstr ""
#~ msgid "first token = %d not %d in collect_formal_parameters"
#~ msgstr "collect_formal_parameters ÃæºÇ½é¤Î¥È¡¼¥¯¥ó = %d (%d ¤Ç¤Ï¤Ê¤¤)"
-#~ msgid "impossible token in macro argument list"
-#~ msgstr "¥Þ¥¯¥í°ú¿ô¥ê¥¹¥È¤Ë¤¢¤êÆÀ¤Ê¤¤¥È¡¼¥¯¥ó"
-
#~ msgid "illegal token in macro argument list"
#~ msgstr "¥Þ¥¯¥í°ú¿ô¥ê¥¹¥È¤ËÉÔÀµ¤Ê¥È¡¼¥¯¥ó"
@@ -25843,9 +25967,6 @@ msgstr ""
#~ msgid "macro `%s' used with only %d args"
#~ msgstr "¥Þ¥¯¥í `%s' ¤Î°ú¿ô(%d ¸Ä)¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#~ msgid "macro `%s' used with too many (%d) args"
-#~ msgstr "¥Þ¥¯¥í `%s' ¤Î°ú¿ô(%d ¸Ä)¤¬Â¿¤¹¤®¤Þ¤¹"
-
#~ msgid ""
#~ "Switches:\n"
#~ " -include <file> Include the contents of <file> before other files\n"
diff --git a/gcc/po/nl.po b/gcc/po/nl.po
index bf629dcef29..38829a355df 100644
--- a/gcc/po/nl.po
+++ b/gcc/po/nl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3.2\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\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"
@@ -42,70 +42,48 @@ msgstr "het `%s' attribuut heeft enkel betekenis voor functie-types"
msgid "offset outside bounds of constant string"
msgstr "offset buiten de grenzen van een constante string"
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "tweede argument voor `__builtin_prefetch' moet een constante zijn"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "ongeldig tweede argument voor __builtin_prefetch; zal nul gebruiken"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "derde argument voor `__builtin_prefetch' moet een constante zijn"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "ongeldig derde argument voor __builtin_prefetch; zal nul gebruiken"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "argument voor `__builtin_args_info' moet een constante zijn"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "argument voor `__builtin_args_info' buiten bereik"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "ontbrekend argument in `__builtin_args_info'"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "`va_start' gebruikt in functie met vaste argumenten"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "`__builtin_next_arg' opgeroepen zonder argument"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "teveel argumenten voor functie `va_start'"
-#: builtins.c:3869
-#, fuzzy
-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:4017
+#: builtins.c:4077
#, fuzzy
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr "het eerste argument van `va_arg' is geen `va_list'"
@@ -113,529 +91,559 @@ msgstr "het eerste argument van `va_arg' is geen `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:4031
+#: builtins.c:4091
#, fuzzy
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "`%s' wordt naar `%s' gepromoveerd indien het via `...' wordt doorgegeven"
-#: builtins.c:4036
+#: builtins.c:4096
#, fuzzy
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(dus U zou `%s' en niet `%s' moeten doorgeven aan `va_arg')"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4220
#, fuzzy
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "ongeldig argument voor `__builtin_frame_address'"
-#: builtins.c:4162
+#: builtins.c:4222
#, fuzzy
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "ongeldig argument voor `__builtin_return_address'"
-#: builtins.c:4176
+#: builtins.c:4235
#, fuzzy
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "niet-ondersteund argument voor `__builtin_frame_address'"
-#: builtins.c:4178
+#: builtins.c:4237
#, fuzzy
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "niet-ondersteund argument voor `__builtin_return_address'"
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "tweede argument voor `__builtin_expect' moet een constante zijn"
-#: builtins.c:5488
+#: builtins.c:5590
#, fuzzy
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "tweede argument van `__builtin_longjmp' moet 1 zijn"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr "doelformaat ondersteunt geen oneindige waarde"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "te weinig argumenten voor functie `%s'"
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "teveel argumenten voor functie `%s'"
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "niet-floating-point argument voor functie `%s'"
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr "`va_start' gebruikt in functie met vaste argumenten"
+
+#. 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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "`__builtin_next_arg' opgeroepen zonder argument"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "de tweede parameter van `va_start' is niet het laatste benoemde argument"
+
# betere vertaling voor 'function scope'?
-#: c-common.c:831
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "`%s' is niet gedefinieerd buiten een functie"
-#: c-common.c:852
+#: c-common.c:847
#, fuzzy, c-format
msgid "string length %qd is greater than the length %qd 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:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "overflow in constante expressie"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "integer overflow in expressie"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "floating-point overflow in expressie"
-#: c-common.c:933
+#: c-common.c:923
msgid "vector overflow in expression"
msgstr "vector overflow in expressie"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "grote integer impliciet afgekapt naar 'unsigned' type"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "negatieve integer impliciet omgezet naar 'unsigned' type"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "overflow in impliciete omzetting van constante"
-#: c-common.c:1151
+#: c-common.c:1141
#, fuzzy, c-format
msgid "operation on %qs may be undefined"
msgstr "bewerking op `%s' is mogelijk niet gedefinieerd"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "case-label valt niet te herleiden tot een integerconstante"
-#: c-common.c:1480
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
msgstr ""
-#: c-common.c:1488
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
msgstr ""
-#: c-common.c:1496
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
msgstr ""
-#: c-common.c:1505
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
msgstr ""
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "ongeldige waarheidsexpressie"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "ongeldige operanden voor binaire %s-operator"
-#: c-common.c:2112
+#: c-common.c:2116
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:2114
+#: c-common.c:2118
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:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "vergelijking van 'unsigned' expressie >= 0 is altijd waar"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "vergelijking van 'unsigned' expressie < 0 is altijd vals"
-#: c-common.c:2235
+#: c-common.c:2239
#, fuzzy
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "pointer van type `void *' gebruikt in rekensom"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "pointer naar functie gebruikt in rekensom"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "pointer naar lid-functie gebruikt in rekensom"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr ""
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr "gebruik liefst haakjes rond toewijzingen die als waarheid gebruikt worden"
-#: c-common.c:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "ongeldig gebruik van `restrict'"
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "ongeldige toepassing van `sizeof' op een functietype"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "ongeldige toepasing van `%s' op een void-type"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "ongeldige toepassing van `%s' op een onvolledig type"
-#: c-common.c:2813
+#: c-common.c:2848
#, fuzzy
msgid "%<__alignof%> applied to a bit-field"
msgstr "`__alignof' toegepast op bitveld"
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "ingebouwde functie `%s' kan niet uitgeschakeld worden"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "pointers zijn niet toegestaan als case-waarden"
-#: c-common.c:3452
+#: c-common.c:3509
#, fuzzy
msgid "range expressions in switch statements are non-standard"
msgstr "ISO C verbiedt het gebruik van bereik-expressies in switch statements"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "leeg bereik opgegeven"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "herhaalde (of overlappende) case-waarde"
-#: c-common.c:3537
+#: c-common.c:3594
#, fuzzy
msgid "%Jthis is the first entry overlapping that value"
msgstr "dit is de eerste waarde die die waarde overlapt"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "herhaalde case-waarde"
-#: c-common.c:3542
+#: c-common.c:3599
#, fuzzy
msgid "%Jpreviously used here"
msgstr "tevoren hier gebruikt"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "meerdere default-labels in één switch"
-#: c-common.c:3547
+#: c-common.c:3604
#, fuzzy
msgid "%Jthis is the first default label"
msgstr "dit is het eerste default-label"
-#: c-common.c:3596
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
msgstr ""
-#: c-common.c:3599
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr ""
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "dit is het eerste default-label"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
#, fuzzy
msgid "%Henumeration value %qE not handled in switch"
msgstr "enumeratiewaarde voor `%s' is geen integrale constante"
-#: c-common.c:3727
+#: c-common.c:3784
#, fuzzy
msgid "taking the address of a label is non-standard"
msgstr "ISO C verbiedt het nemen van het adres van een label"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "het `%s' attribuut wordt genegeerd"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "onbekende machine-modus `%s'"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
#, fuzzy
msgid "use __attribute__ ((vector_size)) instead"
msgstr "attribuut-commando `%s' wordt genegeerd"
# Misschien beter 'emuleren' dan nabootsen?
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "kan '%s' niet nabootsen"
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "geen datatype voor modus `%s'"
-#: c-common.c:4309
+#: c-common.c:4366
#, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr ""
-#: c-common.c:4322
+#: c-common.c:4390
#, c-format
msgid "mode %qs applied to inappropriate type"
msgstr ""
-#: c-common.c:4355
+#: c-common.c:4421
#, fuzzy
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "sectie-attribuut niet toegestaan voor `%s'"
-#: c-common.c:4381
+#: c-common.c:4447
#, fuzzy
msgid "%Jsection attributes are not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "gevraagd alignment is geen constante"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "gevraagd alignment is te groot"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "er kan geen alignment opgegeven worden voor `%s'"
-#: c-common.c:4493
+#: c-common.c:4559
#, fuzzy
msgid "%J%qD defined both normally and as an alias"
msgstr "`%s' is zowel als alias en als normale naam gedefinieerd"
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "alias-argument is geen string"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "het `%s' attribuut wordt genegeerd voor `%s'"
# Of moet dit vertaald worden als 'zichtbaarheidsargument is ...'?
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "argument 'visibility' is geen string"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "het `%s' attribuut wordt genegeerd voor `%s'"
+
+#: c-common.c:4657
#, fuzzy
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr "argument 'visibility' moet \"default\", \"hidden\", \"protected\" of \"internal\" zijn"
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "argument 'tls_model' is geen string"
-#: c-common.c:4663
+#: c-common.c:4735
#, fuzzy
msgid "tls_model argument 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:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "kan het `%s' attribuut niet instellen na een definitie"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "het `%s' attribuut wordt genegeerd voor `%s'"
# Is the %s the argument, or is it 'of' the argument?
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "ongeldig vector-type voor attribuut `%s'"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "nonnull attribuut zonder argumenten gebruikt voor een niet-prototype"
-#: c-common.c:4925
+#: c-common.c:4997
#, fuzzy, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "de formaatstring heeft een niet-constant operand-nummer"
-#: c-common.c:4944
+#: c-common.c:5016
#, fuzzy, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr "nonnull argument met operandnummer dat buiten bereik is (arg %lu, operand %lu)"
-#: c-common.c:4952
+#: c-common.c:5024
#, fuzzy, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr "nonnull argument verwijst naar niet-pointer operand (arg %lu, operand %lu)"
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "kan functie `main' niet inline maken"
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "te weinig argument voor functie"
-#: c-common.c:5086
+#: c-common.c:5158
#, fuzzy, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr "null argument waar een niet-null argument vereist is (arg %lu)"
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "`defined' zonder een naam"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "opgeroepen object is geen functie"
-#: c-common.c:5202
+#: c-common.c:5274
#, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "gevraagd alignment is geen constante"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "ongeldige lvalue in toewijzing"
-#: c-common.c:5637
+#: c-common.c:5730
#, fuzzy
msgid "invalid lvalue in increment"
msgstr "ongeldige lvalue in toewijzing"
-#: c-common.c:5640
+#: c-common.c:5733
#, fuzzy
msgid "invalid lvalue in decrement"
msgstr "ongeldige lvalue in toewijzing"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "ongeldige lvalue bij unaire `&'"
-#: c-common.c:5646
+#: c-common.c:5739
#, fuzzy
msgid "invalid lvalue in asm statement"
msgstr "ongeldige lvalue in toewijzing"
@@ -645,111 +653,116 @@ msgstr "ongeldige lvalue in toewijzing"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr "void-waarde niet genegeerd zoals het hoort"
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "conversie naar niet-scalair type gevraagd"
-#: c-decl.c:524
+#: c-decl.c:530
#, fuzzy
msgid "%Jarray %qD assumed to have one element"
msgstr "array `%s' wordt aangenomen één element te bevatten"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "label `%s' gebruikt maar niet gedefinieerd"
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "%s van alleen-lezen variabele `%s'"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
#, fuzzy
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:1015
+#: c-decl.c:1029
#, fuzzy
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:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1080
#, fuzzy
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "prototype voor `%s' volgt en argument %d komt niet overeen"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
#, fuzzy
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr "niet-prototype definitie hier"
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "eerdere definitie van `%s'"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "eerdere impliciete declaratie van `%s'"
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "eerdere declaratie van `%s'"
-#: c-decl.c:1134
+#: c-decl.c:1149
#, fuzzy
msgid "%J%qD redeclared as different kind of symbol"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "ingebouwde functie `%s' gedeclareerd als niet-functie"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "herdeclaratie van `enum %s'"
@@ -757,277 +770,277 @@ msgstr "herdeclaratie van `enum %s'"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "conflicterende types voor `%s'"
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "conflicterende types voor `%s'"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "herdefinitie van `%s'"
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "herdefinitie van `%s'"
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
#, fuzzy
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "static declaratie voor `%s' volgt niet-static declaratie"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
#, fuzzy
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "niet-static declaratie voor `%s' volgt static declaratie"
-#: c-decl.c:1326
+#: c-decl.c:1383
#, fuzzy
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "static declaratie voor `%s' volgt niet-static declaratie"
-#: c-decl.c:1329
+#: c-decl.c:1386
#, fuzzy
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "niet-static declaratie voor `%s' volgt static declaratie"
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "externe declaratie van `%s' komt niet overeen met de globale declaratie"
-#: c-decl.c:1395
+#: c-decl.c:1452
#, fuzzy
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "eerdere declaratie van `%s'"
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
#, fuzzy
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "eerdere declaratie van functie `%s' had het noinline attribuut"
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "`%s' als 'inline' gedeclareerd na oproep"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "herdefinitie van `struct %s'"
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "overbodige herdeclaratie van `%s' in zelfde bereik"
-#: c-decl.c:1808
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "de declaratie van `%s' verbergt een parameter"
+
+#: c-decl.c:1871
#, fuzzy
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: c-decl.c:1811
+#: c-decl.c:1874
#, fuzzy
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
#, fuzzy
msgid "%Jshadowed declaration is here"
msgstr "eerdere declaratie van `%s'"
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "geneste externe declaratie van `%s'"
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "geneste externe declaratie van `%s'"
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "impliciete declaratie van functie `%s'"
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "impliciete declaratie van functie `%s'"
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "impliciete declaratie van functie `%s'"
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "`%s' is hier niet gedeclareerd (niet in een functie)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Elke niet-gedeclareerde naam wordt slechts één"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "keer vermeld voor elke functie waarin hij staat.)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, fuzzy, c-format
msgid "label %qs referenced outside of any function"
msgstr "naar label %s gerefereerd buiten enige functie"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "herhaalde label-declaratie `%s'"
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "herhaald label `%s'"
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "naamloze struct/union die geen instanties definieert"
-#: c-decl.c:2726
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2737
+#: c-decl.c:2780
#, fuzzy
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr "declaratie declareert niets"
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "lege declaratie"
-#: c-decl.c:2779
+#: c-decl.c:2822
#, fuzzy
msgid "%<auto%> in file-scope empty declaration"
msgstr "twee types opgegeven in één lege declaratie"
-#: c-decl.c:2785
+#: c-decl.c:2828
#, fuzzy
msgid "%<register%> in file-scope empty declaration"
msgstr "twee types opgegeven in één lege declaratie"
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
-#: c-decl.c:2797
+#: c-decl.c:2840
#, fuzzy
msgid "useless %<__thread%> in empty declaration"
msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "herhaalde label-declaratie `%s'"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "lege declaratie"
-#: c-decl.c:2878
+#: c-decl.c:2921
#, 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:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C89 ondersteunt geen `[*]' declaratoren van arrays"
-#: c-decl.c:2884
+#: c-decl.c:2927
#, fuzzy
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "GCC heeft nog geen fatsoenlijke implementatie van `[*]' declaratoren van arrays"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "`static' of type-modifier in abstracte declarator"
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "`%s' is meestal een functie"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef `%s' krijgt beginwaarde"
-#: c-decl.c:2974
+#: c-decl.c:3019
#, fuzzy
msgid "function %qD 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:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "parameter `%s' krijgt beginwaarde"
@@ -1036,184 +1049,179 @@ msgstr "parameter `%s' krijgt beginwaarde"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "variabele `%s' heeft beginwaarde, maar een onvolledig type"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "elementen van array `%s' hebben een onvolledig type"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
#, fuzzy
msgid "%Jinline function %qD given attribute noinline"
msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd"
-#: c-decl.c:3154
+#: c-decl.c:3194
#, fuzzy
msgid "%Jinitializer fails to determine size of %qD"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "array-grootte ontbreekt in `%s'"
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "array `%s' heeft grootte die negatief of 0 is"
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "opslaggrootte van `%s' is onbekend"
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "opslaggrootte van `%s' is niet constant"
-#: c-decl.c:3266
+#: c-decl.c:3299
#, fuzzy
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "registernaam opgegeven voor niet-registervariabele `%s'"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "een object met een volatile veld kan niet in een register geplaatst worden"
# Of is 'verbiedt parameterdeclaraties op voorhand' beter?
-#: c-decl.c:3430
+#: c-decl.c:3463
#, fuzzy
msgid "ISO C forbids forward parameter declarations"
msgstr "ANSI C verbiedt voorwaartse declaraties van parameters"
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr ""
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "breedte van bitveld `%s' is geen integerconstante"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "bitveld `%s' heeft breedte 0"
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "bitveld `%s' heeft een ongeldig type"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr ""
-#: c-decl.c:3664
+#: c-decl.c:3698
#, fuzzy, c-format
msgid "width of %qs exceeds its type"
msgstr "breedte van `%s' overschrijdt zijn type"
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "`%s' is smaller dan waarden van zijn type"
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "type krijgt standaardwaarde `int' in de declaratie van `%s'"
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "herhaalde `const'"
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "herhaalde `restrict'"
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "herhaalde `volatile'"
-#: c-decl.c:3853
+#: c-decl.c:3887
#, fuzzy
msgid "function definition declared %<auto%>"
msgstr "functie-definitie als `auto' gedeclareerd"
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "functie-definitie als `register' gedeclareerd"
-#: c-decl.c:3857
+#: c-decl.c:3891
#, fuzzy
msgid "function definition declared %<typedef%>"
msgstr "functie-definitie als `typdef' gedeclareerd"
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "functie-definitie als `typdef' gedeclareerd"
-#: c-decl.c:3875
+#: c-decl.c:3909
#, fuzzy, c-format
msgid "storage class specified for structure field %qs"
msgstr "opslagklasse opgegeven voor structure-veld `%s'"
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, fuzzy, c-format
msgid "storage class specified for parameter %qs"
msgstr "opslagklasse opgegeven voor parameter `%s'"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "opslagklasse opgegeven voor typenaam"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
#, fuzzy
msgid "%qs initialized and declared %<extern%>"
msgstr "`%s' krijgt beginwaarde en is als `extern' gedeclareerd"
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
#, fuzzy
msgid "%qs has both %<extern%> and initializer"
msgstr "`%s' heeft zowel `extern' als een beginwaarde"
-#: c-decl.c:3902
+#: c-decl.c:3936
#, fuzzy
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "top-level declaratie van `%s' specifieert `auto'"
-#: c-decl.c:3904
+#: c-decl.c:3938
#, fuzzy
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "top-level declaratie van `%s' specifieert `auto'"
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
#, fuzzy
msgid "nested function %qs declared %<extern%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
#, fuzzy
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
@@ -1221,683 +1229,683 @@ 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
#, fuzzy
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "ongeldige type-modifier binnen pointer-declarator"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, fuzzy, c-format
msgid "declaration of %qs as array of voids"
msgstr "`%s' wordt gedeclareerd als een array van voids"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: c-decl.c:4010
+#: c-decl.c:4050
#, fuzzy
msgid "invalid use of structure with flexible array member"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "grootte van array `%s' is negatief"
-#: c-decl.c:4056
+#: c-decl.c:4096
#, fuzzy
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ANSI C verbiedt array `%s', wiens grootte niet geëvalueerd kan worden"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ANSI C verbiedt array `%s' van variabele lengte"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "omvang van array `%s' is te groot"
-#: c-decl.c:4106
+#: c-decl.c:4150
#, fuzzy
msgid "ISO C90 does not support flexible array members"
msgstr "ANSI C ondersteun geen formaatbreedte voor strftime"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "arraytype heeft onvolledig elementtype"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, fuzzy, c-format
msgid "%qs declared as function returning an array"
msgstr "`%s' gedeclareerd als een functie die een array teruggeeft"
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
-#: c-decl.c:4201
+#: c-decl.c:4242
#, fuzzy
msgid "type qualifiers ignored on function return type"
msgstr "ANSI C verbiedt een gekwalificeerde void als teruggeefwaarde voor een functie"
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
#, fuzzy
msgid "ISO C forbids qualified function types"
msgstr "ANSI C verbiedt een gekwalificeerd functietype"
-#: c-decl.c:4282
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4312
+#: c-decl.c:4354
#, fuzzy
msgid "ISO C forbids const or volatile function types"
msgstr "ANSI C verbiedt 'const' of 'volatile' functietypes"
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "variabele of veld `%s' als void gedeclareerd"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "attributen genegeerd in declarator van parameter-array"
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "parameter `%s' als void gedeclareerd"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "veld `%s' als een functie gedeclareerd"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "veld `%s' heeft een onvolledig type"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "`noreturn' functie geeft niet-void waarde terug"
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "kan functie `main' niet inline maken"
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4591
#, fuzzy
msgid "%Jvariable %qD declared %<inline%>"
msgstr "variabele `%s' als inline gedeclareerd"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
-#: c-decl.c:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
#, fuzzy
msgid "thread-local storage not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
#, fuzzy
msgid "function declaration isn%'t a prototype"
msgstr "functie-declaratie is geen prototype"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "parameternamen (zonder types) in functiedeclaratie"
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "parameter heeft een onvolledig type"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "parameter heeft een onvolledig type"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "parameter `%s' heeft een onvolledig type"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "parameter `%s' heeft een onvolledig type"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
msgstr ""
-#: c-decl.c:4793
+#: c-decl.c:4829
#, fuzzy
msgid "%Jparameter %qD has just a forward declaration"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "`%s %s' binnen parameterlijst gedeclareerd"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, fuzzy, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: c-decl.c:4848
+#: c-decl.c:4884
#, 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:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "herdefinitie van `union %s'"
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "herdefinitie van `struct %s'"
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "geneste herdefinitie van `%s'"
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "geneste herdefinitie van `%s'"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "declaratie declareert niets"
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "doel-CPU ondersteunt geen interworking"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "herhaald lid `%s'"
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "%s heeft geen benoemde leden"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "union heeft geen lid dat `%s' heet"
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "%s heeft geen benoemde leden"
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "union heeft geen lid dat `%s' heet"
-#: c-decl.c:5231
+#: c-decl.c:5267
#, fuzzy
msgid "%Jflexible array member in union"
msgstr "flexibele array als lid van union"
-#: c-decl.c:5236
+#: c-decl.c:5272
#, fuzzy
msgid "%Jflexible array member not at end of struct"
msgstr "flexibele array niet laatste lid van struct"
-#: c-decl.c:5241
+#: c-decl.c:5277
#, fuzzy
msgid "%Jflexible array member in otherwise empty struct"
msgstr "flexibele array als lid in overigens lege struct"
-#: c-decl.c:5248
+#: c-decl.c:5284
#, fuzzy
msgid "%Jinvalid use of structure with flexible array member"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "union kan niet transparant gemaakt worden"
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "geneste herdefinitie van `%s'"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "herdeclaratie van `enum %s'"
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr "enumeratiewaarden overschrijden het bereik van de grootste integer"
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "enumeratiewaarde voor `%s' is geen integrale constante"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "overflow in enumeratiewaarden"
-#: c-decl.c:5626
+#: c-decl.c:5671
#, 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:5702
+#: c-decl.c:5747
#, fuzzy
msgid "return type is an incomplete type"
msgstr "type van teruggeefwaarde is onvolledig"
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "teruggeefwaarde krijgt standaardtype `int'"
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "geen eerder prototype voor `%s'"
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "`%s' werd voor haar definitie gebruikt zonder protoype"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "geen eerdere declaratie voor `%s'"
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "`%s' werd voor haar definitie gebruikt zonder declaratie"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "het type van de teruggeefwaarde van `%s' is niet `int'"
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "eerste argument van `%s' zou een `int' moeten zijn"
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "tweede argument van `%s' zou een `char **' moeten zijn"
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "derde argument van `%s' zou waarschijnlijk een `char **' moeten zijn"
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "`%s' is gewoonlijk een niet-static funtie"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr ""
-#: c-decl.c:5908
+#: c-decl.c:5953
#, fuzzy
msgid "%Jparameter name omitted"
msgstr "parameternaam weggelaten"
-#: c-decl.c:5948
+#: c-decl.c:5993
#, fuzzy
msgid "%Jold-style function definition"
msgstr "globale registervariabele volgt op een functiedefinitie"
-#: c-decl.c:5956
+#: c-decl.c:6001
#, fuzzy
msgid "%Jparameter name missing from parameter list"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: c-decl.c:5967
+#: c-decl.c:6012
#, fuzzy
msgid "%J%qD declared as a non-parameter"
msgstr "veld `%s' als een functie gedeclareerd"
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "meerdere parameters hebben de naam `%s'"
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "parameter `%s' als void gedeclareerd"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "`%s' krijgt standaardtype `int'"
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "parameter heeft een onvolledig type"
-#: c-decl.c:6022
+#: c-decl.c:6067
#, fuzzy
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "declaratie voor parameter `%s' maar er is zo geen parameter"
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "aantal argumenten kom niet overeen met prototype"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
#, fuzzy
msgid "%Hprototype declaration"
msgstr "lege declaratie"
-#: c-decl.c:6101
+#: c-decl.c:6146
#, fuzzy
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "gepromoveerd argument `%s' komt niet overeen met prototype"
-#: c-decl.c:6109
+#: c-decl.c:6154
#, fuzzy
msgid "argument %qD doesn%'t match prototype"
msgstr "argument `%s' komt niet overeen met prototype"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
#, 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:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "deze functie kan met of zonder waarde tergukeren"
#. 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:6403
+#: c-decl.c:6461
#, fuzzy
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr "initiële declaratie voor `for' lus gebruikt buiten C99 modus"
-#: c-decl.c:6432
+#: c-decl.c:6490
#, fuzzy
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:6435
+#: c-decl.c:6493
#, fuzzy
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:6440
+#: c-decl.c:6498
#, fuzzy
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:6444
+#: c-decl.c:6502
#, fuzzy
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:6448
+#: c-decl.c:6506
#, fuzzy
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:6452
+#: c-decl.c:6510
#, fuzzy
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "herhaalde `%s'"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
#, fuzzy
msgid "two or more data types in declaration specifiers"
msgstr "twee of meer data types in de declaratie van `%s'"
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "`long long long' is te lang voor GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ANSI C ondersteunt `long long' niet"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
#, fuzzy
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
#, fuzzy
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
#, fuzzy
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
#, fuzzy
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
#, fuzzy
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:6875
+#: c-decl.c:6933
#, fuzzy
msgid "ISO C90 does not support complex types"
msgstr "ISO C89 ondersteunt geen complexe types"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, fuzzy, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr "`%s' is geen typedef of ingebouwd type"
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "`%s' staat niet aan het begin van een declaratie"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
#, fuzzy
msgid "%<__thread%> before %<extern%>"
msgstr "`__thread' voor `extern'"
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
#, fuzzy
msgid "%<__thread%> before %<static%>"
msgstr "`__thread' voor `static'"
-#: c-decl.c:7106
+#: c-decl.c:7164
#, fuzzy
msgid "multiple storage classes in declaration specifiers"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
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:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
#, fuzzy
msgid "ISO C does not support complex integer types"
msgstr "ANSI C ondersteunt `long long' niet"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
@@ -2469,7 +2477,7 @@ msgstr "strftime formaten kunnen geen argumenten formatteren"
msgid "statement with no effect"
msgstr ""
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "break-statement niet in een lus of switch"
@@ -2493,17 +2501,17 @@ msgstr ""
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "dubbele folder `%s' wordt genegeerd\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "Zoektocht voor #include \"...\" begint hier:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "Zoektocht voor #include <...> begint hier:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Einde van opzoekingslijst.\n"
@@ -2565,37 +2573,29 @@ msgstr "floating-point getal overschrijdt het bereik van een `float'"
msgid "traditional C rejects string constant concatenation"
msgstr ""
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
#, fuzzy
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "waarde van array-type gebruikt waar een scalair nodig is"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
#, fuzzy
msgid "used struct type value where scalar is required"
msgstr "waarde van struct-type gebruikt waar een scalair nodig is"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
#, fuzzy
msgid "used union type value where scalar is required"
msgstr "waarde van union-type gebruikt waar een scalair nodig is"
@@ -2646,83 +2646,83 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "-pipe wordt niet ondersteund"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr ""
-#: c-opts.c:841
+#: c-opts.c:839
#, fuzzy
msgid "output filename specified twice"
msgstr "Bestandsnaam voor uitvoer twee keer opgegeven"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k genegeerd zonder -Wformat"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args genegeerd zonder -Wformat"
-#: c-opts.c:975
+#: c-opts.c:973
#, fuzzy
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-extra-args genegeerd zonder -Wformat"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral genegeerd zonder -Wformat"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security genegeerd zonder -Wformat"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute genegeerd zonder -Wformat"
-#: c-opts.c:995
+#: c-opts.c:998
#, fuzzy, c-format
msgid "opening output file %s: %m"
msgstr "kan bestand '%s' niet openen"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, c-format
msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, fuzzy, c-format
msgid "opening dependency file %s: %m"
msgstr "dynamische dependencies.\n"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, fuzzy, c-format
msgid "closing dependency file %s: %m"
msgstr "dynamische dependencies.\n"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, fuzzy, c-format
msgid "when writing output to %s: %m"
msgstr "kan bestand '%s' niet openen"
-#: c-opts.c:1216
+#: c-opts.c:1220
#, fuzzy
msgid "to generate dependencies you must specify either -M or -MM"
msgstr "-MG moet samen met ofwel -M, ofwel -MM gebruikt worden"
-#: c-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr ""
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr ""
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2734,16 +2734,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr ""
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr ""
@@ -2799,118 +2799,122 @@ msgstr "gevraagd alignment is geen constante"
msgid "%<typeof%> applied to a bit-field"
msgstr "`sizeof' toegepast op een bitveld"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
#, fuzzy
msgid "ISO C forbids empty initializer braces"
msgstr "ANSI C verbiedt lege initialisatie-accolades"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
#, fuzzy
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ANSI C verbiedt het opgeven van het te initialiseren element"
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
msgstr ""
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
#, fuzzy
msgid "obsolete use of designated initializer with %<:%>"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
#, 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:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
#, fuzzy
msgid "ISO C forbids nested functions"
msgstr "ANSI C verbiedt geneste functies"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
#, fuzzy
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ANSI C verbiedt voorwaartse referenties naar `enum' types"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "komma aan het einde van enumerator-lijst"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "geen puntkomma aan het einde van een struct of union"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "extra puntkomma opgegeven in struct of union"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
#, fuzzy
msgid "ISO C forbids member declarations with no members"
msgstr "ANSI C verbiedt lid-declaraties zonder leden"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
#, fuzzy
msgid "label at end of compound statement"
msgstr "ANSI C verbiedt een label aan het einde van een samengesteld statement"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
#, fuzzy
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ANSI C verbiedt labeldeclaraties"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
#, fuzzy
msgid "ISO C forbids label declarations"
msgstr "ANSI C verbiedt labeldeclaraties"
# 'braced-group'? Wie schrijft verdorie die foutmeldingen?
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr "accolade-groep in expressie enkel toegestaan binnen een functie"
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, c-format
msgid "%E qualifier ignored on asm"
msgstr ""
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr ""
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "ANSI C heeft een benoemd argument nodig vóór `...'"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "parse-fout; ook is het virtueel geheugen opgebruikt"
# 'parser' en 'stack overflow' vertalen?
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "stack overflow in parser"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "%s voor `%s'"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "parse-fout"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
#, fuzzy
msgid "parse error; also virtual memory exhausted"
msgstr "parse-fout; ook is het virtueel geheugen opgebruikt"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
msgid "parse error: cannot back up"
msgstr ""
@@ -3035,198 +3039,198 @@ msgstr "Alignment moet een kleine macht van twee zijn, en niet %d, in #pragma pa
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
#, fuzzy
msgid "malformed #pragma weak, ignored"
msgstr "misvormde #pragma weak"
-#: c-pragma.c:316
+#: c-pragma.c:343
#, fuzzy
msgid "junk at end of #pragma weak"
msgstr "misvormde #pragma weak"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
#, fuzzy
msgid "malformed #pragma redefine_extname, ignored"
msgstr "misvormde #pragma weak"
-#: c-pragma.c:384
+#: c-pragma.c:416
#, fuzzy
msgid "junk at end of #pragma redefine_extname"
msgstr "misvormde #pragma weak"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:448
+#: c-pragma.c:480
#, fuzzy
msgid "malformed #pragma extern_prefix, ignored"
msgstr "misvormde #pragma pack(pop[,id])"
# Moet 'signature-string' vertaald worden?
-#: c-pragma.c:451
+#: c-pragma.c:483
#, fuzzy
msgid "junk at end of #pragma extern_prefix"
msgstr "Brol aan einde van signature-string."
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr ""
-#: c-pragma.c:596
+#: c-pragma.c:628
#, fuzzy
msgid "malformed #pragma GCC visibility push"
msgstr "misvormde #pragma weak"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
# Moet 'signature-string' vertaald worden?
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "Brol aan einde van signature-string."
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "`%s' heeft een onvolledig type"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: c-typeck.c:168
+#: c-typeck.c:169
#, fuzzy
msgid "invalid use of flexible array member"
msgstr "ongeldig gebruik van array die geen lvalue is"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "ongeldig gebruik van een array zonder opgegeven grenzen"
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
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:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
#, fuzzy
msgid "function types not truly compatible in ISO C"
msgstr "functie-types zijn niet echt compatibel in ANSI C"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "types zijn niet helemaal compatibel"
-#: c-typeck.c:987
+#: c-typeck.c:1045
#, fuzzy
msgid "function return types not compatible due to %<volatile%>"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
# 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "rekensom met pointer naar onvolledig type"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "union heeft geen lid dat `%s' heet"
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, fuzzy, c-format
msgid "request for member %qs in something not a structure or union"
msgstr "vraag naar lid `%s' in iets dat geen structure of union is"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "dereferentie van pointer naar onvolledig type"
-#: c-typeck.c:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "`void *' pointer wordt gederefereerd"
# Is the %s the argument, or is it 'of' the argument?
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "ongeldig type-argument `%s'"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "waarde met subscript is noch een array, noch een pointer"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "array subscript is geen integer"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "doorgeven van argument %d van pointer naar functie"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
#, fuzzy
msgid "array subscript has type %<char%>"
msgstr "array subscript is van het type `char'"
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ANSI C verbiedt het gebruik van subscripts bij een `register' array"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
#, fuzzy
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:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "opgeroepen object is geen functie"
@@ -3234,842 +3238,838 @@ msgstr "opgeroepen object is geen functie"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr ""
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "beginwaarde-element is niet constant"
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "teveel argumenten voor functie"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "het type van formele parameter %d is onvolledig"
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, fuzzy, c-format
msgid "passing argument %d of %qE 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:2089
+#: c-typeck.c:2172
#, fuzzy, c-format
msgid "passing argument %d of %qE 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:2094
+#: c-typeck.c:2177
#, fuzzy, c-format
msgid "passing argument %d of %qE 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:2099
+#: c-typeck.c:2182
#, fuzzy, c-format
msgid "passing argument %d of %qE 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:2104
+#: c-typeck.c:2187
#, fuzzy, c-format
msgid "passing argument %d of %qE 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:2109
+#: c-typeck.c:2192
#, fuzzy, c-format
msgid "passing argument %d of %qE 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:2121
+#: c-typeck.c:2204
#, fuzzy
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr "%s als `float' in plaats van `double' ten gevolge van een prototype"
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, fuzzy, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr "%s met andere breedte ten gevolge van prototype"
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, fuzzy, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "%s als unsigned ten gevolge van prototype"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "%s als signed ten gevolge van prototype"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "te weinig argument voor functie"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "gebruik liefst haakjes rond + of - binnen een shift"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "gebruik liefst haakjes rond && binnen ||"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "gebruik liefst haakjes rond een rekensom in een operand van |"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "gebruik liefst haakjes rond een vergelijking in een operand van |"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "gebruik liefst haakjes rond een rekensom in een operand van ^"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "gebruik liefst haakjes rond een vergelijking in een operand van ^"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "gebruik liefst haakjes rond + of - in een operand van &"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "gebruik liefst haakjes rond een vergelijking in een operand van &"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
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:2314
+#: c-typeck.c:2397
#, fuzzy
msgid "pointer of type %<void *%> used in subtraction"
msgstr "pointer van type `void *' gebruikt in aftrekking"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "pointer naar functie gebruikt in aftrekking"
# 'unary' = 'unair'?
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "argument van verkeerd type voor unaire plus"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "argument van verkeerd type voor unaire min"
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ANSI C ondersteunt het `%c' formaat niet"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "argument van verkeerd type voor bit-complement"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
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:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "argument van verkeerd type voor vervoeging"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "argument van verkeerd type voor unair uitroepingsteken"
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, 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:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "argument van verkeerd type voor incrementeren"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "argument van verkeerd type voor decrementeren"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "incrementeren van pointer naar onbekend structure"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "decrementeren van pointer naar onbekend structure"
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, fuzzy, c-format
msgid "assignment of read-only member %qs"
msgstr "%s van alleen-lezen lid `%s'"
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, fuzzy, c-format
msgid "increment of read-only member %qs"
msgstr "%s van alleen-lezen lid `%s'"
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, fuzzy, c-format
msgid "decrement of read-only member %qs"
msgstr "%s van alleen-lezen lid `%s'"
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, fuzzy, c-format
msgid "assignment of read-only variable %qs"
msgstr "%s van alleen-lezen variabele `%s'"
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, fuzzy, c-format
msgid "increment of read-only variable %qs"
msgstr "%s van alleen-lezen variabele `%s'"
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, fuzzy, c-format
msgid "decrement of read-only variable %qs"
msgstr "%s van alleen-lezen variabele `%s'"
-#: c-typeck.c:2734
+#: c-typeck.c:2817
#, fuzzy
msgid "assignment of read-only location"
msgstr "%s van alleen-lezen locatie"
-#: c-typeck.c:2735
+#: c-typeck.c:2818
#, fuzzy
msgid "increment of read-only location"
msgstr "%s van alleen-lezen locatie"
-#: c-typeck.c:2736
+#: c-typeck.c:2819
#, fuzzy
msgid "decrement of read-only location"
msgstr "%s van alleen-lezen locatie"
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "kan adres van bitveld `%s' niet nemen"
-#: c-typeck.c:2783
+#: c-typeck.c:2866
#, fuzzy
msgid "global register variable %qD used in nested function"
msgstr "globale registervariabele `%s' gebruikt in geneste functie"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
#, fuzzy
msgid "register variable %qD used in nested function"
msgstr "registervariabele `%s' gebruikt in geneste functie"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
#, fuzzy
msgid "address of global register variable %qD requested"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: c-typeck.c:2793
+#: c-typeck.c:2876
#, fuzzy
msgid "address of register variable %qD requested"
msgstr "adres van registervariabele `%s' gevraagd"
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "types in voorwaardelijke expressie komen niet overeen"
# Of moet/mag 'boolean' hier vertaald worden?
-#: c-typeck.c:2885
+#: c-typeck.c:2968
#, fuzzy
msgid "signed and unsigned type in conditional expression"
msgstr "niet-boolean modus in voorwaardelijke expressie"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
#, 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:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
#, 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:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "pointertypes in voorwaardelijke expressie komen niet overeen"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "types in voorwaardelijke expressie komen niet overeen (pointer/integer)"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr "linker operand van comma-expressie heeft geen effect"
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "cast geeft array-type op"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "cast geeft functie-type op"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
#, 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:3060
+#: c-typeck.c:3143
#, fuzzy
msgid "ISO C forbids casts to union type"
msgstr "ANSI C verbiedt casts naar een union-type"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
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:3120
+#: c-typeck.c:3203
#, 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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "cast verhoogt het benodigde alignment van het doeltype"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "cast van pointer naar integer met andere grootte"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "cast naar pointer van integer met andere grootte"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3181
+#: c-typeck.c:3264
#, fuzzy
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
#, fuzzy
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ANSI C verbiedt een vergelijking van `void *' met een functie-pointer"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
#, fuzzy
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ANSI C verbiedt een vergelijking van `void *' met een functie-pointer"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr ""
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, fuzzy, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr "%s maakt gekwalificeerde functiepointer van een niet gekwalificeerde"
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
#, fuzzy
msgid "assignment makes qualified function pointer from unqualified"
msgstr "%s maakt gekwalificeerde functiepointer van een niet gekwalificeerde"
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
#, fuzzy
msgid "initialization makes qualified function pointer from unqualified"
msgstr "%s maakt gekwalificeerde functiepointer van een niet gekwalificeerde"
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
#, fuzzy
msgid "return makes qualified function pointer from unqualified"
msgstr "%s maakt gekwalificeerde functiepointer van een niet gekwalificeerde"
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, fuzzy, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
#, fuzzy
msgid "assignment discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
#, fuzzy
msgid "initialization discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
#, fuzzy
msgid "return discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
#, fuzzy
msgid "ISO C prohibits argument conversion to union type"
msgstr "ANSI C verbiedt conversie van argumenten naar union type"
-#: c-typeck.c:3628
+#: c-typeck.c:3714
#, fuzzy
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ANSI C verbiedt %s tussen functiepointer en `void *'"
-#: c-typeck.c:3631
+#: c-typeck.c:3717
#, fuzzy
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ANSI C verbiedt %s tussen functiepointer en `void *'"
-#: c-typeck.c:3633
+#: c-typeck.c:3719
#, fuzzy
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ANSI C verbiedt %s tussen functiepointer en `void *'"
-#: c-typeck.c:3635
+#: c-typeck.c:3721
#, fuzzy
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ANSI C verbiedt %s tussen functiepointer en `void *'"
# 'signedness' = 'signed-heid'?
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, fuzzy, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr "doelen van pointer in %s verschillen in signedness"
# 'signedness' = 'signed-heid'?
-#: c-typeck.c:3660
+#: c-typeck.c:3746
#, fuzzy
msgid "pointer targets in assignment differ in signedness"
msgstr "doelen van pointer in %s verschillen in signedness"
# 'signedness' = 'signed-heid'?
-#: c-typeck.c:3662
+#: c-typeck.c:3748
#, fuzzy
msgid "pointer targets in initialization differ in signedness"
msgstr "doelen van pointer in %s verschillen in signedness"
# 'signedness' = 'signed-heid'?
-#: c-typeck.c:3664
+#: c-typeck.c:3750
#, fuzzy
msgid "pointer targets in return differ in signedness"
msgstr "doelen van pointer in %s verschillen in signedness"
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, fuzzy, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr "%s van incompatibel pointertype"
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "%s van incompatibel pointertype"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
#, fuzzy
msgid "initialization from incompatible pointer type"
msgstr "%s van incompatibel pointertype"
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "%s van incompatibel pointertype"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "ongeldig gebruik van array die geen lvalue is"
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s maakt pointer van integer zonder een cast"
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s maakt pointer van integer zonder een cast"
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s maakt pointer van integer zonder een cast"
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s maakt pointer van integer zonder een cast"
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s maakt integer van pointer zonder een cast"
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s maakt integer van pointer zonder een cast"
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s maakt integer van pointer zonder een cast"
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s maakt integer van pointer zonder een cast"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "incompatibel type voor argument %d van `%s'"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "incompatibele types bij %s"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "incompatibele types bij %s"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "incompatibele types bij %s"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr ""
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "(dicht bij initialisatie van `%s')"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "char-array heeft wide string als beginwaarde"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "char-array heeft wide string als beginwaarde"
-#: c-typeck.c:4116
+#: c-typeck.c:4202
#, fuzzy
msgid "wchar_t-array initialized from non-wide string"
msgstr "char-array heeft wide string als beginwaarde"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "beginwaarde-string voor array van chars is te lang"
-#: c-typeck.c:4140
+#: c-typeck.c:4226
#, fuzzy
msgid "array of inappropriate type initialized from string constant"
msgstr "char-array heeft wide string als beginwaarde"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr "array krijgt niet-constante array-expressie als beginwaarde"
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "beginwaarde-element kan niet berekend worden tijdens het laden"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "ongeldige beginwaarde"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
#, fuzzy
msgid "opaque vector types cannot be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "extra accolade-groep aan einde van beginwaarde"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "accolades ontbreken rond beginwaarde"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "accolades rond scalaire beginwaarde"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "beginwaarde ontbreekt"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "lege scalaire beginwaarde"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "extra elementen in scalaire beginwaarde"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr ""
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "array-index in beginwaarde van niet-array"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
#, fuzzy
msgid "field name not in record or union initializer"
msgstr "overtollige elementen in beginwaarde van union"
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "array-index in beginwaarde van niet-array"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "niet-constante array-index in beginwaarde"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
#, fuzzy
msgid "array index in initializer exceeds array bounds"
msgstr "array-index in beginwaarde van niet-array"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "leeg indexbereik in beginwaarde"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
#, fuzzy
msgid "array index range in initializer exceeds array bounds"
msgstr "leeg indexbereik in beginwaarde"
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, fuzzy, c-format
msgid "unknown field %qs specified in initializer"
msgstr "onbekend veld `%s' opgegeven in beginwaarde"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:5925
+#: c-typeck.c:6020
#, fuzzy
msgid "excess elements in char array initializer"
msgstr "overtollige elementen in beginwaarde van array"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "overtollige elementen in beginwaarde van struct"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "overtollige elementen in beginwaarde van union"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "overtollige elementen in beginwaarde van array"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
#, fuzzy
msgid "excess elements in vector initializer"
msgstr "overtollige elementen in beginwaarde van scalair"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "overtollige elementen in beginwaarde van scalair"
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ANSI C verbiedt `goto *expr;'"
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
#, fuzzy
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr "als `noreturn' gedeclareerde functie bevat een `return' statement"
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
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:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "`return' met waarde in een functie die void teruggeeft"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "functie geeft adres van lokale variabele terug"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "switch-waarde is geen integer"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
#, 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:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "case-label niet in een switch-statement"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
#, fuzzy
msgid "%<default%> label not within a switch statement"
msgstr "default-label niet in een switch-statement"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
-#: c-typeck.c:6631
+#: c-typeck.c:6761
#, fuzzy
msgid "%Hempty body in an if-statement"
msgstr "leeg body in een else-statement"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "leeg body in een else-statement"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "continue-statement niet in een lus"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr ""
# vertaling voor 'statement'?
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "expressie-statement heeft onvolledig type"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "deling door nul"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "teller van rechtse shift is negatief"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "teller van rechtse shift is >= breedte van het type"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "teller van links shift is negatief"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "teller van links shift is >= breedte van het type"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, 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:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "vergelijking tussen pointer en integer"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "vergelijking van volledige en onvolledige pointers"
# 'ordered' -> 'bevolen' of 'geordend'? Waarschijnlijk het laatste.
-#: c-typeck.c:7307
+#: c-typeck.c:7460
#, fuzzy
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ANSI C verbiedt geordende vergelijkingen tussen pointers naar functies"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "geordende vergelijking van een pointer met integer nul"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "vergelijking tussen signed en unsigned"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "vergelijking van gepromoveerde ~unsigned met constante"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "vergelijking van gepromoveerde ~unsigned met unsigned"
# dit klinkt niet al te best
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "functie-oproep heeft geaggregeerde waarde"
@@ -4113,7 +4113,7 @@ msgstr ""
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
@@ -4222,312 +4222,312 @@ msgstr "%s ondersteunt %s niet"
msgid "%s does not support flow_call_edges_add"
msgstr "%s ondersteunt %s niet"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, c-format
msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: cfgloop.c:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, fuzzy, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
#, fuzzy
msgid "return not followed by barrier"
msgstr "`#' gevolgd door een integer"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:231
+#: cgraph.c:278
#, fuzzy
msgid "function body not available"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
#, fuzzy
msgid "redefined extern inline functions are not considered for inlining"
msgstr "kan functie `main' niet inline maken"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
#, fuzzy
msgid "function not considered for inlining"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
#, fuzzy
msgid "function not inlinable"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "dit is een eerdere declaratie"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "sectie-pointer ontbreekt"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
msgstr ""
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "%s voor `%s'"
@@ -4536,72 +4536,72 @@ msgstr "%s voor `%s'"
msgid "no arguments"
msgstr "geen argumenten"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "onbekende machine-modus `%s'"
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 versie %s"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d constructor(s) gevonden\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d destructor(s) gevonden\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d frame-tabel(len) gevonden\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, fuzzy, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s beëindigd met signaal %d [%s]"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s gaf exit-status %d terug"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[kan %s niet vinden]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "kan %s niet vinden"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "bij het herleiden van standaarduitvoer: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[%s wordt verlaten]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4610,55 +4610,55 @@ msgstr ""
"\n"
"write_c_file - uitvoernaam is %s, prefix is %s\n"
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "kan `nm' niet vinden"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "init-functie gevonden in object %s"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "fini-functie gevonden in object %s"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "kan `ldd' niet vinden"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4667,22 +4667,22 @@ msgstr ""
"uitvoer van ldd met constructors/destructors.\n"
# 'dependency'? 'afhankelijkheid' klinkt niet echt goed...
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "dynamische dependency %s niet gevonden"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "kan dynamische dependency '%s' niet openen"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: geen COFF-bestand"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: kan niet openen als COFF-bestand"
@@ -4691,12 +4691,12 @@ 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:2631
+#: collect2.c:2641
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "Library lib%s niet gevonden"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4707,7 +4707,7 @@ msgstr ""
";; nodig), %d successen.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4828,7 +4828,7 @@ msgstr ""
msgid "too many input files"
msgstr "Geen invoerbestanden"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
@@ -4884,32 +4884,24 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr ""
-#: emit-rtl.c:1215
-msgid "can't access real part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
#, fuzzy
msgid "Invalid rtl sharing found in the insn"
msgstr "ongeldige operand voor %s-code"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr ""
@@ -4928,7 +4920,7 @@ msgstr "argument voor `__builtin_args_info' moet een constante zijn"
msgid "__builtin_eh_return not supported on this target"
msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine"
-#: explow.c:1355
+#: explow.c:1301
#, fuzzy
msgid "stack limits not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
@@ -4982,176 +4974,176 @@ msgstr "operand `%d' is geen register"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "floating-point constante verkeerd gebruikt"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "ongeldige expressie als operand"
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
msgid "internal consistency failure"
msgstr ""
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:4899
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4904
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "variabele `%s' is te groot"
-#: function.c:1442
+#: function.c:1443
#, fuzzy
msgid "impossible constraint in %<asm%>"
msgstr "incompatibele operands voor %s"
-#: function.c:3495
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3516
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr ""
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "ongeldige macronaam `%.*s'"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr ""
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "Bestandsnaam ontbreekt na `%s' optie"
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "Bestandsnaam ontbreekt na `%s' optie"
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "teveel argumenten voor functie"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr ""
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr ""
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr ""
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
"\n"
msgstr ""
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2635
+#: gcc.c:2625
#, fuzzy, c-format
msgid "system path '%s' is not absolute"
msgstr "modus van `%s' is geen modus"
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr ""
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
msgstr ""
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5159,163 +5151,163 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr ""
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr ""
-#: gcc.c:3036
+#: gcc.c:3026
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
-#: gcc.c:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr ""
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr ""
-#: gcc.c:3040
+#: gcc.c:3030
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr ""
-#: gcc.c:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr ""
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr ""
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr ""
-#: gcc.c:3044
+#: gcc.c:3034
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr ""
-#: gcc.c:3045
+#: gcc.c:3035
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr ""
-#: gcc.c:3046
+#: gcc.c:3036
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr ""
-#: gcc.c:3047
+#: gcc.c:3037
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr ""
-#: gcc.c:3048
+#: gcc.c:3038
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr ""
-#: gcc.c:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
msgstr ""
-#: gcc.c:3052
+#: gcc.c:3042
msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
msgstr ""
-#: gcc.c:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr ""
-#: gcc.c:3054
+#: gcc.c:3044
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr ""
-#: gcc.c:3055
+#: gcc.c:3045
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr ""
-#: gcc.c:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr ""
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr ""
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr ""
-#: gcc.c:3059
+#: gcc.c:3049
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr ""
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr ""
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr ""
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr ""
-#: gcc.c:3063
+#: gcc.c:3053
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr ""
-#: gcc.c:3064
+#: gcc.c:3054
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
-#: gcc.c:3065
+#: gcc.c:3055
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr ""
-#: gcc.c:3066
+#: gcc.c:3056
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
-#: gcc.c:3067
+#: gcc.c:3057
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
-#: gcc.c:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr ""
-#: gcc.c:3069
+#: gcc.c:3059
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3070
+#: gcc.c:3060
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr ""
-#: gcc.c:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr ""
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr ""
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr ""
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5323,7 +5315,7 @@ msgid ""
" guessing the language based on the file's extension\n"
msgstr ""
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5332,28 +5324,28 @@ msgid ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
-#: gcc.c:3201
+#: gcc.c:3191
#, fuzzy, c-format
msgid "'-%c' option must have argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: gcc.c:3223
+#: gcc.c:3213
#, c-format
msgid "couldn't run '%s': %s"
msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5361,95 +5353,95 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:4093
+#: gcc.c:4083
#, c-format
msgid "warning: '-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr ""
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "bitveld `%s' heeft een ongeldig type"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "bitveld `%s' heeft een ongeldig type"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "bitveld `%s' heeft een ongeldig type"
@@ -5457,164 +5449,169 @@ msgstr "bitveld `%s' heeft een ongeldig type"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5185
+#: gcc.c:5158
#, fuzzy, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "Let Op: verouderde operator %%[ gebruikt in specs"
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr ""
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "Ongeldige optie `%s'"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "teveel argumenten voor functie `%s'"
-#: gcc.c:5412
+#: gcc.c:5385
#, fuzzy
msgid "malformed spec function name"
msgstr "cast geeft functie-type op"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
#, fuzzy
msgid "no arguments for spec function"
msgstr "te weinig argument voor functie"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "onbekende formaatspecificatie"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr ""
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr ""
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
-#: gcc.c:6355
+#: gcc.c:6344
+#, c-format
+msgid "Target: %s\n"
+msgstr ""
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc versie %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, 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:6390
+#: gcc.c:6380
#, fuzzy
msgid "no input files"
msgstr "Geen invoerbestanden"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s compiler niet geïnstalleerd op dit systeem"
-#: gcc.c:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "parameter `%s' krijgt beginwaarde"
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "taal %s niet herkend"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr ""
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "argument %d is alleen-lezen"
-#: gcc.c:7130
+#: gcc.c:7119
#, fuzzy, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr "overtollige elementen in beginwaarde van union"
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "argument %d is alleen-lezen"
-#: gcc.c:7367
+#: gcc.c:7356
#, fuzzy, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr "overtollige elementen in beginwaarde van union"
@@ -5887,28 +5884,28 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
#, fuzzy
msgid "jump bypassing disabled"
msgstr "ingeschakelde opties: "
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr ""
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr ""
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, fuzzy, c-format
msgid "can't write PCH file: %m"
@@ -5925,7 +5922,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "kan bestand '%s' niet openen"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, fuzzy, c-format
msgid "can't read PCH file: %m"
msgstr "kan bestand '%s' niet openen"
@@ -5934,12 +5931,12 @@ msgstr "kan bestand '%s' niet openen"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
#, fuzzy
msgid "can't write PCH file"
msgstr "kan bestand '%s' niet openen"
@@ -5949,27 +5946,27 @@ msgstr "kan bestand '%s' niet openen"
msgid "unexpected node"
msgstr "ongeldige operand van %s"
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "ongeldige lvalue in toewijzing"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, c-format
msgid "memory input %d is not directly addressable"
msgstr ""
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, fuzzy, c-format
msgid "%s cannot be used in asm here"
msgstr "veld `%s' als een functie gedeclareerd"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, fuzzy, c-format
msgid "can't open %s: %m"
msgstr "open %s"
@@ -6030,90 +6027,100 @@ msgstr "argument van `%s' moet van een integraal type zijn."
msgid "unrecognized command line option \"%s\""
msgstr "Foldernaam ontbreekt na command-line optie"
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized wordt niet ondersteund zonder -O"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, fuzzy, c-format
msgid "structure 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"
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "signature-string niet herkend"
-#: opts.c:937
+#: opts.c:938
#, fuzzy, c-format
msgid "unrecognized register name \"%s\""
msgstr "geen argumenten"
-#: opts.c:957
+#: opts.c:962
#, fuzzy, c-format
msgid "unknown tls-model \"%s\""
msgstr "onbekende machine-modus `%s'"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "ongeldige registernaam voor `%s'"
-#: opts.c:1133
+#: opts.c:1139
#, fuzzy
msgid "target system does not support debug output"
msgstr "doelformaat ondersteunt geen oneindige waarde"
-#: opts.c:1140
+#: opts.c:1146
#, fuzzy, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: opts.c:1156
+#: opts.c:1162
#, fuzzy, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "signature-string niet herkend"
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "ongeldige macronaam `%.*s'"
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "ongeldige macronaam `%.*s'"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6443,95 +6450,91 @@ msgstr ""
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr ""
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:631
+#: reg-stack.c:632
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:691
+#: reg-stack.c:692
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:711
#, fuzzy
msgid "output operand %d must use %<&%> constraint"
msgstr "operand `%d' is geen register"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr ""
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "globale registervariabele volgt op een functiedefinitie"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1876
+#: regrename.c:1872
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1903
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1252
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
msgstr ""
-#: reload.c:1275
+#: reload.c:1293
#, fuzzy
msgid "impossible register constraint in %<asm%>"
msgstr "incompatibele operands voor %s"
-#: reload.c:3513
+#: reload.c:3535
#, fuzzy
msgid "%<&%> constraint used with no register class"
msgstr "numerieke constante zonder cijfers"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr ""
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
#, fuzzy
msgid "inconsistent operand constraints in an %<asm%>"
msgstr "incompatibele operands voor %s"
@@ -6544,39 +6547,39 @@ msgstr ""
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1866
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr ""
-#: reload1.c:1871
+#: reload1.c:1870
#, c-format
msgid "unable to find a register to spill in class %qs"
msgstr ""
-#: reload1.c:1873
+#: reload1.c:1872
#, fuzzy
msgid "this is the insn:"
msgstr "dit is het eerste ELSE-label"
-#: reload1.c:3864
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr ""
-#: reload1.c:4988
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6607
+#: reload1.c:6615
#, fuzzy
msgid "output operand is constant in %<asm%>"
msgstr "operand `%d' is geen register"
@@ -6590,145 +6593,145 @@ msgstr "signature-string niet herkend"
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:472
+#: rtl.c:471
#, c-format
msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:482
+#: rtl.c:481
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:492
+#: rtl.c:491
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:501
+#: rtl.c:500
#, c-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:511
+#: rtl.c:510
#, c-format
msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:522
+#: rtl.c:521
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:533
+#: rtl.c:532
#, c-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr ""
-#: stmt.c:316
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
msgstr ""
-#: stmt.c:331
+#: stmt.c:332
#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:354
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr ""
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
msgstr ""
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:451
+#: stmt.c:452
#, c-format
msgid "input operand constraint contains %qc"
msgstr ""
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "twee `u's in integerconstante"
-#: stmt.c:555
+#: stmt.c:556
#, fuzzy
msgid "matching constraint does not allow a register"
msgstr "numerieke constante zonder cijfers"
-#: stmt.c:583
+#: stmt.c:584
#, fuzzy, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr "type-qualifiers voor `%s' geven een conflict met een eerdere declaratie"
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "geen argumenten"
-#: stmt.c:680
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
msgstr ""
-#: stmt.c:727
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
msgstr ""
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#: stmt.c:869
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr ""
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr ""
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr ""
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "teveel argumenten voor functie `%s'"
-#: stmt.c:1120
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr ""
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "herhaald lid `%s'"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1299
+#: stmt.c:1300
#, fuzzy, c-format
msgid "undefined named operand %qs"
msgstr "ongeldige operand van %s"
-#: stmt.c:1464
+#: stmt.c:1465
#, fuzzy
msgid "%Hvalue computed is not used"
msgstr "modus van `%s' is geen modus"
@@ -6843,101 +6846,101 @@ msgstr ""
msgid "ld returned %d exit status"
msgstr "ld gaf exit-status %d terug"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr ""
-#: toplev.c:467
+#: toplev.c:471
#, fuzzy, c-format
msgid " %s"
msgstr "%s voor `%s'"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "Ongeldige optie `%s'"
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "interne fout"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
msgid "%J%qF declared %<static%> but never defined"
msgstr ""
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "`%.*s' is niet gedefinieerd"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
"Target specific options:\n"
msgstr ""
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr ""
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr ""
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "Ongeldige optie `%s'"
-#: toplev.c:1240
+#: toplev.c:1252
#, fuzzy, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6947,350 +6950,361 @@ 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:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "meegegeven opties: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "ingeschakelde opties: "
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "open %s"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr ""
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "deze doelmachine heeft geen delayed branches"
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "profileren wordt niet ondersteund wanneer -mg gebruikt wordt\n"
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore wordt niet ondersteund op deze doelmachine"
-#: toplev.c:1831
+#: toplev.c:1851
#, fuzzy, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "%s ondersteunt het `%%%s%c' %s formaat niet"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "open %s"
-#: toplev.c:1873
+#: toplev.c:1893
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:1878
+#: toplev.c:1898
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:1892
+#: toplev.c:1912
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:1904
+#: toplev.c:1924
#, 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:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "-f%sleading-underscore wordt niet ondersteund op deze doelmachine"
-#: toplev.c:1919
+#: toplev.c:1939
#, fuzzy
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "kan bestand '%s' niet openen"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "#error %s"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr ""
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
#, fuzzy
msgid "non-boolean used in condition"
msgstr "herdefinitie van `union %s'"
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
#, fuzzy
msgid "Invalid reference prefix."
msgstr "Ongeldige modus voor gen_tst_reg"
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "ongeldige beginwaarde"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
msgstr ""
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "-pipe wordt niet ondersteund"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, fuzzy, c-format
msgid "Missing edge %i->%i"
msgstr "beginwaarde ontbreekt"
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
#, fuzzy
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
#, fuzzy
msgid "%H%<noreturn%> function does return"
msgstr "`noreturn' functie keert terug"
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "kan bestand '%s' niet openen"
-#: tree-dump.c:960
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr ""
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
#, fuzzy
msgid "%Jinlining failed in call to %qF: %s"
msgstr "inline maken mislukt in oproep van `%s'"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "van hieruit opgeroepen"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7300,38 +7314,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "-pipe wordt niet ondersteund"
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7341,308 +7355,312 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "teveel argumenten voor functie"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "interne fout"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "beginwaarde ontbreekt"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:305
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
msgstr ""
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
msgid "verify_ssa failed."
msgstr ""
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
msgstr ""
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
#, fuzzy
msgid "no support for reduction/induction"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "niet-ondersteunde versie"
-#: tree.c:3258
+#: tree.c:3272
#, fuzzy
msgid "%Jfunction %qD definition is marked dllimport."
msgstr "functie-definitie als `auto' gedeclareerd"
-#: tree.c:3266
+#: tree.c:3280
#, fuzzy
msgid "%Jvariable %qD definition is marked dllimport."
msgstr "statische variable `%s' is als dllimport aangeduid"
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "arrays van functies zijn niet betekenisvol"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "ongeldige beginwaarde voor bit-string"
-#: tree.c:5446
+#: tree.c:5482
#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5483
+#: tree.c:5519
#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5496
+#: tree.c:5532
#, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5522
+#: tree.c:5558
#, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr ""
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr ""
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "registernaam niet opgegeven voor `%s'"
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "ongeldige registernaam voor `%s'"
-#: varasm.c:914
+#: varasm.c:915
#, fuzzy
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr "datatype van `%s' is niet geschikt voor een register"
-#: varasm.c:917
+#: varasm.c:918
#, fuzzy
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr "het registernummer voor `%s' is niet geschikt voor dat datatype"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "globale registervariabele heeft beginwaarde"
-#: varasm.c:930
+#: varasm.c:931
#, fuzzy
msgid "volatile register variables don%'t work as you might wish"
msgstr "'volatile' registervariabelen werken niet zoals U zou willen"
-#: varasm.c:963
+#: varasm.c:968
#, fuzzy
msgid "%Jregister name given for non-register variable %qD"
msgstr "registernaam opgegeven voor niet-registervariabele `%s'"
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: varasm.c:1592
+#: varasm.c:1607
#, fuzzy
msgid "%Jalignment of %qD 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:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
#, fuzzy
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr "het gevraagde alignment voor %s is groter dan het geïmplementeerde aligment van %d."
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "initializer voor integerwaarde is te ingewikkeld"
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr "initializer voor floating-point waarde is geen floating-point constante"
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr "onbekend type verzameling-constructor"
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
-#: varasm.c:4221
+#: varasm.c:4241
#, fuzzy
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
-#: varasm.c:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "de zwakke declaratie van `%s' moet publiek zijn"
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "de zwakke declaratie van `%s' moet publiek zijn"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "enkel zwakke aliasen worden in deze configuratie ondersteund"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: varasm.c:4418
+#: varasm.c:4504
+msgid "%qD aliased to undefined symbol %qE"
+msgstr ""
+
+#: varasm.c:4532
#, fuzzy
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
@@ -7710,11 +7728,11 @@ msgid "debug: "
msgstr ""
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7741,203 +7759,211 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr ""
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: params.def:145
+#: params.def:135
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: params.def:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: params.def:180
+#: params.def:170
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr ""
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr ""
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr ""
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr ""
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr ""
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr ""
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr ""
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr ""
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: params.def:340
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr ""
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr ""
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr ""
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:424
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
#, fuzzy
msgid "The upper bound for sharing integer constants"
msgstr "enumeratiewaarde voor `%s' is geen integrale constante"
@@ -7981,9 +8007,9 @@ msgstr "Brol aan einde van signature-string."
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
+#: config/darwin.c:1350
#, fuzzy
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -8047,15 +8073,15 @@ msgstr "Brol aan einde van signature-string."
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
msgstr ""
-#: config/darwin.h:154
+#: config/darwin.h:157
msgid "Generate code suitable for fast turn around debugging"
msgstr ""
-#: config/darwin.h:156
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
msgstr ""
@@ -8064,7 +8090,7 @@ msgstr ""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
@@ -8114,7 +8140,7 @@ msgstr "slechte waarde `%s' voor optie -mfp-rounding-mode"
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "slechte waarde `%s' voor optie -mfp-trap-mode"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "slechte waarde `%s' voor optie -mcpu"
@@ -8157,92 +8183,92 @@ msgstr "L%d cache-latency niet gekend voor %s"
msgid "bad value %qs for -mmemory-latency"
msgstr "slechte waarde `%s' voor -mmeroy-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr ""
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "ongeldige waarde voor %%E"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "ongeldige waarde voor %%r"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "ongeldige waarde voor %%R"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "ongeldige waarde voor %%N"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "ongeldige waarde voor %%P"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "ongeldige waarde voor %%h"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "ongeldige waarde voor %%L"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "ongeldige waarde voor %%m"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "ongeldige waarde voor %%M"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "ongeldige waarde voor %%U"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "ongeldige waarde voor %%s"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "ongeldige waarde voor %%C"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "ongeldige waarde voor %%E"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
#, fuzzy
msgid "unknown relocation unspec"
msgstr "onbekend type verzameling-constructor"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "ongeldige code voor %%xn"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr ""
@@ -8259,14 +8285,14 @@ 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/alpha/alpha.h:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr ""
@@ -8387,7 +8413,7 @@ msgstr ""
msgid "Tune expected memory latency"
msgstr ""
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -8406,17 +8432,17 @@ msgstr "het argument van `asm' is geen constante string"
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "het argument van `asm' is geen constante string"
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, fuzzy, c-format
msgid "invalid operand to %%R code"
msgstr "ongeldige operand voor %R-code"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, fuzzy, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "ongeldige operand voor %H/%L-code"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, fuzzy, c-format
msgid "invalid operand to %%U code"
msgstr "ongeldige operand voor %U-code"
@@ -8430,170 +8456,170 @@ msgstr "ongeldige operand voor %V-code"
# Zowel 'operand van uitvoercode' als 'code voor operanduitvoer' is mogelijk.
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "ongeldige operand voor uitvoercode"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, fuzzy, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "optie -mcpu=%s geeft conflicten met optie -mtune="
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "slechte waarde (%s) foor optie %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "doel-CPU ondersteunt geen interworking"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
#, fuzzy
msgid "target CPU does not support THUMB instructions"
msgstr "doel-CPU ondersteunt geen interworking"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check is niet compatibel met -mno-apcs-frame"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS reentrant code wordt niet ondersteund. Genegeerd"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
#, 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:962
+#: config/arm/arm.c:976
#, 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:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "Ongeldige optie `%s'"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr "Ongeldige optie voor floating-point emulatie: -mfpe-%s"
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "Ongeldige optie voor floating-point emulatie: -mfpe-%s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, fuzzy, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr "Ongeldige optie voor floating-point emulatie: -mfpe-%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, fuzzy, c-format
msgid "structure size boundary can only be set to %s"
msgstr "Grens voor structure-grootte kan enkel op 8 of 32 insgesteld worden"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "signature-string niet herkend"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "ongeldige operand van %s"
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
msgid "instruction never exectued"
msgstr ""
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "beginwaarde ontbreekt"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr ""
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
#, fuzzy
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "variable met beginwaarde `%s' is als dllimport aangeduid"
@@ -8706,7 +8732,7 @@ msgstr ""
msgid "Specify the register to be used for PIC addressing"
msgstr "Ongeldig register in ybase-addressering"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr ""
@@ -8722,63 +8748,73 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
#, fuzzy
msgid "internal compiler error. Bad address:"
msgstr "Interne compilerfout."
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
#, fuzzy
msgid "internal compiler error. Unknown mode:"
msgstr "Interne compilerfout."
# (%s = 'parameter <NUM>')
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
#, fuzzy
msgid "invalid insn:"
msgstr "ongeldige %s"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
#, fuzzy
msgid "unknown move insn:"
msgstr "onbekende machine-modus `%s'"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
#, fuzzy
msgid "internal compiler error. Incorrect shift:"
msgstr "Interne compilerfout."
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
#, 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.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
#, 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:4615
+#: config/avr/avr.c:4728
#, fuzzy, c-format
msgid "MCU %qs supported for assembler only"
msgstr "-pipe wordt niet ondersteund"
@@ -9176,262 +9212,252 @@ msgstr ""
msgid "Select CPU to generate code for"
msgstr ""
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
#, fuzzy
msgid "invalid operand for 'b' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
#, fuzzy
msgid "invalid operand for 'v' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
#, fuzzy
msgid "invalid operand for 'P' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
#, fuzzy
msgid "invalid operand for 'p' modifier"
msgstr "ongeldige operand voor %p-code"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
#, fuzzy
msgid "invalid operand for 'z' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
#, fuzzy
msgid "invalid operand for 'H' modifier"
msgstr "ongeldige operand voor %N-code"
# of is het 'slechte register-uitbreidingscode'?
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
#, fuzzy
msgid "bad register"
msgstr "Slechte code voor registeruitbreiding"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
#, fuzzy
msgid "invalid operand for 'e' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
#, fuzzy
msgid "invalid operand for 'm' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
#, fuzzy
msgid "invalid operand for 'A' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
#, fuzzy
msgid "invalid operand for 'D' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
#, fuzzy
msgid "invalid operand for 'T' modifier"
msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
#, fuzzy
msgid "invalid operand modifier letter"
msgstr "ongeldige operand van %s"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "formaatstring niet beëindigd"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
#, fuzzy
msgid "unexpected operand"
msgstr "ongeldige operand van %s"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
#, fuzzy
msgid "unrecognized address"
msgstr "geen argumenten"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "signature-string niet herkend"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, 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:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
#, fuzzy
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr ""
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-#, fuzzy
-msgid "unexpected address expression"
-msgstr "ongeldige waarheidsexpressie"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr ""
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr ""
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
msgid "Generate code for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
#, fuzzy
msgid "Tune alignment for the specified chip or CPU version"
msgstr "er kan geen alignment opgegeven worden voor `%s'"
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -9439,46 +9465,46 @@ msgstr ""
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, fuzzy, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, fuzzy, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, fuzzy, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, fuzzy, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, fuzzy, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, fuzzy, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
@@ -9486,144 +9512,142 @@ msgstr ""
msgid "Assume small address space"
msgstr ""
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2747
-msgid "Bad insn in frv_print_operand, bad const_double"
-msgstr ""
-
-#: config/frv/frv.c:2792
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr ""
+# of is het 'slechte register-uitbreidingscode'?
+#: config/frv/frv.c:2721
+#, fuzzy
+msgid "bad condition code"
+msgstr "Slechte code voor registeruitbreiding"
-#: config/frv/frv.c:2815
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#: config/frv/frv.c:2796
+msgid "Bad insn in frv_print_operand, bad const_double"
msgstr ""
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr ""
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr ""
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr ""
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
#, fuzzy
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr "ongeldige operand voor %N-code"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr ""
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr ""
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
#, fuzzy
msgid "frv_print_operand: unknown code"
msgstr "ongeldige operand voor %N-code"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr ""
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr ""
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
#, fuzzy
msgid "accumulator is not a constant integer"
msgstr "het argument van `asm' is geen constante string"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, fuzzy, c-format
msgid "inappropriate accumulator for %qs"
msgstr "geen eerdere declaratie voor `%s'"
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "ongeldige waarde voor %%C"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, c-format
msgid "%qs expects a constant argument"
msgstr ""
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "teveel argumenten voor procedure `%s'"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9636,7 +9660,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr ""
@@ -9717,189 +9741,197 @@ msgstr ""
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, fuzzy, c-format
msgid "code model %s not supported in PIC mode"
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "slechte waarde (%s) voor optie -mcmodel="
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, fuzzy, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "slechte waarde (%s) voor optie -mabi="
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "ANSI C ondersteunt de `%c' lengte-optie niet"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
#, fuzzy
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "doel-CPU ondersteunt geen interworking"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, fuzzy, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
#, fuzzy
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, 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:1389
+#: config/i386/i386.c:1385
#, fuzzy
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
#, fuzzy
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, 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:1452
+#: config/i386/i386.c:1448
#, 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:1464
+#: config/i386/i386.c:1460
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "slechte waarde (%s) voor optie -msdata"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
#, 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:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
#, fuzzy
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "pointer naar functie gebruikt in rekensom"
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
#, fuzzy
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "pointer naar functie gebruikt in rekensom"
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, fuzzy, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
#, fuzzy
msgid "fastcall and stdcall attributes are not compatible"
msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
#, fuzzy
msgid "fastcall and regparm attributes are not compatible"
msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "herhalings-aantal is geen integerconstante"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "kan het `%s' attribuut niet instellen na een definitie"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "ongeldige UNSPEC als operand"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "ongeldige operand van %s"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
#, fuzzy
msgid "invalid constraints for operand"
msgstr "ongeldige operand voor %P"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
#, fuzzy
msgid "unknown insn mode"
msgstr "onbekende machine-modus `%s'"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
#, fuzzy
msgid "shift must be an immediate"
msgstr "`defined' zonder een naam"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "het `%s' attribuut wordt genegeerd"
@@ -10004,176 +10036,176 @@ msgstr "-pipe wordt niet ondersteund"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
#, fuzzy
msgid "Alternate calling convention"
msgstr "Onbeëindigde stringconstante"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
#, fuzzy
msgid "Do not return values of functions in FPU registers"
msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
#, fuzzy
msgid "Align destination of the string operations"
msgstr "ANSI C staat het testen van asserties niet toe"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
#, fuzzy
msgid "Do not inline all known string operations"
msgstr "ANSI C staat het testen van asserties niet toe"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
#, fuzzy
msgid "Support MMX built-in functions"
msgstr "ingebouwde functie `%s' is niet geïmplementeerd"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
#, fuzzy
msgid "Do not support MMX built-in functions"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
#, fuzzy
msgid "Support 3DNow! built-in functions"
msgstr "ingebouwde functie `%s' wordt verborgen"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
#, fuzzy
msgid "Do not support 3DNow! built-in functions"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:408
+#: config/i386/i386.h:407
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:410
+#: config/i386/i386.h:409
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:412
+#: config/i386/i386.h:411
#, fuzzy
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "ingebouwde functie `%s' is niet geïmplementeerd"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
#, fuzzy
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -10187,57 +10219,57 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr ""
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr ""
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
#, fuzzy
msgid "Loop code aligned to this power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
#, fuzzy
msgid "Jump targets are aligned to this power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
#, fuzzy
msgid "Function starts are aligned to this power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr ""
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr ""
@@ -10281,61 +10313,61 @@ msgid "malformed #pragma builtin"
msgstr "misvormde #pragma weak"
# Is the %s the argument, or is it 'of' the argument?
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "ongeldig type-argument `%s'"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
#, fuzzy
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
#, fuzzy
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
#, fuzzy
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, fuzzy, c-format
msgid "%s-%s is an empty range"
msgstr "leeg bereik"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, fuzzy, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
@@ -10343,175 +10375,171 @@ 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr ""
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr ""
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr ""
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr ""
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr ""
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
#, fuzzy
msgid "Use in/loc/out register names"
msgstr "ongeldige registernaam voor `%s'"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
#, fuzzy
msgid "Do not inline floating point division"
msgstr "ANSI C staat het testen van asserties niet toe"
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "Ongeldige addresseringsmodus"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
msgstr ""
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr ""
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
#, fuzzy
msgid "bad operand"
msgstr "ongeldige operand voor %P"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, fuzzy, c-format
msgid "The compiler does not support -march=%s."
msgstr "%s ondersteunt %s niet"
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr ""
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "het argument van `asm' is geen constante string"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr ""
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, fuzzy, c-format
msgid "invalid %%P operand"
msgstr "ongeldige operand voor %P"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr ""
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, fuzzy, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ongeldig gebruik van een void-expressie"
@@ -10528,90 +10556,90 @@ msgstr ""
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "slechte waarde (%s) voor optie -mmodel"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "slechte waarde (%s) voor optie -msdata"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, fuzzy, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "slechte waarde (%s) voor optie -msdata"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, fuzzy, c-format
msgid "invalid operand to %%s code"
msgstr "ongeldige operand voor %s-code"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, fuzzy, c-format
msgid "invalid operand to %%p code"
msgstr "ongeldige operand voor %p-code"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, fuzzy, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "ongeldige operand voor %T/%B-code"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, fuzzy, c-format
msgid "invalid operand to %%N code"
msgstr "ongeldige operand voor %N-code"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
#, fuzzy
msgid "pre-increment address is not a register"
msgstr "operand `%d' is geen register"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
#, fuzzy
msgid "pre-decrement address is not a register"
msgstr "operand `%d' is geen register"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
#, fuzzy
msgid "post-increment address is not a register"
msgstr "switch-waarde is geen integer"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr ""
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr ""
@@ -10641,11 +10669,11 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr ""
@@ -10662,56 +10690,56 @@ msgstr ""
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr ""
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
#, fuzzy
msgid "%<trap%> attribute is already used"
msgstr "het `%s' attribuut wordt genegeerd"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
#, fuzzy
msgid "move insn not handled"
msgstr "onvolledige CASE - %s niet opgevangen"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
#, fuzzy
msgid "invalid register in the move instruction"
msgstr "Ongeldig register in ybase-addressering"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "ongeldige operand voor %s-code"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
#, fuzzy
msgid "invalid register in the instruction"
msgstr "Ongeldig register in ybase-addressering"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
#, fuzzy
msgid "operand 1 must be a hard register"
msgstr "operand `%d' is geen register"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
#, fuzzy
msgid "invalid rotate insn"
msgstr "ongeldig karakter in naam van macro-parameter"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
#, fuzzy
msgid "invalid Z register replacement for insn"
msgstr "ongeldige registernaam voor `%s'"
@@ -10809,7 +10837,7 @@ msgstr "-EB en -EL mogen niet samen gebruikt worden"
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr ""
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
#, fuzzy
msgid "stack limit expression is not supported"
msgstr "-pipe wordt niet ondersteund"
@@ -10948,7 +10976,7 @@ msgstr ""
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "Pngeldige optie `-%s'"
@@ -11005,136 +11033,137 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "slechte waarde (%s) voor optie -mabi="
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, fuzzy, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "case-selector niet compatibel met label"
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr ""
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr ""
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, fuzzy, c-format
msgid "unsupported combination: %s"
msgstr "niet-ondersteunde versie"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr ""
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr ""
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr ""
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr ""
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr ""
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr ""
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "ongeldige waarde voor %%O"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "kan oproep van `%s' niet inline maken"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr ""
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, fuzzy, c-format
msgid "bad value (%s) for %s"
msgstr "slechte waarde (%s) foor optie %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11144,63 +11173,63 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
msgstr ""
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr ""
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr ""
@@ -11210,197 +11239,197 @@ 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
msgid "Use paired-single floating point instructions"
msgstr ""
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "ongeldig gebruik van `restrict'"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
msgid "Perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
msgid "Work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
msgid "Don't work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
msgid "Work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
msgid "Don't work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
msgid "Don't work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
msgid "Use trap to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
msgid "Use break to check for integer divide by zero"
msgstr ""
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
msgid "Generate mips16 code"
msgstr ""
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
#, fuzzy
msgid "Generate normal-mode code"
msgstr "incompatibele record-modus"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
#, fuzzy
msgid "FP exceptions are enabled"
msgstr "ingeschakelde opties: "
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
#, fuzzy
msgid "FP exceptions are not enabled"
msgstr "ingeschakelde opties: "
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr ""
@@ -11427,70 +11456,70 @@ msgstr ""
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr ""
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr ""
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
#, fuzzy
msgid "MMIX Internal: This is not a constant:"
msgstr "gevraagd alignment is geen constante"
@@ -11565,15 +11594,15 @@ msgstr ""
msgid "Do not generate a single exit point for each function"
msgstr "interne fout - slechte ingebouwde functie `%s'"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr ""
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr ""
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr ""
@@ -11660,63 +11689,68 @@ msgstr "Ongeldige registerklasse-letter %c"
msgid "No \"Small register classes\" kludge"
msgstr "Ongeldige registerklasse-letter %c"
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:486
+#: config/pa/pa.c:494
#, fuzzy
msgid "-g option disabled"
msgstr "ingeschakelde opties: "
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr ""
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr ""
@@ -11869,11 +11903,11 @@ msgstr ""
msgid "Specify CPU for scheduling purposes."
msgstr ""
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -12018,220 +12052,246 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr "Brol aan einde van signature-string."
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, fuzzy, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "onbekende machine-modus `%s'"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "onbekende machine-modus `%s'"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "Pngeldige optie `-%s'"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, fuzzy, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "onbekende machine-modus `%s'"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
#, 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:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
#, 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:6748
+#: config/rs6000/rs6000.c:6847
#, 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:6802
+#: config/rs6000/rs6000.c:6901
#, fuzzy
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "argument voor `__builtin_args_info' buiten bereik"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
#, 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:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "argument van `%s' moet van een integraal type zijn."
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
#, 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:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
#, 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:7571
+#: config/rs6000/rs6000.c:7670
#, fuzzy
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "argument voor `__builtin_args_info' buiten bereik"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, fuzzy, c-format
msgid "invalid %%K value"
msgstr "ongeldige waarde voor %%E"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "ongeldige waarde voor %%O"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, fuzzy, c-format
msgid "invalid %%q value"
msgstr "ongeldige waarde voor %q"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "bestand `%s' is te groot"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
msgstr ""
-#: config/rs6000/aix.h:203 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/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
-#: config/rs6000/aix.h:205 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/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr ""
@@ -12293,15 +12353,15 @@ msgstr ""
msgid "-m64 not supported in this configuration"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr ""
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr ""
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr ""
@@ -12457,7 +12517,7 @@ msgstr "ongeldig gebruik van `restrict'"
msgid "Do not generate single field mfcr instruction"
msgstr "interne fout - slechte ingebouwde functie `%s'"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr ""
@@ -12529,7 +12589,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
@@ -12683,83 +12743,87 @@ msgstr ""
msgid "-m%s not supported in this configuration"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr ""
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "trapmodus niet ondersteund voor VAX-floats"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
#, fuzzy
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "slechte waarde (%s) voor optie -mcpu"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "slechte waarde (%s) voor optie -msdata"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "slechte waarde (%s) voor optie -msdata"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr ""
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "opslaggrootte van `%s' is onbekend"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12855,30 +12919,30 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
#, fuzzy
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs wordt niet ondersteund op dit doelsysteem"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs 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:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs attribute argument not a string constant"
msgstr "asm-template is geen stringconstante"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "herhalings-aantal is geen integerconstante"
@@ -12914,7 +12978,7 @@ msgstr "statische variable `%s' is als dllimport aangeduid"
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
@@ -12927,183 +12991,183 @@ msgstr ""
msgid "Profiling is not supported on this target."
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "Ongeldige operand voor %%C"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, fuzzy, c-format
msgid "invalid %%s operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr ""
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr ""
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr ""
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr ""
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr ""
@@ -13237,65 +13301,65 @@ msgstr "Brol aan einde van signature-string."
msgid "junk at end of #pragma ghs endzda"
msgstr "Brol aan einde van signature-string."
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, fuzzy, c-format
msgid "%s=%s is not numeric"
msgstr "`%s' is geen iterator"
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "bestand `%s' is te groot"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
#, fuzzy
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr ""
@@ -13481,12 +13545,12 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ada/misc.c:258
+#: ada/misc.c:257
#, fuzzy, c-format
msgid "missing argument to \"-%s\""
msgstr "Bestandsnaam ontbreekt na `%s' optie"
-#: ada/misc.c:299
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
@@ -13494,576 +13558,595 @@ msgstr ""
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr ""
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
#, fuzzy
msgid "no matching function for call to %<%D(%A)%>"
msgstr "Teveel argumenten in oproep van `%s'"
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
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:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2959
+#: cp/call.c:2965
#, fuzzy
msgid "no match for call to %<(%T) (%A)%>"
msgstr "Teveel argumenten in oproep van `%s'"
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "grootte van `%s' is %u bytes"
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:3015
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:3020
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:3025
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:3028
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
#, 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:3195
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr ""
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3700
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:3753
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
msgstr ""
-#: cp/call.c:3755
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
msgstr ""
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "vergelijking tussen signed en unsigned"
-#: cp/call.c:4044
+#: cp/call.c:4052
msgid "no suitable %<operator %s> for %qT"
msgstr ""
-#: cp/call.c:4061
+#: cp/call.c:4069
#, fuzzy
msgid "%q+#D is private"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/call.c:4065
+#: cp/call.c:4073
#, fuzzy
msgid "%q+#D is inaccessible"
msgstr "%s is niet addresseerbaar"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr ""
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "ongeldige registernaam voor `%s'"
# Is the %s the argument, or is it 'of' the argument?
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr "ongeldig type-argument `%s'"
-#: cp/call.c:4300
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "doorgeven van argument %d van `%s'"
+
+#: cp/call.c:4180
+msgid "converting to non-pointer type %qT from NULL"
+msgstr ""
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "doorgeven van argument %d van `%s'"
+
+#: cp/call.c:4191
+msgid "converting to %qT from %qT"
+msgstr ""
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "doorgeven van argument %d van `%s'"
+
+#: cp/call.c:4203
+msgid "converting negative value %qE to %qT"
+msgstr ""
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
msgid "cannot bind packed field %qE to %qT"
msgstr ""
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/call.c:4401
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
-#: cp/call.c:4470
+#: cp/call.c:4529
#, fuzzy
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "argumenten aan macro `%s' gegeven"
-#: cp/call.c:4675
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:4694
+#: cp/call.c:4753
#, fuzzy
msgid "%qT is not an accessible base of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/call.c:4944
+#: cp/call.c:5003
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "kan functie `main' niet inline maken"
-#: cp/call.c:5231
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/call.c:5310
+#: cp/call.c:5367
#, fuzzy
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr "Teveel argumenten in oproep van `%s'"
-#: cp/call.c:5328
+#: cp/call.c:5385
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:5352
+#: cp/call.c:5409
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:5957
+#: cp/call.c:6014
#, fuzzy
msgid "passing %qT chooses %qT over %qT"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr "kan oproep van `%s' niet inline maken"
-#: cp/call.c:6016
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr ""
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: cp/call.c:6411
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr ""
-#: cp/call.c:6415
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:273
+#: cp/class.c:272
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr ""
-#: cp/class.c:898
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+#: cp/class.c:929
+msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:899
-msgid "Java class %qT cannot have a destructor"
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:998
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/class.c:1055
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
msgstr ""
-#: cp/class.c:1058
+#: cp/class.c:1091
#, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr ""
-#: cp/class.c:1108
+#: cp/class.c:1141
msgid "%qD names constructor"
msgstr ""
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "Ongeldige optie `%s'"
-#: cp/class.c:1121
+#: cp/class.c:1154
#, fuzzy
msgid "no members matching %qD in %q#T"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "Ongeldige optie `%s'"
-#: cp/class.c:1154
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
msgstr ""
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "veld `%s' heeft een onvolledig type"
-#: cp/class.c:1226
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr ""
-
-#: cp/class.c:1534
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1545
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1585
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:1923
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
msgid "%qD was hidden"
msgstr ""
-#: cp/class.c:2380
+#: cp/class.c:2410
#, fuzzy
msgid " by %qD"
msgstr "%s voor `%s'"
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2545
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "breedte van bitveld `%s' is geen integerconstante"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "breedte van bitveld `%s' is geen integerconstante"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "bitveld `%s' heeft breedte 0"
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "breedte van `%s' overschrijdt zijn type"
-#: cp/class.c:2649
+#: cp/class.c:2671
msgid "%qD is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:2711
+#: cp/class.c:2731
msgid "member %q#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:2714
+#: cp/class.c:2734
msgid "member %q#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:2717
+#: cp/class.c:2737
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "overtollige elementen in beginwaarde van union"
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/class.c:2875
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2895
msgid "field %qD in local class cannot be static"
msgstr ""
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "bitveld `%s' heeft een ongeldig type"
-#: cp/class.c:2929
+#: cp/class.c:2939
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2977
+#: cp/class.c:2986
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2992
+#: cp/class.c:3001
msgid "field %q#D with same name as class"
msgstr ""
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "%s heeft geen benoemde leden"
-#: cp/class.c:3030
+#: cp/class.c:3038
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3032
+#: cp/class.c:3040
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:3043
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3468
+#: cp/class.c:3476
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3588
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "geen beginwaarde voor variant-veld `%s'"
-#: cp/class.c:4321
+#: cp/class.c:4333
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4432
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4432
+#: cp/class.c:4444
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4603
+#: cp/class.c:4621
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4683
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4693
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "herdefinitie van `%s'"
-#: cp/class.c:5019
+#: cp/class.c:5042
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5114
+#: cp/class.c:5139
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "taal %s niet herkend"
-#: cp/class.c:5617
+#: cp/class.c:5642
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5767
msgid "no matches converting function %qD to type %q#T"
msgstr ""
-#: cp/class.c:5765
+#: cp/class.c:5790
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr ""
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "herhaald lid `%s'"
-#: cp/class.c:5794
+#: cp/class.c:5819
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr ""
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "argument `%s' komt niet overeen met prototype"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -14072,12 +14155,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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "herdeclaratie van `%s'"
-#: cp/class.c:6273
+#: cp/class.c:6269
msgid "changes meaning of %qD from %q+#D"
msgstr ""
@@ -14098,188 +14181,197 @@ msgstr ""
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr ""
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "kan niet derefereren, is geen pointer."
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
msgid "%q#T used where a %qT was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:717
msgid "%q#T used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "conversie naar niet-scalair type gevraagd"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+msgid "pseudo-destructor is not called"
+msgstr ""
+
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:856
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:872
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, 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:894
+#: cp/cvt.c:898
#, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, fuzzy, c-format
msgid "%s has no effect"
msgstr "%s heeft geen leden"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "modus van `%s' is geen modus"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
msgid "ambiguous default type conversion from %qT"
msgstr ""
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "`%s' was als `extern' gedeclareerd en daarna als `static'"
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "functie `%s' geherdeclareerd als inline"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "eerdere declaratie van functie `%s' had het noinline attribuut"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "functie `%s' geherdeclareerd met noinline attribuut"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "eerdere declaratie van functie `%s' was inline"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "bibliotheekfunctie `%s' wordt verborgen"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "bibliotheekfunctie `%s' als niet-functie gedeclareerd"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "herdeclaratie van `enum %s'"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "eerdere declaratie van `%s'"
@@ -14291,78 +14383,78 @@ msgstr "eerdere declaratie van `%s'"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "`%s' tevoren hier gedefinieerd"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "`%s' tevoren hier gedeclareerd"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "prototype voor `%s' volgt"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
#, fuzzy
msgid "%Jfollows non-prototype definition here"
msgstr "niet-prototype definitie hier"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "argumenten aan macro `%s' gegeven"
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "eerdere definitie van `%s'"
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "`%s' werd voor haar definitie gebruikt zonder protoype"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "eerdere impliciete declaratie van `%s'"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "overbodige herdeclaratie van `%s' in zelfde bereik"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "geen eerdere declaratie voor `%s'"
@@ -14375,247 +14467,247 @@ 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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "naar label %s gerefereerd buiten enige functie"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "herhaald label `%s'"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
#, fuzzy
msgid "%H from here"
msgstr "van hieruit opgeroepen"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
msgid " enters scope of non-POD %q#D"
msgstr ""
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr ""
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:2370
+#: cp/decl.c:2257
#, fuzzy
msgid " from here"
msgstr "van hieruit opgeroepen"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr ""
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
#, fuzzy
msgid "label named wchar_t"
msgstr "er is geen label dat `%s' heet"
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "herhaald label `%s'"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "macro `%s' gebruikt zonder argumenten"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "het type van de teruggeefwaarde van `%s' is niet `int'"
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "niet-beëindigde parameterlijst in `#define'"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:3466
+#: cp/decl.c:3362
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3470
+#: cp/decl.c:3366
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3474
+#: cp/decl.c:3370
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
#, fuzzy
msgid "missing type-name in typedef-declaration"
msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers can only be specified for objects and functions"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "typedef `%s' krijgt beginwaarde alsof het een variabele is"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "`%s' is geen static veld"
-#: cp/decl.c:3772
+#: cp/decl.c:3671
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "dubbele beginwaarde"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "variabele `%s' heeft beginwaarde, maar een onvolledig type"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "elementen van array `%s' hebben een onvolledig type"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "parameter `%s' heeft een onvolledig type"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ANSI C verbiedt lege initialisatie-accolades"
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "array-grootte ontbreekt in `%s'"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "array `%s' heeft grootte die negatief of 0 is"
@@ -14623,664 +14715,687 @@ 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "opslaggrootte van `%s' is onbekend"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "opslaggrootte van `%s' is niet constant"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "geen beginwaarde voor variant-veld `%s'"
-#: cp/decl.c:4376
+#: cp/decl.c:4280
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:4392
+#: cp/decl.c:4296
#, fuzzy
msgid "ISO C++ does not allow designated initializers"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "union heeft geen lid dat `%s' heet"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "ongeldige beginwaarde voor veld `%s'"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "`%s' heeft een onvolledig type"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "Onbeëindigde stringconstante"
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr ""
-#: cp/decl.c:4915
+#: cp/decl.c:4830
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:5523
+#: cp/decl.c:5447
msgid "destructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5525
+#: cp/decl.c:5449
msgid "constructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/decl.c:5550
+#: cp/decl.c:5474
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr ""
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
msgid "cannot declare %<::main%> to be a template"
msgstr ""
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
msgid "%<::main%> must return %<int%>"
msgstr ""
-#: cp/decl.c:5681
+#: cp/decl.c:5608
msgid "non-local function %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:5690
+#: cp/decl.c:5617
msgid "non-local function %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD in friend declaration"
msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "ongeldig gebruik van een void-expressie"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5783
+#: cp/decl.c:5710
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
msgstr "functie-definitie als `auto' gedeclareerd"
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
msgid "non-local variable %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:6035
+#: cp/decl.c:5953
msgid "non-local variable %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:6150
+#: cp/decl.c:6070
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr ""
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "grootte van array `%s' is negatief"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
#, fuzzy
msgid "size of array is negative"
msgstr "grootte van array `%s' is negatief"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
#, fuzzy
msgid "ISO C++ forbids zero-size array"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
#, fuzzy
msgid "size of array is not an integral constant-expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ANSI C verbiedt array `%s' van variabele lengte"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
#, fuzzy
msgid "ISO C++ forbids variable-size array"
msgstr "ANSI C verbiedt array `%s' van variabele lengte"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, fuzzy, c-format
msgid "creating %s"
msgstr "read %s"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "registernaam niet opgegeven voor `%s'"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "variabele of veld `%s' als void gedeclareerd"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "iterator `%s' is van een afgeleid type"
-#: cp/decl.c:6674
-msgid "declarator-id missing; using reserved word %qD"
-msgstr ""
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "`%s' wordt gedeclareerd als een array van functies"
+
+#: cp/decl.c:6593
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "twee of meer data types in de declaratie van `%s'"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ANSI C ondersteunt `long long' niet"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ANSI C verbiedt lid-declaraties zonder leden"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "'long', 'short', 'signed' of 'unsigned' ongeldig voor `%s'"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "'long', 'short', 'signed' of 'unsigned' ongeldig voor `%s'"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "'long' of 'short' opgegeven bij 'char' voor `%s'"
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "'long' of 'short' opgegeven bij floating-point type voor `%s'"
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "ongeldig gebruik van 'long', 'short', 'signed' of 'unsigned' voor `%s'"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "'complex' ongeldig voor `%s'"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "%s laat qualifiers van doeltype van pointer vallen"
+
+#: cp/decl.c:6957
msgid "member %qD cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "`%s' is geen iterator"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "opslagklasse opgegeven voor parameter `%s'"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "top-level declaratie van `%s' specifieert `auto'"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "structure heeft geen lid dat `%s' heet"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "structure heeft geen lid dat `%s' heet"
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "ingebouwde functie `%s' kan niet uitgeschakeld worden"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr ""
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "kan niet derefereren, is geen pointer."
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "`%s' is geen iterator"
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr ""
-#: cp/decl.c:7516
+#: cp/decl.c:7466
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "kan niet derefereren, is geen pointer."
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: cp/decl.c:7570
+#: cp/decl.c:7520
#, fuzzy
msgid "data member may not have variably modified type %qT"
msgstr "argument %d is alleen-lezen"
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: cp/decl.c:7572
+#: cp/decl.c:7522
#, fuzzy
msgid "parameter may not have variably modified type %qT"
msgstr "argument %d is alleen-lezen"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
msgid "only declarations of constructors can be %<explicit%>"
msgstr ""
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:7627
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
+#: cp/decl.c:7595
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:7689
-#, fuzzy
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "%s laat qualifiers van doeltype van pointer vallen"
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: cp/decl.c:7752
+#: cp/decl.c:7720
#, fuzzy
msgid "type qualifiers specified for friend class declaration"
msgstr "twee types opgegeven in één lege declaratie"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "niet-beëindigde parameterlijst in `#define'"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:7771
+#: cp/decl.c:7739
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr ""
-#: cp/decl.c:7784
+#: cp/decl.c:7752
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:7763
#, fuzzy
msgid "invalid qualifiers on non-member function type"
msgstr "%s laat qualifiers van doeltype van pointer vallen"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "attributen genegeerd in declarator van parameter-array"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "ongeldig gebruik van `restrict'"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
msgid "can't make %qD into a method -- not in a class"
msgstr ""
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
msgid "%qD cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "de declaratie van `%s' verbergt een parameter"
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "veld `%s' heeft een onvolledig type"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "parameter `%s' heeft een onvolledig type"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -15296,87 +15411,87 @@ 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
msgid "making %qD static"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8156
+#: cp/decl.c:8129
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
msgid "cannot declare member function %qD to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:8231
+#: cp/decl.c:8204
msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/decl.c:8243
+#: cp/decl.c:8216
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "eerste argument van `%s' zou een `int' moeten zijn"
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "eerste argument van `%s' zou een `int' moeten zijn"
# Is the %s the argument, or is it 'of' the argument?
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "ongeldig type-argument `%s'"
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr ""
@@ -15395,124 +15510,124 @@ 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:8657
+#: cp/decl.c:8630
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD must be either a non-static member function or a non-member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/decl.c:8827
+#: cp/decl.c:8800
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:8933
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8969
+#: cp/decl.c:8942
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:9003
+#: cp/decl.c:8976
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "incompatibel type voor argument %d van `%s'"
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
msgstr "beginwaarde ontbreekt"
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "dit is een eerdere declaratie"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "dit is een eerdere declaratie"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
msgid "%qT referred to as enum"
msgstr ""
@@ -15523,54 +15638,58 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
#, fuzzy
msgid "derived union %qT invalid"
msgstr "overtollige elementen in beginwaarde van union"
-#: cp/decl.c:9397
+#: cp/decl.c:9389
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:9405
+#: cp/decl.c:9397
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT fails to be a struct or class type"
msgstr "`%s' is geen typedef of ingebouwd type"
-#: cp/decl.c:9457
+#: cp/decl.c:9449
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "herhaalde case-waarde"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "herdefinitie van `%s'"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "eerdere definitie van `%s'"
@@ -15579,75 +15698,75 @@ msgstr "eerdere definitie van `%s'"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "enumeratiewaarde voor `%s' is geen integrale constante"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "overflow in enumeratiewaarden"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "type van teruggeefwaarde is onvolledig"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "kan klasse '%s' niet vinden"
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr ""
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:381
+#: cp/decl2.c:380
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr ""
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr ""
-#: cp/decl2.c:444
+#: cp/decl2.c:441
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr ""
-#: cp/decl2.c:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "`%.*s' is niet gedefinieerd"
@@ -15655,184 +15774,178 @@ msgstr "`%.*s' is niet gedefinieerd"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "herdeclaratie van `enum %s'"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "herdeclaratie van `%s'"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
msgstr ""
-#: cp/decl2.c:572
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
msgstr ""
-#: cp/decl2.c:677
+#: cp/decl2.c:674
msgid "prototype for %q#D does not match any in class %qT"
msgstr ""
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "`%s' is geen static veld"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:870
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "kan klasse '%s' niet vinden"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:964
+#: cp/decl2.c:972
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "cast geeft functie-type op"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "cast geeft functie-type op"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "kan klasse '%s' niet vinden"
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "ongeldige beginwaarde voor bit-string"
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
#, fuzzy
msgid "anonymous struct not inside named type"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
#, fuzzy
msgid "anonymous union with no members"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
msgid "%<operator new%> must return type %qT"
msgstr ""
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr ""
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr ""
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "parameternaam ontbreekt uit parameterlijst"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr ""
-#: cp/except.c:250
+#: cp/except.c:273
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
#, fuzzy
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr "iterator `%s' is van een afgeleid type"
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:810
+#: cp/except.c:836
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:895
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
msgstr ""
-#: cp/except.c:897
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
msgstr ""
-#: cp/except.c:927
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr ""
@@ -15917,203 +16030,211 @@ msgstr ""
msgid "argument to '%s' missing\n"
msgstr "argument van `%s' moet van een integraal type zijn."
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "ongeldige beginwaarde"
-#: cp/init.c:363
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr ""
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
#, fuzzy
msgid "%qD will be initialized after"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "veld `%s' heeft al een beginwaarde gekregen"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr "%s voor `%s'"
-#: cp/init.c:523
+#: cp/init.c:533
#, fuzzy
msgid " base %qT"
msgstr "%s voor `%s'"
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: cp/init.c:667
+#: cp/init.c:677
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
msgid "class %qT does not have any field named %qD"
msgstr ""
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "`%s' is geen static veld"
-#: cp/init.c:943
+#: cp/init.c:953
msgid "unnamed initializer for %qT, which has no base classes"
msgstr ""
-#: cp/init.c:951
+#: cp/init.c:961
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:997
+#: cp/init.c:1007
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "`%s' is geen iterator"
-#: cp/init.c:1379
+#: cp/init.c:1389
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr ""
-#: cp/init.c:1387
+#: cp/init.c:1397
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:1679
+#: cp/init.c:1700
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:1695
+#: cp/init.c:1716
#, fuzzy
msgid "can't find class$"
msgstr "kan %s niet vinden"
-#: cp/init.c:1823
+#: cp/init.c:1844
msgid "invalid type %<void%> for new"
msgstr ""
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: cp/init.c:1867
+#: cp/init.c:1888
#, c-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "grootte van `%s' is %u bytes"
-#: cp/init.c:2040
+#: cp/init.c:2061
#, fuzzy
msgid "ISO C++ forbids initialization in array new"
msgstr "ANSI C verbiedt lege initialisatie-accolades"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr ""
@@ -16189,14 +16310,18 @@ msgstr ""
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:650
+#: cp/method.c:657
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr ""
-#: cp/method.c:656
+#: cp/method.c:663
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr ""
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16297,65 +16422,59 @@ msgstr ""
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "%d constructor(s) gevonden\n"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "eerdere declaratie van `%s'"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "conflicterende declaraties van `%s'"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "`%s' is geen iterator"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "`%s' staat niet aan het begin van een declaratie"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "`%.*s' is niet gedefinieerd"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr ""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr ""
@@ -16363,329 +16482,335 @@ msgstr ""
msgid "using-declaration cannot name destructor"
msgstr ""
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "eerdere impliciete declaratie van `%s'"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "`%s' staat niet aan het begin van een declaratie"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "onbekende machine-modus `%s'"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "attribuut-commando `%s' wordt genegeerd"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "grootte van `%s' is %u bytes"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
msgid "%qD denotes an ambiguous type"
msgstr ""
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
#, fuzzy
msgid "%J first type here"
msgstr "van hieruit opgeroepen"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "ongeldig gebruik van `restrict'"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "`%s' is geen iterator"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "ongeldige naam `%s'"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "`%s' is meestal een functie"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr "conflicterende types voor `%s'"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+msgid "%<#pragma%> is not allowed here"
+msgstr ""
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/parser.c:1818
+#: cp/parser.c:1842
#, fuzzy
msgid "request for member %qD in non-class type %qT"
msgstr "grootte van `%s' is %u bytes"
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
msgid "%<%D::%D%> %s"
msgstr ""
-#: cp/parser.c:1829
+#: cp/parser.c:1853
msgid "%<::%D%> %s"
msgstr ""
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr "%s voor `%s'"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr ""
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "conflicterende declaraties van `%s'"
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "`%s' is geen iterator"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "`%s' is geen iterator"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "ongeldig karakter in naam van macro-parameter"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "overflow in constante expressie"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "ongeldig gebruik van een void-expressie"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "`%s' is smaller dan waarden van zijn type"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "`%s' is smaller dan waarden van zijn type"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
#, fuzzy
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ANSI C verbiedt accolade-groepen in expressies"
# 'braced-group'? Wie schrijft verdorie die foutmeldingen?
-#: cp/parser.c:2687
+#: cp/parser.c:2757
#, fuzzy
msgid "statement-expressions are allowed only inside functions"
msgstr "accolade-groep in expressie enkel toegestaan binnen een functie"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
#, fuzzy
msgid "ISO C++ forbids compound-literals"
msgstr "ANSI C verbiedt het gebruik van samengestelde expressies als lvalues"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr ""
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr ""
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr ""
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr ""
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "case-label niet in een switch-statement"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
#, fuzzy
msgid "ISO C++ forbids computed gotos"
msgstr "ANSI C verbiedt geneste functies"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "herhaalde `%s'"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
#, fuzzy
msgid "class definition may not be declared a friend"
msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr ""
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "`%s' is geen iterator"
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "`%s' is geen iterator"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "herdeclaratie van `%s'"
+
+#: cp/parser.c:9688
msgid "using %<typename%> outside of template"
msgstr ""
-#: cp/parser.c:9677
-#, fuzzy
-msgid "expected type-name"
-msgstr "ongeldige operand van %s"
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
#, fuzzy
msgid "type attributes are honored only at type definition"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
@@ -16693,114 +16818,124 @@ msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
#, fuzzy
msgid "a template-id may not appear in a using-declaration"
msgstr "`%s' staat niet aan het begin van een declaratie"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10597
#, fuzzy
msgid "attributes are not allowed on a function-definition"
msgstr "globale registervariabele volgt op een functiedefinitie"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
#, fuzzy
msgid "attributes after parenthesized initializer ignored"
msgstr "attributen genegeerd in declarator van parameter-array"
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "array subscript is geen integer"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "`%s' is geen iterator"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "herhaalde case-waarde"
# Is the %s the argument, or is it 'of' the argument?
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "ongeldig type-argument `%s'"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
#, fuzzy
msgid "deprecated use of default argument for parameter of non-function"
msgstr "argumenten aan macro `%s' gegeven"
-#: cp/parser.c:11858
+#: cp/parser.c:11980
#, fuzzy
msgid "default arguments are only permitted for function parameters"
msgstr "argumenten aan macro `%s' gegeven"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "herdeclaratie van `%s'"
+
+#: cp/parser.c:12733
#, fuzzy
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr ""
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "eerdere definitie van `%s'"
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
#, fuzzy
msgid "friend declaration does not name a class or function"
msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:13395
+#: cp/parser.c:13547
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr ""
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr ""
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "grootte van `%s' is %u bytes"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
#, fuzzy
msgid "too few template-parameter-lists"
msgstr "twee of meer data types in de declaratie van `%s'"
@@ -16809,169 +16944,169 @@ msgstr "twee of meer data types in de declaratie van `%s'"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
#, fuzzy
msgid "too many template-parameter-lists"
msgstr "meerdere opslagklassen in declaratie van `%s'"
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "lege declaratie"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "-pipe wordt niet ondersteund"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "herdeclaratie van `%s'"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:15063
+#: cp/parser.c:15233
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:15068
+#: cp/parser.c:15238
msgid "missing %<>%> to terminate the template argument list"
msgstr ""
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
msgstr "Ongeldige optie `%s'"
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
msgid "inter-module optimizations not implemented for C++"
msgstr ""
-#: cp/pt.c:240
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr "herdefinitie van `%s'"
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/pt.c:738
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
msgstr ""
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:1542
+#: cp/pt.c:1543
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "twee of meer data types in de declaratie van `%s'"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr ""
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "`%s' is meestal een functie"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16980,68 +17115,62 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
#, fuzzy
msgid "specialization of implicitly-declared special member function"
msgstr "`%s' impliciet als functie gedeclareerd"
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "meerdere opslagklassen in declaratie van `%s'"
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2630
+#: cp/pt.c:2605
msgid " %qD"
msgstr ""
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "variabele `%s' als inline gedeclareerd"
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, fuzzy, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr "argument %d is alleen-lezen"
-#: cp/pt.c:2710
+#: cp/pt.c:2685
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr ""
# Is the %s the argument, or is it 'of' the argument?
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "ongeldig type-argument `%s'"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
msgstr "`%s %s' binnen parameterlijst gedeclareerd"
@@ -17051,62 +17180,67 @@ msgstr "`%s %s' binnen parameterlijst gedeclareerd"
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "herdefinitie van `union %s'"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "twee of meer data types in de declaratie van `%s'"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "eerdere declaratie van `%s'"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, fuzzy, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
#, fuzzy
msgid "redeclared here as %q#D"
msgstr "ongeldige naam `%s'"
@@ -17115,330 +17249,341 @@ msgstr "ongeldige naam `%s'"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "herdefinitie van `struct %s'"
-#: cp/pt.c:3260
+#: cp/pt.c:3246
#, fuzzy
msgid "%J original definition appeared here"
msgstr "functie-definitie als `typdef' gedeclareerd"
-#: cp/pt.c:3370
+#: cp/pt.c:3342
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3411
+#: cp/pt.c:3383
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr ""
-#: cp/pt.c:3486
+#: cp/pt.c:3458
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr ""
-#: cp/pt.c:3536
+#: cp/pt.c:3508
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr ""
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:3576
+#: cp/pt.c:3548
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:3827
+#: cp/pt.c:3799
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:3845
+#: cp/pt.c:3818
msgid " expected a constant of type %qT, got %qT"
msgstr ""
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, c-format
msgid " expected a class template, got %qE"
msgstr ""
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, c-format
msgid " expected a type, got %qE"
msgstr ""
-#: cp/pt.c:3864
+#: cp/pt.c:3837
msgid " expected a type, got %qT"
msgstr ""
-#: cp/pt.c:3866
+#: cp/pt.c:3839
msgid " expected a class template, got %qT"
msgstr ""
-#: cp/pt.c:3903
+#: cp/pt.c:3876
msgid " expected a template of type %qD, got %qD"
msgstr ""
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "eerdere grant voor `%s'"
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "argument %d is alleen-lezen"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr ""
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "lege declaratie"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "herhaalde definitie `%s'"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "ongeldige operand voor %p-code"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "herdeclaratie van `%s'"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "`%s' gedeclareerd als een functie die een array teruggeeft"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "pointer naar lid-functie gebruikt in rekensom"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:7178
+#: cp/pt.c:7171
msgid "forming %s to reference type %qT"
msgstr ""
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "herhaald lid `%s'"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "herhaald lid `%s'"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "`%s' is smaller dan waarden van zijn type"
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:7557
+#: cp/pt.c:7556
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:8708
+# 'whitespace' -> 'witruimte'?
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "ontbrekende witruimte na getal `%s'"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:8844
-msgid "%qT uses anonymous type"
+#: cp/pt.c:8872
+msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:8846
+#: cp/pt.c:8874
msgid "%qT uses local type %qT"
msgstr ""
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: cp/pt.c:8854
+#: cp/pt.c:8883
#, fuzzy
msgid "%qT is a variably modified type"
msgstr "argument %d is alleen-lezen"
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "beginwaarde-element is niet constant"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
msgstr "slechte stringconstante"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr ""
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "eerdere impliciete declaratie van `%s'"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "herhaalde definitie `%s'"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr "pointer naar functie gebruikt in aftrekking"
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "herhaalde definitie `%s'"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr "pointer naar functie gebruikt in aftrekking"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "herhaalde definitie `%s'"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "eerdere impliciete declaratie van `%s'"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr ""
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "`%s' is geen iterator"
@@ -17457,23 +17602,23 @@ msgstr ""
msgid "can't create repository information file %qs"
msgstr "dubbele folder `%s' wordt genegeerd\n"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr ""
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:321
+#: cp/rtti.c:322
msgid "cannot create type information for type %qT because its size is variable"
msgstr ""
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr ""
-#: cp/rtti.c:667
+#: cp/rtti.c:663
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr ""
@@ -17487,231 +17632,226 @@ msgstr "`%s' is geen bestand, pipe of tty"
msgid "%qT is an inaccessible base of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
msgid " overriding %q#D"
msgstr ""
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "conflicterende types voor `%s'"
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "'long' of 'short' opgegeven bij 'char' voor `%s'"
-#: cp/search.c:1867
+#: cp/search.c:1876
msgid " overriding %q#F"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/search.c:1961
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
msgstr ""
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "type van parameter `%s' is niet gedeclareerd"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "array-grootte ontbreekt in `%s'"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "kan het `%s' attribuut niet instellen na een definitie"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "%s laat qualifiers van doeltype van pointer vallen"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "ongeldig gebruik van `this' op hoogste niveau"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
#, fuzzy
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "%s laat qualifiers van doeltype van pointer vallen"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "`%c' optie gebruikt bij type `%c'"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
msgid "invalid default argument for a template template parameter"
msgstr ""
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "de declaratie van `%s' verbergt een symbool uit de parameterlijst"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "eerdere definitie van `%s'"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
#, fuzzy
msgid "invalid base-class specification"
msgstr "ongeldige linker operand van %s"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "veld `%s' heeft een onvolledig type"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "grootte van `%s' is %u bytes"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "overflow in constante expressie"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "modi in %s expressie komen niet overeen"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "modi in %s expressie komen niet overeen"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr "grootte van `%s' is %u bytes"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "opslaggrootte van `%s' is onbekend"
-#: cp/tree.c:525
+#: cp/tree.c:539
msgid "%qV qualifiers cannot be applied to %qT"
msgstr ""
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
@@ -17731,214 +17871,214 @@ msgstr "pointer van type `void *' gebruikt in aftrekking"
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "ongeldige toepasing van `%s' op een void-type"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ANSI C verbiedt het adres van een gecaste expressie"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
#, fuzzy
msgid "invalid access to non-static data member %qD of NULL object"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "union heeft geen lid dat `%s' heet"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD 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:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "`%s' is geen iterator"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "ongeldig gebruik van array die geen lvalue is"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr ""
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "subscript ontbreekt in array-referentie"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
#, 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:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "subscript ontbreekt in array-referentie"
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "array-grootte ontbreekt in `%s'"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ANSI C verbiedt accolade-groepen in expressies"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "teveel argumenten voor functie `%s'"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr ""
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "teveel argumenten voor functie"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "parameter heeft een onvolledig type"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "parameter heeft een onvolledig type"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "te weinig argumenten voor functie `%s'"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "te weinig argument voor functie"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
#, fuzzy
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "vergelijking tussen pointer en integer"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
#, fuzzy
msgid "unordered comparison on non-floating point argument"
msgstr "geordende vergelijking van een pointer met integer nul"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "ongeldige operanden voor binaire %s-operator"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "vergelijking tussen pointer en integer"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
#, fuzzy
msgid "comparison between signed and unsigned integer expressions"
msgstr "vergelijking tussen signed en unsigned"
@@ -17947,154 +18087,154 @@ msgstr "vergelijking tussen signed en unsigned"
#. 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:3475
+#: cp/typeck.c:3431
#, fuzzy
msgid "NULL used in arithmetic"
msgstr "pointer naar functie gebruikt in rekensom"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr "pointer van type `void *' gebruikt in aftrekking"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
#, fuzzy
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "pointer naar functie gebruikt in aftrekking"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
#, fuzzy
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "pointer naar functie gebruikt in aftrekking"
# 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
#, fuzzy
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "rekensom met pointer naar onvolledig type"
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, fuzzy, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ANSI C verbiedt case-bereiken"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ANSI C verbiedt het casten van een niet-scalair naar hetzelfde type"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "ongeldig gebruik van array die geen lvalue is"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, 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:4050
+#: cp/typeck.c:4006
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr ""
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
#, fuzzy
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr "ANSI C verbiedt het adres van een gecaste expressie"
-#: cp/typeck.c:4083
+#: cp/typeck.c:4039
#, 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:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr ""
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
#, fuzzy
msgid "taking address of bound pointer-to-member expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr "kan adres van bitveld `%s' niet nemen"
-#: cp/typeck.c:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "adres van registervariabele `%s' gevraagd"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
# vertaling voor 'statement'?
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, fuzzy, c-format
msgid "%s expression list treated as compound expression"
msgstr "expressie-statement heeft onvolledig type"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
msgid "%s from type %qT to type %qT casts away constness"
msgstr ""
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
msgid "cast from %qT to %qT loses precision"
msgstr ""
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "cast verhoogt het benodigde alignment van het doeltype"
@@ -18103,167 +18243,140 @@ msgstr "cast verhoogt het benodigde alignment van het doeltype"
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
#, 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:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ANSI C verbiedt casts naar een union-type"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "incompatibel type voor argument %d van `%s'"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
#, fuzzy
msgid "ISO C++ forbids assignment of arrays"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "pointer naar een lid gebruikt in rekensom"
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "pointer naar lid-functie gebruikt in rekensom"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "doorgeven van argument %d van `%s'"
-
-#: cp/typeck.c:5874
-msgid "%s to non-pointer type %qT from NULL"
-msgstr ""
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "doorgeven van argument %d van `%s'"
-
-#: cp/typeck.c:5885
-msgid "%s to %qT from %qT"
-msgstr ""
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "doorgeven van argument %d van `%s'"
-
-#: cp/typeck.c:5897
-msgid "%s of negative value %qE to %qT"
-msgstr ""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr ""
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
#, fuzzy
msgid "return-statement with a value, in function returning 'void'"
msgstr "`return' met waarde in een functie die void teruggeeft"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr ""
@@ -18324,166 +18437,166 @@ msgstr ""
msgid "%J since type %qT has pure virtual functions"
msgstr ""
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "int-array heeft niet-wide string als beginwaarde"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "accolades rond scalaire beginwaarde"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr ""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "onbekend veld `%s' opgegeven in beginwaarde"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
msgid "union %qT with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "parameter `%s' wijst naar een onvolledig type"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "kan bestand '%s' niet openen"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "globale registervariabele `%s' gebruikt in geneste functie"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "registervariabele `%s' gebruikt in geneste functie"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "adres van registervariabele `%s' gevraagd"
@@ -18502,83 +18615,83 @@ msgstr "argument van `%s' moet van een integraal type zijn."
msgid "no input files; unwilling to write output files"
msgstr ""
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "functie geeft geen string-type terug"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "ongeldige macronaam `%.*s'"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "%s van alleen-lezen variabele `%s'"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "onbekende machine-modus `%s'"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "taal %s niet herkend"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18596,7 +18709,7 @@ msgstr ""
msgid "Array element size too big"
msgstr "case-waarde buiten bereik"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18606,27 +18719,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
@@ -18664,58 +18777,58 @@ msgstr ""
msgid "%Jnon-static method '%D' overrides static method"
msgstr "niet-static methode '%s' vervangt static methode"
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "`%s' gebruikt vóór declaratie"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "de declaratie van `%s' verbergt een symbool uit de parameterlijst"
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: java/decl.c:1580
+#: java/decl.c:1637
#, fuzzy
msgid "%Jlabel '%D' defined but not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr ""
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, fuzzy, c-format
msgid "assert: %s is assign compatible with %s"
msgstr "case-selector niet compatibel met label"
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1699
+#: java/expr.c:1703
#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr ""
@@ -18724,294 +18837,294 @@ 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:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "veld `%s' niet gevonden"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "kan klasse '%s' niet vinden"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2708
+#: java/expr.c:2712
#, fuzzy, c-format
msgid "missing field '%s' in '%s'"
msgstr "beginwaarde ontbreekt"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2737
+#: java/expr.c:2741
#, fuzzy
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "toekenning aan final-veld `%s' niet in constructor"
-#: java/expr.c:2742
+#: java/expr.c:2746
#, fuzzy
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr "toekenning aan final-veld `%s' niet in constructor"
-#: java/expr.c:2751
+#: java/expr.c:2755
#, fuzzy
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "toekenning aan final-veld `%s' niet in constructor"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "ongeldige PC in tabel met regelnummers"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
#, fuzzy
msgid "unrecogized wide sub-instruction"
msgstr "signature-string niet herkend"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, c-format
msgid "ignored method '"
msgstr ""
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "kan %s niet vinden"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, c-format
msgid "parse error while reading %s"
msgstr ""
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "kan bestand '%s' niet stat'en"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "ongeldige basisklasse"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
#, fuzzy
msgid "error while parsing constant pool"
msgstr "%s voor stringconstante"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "constant object wordt beschreven (argument %d)"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "cast geeft array-type op"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "cast geeft array-type op"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
"\n"
msgstr ""
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr ""
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr ""
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr ""
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, c-format
msgid " -IDIR Append directory to class path\n"
msgstr ""
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, c-format
msgid " -o FILE Set output file name\n"
msgstr ""
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, c-format
msgid " --help Print this help, then exit\n"
msgstr ""
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, c-format
msgid " --version Print version number, then exit\n"
msgstr ""
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr ""
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr ""
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr ""
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, c-format
msgid ""
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "Bestandsnaam voor uitvoer twee keer opgegeven"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
msgid "'-MG' option is unimplemented"
msgstr ""
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "-EB en -EL mogen niet samen gebruikt worden"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "#error %s"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -19026,7 +19139,7 @@ msgstr "ongeldige basisklasse"
msgid "error while parsing constant pool\n"
msgstr "%s voor stringconstante"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, fuzzy, c-format
msgid "error in constant pool entry #%d\n"
msgstr "constant object wordt beschreven (argument %d)"
@@ -19100,106 +19213,106 @@ msgstr ""
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr ""
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "slechte stringconstante"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "open %s"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "close %s"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "[kan %s niet vinden]"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
#, fuzzy
msgid "not a valid Java .class file"
msgstr "ongeldige basisklasse"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
#, fuzzy
msgid "no input file specified"
msgstr "Geen invoerbestanden"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "kan bestand '%s' niet openen"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, fuzzy, c-format
msgid "error while reading %s from zip file"
msgstr "%s voor stringconstante"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
#, fuzzy
msgid "field initializer type mismatch"
msgstr "ongeldige beginwaarde voor bit-string"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "dubbele folder `%s' wordt genegeerd\n"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, fuzzy, c-format
msgid "can't open %s for writing: %m"
msgstr "open %s"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "open %s"
@@ -19253,27 +19366,27 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "kan bestand '%s' niet openen"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "kan %s niet vinden"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "parse-fout"
# Dit zou misschien beter 'warning' blijven
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, fuzzy, c-format
msgid "%s: warning: "
msgstr "let op: "
@@ -19327,15 +19440,15 @@ msgstr ""
msgid "cannot specify 'main' class when not linking"
msgstr ""
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:256
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -19344,7 +19457,7 @@ msgid ""
"%<--encoding=UTF-8%> option"
msgstr ""
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "formaatstring niet beëindigd"
@@ -19358,930 +19471,930 @@ msgstr "close %s"
msgid "internal error - invalid Utf8 name"
msgstr ""
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
#, fuzzy
msgid "Missing term"
msgstr "beginwaarde ontbreekt"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr ""
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
#, fuzzy
msgid "Missing name"
msgstr "beginwaarde ontbreekt"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr ""
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr ""
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "veld `%s' als een functie gedeclareerd"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr ""
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr ""
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr ""
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr ""
-#: java/parse.y:990
+#: java/parse.y:989
#, fuzzy
msgid "Missing variable initializer"
msgstr "beginwaarde ontbreekt"
-#: java/parse.y:1007
+#: java/parse.y:1006
#, fuzzy
msgid "Invalid declaration"
msgstr "lege declaratie"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr ""
-#: java/parse.y:1014
+#: java/parse.y:1013
#, fuzzy
msgid "Unbalanced ']'"
msgstr "niet-gebalanceerde `#endif'"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr ""
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr ""
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr ""
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr ""
-#: java/parse.y:1109
+#: java/parse.y:1108
#, fuzzy
msgid "Missing formal parameter term"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
#, fuzzy
msgid "Missing identifier"
msgstr "beginwaarde ontbreekt"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr ""
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
#, fuzzy
msgid "Invalid interface type"
msgstr "Ongeldig register voor vergelijking"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr ""
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
#, fuzzy
msgid "Invalid expression statement"
msgstr "ongeldige expressie als operand"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr ""
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr ""
-#: java/parse.y:1676
+#: java/parse.y:1675
#, fuzzy
msgid "Missing or invalid constant expression"
msgstr "overflow in constante expressie"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr ""
-#: java/parse.y:1736
+#: java/parse.y:1735
#, fuzzy
msgid "Invalid control expression"
msgstr "Ongeldig token in expressie"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
#, fuzzy
msgid "Invalid update expression"
msgstr "Ongeldig token in expressie"
-#: java/parse.y:1765
+#: java/parse.y:1764
#, fuzzy
msgid "Invalid init statement"
msgstr "ongeldige beginwaarde"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr ""
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr ""
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr ""
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr ""
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr ""
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr ""
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr ""
-#: java/parse.y:2450
+#: java/parse.y:2449
#, fuzzy
msgid "']' expected, invalid type expression"
msgstr "ongeldige waarheidsexpressie"
-#: java/parse.y:2453
+#: java/parse.y:2452
#, fuzzy
msgid "Invalid type expression"
msgstr "Ongeldig token in expressie"
-#: java/parse.y:2565
+#: java/parse.y:2564
#, fuzzy
msgid "Invalid reference type"
msgstr "Ongeldige modus voor gen_tst_reg"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr ""
-#: java/parse.y:3042
+#: java/parse.y:3041
#, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ""
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "beginwaarde ontbreekt"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "ongeldige beginwaarde"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "veld `%s' heeft al een beginwaarde gekregen"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, c-format
msgid "Interface %qs repeated"
msgstr ""
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
msgid "Qualifier must be a reference"
msgstr ""
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "herdefinitie van `struct %s'"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "type krijgt standaardwaarde `int' in de declaratie van `%s'"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
msgid "Class %qs not found in %<throws%>"
msgstr ""
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "herhaalde label-declaratie `%s'"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, c-format
msgid "Class or interface %qs not found in import"
msgstr ""
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: java/parse.y:7148
+#: java/parse.y:7151
#, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
-#: java/parse.y:7153
+#: java/parse.y:7156
#, c-format
msgid "Package %qs not found in import"
msgstr ""
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "ongeldige operand van %s"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "kan klasse '%s' niet vinden"
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "[kan %s niet vinden]"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, c-format
msgid "Can't use type %qs as a qualifier"
msgstr ""
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, fuzzy, c-format
msgid "No variable %qs defined in type %qs"
msgstr "variabele `%s' als inline gedeclareerd"
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "geen eerdere declaratie voor `%s'"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "overflow in constante expressie"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "incompatibel type voor argument %d van `%s'"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "herhaalde case-waarde"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
# 'whitespace' -> 'witruimte'?
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
msgstr "ontbrekende witruimte na getal `%s'"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
msgstr "`%s' is geen static veld"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr ""
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "ongeldige lvalue in toewijzing"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "incompatibel type voor argument %d van `%s'"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, fuzzy, c-format
msgid "unregistered operator %s"
msgstr "registernaam niet opgegeven voor `%s'"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
# Is the %s the argument, or is it 'of' the argument?
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "ongeldig type-argument `%s'"
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "incompatibel type voor argument %d van `%s'"
# Is the %s the argument, or is it 'of' the argument?
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "ongeldig type-argument `%s'"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "ongeldige registernaam voor `%s'"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "incompatibel type voor argument %d van `%s'"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "array krijgt niet-constante array-expressie als beginwaarde"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "incompatibel type voor argument %d van `%s'"
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "leeg indexbereik in beginwaarde"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "leeg indexbereik in beginwaarde"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
msgid "%<return%> with value from constructor %qs"
msgstr ""
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "dit is een eerdere declaratie"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "label niet in een CASE-statement"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "continue-statement niet in een lus"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "continue-statement niet in een lus"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "break-statement niet in een lus of switch"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "herhaald label `%s'"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
msgid "original label is here"
msgstr ""
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "leeg indexbereik in beginwaarde"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "incompatibel type voor argument %d van `%s'"
# Moet 'signature-string' vertaald worden?
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "Brol aan einde van signature-string."
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, c-format
msgid "verification failed: %s"
msgstr ""
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, c-format
msgid "verification failed at PC=%d: %s"
msgstr ""
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -20329,177 +20442,177 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "incompatibel type voor argument %d van onrechtstreekse functie-oproep"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
msgid "%<@end%> must appear in an @implementation context"
msgstr ""
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
msgid "method declaration not in @interface context"
msgstr ""
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
msgid "method definition not in @implementation context"
msgstr ""
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, c-format
msgid "object does not conform to the %qs protocol"
msgstr ""
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr ""
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr ""
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "geen eerdere declaratie voor `%s'"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "geen eerdere declaratie voor `%s'"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr ""
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "kan niet derefereren, is geen pointer."
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "-fPIC is niet geldig met -mcoff"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "kan %s niet vinden"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "veld `%s' heeft al een beginwaarde gekregen"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
#, fuzzy
msgid "%Jprevious declaration of '%D'"
msgstr "eerdere declaratie van `%s'"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
msgstr ""
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
msgstr ""
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
msgstr ""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
msgid "%J%s %qs"
msgstr ""
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
msgid "can not use an object as parameter to a method"
msgstr ""
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "meerdere parameters hebben de naam `%s'"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, c-format
msgid "no super class declared in @interface for %qs"
msgstr ""
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "ongeldige operand voor %p-code"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
msgid "%<%c%s%> not found in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
msgid "%qs may not respond to %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
msgstr ""
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
msgstr "ongeldige naam `%s'"
@@ -20513,148 +20626,148 @@ msgstr "ongeldige naam `%s'"
#. 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "registervariabele `%s' gebruikt in geneste functie"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "impliciete declaratie van functie `%s'"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "geen eerdere declaratie voor `%s'"
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "registernaam opgegeven voor niet-registervariabele `%s'"
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, c-format
msgid "instance variable %qs has unknown size"
msgstr ""
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "registernaam opgegeven voor niet-registervariabele `%s'"
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, c-format
msgid "type %qs has a user-defined constructor"
msgstr ""
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, c-format
msgid "type %qs has a user-defined destructor"
msgstr ""
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "statische variable `%s' is als dllimport aangeduid"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr ""
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "statische variable `%s' is als dllimport aangeduid"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
msgid "static access to object of type %<id%>"
msgstr ""
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, c-format
msgid "incomplete implementation of class %qs"
msgstr ""
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, c-format
msgid "incomplete implementation of category %qs"
msgstr ""
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
msgid "method definition for %<%c%s%> not found"
msgstr ""
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr ""
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
msgid "%<@end%> missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "geen eerdere declaratie voor `%s'"
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "herhaalde definitie `%s'"
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "conflicterende declaraties van `%s'"
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "eerdere declaratie van `%s'"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "impliciete declaratie van functie `%s'"
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "impliciete declaratie van functie `%s'"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, c-format
msgid "no super class declared in interface for %qs"
msgstr ""
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "extra puntkomma opgegeven in struct of union"
@@ -20664,22 +20777,22 @@ msgstr "extra puntkomma opgegeven in struct of union"
msgid "%HDuplicate name %q.*s."
msgstr "herhaald lid `%s'"
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "globale registervariabele `%s' gebruikt in geneste functie"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "registervariabele `%s' gebruikt in geneste functie"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "adres van registervariabele `%s' gevraagd"
@@ -21046,682 +21159,683 @@ msgid "Warn about function pointer arithmetic"
msgstr "pointer naar functie gebruikt in rekensom"
#: options.c:1237
+#, fuzzy
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "vergelijking van gepromoveerde ~unsigned met unsigned"
+
+#: options.c:1240
msgid "Warn if inherited methods are unimplemented"
msgstr ""
-#: options.c:1240
+#: options.c:1243
#, fuzzy
msgid "Warn about multiple declarations of the same object"
msgstr "overbodige herdeclaratie van `%s' in zelfde bereik"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr ""
-#: options.c:1246
+#: options.c:1249
#, fuzzy
msgid "Warn when the compiler reorders code"
msgstr "incompatibele record-modus"
-#: options.c:1249
+#: options.c:1252
#, fuzzy
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr "teruggeefwaarde krijgt standaardtype `int'"
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr ""
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: options.c:1258
+#: options.c:1261
#, fuzzy
msgid "Warn when one local variable shadows another"
msgstr "De locale variabele `insn' heeft de waarde:"
-#: options.c:1261
+#: options.c:1264
#, fuzzy
msgid "Warn about signed-unsigned comparisons"
msgstr "formaatstring niet beëindigd"
-#: options.c:1264
+#: options.c:1267
#, fuzzy
msgid "Warn when overload promotes from unsigned to signed"
msgstr "vergelijking van gepromoveerde ~unsigned met unsigned"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
#, fuzzy
msgid "Warn about code which might break strict aliasing rules"
msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "niet-prototype definitie hier"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "geen eerdere declaratie voor `%s'"
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr ""
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
#, fuzzy
msgid "Warn about @selector()s without previously declared methods"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: options.c:1303
+#: options.c:1306
#, fuzzy
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "ongedefinieerd of ongeldig #-commando"
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "overflow in constante expressie"
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr ""
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr ""
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr ""
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr ""
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr ""
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr ""
-#: options.c:1342
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr ""
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr ""
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
#, fuzzy
msgid "Generate position-independent code if possible (large mode)"
msgstr "Positie-onafhankelijke code wordt niet ondersteund. Genegeerd"
-#: options.c:1378
+#: options.c:1381
#, fuzzy
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr "Positie-onafhankelijke code wordt niet ondersteund. Genegeerd"
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr ""
-#: options.c:1387
+#: options.c:1390
#, fuzzy
msgid "Align the start of functions"
msgstr "impliciete declaratie van functie `%s'"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr ""
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr ""
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr ""
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr ""
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr ""
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "interne fout - slechte ingebouwde functie `%s'"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr ""
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr ""
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr ""
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr ""
-#: options.c:1480
+#: options.c:1483
msgid "Generate checks for references to NULL"
msgstr ""
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr ""
-#: options.c:1498
+#: options.c:1501
#, fuzzy
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "slechte stringconstante"
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr ""
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr ""
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
#, fuzzy
msgid "Place data items into their own section"
msgstr "keer vermeld voor elke functie waarin hij staat.)"
-#: options.c:1519
+#: options.c:1525
#, fuzzy
msgid "Inline member functions by default"
msgstr "kan functie `main' niet inline maken"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr ""
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr ""
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
# "brede string"? "string met brede karakters/tekens"?
-#: options.c:1543
+#: options.c:1549
#, fuzzy
msgid "Permit '$' as an identifier character"
msgstr "formaat is een wide-character string"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
msgid "Display the code tree after parsing."
msgstr ""
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
#, fuzzy
msgid "Generate code to check exception specifications"
msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr ""
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr ""
-#: options.c:1615
+#: options.c:1621
msgid "Assume that the source file is fixed form"
msgstr ""
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: options.c:1630
+#: options.c:1636
#, fuzzy
msgid "Copy memory address constants into registers before use"
msgstr "numerieke constante zonder cijfers"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr ""
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: options.c:1648
+#: options.c:1654
#, fuzzy
msgid "Place each function into its own section"
msgstr "keer vermeld voor elke functie waarin hij staat.)"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr ""
-#: options.c:1654
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
msgstr ""
-#: options.c:1657
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr ""
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr ""
-#: options.c:1693
+#: options.c:1699
#, fuzzy
msgid "Process #ident directives"
msgstr "ongeldig preprocessing-commando"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
#, fuzzy
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: options.c:1702
+#: options.c:1708
#, fuzzy
msgid "Export functions even if they can be inlined"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "impliciete declaratie van functie `%s'"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "impliciete declaratie van functie `%s'"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr ""
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr ""
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr ""
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1750
#, fuzzy
msgid "Generate code for functions even if they are fully inlined"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr ""
-#: options.c:1756
+#: options.c:1762
#, fuzzy
msgid "Perform loop optimizations"
msgstr "lege declaratie"
-#: options.c:1759
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1768
#, fuzzy
msgid "Set errno after built-in math functions"
msgstr "interne fout - slechte ingebouwde functie `%s'"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr ""
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr ""
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: options.c:1792
+#: options.c:1798
#, fuzzy
msgid "Don't warn about uses of Microsoft extensions"
msgstr "teveel argumenten voor functie"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr ""
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
@@ -22155,318 +22269,322 @@ msgid "Enable loop vectorization on trees"
msgstr "lege declaratie"
#: options.c:2161
-msgid "Append underscores to externally visible names"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
msgstr ""
#: options.c:2164
-msgid "Compile whole compilation unit at a time"
+msgid "Append underscores to externally visible names"
msgstr ""
#: options.c:2167
-msgid "Perform loop unrolling for all loops"
+msgid "Compile whole compilation unit at a time"
msgstr ""
#: options.c:2170
-msgid "Perform loop unrolling when iteration count is known"
+msgid "Perform loop unrolling for all loops"
msgstr ""
#: options.c:2173
-msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgid "Perform loop unrolling when iteration count is known"
msgstr ""
#: options.c:2176
-msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
#: options.c:2179
-msgid "Make \"char\" unsigned by default"
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
#: options.c:2182
-msgid "Perform loop unswitching"
+msgid "Make \"char\" unsigned by default"
msgstr ""
#: options.c:2185
-msgid "Just generate unwind tables for exception handling"
+msgid "Perform loop unswitching"
msgstr ""
#: options.c:2188
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "case-label niet in een switch-statement"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
msgid "Perform variable tracking"
msgstr ""
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr ""
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
#, fuzzy
msgid "Use expression value profiles in optimizations"
msgstr "lege declaratie"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr ""
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr ""
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr ""
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr ""
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr ""
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr ""
-#: options.c:2254
+#: options.c:2257
#, fuzzy
msgid "Dump declarations to a .decl file"
msgstr "declaratie declareert niets"
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr ""
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr ""
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr ""
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
msgid "-o <file>\tPlace output into <file>"
msgstr ""
-#: options.c:2323
+#: options.c:2326
msgid "Enable function profiling"
msgstr ""
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr ""
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr ""
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr ""
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
#, fuzzy
msgid "Remap file names when including files"
msgstr "lege bestandsnaam in `#%s'"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr ""
-#: options.c:2407
+#: options.c:2410
msgid "Suppress warnings"
msgstr ""
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "-EB en -EL mogen niet samen gebruikt worden"
@@ -22485,35 +22603,35 @@ msgstr "-mhard-float wordt niet ondersteund"
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float en -msoft-float kunnen niet samen gebruikt worden."
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
@@ -22544,32 +22662,23 @@ msgstr ""
msgid "shared and mdll are not compatible"
msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "-pipe wordt niet ondersteund"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
#, fuzzy
msgid "may not use both -m32 and -m64"
msgstr "-mfp64 en -m4650 mogen niet samen gebruikt worden"
-#: treelang/lang-specs.h:52
-#, fuzzy
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-
#: 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/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "-pipe wordt niet ondersteund"
-
#: 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"
@@ -22597,12 +22706,16 @@ msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
msgid "the m210 does not have little endian support"
msgstr ""
-#: gcc.c:769
+#: gcc.c:763
#, fuzzy
msgid "GCC does not support -C or -CC without -E"
msgstr "GNU C ondersteunt -C niet wanneer -E niet gebruikt wordt"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "-E is nodig wanneer de invoer van standaardinvoer komt"
@@ -22620,10 +22733,15 @@ msgstr ""
msgid "does not support multilib"
msgstr "%s ondersteunt %s niet"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr ""
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
@@ -23366,10 +23484,6 @@ msgstr ""
#~ msgstr "[kan %s niet vinden]"
#, fuzzy
-#~ msgid "_Pragma takes a parenthesized string literal"
-#~ msgstr "Onbeëindigde stringconstante"
-
-#, fuzzy
#~ msgid "#else after #else"
#~ msgstr "`#else' na `#else'"
@@ -23565,6 +23679,9 @@ msgstr ""
#~ msgid "invalid --param option: %s"
#~ msgstr "Ongeldige optie `%s'"
+#~ msgid "unknown set constructor type"
+#~ msgstr "onbekend type verzameling-constructor"
+
#, fuzzy
#~ msgid "#`%s' not supported by %s#"
#~ msgstr "-pipe wordt niet ondersteund"
@@ -23590,6 +23707,10 @@ msgstr ""
#~ msgstr "interworking forceert het gebruikt van APCS-32"
#, fuzzy
+#~ msgid "unexpected address expression"
+#~ msgstr "ongeldige waarheidsexpressie"
+
+#, fuzzy
#~ msgid "stack size > 32k"
#~ msgstr "Stackgrootte > 32k"
@@ -23597,11 +23718,6 @@ msgstr ""
#~ msgid "invalid addressing mode"
#~ msgstr "Ongeldige addresseringsmodus"
-# of is het 'slechte register-uitbreidingscode'?
-#, fuzzy
-#~ msgid "bad register extension code"
-#~ msgstr "Slechte code voor registeruitbreiding"
-
#, fuzzy
#~ msgid "invalid offset in ybase addressing"
#~ msgstr "Ongeldige offset in ybase-addressering"
@@ -23714,6 +23830,14 @@ msgstr ""
#~ msgstr "onbekende machine-modus `%s'"
#, fuzzy
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Het doorgeven van floating-point argumenten in fp registers wordt nog niet ondersteund"
+
+#, 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"
+
+#, fuzzy
#~ msgid "invalid UNSPEC as operand (1)"
#~ msgstr "ongeldige UNSPEC als operand"
@@ -23778,6 +23902,14 @@ msgstr ""
#~ msgstr "`%s' impliciet als functie gedeclareerd"
#, fuzzy
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "argument-formaat opgegeven voor niet-functie `%s'"
+
+#, fuzzy
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "ongeldige beginwaarde voor bit-string"
+
+#, fuzzy
#~ msgid "`%s' not supported by %s"
#~ msgstr "-pipe wordt niet ondersteund"
@@ -23806,10 +23938,6 @@ msgstr ""
#~ msgstr "ANSI C verbiedt lege initialisatie-accolades"
#, fuzzy
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "conflicterende declaraties van `%s'"
-
-#, fuzzy
#~ msgid "`%D' undeclared (first use this function)"
#~ msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)"
@@ -23850,6 +23978,10 @@ msgstr ""
#~ msgstr "opslagklasse opgegeven voor parameter `%s'"
#, fuzzy
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "meerdere opslagklassen in declaratie van `%s'"
+
+#, fuzzy
#~ msgid "ISO C++ does not permit named return values"
#~ msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
diff --git a/gcc/po/rw.po b/gcc/po/rw.po
new file mode 100644
index 00000000000..447b23dacf6
--- /dev/null
+++ b/gcc/po/rw.po
@@ -0,0 +1,24887 @@
+# 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 4.0-b20050226\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\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:175
+#, fuzzy, c-format
+msgid "%qs attribute directive ignored"
+msgstr "%qsIkiranga"
+
+#: attribs.c:183
+#, fuzzy, c-format
+msgid "wrong number of arguments specified for %qs attribute"
+msgstr "Umubare Bya ingingo kugirango Ikiranga"
+
+#: attribs.c:200
+#, fuzzy, c-format
+msgid "%qs attribute does not apply to types"
+msgstr "%qsIkiranga OYA Gukurikiza Kuri"
+
+#: attribs.c:246
+#, fuzzy, c-format
+msgid "%qs attribute only applies to function types"
+msgstr "%qsIkiranga Kuri Umumaro"
+
+#: builtins.c:341
+#, fuzzy
+msgid "offset outside bounds of constant string"
+msgstr "Nta- boneza Hanze Bya Ikurikiranyanyuguti"
+
+#: builtins.c:928
+#, fuzzy
+msgid "second argument to %<__builtin_prefetch%> must be a constant"
+msgstr "ISEGONDA Kuri a"
+
+#: builtins.c:935
+#, fuzzy
+msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
+msgstr "Sibyo ISEGONDA Kuri ikoresha Zeru"
+
+#: builtins.c:943
+#, fuzzy
+msgid "third argument to %<__builtin_prefetch%> must be a constant"
+msgstr "Kuri a"
+
+#: builtins.c:950
+#, fuzzy
+msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
+msgstr "Sibyo Kuri ikoresha Zeru"
+
+#: builtins.c:3806
+#, fuzzy
+msgid "argument of %<__builtin_args_info%> must be constant"
+msgstr "Bya"
+
+#: builtins.c:3812
+#, fuzzy
+msgid "argument of %<__builtin_args_info%> out of range"
+msgstr "Bya Inyuma Bya Urutonde"
+
+#: builtins.c:3818
+#, fuzzy
+msgid "missing argument in %<__builtin_args_info%>"
+msgstr "Ibuze in"
+
+#: builtins.c:3914 gimplify.c:1765
+#, fuzzy
+msgid "too few arguments to function %<va_start%>"
+msgstr "ingingo Kuri Umumaro"
+
+#: builtins.c:4077
+#, 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:4091
+#, fuzzy
+msgid "%qT is promoted to %qT when passed through %<...%>"
+msgstr "%qTni Kuri Ryari: Gihinguranya"
+
+#: builtins.c:4096
+#, fuzzy
+msgid "(so you should pass %qT not %qT to %<va_arg%>)"
+msgstr "(OYA Kuri"
+
+#. We can, however, treat "undefined" any way we please.
+#. Call abort to encourage the user to fix the program.
+#: builtins.c:4102 c-typeck.c:2023
+#, fuzzy
+msgid "if this code is reached, the program will abort"
+msgstr "NIBA iyi ITEGEKONGENGA ni i Porogaramu Kureka"
+
+#: builtins.c:4220
+#, fuzzy
+msgid "invalid argument to %<__builtin_frame_address%>"
+msgstr "Sibyo Kuri"
+
+#: builtins.c:4222
+#, fuzzy
+msgid "invalid argument to %<__builtin_return_address%>"
+msgstr "Sibyo Kuri"
+
+#: builtins.c:4235
+#, fuzzy
+msgid "unsupported argument to %<__builtin_frame_address%>"
+msgstr "Kuri"
+
+#: builtins.c:4237
+#, fuzzy
+msgid "unsupported argument to %<__builtin_return_address%>"
+msgstr "Kuri"
+
+#: builtins.c:4340
+#, fuzzy
+msgid "second argument to %<__builtin_expect%> must be a constant"
+msgstr "ISEGONDA Kuri a"
+
+#: builtins.c:5590
+#, fuzzy
+msgid "%<__builtin_longjmp%> second argument must be 1"
+msgstr "%<_ISEGONDA 1."
+
+#: builtins.c:5942
+#, fuzzy
+msgid "target format does not support infinity"
+msgstr "Intego Imiterere OYA Gushigikira Bidashira"
+
+#: builtins.c:7699 builtins.c:7794
+#, fuzzy, c-format
+msgid "too few arguments to function %qs"
+msgstr "ingingo Kuri Umumaro"
+
+#: builtins.c:7705 builtins.c:7800
+#, fuzzy, c-format
+msgid "too many arguments to function %qs"
+msgstr "ingingo Kuri Umumaro"
+
+#: builtins.c:7711 builtins.c:7825
+#, fuzzy, c-format
+msgid "non-floating-point argument to function %qs"
+msgstr "Bihindagurika Akadomo Kuri Umumaro"
+
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr "%<in Umumaro Na: BIHAMYE"
+
+#. 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:8918
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr ""
+
+#: builtins.c:8933
+#, fuzzy
+msgid "%<va_start%> used with too many arguments"
+msgstr "%<Na: ingingo"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "ISEGONDA Bya OYA Iheruka"
+
+#: c-common.c:826
+#, fuzzy
+msgid "%qD is not defined outside of function scope"
+msgstr "%qDni OYA Hanze Bya Umumaro Ingano:"
+
+#: c-common.c:847
+#, fuzzy, c-format
+msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
+msgstr "Ikurikiranyanyuguti Uburebure ni Biruta i Uburebure C Bya ngombwa Kuri Gushigikira"
+
+#: c-common.c:888
+#, fuzzy
+msgid "overflow in constant expression"
+msgstr "Byarenze urugero in imvugo"
+
+#: c-common.c:908
+#, fuzzy
+msgid "integer overflow in expression"
+msgstr "Umubare wuzuye Byarenze urugero in imvugo"
+
+#: c-common.c:917
+#, fuzzy
+msgid "floating point overflow in expression"
+msgstr "Bihindagurika Akadomo Byarenze urugero in imvugo"
+
+#: c-common.c:923
+#, 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:945
+#, fuzzy
+msgid "large integer implicitly truncated to unsigned type"
+msgstr "Binini Umubare wuzuye Kuri Bitashizweho umukono Ubwoko"
+
+#: c-common.c:947
+#, fuzzy
+msgid "negative integer implicitly converted to unsigned type"
+msgstr "Umubare wuzuye Kuri Bitashizweho umukono Ubwoko"
+
+#: c-common.c:1005
+#, fuzzy
+msgid "overflow in implicit constant conversion"
+msgstr "Byarenze urugero in Ihindurangero"
+
+#: c-common.c:1141
+#, fuzzy, c-format
+msgid "operation on %qs may be undefined"
+msgstr "ku Gicurasi kidasobanuye"
+
+#: c-common.c:1425
+#, fuzzy
+msgid "case label does not reduce to an integer constant"
+msgstr "Akarango OYA Kuri Umubare wuzuye"
+
+#: c-common.c:1468
+#, fuzzy
+msgid "case label value is less than minimum value for type"
+msgstr "Akarango Agaciro ni Birutwa Gito Agaciro kugirango Ubwoko"
+
+#: c-common.c:1476
+#, fuzzy
+msgid "case label value exceeds maximum value for type"
+msgstr "Akarango Agaciro Kinini Agaciro kugirango Ubwoko"
+
+#: c-common.c:1484
+#, fuzzy
+msgid "lower value in case label range less than minimum value for type"
+msgstr "Ntoya Agaciro in Akarango Urutonde Birutwa Gito Agaciro kugirango Ubwoko"
+
+#: c-common.c:1493
+#, fuzzy
+msgid "upper value in case label range exceeds maximum value for type"
+msgstr "Nkuru Agaciro in Akarango Urutonde Kinini Agaciro kugirango Ubwoko"
+
+#: c-common.c:1833
+#, fuzzy
+msgid "invalid truth-value expression"
+msgstr "Sibyo Agaciro imvugo"
+
+#: c-common.c:1881
+#, fuzzy, c-format
+msgid "invalid operands to binary %s"
+msgstr "Sibyo Kuri Nyabibiri"
+
+#: c-common.c:2116
+#, 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:2118
+#, 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:2188
+#, fuzzy
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr "Bya Bitashizweho umukono imvugo 0 ni Buri gihe NIBYO"
+
+#: c-common.c:2197
+#, fuzzy
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr "Bya Bitashizweho umukono imvugo 0 ni Buri gihe SIBYO"
+
+#: c-common.c:2239
+#, fuzzy
+msgid "pointer of type %<void *%> used in arithmetic"
+msgstr "Mweretsi Bya Ubwoko in"
+
+#: c-common.c:2245
+#, fuzzy
+msgid "pointer to a function used in arithmetic"
+msgstr "Mweretsi Kuri a Umumaro in"
+
+#: c-common.c:2251
+#, fuzzy
+msgid "pointer to member function used in arithmetic"
+msgstr "Mweretsi Kuri Umumaro in"
+
+#. Common Ada/Pascal programmer's mistake. We always warn
+#. about this since it is so bad.
+#: c-common.c:2371
+#, fuzzy
+msgid "the address of %qD, will always evaluate as %<true%>"
+msgstr "i Aderesi Bya Buri gihe Suzuma Nka NIBYO"
+
+#: c-common.c:2467
+#, fuzzy
+msgid "suggest parentheses around assignment used as truth value"
+msgstr "Igenera Nka Agaciro"
+
+#: c-common.c:2535 c-common.c:2575
+#, fuzzy
+msgid "invalid use of %<restrict%>"
+msgstr "Sibyo Gukoresha Bya"
+
+#: c-common.c:2791
+#, fuzzy
+msgid "invalid application of %<sizeof%> to a function type"
+msgstr "Sibyo Porogaramu Bya Kuri a Umumaro Ubwoko"
+
+#: c-common.c:2801
+#, fuzzy, c-format
+msgid "invalid application of %qs to a void type"
+msgstr "Sibyo Porogaramu Bya Kuri a Ubwoko"
+
+#: c-common.c:2807
+#, fuzzy
+msgid "invalid application of %qs to incomplete type %qT "
+msgstr "Sibyo Porogaramu Bya Kuri Ubwoko"
+
+#: c-common.c:2848
+#, fuzzy
+msgid "%<__alignof%> applied to a bit-field"
+msgstr "%<_Byashyizweho Kuri a Umwanya"
+
+#: c-common.c:3315
+#, fuzzy, c-format
+msgid "cannot disable built-in function %qs"
+msgstr "in Umumaro"
+
+#: c-common.c:3505
+#, fuzzy
+msgid "pointers are not permitted as case values"
+msgstr "OYA Nka Uduciro"
+
+#: c-common.c:3509
+#, fuzzy
+msgid "range expressions in switch statements are non-standard"
+msgstr "Urutonde in Hindura Bisanzwe"
+
+#: c-common.c:3534
+#, fuzzy
+msgid "empty range specified"
+msgstr "ubusa Urutonde"
+
+#: c-common.c:3593
+#, fuzzy
+msgid "duplicate (or overlapping) case value"
+msgstr "Gusubiramo Cyangwa iyorosa Agaciro"
+
+#: c-common.c:3594
+#, fuzzy
+msgid "%Jthis is the first entry overlapping that value"
+msgstr "%Jthisni i Itangira Icyinjijwe iyorosa Agaciro"
+
+#: c-common.c:3598
+#, fuzzy
+msgid "duplicate case value"
+msgstr "Gusubiramo Agaciro"
+
+#: c-common.c:3599
+msgid "%Jpreviously used here"
+msgstr ""
+
+#: c-common.c:3603
+#, fuzzy
+msgid "multiple default labels in one switch"
+msgstr "Igikubo Mburabuzi Uturango... in Hindura"
+
+#: c-common.c:3604
+#, fuzzy
+msgid "%Jthis is the first default label"
+msgstr "%Jthisni i Itangira Mburabuzi Akarango"
+
+#: c-common.c:3653
+#, fuzzy
+msgid "%Jcase value %qs not in enumerated type"
+msgstr "%JcaseAgaciro OYA in Ubwoko"
+
+#: c-common.c:3656
+#, fuzzy
+msgid "%Jcase value %qs not in enumerated type %qT"
+msgstr "%JcaseAgaciro OYA in Ubwoko"
+
+#: c-common.c:3723
+#, fuzzy
+msgid "%Hswitch missing default case"
+msgstr "%HswitchIbuze Mburabuzi"
+
+#. Warn if there are enumerators that don't correspond to
+#. case expressions.
+#: c-common.c:3757
+#, fuzzy
+msgid "%Henumeration value %qE not handled in switch"
+msgstr "%HenumerationAgaciro OYA in Hindura"
+
+#: c-common.c:3784
+#, fuzzy
+msgid "taking the address of a label is non-standard"
+msgstr "i Aderesi Bya a Akarango ni Bisanzwe"
+
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
+#, fuzzy, c-format
+msgid "%qs attribute ignored"
+msgstr "%qsIkiranga"
+
+#: c-common.c:4300
+#, fuzzy, c-format
+msgid "unknown machine mode %qs"
+msgstr "Kitazwi Ubwoko"
+
+#: c-common.c:4320
+#, fuzzy
+msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
+msgstr "Na: Ikiranga Ubwoko ni Bitemewe."
+
+#: c-common.c:4322
+#, fuzzy
+msgid "use __attribute__ ((vector_size)) instead"
+msgstr "Gukoresha Ikiranga"
+
+#: c-common.c:4331
+#, fuzzy, c-format
+msgid "unable to emulate %qs"
+msgstr "Kuri"
+
+#: c-common.c:4341
+#, fuzzy, c-format
+msgid "invalid pointer mode %qs"
+msgstr "Sibyo Mweretsi Ubwoko"
+
+#: c-common.c:4356
+#, fuzzy, c-format
+msgid "no data type for mode %qs"
+msgstr "Oya Ibyatanzwe Ubwoko kugirango Ubwoko"
+
+#: c-common.c:4366
+#, fuzzy, c-format
+msgid "cannot use mode %qs for enumeral types"
+msgstr "Gukoresha Ubwoko kugirango"
+
+#: c-common.c:4390
+#, fuzzy, c-format
+msgid "mode %qs applied to inappropriate type"
+msgstr "Ubwoko Byashyizweho Kuri Ubwoko"
+
+#: c-common.c:4421
+#, fuzzy
+msgid "%Jsection attribute cannot be specified for local variables"
+msgstr "%JsectionIkiranga kugirango Ibihinduka"
+
+#: c-common.c:4432
+#, fuzzy
+msgid "%Jsection of %qD conflicts with previous declaration"
+msgstr "%JsectionBya Na: Ibanjirije"
+
+#: c-common.c:4441
+#, fuzzy
+msgid "%Jsection attribute not allowed for %qD"
+msgstr "%JsectionIkiranga OYA kugirango"
+
+#: c-common.c:4447
+#, fuzzy
+msgid "%Jsection attributes are not supported for this target"
+msgstr "%JsectionIbiranga OYA kugirango iyi Intego"
+
+#: c-common.c:4485
+#, fuzzy
+msgid "requested alignment is not a constant"
+msgstr "Itunganya ni OYA a"
+
+#: c-common.c:4490
+#, fuzzy
+msgid "requested alignment is not a power of 2"
+msgstr "Itunganya ni OYA a UMWIKUBE Bya 2."
+
+#: c-common.c:4495
+#, fuzzy
+msgid "requested alignment is too large"
+msgstr "Itunganya ni Binini"
+
+#: c-common.c:4521
+#, fuzzy
+msgid "%Jalignment may not be specified for %qD"
+msgstr "%JalignmentGicurasi OYA kugirango"
+
+#: c-common.c:4559
+#, fuzzy
+msgid "%J%qD defined both normally and as an alias"
+msgstr "%J%qDByombi Na Nka Irihimbano"
+
+#: c-common.c:4575
+#, fuzzy
+msgid "alias argument not a string"
+msgstr "Irihimbano OYA a Ikurikiranyanyuguti"
+
+#: c-common.c:4617
+#, fuzzy, c-format
+msgid "%qs attribute ignored on non-class types"
+msgstr "%qsIkiranga ku ishuri"
+
+#: c-common.c:4630
+#, fuzzy
+msgid "visibility argument not a string"
+msgstr "Ukugaragara OYA a Ikurikiranyanyuguti"
+
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "%qEIkiranga ku"
+
+#: c-common.c:4657
+#, fuzzy
+msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "Ukugaragara Bya Mburabuzi gihishwe Birinzwe Cyangwa By'imbere"
+
+#: c-common.c:4726
+#, fuzzy
+msgid "tls_model argument not a string"
+msgstr "OYA a Ikurikiranyanyuguti"
+
+#: c-common.c:4735
+#, fuzzy
+msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "Bya Cyangwa"
+
+#: c-common.c:4757 c-common.c:4803
+#, fuzzy
+msgid "%J%qE attribute applies only to functions"
+msgstr "%J%qEIkiranga Kuri Imimaro"
+
+#: c-common.c:4762 c-common.c:4808
+#, fuzzy
+msgid "%Jcan%'t set %qE attribute after definition"
+msgstr "%Jcan%'T Gushyiraho Ikiranga Nyuma Insobanuro"
+
+#: c-common.c:4884
+#, fuzzy, c-format
+msgid "%qs attribute ignored for %qs"
+msgstr "%qsIkiranga kugirango"
+
+#: c-common.c:4945
+#, fuzzy, c-format
+msgid "invalid vector type for attribute %qs"
+msgstr "Sibyo Ubwoko kugirango Ikiranga"
+
+#: c-common.c:4954
+#, fuzzy
+msgid "number of components of the vector not a power of two"
+msgstr "Umubare Bya Bya i OYA a UMWIKUBE Bya"
+
+#: c-common.c:4982
+#, fuzzy
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "Ikiranga ingingo ku a"
+
+#: c-common.c:4997
+#, fuzzy, c-format
+msgid "nonnull argument has invalid operand number (argument %lu)"
+msgstr "Sibyo Umubare"
+
+#: c-common.c:5016
+#, fuzzy, c-format
+msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
+msgstr "Na: Inyuma Bya Urutonde Umubare"
+
+#: c-common.c:5024
+#, fuzzy, c-format
+msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
+msgstr "Indango Mweretsi"
+
+#: c-common.c:5079 c-common.c:5116
+#, fuzzy
+msgid "missing sentinel in function call"
+msgstr "Ibuze in Umumaro"
+
+#: c-common.c:5102
+#, fuzzy
+msgid "not enough arguments to fit a sentinel"
+msgstr "OYA ingingo Kuri a"
+
+#: c-common.c:5158
+#, fuzzy, c-format
+msgid "null argument where non-null required (argument %lu)"
+msgstr "NTAGIHARI NTAGIHARI Bya ngombwa"
+
+#: c-common.c:5229
+#, fuzzy
+msgid "cleanup argument not an identifier"
+msgstr "OYA Ikiranga"
+
+#: c-common.c:5236
+#, fuzzy
+msgid "cleanup argument not a function"
+msgstr "OYA a Umumaro"
+
+#: c-common.c:5274
+#, fuzzy, c-format
+msgid "%qs attribute requires prototypes with named arguments"
+msgstr "%qsIkiranga Na: ingingo"
+
+#: c-common.c:5285
+#, fuzzy, c-format
+msgid "%qs attribute only applies to variadic functions"
+msgstr "%qsIkiranga Kuri Imimaro"
+
+#: c-common.c:5298
+#, fuzzy
+msgid "requested position is not an integer constant"
+msgstr "Ibirindiro ni OYA Umubare wuzuye"
+
+#: c-common.c:5305
+#, fuzzy
+msgid "requested position is less than zero"
+msgstr "Ibirindiro ni Birutwa Zeru"
+
+#: c-common.c:5611
+#, fuzzy
+msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
+msgstr "%HignoringGaruka Agaciro Bya Na: Ikiranga"
+
+#: c-common.c:5615
+#, fuzzy
+msgid "%Hignoring return value of function declared with attribute warn_unused_result"
+msgstr "%HignoringGaruka Agaciro Bya Umumaro Na: Ikiranga"
+
+#: c-common.c:5675
+#, fuzzy, c-format
+msgid "attempt to take address of bit-field structure member %qs"
+msgstr "Kuri Aderesi Bya Umwanya Imiterere"
+
+#: c-common.c:5727
+#, fuzzy
+msgid "invalid lvalue in assignment"
+msgstr "Sibyo in Igenera"
+
+#: c-common.c:5730
+#, fuzzy
+msgid "invalid lvalue in increment"
+msgstr "Sibyo in Iyongeragaciro"
+
+#: c-common.c:5733
+#, fuzzy
+msgid "invalid lvalue in decrement"
+msgstr "Sibyo in"
+
+#: c-common.c:5736
+#, fuzzy
+msgid "invalid lvalue in unary %<&%>"
+msgstr "Sibyo in"
+
+#: c-common.c:5739
+#, fuzzy
+msgid "invalid lvalue in asm statement"
+msgstr "Sibyo in Inyandiko"
+
+#. Except for passing an argument to an unprototyped function,
+#. this is a constraint violation. When passing an argument to
+#. an unprototyped function, it is compile-time undefined;
+#. making it a constraint in that case was rejected in
+#. DR#252.
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
+#, fuzzy
+msgid "void value not ignored as it ought to be"
+msgstr "Agaciro OYA Nka Kuri"
+
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
+#: treelang/tree-convert.c:105
+#, fuzzy
+msgid "conversion to non-scalar type requested"
+msgstr "Ihindurangero Kuri Ubwoko"
+
+#: c-decl.c:530
+#, fuzzy
+msgid "%Jarray %qD assumed to have one element"
+msgstr "%Jarray%qDKuri Ikigize:"
+
+#: c-decl.c:643
+#, c-format
+msgid "GCC supports only %u nested scopes"
+msgstr ""
+
+#: c-decl.c:727
+#, fuzzy
+msgid "%Jlabel %qD used but not defined"
+msgstr "%Jlabel%qDOYA"
+
+#: c-decl.c:733
+#, fuzzy
+msgid "%Jlabel %qD defined but not used"
+msgstr "%Jlabel%qDOYA"
+
+#: c-decl.c:735
+#, fuzzy
+msgid "%Jlabel %qD declared but not defined"
+msgstr "%Jlabel%qDOYA"
+
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "%JnestedUmumaro Nta narimwe"
+
+#: c-decl.c:784 cp/decl.c:568
+#, fuzzy
+msgid "%Junused variable %qD"
+msgstr "%JunusedIMPINDURAGACIRO"
+
+#: c-decl.c:788
+#, fuzzy
+msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
+msgstr "%JtypeBya Imbonerahamwe Na:"
+
+#: c-decl.c:1022
+#, fuzzy
+msgid "a parameter list with an ellipsis can%'t match an empty parameter name list declaration"
+msgstr "a Urutonde Na: T BIHUYE ubusa Izina: Urutonde"
+
+#: c-decl.c:1029
+#, fuzzy
+msgid "an argument type that has a default promotion can%'t match an empty parameter name list declaration"
+msgstr "Ubwoko a Mburabuzi T BIHUYE ubusa Izina: Urutonde"
+
+#: c-decl.c:1065
+#, fuzzy
+msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
+msgstr "%Jprototypekugirango Birenzeho ingingo Ibanjirije ki/ bishaje IMISUSIRE Insobanuro"
+
+#: c-decl.c:1071
+#, fuzzy
+msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
+msgstr "%Jprototypekugirango Bike ingingo Ibanjirije ki/ bishaje IMISUSIRE Insobanuro"
+
+#: c-decl.c:1080
+#, fuzzy
+msgid "%Jprototype for %qD declares argument %d with incompatible type"
+msgstr "%Jprototypekugirango Na: Ubwoko"
+
+#. If we get here, no errors were found, but do issue a warning
+#. for this poor-style construct.
+#: c-decl.c:1093
+#, fuzzy
+msgid "%Jprototype for %qD follows non-prototype definition"
+msgstr "%Jprototypekugirango Insobanuro"
+
+#: c-decl.c:1108
+#, fuzzy
+msgid "%Jprevious definition of %qD was here"
+msgstr "%JpreviousInsobanuro Bya"
+
+#: c-decl.c:1110
+#, fuzzy
+msgid "%Jprevious implicit declaration of %qD was here"
+msgstr "%JpreviousBya"
+
+#: c-decl.c:1112
+#, fuzzy
+msgid "%Jprevious declaration of %qD was here"
+msgstr "%JpreviousBya"
+
+#: c-decl.c:1149
+#, fuzzy
+msgid "%J%qD redeclared as different kind of symbol"
+msgstr "%J%qDNka Bya IKIMENYETSO"
+
+#: c-decl.c:1154
+#, fuzzy
+msgid "%Jbuilt-in function %qD declared as non-function"
+msgstr "%Jbuilt-inUmumaro Nka Umumaro"
+
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows a built-in function"
+msgstr "%JdeclarationBya a in Umumaro"
+
+#: c-decl.c:1166
+#, fuzzy
+msgid "%Jredeclaration of enumerator %qD"
+msgstr "%JredeclarationBya"
+
+#. If types don't match for a built-in, throw away the
+#. built-in. No point in calling locate_old_decl here, it
+#. won't print anything.
+#: c-decl.c:1187
+#, fuzzy
+msgid "%Jconflicting types for built-in function %qD"
+msgstr "%Jconflictingkugirango in Umumaro"
+
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
+#, fuzzy
+msgid "%Jconflicting types for %qD"
+msgstr "%Jconflictingkugirango"
+
+#: c-decl.c:1232
+#, fuzzy
+msgid "%J conflicting type qualifiers for %qD"
+msgstr "%JUbwoko kugirango"
+
+#. Allow OLDDECL to continue in use.
+#: c-decl.c:1249
+#, fuzzy
+msgid "%Jredefinition of typedef %qD"
+msgstr "%JredefinitionBya"
+
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
+#, fuzzy
+msgid "%Jredefinition of %qD"
+msgstr "%Jredefinitionya"
+
+#: c-decl.c:1353 c-decl.c:1434
+#, fuzzy
+msgid "%Jstatic declaration of %qD follows non-static declaration"
+msgstr "%JstaticBya"
+
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
+#, fuzzy
+msgid "%Jnon-static declaration of %qD follows static declaration"
+msgstr "%Jnon-staticBya"
+
+#: c-decl.c:1383
+#, fuzzy
+msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
+msgstr "%Jthread-localBya Urudodo"
+
+#: c-decl.c:1386
+#, fuzzy
+msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
+msgstr "%Jnon-thread-localBya Urudodo"
+
+#: c-decl.c:1416
+#, fuzzy
+msgid "%Jextern declaration of %qD follows declaration with no linkage"
+msgstr "%JexternBya Na: Oya"
+
+#: c-decl.c:1452
+#, fuzzy
+msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
+msgstr "%JdeclarationBya Na: Oya"
+
+#: c-decl.c:1458
+#, fuzzy
+msgid "%Jredeclaration of %qD with no linkage"
+msgstr "%JredeclarationBya Na: Oya"
+
+#: c-decl.c:1472
+#, fuzzy
+msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
+msgstr "%JredeclarationBya Na: Ukugaragara ki/ bishaje Ukugaragara"
+
+#: c-decl.c:1483
+#, fuzzy
+msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
+msgstr "%JinlineBya Na: Ikiranga"
+
+#: c-decl.c:1490
+#, fuzzy
+msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
+msgstr "%JdeclarationBya Na: Ikiranga Mumurongo"
+
+#: c-decl.c:1505
+#, fuzzy
+msgid "%J%qD declared inline after being called"
+msgstr "%J%qDMumurongo Nyuma"
+
+#: c-decl.c:1511
+#, fuzzy
+msgid "%J%qD declared inline after its definition"
+msgstr "%J%qDMumurongo Nyuma Insobanuro"
+
+#: c-decl.c:1531
+#, fuzzy
+msgid "%Jredefinition of parameter %qD"
+msgstr "%JredefinitionBya"
+
+#: c-decl.c:1555
+#, fuzzy
+msgid "%Jredundant redeclaration of %qD"
+msgstr "%JredundantBya"
+
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "%JdeclarationBya Ibanjirije IMPINDURAGACIRO"
+
+#: c-decl.c:1871
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows a parameter"
+msgstr "%JdeclarationBya a"
+
+#: c-decl.c:1874
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows a global declaration"
+msgstr "%JdeclarationBya a"
+
+#: c-decl.c:1884
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows a previous local"
+msgstr "%JdeclarationBya a Ibanjirije"
+
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: cp/name-lookup.c:981
+#, fuzzy
+msgid "%Jshadowed declaration is here"
+msgstr "%Jshadowedni"
+
+#: c-decl.c:2041
+#, fuzzy
+msgid "nested extern declaration of %qD"
+msgstr "Bya"
+
+#: c-decl.c:2201
+#, fuzzy, c-format
+msgid "implicit declaration of function %qE"
+msgstr "Bya Umumaro"
+
+#: c-decl.c:2262
+#, fuzzy
+msgid "incompatible implicit declaration of built-in function %qD"
+msgstr "Bya in Umumaro"
+
+#: c-decl.c:2271
+#, fuzzy
+msgid "incompatible implicit declaration of function %qD"
+msgstr "Bya Umumaro"
+
+#: c-decl.c:2324
+#, fuzzy, c-format
+msgid "%qE undeclared here (not in a function)"
+msgstr "%qEOYA in a Umumaro"
+
+#: c-decl.c:2329
+#, fuzzy, c-format
+msgid "%qE undeclared (first use in this function)"
+msgstr "%qEItangira Gukoresha in iyi Umumaro"
+
+#: c-decl.c:2333
+#, fuzzy
+msgid "(Each undeclared identifier is reported only once"
+msgstr "(Ikiranga ni Rimwe"
+
+#: c-decl.c:2334
+#, fuzzy
+msgid "for each function it appears in.)"
+msgstr "kugirango Umumaro in"
+
+#: c-decl.c:2372
+#, fuzzy, c-format
+msgid "label %qs referenced outside of any function"
+msgstr "Akarango Hanze Bya Umumaro"
+
+#: c-decl.c:2415
+#, fuzzy, c-format
+msgid "duplicate label declaration %qs"
+msgstr "Gusubiramo Akarango"
+
+#: c-decl.c:2450
+#, fuzzy
+msgid "%Hduplicate label %qD"
+msgstr "%HduplicateAkarango"
+
+#: c-decl.c:2472
+#, fuzzy
+msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
+msgstr "%HtraditionalC a kugirango Uturango... Ikiranga"
+
+#: c-decl.c:2538
+#, fuzzy
+msgid "%H%qs defined as wrong kind of tag"
+msgstr "%H%qsNka Bya Itagi:"
+
+#: c-decl.c:2761
+#, fuzzy
+msgid "unnamed struct/union that defines no instances"
+msgstr "Kitiswe Ihuza Oya Ingero"
+
+#: c-decl.c:2769
+#, fuzzy
+msgid "empty declaration with storage class specifier does not redeclare tag"
+msgstr "ubusa Na: ishuri OYA Itagi:"
+
+#: c-decl.c:2780
+#, fuzzy
+msgid "empty declaration with type qualifier does not redeclare tag"
+msgstr "ubusa Na: Ubwoko OYA Itagi:"
+
+#: c-decl.c:2801 c-decl.c:2808
+#, fuzzy
+msgid "useless type name in empty declaration"
+msgstr "Ubwoko Izina: in ubusa"
+
+#: c-decl.c:2816
+#, fuzzy
+msgid "%<inline%> in empty declaration"
+msgstr "%<Mumurongo in ubusa"
+
+#: c-decl.c:2822
+#, fuzzy
+msgid "%<auto%> in file-scope empty declaration"
+msgstr "%<Ikiyega in IDOSIYE Ingano: ubusa"
+
+#: c-decl.c:2828
+#, fuzzy
+msgid "%<register%> in file-scope empty declaration"
+msgstr "%<Kwiyandikisha in IDOSIYE Ingano: ubusa"
+
+#: c-decl.c:2834
+#, fuzzy
+msgid "useless storage class specifier in empty declaration"
+msgstr "ishuri in ubusa"
+
+#: c-decl.c:2840
+#, fuzzy
+msgid "useless %<__thread%> in empty declaration"
+msgstr "Urudodo in ubusa"
+
+#: c-decl.c:2848
+#, fuzzy
+msgid "useless type qualifier in empty declaration"
+msgstr "Ubwoko in ubusa"
+
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: objc/objc-parse.y:820
+#, fuzzy
+msgid "empty declaration"
+msgstr "ubusa"
+
+#: c-decl.c:2921
+#, 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:2924
+#, fuzzy
+msgid "ISO C90 does not support %<[*]%> array declarators"
+msgstr "OYA Gushigikira Imbonerahamwe"
+
+#: c-decl.c:2927
+#, fuzzy
+msgid "GCC does not yet properly implement %<[*]%> array declarators"
+msgstr "OYA Imbonerahamwe"
+
+#: c-decl.c:2946
+#, fuzzy
+msgid "static or type qualifiers in abstract declarator"
+msgstr "Cyangwa Ubwoko in Incamake"
+
+#: c-decl.c:3005
+#, fuzzy
+msgid "%J%qD is usually a function"
+msgstr "%J%qDni a Umumaro"
+
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
+#, fuzzy
+msgid "typedef %qD is initialized (use __typeof__ instead)"
+msgstr "ni Gukoresha"
+
+#: c-decl.c:3019
+#, fuzzy
+msgid "function %qD 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:3025
+#, fuzzy
+msgid "parameter %qD is initialized"
+msgstr "ni"
+
+#. Although C99 is unclear about whether incomplete arrays
+#. of VLAs themselves count as VLAs, it does not make
+#. sense to permit them to be initialized given that
+#. ordinary VLAs may not be initialized.
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
+#, fuzzy
+msgid "variable-sized object may not be initialized"
+msgstr "IMPINDURAGACIRO Igikoresho Gicurasi OYA"
+
+#: c-decl.c:3050
+#, fuzzy
+msgid "variable %qD has initializer but incomplete type"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
+#, fuzzy
+msgid "%Jinline function %qD given attribute noinline"
+msgstr "%JinlineUmumaro Ikiranga"
+
+#: c-decl.c:3194
+#, fuzzy
+msgid "%Jinitializer fails to determine size of %qD"
+msgstr "%JinitializerKuri Ingano Bya"
+
+#: c-decl.c:3199
+#, fuzzy
+msgid "%Jarray size missing in %qD"
+msgstr "%JarrayIngano Ibuze in"
+
+#: c-decl.c:3215
+#, fuzzy
+msgid "%Jzero or negative size array %qD"
+msgstr "%JzeroCyangwa Ingano Imbonerahamwe"
+
+#: c-decl.c:3241 varasm.c:1556
+#, fuzzy
+msgid "%Jstorage size of %qD isn%'t known"
+msgstr "%JstorageIngano Bya T"
+
+#: c-decl.c:3251
+#, fuzzy
+msgid "%Jstorage size of %qD isn%'t constant"
+msgstr "%JstorageIngano Bya T"
+
+#: c-decl.c:3299
+#, fuzzy
+msgid "%Jignoring asm-specifier for non-static local variable %qD"
+msgstr "%Jignoringkugirango IMPINDURAGACIRO"
+
+#: c-decl.c:3329 fortran/f95-lang.c:646
+#, fuzzy
+msgid "cannot put object with volatile field into register"
+msgstr "Gushyira Igikoresho Na: Umwanya Kwiyandikisha"
+
+#: c-decl.c:3463
+#, fuzzy
+msgid "ISO C forbids forward parameter declarations"
+msgstr "C Imbere"
+
+#: c-decl.c:3648
+msgid "<anonymous>"
+msgstr ""
+
+#: c-decl.c:3657
+#, fuzzy, c-format
+msgid "bit-field %qs width not an integer constant"
+msgstr "Umwanya Ubugari OYA Umubare wuzuye"
+
+#: c-decl.c:3665
+#, fuzzy, c-format
+msgid "negative width in bit-field %qs"
+msgstr "Ubugari in Umwanya"
+
+#: c-decl.c:3670
+#, fuzzy, c-format
+msgid "zero width for bit-field %qs"
+msgstr "Zeru Ubugari kugirango Umwanya"
+
+#: c-decl.c:3680
+#, fuzzy, c-format
+msgid "bit-field %qs has invalid type"
+msgstr "Umwanya Sibyo Ubwoko"
+
+#: c-decl.c:3689
+#, fuzzy, c-format
+msgid "type of bit-field %qs is a GCC extension"
+msgstr "Ubwoko Bya Umwanya ni a Umugereka"
+
+#: c-decl.c:3698
+#, fuzzy, c-format
+msgid "width of %qs exceeds its type"
+msgstr "Ubugari Bya Ubwoko"
+
+#: c-decl.c:3711
+#, fuzzy, c-format
+msgid "%qs is narrower than values of its type"
+msgstr "%qsni Uduciro Bya Ubwoko"
+
+#: c-decl.c:3836
+#, fuzzy
+msgid "type defaults to %<int%> in declaration of %qs"
+msgstr "Ubwoko Kuri INT in Bya"
+
+#: c-decl.c:3864
+#, fuzzy
+msgid "duplicate %<const%>"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3866
+#, fuzzy
+msgid "duplicate %<restrict%>"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3868
+#, fuzzy
+msgid "duplicate %<volatile%>"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3887
+#, fuzzy
+msgid "function definition declared %<auto%>"
+msgstr "Umumaro Insobanuro Ikiyega"
+
+#: c-decl.c:3889
+#, fuzzy
+msgid "function definition declared %<register%>"
+msgstr "Umumaro Insobanuro Kwiyandikisha"
+
+#: c-decl.c:3891
+#, fuzzy
+msgid "function definition declared %<typedef%>"
+msgstr "Umumaro Insobanuro"
+
+#: c-decl.c:3893
+#, fuzzy
+msgid "function definition declared %<__thread%>"
+msgstr "Umumaro Insobanuro Urudodo"
+
+#: c-decl.c:3909
+#, fuzzy, c-format
+msgid "storage class specified for structure field %qs"
+msgstr "ishuri kugirango Imiterere Umwanya"
+
+#: c-decl.c:3913 cp/decl.c:7053
+#, fuzzy, c-format
+msgid "storage class specified for parameter %qs"
+msgstr "ishuri kugirango"
+
+#: c-decl.c:3916 cp/decl.c:7055
+#, fuzzy
+msgid "storage class specified for typename"
+msgstr "ishuri kugirango"
+
+#: c-decl.c:3929 cp/decl.c:7072
+#, fuzzy
+msgid "%qs initialized and declared %<extern%>"
+msgstr "%qsNa"
+
+#: c-decl.c:3931 cp/decl.c:7075
+#, fuzzy
+msgid "%qs has both %<extern%> and initializer"
+msgstr "%qsByombi Na"
+
+#: c-decl.c:3936
+#, fuzzy
+msgid "file-scope declaration of %qs specifies %<auto%>"
+msgstr "IDOSIYE Ingano: Bya Ikiyega"
+
+#: c-decl.c:3938
+#, fuzzy
+msgid "file-scope declaration of %qs specifies %<register%>"
+msgstr "IDOSIYE Ingano: Bya Kwiyandikisha"
+
+#: c-decl.c:3943 cp/decl.c:7079
+#, fuzzy
+msgid "nested function %qs declared %<extern%>"
+msgstr "Umumaro"
+
+#: c-decl.c:3946 cp/decl.c:7089
+#, fuzzy
+msgid "function-scope %qs implicitly auto and declared %<__thread%>"
+msgstr "Umumaro Ingano: Ikiyega Na Urudodo"
+
+#. 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:3993 c-decl.c:4183
+#, fuzzy
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "Cyangwa Ubwoko in Imbonerahamwe"
+
+#: c-decl.c:4039
+#, fuzzy, c-format
+msgid "declaration of %qs as array of voids"
+msgstr "Bya Nka Imbonerahamwe Bya"
+
+#: c-decl.c:4045
+#, fuzzy, c-format
+msgid "declaration of %qs as array of functions"
+msgstr "Bya Nka Imbonerahamwe Bya Imimaro"
+
+#: c-decl.c:4050
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "Sibyo Gukoresha Bya Imiterere Na: Imbonerahamwe"
+
+#: c-decl.c:4070
+#, fuzzy, c-format
+msgid "size of array %qs has non-integer type"
+msgstr "Ingano Bya Imbonerahamwe Umubare wuzuye Ubwoko"
+
+#: c-decl.c:4075
+#, fuzzy, c-format
+msgid "ISO C forbids zero-size array %qs"
+msgstr "C Zeru Ingano Imbonerahamwe"
+
+#: c-decl.c:4082
+#, fuzzy, c-format
+msgid "size of array %qs is negative"
+msgstr "Ingano Bya Imbonerahamwe ni"
+
+#: c-decl.c:4096
+#, fuzzy
+msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
+msgstr "Imbonerahamwe bya Ingano T"
+
+#: c-decl.c:4100
+#, fuzzy, c-format
+msgid "ISO C90 forbids variable-size array %qs"
+msgstr "IMPINDURAGACIRO Ingano Imbonerahamwe"
+
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
+#, fuzzy, c-format
+msgid "size of array %qs is too large"
+msgstr "Ingano Bya Imbonerahamwe ni Binini"
+
+#: c-decl.c:4150
+#, fuzzy
+msgid "ISO C90 does not support flexible array members"
+msgstr "OYA Gushigikira Imbonerahamwe"
+
+#: c-decl.c:4160
+#, fuzzy
+msgid "array type has incomplete element type"
+msgstr "Imbonerahamwe Ubwoko Ikigize: Ubwoko"
+
+#: c-decl.c:4215 cp/decl.c:7179
+#, fuzzy, c-format
+msgid "%qs declared as function returning a function"
+msgstr "%qsNka Umumaro a Umumaro"
+
+#: c-decl.c:4220 cp/decl.c:7184
+#, fuzzy, c-format
+msgid "%qs declared as function returning an array"
+msgstr "%qsNka Umumaro Imbonerahamwe"
+
+#: c-decl.c:4240
+#, fuzzy
+msgid "function definition has qualified void return type"
+msgstr "Umumaro Insobanuro Garuka Ubwoko"
+
+#: c-decl.c:4242
+#, fuzzy
+msgid "type qualifiers ignored on function return type"
+msgstr "Ubwoko ku Umumaro Garuka Ubwoko"
+
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
+#, fuzzy
+msgid "ISO C forbids qualified function types"
+msgstr "C Umumaro"
+
+#: c-decl.c:4324
+#, fuzzy
+msgid "%Jtypedef %qD declared %<inline%>"
+msgstr "%Jtypedef%qDMumurongo"
+
+#: c-decl.c:4354
+#, fuzzy
+msgid "ISO C forbids const or volatile function types"
+msgstr "C Cyangwa Umumaro"
+
+#: c-decl.c:4374
+#, fuzzy, c-format
+msgid "variable or field %qs declared void"
+msgstr "IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: c-decl.c:4403
+#, fuzzy
+msgid "attributes in parameter array declarator ignored"
+msgstr "Ibiranga in Imbonerahamwe"
+
+#: c-decl.c:4438
+#, fuzzy
+msgid "%Jparameter %qD declared %<inline%>"
+msgstr "%Jparameter%qDMumurongo"
+
+#: c-decl.c:4451
+#, fuzzy, c-format
+msgid "field %qs declared as a function"
+msgstr "Umwanya Nka a Umumaro"
+
+#: c-decl.c:4457
+#, fuzzy, c-format
+msgid "field %qs has incomplete type"
+msgstr "Umwanya Ubwoko"
+
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
+#, fuzzy, c-format
+msgid "invalid storage class for function %qs"
+msgstr "Sibyo ishuri kugirango Umumaro"
+
+#: c-decl.c:4507
+#, fuzzy
+msgid "%<noreturn%> function returns non-void value"
+msgstr "%<Umumaro Agaciro"
+
+#: c-decl.c:4535
+#, fuzzy
+msgid "cannot inline function %<main%>"
+msgstr "Mumurongo Umumaro"
+
+#: c-decl.c:4582
+#, fuzzy
+msgid "variable previously declared %<static%> redeclared %<extern%>"
+msgstr "IMPINDURAGACIRO"
+
+#: c-decl.c:4591
+#, fuzzy
+msgid "%Jvariable %qD declared %<inline%>"
+msgstr "%Jvariable%qDMumurongo"
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4622 cp/decl.c:5920
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "Urudodo OYA kugirango iyi Intego"
+
+#: c-decl.c:4684 c-decl.c:5778
+#, fuzzy
+msgid "function declaration isn%'t a prototype"
+msgstr "Umumaro T a"
+
+#: c-decl.c:4692
+#, fuzzy
+msgid "parameter names (without types) in function declaration"
+msgstr "Amazina in Umumaro"
+
+#: c-decl.c:4725
+#, fuzzy
+msgid "%Jparameter %u (%qD) has incomplete type"
+msgstr "%Jparameter%u(%qD)Ubwoko"
+
+#: c-decl.c:4728
+#, fuzzy
+msgid "%Jparameter %u has incomplete type"
+msgstr "%Jparameter%uUbwoko"
+
+#: c-decl.c:4737
+#, fuzzy
+msgid "%Jparameter %u (%qD) has void type"
+msgstr "%Jparameter%u(%qD)Ubwoko"
+
+#: c-decl.c:4740
+#, fuzzy
+msgid "%Jparameter %u has void type"
+msgstr "%Jparameter%uUbwoko"
+
+#: c-decl.c:4797
+#, fuzzy
+msgid "%<void%> as only parameter may not be qualified"
+msgstr "%<Nka Gicurasi OYA"
+
+#: c-decl.c:4801 c-decl.c:4836
+#, fuzzy
+msgid "%<void%> must be the only parameter"
+msgstr "%<i"
+
+#: c-decl.c:4829
+#, fuzzy
+msgid "%Jparameter %qD has just a forward declaration"
+msgstr "%Jparameter%qDa Imbere"
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c-decl.c:4875
+#, fuzzy
+msgid "%<%s %E%> declared inside parameter list"
+msgstr "%<%s%E%>Mo Imbere Urutonde"
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c-decl.c:4879
+#, fuzzy, c-format
+msgid "anonymous %s declared inside parameter list"
+msgstr "Mo Imbere Urutonde"
+
+#: c-decl.c:4884
+#, 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:5017
+#, fuzzy
+msgid "redefinition of %<union %s%>"
+msgstr "Bya Ihuza"
+
+#: c-decl.c:5019
+#, fuzzy
+msgid "redefinition of %<struct %s%>"
+msgstr "Bya"
+
+#: c-decl.c:5024
+#, fuzzy
+msgid "nested redefinition of %<union %s%>"
+msgstr "Bya Ihuza"
+
+#: c-decl.c:5027
+#, fuzzy
+msgid "nested redefinition of %<struct %s%>"
+msgstr "Bya"
+
+#: c-decl.c:5099 cp/decl.c:3414
+#, fuzzy
+msgid "declaration does not declare anything"
+msgstr "OYA"
+
+#: c-decl.c:5103
+#, fuzzy
+msgid "ISO C doesn%'t support unnamed structs/unions"
+msgstr "C T Gushigikira Kitiswe"
+
+#: c-decl.c:5146 c-decl.c:5162
+msgid "%Jduplicate member %qD"
+msgstr ""
+
+#: c-decl.c:5201
+#, fuzzy
+msgid "union has no named members"
+msgstr "Ihuza Oya"
+
+#: c-decl.c:5203
+#, fuzzy
+msgid "union has no members"
+msgstr "Ihuza Oya"
+
+#: c-decl.c:5208
+#, fuzzy
+msgid "struct has no named members"
+msgstr "Oya"
+
+#: c-decl.c:5210
+#, fuzzy
+msgid "struct has no members"
+msgstr "Oya"
+
+#: c-decl.c:5267
+#, fuzzy
+msgid "%Jflexible array member in union"
+msgstr "%JflexibleImbonerahamwe in Ihuza"
+
+#: c-decl.c:5272
+#, fuzzy
+msgid "%Jflexible array member not at end of struct"
+msgstr "%JflexibleImbonerahamwe OYA ku Impera Bya"
+
+#: c-decl.c:5277
+#, fuzzy
+msgid "%Jflexible array member in otherwise empty struct"
+msgstr "%JflexibleImbonerahamwe in ubusa"
+
+#: c-decl.c:5284
+#, fuzzy
+msgid "%Jinvalid use of structure with flexible array member"
+msgstr "%JinvalidGukoresha Bya Imiterere Na: Imbonerahamwe"
+
+#: c-decl.c:5392
+#, fuzzy
+msgid "union cannot be made transparent"
+msgstr "Ihuza Bibonerana"
+
+#: c-decl.c:5463
+#, fuzzy
+msgid "nested redefinition of %<enum %s%>"
+msgstr "Bya"
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5470
+#, fuzzy
+msgid "redeclaration of %<enum %s%>"
+msgstr "Bya"
+
+#: c-decl.c:5533
+#, fuzzy
+msgid "enumeration values exceed range of largest integer"
+msgstr "Uduciro Urutonde Bya Kinini Umubare wuzuye"
+
+#: c-decl.c:5550
+#, fuzzy
+msgid "specified mode too small for enumeral values"
+msgstr "Ubwoko Gitoya kugirango Uduciro"
+
+#: c-decl.c:5649
+#, fuzzy, c-format
+msgid "enumerator value for %qE is not an integer constant"
+msgstr "Agaciro kugirango ni OYA Umubare wuzuye"
+
+#: c-decl.c:5666
+#, fuzzy
+msgid "overflow in enumeration values"
+msgstr "Byarenze urugero in Uduciro"
+
+#: c-decl.c:5671
+#, fuzzy
+msgid "ISO C restricts enumerator values to range of %<int%>"
+msgstr "C Uduciro Kuri Urutonde Bya INT"
+
+#: c-decl.c:5747
+#, fuzzy
+msgid "return type is an incomplete type"
+msgstr "Garuka Ubwoko ni Ubwoko"
+
+#: c-decl.c:5755
+#, fuzzy
+msgid "return type defaults to %<int%>"
+msgstr "Garuka Ubwoko Kuri INT"
+
+#: c-decl.c:5784
+#, fuzzy
+msgid "%Jno previous prototype for %qD"
+msgstr "%JnoIbanjirije kugirango"
+
+#: c-decl.c:5790
+#, fuzzy
+msgid "%J%qD was used with no prototype before its definition"
+msgstr "%J%qDNa: Oya Mbere Insobanuro"
+
+#: c-decl.c:5797
+#, fuzzy
+msgid "%Jno previous declaration for %qD"
+msgstr "%JnoIbanjirije kugirango"
+
+#: c-decl.c:5803
+#, fuzzy
+msgid "%J%qD was used with no declaration before its definition"
+msgstr "%J%qDNa: Oya Mbere Insobanuro"
+
+#: c-decl.c:5836 c-decl.c:6328
+#, fuzzy
+msgid "%Jreturn type of %qD is not %<int%>"
+msgstr "%JreturnUbwoko Bya ni OYA INT"
+
+#: c-decl.c:5851
+#, fuzzy
+msgid "%Jfirst argument of %qD should be %<int%>"
+msgstr "%JfirstBya INT"
+
+#: c-decl.c:5860
+#, fuzzy
+msgid "%Jsecond argument of %qD should be %<char **%>"
+msgstr "%JsecondBya INYUGUTI"
+
+#: c-decl.c:5869
+#, fuzzy
+msgid "%Jthird argument of %qD should probably be %<char **%>"
+msgstr "%JthirdBya INYUGUTI"
+
+#: c-decl.c:5879
+#, fuzzy
+msgid "%J%qD takes only zero or two arguments"
+msgstr "%J%qDZeru Cyangwa ingingo"
+
+#: c-decl.c:5882
+#, fuzzy
+msgid "%J%qD is normally a non-static function"
+msgstr "%J%qDni a Umumaro"
+
+#: c-decl.c:5928
+#, fuzzy
+msgid "%Jold-style parameter declarations in prototyped function definition"
+msgstr "%Jold-stylein Umumaro Insobanuro"
+
+#: c-decl.c:5941
+#, fuzzy
+msgid "%Jtraditional C rejects ISO C style function definitions"
+msgstr "%JtraditionalC C IMISUSIRE Umumaro"
+
+#: c-decl.c:5953
+#, fuzzy
+msgid "%Jparameter name omitted"
+msgstr "%JparameterIzina:"
+
+#: c-decl.c:5993
+#, fuzzy
+msgid "%Jold-style function definition"
+msgstr "%Jold-styleUmumaro Insobanuro"
+
+#: c-decl.c:6001
+#, fuzzy
+msgid "%Jparameter name missing from parameter list"
+msgstr "%JparameterIzina: Ibuze Bivuye Urutonde"
+
+#: c-decl.c:6012
+#, fuzzy
+msgid "%J%qD declared as a non-parameter"
+msgstr "%J%qDNka a"
+
+#: c-decl.c:6017
+#, fuzzy
+msgid "%Jmultiple parameters named %qD"
+msgstr "%JmultipleIbigenga"
+
+#: c-decl.c:6025
+#, fuzzy
+msgid "%Jparameter %qD declared with void type"
+msgstr "%Jparameter%qDNa: Ubwoko"
+
+#: c-decl.c:6040 c-decl.c:6042
+#, fuzzy
+msgid "%Jtype of %qD defaults to %<int%>"
+msgstr "%JtypeBya Kuri INT"
+
+#: c-decl.c:6061
+#, fuzzy
+msgid "%Jparameter %qD has incomplete type"
+msgstr "%Jparameter%qDUbwoko"
+
+#: c-decl.c:6067
+#, fuzzy
+msgid "%Jdeclaration for parameter %qD but no such parameter"
+msgstr "%Jdeclarationkugirango Oya"
+
+#: c-decl.c:6117
+#, fuzzy
+msgid "number of arguments doesn%'t match prototype"
+msgstr "Umubare Bya ingingo T BIHUYE"
+
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
+msgid "%Hprototype declaration"
+msgstr ""
+
+#: c-decl.c:6146
+#, fuzzy
+msgid "promoted argument %qD doesn%'t match prototype"
+msgstr "T BIHUYE"
+
+#: c-decl.c:6154
+#, fuzzy
+msgid "argument %qD doesn%'t match prototype"
+msgstr "T BIHUYE"
+
+#: c-decl.c:6361 cp/decl.c:10702
+#, fuzzy
+msgid "no return statement in function returning non-void"
+msgstr "Oya Garuka Inyandiko in Umumaro"
+
+#: c-decl.c:6368
+#, fuzzy
+msgid "this function may return with or without a value"
+msgstr "iyi Umumaro Gicurasi Garuka Na: Cyangwa a Agaciro"
+
+#. 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:6461
+#, fuzzy
+msgid "%<for%> loop initial declaration used outside C99 mode"
+msgstr "%<kugirango Hanze Ubwoko"
+
+#: c-decl.c:6490
+#, fuzzy
+msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
+msgstr "%JdeclarationBya IMPINDURAGACIRO in kugirango"
+
+#: c-decl.c:6493
+#, fuzzy
+msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
+msgstr "%JdeclarationBya IMPINDURAGACIRO in kugirango"
+
+#: c-decl.c:6498
+#, fuzzy
+msgid "%<struct %E%> declared in %<for%> loop initial declaration"
+msgstr "%<in kugirango"
+
+#: c-decl.c:6502
+#, fuzzy
+msgid "%<union %E%> declared in %<for%> loop initial declaration"
+msgstr "%<Ihuza in kugirango"
+
+#: c-decl.c:6506
+#, fuzzy
+msgid "%<enum %E%> declared in %<for%> loop initial declaration"
+msgstr "%<in kugirango"
+
+#: c-decl.c:6510
+#, fuzzy
+msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
+msgstr "%JdeclarationBya IMPINDURAGACIRO in kugirango"
+
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
+#, fuzzy, c-format
+msgid "duplicate %qs"
+msgstr "Gusubiramo..."
+
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
+#, fuzzy
+msgid "two or more data types in declaration specifiers"
+msgstr "Cyangwa Birenzeho Ibyatanzwe in"
+
+#: c-decl.c:6832 cp/decl.c:6723
+#, fuzzy
+msgid "%<long long long%> is too long for GCC"
+msgstr "%<ni kugirango"
+
+#: c-decl.c:6839 c-decl.c:7031
+#, fuzzy
+msgid "both %<long long%> and %<double%> in declaration specifiers"
+msgstr "Byombi Na MAHARAKUBIRI in"
+
+#: c-decl.c:6845
+#, fuzzy
+msgid "ISO C90 does not support %<long long%>"
+msgstr "OYA Gushigikira"
+
+#: c-decl.c:6850 c-decl.c:6870
+#, fuzzy
+msgid "both %<long%> and %<short%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6853 c-decl.c:6964
+#, fuzzy
+msgid "both %<long%> and %<void%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6856 c-decl.c:6983
+#, fuzzy
+msgid "both %<long%> and %<_Bool%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6859 c-decl.c:7002
+#, fuzzy
+msgid "both %<long%> and %<char%> in declaration specifiers"
+msgstr "Byombi Na INYUGUTI in"
+
+#: c-decl.c:6862 c-decl.c:7015
+#, fuzzy
+msgid "both %<long%> and %<float%> in declaration specifiers"
+msgstr "Byombi Na Kureremba in"
+
+#: c-decl.c:6873 c-decl.c:6967
+#, fuzzy
+msgid "both %<short%> and %<void%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6876 c-decl.c:6986
+#, fuzzy
+msgid "both %<short%> and %<_Bool%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6879 c-decl.c:7005
+#, fuzzy
+msgid "both %<short%> and %<char%> in declaration specifiers"
+msgstr "Byombi Na INYUGUTI in"
+
+#: c-decl.c:6882 c-decl.c:7018
+#, fuzzy
+msgid "both %<short%> and %<float%> in declaration specifiers"
+msgstr "Byombi Na Kureremba in"
+
+#: c-decl.c:6885 c-decl.c:7034
+#, fuzzy
+msgid "both %<short%> and %<double%> in declaration specifiers"
+msgstr "Byombi Na MAHARAKUBIRI in"
+
+#: c-decl.c:6893 c-decl.c:6913
+#, fuzzy
+msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
+msgstr "Byombi Na Bitashizweho umukono in"
+
+#: c-decl.c:6896 c-decl.c:6970
+#, fuzzy
+msgid "both %<signed%> and %<void%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6899 c-decl.c:6989
+#, fuzzy
+msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
+msgstr "Byombi Na in"
+
+#: c-decl.c:6902 c-decl.c:7021
+#, fuzzy
+msgid "both %<signed%> and %<float%> in declaration specifiers"
+msgstr "Byombi Na Kureremba in"
+
+#: c-decl.c:6905 c-decl.c:7037
+#, fuzzy
+msgid "both %<signed%> and %<double%> in declaration specifiers"
+msgstr "Byombi Na MAHARAKUBIRI in"
+
+#: c-decl.c:6916 c-decl.c:6973
+#, fuzzy
+msgid "both %<unsigned%> and %<void%> in declaration specifiers"
+msgstr "Byombi Bitashizweho umukono Na in"
+
+#: c-decl.c:6919 c-decl.c:6992
+#, fuzzy
+msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
+msgstr "Byombi Bitashizweho umukono Na in"
+
+#: c-decl.c:6922 c-decl.c:7024
+#, fuzzy
+msgid "both %<unsigned%> and %<float%> in declaration specifiers"
+msgstr "Byombi Bitashizweho umukono Na Kureremba in"
+
+#: c-decl.c:6925 c-decl.c:7040
+#, fuzzy
+msgid "both %<unsigned%> and %<double%> in declaration specifiers"
+msgstr "Byombi Bitashizweho umukono Na MAHARAKUBIRI in"
+
+#: c-decl.c:6933
+#, fuzzy
+msgid "ISO C90 does not support complex types"
+msgstr "OYA Gushigikira ITSINDA RY'IMIBARE C"
+
+#: c-decl.c:6935 c-decl.c:6976
+#, fuzzy
+msgid "both %<complex%> and %<void%> in declaration specifiers"
+msgstr "Byombi ITSINDA RY'IMIBARE C Na in"
+
+#: c-decl.c:6938 c-decl.c:6995
+#, fuzzy
+msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
+msgstr "Byombi ITSINDA RY'IMIBARE C Na in"
+
+#: c-decl.c:7077
+#, fuzzy, c-format
+msgid "%qs fails to be a typedef or built in type"
+msgstr "%qsKuri a Cyangwa in Ubwoko"
+
+#: c-decl.c:7109
+#, fuzzy, c-format
+msgid "%qs is not at beginning of declaration"
+msgstr "%qsni OYA ku Itangiriro Bya"
+
+#: c-decl.c:7124
+#, fuzzy
+msgid "%<__thread%> used with %<auto%>"
+msgstr "%<_Urudodo Na: Ikiyega"
+
+#: c-decl.c:7126
+#, fuzzy
+msgid "%<__thread%> used with %<register%>"
+msgstr "%<_Urudodo Na: Kwiyandikisha"
+
+#: c-decl.c:7128
+#, fuzzy
+msgid "%<__thread%> used with %<typedef%>"
+msgstr "%<_Urudodo Na:"
+
+#: c-decl.c:7139 cp/parser.c:7221
+#, fuzzy
+msgid "%<__thread%> before %<extern%>"
+msgstr "%<_Urudodo Mbere"
+
+#: c-decl.c:7148 cp/parser.c:7211
+#, fuzzy
+msgid "%<__thread%> before %<static%>"
+msgstr "%<_Urudodo Mbere"
+
+#: c-decl.c:7164
+#, fuzzy
+msgid "multiple storage classes in declaration specifiers"
+msgstr "Igikubo Inzego in"
+
+#: c-decl.c:7171
+#, fuzzy
+msgid "%<__thread%> used with %qs"
+msgstr "%<_Urudodo Na:"
+
+#: c-decl.c:7225
+#, fuzzy
+msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
+msgstr "C OYA Gushigikira Byuzuye ITSINDA RY'IMIBARE C Igisobanuro MAHARAKUBIRI ITSINDA RY'IMIBARE C"
+
+#: c-decl.c:7270 c-decl.c:7296
+#, fuzzy
+msgid "ISO C does not support complex integer types"
+msgstr "C OYA Gushigikira ITSINDA RY'IMIBARE C Umubare wuzuye"
+
+#: c-decl.c:7371 toplev.c:848
+#, fuzzy
+msgid "%J%qF used but never defined"
+msgstr "%J%qFNta narimwe"
+
+#: c-format.c:96 c-format.c:209
+#, fuzzy
+msgid "format string has invalid operand number"
+msgstr "Imiterere Ikurikiranyanyuguti Sibyo Umubare"
+
+#: c-format.c:113
+#, fuzzy
+msgid "function does not return string type"
+msgstr "Umumaro OYA Garuka Ikurikiranyanyuguti Ubwoko"
+
+#: c-format.c:142
+#, fuzzy
+msgid "format string argument not a string type"
+msgstr "Imiterere Ikurikiranyanyuguti OYA a Ikurikiranyanyuguti Ubwoko"
+
+#: c-format.c:190
+#, fuzzy
+msgid "unrecognized format specifier"
+msgstr "Imiterere"
+
+#: c-format.c:202
+#, fuzzy, c-format
+msgid "%qs is an unrecognized format function type"
+msgstr "%qsni Imiterere Umumaro Ubwoko"
+
+#: c-format.c:215
+#, fuzzy
+msgid "%<...%> has invalid operand number"
+msgstr "%<...%>Sibyo Umubare"
+
+#: c-format.c:222
+#, fuzzy
+msgid "format string argument follows the args to be formatted"
+msgstr "Imiterere Ikurikiranyanyuguti i Kuri Byahanaguwe"
+
+#: c-format.c:345 c-format.c:369
+#, fuzzy
+msgid "' ' flag"
+msgstr "''Ibendera"
+
+#: c-format.c:345 c-format.c:369
+#, fuzzy
+msgid "the ' ' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:346 c-format.c:370 c-format.c:408 c-format.c:465
+#, fuzzy
+msgid "'+' flag"
+msgstr "'+'Ibendera"
+
+#: c-format.c:346 c-format.c:370 c-format.c:408
+#, fuzzy
+msgid "the '+' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:347 c-format.c:371 c-format.c:409 c-format.c:441
+#, fuzzy
+msgid "'#' flag"
+msgstr "'#'Ibendera"
+
+#: c-format.c:347 c-format.c:371 c-format.c:409
+#, fuzzy
+msgid "the '#' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:348 c-format.c:372 c-format.c:439
+#, fuzzy
+msgid "'0' flag"
+msgstr "'Ibendera"
+
+#: c-format.c:348 c-format.c:372
+#, fuzzy
+msgid "the '0' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:349 c-format.c:373 c-format.c:438 c-format.c:468
+#, fuzzy
+msgid "'-' flag"
+msgstr "'-'Ibendera"
+
+#: c-format.c:349 c-format.c:373
+#, fuzzy
+msgid "the '-' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:350 c-format.c:422
+#, fuzzy
+msgid "''' flag"
+msgstr "'''Ibendera"
+
+#: c-format.c:350
+#, fuzzy
+msgid "the ''' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:351 c-format.c:423
+#, fuzzy
+msgid "'I' flag"
+msgstr "'Ibendera"
+
+#: c-format.c:351
+#, fuzzy
+msgid "the 'I' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:352 c-format.c:374 c-format.c:420 c-format.c:442 c-format.c:469
+#: c-format.c:1531 config/sol2-c.c:46
+#, fuzzy
+msgid "field width"
+msgstr "Umwanya Ubugari"
+
+#: c-format.c:352 c-format.c:374 config/sol2-c.c:46
+#, fuzzy
+msgid "field width in printf format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:353 c-format.c:375 c-format.c:399 c-format.c:411
+msgid "precision"
+msgstr ""
+
+#: c-format.c:353 c-format.c:375 c-format.c:399 c-format.c:411
+#, fuzzy
+msgid "precision in printf format"
+msgstr "in Imiterere"
+
+#: c-format.c:354 c-format.c:376 c-format.c:400 c-format.c:412 c-format.c:421
+#: c-format.c:472 config/sol2-c.c:47
+#, fuzzy
+msgid "length modifier"
+msgstr "Uburebure"
+
+#: c-format.c:354 c-format.c:376 c-format.c:400 c-format.c:412
+#: config/sol2-c.c:47
+#, fuzzy
+msgid "length modifier in printf format"
+msgstr "Uburebure in Imiterere"
+
+#: c-format.c:398 c-format.c:410
+#, fuzzy
+msgid "'q' flag"
+msgstr "'Ibendera"
+
+#: c-format.c:398 c-format.c:410
+#, fuzzy
+msgid "the 'q' diagnostic flag"
+msgstr "i Ibendera"
+
+#: c-format.c:418
+#, fuzzy
+msgid "assignment suppression"
+msgstr "Igenera"
+
+#: c-format.c:418
+#, fuzzy
+msgid "the assignment suppression scanf feature"
+msgstr "i Igenera"
+
+#: c-format.c:419
+#, fuzzy
+msgid "'a' flag"
+msgstr "'Ibendera"
+
+#: c-format.c:419
+#, fuzzy
+msgid "the 'a' scanf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:420
+#, fuzzy
+msgid "field width in scanf format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:421
+#, fuzzy
+msgid "length modifier in scanf format"
+msgstr "Uburebure in Imiterere"
+
+#: c-format.c:422
+#, fuzzy
+msgid "the ''' scanf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:423
+#, fuzzy
+msgid "the 'I' scanf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:437
+#, fuzzy
+msgid "'_' flag"
+msgstr "'_'Ibendera"
+
+#: c-format.c:437
+#, fuzzy
+msgid "the '_' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:438
+#, fuzzy
+msgid "the '-' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:439
+#, fuzzy
+msgid "the '0' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:440 c-format.c:464
+#, fuzzy
+msgid "'^' flag"
+msgstr "'^'Ibendera"
+
+#: c-format.c:440
+#, fuzzy
+msgid "the '^' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:441
+#, fuzzy
+msgid "the '#' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:442
+#, fuzzy
+msgid "field width in strftime format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:443
+msgid "'E' modifier"
+msgstr ""
+
+#: c-format.c:443
+#, fuzzy
+msgid "the 'E' strftime modifier"
+msgstr "i"
+
+#: c-format.c:444
+msgid "'O' modifier"
+msgstr ""
+
+#: c-format.c:444
+#, fuzzy
+msgid "the 'O' strftime modifier"
+msgstr "i"
+
+#: c-format.c:445
+#, fuzzy
+msgid "the 'O' modifier"
+msgstr "i"
+
+# svx/source\dialog\tabstpge.src:RID_SVXPAGE_TABULATOR.FL_FILLCHAR.text
+#: c-format.c:463
+#, fuzzy
+msgid "fill character"
+msgstr "Kuzuza inyuguti"
+
+#: c-format.c:463
+#, fuzzy
+msgid "fill character in strfmon format"
+msgstr "Kuzuza Inyuguti in Imiterere"
+
+#: c-format.c:464
+#, fuzzy
+msgid "the '^' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:465
+#, fuzzy
+msgid "the '+' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:466
+#, fuzzy
+msgid "'(' flag"
+msgstr "'('Ibendera"
+
+#: c-format.c:466
+#, fuzzy
+msgid "the '(' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:467
+#, fuzzy
+msgid "'!' flag"
+msgstr "'!'Ibendera"
+
+#: c-format.c:467
+#, fuzzy
+msgid "the '!' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:468
+#, fuzzy
+msgid "the '-' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:469
+#, fuzzy
+msgid "field width in strfmon format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:470
+#, fuzzy
+msgid "left precision"
+msgstr "Ibumoso:"
+
+#: c-format.c:470
+#, fuzzy
+msgid "left precision in strfmon format"
+msgstr "Ibumoso: in Imiterere"
+
+#: c-format.c:471
+#, fuzzy
+msgid "right precision"
+msgstr "Iburyo:"
+
+#: c-format.c:471
+#, fuzzy
+msgid "right precision in strfmon format"
+msgstr "Iburyo: in Imiterere"
+
+#: c-format.c:472
+#, fuzzy
+msgid "length modifier in strfmon format"
+msgstr "Uburebure in Imiterere"
+
+#: c-format.c:840
+#, fuzzy, c-format
+msgid "function might be possible candidate for %qs format attribute"
+msgstr "Umumaro kugirango Imiterere Ikiranga"
+
+#: c-format.c:931 c-format.c:952 c-format.c:1947
+#, fuzzy
+msgid "missing $ operand number in format"
+msgstr "Ibuze Umubare in Imiterere"
+
+#: c-format.c:961
+#, fuzzy, c-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr "%sOYA Gushigikira Umubare Imiterere"
+
+#: c-format.c:968
+#, fuzzy
+msgid "operand number out of range in format"
+msgstr "Umubare Inyuma Bya Urutonde in Imiterere"
+
+#: c-format.c:991
+#, fuzzy, c-format
+msgid "format argument %d used more than once in %s format"
+msgstr "Imiterere Birenzeho Rimwe in Imiterere"
+
+#: c-format.c:1023
+#, fuzzy
+msgid "$ operand number used after format without operand number"
+msgstr "$Umubare Nyuma Imiterere Umubare"
+
+#: c-format.c:1053
+#, 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:1148
+#, fuzzy
+msgid "format not a string literal, format string not checked"
+msgstr "Imiterere OYA a Ikurikiranyanyuguti Imiterere Ikurikiranyanyuguti OYA Ivivuwe"
+
+#: c-format.c:1162
+#, fuzzy
+msgid "format not a string literal and no format arguments"
+msgstr "Imiterere OYA a Ikurikiranyanyuguti Na Oya Imiterere ingingo"
+
+#: c-format.c:1164
+#, fuzzy
+msgid "format not a string literal, argument types not checked"
+msgstr "Imiterere OYA a Ikurikiranyanyuguti OYA Ivivuwe"
+
+#: c-format.c:1177
+#, fuzzy
+msgid "too many arguments for format"
+msgstr "ingingo kugirango Imiterere"
+
+#: c-format.c:1180
+#, fuzzy
+msgid "unused arguments in $-style format"
+msgstr "Kidakoreshwa ingingo in IMISUSIRE Imiterere"
+
+#: c-format.c:1183
+#, fuzzy, c-format
+msgid "zero-length %s format string"
+msgstr "Zeru Uburebure Imiterere Ikurikiranyanyuguti"
+
+#: c-format.c:1187
+#, fuzzy
+msgid "format is a wide character string"
+msgstr "Imiterere ni a Inyuguti Ikurikiranyanyuguti"
+
+#: c-format.c:1190
+#, fuzzy
+msgid "unterminated format string"
+msgstr "Imiterere Ikurikiranyanyuguti"
+
+#: c-format.c:1400
+#, fuzzy
+msgid "embedded %<\\0%> in format"
+msgstr "Gitsindiye in Imiterere"
+
+#: c-format.c:1415
+#, fuzzy
+msgid "spurious trailing %<%%%> in format"
+msgstr "in Imiterere"
+
+#: c-format.c:1459 c-format.c:1703
+#, fuzzy, c-format
+msgid "repeated %s in format"
+msgstr "byasubiyemo in Imiterere"
+
+#: c-format.c:1472
+#, fuzzy
+msgid "missing fill character at end of strfmon format"
+msgstr "Ibuze Kuzuza Inyuguti ku Impera Bya Imiterere"
+
+#: c-format.c:1516 c-format.c:1618 c-format.c:1897 c-format.c:1959
+#, fuzzy
+msgid "too few arguments for format"
+msgstr "ingingo kugirango Imiterere"
+
+#: c-format.c:1557
+#, fuzzy, c-format
+msgid "zero width in %s format"
+msgstr "Zeru Ubugari in Imiterere"
+
+#: c-format.c:1575
+#, fuzzy, c-format
+msgid "empty left precision in %s format"
+msgstr "ubusa Ibumoso: in Imiterere"
+
+#: c-format.c:1633
+#, fuzzy
+msgid "field precision"
+msgstr "Umwanya"
+
+#: c-format.c:1648
+#, fuzzy, c-format
+msgid "empty precision in %s format"
+msgstr "ubusa in Imiterere"
+
+#: c-format.c:1687
+#, fuzzy, c-format
+msgid "%s does not support the %qs %s length modifier"
+msgstr "%sOYA Gushigikira i Uburebure"
+
+#: c-format.c:1737
+#, fuzzy
+msgid "conversion lacks type at end of format"
+msgstr "Ihindurangero Ubwoko ku Impera Bya Imiterere"
+
+#: c-format.c:1748
+#, fuzzy, c-format
+msgid "unknown conversion type character %qc in format"
+msgstr "Kitazwi Ihindurangero Ubwoko Inyuguti in Imiterere"
+
+#: c-format.c:1751
+#, fuzzy, c-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr "Kitazwi Ihindurangero Ubwoko Inyuguti in Imiterere"
+
+#: c-format.c:1758
+#, fuzzy
+msgid "%s does not support the %<%%%c%> %s format"
+msgstr "%sOYA Gushigikira i Imiterere"
+
+#: c-format.c:1774
+#, fuzzy
+msgid "%s used with %<%%%c%> %s format"
+msgstr "%sNa: Imiterere"
+
+#: c-format.c:1783
+#, fuzzy, c-format
+msgid "%s does not support %s"
+msgstr "%sOYA Gushigikira"
+
+#: c-format.c:1792
+#, fuzzy
+msgid "%s does not support %s with the %<%%%c%> %s format"
+msgstr "%sOYA Gushigikira Na: i Imiterere"
+
+#: c-format.c:1825
+#, fuzzy
+msgid "%s ignored with %s and %<%%%c%> %s format"
+msgstr "%sNa: Na Imiterere"
+
+#: c-format.c:1829
+#, fuzzy, c-format
+msgid "%s ignored with %s in %s format"
+msgstr "%sNa: in Imiterere"
+
+#: c-format.c:1835
+#, fuzzy
+msgid "use of %s and %s together with %<%%%c%> %s format"
+msgstr "Gukoresha Bya Na Na: Imiterere"
+
+#: c-format.c:1839
+#, fuzzy, c-format
+msgid "use of %s and %s together in %s format"
+msgstr "Gukoresha Bya Na in Imiterere"
+
+#: c-format.c:1858
+#, fuzzy
+msgid "%<%%%c%> yields only last 2 digits of year in some locales"
+msgstr "%<%%%c%>Iheruka 2. Bya Umwaka in"
+
+#: c-format.c:1861
+#, fuzzy
+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:1877
+#, fuzzy
+msgid "no closing %<]%> for %<%%[%> format"
+msgstr "Oya kugirango Imiterere"
+
+#: c-format.c:1890
+#, fuzzy, c-format
+msgid "use of %qs length modifier with %qc type character"
+msgstr "Gukoresha Bya Uburebure Na: Ubwoko Inyuguti"
+
+#: c-format.c:1911
+#, fuzzy
+msgid "%s does not support the %<%%%s%c%> %s format"
+msgstr "%sOYA Gushigikira i Imiterere"
+
+#: c-format.c:1928
+#, fuzzy
+msgid "operand number specified with suppressed assignment"
+msgstr "Umubare Na: Igenera"
+
+#: c-format.c:1930
+#, fuzzy
+msgid "operand number specified for format taking no argument"
+msgstr "Umubare kugirango Imiterere Oya"
+
+#: c-format.c:2072
+#, fuzzy, c-format
+msgid "writing through null pointer (argument %d)"
+msgstr "Gihinguranya NTAGIHARI Mweretsi"
+
+#: c-format.c:2080
+#, fuzzy, c-format
+msgid "reading through null pointer (argument %d)"
+msgstr "Gihinguranya NTAGIHARI Mweretsi"
+
+#: c-format.c:2100
+#, fuzzy, c-format
+msgid "writing into constant object (argument %d)"
+msgstr "Igikoresho"
+
+#: c-format.c:2111
+#, fuzzy, c-format
+msgid "extra type qualifiers in format argument (argument %d)"
+msgstr "Birenga Ubwoko in Imiterere"
+
+#: c-format.c:2222
+#, fuzzy
+msgid "%s should have type %<%s%s%>, but argument %d has type %qT"
+msgstr "%sUbwoko Ubwoko"
+
+#: c-format.c:2225
+#, fuzzy
+msgid "format %q.*s expects type %<%s%s%>, but argument %d has type %qT"
+msgstr "Imiterere."
+
+#: c-format.c:2232
+#, fuzzy
+msgid "%s should have type %<%T%s%>, but argument %d has type %qT"
+msgstr "%sUbwoko Ubwoko"
+
+#: c-format.c:2235
+#, fuzzy
+msgid "format %q.*s expects type %<%T%s%>, but argument %d has type %qT"
+msgstr "Imiterere."
+
+#: c-format.c:2501
+#, fuzzy
+msgid "args to be formatted is not %<...%>"
+msgstr "Kuri Byahanaguwe ni OYA"
+
+#: c-format.c:2510
+#, fuzzy
+msgid "strftime formats cannot format arguments"
+msgstr "Imiterere Imiterere ingingo"
+
+#: c-gimplify.c:237
+#, fuzzy
+msgid "statement with no effect"
+msgstr "Inyandiko Na: Oya INGARUKA"
+
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
+#, fuzzy
+msgid "break statement not within loop or switch"
+msgstr "itandukanya Inyandiko OYA muri Cyangwa Hindura"
+
+#: c-gimplify.c:317
+#, fuzzy
+msgid "continue statement not within loop or switch"
+msgstr "urifuzagukomeza Inyandiko OYA muri Cyangwa Hindura"
+
+#: c-incpath.c:70
+#, fuzzy, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "Gusubiramo bushyinguro"
+
+#: c-incpath.c:73
+#, fuzzy, c-format
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr "Nka ni a Sisitemu bushyinguro a Sisitemu"
+
+#: c-incpath.c:77
+#, fuzzy, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "bushyinguro"
+
+#: c-incpath.c:286
+#, fuzzy, c-format
+msgid "#include \"...\" search starts here:\n"
+msgstr "#Gushyiramo Gushaka"
+
+#: c-incpath.c:290
+#, fuzzy, c-format
+msgid "#include <...> search starts here:\n"
+msgstr "#Gushyiramo Gushaka"
+
+#: c-incpath.c:295
+#, fuzzy, c-format
+msgid "End of search list.\n"
+msgstr "Impera Bya Gushaka Urutonde"
+
+#: c-lex.c:259
+#, fuzzy
+msgid "badly nested C headers from preprocessor"
+msgstr "C Imitwe Bivuye"
+
+#: c-lex.c:307
+msgid "%Hignoring #pragma %s %s"
+msgstr ""
+
+#. ... or not.
+#: c-lex.c:411
+#, fuzzy
+msgid "%Hstray %<@%> in program"
+msgstr "%Hstray%<@%>in Porogaramu"
+
+#: c-lex.c:425
+#, fuzzy, c-format
+msgid "stray %qs in program"
+msgstr "in Porogaramu"
+
+#: c-lex.c:435
+#, fuzzy, c-format
+msgid "missing terminating %c character"
+msgstr "Ibuze Inyuguti"
+
+#: c-lex.c:437
+#, fuzzy, c-format
+msgid "stray %qc in program"
+msgstr "in Porogaramu"
+
+#: c-lex.c:439
+#, fuzzy
+msgid "stray %<\\%o%> in program"
+msgstr "o in Porogaramu"
+
+#: c-lex.c:599
+#, fuzzy
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "iyi NYACUMI ni Bitashizweho umukono in"
+
+#: c-lex.c:602
+#, fuzzy
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "iyi NYACUMI Bitashizweho umukono in"
+
+#: c-lex.c:618
+#, fuzzy, c-format
+msgid "integer constant is too large for %qs type"
+msgstr "Umubare wuzuye ni Binini kugirango Ubwoko"
+
+#: c-lex.c:684
+#, fuzzy
+msgid "floating constant exceeds range of %<%s%>"
+msgstr "Bihindagurika Urutonde Bya"
+
+#: c-lex.c:766
+#, fuzzy
+msgid "traditional C rejects string constant concatenation"
+msgstr "C Ikurikiranyanyuguti"
+
+#: c-objc-common.c:80
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
+msgstr "%Jfunction%qFNta narimwe ni ikoresha Mumurongo"
+
+#: c-objc-common.c:90
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
+msgstr "%Jfunction%qFNta narimwe OYA muri iyi Igice: Bya Umwandiko wahinduwe ururimi"
+
+#: c-objc-common.c:98
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
+msgstr "%Jfunction%qFNta narimwe Ibiranga Na:"
+
+#: c-objc-common.c:244
+#, fuzzy
+msgid "used array that cannot be converted to pointer where scalar is required"
+msgstr "Imbonerahamwe Kuri Mweretsi ni Bya ngombwa"
+
+#: c-objc-common.c:248
+#, fuzzy
+msgid "used struct type value where scalar is required"
+msgstr "Ubwoko Agaciro ni Bya ngombwa"
+
+#: c-objc-common.c:252
+#, fuzzy
+msgid "used union type value where scalar is required"
+msgstr "Ihuza Ubwoko Agaciro ni Bya ngombwa"
+
+#: c-opts.c:144
+#, fuzzy, c-format
+msgid "no class name specified with %qs"
+msgstr "Oya ishuri Izina: Na:"
+
+#: c-opts.c:148
+#, fuzzy, c-format
+msgid "assertion missing after %qs"
+msgstr "Ibuze Nyuma"
+
+#: c-opts.c:153
+#, fuzzy, c-format
+msgid "macro name missing after %qs"
+msgstr "Makoro Izina: Ibuze Nyuma"
+
+#: c-opts.c:162
+#, fuzzy, c-format
+msgid "missing path after %qs"
+msgstr "Ibuze Inzira Nyuma"
+
+#: c-opts.c:171
+#, fuzzy, c-format
+msgid "missing filename after %qs"
+msgstr "Ibuze Izina ry'idosiye: Nyuma"
+
+#: c-opts.c:176
+#, fuzzy, c-format
+msgid "missing makefile target after %qs"
+msgstr "Ibuze Intego Nyuma"
+
+#: c-opts.c:303
+msgid "-I- specified twice"
+msgstr ""
+
+#: c-opts.c:306
+#, fuzzy
+msgid "obsolete option -I- used, please use -iquote instead"
+msgstr "Ihitamo Gukoresha"
+
+#: c-opts.c:540
+#, fuzzy, c-format
+msgid "switch %qs is no longer supported"
+msgstr "Hindura ni Oya"
+
+#: c-opts.c:653
+#, fuzzy
+msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
+msgstr "-Amarengayobora Na ni NONEAHA ku ku Mburabuzi"
+
+#: c-opts.c:839
+#, fuzzy
+msgid "output filename specified twice"
+msgstr "Ibisohoka Izina ry'idosiye:"
+
+#: c-opts.c:969
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:971
+#, fuzzy
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Birenga"
+
+#: c-opts.c:973
+#, fuzzy
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Zeru Uburebure"
+
+#: c-opts.c:975
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:977
+#, fuzzy
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Umutekano"
+
+#: c-opts.c:979
+#, fuzzy
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Imiterere Ikiranga"
+
+#: c-opts.c:998
+#, fuzzy, c-format
+msgid "opening output file %s: %m"
+msgstr "Gufungura %s%S Ibisohoka IDOSIYE"
+
+#: c-opts.c:1003
+#, fuzzy, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "Ifashayobora kugirango Ikoresha:"
+
+#: c-opts.c:1086
+#, fuzzy
+msgid "YYDEBUG was not defined at build time, -dy ignored"
+msgstr "OYA ku Igihe umunsi"
+
+#: c-opts.c:1127
+#, fuzzy, c-format
+msgid "opening dependency file %s: %m"
+msgstr "Gufungura %s%S IDOSIYE"
+
+#: c-opts.c:1137
+#, fuzzy, c-format
+msgid "closing dependency file %s: %m"
+msgstr "IDOSIYE"
+
+#: c-opts.c:1140
+#, fuzzy, c-format
+msgid "when writing output to %s: %m"
+msgstr "Ryari: Ibisohoka Kuri"
+
+#: c-opts.c:1220
+#, fuzzy
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "Kuri Cyangwa"
+
+#: c-opts.c:1287
+#, fuzzy
+msgid "<built-in>"
+msgstr "<in"
+
+#: c-opts.c:1302
+#, fuzzy
+msgid "<command line>"
+msgstr "<Komandi: Umurongo"
+
+#: c-opts.c:1385
+#, fuzzy
+msgid "too late for # directive to set debug directory"
+msgstr "kugirango Kuri Gushyiraho Kosora amakosa bushyinguro"
+
+#. Depending on the version of Bison used to compile this grammar,
+#. it may issue generic diagnostics spelled "syntax error" or
+#. "parse error". To prevent this from changing the translation
+#. template randomly, we list all the variants of this particular
+#. diagnostic here. Translators: there is no fine distinction
+#. between diagnostics with "syntax error" in them, and diagnostics
+#. with "parse error" in them. It's okay to give them both the same
+#. translation.
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
+msgid "syntax error"
+msgstr "Ikosa mu myandikire"
+
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
+#, fuzzy
+msgid "syntax error: cannot back up"
+msgstr "Ikosa Inyuma Hejuru"
+
+#: c-parse.y:343 objc/objc-parse.y:365
+#, fuzzy
+msgid "ISO C forbids an empty source file"
+msgstr "C ubusa Inkomoko IDOSIYE"
+
+#: c-parse.y:376 objc/objc-parse.y:399
+#, fuzzy
+msgid "data definition has no type or storage class"
+msgstr "Ibyatanzwe Insobanuro Oya Ubwoko Cyangwa ishuri"
+
+#: c-parse.y:388 objc/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:445
+#, fuzzy
+msgid "traditional C rejects the unary plus operator"
+msgstr "C i Guteranya Mukoresha"
+
+#: c-parse.y:498 objc/objc-parse.y:520
+#, fuzzy
+msgid "%<sizeof%> applied to a bit-field"
+msgstr "%<Byashyizweho Kuri a Umwanya"
+
+#: c-parse.y:595 objc/objc-parse.y:617
+#, fuzzy
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr "C i Hagati Ijambo Bya a imvugo"
+
+#: c-parse.y:636 objc/objc-parse.y:658
+#, fuzzy
+msgid "compound literal has variable size"
+msgstr "IMPINDURAGACIRO Ingano"
+
+#: c-parse.y:648 objc/objc-parse.y:670
+msgid "ISO C90 forbids compound literals"
+msgstr ""
+
+#: c-parse.y:661 objc/objc-parse.y:683
+#, fuzzy
+msgid "ISO C forbids braced-groups within expressions"
+msgstr "C Amatsinda muri"
+
+#: c-parse.y:697 objc/objc-parse.y:719
+#, fuzzy
+msgid "first argument to %<__builtin_choose_expr%> not a constant"
+msgstr "Itangira Kuri OYA a"
+
+#: c-parse.y:1224 objc/objc-parse.y:1273
+#, fuzzy
+msgid "%<typeof%> applied to a bit-field"
+msgstr "%<Byashyizweho Kuri a Umwanya"
+
+#: c-parse.y:1372 objc/objc-parse.y:1421
+#, fuzzy
+msgid "ISO C forbids empty initializer braces"
+msgstr "C ubusa Ingirwadusodeko"
+
+#: c-parse.y:1386 objc/objc-parse.y:1435
+#, fuzzy
+msgid "ISO C90 forbids specifying subobject to initialize"
+msgstr "Kuri gutangiza"
+
+#: c-parse.y:1389 objc/objc-parse.y:1438
+#, fuzzy
+msgid "obsolete use of designated initializer without %<=%>"
+msgstr "Gukoresha Bya"
+
+#: c-parse.y:1393 objc/objc-parse.y:1442
+#, fuzzy
+msgid "obsolete use of designated initializer with %<:%>"
+msgstr "Gukoresha Bya Na:"
+
+#: c-parse.y:1424 objc/objc-parse.y:1473
+#, fuzzy
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr "C Urutonde Bya Ibintu Kuri gutangiza"
+
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
+#, fuzzy
+msgid "ISO C forbids nested functions"
+msgstr "C Imimaro"
+
+#: c-parse.y:1637 objc/objc-parse.y:1686
+#, fuzzy
+msgid "ISO C forbids forward references to %<enum%> types"
+msgstr "C Imbere Indango Kuri"
+
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
+#, fuzzy
+msgid "comma at end of enumerator list"
+msgstr "Akitso ku Impera Bya Urutonde"
+
+#: c-parse.y:1669 objc/objc-parse.y:1718
+#, fuzzy
+msgid "no semicolon at end of struct or union"
+msgstr "Oya Akabago n'Akitso ku Impera Bya Cyangwa Ihuza"
+
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
+#, fuzzy
+msgid "extra semicolon in struct or union specified"
+msgstr "Birenga Akabago n'Akitso in Cyangwa Ihuza"
+
+#: c-parse.y:1698 objc/objc-parse.y:1750
+#, fuzzy
+msgid "ISO C forbids member declarations with no members"
+msgstr "C Na: Oya"
+
+#: c-parse.y:1864 objc/objc-parse.y:1916
+#, fuzzy
+msgid "label at end of compound statement"
+msgstr "Akarango ku Impera Bya Inyandiko"
+
+#: c-parse.y:1883 objc/objc-parse.y:1935
+#, fuzzy
+msgid "ISO C90 forbids mixed declarations and code"
+msgstr "Bivanze Na ITEGEKONGENGA"
+
+#: c-parse.y:1923 objc/objc-parse.y:1975
+#, fuzzy
+msgid "ISO C forbids label declarations"
+msgstr "C Akarango"
+
+#: c-parse.y:1967 objc/objc-parse.y:2019
+#, fuzzy
+msgid "braced-group within expression allowed only inside a function"
+msgstr "Itsinda muri imvugo Mo Imbere a Umumaro"
+
+#: c-parse.y:2263 objc/objc-parse.y:2358
+#, fuzzy, c-format
+msgid "%E qualifier ignored on asm"
+msgstr "%Eku"
+
+#: c-parse.y:2309 objc/objc-parse.y:2404
+#, fuzzy
+msgid "wide string literal in %<asm%>"
+msgstr "Ikurikiranyanyuguti in"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
+#, fuzzy
+msgid "ISO C requires a named argument before %<...%>"
+msgstr "C a Mbere"
+
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
+#, fuzzy
+msgid "syntax error; also virtual memory exhausted"
+msgstr "Ikosa Kitaboneka Ububiko"
+
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
+#, fuzzy
+msgid "parser stack overflow"
+msgstr "Byarenze urugero"
+
+#: c-parse.y:2877 objc/objc-parse.y:3467
+#, fuzzy, c-format
+msgid "syntax error at %qs token"
+msgstr "Ikosa ku"
+
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
+#, fuzzy
+msgid "parse error"
+msgstr "Ikosa"
+
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
+#, fuzzy
+msgid "parse error; also virtual memory exhausted"
+msgstr "Ikosa Kitaboneka Ububiko"
+
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
+#, fuzzy
+msgid "parse error: cannot back up"
+msgstr "Ikosa Inyuma Hejuru"
+
+#: c-pch.c:130
+#, fuzzy
+msgid "can%'t create precompiled header %s: %m"
+msgstr "T Kurema Umutwempangano"
+
+#: c-pch.c:158
+#, fuzzy
+msgid "can%'t write to %s: %m"
+msgstr "T Kwandika Kuri"
+
+#: c-pch.c:164
+#, fuzzy, c-format
+msgid "%qs is not a valid output file"
+msgstr "%qsni OYA a Byemewe Ibisohoka IDOSIYE"
+
+#: c-pch.c:193 c-pch.c:208 c-pch.c:222
+#, fuzzy
+msgid "can%'t write %s: %m"
+msgstr "T Kwandika"
+
+#: c-pch.c:198 c-pch.c:215
+#, fuzzy
+msgid "can%'t seek in %s: %m"
+msgstr "T in"
+
+#: c-pch.c:206 c-pch.c:248 c-pch.c:276 c-pch.c:281 c-pch.c:365
+#, fuzzy
+msgid "can%'t read %s: %m"
+msgstr "T Gusoma"
+
+#: c-pch.c:483
+msgid "malformed #pragma GCC pch_preprocess, ignored"
+msgstr ""
+
+#: c-pch.c:489
+#, fuzzy
+msgid "pch_preprocess pragma should only be used with -fpreprocessed"
+msgstr "Na:"
+
+#: c-pch.c:490
+#, fuzzy
+msgid "use #include instead"
+msgstr "Gukoresha Gushyiramo"
+
+#: c-pch.c:498
+#, fuzzy
+msgid "%s: couldn%'t open PCH file: %m\n"
+msgstr "%s:T Gufungura IDOSIYE"
+
+#: c-pch.c:503
+#, fuzzy
+msgid "use -Winvalid-pch for more information"
+msgstr "Gukoresha kugirango Birenzeho Ibisobanuro"
+
+#: c-pch.c:504
+#, fuzzy, c-format
+msgid "%s: PCH file was invalid"
+msgstr "%s:IDOSIYE Sibyo"
+
+#: c-pragma.c:98
+#, fuzzy
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push)"
+msgstr "#Ipaki Ipaki"
+
+#: c-pragma.c:111
+#, fuzzy, c-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
+msgstr "#Ipaki Ipaki"
+
+#: c-pragma.c:125
+#, 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:127
+#, 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:148
+#, fuzzy
+msgid "missing %<(%> after %<#pragma pack%> - ignored"
+msgstr "Ibuze Nyuma Ipaki"
+
+#: c-pragma.c:161 c-pragma.c:201
+#, fuzzy
+msgid "malformed %<#pragma pack%> - ignored"
+msgstr "Ipaki"
+
+#: c-pragma.c:166
+#, fuzzy
+msgid "malformed %<#pragma pack(push[, id][, <n>])%> - ignored"
+msgstr "Ipaki ID N"
+
+#: c-pragma.c:168
+#, fuzzy
+msgid "malformed %<#pragma pack(pop[, id])%> - ignored"
+msgstr "Ipaki ID"
+
+#: c-pragma.c:177
+#, fuzzy
+msgid "unknown action %qs for %<#pragma pack%> - ignored"
+msgstr "Kitazwi Igikorwa kugirango Ipaki"
+
+#: c-pragma.c:204
+#, fuzzy
+msgid "junk at end of %<#pragma pack%>"
+msgstr "Umwanda ku Impera Bya Ipaki"
+
+#: c-pragma.c:207
+#, fuzzy
+msgid "#pragma pack has no effect with -fpack-struct - ignored"
+msgstr "#Ipaki Oya INGARUKA Na:"
+
+#: c-pragma.c:227
+#, fuzzy, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "Itunganya a Gitoya UMWIKUBE Bya OYA"
+
+#: c-pragma.c:260
+#, fuzzy
+msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
+msgstr "%Japplying#Nyuma Itangira Gukoresha Ibisubizo ku in imyitwarire"
+
+#: c-pragma.c:334 c-pragma.c:339
+msgid "malformed #pragma weak, ignored"
+msgstr ""
+
+#: c-pragma.c:343
+#, fuzzy
+msgid "junk at end of #pragma weak"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:411 c-pragma.c:413
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr ""
+
+#: c-pragma.c:416
+#, fuzzy
+msgid "junk at end of #pragma redefine_extname"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:421
+#, fuzzy
+msgid "#pragma redefine_extname not supported on this target"
+msgstr "#OYA ku iyi Intego"
+
+#: c-pragma.c:438 c-pragma.c:524
+#, fuzzy
+msgid "#pragma redefine_extname ignored due to conflict with previous rename"
+msgstr "#Kuri Na: Ibanjirije Guhindura izina"
+
+#: c-pragma.c:461
+#, fuzzy
+msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
+msgstr "#Kuri Na: Ibanjirije"
+
+#: c-pragma.c:480
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr ""
+
+#: c-pragma.c:483
+#, fuzzy
+msgid "junk at end of #pragma extern_prefix"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:489
+#, fuzzy
+msgid "#pragma extern_prefix not supported on this target"
+msgstr "#OYA ku iyi Intego"
+
+#: c-pragma.c:515
+#, fuzzy
+msgid "asm declaration ignored due to conflict with previous rename"
+msgstr "Kuri Na: Ibanjirije Guhindura izina"
+
+#: c-pragma.c:546
+#, fuzzy
+msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
+msgstr "#Kuri Na:"
+
+#: c-pragma.c:606
+#, fuzzy
+msgid "#pragma GCC visibility must be followed by push or pop"
+msgstr "#Ukugaragara ku Cyangwa"
+
+#: c-pragma.c:613
+#, fuzzy
+msgid "No matching push for %<#pragma GCC visibility pop%>"
+msgstr "kugirango Ukugaragara"
+
+#: c-pragma.c:624 c-pragma.c:653
+#, fuzzy
+msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
+msgstr "Ibuze Nyuma Ukugaragara"
+
+#: c-pragma.c:628
+#, fuzzy
+msgid "malformed #pragma GCC visibility push"
+msgstr "Ukugaragara"
+
+#: c-pragma.c:632
+#, fuzzy
+msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
+msgstr "Birenzeho Ukugaragara ku Rimwe"
+
+#: c-pragma.c:648
+#, fuzzy
+msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
+msgstr "#Ukugaragara Mburabuzi By'imbere gihishwe Cyangwa Birinzwe"
+
+#: c-pragma.c:657
+#, fuzzy
+msgid "junk at end of %<#pragma GCC visibility%>"
+msgstr "Umwanda ku Impera Bya Ukugaragara"
+
+#: c-typeck.c:139
+#, fuzzy, c-format
+msgid "%qs has an incomplete type"
+msgstr "%qsUbwoko"
+
+#: c-typeck.c:161 cp/call.c:2679
+#, fuzzy
+msgid "invalid use of void expression"
+msgstr "Sibyo Gukoresha Bya imvugo"
+
+#: c-typeck.c:169
+#, fuzzy
+msgid "invalid use of flexible array member"
+msgstr "Sibyo Gukoresha Bya Imbonerahamwe"
+
+#: c-typeck.c:175
+#, fuzzy
+msgid "invalid use of array with unspecified bounds"
+msgstr "Sibyo Gukoresha Bya Imbonerahamwe Na:"
+
+#: c-typeck.c:183
+#, fuzzy
+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:187
+#, fuzzy, c-format
+msgid "invalid use of incomplete typedef %qs"
+msgstr "Sibyo Gukoresha Bya"
+
+#: c-typeck.c:394 c-typeck.c:419
+#, fuzzy
+msgid "function types not truly compatible in ISO C"
+msgstr "Umumaro OYA in C"
+
+#: c-typeck.c:803
+#, fuzzy
+msgid "types are not quite compatible"
+msgstr "OYA"
+
+#: c-typeck.c:1045
+#, fuzzy
+msgid "function return types not compatible due to %<volatile%>"
+msgstr "Umumaro Garuka OYA Kuri"
+
+#: c-typeck.c:1204 c-typeck.c:2445
+#, fuzzy
+msgid "arithmetic on pointer to an incomplete type"
+msgstr "ku Mweretsi Kuri Ubwoko"
+
+#: c-typeck.c:1559
+#, fuzzy
+msgid "%qT has no member named %qs"
+msgstr "%qTOya"
+
+#: c-typeck.c:1595
+#, fuzzy, c-format
+msgid "request for member %qs in something not a structure or union"
+msgstr "Kubaza... kugirango in OYA a Imiterere Cyangwa Ihuza"
+
+#: c-typeck.c:1629
+#, fuzzy
+msgid "dereferencing pointer to incomplete type"
+msgstr "Mweretsi Kuri Ubwoko"
+
+#: c-typeck.c:1633
+#, fuzzy
+msgid "dereferencing %<void *%> pointer"
+msgstr "Mweretsi"
+
+#: c-typeck.c:1650 cp/typeck.c:2109
+#, fuzzy, c-format
+msgid "invalid type argument of %qs"
+msgstr "Sibyo Ubwoko Bya"
+
+#: c-typeck.c:1678 cp/typeck.c:2260
+#, fuzzy
+msgid "subscripted value is neither array nor pointer"
+msgstr "Agaciro ni Imbonerahamwe Mweretsi"
+
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
+#, fuzzy
+msgid "array subscript is not an integer"
+msgstr "Imbonerahamwe Inyandiko nyesi ni OYA Umubare wuzuye"
+
+#: c-typeck.c:1695
+#, fuzzy
+msgid "subscripted value is pointer to function"
+msgstr "Agaciro ni Mweretsi Kuri Umumaro"
+
+#: c-typeck.c:1708 cp/typeck.c:2175
+#, fuzzy
+msgid "array subscript has type %<char%>"
+msgstr "Imbonerahamwe Inyandiko nyesi Ubwoko INYUGUTI"
+
+#: c-typeck.c:1748
+#, fuzzy
+msgid "ISO C forbids subscripting %<register%> array"
+msgstr "C Kwiyandikisha Imbonerahamwe"
+
+#: c-typeck.c:1750
+#, fuzzy
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "Imbonerahamwe"
+
+#: c-typeck.c:1987
+#, fuzzy, c-format
+msgid "called object %qE is not a function"
+msgstr "Igikoresho ni OYA a Umumaro"
+
+#. This situation leads to run-time undefined behavior. We can't,
+#. therefore, simply error unless we can prove that all possible
+#. executions of the program must execute the code.
+#: c-typeck.c:2019
+#, fuzzy
+msgid "function called through a non-compatible type"
+msgstr "Umumaro Gihinguranya a Ubwoko"
+
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
+#, fuzzy
+msgid "initializer element is not constant"
+msgstr "Ikigize: ni OYA"
+
+#: c-typeck.c:2127
+#, fuzzy, c-format
+msgid "too many arguments to function %qE"
+msgstr "ingingo Kuri Umumaro"
+
+#: c-typeck.c:2154
+#, fuzzy, c-format
+msgid "type of formal parameter %d is incomplete"
+msgstr "Ubwoko Bya ni"
+
+#: c-typeck.c:2167
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as integer rather than floating due to prototype"
+msgstr "Bya Nka Umubare wuzuye Bihindagurika Kuri"
+
+#: c-typeck.c:2172
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as integer rather than complex due to prototype"
+msgstr "Bya Nka Umubare wuzuye ITSINDA RY'IMIBARE C Kuri"
+
+#: c-typeck.c:2177
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as complex rather than floating due to prototype"
+msgstr "Bya Nka ITSINDA RY'IMIBARE C Bihindagurika Kuri"
+
+#: c-typeck.c:2182
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as floating rather than integer due to prototype"
+msgstr "Bya Nka Bihindagurika Umubare wuzuye Kuri"
+
+#: c-typeck.c:2187
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as complex rather than integer due to prototype"
+msgstr "Bya Nka ITSINDA RY'IMIBARE C Umubare wuzuye Kuri"
+
+#: c-typeck.c:2192
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as floating rather than complex due to prototype"
+msgstr "Bya Nka Bihindagurika ITSINDA RY'IMIBARE C Kuri"
+
+#: c-typeck.c:2204
+#, fuzzy
+msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
+msgstr "Bya Nka Kureremba MAHARAKUBIRI Kuri"
+
+#: c-typeck.c:2224
+#, fuzzy, c-format
+msgid "passing argument %d of %qE with different width due to prototype"
+msgstr "Bya Na: Ubugari Kuri"
+
+#: c-typeck.c:2251
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as unsigned due to prototype"
+msgstr "Bya Nka Bitashizweho umukono Kuri"
+
+#: c-typeck.c:2254
+#, fuzzy, c-format
+msgid "passing argument %d of %qE as signed due to prototype"
+msgstr "Bya Nka Kuri"
+
+#: c-typeck.c:2285
+#, fuzzy, c-format
+msgid "too few arguments to function %qE"
+msgstr "ingingo Kuri Umumaro"
+
+#: c-typeck.c:2321
+#, fuzzy
+msgid "suggest parentheses around + or - inside shift"
+msgstr "Cyangwa Mo Imbere Gusunika"
+
+#: c-typeck.c:2328
+#, fuzzy
+msgid "suggest parentheses around && within ||"
+msgstr "muri"
+
+#: c-typeck.c:2337
+#, fuzzy
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr "in Bya"
+
+#: c-typeck.c:2341
+#, fuzzy
+msgid "suggest parentheses around comparison in operand of |"
+msgstr "in Bya"
+
+#: c-typeck.c:2350
+#, fuzzy
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr "in Bya"
+
+#: c-typeck.c:2354
+#, fuzzy
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr "in Bya"
+
+#: c-typeck.c:2361
+#, fuzzy
+msgid "suggest parentheses around + or - in operand of &"
+msgstr "Cyangwa in Bya"
+
+#: c-typeck.c:2365
+#, fuzzy
+msgid "suggest parentheses around comparison in operand of &"
+msgstr "in Bya"
+
+#: c-typeck.c:2371
+#, fuzzy
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr "nka OYA Bijyanye n'imibare Igisobanuro"
+
+#: c-typeck.c:2397
+#, fuzzy
+msgid "pointer of type %<void *%> used in subtraction"
+msgstr "Mweretsi Bya Ubwoko in Gukuramo"
+
+#: c-typeck.c:2399
+#, fuzzy
+msgid "pointer to a function used in subtraction"
+msgstr "Mweretsi Kuri a Umumaro in Gukuramo"
+
+#: c-typeck.c:2488
+#, fuzzy
+msgid "wrong type argument to unary plus"
+msgstr "Ubwoko Kuri Guteranya"
+
+#: c-typeck.c:2501
+#, fuzzy
+msgid "wrong type argument to unary minus"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2518
+#, fuzzy
+msgid "ISO C does not support %<~%> for complex conjugation"
+msgstr "C OYA Gushigikira kugirango ITSINDA RY'IMIBARE C"
+
+#: c-typeck.c:2524
+#, fuzzy
+msgid "wrong type argument to bit-complement"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2532
+#, fuzzy
+msgid "wrong type argument to abs"
+msgstr "Ubwoko Kuri ABS"
+
+#: c-typeck.c:2544
+#, fuzzy
+msgid "wrong type argument to conjugation"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2558
+#, fuzzy
+msgid "wrong type argument to unary exclamation mark"
+msgstr "Ubwoko Kuri Ikimenyetso"
+
+#: c-typeck.c:2595
+#, fuzzy
+msgid "ISO C does not support %<++%> and %<--%> on complex types"
+msgstr "C OYA Gushigikira Na ku ITSINDA RY'IMIBARE C"
+
+#: c-typeck.c:2611 c-typeck.c:2643
+#, fuzzy
+msgid "wrong type argument to increment"
+msgstr "Ubwoko Kuri Iyongeragaciro"
+
+#: c-typeck.c:2613 c-typeck.c:2645
+#, fuzzy
+msgid "wrong type argument to decrement"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2634
+#, fuzzy
+msgid "increment of pointer to unknown structure"
+msgstr "Iyongeragaciro Bya Mweretsi Kuri Kitazwi Imiterere"
+
+#: c-typeck.c:2636
+#, fuzzy
+msgid "decrement of pointer to unknown structure"
+msgstr "Bya Mweretsi Kuri Kitazwi Imiterere"
+
+#: c-typeck.c:2806
+#, fuzzy, c-format
+msgid "assignment of read-only member %qs"
+msgstr "Igenera Bya Gusoma"
+
+#: c-typeck.c:2807
+#, fuzzy, c-format
+msgid "increment of read-only member %qs"
+msgstr "Iyongeragaciro Bya Gusoma"
+
+#: c-typeck.c:2808
+#, fuzzy, c-format
+msgid "decrement of read-only member %qs"
+msgstr "Bya Gusoma"
+
+#: c-typeck.c:2812
+#, fuzzy, c-format
+msgid "assignment of read-only variable %qs"
+msgstr "Igenera Bya Gusoma IMPINDURAGACIRO"
+
+#: c-typeck.c:2813
+#, fuzzy, c-format
+msgid "increment of read-only variable %qs"
+msgstr "Iyongeragaciro Bya Gusoma IMPINDURAGACIRO"
+
+#: c-typeck.c:2814
+#, fuzzy, c-format
+msgid "decrement of read-only variable %qs"
+msgstr "Bya Gusoma IMPINDURAGACIRO"
+
+#: c-typeck.c:2817
+#, fuzzy
+msgid "assignment of read-only location"
+msgstr "Igenera Bya Gusoma Ahantu"
+
+#: c-typeck.c:2818
+#, fuzzy
+msgid "increment of read-only location"
+msgstr "Iyongeragaciro Bya Gusoma Ahantu"
+
+#: c-typeck.c:2819
+#, fuzzy
+msgid "decrement of read-only location"
+msgstr "Bya Gusoma Ahantu"
+
+#: c-typeck.c:2838
+#, fuzzy
+msgid "cannot take address of bit-field %qD"
+msgstr "Aderesi Bya Umwanya"
+
+#: c-typeck.c:2866
+#, fuzzy
+msgid "global register variable %qD used in nested function"
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: c-typeck.c:2869
+#, fuzzy
+msgid "register variable %qD used in nested function"
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: c-typeck.c:2874
+#, fuzzy
+msgid "address of global register variable %qD requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: c-typeck.c:2876
+#, fuzzy
+msgid "address of register variable %qD requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: c-typeck.c:2924
+#, fuzzy
+msgid "non-lvalue array in conditional expression"
+msgstr "Imbonerahamwe in imvugo"
+
+#: c-typeck.c:2968
+#, fuzzy
+msgid "signed and unsigned type in conditional expression"
+msgstr "Na Bitashizweho umukono Ubwoko in imvugo"
+
+#: c-typeck.c:2975
+#, fuzzy
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr "C Na:"
+
+#: c-typeck.c:2991 c-typeck.c:2999
+#, fuzzy
+msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
+msgstr "C hagati Na Umumaro Mweretsi"
+
+#: c-typeck.c:3006
+#, fuzzy
+msgid "pointer type mismatch in conditional expression"
+msgstr "Mweretsi Ubwoko in imvugo"
+
+#: c-typeck.c:3013 c-typeck.c:3023
+#, fuzzy
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr "Mweretsi Umubare wuzuye Ubwoko in imvugo"
+
+#: c-typeck.c:3037
+#, fuzzy
+msgid "type mismatch in conditional expression"
+msgstr "Ubwoko in imvugo"
+
+#: c-typeck.c:3076
+#, fuzzy
+msgid "left-hand operand of comma expression has no effect"
+msgstr "Ibumoso: Bya Akitso imvugo Oya INGARUKA"
+
+#: c-typeck.c:3109
+#, fuzzy
+msgid "cast specifies array type"
+msgstr "Imbonerahamwe Ubwoko"
+
+#: c-typeck.c:3115
+#, fuzzy
+msgid "cast specifies function type"
+msgstr "Umumaro Ubwoko"
+
+#: c-typeck.c:3125
+#, fuzzy
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr "C Kuri i Ubwoko"
+
+#: c-typeck.c:3143
+#, fuzzy
+msgid "ISO C forbids casts to union type"
+msgstr "C Kuri Ihuza Ubwoko"
+
+#: c-typeck.c:3152
+#, fuzzy
+msgid "cast to union type from type not present in union"
+msgstr "Kuri Ihuza Ubwoko Bivuye Ubwoko OYA in Ihuza"
+
+#: c-typeck.c:3203
+#, 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:3208
+#, fuzzy
+msgid "cast discards qualifiers from pointer target type"
+msgstr "Bivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:3223
+#, fuzzy
+msgid "cast increases required alignment of target type"
+msgstr "Bya ngombwa Itunganya Bya Intego Ubwoko"
+
+#: c-typeck.c:3229
+#, fuzzy
+msgid "cast from pointer to integer of different size"
+msgstr "Bivuye Mweretsi Kuri Umubare wuzuye Bya Ingano"
+
+#: c-typeck.c:3234
+#, fuzzy
+msgid "cast from function call of type %qT to non-matching type %qT"
+msgstr "Bivuye Umumaro Bya Ubwoko Kuri Ubwoko"
+
+#: c-typeck.c:3242
+#, fuzzy
+msgid "cast to pointer from integer of different size"
+msgstr "Kuri Mweretsi Bivuye Umubare wuzuye Bya Ingano"
+
+#: c-typeck.c:3254
+#, fuzzy
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "Ubwoko Kuri Ubwoko itandukanya"
+
+#: c-typeck.c:3261
+#, fuzzy
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "Ubwoko Mweretsi itandukanya"
+
+#: c-typeck.c:3264
+#, fuzzy
+msgid "dereferencing type-punned pointer might break strict-aliasing rules"
+msgstr "Ubwoko Mweretsi itandukanya"
+
+#: c-typeck.c:3276
+#, fuzzy
+msgid "ISO C forbids conversion of function pointer to object pointer type"
+msgstr "C Ihindurangero Bya Umumaro Mweretsi Kuri Igikoresho Mweretsi Ubwoko"
+
+#: c-typeck.c:3285
+#, fuzzy
+msgid "ISO C forbids conversion of object pointer to function pointer type"
+msgstr "C Ihindurangero Bya Igikoresho Mweretsi Kuri Umumaro Mweretsi Ubwoko"
+
+#: c-typeck.c:3537
+#, fuzzy
+msgid "cannot pass rvalue to reference parameter"
+msgstr "Kuri Indango"
+
+#: c-typeck.c:3646 c-typeck.c:3761
+#, fuzzy, c-format
+msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
+msgstr "Bya Umumaro Mweretsi Bivuye"
+
+#: c-typeck.c:3649 c-typeck.c:3764
+#, fuzzy
+msgid "assignment makes qualified function pointer from unqualified"
+msgstr "Igenera Umumaro Mweretsi Bivuye"
+
+#: c-typeck.c:3652 c-typeck.c:3766
+#, fuzzy
+msgid "initialization makes qualified function pointer from unqualified"
+msgstr "Umumaro Mweretsi Bivuye"
+
+#: c-typeck.c:3655 c-typeck.c:3768
+#, fuzzy
+msgid "return makes qualified function pointer from unqualified"
+msgstr "Garuka Umumaro Mweretsi Bivuye"
+
+#: c-typeck.c:3659 c-typeck.c:3729
+#, fuzzy, c-format
+msgid "passing argument %d of %qE discards qualifiers from pointer target type"
+msgstr "Bya Bivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:3661 c-typeck.c:3731
+#, fuzzy
+msgid "assignment discards qualifiers from pointer target type"
+msgstr "Igenera Bivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:3663 c-typeck.c:3733
+#, fuzzy
+msgid "initialization discards qualifiers from pointer target type"
+msgstr "Bivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:3665 c-typeck.c:3735
+#, fuzzy
+msgid "return discards qualifiers from pointer target type"
+msgstr "Garuka Bivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:3670
+#, fuzzy
+msgid "ISO C prohibits argument conversion to union type"
+msgstr "C Ihindurangero Kuri Ihuza Ubwoko"
+
+#: c-typeck.c:3714
+#, fuzzy
+msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
+msgstr "C Bya hagati Umumaro Mweretsi Na"
+
+#: c-typeck.c:3717
+#, fuzzy
+msgid "ISO C forbids assignment between function pointer and %<void *%>"
+msgstr "C Igenera hagati Umumaro Mweretsi Na"
+
+#: c-typeck.c:3719
+#, fuzzy
+msgid "ISO C forbids initialization between function pointer and %<void *%>"
+msgstr "C hagati Umumaro Mweretsi Na"
+
+#: c-typeck.c:3721
+#, fuzzy
+msgid "ISO C forbids return between function pointer and %<void *%>"
+msgstr "C Garuka hagati Umumaro Mweretsi Na"
+
+#: c-typeck.c:3744
+#, fuzzy, c-format
+msgid "pointer targets in passing argument %d of %qE differ in signedness"
+msgstr "Mweretsi in Bya in"
+
+#: c-typeck.c:3746
+#, fuzzy
+msgid "pointer targets in assignment differ in signedness"
+msgstr "Mweretsi in Igenera in"
+
+#: c-typeck.c:3748
+#, fuzzy
+msgid "pointer targets in initialization differ in signedness"
+msgstr "Mweretsi in in"
+
+#: c-typeck.c:3750
+#, fuzzy
+msgid "pointer targets in return differ in signedness"
+msgstr "Mweretsi in Garuka in"
+
+#: c-typeck.c:3773
+#, fuzzy, c-format
+msgid "passing argument %d of %qE from incompatible pointer type"
+msgstr "Bya Bivuye Mweretsi Ubwoko"
+
+#: c-typeck.c:3775
+#, fuzzy
+msgid "assignment from incompatible pointer type"
+msgstr "Igenera Bivuye Mweretsi Ubwoko"
+
+#: c-typeck.c:3776
+#, fuzzy
+msgid "initialization from incompatible pointer type"
+msgstr "Bivuye Mweretsi Ubwoko"
+
+#: c-typeck.c:3778
+#, fuzzy
+msgid "return from incompatible pointer type"
+msgstr "Garuka Bivuye Mweretsi Ubwoko"
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
+#, fuzzy
+msgid "invalid use of non-lvalue array"
+msgstr "Sibyo Gukoresha Bya Imbonerahamwe"
+
+#: c-typeck.c:3799
+#, fuzzy, c-format
+msgid "passing argument %d of %qE makes pointer from integer without a cast"
+msgstr "Bya Mweretsi Bivuye Umubare wuzuye a"
+
+#: c-typeck.c:3801
+#, fuzzy
+msgid "assignment makes pointer from integer without a cast"
+msgstr "Igenera Mweretsi Bivuye Umubare wuzuye a"
+
+#: c-typeck.c:3803
+#, fuzzy
+msgid "initialization makes pointer from integer without a cast"
+msgstr "Mweretsi Bivuye Umubare wuzuye a"
+
+#: c-typeck.c:3805
+#, fuzzy
+msgid "return makes pointer from integer without a cast"
+msgstr "Garuka Mweretsi Bivuye Umubare wuzuye a"
+
+#: c-typeck.c:3812
+#, fuzzy, c-format
+msgid "passing argument %d of %qE makes integer from pointer without a cast"
+msgstr "Bya Umubare wuzuye Bivuye Mweretsi a"
+
+#: c-typeck.c:3814
+#, fuzzy
+msgid "assignment makes integer from pointer without a cast"
+msgstr "Igenera Umubare wuzuye Bivuye Mweretsi a"
+
+#: c-typeck.c:3816
+#, fuzzy
+msgid "initialization makes integer from pointer without a cast"
+msgstr "Umubare wuzuye Bivuye Mweretsi a"
+
+#: c-typeck.c:3818
+#, fuzzy
+msgid "return makes integer from pointer without a cast"
+msgstr "Garuka Umubare wuzuye Bivuye Mweretsi a"
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c-typeck.c:3831
+#, fuzzy, c-format
+msgid "incompatible type for argument %d of %qE"
+msgstr "Ubwoko kugirango Bya"
+
+#: c-typeck.c:3834
+#, fuzzy
+msgid "incompatible types in assignment"
+msgstr "in Igenera"
+
+#: c-typeck.c:3837
+#, fuzzy
+msgid "incompatible types in initialization"
+msgstr "in"
+
+#: c-typeck.c:3840
+#, fuzzy
+msgid "incompatible types in return"
+msgstr "in Garuka"
+
+#: c-typeck.c:3921
+#, fuzzy
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr "C Byikoresha"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#. Use `%s' to print the string in case there are any escape
+#. characters in the message.
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
+#, fuzzy, c-format
+msgid "%s"
+msgstr "%s"
+
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
+#, fuzzy, c-format
+msgid "(near initialization for %qs)"
+msgstr "(kugirango"
+
+#: c-typeck.c:4133
+#, fuzzy
+msgid "array initialized from parenthesized string constant"
+msgstr "Imbonerahamwe Bivuye Ikurikiranyanyuguti"
+
+#: c-typeck.c:4197 cp/typeck2.c:703
+#, fuzzy
+msgid "char-array initialized from wide string"
+msgstr "INYUGUTI Imbonerahamwe Bivuye Ikurikiranyanyuguti"
+
+#: c-typeck.c:4202
+#, fuzzy
+msgid "wchar_t-array initialized from non-wide string"
+msgstr "Imbonerahamwe Bivuye Ikurikiranyanyuguti"
+
+#: c-typeck.c:4220 cp/typeck2.c:725
+#, fuzzy
+msgid "initializer-string for array of chars is too long"
+msgstr "Ikurikiranyanyuguti kugirango Imbonerahamwe Bya ni"
+
+#: c-typeck.c:4226
+#, fuzzy
+msgid "array of inappropriate type initialized from string constant"
+msgstr "Imbonerahamwe Bya Ubwoko Bivuye Ikurikiranyanyuguti"
+
+#: c-typeck.c:4310
+#, fuzzy
+msgid "array initialized from non-constant array expression"
+msgstr "Imbonerahamwe Bivuye Imbonerahamwe imvugo"
+
+#: c-typeck.c:4369 c-typeck.c:5748
+#, fuzzy
+msgid "initializer element is not computable at load time"
+msgstr "Ikigize: ni OYA ku Ibirimo Igihe"
+
+#: c-typeck.c:4384 cp/typeck2.c:804
+#, fuzzy
+msgid "invalid initializer"
+msgstr "Sibyo"
+
+#: c-typeck.c:4651 cp/decl.c:4451
+#, fuzzy
+msgid "opaque vector types cannot be initialized"
+msgstr "Kijimye"
+
+#: c-typeck.c:4850
+#, fuzzy
+msgid "extra brace group at end of initializer"
+msgstr "Birenga Itsinda ku Impera Bya"
+
+#: c-typeck.c:4870 cp/decl.c:4366
+#, fuzzy
+msgid "missing braces around initializer"
+msgstr "Ibuze Ingirwadusodeko"
+
+#: c-typeck.c:4931
+#, fuzzy
+msgid "braces around scalar initializer"
+msgstr "Ingirwadusodeko"
+
+#: c-typeck.c:4988
+#, fuzzy
+msgid "initialization of flexible array member in a nested context"
+msgstr "Bya Imbonerahamwe in a Imvugiro"
+
+#: c-typeck.c:4990
+#, fuzzy
+msgid "initialization of a flexible array member"
+msgstr "Bya a Imbonerahamwe"
+
+#: c-typeck.c:5017
+#, fuzzy
+msgid "missing initializer"
+msgstr "Ibuze"
+
+#: c-typeck.c:5039
+#, fuzzy
+msgid "empty scalar initializer"
+msgstr "ubusa"
+
+#: c-typeck.c:5044
+#, fuzzy
+msgid "extra elements in scalar initializer"
+msgstr "Birenga Ibintu in"
+
+#: c-typeck.c:5148 c-typeck.c:5223
+#, fuzzy
+msgid "array index in non-array initializer"
+msgstr "Imbonerahamwe Umubarendanga in Imbonerahamwe"
+
+#: c-typeck.c:5153 c-typeck.c:5276
+#, fuzzy
+msgid "field name not in record or union initializer"
+msgstr "Umwanya Izina: OYA in Icyabitswe Cyangwa Ihuza"
+
+#: c-typeck.c:5199
+#, fuzzy
+msgid "array index in initializer not of integer type"
+msgstr "Imbonerahamwe Umubarendanga in OYA Bya Umubare wuzuye Ubwoko"
+
+#: c-typeck.c:5219 c-typeck.c:5221
+#, fuzzy
+msgid "nonconstant array index in initializer"
+msgstr "Imbonerahamwe Umubarendanga in"
+
+#: c-typeck.c:5225 c-typeck.c:5228
+#, fuzzy
+msgid "array index in initializer exceeds array bounds"
+msgstr "Imbonerahamwe Umubarendanga in Imbonerahamwe"
+
+#: c-typeck.c:5239
+#, fuzzy
+msgid "empty index range in initializer"
+msgstr "ubusa Umubarendanga Urutonde in"
+
+#: c-typeck.c:5248
+#, fuzzy
+msgid "array index range in initializer exceeds array bounds"
+msgstr "Imbonerahamwe Umubarendanga Urutonde in Imbonerahamwe"
+
+#: c-typeck.c:5288
+#, fuzzy, c-format
+msgid "unknown field %qs specified in initializer"
+msgstr "Kitazwi Umwanya in"
+
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
+#, fuzzy
+msgid "initialized field with side-effects overwritten"
+msgstr "Umwanya Na: Ingaruka"
+
+#: c-typeck.c:6020
+#, fuzzy
+msgid "excess elements in char array initializer"
+msgstr "Ibintu in INYUGUTI Imbonerahamwe"
+
+#: c-typeck.c:6027 c-typeck.c:6073
+#, fuzzy
+msgid "excess elements in struct initializer"
+msgstr "Ibintu in"
+
+#: c-typeck.c:6088
+#, fuzzy
+msgid "non-static initialization of a flexible array member"
+msgstr "Bya a Imbonerahamwe"
+
+#: c-typeck.c:6156
+#, fuzzy
+msgid "excess elements in union initializer"
+msgstr "Ibintu in Ihuza"
+
+#: c-typeck.c:6178
+#, fuzzy
+msgid "traditional C rejects initialization of unions"
+msgstr "C Bya"
+
+#: c-typeck.c:6242
+#, fuzzy
+msgid "excess elements in array initializer"
+msgstr "Ibintu in Imbonerahamwe"
+
+#: c-typeck.c:6272
+#, fuzzy
+msgid "excess elements in vector initializer"
+msgstr "Ibintu in"
+
+#: c-typeck.c:6296
+#, fuzzy
+msgid "excess elements in scalar initializer"
+msgstr "Ibintu in"
+
+#: c-typeck.c:6492
+#, fuzzy
+msgid "ISO C forbids %<goto *expr;%>"
+msgstr "C"
+
+#: c-typeck.c:6506 cp/typeck.c:6049
+#, fuzzy
+msgid "function declared %<noreturn%> has a %<return%> statement"
+msgstr "Umumaro a Garuka Inyandiko"
+
+#: c-typeck.c:6513
+#, fuzzy
+msgid "%<return%> with no value, in function returning non-void"
+msgstr "%<Garuka Na: Oya Agaciro in Umumaro"
+
+#: c-typeck.c:6520
+#, fuzzy
+msgid "%<return%> with a value, in function returning void"
+msgstr "%<Garuka Na: a Agaciro in Umumaro"
+
+#: c-typeck.c:6577
+#, fuzzy
+msgid "function returns address of local variable"
+msgstr "Umumaro Aderesi Bya IMPINDURAGACIRO"
+
+#: c-typeck.c:6638 cp/semantics.c:879
+#, fuzzy
+msgid "switch quantity not an integer"
+msgstr "Hindura Ingano OYA Umubare wuzuye"
+
+#: c-typeck.c:6649
+#, fuzzy
+msgid "%<long%> switch expression not converted to %<int%> in ISO C"
+msgstr "%<Hindura imvugo OYA Kuri INT in C"
+
+#: c-typeck.c:6685 cp/parser.c:6051
+#, fuzzy
+msgid "case label not within a switch statement"
+msgstr "Akarango OYA muri a Hindura Inyandiko"
+
+#: c-typeck.c:6687
+#, fuzzy
+msgid "%<default%> label not within a switch statement"
+msgstr "%<Mburabuzi Akarango OYA muri a Hindura Inyandiko"
+
+#: c-typeck.c:6751
+#, fuzzy
+msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
+msgstr "%HsuggestIngirwadusodeko Kuri Ikindi"
+
+#: c-typeck.c:6761
+#, fuzzy
+msgid "%Hempty body in an if-statement"
+msgstr "%HemptyUmubiri in NIBA Inyandiko"
+
+#: c-typeck.c:6769
+#, fuzzy
+msgid "%Hempty body in an else-statement"
+msgstr "%HemptyUmubiri in Ikindi Inyandiko"
+
+#: c-typeck.c:6880 cp/parser.c:6553
+#, fuzzy
+msgid "continue statement not within a loop"
+msgstr "urifuzagukomeza Inyandiko OYA muri a"
+
+#: c-typeck.c:6900
+#, fuzzy
+msgid "%Hstatement with no effect"
+msgstr "%HstatementNa: Oya INGARUKA"
+
+#: c-typeck.c:6929
+#, fuzzy
+msgid "expression statement has incomplete type"
+msgstr "imvugo Inyandiko Ubwoko"
+
+#: c-typeck.c:7252 c-typeck.c:7291
+#, fuzzy
+msgid "division by zero"
+msgstr "Kugabanya na zeru"
+
+#: c-typeck.c:7336 cp/typeck.c:2927
+#, fuzzy
+msgid "right shift count is negative"
+msgstr "Iburyo: Gusunika IBARA ni"
+
+#: c-typeck.c:7343 cp/typeck.c:2933
+#, fuzzy
+msgid "right shift count >= width of type"
+msgstr "Iburyo: Gusunika IBARA Ubugari Bya Ubwoko"
+
+#: c-typeck.c:7364 cp/typeck.c:2952
+#, fuzzy
+msgid "left shift count is negative"
+msgstr "Ibumoso: Gusunika IBARA ni"
+
+#: c-typeck.c:7367 cp/typeck.c:2954
+#, fuzzy
+msgid "left shift count >= width of type"
+msgstr "Ibumoso: Gusunika IBARA Ubugari Bya Ubwoko"
+
+#: c-typeck.c:7384 cp/typeck.c:2989
+#, fuzzy
+msgid "comparing floating point with == or != is unsafe"
+msgstr "Bihindagurika Akadomo Na: Cyangwa ni"
+
+#: c-typeck.c:7408 c-typeck.c:7415
+#, fuzzy
+msgid "ISO C forbids comparison of %<void *%> with function pointer"
+msgstr "C Bya Na: Umumaro Mweretsi"
+
+#: c-typeck.c:7419 c-typeck.c:7465
+#, fuzzy
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr "Bya Mweretsi a"
+
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
+#, fuzzy
+msgid "comparison between pointer and integer"
+msgstr "hagati Mweretsi Na Umubare wuzuye"
+
+#: c-typeck.c:7457
+#, fuzzy
+msgid "comparison of complete and incomplete pointers"
+msgstr "Bya Byuzuye Na"
+
+#: c-typeck.c:7460
+#, fuzzy
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr "C Bya Kuri Imimaro"
+
+#: c-typeck.c:7473 c-typeck.c:7480
+#, fuzzy
+msgid "ordered comparison of pointer with integer zero"
+msgstr "Bya Mweretsi Na: Umubare wuzuye Zeru"
+
+#: c-typeck.c:7701
+#, fuzzy
+msgid "comparison between signed and unsigned"
+msgstr "hagati Na Bitashizweho umukono"
+
+#: c-typeck.c:7747 cp/typeck.c:3396
+#, fuzzy
+msgid "comparison of promoted ~unsigned with constant"
+msgstr "Bya Bitashizweho umukono Na:"
+
+#: c-typeck.c:7755 cp/typeck.c:3404
+#, fuzzy
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr "Bya Bitashizweho umukono Na: Bitashizweho umukono"
+
+#: calls.c:1934
+#, fuzzy
+msgid "function call has aggregate value"
+msgstr "Umumaro Agaciro"
+
+#: cfghooks.c:90
+#, fuzzy, c-format
+msgid "bb %d on wrong place"
+msgstr "ku"
+
+#: cfghooks.c:96
+#, fuzzy, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "Bya OYA"
+
+#: cfghooks.c:113
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "IBARA Bya Funga"
+
+#: cfghooks.c:119
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "Ubwisubire Bya Funga"
+
+#: cfghooks.c:127
+#, c-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr ""
+
+#: cfghooks.c:133
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "Imishobokere Bya"
+
+#: cfghooks.c:139
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "IBARA Bya"
+
+#: cfghooks.c:151
+#, fuzzy, c-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr "Funga ni"
+
+#: cfghooks.c:165 cfgrtl.c:2056
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Igiteranyo Bya Nyuma Simbuka"
+
+#: cfghooks.c:173 cfghooks.c:184
+#, fuzzy, c-format
+msgid "basic block %d pred edge is corrupted"
+msgstr "BASIC Funga ni"
+
+#: cfghooks.c:185
+#, fuzzy, c-format
+msgid "its dest_idx should be %d, not %d"
+msgstr "OYA"
+
+#: cfghooks.c:214
+#, fuzzy, c-format
+msgid "basic block %i edge lists are corrupted"
+msgstr "BASIC Funga Intonde"
+
+#: cfghooks.c:228
+#, fuzzy
+msgid "verify_flow_info failed"
+msgstr "Byanze"
+
+#: cfghooks.c:289
+#, fuzzy, c-format
+msgid "%s does not support redirect_edge_and_branch."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:307
+#, fuzzy, c-format
+msgid "%s does not support redirect_edge_and_branch_force."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:325
+#, fuzzy, c-format
+msgid "%s does not support split_block."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:361
+#, fuzzy, c-format
+msgid "%s does not support move_block_after."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:374
+#, fuzzy, c-format
+msgid "%s does not support delete_basic_block."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:406
+#, fuzzy, c-format
+msgid "%s does not support split_edge."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:467
+#, fuzzy, c-format
+msgid "%s does not support create_basic_block."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:495
+#, fuzzy, c-format
+msgid "%s does not support can_merge_blocks_p."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:506
+#, fuzzy, c-format
+msgid "%s does not support predict_edge."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:515
+#, fuzzy, c-format
+msgid "%s does not support predicted_by_p."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:529
+#, fuzzy, c-format
+msgid "%s does not support merge_blocks."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:575
+#, fuzzy, c-format
+msgid "%s does not support make_forwarder_block."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:680
+#, fuzzy, c-format
+msgid "%s does not support can_duplicate_block_p."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:707
+#, fuzzy, c-format
+msgid "%s does not support duplicate_block."
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:773
+#, fuzzy, c-format
+msgid "%s does not support block_ends_with_call_p"
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:784
+#, fuzzy, c-format
+msgid "%s does not support block_ends_with_condjump_p"
+msgstr "%sOYA Gushigikira"
+
+#: cfghooks.c:802
+#, fuzzy, c-format
+msgid "%s does not support flow_call_edges_add"
+msgstr "%sOYA Gushigikira"
+
+#: cfgloop.c:1312
+#, fuzzy, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "Bya OYA"
+
+#: cfgloop.c:1329
+#, fuzzy, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "OYA Kuri"
+
+#: cfgloop.c:1346
+#, fuzzy, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "S Umutwempangano OYA 2. Ibyinjijwe"
+
+#: cfgloop.c:1353
+#, fuzzy, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "S OYA 1."
+
+#: cfgloop.c:1358
+#, fuzzy, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "S OYA Umutwempangano Nka"
+
+#: cfgloop.c:1363
+#, fuzzy, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "S OYA Kuri"
+
+#: cfgloop.c:1369
+#, fuzzy, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "S Umutwempangano OYA Kuri"
+
+#: cfgloop.c:1375
+#, fuzzy, c-format
+msgid "Loop %d's latch is marked as part of irreducible region."
+msgstr "S ni cy/ byagarajwe Nka Bya"
+
+#: cfgloop.c:1408
+#, fuzzy, c-format
+msgid "Basic block %d should be marked irreducible."
+msgstr "Funga cy/ byagarajwe"
+
+#: cfgloop.c:1414
+#, fuzzy, c-format
+msgid "Basic block %d should not be marked irreducible."
+msgstr "Funga OYA cy/ byagarajwe"
+
+#: cfgloop.c:1422
+#, fuzzy, c-format
+msgid "Edge from %d to %d should be marked irreducible."
+msgstr "Bivuye Kuri cy/ byagarajwe"
+
+#: cfgloop.c:1429
+#, fuzzy, c-format
+msgid "Edge from %d to %d should not be marked irreducible."
+msgstr "Bivuye Kuri OYA cy/ byagarajwe"
+
+#: cfgloop.c:1464
+#, fuzzy, c-format
+msgid "Wrong single exit %d->%d recorded for loop %d."
+msgstr "UMWE Gusohoka kugirango"
+
+#: cfgloop.c:1468
+#, fuzzy, c-format
+msgid "Right exit is %d->%d."
+msgstr "Gusohoka ni"
+
+#: cfgloop.c:1485
+#, fuzzy, c-format
+msgid "Single exit not recorded for loop %d."
+msgstr "Gusohoka OYA kugirango"
+
+#: cfgloop.c:1492
+#, fuzzy, c-format
+msgid "Loop %d should not have single exit (%d -> %d)."
+msgstr "OYA UMWE Gusohoka"
+
+#: cfgrtl.c:1948
+#, 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:1962
+#, fuzzy, c-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr "ni in Igikubo BASIC Na"
+
+#: cfgrtl.c:1974
+#, 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:1998
+#, fuzzy
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
+msgstr "OYA BIHUYE"
+
+#: cfgrtl.c:2013
+#, fuzzy, c-format
+msgid "Fallthru edge crosses section boundary (bb %i)"
+msgstr "Icyiciro"
+
+#: cfgrtl.c:2038
+#, fuzzy, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "Impugukirwa in i Impera Bya"
+
+#: cfgrtl.c:2046
+#, fuzzy, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "Bivuye"
+
+#: cfgrtl.c:2051
+#, fuzzy, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Nyuma Simbuka"
+
+#: cfgrtl.c:2062
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Igiteranyo Bya Nyuma Simbuka"
+
+#: cfgrtl.c:2067
+#, fuzzy, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "kugirango in"
+
+#: cfgrtl.c:2076
+#, fuzzy, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "kugirango Oya Intego in"
+
+#: cfgrtl.c:2088
+#, fuzzy, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr "Mo Imbere BASIC Funga ni"
+
+#: cfgrtl.c:2092
+#, fuzzy, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "Mo Imbere BASIC Funga ni"
+
+#: cfgrtl.c:2106 cfgrtl.c:2116
+#, fuzzy, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "ni Ibuze kugirango Funga"
+
+#: cfgrtl.c:2129
+#, fuzzy, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "in Hagati Bya BASIC Funga"
+
+#: cfgrtl.c:2139
+#, fuzzy, c-format
+msgid "in basic block %d:"
+msgstr "in BASIC Funga"
+
+#: cfgrtl.c:2140
+#, fuzzy
+msgid "flow control insn inside a basic block"
+msgstr "Igenzura Mo Imbere a BASIC Funga"
+
+#: cfgrtl.c:2188
+#, fuzzy, c-format
+msgid "missing barrier after block %i"
+msgstr "Ibuze Nyuma Funga"
+
+#: cfgrtl.c:2201
+#, fuzzy, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "kugirango"
+
+#: cfgrtl.c:2210
+#, c-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.c:2212
+#, fuzzy
+msgid "wrong insn in the fallthru edge"
+msgstr "in i"
+
+#: cfgrtl.c:2229
+#, fuzzy
+msgid "basic blocks not laid down consecutively"
+msgstr "BASIC OYA Hasi"
+
+#: cfgrtl.c:2254
+#, fuzzy
+msgid "insn outside basic block"
+msgstr "Hanze BASIC Funga"
+
+#: cfgrtl.c:2261
+#, fuzzy
+msgid "return not followed by barrier"
+msgstr "Garuka OYA ku"
+
+#: cfgrtl.c:2268
+#, fuzzy, c-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr "Umubare Bya Ibisobanuro in"
+
+#: cgraph.c:278
+#, fuzzy
+msgid "function body not available"
+msgstr "Umumaro Umubiri OYA Bihari"
+
+#: cgraph.c:280 cgraphunit.c:661
+#, fuzzy
+msgid "redefined extern inline functions are not considered for inlining"
+msgstr "Mumurongo Imimaro OYA kugirango"
+
+#: cgraph.c:283 cgraphunit.c:666
+#, fuzzy
+msgid "function not considered for inlining"
+msgstr "Umumaro OYA kugirango"
+
+#: cgraph.c:285 cgraphunit.c:664
+#, fuzzy
+msgid "function not inlinable"
+msgstr "Umumaro OYA"
+
+#: cgraph.c:615
+#, fuzzy
+msgid "%D renamed after being referenced in assembly"
+msgstr "%DNyuma in"
+
+#: cgraphunit.c:512
+msgid "Shared call_expr:"
+msgstr ""
+
+#: cgraphunit.c:518
+#, fuzzy
+msgid "Edge points to wrong declaration:"
+msgstr "Utudomo Kuri"
+
+#: cgraphunit.c:527
+#, fuzzy
+msgid "Missing callgraph edge for call expr:"
+msgstr "kugirango"
+
+#: cgraphunit.c:553
+#, fuzzy, c-format
+msgid "Aux field set for edge %s->%s"
+msgstr "Umwanya Gushyiraho kugirango"
+
+#: cgraphunit.c:565
+#, fuzzy
+msgid "Inlined_to pointer is wrong"
+msgstr "Mweretsi ni"
+
+#: cgraphunit.c:570
+#, fuzzy
+msgid "Multiple inline callers"
+msgstr "Mumurongo"
+
+#: cgraphunit.c:577
+#, fuzzy
+msgid "Inlined_to pointer set for noninline callers"
+msgstr "Mweretsi Gushyiraho kugirango"
+
+#: cgraphunit.c:583
+#, fuzzy
+msgid "Inlined_to pointer is set but no predecesors found"
+msgstr "Mweretsi ni Gushyiraho Oya Byabonetse"
+
+#: cgraphunit.c:588
+#, fuzzy
+msgid "Inlined_to pointer reffers to itself"
+msgstr "Mweretsi Kuri"
+
+#: cgraphunit.c:598
+#, fuzzy
+msgid "Node not found in DECL_ASSEMBLER_NAME hash"
+msgstr "OYA Byabonetse in"
+
+#: cgraphunit.c:612
+#, fuzzy, c-format
+msgid "Edge %s->%s has no corresponding call_expr"
+msgstr "Oya"
+
+#: cgraphunit.c:623
+#, fuzzy
+msgid "verify_cgraph_node failed."
+msgstr "Byanze"
+
+#: cgraphunit.c:807
+#, fuzzy
+msgid "failed to reclaim unneeded function"
+msgstr "Byanze Kuri Umumaro"
+
+#: cgraphunit.c:1194
+#, fuzzy
+msgid "--param large-function-growth limit reached"
+msgstr "--Binini Umumaro IKURA"
+
+#: cgraphunit.c:1231
+msgid "recursive inlining"
+msgstr ""
+
+#: cgraphunit.c:1396 cgraphunit.c:1648
+#, fuzzy
+msgid "--param max-inline-insns-single limit reached"
+msgstr "--KININI Mumurongo UMWE"
+
+#: cgraphunit.c:1420
+#, fuzzy
+msgid "--param max-inline-insns-single limit reached after inlining into the callee"
+msgstr "--KININI Mumurongo UMWE Nyuma i"
+
+#: cgraphunit.c:1470
+#, fuzzy
+msgid "--param inline-unit-growth limit reached"
+msgstr "--Mumurongo Igice: IKURA"
+
+#: cgraphunit.c:1822
+#, fuzzy
+msgid "Nodes with no released memory found."
+msgstr "Na: Oya Ububiko Byabonetse"
+
+#: collect2.c:402 gcc.c:6733
+#, fuzzy, c-format
+msgid "internal gcc abort in %s, at %s:%d"
+msgstr "By'imbere Kureka in ku"
+
+#: collect2.c:895
+#, fuzzy
+msgid "no arguments"
+msgstr "Oya ingingo"
+
+#: collect2.c:1194
+#, fuzzy, c-format
+msgid "unknown demangling style '%s'"
+msgstr "Kitazwi IMISUSIRE"
+
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
+#, c-format
+msgid "fopen %s"
+msgstr ""
+
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
+#, c-format
+msgid "fclose %s"
+msgstr ""
+
+#: collect2.c:1280
+#, fuzzy, c-format
+msgid "collect2 version %s"
+msgstr "Verisiyo"
+
+#: collect2.c:1370
+#, fuzzy, c-format
+msgid "%d constructor(s) found\n"
+msgstr "%dS"
+
+#: collect2.c:1371
+#, fuzzy, c-format
+msgid "%d destructor(s) found\n"
+msgstr "%dS"
+
+#: collect2.c:1372
+#, fuzzy, c-format
+msgid "%d frame table(s) found\n"
+msgstr "%dIkadiri imbonerahamwe# S"
+
+#: collect2.c:1514
+#, fuzzy, c-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%sNa:"
+
+#: collect2.c:1532
+#, fuzzy, c-format
+msgid "%s returned %d exit status"
+msgstr "%sGusohoka Imimerere"
+
+#: collect2.c:1557
+#, fuzzy, c-format
+msgid "[cannot find %s]"
+msgstr "[Gushaka"
+
+#: collect2.c:1572
+#, fuzzy, c-format
+msgid "cannot find '%s'"
+msgstr "Gushaka"
+
+#: collect2.c:1583 collect2.c:1586
+#, c-format
+msgid "redirecting stdout: %s"
+msgstr ""
+
+#: collect2.c:1625
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr ""
+
+#: collect2.c:1845
+#, fuzzy, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr "Ibisohoka Izina: ni Imbanziriza ni"
+
+#: collect2.c:2049
+#, fuzzy
+msgid "cannot find 'nm'"
+msgstr "Gushaka"
+
+#: collect2.c:2059 collect2.c:2225
+msgid "pipe"
+msgstr ""
+
+#: collect2.c:2063 collect2.c:2229
+msgid "fdopen"
+msgstr ""
+
+#: collect2.c:2089 collect2.c:2255
+#, fuzzy, c-format
+msgid "dup2 %d 1"
+msgstr "1."
+
+# svx/source\svdraw\svdstr.src:STR_EditShut.text
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
+#, fuzzy, c-format
+msgid "close %d"
+msgstr "Gufunga"
+
+#: collect2.c:2098 collect2.c:2264
+#, c-format
+msgid "execv %s"
+msgstr ""
+
+#: collect2.c:2152
+#, fuzzy, c-format
+msgid "init function found in object %s"
+msgstr "Umumaro Byabonetse in Igikoresho"
+
+#: collect2.c:2160
+#, fuzzy, c-format
+msgid "fini function found in object %s"
+msgstr "Umumaro Byabonetse in Igikoresho"
+
+#: collect2.c:2183 collect2.c:2313
+msgid "fclose"
+msgstr ""
+
+#: collect2.c:2216
+#, fuzzy
+msgid "cannot find 'ldd'"
+msgstr "Gushaka"
+
+#: collect2.c:2277
+#, fuzzy
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr "Ibisohoka Na:"
+
+#: collect2.c:2292
+#, fuzzy, c-format
+msgid "dynamic dependency %s not found"
+msgstr "OYA Byabonetse"
+
+#: collect2.c:2304
+#, fuzzy, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr "Kuri Gufungura"
+
+#: collect2.c:2463
+#, fuzzy, c-format
+msgid "%s: not a COFF file"
+msgstr "%s:OYA a IDOSIYE"
+
+#: collect2.c:2583
+#, fuzzy, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "%s:Gufungura Nka IDOSIYE"
+
+#: collect2.c:2641
+#, fuzzy, c-format
+msgid "library lib%s not found"
+msgstr "Isomero OYA Byabonetse"
+
+#: combine.c:12524
+#, 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:12533
+#, 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:302
+#, fuzzy
+msgid "pointer value used where a floating point value was expected"
+msgstr "Mweretsi Agaciro a Bihindagurika Akadomo Agaciro Ikitezwe:"
+
+#: convert.c:306
+#, fuzzy
+msgid "aggregate value used where a float was expected"
+msgstr "Agaciro a Kureremba Ikitezwe:"
+
+#: convert.c:331
+#, fuzzy
+msgid "conversion to incomplete type"
+msgstr "Ihindurangero Kuri Ubwoko"
+
+#: convert.c:660 convert.c:736
+#, fuzzy
+msgid "can't convert between vector values of different size"
+msgstr "GUHINDURA hagati Uduciro Bya Ingano"
+
+#: convert.c:666
+#, fuzzy
+msgid "aggregate value used where an integer was expected"
+msgstr "Agaciro Umubare wuzuye Ikitezwe:"
+
+#: convert.c:716
+#, fuzzy
+msgid "pointer value used where a complex was expected"
+msgstr "Mweretsi Agaciro a ITSINDA RY'IMIBARE C Ikitezwe:"
+
+#: convert.c:720
+#, fuzzy
+msgid "aggregate value used where a complex was expected"
+msgstr "Agaciro a ITSINDA RY'IMIBARE C Ikitezwe:"
+
+#: convert.c:742
+#, fuzzy
+msgid "can't convert value to a vector"
+msgstr "GUHINDURA Agaciro Kuri a"
+
+#: coverage.c:168
+#, fuzzy, c-format
+msgid "%qs is not a gcov data file"
+msgstr "%qsni OYA a Ibyatanzwe IDOSIYE"
+
+#: coverage.c:179
+#, fuzzy
+msgid "%qs is version %q.*s, expected version %q.*s"
+msgstr "%qsni Verisiyo S Ikitezwe: Verisiyo S"
+
+#: coverage.c:259 coverage.c:267
+#, fuzzy, c-format
+msgid "coverage mismatch for function %u while reading execution counters."
+msgstr "kugirango Umumaro"
+
+#: coverage.c:261 coverage.c:344
+#, fuzzy, c-format
+msgid "checksum is %x instead of %x"
+msgstr "ni Bya"
+
+#: coverage.c:269 coverage.c:352
+#, fuzzy, c-format
+msgid "number of counters is %d instead of %d"
+msgstr "Umubare Bya ni Bya"
+
+#: coverage.c:275
+#, fuzzy, c-format
+msgid "cannot merge separate %s counters for function %u"
+msgstr "Gukomatanya kugirango Umumaro"
+
+#: coverage.c:296
+#, c-format
+msgid "%qs has overflowed"
+msgstr ""
+
+#: coverage.c:296
+#, fuzzy, c-format
+msgid "%qs is corrupted"
+msgstr "%qsni"
+
+#: coverage.c:333
+#, fuzzy, c-format
+msgid "no coverage for function %qs found."
+msgstr "Oya kugirango Umumaro Byabonetse"
+
+#: coverage.c:341 coverage.c:349
+#, fuzzy, c-format
+msgid "coverage mismatch for function %qs while reading counter %qs."
+msgstr "kugirango Umumaro"
+
+#: coverage.c:532
+#, fuzzy, c-format
+msgid "cannot open %s"
+msgstr "Gufungura"
+
+#: coverage.c:567
+#, fuzzy, c-format
+msgid "error writing %qs"
+msgstr "Ikosa"
+
+#: cppspec.c:106
+#, fuzzy, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "\"%s\"ni OYA a Byemewe Ihitamo Kuri i"
+
+#: cppspec.c:128
+#, fuzzy
+msgid "too many input files"
+msgstr "Iyinjiza Idosiye"
+
+#: cse.c:6772
+#, fuzzy, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";;Funga Bivuye Kuri"
+
+#: diagnostic.c:168
+#, fuzzy, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d:ku Amakosa"
+
+#: diagnostic.c:228
+#, fuzzy
+msgid "compilation terminated due to -Wfatal-errors.\n"
+msgstr "Kuri Amakosa"
+
+#: diagnostic.c:237
+#, 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:246
+msgid "compilation terminated.\n"
+msgstr ""
+
+#: diagnostic.c:537
+#, fuzzy
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Ikosa"
+
+#: diagnostic.c:556
+#, fuzzy, c-format
+msgid "in %s, at %s:%d"
+msgstr "in ku"
+
+#: dominance.c:834
+#, fuzzy, c-format
+msgid "dominator of %d status unknown"
+msgstr "Bya Imimerere Kitazwi"
+
+#: dominance.c:836
+#, fuzzy, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "Bya OYA"
+
+#: dominance.c:848
+#, fuzzy, c-format
+msgid "ENTRY does not dominate bb %d"
+msgstr "OYA"
+
+#: dwarf2out.c:3388
+#, fuzzy, c-format
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr "OYA"
+
+#: emit-rtl.c:2232
+#, fuzzy
+msgid "Invalid rtl sharing found in the insn"
+msgstr "Bisangiwe Byabonetse in i"
+
+#: emit-rtl.c:2234
+msgid "Shared rtx"
+msgstr ""
+
+#: emit-rtl.c:2236
+msgid "Internal consistency failure"
+msgstr ""
+
+#: emit-rtl.c:3301
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr ""
+
+#: errors.c:133 java/jv-scan.c:272
+#, fuzzy, c-format
+msgid "abort in %s, at %s:%d"
+msgstr "Kureka in ku"
+
+#: except.c:340
+#, fuzzy
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr "Irengayobora(-) Yahagaritswe Gukoresha Kuri Gushoboza"
+
+#: except.c:2577
+#, fuzzy
+msgid "argument of %<__builtin_eh_return_regno%> must be constant"
+msgstr "Bya"
+
+#: except.c:2708
+#, fuzzy
+msgid "__builtin_eh_return not supported on this target"
+msgstr "_OYA ku iyi Intego"
+
+#: explow.c:1301
+#, fuzzy
+msgid "stack limits not supported on this target"
+msgstr "Imbibi OYA ku iyi Intego"
+
+#: final.c:1061
+#, fuzzy
+msgid "negative insn length"
+msgstr "Uburebure"
+
+#: final.c:2501
+#, fuzzy
+msgid "could not split insn"
+msgstr "OYA Gutandukanya"
+
+#: final.c:2851
+#, fuzzy
+msgid "invalid 'asm': "
+msgstr "Sibyo"
+
+#: final.c:3034
+msgid "nested assembly dialect alternatives"
+msgstr ""
+
+#: final.c:3051 final.c:3063
+msgid "unterminated assembly dialect alternative"
+msgstr ""
+
+#: final.c:3110
+#, fuzzy, c-format
+msgid "operand number missing after %%-letter"
+msgstr "Umubare Ibuze Nyuma"
+
+#: final.c:3113 final.c:3154
+#, 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:3173
+#, fuzzy, c-format
+msgid "invalid %%-code"
+msgstr "Sibyo"
+
+#: final.c:3203
+#, 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.
+#. 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:3305 vmsdbgout.c:487 config/i386/i386.c:5931
+#: config/pdp11/pdp11.c:1690
+#, fuzzy
+msgid "floating constant misused"
+msgstr "Bihindagurika"
+
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
+#: config/pdp11/pdp11.c:1737
+#, fuzzy
+msgid "invalid expression as operand"
+msgstr "Sibyo imvugo Nka"
+
+#: flow.c:494 flow.c:518 flow.c:540
+#, fuzzy
+msgid "internal consistency failure"
+msgstr "By'imbere"
+
+#: flow.c:1689
+#, fuzzy
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "Kuri Gusiba"
+
+#: fold-const.c:3220 fold-const.c:3231
+#, 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:4789 fold-const.c:4804
+#, fuzzy, c-format
+msgid "comparison is always %d"
+msgstr "ni Buri gihe"
+
+#: fold-const.c:4933
+#, fuzzy
+msgid "%<or%> of unmatched not-equal tests is always 1"
+msgstr "%<Cyangwa Bya OYA bingana ni Buri gihe 1."
+
+#: fold-const.c:4938
+#, fuzzy
+msgid "%<and%> of mutually exclusive equal-tests is always 0"
+msgstr "%<Na Bya bingana ni Buri gihe 0"
+
+#: fold-const.c:9870
+#, fuzzy
+msgid "fold check: original tree changed by fold"
+msgstr "Guhina Kugenzura... Umwimerere Byahinduwe ku Guhina"
+
+#: function.c:832 varasm.c:1584
+#, fuzzy
+msgid "%Jsize of variable %qD is too large"
+msgstr "%JsizeBya IMPINDURAGACIRO ni Binini"
+
+#: function.c:1443
+#, fuzzy
+msgid "impossible constraint in %<asm%>"
+msgstr "Imbogamizi in"
+
+#: function.c:3633
+#, fuzzy
+msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr "%Jvariable%qDku Cyangwa"
+
+#: function.c:3654
+#, fuzzy
+msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr "%Jargument%qDku Cyangwa"
+
+#: function.c:4045
+#, fuzzy
+msgid "function returns an aggregate"
+msgstr "Umumaro"
+
+#: function.c:4368
+msgid "%Junused parameter %qD"
+msgstr ""
+
+#: gcc.c:1237
+#, fuzzy, c-format
+msgid "ambiguous abbreviation %s"
+msgstr "Impine"
+
+#: gcc.c:1264
+#, fuzzy, c-format
+msgid "incomplete '%s' option"
+msgstr "Ihitamo"
+
+#: gcc.c:1275
+#, fuzzy, c-format
+msgid "missing argument to '%s' option"
+msgstr "Ibuze Kuri Ihitamo"
+
+#: gcc.c:1288
+#, fuzzy, c-format
+msgid "extraneous argument to '%s' option"
+msgstr "Kuri Ihitamo"
+
+#: gcc.c:1632
+#, fuzzy
+msgid "Using built-in specs.\n"
+msgstr "in"
+
+#: gcc.c:1815
+#, fuzzy, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr "Kuri"
+
+#: gcc.c:1924
+#, fuzzy, c-format
+msgid "Reading specs from %s\n"
+msgstr "Bivuye"
+
+#: gcc.c:2020 gcc.c:2039
+#, fuzzy, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "Nyuma Inyuguti"
+
+#: gcc.c:2047
+#, fuzzy, c-format
+msgid "could not find specs file %s\n"
+msgstr "OYA Gushaka IDOSIYE"
+
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
+#, fuzzy, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "Nyuma Inyuguti"
+
+#: gcc.c:2099
+#, fuzzy, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "OYA Byabonetse Kuri"
+
+#: gcc.c:2106
+#, fuzzy, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s:Kuri Guhindura izina Kuri"
+
+#: gcc.c:2111
+#, fuzzy, c-format
+msgid "rename spec %s to %s\n"
+msgstr "Guhindura izina Kuri"
+
+#: gcc.c:2113
+#, fuzzy, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr "ni"
+
+#: gcc.c:2126
+#, fuzzy, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "Kitazwi Komandi: Nyuma Inyuguti"
+
+#: gcc.c:2137 gcc.c:2150
+#, fuzzy, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "IDOSIYE Nyuma Inyuguti"
+
+#: gcc.c:2203
+#, fuzzy
+msgid "spec file has no spec for linking"
+msgstr "IDOSIYE Oya kugirango Impuza"
+
+#: gcc.c:2625
+#, fuzzy, c-format
+msgid "system path '%s' is not absolute"
+msgstr "Sisitemu Inzira ni OYA"
+
+#: gcc.c:2688
+#, fuzzy
+msgid "-pipe not supported"
+msgstr "-OYA"
+
+#: gcc.c:2750
+#, fuzzy
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr "Y Cyangwa N"
+
+#: gcc.c:2875
+#, 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:2893
+#, 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:3023
+#, fuzzy, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Amahitamo IDOSIYE"
+
+# crashrep/source\all\crashrep.lng:%OPTIONS_BUTTON%.text
+#: gcc.c:3024
+#, fuzzy
+msgid "Options:\n"
+msgstr "Amahitamo..."
+
+#: gcc.c:3026
+#, 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:3027
+#, fuzzy
+msgid " --help Display this information\n"
+msgstr "--Ifashayobora iyi"
+
+#: gcc.c:3028
+#, fuzzy
+msgid " --target-help Display target specific command line options\n"
+msgstr "--Intego Ifashayobora Intego Komandi: Umurongo"
+
+#: gcc.c:3030
+#, fuzzy
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr "(v Kuri Kugaragaza Komandi: Umurongo Amahitamo Bya"
+
+#: gcc.c:3031
+#, fuzzy
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr "-Byose Bya i in"
+
+#: gcc.c:3032
+#, fuzzy
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr "-i Verisiyo Bya i"
+
+#: gcc.c:3033
+#, fuzzy
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr "-i Intego"
+
+#: gcc.c:3034
+#, 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:3035
+#, 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:3036
+#, fuzzy
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr "-Gucapa IDOSIYE Izina: i Inzira Kuri Isomero"
+
+#: gcc.c:3037
+#, fuzzy
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr "-Gucapa Izina: i Inzira Kuri"
+
+#: gcc.c:3038
+#, 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:3039
+#, 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:3042
+#, fuzzy
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr "-Gucapa bushyinguro i Bifitanye isano Inzira Kuri"
+
+#: gcc.c:3043
+#, fuzzy
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr "-Amahitamo Akitso Amahitamo ku Kuri i"
+
+#: gcc.c:3044
+#, fuzzy
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr "-Amahitamo Akitso Amahitamo ku Kuri i"
+
+#: gcc.c:3045
+#, fuzzy
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr "-Amahitamo Akitso Amahitamo ku Kuri i"
+
+#: gcc.c:3046
+#, fuzzy
+msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
+msgstr "-ku Kuri i"
+
+#: gcc.c:3047
+#, fuzzy
+msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
+msgstr "-ku Kuri i"
+
+#: gcc.c:3048
+#, fuzzy
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr "-ku Kuri i"
+
+#: gcc.c:3049
+#, fuzzy
+msgid " -combine Pass multiple source files to compiler at once\n"
+msgstr "-Kuvanga Igikubo Inkomoko Idosiye Kuri ku"
+
+#: gcc.c:3050
+#, fuzzy
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr "-Kubika OYA Gusiba"
+
+#: gcc.c:3051
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr ""
+
+#: gcc.c:3052
+#, fuzzy
+msgid " -time Time the execution of each subprocess\n"
+msgstr "-Igihe i Bya"
+
+#: gcc.c:3053
+#, fuzzy
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr "-IDOSIYE in Na: i Ibigize Bya IDOSIYE"
+
+#: gcc.c:3054
+#, fuzzy
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr "-STD Bisanzwe i Iyinjiza kugirango Bisanzwe"
+
+#: gcc.c:3055
+#, fuzzy
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr "-bushyinguro bushyinguro Kuri i Gushaka"
+
+#: gcc.c:3056
+#, fuzzy
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr "-B kugirango Intego NIBA"
+
+#: gcc.c:3057
+#, fuzzy
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr "-V Verisiyo Verisiyo Umubare Verisiyo NIBA"
+
+#: gcc.c:3058
+#, fuzzy
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr "-v i Porogaramu ku i"
+
+#: gcc.c:3059
+#, fuzzy
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr "-###v Amahitamo Na Amabwiriza OYA"
+
+#: gcc.c:3060
+#, fuzzy
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr "-E OYA Gukusanya Cyangwa"
+
+#: gcc.c:3061
+#, fuzzy
+msgid " -S Compile only; do not assemble or link\n"
+msgstr "-OYA Cyangwa"
+
+#: gcc.c:3062
+#, fuzzy
+msgid " -c Compile and assemble, but do not link\n"
+msgstr "-C Na OYA"
+
+#: gcc.c:3063
+#, fuzzy
+msgid " -o <file> Place the output into <file>\n"
+msgstr "-o IDOSIYE i Ibisohoka IDOSIYE"
+
+#: gcc.c:3064
+#, 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:3071
+#, 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:3191
+#, fuzzy, c-format
+msgid "'-%c' option must have argument"
+msgstr "'-%c'Ihitamo"
+
+#: gcc.c:3213
+#, fuzzy, c-format
+msgid "couldn't run '%s': %s"
+msgstr "Gukoresha"
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3398
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr ""
+
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
+#: java/jv-scan.c:128
+#, fuzzy
+msgid "(C)"
+msgstr "(C"
+
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
+#, fuzzy, c-format
+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:3502
+#, fuzzy
+msgid "argument to '-Xlinker' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3510
+#, fuzzy
+msgid "argument to '-Xpreprocessor' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3517
+#, fuzzy
+msgid "argument to '-Xassembler' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3524
+#, fuzzy
+msgid "argument to '-l' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3545
+#, fuzzy
+msgid "argument to '-specs' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3559
+#, fuzzy
+msgid "argument to '-specs=' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3596
+#, 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:3605
+#, fuzzy
+msgid "argument to '-B' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3778
+#, fuzzy
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "Iburira Kubika"
+
+#: gcc.c:3782
+#, fuzzy
+msgid "warning: -pipe ignored because -time specified"
+msgstr "Iburira Igihe"
+
+#: gcc.c:3994
+#, fuzzy
+msgid "argument to '-x' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:4022
+#, fuzzy, c-format
+msgid "argument to '-%s' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:4083
+#, 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:4360
+#, fuzzy, c-format
+msgid "switch '%s' does not start with '-'"
+msgstr "Hindura OYA Gutangira Na:"
+
+#: gcc.c:4587
+#, fuzzy, c-format
+msgid "spec '%s' invalid"
+msgstr "Sibyo"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: gcc.c:4653
+#, fuzzy, c-format
+msgid "%s\n"
+msgstr "%s"
+
+#: gcc.c:4726
+#, fuzzy, c-format
+msgid "spec '%s' has invalid '%%0%c'"
+msgstr "Sibyo"
+
+#: gcc.c:4923
+#, fuzzy, c-format
+msgid "spec '%s' has invalid '%%W%c"
+msgstr "Sibyo"
+
+#: gcc.c:4954
+#, fuzzy, c-format
+msgid "spec '%s' has invalid '%%x%c'"
+msgstr "Sibyo"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:5149
+#, fuzzy, c-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "OYA ku Ishusho BIHUYE"
+
+#: gcc.c:5158
+#, fuzzy, c-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "Iburira Gukoresha Bya Mukoresha in"
+
+#: gcc.c:5176
+#, fuzzy, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "ni"
+
+#: gcc.c:5239
+#, fuzzy, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "Ihitamo"
+
+#: gcc.c:5318
+#, fuzzy, c-format
+msgid "unknown spec function '%s'"
+msgstr "Kitazwi Umumaro"
+
+#: gcc.c:5337
+#, fuzzy, c-format
+msgid "error in args to spec function '%s'"
+msgstr "Ikosa in Kuri Umumaro"
+
+#: gcc.c:5385
+#, fuzzy
+msgid "malformed spec function name"
+msgstr "Umumaro Izina:"
+
+#. )
+#: gcc.c:5388
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "Oya ingingo kugirango Umumaro"
+
+#: gcc.c:5407
+#, fuzzy
+msgid "malformed spec function arguments"
+msgstr "Umumaro ingingo"
+
+#: gcc.c:5646
+#, fuzzy, c-format
+msgid "braced spec '%s' is invalid at '%c'"
+msgstr "ni Sibyo ku"
+
+#: gcc.c:5734
+#, fuzzy, c-format
+msgid "braced spec body '%s' is invalid"
+msgstr "Umubiri ni Sibyo"
+
+#: gcc.c:6160
+#, fuzzy
+msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
+msgstr "Birenzeho Kuri"
+
+#: gcc.c:6170
+#, fuzzy
+msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
+msgstr "Birenzeho Kuri"
+
+#: gcc.c:6263
+#, 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:6269
+#, fuzzy, c-format
+msgid "install: %s%s\n"
+msgstr "Kwinjiza porogaramu"
+
+#: gcc.c:6270
+#, 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:6271
+#, fuzzy, c-format
+msgid "libraries: %s\n"
+msgstr "Amasomero"
+
+#: gcc.c:6328
+#, fuzzy, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr "Amabwiriza"
+
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "Intego"
+
+#: gcc.c:6345
+#, fuzzy, c-format
+msgid "Configured with: %s\n"
+msgstr "Na:"
+
+#: gcc.c:6359
+#, fuzzy, c-format
+msgid "Thread model: %s\n"
+msgstr "Urugero"
+
+#: gcc.c:6370
+#, fuzzy, c-format
+msgid "gcc version %s\n"
+msgstr "Verisiyo"
+
+#: gcc.c:6372
+#, fuzzy, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "Musomyi: Verisiyo Gukora: %s%s Verisiyo"
+
+#: gcc.c:6380
+#, fuzzy
+msgid "no input files"
+msgstr "Oya Iyinjiza Idosiye"
+
+#: gcc.c:6451 gcc.c:6514
+#, fuzzy, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s:%sOYA ku iyi Sisitemu"
+
+#: gcc.c:6460
+#, fuzzy, c-format
+msgid "spec '%s' is invalid"
+msgstr "ni Sibyo"
+
+#: gcc.c:6596
+#, fuzzy, c-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s:Iyinjiza IDOSIYE Kidakoreshwa Impuza OYA Byakozwe"
+
+#: gcc.c:6636
+#, fuzzy, c-format
+msgid "language %s not recognized"
+msgstr "Ururimi OYA"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: gcc.c:6707
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: gcc.c:6927
+#, fuzzy, c-format
+msgid "multilib spec '%s' is invalid"
+msgstr "ni Sibyo"
+
+#: gcc.c:7119
+#, fuzzy, c-format
+msgid "multilib exclusions '%s' is invalid"
+msgstr "ni Sibyo"
+
+#: gcc.c:7177 gcc.c:7318
+#, fuzzy, c-format
+msgid "multilib select '%s' is invalid"
+msgstr "Guhitamo ni Sibyo"
+
+#: gcc.c:7356
+#, fuzzy, c-format
+msgid "multilib exclusion '%s' is invalid"
+msgstr "ni Sibyo"
+
+#: gcov.c:385
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+
+#: gcov.c:386
+#, fuzzy
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr "ITEGEKONGENGA Ibisobanuro"
+
+#: gcov.c:387
+#, fuzzy
+msgid " -h, --help Print this help, then exit\n"
+msgstr "-h Ifashayobora iyi Ifashayobora Hanyuma"
+
+#: gcov.c:388
+#, fuzzy
+msgid " -v, --version Print version number, then exit\n"
+msgstr "-v Verisiyo Verisiyo Umubare Hanyuma"
+
+#: gcov.c:389
+#, fuzzy
+msgid " -a, --all-blocks Show information for every basic block\n"
+msgstr "-a Byose Ibisobanuro kugirango buri BASIC"
+
+#: gcov.c:390
+#, fuzzy
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr "-B in"
+
+#: gcov.c:391
+#, fuzzy
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr "-C Bya"
+
+#: gcov.c:393
+#, fuzzy
+msgid " -n, --no-output Do not create an output file\n"
+msgstr "-N Oya Ibisohoka OYA Kurema Ibisohoka"
+
+#: gcov.c:394
+#, 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:396
+#, fuzzy
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr "-F Umumaro kugirango"
+
+#: gcov.c:397
+#, 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:398
+#, fuzzy
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr "-P Inzira Byose"
+
+#: gcov.c:399
+#, fuzzy
+msgid " -u, --unconditional-branches Show unconditional branch counts too\n"
+msgstr "-u"
+
+#: gcov.c:400
+#, fuzzy, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr "Amabwiriza"
+
+#: gcov.c:410
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr ""
+
+#: gcov.c:414
+#, fuzzy
+msgid ""
+"This is free software; see the source for copying conditions.\n"
+"There is NO warranty; not even for MERCHANTABILITY or \n"
+"FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr "ni Kigenga i Inkomoko kugirango ni OYA ATARIIGIHARWE kugirango Cyangwa A"
+
+#: gcov.c:504
+#, fuzzy, c-format
+msgid "%s:no functions found\n"
+msgstr "%s:Oya Imimaro"
+
+#: gcov.c:525 gcov.c:553
+msgid "\n"
+msgstr ""
+
+#: gcov.c:540
+#, c-format
+msgid "%s:creating '%s'\n"
+msgstr ""
+
+#: gcov.c:544
+#, fuzzy, c-format
+msgid "%s:error writing output file '%s'\n"
+msgstr "%s:Ikosa Ibisohoka IDOSIYE"
+
+#: gcov.c:549
+#, fuzzy, c-format
+msgid "%s:could not open output file '%s'\n"
+msgstr "%s:OYA Gufungura Ibisohoka IDOSIYE"
+
+#: gcov.c:700
+#, fuzzy, c-format
+msgid "%s:cannot open graph file\n"
+msgstr "%s:Gufungura"
+
+#: gcov.c:706
+#, fuzzy, c-format
+msgid "%s:not a gcov graph file\n"
+msgstr "%s:OYA a"
+
+#: gcov.c:719
+#, fuzzy, c-format
+msgid "%s:version '%.4s', prefer '%.4s'\n"
+msgstr "%s:Verisiyo."
+
+#: gcov.c:771
+#, fuzzy, c-format
+msgid "%s:already seen blocks for '%s'\n"
+msgstr "%s:kugirango"
+
+#: gcov.c:889 gcov.c:1045
+#, c-format
+msgid "%s:corrupted\n"
+msgstr ""
+
+#: gcov.c:963
+#, fuzzy, c-format
+msgid "%s:cannot open data file\n"
+msgstr "%s:Gufungura Ibyatanzwe"
+
+#: gcov.c:968
+#, fuzzy, c-format
+msgid "%s:not a gcov data file\n"
+msgstr "%s:OYA a Ibyatanzwe"
+
+#: gcov.c:981
+#, fuzzy, c-format
+msgid "%s:version '%.4s', prefer version '%.4s'\n"
+msgstr "%s:Verisiyo."
+
+#: gcov.c:987
+#, fuzzy, c-format
+msgid "%s:stamp mismatch with graph file\n"
+msgstr "%s:Na:"
+
+#: gcov.c:1013
+#, fuzzy, c-format
+msgid "%s:unknown function '%u'\n"
+msgstr "%s:Kitazwi Umumaro"
+
+#: gcov.c:1026
+#, fuzzy, c-format
+msgid "%s:profile mismatch for '%s'\n"
+msgstr "%s:Ibijyana kugirango"
+
+#: gcov.c:1045
+#, c-format
+msgid "%s:overflowed\n"
+msgstr ""
+
+#: gcov.c:1069
+#, fuzzy, c-format
+msgid "%s:'%s' lacks entry and/or exit blocks\n"
+msgstr "%s:'%s'Icyinjijwe Na Cyangwa Gusohoka"
+
+#: gcov.c:1074
+#, fuzzy, c-format
+msgid "%s:'%s' has arcs to entry block\n"
+msgstr "%s:'%s'Uduheto Kuri Icyinjijwe"
+
+#: gcov.c:1082
+#, fuzzy, c-format
+msgid "%s:'%s' has arcs from exit block\n"
+msgstr "%s:'%s'Uduheto Bivuye Gusohoka"
+
+#: gcov.c:1290
+#, fuzzy, c-format
+msgid "%s:graph is unsolvable for '%s'\n"
+msgstr "%s:ni kugirango"
+
+#: gcov.c:1370
+#, c-format
+msgid "%s '%s'\n"
+msgstr ""
+
+#: gcov.c:1373
+#, fuzzy, c-format
+msgid "Lines executed:%s of %d\n"
+msgstr "Bya"
+
+#: gcov.c:1377
+msgid "No executable lines\n"
+msgstr ""
+
+#: gcov.c:1383
+#, fuzzy, c-format
+msgid "Branches executed:%s of %d\n"
+msgstr "Bya"
+
+#: gcov.c:1387
+#, fuzzy, c-format
+msgid "Taken at least once:%s of %d\n"
+msgstr "ku Rimwe Bya"
+
+#: gcov.c:1393
+msgid "No branches\n"
+msgstr ""
+
+#: gcov.c:1395
+#, fuzzy, c-format
+msgid "Calls executed:%s of %d\n"
+msgstr "Bya"
+
+#: gcov.c:1399
+msgid "No calls\n"
+msgstr ""
+
+#: gcov.c:1540
+#, fuzzy, c-format
+msgid "%s:no lines for '%s'\n"
+msgstr "%s:Oya Imirongo kugirango"
+
+#: gcov.c:1735
+#, c-format
+msgid "call %2d returned %s\n"
+msgstr ""
+
+#: gcov.c:1740
+#, fuzzy, c-format
+msgid "call %2d never executed\n"
+msgstr "Nta narimwe"
+
+#: gcov.c:1745
+#, c-format
+msgid "branch %2d taken %s%s\n"
+msgstr ""
+
+#: gcov.c:1749
+#, fuzzy, c-format
+msgid "branch %2d never executed\n"
+msgstr "Nta narimwe"
+
+#: gcov.c:1754
+#, c-format
+msgid "unconditional %2d taken %s\n"
+msgstr ""
+
+#: gcov.c:1757
+#, fuzzy, c-format
+msgid "unconditional %2d never executed\n"
+msgstr "Nta narimwe"
+
+#: gcov.c:1789
+#, fuzzy, c-format
+msgid "%s:cannot open source file\n"
+msgstr "%s:Gufungura Inkomoko"
+
+#: gcov.c:1799
+#, fuzzy, c-format
+msgid "%s:source file is newer than graph file '%s'\n"
+msgstr "%s:Inkomoko IDOSIYE ni IDOSIYE"
+
+#. Return if there's nothing to do, or it is too expensive.
+#: gcse.c:689
+#, fuzzy
+msgid "GCSE disabled"
+msgstr "Yahagaritswe"
+
+#. Return if there's nothing to do, or it is too expensive.
+#: gcse.c:6474
+#, fuzzy
+msgid "jump bypassing disabled"
+msgstr "Simbuka Yahagaritswe"
+
+#: gcse.c:6535
+#, fuzzy, c-format
+msgid "%s: %d basic blocks and %d edges/basic block"
+msgstr "%s:%dBASIC Na BASIC Funga"
+
+#: gcse.c:6548
+#, fuzzy, c-format
+msgid "%s: %d basic blocks and %d registers"
+msgstr "%s:%dBASIC Na"
+
+#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
+#: ggc-zone.c:1588 ggc-zone.c:1597
+#, fuzzy, c-format
+msgid "can't write PCH file: %m"
+msgstr "Kwandika IDOSIYE"
+
+#: ggc-common.c:487
+#, fuzzy, c-format
+msgid "can't get position in PCH file: %m"
+msgstr "Kubona Ibirindiro in IDOSIYE"
+
+#: ggc-common.c:497
+#, fuzzy, c-format
+msgid "can't write padding to PCH file: %m"
+msgstr "Kwandika Wuzuza: Kuri IDOSIYE"
+
+#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
+#, fuzzy, c-format
+msgid "can't read PCH file: %m"
+msgstr "Gusoma IDOSIYE"
+
+#: ggc-common.c:573
+#, fuzzy
+msgid "had to relocate PCH"
+msgstr "Kuri"
+
+#: ggc-page.c:1454
+#, fuzzy, c-format
+msgid "open /dev/zero: %m"
+msgstr "Gufungura Zeru"
+
+#: ggc-page.c:2225 ggc-page.c:2231
+#, fuzzy
+msgid "can't write PCH file"
+msgstr "Kwandika IDOSIYE"
+
+#: gimple-low.c:203
+msgid "unexpected node"
+msgstr ""
+
+#: gimplify.c:3317
+#, fuzzy, c-format
+msgid "invalid lvalue in asm output %d"
+msgstr "Sibyo in Ibisohoka"
+
+#: gimplify.c:3364
+#, fuzzy, c-format
+msgid "memory input %d is not directly addressable"
+msgstr "Ububiko Iyinjiza ni OYA"
+
+#: gimplify.c:4219
+#, fuzzy
+msgid "gimplification failed"
+msgstr "Byanze"
+
+#: global.c:371 global.c:384 global.c:398
+#, fuzzy, c-format
+msgid "%s cannot be used in asm here"
+msgstr "%sin"
+
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
+#, fuzzy, c-format
+msgid "can't open %s: %m"
+msgstr "Gufungura"
+
+#: haifa-sched.c:182
+#, fuzzy, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "Kitazwi"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#. Opening quotation mark.
+#: intl.c:58
+#, fuzzy
+msgid "`"
+msgstr "`"
+
+#. Closing quotation mark.
+#: intl.c:61
+msgid "'"
+msgstr "'"
+
+#: langhooks.c:516
+#, fuzzy
+msgid "At top level:"
+msgstr "Hejuru: urwego"
+
+#: langhooks.c:521
+#, fuzzy, c-format
+msgid "In member function %qs:"
+msgstr "Umumaro"
+
+#: langhooks.c:525
+#, fuzzy, c-format
+msgid "In function %qs:"
+msgstr "Umumaro"
+
+#. What to print when a switch has no documentation.
+#: opts.c:89
+#, fuzzy
+msgid "This switch lacks documentation"
+msgstr "Hindura"
+
+#. Eventually this should become a hard error IMO.
+#: opts.c:259
+#, fuzzy, c-format
+msgid "command line option \"%s\" is valid for %s but not for %s"
+msgstr "Komandi: Umurongo Ihitamo ni Byemewe kugirango OYA kugirango"
+
+#: opts.c:347
+#, fuzzy, c-format
+msgid "missing argument to \"%s\""
+msgstr "Ibuze Kuri"
+
+#: opts.c:357
+#, fuzzy, c-format
+msgid "argument to \"%s\" should be a non-negative integer"
+msgstr "Kuri a Umubare wuzuye"
+
+#: opts.c:426
+#, fuzzy, c-format
+msgid "unrecognized command line option \"%s\""
+msgstr "Komandi: Umurongo Ihitamo"
+
+#: opts.c:634
+#, fuzzy
+msgid "-Wuninitialized is not supported without -O"
+msgstr "-ni OYA"
+
+#: opts.c:648
+#, fuzzy
+msgid "-freorder-blocks-and-partition does not work with exceptions"
+msgstr "-Na OYA Akazi Na: Amarengayobora"
+
+#: opts.c:661
+#, fuzzy
+msgid "-freorder-blocks-and-partition does not work with -g (currently)"
+msgstr "-Na OYA Akazi Na: g"
+
+#: opts.c:821
+#, fuzzy, c-format
+msgid "structure alignment must be a small power of two, not %d"
+msgstr "Imiterere Itunganya a Gitoya UMWIKUBE Bya OYA"
+
+#: opts.c:886
+#, fuzzy, c-format
+msgid "unrecognised visibility value \"%s\""
+msgstr "Ukugaragara Agaciro"
+
+#: opts.c:938
+#, fuzzy, c-format
+msgid "unrecognized register name \"%s\""
+msgstr "Kwiyandikisha Izina:"
+
+#: opts.c:962
+#, fuzzy, c-format
+msgid "unknown tls-model \"%s\""
+msgstr "Kitazwi TLS Urugero"
+
+#: opts.c:1037
+#, fuzzy, c-format
+msgid "%s: --param arguments should be of the form NAME=VALUE"
+msgstr "%s:--ingingo Bya i Ifishi"
+
+#: opts.c:1042
+#, fuzzy, c-format
+msgid "invalid --param value %qs"
+msgstr "Sibyo Agaciro"
+
+#: opts.c:1139
+#, fuzzy
+msgid "target system does not support debug output"
+msgstr "Intego Sisitemu OYA Gushigikira Kosora amakosa Ibisohoka"
+
+#: opts.c:1146
+#, fuzzy, c-format
+msgid "debug format \"%s\" conflicts with prior selection"
+msgstr "Kosora amakosa Imiterere Na: Ihitamo"
+
+#: opts.c:1162
+#, fuzzy, c-format
+msgid "unrecognised debug output level \"%s\""
+msgstr "Kosora amakosa Ibisohoka urwego"
+
+#: opts.c:1164
+#, fuzzy, c-format
+msgid "debug output level %s is too high"
+msgstr "Kosora amakosa Ibisohoka urwego ni kirekire"
+
+#: opts.c:1183
+#, fuzzy
+msgid "The following options are language-independent:\n"
+msgstr "Amahitamo Ururimi"
+
+#: opts.c:1190
+#, fuzzy, c-format
+msgid ""
+"The %s front end recognizes the following options:\n"
+"\n"
+msgstr "Imbere Impera i Amahitamo"
+
+#: opts.c:1204
+#, fuzzy
+msgid "The --param option recognizes the following as parameters:\n"
+msgstr "Ihitamo i Nka Ibigenga"
+
+#: params.c:72
+#, fuzzy, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "Gito Agaciro Bya ni"
+
+#: params.c:77
+#, fuzzy, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "Kinini Agaciro Bya ni"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:86
+#, fuzzy, c-format
+msgid "invalid parameter %qs"
+msgstr "Ikigenderwaho sicyo"
+
+#: passes.c:1200
+#, fuzzy
+msgid "branch target register load optimization is not intended to be run twice"
+msgstr "Intego Kwiyandikisha Ibirimo ni OYA Kuri Gukoresha"
+
+#: profile.c:284
+#, fuzzy
+msgid "corrupted profile info: run_max * runs < sum_max"
+msgstr "Ibijyana Ibisobanuro"
+
+#: profile.c:290
+#, fuzzy
+msgid "corrupted profile info: sum_all is smaller than sum_max"
+msgstr "Ibijyana Ibisobanuro ni Gitoya"
+
+#: profile.c:335
+#, fuzzy, c-format
+msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
+msgstr "Ibijyana Ibisobanuro Bivuye Kuri IBARA"
+
+#: profile.c:503
+#, fuzzy, c-format
+msgid "corrupted profile info: number of iterations for basic block %d thought to be %i"
+msgstr "Ibijyana Ibisobanuro Umubare Bya Amasubiramo kugirango BASIC Funga Kuri"
+
+#: profile.c:524
+#, fuzzy, c-format
+msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i"
+msgstr "Ibijyana Ibisobanuro Umubare Bya kugirango Kuri"
+
+#: protoize.c:582
+#, fuzzy, c-format
+msgid "%s: error writing file '%s': %s\n"
+msgstr "%s:Ikosa IDOSIYE"
+
+#: protoize.c:626
+#, fuzzy, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s:Ikoresha: i Izina ry'idosiye:"
+
+#: protoize.c:629
+#, fuzzy, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s:Ikoresha: Izina ry'idosiye:"
+
+#: protoize.c:735
+#, fuzzy, c-format
+msgid "%s: warning: no read access for file '%s'\n"
+msgstr "%s:Iburira Oya Gusoma kugirango IDOSIYE"
+
+#: protoize.c:743
+#, fuzzy, c-format
+msgid "%s: warning: no write access for file '%s'\n"
+msgstr "%s:Iburira Oya Kwandika kugirango IDOSIYE"
+
+#: protoize.c:751
+#, 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:1138
+#, fuzzy, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s:Sibyo IDOSIYE Izina:"
+
+#: protoize.c:1286
+#, fuzzy, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s:%s:Kubona Imimerere"
+
+#: protoize.c:1307
+#, 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:1636
+#, fuzzy, c-format
+msgid "%s:%d: declaration of function '%s' takes different forms\n"
+msgstr "%s:%d:Bya Umumaro"
+
+#: protoize.c:1891
+#, c-format
+msgid "%s: compiling '%s'\n"
+msgstr ""
+
+#: protoize.c:1914
+#, fuzzy, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s:Tegereza"
+
+#: protoize.c:1919
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr ""
+
+#: protoize.c:1927
+#, fuzzy, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s:%sNa: Imimerere"
+
+#: protoize.c:1976
+#, fuzzy, c-format
+msgid "%s: warning: missing SYSCALLS file '%s'\n"
+msgstr "%s:Iburira Ibuze IDOSIYE"
+
+#: protoize.c:1985 protoize.c:2014
+#, fuzzy, c-format
+msgid "%s: can't read aux info file '%s': %s\n"
+msgstr "%s:Gusoma Ibisobanuro IDOSIYE"
+
+#: protoize.c:2030 protoize.c:2058
+#, 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:2086
+#, fuzzy, c-format
+msgid "%s: can't open aux info file '%s' for reading: %s\n"
+msgstr "%s:Gufungura Ibisobanuro IDOSIYE kugirango"
+
+#: protoize.c:2104
+#, fuzzy, c-format
+msgid "%s: error reading aux info file '%s': %s\n"
+msgstr "%s:Ikosa Ibisobanuro IDOSIYE"
+
+#: protoize.c:2117
+#, fuzzy, c-format
+msgid "%s: error closing aux info file '%s': %s\n"
+msgstr "%s:Ikosa Ibisobanuro IDOSIYE"
+
+#: protoize.c:2133
+#, fuzzy, c-format
+msgid "%s: can't delete aux info file '%s': %s\n"
+msgstr "%s:Gusiba Ibisobanuro IDOSIYE"
+
+#: protoize.c:2215 protoize.c:4185
+#, fuzzy, c-format
+msgid "%s: can't delete file '%s': %s\n"
+msgstr "%s:Gusiba IDOSIYE"
+
+#: protoize.c:2293
+#, fuzzy, c-format
+msgid "%s: warning: can't rename file '%s' to '%s': %s\n"
+msgstr "%s:Iburira Guhindura izina IDOSIYE Kuri"
+
+#: protoize.c:2415
+#, fuzzy, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s:Bya"
+
+#: protoize.c:2419
+#, fuzzy, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s:Bya OYA"
+
+#: protoize.c:2421
+#, fuzzy, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s:Urutonde kugirango"
+
+#: protoize.c:2454
+#, 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:2494
+#, fuzzy, c-format
+msgid "%s: %d: '%s' used but missing from SYSCALLS\n"
+msgstr "%s:%d:'%s'Ibuze Bivuye"
+
+#: protoize.c:2500
+#, fuzzy, c-format
+msgid "%s: %d: warning: no extern definition for '%s'\n"
+msgstr "%s:%d:Iburira Oya Insobanuro kugirango"
+
+#: protoize.c:2530
+#, 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:2536
+#, fuzzy, c-format
+msgid "%s: multiple static defs of '%s' in file '%s'\n"
+msgstr "%s:Igikubo Bya in IDOSIYE"
+
+#: protoize.c:2706 protoize.c:2709
+#, fuzzy, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s:%d:Iburira Inkomoko"
+
+#: protoize.c:2905
+#, fuzzy, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s:%d:Iburira Umumaro OYA"
+
+#: protoize.c:2920
+#, fuzzy, c-format
+msgid "%s: declaration of function '%s' not converted\n"
+msgstr "%s:Bya Umumaro OYA"
+
+#: protoize.c:3043
+#, fuzzy, c-format
+msgid "%s: warning: too many parameter lists in declaration of '%s'\n"
+msgstr "%s:Iburira Intonde in Bya"
+
+#: protoize.c:3064
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of '%s'\n"
+msgstr "%s:Iburira Intonde in Bya"
+
+#: protoize.c:3160
+#, fuzzy, c-format
+msgid "%s: %d: warning: found '%s' but expected '%s'\n"
+msgstr "%s:%d:Iburira Byabonetse Ikitezwe:"
+
+#: protoize.c:3335
+#, fuzzy, c-format
+msgid "%s: local declaration for function '%s' not inserted\n"
+msgstr "%s:kugirango Umumaro OYA"
+
+#: protoize.c:3362
+#, 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:3434
+#, fuzzy, c-format
+msgid "%s: global declarations for file '%s' not inserted\n"
+msgstr "%s:kugirango IDOSIYE OYA"
+
+#: protoize.c:3523 protoize.c:3553
+#, fuzzy, c-format
+msgid "%s: definition of function '%s' not converted\n"
+msgstr "%s:Insobanuro Bya Umumaro OYA"
+
+#: protoize.c:3542
+#, fuzzy, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s:%d:Iburira Insobanuro Bya OYA"
+
+#: protoize.c:3868
+#, 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:3884
+#, fuzzy, c-format
+msgid "%s: %d: warning: '%s' excluded by preprocessing\n"
+msgstr "%s:%d:Iburira ku"
+
+#: protoize.c:3887
+#, fuzzy, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s:Umumaro Insobanuro OYA"
+
+#: protoize.c:3945
+#, fuzzy, c-format
+msgid "%s: '%s' not converted\n"
+msgstr "%s:'%s'OYA"
+
+#: protoize.c:3953
+#, fuzzy, c-format
+msgid "%s: would convert file '%s'\n"
+msgstr "%s:GUHINDURA IDOSIYE"
+
+#: protoize.c:3956
+#, fuzzy, c-format
+msgid "%s: converting file '%s'\n"
+msgstr "%s:Guhindura.... IDOSIYE"
+
+#: protoize.c:3966
+#, fuzzy, c-format
+msgid "%s: can't get status for file '%s': %s\n"
+msgstr "%s:Kubona Imimerere kugirango IDOSIYE"
+
+#: protoize.c:4008
+#, fuzzy, c-format
+msgid "%s: can't open file '%s' for reading: %s\n"
+msgstr "%s:Gufungura IDOSIYE kugirango"
+
+#: protoize.c:4023
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s: error reading input file '%s': %s\n"
+msgstr "%s:Ikosa Iyinjiza IDOSIYE"
+
+#: protoize.c:4057
+#, fuzzy, c-format
+msgid "%s: can't create/open clean file '%s': %s\n"
+msgstr "%s:Kurema Gufungura GUSUKURA IDOSIYE"
+
+#: protoize.c:4162
+#, fuzzy, c-format
+msgid "%s: warning: file '%s' already saved in '%s'\n"
+msgstr "%s:Iburira IDOSIYE in"
+
+#: protoize.c:4170
+#, fuzzy, c-format
+msgid "%s: can't link file '%s' to '%s': %s\n"
+msgstr "%s:Ihuza IDOSIYE Kuri"
+
+#: protoize.c:4200
+#, fuzzy, c-format
+msgid "%s: can't create/open output file '%s': %s\n"
+msgstr "%s:Kurema Gufungura Ibisohoka IDOSIYE"
+
+#: protoize.c:4233
+#, fuzzy, c-format
+msgid "%s: can't change mode of file '%s': %s\n"
+msgstr "%s:Guhindura>> Ubwoko Bya IDOSIYE"
+
+#: protoize.c:4406
+#, fuzzy, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s:Kubona bushyinguro"
+
+#: protoize.c:4504
+#, fuzzy, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s:Iyinjiza IDOSIYE Amazina C Imigereka"
+
+#: reg-stack.c:622
+#, fuzzy, c-format
+msgid "output constraint %d must specify a single register"
+msgstr "Ibisohoka Imbogamizi a UMWE Kwiyandikisha"
+
+#: reg-stack.c:632
+#, fuzzy, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "Ibisohoka Imbogamizi Na:"
+
+#: reg-stack.c:655
+#, fuzzy
+msgid "output regs must be grouped at top of stack"
+msgstr "Ibisohoka ku Hejuru: Bya"
+
+#: reg-stack.c:692
+#, fuzzy
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr "ku Hejuru: Bya"
+
+#: reg-stack.c:711
+#, fuzzy
+msgid "output operand %d must use %<&%> constraint"
+msgstr "Ibisohoka Gukoresha Imbogamizi"
+
+#: regclass.c:766
+#, fuzzy, c-format
+msgid "can't use '%s' as a %s register"
+msgstr "Gukoresha Nka a Kwiyandikisha"
+
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
+#, fuzzy, c-format
+msgid "unknown register name: %s"
+msgstr "Kitazwi Kwiyandikisha Izina:"
+
+#: regclass.c:791
+#, fuzzy
+msgid "global register variable follows a function definition"
+msgstr "Kwiyandikisha IMPINDURAGACIRO a Umumaro Insobanuro"
+
+#: regclass.c:795
+#, fuzzy
+msgid "register used for two global register variables"
+msgstr "Kwiyandikisha kugirango Kwiyandikisha Ibihinduka"
+
+#: regclass.c:800
+#, fuzzy
+msgid "call-clobbered register used for global register variable"
+msgstr "Kwiyandikisha kugirango Kwiyandikisha IMPINDURAGACIRO"
+
+#: regrename.c:1872
+#, fuzzy, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr "kugirango ubusa"
+
+#: regrename.c:1884
+#, fuzzy, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr "in"
+
+#: regrename.c:1887
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr ""
+
+#: regrename.c:1899
+#, fuzzy, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr "ubusa in"
+
+#: reload.c:1270
+#, fuzzy
+msgid "cannot reload integer constant operand in %<asm%>"
+msgstr "Kongera Gutangiza Umubare wuzuye in"
+
+#: reload.c:1293
+#, fuzzy
+msgid "impossible register constraint in %<asm%>"
+msgstr "Kwiyandikisha Imbogamizi in"
+
+#: reload.c:3535
+#, fuzzy
+msgid "%<&%> constraint used with no register class"
+msgstr "%<&%>Imbogamizi Na: Oya Kwiyandikisha ishuri"
+
+#: reload.c:3705
+#, fuzzy
+msgid "unable to generate reloads for:"
+msgstr "Kuri kugirango"
+
+#: reload.c:3706 reload.c:3938
+#, fuzzy
+msgid "inconsistent operand constraints in an %<asm%>"
+msgstr "in"
+
+#: reload1.c:1211
+#, fuzzy
+msgid "frame size too large for reliable stack checking"
+msgstr "Ikadiri Ingano Binini kugirango"
+
+#: reload1.c:1214
+#, fuzzy
+msgid "try reducing the number of local variables"
+msgstr "i Umubare Bya Ibihinduka"
+
+#: reload1.c:1865
+#, fuzzy
+msgid "can't find a register in class %qs while reloading %<asm%>"
+msgstr "Gushaka a Kwiyandikisha in ishuri"
+
+#: reload1.c:1870
+#, fuzzy, c-format
+msgid "unable to find a register to spill in class %qs"
+msgstr "Kuri Gushaka a Kwiyandikisha Kuri in ishuri"
+
+#: reload1.c:1872
+#, fuzzy
+msgid "this is the insn:"
+msgstr "iyi ni i"
+
+#: reload1.c:3863
+#, fuzzy
+msgid "%<asm%> operand requires impossible reload"
+msgstr "%<Kongera Gutangiza"
+
+#. It's the compiler's fault.
+#: reload1.c:4982
+#, fuzzy
+msgid "could not find a spill register"
+msgstr "OYA Gushaka a Kwiyandikisha"
+
+#: reload1.c:4987
+#, fuzzy
+msgid "%<asm%> operand constraint incompatible with operand size"
+msgstr "%<Imbogamizi Na: Ingano"
+
+#. It's the compiler's fault.
+#: reload1.c:6614
+#, fuzzy
+msgid "VOIDmode on an output"
+msgstr "ku Ibisohoka"
+
+#: reload1.c:6615
+#, fuzzy
+msgid "output operand is constant in %<asm%>"
+msgstr "Ibisohoka ni in"
+
+#: rtl-error.c:128
+msgid "unrecognizable insn:"
+msgstr ""
+
+#: rtl-error.c:130
+#, fuzzy
+msgid "insn does not satisfy its constraints:"
+msgstr "OYA"
+
+#: rtl.c:471
+#, 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:481
+#, 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:491
+#, 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:500
+#, fuzzy, c-format
+msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: ITEGEKONGENGA in ku"
+
+#: rtl.c:510
+#, 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:521
+#, 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:532
+#, 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:317
+#, fuzzy
+msgid "output operand constraint lacks %<=%>"
+msgstr "Ibisohoka Imbogamizi"
+
+#: stmt.c:332
+#, fuzzy, c-format
+msgid "output constraint %qc for operand %d is not at the beginning"
+msgstr "Ibisohoka Imbogamizi kugirango ni OYA ku i Itangiriro"
+
+#: stmt.c:355
+#, fuzzy
+msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
+msgstr "Imbogamizi Kirimo Cyangwa"
+
+#: stmt.c:362 stmt.c:461
+#, fuzzy
+msgid "%<%%%> constraint used with last operand"
+msgstr "%<%%%>Imbogamizi Na: Iheruka"
+
+#: stmt.c:381
+#, fuzzy
+msgid "matching constraint not valid in output operand"
+msgstr "Imbogamizi OYA Byemewe in Ibisohoka"
+
+#: stmt.c:452
+#, fuzzy, c-format
+msgid "input operand constraint contains %qc"
+msgstr "Iyinjiza Imbogamizi Kirimo"
+
+#: stmt.c:494
+#, fuzzy
+msgid "matching constraint references invalid operand number"
+msgstr "Imbogamizi Indango Sibyo Umubare"
+
+#: stmt.c:532
+#, fuzzy, c-format
+msgid "invalid punctuation %qc in constraint"
+msgstr "Sibyo in Imbogamizi"
+
+#: stmt.c:556
+#, fuzzy
+msgid "matching constraint does not allow a register"
+msgstr "Imbogamizi OYA Kwemerera a Kwiyandikisha"
+
+#: stmt.c:584
+#, fuzzy, c-format
+msgid "asm-specifier for variable %qs conflicts with asm clobber list"
+msgstr "kugirango IMPINDURAGACIRO Na: Urutonde"
+
+#: stmt.c:673
+#, fuzzy
+msgid "unknown register name %qs in %<asm%>"
+msgstr "Kitazwi Kwiyandikisha Izina: in"
+
+#: stmt.c:681
+#, fuzzy
+msgid "PIC register %qs clobbered in %<asm%>"
+msgstr "Kwiyandikisha in"
+
+#: stmt.c:728
+#, fuzzy
+msgid "more than %d operands in %<asm%>"
+msgstr "Birenzeho in"
+
+#: stmt.c:791
+#, fuzzy, c-format
+msgid "output number %d not directly addressable"
+msgstr "Ibisohoka Umubare OYA"
+
+#: stmt.c:870
+#, fuzzy
+msgid "asm operand %d probably doesn%'t match constraints"
+msgstr "T BIHUYE"
+
+#: stmt.c:880
+#, 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:1027
+#, fuzzy
+msgid "asm clobber conflict with output operand"
+msgstr "Na: Ibisohoka"
+
+#: stmt.c:1032
+#, fuzzy
+msgid "asm clobber conflict with input operand"
+msgstr "Na: Iyinjiza"
+
+#: stmt.c:1109
+#, fuzzy
+msgid "too many alternatives in %<asm%>"
+msgstr "in"
+
+#: stmt.c:1121
+#, fuzzy
+msgid "operand constraints for %<asm%> differ in number of alternatives"
+msgstr "kugirango in Umubare Bya"
+
+#: stmt.c:1174
+#, fuzzy, c-format
+msgid "duplicate asm operand name %qs"
+msgstr "Gusubiramo Izina:"
+
+#: stmt.c:1272
+#, fuzzy
+msgid "missing close brace for named operand"
+msgstr "Ibuze Gufunga kugirango"
+
+#: stmt.c:1300
+#, fuzzy, c-format
+msgid "undefined named operand %qs"
+msgstr "kidasobanuye"
+
+#: stmt.c:1465
+#, fuzzy
+msgid "%Hvalue computed is not used"
+msgstr "%Hvalueni OYA"
+
+#: stor-layout.c:152
+#, fuzzy
+msgid "type size can%'t be explicitly evaluated"
+msgstr "Ubwoko Ingano T"
+
+#: stor-layout.c:154
+#, fuzzy
+msgid "variable-size type declared outside of any function"
+msgstr "IMPINDURAGACIRO Ingano Ubwoko Hanze Bya Umumaro"
+
+#: stor-layout.c:458
+#, fuzzy
+msgid "%Jsize of %qD is %d bytes"
+msgstr "%JsizeBya ni Bayite"
+
+#: stor-layout.c:460
+#, fuzzy
+msgid "%Jsize of %qD is larger than %d bytes"
+msgstr "%JsizeBya ni Kinini Bayite"
+
+#: stor-layout.c:844
+#, fuzzy
+msgid "%Jpacked attribute causes inefficient alignment for %qD"
+msgstr "%JpackedIkiranga Itunganya kugirango"
+
+#: stor-layout.c:847
+#, fuzzy
+msgid "%Jpacked attribute is unnecessary for %qD"
+msgstr "%JpackedIkiranga ni kugirango"
+
+#: stor-layout.c:863
+#, fuzzy
+msgid "%Jpadding struct to align %qD"
+msgstr "%JpaddingKuri Gutondeka"
+
+#: stor-layout.c:1205
+#, fuzzy
+msgid "padding struct size to alignment boundary"
+msgstr "Wuzuza: Ingano Kuri Itunganya"
+
+#: stor-layout.c:1235
+#, fuzzy, c-format
+msgid "packed attribute causes inefficient alignment for %qs"
+msgstr "Ikiranga Itunganya kugirango"
+
+#: stor-layout.c:1238
+#, fuzzy, c-format
+msgid "packed attribute is unnecessary for %qs"
+msgstr "Ikiranga ni kugirango"
+
+#: stor-layout.c:1243
+#, fuzzy
+msgid "packed attribute causes inefficient alignment"
+msgstr "Ikiranga Itunganya"
+
+#: stor-layout.c:1245
+#, fuzzy
+msgid "packed attribute is unnecessary"
+msgstr "Ikiranga ni"
+
+#: targhooks.c:96
+#, fuzzy
+msgid "__builtin_saveregs not supported by this target"
+msgstr "_OYA ku iyi Intego"
+
+#: timevar.c:401
+#, 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:451
+#, fuzzy
+msgid " TOTAL :"
+msgstr "Igiteranyo"
+
+#: timevar.c:479
+#, fuzzy, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "Igihe in"
+
+#: tlink.c:381
+#, c-format
+msgid "collect: reading %s\n"
+msgstr ""
+
+#: tlink.c:475
+#, fuzzy, c-format
+msgid "repository file '%s' does not contain command-line arguments"
+msgstr "IDOSIYE OYA Komandi: Umurongo ingingo"
+
+#: tlink.c:525
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr ""
+
+#: tlink.c:696
+#, fuzzy, c-format
+msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
+msgstr "'%s'Kuri OYA Cyangwa"
+
+#: tlink.c:705
+#, fuzzy, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr "in"
+
+#: tlink.c:751
+#, c-format
+msgid "collect: relinking\n"
+msgstr ""
+
+#: tlink.c:760
+#, fuzzy, c-format
+msgid "ld returned %d exit status"
+msgstr "Gusohoka Imimerere"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: toplev.c:469
+#, fuzzy, c-format
+msgid "%s "
+msgstr "%s"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: toplev.c:471
+#, fuzzy, c-format
+msgid " %s"
+msgstr "%s"
+
+#: toplev.c:536
+#, fuzzy, c-format
+msgid "invalid option argument %qs"
+msgstr "Sibyo Ihitamo"
+
+#: toplev.c:606
+#, fuzzy
+msgid "unrecoverable error"
+msgstr "Ikosa"
+
+#: toplev.c:626
+#, fuzzy, c-format
+msgid "getting core file size maximum limit: %m"
+msgstr "IDOSIYE Ingano Kinini"
+
+#: toplev.c:629
+#, fuzzy, c-format
+msgid "setting core file size limit to maximum: %m"
+msgstr "Igenamiterere IDOSIYE Ingano Kuri Kinini"
+
+#: toplev.c:850
+#, fuzzy
+msgid "%J%qF declared %<static%> but never defined"
+msgstr "%J%qFNta narimwe"
+
+#: toplev.c:876
+#, fuzzy
+msgid "%J%qD defined but not used"
+msgstr "%J%qDOYA"
+
+#: toplev.c:899 toplev.c:922
+#, fuzzy, c-format
+msgid "%qs is deprecated (declared at %s:%d)"
+msgstr "%qsni Bitemewe. ku"
+
+#: toplev.c:925
+#, fuzzy, c-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "Ubwoko ni Bitemewe. ku"
+
+#: toplev.c:931
+#, fuzzy, c-format
+msgid "%qs is deprecated"
+msgstr "%qsni Bitemewe."
+
+#: toplev.c:933
+#, fuzzy
+msgid "type is deprecated"
+msgstr "Ubwoko ni Bitemewe."
+
+#: toplev.c:1087
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr "Amahitamo"
+
+#: toplev.c:1101 toplev.c:1120
+#, fuzzy, c-format
+msgid " -m%-23s [undocumented]\n"
+msgstr "-M"
+
+#: toplev.c:1129
+#, fuzzy, c-format
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr "Intego Amahitamo Nka"
+
+#: toplev.c:1131
+#, fuzzy, c-format
+msgid " They exist, but they are not documented.\n"
+msgstr "OYA"
+
+#: toplev.c:1175
+#, fuzzy, c-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr "Ihitamo"
+
+#. Handle -mfix-and-continue.
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
+#: config/rs6000/darwin.h:106
+#, fuzzy, c-format
+msgid "invalid option %qs"
+msgstr "Sibyo Ihitamo"
+
+#: toplev.c:1252
+#, 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:1259
+#, 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:1311
+#, fuzzy
+msgid "options passed: "
+msgstr "Amahitamo"
+
+#: toplev.c:1340
+#, fuzzy
+msgid "options enabled: "
+msgstr "Amahitamo Bikora"
+
+#: toplev.c:1414
+#, fuzzy
+msgid "can%'t open %s for writing: %m"
+msgstr "T Gufungura kugirango"
+
+#: toplev.c:1492 config/sh/sh.c:7334
+#, fuzzy
+msgid "created and used with different settings of -fpic"
+msgstr "Byaremwe Na Na: Amagenamiterere Bya"
+
+#: toplev.c:1494 config/sh/sh.c:7336
+#, fuzzy
+msgid "created and used with different settings of -fpie"
+msgstr "Byaremwe Na Na: Amagenamiterere Bya"
+
+#: toplev.c:1545 config/sh/sh.c:7386
+#, fuzzy, c-format
+msgid "created and used with differing settings of '-m%s'"
+msgstr "Byaremwe Na Na: Amagenamiterere Bya M"
+
+#: toplev.c:1548 config/sh/sh.c:7389
+msgid "out of memory"
+msgstr "Ububiko bwarenzwe"
+
+#: toplev.c:1756
+#, fuzzy
+msgid "instruction scheduling not supported on this target machine"
+msgstr "OYA ku iyi Intego"
+
+#: toplev.c:1760
+#, fuzzy
+msgid "this target machine does not have delayed branches"
+msgstr "iyi Intego OYA"
+
+#: toplev.c:1764
+#, fuzzy
+msgid "value-based profiling not yet implemented in trees."
+msgstr "Agaciro OYA in"
+
+#: toplev.c:1777
+#, fuzzy, c-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr "-F OYA ku iyi Intego"
+
+#: toplev.c:1851
+#, fuzzy, c-format
+msgid "target system does not support the \"%s\" debug format"
+msgstr "Intego Sisitemu OYA Gushigikira i Kosora amakosa Imiterere"
+
+#: toplev.c:1863
+#, fuzzy
+msgid "variable tracking requested, but useless unless producing debug info"
+msgstr "IMPINDURAGACIRO Kosora amakosa Ibisobanuro"
+
+#: toplev.c:1866
+#, fuzzy
+msgid "variable tracking requested, but not supported by this debug format"
+msgstr "IMPINDURAGACIRO OYA ku iyi Kosora amakosa Imiterere"
+
+#: toplev.c:1886
+#, fuzzy
+msgid "can%'t open %s: %m"
+msgstr "T Gufungura"
+
+#: toplev.c:1893
+#, fuzzy
+msgid "-ffunction-sections not supported for this target"
+msgstr "-Ibyatoranyijwe OYA kugirango iyi Intego"
+
+#: toplev.c:1898
+#, fuzzy
+msgid "-fdata-sections not supported for this target"
+msgstr "-Ibyatoranyijwe OYA kugirango iyi Intego"
+
+#: toplev.c:1905
+#, fuzzy
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr "-Ibyatoranyijwe Yahagaritswe"
+
+#: toplev.c:1912
+#, fuzzy
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "-OYA kugirango iyi Intego"
+
+#: toplev.c:1918
+#, fuzzy
+msgid "-fspeculative-prefetching not supported for this target"
+msgstr "-OYA kugirango iyi Intego"
+
+#: toplev.c:1924
+#, fuzzy
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr "-OYA kugirango iyi Intego Werurwe"
+
+#: toplev.c:1930
+#, fuzzy
+msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
+msgstr "-OYA kugirango iyi Intego Werurwe"
+
+#: toplev.c:1939
+#, fuzzy
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "-ni OYA Na:"
+
+#: toplev.c:1945
+#, fuzzy
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr "-Ibyatoranyijwe Gicurasi ku"
+
+#: toplev.c:2057
+#, fuzzy, c-format
+msgid "error writing to %s: %m"
+msgstr "Ikosa Kuri"
+
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
+#, fuzzy, c-format
+msgid "error closing %s: %m"
+msgstr "Ikosa"
+
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
+#, fuzzy
+msgid "%Hwill never be executed"
+msgstr "%HwillNta narimwe"
+
+#: tree-cfg.c:3289
+#, fuzzy
+msgid "SSA name in freelist but still referenced"
+msgstr "Izina: in"
+
+#: tree-cfg.c:3299
+#, fuzzy
+msgid "GIMPLE register modified with BIT_FIELD_REF"
+msgstr "Kwiyandikisha Byahinduwe Na:"
+
+#: tree-cfg.c:3327
+#, fuzzy
+msgid "address taken, but ADDRESSABLE bit not set"
+msgstr "Aderesi OYA Gushyiraho"
+
+#: tree-cfg.c:3336
+#, fuzzy
+msgid "non-boolean used in condition"
+msgstr "Icyungo in Ibisabwa"
+
+#: tree-cfg.c:3391
+#, fuzzy
+msgid "Invalid reference prefix."
+msgstr "Indango Imbanziriza"
+
+#: tree-cfg.c:3456
+#, fuzzy
+msgid "Is not a valid GIMPLE statement."
+msgstr "OYA a Byemewe Inyandiko"
+
+#: tree-cfg.c:3476
+#, fuzzy
+msgid "Statement marked for throw, but doesn%'t."
+msgstr "cy/ byagarajwe kugirango T"
+
+#: tree-cfg.c:3481
+#, fuzzy
+msgid "Statement marked for throw in middle of block."
+msgstr "cy/ byagarajwe kugirango in Hagati Bya Funga"
+
+#: tree-cfg.c:3585
+#, fuzzy
+msgid "PHI def is not a GIMPLE value"
+msgstr "ni OYA a Agaciro"
+
+#: tree-cfg.c:3601 tree-cfg.c:3617
+#, fuzzy
+msgid "Incorrect sharing of tree nodes"
+msgstr "Bisangiwe Bya"
+
+#: tree-cfg.c:3626
+#, fuzzy
+msgid "verify_stmts failed."
+msgstr "Byanze"
+
+#: tree-cfg.c:3647
+#, fuzzy
+msgid "ENTRY_BLOCK has a statement list associated with it\n"
+msgstr "a Inyandiko Urutonde Na:"
+
+#: tree-cfg.c:3653
+#, fuzzy
+msgid "EXIT_BLOCK has a statement list associated with it\n"
+msgstr "a Inyandiko Urutonde Na:"
+
+#: tree-cfg.c:3660
+#, fuzzy, c-format
+msgid "Fallthru to exit from bb %d\n"
+msgstr "Kuri Gusohoka Bivuye"
+
+#: tree-cfg.c:3682
+#, fuzzy, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr "Akarango ni OYA Itangira in a Bya Uturango... in"
+
+#: tree-cfg.c:3691
+#, fuzzy, c-format
+msgid "Label %s to block does not match in bb %d\n"
+msgstr "Kuri Funga OYA BIHUYE in"
+
+#: tree-cfg.c:3700
+#, fuzzy, c-format
+msgid "Label %s has incorrect context in bb %d\n"
+msgstr "Imvugiro in"
+
+#: tree-cfg.c:3714
+#, fuzzy, c-format
+msgid "Control flow in the middle of basic block %d\n"
+msgstr "in i Hagati Bya BASIC Funga"
+
+#: tree-cfg.c:3724
+#, fuzzy, c-format
+msgid "Label %s in the middle of basic block %d\n"
+msgstr "in i Hagati Bya BASIC Funga"
+
+#: tree-cfg.c:3741
+#, fuzzy, c-format
+msgid "Fallthru edge after a control statement in bb %d \n"
+msgstr "Nyuma a Igenzura Inyandiko in"
+
+#: tree-cfg.c:3756
+#, fuzzy, c-format
+msgid "Structured COND_EXPR at the end of bb %d\n"
+msgstr "ku i Impera Bya"
+
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
+#, fuzzy, c-format
+msgid "Wrong outgoing edge flags at end of bb %d\n"
+msgstr "Amabendera ku Impera Bya"
+
+#: tree-cfg.c:3777
+#, fuzzy
+msgid "%<then%> label does not match edge at end of bb %d\n"
+msgstr "%<Hanyuma Akarango OYA BIHUYE ku Impera Bya"
+
+#: tree-cfg.c:3785
+#, fuzzy
+msgid "%<else%> label does not match edge at end of bb %d\n"
+msgstr "%<Ikindi Akarango OYA BIHUYE ku Impera Bya"
+
+#: tree-cfg.c:3795
+#, fuzzy, c-format
+msgid "Explicit goto at end of bb %d\n"
+msgstr "ku Impera Bya"
+
+#: tree-cfg.c:3824
+#, fuzzy, c-format
+msgid "Return edge does not point to exit in bb %d\n"
+msgstr "OYA Akadomo Kuri Gusohoka in"
+
+#: tree-cfg.c:3857
+#, fuzzy
+msgid "Found default case not at end of case vector"
+msgstr "Mburabuzi OYA ku Impera Bya"
+
+#: tree-cfg.c:3863
+#, fuzzy
+msgid ""
+"Case labels not sorted:\n"
+" "
+msgstr "Uturango... OYA bishunguwe"
+
+#: tree-cfg.c:3874
+#, fuzzy
+msgid "No default case found at end of case vector"
+msgstr "Mburabuzi Byabonetse ku Impera Bya"
+
+#: tree-cfg.c:3882
+#, c-format
+msgid "Extra outgoing edge %d->%d\n"
+msgstr ""
+
+#: tree-cfg.c:3904
+#, c-format
+msgid "Missing edge %i->%i"
+msgstr ""
+
+#: tree-cfg.c:5707
+#, fuzzy
+msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
+msgstr "%Jfunctionkugirango Ikiranga"
+
+#: tree-cfg.c:5734 tree-cfg.c:5738
+#, fuzzy
+msgid "%H%<noreturn%> function does return"
+msgstr "%H%<Umumaro Garuka"
+
+#: tree-cfg.c:5759 tree-cfg.c:5764
+#, fuzzy
+msgid "%Hcontrol reaches end of non-void function"
+msgstr "%HcontrolImpera Bya Umumaro"
+
+#: tree-dump.c:849
+#, fuzzy, c-format
+msgid "could not open dump file %qs: %s"
+msgstr "OYA Gufungura IDOSIYE"
+
+#: tree-dump.c:965
+#, fuzzy
+msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
+msgstr "Kitazwi Ihitamo S in"
+
+#: tree-inline.c:969
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
+msgstr "%Jfunction%qFNta narimwe ikoresha i Ikiranga"
+
+#: tree-inline.c:981
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses setjmp"
+msgstr "%Jfunction%qFNta narimwe"
+
+#: tree-inline.c:995
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
+msgstr "%Jfunction%qFNta narimwe IMPINDURAGACIRO Intonde"
+
+#: tree-inline.c:1006
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
+msgstr "%Jfunction%qFNta narimwe Irengayobora(-)"
+
+#: tree-inline.c:1013
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
+msgstr "%Jfunction%qFNta narimwe"
+
+#: tree-inline.c:1032
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
+msgstr "%Jfunction%qFNta narimwe Kirimo a"
+
+#: tree-inline.c:1046
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
+msgstr "%Jfunction%qFNta narimwe a"
+
+#: tree-inline.c:1071
+#, fuzzy
+msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
+msgstr "%Jfunction%qFNta narimwe IMPINDURAGACIRO Ibihinduka"
+
+#: tree-inline.c:1495
+#, fuzzy
+msgid "originally indirect function call not considered for inlining"
+msgstr "BUZIGUYE Umumaro OYA kugirango"
+
+#: tree-inline.c:1505 tree-inline.c:1513
+#, fuzzy
+msgid "%Jinlining failed in call to %qF: %s"
+msgstr "%JinliningByanze in Kuri"
+
+#: tree-inline.c:1506 tree-inline.c:1514
+#, fuzzy
+msgid "called from here"
+msgstr "Bivuye"
+
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "Igenzura Gicurasi Impera Bya Umumaro"
+
+#: tree-mudflap.c:857
+#, fuzzy
+msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
+msgstr "OYA kugirango"
+
+#: tree-mudflap.c:1048
+#, fuzzy, c-format
+msgid "mudflap cannot track %qs in stub function"
+msgstr "in Umumaro"
+
+#: tree-mudflap.c:1279
+#, fuzzy, c-format
+msgid "mudflap cannot track unknown size extern %qs"
+msgstr "Kitazwi Ingano"
+
+#: tree-nomudflap.c:51
+#, fuzzy
+msgid "mudflap: this language is not supported"
+msgstr "iyi Ururimi ni OYA"
+
+#: tree-optimize.c:720
+#, fuzzy
+msgid "%Jsize of return value of %qD is %u bytes"
+msgstr "%JsizeBya Garuka Agaciro Bya ni Bayite"
+
+#: tree-optimize.c:723
+#, fuzzy
+msgid "%Jsize of return value of %qD is larger than %wd bytes"
+msgstr "%JsizeBya Garuka Agaciro Bya ni Kinini Bayite"
+
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
+#: tree-ssa-live.c:417 tree-ssa-live.c:1799
+msgid "SSA corruption"
+msgstr ""
+
+#: tree-outof-ssa.c:2270
+#, fuzzy, c-format
+msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
+msgstr "OYA Byasohowe ku"
+
+#: tree-outof-ssa.c:2276
+#, fuzzy, c-format
+msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
+msgstr "OYA Byasohowe ku"
+
+#: tree-outof-ssa.c:2283
+#, fuzzy, c-format
+msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
+msgstr "OYA Byasohowe ku"
+
+#: tree-outof-ssa.c:2289
+#, fuzzy, c-format
+msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
+msgstr "OYA Byasohowe ku"
+
+#: tree-profile.c:111 tree-profile.c:127 tree-profile.c:143 tree-profile.c:160
+msgid "unimplemented functionality"
+msgstr ""
+
+#: tree-ssa-operands.c:1273
+#, fuzzy
+msgid "internal error"
+msgstr "Ikosa ry'imbere"
+
+#: tree-ssa.c:113
+#, fuzzy
+msgid "Expected an SSA_NAME object"
+msgstr "Itegerejwe Igikoresho"
+
+#: tree-ssa.c:119
+#, fuzzy
+msgid "Type mismatch between an SSA_NAME and its symbol."
+msgstr "hagati Na IKIMENYETSO"
+
+#: tree-ssa.c:125
+#, fuzzy
+msgid "Found an SSA_NAME that had been released into the free pool"
+msgstr "i Kigenga Itsinda"
+
+#: tree-ssa.c:131
+#, fuzzy
+msgid "Found a virtual definition for a GIMPLE register"
+msgstr "a Kitaboneka Insobanuro kugirango a Kwiyandikisha"
+
+#: tree-ssa.c:137
+#, fuzzy
+msgid "Found a real definition for a non-register"
+msgstr "a Insobanuro kugirango a Kwiyandikisha"
+
+#: tree-ssa.c:166
+#, fuzzy, c-format
+msgid "SSA_NAME created in two different blocks %i and %i"
+msgstr "Byaremwe in Na"
+
+#: tree-ssa.c:175
+#, fuzzy
+msgid "SSA_NAME_DEF_STMT is wrong"
+msgstr "ni"
+
+#: tree-ssa.c:227
+#, fuzzy
+msgid "Missing definition"
+msgstr "Insobanuro"
+
+#: tree-ssa.c:233
+#, fuzzy, c-format
+msgid "Definition in block %i does not dominate use in block %i"
+msgstr "in Funga OYA Gukoresha in Funga"
+
+#: tree-ssa.c:241
+#, fuzzy, c-format
+msgid "Definition in block %i follows the use"
+msgstr "in Funga i Gukoresha"
+
+#: tree-ssa.c:248
+#, fuzzy
+msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
+msgstr "Gushyiraho"
+
+#: tree-ssa.c:280
+#, fuzzy
+msgid "Incoming edge count does not match number of PHI arguments\n"
+msgstr "IBARA OYA BIHUYE Umubare Bya"
+
+#: tree-ssa.c:293
+#, fuzzy, c-format
+msgid "PHI argument is missing for edge %d->%d\n"
+msgstr "ni Ibuze kugirango"
+
+#: tree-ssa.c:302
+#, fuzzy
+msgid "PHI argument is not SSA_NAME, or invariant"
+msgstr "ni OYA Cyangwa"
+
+#: tree-ssa.c:314
+#, fuzzy, c-format
+msgid "Wrong edge %d->%d for PHI argument\n"
+msgstr "kugirango"
+
+#: tree-ssa.c:364
+#, fuzzy
+msgid "Non-addressable variable inside an alias set."
+msgstr "IMPINDURAGACIRO Mo Imbere Irihimbano Gushyiraho"
+
+#: tree-ssa.c:382
+#, fuzzy
+msgid "Addressable variable that is an alias tag but is not in any alias set."
+msgstr "IMPINDURAGACIRO ni Irihimbano Itagi: ni OYA in Irihimbano Gushyiraho"
+
+#: tree-ssa.c:392
+#, fuzzy
+msgid "verify_flow_insensitive_alias_info failed."
+msgstr "Byanze"
+
+#: tree-ssa.c:434
+#, fuzzy
+msgid "Dereferenced pointers should have a name or a type tag"
+msgstr "a Izina: Cyangwa a Ubwoko Itagi:"
+
+#: tree-ssa.c:442
+#, fuzzy
+msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
+msgstr "Na: a Ububiko Itagi: Utudomo Kuri Cyangwa Akadomo Kuri"
+
+#: tree-ssa.c:450
+#, fuzzy
+msgid "Pointer escapes but its name tag is not call-clobbered."
+msgstr "Izina: Itagi: ni OYA"
+
+#: tree-ssa.c:459
+#, fuzzy
+msgid "verify_flow_sensitive_alias_info failed."
+msgstr "Byanze"
+
+#: tree-ssa.c:535
+#, fuzzy
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr "Gushyiraho Bya a Ubwoko Itagi: a Itsinda Rikuru Bya i Izina: Itagi:"
+
+#: tree-ssa.c:551
+#, fuzzy
+msgid "Two different pointers with identical points-to sets but different name tags"
+msgstr "Na: birasa Utudomo Kuri Izina:"
+
+#: tree-ssa.c:580
+#, fuzzy
+msgid "verify_name_tags failed"
+msgstr "Byanze"
+
+#: tree-ssa.c:647
+#, fuzzy, c-format
+msgid "AUX pointer initialized for edge %d->%d\n"
+msgstr "Mweretsi kugirango"
+
+#: tree-ssa.c:672
+#, fuzzy
+msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
+msgstr "Oya"
+
+#: tree-ssa.c:710
+#, fuzzy
+msgid "verify_ssa failed."
+msgstr "Byanze"
+
+#: tree-ssa.c:1376
+#, fuzzy
+msgid "%H%qD is used uninitialized in this function"
+msgstr "%H%qDni Itatangijwe in iyi Umumaro"
+
+#: tree-ssa.c:1401
+#, fuzzy
+msgid "%H%qD may be used uninitialized in this function"
+msgstr "%H%qDGicurasi Itatangijwe in iyi Umumaro"
+
+#: tree-vect-transform.c:598
+#, fuzzy
+msgid "no support for reduction/induction"
+msgstr "Oya Gushigikira kugirango"
+
+#: tree-vect-transform.c:624
+msgid "unsupported defining stmt"
+msgstr ""
+
+#: tree.c:3272
+#, fuzzy
+msgid "%Jfunction %qD definition is marked dllimport."
+msgstr "%Jfunction%qDInsobanuro ni cy/ byagarajwe"
+
+#: tree.c:3280
+#, fuzzy
+msgid "%Jvariable %qD definition is marked dllimport."
+msgstr "%Jvariable%qDInsobanuro ni cy/ byagarajwe"
+
+#: tree.c:3300
+#, fuzzy
+msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
+msgstr "%JexternalBya ngombwa kugirango IKIMENYETSO Bya Ikiranga"
+
+#: tree.c:4453
+#, fuzzy
+msgid "arrays of functions are not meaningful"
+msgstr "Bya Imimaro OYA"
+
+#: tree.c:4505
+#, fuzzy
+msgid "function return type cannot be function"
+msgstr "Umumaro Garuka Ubwoko Umumaro"
+
+#: tree.c:5398
+#, fuzzy
+msgid "invalid initializer for bit string"
+msgstr "Sibyo kugirango Ikurikiranyanyuguti"
+
+#: tree.c:5482
+#, fuzzy, c-format
+msgid "tree check: %s, have %s in %s, at %s:%d"
+msgstr "Kugenzura... in ku"
+
+#: tree.c:5519
+#, fuzzy, c-format
+msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: Ntacyo Bya in ku"
+
+#: tree.c:5532
+#, fuzzy, c-format
+msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: ishuri in ku"
+
+#: tree.c:5546
+#, 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"
+
+#: tree.c:5558
+#, fuzzy, c-format
+msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
+msgstr "Kugenzura... birabonetse Bya Na: in ku"
+
+#: tree.c:5570
+#, fuzzy, c-format
+msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
+msgstr "Kugenzura... birabonetse Bya Na: in ku"
+
+#: varasm.c:477
+#, fuzzy
+msgid "%J%D causes a section type conflict"
+msgstr "%J%Da Icyiciro Ubwoko"
+
+#: varasm.c:911
+#, fuzzy
+msgid "%Jregister name not specified for %qD"
+msgstr "%JregisterIzina: OYA kugirango"
+
+#: varasm.c:913
+#, fuzzy
+msgid "%Jinvalid register name for %qD"
+msgstr "%JinvalidKwiyandikisha Izina: kugirango"
+
+#: varasm.c:915
+#, fuzzy
+msgid "%Jdata type of %qD isn%'t suitable for a register"
+msgstr "%JdataUbwoko Bya T kugirango a Kwiyandikisha"
+
+#: varasm.c:918
+#, fuzzy
+msgid "%Jregister specified for %qD isn%'t suitable for data type"
+msgstr "%Jregisterkugirango T kugirango Ibyatanzwe Ubwoko"
+
+#: varasm.c:928
+#, fuzzy
+msgid "global register variable has initial value"
+msgstr "Kwiyandikisha IMPINDURAGACIRO Agaciro"
+
+#: varasm.c:931
+#, fuzzy
+msgid "volatile register variables don%'t work as you might wish"
+msgstr "Kwiyandikisha Ibihinduka T Akazi Nka"
+
+#: varasm.c:968
+#, fuzzy
+msgid "%Jregister name given for non-register variable %qD"
+msgstr "%JregisterIzina: kugirango Kwiyandikisha IMPINDURAGACIRO"
+
+#: varasm.c:1046
+#, fuzzy
+msgid "global destructors not supported on this target"
+msgstr "OYA ku iyi Intego"
+
+#: varasm.c:1107
+#, fuzzy
+msgid "global constructors not supported on this target"
+msgstr "OYA ku iyi Intego"
+
+#: varasm.c:1607
+#, fuzzy
+msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
+msgstr "%JalignmentBya ni Biruta Kinini Igikoresho IDOSIYE Itunganya"
+
+#: varasm.c:1646
+#, fuzzy
+msgid "thread-local COMMON data not implemented"
+msgstr "Urudodo Ibyatanzwe OYA"
+
+#: varasm.c:1671
+#, fuzzy
+msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
+msgstr "%JrequestedItunganya kugirango ni Biruta Itunganya Bya"
+
+#: varasm.c:3772
+#, fuzzy
+msgid "initializer for integer value is too complicated"
+msgstr "kugirango Umubare wuzuye Agaciro ni"
+
+#: varasm.c:3777
+#, fuzzy
+msgid "initializer for floating value is not a floating constant"
+msgstr "kugirango Bihindagurika Agaciro ni OYA a Bihindagurika"
+
+#: varasm.c:4046
+#, fuzzy, c-format
+msgid "invalid initial value for member %qs"
+msgstr "Sibyo Agaciro kugirango"
+
+#: varasm.c:4233 varasm.c:4277
+#, fuzzy
+msgid "%Jweak declaration of %qD must precede definition"
+msgstr "%JweakBya Insobanuro"
+
+#: varasm.c:4241
+#, fuzzy
+msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
+msgstr "%JweakBya Nyuma Itangira Gukoresha Ibisubizo ku in imyitwarire"
+
+#: varasm.c:4275
+#, fuzzy
+msgid "%Jweak declaration of %qD must be public"
+msgstr "%JweakBya Rusange"
+
+#: varasm.c:4284
+#, fuzzy
+msgid "%Jweak declaration of %qD not supported"
+msgstr "%JweakBya OYA"
+
+#: varasm.c:4313 varasm.c:4462
+#, fuzzy
+msgid "only weak aliases are supported in this configuration"
+msgstr "Irihimbano in iyi Iboneza"
+
+#: varasm.c:4465
+#, fuzzy
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr "Irihimbano OYA in iyi Iboneza"
+
+#: varasm.c:4504
+#, fuzzy
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "%qDKuri kidasobanuye IKIMENYETSO"
+
+#: varasm.c:4532
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "Ukugaragara Ikiranga OYA in iyi Iboneza"
+
+#: varray.c:203
+#, 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"
+
+#: varray.c:213
+#, fuzzy, c-format
+msgid "underflowed virtual array %s in %s, at %s:%d"
+msgstr "Kitaboneka Imbonerahamwe in ku"
+
+#: vec.c:146
+#, fuzzy, c-format
+msgid "vector %s %s domain error, in %s at %s:%u"
+msgstr "Urwego Ikosa in ku"
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:187
+#, fuzzy, c-format
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr "Oya kugirango"
+
+#.
+#. Local variables:
+#. mode:c
+#. End:
+#.
+#: diagnostic.def:1
+#, fuzzy
+msgid "fatal error: "
+msgstr "Ikosa"
+
+#: diagnostic.def:2
+#, fuzzy
+msgid "internal compiler error: "
+msgstr "By'imbere Ikosa"
+
+# starmath/source\smres.src:RID_ERR_IDENT.text
+#: diagnostic.def:3
+#, fuzzy
+msgid "error: "
+msgstr "IKOSA"
+
+#: diagnostic.def:4
+msgid "sorry, unimplemented: "
+msgstr ""
+
+#: diagnostic.def:5
+#, fuzzy
+msgid "warning: "
+msgstr "Iburira!"
+
+#: diagnostic.def:6
+msgid "anachronism: "
+msgstr ""
+
+# scp/source\cde\unxbasic_cde.lng:STR_BASIC_CDEINT_NETWORK_STRING2.text
+#: diagnostic.def:7
+#, fuzzy
+msgid "note: "
+msgstr "Ibisobanuro:"
+
+# Debug menu items
+#: diagnostic.def:8
+#, fuzzy
+msgid "debug: "
+msgstr "Kosora amakosa"
+
+#: params.def:44
+#, fuzzy
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
+msgstr "Kinini Imiterere Ingano in Bayite ku Funga Amakopi"
+
+#: params.def:54
+#, fuzzy
+msgid "The threshold ratio between instantiated fields and the total structure size"
+msgstr "hagati Imyanya Na i Igiteranyo Imiterere Ingano"
+
+#: params.def:72
+#, 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:84
+#, fuzzy
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "Kinini Umubare Bya Amabwiriza Ryari: ku buryo bwikora"
+
+#: params.def:89
+#, fuzzy
+msgid "The maximum number of instructions inline function can grow to via recursive inlining"
+msgstr "Kinini Umubare Bya Amabwiriza Mumurongo Umumaro Kuri Biturutse"
+
+#: params.def:94
+#, fuzzy
+msgid "The maximum number of instructions non-inline function can grow to via recursive inlining"
+msgstr "Kinini Umubare Bya Amabwiriza Mumurongo Umumaro Kuri Biturutse"
+
+#: params.def:99
+#, fuzzy
+msgid "The maximum depth of recursive inlining for inline functions"
+msgstr "Kinini Ubujyakuzimu Bya kugirango Mumurongo Imimaro"
+
+#: params.def:104
+#, fuzzy
+msgid "The maximum depth of recursive inlining for non-inline functions"
+msgstr "Kinini Ubujyakuzimu Bya kugirango Mumurongo Imimaro"
+
+#: params.def:111
+#, fuzzy
+msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
+msgstr "in ni i Kinini Umubare Bya Times IMPINDURAGACIRO Cyagutse"
+
+#: params.def:124
+#, 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:135
+#, 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:145
+#, fuzzy
+msgid "The maximum length of scheduling's pending operations list"
+msgstr "Kinini Uburebure Bya Ibikorwa: Urutonde"
+
+#: params.def:150
+#, fuzzy
+msgid "The size of function body to be considered large"
+msgstr "Ingano Bya Umumaro Umubiri Kuri Binini"
+
+#: params.def:154
+#, fuzzy
+msgid "Maximal growth due to inlining of large function (in percent)"
+msgstr "IKURA Kuri Bya Binini Umumaro in Ku ijana"
+
+#: params.def:158
+#, fuzzy
+msgid "how much can given compilation unit grow because of the inlining (in percent)"
+msgstr "Igice: Bya i in Ku ijana"
+
+#: params.def:165
+#, fuzzy
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr "Kinini Igiteranyo Bya Ububiko Kuri ku"
+
+#: params.def:170
+#, fuzzy
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr "Kinini Umubare Bya Kuri Ubwoko Ryari:"
+
+#: params.def:180
+#, fuzzy
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
+msgstr "kugirango Bituzuye Nyuma Kongera Gutangiza"
+
+#: params.def:187
+#, fuzzy
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+msgstr "Bya Ibyangombwa IBARA Nyuma Kongera Gutangiza"
+
+#: params.def:198
+#, 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:204
+#, fuzzy
+msgid "The maximum number of instructions to consider to unroll in a loop on average"
+msgstr "Kinini Umubare Bya Amabwiriza Kuri Kuri in a ku Impuzandengo"
+
+#: params.def:209
+#, fuzzy
+msgid "The maximum number of unrollings of a single loop"
+msgstr "Kinini Umubare Bya Bya a UMWE"
+
+#: params.def:214
+#, fuzzy
+msgid "The maximum number of insns of a peeled loop"
+msgstr "Kinini Umubare Bya Bya a"
+
+#: params.def:219
+#, fuzzy
+msgid "The maximum number of peelings of a single loop"
+msgstr "Kinini Umubare Bya Bya a UMWE"
+
+#: params.def:224
+#, fuzzy
+msgid "The maximum number of insns of a completely peeled loop"
+msgstr "Kinini Umubare Bya Bya a"
+
+#: params.def:229
+#, fuzzy
+msgid "The maximum number of peelings of a single loop that is peeled completely"
+msgstr "Kinini Umubare Bya Bya a UMWE ni"
+
+#: params.def:234
+#, fuzzy
+msgid "The maximum number of insns of a peeled loop that rolls only once"
+msgstr "Kinini Umubare Bya Bya a Rimwe"
+
+#: params.def:240
+#, fuzzy
+msgid "The maximum number of insns of an unswitched loop"
+msgstr "Kinini Umubare Bya Bya"
+
+#: params.def:245
+#, fuzzy
+msgid "The maximum number of unswitchings in a single loop"
+msgstr "Kinini Umubare Bya in a UMWE"
+
+#: params.def:252
+#, fuzzy
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
+msgstr "ku i Umubare Bya Amasubiramo i Bya Amasubiramo"
+
+#: params.def:257
+#, fuzzy
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
+msgstr "Umubare Bya Kuri ku kugirango"
+
+#: params.def:263
+#, fuzzy
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
+msgstr "A Umubarwa kugirango i Nkuru kugirango a"
+
+#: params.def:267
+#, fuzzy
+msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
+msgstr "Umubare Bya i Ryari: ikoresha"
+
+#: params.def:272
+#, fuzzy
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
+msgstr "A ku i Impuzandengo IBARA ku i"
+
+#: params.def:277
+#, 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:281
+#, 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:285
+#, 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:289
+#, 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:293
+#, fuzzy
+msgid "Maximal code growth caused by tail duplication (in percent)"
+msgstr "ITEGEKONGENGA IKURA ku in Ku ijana"
+
+#: params.def:297
+#, fuzzy
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
+msgstr "Ihindurakerekezo IKURA NIBA i Ihindurakerekezo Imishobokere Bya ni Birutwa iyi in Ku ijana"
+
+#: params.def:301
+#, fuzzy
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
+msgstr "Imbere IKURA NIBA i Imishobokere Bya ni Birutwa iyi in Ku ijana Ryari: Ibijyana ni Bihari"
+
+#: params.def:305
+#, fuzzy
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
+msgstr "Imbere IKURA NIBA i Imishobokere Bya ni Birutwa iyi in Ku ijana Ryari: Ibijyana ni OYA Bihari"
+
+#: params.def:311
+#, fuzzy
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "Kinini Umubare Bya Kuri kugirango"
+
+#: params.def:317
+#, fuzzy
+msgid "The minimum number of matching instructions to consider for crossjumping"
+msgstr "Gito Umubare Bya Amabwiriza Kuri kugirango"
+
+#: params.def:323
+#, fuzzy
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr "Kinini Umubare Bya Kuri Gusubiramo Ryari:"
+
+#: params.def:329
+#, fuzzy
+msgid "The maximum length of path considered in cse"
+msgstr "Kinini Uburebure Bya Inzira in"
+
+#: params.def:336
+#, fuzzy
+msgid "The minimum cost of an expensive expression in the loop invariant motion"
+msgstr "Gito Ikiguzi Bya imvugo in i"
+
+#: params.def:345
+#, fuzzy
+msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
+msgstr "ku Umubare Bya munsi Byose in"
+
+#: params.def:353
+#, fuzzy
+msgid "Bound on number of iv uses in loop optimized in iv optimizations"
+msgstr "ku Umubare Bya in Cyuzuye in"
+
+#: params.def:361
+#, fuzzy
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr "Umubare Bya in i Gushyiraho ni Gitoya Twebwe Buri gihe Kuri Gukuraho... Kidakoreshwa"
+
+#: params.def:368
+#, fuzzy
+msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
+msgstr "Amahamagara: Na V in a Umumaro NIBA ni Kinini iyi"
+
+#: params.def:373
+#, fuzzy
+msgid "The maximum memory locations recorded by cselib"
+msgstr "Kinini Ububiko ku"
+
+#: params.def:386
+#, 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:391
+#, fuzzy
+msgid "Minimum heap size before we start collecting garbage, in kilobytes"
+msgstr "Ingano Mbere Twebwe Gutangira in"
+
+#: params.def:399
+#, fuzzy
+msgid "The maximum number of instructions to search backward when looking for equivalent reload"
+msgstr "Kinini Umubare Bya Amabwiriza Kuri Gushaka subira inyuma Ryari: kugirango Kongera Gutangiza"
+
+#: params.def:404
+#, fuzzy
+msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
+msgstr "Kinini Umubare Bya Kitaboneka Kuri Irihimbano Mbere Irihimbano Mu itsinda"
+
+#: params.def:409
+#, fuzzy
+msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
+msgstr "Kinini Umubare Bya in a Kuri kugirango"
+
+#: params.def:414
+#, fuzzy
+msgid "The maximum number of insns in a region to be considered for interblock scheduling"
+msgstr "Kinini Umubare Bya in a Kuri kugirango"
+
+#: params.def:419
+#, fuzzy
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr "Kinini Umubare Bya Nka Iheruka Agaciro"
+
+#: params.def:427
+#, fuzzy
+msgid "The upper bound for sharing integer constants"
+msgstr "Nkuru kugirango Bisangiwe Umubare wuzuye"
+
+#: config/darwin-c.c:84
+#, fuzzy
+msgid "too many #pragma options align=reset"
+msgstr "Amahitamo Gutondeka Kugarura"
+
+#: config/darwin-c.c:104 config/darwin-c.c:107 config/darwin-c.c:109
+#: config/darwin-c.c:111
+msgid "malformed '#pragma options', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:114
+#, fuzzy
+msgid "junk at end of '#pragma options'"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/darwin-c.c:124
+#, fuzzy
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr "Amahitamo Gutondeka UMWIKUBE Kugarura"
+
+#: config/darwin-c.c:136
+#, fuzzy
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "Ibuze Nyuma"
+
+#: config/darwin-c.c:154
+#, fuzzy
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "Ibuze Nyuma"
+
+#: config/darwin-c.c:157
+#, fuzzy
+msgid "junk at end of '#pragma unused'"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/darwin-c.c:367
+#, fuzzy, c-format
+msgid "subframework include %s conflicts with framework include"
+msgstr "Gushyiramo Na: Gushyiramo"
+
+#: config/darwin.c:1350
+#, fuzzy
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
+msgstr "By'imbere Na Birinzwe Ukugaragara Ibiranga OYA in iyi Iboneza"
+
+#: config/sol2-c.c:94 config/sol2-c.c:110
+#, fuzzy
+msgid "malformed %<#pragma align%>, ignoring"
+msgstr "Gutondeka"
+
+#: config/sol2-c.c:103
+#, fuzzy
+msgid "invalid alignment for %<#pragma align%>, ignoring"
+msgstr "Sibyo Itunganya kugirango Gutondeka"
+
+#: config/sol2-c.c:118
+#, fuzzy
+msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
+msgstr "%<#Gutondeka Kugaragara Mbere i Bya"
+
+#: config/sol2-c.c:130 config/sol2-c.c:142
+#, fuzzy
+msgid "malformed %<#pragma align%>"
+msgstr "Gutondeka"
+
+#: config/sol2-c.c:137
+#, fuzzy
+msgid "junk at end of %<#pragma align%>"
+msgstr "Umwanda ku Impera Bya Gutondeka"
+
+#: config/sol2-c.c:158 config/sol2-c.c:165
+msgid "malformed %<#pragma init%>, ignoring"
+msgstr ""
+
+#: config/sol2-c.c:188 config/sol2-c.c:200
+msgid "malformed %<#pragma init%>"
+msgstr ""
+
+#: config/sol2-c.c:195
+#, fuzzy
+msgid "junk at end of %<#pragma init%>"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/sol2-c.c:216 config/sol2-c.c:223
+msgid "malformed %<#pragma fini%>, ignoring"
+msgstr ""
+
+#: config/sol2-c.c:246 config/sol2-c.c:258
+msgid "malformed %<#pragma fini%>"
+msgstr ""
+
+#: config/sol2-c.c:253
+#, fuzzy
+msgid "junk at end of %<#pragma fini%>"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/sol2.c:54
+#, fuzzy
+msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
+msgstr "%Jignoring%<#Gutondeka kugirango"
+
+#: config/darwin.h:155
+#, fuzzy
+msgid "Set sizeof(bool) to 1"
+msgstr "Kuri 1."
+
+#: config/darwin.h:157
+#, fuzzy
+msgid "Generate code suitable for fast turn around debugging"
+msgstr "ITEGEKONGENGA kugirango Byihuta"
+
+#: config/darwin.h:159
+#, fuzzy
+msgid "Don't generate code suitable for fast turn around debugging"
+msgstr "ITEGEKONGENGA kugirango Byihuta"
+
+#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
+#. sections. machopic_select_section ensures that weak variables go in
+#. coalesced sections. Weak aliases (or any other kind of aliases) are
+#. not supported. Weak symbols that aren't visible outside the .s file
+#. are not supported.
+#: config/darwin.h:395
+#, fuzzy
+msgid "alias definitions not supported in Mach-O; ignored"
+msgstr "Irihimbano OYA in"
+
+#: config/lynx.h:137
+#, fuzzy
+msgid "Use shared libraries"
+msgstr "Amasomero"
+
+#: config/lynx.h:138
+msgid "Support multi-threading"
+msgstr ""
+
+#: config/lynx.h:139
+msgid "Support legacy multi-threading"
+msgstr ""
+
+#: config/windiss.h:37
+#, fuzzy
+msgid "profiler support for WindISS"
+msgstr "Gushigikira kugirango"
+
+#: config/alpha/alpha.c:254
+#, fuzzy, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-F kugirango OYA"
+
+#: config/alpha/alpha.c:278
+#, fuzzy
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-OYA ku"
+
+#: config/alpha/alpha.c:289
+#, fuzzy
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr "-Na: OYA ku"
+
+#: config/alpha/alpha.c:306
+#, fuzzy, c-format
+msgid "bad value %qs for -mtrap-precision switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/alpha/alpha.c:320
+#, fuzzy, c-format
+msgid "bad value %qs for -mfp-rounding-mode switch"
+msgstr "Agaciro kugirango Ubwoko Hindura"
+
+#: config/alpha/alpha.c:335
+#, fuzzy, c-format
+msgid "bad value %qs for -mfp-trap-mode switch"
+msgstr "Agaciro kugirango Ubwoko Hindura"
+
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
+#, fuzzy, c-format
+msgid "bad value %qs for -mtls-size switch"
+msgstr "Agaciro kugirango Ingano Hindura"
+
+#: config/alpha/alpha.c:366 config/alpha/alpha.c:378
+#, fuzzy, c-format
+msgid "bad value %qs for -mcpu switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/alpha/alpha.c:385
+#, fuzzy
+msgid "trap mode not supported on Unicos/Mk"
+msgstr "Ubwoko OYA ku"
+
+#: config/alpha/alpha.c:392
+#, fuzzy
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr "i"
+
+#: config/alpha/alpha.c:408
+#, fuzzy
+msgid "rounding mode not supported for VAX floats"
+msgstr "Ubwoko OYA kugirango"
+
+#: config/alpha/alpha.c:413
+#, fuzzy
+msgid "trap mode not supported for VAX floats"
+msgstr "Ubwoko OYA kugirango"
+
+#: config/alpha/alpha.c:417
+#, fuzzy
+msgid "128-bit long double not supported for VAX floats"
+msgstr "MAHARAKUBIRI OYA kugirango"
+
+#: config/alpha/alpha.c:445
+#, fuzzy, c-format
+msgid "L%d cache latency unknown for %s"
+msgstr "Ubwihisho Kitazwi kugirango"
+
+#: config/alpha/alpha.c:460
+#, fuzzy, c-format
+msgid "bad value %qs for -mmemory-latency"
+msgstr "Agaciro kugirango"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:4764
+#, 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:4785
+#, 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:4801 config/ia64/ia64.c:4133
+#, 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:4811 config/rs6000/rs6000.c:10799
+#: config/xtensa/xtensa.c:1951
+#, 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:4817 config/rs6000/rs6000.c:10718
+#: config/xtensa/xtensa.c:1918
+#, 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:4825 config/rs6000/rs6000.c:10746
+#, 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:4833
+#, 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:4841 config/xtensa/xtensa.c:1944
+#, 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:4880 config/rs6000/rs6000.c:10700
+#, 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:4888 config/rs6000/rs6000.c:10708
+#, 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:4932
+#, 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:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
+#, 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:4981
+#, 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:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
+#, fuzzy, c-format
+msgid "invalid %%E value"
+msgstr "Agaciro siko"
+
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
+#, fuzzy
+msgid "unknown relocation unspec"
+msgstr "Kitazwi"
+
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
+#, fuzzy, c-format
+msgid "invalid %%xn code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
+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.
+#. 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:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
+msgid "Use hardware fp"
+msgstr ""
+
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
+#, fuzzy
+msgid "Do not use hardware fp"
+msgstr "OYA Gukoresha"
+
+#: config/alpha/alpha.h:295
+msgid "Use fp registers"
+msgstr ""
+
+#: config/alpha/alpha.h:297
+#, fuzzy
+msgid "Do not use fp registers"
+msgstr "OYA Gukoresha"
+
+#: config/alpha/alpha.h:298
+#, fuzzy
+msgid "Do not assume GAS"
+msgstr "OYA"
+
+#: config/alpha/alpha.h:299
+msgid "Assume GAS"
+msgstr ""
+
+#: config/alpha/alpha.h:301
+#, fuzzy
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr "Imibare Isomero 1."
+
+#: config/alpha/alpha.h:303
+#, fuzzy
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr "ITEGEKONGENGA Amarengayobora"
+
+#: config/alpha/alpha.h:305
+#, fuzzy
+msgid "Emit IEEE-conformant code, with inexact exceptions"
+msgstr "ITEGEKONGENGA Na: Amarengayobora"
+
+#: config/alpha/alpha.h:307
+#, 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:308
+msgid "Use VAX fp"
+msgstr ""
+
+#: config/alpha/alpha.h:309
+#, fuzzy
+msgid "Do not use VAX fp"
+msgstr "OYA Gukoresha"
+
+#: config/alpha/alpha.h:310
+#, fuzzy
+msgid "Emit code for the byte/word ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Bayite ijambo Umugereka"
+
+#: config/alpha/alpha.h:313
+#, fuzzy
+msgid "Emit code for the motion video ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Videwo... Umugereka"
+
+#: config/alpha/alpha.h:316
+#, fuzzy
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Kwimura Na SQRT Umugereka"
+
+#: config/alpha/alpha.h:318
+#, fuzzy
+msgid "Emit code for the counting ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Kubara Umugereka"
+
+#: config/alpha/alpha.h:321
+#, fuzzy
+msgid "Emit code using explicit relocation directives"
+msgstr "ITEGEKONGENGA ikoresha"
+
+#: config/alpha/alpha.h:324
+#, fuzzy
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr "Kuri i Gitoya Ibyatanzwe Ubuso"
+
+#: config/alpha/alpha.h:326
+#, fuzzy
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr "Kuri i Gitoya Ibyatanzwe Ubuso"
+
+#: config/alpha/alpha.h:328
+#, fuzzy
+msgid "Emit direct branches to local functions"
+msgstr "Kuri Imimaro"
+
+#: config/alpha/alpha.h:331
+#, fuzzy
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr "Bya kugirango Urudodo Mweretsi"
+
+#: config/alpha/alpha.h:333
+#, fuzzy
+msgid "Use 128-bit long double"
+msgstr "MAHARAKUBIRI"
+
+#: config/alpha/alpha.h:335
+#, fuzzy
+msgid "Use 64-bit long double"
+msgstr "MAHARAKUBIRI"
+
+#. 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:364
+#, fuzzy
+msgid "Use features of and schedule given CPU"
+msgstr "Ibiranga Bya Na Igenabihe"
+
+#: config/alpha/alpha.h:366
+msgid "Schedule given CPU"
+msgstr ""
+
+#: config/alpha/alpha.h:368
+#, fuzzy
+msgid "Control the generated fp rounding mode"
+msgstr "i Ubwoko"
+
+#: config/alpha/alpha.h:370
+#, fuzzy
+msgid "Control the IEEE trap mode"
+msgstr "i Ubwoko"
+
+#: config/alpha/alpha.h:372
+#, fuzzy
+msgid "Control the precision given to fp exceptions"
+msgstr "i Kuri Amarengayobora"
+
+#: config/alpha/alpha.h:374
+#, fuzzy
+msgid "Tune expected memory latency"
+msgstr "Ikitezwe: Ububiko"
+
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
+#, fuzzy
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "Ingano Bya"
+
+#: config/arc/arc.c:172
+#, fuzzy, c-format
+msgid "bad value (%s) for -mcpu switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/arc/arc.c:394
+#, fuzzy, c-format
+msgid "argument of %qs attribute is not a string constant"
+msgstr "Bya Ikiranga ni OYA a Ikurikiranyanyuguti"
+
+#: config/arc/arc.c:401
+#, fuzzy, c-format
+msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
+msgstr "Bya Ikiranga ni OYA Cyangwa"
+
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/arc/arc.c:1805
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#. Unknown flag.
+#. Undocumented flag.
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
+#, fuzzy
+msgid "invalid operand output code"
+msgstr "Sibyo Ibisohoka ITEGEKONGENGA"
+
+#: config/arm/arm.c:800
+#, fuzzy, c-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr "Hindura Na: Werurwe Hindura"
+
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
+#, fuzzy, c-format
+msgid "bad value (%s) for %s switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/arm/arm.c:919
+#, fuzzy
+msgid "target CPU does not support interworking"
+msgstr "Intego OYA Gushigikira"
+
+#: config/arm/arm.c:925
+#, fuzzy
+msgid "target CPU does not support THUMB instructions"
+msgstr "Intego OYA Gushigikira Amabwiriza"
+
+#: config/arm/arm.c:939
+#, fuzzy
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr "Gushigikira ni Ryari: kugirango i"
+
+#: config/arm/arm.c:942
+#, fuzzy
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr "Gushigikira ni Ryari: kugirango i"
+
+#: config/arm/arm.c:945
+#, fuzzy
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr "Gushigikira ni Ryari: kugirango i"
+
+#: config/arm/arm.c:949
+#, fuzzy
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr "-Kugenzura... Na: Ikadiri"
+
+#: config/arm/arm.c:957
+#, fuzzy
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr "-Na"
+
+#: config/arm/arm.c:960
+#, fuzzy
+msgid "APCS reentrant code not supported. Ignored"
+msgstr "ITEGEKONGENGA OYA"
+
+#: config/arm/arm.c:968
+#, fuzzy
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr "-g Na: Ikadiri Gicurasi OYA"
+
+#: config/arm/arm.c:976
+#, fuzzy
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr "Bihindagurika Akadomo ingingo in OYA"
+
+#: config/arm/arm.c:1018
+#, fuzzy, c-format
+msgid "invalid ABI option: -mabi=%s"
+msgstr "Sibyo Ihitamo"
+
+#: config/arm/arm.c:1024
+#, fuzzy
+msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
+msgstr "kugirango NYACYO"
+
+#: config/arm/arm.c:1027
+#, fuzzy
+msgid "iwmmxt abi requires an iwmmxt capable cpu"
+msgstr "CPU"
+
+#: config/arm/arm.c:1037
+#, fuzzy, c-format
+msgid "invalid floating point emulation option: -mfpe=%s"
+msgstr "Sibyo Bihindagurika Akadomo Ihitamo"
+
+#: config/arm/arm.c:1054
+#, fuzzy, c-format
+msgid "invalid floating point option: -mfpu=%s"
+msgstr "Sibyo Bihindagurika Akadomo Ihitamo"
+
+#: config/arm/arm.c:1095
+#, fuzzy, c-format
+msgid "invalid floating point abi: -mfloat-abi=%s"
+msgstr "Sibyo Bihindagurika Akadomo"
+
+#: config/arm/arm.c:1110
+#, fuzzy
+msgid "-mfloat-abi=hard and VFP"
+msgstr "-Ikomeye Na"
+
+#: config/arm/arm.c:1136
+#, fuzzy, c-format
+msgid "structure size boundary can only be set to %s"
+msgstr "Imiterere Ingano Gushyiraho Kuri"
+
+#: config/arm/arm.c:1145
+#, fuzzy
+msgid "-mpic-register= is useless without -fpic"
+msgstr "-Kwiyandikisha ni"
+
+#: config/arm/arm.c:1152
+#, fuzzy, c-format
+msgid "unable to use '%s' for PIC register"
+msgstr "Kuri Gukoresha kugirango Kwiyandikisha"
+
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
+#, fuzzy, c-format
+msgid "%qs attribute only applies to functions"
+msgstr "%qsIkiranga Kuri Imimaro"
+
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
+msgid "predicated Thumb instruction"
+msgstr ""
+
+#: config/arm/arm.c:10460
+#, fuzzy
+msgid "predicated instruction in conditional sequence"
+msgstr "in"
+
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
+#, fuzzy, c-format
+msgid "invalid operand for code '%c'"
+msgstr "Sibyo kugirango ITEGEKONGENGA"
+
+#: config/arm/arm.c:10627
+#, fuzzy
+msgid "instruction never exectued"
+msgstr "Nta narimwe"
+
+#: config/arm/arm.c:10752
+#, fuzzy
+msgid "missing operand"
+msgstr "Ibuze"
+
+#: config/arm/arm.c:11518
+#, fuzzy
+msgid "unable to compute real location of stacked parameter"
+msgstr "Kuri Ahantu Bya Birunze"
+
+#. @@@ better error message
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
+msgid "selector must be an immediate"
+msgstr ""
+
+#. @@@ better error message
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
+msgid "mask must be an immediate"
+msgstr ""
+
+#: config/arm/arm.c:12907
+#, fuzzy
+msgid "no low registers available for popping high registers"
+msgstr "Oya Byo hasi Bihari kugirango kirekire"
+
+#: config/arm/arm.c:13125
+#, fuzzy
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr "Hagarikira aho in Ubwoko"
+
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
+#, fuzzy
+msgid "%Jinitialized variable '%D' is marked dllimport"
+msgstr "%JinitializedIMPINDURAGACIRO ni cy/ byagarajwe"
+
+#: config/arm/pe.c:180
+#, fuzzy
+msgid "%Jstatic variable '%D' is marked dllimport"
+msgstr "%JstaticIMPINDURAGACIRO ni cy/ byagarajwe"
+
+#: config/arm/arm.h:318
+#, fuzzy
+msgid "Generate APCS conformant stack frames"
+msgstr "Amakadiri"
+
+#: config/arm/arm.h:321
+#, fuzzy
+msgid "Store function names in object code"
+msgstr "Umumaro Amazina in Igikoresho ITEGEKONGENGA"
+
+#: config/arm/arm.h:327
+#, fuzzy
+msgid "Pass FP arguments in FP registers"
+msgstr "ingingo in"
+
+#: config/arm/arm.h:330
+#, fuzzy
+msgid "Generate re-entrant, PIC code"
+msgstr "ITEGEKONGENGA"
+
+#: config/arm/arm.h:333
+#, fuzzy
+msgid "Assume target CPU is configured as big endian"
+msgstr "Intego ni Nka"
+
+#: config/arm/arm.h:335
+#, fuzzy
+msgid "Assume target CPU is configured as little endian"
+msgstr "Intego ni Nka"
+
+#: config/arm/arm.h:337
+#, fuzzy
+msgid "Assume big endian bytes, little endian words"
+msgstr "Bayite Amagambo"
+
+#: config/arm/arm.h:339
+#, fuzzy
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr "Amahamagara: hagati Na"
+
+#: config/arm/arm.h:342
+#, fuzzy
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr "a Kuri Kureka NIBA a Umumaro"
+
+#: config/arm/arm.h:345
+#, fuzzy
+msgid "Do not move instructions into a function's prologue"
+msgstr "OYA Kwimura Amabwiriza a"
+
+#: config/arm/arm.h:348
+#, fuzzy
+msgid "Do not load the PIC register in function prologues"
+msgstr "OYA Ibirimo i Kwiyandikisha in Umumaro"
+
+#: config/arm/arm.h:351
+#, fuzzy
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr "Nka BUZIGUYE Amahamagara: NIBA"
+
+#: config/arm/arm.h:354
+#, fuzzy
+msgid "Compile for the Thumb not the ARM"
+msgstr "kugirango i OYA i"
+
+#: config/arm/arm.h:358
+#, fuzzy
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr "Amakadiri ATARIIGIHARWE NIBA OYA"
+
+#: config/arm/arm.h:361
+#, fuzzy
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr "Amakadiri ATARIIGIHARWE NIBA OYA"
+
+#: config/arm/arm.h:364
+#, fuzzy
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr "Imimaro Gicurasi Bivuye ITEGEKONGENGA"
+
+#: config/arm/arm.h:368
+#, fuzzy
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr "Umumaro Gicurasi Gyayo Kuri ITEGEKONGENGA"
+
+#: config/arm/arm.h:372
+#, fuzzy
+msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
+msgstr "Kuri Sibyo"
+
+#: config/arm/arm.h:374
+#, fuzzy
+msgid "Cirrus: Do not break up invalid instruction combinations with NOPs"
+msgstr "OYA itandukanya Hejuru Sibyo Na:"
+
+#: config/arm/arm.h:382
+#, fuzzy
+msgid "Specify the name of the target CPU"
+msgstr "i Izina: Bya i Intego"
+
+#: config/arm/arm.h:384
+#, fuzzy
+msgid "Specify the name of the target architecture"
+msgstr "i Izina: Bya i Intego"
+
+#: config/arm/arm.h:389
+#, fuzzy
+msgid "Specify the name of the target floating point hardware/format"
+msgstr "i Izina: Bya i Intego Bihindagurika Akadomo Imiterere"
+
+#: config/arm/arm.h:391
+#, fuzzy
+msgid "Specify if floating point hardware should be used"
+msgstr "NIBA Bihindagurika Akadomo"
+
+#: config/arm/arm.h:393
+#, fuzzy
+msgid "Specify the minimum bit alignment of structures"
+msgstr "i Gito Itunganya Bya"
+
+#: config/arm/arm.h:395
+#, fuzzy
+msgid "Specify the register to be used for PIC addressing"
+msgstr "i Kwiyandikisha Kuri kugirango Kwohereza"
+
+#: config/arm/arm.h:396 config/mips/mips.h:784
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/arm/arm.h:398
+#, fuzzy
+msgid "Alias for -mfloat-abi=soft"
+msgstr "kugirango Yoroshe"
+
+#: config/arm/arm.h:400
+#, fuzzy
+msgid "Alias for -mfloat-abi=hard"
+msgstr "kugirango Ikomeye"
+
+#: config/arm/pe.h:59
+#, fuzzy
+msgid "Ignore dllimport attribute for functions"
+msgstr "Ikiranga kugirango Imimaro"
+
+#: config/avr/avr.c:532
+#, fuzzy, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr "Binini Ikadiri Mweretsi Guhindura>> Na:"
+
+#: config/avr/avr.c:1119
+#, fuzzy
+msgid "bad address, not (reg+disp):"
+msgstr "Aderesi OYA"
+
+#: config/avr/avr.c:1127
+#, fuzzy
+msgid "internal compiler error. Bad address:"
+msgstr "By'imbere Ikosa Aderesi"
+
+#: config/avr/avr.c:1140
+#, fuzzy
+msgid "internal compiler error. Unknown mode:"
+msgstr "By'imbere Ikosa Ubwoko"
+
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
+#, fuzzy
+msgid "invalid insn:"
+msgstr "Sibyo"
+
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
+msgid "incorrect insn:"
+msgstr ""
+
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
+#, fuzzy
+msgid "unknown move insn:"
+msgstr "Kitazwi Kwimura"
+
+#: config/avr/avr.c:2840
+#, fuzzy
+msgid "bad shift insn:"
+msgstr "Gusunika"
+
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
+#, fuzzy
+msgid "internal compiler error. Incorrect shift:"
+msgstr "By'imbere Ikosa Gusunika"
+
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
+#, fuzzy
+msgid "only initialized variables can be placed into program memory area"
+msgstr "Ibihinduka Porogaramu Ububiko Ubuso"
+
+#: config/avr/avr.c:4637
+#, fuzzy, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr "`%s'Kuri a Hagarikira aho"
+
+#: config/avr/avr.c:4645
+#, fuzzy, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr "`%s'Kuri a"
+
+#: config/avr/avr.c:4714
+#, fuzzy
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Itatangijwe Ibihinduka in i Icyiciro"
+
+#: config/avr/avr.c:4728
+#, fuzzy, c-format
+msgid "MCU %qs supported for assembler only"
+msgstr "kugirango"
+
+#: config/avr/avr.h:73
+#, fuzzy
+msgid "Assume int to be 8 bit integer"
+msgstr "INT Kuri 8 Umubare wuzuye"
+
+#: config/avr/avr.h:75
+#, fuzzy
+msgid "Change the stack pointer without disabling interrupts"
+msgstr "i Mweretsi"
+
+#: config/avr/avr.h:77
+#, fuzzy
+msgid "Use subroutines for function prologue/epilogue"
+msgstr "kugirango Umumaro"
+
+#: config/avr/avr.h:79
+#, fuzzy
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr "i Byo hasi 8 Bya i Mweretsi"
+
+#: config/avr/avr.h:81
+#, fuzzy
+msgid "Do not generate tablejump insns"
+msgstr "OYA"
+
+#: config/avr/avr.h:83
+#, fuzzy
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr "Urutonde ku"
+
+#: config/avr/avr.h:85
+#, fuzzy
+msgid "Output instruction sizes to the asm file"
+msgstr "Kuri i IDOSIYE"
+
+#: config/avr/avr.h:102
+#, fuzzy
+msgid "Specify the initial stack address"
+msgstr "i Aderesi"
+
+#: config/avr/avr.h:103
+#, fuzzy
+msgid "Specify the MCU name"
+msgstr "i Izina:"
+
+#: config/avr/avr.h:766
+#, fuzzy
+msgid "trampolines not supported"
+msgstr "OYA"
+
+#: config/c4x/c4x-c.c:71
+#, fuzzy, c-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "Ibuze Nyuma"
+
+#: config/c4x/c4x-c.c:74
+#, fuzzy, c-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr "Ibuze Umumaro Izina: in"
+
+#: config/c4x/c4x-c.c:79
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:81
+#, fuzzy, c-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr "Ibuze Icyiciro Izina: in"
+
+#: config/c4x/c4x-c.c:86
+#, fuzzy, c-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr "Ibuze kugirango"
+
+#: config/c4x/c4x-c.c:89
+#, fuzzy, c-format
+msgid "junk at end of '#pragma %s'"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/c4x/c4x.c:312
+#, fuzzy, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr "Kitazwi Verisiyo ikoresha"
+
+#: config/c4x/c4x.c:874
+#, fuzzy, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr "Amagambo Bya KININI ni"
+
+#: config/c4x/c4x.c:1598
+#, fuzzy
+msgid "using CONST_DOUBLE for address"
+msgstr "ikoresha kugirango Aderesi"
+
+#: config/c4x/c4x.c:1736
+#, fuzzy
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr "Kwohereza Ubwoko"
+
+#: config/c4x/c4x.c:1871
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1877
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1918
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:2013
+msgid "c4x_print_operand: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2054
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2076
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2124 config/c4x/c4x.c:2136 config/c4x/c4x.c:2151
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2402
+#, fuzzy
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr "Gushaka Gutangira Akarango"
+
+#: config/c4x/c4x.c:3317 config/c4x/c4x.c:3335
+#, fuzzy
+msgid "mode not QImode"
+msgstr "Ubwoko OYA"
+
+#: config/c4x/c4x.c:3405
+#, fuzzy
+msgid "invalid indirect memory address"
+msgstr "Sibyo BUZIGUYE Ububiko Aderesi"
+
+#: config/c4x/c4x.c:3494
+#, fuzzy
+msgid "invalid indirect (S) memory address"
+msgstr "Sibyo BUZIGUYE Ububiko Aderesi"
+
+#: config/c4x/c4x.c:3829
+#, fuzzy
+msgid "c4x_valid_operands: Internal error"
+msgstr "Ikosa"
+
+#: config/c4x/c4x.c:4268
+#, fuzzy
+msgid "c4x_operand_subword: invalid mode"
+msgstr "Sibyo Ubwoko"
+
+#: config/c4x/c4x.c:4271
+#, 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:4297
+#, fuzzy
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr "Sibyo nyamwiyongera"
+
+#: config/c4x/c4x.c:4303
+#, fuzzy
+msgid "c4x_operand_subword: invalid address"
+msgstr "Sibyo Aderesi"
+
+#: config/c4x/c4x.c:4314
+#, fuzzy
+msgid "c4x_operand_subword: address not offsettable"
+msgstr "Aderesi OYA"
+
+#: config/c4x/c4x.c:4524
+#, fuzzy
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr "Funga Hejuru: Akarango"
+
+#. 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:166
+#, fuzzy
+msgid "Small memory model"
+msgstr "Ububiko Urugero"
+
+#: config/c4x/c4x.h:168
+#, fuzzy
+msgid "Big memory model"
+msgstr "Ububiko Urugero"
+
+#: config/c4x/c4x.h:170
+#, fuzzy
+msgid "Use MPYI instruction for C3x"
+msgstr "kugirango"
+
+#: config/c4x/c4x.h:172
+#, fuzzy
+msgid "Do not use MPYI instruction for C3x"
+msgstr "OYA Gukoresha kugirango"
+
+#: config/c4x/c4x.h:174
+#, fuzzy
+msgid "Use fast but approximate float to integer conversion"
+msgstr "Byihuta Kureremba Kuri Umubare wuzuye Ihindurangero"
+
+#: config/c4x/c4x.h:176
+#, fuzzy
+msgid "Use slow but accurate float to integer conversion"
+msgstr "Buhoro Kureremba Kuri Umubare wuzuye Ihindurangero"
+
+#: config/c4x/c4x.h:178
+#, fuzzy
+msgid "Enable use of RTPS instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:180
+#, fuzzy
+msgid "Disable use of RTPS instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:182
+#, fuzzy
+msgid "Enable use of RTPB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:184
+#, fuzzy
+msgid "Disable use of RTPB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:186
+#, fuzzy
+msgid "Generate code for C30 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:188
+#, fuzzy
+msgid "Generate code for C31 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:190
+#, fuzzy
+msgid "Generate code for C32 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:192
+#, fuzzy
+msgid "Generate code for C33 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:194
+#, fuzzy
+msgid "Generate code for C40 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:196
+#, fuzzy
+msgid "Generate code for C44 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:198
+#, fuzzy
+msgid "Emit code compatible with TI tools"
+msgstr "ITEGEKONGENGA Na: Ibikoresho"
+
+#: config/c4x/c4x.h:200
+#, fuzzy
+msgid "Emit code to use GAS extensions"
+msgstr "ITEGEKONGENGA Kuri Gukoresha Umigereka"
+
+#: config/c4x/c4x.h:202 config/c4x/c4x.h:206
+#, fuzzy
+msgid "Save DP across ISR in small memory model"
+msgstr "Kubika Kwambukiranya in Gitoya Ububiko Urugero"
+
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
+#, fuzzy
+msgid "Don't save DP across ISR in small memory model"
+msgstr "Kubika Kwambukiranya in Gitoya Ububiko Urugero"
+
+#: config/c4x/c4x.h:210
+#, fuzzy
+msgid "Pass arguments on the stack"
+msgstr "ingingo ku i"
+
+#: config/c4x/c4x.h:212
+#, fuzzy
+msgid "Pass arguments in registers"
+msgstr "ingingo in"
+
+#: config/c4x/c4x.h:214
+#, fuzzy
+msgid "Enable new features under development"
+msgstr "Gishya Ibiranga"
+
+#: config/c4x/c4x.h:216
+#, fuzzy
+msgid "Disable new features under development"
+msgstr "Gishya Ibiranga"
+
+#: config/c4x/c4x.h:218
+#, fuzzy
+msgid "Use the BK register as a general purpose register"
+msgstr "i Kwiyandikisha Nka a Rusange Intego Kwiyandikisha"
+
+#: config/c4x/c4x.h:220
+#, fuzzy
+msgid "Do not allocate BK register"
+msgstr "OYA Kwiyandikisha"
+
+#: config/c4x/c4x.h:222
+#, fuzzy
+msgid "Enable use of DB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:224
+#, fuzzy
+msgid "Disable use of DB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:226
+msgid "Enable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:228
+msgid "Disable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:230
+#, fuzzy
+msgid "Force constants into registers to improve hoisting"
+msgstr "Kuri"
+
+#: config/c4x/c4x.h:232
+msgid "Don't force constants into registers"
+msgstr ""
+
+#: config/c4x/c4x.h:234
+#, fuzzy
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr "Kuri Byemewe 3."
+
+#: config/c4x/c4x.h:236
+#, fuzzy
+msgid "Allow RTL generation to emit invalid 3 operand insns"
+msgstr "Kuri Sibyo 3."
+
+#: config/c4x/c4x.h:238
+#, fuzzy
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr "Bitashizweho umukono kugirango"
+
+#: config/c4x/c4x.h:240
+#, fuzzy
+msgid "Disallow unsigned iteration counts for RPTB/DB"
+msgstr "Bitashizweho umukono kugirango"
+
+#: config/c4x/c4x.h:242
+#, fuzzy
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr "Byose Bya Kwambukiranya"
+
+#: config/c4x/c4x.h:244
+#, fuzzy
+msgid "Only preserve 32 bits of FP reg across call"
+msgstr "Bya Kwambukiranya"
+
+#: config/c4x/c4x.h:246
+#, fuzzy
+msgid "Enable parallel instructions"
+msgstr "Biteganye Amabwiriza"
+
+#: config/c4x/c4x.h:248
+#, fuzzy
+msgid "Disable parallel instructions"
+msgstr "Biteganye Amabwiriza"
+
+#: config/c4x/c4x.h:250
+#, fuzzy
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr "Na Amabwiriza"
+
+#: config/c4x/c4x.h:252
+#, fuzzy
+msgid "Disable MPY||ADD and MPY||SUB instructions"
+msgstr "Na Amabwiriza"
+
+#: config/c4x/c4x.h:254
+#, fuzzy
+msgid "Assume that pointers may be aliased"
+msgstr "Gicurasi"
+
+#: config/c4x/c4x.h:256
+#, fuzzy
+msgid "Assume that pointers not aliased"
+msgstr "OYA"
+
+#: config/c4x/c4x.h:330
+#, fuzzy
+msgid "Specify maximum number of iterations for RPTS"
+msgstr "Kinini Umubare Bya Amasubiramo kugirango"
+
+#: config/c4x/c4x.h:332
+#, fuzzy
+msgid "Select CPU to generate code for"
+msgstr "Kuri ITEGEKONGENGA kugirango"
+
+#: config/cris/cris.c:630
+#, fuzzy
+msgid "unexpected index-type in cris_print_index"
+msgstr "Umubarendanga Ubwoko in"
+
+#: config/cris/cris.c:644
+#, fuzzy
+msgid "unexpected base-type in cris_print_base"
+msgstr "SHINGIRO Ubwoko in"
+
+#: config/cris/cris.c:945
+#, fuzzy, c-format
+msgid "stackframe too big: %d bytes"
+msgstr "Bayite"
+
+#: config/cris/cris.c:1256
+#, fuzzy
+msgid "allocated but unused delay list in epilogue"
+msgstr "Kidakoreshwa Gutinda Urutonde in"
+
+#: config/cris/cris.c:1266
+#, fuzzy
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr "Umumaro Ubwoko kugirango"
+
+#: config/cris/cris.c:1342
+#, fuzzy
+msgid "invalid operand for 'b' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1355
+#, fuzzy
+msgid "invalid operand for 'v' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1365
+#, fuzzy
+msgid "invalid operand for 'P' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1372
+#, fuzzy
+msgid "invalid operand for 'p' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1411
+#, fuzzy
+msgid "invalid operand for 'z' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
+#, fuzzy
+msgid "invalid operand for 'H' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1465
+#, fuzzy
+msgid "bad register"
+msgstr "Kwiyandikisha"
+
+#: config/cris/cris.c:1503
+#, fuzzy
+msgid "invalid operand for 'e' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1520
+#, fuzzy
+msgid "invalid operand for 'm' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1545
+#, fuzzy
+msgid "invalid operand for 'A' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1553
+#, fuzzy
+msgid "invalid operand for 'D' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1567
+#, fuzzy
+msgid "invalid operand for 'T' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1576
+#, fuzzy
+msgid "invalid operand modifier letter"
+msgstr "Sibyo Ibaruwa..."
+
+#: config/cris/cris.c:1584
+#, fuzzy, c-format
+msgid "internal error: bad register: %d"
+msgstr "By'imbere Ikosa Kwiyandikisha"
+
+#: config/cris/cris.c:1632
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1652
+msgid "unexpected operand"
+msgstr ""
+
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
+#, fuzzy
+msgid "unrecognized address"
+msgstr "Aderesi"
+
+#: config/cris/cris.c:2048
+#, 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:2421
+#, fuzzy
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr "By'imbere Ikosa Na:"
+
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
+msgid "unrecognized supposed constant"
+msgstr ""
+
+#: config/cris/cris.c:2603
+#, fuzzy
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
+msgstr "in"
+
+#: config/cris/cris.c:2622
+#, 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:2650
+#, fuzzy, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr "Kitazwi Verisiyo in Werurwe Cyangwa"
+
+#: config/cris/cris.c:2686
+#, fuzzy, c-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr "Kitazwi CPU Verisiyo in"
+
+#: config/cris/cris.c:2704
+#, fuzzy
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "-Na OYA in iyi Iboneza"
+
+#: config/cris/cris.c:2719
+#, fuzzy
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr "g Ihitamo ni Sibyo Na: Na"
+
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
+#, fuzzy
+msgid "unexpected side-effects in address"
+msgstr "Ingaruka in Aderesi"
+
+#: config/cris/cris.c:3008
+#, fuzzy
+msgid "unexpected PIC symbol"
+msgstr "IKIMENYETSO"
+
+#: config/cris/cris.c:3012
+#, fuzzy
+msgid "PIC register isn't set up"
+msgstr "Kwiyandikisha si Gushyiraho Hejuru"
+
+#: config/cris/cris.c:3033
+#, fuzzy
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr "Kwiyandikisha si Gushyiraho Hejuru"
+
+#: config/cris/aout.h:85
+#, fuzzy
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr "kugirango i Birutwa 100 Sisitemu"
+
+#: config/cris/aout.h:92
+#, fuzzy
+msgid "For elinux, request a specified stack-size for this program"
+msgstr "Kubaza... a Ingano kugirango iyi Porogaramu"
+
+#: config/cris/cris.h:354
+#, fuzzy
+msgid "Work around bug in multiplication instruction"
+msgstr "in Gukuba(*)"
+
+#. 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:360
+#, fuzzy
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr "kugirango 4."
+
+#: config/cris/cris.h:365
+#, fuzzy
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr "kugirango 100"
+
+#: config/cris/cris.h:369
+#, fuzzy
+msgid "Emit verbose debug information in assembly code"
+msgstr "Kosora amakosa Ibisobanuro in ITEGEKONGENGA"
+
+#: config/cris/cris.h:372
+#, fuzzy
+msgid "Do not use condition codes from normal instructions"
+msgstr "OYA Gukoresha Ibisabwa Bivuye Bisanzwe Amabwiriza"
+
+#: config/cris/cris.h:376
+#, fuzzy
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr "OYA Kwohereza Na: INGARUKA Igenera"
+
+#: config/cris/cris.h:379
+#, fuzzy
+msgid "Do not tune stack alignment"
+msgstr "OYA Itunganya"
+
+#: config/cris/cris.h:382
+#, fuzzy
+msgid "Do not tune writable data alignment"
+msgstr "OYA Ibyatanzwe Itunganya"
+
+#: config/cris/cris.h:385
+#, fuzzy
+msgid "Do not tune code and read-only data alignment"
+msgstr "OYA ITEGEKONGENGA Na Gusoma Ibyatanzwe Itunganya"
+
+#: config/cris/cris.h:394
+#, fuzzy
+msgid "Align code and data to 32 bits"
+msgstr "ITEGEKONGENGA Na Ibyatanzwe Kuri"
+
+#: config/cris/cris.h:407
+#, fuzzy
+msgid "Don't align items in code or data"
+msgstr "Gutondeka in ITEGEKONGENGA Cyangwa Ibyatanzwe"
+
+#: config/cris/cris.h:410
+#, 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:414
+#, 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:420
+#, fuzzy
+msgid "Override -mbest-lib-options"
+msgstr "Amahitamo"
+
+#: config/cris/cris.h:452
+#, fuzzy
+msgid "Generate code for the specified chip or CPU version"
+msgstr "ITEGEKONGENGA kugirango i Cyangwa Verisiyo"
+
+#: config/cris/cris.h:454
+#, fuzzy
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "Itunganya kugirango i Cyangwa Verisiyo"
+
+#: config/cris/cris.h:456
+#, 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:1016
+#, fuzzy
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr "Oya kugirango"
+
+#: config/cris/linux.h:69
+#, fuzzy
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr "Na: Na OYA Gukoresha Indango"
+
+#: config/fr30/fr30.c:468
+#, fuzzy
+msgid "fr30_print_operand_address: unhandled address"
+msgstr "Aderesi"
+
+#: config/fr30/fr30.c:492
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:512
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:533
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:541
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:558
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:565
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:582
+#, fuzzy
+msgid "fr30_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
+msgid "fr30_print_operand: unhandled MEM"
+msgstr ""
+
+#: config/fr30/fr30.h:64
+#, fuzzy
+msgid "Assume small address space"
+msgstr "Gitoya Aderesi Umwanya"
+
+#: config/frv/frv.c:576 config/frv/frv.c:603
+#, fuzzy, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr "CPU"
+
+#: config/frv/frv.c:2539
+#, fuzzy
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2550
+#, fuzzy
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "Kwiyandikisha Kuri"
+
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
+#, fuzzy
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2721
+#, fuzzy
+msgid "bad condition code"
+msgstr "Ibisabwa ITEGEKONGENGA"
+
+#: config/frv/frv.c:2796
+#, fuzzy
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "in"
+
+#: config/frv/frv.c:2857
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2865
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2881
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2895
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'g' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2943
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2956
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2977
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2995
+#, fuzzy
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:3015
+#, fuzzy
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "in Z"
+
+#: config/frv/frv.c:3046
+#, fuzzy
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "in 0"
+
+#: config/frv/frv.c:3051
+#, fuzzy
+msgid "frv_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/frv/frv.c:5944
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:6071
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6213
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:9774
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "ni OYA a Umubare wuzuye"
+
+#: config/frv/frv.c:9779
+#, fuzzy
+msgid "accumulator number is out of bounds"
+msgstr "Umubare ni Inyuma Bya"
+
+#: config/frv/frv.c:9790
+#, fuzzy, c-format
+msgid "inappropriate accumulator for %qs"
+msgstr "kugirango"
+
+#: config/frv/frv.c:9856
+#, fuzzy
+msgid "invalid IACC argument"
+msgstr "Sibyo"
+
+#: config/frv/frv.c:9879
+#, fuzzy, c-format
+msgid "%qs expects a constant argument"
+msgstr "%qsa"
+
+#: config/frv/frv.c:9884
+#, fuzzy, c-format
+msgid "constant argument out of range for %qs"
+msgstr "Inyuma Bya Urutonde kugirango"
+
+#: config/frv/frv.c:10319
+#, fuzzy
+msgid "media functions are not available unless -mmedia is used"
+msgstr "Ibitangazamakuru Imimaro OYA Bihari ni"
+
+#: config/frv/frv.c:10331
+#, fuzzy
+msgid "this media function is only available on the fr500"
+msgstr "iyi Ibitangazamakuru Umumaro ni Bihari ku i"
+
+#: config/frv/frv.c:10359
+#, fuzzy
+msgid "this media function is only available on the fr400 and fr550"
+msgstr "iyi Ibitangazamakuru Umumaro ni Bihari ku i Na"
+
+#: config/frv/frv.c:10378
+#, fuzzy
+msgid "this builtin function is only available on the fr405 and fr450"
+msgstr "iyi Umumaro ni Bihari ku i Na"
+
+#: config/frv/frv.c:10387
+#, fuzzy
+msgid "this builtin function is only available on the fr500 and fr550"
+msgstr "iyi Umumaro ni Bihari ku i Na"
+
+#: config/frv/frv.c:10399
+#, fuzzy
+msgid "this builtin function is only available on the fr450"
+msgstr "iyi 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:550
+#, c-format
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:358
+#, fuzzy
+msgid "-ms2600 is used without -ms"
+msgstr "-ni"
+
+#: config/h8300/h8300.c:364
+#, 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:159
+#, fuzzy
+msgid "Generate H8S code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:160
+#, fuzzy
+msgid "Do not generate H8S code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:161
+#, fuzzy
+msgid "Generate H8SX code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:162
+#, fuzzy
+msgid "Do not generate H8SX code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:163
+#, fuzzy
+msgid "Generate H8S/2600 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:164
+#, fuzzy
+msgid "Do not generate H8S/2600 code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:165
+msgid "Make integers 32 bits wide"
+msgstr ""
+
+#: config/h8300/h8300.h:168
+#, fuzzy
+msgid "Use registers for argument passing"
+msgstr "kugirango"
+
+#: config/h8300/h8300.h:170
+#, fuzzy
+msgid "Do not use registers for argument passing"
+msgstr "OYA Gukoresha kugirango"
+
+#: config/h8300/h8300.h:172
+#, fuzzy
+msgid "Consider access to byte sized memory slow"
+msgstr "Kuri Bayite Ububiko Buhoro"
+
+#: config/h8300/h8300.h:173
+msgid "Enable linker relaxing"
+msgstr ""
+
+#: config/h8300/h8300.h:174
+#, fuzzy
+msgid "Generate H8/300H code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:175
+#, fuzzy
+msgid "Enable the normal mode"
+msgstr "i Bisanzwe Ubwoko"
+
+#: config/h8300/h8300.h:176
+#, fuzzy
+msgid "Do not generate H8/300H code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:177
+#, fuzzy
+msgid "Use H8/300 alignment rules"
+msgstr "300 Itunganya"
+
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "code model %s not supported in PIC mode"
+msgstr "ITEGEKONGENGA Urugero OYA in Ubwoko"
+
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
+#, fuzzy, c-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1267
+#, fuzzy, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1270
+#, fuzzy, c-format
+msgid "code model %qs not supported in the %s bit mode"
+msgstr "ITEGEKONGENGA Urugero OYA in i Ubwoko"
+
+#: config/i386/i386.c:1273
+#, fuzzy
+msgid "code model %<large%> not supported yet"
+msgstr "ITEGEKONGENGA Urugero Binini OYA"
+
+#: config/i386/i386.c:1275
+#, fuzzy, c-format
+msgid "%i-bit mode not compiled in"
+msgstr "%i-bitUbwoko OYA in"
+
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
+#, fuzzy
+msgid "CPU you selected does not support x86-64 instruction set"
+msgstr "Byahiswemo OYA Gushigikira Gushyiraho"
+
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
+#, fuzzy, c-format
+msgid "bad value (%s) for -march= switch"
+msgstr "Agaciro kugirango Werurwe Hindura"
+
+#: config/i386/i386.c:1342
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtune= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1359
+#, fuzzy, c-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr "-ni OYA hagati 0 Na"
+
+#: config/i386/i386.c:1372
+#, fuzzy
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr "-ni Gukoresha"
+
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
+#, fuzzy, c-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr "-ni OYA hagati 0 Na"
+
+#: config/i386/i386.c:1385
+#, fuzzy
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr "-ni Gukoresha"
+
+#: config/i386/i386.c:1398
+#, fuzzy
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr "-Imimaro ni Gukoresha Imimaro"
+
+#: config/i386/i386.c:1436
+#, fuzzy, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr "-ni OYA hagati Na 12"
+
+#: config/i386/i386.c:1448
+#, 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:1460
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1507
+#, fuzzy
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr "-MAHARAKUBIRI Oya in i Ubwoko"
+
+#: config/i386/i386.c:1509
+#, fuzzy
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr "-OYA in i Ubwoko"
+
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
+#, fuzzy
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "Gushyiraho Yahagaritswe ikoresha"
+
+#: config/i386/i386.c:1554
+#, fuzzy
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "Gushyiraho Yahagaritswe ikoresha"
+
+#: config/i386/i386.c:1561
+#, fuzzy, c-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
+#, fuzzy
+msgid "fastcall and stdcall attributes are not compatible"
+msgstr "Na Ibiranga OYA"
+
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
+#, fuzzy
+msgid "fastcall and regparm attributes are not compatible"
+msgstr "Na Ibiranga OYA"
+
+#: config/i386/i386.c:1761
+#, fuzzy, c-format
+msgid "%qs attribute requires an integer constant argument"
+msgstr "%qsIkiranga Umubare wuzuye"
+
+#: config/i386/i386.c:1767
+#, fuzzy, c-format
+msgid "argument to %qs attribute larger than %d"
+msgstr "Kuri Ikiranga Kinini"
+
+#: config/i386/i386.c:2565
+#, fuzzy
+msgid "SSE register return with SSE disabled"
+msgstr "Kwiyandikisha Garuka Na: Yahagaritswe"
+
+#: config/i386/i386.c:2567
+#, fuzzy
+msgid "SSE register argument with SSE disabled"
+msgstr "Kwiyandikisha Na: Yahagaritswe"
+
+#: config/i386/i386.c:2862
+#, fuzzy
+msgid "SSE vector argument without SSE enabled changes the ABI"
+msgstr "Bikora Amahinduka i"
+
+#: config/i386/i386.c:2879
+#, fuzzy
+msgid "MMX vector argument without MMX enabled changes the ABI"
+msgstr "Bikora Amahinduka i"
+
+#: config/i386/i386.c:3127
+#, fuzzy
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr "Garuka Bikora Amahinduka i"
+
+#: config/i386/i386.c:6003
+#, fuzzy
+msgid "invalid UNSPEC as operand"
+msgstr "Sibyo Nka"
+
+#: config/i386/i386.c:6241
+#, fuzzy
+msgid "extended registers have no high halves"
+msgstr "Byongerewe... Oya kirekire"
+
+#: config/i386/i386.c:6256
+#, fuzzy
+msgid "unsupported operand size for extended register"
+msgstr "Ingano kugirango Byongerewe... Kwiyandikisha"
+
+#: config/i386/i386.c:6572
+#, 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:6625
+#, fuzzy, c-format
+msgid "invalid operand code '%c'"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/i386/i386.c:6668
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "Sibyo kugirango"
+
+#: config/i386/i386.c:11919
+#, fuzzy
+msgid "unknown insn mode"
+msgstr "Kitazwi Ubwoko"
+
+#: config/i386/i386.c:14174
+#, fuzzy, c-format
+msgid "selector must be an integer constant in the range 0..%i"
+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"
+"."
+
+#: config/i386/i386.c:14512
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "Gusunika"
+
+#: config/i386/i386.c:15634
+#, fuzzy, c-format
+msgid "%qs incompatible attribute ignored"
+msgstr "%qsIkiranga"
+
+#: config/i386/winnt.c:74
+#, fuzzy, c-format
+msgid "%qs attribute only applies to variables"
+msgstr "%qsIkiranga Kuri Ibihinduka"
+
+#: config/i386/winnt.c:172
+#, fuzzy
+msgid "%Jfunction '%D' is defined after prior declaration as dllimport: attribute ignored"
+msgstr "%Jfunction'%D'ni Nyuma Nka Ikiranga"
+
+#: config/i386/winnt.c:183
+#, fuzzy
+msgid "%Jinline function '%D' is declared as dllimport: attribute ignored."
+msgstr "%JinlineUmumaro ni Nka Ikiranga"
+
+#: config/i386/winnt.c:195
+#, fuzzy
+msgid "%Jdefinition of static data member '%D' of dllimport'd class."
+msgstr "%JdefinitionBya Ibyatanzwe Bya ishuri"
+
+#: config/i386/winnt.c:255
+#, fuzzy
+msgid "%Jinconsistent dll linkage for '%D', dllexport assumed."
+msgstr "%Jinconsistentkugirango"
+
+#: config/i386/winnt.c:299 config/sh/symbian.c:279
+#, fuzzy, c-format
+msgid "%qs declared as both exported to and imported from a DLL"
+msgstr "%qsNka Byombi Kuri Na cyavuye ahandi/ cyatumijwe Bivuye a"
+
+#: config/i386/winnt.c:308
+#, fuzzy
+msgid "%Jfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
+msgstr "%Jfailurein Bya IKIMENYETSO external"
+
+#: config/i386/winnt.c:447
+#, fuzzy
+msgid "%J'%D' defined locally after being referenced with dllimport linkage"
+msgstr "%J'%D'Nyuma Na:"
+
+#: config/i386/winnt.c:450
+#, fuzzy
+msgid "%J'%D' redeclared without dllimport attribute after being referenced with dllimport linkage"
+msgstr "%J'%D'Ikiranga Nyuma Na:"
+
+#: config/i386/winnt.c:617
+#, fuzzy
+msgid "%J'%D' causes a section type conflict"
+msgstr "%J'%D'a Icyiciro Ubwoko"
+
+#: config/i386/cygming.h:61
+#, fuzzy
+msgid "Use the Cygwin interface"
+msgstr "i"
+
+#: config/i386/cygming.h:62
+#, fuzzy
+msgid "Use the Mingw32 interface"
+msgstr "i"
+
+#: config/i386/cygming.h:63
+#, fuzzy
+msgid "Create GUI application"
+msgstr "Porogaramu"
+
+#: config/i386/cygming.h:64
+#, fuzzy
+msgid "Don't set Windows defines"
+msgstr "Gushyiraho"
+
+#: config/i386/cygming.h:65
+msgid "Set Windows defines"
+msgstr ""
+
+#: config/i386/cygming.h:66
+#, fuzzy
+msgid "Create console application"
+msgstr "Porogaramu"
+
+#: config/i386/cygming.h:67
+#, fuzzy
+msgid "Generate code for a DLL"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/i386/cygming.h:69
+#, fuzzy
+msgid "Ignore dllimport for functions"
+msgstr "kugirango Imimaro"
+
+#: config/i386/cygming.h:71
+#, fuzzy
+msgid "Use Mingw-specific thread support"
+msgstr "Urudodo Gushigikira"
+
+#: config/i386/cygming.h:185
+#, 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:191
+#, fuzzy
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "-ni Ihitamo ni"
+
+#: config/i386/i386-interix.h:257
+#, fuzzy
+msgid "ms-bitfields not supported for objc"
+msgstr "OYA kugirango"
+
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:347
+msgid "Alternate calling convention"
+msgstr ""
+
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#, fuzzy
+msgid "Use normal calling convention"
+msgstr "Bisanzwe"
+
+#: config/i386/i386.h:351
+#, fuzzy
+msgid "Align some doubles on dword boundary"
+msgstr "ku"
+
+#: config/i386/i386.h:353
+#, fuzzy
+msgid "Align doubles on word boundary"
+msgstr "ku ijambo"
+
+#: config/i386/i386.h:355
+#, fuzzy
+msgid "Uninitialized locals in .bss"
+msgstr "in"
+
+#: config/i386/i386.h:357
+#, fuzzy
+msgid "Uninitialized locals in .data"
+msgstr "in Ibyatanzwe"
+
+#: config/i386/i386.h:359 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#, fuzzy
+msgid "Use IEEE math for fp comparisons"
+msgstr "Imibare kugirango"
+
+#: config/i386/i386.h:361 config/ns32k/ns32k.h:169
+#, fuzzy
+msgid "Do not use IEEE math for fp comparisons"
+msgstr "OYA Gukoresha Imibare kugirango"
+
+#: config/i386/i386.h:363
+#, fuzzy
+msgid "Return values of functions in FPU registers"
+msgstr "Uduciro Bya Imimaro in"
+
+#: config/i386/i386.h:365
+#, fuzzy
+msgid "Do not return values of functions in FPU registers"
+msgstr "OYA Garuka Uduciro Bya Imimaro in"
+
+#: config/i386/i386.h:367
+#, fuzzy
+msgid "Do not generate sin, cos, sqrt for FPU"
+msgstr "OYA SIN COS SQRT kugirango"
+
+#: config/i386/i386.h:369
+#, fuzzy
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr "SIN COS SQRT kugirango"
+
+#: config/i386/i386.h:371
+#, fuzzy
+msgid "Omit the frame pointer in leaf functions"
+msgstr "i Ikadiri Mweretsi in Imimaro"
+
+#: config/i386/i386.h:374
+msgid "Enable stack probing"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#: config/i386/i386.h:379
+#, fuzzy
+msgid "Align destination of the string operations"
+msgstr "Ishyika Bya i Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:381
+#, fuzzy
+msgid "Do not align destination of the string operations"
+msgstr "OYA Gutondeka Ishyika Bya i Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:383
+#, fuzzy
+msgid "Inline all known string operations"
+msgstr "Byose Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:385
+#, fuzzy
+msgid "Do not inline all known string operations"
+msgstr "OYA Mumurongo Byose Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:387 config/i386/i386.h:391
+#, fuzzy
+msgid "Use push instructions to save outgoing arguments"
+msgstr "Amabwiriza Kuri Kubika ingingo"
+
+#: config/i386/i386.h:389 config/i386/i386.h:393
+#, fuzzy
+msgid "Do not use push instructions to save outgoing arguments"
+msgstr "OYA Gukoresha Amabwiriza Kuri Kubika ingingo"
+
+#: config/i386/i386.h:395
+#, fuzzy
+msgid "Support MMX built-in functions"
+msgstr "in Imimaro"
+
+#: config/i386/i386.h:397
+#, fuzzy
+msgid "Do not support MMX built-in functions"
+msgstr "OYA Gushigikira in Imimaro"
+
+#: config/i386/i386.h:399
+#, fuzzy
+msgid "Support 3DNow! built-in functions"
+msgstr "in Imimaro"
+
+#: config/i386/i386.h:401
+#, fuzzy
+msgid "Do not support 3DNow! built-in functions"
+msgstr "OYA Gushigikira in Imimaro"
+
+#: config/i386/i386.h:403
+#, fuzzy
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:405
+#, 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:407
+#, fuzzy
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:409
+#, 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:411
+#, fuzzy
+msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+msgstr "Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:413
+#, fuzzy
+msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+msgstr "OYA Gushigikira Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:415
+#, fuzzy
+msgid "sizeof(long double) is 16"
+msgstr "MAHARAKUBIRI ni"
+
+#: config/i386/i386.h:417
+#, fuzzy
+msgid "sizeof(long double) is 12"
+msgstr "MAHARAKUBIRI ni 12"
+
+#: config/i386/i386.h:419
+#, fuzzy
+msgid "Generate 64bit x86-64 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i386/i386.h:421
+#, fuzzy
+msgid "Generate 32bit i386 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i386/i386.h:423
+#, fuzzy
+msgid "Use native (MS) bitfield layout"
+msgstr "Imigaragarire"
+
+#: config/i386/i386.h:425
+#, fuzzy
+msgid "Use gcc default bitfield layout"
+msgstr "Mburabuzi Imigaragarire"
+
+#: config/i386/i386.h:427
+#, fuzzy
+msgid "Use red-zone in the x86-64 code"
+msgstr "Umutuku in i ITEGEKONGENGA"
+
+#: config/i386/i386.h:429
+#, fuzzy
+msgid "Do not use red-zone in the x86-64 code"
+msgstr "OYA Gukoresha Umutuku in i ITEGEKONGENGA"
+
+#: config/i386/i386.h:431
+#, fuzzy, c-format
+msgid "Use direct references against %gs when accessing tls data"
+msgstr "Indango Ryari: TLS Ibyatanzwe"
+
+#: config/i386/i386.h:433
+#, fuzzy, c-format
+msgid "Do not use direct references against %gs when accessing tls data"
+msgstr "OYA Gukoresha Indango Ryari: TLS Ibyatanzwe"
+
+#. 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:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
+#, fuzzy
+msgid "Schedule code for given CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/i386/i386.h:473
+#, fuzzy
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "Bihindagurika Akadomo ikoresha Gushyiraho"
+
+#: config/i386/i386.h:475 config/s390/s390.h:160
+#, fuzzy
+msgid "Generate code for given CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/i386/i386.h:477
+#, fuzzy
+msgid "Number of registers used to pass integer arguments"
+msgstr "Bya Kuri Umubare wuzuye ingingo"
+
+#: config/i386/i386.h:479
+#, fuzzy
+msgid "Loop code aligned to this power of 2"
+msgstr "ITEGEKONGENGA Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:481
+#, fuzzy
+msgid "Jump targets are aligned to this power of 2"
+msgstr "Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:483
+#, fuzzy
+msgid "Function starts are aligned to this power of 2"
+msgstr "Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:486
+#, fuzzy
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr "Kuri Gumana: Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:488
+#, fuzzy
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr "iyi 1. 5"
+
+#: config/i386/i386.h:490
+#, fuzzy
+msgid "Use given x86-64 code model"
+msgstr "ITEGEKONGENGA Urugero"
+
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:496
+msgid "Use given assembler dialect"
+msgstr ""
+
+#: config/i386/i386.h:498
+#, fuzzy
+msgid "Use given thread-local storage dialect"
+msgstr "Urudodo"
+
+#: config/i386/sco5.h:290
+#, fuzzy
+msgid "Generate ELF output"
+msgstr "Ibisohoka"
+
+#. 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:62
+#, fuzzy
+msgid "environment variable DJGPP not defined"
+msgstr "IMPINDURAGACIRO OYA"
+
+#: config/i386/xm-djgpp.h:64
+#, fuzzy, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr "IMPINDURAGACIRO Utudomo Kuri Ibuze IDOSIYE"
+
+#: config/i386/xm-djgpp.h:67
+#, fuzzy, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr "IMPINDURAGACIRO Utudomo Kuri IDOSIYE"
+
+#. 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:60
+#, fuzzy
+msgid "Generate code which uses the FPU"
+msgstr "ITEGEKONGENGA i"
+
+#: config/i860/i860.h:61 config/i860/i860.h:62
+#, fuzzy
+msgid "Do not generate code which uses the FPU"
+msgstr "OYA ITEGEKONGENGA i"
+
+#: config/ia64/ia64-c.c:52
+msgid "malformed #pragma builtin"
+msgstr ""
+
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
+#, fuzzy, c-format
+msgid "invalid argument of %qs attribute"
+msgstr "Sibyo Bya Ikiranga"
+
+#: config/ia64/ia64.c:506
+#, fuzzy
+msgid "%Jan address area attribute cannot be specified for local variables"
+msgstr "%JanAderesi Ubuso Ikiranga kugirango Ibihinduka"
+
+#: config/ia64/ia64.c:513
+#, fuzzy
+msgid "%Jaddress area of '%s' conflicts with previous declaration"
+msgstr "%JaddressUbuso Bya Na: Ibanjirije"
+
+#: config/ia64/ia64.c:520
+#, fuzzy
+msgid "%Jaddress area attribute cannot be specified for functions"
+msgstr "%JaddressUbuso Ikiranga kugirango Imimaro"
+
+#: config/ia64/ia64.c:4183
+#, fuzzy
+msgid "ia64_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
+#, fuzzy
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr "Agaciro Bya Urutonde Ifishi"
+
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
+#, fuzzy, c-format
+msgid "%s-%s is an empty range"
+msgstr "%s-%sni ubusa Urutonde"
+
+#: config/ia64/ia64.c:4634
+#, 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:4651
+#, fuzzy
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "Kugeza ku ndunduro Umubare wuzuye kugirango Byombi Na"
+
+#: config/ia64/ia64.c:4668
+#, fuzzy
+msgid "cannot optimize square root for both latency and throughput"
+msgstr "Kugeza ku ndunduro kare Imizi kugirango Byombi Na"
+
+#: config/ia64/ia64.c:4682
+#, fuzzy
+msgid "not yet implemented: latency-optimized inline square root"
+msgstr "OYA Cyuzuye Mumurongo kare Imizi"
+
+#: config/ia64/ia64.c:4694
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "Agaciro kugirango Ingano Hindura"
+
+#: config/ia64/ia64.c:4710
+#, fuzzy, c-format
+msgid "bad value (%s) for -tune= switch"
+msgstr "Agaciro kugirango 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:178
+#, fuzzy
+msgid "Generate big endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
+#, fuzzy
+msgid "Generate little endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:182
+#, fuzzy
+msgid "Generate code for GNU as"
+msgstr "ITEGEKONGENGA kugirango Nka"
+
+#: config/ia64/ia64.h:184
+#, fuzzy
+msgid "Generate code for Intel as"
+msgstr "ITEGEKONGENGA kugirango Nka"
+
+#: config/ia64/ia64.h:186
+#, fuzzy
+msgid "Generate code for GNU ld"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/ia64/ia64.h:188
+#, fuzzy
+msgid "Generate code for Intel ld"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/ia64/ia64.h:190
+#, fuzzy
+msgid "Generate code without GP reg"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:192
+#, fuzzy
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr "Guhagarara Mbere Na Nyuma Byongerewe..."
+
+#: config/ia64/ia64.h:194
+#, fuzzy
+msgid "Don't emit stop bits before and after volatile extended asms"
+msgstr "Guhagarara Mbere Na Nyuma Byongerewe..."
+
+#: config/ia64/ia64.h:196
+#, fuzzy
+msgid "Use in/loc/out register names"
+msgstr "in Inyuma Kwiyandikisha Amazina"
+
+#: config/ia64/ia64.h:198
+#, fuzzy
+msgid "Disable use of sdata/scommon/sbss"
+msgstr "Gukoresha Bya"
+
+#: config/ia64/ia64.h:200
+#, fuzzy
+msgid "Enable use of sdata/scommon/sbss"
+msgstr "Gukoresha Bya"
+
+#: config/ia64/ia64.h:202
+#, fuzzy
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr "ni Kubika Kugarura ku BUZIGUYE Amahamagara:"
+
+#: config/ia64/ia64.h:204
+#, fuzzy
+msgid "Generate self-relocatable code"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:206
+#, fuzzy
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Mumurongo Bihindagurika Akadomo Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:208
+#, fuzzy
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Mumurongo Bihindagurika Akadomo Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:211
+#, fuzzy
+msgid "Do not inline floating point division"
+msgstr "OYA Mumurongo Bihindagurika Akadomo"
+
+#: config/ia64/ia64.h:213
+#, fuzzy
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Mumurongo Umubare wuzuye Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:215
+#, fuzzy
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Mumurongo Umubare wuzuye Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:217
+#, fuzzy
+msgid "Do not inline integer division"
+msgstr "OYA Mumurongo Umubare wuzuye"
+
+#: config/ia64/ia64.h:219
+#, fuzzy
+msgid "Generate inline square root, optimize for latency"
+msgstr "Mumurongo kare Imizi Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:221
+#, fuzzy
+msgid "Generate inline square root, optimize for throughput"
+msgstr "Mumurongo kare Imizi Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:223
+#, fuzzy
+msgid "Do not inline square root"
+msgstr "OYA Mumurongo kare Imizi"
+
+#: config/ia64/ia64.h:225
+#, fuzzy
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr "2. Umurongo Kosora amakosa Ibisobanuro Biturutse Nka"
+
+#: config/ia64/ia64.h:227
+#, fuzzy
+msgid "Disable Dwarf 2 line debug info via GNU as"
+msgstr "2. Umurongo Kosora amakosa Ibisobanuro Biturutse Nka"
+
+#: config/ia64/ia64.h:229
+#, fuzzy
+msgid "Enable earlier placing stop bits for better scheduling"
+msgstr "Guhagarara kugirango"
+
+#: config/ia64/ia64.h:231
+#, fuzzy
+msgid "Disable earlier placing stop bits"
+msgstr "Guhagarara"
+
+#: config/ia64/ia64.h:276
+#, fuzzy
+msgid "Specify range of registers to make fixed"
+msgstr "Urutonde Bya Kuri Ubwoko BIHAMYE"
+
+#: config/ip2k/ip2k.c:1087
+msgid "bad operand"
+msgstr ""
+
+#: config/iq2000/iq2000.c:1649
+#, fuzzy, c-format
+msgid "bad value (%s) for -mcpu= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/iq2000/iq2000.c:1678
+#, fuzzy, c-format
+msgid "The compiler does not support -march=%s."
+msgstr "OYA Gushigikira Werurwe"
+
+#: config/iq2000/iq2000.c:2065
+#, fuzzy, c-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
+msgstr "Cyangwa ni Birutwa Zeru"
+
+#: config/iq2000/iq2000.c:2847
+#, fuzzy, c-format
+msgid "argument %qd is not a constant"
+msgstr "ni OYA a"
+
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
+#, fuzzy
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr "NTAGIHARI Mweretsi"
+
+#: config/iq2000/iq2000.c:3305
+#, c-format
+msgid "PRINT_OPERAND: Unknown punctuation '%c'"
+msgstr ""
+
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
+#: config/xtensa/xtensa.c:1887
+#, fuzzy
+msgid "PRINT_OPERAND null pointer"
+msgstr "NTAGIHARI Mweretsi"
+
+#: config/iq2000/iq2000.c:3383
+#, fuzzy, c-format
+msgid "invalid %%P operand"
+msgstr "Sibyo"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
+#, fuzzy, c-format
+msgid "invalid %%p value"
+msgstr "Agaciro siko"
+
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
+#, fuzzy, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr "Sibyo Gukoresha Bya Cyangwa"
+
+#: config/iq2000/iq2000.h:72 config/mn10300/mn10300.h:74
+#, fuzzy
+msgid "No default crt0.o"
+msgstr "Mburabuzi o"
+
+#: config/iq2000/iq2000.h:74
+#, fuzzy
+msgid "Use GP relative sdata/sbss sections"
+msgstr "Bifitanye isano Ibyatoranyijwe"
+
+#: config/iq2000/iq2000.h:76
+#, fuzzy
+msgid "Don't use GP relative sdata/sbss sections"
+msgstr "Gukoresha Bifitanye isano Ibyatoranyijwe"
+
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
+#, fuzzy
+msgid "Use ROM instead of RAM"
+msgstr "Bya"
+
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
+#, fuzzy
+msgid "Don't use ROM instead of RAM"
+msgstr "Gukoresha Bya"
+
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
+#, fuzzy
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr "Itatangijwe in Ibyatanzwe"
+
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
+#, fuzzy
+msgid "Don't put uninitialized constants in ROM"
+msgstr "Gushyira Itatangijwe in"
+
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
+#, fuzzy
+msgid "Specify CPU for scheduling purposes"
+msgstr "kugirango Impamvu"
+
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
+#, fuzzy
+msgid "Specify CPU for code generation purposes"
+msgstr "kugirango ITEGEKONGENGA Impamvu"
+
+#: config/m32r/m32r.c:178
+#, fuzzy, c-format
+msgid "bad value (%s) for -mmodel switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/m32r/m32r.c:187
+#, fuzzy, c-format
+msgid "bad value (%s) for -msdata switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/m32r/m32r.c:194
+#, fuzzy, c-format
+msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
+msgstr "Agaciro kugirango N 0 N 15"
+
+#: config/m32r/m32r.c:2111
+#, fuzzy, c-format
+msgid "invalid operand to %%s code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2118
+#, fuzzy, c-format
+msgid "invalid operand to %%p code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2173
+#, fuzzy
+msgid "bad insn for 'A'"
+msgstr "kugirango"
+
+#: config/m32r/m32r.c:2220
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2243
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2276
+#, fuzzy
+msgid "pre-increment address is not a register"
+msgstr "Byahawe imiterere mbere Iyongeragaciro Aderesi ni OYA a Kwiyandikisha"
+
+#: config/m32r/m32r.c:2283
+#, fuzzy
+msgid "pre-decrement address is not a register"
+msgstr "Byahawe imiterere mbere Aderesi ni OYA a Kwiyandikisha"
+
+#: config/m32r/m32r.c:2290
+#, fuzzy
+msgid "post-increment address is not a register"
+msgstr "Iposita Iyongeragaciro Aderesi ni OYA a Kwiyandikisha"
+
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
+#, fuzzy
+msgid "bad address"
+msgstr "Aderesi"
+
+#: config/m32r/m32r.c:2387
+#, fuzzy
+msgid "lo_sum not of register"
+msgstr "OYA Bya Kwiyandikisha"
+
+#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
+#: config/m32r/m32r.h:283
+#, fuzzy
+msgid "Display compile time statistics"
+msgstr "Gukusanya Igihe Sitatisitiki"
+
+#: config/m32r/m32r.h:285
+#, fuzzy
+msgid "Align all loops to 32 byte boundary"
+msgstr "Byose Kuri Bayite"
+
+#: config/m32r/m32r.h:288
+#, fuzzy
+msgid "Only issue one instruction per cycle"
+msgstr "Itangwa Uruziga"
+
+#: config/m32r/m32r.h:291
+#, fuzzy
+msgid "Prefer branches over conditional execution"
+msgstr "KURI"
+
+#: config/m32r/m32r.h:312
+#, fuzzy
+msgid "Code size: small, medium or large"
+msgstr "Ingano Gitoya biringaniye Cyangwa Binini"
+
+#: config/m32r/m32r.h:314
+#, fuzzy
+msgid "Small data area: none, sdata, use"
+msgstr "Ibyatanzwe Ubuso Ntacyo Gukoresha"
+
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
+#, fuzzy
+msgid "Don't call any cache flush functions"
+msgstr "Ubwihisho Imimaro"
+
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
+#, fuzzy
+msgid "Specify cache flush function"
+msgstr "Ubwihisho Umumaro"
+
+#: config/m32r/m32r.h:320
+#, fuzzy
+msgid "Don't call any cache flush trap"
+msgstr "Ubwihisho"
+
+#: config/m32r/m32r.h:322
+#, fuzzy
+msgid "Specify cache flush trap number"
+msgstr "Ubwihisho Umubare"
+
+#: config/m68hc11/m68hc11.c:293
+#, fuzzy, c-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr "-F kugirango OYA"
+
+#: config/m68hc11/m68hc11.c:1433
+#, fuzzy
+msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
+msgstr "%<Na Ibiranga OYA"
+
+#: config/m68hc11/m68hc11.c:1439
+#, fuzzy
+msgid "%<trap%> attribute is already used"
+msgstr "%<Ikiranga ni"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
+#, fuzzy
+msgid "move insn not handled"
+msgstr "Kwimura OYA"
+
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
+#, fuzzy
+msgid "invalid register in the move instruction"
+msgstr "Sibyo Kwiyandikisha in i Kwimura"
+
+#: config/m68hc11/m68hc11.c:3664
+#, fuzzy
+msgid "invalid operand in the instruction"
+msgstr "Sibyo in i"
+
+#: config/m68hc11/m68hc11.c:3959
+#, fuzzy
+msgid "invalid register in the instruction"
+msgstr "Sibyo Kwiyandikisha in i"
+
+#: config/m68hc11/m68hc11.c:3992
+#, fuzzy
+msgid "operand 1 must be a hard register"
+msgstr "1. a Ikomeye Kwiyandikisha"
+
+#: config/m68hc11/m68hc11.c:4006
+#, fuzzy
+msgid "invalid rotate insn"
+msgstr "Sibyo Kuzerutsa"
+
+#: config/m68hc11/m68hc11.c:4430
+#, fuzzy
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr "Na in i"
+
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
+#, fuzzy
+msgid "cannot do z-register replacement"
+msgstr "Z Kwiyandikisha"
+
+#: config/m68hc11/m68hc11.c:5130
+#, 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:179
+#, fuzzy
+msgid "Compile with 16-bit integer mode"
+msgstr "Na: Umubare wuzuye Ubwoko"
+
+#: config/m68hc11/m68hc11.h:181
+#, fuzzy
+msgid "Compile with 32-bit integer mode"
+msgstr "Na: Umubare wuzuye Ubwoko"
+
+#: config/m68hc11/m68hc11.h:183
+#, fuzzy
+msgid "Auto pre/post decrement increment allowed"
+msgstr "Byahawe imiterere mbere Iposita Iyongeragaciro"
+
+#: config/m68hc11/m68hc11.h:185
+#, fuzzy
+msgid "Auto pre/post decrement increment not allowed"
+msgstr "Byahawe imiterere mbere Iposita Iyongeragaciro OYA"
+
+#: config/m68hc11/m68hc11.h:187
+#, fuzzy
+msgid "Min/max instructions allowed"
+msgstr "KININI Amabwiriza"
+
+#: config/m68hc11/m68hc11.h:189
+#, fuzzy
+msgid "Min/max instructions not allowed"
+msgstr "KININI Amabwiriza OYA"
+
+#: config/m68hc11/m68hc11.h:191
+#, fuzzy
+msgid "Use call and rtc for function calls and returns"
+msgstr "Na kugirango Umumaro Amahamagara: Na"
+
+#: config/m68hc11/m68hc11.h:193
+#, fuzzy
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Na kugirango Umumaro Amahamagara: Na"
+
+#: config/m68hc11/m68hc11.h:195
+#, fuzzy
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "OYA Gukoresha Kwohereza Ubwoko kugirango Yoroshe"
+
+#: config/m68hc11/m68hc11.h:197
+#, fuzzy
+msgid "Use direct addressing mode for soft registers"
+msgstr "Kwohereza Ubwoko kugirango Yoroshe"
+
+#: config/m68hc11/m68hc11.h:199 config/m68hc11/m68hc11.h:205
+#, fuzzy
+msgid "Compile for a 68HC11"
+msgstr "kugirango a"
+
+#: config/m68hc11/m68hc11.h:201 config/m68hc11/m68hc11.h:207
+#, fuzzy
+msgid "Compile for a 68HC12"
+msgstr "kugirango a"
+
+#: config/m68hc11/m68hc11.h:203 config/m68hc11/m68hc11.h:209
+#, 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:223
+#, fuzzy
+msgid "Specify the register allocation order"
+msgstr "i Kwiyandikisha Itondekanya"
+
+#: config/m68hc11/m68hc11.h:225
+#, fuzzy
+msgid "Indicate the number of soft registers available"
+msgstr "i Umubare Bya Yoroshe Bihari"
+
+#: config/m68k/m68k.c:216
+#, fuzzy
+msgid "-mshared-library-id= specified without -mid-shared-library"
+msgstr "-Isomero ID MID Isomero"
+
+#: config/m68k/m68k.c:219
+#, fuzzy, c-format
+msgid "-mshared-library-id=%d is not between 0 and %d"
+msgstr "-Isomero ID ni OYA hagati 0 Na"
+
+#: config/m68k/m68k.c:233
+#, fuzzy
+msgid "cannot specify both -msep-data and -mid-shared-library"
+msgstr "Byombi Ibyatanzwe Na MID Isomero"
+
+#: config/m68k/m68k.c:245
+#, fuzzy
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr "-ni OYA ku i Cyangwa"
+
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
+#, fuzzy
+msgid "stack limit expression is not supported"
+msgstr "imvugo ni OYA"
+
+#: config/m68k/m68k.h:240 config/m68k/m68k.h:242
+#, fuzzy
+msgid "Generate code for a 68020"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:247 config/m68k/m68k.h:250
+#, fuzzy
+msgid "Generate code for a 68000"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:252
+#, fuzzy
+msgid "Use the bit-field instructions"
+msgstr "i Umwanya Amabwiriza"
+
+#: config/m68k/m68k.h:254
+#, fuzzy
+msgid "Do not use the bit-field instructions"
+msgstr "OYA Gukoresha i Umwanya Amabwiriza"
+
+#: config/m68k/m68k.h:256
+#, fuzzy
+msgid "Consider type 'int' to be 16 bits wide"
+msgstr "Ubwoko Kuri"
+
+#: config/m68k/m68k.h:258
+#, fuzzy
+msgid "Consider type 'int' to be 32 bits wide"
+msgstr "Ubwoko Kuri"
+
+#: config/m68k/m68k.h:261
+#, fuzzy
+msgid "Generate code with library calls for floating point"
+msgstr "ITEGEKONGENGA Na: Isomero Amahamagara: kugirango Bihindagurika Akadomo"
+
+#: config/m68k/m68k.h:263
+#, fuzzy
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "ITEGEKONGENGA kugirango a Gishya Amabwiriza"
+
+#: config/m68k/m68k.h:266
+#, fuzzy
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "ITEGEKONGENGA kugirango a Gishya Amabwiriza"
+
+#: config/m68k/m68k.h:270
+#, fuzzy
+msgid "Generate code for a 68030"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:273
+#, fuzzy
+msgid "Generate code for a 68040"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:277
+#, fuzzy
+msgid "Generate code for a 68060"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:282
+#, fuzzy
+msgid "Generate code for a 520X"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:286
+#, fuzzy
+msgid "Generate code for a 5206e"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:290
+#, fuzzy
+msgid "Generate code for a 528x"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:294
+#, fuzzy
+msgid "Generate code for a 5307"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:298
+#, fuzzy
+msgid "Generate code for a 5407"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:301
+#, fuzzy
+msgid "Generate code for a 68851"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:303
+#, fuzzy
+msgid "Do no generate code for a 68851"
+msgstr "Oya ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:306
+#, fuzzy
+msgid "Generate code for a 68302"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:309
+#, fuzzy
+msgid "Generate code for a 68332"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:313
+#, fuzzy
+msgid "Generate code for a cpu32"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:316
+#, fuzzy
+msgid "Align variables on a 32-bit boundary"
+msgstr "Ibihinduka ku a"
+
+#: config/m68k/m68k.h:318
+#, fuzzy
+msgid "Align variables on a 16-bit boundary"
+msgstr "Ibihinduka ku a"
+
+#: config/m68k/m68k.h:320
+#, fuzzy
+msgid "Enable separate data segment"
+msgstr "Ibyatanzwe"
+
+#: config/m68k/m68k.h:322
+#, fuzzy
+msgid "Disable separate data segment"
+msgstr "Ibyatanzwe"
+
+#: config/m68k/m68k.h:324
+#, fuzzy
+msgid "Enable ID based shared library"
+msgstr "Isomero"
+
+#: config/m68k/m68k.h:326
+#, fuzzy
+msgid "Disable ID based shared library"
+msgstr "Isomero"
+
+#: config/m68k/m68k.h:328
+#, fuzzy
+msgid "Generate pc-relative code"
+msgstr "Bifitanye isano ITEGEKONGENGA"
+
+#: config/m68k/m68k.h:330
+#, fuzzy
+msgid "Do not use unaligned memory references"
+msgstr "OYA Gukoresha Ububiko Indango"
+
+#: config/m68k/m68k.h:332
+#, fuzzy
+msgid "Use unaligned memory references"
+msgstr "Ububiko Indango"
+
+#: config/m68k/m68k.h:334
+#, fuzzy
+msgid "Use different calling convention using 'rtd'"
+msgstr "ikoresha"
+
+#. TARGET_DEFAULT is defined in m68k-none.h, netbsd.h, etc.
+#: config/m68k/m68k.h:344
+#, fuzzy
+msgid "ID of shared library to build"
+msgstr "Bya Isomero Kuri"
+
+#: config/mcore/mcore.c:2992
+#, fuzzy
+msgid "invalid option %<-mstack-increment=%s%>"
+msgstr "Sibyo Ihitamo Iyongeragaciro"
+
+#: config/mcore/mcore.h:113
+#, 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:115
+#, fuzzy
+msgid "Inline constants if it only takes 1 instruction"
+msgstr "NIBA 1."
+
+#: config/mcore/mcore.h:117
+#, fuzzy
+msgid "Set maximum alignment to 4"
+msgstr "Kinini Itunganya Kuri 4."
+
+#: config/mcore/mcore.h:119
+#, fuzzy
+msgid "Set maximum alignment to 8"
+msgstr "Kinini Itunganya Kuri 8"
+
+#: config/mcore/mcore.h:123
+#, fuzzy
+msgid "Do not use the divide instruction"
+msgstr "OYA Gukoresha i Kugabanya"
+
+#: config/mcore/mcore.h:127
+#, fuzzy
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr "OYA in Ibikorwa:"
+
+#: config/mcore/mcore.h:129
+#, fuzzy
+msgid "Always treat bit-field as int-sized"
+msgstr "Umwanya Nka INT"
+
+#: config/mcore/mcore.h:133
+#, fuzzy
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr "Imimaro Kuri Kuri a 4. Bayite"
+
+#: config/mcore/mcore.h:135
+#, fuzzy
+msgid "Force functions to be aligned to a 2 byte boundary"
+msgstr "Imimaro Kuri Kuri a 2. Bayite"
+
+#: config/mcore/mcore.h:137
+#, fuzzy
+msgid "Emit call graph information"
+msgstr "Ibisobanuro"
+
+#: config/mcore/mcore.h:141
+#, fuzzy
+msgid "Prefer word accesses over byte accesses"
+msgstr "ijambo KURI Bayite"
+
+#: config/mcore/mcore.h:152
+#, fuzzy
+msgid "Generate code for the M*Core M340"
+msgstr "ITEGEKONGENGA kugirango i"
+
+#: config/mcore/mcore.h:165
+#, fuzzy
+msgid "Maximum amount for a single stack increment operation"
+msgstr "Igiteranyo kugirango a UMWE Iyongeragaciro"
+
+#: config/mips/mips.c:4025
+#, fuzzy, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/mips/mips.c:4048
+#, fuzzy, c-format
+msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr "-Na: i Ikindi Amahitamo a"
+
+#: config/mips/mips.c:4067
+#, fuzzy, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-Werurwe ni OYA Na: i Byahiswemo"
+
+#: config/mips/mips.c:4082
+#, fuzzy
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "-Na: a"
+
+#: config/mips/mips.c:4084
+#, fuzzy
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "-Na: a"
+
+#: config/mips/mips.c:4086
+#, fuzzy
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "-Na: a"
+
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
+#, fuzzy, c-format
+msgid "unsupported combination: %s"
+msgstr "Ivanga"
+
+#: config/mips/mips.c:4136
+#, fuzzy
+msgid "-mint64 is a deprecated option"
+msgstr "-ni a Bitemewe. Ihitamo"
+
+#: config/mips/mips.c:4187
+#, fuzzy
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "Bya Amabwiriza Bikora OYA ku"
+
+#: config/mips/mips.c:4204
+#, fuzzy
+msgid "-G is incompatible with PIC code which is the default"
+msgstr "-ni Na: ITEGEKONGENGA ni i Mburabuzi"
+
+#: config/mips/mips.c:4271
+#, fuzzy
+msgid "-mips3d requires -mpaired-single"
+msgstr "-UMWE"
+
+#: config/mips/mips.c:4280
+#, fuzzy
+msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
+msgstr "-UMWE Na: Kureremba"
+
+#: config/mips/mips.c:4285
+#, fuzzy
+msgid "-mips3d/-mpaired-single must be used with -mips64"
+msgstr "-UMWE Na:"
+
+#: config/mips/mips.c:4643
+#, fuzzy
+msgid "mips_debugger_offset called with non stack/frame/arg pointer"
+msgstr "Na: Ikadiri Mweretsi"
+
+#: config/mips/mips.c:4769
+#, fuzzy, c-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:4783
+#, fuzzy, c-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:4796
+#, fuzzy, c-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:4809
+#, fuzzy, c-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:4823
+#, fuzzy, c-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr "Kitazwi"
+
+#: config/mips/mips.c:4852
+#, fuzzy, c-format
+msgid "PRINT_OPERAND, invalid insn for %%C"
+msgstr "Sibyo kugirango"
+
+#: config/mips/mips.c:4869
+#, fuzzy, c-format
+msgid "PRINT_OPERAND, invalid insn for %%N"
+msgstr "Sibyo kugirango"
+
+#: config/mips/mips.c:4878
+#, fuzzy, c-format
+msgid "PRINT_OPERAND, invalid insn for %%F"
+msgstr "Sibyo kugirango"
+
+#: config/mips/mips.c:4887
+#, fuzzy, c-format
+msgid "PRINT_OPERAND, invalid insn for %%W"
+msgstr "Sibyo kugirango"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/mips/mips.c:4908
+#, fuzzy, c-format
+msgid "invalid %%Y value"
+msgstr "Agaciro siko"
+
+#: config/mips/mips.c:4986
+#, fuzzy
+msgid "PRINT_OPERAND, invalid operand for relocation"
+msgstr "Sibyo kugirango"
+
+#: config/mips/mips.c:7573
+#, fuzzy, c-format
+msgid "cannot handle inconsistent calls to %qs"
+msgstr "Amahamagara: Kuri"
+
+#: config/mips/mips.c:8963
+#, fuzzy
+msgid "the cpu name must be lower case"
+msgstr "i CPU Izina: Ntoya"
+
+#: config/mips/mips.c:8985
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "Agaciro kugirango"
+
+#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
+#. 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.
+#. Bizarre, 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:537
+#, fuzzy
+msgid "Use 64-bit int type"
+msgstr "INT Ubwoko"
+
+#: config/mips/mips.h:539
+#, fuzzy
+msgid "Use 64-bit long type"
+msgstr "Ubwoko"
+
+#: config/mips/mips.h:541
+#, fuzzy
+msgid "Use 32-bit long type"
+msgstr "Ubwoko"
+
+#: config/mips/mips.h:543
+#, fuzzy
+msgid "Optimize lui/addiu address loads"
+msgstr "Aderesi"
+
+#: config/mips/mips.h:545
+#, fuzzy
+msgid "Don't optimize lui/addiu address loads"
+msgstr "Kugeza ku ndunduro Aderesi"
+
+#: config/mips/mips.h:547
+#, fuzzy
+msgid "Use GNU as (now ignored)"
+msgstr "Nka NONEAHA"
+
+#: config/mips/mips.h:549 config/mips/mips.h:551
+#, fuzzy
+msgid "Use GP relative sdata/sbss sections (now ignored)"
+msgstr "Bifitanye isano Ibyatoranyijwe NONEAHA"
+
+#: config/mips/mips.h:553 config/mips/mips.h:555
+#, fuzzy
+msgid "Don't use GP relative sdata/sbss sections (now ignored)"
+msgstr "Gukoresha Bifitanye isano Ibyatoranyijwe NONEAHA"
+
+#: config/mips/mips.h:557
+#, fuzzy
+msgid "Output compiler statistics (now ignored)"
+msgstr "Sitatisitiki NONEAHA"
+
+#: config/mips/mips.h:559
+#, fuzzy
+msgid "Don't output compiler statistics"
+msgstr "Ibisohoka Sitatisitiki"
+
+#: config/mips/mips.h:561
+#, fuzzy
+msgid "Don't optimize block moves"
+msgstr "Kugeza ku ndunduro Funga"
+
+#: config/mips/mips.h:563
+#, fuzzy
+msgid "Optimize block moves"
+msgstr "Funga"
+
+#: config/mips/mips.h:565
+msgid "Use mips-tfile asm postpass"
+msgstr ""
+
+#: config/mips/mips.h:567
+#, fuzzy
+msgid "Don't use mips-tfile asm postpass"
+msgstr "Gukoresha"
+
+#: config/mips/mips.h:569 config/pa/pa.h:288
+#, fuzzy
+msgid "Use software floating point"
+msgstr "Bihindagurika Akadomo"
+
+#. 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:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#, fuzzy
+msgid "Use hardware floating point"
+msgstr "Bihindagurika Akadomo"
+
+#: config/mips/mips.h:573
+msgid "Use 64-bit FP registers"
+msgstr ""
+
+#: config/mips/mips.h:575
+msgid "Use 32-bit FP registers"
+msgstr ""
+
+#: config/mips/mips.h:577
+#, fuzzy
+msgid "Use 64-bit general registers"
+msgstr "Rusange"
+
+#: config/mips/mips.h:579
+#, fuzzy
+msgid "Use 32-bit general registers"
+msgstr "Rusange"
+
+#: config/mips/mips.h:581
+msgid "Use Irix PIC"
+msgstr ""
+
+#: config/mips/mips.h:583
+#, fuzzy
+msgid "Don't use Irix PIC"
+msgstr "Gukoresha"
+
+#: config/mips/mips.h:585
+#, fuzzy
+msgid "Use indirect calls"
+msgstr "BUZIGUYE Amahamagara:"
+
+#: config/mips/mips.h:587
+#, fuzzy
+msgid "Don't use indirect calls"
+msgstr "Gukoresha BUZIGUYE Amahamagara:"
+
+#: config/mips/mips.h:597
+#, fuzzy
+msgid "Use big-endian byte order"
+msgstr "Bayite Itondekanya"
+
+#: config/mips/mips.h:599
+#, fuzzy
+msgid "Use little-endian byte order"
+msgstr "Bayite Itondekanya"
+
+#: config/mips/mips.h:601
+#, fuzzy
+msgid "Use single (32-bit) FP only"
+msgstr "UMWE"
+
+#: config/mips/mips.h:603
+#, fuzzy
+msgid "Don't use single (32-bit) FP only"
+msgstr "Gukoresha UMWE"
+
+#: config/mips/mips.h:605 config/mips/mips.h:607
+#, fuzzy
+msgid "Use paired-single floating point instructions"
+msgstr "UMWE Bihindagurika Akadomo Amabwiriza"
+
+#: config/mips/mips.h:609 config/mips/mips.h:611
+#, fuzzy
+msgid "Use MIPS-3D instructions"
+msgstr "Amabwiriza"
+
+#: config/mips/mips.h:613
+#, fuzzy
+msgid "Use multiply accumulate"
+msgstr "Gukuba"
+
+#: config/mips/mips.h:615
+#, fuzzy
+msgid "Don't use multiply accumulate"
+msgstr "Gukoresha Gukuba"
+
+#: config/mips/mips.h:617
+#, fuzzy
+msgid "Don't generate fused multiply/add instructions"
+msgstr "Gukuba Kongeramo Amabwiriza"
+
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
+#, fuzzy
+msgid "Generate fused multiply/add instructions"
+msgstr "Gukuba Kongeramo Amabwiriza"
+
+#: config/mips/mips.h:621
+#, fuzzy
+msgid "Perform VR4130-specific alignment optimizations"
+msgstr "Itunganya"
+
+#: config/mips/mips.h:623
+#, fuzzy
+msgid "Don't perform VR4130-specific alignment optimizations"
+msgstr "Itunganya"
+
+#: config/mips/mips.h:625
+msgid "Work around early 4300 hardware bug"
+msgstr ""
+
+#: config/mips/mips.h:627
+#, fuzzy
+msgid "Don't work around early 4300 hardware bug"
+msgstr "Akazi"
+
+#: config/mips/mips.h:629
+#, fuzzy
+msgid "Work around errata for early SB-1 revision 2 cores"
+msgstr "kugirango 1. Isubiramo 2."
+
+#: config/mips/mips.h:631
+#, fuzzy
+msgid "Don't work around errata for early SB-1 revision 2 cores"
+msgstr "Akazi kugirango 1. Isubiramo 2."
+
+#: config/mips/mips.h:633
+msgid "Work around R4000 errata"
+msgstr ""
+
+#: config/mips/mips.h:635
+#, fuzzy
+msgid "Don't work around R4000 errata"
+msgstr "Akazi"
+
+#: config/mips/mips.h:637
+msgid "Work around R4400 errata"
+msgstr ""
+
+#: config/mips/mips.h:639
+#, fuzzy
+msgid "Don't work around R4400 errata"
+msgstr "Akazi"
+
+#: config/mips/mips.h:641
+msgid "Work around certain VR4120 errata"
+msgstr ""
+
+#: config/mips/mips.h:643
+#, fuzzy
+msgid "Don't work around certain VR4120 errata"
+msgstr "Akazi"
+
+#: config/mips/mips.h:645
+#, fuzzy
+msgid "Trap on integer divide by zero"
+msgstr "ku Umubare wuzuye Kugabanya ku Zeru"
+
+#: config/mips/mips.h:647
+#, fuzzy
+msgid "Don't trap on integer divide by zero"
+msgstr "ku Umubare wuzuye Kugabanya ku Zeru"
+
+#: config/mips/mips.h:649
+#, fuzzy
+msgid "Use trap to check for integer divide by zero"
+msgstr "Kuri Kugenzura... kugirango Umubare wuzuye Kugabanya ku Zeru"
+
+#: config/mips/mips.h:651
+#, fuzzy
+msgid "Use break to check for integer divide by zero"
+msgstr "itandukanya Kuri Kugenzura... kugirango Umubare wuzuye Kugabanya ku Zeru"
+
+#: config/mips/mips.h:653
+#, fuzzy
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr "Amabwiriza Mburabuzi kugirango"
+
+#: config/mips/mips.h:655
+#, fuzzy
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr "Gukoresha Amabwiriza Mburabuzi kugirango"
+
+#: config/mips/mips.h:657
+#, fuzzy
+msgid "Use NewABI-style %reloc() assembly operators"
+msgstr "IMISUSIRE Mukoresha"
+
+#: config/mips/mips.h:659
+#, fuzzy
+msgid "Use assembler macros instead of relocation operators"
+msgstr "Makoro Bya Mukoresha"
+
+#: config/mips/mips.h:661
+#, fuzzy
+msgid "Generate mips16 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/mips/mips.h:663
+#, fuzzy
+msgid "Generate normal-mode code"
+msgstr "Bisanzwe Ubwoko ITEGEKONGENGA"
+
+#: config/mips/mips.h:665
+#, fuzzy
+msgid "Lift restrictions on GOT size"
+msgstr "Amabwiriza ku Ingano"
+
+#: config/mips/mips.h:667
+#, fuzzy
+msgid "Do not lift restrictions on GOT size"
+msgstr "OYA Amabwiriza ku Ingano"
+
+#: config/mips/mips.h:669
+#, fuzzy
+msgid "FP exceptions are enabled"
+msgstr "Amarengayobora Bikora"
+
+#: config/mips/mips.h:671
+#, fuzzy
+msgid "FP exceptions are not enabled"
+msgstr "Amarengayobora OYA Bikora"
+
+#: config/mips/mips.h:786
+#, fuzzy
+msgid "Specify a Standard MIPS ISA"
+msgstr "a"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2318
+#, fuzzy
+msgid "mips16 function profiling"
+msgstr "Umumaro"
+
+#: config/mmix/mmix.c:229
+#, fuzzy, c-format
+msgid "-f%s not supported: ignored"
+msgstr "-F OYA"
+
+#: config/mmix/mmix.c:657
+#, fuzzy, c-format
+msgid "support for mode %qs"
+msgstr "Gushigikira kugirango Ubwoko"
+
+#: config/mmix/mmix.c:671
+#, 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:841
+#, fuzzy
+msgid "function_profiler support for MMIX"
+msgstr "Gushigikira kugirango"
+
+#: config/mmix/mmix.c:863
+#, fuzzy
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr "OYA in a Kwiyandikisha"
+
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
+#, fuzzy
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr "Itegerejwe a OYA iyi"
+
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
+#, fuzzy, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr "Kwiyandikisha"
+
+#: config/mmix/mmix.c:1550
+#, fuzzy
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr "Agaciro kugirango OYA a"
+
+#: config/mmix/mmix.c:1569
+#, fuzzy
+msgid "MMIX Internal: Expected a register, not this"
+msgstr "Itegerejwe a Kwiyandikisha OYA iyi"
+
+#: config/mmix/mmix.c:1579
+#, 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:1611
+#, fuzzy, c-format
+msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
+msgstr "in"
+
+#. We need the original here.
+#: config/mmix/mmix.c:1663
+#, fuzzy
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr "iyi"
+
+#: config/mmix/mmix.c:1720
+#, fuzzy
+msgid "MMIX Internal: This is not a recognized address"
+msgstr "ni OYA a Aderesi"
+
+#: config/mmix/mmix.c:1897
+#, 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:2133
+#, fuzzy, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "Ikadiri OYA a Igikubo Bya"
+
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
+#, fuzzy, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr "ni OYA a INT"
+
+#: config/mmix/mmix.c:2786
+#, fuzzy
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr "Kuri Ibisohoka Bicuritswe Ibisabwa"
+
+#: config/mmix/mmix.c:2793
+#, fuzzy
+msgid "MMIX Internal: What's the CC of this?"
+msgstr "i Bya iyi"
+
+#: config/mmix/mmix.c:2797
+#, fuzzy
+msgid "MMIX Internal: What is the CC of this?"
+msgstr "ni i Bya iyi"
+
+#: config/mmix/mmix.c:2867
+#, fuzzy
+msgid "MMIX Internal: This is not a constant:"
+msgstr "ni OYA a"
+
+#: 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/linux.h:45 config/mn10300/mn10300.h:71
+#, fuzzy
+msgid "Target the AM33 processor"
+msgstr "i"
+
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
+#, fuzzy
+msgid "Target the AM33/2.0 processor"
+msgstr "i 2. 0"
+
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
+msgid "Enable linker relaxations"
+msgstr ""
+
+#: config/mn10300/mn10300.h:69
+#, fuzzy
+msgid "Work around hardware multiply bug"
+msgstr "Gukuba"
+
+#: config/mn10300/mn10300.h:70
+#, fuzzy
+msgid "Do not work around hardware multiply bug"
+msgstr "OYA Akazi Gukuba"
+
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:135
+#, 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:412
+#, 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:437
+#, 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:457
+#, fuzzy, c-format
+msgid ""
+"unknown -munix= option (%s).\n"
+"Valid options are 93, 95 and 98.\n"
+msgstr "Kitazwi Ihitamo Amahitamo Na"
+
+#: config/pa/pa.c:462
+#, fuzzy, c-format
+msgid ""
+"unknown -munix= option (%s).\n"
+"Valid options are 93 and 95.\n"
+msgstr "Kitazwi Ihitamo Amahitamo Na"
+
+#: config/pa/pa.c:466
+#, fuzzy, c-format
+msgid ""
+"unknown -munix= option (%s).\n"
+"Valid option is 93.\n"
+msgstr "Kitazwi Ihitamo Ihitamo ni"
+
+#: config/pa/pa.c:483
+#, fuzzy
+msgid "PIC code generation is not supported in the portable runtime model\n"
+msgstr "ITEGEKONGENGA ni OYA in i"
+
+#: config/pa/pa.c:488
+#, fuzzy
+msgid "PIC code generation is not compatible with fast indirect calls\n"
+msgstr "ITEGEKONGENGA ni OYA Na: Byihuta BUZIGUYE"
+
+#: config/pa/pa.c:493
+#, fuzzy
+msgid "-g is only supported when using GAS on this processor,"
+msgstr "-g ni Ryari: ikoresha ku iyi"
+
+#: config/pa/pa.c:494
+#, fuzzy
+msgid "-g option disabled"
+msgstr "-g Ihitamo Yahagaritswe"
+
+#: config/pa/pa.c:8338
+#, fuzzy, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr "Itunganya kugirango Kinini Itunganya kugirango Ibyatanzwe"
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
+#, fuzzy
+msgid "Generate cpp defines for server IO"
+msgstr "kugirango Seriveri"
+
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
+#, fuzzy
+msgid "Generate cpp defines for workstation IO"
+msgstr "kugirango"
+
+#: config/pa/pa-hpux10.h:84
+#, fuzzy
+msgid ""
+"Specify UNIX standard for predefines and linking.\n"
+"Supported value is 93."
+msgstr "Bisanzwe kugirango Na Impuza Agaciro ni"
+
+#: config/pa/pa-hpux1010.h:28 config/pa/pa-hpux11.h:99
+#, fuzzy
+msgid ""
+"Specify UNIX standard for predefines and linking.\n"
+"Supported values are 93 and 95."
+msgstr "Bisanzwe kugirango Na Impuza Uduciro Na"
+
+#: config/pa/pa-hpux11.h:82
+#, fuzzy
+msgid "-munix=98 option required for C89 Amendment 1 features.\n"
+msgstr "-Ihitamo Bya ngombwa kugirango 1. Ibiranga"
+
+#: config/pa/pa-hpux1111.h:28
+#, fuzzy
+msgid ""
+"Specify UNIX standard for predefines and linking.\n"
+"Supported values are 93, 95 and 98."
+msgstr "Bisanzwe kugirango Na Impuza Uduciro Na"
+
+#. 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:254 config/pa/pa.h:260
+#, fuzzy
+msgid "Generate PA1.1 code"
+msgstr "1. ITEGEKONGENGA"
+
+#: config/pa/pa.h:256 config/pa/pa.h:258
+#, fuzzy
+msgid "Generate PA1.0 code"
+msgstr "0 ITEGEKONGENGA"
+
+#: config/pa/pa.h:262
+#, fuzzy
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "0 ITEGEKONGENGA 2. 10 Cyangwa"
+
+#: config/pa/pa.h:264
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:266
+#, fuzzy
+msgid "Do not disable FP regs"
+msgstr "OYA"
+
+#: config/pa/pa.h:268
+#, fuzzy
+msgid "Disable space regs"
+msgstr "Umwanya"
+
+#: config/pa/pa.h:270
+#, fuzzy
+msgid "Do not disable space regs"
+msgstr "OYA Umwanya"
+
+#: config/pa/pa.h:272
+#, fuzzy
+msgid "Put jumps in call delay slots"
+msgstr "in Gutinda Siloti"
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Do not put jumps in call delay slots"
+msgstr "OYA Gushyira in Gutinda Siloti"
+
+#: config/pa/pa.h:276
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "Kwohereza"
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "OYA Kwohereza"
+
+#: config/pa/pa.h:280
+msgid "Use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:282
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "OYA Gukoresha"
+
+#: config/pa/pa.h:284
+#, fuzzy
+msgid "Assume code will be assembled by GAS"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/pa/pa.h:286
+#, fuzzy
+msgid "Do not assume code will be assembled by GAS"
+msgstr "OYA ITEGEKONGENGA ku"
+
+#: config/pa/pa.h:290
+#, fuzzy
+msgid "Do not use software floating point"
+msgstr "OYA Gukoresha Bihindagurika Akadomo"
+
+#: config/pa/pa.h:292
+#, fuzzy
+msgid "Emit long load/store sequences"
+msgstr "Ibirimo"
+
+#: config/pa/pa.h:294
+#, fuzzy
+msgid "Do not emit long load/store sequences"
+msgstr "OYA Ibirimo"
+
+#: config/pa/pa.h:296
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "Byihuta BUZIGUYE Amahamagara:"
+
+#: config/pa/pa.h:298
+#, fuzzy
+msgid "Do not generate fast indirect calls"
+msgstr "OYA Byihuta BUZIGUYE Amahamagara:"
+
+#: config/pa/pa.h:300
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "ITEGEKONGENGA kugirango Hindura"
+
+#: config/pa/pa.h:302
+#, fuzzy
+msgid "Do not generate code for huge switch statements"
+msgstr "OYA ITEGEKONGENGA kugirango Hindura"
+
+#: config/pa/pa.h:304
+#, fuzzy
+msgid "Always generate long calls"
+msgstr "Amahamagara:"
+
+#: config/pa/pa.h:306
+#, fuzzy
+msgid "Generate long calls only when needed"
+msgstr "Amahamagara: Ryari:"
+
+#: config/pa/pa.h:308
+msgid "Enable linker optimizations"
+msgstr ""
+
+#: config/pa/pa.h:332
+#, fuzzy
+msgid ""
+"Specify PA-RISC architecture for code generation.\n"
+"Values are 1.0, 1.1 and 2.0."
+msgstr "01. 1na2. 0."
+
+#: config/pa/pa.h:335
+#, fuzzy
+msgid "Specify range of registers to make fixed."
+msgstr "Urutonde Bya Kuri Ubwoko BIHAMYE"
+
+#: config/pa/pa.h:337
+#, fuzzy
+msgid "Specify CPU for scheduling purposes."
+msgstr "kugirango Impamvu"
+
+#: config/pa/pa64-hpux.h:30
+#, fuzzy
+msgid "Assume code will be linked by GNU ld"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/pa/pa64-hpux.h:32
+#, fuzzy
+msgid "Assume code will be linked by HP ld"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/pdp11/pdp11.h:62 config/rs6000/rs6000.h:331
+#, fuzzy
+msgid "Do not use hardware floating point"
+msgstr "OYA Gukoresha Bihindagurika Akadomo"
+
+#. return float result in ac0
+#: config/pdp11/pdp11.h:64
+#, fuzzy
+msgid "Return floating point results in ac0"
+msgstr "Bihindagurika Akadomo Ibisubizo ku in"
+
+#: config/pdp11/pdp11.h:65
+#, fuzzy
+msgid "Return floating point results in memory"
+msgstr "Bihindagurika Akadomo Ibisubizo ku in Ububiko"
+
+#. is 11/40
+#: config/pdp11/pdp11.h:67
+#, fuzzy
+msgid "Generate code for an 11/40"
+msgstr "ITEGEKONGENGA kugirango"
+
+#. is 11/45
+#: config/pdp11/pdp11.h:70
+#, fuzzy
+msgid "Generate code for an 11/45"
+msgstr "ITEGEKONGENGA kugirango"
+
+#. is 11/10
+#: config/pdp11/pdp11.h:73
+#, fuzzy
+msgid "Generate code for an 11/10"
+msgstr "ITEGEKONGENGA kugirango 10"
+
+#. use movmemhi for bcopy
+#. use 32 bit for int
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
+#, fuzzy
+msgid "Use 32 bit int"
+msgstr "INT"
+
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
+#, fuzzy
+msgid "Use 16 bit int"
+msgstr "INT"
+
+#. use 32 bit for float
+#: config/pdp11/pdp11.h:83 config/pdp11/pdp11.h:84
+#, fuzzy
+msgid "Use 32 bit float"
+msgstr "Kureremba"
+
+#: config/pdp11/pdp11.h:85 config/pdp11/pdp11.h:86
+#, 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:95
+#, fuzzy
+msgid "Target has split I&D"
+msgstr "Gutandukanya"
+
+#: config/pdp11/pdp11.h:96
+#, fuzzy
+msgid "Target does not have split I&D"
+msgstr "OYA Gutandukanya"
+
+#. UNIX assembler syntax?
+#: config/pdp11/pdp11.h:98
+msgid "Use UNIX assembler syntax"
+msgstr ""
+
+#: config/pdp11/pdp11.h:99
+msgid "Use DEC assembler syntax"
+msgstr ""
+
+#: config/rs6000/host-darwin.c:52
+#, fuzzy
+msgid "Segmentation Fault (code)"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/host-darwin.c:83
+#, fuzzy
+msgid "Out of stack space.\n"
+msgstr "Bya Umwanya"
+
+#: config/rs6000/host-darwin.c:104
+#, fuzzy, c-format
+msgid "Try running '%s' in the shell to raise its limit.\n"
+msgstr "in i Igikonoshwa Kuri"
+
+#: config/rs6000/host-darwin.c:117
+msgid "Segmentation Fault"
+msgstr ""
+
+#: config/rs6000/host-darwin.c:131
+#, fuzzy, c-format
+msgid "While setting up signal stack: %m"
+msgstr "Igenamiterere Hejuru"
+
+#: config/rs6000/host-darwin.c:137
+#, fuzzy, c-format
+msgid "While setting up signal handler: %m"
+msgstr "Igenamiterere Hejuru"
+
+#: config/rs6000/host-darwin.c:181
+#, c-format
+msgid "couldn't unmap pch_address_space: %m\n"
+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:46
+msgid "ignoring malformed #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:59
+#, fuzzy
+msgid "missing open paren"
+msgstr "Ibuze Gufungura"
+
+#: config/rs6000/rs6000-c.c:61
+#, fuzzy
+msgid "missing number"
+msgstr "Ibuze Umubare"
+
+#: config/rs6000/rs6000-c.c:63
+#, fuzzy
+msgid "missing close paren"
+msgstr "Ibuze Gufunga"
+
+#: config/rs6000/rs6000-c.c:66
+#, fuzzy
+msgid "number must be 0 or 1"
+msgstr "Umubare 0 Cyangwa 1."
+
+#: config/rs6000/rs6000-c.c:69
+#, fuzzy
+msgid "junk at end of #pragma longcall"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/rs6000/rs6000.c:1254
+#, fuzzy
+msgid "-mmultiple is not supported on little endian systems"
+msgstr "-ni OYA ku"
+
+#: config/rs6000/rs6000.c:1261
+#, fuzzy
+msgid "-mstring is not supported on little endian systems"
+msgstr "-ni OYA ku"
+
+#: config/rs6000/rs6000.c:1275
+#, fuzzy, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr "Kitazwi Hindura"
+
+#: config/rs6000/rs6000.c:1287
+#, fuzzy
+msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
+msgstr "Kitazwi Bituzuye Cyangwa Ntacyo"
+
+#: config/rs6000/rs6000.c:1298
+#, fuzzy, c-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr "Hindura MAHARAKUBIRI"
+
+#: config/rs6000/rs6000.c:1354
+#, fuzzy
+msgid "AltiVec and E500 instructions cannot coexist"
+msgstr "Na Amabwiriza"
+
+#: config/rs6000/rs6000.c:1622
+#, fuzzy, c-format
+msgid "unknown -m%s= option specified: '%s'"
+msgstr "Kitazwi M Ihitamo"
+
+#: config/rs6000/rs6000.c:1643
+#, fuzzy, c-format
+msgid "not configured for ABI: '%s'"
+msgstr "OYA kugirango"
+
+#: config/rs6000/rs6000.c:1651
+msgid "Using darwin64 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1656
+#, fuzzy
+msgid "Using old darwin ABI"
+msgstr "ki/ bishaje"
+
+#: config/rs6000/rs6000.c:1662
+#, fuzzy, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr "Kitazwi"
+
+#: config/rs6000/rs6000.c:1679
+#, fuzzy
+msgid "invalid option for -mfloat-gprs"
+msgstr "Sibyo Ihitamo kugirango"
+
+#: config/rs6000/rs6000.c:1695
+#, fuzzy
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr "-UMWIKUBE ni OYA kugirango ni Na: i C Na C Amasomero"
+
+#: config/rs6000/rs6000.c:1702
+#, fuzzy, c-format
+msgid "unknown -malign-XXXXX option specified: '%s'"
+msgstr "Kitazwi Ihitamo"
+
+#: config/rs6000/rs6000.c:4756
+#, fuzzy
+msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr "ku Indango Bisanzwe Umugereka Na: Oya Bihuye neza"
+
+#: config/rs6000/rs6000.c:4829
+#, fuzzy
+msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
+msgstr "Garuka Agaciro in Kwiyandikisha Amabwiriza Yahagaritswe Gukoresha Kuri Gushoboza"
+
+#: config/rs6000/rs6000.c:5018
+#, fuzzy
+msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
+msgstr "in Kwiyandikisha Amabwiriza Yahagaritswe Gukoresha Kuri Gushoboza"
+
+#: config/rs6000/rs6000.c:5809
+#, fuzzy
+msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr "ku Indango Bisanzwe Umugereka Na: Oya Bihuye neza"
+
+#: config/rs6000/rs6000.c:6704
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "1. a 5"
+
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "2. a 5 Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:6847
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "1. Bya a"
+
+#: config/rs6000/rs6000.c:6901
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "1. Bya ni Inyuma Bya Urutonde"
+
+#: config/rs6000/rs6000.c:7063
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "3. a 4. Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:7235
+#, fuzzy, c-format
+msgid "argument to %qs must be a 2-bit unsigned literal"
+msgstr "Kuri a 2. Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:7348
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "Kuri a 2. Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:7363
+#, fuzzy, c-format
+msgid "invalid parameter combination for %qs AltiVec intrinsic"
+msgstr "Sibyo Ivanga kugirango"
+
+#: config/rs6000/rs6000.c:7597
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "1. Bya a"
+
+#: config/rs6000/rs6000.c:7670
+#, 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:10566
+#, 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:10575
+#, 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:10584
+#, fuzzy, c-format
+msgid "invalid %%G value"
+msgstr "Agaciro siko"
+
+#: config/rs6000/rs6000.c:10619
+#, fuzzy, c-format
+msgid "invalid %%j code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/rs6000/rs6000.c:10629
+#, 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:10639
+#, 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:10659 config/xtensa/xtensa.c:1937
+#, 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:10726
+#, 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:10773
+#, fuzzy, c-format
+msgid "invalid %%q value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:10817
+#, fuzzy, c-format
+msgid "invalid %%S value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:10859
+#, 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:10869
+#, 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:10878 config/xtensa/xtensa.c:1907
+#, fuzzy, c-format
+msgid "invalid %%v value"
+msgstr "Agaciro siko"
+
+#: config/rs6000/rs6000.c:13555
+#, fuzzy
+msgid "stack frame too large"
+msgstr "Ikadiri Binini"
+
+#: config/rs6000/rs6000.c:16073
+#, fuzzy
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "Oya Bya ITEGEKONGENGA kugirango iyi"
+
+#: config/rs6000/rs6000.c:17163
+#, fuzzy
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "Gukoresha Bya in ni Sibyo kugirango ITEGEKONGENGA"
+
+#: config/rs6000/rs6000.c:17165
+#, fuzzy
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "Gukoresha Bya in ni Bitemewe. Gukoresha INT"
+
+#: config/rs6000/rs6000.c:17169
+#, fuzzy
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr "Gukoresha Bya in ni Sibyo"
+
+#: config/rs6000/rs6000.c:17171
+#, fuzzy
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "Gukoresha Bya MAHARAKUBIRI in ni Sibyo"
+
+#: config/rs6000/rs6000.c:17173
+#, fuzzy
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "Gukoresha Bya MAHARAKUBIRI in ni Sibyo"
+
+#: config/rs6000/rs6000.c:17175
+#, fuzzy
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "Gukoresha Bya Icyungo in ni Sibyo"
+
+#: config/rs6000/rs6000.c:17177
+#, fuzzy
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr "Gukoresha Bya ITSINDA RY'IMIBARE C in ni Sibyo"
+
+#: config/rs6000/aix.h:204
+#, fuzzy
+msgid "Conform more closely to IBM XLC semantics"
+msgstr "Birenzeho Kuri"
+
+#: config/rs6000/aix.h:206
+#, fuzzy
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr "Bivuye"
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/aix52.h:31
+#, fuzzy
+msgid "Support message passing with the Parallel Environment"
+msgstr "Ubutumwa Na: i"
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:27 config/rs6000/aix52.h:27
+#, fuzzy
+msgid "Compile for 64-bit pointers"
+msgstr "kugirango"
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:29 config/rs6000/aix52.h:29
+#, fuzzy
+msgid "Compile for 32-bit pointers"
+msgstr "kugirango"
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:48 config/rs6000/aix52.h:48
+#, fuzzy
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:53 config/rs6000/aix52.h:53
+#, fuzzy
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "-Bikora"
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:57 config/rs6000/aix52.h:57
+#, fuzzy
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "-Bya ngombwa Na: Kwohereza OYA"
+
+#: config/rs6000/darwin.h:69 config/rs6000/sysv4.h:153
+#, fuzzy
+msgid "Generate 64-bit code"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/darwin.h:71 config/rs6000/sysv4.h:155
+#, fuzzy
+msgid "Generate 32-bit code"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/darwin.h:73
+#, fuzzy
+msgid "Generate code suitable for executables (NOT shared libs)"
+msgstr "ITEGEKONGENGA kugirango"
+
+#. The Darwin ABI always includes AltiVec, can't be (validly) turned
+#. off.
+#: config/rs6000/darwin.h:89
+#, fuzzy
+msgid "-mdynamic-no-pic overrides -fpic or -fPIC"
+msgstr "-Oya Cyangwa"
+
+#. Darwin doesn't support -fpic.
+#: config/rs6000/darwin.h:95
+#, fuzzy
+msgid "-fpic is not supported; -fPIC assumed"
+msgstr "-ni OYA"
+
+#: config/rs6000/darwin.h:113
+msgid "-m64 requires PowerPC64 architecture, enabling"
+msgstr ""
+
+#. See note below.
+#. if (rs6000_long_double_size_string == NULL)
+#. rs6000_long_double_type_size = 128;
+#: config/rs6000/eabispe.h:45 config/rs6000/linuxspe.h:62
+#, fuzzy
+msgid "-m64 not supported in this configuration"
+msgstr "-OYA in iyi Iboneza"
+
+#: config/rs6000/linux64.h:109
+#, fuzzy
+msgid "-m64 requires a PowerPC64 cpu"
+msgstr "-a CPU"
+
+#: config/rs6000/linux64.h:221
+#, fuzzy
+msgid "Call mcount for profiling before a function prologue"
+msgstr "kugirango Mbere a Umumaro"
+
+#: config/rs6000/linux64.h:223
+#, fuzzy
+msgid "Call mcount for profiling after a function prologue"
+msgstr "kugirango Nyuma a Umumaro"
+
+#. 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:277
+#, fuzzy
+msgid "Use POWER instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:280
+#, fuzzy
+msgid "Use POWER2 instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:282
+#, fuzzy
+msgid "Do not use POWER2 instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:285
+#, fuzzy
+msgid "Do not use POWER instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:287
+#, fuzzy
+msgid "Use PowerPC instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:290
+#, fuzzy
+msgid "Do not use PowerPC instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:292
+#, fuzzy
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr "Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:294
+#, fuzzy
+msgid "Do not use PowerPC General Purpose group optional instructions"
+msgstr "OYA Gukoresha Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:296
+#, fuzzy
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr "Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:298
+#, fuzzy
+msgid "Do not use PowerPC Graphics group optional instructions"
+msgstr "OYA Gukoresha Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:300
+#, fuzzy
+msgid "Use PowerPC-64 instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:302
+#, fuzzy
+msgid "Do not use PowerPC-64 instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:304
+#, fuzzy
+msgid "Use AltiVec instructions"
+msgstr "Amabwiriza"
+
+#: config/rs6000/rs6000.h:306
+#, fuzzy
+msgid "Do not use AltiVec instructions"
+msgstr "OYA Gukoresha Amabwiriza"
+
+#: config/rs6000/rs6000.h:308
+#, fuzzy
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr "Gishya kugirango"
+
+#: config/rs6000/rs6000.h:310
+#, fuzzy
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr "ki/ bishaje kugirango"
+
+#: config/rs6000/rs6000.h:313
+#, fuzzy
+msgid "Put everything in the regular TOC"
+msgstr "in i Ibisanzwe"
+
+#: config/rs6000/rs6000.h:315
+#, fuzzy
+msgid "Place floating point constants in TOC"
+msgstr "Bihindagurika Akadomo in"
+
+#: config/rs6000/rs6000.h:317
+#, fuzzy
+msgid "Do not place floating point constants in TOC"
+msgstr "OYA Bihindagurika Akadomo in"
+
+#: config/rs6000/rs6000.h:319
+#, fuzzy
+msgid "Place symbol+offset constants in TOC"
+msgstr "IKIMENYETSO Nta- boneza in"
+
+#: config/rs6000/rs6000.h:321
+#, fuzzy
+msgid "Do not place symbol+offset constants in TOC"
+msgstr "OYA IKIMENYETSO Nta- boneza in"
+
+#: config/rs6000/rs6000.h:327
+#, fuzzy
+msgid "Place variable addresses in the regular TOC"
+msgstr "IMPINDURAGACIRO Amaderesi in i Ibisanzwe"
+
+#: config/rs6000/rs6000.h:333
+#, fuzzy
+msgid "Generate load/store multiple instructions"
+msgstr "Ibirimo Igikubo Amabwiriza"
+
+#: config/rs6000/rs6000.h:335
+#, fuzzy
+msgid "Do not generate load/store multiple instructions"
+msgstr "OYA Ibirimo Igikubo Amabwiriza"
+
+#: config/rs6000/rs6000.h:337
+#, fuzzy
+msgid "Generate string instructions for block moves"
+msgstr "Ikurikiranyanyuguti Amabwiriza kugirango Funga"
+
+#: config/rs6000/rs6000.h:339
+#, fuzzy
+msgid "Do not generate string instructions for block moves"
+msgstr "OYA Ikurikiranyanyuguti Amabwiriza kugirango Funga"
+
+#: config/rs6000/rs6000.h:341
+#, fuzzy
+msgid "Generate load/store with update instructions"
+msgstr "Ibirimo Na: Kuvugurura Amabwiriza"
+
+#: config/rs6000/rs6000.h:343
+#, fuzzy
+msgid "Do not generate load/store with update instructions"
+msgstr "OYA Ibirimo Na: Kuvugurura Amabwiriza"
+
+#: config/rs6000/rs6000.h:347
+#, fuzzy
+msgid "Do not generate fused multiply/add instructions"
+msgstr "OYA Gukuba Kongeramo Amabwiriza"
+
+#: config/rs6000/rs6000.h:351
+#, fuzzy
+msgid "Do not schedule the start and end of the procedure"
+msgstr "OYA Igenabihe i Gutangira Na Impera Bya i"
+
+#: config/rs6000/rs6000.h:357
+#, fuzzy
+msgid "Return all structures in memory (AIX default)"
+msgstr "Byose in Ububiko Mburabuzi"
+
+#: config/rs6000/rs6000.h:359
+#, fuzzy
+msgid "Return small structures in registers (SVR4 default)"
+msgstr "Gitoya in Mburabuzi"
+
+#: config/rs6000/rs6000.h:365
+#, fuzzy
+msgid "Generate single field mfcr instruction"
+msgstr "UMWE Umwanya"
+
+#: config/rs6000/rs6000.h:367
+#, fuzzy
+msgid "Do not generate single field mfcr instruction"
+msgstr "OYA UMWE Umwanya"
+
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
+#, fuzzy
+msgid "Use features of and schedule code for given CPU"
+msgstr "Ibiranga Bya Na Igenabihe ITEGEKONGENGA kugirango"
+
+#: config/rs6000/rs6000.h:454
+#, fuzzy
+msgid "Enable debug output"
+msgstr "Kosora amakosa Ibisohoka"
+
+#: config/rs6000/rs6000.h:456
+#, fuzzy
+msgid "Select full, part, or no traceback table"
+msgstr "Cyangwa Oya imbonerahamwe#"
+
+#: config/rs6000/rs6000.h:457
+#, fuzzy
+msgid "Specify ABI to use"
+msgstr "Kuri Gukoresha"
+
+#: config/rs6000/rs6000.h:459
+#, fuzzy
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "Ingano Bya MAHARAKUBIRI Cyangwa"
+
+#: config/rs6000/rs6000.h:461
+#, fuzzy
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr "Yego Oya NIBA Amabwiriza"
+
+#: config/rs6000/rs6000.h:463
+#, fuzzy
+msgid "Specify yes/no if SPE SIMD instructions should be generated"
+msgstr "Yego Oya NIBA Amabwiriza"
+
+#: config/rs6000/rs6000.h:465
+#, fuzzy
+msgid "Specify yes/no if using floating point in the GPRs"
+msgstr "Yego Oya NIBA ikoresha Bihindagurika Akadomo in i"
+
+#: config/rs6000/rs6000.h:467
+#, fuzzy
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr "Yego Oya NIBA Amabwiriza kugirango"
+
+#: config/rs6000/rs6000.h:469
+#, fuzzy
+msgid "Avoid all range limits on call instructions"
+msgstr "Byose Urutonde Imbibi ku Amabwiriza"
+
+#: config/rs6000/rs6000.h:472
+#, fuzzy
+msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
+msgstr "Ibyerekeye Bitemewe. Ubwoko Ikoresha:"
+
+#: config/rs6000/rs6000.h:475
+#, fuzzy
+msgid "Determine which dependences between insns are considered costly"
+msgstr "hagati"
+
+#: config/rs6000/rs6000.h:477
+#, fuzzy
+msgid "Specify which post scheduling nop insertion scheme to apply"
+msgstr "Iposita Iyinjizamo Igishusho Kuri Gukurikiza"
+
+#: config/rs6000/rs6000.h:479
+#, fuzzy
+msgid "Specify alignment of structure fields default/natural"
+msgstr "Itunganya Bya Imiterere Imyanya Mburabuzi"
+
+#: config/rs6000/rs6000.h:481
+#, fuzzy
+msgid "Specify scheduling priority for dispatch slot restricted insns"
+msgstr "By'ibanze kugirango Nta gukoresha bisesuye"
+
+#. 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:1830
+#, 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:100
+#, fuzzy
+msgid "Align to the base type of the bit-field"
+msgstr "Kuri i SHINGIRO Ubwoko Bya i Umwanya"
+
+#: config/rs6000/sysv4.h:102
+#, 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:104
+#, fuzzy
+msgid "Don't assume that unaligned accesses are handled by the system"
+msgstr "ku i Sisitemu"
+
+#: config/rs6000/sysv4.h:106
+#, fuzzy
+msgid "Assume that unaligned accesses are handled by the system"
+msgstr "ku i Sisitemu"
+
+#: config/rs6000/sysv4.h:108 config/rs6000/sysv4.h:112
+#, fuzzy
+msgid "Produce code relocatable at runtime"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/rs6000/sysv4.h:110 config/rs6000/sysv4.h:114
+#, fuzzy
+msgid "Don't produce code relocatable at runtime"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/rs6000/sysv4.h:116 config/rs6000/sysv4.h:118
+#, fuzzy
+msgid "Produce little endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#, fuzzy
+msgid "Produce big endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:124
+#: config/rs6000/sysv4.h:125 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128
+#: config/rs6000/sysv4.h:138 config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:151 config/rs6000/sysv4.h:157
+#, fuzzy
+msgid "no description yet"
+msgstr "Oya Isobanuramiterere"
+
+#: config/rs6000/sysv4.h:129
+msgid "Use EABI"
+msgstr ""
+
+#: config/rs6000/sysv4.h:130
+#, fuzzy
+msgid "Don't use EABI"
+msgstr "Gukoresha"
+
+#: config/rs6000/sysv4.h:133
+#, fuzzy
+msgid "Do not allow bit-fields to cross word boundaries"
+msgstr "OYA Kwemerera Imyanya Kuri Kwambukiranya ijambo"
+
+#: config/rs6000/sysv4.h:135
+#, fuzzy
+msgid "Use alternate register names"
+msgstr "Kwiyandikisha Amazina"
+
+#: config/rs6000/sysv4.h:137
+#, fuzzy
+msgid "Don't use alternate register names"
+msgstr "Gukoresha Kwiyandikisha Amazina"
+
+#: config/rs6000/sysv4.h:141
+#, fuzzy
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:143
+#, fuzzy
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:145
+#, fuzzy
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:147
+#, fuzzy
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:149
+#, fuzzy
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr "i in i Amabendera Umutwempangano"
+
+#: config/rs6000/sysv4.h:150
+#, 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:219
+#, fuzzy, c-format
+msgid "bad value for -mcall-%s"
+msgstr "Agaciro kugirango"
+
+#: config/rs6000/sysv4.h:235
+#, fuzzy, c-format
+msgid "bad value for -msdata=%s"
+msgstr "Agaciro kugirango"
+
+#: config/rs6000/sysv4.h:252
+#, fuzzy, c-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:261
+#, fuzzy, c-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-F Na"
+
+#: config/rs6000/sysv4.h:270
+#, fuzzy, c-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:279
+#, fuzzy
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:285
+#, fuzzy, c-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:292
+#, fuzzy, c-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:299
+msgid "-mcall-aixdesc must be big endian"
+msgstr ""
+
+#: config/rs6000/sysv4.h:314
+#, fuzzy, c-format
+msgid "-m%s not supported in this configuration"
+msgstr "-M OYA in iyi Iboneza"
+
+#: config/s390/s390.c:1406
+#, fuzzy, c-format
+msgid "Unknown cpu used in -march=%s."
+msgstr "CPU in Werurwe"
+
+#: config/s390/s390.c:1425
+#, fuzzy, c-format
+msgid "Unknown cpu used in -mtune=%s."
+msgstr "CPU in"
+
+#: config/s390/s390.c:1430
+#, fuzzy, c-format
+msgid "z/Architecture mode not supported on %s."
+msgstr "Z Ubwoko OYA ku"
+
+#: config/s390/s390.c:1432
+#, fuzzy
+msgid "64-bit ABI not supported in ESA/390 mode."
+msgstr "OYA in Ubwoko"
+
+#: config/s390/s390.c:1443
+#, fuzzy
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr "-Kureremba OYA in Ivanga"
+
+#: config/s390/s390.c:1450
+#, fuzzy
+msgid "invalid value for -mwarn-framesize"
+msgstr "Sibyo Agaciro kugirango"
+
+#: config/s390/s390.c:1460
+#, fuzzy
+msgid "invalid value for -mstack-size"
+msgstr "Sibyo Agaciro kugirango Ingano"
+
+#: config/s390/s390.c:1463
+#, fuzzy
+msgid "stack size must be an exact power of 2"
+msgstr "Ingano NYACYO UMWIKUBE Bya 2."
+
+#: config/s390/s390.c:1469
+#, fuzzy
+msgid "invalid value for -mstack-guard"
+msgstr "Sibyo Agaciro kugirango"
+
+#: config/s390/s390.c:1472
+#, fuzzy
+msgid "stack size must be greater than the stack guard value"
+msgstr "Ingano Biruta i Agaciro"
+
+#: config/s390/s390.c:1475
+#, fuzzy
+msgid "stack guard value must be an exact power of 2"
+msgstr "Agaciro NYACYO UMWIKUBE Bya 2."
+
+#: config/s390/s390.c:1478
+#, fuzzy
+msgid "-mstack-size implies use of -mstack-guard"
+msgstr "-Ingano Gukoresha Bya"
+
+#: config/s390/s390.c:1482
+#, fuzzy
+msgid "-mstack-guard implies use of -mstack-size"
+msgstr "-Gukoresha Bya Ingano"
+
+#: config/s390/s390.c:4310
+#, fuzzy
+msgid "Cannot decompose address."
+msgstr "Aderesi"
+
+#: config/s390/s390.c:4502
+#, fuzzy
+msgid "UNKNOWN in print_operand !?"
+msgstr "in"
+
+#: config/s390/s390.c:6549
+#, fuzzy
+msgid "Total size of local variables exceeds architecture limit."
+msgstr "Ingano Bya Ibihinduka"
+
+#: config/s390/s390.c:7085
+#, fuzzy, c-format
+msgid "frame size of %qs is "
+msgstr "Ikadiri Ingano Bya ni"
+
+# sfx2/source\appl\sfx.src:STR_BYTES.text
+#: config/s390/s390.c:7085
+#, fuzzy
+msgid " bytes"
+msgstr "Bayite"
+
+#: config/s390/s390.c:7089
+#, c-format
+msgid "%qs uses dynamic stack allocation"
+msgstr ""
+
+#: config/s390/s390.h:136
+#, fuzzy
+msgid "Use bras for executable < 64k"
+msgstr "kugirango"
+
+#: config/s390/s390.h:137
+#, fuzzy
+msgid "Don't use bras"
+msgstr "Gukoresha"
+
+#: config/s390/s390.h:138
+#, fuzzy
+msgid "Additional debug prints"
+msgstr "Kosora amakosa"
+
+#: config/s390/s390.h:139
+#, fuzzy
+msgid "Don't print additional debug prints"
+msgstr "Gucapa Kosora amakosa"
+
+#: config/s390/s390.h:140
+msgid "64 bit ABI"
+msgstr ""
+
+#: config/s390/s390.h:141
+msgid "31 bit ABI"
+msgstr ""
+
+#: config/s390/s390.h:142
+#, fuzzy
+msgid "z/Architecture"
+msgstr "Z"
+
+#: config/s390/s390.h:143
+msgid "ESA/390 architecture"
+msgstr ""
+
+#: config/s390/s390.h:144
+#, fuzzy
+msgid "mvcle use"
+msgstr "Gukoresha"
+
+#: config/s390/s390.h:145
+msgid "mvc&ex"
+msgstr ""
+
+#: config/s390/s390.h:146
+#, fuzzy
+msgid "Enable tpf OS tracing code"
+msgstr "ITEGEKONGENGA"
+
+#: config/s390/s390.h:147
+#, fuzzy
+msgid "Disable tpf OS tracing code"
+msgstr "ITEGEKONGENGA"
+
+#: config/s390/s390.h:148
+#, fuzzy
+msgid "Disable fused multiply/add instructions"
+msgstr "Gukuba Kongeramo Amabwiriza"
+
+#: config/s390/s390.h:149
+#, fuzzy
+msgid "Enable fused multiply/add instructions"
+msgstr "Gukuba Kongeramo Amabwiriza"
+
+#: config/s390/s390.h:150
+#, fuzzy
+msgid "Maintain backchain pointer"
+msgstr "Mweretsi"
+
+#: config/s390/s390.h:151
+#, fuzzy
+msgid "Don't maintain backchain pointer"
+msgstr "Mweretsi"
+
+#: config/s390/s390.h:152
+#, fuzzy
+msgid "Use packed stack layout"
+msgstr "Imigaragarire"
+
+#: config/s390/s390.h:153
+#, fuzzy
+msgid "Don't use packed stack layout"
+msgstr "Gukoresha Imigaragarire"
+
+#: config/s390/s390.h:162
+#, fuzzy
+msgid "Warn if a single function's framesize exceeds the given framesize"
+msgstr "NIBA a UMWE i"
+
+#: config/s390/s390.h:165
+#, fuzzy
+msgid "Warn if a function uses alloca or creates an array with dynamic size"
+msgstr "NIBA a Umumaro Cyangwa Imbonerahamwe Na: Ingano"
+
+#: config/s390/s390.h:168
+#, fuzzy
+msgid "Emit extra code in the function prologue in order to trap if the stacksize exceeds the given limit"
+msgstr "Birenga ITEGEKONGENGA in i Umumaro in Itondekanya Kuri NIBA i i"
+
+#: config/s390/s390.h:171
+#, fuzzy
+msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
+msgstr "i KININI Umubare Bya Bayite Kuri Ibumoso: Kuri Ingano Mbere a ni"
+
+#: config/sh/sh.c:6201
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "_OYA ku iyi"
+
+#: config/sh/sh.c:7194
+#, 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.
+#. The trap_exit attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
+#, fuzzy, c-format
+msgid "%qs attribute only applies to interrupt functions"
+msgstr "%qsIkiranga Kuri Hagarikira aho Imimaro"
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:7223
+#, fuzzy, c-format
+msgid "%qs attribute argument not a string constant"
+msgstr "%qsIkiranga OYA a Ikurikiranyanyuguti"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:7258
+#, fuzzy, c-format
+msgid "%qs attribute argument not an integer constant"
+msgstr "%qsIkiranga OYA Umubare wuzuye"
+
+#: config/sh/symbian.c:147
+#, fuzzy
+msgid "%H function '%D' is defined after prior declaration as dllimport: attribute ignored"
+msgstr "%HUmumaro ni Nyuma Nka Ikiranga"
+
+#: config/sh/symbian.c:158
+#, fuzzy
+msgid "%Hinline function '%D' is declared as dllimport: attribute ignored."
+msgstr "%HinlineUmumaro ni Nka Ikiranga"
+
+#: config/sh/symbian.c:171
+#, fuzzy
+msgid "%Hdefinition of static data member '%D' of dllimport'd class."
+msgstr "%HdefinitionBya Ibyatanzwe Bya ishuri"
+
+#: config/sh/symbian.c:286
+#, fuzzy
+msgid "%Hfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
+msgstr "%Hfailurein Bya IKIMENYETSO external"
+
+#: config/sh/symbian.c:332
+#, fuzzy
+msgid "%H%s '%D' %s after being referenced with dllimport linkage."
+msgstr "%H%s'%D'%sNyuma Na:"
+
+#: config/sh/symbian.c:436
+#, fuzzy
+msgid "%Hvariable %qD definition is marked dllimport."
+msgstr "%Hvariable%qDInsobanuro ni cy/ byagarajwe"
+
+#: config/sh/symbian.c:511
+#, fuzzy
+msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
+msgstr "%HexternalBya ngombwa kugirango IKIMENYETSO Bya Ikiranga"
+
+#: config/sh/symbian.c:892 cp/tree.c:2286
+#, fuzzy, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "Kugenzura... Byanze in ku"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#. -fprofile-arcs needs a working libgcov . In unified tree configurations with newlib, this requires to configure with --with-newlib --with-headers. But there is no way to check here we have a working libgcov, so just assume that we have.
+#: config/sh/sh.h:754
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "ni OYA ku iyi Intego"
+
+#: config/sparc/sparc.c:584
+#, fuzzy, c-format
+msgid "%s is not supported by this configuration"
+msgstr "%sni OYA ku iyi Iboneza"
+
+#: config/sparc/sparc.c:591
+#, fuzzy
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr "-MAHARAKUBIRI OYA Na:"
+
+#: config/sparc/sparc.c:616
+#, fuzzy
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr "-ni OYA ku"
+
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
+#, fuzzy, c-format
+msgid "invalid %%Y operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7401
+#, fuzzy, c-format
+msgid "invalid %%A operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7411
+#, fuzzy, c-format
+msgid "invalid %%B operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7450
+#, fuzzy, c-format
+msgid "invalid %%c operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7451
+#, fuzzy, c-format
+msgid "invalid %%C operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7472
+#, fuzzy, c-format
+msgid "invalid %%d operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7473
+#, fuzzy, c-format
+msgid "invalid %%D operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7489
+#, fuzzy, c-format
+msgid "invalid %%f operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7503
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:7557
+#, fuzzy
+msgid "long long constant not a valid immediate operand"
+msgstr "OYA a Byemewe"
+
+#: config/sparc/sparc.c:7560
+#, fuzzy
+msgid "floating point constant not a valid immediate operand"
+msgstr "Bihindagurika Akadomo OYA a Byemewe"
+
+#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
+msgid "Use 64 bit long doubles"
+msgstr ""
+
+#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
+msgid "Use 128 bit long doubles"
+msgstr ""
+
+#: config/sparc/sp64-elf.h:87
+#, fuzzy
+msgid "Generate code for big endian"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/sparc/sp64-elf.h:88
+#, fuzzy
+msgid "Generate code for little endian"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/sparc/sp86x-elf.h:61
+#, fuzzy
+msgid "Use little-endian byte order for data"
+msgstr "Bayite Itondekanya kugirango Ibyatanzwe"
+
+#: config/sparc/sparc.h:632
+#, fuzzy
+msgid "Assume possible double misalignment"
+msgstr "MAHARAKUBIRI"
+
+#: config/sparc/sparc.h:634
+#, fuzzy
+msgid "Assume all doubles are aligned"
+msgstr "Byose"
+
+#: config/sparc/sparc.h:636
+#, fuzzy
+msgid "Pass -assert pure-text to linker"
+msgstr "Umwandiko Kuri"
+
+#: config/sparc/sparc.h:638
+#, fuzzy
+msgid "Do not pass -assert pure-text to linker"
+msgstr "OYA Umwandiko Kuri"
+
+#: config/sparc/sparc.h:640
+msgid "Use ABI reserved registers"
+msgstr ""
+
+#: config/sparc/sparc.h:642
+#, fuzzy
+msgid "Do not use ABI reserved registers"
+msgstr "OYA Gukoresha"
+
+#: config/sparc/sparc.h:644
+#, fuzzy
+msgid "Use hardware quad fp instructions"
+msgstr "Amabwiriza"
+
+#: config/sparc/sparc.h:646
+#, fuzzy
+msgid "Do not use hardware quad fp instructions"
+msgstr "OYA Gukoresha Amabwiriza"
+
+#: config/sparc/sparc.h:648
+#, fuzzy
+msgid "Compile for v8plus ABI"
+msgstr "kugirango"
+
+#: config/sparc/sparc.h:650
+#, fuzzy
+msgid "Do not compile for v8plus ABI"
+msgstr "OYA Gukusanya kugirango"
+
+#: config/sparc/sparc.h:652
+msgid "Utilize Visual Instruction Set"
+msgstr ""
+
+#: config/sparc/sparc.h:654
+#, fuzzy
+msgid "Do not utilize Visual Instruction Set"
+msgstr "OYA"
+
+#: config/sparc/sparc.h:656
+msgid "Pointers are 64-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:658
+msgid "Pointers are 32-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:660
+msgid "Use 32-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:662
+msgid "Use 64-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:664
+msgid "Use stack bias"
+msgstr ""
+
+#: config/sparc/sparc.h:666
+#, fuzzy
+msgid "Do not use stack bias"
+msgstr "OYA Gukoresha"
+
+#: config/sparc/sparc.h:668
+#, fuzzy
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr "ku Itunganya kugirango MAHARAKUBIRI ijambo Amakopi"
+
+#: config/sparc/sparc.h:670
+#, 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:672
+#, fuzzy
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr "Amabwiriza in Na"
+
+#: config/sparc/sparc.h:674
+#, fuzzy
+msgid "Do not optimize tail call instructions in assembler or linker"
+msgstr "OYA Kugeza ku ndunduro Amabwiriza in Cyangwa"
+
+#: config/sparc/sparc.h:719
+#, fuzzy
+msgid "Use given SPARC code model"
+msgstr "ITEGEKONGENGA Urugero"
+
+#: config/stormy16/stormy16.c:528
+#, fuzzy
+msgid "Constant halfword load operand out of range."
+msgstr "Ibirimo Inyuma Bya Urutonde"
+
+#: config/stormy16/stormy16.c:538
+#, fuzzy
+msgid "Constant arithmetic operand out of range."
+msgstr "Inyuma Bya Urutonde"
+
+#: config/stormy16/stormy16.c:1224
+#, fuzzy
+msgid "Local variable memory requirements exceed capacity."
+msgstr "IMPINDURAGACIRO Ububiko"
+
+#: config/stormy16/stormy16.c:1390
+#, fuzzy
+msgid "function_profiler support"
+msgstr "Gushigikira"
+
+#: config/stormy16/stormy16.c:1479
+#, fuzzy
+msgid "cannot use va_start in interrupt function"
+msgstr "Gukoresha in Hagarikira aho Umumaro"
+
+#: config/stormy16/stormy16.c:1921 config/stormy16/stormy16.c:1992
+#, fuzzy
+msgid "'B' operand is not constant"
+msgstr "'ni OYA"
+
+#: config/stormy16/stormy16.c:1948
+#, fuzzy
+msgid "'B' operand has multiple bits set"
+msgstr "'Igikubo Gushyiraho"
+
+#: config/stormy16/stormy16.c:1974
+#, fuzzy
+msgid "'o' operand is not constant"
+msgstr "'ni OYA"
+
+#: config/stormy16/stormy16.c:2006
+#, fuzzy
+msgid "xstormy16_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/stormy16/stormy16.c:2052
+#, fuzzy, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr "Hindura Inyandiko Bya Ingano Ibyinjijwe Binini"
+
+#: config/stormy16/stormy16.c:2434
+#, fuzzy
+msgid "%<__BELOW100__%> attribute only applies to variables"
+msgstr "%<_Ikiranga Kuri Ibihinduka"
+
+#: config/stormy16/stormy16.c:2441
+#, fuzzy
+msgid "__BELOW100__ attribute not allowed with auto storage class."
+msgstr "_Ikiranga OYA Na: Ikiyega ishuri"
+
+#: 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:147
+#, fuzzy
+msgid "junk at end of #pragma ghs section"
+msgstr "Umwanda ku Impera Bya Icyiciro"
+
+#: config/v850/v850-c.c:164
+#, fuzzy, c-format
+msgid "unrecognized section name \"%s\""
+msgstr "Icyiciro Izina:"
+
+#: config/v850/v850-c.c:179
+#, fuzzy
+msgid "malformed #pragma ghs section"
+msgstr "Icyiciro"
+
+#: config/v850/v850-c.c:198
+#, fuzzy
+msgid "junk at end of #pragma ghs interrupt"
+msgstr "Umwanda ku Impera Bya Hagarikira aho"
+
+#: config/v850/v850-c.c:209
+#, fuzzy
+msgid "junk at end of #pragma ghs starttda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:220
+#, fuzzy
+msgid "junk at end of #pragma ghs startsda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:231
+#, fuzzy
+msgid "junk at end of #pragma ghs startzda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:242
+#, fuzzy
+msgid "junk at end of #pragma ghs endtda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:253
+#, fuzzy
+msgid "junk at end of #pragma ghs endsda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:264
+#, fuzzy
+msgid "junk at end of #pragma ghs endzda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850.c:168
+#, fuzzy, c-format
+msgid "%s=%s is not numeric"
+msgstr "%s=%sni OYA Bikurikije umubare"
+
+#: config/v850/v850.c:175
+#, fuzzy, c-format
+msgid "%s=%s is too large"
+msgstr "%s=%sni Binini"
+
+#: config/v850/v850.c:339
+#, fuzzy
+msgid "const_double_split got a bad insn:"
+msgstr "a"
+
+#: config/v850/v850.c:904
+msgid "output_move_single:"
+msgstr ""
+
+#: config/v850/v850.c:2246
+#, fuzzy
+msgid "%Jdata area attributes cannot be specified for local variables"
+msgstr "%JdataUbuso Ibiranga kugirango Ibihinduka"
+
+#: config/v850/v850.c:2257
+#, fuzzy
+msgid "%Jdata area of '%D' conflicts with previous declaration"
+msgstr "%JdataUbuso Bya Na: Ibanjirije"
+
+#: config/v850/v850.c:2456
+#, c-format
+msgid "bogus JR construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
+#, fuzzy, c-format
+msgid "bad amount of stack space removal: %d"
+msgstr "Igiteranyo Bya Umwanya"
+
+#: config/v850/v850.c:2656
+#, 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:3221
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3243
+#, 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:174
+msgid "Support Green Hills ABI"
+msgstr ""
+
+#: config/v850/v850.h:177
+#, fuzzy
+msgid "Prohibit PC relative function calls"
+msgstr "Bifitanye isano Umumaro Amahamagara:"
+
+#: config/v850/v850.h:180
+#, fuzzy
+msgid "Reuse r30 on a per function basis"
+msgstr "ku a Umumaro Ishingiro"
+
+#: config/v850/v850.h:183
+#, fuzzy
+msgid "Use stubs for function prologues"
+msgstr "kugirango Umumaro"
+
+#: config/v850/v850.h:186
+#, fuzzy
+msgid "Same as: -mep -mprolog-function"
+msgstr "Nka Umumaro"
+
+#: config/v850/v850.h:187
+msgid "Enable backend debugging"
+msgstr ""
+
+#: config/v850/v850.h:189
+#, fuzzy
+msgid "Compile for the v850 processor"
+msgstr "kugirango i"
+
+#: config/v850/v850.h:191
+#, fuzzy
+msgid "Compile for v850e1 processor"
+msgstr "kugirango"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:193
+#, fuzzy
+msgid "Compile for v850e processor"
+msgstr "kugirango"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:195
+#, fuzzy
+msgid "Enable the use of the short load instructions"
+msgstr "i Gukoresha Bya i Ibirimo Amabwiriza"
+
+#: config/v850/v850.h:198
+#, fuzzy
+msgid "Do not use the callt instruction"
+msgstr "OYA Gukoresha i"
+
+#: config/v850/v850.h:205
+#, fuzzy
+msgid "Do not use registers r2 and r5"
+msgstr "OYA Gukoresha Na"
+
+#: config/v850/v850.h:207
+#, fuzzy
+msgid "Enforce strict alignment"
+msgstr "Itunganya"
+
+#: config/v850/v850.h:210
+#, fuzzy
+msgid "Use 4 byte entries in switch tables"
+msgstr "4. Bayite Ibyinjijwe in Hindura Imbonerahamwe"
+
+#: config/v850/v850.h:236
+#, 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:239
+#, 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:242
+#, 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:1014 config/xtensa/xtensa.c:1046
+#: config/xtensa/xtensa.c:1055
+#, fuzzy
+msgid "bad test"
+msgstr "Igerageza"
+
+#: config/xtensa/xtensa.c:1774
+#, fuzzy
+msgid "boolean registers required for the floating-point option"
+msgstr "Icyungo Bya ngombwa kugirango i Bihindagurika Akadomo Ihitamo"
+
+#: config/xtensa/xtensa.c:1820
+#, fuzzy, c-format
+msgid "-f%s is not supported with CONST16 instructions"
+msgstr "-F ni OYA Na: Amabwiriza"
+
+#: config/xtensa/xtensa.c:1825
+#, fuzzy
+msgid "PIC is required but not supported with CONST16 instructions"
+msgstr "ni Bya ngombwa OYA Na: Amabwiriza"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/xtensa/xtensa.c:1895
+#, fuzzy, c-format
+msgid "invalid %%D value"
+msgstr "Agaciro siko"
+
+#: config/xtensa/xtensa.c:1932
+#, fuzzy
+msgid "invalid mask"
+msgstr "Sibyo"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/xtensa/xtensa.c:1958
+#, fuzzy, c-format
+msgid "invalid %%x value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/xtensa/xtensa.c:1965
+#, fuzzy, c-format
+msgid "invalid %%d value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/xtensa/xtensa.c:1986 config/xtensa/xtensa.c:1996
+#, fuzzy, c-format
+msgid "invalid %%t/%%b value"
+msgstr "Agaciro siko"
+
+#: 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:2672
+#, fuzzy
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "Itatangijwe Ibihinduka in a Icyiciro"
+
+#: config/xtensa/xtensa.h:79
+#, fuzzy
+msgid "Use CONST16 instruction to load constants"
+msgstr "Kuri Ibirimo"
+
+#: config/xtensa/xtensa.h:81
+#, fuzzy
+msgid "Use PC-relative L32R instruction to load constants"
+msgstr "Bifitanye isano Kuri Ibirimo"
+
+#: config/xtensa/xtensa.h:83
+#, fuzzy
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Gukuba Kongeramo Na Gukuba Gukuramo Amabwiriza"
+
+#: config/xtensa/xtensa.h:85
+#, fuzzy
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Gukuba Kongeramo Na Gukuba Gukuramo Amabwiriza"
+
+#: config/xtensa/xtensa.h:87
+#, fuzzy
+msgid "Intersperse literal pools with code in the text section"
+msgstr "Na: ITEGEKONGENGA in i Umwandiko Icyiciro"
+
+#: config/xtensa/xtensa.h:89
+#, fuzzy
+msgid "Put literal pools in a separate literal section"
+msgstr "in a Icyiciro"
+
+#: config/xtensa/xtensa.h:91
+#, fuzzy
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr "Gutondeka Kuri"
+
+#: config/xtensa/xtensa.h:93
+#, fuzzy
+msgid "Do not automatically align branch targets"
+msgstr "OYA ku buryo bwikora Gutondeka"
+
+#: config/xtensa/xtensa.h:95
+#, fuzzy
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr "BUZIGUYE Amabwiriza kugirango Binini Porogaramu"
+
+#: config/xtensa/xtensa.h:97
+#, fuzzy
+msgid "Use direct CALLn instructions for fast calls"
+msgstr "Amabwiriza kugirango Byihuta Amahamagara:"
+
+#: ada/misc.c:257
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "Ibuze Kuri"
+
+#: ada/misc.c:298
+#, fuzzy
+msgid "%<-gnat%> misspelled as %<-gant%>"
+msgstr "%<-Nka"
+
+#: cp/call.c:288
+#, fuzzy
+msgid "unable to call pointer to member function here"
+msgstr "Kuri Mweretsi Kuri Umumaro"
+
+#: cp/call.c:2376
+#, fuzzy
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr "%s%D(%T,%T,%T)<in"
+
+#: cp/call.c:2381
+#, fuzzy
+msgid "%s %D(%T, %T) <built-in>"
+msgstr "%s%D(%T,%T)<in"
+
+#: cp/call.c:2385
+#, fuzzy
+msgid "%s %D(%T) <built-in>"
+msgstr "%s%D(%T)<in"
+
+#: cp/call.c:2389
+#, fuzzy
+msgid "%s %T <conversion>"
+msgstr "%s%T<Ihindurangero"
+
+#: cp/call.c:2391
+#, fuzzy
+msgid "%J%s %+#D <near match>"
+msgstr "%J%s%+#D<BIHUYE"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: cp/call.c:2393
+#, fuzzy
+msgid "%J%s %+#D"
+msgstr "%J%s%+#D"
+
+#: cp/call.c:2428
+msgid "candidates are:"
+msgstr ""
+
+#: cp/call.c:2614
+#, fuzzy
+msgid "conversion from %qT to %qT is ambiguous"
+msgstr "Ihindurangero Bivuye Kuri ni"
+
+#: cp/call.c:2767 cp/call.c:2825
+#, fuzzy
+msgid "no matching function for call to %<%D(%A)%>"
+msgstr "Oya Umumaro kugirango Kuri"
+
+#: cp/call.c:2770 cp/call.c:2828
+#, 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:2896
+#, 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:2965
+#, fuzzy
+msgid "no match for call to %<(%T) (%A)%>"
+msgstr "Oya BIHUYE kugirango Kuri"
+
+#: cp/call.c:2974
+#, fuzzy
+msgid "call of %<(%T) (%A)%> is ambiguous"
+msgstr "Bya ni"
+
+#: cp/call.c:3012
+#, fuzzy
+msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
+msgstr "%sin."
+
+#: cp/call.c:3018
+#, fuzzy
+msgid "%s for %<operator%s%> in %<%E%s%>"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3022
+#, fuzzy
+msgid "%s for %<operator[]%> in %<%E[%E]%>"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3027
+#, fuzzy
+msgid "%s for %qs in %<%s %E%>"
+msgstr "%skugirango in"
+
+#: cp/call.c:3032
+#, fuzzy
+msgid "%s for %<operator%s%> in %<%E %s %E%>"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3035
+#, fuzzy
+msgid "%s for %<operator%s%> in %<%s%E%>"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3125
+#, fuzzy
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "C i Hagati Ijambo Bya a imvugo"
+
+#: cp/call.c:3202
+#, fuzzy
+msgid "%qE has type %<void%> and is not a throw-expression"
+msgstr "%qEUbwoko Na ni OYA a imvugo"
+
+#: cp/call.c:3241 cp/call.c:3451
+#, fuzzy
+msgid "operands to ?: have different types"
+msgstr "Kuri"
+
+#: cp/call.c:3405
+#, fuzzy
+msgid "enumeral mismatch in conditional expression: %qT vs %qT"
+msgstr "in imvugo"
+
+#: cp/call.c:3412
+#, fuzzy
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "Na Ubwoko in imvugo"
+
+#: cp/call.c:3706
+#, fuzzy
+msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
+msgstr "Oya INT kugirango Imbanziriza Mukoresha"
+
+#: cp/call.c:3759
+#, fuzzy
+msgid "using synthesized %q#D for copy assignment"
+msgstr "ikoresha kugirango Gukoporora Igenera"
+
+#: cp/call.c:3761
+#, fuzzy
+msgid " where cfront would use %q#D"
+msgstr "Gukoresha"
+
+#: cp/call.c:3793
+#, fuzzy
+msgid "comparison between %q#T and %q#T"
+msgstr "hagati Na"
+
+#: cp/call.c:4052
+#, fuzzy
+msgid "no suitable %<operator %s> for %qT"
+msgstr "Oya Mukoresha kugirango"
+
+#: cp/call.c:4069
+#, fuzzy
+msgid "%q+#D is private"
+msgstr "%q+#Dni By'umwihariko"
+
+#: cp/call.c:4071
+#, fuzzy
+msgid "%q+#D is protected"
+msgstr "%q+#Dni Birinzwe"
+
+#: cp/call.c:4073
+#, fuzzy
+msgid "%q+#D is inaccessible"
+msgstr "%q+#Dni"
+
+#: cp/call.c:4074
+#, fuzzy
+msgid "within this context"
+msgstr "muri iyi Imvugiro"
+
+#: cp/call.c:4163 cp/cvt.c:263
+#, fuzzy
+msgid "invalid conversion from %qT to %qT"
+msgstr "Sibyo Ihindurangero Bivuye Kuri"
+
+#: cp/call.c:4165
+#, fuzzy
+msgid " initializing argument %P of %qD"
+msgstr "Gutangiza Bya"
+
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "Kuri Mweretsi Bya"
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "Guhindura.... Kuri Mweretsi Ubwoko Bivuye"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "kugirango Kuri"
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "Guhindura.... Kuri Bivuye"
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "Agaciro kugirango Kuri"
+
+#: cp/call.c:4203
+#, fuzzy
+msgid "converting negative value %qE to %qT"
+msgstr "Guhindura.... Agaciro Kuri"
+
+#: cp/call.c:4345
+#, fuzzy
+msgid "cannot bind bitfield %qE to %qT"
+msgstr "Kuri"
+
+#: cp/call.c:4348 cp/call.c:4364
+#, fuzzy
+msgid "cannot bind packed field %qE to %qT"
+msgstr "Umwanya Kuri"
+
+#: cp/call.c:4351
+#, fuzzy
+msgid "cannot bind rvalue %qE to %qT"
+msgstr "Kuri"
+
+#: cp/call.c:4460
+#, fuzzy
+msgid "cannot pass objects of non-POD type %q#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:4486
+#, fuzzy
+msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
+msgstr "Akira Ibintu Bya Ubwoko Gihinguranya Kureka ku"
+
+#: cp/call.c:4529
+#, fuzzy
+msgid "the default argument for parameter %d of %qD has not yet been parsed"
+msgstr "i Mburabuzi kugirango Bya OYA"
+
+#: cp/call.c:4734
+#, fuzzy
+msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
+msgstr "Nka iyi Bya"
+
+#: cp/call.c:4753
+#, fuzzy
+msgid "%qT is not an accessible base of %qT"
+msgstr "%qTni OYA SHINGIRO Bya"
+
+#: cp/call.c:5003
+#, fuzzy
+msgid "could not find class$ field in java interface type %qT"
+msgstr "OYA Gushaka ishuri Umwanya in java Ubwoko"
+
+#: cp/call.c:5263
+#, fuzzy
+msgid "call to non-function %qD"
+msgstr "Kuri Umumaro"
+
+#: cp/call.c:5288
+#, fuzzy
+msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
+msgstr "Kubaza... kugirango in ni Bya Ubwoko"
+
+#: cp/call.c:5367
+#, fuzzy
+msgid "no matching function for call to %<%T::%s(%A)%#V%>"
+msgstr "Oya Umumaro kugirango Kuri"
+
+#: cp/call.c:5385
+#, fuzzy
+msgid "call of overloaded %<%s(%A)%> is ambiguous"
+msgstr "Bya ni"
+
+#: cp/call.c:5409
+#, fuzzy
+msgid "cannot call member function %qD without object"
+msgstr "Umumaro Igikoresho"
+
+#: cp/call.c:6014
+#, fuzzy
+msgid "passing %qT chooses %qT over %qT"
+msgstr "KURI"
+
+#: cp/call.c:6016 cp/name-lookup.c:4104
+#, fuzzy
+msgid " in call to %qD"
+msgstr "in Kuri"
+
+#: cp/call.c:6073
+#, fuzzy
+msgid "choosing %qD over %qD"
+msgstr "KURI"
+
+#: cp/call.c:6074
+#, fuzzy
+msgid " for conversion from %qT to %qT"
+msgstr "kugirango Ihindurangero Bivuye Kuri"
+
+#: cp/call.c:6076
+#, fuzzy
+msgid " because conversion sequence for the argument is better"
+msgstr "Ihindurangero kugirango i ni"
+
+#: cp/call.c:6197
+#, fuzzy
+msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
+msgstr "C ATARIIGIHARWE i Ihindurangero kugirango i Itangira ni i Ihindurangero kugirango i ISEGONDA"
+
+#: cp/call.c:6201
+#, fuzzy
+msgid "candidate 1:"
+msgstr "1."
+
+#: cp/call.c:6202
+#, fuzzy
+msgid "candidate 2:"
+msgstr "2."
+
+#: cp/call.c:6338
+#, fuzzy
+msgid "could not convert %qE to %qT"
+msgstr "OYA GUHINDURA Kuri"
+
+#: cp/call.c:6469
+#, fuzzy
+msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
+msgstr "Sibyo Bya Indango Bya Ubwoko Bivuye a By'igihe gito Bya Ubwoko"
+
+#: cp/call.c:6473
+#, fuzzy
+msgid "invalid initialization of reference of type %qT from expression of type %qT"
+msgstr "Sibyo Bya Indango Bya Ubwoko Bivuye imvugo Bya Ubwoko"
+
+#: cp/class.c:272
+#, fuzzy
+msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
+msgstr "GUHINDURA Bivuye SHINGIRO Kuri Ubwoko Biturutse Kitaboneka SHINGIRO"
+
+#: cp/class.c:929
+#, fuzzy
+msgid "Java class %qT cannot have a destructor"
+msgstr "ishuri a"
+
+#: cp/class.c:931
+#, fuzzy
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "ishuri"
+
+#: cp/class.c:1031
+#, fuzzy
+msgid "%q#D and %q#D cannot be overloaded"
+msgstr "%q#DNa"
+
+#: cp/class.c:1088
+#, fuzzy
+msgid "conflicting access specifications for method %qD, ignored"
+msgstr "kugirango Uburyo"
+
+#: cp/class.c:1091
+#, fuzzy, c-format
+msgid "conflicting access specifications for field %qE, ignored"
+msgstr "kugirango Umwanya"
+
+#: cp/class.c:1141
+#, fuzzy
+msgid "%qD names constructor"
+msgstr "%qDAmazina"
+
+#: cp/class.c:1146
+#, fuzzy
+msgid "%qD invalid in %qT"
+msgstr "%qDSibyo in"
+
+#: cp/class.c:1154
+#, fuzzy
+msgid "no members matching %qD in %q#T"
+msgstr "Oya in"
+
+#: cp/class.c:1186 cp/class.c:1194
+#, fuzzy
+msgid "%qD invalid in %q#T"
+msgstr "%qDSibyo in"
+
+#: cp/class.c:1187
+#, fuzzy
+msgid " because of local method %q#D with same name"
+msgstr "Bya Uburyo Na: Izina:"
+
+#: cp/class.c:1195
+#, fuzzy
+msgid " because of local member %q#D with same name"
+msgstr "Bya Na: Izina:"
+
+#: cp/class.c:1237
+#, fuzzy
+msgid "base class %q#T has a non-virtual destructor"
+msgstr "SHINGIRO ishuri a Kitaboneka"
+
+#: cp/class.c:1551
+#, fuzzy
+msgid "all member functions in class %qT are private"
+msgstr "Byose Imimaro in ishuri By'umwihariko"
+
+#: cp/class.c:1562
+#, fuzzy
+msgid "%q#T only defines a private destructor and has no friends"
+msgstr "%q#Ta By'umwihariko Na Oya"
+
+#: cp/class.c:1602
+#, fuzzy
+msgid "%q#T only defines private constructors and has no friends"
+msgstr "%q#TBy'umwihariko Na Oya"
+
+#: cp/class.c:1935
+#, fuzzy
+msgid "no unique final overrider for %qD in %qT"
+msgstr "Oya Cyo nyine kugirango in"
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2409
+#, fuzzy
+msgid "%qD was hidden"
+msgstr "%qDgihishwe"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_BY.text
+#: cp/class.c:2410
+#, fuzzy
+msgid " by %qD"
+msgstr "ku"
+
+#: cp/class.c:2451 cp/decl2.c:1100
+#, fuzzy
+msgid "%q#D invalid; an anonymous union can only have non-static data members"
+msgstr "%q#DSibyo Ihuza Ibyatanzwe"
+
+#: cp/class.c:2458 cp/decl2.c:1107
+#, fuzzy
+msgid "private member %q#D in anonymous union"
+msgstr "By'umwihariko in Ihuza"
+
+#: cp/class.c:2461 cp/decl2.c:1109
+#, fuzzy
+msgid "protected member %q#D in anonymous union"
+msgstr "Birinzwe in Ihuza"
+
+#: cp/class.c:2628
+#, fuzzy
+msgid "bit-field %q#D with non-integral type"
+msgstr "Umwanya Na: Umubare Wuzuye Ubwoko"
+
+#: cp/class.c:2645
+#, fuzzy
+msgid "bit-field %qD width not an integer constant"
+msgstr "Umwanya Ubugari OYA Umubare wuzuye"
+
+#: cp/class.c:2651
+#, fuzzy
+msgid "negative width in bit-field %qD"
+msgstr "Ubugari in Umwanya"
+
+#: cp/class.c:2656
+#, fuzzy
+msgid "zero width for bit-field %qD"
+msgstr "Zeru Ubugari kugirango Umwanya"
+
+#: cp/class.c:2662
+#, fuzzy
+msgid "width of %qD exceeds its type"
+msgstr "Ubugari Bya Ubwoko"
+
+#: cp/class.c:2671
+#, fuzzy
+msgid "%qD is too small to hold all values of %q#T"
+msgstr "%qDni Gitoya Kuri Byose Uduciro Bya"
+
+#: cp/class.c:2731
+#, fuzzy
+msgid "member %q#D with constructor not allowed in union"
+msgstr "Na: OYA in Ihuza"
+
+#: cp/class.c:2734
+#, fuzzy
+msgid "member %q#D with destructor not allowed in union"
+msgstr "Na: OYA in Ihuza"
+
+#: cp/class.c:2737
+#, fuzzy
+msgid "member %q#D with copy assignment operator not allowed in union"
+msgstr "Na: Gukoporora Igenera Mukoresha OYA in Ihuza"
+
+#: cp/class.c:2760
+#, fuzzy
+msgid "multiple fields in union %qT initialized"
+msgstr "Igikubo Imyanya in Ihuza"
+
+#: cp/class.c:2821
+#, fuzzy
+msgid "ignoring packed attribute on unpacked non-POD field %q#D"
+msgstr "Ikiranga ku Umwanya"
+
+#: cp/class.c:2881
+#, fuzzy
+msgid "%qD may not be static because it is a member of a union"
+msgstr "%qDGicurasi OYA ni a Bya a Ihuza"
+
+#: cp/class.c:2886
+#, fuzzy
+msgid "%qD may not have reference type %qT because it is a member of a union"
+msgstr "%qDGicurasi OYA Indango Ubwoko ni a Bya a Ihuza"
+
+#: cp/class.c:2895
+#, fuzzy
+msgid "field %qD in local class cannot be static"
+msgstr "Umwanya in ishuri"
+
+#: cp/class.c:2901
+#, fuzzy
+msgid "field %qD invalidly declared function type"
+msgstr "Umwanya Umumaro Ubwoko"
+
+#: cp/class.c:2907
+#, fuzzy
+msgid "field %qD invalidly declared method type"
+msgstr "Umwanya Uburyo Ubwoko"
+
+#: cp/class.c:2939
+#, fuzzy
+msgid "non-static reference %q#D in class without a constructor"
+msgstr "Indango in ishuri a"
+
+#: cp/class.c:2986
+#, fuzzy
+msgid "non-static const member %q#D in class without a constructor"
+msgstr "in ishuri a"
+
+#: cp/class.c:3001
+#, fuzzy
+msgid "field %q#D with same name as class"
+msgstr "Umwanya Na: Izina: Nka ishuri"
+
+#: cp/class.c:3034
+#, fuzzy
+msgid "%q#T has pointer data members"
+msgstr "%q#TMweretsi Ibyatanzwe"
+
+#: cp/class.c:3038
+#, fuzzy
+msgid " but does not override %<%T(const %T&)%>"
+msgstr "OYA"
+
+#: cp/class.c:3040
+#, fuzzy
+msgid " or %<operator=(const %T&)%>"
+msgstr "Cyangwa Mukoresha"
+
+#: cp/class.c:3043
+#, fuzzy
+msgid " but does not override %<operator=(const %T&)%>"
+msgstr "OYA Mukoresha"
+
+#: cp/class.c:3476
+#, fuzzy
+msgid "offset of empty base %qT 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:3588
+#, fuzzy
+msgid "class %qT will be considered nearly empty in a future version of GCC"
+msgstr "ishuri ubusa in a Verisiyo Bya"
+
+#: cp/class.c:3670
+#, fuzzy
+msgid "initializer specified for non-virtual method %qD"
+msgstr "kugirango Kitaboneka Uburyo"
+
+#: cp/class.c:4333
+#, fuzzy
+msgid "offset of virtual base %qT 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:4432
+#, fuzzy
+msgid "direct base %qT inaccessible in %qT due to ambiguity"
+msgstr "SHINGIRO in Kuri"
+
+#: cp/class.c:4444
+#, fuzzy
+msgid "virtual base %qT inaccessible in %qT due to ambiguity"
+msgstr "Kitaboneka SHINGIRO in Kuri"
+
+#: cp/class.c:4621
+#, fuzzy
+msgid "size assigned to %qT 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:4660
+#, fuzzy
+msgid "the offset of %qD 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:4683
+#, fuzzy
+msgid "offset of %qD 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:4693
+#, fuzzy
+msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "%qDKirimo ubusa Inzego Gicurasi SHINGIRO Inzego Kuri ku in a Verisiyo Bya"
+
+#: cp/class.c:4753
+#, fuzzy
+msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
+msgstr "Imigaragarire Bya Inzego Bivuye ubusa ishuri Gicurasi Guhindura>> in a Verisiyo Bya"
+
+#: cp/class.c:4894 cp/parser.c:12849
+#, fuzzy
+msgid "redefinition of %q#T"
+msgstr "Bya"
+
+#: cp/class.c:5042
+#, fuzzy
+msgid "%q#T has virtual functions but non-virtual destructor"
+msgstr "%q#TKitaboneka Imimaro Kitaboneka"
+
+#: cp/class.c:5139
+#, fuzzy
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr "Kuri Kurangiza Inyuma Kuri Ibanjirije Amakosa"
+
+#: cp/class.c:5555
+#, fuzzy
+msgid "language string %<\"%E\"%> not recognized"
+msgstr "Ururimi Ikurikiranyanyuguti OYA"
+
+#: cp/class.c:5642
+#, fuzzy
+msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
+msgstr "Umumaro ku Ihindurangero Kuri Ubwoko"
+
+#: cp/class.c:5767
+#, fuzzy
+msgid "no matches converting function %qD to type %q#T"
+msgstr "Oya Guhindura.... Umumaro Kuri Ubwoko"
+
+#: cp/class.c:5790
+#, fuzzy
+msgid "converting overloaded function %qD to type %q#T is ambiguous"
+msgstr "Guhindura.... Umumaro Kuri Ubwoko ni"
+
+#: cp/class.c:5816
+#, fuzzy
+msgid "assuming pointer to member %qD"
+msgstr "Mweretsi Kuri"
+
+#: cp/class.c:5819
+#, fuzzy
+msgid "(a pointer to member can only be formed with %<&%E%>)"
+msgstr "(a Mweretsi Kuri Na:"
+
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
+#, fuzzy
+msgid "not enough type information"
+msgstr "OYA Ubwoko Ibisobanuro"
+
+#: cp/class.c:5881
+#, fuzzy
+msgid "argument of type %qT does not match %qT"
+msgstr "Bya Ubwoko OYA BIHUYE"
+
+#: cp/class.c:6031
+#, 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:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
+#, fuzzy
+msgid "declaration of %q#D"
+msgstr "Bya"
+
+#: cp/class.c:6269
+#, fuzzy
+msgid "changes meaning of %qD from %q+#D"
+msgstr "Amahinduka Igisobanuro Bya Bivuye"
+
+#: cp/cvt.c:90
+#, fuzzy
+msgid "can't convert from incomplete type %qT to %qT"
+msgstr "GUHINDURA Bivuye Ubwoko Kuri"
+
+#: cp/cvt.c:99
+#, fuzzy
+msgid "conversion of %qE from %qT to %qT is ambiguous"
+msgstr "Ihindurangero Bya Bivuye Kuri ni"
+
+#: cp/cvt.c:168 cp/cvt.c:237 cp/cvt.c:284
+#, fuzzy
+msgid "cannot convert %qE from type %qT to type %qT"
+msgstr "GUHINDURA Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/cvt.c:197 cp/cvt.c:201
+#, fuzzy
+msgid "pointer to member cast from %qT to %qT is via virtual base"
+msgstr "Mweretsi Kuri Bivuye Kuri ni Biturutse Kitaboneka SHINGIRO"
+
+#: cp/cvt.c:497
+#, fuzzy
+msgid "conversion from %qT to %qT discards qualifiers"
+msgstr "Ihindurangero Bivuye Kuri"
+
+#: cp/cvt.c:515 cp/typeck.c:4840
+#, fuzzy
+msgid "casting %qT to %qT does not dereference pointer"
+msgstr "Kuri OYA Mweretsi"
+
+#: cp/cvt.c:542
+#, fuzzy
+msgid "cannot convert type %qT to type %qT"
+msgstr "GUHINDURA Ubwoko Kuri Ubwoko"
+
+#: cp/cvt.c:670
+#, fuzzy
+msgid "conversion from %q#T to %q#T"
+msgstr "Ihindurangero Bivuye Kuri"
+
+#: cp/cvt.c:682 cp/cvt.c:702
+#, fuzzy
+msgid "%q#T used where a %qT was expected"
+msgstr "%q#Ta Ikitezwe:"
+
+#: cp/cvt.c:717
+#, fuzzy
+msgid "%q#T used where a floating point value was expected"
+msgstr "%q#Ta Bihindagurika Akadomo Agaciro Ikitezwe:"
+
+#: cp/cvt.c:764
+#, fuzzy
+msgid "conversion from %qT to non-scalar type %qT requested"
+msgstr "Ihindurangero Bivuye Kuri Ubwoko"
+
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "ni OYA"
+
+#: cp/cvt.c:857
+#, fuzzy
+msgid "object of incomplete type %qT will not be accessed in %s"
+msgstr "Igikoresho Bya Ubwoko OYA birabonetse in"
+
+#: cp/cvt.c:860
+#, fuzzy
+msgid "object of type %qT will not be accessed in %s"
+msgstr "Igikoresho Bya Ubwoko OYA birabonetse in"
+
+#: cp/cvt.c:876
+#, fuzzy
+msgid "object %qE of incomplete type %qT 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:892
+#, fuzzy, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "%sAderesi Bya Umumaro"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:898
+#, fuzzy, c-format
+msgid "%s is a reference, not call, to function %qE"
+msgstr "%sni a Indango OYA Kuri Umumaro"
+
+#: cp/cvt.c:909
+#, fuzzy, c-format
+msgid "%s has no effect"
+msgstr "%sOya INGARUKA"
+
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "Agaciro ni OYA"
+
+#: cp/cvt.c:1049
+#, fuzzy
+msgid "converting NULL to non-pointer type"
+msgstr "Guhindura.... Kuri Mweretsi Ubwoko"
+
+#: cp/cvt.c:1121
+#, fuzzy
+msgid "ambiguous default type conversion from %qT"
+msgstr "Mburabuzi Ubwoko Ihindurangero Bivuye"
+
+#: cp/cvt.c:1123
+#, fuzzy
+msgid " candidate conversions include %qD and %qD"
+msgstr "Gushyiramo Na"
+
+#: cp/decl.c:361
+#, fuzzy
+msgid "label %qD used but not defined"
+msgstr "Akarango OYA"
+
+#: cp/decl.c:372
+#, fuzzy
+msgid "label %qD defined but not used"
+msgstr "Akarango OYA"
+
+#: cp/decl.c:1003
+#, fuzzy
+msgid "%qD was declared %<extern%> and later %<static%>"
+msgstr "%qDNa"
+
+#: cp/decl.c:1004 cp/decl.c:1469
+#, fuzzy
+msgid "previous declaration of %qD"
+msgstr "Ibanjirije Bya"
+
+#: cp/decl.c:1052
+#, fuzzy
+msgid "%Jfunction %qD redeclared as inline"
+msgstr "%Jfunction%qDNka Mumurongo"
+
+#: cp/decl.c:1053
+#, fuzzy
+msgid "%Jprevious declaration of %qD with attribute noinline"
+msgstr "%JpreviousBya Na: Ikiranga"
+
+#: cp/decl.c:1060
+#, fuzzy
+msgid "%Jfunction %qD redeclared with attribute noinline"
+msgstr "%Jfunction%qDNa: Ikiranga"
+
+#: cp/decl.c:1062
+#, fuzzy
+msgid "%Jprevious declaration of %qD was inline"
+msgstr "%JpreviousBya Mumurongo"
+
+#: cp/decl.c:1083 cp/decl.c:1154
+#, fuzzy
+msgid "shadowing %s function %q#D"
+msgstr "Ishyiraho ry'igicucu Umumaro"
+
+#: cp/decl.c:1092
+#, fuzzy
+msgid "library function %q#D redeclared as non-function %q#D"
+msgstr "Isomero Umumaro Nka Umumaro"
+
+#: cp/decl.c:1097
+#, fuzzy
+msgid "conflicts with built-in declaration %q#D"
+msgstr "Na: in"
+
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
+#, fuzzy
+msgid "new declaration %q#D"
+msgstr "Gishya"
+
+#: cp/decl.c:1150
+#, fuzzy
+msgid "ambiguates built-in declaration %q#D"
+msgstr "in"
+
+#: cp/decl.c:1221
+#, fuzzy
+msgid "%q#D redeclared as different kind of symbol"
+msgstr "%q#DNka Bya IKIMENYETSO"
+
+#: cp/decl.c:1224
+#, fuzzy
+msgid "previous declaration of %q#D"
+msgstr "Ibanjirije Bya"
+
+#: cp/decl.c:1243
+#, fuzzy
+msgid "declaration of template %q#D"
+msgstr "Bya Inyandikorugero"
+
+#: cp/decl.c:1244 cp/name-lookup.c:509
+#, fuzzy
+msgid "conflicts with previous declaration %q#D"
+msgstr "Na: Ibanjirije"
+
+#: cp/decl.c:1259 cp/decl.c:1275
+#, fuzzy
+msgid "ambiguates old declaration %q#D"
+msgstr "ki/ bishaje"
+
+#: cp/decl.c:1267
+#, fuzzy
+msgid "declaration of C function %q#D conflicts with"
+msgstr "Bya C Umumaro Na:"
+
+#: cp/decl.c:1269
+#, fuzzy
+msgid "previous declaration %q#D here"
+msgstr "Ibanjirije"
+
+#: cp/decl.c:1282
+msgid "conflicting declaration %q#D"
+msgstr ""
+
+#: cp/decl.c:1283
+#, fuzzy
+msgid "%qD has a previous declaration as %q#D"
+msgstr "%qDa Ibanjirije Nka"
+
+#. [namespace.alias]
+#.
+#. A namespace-name or namespace-alias shall not be declared as
+#. the name of any other entity in the same declarative region.
+#. A namespace-name defined at global scope shall not be
+#. declared as the name of any other entity in any global scope
+#. of the program.
+#: cp/decl.c:1336
+#, fuzzy
+msgid "declaration of namespace %qD conflicts with"
+msgstr "Bya Na:"
+
+#: cp/decl.c:1337
+#, fuzzy
+msgid "previous declaration of namespace %qD here"
+msgstr "Ibanjirije Bya"
+
+#: cp/decl.c:1349
+msgid "%q#D previously defined here"
+msgstr ""
+
+#: cp/decl.c:1350
+msgid "%q#D previously declared here"
+msgstr ""
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:1359
+#, fuzzy
+msgid "prototype for %q#D"
+msgstr "kugirango"
+
+#: cp/decl.c:1360
+#, fuzzy
+msgid "%Jfollows non-prototype definition here"
+msgstr "%JfollowsInsobanuro"
+
+#: cp/decl.c:1372
+#, fuzzy
+msgid "previous declaration of %q#D with %qL linkage"
+msgstr "Ibanjirije Bya Na:"
+
+#: cp/decl.c:1374
+#, fuzzy
+msgid "conflicts with new declaration with %qL linkage"
+msgstr "Na: Gishya Na:"
+
+#: cp/decl.c:1397 cp/decl.c:1404
+#, fuzzy
+msgid "default argument given for parameter %d of %q#D"
+msgstr "Mburabuzi kugirango Bya"
+
+#: cp/decl.c:1399 cp/decl.c:1406
+#, fuzzy
+msgid "after previous specification in %q#D"
+msgstr "Nyuma Ibanjirije in"
+
+#: cp/decl.c:1415
+#, fuzzy
+msgid "%q#D was used before it was declared inline"
+msgstr "%q#DMbere Mumurongo"
+
+#: cp/decl.c:1416
+#, fuzzy
+msgid "%Jprevious non-inline declaration here"
+msgstr "%JpreviousMumurongo"
+
+#: cp/decl.c:1468
+#, fuzzy
+msgid "redundant redeclaration of %qD in same scope"
+msgstr "Bya in Ingano:"
+
+#: cp/decl.c:1562
+#, fuzzy, c-format
+msgid "declaration of %qF throws different exceptions"
+msgstr "Bya Amarengayobora"
+
+#: cp/decl.c:1564
+#, fuzzy, c-format
+msgid "than previous declaration %qF"
+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:1724
+#, fuzzy
+msgid "explicit specialization of %qD after first use"
+msgstr "Bya Nyuma Itangira Gukoresha"
+
+#: cp/decl.c:1803
+#, fuzzy
+msgid "%J%qD: visibility attribute ignored because it"
+msgstr "%J%qD:Ukugaragara Ikiranga"
+
+#: cp/decl.c:1805
+#, fuzzy
+msgid "%Jconflicts with previous declaration here"
+msgstr "%JconflictsNa: Ibanjirije"
+
+#: cp/decl.c:2048
+#, fuzzy, c-format
+msgid "label %qE referenced outside of any function"
+msgstr "Akarango Hanze Bya Umumaro"
+
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
+#, fuzzy
+msgid "jump to label %qD"
+msgstr "Simbuka Kuri Akarango"
+
+#: cp/decl.c:2146 cp/decl.c:2170
+#, fuzzy
+msgid "jump to case label"
+msgstr "Simbuka Kuri Akarango"
+
+#: cp/decl.c:2149 cp/decl.c:2173
+#, fuzzy
+msgid "%H from here"
+msgstr "%HBivuye"
+
+#: cp/decl.c:2154
+#, fuzzy
+msgid " crosses initialization of %q#D"
+msgstr "Bya"
+
+#: cp/decl.c:2157 cp/decl.c:2272
+#, fuzzy
+msgid " enters scope of non-POD %q#D"
+msgstr "Ingano: Bya"
+
+#: cp/decl.c:2177 cp/decl.c:2276
+#, fuzzy
+msgid " enters try block"
+msgstr "Funga"
+
+#: cp/decl.c:2179 cp/decl.c:2278
+#, fuzzy
+msgid " enters catch block"
+msgstr "Funga"
+
+#: cp/decl.c:2257
+#, fuzzy
+msgid " from here"
+msgstr "Bivuye"
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:2268
+#, fuzzy
+msgid "%J enters catch block"
+msgstr "%JFunga"
+
+#: cp/decl.c:2270
+#, fuzzy
+msgid " skips initialization of %q#D"
+msgstr "Bya"
+
+#: cp/decl.c:2304
+#, fuzzy
+msgid "label named wchar_t"
+msgstr "Akarango"
+
+#: cp/decl.c:2307
+#, fuzzy
+msgid "duplicate label %qD"
+msgstr "Gusubiramo Akarango"
+
+#: cp/decl.c:2555 cp/parser.c:3514
+#, fuzzy
+msgid "%qD used without template parameters"
+msgstr "%qDInyandikorugero Ibigenga"
+
+#: cp/decl.c:2572 cp/decl.c:2663
+#, fuzzy
+msgid "no class template named %q#T in %q#T"
+msgstr "Oya ishuri Inyandikorugero in"
+
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
+#, fuzzy
+msgid "no type named %q#T in %q#T"
+msgstr "Oya Ubwoko in"
+
+#: cp/decl.c:2672
+#, fuzzy
+msgid "template parameters do not match template"
+msgstr "Inyandikorugero Ibigenga OYA BIHUYE Inyandikorugero"
+
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
+msgid "%qD declared here"
+msgstr ""
+
+#: cp/decl.c:3344
+#, fuzzy
+msgid "%Jan anonymous union cannot have function members"
+msgstr "%JanIhuza Umumaro"
+
+#: cp/decl.c:3362
+#, fuzzy
+msgid "member %q#D with constructor not allowed in anonymous aggregate"
+msgstr "Na: OYA in"
+
+#: cp/decl.c:3366
+#, fuzzy
+msgid "member %q#D with destructor not allowed in anonymous aggregate"
+msgstr "Na: OYA in"
+
+#: cp/decl.c:3370
+#, fuzzy
+msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
+msgstr "Na: Gukoporora Igenera Mukoresha OYA in"
+
+#: cp/decl.c:3396
+#, fuzzy
+msgid "multiple types in one declaration"
+msgstr "Igikubo in"
+
+#: cp/decl.c:3400
+#, fuzzy
+msgid "redeclaration of C++ built-in type %qT"
+msgstr "Bya C in Ubwoko"
+
+#: cp/decl.c:3437
+#, fuzzy
+msgid "missing type-name in typedef-declaration"
+msgstr "Ibuze Ubwoko Izina: in"
+
+#: cp/decl.c:3445
+#, fuzzy
+msgid "ISO C++ prohibits anonymous structs"
+msgstr "C"
+
+#: cp/decl.c:3452
+#, fuzzy, c-format
+msgid "%qs can only be specified for functions"
+msgstr "%qskugirango Imimaro"
+
+#: cp/decl.c:3458
+#, fuzzy
+msgid "%<friend%> can only be specified inside a class"
+msgstr "%<Mo Imbere a ishuri"
+
+#: cp/decl.c:3460
+#, fuzzy
+msgid "%<explicit%> can only be specified for constructors"
+msgstr "%<kugirango"
+
+#: cp/decl.c:3462
+#, fuzzy
+msgid "a storage class can only be specified for objects and functions"
+msgstr "a ishuri kugirango Ibintu Na Imimaro"
+
+#: cp/decl.c:3468
+#, fuzzy
+msgid "qualifiers can only be specified for objects and functions"
+msgstr "kugirango Ibintu Na Imimaro"
+
+#: cp/decl.c:3498
+#, fuzzy
+msgid "attribute ignored in declaration of %q#T"
+msgstr "Ikiranga in Bya"
+
+#: cp/decl.c:3499
+#, fuzzy
+msgid "attribute for %q#T must follow the %qs keyword"
+msgstr "Ikiranga kugirango i Ijambo- banze"
+
+#: cp/decl.c:3622
+#, fuzzy
+msgid "function %q#D is initialized like a variable"
+msgstr "Umumaro ni nka a IMPINDURAGACIRO"
+
+#: cp/decl.c:3634
+#, fuzzy
+msgid "declaration of %q#D has %<extern%> and is initialized"
+msgstr "Bya Na ni"
+
+#: cp/decl.c:3665
+#, fuzzy
+msgid "%q#D is not a static member of %q#T"
+msgstr "%q#Dni OYA a Bya"
+
+#: cp/decl.c:3671
+#, fuzzy
+msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
+msgstr "C OYA Kuri Nka"
+
+#: cp/decl.c:3680
+#, fuzzy
+msgid "template header not allowed in member definition of explicitly specialized class"
+msgstr "Inyandikorugero Umutwempangano OYA in Insobanuro Bya cy'umwihariko/ mwihariko ishuri"
+
+#: cp/decl.c:3688
+#, fuzzy
+msgid "duplicate initialization of %qD"
+msgstr "Gusubiramo Bya"
+
+#: cp/decl.c:3726
+#, fuzzy
+msgid "declaration of %q#D outside of class is not definition"
+msgstr "Bya Hanze Bya ishuri ni OYA Insobanuro"
+
+#: cp/decl.c:3775
+#, fuzzy
+msgid "variable %q#D has initializer but incomplete type"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: cp/decl.c:3782 cp/decl.c:4411
+#, fuzzy
+msgid "elements of array %q#D have incomplete type"
+msgstr "Ibintu Bya Imbonerahamwe Ubwoko"
+
+#: cp/decl.c:3798
+#, fuzzy
+msgid "aggregate %q#D has incomplete type and cannot be defined"
+msgstr "Ubwoko Na"
+
+#: cp/decl.c:3848
+#, fuzzy
+msgid "%qD declared as reference but not initialized"
+msgstr "%qDNka Indango OYA"
+
+#: cp/decl.c:3854
+#, fuzzy
+msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
+msgstr "C Gukoresha Bya Urutonde Kuri gutangiza Indango"
+
+#: cp/decl.c:3880
+#, fuzzy
+msgid "cannot initialize %qT from %qT"
+msgstr "gutangiza Bivuye"
+
+#: cp/decl.c:3912
+#, fuzzy
+msgid "initializer fails to determine size of %qD"
+msgstr "Kuri Ingano Bya"
+
+#: cp/decl.c:3917
+#, fuzzy
+msgid "array size missing in %qD"
+msgstr "Imbonerahamwe Ingano Ibuze in"
+
+#: cp/decl.c:3929
+#, fuzzy
+msgid "zero-size array %qD"
+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:3966
+#, fuzzy
+msgid "storage size of %qD isn't known"
+msgstr "Ingano Bya si"
+
+#: cp/decl.c:3988
+#, fuzzy
+msgid "storage size of %qD isn't constant"
+msgstr "Ingano Bya si"
+
+#: cp/decl.c:4043
+#, fuzzy
+msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
+msgstr "Bya Mumurongo Umumaro Ibyatanzwe Hejuru Na: Igikubo Amakopi"
+
+#: cp/decl.c:4046
+#, fuzzy
+msgid "%J you can work around this by removing the initializer"
+msgstr "%JAkazi iyi ku i"
+
+#: cp/decl.c:4073
+#, fuzzy
+msgid "uninitialized const %qD"
+msgstr "Itatangijwe"
+
+#: cp/decl.c:4133
+#, fuzzy
+msgid "name %qD used in a GNU-style designated initializer for an array"
+msgstr "Izina: in a IMISUSIRE kugirango Imbonerahamwe"
+
+#: cp/decl.c:4143
+#, fuzzy, c-format
+msgid "Designated initializer %qE larger than array size"
+msgstr "Kinini Imbonerahamwe Ingano"
+
+#: cp/decl.c:4215
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize %qT"
+msgstr "Kuri gutangiza"
+
+#: cp/decl.c:4280
+#, fuzzy
+msgid "initializer for %qT must be brace-enclosed"
+msgstr "kugirango"
+
+#: cp/decl.c:4296
+#, fuzzy
+msgid "ISO C++ does not allow designated initializers"
+msgstr "C OYA Kwemerera"
+
+#: cp/decl.c:4300
+#, fuzzy
+msgid "%qT has no non-static data member named %qD"
+msgstr "%qTOya Ibyatanzwe"
+
+#: cp/decl.c:4364
+#, fuzzy
+msgid "too many initializers for %qT"
+msgstr "kugirango"
+
+#: cp/decl.c:4405
+#, fuzzy
+msgid "variable-sized object %qD may not be initialized"
+msgstr "IMPINDURAGACIRO Igikoresho Gicurasi OYA"
+
+#: cp/decl.c:4416
+#, fuzzy
+msgid "%qD has incomplete type"
+msgstr "%qDUbwoko"
+
+#: cp/decl.c:4470
+#, fuzzy
+msgid "%qD must be initialized by constructor, not by %<{...}%>"
+msgstr "%qDku OYA ku"
+
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "Imbonerahamwe ku Ikurikiranyanyuguti"
+
+#: cp/decl.c:4521
+#, fuzzy
+msgid "structure %qD with uninitialized const members"
+msgstr "Imiterere Na: Itatangijwe"
+
+#: cp/decl.c:4523
+#, fuzzy
+msgid "structure %qD with uninitialized reference members"
+msgstr "Imiterere Na: Itatangijwe Indango"
+
+#: cp/decl.c:4723
+#, fuzzy
+msgid "assignment (not initialization) in declaration"
+msgstr "Igenera OYA in"
+
+#: cp/decl.c:4740
+#, fuzzy
+msgid "cannot initialize %qD to namespace %qD"
+msgstr "gutangiza Kuri"
+
+#: cp/decl.c:4781
+#, fuzzy
+msgid "shadowing previous type declaration of %q#D"
+msgstr "Ishyiraho ry'igicucu Ibanjirije Ubwoko Bya"
+
+#: cp/decl.c:4815
+#, fuzzy
+msgid "%qD cannot be thread-local because it has non-POD type %qT"
+msgstr "%qDUrudodo Ubwoko"
+
+#: cp/decl.c:4830
+#, fuzzy
+msgid "%qD is thread-local and so cannot be dynamically initialized"
+msgstr "%qDni Urudodo Na"
+
+#: cp/decl.c:5447
+#, fuzzy
+msgid "destructor for alien class %qT cannot be a member"
+msgstr "kugirango ishuri a"
+
+#: cp/decl.c:5449
+#, fuzzy
+msgid "constructor for alien class %qT cannot be a member"
+msgstr "kugirango ishuri a"
+
+#: cp/decl.c:5470
+#, fuzzy
+msgid "%qD declared as a %<virtual%> %s"
+msgstr "%qDNka a Kitaboneka"
+
+#: cp/decl.c:5472
+#, fuzzy
+msgid "%qD declared as an %<inline%> %s"
+msgstr "%qDNka Mumurongo"
+
+#: cp/decl.c:5474
+#, fuzzy
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
+msgstr "%<Na Umumaro ku Sibyo in"
+
+#: cp/decl.c:5478
+#, fuzzy
+msgid "%qD declared as a friend"
+msgstr "%qDNka a"
+
+#: cp/decl.c:5484
+#, fuzzy
+msgid "%qD declared with an exception specification"
+msgstr "%qDNa: Irengayobora(-)"
+
+#: cp/decl.c:5570
+#, fuzzy
+msgid "cannot declare %<::main%> to be a template"
+msgstr "Kuri a Inyandikorugero"
+
+#: cp/decl.c:5572
+#, fuzzy
+msgid "cannot declare %<::main%> to be inline"
+msgstr "Kuri Mumurongo"
+
+#: cp/decl.c:5574
+#, fuzzy
+msgid "cannot declare %<::main%> to be static"
+msgstr "Kuri"
+
+#: cp/decl.c:5578
+#, fuzzy
+msgid "%<::main%> must return %<int%>"
+msgstr "%<::Garuka INT"
+
+#: cp/decl.c:5608
+#, fuzzy
+msgid "non-local function %q#D uses anonymous type"
+msgstr "Umumaro Ubwoko"
+
+#: cp/decl.c:5611 cp/decl.c:5947
+#, fuzzy
+msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
+msgstr "%q#DOYA Kuri i Ubwoko ni OYA kugirango"
+
+#: cp/decl.c:5617
+#, fuzzy
+msgid "non-local function %q#D uses local type %qT"
+msgstr "Umumaro Ubwoko"
+
+#: cp/decl.c:5640
+#, fuzzy
+msgid "%smember function %qD cannot have cv-qualifier"
+msgstr "%smemberUmumaro"
+
+#: cp/decl.c:5664
+#, fuzzy
+msgid "defining explicit specialization %qD in friend declaration"
+msgstr "in"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:5674
+#, fuzzy
+msgid "invalid use of template-id %qD in declaration of primary template"
+msgstr "Sibyo Gukoresha Bya Inyandikorugero ID in Bya Inyandikorugero"
+
+#: cp/decl.c:5702
+#, fuzzy
+msgid "default arguments are not allowed in declaration of friend template specialization %qD"
+msgstr "Mburabuzi ingingo OYA in Bya Inyandikorugero"
+
+#: cp/decl.c:5710
+#, fuzzy
+msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
+msgstr "%<Mumurongo ni OYA in Bya Inyandikorugero"
+
+#: cp/decl.c:5776
+#, fuzzy
+msgid "definition of implicitly-declared %qD"
+msgstr "Insobanuro Bya"
+
+#: cp/decl.c:5796 cp/decl2.c:712
+#, fuzzy
+msgid "no %q#D member function declared in class %qT"
+msgstr "Oya Umumaro in ishuri"
+
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
+#, fuzzy
+msgid "non-local variable %q#D uses anonymous type"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: cp/decl.c:5953
+#, fuzzy
+msgid "non-local variable %q#D uses local type %qT"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: cp/decl.c:6070
+#, fuzzy
+msgid "invalid in-class initialization of static data member of non-integral type %qT"
+msgstr "Sibyo in ishuri Bya Ibyatanzwe Bya Umubare Wuzuye Ubwoko"
+
+#: cp/decl.c:6080
+#, fuzzy
+msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
+msgstr "C in ishuri Bya"
+
+#: cp/decl.c:6084
+#, fuzzy
+msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
+msgstr "C Bya Bya Umubare Wuzuye Ubwoko"
+
+#: cp/decl.c:6104
+#, fuzzy
+msgid "size of array %qD has non-integral type %qT"
+msgstr "Ingano Bya Imbonerahamwe Umubare Wuzuye Ubwoko"
+
+#: cp/decl.c:6106
+#, fuzzy
+msgid "size of array has non-integral type %qT"
+msgstr "Ingano Bya Imbonerahamwe Umubare Wuzuye Ubwoko"
+
+#: cp/decl.c:6142
+#, fuzzy
+msgid "size of array %qD is negative"
+msgstr "Ingano Bya Imbonerahamwe ni"
+
+#: cp/decl.c:6144
+#, fuzzy
+msgid "size of array is negative"
+msgstr "Ingano Bya Imbonerahamwe ni"
+
+#: cp/decl.c:6152
+#, fuzzy
+msgid "ISO C++ forbids zero-size array %qD"
+msgstr "C Zeru Ingano Imbonerahamwe"
+
+#: cp/decl.c:6154
+#, fuzzy
+msgid "ISO C++ forbids zero-size array"
+msgstr "C Zeru Ingano Imbonerahamwe"
+
+#: cp/decl.c:6161
+#, fuzzy
+msgid "size of array %qD is not an integral constant-expression"
+msgstr "Ingano Bya Imbonerahamwe ni OYA Umubare Wuzuye imvugo"
+
+#: cp/decl.c:6164
+#, fuzzy
+msgid "size of array is not an integral constant-expression"
+msgstr "Ingano Bya Imbonerahamwe ni OYA Umubare Wuzuye imvugo"
+
+#: cp/decl.c:6169
+#, fuzzy
+msgid "ISO C++ forbids variable-size array %qD"
+msgstr "C IMPINDURAGACIRO Ingano Imbonerahamwe"
+
+#: cp/decl.c:6171
+#, fuzzy
+msgid "ISO C++ forbids variable-size array"
+msgstr "C IMPINDURAGACIRO Ingano Imbonerahamwe"
+
+#: cp/decl.c:6201
+#, fuzzy
+msgid "overflow in array dimension"
+msgstr "Byarenze urugero in Imbonerahamwe"
+
+#: cp/decl.c:6275
+#, fuzzy
+msgid "declaration of %qD as %s"
+msgstr "Bya Nka"
+
+#: cp/decl.c:6277
+#, c-format
+msgid "creating %s"
+msgstr ""
+
+#: cp/decl.c:6289
+#, fuzzy
+msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
+msgstr "Bya Nka Imbonerahamwe kugirango Byose Ingero i Itangira"
+
+#: cp/decl.c:6293
+#, fuzzy
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr "Imbonerahamwe kugirango Byose Ingero i Itangira"
+
+#: cp/decl.c:6328
+#, fuzzy
+msgid "return type specification for constructor invalid"
+msgstr "Garuka Ubwoko kugirango Sibyo"
+
+#: cp/decl.c:6338
+#, fuzzy
+msgid "return type specification for destructor invalid"
+msgstr "Garuka Ubwoko kugirango Sibyo"
+
+#: cp/decl.c:6351
+#, fuzzy
+msgid "operator %qT declared to return %qT"
+msgstr "Mukoresha Kuri Garuka"
+
+#: cp/decl.c:6353
+#, fuzzy
+msgid "return type specified for %<operator %T%>"
+msgstr "Garuka Ubwoko kugirango Mukoresha"
+
+#: cp/decl.c:6375
+#, fuzzy
+msgid "unnamed variable or field declared void"
+msgstr "Kitiswe IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: cp/decl.c:6379
+#, fuzzy, c-format
+msgid "variable or field %qE declared void"
+msgstr "IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: cp/decl.c:6382
+#, fuzzy
+msgid "variable or field declared void"
+msgstr "IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: cp/decl.c:6537
+#, fuzzy
+msgid "type %qT is not derived from type %qT"
+msgstr "Ubwoko ni OYA Bivuye Ubwoko"
+
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
+#, fuzzy
+msgid "declaration of %qD as non-function"
+msgstr "Bya Nka Umumaro"
+
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "Bya Nka"
+
+#: cp/decl.c:6593
+#, fuzzy
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "ID Ibuze ikoresha ijambo"
+
+#: cp/decl.c:6682
+#, fuzzy, c-format
+msgid "two or more data types in declaration of %qs"
+msgstr "Cyangwa Birenzeho Ibyatanzwe in Bya"
+
+#: cp/decl.c:6725
+#, fuzzy
+msgid "ISO C++ does not support %<long long%>"
+msgstr "C OYA Gushigikira"
+
+#: cp/decl.c:6785 cp/decl.c:6787
+#, fuzzy, c-format
+msgid "ISO C++ forbids declaration of %qs with no type"
+msgstr "C Bya Na: Oya Ubwoko"
+
+#: cp/decl.c:6812
+#, fuzzy, c-format
+msgid "short, signed or unsigned invalid for %qs"
+msgstr "Cyangwa Bitashizweho umukono Sibyo kugirango"
+
+#: cp/decl.c:6814
+#, fuzzy, c-format
+msgid "long, short, signed or unsigned invalid for %qs"
+msgstr "Cyangwa Bitashizweho umukono Sibyo kugirango"
+
+#: cp/decl.c:6816
+#, fuzzy, c-format
+msgid "long and short specified together for %qs"
+msgstr "Na kugirango"
+
+#: cp/decl.c:6818
+#, fuzzy, c-format
+msgid "long or short specified with char for %qs"
+msgstr "Cyangwa Na: INYUGUTI kugirango"
+
+#: cp/decl.c:6820
+#, fuzzy, c-format
+msgid "long or short specified with floating type for %qs"
+msgstr "Cyangwa Na: Bihindagurika Ubwoko kugirango"
+
+#: cp/decl.c:6822
+#, fuzzy, c-format
+msgid "signed and unsigned given together for %qs"
+msgstr "Na Bitashizweho umukono kugirango"
+
+#: cp/decl.c:6828
+#, fuzzy, c-format
+msgid "long, short, signed or unsigned used invalidly for %qs"
+msgstr "Cyangwa Bitashizweho umukono kugirango"
+
+#: cp/decl.c:6893
+#, fuzzy, c-format
+msgid "complex invalid for %qs"
+msgstr "ITSINDA RY'IMIBARE C Sibyo kugirango"
+
+#: cp/decl.c:6922
+#, fuzzy
+msgid "qualifiers are not allowed on declaration of %<operator %T%>"
+msgstr "OYA ku Bya Mukoresha"
+
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "Kyongewe Kuri Umumaro Ubwoko"
+
+#: cp/decl.c:6957
+#, fuzzy
+msgid "member %qD cannot be declared both virtual and static"
+msgstr "Byombi Kitaboneka Na"
+
+#: cp/decl.c:6964
+#, fuzzy
+msgid "%<%T::%D%> is not a valid declarator"
+msgstr "%<%T::%D%>ni OYA a Byemewe"
+
+#: cp/decl.c:6972
+#, fuzzy
+msgid "typedef declaration invalid in parameter declaration"
+msgstr "Sibyo in"
+
+#: cp/decl.c:6976
+#, fuzzy
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr "ishuri Sibyo in"
+
+#: cp/decl.c:6983
+#, fuzzy
+msgid "virtual outside class declaration"
+msgstr "Kitaboneka Hanze ishuri"
+
+#: cp/decl.c:6996 cp/decl.c:7003
+#, fuzzy, c-format
+msgid "multiple storage classes in declaration of %qs"
+msgstr "Igikubo Inzego in Bya"
+
+#: cp/decl.c:7046
+#, fuzzy, c-format
+msgid "storage class specified for %s %qs"
+msgstr "ishuri kugirango"
+
+#: cp/decl.c:7083
+#, fuzzy
+msgid "top-level declaration of %qs specifies %<auto%>"
+msgstr "Hejuru: urwego Bya Ikiyega"
+
+#: cp/decl.c:7095
+#, fuzzy
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr "ishuri Sibyo in Umumaro"
+
+#: cp/decl.c:7220
+#, fuzzy
+msgid "destructor cannot be static member function"
+msgstr "Umumaro"
+
+#: cp/decl.c:7223
+#, fuzzy
+msgid "destructors may not be cv-qualified"
+msgstr "Gicurasi OYA"
+
+#: cp/decl.c:7243
+#, fuzzy
+msgid "constructor cannot be static member function"
+msgstr "Umumaro"
+
+#: cp/decl.c:7246
+#, fuzzy
+msgid "constructors cannot be declared virtual"
+msgstr "Kitaboneka"
+
+#: cp/decl.c:7251
+#, fuzzy
+msgid "constructors may not be cv-qualified"
+msgstr "Gicurasi OYA"
+
+#: cp/decl.c:7271
+#, fuzzy, c-format
+msgid "can't initialize friend function %qs"
+msgstr "gutangiza Umumaro"
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:7275
+#, fuzzy
+msgid "virtual functions cannot be friends"
+msgstr "Kitaboneka Imimaro"
+
+#: cp/decl.c:7279
+#, fuzzy
+msgid "friend declaration not in class definition"
+msgstr "OYA in ishuri Insobanuro"
+
+#: cp/decl.c:7281
+#, fuzzy, c-format
+msgid "can't define friend function %qs in a local class definition"
+msgstr "Kugaragaza... Umumaro in a ishuri Insobanuro"
+
+#: cp/decl.c:7294
+#, fuzzy
+msgid "destructors may not have parameters"
+msgstr "Gicurasi OYA Ibigenga"
+
+#: cp/decl.c:7313 cp/decl.c:7320
+#, fuzzy
+msgid "cannot declare reference to %q#T"
+msgstr "Indango Kuri"
+
+#: cp/decl.c:7314
+#, fuzzy
+msgid "cannot declare pointer to %q#T"
+msgstr "Mweretsi Kuri"
+
+#: cp/decl.c:7322
+#, fuzzy
+msgid "cannot declare pointer to %q#T member"
+msgstr "Mweretsi Kuri"
+
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "%qDni a"
+
+#: cp/decl.c:7400
+#, fuzzy
+msgid "template-id %qD used as a declarator"
+msgstr "Inyandikorugero ID Nka a"
+
+#: cp/decl.c:7447
+#, fuzzy
+msgid "extra qualification %<%T::%> on member %qs ignored"
+msgstr "Birenga ku"
+
+#: cp/decl.c:7466
+#, fuzzy
+msgid "cannot declare member function %<%T::%s%> within %<%T%>"
+msgstr "Umumaro muri"
+
+#: cp/decl.c:7481
+#, fuzzy
+msgid "cannot declare member %<%T::%s%> within %qT"
+msgstr "muri"
+
+#: cp/decl.c:7520
+#, fuzzy
+msgid "data member may not have variably modified type %qT"
+msgstr "Ibyatanzwe Gicurasi OYA Byahinduwe Ubwoko"
+
+#: cp/decl.c:7522
+#, fuzzy
+msgid "parameter may not have variably modified type %qT"
+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:7530
+#, fuzzy
+msgid "only declarations of constructors can be %<explicit%>"
+msgstr "Bya"
+
+#: cp/decl.c:7538
+msgid "non-member %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.c:7543
+#, fuzzy
+msgid "non-object member %qs cannot be declared %<mutable%>"
+msgstr "Igikoresho"
+
+#: cp/decl.c:7549
+#, fuzzy
+msgid "function %qs cannot be declared %<mutable%>"
+msgstr "Umumaro"
+
+#: cp/decl.c:7554
+msgid "static %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.c:7559
+msgid "const %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.c:7579
+#, fuzzy
+msgid "%Jtypedef name may not be a nested-name-specifier"
+msgstr "%JtypedefIzina: Gicurasi OYA a Izina:"
+
+#: cp/decl.c:7595
+#, fuzzy
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr "C Ubwoko Na: Izina: Nka ishuri"
+
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "Umumaro Kuri Imimaro"
+
+#: cp/decl.c:7720
+#, fuzzy
+msgid "type qualifiers specified for friend class declaration"
+msgstr "Ubwoko kugirango ishuri"
+
+#: cp/decl.c:7725
+#, fuzzy
+msgid "%<inline%> specified for friend class declaration"
+msgstr "%<Mumurongo kugirango ishuri"
+
+#: cp/decl.c:7733
+#, fuzzy
+msgid "template parameters cannot be friends"
+msgstr "Inyandikorugero Ibigenga"
+
+#: cp/decl.c:7735
+#, fuzzy
+msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
+msgstr "E."
+
+#: cp/decl.c:7739
+#, fuzzy
+msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
+msgstr "E."
+
+#: cp/decl.c:7752
+#, fuzzy
+msgid "trying to make class %qT a friend of global scope"
+msgstr "Kuri Ubwoko ishuri a Bya Ingano:"
+
+#: cp/decl.c:7763
+#, fuzzy
+msgid "invalid qualifiers on non-member function type"
+msgstr "Sibyo ku Umumaro Ubwoko"
+
+#: cp/decl.c:7782
+#, fuzzy
+msgid "abstract declarator %qT used as declaration"
+msgstr "Incamake Nka"
+
+#: cp/decl.c:7807
+#, fuzzy
+msgid "cannot use %<::%> in parameter declaration"
+msgstr "Gukoresha in"
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:7852
+#, fuzzy
+msgid "invalid use of %<::%>"
+msgstr "Sibyo Gukoresha Bya"
+
+#: cp/decl.c:7867
+#, fuzzy
+msgid "can't make %qD into a method -- not in a class"
+msgstr "Ubwoko a Uburyo OYA in a ishuri"
+
+#: cp/decl.c:7876
+#, fuzzy
+msgid "function %qD declared virtual inside a union"
+msgstr "Umumaro Kitaboneka Mo Imbere a Ihuza"
+
+#: cp/decl.c:7885
+#, fuzzy
+msgid "%qD cannot be declared virtual, since it is always static"
+msgstr "%qDKitaboneka guhera ni Buri gihe"
+
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "Bya Nka Bya"
+
+#: cp/decl.c:7979
+#, fuzzy
+msgid "field %qD has incomplete type"
+msgstr "Umwanya Ubwoko"
+
+#: cp/decl.c:7981
+#, fuzzy
+msgid "name %qT has incomplete type"
+msgstr "Izina: Ubwoko"
+
+#: cp/decl.c:7990
+#, fuzzy
+msgid " in instantiation of template %qT"
+msgstr "in Bya Inyandikorugero"
+
+#: cp/decl.c:8000
+#, fuzzy, c-format
+msgid "%qE is neither function nor member function; cannot be declared friend"
+msgstr "%qEni Umumaro Umumaro"
+
+#: cp/decl.c:8011
+#, 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:8051
+#, fuzzy
+msgid "ISO C++ forbids initialization of member %qD"
+msgstr "C Bya"
+
+#: cp/decl.c:8053
+msgid "making %qD static"
+msgstr ""
+
+#: cp/decl.c:8111
+#, fuzzy
+msgid "storage class %<auto%> invalid for function %qs"
+msgstr "ishuri Ikiyega Sibyo kugirango Umumaro"
+
+#: cp/decl.c:8113
+#, fuzzy
+msgid "storage class %<register%> invalid for function %qs"
+msgstr "ishuri Kwiyandikisha Sibyo kugirango Umumaro"
+
+#: cp/decl.c:8115
+#, fuzzy
+msgid "storage class %<__thread%> invalid for function %qs"
+msgstr "ishuri Urudodo Sibyo kugirango Umumaro"
+
+#: cp/decl.c:8126
+#, fuzzy
+msgid "%<static%> specified invalid for function %qs declared out of global scope"
+msgstr "%<Sibyo kugirango Umumaro Inyuma Bya Ingano:"
+
+#: cp/decl.c:8129
+#, fuzzy
+msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
+msgstr "%<Mumurongo Sibyo kugirango Umumaro Inyuma Bya Ingano:"
+
+#: cp/decl.c:8137
+#, fuzzy, c-format
+msgid "virtual non-class function %qs"
+msgstr "Kitaboneka ishuri Umumaro"
+
+#: cp/decl.c:8168
+#, fuzzy
+msgid "cannot declare member function %qD to have static linkage"
+msgstr "Umumaro Kuri"
+
+#. FIXME need arm citation
+#: cp/decl.c:8175
+#, fuzzy
+msgid "cannot declare static function inside another function"
+msgstr "Umumaro Mo Imbere Umumaro"
+
+#: cp/decl.c:8204
+#, 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:8211
+#, fuzzy
+msgid "static member %qD declared %<register%>"
+msgstr "Kwiyandikisha"
+
+#: cp/decl.c:8216
+#, fuzzy
+msgid "cannot explicitly declare member %q#D to have extern linkage"
+msgstr "Kuri"
+
+#: cp/decl.c:8359
+#, fuzzy
+msgid "default argument for %q#D has type %qT"
+msgstr "Mburabuzi kugirango Ubwoko"
+
+#: cp/decl.c:8362
+#, fuzzy
+msgid "default argument for parameter of type %qT has type %qT"
+msgstr "Mburabuzi kugirango Bya Ubwoko Ubwoko"
+
+#: cp/decl.c:8379
+#, fuzzy
+msgid "default argument %qE uses local variable %qD"
+msgstr "Mburabuzi IMPINDURAGACIRO"
+
+#: cp/decl.c:8447
+#, fuzzy
+msgid "parameter %qD invalidly declared method type"
+msgstr "Uburyo Ubwoko"
+
+#: cp/decl.c:8471
+#, fuzzy
+msgid "parameter %qD includes %s to array of unknown bound %qT"
+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:8630
+#, fuzzy
+msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
+msgstr "Sibyo"
+
+#: cp/decl.c:8754
+#, fuzzy
+msgid "%qD may not be declared within a namespace"
+msgstr "%qDGicurasi OYA muri a"
+
+#: cp/decl.c:8756
+#, fuzzy
+msgid "%qD may not be declared as static"
+msgstr "%qDGicurasi OYA Nka"
+
+#: cp/decl.c:8776
+#, fuzzy
+msgid "%qD must be a nonstatic member function"
+msgstr "%qDa Umumaro"
+
+#: cp/decl.c:8782
+#, fuzzy
+msgid "%qD must be either a non-static member function or a non-member function"
+msgstr "%qDa Umumaro Cyangwa a Umumaro"
+
+#: cp/decl.c:8800
+#, fuzzy
+msgid "%qD must have an argument of class or enumerated type"
+msgstr "%qDBya ishuri Cyangwa Ubwoko"
+
+#: cp/decl.c:8835
+#, 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:8843
+#, fuzzy
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr "C Mukoresha"
+
+#: cp/decl.c:8893
+#, fuzzy
+msgid "postfix %qD must take %<int%> as its argument"
+msgstr "INT Nka"
+
+#: cp/decl.c:8897
+#, fuzzy
+msgid "postfix %qD must take %<int%> as its second argument"
+msgstr "INT Nka ISEGONDA"
+
+#: cp/decl.c:8904
+#, fuzzy
+msgid "%qD must take either zero or one argument"
+msgstr "%qDZeru Cyangwa"
+
+#: cp/decl.c:8906
+#, fuzzy
+msgid "%qD must take either one or two arguments"
+msgstr "%qDCyangwa ingingo"
+
+#: cp/decl.c:8927
+#, fuzzy
+msgid "prefix %qD should return %qT"
+msgstr "Imbanziriza Garuka"
+
+#: cp/decl.c:8933
+#, fuzzy
+msgid "postfix %qD should return %qT"
+msgstr "Garuka"
+
+#: cp/decl.c:8942
+msgid "%qD must take %<void%>"
+msgstr ""
+
+#: cp/decl.c:8944 cp/decl.c:8952
+msgid "%qD must take exactly one argument"
+msgstr ""
+
+#: cp/decl.c:8954
+#, fuzzy
+msgid "%qD must take exactly two arguments"
+msgstr "%qDingingo"
+
+#: cp/decl.c:8962
+#, fuzzy
+msgid "user-defined %qD always evaluates both arguments"
+msgstr "Ukoresha: Buri gihe Byombi ingingo"
+
+#: cp/decl.c:8976
+#, fuzzy
+msgid "%qD should return by value"
+msgstr "%qDGaruka ku Agaciro"
+
+#: cp/decl.c:8988 cp/decl.c:8991
+#, fuzzy
+msgid "%qD cannot have default arguments"
+msgstr "%qDMburabuzi ingingo"
+
+#: cp/decl.c:9049
+#, fuzzy
+msgid "using template type parameter %qT after %qs"
+msgstr "ikoresha Inyandikorugero Ubwoko Nyuma"
+
+#: cp/decl.c:9064
+#, fuzzy
+msgid "using typedef-name %qD after %qs"
+msgstr "ikoresha Izina: Nyuma"
+
+#: cp/decl.c:9065
+#, fuzzy
+msgid "%qD has a previous declaration here"
+msgstr "%qDa Ibanjirije"
+
+#: cp/decl.c:9073
+#, fuzzy
+msgid "%qT referred to as %qs"
+msgstr "%qTKuri Nka"
+
+#: cp/decl.c:9074 cp/decl.c:9082
+#, fuzzy
+msgid "%qT has a previous declaration here"
+msgstr "%qTa Ibanjirije"
+
+#: cp/decl.c:9081
+#, fuzzy
+msgid "%qT referred to as enum"
+msgstr "%qTKuri Nka"
+
+#. If a class template appears as elaborated type specifier
+#. without a template header such as:
+#.
+#. template <class T> class C {};
+#. void f(class C); // No template header here
+#.
+#. then the required template argument is missing.
+#: cp/decl.c:9097
+#, fuzzy
+msgid "template argument required for %<%s %T%>"
+msgstr "Inyandikorugero Bya ngombwa kugirango"
+
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+#, fuzzy
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "%qDi Izina: Nka i ishuri in ni"
+
+#: cp/decl.c:9271
+#, fuzzy
+msgid "use of enum %q#D without previous declaration"
+msgstr "Gukoresha Bya Ibanjirije"
+
+#: cp/decl.c:9290
+#, fuzzy
+msgid "redeclaration of %qT as a non-template"
+msgstr "Bya Nka a Inyandikorugero"
+
+#: cp/decl.c:9383
+#, fuzzy
+msgid "derived union %qT invalid"
+msgstr "Ihuza Sibyo"
+
+#: cp/decl.c:9389
+#, fuzzy
+msgid "Java class %qT cannot have multiple bases"
+msgstr "ishuri Igikubo"
+
+#: cp/decl.c:9397
+#, fuzzy
+msgid "Java class %qT cannot have virtual bases"
+msgstr "ishuri Kitaboneka"
+
+#: cp/decl.c:9416
+#, fuzzy
+msgid "base type %qT fails to be a struct or class type"
+msgstr "SHINGIRO Ubwoko Kuri a Cyangwa ishuri Ubwoko"
+
+#: cp/decl.c:9449
+#, fuzzy
+msgid "recursive type %qT undefined"
+msgstr "Ubwoko kidasobanuye"
+
+#: cp/decl.c:9451
+#, fuzzy
+msgid "duplicate base type %qT invalid"
+msgstr "Gusubiramo SHINGIRO Ubwoko Sibyo"
+
+#: cp/decl.c:9521
+#, fuzzy
+msgid "multiple definition of %q#T"
+msgstr "Igikubo Insobanuro Bya"
+
+#: cp/decl.c:9522
+#, fuzzy
+msgid "%Jprevious definition here"
+msgstr "%JpreviousInsobanuro"
+
+#. DR 377
+#.
+#. IF no integral type can represent all the enumerator values, the
+#. enumeration is ill-formed.
+#: cp/decl.c:9659
+#, fuzzy
+msgid "no integral type can represent all of the enumerator values for %qT"
+msgstr "Oya Umubare Wuzuye Ubwoko Byose Bya i Uduciro kugirango"
+
+#: cp/decl.c:9765
+#, fuzzy
+msgid "enumerator value for %qD not integer constant"
+msgstr "Agaciro kugirango OYA Umubare wuzuye"
+
+#: cp/decl.c:9792
+#, fuzzy
+msgid "overflow in enumeration values at %qD"
+msgstr "Byarenze urugero in Uduciro ku"
+
+#: cp/decl.c:9863
+#, fuzzy
+msgid "return type %q#T is incomplete"
+msgstr "Garuka Ubwoko ni"
+
+#: cp/decl.c:9978 cp/typeck.c:6163
+#, fuzzy
+msgid "%<operator=%> should return a reference to %<*this%>"
+msgstr "%<Mukoresha Garuka a Indango Kuri iyi"
+
+#: cp/decl.c:10301
+msgid "parameter %qD declared void"
+msgstr ""
+
+#: cp/decl.c:10790
+#, fuzzy
+msgid "invalid member function declaration"
+msgstr "Sibyo Umumaro"
+
+#: cp/decl.c:10805
+#, fuzzy
+msgid "%qD is already defined in class %qT"
+msgstr "%qDni in ishuri"
+
+#: cp/decl.c:11015
+#, fuzzy
+msgid "static member function %q#D declared with type qualifiers"
+msgstr "Umumaro Na: Ubwoko"
+
+#: cp/decl2.c:279
+#, fuzzy
+msgid "name missing for member function"
+msgstr "Izina: Ibuze kugirango Umumaro"
+
+#: cp/decl2.c:372 cp/decl2.c:386
+#, fuzzy
+msgid "ambiguous conversion for array subscript"
+msgstr "Ihindurangero kugirango Imbonerahamwe Inyandiko nyesi"
+
+#: cp/decl2.c:380
+#, fuzzy
+msgid "invalid types %<%T[%T]%> for array subscript"
+msgstr "Sibyo kugirango Imbonerahamwe Inyandiko nyesi"
+
+#: cp/decl2.c:423
+#, fuzzy
+msgid "deleting array %q#D"
+msgstr "Imbonerahamwe"
+
+#: cp/decl2.c:429
+#, fuzzy
+msgid "type %q#T argument given to %<delete%>, expected pointer"
+msgstr "Ubwoko Kuri Gusiba Ikitezwe: Mweretsi"
+
+#: cp/decl2.c:441
+#, 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 Gusiba"
+
+#: cp/decl2.c:449
+#, fuzzy
+msgid "deleting %qT is undefined"
+msgstr "ni kidasobanuye"
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:485
+#, fuzzy
+msgid "invalid declaration of member template %q#D in local class"
+msgstr "Sibyo Bya Inyandikorugero in ishuri"
+
+#: cp/decl2.c:494
+#, fuzzy
+msgid "invalid use of %<virtual%> in template declaration of %q#D"
+msgstr "Sibyo Gukoresha Bya Kitaboneka in Inyandikorugero Bya"
+
+#: cp/decl2.c:504 cp/pt.c:2965
+#, fuzzy
+msgid "template declaration of %q#D"
+msgstr "Inyandikorugero Bya"
+
+#: cp/decl2.c:553
+#, fuzzy
+msgid "Java method %qD has non-Java return type %qT"
+msgstr "Uburyo Garuka Ubwoko"
+
+#: cp/decl2.c:569
+#, fuzzy
+msgid "Java method %qD has non-Java parameter type %qT"
+msgstr "Uburyo Ubwoko"
+
+#: cp/decl2.c:674
+#, fuzzy
+msgid "prototype for %q#D does not match any in class %qT"
+msgstr "kugirango OYA BIHUYE in ishuri"
+
+#: cp/decl2.c:775
+#, fuzzy
+msgid "local class %q#T shall not have static data member %q#D"
+msgstr "ishuri OYA Ibyatanzwe"
+
+#: cp/decl2.c:783
+#, fuzzy
+msgid "initializer invalid for static member with constructor"
+msgstr "Sibyo kugirango Na:"
+
+#: cp/decl2.c:786
+#, fuzzy
+msgid "(an out of class initialization is required)"
+msgstr "(Inyuma Bya ishuri ni Bya ngombwa"
+
+#: cp/decl2.c:867
+#, fuzzy
+msgid "member %qD conflicts with virtual function table field name"
+msgstr "Na: Kitaboneka Umumaro imbonerahamwe# Umwanya Izina:"
+
+#: cp/decl2.c:886
+#, fuzzy
+msgid "applying attributes to template parameters is not implemented"
+msgstr "Ibiranga Kuri Inyandikorugero Ibigenga ni OYA"
+
+#: cp/decl2.c:896
+#, fuzzy
+msgid "%qD is already defined in %qT"
+msgstr "%qDni in"
+
+#: cp/decl2.c:944
+#, fuzzy
+msgid "field initializer is not constant"
+msgstr "Umwanya ni OYA"
+
+#: cp/decl2.c:972
+#, fuzzy
+msgid "%<asm%> specifiers are not permitted on non-static data members"
+msgstr "%<OYA ku Ibyatanzwe"
+
+#: cp/decl2.c:1018
+#, fuzzy
+msgid "cannot declare %qD to be a bit-field type"
+msgstr "Kuri a Umwanya Ubwoko"
+
+#: cp/decl2.c:1028
+#, fuzzy
+msgid "cannot declare bit-field %qD with function type"
+msgstr "Umwanya Na: Umumaro Ubwoko"
+
+#: cp/decl2.c:1035
+#, fuzzy
+msgid "%qD is already defined in the class %qT"
+msgstr "%qDni in i ishuri"
+
+#: cp/decl2.c:1042
+#, fuzzy
+msgid "static member %qD cannot be a bit-field"
+msgstr "a Umwanya"
+
+#: cp/decl2.c:1087
+#, fuzzy
+msgid "anonymous struct not inside named type"
+msgstr "OYA Mo Imbere Ubwoko"
+
+#: cp/decl2.c:1164
+#, fuzzy
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr "Ingano:"
+
+#: cp/decl2.c:1171
+#, fuzzy
+msgid "anonymous union with no members"
+msgstr "Ihuza Na: Oya"
+
+#: cp/decl2.c:1207
+#, fuzzy
+msgid "%<operator new%> must return type %qT"
+msgstr "%<Mukoresha Gishya Garuka Ubwoko"
+
+#: cp/decl2.c:1216
+#, fuzzy
+msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
+msgstr "%<Mukoresha Gishya Ubwoko Nka Itangira"
+
+#: cp/decl2.c:1245
+#, fuzzy
+msgid "%<operator delete%> must return type %qT"
+msgstr "%<Mukoresha Gusiba Garuka Ubwoko"
+
+#: cp/decl2.c:1254
+#, fuzzy
+msgid "%<operator delete%> takes type %qT as first parameter"
+msgstr "%<Mukoresha Gusiba Ubwoko Nka Itangira"
+
+#: cp/decl2.c:2992
+#, fuzzy
+msgid "inline function %qD used but never defined"
+msgstr "Mumurongo Umumaro Nta narimwe"
+
+#: cp/decl2.c:3140
+#, fuzzy
+msgid "default argument missing for parameter %P of %q+#D"
+msgstr "Mburabuzi Ibuze kugirango Bya"
+
+#. damn ICE suppression
+#: cp/error.c:2371
+#, fuzzy, c-format
+msgid "unexpected letter %qc in locate_error\n"
+msgstr "Ibaruwa... in"
+
+#. Can't throw a reference.
+#: cp/except.c:262
+#, fuzzy
+msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
+msgstr "Ubwoko ni in Cyangwa"
+
+#: cp/except.c:273
+#, 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:280
+#, fuzzy
+msgid "type %qT is not derived from %<java::lang::Throwable%>"
+msgstr "Ubwoko ni OYA Bivuye java"
+
+#: cp/except.c:343
+#, 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:602
+#, fuzzy
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr "Umubare Wuzuye OYA Mweretsi Ubwoko"
+
+#: cp/except.c:625 cp/init.c:1893
+#, fuzzy
+msgid "%qD should never be overloaded"
+msgstr "%qDNta narimwe"
+
+#: cp/except.c:692
+#, fuzzy
+msgid " in thrown expression"
+msgstr "in imvugo"
+
+#: cp/except.c:836
+#, fuzzy
+msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
+msgstr "imvugo Bya Incamake ishuri Ubwoko in imvugo"
+
+#: cp/except.c:921
+#, fuzzy
+msgid "%Hexception of type %qT will be caught"
+msgstr "%HexceptionBya Ubwoko"
+
+#: cp/except.c:923
+#, fuzzy
+msgid "%H by earlier handler for %qT"
+msgstr "%Hku kugirango"
+
+#: cp/except.c:953
+#, fuzzy
+msgid "%H%<...%> handler must be the last handler for its try block"
+msgstr "%H%<...%>i Iheruka kugirango Funga"
+
+#: cp/friend.c:152
+#, fuzzy
+msgid "%qD is already a friend of class %qT"
+msgstr "%qDni a Bya ishuri"
+
+#: cp/friend.c:228
+#, fuzzy
+msgid "invalid type %qT declared %<friend%>"
+msgstr "Sibyo Ubwoko"
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#. template <class U> friend class T::X<U>;
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:244 cp/friend.c:274
+#, fuzzy
+msgid "partial specialization %qT declared %<friend%>"
+msgstr "Bituzuye"
+
+#: cp/friend.c:252
+#, fuzzy
+msgid "class %qT is implicitly friends with itself"
+msgstr "ishuri ni Na:"
+
+#: cp/friend.c:310
+#, fuzzy
+msgid "%qT is not a member of %qT"
+msgstr "%qTni OYA a Bya"
+
+#: cp/friend.c:315
+#, fuzzy
+msgid "%qT is not a member class template of %qT"
+msgstr "%qTni OYA a ishuri Inyandikorugero Bya"
+
+#: cp/friend.c:323
+#, fuzzy
+msgid "%qT is not a nested class of %qT"
+msgstr "%qTni OYA a ishuri Bya"
+
+#. template <class T> friend class T;
+#: cp/friend.c:336
+#, fuzzy
+msgid "template parameter type %qT declared %<friend%>"
+msgstr "Inyandikorugero Ubwoko"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:342
+#, fuzzy
+msgid "%q#T is not a template"
+msgstr "%q#Tni OYA a Inyandikorugero"
+
+#: cp/friend.c:364
+#, fuzzy
+msgid "%qD is already a friend of %qT"
+msgstr "%qDni a Bya"
+
+#: cp/friend.c:373
+#, fuzzy
+msgid "%qT is already a friend of %qT"
+msgstr "%qTni a Bya"
+
+#: cp/friend.c:497
+#, fuzzy
+msgid "member %qD declared as friend before type %qT defined"
+msgstr "Nka Mbere Ubwoko"
+
+#: cp/friend.c:553
+#, fuzzy
+msgid "friend declaration %q#D declares a non-template function"
+msgstr "a Inyandikorugero Umumaro"
+
+#: cp/friend.c:557
+#, 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:238 java/jvspec.c:417
+#, fuzzy, c-format
+msgid "argument to '%s' missing\n"
+msgstr "Kuri"
+
+#: cp/init.c:326
+#, fuzzy
+msgid "%J%qD should be initialized in the member initialization list"
+msgstr "%J%qDin i Urutonde"
+
+#: cp/init.c:373
+#, fuzzy
+msgid "%Jdefault-initialization of %q#D, which has reference type"
+msgstr "%Jdefault-initializationBya Indango Ubwoko"
+
+#: cp/init.c:379
+#, fuzzy
+msgid "%Juninitialized reference member %qD"
+msgstr "%JuninitializedIndango"
+
+#: cp/init.c:382
+#, fuzzy
+msgid "%Juninitialized member %qD with %<const%> type %qT"
+msgstr "%JuninitializedNa: Ubwoko"
+
+#: cp/init.c:525
+#, fuzzy
+msgid "%qD will be initialized after"
+msgstr "%qDNyuma"
+
+#: cp/init.c:528
+#, fuzzy
+msgid "base %qT will be initialized after"
+msgstr "SHINGIRO Nyuma"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: cp/init.c:531
+#, fuzzy
+msgid " %q#D"
+msgstr "%q#D"
+
+# sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_BASE.text
+#: cp/init.c:533
+#, fuzzy
+msgid " base %qT"
+msgstr "SHINGIRO"
+
+#: cp/init.c:534
+#, fuzzy
+msgid "%J when initialized here"
+msgstr "%JRyari:"
+
+#: cp/init.c:550
+#, fuzzy
+msgid "%Jmultiple initializations given for %qD"
+msgstr "%Jmultiplekugirango"
+
+#: cp/init.c:553
+#, fuzzy
+msgid "%Jmultiple initializations given for base %qT"
+msgstr "%Jmultiplekugirango SHINGIRO"
+
+#: cp/init.c:620
+#, fuzzy
+msgid "%Jinitializations for multiple members of %qT"
+msgstr "%Jinitializationskugirango Igikubo Bya"
+
+#: cp/init.c:677
+#, fuzzy
+msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
+msgstr "%Jbaseishuri in i Gukoporora"
+
+#: cp/init.c:901 cp/init.c:920
+#, fuzzy
+msgid "class %qT does not have any field named %qD"
+msgstr "ishuri OYA Umwanya"
+
+#: cp/init.c:907
+#, fuzzy
+msgid "%q#D is a static data member; it can only be initialized at its definition"
+msgstr "%q#Dni a Ibyatanzwe ku Insobanuro"
+
+#: cp/init.c:914
+#, fuzzy
+msgid "%q#D is not a non-static data member of %qT"
+msgstr "%q#Dni OYA a Ibyatanzwe Bya"
+
+#: cp/init.c:953
+#, fuzzy
+msgid "unnamed initializer for %qT, which has no base classes"
+msgstr "Kitiswe kugirango Oya SHINGIRO Inzego"
+
+#: cp/init.c:961
+#, fuzzy
+msgid "unnamed initializer for %qT, which uses multiple inheritance"
+msgstr "Kitiswe kugirango Igikubo"
+
+#: cp/init.c:1007
+#, fuzzy
+msgid "%qD is both a direct base and an indirect virtual base"
+msgstr "%qDni Byombi a SHINGIRO Na BUZIGUYE Kitaboneka SHINGIRO"
+
+#: cp/init.c:1015
+#, fuzzy
+msgid "type %qD is not a direct or virtual base of %qT"
+msgstr "Ubwoko ni OYA a Cyangwa Kitaboneka SHINGIRO Bya"
+
+#: cp/init.c:1018
+#, fuzzy
+msgid "type %qD is not a direct base of %qT"
+msgstr "Ubwoko ni OYA a SHINGIRO Bya"
+
+#: cp/init.c:1098
+#, fuzzy
+msgid "bad array initializer"
+msgstr "Imbonerahamwe"
+
+#: cp/init.c:1297
+#, fuzzy
+msgid "%qT is not an aggregate type"
+msgstr "%qTni OYA Ubwoko"
+
+#: cp/init.c:1389
+#, fuzzy
+msgid "qualified type %qT does not match destructor name %<~%T%>"
+msgstr "Ubwoko OYA BIHUYE Izina:"
+
+#: cp/init.c:1397
+#, fuzzy
+msgid "incomplete type %qT does not have member %qD"
+msgstr "Ubwoko OYA"
+
+#: cp/init.c:1416
+#, fuzzy
+msgid "%qD is not a member of type %qT"
+msgstr "%qDni OYA a Bya Ubwoko"
+
+#: cp/init.c:1443
+#, fuzzy
+msgid "invalid pointer to bit-field %qD"
+msgstr "Sibyo Mweretsi Kuri Umwanya"
+
+#: cp/init.c:1545
+#, fuzzy
+msgid "invalid use of non-static member function %qD"
+msgstr "Sibyo Gukoresha Bya Umumaro"
+
+#: cp/init.c:1551 cp/semantics.c:1321
+#, fuzzy
+msgid "invalid use of non-static data member %qD"
+msgstr "Sibyo Gukoresha Bya Ibyatanzwe"
+
+#: cp/init.c:1651
+#, fuzzy
+msgid "size in array new must have integral type"
+msgstr "Ingano in Imbonerahamwe Gishya Umubare Wuzuye Ubwoko"
+
+#: cp/init.c:1654
+#, fuzzy
+msgid "zero size array reserves no space"
+msgstr "Zeru Ingano Imbonerahamwe Oya Umwanya"
+
+#: cp/init.c:1662
+#, fuzzy
+msgid "new cannot be applied to a reference type"
+msgstr "Gishya Byashyizweho Kuri a Indango Ubwoko"
+
+#: cp/init.c:1668
+#, fuzzy
+msgid "new cannot be applied to a function type"
+msgstr "Gishya Byashyizweho Kuri a Umumaro Ubwoko"
+
+#: cp/init.c:1700
+#, fuzzy
+msgid "call to Java constructor, while %<jclass%> undefined"
+msgstr "Kuri kidasobanuye"
+
+#: cp/init.c:1716
+#, fuzzy
+msgid "can't find class$"
+msgstr "Gushaka ishuri"
+
+#: cp/init.c:1844
+#, fuzzy
+msgid "invalid type %<void%> for new"
+msgstr "Sibyo Ubwoko kugirango Gishya"
+
+#: cp/init.c:1854
+#, fuzzy
+msgid "uninitialized const in %<new%> of %q#T"
+msgstr "Itatangijwe in Gishya Bya"
+
+#: cp/init.c:1888
+#, fuzzy, c-format
+msgid "call to Java constructor with %qs undefined"
+msgstr "Kuri Na: kidasobanuye"
+
+#: cp/init.c:1928
+#, fuzzy
+msgid "request for member %qD is ambiguous"
+msgstr "Kubaza... kugirango ni"
+
+#: cp/init.c:2061
+#, fuzzy
+msgid "ISO C++ forbids initialization in array new"
+msgstr "C in Imbonerahamwe Gishya"
+
+#: cp/init.c:2531
+msgid "initializer ends prematurely"
+msgstr ""
+
+#: cp/init.c:2584
+#, fuzzy
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr "gutangiza Imbonerahamwe Na:"
+
+#: cp/init.c:2741
+#, fuzzy
+msgid "possible problem detected in invocation of delete operator:"
+msgstr "in Bya Gusiba Mukoresha"
+
+#: cp/init.c:2744
+#, fuzzy
+msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
+msgstr "i i ishuri Mukoresha Gusiba ATARIIGIHARWE NIBA Ryari: i ishuri ni"
+
+#: cp/init.c:2765
+#, fuzzy
+msgid "unknown array size in delete"
+msgstr "Kitazwi Imbonerahamwe Ingano in Gusiba"
+
+#: cp/init.c:2998
+#, fuzzy
+msgid "type to vector delete is neither pointer or array type"
+msgstr "Ubwoko Kuri Gusiba ni Mweretsi Cyangwa Imbonerahamwe Ubwoko"
+
+#: cp/lex.c:436
+#, fuzzy, c-format
+msgid "junk at end of #pragma %s"
+msgstr "Umwanda ku Impera Bya"
+
+#: cp/lex.c:443
+#, fuzzy, c-format
+msgid "invalid #pragma %s"
+msgstr "Sibyo"
+
+#: cp/lex.c:451
+#, fuzzy
+msgid "#pragma vtable no longer supported"
+msgstr "#Oya"
+
+#: cp/lex.c:530
+#, fuzzy, c-format
+msgid "#pragma implementation for %qs appears after file is included"
+msgstr "#kugirango Nyuma IDOSIYE ni"
+
+#: cp/lex.c:555
+#, fuzzy
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr "Umwanda ku Impera Bya"
+
+#: cp/lex.c:569
+#, fuzzy
+msgid "%qD not defined"
+msgstr "%qDBitasobanutse>"
+
+#: cp/lex.c:573
+#, fuzzy
+msgid "%qD was not declared in this scope"
+msgstr "%qDOYA in iyi Ingano:"
+
+#. In a template, it is invalid to write "f()" or "f(3)" if no
+#. declaration of "f" is available. Historically, G++ and most
+#. other compilers accepted that usage since they deferred all name
+#. lookup until instantiation time rather than doing unqualified
+#. name lookup at template definition time; explain to the user what
+#. is going wrong.
+#.
+#. Note that we have the exact wording of the following message in
+#. the manual (trouble.texi, node "Name lookup"), so they need to
+#. be kept in synch.
+#: cp/lex.c:610
+#, fuzzy
+msgid "there are no arguments to %qD that depend on a template parameter, so a declaration of %qD must be available"
+msgstr "Oya ingingo Kuri ku a Inyandikorugero a Bya Bihari"
+
+#: cp/lex.c:619
+#, fuzzy
+msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
+msgstr "(NIBA Gukoresha Kwemera ITEGEKONGENGA i Gukoresha Bya Izina: ni Bitemewe."
+
+#: cp/mangle.c:2114
+#, fuzzy
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "Kuri a in i C"
+
+#: cp/mangle.c:2122
+#, fuzzy
+msgid "zero-operand casts cannot be mangled due to a defect in the C++ ABI"
+msgstr "Zeru Kuri a in i C"
+
+#: cp/mangle.c:2172
+#, fuzzy
+msgid "omitted middle operand to %<?:%> operand cannot be mangled"
+msgstr "Hagati Kuri"
+
+#: cp/mangle.c:2482
+#, fuzzy
+msgid "the mangled name of %qD will change in a future version of GCC"
+msgstr "i Izina: Bya Guhindura>> in a Verisiyo Bya"
+
+#: cp/method.c:441
+#, fuzzy
+msgid "generic thunk code fails for method %q#D which uses %<...%>"
+msgstr "Gifitanye isano ITEGEKONGENGA kugirango Uburyo"
+
+#: cp/method.c:657
+#, fuzzy
+msgid "non-static const member %q#D, can't use default assignment operator"
+msgstr "Gukoresha Mburabuzi Igenera Mukoresha"
+
+#: cp/method.c:663
+#, fuzzy
+msgid "non-static reference member %q#D, can't use default assignment operator"
+msgstr "Indango Gukoresha Mburabuzi Igenera Mukoresha"
+
+#: cp/method.c:1078
+#, fuzzy
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr "Imigaragarire kugirango ishuri Gicurasi OYA Gicurasi Guhindura>> in a Verisiyo Bya Kuri Kitaboneka"
+
+#: cp/name-lookup.c:693
+#, fuzzy
+msgid "redeclaration of %<wchar_t%> as %qT"
+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/name-lookup.c:725
+#, fuzzy
+msgid "invalid redeclaration of %qD"
+msgstr "Sibyo Bya"
+
+# svx/source\dialog\backgrnd.src:RID_SVXPAGE_BACKGROUND.FT_SELECTOR.text
+#: cp/name-lookup.c:726
+#, fuzzy
+msgid "as %qD"
+msgstr "Nka"
+
+#: cp/name-lookup.c:814
+#, fuzzy
+msgid "type mismatch with previous external decl of %q#D"
+msgstr "Ubwoko Na: Ibanjirije external Bya"
+
+#: cp/name-lookup.c:815
+#, fuzzy
+msgid "previous external decl of %q#D"
+msgstr "Ibanjirije external Bya"
+
+#: cp/name-lookup.c:897
+#, fuzzy
+msgid "extern declaration of %q#D doesn't match"
+msgstr "Bya BIHUYE"
+
+#: cp/name-lookup.c:898
+msgid "global declaration %q#D"
+msgstr ""
+
+#: cp/name-lookup.c:934 cp/name-lookup.c:941
+#, fuzzy
+msgid "declaration of %q#D shadows a parameter"
+msgstr "Bya a"
+
+#. Location of previous decl is not useful in this case.
+#: cp/name-lookup.c:966
+#, fuzzy
+msgid "declaration of %qD shadows a member of 'this'"
+msgstr "Bya a Bya"
+
+#: cp/name-lookup.c:972
+#, fuzzy
+msgid "declaration of %qD shadows a previous local"
+msgstr "Bya a Ibanjirije"
+
+#: cp/name-lookup.c:979
+#, fuzzy
+msgid "declaration of %qD shadows a global declaration"
+msgstr "Bya a"
+
+#: cp/name-lookup.c:1095
+#, fuzzy
+msgid "name lookup of %qD changed"
+msgstr "Izina: GUSHAKISHA Bya Byahinduwe"
+
+#: cp/name-lookup.c:1096
+#, fuzzy
+msgid " matches this %qD under ISO standard rules"
+msgstr "iyi Bisanzwe"
+
+#: cp/name-lookup.c:1098
+#, fuzzy
+msgid " matches this %qD under old rules"
+msgstr "iyi ki/ bishaje"
+
+#: cp/name-lookup.c:1116 cp/name-lookup.c:1124
+#, fuzzy
+msgid "name lookup of %qD changed for new ISO %<for%> scoping"
+msgstr "Izina: GUSHAKISHA Bya Byahinduwe kugirango Gishya kugirango"
+
+#: cp/name-lookup.c:1118
+#, fuzzy
+msgid " cannot use obsolete binding at %qD because it has a destructor"
+msgstr "Gukoresha Bifatanya ku a"
+
+#: cp/name-lookup.c:1126
+#, fuzzy
+msgid " using obsolete binding at %qD"
+msgstr "ikoresha Bifatanya ku"
+
+#: cp/name-lookup.c:1179
+#, c-format
+msgid "%s %s(%E) %p %d\n"
+msgstr ""
+
+#: cp/name-lookup.c:1182
+#, c-format
+msgid "%s %s %p %d\n"
+msgstr ""
+
+#: cp/name-lookup.c:1308
+msgid "XXX is_class_level != (current_scope == class_scope)\n"
+msgstr ""
+
+#: cp/name-lookup.c:1864
+#, fuzzy
+msgid "%q#D hides constructor for %q#T"
+msgstr "%q#Dkugirango"
+
+#: cp/name-lookup.c:1879
+#, fuzzy
+msgid "%q#D conflicts with previous using declaration %q#D"
+msgstr "%q#DNa: Ibanjirije ikoresha"
+
+#: cp/name-lookup.c:1891
+#, fuzzy
+msgid "previous non-function declaration %q#D"
+msgstr "Ibanjirije Umumaro"
+
+#: cp/name-lookup.c:1892
+#, fuzzy
+msgid "conflicts with function declaration %q#D"
+msgstr "Na: Umumaro"
+
+#. It's a nested name with template parameter dependent scope.
+#. This can only be using-declaration for class member.
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
+#, fuzzy
+msgid "%qT is not a namespace"
+msgstr "%qTni OYA a"
+
+#. 7.3.3/5
+#. A using-declaration shall not name a template-id.
+#: cp/name-lookup.c:1980
+#, fuzzy
+msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
+msgstr "a ikoresha a Inyandikorugero ID ikoresha"
+
+#: cp/name-lookup.c:1987
+#, fuzzy
+msgid "namespace %qD not allowed in using-declaration"
+msgstr "OYA in ikoresha"
+
+#: cp/name-lookup.c:2023
+#, fuzzy
+msgid "%qD not declared"
+msgstr "%qDOYA"
+
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
+#, fuzzy
+msgid "%qD is already declared in this scope"
+msgstr "%qDni in iyi Ingano:"
+
+#: cp/name-lookup.c:2120
+#, fuzzy
+msgid "using declaration %qD introduced ambiguous type %qT"
+msgstr "ikoresha Ubwoko"
+
+#: cp/name-lookup.c:2691
+#, fuzzy
+msgid "using-declaration for non-member at class scope"
+msgstr "ikoresha kugirango ku ishuri Ingano:"
+
+#: cp/name-lookup.c:2696
+#, fuzzy
+msgid "using-declaration cannot name destructor"
+msgstr "ikoresha Izina:"
+
+#: cp/name-lookup.c:2769
+#, fuzzy
+msgid "declaration of %qD not in a namespace surrounding %qD"
+msgstr "Bya OYA in a"
+
+#: cp/name-lookup.c:2777
+#, fuzzy
+msgid "explicit qualification in declaration of `%D'"
+msgstr "in Bya"
+
+#: cp/name-lookup.c:2813
+#, fuzzy
+msgid "%qD should have been declared inside %qD"
+msgstr "%qDMo Imbere"
+
+#: cp/name-lookup.c:2875
+#, fuzzy
+msgid "namespace alias %qD not allowed here, assuming %qD"
+msgstr "Irihimbano OYA"
+
+#. The parser did not find it, so it's not there.
+#: cp/name-lookup.c:2990
+#, fuzzy
+msgid "unknown namespace %qD"
+msgstr "Kitazwi"
+
+#: cp/name-lookup.c:3151
+msgid "namespace %qT undeclared"
+msgstr ""
+
+#: cp/name-lookup.c:3195
+#, fuzzy
+msgid "strong using only meaningful at namespace scope"
+msgstr "ikoresha ku Ingano:"
+
+#: cp/name-lookup.c:3202
+#, fuzzy
+msgid "%qD attribute directive ignored"
+msgstr "%qDIkiranga"
+
+#: cp/name-lookup.c:3336
+#, fuzzy
+msgid "use of %qD is ambiguous"
+msgstr "Gukoresha Bya ni"
+
+#: cp/name-lookup.c:3337
+#, fuzzy
+msgid " first declared as %q#D here"
+msgstr "Itangira Nka"
+
+#: cp/name-lookup.c:3339
+#, fuzzy
+msgid " also declared as %q#D here"
+msgstr "Nka"
+
+#: cp/name-lookup.c:3354
+#, fuzzy
+msgid "%qD denotes an ambiguous type"
+msgstr "%qDUbwoko"
+
+#: cp/name-lookup.c:3355
+#, fuzzy
+msgid "%J first type here"
+msgstr "%JItangira Ubwoko"
+
+#: cp/name-lookup.c:3356
+#, fuzzy
+msgid "%J other type here"
+msgstr "%JIkindi Ubwoko"
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
+#, fuzzy
+msgid "invalid use of %qD"
+msgstr "Sibyo Gukoresha Bya"
+
+#: cp/name-lookup.c:3460
+#, fuzzy
+msgid "%<%D::%D%> is not a template"
+msgstr "%<%D::%D%>ni OYA a Inyandikorugero"
+
+#: cp/name-lookup.c:3476
+#, fuzzy
+msgid "%qD undeclared in namespace %qD"
+msgstr "%qDin"
+
+#: cp/name-lookup.c:4102
+#, fuzzy
+msgid "%qD is not a function,"
+msgstr "%qDni OYA a Umumaro"
+
+#: cp/name-lookup.c:4103
+#, fuzzy
+msgid " conflict with %qD"
+msgstr "Na:"
+
+#: cp/name-lookup.c:4868
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/name-lookup.c:4877
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "%<#ni OYA"
+
+#: cp/parser.c:1836
+#, fuzzy
+msgid "%<%D::%D%> has not been declared"
+msgstr "%<%D::%D%>OYA"
+
+#: cp/parser.c:1839 cp/semantics.c:2375
+#, fuzzy
+msgid "%<::%D%> has not been declared"
+msgstr "%<::%D%>OYA"
+
+#: cp/parser.c:1842
+#, fuzzy
+msgid "request for member %qD in non-class type %qT"
+msgstr "Kubaza... kugirango in ishuri Ubwoko"
+
+#: cp/parser.c:1845
+#, fuzzy
+msgid "%<%T::%D%> has not been declared"
+msgstr "%<%T::%D%>OYA"
+
+#: cp/parser.c:1848
+#, fuzzy
+msgid "%qD has not been declared"
+msgstr "%qDOYA"
+
+#: cp/parser.c:1851
+msgid "%<%D::%D%> %s"
+msgstr ""
+
+#: cp/parser.c:1853
+#, fuzzy
+msgid "%<::%D%> %s"
+msgstr "%<::%D%>%s"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/parser.c:1855
+#, fuzzy
+msgid "%qD %s"
+msgstr "%qD%s"
+
+#: cp/parser.c:1907
+#, fuzzy
+msgid "new types may not be defined in a return type"
+msgstr "Gishya Gicurasi OYA in a Garuka Ubwoko"
+
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "(a Akabago n'Akitso ni Ibuze Nyuma i Insobanuro Bya"
+
+#: cp/parser.c:1927 cp/pt.c:4328
+#, fuzzy
+msgid "%qT is not a template"
+msgstr "%qTni OYA a Inyandikorugero"
+
+#: cp/parser.c:1929
+#, fuzzy, c-format
+msgid "%qE is not a template"
+msgstr "%qEni OYA a Inyandikorugero"
+
+#: cp/parser.c:1931
+#, fuzzy
+msgid "invalid template-id"
+msgstr "Sibyo Inyandikorugero ID"
+
+#: cp/parser.c:1960
+#, fuzzy, c-format
+msgid "%s cannot appear in a constant-expression"
+msgstr "%sKugaragara in a imvugo"
+
+#: cp/parser.c:1985
+#, fuzzy, c-format
+msgid "invalid use of template-name %qE without an argument list"
+msgstr "Sibyo Gukoresha Bya Inyandikorugero Izina: Urutonde"
+
+#. Issue an error message.
+#: cp/parser.c:1990
+#, fuzzy, c-format
+msgid "%qE does not name a type"
+msgstr "%qEOYA Izina: a Ubwoko"
+
+#: cp/parser.c:2021
+msgid "(perhaps %<typename %T::%E%> was intended)"
+msgstr ""
+
+#: cp/parser.c:2036
+#, fuzzy, c-format
+msgid "%qE in namespace %qE does not name a type"
+msgstr "%qEin OYA Izina: a Ubwoko"
+
+#: cp/parser.c:2039
+#, fuzzy
+msgid "%qE in class %qT does not name a type"
+msgstr "%qEin ishuri OYA Izina: a Ubwoko"
+
+#: cp/parser.c:2748
+#, fuzzy
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr "C Amatsinda muri"
+
+#: cp/parser.c:2757
+#, fuzzy
+msgid "statement-expressions are allowed only inside functions"
+msgstr "Inyandiko Mo Imbere Imimaro"
+
+#: cp/parser.c:2808
+#, fuzzy
+msgid "%<this%> may not be used in this context"
+msgstr "%<iyi Gicurasi OYA in iyi Imvugiro"
+
+#: cp/parser.c:2944
+#, fuzzy
+msgid "local variable %qD may not appear in this context"
+msgstr "IMPINDURAGACIRO Gicurasi OYA Kugaragara in iyi Imvugiro"
+
+#: cp/parser.c:3316
+#, fuzzy
+msgid "typedef-name %qD used as destructor declarator"
+msgstr "Izina: Nka"
+
+#: cp/parser.c:3965
+#, fuzzy
+msgid "ISO C++ forbids compound-literals"
+msgstr "C"
+
+#: cp/parser.c:4885
+#, fuzzy
+msgid "array bound forbidden after parenthesized type-id"
+msgstr "Imbonerahamwe Nyuma Ubwoko ID"
+
+#: cp/parser.c:4886
+#, fuzzy
+msgid "try removing the parentheses around the type-id"
+msgstr "i i Ubwoko ID"
+
+#: cp/parser.c:5087
+#, fuzzy
+msgid "expression in new-declarator must have integral or enumeration type"
+msgstr "imvugo in Gishya Umubare Wuzuye Cyangwa Ubwoko"
+
+#: cp/parser.c:5276
+#, fuzzy
+msgid "use of old-style cast"
+msgstr "Gukoresha Bya ki/ bishaje IMISUSIRE"
+
+#: cp/parser.c:6041
+#, fuzzy, c-format
+msgid "case label %qE not within a switch statement"
+msgstr "Akarango OYA muri a Hindura Inyandiko"
+
+#: cp/parser.c:6584
+#, fuzzy
+msgid "ISO C++ forbids computed gotos"
+msgstr "C"
+
+#: cp/parser.c:6709
+#, fuzzy
+msgid "extra %<;%>"
+msgstr "Birenga"
+
+#: cp/parser.c:7028
+#, fuzzy
+msgid "mixing declarations and function-definitions is forbidden"
+msgstr "Na Umumaro ni"
+
+#: cp/parser.c:7159
+#, fuzzy
+msgid "duplicate %<friend%>"
+msgstr "Gusubiramo"
+
+#: cp/parser.c:7328
+#, fuzzy
+msgid "class definition may not be declared a friend"
+msgstr "ishuri Insobanuro Gicurasi OYA a"
+
+#: cp/parser.c:7641
+#, fuzzy
+msgid "only constructors take base initializers"
+msgstr "SHINGIRO"
+
+#: cp/parser.c:7692
+#, fuzzy
+msgid "anachronistic old-style base class initializer"
+msgstr "ki/ bishaje IMISUSIRE SHINGIRO ishuri"
+
+#: cp/parser.c:7734
+#, fuzzy
+msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
+msgstr "Ijambo- banze OYA in iyi Imvugiro a ni a Ubwoko"
+
+#. Warn that we do not support `export'.
+#: cp/parser.c:8096
+#, fuzzy
+msgid "keyword %<export%> not implemented, and will be ignored"
+msgstr "Ijambo- banze Kohereza OYA Na"
+
+#. Otherwise, emit an error about the invalid digraph, but continue
+#. parsing because we got our argument list.
+#: cp/parser.c:8469
+#, fuzzy
+msgid "%<<::%> cannot begin a template-argument list"
+msgstr "%<<::%>a Inyandikorugero Urutonde"
+
+#: cp/parser.c:8470
+#, fuzzy
+msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
+msgstr "%<<:%>ni Ivuganyuguti kugirango hagati Na"
+
+#: cp/parser.c:8477
+#, fuzzy
+msgid "(if you use -fpermissive G++ will accept your code)"
+msgstr "(NIBA Gukoresha Kwemera ITEGEKONGENGA"
+
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "Ikosa in Inyandikorugero Urutonde"
+
+#. Explain what went wrong.
+#: cp/parser.c:8654
+#, fuzzy
+msgid "non-template %qD used as template"
+msgstr "Inyandikorugero Nka Inyandikorugero"
+
+#: cp/parser.c:8655
+#, fuzzy
+msgid "use %<%T::template %D%> to indicate that it is a template"
+msgstr "Gukoresha Inyandikorugero Kuri ni a Inyandikorugero"
+
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "Inyandikorugero Bya"
+
+#: cp/parser.c:9688
+#, fuzzy
+msgid "using %<typename%> outside of template"
+msgstr "ikoresha Hanze Bya Inyandikorugero"
+
+#: cp/parser.c:9883
+#, fuzzy
+msgid "type attributes are honored only at type definition"
+msgstr "Ubwoko Ibiranga ku Ubwoko Insobanuro"
+
+#. [namespace.udecl]
+#.
+#. A using declaration shall not name a template-id.
+#: cp/parser.c:10265
+#, fuzzy
+msgid "a template-id may not appear in a using-declaration"
+msgstr "a Inyandikorugero ID Gicurasi OYA Kugaragara in a ikoresha"
+
+#: cp/parser.c:10595
+#, fuzzy
+msgid "an asm-specification is not allowed on a function-definition"
+msgstr "ni OYA ku a Umumaro Insobanuro"
+
+#: cp/parser.c:10597
+#, fuzzy
+msgid "attributes are not allowed on a function-definition"
+msgstr "Ibiranga OYA ku a Umumaro Insobanuro"
+
+#: cp/parser.c:10728
+#, fuzzy
+msgid "attributes after parenthesized initializer ignored"
+msgstr "Ibiranga Nyuma"
+
+#: cp/parser.c:11113
+#, fuzzy
+msgid "array bound is not an integer constant"
+msgstr "Imbonerahamwe ni OYA Umubare wuzuye"
+
+#: cp/parser.c:11183
+#, fuzzy
+msgid "%<%T::%D%> is not a type"
+msgstr "%<%T::%D%>ni OYA a Ubwoko"
+
+#: cp/parser.c:11225
+#, fuzzy
+msgid "invalid use of constructor as a template"
+msgstr "Sibyo Gukoresha Bya Nka a Inyandikorugero"
+
+#: cp/parser.c:11226
+#, fuzzy
+msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
+msgstr "Gukoresha Bya Kuri Izina: i in a Izina:"
+
+#: cp/parser.c:11414
+#, fuzzy
+msgid "duplicate cv-qualifier"
+msgstr "Gusubiramo"
+
+#: cp/parser.c:11916
+#, fuzzy
+msgid "file ends in default argument"
+msgstr "IDOSIYE in Mburabuzi"
+
+#: cp/parser.c:11977
+#, fuzzy
+msgid "deprecated use of default argument for parameter of non-function"
+msgstr "Bitemewe. Gukoresha Bya Mburabuzi kugirango Bya Umumaro"
+
+#: cp/parser.c:11980
+#, fuzzy
+msgid "default arguments are only permitted for function parameters"
+msgstr "Mburabuzi ingingo kugirango Umumaro Ibigenga"
+
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "Sibyo ishuri Izina: in Bya"
+
+#: cp/parser.c:12733
+#, fuzzy
+msgid "declaration of %qD in %qD which does not enclose %qD"
+msgstr "Bya in OYA"
+
+#: cp/parser.c:12746
+#, fuzzy
+msgid "extra qualification ignored"
+msgstr "Birenga"
+
+#: cp/parser.c:12757
+#, fuzzy
+msgid "an explicit specialization must be preceded by %<template <>%>"
+msgstr "ku Inyandikorugero"
+
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "Ibanjirije Insobanuro Bya"
+
+#: cp/parser.c:13059
+msgid "%Hextra %<;%>"
+msgstr ""
+
+#: cp/parser.c:13077
+#, fuzzy
+msgid "a class-key must be used when declaring a friend"
+msgstr "a ishuri Urufunguzo Ryari: a"
+
+#: cp/parser.c:13091
+#, fuzzy
+msgid "friend declaration does not name a class or function"
+msgstr "OYA Izina: a ishuri Cyangwa Umumaro"
+
+#: cp/parser.c:13267
+#, fuzzy
+msgid "pure-specifier on function-definition"
+msgstr "ku Umumaro Insobanuro"
+
+#: cp/parser.c:13545
+#, fuzzy
+msgid "keyword %<typename%> not allowed outside of templates"
+msgstr "Ijambo- banze OYA Hanze Bya Inyandikorugero"
+
+#: cp/parser.c:13547
+#, fuzzy
+msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
+msgstr "Ijambo- banze OYA in iyi Imvugiro i SHINGIRO ishuri ni a Ubwoko"
+
+#: cp/parser.c:13821
+#, fuzzy
+msgid "invalid catch parameter"
+msgstr "Sibyo"
+
+#: cp/parser.c:14399
+#, fuzzy
+msgid "reference to %qD is ambiguous"
+msgstr "Indango Kuri ni"
+
+#: cp/parser.c:14568
+#, fuzzy
+msgid "too few template-parameter-lists"
+msgstr "Inyandikorugero Intonde"
+
+#. Otherwise, there are too many template parameter lists. We have
+#. something like:
+#.
+#. template <class T> template <class U> void S::f();
+#: cp/parser.c:14583
+#, fuzzy
+msgid "too many template-parameter-lists"
+msgstr "Inyandikorugero Intonde"
+
+#. Skip the entire function.
+#: cp/parser.c:14807
+#, fuzzy
+msgid "invalid function declaration"
+msgstr "Sibyo Umumaro"
+
+#. Issue an error message.
+#: cp/parser.c:14844
+#, fuzzy
+msgid "named return values are no longer supported"
+msgstr "Garuka Uduciro Oya"
+
+#: cp/parser.c:15218
+#, fuzzy
+msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
+msgstr "%H%<>>%>muri a Inyandikorugero Urutonde"
+
+#: cp/parser.c:15233
+#, fuzzy
+msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
+msgstr "Gukoresha Kuri a Inyandikorugero Urutonde"
+
+#: cp/parser.c:15238
+#, fuzzy
+msgid "missing %<>%> to terminate the template argument list"
+msgstr "Ibuze Kuri i Inyandikorugero Urutonde"
+
+#: cp/parser.c:15766
+#, fuzzy
+msgid "%qs tag used in naming %q#T"
+msgstr "%qsItagi: in"
+
+#: cp/parser.c:15787
+#, fuzzy
+msgid "%qD redeclared with different access"
+msgstr "%qDNa:"
+
+#: cp/parser.c:15804
+#, fuzzy
+msgid "%<template%> (as a disambiguator) is only allowed within templates"
+msgstr "%<Inyandikorugero Nka a ni muri Inyandikorugero"
+
+#: cp/parser.c:16012
+#, fuzzy
+msgid "inter-module optimizations not implemented for C++"
+msgstr "Modire OYA kugirango C"
+
+#: cp/pt.c:241
+#, fuzzy
+msgid "data member %qD cannot be a member template"
+msgstr "Ibyatanzwe a Inyandikorugero"
+
+#: cp/pt.c:253
+#, fuzzy
+msgid "invalid member template declaration %qD"
+msgstr "Sibyo Inyandikorugero"
+
+#: cp/pt.c:575
+#, fuzzy
+msgid "explicit specialization in non-namespace scope %qD"
+msgstr "in Ingano:"
+
+#: cp/pt.c:586
+#, fuzzy
+msgid "enclosing class templates are not explicitly specialized"
+msgstr "ishuri Inyandikorugero OYA cy'umwihariko/ mwihariko"
+
+#: cp/pt.c:670
+#, fuzzy
+msgid "specialization of %qD in different namespace"
+msgstr "Bya in"
+
+#: cp/pt.c:671 cp/pt.c:740
+#, fuzzy
+msgid " from definition of %q#D"
+msgstr "Bivuye Insobanuro Bya"
+
+#: cp/pt.c:707
+#, fuzzy
+msgid "specialization of %qT after instantiation"
+msgstr "Bya Nyuma"
+
+#: cp/pt.c:739
+#, fuzzy
+msgid "specializing %q#T in different namespace"
+msgstr "in"
+
+#: cp/pt.c:754
+#, fuzzy
+msgid "specialization %qT after instantiation %qT"
+msgstr "Nyuma"
+
+#: cp/pt.c:766
+#, fuzzy
+msgid "explicit specialization of non-template %qT"
+msgstr "Bya Inyandikorugero"
+
+#: cp/pt.c:1164
+#, fuzzy
+msgid "specialization of %qD after instantiation"
+msgstr "Bya Nyuma"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/pt.c:1293
+#, fuzzy
+msgid "%s %+#D"
+msgstr "%s%+#D"
+
+#: cp/pt.c:1349
+#, fuzzy
+msgid "%qD is not a function template"
+msgstr "%qDni OYA a Umumaro Inyandikorugero"
+
+#: cp/pt.c:1534
+#, fuzzy
+msgid "template-id %qD for %q+D does not match any template declaration"
+msgstr "Inyandikorugero ID kugirango OYA BIHUYE Inyandikorugero"
+
+#: cp/pt.c:1543
+#, fuzzy
+msgid "ambiguous template specialization %qD for %q+D"
+msgstr "Inyandikorugero kugirango"
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1774 cp/pt.c:1828
+#, fuzzy
+msgid "template-id %qD in declaration of primary template"
+msgstr "Inyandikorugero ID in Bya Inyandikorugero"
+
+#: cp/pt.c:1787
+#, fuzzy
+msgid "template parameter list used in explicit instantiation"
+msgstr "Inyandikorugero Urutonde in"
+
+#: cp/pt.c:1793
+#, fuzzy
+msgid "definition provided for explicit instantiation"
+msgstr "Insobanuro kugirango"
+
+#: cp/pt.c:1801
+#, fuzzy
+msgid "too many template parameter lists in declaration of %qD"
+msgstr "Inyandikorugero Intonde in Bya"
+
+#: cp/pt.c:1804
+#, fuzzy
+msgid "too few template parameter lists in declaration of %qD"
+msgstr "Inyandikorugero Intonde in Bya"
+
+#: cp/pt.c:1806
+#, fuzzy
+msgid "explicit specialization of %qD must be introduced by %<template <>%>"
+msgstr "Bya ku Inyandikorugero"
+
+#: cp/pt.c:1825
+#, fuzzy
+msgid "function template partial specialization %qD is not allowed"
+msgstr "Umumaro Inyandikorugero Bituzuye ni OYA"
+
+#: cp/pt.c:1857
+#, fuzzy
+msgid "default argument specified in explicit specialization"
+msgstr "Mburabuzi in"
+
+#: cp/pt.c:1861
+#, fuzzy
+msgid "template specialization with C linkage"
+msgstr "Inyandikorugero Na: C"
+
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "%qDni OYA a Inyandikorugero Umumaro"
+
+#. 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:1950
+#, fuzzy
+msgid "specialization of implicitly-declared special member function"
+msgstr "Bya Bidasanzwe Umumaro"
+
+#: cp/pt.c:1994
+#, fuzzy
+msgid "no member function %qD declared in %qT"
+msgstr "Oya Umumaro in"
+
+#: cp/pt.c:2199
+#, fuzzy
+msgid " shadows template parm %q#D"
+msgstr "Inyandikorugero"
+
+#: cp/pt.c:2601
+#, fuzzy
+msgid "template parameters not used in partial specialization:"
+msgstr "Inyandikorugero Ibigenga OYA in Bituzuye"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: cp/pt.c:2605
+#, fuzzy
+msgid " %qD"
+msgstr "%qD"
+
+#: cp/pt.c:2616
+#, fuzzy
+msgid "partial specialization %qT does not specialize any template arguments"
+msgstr "Bituzuye OYA Inyandikorugero ingingo"
+
+#: cp/pt.c:2641
+#, fuzzy, c-format
+msgid "template argument %qE involves template parameter(s)"
+msgstr "Inyandikorugero Inyandikorugero S"
+
+#: cp/pt.c:2685
+#, fuzzy
+msgid "type %qT of template argument %qE depends on template parameter(s)"
+msgstr "Ubwoko Bya Inyandikorugero ku Inyandikorugero S"
+
+#: cp/pt.c:2772
+#, fuzzy
+msgid "no default argument for %qD"
+msgstr "Oya Mburabuzi kugirango"
+
+#: cp/pt.c:2929
+#, fuzzy
+msgid "template with C linkage"
+msgstr "Inyandikorugero Na: C"
+
+#: cp/pt.c:2932
+#, fuzzy
+msgid "template class without a name"
+msgstr "Inyandikorugero ishuri a Izina:"
+
+#. [temp.mem]
+#.
+#. A destructor shall not be a member template.
+#: cp/pt.c:2940
+#, fuzzy
+msgid "destructor %qD declared as member template"
+msgstr "Nka Inyandikorugero"
+
+#. [basic.stc.dynamic.allocation]
+#.
+#. An allocation function can be a function
+#. template. ... Template allocation functions shall
+#. have two or more parameters.
+#: cp/pt.c:2955
+#, fuzzy
+msgid "invalid template declaration of %qD"
+msgstr "Sibyo Inyandikorugero Bya"
+
+#: cp/pt.c:3036
+#, fuzzy
+msgid "%qD does not declare a template type"
+msgstr "%qDOYA a Inyandikorugero Ubwoko"
+
+#: cp/pt.c:3042
+#, fuzzy
+msgid "template definition of non-template %q#D"
+msgstr "Inyandikorugero Insobanuro Bya Inyandikorugero"
+
+#: cp/pt.c:3084
+#, fuzzy
+msgid "expected %d levels of template parms for %q#D, got %d"
+msgstr "Ikitezwe: Intera Bya Inyandikorugero kugirango"
+
+#: cp/pt.c:3096
+#, fuzzy
+msgid "got %d template parameters for %q#D"
+msgstr "Inyandikorugero Ibigenga kugirango"
+
+#: cp/pt.c:3099
+#, fuzzy
+msgid "got %d template parameters for %q#T"
+msgstr "Inyandikorugero Ibigenga kugirango"
+
+#: cp/pt.c:3101
+#, fuzzy, c-format
+msgid " but %d required"
+msgstr "Bya ngombwa"
+
+#: cp/pt.c:3190
+#, fuzzy
+msgid "%qT is not a template type"
+msgstr "%qTni OYA a Inyandikorugero Ubwoko"
+
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "Inyandikorugero OYA in Bya"
+
+#: cp/pt.c:3213
+#, fuzzy
+msgid "previous declaration %qD"
+msgstr "Ibanjirije"
+
+#: cp/pt.c:3214
+#, fuzzy, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr "Inyandikorugero Bya"
+
+#: cp/pt.c:3234
+#, fuzzy
+msgid "template parameter %q#D"
+msgstr "Inyandikorugero"
+
+#: cp/pt.c:3235
+#, fuzzy
+msgid "redeclared here as %q#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:3245
+#, fuzzy
+msgid "redefinition of default argument for %q#D"
+msgstr "Bya Mburabuzi kugirango"
+
+#: cp/pt.c:3246
+#, fuzzy
+msgid "%J original definition appeared here"
+msgstr "%JUmwimerere Insobanuro"
+
+#: cp/pt.c:3342
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko Umumaro OYA external"
+
+#: cp/pt.c:3383
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko Ikurikiranyanyuguti Nta narimwe in iyi Imvugiro"
+
+#: cp/pt.c:3458
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko ni a imvugo"
+
+#: cp/pt.c:3508
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko ni OYA a Mweretsi"
+
+#: cp/pt.c:3528
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko Bya in"
+
+#: cp/pt.c:3535
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko ni OYA a"
+
+#: cp/pt.c:3548
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko Igikoresho OYA external"
+
+#: cp/pt.c:3590
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because it is a pointer"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko ni a Mweretsi"
+
+#: cp/pt.c:3592
+#, fuzzy, c-format
+msgid "try using %qE instead"
+msgstr "ikoresha"
+
+#: cp/pt.c:3627
+#, fuzzy
+msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
+msgstr "%qEni OYA a Byemewe Inyandikorugero kugirango Ubwoko ni Bya Ubwoko"
+
+#: cp/pt.c:3630
+#, fuzzy
+msgid "standard conversions are not allowed in this context"
+msgstr "Bisanzwe OYA in iyi Imvugiro"
+
+#: cp/pt.c:3799
+#, fuzzy
+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:3814 cp/pt.c:3833 cp/pt.c:3873
+#, fuzzy
+msgid "type/value mismatch at argument %d in template parameter list for %qD"
+msgstr "Ubwoko Agaciro ku in Inyandikorugero Urutonde kugirango"
+
+#: cp/pt.c:3818
+#, fuzzy
+msgid " expected a constant of type %qT, got %qT"
+msgstr "Ikitezwe: a Bya Ubwoko"
+
+#: cp/pt.c:3822
+#, fuzzy, c-format
+msgid " expected a class template, got %qE"
+msgstr "Ikitezwe: a ishuri Inyandikorugero"
+
+#: cp/pt.c:3824
+#, fuzzy, c-format
+msgid " expected a type, got %qE"
+msgstr "Ikitezwe: a Ubwoko"
+
+#: cp/pt.c:3837
+#, fuzzy
+msgid " expected a type, got %qT"
+msgstr "Ikitezwe: a Ubwoko"
+
+#: cp/pt.c:3839
+#, fuzzy
+msgid " expected a class template, got %qT"
+msgstr "Ikitezwe: a ishuri Inyandikorugero"
+
+#: cp/pt.c:3876
+#, fuzzy
+msgid " expected a template of type %qD, got %qD"
+msgstr "Ikitezwe: a Inyandikorugero Bya Ubwoko"
+
+#: cp/pt.c:3912
+#, fuzzy
+msgid "could not convert template argument %qE to %qT"
+msgstr "OYA GUHINDURA Inyandikorugero Kuri"
+
+#: cp/pt.c:3951
+#, fuzzy, c-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr "Umubare Bya Inyandikorugero ingingo"
+
+#: cp/pt.c:3955
+#, fuzzy
+msgid "provided for %qD"
+msgstr "kugirango"
+
+#: cp/pt.c:3985
+#, fuzzy, c-format
+msgid "template argument %d is invalid"
+msgstr "Inyandikorugero ni Sibyo"
+
+#: cp/pt.c:4340
+#, fuzzy
+msgid "non-template type %qT used as a template"
+msgstr "Inyandikorugero Ubwoko Nka a Inyandikorugero"
+
+#: cp/pt.c:4342
+#, fuzzy
+msgid "for template declaration %qD"
+msgstr "kugirango Inyandikorugero"
+
+#: cp/pt.c:4982
+#, fuzzy
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
+msgstr "Inyandikorugero Ubujyakuzimu Kinini Bya Gukoresha Ubujyakuzimu Kuri i Kinini"
+
+#: cp/pt.c:5424
+#, fuzzy
+msgid "ambiguous class template instantiation for %q#T"
+msgstr "ishuri Inyandikorugero kugirango"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/pt.c:5430
+#, fuzzy
+msgid "%s %+#T"
+msgstr "%s%+#T"
+
+#: cp/pt.c:6510
+#, fuzzy
+msgid "instantiation of %qD as type %qT"
+msgstr "Bya Nka Ubwoko"
+
+#: cp/pt.c:6678
+#, fuzzy
+msgid "invalid parameter type %qT"
+msgstr "Sibyo Ubwoko"
+
+#: cp/pt.c:6680
+#, fuzzy
+msgid "in declaration %qD"
+msgstr "in"
+
+#: cp/pt.c:6741
+#, fuzzy
+msgid "function returning an array"
+msgstr "Umumaro Imbonerahamwe"
+
+#: cp/pt.c:6743
+#, fuzzy
+msgid "function returning a function"
+msgstr "Umumaro a Umumaro"
+
+#: cp/pt.c:6770
+#, fuzzy
+msgid "creating pointer to member function of non-class type %qT"
+msgstr "Mweretsi Kuri Umumaro Bya ishuri Ubwoko"
+
+#: cp/pt.c:6938
+#, fuzzy
+msgid "creating array with size zero"
+msgstr "Imbonerahamwe Na: Ingano Zeru"
+
+#: cp/pt.c:6952
+#, fuzzy, c-format
+msgid "creating array with size zero (%qE)"
+msgstr "Imbonerahamwe Na: Ingano Zeru"
+
+#: cp/pt.c:7169
+#, fuzzy
+msgid "forming reference to void"
+msgstr "Indango Kuri"
+
+#: cp/pt.c:7171
+#, fuzzy
+msgid "forming %s to reference type %qT"
+msgstr "Kuri Indango Ubwoko"
+
+#: cp/pt.c:7208
+#, fuzzy
+msgid "creating pointer to member of non-class type %qT"
+msgstr "Mweretsi Kuri Bya ishuri Ubwoko"
+
+#: cp/pt.c:7214
+#, fuzzy
+msgid "creating pointer to member reference type %qT"
+msgstr "Mweretsi Kuri Indango Ubwoko"
+
+#: cp/pt.c:7280
+#, fuzzy
+msgid "creating array of %qT"
+msgstr "Imbonerahamwe Bya"
+
+#: cp/pt.c:7286
+#, fuzzy
+msgid "creating array of %qT, which is an abstract class type"
+msgstr "Imbonerahamwe Bya ni Incamake ishuri Ubwoko"
+
+#: cp/pt.c:7330
+#, fuzzy
+msgid "%qT is not a class, struct, or union type"
+msgstr "%qTni OYA a ishuri Cyangwa Ihuza Ubwoko"
+
+#: cp/pt.c:7365
+#, fuzzy
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr "%qTKuri ni OYA Ubwoko"
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "%qTKuri ni ni OYA a ishuri Ubwoko"
+
+#: cp/pt.c:7429
+#, fuzzy, c-format
+msgid "use of %qs in template"
+msgstr "Gukoresha Bya in Inyandikorugero"
+
+#: cp/pt.c:7554
+#, fuzzy, c-format
+msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
+msgstr "Izina: ni Nka a Ubwoko a Ubwoko"
+
+#: cp/pt.c:7556
+#, fuzzy
+msgid "say %<typename %E%> if a type is meant"
+msgstr "NIBA a Ubwoko ni"
+
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "ikoresha Sibyo Umwanya"
+
+#: cp/pt.c:8729
+#, fuzzy
+msgid "%qT is not a class or namespace"
+msgstr "%qTni OYA a ishuri Cyangwa"
+
+#: cp/pt.c:8732
+#, fuzzy
+msgid "%qD is not a class or namespace"
+msgstr "%qDni OYA a ishuri Cyangwa"
+
+#: cp/pt.c:8872
+#, fuzzy
+msgid "%qT is/uses anonymous type"
+msgstr "%qTni Ubwoko"
+
+#: cp/pt.c:8874
+#, fuzzy
+msgid "%qT uses local type %qT"
+msgstr "%qTUbwoko"
+
+#: cp/pt.c:8883
+#, fuzzy
+msgid "%qT is a variably modified type"
+msgstr "%qTni a Byahinduwe Ubwoko"
+
+#: cp/pt.c:8894
+#, fuzzy, c-format
+msgid "integral expression %qE is not constant"
+msgstr "Umubare Wuzuye imvugo ni OYA"
+
+#: cp/pt.c:8899
+#, fuzzy
+msgid " trying to instantiate %qD"
+msgstr "Kuri"
+
+#: cp/pt.c:9418
+#, fuzzy
+msgid "incomplete type unification"
+msgstr "Ubwoko"
+
+#: cp/pt.c:10767 cp/pt.c:10838
+#, fuzzy
+msgid "explicit instantiation of non-template %q#D"
+msgstr "Bya Inyandikorugero"
+
+#: cp/pt.c:10783 cp/pt.c:10833
+#, fuzzy
+msgid "no matching template for %qD found"
+msgstr "Oya Inyandikorugero kugirango Byabonetse"
+
+#: cp/pt.c:10789
+#, fuzzy
+msgid "explicit instantiation of %q#D"
+msgstr "Bya"
+
+#: cp/pt.c:10825
+#, fuzzy
+msgid "duplicate explicit instantiation of %q#D"
+msgstr "Gusubiramo Bya"
+
+#: cp/pt.c:10847
+#, fuzzy
+msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
+msgstr "C i Gukoresha Bya ku"
+
+#: cp/pt.c:10852 cp/pt.c:10942
+#, fuzzy
+msgid "storage class %qD applied to template instantiation"
+msgstr "ishuri Byashyizweho Kuri Inyandikorugero"
+
+#: cp/pt.c:10914
+#, fuzzy
+msgid "explicit instantiation of non-template type %qT"
+msgstr "Bya Inyandikorugero Ubwoko"
+
+#: cp/pt.c:10923
+#, fuzzy
+msgid "explicit instantiation of %q#T before definition of template"
+msgstr "Bya Mbere Insobanuro Bya Inyandikorugero"
+
+#: cp/pt.c:10931
+#, fuzzy, c-format
+msgid "ISO C++ forbids the use of %qE on explicit instantiations"
+msgstr "C i Gukoresha Bya ku"
+
+#: cp/pt.c:10976
+#, fuzzy
+msgid "duplicate explicit instantiation of %q#T"
+msgstr "Gusubiramo Bya"
+
+#: cp/pt.c:11341
+#, fuzzy
+msgid "explicit instantiation of %qD but no definition available"
+msgstr "Bya Oya Insobanuro Bihari"
+
+#: cp/pt.c:11485
+#, fuzzy
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
+msgstr "Inyandikorugero Ubujyakuzimu Kinini Bya Gukoresha Ubujyakuzimu Kuri i Kinini Bivuye Kitaboneka imbonerahamwe#"
+
+#: cp/pt.c:11753
+#, fuzzy
+msgid "%q#T is not a valid type for a template constant parameter"
+msgstr "%q#Tni OYA a Byemewe Ubwoko kugirango a Inyandikorugero"
+
+#: cp/repo.c:112
+#, fuzzy
+msgid "-frepo must be used with -c"
+msgstr "-Na: C"
+
+#: cp/repo.c:200
+#, fuzzy, c-format
+msgid "mysterious repository information in %s"
+msgstr "Ibisobanuro in"
+
+#: cp/repo.c:214
+#, fuzzy, c-format
+msgid "can't create repository information file %qs"
+msgstr "Kurema Ibisobanuro IDOSIYE"
+
+#: cp/rtti.c:244
+#, fuzzy
+msgid "cannot use typeid with -fno-rtti"
+msgstr "Gukoresha Na:"
+
+#: cp/rtti.c:250
+#, fuzzy
+msgid "must #include <typeinfo> before using typeid"
+msgstr "Gushyiramo Mbere ikoresha"
+
+#: cp/rtti.c:322
+#, fuzzy
+msgid "cannot create type information for type %qT because its size is variable"
+msgstr "Kurema Ubwoko Ibisobanuro kugirango Ubwoko Ingano ni IMPINDURAGACIRO"
+
+#: cp/rtti.c:570 cp/rtti.c:584
+#, fuzzy
+msgid "dynamic_cast of %q#D to %q#T can never succeed"
+msgstr "Bya Kuri Nta narimwe"
+
+#: cp/rtti.c:663
+#, fuzzy
+msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
+msgstr "Bya Ubwoko Kuri Ubwoko"
+
+#: cp/search.c:257
+#, fuzzy
+msgid "%qT is an ambiguous base of %qT"
+msgstr "%qTni SHINGIRO Bya"
+
+#: cp/search.c:275
+#, fuzzy
+msgid "%qT is an inaccessible base of %qT"
+msgstr "%qTni SHINGIRO Bya"
+
+#: cp/search.c:1843
+#, fuzzy
+msgid "deprecated covariant return type for %q#D"
+msgstr "Bitemewe. Garuka Ubwoko kugirango"
+
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
+msgid " overriding %q#D"
+msgstr ""
+
+#: cp/search.c:1859
+#, fuzzy
+msgid "invalid covariant return type for %q#D"
+msgstr "Sibyo Garuka Ubwoko kugirango"
+
+#: cp/search.c:1864
+#, fuzzy
+msgid "conflicting return type specified for %q#D"
+msgstr "Garuka Ubwoko kugirango"
+
+#: cp/search.c:1875
+#, fuzzy
+msgid "looser throw specifier for %q#F"
+msgstr "kugirango"
+
+#: cp/search.c:1876
+msgid " overriding %q#F"
+msgstr ""
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:1969
+msgid "%q#D cannot be declared"
+msgstr ""
+
+#: cp/search.c:1970
+#, fuzzy
+msgid " since %q#D declared in base class"
+msgstr "guhera in SHINGIRO ishuri"
+
+#: cp/semantics.c:1199
+#, fuzzy, c-format
+msgid "type of asm operand %qE could not be determined"
+msgstr "Ubwoko Bya OYA"
+
+#: cp/semantics.c:1318
+#, fuzzy
+msgid "invalid use of member %qD in static member function"
+msgstr "Sibyo Gukoresha Bya in Umumaro"
+
+#: cp/semantics.c:1322 cp/semantics.c:1361
+#, fuzzy
+msgid "from this location"
+msgstr "Bivuye iyi Ahantu"
+
+#: cp/semantics.c:1360
+#, fuzzy
+msgid "object missing in reference to %qD"
+msgstr "Igikoresho Ibuze in Indango Kuri"
+
+#: cp/semantics.c:1838
+#, fuzzy
+msgid "arguments to destructor are not allowed"
+msgstr "ingingo Kuri OYA"
+
+#: cp/semantics.c:1888
+#, fuzzy
+msgid "%<this%> is unavailable for static member functions"
+msgstr "%<iyi ni kugirango Imimaro"
+
+#: cp/semantics.c:1894
+#, fuzzy
+msgid "invalid use of %<this%> in non-member function"
+msgstr "Sibyo Gukoresha Bya iyi in Umumaro"
+
+#: cp/semantics.c:1896
+#, fuzzy
+msgid "invalid use of %<this%> at top level"
+msgstr "Sibyo Gukoresha Bya iyi ku Hejuru: urwego"
+
+#: cp/semantics.c:1920
+#, fuzzy
+msgid "invalid qualifying scope in pseudo-destructor name"
+msgstr "Sibyo Ingano: in Izina:"
+
+#: cp/semantics.c:1940
+#, fuzzy
+msgid "%qE is not of type %qT"
+msgstr "%qEni OYA Bya Ubwoko"
+
+#: cp/semantics.c:2039
+#, fuzzy
+msgid "template type parameters must use the keyword %<class%> or %<typename%>"
+msgstr "Inyandikorugero Ubwoko Ibigenga Gukoresha i Ijambo- banze ishuri Cyangwa"
+
+#: cp/semantics.c:2083
+#, fuzzy
+msgid "invalid use of type %qT as a default value for a template template-parameter"
+msgstr "Sibyo Gukoresha Bya Ubwoko Nka a Mburabuzi Agaciro kugirango a Inyandikorugero Inyandikorugero"
+
+#: cp/semantics.c:2086
+#, fuzzy
+msgid "invalid use of %qD as a default value for a template template-parameter"
+msgstr "Sibyo Gukoresha Bya Nka a Mburabuzi Agaciro kugirango a Inyandikorugero Inyandikorugero"
+
+#: cp/semantics.c:2090
+#, fuzzy
+msgid "invalid default argument for a template template parameter"
+msgstr "Sibyo Mburabuzi kugirango a Inyandikorugero Inyandikorugero"
+
+#: cp/semantics.c:2107
+#, fuzzy
+msgid "definition of %q#T inside template parameter list"
+msgstr "Insobanuro Bya Mo Imbere Inyandikorugero Urutonde"
+
+#: cp/semantics.c:2118
+#, fuzzy
+msgid "invalid definition of qualified type %qT"
+msgstr "Sibyo Insobanuro Bya Ubwoko"
+
+#: cp/semantics.c:2334
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "Sibyo SHINGIRO ishuri"
+
+#: cp/semantics.c:2343
+#, fuzzy
+msgid "base class %qT has cv qualifiers"
+msgstr "SHINGIRO ishuri"
+
+#: cp/semantics.c:2363
+#, fuzzy
+msgid "incomplete type %qT used in nested name specifier"
+msgstr "Ubwoko in Izina:"
+
+#: cp/semantics.c:2366
+#, fuzzy
+msgid "reference to %<%T::%D%> is ambiguous"
+msgstr "Indango Kuri ni"
+
+#: cp/semantics.c:2370 cp/typeck.c:1621
+#, fuzzy
+msgid "%qD is not a member of %qT"
+msgstr "%qDni OYA a Bya"
+
+#: cp/semantics.c:2373
+#, fuzzy
+msgid "%qD is not a member of %qD"
+msgstr "%qDni OYA a Bya"
+
+#: cp/semantics.c:2502
+#, fuzzy
+msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
+msgstr "Inyandikorugero Bya Ubwoko ni OYA in Umubare Wuzuye imvugo ni OYA Bya Umubare Wuzuye Cyangwa Ubwoko"
+
+#: cp/semantics.c:2656
+#, fuzzy
+msgid "%qD cannot appear in a constant-expression"
+msgstr "%qDKugaragara in a imvugo"
+
+#: cp/semantics.c:2664
+#, fuzzy
+msgid "use of namespace %qD as expression"
+msgstr "Gukoresha Bya Nka imvugo"
+
+#: cp/semantics.c:2669
+#, fuzzy
+msgid "use of class template %qT as expression"
+msgstr "Gukoresha Bya ishuri Inyandikorugero Nka imvugo"
+
+#. Ambiguous reference to base members.
+#: cp/semantics.c:2675
+#, fuzzy
+msgid "request for member %qD is ambiguous in multiple inheritance lattice"
+msgstr "Kubaza... kugirango ni in Igikubo"
+
+#: cp/semantics.c:2748
+#, fuzzy, c-format
+msgid "use of %s from containing function"
+msgstr "Gukoresha Bya Bivuye Umumaro"
+
+#: cp/semantics.c:2751
+msgid " %q#D declared here"
+msgstr ""
+
+#: cp/semantics.c:2801
+#, fuzzy, c-format
+msgid "type of %qE is unknown"
+msgstr "Ubwoko Bya ni Kitazwi"
+
+#: cp/tree.c:539
+#, fuzzy
+msgid "%qV qualifiers cannot be applied to %qT"
+msgstr "%qVByashyizweho Kuri"
+
+#: cp/tree.c:1740
+#, fuzzy, c-format
+msgid "%qE attribute can only be applied to Java class definitions"
+msgstr "%qEIkiranga Byashyizweho Kuri ishuri"
+
+#: cp/tree.c:1769
+#, fuzzy, c-format
+msgid "%qE attribute can only be applied to class definitions"
+msgstr "%qEIkiranga Byashyizweho Kuri ishuri"
+
+#: cp/tree.c:1774
+#, fuzzy, c-format
+msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
+msgstr "%qEni g NONEAHA ku Mburabuzi"
+
+#: cp/tree.c:1798
+#, fuzzy
+msgid "requested init_priority is not an integer constant"
+msgstr "ni OYA Umubare wuzuye"
+
+#: cp/tree.c:1819
+#, fuzzy, c-format
+msgid "can only use %qE attribute on file-scope definitions of objects of class type"
+msgstr "Gukoresha Ikiranga ku IDOSIYE Ingano: Bya Ibintu Bya ishuri Ubwoko"
+
+#: cp/tree.c:1827
+#, fuzzy
+msgid "requested init_priority is out of range"
+msgstr "ni Inyuma Bya Urutonde"
+
+#: cp/tree.c:1837
+#, fuzzy
+msgid "requested init_priority is reserved for internal use"
+msgstr "ni kugirango By'imbere Gukoresha"
+
+#: cp/tree.c:1847
+#, fuzzy, c-format
+msgid "%qE attribute is not supported on this platform"
+msgstr "%qEIkiranga ni OYA ku iyi"
+
+#: cp/typeck.c:434 cp/typeck.c:448 cp/typeck.c:541
+#, fuzzy
+msgid "%s between distinct pointer types %qT and %qT lacks a cast"
+msgstr "%shagati Mweretsi Na a"
+
+#: cp/typeck.c:510
+#, fuzzy
+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:561
+#, fuzzy
+msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
+msgstr "%shagati Mweretsi Kuri Na a"
+
+#: cp/typeck.c:1239
+#, fuzzy, c-format
+msgid "invalid application of %qs to a member function"
+msgstr "Sibyo Porogaramu Bya Kuri a Umumaro"
+
+#: cp/typeck.c:1272
+#, fuzzy, c-format
+msgid "invalid application of %qs to a bit-field"
+msgstr "Sibyo Porogaramu Bya Kuri a Umwanya"
+
+#: cp/typeck.c:1277
+#, fuzzy, c-format
+msgid "ISO C++ forbids applying %qs to an expression of function type"
+msgstr "C Kuri imvugo Bya Umumaro Ubwoko"
+
+#: cp/typeck.c:1314
+#, fuzzy
+msgid "invalid use of non-static member function"
+msgstr "Sibyo Gukoresha Bya Umumaro"
+
+#: cp/typeck.c:1481
+#, fuzzy
+msgid "deprecated conversion from string constant to %qT'"
+msgstr "Bitemewe. Ihindurangero Bivuye Ikurikiranyanyuguti Kuri"
+
+#: cp/typeck.c:1592 cp/typeck.c:1882
+#, fuzzy
+msgid "request for member %qD in %qE, which is of non-class type %qT"
+msgstr "Kubaza... kugirango in ni Bya ishuri Ubwoko"
+
+#: cp/typeck.c:1619
+#, fuzzy, c-format
+msgid "invalid use of nonstatic data member %qE"
+msgstr "Sibyo Gukoresha Bya Ibyatanzwe"
+
+#: cp/typeck.c:1671 cp/typeck.c:1699
+#, fuzzy
+msgid "invalid access to non-static data member %qD of NULL object"
+msgstr "Sibyo Kuri Ibyatanzwe Bya Igikoresho"
+
+#: cp/typeck.c:1674 cp/typeck.c:1701
+#, fuzzy
+msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
+msgstr "(i Makoro"
+
+#: cp/typeck.c:1812
+#, fuzzy
+msgid "qualified type %qT does not match destructor name ~%qT"
+msgstr "Ubwoko OYA BIHUYE Izina:"
+
+#: cp/typeck.c:1818
+#, fuzzy
+msgid "the type being destroyed is %qT, but the destructor refers to %qT"
+msgstr "i Ubwoko ni i Kuri"
+
+#: cp/typeck.c:1928
+#, fuzzy
+msgid "%<%D::%D%> is not a member of %qT"
+msgstr "%<%D::%D%>ni OYA a Bya"
+
+#: cp/typeck.c:1939
+#, fuzzy
+msgid "%qT is not a base of %qT"
+msgstr "%qTni OYA a SHINGIRO Bya"
+
+#: cp/typeck.c:1958
+#, fuzzy
+msgid "%qD has no member named %qE"
+msgstr "%qDOya"
+
+#: cp/typeck.c:1973
+#, fuzzy
+msgid "%qD is not a member template function"
+msgstr "%qDni OYA a Inyandikorugero Umumaro"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2080
+#, fuzzy
+msgid "%qT is not a pointer-to-object type"
+msgstr "%qTni OYA a Mweretsi Kuri Igikoresho Ubwoko"
+
+#: cp/typeck.c:2105
+#, fuzzy, c-format
+msgid "invalid use of %qs on pointer to member"
+msgstr "Sibyo Gukoresha Bya ku Mweretsi Kuri"
+
+#: cp/typeck.c:2111
+#, fuzzy
+msgid "invalid type argument"
+msgstr "Sibyo Ubwoko"
+
+#: cp/typeck.c:2134
+#, fuzzy
+msgid "subscript missing in array reference"
+msgstr "Inyandiko nyesi Ibuze in Imbonerahamwe Indango"
+
+#: cp/typeck.c:2216
+#, fuzzy
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr "C Imbonerahamwe"
+
+#: cp/typeck.c:2227
+#, fuzzy
+msgid "subscripting array declared %<register%>"
+msgstr "Imbonerahamwe Kwiyandikisha"
+
+#: cp/typeck.c:2310
+#, fuzzy, c-format
+msgid "object missing in use of %qE"
+msgstr "Igikoresho Ibuze in Gukoresha Bya"
+
+#: cp/typeck.c:2411
+#, fuzzy
+msgid "ISO C++ forbids calling %<::main%> from within program"
+msgstr "C Bivuye muri Porogaramu"
+
+#: cp/typeck.c:2436
+#, fuzzy
+msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
+msgstr "Gukoresha Cyangwa Kuri Mweretsi Kuri Umumaro in"
+
+#: cp/typeck.c:2450
+#, fuzzy, c-format
+msgid "%qE cannot be used as a function"
+msgstr "%qENka a Umumaro"
+
+#: cp/typeck.c:2529
+#, fuzzy
+msgid "too many arguments to %s %q+#D"
+msgstr "ingingo Kuri"
+
+#: cp/typeck.c:2531 cp/typeck.c:2634
+#, fuzzy
+msgid "at this point in file"
+msgstr "ku iyi Akadomo in IDOSIYE"
+
+#: cp/typeck.c:2534
+#, fuzzy
+msgid "too many arguments to function"
+msgstr "ingingo Kuri Umumaro"
+
+#: cp/typeck.c:2568
+#, fuzzy
+msgid "parameter %P of %qD has incomplete type %qT"
+msgstr "Bya Ubwoko"
+
+#: cp/typeck.c:2571
+#, fuzzy
+msgid "parameter %P has incomplete type %qT"
+msgstr "Ubwoko"
+
+#: cp/typeck.c:2632
+#, fuzzy
+msgid "too few arguments to %s %q+#D"
+msgstr "ingingo Kuri"
+
+#: cp/typeck.c:2637
+#, fuzzy
+msgid "too few arguments to function"
+msgstr "ingingo Kuri Umumaro"
+
+#: cp/typeck.c:2784 cp/typeck.c:2794
+#, fuzzy
+msgid "assuming cast to type %qT from overloaded function"
+msgstr "Kuri Ubwoko Bivuye Umumaro"
+
+#: cp/typeck.c:2855
+#, fuzzy
+msgid "division by zero in %<%E / 0%>"
+msgstr "ku Zeru in 0"
+
+#: cp/typeck.c:2857
+#, fuzzy
+msgid "division by zero in %<%E / 0.%>"
+msgstr "ku Zeru in 0"
+
+#: cp/typeck.c:2891
+#, fuzzy
+msgid "division by zero in %<%E %% 0%>"
+msgstr "ku Zeru in 0"
+
+#: cp/typeck.c:2893
+#, fuzzy
+msgid "division by zero in %<%E %% 0.%>"
+msgstr "ku Zeru in 0"
+
+#: cp/typeck.c:2973
+#, fuzzy, c-format
+msgid "%s rotate count is negative"
+msgstr "%sKuzerutsa IBARA ni"
+
+#: cp/typeck.c:2976
+#, fuzzy, c-format
+msgid "%s rotate count >= width of type"
+msgstr "%sKuzerutsa IBARA Ubugari Bya Ubwoko"
+
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
+#, fuzzy
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "C hagati Mweretsi Na Umubare wuzuye"
+
+#: cp/typeck.c:3130
+#, fuzzy
+msgid "unordered comparison on non-floating point argument"
+msgstr "ku Bihindagurika Akadomo"
+
+#: cp/typeck.c:3152
+#, fuzzy
+msgid "invalid operands of types %qT and %qT to binary %qO"
+msgstr "Sibyo Bya Na Kuri Nyabibiri"
+
+#: cp/typeck.c:3316
+#, fuzzy
+msgid "comparison between types %q#T and %q#T"
+msgstr "hagati Na"
+
+#: cp/typeck.c:3352
+#, fuzzy
+msgid "comparison between signed and unsigned integer expressions"
+msgstr "hagati Na Bitashizweho umukono Umubare wuzuye"
+
+#. 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:3431
+#, fuzzy
+msgid "NULL used in arithmetic"
+msgstr "in"
+
+#: cp/typeck.c:3489
+#, fuzzy
+msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
+msgstr "C ikoresha Mweretsi Bya Ubwoko in Gukuramo"
+
+#: cp/typeck.c:3491
+#, fuzzy
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr "C ikoresha Mweretsi Kuri a Umumaro in Gukuramo"
+
+#: cp/typeck.c:3493
+#, fuzzy
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr "C ikoresha Mweretsi Kuri a Uburyo in Gukuramo"
+
+#: cp/typeck.c:3505
+#, 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:3581
+#, fuzzy, c-format
+msgid "invalid use of %qE 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:3588
+#, fuzzy, c-format
+msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
+msgstr "Kuri Ifishi a Mweretsi Kuri Umumaro"
+
+#: cp/typeck.c:3611
+#, fuzzy
+msgid "taking address of temporary"
+msgstr "Aderesi Bya By'igihe gito"
+
+#: cp/typeck.c:3846
+#, fuzzy, c-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr "C"
+
+#: cp/typeck.c:3857
+#, fuzzy
+msgid "cannot %s a pointer to incomplete type %qT"
+msgstr "a Mweretsi Kuri Ubwoko"
+
+#: cp/typeck.c:3863
+#, fuzzy
+msgid "ISO C++ forbids %sing a pointer of type %qT"
+msgstr "C a Mweretsi Bya Ubwoko"
+
+#: cp/typeck.c:3888
+#, fuzzy
+msgid "cast to non-reference type used as lvalue"
+msgstr "Kuri Indango Ubwoko Nka"
+
+#: cp/typeck.c:3923
+#, fuzzy
+msgid "invalid use of %<--%> on bool variable %qD"
+msgstr "Sibyo Gukoresha Bya ku IMPINDURAGACIRO"
+
+#. ARM $3.4
+#: cp/typeck.c:3952
+#, fuzzy
+msgid "ISO C++ forbids taking address of function %<::main%>"
+msgstr "C Aderesi Bya Umumaro"
+
+#. An expression like &memfn.
+#: cp/typeck.c:4006
+#, fuzzy
+msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
+msgstr "C i Aderesi Bya Cyangwa Umumaro Kuri Ifishi a Mweretsi Kuri Umumaro"
+
+#: cp/typeck.c:4011
+#, 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:4039
+#, 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:4091
+#, fuzzy
+msgid "attempt to take address of bit-field structure member %qD"
+msgstr "Kuri Aderesi Bya Umwanya Imiterere"
+
+#: cp/typeck.c:4211
+#, fuzzy
+msgid "taking address of destructor"
+msgstr "Aderesi Bya"
+
+#: cp/typeck.c:4224
+#, fuzzy
+msgid "taking address of bound pointer-to-member expression"
+msgstr "Aderesi Bya Mweretsi Kuri imvugo"
+
+#: cp/typeck.c:4232
+#, fuzzy
+msgid "cannot create pointer to reference member %qD"
+msgstr "Kurema Mweretsi Kuri Indango"
+
+#: cp/typeck.c:4295
+#, fuzzy
+msgid "cannot take the address of %<this%>, which is an rvalue expression"
+msgstr "i Aderesi Bya iyi ni imvugo"
+
+#: cp/typeck.c:4318
+#, fuzzy
+msgid "address of explicit register variable %qD requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: cp/typeck.c:4323
+#, fuzzy
+msgid "address requested for %qD, which is declared %<register%>"
+msgstr "Aderesi kugirango ni Kwiyandikisha"
+
+#: cp/typeck.c:4389
+#, fuzzy, c-format
+msgid "%s expression list treated as compound expression"
+msgstr "%simvugo Urutonde Nka imvugo"
+
+#: cp/typeck.c:4464
+#, fuzzy
+msgid "%s from type %qT to type %qT casts away constness"
+msgstr "%sBivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4761
+#, fuzzy
+msgid "invalid static_cast from type %qT to type %qT"
+msgstr "Sibyo Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4783
+#, fuzzy
+msgid "converting from %qT to %qT"
+msgstr "Guhindura.... Bivuye Kuri"
+
+#: cp/typeck.c:4828
+#, fuzzy
+msgid "invalid cast of an rvalue expression of type %qT to type %qT"
+msgstr "Sibyo Bya imvugo Bya Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4887
+#, fuzzy
+msgid "cast from %qT to %qT loses precision"
+msgstr "Bivuye Kuri"
+
+#: cp/typeck.c:4912
+#, fuzzy
+msgid "cast from %qT to %qT increases required alignment of target type"
+msgstr "Bivuye Kuri Bya ngombwa Itunganya Bya Intego Ubwoko"
+
+#. Only issue a warning, as we have always supported this
+#. where possible, and it is necessary in some cases. DR 195
+#. addresses this issue, but as of 2004/10/26 is still in
+#. drafting.
+#: cp/typeck.c:4926
+#, 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:4937
+#, fuzzy
+msgid "invalid cast from type %qT to type %qT"
+msgstr "Sibyo Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4993
+#, fuzzy
+msgid "invalid use of const_cast with type %qT, 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:5002
+#, fuzzy
+msgid "invalid use of const_cast with type %qT, 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:5024
+#, fuzzy
+msgid "invalid const_cast of an rvalue of type %qT to type %qT"
+msgstr "Sibyo Bya Bya Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:5067
+#, fuzzy
+msgid "invalid const_cast from type %qT to type %qT"
+msgstr "Sibyo Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:5135 cp/typeck.c:5140
+#, fuzzy
+msgid "ISO C++ forbids casting to an array type %qT"
+msgstr "C Kuri Imbonerahamwe Ubwoko"
+
+#: cp/typeck.c:5148
+#, fuzzy
+msgid "invalid cast to function type %qT"
+msgstr "Sibyo Kuri Umumaro Ubwoko"
+
+#: cp/typeck.c:5364
+#, fuzzy
+msgid " in evaluation of %<%Q(%#T, %#T)%>"
+msgstr "in Bya"
+
+#: cp/typeck.c:5433
+#, fuzzy
+msgid "incompatible types in assignment of %qT to %qT"
+msgstr "in Igenera Bya Kuri"
+
+#: cp/typeck.c:5440
+#, fuzzy
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "C Igenera Bya"
+
+#: cp/typeck.c:5551
+#, fuzzy
+msgid " in pointer to member function conversion"
+msgstr "in Mweretsi Kuri Umumaro Ihindurangero"
+
+#: cp/typeck.c:5557
+#, 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:5568 cp/typeck.c:5584
+#, fuzzy
+msgid "pointer to member cast via virtual base %qT"
+msgstr "Mweretsi Kuri Biturutse Kitaboneka SHINGIRO"
+
+#: cp/typeck.c:5587
+#, fuzzy
+msgid "pointer to member conversion via virtual base %qT"
+msgstr "Mweretsi Kuri Ihindurangero Biturutse Kitaboneka SHINGIRO"
+
+#: cp/typeck.c:5660
+#, fuzzy
+msgid "invalid conversion to type %qT from type %qT"
+msgstr "Sibyo Ihindurangero Kuri Ubwoko Bivuye Ubwoko"
+
+#: cp/typeck.c:5875
+#, fuzzy
+msgid "cannot convert %qT to %qT for argument %qP to %qD"
+msgstr "GUHINDURA Kuri kugirango Kuri"
+
+#: cp/typeck.c:5878
+#, fuzzy
+msgid "cannot convert %qT to %qT in %s"
+msgstr "GUHINDURA Kuri in"
+
+#: cp/typeck.c:5951 cp/typeck.c:5953
+#, fuzzy
+msgid "in passing argument %P of %q+D"
+msgstr "in Bya"
+
+#: cp/typeck.c:6003
+#, fuzzy
+msgid "returning reference to temporary"
+msgstr "Indango Kuri By'igihe gito"
+
+#: cp/typeck.c:6010
+#, fuzzy
+msgid "reference to non-lvalue returned"
+msgstr "Indango Kuri"
+
+#: cp/typeck.c:6022
+#, fuzzy
+msgid "reference to local variable %qD returned"
+msgstr "Indango Kuri IMPINDURAGACIRO"
+
+#: cp/typeck.c:6025
+#, fuzzy
+msgid "address of local variable %qD returned"
+msgstr "Aderesi Bya IMPINDURAGACIRO"
+
+#: cp/typeck.c:6055
+#, 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:6063
+#, 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:6066
+#, fuzzy
+msgid "returning a value from a constructor"
+msgstr "a Agaciro Bivuye a"
+
+#: cp/typeck.c:6089
+#, fuzzy
+msgid "return-statement with no value, in function returning %qT"
+msgstr "Garuka Inyandiko Na: Oya Agaciro in Umumaro"
+
+#: cp/typeck.c:6106
+#, fuzzy
+msgid "return-statement with a value, in function returning 'void'"
+msgstr "Garuka Inyandiko Na: a Agaciro in Umumaro"
+
+#: cp/typeck.c:6137
+#, fuzzy
+msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
+msgstr "%<Mukoresha Gishya OYA Garuka ni Cyangwa Gishya ni in INGARUKA"
+
+#: cp/typeck2.c:52
+#, fuzzy
+msgid "type %qT is not a base type for type %qT"
+msgstr "Ubwoko ni OYA a SHINGIRO Ubwoko kugirango Ubwoko"
+
+#: cp/typeck2.c:292
+#, fuzzy
+msgid "cannot declare variable %q+D to be of abstract type %qT"
+msgstr "IMPINDURAGACIRO Kuri Bya Incamake Ubwoko"
+
+#: cp/typeck2.c:295
+#, fuzzy
+msgid "cannot declare parameter %q+D to be of abstract type %qT"
+msgstr "Kuri Bya Incamake Ubwoko"
+
+#: cp/typeck2.c:298
+#, fuzzy
+msgid "cannot declare field %q+D to be of abstract type %qT"
+msgstr "Umwanya Kuri Bya Incamake Ubwoko"
+
+#: cp/typeck2.c:302
+#, fuzzy
+msgid "invalid abstract return type for member function %q+#D"
+msgstr "Sibyo Incamake Garuka Ubwoko kugirango Umumaro"
+
+#: cp/typeck2.c:305
+#, fuzzy
+msgid "invalid abstract return type for function %q+#D"
+msgstr "Sibyo Incamake Garuka Ubwoko kugirango Umumaro"
+
+#. Here we do not have location information, so use error instead
+#. of cp_error_at.
+#: cp/typeck2.c:310
+#, fuzzy
+msgid "invalid abstract type %qT for %qE"
+msgstr "Sibyo Incamake Ubwoko kugirango"
+
+#: cp/typeck2.c:312
+#, fuzzy
+msgid "invalid abstract type for %q+D"
+msgstr "Sibyo Incamake Ubwoko kugirango"
+
+#: cp/typeck2.c:315
+#, fuzzy
+msgid "cannot allocate an object of abstract type %qT"
+msgstr "Igikoresho Bya Incamake Ubwoko"
+
+#: cp/typeck2.c:323
+#, fuzzy
+msgid "%J because the following virtual functions are pure within %qT:"
+msgstr "%Ji Kitaboneka Imimaro muri"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/typeck2.c:327
+#, fuzzy
+msgid "%J\t%#D"
+msgstr "%J%#D"
+
+#: cp/typeck2.c:334
+#, fuzzy
+msgid "%J since type %qT has pure virtual functions"
+msgstr "%Jguhera Ubwoko Kitaboneka Imimaro"
+
+#: cp/typeck2.c:582
+#, fuzzy
+msgid "constructor syntax used, but no constructor declared for type %qT"
+msgstr "Oya kugirango Ubwoko"
+
+#: cp/typeck2.c:596
+#, fuzzy
+msgid "cannot initialize arrays using this syntax"
+msgstr "gutangiza ikoresha iyi"
+
+#: cp/typeck2.c:688
+#, fuzzy
+msgid "initializing array with parameter list"
+msgstr "Gutangiza Imbonerahamwe Na: Urutonde"
+
+#: cp/typeck2.c:710
+#, fuzzy
+msgid "int-array initialized from non-wide string"
+msgstr "INT Imbonerahamwe Bivuye Ikurikiranyanyuguti"
+
+#: cp/typeck2.c:743
+#, fuzzy
+msgid "initializer for scalar variable requires one element"
+msgstr "kugirango IMPINDURAGACIRO Ikigize:"
+
+#: cp/typeck2.c:750
+#, fuzzy
+msgid "braces around scalar initializer for %qT"
+msgstr "Ingirwadusodeko kugirango"
+
+#: cp/typeck2.c:753
+#, fuzzy
+msgid "ignoring extra initializers for %qT"
+msgstr "Birenga kugirango"
+
+#: cp/typeck2.c:765
+#, fuzzy
+msgid "variable-sized object of type %qT may not be initialized"
+msgstr "IMPINDURAGACIRO Igikoresho Bya Ubwoko Gicurasi OYA"
+
+#: cp/typeck2.c:776
+#, fuzzy
+msgid "subobject of type %qT must be initialized by constructor, not by %qE"
+msgstr "Bya Ubwoko ku OYA ku"
+
+#: cp/typeck2.c:842
+#, fuzzy
+msgid "aggregate has a partly bracketed initializer"
+msgstr "a"
+
+#: cp/typeck2.c:880 cp/typeck2.c:969
+msgid "non-trivial labeled initializers"
+msgstr ""
+
+#: cp/typeck2.c:894
+#, fuzzy
+msgid "non-empty initializer for array of empty elements"
+msgstr "ubusa kugirango Imbonerahamwe Bya ubusa Ibintu"
+
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
+#, fuzzy
+msgid "missing initializer for member %qD"
+msgstr "Ibuze kugirango"
+
+#: cp/typeck2.c:1013
+#, fuzzy
+msgid "uninitialized const member %qD"
+msgstr "Itatangijwe"
+
+#: cp/typeck2.c:1015
+#, fuzzy
+msgid "member %qD with uninitialized const fields"
+msgstr "Na: Itatangijwe Imyanya"
+
+#: cp/typeck2.c:1017
+#, fuzzy
+msgid "member %qD is uninitialized reference"
+msgstr "ni Itatangijwe Indango"
+
+#: cp/typeck2.c:1064
+#, fuzzy
+msgid "index value instead of field name in union initializer"
+msgstr "Umubarendanga Agaciro Bya Umwanya Izina: in Ihuza"
+
+#: cp/typeck2.c:1076
+#, fuzzy
+msgid "no field %qD in union being initialized"
+msgstr "Oya Umwanya in Ihuza"
+
+#: cp/typeck2.c:1084
+#, fuzzy
+msgid "union %qT with no named members cannot be initialized"
+msgstr "Ihuza Na: Oya"
+
+#: cp/typeck2.c:1119
+#, fuzzy
+msgid "excess elements in aggregate initializer"
+msgstr "Ibintu in"
+
+#: cp/typeck2.c:1227
+#, fuzzy
+msgid "circular pointer delegation detected"
+msgstr "Cy'uruziga Mweretsi"
+
+#: cp/typeck2.c:1240
+#, fuzzy
+msgid "base operand of %<->%> has non-pointer type %qT"
+msgstr "SHINGIRO Bya Mweretsi Ubwoko"
+
+#: cp/typeck2.c:1264
+#, fuzzy
+msgid "result of %<operator->()%> yields non-pointer result"
+msgstr "Igisubizo Bya Mukoresha Mweretsi Igisubizo"
+
+#: cp/typeck2.c:1266
+#, fuzzy
+msgid "base operand of %<->%> is not a pointer"
+msgstr "SHINGIRO Bya ni OYA a Mweretsi"
+
+#: cp/typeck2.c:1290
+#, fuzzy
+msgid "%qE cannot be used as a member pointer, since it is of type %qT"
+msgstr "%qENka a Mweretsi guhera ni Bya Ubwoko"
+
+#: cp/typeck2.c:1299
+#, fuzzy
+msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
+msgstr "Gukurikiza Mweretsi Kuri ni Bya Ubwoko"
+
+#: cp/typeck2.c:1321
+#, fuzzy
+msgid "pointer to member type %qT incompatible with object type %qT"
+msgstr "Mweretsi Kuri Ubwoko Na: Igikoresho Ubwoko"
+
+#: cp/typeck2.c:1544
+#, fuzzy
+msgid "call to function %qD which throws incomplete type %q#T"
+msgstr "Kuri Umumaro Ubwoko"
+
+#: cp/typeck2.c:1547
+#, fuzzy
+msgid "call to function which throws incomplete type %q#T"
+msgstr "Kuri Umumaro Ubwoko"
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3884
+#, fuzzy, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr "%sni Bitemewe. i kugirango Birambuye"
+
+#: fortran/f95-lang.c:242
+#, fuzzy
+msgid "Unexpected type in truthvalue_conversion"
+msgstr "Ubwoko in"
+
+#: fortran/f95-lang.c:295
+#, fuzzy, c-format
+msgid "can't open input file: %s"
+msgstr "Gufungura Iyinjiza IDOSIYE"
+
+#: fortran/f95-lang.c:622
+#, fuzzy, c-format
+msgid "global register variable %qs used in nested function"
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: fortran/f95-lang.c:626
+#, fuzzy, c-format
+msgid "register variable %qs used in nested function"
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: fortran/f95-lang.c:633
+#, fuzzy, c-format
+msgid "address of global register variable %qs requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: fortran/f95-lang.c:651
+#, fuzzy, c-format
+msgid "address of register variable %qs requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: fortran/gfortranspec.c:231
+#, fuzzy, c-format
+msgid "overflowed output arg list for '%s'"
+msgstr "Ibisohoka Urutonde kugirango"
+
+#: fortran/gfortranspec.c:375
+#, fuzzy, c-format
+msgid "argument to '%s' missing"
+msgstr "Kuri Ibuze"
+
+#: fortran/gfortranspec.c:379
+#, fuzzy
+msgid "no input files; unwilling to write output files"
+msgstr "Oya Iyinjiza Idosiye Kuri Kwandika Ibisohoka Idosiye"
+
+#: fortran/trans-array.c:2886
+#, fuzzy
+msgid "Possible frontend bug: array constructor not expanded"
+msgstr "Imbonerahamwe OYA Cyagutse"
+
+#: fortran/trans-array.c:3989
+#, fuzzy
+msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
+msgstr "Imbonerahamwe Ingano Mweretsi Cyangwa Ikiranga"
+
+#: fortran/trans-array.c:4149
+#, fuzzy
+msgid "scalar vector subscript???"
+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"
+"."
+
+#: fortran/trans-array.c:4423
+#, fuzzy, c-format
+msgid "bad expression type during walk (%d)"
+msgstr "imvugo Ubwoko"
+
+#: fortran/trans-const.c:327
+#, fuzzy, c-format
+msgid "gfc_conv_constant_to_tree(): invalid type: %s"
+msgstr "Sibyo Ubwoko"
+
+#: fortran/trans-decl.c:754
+#, fuzzy
+msgid "intrinsic variable which isn't a procedure"
+msgstr "IMPINDURAGACIRO si a"
+
+#: fortran/trans-decl.c:1893
+#, fuzzy
+msgid "Function does not return a value"
+msgstr "OYA Garuka a Agaciro"
+
+#. I don't think this should ever happen.
+#: fortran/trans-decl.c:1992
+#, fuzzy, c-format
+msgid "module symbol %s in wrong namespace"
+msgstr "Modire IKIMENYETSO in"
+
+#: fortran/trans-decl.c:2006
+#, fuzzy, c-format
+msgid "backend decl for module variable %s already exists"
+msgstr "kugirango Modire IMPINDURAGACIRO"
+
+#: fortran/trans-decl.c:2088
+#, fuzzy, c-format
+msgid "unused parameter %qs"
+msgstr "Kidakoreshwa"
+
+#: fortran/trans-decl.c:2093
+#, fuzzy, c-format
+msgid "unused variable %qs"
+msgstr "Kidakoreshwa IMPINDURAGACIRO"
+
+#: fortran/trans-decl.c:2234
+#, fuzzy
+msgid "Function return value not set"
+msgstr "Garuka Agaciro OYA Gushyiraho"
+
+#: fortran/trans-expr.c:949
+msgid "Unknown intrinsic op"
+msgstr ""
+
+#: fortran/trans-intrinsic.c:583
+#, fuzzy, c-format
+msgid "Intrinsic function %s(%d) not recognized"
+msgstr "Umumaro OYA"
+
+#: fortran/trans-io.c:936
+#, c-format
+msgid "Bad namelist IO basetype (%d)"
+msgstr ""
+
+#: fortran/trans-io.c:1013
+#, fuzzy
+msgid "A format cannot be specified with a namelist"
+msgstr "A Imiterere Na: a"
+
+#: fortran/trans-io.c:1311
+#, c-format
+msgid "Bad IO basetype (%d)"
+msgstr ""
+
+#: fortran/trans-types.c:189
+#, fuzzy
+msgid "integer kind=8 not available for -i8 option"
+msgstr "Umubare wuzuye 8 OYA Bihari kugirango Ihitamo"
+
+#: fortran/trans-types.c:201
+#, fuzzy
+msgid "real kind=8 not available for -r8 option"
+msgstr "8 OYA Bihari kugirango Ihitamo"
+
+#: fortran/trans-types.c:916
+#, fuzzy
+msgid "Array element size too big"
+msgstr "Ikigize: Ingano"
+
+#: fortran/trans.c:621
+#, fuzzy
+msgid "gfc_trans_code(): Bad statement code"
+msgstr "Inyandiko ITEGEKONGENGA"
+
+#. I changed this from sorry(...) because it should not return.
+#. TODO: Remove gfc_todo_error before releasing version 1.0.
+#: fortran/trans.h:564
+msgid "gfc_todo: Not Implemented: "
+msgstr ""
+
+#: java/check-init.c:251
+#, fuzzy, c-format
+msgid "Can't reassign a value to the final variable %qs"
+msgstr "a Agaciro Kuri i IMPINDURAGACIRO"
+
+#: java/check-init.c:519 java/parse.h:377
+#, fuzzy, c-format
+msgid "Variable %qs may not have been initialized"
+msgstr "Gicurasi OYA"
+
+#: java/check-init.c:535
+#, fuzzy, c-format
+msgid "variable %qs may not have been initialized"
+msgstr "IMPINDURAGACIRO Gicurasi OYA"
+
+#: java/check-init.c:954
+#, 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:1026
+#, fuzzy
+msgid "%Jfinal field %qD may not have been initialized"
+msgstr "%JfinalUmwanya Gicurasi OYA"
+
+#: java/class.c:745
+#, fuzzy
+msgid "bad method signature"
+msgstr "Uburyo Isinya"
+
+#: java/class.c:789
+#, fuzzy
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr "Ikiranga OYA in Umwanya"
+
+#: java/class.c:791
+#, fuzzy, c-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr "Gusubiramo Ikiranga kugirango Umwanya"
+
+#: java/class.c:802
+#, fuzzy, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr "Ikiranga Bya Umwanya Ubwoko"
+
+#: java/class.c:1097
+#, fuzzy, c-format
+msgid "field '%s' not found in class"
+msgstr "Umwanya OYA Byabonetse in ishuri"
+
+#: java/class.c:1417
+#, fuzzy
+msgid "%Jabstract method in non-abstract class"
+msgstr "%JabstractUburyo in Incamake ishuri"
+
+#: java/class.c:2362
+#, fuzzy
+msgid "%Jnon-static method '%D' overrides static method"
+msgstr "%Jnon-staticUburyo Uburyo"
+
+#: java/decl.c:1260
+#, fuzzy
+msgid "%J'%D' used prior to declaration"
+msgstr "%J'%D'Kuri"
+
+#: java/decl.c:1301
+#, fuzzy, c-format
+msgid "declaration of %qs shadows a parameter"
+msgstr "Bya a"
+
+#: java/decl.c:1304
+#, fuzzy, c-format
+msgid "declaration of %qs shadows a symbol from the parameter list"
+msgstr "Bya a IKIMENYETSO Bivuye i Urutonde"
+
+#: java/decl.c:1632
+#, fuzzy
+msgid "%Jlabel '%D' used but not defined"
+msgstr "%Jlabel'%D'OYA"
+
+#: java/decl.c:1637
+#, fuzzy
+msgid "%Jlabel '%D' defined but not used"
+msgstr "%Jlabel'%D'OYA"
+
+#: java/decl.c:1759
+#, fuzzy
+msgid "%JIn %D: overlapped variable and exception ranges at %d"
+msgstr "%JIn%D:IMPINDURAGACIRO Na Irengayobora(-) Ibice ku"
+
+#: java/decl.c:1823
+#, fuzzy
+msgid "bad type in parameter debug info"
+msgstr "Ubwoko in Kosora amakosa Ibisobanuro"
+
+#: java/decl.c:1832
+#, fuzzy
+msgid "%Jbad PC range for debug info for local '%D'"
+msgstr "%JbadUrutonde kugirango Kosora amakosa Ibisobanuro kugirango"
+
+#: java/expr.c:376
+#, fuzzy, c-format
+msgid "need to insert runtime check for %s"
+msgstr "Kuri Kongeramo Kugenzura... kugirango"
+
+#: java/expr.c:501 java/expr.c:548
+#, fuzzy, c-format
+msgid "assert: %s is assign compatible with %s"
+msgstr "ni Kugenera... Na:"
+
+#: java/expr.c:668
+msgid "stack underflow - dup* operation"
+msgstr ""
+
+#: java/expr.c:1703
+#, fuzzy, c-format
+msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
+msgstr "Indango ni in Na"
+
+#: java/expr.c:1731
+#, fuzzy, c-format
+msgid "field %qs not found"
+msgstr "Umwanya OYA Byabonetse"
+
+#: java/expr.c:2116
+#, fuzzy, c-format
+msgid "method '%s' not found in class"
+msgstr "Uburyo OYA Byabonetse in ishuri"
+
+#: java/expr.c:2321
+#, fuzzy, c-format
+msgid "failed to find class '%s'"
+msgstr "Byanze Kuri Gushaka ishuri"
+
+#: java/expr.c:2350
+#, fuzzy, c-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr "ishuri Oya Uburyo Isinya"
+
+#: java/expr.c:2381
+#, fuzzy
+msgid "invokestatic on non static method"
+msgstr "ku Uburyo"
+
+#: java/expr.c:2386
+#, fuzzy
+msgid "invokestatic on abstract method"
+msgstr "ku Incamake Uburyo"
+
+#: java/expr.c:2394
+#, fuzzy
+msgid "invoke[non-static] on static method"
+msgstr "ku Uburyo"
+
+#: java/expr.c:2712
+#, fuzzy, c-format
+msgid "missing field '%s' in '%s'"
+msgstr "Ibuze Umwanya in"
+
+#: java/expr.c:2719
+#, fuzzy, c-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr "Isinya kugirango Umwanya in"
+
+#: java/expr.c:2741
+#, fuzzy
+msgid "%Jassignment to final field '%D' not in field's class"
+msgstr "%JassignmentKuri Umwanya OYA in ishuri"
+
+#: java/expr.c:2746
+#, fuzzy
+msgid "%Jassignment to final static field %qD not in class initializer"
+msgstr "%JassignmentKuri Umwanya OYA in ishuri"
+
+#: java/expr.c:2755
+#, fuzzy
+msgid "%Jassignment to final field '%D' not in constructor"
+msgstr "%JassignmentKuri Umwanya OYA in"
+
+#: java/expr.c:2945
+#, fuzzy
+msgid "invalid PC in line number table"
+msgstr "Sibyo in Umurongo Umubare imbonerahamwe#"
+
+#: java/expr.c:3001
+#, fuzzy, c-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr "Bivuye Kuri Mbere"
+
+#: java/expr.c:3043
+#, 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:3343
+msgid "unrecogized wide sub-instruction"
+msgstr ""
+
+#: java/gjavah.c:701
+#, fuzzy
+msgid "static field has same name as method"
+msgstr "Umwanya Izina: Nka Uburyo"
+
+#. FIXME: i18n bug here. Order of prints should not be
+#. fixed.
+#: java/gjavah.c:899
+#, fuzzy, c-format
+msgid "ignored method '"
+msgstr "Uburyo"
+
+#: java/gjavah.c:901
+#, fuzzy, c-format
+msgid "' marked virtual\n"
+msgstr "'cy/ byagarajwe"
+
+#: java/gjavah.c:1249
+#, fuzzy, c-format
+msgid "couldn't find class %s"
+msgstr "Gushaka ishuri"
+
+#: java/gjavah.c:1256
+#, fuzzy, c-format
+msgid "parse error while reading %s"
+msgstr "Ikosa"
+
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
+#, fuzzy, c-format
+msgid "unparseable signature: '%s'"
+msgstr "Isinya"
+
+#: java/gjavah.c:2049
+#, fuzzy
+msgid "Not a valid Java .class file."
+msgstr "a Byemewe ishuri IDOSIYE"
+
+#: java/gjavah.c:2057 java/jcf-parse.c:746
+#, fuzzy
+msgid "error while parsing constant pool"
+msgstr "Ikosa Itsinda"
+
+#: java/gjavah.c:2063
+#, fuzzy, c-format
+msgid "error in constant pool entry #%d"
+msgstr "Ikosa in Itsinda Icyinjijwe"
+
+#: java/gjavah.c:2206
+#, fuzzy
+msgid "class is of array type\n"
+msgstr "ishuri ni Bya Imbonerahamwe"
+
+#: java/gjavah.c:2214
+#, fuzzy
+msgid "base class is of array type"
+msgstr "SHINGIRO ishuri ni Bya Imbonerahamwe Ubwoko"
+
+#: java/gjavah.c:2330
+#, fuzzy, c-format
+msgid "Try 'gcjh --help' for more information.\n"
+msgstr "kugirango Birenzeho Ibisobanuro"
+
+#: java/gjavah.c:2337
+#, c-format
+msgid ""
+"Usage: gcjh [OPTION]... CLASS...\n"
+"\n"
+msgstr ""
+
+#: java/gjavah.c:2338
+#, fuzzy, c-format
+msgid ""
+"Generate C++ header files from .class files\n"
+"\n"
+msgstr "C Umutwempangano Idosiye Bivuye ishuri"
+
+#: java/gjavah.c:2339
+#, c-format
+msgid " -stubs Generate an implementation stub file\n"
+msgstr ""
+
+#: java/gjavah.c:2340
+#, fuzzy, c-format
+msgid " -jni Generate a JNI header or stub\n"
+msgstr "-a Umutwempangano Cyangwa"
+
+#: java/gjavah.c:2342
+#, fuzzy, c-format
+msgid " -add TEXT Insert TEXT into class body\n"
+msgstr "-Kongeramo ishuri"
+
+#: java/gjavah.c:2343
+#, fuzzy, c-format
+msgid " -append TEXT Insert TEXT after class declaration\n"
+msgstr "-Kongeraho... Nyuma ishuri"
+
+#: java/gjavah.c:2344
+#, fuzzy, c-format
+msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
+msgstr "-Nka"
+
+#: java/gjavah.c:2345
+#, fuzzy, c-format
+msgid " -prepend TEXT Insert TEXT before start of class\n"
+msgstr "-Mbere Gutangira Bya"
+
+#: java/gjavah.c:2347 java/jcf-dump.c:897
+#, fuzzy, c-format
+msgid " --classpath PATH Set path to find .class files\n"
+msgstr "--Inzirashuri Inzira Kuri Gushaka ishuri"
+
+#: java/gjavah.c:2348 java/jcf-dump.c:898
+#, fuzzy, c-format
+msgid " -IDIR Append directory to class path\n"
+msgstr "-bushyinguro Kuri ishuri"
+
+#: java/gjavah.c:2349 java/jcf-dump.c:899
+#, fuzzy, c-format
+msgid " --bootclasspath PATH Override built-in class path\n"
+msgstr "--in ishuri"
+
+#: java/gjavah.c:2350 java/jcf-dump.c:900
+#, fuzzy, c-format
+msgid " --extdirs PATH Set extensions directory path\n"
+msgstr "--Umigereka bushyinguro"
+
+#: java/gjavah.c:2351
+#, fuzzy, c-format
+msgid " -d DIRECTORY Set output directory name\n"
+msgstr "-D Ibisohoka bushyinguro"
+
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
+#, fuzzy, c-format
+msgid " -o FILE Set output file name\n"
+msgstr "-o Ibisohoka IDOSIYE"
+
+#: java/gjavah.c:2353
+#, fuzzy, c-format
+msgid " -td DIRECTORY Set temporary directory name\n"
+msgstr "-By'igihe gito bushyinguro"
+
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
+#, fuzzy, c-format
+msgid " --help Print this help, then exit\n"
+msgstr "--Ifashayobora iyi Ifashayobora Hanyuma"
+
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
+#, fuzzy, c-format
+msgid " --version Print version number, then exit\n"
+msgstr "--Verisiyo Verisiyo Umubare Hanyuma"
+
+#: java/gjavah.c:2357 java/jcf-dump.c:905
+#, fuzzy, c-format
+msgid " -v, --verbose Print extra information while running\n"
+msgstr "-v Birenga Ibisobanuro"
+
+#: java/gjavah.c:2359
+#, fuzzy, c-format
+msgid ""
+" -M Print all dependencies to stdout;\n"
+" suppress ordinary output\n"
+msgstr "-Byose Kuri"
+
+#: java/gjavah.c:2361
+#, fuzzy, c-format
+msgid ""
+" -MM Print non-system dependencies to stdout;\n"
+" suppress ordinary output\n"
+msgstr "-Sisitemu Kuri"
+
+#: java/gjavah.c:2363
+#, fuzzy, c-format
+msgid " -MD Print all dependencies to stdout\n"
+msgstr "-Byose Kuri"
+
+#: java/gjavah.c:2364
+#, fuzzy, c-format
+msgid " -MMD Print non-system dependencies to stdout\n"
+msgstr "-Sisitemu Kuri"
+
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
+#, fuzzy, c-format
+msgid ""
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr "Amabwiriza"
+
+#: java/gjavah.c:2395 java/gjavah.c:2509
+#, fuzzy
+msgid "no classes specified"
+msgstr "Oya Inzego"
+
+#: java/gjavah.c:2488
+#, fuzzy
+msgid "'-MG' option is unimplemented"
+msgstr "'-Ihitamo ni"
+
+#: java/gjavah.c:2517
+#, fuzzy
+msgid "can't specify both -o and -MD"
+msgstr "Byombi o Na"
+
+#: java/gjavah.c:2528
+#, fuzzy, c-format
+msgid "Processing %s\n"
+msgstr "Inonosora..."
+
+#: java/gjavah.c:2534
+#, fuzzy, c-format
+msgid "%s: no such class"
+msgstr "%s:Oya ishuri"
+
+#: java/gjavah.c:2538
+#, fuzzy, c-format
+msgid "Found in %s\n"
+msgstr "in"
+
+#: java/jcf-dump.c:814
+#, fuzzy, c-format
+msgid "Not a valid Java .class file.\n"
+msgstr "a Byemewe ishuri IDOSIYE"
+
+#: java/jcf-dump.c:820
+#, fuzzy, c-format
+msgid "error while parsing constant pool\n"
+msgstr "Ikosa"
+
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
+#, fuzzy, c-format
+msgid "error in constant pool entry #%d\n"
+msgstr "Ikosa in Itsinda Icyinjijwe"
+
+#: java/jcf-dump.c:836
+#, fuzzy, c-format
+msgid "error while parsing fields\n"
+msgstr "Ikosa"
+
+#: java/jcf-dump.c:842
+#, fuzzy, c-format
+msgid "error while parsing methods\n"
+msgstr "Ikosa"
+
+#: java/jcf-dump.c:848
+#, fuzzy, c-format
+msgid "error while parsing final attributes\n"
+msgstr "Ikosa"
+
+#: java/jcf-dump.c:885
+#, fuzzy, c-format
+msgid "Try 'jcf-dump --help' for more information.\n"
+msgstr "kugirango Birenzeho Ibisobanuro"
+
+#: java/jcf-dump.c:892
+#, c-format
+msgid ""
+"Usage: jcf-dump [OPTION]... CLASS...\n"
+"\n"
+msgstr ""
+
+#: java/jcf-dump.c:893
+#, fuzzy, c-format
+msgid ""
+"Display contents of a class file in readable form.\n"
+"\n"
+msgstr "Ibigize Bya a ishuri IDOSIYE in Ifishi"
+
+#: java/jcf-dump.c:894
+#, fuzzy, c-format
+msgid " -c Disassemble method bodies\n"
+msgstr "-C Uburyo"
+
+#: java/jcf-dump.c:895
+#, fuzzy, c-format
+msgid " --javap Generate output in 'javap' format\n"
+msgstr "--Ibisohoka in"
+
+#: java/jcf-dump.c:932 java/jcf-dump.c:1000
+#, fuzzy, c-format
+msgid "jcf-dump: no classes specified\n"
+msgstr "Oya Inzego"
+
+#: java/jcf-dump.c:1020
+#, fuzzy, c-format
+msgid "Cannot open '%s' for output.\n"
+msgstr "Gufungura kugirango Ibisohoka"
+
+#: java/jcf-dump.c:1066
+#, fuzzy, c-format
+msgid "bad format of .zip/.jar archive\n"
+msgstr "Zipu."
+
+#: java/jcf-dump.c:1184
+#, fuzzy, c-format
+msgid "Bad byte codes.\n"
+msgstr "Bayite"
+
+#: java/jcf-io.c:536
+#, fuzzy, c-format
+msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
+msgstr "Inkomoko IDOSIYE kugirango ishuri ni ishuri IDOSIYE IDOSIYE"
+
+#: java/jcf-parse.c:366
+#, fuzzy
+msgid "bad string constant"
+msgstr "Ikurikiranyanyuguti"
+
+#: java/jcf-parse.c:384
+#, fuzzy, c-format
+msgid "bad value constant type %d, index %d"
+msgstr "Agaciro Ubwoko Umubarendanga"
+
+#: java/jcf-parse.c:572
+#, c-format
+msgid "can't reopen %s: %m"
+msgstr ""
+
+#: java/jcf-parse.c:579
+#, fuzzy, c-format
+msgid "can't close %s: %m"
+msgstr "Gufunga"
+
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
+#, fuzzy, c-format
+msgid "cannot find file for class %s"
+msgstr "Gushaka IDOSIYE kugirango ishuri"
+
+#: java/jcf-parse.c:743
+#, fuzzy
+msgid "not a valid Java .class file"
+msgstr "OYA a Byemewe ishuri IDOSIYE"
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:761
+#, fuzzy, c-format
+msgid "reading class %s for the second time from %s"
+msgstr "ishuri kugirango i ISEGONDA Igihe Bivuye"
+
+#: java/jcf-parse.c:779
+#, fuzzy
+msgid "error while parsing fields"
+msgstr "Ikosa Imyanya"
+
+#: java/jcf-parse.c:782
+#, fuzzy
+msgid "error while parsing methods"
+msgstr "Ikosa"
+
+#: java/jcf-parse.c:785
+#, fuzzy
+msgid "error while parsing final attributes"
+msgstr "Ikosa Ibiranga"
+
+#: java/jcf-parse.c:802
+#, fuzzy
+msgid "the %<java.lang.Object%> that was found in %qs 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:876
+#, fuzzy
+msgid "missing Code attribute"
+msgstr "Ibuze Ikiranga"
+
+#: java/jcf-parse.c:1137
+#, fuzzy
+msgid "%Hsource file seen twice on command line and will be compiled only once"
+msgstr "%HsourceIDOSIYE ku Komandi: Umurongo Na Rimwe"
+
+#: java/jcf-parse.c:1155
+#, fuzzy
+msgid "no input file specified"
+msgstr "Oya Iyinjiza IDOSIYE"
+
+#: java/jcf-parse.c:1190
+#, fuzzy, c-format
+msgid "can't close input file %s: %m"
+msgstr "Gufunga Iyinjiza IDOSIYE"
+
+#: java/jcf-parse.c:1231
+#, fuzzy, c-format
+msgid "bad zip/jar file %s"
+msgstr "Zipu IDOSIYE"
+
+#: java/jcf-parse.c:1447
+#, fuzzy, c-format
+msgid "error while reading %s from zip file"
+msgstr "Ikosa Bivuye Zipu IDOSIYE"
+
+#: java/jcf-write.c:2667
+#, 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:3041
+#, fuzzy
+msgid "field initializer type mismatch"
+msgstr "Umwanya Ubwoko"
+
+#: java/jcf-write.c:3498
+#, fuzzy, c-format
+msgid "can't create directory %s: %m"
+msgstr "Kurema bushyinguro"
+
+#: java/jcf-write.c:3531
+#, fuzzy, c-format
+msgid "can't open %s for writing: %m"
+msgstr "Gufungura kugirango"
+
+#: java/jcf-write.c:3551
+#, fuzzy, c-format
+msgid "can't create %s: %m"
+msgstr "Kurema"
+
+#: java/jv-scan.c:99
+#, fuzzy, c-format
+msgid "Try 'jv-scan --help' for more information.\n"
+msgstr "Gusikana kugirango Birenzeho Ibisobanuro"
+
+#: java/jv-scan.c:106
+#, fuzzy, c-format
+msgid ""
+"Usage: jv-scan [OPTION]... FILE...\n"
+"\n"
+msgstr "Gusikana"
+
+#: java/jv-scan.c:107
+#, fuzzy, c-format
+msgid ""
+"Print useful information read from Java source files.\n"
+"\n"
+msgstr "Ibisobanuro Gusoma Bivuye Inkomoko Idosiye"
+
+#: java/jv-scan.c:108
+#, fuzzy, c-format
+msgid " --no-assert Don't recognize the assert keyword\n"
+msgstr "--Oya i"
+
+#: java/jv-scan.c:109
+#, fuzzy, c-format
+msgid " --complexity Print cyclomatic complexity of input file\n"
+msgstr "--Bya Iyinjiza"
+
+#: java/jv-scan.c:110
+#, fuzzy, c-format
+msgid " --encoding NAME Specify encoding of input file\n"
+msgstr "--Imisobekere: Imisobekere: Bya Iyinjiza"
+
+#: java/jv-scan.c:111
+#, fuzzy, c-format
+msgid " --print-main Print name of class containing 'main'\n"
+msgstr "--Gucapa Izina: Bya ishuri"
+
+#: java/jv-scan.c:112
+#, fuzzy, c-format
+msgid " --list-class List all classes defined in file\n"
+msgstr "--Urutonde ishuri Byose Inzego in"
+
+#: java/jv-scan.c:113
+#, fuzzy, c-format
+msgid " --list-filename Print input filename when listing class names\n"
+msgstr "--Urutonde Izina ry'idosiye: Iyinjiza Izina ry'idosiye: Ryari: ishuri"
+
+#: java/jv-scan.c:190
+#, fuzzy
+msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
+msgstr "Bya Gucapa Urutonde Na"
+
+#: java/jv-scan.c:193
+#, fuzzy, c-format
+msgid "can't open output file '%s'"
+msgstr "Gufungura Ibisohoka IDOSIYE"
+
+#: java/jv-scan.c:229
+#, fuzzy, c-format
+msgid "file not found '%s'"
+msgstr "Dosiye ntibonetse"
+
+# sw/source\ui\utlui\initui.src:RID_SW_SHELLRES.STR_CALC_DEFAULT.text
+#: java/jv-scan.c:251
+#, fuzzy, c-format
+msgid "%s: error: "
+msgstr "%s:Ikosa**"
+
+#: java/jv-scan.c:263
+#, fuzzy, c-format
+msgid "%s: warning: "
+msgstr "%s:Iburira"
+
+#: java/jvgenmain.c:48
+#, c-format
+msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
+msgstr ""
+
+#: java/jvgenmain.c:98
+#, fuzzy, c-format
+msgid "%s: Cannot open output file: %s\n"
+msgstr "%s:Gufungura Ibisohoka IDOSIYE"
+
+#: java/jvgenmain.c:135
+#, fuzzy, c-format
+msgid "%s: Failed to close output file %s\n"
+msgstr "%s:Kuri Gufunga Ibisohoka IDOSIYE"
+
+#: java/jvspec.c:420
+msgid "can't specify '-D' without '--main'\n"
+msgstr ""
+
+#: java/jvspec.c:423
+#, fuzzy, c-format
+msgid "'%s' is not a valid class name"
+msgstr "'%s'ni OYA a Byemewe ishuri Izina:"
+
+#: java/jvspec.c:429
+#, fuzzy
+msgid "--resource requires -o"
+msgstr "--o"
+
+#: java/jvspec.c:436
+#, fuzzy
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr "Iburira ishuri Idosiye Na: C"
+
+#: java/jvspec.c:443
+#, fuzzy
+msgid "cannot specify both -C and -o"
+msgstr "Byombi C Na o"
+
+#: java/jvspec.c:455
+#, fuzzy
+msgid "cannot create temporary file"
+msgstr "Kurema By'igihe gito IDOSIYE"
+
+#: java/jvspec.c:483
+#, fuzzy
+msgid "using both @FILE with multiple files not implemented"
+msgstr "ikoresha Byombi Na: Igikubo Idosiye OYA"
+
+#: java/jvspec.c:534
+#, fuzzy
+msgid "cannot specify 'main' class when not linking"
+msgstr "ishuri Ryari: OYA Impuza"
+
+#: java/lang.c:629
+#, fuzzy
+msgid "can't do dependency tracking with input from stdin"
+msgstr "Na: Iyinjiza Bivuye"
+
+#: java/lang.c:645
+#, fuzzy
+msgid "couldn't determine target name for dependency tracking"
+msgstr "Intego Izina: kugirango"
+
+#: java/lex.c:260
+#, fuzzy
+msgid ""
+"unknown encoding: %qs\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: 8 Ihitamo"
+
+#: java/lex.c:631
+#, fuzzy
+msgid "internal error - bad unget"
+msgstr "By'imbere Ikosa"
+
+#: java/mangle.c:89
+#, c-format
+msgid "can't mangle %s"
+msgstr ""
+
+#: java/mangle_name.c:140 java/mangle_name.c:210
+#, fuzzy
+msgid "internal error - invalid Utf8 name"
+msgstr "By'imbere Ikosa Sibyo Izina:"
+
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
+#, fuzzy
+msgid "Missing term"
+msgstr "Ijambo"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
+#, fuzzy
+msgid "';' expected"
+msgstr "';'ntigatunguranye"
+
+#: java/parse.y:746 java/parse.y:784
+#, fuzzy
+msgid "Missing name"
+msgstr "Izina:"
+
+#: java/parse.y:774
+#, fuzzy, c-format
+msgid "Ambiguous class: %qs and %qs"
+msgstr "ishuri Na"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: java/parse.y:809
+#, fuzzy
+msgid "'*' expected"
+msgstr "'*'ntigatunguranye"
+
+#: java/parse.y:823
+#, fuzzy
+msgid "Class or interface declaration expected"
+msgstr "Cyangwa Ikitezwe:"
+
+#: java/parse.y:840
+#, c-format
+msgid "Modifier %qs declared twice"
+msgstr ""
+
+#: java/parse.y:860 java/parse.y:862
+#, fuzzy
+msgid "Missing class name"
+msgstr "ishuri Izina:"
+
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
+msgid "'{' expected"
+msgstr "'{' ntigatunguranye"
+
+#: java/parse.y:879
+#, fuzzy
+msgid "Missing super class name"
+msgstr "hejuru ishuri Izina:"
+
+#: java/parse.y:889 java/parse.y:905
+#, fuzzy
+msgid "Missing interface name"
+msgstr "Izina:"
+
+#: java/parse.y:989
+#, fuzzy
+msgid "Missing variable initializer"
+msgstr "IMPINDURAGACIRO"
+
+#: java/parse.y:1006
+msgid "Invalid declaration"
+msgstr ""
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
+#, fuzzy
+msgid "']' expected"
+msgstr "']'ntigatunguranye"
+
+#: java/parse.y:1013
+msgid "Unbalanced ']'"
+msgstr ""
+
+#: java/parse.y:1049
+#, fuzzy
+msgid "Invalid method declaration, method name required"
+msgstr "Uburyo Uburyo Izina: Bya ngombwa"
+
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
+msgid "Identifier expected"
+msgstr "Ikiranga ntigitunguranye"
+
+#: java/parse.y:1069 java/parse.y:4741
+#, fuzzy
+msgid "Invalid method declaration, return type required"
+msgstr "Uburyo Garuka Ubwoko Bya ngombwa"
+
+#: java/parse.y:1089
+#, fuzzy
+msgid "Discouraged form of returned type specification"
+msgstr "Ifishi Bya Ubwoko"
+
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
+msgid "')' expected"
+msgstr "')' ntigatunguranye"
+
+#: java/parse.y:1108
+#, fuzzy
+msgid "Missing formal parameter term"
+msgstr "Ijambo"
+
+#: java/parse.y:1123 java/parse.y:1128
+#, fuzzy
+msgid "Missing identifier"
+msgstr "Ikiranga"
+
+#: java/parse.y:1148 java/parse.y:1157
+#, fuzzy
+msgid "Missing class type term"
+msgstr "ishuri Ubwoko Ijambo"
+
+#: java/parse.y:1184
+#, fuzzy, c-format
+msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
+msgstr "Kugaragaza... in ishuri in Hejuru: urwego Inzego"
+
+#: java/parse.y:1313
+#, fuzzy
+msgid "Invalid interface type"
+msgstr "Ubwoko"
+
+#: java/parse.y:1482
+#, fuzzy
+msgid "An empty declaration is a deprecated feature that should not be used"
+msgstr "ubusa ni a Bitemewe. OYA"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
+#, fuzzy
+msgid "':' expected"
+msgstr "':'ntigatunguranye"
+
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
+#, fuzzy
+msgid "Invalid expression statement"
+msgstr "imvugo Inyandiko"
+
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
+msgid "'(' expected"
+msgstr "'(' ntigatunguranye"
+
+#: java/parse.y:1628
+#, fuzzy
+msgid "Missing term or ')'"
+msgstr "Ijambo Cyangwa"
+
+#: java/parse.y:1675
+#, fuzzy
+msgid "Missing or invalid constant expression"
+msgstr "Cyangwa Sibyo imvugo"
+
+#: java/parse.y:1696
+#, fuzzy
+msgid "Missing term and ')' expected"
+msgstr "Ijambo Na Ikitezwe:"
+
+#: java/parse.y:1735
+#, fuzzy
+msgid "Invalid control expression"
+msgstr "Igenzura imvugo"
+
+#: java/parse.y:1737 java/parse.y:1739
+#, fuzzy
+msgid "Invalid update expression"
+msgstr "Kuvugurura imvugo"
+
+#: java/parse.y:1764
+#, fuzzy
+msgid "Invalid init statement"
+msgstr "Inyandiko"
+
+#: java/parse.y:1964
+#, fuzzy
+msgid "Missing term or ')' expected"
+msgstr "Ijambo Cyangwa Ikitezwe:"
+
+#: java/parse.y:2007
+#, fuzzy
+msgid "'class' or 'this' expected"
+msgstr "'Cyangwa Ikitezwe:"
+
+#: java/parse.y:2009 java/parse.y:2011
+#, fuzzy
+msgid "'class' expected"
+msgstr "'Ikitezwe:"
+
+#: java/parse.y:2056
+#, fuzzy
+msgid "')' or term expected"
+msgstr "')'Cyangwa Ijambo Ikitezwe:"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: java/parse.y:2158 java/parse.y:2187
+#, fuzzy
+msgid "'[' expected"
+msgstr "'['ntigatunguranye"
+
+#: java/parse.y:2265
+#, fuzzy
+msgid "Field expected"
+msgstr "Ikitezwe:"
+
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
+#, fuzzy
+msgid "Missing term and ']' expected"
+msgstr "Ijambo Na Ikitezwe:"
+
+#: java/parse.y:2449
+#, fuzzy
+msgid "']' expected, invalid type expression"
+msgstr "']'Ikitezwe: Sibyo Ubwoko imvugo"
+
+#: java/parse.y:2452
+#, fuzzy
+msgid "Invalid type expression"
+msgstr "Ubwoko imvugo"
+
+#: java/parse.y:2564
+#, fuzzy
+msgid "Invalid reference type"
+msgstr "Indango Ubwoko"
+
+#: java/parse.y:3031
+#, fuzzy
+msgid "Constructor invocation must be first thing in a constructor"
+msgstr "Itangira in a"
+
+#: java/parse.y:3033
+msgid "Only constructors can invoke constructors"
+msgstr ""
+
+#: java/parse.y:3041
+#, fuzzy, c-format
+msgid ": %qs JDK1.1(TM) feature"
+msgstr ":%qs1."
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: java/parse.y:3121 java/parse.y:3123
+#, fuzzy, c-format
+msgid ""
+"%s.\n"
+"%s"
+msgstr "%s.%s"
+
+#: java/parse.y:3282
+#, fuzzy
+msgid "Missing return statement"
+msgstr "Garuka Inyandiko"
+
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
+#, fuzzy
+msgid "Unreachable statement"
+msgstr "Inyandiko"
+
+#: java/parse.y:3314
+#, fuzzy
+msgid "Can't access %s field %<%s.%s%> from %qs"
+msgstr "Umwanya Bivuye"
+
+#: java/parse.y:3383
+#, fuzzy, c-format
+msgid "%s %qs already defined in %s:%d"
+msgstr "%s%qsin"
+
+#: java/parse.y:3401
+#, fuzzy
+msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
+msgstr "ni in iyi Uburyo Na ku Umurongo"
+
+#: java/parse.y:3512
+#, fuzzy, c-format
+msgid "Interface %qs repeated"
+msgstr "byasubiyemo"
+
+#: java/parse.y:3542
+#, fuzzy, c-format
+msgid "%s name %qs clashes with imported type %qs"
+msgstr "%sIzina: Na: cyavuye ahandi/ cyatumijwe Ubwoko"
+
+#: java/parse.y:3574
+#, fuzzy
+msgid "Public %s %qs must be defined in a file called %<%s.java%>"
+msgstr "in a IDOSIYE java"
+
+#: java/parse.y:3589
+#, fuzzy, c-format
+msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
+msgstr "ishuri Inzego in Na Hejuru: urwego Inzego"
+
+#: java/parse.y:3670
+#, fuzzy, c-format
+msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
+msgstr "ishuri Izina: ni in iyi Ingano: imbere mo ishuri Gicurasi OYA i Byoroheje Izina: Nka Bya Inzego"
+
+#: java/parse.y:3712
+#, fuzzy
+msgid "Qualifier must be a reference"
+msgstr "a Indango"
+
+#: java/parse.y:3733
+#, c-format
+msgid "Cyclic inheritance involving %s"
+msgstr ""
+
+#: java/parse.y:3997
+#, fuzzy
+msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
+msgstr "Gukoresha Bya Incamake ni Incamake"
+
+#: java/parse.y:4152
+#, fuzzy, c-format
+msgid "Class %qs can't be declared both abstract and final"
+msgstr "Byombi Incamake Na"
+
+#: java/parse.y:4164
+#, fuzzy
+msgid "%<java.lang.Object%> can't extend anything"
+msgstr "%<java."
+
+#: java/parse.y:4406
+#, fuzzy
+msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
+msgstr "IMPINDURAGACIRO"
+
+#: java/parse.y:4470
+#, fuzzy, c-format
+msgid "Field %qs can't be static in inner class %qs unless it is final"
+msgstr "in imbere mo ishuri ni"
+
+#: java/parse.y:4716
+#, fuzzy, c-format
+msgid "Class %qs must be declared abstract to define abstract method %qs"
+msgstr "Incamake Kuri Kugaragaza... Incamake Uburyo"
+
+#: java/parse.y:4723
+#, fuzzy, c-format
+msgid "native method %qs can't be strictfp"
+msgstr "Uburyo"
+
+#: java/parse.y:4727
+#, fuzzy, c-format
+msgid "method %qs can't be transient"
+msgstr "Uburyo"
+
+#: java/parse.y:4730
+#, fuzzy, c-format
+msgid "method %qs can't be volatile"
+msgstr "Uburyo"
+
+#: java/parse.y:4780 java/parse.y:6533
+#, fuzzy, c-format
+msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
+msgstr "in imbere mo ishuri Bya Na Hejuru: urwego Inzego"
+
+#: java/parse.y:4946
+#, fuzzy, c-format
+msgid "%s method %qs can't have a body defined"
+msgstr "%sUburyo a Umubiri"
+
+#: java/parse.y:4957
+#, fuzzy, c-format
+msgid "Non native and non abstract method %qs must have a body defined"
+msgstr "Na Incamake Uburyo a Umubiri"
+
+#: java/parse.y:5028
+#, fuzzy, c-format
+msgid "%s: recursive invocation of constructor %qs"
+msgstr "%s:Bya"
+
+#: java/parse.y:5058
+#, fuzzy
+msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
+msgstr "Bya Rusange By'umwihariko Cyangwa Birinzwe Gicurasi"
+
+#: java/parse.y:5066
+#, fuzzy
+msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
+msgstr "Bya Cyangwa Gicurasi"
+
+#: java/parse.y:5156
+#, fuzzy, c-format
+msgid "Variable %qs is used more than once in the argument list of method %qs"
+msgstr "ni Birenzeho Rimwe in i Urutonde Bya Uburyo"
+
+#: java/parse.y:5240
+#, c-format
+msgid "%s %qs can't implement/extend %s %qs"
+msgstr ""
+
+#: java/parse.y:5274
+#, c-format
+msgid "Class %qs can't subclass %s %qs"
+msgstr ""
+
+#: java/parse.y:5283
+#, fuzzy, c-format
+msgid "Can't subclass final classes: %s"
+msgstr "Inzego"
+
+#: java/parse.y:5469
+#, fuzzy, c-format
+msgid "Cyclic class inheritance%s"
+msgstr "ishuri"
+
+#: java/parse.y:6184
+#, fuzzy, c-format
+msgid "Superclass %qs of class %qs not found"
+msgstr "Bya ishuri OYA Byabonetse"
+
+#: java/parse.y:6190
+#, fuzzy, c-format
+msgid "Type %qs not found in declaration of field %qs"
+msgstr "OYA Byabonetse in Bya Umwanya"
+
+#: java/parse.y:6196
+#, fuzzy, c-format
+msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
+msgstr "OYA Byabonetse in i Bya i Bya Uburyo"
+
+#: java/parse.y:6203
+#, fuzzy, c-format
+msgid "Type %qs not found in the declaration of the return type of method %qs"
+msgstr "OYA Byabonetse in i Bya i Garuka Ubwoko Bya Uburyo"
+
+#: java/parse.y:6209
+#, fuzzy, c-format
+msgid "Superinterface %qs of %s %qs not found"
+msgstr "Bya OYA Byabonetse"
+
+#: java/parse.y:6216
+#, fuzzy, c-format
+msgid "Type %qs not found in the declaration of the local variable %qs"
+msgstr "OYA Byabonetse in i Bya i IMPINDURAGACIRO"
+
+#: java/parse.y:6223
+#, fuzzy
+msgid "Class %qs not found in %<throws%>"
+msgstr "OYA Byabonetse in"
+
+#: java/parse.y:6280
+#, c-format
+msgid "Duplicate %s declaration %qs"
+msgstr ""
+
+#: java/parse.y:6354
+#, fuzzy
+msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
+msgstr "Kugaragaza... i Incamake Uburyo Bivuye Uburyo Cyangwa Incamake"
+
+#: java/parse.y:6510
+#, fuzzy
+msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
+msgstr "in a Bya ishuri java"
+
+#: java/parse.y:6554
+#, fuzzy, c-format
+msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
+msgstr "Na: a Rusange Uburyo in Itondekanya Kuri"
+
+#: java/parse.y:6568 java/parse.y:6795
+#, fuzzy, c-format
+msgid "Method %qs was defined with return type %qs in class %qs"
+msgstr "Na: Garuka Ubwoko in ishuri"
+
+#: java/parse.y:6585
+#, fuzzy, c-format
+msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
+msgstr "%sni in ishuri"
+
+#: java/parse.y:6599
+#, fuzzy, c-format
+msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
+msgstr "ku a Uburyo ni Urugero Uburyo in ishuri"
+
+#: java/parse.y:6622
+#, fuzzy, c-format
+msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
+msgstr "Kuri Birenzeho By'umwihariko ni OYA in ishuri"
+
+#: java/parse.y:6763
+#, fuzzy
+msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
+msgstr "Ivivuwe Irengayobora(-) ishuri in Irengayobora(-) a Bya Irengayobora(-) ku Bivuye ishuri"
+
+#: java/parse.y:6820
+#, fuzzy, c-format
+msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
+msgstr "Uburyo Bivuye Uburyo ni Na: a Garuka Ubwoko in"
+
+#: java/parse.y:6995
+#, fuzzy, c-format
+msgid "Class or interface %qs not found in import"
+msgstr "Cyangwa OYA Byabonetse in Kuzana"
+
+#: java/parse.y:7080
+#, fuzzy, c-format
+msgid "malformed .zip archive in CLASSPATH: %s"
+msgstr "Zipu in"
+
+#: java/parse.y:7151
+#, fuzzy, c-format
+msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
+msgstr "Gushaka Mburabuzi i IMPINDURAGACIRO Na i Kuri i Ubushyinguro"
+
+#: java/parse.y:7156
+#, fuzzy, c-format
+msgid "Package %qs not found in import"
+msgstr "OYA Byabonetse in Kuzana"
+
+#: java/parse.y:7253
+#, fuzzy, c-format
+msgid "Type %qs also potentially defined in package %qs"
+msgstr "in"
+
+#: java/parse.y:7398
+#, fuzzy, c-format
+msgid "Nested %s %s is %s; cannot be accessed from here"
+msgstr "ni birabonetse Bivuye"
+
+#: java/parse.y:7436
+#, fuzzy, c-format
+msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
+msgstr "Rusange Inzego Na in Ikindi birabonetse"
+
+#: java/parse.y:7474
+#, fuzzy
+msgid "Only %<final%> is allowed as a local variables modifier"
+msgstr "ni Nka a Ibihinduka"
+
+#: java/parse.y:9028
+#, fuzzy, c-format
+msgid "No constructor matching %qs found in class %qs"
+msgstr "Byabonetse in ishuri"
+
+#: java/parse.y:9528
+#, fuzzy, c-format
+msgid "Can't reference %qs before the superclass constructor has been called"
+msgstr "Indango Mbere i"
+
+#: java/parse.y:9582
+#, fuzzy, c-format
+msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
+msgstr "IMPINDURAGACIRO birabonetse Bivuye muri i imbere mo ishuri ni"
+
+#: java/parse.y:9587 java/parse.y:10050
+#, fuzzy, c-format
+msgid "Undefined variable %qs"
+msgstr "IMPINDURAGACIRO"
+
+#: java/parse.y:9598
+#, fuzzy, c-format
+msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
+msgstr "Ubwoko a Indango Kuri IMPINDURAGACIRO in ishuri"
+
+#: java/parse.y:9804 java/parse.y:10659
+#, fuzzy, c-format
+msgid "No enclosing instance for inner class %qs is in scope%s"
+msgstr "Urugero kugirango imbere mo ishuri ni in Ingano:"
+
+#: java/parse.y:9923 java/parse.y:12372
+#, fuzzy
+msgid "Keyword %<this%> used outside allowed context"
+msgstr "iyi Hanze Imvugiro"
+
+#: java/parse.y:9929 java/parse.y:10813
+#, fuzzy
+msgid "Can't reference %<this%> before the superclass constructor has been called"
+msgstr "Indango iyi Mbere i"
+
+#: java/parse.y:9945
+#, fuzzy
+msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
+msgstr "Gukoresha IMPINDURAGACIRO iyi Ubwoko si hanze Ubwoko Bya Ubwoko"
+
+#: java/parse.y:9978
+#, fuzzy
+msgid "Keyword %<super%> used outside allowed context"
+msgstr "hejuru Hanze Imvugiro"
+
+#: java/parse.y:10027
+#, fuzzy, c-format
+msgid "No variable %qs defined in class %qs"
+msgstr "IMPINDURAGACIRO in ishuri"
+
+#: java/parse.y:10032
+#, fuzzy, c-format
+msgid "Undefined variable or class name: %qs"
+msgstr "IMPINDURAGACIRO Cyangwa ishuri Izina:"
+
+#: java/parse.y:10103
+#, fuzzy, c-format
+msgid "Can't use type %qs as a qualifier"
+msgstr "Gukoresha Ubwoko Nka a"
+
+#: java/parse.y:10122
+#, fuzzy
+msgid "Attempt to reference field %qs in %<%s %s%>"
+msgstr "Kuri Indango Umwanya in"
+
+#: java/parse.y:10153
+#, fuzzy, c-format
+msgid "No variable %qs defined in type %qs"
+msgstr "IMPINDURAGACIRO in Ubwoko"
+
+#: java/parse.y:10237
+#, fuzzy
+msgid "Attempt to reference field %<new%> in a %qs"
+msgstr "Kuri Indango Umwanya Gishya in a"
+
+#: java/parse.y:10374
+#, fuzzy, c-format
+msgid "The class %qs has been deprecated"
+msgstr "ishuri Bitemewe."
+
+#: java/parse.y:10384
+#, fuzzy, c-format
+msgid "The %s %qs in class %qs has been deprecated"
+msgstr "in ishuri Bitemewe."
+
+#: java/parse.y:10501
+#, fuzzy, c-format
+msgid "Can't invoke a method on primitive type %qs"
+msgstr "a Uburyo ku Ubwoko"
+
+#: java/parse.y:10516
+#, fuzzy, c-format
+msgid "Can't make static reference to method %qs in interface %qs"
+msgstr "Ubwoko Indango Kuri Uburyo in"
+
+#: java/parse.y:10526 java/parse.y:10860
+#, fuzzy
+msgid "Can't make static reference to method %<%s %s%> in class %qs"
+msgstr "Ubwoko Indango Kuri Uburyo in ishuri"
+
+#: java/parse.y:10566
+#, fuzzy
+msgid "Can't invoke super constructor on java.lang.Object"
+msgstr "hejuru ku java"
+
+#: java/parse.y:10579 java/parse.y:14437
+#, fuzzy, c-format
+msgid "Class %qs not found in type declaration"
+msgstr "OYA Byabonetse in Ubwoko"
+
+#: java/parse.y:10591
+#, fuzzy, c-format
+msgid "Class %qs is an abstract class. It can't be instantiated"
+msgstr "ni Incamake ishuri"
+
+#: java/parse.y:10621
+#, fuzzy, c-format
+msgid "No method named %qs in scope"
+msgstr "Uburyo in Ingano:"
+
+#: java/parse.y:10732
+#, fuzzy
+msgid "Can't access %s %s %<%s.%s%> from %qs"
+msgstr "Bivuye"
+
+#: java/parse.y:11206
+#, fuzzy
+msgid "Can't find %s %<%s(%s)%> in type %qs%s"
+msgstr "Gushaka in Ubwoko"
+
+#: java/parse.y:11786
+#, fuzzy
+msgid "Constant expression required"
+msgstr "imvugo Bya ngombwa"
+
+#: java/parse.y:11799
+#, fuzzy
+msgid "Incompatible type for case. Can't convert %qs to %<int%>"
+msgstr "Ubwoko kugirango GUHINDURA Kuri INT"
+
+#: java/parse.y:11833
+#, fuzzy
+msgid "Duplicate case label: %<default%>"
+msgstr "Akarango Mburabuzi"
+
+#: java/parse.y:12181
+#, fuzzy
+msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
+msgstr "Ubwoko kugirango GUHINDURA Kuri java"
+
+#: java/parse.y:12352
+#, fuzzy, c-format
+msgid "missing static field %qs"
+msgstr "Ibuze Umwanya"
+
+#: java/parse.y:12357
+#, fuzzy, c-format
+msgid "not a static field %qs"
+msgstr "OYA a Umwanya"
+
+#: java/parse.y:12380
+#, fuzzy
+msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
+msgstr "Indango iyi Cyangwa hejuru Mbere i"
+
+#: java/parse.y:12400
+#, fuzzy, c-format
+msgid "No case for %s"
+msgstr "kugirango"
+
+#: java/parse.y:12830
+#, fuzzy
+msgid "Invalid left hand side of assignment"
+msgstr "Ibumoso: Bya Igenera"
+
+#: java/parse.y:12881
+#, fuzzy, c-format
+msgid "Incompatible type for %s. Can't convert %qs to %qs"
+msgstr "Ubwoko kugirango GUHINDURA Kuri"
+
+#: java/parse.y:12884
+#, fuzzy, c-format
+msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
+msgstr "Ubwoko kugirango Kuri GUHINDURA Kuri"
+
+#: java/parse.y:13057
+#, fuzzy, c-format
+msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
+msgstr "imvugo kugirango Ihindurangero Kuri"
+
+#: java/parse.y:13348
+#, fuzzy, c-format
+msgid "unregistered operator %s"
+msgstr "Mukoresha"
+
+#: java/parse.y:13497
+#, fuzzy
+msgid "Evaluating this expression will result in an arithmetic exception being thrown"
+msgstr "iyi imvugo Igisubizo in Irengayobora(-)"
+
+#: java/parse.y:13579
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
+msgstr "Ubwoko kugirango Kuri GUHINDURA Gusunika Intera Bivuye Kuri Umubare Wuzuye"
+
+#: java/parse.y:13584
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
+msgstr "Ubwoko kugirango GUHINDURA Gusunika Intera Bivuye Kuri Umubare Wuzuye"
+
+#: java/parse.y:13660
+#, fuzzy
+msgid "Invalid argument %qs for %<instanceof%>"
+msgstr "kugirango"
+
+#: java/parse.y:13687
+#, fuzzy, c-format
+msgid "Impossible for %qs to be instance of %qs"
+msgstr "kugirango Kuri Urugero Bya"
+
+#: java/parse.y:13818
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Can't convert %qs to %qs"
+msgstr "Ubwoko kugirango GUHINDURA Kuri"
+
+#: java/parse.y:14298
+#, fuzzy, c-format
+msgid "Invalid argument type %qs to %qs"
+msgstr "Ubwoko Kuri"
+
+#: java/parse.y:14528
+#, fuzzy, c-format
+msgid "Invalid cast from %qs to %qs"
+msgstr "Bivuye Kuri"
+
+#: java/parse.y:14575
+#, fuzzy
+msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
+msgstr "%<[]%>Byashyizweho Kuri Byashyizweho Kuri"
+
+#: java/parse.y:14588
+#, fuzzy
+msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
+msgstr "Ubwoko kugirango Kuri GUHINDURA Kuri INT"
+
+#: java/parse.y:14592
+#, fuzzy
+msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
+msgstr "Ubwoko kugirango GUHINDURA Kuri INT"
+
+#: java/parse.y:14663
+#, fuzzy
+msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
+msgstr "Ubwoko kugirango in Imbonerahamwe imvugo GUHINDURA Kuri INT"
+
+#: java/parse.y:14779
+#, fuzzy, c-format
+msgid "Invalid array initializer for non-array type %qs"
+msgstr "Imbonerahamwe kugirango Imbonerahamwe Ubwoko"
+
+#: java/parse.y:14866
+#, fuzzy, c-format
+msgid "Incompatible type for array. %s convert %qs to %qs"
+msgstr "Ubwoko kugirango Imbonerahamwe GUHINDURA Kuri"
+
+#: java/parse.y:14935
+#, fuzzy
+msgid "%<return%> inside instance initializer"
+msgstr "%<Garuka Mo Imbere Urugero"
+
+#: java/parse.y:14939
+#, fuzzy
+msgid "%<return%> inside static initializer"
+msgstr "%<Garuka Mo Imbere"
+
+#: java/parse.y:14945
+#, fuzzy
+msgid "%<return%> with%s value from %<%s %s%>"
+msgstr "%<Garuka Na: Agaciro Bivuye"
+
+#: java/parse.y:14952
+#, fuzzy
+msgid "%<return%> with value from constructor %qs"
+msgstr "%<Garuka Na: Agaciro Bivuye"
+
+#: java/parse.y:15017
+#, fuzzy
+msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
+msgstr "Ubwoko kugirango NIBA GUHINDURA Kuri Icyungo"
+
+#: java/parse.y:15050
+#, fuzzy, c-format
+msgid "Declaration of %qs shadows a previous label declaration"
+msgstr "Bya a Ibanjirije Akarango"
+
+#: java/parse.y:15055
+#, fuzzy, c-format
+msgid "This is the location of the previous declaration of label %qs"
+msgstr "ni i Ahantu Bya i Ibanjirije Bya Akarango"
+
+#: java/parse.y:15302
+#, fuzzy, c-format
+msgid "No label definition found for %qs"
+msgstr "Akarango Insobanuro Byabonetse kugirango"
+
+#: java/parse.y:15315
+#, fuzzy
+msgid "%<continue%> must be in loop"
+msgstr "%<urifuzagukomeza in"
+
+#: java/parse.y:15318
+#, fuzzy, c-format
+msgid "continue label %qs does not name a loop"
+msgstr "urifuzagukomeza Akarango OYA Izina: a"
+
+#: java/parse.y:15339
+#, fuzzy
+msgid "%<break%> must be in loop or switch"
+msgstr "%<itandukanya in Cyangwa Hindura"
+
+#: java/parse.y:15380
+#, fuzzy
+msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
+msgstr "Ubwoko kugirango GUHINDURA Kuri Icyungo"
+
+#: java/parse.y:15418
+#, fuzzy
+msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
+msgstr "Ubwoko kugirango Hindura GUHINDURA Kuri INT"
+
+#. The case_label_list is in reverse order, so print the
+#. outer label first.
+#: java/parse.y:15449
+#, fuzzy
+msgid "duplicate case label: %<"
+msgstr "Gusubiramo Akarango"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: java/parse.y:15450
+#, fuzzy
+msgid "%>"
+msgstr "%>"
+
+#: java/parse.y:15453
+#, fuzzy
+msgid "original label is here"
+msgstr "Umwimerere Akarango ni"
+
+#: java/parse.y:15670
+#, fuzzy
+msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
+msgstr "ishuri Ubwoko a Bya ishuri java"
+
+#: java/parse.y:15694
+#, fuzzy
+msgid "%<catch%> not reached because of the catch clause at line %d"
+msgstr "%<OYA Bya i ku Umurongo"
+
+#: java/parse.y:15761
+#, fuzzy
+msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
+msgstr "Ubwoko kugirango GUHINDURA Kuri java"
+
+#: java/parse.y:15820
+#, fuzzy
+msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
+msgstr "a Bya ishuri java"
+
+#: java/parse.y:15849
+#, fuzzy
+msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
+msgstr "Irengayobora(-) in Urugero OYA Byose in"
+
+#: java/parse.y:15870
+#, fuzzy
+msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
+msgstr "Irengayobora(-) ku Bya i S Bya i Funga"
+
+#: java/parse.y:15883
+#, fuzzy, c-format
+msgid "Checked exception %qs can't be thrown in initializer"
+msgstr "Irengayobora(-) in"
+
+#: java/parse.y:15887
+#, fuzzy
+msgid "Checked exception %qs isn't thrown from a %<try%> block"
+msgstr "Irengayobora(-) si Bivuye a Funga"
+
+#: java/parse.y:15893
+#, fuzzy
+msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
+msgstr "Irengayobora(-) BIHUYE Bya KIGEZWEHO S"
+
+#: java/parse.y:15948
+#, fuzzy, c-format
+msgid "Exception %qs can't be thrown in initializer"
+msgstr "in"
+
+#: java/parse.y:15953
+#, fuzzy
+msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
+msgstr "Cyangwa in i Bya"
+
+#: java/parse.y:16066
+#, fuzzy
+msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
+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"
+"."
+
+#: java/parse.y:16134
+#, fuzzy
+msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
+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"
+"."
+
+#: java/typeck.c:533
+#, fuzzy
+msgid "junk at end of signature string"
+msgstr "Umwanda ku Impera Bya Isinya Ikurikiranyanyuguti"
+
+#: java/verify-glue.c:408
+#, fuzzy, c-format
+msgid "verification failed: %s"
+msgstr "Byanze"
+
+#: java/verify-glue.c:410
+#, fuzzy, c-format
+msgid "verification failed at PC=%d: %s"
+msgstr "Byanze ku"
+
+#: java/verify-glue.c:494 java/verify.c:480
+#, fuzzy
+msgid "bad pc in exception_table"
+msgstr "in"
+
+#: java/verify.c:1476
+#, fuzzy, c-format
+msgid "unknown opcode %d@pc=%d during verification"
+msgstr "Kitazwi"
+
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
+#, fuzzy, c-format
+msgid "verification error at PC=%d"
+msgstr "Ikosa ku"
+
+#: java/parse.h:125
+#, fuzzy, c-format
+msgid "%s method can't be abstract"
+msgstr "%sUburyo Incamake"
+
+#: java/parse.h:129
+#, c-format
+msgid "Constructor can't be %s"
+msgstr ""
+
+#. Pedantic warning on obsolete modifiers. Note: when cl is NULL,
+#. flags was set artificially, such as for a interface method
+#: java/parse.h:161
+#, fuzzy, c-format
+msgid "Discouraged redundant use of %qs modifier in declaration of %s"
+msgstr "Gukoresha Bya in Bya"
+
+#: java/parse.h:168
+#, fuzzy, c-format
+msgid "Discouraged redundant use of %qs modifier in declaration of %s %qs"
+msgstr "Gukoresha Bya in Bya"
+
+#. Standard error messages
+#: java/parse.h:352
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Can't convert %qs to boolean"
+msgstr "Ubwoko kugirango GUHINDURA Kuri Icyungo"
+
+#: java/parse.h:357
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Can't convert %qs to numeric type"
+msgstr "Ubwoko kugirango GUHINDURA Kuri Bikurikije umubare Ubwoko"
+
+#: java/parse.h:365
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Explicit cast needed to convert %qs to integral"
+msgstr "Ubwoko kugirango Kuri GUHINDURA Kuri Umubare Wuzuye"
+
+#: java/parse.h:370
+#, fuzzy, c-format
+msgid "Incompatible type for %qs. Can't convert %qs to integral"
+msgstr "Ubwoko kugirango GUHINDURA Kuri Umubare Wuzuye"
+
+#: objc/objc-act.c:756
+#, fuzzy
+msgid "%<@end%> must appear in an @implementation context"
+msgstr "%<@Impera Kugaragara in Imvugiro"
+
+#: objc/objc-act.c:783
+#, fuzzy
+msgid "method declaration not in @interface context"
+msgstr "Uburyo OYA in Imvugiro"
+
+#: objc/objc-act.c:794
+#, fuzzy
+msgid "method definition not in @implementation context"
+msgstr "Uburyo Insobanuro OYA in Imvugiro"
+
+#: objc/objc-act.c:925
+#, fuzzy, c-format
+msgid "object does not conform to the %qs protocol"
+msgstr "Igikoresho OYA Kuri i Porotokole"
+
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
+#, fuzzy, c-format
+msgid "class %qs does not implement the %qs protocol"
+msgstr "ishuri OYA i Porotokole"
+
+#: objc/objc-act.c:1198
+#, fuzzy, c-format
+msgid "statically allocated instance of Objective-C class %qs"
+msgstr "Urugero Bya C ishuri"
+
+#: objc/objc-act.c:1269
+#, fuzzy, c-format
+msgid "protocol %qs has circular dependency"
+msgstr "Porotokole Cy'uruziga"
+
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
+#, fuzzy, c-format
+msgid "cannot find protocol declaration for %qs"
+msgstr "Gushaka Porotokole kugirango"
+
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
+#, fuzzy, c-format
+msgid "cannot find interface declaration for %qs"
+msgstr "Gushaka kugirango"
+
+#: objc/objc-act.c:1691
+#, fuzzy, c-format
+msgid "interface %qs does not have valid constant string layout"
+msgstr "OYA Byemewe Ikurikiranyanyuguti Imigaragarire"
+
+#: objc/objc-act.c:1696
+#, fuzzy, c-format
+msgid "cannot find reference tag for class %qs"
+msgstr "Gushaka Indango Itagi: kugirango ishuri"
+
+#: objc/objc-act.c:2374
+#, fuzzy
+msgid "%Hcreating selector for nonexistent method %qE"
+msgstr "%Hcreatingkugirango Uburyo"
+
+#: objc/objc-act.c:2563
+#, fuzzy, c-format
+msgid "%qs is not an Objective-C class name or alias"
+msgstr "%qsni OYA C ishuri Izina: Cyangwa Irihimbano"
+
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
+#, fuzzy
+msgid "Objective-C declarations may only appear in global scope"
+msgstr "C Gicurasi Kugaragara in Ingano:"
+
+#: objc/objc-act.c:2683
+#, fuzzy, c-format
+msgid "cannot find class %qs"
+msgstr "Gushaka ishuri"
+
+#: objc/objc-act.c:2685
+#, fuzzy, c-format
+msgid "class %qs already exists"
+msgstr "ishuri"
+
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
+#, fuzzy, c-format
+msgid "%qs redeclared as different kind of symbol"
+msgstr "%qsNka Bya IKIMENYETSO"
+
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
+#, fuzzy
+msgid "%Jprevious declaration of '%D'"
+msgstr "%JpreviousBya"
+
+#: objc/objc-act.c:2946
+#, fuzzy
+msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
+msgstr "Gukoresha Amarengayobora Kuri Gushoboza C Irengayobora(-)"
+
+#: objc/objc-act.c:3275
+#, fuzzy
+msgid "@catch parameter is not a known Objective-C class type"
+msgstr "@ni OYA a C ishuri Ubwoko"
+
+#: objc/objc-act.c:3291
+#, fuzzy
+msgid "exception of type %<%T%> will be caught"
+msgstr "Irengayobora(-) Bya Ubwoko"
+
+#: objc/objc-act.c:3293
+#, fuzzy
+msgid "%H by earlier handler for %<%T%>"
+msgstr "%Hku kugirango"
+
+#: objc/objc-act.c:3346
+#, fuzzy
+msgid "%<@try%> without %<@catch%> or %<@finally%>"
+msgstr "%<@Cyangwa"
+
+#: objc/objc-act.c:3393
+#, fuzzy
+msgid "%<@throw%> (rethrow) used outside of a @catch block"
+msgstr "%<@Hanze Bya a Funga"
+
+#: objc/objc-act.c:3758
+#, fuzzy
+msgid "%Jtype '%D' does not have a known size"
+msgstr "%Jtype'%D'OYA a Ingano"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: objc/objc-act.c:4271
+#, fuzzy
+msgid "%J%s %qs"
+msgstr "%J%s%qs"
+
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
+#, fuzzy
+msgid "inconsistent instance variable specification"
+msgstr "Urugero IMPINDURAGACIRO"
+
+#: objc/objc-act.c:5169
+#, fuzzy
+msgid "can not use an object as parameter to a method"
+msgstr "OYA Gukoresha Igikoresho Nka Kuri a Uburyo"
+
+#: objc/objc-act.c:5377
+#, fuzzy
+msgid "multiple %s named %<%c%s%> found"
+msgstr "Igikubo Byabonetse"
+
+#: objc/objc-act.c:5602
+#, fuzzy, c-format
+msgid "no super class declared in @interface for %qs"
+msgstr "Oya hejuru ishuri in kugirango"
+
+#: objc/objc-act.c:5645
+#, fuzzy
+msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
+msgstr "Byabonetse Bya in Porotokole S"
+
+#: objc/objc-act.c:5704
+#, fuzzy, c-format
+msgid "invalid receiver type %qs"
+msgstr "Sibyo Mwakirizi Ubwoko"
+
+#: objc/objc-act.c:5719
+#, fuzzy
+msgid "%<%c%s%> not found in protocol(s)"
+msgstr "%<%c%s%>OYA Byabonetse in Porotokole S"
+
+#: objc/objc-act.c:5733
+#, fuzzy
+msgid "%qs may not respond to %<%c%s%>"
+msgstr "%qsGicurasi OYA Kuri"
+
+#: objc/objc-act.c:5741
+#, fuzzy
+msgid "no %<%c%s%> method found"
+msgstr "Oya Uburyo Byabonetse"
+
+#: objc/objc-act.c:5747
+#, fuzzy
+msgid "(Messages without a matching method signature"
+msgstr "(a Uburyo Isinya"
+
+#: objc/objc-act.c:5748
+#, fuzzy
+msgid "will be assumed to return %<id%> and accept"
+msgstr "Kuri Garuka ID Na Kwemera"
+
+#: objc/objc-act.c:5749
+#, fuzzy
+msgid "%<...%> as arguments.)"
+msgstr "%<...%>Nka ingingo"
+
+#: objc/objc-act.c:5980
+#, c-format
+msgid "undeclared selector %qs"
+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:6022
+#, fuzzy, c-format
+msgid "instance variable %qs accessed in class method"
+msgstr "Urugero IMPINDURAGACIRO birabonetse in ishuri Uburyo"
+
+#: objc/objc-act.c:6234
+#, fuzzy
+msgid "duplicate declaration of method %<%c%s%>"
+msgstr "Gusubiramo Bya Uburyo"
+
+#: objc/objc-act.c:6279
+#, fuzzy
+msgid "duplicate interface declaration for category %<%s(%s)%>"
+msgstr "Gusubiramo kugirango Icyiciro"
+
+#: objc/objc-act.c:6306
+#, fuzzy, c-format
+msgid "illegal reference type specified for instance variable %qs"
+msgstr "Indango Ubwoko kugirango Urugero IMPINDURAGACIRO"
+
+#: objc/objc-act.c:6317
+#, fuzzy, c-format
+msgid "instance variable %qs has unknown size"
+msgstr "Urugero IMPINDURAGACIRO Kitazwi Ingano"
+
+#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
+#: objc/objc-act.c:6331
+#, fuzzy, c-format
+msgid "type %qs has virtual member functions"
+msgstr "Ubwoko Kitaboneka Imimaro"
+
+#: objc/objc-act.c:6332
+#, fuzzy, c-format
+msgid "illegal aggregate type %qs specified for instance variable %qs"
+msgstr "Ubwoko kugirango Urugero IMPINDURAGACIRO"
+
+#: objc/objc-act.c:6340
+#, fuzzy, c-format
+msgid "type %qs has a user-defined constructor"
+msgstr "Ubwoko a Ukoresha:"
+
+#: objc/objc-act.c:6342
+#, fuzzy, c-format
+msgid "type %qs has a user-defined destructor"
+msgstr "Ubwoko a Ukoresha:"
+
+#: objc/objc-act.c:6343
+#, fuzzy
+msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
+msgstr "C Na OYA kugirango C Imyanya"
+
+#: objc/objc-act.c:6433
+#, fuzzy, c-format
+msgid "instance variable %qs is declared private"
+msgstr "Urugero IMPINDURAGACIRO ni By'umwihariko"
+
+#: objc/objc-act.c:6442
+#, fuzzy, c-format
+msgid "instance variable %qs is %s; this will be a hard error in the future"
+msgstr "Urugero IMPINDURAGACIRO ni iyi a Ikomeye Ikosa in i"
+
+#: objc/objc-act.c:6449
+#, fuzzy, c-format
+msgid "instance variable %qs is declared %s"
+msgstr "Urugero IMPINDURAGACIRO ni"
+
+#: objc/objc-act.c:6459
+#, fuzzy
+msgid "static access to object of type %<id%>"
+msgstr "Kuri Igikoresho Bya Ubwoko ID"
+
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
+#, fuzzy, c-format
+msgid "incomplete implementation of class %qs"
+msgstr "Bya ishuri"
+
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
+#, fuzzy, c-format
+msgid "incomplete implementation of category %qs"
+msgstr "Bya Icyiciro"
+
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
+#, fuzzy
+msgid "method definition for %<%c%s%> not found"
+msgstr "Uburyo Insobanuro kugirango OYA Byabonetse"
+
+#: objc/objc-act.c:6620
+#, fuzzy, c-format
+msgid "%s %qs does not fully implement the %qs protocol"
+msgstr "%s%qsOYA i Porotokole"
+
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
+#, fuzzy
+msgid "%<@end%> missing in implementation context"
+msgstr "%<@Impera Ibuze in Imvugiro"
+
+#: objc/objc-act.c:6691
+#, fuzzy, c-format
+msgid "cannot find interface declaration for %qs, superclass of %qs"
+msgstr "Gushaka kugirango Bya"
+
+#: objc/objc-act.c:6718
+#, fuzzy, c-format
+msgid "reimplementation of class %qs"
+msgstr "Bya ishuri"
+
+#: objc/objc-act.c:6749
+#, fuzzy, c-format
+msgid "conflicting super class name %qs"
+msgstr "hejuru ishuri Izina:"
+
+#: objc/objc-act.c:6751
+#, fuzzy, c-format
+msgid "previous declaration of %qs"
+msgstr "Ibanjirije Bya"
+
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
+#, fuzzy, c-format
+msgid "duplicate interface declaration for class %qs"
+msgstr "Gusubiramo kugirango ishuri"
+
+#: objc/objc-act.c:7022
+#, fuzzy, c-format
+msgid "duplicate declaration for protocol %qs"
+msgstr "Gusubiramo kugirango Porotokole"
+
+#. Add a readable method name to the warning.
+#: objc/objc-act.c:7552
+#, fuzzy
+msgid "%J%s %<%c%s%>"
+msgstr "%J%s%<%c%s%>"
+
+#: objc/objc-act.c:7849
+#, fuzzy, c-format
+msgid "no super class declared in interface for %qs"
+msgstr "Oya hejuru ishuri in kugirango"
+
+#: objc/objc-act.c:7897
+#, fuzzy
+msgid "[super ...] must appear in a method context"
+msgstr "[hejuru Kugaragara in a Uburyo Imvugiro"
+
+#: objc/objc-act.c:8554
+#, fuzzy, c-format
+msgid "local declaration of %qs hides instance variable"
+msgstr "Bya Urugero IMPINDURAGACIRO"
+
+#: objc/objc-parse.y:2748
+#, fuzzy
+msgid "extra semicolon in method definition specified"
+msgstr "Birenga Akabago n'Akitso in Uburyo Insobanuro"
+
+#: treelang/tree1.c:278
+#, fuzzy
+msgid "%HDuplicate name %q.*s."
+msgstr "%HDuplicateIzina:. S."
+
+#: treelang/treetree.c:826
+#, fuzzy
+msgid "Global register variable %qD used in nested function."
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: treelang/treetree.c:830
+#, fuzzy
+msgid "Register variable %qD used in nested function."
+msgstr "IMPINDURAGACIRO in Umumaro"
+
+#: treelang/treetree.c:836
+#, fuzzy
+msgid "Address of global register variable %qD requested."
+msgstr "Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: treelang/treetree.c:841
+#, fuzzy
+msgid "Address of register variable %qD requested."
+msgstr "Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: options.c:943
+#, fuzzy
+msgid "Display this information"
+msgstr "iyi Ibisobanuro"
+
+#: options.c:949
+#, fuzzy
+msgid "--param <param>=<value>\tSet parameter <param> to value. See below for a complete list of parameters"
+msgstr "--Agaciro Kuri Agaciro munsi kugirango a Byuzuye Urutonde Bya Ibigenga"
+
+#: options.c:958
+#, fuzzy
+msgid "-A<question>=<answer>\tAssert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
+msgstr "-A i Kuri Mbere i Kuri"
+
+#: options.c:961
+#, fuzzy
+msgid "Do not discard comments"
+msgstr "OYA Kwanga Ibisobanuro"
+
+#: options.c:964
+#, fuzzy
+msgid "Do not discard comments in macro expansions"
+msgstr "OYA Kwanga Ibisobanuro in Makoro"
+
+#: options.c:967
+#, fuzzy
+msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1"
+msgstr "-Makoro a Makoro Na: Nka Agaciro Makoro ni ni Kuri 1."
+
+#: options.c:973
+#, fuzzy
+msgid "-F <dir>\tAdd <dir> to the end of the main framework include path "
+msgstr "-Kuri i Impera Bya i Gushyiramo Inzira"
+
+#: options.c:976
+#, fuzzy
+msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
+msgstr "-Umubare Na Ibyatanzwe Gitoya Umubare Bayite a Bidasanzwe Icyiciro ku"
+
+#: options.c:979
+#, fuzzy
+msgid "Print the name of header files as they are used"
+msgstr "i Izina: Bya Umutwempangano Idosiye Nka"
+
+#: options.c:985
+#, fuzzy
+msgid "-J<directory>\tPut MODULE files in 'directory'"
+msgstr "-bushyinguro Idosiye in"
+
+#: options.c:991
+#, fuzzy
+msgid "Generate make dependencies and compile"
+msgstr "Ubwoko Na Gukusanya"
+
+#: options.c:1000
+#, fuzzy
+msgid "Treat missing header files as generated files"
+msgstr "Ibuze Umutwempangano Idosiye Nka Idosiye"
+
+#: options.c:1006
+#, fuzzy
+msgid "Like -MD but ignore system header files"
+msgstr "Kwirengagiza Sisitemu Umutwempangano Idosiye"
+
+#: options.c:1015
+#, fuzzy
+msgid "-MQ <target>\tAdd a MAKE-quoted target"
+msgstr "-Intego a Intego"
+
+#: options.c:1021
+#, fuzzy
+msgid "-O<number>\tSet optimization level to <number>"
+msgstr "-Umubare urwego Kuri Umubare"
+
+#: options.c:1024
+#, fuzzy
+msgid "Optimize for space rather than speed"
+msgstr "kugirango Umwanya Umuvuduko"
+
+#: options.c:1027
+#, fuzzy
+msgid "Do not generate #line directives"
+msgstr "OYA Umurongo"
+
+#: options.c:1030
+#, fuzzy
+msgid "-U<macro>\tUndefine <macro>"
+msgstr "-U Makoro Makoro"
+
+#: options.c:1033
+#, fuzzy
+msgid "This switch is deprecated; use -Wextra instead"
+msgstr "Hindura ni Bitemewe. Gukoresha"
+
+#: options.c:1036
+#, fuzzy
+msgid "Warn about things that will change when compiling with an ABI-compliant compiler"
+msgstr "Ibyerekeye Guhindura>> Ryari: Na:"
+
+#: options.c:1039
+#, fuzzy
+msgid "Warn about returning structures, unions or arrays"
+msgstr "Ibyerekeye Cyangwa"
+
+#: options.c:1042
+#, fuzzy
+msgid "Warn about possible aliasing of dummy arguments"
+msgstr "Ibyerekeye Bya Ishusho ingingo"
+
+#: options.c:1048
+#, fuzzy
+msgid "Warn about casting functions to incompatible types"
+msgstr "Ibyerekeye Imimaro Kuri"
+
+#: options.c:1051
+#, fuzzy
+msgid "Warn about pointer casts which increase alignment"
+msgstr "Ibyerekeye Mweretsi Itunganya"
+
+#: options.c:1054
+#, fuzzy
+msgid "Warn about casts which discard qualifiers"
+msgstr "Ibyerekeye Kwanga"
+
+#: options.c:1057
+#, fuzzy
+msgid "Warn about subscripts whose type is \"char\""
+msgstr "Ibyerekeye bya Ubwoko ni INYUGUTI"
+
+#: options.c:1060
+#, fuzzy
+msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
+msgstr "Ibyerekeye Funga Ibisobanuro Na C Ibisobanuro Birenzeho Ifatika Umurongo"
+
+#: options.c:1063
+#, fuzzy
+msgid "Synonym for -Wcomment"
+msgstr "kugirango"
+
+#: options.c:1066
+#, fuzzy
+msgid "Warn about implicit conversion"
+msgstr "Ibyerekeye Ihindurangero"
+
+#: options.c:1069
+#, fuzzy
+msgid "Warn when all constructors and destructors are private"
+msgstr "Ryari: Byose Na By'umwihariko"
+
+#: options.c:1072
+#, fuzzy
+msgid "Warn when a declaration is found after a statement"
+msgstr "Ryari: a ni Byabonetse Nyuma a Inyandiko"
+
+#: options.c:1075
+#, fuzzy
+msgid "Warn if a deprecated compiler feature, class, method, or field is used"
+msgstr "NIBA a Bitemewe. ishuri Uburyo Cyangwa Umwanya ni"
+
+#: options.c:1078
+#, fuzzy
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr "Ibyerekeye Bya Ikiranga Bitemewe."
+
+#: options.c:1081
+#, fuzzy
+msgid "Warn when an optimization pass is disabled"
+msgstr "Ryari: ni Yahagaritswe"
+
+#: options.c:1084
+#, fuzzy
+msgid "Warn about compile-time integer division by zero"
+msgstr "Ibyerekeye Gukusanya Igihe Umubare wuzuye ku Zeru"
+
+#: options.c:1087
+#, fuzzy
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "Ibyerekeye Bya C IMISUSIRE"
+
+#: options.c:1090
+#, fuzzy
+msgid "Warn about stray tokens after #elif and #endif"
+msgstr "Ibyerekeye Nyuma Na"
+
+#: options.c:1093
+#, fuzzy
+msgid "Treat all warnings as errors"
+msgstr "Byose Iburira Nka Amakosa"
+
+#: options.c:1096
+#, fuzzy
+msgid "Make implicit function declarations an error"
+msgstr "Umumaro Ikosa"
+
+#: options.c:1099
+#, fuzzy
+msgid "Print extra (possibly unwanted) warnings"
+msgstr "Birenga Iburira"
+
+#: options.c:1102
+#, fuzzy
+msgid "Warn if deprecated empty statements are found"
+msgstr "NIBA Bitemewe. ubusa Byabonetse"
+
+#: options.c:1105
+#, fuzzy
+msgid "Exit on the first error occurred"
+msgstr "ku i Itangira Ikosa"
+
+#: options.c:1108
+#, fuzzy
+msgid "Warn if testing floating point numbers for equality"
+msgstr "NIBA Bihindagurika Akadomo Imibare kugirango"
+
+#: options.c:1111
+#, fuzzy
+msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
+msgstr "Ibyerekeye Imiterere Ikurikiranyanyuguti"
+
+#: options.c:1114
+#, fuzzy
+msgid "Warn if passing too many arguments to a function for its format string"
+msgstr "NIBA ingingo Kuri a Umumaro kugirango Imiterere Ikurikiranyanyuguti"
+
+#: options.c:1117
+#, fuzzy
+msgid "Warn about format strings that are not literals"
+msgstr "Ibyerekeye Imiterere Ikurikiranyanyuguti OYA"
+
+#: options.c:1120
+#, fuzzy
+msgid "Warn about possible security problems with format functions"
+msgstr "Ibyerekeye Umutekano Na: Imiterere Imimaro"
+
+#: options.c:1123
+#, fuzzy
+msgid "Warn about strftime formats yielding 2-digit years"
+msgstr "Ibyerekeye Imiterere 2. IMYAKA"
+
+#: options.c:1126
+#, fuzzy
+msgid "Warn about zero-length formats"
+msgstr "Ibyerekeye Zeru Uburebure Imiterere"
+
+#: options.c:1135
+#, fuzzy
+msgid "Warn about implicit function declarations"
+msgstr "Ibyerekeye Umumaro"
+
+#: options.c:1138
+#, fuzzy
+msgid "Warn when a declaration does not specify a type"
+msgstr "Ryari: a OYA a Ubwoko"
+
+#: options.c:1141
+#, fuzzy
+msgid "Warn about calls with implicit interface"
+msgstr "Ibyerekeye Amahamagara: Na:"
+
+#: options.c:1144
+#, fuzzy
+msgid "Deprecated. This switch has no effect."
+msgstr "Hindura Oya INGARUKA"
+
+#: options.c:1147
+#, fuzzy
+msgid "Warn about variables which are initialized to themselves."
+msgstr "Ibyerekeye Ibihinduka Kuri"
+
+#: options.c:1150
+#, fuzzy
+msgid "Warn when an inlined function cannot be inlined"
+msgstr "Ryari: Umumaro"
+
+#: options.c:1153
+#, fuzzy
+msgid "Warn about invalid uses of the \"offsetof\" macro"
+msgstr "Ibyerekeye Sibyo Bya i Makoro"
+
+#: options.c:1156
+#, fuzzy
+msgid "Warn about PCH files that are found but not used"
+msgstr "Ibyerekeye Idosiye Byabonetse OYA"
+
+#: options.c:1159
+#, fuzzy
+msgid "-Wlarger-than-<number>\tWarn if an object is larger than <number> bytes"
+msgstr "-Umubare NIBA Igikoresho ni Kinini Umubare Bayite"
+
+#: options.c:1162
+#, fuzzy
+msgid "Warn about truncated source lines"
+msgstr "Ibyerekeye Inkomoko Imirongo"
+
+#: options.c:1165
+#, fuzzy
+msgid "Do not warn about using \"long long\" when -pedantic"
+msgstr "OYA Ibyerekeye ikoresha Ryari:"
+
+#: options.c:1168
+#, fuzzy
+msgid "Warn about suspicious declarations of \"main\""
+msgstr "Ibyerekeye Bya"
+
+#: options.c:1171
+#, fuzzy
+msgid "Warn about possibly missing braces around initializers"
+msgstr "Ibyerekeye Ibuze Ingirwadusodeko"
+
+#: options.c:1174
+#, fuzzy
+msgid "Warn about global functions without previous declarations"
+msgstr "Ibyerekeye Imimaro Ibanjirije"
+
+#: options.c:1177
+#, fuzzy
+msgid "Warn about missing fields in struct initializers"
+msgstr "Ibyerekeye Ibuze Imyanya in"
+
+#: options.c:1180
+#, fuzzy
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr "Ibyerekeye Imimaro kugirango Imiterere Ibiranga"
+
+#: options.c:1183
+#, fuzzy
+msgid "Warn about user-specified include directories that do not exist"
+msgstr "Ibyerekeye Ukoresha: Gushyiramo ububiko bw'amaderese OYA"
+
+#: options.c:1186
+#, fuzzy
+msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
+msgstr "Ibyerekeye Imimaro kugirango Ikiranga"
+
+#: options.c:1189
+#, fuzzy
+msgid "Warn about global functions without prototypes"
+msgstr "Ibyerekeye Imimaro"
+
+#: options.c:1192
+#, fuzzy
+msgid "Warn about use of multi-character character constants"
+msgstr "Ibyerekeye Gukoresha Bya Inyuguti Inyuguti"
+
+#: options.c:1195
+#, fuzzy
+msgid "Warn about \"extern\" declarations not at file scope"
+msgstr "Ibyerekeye OYA ku IDOSIYE Ingano:"
+
+#: options.c:1198
+#, fuzzy
+msgid "Warn when non-templatized friend functions are declared within a template"
+msgstr "Ryari: Imimaro muri a Inyandikorugero"
+
+#: options.c:1201
+#, fuzzy
+msgid "Warn about non-virtual destructors"
+msgstr "Ibyerekeye Kitaboneka"
+
+#: options.c:1204
+#, fuzzy
+msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL"
+msgstr "Ibyerekeye Kuri Siloti cy/ byagarajwe Nka"
+
+#: options.c:1207
+#, fuzzy
+msgid "Warn about usage of non-standard intrinsics"
+msgstr "Ibyerekeye Ikoresha: Bya Bisanzwe"
+
+#: options.c:1210
+#, fuzzy
+msgid "Warn if a C-style cast is used in a program"
+msgstr "NIBA a C IMISUSIRE ni in a Porogaramu"
+
+#: options.c:1213
+#, fuzzy
+msgid "Warn if an old-style parameter definition is used"
+msgstr "NIBA ki/ bishaje IMISUSIRE Insobanuro ni"
+
+#: options.c:1216
+#, fuzzy
+msgid "Warn if .class files are out of date"
+msgstr "NIBA ishuri Idosiye Inyuma Bya Itariki"
+
+#: options.c:1219
+#, fuzzy
+msgid "Warn about overloaded virtual function names"
+msgstr "Ibyerekeye Kitaboneka Umumaro Amazina"
+
+#: options.c:1222
+#, fuzzy
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr "Ryari: i Ikiranga Oya INGARUKA ku Imigaragarire"
+
+#: options.c:1225
+#, fuzzy
+msgid "Warn when padding is required to align structure members"
+msgstr "Ryari: Wuzuza: ni Bya ngombwa Kuri Gutondeka Imiterere"
+
+#: options.c:1228
+#, fuzzy
+msgid "Warn about possibly missing parentheses"
+msgstr "Ibyerekeye Ibuze"
+
+#: options.c:1231
+#, fuzzy
+msgid "Warn when converting the type of pointers to member functions"
+msgstr "Ryari: Guhindura.... i Ubwoko Bya Kuri Imimaro"
+
+#: options.c:1234
+#, fuzzy
+msgid "Warn about function pointer arithmetic"
+msgstr "Ibyerekeye Umumaro Mweretsi"
+
+#: options.c:1237
+#, fuzzy
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr "Ryari: a Mweretsi in in Igenera"
+
+#: options.c:1240
+#, fuzzy
+msgid "Warn if inherited methods are unimplemented"
+msgstr "NIBA"
+
+#: options.c:1243
+#, fuzzy
+msgid "Warn about multiple declarations of the same object"
+msgstr "Ibyerekeye Igikubo Bya i Igikoresho"
+
+#: options.c:1246
+#, fuzzy
+msgid "Warn if modifiers are specified when not necessary"
+msgstr "NIBA Ryari: OYA"
+
+#: options.c:1249
+#, fuzzy
+msgid "Warn when the compiler reorders code"
+msgstr "Ryari: i ITEGEKONGENGA"
+
+#: options.c:1252
+#, fuzzy
+msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
+msgstr "a Garuka Ubwoko Kuri INT C Cyangwa Ibyerekeye Garuka C"
+
+#: options.c:1255
+#, fuzzy
+msgid "Warn if a selector has multiple methods"
+msgstr "NIBA a Igikubo"
+
+#: options.c:1258
+#, fuzzy
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Ibyerekeye Bya Akadomo"
+
+#: options.c:1261
+#, fuzzy
+msgid "Warn when one local variable shadows another"
+msgstr "Ryari: IMPINDURAGACIRO"
+
+#: options.c:1264
+#, fuzzy
+msgid "Warn about signed-unsigned comparisons"
+msgstr "Ibyerekeye Bitashizweho umukono"
+
+#: options.c:1267
+#, fuzzy
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "Ryari: Bivuye Bitashizweho umukono Kuri"
+
+#: options.c:1270 options.c:1273
+#, fuzzy
+msgid "Warn about code which might break strict aliasing rules"
+msgstr "Ibyerekeye ITEGEKONGENGA itandukanya"
+
+#: options.c:1276
+#, fuzzy
+msgid "Warn about unprototyped function declarations"
+msgstr "Ibyerekeye Umumaro"
+
+#: options.c:1279
+#, fuzzy
+msgid "Warn about \"suspicious\" constructs"
+msgstr "Ibyerekeye"
+
+#: options.c:1282
+#, fuzzy
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "Ibyerekeye Na: Oya Mburabuzi Ibuze a"
+
+#: options.c:1285
+#, fuzzy
+msgid "Warn about enumerated switches missing a \"default:\" statement"
+msgstr "Ibyerekeye Ibuze a Mburabuzi Inyandiko"
+
+#: options.c:1288
+#, fuzzy
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Ibyerekeye Byose Ibuze a"
+
+#: options.c:1291
+#, fuzzy
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "Ryari: imyitwarire Bivuye"
+
+#: options.c:1294
+#, fuzzy
+msgid "Do not suppress warnings from system headers"
+msgstr "OYA Iburira Bivuye Sisitemu Imitwe"
+
+#: options.c:1297
+#, fuzzy
+msgid "Warn about features not present in traditional C"
+msgstr "Ibyerekeye Ibiranga OYA in C"
+
+#: options.c:1300
+#, fuzzy
+msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
+msgstr "NIBA i Igisobanuro Bya i Porogaramu"
+
+#: options.c:1303
+#, fuzzy
+msgid "Warn about @selector()s without previously declared methods"
+msgstr "Ibyerekeye S"
+
+#: options.c:1306
+#, fuzzy
+msgid "Warn if an undefined macro is used in an #if directive"
+msgstr "NIBA kidasobanuye Makoro ni in NIBA"
+
+#: options.c:1309
+#, fuzzy
+msgid "Warn about underflow of numerical constant expressions"
+msgstr "Ibyerekeye Bya Mbarika"
+
+#: options.c:1312
+#, fuzzy
+msgid "Warn about uninitialized automatic variables"
+msgstr "Ibyerekeye Itatangijwe Byikoresha Ibihinduka"
+
+#: options.c:1315
+#, fuzzy
+msgid "Warn about unrecognized pragmas"
+msgstr "Ibyerekeye"
+
+#: options.c:1318
+#, fuzzy
+msgid "Warn about code that will never be executed"
+msgstr "Ibyerekeye ITEGEKONGENGA Nta narimwe"
+
+#: options.c:1321
+#, fuzzy
+msgid "Enable all -Wunused- warnings"
+msgstr "Byose Iburira"
+
+#: options.c:1324
+#, fuzzy
+msgid "Warn when a function is unused"
+msgstr "Ryari: a Umumaro ni Kidakoreshwa"
+
+#: options.c:1327 options.c:1330
+#, fuzzy
+msgid "Warn when a label is unused"
+msgstr "Ryari: a Akarango ni Kidakoreshwa"
+
+#: options.c:1333
+#, fuzzy
+msgid "Warn about macros defined in the main file that are not used"
+msgstr "Ibyerekeye Makoro in i IDOSIYE OYA"
+
+#: options.c:1336
+#, fuzzy
+msgid "Warn when a function parameter is unused"
+msgstr "Ryari: a Umumaro ni Kidakoreshwa"
+
+#: options.c:1339
+#, fuzzy
+msgid "Warn when an expression value is unused"
+msgstr "Ryari: imvugo Agaciro ni Kidakoreshwa"
+
+#: options.c:1342
+#, fuzzy
+msgid "Warn when a variable is unused"
+msgstr "Ryari: a IMPINDURAGACIRO ni Kidakoreshwa"
+
+#: options.c:1345
+#, fuzzy
+msgid "Do not warn about using variadic macros when -pedantic"
+msgstr "OYA Ibyerekeye ikoresha Makoro Ryari:"
+
+#: options.c:1348
+#, fuzzy
+msgid "Give strings the type \"array of char\""
+msgstr "Ikurikiranyanyuguti i Ubwoko Imbonerahamwe Bya INYUGUTI"
+
+#: options.c:1351
+#, fuzzy
+msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
+msgstr "A Impuzanyito kugirango STD a Verisiyo Bya Na: STD"
+
+#: options.c:1354
+#, fuzzy
+msgid "-aux-info <file>\tEmit declaration information into <file>"
+msgstr "-Ibisobanuro IDOSIYE Ibisobanuro IDOSIYE"
+
+#: options.c:1366
+#, fuzzy
+msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
+msgstr "-D Bivuye Bya i"
+
+#: options.c:1369
+#, fuzzy
+msgid "Set the default real and integer kinds to double precision"
+msgstr "i Mburabuzi Na Umubare wuzuye Kuri MAHARAKUBIRI"
+
+#: options.c:1372
+#, fuzzy
+msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
+msgstr "-IDOSIYE i IDOSIYE Kuri kugirango"
+
+#: options.c:1375
+#, fuzzy
+msgid "--CLASSPATH\tDeprecated; use --classpath instead"
+msgstr "--Gukoresha Inzirashuri"
+
+#: options.c:1378
+#, fuzzy
+msgid "Generate position-independent code if possible (large mode)"
+msgstr "Ibirindiro ITEGEKONGENGA NIBA Binini Ubwoko"
+
+#: options.c:1381
+#, fuzzy
+msgid "Generate position-independent code for executables if possible (large mode)"
+msgstr "Ibirindiro ITEGEKONGENGA kugirango NIBA Binini Ubwoko"
+
+#: options.c:1387
+#, fuzzy
+msgid "Enforce class member access control semantics"
+msgstr "ishuri Igenzura"
+
+#: options.c:1390
+#, fuzzy
+msgid "Align the start of functions"
+msgstr "i Gutangira Bya Imimaro"
+
+#: options.c:1396
+#, fuzzy
+msgid "Align labels which are only reached by jumping"
+msgstr "Uturango... ku"
+
+#: options.c:1402
+#, fuzzy
+msgid "Align all labels"
+msgstr "Byose Uturango..."
+
+#: options.c:1408
+#, fuzzy
+msgid "Align the start of loops"
+msgstr "i Gutangira Bya"
+
+#: options.c:1417
+#, fuzzy
+msgid "Change when template instances are emitted"
+msgstr "Ryari: Inyandikorugero Ingero"
+
+#: options.c:1420
+#, fuzzy
+msgid "Specify that arguments may alias each other and globals"
+msgstr "ingingo Gicurasi Irihimbano Ikindi Na"
+
+#: options.c:1423
+#, fuzzy
+msgid "Assume arguments may alias globals but not each other"
+msgstr "ingingo Gicurasi Irihimbano OYA Ikindi"
+
+#: options.c:1426
+#, fuzzy
+msgid "Assume arguments alias neither each other nor globals"
+msgstr "ingingo Irihimbano Ikindi"
+
+#: options.c:1429
+#, fuzzy
+msgid "Recognize the \"asm\" keyword"
+msgstr "i Ijambo- banze"
+
+#: options.c:1432
+#, fuzzy
+msgid "Permit the use of the assert keyword"
+msgstr "i Gukoresha Bya i Ijambo- banze"
+
+#: options.c:1441
+#, fuzzy
+msgid "Generate unwind tables that are exact at each instruction boundary"
+msgstr "Imbonerahamwe NYACYO ku"
+
+#: options.c:1444
+#, fuzzy
+msgid "--bootclasspath=<path>\tReplace system path"
+msgstr "--Inzira Sisitemu Inzira"
+
+#: options.c:1447
+#, fuzzy
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "ITEGEKONGENGA Kuri Kugenzura... Mbere gushyiraho umugereka"
+
+#: options.c:1450
+#, fuzzy
+msgid "Replace add, compare, branch with branch on count register"
+msgstr "Kongeramo Kugereranya# Na: ku IBARA Kwiyandikisha"
+
+#: options.c:1453
+#, fuzzy
+msgid "Use profiling information for branch probabilities"
+msgstr "Ibisobanuro kugirango"
+
+#: options.c:1456
+#, fuzzy
+msgid "Perform branch target load optimization before prologue / epilogue threading"
+msgstr "Intego Ibirimo Mbere"
+
+#: options.c:1459
+#, fuzzy
+msgid "Perform branch target load optimization after prologue / epilogue threading"
+msgstr "Intego Ibirimo Nyuma"
+
+#: options.c:1462
+#, fuzzy
+msgid "Restrict target load migration not to re-use registers in any basic block"
+msgstr "Intego Ibirimo OYA Kuri Gukoresha in BASIC Funga"
+
+#: options.c:1465
+#, fuzzy
+msgid "Recognize built-in functions"
+msgstr "in Imimaro"
+
+#: options.c:1471
+#, fuzzy
+msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
+msgstr "-Kwiyandikisha Kwiyandikisha Nka Kwambukiranya Imimaro"
+
+#: options.c:1474
+#, fuzzy
+msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
+msgstr "-Kwiyandikisha Kwiyandikisha Nka ku Umumaro Amahamagara:"
+
+#: options.c:1477
+#, fuzzy
+msgid "Save registers around function calls"
+msgstr "Kubika Umumaro Amahamagara:"
+
+#: options.c:1480
+#, fuzzy
+msgid "Check the return value of new"
+msgstr "i Garuka Agaciro Bya Gishya"
+
+#: options.c:1483
+#, fuzzy
+msgid "Generate checks for references to NULL"
+msgstr "kugirango Indango Kuri"
+
+#: options.c:1486
+#, fuzzy
+msgid "--classpath=<path>\tSet class path"
+msgstr "--Inzirashuri Inzira ishuri Inzira"
+
+#: options.c:1489
+#, fuzzy
+msgid "Do not put uninitialized globals in the common section"
+msgstr "OYA Gushyira Itatangijwe in i Icyiciro"
+
+#: options.c:1495
+#, fuzzy
+msgid "Allow the arguments of the '?' operator to have different types"
+msgstr "i ingingo Bya i Mukoresha Kuri"
+
+#: options.c:1498
+#, fuzzy
+msgid "Reduce the size of object files"
+msgstr "i Ingano Bya Igikoresho Idosiye"
+
+#: options.c:1501
+#, fuzzy
+msgid "Make string literals \"const char[]\" not \"char[]\""
+msgstr "Ikurikiranyanyuguti INYUGUTI OYA INYUGUTI"
+
+#: options.c:1504
+#, fuzzy
+msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
+msgstr "-Ikurikiranyanyuguti ishuri Izina: ishuri Izina: kugirango Ikurikiranyanyuguti"
+
+#: options.c:1507
+#, fuzzy
+msgid "Perform a register copy-propagation optimization pass"
+msgstr "a Kwiyandikisha Gukoporora"
+
+#: options.c:1510
+#, fuzzy
+msgid "Perform cross-jumping optimization"
+msgstr "Kwambukiranya"
+
+#: options.c:1513
+#, fuzzy
+msgid "When running CSE, follow jumps to their targets"
+msgstr "Kuri"
+
+#: options.c:1516
+msgid "When running CSE, follow conditional jumps"
+msgstr ""
+
+#: options.c:1519
+#, fuzzy
+msgid "Omit range reduction step when performing complex division"
+msgstr "Urutonde Intera Ryari: ITSINDA RY'IMIBARE C"
+
+#: options.c:1522
+#, fuzzy
+msgid "Place data items into their own section"
+msgstr "Ibyatanzwe Icyiciro"
+
+#: options.c:1525
+#, fuzzy
+msgid "Inline member functions by default"
+msgstr "Imimaro ku Mburabuzi"
+
+#: options.c:1528
+#, fuzzy
+msgid "Defer popping functions args from stack until later"
+msgstr "Imimaro Bivuye"
+
+#: options.c:1531
+#, fuzzy
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr "Kuri Kuzuza Gutinda Siloti Bya Amabwiriza"
+
+#: options.c:1534
+#, fuzzy
+msgid "Delete useless null pointer checks"
+msgstr "NTAGIHARI Mweretsi"
+
+#: options.c:1537
+#, fuzzy
+msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
+msgstr "-Garagaza Ahantu Rimwe buri Umurongo Kuri Inkomoko Ahantu ku i Itangiriro Bya Umurongo"
+
+#: options.c:1546
+#, fuzzy
+msgid "Allow dollar signs in entity names"
+msgstr "IDOLARI in Amazina"
+
+#: options.c:1549
+#, fuzzy
+msgid "Permit '$' as an identifier character"
+msgstr "Nka Ikiranga Inyuguti"
+
+#: options.c:1552
+#, fuzzy
+msgid "-fdump-<type>\tDump various compiler internals to a file"
+msgstr "-Ubwoko Kuri a IDOSIYE"
+
+#: options.c:1555
+#, fuzzy
+msgid "Display the code tree after parsing."
+msgstr "i ITEGEKONGENGA Nyuma"
+
+#: options.c:1558
+#, fuzzy
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr "Ibisohoka Bya Imibare Na Umurongo Umubare Ibisobanuro in"
+
+#: options.c:1564
+#, fuzzy
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "Gusubiramo"
+
+#: options.c:1567 options.c:1570
+#, fuzzy
+msgid "Perform unused type elimination in debug info"
+msgstr "Kidakoreshwa Ubwoko in Kosora amakosa Ibisobanuro"
+
+#: options.c:1573
+#, fuzzy
+msgid "Output a class file"
+msgstr "a ishuri IDOSIYE"
+
+#: options.c:1576
+#, fuzzy
+msgid "Alias for -femit-class-file"
+msgstr "kugirango ishuri IDOSIYE"
+
+#: options.c:1585
+#, fuzzy
+msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
+msgstr "--Imisobekere: Imisobekere: Iyinjiza Imisobekere: Bivuye Umwanya"
+
+#: options.c:1588
+#, fuzzy
+msgid "Generate code to check exception specifications"
+msgstr "ITEGEKONGENGA Kuri Kugenzura... Irengayobora(-)"
+
+#: options.c:1594
+#, fuzzy
+msgid "Enable exception handling"
+msgstr "Irengayobora(-)"
+
+#: options.c:1597
+#, fuzzy
+msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
+msgstr "-Byose Ikurikiranyanyuguti Na Inyuguti Kuri Inyuguti Gushyiraho"
+
+#: options.c:1600
+#, fuzzy
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "a Umubare Bya"
+
+#: options.c:1603
+#, fuzzy
+msgid "--extdirs=<path>\tSet the extension directory path"
+msgstr "--Inzira i Umugereka bushyinguro Inzira"
+
+#: options.c:1612
+#, fuzzy
+msgid "Input file is a file with a list of filenames to compile"
+msgstr "IDOSIYE ni a IDOSIYE Na: a Urutonde Bya Kuri Gukusanya"
+
+#: options.c:1615
+#, fuzzy
+msgid "Assume no NaNs or infinities are generated"
+msgstr "Oya Cyangwa"
+
+#: options.c:1618
+#, fuzzy
+msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
+msgstr "-Kwiyandikisha Kwiyandikisha Nka Kuri i"
+
+#: options.c:1621
+#, fuzzy
+msgid "Assume that the source file is fixed form"
+msgstr "i Inkomoko IDOSIYE ni BIHAMYE Ifishi"
+
+#: options.c:1624
+#, fuzzy
+msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
+msgstr "-Umurongo Uburebure N N Nka Inyuguti Umurongo Ubugari in BIHAMYE Ubwoko"
+
+#: options.c:1627
+#, fuzzy
+msgid "Allow arbitrary character line width in fixed mode"
+msgstr "Inyuguti Umurongo Ubugari in BIHAMYE Ubwoko"
+
+#: options.c:1630
+#, fuzzy
+msgid "Don't allocate floats and doubles in extended-precision registers"
+msgstr "Na in Byongerewe..."
+
+#: options.c:1633
+#, fuzzy
+msgid "Scope of for-init-statement variables is local to the loop"
+msgstr "Bya kugirango Inyandiko Ibihinduka ni Kuri i"
+
+#: options.c:1636
+#, fuzzy
+msgid "Copy memory address constants into registers before use"
+msgstr "Ububiko Aderesi Mbere Gukoresha"
+
+#: options.c:1639
+#, fuzzy
+msgid "Always check for non gcj generated classes archives"
+msgstr "Kugenzura... kugirango Inzego Ubushyinguro"
+
+#: options.c:1642
+#, fuzzy
+msgid "Copy memory operands into registers before use"
+msgstr "Ububiko Mbere Gukoresha"
+
+#: options.c:1645
+#, fuzzy
+msgid "Assume that the source file is free form"
+msgstr "i Inkomoko IDOSIYE ni Kigenga Ifishi"
+
+#: options.c:1648
+#, fuzzy
+msgid "Do not assume that standard C libraries and \"main\" exist"
+msgstr "OYA Bisanzwe C Amasomero Na"
+
+#: options.c:1651
+#, fuzzy
+msgid "Allow function addresses to be held in registers"
+msgstr "Umumaro Amaderesi Kuri in"
+
+#: options.c:1654
+#, fuzzy
+msgid "Place each function into its own section"
+msgstr "Umumaro Icyiciro"
+
+#: options.c:1657
+msgid "Perform global common subexpression elimination"
+msgstr ""
+
+#: options.c:1660
+#, fuzzy
+msgid "Perform global common subexpression elimination after register allocation"
+msgstr "Nyuma Kwiyandikisha"
+
+#: options.c:1663
+#, fuzzy
+msgid "Perform redundant load after store elimination in global common subexpression"
+msgstr "Ibirimo Nyuma in"
+
+#: options.c:1666
+#, fuzzy
+msgid "Perform enhanced load motion during global common subexpression elimination"
+msgstr "Ibirimo"
+
+#: options.c:1669
+#, fuzzy
+msgid "Perform store motion after global common subexpression elimination"
+msgstr "Nyuma"
+
+#: options.c:1672
+#, fuzzy
+msgid "Recognize GNU-defined keywords"
+msgstr "Amagambo fatizo"
+
+#: options.c:1675
+#, fuzzy
+msgid "Generate code for GNU runtime environment"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: options.c:1678
+#, fuzzy
+msgid "Enable guessing of branch probabilities"
+msgstr "Bya"
+
+#: options.c:1687
+#, fuzzy
+msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
+msgstr "i a imbonerahamwe# Kuri Igikoresho Kuri Imiterere"
+
+#: options.c:1693
+#, fuzzy
+msgid "Assume normal C execution environment"
+msgstr "Bisanzwe C"
+
+#: options.c:1696
+#, fuzzy
+msgid "Enable support for huge objects"
+msgstr "Gushigikira kugirango Ibintu"
+
+#: options.c:1699
+msgid "Process #ident directives"
+msgstr ""
+
+#: options.c:1702
+#, fuzzy
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr "Ihindurangero Bya Kuri"
+
+#: options.c:1705
+#, fuzzy
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Ihindurangero Bya Kuri"
+
+#: options.c:1708
+#, fuzzy
+msgid "Export functions even if they can be inlined"
+msgstr "Imimaro ATARIIGIHARWE NIBA"
+
+#: options.c:1711
+#, fuzzy
+msgid "Emit implicit instantiations of inline templates"
+msgstr "Bya Mumurongo Inyandikorugero"
+
+#: options.c:1714
+#, fuzzy
+msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
+msgstr "Oya Kwandika: ni ku"
+
+#: options.c:1717
+#, fuzzy
+msgid "Emit implicit instantiations of templates"
+msgstr "Bya Inyandikorugero"
+
+#: options.c:1720
+#, fuzzy
+msgid "Use offset tables for virtual method calls"
+msgstr "Nta- boneza Imbonerahamwe kugirango Kitaboneka Uburyo Amahamagara:"
+
+#: options.c:1723
+#, fuzzy
+msgid "Do not generate .size directives"
+msgstr "OYA Ingano"
+
+#: options.c:1726
+#, fuzzy
+msgid "Pay attention to the \"inline\" keyword"
+msgstr "Kuri i Mumurongo Ijambo- banze"
+
+#: options.c:1735
+#, fuzzy
+msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
+msgstr "-Umubare i Ingano Bya Imimaro Kuri Umubare"
+
+#: options.c:1738
+#, fuzzy
+msgid "-finput-charset=<cset> Specify the default character set for source files."
+msgstr "-i Mburabuzi Inyuguti Gushyiraho kugirango Inkomoko Idosiye"
+
+#: options.c:1741
+#, fuzzy
+msgid "Instrument function entry and exit with profiling calls"
+msgstr "Umumaro Icyinjijwe Na Gusohoka Na: Amahamagara:"
+
+#: options.c:1744
+#, fuzzy
+msgid "Optimize induction variables on trees"
+msgstr "Ibihinduka ku"
+
+#: options.c:1747
+#, fuzzy
+msgid "Assume native functions are implemented using JNI"
+msgstr "Imimaro ikoresha"
+
+#: options.c:1750
+#, fuzzy
+msgid "Generate code for functions even if they are fully inlined"
+msgstr "ITEGEKONGENGA kugirango Imimaro ATARIIGIHARWE NIBA"
+
+#: options.c:1753
+#, fuzzy
+msgid "Emit static const variables even if they are not used"
+msgstr "Ibihinduka ATARIIGIHARWE NIBA OYA"
+
+#: options.c:1759
+#, fuzzy
+msgid "Give external symbols a leading underscore"
+msgstr "external Ibimenyetso a Nyobora"
+
+#: options.c:1762
+msgid "Perform loop optimizations"
+msgstr ""
+
+#: options.c:1765
+#, fuzzy
+msgid "Perform loop optimizations using the new loop optimizer"
+msgstr "ikoresha i Gishya"
+
+#: options.c:1768
+#, fuzzy
+msgid "Set errno after built-in math functions"
+msgstr "Nyuma in Imibare Imimaro"
+
+#: options.c:1771
+#, fuzzy
+msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
+msgstr "-Ikiranga Uburebure N Ikiranga Uburebure"
+
+#: options.c:1774
+#, fuzzy
+msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
+msgstr "-VAR Ingano N in Bayite Bya i Kinini Imbonerahamwe Gushyira ku i"
+
+#: options.c:1777
+#, fuzzy
+msgid "Report on permanent memory allocation"
+msgstr "ku Ububiko"
+
+#: options.c:1780
+#, fuzzy
+msgid "Attempt to merge identical constants and constant variables"
+msgstr "Kuri Gukomatanya birasa Na Ibihinduka"
+
+#: options.c:1783
+#, fuzzy
+msgid "Attempt to merge identical constants across compilation units"
+msgstr "Kuri Gukomatanya birasa Kwambukiranya"
+
+#: options.c:1786
+#, fuzzy
+msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
+msgstr "-Uburebure Umubare Kuri Umubare Inyuguti Umurongo 0 Umurongo"
+
+#: options.c:1789
+#, fuzzy
+msgid "Set default accessibility of module entities to PRIVATE"
+msgstr "Mburabuzi Ubushobozi bwo gukoreshwa Bya Modire Kuri"
+
+#: options.c:1792
+#, fuzzy
+msgid "Perform SMS based modulo scheduling before the first scheduling pass"
+msgstr "Mbere i Itangira"
+
+#: options.c:1795
+#, fuzzy
+msgid "Move loop invariant computations out of loops"
+msgstr "Inyuma Bya"
+
+#: options.c:1798
+#, fuzzy
+msgid "Don't warn about uses of Microsoft extensions"
+msgstr "Ibyerekeye Bya Umigereka"
+
+#: options.c:1801
+#, fuzzy
+msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
+msgstr "kugirango UMWE Porogaramu"
+
+#: options.c:1804
+#, fuzzy
+msgid "Ignore read operations when inserting mudflap instrumentation."
+msgstr "Gusoma Ibikorwa: Ryari:"
+
+#: options.c:1807
+#, fuzzy
+msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
+msgstr "kugirango Porogaramu"
+
+#: options.c:1816
+#, fuzzy
+msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: options.c:1819
+#, fuzzy
+msgid "Assume that receivers of Objective-C messages may be nil"
+msgstr "Bya C Ubutumwa Gicurasi"
+
+#: options.c:1822
+#, fuzzy
+msgid "Don't generate code, just do syntax and semantics checking"
+msgstr "ITEGEKONGENGA Na"
+
+#: options.c:1825
+#, fuzzy
+msgid "Support synchronous non-call exceptions"
+msgstr "Amarengayobora"
+
+#: options.c:1834
+#, fuzzy
+msgid "Enable Objective-C exception and synchronization syntax"
+msgstr "C Irengayobora(-) Na"
+
+#: options.c:1837
+#, fuzzy
+msgid "Enable Objective-C setjmp exception handling runtime"
+msgstr "C Irengayobora(-)"
+
+#: options.c:1840
+#, fuzzy
+msgid "When possible do not generate stack frames"
+msgstr "OYA Amakadiri"
+
+#: options.c:1843
+#, fuzzy
+msgid "Recognize C++ kewords like \"compl\" and \"xor\""
+msgstr "C nka Na"
+
+#: options.c:1846
+#, fuzzy
+msgid "Do the full register move optimization pass"
+msgstr "i Kwiyandikisha Kwimura"
+
+#: options.c:1849
+#, fuzzy
+msgid "Optimize sibling and tail recursive calls"
+msgstr "Na Amahamagara:"
+
+#: options.c:1852
+#, fuzzy
+msgid "Enable optimization of static class initialization code"
+msgstr "Bya ishuri ITEGEKONGENGA"
+
+#: options.c:1855
+#, fuzzy
+msgid "Enable optional diagnostics"
+msgstr "Bitari ngombwa"
+
+#: options.c:1861
+#, fuzzy
+msgid "Try to layout derived types as compact as possible"
+msgstr "Kuri Imigaragarire Nka Nka"
+
+#: options.c:1864
+#, fuzzy
+msgid "Pack structure members together without holes"
+msgstr "Imiterere"
+
+#: options.c:1867
+#, fuzzy
+msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
+msgstr "-Umubare Kinini Imiterere Itunganya"
+
+#: options.c:1870
+#, fuzzy
+msgid "Return small aggregates in memory, not registers"
+msgstr "Gitoya in Ububiko OYA"
+
+#: options.c:1876
+#, fuzzy
+msgid "Look for and use PCH files even when preprocessing"
+msgstr "kugirango Na Gukoresha Idosiye ATARIIGIHARWE Ryari:"
+
+#: options.c:1879
+msgid "Perform loop peeling"
+msgstr ""
+
+#: options.c:1882
+msgid "Enable machine specific peephole optimizations"
+msgstr ""
+
+#: options.c:1885
+#, fuzzy
+msgid "Enable an RTL peephole pass before sched2"
+msgstr "Mbere"
+
+#: options.c:1888
+#, fuzzy
+msgid "Downgrade conformance errors to warnings"
+msgstr "Amakosa Kuri Iburira"
+
+#: options.c:1891
+#, fuzzy
+msgid "Generate position-independent code if possible (small mode)"
+msgstr "Ibirindiro ITEGEKONGENGA NIBA Gitoya Ubwoko"
+
+#: options.c:1894
+#, fuzzy
+msgid "Generate position-independent code for executables if possible (small mode)"
+msgstr "Ibirindiro ITEGEKONGENGA kugirango NIBA Gitoya Ubwoko"
+
+#: options.c:1897
+#, fuzzy
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr "Amabwiriza NIBA Bihari kugirango in"
+
+#: options.c:1900
+#, fuzzy
+msgid "Treat the input file as already preprocessed"
+msgstr "i Iyinjiza IDOSIYE Nka"
+
+#: options.c:1903
+#, fuzzy
+msgid "Enable basic program profiling code"
+msgstr "BASIC Porogaramu ITEGEKONGENGA"
+
+#: options.c:1906
+#, fuzzy
+msgid "Insert arc-based program profiling code"
+msgstr "Agaheto Porogaramu ITEGEKONGENGA"
+
+#: options.c:1909
+#, fuzzy
+msgid "Enable common options for generating profile info for profile feedback directed optimizations"
+msgstr "Amahitamo kugirango Ibijyana Ibisobanuro kugirango Ibijyana"
+
+#: options.c:1912
+#, fuzzy
+msgid "Enable common options for performing profile feedback directed optimizations"
+msgstr "Amahitamo kugirango Ibijyana"
+
+#: options.c:1915
+#, fuzzy
+msgid "Insert code to profile values of expressions"
+msgstr "ITEGEKONGENGA Kuri Ibijyana Uduciro Bya"
+
+#: options.c:1921
+#, fuzzy
+msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
+msgstr "-Ikurikiranyanyuguti Gukusanya ikoresha Ikurikiranyanyuguti"
+
+#: options.c:1924
+#, fuzzy
+msgid "Return small aggregates in registers"
+msgstr "Gitoya in"
+
+#: options.c:1927
+#, fuzzy
+msgid "Enables a register move optimization"
+msgstr "a Kwiyandikisha Kwimura"
+
+#: options.c:1930
+#, fuzzy
+msgid "Perform a register renaming optimization pass"
+msgstr "a Kwiyandikisha"
+
+#: options.c:1933
+#, fuzzy
+msgid "Reorder basic blocks to improve code placement"
+msgstr "BASIC Kuri ITEGEKONGENGA Ishyira mu mwanya"
+
+#: options.c:1936
+#, fuzzy
+msgid "Reorder basic blocks and partition into hot and cold sections"
+msgstr "BASIC Na Na Ibyatoranyijwe"
+
+#: options.c:1939
+#, fuzzy
+msgid "Reorder functions to improve code placement"
+msgstr "Imimaro Kuri ITEGEKONGENGA Ishyira mu mwanya"
+
+#: options.c:1942
+#, fuzzy
+msgid "Copy array sections into a contiguous block on procedure entry"
+msgstr "Imbonerahamwe Ibyatoranyijwe a Funga ku Icyinjijwe"
+
+#: options.c:1945
+#, fuzzy
+msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime"
+msgstr "in Na Dukomeza Ubwoko Kuri Igikoresho Idosiye Gicurasi in ku"
+
+#: options.c:1948
+#, fuzzy
+msgid "Enable automatic template instantiation"
+msgstr "Byikoresha Inyandikorugero"
+
+#: options.c:1951
+#, fuzzy
+msgid "Add a common subexpression elimination pass after loop optimizations"
+msgstr "a Nyuma"
+
+#: options.c:1954
+#, fuzzy
+msgid "Run the loop optimizer twice"
+msgstr "i"
+
+#: options.c:1957
+#, fuzzy
+msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling"
+msgstr "i in"
+
+#: options.c:1960
+#, fuzzy
+msgid "Disable optimizations that assume default FP rounding behavior"
+msgstr "Mburabuzi imyitwarire"
+
+#: options.c:1963
+#, fuzzy
+msgid "Generate run time type descriptor information"
+msgstr "Gukoresha Igihe Ubwoko Ibisobanuro"
+
+#: options.c:1966
+#, fuzzy
+msgid "Enable scheduling across basic blocks"
+msgstr "Kwambukiranya BASIC"
+
+#: options.c:1969
+#, fuzzy
+msgid "Allow speculative motion of non-loads"
+msgstr "Bya"
+
+#: options.c:1972
+#, fuzzy
+msgid "Allow speculative motion of some loads"
+msgstr "Bya"
+
+#: options.c:1975
+#, fuzzy
+msgid "Allow speculative motion of more loads"
+msgstr "Bya Birenzeho"
+
+#: options.c:1978
+#, fuzzy
+msgid "Allow premature scheduling of queued insns"
+msgstr "Bya Yashizwe ku murongo"
+
+#: options.c:1981
+#, fuzzy
+msgid "Set dependence distance checking in premature scheduling of queued insns"
+msgstr "Intera in Bya Yashizwe ku murongo"
+
+#: options.c:1984
+#, fuzzy
+msgid "-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns"
+msgstr "-Umubare Intera in Bya Yashizwe ku murongo"
+
+#: options.c:1987
+#, fuzzy
+msgid "-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled"
+msgstr "-Umubare Umubare Bya Yashizwe ku murongo"
+
+#: options.c:1990
+#, fuzzy
+msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
+msgstr "-Umubare i urwego Bya i"
+
+#: options.c:1993
+#, fuzzy
+msgid "If scheduling post reload, do superblock scheduling"
+msgstr "Iposita Kongera Gutangiza"
+
+#: options.c:1996
+#, fuzzy
+msgid "If scheduling post reload, do trace scheduling"
+msgstr "Iposita Kongera Gutangiza"
+
+#: options.c:1999
+#, fuzzy
+msgid "Reschedule instructions before register allocation"
+msgstr "Amabwiriza Mbere Kwiyandikisha"
+
+#: options.c:2002
+#, fuzzy
+msgid "Reschedule instructions after register allocation"
+msgstr "Amabwiriza Nyuma Kwiyandikisha"
+
+#: options.c:2005
+#, fuzzy
+msgid "Append a second underscore if the name already contains an underscore"
+msgstr "a ISEGONDA NIBA i Izina: Kirimo"
+
+#: options.c:2008
+#, fuzzy
+msgid "Mark data as shared rather than private"
+msgstr "Ibyatanzwe Nka By'umwihariko"
+
+#: options.c:2011
+#, fuzzy
+msgid "Use the same size for double as for float"
+msgstr "i Ingano kugirango MAHARAKUBIRI Nka kugirango Kureremba"
+
+#: options.c:2014
+#, fuzzy
+msgid "Use the narrowest integer type possible for enumeration types"
+msgstr "i Umubare wuzuye Ubwoko kugirango"
+
+#: options.c:2017
+#, fuzzy
+msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
+msgstr "i Ubwoko kugirango Kuri Bitashizweho umukono"
+
+#: options.c:2023
+#, fuzzy
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr "ku"
+
+#: options.c:2026
+#, fuzzy
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
+msgstr "Cyangwa Bitashizweho umukono ni OYA Ubwoko i"
+
+#: options.c:2029
+#, fuzzy
+msgid "Make \"char\" signed by default"
+msgstr "INYUGUTI ku Mburabuzi"
+
+#: options.c:2032
+#, fuzzy
+msgid "Convert floating point constants to single precision constants"
+msgstr "Bihindagurika Akadomo Kuri UMWE"
+
+#: options.c:2035
+#, fuzzy
+msgid "Use value profiling for speculative prefetching"
+msgstr "Agaciro kugirango"
+
+#: options.c:2038
+#, fuzzy
+msgid "Split lifetimes of induction variables when loops are unrolled."
+msgstr "Bya Ibihinduka Ryari:"
+
+#: options.c:2044
+#, fuzzy
+msgid "Insert stack checking code into the program"
+msgstr "ITEGEKONGENGA i Porogaramu"
+
+#: options.c:2050
+#, fuzzy
+msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
+msgstr "-Kwiyandikisha Kwiyandikisha NIBA i Kwiyandikisha"
+
+#: options.c:2053
+#, fuzzy
+msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
+msgstr "-IKIMENYETSO Izina: NIBA i IKIMENYETSO Izina:"
+
+#: options.c:2056
+#, fuzzy
+msgid "Display statistics accumulated during compilation"
+msgstr "Sitatisitiki"
+
+#: options.c:2059
+#, fuzzy
+msgid "Enable assignability checks for stores into object arrays"
+msgstr "kugirango Igikoresho"
+
+#: options.c:2062
+msgid "Perform strength reduction optimizations"
+msgstr ""
+
+#: options.c:2065
+#, fuzzy
+msgid "Assume strict aliasing rules apply"
+msgstr "Gukurikiza"
+
+#: options.c:2071
+#, fuzzy
+msgid "Check for syntax errors, then stop"
+msgstr "kugirango Amakosa Hanyuma Guhagarara"
+
+#: options.c:2074
+#, fuzzy
+msgid "-ftabstop=<number>\tDistance between tab stops for column reporting"
+msgstr "-Umubare hagati Isunika kugirango Inkingi"
+
+#: options.c:2077
+#, fuzzy
+msgid "-ftemplate-depth-<number>\tSpecify maximum template instantiation depth"
+msgstr "-Ubujyakuzimu Umubare Kinini Inyandikorugero Ubujyakuzimu"
+
+#: options.c:2080
+#, fuzzy
+msgid "Create data files needed by \"gcov\""
+msgstr "Ibyatanzwe Idosiye ku"
+
+#: options.c:2086
+#, fuzzy
+msgid "Perform jump threading optimizations"
+msgstr "Simbuka"
+
+#: options.c:2089
+#, fuzzy
+msgid "-fno-threadsafe-statics\tDo not generate thread-safe code for initializing local statics."
+msgstr "-OYA Urudodo ITEGEKONGENGA kugirango Gutangiza"
+
+#: options.c:2092
+#, fuzzy
+msgid "Report the time taken by each compiler pass"
+msgstr "i Igihe ku"
+
+#: options.c:2095
+#, fuzzy
+msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model"
+msgstr "-Urugero i Mburabuzi Urudodo ITEGEKONGENGA Urugero"
+
+#: options.c:2098
+#, fuzzy
+msgid "Perform superblock formation via tail duplication"
+msgstr "Biturutse"
+
+#: options.c:2101
+#, fuzzy
+msgid "Assume floating-point operations can trap"
+msgstr "Bihindagurika Akadomo Ibikorwa:"
+
+#: options.c:2104
+#, fuzzy
+msgid "Trap for signed overflow in addition, subtraction and multiplication"
+msgstr "kugirango Byarenze urugero in Guteranya+ Gukuramo Na Gukuba(*)"
+
+#: options.c:2107
+#, fuzzy
+msgid "Use tree-ssa based implementation of profiling"
+msgstr "Bya"
+
+#: options.c:2110
+#, fuzzy
+msgid "Enable SSA-CCP optimization on trees"
+msgstr "ku"
+
+#: options.c:2113
+#, fuzzy
+msgid "Enable loop header copying on trees"
+msgstr "Umutwempangano ku"
+
+#: options.c:2116
+#, fuzzy
+msgid "Coalesce memory temporaries in the SSA->normal pass"
+msgstr "Ububiko in i Bisanzwe"
+
+#: options.c:2119
+#, fuzzy
+msgid "Replace SSA temporaries with better names in copies."
+msgstr "Na: Amazina in Amakopi"
+
+#: options.c:2122
+#, fuzzy
+msgid "Enable SSA dead code elimination optimization on trees"
+msgstr "ITEGEKONGENGA ku"
+
+#: options.c:2125
+msgid "Enable dominator optimizations"
+msgstr ""
+
+#: options.c:2128
+msgid "Enable dead store elimination"
+msgstr ""
+
+#: options.c:2131
+#, fuzzy
+msgid "Enable Full Redundancy Elimination (FRE) on trees"
+msgstr "ku"
+
+#: options.c:2134
+#, fuzzy
+msgid "Enable loop invariant motion on trees"
+msgstr "ku"
+
+#: options.c:2137
+#, fuzzy
+msgid "Create canonical induction variables in loops"
+msgstr "Ibihinduka in"
+
+#: options.c:2140
+#, fuzzy
+msgid "Enable linear loop transforms on trees"
+msgstr "By'umurongo ku"
+
+#: options.c:2143
+#, fuzzy
+msgid "Enable loop optimizations on tree level"
+msgstr "ku urwego"
+
+#: options.c:2146
+#, fuzzy
+msgid "Perform live range splitting during the SSA->normal pass."
+msgstr "Urutonde i Bisanzwe"
+
+#: options.c:2149
+#, fuzzy
+msgid "Enable SSA-PRE optimization on trees"
+msgstr "ku"
+
+#: options.c:2152
+#, fuzzy
+msgid "Perform scalar replacement of aggregates"
+msgstr "Bya"
+
+#: options.c:2155
+#, fuzzy
+msgid "Replace temporary expressions in the SSA->normal pass"
+msgstr "By'igihe gito in i Bisanzwe"
+
+#: options.c:2158
+#, fuzzy
+msgid "Enable loop vectorization on trees"
+msgstr "ku"
+
+#: options.c:2161
+#, fuzzy
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr "-Umubare i urwego Bya i"
+
+#: options.c:2164
+#, fuzzy
+msgid "Append underscores to externally visible names"
+msgstr "Kuri Kigaragara Amazina"
+
+#: options.c:2167
+#, fuzzy
+msgid "Compile whole compilation unit at a time"
+msgstr "Igice: ku a Igihe"
+
+#: options.c:2170
+#, fuzzy
+msgid "Perform loop unrolling for all loops"
+msgstr "kugirango Byose"
+
+#: options.c:2173
+#, fuzzy
+msgid "Perform loop unrolling when iteration count is known"
+msgstr "Ryari: IBARA ni"
+
+#: options.c:2176
+#, fuzzy
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgstr "Imibare Gicurasi Cyangwa"
+
+#: options.c:2179
+#, fuzzy
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgstr "Cyangwa Bitashizweho umukono ni OYA Ubwoko i Bitashizweho umukono"
+
+#: options.c:2182
+#, fuzzy
+msgid "Make \"char\" unsigned by default"
+msgstr "INYUGUTI Bitashizweho umukono ku Mburabuzi"
+
+#: options.c:2185
+msgid "Perform loop unswitching"
+msgstr ""
+
+#: options.c:2188
+#, fuzzy
+msgid "Just generate unwind tables for exception handling"
+msgstr "Imbonerahamwe kugirango Irengayobora(-)"
+
+#: options.c:2191
+#, fuzzy
+msgid "Generate code for the Boehm GC"
+msgstr "ITEGEKONGENGA kugirango i"
+
+#: options.c:2194
+#, fuzzy
+msgid "Use __cxa_atexit to register destructors"
+msgstr "Kuri Kwiyandikisha"
+
+#: options.c:2197
+#, fuzzy
+msgid "Call a library routine to do integer divisions"
+msgstr "a Isomero Kuri Umubare wuzuye"
+
+#: options.c:2200
+#, fuzzy
+msgid "Perform variable tracking"
+msgstr "IMPINDURAGACIRO"
+
+#: options.c:2203
+#, fuzzy
+msgid "Apply variable expansion when loops are unrolled."
+msgstr "IMPINDURAGACIRO Ryari:"
+
+#: options.c:2206
+#, fuzzy
+msgid "Add extra commentary to assembler output"
+msgstr "Birenga Kuri Ibisohoka"
+
+#: options.c:2209
+#, fuzzy
+msgid "Marks all inlined methods as having hidden visibility"
+msgstr "Byose Nka gihishwe Ukugaragara"
+
+#: options.c:2212
+#, fuzzy
+msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
+msgstr "-Mburabuzi By'imbere gihishwe Birinzwe i Mburabuzi IKIMENYETSO Ukugaragara"
+
+#: options.c:2215
+#, fuzzy
+msgid "Use expression value profiles in optimizations"
+msgstr "imvugo Agaciro in"
+
+#: options.c:2218
+#, fuzzy
+msgid "Discard unused virtual functions"
+msgstr "Kidakoreshwa Kitaboneka Imimaro"
+
+#: options.c:2221
+#, fuzzy
+msgid "Implement vtables using thunks"
+msgstr "ikoresha"
+
+#: options.c:2224
+#, fuzzy
+msgid "Emit common-like symbols as weak symbols"
+msgstr "nka Ibimenyetso Nka Ibimenyetso"
+
+#: options.c:2227
+#, fuzzy
+msgid "Construct webs and split unrelated uses of single variable"
+msgstr "Na Gutandukanya Bya UMWE IMPINDURAGACIRO"
+
+#: options.c:2230
+#, fuzzy
+msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
+msgstr "-Byose Ikurikiranyanyuguti Na Inyuguti Kuri Inyuguti Gushyiraho"
+
+#: options.c:2233
+#, fuzzy
+msgid "Generate a #line directive pointing at the current working directory"
+msgstr "a Umurongo ku i KIGEZWEHO bushyinguro"
+
+#: options.c:2236
+#, fuzzy
+msgid "Assume signed arithmetic overflow wraps around"
+msgstr "Byarenze urugero"
+
+#: options.c:2239
+#, fuzzy
+msgid "Emit cross referencing information"
+msgstr "Kwambukiranya Ibisobanuro"
+
+#: options.c:2242
+#, fuzzy
+msgid "Put zero initialized data in the bss section"
+msgstr "Zeru Ibyatanzwe in i Icyiciro"
+
+#: options.c:2245
+#, fuzzy
+msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
+msgstr "ishuri GUSHAKISHA Biturutse kugirango Gukoresha in Ubwoko"
+
+#: options.c:2248
+#, fuzzy
+msgid "Generate debug information in default format"
+msgstr "Kosora amakosa Ibisobanuro in Mburabuzi Imiterere"
+
+#: options.c:2251
+#, fuzzy
+msgid "Generate debug information in COFF format"
+msgstr "Kosora amakosa Ibisobanuro in Imiterere"
+
+#: options.c:2254
+#, fuzzy
+msgid "Generate debug information in DWARF v2 format"
+msgstr "Kosora amakosa Ibisobanuro in Imiterere"
+
+#: options.c:2257
+#, fuzzy
+msgid "Dump declarations to a .decl file"
+msgstr "Kuri a IDOSIYE"
+
+#: options.c:2260
+#, fuzzy
+msgid "Generate debug information in default extended format"
+msgstr "Kosora amakosa Ibisobanuro in Mburabuzi Byongerewe... Imiterere"
+
+#: options.c:2263
+#, fuzzy
+msgid "Generate debug information in STABS format"
+msgstr "Kosora amakosa Ibisobanuro in Imiterere"
+
+#: options.c:2266
+#, fuzzy
+msgid "Generate debug information in extended STABS format"
+msgstr "Kosora amakosa Ibisobanuro in Byongerewe... Imiterere"
+
+#: options.c:2269
+#, fuzzy
+msgid "Generate debug information in VMS format"
+msgstr "Kosora amakosa Ibisobanuro in Imiterere"
+
+#: options.c:2272
+#, fuzzy
+msgid "Generate debug information in XCOFF format"
+msgstr "Kosora amakosa Ibisobanuro in Imiterere"
+
+#: options.c:2275
+#, fuzzy
+msgid "Generate debug information in extended XCOFF format"
+msgstr "Kosora amakosa Ibisobanuro in Byongerewe... Imiterere"
+
+#: options.c:2278
+#, fuzzy
+msgid "Set the default integer kind to double precision"
+msgstr "i Mburabuzi Umubare wuzuye Kuri MAHARAKUBIRI"
+
+#: options.c:2281
+#, fuzzy
+msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
+msgstr "-Kuri i Impera Bya i Sisitemu Gushyiramo Inzira"
+
+#: options.c:2284
+#, fuzzy
+msgid "-imacros <file>\tAccept definition of macros in <file>"
+msgstr "-IDOSIYE Insobanuro Bya Makoro in IDOSIYE"
+
+#: options.c:2287
+#, fuzzy
+msgid "-include <file>\tInclude the contents of <file> before other files"
+msgstr "-Gushyiramo IDOSIYE i Ibigize Bya IDOSIYE Mbere Ikindi Idosiye"
+
+#: options.c:2290
+#, fuzzy
+msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
+msgstr "-Inzira Inzira Nka a Imbanziriza kugirango Komeza>> Amahitamo"
+
+#: options.c:2293
+#, fuzzy
+msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
+msgstr "-Kuri i Impera Bya i Gushyiraho akugarizo Gushyiramo Inzira"
+
+#: options.c:2296
+#, fuzzy
+msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
+msgstr "-Kuri i Sisitemu Imizi bushyinguro"
+
+#: options.c:2299
+#, fuzzy
+msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
+msgstr "-Kuri i Gutangira Bya i Sisitemu Gushyiramo Inzira"
+
+#: options.c:2302
+#, fuzzy
+msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
+msgstr "-Kuri i Impera Bya i Sisitemu Gushyiramo Inzira"
+
+#: options.c:2305
+#, fuzzy
+msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
+msgstr "-Kuri i Impera Bya i Gushyiramo Inzira"
+
+#: options.c:2317
+#, fuzzy
+msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
+msgstr "OYA Gushaka Bisanzwe Sisitemu Gushyiramo ububiko bw'amaderese Na:"
+
+#: options.c:2320
+#, fuzzy
+msgid "Do not search standard system include directories for C++"
+msgstr "OYA Gushaka Bisanzwe Sisitemu Gushyiramo ububiko bw'amaderese kugirango C"
+
+#: options.c:2323
+#, fuzzy
+msgid "-o <file>\tPlace output into <file>"
+msgstr "-o IDOSIYE Ibisohoka IDOSIYE"
+
+#: options.c:2326
+#, fuzzy
+msgid "Enable function profiling"
+msgstr "Umumaro"
+
+#: options.c:2329
+#, fuzzy
+msgid "Issue warnings needed for strict compliance to the standard"
+msgstr "Iburira kugirango Kuri i Bisanzwe"
+
+#: options.c:2332
+#, fuzzy
+msgid "Like -pedantic but issue them as errors"
+msgstr "Itangwa Nka Amakosa"
+
+#: options.c:2335
+#, fuzzy
+msgid "Generate C header of platform-specific features"
+msgstr "C Umutwempangano Bya Ibiranga"
+
+#: options.c:2338
+#, fuzzy
+msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
+msgstr "-N i kugirango a Na: i Kuri"
+
+#: options.c:2341
+#, fuzzy
+msgid "Do not display functions compiled or elapsed time"
+msgstr "OYA Kugaragaza Imimaro Cyangwa Igihe"
+
+#: options.c:2344
+#, fuzzy
+msgid "Set the default real kind to double precision"
+msgstr "i Mburabuzi Kuri MAHARAKUBIRI"
+
+#: options.c:2347
+#, fuzzy
+msgid "Remap file names when including files"
+msgstr "IDOSIYE Amazina Ryari: Idosiye"
+
+#: options.c:2350
+#, fuzzy
+msgid "Conform to the ISO 1998 C++ standard"
+msgstr "Kuri i C Bisanzwe"
+
+#: options.c:2353
+#, fuzzy
+msgid "Conform to the ISO 1990 C standard"
+msgstr "Kuri i C Bisanzwe"
+
+#: options.c:2356
+#, fuzzy
+msgid "Conform to the ISO 1999 C standard"
+msgstr "Kuri i C Bisanzwe"
+
+#: options.c:2359 options.c:2389 options.c:2392
+#, fuzzy
+msgid "Deprecated in favor of -std=c99"
+msgstr "in Bya STD"
+
+#: options.c:2362
+#, fuzzy
+msgid "Conform to the ISO Fortran 2003 standard."
+msgstr "Kuri i Bisanzwe"
+
+#: options.c:2365
+#, fuzzy
+msgid "Conform to the ISO Fortran 95 standard."
+msgstr "Kuri i Bisanzwe"
+
+#: options.c:2368
+#, fuzzy
+msgid "Conform nothing in particular."
+msgstr "in"
+
+#: options.c:2371
+#, fuzzy
+msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
+msgstr "Kuri i C Bisanzwe Na: Umigereka"
+
+#: options.c:2374
+#, fuzzy
+msgid "Conform to the ISO 1990 C standard with GNU extensions"
+msgstr "Kuri i C Bisanzwe Na: Umigereka"
+
+#: options.c:2377
+#, fuzzy
+msgid "Conform to the ISO 1999 C standard with GNU extensions"
+msgstr "Kuri i C Bisanzwe Na: Umigereka"
+
+#: options.c:2380
+#, fuzzy
+msgid "Deprecated in favor of -std=gnu99"
+msgstr "in Bya STD"
+
+#: options.c:2383
+#, fuzzy
+msgid "Deprecated in favor of -std=c89"
+msgstr "in Bya STD"
+
+#: options.c:2386
+#, fuzzy
+msgid "Conform to the ISO 1990 C standard as amended in 1994"
+msgstr "Kuri i C Bisanzwe Nka in"
+
+#: options.c:2395
+msgid "Enable traditional preprocessing"
+msgstr ""
+
+#: options.c:2398
+#, fuzzy
+msgid "-trigraphs\tSupport ISO C trigraphs"
+msgstr "-C"
+
+#: options.c:2401
+#, fuzzy
+msgid "Do not predefine system-specific and GCC-specific macros"
+msgstr "OYA Sisitemu Na Makoro"
+
+#: options.c:2404
+#, fuzzy
+msgid "Enable verbose output"
+msgstr "Ibisohoka"
+
+#: options.c:2410
+#, fuzzy
+msgid "Suppress warnings"
+msgstr "Iburira"
+
+#: config/mips/mips.h:1124 config/arc/arc.h:63
+#, fuzzy
+msgid "may not use both -EB and -EL"
+msgstr "Gicurasi OYA Gukoresha Byombi Na"
+
+#: config/sh/sh.h:685
+#, fuzzy
+msgid "SH2a does not support little-endian"
+msgstr "OYA Gushigikira"
+
+#: 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 cannot both be specified"
+msgstr "-Kureremba Na Kureremba Byombi"
+
+#: config/darwin.h:251
+#, fuzzy
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "-Na:"
+
+#: config/darwin.h:253
+#, fuzzy
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "-Na:"
+
+#: config/darwin.h:258
+#, fuzzy
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:259
+#, fuzzy
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:260
+#, fuzzy
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:265
+#, fuzzy
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:267
+#, fuzzy
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:268
+#, fuzzy
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/arm/arm.h:153
+#, fuzzy
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr "-Kureremba Na Gicurasi OYA"
+
+#: config/arm/arm.h:155
+#, fuzzy
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr "-Na Gicurasi OYA"
+
+#: java/lang-specs.h:34
+#, fuzzy
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr "-Na ishuri Idosiye"
+
+#: java/lang-specs.h:35
+#, fuzzy
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr "-Na ishuri IDOSIYE"
+
+#: java/lang-specs.h:36 java/lang-specs.h:37
+#, fuzzy
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr "-ishuri IDOSIYE Na:"
+
+#: config/i386/mingw32.h:58 config/i386/cygwin.h:70
+#, fuzzy
+msgid "shared and mdll are not compatible"
+msgstr "Na OYA"
+
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "Impuza ni OYA"
+
+#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
+#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
+#, fuzzy
+msgid "may not use both -m32 and -m64"
+msgstr "Gicurasi OYA Gukoresha Byombi Na"
+
+#: config/vax/netbsd-elf.h:42
+#, fuzzy
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "Ihitamo ni OYA kugirango"
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+#, fuzzy
+msgid "profiling not supported with -mg\n"
+msgstr "OYA Na:"
+
+#: config/i386/sco5.h:189
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "-OYA ku iyi"
+
+#: config/i386/sco5.h:190
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "-P Na"
+
+#: config/i386/sco5.h:264
+#, fuzzy
+msgid "-G and -static are mutually exclusive"
+msgstr "-Na"
+
+#: config/i386/cygwin.h:29
+#, fuzzy
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "Na OYA"
+
+#: config/mcore/mcore.h:57
+#, fuzzy
+msgid "the m210 does not have little endian support"
+msgstr "i OYA Gushigikira"
+
+#: gcc.c:763
+#, fuzzy
+msgid "GCC does not support -C or -CC without -E"
+msgstr "OYA Gushigikira C Cyangwa E"
+
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+#, fuzzy
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-Na Ikadiri Mweretsi"
+
+#: gcc.c:957
+#, fuzzy
+msgid "-E required when input is from standard input"
+msgstr "-E Bya ngombwa Ryari: Iyinjiza ni Bivuye Bisanzwe Iyinjiza"
+
+#: config/lynx.h:71
+#, fuzzy
+msgid "Cannot use mthreads and mlegacy-threads together."
+msgstr "Gukoresha Na"
+
+#: config/lynx.h:96
+#, fuzzy
+msgid "Cannot use mshared and static together."
+msgstr "Gukoresha Na"
+
+#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172
+#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
+#, fuzzy
+msgid "does not support multilib"
+msgstr "OYA Gushigikira"
+
+#: config/rs6000/darwin.h:130
+#, fuzzy
+msgid " conflicting code gen style switches are used"
+msgstr "ITEGEKONGENGA IMISUSIRE"
+
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-Cyangwa P Na Ikadiri Mweretsi"
+
+#: ada/lang-specs.h:35
+#, fuzzy
+msgid "-c or -S required for Ada"
+msgstr "-C Cyangwa Bya ngombwa kugirango"
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index 310877304ad..089e683621a 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -27,7 +27,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.2\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\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"
@@ -59,69 +59,47 @@ msgstr "attributet \"%s\" fungerar bara på funktionstyper"
msgid "offset outside bounds of constant string"
msgstr "index till en konstant sträng pekar utanför dess gränser"
-#: builtins.c:923
+#: builtins.c:928
#, fuzzy
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr "andra argumentet till \"__builtin_prefetch\" måste vara en konstant"
-#: builtins.c:930
+#: builtins.c:935
#, fuzzy
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr "ogiltigt andra argument till __builtin_prefetch; använder noll"
-#: builtins.c:938
+#: builtins.c:943
#, fuzzy
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr "tredje argumentet till \"__builtin_prefetch\" måste vara en konstant"
-#: builtins.c:945
+#: builtins.c:950
#, fuzzy
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr "ogiltigt tredje argument till __builtin_prefetch; använder noll"
-#: builtins.c:3727
+#: builtins.c:3806
#, fuzzy
msgid "argument of %<__builtin_args_info%> must be constant"
msgstr "argumentet till \"__builtin_args_info\" måste vara konstant"
-#: builtins.c:3733
+#: builtins.c:3812
#, fuzzy
msgid "argument of %<__builtin_args_info%> out of range"
msgstr "argument till \"__builtin_args_info\" är utanför sitt intervall"
-#: builtins.c:3739
+#: builtins.c:3818
#, fuzzy
msgid "missing argument in %<__builtin_args_info%>"
msgstr "argument saknas till \"__builtin_args_info\""
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "\"va_start\" används i en funktion med fixt antal parametrar"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-msgid "second parameter of %<va_start%> not last named argument"
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "\"__builtin_next_arg\" anropad utan argument"
-
-#: builtins.c:3865
+#: builtins.c:3914 gimplify.c:1765
#, fuzzy
msgid "too few arguments to function %<va_start%>"
msgstr "För många argument till funktionen \"va_start\""
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "För många argument till funktionen \"va_start\""
-
-#: builtins.c:4017
+#: builtins.c:4077
#, fuzzy
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr "första argumentet till \"va_arg\" är inte av typen \"va_list\""
@@ -129,530 +107,560 @@ msgstr "första argumentet till \"va_arg\" är inte av typen \"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:4031
+#: builtins.c:4091
#, fuzzy
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr "\"%s\" konverteras till \"%s\" när det skickas via \"...\""
-#: builtins.c:4036
+#: builtins.c:4096
#, fuzzy
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr "(alltså skall du skicka \"%s\" och inte \"%s\" till \"va_arg\")"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4160
+#: builtins.c:4220
#, fuzzy
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr "ogiltigt argument till \"__builtin_frame_address\""
-#: builtins.c:4162
+#: builtins.c:4222
#, fuzzy
msgid "invalid argument to %<__builtin_return_address%>"
msgstr "ogiltigt argument till \"__builtin_return_address\""
-#: builtins.c:4176
+#: builtins.c:4235
#, fuzzy
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr "Icke supportat argument till \"__builtin_frame_address\""
-#: builtins.c:4178
+#: builtins.c:4237
#, fuzzy
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr "Icke supportat argument till \"__builtin_return_address\""
-#: builtins.c:4281
+#: builtins.c:4340
#, fuzzy
msgid "second argument to %<__builtin_expect%> must be a constant"
msgstr "andra argumentet till \"__builtin_expect\" måste vara en konstant"
-#: builtins.c:5488
+#: builtins.c:5590
#, fuzzy
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr "andra argumentet till __builtin_longjmp måste vara 1"
-#: builtins.c:5840
+#: builtins.c:5942
#, fuzzy
msgid "target format does not support infinity"
msgstr "målprocessorn stödjer inte THUMB-instruktioner"
-#: builtins.c:7518 builtins.c:7613
+#: builtins.c:7699 builtins.c:7794
#, fuzzy, c-format
msgid "too few arguments to function %qs"
msgstr "för få argument till funktionen \"%s\""
-#: builtins.c:7524 builtins.c:7619
+#: builtins.c:7705 builtins.c:7800
#, fuzzy, c-format
msgid "too many arguments to function %qs"
msgstr "för många argument till funktionen \"%s\""
-#: builtins.c:7530 builtins.c:7644
+#: builtins.c:7711 builtins.c:7825
#, fuzzy, c-format
msgid "non-floating-point argument to function %qs"
msgstr "för många argument till funktionen \"%s\""
-#: c-common.c:831
+#: builtins.c:8911
+#, fuzzy
+msgid "%<va_start%> used in function with fixed args"
+msgstr "\"va_start\" används i en funktion med fixt antal parametrar"
+
+#. 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:8918
+#, fuzzy
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "\"__builtin_next_arg\" anropad utan argument"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr ""
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+#, fuzzy
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "andra parametern till \"va_start\" var inte det sista namngivna argumentet"
+
+#: c-common.c:826
#, fuzzy
msgid "%qD is not defined outside of function scope"
msgstr "\"%s\" är inte definierad utanför funktions-scope"
-#: c-common.c:852
+#: c-common.c:847
#, fuzzy, c-format
msgid "string length %qd is greater than the length %qd 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:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "spill i konstant uttryck"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "heltalsspill i uttryck"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "flyttalsspill i uttryck"
-#: c-common.c:933
+#: c-common.c:923
#, fuzzy
msgid "vector overflow in expression"
msgstr "heltalsspill i uttryck"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "stort heltal implicit trunkerat till unsigned typ"
-#: c-common.c:957
+#: c-common.c:947
msgid "negative integer implicitly converted to unsigned type"
msgstr "negativt heltal implicit konverterat till unsigned typ"
-#: c-common.c:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "spill i implicit constant konvertering"
-#: c-common.c:1151
+#: c-common.c:1141
#, fuzzy, c-format
msgid "operation on %qs may be undefined"
msgstr "operation på \"%s\" kan vara odefinierad"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "case-etikett reducerar inte till en heltalskonstant"
-#: c-common.c:1480
+#: c-common.c:1468
#, fuzzy
msgid "case label value is less than minimum value for type"
msgstr "heltalskonstant är större än maximala värdet för sin typ"
-#: c-common.c:1488
+#: c-common.c:1476
#, fuzzy
msgid "case label value exceeds maximum value for type"
msgstr "heltalskonstant är större än maximala värdet för sin typ"
-#: c-common.c:1496
+#: c-common.c:1484
#, fuzzy
msgid "lower value in case label range less than minimum value for type"
msgstr "heltalskonstant är större än maximala värdet för sin typ"
-#: c-common.c:1505
+#: c-common.c:1493
#, fuzzy
msgid "upper value in case label range exceeds maximum value for type"
msgstr "heltalskonstant är större än maximala värdet för sin typ"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "ogiltigt sanningsvärdeuttryck"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "ogiltiga operander till binär %s"
-#: c-common.c:2112
+#: c-common.c:2116
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"
-#: c-common.c:2114
+#: c-common.c:2118
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"
-#: c-common.c:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "jämförelse med unsigned-uttryck >= 0 är alltid sant"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "jämförelse med unsigned-uttryck < 0 är alltid falskt"
-#: c-common.c:2235
+#: c-common.c:2239
#, fuzzy
msgid "pointer of type %<void *%> used in arithmetic"
msgstr "pekare av typen \"void *\" använd med aritmetik"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "pekare till funktion använd med aritmetik"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "pekare till medlemsfunktion använd med aritmetik"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
msgstr ""
-#: c-common.c:2451
+#: c-common.c:2467
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:2500 c-common.c:2540
+#: c-common.c:2535 c-common.c:2575
#, fuzzy
msgid "invalid use of %<restrict%>"
msgstr "ogiltigt användande av \"restrict\""
-#: c-common.c:2756
+#: c-common.c:2791
#, fuzzy
msgid "invalid application of %<sizeof%> to a function type"
msgstr "ISO C++ förbjuder användning av \"sizeof\" på funktioner"
-#: c-common.c:2766
+#: c-common.c:2801
#, fuzzy, c-format
msgid "invalid application of %qs to a void type"
msgstr "ogiltig operation på oinstansierad typ"
-#: c-common.c:2772
+#: c-common.c:2807
#, fuzzy
msgid "invalid application of %qs to incomplete type %qT "
msgstr "sizeof applicerat på en inkomplett typ"
-#: c-common.c:2813
+#: c-common.c:2848
#, fuzzy
msgid "%<__alignof%> applied to a bit-field"
msgstr "sizeof applicerat på ett bit-fält"
-#: c-common.c:3258
+#: c-common.c:3315
#, fuzzy, c-format
msgid "cannot disable built-in function %qs"
msgstr "döljer inbyggd funktion \"%s\""
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "pekare är inte tillåtna case-värden"
-#: c-common.c:3452
+#: c-common.c:3509
#, fuzzy
msgid "range expressions in switch statements are non-standard"
msgstr "ISO C förbjuder intervalluttryck i switch-satser"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "tomt intervall angivet"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "dubbla (eller överlappand) case-värden"
-#: c-common.c:3537
+#: c-common.c:3594
#, fuzzy
msgid "%Jthis is the first entry overlapping that value"
msgstr "detta är det första fallet som överlappar det värdet"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "upprepat case-värde"
-#: c-common.c:3542
+#: c-common.c:3599
#, fuzzy
msgid "%Jpreviously used here"
msgstr "tidigare använd här"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "flera default-etiketter i en switch"
-#: c-common.c:3547
+#: c-common.c:3604
#, fuzzy
msgid "%Jthis is the first default label"
msgstr "detta är den första default-etiketten"
-#: c-common.c:3596
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
msgstr ""
-#: c-common.c:3599
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
msgstr ""
-#: c-common.c:3666
+#: c-common.c:3723
#, fuzzy
msgid "%Hswitch missing default case"
msgstr "detta är den första default-etiketten"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
+#: c-common.c:3757
#, fuzzy
msgid "%Henumeration value %qE not handled in switch"
msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
-#: c-common.c:3727
+#: c-common.c:3784
#, fuzzy
msgid "taking the address of a label is non-standard"
msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\""
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
#, fuzzy, c-format
msgid "%qs attribute ignored"
msgstr "attributet `%s' ignorerat"
-#: c-common.c:4243
+#: c-common.c:4300
#, fuzzy, c-format
msgid "unknown machine mode %qs"
msgstr "okänt maskinläge `%s'"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-common.c:4265
+#: c-common.c:4322
#, fuzzy
msgid "use __attribute__ ((vector_size)) instead"
msgstr "attributet \"%s\" ignorerat"
-#: c-common.c:4274
+#: c-common.c:4331
#, fuzzy, c-format
msgid "unable to emulate %qs"
msgstr "kan inte öppna fil \"%s\""
-#: c-common.c:4284
+#: c-common.c:4341
#, fuzzy, c-format
msgid "invalid pointer mode %qs"
msgstr "ogiltig operand för %V"
-#: c-common.c:4299
+#: c-common.c:4356
#, fuzzy, c-format
msgid "no data type for mode %qs"
msgstr "ingen datatyp för läge `%s'"
-#: c-common.c:4309
+#: c-common.c:4366
#, fuzzy, c-format
msgid "cannot use mode %qs for enumeral types"
msgstr "kan inte konvertera till en pekartyp"
-#: c-common.c:4322
+#: c-common.c:4390
#, fuzzy, c-format
msgid "mode %qs applied to inappropriate type"
msgstr "sizeof applicerat på en inkomplett typ"
-#: c-common.c:4355
+#: c-common.c:4421
#, fuzzy
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "attributet \"section\" kan inte anges för lokala variabler"
-#: c-common.c:4366
+#: c-common.c:4432
#, fuzzy
msgid "%Jsection of %qD conflicts with previous declaration"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: c-common.c:4375
+#: c-common.c:4441
#, fuzzy
msgid "%Jsection attribute not allowed for %qD"
msgstr "attributet \"section\" är inte tillåten för \"%s\""
-#: c-common.c:4381
+#: c-common.c:4447
#, fuzzy
msgid "%Jsection attributes are not supported for this target"
msgstr "attributet \"section\" stöds inte för denna målarkitektur"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "efterfrågad minnesjustering är inte konstant"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "efterrågad minnesjustering är inte en potens av 2"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "efterfrågad minnesjustering är för stor"
-#: c-common.c:4455
+#: c-common.c:4521
#, fuzzy
msgid "%Jalignment may not be specified for %qD"
msgstr "minnesjustering kan inte anges för \"%s\""
-#: c-common.c:4493
+#: c-common.c:4559
#, fuzzy
msgid "%J%qD defined both normally and as an alias"
msgstr "\"%s\" är definierad både normalt och som ett alias"
-#: c-common.c:4509
+#: c-common.c:4575
#, fuzzy
msgid "alias argument not a string"
msgstr "aliasargumentet är inte en sträng"
-#: c-common.c:4551
+#: c-common.c:4617
#, fuzzy, c-format
msgid "%qs attribute ignored on non-class types"
msgstr "attributet `%s' ignorerat för \"%s\""
-#: c-common.c:4564
+#: c-common.c:4630
#, fuzzy
msgid "visibility argument not a string"
msgstr "aliasargumentet är inte en sträng"
-#: c-common.c:4585
+#: c-common.c:4642
+#, fuzzy, c-format
+msgid "%qE attribute ignored on types"
+msgstr "attributet `%s' ignorerat för \"%s\""
+
+#: c-common.c:4657
msgid "visibility argument must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
msgstr ""
-#: c-common.c:4654
+#: c-common.c:4726
#, fuzzy
msgid "tls_model argument not a string"
msgstr "aliasargumentet är inte en sträng"
-#: c-common.c:4663
+#: c-common.c:4735
msgid "tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-common.c:4685 c-common.c:4731
+#: c-common.c:4757 c-common.c:4803
#, fuzzy
msgid "%J%qE attribute applies only to functions"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: c-common.c:4690 c-common.c:4736
+#: c-common.c:4762 c-common.c:4808
#, fuzzy
msgid "%Jcan%'t set %qE attribute after definition"
msgstr "kan inte sätta attributet \"%s\" efter definitionen"
-#: c-common.c:4812
+#: c-common.c:4884
#, fuzzy, c-format
msgid "%qs attribute ignored for %qs"
msgstr "attributet `%s' ignorerat för \"%s\""
-#: c-common.c:4873
+#: c-common.c:4945
#, fuzzy, c-format
msgid "invalid vector type for attribute %qs"
msgstr "ogiltigt vektortype för attribut \"%s\""
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-common.c:4910
+#: c-common.c:4982
#, fuzzy
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "antalet argument matchar inte prototypen"
-#: c-common.c:4925
+#: c-common.c:4997
#, fuzzy, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "formatsträng har ett ogiltigt antal operander"
-#: c-common.c:4944
+#: c-common.c:5016
#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:4952
+#: c-common.c:5024
#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr ""
-#: c-common.c:5007 c-common.c:5044
+#: c-common.c:5079 c-common.c:5116
#, fuzzy
msgid "missing sentinel in function call"
msgstr "kan inte inline:a funktion \"main\""
-#: c-common.c:5030
+#: c-common.c:5102
#, fuzzy
msgid "not enough arguments to fit a sentinel"
msgstr "för få argument till funktion"
-#: c-common.c:5086
+#: c-common.c:5158
#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr ""
-#: c-common.c:5157
+#: c-common.c:5229
#, fuzzy
msgid "cleanup argument not an identifier"
msgstr "predikat måste vara en identifierare"
-#: c-common.c:5164
+#: c-common.c:5236
#, fuzzy
msgid "cleanup argument not a function"
msgstr "för många argument till funktion"
-#: c-common.c:5202
+#: c-common.c:5274
#, fuzzy, c-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr "tre \"l\"-suffix på heltalskonstant"
-#: c-common.c:5213
+#: c-common.c:5285
#, fuzzy, c-format
msgid "%qs attribute only applies to variadic functions"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: c-common.c:5226
+#: c-common.c:5298
#, fuzzy
msgid "requested position is not an integer constant"
msgstr "efterfrågad minnesjustering är inte konstant"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
msgstr ""
-#: c-common.c:5539
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: c-common.c:5582
+#: c-common.c:5675
#, fuzzy, c-format
msgid "attempt to take address of bit-field structure member %qs"
msgstr "kan inte ta adressen till bitfält \"%s\""
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "ogiltigt lvalue i tilldelning"
-#: c-common.c:5637
+#: c-common.c:5730
#, fuzzy
msgid "invalid lvalue in increment"
msgstr "ogiltigt lvalue i tilldelning"
-#: c-common.c:5640
+#: c-common.c:5733
#, fuzzy
msgid "invalid lvalue in decrement"
msgstr "ogiltigt lvalue i tilldelning"
-#: c-common.c:5643
+#: c-common.c:5736
#, fuzzy
msgid "invalid lvalue in unary %<&%>"
msgstr "ogiltigt lvalue i tilldelning"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr ""
@@ -661,111 +669,116 @@ msgstr ""
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
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:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "konvertering till icke-skalär typ begärd"
-#: c-decl.c:524
+#: c-decl.c:530
#, fuzzy
msgid "%Jarray %qD assumed to have one element"
msgstr "fält \"%s\" antas ha ett element"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
msgstr ""
-#: c-decl.c:721
+#: c-decl.c:727
#, fuzzy
msgid "%Jlabel %qD used but not defined"
msgstr "etikett \"%s\" använd men inte definierad"
-#: c-decl.c:727
+#: c-decl.c:733
#, fuzzy
msgid "%Jlabel %qD defined but not used"
msgstr "etikett \"%s\" definierad men inte använd"
-#: c-decl.c:729
+#: c-decl.c:735
#, fuzzy
msgid "%Jlabel %qD declared but not defined"
msgstr "etikett \"%s\" använd men inte definierad"
-#: c-decl.c:772 cp/decl.c:575
+#: c-decl.c:770
+#, fuzzy
+msgid "%Jnested function %qD declared but never defined"
+msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
+
+#: c-decl.c:784 cp/decl.c:568
#, fuzzy
msgid "%Junused variable %qD"
msgstr "oanvänd variabel \"%s\""
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
msgstr ""
-#: c-decl.c:1008
+#: c-decl.c:1022
#, 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:1015
+#: c-decl.c:1029
#, 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:1051
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1057
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
msgstr ""
-#: c-decl.c:1066
+#: c-decl.c:1080
#, fuzzy
msgid "%Jprototype for %qD declares argument %d with incompatible type"
msgstr "prototyp för `%s' följer och argument %d matchar inte"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
+#: c-decl.c:1093
#, fuzzy
msgid "%Jprototype for %qD follows non-prototype definition"
msgstr "icke-prototypdefinition here"
-#: c-decl.c:1094
+#: c-decl.c:1108
#, fuzzy
msgid "%Jprevious definition of %qD was here"
msgstr "\"%s\" definierades tidigare här"
-#: c-decl.c:1096
+#: c-decl.c:1110
#, fuzzy
msgid "%Jprevious implicit declaration of %qD was here"
msgstr "tidigare implicit deklaration av \"%s\""
-#: c-decl.c:1098
+#: c-decl.c:1112
#, fuzzy
msgid "%Jprevious declaration of %qD was here"
msgstr "tidigare deklaration av \"%s\""
-#: c-decl.c:1134
+#: c-decl.c:1149
#, fuzzy
msgid "%J%qD redeclared as different kind of symbol"
msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: c-decl.c:1139
+#: c-decl.c:1154
#, fuzzy
msgid "%Jbuilt-in function %qD declared as non-function"
msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
#, fuzzy
msgid "%Jdeclaration of %qD shadows a built-in function"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: c-decl.c:1151
+#: c-decl.c:1166
#, fuzzy
msgid "%Jredeclaration of enumerator %qD"
msgstr "omdeklaration av \"enum %s\""
@@ -773,278 +786,279 @@ msgstr "omdeklaration av \"enum %s\""
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
+#: c-decl.c:1187
#, fuzzy
msgid "%Jconflicting types for built-in function %qD"
msgstr "motstridiga typer på inbyggd funktion \"%s\""
-#: c-decl.c:1196 c-decl.c:1207
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
#, fuzzy
msgid "%Jconflicting types for %qD"
msgstr "motstridiga typer på \"%s\""
-#: c-decl.c:1205
+#: c-decl.c:1232
#, fuzzy
msgid "%J conflicting type qualifiers for %qD"
msgstr "motstridiga typer på \"%s\""
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
+#: c-decl.c:1249
#, fuzzy
msgid "%Jredefinition of typedef %qD"
msgstr "omdefiniering av \"%s\""
-#: c-decl.c:1261 c-decl.c:1339
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
#, fuzzy
msgid "%Jredefinition of %qD"
msgstr "omdefiniering av \"%s\""
-#: c-decl.c:1296 c-decl.c:1377
+#: c-decl.c:1353 c-decl.c:1434
#, fuzzy
msgid "%Jstatic declaration of %qD follows non-static declaration"
msgstr "statisk deklaration av \"%s\" följer på icke-statisk"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
#, fuzzy
msgid "%Jnon-static declaration of %qD follows static declaration"
msgstr "icke-statisk deklaration av \"%s\" följer på statisk"
-#: c-decl.c:1326
+#: c-decl.c:1383
#, fuzzy
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
msgstr "statisk deklaration av \"%s\" följer på icke-statisk"
-#: c-decl.c:1329
+#: c-decl.c:1386
#, fuzzy
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
msgstr "icke-statisk deklaration av \"%s\" följer på statisk"
-#: c-decl.c:1359
+#: c-decl.c:1416
#, fuzzy
msgid "%Jextern declaration of %qD follows declaration with no linkage"
msgstr "extern deklaration av \"%s\" matchar inte den globala"
-#: c-decl.c:1395
+#: c-decl.c:1452
#, fuzzy
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: c-decl.c:1401
+#: c-decl.c:1458
#, fuzzy
msgid "%Jredeclaration of %qD with no linkage"
msgstr "tidigare deklaration av \"%s\""
-#: c-decl.c:1415
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
msgstr ""
-#: c-decl.c:1426
+#: c-decl.c:1483
#, fuzzy
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
msgstr "implicit deklaration av funktion \"%s\""
-#: c-decl.c:1433
+#: c-decl.c:1490
#, fuzzy
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
msgstr "implicit deklaration av funktion \"%s\""
-#: c-decl.c:1448
+#: c-decl.c:1505
#, fuzzy
msgid "%J%qD declared inline after being called"
msgstr "\"%s\" är deklarerad inline efter att den blivit anropad"
-#: c-decl.c:1454
+#: c-decl.c:1511
#, fuzzy
msgid "%J%qD declared inline after its definition"
msgstr "\"%s\" deklarerad inline efter sin definition"
-#: c-decl.c:1474
+#: c-decl.c:1531
#, fuzzy
msgid "%Jredefinition of parameter %qD"
msgstr "omdefiniering av \"struct %s\""
-#: c-decl.c:1498
+#: c-decl.c:1555
#, fuzzy
msgid "%Jredundant redeclaration of %qD"
msgstr "redundant omdeklaration av \"%s\" i samma scope"
-#: c-decl.c:1808
+# local, det kan troligen vara både lokal variabel och lokal funktion??
+#: c-decl.c:1866
+#, fuzzy
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "deklaration av \"%s\" döljer en tidigare lokal"
+
+#: c-decl.c:1871
#, fuzzy
msgid "%Jdeclaration of %qD shadows a parameter"
msgstr "deklaration av \"%s\" döljer en parameter"
-#: c-decl.c:1811
+#: c-decl.c:1874
#, fuzzy
msgid "%Jdeclaration of %qD shadows a global declaration"
msgstr "deklaration av \"%s\" döljer en parameter"
# local, det kan troligen vara både lokal variabel och lokal funktion??
-#: c-decl.c:1818
+#: c-decl.c:1884
#, fuzzy
msgid "%Jdeclaration of %qD shadows a previous local"
msgstr "deklaration av \"%s\" döljer en tidigare lokal"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
#, fuzzy
msgid "%Jshadowed declaration is here"
msgstr "tidigare deklaration av \"%s\""
-#: c-decl.c:1977
+#: c-decl.c:2041
#, fuzzy
msgid "nested extern declaration of %qD"
msgstr "nästlad extern deklaration av \"%s\""
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "nästlad extern deklaration av \"%s\""
-
-#: c-decl.c:2161
+#: c-decl.c:2201
#, fuzzy, c-format
msgid "implicit declaration of function %qE"
msgstr "implicit deklaration av funktion \"%s\""
-#: c-decl.c:2219
+#: c-decl.c:2262
#, fuzzy
msgid "incompatible implicit declaration of built-in function %qD"
msgstr "implicit deklaration av funktion \"%s\""
-#: c-decl.c:2228
+#: c-decl.c:2271
#, fuzzy
msgid "incompatible implicit declaration of function %qD"
msgstr "implicit deklaration av funktion \"%s\""
-#: c-decl.c:2281
+#: c-decl.c:2324
#, fuzzy, c-format
msgid "%qE undeclared here (not in a function)"
msgstr "\"%s\" odeklarerad här (inte i en funktion)"
-#: c-decl.c:2286
+#: c-decl.c:2329
#, fuzzy, c-format
msgid "%qE undeclared (first use in this function)"
msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Varje odeklarerad identifierare rapporteras bara"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "en gång för varje funktion den finns i.)"
-#: c-decl.c:2329
+#: c-decl.c:2372
#, fuzzy, c-format
msgid "label %qs referenced outside of any function"
msgstr "etikett %s är refererad till utanför en funktion"
-#: c-decl.c:2372
+#: c-decl.c:2415
#, fuzzy, c-format
msgid "duplicate label declaration %qs"
msgstr "dubbel deklaration av etikett \"%s\""
-#: c-decl.c:2407
+#: c-decl.c:2450
#, fuzzy
msgid "%Hduplicate label %qD"
msgstr "upprepning av medlem \"%s\""
-#: c-decl.c:2429
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
msgstr ""
-#: c-decl.c:2495
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
msgstr ""
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "odöpt struktur/union som inte har någon instans"
-#: c-decl.c:2726
+#: c-decl.c:2769
#, fuzzy
msgid "empty declaration with storage class specifier does not redeclare tag"
msgstr "lagringsklass angiven i array-deklarerare"
-#: c-decl.c:2737
+#: c-decl.c:2780
msgid "empty declaration with type qualifier does not redeclare tag"
msgstr ""
-#: c-decl.c:2758 c-decl.c:2765
+#: c-decl.c:2801 c-decl.c:2808
#, fuzzy
msgid "useless type name in empty declaration"
msgstr "oanvändbart nyckelord eller typnamn i tom deklaration"
-#: c-decl.c:2773
+#: c-decl.c:2816
#, fuzzy
msgid "%<inline%> in empty declaration"
msgstr "tom deklaration"
-#: c-decl.c:2779
+#: c-decl.c:2822
#, fuzzy
msgid "%<auto%> in file-scope empty declaration"
msgstr "två typer angivna i en tom deklaration"
-#: c-decl.c:2785
+#: c-decl.c:2828
#, fuzzy
msgid "%<register%> in file-scope empty declaration"
msgstr "två typer angivna i en tom deklaration"
-#: c-decl.c:2791
+#: c-decl.c:2834
#, fuzzy
msgid "useless storage class specifier in empty declaration"
msgstr "lagringsklass angiven i array-deklarerare"
-#: c-decl.c:2797
+#: c-decl.c:2840
#, fuzzy
msgid "useless %<__thread%> in empty declaration"
msgstr "oanvändbart nyckelord eller typnamn i tom deklaration"
-#: c-decl.c:2805
+#: c-decl.c:2848
#, fuzzy
msgid "useless type qualifier in empty declaration"
msgstr "dubbel deklaration av etikett \"%s\""
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "tom deklaration"
-#: c-decl.c:2878
+#: c-decl.c:2921
#, 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:2881
+#: c-decl.c:2924
#, fuzzy
msgid "ISO C90 does not support %<[*]%> array declarators"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:2884
+#: c-decl.c:2927
#, fuzzy
msgid "GCC does not yet properly implement %<[*]%> array declarators"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:2960
+#: c-decl.c:3005
#, fuzzy
msgid "%J%qD is usually a function"
msgstr "\"%s\" är vanligtvis en funktion"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
#, fuzzy
msgid "typedef %qD is initialized (use __typeof__ instead)"
msgstr "typedef \"%s\" är initierad"
-#: c-decl.c:2974
+#: c-decl.c:3019
#, fuzzy
msgid "function %qD 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:2980
+#: c-decl.c:3025
#, fuzzy
msgid "parameter %qD is initialized"
msgstr "parameter \"%s\" är initierad"
@@ -1053,854 +1067,849 @@ msgstr "parameter \"%s\" är initierad"
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: c-decl.c:3005
+#: c-decl.c:3050
#, fuzzy
msgid "variable %qD has initializer but incomplete type"
msgstr "variabel \"%s\" har initierare men är av inkomplett typ"
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "elementen i fält \"%s\" har en ofullständig typ"
-
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
#, fuzzy
msgid "%Jinline function %qD given attribute noinline"
msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
-#: c-decl.c:3154
+#: c-decl.c:3194
#, fuzzy
msgid "%Jinitializer fails to determine size of %qD"
msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
-#: c-decl.c:3159
+#: c-decl.c:3199
#, fuzzy
msgid "%Jarray size missing in %qD"
msgstr "fältstorlek saknas i \"%s\""
-#: c-decl.c:3175
+#: c-decl.c:3215
#, fuzzy
msgid "%Jzero or negative size array %qD"
msgstr "noll eller negativ storlek på fält \"%s\""
-#: c-decl.c:3201 varasm.c:1541
+#: c-decl.c:3241 varasm.c:1556
#, fuzzy
msgid "%Jstorage size of %qD isn%'t known"
msgstr "lagringsstorlek på \"%s\" är okänd"
-#: c-decl.c:3211
+#: c-decl.c:3251
#, fuzzy
msgid "%Jstorage size of %qD isn%'t constant"
msgstr "lagringsstorlek på \"%s\" är inte konstant"
-#: c-decl.c:3266
+#: c-decl.c:3299
#, fuzzy
msgid "%Jignoring asm-specifier for non-static local variable %qD"
msgstr "ignorerar asm för ickestatisk lokal variabel \"%s\""
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr ""
-#: c-decl.c:3614
+#: c-decl.c:3648
#, fuzzy
msgid "<anonymous>"
msgstr "<anonym %s>"
-#: c-decl.c:3623
+#: c-decl.c:3657
#, fuzzy, c-format
msgid "bit-field %qs width not an integer constant"
msgstr "tre \"l\"-suffix på heltalskonstant"
-#: c-decl.c:3631
+#: c-decl.c:3665
#, fuzzy, c-format
msgid "negative width in bit-field %qs"
msgstr "negativ storlek i bitfält \"%s\""
-#: c-decl.c:3636
+#: c-decl.c:3670
#, fuzzy, c-format
msgid "zero width for bit-field %qs"
msgstr "Storleken noll på bitfält \"%s\""
-#: c-decl.c:3646
+#: c-decl.c:3680
#, fuzzy, c-format
msgid "bit-field %qs has invalid type"
msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: c-decl.c:3655
+#: c-decl.c:3689
#, fuzzy, c-format
msgid "type of bit-field %qs is a GCC extension"
msgstr "#%s är en GCC-utvidgning"
-#: c-decl.c:3664
+#: c-decl.c:3698
#, fuzzy, c-format
msgid "width of %qs exceeds its type"
msgstr "storleken på \"%s\" är större än sin typ"
-#: c-decl.c:3677
+#: c-decl.c:3711
#, fuzzy, c-format
msgid "%qs is narrower than values of its type"
msgstr "heltalskonstant är större än maximala värdet för sin typ"
-#: c-decl.c:3802
+#: c-decl.c:3836
#, fuzzy
msgid "type defaults to %<int%> in declaration of %qs"
msgstr "två eller fler datatyper i deklaration av \"%s\""
-#: c-decl.c:3830
+#: c-decl.c:3864
#, fuzzy
msgid "duplicate %<const%>"
msgstr "upprepning av \"const\""
-#: c-decl.c:3832
+#: c-decl.c:3866
#, fuzzy
msgid "duplicate %<restrict%>"
msgstr "upprepning av \"restrict\""
-#: c-decl.c:3834
+#: c-decl.c:3868
#, fuzzy
msgid "duplicate %<volatile%>"
msgstr "upprepning av \"volatile\""
-#: c-decl.c:3853
+#: c-decl.c:3887
#, fuzzy
msgid "function definition declared %<auto%>"
msgstr "funktionsdefinition deklarerad som \"auto\""
-#: c-decl.c:3855
+#: c-decl.c:3889
#, fuzzy
msgid "function definition declared %<register%>"
msgstr "funktionsdefinition deklarerad som \"register\""
-#: c-decl.c:3857
+#: c-decl.c:3891
#, fuzzy
msgid "function definition declared %<typedef%>"
msgstr "funktionsdefinition deklarerad som \"typedef\""
-#: c-decl.c:3859
+#: c-decl.c:3893
#, fuzzy
msgid "function definition declared %<__thread%>"
msgstr "funktionsdefinition deklarerad som \"typedef\""
-#: c-decl.c:3875
+#: c-decl.c:3909
#, fuzzy, c-format
msgid "storage class specified for structure field %qs"
msgstr "lagringsklass angiven för strukturfält \"%s\""
-#: c-decl.c:3879 cp/decl.c:7120
+#: c-decl.c:3913 cp/decl.c:7053
#, fuzzy, c-format
msgid "storage class specified for parameter %qs"
msgstr "lagringsklass angiven för parameter \"%s\""
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "lagringsklass angiven för typnamn"
-#: c-decl.c:3895 cp/decl.c:7139
+#: c-decl.c:3929 cp/decl.c:7072
#, fuzzy
msgid "%qs initialized and declared %<extern%>"
msgstr "`%s' initierad och deklarerad \"extern\""
-#: c-decl.c:3897 cp/decl.c:7142
+#: c-decl.c:3931 cp/decl.c:7075
#, fuzzy
msgid "%qs has both %<extern%> and initializer"
msgstr "\"%s\" är både \"extern\" och initierare"
-#: c-decl.c:3902
+#: c-decl.c:3936
#, fuzzy
msgid "file-scope declaration of %qs specifies %<auto%>"
msgstr "toppnivådeklaration av \"%s\" anger \"auto\""
-#: c-decl.c:3904
+#: c-decl.c:3938
#, fuzzy
msgid "file-scope declaration of %qs specifies %<register%>"
msgstr "toppnivådeklaration av \"%s\" anger \"auto\""
-#: c-decl.c:3909 cp/decl.c:7146
+#: c-decl.c:3943 cp/decl.c:7079
#, fuzzy
msgid "nested function %qs declared %<extern%>"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#: c-decl.c:3912 cp/decl.c:7156
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
#, fuzzy
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "två typer angivna i en tom deklaration"
-#: c-decl.c:3999
+#: c-decl.c:4039
#, fuzzy, c-format
msgid "declaration of %qs as array of voids"
msgstr "deklaration av \"%s\" som ett fält med void"
-#: c-decl.c:4005
+#: c-decl.c:4045
#, fuzzy, c-format
msgid "declaration of %qs as array of functions"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: c-decl.c:4010
+#: c-decl.c:4050
#, fuzzy
msgid "invalid use of structure with flexible array member"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:4030
+#: c-decl.c:4070
#, fuzzy, c-format
msgid "size of array %qs has non-integer type"
msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#: c-decl.c:4035
+#: c-decl.c:4075
#, fuzzy, c-format
msgid "ISO C forbids zero-size array %qs"
msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
-#: c-decl.c:4042
+#: c-decl.c:4082
#, fuzzy, c-format
msgid "size of array %qs is negative"
msgstr "storlek på fält \"%s\" är negativt"
-#: c-decl.c:4056
+#: c-decl.c:4096
#, fuzzy
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
msgstr "ISO C89 förbjuder fält \"%s\" vars storlek inte kan beräknas"
-#: c-decl.c:4060
+#: c-decl.c:4100
#, fuzzy, c-format
msgid "ISO C90 forbids variable-size array %qs"
msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
#, fuzzy, c-format
msgid "size of array %qs is too large"
msgstr "fältet \"%s\" är för stort"
-#: c-decl.c:4106
+#: c-decl.c:4150
#, fuzzy
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "fälttyp har inkomplett elementtyp"
-#: c-decl.c:4174 cp/decl.c:7248
+#: c-decl.c:4215 cp/decl.c:7179
#, fuzzy, c-format
msgid "%qs declared as function returning a function"
msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion"
-#: c-decl.c:4179 cp/decl.c:7253
+#: c-decl.c:4220 cp/decl.c:7184
#, fuzzy, c-format
msgid "%qs declared as function returning an array"
msgstr "\"%s\" är deklarerad som en funktion som returnerar ett fält"
-#: c-decl.c:4199
+#: c-decl.c:4240
#, fuzzy
msgid "function definition has qualified void return type"
msgstr "ogiltig operation på oinstansierad typ"
-#: c-decl.c:4201
+#: c-decl.c:4242
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4282
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
msgstr ""
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr ""
-#: c-decl.c:4332
+#: c-decl.c:4374
#, fuzzy, c-format
msgid "variable or field %qs declared void"
msgstr "variabel eller fält \"%s\" deklarerad som void"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4396
+#: c-decl.c:4438
#, fuzzy
msgid "%Jparameter %qD declared %<inline%>"
msgstr "parameter \"%s\" deklarerad som void"
-#: c-decl.c:4409
+#: c-decl.c:4451
#, fuzzy, c-format
msgid "field %qs declared as a function"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: c-decl.c:4415
+#: c-decl.c:4457
#, fuzzy, c-format
msgid "field %qs has incomplete type"
msgstr "fält \"%s\" har en inkomplett typ"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
#, fuzzy, c-format
msgid "invalid storage class for function %qs"
msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: c-decl.c:4461
+#: c-decl.c:4507
#, fuzzy
msgid "%<noreturn%> function returns non-void value"
msgstr "\"noreturn\"-funktion returnerar ett icke-void värde"
-#: c-decl.c:4489
+#: c-decl.c:4535
#, fuzzy
msgid "cannot inline function %<main%>"
msgstr "kan inte inline:a funktion \"main\""
-#: c-decl.c:4546
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
msgstr ""
-#: c-decl.c:4555
+#: c-decl.c:4591
#, fuzzy
msgid "%Jvariable %qD declared %<inline%>"
msgstr "variabel \"%s\" deklarerad \"inline\""
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
-#: c-decl.c:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
#, fuzzy
msgid "thread-local storage not supported for this target"
msgstr "-fdata-sections stöds inte för AIX"
-#: c-decl.c:4648 c-decl.c:5733
+#: c-decl.c:4684 c-decl.c:5778
#, fuzzy
msgid "function declaration isn%'t a prototype"
msgstr "funktionsdeklaration är inte en prototyp"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:4689
+#: c-decl.c:4725
#, fuzzy
msgid "%Jparameter %u (%qD) has incomplete type"
msgstr "parameter har en inkomplett typ"
-#: c-decl.c:4692
+#: c-decl.c:4728
#, fuzzy
msgid "%Jparameter %u has incomplete type"
msgstr "parameter har en inkomplett typ"
-#: c-decl.c:4701
+#: c-decl.c:4737
#, fuzzy
msgid "%Jparameter %u (%qD) has void type"
msgstr "parameter \"%s\" har en inkomplett typ"
-#: c-decl.c:4704
+#: c-decl.c:4740
#, fuzzy
msgid "%Jparameter %u has void type"
msgstr "parameter \"%s\" har en inkomplett typ"
-#: c-decl.c:4761
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
msgstr ""
-#: c-decl.c:4765 c-decl.c:4800
+#: c-decl.c:4801 c-decl.c:4836
#, fuzzy
msgid "%<void%> must be the only parameter"
msgstr "ogiltigt typargument"
-#: c-decl.c:4793
+#: c-decl.c:4829
msgid "%Jparameter %qD has just a forward declaration"
msgstr ""
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
+#: c-decl.c:4875
#, fuzzy
msgid "%<%s %E%> declared inside parameter list"
msgstr "\"%s %s\" deklarerad inuti parameterlista"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, fuzzy, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "anonym struktur deklarerad i parameterlista"
-#: c-decl.c:4848
+#: c-decl.c:4884
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:4981
+#: c-decl.c:5017
#, fuzzy
msgid "redefinition of %<union %s%>"
msgstr "omdefiniering av \"union %s\""
-#: c-decl.c:4983
+#: c-decl.c:5019
#, fuzzy
msgid "redefinition of %<struct %s%>"
msgstr "omdefiniering av \"struct %s\""
-#: c-decl.c:4988
+#: c-decl.c:5024
#, fuzzy
msgid "nested redefinition of %<union %s%>"
msgstr "nästlad omdefinition av \"%s\""
-#: c-decl.c:4991
+#: c-decl.c:5027
#, fuzzy
msgid "nested redefinition of %<struct %s%>"
msgstr "nästlad omdefinition av \"%s\""
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr ""
-#: c-decl.c:5067
+#: c-decl.c:5103
#, fuzzy
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C stödjer inte ej namnsatta strukturer/unioner"
-#: c-decl.c:5110 c-decl.c:5126
+#: c-decl.c:5146 c-decl.c:5162
#, fuzzy
msgid "%Jduplicate member %qD"
msgstr "upprepning av medlem \"%s\""
-#: c-decl.c:5165
+#: c-decl.c:5201
#, fuzzy
msgid "union has no named members"
msgstr "namngivna medlemmar"
-#: c-decl.c:5167
+#: c-decl.c:5203
#, fuzzy
msgid "union has no members"
msgstr "%s har ingen medlem med namn \"%s\""
-#: c-decl.c:5172
+#: c-decl.c:5208
#, fuzzy
msgid "struct has no named members"
msgstr "namngivna medlemmar"
-#: c-decl.c:5174
+#: c-decl.c:5210
#, fuzzy
msgid "struct has no members"
msgstr "%s har ingen medlem med namn \"%s\""
-#: c-decl.c:5231
+#: c-decl.c:5267
#, fuzzy
msgid "%Jflexible array member in union"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5248
+#: c-decl.c:5284
#, fuzzy
msgid "%Jinvalid use of structure with flexible array member"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr ""
-#: c-decl.c:5418
+#: c-decl.c:5463
#, fuzzy
msgid "nested redefinition of %<enum %s%>"
msgstr "nästlad omdefinition av \"%s\""
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
+#: c-decl.c:5470
#, fuzzy
msgid "redeclaration of %<enum %s%>"
msgstr "omdeklaration av \"enum %s\""
-#: c-decl.c:5488
+#: c-decl.c:5533
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
msgstr ""
-#: c-decl.c:5604
+#: c-decl.c:5649
#, fuzzy, c-format
msgid "enumerator value for %qE is not an integer constant"
msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "överspill i uppräkningsvärden"
-#: c-decl.c:5626
+#: c-decl.c:5671
#, fuzzy
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:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "returtypen är en inkomplett typ"
-#: c-decl.c:5710
+#: c-decl.c:5755
#, fuzzy
msgid "return type defaults to %<int%>"
msgstr "returtyp sätts till \"int\""
-#: c-decl.c:5739
+#: c-decl.c:5784
#, fuzzy
msgid "%Jno previous prototype for %qD"
msgstr "ingen tidigare prototyp för `%s'"
-#: c-decl.c:5745
+#: c-decl.c:5790
#, fuzzy
msgid "%J%qD was used with no prototype before its definition"
msgstr "\"%s\" användes utan någon prototyp innan sin definition"
-#: c-decl.c:5752
+#: c-decl.c:5797
#, fuzzy
msgid "%Jno previous declaration for %qD"
msgstr "ingen tidigare deklaration av \"%s\""
-#: c-decl.c:5758
+#: c-decl.c:5803
#, fuzzy
msgid "%J%qD was used with no declaration before its definition"
msgstr "\"%s\" användes utan någon deklaration innan sin definition"
-#: c-decl.c:5791 c-decl.c:6280
+#: c-decl.c:5836 c-decl.c:6328
#, fuzzy
msgid "%Jreturn type of %qD is not %<int%>"
msgstr "returtypen på \"%s\" är inte \"int\""
-#: c-decl.c:5806
+#: c-decl.c:5851
#, fuzzy
msgid "%Jfirst argument of %qD should be %<int%>"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: c-decl.c:5815
+#: c-decl.c:5860
#, fuzzy
msgid "%Jsecond argument of %qD should be %<char **%>"
msgstr "andra argumentet till \"%s\" skall vara \"char **\""
-#: c-decl.c:5824
+#: c-decl.c:5869
#, fuzzy
msgid "%Jthird argument of %qD should probably be %<char **%>"
msgstr "tredje argumentet till \"%s2 skall troligen vara \"char **\""
-#: c-decl.c:5834
+#: c-decl.c:5879
#, fuzzy
msgid "%J%qD takes only zero or two arguments"
msgstr "\"%s\" tar bara noll eller två argument"
-#: c-decl.c:5837
+#: c-decl.c:5882
#, fuzzy
msgid "%J%qD is normally a non-static function"
msgstr "\"%s\" är normalt en icke-statisk function"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr ""
-#: c-decl.c:5896
+#: c-decl.c:5941
#, fuzzy
msgid "%Jtraditional C rejects ISO C style function definitions"
msgstr "traditionell C stödjer inte sträng-sammanslagning"
-#: c-decl.c:5908
+#: c-decl.c:5953
#, fuzzy
msgid "%Jparameter name omitted"
msgstr "parameternamn utlämnat"
-#: c-decl.c:5948
+#: c-decl.c:5993
msgid "%Jold-style function definition"
msgstr ""
-#: c-decl.c:5956
+#: c-decl.c:6001
#, fuzzy
msgid "%Jparameter name missing from parameter list"
msgstr "parameternamn saknas i parameterlista"
-#: c-decl.c:5967
+#: c-decl.c:6012
#, fuzzy
msgid "%J%qD declared as a non-parameter"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: c-decl.c:5972
+#: c-decl.c:6017
#, fuzzy
msgid "%Jmultiple parameters named %qD"
msgstr "flera parametrar med namn \"%s\""
-#: c-decl.c:5980
+#: c-decl.c:6025
#, fuzzy
msgid "%Jparameter %qD declared with void type"
msgstr "parameter \"%s\" deklarerad som void"
-#: c-decl.c:5995 c-decl.c:5997
+#: c-decl.c:6040 c-decl.c:6042
#, fuzzy
msgid "%Jtype of %qD defaults to %<int%>"
msgstr "typen på \"%s\" sätts till \"int\""
-#: c-decl.c:6016
+#: c-decl.c:6061
#, fuzzy
msgid "%Jparameter %qD has incomplete type"
msgstr "parameter har en inkomplett typ"
-#: c-decl.c:6022
+#: c-decl.c:6067
#, fuzzy
msgid "%Jdeclaration for parameter %qD but no such parameter"
msgstr "deklaration av parameter \"%s\" med det finns ingen sådan parameter"
-#: c-decl.c:6072
+#: c-decl.c:6117
#, fuzzy
msgid "number of arguments doesn%'t match prototype"
msgstr "antalet argument matchar inte prototypen"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
#, fuzzy
msgid "%Hprototype declaration"
msgstr "tom deklaration"
-#: c-decl.c:6101
+#: c-decl.c:6146
#, fuzzy
msgid "promoted argument %qD doesn%'t match prototype"
msgstr "argument \"%s\" matchar inte prototypen"
-#: c-decl.c:6109
+#: c-decl.c:6154
#, fuzzy
msgid "argument %qD doesn%'t match prototype"
msgstr "argument \"%s\" matchar inte prototypen"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr "ingen return i funktion som returnerar icke-void"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "denna funktion kan returnera med eller utan ett värde"
#. 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:6403
+#: c-decl.c:6461
msgid "%<for%> loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:6432
+#: c-decl.c:6490
#, fuzzy
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6435
+#: c-decl.c:6493
#, fuzzy
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6440
+#: c-decl.c:6498
#, fuzzy
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
msgstr "\"struct %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6444
+#: c-decl.c:6502
#, fuzzy
msgid "%<union %E%> declared in %<for%> loop initial declaration"
msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6448
+#: c-decl.c:6506
#, fuzzy
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
msgstr "\"enum %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6452
+#: c-decl.c:6510
#, fuzzy
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
msgstr "\"enum %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
#, fuzzy, c-format
msgid "duplicate %qs"
msgstr "flera \"%s\""
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
#, fuzzy
msgid "two or more data types in declaration specifiers"
msgstr "två eller fler datatyper i deklaration av \"%s\""
-#: c-decl.c:6774 cp/decl.c:6804
+#: c-decl.c:6832 cp/decl.c:6723
#, fuzzy
msgid "%<long long long%> is too long for GCC"
msgstr "\"long long long\" är för långt för GCC"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6787
+#: c-decl.c:6845
#, fuzzy
msgid "ISO C90 does not support %<long long%>"
msgstr "ISO C89 stödjer inte \"long long\"'"
-#: c-decl.c:6792 c-decl.c:6812
+#: c-decl.c:6850 c-decl.c:6870
#, fuzzy
msgid "both %<long%> and %<short%> in declaration specifiers"
msgstr "både long och short angivet för \"%s\""
-#: c-decl.c:6795 c-decl.c:6906
+#: c-decl.c:6853 c-decl.c:6964
#, fuzzy
msgid "both %<long%> and %<void%> in declaration specifiers"
msgstr "både long och short angivet för \"%s\""
-#: c-decl.c:6798 c-decl.c:6925
+#: c-decl.c:6856 c-decl.c:6983
#, fuzzy
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
msgstr "både long och short angivet för \"%s\""
-#: c-decl.c:6801 c-decl.c:6944
+#: c-decl.c:6859 c-decl.c:7002
#, fuzzy
msgid "both %<long%> and %<char%> in declaration specifiers"
msgstr "både long och short angivet för \"%s\""
-#: c-decl.c:6804 c-decl.c:6957
+#: c-decl.c:6862 c-decl.c:7015
#, fuzzy
msgid "both %<long%> and %<float%> in declaration specifiers"
msgstr "både long och short angivet för \"%s\""
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6835 c-decl.c:6855
+#: c-decl.c:6893 c-decl.c:6913
#, fuzzy
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6838 c-decl.c:6912
+#: c-decl.c:6896 c-decl.c:6970
#, fuzzy
msgid "both %<signed%> and %<void%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6841 c-decl.c:6931
+#: c-decl.c:6899 c-decl.c:6989
#, fuzzy
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6844 c-decl.c:6963
+#: c-decl.c:6902 c-decl.c:7021
#, fuzzy
msgid "both %<signed%> and %<float%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6847 c-decl.c:6979
+#: c-decl.c:6905 c-decl.c:7037
#, fuzzy
msgid "both %<signed%> and %<double%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6858 c-decl.c:6915
+#: c-decl.c:6916 c-decl.c:6973
#, fuzzy
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6861 c-decl.c:6934
+#: c-decl.c:6919 c-decl.c:6992
#, fuzzy
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6864 c-decl.c:6966
+#: c-decl.c:6922 c-decl.c:7024
#, fuzzy
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6867 c-decl.c:6982
+#: c-decl.c:6925 c-decl.c:7040
#, fuzzy
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:6875
+#: c-decl.c:6933
#, fuzzy
msgid "ISO C90 does not support complex types"
msgstr "ISO C89 stöder inte typen complex"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
msgstr ""
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
msgstr ""
-#: c-decl.c:7019
+#: c-decl.c:7077
#, c-format
msgid "%qs fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:7051
+#: c-decl.c:7109
#, fuzzy, c-format
msgid "%qs is not at beginning of declaration"
msgstr "\"%s\" är inte i början av deklarationen"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
msgstr ""
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
msgstr ""
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
msgstr ""
-#: c-decl.c:7081 cp/parser.c:7114
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
msgstr ""
-#: c-decl.c:7090 cp/parser.c:7104
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
msgstr ""
-#: c-decl.c:7106
+#: c-decl.c:7164
#, fuzzy
msgid "multiple storage classes in declaration specifiers"
msgstr "flera lagringsklasser i deklaration av \"%s\""
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
msgstr ""
-#: c-decl.c:7167
+#: c-decl.c:7225
#, fuzzy
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:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C stöder inte komplexa heltalstyper"
-#: c-decl.c:7313 toplev.c:844
+#: c-decl.c:7371 toplev.c:848
#, fuzzy
msgid "%J%qF used but never defined"
msgstr "\"%s\" är använd men inte definierad"
@@ -2417,7 +2426,7 @@ msgstr ""
msgid "statement with no effect"
msgstr ""
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "break-sats som inte är i en loop eller switch"
@@ -2441,17 +2450,17 @@ msgstr ""
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "ignorerar ej existerande katalog \"%s\"\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\" sökning startar här:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "#include <...> sökning startar här:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Slut på söklistan.\n"
@@ -2512,37 +2521,29 @@ msgstr "flyttal utanför intervallet för \"%s\""
msgid "traditional C rejects string constant concatenation"
msgstr "traditionell C stödjer inte sträng-sammanslagning"
-#: c-objc-common.c:81
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: c-objc-common.c:91
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
msgstr ""
-#: c-objc-common.c:99
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
msgstr ""
-#: c-objc-common.c:114
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr ""
-
-#: c-objc-common.c:127
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr ""
-
-#: c-objc-common.c:263
+#: c-objc-common.c:244
#, fuzzy
msgid "used array that cannot be converted to pointer where scalar is required"
msgstr "fält-värde använd där skalär krävs"
-#: c-objc-common.c:267
+#: c-objc-common.c:248
#, fuzzy
msgid "used struct type value where scalar is required"
msgstr "struct-värde använt där skalär krävs"
-#: c-objc-common.c:271
+#: c-objc-common.c:252
#, fuzzy
msgid "used union type value where scalar is required"
msgstr "union-värde använt där skalär krävs"
@@ -2590,84 +2591,84 @@ msgstr ""
msgid "switch %qs is no longer supported"
msgstr "-f%s stödjs inte längre"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr ""
-#: c-opts.c:841
+#: c-opts.c:839
#, fuzzy
msgid "output filename specified twice"
msgstr "Utdatafilnamn angivet två gånger"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k ignorerad utan -Wformat"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args ignorerad utan -Wformat"
-#: c-opts.c:975
+#: c-opts.c:973
#, fuzzy
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-extra-args ignorerad utan -Wformat"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral ignorerad utan -Wformat"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security ignorerad utan -Wformat"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute ignorerad utan -Wformat"
-#: c-opts.c:995
+#: c-opts.c:998
#, fuzzy, c-format
msgid "opening output file %s: %m"
msgstr "Kan inte öppna utdatafil \"%s\""
-#: c-opts.c:1000
+#: c-opts.c:1003
#, 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:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
msgstr ""
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr ""
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr ""
-#: c-opts.c:1137
+#: c-opts.c:1140
#, fuzzy, c-format
msgid "when writing output to %s: %m"
msgstr "fel vid skrivning till %s"
-#: c-opts.c:1216
+#: c-opts.c:1220
#, fuzzy
msgid "to generate dependencies you must specify either -M or -MM"
msgstr "du måste dessutom ange antingen -M eller -MM"
-#: c-opts.c:1281
+#: c-opts.c:1287
#, fuzzy
msgid "<built-in>"
msgstr "<inbyggd>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr ""
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr ""
@@ -2679,16 +2680,16 @@ msgstr ""
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "syntaxfel"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "syntaxfel: kan inte backa tillbaka"
@@ -2741,111 +2742,115 @@ msgstr "första argumentet till \"__builtin_choose_expr\" är inte en konstant"
msgid "%<typeof%> applied to a bit-field"
msgstr "sizeof applicerat på ett bit-fält"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
#, fuzzy
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C89 förbjuder specifiering av subobjekt som skall initieras"
-#: c-parse.y:1375 objc/objc-parse.y:1424
+#: c-parse.y:1389 objc/objc-parse.y:1438
#, fuzzy
msgid "obsolete use of designated initializer without %<=%>"
msgstr "obsolet angivelse av initierare utan \"=\""
-#: c-parse.y:1379 objc/objc-parse.y:1428
+#: c-parse.y:1393 objc/objc-parse.y:1442
#, fuzzy
msgid "obsolete use of designated initializer with %<:%>"
msgstr "obsolet användning av initierare med \":\""
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C förbjuder nästlade funktioner"
-#: c-parse.y:1623 objc/objc-parse.y:1672
+#: c-parse.y:1637 objc/objc-parse.y:1686
#, fuzzy
msgid "ISO C forbids forward references to %<enum%> types"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "komma i slutet av uppräkningslista"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "inget semikolon vid slutet av struktur eller union"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "extra semikolon i struktur eller union angivet"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C förbjuder medlemsdeklarationer utan medlemmar"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr ""
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
#, fuzzy
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C89 förbjuder blandade deklarationer och kod"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr ""
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2249 objc/objc-parse.y:2344
+#: c-parse.y:2263 objc/objc-parse.y:2358
#, c-format
msgid "%E qualifier ignored on asm"
msgstr ""
-#: c-parse.y:2343 objc/objc-parse.y:2438
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr ""
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
#, fuzzy
msgid "ISO C requires a named argument before %<...%>"
msgstr "ISO C kräver ett namnsatt argument före \"...\""
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
#, fuzzy
msgid "syntax error; also virtual memory exhausted"
msgstr "parsningsfel; och det virtuella minnet tog slut"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "parsestack överfull"
-#: c-parse.y:2849 objc/objc-parse.y:3439
+#: c-parse.y:2877 objc/objc-parse.y:3467
#, fuzzy, c-format
msgid "syntax error at %qs token"
msgstr "syntaxfel vid token \"%s\""
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "parsningsfel"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
#, fuzzy
msgid "parse error; also virtual memory exhausted"
msgstr "parsningsfel; och det virtuella minnet tog slut"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
#, fuzzy
msgid "parse error: cannot back up"
msgstr "syntaxfel: kan inte backa tillbaka"
@@ -2972,189 +2977,189 @@ msgstr ""
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
msgstr ""
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr ""
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "skräp vid slutet av #pragma weak"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr ""
-#: c-pragma.c:384
+#: c-pragma.c:416
#, fuzzy
msgid "junk at end of #pragma redefine_extname"
msgstr "skräp vid slutet av #pragma weak"
-#: c-pragma.c:389
+#: c-pragma.c:421
#, fuzzy
msgid "#pragma redefine_extname not supported on this target"
msgstr "__builtin_eh_return stöds inte på denna målarkitektur"
-#: c-pragma.c:406 c-pragma.c:492
+#: c-pragma.c:438 c-pragma.c:524
#, fuzzy
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: c-pragma.c:429
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr ""
-#: c-pragma.c:451
+#: c-pragma.c:483
#, fuzzy
msgid "junk at end of #pragma extern_prefix"
msgstr "skräp vid slutet av #pragma weak"
-#: c-pragma.c:457
+#: c-pragma.c:489
#, fuzzy
msgid "#pragma extern_prefix not supported on this target"
msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
-#: c-pragma.c:483
+#: c-pragma.c:515
#, fuzzy
msgid "asm declaration ignored due to conflict with previous rename"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: c-pragma.c:514
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-pragma.c:592 c-pragma.c:621
+#: c-pragma.c:624 c-pragma.c:653
#, fuzzy
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr "saknas '(' efter predikat"
-#: c-pragma.c:596
+#: c-pragma.c:628
msgid "malformed #pragma GCC visibility push"
msgstr ""
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
msgstr ""
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
msgstr ""
-#: c-pragma.c:625
+#: c-pragma.c:657
#, fuzzy
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr "skräp vid slutet av \"#pragma %s\""
-#: c-typeck.c:138
+#: c-typeck.c:139
#, fuzzy, c-format
msgid "%qs has an incomplete type"
msgstr "\"%s\" har en inkomplett typ"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "ogiltig användning av void-uttryck"
-#: c-typeck.c:168
+#: c-typeck.c:169
#, fuzzy
msgid "invalid use of flexible array member"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr ""
-#: c-typeck.c:182
+#: c-typeck.c:183
#, fuzzy
msgid "invalid use of undefined type %<%s %s%>"
msgstr "ogiltig mottagartyp \"%s\""
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:186
+#: c-typeck.c:187
#, fuzzy, c-format
msgid "invalid use of incomplete typedef %qs"
msgstr "ogiltig mottagartyp \"%s\""
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr "funktionstyper inte riktigt kompatibla i ISO C"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "typerna är inte riktigt kompatibla"
-#: c-typeck.c:987
+#: c-typeck.c:1045
#, fuzzy
msgid "function return types not compatible due to %<volatile%>"
msgstr "funktionstyper inte riktigt kompatibla i ISO C"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "aritmetik på pekare till inkomplett typ"
-#: c-typeck.c:1483
+#: c-typeck.c:1559
#, fuzzy
msgid "%qT has no member named %qs"
msgstr "%s har ingen medlem med namn \"%s\""
-#: c-typeck.c:1519
+#: c-typeck.c:1595
#, fuzzy, c-format
msgid "request for member %qs 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:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "derefererar pekare till inkomplett typ"
-#: c-typeck.c:1552
+#: c-typeck.c:1633
#, fuzzy
msgid "dereferencing %<void *%> pointer"
msgstr "derefererar \"void *\"-pekare"
-#: c-typeck.c:1569 cp/typeck.c:2150
+#: c-typeck.c:1650 cp/typeck.c:2109
#, fuzzy, c-format
msgid "invalid type argument of %qs"
msgstr "ogiltigt typargument till \"%s\""
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "fältindex är inte ett heltal"
-#: c-typeck.c:1614
+#: c-typeck.c:1695
#, fuzzy
msgid "subscripted value is pointer to function"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: c-typeck.c:1627 cp/typeck.c:2216
+#: c-typeck.c:1708 cp/typeck.c:2175
#, fuzzy
msgid "array subscript has type %<char%>"
msgstr "fältindex har typen \"char\""
-#: c-typeck.c:1667
+#: c-typeck.c:1748
#, fuzzy
msgid "ISO C forbids subscripting %<register%> array"
msgstr "ISO C++ förbjuder tilldelning av fält"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
#, fuzzy
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C++ förbjuder tilldelning av fält"
-#: c-typeck.c:1904
+#: c-typeck.c:1987
#, fuzzy, c-format
msgid "called object %qE is not a function"
msgstr "anropat objekt är inte en funktion"
@@ -3162,814 +3167,810 @@ msgstr "anropat objekt är inte en funktion"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
#, fuzzy
msgid "function called through a non-compatible type"
msgstr "sizeof applicerat på en inkomplett typ"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr ""
-#: c-typeck.c:2044
+#: c-typeck.c:2127
#, fuzzy, c-format
msgid "too many arguments to function %qE"
msgstr "för många argument till funktion"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:2084
+#: c-typeck.c:2167
#, fuzzy, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
msgstr "%s som complex istället för heltal grund av prototyp"
-#: c-typeck.c:2089
+#: c-typeck.c:2172
#, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2094
+#: c-typeck.c:2177
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
msgstr "%s som complex istället för heltal grund av prototyp"
-#: c-typeck.c:2099
+#: c-typeck.c:2182
#, fuzzy, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
msgstr "%s som complex istället för heltal grund av prototyp"
-#: c-typeck.c:2104
+#: c-typeck.c:2187
#, fuzzy, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
msgstr "%s som complex istället för heltal grund av prototyp"
-#: c-typeck.c:2109
+#: c-typeck.c:2192
#, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:2121
+#: c-typeck.c:2204
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
msgstr ""
-#: c-typeck.c:2141
+#: c-typeck.c:2224
#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
msgstr ""
-#: c-typeck.c:2168
+#: c-typeck.c:2251
#, fuzzy, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
msgstr "%s som unsigned på grund av prototyp"
-#: c-typeck.c:2171
+#: c-typeck.c:2254
#, fuzzy, c-format
msgid "passing argument %d of %qE as signed due to prototype"
msgstr "%s som signed på grund av prototyp"
-#: c-typeck.c:2202
+#: c-typeck.c:2285
#, fuzzy, c-format
msgid "too few arguments to function %qE"
msgstr "för få argument till funktion"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "föreslår parenteser runt + eller - inuti skift"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "föreslår parenteser runt && inuti ||"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "föreslår parenteser runt aritmetik inuti operanden till |"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "föreslår parenteser runt jämförelse inuti operanden till |"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "föreslår parenteser runt aritmetik inuti operanden till ^"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "föreslår parenteser runt jämförelse inuti operanden till ^"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "föreslår parenteser runt + eller - inuti operanden till &"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "föreslår parenteser runt jämförelser inuti operanden till &"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
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:2314
+#: c-typeck.c:2397
#, fuzzy
msgid "pointer of type %<void *%> used in subtraction"
msgstr "pekare av typ \"void *\" använd i subtraktion"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "pekare till funktion använd i subtraktion"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2435
+#: c-typeck.c:2518
#, fuzzy
msgid "ISO C does not support %<~%> for complex conjugation"
msgstr "ISO C stödjer inte ~ för komplex konjugering"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "fel typ på argument till abs"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2512
+#: c-typeck.c:2595
#, fuzzy
msgid "ISO C does not support %<++%> and %<--%> on complex types"
msgstr "ISO C stöder inte \"++\" och \"--\" på komplexa typer"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
#, fuzzy
msgid "wrong type argument to increment"
msgstr "fel typ på argument till %s"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
#, fuzzy
msgid "wrong type argument to decrement"
msgstr "fel typ på argument till %s"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2723
+#: c-typeck.c:2806
#, c-format
msgid "assignment of read-only member %qs"
msgstr ""
-#: c-typeck.c:2724
+#: c-typeck.c:2807
#, c-format
msgid "increment of read-only member %qs"
msgstr ""
-#: c-typeck.c:2725
+#: c-typeck.c:2808
#, c-format
msgid "decrement of read-only member %qs"
msgstr ""
-#: c-typeck.c:2729
+#: c-typeck.c:2812
#, c-format
msgid "assignment of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2730
+#: c-typeck.c:2813
#, c-format
msgid "increment of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2731
+#: c-typeck.c:2814
#, c-format
msgid "decrement of read-only variable %qs"
msgstr ""
-#: c-typeck.c:2734
+#: c-typeck.c:2817
msgid "assignment of read-only location"
msgstr ""
-#: c-typeck.c:2735
+#: c-typeck.c:2818
msgid "increment of read-only location"
msgstr ""
-#: c-typeck.c:2736
+#: c-typeck.c:2819
msgid "decrement of read-only location"
msgstr ""
-#: c-typeck.c:2755
+#: c-typeck.c:2838
#, fuzzy
msgid "cannot take address of bit-field %qD"
msgstr "kan inte ta adressen till bitfält \"%s\""
-#: c-typeck.c:2783
+#: c-typeck.c:2866
#, fuzzy
msgid "global register variable %qD used in nested function"
msgstr "global registervariabel \"%s\" använd i nästlad funktion"
-#: c-typeck.c:2786
+#: c-typeck.c:2869
#, fuzzy
msgid "register variable %qD used in nested function"
msgstr "registervariabel \\\"%s\\\" använd i nästlad funktion"
-#: c-typeck.c:2791
+#: c-typeck.c:2874
#, fuzzy
msgid "address of global register variable %qD requested"
msgstr "adress på global registervariabel \"%s\" efterfrågad"
-#: c-typeck.c:2793
+#: c-typeck.c:2876
#, fuzzy
msgid "address of register variable %qD requested"
msgstr "adress på register variabel \"%s\" efterfrågad"
-#: c-typeck.c:2841
+#: c-typeck.c:2924
#, fuzzy
msgid "non-lvalue array in conditional expression"
msgstr "typfel i villkorsuttryck"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "typ signed och unsigned i villkorsuttryck"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:2908 c-typeck.c:2916
+#: c-typeck.c:2991 c-typeck.c:2999
#, fuzzy
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
msgstr "ISO C förbjuder jämförelse mellan \"void *\" och funktionspekare"
-#: c-typeck.c:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "typfel i villkorsuttryck"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
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:3120
+#: c-typeck.c:3203
#, 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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "typkonvertering från pekare till heltal av annan storlek"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
msgstr ""
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "typkonvertering till pekare från heltal med annan storlek"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3178
+#: c-typeck.c:3261
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3181
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr ""
-#: c-typeck.c:3193
+#: c-typeck.c:3276
#, fuzzy
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C++ förbjuder användning av pekare till medlem i pekararitmetik"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
#, fuzzy
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C förbjuder jämförelse mellan \"void *\" och funktionspekare"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
#, fuzzy
msgid "cannot pass rvalue to reference parameter"
msgstr "kan inte deklarera pekare till referenser"
-#: c-typeck.c:3566 c-typeck.c:3675
+#: c-typeck.c:3646 c-typeck.c:3761
#, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3569 c-typeck.c:3678
+#: c-typeck.c:3649 c-typeck.c:3764
msgid "assignment makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3572 c-typeck.c:3680
+#: c-typeck.c:3652 c-typeck.c:3766
msgid "initialization makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3575 c-typeck.c:3682
+#: c-typeck.c:3655 c-typeck.c:3768
msgid "return makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:3579 c-typeck.c:3643
+#: c-typeck.c:3659 c-typeck.c:3729
#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3581 c-typeck.c:3645
+#: c-typeck.c:3661 c-typeck.c:3731
msgid "assignment discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3583 c-typeck.c:3647
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "initialization discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3585 c-typeck.c:3649
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "return discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3590
+#: c-typeck.c:3670
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:3628
+#: c-typeck.c:3714
#, fuzzy
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
msgstr "ISO C förbjuder %s mellan funktionspekare och \"void *\""
-#: c-typeck.c:3631
+#: c-typeck.c:3717
#, fuzzy
msgid "ISO C forbids assignment between function pointer and %<void *%>"
msgstr "ISO C förbjuder %s mellan funktionspekare och \"void *\""
-#: c-typeck.c:3633
+#: c-typeck.c:3719
#, fuzzy
msgid "ISO C forbids initialization between function pointer and %<void *%>"
msgstr "ISO C förbjuder %s mellan funktionspekare och \"void *\""
-#: c-typeck.c:3635
+#: c-typeck.c:3721
#, fuzzy
msgid "ISO C forbids return between function pointer and %<void *%>"
msgstr "ISO C förbjuder %s mellan funktionspekare och \"void *\""
-#: c-typeck.c:3658
+#: c-typeck.c:3744
#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
msgstr ""
-#: c-typeck.c:3660
+#: c-typeck.c:3746
msgid "pointer targets in assignment differ in signedness"
msgstr ""
-#: c-typeck.c:3662
+#: c-typeck.c:3748
msgid "pointer targets in initialization differ in signedness"
msgstr ""
-#: c-typeck.c:3664
+#: c-typeck.c:3750
msgid "pointer targets in return differ in signedness"
msgstr ""
-#: c-typeck.c:3687
+#: c-typeck.c:3773
#, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
msgstr ""
-#: c-typeck.c:3689
+#: c-typeck.c:3775
#, fuzzy
msgid "assignment from incompatible pointer type"
msgstr "uttryckssats har inkomplett typ"
-#: c-typeck.c:3690
+#: c-typeck.c:3776
#, fuzzy
msgid "initialization from incompatible pointer type"
msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
-#: c-typeck.c:3692
+#: c-typeck.c:3778
#, fuzzy
msgid "return from incompatible pointer type"
msgstr "returtypen är en inkomplett typ"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr ""
# fixme: vad är %s
-#: c-typeck.c:3713
+#: c-typeck.c:3799
#, fuzzy, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3715
+#: c-typeck.c:3801
#, fuzzy
msgid "assignment makes pointer from integer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3717
+#: c-typeck.c:3803
#, fuzzy
msgid "initialization makes pointer from integer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3719
+#: c-typeck.c:3805
#, fuzzy
msgid "return makes pointer from integer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3726
+#: c-typeck.c:3812
#, fuzzy, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3728
+#: c-typeck.c:3814
#, fuzzy
msgid "assignment makes integer from pointer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3730
+#: c-typeck.c:3816
#, fuzzy
msgid "initialization makes integer from pointer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
# fixme: vad är %s
-#: c-typeck.c:3732
+#: c-typeck.c:3818
#, fuzzy
msgid "return makes integer from pointer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
+#: c-typeck.c:3831
#, fuzzy, c-format
msgid "incompatible type for argument %d of %qE"
msgstr "inkompatibla typer i %s"
-#: c-typeck.c:3748
+#: c-typeck.c:3834
#, fuzzy
msgid "incompatible types in assignment"
msgstr "inkompatibla typer i %s"
-#: c-typeck.c:3751
+#: c-typeck.c:3837
#, fuzzy
msgid "incompatible types in initialization"
msgstr "inkompatibla typer i %s"
-#: c-typeck.c:3754
+#: c-typeck.c:3840
#, fuzzy
msgid "incompatible types in return"
msgstr "inkompatibla typer i %s"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
#, fuzzy, c-format
msgid "(near initialization for %qs)"
msgstr "initiering"
-#: c-typeck.c:4047
+#: c-typeck.c:4133
#, fuzzy
msgid "array initialized from parenthesized string constant"
msgstr "initierare för statisk variabel är inte konstant"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4116
+#: c-typeck.c:4202
msgid "wchar_t-array initialized from non-wide string"
msgstr ""
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4140
+#: c-typeck.c:4226
msgid "array of inappropriate type initialized from string constant"
msgstr ""
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr ""
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
#, fuzzy
msgid "opaque vector types cannot be initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr ""
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:4887
+#: c-typeck.c:4988
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr ""
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr ""
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5104
+#: c-typeck.c:5199
#, fuzzy
msgid "array index in initializer not of integer type"
msgstr "variabel \"%s\" har initierare men är av inkomplett typ"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5193
+#: c-typeck.c:5288
#, fuzzy, c-format
msgid "unknown field %qs specified in initializer"
msgstr "fält \"%s\" är redan initierat"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr ""
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6362
+#: c-typeck.c:6492
#, fuzzy
msgid "ISO C forbids %<goto *expr;%>"
msgstr "ISO C förbjuder \"goto *expr;\""
-#: c-typeck.c:6376 cp/typeck.c:6160
+#: c-typeck.c:6506 cp/typeck.c:6049
msgid "function declared %<noreturn%> has a %<return%> statement"
msgstr ""
-#: c-typeck.c:6383
+#: c-typeck.c:6513
#, fuzzy
msgid "%<return%> with no value, in function returning non-void"
msgstr "\"return\" med värde i funktion som returnerar void"
-#: c-typeck.c:6390
+#: c-typeck.c:6520
#, fuzzy
msgid "%<return%> with a value, in function returning void"
msgstr "\"return\" med värde i funktion som returnerar void"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "funktionen returnerar adress till en lokal variabel"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "switch-argument är inte ett heltal"
-#: c-typeck.c:6518
+#: c-typeck.c:6649
msgid "%<long%> switch expression not converted to %<int%> in ISO C"
msgstr ""
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "case-etikett är inte i en switch-sats"
-#: c-typeck.c:6557
+#: c-typeck.c:6687
#, fuzzy
msgid "%<default%> label not within a switch statement"
msgstr "\"default\"-etikett är inte i en switch-sats"
-#: c-typeck.c:6621
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
msgstr ""
-#: c-typeck.c:6631
+#: c-typeck.c:6761
#, fuzzy
msgid "%Hempty body in an if-statement"
msgstr "tom kropp i else-sats"
-#: c-typeck.c:6639
+#: c-typeck.c:6769
#, fuzzy
msgid "%Hempty body in an else-statement"
msgstr "tom kropp i else-sats"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "continue-sats som inte är i en loop"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr ""
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "uttryckssats har inkomplett typ"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr ""
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "högershiftoperanden är negativ"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
msgid "right shift count >= width of type"
msgstr "högershiftoperanden >= storleken på typen"
-#: c-typeck.c:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "vänstershiftoperanden är negativ"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
msgid "left shift count >= width of type"
msgstr "vänstershiftoperanden >= storleken på typen"
-#: c-typeck.c:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
msgid "comparing floating point with == or != is unsafe"
msgstr "jämföra flyttal med == eller != är osäkert"
-#: c-typeck.c:7255 c-typeck.c:7262
+#: c-typeck.c:7408 c-typeck.c:7415
#, fuzzy
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:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "jämförelse mellan pekare och heltal"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "jämförelse av kompletta och inkompletta pekare"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
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:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "jämföreslse mellan signed och unsigned"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr ""
@@ -4013,7 +4014,7 @@ msgstr ""
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
@@ -4122,310 +4123,310 @@ msgstr ""
msgid "%s does not support flow_call_edges_add"
msgstr ""
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, c-format
msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: cfgloop.c:1345
+#: cfgloop.c:1353
#, c-format
msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: cfgloop.c:1350
+#: cfgloop.c:1358
#, c-format
msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1363
#, c-format
msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: cfgloop.c:1361
+#: cfgloop.c:1369
#, c-format
msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr ""
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr ""
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr ""
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
msgstr ""
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1954
+#: cfgrtl.c:1962
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1966
+#: cfgrtl.c:1974
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, fuzzy, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr "Föredra hopp framför villkorlig körning"
-#: cfgrtl.c:2059
+#: cfgrtl.c:2067
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2068
+#: cfgrtl.c:2076
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2080
+#: cfgrtl.c:2088
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2084
+#: cfgrtl.c:2092
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr ""
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:231
+#: cgraph.c:278
#, fuzzy
msgid "function body not available"
msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr ""
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
#, fuzzy
msgid "function not considered for inlining"
msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
#, fuzzy
msgid "function not inlinable"
msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
msgstr ""
-#: cgraphunit.c:508
+#: cgraphunit.c:518
#, fuzzy
msgid "Edge points to wrong declaration:"
msgstr "detta är en tidigare deklaration"
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
+#: cgraphunit.c:553
#, c-format
msgid "Aux field set for edge %s->%s"
msgstr ""
-#: cgraphunit.c:555
+#: cgraphunit.c:565
#, fuzzy
msgid "Inlined_to pointer is wrong"
msgstr "sektionspekare saknas"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
msgstr ""
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
msgstr ""
-#: cgraphunit.c:797
+#: cgraphunit.c:807
#, fuzzy
msgid "failed to reclaim unneeded function"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr ""
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr ""
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr ""
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr ""
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr ""
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
+#: collect2.c:402 gcc.c:6733
#, fuzzy, c-format
msgid "internal gcc abort in %s, at %s:%d"
msgstr "Internt kompilatorfel i %s, vid %s:%d"
@@ -4434,158 +4435,158 @@ msgstr "Internt kompilatorfel i %s, vid %s:%d"
msgid "no arguments"
msgstr "inga argument"
-#: collect2.c:1187
+#: collect2.c:1194
#, fuzzy, c-format
msgid "unknown demangling style '%s'"
msgstr "okänt maskinläge `%s'"
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr ""
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d konstruerare hittad(e)\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d destruerare hittad(e)\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr ""
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s terminerade med signal %d [%s]%s"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s returnerade avslutningsstatus %d"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[kan inte hitta %s]"
-#: collect2.c:1565
+#: collect2.c:1572
#, fuzzy, c-format
msgid "cannot find '%s'"
msgstr "kan inte hitta \"%s\""
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "omdirigerar stdout: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Lämnar %s]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
-#: collect2.c:2042
+#: collect2.c:2049
#, fuzzy
msgid "cannot find 'nm'"
msgstr "kan inte hitta \"nm\""
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "rör"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr ""
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr ""
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
+#: collect2.c:2216
#, fuzzy
msgid "cannot find 'ldd'"
msgstr "kan inte hitta \"ldd\""
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
msgstr ""
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr ""
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: är inte en COFF-fil"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: kan inte öppna som COFF-fil"
-#: collect2.c:2631
+#: collect2.c:2641
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "Hittade inte bibliotek lib%s"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4593,7 +4594,7 @@ msgid ""
"\n"
msgstr ""
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4705,7 +4706,7 @@ msgstr ""
msgid "too many input files"
msgstr "för många indatafiler"
-#: cse.c:6784
+#: cse.c:6772
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
@@ -4764,32 +4765,24 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s är inte implementerad\n"
-#: emit-rtl.c:1215
-msgid "can't access real part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:1242
-msgid "can't access imaginary part of complex value in hard register"
-msgstr ""
-
-#: emit-rtl.c:2303
+#: emit-rtl.c:2232
#, fuzzy
msgid "Invalid rtl sharing found in the insn"
msgstr "ogiltig operand för %V"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr ""
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
msgstr ""
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr ""
@@ -4807,7 +4800,7 @@ msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return stöds inte på denna målarkitektur"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr ""
@@ -4857,170 +4850,170 @@ msgstr ""
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr ""
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr ""
-#: flow.c:495 flow.c:519 flow.c:541
+#: flow.c:494 flow.c:518 flow.c:540
#, fuzzy
msgid "internal consistency failure"
msgstr "Intern gcc-halt (abort)."
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "jämförelsen är alltid %d"
-#: fold-const.c:4899
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4904
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:831 varasm.c:1569
+#: function.c:832 varasm.c:1584
#, fuzzy
msgid "%Jsize of variable %qD is too large"
msgstr "storleken på variabel \"%s\" är för stor"
-#: function.c:1442
+#: function.c:1443
msgid "impossible constraint in %<asm%>"
msgstr ""
-#: function.c:3495
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3516
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr ""
-#: function.c:4249
+#: function.c:4368
#, fuzzy
msgid "%Junused parameter %qD"
msgstr "oanvänd parameter \"%s\""
-#: gcc.c:1242
+#: gcc.c:1237
#, fuzzy, c-format
msgid "ambiguous abbreviation %s"
msgstr "Tvetydig förkortning %s"
-#: gcc.c:1269
+#: gcc.c:1264
#, fuzzy, c-format
msgid "incomplete '%s' option"
msgstr "Inkomplett flagga \"%s\""
-#: gcc.c:1280
+#: gcc.c:1275
#, fuzzy, c-format
msgid "missing argument to '%s' option"
msgstr "Saknar argument till flaggan \"%s\""
-#: gcc.c:1293
+#: gcc.c:1288
#, fuzzy, c-format
msgid "extraneous argument to '%s' option"
msgstr "Saknar argument till flaggan \"%s\""
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr ""
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2057
+#: gcc.c:2047
#, fuzzy, c-format
msgid "could not find specs file %s\n"
msgstr "Kunde inte öppna källkodsfil %s.\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:2116
+#: gcc.c:2106
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr ""
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
"\n"
msgstr ""
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "specfilen har ingen spec för länkning"
-#: gcc.c:2635
+#: gcc.c:2625
#, c-format
msgid "system path '%s' is not absolute"
msgstr ""
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe stöds inte"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5028,7 +5021,7 @@ msgstr ""
"\n"
"Fortsätta? (y eller n) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5039,69 +5032,69 @@ msgstr ""
"Var vänlig och skicka in en felrapport.\n"
"Se %s för instruktioner."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Användning: %s [flaggor] fil...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Flaggor:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Visa den här informatationen\n"
-#: gcc.c:3038
+#: gcc.c:3028
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help Visa specifika kommandoradsflaggor för mål\n"
-#: gcc.c:3040
+#: gcc.c:3030
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:3041
+#: gcc.c:3031
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Visa de inbyggda spec-strängarna\n"
-#: gcc.c:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Visa kompilatorns version\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Visa kompilatorns målprocessor\n"
-#: gcc.c:3044
+#: gcc.c:3034
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:3045
+#: gcc.c:3035
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:3046
+#: gcc.c:3036
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:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5109,102 +5102,102 @@ msgstr ""
" -print-multi-lib Visa mappningen mellan kommandoradsflaggor och\n"
" multipla biblioteks sökkataloger\n"
-#: gcc.c:3052
+#: gcc.c:3042
#, 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:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<flaggor> Skicka kommaseparerade <flaggor> till assembleraren\n"
-#: gcc.c:3054
+#: gcc.c:3044
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<flaggor> Skicka kommaseparerade <flaggor> till preprocessorn\n"
-#: gcc.c:3055
+#: gcc.c:3045
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<flaggor> Skicka kommaseparerade <flaggor> till länkaren\n"
-#: gcc.c:3056
+#: gcc.c:3046
#, fuzzy
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
-#: gcc.c:3057
+#: gcc.c:3047
#, fuzzy
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
-#: gcc.c:3059
+#: gcc.c:3049
#, fuzzy
msgid " -combine Pass multiple source files to compiler at once\n"
msgstr " -quiet Visa inte kompilerade funktioner eller tiden som förbrukats\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Radera inte temporära filer\n"
-#: gcc.c:3061
+#: gcc.c:3051
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:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Mät tiden det tar att exekvera varje barnprocess\n"
-#: gcc.c:3063
+#: gcc.c:3053
#, 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:3064
+#: gcc.c:3054
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:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
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:3067
+#: gcc.c:3057
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:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Visa vilka program som körs av kompilatorn\n"
-#: gcc.c:3069
+#: gcc.c:3059
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3070
+#: gcc.c:3060
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:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Kompilera bara; assemblera och länka inte\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Kompilera och assemblera, men länka inte\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fil> Placera utdata i <fil>\n"
-#: gcc.c:3074
+#: gcc.c:3064
#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
@@ -5217,7 +5210,7 @@ msgstr ""
" 'none' innebär att man använder standardmetoden,\n"
" att man gissar språk beroende på filändelse\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5230,28 +5223,28 @@ msgstr ""
"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:3201
+#: gcc.c:3191
#, c-format
msgid "'-%c' option must have argument"
msgstr ""
-#: gcc.c:3223
+#: gcc.c:3213
#, c-format
msgid "couldn't run '%s': %s"
msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr ""
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5259,97 +5252,97 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:3512
+#: gcc.c:3502
#, fuzzy
msgid "argument to '-Xlinker' is missing"
msgstr "argument till \"-Xlinker\" saknas"
-#: gcc.c:3520
+#: gcc.c:3510
#, fuzzy
msgid "argument to '-Xpreprocessor' is missing"
msgstr "argument till \"-specs\" saknas"
-#: gcc.c:3527
+#: gcc.c:3517
#, fuzzy
msgid "argument to '-Xassembler' is missing"
msgstr "argument till \"-Xlinker\" saknas"
-#: gcc.c:3534
+#: gcc.c:3524
#, fuzzy
msgid "argument to '-l' is missing"
msgstr "argument till \"-x\" saknas"
-#: gcc.c:3555
+#: gcc.c:3545
#, fuzzy
msgid "argument to '-specs' is missing"
msgstr "argument till \"-specs\" saknas"
-#: gcc.c:3569
+#: gcc.c:3559
#, fuzzy
msgid "argument to '-specs=' is missing"
msgstr "argument till \"-specs=\" saknas"
-#: gcc.c:3606
+#: gcc.c:3596
#, c-format
msgid "'-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3615
+#: gcc.c:3605
#, fuzzy
msgid "argument to '-B' is missing"
msgstr "argument till \"-B\" saknas"
-#: gcc.c:3788
+#: gcc.c:3778
#, fuzzy
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "Varning: -pipe ignorerad eftersom -save-temps angiven"
-#: gcc.c:3792
+#: gcc.c:3782
#, fuzzy
msgid "warning: -pipe ignored because -time specified"
msgstr "Varning: -pipe ignorerad eftersom -time angiven"
-#: gcc.c:4004
+#: gcc.c:3994
#, fuzzy
msgid "argument to '-x' is missing"
msgstr "argument till \"-x\" saknas"
-#: gcc.c:4032
+#: gcc.c:4022
#, fuzzy, c-format
msgid "argument to '-%s' is missing"
msgstr "argument till \"-%s\" saknas"
-#: gcc.c:4093
+#: gcc.c:4083
#, c-format
msgid "warning: '-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
msgstr ""
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
msgstr ""
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
+#: gcc.c:4726
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%0%c'"
msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: gcc.c:4933
+#: gcc.c:4923
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%W%c"
msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: gcc.c:4964
+#: gcc.c:4954
#, fuzzy, c-format
msgid "spec '%s' has invalid '%%x%c'"
msgstr "bitfält \"%s\" har en icke godkänd typ"
@@ -5357,89 +5350,89 @@ msgstr "bitfält \"%s\" har en icke godkänd typ"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: gcc.c:5203
+#: gcc.c:5176
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5266
+#: gcc.c:5239
#, fuzzy, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "ej igenkänd flagga `-%s'"
-#: gcc.c:5345
+#: gcc.c:5318
#, fuzzy, c-format
msgid "unknown spec function '%s'"
msgstr "okänt maskinläge `%s'"
-#: gcc.c:5364
+#: gcc.c:5337
#, fuzzy, c-format
msgid "error in args to spec function '%s'"
msgstr "för många argument till funktionen \"%s\""
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr ""
#. )
-#: gcc.c:5415
+#: gcc.c:5388
#, fuzzy
msgid "no arguments for spec function"
msgstr "för få argument till funktion"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
msgstr ""
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
msgstr ""
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr ""
-#: gcc.c:6274
+#: gcc.c:6263
#, fuzzy, c-format
msgid "unrecognized option '-%s'"
msgstr "ej igenkänd flagga `-%s'"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "program: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "bibliotek: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5448,72 +5441,77 @@ msgstr ""
"\n"
"Instruktioner för bugrapportering, se:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, fuzzy, c-format
+msgid "Target: %s\n"
+msgstr "bibliotek: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc version %s\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr ""
-#: gcc.c:6390
+#: gcc.c:6380
#, fuzzy
msgid "no input files"
msgstr "Inga indatafiler"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: kompilatorn %s är inte installerad på detta system"
-#: gcc.c:6470
+#: gcc.c:6460
#, fuzzy, c-format
msgid "spec '%s' is invalid"
msgstr "typedef \"%s\" är initierad"
-#: gcc.c:6607
+#: gcc.c:6596
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "språk %s känns inte igen"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
+#: gcc.c:6927
#, fuzzy, c-format
msgid "multilib spec '%s' is invalid"
msgstr "typedef \"%s\" är initierad"
-#: gcc.c:7130
+#: gcc.c:7119
#, c-format
msgid "multilib exclusions '%s' is invalid"
msgstr ""
-#: gcc.c:7188 gcc.c:7329
+#: gcc.c:7177 gcc.c:7318
#, fuzzy, c-format
msgid "multilib select '%s' is invalid"
msgstr "parameter \"%s\" är initierad"
-#: gcc.c:7367
+#: gcc.c:7356
#, c-format
msgid "multilib exclusion '%s' is invalid"
msgstr ""
@@ -5796,28 +5794,28 @@ msgid "%s:source file is newer than graph file '%s'\n"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr ""
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
#, fuzzy
msgid "jump bypassing disabled"
msgstr "flaggan -g är avslagen."
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr ""
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr ""
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, fuzzy, c-format
msgid "can't write PCH file: %m"
@@ -5834,7 +5832,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "kan inte skriva till %s"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, fuzzy, c-format
msgid "can't read PCH file: %m"
msgstr "kan inte läsa från %s"
@@ -5843,12 +5841,12 @@ msgstr "kan inte läsa från %s"
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
#, fuzzy
msgid "can't write PCH file"
msgstr "kan inte skriva till %s"
@@ -5857,27 +5855,27 @@ msgstr "kan inte skriva till %s"
msgid "unexpected node"
msgstr ""
-#: gimplify.c:3137
+#: gimplify.c:3317
#, fuzzy, c-format
msgid "invalid lvalue in asm output %d"
msgstr "ogiltigt lvalue i tilldelning"
-#: gimplify.c:3185
+#: gimplify.c:3364
#, c-format
msgid "memory input %d is not directly addressable"
msgstr ""
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, fuzzy, c-format
msgid "%s cannot be used in asm here"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, fuzzy, c-format
msgid "can't open %s: %m"
msgstr "kan inte öppna %s"
@@ -5937,90 +5935,100 @@ msgstr "första argumentet till \"%s\" skall vara \"int\""
msgid "unrecognized command line option \"%s\""
msgstr "Ignorerar kommandoradsflagga \"%s\""
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
msgstr ""
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
msgstr ""
-#: opts.c:820
+#: opts.c:821
#, fuzzy, c-format
msgid "structure alignment must be a small power of two, not %d"
msgstr "efterrågad minnesjustering är inte en potens av 2"
-#: opts.c:885
+#: opts.c:886
#, fuzzy, c-format
msgid "unrecognised visibility value \"%s\""
msgstr "Känner inte igen sektionsnamn \"%s\""
-#: opts.c:937
+#: opts.c:938
#, fuzzy, c-format
msgid "unrecognized register name \"%s\""
msgstr "Känner inte igen registernamn \"%s\""
-#: opts.c:957
+#: opts.c:962
#, fuzzy, c-format
msgid "unknown tls-model \"%s\""
msgstr "okänt maskinläge `%s'"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1037
+#: opts.c:1042
#, fuzzy, c-format
msgid "invalid --param value %qs"
msgstr "ogiltigt parametervärde \"%s\""
-#: opts.c:1133
+#: opts.c:1139
#, fuzzy
msgid "target system does not support debug output"
msgstr "målprocessorn stödjer inte THUMB-instruktioner"
-#: opts.c:1140
+#: opts.c:1146
#, fuzzy, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: opts.c:1156
+#: opts.c:1162
#, fuzzy, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "Känner inte igen sektionsnamn \"%s\""
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr ""
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
"\n"
msgstr ""
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr ""
+#: params.c:72
+#, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr ""
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr ""
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
+#: params.c:86
#, fuzzy, c-format
msgid "invalid parameter %qs"
msgstr "ogiltigt parametervärde \"%s\""
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr ""
@@ -6350,94 +6358,90 @@ msgstr ""
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: indatafilnamn måste ha ändelsen .c: %s\n"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr ""
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:631
+#: reg-stack.c:632
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:691
+#: reg-stack.c:692
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:711
#, fuzzy
msgid "output operand %d must use %<&%> constraint"
msgstr "fältinitierare är ej konstant"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "okänt registernamn: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr ""
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:796
+#: regclass.c:800
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1876
+#: regrename.c:1872
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1903
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1252
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
msgstr ""
-#: reload.c:1275
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
msgstr ""
-#: reload.c:3513
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
msgstr ""
-#: reload.c:3679
+#: reload.c:3705
#, fuzzy
msgid "unable to generate reloads for:"
msgstr "Välj CPU att generera kod för"
-#: reload.c:3680 reload.c:3912
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
msgstr ""
@@ -6449,39 +6453,39 @@ msgstr ""
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1866
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
msgstr ""
-#: reload1.c:1871
+#: reload1.c:1870
#, c-format
msgid "unable to find a register to spill in class %qs"
msgstr ""
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr ""
-#: reload1.c:3864
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr ""
-#: reload1.c:4988
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
#, fuzzy
msgid "VOIDmode on an output"
msgstr "I/O-fel vid utmatning"
-#: reload1.c:6607
+#: reload1.c:6615
#, fuzzy
msgid "output operand is constant in %<asm%>"
msgstr "fältinitierare är ej konstant"
@@ -6495,147 +6499,147 @@ msgstr "ej igenkänd flagga `-%s'"
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:472
+#: rtl.c:471
#, c-format
msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:482
+#: rtl.c:481
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:492
+#: rtl.c:491
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:501
+#: rtl.c:500
#, c-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:511
+#: rtl.c:510
#, c-format
msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:522
+#: rtl.c:521
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:533
+#: rtl.c:532
#, c-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr ""
-#: stmt.c:316
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
msgstr ""
-#: stmt.c:331
+#: stmt.c:332
#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:354
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr ""
-#: stmt.c:361 stmt.c:460
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
msgstr ""
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:451
+#: stmt.c:452
#, c-format
msgid "input operand constraint contains %qc"
msgstr ""
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:531
+#: stmt.c:532
#, fuzzy, c-format
msgid "invalid punctuation %qc in constraint"
msgstr "ogiltigt suffix på heltalskonstant"
-#: stmt.c:555
+#: stmt.c:556
#, fuzzy
msgid "matching constraint does not allow a register"
msgstr "flyttalskonstant utanför sitt intervall"
-#: stmt.c:583
+#: stmt.c:584
#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
msgstr ""
-#: stmt.c:672
+#: stmt.c:673
#, fuzzy
msgid "unknown register name %qs in %<asm%>"
msgstr "okänt registernamn: %s"
-#: stmt.c:680
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
msgstr ""
-#: stmt.c:727
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
msgstr ""
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#: stmt.c:869
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr ""
-#: stmt.c:879
+#: stmt.c:880
#, c-format
msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: stmt.c:1026
+#: stmt.c:1027
#, fuzzy
msgid "asm clobber conflict with output operand"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: stmt.c:1031
+#: stmt.c:1032
#, fuzzy
msgid "asm clobber conflict with input operand"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: stmt.c:1108
+#: stmt.c:1109
#, fuzzy
msgid "too many alternatives in %<asm%>"
msgstr "för många argument till funktionen \"%s\""
-#: stmt.c:1120
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr ""
-#: stmt.c:1173
+#: stmt.c:1174
#, fuzzy, c-format
msgid "duplicate asm operand name %qs"
msgstr "upprepning av medlem \"%s\""
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1299
+#: stmt.c:1300
#, c-format
msgid "undefined named operand %qs"
msgstr ""
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr ""
@@ -6748,66 +6752,66 @@ msgstr ""
msgid "ld returned %d exit status"
msgstr ""
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
+#: toplev.c:536
#, fuzzy, c-format
msgid "invalid option argument %qs"
msgstr "Ogiltig flagga \"%s\""
-#: toplev.c:602
+#: toplev.c:606
#, fuzzy
msgid "unrecoverable error"
msgstr "internt fel"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: toplev.c:846
+#: toplev.c:850
#, fuzzy
msgid "%J%qF declared %<static%> but never defined"
msgstr "\"%s\" är deklarerad som \"static\" men definieras aldrig"
-#: toplev.c:872
+#: toplev.c:876
#, fuzzy
msgid "%J%qD defined but not used"
msgstr "\"%s\" är definierad men inte använd"
-#: toplev.c:895 toplev.c:918
+#: toplev.c:899 toplev.c:922
#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: toplev.c:927
+#: toplev.c:931
#, fuzzy, c-format
msgid "%qs is deprecated"
msgstr "tredje argumentet till \"%s\" är inte länge rekommenderat"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -6816,12 +6820,12 @@ msgstr ""
"\n"
"Speciella flaggor för målarkitektur:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, fuzzy, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23.23s [odokumenterad]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -6830,24 +6834,24 @@ msgstr ""
"\n"
"Det finns dessutom odokumenterade flaggor speciellt för målarkitekturen.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " De finns, men är inte dokumenterade.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "ej igenkänd debuggningsflagga för gcc: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
#, fuzzy, c-format
msgid "invalid option %qs"
msgstr "Ogiltig flagga %s"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6855,351 +6859,362 @@ msgid ""
"%s%s%s version %s (%s) compiled by CC.\n"
msgstr ""
-#: toplev.c:1247
+#: toplev.c:1259
#, c-format
msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr ""
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr ""
-#: toplev.c:1402
+#: toplev.c:1414
#, fuzzy
msgid "can%'t open %s for writing: %m"
msgstr "kan inte öppna fil %s för skrivning"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr ""
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr ""
-#: toplev.c:1538 config/sh/sh.c:7358
+#: toplev.c:1545 config/sh/sh.c:7386
#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr ""
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
#, fuzzy
msgid "out of memory"
msgstr "inget minne"
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:1744
+#: toplev.c:1764
#, fuzzy
msgid "value-based profiling not yet implemented in trees."
msgstr "Profilering är inte implementerat ännu."
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: toplev.c:1831
+#: toplev.c:1851
#, fuzzy, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "ISO C89 stöder inte \\\"%%%c\\\" i %s formatsträng"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1846
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1866
+#: toplev.c:1886
#, fuzzy
msgid "can%'t open %s: %m"
msgstr "kan inte öppna %s"
-#: toplev.c:1873
+#: toplev.c:1893
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "attributet \"section\" stöds inte för denna målarkitektur"
-#: toplev.c:1878
+#: toplev.c:1898
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections stöds inte för AIX"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:1892
+#: toplev.c:1912
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "attributet \"section\" stöds inte för denna målarkitektur"
-#: toplev.c:1898
+#: toplev.c:1918
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target"
msgstr "-fdata-sections stöds inte för AIX"
-#: toplev.c:1904
+#: toplev.c:1924
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1910
+#: toplev.c:1930
#, fuzzy
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
msgstr "-fdata-sections stöds inte för AIX"
-#: toplev.c:1919
+#: toplev.c:1939
#, fuzzy
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "profilering stöds inte tillsammans med -mg\n"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:2034
+#: toplev.c:2057
#, fuzzy, c-format
msgid "error writing to %s: %m"
msgstr "fel vid skrivning till %s"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, fuzzy, c-format
msgid "error closing %s: %m"
msgstr "fel vid stängning av %s"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
#, fuzzy
msgid "%Hwill never be executed"
msgstr "anrop %d aldrig utfört\n"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:3260
+#: tree-cfg.c:3336
#, fuzzy
msgid "non-boolean used in condition"
msgstr "omdefiniering av \"%s\""
-#: tree-cfg.c:3316
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
msgstr ""
-#: tree-cfg.c:3381
+#: tree-cfg.c:3456
#, fuzzy
msgid "Is not a valid GIMPLE statement."
msgstr "ogiltigt typargument"
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
msgstr ""
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
msgstr ""
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
msgstr ""
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:3550
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
msgstr ""
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
msgstr ""
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
#, c-format
msgid "Label %s to block does not match in bb %d\n"
msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
+#: tree-cfg.c:3714
#, c-format
msgid "Control flow in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3635
+#: tree-cfg.c:3724
#, c-format
msgid "Label %s in the middle of basic block %d\n"
msgstr ""
-#: tree-cfg.c:3652
+#: tree-cfg.c:3741
#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3696
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
+#: tree-cfg.c:3863
#, fuzzy
msgid ""
"Case labels not sorted:\n"
" "
msgstr "-pipe stöds inte"
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
+#: tree-cfg.c:3904
#, c-format
msgid "Missing edge %i->%i"
msgstr ""
-#: tree-cfg.c:5516
+#: tree-cfg.c:5707
#, fuzzy
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
msgstr "funktionen är en möjlig kandidat för attributet \"noreturn\""
-#: tree-cfg.c:5543 tree-cfg.c:5547
+#: tree-cfg.c:5734 tree-cfg.c:5738
#, fuzzy
msgid "%H%<noreturn%> function does return"
msgstr "\"noreturn\"-funktion returnerar ändå"
-#: tree-cfg.c:5567 tree-cfg.c:5572
+#: tree-cfg.c:5759 tree-cfg.c:5764
#, fuzzy
msgid "%Hcontrol reaches end of non-void function"
msgstr "Programflödet når slutet på en icke-void-funktion"
-#: tree-dump.c:847
+#: tree-dump.c:849
#, fuzzy, c-format
msgid "could not open dump file %qs: %s"
msgstr "kunde inte öppna dump-fil \"%s\""
-#: tree-dump.c:960
+#: tree-dump.c:965
#, fuzzy
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr "Ignorerar kommandoradsflagga \"%s\""
-#: tree-inline.c:945
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
msgstr ""
-#: tree-inline.c:957
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:971
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:982
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
msgstr ""
-#: tree-inline.c:989
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:1008
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:1022
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:1044
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
msgstr ""
-#: tree-inline.c:1463
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
msgstr ""
-#: tree-inline.c:1473 tree-inline.c:1481
+#: tree-inline.c:1505 tree-inline.c:1513
#, fuzzy
msgid "%Jinlining failed in call to %qF: %s"
msgstr "inlining misslyckades i anrop av \"%s\""
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr "anropad härifrån"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+#, fuzzy
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "Programflödet når slutet på en icke-void-funktion"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
@@ -7209,38 +7224,38 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr "-pipe stöds inte."
-#: tree-optimize.c:698
+#: tree-optimize.c:720
#, fuzzy
msgid "%Jsize of return value of %qD is %u bytes"
msgstr "storleken på returvärdet från \"%s\" är %u bytes"
-#: tree-optimize.c:701
+#: tree-optimize.c:723
#, fuzzy
msgid "%Jsize of return value of %qD is larger than %wd bytes"
msgstr "storleken på returvärdet från \"%s\" är större än %d bytes"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
msgstr ""
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
@@ -7250,303 +7265,308 @@ msgstr ""
msgid "unimplemented functionality"
msgstr "för många argument till funktion"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "internt fel"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
msgstr ""
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:230
+#: tree-ssa.c:227
#, fuzzy
msgid "Missing definition"
msgstr "\"%s\" definierades tidigare här"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
+#: tree-ssa.c:241
#, c-format
msgid "Definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
+#: tree-ssa.c:293
#, fuzzy, c-format
msgid "PHI argument is missing for edge %d->%d\n"
msgstr "Argument saknas efter %s"
-#: tree-ssa.c:305
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
msgstr ""
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
msgstr ""
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
+#: tree-ssa.c:710
msgid "verify_ssa failed."
msgstr ""
-#: tree-ssa.c:1329
+#: tree-ssa.c:1376
#, fuzzy
msgid "%H%qD is used uninitialized in this function"
msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
-#: tree-ssa.c:1354
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
msgstr ""
-#: tree-vectorizer.c:2138
+#: tree-vect-transform.c:598
#, fuzzy
msgid "no support for reduction/induction"
msgstr "Stöd inte inbyggda funktioner med MMX"
-#: tree-vectorizer.c:2164
+#: tree-vect-transform.c:624
#, fuzzy
msgid "unsupported defining stmt"
msgstr "ej stödd version"
-#: tree.c:3258
+#: tree.c:3272
#, fuzzy
msgid "%Jfunction %qD definition is marked dllimport."
msgstr "funktionsdefinition deklarerad som \"auto\""
-#: tree.c:3266
+#: tree.c:3280
#, fuzzy
msgid "%Jvariable %qD definition is marked dllimport."
msgstr "statisk variabel \"%s\" är markerad som dllimport"
-#: tree.c:3286
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
msgstr ""
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr ""
-#: tree.c:5446
+#: tree.c:5482
#, c-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5483
+#: tree.c:5519
#, c-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:5496
+#: tree.c:5532
#, c-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:5510
+#: tree.c:5546
#, c-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5522
+#: tree.c:5558
#, c-format
msgid "tree check: accessed elt %d of phi_node with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr ""
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr ""
-#: varasm.c:910
+#: varasm.c:911
#, fuzzy
msgid "%Jregister name not specified for %qD"
msgstr "minnesjustering kan inte anges för \"%s\""
-#: varasm.c:912
+#: varasm.c:913
#, fuzzy
msgid "%Jinvalid register name for %qD"
msgstr "ogiltig användning av void-uttryck"
-#: varasm.c:914
+#: varasm.c:915
msgid "%Jdata type of %qD isn%'t suitable for a register"
msgstr ""
-#: varasm.c:917
+#: varasm.c:918
msgid "%Jregister specified for %qD isn%'t suitable for data type"
msgstr ""
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "global registervariabel har startvärde"
-#: varasm.c:930
+#: varasm.c:931
msgid "volatile register variables don%'t work as you might wish"
msgstr ""
-#: varasm.c:963
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
msgstr ""
-#: varasm.c:1038
+#: varasm.c:1046
#, fuzzy
msgid "global destructors not supported on this target"
msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
-#: varasm.c:1099
+#: varasm.c:1107
#, fuzzy
msgid "global constructors not supported on this target"
msgstr "attributet \"section\" stöds inte för denna målarkitektur"
-#: varasm.c:1592
+#: varasm.c:1607
#, fuzzy
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
msgstr "efterrågad minnesjustering är inte en potens av 2"
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1666
+#: varasm.c:1671
#, fuzzy
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
msgstr "efterrågad minnesjustering är inte en potens av 2"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr ""
-#: varasm.c:3741
+#: varasm.c:3777
msgid "initializer for floating value is not a floating constant"
msgstr ""
-#: varasm.c:3807
-msgid "unknown set constructor type"
-msgstr ""
-
-#: varasm.c:4026
+#: varasm.c:4046
#, fuzzy, c-format
msgid "invalid initial value for member %qs"
msgstr "ogiltigt användande av \"restrict\""
-#: varasm.c:4213 varasm.c:4257
+#: varasm.c:4233 varasm.c:4277
#, fuzzy
msgid "%Jweak declaration of %qD must precede definition"
msgstr "omdeklaration av \"%s\""
-#: varasm.c:4221
+#: varasm.c:4241
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
msgstr ""
-#: varasm.c:4255
+#: varasm.c:4275
#, fuzzy
msgid "%Jweak declaration of %qD must be public"
msgstr "omdeklaration av \"%s\""
-#: varasm.c:4264
+#: varasm.c:4284
#, fuzzy
msgid "%Jweak declaration of %qD not supported"
msgstr "omdeklaration av \"%s\""
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr ""
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr ""
-#: varasm.c:4418
+#: varasm.c:4504
+#, fuzzy
+msgid "%qD aliased to undefined symbol %qE"
+msgstr "ogiltig mottagartyp \"%s\""
+
+#: varasm.c:4532
#, fuzzy
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "attributet \"section\" stöds inte för denna målarkitektur"
@@ -7614,11 +7634,11 @@ msgid "debug: "
msgstr ""
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7645,204 +7665,212 @@ msgstr ""
msgid "The maximum depth of recursive inlining for non-inline functions"
msgstr ""
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr ""
-
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: params.def:145
+#: params.def:135
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: params.def:155
+#: params.def:145
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: params.def:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr ""
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr ""
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr ""
-#: params.def:175
+#: params.def:165
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: params.def:180
+#: params.def:170
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: params.def:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr ""
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr ""
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr ""
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr ""
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr ""
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr ""
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr ""
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr ""
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr ""
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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:308
+#: params.def:289
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:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr ""
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
msgstr ""
-#: params.def:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
-#: params.def:334
+#: params.def:311
msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: params.def:340
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
+#: params.def:353
#, fuzzy
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
msgstr "Utför optimering för svansrekursion"
-#: params.def:377
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
+
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr ""
-#: params.def:395
+#: params.def:386
msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
msgstr ""
-#: params.def:401
+#: params.def:391
msgid "Minimum heap size before we start collecting garbage, in kilobytes"
msgstr ""
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr ""
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:424
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr ""
-#: params.def:432
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
#, fuzzy
msgid "The upper bound for sharing integer constants"
msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
@@ -7885,8 +7913,8 @@ msgstr "skräp vid slutet av \"#pragma %s\""
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+#: config/darwin.c:1350
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr ""
#: config/sol2-c.c:94 config/sol2-c.c:110
@@ -7942,17 +7970,17 @@ msgstr "skräp vid slutet av \"#pragma %s\""
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
+#: config/darwin.h:155
#, fuzzy
msgid "Set sizeof(bool) to 1"
msgstr "sizeof(long double) är 16."
-#: config/darwin.h:154
+#: config/darwin.h:157
#, fuzzy
msgid "Generate code suitable for fast turn around debugging"
msgstr "Generera kod för en DLL"
-#: config/darwin.h:156
+#: config/darwin.h:159
#, fuzzy
msgid "Don't generate code suitable for fast turn around debugging"
msgstr "Generera kod för \"big endian\""
@@ -7962,7 +7990,7 @@ msgstr "Generera kod för \"big endian\""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
+#: config/darwin.h:395
#, fuzzy
msgid "alias definitions not supported in Mach-O; ignored"
msgstr "\"%s\" stöds inte av %s"
@@ -8014,7 +8042,7 @@ msgstr "ogiltigt värde (%s) till flagga -mcpu"
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr "ogiltigt värde (%s) till flagga %s"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
#, fuzzy, c-format
msgid "bad value %qs for -mtls-size switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
@@ -8054,91 +8082,91 @@ msgstr ""
msgid "bad value %qs for -mmemory-latency"
msgstr "ogiltigt värde \"%s\" till -memory-latency"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr ""
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "ogiltigt värde %%B"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "ogiltigt %%r-värde"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "ogiltigt %%R-värde"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "ogiltigt %%N-värde"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "ogiltigt %%P-värde"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "ogiltigt %%h-värde"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "ogiltigt %%L-värde"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "ogiltigt %%m-värde"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "ogiltigt %%M-värde"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "ogiltigt %%U-värde"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "ogiltigt %%s-värde"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "ogiltigt %%C-värde"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "ogiltigt %%E-värde"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr ""
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr ""
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr ""
@@ -8156,14 +8184,14 @@ 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/alpha/alpha.h:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Använd hårdvaru-fp"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "Använd inte hårdvaru-fp"
@@ -8285,7 +8313,7 @@ msgstr ""
msgid "Tune expected memory latency"
msgstr ""
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr ""
@@ -8304,17 +8332,17 @@ msgstr "argumentet till \"asm\" är inte en konstant sträng"
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
msgstr "argumentet till \"asm\" är inte en konstant sträng"
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, fuzzy, c-format
msgid "invalid operand to %%R code"
msgstr "ogiltig operand för %R"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, fuzzy, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "ogiltig operand för %H/%L"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, fuzzy, c-format
msgid "invalid operand to %%U code"
msgstr "ogiltig operand för %U"
@@ -8326,169 +8354,169 @@ msgstr "ogiltig operand för %V"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr ""
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, 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:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "ogiltigt värde (%s) till flagga %s"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
#, fuzzy
msgid "target CPU does not support THUMB instructions"
msgstr "målprocessorn stödjer inte THUMB-instruktioner"
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:928
+#: config/arm/arm.c:942
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:931
+#: config/arm/arm.c:945
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check är inkompatibel med -mno-apcs-frame"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic och -mapcs-reent är inkompatibla"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:962
+#: config/arm/arm.c:976
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:1004
+#: config/arm/arm.c:1018
#, fuzzy, c-format
msgid "invalid ABI option: -mabi=%s"
msgstr "Ogiltig flagga %s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
+#: config/arm/arm.c:1037
#, c-format
msgid "invalid floating point emulation option: -mfpe=%s"
msgstr ""
-#: config/arm/arm.c:1040
+#: config/arm/arm.c:1054
#, fuzzy, c-format
msgid "invalid floating point option: -mfpu=%s"
msgstr "ogiltig flagga till --param: %s"
-#: config/arm/arm.c:1081
+#: config/arm/arm.c:1095
#, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
msgstr ""
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1122
+#: config/arm/arm.c:1136
#, fuzzy, c-format
msgid "structure size boundary can only be set to %s"
msgstr "Strukturstorleksgräns kan bara sättas till 8 eller 32"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= är oanvändbar utan -fpic"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
#, fuzzy, c-format
msgid "%qs attribute only applies to functions"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
#, fuzzy
msgid "predicated Thumb instruction"
msgstr "Använd bitfältsinstruktioner"
-#: config/arm/arm.c:10391
+#: config/arm/arm.c:10460
#, fuzzy
msgid "predicated instruction in conditional sequence"
msgstr "typfel i villkorsuttryck"
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
#, fuzzy, c-format
msgid "invalid operand for code '%c'"
msgstr "ogiltig operand för %V"
-#: config/arm/arm.c:10558
+#: config/arm/arm.c:10627
#, fuzzy
msgid "instruction never exectued"
msgstr "anrop %d aldrig utfört\n"
-#: config/arm/arm.c:10683
+#: config/arm/arm.c:10752
#, fuzzy
msgid "missing operand"
msgstr "saknas '(' efter predikat"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr ""
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
#, fuzzy
msgid "%Jinitialized variable '%D' is marked dllimport"
msgstr "initierad variabel \"%s\" är markerad som dllimport"
@@ -8599,7 +8627,7 @@ msgstr ""
msgid "Specify the register to be used for PIC addressing"
msgstr ""
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr ""
@@ -8615,62 +8643,72 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorera attributet dllimport för funktioner"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
#, fuzzy
msgid "internal compiler error. Bad address:"
msgstr "Internt kompilatorfel i %s, vid %s:%d"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
#, fuzzy
msgid "internal compiler error. Unknown mode:"
msgstr "Internt kompilatorfel i %s, vid %s:%d"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
#, fuzzy
msgid "invalid insn:"
msgstr "ogiltig #line"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
#, fuzzy
msgid "unknown move insn:"
msgstr "okänt registernamn: %s"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
#, fuzzy
msgid "internal compiler error. Incorrect shift:"
msgstr "Internt kompilatorfel i %s, vid %s:%d"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
#, 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:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
#, 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:4615
+#: config/avr/avr.c:4728
#, c-format
msgid "MCU %qs supported for assembler only"
msgstr ""
@@ -9059,261 +9097,252 @@ msgstr ""
msgid "Select CPU to generate code for"
msgstr "Välj CPU att generera kod för"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
#, fuzzy
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "funktion använder __builtin_eh_return"
-#: config/cris/cris.c:1324
+#: config/cris/cris.c:1342
#, fuzzy
msgid "invalid operand for 'b' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
#, fuzzy
msgid "invalid operand for 'v' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
#, fuzzy
msgid "invalid operand for 'P' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
#, fuzzy
msgid "invalid operand for 'p' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
#, fuzzy
msgid "invalid operand for 'z' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
#, fuzzy
msgid "invalid operand for 'H' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr ""
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
#, fuzzy
msgid "invalid operand for 'e' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
#, fuzzy
msgid "invalid operand for 'm' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
#, fuzzy
msgid "invalid operand for 'A' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
#, fuzzy
msgid "invalid operand for 'D' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
#, fuzzy
msgid "invalid operand for 'T' modifier"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
#, fuzzy
msgid "invalid operand modifier letter"
msgstr "ogiltig operand för %V"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "internt fel: "
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr ""
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
#, fuzzy
msgid "unrecognized address"
msgstr "Känner inte igen registernamn \"%s\""
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2429
+#: config/cris/cris.c:2421
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "ej igenkänd flagga `-%s'"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2658
+#: config/cris/cris.c:2650
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2694
+#: config/cris/cris.c:2686
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr ""
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr ""
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr ""
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr ""
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
#, fuzzy
msgid "Do not use condition codes from normal instructions"
msgstr "Använd inte bitfältsinstruktioner"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
#, fuzzy
msgid "Do not tune stack alignment"
msgstr "Generera inte kod för stackkontroll"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
#, fuzzy
msgid "Generate code for the specified chip or CPU version"
msgstr "Generera kod för en given CPU"
-#: config/cris/cris.h:462
+#: config/cris/cris.h:454
#, fuzzy
msgid "Tune alignment for the specified chip or CPU version"
msgstr "minnesjustering kan inte anges för \"%s\""
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -9321,46 +9350,46 @@ msgstr ""
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr ""
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr ""
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, fuzzy, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "ogiltig operand för %V"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr ""
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
@@ -9368,151 +9397,145 @@ msgstr ""
msgid "Assume small address space"
msgstr ""
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2747
-msgid "Bad insn in frv_print_operand, bad const_double"
+#: config/frv/frv.c:2721
+msgid "bad condition code"
msgstr ""
-#: config/frv/frv.c:2792
-#, fuzzy
-msgid "Bad insn to frv_print_operand, 'C' modifier:"
-msgstr "ogiltig operand för %V"
-
-#: config/frv/frv.c:2815
-#, fuzzy
-msgid "Bad insn to frv_print_operand, 'c' modifier:"
-msgstr "ogiltig operand för %V"
+#: config/frv/frv.c:2796
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
-#: config/frv/frv.c:2840
+#: config/frv/frv.c:2857
#, fuzzy
msgid "Bad insn to frv_print_operand, 'e' modifier:"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:2848
+#: config/frv/frv.c:2865
#, fuzzy
msgid "Bad insn to frv_print_operand, 'F' modifier:"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:2864
+#: config/frv/frv.c:2881
#, fuzzy
msgid "Bad insn to frv_print_operand, 'f' modifier:"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:2878
+#: config/frv/frv.c:2895
#, fuzzy
msgid "Bad insn to frv_print_operand, 'g' modifier:"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
#, fuzzy
msgid "Bad insn to frv_print_operand, 'L' modifier:"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:2939
+#: config/frv/frv.c:2956
msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2960
+#: config/frv/frv.c:2977
#, fuzzy
msgid "Bad insn to frv_print_operand, 'O' modifier:"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:2978
+#: config/frv/frv.c:2995
msgid "Bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
#, fuzzy
msgid "frv_print_operand: unknown code"
msgstr "ogiltig operand för %V"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr ""
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr ""
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
#, fuzzy
msgid "accumulator is not a constant integer"
msgstr "argumentet till \"asm\" är inte en konstant sträng"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:9634
+#: config/frv/frv.c:9790
#, c-format
msgid "inappropriate accumulator for %qs"
msgstr ""
-#: config/frv/frv.c:9700
+#: config/frv/frv.c:9856
#, fuzzy
msgid "invalid IACC argument"
msgstr "ogiltigt typargument"
-#: config/frv/frv.c:9723
+#: config/frv/frv.c:9879
#, fuzzy, c-format
msgid "%qs expects a constant argument"
msgstr "tre \"l\"-suffix på heltalskonstant"
-#: config/frv/frv.c:9728
+#: config/frv/frv.c:9884
#, fuzzy, c-format
msgid "constant argument out of range for %qs"
msgstr "heltalskonstant utanför sitt intervall"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:10165
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:10184
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:10193
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:10205
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -9525,7 +9548,7 @@ msgstr ""
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr ""
@@ -9611,185 +9634,193 @@ msgstr "Generera inte H8/300H-kod"
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, fuzzy, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "ogiltigt värde (%s) till flagga %s"
-#: config/i386/i386.c:1274
+#: config/i386/i386.c:1270
#, fuzzy, c-format
msgid "code model %qs not supported in the %s bit mode"
msgstr "\"%s\" stöds inte av %s"
-#: config/i386/i386.c:1277
+#: config/i386/i386.c:1273
#, fuzzy
msgid "code model %<large%> not supported yet"
msgstr "\"%s\" stöds inte av %s"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
#, fuzzy
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "målprocessorn stödjer inte THUMB-instruktioner"
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, fuzzy, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1376
+#: config/i386/i386.c:1372
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/i386.c:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/i386.c:1440
+#: config/i386/i386.c:1436
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:1452
+#: config/i386/i386.c:1448
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: config/i386/i386.c:1464
+#: config/i386/i386.c:1460
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
#, fuzzy
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "pekare till funktion använd med aritmetik"
-#: config/i386/i386.c:1538
+#: config/i386/i386.c:1554
#, fuzzy
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "pekare till funktion använd med aritmetik"
-#: config/i386/i386.c:1545
+#: config/i386/i386.c:1561
#, fuzzy, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
#, fuzzy
msgid "fastcall and stdcall attributes are not compatible"
msgstr "shared och mdll är inkompatibla"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
#, fuzzy
msgid "fastcall and regparm attributes are not compatible"
msgstr "shared och mdll är inkompatibla"
-#: config/i386/i386.c:1754
+#: config/i386/i386.c:1761
#, fuzzy, c-format
msgid "%qs attribute requires an integer constant argument"
msgstr "tre \"l\"-suffix på heltalskonstant"
-#: config/i386/i386.c:1760
+#: config/i386/i386.c:1767
#, fuzzy, c-format
msgid "argument to %qs attribute larger than %d"
msgstr "kan inte sätta attributet \"%s\" efter definitionen"
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr ""
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:6522
+#: config/i386/i386.c:6625
#, fuzzy, c-format
msgid "invalid operand code '%c'"
msgstr "ogiltig operand för %V"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
#, fuzzy
msgid "invalid constraints for operand"
msgstr "ogiltig %%-kod"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
#, fuzzy
msgid "unknown insn mode"
msgstr "okänt maskinläge `%s'"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr ""
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
#, fuzzy
msgid "shift must be an immediate"
msgstr "predikat måste vara en identifierare"
-#: config/i386/i386.c:14489
+#: config/i386/i386.c:15634
#, fuzzy, c-format
msgid "%qs incompatible attribute ignored"
msgstr "attributet `%s' ignorerat"
@@ -9893,181 +9924,181 @@ msgstr "\"%s\" stöds inte av %s"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr ""
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 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:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 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:364
+#: config/i386/i386.h:363
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:365
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "Generera inte sin, cos, sqrt för FPU"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generera sin, cos, sqrt för FPU"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
#, fuzzy
msgid "Support MMX built-in functions"
msgstr "Stöd inbyggda funktioner med MMX"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
#, fuzzy
msgid "Do not support MMX built-in functions"
msgstr "Stöd inte inbyggda funktioner med MMX"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
#, fuzzy
msgid "Support 3DNow! built-in functions"
msgstr "döljer inbyggd funktion \"%s\""
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
#, fuzzy
msgid "Do not support 3DNow! built-in functions"
msgstr "Stöd inte inbyggda funktioner med MMX"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
#, 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:406
+#: config/i386/i386.h:405
#, 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:408
+#: config/i386/i386.h:407
#, 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:410
+#: config/i386/i386.h:409
#, 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:412
+#: config/i386/i386.h:411
#, fuzzy
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Stöd inbyggda funktioner med MMX och SSE"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
#, fuzzy
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "Stöd inte inbyggda funktioner med MMX och SSE"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
#, fuzzy
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) är 16."
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
#, fuzzy
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) är 12."
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
#, fuzzy
msgid "Generate 64bit x86-64 code"
msgstr "Generera H8/S-kod"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
#, fuzzy
msgid "Generate 32bit i386 code"
msgstr "Generera \"big endian\"-kod."
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
#, fuzzy
msgid "Do not use red-zone in the x86-64 code"
msgstr "Generera inte H8/S-kod"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr ""
@@ -10081,56 +10112,56 @@ 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Schemalägg kod för en given CPU"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
#, fuzzy
msgid "Generate floating point mathematics using given instruction set"
msgstr "Använd flyttalsinstruktioner i hårdvara"
-#: config/i386/i386.h:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Generera kod för en given CPU"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr "Antal register för att skicka heltalsargument"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr "Loop-kod justeras till denna 2-potens"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr "Hoppmål justeras till denna 2-potens"
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr "Funktionsbörjan justeras till denna 2-potens"
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
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:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Hopp är dyra (1-5, godtyckliga enheter)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr ""
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
#, fuzzy
msgid "Use given assembler dialect"
msgstr "Använd assemblersyntax för DEC"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
#, fuzzy
msgid "Use given thread-local storage dialect"
msgstr "Använd assemblersyntax för DEC"
@@ -10173,61 +10204,61 @@ msgstr "Genrera inte kod som använder FPU"
msgid "malformed #pragma builtin"
msgstr ""
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
#, fuzzy, c-format
msgid "invalid argument of %qs attribute"
msgstr "ogiltigt typargument till \"%s\""
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
#, fuzzy
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "attributet \"section\" kan inte anges för lokala variabler"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
#, fuzzy
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
#, fuzzy
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "attributet \"section\" kan inte anges för lokala variabler"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s är ett tomt intervall"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4219
+#: config/ia64/ia64.c:4651
msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr ""
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, fuzzy, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, fuzzy, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
@@ -10235,173 +10266,169 @@ 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Generera \"big endian\"-kod."
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Generera \"little endian\"-kod."
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Generera kod för GNU as"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Generera kod för Intel as"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Generera kod för GNU ld"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Generera kod för Intel ld"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:198
+#: config/ia64/ia64.h:194
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:200
-msgid "Emit code for Itanium (TM) processor B step"
-msgstr ""
-
-#: config/ia64/ia64.h:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
msgid "Generate inline floating point division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:214
+#: config/ia64/ia64.h:208
msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:217
+#: config/ia64/ia64.h:211
msgid "Do not inline floating point division"
msgstr ""
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:223
+#: config/ia64/ia64.h:217
#, fuzzy
msgid "Do not inline integer division"
msgstr "Använd inte divisionsinstruktionen"
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:229
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
msgstr ""
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:233
+#: config/ia64/ia64.h:227
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr ""
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
#, fuzzy
msgid "bad operand"
msgstr "ogiltig %%-kod"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, fuzzy, c-format
msgid "The compiler does not support -march=%s."
msgstr "ISO C stöder inte formatstorlek i strftime"
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
msgstr ""
-#: config/iq2000/iq2000.c:2845
+#: config/iq2000/iq2000.c:2847
#, fuzzy, c-format
msgid "argument %qd is not a constant"
msgstr "argumentet till \"asm\" är inte en konstant sträng"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr ""
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, fuzzy, c-format
msgid "invalid %%P operand"
msgstr "ogiltigt %%P-värde"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr ""
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ogiltig användning av %%d, %%x eller %%x"
@@ -10418,87 +10445,87 @@ msgstr ""
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, fuzzy, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, fuzzy, c-format
msgid "invalid operand to %%s code"
msgstr "ogiltig operand för %R"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, fuzzy, c-format
msgid "invalid operand to %%p code"
msgstr "ogiltig operand för %R"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, fuzzy, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "ogiltig operand för %H/%L"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, fuzzy, c-format
msgid "invalid operand to %%N code"
msgstr "ogiltig operand för %R"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr ""
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
#, fuzzy
msgid "lo_sum not of register"
msgstr "Skicka argument i register"
@@ -10528,12 +10555,12 @@ msgstr "Kodstorlek: small, medium, eller large"
msgid "Small data area: none, sdata, use"
msgstr "Litet dataområde: none, sdata, use"
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
#, fuzzy
msgid "Don't call any cache flush functions"
msgstr "Inga anrop i funktion %s\n"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr ""
@@ -10551,53 +10578,53 @@ msgstr ""
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
-#: config/m68hc11/m68hc11.c:1435
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
msgstr ""
-#: config/m68hc11/m68hc11.c:1441
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
msgstr ""
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
#, fuzzy
msgid "invalid register in the move instruction"
msgstr "Använd inte divisionsinstruktionen"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "ogiltig operand för %V"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
#, fuzzy
msgid "invalid register in the instruction"
msgstr "ogiltigt flagga \"%s\" i line-direktiv"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr ""
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
#, fuzzy
msgid "invalid rotate insn"
msgstr "ogiltigt format på #line"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr ""
@@ -10692,7 +10719,7 @@ msgstr "kan inte ange både -C och -o"
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr ""
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr ""
@@ -10850,7 +10877,7 @@ msgstr ""
msgid "ID of shared library to build"
msgstr ""
-#: config/mcore/mcore.c:2987
+#: config/mcore/mcore.c:2992
#, fuzzy
msgid "invalid option %<-mstack-increment=%s%>"
msgstr "Ogiltig flagga \"-mstack-increment=%s\""
@@ -10907,139 +10934,140 @@ msgstr "Genrera kod för M*Core M340"
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
#, fuzzy
msgid "-mgp32 used with a 64-bit ABI"
msgstr "Använd 64-bitars ABI"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
#, fuzzy
msgid "-mgp64 used with a 32-bit ABI"
msgstr "Använd 32-bitars ABI"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, fuzzy, c-format
msgid "unsupported combination: %s"
msgstr "ej stödd version"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr ""
+
+#: config/mips/mips.c:4187
msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
msgstr ""
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
msgstr ""
-#: config/mips/mips.c:4274
+#: config/mips/mips.c:4285
#, fuzzy
msgid "-mips3d/-mpaired-single must be used with -mips64"
msgstr "-frepo måste användas tillsammans med -c"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr ""
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4772
+#: config/mips/mips.c:4783
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4785
+#: config/mips/mips.c:4796
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4798
+#: config/mips/mips.c:4809
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, fuzzy, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
-#: config/mips/mips.c:4897
+#: config/mips/mips.c:4908
#, fuzzy, c-format
msgid "invalid %%Y value"
msgstr "ogiltigt värde %%B"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr ""
-#: config/mips/mips.c:7561
+#: config/mips/mips.c:7573
#, fuzzy, c-format
msgid "cannot handle inconsistent calls to %qs"
msgstr "kan inte inline:a anrop till \"%s\""
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr ""
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, fuzzy, c-format
msgid "bad value (%s) for %s"
msgstr "ogiltigt värde (%s) till flagga %s"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr ""
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11049,63 +11077,63 @@ 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/mips/mips.h:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:543
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
msgstr ""
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr ""
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr ""
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Använd mjukvaruflytttal"
@@ -11115,201 +11143,201 @@ msgstr "Använd mjukvaruflytttal"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Använd \"big endian\" byteordning"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Använd \"little endian\" byteordning"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:601 config/mips/mips.h:603
+#: config/mips/mips.h:605 config/mips/mips.h:607
#, fuzzy
msgid "Use paired-single floating point instructions"
msgstr "Använd flyttalsinstruktioner i hårdvara"
-#: config/mips/mips.h:605 config/mips/mips.h:607
+#: config/mips/mips.h:609 config/mips/mips.h:611
#, fuzzy
msgid "Use MIPS-3D instructions"
msgstr "Använd bitfältsinstruktioner"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:617
+#: config/mips/mips.h:621
#, fuzzy
msgid "Perform VR4130-specific alignment optimizations"
msgstr "Utför optimering för svansrekursion"
-#: config/mips/mips.h:619
+#: config/mips/mips.h:623
#, fuzzy
msgid "Don't perform VR4130-specific alignment optimizations"
msgstr "Utför inte optimering för svansrekursion"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
+#: config/mips/mips.h:633
msgid "Work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:631
+#: config/mips/mips.h:635
msgid "Don't work around R4000 errata"
msgstr ""
-#: config/mips/mips.h:633
+#: config/mips/mips.h:637
msgid "Work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:635
+#: config/mips/mips.h:639
msgid "Don't work around R4400 errata"
msgstr ""
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
+#: config/mips/mips.h:643
msgid "Don't work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Fånga heltalsdivision med noll"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "Fånga inte heltalsdivision med noll"
-#: config/mips/mips.h:645
+#: config/mips/mips.h:649
#, fuzzy
msgid "Use trap to check for integer divide by zero"
msgstr "Fånga heltalsdivision med noll"
-#: config/mips/mips.h:647
+#: config/mips/mips.h:651
#, fuzzy
msgid "Use break to check for integer divide by zero"
msgstr "Fånga heltalsdivision med noll"
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
msgid "Use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:651
+#: config/mips/mips.h:655
msgid "Don't use Branch Likely instructions, overriding default for arch"
msgstr ""
-#: config/mips/mips.h:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr ""
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr ""
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
#, fuzzy
msgid "Generate mips16 code"
msgstr "Generera SA-kod"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
#, fuzzy
msgid "Generate normal-mode code"
msgstr "Generera SA-kod"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
+#: config/mips/mips.h:669
msgid "FP exceptions are enabled"
msgstr ""
-#: config/mips/mips.h:667
+#: config/mips/mips.h:671
msgid "FP exceptions are not enabled"
msgstr ""
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr ""
@@ -11336,70 +11364,70 @@ msgstr ""
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1602
+#: config/mmix/mmix.c:1611
#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, c-format
msgid "stack frame not a multiple of 8 bytes: %d"
msgstr ""
-#: config/mmix/mmix.c:2127
+#: config/mmix/mmix.c:2133
#, c-format
msgid "stack frame not a multiple of octabyte: %d"
msgstr ""
-#: config/mmix/mmix.c:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:2781
+#: config/mmix/mmix.c:2786
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
#, fuzzy
msgid "MMIX Internal: This is not a constant:"
msgstr "fältinitierare är ej konstant"
@@ -11477,15 +11505,15 @@ msgstr ""
msgid "Do not generate a single exit point for each function"
msgstr "Generera inte .size-direktiv"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr ""
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr ""
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr ""
@@ -11571,64 +11599,69 @@ msgstr ""
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:449
+#: config/pa/pa.c:457
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-#: config/pa/pa.c:454
+#: config/pa/pa.c:462
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-#: config/pa/pa.c:458
+#: config/pa/pa.c:466
#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:480
+#: config/pa/pa.c:488
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:485
+#: config/pa/pa.c:493
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:486
+#: config/pa/pa.c:494
#, fuzzy
msgid "-g option disabled"
msgstr "flaggan -g är avslagen."
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
#, fuzzy
msgid "Generate cpp defines for server IO"
msgstr "Generera kod för en given CPU"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
#, fuzzy
msgid "Generate cpp defines for workstation IO"
msgstr "Generera kod för 11/40"
@@ -11788,11 +11821,11 @@ msgstr ""
msgid "Specify CPU for scheduling purposes."
msgstr ""
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
msgid "Assume code will be linked by GNU ld"
msgstr ""
-#: config/pa/pa64-hpux.h:31
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr ""
@@ -11932,218 +11965,246 @@ msgstr ""
msgid "junk at end of #pragma longcall"
msgstr "skräp vid slutet av #pragma weak"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple stöds inte på \"little endian\"-system"
-#: config/rs6000/rs6000.c:1251
+#: config/rs6000/rs6000.c:1261
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring stöds inte på \"little endian\"-system"
-#: config/rs6000/rs6000.c:1265
+#: config/rs6000/rs6000.c:1275
#, fuzzy, c-format
msgid "unknown -mdebug-%s switch"
msgstr "Okänd flagga -mdebug-%s"
-#: config/rs6000/rs6000.c:1277
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
msgstr ""
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr ""
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, fuzzy, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "okänt maskinläge `%s'"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "okänt maskinläge `%s'"
-#: config/rs6000/rs6000.c:1673
+#: config/rs6000/rs6000.c:1679
#, fuzzy
msgid "invalid option for -mfloat-gprs"
msgstr "Ogiltig flagga \"%s\""
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, fuzzy, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "okänt maskinläge `%s'"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr ""
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
#, fuzzy
msgid "argument 1 must be a 5-bit signed literal"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: config/rs6000/rs6000.c:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
#, fuzzy
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: config/rs6000/rs6000.c:6748
+#: config/rs6000/rs6000.c:6847
#, 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:6802
+#: config/rs6000/rs6000.c:6901
#, 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:6964
+#: config/rs6000/rs6000.c:7063
#, fuzzy
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: config/rs6000/rs6000.c:7136
+#: config/rs6000/rs6000.c:7235
#, fuzzy, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
#, 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:7264
+#: config/rs6000/rs6000.c:7363
#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
#, 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:7571
+#: config/rs6000/rs6000.c:7670
#, 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:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "ogiltigt %%O-värde"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr ""
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:13442
+#: config/rs6000/rs6000.c:13555
#, fuzzy
msgid "stack frame too large"
msgstr "%s är för stor"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
msgstr ""
-#: config/rs6000/aix.h:203 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
msgstr ""
-#: config/rs6000/aix.h:205 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr ""
@@ -12207,15 +12268,15 @@ msgstr ""
msgid "-m64 not supported in this configuration"
msgstr "-pipe stöds inte"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr ""
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr ""
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr ""
@@ -12370,7 +12431,7 @@ msgstr "Använd inte bitfältsinstruktioner"
msgid "Do not generate single field mfcr instruction"
msgstr "Använd inte bitfältsinstruktioner"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr ""
@@ -12443,7 +12504,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
@@ -12606,82 +12667,86 @@ msgstr "-mcall-aixdesc måste vara \"big endian\""
msgid "-m%s not supported in this configuration"
msgstr "\"%s\" stöds inte av %s"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr ""
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr ""
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, fuzzy, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "-pipe stöds inte"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr ""
-#: config/s390/s390.c:1325
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
#, fuzzy
msgid "invalid value for -mwarn-framesize"
msgstr "Felaktigt värde för -mcall-%s"
-#: config/s390/s390.c:1335
+#: config/s390/s390.c:1460
#, fuzzy
msgid "invalid value for -mstack-size"
msgstr "Felaktigt värde för -msdata-%s"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
+#: config/s390/s390.c:1469
#, fuzzy
msgid "invalid value for -mstack-guard"
msgstr "Felaktigt värde för -msdata-%s"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr ""
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
#, fuzzy, c-format
msgid "frame size of %qs is "
msgstr "lagringsstorlek på \"%s\" är okänd"
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12780,30 +12845,30 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
#, fuzzy
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
#. The sp_switch attribute only has meaning for interrupt functions.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
#, fuzzy, c-format
msgid "%qs attribute only applies to interrupt functions"
msgstr "attributet \"%s\" fungerar bara på funktioner"
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
+#: config/sh/sh.c:7223
#, fuzzy, c-format
msgid "%qs attribute argument not a string constant"
msgstr "%s före strängkonstant"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
+#: config/sh/sh.c:7258
#, fuzzy, c-format
msgid "%qs attribute argument not an integer constant"
msgstr "case-etikett reducerar inte till en heltalskonstant"
@@ -12838,7 +12903,7 @@ msgstr "statisk variabel \"%s\" är markerad som dllimport"
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
msgstr ""
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, c-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
@@ -12851,183 +12916,183 @@ msgstr ""
msgid "Profiling is not supported on this target."
msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "ogiltigt värde %%B"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "ogiltigt %%C-värde"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, fuzzy, c-format
msgid "invalid %%s operand"
msgstr "ogiltig %%-kod"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:7550
+#: config/sparc/sparc.c:7560
msgid "floating point constant not a valid immediate operand"
msgstr ""
#: config/sparc/freebsd.h:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "Använd 64 bits long double"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "Använd 128 bit long double"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Generera kod för \"big endian\""
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Generera kod för \"little endian\""
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
msgid "Use little-endian byte order for data"
msgstr "Använd \"little endian\" byteordning för data"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "Pekare är 64-bitars"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "Pekare är 32-bitars"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "Använd 32-bitars ABI"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "Använd 64-bitars ABI"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:664
+#: config/sparc/sparc.h:670
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:666
+#: config/sparc/sparc.h:672
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:668
+#: config/sparc/sparc.h:674
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr ""
@@ -13142,65 +13207,65 @@ msgstr ""
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, fuzzy, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s är för stor."
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "%s=%s är för stor."
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
#, fuzzy
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "attributet \"section\" kan inte anges för lokala variabler"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
#, fuzzy
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3045
+#: config/v850/v850.c:3048
#, c-format
msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr ""
@@ -13389,12 +13454,12 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ada/misc.c:258
+#: ada/misc.c:257
#, fuzzy, c-format
msgid "missing argument to \"-%s\""
msgstr "Saknar argument till flaggan \"%s\""
-#: ada/misc.c:299
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
@@ -13402,578 +13467,599 @@ msgstr ""
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2378
+#: cp/call.c:2385
#, fuzzy
msgid "%s %D(%T) <built-in>"
msgstr "<inbyggd>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr ""
-#: cp/call.c:2386
+#: cp/call.c:2393
#, fuzzy
msgid "%J%s %+#D"
msgstr "%s: %s"
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr ""
-#: cp/call.c:2607
+#: cp/call.c:2614
#, fuzzy
msgid "conversion from %qT to %qT is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/call.c:2761 cp/call.c:2819
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
-#: cp/call.c:2764 cp/call.c:2822
+#: cp/call.c:2770 cp/call.c:2828
#, fuzzy
msgid "call of overloaded %<%D(%A)%> is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2890
+#: cp/call.c:2896
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2959
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
-#: cp/call.c:2968
+#: cp/call.c:2974
#, fuzzy
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/call.c:3005
+#: cp/call.c:3012
msgid "%s for ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:3011
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:3015
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:3020
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:3025
+#: cp/call.c:3032
msgid "%s for %<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:3028
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ förbjuder uteslutande av mittersta termen i ett ?: uttryck"
-#: cp/call.c:3195
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
msgstr ""
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3398
+#: cp/call.c:3405
#, fuzzy
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr "typfel i villkorsuttryck"
-#: cp/call.c:3405
+#: cp/call.c:3412
#, fuzzy
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "typ signed och unsigned i villkorsuttryck"
-#: cp/call.c:3700
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
msgstr ""
-#: cp/call.c:3753
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
msgstr ""
-#: cp/call.c:3755
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
msgstr ""
-#: cp/call.c:3787
+#: cp/call.c:3793
#, fuzzy
msgid "comparison between %q#T and %q#T"
msgstr "jämföreslse mellan signed och unsigned"
-#: cp/call.c:4044
+#: cp/call.c:4052
msgid "no suitable %<operator %s> for %qT"
msgstr ""
-#: cp/call.c:4061
+#: cp/call.c:4069
msgid "%q+#D is private"
msgstr ""
-#: cp/call.c:4063
+#: cp/call.c:4071
#, fuzzy
msgid "%q+#D is protected"
msgstr "tredje argumentet till \"%s\" är inte länge rekommenderat"
-#: cp/call.c:4065
+#: cp/call.c:4073
msgid "%q+#D is inaccessible"
msgstr ""
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr ""
-#: cp/call.c:4154 cp/cvt.c:263
+#: cp/call.c:4163 cp/cvt.c:263
#, fuzzy
msgid "invalid conversion from %qT to %qT"
msgstr "konvertering från NaN till int"
-#: cp/call.c:4156
+#: cp/call.c:4165
#, fuzzy
msgid " initializing argument %P of %qD"
msgstr "ogiltigt typargument till \"%s\""
-#: cp/call.c:4300
+#: cp/call.c:4177
+#, fuzzy
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr "Saknar argument till flaggan \"%s\""
+
+#: cp/call.c:4180
+#, fuzzy
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "kan inte konvertera till en pekartyp"
+
+#: cp/call.c:4188
+#, fuzzy
+msgid "passing %qT for argument %P to %qD"
+msgstr "Saknar argument till flaggan \"%s\""
+
+#: cp/call.c:4191
+#, fuzzy
+msgid "converting to %qT from %qT"
+msgstr "konvertering från NaN till int"
+
+#: cp/call.c:4200
+#, fuzzy
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr "Saknar argument till flaggan \"%s\""
+
+#: cp/call.c:4203
+msgid "converting negative value %qE to %qT"
+msgstr ""
+
+#: cp/call.c:4345
#, fuzzy
msgid "cannot bind bitfield %qE to %qT"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/call.c:4303
+#: cp/call.c:4348 cp/call.c:4364
#, fuzzy
msgid "cannot bind packed field %qE to %qT"
msgstr "kan inte deklarera \"::main\" som en mall"
-#: cp/call.c:4306
+#: cp/call.c:4351
#, fuzzy
msgid "cannot bind rvalue %qE to %qT"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/call.c:4401
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
msgstr ""
-#: cp/call.c:4470
+#: cp/call.c:4529
#, fuzzy
msgid "the default argument for parameter %d of %qD has not yet been parsed"
msgstr "parameternamn saknas i parameterlista"
-#: cp/call.c:4675
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:4694
+#: cp/call.c:4753
msgid "%qT is not an accessible base of %qT"
msgstr ""
-#: cp/call.c:4944
+#: cp/call.c:5003
#, fuzzy
msgid "could not find class$ field in java interface type %qT"
msgstr "ingen superklass deklarerad i interface för \"%s\""
-#: cp/call.c:5206
+#: cp/call.c:5263
#, fuzzy
msgid "call to non-function %qD"
msgstr "Inga anrop i funktion %s\n"
-#: cp/call.c:5231
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/call.c:5310
+#: cp/call.c:5367
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr ""
-#: cp/call.c:5328
+#: cp/call.c:5385
#, fuzzy
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/call.c:5352
+#: cp/call.c:5409
#, fuzzy
msgid "cannot call member function %qD without object"
msgstr "kan inte deklarera \"::main\" som static"
-#: cp/call.c:5957
+#: cp/call.c:6014
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:5959 cp/name-lookup.c:4110
+#: cp/call.c:6016 cp/name-lookup.c:4104
#, fuzzy
msgid " in call to %qD"
msgstr "kan inte inline:a anrop till \"%s\""
-#: cp/call.c:6016
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:6017
+#: cp/call.c:6074
#, fuzzy
msgid " for conversion from %qT to %qT"
msgstr "konvertering från NaN till int"
-#: cp/call.c:6019
+#: cp/call.c:6076
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr ""
-#: cp/call.c:6281
+#: cp/call.c:6338
#, fuzzy
msgid "could not convert %qE to %qT"
msgstr "kunde inte öppna dump-fil \"%s\""
-#: cp/call.c:6411
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
msgstr ""
-#: cp/call.c:6415
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:273
+#: cp/class.c:272
#, fuzzy
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr "kan inte konvertera till en pekartyp"
-#: cp/class.c:898
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
+#: cp/class.c:929
+msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:899
-msgid "Java class %qT cannot have a destructor"
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:998
+#: cp/class.c:1031
#, fuzzy
msgid "%q#D and %q#D cannot be overloaded"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/class.c:1055
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
msgstr ""
-#: cp/class.c:1058
+#: cp/class.c:1091
#, c-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr ""
-#: cp/class.c:1108
+#: cp/class.c:1141
#, fuzzy
msgid "%qD names constructor"
msgstr "struct"
-#: cp/class.c:1113
+#: cp/class.c:1146
#, fuzzy
msgid "%qD invalid in %qT"
msgstr "Ogiltig flagga \"%s\""
-#: cp/class.c:1121
+#: cp/class.c:1154
#, fuzzy
msgid "no members matching %qD in %q#T"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#: cp/class.c:1153 cp/class.c:1161
+#: cp/class.c:1186 cp/class.c:1194
#, fuzzy
msgid "%qD invalid in %q#T"
msgstr "Ogiltig flagga \"%s\""
-#: cp/class.c:1154
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
msgstr ""
-#: cp/class.c:1207
+#: cp/class.c:1237
#, fuzzy
msgid "base class %q#T has a non-virtual destructor"
msgstr "fält \"%s\" har en inkomplett typ"
-#: cp/class.c:1226
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr ""
-
-#: cp/class.c:1534
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1545
+#: cp/class.c:1562
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1585
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:1923
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
+#: cp/class.c:2409
msgid "%qD was hidden"
msgstr ""
-#: cp/class.c:2380
+#: cp/class.c:2410
msgid " by %qD"
msgstr ""
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
#, fuzzy
msgid "%q#D invalid; an anonymous union can only have non-static data members"
msgstr "anonym union deklarerad i parameterlista"
-#: cp/class.c:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
msgid "private member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
msgid "protected member %q#D in anonymous union"
msgstr ""
-#: cp/class.c:2545
-msgid "vtable layout for class %qT may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
-msgstr ""
-
-#: cp/class.c:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
msgstr "tre \"l\"-suffix på heltalskonstant"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
msgstr "negativ storlek i bitfält \"%s\""
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
msgstr "Storleken noll på bitfält \"%s\""
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
msgstr "storleken på \"%s\" är större än sin typ"
-#: cp/class.c:2649
+#: cp/class.c:2671
msgid "%qD is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:2711
+#: cp/class.c:2731
msgid "member %q#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:2714
+#: cp/class.c:2734
msgid "member %q#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:2717
+#: cp/class.c:2737
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "fält \"%s\" är redan initierat"
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
msgstr "\"%s\" är normalt en icke-statisk function"
-#: cp/class.c:2875
+#: cp/class.c:2886
msgid "%qD may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:2884
+#: cp/class.c:2895
msgid "field %qD in local class cannot be static"
msgstr ""
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: cp/class.c:2929
+#: cp/class.c:2939
msgid "non-static reference %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2977
+#: cp/class.c:2986
msgid "non-static const member %q#D in class without a constructor"
msgstr ""
-#: cp/class.c:2992
+#: cp/class.c:3001
msgid "field %q#D with same name as class"
msgstr ""
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "upprepning av medlem \"%s\""
-#: cp/class.c:3030
+#: cp/class.c:3038
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3032
+#: cp/class.c:3040
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:3043
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3468
+#: cp/class.c:3476
msgid "offset of empty base %qT may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/class.c:3580
+#: cp/class.c:3588
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/class.c:4321
+#: cp/class.c:4333
msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4420
+#: cp/class.c:4432
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4432
+#: cp/class.c:4444
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:4603
+#: cp/class.c:4621
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4665
+#: cp/class.c:4683
msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4675
+#: cp/class.c:4693
msgid "%qD contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:4734
+#: cp/class.c:4753
msgid "layout of classes derived from empty class %qT may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "omdefiniering av \"%s\""
-#: cp/class.c:5019
+#: cp/class.c:5042
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5114
+#: cp/class.c:5139
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "språksträng `\"%s\"' känns inte igen"
-#: cp/class.c:5617
+#: cp/class.c:5642
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
msgstr "kan inte konvertera till en pekartyp"
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
msgstr "upprepning av medlem \"%s\""
-#: cp/class.c:5794
+#: cp/class.c:5819
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "inte tillräcklig typinformation"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "argument \"%s\" matchar inte prototypen"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "ogiltig operation på oinstansierad typ"
@@ -13982,12 +14068,12 @@ msgstr "ogiltig operation på oinstansierad typ"
#. 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "omdeklaration av \"%s\""
-#: cp/class.c:6273
+#: cp/class.c:6269
msgid "changes meaning of %qD from %q+#D"
msgstr ""
@@ -14010,188 +14096,196 @@ msgstr "kan inte konvertera till en pekartyp"
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr ""
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
msgid "casting %qT to %qT does not dereference pointer"
msgstr ""
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "kan inte konvertera till en pekartyp"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "konvertering från NaN till int"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
msgid "%q#T used where a %qT was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:717
msgid "%q#T used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "konvertering till icke-skalär typ begärd"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+msgid "pseudo-destructor is not called"
+msgstr ""
+
+#: cp/cvt.c:857
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:856
+#: cp/cvt.c:860
msgid "object of type %qT will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:872
+#: cp/cvt.c:876
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, 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:894
+#: cp/cvt.c:898
#, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, fuzzy, c-format
msgid "%s has no effect"
msgstr "%s har ingen %s"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+msgid "value computed is not used"
+msgstr ""
+
+#: cp/cvt.c:1049
#, fuzzy
msgid "converting NULL to non-pointer type"
msgstr "kan inte konvertera till en pekartyp"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
#, fuzzy
msgid "ambiguous default type conversion from %qT"
msgstr "Slå på automatisk mallinstansiering"
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
msgid " candidate conversions include %qD and %qD"
msgstr ""
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
msgstr "etikett \"%s\" använd men inte definierad"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
msgstr "etikett \"%s\" definierad men inte använd"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "\"%s\" deklarerades \"extern\" och senare \"static\""
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
msgstr "funktionen \"%s\" deklarerades tidigare i ett block"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "döljer biblioteksfunktion \"%s\""
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "motstridande deklarationer av \"%s\""
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "omdeklaration av \"%s\""
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "omdeklaration av \"enum %s\""
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "motstridande deklarationer av \"%s\""
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "tidigare deklaration av \"%s\""
@@ -14203,78 +14297,78 @@ msgstr "tidigare deklaration av \"%s\""
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "\"%s\" definierades tidigare här"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "\"%s\" är tidigare deklarerad här"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "prototyp för \"%s\" följer"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
#, fuzzy
msgid "%Jfollows non-prototype definition here"
msgstr "icke-prototypdefinition here"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "motstridande deklarationer av \"%s\""
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "parameternamn saknas i parameterlista"
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "\"%s\" användes utan någon prototyp innan sin definition"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
#, fuzzy
msgid "%Jprevious non-inline declaration here"
msgstr "tidigare implicit deklaration av \"%s\""
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
msgstr "redundant omdeklaration av \"%s\" i samma scope"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "ingen tidigare deklaration av \"%s\""
@@ -14287,248 +14381,248 @@ msgstr "ingen tidigare deklaration av \"%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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "initiering"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
msgid "%J%qD: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:1933
+#: cp/decl.c:1805
#, fuzzy
msgid "%Jconflicts with previous declaration here"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "etikett %s är refererad till utanför en funktion"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
msgstr "hopp till case-etikett"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "hopp till case-etikett"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
#, fuzzy
msgid "%H from here"
msgstr " från här"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr "omdefiniering av \"%s\""
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
msgid " enters scope of non-POD %q#D"
msgstr ""
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " går in i try-block"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " går in i catch-block"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " från här"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
#, fuzzy
msgid "%J enters catch block"
msgstr " går in i catch-block"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
msgstr "upprepning av medlem \"%s\""
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
msgstr "ogiltigt typargument"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "returtypen på \"%s\" är inte \"int\""
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "typen på parameter \"%s\" är inte deklarerad"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr "\"%s\" är tidigare deklarerad här"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
#, fuzzy
msgid "%Jan anonymous union cannot have function members"
msgstr "anonym union deklarerad i parameterlista"
-#: cp/decl.c:3466
+#: cp/decl.c:3362
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3470
+#: cp/decl.c:3366
msgid "member %q#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3474
+#: cp/decl.c:3370
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "omdeklaration av \"%s\""
-#: cp/decl.c:3540
+#: cp/decl.c:3437
#, fuzzy
msgid "missing type-name in typedef-declaration"
msgstr "oanvändbart nyckelord eller typnamn i tom deklaration"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/decl.c:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers can only be specified for objects and functions"
msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "omdeklaration av \"%s\""
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "funktion \"%s\" är initierad som en variabel"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/decl.c:3772
+#: cp/decl.c:3671
#, 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/decl.c:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "initiering"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "variabel \"%s\" har initierare men är av inkomplett typ"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "elementen i fält \"%s\" har en ofullständig typ"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "parameter \"%s\" har en inkomplett typ"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
msgstr "fältstorlek saknas i \"%s\""
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
@@ -14536,668 +14630,689 @@ 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
msgstr "lagringsstorlek på \"%s\" är okänd"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
msgstr "lagringsstorlek på \"%s\" är inte konstant"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
msgid "sorry: semantics of inline function static data %q#D are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/decl.c:4232
+#: cp/decl.c:4133
msgid "name %qD used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, c-format
msgid "Designated initializer %qE larger than array size"
msgstr ""
-#: cp/decl.c:4313
+#: cp/decl.c:4215
msgid "brace-enclosed initializer used to initialize %qT"
msgstr ""
-#: cp/decl.c:4376
+#: cp/decl.c:4280
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:4392
+#: cp/decl.c:4296
#, fuzzy
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C89 förbjuder konstruktor-uttryck"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "\"%s\" har en inkomplett typ"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
msgid "%qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:4606
+#: cp/decl.c:4506
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr ""
+
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
msgstr "parameter \"%s\" är initierad"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
msgstr "parameter \"%s\" är initierad"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "tilldelning (inte initieraing) i deklaration"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "tidigare deklaration av \"%s\""
-#: cp/decl.c:4900
+#: cp/decl.c:4815
msgid "%qD cannot be thread-local because it has non-POD type %qT"
msgstr ""
-#: cp/decl.c:4915
+#: cp/decl.c:4830
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "konstruerare kan inte vara en statisk medlemsfunktion\""
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: cp/decl.c:5550
+#: cp/decl.c:5474
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
msgstr ""
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "kan inte deklarera \"::main\" som en mall"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "kan inte deklarera \"::main\" som static"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "kan inte deklarera \"::main\" som static"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "\"main\" måste returnera \"int\""
-#: cp/decl.c:5681
+#: cp/decl.c:5608
msgid "non-local function %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:5690
+#: cp/decl.c:5617
msgid "non-local function %q#D uses local type %qT"
msgstr ""
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD in friend declaration"
msgstr "tilldelning (inte initieraing) i deklaration"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr "tidigare implicit deklaration av \"%s\""
-#: cp/decl.c:5775
+#: cp/decl.c:5702
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5783
+#: cp/decl.c:5710
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
msgstr ""
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
msgstr "funktionsdefinition deklarerad som \"auto\""
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
msgid "non-local variable %q#D uses anonymous type"
msgstr ""
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "kan inte deklarera \"::main\" som en mall"
-#: cp/decl.c:6150
+#: cp/decl.c:6070
#, fuzzy
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
msgstr "storlek på fält \"%s\" är negativt"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
#, fuzzy
msgid "size of array is negative"
msgstr "storlek på fält \"%s\" är negativt"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
#, fuzzy
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
#, fuzzy
msgid "size of array is not an integral constant-expression"
msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
#, fuzzy
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
msgstr "omdeklaration av \"%s\""
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, fuzzy, c-format
msgid "creating %s"
msgstr "Skapar %s.\n"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6374
+#: cp/decl.c:6293
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:6409
+#: cp/decl.c:6328
#, fuzzy
msgid "return type specification for constructor invalid"
msgstr "funktionskroppen för konstrueraren saknas"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "parameter \"%s\" deklarerad som void"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "lagringsklass angiven för parameter \"%s\""
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "variabel eller fält \"%s\" deklarerad som void"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/decl.c:6674
-msgid "declarator-id missing; using reserved word %qD"
-msgstr ""
-
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
msgid "declaration of %qD as non-function"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cp/decl.c:6763
+#: cp/decl.c:6563
+#, fuzzy
+msgid "declaration of %qD as non-member"
+msgstr "deklaration av \"%s\" som ett fält med funktioner"
+
+#: cp/decl.c:6593
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
msgstr "två eller fler datatyper i deklaration av \"%s\""
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++ stödjer inte \"long long\""
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr "ISO C förbjuder medlemsdeklarationer utan medlemmar"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
msgstr "short, signed eller unsigned är ogiltigt för \"%s\""
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
msgstr "long, short, signed eller unsigned ogiltig för \"%s\""
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
msgstr "både long och short angivet för \"%s\""
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
msgstr "long eller short angiven med char för \"%s\""
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
msgstr "long eller short angiven med flyttalstyp för \"%s\""
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
msgstr "både signed och unsigned angivet för \"%s\""
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr "long, short, signed eller unsigned använd felaktigt på \"%s\""
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
msgstr "complex ogiltig för \"%s\""
-#: cp/decl.c:7003
+#: cp/decl.c:6922
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "ogiltigt format på versionsnummer"
+
+#: cp/decl.c:6957
msgid "member %qD cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "\"%s\" är inte i början av deklarationen"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
msgstr "flera lagringsklasser i deklaration av \"%s\""
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
msgstr "lagringsklass angiven för parameter \"%s\""
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr "toppnivådeklaration av \"%s\" anger \"auto\""
-#: cp/decl.c:7162
+#: cp/decl.c:7095
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "destruerare behövs för \"%#D\""
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "konstruerare kan inte vara en statisk medlemsfunktion\""
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "destruerare behövs för \"%#D\""
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
msgstr "kan inte initiera friend-funktion \"%s\""
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/decl.c:7363
+#: cp/decl.c:7294
#, fuzzy
msgid "destructors may not have parameters"
msgstr "destruerare måste vara medlemsfunktioner"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "kan inte deklarera referenser till referenser"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "kan inte deklarera pekare till referenser"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "kan inte deklarera pekare till referenser"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+msgid "%qD is a namespace"
+msgstr ""
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
msgid "extra qualification %<%T::%> on member %qs ignored"
msgstr ""
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr "kan inte deklarera \"::main\" som static"
-#: cp/decl.c:7531
+#: cp/decl.c:7481
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr ""
-#: cp/decl.c:7570
+#: cp/decl.c:7520
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:7572
+#: cp/decl.c:7522
msgid "parameter may not have variably modified type %qT"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:7580
+#: cp/decl.c:7530
msgid "only declarations of constructors can be %<explicit%>"
msgstr ""
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/decl.c:7627
-msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+#: cp/decl.c:7579
+msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:7636
-msgid "%Jtypedef name may not be a nested-name-specifier"
+#: cp/decl.c:7595
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:7689
-#, fuzzy
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "namn saknas på medlemsfunktion"
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cp/decl.c:7752
+#: cp/decl.c:7720
#, fuzzy
msgid "type qualifiers specified for friend class declaration"
msgstr "två typer angivna i en tom deklaration"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "två typer angivna i en tom deklaration"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "typen på parameter \"%s\" är inte deklarerad"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:7771
+#: cp/decl.c:7739
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr ""
-#: cp/decl.c:7784
+#: cp/decl.c:7752
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:7763
#, fuzzy
msgid "invalid qualifiers on non-member function type"
msgstr "ogiltigt format på versionsnummer"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "ingen tidigare deklaration av \"%s\""
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "ogiltigt användande av \"restrict\""
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
msgid "can't make %qD into a method -- not in a class"
msgstr ""
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD cannot be declared virtual, since it is always static"
msgstr "kan inte deklarera \"::main\" som static"
-#: cp/decl.c:8006
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "omdeklaration av \"%s\""
+
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
msgstr "fält \"%s\" har en inkomplett typ"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "parameter \"%s\" har en inkomplett typ"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -15213,88 +15328,88 @@ 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/decl.c:8080
+#: cp/decl.c:8053
msgid "making %qD static"
msgstr ""
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\""
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\""
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\""
-#: cp/decl.c:8153
+#: cp/decl.c:8126
msgid "%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8156
+#: cp/decl.c:8129
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD to have static linkage"
msgstr "kan inte deklarera \"::main\" som static"
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr "kan inte deklarera en statisk funktion i en annan funktion"
-#: cp/decl.c:8231
+#: cp/decl.c:8204
msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: cp/decl.c:8243
+#: cp/decl.c:8216
#, fuzzy
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr "kan inte deklarera \"::main\" som static"
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
msgstr "ogiltigt typargument till \"%s\""
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
msgstr "parameter \"%s\" deklarerad som void"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
msgid "parameter %qD includes %s to array of unknown bound %qT"
msgstr ""
@@ -15313,124 +15428,124 @@ 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:8657
+#: cp/decl.c:8630
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
msgstr "\"%s\" är normalt en icke-statisk function"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD must be either a non-static member function or a non-member function"
msgstr "\"%s\" är normalt en icke-statisk function"
-#: cp/decl.c:8827
+#: cp/decl.c:8800
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:8933
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:8969
+#: cp/decl.c:8942
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:9003
+#: cp/decl.c:8976
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
msgstr "\"%s\" tar bara noll eller två argument"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
msgstr "flera parametrar med namn \"%s\""
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
msgstr "flera parametrar med namn \"%s\""
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "detta är en tidigare deklaration"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "detta är en tidigare deklaration"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
msgid "%qT referred to as enum"
msgstr ""
@@ -15441,52 +15556,56 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "parameter \"%s\" är initierad"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:9397
+#: cp/decl.c:9389
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:9405
+#: cp/decl.c:9397
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:9424
+#: cp/decl.c:9416
msgid "base type %qT fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:9457
+#: cp/decl.c:9449
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "upprepat case-värde"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "omdefiniering av \"%s\""
-#: cp/decl.c:9530
+#: cp/decl.c:9522
#, fuzzy
msgid "%Jprevious definition here"
msgstr "\"%s\" definierades tidigare här"
@@ -15495,76 +15614,76 @@ msgstr "\"%s\" definierades tidigare här"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
msgstr "överspill i uppräkningsvärden"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "returtypen är en inkomplett typ"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
msgstr "parameter \"%s\" deklarerad som void"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
#, fuzzy
msgid "invalid member function declaration"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
msgstr "kunde inte hitta klassen \"%s\""
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "namn saknas på medlemsfunktion"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "tvetydig konveretering av fältindex"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
#, fuzzy
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr "tvetydig konveretering av fältindex"
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "skapar ett fält med storlek noll"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr ""
-#: cp/decl2.c:444
+#: cp/decl2.c:441
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr ""
-#: cp/decl2.c:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "operation på \"%s\" kan vara odefinierad"
@@ -15572,184 +15691,178 @@ msgstr "operation på \"%s\" kan vara odefinierad"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "omdeklaration av \"enum %s\""
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "tidigare implicit deklaration av \"%s\""
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "omdeklaration av \"%s\""
-#: cp/decl2.c:556
+#: cp/decl2.c:553
msgid "Java method %qD has non-Java return type %qT"
msgstr ""
-#: cp/decl2.c:572
+#: cp/decl2.c:569
msgid "Java method %qD has non-Java parameter type %qT"
msgstr ""
-#: cp/decl2.c:677
+#: cp/decl2.c:674
msgid "prototype for %q#D does not match any in class %qT"
msgstr ""
-#: cp/decl2.c:778
+#: cp/decl2.c:775
msgid "local class %q#T shall not have static data member %q#D"
msgstr ""
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:870
+#: cp/decl2.c:867
msgid "member %qD conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
+
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
msgstr "kunde inte hitta klassen \"%s\""
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "fältinitierare är ej konstant"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
msgstr "kan inte deklarera \"::main\" som en mall"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
msgstr "typkonvertering matchar inte en funktionstyp"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
msgstr "kunde inte hitta klassen \"%s\""
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "argumentformat angivet för icke-funktion \"%s\""
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "argumentformat angivet för icke-funktion \"%s\""
-
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
#, fuzzy
msgid "anonymous union with no members"
msgstr "anonym union deklarerad i parameterlista"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "\"operator new\" måste returnera typ \"void *\""
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "\"operator new\" tar parameter av typ \"size_t\""
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "\"operator new\" måste returnera typ \"void *\""
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "\"operator new\" tar parameter av typ \"size_t\""
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
msgstr "\"%s\" är använd men inte definierad"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "parameternamn saknas i parameterlista"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr ""
-#: cp/except.c:250
+#: cp/except.c:273
msgid "call to Java %<catch%> or %<throw%> with %<jthrowable%> undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:257
+#: cp/except.c:280
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr ""
-#: cp/except.c:320
+#: cp/except.c:343
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:810
+#: cp/except.c:836
msgid "expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:895
+#: cp/except.c:921
msgid "%Hexception of type %qT will be caught"
msgstr ""
-#: cp/except.c:897
+#: cp/except.c:923
msgid "%H by earlier handler for %qT"
msgstr ""
-#: cp/except.c:927
+#: cp/except.c:953
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr ""
@@ -15834,202 +15947,210 @@ msgstr ""
msgid "argument to '%s' missing\n"
msgstr "argument till \"%s\" saknas\n"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
msgstr "Slå på automatisk mallinstansiering"
-#: cp/init.c:363
+#: cp/init.c:373
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr ""
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
msgstr "upprepning av medlem \"%s\""
-#: cp/init.c:372
+#: cp/init.c:382
msgid "%Juninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:515
+#: cp/init.c:525
msgid "%qD will be initialized after"
msgstr ""
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "fält \"%s\" är redan initierat"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr "%s: %s"
-#: cp/init.c:523
+#: cp/init.c:533
msgid " base %qT"
msgstr ""
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr "parameter \"%s\" är initierad"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
msgstr "multiple deklaration av metod \"%s\""
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "multiple deklaration av metod \"%s\""
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
-#: cp/init.c:667
+#: cp/init.c:677
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
msgid "class %qT does not have any field named %qD"
msgstr ""
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/init.c:943
+#: cp/init.c:953
msgid "unnamed initializer for %qT, which has no base classes"
msgstr ""
-#: cp/init.c:951
+#: cp/init.c:961
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:997
+#: cp/init.c:1007
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1005
+#: cp/init.c:1015
msgid "type %qD is not a direct or virtual base of %qT"
msgstr ""
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/init.c:1088
+#: cp/init.c:1098
#, fuzzy
msgid "bad array initializer"
msgstr "fält \"%s\" är redan initierat"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "\"%s\" har en inkomplett typ"
-#: cp/init.c:1379
+#: cp/init.c:1389
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr ""
-#: cp/init.c:1387
+#: cp/init.c:1397
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
msgstr "negativ storlek i bitfält \"%s\""
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
msgstr "ogiltigt användande av \"restrict\""
-#: cp/init.c:1641
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:1679
+#: cp/init.c:1700
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:1695
+#: cp/init.c:1716
#, fuzzy
msgid "can't find class$"
msgstr "Kan inte hitta class$"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "ogiltig typ \"void\" för new"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
-#: cp/init.c:1867
+#: cp/init.c:1888
#, c-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/init.c:2040
+#: cp/init.c:2061
#, fuzzy
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:2725
+#: cp/init.c:2744
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:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr ""
@@ -16105,14 +16226,18 @@ msgstr ""
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:650
+#: cp/method.c:657
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr ""
-#: cp/method.c:656
+#: cp/method.c:663
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr ""
+#: cp/method.c:1078
+msgid "vtable layout for class %qT may not be ABI-compliantand may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
#: cp/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16214,65 +16339,59 @@ msgstr "%s: %s: "
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr ""
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "destruerare behövs för \"%#D\""
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "tidigare deklaration av \"%s\""
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "motstridande deklarationer av \"%s\""
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "användning ab `%s' i mall"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
msgstr "\"%s\" är inte i början av deklarationen"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
msgstr "\"%s\" är tidigare deklarerad här"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
msgid "using declaration %qD introduced ambiguous type %qT"
msgstr ""
-#: cp/name-lookup.c:2594
-msgid "%qD has the same name as the class in which it is declared"
-msgstr ""
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr ""
@@ -16281,325 +16400,333 @@ msgstr ""
msgid "using-declaration cannot name destructor"
msgstr "multiple deklaration av metod \"%s\""
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr "\"%s\" är inte i början av deklarationen"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
msgstr "okänt #pragma namespace %s"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "parameter \"%s\" deklarerad som void"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
msgstr "attributet \"%s\" ignorerat"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr "\"%s\" är tidigare deklarerad här"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr "\"%s\" är tidigare deklarerad här"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
msgid "%qD denotes an ambiguous type"
msgstr ""
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
#, fuzzy
msgid "%J first type here"
msgstr " från här"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
#, fuzzy
msgid "%J other type here"
msgstr " från här"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
msgstr "ogiltigt användande av \"restrict\""
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "användning ab `%s' i mall"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
msgstr "okänt #pragma namespace %s"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
msgstr "\"%s\" är vanligtvis en funktion"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
msgstr "\"%s\" ignorerad, i konflikt med \"-g%s\""
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "Klass \"%s\" finns redan"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/parser.c:1818
+#: cp/parser.c:1842
msgid "request for member %qD in non-class type %qT"
msgstr ""
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/parser.c:1827
+#: cp/parser.c:1851
msgid "%<%D::%D%> %s"
msgstr ""
-#: cp/parser.c:1829
+#: cp/parser.c:1853
msgid "%<::%D%> %s"
msgstr ""
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
msgstr " %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr ""
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "motstridande deklarationer av \"%s\""
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "användning ab `%s' i mall"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "användning ab `%s' i mall"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
#, fuzzy
msgid "invalid template-id"
msgstr "ogiltigt format på #line"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, fuzzy, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "spill i konstant uttryck"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "ogiltigt typargument"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
msgstr "\"%s\" har en inkomplett typ"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, c-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr ""
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
#, fuzzy
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ förbjuder beräknade goto"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr ""
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr ""
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr ""
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "användning av gammaldags typkonvertering"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "case-etikett är inte i en switch-sats"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ förbjuder beräknade goto"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "flera \"%s\""
-#: cp/parser.c:7221
+#: cp/parser.c:7328
#, fuzzy
msgid "class definition may not be declared a friend"
msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr ""
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:7626
+#: cp/parser.c:7734
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
#, fuzzy
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "nyckelordet \"export\" är inte implementerat och kommer ignorerads"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/parser.c:8359
+#: cp/parser.c:8470
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr ""
-#: cp/parser.c:8366
+#: cp/parser.c:8477
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr ""
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "ogiltigt typargument"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:9554
-msgid "using %<typename%> outside of template"
-msgstr ""
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "omdeklaration av \"%s\""
-#: cp/parser.c:9677
-msgid "expected type-name"
+#: cp/parser.c:9688
+msgid "using %<typename%> outside of template"
msgstr ""
-#: cp/parser.c:9748
+#: cp/parser.c:9883
#, fuzzy
msgid "type attributes are honored only at type definition"
msgstr "attributet \"%s\" fungerar bara på funktioner"
@@ -16607,110 +16734,120 @@ msgstr "attributet \"%s\" fungerar bara på funktioner"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
#, fuzzy
msgid "a template-id may not appear in a using-declaration"
msgstr "\"%s\" är inte i början av deklarationen"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:10463
+#: cp/parser.c:10597
#, fuzzy
msgid "attributes are not allowed on a function-definition"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "fältindex är inte ett heltal"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "användning ab `%s' i mall"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
msgstr "ogiltigt användande av \"restrict\""
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "upprepat case-värde"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
#, fuzzy
msgid "file ends in default argument"
msgstr "ogiltigt typargument till \"%s\""
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr ""
-#: cp/parser.c:11858
+#: cp/parser.c:11980
#, fuzzy
msgid "default arguments are only permitted for function parameters"
msgstr "metoder kan inte konverteras till funktionspekare"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "omdeklaration av \"%s\""
+
+#: cp/parser.c:12733
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr ""
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "omdefiniering av \"%s\""
+
+#: cp/parser.c:13059
msgid "%Hextra %<;%>"
msgstr ""
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:12946
+#: cp/parser.c:13091
#, fuzzy
msgid "friend declaration does not name a class or function"
msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:13393
+#: cp/parser.c:13545
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:13395
+#: cp/parser.c:13547
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr ""
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr ""
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
#, fuzzy
msgid "too few template-parameter-lists"
msgstr "två eller fler datatyper i deklaration av \"%s\""
@@ -16719,170 +16856,170 @@ msgstr "två eller fler datatyper i deklaration av \"%s\""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
#, fuzzy
msgid "too many template-parameter-lists"
msgstr "flera lagringsklasser i deklaration av \"%s\""
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
#, fuzzy
msgid "invalid function declaration"
msgstr "ogiltig #indent"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
#, fuzzy
msgid "named return values are no longer supported"
msgstr "--driver stödjs inte längre"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "omdeklaration av \"%s\""
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:15063
+#: cp/parser.c:15233
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:15068
+#: cp/parser.c:15238
msgid "missing %<>%> to terminate the template argument list"
msgstr ""
-#: cp/parser.c:15586
+#: cp/parser.c:15766
msgid "%qs tag used in naming %q#T"
msgstr ""
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:15832
+#: cp/parser.c:16012
msgid "inter-module optimizations not implemented for C++"
msgstr ""
-#: cp/pt.c:240
+#: cp/pt.c:241
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr "omdefiniering av \"%s\""
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: cp/pt.c:738
+#: cp/pt.c:739
msgid "specializing %q#T in different namespace"
msgstr ""
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
#, fuzzy
msgid "%s %+#D"
msgstr "%s: %s"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
msgstr "typkonvertering matchar inte en funktionstyp"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:1542
+#: cp/pt.c:1543
#, fuzzy
msgid "ambiguous template specialization %qD for %q+D"
msgstr "Slå på automatisk mallinstansiering"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
msgstr "omdeklaration av \"%s\""
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
msgstr "flera lagringsklasser i deklaration av \"%s\""
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
msgstr "två eller fler datatyper i deklaration av \"%s\""
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr ""
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "\"%s\" är vanligtvis en funktion"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -16891,66 +17028,60 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "flera lagringsklasser i deklaration av \"%s\""
-
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr "oanvänd parameter \"%s\""
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
msgstr " TOTALT :"
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2710
+#: cp/pt.c:2685
msgid "type %qT of template argument %qE depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
msgstr "ogiltigt typargument till \"%s\""
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
msgstr "\"%s %s\" deklarerad inuti parameterlista"
@@ -16960,62 +17091,67 @@ msgstr "\"%s %s\" deklarerad inuti parameterlista"
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
msgstr "\"%s\" har en inkomplett typ"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "upprepad definition av klassmetod \"%s\"."
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "flera parametrar med namn \"%s\""
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "flera parametrar med namn \"%s\""
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "flera parametrar med namn \"%s\""
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "\"%s\" har en inkomplett typ"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "två eller fler datatyper i deklaration av \"%s\""
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
msgstr "tidigare deklaration av \"%s\""
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, fuzzy, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "flera parametrar med namn \"%s\""
-#: cp/pt.c:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "oanvänd parameter \"%s\""
-#: cp/pt.c:3249
+#: cp/pt.c:3235
msgid "redeclared here as %q#D"
msgstr ""
@@ -17023,331 +17159,339 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "omdefiniering av \"%s\""
-#: cp/pt.c:3260
+#: cp/pt.c:3246
#, fuzzy
msgid "%J original definition appeared here"
msgstr "funktionsdefinition deklarerad som \"typedef\""
-#: cp/pt.c:3370
+#: cp/pt.c:3342
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3411
+#: cp/pt.c:3383
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr ""
-#: cp/pt.c:3486
+#: cp/pt.c:3458
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr ""
-#: cp/pt.c:3536
+#: cp/pt.c:3508
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr ""
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr "ogiltigt typargument"
-#: cp/pt.c:3576
+#: cp/pt.c:3548
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr ""
-#: cp/pt.c:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "ogiltigt typargument"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "ogiltigt typargument"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:3827
+#: cp/pt.c:3799
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr "flera parametrar med namn \"%s\""
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr "Oväntad typ på \"id\" (%s)"
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr "Oväntad typ på \"id\" (%s)"
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr "Oväntad typ på \"id\" (%s)"
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr "Oväntad typ på \"id\" (%s)"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr "Oväntad typ på \"id\" (%s)"
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
msgstr "Oväntad typ på \"id\" (%s)"
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "kunde inte öppna dump-fil \"%s\""
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
msgstr "destruerare behövs för \"%#D\""
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "parameter \"%s\" är initierad"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr ""
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
msgstr "tom deklaration"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "Slå på automatisk mallinstansiering"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
#, fuzzy
msgid "%s %+#T"
msgstr "%s: %s"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "ogiltigt parametervärde \"%s\""
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
msgstr "omdeklaration av \"%s\""
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "\"%s\" är deklarerad som en funktion som returnerar ett fält"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "pekare till medlemsfunktion använd med aritmetik"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "skapar ett fält med storlek noll"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "skapar ett fält med storlek noll"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
#, fuzzy
msgid "forming reference to void"
msgstr "returnerar referens till en temporär"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "returnerar referens till en temporär"
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "upprepning av medlem \"%s\""
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "kan inte deklarera pekare till referenser"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "skapar ett fält med storlek noll"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr ""
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
msgstr "användning ab `%s' i mall"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:7557
+#: cp/pt.c:7556
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+msgid "using invalid field %qD"
+msgstr ""
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: cp/pt.c:8844
-msgid "%qT uses anonymous type"
+#: cp/pt.c:8872
+msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:8846
+#: cp/pt.c:8874
msgid "%qT uses local type %qT"
msgstr ""
-#: cp/pt.c:8854
+#: cp/pt.c:8883
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "fältinitierare är ej konstant"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
msgid " trying to instantiate %qD"
msgstr ""
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "inkomplett typunifiering"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/pt.c:10784
+#: cp/pt.c:10847
msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
msgstr ""
-#: cp/pt.c:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
msgstr "Slå på automatisk mallinstansiering"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "implicit deklaration av funktion \"%s\""
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr ""
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
msgstr ""
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#T is not a valid type for a template constant parameter"
msgstr "ogiltigt typargument"
@@ -17366,23 +17510,23 @@ msgstr ""
msgid "can't create repository information file %qs"
msgstr "kan inte skapa katalog %s"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "kan inte använda typeid med -fno-rtti"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "måste ha#include <typeinfo> för användande av typeid"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
msgid "cannot create type information for type %qT because its size is variable"
msgstr ""
-#: cp/rtti.c:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr ""
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "kan inte konvertera till en pekartyp"
@@ -17395,234 +17539,229 @@ msgstr ""
msgid "%qT is an inaccessible base of %qT"
msgstr ""
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
msgid " overriding %q#D"
msgstr ""
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
msgstr "motstridiga typer på \"%s\""
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "long eller short angiven med char för \"%s\""
-#: cp/search.c:1867
+#: cp/search.c:1876
msgid " overriding %q#F"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cp/search.c:1961
+#: cp/search.c:1970
msgid " since %q#D declared in base class"
msgstr ""
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "typen på parameter \"%s\" är inte deklarerad"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr ""
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
msgstr "kan inte inline:a anrop till \"%s\""
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
#, fuzzy
msgid "arguments to destructor are not allowed"
msgstr "kan inte sätta attributet \"%s\" efter definitionen"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "\"%s\" är normalt en icke-statisk function"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "ogiltigt format på versionsnummer"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "ogiltigt typargument"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
#, fuzzy
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "ogiltigt format på versionsnummer"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "\"%s\" svarar inte på \"%s\""
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "ogiltigt typargument"
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
msgstr "ogiltigt typargument"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
#, fuzzy
msgid "invalid default argument for a template template parameter"
msgstr "ogiltigt typargument"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "deklaration av \"%s\" döljer symbol från parameterlista"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "ogiltig operation på oinstansierad typ"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "omdefiniering av \"%s\""
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
#, fuzzy
msgid "invalid base-class specification"
msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "fält \"%s\" har en inkomplett typ"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
msgstr "spill i konstant uttryck"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
msgstr "ogiltig användning av void-uttryck"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "ogiltig användning av void-uttryck"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr "\"%s\" är tidigare deklarerad här"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "Register '%c' är okänt"
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "\"%s\" svarar inte på \"%s\""
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, c-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, c-format
msgid "can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1857
+#: cp/tree.c:1837
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
msgstr "attributet \"section\" stöds inte för denna målarkitektur"
@@ -17640,206 +17779,206 @@ msgstr "ISO C++ förbjuder jämförelse mellan pekare och heltal"
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr ""
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
msgstr "ogiltigt format på versionsnummer"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
msgstr "sizeof applicerat på ett bit-fält"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
msgstr "ISO C++ förbjuder användning av \"sizeof\" på ett uttryck av funktionstyp"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
#, fuzzy
msgid "invalid use of non-static member function"
msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "konvertering från NaN till int"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "ogiltigt användande av \"restrict\""
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD 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:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "\"%s\" har en inkomplett typ"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "ogiltigt typargument"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr ""
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "funktionsdefinition deklarerad som \"register\""
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "fältstorlek saknas i \"%s\""
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr "ISO C++ förbjuder anrop av \"::main\" inifrån programmet"
-#: cp/typeck.c:2477
+#: cp/typeck.c:2436
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr ""
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "för många argument till funktionen \"%s\""
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr ""
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "för många argument till funktion"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "parameter har en inkomplett typ"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "parameter har en inkomplett typ"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "för få argument till funktionen \"%s\""
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "för få argument till funktion"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "Programflödet når slutet på en icke-void-funktion"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
msgid "division by zero in %<%E / 0%>"
msgstr ""
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
msgid "division by zero in %<%E / 0.%>"
msgstr ""
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
msgid "division by zero in %<%E %% 0%>"
msgstr ""
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
msgid "division by zero in %<%E %% 0.%>"
msgstr ""
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ förbjuder jämförelse mellan pekare och heltal"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr ""
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "ogiltiga operander till binär %s"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "jämförelse mellan pekare och heltal"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
@@ -17847,150 +17986,150 @@ 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:3475
+#: cp/typeck.c:3431
#, fuzzy
msgid "NULL used in arithmetic"
msgstr "pekare till funktion använd med aritmetik"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr "ISO C++ förbjuder användning av pekare av typ \"void *\" i pekararitmetik"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, c-format
msgid "invalid use of %qE to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: cp/typeck.c:3632
+#: cp/typeck.c:3588
#, c-format
msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "tar adress till något temporärt"
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr ""
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "parameter \"%s\" pekar på inkomplett typ"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C++ förbjuder användning av pekare av typ \"void *\" i pekararitmetik"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
msgstr "ogiltig användning av %%d, %%x eller %%x"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\""
#. An expression like &memfn.
-#: cp/typeck.c:4050
+#: cp/typeck.c:4006
#, fuzzy
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static 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:4055
+#: cp/typeck.c:4011
#, 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:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
msgstr "kan inte ta adressen till bitfält \"%s\""
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
#, fuzzy
msgid "taking address of destructor"
msgstr "tar adress till något temporärt"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr ""
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
msgstr "kan inte deklarera pekare till referenser"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
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:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
msgstr "adress på register variabel \"%s\" efterfrågad"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, fuzzy, c-format
msgid "%s expression list treated as compound expression"
msgstr "uttryckssats har inkomplett typ"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
msgid "%s from type %qT to type %qT casts away constness"
msgstr ""
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "konvertering från NaN till int"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "%s: total förlust av precision"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr ""
@@ -17998,164 +18137,139 @@ msgstr ""
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5044
+#: cp/typeck.c:5002
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "inkompatibla typer i %s"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ förbjuder tilldelning av fält"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "pekare till en medlemsfunktion använd med aritmetik"
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "pekare till medlemsfunktion använd med aritmetik"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "ogiltig mottagartyp \"%s\""
-#: cp/typeck.c:5871
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5874
-msgid "%s to non-pointer type %qT from NULL"
-msgstr ""
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "Saknar argument till flaggan \"%s\""
-
-#: cp/typeck.c:5885
-msgid "%s to %qT from %qT"
-msgstr ""
-
-#: cp/typeck.c:5894
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr ""
-
-#: cp/typeck.c:5897
-msgid "%s of negative value %qE to %qT"
-msgstr ""
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr "kan inte konvertera till en pekartyp"
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr "kan inte konvertera till en pekartyp"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "Saknar argument till flaggan \"%s\""
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "returnerar referens till en temporär"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
msgstr "adress på global registervariabel \"%s\" efterfrågad"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
msgstr "adress på global registervariabel \"%s\" efterfrågad"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "\"return\" med värde i funktion som returnerar void"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
#, fuzzy
msgid "return-statement with a value, in function returning 'void'"
msgstr "\"return\" med värde i funktion som returnerar void"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
msgstr ""
@@ -18219,166 +18333,166 @@ msgstr "%s: %s"
msgid "%J since type %qT has pure virtual functions"
msgstr ""
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr ""
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr ""
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
msgstr "saknar mellanrum efter nummer \"%.*s\""
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
msgstr "upprepning av medlem \"%s\""
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
msgstr "parameter \"%s\" är initierad"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
msgstr "parameter \"%s\" är initierad"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
msgstr "fält \"%s\" är redan initierat"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
msgid "union %qT with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "basoperanden till \"->\" är inte en pekare"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "basoperanden till \"->\" är inte en pekare"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "parameter \"%s\" pekar på inkomplett typ"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
msgstr "parameter \"%s\" pekar på inkomplett typ"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "parameter \"%s\" pekar på inkomplett typ"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
msgstr "Kan inte öppna utdatafil \"%s\""
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
msgstr "global registervariabel \"%s\" använd i nästlad funktion"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
msgstr "registervariabel \\\"%s\\\" använd i nästlad funktion"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
msgstr "adress på global registervariabel \"%s\" efterfrågad"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
msgstr "adress på register variabel \"%s\" efterfrågad"
@@ -18397,82 +18511,82 @@ msgstr "argument till \"%s\" saknas"
msgid "no input files; unwilling to write output files"
msgstr ""
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "\"noreturn\"-funktion returnerar ändå"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
msgstr "oanvänd parameter \"%s\""
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "oanvänd variabel \"%s\""
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
msgid "Function return value not set"
msgstr ""
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "okänt maskinläge `%s'"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "språk %s känns inte igen"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18489,7 +18603,7 @@ msgstr ""
msgid "Array element size too big"
msgstr ""
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18500,27 +18614,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr "ledsen, inte implementerat: "
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "objekt med variabel storlek kan inte initieras"
@@ -18556,313 +18670,313 @@ msgstr ""
msgid "%Jnon-static method '%D' overrides static method"
msgstr ""
-#: java/decl.c:1203
+#: java/decl.c:1260
#, fuzzy
msgid "%J'%D' used prior to declaration"
msgstr "\"%s\" är använd innan sin deklaration"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
msgstr "deklaration av \"%s\" döljer en parameter"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
msgstr "deklaration av \"%s\" döljer symbol från parameterlista"
-#: java/decl.c:1575
+#: java/decl.c:1632
#, fuzzy
msgid "%Jlabel '%D' used but not defined"
msgstr "etikett \"%s\" använd men inte definierad"
-#: java/decl.c:1580
+#: java/decl.c:1637
#, fuzzy
msgid "%Jlabel '%D' defined but not used"
msgstr "etikett \"%s\" definierad men inte använd"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr ""
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, c-format
msgid "assert: %s is assign compatible with %s"
msgstr ""
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1699
+#: java/expr.c:1703
#, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
msgstr ""
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
msgstr "Kan inte hitta filen \"%s\""
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "metod \"%s\" kan inte hittas i klassen"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "kunde inte hitta klassen \"%s\""
-#: java/expr.c:2346
+#: java/expr.c:2350
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2715
+#: java/expr.c:2719
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr ""
-#: java/expr.c:2742
+#: java/expr.c:2746
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr ""
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr ""
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr ""
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3037
+#: java/expr.c:3043
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "I metod `%s':"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "Kan inte hitta klass \"%s\""
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, c-format
msgid "parse error while reading %s"
msgstr ""
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, c-format
msgid "unparseable signature: '%s'"
msgstr ""
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "\"%s\" är inte ett giltigt filnamn"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr ""
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "spill i konstant uttryck"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
msgid "class is of array type\n"
msgstr ""
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "fält \"%s\" har en inkomplett typ"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr ""
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
"\n"
msgstr ""
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr ""
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe Använd rör istället för temporära filer\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -W Slå på extra varningar\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <katalog> Lägg till <katalog> till kompilatorns sökvägar\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o <fil> Skriv utdata i <fil> \n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " --help Visa den här informatationen\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " --help Visa den här informatationen\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " --help Visa den här informatationen\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -18871,31 +18985,31 @@ msgstr ""
"\n"
"Instruktioner för bugrapportering, se:\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "tomt intervall angivet"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
msgid "'-MG' option is unimplemented"
msgstr ""
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "kan inte ange både -C och -o"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "fel vid stängning av %s"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -18910,7 +19024,7 @@ msgstr "\"%s\" är inte ett giltigt filnamn"
msgid "error while parsing constant pool\n"
msgstr "%s före strängkonstant"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
@@ -18984,104 +19098,104 @@ msgstr ""
msgid "source file for class %qs is newer than its matching class file. Source file %qs used instead"
msgstr ""
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr ""
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, fuzzy, c-format
msgid "can't reopen %s: %m"
msgstr "kan inte öppna %s"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, fuzzy, c-format
msgid "can't close %s: %m"
msgstr "kan inte stänga %s"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "Kan inte hitta filen med klass %s."
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr ""
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
msgid "the %<java.lang.Object%> that was found in %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr ""
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, fuzzy, c-format
msgid "can't close input file %s: %m"
msgstr "kan inte stänga %s"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr ""
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:3028
+#: java/jcf-write.c:3041
#, fuzzy
msgid "field initializer type mismatch"
msgstr "fältinitierare är ej konstant"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, fuzzy, c-format
msgid "can't create directory %s: %m"
msgstr "kan inte skapa katalog %s"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, fuzzy, c-format
msgid "can't open %s for writing: %m"
msgstr "kan inte öppna fil %s för skrivning"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, fuzzy, c-format
msgid "can't create %s: %m"
msgstr "kan inte stänga %s"
@@ -19135,26 +19249,26 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
msgid "only one of '--print-main', '--list-class', and '--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "Kan inte öppna utdatafil \"%s\""
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "Kan inte hitta filen \"%s\""
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "parsningsfel"
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, c-format
msgid "%s: warning: "
msgstr "%s: varning: "
@@ -19207,15 +19321,15 @@ msgstr ""
msgid "cannot specify 'main' class when not linking"
msgstr ""
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:256
+#: java/lex.c:260
msgid ""
"unknown encoding: %qs\n"
"This might mean that your locale's encoding is not supported\n"
@@ -19224,7 +19338,7 @@ msgid ""
"%<--encoding=UTF-8%> option"
msgstr ""
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "internt fel - ogiltigt Utf8-namn"
@@ -19238,225 +19352,225 @@ msgstr "kan inte stänga %s"
msgid "internal error - invalid Utf8 name"
msgstr "internt fel - ogiltigt Utf8-namn"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr ""
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr ""
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr ""
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr ""
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr ""
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr ""
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr ""
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr ""
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr ""
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr ""
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr ""
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr ""
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr ""
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr ""
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr ""
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr ""
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr ""
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr ""
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr ""
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr ""
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr ""
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr ""
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr ""
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr ""
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr ""
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr ""
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr ""
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr ""
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr ""
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr ""
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr ""
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr ""
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr ""
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr ""
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr ""
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr ""
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr ""
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr ""
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr ""
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr ""
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr ""
-#: java/parse.y:3042
+#: java/parse.y:3041
#, c-format
msgid ": %qs JDK1.1(TM) feature"
msgstr ""
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19465,682 +19579,682 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
msgid "Missing return statement"
msgstr ""
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
msgid "Unreachable statement"
msgstr ""
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, c-format
msgid "%s %qs already defined in %s:%d"
msgstr ""
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, c-format
msgid "Interface %qs repeated"
msgstr ""
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "Använd stor minnesmodell"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr ""
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "omdefiniering av \"struct %s\""
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
msgid "Class %qs not found in %<throws%>"
msgstr ""
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
msgstr "dubbel deklaration av etikett \"%s\""
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, c-format
msgid "Class or interface %qs not found in import"
msgstr ""
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: java/parse.y:7148
+#: java/parse.y:7151
#, c-format
msgid "Can't find default package %qs. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
-#: java/parse.y:7153
+#: java/parse.y:7156
#, c-format
msgid "Package %qs not found in import"
msgstr ""
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr ""
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "oanvänd variabel \"%s\""
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "kunde inte hitta klassen \"%s\""
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "Kan inte hitta filen med klass %s."
-#: java/parse.y:10100
+#: java/parse.y:10103
#, c-format
msgid "Can't use type %qs as a qualifier"
msgstr ""
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, fuzzy, c-format
msgid "No variable %qs defined in type %qs"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "spill i konstant uttryck"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "inkompatibla typer i %s"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "upprepat case-värde"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, c-format
msgid "missing static field %qs"
msgstr ""
-#: java/parse.y:12354
+#: java/parse.y:12357
#, c-format
msgid "not a static field %qs"
msgstr ""
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr ""
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "ogiltigt lvalue i tilldelning"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "inkompatibla typer i %s"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr ""
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
msgstr "ogiltigt typargument till \"%s\""
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "inkompatibla typer i %s"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "ogiltigt typargument till \"%s\""
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "konvertering från NaN till int"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr ""
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "inkompatibla typer i %s"
-#: java/parse.y:14931
+#: java/parse.y:14935
msgid "%<return%> inside instance initializer"
msgstr ""
-#: java/parse.y:14935
+#: java/parse.y:14939
msgid "%<return%> inside static initializer"
msgstr ""
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "returnerar ett värde från en destruktor"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
# local, det kan troligen vara både lokal variabel och lokal funktion??
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "deklaration av \"%s\" döljer en tidigare lokal"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "detta är platsen för den tidigare definitionen"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "omdefiniering av \"union %s\""
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "continue-sats som inte är i en loop"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "continue-sats som inte är i en loop"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "break-sats som inte är i en loop eller switch"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "upprepning av medlem \"%s\""
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
msgid "original label is here"
msgstr ""
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr ""
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr ""
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, c-format
msgid "verification failed: %s"
msgstr ""
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, c-format
msgid "verification failed at PC=%d: %s"
msgstr ""
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -20188,182 +20302,182 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr ""
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
#, fuzzy
msgid "%<@end%> must appear in an @implementation context"
msgstr "[super ...] måste stå i metodkontext"
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
msgid "method declaration not in @interface context"
msgstr ""
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "metoddefinition för \"%c%s\" kan inte hittas"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, fuzzy, c-format
msgid "object does not conform to the %qs protocol"
msgstr "klass \"%s\" implementerar inte protokollet \"%s\""
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
msgstr "klass \"%s\" implementerar inte protokollet \"%s\""
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, fuzzy, c-format
msgid "statically allocated instance of Objective-C class %qs"
msgstr "statiskt allokerade objekt stöds inte"
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, c-format
msgid "protocol %qs has circular dependency"
msgstr ""
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
msgstr "ingen tidigare deklaration av \"%s\""
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, c-format
msgid "interface %qs does not have valid constant string layout"
msgstr ""
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
msgstr "Kan inte hitta filen med klass %s."
-#: objc/objc-act.c:2330
-msgid "%Jcreating selector for nonexistent method %qE"
+#: objc/objc-act.c:2374
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr ""
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
msgstr "\"%s\" är inte ett giltigt filnamn"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr ""
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
msgstr "Kan inte hitta klass \"%s\""
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
msgstr "Klass \"%s\" finns redan"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
#, fuzzy
msgid "%Jprevious declaration of '%D'"
msgstr "tidigare deklaration av \"%s\""
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr ""
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
msgid "@catch parameter is not a known Objective-C class type"
msgstr ""
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
msgid "exception of type %<%T%> will be caught"
msgstr ""
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
msgid "%H by earlier handler for %<%T%>"
msgstr ""
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr ""
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr ""
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr ""
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
msgstr "%s: %s"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
msgid "can not use an object as parameter to a method"
msgstr ""
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "flera parametrar med namn \"%s\""
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
msgstr "ingen superklass deklarerad i interface för \"%s\""
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
msgstr "ogiltig mottagartyp \"%s\""
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "metod \"%s\" kan inte hittas i klassen"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
msgstr "\"%s\" svarar inte på \"%s\""
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr ""
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
msgid "will be assumed to return %<id%> and accept"
msgstr ""
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
msgid "%<...%> as arguments.)"
msgstr ""
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, c-format
msgid "undeclared selector %qs"
msgstr ""
@@ -20377,150 +20491,150 @@ 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
msgstr "instansvariabel \"%s\" är deklarerad som %s"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "upprepad deklaration av klassmetod \"%s\"."
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
msgstr "ignorerar asm för ickestatisk lokal variabel \"%s\""
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
msgstr "instansvariabel \"%s\" är deklarerad som %s"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
msgstr "namn saknas på medlemsfunktion"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "ignorerar asm för ickestatisk lokal variabel \"%s\""
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, c-format
msgid "type %qs has a user-defined constructor"
msgstr ""
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, c-format
msgid "type %qs has a user-defined destructor"
msgstr ""
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr ""
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
msgstr "instansvariabel \"%s\" är deklarerad som privat"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, fuzzy, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
msgstr "instansvariabel \"%s\" är deklarerad som privat"
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
msgstr "instansvariabel \"%s\" är deklarerad som %s"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "statisk access till objekt av typ \"id\""
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
msgstr "inkomplett implementation av klass \"%s\""
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
msgstr "inkomplett implementation av kategori \"%s\""
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
#, fuzzy
msgid "method definition for %<%c%s%> not found"
msgstr "metoddefinition för \"%c%s\" kan inte hittas"
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
msgstr "klass \"%s\" implementerar inte protokollet \"%s\""
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
msgid "%<@end%> missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6641
+#: objc/objc-act.c:6691
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
-#: objc/objc-act.c:6668
+#: objc/objc-act.c:6718
#, fuzzy, c-format
msgid "reimplementation of class %qs"
msgstr "omimplementation av klass \"%s\""
-#: objc/objc-act.c:6699
+#: objc/objc-act.c:6749
#, fuzzy, c-format
msgid "conflicting super class name %qs"
msgstr "motstridande deklarationer av \"%s\""
-#: objc/objc-act.c:6701
+#: objc/objc-act.c:6751
#, fuzzy, c-format
msgid "previous declaration of %qs"
msgstr "tidigare deklaration av \"%s\""
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
#, fuzzy, c-format
msgid "duplicate interface declaration for class %qs"
msgstr "upprepad deklaration av klassmetod \"%s\"."
-#: objc/objc-act.c:6977
+#: objc/objc-act.c:7022
#, fuzzy, c-format
msgid "duplicate declaration for protocol %qs"
msgstr "upprepad deklaration av klassmetod \"%s\"."
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
msgstr ""
-#: objc/objc-act.c:7784
+#: objc/objc-act.c:7849
#, fuzzy, c-format
msgid "no super class declared in interface for %qs"
msgstr "ingen superklass deklarerad i interface för \"%s\""
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] måste stå i metodkontext"
-#: objc/objc-act.c:8459
+#: objc/objc-act.c:8554
#, fuzzy, c-format
msgid "local declaration of %qs hides instance variable"
msgstr "deklaration av \"%s\" döljer en parameter"
-#: objc/objc-parse.y:2720
+#: objc/objc-parse.y:2748
#, fuzzy
msgid "extra semicolon in method definition specified"
msgstr "extra semikolon i struktur eller union angivet"
@@ -20530,22 +20644,22 @@ msgstr "extra semikolon i struktur eller union angivet"
msgid "%HDuplicate name %q.*s."
msgstr "upprepning av medlem \"%s\""
-#: treelang/treetree.c:842
+#: treelang/treetree.c:826
#, fuzzy
msgid "Global register variable %qD used in nested function."
msgstr "global registervariabel \"%s\" använd i nästlad funktion"
-#: treelang/treetree.c:846
+#: treelang/treetree.c:830
#, fuzzy
msgid "Register variable %qD used in nested function."
msgstr "registervariabel \\\"%s\\\" använd i nästlad funktion"
-#: treelang/treetree.c:852
+#: treelang/treetree.c:836
#, fuzzy
msgid "Address of global register variable %qD requested."
msgstr "adress på global registervariabel \"%s\" efterfrågad"
-#: treelang/treetree.c:857
+#: treelang/treetree.c:841
#, fuzzy
msgid "Address of register variable %qD requested."
msgstr "adress på register variabel \"%s\" efterfrågad"
@@ -20914,683 +21028,683 @@ msgid "Warn about function pointer arithmetic"
msgstr "Varna om aritmetik med funktionspekare"
#: options.c:1237
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr ""
+
+#: options.c:1240
#, fuzzy
msgid "Warn if inherited methods are unimplemented"
msgstr "Varna om nästlade kommentarer upptäcks"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Varna om multipla deklarationer av samma objekt"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr ""
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr ""
-#: options.c:1249
+#: options.c:1252
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr ""
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr ""
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr ""
-#: options.c:1261
+#: options.c:1264
#, fuzzy
msgid "Warn about signed-unsigned comparisons"
msgstr "Varna om jämförelser mellan signed/unsigned"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
#, fuzzy
msgid "Warn about code which might break strict aliasing rules"
msgstr "Varna om funktioner som är möjliga kandidater för attributet noreturn"
-#: options.c:1273
+#: options.c:1276
#, fuzzy
msgid "Warn about unprototyped function declarations"
msgstr "Varna om tveksamma deklarationer av main"
-#: options.c:1276
+#: options.c:1279
#, fuzzy
msgid "Warn about \"suspicious\" constructs"
msgstr "Varna om tveksamma deklarationer av main"
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr ""
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr ""
-#: options.c:1300
+#: options.c:1303
msgid "Warn about @selector()s without previously declared methods"
msgstr ""
-#: options.c:1303
+#: options.c:1306
msgid "Warn if an undefined macro is used in an #if directive"
msgstr ""
-#: options.c:1306
+#: options.c:1309
#, fuzzy
msgid "Warn about underflow of numerical constant expressions"
msgstr "spill i konstant uttryck"
-#: options.c:1309
+#: options.c:1312
#, fuzzy
msgid "Warn about uninitialized automatic variables"
msgstr "Varna om aritmetik med funktionspekare"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr ""
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "Varna när en funktion är oanvänd"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "Varna när en etikett är oanvänd"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "Varna när en funktionsparameter är oanvänd"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "Varna när ett uttrycksvärde är oanvänt"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "Varna när en variabel är oanvänd"
-#: options.c:1342
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr ""
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr ""
-#: options.c:1351
+#: options.c:1354
#, fuzzy
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr " -aux-info <fil> Generera deklarationsinfo till fil <fil>\n"
-#: options.c:1363
+#: options.c:1366
#, fuzzy
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr " -d[bokstäver] Slå på dumpning från angivna delar av kompilatorn\n"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr ""
-#: options.c:1375
+#: options.c:1378
msgid "Generate position-independent code if possible (large mode)"
msgstr ""
-#: options.c:1378
+#: options.c:1381
msgid "Generate position-independent code for executables if possible (large mode)"
msgstr ""
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr ""
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr ""
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr ""
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr ""
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr ""
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr ""
-#: options.c:1420
+#: options.c:1423
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr ""
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr ""
-#: options.c:1444
+#: options.c:1447
#, fuzzy
msgid "Generate code to check bounds before indexing arrays"
msgstr "Generera kod för Intel as"
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
#, fuzzy
msgid "Recognize built-in functions"
msgstr "Känn inte igen några inbyggda funktioner"
-#: options.c:1468
+#: options.c:1471
#, fuzzy
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr " -fcall-saved-<register> Ange att <register> bevaras av funktioner\n"
-#: options.c:1471
+#: options.c:1474
#, fuzzy
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr " -fcall-used-<register> Ange att <register> förstörs av funktionsanrop\n"
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr ""
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr ""
-#: options.c:1480
+#: options.c:1483
#, fuzzy
msgid "Generate checks for references to NULL"
msgstr "Generera kod för en DLL"
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr ""
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr ""
-#: options.c:1498
+#: options.c:1501
#, fuzzy
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Markera strängar som \"const char *\""
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: options.c:1504
+#: options.c:1507
#, fuzzy
msgid "Perform a register copy-propagation optimization pass"
msgstr "Utför optimering för svansrekursion"
-#: options.c:1507
+#: options.c:1510
#, fuzzy
msgid "Perform cross-jumping optimization"
msgstr "Utför optimering för svansrekursion"
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
#, fuzzy
msgid "Place data items into their own section"
msgstr "placera varje funktion i sin egen sektion"
-#: options.c:1519
+#: options.c:1525
#, fuzzy
msgid "Inline member functions by default"
msgstr "I funktion `%s':"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr ""
-#: options.c:1531
+#: options.c:1537
#, fuzzy
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
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"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
msgid "Permit '$' as an identifier character"
msgstr ""
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: options.c:1549
+#: options.c:1555
msgid "Display the code tree after parsing."
msgstr ""
-#: options.c:1552
+#: options.c:1558
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: options.c:1558
+#: options.c:1564
#, fuzzy
msgid "Perform DWARF2 duplicate elimination"
msgstr "Utför optimering för svansrekursion"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr ""
-#: options.c:1582
+#: options.c:1588
#, fuzzy
msgid "Generate code to check exception specifications"
msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr ""
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr ""
-#: options.c:1594
+#: options.c:1600
#, fuzzy
msgid "Perform a number of minor, expensive optimizations"
msgstr "Utför optimering för svansrekursion"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: options.c:1612
+#: options.c:1618
#, fuzzy
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr " -ffixed-<register> Markera <register> som ej tillgängligt för kompilatorn\n"
-#: options.c:1615
+#: options.c:1621
msgid "Assume that the source file is fixed form"
msgstr ""
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
#, fuzzy
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr "Kontrollera allokeringsordning för heltalsregister"
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr ""
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr ""
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: options.c:1648
+#: options.c:1654
#, fuzzy
msgid "Place each function into its own section"
msgstr "placera varje funktion i sin egen sektion"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr ""
-#: options.c:1654
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
msgstr ""
-#: options.c:1657
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr ""
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr ""
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "Hantera #ident-direktiv"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: options.c:1699
+#: options.c:1705
#, fuzzy
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr "Föredra hopp framför villkorlig körning"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr ""
-#: options.c:1705
+#: options.c:1711
#, fuzzy
msgid "Emit implicit instantiations of inline templates"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
#, fuzzy
msgid "Emit implicit instantiations of templates"
msgstr "%s: Vid instansiering av \"%s\":\n"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr "Generera inte .size-direktiv"
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr ""
-#: options.c:1729
+#: options.c:1735
#, fuzzy
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr " -finline-limit=<nummer> Begränsa storlek på inline-funktioner till <nummer>\n"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr ""
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr ""
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr ""
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: options.c:1753
+#: options.c:1759
#, fuzzy
msgid "Give external symbols a leading underscore"
msgstr "Externa symboler startar med en understrykning"
-#: options.c:1756
+#: options.c:1762
#, fuzzy
msgid "Perform loop optimizations"
msgstr "Utför optimering för svansrekursion"
-#: options.c:1759
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
msgstr ""
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr "Sätt errno efter inbyggda matematikfunktioner"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr ""
-#: options.c:1774
+#: options.c:1780
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: options.c:1780
+#: options.c:1786
#, fuzzy
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr " -fmessage-length=<nummer> Begränsa felmeddelandens längd till <nummer> tecken per rad. 0 stänger av radbrytning\n"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: options.c:1792
+#: options.c:1798
#, fuzzy
msgid "Don't warn about uses of Microsoft extensions"
msgstr "Varna inte om för många argument till format-funktioner"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr ""
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
@@ -22019,325 +22133,329 @@ msgid "Enable loop vectorization on trees"
msgstr ""
#: options.c:2161
-msgid "Append underscores to externally visible names"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
msgstr ""
#: options.c:2164
-msgid "Compile whole compilation unit at a time"
+msgid "Append underscores to externally visible names"
msgstr ""
#: options.c:2167
-msgid "Perform loop unrolling for all loops"
+msgid "Compile whole compilation unit at a time"
msgstr ""
#: options.c:2170
-msgid "Perform loop unrolling when iteration count is known"
+msgid "Perform loop unrolling for all loops"
msgstr ""
#: options.c:2173
-msgid "Allow math optimizations that may violate IEEE or ISO standards"
+msgid "Perform loop unrolling when iteration count is known"
msgstr ""
#: options.c:2176
-msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
#: options.c:2179
-msgid "Make \"char\" unsigned by default"
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
#: options.c:2182
-msgid "Perform loop unswitching"
+msgid "Make \"char\" unsigned by default"
msgstr ""
#: options.c:2185
-msgid "Just generate unwind tables for exception handling"
+msgid "Perform loop unswitching"
msgstr ""
#: options.c:2188
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: options.c:2191
#, fuzzy
msgid "Generate code for the Boehm GC"
msgstr "Generera kod för Boehm GC"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
+#: options.c:2200
#, fuzzy
msgid "Perform variable tracking"
msgstr "Utför optimering för svansrekursion"
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr ""
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr ""
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr ""
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr ""
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr ""
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr ""
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: options.c:2245
+#: options.c:2248
#, fuzzy
msgid "Generate debug information in default format"
msgstr "Generera kod för \"big endian\""
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr ""
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr ""
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr ""
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr ""
-#: options.c:2260
+#: options.c:2263
#, fuzzy
msgid "Generate debug information in STABS format"
msgstr "Generera kod för en DLL"
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: options.c:2266
+#: options.c:2269
#, fuzzy
msgid "Generate debug information in VMS format"
msgstr "Generera kod för en DLL"
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: options.c:2290
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr ""
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: options.c:2320
+#: options.c:2323
#, fuzzy
msgid "-o <file>\tPlace output into <file>"
msgstr " -o <fil> Skriv utdata i <fil> \n"
-#: options.c:2323
+#: options.c:2326
#, fuzzy
msgid "Enable function profiling"
msgstr " -p Slå på funktionsprofilering\n"
-#: options.c:2326
+#: options.c:2329
#, fuzzy
msgid "Issue warnings needed for strict compliance to the standard"
msgstr " -pedantic Ge varningar som krävs för att strikt följa ISO C\n"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr ""
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
#, fuzzy
msgid "Do not display functions compiled or elapsed time"
msgstr " -quiet Visa inte kompilerade funktioner eller tiden som förbrukats\n"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
#, fuzzy
msgid "Remap file names when including files"
msgstr "tomt filnamn i #%s"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr ""
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: options.c:2359
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
msgstr ""
-#: options.c:2362
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr ""
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr ""
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr ""
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr ""
-#: options.c:2407
+#: options.c:2410
#, fuzzy
msgid "Suppress warnings"
msgstr "%s: varning: "
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "får inte använda både -EB och -EL"
@@ -22356,35 +22474,35 @@ msgstr "-mhard-float stöds inte."
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float och -msoft-float kan inte båda anges."
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
@@ -22412,32 +22530,23 @@ msgstr ""
msgid "shared and mdll are not compatible"
msgstr "shared och mdll är inkompatibla"
+#: config/i386/nwld.h:34
+#, fuzzy
+msgid "Static linking is not supported.\n"
+msgstr "-pipe stöds inte"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
#, fuzzy
msgid "may not use both -m32 and -m64"
msgstr "får inte använda både -mfp64 och -m4650"
-#: treelang/lang-specs.h:52
-#, fuzzy
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg och -fomit-frame-pointer är inkompatibla"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg och -fomit-frame-pointer ä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/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "-pipe stöds inte"
-
#: 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"
@@ -22465,12 +22574,16 @@ msgstr "mno-cygwin och mno-win32 är inkompatibla"
msgid "the m210 does not have little endian support"
msgstr ""
-#: gcc.c:769
+#: gcc.c:763
#, fuzzy
msgid "GCC does not support -C or -CC without -E"
msgstr "GNU C stödjer inte -C utan -E"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg och -fomit-frame-pointer är inkompatibla"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "-E krävs när indata tas från standard input"
@@ -22488,10 +22601,15 @@ msgstr ""
msgid "does not support multilib"
msgstr "ISO C89 stöder inte typen complex"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
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"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr ""
@@ -23213,10 +23331,6 @@ msgstr ""
#~ msgid "invalid #ident directive"
#~ msgstr "ogiltig #indent"
-#, fuzzy
-#~ msgid "#pragma %s %s is already registered"
-#~ msgstr "Klass \"%s\" finns redan"
-
#~ msgid "#pragma once is obsolete"
#~ msgstr "#pragma once är obsolet"
@@ -23828,6 +23942,10 @@ msgstr ""
#~ msgstr "ogiltig typ: \"void &\""
#, fuzzy
+#~ msgid "invalid type qualifier for non-member function type"
+#~ msgstr "namn saknas på medlemsfunktion"
+
+#, fuzzy
#~ msgid "invalid string constant `%E'"
#~ msgstr "ogiltig lagringsklass för funktion \"%s\""
@@ -23856,6 +23974,10 @@ msgstr ""
#~ msgid "-Wno-strict-prototypes is not supported in C++"
#~ msgstr "-Wno-strict-prototypes stödjs inte för C++"
+#, fuzzy
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "argumentformat angivet för icke-funktion \"%s\""
+
#~ msgid "`%s' not supported by %s"
#~ msgstr "\"%s\" stöds inte av %s"
@@ -23884,10 +24006,6 @@ msgstr ""
#~ msgstr "kan inte deklarera pekare till referenser"
#, fuzzy
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "motstridande deklarationer av \"%s\""
-
-#, fuzzy
#~ msgid "`%D' undeclared (first use this function)"
#~ msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
@@ -23921,6 +24039,10 @@ msgstr ""
#~ msgstr "lagringsklass angiven för parameter \"%s\""
#, fuzzy
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "flera lagringsklasser i deklaration av \"%s\""
+
+#, fuzzy
#~ msgid "multiple declarators in template declaration"
#~ msgstr "flera lagringsklasser i deklaration av \"%s\""
diff --git a/gcc/po/tr.po b/gcc/po/tr.po
index 891ea945377..f7e6af51396 100644
--- a/gcc/po/tr.po
+++ b/gcc/po/tr.po
@@ -1,13 +1,13 @@
# Turkish translations for gcc messages.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, ...,2004.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, ...,2005.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.4.3\n"
+"Project-Id-Version: gcc 4.0-b20050226\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:39+0000\n"
-"PO-Revision-Date: 2004-11-05 20:13+0300\n"
+"POT-Creation-Date: 2005-02-25 23:36+0000\n"
+"PO-Revision-Date: 2005-03-03 21:43+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"
@@ -16,617 +16,571 @@ msgstr ""
"X-Generator: KBabel 1.0\n"
#: attribs.c:175
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute directive ignored"
-msgstr "`%s' özellik yönergesi yoksayıldı"
+msgstr "%qs özellik yönergesi yoksayıldı"
#: attribs.c:183
-#, fuzzy, c-format
+#, c-format
msgid "wrong number of arguments specified for %qs attribute"
-msgstr "'%s' özelliği için belirtilen argüman sayısı hatalı"
+msgstr "%qs özelliği için belirtilen argüman sayısı hatalı"
#: attribs.c:200
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute does not apply to types"
-msgstr "`%s' özelliği veri türlerine uygulanmaz"
+msgstr "%qs özelliği veri türlerine uygulanmaz"
#: attribs.c:246
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute only applies to function types"
-msgstr "`%s' özelliği sadece işlev türlere uygulanır"
+msgstr "%qs özelliği sadece işlev türlere uygulanır"
#: builtins.c:341
msgid "offset outside bounds of constant string"
msgstr "göreli konum sabit dizgenin sınırlarının dışında"
-#: builtins.c:923
-#, fuzzy
+#: builtins.c:928
msgid "second argument to %<__builtin_prefetch%> must be a constant"
-msgstr "`__builtin_prefetch' için 2. argüman bir sabit olmalı"
+msgstr "%<__builtin_prefetch%> için 2. argüman bir sabit olmalı"
-#: builtins.c:930
-#, fuzzy
+#: builtins.c:935
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
-msgstr "__builtin_prefetch için 2. argüman geçersiz; sıfır kullanılıyor"
+msgstr "%<__builtin_prefetch%> için 2. argüman geçersiz; sıfır kullanılıyor"
-#: builtins.c:938
-#, fuzzy
+#: builtins.c:943
msgid "third argument to %<__builtin_prefetch%> must be a constant"
-msgstr "`__builtin_prefetch' için 3. argüman bir sabit olmalı"
+msgstr "%<__builtin_prefetch%> için 3. argüman bir sabit olmalı"
-#: builtins.c:945
-#, fuzzy
+#: builtins.c:950
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
-msgstr "__builtin_prefetch için 3. argüman geçersiz; sıfır kullanılıyor"
+msgstr "%<__builtin_prefetch%> için 3. argüman geçersiz; sıfır kullanılıyor"
-#: builtins.c:3727
-#, fuzzy
+#: builtins.c:3806
msgid "argument of %<__builtin_args_info%> must be constant"
-msgstr "`__builtin_args_info'nun argümanı bir sabit olmalıdır"
+msgstr "%<__builtin_args_info%>'nun argümanı bir sabit olmalıdır"
-#: builtins.c:3733
-#, fuzzy
+#: builtins.c:3812
msgid "argument of %<__builtin_args_info%> out of range"
-msgstr "`__builtin_args_info'nun argümanı kapsamdışı"
+msgstr "%<__builtin_args_info%>'nun argümanı kapsamdışı"
-#: builtins.c:3739
-#, fuzzy
+#: builtins.c:3818
msgid "missing argument in %<__builtin_args_info%>"
-msgstr "`__builtin_args_info'da argüman eksik"
+msgstr "%<__builtin_args_info%>'da argüman eksik"
-#: builtins.c:3755 builtins.c:8661
-#, fuzzy
-msgid "%<va_start%> used in function with fixed args"
-msgstr "`va_start' işlev içinde sabit argümanlarla kullanılmış"
-
-#: builtins.c:3774 builtins.c:8677
-#, fuzzy
-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:3779 builtins.c:8683
-#, fuzzy
-msgid "%<__builtin_next_arg%> called without an argument"
-msgstr "`__builtin_next_arg' argümansız çağrılmış"
-
-#: builtins.c:3865
-#, fuzzy
+#: builtins.c:3914 gimplify.c:1765
msgid "too few arguments to function %<va_start%>"
-msgstr "`va_start' işlevine çok fazla argüman verilmiş"
+msgstr "%<va_start%> işlevine çok fazla argüman verilmiş"
-#: builtins.c:3869
-#, fuzzy
-msgid "too many arguments to function %<va_start%>"
-msgstr "`va_start' işlevine çok fazla argüman verilmiş"
-
-#: builtins.c:4017
-#, fuzzy
+#: builtins.c:4077
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"
+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:4031
-#, fuzzy
+#: builtins.c:4091
msgid "%qT is promoted to %qT when passed through %<...%>"
-msgstr "`%s' `...' sayesinde aktarıldığında `%s'e yükseltilmiş"
+msgstr "%qT %<...%> üzerinden aktarılırken %qT türüne yükseltilmiş"
-#: builtins.c:4036
-#, fuzzy
+#: builtins.c:4096
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
-msgstr "(bu durumda `va_arg'a `%s' aktarılmalı, `%s' değil)"
+msgstr "(bu durumda %<va_arg%>'a %qT değil %qT akarılmalı)"
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4042 c-typeck.c:1940
+#: builtins.c:4102 c-typeck.c:2023
msgid "if this code is reached, the program will abort"
msgstr "Bu kodun bitiminde uygulama çıkacak"
-#: builtins.c:4160
-#, fuzzy
+#: builtins.c:4220
msgid "invalid argument to %<__builtin_frame_address%>"
-msgstr "`__builtin_frame_address'e aktarılan argüman geçersiz"
+msgstr "%<__builtin_frame_address%>'e aktarılan argüman geçersiz"
-#: builtins.c:4162
-#, fuzzy
+#: builtins.c:4222
msgid "invalid argument to %<__builtin_return_address%>"
-msgstr "`__builtin_return_address'e aktarılan argüman geçersiz"
+msgstr "%<__builtin_return_address%>'e aktarılan argüman geçersiz"
-#: builtins.c:4176
-#, fuzzy
+#: builtins.c:4235
msgid "unsupported argument to %<__builtin_frame_address%>"
-msgstr "`__builtin_frame_address'e aktarılan argüman desteklenmiyor"
+msgstr "%<__builtin_frame_address%>'e aktarılan argüman desteklenmiyor"
-#: builtins.c:4178
-#, fuzzy
+#: builtins.c:4237
msgid "unsupported argument to %<__builtin_return_address%>"
-msgstr "`__builtin_return_address'e aktarılan argüman desteklenmiyor"
+msgstr "%<__builtin_return_address%>'e aktarılan argüman desteklenmiyor"
-#: builtins.c:4281
-#, fuzzy
+#: builtins.c:4340
msgid "second argument to %<__builtin_expect%> must be a constant"
-msgstr "`__builtin_expect'e aktarılan ikinci argüman bir sabit olmalı"
+msgstr "%<__builtin_return_address%>'ın ikinci argümanı bir sabit olmalı"
-#: builtins.c:5488
-#, fuzzy
+#: builtins.c:5590
msgid "%<__builtin_longjmp%> second argument must be 1"
-msgstr "__builtin_longjmp'ın ikinci argümanı 1 olmalı"
+msgstr "%<__builtin_longjmp%>'ın ikinci argümanı 1 olmalı"
-#: builtins.c:5840
+#: builtins.c:5942
msgid "target format does not support infinity"
msgstr "hedef biçim sonsuzu desteklemiyor"
-#: builtins.c:7518 builtins.c:7613
-#, fuzzy, c-format
+#: builtins.c:7699 builtins.c:7794
+#, c-format
msgid "too few arguments to function %qs"
-msgstr "`%s' işlevi için argümanlar çok az"
+msgstr " %qs işlevi için argümanlar çok az"
-#: builtins.c:7524 builtins.c:7619
-#, fuzzy, c-format
+#: builtins.c:7705 builtins.c:7800
+#, c-format
msgid "too many arguments to function %qs"
-msgstr "`%s' işlevi için argümanlar çok fazla"
+msgstr " %qs işlevi için argümanlar çok fazla"
-#: builtins.c:7530 builtins.c:7644
-#, fuzzy, c-format
+#: builtins.c:7711 builtins.c:7825
+#, c-format
msgid "non-floating-point argument to function %qs"
-msgstr "`%s' işlevine kayan noktalı olmayan argüman"
+msgstr " %qs işlevine kayan noktalı olmayan argüman"
-#: c-common.c:831
-#, fuzzy
+#: builtins.c:8911
+msgid "%<va_start%> used in function with fixed args"
+msgstr "%<va_start%> işlev içinde sabit argümanlarla kullanılmış"
+
+#. 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:8918
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr "%<__builtin_next_arg%> argümansız çağrılmış"
+
+#: builtins.c:8933
+msgid "%<va_start%> used with too many arguments"
+msgstr "%<va_start%> çok fazla argümanla kullanılmış"
+
+#. FIXME: Sometimes with the tree optimizers we can get the
+#. not the last argument even though the user used the last
+#. argument. We just warn and set the arg to be the last
+#. argument so that we will get wrong-code because of
+#. it.
+#: builtins.c:8953
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr "%<va_start%>'ın ikinci parametresi isimli son argüman değil"
+
+#: c-common.c:826
msgid "%qD is not defined outside of function scope"
-msgstr "%J işlev etki alanı dışında tanımlı olmayan '%D'"
+msgstr "%qD işlev etki alanı dışında tanımlı değil"
-#: c-common.c:852
-#, fuzzy, c-format
+#: c-common.c:847
+#, c-format
msgid "string length %qd is greater than the length %qd 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"
+msgstr "dizge uzunluğu `%1$qd ISO C%3$d derleyicilerin desteklediği uzunluk %2$qd den büyük"
-#: c-common.c:898
+#: c-common.c:888
msgid "overflow in constant expression"
msgstr "sabit ifadesinde taÅŸma"
-#: c-common.c:918
+#: c-common.c:908
msgid "integer overflow in expression"
msgstr "ifadede tamsayı taşması"
-#: c-common.c:927
+#: c-common.c:917
msgid "floating point overflow in expression"
msgstr "ifadede gerçel sayı taşması"
-#: c-common.c:933
+#: c-common.c:923
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:955
+#: c-common.c:945
msgid "large integer implicitly truncated to unsigned type"
msgstr "büyük tamsayı örtük olarak unsigned türe indirgendi"
-#: c-common.c:957
+#: c-common.c:947
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:1015
+#: c-common.c:1005
msgid "overflow in implicit constant conversion"
msgstr "örtük sabit dönüşümünde taşma"
-#: c-common.c:1151
-#, fuzzy, c-format
+#: c-common.c:1141
+#, c-format
msgid "operation on %qs may be undefined"
-msgstr "`%s' üstündeki işlem tanımsız olabilir"
+msgstr "%qs üstündeki işlem tanımsız olabilir"
-#: c-common.c:1437
+#: c-common.c:1425
msgid "case label does not reduce to an integer constant"
msgstr "case etiketi bir tamsayı sabite indirgenmez"
-#: c-common.c:1480
-#, fuzzy
+#: c-common.c:1468
msgid "case label value is less than minimum value for type"
-msgstr "tamsayı sabit türünün izin verdiği değerden büyük"
+msgstr "case etiketinin değeri veri türünün izin verdiği değerden küçük"
-#: c-common.c:1488
-#, fuzzy
+#: c-common.c:1476
msgid "case label value exceeds maximum value for type"
-msgstr "tamsayı sabit türünün izin verdiği değerden büyük"
+msgstr "case etiketinin değeri veri türünün izin verdiği değerden büyük"
-#: c-common.c:1496
-#, fuzzy
+#: c-common.c:1484
msgid "lower value in case label range less than minimum value for type"
-msgstr "tamsayı sabit türünün izin verdiği değerden büyük"
+msgstr "case etiket aralığının alt değeri veri türünün izin verdiği değerden küçük"
-#: c-common.c:1505
-#, fuzzy
+#: c-common.c:1493
msgid "upper value in case label range exceeds maximum value for type"
-msgstr "tamsayı sabit türünün izin verdiği değerden büyük"
+msgstr "case etiket aralığının üst değeri veri türünün izin verdiği değerden büyük"
-#: c-common.c:1821
+#: c-common.c:1833
msgid "invalid truth-value expression"
msgstr "doğruluk-değeri ifadesi geçersiz"
-#: c-common.c:1869
+#: c-common.c:1881
#, c-format
msgid "invalid operands to binary %s"
msgstr "iki terimli %s için terimler geçersiz"
-#: c-common.c:2112
+#: c-common.c:2116
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:2114
+#: c-common.c:2118
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:2184
+#: c-common.c:2188
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "unsigned ifade >=0 daima doÄŸrudur"
-#: c-common.c:2193
+#: c-common.c:2197
msgid "comparison of unsigned expression < 0 is always false"
msgstr "unsigned ifade < 0 daima yanlıştır"
-#: c-common.c:2235
-#, fuzzy
+#: c-common.c:2239
msgid "pointer of type %<void *%> used in arithmetic"
-msgstr "aritmetikte `void *' türünde gösterici kullanılmış"
+msgstr "aritmetikte %<void *%> türünde gösterici kullanılmış"
-#: c-common.c:2241
+#: c-common.c:2245
msgid "pointer to a function used in arithmetic"
msgstr "aritmetikte işlev göstericisi kullanılmış"
-#: c-common.c:2247
+#: c-common.c:2251
msgid "pointer to member function used in arithmetic"
msgstr "aritmetikte üye işlev göstericisi kullanılmış"
#. Common Ada/Pascal programmer's mistake. We always warn
#. about this since it is so bad.
-#: c-common.c:2355
-#, fuzzy
+#: c-common.c:2371
msgid "the address of %qD, will always evaluate as %<true%>"
-msgstr "`%D' nin adresi, daima `true' olarak deÄŸerlendirilecek"
+msgstr "%qD adresi, daima %<true%> olarak deÄŸerlendirilecek"
-#: c-common.c:2451
+#: c-common.c:2467
msgid "suggest parentheses around assignment used as truth value"
msgstr "atamayı sarmalayan parantezler muhtemelen doğruluk değeri olarak kullanılmış"
-#: c-common.c:2500 c-common.c:2540
-#, fuzzy
+#: c-common.c:2535 c-common.c:2575
msgid "invalid use of %<restrict%>"
-msgstr "`restrict' kullanımı geçersiz"
+msgstr "%<restrict%> kullanımı geçersiz"
-#: c-common.c:2756
-#, fuzzy
+#: c-common.c:2791
msgid "invalid application of %<sizeof%> to a function type"
-msgstr "bir işlev türüne geçersiz `sizeof' uygulaması "
+msgstr "bir işlev türüne %<sizeof%> uygulanması geçersiz"
-#: c-common.c:2766
-#, fuzzy, c-format
+#: c-common.c:2801
+#, c-format
msgid "invalid application of %qs to a void type"
-msgstr "bir void türe geçersiz `%s' uygulaması"
+msgstr "bir void türe %qs uygulanması geçersiz"
-#: c-common.c:2772
-#, fuzzy
+#: c-common.c:2807
msgid "invalid application of %qs to incomplete type %qT "
-msgstr "`%s' `%T' tamamlanmamış türe uygulanırsa geçersizdir"
+msgstr "%qs için %qT tamamlanmamış türünün uygulanması geçersiz"
-#: c-common.c:2813
-#, fuzzy
+#: c-common.c:2848
msgid "%<__alignof%> applied to a bit-field"
-msgstr "`__alignof' bir bit-alanına uygulanmış"
+msgstr "%<__alignof%> bir bit-alanına uygulanmış"
-#: c-common.c:3258
-#, fuzzy, c-format
+#: c-common.c:3315
+#, c-format
msgid "cannot disable built-in function %qs"
-msgstr "`%s' yerleÅŸik iÅŸlev olduÄŸundan iptal edilemez"
+msgstr "%qs yerleÅŸik iÅŸlev olduÄŸundan iptal edilemez"
-#: c-common.c:3448
+#: c-common.c:3505
msgid "pointers are not permitted as case values"
msgstr "case değeri olarak göstericiler kullanılamaz"
-#: c-common.c:3452
+#: c-common.c:3509
msgid "range expressions in switch statements are non-standard"
msgstr "switch deyimlerinde aralık ifadeleri standartdışıdır"
-#: c-common.c:3477
+#: c-common.c:3534
msgid "empty range specified"
msgstr "boş aralık belirtilmiş"
-#: c-common.c:3536
+#: c-common.c:3593
msgid "duplicate (or overlapping) case value"
msgstr "yinelenmiÅŸ (ya da birbirini kapsayan) case deÄŸerleri"
-#: c-common.c:3537
+#: c-common.c:3594
msgid "%Jthis is the first entry overlapping that value"
msgstr "%J bu, aynı değeri kapsayan ilk girdi"
-#: c-common.c:3541
+#: c-common.c:3598
msgid "duplicate case value"
msgstr "yinelenmiÅŸ case deÄŸeri"
-#: c-common.c:3542
+#: c-common.c:3599
msgid "%Jpreviously used here"
msgstr "%J önce burada kullanılmış"
-#: c-common.c:3546
+#: c-common.c:3603
msgid "multiple default labels in one switch"
msgstr "tek switch'te çok sayıda öntanımlı etiket"
-#: c-common.c:3547
+#: c-common.c:3604
msgid "%Jthis is the first default label"
msgstr "%J bu, ilk öntanımlı etiket"
-#: c-common.c:3596
-#, fuzzy
+#: c-common.c:3653
msgid "%Jcase value %qs not in enumerated type"
-msgstr "case deÄŸeri `%ld' sembolik sabit grubunda deÄŸil"
+msgstr "%J case deÄŸeri %qs sembolik sabit grubunda deÄŸil"
-#: c-common.c:3599
-#, fuzzy
+#: c-common.c:3656
msgid "%Jcase value %qs not in enumerated type %qT"
-msgstr "case deÄŸeri `%ld' sembolik sabit grubunda deÄŸil"
+msgstr "%J case deÄŸeri %qs, %qT sembolik sabit grubunda deÄŸil"
-#: c-common.c:3666
-#, fuzzy
+#: c-common.c:3723
msgid "%Hswitch missing default case"
-msgstr "switch içinde default eksik"
+msgstr "%Hswitch içinde default eksik"
#. Warn if there are enumerators that don't correspond to
#. case expressions.
-#: c-common.c:3700
-#, fuzzy
+#: c-common.c:3757
msgid "%Henumeration value %qE not handled in switch"
-msgstr "sembolik sabit grubu deÄŸeri `%s' switch deyiminde elde edilemedi"
+msgstr "%Hsembolik sabit grubu deÄŸeri %qE switch deyiminde elde edilemedi"
-#: c-common.c:3727
+#: c-common.c:3784
msgid "taking the address of a label is non-standard"
msgstr "bir etiket adresinin alınması standartdışıdır"
-#: c-common.c:3896 c-common.c:3915 c-common.c:3933 c-common.c:3960
-#: c-common.c:3979 c-common.c:4002 c-common.c:4026 c-common.c:4052
-#: c-common.c:4086 c-common.c:4130 c-common.c:4158 c-common.c:4186
-#: c-common.c:4205 c-common.c:4527 c-common.c:4558 c-common.c:4644
-#: c-common.c:4711 c-common.c:4757 c-common.c:4815 c-common.c:4844
-#: c-common.c:5123 c-common.c:5146 c-common.c:5185 tree.c:3240
-#: config/darwin.c:1218 config/arm/arm.c:2645 config/arm/arm.c:2672
-#: config/avr/avr.c:4514 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
-#: config/i386/i386.c:1725 config/i386/i386.c:14480 config/ia64/ia64.c:512
-#: config/ip2k/ip2k.c:3163 config/m68hc11/m68hc11.c:1314
-#: config/rs6000/rs6000.c:17094 config/sh/symbian.c:414
-#: config/sh/symbian.c:421
-#, fuzzy, c-format
+#: c-common.c:3953 c-common.c:3972 c-common.c:3990 c-common.c:4017
+#: c-common.c:4036 c-common.c:4059 c-common.c:4083 c-common.c:4109
+#: c-common.c:4143 c-common.c:4187 c-common.c:4215 c-common.c:4243
+#: c-common.c:4262 c-common.c:4593 c-common.c:4624 c-common.c:4716
+#: c-common.c:4783 c-common.c:4829 c-common.c:4887 c-common.c:4916
+#: c-common.c:5195 c-common.c:5218 c-common.c:5257 tree.c:3254
+#: config/darwin.c:1236 config/arm/arm.c:2701 config/arm/arm.c:2728
+#: config/avr/avr.c:4601 config/h8300/h8300.c:5779 config/h8300/h8300.c:5802
+#: config/i386/i386.c:1732 config/i386/i386.c:15625 config/ia64/ia64.c:526
+#: config/ip2k/ip2k.c:3164 config/m68hc11/m68hc11.c:1312
+#: config/sh/symbian.c:414 config/sh/symbian.c:421
+#, c-format
msgid "%qs attribute ignored"
-msgstr "`%s' özelliği yoksayıldı"
+msgstr "%qs özelliği yoksayıldı"
-#: c-common.c:4243
-#, fuzzy, c-format
+#: c-common.c:4300
+#, c-format
msgid "unknown machine mode %qs"
-msgstr "'%s makina kipi bilinmiyor"
+msgstr "%qs makina kipi bilinmiyor"
-#: c-common.c:4263
+#: c-common.c:4320
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
-msgstr ""
+msgstr "vektör türlerin __attribute__ ((mode)) ile belirtilmesi artık önerilmiyor"
-#: c-common.c:4265
-#, fuzzy
+#: c-common.c:4322
msgid "use __attribute__ ((vector_size)) instead"
-msgstr "`%s' özellik yönergesi yoksayıldı"
+msgstr "onun yerine __attribute__ ((vector_size)) kullanın"
-#: c-common.c:4274
-#, fuzzy, c-format
+#: c-common.c:4331
+#, c-format
msgid "unable to emulate %qs"
-msgstr "'%s' öykünümü yapılamıyor"
+msgstr "%qs öykünümü yapılamıyor"
-#: c-common.c:4284
-#, fuzzy, c-format
+#: c-common.c:4341
+#, c-format
msgid "invalid pointer mode %qs"
-msgstr "gösterici kipi olarak `%s' geçersiz"
+msgstr "gösterici kipi olarak %qs geçersiz"
-#: c-common.c:4299
-#, fuzzy, c-format
+#: c-common.c:4356
+#, c-format
msgid "no data type for mode %qs"
-msgstr "'%s' kipi için bir veri türü yok"
+msgstr "%qs kipi için bir veri türü yok"
-#: c-common.c:4309
-#, fuzzy, c-format
+#: c-common.c:4366
+#, c-format
msgid "cannot use mode %qs for enumeral types"
-msgstr "bir gösterici türüne dönüştürülemez"
+msgstr "%qs kipi sembolik sabit türler için kullanılamaz"
-#: c-common.c:4322
-#, fuzzy, c-format
+#: c-common.c:4390
+#, c-format
msgid "mode %qs applied to inappropriate type"
-msgstr "`%s' kipi ilgisiz türe uygulanmış"
+msgstr "%qs kipi ilgisiz türe uygulanmış"
-#: c-common.c:4355
+#: c-common.c:4421
msgid "%Jsection attribute cannot be specified for local variables"
msgstr "%J bölge özelliği yerel değişkenler için belirtilmiş olamaz"
-#: c-common.c:4366
-#, fuzzy
+#: c-common.c:4432
msgid "%Jsection of %qD conflicts with previous declaration"
-msgstr "%J `%D' bölgesi önceki bildirimle çelişiyor"
+msgstr "%J %qD bölgesi önceki bildirimle çelişiyor"
-#: c-common.c:4375
-#, fuzzy
+#: c-common.c:4441
msgid "%Jsection attribute not allowed for %qD"
-msgstr "%J bölge özelliğine `%D' için izin verilmez"
+msgstr "%J bölge özelliğine %qD için izin verilmez"
-#: c-common.c:4381
+#: c-common.c:4447
msgid "%Jsection attributes are not supported for this target"
msgstr "%J bölge özellikleri bu hedef için desteklenmiyor"
-#: c-common.c:4419
+#: c-common.c:4485
msgid "requested alignment is not a constant"
msgstr "istenen ayarlama bir sabit deÄŸil"
-#: c-common.c:4424
+#: c-common.c:4490
msgid "requested alignment is not a power of 2"
msgstr "istenen ayarlama 2 nin kuvveti deÄŸil"
-#: c-common.c:4429
+#: c-common.c:4495
msgid "requested alignment is too large"
msgstr "istenen ayarlama çok büyük"
-#: c-common.c:4455
-#, fuzzy
+#: c-common.c:4521
msgid "%Jalignment may not be specified for %qD"
-msgstr "%J hizalama `%D' için belirtilmiş olmayabilir"
+msgstr "%J hizalama %qD için belirtilmiş olmayabilir"
-#: c-common.c:4493
-#, fuzzy
+#: c-common.c:4559
msgid "%J%qD defined both normally and as an alias"
-msgstr "%J `%D' hem normal hem de bir rumuz olarak tanımlanmış"
+msgstr "%J %qD hem normal hem de bir rumuz olarak tanımlanmış"
-#: c-common.c:4509
-#, fuzzy
+#: c-common.c:4575
msgid "alias argument not a string"
-msgstr "rumuz argümanı bir dizge değil"
+msgstr "alias argümanı bir dizge değil"
-#: c-common.c:4551
-#, fuzzy, c-format
+#: c-common.c:4617
+#, c-format
msgid "%qs attribute ignored on non-class types"
-msgstr "`%s' özelliği `%s' için yoksayıldı"
+msgstr "%qs özelliği sınıf türleri dışında yoksayılır"
-#: c-common.c:4564
-#, fuzzy
+#: c-common.c:4630
msgid "visibility argument not a string"
-msgstr "görünürlük argümanı bir dizge değil"
+msgstr "visibility argümanı bir dizge değil"
-#: c-common.c:4585
-#, fuzzy
+#: c-common.c:4642
+#, c-format
+msgid "%qE attribute ignored on types"
+msgstr "%qE özelliği veri türlerinde yoksayılır"
+
+#: c-common.c:4657
msgid "visibility argument 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"
+msgstr "visibility argümanı \"default\", \"hidden\", \"protected\" veya \"internal\" değerlerinden biri olmalıdır"
-#: c-common.c:4654
-#, fuzzy
+#: c-common.c:4726
msgid "tls_model argument not a string"
msgstr "tls_model argümanı bir dizge değil"
-#: c-common.c:4663
-#, fuzzy
+#: c-common.c:4735
msgid "tls_model argument 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ı"
+msgstr "tls_model argümanı \"local-exec\", \"initial-exec\", \"local-dynamic\" veya \"global-dynamic\" değerlerinden biri olmalı"
-#: c-common.c:4685 c-common.c:4731
-#, fuzzy
+#: c-common.c:4757 c-common.c:4803
msgid "%J%qE attribute applies only to functions"
-msgstr "%J `%E' özelliği sadece işlevlere uygulanır"
+msgstr "%J %qE özelliği sadece işlevlere uygulanır"
-#: c-common.c:4690 c-common.c:4736
-#, fuzzy
+#: c-common.c:4762 c-common.c:4808
msgid "%Jcan%'t set %qE attribute after definition"
-msgstr "%J `%E' özelliğine tanımlandıktan sonra değer atanamaz"
+msgstr "%J %qE özniteliği tanımlandıktan sonra atanamaz"
-#: c-common.c:4812
-#, fuzzy, c-format
+#: c-common.c:4884
+#, c-format
msgid "%qs attribute ignored for %qs"
-msgstr "`%s' özelliği `%s' için yoksayıldı"
+msgstr "%qs özelliği %qs için yoksayıldı"
-#: c-common.c:4873
-#, fuzzy, c-format
+#: c-common.c:4945
+#, c-format
msgid "invalid vector type for attribute %qs"
-msgstr "`%s' özelliği vektör tür geçersiz"
+msgstr "%qs özelliği vektör tür geçersiz"
-#: c-common.c:4882
+#: c-common.c:4954
msgid "number of components of the vector not a power of two"
-msgstr ""
+msgstr "vektör elemanlarının sayısı ikinin üstel değerlerinden biri değil"
-#: c-common.c:4910
+#: c-common.c:4982
msgid "nonnull attribute without arguments on a non-prototype"
msgstr "bir prototip olmayanda argümansız null olmayan özellik"
-#: c-common.c:4925
-#, fuzzy, c-format
+#: c-common.c:4997
+#, c-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr "null olmayan argüman geçersiz sayıda terim içeriyor (%lu. argüman)"
-#: c-common.c:4944
-#, fuzzy, c-format
+#: c-common.c:5016
+#, c-format
msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr "null olmayan argüman kapsamdışı sayıda terim içeriyor (%lu. argüman, %lu. terim)"
-#: c-common.c:4952
-#, fuzzy, c-format
+#: c-common.c:5024
+#, c-format
msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr "null olmayan argüman gösterici olmayan terime başvuruyor (%lu. argüman, %lu. terim)"
-#: c-common.c:5007 c-common.c:5044
-#, fuzzy
+#: c-common.c:5079 c-common.c:5116
msgid "missing sentinel in function call"
-msgstr "PC göreli işlev çağrılarını engeller"
+msgstr ""
-#: c-common.c:5030
-#, fuzzy
+#: c-common.c:5102
msgid "not enough arguments to fit a sentinel"
-msgstr "işlev için çok az argüman belirtildi"
+msgstr ""
-#: c-common.c:5086
-#, fuzzy, c-format
+#: c-common.c:5158
+#, c-format
msgid "null argument where non-null required (argument %lu)"
msgstr "null olamayan gerekiren yerde null argüman (%lu. argüman)"
-#: c-common.c:5157
-#, fuzzy
+#: c-common.c:5229
msgid "cleanup argument not an identifier"
-msgstr "temizleme argümanı bir isim değil"
+msgstr "cleanup argümanı bir isim değil"
-#: c-common.c:5164
-#, fuzzy
+#: c-common.c:5236
msgid "cleanup argument not a function"
-msgstr "temizleme argümanı bir işlev değil"
+msgstr "cleanup argümanı bir işlev değil"
-#: c-common.c:5202
-#, fuzzy, c-format
+#: c-common.c:5274
+#, c-format
msgid "%qs attribute requires prototypes with named arguments"
-msgstr "`%s' özniteliği bir tamsayı sabit argüman gerektirir"
+msgstr "%qs özniteliği isimli argümanları olan prototipler gerektirir"
-#: c-common.c:5213
-#, fuzzy, c-format
+#: c-common.c:5285
+#, c-format
msgid "%qs attribute only applies to variadic functions"
-msgstr "`%s' özniteliği sadece işlevlere uygulanır"
+msgstr "%qs özniteliği sadece değişkin işlevlere uygulanır"
-#: c-common.c:5226
-#, fuzzy
+#: c-common.c:5298
msgid "requested position is not an integer constant"
-msgstr "istenen init_priority bir tamsayı sabit değil"
+msgstr "istenen konum bir tamsayı sabit değil"
-#: c-common.c:5233
+#: c-common.c:5305
msgid "requested position is less than zero"
-msgstr ""
+msgstr "istenen konum sıfırdan küçük"
-#: c-common.c:5539
-#, fuzzy
+#: c-common.c:5611
msgid "%Hignoring return value of %qD, declared with attribute warn_unused_result"
-msgstr "%H`%D' dönüş değeri yoksayılıyor, warn_unused_result özelliği ile bildirilmiş"
+msgstr "%H %qD dönüş değeri yoksayılıyor, warn_unused_result özelliği ile bildirim artık önerilmiyor"
-#: c-common.c:5543
+#: c-common.c:5615
msgid "%Hignoring return value of function declared with attribute warn_unused_result"
msgstr "%Hwarn_unused_result özelliği ile bildirilen işlevin dönüş değeri yoksayılıyor"
-#: c-common.c:5582
-#, fuzzy, c-format
+#: c-common.c:5675
+#, c-format
msgid "attempt to take address of bit-field structure member %qs"
-msgstr "bit-alanı yapının `%s' üyesinin adresi alınmaya çalışılıyor"
+msgstr "bit-alanı yapının %qs üyesinin adresi alınmaya çalışılıyor"
-#: c-common.c:5634
+#: c-common.c:5727
msgid "invalid lvalue in assignment"
msgstr "atama içinde sol taraf geçersiz"
-#: c-common.c:5637
+#: c-common.c:5730
msgid "invalid lvalue in increment"
msgstr "arttırmada geçersiz sol taraf"
-#: c-common.c:5640
+#: c-common.c:5733
msgid "invalid lvalue in decrement"
msgstr "eksiltmede geçersiz sol taraf"
-#: c-common.c:5643
-#, fuzzy
+#: c-common.c:5736
msgid "invalid lvalue in unary %<&%>"
-msgstr "tekil `&' için geçersiz soldeğer"
+msgstr "tek terimli %<&%> için soldeğer geçersiz"
-#: c-common.c:5646
+#: c-common.c:5739
msgid "invalid lvalue in asm statement"
msgstr "asm deyiminde geçersiz sol taraf"
@@ -635,1251 +589,1084 @@ msgstr "asm deyiminde geçersiz sol taraf"
#. an unprototyped function, it is compile-time undefined;
#. making it a constraint in that case was rejected in
#. DR#252.
-#: c-convert.c:83 c-typeck.c:1354 c-typeck.c:3446 cp/typeck.c:1380
-#: cp/typeck.c:5940 fortran/convert.c:89 treelang/tree-convert.c:79
+#: c-convert.c:83 c-typeck.c:1430 c-typeck.c:3526 cp/typeck.c:1351
+#: cp/typeck.c:5842 fortran/convert.c:89 treelang/tree-convert.c:79
msgid "void value not ignored as it ought to be"
msgstr "void değer yoksayılması gerekirken yoksayılmadı"
-#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:158
+#: c-convert.c:121 fortran/convert.c:122 java/typeck.c:156
#: treelang/tree-convert.c:105
msgid "conversion to non-scalar type requested"
msgstr "sayısal olmayan türe dönüşüm istendi"
-#: c-decl.c:524
-#, fuzzy
+#: c-decl.c:530
msgid "%Jarray %qD assumed to have one element"
-msgstr "%J `%D' dizisi tek elemanlı kabul edildi"
+msgstr "%J %qD dizisi tek elemanlı kabul edildi"
-#: c-decl.c:637
+#: c-decl.c:643
#, c-format
msgid "GCC supports only %u nested scopes"
-msgstr ""
+msgstr "GCC iç içe sadece %u etki alanını destekler"
-#: c-decl.c:721
-#, fuzzy
+#: c-decl.c:727
msgid "%Jlabel %qD used but not defined"
-msgstr "%J etiket `%D' tanımlanmadan kullanılmış"
+msgstr "%J etiket %qD tanımlanmadan kullanılmış"
-#: c-decl.c:727
-#, fuzzy
+#: c-decl.c:733
msgid "%Jlabel %qD defined but not used"
-msgstr "%J etiket `%D' tanımlı ama kullanılmamış"
+msgstr "%J etiket %qD tanımlı ama kullanılmamış"
-#: c-decl.c:729
-#, fuzzy
+#: c-decl.c:735
msgid "%Jlabel %qD declared but not defined"
-msgstr "%J etiket `%D' tanımlanmadan kullanılmış"
+msgstr "%J etiket %qD tanımlanmadan bildirilmiş"
-#: c-decl.c:772 cp/decl.c:575
-#, fuzzy
+#: c-decl.c:770
+msgid "%Jnested function %qD declared but never defined"
+msgstr "%J iç işlev %qD tanımlanmadan bildirilmiş"
+
+#: c-decl.c:784 cp/decl.c:568
msgid "%Junused variable %qD"
-msgstr "%J '%D' değişkeni kullanılmadı"
+msgstr "%J değişken %qD kullanılmadı"
-#: c-decl.c:776
+#: c-decl.c:788
msgid "%Jtype of array %qD completed incompatibly with implicit initialization"
-msgstr ""
+msgstr "%J %qD dizisinin türü dolaylı ilklendirme ile uyumsuz olarak tamamlanmış"
-#: c-decl.c:1008
-#, fuzzy
+#: c-decl.c:1022
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:1015
-#, fuzzy
+#: c-decl.c:1029
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:1051
-#, fuzzy
+#: c-decl.c:1065
msgid "%Jprototype for %qD declares more arguments than previous old-style definition"
-msgstr "%J '%D' prototipi önceki eski tarz tanımdan daha fazla argüman bildiriyor"
+msgstr "%J %qD prototipi önceki eski tarz tanımdan daha fazla argüman bildiriyor"
-#: c-decl.c:1057
-#, fuzzy
+#: c-decl.c:1071
msgid "%Jprototype for %qD declares fewer arguments than previous old-style definition"
-msgstr "%J '%D' prototipi önceki eski tarz tanımdan daha az argüman bildiriyor"
+msgstr "%J %qD prototipi önceki eski tarz tanımdan daha az argüman bildiriyor"
-#: c-decl.c:1066
-#, fuzzy
+#: c-decl.c:1080
msgid "%Jprototype for %qD declares argument %d with incompatible type"
-msgstr "%J '%D' prototipi %d argümanını uyumsuz türde bildiriyor"
+msgstr "%J %qD prototipi %d. argümanı uyumsuz türde bildiriyor"
#. If we get here, no errors were found, but do issue a warning
#. for this poor-style construct.
-#: c-decl.c:1079
-#, fuzzy
+#: c-decl.c:1093
msgid "%Jprototype for %qD follows non-prototype definition"
-msgstr "%J '%D' prototipinden sonraki tanım bir prototip değil"
+msgstr "%J %qD prototipinden sonraki tanım bir prototip değil"
-#: c-decl.c:1094
-#, fuzzy
+#: c-decl.c:1108
msgid "%Jprevious definition of %qD was here"
-msgstr "%J '%D'nin önceki tanımı burasıydı"
+msgstr "%J %qD'nin önceki tanımı buradaydı"
-#: c-decl.c:1096
-#, fuzzy
+#: c-decl.c:1110
msgid "%Jprevious implicit declaration of %qD was here"
-msgstr "%J '%D'nin önceki örtük bildirimi buradaydı"
+msgstr "%J %qD'nin önceki örtük bildirimi buradaydı"
-#: c-decl.c:1098
-#, fuzzy
+#: c-decl.c:1112
msgid "%Jprevious declaration of %qD was here"
-msgstr "%J '%D'nin önceki bildirimi burasıydı"
+msgstr "%J '%qD'nin önceki bildirimi burasıydı"
-#: c-decl.c:1134
-#, fuzzy
+#: c-decl.c:1149
msgid "%J%qD redeclared as different kind of symbol"
-msgstr "%J `%D' farklı bir sembol çeşidi olarak tekrar bildirilmiş"
+msgstr "%J `%qD farklı bir sembol çeşidi olarak tekrar bildirilmiş"
-#: c-decl.c:1139
-#, fuzzy
+#: c-decl.c:1154
msgid "%Jbuilt-in function %qD declared as non-function"
-msgstr "%J yerleÅŸik iÅŸlev `%D' iÅŸlev olarak bildirilmemiÅŸ"
+msgstr "%J yerleÅŸik iÅŸlev `%qD iÅŸlev olarak bildirilmemiÅŸ"
-#: c-decl.c:1142 c-decl.c:1246 c-decl.c:1815
-#, fuzzy
+#: c-decl.c:1157 c-decl.c:1273 c-decl.c:1879
msgid "%Jdeclaration of %qD shadows a built-in function"
-msgstr "%J `%D'bildirimi bir parametreyi gölgeliyor"
+msgstr "%J %qD bildirimi bir yerlişk işlevi gölgeliyor"
-#: c-decl.c:1151
-#, fuzzy
+#: c-decl.c:1166
msgid "%Jredeclaration of enumerator %qD"
-msgstr "`enum %s' yeniden bildirilmiÅŸ"
+msgstr "enumerator %qD yeniden bildirilmiÅŸ"
#. If types don't match for a built-in, throw away the
#. built-in. No point in calling locate_old_decl here, it
#. won't print anything.
-#: c-decl.c:1172
-#, fuzzy
+#: c-decl.c:1187
msgid "%Jconflicting types for built-in function %qD"
-msgstr "%J yerleşik işlev `%D' için tür çelişkisi"
+msgstr "%J yerleşik işlev %qD için tür çelişkisi"
-#: c-decl.c:1196 c-decl.c:1207
-#, fuzzy
+#: c-decl.c:1211 c-decl.c:1224 c-decl.c:1234
msgid "%Jconflicting types for %qD"
-msgstr "%J `%D' için çelişen türler"
+msgstr "%J %qD için çelişen türler"
-#: c-decl.c:1205
-#, fuzzy
+#: c-decl.c:1232
msgid "%J conflicting type qualifiers for %qD"
-msgstr "%J `%D' için çelişen türler"
+msgstr "%J %qD için çelişen tür niteleyiciler"
#. Allow OLDDECL to continue in use.
-#: c-decl.c:1222
-#, fuzzy
+#: c-decl.c:1249
msgid "%Jredefinition of typedef %qD"
-msgstr "%J typedef `%D'in yeniden tanımlanması"
+msgstr "%J typedef %qD için yeniden tanımlama"
-#: c-decl.c:1261 c-decl.c:1339
-#, fuzzy
+#: c-decl.c:1291 c-decl.c:1301 c-decl.c:1314 c-decl.c:1396
msgid "%Jredefinition of %qD"
-msgstr "%J `%D'in yeniden tanımlanması"
+msgstr "%J %qD için yeniden tanımlama"
-#: c-decl.c:1296 c-decl.c:1377
-#, fuzzy
+#: c-decl.c:1353 c-decl.c:1434
msgid "%Jstatic declaration of %qD follows non-static declaration"
-msgstr "%J statik olmayan bildirimden sonra `%D' için 'static' bildirim"
+msgstr "%J statik olmayan bildirimden sonra %qD için 'static' bildirim"
-#: c-decl.c:1306 c-decl.c:1313 c-decl.c:1366 c-decl.c:1374
-#, fuzzy
+#: c-decl.c:1363 c-decl.c:1370 c-decl.c:1423 c-decl.c:1431
msgid "%Jnon-static declaration of %qD follows static declaration"
-msgstr "%J statik bildirimden sonra `%D' için 'static' olmayan bildirim"
+msgstr "%J statik bildirimden sonra `%qD için 'static' olmayan bildirim"
-#: c-decl.c:1326
-#, fuzzy
+#: c-decl.c:1383
msgid "%Jthread-local declaration of %qD follows non-thread-local declaration"
-msgstr "%J yerel-olmayan-evreli bildirimden sonra `%D' yerel-evreli bildirimi"
+msgstr "%J yerel-olmayan-evreli bildirimden sonra %qD yerel-evreli bildirimi"
-#: c-decl.c:1329
-#, fuzzy
+#: c-decl.c:1386
msgid "%Jnon-thread-local declaration of %qD follows thread-local declaration"
-msgstr "%J yerel-evreli bildirimden sonra `%D' yerel-olmayan-evreli bildirimi"
+msgstr "%J yerel-evreli bildirimden sonra `%qD yerel-olmayan-evreli bildirimi"
-#: c-decl.c:1359
-#, fuzzy
+#: c-decl.c:1416
msgid "%Jextern declaration of %qD follows declaration with no linkage"
-msgstr "%J ilintisiz bildirimden sonra `%D' extern bildirimi"
+msgstr "%J ilintisiz bildirimden sonra %qD extern bildirimi"
-#: c-decl.c:1395
-#, fuzzy
+#: c-decl.c:1452
msgid "%Jdeclaration of %qD with no linkage follows extern declaration"
-msgstr "%J extern bildirimden sonra ilintisiz `%D' bildirimi"
+msgstr "%J extern bildirimden sonra ilintisiz %qD bildirimi"
-#: c-decl.c:1401
-#, fuzzy
+#: c-decl.c:1458
msgid "%Jredeclaration of %qD with no linkage"
-msgstr "%J ilintisiz `%D' yeniden bildirimi"
+msgstr "%J ilintisiz %qD yeniden bildirimi"
-#: c-decl.c:1415
-#, fuzzy
+#: c-decl.c:1472
msgid "%Jredeclaration of %qD with different visibility (old visibility preserved)"
-msgstr "%J '%D' için farklı görünürlükte yeniden bildirim (eski görünürlük saklı)"
+msgstr "%J %qD için farklı görünürlükte yeniden bildirim (eski görünürlük saklı)"
-#: c-decl.c:1426
-#, fuzzy
+#: c-decl.c:1483
msgid "%Jinline declaration of %qD follows declaration with attribute noinline"
-msgstr "%J 'inline' olmayan özellikli bildirimden sonra `%D' 'inline' bildirimi"
+msgstr "%J 'inline' olmayan özellikli bildirimden sonra %qD 'inline' bildirimi"
-#: c-decl.c:1433
-#, fuzzy
+#: c-decl.c:1490
msgid "%Jdeclaration of %qD with attribute noinline follows inline declaration "
-msgstr "%J 'inline' bildiriminden sonra `%D' 'inline' olmayan özellikli bildirim"
+msgstr "%J 'inline' bildiriminden sonra %qD 'inline' olmayan özellikli bildirim"
-#: c-decl.c:1448
-#, fuzzy
+#: c-decl.c:1505
msgid "%J%qD declared inline after being called"
-msgstr "%J çağrı sonrası `inline' bildirimli '%D'"
+msgstr "%J %qD çağrıdan sonra `inline' bildirilmiş"
-#: c-decl.c:1454
-#, fuzzy
+#: c-decl.c:1511
msgid "%J%qD declared inline after its definition"
-msgstr "%J tanımlandıktan sonra `inline' bildirimli '%D'"
+msgstr "%J %qD tanımlandıktan sonra `inline' bildirilmiş"
-#: c-decl.c:1474
-#, fuzzy
+#: c-decl.c:1531
msgid "%Jredefinition of parameter %qD"
-msgstr "%J `%D' parametresinin yeniden tanımlanması"
+msgstr "%J `%qD parametresinin yeniden tanımlanması"
-#: c-decl.c:1498
-#, fuzzy
+#: c-decl.c:1555
msgid "%Jredundant redeclaration of %qD"
-msgstr "%J `%D'nin gereksiz yeniden bildirimi"
+msgstr "%J %qD'nin gereksiz yeniden bildirimi"
-#: c-decl.c:1808
-#, fuzzy
+#: c-decl.c:1866
+msgid "%Jdeclaration of %qD shadows previous non-variable"
+msgstr "%J %qD bildirimi bir önceki yerel bildirimi gölgeliyor"
+
+#: c-decl.c:1871
msgid "%Jdeclaration of %qD shadows a parameter"
-msgstr "%J `%D' bildirimi bir parametreyi gölgeliyor"
+msgstr "%J %qD bildirimi bir parametreyi gölgeliyor"
-#: c-decl.c:1811
-#, fuzzy
+#: c-decl.c:1874
msgid "%Jdeclaration of %qD shadows a global declaration"
-msgstr "%J `%D'bildirimi bir parametreyi gölgeliyor"
+msgstr "%J %qD bildirimi bir genel bildirimi gölgeliyor"
-#: c-decl.c:1818
-#, fuzzy
+#: c-decl.c:1884
msgid "%Jdeclaration of %qD shadows a previous local"
-msgstr "%J `%D' bildirimi bir önceki yerel bildirimi gölgeliyor"
+msgstr "%J %qD bildirimi bir önceki yerel bildirimi gölgeliyor"
-#: c-decl.c:1823 cp/name-lookup.c:942 cp/name-lookup.c:973
+#: c-decl.c:1887 cp/name-lookup.c:942 cp/name-lookup.c:973
#: cp/name-lookup.c:981
msgid "%Jshadowed declaration is here"
msgstr "%J: gölgeli bildirim burada"
-#: c-decl.c:1977
-#, fuzzy
+#: c-decl.c:2041
msgid "nested extern declaration of %qD"
-msgstr "`%s'in iç içe 'extern' bildirimi"
-
-#: c-decl.c:2067
-#, fuzzy
-msgid "nested static declaration of %qD"
-msgstr "`%s'in iç içe 'extern' bildirimi"
+msgstr "%qD için iç içe 'extern' bildirimi"
-#: c-decl.c:2161
-#, fuzzy, c-format
+#: c-decl.c:2201
+#, c-format
msgid "implicit declaration of function %qE"
-msgstr "`%s' işlevinin örtük bildirimi"
+msgstr "%qE işlevinin örtük bildirimi"
-#: c-decl.c:2219
-#, fuzzy
+#: c-decl.c:2262
msgid "incompatible implicit declaration of built-in function %qD"
-msgstr "işlev `%#D' nin örtük bildirimi"
+msgstr "%qD yerleşik işlevinin uyumsuz örtük bildirimi"
-#: c-decl.c:2228
-#, fuzzy
+#: c-decl.c:2271
msgid "incompatible implicit declaration of function %qD"
-msgstr "işlev `%#D' nin örtük bildirimi"
+msgstr "%qD işlevinin uyumsuz örtük bildirimi"
-#: c-decl.c:2281
-#, fuzzy, c-format
+#: c-decl.c:2324
+#, c-format
msgid "%qE undeclared here (not in a function)"
-msgstr "`%s' burada bildirilmemiş (bir işlev içinde değil)"
+msgstr "%qE burada bildirilmemiş (bir işlev içinde değil)"
-#: c-decl.c:2286
-#, fuzzy, c-format
+#: c-decl.c:2329
+#, c-format
msgid "%qE undeclared (first use in this function)"
-msgstr "`%s' bildirilmemiş (bu işlevde ilk kullanımı)"
+msgstr "%qE bildirilmemiş (bu işlevde ilk kullanımı)"
-#: c-decl.c:2290
+#: c-decl.c:2333
msgid "(Each undeclared identifier is reported only once"
msgstr "(Bildirilmemiş her tanıtıcı sadece bir kez raporlanır)"
-#: c-decl.c:2291
+#: c-decl.c:2334
msgid "for each function it appears in.)"
msgstr "her işlev için içinde görünür.)"
-#: c-decl.c:2329
-#, fuzzy, c-format
+#: c-decl.c:2372
+#, c-format
msgid "label %qs referenced outside of any function"
-msgstr "%s etiketi işlev dışı referanslı"
+msgstr "%qs etiketi işlev dışına referanslı"
-#: c-decl.c:2372
-#, fuzzy, c-format
+#: c-decl.c:2415
+#, c-format
msgid "duplicate label declaration %qs"
-msgstr "`%s' etiketi birden fazla bildirilmiÅŸ"
+msgstr "%qs etiketi birden fazla bildirilmiÅŸ"
-#: c-decl.c:2407
-#, fuzzy
+#: c-decl.c:2450
msgid "%Hduplicate label %qD"
-msgstr "yinlenmiÅŸ etiket `%D' %H"
+msgstr "%H yinelenmiÅŸ etiket %qD"
-#: c-decl.c:2429
-#, fuzzy
+#: c-decl.c:2472
msgid "%Htraditional C lacks a separate namespace for labels, identifier %qs conflicts"
-msgstr "%Hgeleneksel C etiketler için ayrı bir isim alanından yoksundur, `%s' belirteci çelişiyor"
+msgstr "%Hgeleneksel C etiketler için ayrı bir isim alanından yoksundur, %qs belirteci çelişiyor"
-#: c-decl.c:2495
-#, fuzzy
+#: c-decl.c:2538
msgid "%H%qs defined as wrong kind of tag"
-msgstr "%H`%s' yanlış sembol çeşidi olarak tanımlı"
+msgstr "%H %qs yanlış sembol çeşidi olarak tanımlı"
-#: c-decl.c:2718
+#: c-decl.c:2761
msgid "unnamed struct/union that defines no instances"
msgstr "ilk tanımı olmayan adsız struct/union"
-#: c-decl.c:2726
-#, fuzzy
+#: c-decl.c:2769
msgid "empty declaration with storage class specifier does not redeclare tag"
-msgstr "dizi bildiriminde saklatım öbeği belirteçleri"
+msgstr "saklatım sınıfı belirteçli boş bildirim yeniden yafta bildirmez"
-#: c-decl.c:2737
-#, fuzzy
+#: c-decl.c:2780
msgid "empty declaration with type qualifier does not redeclare tag"
-msgstr "bildirim hiçbir şey bildirmiyor"
+msgstr "tür niteleyicili boş bildirim yeniden yafta bildirmez"
-#: c-decl.c:2758 c-decl.c:2765
-#, fuzzy
+#: c-decl.c:2801 c-decl.c:2808
msgid "useless type name in empty declaration"
-msgstr "boş bildirimde kullanışsız tür ismi ya da anahtar sözcük"
+msgstr "boş bildirimde kullanışsız tür ismi"
-#: c-decl.c:2773
-#, fuzzy
+#: c-decl.c:2816
msgid "%<inline%> in empty declaration"
-msgstr "boÅŸ bildirim"
+msgstr "boÅŸ bildirimde %<inline%>"
-#: c-decl.c:2779
-#, fuzzy
+#: c-decl.c:2822
msgid "%<auto%> in file-scope empty declaration"
-msgstr "bir boş bildirimde iki veri türü belirtilmiş"
+msgstr "dosya etki alanı boş bildiriminde %<auto%>"
-#: c-decl.c:2785
-#, fuzzy
+#: c-decl.c:2828
msgid "%<register%> in file-scope empty declaration"
-msgstr "bir boş bildirimde iki veri türü belirtilmiş"
+msgstr "dosya etki alanı boş bildiriminde %<register%>"
-#: c-decl.c:2791
-#, fuzzy
+#: c-decl.c:2834
msgid "useless storage class specifier in empty declaration"
-msgstr "dizi bildiriminde saklatım öbeği belirteçleri"
+msgstr "boş bildirimde kullanışsız saklatım sınıfı belirteci"
-#: c-decl.c:2797
-#, fuzzy
+#: c-decl.c:2840
msgid "useless %<__thread%> in empty declaration"
-msgstr "boş bildirimde kullanışsız tür ismi ya da anahtar sözcük"
+msgstr "boş bildirimde kullanışsız %<__thread%>"
-#: c-decl.c:2805
-#, fuzzy
+#: c-decl.c:2848
msgid "useless type qualifier in empty declaration"
-msgstr "%s bildirimde yinelenmiş tür niteleyiciler"
+msgstr "boş bildirimde kullanışsız tür niteleyici"
-#: c-decl.c:2812 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
+#: c-decl.c:2855 c-parse.y:781 c-parse.y:783 objc/objc-parse.y:818
#: objc/objc-parse.y:820
msgid "empty declaration"
msgstr "boÅŸ bildirim"
-#: c-decl.c:2878
-#, fuzzy
+#: c-decl.c:2921
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"
+msgstr "ISO C90, parametre dizisi bildirimlerinde `%<static%> ve tür niteleyicileri desteklemez"
-#: c-decl.c:2881
-#, fuzzy
+#: c-decl.c:2924
msgid "ISO C90 does not support %<[*]%> array declarators"
-msgstr "ISO C90 dizi bildirimlerinde `[*]' desteklemez"
+msgstr "ISO C90 %<[*]%> dizi bildirimlerini desteklemez"
-#: c-decl.c:2884
-#, fuzzy
+#: c-decl.c:2927
msgid "GCC does not yet properly implement %<[*]%> array declarators"
-msgstr "GCC `[*]' dizi bildirimlerini henüz tam desteklemiyor"
+msgstr "GCC %<[*]%> dizi bildirimlerini henüz tam desteklemiyor"
-#: c-decl.c:2903
+#: c-decl.c:2946
msgid "static or type qualifiers in abstract declarator"
msgstr "kuramsal bildirimde 'static' ya da tür niteleyiciler"
-#: c-decl.c:2960
-#, fuzzy
+#: c-decl.c:3005
msgid "%J%qD is usually a function"
-msgstr "%J `%D' çogu kez bir işlevdir"
+msgstr "%J %qD çogu kez bir işlevdir"
-#: c-decl.c:2969 cp/decl.c:3718 cp/decl2.c:853
-#, fuzzy
+#: c-decl.c:3014 cp/decl.c:3617 cp/decl2.c:850
msgid "typedef %qD is initialized (use __typeof__ instead)"
-msgstr "typedef `%D' ilklendirilmiş (yerine __typeof__ kullanın)"
+msgstr "typedef %qD ilklendirilmiş (yerine __typeof__ kullanın)"
-#: c-decl.c:2974
-#, fuzzy
+#: c-decl.c:3019
msgid "function %qD is initialized like a variable"
-msgstr "`%D' iÅŸlevi bir deÄŸiÅŸken gibi ilklendirilmiÅŸ"
+msgstr "%qD iÅŸlevi bir deÄŸiÅŸken gibi ilklendirilmiÅŸ"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:2980
-#, fuzzy
+#: c-decl.c:3025
msgid "parameter %qD is initialized"
-msgstr "`%s' parametresi ilkdeÄŸerli"
+msgstr "%qD parametresi ilklendirilmiÅŸ"
#. Although C99 is unclear about whether incomplete arrays
#. of VLAs themselves count as VLAs, it does not make
#. sense to permit them to be initialized given that
#. ordinary VLAs may not be initialized.
-#: c-decl.c:2999 c-decl.c:3019 c-typeck.c:4280
+#: c-decl.c:3044 c-decl.c:3059 c-typeck.c:4380
msgid "variable-sized object may not be initialized"
msgstr "deÄŸiÅŸken-uzunluklu nesne ilkdeÄŸerli olmayabilir"
-#: c-decl.c:3005
-#, fuzzy
+#: c-decl.c:3050
msgid "variable %qD has initializer but incomplete type"
-msgstr "`%#D' değişkeni ilklendirilmiş ama içi boş türde"
-
-#: c-decl.c:3010
-#, fuzzy
-msgid "elements of array %qD have incomplete type"
-msgstr "`%#D' dizisinin elemanları içi boş türde"
+msgstr "%qD değişkeni ilklendiricili ama içi boş türde"
-#: c-decl.c:3086 c-decl.c:5696 cp/decl.c:3758 cp/decl.c:9944
-#, fuzzy
+#: c-decl.c:3126 c-decl.c:5741 cp/decl.c:3657 cp/decl.c:9941
msgid "%Jinline function %qD given attribute noinline"
-msgstr "%J inline `%D' işlevine inline olmayan özellik verilmiş"
+msgstr "%J inline %qD işlevine inline olmayan öznitelik verilmiş"
-#: c-decl.c:3154
-#, fuzzy
+#: c-decl.c:3194
msgid "%Jinitializer fails to determine size of %qD"
-msgstr "%J ilklendirici `%D' nin boyutunu saptamada başarısız"
+msgstr "%J ilklendirici %qD boyutunu saptamada başarısız"
-#: c-decl.c:3159
-#, fuzzy
+#: c-decl.c:3199
msgid "%Jarray size missing in %qD"
-msgstr "%J `%D' de dizi boyutu eksik"
+msgstr "%J %qD de dizi boyutu eksik"
-#: c-decl.c:3175
-#, fuzzy
+#: c-decl.c:3215
msgid "%Jzero or negative size array %qD"
-msgstr "%J `%D' dizisi sıfır ya da negatif uzunlukta"
+msgstr "%J %qD' dizisi sıfır ya da negatif uzunlukta"
-#: c-decl.c:3201 varasm.c:1541
-#, fuzzy
+#: c-decl.c:3241 varasm.c:1556
msgid "%Jstorage size of %qD isn%'t known"
-msgstr "%J `%D' nin saklama uzunluÄŸu bilinmiyor"
+msgstr "%J %qD için saklama uzunluğu bilinmiyor"
-#: c-decl.c:3211
-#, fuzzy
+#: c-decl.c:3251
msgid "%Jstorage size of %qD isn%'t constant"
-msgstr "%J `%D' nin saklama geniÅŸliÄŸi sabit deÄŸil"
+msgstr "%J %qD için saklama genişliği sabit değil"
-#: c-decl.c:3266
-#, fuzzy
+#: c-decl.c:3299
msgid "%Jignoring asm-specifier for non-static local variable %qD"
-msgstr "%J static olmayan yerel değişken `%D' için asm-belirtecinin yoksayılması"
+msgstr "%J static olmayan yerel değişken %qD için asm-belirtecinin yoksayılması"
-#: c-decl.c:3296 fortran/f95-lang.c:647
+#: c-decl.c:3329 fortran/f95-lang.c:646
msgid "cannot put object with volatile field into register"
msgstr "gelgeç alanlı nesne yazmaça konulamaz"
-#: c-decl.c:3430
+#: c-decl.c:3463
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C ileriye dönük parametre bildirimlerine izin vermez"
-#: c-decl.c:3614
+#: c-decl.c:3648
msgid "<anonymous>"
msgstr "<anonim>"
-#: c-decl.c:3623
-#, fuzzy, c-format
+#: c-decl.c:3657
+#, c-format
msgid "bit-field %qs width not an integer constant"
-msgstr "`%s' bit alanı genişliği bir tamsayı sabit değil"
+msgstr "%qs bit alanı genişliği bir tamsayı sabit değil"
-#: c-decl.c:3631
-#, fuzzy, c-format
+#: c-decl.c:3665
+#, c-format
msgid "negative width in bit-field %qs"
-msgstr "`%s' bit alanının uzunluğu negatif"
+msgstr "%qs bit alanının uzunluğu negatif"
-#: c-decl.c:3636
-#, fuzzy, c-format
+#: c-decl.c:3670
+#, c-format
msgid "zero width for bit-field %qs"
-msgstr "bit alanı `%s' için sıfır genişlik"
+msgstr "bit alanı %qs için sıfır genişlik"
-#: c-decl.c:3646
-#, fuzzy, c-format
+#: c-decl.c:3680
+#, c-format
msgid "bit-field %qs has invalid type"
-msgstr "`%s' bit alanı geçersiz tür içeriyor"
+msgstr "%qs bit alanı geçersiz tür içeriyor"
-#: c-decl.c:3655
-#, fuzzy, c-format
+#: c-decl.c:3689
+#, c-format
msgid "type of bit-field %qs is a GCC extension"
-msgstr "`%s' bit alanı türü bir GCC oluşumudur"
+msgstr "%qs bit alanı türü bir GCC oluşumudur"
-#: c-decl.c:3664
-#, fuzzy, c-format
+#: c-decl.c:3698
+#, c-format
msgid "width of %qs exceeds its type"
-msgstr "`%s' in uzunluğu türünü aşıyor"
+msgstr "%qs in uzunluğu türünü aşıyor"
-#: c-decl.c:3677
-#, fuzzy, c-format
+#: c-decl.c:3711
+#, c-format
msgid "%qs is narrower than values of its type"
-msgstr "`%s'in uzunluğu türünün değerinden daha kısa"
+msgstr "%qs genişliği türününkinden daha dar"
-#: c-decl.c:3802
-#, fuzzy
+#: c-decl.c:3836
msgid "type defaults to %<int%> in declaration of %qs"
-msgstr "`%s' bildiriminde tür `int'e öntanımlı"
+msgstr "%qs bildiriminde tür öntanımlı olarak %<int%>"
-#: c-decl.c:3830
-#, fuzzy
+#: c-decl.c:3864
msgid "duplicate %<const%>"
-msgstr "`const' yinelenmiÅŸ"
+msgstr "%<const%> yinelenmiÅŸ"
-#: c-decl.c:3832
-#, fuzzy
+#: c-decl.c:3866
msgid "duplicate %<restrict%>"
-msgstr "`restrict' yinelenmiÅŸ"
+msgstr "%<restrict%> yinelenmiÅŸ"
-#: c-decl.c:3834
-#, fuzzy
+#: c-decl.c:3868
msgid "duplicate %<volatile%>"
-msgstr "`volatile' yinelenmiÅŸ"
+msgstr "%<volatile%> yinelenmiÅŸ"
-#: c-decl.c:3853
-#, fuzzy
+#: c-decl.c:3887
msgid "function definition declared %<auto%>"
-msgstr "işlev tanımı `auto' olarak bildirildi"
+msgstr "%<auto%> bildirimli işlev tanımı"
-#: c-decl.c:3855
-#, fuzzy
+#: c-decl.c:3889
msgid "function definition declared %<register%>"
-msgstr "işlev tanımı `register' olarak bildirildi"
+msgstr "%<register%> bildirimli işlev tanımı"
-#: c-decl.c:3857
-#, fuzzy
+#: c-decl.c:3891
msgid "function definition declared %<typedef%>"
-msgstr "işlev tanımı `typedef' olarak bildirildi"
+msgstr "%<typedef%> bildirimli işlev tanımı"
-#: c-decl.c:3859
-#, fuzzy
+#: c-decl.c:3893
msgid "function definition declared %<__thread%>"
-msgstr "işlev tanımı `__thread' olarak bildirildi"
+msgstr "%<__thread%> bildirimli işlev tanımı"
-#: c-decl.c:3875
-#, fuzzy, c-format
+#: c-decl.c:3909
+#, c-format
msgid "storage class specified for structure field %qs"
-msgstr "`%s' yapı alan için saklama sınıfı belirtildi"
+msgstr "%qs yapı alan için saklama sınıfı belirtilmiş"
-#: c-decl.c:3879 cp/decl.c:7120
-#, fuzzy, c-format
+#: c-decl.c:3913 cp/decl.c:7053
+#, c-format
msgid "storage class specified for parameter %qs"
-msgstr "`%s' parametresi için saklama sınıfı belirtildi"
+msgstr "%qs parametresi için saklama sınıfı belirtilmiş"
-#: c-decl.c:3882 cp/decl.c:7122
+#: c-decl.c:3916 cp/decl.c:7055
msgid "storage class specified for typename"
msgstr "veri türü ismi için saklama sınıfı belirtildi"
-#: c-decl.c:3895 cp/decl.c:7139
-#, fuzzy
+#: c-decl.c:3929 cp/decl.c:7072
msgid "%qs initialized and declared %<extern%>"
-msgstr "`%s' ilklendirildikten sonra `extern' olarak bildirilmiÅŸ"
+msgstr "%qs ilklendirilmiÅŸ ve %<extern%> bildirilmiÅŸ"
-#: c-decl.c:3897 cp/decl.c:7142
-#, fuzzy
+#: c-decl.c:3931 cp/decl.c:7075
msgid "%qs has both %<extern%> and initializer"
-msgstr "`%s' hem `extern' olarak bildirilmiş hem de öndeğer almış"
+msgstr "%qs hem %<extern%> olarak bildirilmiÅŸ hem de ilklendrilmiÅŸ"
-#: c-decl.c:3902
-#, fuzzy
+#: c-decl.c:3936
msgid "file-scope declaration of %qs specifies %<auto%>"
-msgstr "`%s' için dosya etki alanı bildirimi `auto' belirtiyor"
+msgstr "%qs için dosya etki alanı bildirimi %<auto%> belirtiyor"
-#: c-decl.c:3904
-#, fuzzy
+#: c-decl.c:3938
msgid "file-scope declaration of %qs specifies %<register%>"
-msgstr "`%s' için dosya etki alanı bildirimi `auto' belirtiyor"
+msgstr "%qs için dosya etki alanı bildirimi %<register%> belirtiyor"
-#: c-decl.c:3909 cp/decl.c:7146
-#, fuzzy
+#: c-decl.c:3943 cp/decl.c:7079
msgid "nested function %qs declared %<extern%>"
-msgstr "yuvalanmış işlev `%s' `extern' olarak bildirilmiş"
+msgstr "iç işlev %qs %<extern%> olarak bildirilmiş"
-#: c-decl.c:3912 cp/decl.c:7156
-#, fuzzy
+#: c-decl.c:3946 cp/decl.c:7089
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
-msgstr "`%s' işlevinin etki alanı dolaylı olarak auto ve `__thread' bildirimli"
+msgstr "%qs 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:3953 c-decl.c:4142
+#: c-decl.c:3993 c-decl.c:4183
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "parametresiz dizi bildirimi içinde 'static' veya tür niteleyiciler"
-#: c-decl.c:3999
-#, fuzzy, c-format
+#: c-decl.c:4039
+#, c-format
msgid "declaration of %qs as array of voids"
-msgstr "`%s' void'ler dizisi olarak bildirilmiÅŸ"
+msgstr "void dizisi olarak %qs bildirimi"
-#: c-decl.c:4005
-#, fuzzy, c-format
+#: c-decl.c:4045
+#, c-format
msgid "declaration of %qs as array of functions"
-msgstr "`%s' iÅŸlevler dizisi olarak bildirilmiÅŸ"
+msgstr "iÅŸlev dizisi olarak %qs bildirimi"
-#: c-decl.c:4010
+#: c-decl.c:4050
msgid "invalid use of structure with flexible array member"
msgstr "esnek dizi üyeli yapı kullanımı geçersiz"
-#: c-decl.c:4030
-#, fuzzy, c-format
+#: c-decl.c:4070
+#, c-format
msgid "size of array %qs has non-integer type"
-msgstr "`%s' dizisinin boyutu tamsayı değil"
+msgstr "%qs dizisinin boyutu tamsayı tür değil"
-#: c-decl.c:4035
-#, fuzzy, c-format
+#: c-decl.c:4075
+#, c-format
msgid "ISO C forbids zero-size array %qs"
-msgstr "ISO C sıfır boyutlu `%s' dizisini yasaklar"
+msgstr "ISO C sıfır boyutlu %qs dizisini yasaklar"
-#: c-decl.c:4042
-#, fuzzy, c-format
+#: c-decl.c:4082
+#, c-format
msgid "size of array %qs is negative"
-msgstr "`%s' dizisinin boyutu negatif"
+msgstr "%qs dizisinin boyutu negatif"
-#: c-decl.c:4056
-#, fuzzy
+#: c-decl.c:4096
msgid "ISO C90 forbids array %qs whose size can%'t be evaluated"
-msgstr "ISO C90 deÄŸerlendirilemeyen boyutlu `%s' dizisini yasaklar"
+msgstr "ISO C90 deÄŸerlendirilemeyen boyutlu %qs dizisini yasaklar"
-#: c-decl.c:4060
-#, fuzzy, c-format
+#: c-decl.c:4100
+#, c-format
msgid "ISO C90 forbids variable-size array %qs"
-msgstr "ISO C90 deÄŸiÅŸken boyutlu `%s' dizisini yasaklar"
+msgstr "ISO C90 deÄŸiÅŸken boyutlu %qs dizisini yasaklar"
-#: c-decl.c:4093 c-decl.c:4261 cp/decl.c:7559
-#, fuzzy, c-format
+#: c-decl.c:4139 c-decl.c:4303 cp/decl.c:7509
+#, c-format
msgid "size of array %qs is too large"
-msgstr "`%s' dizisinin boyutu çok büyük"
+msgstr "%qs dizisinin boyutu çok büyük"
-#: c-decl.c:4106
+#: c-decl.c:4150
msgid "ISO C90 does not support flexible array members"
msgstr "ISO C90 esnek dizi üyelerini desteklemez"
-#: c-decl.c:4115
+#: c-decl.c:4160
msgid "array type has incomplete element type"
msgstr "dizi türü içi boş öğe türü içeriyor"
-#: c-decl.c:4174 cp/decl.c:7248
-#, fuzzy, c-format
+#: c-decl.c:4215 cp/decl.c:7179
+#, c-format
msgid "%qs declared as function returning a function"
-msgstr "`%s' bir işlevle sonuçlanan bir işlev olarak bildirilmiş"
+msgstr "%qs bir işlevle dönen bir işlev olarak bildirilmiş"
-#: c-decl.c:4179 cp/decl.c:7253
-#, fuzzy, c-format
+#: c-decl.c:4220 cp/decl.c:7184
+#, c-format
msgid "%qs declared as function returning an array"
-msgstr "`%s' bir dizi ile sonuçlanan bir işlev olarak bildirilmiş"
+msgstr "%qs bir dizi ile dönen bir işlev olarak bildirilmiş"
-#: c-decl.c:4199
-#, fuzzy
+#: c-decl.c:4240
msgid "function definition has qualified void return type"
-msgstr "nitelikli tür `%T' tanımı geçersiz"
+msgstr "işlev tanımı nitelikli void dönüş türü içeriyor"
-#: c-decl.c:4201
+#: c-decl.c:4242
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:4230 c-decl.c:4274 c-decl.c:4368 c-decl.c:4455
+#: c-decl.c:4271 c-decl.c:4316 c-decl.c:4410 c-decl.c:4501
msgid "ISO C forbids qualified function types"
msgstr "ISO C nitelemeli işlev türlerini yasaklar"
-#: c-decl.c:4282
-#, fuzzy
+#: c-decl.c:4324
msgid "%Jtypedef %qD declared %<inline%>"
-msgstr "%J `inline' bildirilmiÅŸ '%D' deÄŸiÅŸkeni"
+msgstr "%J %<inline%> bildirimli typedef %qD"
-#: c-decl.c:4312
+#: c-decl.c:4354
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C 'const' ya da 'volatile' işlev türlerini yasaklar"
-#: c-decl.c:4332
-#, fuzzy, c-format
+#: c-decl.c:4374
+#, c-format
msgid "variable or field %qs declared void"
-msgstr "`%s' değişkeni ya da alanı void olarak bildirilmiş"
+msgstr "%qs değişkeni ya da alanı void bildirimli"
-#: c-decl.c:4361
+#: c-decl.c:4403
msgid "attributes in parameter array declarator ignored"
msgstr "parametre dizisi bildirimindeki özellikler yoksayıldı"
-#: c-decl.c:4396
-#, fuzzy
+#: c-decl.c:4438
msgid "%Jparameter %qD declared %<inline%>"
-msgstr "parametre \"%D\" void olarak bildirilmiÅŸ"
+msgstr "%J %<inline%> bildirimli %qD parametresi"
-#: c-decl.c:4409
-#, fuzzy, c-format
+#: c-decl.c:4451
+#, c-format
msgid "field %qs declared as a function"
-msgstr "`%s' alanı bir işlev olarak bildirilmiş"
+msgstr "%qs alanı bir işlev olarak bildirilmiş"
-#: c-decl.c:4415
-#, fuzzy, c-format
+#: c-decl.c:4457
+#, c-format
msgid "field %qs has incomplete type"
-msgstr "`%s' alanı tamamlanmamış türde"
+msgstr "%qs alanı tamamlanmamış türde"
-#: c-decl.c:4432 c-decl.c:4443 c-decl.c:4446
-#, fuzzy, c-format
+#: c-decl.c:4471 c-decl.c:4483 c-decl.c:4487
+#, c-format
msgid "invalid storage class for function %qs"
-msgstr "`%s' işlevi için geçersiz saklama sınıfı"
+msgstr "%qs işlevi için geçersiz saklama sınıfı"
-#: c-decl.c:4461
-#, fuzzy
+#: c-decl.c:4507
msgid "%<noreturn%> function returns non-void value"
-msgstr "`noreturn' iÅŸlevinin sonucu void deÄŸil"
+msgstr "%<noreturn%> işlevinin dönüşü void değil"
-#: c-decl.c:4489
-#, fuzzy
+#: c-decl.c:4535
msgid "cannot inline function %<main%>"
-msgstr "`main' özümlenen işlev olamaz"
+msgstr "%<main%> satıriçi işlev olamaz"
-#: c-decl.c:4546
-#, fuzzy
+#: c-decl.c:4582
msgid "variable previously declared %<static%> redeclared %<extern%>"
-msgstr "evvelce `static' bildirilmiÅŸ deÄŸiÅŸken `extern' olarak yeniden bildirilmiÅŸ"
+msgstr "evvelce %<static%> bildirilmiÅŸ deÄŸiÅŸken %<extern%> olarak yeniden bildirilmiÅŸ"
-#: c-decl.c:4555
-#, fuzzy
+#: c-decl.c:4591
msgid "%Jvariable %qD declared %<inline%>"
-msgstr "%J `inline' bildirilmiÅŸ '%D' deÄŸiÅŸkeni"
+msgstr "%J %<inline%> bildirimli %qD deÄŸiÅŸkeni"
#. A mere warning is sure to result in improper semantics
#. at runtime. Don't bother to allow this to compile.
-#: c-decl.c:4586 cp/decl.c:5994
+#: c-decl.c:4622 cp/decl.c:5920
msgid "thread-local storage not supported for this target"
msgstr "bu hedefte yerel evreli saklama desteklenmiyor"
-#: c-decl.c:4648 c-decl.c:5733
-#, fuzzy
+#: c-decl.c:4684 c-decl.c:5778
msgid "function declaration isn%'t a prototype"
msgstr "iÅŸlev bildirimi bir prototip deÄŸil"
-#: c-decl.c:4656
+#: c-decl.c:4692
msgid "parameter names (without types) in function declaration"
msgstr "işlev bildiriminde (türleri belirtmeksizin) parametre isimleri"
-#: c-decl.c:4689
-#, fuzzy
+#: c-decl.c:4725
msgid "%Jparameter %u (%qD) has incomplete type"
-msgstr "%J parametre \"%D\" tamamlanmamış türde"
+msgstr "%J %u. parametre (%qD) tamamlanmamış türde"
-#: c-decl.c:4692
-#, fuzzy
+#: c-decl.c:4728
msgid "%Jparameter %u has incomplete type"
-msgstr "%J parametre \"%D\" tamamlanmamış türde"
+msgstr "%J %u. parametre tamamlanmamış türde"
-#: c-decl.c:4701
-#, fuzzy
+#: c-decl.c:4737
msgid "%Jparameter %u (%qD) has void type"
-msgstr "%J parametre \"%D\" tamamlanmamış türde"
+msgstr "%J %u. parametre (%qD) tamamlanmamış türde"
-#: c-decl.c:4704
-#, fuzzy
+#: c-decl.c:4740
msgid "%Jparameter %u has void type"
-msgstr "%J parametre \"%D\" tamamlanmamış türde"
+msgstr "%J %u. parametre void türde"
-#: c-decl.c:4761
-#, fuzzy
+#: c-decl.c:4797
msgid "%<void%> as only parameter may not be qualified"
-msgstr "tek parametre olarak \"void\" yeterli olmayabilir"
+msgstr "tek parametre olarak %<void%> yeterli olmayabilir"
-#: c-decl.c:4765 c-decl.c:4800
-#, fuzzy
+#: c-decl.c:4801 c-decl.c:4836
msgid "%<void%> must be the only parameter"
-msgstr "\"void\" tek parametre olmalıdır"
+msgstr "%<void%> tek parametre olmalıdır"
-#: c-decl.c:4793
-#, fuzzy
+#: c-decl.c:4829
msgid "%Jparameter %qD has just a forward declaration"
-msgstr "%J `%D' parametresi tam bir ilerletme bildirimi"
+msgstr "%J %qD parametresi tam bir ilerletme bildirimi"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4839
-#, fuzzy
+#: c-decl.c:4875
msgid "%<%s %E%> declared inside parameter list"
-msgstr "\"%s %s\" parametre listesinin içinde bildirilmiş"
+msgstr "%<%s %E%> parametre listesinin içinde bildirilmiş"
#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:4843
+#: c-decl.c:4879
#, c-format
msgid "anonymous %s declared inside parameter list"
msgstr "anonim %s parametre listesinin içinde bildirilmiş"
-#: c-decl.c:4848
+#: c-decl.c:4884
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:4981
-#, fuzzy
+#: c-decl.c:5017
msgid "redefinition of %<union %s%>"
-msgstr "`union %s' tekrar tanımlanmış"
+msgstr "%<union %s%> yeniden tanımlanmış"
-#: c-decl.c:4983
-#, fuzzy
+#: c-decl.c:5019
msgid "redefinition of %<struct %s%>"
-msgstr "`struct %s' tekrar tanımlanmış"
+msgstr "%<struct %s%> yeniden tanımlanmış"
-#: c-decl.c:4988
-#, fuzzy
+#: c-decl.c:5024
msgid "nested redefinition of %<union %s%>"
-msgstr "`%s' içiçe yeniden tanımlanmış"
+msgstr "%<union %s%> iç içe yeniden tanımlanmış"
-#: c-decl.c:4991
-#, fuzzy
+#: c-decl.c:5027
msgid "nested redefinition of %<struct %s%>"
-msgstr "`%s' içiçe yeniden tanımlanmış"
+msgstr "%<struct %s%> iç içe yeniden tanımlanmış"
-#: c-decl.c:5063 cp/decl.c:3517
+#: c-decl.c:5099 cp/decl.c:3414
msgid "declaration does not declare anything"
msgstr "bildirim hiçbir şey bildirmiyor"
-#: c-decl.c:5067
-#, fuzzy
+#: c-decl.c:5103
msgid "ISO C doesn%'t support unnamed structs/unions"
msgstr "ISO C isimsiz struct/union'lara izin vermez"
-#: c-decl.c:5110 c-decl.c:5126
-#, fuzzy
+#: c-decl.c:5146 c-decl.c:5162
msgid "%Jduplicate member %qD"
-msgstr "%J yinelenmiş üye `%D'"
+msgstr "%J yinelenmiş üye %qD"
-#: c-decl.c:5165
-#, fuzzy
+#: c-decl.c:5201
msgid "union has no named members"
-msgstr "isimli üyeleri yok"
+msgstr "birleşim hiç isimli üye içermiyor"
-#: c-decl.c:5167
-#, fuzzy
+#: c-decl.c:5203
msgid "union has no members"
-msgstr "üyesiz anonim birleşik yapı"
+msgstr "birleşim hiç üye içermiyor"
-#: c-decl.c:5172
-#, fuzzy
+#: c-decl.c:5208
msgid "struct has no named members"
-msgstr "isimli üyeleri yok"
+msgstr "yapı hiç isimli üye içermiyor"
-#: c-decl.c:5174
-#, fuzzy
+#: c-decl.c:5210
msgid "struct has no members"
-msgstr "yıkıcılar parametre almaz"
+msgstr "yapı hiç üye içermiyor"
-#: c-decl.c:5231
+#: c-decl.c:5267
msgid "%Jflexible array member in union"
msgstr "%J union içinde esnek dizi üye"
-#: c-decl.c:5236
+#: c-decl.c:5272
msgid "%Jflexible array member not at end of struct"
msgstr "%J yapının son üyesi olmayan esnek dizi"
-#: c-decl.c:5241
+#: c-decl.c:5277
msgid "%Jflexible array member in otherwise empty struct"
msgstr "%J başka türlü boş yapı içinde esnek dizi"
-#: c-decl.c:5248
+#: c-decl.c:5284
msgid "%Jinvalid use of structure with flexible array member"
msgstr "%J esnek dizi üyeli yapının geçersiz kullanımı"
-#: c-decl.c:5353
+#: c-decl.c:5392
msgid "union cannot be made transparent"
msgstr "birleşik yapı şeffaf olamaz"
-#: c-decl.c:5418
-#, fuzzy
+#: c-decl.c:5463
msgid "nested redefinition of %<enum %s%>"
-msgstr "`%s' içiçe yeniden tanımlanmış"
+msgstr "%<enum %s%> içiçe yeniden tanımlanmış"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5425
-#, fuzzy
+#: c-decl.c:5470
msgid "redeclaration of %<enum %s%>"
-msgstr "`enum %s' yeniden bildirilmiÅŸ"
+msgstr "%<enum %s%> yeniden bildirilmiÅŸ"
-#: c-decl.c:5488
+#: c-decl.c:5533
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:5505
+#: c-decl.c:5550
msgid "specified mode too small for enumeral values"
-msgstr ""
+msgstr "belirtilen kip sıralı sayısal değerler için çok küçük"
-#: c-decl.c:5604
-#, fuzzy, c-format
+#: c-decl.c:5649
+#, c-format
msgid "enumerator value for %qE is not an integer constant"
-msgstr "`%s' için değer tamsayı sabit değil"
+msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
-#: c-decl.c:5621
+#: c-decl.c:5666
msgid "overflow in enumeration values"
msgstr "sembolik sabit listesi deÄŸerlerinde taÅŸma"
-#: c-decl.c:5626
-#, fuzzy
+#: c-decl.c:5671
msgid "ISO C restricts enumerator values to range of %<int%>"
-msgstr "ISO C sembolik sabit grubunun değerlerini `int' kapsamında sınırlar"
+msgstr "ISO C sembolik sabit grubunun değerlerini %<int%> kapsamında sınırlar"
-#: c-decl.c:5702
+#: c-decl.c:5747
msgid "return type is an incomplete type"
msgstr "dönüş türü, bir içi boş tür"
-#: c-decl.c:5710
-#, fuzzy
+#: c-decl.c:5755
msgid "return type defaults to %<int%>"
-msgstr "dönen tür `int'e öntanımlı"
+msgstr "dönen tür %<int%> türüne öntanımlıdır"
-#: c-decl.c:5739
-#, fuzzy
+#: c-decl.c:5784
msgid "%Jno previous prototype for %qD"
-msgstr "%J `%D' için önceki prototip yok"
+msgstr "%J %qD için önceki prototip yok"
-#: c-decl.c:5745
-#, fuzzy
+#: c-decl.c:5790
msgid "%J%qD was used with no prototype before its definition"
-msgstr "%J `%D' tanımlanmadan önce prototipsiz kullanılmış"
+msgstr "%J %qD tanımlanmadan önce prototipsiz kullanılmış"
-#: c-decl.c:5752
-#, fuzzy
+#: c-decl.c:5797
msgid "%Jno previous declaration for %qD"
-msgstr "%J `%D' için evvelce bildirim yok"
+msgstr "%J %qD için evvelce bildirim yok"
-#: c-decl.c:5758
-#, fuzzy
+#: c-decl.c:5803
msgid "%J%qD was used with no declaration before its definition"
-msgstr "%J `%D' tanımından önce bildirimsiz kullanılmış"
+msgstr "%J %qD tanımından önce bildirimsiz kullanılmış"
-#: c-decl.c:5791 c-decl.c:6280
-#, fuzzy
+#: c-decl.c:5836 c-decl.c:6328
msgid "%Jreturn type of %qD is not %<int%>"
-msgstr "%J `%D' için dönen tür `int' değil"
+msgstr "%J %qD için dönen tür %<int%> değil"
-#: c-decl.c:5806
-#, fuzzy
+#: c-decl.c:5851
msgid "%Jfirst argument of %qD should be %<int%>"
-msgstr "%J `%D' için ilk argüman `int' olmalıydı"
+msgstr "%J %qD için ilk argüman %<int%> olmalıydı"
-#: c-decl.c:5815
-#, fuzzy
+#: c-decl.c:5860
msgid "%Jsecond argument of %qD should be %<char **%>"
-msgstr "%J `%D' için ikinci argüman `char **' olmalıydı"
+msgstr "%J %qD için ikinci argüman %<char **%> olmalıydı"
-#: c-decl.c:5824
-#, fuzzy
+#: c-decl.c:5869
msgid "%Jthird argument of %qD should probably be %<char **%>"
-msgstr "%J `%D' için üçüncü argüman mümkünse `char **' olmalıydı"
+msgstr "%J %qD için üçüncü argüman mümkünse %<char **%> olmalıydı"
-#: c-decl.c:5834
-#, fuzzy
+#: c-decl.c:5879
msgid "%J%qD takes only zero or two arguments"
-msgstr "%J `%D' ya iki argüman alır ya da hiç almaz"
+msgstr "%J %qD ya iki argüman alır ya da hiç almaz"
-#: c-decl.c:5837
-#, fuzzy
+#: c-decl.c:5882
msgid "%J%qD is normally a non-static function"
-msgstr "%J `%D' normalde bir static olmayan iÅŸlev"
+msgstr "%J %qD normalde bir static olmayan iÅŸlevdir"
-#: c-decl.c:5883
+#: c-decl.c:5928
msgid "%Jold-style parameter declarations in prototyped function definition"
msgstr "%J prototipli işlev tanımında eski tarz parametre bildirimi"
-#: c-decl.c:5896
-#, fuzzy
+#: c-decl.c:5941
msgid "%Jtraditional C rejects ISO C style function definitions"
-msgstr "geleneksel C, ISO C tarzı işlev tanımlarına izin vermez"
+msgstr "%J geleneksel C, ISO C tarzı işlev tanımlarına izin vermez"
-#: c-decl.c:5908
+#: c-decl.c:5953
msgid "%Jparameter name omitted"
msgstr "%J parametre ismi atlandı"
-#: c-decl.c:5948
-#, fuzzy
+#: c-decl.c:5993
msgid "%Jold-style function definition"
-msgstr "işlev tanımında saf belirteç"
+msgstr "%J eski tarz işlev tanımı"
-#: c-decl.c:5956
+#: c-decl.c:6001
msgid "%Jparameter name missing from parameter list"
msgstr "%J parametre ismi parametre listesinde yok"
-#: c-decl.c:5967
-#, fuzzy
+#: c-decl.c:6012
msgid "%J%qD declared as a non-parameter"
-msgstr "%J \"%D\" bir parametre olarak bildirilmemiÅŸ"
+msgstr "%J %qD bir parametre olarak bildirilmemiÅŸ"
-#: c-decl.c:5972
-#, fuzzy
+#: c-decl.c:6017
msgid "%Jmultiple parameters named %qD"
-msgstr "%J \"%D\" isimli çok sayıda parametre"
+msgstr "%J %qD isimli çok sayıda parametre"
-#: c-decl.c:5980
-#, fuzzy
+#: c-decl.c:6025
msgid "%Jparameter %qD declared with void type"
-msgstr "parametre \"%D\" void olarak bildirilmiÅŸ"
+msgstr "parametre %qD void olarak bildirilmiÅŸ"
-#: c-decl.c:5995 c-decl.c:5997
-#, fuzzy
+#: c-decl.c:6040 c-decl.c:6042
msgid "%Jtype of %qD defaults to %<int%>"
-msgstr "%J \"%D\" türü öntanımlı olarak `int'"
+msgstr "%J %qD türü öntanımlı olarak %<int%>"
-#: c-decl.c:6016
-#, fuzzy
+#: c-decl.c:6061
msgid "%Jparameter %qD has incomplete type"
-msgstr "%J parametre \"%D\" tamamlanmamış türde"
+msgstr "%J parametre %qD tamamlanmamış türde"
-#: c-decl.c:6022
-#, fuzzy
+#: c-decl.c:6067
msgid "%Jdeclaration for parameter %qD but no such parameter"
-msgstr "%J parametre `%D' için bildirim var ama böyle bir parametre yok"
+msgstr "%J parametre %qD için bildirim var ama böyle bir parametre yok"
-#: c-decl.c:6072
-#, fuzzy
+#: c-decl.c:6117
msgid "number of arguments doesn%'t match prototype"
-msgstr "argümanların sayısı prototiple uyumsuz"
+msgstr "argüman sayısı prototiple uyumsuz"
-#: c-decl.c:6073 c-decl.c:6103 c-decl.c:6110
+#: c-decl.c:6118 c-decl.c:6148 c-decl.c:6155
msgid "%Hprototype declaration"
msgstr "%Hprototip bildirimi"
-#: c-decl.c:6101
-#, fuzzy
+#: c-decl.c:6146
msgid "promoted argument %qD doesn%'t match prototype"
-msgstr "yükseltgenmiş argüman \"%D\" prototiple uyumsuz"
+msgstr "yükseltgenmiş argüman %qD prototiple uyumsuz"
-#: c-decl.c:6109
-#, fuzzy
+#: c-decl.c:6154
msgid "argument %qD doesn%'t match prototype"
-msgstr "\"%D\" argümanı prototiple uyumsuz"
+msgstr "%qD argümanı prototiple uyumsuz"
-#: c-decl.c:6307 cp/decl.c:10698
+#: c-decl.c:6361 cp/decl.c:10702
msgid "no return statement in function returning non-void"
msgstr "void olmayan dönüşlü işlevde `return' deyimi yok"
-#: c-decl.c:6314
+#: c-decl.c:6368
msgid "this function may return with or without a value"
msgstr "bu işlev bir değerle dönebileceği gibi dönmeyebilir de"
#. 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:6403
-#, fuzzy
+#: c-decl.c:6461
msgid "%<for%> loop initial declaration used outside C99 mode"
-msgstr "`for' döngüsünün ilk bildirimi C99 kipinin dışında kullanılmış"
+msgstr "%<for%> döngüsünün ilk bildirimi C99 kipinin dışında kullanılmış"
-#: c-decl.c:6432
-#, fuzzy
+#: c-decl.c:6490
msgid "%Jdeclaration of static variable %qD in %<for%> loop initial declaration"
-msgstr "%J `for' döngüsü ilk bildirimi içinde `static' değişken `%D' bildirimi"
+msgstr "%J %<for%> döngüsünün ilk bildirimi içinde `static' değişken %qD bildirimi"
-#: c-decl.c:6435
-#, fuzzy
+#: c-decl.c:6493
msgid "%Jdeclaration of %<extern%> variable %qD in %<for%> loop initial declaration"
-msgstr "%J `for' döngüsü ilk bildirimi içinde `extern' değişken `%D' bildirimi"
+msgstr "%J %<for%> döngüsünün ilk bildirimi içinde %<extern%> değişken %qD bildirimi"
-#: c-decl.c:6440
-#, fuzzy
+#: c-decl.c:6498
msgid "%<struct %E%> declared in %<for%> loop initial declaration"
-msgstr "`struct %s' `for' döngüsünün ilk bildiriminde bildirilmiş"
+msgstr "%<struct %E%> %<for%> döngüsünün ilk bildiriminde bildirilmiş"
-#: c-decl.c:6444
-#, fuzzy
+#: c-decl.c:6502
msgid "%<union %E%> declared in %<for%> loop initial declaration"
-msgstr "`union %s' `for' döngüsünün ilk bildiriminde bildirilmiş"
+msgstr "%<union %E%> %<for%> döngüsünün ilk bildiriminde bildirilmiş"
-#: c-decl.c:6448
-#, fuzzy
+#: c-decl.c:6506
msgid "%<enum %E%> declared in %<for%> loop initial declaration"
-msgstr "`enum %s' `for' döngüsünün ilk bildiriminde bildirilmiş"
+msgstr "%<enum %E%> %<for%> döngüsünün ilk bildiriminde bildirilmiş"
-#: c-decl.c:6452
-#, fuzzy
+#: c-decl.c:6510
msgid "%Jdeclaration of non-variable %qD in %<for%> loop initial declaration"
-msgstr "%J `for' döngüsü ilk bildirimi içinde değişken olmayan `%D' bildirimi"
+msgstr "%J %<for%> döngüsü ilk bildirimi içinde değişken olmayan %qD bildirimi"
-#: c-decl.c:6741 c-decl.c:6890 c-decl.c:7101 cp/decl.c:6828
-#, fuzzy, c-format
+#: c-decl.c:6799 c-decl.c:6948 c-decl.c:7159 cp/decl.c:6747
+#, c-format
msgid "duplicate %qs"
-msgstr "`%s' yinelenmiÅŸ"
+msgstr "%qs yinelenmiÅŸ"
-#: c-decl.c:6762 c-decl.c:6899 c-decl.c:7002
-#, fuzzy
+#: c-decl.c:6820 c-decl.c:6957 c-decl.c:7060
msgid "two or more data types in declaration specifiers"
-msgstr "`%s'in bildiriminde iki veya daha fazla veri türü"
+msgstr "bildirim belirticileri içinde iki veya daha fazla veri türü"
-#: c-decl.c:6774 cp/decl.c:6804
-#, fuzzy
+#: c-decl.c:6832 cp/decl.c:6723
msgid "%<long long long%> is too long for GCC"
-msgstr "`long long long' GCC için çok uzun"
+msgstr "%<long long long%> GCC için çok uzun"
-#: c-decl.c:6781 c-decl.c:6973
+#: c-decl.c:6839 c-decl.c:7031
msgid "both %<long long%> and %<double%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<long long%> hem de %<double%>"
-#: c-decl.c:6787
-#, fuzzy
+#: c-decl.c:6845
msgid "ISO C90 does not support %<long long%>"
-msgstr "ISO C90 `long long'u desteklemez"
+msgstr "ISO C90 %<long long%>'u desteklemez"
-#: c-decl.c:6792 c-decl.c:6812
-#, fuzzy
+#: c-decl.c:6850 c-decl.c:6870
msgid "both %<long%> and %<short%> in declaration specifiers"
-msgstr "`%s' için hem long hem de short belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<long%> hem de %<short%>"
-#: c-decl.c:6795 c-decl.c:6906
-#, fuzzy
+#: c-decl.c:6853 c-decl.c:6964
msgid "both %<long%> and %<void%> in declaration specifiers"
-msgstr "`%s' için hem long hem de short belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<long%> hem de %<void%>"
-#: c-decl.c:6798 c-decl.c:6925
-#, fuzzy
+#: c-decl.c:6856 c-decl.c:6983
msgid "both %<long%> and %<_Bool%> in declaration specifiers"
-msgstr "`%s' için hem long hem de short belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<long%> hem de %<_Bool%>"
-#: c-decl.c:6801 c-decl.c:6944
-#, fuzzy
+#: c-decl.c:6859 c-decl.c:7002
msgid "both %<long%> and %<char%> in declaration specifiers"
-msgstr "`%s' için hem long hem de short belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<long%> hem de %<char%>"
-#: c-decl.c:6804 c-decl.c:6957
-#, fuzzy
+#: c-decl.c:6862 c-decl.c:7015
msgid "both %<long%> and %<float%> in declaration specifiers"
-msgstr "`%s' için hem long hem de short belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<long%> hem de %<float%>"
-#: c-decl.c:6815 c-decl.c:6909
+#: c-decl.c:6873 c-decl.c:6967
msgid "both %<short%> and %<void%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<short%> hem de %<void%>"
-#: c-decl.c:6818 c-decl.c:6928
+#: c-decl.c:6876 c-decl.c:6986
msgid "both %<short%> and %<_Bool%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<short%> hem de %<_Bool%>"
-#: c-decl.c:6821 c-decl.c:6947
+#: c-decl.c:6879 c-decl.c:7005
msgid "both %<short%> and %<char%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<short%> hem de %<char%>"
-#: c-decl.c:6824 c-decl.c:6960
+#: c-decl.c:6882 c-decl.c:7018
msgid "both %<short%> and %<float%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<short%> hem de %<float%>"
-#: c-decl.c:6827 c-decl.c:6976
+#: c-decl.c:6885 c-decl.c:7034
msgid "both %<short%> and %<double%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<short%> hem de %<double%>"
-#: c-decl.c:6835 c-decl.c:6855
-#, fuzzy
+#: c-decl.c:6893 c-decl.c:6913
msgid "both %<signed%> and %<unsigned%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<signed%> hem de %<unsigned%>"
-#: c-decl.c:6838 c-decl.c:6912
-#, fuzzy
+#: c-decl.c:6896 c-decl.c:6970
msgid "both %<signed%> and %<void%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<signed%> hem de %<void%>"
-#: c-decl.c:6841 c-decl.c:6931
-#, fuzzy
+#: c-decl.c:6899 c-decl.c:6989
msgid "both %<signed%> and %<_Bool%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<signed%> hem de %<_Bool%>"
-#: c-decl.c:6844 c-decl.c:6963
-#, fuzzy
+#: c-decl.c:6902 c-decl.c:7021
msgid "both %<signed%> and %<float%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<signed%> hem de %<float%>"
-#: c-decl.c:6847 c-decl.c:6979
-#, fuzzy
+#: c-decl.c:6905 c-decl.c:7037
msgid "both %<signed%> and %<double%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<signed%> hem de %<double%>"
-#: c-decl.c:6858 c-decl.c:6915
-#, fuzzy
+#: c-decl.c:6916 c-decl.c:6973
msgid "both %<unsigned%> and %<void%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<unsigned%> hem de %<void%>"
-#: c-decl.c:6861 c-decl.c:6934
-#, fuzzy
+#: c-decl.c:6919 c-decl.c:6992
msgid "both %<unsigned%> and %<_Bool%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<unsigned%> hem de %<_Bool%>"
-#: c-decl.c:6864 c-decl.c:6966
-#, fuzzy
+#: c-decl.c:6922 c-decl.c:7024
msgid "both %<unsigned%> and %<float%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<unsigned%> hem de %<float%>"
-#: c-decl.c:6867 c-decl.c:6982
-#, fuzzy
+#: c-decl.c:6925 c-decl.c:7040
msgid "both %<unsigned%> and %<double%> in declaration specifiers"
-msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
+msgstr "bildirim belirticilerinde hem %<unsigned%> hem de %<double%>"
-#: c-decl.c:6875
+#: c-decl.c:6933
msgid "ISO C90 does not support complex types"
msgstr "ISO C90 karmaşık türleri desteklemez"
-#: c-decl.c:6877 c-decl.c:6918
+#: c-decl.c:6935 c-decl.c:6976
msgid "both %<complex%> and %<void%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<complex%> hem de %<void%>"
-#: c-decl.c:6880 c-decl.c:6937
+#: c-decl.c:6938 c-decl.c:6995
msgid "both %<complex%> and %<_Bool%> in declaration specifiers"
-msgstr ""
+msgstr "bildirim belirticilerinde hem %<complex%> hem de %<_Bool%>"
-#: c-decl.c:7019
-#, fuzzy, c-format
+#: c-decl.c:7077
+#, c-format
msgid "%qs fails to be a typedef or built in type"
-msgstr "`%s' bir typedef veya yerleşik veri türü olarak hatalı"
+msgstr "%qs bir typedef veya yerleşik veri türü olarak başarısız"
-#: c-decl.c:7051
-#, fuzzy, c-format
+#: c-decl.c:7109
+#, c-format
msgid "%qs is not at beginning of declaration"
-msgstr "`%s' bildirimin başlangıcında değil"
+msgstr "%qs bildirimin başlangıcında değil"
-#: c-decl.c:7066
+#: c-decl.c:7124
msgid "%<__thread%> used with %<auto%>"
-msgstr ""
+msgstr "%<__thread%> %<auto%> ile kullanılmış"
-#: c-decl.c:7068
+#: c-decl.c:7126
msgid "%<__thread%> used with %<register%>"
-msgstr ""
+msgstr "%<__thread%> %<register%> ile kullanılmış"
-#: c-decl.c:7070
+#: c-decl.c:7128
msgid "%<__thread%> used with %<typedef%>"
-msgstr ""
+msgstr "%<__thread%> %<typedef%> ile kullanılmış"
-#: c-decl.c:7081 cp/parser.c:7114
-#, fuzzy
+#: c-decl.c:7139 cp/parser.c:7221
msgid "%<__thread%> before %<extern%>"
-msgstr "`extern' öncesinde `__thread'"
+msgstr "%<__thread%> %<extern%> öncesinde"
-#: c-decl.c:7090 cp/parser.c:7104
-#, fuzzy
+#: c-decl.c:7148 cp/parser.c:7211
msgid "%<__thread%> before %<static%>"
-msgstr "`static' öncesinde `__thread'"
+msgstr "%<__thread%> %<static%> öncesinde"
-#: c-decl.c:7106
-#, fuzzy
+#: c-decl.c:7164
msgid "multiple storage classes in declaration specifiers"
-msgstr "`%s' bildirimi içinde çok sayıda saklama sınıfı"
+msgstr "bildirim belirticilerinde çok sayıda saklama sınıfı"
-#: c-decl.c:7113
+#: c-decl.c:7171
msgid "%<__thread%> used with %qs"
-msgstr ""
+msgstr "%<__thread%> %qs ile kullanılmış"
-#: c-decl.c:7167
-#, fuzzy
+#: c-decl.c:7225
msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
-msgstr "ISO C salt `complex'i `double complex' anlamında desteklemez"
+msgstr "ISO C salt %<complex%>i %<double complex%> anlamında desteklemez"
-#: c-decl.c:7212 c-decl.c:7238
+#: c-decl.c:7270 c-decl.c:7296
msgid "ISO C does not support complex integer types"
msgstr "ISO C karmaşık tamsayı türleri desteklemez"
-#: c-decl.c:7313 toplev.c:844
-#, fuzzy
+#: c-decl.c:7371 toplev.c:848
msgid "%J%qF used but never defined"
-msgstr "%J `%F' tanımlanmadan kullanılmış"
+msgstr "%J %qF tanımlanmadan kullanılmış"
#: c-format.c:96 c-format.c:209
msgid "format string has invalid operand number"
@@ -1890,98 +1677,81 @@ msgid "function does not return string type"
msgstr "işlev dizge veri türü ile dönmüyor"
#: c-format.c:142
-#, fuzzy
msgid "format string argument not a string type"
-msgstr "biçim belirtecinin argümanı bir dizge değil"
+msgstr "biçim dizgesinin argümanı bir dizge türünde değil"
#: c-format.c:190
msgid "unrecognized format specifier"
msgstr "anlaşılmayan biçim belirteci"
#: c-format.c:202
-#, fuzzy, c-format
+#, c-format
msgid "%qs is an unrecognized format function type"
-msgstr "`%s' biçim işlevi türü bilinmiyor"
+msgstr "%qs biçim işlevi türü bilinmiyor"
#: c-format.c:215
-#, fuzzy
msgid "%<...%> has invalid operand number"
-msgstr "'...' geçersiz sayıda terim içeriyor"
+msgstr "%<...%> geçersiz sayıda terim içeriyor"
#: c-format.c:222
-#, fuzzy
msgid "format string argument follows the args to be formatted"
-msgstr "biçim dizgesi argümanını biçimlendirilecek argümanlar izler"
+msgstr "biçim dizgesi argümanı biçimlendirilecek argümanları izler"
#: c-format.c:345 c-format.c:369
-#, fuzzy
msgid "' ' flag"
-msgstr "` ' bayrağı"
+msgstr "' ' bayrağı"
#: c-format.c:345 c-format.c:369
-#, fuzzy
msgid "the ' ' printf flag"
-msgstr "`'' printf bayrağı"
+msgstr "' ' printf bayrağı"
#: c-format.c:346 c-format.c:370 c-format.c:408 c-format.c:465
-#, fuzzy
msgid "'+' flag"
msgstr "`+' bayrağı"
#: c-format.c:346 c-format.c:370 c-format.c:408
-#, fuzzy
msgid "the '+' printf flag"
-msgstr "`'' printf bayrağı"
+msgstr "`+' printf bayrağı"
#: c-format.c:347 c-format.c:371 c-format.c:409 c-format.c:441
-#, fuzzy
msgid "'#' flag"
-msgstr "`#' bayrağı"
+msgstr "'#' bayrağı"
#: c-format.c:347 c-format.c:371 c-format.c:409
-#, fuzzy
msgid "the '#' printf flag"
-msgstr "`'' printf bayrağı"
+msgstr "'#' printf bayrağı"
#: c-format.c:348 c-format.c:372 c-format.c:439
-#, fuzzy
msgid "'0' flag"
-msgstr "`0' bayrağı"
+msgstr "'0' bayrağı"
#: c-format.c:348 c-format.c:372
-#, fuzzy
msgid "the '0' printf flag"
-msgstr "`'' printf bayrağı"
+msgstr "'O' printf bayrağı"
#: c-format.c:349 c-format.c:373 c-format.c:438 c-format.c:468
-#, fuzzy
msgid "'-' flag"
-msgstr "`-' bayrağı"
+msgstr "'-' bayrağı"
#: c-format.c:349 c-format.c:373
-#, fuzzy
msgid "the '-' printf flag"
-msgstr "`'' printf bayrağı"
+msgstr "'-' printf bayrağı"
#: c-format.c:350 c-format.c:422
-#, fuzzy
msgid "''' flag"
-msgstr "`'' bayrağı"
+msgstr "''' bayrağı"
#: c-format.c:350
-#, fuzzy
msgid "the ''' printf flag"
-msgstr "`'' printf bayrağı"
+msgstr "''' printf bayrağı"
#: c-format.c:351 c-format.c:423
-#, fuzzy
msgid "'I' flag"
-msgstr "`'' bayrağı"
+msgstr "'I' bayrağı"
#: c-format.c:351
-#, fuzzy
msgid "the 'I' printf flag"
-msgstr "`I' printf bayrağı"
+msgstr "'I' printf bayrağı"
#: c-format.c:352 c-format.c:374 c-format.c:420 c-format.c:442 c-format.c:469
#: c-format.c:1531 config/sol2-c.c:46
@@ -2011,14 +1781,12 @@ msgid "length modifier in printf format"
msgstr "uzunluk değiştirici printf biçiminde"
#: c-format.c:398 c-format.c:410
-#, fuzzy
msgid "'q' flag"
-msgstr "`'' bayrağı"
+msgstr "'q' bayrağı"
#: c-format.c:398 c-format.c:410
-#, fuzzy
msgid "the 'q' diagnostic flag"
-msgstr "`'' printf bayrağı"
+msgstr "'q' tanı bayrağı"
#: c-format.c:418
msgid "assignment suppression"
@@ -2029,14 +1797,12 @@ msgid "the assignment suppression scanf feature"
msgstr "atama engelleyen scanf özelliği"
#: c-format.c:419
-#, fuzzy
msgid "'a' flag"
-msgstr "`'' bayrağı"
+msgstr "'a' bayrağı"
#: c-format.c:419
-#, fuzzy
msgid "the 'a' scanf flag"
-msgstr "`'' scanf bayrağı"
+msgstr "'a' scanf bayrağı"
#: c-format.c:420
msgid "field width in scanf format"
@@ -2047,78 +1813,64 @@ msgid "length modifier in scanf format"
msgstr "scanf biçiminde uzunluk değiştirici"
#: c-format.c:422
-#, fuzzy
msgid "the ''' scanf flag"
-msgstr "`'' scanf bayrağı"
+msgstr "''' scanf bayrağı"
#: c-format.c:423
-#, fuzzy
msgid "the 'I' scanf flag"
-msgstr "`I' scanf bayrağı"
+msgstr "'I' scanf bayrağı"
#: c-format.c:437
-#, fuzzy
msgid "'_' flag"
-msgstr "`'' bayrağı"
+msgstr "'_' bayrağı"
#: c-format.c:437
-#, fuzzy
msgid "the '_' strftime flag"
-msgstr "`_' strftime bayrağı"
+msgstr "'_' strftime bayrağı"
#: c-format.c:438
-#, fuzzy
msgid "the '-' strftime flag"
-msgstr "`-' strftime bayrağı"
+msgstr "'-' strftime bayrağı"
#: c-format.c:439
-#, fuzzy
msgid "the '0' strftime flag"
-msgstr "`0' strftime bayrağı"
+msgstr "'0' strftime bayrağı"
#: c-format.c:440 c-format.c:464
-#, fuzzy
msgid "'^' flag"
-msgstr "`'' bayrağı"
+msgstr "'^' bayrağı"
#: c-format.c:440
-#, fuzzy
msgid "the '^' strftime flag"
-msgstr "`^' strftime bayrağı"
+msgstr "'^' strftime bayrağı"
#: c-format.c:441
-#, fuzzy
msgid "the '#' strftime flag"
-msgstr "`#' strftime bayrağı"
+msgstr "'#' strftime bayrağı"
#: c-format.c:442
msgid "field width in strftime format"
msgstr "strftime biçiminde alan genişliği"
#: c-format.c:443
-#, fuzzy
msgid "'E' modifier"
-msgstr "`E' deÄŸiÅŸtirici"
+msgstr "'E' deÄŸiÅŸtirici"
#: c-format.c:443
-#, fuzzy
msgid "the 'E' strftime modifier"
-msgstr "`E' strftime deÄŸiÅŸtirici"
+msgstr "'E' strftime deÄŸiÅŸtirici"
#: c-format.c:444
-#, fuzzy
msgid "'O' modifier"
-msgstr "`O' deÄŸiÅŸtirici"
+msgstr "'O' deÄŸiÅŸtirici"
#: c-format.c:444
-#, fuzzy
msgid "the 'O' strftime modifier"
-msgstr "`O' strftime deÄŸiÅŸtirici"
+msgstr "'O' strftime deÄŸiÅŸtirici"
#: c-format.c:445
-#, fuzzy
msgid "the 'O' modifier"
-msgstr "`O' deÄŸiÅŸtirici"
+msgstr "'O' deÄŸiÅŸtirici"
#: c-format.c:463
msgid "fill character"
@@ -2129,39 +1881,32 @@ msgid "fill character in strfmon format"
msgstr "strfmon biçiminde dolgu karakteri"
#: c-format.c:464
-#, fuzzy
msgid "the '^' strfmon flag"
-msgstr "`^' strfmon bayrağı"
+msgstr "'^' strfmon bayrağı"
#: c-format.c:465
-#, fuzzy
msgid "the '+' strfmon flag"
-msgstr "`+' strfmon bayrağı"
+msgstr "'+' strfmon bayrağı"
#: c-format.c:466
-#, fuzzy
msgid "'(' flag"
-msgstr "`'' bayrağı"
+msgstr "'(' bayrağı"
#: c-format.c:466
-#, fuzzy
msgid "the '(' strfmon flag"
-msgstr "`(' strfmon bayrağı"
+msgstr "'(' strfmon bayrağı"
#: c-format.c:467
-#, fuzzy
msgid "'!' flag"
-msgstr "`'' bayrağı"
+msgstr "'!' bayrağı"
#: c-format.c:467
-#, fuzzy
msgid "the '!' strfmon flag"
-msgstr "`!' strfmon bayrağı"
+msgstr "'!' strfmon bayrağı"
#: c-format.c:468
-#, fuzzy
msgid "the '-' strfmon flag"
-msgstr "`-' strfmon bayrağı"
+msgstr "'-' strfmon bayrağı"
#: c-format.c:469
msgid "field width in strfmon format"
@@ -2188,9 +1933,9 @@ msgid "length modifier in strfmon format"
msgstr "strfmon biçiminde uzunluk değiştirici"
#: c-format.c:840
-#, fuzzy, c-format
+#, c-format
msgid "function might be possible candidate for %qs format attribute"
-msgstr "işlev, `%s' biçim özniteliği için olası aday olabilir"
+msgstr "işlev, %qs biçim özniteliği için olası aday olabilir"
#: c-format.c:931 c-format.c:952 c-format.c:1947
msgid "missing $ operand number in format"
@@ -2211,9 +1956,8 @@ msgid "format argument %d used more than once in %s format"
msgstr "%d. biçim argümanı %s biçiminde birden fazla kullanılmış"
#: c-format.c:1023
-#, fuzzy
msgid "$ operand number used after format without operand number"
-msgstr "terim numarası argüman almayan biçim için belirtilmiş"
+msgstr "$ terim numarası terim numarası olmaksızın biçimden sonra kullanılmış"
#: c-format.c:1053
#, c-format
@@ -2254,14 +1998,12 @@ msgid "unterminated format string"
msgstr "sonlandırılmamış biçim dizgesi"
#: c-format.c:1400
-#, fuzzy
msgid "embedded %<\\0%> in format"
-msgstr "biçim içinde gömülü `\\0'"
+msgstr "biçim içinde gömülü %<\\0%>"
#: c-format.c:1415
-#, fuzzy
msgid "spurious trailing %<%%%> in format"
-msgstr "biçim sahte `%%' ile başlıyor"
+msgstr "biçim sahte %<%%%> ile başlıyor"
#: c-format.c:1459 c-format.c:1703
#, c-format
@@ -2296,18 +2038,18 @@ msgid "empty precision in %s format"
msgstr "%s biçiminde boş hassasiyet"
#: c-format.c:1687
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support the %qs %s length modifier"
-msgstr "%s `%s' %s uzunluk deÄŸiÅŸtiricisini desteklemiyor"
+msgstr "%s %qs %s uzunluk deÄŸiÅŸtiricisini desteklemiyor"
#: c-format.c:1737
msgid "conversion lacks type at end of format"
msgstr "dönüşüm, biçim sonunda türden yoksun"
#: c-format.c:1748
-#, fuzzy, c-format
+#, c-format
msgid "unknown conversion type character %qc in format"
-msgstr "biçimdeki dönüşüm türü karakteri `%c' bilinmiyor"
+msgstr "biçimdeki dönüşüm türü karakteri %qc bilinmiyor"
#: c-format.c:1751
#, c-format
@@ -2315,14 +2057,12 @@ msgid "unknown conversion type character 0x%x in format"
msgstr "biçimdeki dönüşüm türü karakteri 0x%x bilinmiyor"
#: c-format.c:1758
-#, fuzzy
msgid "%s does not support the %<%%%c%> %s format"
-msgstr "%s, `%%%s%c' %s biçimini desteklemiyor"
+msgstr "%s, `%<%%%c%> %s biçimini desteklemiyor"
#: c-format.c:1774
-#, fuzzy
msgid "%s used with %<%%%c%> %s format"
-msgstr "%s `%%%c' %s biçimi ile kullanılmış"
+msgstr "%s %<%%%c%> %s biçimi ile kullanılmış"
#: c-format.c:1783
#, c-format
@@ -2330,14 +2070,12 @@ msgid "%s does not support %s"
msgstr "%s %s desteÄŸi vermiyor"
#: c-format.c:1792
-#, fuzzy
msgid "%s does not support %s with the %<%%%c%> %s format"
-msgstr "%s %s'i `%%%c' %s biçimiyle desteklemiyor"
+msgstr "%s %s'i %<%%%c%> %s biçimiyle desteklemiyor"
#: c-format.c:1825
-#, fuzzy
msgid "%s ignored with %s and %<%%%c%> %s format"
-msgstr "%s, %s' ve `%%%c' %s biçimiyle yoksayıldı"
+msgstr "%s, %s ile %<%%%c%> %s biçimiyle yoksayıldı"
#: c-format.c:1829
#, c-format
@@ -2345,9 +2083,8 @@ msgid "%s ignored with %s in %s format"
msgstr "%s, %s' ile %s biçiminde yoksayıldı"
#: c-format.c:1835
-#, fuzzy
msgid "use of %s and %s together with %<%%%c%> %s format"
-msgstr "%s ve %s birlikte `%%%c' %s biçimiyle kullanımı"
+msgstr "%s ve %s birlikte %<%%%c%> %s biçiminle kullanımı"
#: c-format.c:1839
#, c-format
@@ -2355,30 +2092,26 @@ msgid "use of %s and %s together in %s format"
msgstr "%s ve %s birlikte %s biçiminde kullanımı"
#: c-format.c:1858
-#, fuzzy
msgid "%<%%%c%> yields only last 2 digits of year in some locales"
-msgstr "`%%%c' bazı yerellerde yılın son iki hanesini alır"
+msgstr "%<%%%c%> bazı yerellerde yılın son iki hanesini alır"
#: c-format.c:1861
-#, fuzzy
msgid "%<%%%c%> yields only last 2 digits of year"
-msgstr "`%%%c' yılın son iki hanesini alır"
+msgstr "%<%%%c%> sadece yılın son iki hanesini alır"
#. The end of the format string was reached.
#: c-format.c:1877
-#, fuzzy
msgid "no closing %<]%> for %<%%[%> format"
-msgstr "`%%[' biçimi için kapanan `]' yok"
+msgstr "%<]%> kapaması %<%%[%> biçiminde yok"
#: c-format.c:1890
-#, fuzzy, c-format
+#, c-format
msgid "use of %qs length modifier with %qc type character"
-msgstr "`%s' uzunluk değiştiricsinin `%c' tür karakteri ile kullanımı"
+msgstr "%2$qc tür karakterli %1$qs uzunluk değiştirici kullanımı"
#: c-format.c:1911
-#, fuzzy
msgid "%s does not support the %<%%%s%c%> %s format"
-msgstr "%s, `%%%s%c' %s biçimini desteklemiyor"
+msgstr "%s, %<%%%s%c%> %s biçimini desteklemiyor"
#: c-format.c:1928
msgid "operand number specified with suppressed assignment"
@@ -2389,63 +2122,60 @@ msgid "operand number specified for format taking no argument"
msgstr "terim numarası argüman almayan biçim için belirtilmiş"
#: c-format.c:2072
-#, fuzzy, c-format
+#, c-format
msgid "writing through null pointer (argument %d)"
msgstr "boş gösterici vasıtasıyla yazma (%d. arg)"
#: c-format.c:2080
-#, fuzzy, c-format
+#, c-format
msgid "reading through null pointer (argument %d)"
msgstr "boş gösterici vasıtasıyla okuma (%d. arg)"
#: c-format.c:2100
-#, fuzzy, c-format
+#, c-format
msgid "writing into constant object (argument %d)"
msgstr "sabit nesne içine yazma (%d. arg)"
#: c-format.c:2111
-#, fuzzy, c-format
+#, c-format
msgid "extra type qualifiers in format argument (argument %d)"
msgstr "biçim argümanında (%d. arg) fazladan tür niteleyiciler"
#: c-format.c:2222
msgid "%s should have type %<%s%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "%s %<%s%s%>türünde olmalı, ancak %d. argüman %qT türünde"
#: c-format.c:2225
msgid "format %q.*s expects type %<%s%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "%q.*s biçiminin %<%s%s%> türünde olması umuluyor, ama %d. argüman %qT türünde"
#: c-format.c:2232
msgid "%s should have type %<%T%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "%s %<%T%s%> türünde olmalı, ama %d. argüman %qT türünde"
#: c-format.c:2235
msgid "format %q.*s expects type %<%T%s%>, but argument %d has type %qT"
-msgstr ""
+msgstr "%q.*s biçiminin %<%T%s%> türünde olması umuluyor, ama %d. argüman %qT türünde"
#: c-format.c:2501
-#, fuzzy
msgid "args to be formatted is not %<...%>"
-msgstr "biçimlenecek argümanlar '...' değil"
+msgstr "biçimlenecek argümanlar %<...%> değil"
#: c-format.c:2510
msgid "strftime formats cannot format arguments"
msgstr "strftime biçimleri biçim argümanları olamaz"
#: c-gimplify.c:237
-#, fuzzy
msgid "statement with no effect"
-msgstr "%Hdeyim etkisiz"
+msgstr "Hdeyim etkisiz"
-#: c-gimplify.c:315 c-typeck.c:6728 cp/parser.c:6434
+#: c-gimplify.c:315 c-typeck.c:6878 cp/parser.c:6542
msgid "break statement not within loop or switch"
msgstr "break deyimi switch ya da döngü içinde değil"
#: c-gimplify.c:317
-#, fuzzy
msgid "continue statement not within loop or switch"
-msgstr "break deyimi switch ya da döngü içinde değil"
+msgstr "continue deyimi switch ya da döngü içinde değil"
#: c-incpath.c:70
#, c-format
@@ -2462,17 +2192,17 @@ msgstr " tekrarlayan bir sistem dizini olmayan dizin olarak deÄŸiÅŸtiriliyor\n"
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr " olmayan \"%s\" dizini yoksayılıyor\n"
-#: c-incpath.c:283
+#: c-incpath.c:286
#, c-format
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\" araması buradan başlıyor:\n"
-#: c-incpath.c:287
+#: c-incpath.c:290
#, c-format
msgid "#include <...> search starts here:\n"
msgstr "#include <...> araması buradan başlıyor:\n"
-#: c-incpath.c:292
+#: c-incpath.c:295
#, c-format
msgid "End of search list.\n"
msgstr "Arama listesi sonu.\n"
@@ -2482,20 +2212,18 @@ msgid "badly nested C headers from preprocessor"
msgstr "önişlemciden C başlıkları hatalı yuvalanmış"
#: c-lex.c:307
-#, fuzzy
msgid "%Hignoring #pragma %s %s"
-msgstr "#pragma %s %s yoksalıyor"
+msgstr "%H #pragma %s %s yoksalıyor"
#. ... or not.
#: c-lex.c:411
-#, fuzzy
msgid "%Hstray %<@%> in program"
-msgstr "%Hkodda serseri '@'"
+msgstr "%Hkodda serseri %<@%>"
#: c-lex.c:425
-#, fuzzy, c-format
+#, c-format
msgid "stray %qs in program"
-msgstr "programda serseri '%c'"
+msgstr "programda serseri %qs"
#: c-lex.c:435
#, c-format
@@ -2503,14 +2231,13 @@ msgid "missing terminating %c character"
msgstr "%c sonlandırma karakteri eksik"
#: c-lex.c:437
-#, fuzzy, c-format
+#, c-format
msgid "stray %qc in program"
-msgstr "programda serseri '%c'"
+msgstr "programda serseri %qc"
#: c-lex.c:439
-#, fuzzy
msgid "stray %<\\%o%> in program"
-msgstr "programda serseri '\\%o'"
+msgstr "programda serseri %<\\%o%>"
#: c-lex.c:599
msgid "this decimal constant is unsigned only in ISO C90"
@@ -2521,88 +2248,71 @@ msgid "this decimal constant would be unsigned in ISO C90"
msgstr "bu ondalık sabit sadece ISO C90'da unsigned olmalıydı"
#: c-lex.c:618
-#, fuzzy, c-format
+#, c-format
msgid "integer constant is too large for %qs type"
-msgstr "tamsayı sabit \"%s\" olarak oldukça büyük"
+msgstr "tamsayı sabit %qs türü için oldukça büyük"
#: c-lex.c:684
-#, fuzzy
msgid "floating constant exceeds range of %<%s%>"
-msgstr "gerçel sayı \"%s\" kapsamını aşıyor"
+msgstr "gerçel sayı sabit %<%s%> aralığı dışında"
#: c-lex.c:766
msgid "traditional C rejects string constant concatenation"
msgstr "geleneksel C dizge sabitlerin birleÅŸtirilmesine izin vermez"
-#: c-objc-common.c:81
-#, fuzzy
+#: c-objc-common.c:80
msgid "%Jfunction %qF can never be inlined because it is suppressed using -fno-inline"
-msgstr "%J '%F' işlevi -fno-inline kullanılarak engellendiğinden satır içine alınamaz"
+msgstr "%J %qF işlevi -fno-inline kullanılarak engellendiğinden satır içine alınamaz"
-#: c-objc-common.c:91
-#, fuzzy
+#: c-objc-common.c:90
msgid "%Jfunction %qF can never be inlined because it might not be bound within this unit of translation"
-msgstr "%J '%F' işlevi bu dönüşüm birimi içine alınamadığından satıriçine alınamaz"
+msgstr "%J %qF işlevi bu dönüşüm birimi içine alınamadığından satıriçine alınamaz"
-#: c-objc-common.c:99
-#, fuzzy
+#: c-objc-common.c:98
msgid "%Jfunction %qF can never be inlined because it uses attributes conflicting with inlining"
-msgstr "%J '%F' işlevinin öznitelikleri satıriçine alınma ile çeliştiğinden işlev satıriçine alınamaz"
+msgstr "%J %qF işlevinin öznitelikleri satıriçine alınma ile çeliştiğinden işlev satıriçine alınamaz"
-#: c-objc-common.c:114
-#, fuzzy
-msgid "%Jfunction %qF can never be inlined because it has pending sizes"
-msgstr "%J '%F' işlevi belirsiz boyutlar içerdiğinden satıriçine alınamaz"
-
-#: c-objc-common.c:127
-#, fuzzy
-msgid "%Jnested function %qF can never be inlined because it has possibly saved pending sizes"
-msgstr "%J '%F' iç işlevi kayıtlı belirsiz boyutlar içermesi olasılığından dolayı satıriçine alınamaz"
-
-#: c-objc-common.c:263
-#, fuzzy
+#: c-objc-common.c:244
msgid "used array that cannot be converted to pointer where scalar is required"
-msgstr "sayısal değer gerekirken dizi türü değer kullanılmış"
+msgstr "doğrudan değer gereken yerde göstericiye dönüştürülemeyen dizi kullanılmış"
-#: c-objc-common.c:267
-#, fuzzy
+#: c-objc-common.c:248
msgid "used struct type value where scalar is required"
-msgstr "sayısal değer gerekirken yapı türü değer kullanılmış"
+msgstr "doğrudan değer gereken yerde yapı türünde değer kullanılmış"
-#: c-objc-common.c:271
-#, fuzzy
+#: c-objc-common.c:252
msgid "used union type value where scalar is required"
-msgstr "sayısal değer gerekirken birleşik yapı türü değer kullanılmış"
+msgstr "doğrudan değer gereken yerde birleşim türünde değer kullanılmış"
#: c-opts.c:144
-#, fuzzy, c-format
+#, c-format
msgid "no class name specified with %qs"
-msgstr "\"%s\" diye bir sınıf ismi yok"
+msgstr "%qs ile belirtilmiş sınıf ismi yok"
#: c-opts.c:148
-#, fuzzy, c-format
+#, c-format
msgid "assertion missing after %qs"
-msgstr "\"%s\" den sonra olumlama eksik"
+msgstr "%qs den sonra olumlama eksik"
#: c-opts.c:153
-#, fuzzy, c-format
+#, c-format
msgid "macro name missing after %qs"
-msgstr "\"%s\" den sonra makro ismi eksik"
+msgstr "%qs den sonra makro ismi eksik"
#: c-opts.c:162
-#, fuzzy, c-format
+#, c-format
msgid "missing path after %qs"
-msgstr "\"%s\" den sonra yol eksik"
+msgstr "%qs den sonra yol eksik"
#: c-opts.c:171
-#, fuzzy, c-format
+#, c-format
msgid "missing filename after %qs"
-msgstr "\"%s\" den sonra dosyaismi yok"
+msgstr "%qs den sonra dosyaismi yok"
#: c-opts.c:176
-#, fuzzy, c-format
+#, c-format
msgid "missing makefile target after %qs"
-msgstr "\"%s\" den sonra makefile hedefi eksik"
+msgstr "%qs den sonra makefile hedefi eksik"
#: c-opts.c:303
msgid "-I- specified twice"
@@ -2610,87 +2320,87 @@ msgstr "-I- iki kere belirtilmiÅŸ"
#: c-opts.c:306
msgid "obsolete option -I- used, please use -iquote instead"
-msgstr ""
+msgstr "atıl seçenek -I- kullanılmış, yerine lütfen -iquote kullanın"
#: c-opts.c:540
-#, fuzzy, c-format
+#, c-format
msgid "switch %qs is no longer supported"
-msgstr "switch \"%s\" artık desteklenmiyor"
+msgstr "switch %qs artık desteklenmiyor"
-#: c-opts.c:655
+#: c-opts.c:653
msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr "-fhandle-exceptions, -fexceptions ile değiştirilmişti (ve şimdi öntanımlı olarak böyle)"
-#: c-opts.c:841
+#: c-opts.c:839
msgid "output filename specified twice"
msgstr "çıktı dosyasının ismi iki kere belirtilmiş"
-#: c-opts.c:971
+#: c-opts.c:969
msgid "-Wformat-y2k ignored without -Wformat"
msgstr "-Wformat-y2k -Wformat'sız yoksayıldı"
-#: c-opts.c:973
+#: c-opts.c:971
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr "-Wformat-extra-args -Wformat'sız yoksayıldı"
-#: c-opts.c:975
+#: c-opts.c:973
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr "-Wformat-zero-length -Wformat'sız yoksayıldı"
-#: c-opts.c:977
+#: c-opts.c:975
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr "-Wformat-nonliteral -Wformat'sız yoksayıldı"
-#: c-opts.c:979
+#: c-opts.c:977
msgid "-Wformat-security ignored without -Wformat"
msgstr "-Wformat-security -Wformat'sız yoksayıldı"
-#: c-opts.c:981
+#: c-opts.c:979
msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr "-Wmissing-format-attribute -Wformat'sız yoksayıldı"
-#: c-opts.c:995
+#: c-opts.c:998
#, c-format
msgid "opening output file %s: %m"
msgstr "`%s' çıktı dosyasının açılması: %m"
-#: c-opts.c:1000
+#: c-opts.c:1003
#, 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-opts.c:1083
+#: c-opts.c:1086
msgid "YYDEBUG was not defined at build time, -dy ignored"
-msgstr ""
+msgstr "kurgu sırasında YYDEBUG tanımlı değildi, -dy yoksayıldı"
-#: c-opts.c:1124
+#: c-opts.c:1127
#, c-format
msgid "opening dependency file %s: %m"
msgstr "%s bağımlılık dosyasının açılması: %m"
-#: c-opts.c:1134
+#: c-opts.c:1137
#, c-format
msgid "closing dependency file %s: %m"
msgstr "%s bağımlılık dosyasının kapatılması: %m"
-#: c-opts.c:1137
+#: c-opts.c:1140
#, c-format
msgid "when writing output to %s: %m"
msgstr "çıktı %s e yazılırken: %m"
-#: c-opts.c:1216
+#: c-opts.c:1220
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-opts.c:1281
+#: c-opts.c:1287
msgid "<built-in>"
msgstr "<yerleÅŸik>"
-#: c-opts.c:1296
+#: c-opts.c:1302
msgid "<command line>"
msgstr "<komut satırı>"
-#: c-opts.c:1379
+#: c-opts.c:1385
msgid "too late for # directive to set debug directory"
msgstr "hata ayıklama dizinini belirten # yönergesi için çok geç"
@@ -2702,16 +2412,16 @@ msgstr "hata ayıklama dizinini belirten # yönergesi için çok geç"
#. between diagnostics with "syntax error" in them, and diagnostics
#. with "parse error" in them. It's okay to give them both the same
#. translation.
-#: c-parse.y:54 c-parse.c:5313 c-parse.y:2927 gengtype-yacc.c:1559
-#: java/parse-scan.c:3063 java/parse-scan.y:1373 java/parse.c:6166
-#: java/parse.y:16413 objc/objc-parse.y:53 objc/objc-parse.c:6384
-#: objc/objc-parse.y:3517
+#: c-parse.y:54 c-parse.c:5385 c-parse.y:2955 gengtype-yacc.c:1606
+#: java/parse-scan.c:3107 java/parse-scan.y:1370 java/parse.c:6210
+#: java/parse.y:16419 objc/objc-parse.y:53 objc/objc-parse.c:6464
+#: objc/objc-parse.y:3545
msgid "syntax error"
msgstr "sözdizimi hatası"
-#: c-parse.c:2153 c-parse.y:2931 gengtype-yacc.c:555 java/parse-scan.c:1932
-#: java/parse-scan.y:1377 java/parse.c:2931 java/parse.y:16417
-#: objc/objc-parse.c:2666 objc/objc-parse.y:3521
+#: c-parse.c:2157 c-parse.y:2959 gengtype-yacc.c:560 java/parse-scan.c:1934
+#: java/parse-scan.y:1374 java/parse.c:2933 java/parse.y:16423
+#: objc/objc-parse.c:2678 objc/objc-parse.y:3549
msgid "syntax error: cannot back up"
msgstr "sözdizimi hatası: yedeklenemiyor"
@@ -2724,18 +2434,16 @@ 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:388 objc/objc-parse.y:411
-#, fuzzy
msgid "ISO C does not allow extra %<;%> outside of a function"
-msgstr "ISO C işlevler dışında tek başına `;'e izin vermez"
+msgstr "ISO C işlevler dışında tek başına %<;%> kullanımına izin vermez"
#: c-parse.y:445
msgid "traditional C rejects the unary plus operator"
msgstr "geleneksel C tekil artı işlecini dışlar"
#: c-parse.y:498 objc/objc-parse.y:520
-#, fuzzy
msgid "%<sizeof%> applied to a bit-field"
-msgstr "sizeof bir bit alanına uygulandı"
+msgstr "%<sizeof%> bir bit alanına uygulandı"
#: c-parse.y:595 objc/objc-parse.y:617
msgid "ISO C forbids omitting the middle term of a ?: expression"
@@ -2754,169 +2462,157 @@ msgid "ISO C forbids braced-groups within expressions"
msgstr "ISO C ifadelerde parantezli gruplamalara izin vermez"
#: c-parse.y:697 objc/objc-parse.y:719
-#, fuzzy
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"
+msgstr "%<__builtin_choose_expr%> işlevine aktarılan ilk argüman bir sabit değil"
#: c-parse.y:1224 objc/objc-parse.y:1273
-#, fuzzy
msgid "%<typeof%> applied to a bit-field"
-msgstr "'typeof' bir bit-alanına uygulanmış"
+msgstr "%<typeof%> bir bit-alanına uygulanmış"
-#: c-parse.y:1358 objc/objc-parse.y:1407
+#: c-parse.y:1372 objc/objc-parse.y:1421
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C boÅŸ ilklendirme parantezlerine izin vermez"
-#: c-parse.y:1372 objc/objc-parse.y:1421
+#: c-parse.y:1386 objc/objc-parse.y:1435
msgid "ISO C90 forbids specifying subobject to initialize"
msgstr "ISO C90 öndeğer olarak alt nesnelerin belirtilmesine izin vermez."
-#: c-parse.y:1375 objc/objc-parse.y:1424
-#, fuzzy
+#: c-parse.y:1389 objc/objc-parse.y:1438
msgid "obsolete use of designated initializer without %<=%>"
-msgstr "`=' olmaksızın tasarlanmış ilklendirici kullanımının modası geçti"
+msgstr "%<=%> olmaksızın tasarlanmış ilklendirici kullanımı artık geçersiz"
-#: c-parse.y:1379 objc/objc-parse.y:1428
-#, fuzzy
+#: c-parse.y:1393 objc/objc-parse.y:1442
msgid "obsolete use of designated initializer with %<:%>"
-msgstr "`:' olmaksızın tasarlanmış ilklendirici kullanımının modası geçti"
+msgstr "%<:%> ile tasarlanmış ilklendirici kullanımını artık geçersiz"
-#: c-parse.y:1410 objc/objc-parse.y:1459
+#: c-parse.y:1424 objc/objc-parse.y:1473
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C89 öndeğer olarak eleman aralığı belirtilmesine izin vermez."
-#: c-parse.y:1418 c-parse.y:1448 objc/objc-parse.y:1467 objc/objc-parse.y:1497
+#: c-parse.y:1432 c-parse.y:1462 objc/objc-parse.y:1481 objc/objc-parse.y:1511
msgid "ISO C forbids nested functions"
msgstr "ISO C iç içe işlevlere izin vermez"
-#: c-parse.y:1623 objc/objc-parse.y:1672
-#, fuzzy
+#: c-parse.y:1637 objc/objc-parse.y:1686
msgid "ISO C forbids forward references to %<enum%> types"
-msgstr "ISO C sonradan bildirilmiş `enum' türüne başvuruya izin vermez"
+msgstr "ISO C sonradan bildirilmiş %<enum%> türlerine ileri başvuruya izin vermez"
-#: c-parse.y:1635 cp/parser.c:9850 objc/objc-parse.y:1684
+#: c-parse.y:1649 cp/parser.c:9985 objc/objc-parse.y:1698
msgid "comma at end of enumerator list"
msgstr "sembolik sabitler listesinin sonunda virgül"
-#: c-parse.y:1655 objc/objc-parse.y:1704
+#: c-parse.y:1669 objc/objc-parse.y:1718
msgid "no semicolon at end of struct or union"
msgstr "struct ya da union tanımının sonunda ; yok"
-#: c-parse.y:1664 objc/objc-parse.y:1713 objc/objc-parse.y:2699
+#: c-parse.y:1678 objc/objc-parse.y:1727 objc/objc-parse.y:2727
msgid "extra semicolon in struct or union specified"
msgstr "struct ya da union'da fazladan ; var"
-#: c-parse.y:1684 objc/objc-parse.y:1736
+#: c-parse.y:1698 objc/objc-parse.y:1750
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C üyesiz üye bildirimlerine izin vermez"
-#: c-parse.y:1850 objc/objc-parse.y:1902
+#: c-parse.y:1864 objc/objc-parse.y:1916
msgid "label at end of compound statement"
msgstr "bileşik ifadenin sonunda etiket kullanımı"
-#: c-parse.y:1869 objc/objc-parse.y:1921
+#: c-parse.y:1883 objc/objc-parse.y:1935
msgid "ISO C90 forbids mixed declarations and code"
msgstr "ISO C90 kod ve bildirimlerin karışımına izin vermez"
-#: c-parse.y:1909 objc/objc-parse.y:1961
+#: c-parse.y:1923 objc/objc-parse.y:1975
msgid "ISO C forbids label declarations"
msgstr "ISO C etiket bildirimlerine izin vermez"
-#: c-parse.y:1953 objc/objc-parse.y:2005
+#: c-parse.y:1967 objc/objc-parse.y:2019
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:2249 objc/objc-parse.y:2344
-#, fuzzy, c-format
+#: c-parse.y:2263 objc/objc-parse.y:2358
+#, c-format
msgid "%E qualifier ignored on asm"
-msgstr "asm'de %s niteleyicisi yoksayıldı"
+msgstr "asm'de %E niteleyicisi yoksayıldı"
-#: c-parse.y:2343 objc/objc-parse.y:2438
-#, fuzzy
+#: c-parse.y:2309 objc/objc-parse.y:2404
+msgid "wide string literal in %<asm%>"
+msgstr "%<asm%> de geniÅŸ dizge sabit"
+
+#: c-parse.y:2371 objc/objc-parse.y:2466
msgid "ISO C requires a named argument before %<...%>"
-msgstr "ISO C `...'dan önce bir isimli argüman gerektirir"
+msgstr "ISO C %<...%> dan önce bir isimli argüman gerektirir"
-#: c-parse.c:5309 c-parse.y:2929 gengtype-yacc.c:1555 java/parse-scan.c:3059
-#: java/parse-scan.y:1375 java/parse.c:6162 java/parse.y:16415
-#: objc/objc-parse.c:6380 objc/objc-parse.y:3519
-#, fuzzy
+#: c-parse.c:5381 c-parse.y:2957 gengtype-yacc.c:1602 java/parse-scan.c:3103
+#: java/parse-scan.y:1372 java/parse.c:6206 java/parse.y:16421
+#: objc/objc-parse.c:6460 objc/objc-parse.y:3547
msgid "syntax error; also virtual memory exhausted"
-msgstr "ayrıştırma hatası; ayrıca sanal bellek aşıldı"
+msgstr "sözdizimi hatası; ayrıca sanal bellek aşıldı"
-#: c-parse.c:5427 gengtype-yacc.c:1673 java/parse-scan.c:3177
-#: java/parse.c:6280 objc/objc-parse.c:6498
+#: c-parse.c:5506 gengtype-yacc.c:1727 java/parse-scan.c:3228
+#: java/parse.c:6331 objc/objc-parse.c:6585
msgid "parser stack overflow"
msgstr "ayrıştırıcı yığın taşması"
-#: c-parse.y:2849 objc/objc-parse.y:3439
-#, fuzzy, c-format
+#: c-parse.y:2877 objc/objc-parse.y:3467
+#, c-format
msgid "syntax error at %qs token"
-msgstr "'%s' dizgeciğinde sözdizimi hatası"
+msgstr "%qs dizgeciğinde sözdizimi hatası"
-#: c-parse.y:2928 java/parse-scan.y:1374 java/parse.y:16414
-#: objc/objc-parse.y:3518
+#: c-parse.y:2956 java/parse-scan.y:1371 java/parse.y:16420
+#: objc/objc-parse.y:3546
msgid "parse error"
msgstr "ayrıştırma hatası:"
-#: c-parse.y:2930 java/parse-scan.y:1376 java/parse.y:16416
-#: objc/objc-parse.y:3520
+#: c-parse.y:2958 java/parse-scan.y:1373 java/parse.y:16422
+#: objc/objc-parse.y:3548
msgid "parse error; also virtual memory exhausted"
msgstr "ayrıştırma hatası; ayrıca sanal bellek aşıldı"
-#: c-parse.y:2932 java/parse-scan.y:1378 java/parse.y:16418
-#: objc/objc-parse.y:3522
-#, fuzzy
+#: c-parse.y:2960 java/parse-scan.y:1375 java/parse.y:16424
+#: objc/objc-parse.y:3550
msgid "parse error: cannot back up"
-msgstr "sözdizimi hatası: yedeklenemiyor"
+msgstr "ayrıştırma hatası: yedeklenemiyor"
#: c-pch.c:130
-#, fuzzy
msgid "can%'t create precompiled header %s: %m"
msgstr "önderlemeli %s başlığı oluşturulamıyor: %m"
#: c-pch.c:158
-#, fuzzy
msgid "can%'t write to %s: %m"
msgstr "%s e yazılamıyor: %m"
#: c-pch.c:164
-#, fuzzy, c-format
+#, c-format
msgid "%qs is not a valid output file"
-msgstr "`%s' geçerli bir çıktı dosyası değil"
+msgstr "%qs geçerli bir çıktı dosyası değil"
#: c-pch.c:193 c-pch.c:208 c-pch.c:222
-#, fuzzy
msgid "can%'t write %s: %m"
msgstr "%s e yazılamıyor: %m"
#: c-pch.c:198 c-pch.c:215
-#, fuzzy
msgid "can%'t seek in %s: %m"
msgstr "%s içinde konumlama yapılamıyor: %m"
#: c-pch.c:206 c-pch.c:248 c-pch.c:276 c-pch.c:281 c-pch.c:365
-#, fuzzy
msgid "can%'t read %s: %m"
msgstr "`%s' okunamıyor: %m"
#: c-pch.c:483
-#, fuzzy
msgid "malformed #pragma GCC pch_preprocess, ignored"
-msgstr "'#pragma map' bozuk, yoksayıldı"
+msgstr "#pragma GCC pch_preprocess bozuk, yoksayıldı"
#: c-pch.c:489
msgid "pch_preprocess pragma should only be used with -fpreprocessed"
-msgstr ""
+msgstr "pch_preprocess pragması sadece -fpreprocessed ile kullanılmalı"
#: c-pch.c:490
-#, fuzzy
msgid "use #include instead"
-msgstr "#include iç içeliği çok derin"
+msgstr "yerine #include kullanın"
#: c-pch.c:498
-#, fuzzy
msgid "%s: couldn%'t open PCH file: %m\n"
-msgstr "%s: %s çıktı dosyası açılamadı.\n"
+msgstr "%s: PCH dosyası açılamadı: %m\n"
#: c-pch.c:503
msgid "use -Winvalid-pch for more information"
@@ -2925,17 +2621,16 @@ msgstr "daha fazla bilgi için -Winvalid-pch kullanın"
#: c-pch.c:504
#, c-format
msgid "%s: PCH file was invalid"
-msgstr ""
+msgstr "%s: PCH dosyası geçersiz"
#: c-pragma.c:98
-#, fuzzy
msgid "#pragma pack (pop) encountered without matching #pragma pack (push)"
-msgstr "#pragma pack (push, <n>) ile eşleşmeyen #pragma pack (pop) saptandı"
+msgstr "#pragma pack (push) ile eşleşme olmaksızın #pragma pack (pop) saptandı"
#: c-pragma.c:111
-#, fuzzy, c-format
+#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
-msgstr "#pragma pack(push, %2$s, <n>) ile eşleşmeyen #pragma pack(pop, %1$s) saptandı"
+msgstr "#pragma pack(push, %2$s) ile eşleşme olmaksızın #pragma pack(pop, %1$s) saptandı"
#: c-pragma.c:125
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
@@ -2946,38 +2641,32 @@ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr "bu hedefte #pragma pack(pop[, id], <n>) desteklenmiyor"
#: c-pragma.c:148
-#, fuzzy
msgid "missing %<(%> after %<#pragma pack%> - ignored"
-msgstr "'#pragma pack' den sonra '(' eksik - yoksayıldı"
+msgstr "%<#pragma pack%> den sonra %<(%> eksik - yoksayıldı"
#: c-pragma.c:161 c-pragma.c:201
-#, fuzzy
msgid "malformed %<#pragma pack%> - ignored"
-msgstr "'#pragma pack' bozuk - yoksayıldı"
+msgstr "%<#pragma pack%> bozuk - yoksayıldı"
#: c-pragma.c:166
-#, fuzzy
msgid "malformed %<#pragma pack(push[, id][, <n>])%> - ignored"
-msgstr "bozuk '#pragma pack(push[, id], <n>)' - yoksayıldı"
+msgstr "bozuk %<#pragma pack(push[, id][, <n>])%> - yoksayıldı"
#: c-pragma.c:168
-#, fuzzy
msgid "malformed %<#pragma pack(pop[, id])%> - ignored"
-msgstr "'#pragma pack(pop[, id])' bozuk - yoksayıldı"
+msgstr "%<#pragma pack(pop[, id])%> bozuk - yoksayıldı"
#: c-pragma.c:177
-#, fuzzy
msgid "unknown action %qs for %<#pragma pack%> - ignored"
-msgstr "'#pragma pack' için '%s' eylemi bilinmiyor - yoksayıldı"
+msgstr " %<#pragma pack%> için %qs eylemi bilinmiyor - yoksayıldı"
#: c-pragma.c:204
-#, fuzzy
msgid "junk at end of %<#pragma pack%>"
-msgstr "'#pragma pack' sonunda döküntü"
+msgstr "%<#pragma pack%> sonunda döküntü"
#: c-pragma.c:207
msgid "#pragma pack has no effect with -fpack-struct - ignored"
-msgstr ""
+msgstr "#pragma pack -fpack-struct ile etkisiz - ignored"
#: c-pragma.c:227
#, c-format
@@ -2985,1009 +2674,935 @@ 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:260
-#, fuzzy
msgid "%Japplying #pragma weak %qD after first use results in unspecified behavior"
-msgstr "ilk kullanımdan sonra #pragma weak `%D' yönergesini uygulamak tanımlanmamış davranışa yol açar"
+msgstr "%J ilk kullanımdan sonra #pragma weak %qD uygulamak tanımlanmamış davranışa yol açar"
-#: c-pragma.c:307 c-pragma.c:312
+#: c-pragma.c:334 c-pragma.c:339
msgid "malformed #pragma weak, ignored"
msgstr "'#pragma weak' yönergesi bozuk - yoksayıldı"
-#: c-pragma.c:316
+#: c-pragma.c:343
msgid "junk at end of #pragma weak"
msgstr "'#pragma weak' sonunda döküntü"
-#: c-pragma.c:379 c-pragma.c:381
+#: c-pragma.c:411 c-pragma.c:413
msgid "malformed #pragma redefine_extname, ignored"
msgstr "#pragma redefine_extname yönergesi bozuk - yoksayıldı"
-#: c-pragma.c:384
+#: c-pragma.c:416
msgid "junk at end of #pragma redefine_extname"
msgstr "#pragma redefine_extname sonunda döküntü"
-#: c-pragma.c:389
-#, fuzzy
+#: c-pragma.c:421
msgid "#pragma redefine_extname not supported on this target"
-msgstr "__builtin_eh_return bu hedefte desteklenmiyor"
+msgstr "#pragma redefine_extname bu hedefte desteklenmiyor"
-#: c-pragma.c:406 c-pragma.c:492
-#, fuzzy
+#: c-pragma.c:438 c-pragma.c:524
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
-msgstr "#pragma redefine_extname bildirimiyle çelişiyor"
+msgstr "#pragma redefine_extname önceki isimlendirme ile çeliştiğinden yoksayıldı"
-#: c-pragma.c:429
-#, fuzzy
+#: c-pragma.c:461
msgid "#pragma redefine_extname ignored due to conflict with previous #pragma redefine_extname"
-msgstr "#pragma redefine_extname bildirimiyle çelişiyor"
+msgstr "#pragma redefine_extname önceki #pragma redefine_extname ile çeliştiğinden yoksayıldı"
-#: c-pragma.c:448
+#: c-pragma.c:480
msgid "malformed #pragma extern_prefix, ignored"
msgstr "#pragma extern_prefix bozuk, yoksayıldı"
-#: c-pragma.c:451
+#: c-pragma.c:483
msgid "junk at end of #pragma extern_prefix"
msgstr "'#pragma extern_prefix' sonunda karışıklık"
-#: c-pragma.c:457
-#, fuzzy
+#: c-pragma.c:489
msgid "#pragma extern_prefix not supported on this target"
-msgstr "Ayrımsama bu hedefte desteklenmiyor."
+msgstr "#pragma extern_prefix bu hedefte desteklenmiyor"
-#: c-pragma.c:483
-#, fuzzy
+#: c-pragma.c:515
msgid "asm declaration ignored due to conflict with previous rename"
-msgstr "asm bildirimi önceki isim değişikliği ile çelişiyor"
+msgstr "asm bildirimi önceki isim değişikliği ile çeliştiğinden yoksayıldı"
-#: c-pragma.c:514
-#, fuzzy
+#: c-pragma.c:546
msgid "#pragma redefine_extname ignored due to conflict with __asm__ declaration"
-msgstr "#pragma redefine_extname bildirimiyle çelişiyor"
+msgstr "#pragma redefine_extname __asm__ bildirimi ile çeliştiğinden yoksayıldı"
-#: c-pragma.c:574
+#: c-pragma.c:606
msgid "#pragma GCC visibility must be followed by push or pop"
-msgstr ""
+msgstr "#pragma GCC visibility'yi push veya pop izlemeli"
-#: c-pragma.c:581
+#: c-pragma.c:613
msgid "No matching push for %<#pragma GCC visibility pop%>"
-msgstr ""
+msgstr "%<#pragma GCC visibility pop%> ile eÅŸleÅŸen push yok"
-#: c-pragma.c:592 c-pragma.c:621
-#, fuzzy
+#: c-pragma.c:624 c-pragma.c:653
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
-msgstr "'#pragma %s' den sonra '(' eksik - yoksayıldı"
+msgstr "%<#pragma GCC visibility push%> sonrasında %<(%> yok - yoksayıldı"
-#: c-pragma.c:596
-#, fuzzy
+#: c-pragma.c:628
msgid "malformed #pragma GCC visibility push"
-msgstr "'#pragma builtin' bozuk"
+msgstr "#pragma GCC visibility push bozuk"
-#: c-pragma.c:600
+#: c-pragma.c:632
msgid "No more than sixteen #pragma GCC visibility pushes allowed at once"
-msgstr ""
+msgstr "Bir kerede onaltıdan fazla #pragma GCC visibility push için izin verilmez"
-#: c-pragma.c:616
+#: c-pragma.c:648
msgid "#pragma GCC visibility push() must specify default, internal, hidden or protected"
-msgstr ""
+msgstr "#pragma GCC visibility push(), default, internal, hidden veya protected olarak belirtilmeli"
-#: c-pragma.c:625
-#, fuzzy
+#: c-pragma.c:657
msgid "junk at end of %<#pragma GCC visibility%>"
-msgstr "'#pragma %s' sonrası karışık"
+msgstr "%<#pragma GCC visibility%> sonunda karışıklık"
-#: c-typeck.c:138
-#, fuzzy, c-format
+#: c-typeck.c:139
+#, c-format
msgid "%qs has an incomplete type"
-msgstr "`%s' tamamlanmamış türde"
+msgstr "%qs tamamlanmamış türde"
-#: c-typeck.c:160 cp/call.c:2671
+#: c-typeck.c:161 cp/call.c:2679
msgid "invalid use of void expression"
msgstr "void deyiminin kullanımı geçersiz"
-#: c-typeck.c:168
+#: c-typeck.c:169
msgid "invalid use of flexible array member"
msgstr "esnek dizi üyesinin kullanımı geçersiz"
-#: c-typeck.c:174
+#: c-typeck.c:175
msgid "invalid use of array with unspecified bounds"
msgstr "sınırları belirtilmemiş dizi; kullanımı geçersiz"
-#: c-typeck.c:182
-#, fuzzy
+#: c-typeck.c:183
msgid "invalid use of undefined type %<%s %s%>"
-msgstr "atanmamış tür `%s %s'; kullanımı geçersiz"
+msgstr "tanımsız tür %<%s %s%> kullanımı geçersiz"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:186
-#, fuzzy, c-format
+#: c-typeck.c:187
+#, c-format
msgid "invalid use of incomplete typedef %qs"
-msgstr "tamamlanmamış typedef `%s'; kullanımı geçersiz"
+msgstr "tamamlanmamış typedef %qs kullanımı geçersiz"
-#: c-typeck.c:373 c-typeck.c:387
+#: c-typeck.c:394 c-typeck.c:419
msgid "function types not truly compatible in ISO C"
msgstr "işlev türleri ISO C'de tam uyumlu değil"
-#: c-typeck.c:745
+#: c-typeck.c:803
msgid "types are not quite compatible"
msgstr "türler tam uyumlu değil"
-#: c-typeck.c:987
-#, fuzzy
+#: c-typeck.c:1045
msgid "function return types not compatible due to %<volatile%>"
-msgstr "işlevin dönen değer türü `volatile' den dolayı uyumsuz"
+msgstr "işlevin dönüş türü %<volatile%> den dolayı uyumsuz"
-#: c-typeck.c:1128 c-typeck.c:2362
+#: c-typeck.c:1204 c-typeck.c:2445
msgid "arithmetic on pointer to an incomplete type"
msgstr "bir içi boş tür gösterici üzerinde aritmetik"
-#: c-typeck.c:1483
-#, fuzzy
+#: c-typeck.c:1559
msgid "%qT has no member named %qs"
-msgstr "%s'in `%s' isimli bir üyesi yok"
+msgstr "%qT türünün %qs isimli üyesi yok"
-#: c-typeck.c:1519
-#, fuzzy, c-format
+#: c-typeck.c:1595
+#, c-format
msgid "request for member %qs in something not a structure or union"
-msgstr "bir struct veya union olmayan şeyin `%s' üyesi için istek"
+msgstr "bir struct veya union olmayan şeyin %qs üyesi için istek"
-#: c-typeck.c:1548
+#: c-typeck.c:1629
msgid "dereferencing pointer to incomplete type"
msgstr "içi boş türe gösterici ilişkilendirme"
-#: c-typeck.c:1552
-#, fuzzy
+#: c-typeck.c:1633
msgid "dereferencing %<void *%> pointer"
-msgstr "`void *' gösterici ilişkilendirmesi"
+msgstr "%<void *%> gösterici ilişkilendirmesi"
-#: c-typeck.c:1569 cp/typeck.c:2150
-#, fuzzy, c-format
+#: c-typeck.c:1650 cp/typeck.c:2109
+#, c-format
msgid "invalid type argument of %qs"
-msgstr "`%s' için tür argümanı geçersiz"
+msgstr "%qs için tür argümanı geçersiz"
-#: c-typeck.c:1597 cp/typeck.c:2301
+#: c-typeck.c:1678 cp/typeck.c:2260
msgid "subscripted value is neither array nor pointer"
msgstr "indisli değer ne dizi ne de bir gösterici"
-#: c-typeck.c:1608 cp/typeck.c:2220 cp/typeck.c:2306
+#: c-typeck.c:1689 cp/typeck.c:2179 cp/typeck.c:2265
msgid "array subscript is not an integer"
msgstr "dizi altindisi bir tamsayı değil"
-#: c-typeck.c:1614
-#, fuzzy
+#: c-typeck.c:1695
msgid "subscripted value is pointer to function"
-msgstr "işlev göstericisi olan argümanın aktarılması"
+msgstr "indisli değer, işleve göstericidir"
-#: c-typeck.c:1627 cp/typeck.c:2216
-#, fuzzy
+#: c-typeck.c:1708 cp/typeck.c:2175
msgid "array subscript has type %<char%>"
-msgstr "dizi altindisi `char' türünde"
+msgstr "dizi indisi %<char%> türünde"
-#: c-typeck.c:1667
-#, fuzzy
+#: c-typeck.c:1748
msgid "ISO C forbids subscripting %<register%> array"
-msgstr "ISO C `register' dizisi altindislemesine izin vermez"
+msgstr "ISO C %<register%> dizisi indislemesine izin vermez"
-#: c-typeck.c:1669
+#: c-typeck.c:1750
msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C90 sol yansız dizi indislemesine izin vermez"
-#: c-typeck.c:1904
-#, fuzzy, c-format
+#: c-typeck.c:1987
+#, c-format
msgid "called object %qE is not a function"
-msgstr "çağrılan nesne bir işlev değil"
+msgstr "çağrılan nesne %qE bir işlev değil"
#. This situation leads to run-time undefined behavior. We can't,
#. therefore, simply error unless we can prove that all possible
#. executions of the program must execute the code.
-#: c-typeck.c:1936
+#: c-typeck.c:2019
msgid "function called through a non-compatible type"
msgstr "uyumlu olmayan türde işlev çağrısı"
-#: c-typeck.c:1983 c-typeck.c:4227 c-typeck.c:4229 c-typeck.c:4237
-#: c-typeck.c:4262 c-typeck.c:5649
+#: c-typeck.c:2066 c-typeck.c:4327 c-typeck.c:4329 c-typeck.c:4337
+#: c-typeck.c:4362 c-typeck.c:5744
msgid "initializer element is not constant"
msgstr "ilklendirici öğe bir sabit değil"
-#: c-typeck.c:2044
-#, fuzzy, c-format
+#: c-typeck.c:2127
+#, c-format
msgid "too many arguments to function %qE"
-msgstr "işlev için çok fazla argüman belirtildi"
+msgstr "%qE işlevi için çok fazla argüman belirtildi"
-#: c-typeck.c:2071
+#: c-typeck.c:2154
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "%d biçimsel parametre türü tamamlanmayan türde"
-#: c-typeck.c:2084
-#, fuzzy, c-format
+#: c-typeck.c:2167
+#, c-format
msgid "passing argument %d of %qE as integer rather than floating due to prototype"
-msgstr "%sması prototipten dolayı bir gerçel sayıdan çok bir tamsayı"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı gerçek sayı değil tamsayı aktarılması"
-#: c-typeck.c:2089
-#, fuzzy, c-format
+#: c-typeck.c:2172
+#, c-format
msgid "passing argument %d of %qE as integer rather than complex due to prototype"
-msgstr "%sması prototipten dolayı bir karmaşık sayıdan çok bir tamsayı"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı karmaşık sayı değil tamsayı aktarılması"
-#: c-typeck.c:2094
-#, fuzzy, c-format
+#: c-typeck.c:2177
+#, c-format
msgid "passing argument %d of %qE as complex rather than floating due to prototype"
-msgstr "%sması prototipten dolayı bir gerçel sayıdan çok bir karmaşık sayı"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı gerçek sayı değil karmaşık sayı aktarılması"
-#: c-typeck.c:2099
-#, fuzzy, c-format
+#: c-typeck.c:2182
+#, c-format
msgid "passing argument %d of %qE as floating rather than integer due to prototype"
-msgstr "%sması prototipten dolayı bir tamsayıdan çok bir gerçel sayı"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı tamsayı değil gerçek sayı aktarılması"
-#: c-typeck.c:2104
-#, fuzzy, c-format
+#: c-typeck.c:2187
+#, c-format
msgid "passing argument %d of %qE as complex rather than integer due to prototype"
-msgstr "%sması prototipten dolayı bir tamsayıdan çok bir karmaşık sayı"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı tamsayı değil karmaşık sayı aktarılması"
-#: c-typeck.c:2109
-#, fuzzy, c-format
+#: c-typeck.c:2192
+#, c-format
msgid "passing argument %d of %qE as floating rather than complex due to prototype"
-msgstr "%sması prototipten dolayı bir karmaşık sayıdan çok bir gerçel sayı"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı karmaşık sayı değil gerçek sayı aktarılması"
-#: c-typeck.c:2121
-#, fuzzy
+#: c-typeck.c:2204
msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
-msgstr "%sması prototipten dolayı bir «double»dan çok bir «float»"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı %<double%> değil %<float%> aktarılması"
-#: c-typeck.c:2141
-#, fuzzy, c-format
+#: c-typeck.c:2224
+#, c-format
msgid "passing argument %d of %qE with different width due to prototype"
-msgstr "prototipten dolayı farklı genişlikle %sması"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı farklı genişlikte değer aktarılması"
-#: c-typeck.c:2168
-#, fuzzy, c-format
+#: c-typeck.c:2251
+#, c-format
msgid "passing argument %d of %qE as unsigned due to prototype"
-msgstr "%sması prototipten dolayı unsigned"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı işaretsiz tamsayı aktarılması"
-#: c-typeck.c:2171
-#, fuzzy, c-format
+#: c-typeck.c:2254
+#, c-format
msgid "passing argument %d of %qE as signed due to prototype"
-msgstr "%sması prototipten dolayı signed"
+msgstr "%2$qE işlevinin %1$d. argümanına prototipten dolayı işaretli tamsayı aktarılması"
-#: c-typeck.c:2202
-#, fuzzy, c-format
+#: c-typeck.c:2285
+#, c-format
msgid "too few arguments to function %qE"
-msgstr "işlev için çok az argüman belirtildi"
+msgstr "%qE işlevi için çok az argüman belirtildi"
-#: c-typeck.c:2238
+#: c-typeck.c:2321
msgid "suggest parentheses around + or - inside shift"
msgstr "shift içindeki + ya da - çevresinde parantezler önerilir"
-#: c-typeck.c:2245
+#: c-typeck.c:2328
msgid "suggest parentheses around && within ||"
msgstr "|| içindeki && çevresinde parantezler önerilir"
-#: c-typeck.c:2254
+#: c-typeck.c:2337
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "| işlemimindeki aritmetik çevresinde parantezler önerilir"
-#: c-typeck.c:2258
+#: c-typeck.c:2341
msgid "suggest parentheses around comparison in operand of |"
msgstr "| işlemimindeki karşılaştırma çevresinde parantezler önerilir"
-#: c-typeck.c:2267
+#: c-typeck.c:2350
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "^ işlemimindeki aritmetik çevresinde parantezler önerilir"
-#: c-typeck.c:2271
+#: c-typeck.c:2354
msgid "suggest parentheses around comparison in operand of ^"
msgstr "^ işlemimindeki karşılaştırma çevresinde parantezler önerilir"
-#: c-typeck.c:2278
+#: c-typeck.c:2361
msgid "suggest parentheses around + or - in operand of &"
msgstr "& işlemimindeki + veya - çevresinde parantezler önerilir"
-#: c-typeck.c:2282
+#: c-typeck.c:2365
msgid "suggest parentheses around comparison in operand of &"
msgstr "& işlemimindeki karşılaştırma çevresinde parantezler önerilir"
-#: c-typeck.c:2288
+#: c-typeck.c:2371
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:2314
-#, fuzzy
+#: c-typeck.c:2397
msgid "pointer of type %<void *%> used in subtraction"
-msgstr "çıkartmada `void *' türünde gösterici kullanılmış"
+msgstr "çıkartmada %<void *%> türünde gösterici kullanılmış"
-#: c-typeck.c:2316
+#: c-typeck.c:2399
msgid "pointer to a function used in subtraction"
msgstr "çıkartmada işlev göstericisi kullanılmış"
-#: c-typeck.c:2405
+#: c-typeck.c:2488
msgid "wrong type argument to unary plus"
msgstr "tekil artı işleminde yanlış tür argümanı"
-#: c-typeck.c:2418
+#: c-typeck.c:2501
msgid "wrong type argument to unary minus"
msgstr "tekil eksi işleminde yanlış tür argümanı"
-#: c-typeck.c:2435
-#, fuzzy
+#: c-typeck.c:2518
msgid "ISO C does not support %<~%> for complex conjugation"
-msgstr "ISO C karmaşık sayıların mantıksal çarpımında `~' desteklemez"
+msgstr "ISO C karmaşık sayıların mantıksal çarpımında %<~%> desteklemez"
-#: c-typeck.c:2441
+#: c-typeck.c:2524
msgid "wrong type argument to bit-complement"
msgstr "bit-tümler için yanlış tür argümanı"
-#: c-typeck.c:2449
+#: c-typeck.c:2532
msgid "wrong type argument to abs"
msgstr "mutlak değer için yanlış tür argümanı"
-#: c-typeck.c:2461
+#: c-typeck.c:2544
msgid "wrong type argument to conjugation"
msgstr "mantıksal çarpım için yanlış tür argümanı"
-#: c-typeck.c:2475
+#: c-typeck.c:2558
msgid "wrong type argument to unary exclamation mark"
msgstr "tekil tümleyen için yanlış tür argümanı"
-#: c-typeck.c:2512
-#, fuzzy
+#: c-typeck.c:2595
msgid "ISO C does not support %<++%> and %<--%> on complex types"
-msgstr "ISO C karmaşık sayı türlerinde `++' ve `--' desteklemez"
+msgstr "ISO C karmaşık sayı türlerinde %<++%> ve %<--%> desteklemez"
-#: c-typeck.c:2528 c-typeck.c:2560
+#: c-typeck.c:2611 c-typeck.c:2643
msgid "wrong type argument to increment"
msgstr "arttırımda yanlış türde argüman"
-#: c-typeck.c:2530 c-typeck.c:2562
+#: c-typeck.c:2613 c-typeck.c:2645
msgid "wrong type argument to decrement"
msgstr "eksiltmede yanlış türde argüman"
-#: c-typeck.c:2551
+#: c-typeck.c:2634
msgid "increment of pointer to unknown structure"
msgstr "bilinmeyen yapı göstericisinde arttırma"
-#: c-typeck.c:2553
+#: c-typeck.c:2636
msgid "decrement of pointer to unknown structure"
msgstr "bilinmeyen yapı göstericisinde eksiltme"
-#: c-typeck.c:2723
-#, fuzzy, c-format
+#: c-typeck.c:2806
+#, c-format
msgid "assignment of read-only member %qs"
-msgstr "salt-okunur üye `%2$s' için %1$s"
+msgstr "salt-okunur üye %qs için atama"
-#: c-typeck.c:2724
-#, fuzzy, c-format
+#: c-typeck.c:2807
+#, c-format
msgid "increment of read-only member %qs"
-msgstr "salt-okunur üye `%2$s' için %1$s"
+msgstr "salt-okunur üye %qs için eksiltme"
-#: c-typeck.c:2725
-#, fuzzy, c-format
+#: c-typeck.c:2808
+#, c-format
msgid "decrement of read-only member %qs"
-msgstr "salt-okunur üye `%2$s' için %1$s"
+msgstr "salt-okunur üye %qs için arttırım"
-#: c-typeck.c:2729
-#, fuzzy, c-format
+#: c-typeck.c:2812
+#, c-format
msgid "assignment of read-only variable %qs"
-msgstr "salt-okunur değişken `%2$s' için %1$s"
+msgstr "salt-okunur değişken %qs için atama"
-#: c-typeck.c:2730
-#, fuzzy, c-format
+#: c-typeck.c:2813
+#, c-format
msgid "increment of read-only variable %qs"
-msgstr "salt-okunur değişken `%2$s' için %1$s"
+msgstr "salt-okunur değişken %qs için eksiltme"
-#: c-typeck.c:2731
-#, fuzzy, c-format
+#: c-typeck.c:2814
+#, c-format
msgid "decrement of read-only variable %qs"
-msgstr "salt-okunur değişken `%2$s' için %1$s"
+msgstr "salt-okunur değişken %qs için arttırım"
-#: c-typeck.c:2734
-#, fuzzy
+#: c-typeck.c:2817
msgid "assignment of read-only location"
-msgstr "salt-okunur konumun %s"
+msgstr "salt-okunur konuma atama"
-#: c-typeck.c:2735
-#, fuzzy
+#: c-typeck.c:2818
msgid "increment of read-only location"
-msgstr "salt-okunur konumun %s"
+msgstr "salt-okunur konuma eksiltim"
-#: c-typeck.c:2736
-#, fuzzy
+#: c-typeck.c:2819
msgid "decrement of read-only location"
-msgstr "salt-okunur konumun %s"
+msgstr "salt-okunur konuma arttırım"
-#: c-typeck.c:2755
-#, fuzzy
+#: c-typeck.c:2838
msgid "cannot take address of bit-field %qD"
-msgstr "`%s' bit-alanının adresi alınamıyor"
+msgstr "%qD bit-alanının adresi alınamaz"
-#: c-typeck.c:2783
-#, fuzzy
+#: c-typeck.c:2866
msgid "global register variable %qD used in nested function"
-msgstr "genel yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
+msgstr "genel yazmaç değişkeni %qD iç işlevde kullanılmış"
-#: c-typeck.c:2786
-#, fuzzy
+#: c-typeck.c:2869
msgid "register variable %qD used in nested function"
-msgstr "yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
+msgstr "yazmaç değişkeni %qD iç işlevde kullanılmış"
-#: c-typeck.c:2791
-#, fuzzy
+#: c-typeck.c:2874
msgid "address of global register variable %qD requested"
-msgstr "`%s' genel yazmaç değişkeninin adresi istenmiş"
+msgstr "%qD genel yazmaç değişkeninin adresi istenmiş"
-#: c-typeck.c:2793
-#, fuzzy
+#: c-typeck.c:2876
msgid "address of register variable %qD requested"
-msgstr "`%s' yazmaç değişkeninin adresi istendi"
+msgstr "%qD yazmaç değişkeninin adresi istendi"
-#: c-typeck.c:2841
-#, fuzzy
+#: c-typeck.c:2924
msgid "non-lvalue array in conditional expression"
-msgstr "şartlı ifadedeki kip mantıksal kip değil"
+msgstr "şartlı ifadede sol değersiz dizi"
-#: c-typeck.c:2885
+#: c-typeck.c:2968
msgid "signed and unsigned type in conditional expression"
msgstr "koşullu ifadede signed ve unsigned türler"
-#: c-typeck.c:2892
+#: c-typeck.c:2975
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:2908 c-typeck.c:2916
-#, fuzzy
+#: c-typeck.c:2991 c-typeck.c:2999
msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
-msgstr "ISO C `void *' ve işlev göstericisi 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:2923
+#: c-typeck.c:3006
msgid "pointer type mismatch in conditional expression"
msgstr "koşullu ifade içinde gösterici türü uyumsuzluğu"
-#: c-typeck.c:2930 c-typeck.c:2940
+#: c-typeck.c:3013 c-typeck.c:3023
msgid "pointer/integer type mismatch in conditional expression"
msgstr "koşullu ifadede gösterici/tamsayı tür uyumsuzluğu"
-#: c-typeck.c:2954
+#: c-typeck.c:3037
msgid "type mismatch in conditional expression"
msgstr "şartlı ifade içinde tür uyumsuzluğu"
-#: c-typeck.c:2993
+#: c-typeck.c:3076
msgid "left-hand operand of comma expression has no effect"
msgstr "virgüllü ifadenin sol terimi etkisiz"
-#: c-typeck.c:3026
+#: c-typeck.c:3109
msgid "cast specifies array type"
msgstr "tür dönüşümü dizi belirtiyor"
-#: c-typeck.c:3032
+#: c-typeck.c:3115
msgid "cast specifies function type"
msgstr "tür dönüşümü işlev belirtiyor"
-#: c-typeck.c:3042
+#: c-typeck.c:3125
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO C skalar olmayandan aynı türe dönüşüme izin vermez"
-#: c-typeck.c:3060
+#: c-typeck.c:3143
msgid "ISO C forbids casts to union type"
msgstr "ISO C union türe dönüşüme izin vermez"
-#: c-typeck.c:3069
+#: c-typeck.c:3152
msgid "cast to union type from type not present in union"
msgstr "union içinde mevcut olmayan türden union türe dönüşüm"
-#: c-typeck.c:3120
+#: c-typeck.c:3203
msgid "cast adds new qualifiers to function type"
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:3125
+#: c-typeck.c:3208
msgid "cast discards qualifiers from pointer target type"
msgstr "tür dönüşümü, gösterici hedef türünden niteleyicileri iptal ediyor"
-#: c-typeck.c:3140
+#: c-typeck.c:3223
msgid "cast increases required alignment of target type"
msgstr "tür dönüşümü hedef türün gerekli hizalamasını azaltıyor"
-#: c-typeck.c:3146
+#: c-typeck.c:3229
msgid "cast from pointer to integer of different size"
msgstr "göstericiden farklı tamsayı türlere dönüşüm"
-#: c-typeck.c:3151
+#: c-typeck.c:3234
msgid "cast from function call of type %qT to non-matching type %qT"
-msgstr ""
+msgstr "%qT türündeki işlev çağrısından eşleşmeyen %qT türüne dönüşüm"
-#: c-typeck.c:3159
+#: c-typeck.c:3242
msgid "cast to pointer from integer of different size"
msgstr "farklı boyuttaki tamsayı türden göstericye dönüşüm"
-#: c-typeck.c:3171
+#: c-typeck.c:3254
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:3178
+#: c-typeck.c:3261
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"
-#: c-typeck.c:3181
-#, fuzzy
+#: c-typeck.c:3264
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
-msgstr "türü tanımlanmış göstericinin ilişkilendirilmesi adlandırmanın değişmezliği kurallarını bozacak"
+msgstr "türü tanımlanmış göstericinin ilişkilendirilmesi adlandırmanın değişmezliği kurallarını bozabilir"
-#: c-typeck.c:3193
+#: c-typeck.c:3276
msgid "ISO C forbids conversion of function pointer to object pointer type"
msgstr "ISO C işlev göstericisinin nesne göstericisine dönüştürülmesini yasaklar"
-#: c-typeck.c:3202
+#: c-typeck.c:3285
msgid "ISO C forbids conversion of object pointer to function pointer type"
msgstr "ISO C nesne göstericisinin işlev göstericisine dönüştürülmesini yasaklar"
-#: c-typeck.c:3457
+#: c-typeck.c:3537
msgid "cannot pass rvalue to reference parameter"
msgstr "sağdeğer, başvuru parametresine aktarılamaz"
-#: c-typeck.c:3566 c-typeck.c:3675
-#, fuzzy, c-format
+#: c-typeck.c:3646 c-typeck.c:3761
+#, c-format
msgid "passing argument %d of %qE makes qualified function pointer from unqualified"
-msgstr "%s nitelemeyenden niteleyen işlev göstericisi yapıyor"
+msgstr "%2$qE işlevinin %1$d. argümanındaki aktarma niteliksiz göstericiden nitelikli gösterici yapıyor"
-#: c-typeck.c:3569 c-typeck.c:3678
-#, fuzzy
+#: c-typeck.c:3649 c-typeck.c:3764
msgid "assignment makes qualified function pointer from unqualified"
-msgstr "%s nitelemeyenden niteleyen işlev göstericisi yapıyor"
+msgstr "atama niteliksiz işlev göstericisini nitelikli yapıyor"
-#: c-typeck.c:3572 c-typeck.c:3680
-#, fuzzy
+#: c-typeck.c:3652 c-typeck.c:3766
msgid "initialization makes qualified function pointer from unqualified"
-msgstr "%s nitelemeyenden niteleyen işlev göstericisi yapıyor"
+msgstr "ilklendirme niteliksiz işlev göstericisini nitelikli yapıyor"
-#: c-typeck.c:3575 c-typeck.c:3682
-#, fuzzy
+#: c-typeck.c:3655 c-typeck.c:3768
msgid "return makes qualified function pointer from unqualified"
-msgstr "%s nitelemeyenden niteleyen işlev göstericisi yapıyor"
+msgstr "dönüş değeri niteliksiz işlev göstericisini nitelikli yapıyor"
-#: c-typeck.c:3579 c-typeck.c:3643
-#, fuzzy, c-format
+#: c-typeck.c:3659 c-typeck.c:3729
+#, c-format
msgid "passing argument %d of %qE discards qualifiers from pointer target type"
-msgstr "`%T' türünden `%T' türüne dönüşüm, gösterici hedef türünden niteleyicileri iptal ediyor"
+msgstr "%2$qE işlevinin %1$d. argümanının aktarımı gösterici hedef türündeki niteleyicileri iptal ediyor"
-#: c-typeck.c:3581 c-typeck.c:3645
-#, fuzzy
+#: c-typeck.c:3661 c-typeck.c:3731
msgid "assignment discards qualifiers from pointer target type"
-msgstr "tür dönüşümü, gösterici hedef türünden niteleyicileri iptal ediyor"
+msgstr "atama gösterici hedef türündeki niteleyicileri iptal ediyor"
-#: c-typeck.c:3583 c-typeck.c:3647
-#, fuzzy
+#: c-typeck.c:3663 c-typeck.c:3733
msgid "initialization discards qualifiers from pointer target type"
-msgstr "tür dönüşümü, gösterici hedef türünden niteleyicileri iptal ediyor"
+msgstr "ilklendirme gösterici hedef türündeki niteleyicileri iptal ediyor"
-#: c-typeck.c:3585 c-typeck.c:3649
-#, fuzzy
+#: c-typeck.c:3665 c-typeck.c:3735
msgid "return discards qualifiers from pointer target type"
-msgstr "tür dönüşümü, gösterici hedef türünden niteleyicileri iptal ediyor"
+msgstr "dönüş değeri gösterici hedef türündeki niteleyicileri iptal ediyor"
-#: c-typeck.c:3590
+#: c-typeck.c:3670
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:3628
-#, fuzzy
+#: c-typeck.c:3714
msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
-msgstr "ISO C de işlev göstericisi ile `void *' arasında %s yasaktır"
+msgstr "ISO C %d. argümanında (%qE işlevinin) işlev göstericisi ile %<void *%> arasında geçişe izin vermez"
-#: c-typeck.c:3631
-#, fuzzy
+#: c-typeck.c:3717
msgid "ISO C forbids assignment between function pointer and %<void *%>"
-msgstr "ISO C de işlev göstericisi ile `void *' arasında %s yasaktır"
+msgstr "ISO C de işlev göstericisi ile %<void *%> arasında atama yasaktır"
-#: c-typeck.c:3633
-#, fuzzy
+#: c-typeck.c:3719
msgid "ISO C forbids initialization between function pointer and %<void *%>"
-msgstr "ISO C de işlev göstericisi ile `void *' arasında %s yasaktır"
+msgstr "ISO C de işlev göstericisi ile %<void *%> arasında ilklendirma yasaktır"
-#: c-typeck.c:3635
-#, fuzzy
+#: c-typeck.c:3721
msgid "ISO C forbids return between function pointer and %<void *%>"
-msgstr "ISO C de işlev göstericisi ile `void *' arasında %s yasaktır"
+msgstr "ISO C de işlev göstericisi ile %<void *%> arasında dönüş değeri yasaktır"
-#: c-typeck.c:3658
-#, fuzzy, c-format
+#: c-typeck.c:3744
+#, c-format
msgid "pointer targets in passing argument %d of %qE differ in signedness"
-msgstr "gösterici hedefleri %s içinde farklı signed'lıkta"
+msgstr "%2$qE işlevinin %1$d. argümanında aktarımda gösterici hedefleri farklı signed'lıkta"
-#: c-typeck.c:3660
-#, fuzzy
+#: c-typeck.c:3746
msgid "pointer targets in assignment differ in signedness"
-msgstr "gösterici hedefleri %s içinde farklı signed'lıkta"
+msgstr "atama sırasında gösterici hedefleri farklı signed'lıkta"
-#: c-typeck.c:3662
-#, fuzzy
+#: c-typeck.c:3748
msgid "pointer targets in initialization differ in signedness"
-msgstr "gösterici hedefleri %s içinde farklı signed'lıkta"
+msgstr "ilklendirmede gösterici hedefleri farklı signed'lıkta"
-#: c-typeck.c:3664
-#, fuzzy
+#: c-typeck.c:3750
msgid "pointer targets in return differ in signedness"
-msgstr "gösterici hedefleri %s içinde farklı signed'lıkta"
+msgstr "dönüş değerinde gösterici hedefleri farklı signed'lıkta"
-#: c-typeck.c:3687
-#, fuzzy, c-format
+#: c-typeck.c:3773
+#, c-format
msgid "passing argument %d of %qE from incompatible pointer type"
-msgstr "%s uyumsuz gösterici türünde"
+msgstr "%2$qE işlevinin %1$d. argümanında uyumsuz gösterici türünde aktarım"
-#: c-typeck.c:3689
-#, fuzzy
+#: c-typeck.c:3775
msgid "assignment from incompatible pointer type"
-msgstr "%s uyumsuz gösterici türünde"
+msgstr "uyumsuz gösterici türünde atama"
-#: c-typeck.c:3690
-#, fuzzy
+#: c-typeck.c:3776
msgid "initialization from incompatible pointer type"
-msgstr "%s uyumsuz gösterici türünde"
+msgstr "uyumsuz gösterici türünde ilklendirme"
-#: c-typeck.c:3692
-#, fuzzy
+#: c-typeck.c:3778
msgid "return from incompatible pointer type"
-msgstr "%s uyumsuz gösterici türünde"
+msgstr "uyumsuz gösterici türünde dönüş değeri"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3699 c-typeck.c:4187 cp/typeck.c:1406
+#: c-typeck.c:3785 c-typeck.c:4287 cp/typeck.c:1377
msgid "invalid use of non-lvalue array"
msgstr "soldeğersiz dizi kullanımı geçersiz"
-#: c-typeck.c:3713
-#, fuzzy, c-format
+#: c-typeck.c:3799
+#, c-format
msgid "passing argument %d of %qE makes pointer from integer without a cast"
-msgstr "%s sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
+msgstr "%2$qE işlevinin %1$d. argümanının aktarımı sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
-#: c-typeck.c:3715
-#, fuzzy
+#: c-typeck.c:3801
msgid "assignment makes pointer from integer without a cast"
-msgstr "%s sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
+msgstr "atama bir tür dönüşümü olmaksızın tamsayıdan gösterici yapıyor"
-#: c-typeck.c:3717
-#, fuzzy
+#: c-typeck.c:3803
msgid "initialization makes pointer from integer without a cast"
-msgstr "%s sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
+msgstr "ilklendirme bir tür dönüşümü olmaksızın tamsayıdan gösterici yapıyor"
-#: c-typeck.c:3719
-#, fuzzy
+#: c-typeck.c:3805
msgid "return makes pointer from integer without a cast"
-msgstr "%s sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
+msgstr "dönüş değeri bir tür dönüşümü olmaksızın tamsayıdan gösterici yapıyor"
-#: c-typeck.c:3726
-#, fuzzy, c-format
+#: c-typeck.c:3812
+#, c-format
msgid "passing argument %d of %qE makes integer from pointer without a cast"
-msgstr "%s bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
+msgstr "%2$qE işlevinin %1$d. argümanının aktarımı sırasında bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
-#: c-typeck.c:3728
-#, fuzzy
+#: c-typeck.c:3814
msgid "assignment makes integer from pointer without a cast"
-msgstr "%s bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
+msgstr "atamada bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
-#: c-typeck.c:3730
-#, fuzzy
+#: c-typeck.c:3816
msgid "initialization makes integer from pointer without a cast"
-msgstr "%s bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
+msgstr "ilklendirmede bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
-#: c-typeck.c:3732
-#, fuzzy
+#: c-typeck.c:3818
msgid "return makes integer from pointer without a cast"
-msgstr "%s bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
+msgstr "dönüş değerinde bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
#. ??? This should not be an error when inlining calls to
#. unprototyped functions.
-#: c-typeck.c:3745
-#, fuzzy, c-format
+#: c-typeck.c:3831
+#, c-format
msgid "incompatible type for argument %d of %qE"
-msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
+msgstr "%2$qE işlevinin %1$d. argümanı için tür uyumsuz"
-#: c-typeck.c:3748
-#, fuzzy
+#: c-typeck.c:3834
msgid "incompatible types in assignment"
-msgstr "%s içinde uyumsuz türler"
+msgstr "atamada uyumsuz türler"
-#: c-typeck.c:3751
-#, fuzzy
+#: c-typeck.c:3837
msgid "incompatible types in initialization"
-msgstr "%s içinde uyumsuz türler"
+msgstr "ilklendirmede uyumsuz türler"
-#: c-typeck.c:3754
-#, fuzzy
+#: c-typeck.c:3840
msgid "incompatible types in return"
-msgstr "%s içinde uyumsuz türler"
+msgstr "dönüş değerinde uyumsuz türler"
-#: c-typeck.c:3835
+#: c-typeck.c:3921
msgid "traditional C rejects automatic aggregate initialization"
msgstr "geleneksel C otomatik küme ilklendirmesini reddeder"
#. Use `%s' to print the string in case there are any escape
#. characters in the message.
-#: c-typeck.c:4000 c-typeck.c:4015 c-typeck.c:4030 final.c:2856 final.c:2858
-#: gcc.c:4649 rtl-error.c:113 toplev.c:606 config/cris/cris.c:568
-#: cp/parser.c:1861 cp/typeck.c:4175 java/expr.c:404 java/parse.y:5021
-#: java/verify.c:1593 java/verify.c:1594 java/verify.c:1613
+#: c-typeck.c:4086 c-typeck.c:4101 c-typeck.c:4116 final.c:2856 final.c:2858
+#: gcc.c:4639 rtl-error.c:113 toplev.c:610 config/cris/cris.c:578
+#: cp/parser.c:1884 cp/typeck.c:4131 java/expr.c:405 java/parse.y:5020
+#: java/verify.c:1553 java/verify.c:1554 java/verify.c:1573
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:4003 c-typeck.c:4018 c-typeck.c:4033
-#, fuzzy, c-format
+#: c-typeck.c:4089 c-typeck.c:4104 c-typeck.c:4119
+#, c-format
msgid "(near initialization for %qs)"
-msgstr "(%s için near ilklendirme)"
+msgstr "(%qs için near ilklendirme)"
-#: c-typeck.c:4047
-#, fuzzy
+#: c-typeck.c:4133
msgid "array initialized from parenthesized string constant"
-msgstr "karakter dizisinin ilklendiricisi olarak geniş dizge kullanılmış"
+msgstr "parantezli dizge sabitten ilklendirmeli dizi"
-#: c-typeck.c:4111 cp/typeck2.c:702
+#: c-typeck.c:4197 cp/typeck2.c:703
msgid "char-array initialized from wide string"
msgstr "karakter dizisinin ilklendiricisi olarak geniş dizge kullanılmış"
-#: c-typeck.c:4116
-#, fuzzy
+#: c-typeck.c:4202
msgid "wchar_t-array initialized from non-wide string"
-msgstr "karakter dizisinin ilklendiricisi olarak geniş dizge kullanılmış"
+msgstr "geniÅŸ karakterli olmayan dizgeden ilklendirmeli wchar_t-array"
-#: c-typeck.c:4134 cp/typeck2.c:724
+#: c-typeck.c:4220 cp/typeck2.c:725
msgid "initializer-string for array of chars is too long"
msgstr "karakter dizisi için dizge-ilklendirici çok uzun"
-#: c-typeck.c:4140
-#, fuzzy
+#: c-typeck.c:4226
msgid "array of inappropriate type initialized from string constant"
-msgstr "karakter dizisinin ilklendiricisi olarak geniş dizge kullanılmış"
+msgstr "dizge sabittrn ilklendirmeli ilgisiz türde dizi"
-#: c-typeck.c:4210
+#: c-typeck.c:4310
msgid "array initialized from non-constant array expression"
msgstr "dizinin ilklendiricisi olarak sabit olmayan dizi ifadesi kullanılmış"
-#: c-typeck.c:4269 c-typeck.c:5653
+#: c-typeck.c:4369 c-typeck.c:5748
msgid "initializer element is not computable at load time"
msgstr "başlangıç öğesi yükleme sırasında hesaplanabilir değil"
-#: c-typeck.c:4284 cp/typeck2.c:803
+#: c-typeck.c:4384 cp/typeck2.c:804
msgid "invalid initializer"
msgstr "geçersiz ilklendirici"
-#: c-typeck.c:4554 cp/decl.c:4542
+#: c-typeck.c:4651 cp/decl.c:4451
msgid "opaque vector types cannot be initialized"
msgstr "opak vektör türleri ilklendirilemez"
-#: c-typeck.c:4750
+#: c-typeck.c:4850
msgid "extra brace group at end of initializer"
msgstr "ilklendiricinin sonunda fazladan parantezli grup"
-#: c-typeck.c:4770
+#: c-typeck.c:4870 cp/decl.c:4366
msgid "missing braces around initializer"
msgstr "ilklendiriciyi çevreleyen parantezler yok"
-#: c-typeck.c:4830
+#: c-typeck.c:4931
msgid "braces around scalar initializer"
msgstr "skalar ilklendiriciyi kuÅŸatan parantezler"
-#: c-typeck.c:4887
+#: c-typeck.c:4988
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:4889
+#: c-typeck.c:4990
msgid "initialization of a flexible array member"
msgstr "esnek dizi üyesi ilklendirmesi"
-#: c-typeck.c:4916
+#: c-typeck.c:5017
msgid "missing initializer"
msgstr "ilklendirici yok"
-#: c-typeck.c:4938
+#: c-typeck.c:5039
msgid "empty scalar initializer"
msgstr "skalar ilklendirici boÅŸ"
-#: c-typeck.c:4943
+#: c-typeck.c:5044
msgid "extra elements in scalar initializer"
msgstr "skalar ilklendiricide fazladan öğeler"
-#: c-typeck.c:5031
-msgid "initialization designators may not nest"
-msgstr "ilklendirme tasarlayıcılar yuvalanamayabilir"
-
-#: c-typeck.c:5053 c-typeck.c:5128
+#: c-typeck.c:5148 c-typeck.c:5223
msgid "array index in non-array initializer"
msgstr "dizi-olmayan ilklendiricide dizi indisi"
-#: c-typeck.c:5058 c-typeck.c:5181
+#: c-typeck.c:5153 c-typeck.c:5276
msgid "field name not in record or union initializer"
msgstr "alan ismi kayıt ya da union ilklendiricisinde kullanılmamış"
-#: c-typeck.c:5104
-#, fuzzy
+#: c-typeck.c:5199
msgid "array index in initializer not of integer type"
-msgstr "ilklendiricideki dizi indeksi dizi sınırlarının dışında"
+msgstr "ilklendiricideki dizi indisi tamsayı türünde değil"
-#: c-typeck.c:5124 c-typeck.c:5126
+#: c-typeck.c:5219 c-typeck.c:5221
msgid "nonconstant array index in initializer"
msgstr "ilklendiricide sabit-olmayan dizi indeksi"
-#: c-typeck.c:5130 c-typeck.c:5133
+#: c-typeck.c:5225 c-typeck.c:5228
msgid "array index in initializer exceeds array bounds"
msgstr "ilklendiricideki dizi indeksi dizi sınırlarının dışında"
-#: c-typeck.c:5144
+#: c-typeck.c:5239
msgid "empty index range in initializer"
msgstr "ilklendiricide indeks aralığı boş"
-#: c-typeck.c:5153
+#: c-typeck.c:5248
msgid "array index range in initializer exceeds array bounds"
msgstr "ilklendiricideki dizi indeksi aralığı dizi sınırlarını aşıyor"
-#: c-typeck.c:5193
-#, fuzzy, c-format
+#: c-typeck.c:5288
+#, c-format
msgid "unknown field %qs specified in initializer"
-msgstr "ilklendiricide bilinmeyen `%s' alanı belirtilmiş"
+msgstr "ilklendiricide bilinmeyen %qs alanı belirtilmiş"
-#: c-typeck.c:5229 c-typeck.c:5250 c-typeck.c:5716
+#: c-typeck.c:5324 c-typeck.c:5345 c-typeck.c:5811
msgid "initialized field with side-effects overwritten"
msgstr "yan-etkili ilklendirilmiş alanın üzerine yazıldı"
-#: c-typeck.c:5925
+#: c-typeck.c:6020
msgid "excess elements in char array initializer"
msgstr "karakter dizisi ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:5932 c-typeck.c:5978
+#: c-typeck.c:6027 c-typeck.c:6073
msgid "excess elements in struct initializer"
msgstr "struct ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:5993
+#: c-typeck.c:6088
msgid "non-static initialization of a flexible array member"
msgstr "esnek dizi üyesinin satatik olmayan ilklendirmesi"
-#: c-typeck.c:6061
+#: c-typeck.c:6156
msgid "excess elements in union initializer"
msgstr "union ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6083
+#: c-typeck.c:6178
msgid "traditional C rejects initialization of unions"
msgstr "geleneksel C union ilklendirmesini reddeder"
-#: c-typeck.c:6147
+#: c-typeck.c:6242
msgid "excess elements in array initializer"
msgstr "dizi ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6177
+#: c-typeck.c:6272
msgid "excess elements in vector initializer"
msgstr "vektör ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6200
+#: c-typeck.c:6296
msgid "excess elements in scalar initializer"
msgstr "skalar ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6362
-#, fuzzy
+#: c-typeck.c:6492
msgid "ISO C forbids %<goto *expr;%>"
-msgstr "ISO C `goto *expr;' kullanımına izin vermez"
+msgstr "ISO C %<goto *expr;%> kullanımına izin vermez"
-#: c-typeck.c:6376 cp/typeck.c:6160
-#, fuzzy
+#: c-typeck.c:6506 cp/typeck.c:6049
msgid "function declared %<noreturn%> has a %<return%> statement"
-msgstr "`noreturn' olarak bildirilmiş işlev `return' deyimi içeriyor"
+msgstr "%<noreturn%> olarak bildirilmiş işlev %<return%> deyimi içeriyor"
-#: c-typeck.c:6383
-#, fuzzy
+#: c-typeck.c:6513
msgid "%<return%> with no value, in function returning non-void"
-msgstr "geridönüş değeri void olmayan işlevde `return' değer içermiyor"
+msgstr "dönüş değeri void olmayan işlevde %<return%> değer içermiyor"
-#: c-typeck.c:6390
-#, fuzzy
+#: c-typeck.c:6520
msgid "%<return%> with a value, in function returning void"
-msgstr "void dönüşlü işlevde `return' deyimi değer içeriyor"
+msgstr "void dönüşlü işlevde %<return%> değer içeriyor"
-#: c-typeck.c:6447
+#: c-typeck.c:6577
msgid "function returns address of local variable"
msgstr "işlev yerel değişkenin adresi ile dönüyor"
-#: c-typeck.c:6508 cp/semantics.c:880
+#: c-typeck.c:6638 cp/semantics.c:879
msgid "switch quantity not an integer"
msgstr "switch büyüklüğü bir tamsayı değil"
-#: c-typeck.c:6518
-#, fuzzy
+#: c-typeck.c:6649
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"
+msgstr "ISO C'de %<long%> switch ifadesi %<int%> türüne dönüştürülmez"
-#: c-typeck.c:6555 cp/parser.c:5942
+#: c-typeck.c:6685 cp/parser.c:6051
msgid "case label not within a switch statement"
msgstr "case etiketi bir switch deyimi içinde değil"
-#: c-typeck.c:6557
-#, fuzzy
+#: c-typeck.c:6687
msgid "%<default%> label not within a switch statement"
-msgstr "`default' etiketi bir switch deyimi içinde değil"
+msgstr "%<default%> etiketi bir switch deyimi içinde değil"
-#: c-typeck.c:6621
-#, fuzzy
+#: c-typeck.c:6751
msgid "%Hsuggest explicit braces to avoid ambiguous %<else%>"
-msgstr "%Hanlamca belirsiz `else' den kaçınmak için kaşlı ayraçlar önerilir"
+msgstr "%Hanlamca belirsiz %<else%> den kaçınmak için kaşlı ayraçlar önerilir"
-#: c-typeck.c:6631
+#: c-typeck.c:6761
msgid "%Hempty body in an if-statement"
msgstr "%Hif deyiminin gövdesi boş"
-#: c-typeck.c:6639
-#, fuzzy
+#: c-typeck.c:6769
msgid "%Hempty body in an else-statement"
-msgstr "else ifadesinin gövdesi boş"
+msgstr "%H else ifadesinin gövdesi boş"
-#: c-typeck.c:6730 cp/parser.c:6445
+#: c-typeck.c:6880 cp/parser.c:6553
msgid "continue statement not within a loop"
msgstr "continue deyimi bir döngü içinde değil"
-#: c-typeck.c:6747
+#: c-typeck.c:6900
msgid "%Hstatement with no effect"
msgstr "%Hdeyim etkisiz"
-#: c-typeck.c:6776
+#: c-typeck.c:6929
msgid "expression statement has incomplete type"
msgstr "ifade deyimi boş tür içeriyor"
-#: c-typeck.c:7099 c-typeck.c:7138
+#: c-typeck.c:7252 c-typeck.c:7291
msgid "division by zero"
msgstr "sıfırla bölme"
-#: c-typeck.c:7183 cp/typeck.c:2971
+#: c-typeck.c:7336 cp/typeck.c:2927
msgid "right shift count is negative"
msgstr "sağa kaydırma sayısı negatif"
-#: c-typeck.c:7190 cp/typeck.c:2977
+#: c-typeck.c:7343 cp/typeck.c:2933
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:7211 cp/typeck.c:2996
+#: c-typeck.c:7364 cp/typeck.c:2952
msgid "left shift count is negative"
msgstr "sola kaydırma sayısı negatif"
-#: c-typeck.c:7214 cp/typeck.c:2998
+#: c-typeck.c:7367 cp/typeck.c:2954
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:7231 cp/typeck.c:3033
+#: c-typeck.c:7384 cp/typeck.c:2989
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:7255 c-typeck.c:7262
-#, fuzzy
+#: c-typeck.c:7408 c-typeck.c:7415
msgid "ISO C forbids comparison of %<void *%> with function pointer"
-msgstr "ISO C `void *' ile işlev göstericisinin karşılaştırılmasına izin vermez"
+msgstr "ISO C %<void *%> ile işlev göstericisinin karşılaştırılmasına izin vermez"
-#: c-typeck.c:7266 c-typeck.c:7312
+#: c-typeck.c:7419 c-typeck.c:7465
msgid "comparison of distinct pointer types lacks a cast"
msgstr "belirgin gösterici türlerinin karşılaştırması bir tür dönüşümü gerektirir"
-#: c-typeck.c:7280 c-typeck.c:7285 c-typeck.c:7332 c-typeck.c:7337
+#: c-typeck.c:7433 c-typeck.c:7438 c-typeck.c:7485 c-typeck.c:7490
msgid "comparison between pointer and integer"
msgstr "gösterici türü ile tamsayı türü arasında karşılaştırma"
-#: c-typeck.c:7304
+#: c-typeck.c:7457
msgid "comparison of complete and incomplete pointers"
msgstr "tamamlanmış ve içi boş göstericilerin karşılaştırılması"
-#: c-typeck.c:7307
+#: c-typeck.c:7460
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C işlev göstericilerinin sıralı karşılaştırmalarına izin vermez"
-#: c-typeck.c:7320 c-typeck.c:7327
+#: c-typeck.c:7473 c-typeck.c:7480
msgid "ordered comparison of pointer with integer zero"
msgstr "tamsayı sıfır ile göstercinin sıralı karşılaştırması"
-#: c-typeck.c:7548
+#: c-typeck.c:7701
msgid "comparison between signed and unsigned"
msgstr "signed ile unsigned arasında karşılaştırma"
-#: c-typeck.c:7594 cp/typeck.c:3440
+#: c-typeck.c:7747 cp/typeck.c:3396
msgid "comparison of promoted ~unsigned with constant"
msgstr "sabitle yükseltgenmiş ~unsigned karşılaştırması"
-#: c-typeck.c:7602 cp/typeck.c:3448
+#: c-typeck.c:7755 cp/typeck.c:3404
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "unsigned ile ~unsigned'a yükseltgenmiş türlerin karşılaştırması"
-#: calls.c:1909
+#: calls.c:1934
msgid "function call has aggregate value"
msgstr "işlev çağrısı küme değeri içeriyor"
@@ -4031,7 +3646,7 @@ msgstr "verify_flow_info: kenar %i->%i %i sayısı yanlış"
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: %d. temel bloğun ardıl kenarı bozuk"
-#: cfghooks.c:165 cfgrtl.c:2048
+#: cfghooks.c:165 cfgrtl.c:2056
#, 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ış"
@@ -4042,9 +3657,9 @@ msgid "basic block %d pred edge is corrupted"
msgstr "%d. temel bloğun öncel kenarı bozuk"
#: cfghooks.c:185
-#, fuzzy, c-format
+#, c-format
msgid "its dest_idx should be %d, not %d"
-msgstr "%d nin önceli %d olmalı, %d değil"
+msgstr "onun dest_idx'i %d olmalı, %d değil"
#: cfghooks.c:214
#, c-format
@@ -4056,466 +3671,462 @@ msgid "verify_flow_info failed"
msgstr "verify_flow_info başarısız"
#: cfghooks.c:289
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support redirect_edge_and_branch."
-msgstr "%s %%n$ terim numaralama biçimlerini desteklemez"
+msgstr "%s, redirect_edge_and_branch'i desteklemez"
#: cfghooks.c:307
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support redirect_edge_and_branch_force."
-msgstr "%s %%n$ terim numaralama biçimlerini desteklemez"
+msgstr "%s redirect_edge_and_branch_force'u desteklemez."
#: cfghooks.c:325
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support split_block."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s split_block'u desteklemez."
#: cfghooks.c:361
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support move_block_after."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s move_block_after'ı desteklemez."
#: cfghooks.c:374
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support delete_basic_block."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s delete_basic_block'u desteklemez"
#: cfghooks.c:406
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support split_edge."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s split_edge'i desteklemez."
#: cfghooks.c:467
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support create_basic_block."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s create_basic_block'u desteklemez."
#: cfghooks.c:495
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support can_merge_blocks_p."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s can_merge_blocks_p'yi desteklemez."
#: cfghooks.c:506
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support predict_edge."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s predict_edge desteÄŸi vermiyor."
#: cfghooks.c:515
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support predicted_by_p."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s predicted_by_p desteÄŸi vermiyor."
#: cfghooks.c:529
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support merge_blocks."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s merge_blocks desteÄŸi vermiyor."
#: cfghooks.c:575
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support make_forwarder_block."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s make_forwarder_block desteÄŸi vermiyor."
#: cfghooks.c:680
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support can_duplicate_block_p."
-msgstr "multilib desteklenmiyor"
+msgstr "%s can_duplicate_block_p'yi desteklemez."
#: cfghooks.c:707
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support duplicate_block."
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s duplicate_block desteÄŸi vermiyor."
#: cfghooks.c:773
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support block_ends_with_call_p"
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s block_ends_with_call_p'yi desteklemiyor"
#: cfghooks.c:784
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support block_ends_with_condjump_p"
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s block_ends_with_condjump_p'yi desteklemiyor"
#: cfghooks.c:802
-#, fuzzy, c-format
+#, c-format
msgid "%s does not support flow_call_edges_add"
-msgstr "%s %s desteÄŸi vermiyor"
+msgstr "%s flow_call_edges_add desteÄŸi vermiyor"
-#: cfgloop.c:1304
+#: cfgloop.c:1312
#, c-format
msgid "Size of loop %d should be %d, not %d."
msgstr "%d. döngünün boyutu %d olmalı, %d değil."
-#: cfgloop.c:1321
+#: cfgloop.c:1329
#, c-format
msgid "Bb %d do not belong to loop %d."
msgstr "Bb %d %d. döngünün üyesi değil."
-#: cfgloop.c:1338
+#: cfgloop.c:1346
#, 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:1345
+#: cfgloop.c:1353
#, 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:1350
+#: cfgloop.c:1358
#, 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:1355
+#: cfgloop.c:1363
#, 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:1361
+#: cfgloop.c:1369
#, 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."
-#: cfgloop.c:1367
+#: cfgloop.c:1375
#, c-format
msgid "Loop %d's latch is marked as part of irreducible region."
msgstr "%d. döngünün saklayıcısı indirgenemez bölgenin parçası olarak imlenmiş."
-#: cfgloop.c:1400
+#: cfgloop.c:1408
#, c-format
msgid "Basic block %d should be marked irreducible."
msgstr "%d temel bloÄŸu indirgenemez olarak imlenmeli."
-#: cfgloop.c:1406
+#: cfgloop.c:1414
#, c-format
msgid "Basic block %d should not be marked irreducible."
msgstr "%d temel bloÄŸu indirgenemez olarak imlenmemeli."
-#: cfgloop.c:1414
+#: cfgloop.c:1422
#, c-format
msgid "Edge from %d to %d should be marked irreducible."
msgstr "%d den %d e kadar kenar indirgenemez olarak imlenmeli."
-#: cfgloop.c:1421
+#: cfgloop.c:1429
#, c-format
msgid "Edge from %d to %d should not be marked irreducible."
msgstr "%d den %d e kadar kenar indirgenemez olarak imlenmemeli."
-#: cfgloop.c:1456
+#: cfgloop.c:1464
#, c-format
msgid "Wrong single exit %d->%d recorded for loop %d."
msgstr ""
-#: cfgloop.c:1460
+#: cfgloop.c:1468
#, c-format
msgid "Right exit is %d->%d."
-msgstr ""
+msgstr "Doğru çıkış: %d->%d."
-#: cfgloop.c:1477
+#: cfgloop.c:1485
#, c-format
msgid "Single exit not recorded for loop %d."
msgstr ""
-#: cfgloop.c:1484
+#: cfgloop.c:1492
#, c-format
msgid "Loop %d should not have single exit (%d -> %d)."
msgstr ""
-#: cfgrtl.c:1940
+#: cfgrtl.c:1948
#, 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:1954
+#: cfgrtl.c:1962
#, 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:1966
+#: cfgrtl.c:1974
#, 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:1990
+#: cfgrtl.c:1998
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr "verify_flow_info: REG_BR_PROB ile cfg %wi %i eÅŸleÅŸmiyor"
-#: cfgrtl.c:2005
+#: cfgrtl.c:2013
#, c-format
msgid "Fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2038
#, 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:2038
+#: cfgrtl.c:2046
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr "bb %i'den çıkan dal kenarı çok fazla"
-#: cfgrtl.c:2043
+#: cfgrtl.c:2051
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr "koşulsuz jump %i den sonra ardcıl kenar"
-#: cfgrtl.c:2054
+#: cfgrtl.c:2062
#, 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:2059
+#: cfgrtl.c:2067
#, 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:2068
+#: cfgrtl.c:2076
#, 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:2080
+#: cfgrtl.c:2088
#, 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:2084
+#: cfgrtl.c:2092
#, 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:2098 cfgrtl.c:2108
+#: cfgrtl.c:2106 cfgrtl.c:2116
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK %d. blok için eksik"
-#: cfgrtl.c:2121
+#: cfgrtl.c:2129
#, 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:2131
+#: cfgrtl.c:2139
#, c-format
msgid "in basic block %d:"
msgstr "%d. temel blok içinde:"
-#: cfgrtl.c:2132
+#: cfgrtl.c:2140
msgid "flow control insn inside a basic block"
msgstr "akış kontrol komutu bir temel bloğun içinde"
-#: cfgrtl.c:2180
+#: cfgrtl.c:2188
#, c-format
msgid "missing barrier after block %i"
msgstr "%i. bloktan sonraki sınır eksik"
-#: cfgrtl.c:2193
+#: cfgrtl.c:2201
#, 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:2208
+#: cfgrtl.c:2210
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: ardcıl %i->%i yanlış"
-#: cfgrtl.c:2210
+#: cfgrtl.c:2212
msgid "wrong insn in the fallthru edge"
msgstr "ardcıl kenarda yanlış komut"
-#: cfgrtl.c:2227
+#: cfgrtl.c:2229
msgid "basic blocks not laid down consecutively"
msgstr "temel bloklar ardışık numaralı değil"
-#: cfgrtl.c:2252
+#: cfgrtl.c:2254
msgid "insn outside basic block"
msgstr "komut temel bloğun dışında"
-#: cfgrtl.c:2259
+#: cfgrtl.c:2261
msgid "return not followed by barrier"
msgstr "return'den sonra sınır gelmiyor"
-#: cfgrtl.c:2266
+#: cfgrtl.c:2268
#, 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)"
-#: cgraph.c:231
+#: cgraph.c:278
msgid "function body not available"
msgstr "işlev gövdesi yok"
-#: cgraph.c:233 cgraphunit.c:651
+#: cgraph.c:280 cgraphunit.c:661
msgid "redefined extern inline functions are not considered for inlining"
msgstr "yeniden tanımlanmış extern inline işlevler satıriçine alınma sırasında görmezden gelinir"
-#: cgraph.c:236 cgraphunit.c:656
+#: cgraph.c:283 cgraphunit.c:666
msgid "function not considered for inlining"
msgstr "işlev satıriçine alınma sırasında görmezden gelinir"
-#: cgraph.c:238 cgraphunit.c:654
+#: cgraph.c:285 cgraphunit.c:664
msgid "function not inlinable"
msgstr "işlev satıriçine alınabilir değil"
-#: cgraph.c:556
+#: cgraph.c:615
msgid "%D renamed after being referenced in assembly"
msgstr "makina dilinde referanslandıktan sonra %D yeniden isimlendirilmiş."
-#: cgraphunit.c:502
+#: cgraphunit.c:512
msgid "Shared call_expr:"
-msgstr ""
+msgstr "Paylaşımlı call_expr:"
-#: cgraphunit.c:508
-#, fuzzy
+#: cgraphunit.c:518
msgid "Edge points to wrong declaration:"
-msgstr "bir bildirimde birden fazla tür bidirilmiş"
+msgstr ""
-#: cgraphunit.c:517
+#: cgraphunit.c:527
msgid "Missing callgraph edge for call expr:"
msgstr ""
-#: cgraphunit.c:543
-#, fuzzy, c-format
+#: cgraphunit.c:553
+#, c-format
msgid "Aux field set for edge %s->%s"
-msgstr "etiket %s için (henüz) bir alan yok"
+msgstr ""
-#: cgraphunit.c:555
-#, fuzzy
+#: cgraphunit.c:565
msgid "Inlined_to pointer is wrong"
-msgstr "bölüm göstericisi yok"
+msgstr "Inlined_to göstericisi yanlış"
-#: cgraphunit.c:560
+#: cgraphunit.c:570
msgid "Multiple inline callers"
-msgstr ""
+msgstr "Çok sayıda satıriçi çağrısı"
-#: cgraphunit.c:567
+#: cgraphunit.c:577
msgid "Inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraphunit.c:573
+#: cgraphunit.c:583
msgid "Inlined_to pointer is set but no predecesors found"
msgstr ""
-#: cgraphunit.c:578
+#: cgraphunit.c:588
msgid "Inlined_to pointer reffers to itself"
msgstr ""
-#: cgraphunit.c:588
+#: cgraphunit.c:598
msgid "Node not found in DECL_ASSEMBLER_NAME hash"
msgstr ""
-#: cgraphunit.c:602
+#: cgraphunit.c:612
#, c-format
msgid "Edge %s->%s has no corresponding call_expr"
msgstr ""
-#: cgraphunit.c:613
-#, fuzzy
+#: cgraphunit.c:623
msgid "verify_cgraph_node failed."
-msgstr "verify_flow_info başarısız"
+msgstr "verify_cgraph_node başarısız"
-#: cgraphunit.c:797
-#, fuzzy
+#: cgraphunit.c:807
msgid "failed to reclaim unneeded function"
-msgstr "`%s' alanı bir işlev olarak bildirilmiş"
+msgstr ""
-#: cgraphunit.c:1184
+#: cgraphunit.c:1194
msgid "--param large-function-growth limit reached"
msgstr "--param large-function-growth sınırı aşıldı"
-#: cgraphunit.c:1221
+#: cgraphunit.c:1231
msgid "recursive inlining"
msgstr "içiçe satıriçine alma işlemi"
-#: cgraphunit.c:1386 cgraphunit.c:1638
+#: cgraphunit.c:1396 cgraphunit.c:1648
msgid "--param max-inline-insns-single limit reached"
msgstr "--param max-inline-insns-single sınırı aşıldı"
-#: cgraphunit.c:1410
+#: cgraphunit.c:1420
msgid "--param max-inline-insns-single limit reached after inlining into the callee"
msgstr "--param max-inline-insns-single sınırı çağrılanın içinde satıriçine alındıktan sonra aşıldı"
-#: cgraphunit.c:1460
+#: cgraphunit.c:1470
msgid "--param inline-unit-growth limit reached"
msgstr "--param inline-unit-growth sınırı aşıldı"
-#: cgraphunit.c:1809
+#: cgraphunit.c:1822
msgid "Nodes with no released memory found."
msgstr ""
-#: collect2.c:402 gcc.c:6744
-#, fuzzy, c-format
+#: collect2.c:402 gcc.c:6733
+#, c-format
msgid "internal gcc abort in %s, at %s:%d"
-msgstr "%2$s dosyasının %3$d. satırındaki %1$s işlevinde programdan çıkış"
+msgstr "%2$s dosyasının %3$d. satırındaki %1$s işlevinde dahili gcc çıkışı"
#: collect2.c:895
msgid "no arguments"
msgstr "argüman yok"
-#: collect2.c:1187
-#, fuzzy, c-format
+#: collect2.c:1194
+#, c-format
msgid "unknown demangling style '%s'"
-msgstr "'%s makina kipi bilinmiyor"
+msgstr ""
-#: collect2.c:1261 collect2.c:1409 collect2.c:1444
+#: collect2.c:1268 collect2.c:1416 collect2.c:1451
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1264 collect2.c:1414 collect2.c:1447
+#: collect2.c:1271 collect2.c:1421 collect2.c:1454
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1273
+#: collect2.c:1280
#, c-format
msgid "collect2 version %s"
msgstr "collect2 %s sürümü"
-#: collect2.c:1363
+#: collect2.c:1370
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d kurucu bulundu\n"
-#: collect2.c:1364
+#: collect2.c:1371
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d serbestleÅŸtirici bulundu\n"
-#: collect2.c:1365
+#: collect2.c:1372
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d çerçeve tablosu bulundu\n"
-#: collect2.c:1507
+#: collect2.c:1514
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s %d sinyali ile sonlandırıldı [%s]%s"
-#: collect2.c:1525
+#: collect2.c:1532
#, c-format
msgid "%s returned %d exit status"
msgstr "%s %d çıkış durumu ile sonuçlandı"
-#: collect2.c:1550
+#: collect2.c:1557
#, c-format
msgid "[cannot find %s]"
msgstr "[%s bulunamıyor]"
-#: collect2.c:1565
-#, fuzzy, c-format
+#: collect2.c:1572
+#, c-format
msgid "cannot find '%s'"
-msgstr "`%s' bulunamıyor"
+msgstr "'%s' bulunamıyor"
-#: collect2.c:1576 collect2.c:1579
+#: collect2.c:1583 collect2.c:1586
#, c-format
msgid "redirecting stdout: %s"
msgstr "standart çıktıya yönlendirme: %s"
-#: collect2.c:1618
+#: collect2.c:1625
#, c-format
msgid "[Leaving %s]\n"
msgstr "[%s bırakılıyor]\n"
-#: collect2.c:1838
+#: collect2.c:1845
#, c-format
msgid ""
"\n"
@@ -4524,55 +4135,53 @@ msgstr ""
"\n"
"write_c_file - çıktı ismi %s, önek %s\n"
-#: collect2.c:2042
-#, fuzzy
+#: collect2.c:2049
msgid "cannot find 'nm'"
-msgstr "`nm' bulunamıyor"
+msgstr "'nm' bulunamıyor"
-#: collect2.c:2052 collect2.c:2218
+#: collect2.c:2059 collect2.c:2225
msgid "pipe"
msgstr "veri yolu"
-#: collect2.c:2056 collect2.c:2222
+#: collect2.c:2063 collect2.c:2229
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2082 collect2.c:2248
+#: collect2.c:2089 collect2.c:2255
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2085 collect2.c:2088 collect2.c:2101 collect2.c:2251
-#: collect2.c:2254 collect2.c:2267
+#: collect2.c:2092 collect2.c:2095 collect2.c:2108 collect2.c:2258
+#: collect2.c:2261 collect2.c:2274
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2091 collect2.c:2257
+#: collect2.c:2098 collect2.c:2264
#, c-format
msgid "execv %s"
msgstr "execv %s"
-#: collect2.c:2145
+#: collect2.c:2152
#, c-format
msgid "init function found in object %s"
msgstr "init iÅŸlevi %s nesnesinde bulundu"
-#: collect2.c:2153
+#: collect2.c:2160
#, c-format
msgid "fini function found in object %s"
msgstr "fini iÅŸlevi %s nesnesinde bulundu"
-#: collect2.c:2176 collect2.c:2306
+#: collect2.c:2183 collect2.c:2313
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2209
-#, fuzzy
+#: collect2.c:2216
msgid "cannot find 'ldd'"
-msgstr "`ldd' bulunamıyor"
+msgstr "'ldd' bulunamıyor"
-#: collect2.c:2270
+#: collect2.c:2277
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -4580,32 +4189,32 @@ msgstr ""
"\n"
"kuruculu/yıkıcılı ldd çıktısı.\n"
-#: collect2.c:2285
+#: collect2.c:2292
#, c-format
msgid "dynamic dependency %s not found"
msgstr "%s dinamik bağımlılığı yok"
-#: collect2.c:2297
+#: collect2.c:2304
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "'%s' dinamik bağımlılığı açılamıyor"
-#: collect2.c:2456
+#: collect2.c:2463
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: bir COFF dosyası değil"
-#: collect2.c:2576
+#: collect2.c:2583
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: bir COFF dosyası olarak açılamıyor"
-#: collect2.c:2631
+#: collect2.c:2641
#, c-format
msgid "library lib%s not found"
msgstr "lib%s kitaplığı bulunamadı"
-#: combine.c:12382
+#: combine.c:12524
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -4616,7 +4225,7 @@ msgstr ""
";; %d başarı.\n"
"\n"
-#: combine.c:12391
+#: combine.c:12533
#, c-format
msgid ""
"\n"
@@ -4664,14 +4273,13 @@ msgid "can't convert value to a vector"
msgstr "değer bir vektöre dönüştürülemez"
#: coverage.c:168
-#, fuzzy, c-format
+#, c-format
msgid "%qs is not a gcov data file"
-msgstr "`%s' bir gcov veri dosyası değil"
+msgstr "%qs bir gcov veri dosyası değil"
#: coverage.c:179
-#, fuzzy
msgid "%qs is version %q.*s, expected version %q.*s"
-msgstr "%s sürümü `%.4s', umulan sürüm ise `%.4s'"
+msgstr "%qs sürümü %q.*s, umulan sürüm ise %q.*s"
#: coverage.c:259 coverage.c:267
#, c-format
@@ -4694,24 +4302,24 @@ msgid "cannot merge separate %s counters for function %u"
msgstr "ayrık %s sayaçları %u işlevi için katıştırılamaz"
#: coverage.c:296
-#, fuzzy, c-format
+#, c-format
msgid "%qs has overflowed"
-msgstr "`%s' taşmalı"
+msgstr "%qs üstten taşmalı"
#: coverage.c:296
-#, fuzzy, c-format
+#, c-format
msgid "%qs is corrupted"
-msgstr "`%s' bozulmuÅŸ"
+msgstr "%qs bozulmuÅŸ"
#: coverage.c:333
-#, fuzzy, c-format
+#, c-format
msgid "no coverage for function %qs found."
-msgstr "`%s' işlevi için saklayıcı yok."
+msgstr "%qs işlevi için sarmalayıcı yok."
#: coverage.c:341 coverage.c:349
-#, fuzzy, c-format
+#, c-format
msgid "coverage mismatch for function %qs while reading counter %qs."
-msgstr "'%2$s' sayacı okunurken '%1$s' işlevi için sarmalama çelişkisi."
+msgstr "%2$qs sayacı okunurken %1$qs işlevi için sarmalama çelişkisi."
#: coverage.c:532
#, c-format
@@ -4719,9 +4327,9 @@ msgid "cannot open %s"
msgstr "%s açılamıyor"
#: coverage.c:567
-#, fuzzy, c-format
+#, c-format
msgid "error writing %qs"
-msgstr "`%s' e yazarken hata"
+msgstr "%qs e yazarken hata"
#: cppspec.c:106
#, c-format
@@ -4732,7 +4340,7 @@ msgstr "\"%s\" önişlemci için geçerli bir seçenek değil"
msgid "too many input files"
msgstr "girdi dosyası sayısı çok fazla"
-#: cse.c:6784
+#: cse.c:6772
#, 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"
@@ -4743,9 +4351,8 @@ 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:228
-#, fuzzy
msgid "compilation terminated due to -Wfatal-errors.\n"
-msgstr "derleme sonlandırıldı.\n"
+msgstr "-Wfatal-errors seçeneğinden dolayı derleme sonlandırıldı.\n"
#: diagnostic.c:237
#, c-format
@@ -4772,9 +4379,9 @@ msgid "in %s, at %s:%d"
msgstr "%2$s dosyasının %3$d. satırındaki %1$s işlevinde"
#: dominance.c:834
-#, fuzzy, c-format
+#, c-format
msgid "dominator of %d status unknown"
-msgstr "%d nin önceli %d olmalı, %d değil"
+msgstr ""
#: dominance.c:836
#, c-format
@@ -4791,31 +4398,23 @@ msgstr ""
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s daha yazılmadı\n"
-#: emit-rtl.c:1215
-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:1242
-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:2303
+#: emit-rtl.c:2232
msgid "Invalid rtl sharing found in the insn"
msgstr "komutta geçersiz rtl paylaşımı bulundu"
-#: emit-rtl.c:2305
+#: emit-rtl.c:2234
msgid "Shared rtx"
msgstr "Paylaşımlı rtx"
-#: emit-rtl.c:2307
+#: emit-rtl.c:2236
msgid "Internal consistency failure"
-msgstr ""
+msgstr "Dahili bütünlük hatası"
-#: emit-rtl.c:3343
+#: emit-rtl.c:3301
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: emit_jump_insn gereken yerde emit_insn kullanılmış:\n"
-#: errors.c:133 java/jv-scan.c:294
+#: errors.c:133 java/jv-scan.c:272
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "%2$s dosyasının %3$d. satırındaki %1$s işlevinde programdan çıkış"
@@ -4825,15 +4424,14 @@ 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:2577
-#, fuzzy
msgid "argument of %<__builtin_eh_return_regno%> must be constant"
-msgstr "`__builtin_eh_return_regno' argümanı sabit olmalı"
+msgstr "%<__builtin_eh_return_regno%>'nun argümanı sabit olmalı"
#: except.c:2708
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return bu hedefte desteklenmiyor"
-#: explow.c:1355
+#: explow.c:1301
msgid "stack limits not supported on this target"
msgstr "bu hedefte yığın sınırları desteklenmiyor"
@@ -4846,9 +4444,8 @@ msgid "could not split insn"
msgstr "komut çatallanamadı"
#: final.c:2851
-#, fuzzy
msgid "invalid 'asm': "
-msgstr "geçersiz `asm': "
+msgstr "geçersiz 'asm': "
#: final.c:3034
msgid "nested assembly dialect alternatives"
@@ -4873,9 +4470,9 @@ msgid "invalid %%-code"
msgstr "%% kodu geçersiz"
#: final.c:3203
-#, fuzzy, c-format
+#, c-format
msgid "'%%l' operand isn't a label"
-msgstr "`%%l' terimi bir etiket deÄŸil"
+msgstr "'%%l' terimi bir etiket deÄŸil"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
@@ -4883,103 +4480,95 @@ msgstr "`%%l' terimi bir etiket deÄŸil"
#. handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5836
+#: final.c:3305 vmsdbgout.c:487 config/i386/i386.c:5931
#: config/pdp11/pdp11.c:1690
msgid "floating constant misused"
msgstr "gerçel sayı sabitler desteklenmiyor"
-#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:5914
+#: final.c:3361 vmsdbgout.c:544 config/i386/i386.c:6009
#: config/pdp11/pdp11.c:1737
msgid "invalid expression as operand"
msgstr "veri öğesi olarak ifade geçersiz"
-#: flow.c:495 flow.c:519 flow.c:541
-#, fuzzy
+#: flow.c:494 flow.c:518 flow.c:540
msgid "internal consistency failure"
-msgstr "dahili gcc çıkışı"
+msgstr "dahili bütünlük hatası"
-#: flow.c:1578
+#: flow.c:1689
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Önsöz/sonsöz komutlarını silmeye çalışır"
-#: fold-const.c:3186 fold-const.c:3197
+#: fold-const.c:3220 fold-const.c:3231
#, 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:4755 fold-const.c:4770
+#: fold-const.c:4789 fold-const.c:4804
#, c-format
msgid "comparison is always %d"
msgstr "karşılaştırma sonucu daima %d"
-#: fold-const.c:4899
-#, fuzzy
+#: fold-const.c:4933
msgid "%<or%> of unmatched not-equal tests is always 1"
-msgstr "eÅŸleÅŸmeyenlerin eÅŸitsizlik testlerininin `or' sonucu daima 1 dir"
+msgstr "eşleşmeyenlerin eşitsizlik sınamalarının %<or%> sonucu daima 1 dir"
-#: fold-const.c:4904
-#, fuzzy
+#: fold-const.c:4938
msgid "%<and%> of mutually exclusive equal-tests is always 0"
-msgstr "bağdaşmayanların eşitlik testlerinin `and' sonucu daima 0 dır"
+msgstr "bağdaşmayanların eşitlik sınamalarının %<and%> sonucu daima 0 dır"
-#: fold-const.c:9334
+#: fold-const.c:9870
msgid "fold check: original tree changed by fold"
msgstr "fold sınaması: özgün ağaç fold tarafından değiştirildi"
-#: function.c:831 varasm.c:1569
-#, fuzzy
+#: function.c:832 varasm.c:1584
msgid "%Jsize of variable %qD is too large"
-msgstr "%J `%D' değişkeni çok geniş"
+msgstr "%J %qD değişkeni çok geniş"
-#: function.c:1442
-#, fuzzy
+#: function.c:1443
msgid "impossible constraint in %<asm%>"
-msgstr "`asm' içindeki koşul mümkün değil"
+msgstr "%<asm%> içindeki koşul mümkün değil"
-#: function.c:3495
-#, fuzzy
+#: function.c:3633
msgid "%Jvariable %qD might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%J değişken `%D' `longjmp' ya da `vfork' tarafından taşırılmış olabilir"
+msgstr "%J değişken %qD %<longjmp%> ya da %<vfork%> tarafından taşırılmış olabilir"
-#: function.c:3516
-#, fuzzy
+#: function.c:3654
msgid "%Jargument %qD might be clobbered by %<longjmp%> or %<vfork%>"
-msgstr "%J argüman `%D' `longjmp' ya da `vfork' tarafından taşırılmış olabilir"
+msgstr "%J argüman %qD `%<longjmp%> ya da %<vfork%> tarafından taşırılmış olabilir"
-#: function.c:3907
+#: function.c:4045
msgid "function returns an aggregate"
msgstr "işlev bir küme ile dönüyor"
-#: function.c:4249
-#, fuzzy
+#: function.c:4368
msgid "%Junused parameter %qD"
-msgstr "%J parametre `%D' kullanılmamış"
+msgstr "%J parametre %qD kullanılmamış"
-#: gcc.c:1242
+#: gcc.c:1237
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "belirsiz kısaltma %s"
-#: gcc.c:1269
-#, fuzzy, c-format
+#: gcc.c:1264
+#, c-format
msgid "incomplete '%s' option"
-msgstr "tamamlanmamış `%s' seçeneği"
+msgstr "tamamlanmamış '%s' seçeneği"
-#: gcc.c:1280
-#, fuzzy, c-format
+#: gcc.c:1275
+#, c-format
msgid "missing argument to '%s' option"
-msgstr "`%s' seçeneğinin argümanı eksik"
+msgstr "'%s' seçeneğinin argümanı eksik"
-#: gcc.c:1293
-#, fuzzy, c-format
+#: gcc.c:1288
+#, c-format
msgid "extraneous argument to '%s' option"
-msgstr "`%s' seçeneğinde fazladan argüman"
+msgstr "'%s' seçeneğinde fazladan argüman"
-#: gcc.c:1637
+#: gcc.c:1632
msgid "Using built-in specs.\n"
msgstr "Yerleşik özellikler kullanılıyor.\n"
-#: gcc.c:1825
+#: gcc.c:1815
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -4988,42 +4577,42 @@ msgstr ""
"Özelik %s '%s' e ayarlanıyor\n"
"\n"
-#: gcc.c:1934
+#: gcc.c:1924
#, c-format
msgid "Reading specs from %s\n"
msgstr "Özellikler %s'den okunuyor\n"
-#: gcc.c:2030 gcc.c:2049
+#: gcc.c:2020 gcc.c:2039
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "specs %%include sözdizimi %ld karakterden sonra bozuk"
-#: gcc.c:2057
+#: gcc.c:2047
#, c-format
msgid "could not find specs file %s\n"
msgstr "özellik dosyası %s bulunamadı\n"
-#: gcc.c:2074 gcc.c:2082 gcc.c:2091 gcc.c:2100
+#: gcc.c:2064 gcc.c:2072 gcc.c:2081 gcc.c:2090
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs %%rename sözdizimi %ld karakterden sonra bozuk"
-#: gcc.c:2109
+#: gcc.c:2099
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "ismi değişecek specs %s özelliği yok"
-#: gcc.c:2116
+#: gcc.c:2106
#, 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:2121
+#: gcc.c:2111
#, c-format
msgid "rename spec %s to %s\n"
msgstr "spec %s ismi %s yapılıyor\n"
-#: gcc.c:2123
+#: gcc.c:2113
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5032,30 +4621,30 @@ msgstr ""
"özellik '%s'\n"
"\n"
-#: gcc.c:2136
+#: gcc.c:2126
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "%ld. karakterden sonra bilinmeyen specs %% komutu"
-#: gcc.c:2147 gcc.c:2160
+#: gcc.c:2137 gcc.c:2150
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "%ld. karakterden sonra özellikler dosyası bozuk"
-#: gcc.c:2213
+#: gcc.c:2203
msgid "spec file has no spec for linking"
msgstr "özellik dosyası birleştirilecek özellik içermiyor"
-#: gcc.c:2635
-#, fuzzy, c-format
+#: gcc.c:2625
+#, c-format
msgid "system path '%s' is not absolute"
-msgstr "rezervasyon `%s' kullanılmamış"
+msgstr "sistem yolu '%s' mutlak deÄŸil"
-#: gcc.c:2698
+#: gcc.c:2688
msgid "-pipe not supported"
msgstr "-pipe desteklenmiyor"
-#: gcc.c:2760
+#: gcc.c:2750
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5063,7 +4652,7 @@ msgstr ""
"\n"
"Haydi!? (e / h) "
-#: gcc.c:2885
+#: gcc.c:2875
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5074,69 +4663,69 @@ msgstr ""
"Lütfen ayrıntılı bir hata raporu hazırlayın.\n"
"İşlemler için %s adresine bakın."
-#: gcc.c:2903
+#: gcc.c:2893
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3033
+#: gcc.c:3023
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Kullanımı: %s [seçenekler] DOSYA...\n"
-#: gcc.c:3034
+#: gcc.c:3024
msgid "Options:\n"
msgstr "Seçenekler:\n"
-#: gcc.c:3036
+#: gcc.c:3026
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:3037
+#: gcc.c:3027
msgid " --help Display this information\n"
msgstr " --help Bu yardım iletisini gösterir\n"
-#: gcc.c:3038
+#: gcc.c:3028
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:3040
+#: gcc.c:3030
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:3041
+#: gcc.c:3031
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:3042
+#: gcc.c:3032
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Derleyicinin sürümünü gösterir\n"
-#: gcc.c:3043
+#: gcc.c:3033
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Derleyicilerin hedef işlemcisini gösterir\n"
-#: gcc.c:3044
+#: gcc.c:3034
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:3045
+#: gcc.c:3035
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:3046
+#: gcc.c:3036
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:3047
+#: gcc.c:3037
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:3048
+#: gcc.c:3038
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:3049
+#: gcc.c:3039
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5144,100 +4733,101 @@ 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:3052
+#: gcc.c:3042
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:3053
+#: gcc.c:3043
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr ""
" -Wa,<seçenekler> Virgül ayraçlı <seçenekler> listesini çeviriciye\n"
" gönderir\n"
-#: gcc.c:3054
+#: gcc.c:3044
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:3055
+#: gcc.c:3045
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:3056
+#: gcc.c:3046
msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
msgstr " -Xassembler <arg> Çeviriciye <arg>ümanı gönderir\n"
-#: gcc.c:3057
+#: gcc.c:3047
msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
msgstr " -Xpreprocessor <arg> Önişlemciye <arg>ümanı gönderir\n"
-#: gcc.c:3058
+#: gcc.c:3048
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> Bağlayıcıya <arg>ümanı gönderir\n"
-#: gcc.c:3059
-#, fuzzy
+#: gcc.c:3049
msgid " -combine Pass multiple source files to compiler at once\n"
-msgstr " -o DOSYA Çıktıyı DOSYAya yazar\n"
+msgstr ""
+" -combine Çok sayıda kaynak dosyasını derleyiciye bir defada\n"
+" aktarır\n"
-#: gcc.c:3060
+#: gcc.c:3050
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Aracı dosyaları silmez\n"
-#: gcc.c:3061
+#: gcc.c:3051
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Aracı dosyalardan ziyade veri yolları kullanılır\n"
-#: gcc.c:3062
+#: gcc.c:3052
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Alt işlemlerin çalıştırılma zamanlaması\n"
-#: gcc.c:3063
+#: gcc.c:3053
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:3064
+#: gcc.c:3054
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:3065
+#: gcc.c:3055
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:3066
+#: gcc.c:3056
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:3067
+#: gcc.c:3057
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:3068
+#: gcc.c:3058
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Derleyicinin çalıştırdığı programları gösterir\n"
-#: gcc.c:3069
+#: gcc.c:3059
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:3070
+#: gcc.c:3060
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:3071
+#: gcc.c:3061
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Sadece derleme; çevirme ve bağlama yapılmaz\n"
-#: gcc.c:3072
+#: gcc.c:3062
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Derler ve çevirir ancak bağlamaz\n"
-#: gcc.c:3073
+#: gcc.c:3063
msgid " -o <file> Place the output into <file>\n"
msgstr " -o DOSYA Çıktıyı DOSYAya yazar\n"
-#: gcc.c:3074
+#: gcc.c:3064
msgid ""
" -x <language> Specify the language of the following input files\n"
" Permissible languages include: c c++ assembler none\n"
@@ -5249,7 +4839,7 @@ msgstr ""
" 'none' dilin girdi dosyasının uzantısından\n"
" saptanacağı öntanımlı durum belirtilmiş olur\n"
-#: gcc.c:3081
+#: gcc.c:3071
#, c-format
msgid ""
"\n"
@@ -5265,28 +4855,28 @@ msgstr ""
"Çeviri hatalarını <gnu-tr-u12a@lists.sourceforge.net> adresine bildiriniz.\n"
"\n"
-#: gcc.c:3201
-#, fuzzy, c-format
+#: gcc.c:3191
+#, c-format
msgid "'-%c' option must have argument"
-msgstr "`-%c' seçeneğinde argüman eksik"
+msgstr "'-%c' seçeneğinde argüman eksik"
-#: gcc.c:3223
-#, fuzzy, c-format
+#: gcc.c:3213
+#, c-format
msgid "couldn't run '%s': %s"
-msgstr "`%s' çalıştırılamadı: %s"
+msgstr "'%s' çalıştırılamadı: %s"
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3408
+#: gcc.c:3398
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3410 gcov.c:412 java/gjavah.c:2368 java/jcf-dump.c:916
+#: gcc.c:3400 gcov.c:412 java/gjavah.c:2376 java/jcf-dump.c:916
#: java/jv-scan.c:128
msgid "(C)"
msgstr "©"
-#: gcc.c:3411 java/gjavah.c:2369 java/jcf-dump.c:917 java/jv-scan.c:129
+#: gcc.c:3401 java/gjavah.c:2377 java/jcf-dump.c:917 java/jv-scan.c:129
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5297,184 +4887,176 @@ msgstr ""
"Hiçbir garantisi yoktur; hatta SATILABİLİRLİĞİ veya ŞAHSİ KULLANIMINIZA\n"
"UYGUNLUĞU için bile garanti verilmez.\n"
-#: gcc.c:3512
-#, fuzzy
+#: gcc.c:3502
msgid "argument to '-Xlinker' is missing"
-msgstr "`-Xlinker' için argüman belirtilmemiş"
+msgstr "'-Xlinker' için argüman belirtilmemiş"
-#: gcc.c:3520
-#, fuzzy
+#: gcc.c:3510
msgid "argument to '-Xpreprocessor' is missing"
-msgstr "`-Xpreprocessor' için argüman belirtilmemiş"
+msgstr "'-Xpreprocessor' için argüman belirtilmemiş"
-#: gcc.c:3527
-#, fuzzy
+#: gcc.c:3517
msgid "argument to '-Xassembler' is missing"
-msgstr "`-Xassembler' için argüman belirtilmemiş"
+msgstr "'-Xassembler' için argüman belirtilmemiş"
-#: gcc.c:3534
-#, fuzzy
+#: gcc.c:3524
msgid "argument to '-l' is missing"
-msgstr "`-l' için argüman belirtilmemiş"
+msgstr "'-l' için argüman belirtilmemiş"
-#: gcc.c:3555
-#, fuzzy
+#: gcc.c:3545
msgid "argument to '-specs' is missing"
-msgstr "`-specs' için argüman belirtilmemiş"
+msgstr "'-specs' için argüman belirtilmemiş"
-#: gcc.c:3569
-#, fuzzy
+#: gcc.c:3559
msgid "argument to '-specs=' is missing"
-msgstr "`-specs=' için argüman belirtilmemiş"
+msgstr "'-specs=' için argüman belirtilmemiş"
-#: gcc.c:3606
-#, fuzzy, c-format
+#: gcc.c:3596
+#, c-format
msgid "'-%c' must come at the start of the command line"
-msgstr "`-%c' komut satırının başında olmalı"
+msgstr "'-%c' komut satırının başında olmalı"
-#: gcc.c:3615
-#, fuzzy
+#: gcc.c:3605
msgid "argument to '-B' is missing"
-msgstr "`-B' için argüman belirtilmemiş"
+msgstr "'-B' için argüman belirtilmemiş"
-#: gcc.c:3788
+#: gcc.c:3778
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "Uyarı: -save-temps belirtildiğinden -pipe yoksayıldı"
-#: gcc.c:3792
+#: gcc.c:3782
msgid "warning: -pipe ignored because -time specified"
msgstr "Uyarı: -time belirtildiğinden -pipe yoksayıldı"
-#: gcc.c:4004
-#, fuzzy
+#: gcc.c:3994
msgid "argument to '-x' is missing"
-msgstr "`-x' için argüman belirtilmemiş"
+msgstr "'-x' için argüman belirtilmemiş"
-#: gcc.c:4032
-#, fuzzy, c-format
+#: gcc.c:4022
+#, c-format
msgid "argument to '-%s' is missing"
-msgstr "`-%s' için argüman belirtilmemiş"
+msgstr "'-%s' için argüman belirtilmemiş"
-#: gcc.c:4093
-#, fuzzy, c-format
+#: gcc.c:4083
+#, c-format
msgid "warning: '-x %s' after last input file has no effect"
-msgstr "Uyarı: son girdi dosyasından sonraki `-x %s' etkisiz"
+msgstr "Uyarı: son girdi dosyasından sonraki '-x %s' etkisiz"
-#: gcc.c:4370
+#: gcc.c:4360
#, c-format
msgid "switch '%s' does not start with '-'"
-msgstr ""
+msgstr "switch '%s' '-' ile başlamıyor"
-#: gcc.c:4597
+#: gcc.c:4587
#, c-format
msgid "spec '%s' invalid"
-msgstr ""
+msgstr "spec '%s' geçersiz"
-#: gcc.c:4663
+#: gcc.c:4653
#, c-format
msgid "%s\n"
msgstr "%s\n"
-#: gcc.c:4736
-#, fuzzy, c-format
+#: gcc.c:4726
+#, c-format
msgid "spec '%s' has invalid '%%0%c'"
-msgstr "`%s' bit alanı geçersiz tür içeriyor"
+msgstr "spec '%s' geçersiz '%%0%c' içeriyor"
-#: gcc.c:4933
-#, fuzzy, c-format
+#: gcc.c:4923
+#, c-format
msgid "spec '%s' has invalid '%%W%c"
-msgstr "`%s' bit alanı geçersiz tür içeriyor"
+msgstr "spec '%s' geçersiz '%%W%c içeriyor"
-#: gcc.c:4964
-#, fuzzy, c-format
+#: gcc.c:4954
+#, c-format
msgid "spec '%s' has invalid '%%x%c'"
-msgstr "`%s' bit alanı geçersiz tür içeriyor"
+msgstr "spec '%s' geçersiz '%%x%c' içeriyor"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5176
+#: gcc.c:5149
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "özellik aksaması: '%%*' kalıp eşleştirerek ilklendirilemedi"
-#: gcc.c:5185
+#: gcc.c:5158
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "Uyarı: spec'lerde %%[ işleci artık kullanılmıyor"
-#: gcc.c:5203
+#: gcc.c:5176
#, 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:5266
+#: gcc.c:5239
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "Özellik aksaması: özellik seçeneği '%c' anlaşılamadı"
-#: gcc.c:5345
-#, fuzzy, c-format
+#: gcc.c:5318
+#, c-format
msgid "unknown spec function '%s'"
-msgstr "bilinmeyen `%s' spec iÅŸlevi"
+msgstr "bilinmeyen '%s' spec iÅŸlevi"
-#: gcc.c:5364
-#, fuzzy, c-format
+#: gcc.c:5337
+#, c-format
msgid "error in args to spec function '%s'"
-msgstr "`%s' spec işlevi için argümanlar hatalı"
+msgstr "'%s' spec işlevi için argümanlar hatalı"
-#: gcc.c:5412
+#: gcc.c:5385
msgid "malformed spec function name"
msgstr "bozuk spec iÅŸlevi ismi"
#. )
-#: gcc.c:5415
+#: gcc.c:5388
msgid "no arguments for spec function"
msgstr "spec işlevi için argüman belirtilmedi"
-#: gcc.c:5434
+#: gcc.c:5407
msgid "malformed spec function arguments"
msgstr "belirtim işlevi argümanları bozuk"
-#: gcc.c:5657
+#: gcc.c:5646
#, c-format
msgid "braced spec '%s' is invalid at '%c'"
-msgstr ""
+msgstr "kaşlı ayraçlı spec '%s' '%c'de geçersiz"
-#: gcc.c:5745
+#: gcc.c:5734
#, c-format
msgid "braced spec body '%s' is invalid"
-msgstr ""
+msgstr "kaşlı ayraçlı spec gövdesi '%s' geçersiz"
-#: gcc.c:6171
+#: gcc.c:6160
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
msgstr "belirtim başarısızlığı: SYSROOT_SUFFIX_SPEC için argüman sayısı birden fazla."
-#: gcc.c:6181
+#: gcc.c:6170
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
msgstr "belirtim başarısızlığı: SYSROOT_HEADERS_SUFFIX_SPEC için argüman sayısı birden fazla.."
-#: gcc.c:6274
-#, fuzzy, c-format
+#: gcc.c:6263
+#, c-format
msgid "unrecognized option '-%s'"
-msgstr "`-%s' seçeneği bilinmiyor"
+msgstr "'-%s' seçeneği bilinmiyor"
-#: gcc.c:6280
+#: gcc.c:6269
#, c-format
msgid "install: %s%s\n"
msgstr "kurulum: %s%s\n"
-#: gcc.c:6281
+#: gcc.c:6270
#, c-format
msgid "programs: %s\n"
msgstr "programlar: %s\n"
-#: gcc.c:6282
+#: gcc.c:6271
#, c-format
msgid "libraries: %s\n"
msgstr "kitaplıklar: %s\n"
-#: gcc.c:6339
+#: gcc.c:6328
#, c-format
msgid ""
"\n"
@@ -5483,76 +5065,81 @@ msgstr ""
"\n"
"Hata raporlama işlemleri için:\n"
-#: gcc.c:6355
+#: gcc.c:6344
+#, c-format
+msgid "Target: %s\n"
+msgstr "Hedef: %s\n"
+
+#: gcc.c:6345
#, c-format
msgid "Configured with: %s\n"
msgstr ""
"%s\n"
"seçenekleriyle yapılandırıldı.\n"
-#: gcc.c:6369
+#: gcc.c:6359
#, c-format
msgid "Thread model: %s\n"
msgstr "Evre modeli: %s\n"
-#: gcc.c:6380
+#: gcc.c:6370
#, c-format
msgid "gcc version %s\n"
msgstr "gcc %s sürümü\n"
-#: gcc.c:6382
+#: gcc.c:6372
#, 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:6390
+#: gcc.c:6380
msgid "no input files"
msgstr "girdi dosyası yok"
-#: gcc.c:6461 gcc.c:6524
+#: gcc.c:6451 gcc.c:6514
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s derleyici bu sitemde kurulu deÄŸil"
-#: gcc.c:6470
-#, fuzzy, c-format
+#: gcc.c:6460
+#, c-format
msgid "spec '%s' is invalid"
-msgstr "typedef `%s' ilklendirimiÅŸ"
+msgstr "spec '%s' geçersiz"
-#: gcc.c:6607
+#: gcc.c:6596
#, 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:6647
+#: gcc.c:6636
#, c-format
msgid "language %s not recognized"
msgstr "dil %s tanınmıyor"
-#: gcc.c:6718
+#: gcc.c:6707
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: gcc.c:6938
-#, fuzzy, c-format
+#: gcc.c:6927
+#, c-format
msgid "multilib spec '%s' is invalid"
-msgstr "typedef `%s' ilklendirimiÅŸ"
+msgstr "multilib spec '%s' geçersiz"
-#: gcc.c:7130
-#, fuzzy, c-format
+#: gcc.c:7119
+#, c-format
msgid "multilib exclusions '%s' is invalid"
-msgstr "birleşik yapı `%T' içindeki çoklu alanlar ilklendirildi"
+msgstr ""
-#: gcc.c:7188 gcc.c:7329
-#, fuzzy, c-format
+#: gcc.c:7177 gcc.c:7318
+#, c-format
msgid "multilib select '%s' is invalid"
-msgstr "şablon argümanı %d geçersiz"
+msgstr ""
-#: gcc.c:7367
-#, fuzzy, c-format
+#: gcc.c:7356
+#, c-format
msgid "multilib exclusion '%s' is invalid"
-msgstr "birleşik yapı `%T' içindeki çoklu alanlar ilklendirildi"
+msgstr ""
#: gcov.c:385
msgid ""
@@ -5660,19 +5247,19 @@ msgid "\n"
msgstr "\n"
#: gcov.c:540
-#, fuzzy, c-format
+#, c-format
msgid "%s:creating '%s'\n"
-msgstr "%s: `%s' oluÅŸturuluyor\n"
+msgstr "%s: '%s' oluÅŸturuluyor\n"
#: gcov.c:544
-#, fuzzy, c-format
+#, c-format
msgid "%s:error writing output file '%s'\n"
-msgstr "%s: çıktı dosyası `%s' yazılırken hata.\n"
+msgstr "%s: çıktı dosyası '%s' yazılırken hata.\n"
#: gcov.c:549
-#, fuzzy, c-format
+#, c-format
msgid "%s:could not open output file '%s'\n"
-msgstr "%s: %s çıktı dosyası açılamadı.\n"
+msgstr "%s: çıktı dosyası '%s' açılamadı\n"
#: gcov.c:700
#, c-format
@@ -5685,14 +5272,14 @@ msgid "%s:not a gcov graph file\n"
msgstr "%s: bir gcov graph dosyası değil\n"
#: gcov.c:719
-#, fuzzy, c-format
+#, c-format
msgid "%s:version '%.4s', prefer '%.4s'\n"
-msgstr "%s: `%.4s' sürümü, tercih edilen ise `%.4s'\n"
+msgstr "%s: '%.4s' sürümü, tercih edilen ise '%.4s'\n"
#: gcov.c:771
-#, fuzzy, c-format
+#, c-format
msgid "%s:already seen blocks for '%s'\n"
-msgstr "%s: `%s' için bloklar zaten görüldü\n"
+msgstr "%s: '%s' için bloklar zaten görüldü\n"
#: gcov.c:889 gcov.c:1045
#, c-format
@@ -5710,9 +5297,9 @@ msgid "%s:not a gcov data file\n"
msgstr "%s: bir gcov veri dosyası değil\n"
#: gcov.c:981
-#, fuzzy, c-format
+#, c-format
msgid "%s:version '%.4s', prefer version '%.4s'\n"
-msgstr "%s: `%.4s' sürümü, tercih edilen sürüm `%.4s'\n"
+msgstr "%s: '%.4s' sürümü, tercih edilen sürüm '%.4s'\n"
#: gcov.c:987
#, c-format
@@ -5720,14 +5307,14 @@ msgid "%s:stamp mismatch with graph file\n"
msgstr "%s: zaman damgası çizge dosyası ile çelişiyor\n"
#: gcov.c:1013
-#, fuzzy, c-format
+#, c-format
msgid "%s:unknown function '%u'\n"
-msgstr "%s: bilinmeyen `%u' iÅŸlevi\n"
+msgstr "%s: bilinmeyen iÅŸlev '%u'\n"
#: gcov.c:1026
-#, fuzzy, c-format
+#, c-format
msgid "%s:profile mismatch for '%s'\n"
-msgstr "%s: `%s' için profil uyumsuz\n"
+msgstr "%s: '%s' için profil uyumsuz\n"
#: gcov.c:1045
#, c-format
@@ -5735,29 +5322,29 @@ msgid "%s:overflowed\n"
msgstr "%s:taşma hatası\n"
#: gcov.c:1069
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' lacks entry and/or exit blocks\n"
-msgstr "%s:`%s' girdiye ya da çıkış bloklarına ihtiyaç duyuyor\n"
+msgstr "%s:'%s' girdiye ya da çıkış bloklarına ihtiyaç duyuyor\n"
#: gcov.c:1074
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' has arcs to entry block\n"
-msgstr "%s:`%s' girdi bloklarına arc'lara sahip\n"
+msgstr "%s:'%s' girdi bloklarına arc'lara sahip\n"
#: gcov.c:1082
-#, fuzzy, c-format
+#, c-format
msgid "%s:'%s' has arcs from exit block\n"
-msgstr "%s:`%s' çıkış bloklarından arc'lara sahip\n"
+msgstr "%s:'%s' çıkış bloklarından arc'lara sahip\n"
#: gcov.c:1290
-#, fuzzy, c-format
+#, c-format
msgid "%s:graph is unsolvable for '%s'\n"
-msgstr "%s:çizge `%s' için çözümlenebilir değil\n"
+msgstr "%s:çizge '%s' için çözümlenebilir değil\n"
#: gcov.c:1370
-#, fuzzy, c-format
+#, c-format
msgid "%s '%s'\n"
-msgstr "%s `%s'\n"
+msgstr "%s '%s'\n"
#: gcov.c:1373
#, c-format
@@ -5765,9 +5352,8 @@ msgid "Lines executed:%s of %d\n"
msgstr "Çalıştırılan satırlar:%s / %d\n"
#: gcov.c:1377
-#, fuzzy
msgid "No executable lines\n"
-msgstr "Çalıştırılacak satır yok"
+msgstr "Çalıştırılacak satır yok\n"
#: gcov.c:1383
#, c-format
@@ -5793,9 +5379,9 @@ msgid "No calls\n"
msgstr "Çağrı yok\n"
#: gcov.c:1540
-#, fuzzy, c-format
+#, c-format
msgid "%s:no lines for '%s'\n"
-msgstr "%s: `%s' için satır yok\n"
+msgstr "%s: '%s' için satır yok\n"
#: gcov.c:1735
#, c-format
@@ -5833,32 +5419,32 @@ msgid "%s:cannot open source file\n"
msgstr "%s: kaynak dosyası açılamıyor\n"
#: gcov.c:1799
-#, fuzzy, c-format
+#, c-format
msgid "%s:source file is newer than graph file '%s'\n"
-msgstr "%s: kaynak dosya, `%s' dosyasından daha yeni\n"
+msgstr "%s: kaynak dosya, '%s' çizge dosyasından daha yeni\n"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:711
+#: gcse.c:689
msgid "GCSE disabled"
msgstr "GCSE iptal edildi"
#. Return if there's nothing to do, or it is too expensive.
-#: gcse.c:6536
+#: gcse.c:6474
msgid "jump bypassing disabled"
msgstr "jump kestirmesi iptal edildi"
-#: gcse.c:6597
+#: gcse.c:6535
#, c-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr "%s: %d temel blok ve %d kenar/temel blok"
-#: gcse.c:6610
+#: gcse.c:6548
#, c-format
msgid "%s: %d basic blocks and %d registers"
msgstr "%s: %d temel blok ve %d yazmaç"
#: ggc-common.c:397 ggc-common.c:405 ggc-common.c:473 ggc-common.c:494
-#: ggc-page.c:2203 ggc-page.c:2235 ggc-page.c:2242 ggc-zone.c:1582
+#: ggc-page.c:2209 ggc-page.c:2240 ggc-page.c:2247 ggc-zone.c:1582
#: ggc-zone.c:1588 ggc-zone.c:1597
#, c-format
msgid "can't write PCH file: %m"
@@ -5875,7 +5461,7 @@ msgid "can't write padding to PCH file: %m"
msgstr "PCH dosyasına adımlama yazılamıyor: %m"
#: ggc-common.c:550 ggc-common.c:558 ggc-common.c:565 ggc-common.c:568
-#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2329 ggc-zone.c:1607
+#: ggc-common.c:578 ggc-common.c:581 ggc-page.c:2334 ggc-zone.c:1607
#, c-format
msgid "can't read PCH file: %m"
msgstr "PCH dosyası okunamıyor: %m"
@@ -5884,41 +5470,40 @@ msgstr "PCH dosyası okunamıyor: %m"
msgid "had to relocate PCH"
msgstr "PCH'a yeniden konumlanabilir"
-#: ggc-page.c:1448
+#: ggc-page.c:1454
#, c-format
msgid "open /dev/zero: %m"
msgstr "/dev/zero açık: %m"
-#: ggc-page.c:2220 ggc-page.c:2226
+#: ggc-page.c:2225 ggc-page.c:2231
msgid "can't write PCH file"
msgstr "PCH dosyasına yazılamıyor"
#: gimple-low.c:203
-#, fuzzy
msgid "unexpected node"
-msgstr "Beklenmeyen terim"
+msgstr "beklenmeyen düğüm"
-#: gimplify.c:3137
-#, fuzzy, c-format
+#: gimplify.c:3317
+#, c-format
msgid "invalid lvalue in asm output %d"
-msgstr "asm deyiminde geçersiz sol taraf"
+msgstr "asm çıktısı %d içinde geçersiz sol değer"
-#: gimplify.c:3185
-#, fuzzy, c-format
+#: gimplify.c:3364
+#, c-format
msgid "memory input %d is not directly addressable"
-msgstr "çıktı numarası %d doğrudan adreslenebilir değil"
+msgstr "bellek girdisi %d doÄŸrudan adreslenebilir deÄŸil"
-#: gimplify.c:4032
+#: gimplify.c:4219
msgid "gimplification failed"
msgstr ""
-#: global.c:373 global.c:386 global.c:400
+#: global.c:371 global.c:384 global.c:398
#, c-format
msgid "%s cannot be used in asm here"
msgstr "%s burada asm içinde kullanılamaz"
-#: graph.c:403 passes.c:131 java/jcf-parse.c:1040 java/jcf-parse.c:1180
-#: java/lex.c:1842 objc/objc-act.c:550
+#: graph.c:403 passes.c:131 java/jcf-parse.c:1047 java/jcf-parse.c:1194
+#: java/lex.c:1846 objc/objc-act.c:552
#, c-format
msgid "can't open %s: %m"
msgstr "%s açılamıyor: %m"
@@ -5931,26 +5516,26 @@ msgstr "fix_sched_param: bilinmeyen parametre: %s"
#. Opening quotation mark.
#: intl.c:58
msgid "`"
-msgstr ""
+msgstr "'"
#. Closing quotation mark.
#: intl.c:61
msgid "'"
-msgstr ""
+msgstr "'"
#: langhooks.c:516
msgid "At top level:"
msgstr "Üst düzeyde:"
#: langhooks.c:521
-#, fuzzy, c-format
+#, c-format
msgid "In member function %qs:"
-msgstr "Ãœye iÅŸlev `%s':"
+msgstr "%qs üye işlevinde :"
#: langhooks.c:525
-#, fuzzy, c-format
+#, c-format
msgid "In function %qs:"
-msgstr "`%s' iÅŸlevinde:"
+msgstr "%qs iÅŸlevinde:"
#. What to print when a switch has no documentation.
#: opts.c:89
@@ -5978,72 +5563,72 @@ msgstr "\"%s\" için argüman sıfır ya da pozitif bir tamsayı olmalı"
msgid "unrecognized command line option \"%s\""
msgstr "tanınmayan komut satırı seçeneği \"%s\""
-#: opts.c:632
+#: opts.c:634
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized seçeneği -O olmaksızın desteklenmiyor"
-#: opts.c:646
+#: opts.c:648
msgid "-freorder-blocks-and-partition does not work with exceptions"
-msgstr ""
+msgstr "-freorder-blocks-and-partition olağandışılıklarla çalışmaz"
-#: opts.c:659
+#: opts.c:661
msgid "-freorder-blocks-and-partition does not work with -g (currently)"
-msgstr ""
+msgstr "-freorder-blocks-and-partition -g ile çalışmaz (şimdilik)"
-#: opts.c:820
-#, fuzzy, c-format
+#: opts.c:821
+#, c-format
msgid "structure alignment must be a small power of two, not %d"
-msgstr "hizalama ikinin küçük bir üssü olmalı %d değil"
+msgstr "yapı hizalama ikinin küçük bir üssü olmalı %d değil"
-#: opts.c:885
-#, fuzzy, c-format
+#: opts.c:886
+#, c-format
msgid "unrecognised visibility value \"%s\""
-msgstr "yazmaç ismi \"%s\" bilinmiyor"
+msgstr "visibility deÄŸeri \"%s\" bilinmiyor"
-#: opts.c:937
+#: opts.c:938
#, c-format
msgid "unrecognized register name \"%s\""
msgstr "yazmaç ismi \"%s\" bilinmiyor"
-#: opts.c:957
+#: opts.c:962
#, c-format
msgid "unknown tls-model \"%s\""
msgstr "\"%s\" tls-modeli bilinmiyor"
-#: opts.c:1032
+#: opts.c:1037
#, c-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr "%s: --param seçeneğinin argümanları İSİM=DEĞER biçiminde olmalı"
-#: opts.c:1037
-#, fuzzy, c-format
+#: opts.c:1042
+#, c-format
msgid "invalid --param value %qs"
-msgstr "--param değeri `%s' geçersiz"
+msgstr "--param değeri %qs geçersiz"
-#: opts.c:1133
+#: opts.c:1139
msgid "target system does not support debug output"
msgstr "hedef sistem hata ayıklama çıktısını desteklemiyor"
-#: opts.c:1140
+#: opts.c:1146
#, c-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr "\"%s\" hata ayıklama biçimi önceki seçimle çelişiyor"
-#: opts.c:1156
+#: opts.c:1162
#, c-format
msgid "unrecognised debug output level \"%s\""
msgstr "hata ayılama çıktı seviyesi \"%s\" bilinmiyor"
-#: opts.c:1158
+#: opts.c:1164
#, c-format
msgid "debug output level %s is too high"
msgstr "hata ayıklama çıktılama seviyesi %s çok yüksek"
-#: opts.c:1177
+#: opts.c:1183
msgid "The following options are language-independent:\n"
msgstr "Bu seçenekler dile bağımlıdır:\n"
-#: opts.c:1184
+#: opts.c:1190
#, c-format
msgid ""
"The %s front end recognizes the following options:\n"
@@ -6052,17 +5637,27 @@ msgstr ""
"%s önalanı bu seçenekleri tanır:\n"
"\n"
-#: opts.c:1198
+#: opts.c:1204
msgid "The --param option recognizes the following as parameters:\n"
msgstr "--param seçeneğinde belirtilebilecek parametreler:\n"
+#: params.c:72
+#, c-format
+msgid "minimum value of parameter %qs is %u"
+msgstr "%qs parametresinin asgari deÄŸeri %u'dur."
+
+#: params.c:77
+#, c-format
+msgid "maximum value of parameter %qs is %u"
+msgstr "%qs parametresinin azami deÄŸeri %u'dur."
+
#. If we didn't find this parameter, issue an error message.
-#: params.c:76
-#, fuzzy, c-format
+#: params.c:86
+#, c-format
msgid "invalid parameter %qs"
-msgstr "geçersiz parametre `%s'"
+msgstr "geçersiz parametre %qs"
-#: passes.c:1250
+#: passes.c:1200
msgid "branch target register load optimization is not intended to be run twice"
msgstr "dallanma hedef yazmacı yük eniyilemesi iki kere çalışacak şekilde tasarlanmadı"
@@ -6090,7 +5685,7 @@ msgid "corrupted profile info: number of executions for edge %d-%d thought to be
msgstr "bozuk profil bilgisi: %d-%d kenarı için çalıştırma sayısının %i olduğu varsayıldı"
#: protoize.c:582
-#, fuzzy, c-format
+#, c-format
msgid "%s: error writing file '%s': %s\n"
msgstr "%s: `%s' dosyası yazılırken hata: %s\n"
@@ -6105,17 +5700,17 @@ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: kullanımı '%s [ -VqfnkNlgC ] [ -B <dizin> ] [ dosya ... ]'\n"
#: protoize.c:735
-#, fuzzy, c-format
+#, 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:743
-#, fuzzy, c-format
+#, 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:751
-#, fuzzy, c-format
+#, 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"
@@ -6142,12 +5737,12 @@ msgstr ""
"%s: ölümcül hata: yardımcı bilgi dosyası %d. satırda bozulmuş\n"
#: protoize.c:1636
-#, fuzzy, c-format
+#, 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:1891
-#, fuzzy, c-format
+#, c-format
msgid "%s: compiling '%s'\n"
msgstr "%s: `%s' derleniyor\n"
@@ -6167,47 +5762,47 @@ msgid "%s: %s exited with status %d\n"
msgstr "%s: %s %d durumuyla çıktı\n"
#: protoize.c:1976
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: missing SYSCALLS file '%s'\n"
msgstr "%s: uyarı: SYSCALLS dosyası `%s' kayıp\n"
#: protoize.c:1985 protoize.c:2014
-#, fuzzy, c-format
+#, 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:2030 protoize.c:2058
-#, fuzzy, c-format
+#, 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:2086
-#, fuzzy, c-format
+#, 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:2104
-#, fuzzy, c-format
+#, 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:2117
-#, fuzzy, c-format
+#, 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:2133
-#, fuzzy, c-format
+#, 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:2215 protoize.c:4185
-#, fuzzy, c-format
+#, c-format
msgid "%s: can't delete file '%s': %s\n"
msgstr "%s: `%s' silinemiyor: %s\n"
#: protoize.c:2293
-#, fuzzy, c-format
+#, 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"
@@ -6227,27 +5822,27 @@ msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: '%s' için çelişki listesi:\n"
#: protoize.c:2454
-#, fuzzy, c-format
+#, 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:2494
-#, fuzzy, c-format
+#, 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:2500
-#, fuzzy, c-format
+#, 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:2530
-#, fuzzy, c-format
+#, 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"
+msgstr "%s: uyarı: `%s' için `%s' dosyasında static tanımı yok\n"
#: protoize.c:2536
-#, fuzzy, c-format
+#, 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"
@@ -6262,17 +5857,17 @@ 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:2920
-#, fuzzy, c-format
+#, 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:3043
-#, fuzzy, c-format
+#, 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:3064
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: warning: too few parameter lists in declaration of '%s'\n"
@@ -6281,17 +5876,17 @@ msgstr ""
"%s: uyarı: `%s' bildiriminde parametre listelerinin sayısı çok az\n"
#: protoize.c:3160
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: found '%s' but expected '%s'\n"
msgstr "%s: %d: uyarı: `%s' bulundu ama `%s' gerekli\n"
#: protoize.c:3335
-#, fuzzy, c-format
+#, 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:3362
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: %d: warning: can't add declaration of '%s' into macro call\n"
@@ -6300,14 +5895,14 @@ msgstr ""
"%s: %d: uyarı: makro çağrısına `%s' bildirimi eklenemiyor\n"
#: protoize.c:3434
-#, fuzzy, c-format
+#, 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:3523 protoize.c:3553
-#, fuzzy, c-format
+#, c-format
msgid "%s: definition of function '%s' not converted\n"
-msgstr "%s: %s' işlevinin tanımı dönüştürülmedi\n"
+msgstr "%s: '%s' işlevinin tanımı dönüştürülmedi\n"
#: protoize.c:3542
#, c-format
@@ -6315,14 +5910,14 @@ 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:3868
-#, fuzzy, c-format
+#, 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:3884
-#, fuzzy, c-format
+#, c-format
msgid "%s: %d: warning: '%s' excluded by preprocessing\n"
msgstr "%s: %d: uyarı: `%s' önişlem tarafından dışlandı\n"
@@ -6332,32 +5927,32 @@ msgid "%s: function definition not converted\n"
msgstr "%s: işlev tanımı dönüştürülmedi\n"
#: protoize.c:3945
-#, fuzzy, c-format
+#, c-format
msgid "%s: '%s' not converted\n"
msgstr "%s: `%s' dönüştürülmedi\n"
#: protoize.c:3953
-#, fuzzy, c-format
+#, c-format
msgid "%s: would convert file '%s'\n"
msgstr "%s: `%s' dönüşüm dosyası olacaktı\n"
#: protoize.c:3956
-#, fuzzy, c-format
+#, c-format
msgid "%s: converting file '%s'\n"
msgstr "%s: `%s' dönüştürülüyor\n"
#: protoize.c:3966
-#, fuzzy, c-format
+#, 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:4008
-#, fuzzy, c-format
+#, 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:4023
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"%s: error reading input file '%s': %s\n"
@@ -6366,27 +5961,27 @@ msgstr ""
"%s: girdi dosyası `%s' okunurken hata: %s\n"
#: protoize.c:4057
-#, fuzzy, c-format
+#, 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:4162
-#, fuzzy, c-format
+#, c-format
msgid "%s: warning: file '%s' already saved in '%s'\n"
msgstr "%s: uyarı: `%s' zaten `%s' içine kaydedilmiş\n"
#: protoize.c:4170
-#, fuzzy, c-format
+#, 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:4200
-#, fuzzy, c-format
+#, 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:4233
-#, fuzzy, c-format
+#, 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"
@@ -6400,99 +5995,90 @@ msgstr "%s: çalışma dizini alınamıyor: %s\n"
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: girdi dosyası isimlerinin soneki .c olmalıdır: %s\n"
-#: ra.c:774
-msgid "Didn't find a coloring.\n"
-msgstr "Bir renklendirme yok.\n"
-
-#: reg-stack.c:621
+#: reg-stack.c:622
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "çıktı koşulu %d bir tek yazmaç belirtmeli"
-#: reg-stack.c:631
+#: reg-stack.c:632
#, 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:654
+#: reg-stack.c:655
msgid "output regs must be grouped at top of stack"
msgstr "çıktı yazmaçları yığının üstünde gruplanmış olmalı"
-#: reg-stack.c:691
+#: reg-stack.c:692
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:710
-#, fuzzy
+#: reg-stack.c:711
msgid "output operand %d must use %<&%> constraint"
-msgstr "çıktı terimi %d `&' kısıtını kullanmalı"
+msgstr "çıktı terimi %d %<&%> kısıtını kullanmalı"
-#: regclass.c:762
+#: regclass.c:766
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "'%s' bir %s yazmacı olarak kullanılamıyor"
-#: regclass.c:777 config/ia64/ia64.c:4136 config/ia64/ia64.c:4143
-#: config/pa/pa.c:328 config/pa/pa.c:335
+#: regclass.c:781 config/ia64/ia64.c:4568 config/ia64/ia64.c:4575
+#: config/pa/pa.c:336 config/pa/pa.c:343
#, c-format
msgid "unknown register name: %s"
msgstr "bilinmeyen yazmaç ismi: %s"
-#: regclass.c:787
+#: regclass.c:791
msgid "global register variable follows a function definition"
msgstr "genel yazmaç değişkeni bir işlev tanımını izliyor"
-#: regclass.c:791
+#: regclass.c:795
msgid "register used for two global register variables"
msgstr "yazmaç iki genel yazmaç değişkeni için kullanılmış"
-#: regclass.c:796
+#: regclass.c:800
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:1876
+#: regrename.c:1872
#, 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:1888
+#: regrename.c:1884
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: regno zinciri içinde döngü (%u)"
-#: regrename.c:1891
+#: regrename.c:1887
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno hatalı (%u)"
-#: regrename.c:1903
+#: regrename.c:1899
#, 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:1252
-#, fuzzy
+#: reload.c:1270
msgid "cannot reload integer constant operand in %<asm%>"
-msgstr "`asm' içindeki tamsayı sabit terim yeniden yüklenemiyor"
+msgstr "%<asm%> içindeki tamsayı sabit terim yeniden yüklenemiyor"
-#: reload.c:1275
-#, fuzzy
+#: reload.c:1293
msgid "impossible register constraint in %<asm%>"
-msgstr "`asm' içindeki yazmaç şartı mümkün değil"
+msgstr "%<asm%> içindeki yazmaç şartı mümkün değil"
-#: reload.c:3513
-#, fuzzy
+#: reload.c:3535
msgid "%<&%> constraint used with no register class"
-msgstr "`&' şartı yazmaç sınıfsız kullanılmış"
+msgstr "%<&%> şartı yazmaç sınıfsız kullanılmış"
-#: reload.c:3679
+#: reload.c:3705
msgid "unable to generate reloads for:"
msgstr "aşağıdakiler için yeniden yüklemeler üretilemiyor:"
-#: reload.c:3680 reload.c:3912
-#, fuzzy
+#: reload.c:3706 reload.c:3938
msgid "inconsistent operand constraints in an %<asm%>"
-msgstr "bir `asm' içindeki terim şartı çelişkili"
+msgstr "bir %<asm%> içindeki terim şartı çelişkili"
#: reload1.c:1211
msgid "frame size too large for reliable stack checking"
@@ -6502,44 +6088,40 @@ msgstr "güvenilir yığın denetimi için çerçeve boyutu çok büyük"
msgid "try reducing the number of local variables"
msgstr "yerel değişkenlerin sayısını azaltmayı deneyin"
-#: reload1.c:1866
-#, fuzzy
+#: reload1.c:1865
msgid "can't find a register in class %qs while reloading %<asm%>"
-msgstr "`asm' yeniden yüklenirken sınıf `%s' içindeki bir yazmaç ismi bulunamıyor"
+msgstr "%<asm%> yeniden yüklenirken sınıf %qs içindeki bir yazmaç ismi bulunamıyor"
-#: reload1.c:1871
-#, fuzzy, c-format
+#: reload1.c:1870
+#, c-format
msgid "unable to find a register to spill in class %qs"
-msgstr "`%s' sınıfı içinde dökülecek bir yazmaç bulunamadı."
+msgstr "%qs sınıfı içinde dökülecek bir yazmaç bulunamadı."
-#: reload1.c:1873
+#: reload1.c:1872
msgid "this is the insn:"
msgstr "bu o komuttur:"
-#: reload1.c:3864
-#, fuzzy
+#: reload1.c:3863
msgid "%<asm%> operand requires impossible reload"
-msgstr "`asm' terimi imkansız yeniden yükleme gerektiriyor"
+msgstr "%<asm%> terimi imkansız yeniden yükleme gerektiriyor"
#. It's the compiler's fault.
-#: reload1.c:4983
+#: reload1.c:4982
msgid "could not find a spill register"
msgstr "bir döküm yazmacı bulunamadı"
-#: reload1.c:4988
-#, fuzzy
+#: reload1.c:4987
msgid "%<asm%> operand constraint incompatible with operand size"
-msgstr "`asm' teriminin koÅŸulu terim boyutu ile uyumsuz"
+msgstr "%<asm%> teriminin koÅŸulu terim boyutu ile uyumsuz"
#. It's the compiler's fault.
-#: reload1.c:6606
+#: reload1.c:6614
msgid "VOIDmode on an output"
msgstr "bir çıktıda VOIDmode"
-#: reload1.c:6607
-#, fuzzy
+#: reload1.c:6615
msgid "output operand is constant in %<asm%>"
-msgstr "`asm' içindeki çıktı terimi bir sabit"
+msgstr "%<asm%> içindeki çıktı terimi bir sabit"
#: rtl-error.c:128
msgid "unrecognizable insn:"
@@ -6549,156 +6131,146 @@ msgstr "tanımlanamayan komut:"
msgid "insn does not satisfy its constraints:"
msgstr "komut kendi kısıtlarını gözönüne almıyor:"
-#: rtl.c:472
-#, fuzzy, c-format
+#: rtl.c:471
+#, 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:482
+#: rtl.c:481
#, 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:492
+#: rtl.c:491
#, 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:501
-#, fuzzy, c-format
+#: rtl.c:500
+#, 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:511
-#, fuzzy, c-format
+#: rtl.c:510
+#, 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:522
+#: rtl.c:521
#, 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"
-#: rtl.c:533
-#, fuzzy, c-format
+#: rtl.c:532
+#, 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:316
-#, fuzzy
+#: stmt.c:317
msgid "output operand constraint lacks %<=%>"
-msgstr "çıktı terim kısıtı eksiği `='"
+msgstr "çıktı terim kısıtı eksiği %<=%>"
-#: stmt.c:331
-#, fuzzy, c-format
+#: stmt.c:332
+#, c-format
msgid "output constraint %qc for operand %d is not at the beginning"
-msgstr "%2$d terimi için çıktı şartı `%1$c' başlangıçta değil"
+msgstr "%2$d terimi için çıktı şartı `%1$qc' başlangıçta değil"
-#: stmt.c:354
-#, fuzzy
+#: stmt.c:355
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
-msgstr "terim kısıtı yanlış konumlu `+' ya da '=' içeriyor"
+msgstr "terim kısıtı yanlış konumlu %<+%> ya da %<=%> içeriyor"
-#: stmt.c:361 stmt.c:460
-#, fuzzy
+#: stmt.c:362 stmt.c:461
msgid "%<%%%> constraint used with last operand"
-msgstr "`%%' kısıtı son terimle kullanılmış"
+msgstr "%<%%%> kısıtı son terimle kullanılmış"
-#: stmt.c:380
+#: stmt.c:381
msgid "matching constraint not valid in output operand"
msgstr "eşleşen kısıt çıktı teriminde geçerli değil"
-#: stmt.c:451
-#, fuzzy, c-format
+#: stmt.c:452
+#, c-format
msgid "input operand constraint contains %qc"
-msgstr "girdi terimi kısıtı `%c' içeriyor"
+msgstr "girdi terimi kısıtı `%qc' içeriyor"
-#: stmt.c:493
+#: stmt.c:494
msgid "matching constraint references invalid operand number"
msgstr "kısıt referansları geçersiz terim numaraları eşleştiriyor"
-#: stmt.c:531
-#, fuzzy, c-format
+#: stmt.c:532
+#, c-format
msgid "invalid punctuation %qc in constraint"
-msgstr "koşul içindeki `%c' işareti geçersiz"
+msgstr "koşul içindeki `%qc' işareti geçersiz"
-#: stmt.c:555
+#: stmt.c:556
msgid "matching constraint does not allow a register"
msgstr "eşleşen kısıt bir yazmaca izin vermez"
-#: stmt.c:583
-#, fuzzy, c-format
+#: stmt.c:584
+#, c-format
msgid "asm-specifier for variable %qs conflicts with asm clobber list"
-msgstr "`%s' değişkeni için asm belirtimi, asm taşırma listesi ile çelişiyor"
+msgstr "%qs değişkeni için asm belirtimi, asm taşırma listesi ile çelişiyor"
-#: stmt.c:672
-#, fuzzy
+#: stmt.c:673
msgid "unknown register name %qs in %<asm%>"
-msgstr "`asm' içindeki yazmaç ismi `%s' bilinmiyor"
+msgstr "%<asm%> içindeki yazmaç ismi %qs bilinmiyor"
-#: stmt.c:680
-#, fuzzy
+#: stmt.c:681
msgid "PIC register %qs clobbered in %<asm%>"
-msgstr "PIC yazmacı %s `asm' içinde taşmış"
+msgstr "PIC yazmacı %qs %<asm%> içinde taşmış"
-#: stmt.c:727
-#, fuzzy
+#: stmt.c:728
msgid "more than %d operands in %<asm%>"
-msgstr "`asm' içinde %d terimden fazlası var"
+msgstr "%<asm%> içinde %d terimden fazlası var"
-#: stmt.c:790
+#: stmt.c:791
#, c-format
msgid "output number %d not directly addressable"
msgstr "çıktı numarası %d doğrudan adreslenebilir değil"
-#: stmt.c:869
-#, fuzzy
+#: stmt.c:870
msgid "asm operand %d probably doesn%'t match constraints"
msgstr "asm terimi %d belki ÅŸartlara uymaz"
-#: stmt.c:879
+#: stmt.c:880
#, 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:1026
+#: stmt.c:1027
msgid "asm clobber conflict with output operand"
msgstr "asm taşırıcı çıkış terimi ile çelişiyor"
-#: stmt.c:1031
+#: stmt.c:1032
msgid "asm clobber conflict with input operand"
msgstr "asm taşırıcı giriş terimi ile çelişiyor"
-#: stmt.c:1108
-#, fuzzy
+#: stmt.c:1109
msgid "too many alternatives in %<asm%>"
-msgstr "`asm' içindeki almaşıkların sayısı çok fazla"
+msgstr "%<asm%> içindeki almaşıkların sayısı çok fazla"
-#: stmt.c:1120
-#, fuzzy
+#: stmt.c:1121
msgid "operand constraints for %<asm%> differ in number of alternatives"
-msgstr "`asm' için terim kısıtları farklı almaşık sayısında"
+msgstr "%<asm%> için terim kısıtları farklı almaşık sayısında"
-#: stmt.c:1173
-#, fuzzy, c-format
+#: stmt.c:1174
+#, c-format
msgid "duplicate asm operand name %qs"
-msgstr "terim ismi '%s' yinelenmiÅŸ"
+msgstr "terim ismi '%qs' yinelenmiÅŸ"
-#: stmt.c:1271
+#: stmt.c:1272
msgid "missing close brace for named operand"
msgstr "isimi terim için kapama parantezi eksik"
-#: stmt.c:1299
-#, fuzzy, c-format
+#: stmt.c:1300
+#, c-format
msgid "undefined named operand %qs"
-msgstr "tanımlanmamış isimli terim '%s'"
+msgstr "tanımlanmamış isimli terim '%qs'"
-#: stmt.c:1464
+#: stmt.c:1465
msgid "%Hvalue computed is not used"
msgstr "%Hhesaplanan değer kullanılmadı"
#: stor-layout.c:152
-#, fuzzy
msgid "type size can%'t be explicitly evaluated"
msgstr "tür boyutu doğrudan değerlendirilemez"
@@ -6707,43 +6279,38 @@ 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:458
-#, fuzzy
msgid "%Jsize of %qD is %d bytes"
-msgstr "%J `%D' için genişlik %d bayt"
+msgstr "%J %qD için genişlik %d bayt"
#: stor-layout.c:460
-#, fuzzy
msgid "%Jsize of %qD is larger than %d bytes"
-msgstr "`%D' için genişlik %d bayttan fazla"
+msgstr "%J %qD için genişlik %d bayttan fazla"
#: stor-layout.c:844
-#, fuzzy
msgid "%Jpacked attribute causes inefficient alignment for %qD"
-msgstr "%J paketli öznitelik `%D' için yetersiz hizalama yapıyor"
+msgstr "%J paketli öznitelik %qD için yetersiz hizalama yapıyor"
#: stor-layout.c:847
-#, fuzzy
msgid "%Jpacked attribute is unnecessary for %qD"
-msgstr "%J paketli öznitelik `%D' için gereksiz"
+msgstr "%J paketli öznitelik %qD için gereksiz"
#: stor-layout.c:863
-#, fuzzy
msgid "%Jpadding struct to align %qD"
-msgstr "%J yapı '%D' ye hizalanarak yerleştiriliyor"
+msgstr "%J yapı '%qD' ye hizalanarak yerleştiriliyor"
#: stor-layout.c:1205
msgid "padding struct size to alignment boundary"
msgstr "yapı boyutu hizalama sınırlarına ayarlanıyor"
#: stor-layout.c:1235
-#, fuzzy, c-format
+#, c-format
msgid "packed attribute causes inefficient alignment for %qs"
-msgstr "paketli öznitelik `%s' için yetersiz hizalama yapar"
+msgstr "paketli öznitelik %qs için yetersiz hizalama yapar"
#: stor-layout.c:1238
-#, fuzzy, c-format
+#, c-format
msgid "packed attribute is unnecessary for %qs"
-msgstr "paketli öznitelik `%s' için gereksiz"
+msgstr "paketli öznitelik %qs için gereksiz"
#: stor-layout.c:1243
msgid "packed attribute causes inefficient alignment"
@@ -6783,7 +6350,7 @@ msgstr "collect: %s okunuyor\n"
#: tlink.c:475
#, c-format
msgid "repository file '%s' does not contain command-line arguments"
-msgstr ""
+msgstr "depo dosyası '%s' komut satırı argümanlarını içermiyor"
#: tlink.c:525
#, c-format
@@ -6793,7 +6360,7 @@ msgstr "collect: %s yeniden derleniyor\n"
#: tlink.c:696
#, c-format
msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa"
-msgstr ""
+msgstr "'%s' '%s'e atanmış, ama yeniden derleme, v.s. sırasında tanımlı değil"
#: tlink.c:705
#, c-format
@@ -6810,66 +6377,63 @@ msgstr "collect: yeniden birleştirme yapılıyor\n"
msgid "ld returned %d exit status"
msgstr "ld çıkış durumu %d ile döndü"
-#: toplev.c:465
+#: toplev.c:469
#, c-format
msgid "%s "
msgstr "%s "
-#: toplev.c:467
+#: toplev.c:471
#, c-format
msgid " %s"
msgstr " %s"
-#: toplev.c:532
-#, fuzzy, c-format
+#: toplev.c:536
+#, c-format
msgid "invalid option argument %qs"
-msgstr "seçenek argümanı `%s' geçersiz"
+msgstr "seçenek argümanı %qs geçersiz"
-#: toplev.c:602
-#, fuzzy
+#: toplev.c:606
msgid "unrecoverable error"
-msgstr "iç hata"
+msgstr "kurtarılamayan hata"
-#: toplev.c:622
+#: toplev.c:626
#, c-format
msgid "getting core file size maximum limit: %m"
msgstr "core dosyasının boyu azami sınıra getiriliyor: %m"
-#: toplev.c:625
+#: toplev.c:629
#, c-format
msgid "setting core file size limit to maximum: %m"
msgstr "core dosyasının boyut sınırı azami değere ayarlanıyor: %m"
-#: toplev.c:846
-#, fuzzy
+#: toplev.c:850
msgid "%J%qF declared %<static%> but never defined"
-msgstr "%J `static' olarak bildirilen `%F' hiç tanımlanmamış"
+msgstr "%J %<static%> olarak bildirilen `%qF' hiç tanımlanmamış"
-#: toplev.c:872
-#, fuzzy
+#: toplev.c:876
msgid "%J%qD defined but not used"
-msgstr "%J `%D' tanımlanmış ama kullanılmamış"
+msgstr "%J %qD tanımlanmış ama kullanılmamış"
-#: toplev.c:895 toplev.c:918
-#, fuzzy, c-format
+#: toplev.c:899 toplev.c:922
+#, c-format
msgid "%qs is deprecated (declared at %s:%d)"
-msgstr "`%s' eski kullanım (%s:%d. satırında bildirilmiş)"
+msgstr "`%qs' eski kullanım (%s:%d. satırında bildirilmiş)"
-#: toplev.c:921
+#: toplev.c:925
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr "tür eski kullanım (%s:%d. satırında bildirilmiş)"
-#: toplev.c:927
-#, fuzzy, c-format
+#: toplev.c:931
+#, c-format
msgid "%qs is deprecated"
-msgstr "`%s' eski kullanım"
+msgstr "%qs eski kullanım"
-#: toplev.c:929
+#: toplev.c:933
msgid "type is deprecated"
msgstr "tür eski kullanım"
-#: toplev.c:1075
+#: toplev.c:1087
#, c-format
msgid ""
"\n"
@@ -6878,12 +6442,12 @@ msgstr ""
"\n"
"Hedefe özel seçenekler:\n"
-#: toplev.c:1089 toplev.c:1108
+#: toplev.c:1101 toplev.c:1120
#, c-format
msgid " -m%-23s [undocumented]\n"
msgstr " -m%-23.23s [belgelenmedi]\n"
-#: toplev.c:1117
+#: toplev.c:1129
#, c-format
msgid ""
"\n"
@@ -6892,24 +6456,24 @@ msgstr ""
"\n"
"Halen belgelenememiş hedefe özel seçenekler var.\n"
-#: toplev.c:1119
+#: toplev.c:1131
#, c-format
msgid " They exist, but they are not documented.\n"
msgstr " Var fakat daha belgelendirilmedi.\n"
-#: toplev.c:1163
+#: toplev.c:1175
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "tanınmayan gcc hata ayıklama seçeneği: %c"
#. Handle -mfix-and-continue.
-#: toplev.c:1225 config/rs6000/rs6000.c:1384 config/rs6000/rs6000.c:1395
+#: toplev.c:1237 config/rs6000/rs6000.c:1400 config/rs6000/rs6000.c:1411
#: config/rs6000/darwin.h:106
-#, fuzzy, c-format
+#, c-format
msgid "invalid option %qs"
-msgstr "geçersiz %s seçeneği"
+msgstr "geçersiz %qs seçeneği"
-#: toplev.c:1240
+#: toplev.c:1252
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -6920,718 +6484,676 @@ 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:1247
+#: toplev.c:1259
#, 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:1299
+#: toplev.c:1311
msgid "options passed: "
msgstr "belirtilen seçenekler: "
-#: toplev.c:1328
+#: toplev.c:1340
msgid "options enabled: "
msgstr "etkin seçenekler: "
-#: toplev.c:1402
-#, fuzzy
+#: toplev.c:1414
msgid "can%'t open %s for writing: %m"
msgstr "%s yazmak için açılamıyor: %m"
-#: toplev.c:1485 config/sh/sh.c:7306
+#: toplev.c:1492 config/sh/sh.c:7334
msgid "created and used with different settings of -fpic"
msgstr "-fpic'in farklı ayarları ile oluşturulup kullanıldı"
-#: toplev.c:1487 config/sh/sh.c:7308
+#: toplev.c:1494 config/sh/sh.c:7336
msgid "created and used with different settings of -fpie"
msgstr "-fpie'in farklı ayarları ile oluşturulup kullanıldı"
-#: toplev.c:1538 config/sh/sh.c:7358
-#, fuzzy, c-format
+#: toplev.c:1545 config/sh/sh.c:7386
+#, c-format
msgid "created and used with differing settings of '-m%s'"
msgstr "`-m%s''in farklı ayarları ile oluşturulup kullanıldı"
-#: toplev.c:1541 config/sh/sh.c:7361
+#: toplev.c:1548 config/sh/sh.c:7389
msgid "out of memory"
msgstr "bellek yetersiz"
-#: toplev.c:1736
+#: toplev.c:1756
msgid "instruction scheduling not supported on this target machine"
msgstr "bu hedef makina için işlem zamanlaması desteklenmiyor"
-#: toplev.c:1740
+#: toplev.c:1760
msgid "this target machine does not have delayed branches"
msgstr "bu hedef makina gecikmeli dallanmalara sahip deÄŸil"
-#: toplev.c:1744
-#, fuzzy
+#: toplev.c:1764
msgid "value-based profiling not yet implemented in trees."
-msgstr "ayrımlama henüz programlanmadı."
+msgstr "değere bağlı ayrımlama ağaçlarda henüz programlanmadı."
-#: toplev.c:1757
+#: toplev.c:1777
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "bu hedef makinada -f%sleading-underscore desteklenmiyor"
-#: toplev.c:1831
+#: toplev.c:1851
#, c-format
msgid "target system does not support the \"%s\" debug format"
msgstr "hedef sistem \"%s\" hata ayıklama biçimini desteklemiyor"
-#: toplev.c:1843
+#: toplev.c:1863
msgid "variable tracking requested, but useless unless producing debug info"
-msgstr ""
+msgstr "değişken izleme istendi, ama hata ayıklama bilgisi üretilmeksizin faydasız"
-#: toplev.c:1846
-#, fuzzy
+#: toplev.c:1866
msgid "variable tracking requested, but not supported by this debug format"
-msgstr "hedef sistem \"%s\" hata ayıklama biçimini desteklemiyor"
+msgstr "değişken izleme istendi, ama bu hata ayıklama biçimi tarafından desteklenmiyor"
-#: toplev.c:1866
-#, fuzzy
+#: toplev.c:1886
msgid "can%'t open %s: %m"
msgstr "%s açılamıyor: %m"
-#: toplev.c:1873
+#: toplev.c:1893
msgid "-ffunction-sections not supported for this target"
msgstr "bu hedefte -ffunction-sections desteklenmiyor"
-#: toplev.c:1878
+#: toplev.c:1898
msgid "-fdata-sections not supported for this target"
msgstr "bu hedefte -fdata-sections desteklenmiyor"
-#: toplev.c:1885
+#: toplev.c:1905
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections iptal edildi; ayrımlamayı mümkün kılmıyor"
-#: toplev.c:1892
+#: toplev.c:1912
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "bu hedefte -fprefetch-loop-arrays desteklenmiyor"
-#: toplev.c:1898
-#, fuzzy
+#: toplev.c:1918
msgid "-fspeculative-prefetching not supported for this target"
-msgstr "bu hedefte -fdata-sections desteklenmiyor"
+msgstr "bu hedefte -fspeculative-prefetching desteklenmiyor"
-#: toplev.c:1904
+#: toplev.c:1924
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:1910
-#, fuzzy
+#: toplev.c:1930
msgid "-fspeculative-prefetching not supported for this target (try -march switches)"
-msgstr "-fprefetch-loop-arrays bu hedef için desteklenmiyor (-march seçeneğini deneyin)"
+msgstr "-fspeculative-prefetching bu hedef için desteklenmiyor (-march seçeneğini deneyin)"
-#: toplev.c:1919
+#: toplev.c:1939
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays, -Os ile desteklenmiyor"
-#: toplev.c:1925
+#: toplev.c:1945
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections bazı hedeflerde hata ayıklamayı etkileyebilir"
-#: toplev.c:2034
+#: toplev.c:2057
#, c-format
msgid "error writing to %s: %m"
msgstr "%s e yazarken hata: %m"
-#: toplev.c:2036 java/jcf-parse.c:1059 java/jcf-write.c:3525
+#: toplev.c:2059 java/jcf-parse.c:1066 java/jcf-write.c:3538
#, c-format
msgid "error closing %s: %m"
msgstr "%s kapatılırken hata: %m"
-#: tree-cfg.c:1325 tree-cfg.c:2036 tree-cfg.c:2038
+#: tree-cfg.c:1355 tree-cfg.c:2073 tree-cfg.c:2075
msgid "%Hwill never be executed"
msgstr "%Hasla çalıştırılmayacak"
-#: tree-cfg.c:3221
+#: tree-cfg.c:3289
msgid "SSA name in freelist but still referenced"
-msgstr ""
+msgstr "SSA ismi serbest bırakılanlar listesinde ama hala atıflı"
-#: tree-cfg.c:3231
+#: tree-cfg.c:3299
msgid "GIMPLE register modified with BIT_FIELD_REF"
-msgstr ""
+msgstr "GIMPLE yazmacı BIT_FIELD_REF ile değiştirilmiş"
-#: tree-cfg.c:3251
+#: tree-cfg.c:3327
msgid "address taken, but ADDRESSABLE bit not set"
-msgstr ""
+msgstr "adres alındı, ama ADDRESSABLE biti etkin değil"
-#: tree-cfg.c:3260
-#, fuzzy
+#: tree-cfg.c:3336
msgid "non-boolean used in condition"
msgstr "şartlı ifadedeki kip mantıksal kip değil"
-#: tree-cfg.c:3316
-#, fuzzy
+#: tree-cfg.c:3391
msgid "Invalid reference prefix."
-msgstr "Geçersiz referans türü"
+msgstr "Atıf öneki geçersiz."
-#: tree-cfg.c:3381
-#, fuzzy
+#: tree-cfg.c:3456
msgid "Is not a valid GIMPLE statement."
-msgstr "Geçersiz ilklendirme satırı"
+msgstr "Geçerli bir GIMPLE deyimi değil."
-#: tree-cfg.c:3401
+#: tree-cfg.c:3476
msgid "Statement marked for throw, but doesn%'t."
-msgstr ""
+msgstr "Deyim yakalama için imli, ama olmuyor."
-#: tree-cfg.c:3406
+#: tree-cfg.c:3481
msgid "Statement marked for throw in middle of block."
-msgstr ""
+msgstr "Deyim yakalama için bloğun ortasında imlenmiş."
-#: tree-cfg.c:3509
+#: tree-cfg.c:3585
msgid "PHI def is not a GIMPLE value"
-msgstr ""
+msgstr "PHI tanımı bir GIMPLE değeri değil"
-#: tree-cfg.c:3525 tree-cfg.c:3541
+#: tree-cfg.c:3601 tree-cfg.c:3617
msgid "Incorrect sharing of tree nodes"
-msgstr ""
+msgstr "Ağaç düğümlerinin paylaşımı yanlış"
-#: tree-cfg.c:3550
-#, fuzzy
+#: tree-cfg.c:3626
msgid "verify_stmts failed."
-msgstr "verify_flow_info başarısız"
+msgstr "verify_stmts başarısız."
-#: tree-cfg.c:3571
+#: tree-cfg.c:3647
msgid "ENTRY_BLOCK has a statement list associated with it\n"
-msgstr ""
+msgstr "ENTRY_BLOCK onunla ilişkili bir deyim listesi içeriyor\n"
-#: tree-cfg.c:3577
+#: tree-cfg.c:3653
msgid "EXIT_BLOCK has a statement list associated with it\n"
-msgstr ""
+msgstr "EXIT_BLOCK onunla ilişkili bir deyim listesi içeriyor\n"
-#: tree-cfg.c:3584
+#: tree-cfg.c:3660
#, c-format
msgid "Fallthru to exit from bb %d\n"
msgstr ""
-#: tree-cfg.c:3601
-#, fuzzy, c-format
+#: tree-cfg.c:3682
+#, c-format
+msgid "Nonlocal label %s is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.c:3691
+#, c-format
msgid "Label %s to block does not match in bb %d\n"
-msgstr "baÅŸlatma etiketi '%s' ile bitirme etiketi '%s' eÅŸleÅŸmiyor"
+msgstr ""
-#: tree-cfg.c:3611
+#: tree-cfg.c:3700
#, c-format
msgid "Label %s has incorrect context in bb %d\n"
msgstr ""
-#: tree-cfg.c:3625
-#, fuzzy, c-format
+#: tree-cfg.c:3714
+#, c-format
msgid "Control flow in the middle of basic block %d\n"
-msgstr "akış kontrol komutu bir temel bloğun içinde"
+msgstr "%d. temel bloğunun ortasında denetim akışı\n"
-#: tree-cfg.c:3635
-#, fuzzy, c-format
+#: tree-cfg.c:3724
+#, c-format
msgid "Label %s in the middle of basic block %d\n"
-msgstr "%d. NOTE_INSN_BASIC_BLOCK %d. temel bloğun ortasında"
+msgstr "%2$d temel bloğunun ortasında %1$s etiketi\n"
-#: tree-cfg.c:3652
-#, fuzzy, c-format
+#: tree-cfg.c:3741
+#, c-format
msgid "Fallthru edge after a control statement in bb %d \n"
-msgstr "koşulsuz jump %i den sonra ardcıl kenar"
+msgstr ""
-#: tree-cfg.c:3667
+#: tree-cfg.c:3756
#, c-format
msgid "Structured COND_EXPR at the end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3680 tree-cfg.c:3718 tree-cfg.c:3730 tree-cfg.c:3801
+#: tree-cfg.c:3769 tree-cfg.c:3807 tree-cfg.c:3819 tree-cfg.c:3890
#, c-format
msgid "Wrong outgoing edge flags at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3688
-#, fuzzy
+#: tree-cfg.c:3777
msgid "%<then%> label does not match edge at end of bb %d\n"
-msgstr "baÅŸlatma etiketi '%s' ile bitirme etiketi '%s' eÅŸleÅŸmiyor"
+msgstr ""
-#: tree-cfg.c:3696
-#, fuzzy
+#: tree-cfg.c:3785
msgid "%<else%> label does not match edge at end of bb %d\n"
-msgstr "baÅŸlatma etiketi '%s' ile bitirme etiketi '%s' eÅŸleÅŸmiyor"
+msgstr ""
-#: tree-cfg.c:3706
+#: tree-cfg.c:3795
#, c-format
msgid "Explicit goto at end of bb %d\n"
msgstr ""
-#: tree-cfg.c:3735
+#: tree-cfg.c:3824
#, c-format
msgid "Return edge does not point to exit in bb %d\n"
msgstr ""
-#: tree-cfg.c:3768
+#: tree-cfg.c:3857
msgid "Found default case not at end of case vector"
msgstr ""
-#: tree-cfg.c:3774
-#, fuzzy
+#: tree-cfg.c:3863
msgid ""
"Case labels not sorted:\n"
" "
-msgstr "etiketin kipi ayrık değil"
+msgstr ""
+"Sırasız case etiketleri:\n"
+" "
-#: tree-cfg.c:3785
+#: tree-cfg.c:3874
msgid "No default case found at end of case vector"
msgstr ""
-#: tree-cfg.c:3793
+#: tree-cfg.c:3882
#, c-format
msgid "Extra outgoing edge %d->%d\n"
msgstr ""
-#: tree-cfg.c:3815
-#, fuzzy, c-format
+#: tree-cfg.c:3904
+#, c-format
msgid "Missing edge %i->%i"
-msgstr "Tanıtıcı eksik"
+msgstr ""
-#: tree-cfg.c:5516
-#, fuzzy
+#: tree-cfg.c:5707
msgid "%Jfunction might be possible candidate for attribute %<noreturn%>"
-msgstr "işlev `noreturn' özniteliği için olası aday olmalı"
+msgstr "işlev %<noreturn%> özniteliği için olası aday olmalı"
-#: tree-cfg.c:5543 tree-cfg.c:5547
-#, fuzzy
+#: tree-cfg.c:5734 tree-cfg.c:5738
msgid "%H%<noreturn%> function does return"
-msgstr "`noreturn' işlev dönüyor"
+msgstr "%H %<noreturn%> işlev dönüyor"
-#: tree-cfg.c:5567 tree-cfg.c:5572
-#, fuzzy
+#: tree-cfg.c:5759 tree-cfg.c:5764
msgid "%Hcontrol reaches end of non-void function"
-msgstr "denetim void olmayan işlevin sonunu aşıyor"
+msgstr "%Hdenetim void olmayan işlevin sonunu aşıyor"
-#: tree-dump.c:847
-#, fuzzy, c-format
+#: tree-dump.c:849
+#, c-format
msgid "could not open dump file %qs: %s"
-msgstr "döküm dosyası `%s' açılamadı"
+msgstr "döküm dosyası %qs açılamadı: %s"
-#: tree-dump.c:960
-#, fuzzy
+#: tree-dump.c:965
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
-msgstr "bilinmeyen `%.*s' `-fdump-%s' için yoksayılıyor"
+msgstr "bilinmeyen seçenek `%q.*s' %<-fdump-%s%> için yoksayılıyor"
-#: tree-inline.c:945
-#, fuzzy
+#: tree-inline.c:969
msgid "%Jfunction %qF can never be inlined because it uses alloca (override using the always_inline attribute)"
-msgstr "%J '%F' işlevi alloca kullandığından satıriçine alınamaz (always_inline özniteliği ile zorlanabilir)"
+msgstr "%J '%qF' işlevi alloca kullandığından satıriçine alınamaz (always_inline özniteliği ile zorlanabilir)"
-#: tree-inline.c:957
-#, fuzzy
+#: tree-inline.c:981
msgid "%Jfunction %qF can never be inlined because it uses setjmp"
-msgstr "%J '%F' işlevi setjmp kullandığından satıriçine alınamaz"
+msgstr "%J '%qF' işlevi setjmp kullandığından satıriçine alınamaz"
-#: tree-inline.c:971
-#, fuzzy
+#: tree-inline.c:995
msgid "%Jfunction %qF can never be inlined because it uses variable argument lists"
-msgstr "%J '%F' işlevi değişken argüman listesi kullandığından satıriçine alınamaz"
+msgstr "%J '%qF' işlevi değişkin argüman listesi kullandığından satıriçine alınamaz"
-#: tree-inline.c:982
-#, fuzzy
+#: tree-inline.c:1006
msgid "%Jfunction %qF can never be inlined because it uses setjmp-longjmp exception handling"
-msgstr "%J '%F' işlevi setjmp-longjmp olağandışılık eylemcisi kullandığından satıriçine alınamaz"
+msgstr "%J '%qF' işlevi setjmp-longjmp olağandışılık eylemcisi kullandığından satıriçine alınamaz"
-#: tree-inline.c:989
-#, fuzzy
+#: tree-inline.c:1013
msgid "%Jfunction %qF can never be inlined because it uses non-local goto"
-msgstr "%J '%F' işlevi yerel olmayan goto içerdiğinden satıriçine alınamaz"
+msgstr "%J '%qF' işlevi yerel olmayan goto içerdiğinden satıriçine alınamaz"
-#: tree-inline.c:1008
-#, fuzzy
+#: tree-inline.c:1032
msgid "%Jfunction %qF can never be inlined because it contains a computed goto"
-msgstr "%J '%F' işlevi bir hesaplanmış goto içerdiğinden satıriçine alınamaz."
+msgstr "%J '%qF' işlevi bir hesaplanmış goto içerdiğinden satıriçine alınamaz."
-#: tree-inline.c:1022
-#, fuzzy
+#: tree-inline.c:1046
msgid "%Jfunction %qF can never be inlined because it receives a non-local goto"
-msgstr "%J '%F' işlevi yerel olmayan goto içerdiğinden satıriçine alınamaz"
+msgstr "%J '%qF' işlevi yerel olmayan goto içerdiğinden satıriçine alınamaz"
-#: tree-inline.c:1044
-#, fuzzy
+#: tree-inline.c:1071
msgid "%Jfunction %qF can never be inlined because it uses variable sized variables"
-msgstr "%J '%F' işlevi değişken boyutlu değişkenler kullandığından satıriçine alınamaz"
+msgstr "%J '%qF' işlevi değişken boyutlu değişkenler kullandığından satıriçine alınamaz"
-#: tree-inline.c:1463
-#, fuzzy
+#: tree-inline.c:1495
msgid "originally indirect function call not considered for inlining"
-msgstr "yeniden tanımlanmış extern inline işlevler satıriçine alınma sırasında görmezden gelinir"
+msgstr "aslen dolaylı işlev çağrıları satıriçine almaya konu olmaz"
-#: tree-inline.c:1473 tree-inline.c:1481
-#, fuzzy
+#: tree-inline.c:1505 tree-inline.c:1513
msgid "%Jinlining failed in call to %qF: %s"
-msgstr "%J `%F' çağrısındaki özümleme başarısız: %s"
+msgstr "%J `%qF' çağrısında satıriçine alma başarısız: %s"
-#: tree-inline.c:1474 tree-inline.c:1482
+#: tree-inline.c:1506 tree-inline.c:1514
msgid "called from here"
msgstr " buradan çağrıldı"
-#: tree-mudflap.c:851
+#: tree-inline.c:1628
+msgid "control may reach end of non-void function %qD being inlined"
+msgstr "denetim void olmayan %qD işlevinin sonunu satıriçine alınmış olarak aşıyor"
+
+#: tree-mudflap.c:857
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
-msgstr ""
+msgstr "mudflap sınaması ARRAY_RANGE_REF için henüz gerçeklenmedi"
-#: tree-mudflap.c:1042
-msgid "mudflap ran off end of BIND_EXPR body"
+#: tree-mudflap.c:1048
+#, c-format
+msgid "mudflap cannot track %qs in stub function"
msgstr ""
-#: tree-mudflap.c:1270
+#: tree-mudflap.c:1279
#, c-format
msgid "mudflap cannot track unknown size extern %qs"
msgstr ""
#: tree-nomudflap.c:51
-#, fuzzy
msgid "mudflap: this language is not supported"
-msgstr "-pipe desteklenmiyor."
+msgstr "mudflap: bu dil desteklenmiyor"
-#: tree-optimize.c:698
-#, fuzzy
+#: tree-optimize.c:720
msgid "%Jsize of return value of %qD is %u bytes"
-msgstr "%J `%D' dönüş değerinin uzunluğu %u bayt"
+msgstr "%J %qD dönüş değerinin uzunluğu %u bayt"
-#: tree-optimize.c:701
-#, fuzzy
+#: tree-optimize.c:723
msgid "%Jsize of return value of %qD is larger than %wd bytes"
-msgstr "%J `%D' için dönen değerin genişliği %wd bayttan büyük"
+msgstr "%J %qD için dönüş değerinin genişliği %wd bayttan büyük"
-#: tree-outof-ssa.c:600 tree-outof-ssa.c:615 tree-outof-ssa.c:629
-#: tree-outof-ssa.c:650 tree-outof-ssa.c:1023 tree-outof-ssa.c:1834
+#: tree-outof-ssa.c:610 tree-outof-ssa.c:625 tree-outof-ssa.c:639
+#: tree-outof-ssa.c:661 tree-outof-ssa.c:1029 tree-outof-ssa.c:1865
#: tree-ssa-live.c:417 tree-ssa-live.c:1799
msgid "SSA corruption"
-msgstr ""
+msgstr "SSA bozulması"
-#: tree-outof-ssa.c:2239
+#: tree-outof-ssa.c:2270
#, c-format
msgid " Pending stmts not issued on PRED edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2245
+#: tree-outof-ssa.c:2276
#, c-format
msgid " Pending stmts not issued on SUCC edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2252
+#: tree-outof-ssa.c:2283
#, c-format
msgid " Pending stmts not issued on ENTRY edge (%d, %d)\n"
msgstr ""
-#: tree-outof-ssa.c:2258
+#: tree-outof-ssa.c:2289
#, c-format
msgid " Pending stmts not issued on EXIT edge (%d, %d)\n"
msgstr ""
#: tree-profile.c:111 tree-profile.c:127 tree-profile.c:143 tree-profile.c:160
-#, fuzzy
msgid "unimplemented functionality"
-msgstr "daha yazılmamış yerleşik işlev `%s'"
+msgstr "gerçeklenmemiş işlevsellik"
-#: tree-ssa-operands.c:1260
+#: tree-ssa-operands.c:1273
msgid "internal error"
msgstr "iç hata"
-#: tree-ssa.c:117
+#: tree-ssa.c:113
msgid "Expected an SSA_NAME object"
-msgstr ""
+msgstr "Bir SSA_NAME nesnesi umuluyor"
-#: tree-ssa.c:123
+#: tree-ssa.c:119
msgid "Type mismatch between an SSA_NAME and its symbol."
-msgstr ""
+msgstr "Bir SSA_NAME ile onun sembolü arasında tür uyumsuzluğu"
-#: tree-ssa.c:129
+#: tree-ssa.c:125
msgid "Found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:135
+#: tree-ssa.c:131
msgid "Found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:141
+#: tree-ssa.c:137
msgid "Found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:170
+#: tree-ssa.c:166
#, c-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:179
+#: tree-ssa.c:175
msgid "SSA_NAME_DEF_STMT is wrong"
-msgstr ""
+msgstr "SSA_NAME_DEF_STMT yanlış"
-#: tree-ssa.c:230
-#, fuzzy
+#: tree-ssa.c:227
msgid "Missing definition"
-msgstr "Tanıtıcı eksik"
+msgstr "Tanım eksik"
-#: tree-ssa.c:236
+#: tree-ssa.c:233
#, c-format
msgid "Definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:244
-#, fuzzy, c-format
+#: tree-ssa.c:241
+#, c-format
msgid "Definition in block %i follows the use"
-msgstr "tanım bir eylemi izliyor"
+msgstr ""
-#: tree-ssa.c:251
+#: tree-ssa.c:248
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
-msgstr ""
+msgstr "SSA_NAME_OCCURS_IN_ABNORMAL_PHI etkin olmalı"
-#: tree-ssa.c:283
+#: tree-ssa.c:280
msgid "Incoming edge count does not match number of PHI arguments\n"
msgstr ""
-#: tree-ssa.c:296
-#, fuzzy, c-format
+#: tree-ssa.c:293
+#, c-format
msgid "PHI argument is missing for edge %d->%d\n"
-msgstr "%s den sonraki argüman eksik"
+msgstr ""
-#: tree-ssa.c:305
-#, fuzzy
+#: tree-ssa.c:302
msgid "PHI argument is not SSA_NAME, or invariant"
-msgstr "`%d' argümanı bir sabit değil"
+msgstr ""
-#: tree-ssa.c:317
+#: tree-ssa.c:314
#, c-format
msgid "Wrong edge %d->%d for PHI argument\n"
msgstr ""
-#: tree-ssa.c:367
+#: tree-ssa.c:364
msgid "Non-addressable variable inside an alias set."
msgstr ""
-#: tree-ssa.c:385
+#: tree-ssa.c:382
msgid "Addressable variable that is an alias tag but is not in any alias set."
msgstr ""
-#: tree-ssa.c:395
-#, fuzzy
+#: tree-ssa.c:392
msgid "verify_flow_insensitive_alias_info failed."
-msgstr "verify_flow_info başarısız"
+msgstr "verify_flow_insensitive_alias_info başarısız."
-#: tree-ssa.c:437
+#: tree-ssa.c:434
msgid "Dereferenced pointers should have a name or a type tag"
msgstr ""
-#: tree-ssa.c:445
+#: tree-ssa.c:442
msgid "Pointers with a memory tag, should have points-to sets or point to malloc"
msgstr ""
-#: tree-ssa.c:453
+#: tree-ssa.c:450
msgid "Pointer escapes but its name tag is not call-clobbered."
msgstr ""
-#: tree-ssa.c:462
-#, fuzzy
+#: tree-ssa.c:459
msgid "verify_flow_sensitive_alias_info failed."
-msgstr "verify_flow_info başarısız"
+msgstr "verify_flow_sensitive_alias_info başarısız."
-#: tree-ssa.c:513
+#: tree-ssa.c:535
+msgid "Alias set of a pointer's type tag should be a superset of the corresponding name tag"
+msgstr ""
+
+#: tree-ssa.c:551
msgid "Two different pointers with identical points-to sets but different name tags"
msgstr ""
-#: tree-ssa.c:540
-#, fuzzy
+#: tree-ssa.c:580
msgid "verify_name_tags failed"
-msgstr "verify_flow_info başarısız"
+msgstr "verify_name_tags başarısız"
-#: tree-ssa.c:605
+#: tree-ssa.c:647
#, c-format
msgid "AUX pointer initialized for edge %d->%d\n"
msgstr ""
-#: tree-ssa.c:630
+#: tree-ssa.c:672
msgid "Statement makes aliased stores, but has no V_MAY_DEFS"
msgstr ""
-#: tree-ssa.c:668
-#, fuzzy
+#: tree-ssa.c:710
msgid "verify_ssa failed."
-msgstr "verify_flow_info başarısız"
+msgstr "verify_ssa başarısız"
-#: tree-ssa.c:1329
-#, fuzzy
+#: tree-ssa.c:1376
msgid "%H%qD is used uninitialized in this function"
-msgstr "%J `%D' bu işlevde ilklendirilmeden kullanılmış olmalı"
+msgstr "%H %qD bu işlevde ilklendirilmeden kullanılmış"
-#: tree-ssa.c:1354
-#, fuzzy
+#: tree-ssa.c:1401
msgid "%H%qD may be used uninitialized in this function"
-msgstr "%J `%D' bu işlevde ilklendirilmeden kullanılmış olmalı"
+msgstr "%H %qD bu işlevde ilklendirilmeden kullanılmış olmalı"
-#: tree-vectorizer.c:2138
-#, fuzzy
+#: tree-vect-transform.c:598
msgid "no support for reduction/induction"
-msgstr "3DNow! yerleÅŸik iÅŸlevleri desteklenmez"
+msgstr ""
-#: tree-vectorizer.c:2164
-#, fuzzy
+#: tree-vect-transform.c:624
msgid "unsupported defining stmt"
-msgstr "desteklenmeyen birleÅŸim: %s"
+msgstr ""
-#: tree.c:3258
-#, fuzzy
+#: tree.c:3272
msgid "%Jfunction %qD definition is marked dllimport."
-msgstr "%J `%D' işlevi tanımı dllimport imli."
+msgstr "%J %qD işlevi tanımı dllimport imli."
-#: tree.c:3266
-#, fuzzy
+#: tree.c:3280
msgid "%Jvariable %qD definition is marked dllimport."
-msgstr "%J `%D' değişkeninin tanımı dllimport imli."
+msgstr "%J %qD değişkeninin tanımı dllimport imli."
-#: tree.c:3286
-#, fuzzy
+#: tree.c:3300
msgid "%Jexternal linkage required for symbol %qD because of %qs attribute."
-msgstr "%J 'D' sembolü için dış ilintileme gerekli ('%s' özniteliğinden dolayı)."
+msgstr "%J '%qD' sembolü için dış ilintileme gerekli ('%qs' özniteliğinden dolayı)."
-#: tree.c:4428
+#: tree.c:4453
msgid "arrays of functions are not meaningful"
msgstr "işlev dizileri anlamlı değil"
-#: tree.c:4480
+#: tree.c:4505
msgid "function return type cannot be function"
msgstr "işlevin dönen değer türü işlev olamaz"
-#: tree.c:5362
+#: tree.c:5398
msgid "invalid initializer for bit string"
msgstr "bit dizge için ilklendirici geçersiz"
-#: tree.c:5446
-#, fuzzy, c-format
+#: tree.c:5482
+#, c-format
msgid "tree check: %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"
+msgstr "ağaç denetimi: %4$s:%5$d: %3$s işlevinde '%1$s' umulurken, '%2$s' var"
-#: tree.c:5483
-#, fuzzy, c-format
+#: tree.c:5519
+#, c-format
msgid "tree check: expected none of %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"
+msgstr "ağaç denetimi: %4$s:%5$d: %3$s işlevinde '%1$s' umulurken, '%2$s' var"
-#: tree.c:5496
-#, fuzzy, c-format
+#: tree.c:5532
+#, c-format
msgid "tree check: expected class %qs, have %qs (%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"
+msgstr "ağaç denetimi: %5$s:%6$d: %4$s işlevinde sınıf %1$qs umulurken, %2$qs (%3$s) var"
-#: tree.c:5510
+#: tree.c:5546
#, 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"
-#: tree.c:5522
+#: tree.c:5558
#, fuzzy, c-format
msgid "tree check: accessed elt %d of phi_node 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"
-#: tree.c:5534
+#: tree.c:5570
#, c-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr "ağaç denetimi: %5$s:%6$d: %4$s'in %3$d terimi ile %2$s'in %1$d. terimine erişildi"
-#: varasm.c:476
+#: varasm.c:477
msgid "%J%D causes a section type conflict"
msgstr "%J %D bir bölüm türü çelişkiye sebep oluyor"
-#: varasm.c:910
-#, fuzzy
+#: varasm.c:911
msgid "%Jregister name not specified for %qD"
-msgstr "%J `%D' için yazmaç ismi belirtilmemiş"
+msgstr "%J %qD için yazmaç ismi belirtilmemiş"
-#: varasm.c:912
-#, fuzzy
+#: varasm.c:913
msgid "%Jinvalid register name for %qD"
-msgstr "%J `%D' için yazmaç ismi geçersiz"
+msgstr "%J %qD için yazmaç ismi geçersiz"
-#: varasm.c:914
-#, fuzzy
+#: varasm.c:915
msgid "%Jdata type of %qD isn%'t suitable for a register"
-msgstr "%J `%D' veri türü bir yazmaç için uygun değil"
+msgstr "%J %qD veri türü bir yazmaç için uygun değil"
-#: varasm.c:917
-#, fuzzy
+#: varasm.c:918
msgid "%Jregister specified for %qD isn%'t suitable for data type"
-msgstr "%J `%D' için belirtilen yazmaç, veri türü için uygun değil"
+msgstr "%J %qD için belirtilen yazmaç, veri türü için uygun değil"
-#: varasm.c:927
+#: varasm.c:928
msgid "global register variable has initial value"
msgstr "genel yazmaç değişkeni öndeğer içeriyor"
-#: varasm.c:930
-#, fuzzy
+#: varasm.c:931
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:963
-#, fuzzy
+#: varasm.c:968
msgid "%Jregister name given for non-register variable %qD"
-msgstr "%J yazmaç olmayan değişken `%D' için yazmaç ismi verilmiş"
+msgstr "%J yazmaç olmayan değişken %qD için yazmaç ismi verilmiş"
-#: varasm.c:1038
-#, fuzzy
+#: varasm.c:1046
msgid "global destructors not supported on this target"
-msgstr "bu hedefte yığın sınırları desteklenmiyor"
+msgstr "bu hedefte global yıkıcılar desteklenmiyor"
-#: varasm.c:1099
-#, fuzzy
+#: varasm.c:1107
msgid "global constructors not supported on this target"
-msgstr "bu hedefte yığın sınırları desteklenmiyor"
+msgstr "bu hedefte global yapıcılar desteklenmiyor"
-#: varasm.c:1592
-#, fuzzy
+#: varasm.c:1607
msgid "%Jalignment of %qD is greater than maximum object file alignment. Using %d"
-msgstr "`%D' hizalaması en büyük nesne dosyası hizalamasından daha büyük. %d kullanılıyor"
+msgstr "%J %qD hizalaması en büyük nesne dosyası hizalamasından daha büyük. %d kullanılıyor"
-#: varasm.c:1641
+#: varasm.c:1646
msgid "thread-local COMMON data not implemented"
msgstr "yerel evreli COMMON verisi henüz yazılmadı"
-#: varasm.c:1666
-#, fuzzy
+#: varasm.c:1671
msgid "%Jrequested alignment for %qD is greater than implemented alignment of %d"
-msgstr "`%D' için istenen hizalama yerleşik hizalama %d den daha büyük"
+msgstr "%J %qD için istenen hizalama yerleşik hizalama %d den daha büyük"
-#: varasm.c:3736
+#: varasm.c:3772
msgid "initializer for integer value is too complicated"
msgstr "tamsayı öndeğer fazla karmaşık"
-#: varasm.c:3741
+#: varasm.c:3777
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:3807
-msgid "unknown set constructor type"
-msgstr "bilinmeyen set constructor türü"
-
-#: varasm.c:4026
-#, fuzzy, c-format
+#: varasm.c:4046
+#, c-format
msgid "invalid initial value for member %qs"
-msgstr "üye `%s' için öndeğer geçersiz"
+msgstr "üye %qs için ilk değer geçersiz"
-#: varasm.c:4213 varasm.c:4257
-#, fuzzy
+#: varasm.c:4233 varasm.c:4277
msgid "%Jweak declaration of %qD must precede definition"
-msgstr "%J `%D' zayıf bildirimi tanımından önce olmalı"
+msgstr "%J %qD zayıf bildirimi tanımından önce olmalı"
-#: varasm.c:4221
-#, fuzzy
+#: varasm.c:4241
msgid "%Jweak declaration of %qD after first use results in unspecified behavior"
-msgstr "%J `%D' zayıf bildiriminin ilk kullanımdan sonra olması tanımlanmamış davranışa yol açar"
+msgstr "%J %qD zayıf bildiriminin ilk kullanımdan sonra olması tanımlanmamış davranışa yol açar"
-#: varasm.c:4255
-#, fuzzy
+#: varasm.c:4275
msgid "%Jweak declaration of %qD must be public"
-msgstr "%J `%D' zayıf bildirimi 'public' olmalı"
+msgstr "%J %qD zayıf bildirimi 'public' olmalı"
-#: varasm.c:4264
-#, fuzzy
+#: varasm.c:4284
msgid "%Jweak declaration of %qD not supported"
-msgstr "%J `%D' zayıf bildirimi desteklenmiyor"
+msgstr "%J %qD zayıf bildirimi desteklenmiyor"
-#: varasm.c:4293 varasm.c:4386
+#: varasm.c:4313 varasm.c:4462
msgid "only weak aliases are supported in this configuration"
msgstr "bu yapılandırmada sadece zayıf takma adlar destekleniyor"
-#: varasm.c:4389
+#: varasm.c:4465
msgid "alias definitions not supported in this configuration; ignored"
msgstr "takma ad tanımlamaları bu yapılandırmada desteklenmiyor; yoksayıldı"
-#: varasm.c:4418
+#: varasm.c:4504
+msgid "%qD aliased to undefined symbol %qE"
+msgstr ""
+
+#: varasm.c:4532
msgid "visibility attribute not supported in this configuration; ignored"
msgstr "görünürlük bu yapılandırmada desteklenmiyor; yoksayıldı"
@@ -7694,11 +7216,11 @@ msgid "debug: "
msgstr "hata ayıklama:"
#: params.def:44
-msgid "The maximum structure size (in bytes) at which GCC will do block copies."
+msgid "The maximum structure size (in bytes) at which GCC will do block copies"
msgstr ""
#: params.def:54
-msgid "The threshold ratio between instantiated fields and the total structure size."
+msgid "The threshold ratio between instantiated fields and the total structure size"
msgstr ""
#: params.def:72
@@ -7714,163 +7236,153 @@ msgstr ""
" asm komutu sayısı"
#: params.def:89
-#, fuzzy
msgid "The maximum number of instructions inline function can grow to via recursive inlining"
msgstr ""
-"Özümleme için seçilebilir bir işlevde\n"
-" en çok asm komutu sayısı"
#: params.def:94
-#, fuzzy
msgid "The maximum number of instructions non-inline function can grow to via recursive inlining"
msgstr ""
-"Özümleme için seçilebilir bir işlevde\n"
-" en çok asm komutu sayısı"
#: params.def:99
msgid "The maximum depth of recursive inlining for inline functions"
-msgstr ""
+msgstr "Satıriçi işlevlerde azami satıriçi iç içelik derinliği"
#: params.def:104
msgid "The maximum depth of recursive inlining for non-inline functions"
-msgstr ""
-
-#: params.def:114
-msgid "The maximum number of instructions for the RTL inliner"
-msgstr "RTL özümleyici için en fazla komut sayısı"
+msgstr "Satıriçi olmayan işlevlerde azami satıriçi iç içelik derinliği"
-#: params.def:121
+#: params.def:111
msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling"
msgstr ""
-#: params.def:134
+#: params.def:124
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:145
+#: params.def:135
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:155
+#: params.def:145
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:160
+#: params.def:150
msgid "The size of function body to be considered large"
msgstr "İşlev gövdesinin büyük olduğu varsayılır"
-#: params.def:164
+#: params.def:154
msgid "Maximal growth due to inlining of large function (in percent)"
msgstr "Büyük işlevlerin özümlenmesi nedeniyle oluşan en yüksek büyüme (yüzde olarak)"
-#: params.def:168
+#: params.def:158
msgid "how much can given compilation unit grow because of the inlining (in percent)"
msgstr "satıriçine almadan dolayı belirtilen hesaplama biriminin büyüme oranı"
-#: params.def:175
+#: params.def:165
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:180
+#: params.def:170
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ı"
-#: params.def:190
-msgid "The threshold ratio for performing partial redundancy elimination after reload."
+#: params.def:180
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
msgstr ""
-#: params.def:198
-msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+#: params.def:187
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
msgstr ""
-#: params.def:210
+#: params.def:198
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:216
+#: params.def:204
msgid "The maximum number of instructions to consider to unroll in a loop on average"
msgstr "Ortalama olarak, bir döngü içinde çevrime sokulmayacağı varsayılan en fazla komut sayısı "
-#: params.def:221
+#: params.def:209
msgid "The maximum number of unrollings of a single loop"
msgstr "Tek bir döngüde işlenemeyenlerin azami sayısı"
-#: params.def:226
+#: params.def:214
msgid "The maximum number of insns of a peeled loop"
msgstr "Soyulmuş bir döngüdeki azami komut sayısı"
-#: params.def:231
+#: params.def:219
msgid "The maximum number of peelings of a single loop"
msgstr "Tek bir döngüdeki azami soyulma sayısı"
-#: params.def:236
+#: params.def:224
msgid "The maximum number of insns of a completely peeled loop"
msgstr "Tamamen soyulmuş bir döngüdeki azami komut sayısı"
-#: params.def:241
+#: params.def:229
msgid "The maximum number of peelings of a single loop that is peeled completely"
msgstr "Tamamen soyulan tek bir döngüdeki azami soyulma sayısı"
-#: params.def:246
+#: params.def:234
msgid "The maximum number of insns of a peeled loop that rolls only once"
msgstr "Bir soyulmuş döngüde sadece tek turdaki azami komut sayısı"
-#: params.def:252
+#: params.def:240
msgid "The maximum number of insns of an unswitched loop"
msgstr "Bir switch'siz döngüdeki azami komut sayısı"
-#: params.def:257
+#: params.def:245
msgid "The maximum number of unswitchings in a single loop"
msgstr "Tek bir döngüdeki switch'sizlerin azami sayısı"
-#: params.def:264
-msgid "Bound on the number of iterations the brute force # of iterations \t analysis algorithm evaluates"
+#: params.def:252
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates"
msgstr ""
-#: params.def:270
-msgid "Maximum number of loops to perform swing modulo scheduling on \t (mainly for debugging)"
+#: params.def:257
+msgid "Maximum number of loops to perform swing modulo scheduling on (mainly for debugging)"
msgstr ""
-#: params.def:277
-msgid "A factor for tuning the upper bound that swing modulo scheduler uses \t for scheduling a loop"
+#: params.def:263
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop"
msgstr ""
-#: params.def:282
+#: params.def:267
msgid "The number of cycles the swing modulo scheduler considers when \t checking conflicts using DFA"
msgstr ""
-#: params.def:287
-msgid "A threshold on the average loop count considered by the swing modulo \t scheduler"
+#: params.def:272
+msgid "A threshold on the average loop count considered by the swing modulo scheduler"
msgstr ""
-#: params.def:293
+#: params.def:277
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:298
+#: params.def:281
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:303
+#: params.def:285
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"
@@ -7878,7 +7390,7 @@ msgstr ""
" Profil geribeslemesi mevcut olduÄŸu \n"
" zaman kullanılır"
-#: params.def:308
+#: params.def:289
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"
@@ -7886,18 +7398,18 @@ msgstr ""
" yüzdesi. Profil geribeslemesi mümkün\n"
" olmadığında kullanılır"
-#: params.def:313
+#: params.def:293
msgid "Maximal code growth caused by tail duplication (in percent)"
msgstr "Kuyruk tekrarı tarafından oluşturulan en yüksek kod büyümesi (yüzde olarak)"
-#: params.def:317
+#: params.def:297
msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
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:322
+#: params.def:301
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
msgstr ""
"En iyi kenar olasılığı bu eşik\n"
@@ -7905,7 +7417,7 @@ msgstr ""
" ileriye doğru büyüme durdurulur.\n"
" Profil geribeslemesi mümkünse kullanılır"
-#: params.def:327
+#: params.def:305
msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
msgstr ""
"En iyi kenar olasılığı bu eşik değerden\n"
@@ -7913,83 +7425,84 @@ msgstr ""
" büyüme durdurulur. Profil \n"
" geribeslemesi mümkün değilse kullanılır"
-#: params.def:334
+#: params.def:311
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:340
-#, fuzzy
+#: params.def:317
msgid "The minimum number of matching instructions to consider for crossjumping"
msgstr ""
-"Çapraz sıçrama için varsayılan gelen\n"
-" kenarların azami sayısı"
-#: params.def:346
+#: params.def:323
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos"
+msgstr ""
+
+#: params.def:329
msgid "The maximum length of path considered in cse"
msgstr ""
-#: params.def:353
+#: params.def:336
msgid "The minimum cost of an expensive expression in the loop invariant motion"
msgstr ""
-#: params.def:362
+#: params.def:345
msgid "Bound on number of candidates below that all candidates are considered in iv optimizations"
msgstr ""
-#: params.def:370
-#, fuzzy
+#: params.def:353
msgid "Bound on number of iv uses in loop optimized in iv optimizations"
-msgstr "Masraflı eniyilemelerden birkaçını uygular"
+msgstr ""
+
+#: params.def:361
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization"
+msgstr ""
-#: params.def:377
+#: params.def:368
msgid "Given N calls and V call-clobbered vars in a function. Use .GLOBAL_VAR if NxV is larger than this limit"
msgstr ""
-#: params.def:382
+#: params.def:373
msgid "The maximum memory locations recorded by cselib"
msgstr "cselib tarafından kaydedilmiş azami bellek konumu"
-#: params.def:395
+#: params.def:386
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:401
+#: params.def:391
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"
-#: params.def:409
+#: params.def:399
msgid "The maximum number of instructions to search backward when looking for equivalent reload"
msgstr "Eşdeğer yeniden yükleme için bakılırken geriye doğru aranacak komutların azami sayısı"
-#: params.def:414
+#: params.def:404
msgid "The maximum number of virtual operands allowed to represent aliases before triggering alias grouping."
msgstr ""
-#: params.def:419
-#, fuzzy
+#: params.def:409
msgid "The maximum number of blocks in a region to be considered for interblock scheduling"
msgstr ""
-"Çapraz sıçrama için varsayılan gelen\n"
-" kenarların azami sayısı"
-#: params.def:424
-#, fuzzy
+#: params.def:414
msgid "The maximum number of insns in a region to be considered for interblock scheduling"
msgstr ""
-"Çapraz sıçrama için varsayılan gelen\n"
-" kenarların azami sayısı"
-#: params.def:432
-#, fuzzy
+#: params.def:419
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value"
+msgstr ""
+
+#: params.def:427
msgid "The upper bound for sharing integer constants"
-msgstr "`%s' için değer tamsayı sabit değil"
+msgstr "Paylaşımlı tamsayı sabitler için üst sınır"
#: config/darwin-c.c:84
msgid "too many #pragma options align=reset"
@@ -8025,101 +7538,86 @@ msgstr "'#pragma unused' sonunda karışıklık"
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin.c:1332
-msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+#: config/darwin.c:1350
+msgid "internal and protected visibility attributes not supported in this configuration; ignored"
msgstr "dahili ve korumalı görünürlük öznitelikleri bu yapılandırmada desteklenmiyor; yoksayıldı"
#: config/sol2-c.c:94 config/sol2-c.c:110
-#, fuzzy
msgid "malformed %<#pragma align%>, ignoring"
-msgstr "'#pragma align' bozuk - yoksayıldı"
+msgstr "%<#pragma align%> bozuk - yoksayıldı"
#: config/sol2-c.c:103
-#, fuzzy
msgid "invalid alignment for %<#pragma align%>, ignoring"
-msgstr "'#pragma align' bozuk - yoksayıldı"
+msgstr "%<#pragma align%> için hizalama geçersiz - yoksayıldı"
#: config/sol2-c.c:118
msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
msgstr ""
#: config/sol2-c.c:130 config/sol2-c.c:142
-#, fuzzy
msgid "malformed %<#pragma align%>"
-msgstr "'#pragma builtin' bozuk"
+msgstr "%<#pragma align%> bozuk"
#: config/sol2-c.c:137
-#, fuzzy
msgid "junk at end of %<#pragma align%>"
-msgstr "'#pragma %s' sonrası karışık"
+msgstr "%<#pragma align%> sonrası karışık"
#: config/sol2-c.c:158 config/sol2-c.c:165
-#, fuzzy
msgid "malformed %<#pragma init%>, ignoring"
-msgstr "'#pragma options' hatalı, yoksayılıyor"
+msgstr "%<#pragma init%> hatalı, yoksayılıyor"
#: config/sol2-c.c:188 config/sol2-c.c:200
-#, fuzzy
msgid "malformed %<#pragma init%>"
-msgstr "'#pragma builtin' bozuk"
+msgstr "%<#pragma init%> bozuk"
#: config/sol2-c.c:195
-#, fuzzy
msgid "junk at end of %<#pragma init%>"
-msgstr "'#pragma %s' sonrası karışık"
+msgstr "%<#pragma init%> sonrası karışık"
#: config/sol2-c.c:216 config/sol2-c.c:223
-#, fuzzy
msgid "malformed %<#pragma fini%>, ignoring"
-msgstr "'#pragma options' hatalı, yoksayılıyor"
+msgstr "%<#pragma fini%> hatalı, yoksayılıyor"
#: config/sol2-c.c:246 config/sol2-c.c:258
-#, fuzzy
msgid "malformed %<#pragma fini%>"
-msgstr "'#pragma builtin' bozuk"
+msgstr "%<#pragma fini%> bozuk"
#: config/sol2-c.c:253
-#, fuzzy
msgid "junk at end of %<#pragma fini%>"
-msgstr "'#pragma %s' sonrası karışık"
+msgstr "%<#pragma fini%> sonrası karışık"
#: config/sol2.c:54
msgid "%Jignoring %<#pragma align%> for explicitly aligned %<%D%>"
msgstr ""
-#: config/darwin.h:152
-#, fuzzy
+#: config/darwin.h:155
msgid "Set sizeof(bool) to 1"
-msgstr "sizeof(long double) -> 16"
+msgstr ""
-#: config/darwin.h:154
-#, fuzzy
+#: config/darwin.h:157
msgid "Generate code suitable for fast turn around debugging"
-msgstr "Çalıştırılabilirler için uygun kod üretilir (paylaşımlı kütüphane değil)"
+msgstr ""
-#: config/darwin.h:156
-#, fuzzy
+#: config/darwin.h:159
msgid "Don't generate code suitable for fast turn around debugging"
-msgstr "Bir bit-işleme birimi için kod üretilmez"
+msgstr ""
#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
#. sections. machopic_select_section ensures that weak variables go in
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:388
-#, fuzzy
+#: config/darwin.h:395
msgid "alias definitions not supported in Mach-O; ignored"
-msgstr "takma ad tanımlamaları bu yapılandırmada desteklenmiyor; yoksayıldı"
+msgstr "takma ad tanımlamaları Mach-O'da desteklenmiyor; yoksayıldı"
#: config/lynx.h:137
-#, fuzzy
msgid "Use shared libraries"
-msgstr "ID tabanlı paylaşımlı kütüphane etkin olur"
+msgstr "Paylaşımlı kütüphaneler kullanılır"
#: config/lynx.h:138
msgid "Support multi-threading"
-msgstr ""
+msgstr "Çok evrelilik desteklenir"
#: config/lynx.h:139
msgid "Support legacy multi-threading"
@@ -8143,29 +7641,29 @@ msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr "-mieee-with-inexact Unicos/Mk üzerinde desteklenmiyor"
#: config/alpha/alpha.c:306
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mtrap-precision switch"
-msgstr "-mtrap-precision seçeneği için `%s' değeri hatalı"
+msgstr "-mtrap-precision seçeneği için %qs değeri hatalı"
#: config/alpha/alpha.c:320
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mfp-rounding-mode switch"
-msgstr "-mfp-rounding-mode seçeneği için `%s' değeri hatalı"
+msgstr "-mfp-rounding-mode seçeneği için %qs değeri hatalı"
#: config/alpha/alpha.c:335
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mfp-trap-mode switch"
-msgstr "-mfp-trap-mode seçeneği için `%s' değeri hatalı"
+msgstr "-mfp-trap-mode seçeneği için %qs değeri hatalı"
-#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1705
-#, fuzzy, c-format
+#: config/alpha/alpha.c:347 config/rs6000/rs6000.c:1720
+#, c-format
msgid "bad value %qs for -mtls-size switch"
-msgstr "-mtls-size seçeneği için `%s' değeri hatalı"
+msgstr "-mtls-size seçeneği için %qs değeri hatalı"
#: config/alpha/alpha.c:366 config/alpha/alpha.c:378
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mcpu switch"
-msgstr "-mcpu seçeneği için değer (%s) hatalı"
+msgstr "-mcpu seçeneği için değer %qs hatalı"
#: config/alpha/alpha.c:385
msgid "trap mode not supported on Unicos/Mk"
@@ -8193,95 +7691,95 @@ msgid "L%d cache latency unknown for %s"
msgstr "%2$s için L%1$d arabellek gecikmesi bilinmiyor"
#: config/alpha/alpha.c:460
-#, fuzzy, c-format
+#, c-format
msgid "bad value %qs for -mmemory-latency"
-msgstr "-mmemory-latency için değer `%s' hatalı"
+msgstr "-mmemory-latency için değer %qs hatalı"
-#: config/alpha/alpha.c:4598
+#: config/alpha/alpha.c:4764
#, c-format
msgid "invalid %%H value"
msgstr "%%H değeri geçersiz"
-#: config/alpha/alpha.c:4619
+#: config/alpha/alpha.c:4785
#, c-format
msgid "invalid %%J value"
msgstr "%%J değeri geçersiz"
-#: config/alpha/alpha.c:4635 config/ia64/ia64.c:3739
+#: config/alpha/alpha.c:4801 config/ia64/ia64.c:4133
#, c-format
msgid "invalid %%r value"
msgstr "%%r değeri geçersiz"
-#: config/alpha/alpha.c:4645 config/rs6000/rs6000.c:10711
+#: config/alpha/alpha.c:4811 config/rs6000/rs6000.c:10799
#: config/xtensa/xtensa.c:1951
#, c-format
msgid "invalid %%R value"
msgstr "%%R değeri geçersiz"
-#: config/alpha/alpha.c:4651 config/rs6000/rs6000.c:10630
+#: config/alpha/alpha.c:4817 config/rs6000/rs6000.c:10718
#: config/xtensa/xtensa.c:1918
#, c-format
msgid "invalid %%N value"
msgstr "%%N değeri geçersiz"
-#: config/alpha/alpha.c:4659 config/rs6000/rs6000.c:10658
+#: config/alpha/alpha.c:4825 config/rs6000/rs6000.c:10746
#, c-format
msgid "invalid %%P value"
msgstr "%%P değeri geçersiz"
-#: config/alpha/alpha.c:4667
+#: config/alpha/alpha.c:4833
#, c-format
msgid "invalid %%h value"
msgstr "%%h değeri geçersiz"
-#: config/alpha/alpha.c:4675 config/xtensa/xtensa.c:1944
+#: config/alpha/alpha.c:4841 config/xtensa/xtensa.c:1944
#, c-format
msgid "invalid %%L value"
msgstr "%%L değeri geçersiz"
-#: config/alpha/alpha.c:4714 config/rs6000/rs6000.c:10612
+#: config/alpha/alpha.c:4880 config/rs6000/rs6000.c:10700
#, c-format
msgid "invalid %%m value"
msgstr "%%m değeri geçersiz"
-#: config/alpha/alpha.c:4722 config/rs6000/rs6000.c:10620
+#: config/alpha/alpha.c:4888 config/rs6000/rs6000.c:10708
#, c-format
msgid "invalid %%M value"
msgstr "%%M değeri geçersiz"
-#: config/alpha/alpha.c:4766
+#: config/alpha/alpha.c:4932
#, c-format
msgid "invalid %%U value"
msgstr "%%U değeri geçersiz"
-#: config/alpha/alpha.c:4778 config/alpha/alpha.c:4792
-#: config/rs6000/rs6000.c:10719
+#: config/alpha/alpha.c:4944 config/alpha/alpha.c:4958
+#: config/rs6000/rs6000.c:10807
#, c-format
msgid "invalid %%s value"
msgstr "%%s değeri geçersiz"
-#: config/alpha/alpha.c:4815
+#: config/alpha/alpha.c:4981
#, c-format
msgid "invalid %%C value"
msgstr "%%C değeri geçersiz"
-#: config/alpha/alpha.c:4852 config/rs6000/rs6000.c:10449
-#: config/rs6000/rs6000.c:10469
+#: config/alpha/alpha.c:5018 config/rs6000/rs6000.c:10537
+#: config/rs6000/rs6000.c:10557
#, c-format
msgid "invalid %%E value"
msgstr "%%E değeri geçersiz"
-#: config/alpha/alpha.c:4877 config/alpha/alpha.c:4925
+#: config/alpha/alpha.c:5043 config/alpha/alpha.c:5091
msgid "unknown relocation unspec"
msgstr "bilinmeyen yerdeÄŸiÅŸim belirtilmemiÅŸ"
-#: config/alpha/alpha.c:4886 config/rs6000/rs6000.c:11037
+#: config/alpha/alpha.c:5052 config/rs6000/rs6000.c:11125
#, c-format
msgid "invalid %%xn code"
msgstr "%%xn değeri geçersiz"
-#: config/alpha/alpha.c:5846 config/alpha/alpha.c:5849 config/s390/s390.c:7776
-#: config/s390/s390.c:7779
+#: config/alpha/alpha.c:6037 config/alpha/alpha.c:6040 config/s390/s390.c:8030
+#: config/s390/s390.c:8033
msgid "bad builtin fcode"
msgstr "hatalı yerleşik fcode"
@@ -8298,14 +7796,14 @@ msgstr "hatalı yerleşik fcode"
#. 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:293 config/i386/i386.h:336 config/i386/i386.h:338
-#: config/i386/i386.h:340 config/ns32k/ns32k.h:140 config/s390/s390.h:134
-#: config/sparc/sparc.h:616 config/sparc/sparc.h:621
+#: config/alpha/alpha.h:293 config/i386/i386.h:335 config/i386/i386.h:337
+#: config/i386/i386.h:339 config/ns32k/ns32k.h:140 config/s390/s390.h:134
+#: config/sparc/sparc.h:622 config/sparc/sparc.h:627
msgid "Use hardware fp"
msgstr "Donanım aritmetik işlemcisi kullanılır"
-#: config/alpha/alpha.h:294 config/i386/i386.h:337 config/i386/i386.h:339
-#: config/sparc/sparc.h:618 config/sparc/sparc.h:623
+#: config/alpha/alpha.h:294 config/i386/i386.h:336 config/i386/i386.h:338
+#: config/sparc/sparc.h:624 config/sparc/sparc.h:629
msgid "Do not use hardware fp"
msgstr "Donanım aritmetik işlemcisi kullanılmaz"
@@ -8424,7 +7922,7 @@ msgstr "Verilen kayan nokta olağandışılıklarının duyarlığı denetlenir"
msgid "Tune expected memory latency"
msgstr "Beklenen bellek gecikmesini ayarlar"
-#: config/alpha/alpha.h:376 config/ia64/ia64.h:284 config/rs6000/sysv4.h:90
+#: config/alpha/alpha.h:376 config/ia64/ia64.h:278 config/rs6000/sysv4.h:90
msgid "Specify bit size of immediate TLS offsets"
msgstr "Dolaysız TLS konumlarının bit genişliği belirtilir"
@@ -8434,26 +7932,26 @@ msgid "bad value (%s) for -mcpu switch"
msgstr "-mcpu seçeneği için değer (%s) hatalı"
#: config/arc/arc.c:394
-#, fuzzy, c-format
+#, c-format
msgid "argument of %qs attribute is not a string constant"
-msgstr "`%s' in argümanı bir sabit dizge değil"
+msgstr "%qs özniteliğinin argümanı bir sabit dizge değil"
#: config/arc/arc.c:401
-#, fuzzy, c-format
+#, c-format
msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
-msgstr "`%s' özniteliğinin argümanı \"ilink1\" ya da \"ilink2\" değildir"
+msgstr "%qs özniteliğinin argümanı \"ilink1\" ya da \"ilink2\" değildir"
-#: config/arc/arc.c:1739 config/m32r/m32r.c:2130
+#: config/arc/arc.c:1739 config/m32r/m32r.c:2141
#, c-format
msgid "invalid operand to %%R code"
msgstr "%%R kodu için terim geçersiz"
-#: config/arc/arc.c:1771 config/m32r/m32r.c:2153
+#: config/arc/arc.c:1771 config/m32r/m32r.c:2164
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "%%H/%%L kodu için terim geçersiz"
-#: config/arc/arc.c:1794 config/m32r/m32r.c:2224
+#: config/arc/arc.c:1794 config/m32r/m32r.c:2235
#, c-format
msgid "invalid operand to %%U code"
msgstr "%%U kodu için terim geçersiz"
@@ -8465,170 +7963,166 @@ msgstr "%%V kodu için terim geçersiz"
#. Unknown flag.
#. Undocumented flag.
-#: config/arc/arc.c:1812 config/m32r/m32r.c:2251 config/sparc/sparc.c:7507
+#: config/arc/arc.c:1812 config/m32r/m32r.c:2262 config/sparc/sparc.c:7517
msgid "invalid operand output code"
msgstr "çıkış kodu için geçersiz veri öğesi"
-#: config/arm/arm.c:786
+#: config/arm/arm.c:800
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "switch -mcpu=%s ile -march= seçenekleri çelişiyor"
-#: config/arm/arm.c:796 config/rs6000/rs6000.c:1220 config/sparc/sparc.c:641
+#: config/arm/arm.c:810 config/rs6000/rs6000.c:1230 config/sparc/sparc.c:648
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "%s seçeneği için değer (%s) hatalı"
-#: config/arm/arm.c:905
+#: config/arm/arm.c:919
msgid "target CPU does not support interworking"
msgstr "hedef MİB beraber çalışmayı desteklemiyor"
-#: config/arm/arm.c:911
+#: config/arm/arm.c:925
msgid "target CPU does not support THUMB instructions"
msgstr "hedef MİB THUMB komutlarını desteklemez."
-#: config/arm/arm.c:925
+#: config/arm/arm.c:939
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:928
+#: config/arm/arm.c:942
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:931
+#: config/arm/arm.c:945
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:935
+#: config/arm/arm.c:949
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check ile -mno-apcs-frame uyumsuz"
-#: config/arm/arm.c:943
+#: config/arm/arm.c:957
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic ve -mapcs-reent uyumsuz"
-#: config/arm/arm.c:946
+#: config/arm/arm.c:960
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS yeniden girişli kod desteklenmiyor. Yoksayıldı"
-#: config/arm/arm.c:954
+#: config/arm/arm.c:968
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:962
+#: config/arm/arm.c:976
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:1004
-#, fuzzy, c-format
+#: config/arm/arm.c:1018
+#, c-format
msgid "invalid ABI option: -mabi=%s"
-msgstr "geçersiz %s seçeneği"
+msgstr "geçersiz ABI seçeneği: -mabi=%s"
-#: config/arm/arm.c:1010
+#: config/arm/arm.c:1024
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1013
+#: config/arm/arm.c:1027
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1023
-#, fuzzy, c-format
+#: config/arm/arm.c:1037
+#, 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"
+msgstr "geçersiz gerçel değer öykünüm seçeneği: -mfpe-%s"
-#: config/arm/arm.c:1040
-#, fuzzy, c-format
+#: config/arm/arm.c:1054
+#, c-format
msgid "invalid floating point option: -mfpu=%s"
-msgstr "Geçersiz gerçel değer öykünüm seçeneği: -mfpe-%s"
+msgstr "geçersiz gerçel değer öykünüm seçeneği: -mfpu-%s"
-#: config/arm/arm.c:1081
-#, fuzzy, c-format
+#: config/arm/arm.c:1095
+#, c-format
msgid "invalid floating point abi: -mfloat-abi=%s"
-msgstr "Geçersiz gerçel değer öykünüm seçeneği: -mfpe-%s"
+msgstr "geçersiz gerçel değer abi: -mfloat-abi=%s"
-#: config/arm/arm.c:1096
+#: config/arm/arm.c:1110
msgid "-mfloat-abi=hard and VFP"
-msgstr ""
+msgstr "-mfloat-abi=hard ve VFP"
-#: config/arm/arm.c:1122
-#, fuzzy, c-format
+#: config/arm/arm.c:1136
+#, c-format
msgid "structure size boundary can only be set to %s"
-msgstr "veri yapısı boyut sınırı sadece 8 ya da 32 ye ayarlanabilir"
+msgstr "veri yapısı boyut sınırı sadece %s ye ayarlanabilir"
-#: config/arm/arm.c:1131
+#: config/arm/arm.c:1145
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register=, -fpic olmaksızın kullanışsız"
-#: config/arm/arm.c:1138
+#: config/arm/arm.c:1152
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "PIC yazmacı için '%s' kullanılamıyor"
-#: config/arm/arm.c:2613 config/arm/arm.c:2631 config/avr/avr.c:4533
-#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1697
-#: config/i386/i386.c:1743 config/ip2k/ip2k.c:3181
-#: config/m68hc11/m68hc11.c:1350 config/m68k/m68k.c:288
-#: config/mcore/mcore.c:3375 config/ns32k/ns32k.c:1068
-#: config/rs6000/rs6000.c:17129 config/sh/sh.c:7160 config/sh/sh.c:7181
-#: config/sh/sh.c:7216 config/stormy16/stormy16.c:2413 config/v850/v850.c:2207
-#, fuzzy, c-format
+#: config/arm/arm.c:2669 config/arm/arm.c:2687 config/avr/avr.c:4620
+#: config/c4x/c4x.c:4499 config/h8300/h8300.c:5755 config/i386/i386.c:1704
+#: config/i386/i386.c:1750 config/ip2k/ip2k.c:3182
+#: config/m68hc11/m68hc11.c:1348 config/m68k/m68k.c:288
+#: config/mcore/mcore.c:3379 config/ns32k/ns32k.c:1073
+#: config/rs6000/rs6000.c:17260 config/sh/sh.c:7188 config/sh/sh.c:7209
+#: config/sh/sh.c:7244 config/stormy16/stormy16.c:2413 config/v850/v850.c:2210
+#, c-format
msgid "%qs attribute only applies to functions"
-msgstr "`%s' özniteliği sadece işlevlere uygulanır"
+msgstr "%qs özniteliği sadece işlevlere uygulanır"
-#: config/arm/arm.c:10385 config/arm/arm.c:10403
-#, fuzzy
+#: config/arm/arm.c:10454 config/arm/arm.c:10472
msgid "predicated Thumb instruction"
-msgstr "char komutları üretilir"
+msgstr ""
-#: config/arm/arm.c:10391
-#, fuzzy
+#: config/arm/arm.c:10460
msgid "predicated instruction in conditional sequence"
-msgstr "ret işlemi gerçeklenmedi"
+msgstr ""
-#: config/arm/arm.c:10499 config/arm/arm.c:10509 config/arm/arm.c:10519
-#: config/arm/arm.c:10545 config/arm/arm.c:10563 config/arm/arm.c:10598
-#: config/arm/arm.c:10617 config/arm/arm.c:10632 config/arm/arm.c:10658
-#: config/arm/arm.c:10665 config/arm/arm.c:10672
-#, fuzzy, c-format
+#: config/arm/arm.c:10568 config/arm/arm.c:10578 config/arm/arm.c:10588
+#: config/arm/arm.c:10614 config/arm/arm.c:10632 config/arm/arm.c:10667
+#: config/arm/arm.c:10686 config/arm/arm.c:10701 config/arm/arm.c:10727
+#: config/arm/arm.c:10734 config/arm/arm.c:10741
+#, c-format
msgid "invalid operand for code '%c'"
-msgstr "terim kodu `%c' geçersiz"
+msgstr "terim, kod `%c' için geçersiz"
-#: config/arm/arm.c:10558
-#, fuzzy
+#: config/arm/arm.c:10627
msgid "instruction never exectued"
-msgstr "%2d. mutlak hiç çalıştırılmadı\n"
+msgstr "komut hiç çalıştırılmadı"
-#: config/arm/arm.c:10683
-#, fuzzy
+#: config/arm/arm.c:10752
msgid "missing operand"
-msgstr "açparantez eksik"
+msgstr "terim eksik"
-#: config/arm/arm.c:11449
+#: config/arm/arm.c:11518
msgid "unable to compute real location of stacked parameter"
msgstr "yığındaki parametrenin gerçek konumu hesaplanamıyor"
#. @@@ better error message
-#: config/arm/arm.c:12082 config/arm/arm.c:12119
+#: config/arm/arm.c:12151 config/arm/arm.c:12188
msgid "selector must be an immediate"
msgstr "seçici bir şimdiki değer olmalı"
#. @@@ better error message
-#: config/arm/arm.c:12162 config/i386/i386.c:13369 config/i386/i386.c:13403
+#: config/arm/arm.c:12231 config/i386/i386.c:14446 config/i386/i386.c:14480
msgid "mask must be an immediate"
msgstr "mask bir dolaysız değer olmalı"
-#: config/arm/arm.c:12838
+#: config/arm/arm.c:12907
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:13056
+#: config/arm/arm.c:13125
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "sistem kesmesi Servis Ä°ÅŸlemleri Thumb kipinde kodlanamaz"
-#: config/arm/pe.c:171 config/mcore/mcore.c:3241
+#: config/arm/pe.c:171 config/mcore/mcore.c:3245
msgid "%Jinitialized variable '%D' is marked dllimport"
-msgstr "%J ilklendirilmiÅŸ deÄŸiÅŸken `%D' dllimport imli"
+msgstr "%J ilklendirilmiÅŸ deÄŸiÅŸken '%D' dllimport imli"
#: config/arm/pe.c:180
msgid "%Jstatic variable '%D' is marked dllimport"
@@ -8719,14 +8213,12 @@ msgid "Specify the name of the target architecture"
msgstr "Hedef mimarinin ismi belirtilir"
#: config/arm/arm.h:389
-#, fuzzy
msgid "Specify the name of the target floating point hardware/format"
-msgstr "Kayan nokta emülatörünün sürümü belirtilir"
+msgstr ""
#: config/arm/arm.h:391
-#, fuzzy
msgid "Specify if floating point hardware should be used"
-msgstr "GPR'larda kayan nokta kullanılıyorsa, yes/no belirtilir"
+msgstr ""
#: config/arm/arm.h:393
msgid "Specify the minimum bit alignment of structures"
@@ -8736,7 +8228,7 @@ msgstr "Yapıların en küçük bit hizalaması belirtilir"
msgid "Specify the register to be used for PIC addressing"
msgstr "PIC adresleme için kullanılan yazmaç belirtilir"
-#: config/arm/arm.h:396 config/mips/mips.h:780
+#: config/arm/arm.h:396 config/mips/mips.h:784
msgid "Specify an ABI"
msgstr "Bir ABI belirtilir"
@@ -8752,58 +8244,68 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr "İşlevler için dllimport özelliği yoksayılır"
-#: config/avr/avr.c:520
+#: config/avr/avr.c:532
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "-mtiny-stack ile büyük çerçeve göstericisi değişikliği (%d)"
-#: config/avr/avr.c:1107
+#: config/avr/avr.c:1119
msgid "bad address, not (reg+disp):"
msgstr "hatalı adres, (reg+disp) değil:"
-#: config/avr/avr.c:1115
+#: config/avr/avr.c:1127
msgid "internal compiler error. Bad address:"
msgstr "Derleyici iç hatası. Hatalı adres:"
-#: config/avr/avr.c:1128
+#: config/avr/avr.c:1140
msgid "internal compiler error. Unknown mode:"
msgstr "Derleyici iç hatası. Bilinmeyen kip:"
-#: config/avr/avr.c:1750 config/avr/avr.c:2411
+#: config/avr/avr.c:1763 config/avr/avr.c:2424
msgid "invalid insn:"
msgstr "geçersiz komut:"
-#: config/avr/avr.c:1784 config/avr/avr.c:1867 config/avr/avr.c:1916
-#: config/avr/avr.c:1925 config/avr/avr.c:2020 config/avr/avr.c:2189
-#: config/avr/avr.c:2445 config/avr/avr.c:2553
+#: config/avr/avr.c:1797 config/avr/avr.c:1880 config/avr/avr.c:1929
+#: config/avr/avr.c:1938 config/avr/avr.c:2033 config/avr/avr.c:2202
+#: config/avr/avr.c:2458 config/avr/avr.c:2566
msgid "incorrect insn:"
msgstr "yanlış komut:"
-#: config/avr/avr.c:1944 config/avr/avr.c:2105 config/avr/avr.c:2260
-#: config/avr/avr.c:2597
+#: config/avr/avr.c:1957 config/avr/avr.c:2118 config/avr/avr.c:2273
+#: config/avr/avr.c:2610
msgid "unknown move insn:"
msgstr "bilinmeyen taşıma komutu:"
-#: config/avr/avr.c:2820
+#: config/avr/avr.c:2840
msgid "bad shift insn:"
msgstr "hatalı kaydırma komutu:"
-#: config/avr/avr.c:2933 config/avr/avr.c:3354 config/avr/avr.c:3725
+#: config/avr/avr.c:2956 config/avr/avr.c:3404 config/avr/avr.c:3790
msgid "internal compiler error. Incorrect shift:"
msgstr "Derleyici iç hatası. Yanlış kaydırma:"
-#: config/avr/avr.c:4507 config/ip2k/ip2k.c:3156
+#: config/avr/avr.c:4594 config/ip2k/ip2k.c:3157
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.c:4601
+#: config/avr/avr.c:4637
+#, c-format
+msgid "`%s' appears to be a misspelled interrupt handler"
+msgstr ""
+
+#: config/avr/avr.c:4645
+#, c-format
+msgid "`%s' appears to be a misspelled signal handler"
+msgstr ""
+
+#: config/avr/avr.c:4714
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:4615
-#, fuzzy, c-format
+#: config/avr/avr.c:4728
+#, c-format
msgid "MCU %qs supported for assembler only"
-msgstr "MCU `%s' sadece sembolik çevirici için desteklenir"
+msgstr "MCU `%qs' sadece sembolik çevirici için desteklenir"
#: config/avr/avr.h:73
msgid "Assume int to be 8 bit integer"
@@ -9194,242 +8696,233 @@ msgstr "RPTS için maksimum yineleme sayısını belirtir"
msgid "Select CPU to generate code for"
msgstr "Kodu üretilecek MİB seçilir"
-#: config/cris/cris.c:620
+#: config/cris/cris.c:630
msgid "unexpected index-type in cris_print_index"
msgstr "cris_print_index içinde umulmayan indis türü"
-#: config/cris/cris.c:634
+#: config/cris/cris.c:644
msgid "unexpected base-type in cris_print_base"
msgstr "cris_print_base içinde beklenmeyen taban türü"
-#: config/cris/cris.c:927
+#: config/cris/cris.c:945
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "yığın kapsamı çok büyük: %d bayt"
-#: config/cris/cris.c:1238
+#: config/cris/cris.c:1256
msgid "allocated but unused delay list in epilogue"
msgstr "gecikme listesi son bölümde ayrıldı ama kullanılmadı "
-#: config/cris/cris.c:1248
+#: config/cris/cris.c:1266
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:1324
+#: config/cris/cris.c:1342
msgid "invalid operand for 'b' modifier"
msgstr "'b' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1337
+#: config/cris/cris.c:1355
msgid "invalid operand for 'v' modifier"
msgstr "'v' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1347
+#: config/cris/cris.c:1365
msgid "invalid operand for 'P' modifier"
msgstr "'P' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1354
+#: config/cris/cris.c:1372
msgid "invalid operand for 'p' modifier"
msgstr "'p' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1393
+#: config/cris/cris.c:1411
msgid "invalid operand for 'z' modifier"
msgstr "'z' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1441 config/cris/cris.c:1471
+#: config/cris/cris.c:1459 config/cris/cris.c:1489
msgid "invalid operand for 'H' modifier"
msgstr "'H' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1447
+#: config/cris/cris.c:1465
msgid "bad register"
msgstr "yazmaç kötü"
-#: config/cris/cris.c:1485
+#: config/cris/cris.c:1503
msgid "invalid operand for 'e' modifier"
msgstr "'e' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1502
+#: config/cris/cris.c:1520
msgid "invalid operand for 'm' modifier"
msgstr "'m' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1527
+#: config/cris/cris.c:1545
msgid "invalid operand for 'A' modifier"
msgstr "'A' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1535
+#: config/cris/cris.c:1553
msgid "invalid operand for 'D' modifier"
msgstr "'D' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1549
+#: config/cris/cris.c:1567
msgid "invalid operand for 'T' modifier"
msgstr "'T' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1558
+#: config/cris/cris.c:1576
msgid "invalid operand modifier letter"
msgstr "terim değiştirici harfi geçersiz"
-#: config/cris/cris.c:1566
+#: config/cris/cris.c:1584
#, c-format
msgid "internal error: bad register: %d"
msgstr "iç hata: hatalı yazmaç: %d"
-#: config/cris/cris.c:1614
+#: config/cris/cris.c:1632
msgid "unexpected multiplicative operand"
msgstr "umulmayan çarpımsal terim"
-#: config/cris/cris.c:1634
+#: config/cris/cris.c:1652
msgid "unexpected operand"
msgstr "Beklenmeyen terim"
-#: config/cris/cris.c:1667 config/cris/cris.c:1677
+#: config/cris/cris.c:1685 config/cris/cris.c:1695
msgid "unrecognized address"
msgstr "bilinmeyen adres"
-#: config/cris/cris.c:2036
+#: config/cris/cris.c:2048
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:2429
+#: config/cris/cris.c:2421
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:2506 config/cris/cris.c:2567
+#: config/cris/cris.c:2498 config/cris/cris.c:2559
msgid "unrecognized supposed constant"
msgstr "tanınmayan tahmini sabit"
-#: config/cris/cris.c:2611
+#: config/cris/cris.c:2603
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "cris_global_pic_symbol içinde tanınmayan tahmini sabit"
-#: config/cris/cris.c:2630
+#: config/cris/cris.c:2622
#, 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:2658
+#: config/cris/cris.c:2650
#, 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:2694
+#: config/cris/cris.c:2686
#, 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:2712
+#: config/cris/cris.c:2704
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "-fPIC ve -fpic bu yapılandırma ile desteklenmiyor"
-#: config/cris/cris.c:2727
+#: config/cris/cris.c:2719
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:2902 config/cris/cris.c:2947
+#: config/cris/cris.c:2894 config/cris/cris.c:2939
msgid "unexpected side-effects in address"
msgstr "adreste beklenmeyen yan etkiler"
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:3042 config/cris/cris.c:3073
+#: config/cris/cris.c:3008
msgid "unexpected PIC symbol"
msgstr "beklenmeyen PIC sembolü"
-#: config/cris/cris.c:3046
+#: config/cris/cris.c:3012
msgid "PIC register isn't set up"
msgstr "PIC yazmacı ayarlı değil"
-#: config/cris/cris.c:3059 config/cris/cris.c:3142
-msgid "unexpected address expression"
-msgstr "beklenmeyen adres ifadesi"
-
-#: config/cris/cris.c:3077
+#: config/cris/cris.c:3033
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:3086
-msgid "unexpected NOTE as addr_const:"
-msgstr "addr_const olarak beklenmeyen NOT:"
-
-#: config/cris/aout.h:108
+#: config/cris/aout.h:85
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:115
+#: config/cris/aout.h:92
msgid "For elinux, request a specified stack-size for this program"
msgstr "elinux için, bu programa belirli bir yığın boyutu isteniyor"
-#: config/cris/cris.h:362
+#: config/cris/cris.h:354
msgid "Work around bug in multiplication instruction"
msgstr "Çarpma komutundaki hatanın etrafından dolanılır"
#. 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:368
+#: config/cris/cris.h:360
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "ETRAX 4 (CRIS v3) için derleme yapılır"
-#: config/cris/cris.h:373
+#: config/cris/cris.h:365
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "ETRAX 100 (CRIS v8) için derleme yapılır"
-#: config/cris/cris.h:377
+#: config/cris/cris.h:369
msgid "Emit verbose debug information in assembly code"
msgstr "Çevirici kodunda ayrıntılı hata ayıklama bilgisi üretilir"
-#: config/cris/cris.h:380
+#: config/cris/cris.h:372
msgid "Do not use condition codes from normal instructions"
msgstr "Normal komutlardan koşul kodları kullanılmaz"
-#: config/cris/cris.h:384
+#: config/cris/cris.h:376
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "Yan etki atamalı adresleme kipleri üretilmez"
-#: config/cris/cris.h:387
+#: config/cris/cris.h:379
msgid "Do not tune stack alignment"
msgstr "Yığın hiizalaması ayarlanmaz"
-#: config/cris/cris.h:390
+#: config/cris/cris.h:382
msgid "Do not tune writable data alignment"
msgstr "Yazılabilir veri hizalaması ayarlanmaz"
-#: config/cris/cris.h:393
+#: config/cris/cris.h:385
msgid "Do not tune code and read-only data alignment"
msgstr "Kod ve salt-okunur veri hizalaması ayarlanmaz"
-#: config/cris/cris.h:402
+#: config/cris/cris.h:394
msgid "Align code and data to 32 bits"
msgstr "Kod ve veri 32 bitlik hizalanır"
-#: config/cris/cris.h:415
+#: config/cris/cris.h:407
msgid "Don't align items in code or data"
msgstr "Kod ve verideki öğeler hizalanmaz"
-#: config/cris/cris.h:418
+#: config/cris/cris.h:410
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:422
+#: config/cris/cris.h:414
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:428
+#: config/cris/cris.h:420
msgid "Override -mbest-lib-options"
msgstr "-mbest-lib-options reddedilir"
-#: config/cris/cris.h:460
+#: config/cris/cris.h:452
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:462
+#: config/cris/cris.h:454
msgid "Tune alignment for the specified chip or CPU version"
msgstr "Belirtilen çip veya mib için hizalama ayarlanır"
-#: config/cris/cris.h:464
+#: config/cris/cris.h:456
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:1031
+#: config/cris/cris.h:1016
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "CRIS için FUNCTION_PROFILER yok"
@@ -9437,46 +8930,46 @@ msgstr "CRIS için FUNCTION_PROFILER yok"
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "-fpic ve -fPIC ile birlikte GOTPLT başvurularını kullanmayın"
-#: config/fr30/fr30.c:463
+#: config/fr30/fr30.c:468
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: bilinmeyen adres"
-#: config/fr30/fr30.c:487
+#: config/fr30/fr30.c:492
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: bilinmeyen %%p kodu"
-#: config/fr30/fr30.c:507
+#: config/fr30/fr30.c:512
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: bilinmeyen %%b kodu"
-#: config/fr30/fr30.c:528
+#: config/fr30/fr30.c:533
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: bilinmeyen %%B kodu"
-#: config/fr30/fr30.c:536
+#: config/fr30/fr30.c:541
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: %%A koduna terim geçersiz"
-#: config/fr30/fr30.c:553
+#: config/fr30/fr30.c:558
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: %%x kodu geçersiz"
-#: config/fr30/fr30.c:560
+#: config/fr30/fr30.c:565
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: %%F kodu geçersiz"
-#: config/fr30/fr30.c:577
+#: config/fr30/fr30.c:582
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: bilinmeyen kod"
-#: config/fr30/fr30.c:606 config/fr30/fr30.c:615 config/fr30/fr30.c:626
-#: config/fr30/fr30.c:639
+#: config/fr30/fr30.c:611 config/fr30/fr30.c:620 config/fr30/fr30.c:631
+#: config/fr30/fr30.c:644
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: bilinmeyen bellek"
@@ -9484,148 +8977,138 @@ msgstr "fr30_print_operand: bilinmeyen bellek"
msgid "Assume small address space"
msgstr "Küçük adres alanı varsayılır"
-#: config/frv/frv.c:563 config/frv/frv.c:590
+#: config/frv/frv.c:576 config/frv/frv.c:603
#, c-format
msgid "Unknown cpu: -mcpu=%s"
msgstr "Bilinmeyen iÅŸlemci: -mcpu=%s"
-#: config/frv/frv.c:2513
+#: config/frv/frv.c:2539
msgid "Bad insn to frv_print_operand_address:"
msgstr "frv_print_operand_address için hatalı komut:"
-#: config/frv/frv.c:2524
+#: config/frv/frv.c:2550
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:2563 config/frv/frv.c:2573 config/frv/frv.c:2582
-#: config/frv/frv.c:2603 config/frv/frv.c:2608
+#: config/frv/frv.c:2589 config/frv/frv.c:2599 config/frv/frv.c:2608
+#: config/frv/frv.c:2629 config/frv/frv.c:2634
msgid "Bad insn to frv_print_operand_memory_reference:"
msgstr "frv_print_operand_memory_reference için hatalı komut:"
-#: config/frv/frv.c:2747
+#: config/frv/frv.c:2721
+msgid "bad condition code"
+msgstr "hatalı koşul kodu"
+
+#: config/frv/frv.c:2796
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:2792
-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:2815
-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:2840
+#: config/frv/frv.c:2857
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:2848
+#: config/frv/frv.c:2865
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:2864
+#: config/frv/frv.c:2881
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:2878
-#, fuzzy
+#: config/frv/frv.c:2895
msgid "Bad insn to frv_print_operand, 'g' modifier:"
-msgstr "frv_print_operand, 'C' değiştirici için hatalı komut:"
+msgstr "frv_print_operand, 'g' değiştirici için hatalı komut:"
-#: config/frv/frv.c:2926
+#: config/frv/frv.c:2943
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:2939
+#: config/frv/frv.c:2956
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:2960
+#: config/frv/frv.c:2977
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:2978
+#: config/frv/frv.c:2995
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:2998
+#: config/frv/frv.c:3015
msgid "Bad insn in frv_print_operand, z case"
msgstr "frv_print_operand, z case içinde hatalı komut"
-#: config/frv/frv.c:3029
+#: config/frv/frv.c:3046
msgid "Bad insn in frv_print_operand, 0 case"
msgstr "frv_print_operand, 0 case içinde hatalı komut"
-#: config/frv/frv.c:3034
+#: config/frv/frv.c:3051
msgid "frv_print_operand: unknown code"
msgstr "frv_print_operand: bilinmeyen kod"
-#: config/frv/frv.c:5835
+#: config/frv/frv.c:5944
msgid "Bad output_move_single operand"
msgstr "output_move_single terimi hatalı"
-#: config/frv/frv.c:5962
+#: config/frv/frv.c:6071
msgid "Bad output_move_double operand"
msgstr "output_move_double terimi hatalı"
-#: config/frv/frv.c:6104
+#: config/frv/frv.c:6213
msgid "Bad output_condmove_single operand"
msgstr "output_condmove_single terimi hatalı"
-#: config/frv/frv.c:9618
+#: config/frv/frv.c:9774
msgid "accumulator is not a constant integer"
msgstr "toplayıcı bir tamsayı sabit değil"
-#: config/frv/frv.c:9623
+#: config/frv/frv.c:9779
msgid "accumulator number is out of bounds"
msgstr "toplayıcı sayısı kapsamdışı"
-#: config/frv/frv.c:9634
-#, fuzzy, c-format
+#: config/frv/frv.c:9790
+#, c-format
msgid "inappropriate accumulator for %qs"
-msgstr "`%s' için ilgisiz toplayıcı"
+msgstr "%qs için ilgisiz toplayıcı"
-#: config/frv/frv.c:9700
-#, fuzzy
+#: config/frv/frv.c:9856
msgid "invalid IACC argument"
-msgstr "tür argümanı geçersiz"
+msgstr "IACC argümanı geçersiz"
-#: config/frv/frv.c:9723
-#, fuzzy, c-format
+#: config/frv/frv.c:9879
+#, c-format
msgid "%qs expects a constant argument"
-msgstr "`%s' bir tamsayı sabit argüman olarak beklenir"
+msgstr "%qs bir tamsayı sabit argüman olarak beklenir"
-#: config/frv/frv.c:9728
-#, fuzzy, c-format
+#: config/frv/frv.c:9884
+#, c-format
msgid "constant argument out of range for %qs"
-msgstr "sabit argüman `%s' için kapsamdışı"
+msgstr "sabit argüman %qs için kapsamdışı"
-#: config/frv/frv.c:10125
+#: config/frv/frv.c:10319
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:10137
+#: config/frv/frv.c:10331
msgid "this media function is only available on the fr500"
msgstr "bu ortam işlevi sadece fr500 üzerinde kullanılabilir"
-#: config/frv/frv.c:10165
-#, fuzzy
+#: config/frv/frv.c:10359
msgid "this media function is only available on the fr400 and fr550"
-msgstr "bu ortam işlevi sadece fr400 üzerinde kullanılabilir"
+msgstr "bu ortam işlevi sadece fr400 ve fr550 üzerinde kullanılabilir"
-#: config/frv/frv.c:10184
-#, fuzzy
+#: config/frv/frv.c:10378
msgid "this builtin function is only available on the fr405 and fr450"
-msgstr "bu ortam işlevi sadece fr400 üzerinde kullanılabilir"
+msgstr "bu yerleşik işlev sadece fr405 ve fr450 üzerinde kullanılabilir"
-#: config/frv/frv.c:10193
-#, fuzzy
+#: config/frv/frv.c:10387
msgid "this builtin function is only available on the fr500 and fr550"
-msgstr "bu ortam işlevi sadece fr500 üzerinde kullanılabilir"
+msgstr "bu yerleşik işlev sadece fr500 ve fr550 üzerinde kullanılabilir"
-#: config/frv/frv.c:10205
-#, fuzzy
+#: config/frv/frv.c:10399
msgid "this builtin function is only available on the fr450"
-msgstr "bu ortam işlevi sadece fr400 üzerinde kullanılabilir"
+msgstr "bu yerleşik işlev sadece fr450 ü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
@@ -9636,7 +9119,7 @@ msgstr "bu ortam işlevi sadece fr400 üzerinde kullanılabilir"
#. #else
#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
#. #endif
-#: config/frv/frv.h:542
+#: config/frv/frv.h:550
#, c-format
msgid " (frv)"
msgstr " (frv)"
@@ -9663,14 +9146,12 @@ msgid "Do not generate H8S code"
msgstr "H8S kodu üretilmez"
#: config/h8300/h8300.h:161
-#, fuzzy
msgid "Generate H8SX code"
-msgstr "H8S kodu üretilir"
+msgstr "H8SX kodu üretilir"
#: config/h8300/h8300.h:162
-#, fuzzy
msgid "Do not generate H8SX code"
-msgstr "H8S kodu üretilmez"
+msgstr "H8SX kodu üretilmez"
#: config/h8300/h8300.h:163
msgid "Generate H8S/2600 code"
@@ -9716,185 +9197,192 @@ msgstr "H8/300H kodu üretilmez"
msgid "Use H8/300 alignment rules"
msgstr "H8/300 hizalama kuralları kullanılır"
-#: config/i386/i386.c:1246
+#: config/i386/i386.c:1242
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr "PIC kipinde %s kod modeli desteklenmiyor"
-#: config/i386/i386.c:1256 config/sparc/sparc.c:604
+#: config/i386/i386.c:1252 config/sparc/sparc.c:611
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "-mcmodel= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1271
+#: config/i386/i386.c:1267
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "-masm= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1274
-#, fuzzy, c-format
+#: config/i386/i386.c:1270
+#, c-format
msgid "code model %qs not supported in the %s bit mode"
-msgstr "%2$s bit kipinde `%1$s' kod modeli desteklenmiyor"
+msgstr "%2$s bit kipinde %1$qs kod modeli desteklenmiyor"
-#: config/i386/i386.c:1277
-#, fuzzy
+#: config/i386/i386.c:1273
msgid "code model %<large%> not supported yet"
-msgstr "'büyük' kod modeli henüz desteklenmiyor"
+msgstr "%<large%> kod modeli henüz desteklenmiyor"
-#: config/i386/i386.c:1279
+#: config/i386/i386.c:1275
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "%i bitlik kip bunun içinde derlenmiş değil:"
-#: config/i386/i386.c:1309 config/i386/i386.c:1333
+#: config/i386/i386.c:1305 config/i386/i386.c:1329
msgid "CPU you selected does not support x86-64 instruction set"
msgstr "Seçtiğiniz işlemci x86-64 komutlarını desteklemiyor."
-#: config/i386/i386.c:1315 config/iq2000/iq2000.c:1671
+#: config/i386/i386.c:1311 config/iq2000/iq2000.c:1673
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "-march= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1346
+#: config/i386/i386.c:1342
#, c-format
msgid "bad value (%s) for -mtune= switch"
msgstr "-mtune= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1363
+#: config/i386/i386.c:1359
#, 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:1376
+#: config/i386/i386.c:1372
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:1381 config/i386/i386.c:1394 config/i386/i386.c:1407
+#: config/i386/i386.c:1377 config/i386/i386.c:1390 config/i386/i386.c:1403
#, 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:1389
+#: config/i386/i386.c:1385
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps eskidir, yerine -falign-jumps kullanın"
-#: config/i386/i386.c:1402
+#: config/i386/i386.c:1398
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:1440
+#: config/i386/i386.c:1436
#, 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:1452
+#: config/i386/i386.c:1448
#, 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:1464
+#: config/i386/i386.c:1460
#, c-format
msgid "bad value (%s) for -mtls-dialect= switch"
msgstr "-mtls-dialect= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1498
+#: config/i386/i386.c:1507
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double 64bitlik kipte iÅŸ yapmaz"
-#: config/i386/i386.c:1500
+#: config/i386/i386.c:1509
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "64bitlik kipte -mrtd çağrı uzlaşımı desteklenmiyor"
-#: config/i386/i386.c:1522 config/i386/i386.c:1533
+#: config/i386/i386.c:1538 config/i386/i386.c:1549
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:1538
+#: config/i386/i386.c:1554
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:1545
+#: config/i386/i386.c:1561
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "-mfpmath= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1707 config/i386/i386.c:1718
+#: config/i386/i386.c:1714 config/i386/i386.c:1725
msgid "fastcall and stdcall attributes are not compatible"
msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
-#: config/i386/i386.c:1711 config/i386/i386.c:1767
+#: config/i386/i386.c:1718 config/i386/i386.c:1774
msgid "fastcall and regparm attributes are not compatible"
msgstr "fastcall ve regparm nitelikleri uyumlu deÄŸil"
-#: config/i386/i386.c:1754
-#, fuzzy, c-format
+#: config/i386/i386.c:1761
+#, c-format
msgid "%qs attribute requires an integer constant argument"
-msgstr "`%s' özniteliği bir tamsayı sabit argüman gerektirir"
+msgstr "%qs özniteliği bir tamsayı sabit argüman gerektirir"
-#: config/i386/i386.c:1760
-#, fuzzy, c-format
+#: config/i386/i386.c:1767
+#, c-format
msgid "argument to %qs attribute larger than %d"
-msgstr "`%s' özniteliğine argüman %d den büyük"
+msgstr "%qs özniteliğine argüman %d den büyük"
+
+#: config/i386/i386.c:2565
+msgid "SSE register return with SSE disabled"
+msgstr ""
-#: config/i386/i386.c:2776
+#: config/i386/i386.c:2567
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.c:2862
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr "SSE etkinleştirilmeksizin, SSE vektör argümanı ABI'yi değitirir"
-#: config/i386/i386.c:2792
+#: config/i386/i386.c:2879
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr "MMX etkinleştirilmeksizin, MMX vektör argümanı ABI'yi değitirir"
-#: config/i386/i386.c:3038
+#: config/i386/i386.c:3127
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:5908
+#: config/i386/i386.c:6003
msgid "invalid UNSPEC as operand"
msgstr "veri öğesi olarak UNSPEC geçersiz"
-#: config/i386/i386.c:6146
+#: config/i386/i386.c:6241
msgid "extended registers have no high halves"
msgstr "ek yazmaçların yüksek yarıları yok"
-#: config/i386/i386.c:6161
+#: config/i386/i386.c:6256
msgid "unsupported operand size for extended register"
msgstr "ek yazmaç için desteklenmeyen terim boyutu"
-#: config/i386/i386.c:6476
+#: config/i386/i386.c:6572
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:6522
-#, fuzzy, c-format
+#: config/i386/i386.c:6625
+#, c-format
msgid "invalid operand code '%c'"
msgstr "terim kodu `%c' geçersiz"
-#: config/i386/i386.c:6565
+#: config/i386/i386.c:6668
msgid "invalid constraints for operand"
msgstr "kısıtlar terim için geçersiz"
-#: config/i386/i386.c:11301
+#: config/i386/i386.c:11919
msgid "unknown insn mode"
msgstr "bilinmeyen komut kipi"
-#: config/i386/i386.c:13171 config/i386/i386.c:13207
+#: config/i386/i386.c:14174
#, c-format
msgid "selector must be an integer constant in the range 0..%i"
msgstr "seçici 0..%i aralığında bir tamsayı sabit olmalı"
-#: config/i386/i386.c:13435
+#: config/i386/i386.c:14512
msgid "shift must be an immediate"
msgstr "shift bir dolaysız değer olmalı"
-#: config/i386/i386.c:14489
-#, fuzzy, c-format
+#: config/i386/i386.c:15634
+#, c-format
msgid "%qs incompatible attribute ignored"
-msgstr "`%s' uyumusuz özelliği yoksayıldı"
+msgstr "%qs uyumsuz özelliği yoksayıldı"
#: config/i386/winnt.c:74
-#, fuzzy, c-format
+#, c-format
msgid "%qs attribute only applies to variables"
-msgstr "`%s' özniteliği sadece değişkenlere uygulanır"
+msgstr "%qs özniteliği sadece değişkenlere uygulanır"
#: config/i386/winnt.c:172
msgid "%Jfunction '%D' is defined after prior declaration as dllimport: attribute ignored"
@@ -9913,9 +9401,9 @@ msgid "%Jinconsistent dll linkage for '%D', dllexport assumed."
msgstr "%J '%D' için uyumsuz dll ilintilemesi: dllexport kabul edildi."
#: config/i386/winnt.c:299 config/sh/symbian.c:279
-#, fuzzy, c-format
+#, c-format
msgid "%qs 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ş"
+msgstr "%qs hem bir DLL'den alınan hem de bir DLL'e aktarılan olarak bildirilmiş"
#: config/i386/winnt.c:308
msgid "%Jfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
@@ -9988,186 +9476,186 @@ msgstr "ms bit alanları objc için desteklenmiyor"
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:348
+#: config/i386/i386.h:347
msgid "Alternate calling convention"
msgstr "Almaşık çağrı uzlaşımı"
-#: config/i386/i386.h:350 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
+#: config/i386/i386.h:349 config/m68k/m68k.h:336 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Normal çağrı uzlaşımı kullanılır"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:351
msgid "Align some doubles on dword boundary"
msgstr "double'lar dword sınırlarına hizalanır"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:353
msgid "Align doubles on word boundary"
msgstr "double'lar word sınırlarına hizalanır"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:355
msgid "Uninitialized locals in .bss"
msgstr ".bss içinde ilklendirilmemiş yerel değerler"
-#: config/i386/i386.h:358
+#: config/i386/i386.h:357
msgid "Uninitialized locals in .data"
msgstr ".data içinde ilklendirilmemiş yerel değerler"
-#: config/i386/i386.h:360 config/m68k/linux.h:42 config/ns32k/ns32k.h:167
+#: config/i386/i386.h:359 config/m68k/linux.h:42 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:362 config/ns32k/ns32k.h:169
+#: config/i386/i386.h:361 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:364
+#: config/i386/i386.h:363
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:366
+#: config/i386/i386.h:365
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:368
+#: config/i386/i386.h:367
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "FPU için sin, cos, sqrt üretilmez"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:369
msgid "Generate sin, cos, sqrt for FPU"
msgstr "FPU için sin, cos, sqrt üretilir"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:371
msgid "Omit the frame pointer in leaf functions"
msgstr "Alt düzey işlevlerde çerçeve göstericisi ihmal edilir"
-#: config/i386/i386.h:375
+#: config/i386/i386.h:374
msgid "Enable stack probing"
msgstr "Yığın sondalamayı etkinleştirir"
#. undocumented
#. undocumented
-#: config/i386/i386.h:380
+#: config/i386/i386.h:379
msgid "Align destination of the string operations"
msgstr "Dizge işlemleri hedefi hizalanır"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:381
msgid "Do not align destination of the string operations"
msgstr "Dizge iÅŸlemleri hedefi hizalanmaz"
-#: config/i386/i386.h:384
+#: config/i386/i386.h:383
msgid "Inline all known string operations"
msgstr "Bilinen tüm dizge işlemleri özümlenir"
-#: config/i386/i386.h:386
+#: config/i386/i386.h:385
msgid "Do not inline all known string operations"
msgstr "Bilinen hiçbir dizge işlemi özümlenmez"
-#: config/i386/i386.h:388 config/i386/i386.h:392
+#: config/i386/i386.h:387 config/i386/i386.h:391
msgid "Use push instructions to save outgoing arguments"
msgstr ""
"Çıkan argümanları kaydedecek basma komutları \n"
" kullanılır"
-#: config/i386/i386.h:390 config/i386/i386.h:394
+#: config/i386/i386.h:389 config/i386/i386.h:393
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
"Çıkan argümanları kaydedecek basma komutları \n"
" kullanılmaz"
-#: config/i386/i386.h:396
+#: config/i386/i386.h:395
msgid "Support MMX built-in functions"
msgstr "MMX yerleÅŸik iÅŸlevleri desteklenir"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:397
msgid "Do not support MMX built-in functions"
msgstr "MMX yerleÅŸik iÅŸlevleri desteklenmez"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:399
msgid "Support 3DNow! built-in functions"
msgstr "3DNow! yerleÅŸik iÅŸlevleri desteklenir"
-#: config/i386/i386.h:402
+#: config/i386/i386.h:401
msgid "Do not support 3DNow! built-in functions"
msgstr "3DNow! yerleÅŸik iÅŸlevleri desteklenmez"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:403
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
"MMX ve SSE2 yerleşik işlevleri ve kod üretimi\n"
" desteklenir"
-#: config/i386/i386.h:406
+#: config/i386/i386.h:405
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:408
+#: config/i386/i386.h:407
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:410
+#: config/i386/i386.h:409
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:412
+#: config/i386/i386.h:411
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "MMX, SSE, SSE2 ve SSE3 yerleşik işlevleri ve kod üretimi desteklenir"
-#: config/i386/i386.h:414
+#: config/i386/i386.h:413
msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr "MMX, SSE, SSE2 ve SSE3 yerleşik işlevleri ve kod üretimi desteklenmez"
-#: config/i386/i386.h:416
+#: config/i386/i386.h:415
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) -> 16"
-#: config/i386/i386.h:418
+#: config/i386/i386.h:417
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) -> 12"
-#: config/i386/i386.h:420
+#: config/i386/i386.h:419
msgid "Generate 64bit x86-64 code"
msgstr "64bit x86-64 kodu üretilir"
-#: config/i386/i386.h:422
+#: config/i386/i386.h:421
msgid "Generate 32bit i386 code"
msgstr "32bit i386 kodu üretilir"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:423
msgid "Use native (MS) bitfield layout"
msgstr "Doğal (MS) bitalanı yerleşimi kullanılır"
-#: config/i386/i386.h:426
+#: config/i386/i386.h:425
msgid "Use gcc default bitfield layout"
msgstr "gcc'nin öntanımlı bitalanı yerleşimi kullanılır"
-#: config/i386/i386.h:428
+#: config/i386/i386.h:427
msgid "Use red-zone in the x86-64 code"
msgstr "x86-64 kodda red-zone kullanılır"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:429
msgid "Do not use red-zone in the x86-64 code"
msgstr "x86-64 kodda red-zone kullanılmaz"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:431
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr "TLS verisine erişilirken %gs karşılığı doğrudan referaslar kullanılır"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:433
#, c-format
msgid "Do not use direct references against %gs when accessing tls data"
msgstr "TLS verisine erişilirken %gs karşılığı doğrudan referaslar kullanılmaz"
@@ -10181,58 +9669,58 @@ msgstr "TLS verisine erişilirken %gs karşılığı doğrudan referaslar kullan
#. 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:472 config/ia64/ia64.h:286 config/rs6000/rs6000.h:453
-#: config/s390/s390.h:158 config/sparc/sparc.h:711
+#: config/i386/i386.h:471 config/ia64/ia64.h:280 config/rs6000/rs6000.h:453
+#: config/s390/s390.h:158 config/sparc/sparc.h:717
msgid "Schedule code for given CPU"
msgstr "Verilen MİB için kodu zamanlar"
-#: config/i386/i386.h:474
+#: config/i386/i386.h:473
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:476 config/s390/s390.h:160
+#: config/i386/i386.h:475 config/s390/s390.h:160
msgid "Generate code for given CPU"
msgstr "Verilen MİB için kodu üretir"
-#: config/i386/i386.h:478
+#: config/i386/i386.h:477
msgid "Number of registers used to pass integer arguments"
msgstr ""
"Tamsayı argümanları aktarmada kullanılan\n"
" yazmaçların sayısı"
-#: config/i386/i386.h:480
+#: config/i386/i386.h:479
msgid "Loop code aligned to this power of 2"
msgstr "Çevrim kodu bunun 2. kuvvetine ayarlandı"
-#: config/i386/i386.h:482
+#: config/i386/i386.h:481
msgid "Jump targets are aligned to this power of 2"
msgstr "Sıçrama hedefleri bunun 2.kuvvetine ayarlandı"
-#: config/i386/i386.h:484
+#: config/i386/i386.h:483
msgid "Function starts are aligned to this power of 2"
msgstr "İşlev başlangıçları bunun 2.kuvvetine ayarlandı"
-#: config/i386/i386.h:487
+#: config/i386/i386.h:486
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:489
+#: config/i386/i386.h:488
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Dallanmaların bedeli (1-5, keyfi birimler)"
-#: config/i386/i386.h:491
+#: config/i386/i386.h:490
msgid "Use given x86-64 code model"
msgstr "Verilen x86-64 kod modeli kullanılır"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:497
+#: config/i386/i386.h:496
msgid "Use given assembler dialect"
msgstr "Verilen çevirici aksanı kullanılır"
-#: config/i386/i386.h:499
+#: config/i386/i386.h:498
msgid "Use given thread-local storage dialect"
msgstr "Verilen yerel evreli saklama aksanı kullanılır"
@@ -10273,58 +9761,58 @@ msgstr "Aritmetik işlemci kullanan kod üretilmez"
msgid "malformed #pragma builtin"
msgstr "'#pragma builtin' bozuk"
-#: config/ia64/ia64.c:480 config/m32r/m32r.c:356
-#, fuzzy, c-format
+#: config/ia64/ia64.c:494 config/m32r/m32r.c:360
+#, c-format
msgid "invalid argument of %qs attribute"
-msgstr "`%s' özniteliğinin argümanı geçersiz"
+msgstr "%qs özniteliğinin argümanı geçersiz"
-#: config/ia64/ia64.c:492
+#: config/ia64/ia64.c:506
msgid "%Jan address area attribute cannot be specified for local variables"
msgstr "%J bir adres alanı özelliği yerel değişkenler için belirtilemez"
-#: config/ia64/ia64.c:499
+#: config/ia64/ia64.c:513
msgid "%Jaddress area of '%s' conflicts with previous declaration"
msgstr "%J '%s' adres alanı önceki bildirimle çelişiyor"
-#: config/ia64/ia64.c:506
+#: config/ia64/ia64.c:520
msgid "%Jaddress area attribute cannot be specified for functions"
msgstr "%J adres alanı özelliği işlevler için belirtilemez"
-#: config/ia64/ia64.c:3784
+#: config/ia64/ia64.c:4183
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: bilinmeyen kod"
-#: config/ia64/ia64.c:4124 config/pa/pa.c:316
+#: config/ia64/ia64.c:4556 config/pa/pa.c:324
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:4151 config/pa/pa.c:343
+#: config/ia64/ia64.c:4583 config/pa/pa.c:351
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s aralığı boş"
-#: config/ia64/ia64.c:4202
+#: config/ia64/ia64.c:4634
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:4219
+#: config/ia64/ia64.c:4651
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:4236
+#: config/ia64/ia64.c:4668
msgid "cannot optimize square root for both latency and throughput"
msgstr "karekök hem iş geçişi hem de gecikme için eniyilenemez"
-#: config/ia64/ia64.c:4250
+#: config/ia64/ia64.c:4682
msgid "not yet implemented: latency-optimized inline square root"
msgstr "henüz gerçeklenmedi: gecikme eniyilemeli satıriçi karekök alma"
-#: config/ia64/ia64.c:4262
+#: config/ia64/ia64.c:4694
#, c-format
msgid "bad value (%s) for -mtls-size= switch"
msgstr "-mtls-size= seçeneğinin değeri (%s) hatalı"
-#: config/ia64/ia64.c:4278
+#: config/ia64/ia64.c:4710
#, c-format
msgid "bad value (%s) for -tune= switch"
msgstr "-tune= seçeneğinin değeri (%s) hatalı"
@@ -10332,174 +9820,167 @@ msgstr "-tune= 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:182
+#: config/ia64/ia64.h:178
msgid "Generate big endian code"
msgstr "Büyük ilkli kod üretilir"
-#: config/ia64/ia64.h:184 config/mcore/mcore.h:146
+#: config/ia64/ia64.h:180 config/mcore/mcore.h:146
msgid "Generate little endian code"
msgstr "Küçük ilkli kod üretilir"
-#: config/ia64/ia64.h:186
+#: config/ia64/ia64.h:182
msgid "Generate code for GNU as"
msgstr "Kod GNU as için üretilir"
-#: config/ia64/ia64.h:188
+#: config/ia64/ia64.h:184
msgid "Generate code for Intel as"
msgstr "Kod Intel as için üretilir"
-#: config/ia64/ia64.h:190
+#: config/ia64/ia64.h:186
msgid "Generate code for GNU ld"
msgstr "Kod GNU ld için üretilir"
-#: config/ia64/ia64.h:192
+#: config/ia64/ia64.h:188
msgid "Generate code for Intel ld"
msgstr "Kod Intel ld için üretilir"
-#: config/ia64/ia64.h:194
+#: config/ia64/ia64.h:190
msgid "Generate code without GP reg"
msgstr "GP yazmaçsız kod üretilir"
-#: config/ia64/ia64.h:196
+#: config/ia64/ia64.h:192
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:198
+#: config/ia64/ia64.h:194
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:200
-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:202
+#: config/ia64/ia64.h:196
msgid "Use in/loc/out register names"
msgstr "in/loc/out yazmaç isimleri kullanılır"
-#: config/ia64/ia64.h:204
+#: config/ia64/ia64.h:198
msgid "Disable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss kullanımı iptal edilir"
-#: config/ia64/ia64.h:206
+#: config/ia64/ia64.h:200
msgid "Enable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss kullanımı etkinleştirilir"
-#: config/ia64/ia64.h:208
+#: config/ia64/ia64.h:202
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:210
+#: config/ia64/ia64.h:204
msgid "Generate self-relocatable code"
msgstr "Kendiliğinden konum değiştirebilen kod üretilir"
-#: config/ia64/ia64.h:212
+#: config/ia64/ia64.h:206
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:214
+#: config/ia64/ia64.h:208
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:217
-#, fuzzy
+#: config/ia64/ia64.h:211
msgid "Do not inline floating point division"
-msgstr "Kayan noktalı sabitleri TOC'a koymaz"
+msgstr ""
-#: config/ia64/ia64.h:219
+#: config/ia64/ia64.h:213
msgid "Generate inline integer division, optimize for latency"
msgstr "Satıriçi tamsayı bölme üretir, geciktirme için eniyilenir"
-#: config/ia64/ia64.h:221
+#: config/ia64/ia64.h:215
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:223
-#, fuzzy
+#: config/ia64/ia64.h:217
msgid "Do not inline integer division"
-msgstr "Derleme anı sıfırla tamsayı bölme taşması için uyarır"
+msgstr ""
-#: config/ia64/ia64.h:225
+#: config/ia64/ia64.h:219
msgid "Generate inline square root, optimize for latency"
msgstr "Satıriçi karekök üretir, geciktirme için eniyilenir"
-#: config/ia64/ia64.h:227
+#: config/ia64/ia64.h:221
msgid "Generate inline square root, optimize for throughput"
msgstr "Satıriçi karekök üretir, iş geçişi için eniyilenir"
-#: config/ia64/ia64.h:229
-#, fuzzy
+#: config/ia64/ia64.h:223
msgid "Do not inline square root"
-msgstr "space yazmaçları kapatılmaz"
+msgstr "Karekök satıriçine alınmaz"
-#: config/ia64/ia64.h:231
+#: config/ia64/ia64.h:225
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:233
+#: config/ia64/ia64.h:227
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:235
+#: config/ia64/ia64.h:229
msgid "Enable earlier placing stop bits for better scheduling"
msgstr "Daha iyi zamanlama için stop bitlerinin daha önce yerleştirilmesi etkin olur"
-#: config/ia64/ia64.h:237
+#: config/ia64/ia64.h:231
msgid "Disable earlier placing stop bits"
msgstr "Stop bitlerinin daha önce yerleştirilmesi iptal edilir"
-#: config/ia64/ia64.h:282
+#: config/ia64/ia64.h:276
msgid "Specify range of registers to make fixed"
msgstr "Belirlemek için yazmaç aralığı belirtilir"
-#: config/ip2k/ip2k.c:1086
+#: config/ip2k/ip2k.c:1087
msgid "bad operand"
msgstr "hatalı terim"
-#: config/iq2000/iq2000.c:1647
+#: config/iq2000/iq2000.c:1649
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "-mcpu= seçeneğinin değeri (%s) hatalı"
-#: config/iq2000/iq2000.c:1676
+#: config/iq2000/iq2000.c:1678
#, c-format
msgid "The compiler does not support -march=%s."
msgstr "Derleyici -march=%s desteklemez."
-#: config/iq2000/iq2000.c:2063
+#: config/iq2000/iq2000.c:2065
#, 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/iq2000/iq2000.c:2845
-#, fuzzy, c-format
+#: config/iq2000/iq2000.c:2847
+#, c-format
msgid "argument %qd is not a constant"
-msgstr "`%d' argümanı bir sabit değil"
+msgstr "%qd argümanı bir sabit değil"
-#: config/iq2000/iq2000.c:3148 config/xtensa/xtensa.c:2033
+#: config/iq2000/iq2000.c:3150 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, boş gösterici"
-#: config/iq2000/iq2000.c:3303
+#: config/iq2000/iq2000.c:3305
#, c-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr "PRINT_OPERAND: '%c' noktalaması bilinmiyor"
-#: config/iq2000/iq2000.c:3312 config/mips/mips.c:4821
+#: config/iq2000/iq2000.c:3314 config/mips/mips.c:4832
#: config/xtensa/xtensa.c:1887
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND boş gösterici"
-#: config/iq2000/iq2000.c:3381
+#: config/iq2000/iq2000.c:3383
#, c-format
msgid "invalid %%P operand"
msgstr "%%P terimi geçersiz"
-#: config/iq2000/iq2000.c:3389 config/rs6000/rs6000.c:10648
+#: config/iq2000/iq2000.c:3391 config/rs6000/rs6000.c:10736
#, c-format
msgid "invalid %%p value"
msgstr "%%p değeri geçersiz"
-#: config/iq2000/iq2000.c:3453 config/mips/mips.c:4947
+#: config/iq2000/iq2000.c:3455 config/mips/mips.c:4958
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "%%d, %%x, ya da %%X kullanımı geçersiz"
@@ -10516,87 +9997,87 @@ msgstr "GP göreli sdata/sbss bölümleri kullanılır"
msgid "Don't use GP relative sdata/sbss sections"
msgstr "GP göreli sdata/sbss bölümleri kullanılmaz"
-#: config/iq2000/iq2000.h:78 config/mips/mips.h:585
+#: config/iq2000/iq2000.h:78 config/mips/mips.h:589
msgid "Use ROM instead of RAM"
msgstr "RAM yerine ROM kullanılır"
-#: config/iq2000/iq2000.h:80 config/mips/mips.h:587
+#: config/iq2000/iq2000.h:80 config/mips/mips.h:591
msgid "Don't use ROM instead of RAM"
msgstr "RAM yerine ROM kullanılmaz"
-#: config/iq2000/iq2000.h:82 config/mips/mips.h:589
+#: config/iq2000/iq2000.h:82 config/mips/mips.h:593
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Ä°lklenmemiÅŸ sabitleri ROM'a koyar (-membedded-data gerektirir)"
-#: config/iq2000/iq2000.h:84 config/mips/mips.h:591
+#: config/iq2000/iq2000.h:84 config/mips/mips.h:595
msgid "Don't put uninitialized constants in ROM"
msgstr "Ä°lklenmemiÅŸ sabitleri ROM'a koymaz"
-#: config/iq2000/iq2000.h:106 config/mips/mips.h:776
+#: config/iq2000/iq2000.h:106 config/mips/mips.h:780
msgid "Specify CPU for scheduling purposes"
msgstr "Zamanlama kullanımı için CPU belirtilir"
-#: config/iq2000/iq2000.h:108 config/mips/mips.h:778
+#: config/iq2000/iq2000.h:108 config/mips/mips.h:782
msgid "Specify CPU for code generation purposes"
msgstr "Kod üretim amacıyla MİB belirtilir"
-#: config/m32r/m32r.c:174
+#: config/m32r/m32r.c:178
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "-mmodel seçeneğinin değeri (%s) hatalı"
-#: config/m32r/m32r.c:183
+#: config/m32r/m32r.c:187
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "-msdata seçeneğinin değeri (%s) hatalı"
-#: config/m32r/m32r.c:190
+#: config/m32r/m32r.c:194
#, c-format
msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
msgstr "-flush-trap=n seçeneğinin değeri (%s) hatalı (0=<n<=15)"
-#: config/m32r/m32r.c:2100
+#: config/m32r/m32r.c:2111
#, c-format
msgid "invalid operand to %%s code"
msgstr "%%s kodu için terim geçersiz"
-#: config/m32r/m32r.c:2107
+#: config/m32r/m32r.c:2118
#, c-format
msgid "invalid operand to %%p code"
msgstr "%%p kodu için terim geçersiz"
-#: config/m32r/m32r.c:2162
+#: config/m32r/m32r.c:2173
msgid "bad insn for 'A'"
msgstr "'A' için hatalı komut"
-#: config/m32r/m32r.c:2209
+#: config/m32r/m32r.c:2220
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "%%T/%%B kodu için terim geçersiz"
-#: config/m32r/m32r.c:2232
+#: config/m32r/m32r.c:2243
#, c-format
msgid "invalid operand to %%N code"
msgstr "%%N kodu için terim geçersiz"
-#: config/m32r/m32r.c:2265
+#: config/m32r/m32r.c:2276
msgid "pre-increment address is not a register"
msgstr "ön arttırımlı adres bir yazmaç değil"
-#: config/m32r/m32r.c:2272
+#: config/m32r/m32r.c:2283
msgid "pre-decrement address is not a register"
msgstr "ön eksiltmeli adres bir yazmaç değil"
-#: config/m32r/m32r.c:2279
+#: config/m32r/m32r.c:2290
msgid "post-increment address is not a register"
msgstr "sonradan arttırımlı adres bir yazmaç değil"
-#: config/m32r/m32r.c:2355 config/m32r/m32r.c:2371
-#: config/rs6000/rs6000.c:17326
+#: config/m32r/m32r.c:2366 config/m32r/m32r.c:2382
+#: config/rs6000/rs6000.c:17465
msgid "bad address"
msgstr "hatalı adres"
-#: config/m32r/m32r.c:2376
+#: config/m32r/m32r.c:2387
msgid "lo_sum not of register"
msgstr "lo_sum yazmacın değil"
@@ -10625,11 +10106,11 @@ msgstr "Kod boyutu: small, medium veya large"
msgid "Small data area: none, sdata, use"
msgstr "Küçük veri alanı: none, sdata, use"
-#: config/m32r/m32r.h:316 config/mips/mips.h:784
+#: config/m32r/m32r.h:316 config/mips/mips.h:788
msgid "Don't call any cache flush functions"
msgstr "Hiçbir arabellek boşaltma işlevi çağrılmaz"
-#: config/m32r/m32r.h:318 config/mips/mips.h:786
+#: config/m32r/m32r.h:318 config/mips/mips.h:790
msgid "Specify cache flush function"
msgstr "Arabellek boÅŸaltma iÅŸlevi belirtilir"
@@ -10646,51 +10127,49 @@ msgstr "Arabellek boşaltma kapan numarası belirtilir"
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "68HC11/68HC12 için -f%s yoksayıldı (desteklenmiyor)"
-#: config/m68hc11/m68hc11.c:1435
-#, fuzzy
+#: config/m68hc11/m68hc11.c:1433
msgid "%<trap%> and %<far%> attributes are not compatible, ignoring %<far%>"
-msgstr "`trap' ve `far' nitelikleri uyumlu değil, `far' yoksayılıyor"
+msgstr "%<trap%> ve %<far%> öznitelikleri uyumlu değil, %<far%> yoksayılıyor"
-#: config/m68hc11/m68hc11.c:1441
-#, fuzzy
+#: config/m68hc11/m68hc11.c:1439
msgid "%<trap%> attribute is already used"
-msgstr "`trap' özelliği zaten kullanılmış"
+msgstr "%<trap%> özelliği zaten kullanılmış"
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3400 config/m68hc11/m68hc11.c:3784
+#: config/m68hc11/m68hc11.c:3398 config/m68hc11/m68hc11.c:3782
msgid "move insn not handled"
msgstr "taşıma komutu elde edilmedi"
-#: config/m68hc11/m68hc11.c:3632 config/m68hc11/m68hc11.c:3716
-#: config/m68hc11/m68hc11.c:3987
+#: config/m68hc11/m68hc11.c:3630 config/m68hc11/m68hc11.c:3714
+#: config/m68hc11/m68hc11.c:3985
msgid "invalid register in the move instruction"
msgstr "move komutundaki yazmaç geçersiz"
-#: config/m68hc11/m68hc11.c:3666
+#: config/m68hc11/m68hc11.c:3664
msgid "invalid operand in the instruction"
msgstr "komuttaki terim geçersiz"
-#: config/m68hc11/m68hc11.c:3961
+#: config/m68hc11/m68hc11.c:3959
msgid "invalid register in the instruction"
msgstr "komuttaki yazmaç geçersiz"
-#: config/m68hc11/m68hc11.c:3994
+#: config/m68hc11/m68hc11.c:3992
msgid "operand 1 must be a hard register"
msgstr "1. terim bir donanım yazmacı olmalı"
-#: config/m68hc11/m68hc11.c:4008
+#: config/m68hc11/m68hc11.c:4006
msgid "invalid rotate insn"
msgstr "geçersiz döngü komutu"
-#: config/m68hc11/m68hc11.c:4432
+#: config/m68hc11/m68hc11.c:4430
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:4769 config/m68hc11/m68hc11.c:5069
+#: config/m68hc11/m68hc11.c:4767 config/m68hc11/m68hc11.c:5067
msgid "cannot do z-register replacement"
msgstr "z-yazmaç yer değiştirmesi yapılamaz"
-#: config/m68hc11/m68hc11.c:5132
+#: config/m68hc11/m68hc11.c:5130
msgid "invalid Z register replacement for insn"
msgstr "komut için Z yazmaç yerdeğiştirmesi geçersiz"
@@ -10784,7 +10263,7 @@ msgstr "hem -msep-data hem de -mid-shared-library belirtilemez"
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr "-fPIC şu an 68000 veya 68010 için desteklenmiyor\n"
-#: config/m68k/m68k.c:543 config/rs6000/rs6000.c:13479
+#: config/m68k/m68k.c:547 config/rs6000/rs6000.c:13592
msgid "stack limit expression is not supported"
msgstr "yığın sınırlama ifadesi desteklenmiyor"
@@ -10805,12 +10284,10 @@ msgid "Do not use the bit-field instructions"
msgstr "Bit alanı komutları kullanılmaz"
#: config/m68k/m68k.h:256
-#, fuzzy
msgid "Consider type 'int' to be 16 bits wide"
msgstr "`int' tür 16 bit genişlikte varsayılır"
#: config/m68k/m68k.h:258
-#, fuzzy
msgid "Consider type 'int' to be 32 bits wide"
msgstr "`int' tür 32 bit genişlikte varsayılır"
@@ -10923,10 +10400,9 @@ msgstr "'rtd' kullanılan farklı çağrı uzlaşımı kullanılır"
msgid "ID of shared library to build"
msgstr "derlenecek paylaşımlı kütüphane kimliği"
-#: config/mcore/mcore.c:2987
-#, fuzzy
+#: config/mcore/mcore.c:2992
msgid "invalid option %<-mstack-increment=%s%>"
-msgstr "`-mstack-increment=%s' seçeneği geçersiz"
+msgstr "%<-mstack-increment=%s%> seçeneği geçersiz"
#: config/mcore/mcore.h:113
msgid "Inline constants if it can be done in 2 insns or less"
@@ -10980,137 +10456,137 @@ 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:4018
+#: config/mips/mips.c:4025
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr "-mabi= seçeneğinin değeri (%s) hatalı"
-#: config/mips/mips.c:4041
+#: config/mips/mips.c:4048
#, c-format
msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr "-mips%s, bir MIPS%d işlemci belirtildiğinden diğer mimari seçenekleri ile çelişiyor"
-#: config/mips/mips.c:4060
+#: config/mips/mips.c:4067
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "-march=%s seçilen ABI ile uyumsuz"
-#: config/mips/mips.c:4075
+#: config/mips/mips.c:4082
msgid "-mgp64 used with a 32-bit processor"
msgstr "-mgp64 bir 32-bit işlemci ile kullanılmış"
-#: config/mips/mips.c:4077
+#: config/mips/mips.c:4084
msgid "-mgp32 used with a 64-bit ABI"
msgstr "-mgp32 bir 64-bit ABI ile kullanılmış"
-#: config/mips/mips.c:4079
+#: config/mips/mips.c:4086
msgid "-mgp64 used with a 32-bit ABI"
msgstr "-mgp64 bir 32-bit ABI ile kullanılmış"
-#: config/mips/mips.c:4097 config/mips/mips.c:4099 config/mips/mips.c:4101
-#: config/mips/mips.c:4181
+#: config/mips/mips.c:4104 config/mips/mips.c:4106 config/mips/mips.c:4108
+#: config/mips/mips.c:4192
#, c-format
msgid "unsupported combination: %s"
msgstr "desteklenmeyen birleÅŸim: %s"
-#: config/mips/mips.c:4176
+#: config/mips/mips.c:4136
+msgid "-mint64 is a deprecated option"
+msgstr "-mint64 önerilmeyen bir seçenektir"
+
+#: config/mips/mips.c:4187
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:4193
+#: config/mips/mips.c:4204
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G öntanımlı olan PIC kodu ile uyumsuz"
-#: config/mips/mips.c:4260
+#: config/mips/mips.c:4271
msgid "-mips3d requires -mpaired-single"
-msgstr ""
+msgstr "-mips3d seçeneği -mpaired-single gerektirir"
-#: config/mips/mips.c:4269
+#: config/mips/mips.c:4280
msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
-msgstr ""
+msgstr "-mips3d/-mpaired-single seçeneği -mfp64 -mhard-float ile kullanılmalı"
-#: config/mips/mips.c:4274
-#, fuzzy
+#: config/mips/mips.c:4285
msgid "-mips3d/-mpaired-single must be used with -mips64"
-msgstr "-frepo, -c ile kullanılmalı"
+msgstr "-mips3d/-mpaired-single seçeneği -mips64 ile kullanılmalı"
-#: config/mips/mips.c:4632
+#: config/mips/mips.c:4643
msgid "mips_debugger_offset called with non stack/frame/arg pointer"
msgstr "stack/frame/arg göstericisi olmadan mips_debugger_offset çağrısı"
-#: config/mips/mips.c:4758
+#: config/mips/mips.c:4769
#, 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:4772
+#: config/mips/mips.c:4783
#, 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:4785
+#: config/mips/mips.c:4796
#, 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:4798
+#: config/mips/mips.c:4809
#, 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:4812
+#: config/mips/mips.c:4823
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: '%c' noktalaması bilinmiyor"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:4852
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr "PRINT_OPERAND, %%C için geçersiz komut"
-#: config/mips/mips.c:4858
+#: config/mips/mips.c:4869
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr "PRINT_OPERAND, %%N için geçersiz komut"
-#: config/mips/mips.c:4867
+#: config/mips/mips.c:4878
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%F"
msgstr "PRINT_OPERAND, %%F için geçersiz komut"
-#: config/mips/mips.c:4876
+#: config/mips/mips.c:4887
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%W"
msgstr "PRINT_OPERAND, %%W için geçersiz komut"
-#: config/mips/mips.c:4897
-#, fuzzy, c-format
+#: config/mips/mips.c:4908
+#, c-format
msgid "invalid %%Y value"
-msgstr "%%j değeri geçersiz"
+msgstr "%%Y değeri geçersiz"
-#: config/mips/mips.c:4975
+#: config/mips/mips.c:4986
msgid "PRINT_OPERAND, invalid operand for relocation"
msgstr "PRINT_OPERAND, yerdeğiştirme için terim geçersiz"
-#: config/mips/mips.c:7561
-#, fuzzy, c-format
+#: config/mips/mips.c:7573
+#, c-format
msgid "cannot handle inconsistent calls to %qs"
-msgstr "çelişkili `%s' çağrıları elde edilemez"
+msgstr "çelişkili %qs çağrıları elde edilemez"
-#: config/mips/mips.c:8951
+#: config/mips/mips.c:8963
msgid "the cpu name must be lower case"
msgstr "işlemci ismi küçük harflerle yazılmalıdır"
-#: config/mips/mips.c:8973
+#: config/mips/mips.c:8985
#, c-format
msgid "bad value (%s) for %s"
msgstr "%2$s için değer (%1$s) hatalı"
-#: config/mips/linux64.h:39
-msgid "Same as -mabi=32, just trickier"
-msgstr "-mabi=32 ile aynı, sadece daha kolay"
-
#. Target CPU builtins.
+#. Everyone but IRIX defines this to mips.
#. 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.
@@ -11120,64 +10596,63 @@ msgstr "-mabi=32 ile aynı, sadece daha kolay"
#. 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:533
+#: config/mips/mips.h:537
msgid "Use 64-bit int type"
msgstr "64-bit int tür kullanılır"
-#: config/mips/mips.h:535
+#: config/mips/mips.h:539
msgid "Use 64-bit long type"
msgstr "64-bit long tür kullanılır"
-#: config/mips/mips.h:537
+#: config/mips/mips.h:541
msgid "Use 32-bit long type"
msgstr "32-bit long tür kullanılır"
-#: config/mips/mips.h:539
+#: config/mips/mips.h:543
msgid "Optimize lui/addiu address loads"
msgstr "lui/addiu adres yüklemeleri eniyilenir"
-#: config/mips/mips.h:541
+#: config/mips/mips.h:545
msgid "Don't optimize lui/addiu address loads"
msgstr "lui/addiu adres yüklemeleri eniyilenmez"
-#: config/mips/mips.h:543
-#, fuzzy
+#: config/mips/mips.h:547
msgid "Use GNU as (now ignored)"
-msgstr "GP göreli sdata/sbss bölümleri kullanılır (şimdi yoksayılıyor)"
+msgstr "GNU as kullanılır (şimdi yoksayılıyor)"
-#: config/mips/mips.h:545 config/mips/mips.h:547
+#: config/mips/mips.h:549 config/mips/mips.h:551
msgid "Use GP relative sdata/sbss sections (now ignored)"
msgstr "GP göreli sdata/sbss bölümleri kullanılır (şimdi yoksayılıyor)"
-#: config/mips/mips.h:549 config/mips/mips.h:551
+#: config/mips/mips.h:553 config/mips/mips.h:555
msgid "Don't use GP relative sdata/sbss sections (now ignored)"
msgstr "GP göreli sdata/sbss bölümleri kullanılmaz (şimdi yoksayılıyor)"
-#: config/mips/mips.h:553
+#: config/mips/mips.h:557
msgid "Output compiler statistics (now ignored)"
msgstr "Derleyici istatistikleri çıktılanır (şimdi yoksayılıyor)"
-#: config/mips/mips.h:555
+#: config/mips/mips.h:559
msgid "Don't output compiler statistics"
msgstr "Derleyici istatistikleri çıktılanmaz"
-#: config/mips/mips.h:557
+#: config/mips/mips.h:561
msgid "Don't optimize block moves"
msgstr "Blok taşıma eniyilemesi yapılmaz"
-#: config/mips/mips.h:559
+#: config/mips/mips.h:563
msgid "Optimize block moves"
msgstr "Blok taşımalar eniyilenir"
-#: config/mips/mips.h:561
+#: config/mips/mips.h:565
msgid "Use mips-tfile asm postpass"
msgstr "mips-tfile asm postpass kullanır"
-#: config/mips/mips.h:563
+#: config/mips/mips.h:567
msgid "Don't use mips-tfile asm postpass"
msgstr "mips-tfile asm postpass kullanmaz"
-#: config/mips/mips.h:565 config/pa/pa.h:288
+#: config/mips/mips.h:569 config/pa/pa.h:288
msgid "Use software floating point"
msgstr "Yazılım kayan nokta kodu kullanılır"
@@ -11187,206 +10662,193 @@ msgstr "Yazılım kayan nokta kodu kullanılır"
#. 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:567 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
+#: config/mips/mips.h:571 config/pdp11/pdp11.h:61 config/rs6000/rs6000.h:329
msgid "Use hardware floating point"
msgstr "Donanım kayan nokta aritmetiği kullanılır"
-#: config/mips/mips.h:569
+#: config/mips/mips.h:573
msgid "Use 64-bit FP registers"
msgstr "64 bitlik FP yazmaçları kullanılır"
-#: config/mips/mips.h:571
+#: config/mips/mips.h:575
msgid "Use 32-bit FP registers"
msgstr "32 bitlik FP yazmaçları kullanılır"
-#: config/mips/mips.h:573
+#: config/mips/mips.h:577
msgid "Use 64-bit general registers"
msgstr "64 bitlik genel yazmaçlar kullanılır"
-#: config/mips/mips.h:575
+#: config/mips/mips.h:579
msgid "Use 32-bit general registers"
msgstr "32 bitlik genel yazmaçlar kullanılır"
-#: config/mips/mips.h:577
+#: config/mips/mips.h:581
msgid "Use Irix PIC"
msgstr "Irix PIC kullanılır"
-#: config/mips/mips.h:579
+#: config/mips/mips.h:583
msgid "Don't use Irix PIC"
msgstr "Irix PIC kullanılmaz"
-#: config/mips/mips.h:581
+#: config/mips/mips.h:585
msgid "Use indirect calls"
msgstr "Dolaylı çağrılar kullanılır"
-#: config/mips/mips.h:583
+#: config/mips/mips.h:587
msgid "Don't use indirect calls"
msgstr "Dolaylı çağrılar kullanılmaz"
-#: config/mips/mips.h:593
+#: config/mips/mips.h:597
msgid "Use big-endian byte order"
msgstr "Büyük ilkli bayt sıralaması kullanılır"
-#: config/mips/mips.h:595
+#: config/mips/mips.h:599
msgid "Use little-endian byte order"
msgstr "Küçük ilkli bayt sıralaması kullanılır"
-#: config/mips/mips.h:597
+#: config/mips/mips.h:601
msgid "Use single (32-bit) FP only"
msgstr "Sadece tek (32 bit) FP kullanır"
-#: config/mips/mips.h:599
+#: config/mips/mips.h:603
msgid "Don't use single (32-bit) FP only"
msgstr "Sadece tek (32 bit) FP kullanmaz"
-#: config/mips/mips.h:601 config/mips/mips.h:603
-#, fuzzy
+#: config/mips/mips.h:605 config/mips/mips.h:607
msgid "Use paired-single floating point instructions"
-msgstr "Donanım kayan nokta komutları kullanılır"
+msgstr ""
-#: config/mips/mips.h:605 config/mips/mips.h:607
-#, fuzzy
+#: config/mips/mips.h:609 config/mips/mips.h:611
msgid "Use MIPS-3D instructions"
-msgstr "MIPS16 komutları kullanılmaz"
+msgstr "MIPS-3D komutları kullanılır"
-#: config/mips/mips.h:609
+#: config/mips/mips.h:613
msgid "Use multiply accumulate"
msgstr "Çarpma biriktirmesi kullanır"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:615
msgid "Don't use multiply accumulate"
msgstr "Çarpma biriktirmesi kullanmaz"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:617
msgid "Don't generate fused multiply/add instructions"
msgstr "Birleşik çarpma/toplama komutları üretilmez"
-#: config/mips/mips.h:615 config/rs6000/rs6000.h:345
+#: config/mips/mips.h:619 config/rs6000/rs6000.h:345
msgid "Generate fused multiply/add instructions"
msgstr "Birleşik çarpma/toplama komutları üretilir"
-#: config/mips/mips.h:617
-#, fuzzy
+#: config/mips/mips.h:621
msgid "Perform VR4130-specific alignment optimizations"
-msgstr "Atlama evresi oluşturma eniyilemesi uygulanır"
+msgstr "VR4130'a özgü hizalama eniyilemeleri uygulanır"
-#: config/mips/mips.h:619
-#, fuzzy
+#: config/mips/mips.h:623
msgid "Don't perform VR4130-specific alignment optimizations"
-msgstr "Kuyruk çağrı eniyilemesi uygulanmaz"
+msgstr "VR4130'a özgü hizalama eniyilemeleri uygulanmaz"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:625
msgid "Work around early 4300 hardware bug"
msgstr "İlk üretim 4300 donanım hatasının olurunu bulur"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:627
msgid "Don't work around early 4300 hardware bug"
msgstr "İlk üretim 4300 donanım hatasının olurunu bulmaz"
-#: config/mips/mips.h:625
+#: config/mips/mips.h:629
msgid "Work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:627
+#: config/mips/mips.h:631
msgid "Don't work around errata for early SB-1 revision 2 cores"
msgstr ""
-#: config/mips/mips.h:629
-#, fuzzy
+#: config/mips/mips.h:633
msgid "Work around R4000 errata"
-msgstr "İlk üretim 4300 donanım hatasının olurunu bulur"
+msgstr ""
-#: config/mips/mips.h:631
-#, fuzzy
+#: config/mips/mips.h:635
msgid "Don't work around R4000 errata"
-msgstr "İlk üretim 4300 donanım hatasının olurunu bulmaz"
+msgstr ""
-#: config/mips/mips.h:633
-#, fuzzy
+#: config/mips/mips.h:637
msgid "Work around R4400 errata"
-msgstr "İlk üretim 4300 donanım hatasının olurunu bulur"
+msgstr ""
-#: config/mips/mips.h:635
-#, fuzzy
+#: config/mips/mips.h:639
msgid "Don't work around R4400 errata"
-msgstr "İlk üretim 4300 donanım hatasının olurunu bulmaz"
+msgstr ""
-#: config/mips/mips.h:637
+#: config/mips/mips.h:641
msgid "Work around certain VR4120 errata"
msgstr ""
-#: config/mips/mips.h:639
-#, fuzzy
+#: config/mips/mips.h:643
msgid "Don't work around certain VR4120 errata"
-msgstr "İlk üretim 4300 donanım hatasının olurunu bulmaz"
+msgstr ""
-#: config/mips/mips.h:641
+#: config/mips/mips.h:645
msgid "Trap on integer divide by zero"
msgstr "Sıfırla tamsayı bölme taşması yakalanır"
-#: config/mips/mips.h:643
+#: config/mips/mips.h:647
msgid "Don't trap on integer divide by zero"
msgstr "Sıfırla tamsayı bölme taşması yakalanmaz"
-#: config/mips/mips.h:645
-#, fuzzy
+#: config/mips/mips.h:649
msgid "Use trap to check for integer divide by zero"
-msgstr "Sıfırla tamsayı bölme taşması yakalanır"
+msgstr ""
-#: config/mips/mips.h:647
-#, fuzzy
+#: config/mips/mips.h:651
msgid "Use break to check for integer divide by zero"
-msgstr "Sıfırla tamsayı bölme taşması yakalanır"
+msgstr ""
-#: config/mips/mips.h:649
+#: config/mips/mips.h:653
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:651
+#: config/mips/mips.h:655
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:653
+#: config/mips/mips.h:657
msgid "Use NewABI-style %reloc() assembly operators"
msgstr "NewABI tarzı %reloc() asm işleçleri kullanılır"
-#: config/mips/mips.h:655
+#: config/mips/mips.h:659
msgid "Use assembler macros instead of relocation operators"
msgstr "Yerdeğiştirme işleçleri yerine asm makroları kullanılır"
-#: config/mips/mips.h:657
+#: config/mips/mips.h:661
msgid "Generate mips16 code"
msgstr "mips16 kodu üretilir"
-#: config/mips/mips.h:659
+#: config/mips/mips.h:663
msgid "Generate normal-mode code"
msgstr "Normal kipli kod üretilir"
-#: config/mips/mips.h:661
+#: config/mips/mips.h:665
msgid "Lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:663
+#: config/mips/mips.h:667
msgid "Do not lift restrictions on GOT size"
msgstr ""
-#: config/mips/mips.h:665
-#, fuzzy
+#: config/mips/mips.h:669
msgid "FP exceptions are enabled"
-msgstr "etkin seçenekler: "
+msgstr ""
-#: config/mips/mips.h:667
-#, fuzzy
+#: config/mips/mips.h:671
msgid "FP exceptions are not enabled"
-msgstr "ON olağandışılık isimleri eşsiz olmalı"
+msgstr ""
-#: config/mips/mips.h:782
+#: config/mips/mips.h:786
msgid "Specify a Standard MIPS ISA"
msgstr "Bir Standard MIPS ISA belirtilir"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2321
+#: config/mips/mips.h:2318
msgid "mips16 function profiling"
msgstr "mips16 işlev ayrımlama"
@@ -11396,9 +10858,9 @@ msgid "-f%s not supported: ignored"
msgstr "-f%s desteklenmiyor: yoksayıldı"
#: config/mmix/mmix.c:657
-#, fuzzy, c-format
+#, c-format
msgid "support for mode %qs"
-msgstr "'%s' kipi için bir veri türü yok"
+msgstr "%qs kipi için destek"
#: config/mmix/mmix.c:671
#, c-format
@@ -11413,70 +10875,70 @@ msgstr "MMIX için function_profiler desteği"
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr "MMIX Dahili: Son isimli argüman bir yazmaça sığamamalı"
-#: config/mmix/mmix.c:1462 config/mmix/mmix.c:1592
+#: config/mmix/mmix.c:1471 config/mmix/mmix.c:1601
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX Dahili: Bu deÄŸil, bir CONST_INT bekleniyor"
-#: config/mmix/mmix.c:1470 config/mmix/mmix.c:1494 config/mmix/mmix.c:1610
+#: config/mmix/mmix.c:1479 config/mmix/mmix.c:1503 config/mmix/mmix.c:1619
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX Dahili: Hatalı yazmaç: %d"
-#: config/mmix/mmix.c:1541
+#: config/mmix/mmix.c:1550
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:1560
+#: config/mmix/mmix.c:1569
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX Dahili: Bu değil, bir yazmaç bekleniyor"
-#: config/mmix/mmix.c:1570
+#: config/mmix/mmix.c:1579
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:1602
-#, fuzzy, c-format
+#: config/mmix/mmix.c:1611
+#, c-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
-msgstr "MMIX Dahili: mmix_print_operand içideki `%c' case eksik"
+msgstr "MMIX Dahili: mmix_print_operand içindeki %qc case eksik"
#. We need the original here.
-#: config/mmix/mmix.c:1654
+#: config/mmix/mmix.c:1663
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX Dahili: Bu terim iÅŸlenemez"
-#: config/mmix/mmix.c:1711
+#: config/mmix/mmix.c:1720
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX Dahili: Bu bilinen bir adres deÄŸil"
-#: config/mmix/mmix.c:1888
+#: config/mmix/mmix.c:1897
#, 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:2127
+#: config/mmix/mmix.c:2133
#, 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:2601 config/mmix/mmix.c:2665
+#: config/mmix/mmix.c:2606 config/mmix/mmix.c:2670
#, 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:2781
+#: config/mmix/mmix.c:2786
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:2788
+#: config/mmix/mmix.c:2793
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX Dahili: Bunun CC'si nedir?"
-#: config/mmix/mmix.c:2792
+#: config/mmix/mmix.c:2797
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX Dahili: Bunun CC'si nedir?"
-#: config/mmix/mmix.c:2862
+#: config/mmix/mmix.c:2867
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX Dahili: Bu bir sabit deÄŸil:"
@@ -11549,15 +11011,15 @@ msgstr "Her işlev için tek çıkış noktası üretilir"
msgid "Do not generate a single exit point for each function"
msgstr "Her işlev için tek çıkış noktası üretilmez"
-#: config/mn10300/linux.h:60 config/mn10300/mn10300.h:71
+#: config/mn10300/linux.h:45 config/mn10300/mn10300.h:71
msgid "Target the AM33 processor"
msgstr "AM33 iÅŸlemci hedeflenir"
-#: config/mn10300/linux.h:61 config/mn10300/mn10300.h:75
+#: config/mn10300/linux.h:46 config/mn10300/mn10300.h:75
msgid "Target the AM33/2.0 processor"
msgstr "AM33/2.0 iÅŸlemci hedeflenir"
-#: config/mn10300/linux.h:62 config/mn10300/mn10300.h:78
+#: config/mn10300/linux.h:47 config/mn10300/mn10300.h:78
msgid "Enable linker relaxations"
msgstr "Ä°lintileyici esnekleÅŸtiriciler etkinleÅŸtirilir"
@@ -11641,7 +11103,7 @@ msgstr "\"Küçük yazmaç sınıfları\" uydurması"
msgid "No \"Small register classes\" kludge"
msgstr "\"Küçük yazmaç sınıfları\" uydurması yok"
-#: config/pa/pa.c:404
+#: config/pa/pa.c:412
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
@@ -11650,7 +11112,7 @@ msgstr ""
"bilinmeyen -mschedule= seçeneği (%s).\n"
"Geçerli seçenekler: 700, 7100, 7100LC, 7200, 7300 ve 8000\n"
-#: config/pa/pa.c:429
+#: config/pa/pa.c:437
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11659,54 +11121,59 @@ msgstr ""
"bilinmeyen -march= seçeneği (%s).\n"
"Geçerli seçenekler: 1.0, 1.1, ve 2.0\n"
-#: config/pa/pa.c:449
-#, fuzzy, c-format
+#: config/pa/pa.c:457
+#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93, 95 and 98.\n"
msgstr ""
-"bilinmeyen -march= seçeneği (%s).\n"
-"Geçerli seçenekler: 1.0, 1.1, ve 2.0\n"
+"bilinmeyen -munix= seçeneği (%s).\n"
+"Geçerli seçenekler: 93, 95 ve 98.\n"
-#: config/pa/pa.c:454
-#, fuzzy, c-format
+#: config/pa/pa.c:462
+#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid options are 93 and 95.\n"
msgstr ""
-"bilinmeyen -march= seçeneği (%s).\n"
-"Geçerli seçenekler: 1.0, 1.1, ve 2.0\n"
+"bilinmeyen -munix= seçeneği (%s).\n"
+"Geçerli seçenekler: 93 ve 95.\n"
-#: config/pa/pa.c:458
-#, fuzzy, c-format
+#: config/pa/pa.c:466
+#, c-format
msgid ""
"unknown -munix= option (%s).\n"
"Valid option is 93.\n"
msgstr ""
-"bilinmeyen -march= seçeneği (%s).\n"
-"Geçerli seçenekler: 1.0, 1.1, ve 2.0\n"
+"bilinmeyen -munix= seçeneği (%s).\n"
+"Geçerli seçenek: 93.\n"
-#: config/pa/pa.c:475
+#: config/pa/pa.c:483
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:480
+#: config/pa/pa.c:488
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:485
+#: config/pa/pa.c:493
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:486
+#: config/pa/pa.c:494
msgid "-g option disabled"
msgstr "-g seçeneği iptal edildi"
-#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:25
+#: config/pa/pa.c:8338
+#, c-format
+msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u"
+msgstr ""
+
+#: config/pa/pa-hpux.h:96 config/pa/pa64-hpux.h:26
msgid "Generate cpp defines for server IO"
msgstr "Sunucu GÇ için cpp tanımları üretilir"
-#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:27
+#: config/pa/pa-hpux.h:97 config/pa/pa64-hpux.h:28
msgid "Generate cpp defines for workstation IO"
msgstr "İstemci GÇ için cpp tanımları üretilir"
@@ -11839,27 +11306,26 @@ msgid "Enable linker optimizations"
msgstr "Ä°lintileyici eniyilemesi etkinleÅŸtirilir"
#: config/pa/pa.h:332
-#, fuzzy
msgid ""
"Specify PA-RISC architecture for code generation.\n"
"Values are 1.0, 1.1 and 2.0."
-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."
+msgstr ""
+"Kod üretimi için PA-RISC mimarisi belirtilir.\n"
+"Değerler 1.0, 1.1 ve 2.0 dır."
#: config/pa/pa.h:335
-#, fuzzy
msgid "Specify range of registers to make fixed."
-msgstr "Belirlemek için yazmaç aralığı belirtilir"
+msgstr "Belirlemek için yazmaç aralığı belirtilir."
#: config/pa/pa.h:337
-#, fuzzy
msgid "Specify CPU for scheduling purposes."
-msgstr "Zamanlama kullanımı için CPU belirtilir"
+msgstr "Zamanlama amacıyla için CPU belirtilir."
-#: config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:30
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
+#: config/pa/pa64-hpux.h:32
msgid "Assume code will be linked by HP ld"
msgstr "Kodun HP ld tarafından ilintileneceği varsayılır"
@@ -11933,14 +11399,14 @@ msgstr "DEC çevirici sözdizimi kullanılır"
#: config/rs6000/host-darwin.c:52
msgid "Segmentation Fault (code)"
-msgstr "Parçalama Arızası (kod)"
+msgstr "Bölütleme Arızası (kod)"
#: config/rs6000/host-darwin.c:83
msgid "Out of stack space.\n"
msgstr "Yığıt yetersiz.\n"
#: config/rs6000/host-darwin.c:104
-#, fuzzy, c-format
+#, c-format
msgid "Try running '%s' in the shell to raise its limit.\n"
msgstr "Sınırını belirlemek için kabukta `%s' çalıştırmayı deneyin.\n"
@@ -11996,211 +11462,236 @@ msgstr "sayı 0 ya da 1 olmalı"
msgid "junk at end of #pragma longcall"
msgstr "'#pragma longcall' sonunda karışıklık"
-#: config/rs6000/rs6000.c:1244
+#: config/rs6000/rs6000.c:1254
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:1251
+#: config/rs6000/rs6000.c:1261
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:1265
+#: config/rs6000/rs6000.c:1275
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "-mdebug-%s seçeneği bilinmiyor"
-#: config/rs6000/rs6000.c:1277
-#, fuzzy
+#: config/rs6000/rs6000.c:1287
msgid "unknown -mtraceback arg %qs; expecting %<full%>, %<partial%> or %<none%>"
-msgstr "-mtraceback ile verilen `%s' bilinmiyor; `full', `partial' ya da `none' olabilir"
+msgstr "-mtraceback ile verilen %qs bilinmiyor; %<full%>, %<partial%> veya %<none%> olabilir"
-#: config/rs6000/rs6000.c:1288
+#: config/rs6000/rs6000.c:1298
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "-mlong-double-%s seçeneği bilinmiyor"
-#: config/rs6000/rs6000.c:1338
+#: config/rs6000/rs6000.c:1354
msgid "AltiVec and E500 instructions cannot coexist"
msgstr "AltiVec ve E500 komutları birarada kullanılamaz"
-#: config/rs6000/rs6000.c:1616
+#: config/rs6000/rs6000.c:1622
#, c-format
msgid "unknown -m%s= option specified: '%s'"
msgstr "bilinmeyen -m%s= seçeneği belirtilmiş: '%s'"
-#: config/rs6000/rs6000.c:1637
+#: config/rs6000/rs6000.c:1643
#, c-format
msgid "not configured for ABI: '%s'"
msgstr "ABI için yapılandırılmadı: '%s'"
-#: config/rs6000/rs6000.c:1645
+#: config/rs6000/rs6000.c:1651
msgid "Using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1650
+#: config/rs6000/rs6000.c:1656
msgid "Using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.c:1656
+#: config/rs6000/rs6000.c:1662
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "bilinmeyen ABI belirtilmiÅŸ: '%s'"
-#: config/rs6000/rs6000.c:1673
-#, fuzzy
+#: config/rs6000/rs6000.c:1679
msgid "invalid option for -mfloat-gprs"
-msgstr "`-mshort-data-%s' seçeneği geçersiz"
+msgstr "-mfloat-gprs için seçenek geçersiz"
-#: config/rs6000/rs6000.c:1687
+#: config/rs6000/rs6000.c:1695
+msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.c:1702
#, c-format
msgid "unknown -malign-XXXXX option specified: '%s'"
msgstr "bilinmeyen -malign-XXXXX seçeneği belirtilmiş: '%s'"
-#: config/rs6000/rs6000.c:4658
+#: config/rs6000/rs6000.c:4756
msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:4731
+#: config/rs6000/rs6000.c:4829
msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "Altivec komutları kullanılamadığından vektör yazmacındaki değer döndürülemez, komutları etkinleştirmek için -maltivec kullanın."
-#: config/rs6000/rs6000.c:4920
+#: config/rs6000/rs6000.c:5018
msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
msgstr "Altivec komutları kullanılamadığından argüman vektör yazmacına aktarılamaz, komutları etkinleştirmek için -maltivec kullanın."
-#: config/rs6000/rs6000.c:5712
+#: config/rs6000/rs6000.c:5809
msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:6605
+#: config/rs6000/rs6000.c:6704
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:6708 config/rs6000/rs6000.c:7378
+#: config/rs6000/rs6000.c:6807 config/rs6000/rs6000.c:7477
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:6748
+#: config/rs6000/rs6000.c:6847
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:6802
+#: config/rs6000/rs6000.c:6901
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "`__builtin_altivec_predicate'in 1. argümanı kapsamdışı"
-#: config/rs6000/rs6000.c:6964
+#: config/rs6000/rs6000.c:7063
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:7136
-#, fuzzy, c-format
+#: config/rs6000/rs6000.c:7235
+#, c-format
msgid "argument to %qs must be a 2-bit unsigned literal"
-msgstr "`%s' argümanı 2 bitlik işaretsiz bir sabit olmalı"
+msgstr "%qs argümanı 2 bitlik işaretsiz bir sabit olmalı"
-#: config/rs6000/rs6000.c:7249
+#: config/rs6000/rs6000.c:7348
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:7264
-#, fuzzy, c-format
+#: config/rs6000/rs6000.c:7363
+#, c-format
msgid "invalid parameter combination for %qs AltiVec intrinsic"
-msgstr "`%s' Altivec yerleşiği için parametre birleşimi geçersiz"
+msgstr "%qs Altivec yerleşiği için parametre birleşimi geçersiz"
-#: config/rs6000/rs6000.c:7498
+#: config/rs6000/rs6000.c:7597
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:7571
+#: config/rs6000/rs6000.c:7670
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr "__builtin_spe_predicate'in 1. argümanı kapsamdışı"
-#: config/rs6000/rs6000.c:10478
+#: config/rs6000/rs6000.c:10566
#, c-format
msgid "invalid %%f value"
msgstr "%%f değeri geçersiz"
-#: config/rs6000/rs6000.c:10487
+#: config/rs6000/rs6000.c:10575
#, c-format
msgid "invalid %%F value"
msgstr "%%F değeri geçersiz"
-#: config/rs6000/rs6000.c:10496
+#: config/rs6000/rs6000.c:10584
#, c-format
msgid "invalid %%G value"
msgstr "%%G değeri geçersiz"
-#: config/rs6000/rs6000.c:10531
+#: config/rs6000/rs6000.c:10619
#, c-format
msgid "invalid %%j code"
msgstr "%%j kodu geçersiz"
-#: config/rs6000/rs6000.c:10541
+#: config/rs6000/rs6000.c:10629
#, c-format
msgid "invalid %%J code"
msgstr "%%J kodu geçersiz"
-#: config/rs6000/rs6000.c:10551
+#: config/rs6000/rs6000.c:10639
#, c-format
msgid "invalid %%k value"
msgstr "%%k değeri geçersiz"
-#: config/rs6000/rs6000.c:10571 config/xtensa/xtensa.c:1937
+#: config/rs6000/rs6000.c:10659 config/xtensa/xtensa.c:1937
#, c-format
msgid "invalid %%K value"
msgstr "%%K değeri geçersiz"
-#: config/rs6000/rs6000.c:10638
+#: config/rs6000/rs6000.c:10726
#, c-format
msgid "invalid %%O value"
msgstr "%%O değeri geçersiz"
-#: config/rs6000/rs6000.c:10685
+#: config/rs6000/rs6000.c:10773
#, c-format
msgid "invalid %%q value"
msgstr "%%q değeri geçersiz"
-#: config/rs6000/rs6000.c:10729
+#: config/rs6000/rs6000.c:10817
#, c-format
msgid "invalid %%S value"
msgstr "%%S değeri geçersiz"
-#: config/rs6000/rs6000.c:10771
+#: config/rs6000/rs6000.c:10859
#, c-format
msgid "invalid %%T value"
msgstr "%%T değeri geçersiz"
-#: config/rs6000/rs6000.c:10781
+#: config/rs6000/rs6000.c:10869
#, c-format
msgid "invalid %%u value"
msgstr "%%u değeri geçersiz"
-#: config/rs6000/rs6000.c:10790 config/xtensa/xtensa.c:1907
+#: config/rs6000/rs6000.c:10878 config/xtensa/xtensa.c:1907
#, c-format
msgid "invalid %%v value"
msgstr "%%v değeri geçersiz"
-#: config/rs6000/rs6000.c:13442
-#, fuzzy
+#: config/rs6000/rs6000.c:13555
msgid "stack frame too large"
-msgstr "yığın bağlamı çok büyük"
+msgstr "yığın çerçevesi çok büyük"
-#: config/rs6000/rs6000.c:15958
+#: config/rs6000/rs6000.c:16073
msgid "no profiling of 64-bit code for this ABI"
msgstr "bu ABI için 64 bitlik profilleme kodu yok"
-#: config/rs6000/rs6000.c:17044
-msgid "use of 'long' in AltiVec types is deprecated; use 'int'"
-msgstr "AltiVec türlerde 'long' artık kullanılmıyor; 'int' kullanın"
+#: config/rs6000/rs6000.c:17163
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
+msgstr "AltiVec türlerde %<long%> kullanımı 64 bitlik kod için geçersiz"
+
+#: config/rs6000/rs6000.c:17165
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr "AltiVec türlerde %<long%> artık kullanılmıyor; %<int%> kullanın"
+
+#: config/rs6000/rs6000.c:17169
+msgid "use of %<long long%> in AltiVec types is invalid"
+msgstr "AltiVec türlerde %<long long%> kullanımı geçersiz"
-#: config/rs6000/aix.h:203 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/rs6000.c:17171
+msgid "use of %<double%> in AltiVec types is invalid"
+msgstr "AltiVec türlerde %<double%> kullanımı geçersiz"
-#: config/rs6000/aix.h:205 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/rs6000.c:17173
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr "AltiVec türlerde %<long double%> kullanımı geçersiz"
-#: config/rs6000/aix41.h:27 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
+#: config/rs6000/rs6000.c:17175
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr "AltiVec türlerde mantıksal türlerin kullanımı geçersiz"
+
+#: config/rs6000/rs6000.c:17177
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr "AltiVec türlerde %<complex%> kullanımı geçersiz"
+
+#: config/rs6000/aix.h:204
+msgid "Conform more closely to IBM XLC semantics"
+msgstr ""
+
+#: config/rs6000/aix.h:206
+msgid "Default GCC semantics that differ from IBM XLC"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:31
#: config/rs6000/aix52.h:31
msgid "Support message passing with the Parallel Environment"
msgstr "Eşzamanlı Ortam ile ileti aktarımı desteklenir"
@@ -12249,27 +11740,25 @@ msgid "-fpic is not supported; -fPIC assumed"
msgstr "-fpic desteklenmiyor; -fPIC varsayıldı"
#: config/rs6000/darwin.h:113
-#, fuzzy
msgid "-m64 requires PowerPC64 architecture, enabling"
-msgstr "-maix64 seçeneği PowerPC64 mimarisinin etkin kalmasını gerektirir"
+msgstr "-m64 seçeneği PowerPC64 mimarisinin etkin kalmasını gerektirir"
#. See note below.
#. if (rs6000_long_double_size_string == NULL)
#. rs6000_long_double_type_size = 128;
#: config/rs6000/eabispe.h:45 config/rs6000/linuxspe.h:62
-#, fuzzy
msgid "-m64 not supported in this configuration"
-msgstr "-m%s bu yapılandırmada desteklenmiyor"
+msgstr "-m64 bu yapılandırmada desteklenmiyor"
-#: config/rs6000/linux64.h:106
+#: config/rs6000/linux64.h:109
msgid "-m64 requires a PowerPC64 cpu"
msgstr "-m64 seçeneği PowerPC64 mimarisi gerektirir"
-#: config/rs6000/linux64.h:216
+#: config/rs6000/linux64.h:221
msgid "Call mcount for profiling before a function prologue"
msgstr "Bir işlevin başlangıcından önce profilleme için mcount çağrılır"
-#: config/rs6000/linux64.h:218
+#: config/rs6000/linux64.h:223
msgid "Call mcount for profiling after a function prologue"
msgstr "Bir işlevin başlangıcından sonra profilleme için mcount çağrılır"
@@ -12416,7 +11905,7 @@ msgstr "Tek alanlı mfcr komutu üretilir"
msgid "Do not generate single field mfcr instruction"
msgstr "Tek alanlı mfcr komutu üretilmez"
-#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:709
+#: config/rs6000/rs6000.h:451 config/sparc/sparc.h:715
msgid "Use features of and schedule code for given CPU"
msgstr "Verilen MİB'nin özellikleri ve zamanlama kodu kullanılır"
@@ -12488,7 +11977,7 @@ 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:1829
+#: config/rs6000/rs6000.h:1830
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET desteklenmiyor"
@@ -12640,82 +12129,83 @@ msgstr "-mcall-aixdesc «big endian» olmalı"
msgid "-m%s not supported in this configuration"
msgstr "-m%s bu yapılandırmada desteklenmiyor"
-#: config/s390/s390.c:1293
+#: config/s390/s390.c:1406
#, c-format
msgid "Unknown cpu used in -march=%s."
msgstr "-mcpu=%s ile belirtilen iÅŸlemci bilinmiyor."
-#: config/s390/s390.c:1312
+#: config/s390/s390.c:1425
#, c-format
msgid "Unknown cpu used in -mtune=%s."
msgstr "-mtune=%s ile belirtilen iÅŸlemci bilinmiyor."
-#: config/s390/s390.c:1317
+#: config/s390/s390.c:1430
#, c-format
msgid "z/Architecture mode not supported on %s."
msgstr "z/Architecture kipi %s üzerinde desteklenmiyor"
-#: config/s390/s390.c:1319
+#: config/s390/s390.c:1432
msgid "64-bit ABI not supported in ESA/390 mode."
msgstr "ESA/390 kipinde 64-bit ABI desteklenmiyor."
-#: config/s390/s390.c:1325
-#, fuzzy
+#: config/s390/s390.c:1443
+msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination."
+msgstr ""
+
+#: config/s390/s390.c:1450
msgid "invalid value for -mwarn-framesize"
-msgstr "-mcall-%s için değer hatalı"
+msgstr "-mwarn-framesize için değer hatalı"
-#: config/s390/s390.c:1335
-#, fuzzy
+#: config/s390/s390.c:1460
msgid "invalid value for -mstack-size"
-msgstr "-msdata=%s için değer hatalı"
+msgstr "-mstack-size için değer hatalı"
-#: config/s390/s390.c:1338
+#: config/s390/s390.c:1463
msgid "stack size must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1344
-#, fuzzy
+#: config/s390/s390.c:1469
msgid "invalid value for -mstack-guard"
-msgstr "-msdata=%s için değer hatalı"
+msgstr "-mstack-guard için değer hatalı"
-#: config/s390/s390.c:1347
+#: config/s390/s390.c:1472
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1350
+#: config/s390/s390.c:1475
msgid "stack guard value must be an exact power of 2"
msgstr ""
-#: config/s390/s390.c:1353
+#: config/s390/s390.c:1478
msgid "-mstack-size implies use of -mstack-guard"
msgstr ""
-#: config/s390/s390.c:1357
+#: config/s390/s390.c:1482
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:4046
+#: config/s390/s390.c:4310
msgid "Cannot decompose address."
msgstr "Adres çözümlenemez"
-#: config/s390/s390.c:4238
+#: config/s390/s390.c:4502
msgid "UNKNOWN in print_operand !?"
msgstr "print_operand da BÄ°LÄ°NMEYEN !?"
-#: config/s390/s390.c:6285
+#: config/s390/s390.c:6549
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.c:6823
-#, fuzzy, c-format
+#: config/s390/s390.c:7085
+#, c-format
msgid "frame size of %qs is "
-msgstr "`%s'in saklama uzunluÄŸu bilinmiyor"
+msgstr ""
-#: config/s390/s390.c:6823
+#: config/s390/s390.c:7085
msgid " bytes"
msgstr ""
-#: config/s390/s390.c:6827
+#: config/s390/s390.c:7089
#, c-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
@@ -12761,42 +12251,36 @@ msgid "mvc&ex"
msgstr "mvc&ex"
#: config/s390/s390.h:146
-#, fuzzy
msgid "Enable tpf OS tracing code"
-msgstr "tpf OS kodu etkinleÅŸtirilir"
+msgstr "tpf OS izleme kodu etkinleÅŸtirilir"
#: config/s390/s390.h:147
-#, fuzzy
msgid "Disable tpf OS tracing code"
-msgstr "tpf OS kodu iptal edilir"
+msgstr "tpf OS izleme kodu iptal edilir"
#: config/s390/s390.h:148
-#, fuzzy
msgid "Disable fused multiply/add instructions"
-msgstr "birleşik çarpma/toplama komutları iptal edildi"
+msgstr "Birleşik çarpma/toplama komutları iptal edilir"
#: config/s390/s390.h:149
-#, fuzzy
msgid "Enable fused multiply/add instructions"
-msgstr "birleşik çarpma/toplama komutları etkin"
+msgstr "Birleşik çarpma/toplama komutları etkinleştirilir"
#: config/s390/s390.h:150
msgid "Maintain backchain pointer"
msgstr ""
#: config/s390/s390.h:151
-#, fuzzy
msgid "Don't maintain backchain pointer"
-msgstr "Yığın denetim kodu üretilmez"
+msgstr ""
#: config/s390/s390.h:152
msgid "Use packed stack layout"
msgstr ""
#: config/s390/s390.h:153
-#, fuzzy
msgid "Don't use packed stack layout"
-msgstr "Yığıt yanlaması kullanmaz"
+msgstr ""
#: config/s390/s390.h:162
msgid "Warn if a single function's framesize exceeds the given framesize"
@@ -12814,69 +12298,62 @@ msgstr ""
msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered"
msgstr ""
-#: config/sh/sh.c:6197
+#: config/sh/sh.c:6201
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs bu alt hedef tarafından desteklenmiyor"
-#: config/sh/sh.c:7166
+#: config/sh/sh.c:7194
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.
#. The trap_exit attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:7188 config/sh/sh.c:7223
-#, fuzzy, c-format
+#: config/sh/sh.c:7216 config/sh/sh.c:7251
+#, c-format
msgid "%qs attribute only applies to interrupt functions"
-msgstr "`%s' özniteliği sadece sistem kesmesi işlevlerine uygulanır"
+msgstr "%qs özniteliği sadece kesme işlevlerine uygulanır"
#. The argument must be a constant string.
-#: config/sh/sh.c:7195
-#, fuzzy, c-format
+#: config/sh/sh.c:7223
+#, c-format
msgid "%qs attribute argument not a string constant"
-msgstr "`%s' öznitelik argümanı bir dizge sabit değil"
+msgstr "%qs öznitelik argümanı bir dizge sabit değil"
#. The argument must be a constant integer.
-#: config/sh/sh.c:7230
-#, fuzzy, c-format
+#: config/sh/sh.c:7258
+#, c-format
msgid "%qs attribute argument not an integer constant"
-msgstr "`%s' öznitelik argümanı bir tamsayı sabit değil"
+msgstr "%qs öznitelik argümanı bir tamsayı sabit değil"
#: config/sh/symbian.c:147
-#, fuzzy
msgid "%H function '%D' is defined after prior declaration as dllimport: attribute ignored"
-msgstr "%J '%D' işlevi önceki bildiriminden sonra dllimport olarak tanımlanmış: öznitelik yoksayıldı."
+msgstr "%H '%D' işlevi önceki bildiriminden sonra dllimport olarak tanımlanmış: öznitelik yoksayıldı."
#: config/sh/symbian.c:158
-#, fuzzy
msgid "%Hinline function '%D' is declared as dllimport: attribute ignored."
-msgstr "%J `%D' satıriçi işlevi dllimport olarak bildirilmiş: öznitelik yoksayıldı."
+msgstr "%H `%D' satıriçi işlevi dllimport olarak bildirilmiş: öznitelik yoksayıldı."
#: config/sh/symbian.c:171
-#, fuzzy
msgid "%Hdefinition of static data member '%D' of dllimport'd class."
-msgstr "%J dllimport'lu sınıfın '%D' durağan veri üyesinin tanımı."
+msgstr "%H dllimport'lu sınıfın '%D' durağan veri üyesinin tanımı."
#: config/sh/symbian.c:286
-#, fuzzy
msgid "%Hfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
-msgstr "%J '%D' için yeniden bildirim başarısız: dllimport'lu sembol dış ilintilemesiz."
+msgstr "%H '%D' için yeniden bildirim başarısız: dllimport'lu sembol dış ilintilemesiz."
#: config/sh/symbian.c:332
-#, fuzzy
msgid "%H%s '%D' %s after being referenced with dllimport linkage."
-msgstr "%J '%D' dllimport ilintileme ile ilişkilendirildikten sonra yerel olarak tanımlandı."
+msgstr ""
#: config/sh/symbian.c:436
-#, fuzzy
msgid "%Hvariable %qD definition is marked dllimport."
-msgstr "%J `%D' değişkeninin tanımı dllimport imli."
+msgstr "%H %qD değişkeninin tanımı dllimport imli."
#: config/sh/symbian.c:511
-#, fuzzy
msgid "%Hexternal linkage required for symbol '%D' because of '%s' attribute."
-msgstr "%J 'D' sembolü için dış ilintileme gerekli ('%s' özniteliğinden dolayı)."
+msgstr "%H 'D' sembolü için dış ilintileme gerekli ('%s' özniteliğinden dolayı)."
-#: config/sh/symbian.c:892 cp/tree.c:2346
+#: config/sh/symbian.c:892 cp/tree.c:2286
#, 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"
@@ -12888,185 +12365,185 @@ msgstr "lang_* denetimi: %2$s:%3$d: %1$s içinde başarısız"
msgid "Profiling is not supported on this target."
msgstr "Ayrımsama bu hedefte desteklenmiyor."
-#: config/sparc/sparc.c:577
+#: config/sparc/sparc.c:584
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s bu yapılandırma ile desteklenmiyor"
-#: config/sparc/sparc.c:584
+#: config/sparc/sparc.c:591
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 ile -m64 birarada izin verilmez"
-#: config/sparc/sparc.c:609
+#: config/sparc/sparc.c:616
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "`-mcmodel=' 32bit sistemlerde desteklenmiyor"
-#: config/sparc/sparc.c:7315 config/sparc/sparc.c:7321
+#: config/sparc/sparc.c:7325 config/sparc/sparc.c:7331
#, c-format
msgid "invalid %%Y operand"
msgstr "geçersiz %%Y terimi"
-#: config/sparc/sparc.c:7391
+#: config/sparc/sparc.c:7401
#, c-format
msgid "invalid %%A operand"
msgstr "geçersiz %%A terimi"
-#: config/sparc/sparc.c:7401
+#: config/sparc/sparc.c:7411
#, c-format
msgid "invalid %%B operand"
msgstr "geçersiz %%B terimi"
-#: config/sparc/sparc.c:7440
+#: config/sparc/sparc.c:7450
#, c-format
msgid "invalid %%c operand"
msgstr "geçersiz %%c terimi"
-#: config/sparc/sparc.c:7441
+#: config/sparc/sparc.c:7451
#, c-format
msgid "invalid %%C operand"
msgstr "geçersiz %%C terimi"
-#: config/sparc/sparc.c:7462
+#: config/sparc/sparc.c:7472
#, c-format
msgid "invalid %%d operand"
msgstr "geçersiz %%d terimi"
-#: config/sparc/sparc.c:7463
+#: config/sparc/sparc.c:7473
#, c-format
msgid "invalid %%D operand"
msgstr "geçersiz %%D terimi"
-#: config/sparc/sparc.c:7479
+#: config/sparc/sparc.c:7489
#, c-format
msgid "invalid %%f operand"
msgstr "geçersiz %%f terimi"
-#: config/sparc/sparc.c:7493
+#: config/sparc/sparc.c:7503
#, c-format
msgid "invalid %%s operand"
msgstr "geçersiz %%s terimi"
-#: config/sparc/sparc.c:7547
+#: config/sparc/sparc.c:7557
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:7550
+#: config/sparc/sparc.c:7560
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:77 config/sparc/linux.h:91
-#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:211
+#: config/sparc/linux64.h:111 config/sparc/netbsd-elf.h:201
msgid "Use 64 bit long doubles"
msgstr "64 bit long double'lar kullanılır"
#: config/sparc/freebsd.h:78 config/sparc/linux.h:92
-#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:212
+#: config/sparc/linux64.h:112 config/sparc/netbsd-elf.h:202
msgid "Use 128 bit long doubles"
msgstr "128 bit long double'lar kullanılır"
-#: config/sparc/sp64-elf.h:90
+#: config/sparc/sp64-elf.h:87
msgid "Generate code for big endian"
msgstr "Büyük ilkli kod üretilir"
-#: config/sparc/sp64-elf.h:91
+#: config/sparc/sp64-elf.h:88
msgid "Generate code for little endian"
msgstr "Küçük ilkli kod üretilir"
-#: config/sparc/sp86x-elf.h:68
+#: config/sparc/sp86x-elf.h:61
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:626
+#: config/sparc/sparc.h:632
msgid "Assume possible double misalignment"
msgstr "double'ların hizalanmamış oldukları varsayılır"
-#: config/sparc/sparc.h:628
+#: config/sparc/sparc.h:634
msgid "Assume all doubles are aligned"
msgstr "Tüm double'lar hizalı kabul edilir"
-#: config/sparc/sparc.h:630
+#: config/sparc/sparc.h:636
msgid "Pass -assert pure-text to linker"
msgstr "Birleştiriciye -assert salt-metin gönderir"
-#: config/sparc/sparc.h:632
+#: config/sparc/sparc.h:638
msgid "Do not pass -assert pure-text to linker"
msgstr "Birleştiriciye -assert salt-metin göndermez"
-#: config/sparc/sparc.h:634
+#: config/sparc/sparc.h:640
msgid "Use ABI reserved registers"
msgstr "Ayrılmış ABI yazmaçları kullanılır"
-#: config/sparc/sparc.h:636
+#: config/sparc/sparc.h:642
msgid "Do not use ABI reserved registers"
msgstr "Ayrılmış ABI yazmaçları kullanılmaz"
-#: config/sparc/sparc.h:638
+#: config/sparc/sparc.h:644
msgid "Use hardware quad fp instructions"
msgstr "Donanım bazlı quad fp komutları kullanılır"
-#: config/sparc/sparc.h:640
+#: config/sparc/sparc.h:646
msgid "Do not use hardware quad fp instructions"
msgstr "Donanım bazlı quad fp komutları kullanılmaz"
-#: config/sparc/sparc.h:642
+#: config/sparc/sparc.h:648
msgid "Compile for v8plus ABI"
msgstr "v8plus ABI için derleme yapılır"
-#: config/sparc/sparc.h:644
+#: config/sparc/sparc.h:650
msgid "Do not compile for v8plus ABI"
msgstr "v8plus ABI için derleme yapılmaz"
-#: config/sparc/sparc.h:646
+#: config/sparc/sparc.h:652
msgid "Utilize Visual Instruction Set"
msgstr "Görsel Komut Kümesi kullanılır"
-#: config/sparc/sparc.h:648
+#: config/sparc/sparc.h:654
msgid "Do not utilize Visual Instruction Set"
msgstr "Görsel Komut Kümesi kullanılmaz"
-#: config/sparc/sparc.h:650
+#: config/sparc/sparc.h:656
msgid "Pointers are 64-bit"
msgstr "Göstericiler 64 bittir"
-#: config/sparc/sparc.h:652
+#: config/sparc/sparc.h:658
msgid "Pointers are 32-bit"
msgstr "Göstericiler 32 bittir"
-#: config/sparc/sparc.h:654
+#: config/sparc/sparc.h:660
msgid "Use 32-bit ABI"
msgstr "32-bit ABI kullanılır"
-#: config/sparc/sparc.h:656
+#: config/sparc/sparc.h:662
msgid "Use 64-bit ABI"
msgstr "64-bit ABI kullanılır"
-#: config/sparc/sparc.h:658
+#: config/sparc/sparc.h:664
msgid "Use stack bias"
msgstr "Yığıt yanlaması kullanır"
-#: config/sparc/sparc.h:660
+#: config/sparc/sparc.h:666
msgid "Do not use stack bias"
msgstr "Yığıt yanlaması kullanmaz"
-#: config/sparc/sparc.h:662
+#: config/sparc/sparc.h:668
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:664
+#: config/sparc/sparc.h:670
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:666
+#: config/sparc/sparc.h:672
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:668
+#: config/sparc/sparc.h:674
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:713
+#: config/sparc/sparc.h:719
msgid "Use given SPARC code model"
msgstr "Belirtilen SPARC kod modeli kullanılır"
@@ -13091,17 +12568,14 @@ msgid "cannot use va_start in interrupt function"
msgstr "kesme işlevinde va_start kullanılamaz"
#: config/stormy16/stormy16.c:1921 config/stormy16/stormy16.c:1992
-#, fuzzy
msgid "'B' operand is not constant"
msgstr "`B' terimi sabit deÄŸil"
#: config/stormy16/stormy16.c:1948
-#, fuzzy
msgid "'B' operand has multiple bits set"
msgstr "`B' terimi çoklu bit kümeleri içeriyor"
#: config/stormy16/stormy16.c:1974
-#, fuzzy
msgid "'o' operand is not constant"
msgstr "`o' terimi sabit deÄŸil"
@@ -13115,9 +12589,8 @@ msgid "switch statement of size %lu entries too large"
msgstr "%lu luk switch deyimi girdileri çok büyük"
#: config/stormy16/stormy16.c:2434
-#, fuzzy
msgid "%<__BELOW100__%> attribute only applies to variables"
-msgstr "`%s' özniteliği sadece değişkenlere uygulanır"
+msgstr "%<__BELOW100__%> özniteliği sadece değişkenlere uygulanır"
#: config/stormy16/stormy16.c:2441
msgid "__BELOW100__ attribute not allowed with auto storage class."
@@ -13180,63 +12653,63 @@ msgstr "'#pragma ghs endsda' sonrası karışık"
msgid "junk at end of #pragma ghs endzda"
msgstr "'#pragma ghs endzda' sonrası karışık"
-#: config/v850/v850.c:163
+#: config/v850/v850.c:168
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s sayısal değerler değil."
-#: config/v850/v850.c:170
+#: config/v850/v850.c:175
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s çok büyük"
-#: config/v850/v850.c:336
+#: config/v850/v850.c:339
msgid "const_double_split got a bad insn:"
msgstr "const_double_split got bir hatalı komut:"
-#: config/v850/v850.c:901
+#: config/v850/v850.c:904
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2243
+#: config/v850/v850.c:2246
msgid "%Jdata area attributes cannot be specified for local variables"
msgstr "%J veri alanı öznitelikleri yerel değişkenler için belirtilemez"
-#: config/v850/v850.c:2254
+#: config/v850/v850.c:2257
msgid "%Jdata area of '%D' conflicts with previous declaration"
msgstr "%J '%D' veri alanı önceki bildirimle çelişiyor"
-#: config/v850/v850.c:2453
+#: config/v850/v850.c:2456
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "Taklit JR oluÅŸturma: %d\n"
-#: config/v850/v850.c:2474 config/v850/v850.c:2677
+#: config/v850/v850.c:2477 config/v850/v850.c:2680
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr "Yığın alanı kaldırma miktarı hatalı: %d"
-#: config/v850/v850.c:2653
+#: config/v850/v850.c:2656
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "taklit JARL oluÅŸturma: %d\n"
-#: config/v850/v850.c:3023
+#: config/v850/v850.c:3026
#, c-format
msgid "Bogus DISPOSE construction: %d\n"
msgstr "Taklit DISPOSE oluÅŸturma: %d\n"
-#: config/v850/v850.c:3045
+#: 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:3218
+#: config/v850/v850.c:3221
#, c-format
msgid "Bogus PREPEARE construction: %d\n"
msgstr "Taklit PREPEARE oluÅŸturma: %d\n"
-#: config/v850/v850.c:3240
+#: config/v850/v850.c:3243
#, c-format
msgid "Too much stack space to prepare: %d"
msgstr "PREPARE için yığıt alanı çok fazla: %d"
@@ -13414,654 +12887,605 @@ 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:258
+#: ada/misc.c:257
#, c-format
msgid "missing argument to \"-%s\""
msgstr "\"-%s\" seçeneğinin argümanı eksik"
-#: ada/misc.c:299
-#, fuzzy
+#: ada/misc.c:298
msgid "%<-gnat%> misspelled as %<-gant%>"
-msgstr "`-gnat' yerine `-gant' kullanılmış"
+msgstr "%<-gnat%> yerine %<-gant%> kullanılmış"
#: cp/call.c:288
msgid "unable to call pointer to member function here"
msgstr "buradan üye işlev göstericisi çağrılamaz"
-#: cp/call.c:2369
+#: cp/call.c:2376
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <yerleÅŸik>"
-#: cp/call.c:2374
+#: cp/call.c:2381
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <yerleÅŸik>"
-#: cp/call.c:2378
+#: cp/call.c:2385
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <yerleÅŸik>"
-#: cp/call.c:2382
+#: cp/call.c:2389
msgid "%s %T <conversion>"
msgstr "%s %T <dönüşüm>"
-#: cp/call.c:2384
+#: cp/call.c:2391
msgid "%J%s %+#D <near match>"
msgstr "%J%s %+#D <eşleşme yakınında>"
-#: cp/call.c:2386
+#: cp/call.c:2393
msgid "%J%s %+#D"
msgstr "%J %s %+#D"
-#: cp/call.c:2421
+#: cp/call.c:2428
msgid "candidates are:"
msgstr "adaylar:"
-#: cp/call.c:2607
-#, fuzzy
+#: cp/call.c:2614
msgid "conversion from %qT to %qT is ambiguous"
-msgstr "`%T' den `%T' ye dönüşüm belirsiz"
+msgstr "%qT türünden %qT türüne dönüşüm belirsiz"
-#: cp/call.c:2761 cp/call.c:2819
-#, fuzzy
+#: cp/call.c:2767 cp/call.c:2825
msgid "no matching function for call to %<%D(%A)%>"
-msgstr "`%D(%A)' çağrısı ile eşleşen bir işlev yok"
+msgstr "%<%D(%A)%> çağrısı ile eşleşen bir işlev yok"
-#: cp/call.c:2764 cp/call.c:2822
-#, fuzzy
+#: cp/call.c:2770 cp/call.c:2828
msgid "call of overloaded %<%D(%A)%> is ambiguous"
-msgstr "aşırı yüklü `%D(%A)' çağrısı belirsiz"
+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:2890
+#: cp/call.c:2896
#, 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:2959
-#, fuzzy
+#: cp/call.c:2965
msgid "no match for call to %<(%T) (%A)%>"
-msgstr "`(%T) (%A)' çağrısı için eşleşme yok"
+msgstr "%<(%T) (%A)%> çağrısı için eşleşme yok"
-#: cp/call.c:2968
-#, fuzzy
+#: cp/call.c:2974
msgid "call of %<(%T) (%A)%> is ambiguous"
-msgstr "`(%T) (%A)' çağrısı belirsiz"
+msgstr "%<(%T) (%A)%> çağrısı belirsiz"
-#: cp/call.c:3005
-#, fuzzy
+#: cp/call.c:3012
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"
+msgstr ""
-#: cp/call.c:3011
-#, fuzzy
+#: cp/call.c:3018
msgid "%s for %<operator%s%> in %<%E%s%>"
-msgstr "'%3$E%4$s' içinde %2$s işleci için %1$s"
+msgstr ""
-#: cp/call.c:3015
-#, fuzzy
+#: cp/call.c:3022
msgid "%s for %<operator[]%> in %<%E[%E]%>"
-msgstr "'%2$E[%3$E]' içinde [] işleci için %1$s"
+msgstr ""
-#: cp/call.c:3020
-#, fuzzy
+#: cp/call.c:3027
msgid "%s for %qs in %<%s %E%>"
-msgstr "'%3$s %4$E' içinde '%2$s' için %1$s"
+msgstr ""
-#: cp/call.c:3025
-#, fuzzy
+#: cp/call.c:3032
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"
+msgstr ""
-#: cp/call.c:3028
-#, fuzzy
+#: cp/call.c:3035
msgid "%s for %<operator%s%> in %<%s%E%>"
-msgstr "'%3$s%4$E' içinde %2$s işleci için %1$s"
+msgstr ""
-#: cp/call.c:3118
+#: cp/call.c:3125
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ bir ?: ifadesinde eksik orta terime izin vermez"
-#: cp/call.c:3195
-#, fuzzy
+#: cp/call.c:3202
msgid "%qE has type %<void%> and is not a throw-expression"
-msgstr "`%E' `void' türünde ve bir yakalama-ifadesi değil"
+msgstr "%qE %<void%> türünde ve bir yakalama-ifadesi değil"
-#: cp/call.c:3234 cp/call.c:3444
+#: cp/call.c:3241 cp/call.c:3451
msgid "operands to ?: have different types"
msgstr "?: için işlemimleri farklı türde"
-#: cp/call.c:3398
-#, fuzzy
+#: cp/call.c:3405
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
-msgstr "şartlı ifade içinde enum uyumsuzluğu: `%T' vs `%T'"
+msgstr "şartlı ifade içinde enum uyumsuzluğu: %qT vs %qT"
-#: cp/call.c:3405
+#: cp/call.c:3412
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "şartlı ifade içinde enum ve enum olmayan türler"
-#: cp/call.c:3700
-#, fuzzy
+#: cp/call.c:3706
msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
-msgstr "sonek `%s' için `%D(int)' bildirimi yok, yerine önek işleci deneniyor"
+msgstr "sonek %qs için %<%D(int)%> bildirimi yok, yerine önek işleci deneniyor"
-#: cp/call.c:3753
-#, fuzzy
+#: cp/call.c:3759
msgid "using synthesized %q#D for copy assignment"
-msgstr "kopya ataması için bireşimli `%#D' kullanılıyor"
+msgstr "kopya ataması için bireşimli %q#D kullanımı"
-#: cp/call.c:3755
-#, fuzzy
+#: cp/call.c:3761
msgid " where cfront would use %q#D"
-msgstr " (cfront'un `%#D' kullanması gerektiği yerde)"
+msgstr " (cfront'un %q#D kullanması gerektiği yerde)"
-#: cp/call.c:3787
-#, fuzzy
+#: cp/call.c:3793
msgid "comparison between %q#T and %q#T"
-msgstr "`%#T' ile `%#T' arasında karşılaştırma"
+msgstr "%q#T ile %q#T arasında karşılaştırma"
-#: cp/call.c:4044
-#, fuzzy
+#: cp/call.c:4052
msgid "no suitable %<operator %s> for %qT"
-msgstr "`%T' için `operator %s' uygun değil"
+msgstr "Uygun bir %<operator %s> %qT için yok"
-#: cp/call.c:4061
-#, fuzzy
+#: cp/call.c:4069
msgid "%q+#D is private"
-msgstr "`%+#D' private'dir"
+msgstr "%q+#D private'dir"
-#: cp/call.c:4063
-#, fuzzy
+#: cp/call.c:4071
msgid "%q+#D is protected"
-msgstr "`%+#D' protected'dır"
+msgstr "%q+#D protected'dır"
-#: cp/call.c:4065
-#, fuzzy
+#: cp/call.c:4073
msgid "%q+#D is inaccessible"
-msgstr "`%+#D' eriÅŸilebilir deÄŸil"
+msgstr "%q+#D eriÅŸilebilir deÄŸil"
-#: cp/call.c:4066
+#: cp/call.c:4074
msgid "within this context"
msgstr "bu baÄŸlamda"
-#: cp/call.c:4154 cp/cvt.c:263
-#, fuzzy
+#: cp/call.c:4163 cp/cvt.c:263
msgid "invalid conversion from %qT to %qT"
-msgstr "`%T' den `%T' ye dönüşüm geçersiz"
+msgstr "%qT türünden %qT türüne dönüşüm geçersiz"
-#: cp/call.c:4156
-#, fuzzy
+#: cp/call.c:4165
msgid " initializing argument %P of %qD"
-msgstr " `%D' nin %P. argümanının ilklendirilmesi"
+msgstr " %P argümanının ilklendirilmesi (%qD için)"
-#: cp/call.c:4300
-#, fuzzy
+#: cp/call.c:4177
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr ""
+
+#: cp/call.c:4180
+msgid "converting to non-pointer type %qT from NULL"
+msgstr "NULL'dan gösterici olmayan %qT türüne dönüşüm"
+
+#: cp/call.c:4188
+msgid "passing %qT for argument %P to %qD"
+msgstr ""
+
+#: cp/call.c:4191
+msgid "converting to %qT from %qT"
+msgstr "%qT türüne %qT türünden dönüşüm"
+
+#: cp/call.c:4200
+msgid "passing negative value %qE for argument %P to %qD"
+msgstr ""
+
+#: cp/call.c:4203
+msgid "converting negative value %qE to %qT"
+msgstr "%qE negatif değerinin %qT türüne dönüşümü"
+
+#: cp/call.c:4345
msgid "cannot bind bitfield %qE to %qT"
-msgstr "`%E' bitalanı `%T' ye bağlanamaz"
+msgstr "%qE bitalanı %qT türüne bağlanamaz"
-#: cp/call.c:4303
-#, fuzzy
+#: cp/call.c:4348 cp/call.c:4364
msgid "cannot bind packed field %qE to %qT"
-msgstr "`%E' paketli alanı `%T'ye bağlanamaz"
+msgstr "%qE paketli alanı %qT türüne bağlanamaz"
-#: cp/call.c:4306
-#, fuzzy
+#: cp/call.c:4351
msgid "cannot bind rvalue %qE to %qT"
-msgstr "saÄŸ taraf deÄŸeri `%E', `%T' ye baÄŸlanamaz"
+msgstr "sağ taraf değeri %qE, %qT türüne bağlanamaz"
-#: cp/call.c:4401
-#, fuzzy
+#: cp/call.c:4460
msgid "cannot pass objects of non-POD type %q#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"
+msgstr "POD olmayan %q#T türünün nesneleri %<...%> üzerinden aktarılamaz; çalışma anında çağrı çıkış yaptıracak"
#. Undefined behavior [expr.call] 5.2.2/7.
-#: cp/call.c:4427
-#, fuzzy
+#: cp/call.c:4486
msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
-msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden alınamaz; çalışma anında çağrı çıkış yaptıracak"
+msgstr "POD olmayan %q#T türünün nesneleri %<...%> üzerinden alınamaz; çalışma anında çağrı çıkış yaptıracak"
-#: cp/call.c:4470
-#, fuzzy
+#: cp/call.c:4529
msgid "the default argument for parameter %d of %qD has not yet been parsed"
-msgstr "%d parametresi için öntanımlı argüman, `%D' için henüz çözümlenmedi"
+msgstr "%d parametresi için öntanımlı argüman, %qD için henüz çözümlenmedi"
-#: cp/call.c:4675
-#, fuzzy
+#: cp/call.c:4734
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
-msgstr "niteleyicileri iptal eden `%#D'nin `this' argümanı olarak `%T aktarılıyor"
+msgstr "%<this%> argümanı olarak %qT aktarımı (niteleyicileri iptal eden %q#D için)"
-#: cp/call.c:4694
-#, fuzzy
+#: cp/call.c:4753
msgid "%qT is not an accessible base of %qT"
-msgstr "`%T', `%T' tabanında erişilebilir değil"
+msgstr "%qT, %qT tabanında erişilebilir değil"
-#: cp/call.c:4944
-#, fuzzy
+#: cp/call.c:5003
msgid "could not find class$ field in java interface type %qT"
-msgstr "`%T' türündeki java arabiriminde class$ alanı bulunamadı"
+msgstr "java arabiriminde %qT türünde class$ alanı bulunamadı"
-#: cp/call.c:5206
-#, fuzzy
+#: cp/call.c:5263
msgid "call to non-function %qD"
-msgstr "işlev olmayan `%D' ye çağrı"
+msgstr "işlev olmayan %qD ye çağrı"
-#: cp/call.c:5231
-#, fuzzy
+#: cp/call.c:5288
msgid "request for member %qD in %qE, which is of non-aggregate type %qT"
-msgstr "bir nesne alarak oluşmayan `%3$T' türündeki `%2$E'nin üyesi `%D' için istek"
+msgstr ""
-#: cp/call.c:5310
-#, fuzzy
+#: cp/call.c:5367
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
-msgstr "`%T::%s(%A)%#V' çağrısı ile eşleşen işlev yok"
+msgstr "%<%T::%s(%A)%#V%> çağrısı ile eşleşen işlev yok"
-#: cp/call.c:5328
-#, fuzzy
+#: cp/call.c:5385
msgid "call of overloaded %<%s(%A)%> is ambiguous"
-msgstr "aşırı yüklü `%s(%A)' çağrısı belirsiz"
+msgstr "aşırı yüklü %<%s(%A)%> çağrısı belirsiz"
-#: cp/call.c:5352
-#, fuzzy
+#: cp/call.c:5409
msgid "cannot call member function %qD without object"
-msgstr "üye işlev `%D' nesne olmaksızın çağrılamaz"
+msgstr "üye işlev %qD nesne olmaksızın çağrılamaz"
-#: cp/call.c:5957
-#, fuzzy
+#: cp/call.c:6014
msgid "passing %qT chooses %qT over %qT"
-msgstr "`%T' `%T'yi `%T' üzerinden seçerek aktarılıyor"
+msgstr "%qT aktarımı %qT'yi %qT üzerinden seçiyor"
-#: cp/call.c:5959 cp/name-lookup.c:4110
-#, fuzzy
+#: cp/call.c:6016 cp/name-lookup.c:4104
msgid " in call to %qD"
-msgstr " `%D' çağrısında"
+msgstr " %qD çağrısında"
-#: cp/call.c:6016
-#, fuzzy
+#: cp/call.c:6073
msgid "choosing %qD over %qD"
-msgstr "`%D' `%D' üzerinden seçiliyor"
+msgstr "%qD %qD üzerinden seçiliyor"
-#: cp/call.c:6017
-#, fuzzy
+#: cp/call.c:6074
msgid " for conversion from %qT to %qT"
-msgstr " (`%T' den `%T' ye dönüşüm için)"
+msgstr " (%qT den %qT ye dönüşüm için)"
-#: cp/call.c:6019
+#: cp/call.c:6076
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:6140
+#: cp/call.c:6197
msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
msgstr "İlkinin en kötü dönüşümü ikincisinden daha iyi olsa bile ISO C++ bunlar belirsizdir der "
-#: cp/call.c:6144
+#: cp/call.c:6201
msgid "candidate 1:"
msgstr "1. aday:"
-#: cp/call.c:6145
+#: cp/call.c:6202
msgid "candidate 2:"
msgstr "2. aday:"
-#: cp/call.c:6281
-#, fuzzy
+#: cp/call.c:6338
msgid "could not convert %qE to %qT"
-msgstr "`%E' den `%T' ye dönüşüm yapılamaz"
+msgstr "%qE %qT ye dönüştürülemedi"
-#: cp/call.c:6411
-#, fuzzy
+#: cp/call.c:6469
msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
-msgstr "`%T' türündeki sabit olmayan referansın geçici `%T' türünden ilklendirilmesi geçersiz"
+msgstr "%qT türündeki sabit olmayan referansın geçici %qT türünden ilklendirilmesi geçersiz"
-#: cp/call.c:6415
-#, fuzzy
+#: cp/call.c:6473
msgid "invalid initialization of reference of type %qT from expression of type %qT"
-msgstr "`%T' türündeki referansın `%T' türü ifadeden ilklendirilmesi geçersiz"
+msgstr "%qT türündeki atıfın %qT türü ifadeden ilklendirilmesi geçersiz"
-#: cp/class.c:273
-#, fuzzy
+#: cp/class.c:272
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
-msgstr "taban `%T' türünden türetilmiş `%T' türü sanal taban `%T' üzerinden dönüştürülemez"
-
-#: cp/class.c:898
-#, fuzzy
-msgid "Java class %qT cannot have an implicit non-trivial destructor"
-msgstr "Java sınıfı `%#T' bir dolaylı sanal olmayan yıkıcıya sahip olamaz"
+msgstr "taban %qT türünden, türetilmiş %qT türüne sanal taban %qT üzerinden dönüştürülemez"
-#: cp/class.c:899
-#, fuzzy
+#: cp/class.c:929
msgid "Java class %qT cannot have a destructor"
-msgstr "Java sınıfı `%#T' bir yıkıcıya sahip olamaz"
+msgstr "Java sınıfı %qT bir yıkıcıya sahip olamaz"
-#: cp/class.c:998
-#, fuzzy
+#: cp/class.c:931
+msgid "Java class %qT cannot have an implicit non-trivial destructor"
+msgstr "Java sınıfı %qT bir dolaylı sanal olmayan yıkıcıya sahip olamaz"
+
+#: cp/class.c:1031
msgid "%q#D and %q#D cannot be overloaded"
-msgstr "`%#D' ve `%#D' aşırı yüklü olamaz"
+msgstr "%q#D ve %q#D aşırı yüklü olamaz"
-#: cp/class.c:1055
-#, fuzzy
+#: cp/class.c:1088
msgid "conflicting access specifications for method %qD, ignored"
-msgstr "`%D' yöntemi için erişim özellikleri çelişkili, yoksayıldı"
+msgstr "%qD yöntemi için erişim özellikleri çelişkili, yoksayıldı"
-#: cp/class.c:1058
-#, fuzzy, c-format
+#: cp/class.c:1091
+#, c-format
msgid "conflicting access specifications for field %qE, ignored"
-msgstr "`%s' alanı için erişim özellikleri çelişkili, yoksayıldı"
+msgstr "%qE alanı için erişim özellikleri çelişkili, yoksayıldı"
-#: cp/class.c:1108
-#, fuzzy
+#: cp/class.c:1141
msgid "%qD names constructor"
-msgstr "`%D' isimleri kurucu"
+msgstr "%qD kurucu isimlendiriyor"
-#: cp/class.c:1113
-#, fuzzy
+#: cp/class.c:1146
msgid "%qD invalid in %qT"
-msgstr "`%T' içindeki `%D' geçersiz"
+msgstr "%qD %qT için geçersiz"
-#: cp/class.c:1121
-#, fuzzy
+#: cp/class.c:1154
msgid "no members matching %qD in %q#T"
-msgstr "`%T' içindeki `%D' ile eşleşen üye yok"
+msgstr "%qD ile eşleşen bir üye %q#T içinde yok"
-#: cp/class.c:1153 cp/class.c:1161
-#, fuzzy
+#: cp/class.c:1186 cp/class.c:1194
msgid "%qD invalid in %q#T"
-msgstr "`%#T' içindeki `%D' geçersiz"
+msgstr "%qD %q#T içinde geçersiz"
-#: cp/class.c:1154
-#, fuzzy
+#: cp/class.c:1187
msgid " because of local method %q#D with same name"
-msgstr " çünkü yerel yöntem `%#D' ile aynı isimde"
+msgstr " çünkü yerel yöntem %q#D ile aynı isimde"
-#: cp/class.c:1162
-#, fuzzy
+#: cp/class.c:1195
msgid " because of local member %q#D with same name"
-msgstr " çünkü yerel üye `%#D' ile aynı isimde"
+msgstr " çünkü yerel üye %q#D ile aynı isimde"
-#: cp/class.c:1207
-#, fuzzy
+#: cp/class.c:1237
msgid "base class %q#T has a non-virtual destructor"
-msgstr "taban sınıf `%#T' bir sanal olmayan yıkıcıya sahip"
-
-#: cp/class.c:1226
-#, fuzzy
-msgid "base %qT with only non-default constructor in class without a constructor"
-msgstr "sadece bir kurucusuz sınıftaki öntanımlı olmayan kuruculu taban `%T'"
+msgstr "taban sınıf %q#D bir sanal olmayan yıkıcıya sahip"
-#: cp/class.c:1534
-#, fuzzy
+#: cp/class.c:1551
msgid "all member functions in class %qT are private"
-msgstr "sınıf `%T' içindeki tüm üye işlevler 'private'"
+msgstr "sınıf %qT içindeki tüm üye işlevler 'private'"
-#: cp/class.c:1545
-#, fuzzy
+#: cp/class.c:1562
msgid "%q#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"
+msgstr "%q#T sadece private bir yıkıcı tanımlıyor ve kardeşleri yok"
-#: cp/class.c:1585
-#, fuzzy
+#: cp/class.c:1602
msgid "%q#T only defines private constructors and has no friends"
-msgstr "`%#T' sadece private kurucular tanımlıyor ve kardeşleri yok"
+msgstr "%q#T sadece private kurucular tanımlıyor ve kardeşleri yok"
-#: cp/class.c:1923
-#, fuzzy
+#: cp/class.c:1935
msgid "no unique final overrider for %qD in %qT"
-msgstr "`%D' için `%T' içinde eşsiz bir son değiştirici yok"
+msgstr "%qD için %qT içinde eşsiz bir son değiştirici yok"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2379
-#, fuzzy
+#: cp/class.c:2409
msgid "%qD was hidden"
-msgstr "`%D'"
+msgstr "%qD"
-#: cp/class.c:2380
-#, fuzzy
+#: cp/class.c:2410
msgid " by %qD"
-msgstr " `%D' tarafından gizlendi"
+msgstr " %qD tarafından gizlendi"
-#: cp/class.c:2421 cp/decl2.c:1142
+#: cp/class.c:2451 cp/decl2.c:1100
#, fuzzy
msgid "%q#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:2428 cp/decl2.c:1149
+#: cp/class.c:2458 cp/decl2.c:1107
#, fuzzy
msgid "private member %q#D in anonymous union"
msgstr "anonim union içinde private üye `%#D'"
-#: cp/class.c:2431 cp/decl2.c:1151
+#: cp/class.c:2461 cp/decl2.c:1109
#, fuzzy
msgid "protected member %q#D in anonymous union"
msgstr "anonim union içinde protected üye `%#D'"
-#: cp/class.c:2545
-#, fuzzy
-msgid "vtable layout for class %qT 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:2603
+#: cp/class.c:2628
#, fuzzy
msgid "bit-field %q#D with non-integral type"
msgstr "tümleyen olmayan tür ile bit-alanı `%#D'"
-#: cp/class.c:2623
+#: cp/class.c:2645
#, fuzzy
msgid "bit-field %qD width not an integer constant"
-msgstr "bit alanı `%D' için genişlik bir tamsayı sabit değil"
+msgstr "bit alanı %qD için genişlik bir tamsayı sabit değil"
-#: cp/class.c:2629
+#: cp/class.c:2651
#, fuzzy
msgid "negative width in bit-field %qD"
-msgstr "bit alanı `%D' içindeki genişlik negatif"
+msgstr "bit alanı %qD içindeki genişlik negatif"
-#: cp/class.c:2634
+#: cp/class.c:2656
#, fuzzy
msgid "zero width for bit-field %qD"
-msgstr "bit alanı `%D' için sıfır genişlik"
+msgstr "bit alanı %qD için sıfır genişlik"
-#: cp/class.c:2640
+#: cp/class.c:2662
#, fuzzy
msgid "width of %qD exceeds its type"
-msgstr "`%D' türünün genişliğini aşıyor"
+msgstr "%qD türünün genişliğini aşıyor"
-#: cp/class.c:2649
+#: cp/class.c:2671
#, fuzzy
msgid "%qD is too small to hold all values of %q#T"
-msgstr "`%D' `%#T'nin tüm değerlerini tutmak için çok küçük"
+msgstr "%qD `%#T'nin tüm değerlerini tutmak için çok küçük"
-#: cp/class.c:2711
+#: cp/class.c:2731
#, fuzzy
msgid "member %q#D with constructor not allowed in union"
msgstr "union içinde kuruculu üye `%#D' olamaz"
-#: cp/class.c:2714
+#: cp/class.c:2734
#, fuzzy
msgid "member %q#D with destructor not allowed in union"
msgstr "union içinde yıkıcılı üye `%#D' olamaz"
-#: cp/class.c:2717
+#: cp/class.c:2737
#, fuzzy
msgid "member %q#D with copy assignment operator not allowed in union"
msgstr "union içinde kopya atama işleçli üye `%#D' olamaz"
-#: cp/class.c:2744
+#: cp/class.c:2760
#, fuzzy
msgid "multiple fields in union %qT initialized"
msgstr "birleşik yapı `%T' içindeki çoklu alanlar ilklendirildi"
-#: cp/class.c:2810
+#: cp/class.c:2821
msgid "ignoring packed attribute on unpacked non-POD field %q#D"
msgstr ""
-#: cp/class.c:2870
+#: cp/class.c:2881
#, fuzzy
msgid "%qD may not be static because it is a member of a union"
-msgstr "`%D' bir birleşik yapını üyesi olduğundan static olmamalıdır"
+msgstr "%qD bir birleşik yapını üyesi olduğundan static olmamalıdır"
-#: cp/class.c:2875
+#: cp/class.c:2886
#, fuzzy
msgid "%qD may not have reference type %qT because it is a member of a union"
-msgstr "`%D' bir birleşik yapının üyesi olduğundan `%T' türünde bir referansa sahip değil"
+msgstr "%qD bir birleşik yapının üyesi olduğundan `%T' türünde bir referansa sahip değil"
-#: cp/class.c:2884
+#: cp/class.c:2895
#, fuzzy
msgid "field %qD in local class cannot be static"
-msgstr "yerel sınıf içindeki alan `%D' static olamaz"
+msgstr "yerel sınıf içindeki alan %qD static olamaz"
-#: cp/class.c:2890
+#: cp/class.c:2901
#, fuzzy
msgid "field %qD invalidly declared function type"
-msgstr "alan `%D' ile geçersiz olarak işlev türü bildirildi"
+msgstr "alan %qD ile geçersiz olarak işlev türü bildirildi"
-#: cp/class.c:2896
+#: cp/class.c:2907
#, fuzzy
msgid "field %qD invalidly declared method type"
-msgstr "alan `%D' ile geçersiz olarak yöntem türü bildirildi"
+msgstr "alan %qD ile geçersiz olarak yöntem türü bildirildi"
-#: cp/class.c:2929
+#: cp/class.c:2939
#, fuzzy
msgid "non-static reference %q#D in class without a constructor"
msgstr "bir kurucusuz sınıf içinde static olmayan başvuru `%#D'"
-#: cp/class.c:2977
+#: cp/class.c:2986
#, fuzzy
msgid "non-static const member %q#D in class without a constructor"
msgstr "bir kurucusuz sınıf içinde static olmayan sabit üye `%#D'"
-#: cp/class.c:2992
+#: cp/class.c:3001
#, fuzzy
msgid "field %q#D with same name as class"
msgstr "alan `%#D' sınıf ile aynı isimde"
-#: cp/class.c:3026
+#: cp/class.c:3034
#, fuzzy
msgid "%q#T has pointer data members"
msgstr "`%#T' gösterici veri üyeleri içeriyor"
-#: cp/class.c:3030
+#: cp/class.c:3038
#, fuzzy
msgid " but does not override %<%T(const %T&)%>"
msgstr " ama `%T(const %T&)' ye deÄŸiÅŸtirilmiyor"
-#: cp/class.c:3032
+#: cp/class.c:3040
#, fuzzy
msgid " or %<operator=(const %T&)%>"
msgstr " ya da `operator=(const %T&)'"
-#: cp/class.c:3035
+#: cp/class.c:3043
#, fuzzy
msgid " but does not override %<operator=(const %T&)%>"
msgstr " ama `operator=(const %T&)' ye deÄŸiÅŸtirilmiyor"
-#: cp/class.c:3468
+#: cp/class.c:3476
#, fuzzy
msgid "offset of empty base %qT 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:3580
+#: cp/class.c:3588
#, fuzzy
msgid "class %qT 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:3662
+#: cp/class.c:3670
#, fuzzy
msgid "initializer specified for non-virtual method %qD"
-msgstr "sanal olmayan yöntem `%D' için ilklendirici belirtilmiş"
+msgstr "sanal olmayan yöntem %qD için ilklendirici belirtilmiş"
-#: cp/class.c:4321
+#: cp/class.c:4333
#, fuzzy
msgid "offset of virtual base %qT 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:4420
+#: cp/class.c:4432
#, fuzzy
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr "doğrudan taban `%T' belirsizlikten dolayı `%T' içinde erişilebilir değil"
-#: cp/class.c:4432
+#: cp/class.c:4444
#, fuzzy
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr "sanal taban `%T' belirsizlikten dolayı `%T' içinde erişilebilir değil"
-#: cp/class.c:4603
+#: cp/class.c:4621
#, fuzzy
msgid "size assigned to %qT 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:4642
+#: cp/class.c:4660
#, fuzzy
msgid "the offset of %qD 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"
+msgstr "%qD nin göreli konumu ABI-uyumlu olmayabilir ve bu GCC'nin gelecek sürümünde değişebilir"
-#: cp/class.c:4665
+#: cp/class.c:4683
#, fuzzy
msgid "offset of %qD 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"
+msgstr "%qD nin göreli konumu ABI-uyumlu değil ve bu GCC'nin gelecek sürümünde değişebilir"
-#: cp/class.c:4675
+#: cp/class.c:4693
#, fuzzy
msgid "%qD 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"
+msgstr "%qD 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:4734
+#: cp/class.c:4753
#, fuzzy
msgid "layout of classes derived from empty class %qT 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:4875 cp/semantics.c:2100
+#: cp/class.c:4894 cp/parser.c:12849
#, fuzzy
msgid "redefinition of %q#T"
msgstr "`%#T' yeniden tanımlanmış"
-#: cp/class.c:5019
+#: cp/class.c:5042
#, fuzzy
msgid "%q#T has virtual functions but non-virtual destructor"
msgstr "`%#T' sanal olmayan kurucuyla sanal işlevler içeriyor"
-#: cp/class.c:5114
+#: cp/class.c:5139
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:5530
+#: cp/class.c:5555
#, fuzzy
msgid "language string %<\"%E\"%> not recognized"
msgstr "dil dizgesi `\"%s\"' tanınmıyor"
-#: cp/class.c:5617
+#: cp/class.c:5642
#, fuzzy
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
-msgstr "aşırı yüklü `%D' `%T' türünün dönüşümüne tabanlı olarak çözümlenemiyor"
+msgstr "aşırı yüklü %qD `%T' türünün dönüşümüne tabanlı olarak çözümlenemiyor"
-#: cp/class.c:5742
+#: cp/class.c:5767
#, fuzzy
msgid "no matches converting function %qD to type %q#T"
-msgstr "işlev `%D'nin `%#T' türüne dönüşümü için eşleşme yok"
+msgstr "işlev %qD'nin `%#T' türüne dönüşümü için eşleşme yok"
-#: cp/class.c:5765
+#: cp/class.c:5790
#, fuzzy
msgid "converting overloaded function %qD to type %q#T is ambiguous"
-msgstr "aşırı yüklü işlev `%D'nin `%#T' türüne dönüşümü belirsiz"
+msgstr "aşırı yüklü işlev %qD'nin `%#T' türüne dönüşümü belirsiz"
-#: cp/class.c:5791
+#: cp/class.c:5816
#, fuzzy
msgid "assuming pointer to member %qD"
-msgstr "üye `%D'ye gösterici varsayılıyor"
+msgstr "üye %qD'ye gösterici varsayılıyor"
-#: cp/class.c:5794
+#: cp/class.c:5819
#, fuzzy
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr "(bir üye göstericisi sadece `&%E' ile şekillendirilebilir)"
-#: cp/class.c:5839 cp/class.c:5870 cp/class.c:6022 cp/class.c:6029
+#: cp/class.c:5864 cp/class.c:5895 cp/class.c:6047 cp/class.c:6054
msgid "not enough type information"
msgstr "tür bilgisi yetersiz"
-#: cp/class.c:5856
+#: cp/class.c:5881
#, fuzzy
msgid "argument of type %qT does not match %qT"
msgstr "`%T' türündeki argüman `%T' ile uyumsuz"
-#: cp/class.c:6006
+#: cp/class.c:6031
msgid "invalid operation on uninstantiated type"
msgstr "gerçeklenmemiş tür üzerindeki işlem geçersiz"
@@ -14070,15 +13494,15 @@ 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:6272 cp/decl.c:1231 cp/name-lookup.c:508 cp/pt.c:2223
+#: cp/class.c:6268 cp/decl.c:1096 cp/name-lookup.c:508 cp/pt.c:2198
#, fuzzy
msgid "declaration of %q#D"
msgstr "`%#D' yeniden bildirimi"
-#: cp/class.c:6273
+#: cp/class.c:6269
#, fuzzy
msgid "changes meaning of %qD from %q+#D"
-msgstr "`%D' nin (`%+#D' deki) anlamı değişiyor"
+msgstr "%qD nin (`%+#D' deki) anlamı değişiyor"
#: cp/cvt.c:90
#, fuzzy
@@ -14100,194 +13524,204 @@ msgstr "`%E' `%T' den `%T' ye çevrilemiyor"
msgid "pointer to member cast from %qT to %qT is via virtual base"
msgstr "`%T' türünden `%T' türüne üye göstericisi tür dönüşümü sanal taban üzerindendir"
-#: cp/cvt.c:499
+#: cp/cvt.c:497
#, fuzzy
msgid "conversion from %qT to %qT discards qualifiers"
msgstr "`%T' den `%T' ye dönüşüm niteleyicileri iptal ediyor"
-#: cp/cvt.c:517 cp/typeck.c:4879
+#: cp/cvt.c:515 cp/typeck.c:4840
#, fuzzy
msgid "casting %qT to %qT does not dereference pointer"
msgstr "`%T' türünden `%T' türüne dönüşüm gösterici referansını kaldırmaz"
-#: cp/cvt.c:544
+#: cp/cvt.c:542
#, fuzzy
msgid "cannot convert type %qT to type %qT"
msgstr "tür `%T' `%T' türüne dönüştürülemiyor"
-#: cp/cvt.c:671
+#: cp/cvt.c:670
#, fuzzy
msgid "conversion from %q#T to %q#T"
msgstr "`%#T' den `%#T' ye dönüşüm"
-#: cp/cvt.c:683 cp/cvt.c:703
+#: cp/cvt.c:682 cp/cvt.c:702
#, fuzzy
msgid "%q#T used where a %qT was expected"
msgstr "`%T' kullanılmış ama `%#T' umulmuştu"
-#: cp/cvt.c:718
+#: cp/cvt.c:717
#, fuzzy
msgid "%q#T used where a floating point value was expected"
msgstr "bir gerçel sayı değer gerekirken `%#T' kullanılmış"
-#: cp/cvt.c:765
+#: cp/cvt.c:764
#, fuzzy
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr "`%T' türünden skalar olmayan `%T' türüne dönüşüm istendi"
-#: cp/cvt.c:853
+#: cp/cvt.c:798
+#, fuzzy
+msgid "pseudo-destructor is not called"
+msgstr "yıkıcıların argümanı olmaz"
+
+#: cp/cvt.c:857
#, fuzzy
msgid "object of incomplete type %qT will not be accessed in %s"
msgstr "içi boş `%T' türündeki nesne, %s içinde erişimli olmayacak"
-#: cp/cvt.c:856
+#: cp/cvt.c:860
#, fuzzy
msgid "object of type %qT will not be accessed in %s"
msgstr "`%T' türündeki nesne, %s içinde erişimli olmayacak"
-#: cp/cvt.c:872
+#: cp/cvt.c:876
#, fuzzy
msgid "object %qE of incomplete type %qT 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:888
+#: cp/cvt.c:892
#, 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:894
+#: cp/cvt.c:898
#, fuzzy, c-format
msgid "%s is a reference, not call, to function %qE"
msgstr "%s işlev `%E' için çağrı değil referanstır"
-#: cp/cvt.c:902
+#: cp/cvt.c:909
#, c-format
msgid "%s has no effect"
msgstr "%s bir etkiye sahip deÄŸil"
-#: cp/cvt.c:1013
+#: cp/cvt.c:941
+#, fuzzy
+msgid "value computed is not used"
+msgstr "%Hhesaplanan değer kullanılmadı"
+
+#: cp/cvt.c:1049
msgid "converting NULL to non-pointer type"
msgstr "NULL'dan gösterici olmayan türe dönüşüm"
-#: cp/cvt.c:1086
+#: cp/cvt.c:1121
#, fuzzy
msgid "ambiguous default type conversion from %qT"
msgstr "%T' den öntanımlı türe dönüşüm belirsiz"
-#: cp/cvt.c:1088
+#: cp/cvt.c:1123
#, fuzzy
msgid " candidate conversions include %qD and %qD"
-msgstr " aday dönüşümler `%D' ve `%D' içeriyor "
+msgstr " aday dönüşümler %qD ve %qD içeriyor "
-#: cp/decl.c:368
+#: cp/decl.c:361
#, fuzzy
msgid "label %qD used but not defined"
-msgstr "etiket `%D' tanımlanmadan kullanılmış"
+msgstr "etiket %qD tanımlanmadan kullanılmış"
-#: cp/decl.c:379
+#: cp/decl.c:372
#, fuzzy
msgid "label %qD defined but not used"
-msgstr "etiket `%D' tanımlanmış ama kullanılmamış"
+msgstr "etiket %qD tanımlanmış ama kullanılmamış"
-#: cp/decl.c:1138
+#: cp/decl.c:1003
#, fuzzy
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr "`%s' önce `extern' sonra da `static' bildirilmiş"
-#: cp/decl.c:1139 cp/decl.c:1604
+#: cp/decl.c:1004 cp/decl.c:1469
#, fuzzy
msgid "previous declaration of %qD"
-msgstr "`%D'in önceki bildirimi"
+msgstr "%qD'in önceki bildirimi"
-#: cp/decl.c:1187
+#: cp/decl.c:1052
#, fuzzy
msgid "%Jfunction %qD redeclared as inline"
-msgstr "%J iÅŸlev `%D' 'inline' olarak yeniden bildirilmiÅŸ"
+msgstr "%J iÅŸlev %qD 'inline' olarak yeniden bildirilmiÅŸ"
-#: cp/decl.c:1188
+#: cp/decl.c:1053
#, fuzzy
msgid "%Jprevious declaration of %qD with attribute noinline"
-msgstr "%J `%D'nin önceki bildirimi 'inline' olmayan öznitelikli"
+msgstr "%J %qD'nin önceki bildirimi 'inline' olmayan öznitelikli"
-#: cp/decl.c:1195
+#: cp/decl.c:1060
#, fuzzy
msgid "%Jfunction %qD redeclared with attribute noinline"
-msgstr "%J `%D' işlevinin yeniden bildirimi inline olmayan öznitelikli"
+msgstr "%J %qD işlevinin yeniden bildirimi inline olmayan öznitelikli"
-#: cp/decl.c:1197
+#: cp/decl.c:1062
#, fuzzy
msgid "%Jprevious declaration of %qD was inline"
-msgstr "%J `%D' nin önceki bildirimi 'inline' idi"
+msgstr "%J %qD nin önceki bildirimi 'inline' idi"
-#: cp/decl.c:1218 cp/decl.c:1289
+#: cp/decl.c:1083 cp/decl.c:1154
#, fuzzy
msgid "shadowing %s function %q#D"
msgstr "%s işlev `%#D' yi gölgeliyor"
-#: cp/decl.c:1227
+#: cp/decl.c:1092
#, fuzzy
msgid "library function %q#D redeclared as non-function %q#D"
msgstr "kitaplık işlevi `%#D' işlev olmayan `%#D' olarak yeniden bildirildi"
-#: cp/decl.c:1232
+#: cp/decl.c:1097
#, fuzzy
msgid "conflicts with built-in declaration %q#D"
msgstr "`%#D' yerleşik bildirimiyle çelişiyor"
-#: cp/decl.c:1284 cp/decl.c:1393 cp/decl.c:1409
+#: cp/decl.c:1149 cp/decl.c:1258 cp/decl.c:1274
#, fuzzy
msgid "new declaration %q#D"
msgstr "yeni bildirim `%#D'"
-#: cp/decl.c:1285
+#: cp/decl.c:1150
#, fuzzy
msgid "ambiguates built-in declaration %q#D"
msgstr "`%#D' yerleÅŸik bildirimi belirsizleÅŸiyor"
-#: cp/decl.c:1356
+#: cp/decl.c:1221
#, fuzzy
msgid "%q#D redeclared as different kind of symbol"
msgstr "`%#D' farklı bir sembol çeşidi olarak tekrar bildirilmiş"
-#: cp/decl.c:1359
+#: cp/decl.c:1224
#, fuzzy
msgid "previous declaration of %q#D"
msgstr "`%#D'in önceki bildirimi"
-#: cp/decl.c:1378
+#: cp/decl.c:1243
#, fuzzy
msgid "declaration of template %q#D"
msgstr "ÅŸablon bildirimi `%#D'"
-#: cp/decl.c:1379 cp/name-lookup.c:509
+#: cp/decl.c:1244 cp/name-lookup.c:509
#, fuzzy
msgid "conflicts with previous declaration %q#D"
msgstr "`%#D' önceki bildirimiyle çelişiyor"
-#: cp/decl.c:1394 cp/decl.c:1410
+#: cp/decl.c:1259 cp/decl.c:1275
#, fuzzy
msgid "ambiguates old declaration %q#D"
msgstr "`%#D' eski bildirimi belirsizleÅŸiyor"
-#: cp/decl.c:1402
+#: cp/decl.c:1267
#, fuzzy
msgid "declaration of C function %q#D conflicts with"
msgstr "C iÅŸlevi `%#D' bildirimi ile"
-#: cp/decl.c:1404
+#: cp/decl.c:1269
#, fuzzy
msgid "previous declaration %q#D here"
msgstr "`%#D'nin önceki bildirimi ile burada çelişiyor"
-#: cp/decl.c:1417
+#: cp/decl.c:1282
#, fuzzy
msgid "conflicting declaration %q#D"
msgstr "'%#D' bildirimi çelişiyor"
-#: cp/decl.c:1418
+#: cp/decl.c:1283
#, fuzzy
msgid "%qD has a previous declaration as %q#D"
msgstr "'%D' öncesinde `%#D' olarak bir bildirim var"
@@ -14299,76 +13733,76 @@ msgstr "'%D' öncesinde `%#D' olarak bir bildirim var"
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1471
+#: cp/decl.c:1336
#, fuzzy
msgid "declaration of namespace %qD conflicts with"
msgstr "`namespace %D' bildirimi bununla çelişiyor:"
-#: cp/decl.c:1472
+#: cp/decl.c:1337
#, fuzzy
msgid "previous declaration of namespace %qD here"
msgstr "`namespace %D'nin önceki bildirimi ile burada çelişiyor"
-#: cp/decl.c:1484
+#: cp/decl.c:1349
#, fuzzy
msgid "%q#D previously defined here"
msgstr "`%#D' evvelce burada tanımlanmış"
-#: cp/decl.c:1485
+#: cp/decl.c:1350
#, fuzzy
msgid "%q#D previously declared here"
msgstr "`%#D' evvelce burada bildirilmiÅŸ"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1494
+#: cp/decl.c:1359
#, fuzzy
msgid "prototype for %q#D"
msgstr "`%#D' için prototip"
-#: cp/decl.c:1495
+#: cp/decl.c:1360
msgid "%Jfollows non-prototype definition here"
msgstr "%j burada prototip olmayan tanımdan sonra"
-#: cp/decl.c:1507
+#: cp/decl.c:1372
#, fuzzy
msgid "previous declaration of %q#D with %qL linkage"
msgstr "%L ilintili `%#D' önceki bildirimi"
-#: cp/decl.c:1509
+#: cp/decl.c:1374
#, fuzzy
msgid "conflicts with new declaration with %qL linkage"
msgstr "%L ilintili yeni bildirim ile çelişiyor"
-#: cp/decl.c:1532 cp/decl.c:1539
+#: cp/decl.c:1397 cp/decl.c:1404
#, fuzzy
msgid "default argument given for parameter %d of %q#D"
msgstr "`%#D' nin %d. parametresi için verilen öntanımlı argüman"
-#: cp/decl.c:1534 cp/decl.c:1541
+#: cp/decl.c:1399 cp/decl.c:1406
#, fuzzy
msgid "after previous specification in %q#D"
msgstr "`%#D' içindeki önceki özellikten sonra"
-#: cp/decl.c:1550
+#: cp/decl.c:1415
#, fuzzy
msgid "%q#D was used before it was declared inline"
msgstr "`%#D' inline olarak bildirilmeden önce"
-#: cp/decl.c:1551
+#: cp/decl.c:1416
msgid "%Jprevious non-inline declaration here"
msgstr "%J önceki inline olmayan bildirimi burada"
-#: cp/decl.c:1603
+#: cp/decl.c:1468
#, fuzzy
msgid "redundant redeclaration of %qD in same scope"
-msgstr "aynı bağlamda `%D'nin yeniden bildirimi anlamsız"
+msgstr "aynı bağlamda %qD'nin yeniden bildirimi anlamsız"
-#: cp/decl.c:1697
+#: cp/decl.c:1562
#, fuzzy, c-format
msgid "declaration of %qF throws different exceptions"
msgstr "`%F' bildirimi farklı olağandışılıkları yakalıyor"
-#: cp/decl.c:1699
+#: cp/decl.c:1564
#, fuzzy, c-format
msgid "than previous declaration %qF"
msgstr "`%F'in önceki bildiriminden"
@@ -14381,935 +13815,959 @@ 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:1852
+#: cp/decl.c:1724
#, fuzzy
msgid "explicit specialization of %qD after first use"
msgstr "ilk kullanımından sonra %D'nin doğrudan özelleştirilmesi"
-#: cp/decl.c:1931
+#: cp/decl.c:1803
#, fuzzy
msgid "%J%qD: visibility attribute ignored because it"
msgstr "%J'%D': visibility attribute ignored because it"
-#: cp/decl.c:1933
+#: cp/decl.c:1805
msgid "%Jconflicts with previous declaration here"
msgstr "%J `%#D' burada önceki bildirimiyle çelişiyor"
-#: cp/decl.c:2161
+#: cp/decl.c:2048
#, fuzzy, c-format
msgid "label %qE referenced outside of any function"
msgstr "%s etiketi işlev dışı referanslı"
-#: cp/decl.c:2257 cp/decl.c:2281 cp/decl.c:2369
+#: cp/decl.c:2144 cp/decl.c:2168 cp/decl.c:2256
#, fuzzy
msgid "jump to label %qD"
-msgstr "etiket `%D' ye sıçrama"
+msgstr "etiket %qD ye sıçrama"
-#: cp/decl.c:2259 cp/decl.c:2283
+#: cp/decl.c:2146 cp/decl.c:2170
msgid "jump to case label"
msgstr "case etiketine jump"
-#: cp/decl.c:2262 cp/decl.c:2286
+#: cp/decl.c:2149 cp/decl.c:2173
msgid "%H from here"
msgstr "%H buradan"
-#: cp/decl.c:2267
+#: cp/decl.c:2154
#, fuzzy
msgid " crosses initialization of %q#D"
msgstr " `%#D' ilklendirmesi çaprazlanıyor"
-#: cp/decl.c:2270 cp/decl.c:2385
+#: cp/decl.c:2157 cp/decl.c:2272
#, fuzzy
msgid " enters scope of non-POD %q#D"
msgstr " POD olmayan `%#D' bağlamına giriyor"
-#: cp/decl.c:2290 cp/decl.c:2389
+#: cp/decl.c:2177 cp/decl.c:2276
msgid " enters try block"
msgstr " blok denemesine giriliyor"
-#: cp/decl.c:2292 cp/decl.c:2391
+#: cp/decl.c:2179 cp/decl.c:2278
msgid " enters catch block"
msgstr " tuzak bloÄŸu giriyor"
-#: cp/decl.c:2370
+#: cp/decl.c:2257
msgid " from here"
msgstr " buradan"
#. Can't skip init of __exception_info.
-#: cp/decl.c:2381
+#: cp/decl.c:2268
msgid "%J enters catch block"
msgstr "%J tuzak bloÄŸu giriyor"
-#: cp/decl.c:2383
+#: cp/decl.c:2270
#, fuzzy
msgid " skips initialization of %q#D"
msgstr " `%#D' ilklendirmesi atlanyor"
-#: cp/decl.c:2417
+#: cp/decl.c:2304
msgid "label named wchar_t"
msgstr "wchar_t isimli etiket"
-#: cp/decl.c:2420
+#: cp/decl.c:2307
#, fuzzy
msgid "duplicate label %qD"
-msgstr "yinlenmiÅŸ etiket `%D'"
+msgstr "yinlenmiÅŸ etiket %qD"
-#: cp/decl.c:2651 cp/parser.c:3437
+#: cp/decl.c:2555 cp/parser.c:3514
#, fuzzy
msgid "%qD used without template parameters"
-msgstr "`%D' şablon parametreleri olmaksızın kullanılmış"
+msgstr "%qD şablon parametreleri olmaksızın kullanılmış"
-#: cp/decl.c:2661 cp/decl.c:2676 cp/decl.c:2767
+#: cp/decl.c:2572 cp/decl.c:2663
#, fuzzy
msgid "no class template named %q#T in %q#T"
msgstr "`%#T' isimli sınıf şablonu `%#T' içinde yok"
-#: cp/decl.c:2697 cp/decl.c:2707 cp/decl.c:2727
+#: cp/decl.c:2593 cp/decl.c:2603 cp/decl.c:2623
#, fuzzy
msgid "no type named %q#T in %q#T"
msgstr "`%#T' içindeki `%#T' ismindeki tür bilinmiyor"
-#: cp/decl.c:2776
+#: cp/decl.c:2672
#, fuzzy
msgid "template parameters do not match template"
msgstr "ÅŸablon parametreleri kardeÅŸler olamaz"
-#: cp/decl.c:2777 cp/friend.c:317 cp/friend.c:325
+#: cp/decl.c:2673 cp/friend.c:317 cp/friend.c:325
#, fuzzy
msgid "%qD declared here"
msgstr " `%#D' burada bildirilmiÅŸ"
-#: cp/decl.c:3448
+#: cp/decl.c:3344
msgid "%Jan anonymous union cannot have function members"
msgstr "%J bir anonim birleşik yapı, işlev üyeler barındıramaz"
-#: cp/decl.c:3466
+#: cp/decl.c:3362
#, fuzzy
msgid "member %q#D with constructor not allowed in anonymous aggregate"
msgstr "kuruculu üye %#D' anonim kümeleme içinde kullanılamaz"
-#: cp/decl.c:3470
+#: cp/decl.c:3366
#, fuzzy
msgid "member %q#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:3474
+#: cp/decl.c:3370
#, fuzzy
msgid "member %q#D with copy assignment operator not allowed in anonymous aggregate"
msgstr "kopya atama işleçli üye %#D' anonim kümeleme içinde kullanılamaz"
-#: cp/decl.c:3500
+#: cp/decl.c:3396
msgid "multiple types in one declaration"
msgstr "bir bildirimde birden fazla tür bidirilmiş"
-#: cp/decl.c:3504
+#: cp/decl.c:3400
#, fuzzy
msgid "redeclaration of C++ built-in type %qT"
msgstr "C++ yerleşik türü `%T' için yeniden bildirim"
-#: cp/decl.c:3540
+#: cp/decl.c:3437
msgid "missing type-name in typedef-declaration"
msgstr "typedef bildiriminde tür ismi eksik"
-#: cp/decl.c:3548
+#: cp/decl.c:3445
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ anonim yapıları (struct) yasaklar"
-#: cp/decl.c:3555
+#: cp/decl.c:3452
#, fuzzy, c-format
msgid "%qs can only be specified for functions"
-msgstr "`%D' sadece işlevler için belirtilebilir"
+msgstr "%qD sadece işlevler için belirtilebilir"
-#: cp/decl.c:3561
+#: cp/decl.c:3458
#, fuzzy
msgid "%<friend%> can only be specified inside a class"
-msgstr "`%D' sadece bir sınıf içinde belirtilebilir"
+msgstr "%qD sadece bir sınıf içinde belirtilebilir"
-#: cp/decl.c:3563
+#: cp/decl.c:3460
#, fuzzy
msgid "%<explicit%> can only be specified for constructors"
msgstr "`%D' sadece kurucular için belirtilebilir"
-#: cp/decl.c:3565
+#: cp/decl.c:3462
#, fuzzy
msgid "a storage class can only be specified for objects and functions"
msgstr "`%D' sadece işlevler ve nesneler için belirtilebilir"
-#: cp/decl.c:3571
+#: cp/decl.c:3468
#, fuzzy
msgid "qualifiers can only be specified for objects and functions"
msgstr "`%D' sadece işlevler ve nesneler için belirtilebilir"
-#: cp/decl.c:3601
+#: cp/decl.c:3498
#, fuzzy
msgid "attribute ignored in declaration of %q#T"
msgstr "`%#T' için ileriye bildirim"
-#: cp/decl.c:3602
+#: cp/decl.c:3499
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:3723
+#: cp/decl.c:3622
#, fuzzy
msgid "function %q#D is initialized like a variable"
msgstr "`%D' iÅŸlevi bir deÄŸiÅŸken gibi ilklendirilmiÅŸ"
-#: cp/decl.c:3735
+#: cp/decl.c:3634
#, fuzzy
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr "`%#D' hem `extern' olarak bildirilmiÅŸ hem de ilklendirilmiÅŸ"
-#: cp/decl.c:3766
+#: cp/decl.c:3665
#, fuzzy
msgid "%q#D is not a static member of %q#T"
msgstr "`%#D' `%#T'nin bir static üyesi değildir"
-#: cp/decl.c:3772
+#: cp/decl.c:3671
#, fuzzy
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:3781
+#: cp/decl.c:3680
msgid "template header not allowed in member definition of explicitly specialized class"
msgstr ""
-#: cp/decl.c:3789
+#: cp/decl.c:3688
#, fuzzy
msgid "duplicate initialization of %qD"
msgstr "%D nin yinelenmiÅŸ ilklendirmesi"
-#: cp/decl.c:3822
+#: cp/decl.c:3726
#, fuzzy
msgid "declaration of %q#D outside of class is not definition"
msgstr "sınıf dışında `%#D' bildirimi bir tanımlama değil"
-#: cp/decl.c:3871
+#: cp/decl.c:3775
#, fuzzy
msgid "variable %q#D has initializer but incomplete type"
msgstr "`%#D' değişkeni ilklendirilmiş ama içi boş türde"
-#: cp/decl.c:3878 cp/decl.c:4502
+#: cp/decl.c:3782 cp/decl.c:4411
#, fuzzy
msgid "elements of array %q#D have incomplete type"
msgstr "`%#D' dizisinin elemanları içi boş türde"
-#: cp/decl.c:3894
+#: cp/decl.c:3798
#, fuzzy
msgid "aggregate %q#D has incomplete type and cannot be defined"
msgstr "küme `%#D' içi boş türde ve tanımlı olamaz"
-#: cp/decl.c:3944
+#: cp/decl.c:3848
#, fuzzy
msgid "%qD declared as reference but not initialized"
-msgstr "`%D' referans olarak bildirilmiÅŸ ama ilklendirilmemiÅŸ"
+msgstr "%qD referans olarak bildirilmiÅŸ ama ilklendirilmemiÅŸ"
-#: cp/decl.c:3950
+#: cp/decl.c:3854
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference %qD"
-msgstr "ISO C++ referans`%D' ilklendiren ilklendirici listesi kullanımına izin vermez"
+msgstr "ISO C++ referans %qD ilklendiren ilklendirici listesi kullanımına izin vermez"
-#: cp/decl.c:3979
+#: cp/decl.c:3880
#, fuzzy
msgid "cannot initialize %qT from %qT"
msgstr "`%T' `%T' den ilklendirilemez"
-#: cp/decl.c:4011
+#: cp/decl.c:3912
#, fuzzy
msgid "initializer fails to determine size of %qD"
-msgstr "ilklendirici `%D' nin boyutunu saptayamıyor"
+msgstr "ilklendirici %qD nin boyutunu saptayamıyor"
-#: cp/decl.c:4016
+#: cp/decl.c:3917
#, fuzzy
msgid "array size missing in %qD"
-msgstr "`%D' de dizi boyutu eksik"
+msgstr "%qD de dizi boyutu eksik"
-#: cp/decl.c:4028
+#: cp/decl.c:3929
#, fuzzy
msgid "zero-size array %qD"
-msgstr "sıfır boyutlu dizi `%D'"
+msgstr "sıfır boyutlu dizi %qD"
#. 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:4065
+#: cp/decl.c:3966
#, fuzzy
msgid "storage size of %qD isn't known"
-msgstr "`%D' nin saklama uzunluÄŸu bilinmiyor"
+msgstr "%qD nin saklama uzunluÄŸu bilinmiyor"
-#: cp/decl.c:4087
+#: cp/decl.c:3988
#, fuzzy
msgid "storage size of %qD isn't constant"
-msgstr "`%D' nin saklama geniÅŸliÄŸi sabit deÄŸil"
+msgstr "%qD nin saklama geniÅŸliÄŸi sabit deÄŸil"
-#: cp/decl.c:4142
+#: cp/decl.c:4043
#, fuzzy
msgid "sorry: semantics of inline function static data %q#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:4145
+#: cp/decl.c:4046
msgid "%J you can work around this by removing the initializer"
msgstr "%J bunu ilklendiricileri kaldırarak aşabilirsiniz"
-#: cp/decl.c:4172
+#: cp/decl.c:4073
#, fuzzy
msgid "uninitialized const %qD"
-msgstr "ilklendirilmemiÅŸ sabit `%D'"
+msgstr "ilklendirilmemiÅŸ sabit %qD"
-#: cp/decl.c:4232
+#: cp/decl.c:4133
#, fuzzy
msgid "name %qD used in a GNU-style designated initializer for an array"
-msgstr "`%D' ismi bir dizi için bir GNU tarzı ilklendirici içinde kullanılmış"
+msgstr "%qD ismi bir dizi için bir GNU tarzı ilklendirici içinde kullanılmış"
-#: cp/decl.c:4242
+#: cp/decl.c:4143
#, fuzzy, c-format
msgid "Designated initializer %qE larger than array size"
msgstr "Tasarlanan ilklendirici `%E' dizi boyutundan daha büyük"
-#: cp/decl.c:4313
+#: cp/decl.c:4215
#, fuzzy
msgid "brace-enclosed initializer used to initialize %qT"
msgstr "`%T' ilklendirmesinde ilklendirici {} içinde kullanılmış"
-#: cp/decl.c:4376
+#: cp/decl.c:4280
#, fuzzy
msgid "initializer for %qT must be brace-enclosed"
msgstr "`%T' ilklendiricisi {} içinde olmalı"
-#: cp/decl.c:4392
+#: cp/decl.c:4296
msgid "ISO C++ does not allow designated initializers"
msgstr "ISO C++ tasarlanmış ilkendiricilere izin vermez"
-#: cp/decl.c:4396
+#: cp/decl.c:4300
#, fuzzy
msgid "%qT has no non-static data member named %qD"
-msgstr "`%T' `%D' isminde bir statik olmayan üye içermiyor"
+msgstr "`%T' %qD isminde bir statik olmayan üye içermiyor"
-#: cp/decl.c:4458
+#: cp/decl.c:4364
#, fuzzy
msgid "too many initializers for %qT"
msgstr "`%T' için ilklendirici sayısı çok fazla"
-#: cp/decl.c:4496
+#: cp/decl.c:4405
#, fuzzy
msgid "variable-sized object %qD may not be initialized"
-msgstr "deÄŸiÅŸken-uzunluklu nesne `%D' ilklendirilmiÅŸ olmayabilir"
+msgstr "deÄŸiÅŸken-uzunluklu nesne %qD ilklendirilmiÅŸ olmayabilir"
-#: cp/decl.c:4507
+#: cp/decl.c:4416
#, fuzzy
msgid "%qD has incomplete type"
msgstr "`%s' içi boş türde"
-#: cp/decl.c:4561
+#: cp/decl.c:4470
#, fuzzy
msgid "%qD must be initialized by constructor, not by %<{...}%>"
-msgstr "`%D'bir kurucu ile ilklendirilmeli, `{...}' ile deÄŸil"
+msgstr "%qDbir kurucu ile ilklendirilmeli, `{...}' ile deÄŸil"
+
+#: cp/decl.c:4506
+#, fuzzy
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr "_Pragma bir parantezli dizge sabiti alır"
-#: cp/decl.c:4606
+#: cp/decl.c:4521
#, fuzzy
msgid "structure %qD with uninitialized const members"
-msgstr "ilklendirmesiz sabit üyelerle `%D' yapısı"
+msgstr "ilklendirmesiz sabit üyelerle %qD yapısı"
-#: cp/decl.c:4608
+#: cp/decl.c:4523
#, fuzzy
msgid "structure %qD with uninitialized reference members"
-msgstr "ilklendirmesiz referans üyelerle `%D' yapısı"
+msgstr "ilklendirmesiz referans üyelerle %qD yapısı"
-#: cp/decl.c:4803
+#: cp/decl.c:4723
msgid "assignment (not initialization) in declaration"
msgstr "bildirim içinde atama (ilklendirme değil)"
-#: cp/decl.c:4820
+#: cp/decl.c:4740
#, fuzzy
msgid "cannot initialize %qD to namespace %qD"
-msgstr "`%D' isim alanı `%D' olarak ilklendirilemez"
+msgstr "%qD isim alanı %qD olarak ilklendirilemez"
-#: cp/decl.c:4863
+#: cp/decl.c:4781
#, fuzzy
msgid "shadowing previous type declaration of %q#D"
msgstr "`%#D'in önceki gölgeleyen tür bildirimi"
-#: cp/decl.c:4900
+#: cp/decl.c:4815
#, fuzzy
msgid "%qD cannot be thread-local because it has non-POD type %qT"
-msgstr "`%D' yerel evreli olamaz çünkü POD olmayan %T' türünde"
+msgstr "%qD yerel evreli olamaz çünkü POD olmayan %T' türünde"
-#: cp/decl.c:4915
+#: cp/decl.c:4830
#, fuzzy
msgid "%qD is thread-local and so cannot be dynamically initialized"
-msgstr "`%D' yerel evreli olduğundan özdevimli ilklendirilemez"
+msgstr "%qD yerel evreli olduğundan özdevimli ilklendirilemez"
-#: cp/decl.c:5523
+#: cp/decl.c:5447
#, fuzzy
msgid "destructor for alien class %qT cannot be a member"
msgstr "yabancı sınıf `%T' için yıkıcı, bir üye olamaz"
-#: cp/decl.c:5525
+#: cp/decl.c:5449
#, fuzzy
msgid "constructor for alien class %qT cannot be a member"
msgstr "yabancı sınıf `%T' için kurucu, bir üye olamaz"
-#: cp/decl.c:5546
+#: cp/decl.c:5470
#, fuzzy
msgid "%qD declared as a %<virtual%> %s"
-msgstr "`%D' bir `virtual' %s olarak bildirilmiÅŸ"
+msgstr "%qD bir `virtual' %s olarak bildirilmiÅŸ"
-#: cp/decl.c:5548
+#: cp/decl.c:5472
#, fuzzy
msgid "%qD declared as an %<inline%> %s"
-msgstr "`%D' alanı bir `inline' %s olarak bildirilmiş"
+msgstr "%qD alanı bir `inline' %s olarak bildirilmiş"
-#: cp/decl.c:5550
+#: cp/decl.c:5474
#, fuzzy
msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
-msgstr "%s bildirimindeki `const' ve `volatile' işlev belirteçleri `%D' için geçersiz"
+msgstr "%s bildirimindeki `const' ve `volatile' işlev belirteçleri %qD için geçersiz"
-#: cp/decl.c:5554
+#: cp/decl.c:5478
#, fuzzy
msgid "%qD declared as a friend"
-msgstr "`%D' bir kardeÅŸ olarak bildirilmiÅŸ"
+msgstr "%qD bir kardeÅŸ olarak bildirilmiÅŸ"
-#: cp/decl.c:5560
+#: cp/decl.c:5484
#, fuzzy
msgid "%qD declared with an exception specification"
-msgstr "`%D' bir olağandışılık özelliğiyle bildirilmiş"
+msgstr "%qD bir olağandışılık özelliğiyle bildirilmiş"
-#: cp/decl.c:5643
+#: cp/decl.c:5570
#, fuzzy
msgid "cannot declare %<::main%> to be a template"
msgstr "`::main' bir ÅŸablon olarak bildirilemez"
-#: cp/decl.c:5645
+#: cp/decl.c:5572
#, fuzzy
msgid "cannot declare %<::main%> to be inline"
msgstr "`::main' inline olarak bildirilemez"
-#: cp/decl.c:5647
+#: cp/decl.c:5574
#, fuzzy
msgid "cannot declare %<::main%> to be static"
msgstr "::main' «static» olarak bildirilemez"
-#: cp/decl.c:5651
+#: cp/decl.c:5578
#, fuzzy
msgid "%<::main%> must return %<int%>"
msgstr "`main', `int' döndürmeli"
-#: cp/decl.c:5681
+#: cp/decl.c:5608
#, fuzzy
msgid "non-local function %q#D uses anonymous type"
msgstr "yerel olmayan işlev `%#D' anonim tür kullanıyor"
-#: cp/decl.c:5684 cp/decl.c:6029
+#: cp/decl.c:5611 cp/decl.c:5947
#, fuzzy
msgid "%q#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:5690
+#: cp/decl.c:5617
#, fuzzy
msgid "non-local function %q#D uses local type %qT"
msgstr "yerel olmayan işlev `%#D' yerel tür `%T' kullanıyor"
-#: cp/decl.c:5713
+#: cp/decl.c:5640
#, fuzzy
msgid "%smember function %qD cannot have cv-qualifier"
-msgstr "%smember function `%D', `%T' yöntem niteleyicisini içeremez"
+msgstr "%smember function %qD, `%T' yöntem niteleyicisini içeremez"
-#: cp/decl.c:5737
+#: cp/decl.c:5664
#, fuzzy
msgid "defining explicit specialization %qD in friend declaration"
-msgstr "kardeş bildirimlerde doğrudan özelleştirme `%D' tanımlanıyor"
+msgstr "kardeş bildirimlerde doğrudan özelleştirme %qD tanımlanıyor"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:5747
+#: cp/decl.c:5674
#, fuzzy
msgid "invalid use of template-id %qD in declaration of primary template"
-msgstr "birincil şablon bildiriminde şablon kimliği `%D' kullanımı geçersiz"
+msgstr "birincil şablon bildiriminde şablon kimliği %qD kullanımı geçersiz"
-#: cp/decl.c:5775
+#: cp/decl.c:5702
#, fuzzy
msgid "default arguments are not allowed in declaration of friend template specialization %qD"
-msgstr "kardeş şablon özelleştirmesi `%D' bildiriminde öntanımlı argümalar kullanılamaz"
+msgstr "kardeş şablon özelleştirmesi %qD bildiriminde öntanımlı argümalar kullanılamaz"
-#: cp/decl.c:5783
+#: cp/decl.c:5710
#, fuzzy
msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
-msgstr "kardeş şablon özelleştirmesi `%D' bildiriminde `inline' kullanılamaz"
+msgstr "kardeş şablon özelleştirmesi %qD bildiriminde `inline' kullanılamaz"
-#: cp/decl.c:5850
+#: cp/decl.c:5776
#, fuzzy
msgid "definition of implicitly-declared %qD"
-msgstr "dolaylı bildirimli `%D' tanımı"
+msgstr "dolaylı bildirimli %qD tanımı"
-#: cp/decl.c:5870 cp/decl2.c:715
+#: cp/decl.c:5796 cp/decl2.c:712
#, fuzzy
msgid "no %q#D member function declared in class %qT"
msgstr "sınıf `%T' içinde bildirilmiş `%#D' diye bir üye işlev yok"
-#. It's a typedef referring to an anonymous type.
-#: cp/decl.c:6026
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities. Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl.c:5944
#, fuzzy
msgid "non-local variable %q#D uses anonymous type"
msgstr "yerel olmayan işlev `%#D' anonim tür kullanıyor"
-#: cp/decl.c:6035
+#: cp/decl.c:5953
#, fuzzy
msgid "non-local variable %q#D uses local type %qT"
msgstr "yerel olmayan değişken`%#D' yerel tür `%T' kullanıyor"
-#: cp/decl.c:6150
+#: cp/decl.c:6070
#, fuzzy
msgid "invalid in-class initialization of static data member of non-integral type %qT"
msgstr "tümleyen olmayan `%T türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz"
-#: cp/decl.c:6160
+#: cp/decl.c:6080
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
-msgstr "ISO C++ sabit olmayan statik üye `%D' nin sınıf içi ilklendirmesine izin vermez"
+msgstr "ISO C++ sabit olmayan statik üye %qD nin sınıf içi ilklendirmesine izin vermez"
-#: cp/decl.c:6164
+#: cp/decl.c:6084
#, fuzzy
msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
-msgstr "ISO C++ tümleyen olmayan `%T türündeki üye sabiti `%D' nin ilklendirilmesine izin vermez"
+msgstr "ISO C++ tümleyen olmayan `%T türündeki üye sabiti %qD nin ilklendirilmesine izin vermez"
-#: cp/decl.c:6184
+#: cp/decl.c:6104
#, fuzzy
msgid "size of array %qD has non-integral type %qT"
-msgstr "`%D' dizisinin boyutu `%T' türünde"
+msgstr "%qD dizisinin boyutu `%T' türünde"
-#: cp/decl.c:6186
+#: cp/decl.c:6106
#, fuzzy
msgid "size of array has non-integral type %qT"
msgstr "dizi boyutu `%T' türünde"
-#: cp/decl.c:6222
+#: cp/decl.c:6142
#, fuzzy
msgid "size of array %qD is negative"
-msgstr "`%D' dizisinin boyutu negatif"
+msgstr "%qD dizisinin boyutu negatif"
-#: cp/decl.c:6224
+#: cp/decl.c:6144
msgid "size of array is negative"
msgstr "dizi boyutu negatif"
-#: cp/decl.c:6232
+#: cp/decl.c:6152
#, fuzzy
msgid "ISO C++ forbids zero-size array %qD"
-msgstr "ISO C++ da sıfır boyutlu dizi `%D' yasaktır"
+msgstr "ISO C++ da sıfır boyutlu dizi %qD yasaktır"
-#: cp/decl.c:6234
+#: cp/decl.c:6154
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C++ da sıfır boyutlu dizi yasaktır"
-#: cp/decl.c:6241
+#: cp/decl.c:6161
#, fuzzy
msgid "size of array %qD is not an integral constant-expression"
-msgstr "`%D' dizisinin boyutu bir tümleyen sabitli ifade değil"
+msgstr "%qD dizisinin boyutu bir tümleyen sabitli ifade değil"
-#: cp/decl.c:6244
+#: cp/decl.c:6164
msgid "size of array is not an integral constant-expression"
msgstr "dizi boyutu bir tümleyen sabitli ifade değil"
-#: cp/decl.c:6249
+#: cp/decl.c:6169
#, fuzzy
msgid "ISO C++ forbids variable-size array %qD"
-msgstr "ISO C++ da değişken boyutlu dizi `%D' yasaktır"
+msgstr "ISO C++ da değişken boyutlu dizi %qD yasaktır"
-#: cp/decl.c:6251
+#: cp/decl.c:6171
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C++ da değişken boyutlu dizi yasaktır"
-#: cp/decl.c:6281
+#: cp/decl.c:6201
msgid "overflow in array dimension"
msgstr "dizi boyutunda taÅŸma"
-#: cp/decl.c:6356
+#: cp/decl.c:6275
#, fuzzy
msgid "declaration of %qD as %s"
-msgstr "`%D' %s olarak bildirilmiÅŸ"
+msgstr "%qD %s olarak bildirilmiÅŸ"
-#: cp/decl.c:6358
+#: cp/decl.c:6277
#, c-format
msgid "creating %s"
msgstr "%s oluÅŸturuluyor"
-#: cp/decl.c:6370
+#: cp/decl.c:6289
#, fuzzy
msgid "declaration of %qD 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"
+msgstr "çok boyutlu dizi olarak %qD bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır"
-#: cp/decl.c:6374
+#: cp/decl.c:6293
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:6409
+#: cp/decl.c:6328
msgid "return type specification for constructor invalid"
msgstr "kurucu için dönen değer tür özelliği geçersiz"
-#: cp/decl.c:6419
+#: cp/decl.c:6338
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:6432
+#: cp/decl.c:6351
#, fuzzy
msgid "operator %qT declared to return %qT"
msgstr "işleç `%T' dönüş `%T' ye bildirimli"
-#: cp/decl.c:6434
+#: cp/decl.c:6353
#, fuzzy
msgid "return type specified for %<operator %T%>"
msgstr "`operator %T' için dönüş türü belirtilmiş"
-#: cp/decl.c:6456
+#: cp/decl.c:6375
msgid "unnamed variable or field declared void"
msgstr "adsız değişken ya da alan void olarak bildirilmiş"
-#: cp/decl.c:6460
+#: cp/decl.c:6379
#, fuzzy, c-format
msgid "variable or field %qE declared void"
msgstr "`%E' değişkeni ya da alanı void olarak bildirilmiş"
-#: cp/decl.c:6463
+#: cp/decl.c:6382
msgid "variable or field declared void"
msgstr "deÄŸiÅŸken ya da alan void olarak bildirilmiÅŸ"
-#: cp/decl.c:6629
+#: cp/decl.c:6537
#, fuzzy
msgid "type %qT is not derived from type %qT"
msgstr "tür `%T' `%T' türünden türetilmemiş"
-#: cp/decl.c:6674
+#: cp/decl.c:6557 cp/decl.c:6649 cp/decl.c:7792
#, fuzzy
-msgid "declarator-id missing; using reserved word %qD"
-msgstr "bildirmci kimliği eksik; saklı yedek sözcük `%D' kullanılıyor"
+msgid "declaration of %qD as non-function"
+msgstr "%qD nin iÅŸlev olmayan olarak bildirimi"
-#: cp/decl.c:6730 cp/decl.c:7824
+#: cp/decl.c:6563
#, fuzzy
-msgid "declaration of %qD as non-function"
-msgstr "`%D' nin iÅŸlev olmayan olarak bildirimi"
+msgid "declaration of %qD as non-member"
+msgstr "bir şablonsuz olarak `%T' türünde yeniden bildirimi"
-#: cp/decl.c:6763
+#: cp/decl.c:6593
+#, fuzzy
+msgid "declarator-id missing; using reserved word %qD"
+msgstr "bildirmci kimliği eksik; saklı yedek sözcük %qD kullanılıyor"
+
+#: cp/decl.c:6682
#, fuzzy, c-format
msgid "two or more data types in declaration of %qs"
-msgstr "`%s'in bildiriminde iki veya daha fazla veri türü"
+msgstr "%qsin bildiriminde iki veya daha fazla veri türü"
-#: cp/decl.c:6806
+#: cp/decl.c:6725
#, fuzzy
msgid "ISO C++ does not support %<long long%>"
msgstr "ISO C++, `long long' desteklemiyor"
-#: cp/decl.c:6866 cp/decl.c:6868
+#: cp/decl.c:6785 cp/decl.c:6787
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of %qs with no type"
-msgstr "ISO C++ da türsüz `%s' bildirimine izin verilmez"
+msgstr "ISO C++ da türsüz %qs bildirimine izin verilmez"
-#: cp/decl.c:6893
+#: cp/decl.c:6812
#, fuzzy, c-format
msgid "short, signed or unsigned invalid for %qs"
-msgstr "`%s' için 'short', 'signed' veya 'unsigned' geçersiz"
+msgstr "%qs için 'short', 'signed' veya 'unsigned' geçersiz"
-#: cp/decl.c:6895
+#: cp/decl.c:6814
#, fuzzy, c-format
msgid "long, short, signed or unsigned invalid for %qs"
-msgstr "`%s' için long, short, signed ya da unsigned geçersiz"
+msgstr "%qs için long, short, signed ya da unsigned geçersiz"
-#: cp/decl.c:6897
+#: cp/decl.c:6816
#, fuzzy, c-format
msgid "long and short specified together for %qs"
-msgstr "`%s' için 'long' ve 'short' birlikte belirtilmiş"
+msgstr "%qs için 'long' ve 'short' birlikte belirtilmiş"
-#: cp/decl.c:6899
+#: cp/decl.c:6818
#, fuzzy, c-format
msgid "long or short specified with char for %qs"
-msgstr "`%s' için long veya short ile char türü değer belirtilmiş"
+msgstr "%qs için long veya short ile char türü değer belirtilmiş"
-#: cp/decl.c:6901
+#: cp/decl.c:6820
#, fuzzy, c-format
msgid "long or short specified with floating type for %qs"
-msgstr "`%s' için long veya short ile gerçel sayı değer belirtilmiş"
+msgstr "%qs için long veya short ile gerçel sayı değer belirtilmiş"
-#: cp/decl.c:6903
+#: cp/decl.c:6822
#, fuzzy, c-format
msgid "signed and unsigned given together for %qs"
-msgstr "`%s' için 'signed' ve 'unsigned' birlikte verilmiş"
+msgstr "%qs için 'signed' ve 'unsigned' birlikte verilmiş"
-#: cp/decl.c:6909
+#: cp/decl.c:6828
#, fuzzy, c-format
msgid "long, short, signed or unsigned used invalidly for %qs"
-msgstr "`%s' için long, short, signed ya da unsigned geçersizce kullanılmış"
+msgstr "%qs için long, short, signed ya da unsigned geçersizce kullanılmış"
-#: cp/decl.c:6974
+#: cp/decl.c:6893
#, fuzzy, c-format
msgid "complex invalid for %qs"
-msgstr "`%s' için karmaşık geçersizlik"
+msgstr "%qs için karmaşık geçersizlik"
-#: cp/decl.c:7003
+#: cp/decl.c:6922
#, fuzzy
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr "`operator %T' bildiriminde niteleyicilere izin verilmez"
-#: cp/decl.c:7024
+#: cp/decl.c:6934 cp/typeck.c:6404
+#, fuzzy
+msgid "ignoring %qV qualifiers added to function type %qT"
+msgstr "`%V' niteleyicileri `%T'de yoksayılıyor"
+
+#: cp/decl.c:6957
#, fuzzy
msgid "member %qD cannot be declared both virtual and static"
-msgstr "üye `%D', hem virtual hem de static olarak bildirilemez"
+msgstr "üye %qD, hem virtual hem de static olarak bildirilemez"
-#: cp/decl.c:7031
+#: cp/decl.c:6964
#, fuzzy
msgid "%<%T::%D%> is not a valid declarator"
msgstr "`%T::%D' geçerli bir bildirici değil"
-#: cp/decl.c:7039
+#: cp/decl.c:6972
msgid "typedef declaration invalid in parameter declaration"
msgstr "«typedef» bildirimi parametre bildirimi içinde geçersiz"
-#: cp/decl.c:7043
+#: cp/decl.c:6976
msgid "storage class specifiers invalid in parameter declarations"
msgstr "saklatım öbeği belirteçleri parametre bildirimi içinde geçersiz"
-#: cp/decl.c:7050
+#: cp/decl.c:6983
msgid "virtual outside class declaration"
msgstr "sanal dış öbek bildirimi"
-#: cp/decl.c:7063 cp/decl.c:7070
+#: cp/decl.c:6996 cp/decl.c:7003
#, fuzzy, c-format
msgid "multiple storage classes in declaration of %qs"
-msgstr "`%s' bildirimi içinde çok sayıda saklama sınıfı"
+msgstr "%qs bildirimi içinde çok sayıda saklama sınıfı"
-#: cp/decl.c:7113
+#: cp/decl.c:7046
#, fuzzy, c-format
msgid "storage class specified for %s %qs"
-msgstr "%s için saklatım öbeği `%s' belirtilmiş"
+msgstr "%s için saklatım öbeği %qs belirtilmiş"
-#: cp/decl.c:7150
+#: cp/decl.c:7083
#, fuzzy
msgid "top-level declaration of %qs specifies %<auto%>"
-msgstr "`%s' için tepe-seviye bildirimi `auto' belirtiyor"
+msgstr "%qs için tepe-seviye bildirimi `auto' belirtiyor"
-#: cp/decl.c:7162
+#: cp/decl.c:7095
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:7289
+#: cp/decl.c:7220
msgid "destructor cannot be static member function"
msgstr "yıkıcı, statik üye işlevi olamaz"
-#: cp/decl.c:7292
+#: cp/decl.c:7223
#, fuzzy
msgid "destructors may not be cv-qualified"
msgstr "yıkıcılar `%s' olmayabilir"
-#: cp/decl.c:7312
+#: cp/decl.c:7243
msgid "constructor cannot be static member function"
msgstr "kurucu, statik üye işlevi olamaz"
-#: cp/decl.c:7315
+#: cp/decl.c:7246
msgid "constructors cannot be declared virtual"
msgstr "kurucular virtual olarak bildirilemez"
-#: cp/decl.c:7320
+#: cp/decl.c:7251
#, fuzzy
msgid "constructors may not be cv-qualified"
msgstr "kurucular `%s' olmayabilir"
-#: cp/decl.c:7340
+#: cp/decl.c:7271
#, fuzzy, c-format
msgid "can't initialize friend function %qs"
-msgstr "kardeÅŸ iÅŸlev `%s' ilklendirilemiyor"
+msgstr "kardeÅŸ iÅŸlev %qs ilklendirilemiyor"
#. Cannot be both friend and virtual.
-#: cp/decl.c:7344
+#: cp/decl.c:7275
msgid "virtual functions cannot be friends"
msgstr "sanal iÅŸlevler kardeÅŸ iÅŸlev olamaz"
-#: cp/decl.c:7348
+#: cp/decl.c:7279
msgid "friend declaration not in class definition"
msgstr "kardeş bildirimi sınıf bildiriminde değil"
-#: cp/decl.c:7350
+#: cp/decl.c:7281
#, fuzzy, c-format
msgid "can't define friend function %qs in a local class definition"
-msgstr "yerel sınıf tanımı içinde kardeş işlev `%s' tanımlanamaz"
+msgstr "yerel sınıf tanımı içinde kardeş işlev %qs tanımlanamaz"
-#: cp/decl.c:7363
+#: cp/decl.c:7294
msgid "destructors may not have parameters"
msgstr "yıkıcılar parametre almaz"
-#: cp/decl.c:7381 cp/decl.c:7388
+#: cp/decl.c:7313 cp/decl.c:7320
#, fuzzy
msgid "cannot declare reference to %q#T"
msgstr "`%#T' ye referans bildirilemez"
-#: cp/decl.c:7382
+#: cp/decl.c:7314
#, fuzzy
msgid "cannot declare pointer to %q#T"
msgstr "`%#T' türüne gösterici bildirilemez"
-#: cp/decl.c:7390
+#: cp/decl.c:7322
#, fuzzy
msgid "cannot declare pointer to %q#T member"
msgstr "`%#T' üyeye gösterici bildirilemez"
-#: cp/decl.c:7446
+#: cp/decl.c:7361
+#, fuzzy
+msgid "%qD is a namespace"
+msgstr "%qD bir isim alanı"
+
+#: cp/decl.c:7400
#, fuzzy
msgid "template-id %qD used as a declarator"
-msgstr "şablon kimliği `%D' bir bildirici olarak kullanılmış"
+msgstr "şablon kimliği %qD bir bildirici olarak kullanılmış"
-#: cp/decl.c:7497
+#: cp/decl.c:7447
#, fuzzy
msgid "extra qualification %<%T::%> on member %qs ignored"
-msgstr "fazladan niteleme `%T::' üye `%s' üzerinde yoksayıldı"
+msgstr "fazladan niteleme `%T::' üye %qs üzerinde yoksayıldı"
-#: cp/decl.c:7516
+#: cp/decl.c:7466
#, fuzzy
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr "üye işlev `%T::%s' `%T' içinde bildirilemez"
-#: cp/decl.c:7531
+#: cp/decl.c:7481
#, fuzzy
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr "üye `%T::%s' `%T' içinde bildirilemez"
-#: cp/decl.c:7570
+#: cp/decl.c:7520
#, fuzzy
msgid "data member may not have variably modified type %qT"
msgstr "veri üyesi değişkene göre değişen `%T' türünde olamaz"
-#: cp/decl.c:7572
+#: cp/decl.c:7522
#, fuzzy
msgid "parameter may not have variably modified type %qT"
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:7580
+#: cp/decl.c:7530
#, fuzzy
msgid "only declarations of constructors can be %<explicit%>"
msgstr "sadece kurucuların bildirimleri `explicit' olabilir"
-#: cp/decl.c:7588
+#: cp/decl.c:7538
#, fuzzy
msgid "non-member %qs cannot be declared %<mutable%>"
-msgstr "üye olmayan `%s', `mutable' olarak bildirilemez"
+msgstr "üye olmayan %qs, `mutable' olarak bildirilemez"
-#: cp/decl.c:7593
+#: cp/decl.c:7543
#, fuzzy
msgid "non-object member %qs cannot be declared %<mutable%>"
-msgstr "nesne olmayan `%s' `mutable' olarak bildirilemez"
+msgstr "nesne olmayan %qs `mutable' olarak bildirilemez"
-#: cp/decl.c:7599
+#: cp/decl.c:7549
#, fuzzy
msgid "function %qs cannot be declared %<mutable%>"
-msgstr "iÅŸlev `%s' `mutable' olarak bildirilemez"
+msgstr "iÅŸlev %qs `mutable' olarak bildirilemez"
-#: cp/decl.c:7604
+#: cp/decl.c:7554
#, fuzzy
msgid "static %qs cannot be declared %<mutable%>"
-msgstr "static `%s' `mutable' olarak bildirilemez"
+msgstr "static %qs `mutable' olarak bildirilemez"
-#: cp/decl.c:7609
+#: cp/decl.c:7559
#, fuzzy
msgid "const %qs cannot be declared %<mutable%>"
-msgstr "const `%s' `mutable' olarak bildirilemez"
+msgstr "const %qs `mutable' olarak bildirilemez"
-#: cp/decl.c:7627
-#, fuzzy
-msgid "ISO C++ forbids nested type %qD 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:7636
+#: cp/decl.c:7579
msgid "%Jtypedef name may not be a nested-name-specifier"
msgstr "%J typedef ismi sınıf nitelemeli olmaz"
-#: cp/decl.c:7689
-msgid "%Jinvalid type qualifier for non-member function type"
-msgstr "%J üyesiz işlev türleri için tür niteleyici geçersiz"
+#: cp/decl.c:7595
+#, fuzzy
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr "ISO C++ zarflayan sınıf ile aynı isimde yuvalanmış tür %qD ye izin vermez"
-#: cp/decl.c:7752
+#: cp/decl.c:7694
+#, fuzzy, c-format
+msgid "qualified function types cannot be used to declare %s functions"
+msgstr "işlevin dönen değer türü işlev olamaz"
+
+#: cp/decl.c:7720
msgid "type qualifiers specified for friend class declaration"
msgstr "kardeş sınıf bildirimi için tür niteleyiciler belirtilmiş"
-#: cp/decl.c:7757
+#: cp/decl.c:7725
#, fuzzy
msgid "%<inline%> specified for friend class declaration"
msgstr "hardeş sınıf bildirimi için `inline' belirtilmiş"
-#: cp/decl.c:7765
+#: cp/decl.c:7733
msgid "template parameters cannot be friends"
msgstr "ÅŸablon parametreleri kardeÅŸler olamaz"
-#: cp/decl.c:7767
+#: cp/decl.c:7735
#, fuzzy
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:7771
+#: cp/decl.c:7739
#, fuzzy
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:7784
+#: cp/decl.c:7752
#, fuzzy
msgid "trying to make class %qT a friend of global scope"
msgstr "sınıf `%T' genel bağlamın kardeşi yapılmaya çalışılıyor"
-#: cp/decl.c:7795
+#: cp/decl.c:7763
msgid "invalid qualifiers on non-member function type"
msgstr "üyesiz işlev türünde geçersiz niteleyici"
-#: cp/decl.c:7814
+#: cp/decl.c:7782
#, fuzzy
msgid "abstract declarator %qT used as declaration"
msgstr "mutlak bildirimci `%T' bildirim olarak kullanılmış"
-#: cp/decl.c:7839
+#: cp/decl.c:7807
#, fuzzy
msgid "cannot use %<::%> in parameter declaration"
msgstr "parametre bildiriminde `::' kullanılamaz"
#. Something like struct S { int N::j; };
-#: cp/decl.c:7884
+#: cp/decl.c:7852
#, fuzzy
msgid "invalid use of %<::%>"
msgstr "`::' kullanımı geçersiz"
-#: cp/decl.c:7896
-#, fuzzy
-msgid "function %qD cannot be declared friend"
-msgstr "iÅŸlev `%D' kardeÅŸ olarak bildirilemez"
-
-#: cp/decl.c:7908
+#: cp/decl.c:7867
#, fuzzy
msgid "can't make %qD into a method -- not in a class"
-msgstr "bir yöntem içinde `%D' yapılamaz -- sınıf içinde değil"
+msgstr "bir yöntem içinde %qD yapılamaz -- sınıf içinde değil"
-#: cp/decl.c:7917
+#: cp/decl.c:7876
#, fuzzy
msgid "function %qD declared virtual inside a union"
-msgstr "işlev `%D' bir birleşik yapı içinde virtual olarak bildirilmiş"
+msgstr "işlev %qD bir birleşik yapı içinde virtual olarak bildirilmiş"
-#: cp/decl.c:7926
+#: cp/decl.c:7885
#, fuzzy
msgid "%qD cannot be declared virtual, since it is always static"
-msgstr "`%D' daima static olduÄŸundan sanal bildirilemez"
+msgstr "%qD daima static olduÄŸundan sanal bildirilemez"
+
+#: cp/decl.c:7903
+#, fuzzy
+msgid "declaration of %qD as member of %qT"
+msgstr "%qD bildirimi bir `this' üyesini gölgeliyor"
-#: cp/decl.c:8006
+#: cp/decl.c:7979
#, fuzzy
msgid "field %qD has incomplete type"
-msgstr "`%D' alanı içi boş türde"
+msgstr "%qD alanı içi boş türde"
-#: cp/decl.c:8008
+#: cp/decl.c:7981
#, fuzzy
msgid "name %qT has incomplete type"
msgstr "isim `%T' içi boş türde"
-#: cp/decl.c:8017
+#: cp/decl.c:7990
#, fuzzy
msgid " in instantiation of template %qT"
msgstr " şablon `%T' gerçeklemesinde"
-#: cp/decl.c:8027
+#: cp/decl.c:8000
#, fuzzy, c-format
msgid "%qE is neither function nor member function; cannot be declared friend"
-msgstr "`%s' ne işlev ne de üye işlev; kardeş olarak bildirilemez"
+msgstr "%qs ne işlev ne de üye işlev; kardeş olarak bildirilemez"
-#: cp/decl.c:8038
+#: cp/decl.c:8011
msgid "member functions are implicitly friends of their class"
msgstr "üye işlevler sınıflarının örtük kardeşleridir"
@@ -15325,95 +14783,95 @@ 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:8078
+#: cp/decl.c:8051
#, fuzzy
msgid "ISO C++ forbids initialization of member %qD"
-msgstr "ISO C++ üye `%D' ilklendirmesine izin vermez"
+msgstr "ISO C++ üye %qD ilklendirmesine izin vermez"
-#: cp/decl.c:8080
+#: cp/decl.c:8053
#, fuzzy
msgid "making %qD static"
-msgstr "`%D' static yapılıyor"
+msgstr "%qD static yapılıyor"
-#: cp/decl.c:8138
+#: cp/decl.c:8111
#, fuzzy
msgid "storage class %<auto%> invalid for function %qs"
-msgstr "saklama sınıfı `auto' `%s' işlevi için geçersiz"
+msgstr "saklama sınıfı `auto' %qs işlevi için geçersiz"
-#: cp/decl.c:8140
+#: cp/decl.c:8113
#, fuzzy
msgid "storage class %<register%> invalid for function %qs"
-msgstr "saklama sınıfı `register' `%s' işlevi için geçersiz"
+msgstr "saklama sınıfı `register' %qs işlevi için geçersiz"
-#: cp/decl.c:8142
+#: cp/decl.c:8115
#, fuzzy
msgid "storage class %<__thread%> invalid for function %qs"
-msgstr "saklama sınıfı `__thread' `%s' işlevi için geçersiz"
+msgstr "saklama sınıfı `__thread' %qs işlevi için geçersiz"
-#: cp/decl.c:8153
+#: cp/decl.c:8126
#, fuzzy
msgid "%<static%> specified invalid for function %qs declared out of global scope"
-msgstr "`inline' saklama sınıfı, genel kapsam dışında bildirilen `%s' işlevi için geçersiz"
+msgstr "`inline' saklama sınıfı, genel kapsam dışında bildirilen %qs işlevi için geçersiz"
-#: cp/decl.c:8156
+#: cp/decl.c:8129
#, fuzzy
msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
-msgstr "`inline' saklama sınıfı, genel kapsam dışında bildirilen `%s' işlevi için geçersiz"
+msgstr "`inline' saklama sınıfı, genel kapsam dışında bildirilen %qs işlevi için geçersiz"
-#: cp/decl.c:8164
+#: cp/decl.c:8137
#, fuzzy, c-format
msgid "virtual non-class function %qs"
-msgstr "sanal sınıf olmayan işlev `%s'"
+msgstr "sanal sınıf olmayan işlev %qs"
-#: cp/decl.c:8195
+#: cp/decl.c:8168
#, fuzzy
msgid "cannot declare member function %qD to have static linkage"
-msgstr "üye işlev `%D' static ilintilemeli olarak bildirilemez"
+msgstr "üye işlev %qD static ilintilemeli olarak bildirilemez"
#. FIXME need arm citation
-#: cp/decl.c:8202
+#: cp/decl.c:8175
msgid "cannot declare static function inside another function"
msgstr "statik işlev diğer bir işlevin içinde bildirilemez"
-#: cp/decl.c:8231
+#: cp/decl.c:8204
#, fuzzy
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:8238
+#: cp/decl.c:8211
#, fuzzy
msgid "static member %qD declared %<register%>"
-msgstr "statik üye `%D' `register' olarak bildirilmiş"
+msgstr "statik üye %qD `register' olarak bildirilmiş"
-#: cp/decl.c:8243
+#: cp/decl.c:8216
#, fuzzy
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr "üye `%#D' extern ilintilemeye sahip olacak şekilde doğrudan bildirilemez"
-#: cp/decl.c:8386
+#: cp/decl.c:8359
#, fuzzy
msgid "default argument for %q#D has type %qT"
msgstr "`%#D' için öntanımlı argüman `%T' türünde"
-#: cp/decl.c:8389
+#: cp/decl.c:8362
#, fuzzy
msgid "default argument for parameter of type %qT has type %qT"
msgstr "`%T' türündeki parametrenin öntanımlı argümanı `%T' türünde"
-#: cp/decl.c:8406
+#: cp/decl.c:8379
#, fuzzy
msgid "default argument %qE uses local variable %qD"
-msgstr "öntanımlı argüman `%E' yerel değişken `%D' yi kullanıyor"
+msgstr "öntanımlı argüman `%E' yerel değişken %qD yi kullanıyor"
-#: cp/decl.c:8474
+#: cp/decl.c:8447
#, fuzzy
msgid "parameter %qD invalidly declared method type"
-msgstr "parametre `%D' geçersiz olarak yöntem türünde bildirilmiş"
+msgstr "parametre %qD geçersiz olarak yöntem türünde bildirilmiş"
-#: cp/decl.c:8498
+#: cp/decl.c:8471
#, fuzzy
msgid "parameter %qD includes %s to array of unknown bound %qT"
-msgstr "parametre `%D' bilinmeyen `%T' sınırlı diziye %s içeriyor"
+msgstr "parametre %qD bilinmeyen `%T' sınırlı diziye %s içeriyor"
#. [class.copy]
#.
@@ -15430,132 +14888,132 @@ 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:8657
+#: cp/decl.c:8630
#, fuzzy
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:8781
+#: cp/decl.c:8754
#, fuzzy
msgid "%qD may not be declared within a namespace"
-msgstr "bu kapsamda `%D' bildirilmemiÅŸ "
+msgstr "bu kapsamda %qD bildirilmemiÅŸ "
-#: cp/decl.c:8783
+#: cp/decl.c:8756
#, fuzzy
msgid "%qD may not be declared as static"
-msgstr "`%D' bildirilmemiÅŸti"
+msgstr "%qD bildirilmemiÅŸti"
-#: cp/decl.c:8803
+#: cp/decl.c:8776
#, fuzzy
msgid "%qD must be a nonstatic member function"
-msgstr "`%D' static olmayan bir üye işlev olmalıdır"
+msgstr "%qD static olmayan bir üye işlev olmalıdır"
-#: cp/decl.c:8809
+#: cp/decl.c:8782
#, fuzzy
msgid "%qD 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"
+msgstr "%qD ya bir statik olmayan işlev ya da üye olmayan işlev olmalıdır"
-#: cp/decl.c:8827
+#: cp/decl.c:8800
#, fuzzy
msgid "%qD 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ı"
+msgstr "%qD bir sınıf argümanına sahip olmalı ya da enum türünde olmalı"
-#: cp/decl.c:8862
+#: cp/decl.c:8835
#, 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şleci kullanmayacak"
#. 13.4.0.3
-#: cp/decl.c:8870
+#: cp/decl.c:8843
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ işleci ?: nın aşırı yüklenmesini yasaklar"
-#: cp/decl.c:8920
+#: cp/decl.c:8893
#, fuzzy
msgid "postfix %qD must take %<int%> as its argument"
-msgstr "sonek `%D' argüman olarak `int' almalı"
+msgstr "sonek %qD argüman olarak `int' almalı"
-#: cp/decl.c:8924
+#: cp/decl.c:8897
#, fuzzy
msgid "postfix %qD must take %<int%> as its second argument"
-msgstr "sonek `%D' ikinci argümanı olarak `int' almalı"
+msgstr "sonek %qD ikinci argümanı olarak `int' almalı"
-#: cp/decl.c:8931
+#: cp/decl.c:8904
#, fuzzy
msgid "%qD must take either zero or one argument"
-msgstr "`%D' ya hiç argüman almamalı ya da bir argüman almalı"
+msgstr "%qD ya hiç argüman almamalı ya da bir argüman almalı"
-#: cp/decl.c:8933
+#: cp/decl.c:8906
#, fuzzy
msgid "%qD must take either one or two arguments"
-msgstr "`%D' ya bir ya da iki argüman almalı"
+msgstr "%qD ya bir ya da iki argüman almalı"
-#: cp/decl.c:8954
+#: cp/decl.c:8927
#, fuzzy
msgid "prefix %qD should return %qT"
-msgstr "önek `%D' `%T' döndürmeli"
+msgstr "önek %qD `%T' döndürmeli"
-#: cp/decl.c:8960
+#: cp/decl.c:8933
#, fuzzy
msgid "postfix %qD should return %qT"
-msgstr "sonek `%D' `%T' ile dönmeli"
+msgstr "sonek %qD `%T' ile dönmeli"
-#: cp/decl.c:8969
+#: cp/decl.c:8942
#, fuzzy
msgid "%qD must take %<void%>"
-msgstr "`%D' `void' almalı"
+msgstr "%qD `void' almalı"
-#: cp/decl.c:8971 cp/decl.c:8979
+#: cp/decl.c:8944 cp/decl.c:8952
#, fuzzy
msgid "%qD must take exactly one argument"
-msgstr "`%D' kesinlikle bir argüman almalı"
+msgstr "%qD kesinlikle bir argüman almalı"
-#: cp/decl.c:8981
+#: cp/decl.c:8954
#, fuzzy
msgid "%qD must take exactly two arguments"
-msgstr "`%D' kesinlikle iki argüman almalı"
+msgstr "%qD kesinlikle iki argüman almalı"
-#: cp/decl.c:8989
+#: cp/decl.c:8962
#, fuzzy
msgid "user-defined %qD always evaluates both arguments"
-msgstr "kullanıcı tanımlı `%D' daima her iki argümanıyla birlikte değerlendirilir"
+msgstr "kullanıcı tanımlı %qD daima her iki argümanıyla birlikte değerlendirilir"
-#: cp/decl.c:9003
+#: cp/decl.c:8976
#, fuzzy
msgid "%qD should return by value"
-msgstr "`%D' değeriyle döndürülmeli"
+msgstr "%qD değeriyle döndürülmeli"
-#: cp/decl.c:9015 cp/decl.c:9018
+#: cp/decl.c:8988 cp/decl.c:8991
#, fuzzy
msgid "%qD cannot have default arguments"
-msgstr "`%D' öntanımlı argümanlara sahip olamaz"
+msgstr "%qD öntanımlı argümanlara sahip olamaz"
-#: cp/decl.c:9072
+#: cp/decl.c:9049
#, fuzzy
msgid "using template type parameter %qT after %qs"
-msgstr "`%s' den sonra şablon tür parametresi `%T' kullanımı"
+msgstr "%qs den sonra şablon tür parametresi `%T' kullanımı"
-#: cp/decl.c:9086
+#: cp/decl.c:9064
#, fuzzy
msgid "using typedef-name %qD after %qs"
-msgstr "typedef-ismi `%D' `%s' den sonra kullanılıyor"
+msgstr "typedef-ismi %qD %qs den sonra kullanılıyor"
-#: cp/decl.c:9087
+#: cp/decl.c:9065
#, fuzzy
msgid "%qD has a previous declaration here"
msgstr "'%D' öncesinde `%#D' olarak bir bildirim var"
-#: cp/decl.c:9094
+#: cp/decl.c:9073
#, fuzzy
msgid "%qT referred to as %qs"
-msgstr "`%T' `%s' olarak iliÅŸkilendirilmiÅŸ"
+msgstr "`%T' %qs olarak iliÅŸkilendirilmiÅŸ"
-#: cp/decl.c:9095 cp/decl.c:9102
+#: cp/decl.c:9074 cp/decl.c:9082
#, fuzzy
msgid "%qT has a previous declaration here"
msgstr "%J bu, bir önceden bildirimdir"
-#: cp/decl.c:9101
+#: cp/decl.c:9081
#, fuzzy
msgid "%qT referred to as enum"
msgstr "`%T' enum olarak iliÅŸkilendirilmiÅŸ"
@@ -15567,57 +15025,62 @@ msgstr "`%T' enum olarak iliÅŸkilendirilmiÅŸ"
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:9117
+#: cp/decl.c:9097
#, fuzzy
msgid "template argument required for %<%s %T%>"
msgstr "şablon argüman `%s %T' için gereklidir"
-#: cp/decl.c:9279
+#: cp/decl.c:9133 cp/name-lookup.c:2595
+#, fuzzy
+msgid "%qD has the same name as the class in which it is declared"
+msgstr "%qD kendisini bildiren sınıf ile aynı isimde"
+
+#: cp/decl.c:9271
#, fuzzy
msgid "use of enum %q#D without previous declaration"
msgstr "önceden bildirilmeksizin enum `%#D' kullanımı"
-#: cp/decl.c:9298
+#: cp/decl.c:9290
#, fuzzy
msgid "redeclaration of %qT as a non-template"
msgstr "bir şablonsuz olarak `%T' türünde yeniden bildirimi"
-#: cp/decl.c:9391
+#: cp/decl.c:9383
#, fuzzy
msgid "derived union %qT invalid"
msgstr "türetilmiş union `%T' geçersiz"
-#: cp/decl.c:9397
+#: cp/decl.c:9389
#, fuzzy
msgid "Java class %qT cannot have multiple bases"
msgstr "'%T' Java sınıfı çoklu tabanlara sahip olamaz"
-#: cp/decl.c:9405
+#: cp/decl.c:9397
#, fuzzy
msgid "Java class %qT cannot have virtual bases"
msgstr "Jaban sınıfı `%T' sanal tabanlara sahip olamaz"
-#: cp/decl.c:9424
+#: cp/decl.c:9416
#, fuzzy
msgid "base type %qT 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:9457
+#: cp/decl.c:9449
#, fuzzy
msgid "recursive type %qT undefined"
msgstr "özyinelemeli tür `%T' tanımsız"
-#: cp/decl.c:9459
+#: cp/decl.c:9451
#, fuzzy
msgid "duplicate base type %qT invalid"
msgstr "yinelenmiş taban türü `%T' geçersiz"
-#: cp/decl.c:9529
+#: cp/decl.c:9521
#, fuzzy
msgid "multiple definition of %q#T"
msgstr "`%#T' çoklu tanımları"
-#: cp/decl.c:9530
+#: cp/decl.c:9522
msgid "%Jprevious definition here"
msgstr "%J önceden burada tanımlı"
@@ -15625,79 +15088,79 @@ msgstr "%J önceden burada tanımlı"
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:9667
+#: cp/decl.c:9659
#, fuzzy
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr "`%T' için tüm sembolik sabit değerlerini temsil edebilen bir tümleyen tür yok"
-#: cp/decl.c:9768
+#: cp/decl.c:9765
#, fuzzy
msgid "enumerator value for %qD not integer constant"
-msgstr "`%D' için sembolik sabitin değeri tamsayı sabit değil"
+msgstr "%qD için sembolik sabitin değeri tamsayı sabit değil"
-#: cp/decl.c:9795
+#: cp/decl.c:9792
#, fuzzy
msgid "overflow in enumeration values at %qD"
-msgstr "`%D' de sembolik sabit listesi deÄŸerlerinde taÅŸma"
+msgstr "%qD de sembolik sabit listesi deÄŸerlerinde taÅŸma"
-#: cp/decl.c:9866
+#: cp/decl.c:9863
#, fuzzy
msgid "return type %q#T is incomplete"
msgstr "dönüş türü `%#T' bir içi boş tür"
-#: cp/decl.c:9981 cp/typeck.c:6274
+#: cp/decl.c:9978 cp/typeck.c:6163
#, fuzzy
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr "`operator=' `*this'e bir referans döndürmeli"
-#: cp/decl.c:10304
+#: cp/decl.c:10301
#, fuzzy
msgid "parameter %qD declared void"
-msgstr "parametre `%D' void olarak bildirilmiÅŸ"
+msgstr "parametre %qD void olarak bildirilmiÅŸ"
-#: cp/decl.c:10786
+#: cp/decl.c:10790
msgid "invalid member function declaration"
msgstr "geçersiz üye işlev bildirimi"
-#: cp/decl.c:10801
+#: cp/decl.c:10805
#, fuzzy
msgid "%qD is already defined in class %qT"
-msgstr "`%D' zaten sınıf `%T' içinde tanımlı"
+msgstr "%qD zaten sınıf `%T' içinde tanımlı"
-#: cp/decl.c:11012
+#: cp/decl.c:11015
#, fuzzy
msgid "static member function %q#D declared with type qualifiers"
msgstr "statik üye işlev `%#D' tür niteleyicilerle bildirilmiş"
-#: cp/decl2.c:280
+#: cp/decl2.c:279
msgid "name missing for member function"
msgstr "üye işlev için isim eksik"
-#: cp/decl2.c:373 cp/decl2.c:387
+#: cp/decl2.c:372 cp/decl2.c:386
msgid "ambiguous conversion for array subscript"
msgstr "dizi altindisi için dönüşüm belirsiz"
-#: cp/decl2.c:381
+#: cp/decl2.c:380
#, fuzzy
msgid "invalid types %<%T[%T]%> for array subscript"
msgstr "dizi altindisi için geçersiz türler `%T[%T]'"
-#: cp/decl2.c:426
+#: cp/decl2.c:423
#, fuzzy
msgid "deleting array %q#D"
msgstr "dizi `%#D' siliniyor"
-#: cp/decl2.c:432
+#: cp/decl2.c:429
#, fuzzy
msgid "type %q#T argument given to %<delete%>, expected pointer"
msgstr "`%#T' türünde argüman `silinecek' olarak belirtilmiş, gösterici umuluyordu"
-#: cp/decl2.c:444
+#: cp/decl2.c:441
#, fuzzy
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to %<delete%>"
msgstr "bir işlev silinemez. Sadece nesnelerin göstericileri `silinecek' geçerli argümanlardır."
-#: cp/decl2.c:452
+#: cp/decl2.c:449
#, fuzzy
msgid "deleting %qT is undefined"
msgstr "`%T' silinmesi tanımsız"
@@ -15705,196 +15168,190 @@ msgstr "`%T' silinmesi tanımsız"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:488
+#: cp/decl2.c:485
#, fuzzy
msgid "invalid declaration of member template %q#D in local class"
msgstr "yerel sınıf içinde üye şablonu `%#D' nin bildirimi geçersiz"
-#: cp/decl2.c:497
+#: cp/decl2.c:494
#, fuzzy
msgid "invalid use of %<virtual%> in template declaration of %q#D"
msgstr "`%#D' şablon bildiriminde geçersiz `virtual' kullanımı"
-#: cp/decl2.c:507 cp/pt.c:2990
+#: cp/decl2.c:504 cp/pt.c:2965
#, fuzzy
msgid "template declaration of %q#D"
msgstr "`%#D' ÅŸablon bildirimi"
-#: cp/decl2.c:556
+#: cp/decl2.c:553
#, fuzzy
msgid "Java method %qD has non-Java return type %qT"
msgstr "Java yöntemi '%D' Java olmayan dönen tür `%T' içeriyor"
-#: cp/decl2.c:572
+#: cp/decl2.c:569
#, fuzzy
msgid "Java method %qD has non-Java parameter type %qT"
msgstr "Java yöntemi '%D' Java olmayan parametre türü `%T' içeriyor"
-#: cp/decl2.c:677
+#: cp/decl2.c:674
#, fuzzy
msgid "prototype for %q#D does not match any in class %qT"
msgstr "`%#D' prototipi sınıf `%T' içindeki hiçbir şeyle eşleşmiyor"
-#: cp/decl2.c:778
+#: cp/decl2.c:775
#, fuzzy
msgid "local class %q#T shall not have static data member %q#D"
msgstr "yerel sınıf `%#T static veri üyesi `%#D' içermemeli"
-#: cp/decl2.c:786
+#: cp/decl2.c:783
msgid "initializer invalid for static member with constructor"
msgstr "kuruculu statik üye için ilklendirici geçersiz"
-#: cp/decl2.c:789
+#: cp/decl2.c:786
msgid "(an out of class initialization is required)"
msgstr "(bir sınıf dışı ilklendirme gerekli)"
-#: cp/decl2.c:870
+#: cp/decl2.c:867
#, fuzzy
msgid "member %qD conflicts with virtual function table field name"
-msgstr "üye `%D' sanal işlev tablosu alan ismi ile çelişiyor"
+msgstr "üye %qD sanal işlev tablosu alan ismi ile çelişiyor"
+
+#: cp/decl2.c:886
+msgid "applying attributes to template parameters is not implemented"
+msgstr ""
-#: cp/decl2.c:890
+#: cp/decl2.c:896
#, fuzzy
msgid "%qD is already defined in %qT"
-msgstr "`%D' zaten `%T' içinde tanımlı"
+msgstr "%qD zaten `%T' içinde tanımlı"
-#: cp/decl2.c:936
+#: cp/decl2.c:944
msgid "field initializer is not constant"
msgstr "alan ilklendirici sabit deÄŸil"
-#: cp/decl2.c:964
+#: cp/decl2.c:972
#, fuzzy
msgid "%<asm%> specifiers are not permitted on non-static data members"
msgstr "`asm' belirteçlerinde statik olmayan veri üyeleri kullanılamaz"
-#: cp/decl2.c:1010
+#: cp/decl2.c:1018
#, fuzzy
msgid "cannot declare %qD to be a bit-field type"
-msgstr "`%D' bir bit alanı türü olarak bildirilemez"
+msgstr "%qD bir bit alanı türü olarak bildirilemez"
-#: cp/decl2.c:1020
+#: cp/decl2.c:1028
#, fuzzy
msgid "cannot declare bit-field %qD with function type"
-msgstr "bir alanı `%D' işlev türle bildirilemez"
+msgstr "bir alanı %qD işlev türle bildirilemez"
-#: cp/decl2.c:1027
+#: cp/decl2.c:1035
#, fuzzy
msgid "%qD is already defined in the class %qT"
-msgstr "`%D' zaten sınıf %T içinde tanımlı"
+msgstr "%qD zaten sınıf %T içinde tanımlı"
-#: cp/decl2.c:1034
+#: cp/decl2.c:1042
#, fuzzy
msgid "static member %qD cannot be a bit-field"
-msgstr "static üye `%D' bir bit alanı olarak bildirilemez"
-
-#: cp/decl2.c:1093
-#, fuzzy
-msgid "initializer specified for non-member function %qD"
-msgstr "üye olmayan işlev `%D' için ilklendirici belirtilmiş"
-
-#: cp/decl2.c:1097
-#, fuzzy
-msgid "invalid initializer for virtual method %qD"
-msgstr "sanal yöntem `%D' için geçersiz ilklendirici"
+msgstr "static üye %qD bir bit alanı olarak bildirilemez"
-#: cp/decl2.c:1129
+#: cp/decl2.c:1087
msgid "anonymous struct not inside named type"
msgstr "anonim yapı isimli türün içinde değil"
-#: cp/decl2.c:1206
+#: cp/decl2.c:1164
msgid "namespace-scope anonymous aggregates must be static"
msgstr "isim alanı bağlamındaki anonim kümeler static olmalıdır"
-#: cp/decl2.c:1213
+#: cp/decl2.c:1171
msgid "anonymous union with no members"
msgstr "üyesiz anonim birleşik yapı"
-#: cp/decl2.c:1249
+#: cp/decl2.c:1207
#, fuzzy
msgid "%<operator new%> must return type %qT"
msgstr "`operator new' `%T' türünde dönmeli"
-#: cp/decl2.c:1258
+#: cp/decl2.c:1216
#, fuzzy
msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
msgstr "`operator new' ilk parametreyi `size_t' (`%T') türünde alır"
-#: cp/decl2.c:1287
+#: cp/decl2.c:1245
#, fuzzy
msgid "%<operator delete%> must return type %qT"
msgstr "`operator delete' `%T' türünde dönmeli"
-#: cp/decl2.c:1296
+#: cp/decl2.c:1254
#, fuzzy
msgid "%<operator delete%> takes type %qT as first parameter"
msgstr "`operator delete' ilk parametreyi `%T'` türünde alır"
-#: cp/decl2.c:3033
+#: cp/decl2.c:2992
#, fuzzy
msgid "inline function %qD used but never defined"
-msgstr "özümlenen işlev `%D' tanımlanmadan kullanılmış"
+msgstr "özümlenen işlev %qD tanımlanmadan kullanılmış"
-#: cp/decl2.c:3178
+#: cp/decl2.c:3140
#, fuzzy
msgid "default argument missing for parameter %P of %q+#D"
msgstr "parametre %P (`%+#D' nin) için öntanımlı argüman eksik"
#. damn ICE suppression
-#: cp/error.c:2365
+#: cp/error.c:2371
#, fuzzy, c-format
msgid "unexpected letter %qc in locate_error\n"
msgstr "locate_error içinde umulmayan `%c' harfi\n"
#. Can't throw a reference.
-#: cp/except.c:239
+#: cp/except.c:262
#, fuzzy
msgid "type %qT is disallowed in Java %<throw%> or %<catch%>"
msgstr "tür `%T' Java `throw' veya `catch' içinde kullanılmaz"
-#: cp/except.c:250
+#: cp/except.c:273
#, fuzzy
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:257
+#: cp/except.c:280
#, fuzzy
msgid "type %qT is not derived from %<java::lang::Throwable%>"
msgstr "tür `%T' `java::lang::Throwable'dan türetilmemiştir"
-#: cp/except.c:320
+#: cp/except.c:343
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:576
+#: cp/except.c:602
msgid "throwing NULL, which has integral, not pointer type"
msgstr "tümleyen, gösterici olmayan NULL yakalanıyor"
-#: cp/except.c:599 cp/init.c:1872
+#: cp/except.c:625 cp/init.c:1893
#, fuzzy
msgid "%qD should never be overloaded"
-msgstr "`%D' asla aşırı yüklü olmamalı"
+msgstr "%qD asla aşırı yüklü olmamalı"
-#: cp/except.c:666
+#: cp/except.c:692
msgid " in thrown expression"
msgstr " düşük ifade içinde"
-#: cp/except.c:810
+#: cp/except.c:836
#, fuzzy
msgid "expression %qE of abstract class type %qT 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:895
+#: cp/except.c:921
#, fuzzy
msgid "%Hexception of type %qT will be caught"
msgstr "`%T' türündeki olağandışılık yakalanmış olacak"
-#: cp/except.c:897
+#: cp/except.c:923
#, fuzzy
msgid "%H by earlier handler for %qT"
msgstr " `%T'nin önceki tutamağı tarafından "
-#: cp/except.c:927
+#: cp/except.c:953
#, fuzzy
msgid "%H%<...%> handler must be the last handler for its try block"
msgstr "`...' tutamağı kendi blok denemesinde son tutamak olmalıdır"
@@ -15902,7 +15359,7 @@ msgstr "`...' tutamağı kendi blok denemesinde son tutamak olmalıdır"
#: cp/friend.c:152
#, fuzzy
msgid "%qD is already a friend of class %qT"
-msgstr "`%D' zaten sınıf `%T' nin kardeşi"
+msgstr "%qD zaten sınıf `%T' nin kardeşi"
#: cp/friend.c:228
#, fuzzy
@@ -15929,12 +15386,12 @@ msgstr "sınıf `%T' kendisiyle dolaylı kardeş"
#: cp/friend.c:310
#, fuzzy
msgid "%qT is not a member of %qT"
-msgstr "`%D' `%T' nin bir üyesi değil"
+msgstr "%qD `%T' nin bir üyesi değil"
#: cp/friend.c:315
#, fuzzy
msgid "%qT is not a member class template of %qT"
-msgstr "`%D' bir üye şablon işlevi değil"
+msgstr "%qD bir üye şablon işlevi değil"
#: cp/friend.c:323
#, fuzzy
@@ -15956,7 +15413,7 @@ msgstr "`%#T' bir ÅŸablon deÄŸil"
#: cp/friend.c:364
#, fuzzy
msgid "%qD is already a friend of %qT"
-msgstr "`%D' zaten `%T' nin kardeÅŸi"
+msgstr "%qD zaten `%T' nin kardeÅŸi"
#: cp/friend.c:373
#, fuzzy
@@ -15966,7 +15423,7 @@ msgstr "`%T' zaten `%T' nin kardeÅŸi"
#: cp/friend.c:497
#, fuzzy
msgid "member %qD declared as friend before type %qT defined"
-msgstr "üye `%D' tür `%T' tanımından önce friend olarak bildirilmiş"
+msgstr "üye %qD tür `%T' tanımından önce friend olarak bildirilmiş"
#: cp/friend.c:553
#, fuzzy
@@ -15980,214 +15437,222 @@ msgstr "(eÄŸer istediÄŸiniz bu deÄŸilse, iÅŸlev ÅŸablonunun zaten bildirilmiÅŸ o
#: cp/g++spec.c:238 java/jvspec.c:417
#, fuzzy, c-format
msgid "argument to '%s' missing\n"
-msgstr "`%s' için argüman eksik\n"
+msgstr "%qs için argüman eksik\n"
-#: cp/init.c:316
+#: cp/init.c:326
#, fuzzy
msgid "%J%qD should be initialized in the member initialization list"
-msgstr "`%D' üye ilklendirici listesinde ilklendirilmiş olmalı"
+msgstr "%qD üye ilklendirici listesinde ilklendirilmiş olmalı"
-#: cp/init.c:363
+#: cp/init.c:373
#, fuzzy
msgid "%Jdefault-initialization of %q#D, which has reference type"
msgstr "referans türe sahip `%#D'nin default ilklendirmesi"
-#: cp/init.c:369
+#: cp/init.c:379
#, fuzzy
msgid "%Juninitialized reference member %qD"
-msgstr "ilklendirilmemiş referans üyesi `%D'"
+msgstr "ilklendirilmemiş referans üyesi %qD"
-#: cp/init.c:372
+#: cp/init.c:382
#, fuzzy
msgid "%Juninitialized member %qD with %<const%> type %qT"
-msgstr "ilklendirilmemiş üye `%D' `const' `%T' türünde"
+msgstr "ilklendirilmemiş üye %qD `const' `%T' türünde"
-#: cp/init.c:515
+#: cp/init.c:525
#, fuzzy
msgid "%qD will be initialized after"
-msgstr "`%D' sonradan ilklendirilmiÅŸ olacak"
+msgstr "%qD sonradan ilklendirilmiÅŸ olacak"
-#: cp/init.c:518
+#: cp/init.c:528
#, fuzzy
msgid "base %qT will be initialized after"
msgstr "`%T' tabanı sonradan ilklendirilmiş olacak"
-#: cp/init.c:521
+#: cp/init.c:531
#, fuzzy
msgid " %q#D"
msgstr " `%#D'"
-#: cp/init.c:523
+#: cp/init.c:533
#, fuzzy
msgid " base %qT"
msgstr " `%T' tabanı için;"
-#: cp/init.c:524
+#: cp/init.c:534
#, fuzzy
msgid "%J when initialized here"
msgstr " burada ilklendirildiÄŸinde"
-#: cp/init.c:540
+#: cp/init.c:550
#, fuzzy
msgid "%Jmultiple initializations given for %qD"
-msgstr "`%D' için çoklu ilklendiriciler belirtilmiş"
+msgstr "%qD için çoklu ilklendiriciler belirtilmiş"
-#: cp/init.c:543
+#: cp/init.c:553
#, fuzzy
msgid "%Jmultiple initializations given for base %qT"
msgstr "taban `%T' için çoklu ilklendiriciler belirtilmiş"
-#: cp/init.c:610
+#: cp/init.c:620
#, fuzzy
msgid "%Jinitializations for multiple members of %qT"
msgstr "`%T' nin çoklu üyeleri için ilklendirmeler"
-#: cp/init.c:667
+#: cp/init.c:677
#, fuzzy
msgid "%Jbase class %q#T should be explicitly initialized in the copy constructor"
msgstr "taban sınıf `%#T' kopyalama kurucusunda doğrudan ilklendirilmiş olmalı"
-#: cp/init.c:891 cp/init.c:910
+#: cp/init.c:901 cp/init.c:920
#, fuzzy
msgid "class %qT does not have any field named %qD"
-msgstr "sınıf `%T' `%D' isimli hiçbir alan içermiyor"
+msgstr "sınıf `%T' %qD isimli hiçbir alan içermiyor"
-#: cp/init.c:897
+#: cp/init.c:907
#, fuzzy
msgid "%q#D is a static data member; it can only be initialized at its definition"
msgstr "`%#D' bir durağan veri üyesidir; sadece tanımında ilklendirilebilir"
-#: cp/init.c:904
+#: cp/init.c:914
#, fuzzy
msgid "%q#D is not a non-static data member of %qT"
msgstr "`%#D' `%T'nin bir static olmayan üyesi değildir"
-#: cp/init.c:943
+#: cp/init.c:953
#, fuzzy
msgid "unnamed initializer for %qT, which has no base classes"
msgstr "taban sınıfı olmayan `%T' için isimsiz ilklendirici"
-#: cp/init.c:951
+#: cp/init.c:961
#, fuzzy
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr "çoklu kalıt kullanan `%T' için isimsiz ilklendirici"
-#: cp/init.c:997
+#: cp/init.c:1007
#, fuzzy
msgid "%qD is both a direct base and an indirect virtual base"
-msgstr "`%D' hem doğrudan hem de dolaylı sanal taban"
+msgstr "%qD hem doğrudan hem de dolaylı sanal taban"
-#: cp/init.c:1005
+#: cp/init.c:1015
#, fuzzy
msgid "type %qD is not a direct or virtual base of %qT"
-msgstr "tür `%D' `%T' nin bir doğrudan ya da sanal tabanı değil"
+msgstr "tür %qD `%T' nin bir doğrudan ya da sanal tabanı değil"
-#: cp/init.c:1008
+#: cp/init.c:1018
#, fuzzy
msgid "type %qD is not a direct base of %qT"
-msgstr "tür `%D' `%T'nin bir doğrudan tabanı değil"
+msgstr "tür %qD `%T'nin bir doğrudan tabanı değil"
-#: cp/init.c:1088
+#: cp/init.c:1098
msgid "bad array initializer"
msgstr "dizi ilklendirici hatalı"
-#: cp/init.c:1287
+#: cp/init.c:1297
#, fuzzy
msgid "%qT is not an aggregate type"
msgstr "`%T' bir küme türü değil"
-#: cp/init.c:1379
+#: cp/init.c:1389
#, fuzzy
msgid "qualified type %qT does not match destructor name %<~%T%>"
msgstr "yetkin tür `%T', yıkıcı ismi `~%T' ile eşleşmiyor"
-#: cp/init.c:1387
+#: cp/init.c:1397
#, fuzzy
msgid "incomplete type %qT does not have member %qD"
-msgstr "içi boş tür `%T' üye `%D' yi içermiyor"
+msgstr "içi boş tür `%T' üye %qD yi içermiyor"
-#: cp/init.c:1406
+#: cp/init.c:1416
#, fuzzy
msgid "%qD is not a member of type %qT"
-msgstr "`%D' `%T' türünde bir üye değil"
+msgstr "%qD `%T' türünde bir üye değil"
-#: cp/init.c:1433
+#: cp/init.c:1443
#, fuzzy
msgid "invalid pointer to bit-field %qD"
-msgstr "`%D' bit alanı göstericisi geçersiz"
+msgstr "%qD bit alanı göstericisi geçersiz"
-#: cp/init.c:1535
+#: cp/init.c:1545
#, fuzzy
msgid "invalid use of non-static member function %qD"
-msgstr "static olmayan üye işlev `%D' kullanımı geçersiz"
+msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
-#: cp/init.c:1541 cp/semantics.c:1293
+#: cp/init.c:1551 cp/semantics.c:1321
#, fuzzy
msgid "invalid use of non-static data member %qD"
-msgstr "static olmayan veri üyesi `%D' kullanımı geçersiz"
+msgstr "static olmayan veri üyesi %qD kullanımı geçersiz"
+
+#: cp/init.c:1651
+msgid "size in array new must have integral type"
+msgstr "array new içindeki boyut bütünleyici türde olmalı"
-#: cp/init.c:1641
+#: cp/init.c:1654
+msgid "zero size array reserves no space"
+msgstr "sıfır boyutlu dizi için yer ayrılmaz"
+
+#: cp/init.c:1662
msgid "new cannot be applied to a reference type"
msgstr "new bir referans türe uygulanamaz"
-#: cp/init.c:1647
+#: cp/init.c:1668
msgid "new cannot be applied to a function type"
msgstr "new bir işlev türe uygulanamaz"
-#: cp/init.c:1679
+#: cp/init.c:1700
#, fuzzy
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr "`jclass' tanımlanmamışken Java kurucusuna çağrı"
-#: cp/init.c:1695
+#: cp/init.c:1716
msgid "can't find class$"
msgstr "class$ bulunamıyor"
-#: cp/init.c:1823
+#: cp/init.c:1844
#, fuzzy
msgid "invalid type %<void%> for new"
msgstr "new için `void' türü geçersiz"
-#: cp/init.c:1833
+#: cp/init.c:1854
#, fuzzy
msgid "uninitialized const in %<new%> of %q#T"
msgstr "`%#T' nin `new' u içinde ilklendirilmemiş sabit"
-#: cp/init.c:1867
+#: cp/init.c:1888
#, fuzzy, c-format
msgid "call to Java constructor with %qs undefined"
-msgstr "`%s' li Java kurucusuna çağrı tanımsız"
+msgstr "%qs li Java kurucusuna çağrı tanımsız"
-#: cp/init.c:1907
+#: cp/init.c:1928
#, fuzzy
msgid "request for member %qD is ambiguous"
-msgstr "üye `%D' için istek belirsiz"
+msgstr "üye %qD için istek belirsiz"
-#: cp/init.c:2040
+#: cp/init.c:2061
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ da array new içinde ilklendirmeye izin verilmez"
-#: cp/init.c:2510
+#: cp/init.c:2531
msgid "initializer ends prematurely"
msgstr "ilklendirici erken sonlanıyor"
-#: cp/init.c:2563
+#: cp/init.c:2584
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "çok boyutlu diziler ilklendiricilerle ilklendirilemez"
-#: cp/init.c:2722
+#: cp/init.c:2741
msgid "possible problem detected in invocation of delete operator:"
msgstr "silme işlecinin çağrısında bir sorun saptandı:"
-#: cp/init.c:2725
+#: cp/init.c:2744
msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
msgstr "Sınıf tanımlanırken bilfdirilmiş olsa bile, ne yıkıcı ne de sınıda özel silme işleci çağrılır."
-#: cp/init.c:2746
+#: cp/init.c:2765
msgid "unknown array size in delete"
msgstr "delete içindeki dizi boyutu bilinmiyor"
-#: cp/init.c:3006
+#: cp/init.c:2998
msgid "type to vector delete is neither pointer or array type"
msgstr "vektör silme işlemi için tür ne gösterici ne de dizi"
@@ -16222,7 +15687,7 @@ msgstr "'%D' tanımlı değil"
#: cp/lex.c:573
#, fuzzy
msgid "%qD was not declared in this scope"
-msgstr "bu kapsamda `%D' bildirilmemiÅŸ "
+msgstr "bu kapsamda %qD bildirilmemiÅŸ "
#. In a template, it is invalid to write "f()" or "f(3)" if no
#. declaration of "f" is available. Historically, G++ and most
@@ -16237,7 +15702,7 @@ msgstr "bu kapsamda `%D' bildirilmemiÅŸ "
#: cp/lex.c:610
#, fuzzy
msgid "there are no arguments to %qD that depend on a template parameter, so a declaration of %qD must be available"
-msgstr "`%D' için bir şablon parametresine bağımlı bir argüman yok, o halde bir `%D' bildirimi olmalı."
+msgstr "%qD için bir şablon parametresine bağımlı bir argüman yok, o halde bir %qD bildirimi olmalı."
#: cp/lex.c:619
#, fuzzy
@@ -16268,16 +15733,21 @@ msgstr "`D' nin anlamlandırılmış ismi GCC'nin gelecek sürümünde değişec
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr "`...' kullanan `%#D' için genel thunk kodu başarısız"
-#: cp/method.c:650
+#: cp/method.c:657
#, fuzzy
msgid "non-static const member %q#D, can't use default assignment operator"
msgstr "statik olmayan sabit üye `%#D', öntanımlı atama işleci kullanamaz"
-#: cp/method.c:656
+#: cp/method.c:663
#, fuzzy
msgid "non-static reference member %q#D, can't use default assignment operator"
msgstr "statik olmayan referans üyesi `%#D', öntanımlı atama işleci kullanamaz"
+#: cp/method.c:1078
+#, fuzzy
+msgid "vtable layout for class %qT may not be ABI-compliantand 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/name-lookup.c:693
#, fuzzy
msgid "redeclaration of %<wchar_t%> as %qT"
@@ -16292,12 +15762,12 @@ msgstr "`wchar_t' nin `%T' olarak yeniden bildirimi"
#: cp/name-lookup.c:725
#, fuzzy
msgid "invalid redeclaration of %qD"
-msgstr "`%D'in"
+msgstr "%qDin"
#: cp/name-lookup.c:726
#, fuzzy
msgid "as %qD"
-msgstr "`%D' olarak yeniden bildirimi geçersiz"
+msgstr "%qD olarak yeniden bildirimi geçersiz"
#: cp/name-lookup.c:814
#, fuzzy
@@ -16328,47 +15798,47 @@ msgstr "`%#D' bildirimi bir parametreyi gölgeliyor"
#: cp/name-lookup.c:966
#, fuzzy
msgid "declaration of %qD shadows a member of 'this'"
-msgstr "`%D' bildirimi bir `this' üyesini gölgeliyor"
+msgstr "%qD bildirimi bir `this' üyesini gölgeliyor"
#: cp/name-lookup.c:972
#, fuzzy
msgid "declaration of %qD shadows a previous local"
-msgstr "`%D' bildirimi önceki yereli gölgeliyor"
+msgstr "%qD bildirimi önceki yereli gölgeliyor"
#: cp/name-lookup.c:979
#, fuzzy
msgid "declaration of %qD shadows a global declaration"
-msgstr "`%D' bildirimi bir genel bildirimi gölgeliyor"
+msgstr "%qD bildirimi bir genel bildirimi gölgeliyor"
#: cp/name-lookup.c:1095
#, fuzzy
msgid "name lookup of %qD changed"
-msgstr "`%D' isim araması değişti"
+msgstr "%qD isim araması değişti"
#: cp/name-lookup.c:1096
#, fuzzy
msgid " matches this %qD under ISO standard rules"
-msgstr " bu `%D' ISO standardının kuralları altında eşleşiyor"
+msgstr " bu %qD ISO standardının kuralları altında eşleşiyor"
#: cp/name-lookup.c:1098
#, fuzzy
msgid " matches this %qD under old rules"
-msgstr " bu `%D' eski kurallar altında eşleşiyor"
+msgstr " bu %qD eski kurallar altında eşleşiyor"
#: cp/name-lookup.c:1116 cp/name-lookup.c:1124
#, fuzzy
msgid "name lookup of %qD changed for new ISO %<for%> scoping"
-msgstr "yeni ISO `for' etki alanında `%D' isim araması değişti"
+msgstr "yeni ISO `for' etki alanında %qD isim araması değişti"
#: cp/name-lookup.c:1118
#, fuzzy
msgid " cannot use obsolete binding at %qD because it has a destructor"
-msgstr " `%D' deki modası geçmiş bağlantı bir yıkıcıya sahip olduğundan kullanılamaz"
+msgstr " %qD deki modası geçmiş bağlantı bir yıkıcıya sahip olduğundan kullanılamaz"
#: cp/name-lookup.c:1126
#, fuzzy
msgid " using obsolete binding at %qD"
-msgstr " `%D' deki modası geçmiş bağlantı kullanılıyor"
+msgstr " %qD deki modası geçmiş bağlantı kullanılıyor"
#: cp/name-lookup.c:1179
#, c-format
@@ -16384,68 +15854,61 @@ msgstr "%s %s %p %d\n"
msgid "XXX is_class_level != (current_scope == class_scope)\n"
msgstr "XXX is_class_level != (current_scope == class_scope)\n"
-#: cp/name-lookup.c:1859
+#: cp/name-lookup.c:1864
#, fuzzy
msgid "%q#D hides constructor for %q#T"
msgstr "`%#D' `%#T' kurucusunu gizliyor"
-#: cp/name-lookup.c:1874
+#: cp/name-lookup.c:1879
#, fuzzy
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr "`%#D' `%#D' bildiriminin önceki kullanımı ile çelişiyor"
-#: cp/name-lookup.c:1886
+#: cp/name-lookup.c:1891
#, fuzzy
msgid "previous non-function declaration %q#D"
msgstr "önceki işlev olmayan bildirim `%#D'"
-#: cp/name-lookup.c:1887
+#: cp/name-lookup.c:1892
#, fuzzy
msgid "conflicts with function declaration %q#D"
msgstr "işlev bildirimi `%#D' ile çelişiyor"
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:1965 cp/name-lookup.c:1990 cp/name-lookup.c:3163
+#: cp/name-lookup.c:1970 cp/name-lookup.c:1995 cp/name-lookup.c:3157
#, fuzzy
msgid "%qT is not a namespace"
msgstr "`%T' bir isim alanı değil"
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:1975
+#: cp/name-lookup.c:1980
#, fuzzy
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/name-lookup.c:1982
+#: cp/name-lookup.c:1987
#, fuzzy
msgid "namespace %qD not allowed in using-declaration"
-msgstr "using bildiriminde isim alanı `%D' kullanılamaz"
+msgstr "using bildiriminde isim alanı %qD kullanılamaz"
-#: cp/name-lookup.c:2018
+#: cp/name-lookup.c:2023
#, fuzzy
msgid "%qD not declared"
-msgstr "`%D' bildirilmemiÅŸ"
+msgstr "%qD bildirilmemiÅŸ"
-#. If the OLD_FN was really declared, the
-#. declarations don't match.
-#: cp/name-lookup.c:2030 cp/name-lookup.c:2072 cp/name-lookup.c:2109
+#: cp/name-lookup.c:2035 cp/name-lookup.c:2080 cp/name-lookup.c:2114
#, fuzzy
msgid "%qD is already declared in this scope"
-msgstr "`%D' zaten bu baÄŸlamda bildirilmiÅŸ"
+msgstr "%qD zaten bu baÄŸlamda bildirilmiÅŸ"
-#: cp/name-lookup.c:2115
+#: cp/name-lookup.c:2120
#, fuzzy
msgid "using declaration %qD introduced ambiguous type %qT"
-msgstr "using bildirimi `%D' belirsiz tür `%T' ye dahil edildi"
+msgstr "using bildirimi %qD belirsiz tür `%T' ye dahil edildi"
-#: cp/name-lookup.c:2594
-#, fuzzy
-msgid "%qD has the same name as the class in which it is declared"
-msgstr "`%D' kendisini bildiren sınıf ile aynı isimde"
-
-#: cp/name-lookup.c:2689
+#: cp/name-lookup.c:2691
msgid "using-declaration for non-member at class scope"
msgstr "sınıf bağlamında üye olmayan için using bildirimi"
@@ -16453,442 +15916,460 @@ msgstr "sınıf bağlamında üye olmayan için using bildirimi"
msgid "using-declaration cannot name destructor"
msgstr "using bildirimi yıkıcıyı isimlendiremez"
-#: cp/name-lookup.c:2775
+#: cp/name-lookup.c:2769
#, fuzzy
msgid "declaration of %qD not in a namespace surrounding %qD"
-msgstr "`%D' bildirimi `%D' yi kuşatan isim alanının içinde değil"
+msgstr "%qD bildirimi %qD yi kuşatan isim alanının içinde değil"
-#: cp/name-lookup.c:2783
+#: cp/name-lookup.c:2777
#, fuzzy
msgid "explicit qualification in declaration of `%D'"
-msgstr "`%#D' nin doğrudan gerçeklenmesi"
+msgstr "`%D' nin doğrudan gerçeklenmesi"
-#: cp/name-lookup.c:2819
+#: cp/name-lookup.c:2813
#, fuzzy
msgid "%qD should have been declared inside %qD"
-msgstr "`%D' zaten `%D' içinde bildirilmişti"
+msgstr "%qD zaten %qD içinde bildirilmişti"
-#: cp/name-lookup.c:2881
+#: cp/name-lookup.c:2875
#, fuzzy
msgid "namespace alias %qD not allowed here, assuming %qD"
-msgstr "burada isim alanı rumuzu `%D' kullanılamaz, `%D' varsayılıyor"
+msgstr "burada isim alanı rumuzu %qD kullanılamaz, %qD varsayılıyor"
#. The parser did not find it, so it's not there.
-#: cp/name-lookup.c:2996
+#: cp/name-lookup.c:2990
#, fuzzy
msgid "unknown namespace %qD"
-msgstr "bilinmeyen isim alanı `%D'"
+msgstr "bilinmeyen isim alanı %qD"
-#: cp/name-lookup.c:3157
+#: cp/name-lookup.c:3151
#, fuzzy
msgid "namespace %qT undeclared"
msgstr "isim alanı `%T' bildirimsiz"
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3195
msgid "strong using only meaningful at namespace scope"
msgstr "kesin kullanım sadece isimalanı kapsamında anlamlıdır"
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3202
#, fuzzy
msgid "%qD attribute directive ignored"
-msgstr "`%D' özellik yönergesi yoksayıldı"
+msgstr "%qD özellik yönergesi yoksayıldı"
-#: cp/name-lookup.c:3342
+#: cp/name-lookup.c:3336
#, fuzzy
msgid "use of %qD is ambiguous"
-msgstr "`%D' kullanımı belirsiz"
+msgstr "%qD kullanımı belirsiz"
-#: cp/name-lookup.c:3343
+#: cp/name-lookup.c:3337
#, fuzzy
msgid " first declared as %q#D here"
msgstr " ilk defa burada `%#D' olarak bildirilmiÅŸ"
-#: cp/name-lookup.c:3345
+#: cp/name-lookup.c:3339
#, fuzzy
msgid " also declared as %q#D here"
msgstr " ayrıca burada da `%#D' olarak bildirilmiş"
-#: cp/name-lookup.c:3360
+#: cp/name-lookup.c:3354
#, fuzzy
msgid "%qD denotes an ambiguous type"
-msgstr "`%D' bir belirsiz tür gösteriyor"
+msgstr "%qD bir belirsiz tür gösteriyor"
-#: cp/name-lookup.c:3361
+#: cp/name-lookup.c:3355
msgid "%J first type here"
msgstr "%J ilk tür burada"
-#: cp/name-lookup.c:3362
+#: cp/name-lookup.c:3356
msgid "%J other type here"
msgstr "%J diğer tür burada"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/name-lookup.c:3426 cp/typeck.c:1818
+#: cp/name-lookup.c:3420 cp/parser.c:4365 cp/typeck.c:1786
#, fuzzy
msgid "invalid use of %qD"
-msgstr "`%D' kullanımı geçersiz"
+msgstr "%qD kullanımı geçersiz"
-#: cp/name-lookup.c:3466
+#: cp/name-lookup.c:3460
#, fuzzy
msgid "%<%D::%D%> is not a template"
msgstr "`%D::%D' bir ÅŸablon deÄŸil"
-#: cp/name-lookup.c:3482
+#: cp/name-lookup.c:3476
#, fuzzy
msgid "%qD undeclared in namespace %qD"
-msgstr "`%D' isim alanı `%D' içinde bildirimsiz"
+msgstr "%qD isim alanı %qD içinde bildirimsiz"
-#: cp/name-lookup.c:4108
+#: cp/name-lookup.c:4102
#, fuzzy
msgid "%qD is not a function,"
-msgstr "`%D' bir iÅŸlev deÄŸil,"
+msgstr "%qD bir iÅŸlev deÄŸil,"
-#: cp/name-lookup.c:4109
+#: cp/name-lookup.c:4103
#, fuzzy
msgid " conflict with %qD"
-msgstr " `%D' ile çelişiyor"
+msgstr " %qD ile çelişiyor"
-#: cp/name-lookup.c:4873
+#: cp/name-lookup.c:4868
msgid "XXX entering pop_everything ()\n"
msgstr "XXX, pop_everything () iÅŸlevine giriyor\n"
-#: cp/name-lookup.c:4882
+#: cp/name-lookup.c:4877
msgid "XXX leaving pop_everything ()\n"
msgstr "XXX, pop_everything () işlevini bırakıyor\n"
-#: cp/parser.c:1812
+#: cp/parser.c:1807
+#, fuzzy
+msgid "%<#pragma%> is not allowed here"
+msgstr "#pragma %s zaten kayıtlı"
+
+#: cp/parser.c:1836
#, fuzzy
msgid "%<%D::%D%> has not been declared"
msgstr "`%D::%D' bildirilmemiÅŸti"
-#: cp/parser.c:1815 cp/semantics.c:2318
+#: cp/parser.c:1839 cp/semantics.c:2375
#, fuzzy
msgid "%<::%D%> has not been declared"
msgstr "`%D::%D' bildirilmemiÅŸti"
-#: cp/parser.c:1818
+#: cp/parser.c:1842
#, fuzzy
msgid "request for member %qD in non-class type %qT"
-msgstr "sınıf olmayan `%T' türündeki `%E'nin üyesi `%D' için istek"
+msgstr "sınıf olmayan `%T' türündeki `%E'nin üyesi %qD için istek"
-#: cp/parser.c:1821
+#: cp/parser.c:1845
#, fuzzy
msgid "%<%T::%D%> has not been declared"
msgstr "`%D::%D' bildirilmemiÅŸti"
-#: cp/parser.c:1824
+#: cp/parser.c:1848
#, fuzzy
msgid "%qD has not been declared"
-msgstr "`%D' bildirilmemiÅŸti"
+msgstr "%qD bildirilmemiÅŸti"
-#: cp/parser.c:1827
+#: cp/parser.c:1851
#, fuzzy
msgid "%<%D::%D%> %s"
msgstr "`%D::%D' %s"
-#: cp/parser.c:1829
+#: cp/parser.c:1853
#, fuzzy
msgid "%<::%D%> %s"
msgstr "`%D::%D' %s"
-#: cp/parser.c:1831
+#: cp/parser.c:1855
#, fuzzy
msgid "%qD %s"
-msgstr "`%D' %s"
+msgstr "%qD %s"
-#: cp/parser.c:1884
+#: cp/parser.c:1907
msgid "new types may not be defined in a return type"
msgstr "new türleri bir dönüş türünde tanımlanamaz"
-#: cp/parser.c:1901 cp/pt.c:4364
+#: cp/parser.c:1908
+#, fuzzy
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr "`%T' bildiriminden sonra ; yok"
+
+#: cp/parser.c:1927 cp/pt.c:4328
#, fuzzy
msgid "%qT is not a template"
msgstr "`%T' bir ÅŸablon deÄŸil"
-#: cp/parser.c:1903
+#: cp/parser.c:1929
#, fuzzy, c-format
msgid "%qE is not a template"
msgstr "`%T' bir ÅŸablon deÄŸil"
-#: cp/parser.c:1905
+#: cp/parser.c:1931
msgid "invalid template-id"
msgstr "geçersiz şablon kimliği"
-#: cp/parser.c:1933
+#: cp/parser.c:1960
#, c-format
msgid "%s cannot appear in a constant-expression"
msgstr "%s bir sabit ifadesinde görünemez"
-#: cp/parser.c:1957
+#: cp/parser.c:1985
#, fuzzy, c-format
msgid "invalid use of template-name %qE without an argument list"
msgstr "bir bildirim içinde şablon ismi `%E' kullanımı geçersiz"
#. Issue an error message.
-#: cp/parser.c:1962
+#: cp/parser.c:1990
#, fuzzy, c-format
msgid "%qE does not name a type"
-msgstr "`%s' bir türü isimlendirmez"
+msgstr "%qs bir türü isimlendirmez"
-#: cp/parser.c:1993
+#: cp/parser.c:2021
#, fuzzy
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr " (ihtimal ki onu tür yapmak için `typename %T::%s' istiyorsunuz)"
-#: cp/parser.c:2008
+#: cp/parser.c:2036
#, fuzzy, c-format
msgid "%qE in namespace %qE does not name a type"
-msgstr "`%s' bir türü isimlendirmez"
+msgstr "%qs bir türü isimlendirmez"
-#: cp/parser.c:2011
+#: cp/parser.c:2039
#, fuzzy
msgid "%qE in class %qT does not name a type"
-msgstr "`%s' bir türü isimlendirmez"
+msgstr "%qs bir türü isimlendirmez"
-#: cp/parser.c:2678
+#: cp/parser.c:2748
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ da kaşlı ayraçla gruplanmış ifadelere izin verilmez"
-#: cp/parser.c:2687
+#: cp/parser.c:2757
msgid "statement-expressions are allowed only inside functions"
msgstr "deyim ifadelerine sadece işlevlerin içinde izin verilir"
-#: cp/parser.c:2738
+#: cp/parser.c:2808
#, fuzzy
msgid "%<this%> may not be used in this context"
msgstr "bu kapsamda `this' kullanılamaz"
-#: cp/parser.c:2873
+#: cp/parser.c:2944
#, fuzzy
msgid "local variable %qD may not appear in this context"
-msgstr "yerel değişken `%D' bu kapsamda görünemez"
+msgstr "yerel değişken %qD bu kapsamda görünemez"
-#: cp/parser.c:3238
+#: cp/parser.c:3316
#, fuzzy
msgid "typedef-name %qD used as destructor declarator"
-msgstr "typedef ismi `%D' yıkıcı bildiricisi olarak kullanılmış"
+msgstr "typedef ismi %qD yıkıcı bildiricisi olarak kullanılmış"
-#: cp/parser.c:3886
+#: cp/parser.c:3965
msgid "ISO C++ forbids compound-literals"
msgstr "ISO C++ da birleÅŸik sabitlere izin verilmez"
-#: cp/parser.c:4786
+#: cp/parser.c:4885
msgid "array bound forbidden after parenthesized type-id"
msgstr "parantezli tür kimliğinden sonra dizi sınırı yasak"
-#: cp/parser.c:4787
+#: cp/parser.c:4886
msgid "try removing the parentheses around the type-id"
msgstr "tür kimliğini sarmalayan parantezleri kaldırmayı deneyin"
-#: cp/parser.c:4893
-msgid "size in array new must have integral type"
-msgstr "array new içindeki boyut bütünleyici türde olmalı"
-
-#: cp/parser.c:4896
-msgid "zero size array reserves no space"
-msgstr "sıfır boyutlu dizi için yer ayrılmaz"
-
-#: cp/parser.c:4995
+#: cp/parser.c:5087
msgid "expression in new-declarator must have integral or enumeration type"
msgstr "new bildirimli ifade bütünleyici ya da numaralama türünde olmalı"
-#: cp/parser.c:5177
+#: cp/parser.c:5276
msgid "use of old-style cast"
msgstr "eski tarz tür dönüşümü"
-#: cp/parser.c:5932
+#: cp/parser.c:6041
#, fuzzy, c-format
msgid "case label %qE not within a switch statement"
msgstr "case etiketi `%E' bir switch deyimi içinde değil"
-#: cp/parser.c:6476
+#: cp/parser.c:6584
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ hesaplanmış goto'lara izin vermez"
-#: cp/parser.c:6601
+#: cp/parser.c:6709
#, fuzzy
msgid "extra %<;%>"
msgstr "`;' fazla"
-#: cp/parser.c:6920
+#: cp/parser.c:7028
msgid "mixing declarations and function-definitions is forbidden"
msgstr "karışık bildirimler ve işlev tanımları yasaktır"
-#: cp/parser.c:7052
+#: cp/parser.c:7159
#, fuzzy
msgid "duplicate %<friend%>"
msgstr "`friend' yinelenmiÅŸ"
-#: cp/parser.c:7221
+#: cp/parser.c:7328
msgid "class definition may not be declared a friend"
msgstr "sınıf tanımı kardeş olarak bildirilemez"
-#: cp/parser.c:7534
+#: cp/parser.c:7641
msgid "only constructors take base initializers"
msgstr "temel ilklendiricileri sadece kurucular alır"
-#: cp/parser.c:7585
+#: cp/parser.c:7692
msgid "anachronistic old-style base class initializer"
msgstr "artık tarih olmuş eski tarz temel sınıf ilklendiricisi"
-#: cp/parser.c:7626
+#: cp/parser.c:7734
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
msgstr "`typename' anahtar sözcüğüne bu bağlamda izin verilmez (bir nitelikli üye ilklendirici örtük türde)"
#. Warn that we do not support `export'.
-#: cp/parser.c:7988
+#: cp/parser.c:8096
#, fuzzy
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr "`export' anahtar sözcüğü gerçekleştirilmedi, ve yoksayılacak"
#. Otherwise, emit an error about the invalid digraph, but continue
#. parsing because we got our argument list.
-#: cp/parser.c:8358
+#: cp/parser.c:8469
#, fuzzy
msgid "%<<::%> cannot begin a template-argument list"
msgstr "`<::' bir şablon argüman listesi başlatamaz"
-#: cp/parser.c:8359
+#: cp/parser.c:8470
#, fuzzy
msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
msgstr "`<:', `[' için diğer gösterimdir. `<' ile `::' arasında boşluk bırakın"
-#: cp/parser.c:8366
+#: cp/parser.c:8477
#, fuzzy
msgid "(if you use -fpermissive G++ will accept your code)"
msgstr "(`-fpermissive' kullanırsanız G++ kodunuzu kabul edecek)"
+#: cp/parser.c:8541
+#, fuzzy
+msgid "parse error in template argument list"
+msgstr "`<::' bir şablon argüman listesi başlatamaz"
+
#. Explain what went wrong.
-#: cp/parser.c:8536
+#: cp/parser.c:8654
#, fuzzy
msgid "non-template %qD used as template"
-msgstr "şablon olarak şablon olmayan `%D' kullanılmış"
+msgstr "şablon olarak şablon olmayan %qD kullanılmış"
-#: cp/parser.c:8537
+#: cp/parser.c:8655
#, fuzzy
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr "bir şablon olduğunu belirtmek için `%T::template %D' kullanın"
-#: cp/parser.c:9554
+#: cp/parser.c:9245 cp/parser.c:15012
+#, fuzzy, c-format
+msgid "template declaration of %qs"
+msgstr "`%#D' ÅŸablon bildirimi"
+
+#: cp/parser.c:9688
#, fuzzy
msgid "using %<typename%> outside of template"
msgstr "şablon dışında `typename' kullanımı"
-#: cp/parser.c:9677
-msgid "expected type-name"
-msgstr "burada tür ismi umuluyordu"
-
-#: cp/parser.c:9748
+#: cp/parser.c:9883
msgid "type attributes are honored only at type definition"
msgstr "tür öznitelikleri sadece tür tanımlarında uygulanabilir"
#. [namespace.udecl]
#.
#. A using declaration shall not name a template-id.
-#: cp/parser.c:10130
+#: cp/parser.c:10265
msgid "a template-id may not appear in a using-declaration"
msgstr "using bildiriminde bir ÅŸablon kimliÄŸi bulunamaz"
-#: cp/parser.c:10461
+#: cp/parser.c:10595
msgid "an asm-specification is not allowed on a function-definition"
msgstr "bir işlev tanımında bir asm belirtimine izin verilmez"
-#: cp/parser.c:10463
+#: cp/parser.c:10597
msgid "attributes are not allowed on a function-definition"
msgstr "bir işlev tanımıda özniteliklere izin verilmez"
-#: cp/parser.c:10594
+#: cp/parser.c:10728
msgid "attributes after parenthesized initializer ignored"
msgstr "parantezli ilklendiriciden sonraki öznitelikler yoksayıldı"
-#: cp/parser.c:10976
+#: cp/parser.c:11113
#, fuzzy
msgid "array bound is not an integer constant"
msgstr "yineleme sayısı bir tamsayı sabit değil"
-#: cp/parser.c:11045
+#: cp/parser.c:11183
#, fuzzy
msgid "%<%T::%D%> is not a type"
msgstr "`%T::%D' bir tür değil"
-#: cp/parser.c:11090
+#: cp/parser.c:11225
#, fuzzy
msgid "invalid use of constructor as a template"
-msgstr "`%D' şablonunun kullanımı geçersiz"
+msgstr "%qD şablonunun kullanımı geçersiz"
-#: cp/parser.c:11091
+#: cp/parser.c:11226
msgid "use %<%T::%D%> instead of %<%T::%T%> to name the constructor in a qualified name"
msgstr ""
-#: cp/parser.c:11279
+#: cp/parser.c:11414
#, fuzzy
msgid "duplicate cv-qualifier"
msgstr "niteleyici yinelenmiş (göreli konum %d)"
-#: cp/parser.c:11795
+#: cp/parser.c:11916
msgid "file ends in default argument"
msgstr "öntanımlı argüman içinde dosya sonu"
-#: cp/parser.c:11855
+#: cp/parser.c:11977
msgid "deprecated use of default argument for parameter of non-function"
msgstr "işlev olmayanın parametresi için öntanımlı argüman kullanımı artık geçersiz"
-#: cp/parser.c:11858
+#: cp/parser.c:11980
msgid "default arguments are only permitted for function parameters"
msgstr "Öntanımlı argümanlara sadece işlev parametresi olarak izin verilir"
-#: cp/parser.c:12598
+#: cp/parser.c:12722
+#, fuzzy
+msgid "invalid class name in declaration of %qD"
+msgstr "geçersiz şablonu bildirimi %qD"
+
+#: cp/parser.c:12733
#, fuzzy
msgid "declaration of %qD in %qD which does not enclose %qD"
-msgstr "`%D' bildirimi `%D' içinde ve bu `%D' yi kapsamıyor"
+msgstr "%qD bildirimi %qD içinde ve bu %qD yi kapsamıyor"
-#: cp/parser.c:12611
+#: cp/parser.c:12746
msgid "extra qualification ignored"
msgstr "fazladan niteleme yoksayıldı"
-#: cp/parser.c:12622
+#: cp/parser.c:12757
#, fuzzy
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr "doğrudan özelleştirme `template <>' tarafından öncelenmeli"
-#: cp/parser.c:12914
+#: cp/parser.c:12850
+#, fuzzy
+msgid "previous definition of %q#T"
+msgstr "`%#T' nin önceki bildirimi"
+
+#: cp/parser.c:13059
#, fuzzy
msgid "%Hextra %<;%>"
msgstr "`;' fazla"
-#: cp/parser.c:12932
+#: cp/parser.c:13077
msgid "a class-key must be used when declaring a friend"
msgstr "bir kardeş bildirilirken bir sınıf anahtarı kullanılmalıdır"
-#: cp/parser.c:12946
+#: cp/parser.c:13091
msgid "friend declaration does not name a class or function"
msgstr "kardeş bildirimi bir sınıf veya işlevi isimlendirmiyor"
-#: cp/parser.c:13120
+#: cp/parser.c:13267
msgid "pure-specifier on function-definition"
msgstr "işlev tanımında saf belirteç"
-#: cp/parser.c:13393
+#: cp/parser.c:13545
#, fuzzy
msgid "keyword %<typename%> not allowed outside of templates"
msgstr "şablon dışında `typename' kullanımına izin verilmez"
-#: cp/parser.c:13395
+#: cp/parser.c:13547
#, fuzzy
msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
msgstr "`typename' anahtar sözcüğüne bu bağlamda izin verilmez (bir taban sınıf örtük türde)"
-#: cp/parser.c:13669
+#: cp/parser.c:13821
msgid "invalid catch parameter"
msgstr "yakalama parametresi geçersiz"
-#: cp/parser.c:14231
+#: cp/parser.c:14399
#, fuzzy
msgid "reference to %qD is ambiguous"
-msgstr "`%D' ile iliÅŸkilendirme belirsiz"
+msgstr "%qD ile iliÅŸkilendirme belirsiz"
-#: cp/parser.c:14400
+#: cp/parser.c:14568
msgid "too few template-parameter-lists"
msgstr "şablon parametresi listesi çok az"
@@ -16896,175 +16377,175 @@ msgstr "şablon parametresi listesi çok az"
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:14415
+#: cp/parser.c:14583
msgid "too many template-parameter-lists"
msgstr "şablon parametresi listesi çok fazla"
#. Skip the entire function.
-#: cp/parser.c:14639
+#: cp/parser.c:14807
msgid "invalid function declaration"
msgstr "işlev bildirimi geçersiz"
#. Issue an error message.
-#: cp/parser.c:14676
+#: cp/parser.c:14844
msgid "named return values are no longer supported"
msgstr "isimli dönüş değerleri artık desteklenmiyor"
-#: cp/parser.c:14844
-#, fuzzy, c-format
-msgid "template declaration of %qs"
-msgstr "`%#D' ÅŸablon bildirimi"
-
-#: cp/parser.c:15048
+#: cp/parser.c:15218
#, fuzzy
msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
msgstr "alt şablon argüman listesindeki `>>', `> >' olmalıydı"
-#: cp/parser.c:15063
+#: cp/parser.c:15233
#, fuzzy
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr "sahte `>>', bir şablon argüman listesini sonlandırmak için `>' kullanın"
-#: cp/parser.c:15068
+#: cp/parser.c:15238
#, fuzzy
msgid "missing %<>%> to terminate the template argument list"
msgstr "şablon argüman listesini sonlandıracak '>' eksik"
-#: cp/parser.c:15586
+#: cp/parser.c:15766
#, fuzzy
msgid "%qs tag used in naming %q#T"
-msgstr "`%s' etiketi `%#T' isimlemesinde kullanılmış"
+msgstr "%qs etiketi `%#T' isimlemesinde kullanılmış"
-#: cp/parser.c:15607
+#: cp/parser.c:15787
#, fuzzy
msgid "%qD redeclared with different access"
-msgstr "`%D' farklı erişimle tekrar bildirilmiş"
+msgstr "%qD farklı erişimle tekrar bildirilmiş"
-#: cp/parser.c:15624
+#: cp/parser.c:15804
#, fuzzy
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr "`template' (bir belirsizlik giderici olarak) sadece şablonlarda kullanılabilir"
-#: cp/parser.c:15832
+#: cp/parser.c:16012
#, fuzzy
msgid "inter-module optimizations not implemented for C++"
msgstr "modüller arası eniyilemeler henüz gerçekleştirilmedi."
-#: cp/pt.c:240
+#: cp/pt.c:241
#, fuzzy
msgid "data member %qD cannot be a member template"
-msgstr "veri üyesi `%D' bir üye şablonu olamaz"
+msgstr "veri üyesi %qD bir üye şablonu olamaz"
-#: cp/pt.c:252
+#: cp/pt.c:253
#, fuzzy
msgid "invalid member template declaration %qD"
-msgstr "geçersiz üye şablonu bildirimi `%D'"
+msgstr "geçersiz üye şablonu bildirimi %qD"
-#: cp/pt.c:574
+#: cp/pt.c:575
#, fuzzy
msgid "explicit specialization in non-namespace scope %qD"
-msgstr "isim alanı olmayan `%D' içinde doğrudan özelleştirme"
+msgstr "isim alanı olmayan %qD içinde doğrudan özelleştirme"
-#: cp/pt.c:585
+#: cp/pt.c:586
msgid "enclosing class templates are not explicitly specialized"
msgstr "sınıf şablonlarının zarflanması doğrudan özelleştirilmiyor"
-#: cp/pt.c:669
+#: cp/pt.c:670
#, fuzzy
msgid "specialization of %qD in different namespace"
-msgstr " `%D' farklı isim alanında özelleştiriliyor"
+msgstr " %qD farklı isim alanında özelleştiriliyor"
-#: cp/pt.c:670 cp/pt.c:739
+#: cp/pt.c:671 cp/pt.c:740
#, fuzzy
msgid " from definition of %q#D"
msgstr " `%#D' bildiriminden"
-#: cp/pt.c:706
+#: cp/pt.c:707
#, fuzzy
msgid "specialization of %qT after instantiation"
msgstr "gerçeklemeden sonra `%T' özelleştirmesi"
-#: cp/pt.c:738
+#: cp/pt.c:739
#, fuzzy
msgid "specializing %q#T in different namespace"
msgstr " `%#T' farklı isim alanında özelleştiriliyor"
-#: cp/pt.c:753
+#: cp/pt.c:754
#, fuzzy
msgid "specialization %qT after instantiation %qT"
msgstr "%T' özelleştirmesi, `%T' gerçeklemesinden sonra"
-#: cp/pt.c:765
+#: cp/pt.c:766
#, fuzzy
msgid "explicit specialization of non-template %qT"
msgstr "şablon olmayan `%T' örtük özelleştirmesi"
-#: cp/pt.c:1163
+#: cp/pt.c:1164
#, fuzzy
msgid "specialization of %qD after instantiation"
msgstr "gerçeklemeden sonra %D özelleştirmesi"
-#: cp/pt.c:1292
+#: cp/pt.c:1293
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1348
+#: cp/pt.c:1349
#, fuzzy
msgid "%qD is not a function template"
-msgstr "`%D' bir iÅŸlev ÅŸablonu deÄŸil"
+msgstr "%qD bir iÅŸlev ÅŸablonu deÄŸil"
-#: cp/pt.c:1533
+#: cp/pt.c:1534
#, fuzzy
msgid "template-id %qD for %q+D does not match any template declaration"
-msgstr "şablon kimliği `%D', `%+D' için hiçbir şablon bildirimi ile eşleşmiyor"
+msgstr "şablon kimliği %qD, `%+D' için hiçbir şablon bildirimi ile eşleşmiyor"
-#: cp/pt.c:1542
+#: cp/pt.c:1543
#, fuzzy
msgid "ambiguous template specialization %qD for %q+D"
-msgstr "şablon özelleştirmesi `%D', `%+D' için belirsiz"
+msgstr "şablon özelleştirmesi %qD, `%+D' için belirsiz"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1765 cp/pt.c:1819
+#: cp/pt.c:1774 cp/pt.c:1828
#, fuzzy
msgid "template-id %qD in declaration of primary template"
-msgstr "birincil ÅŸablon bildiriminde ÅŸablon kimliÄŸi `%D'"
+msgstr "birincil ÅŸablon bildiriminde ÅŸablon kimliÄŸi %qD"
-#: cp/pt.c:1778
+#: cp/pt.c:1787
msgid "template parameter list used in explicit instantiation"
msgstr "şablon parametre listesi doğrudan gerçekleme içinde kullanılmış"
-#: cp/pt.c:1784
+#: cp/pt.c:1793
msgid "definition provided for explicit instantiation"
msgstr "tanım doğrudan gerçekleme için üretilmiş"
-#: cp/pt.c:1792
+#: cp/pt.c:1801
#, fuzzy
msgid "too many template parameter lists in declaration of %qD"
-msgstr "`%D' bildiriminde şablon parametresi listesi çok fazla"
+msgstr "%qD bildiriminde şablon parametresi listesi çok fazla"
-#: cp/pt.c:1795
+#: cp/pt.c:1804
#, fuzzy
msgid "too few template parameter lists in declaration of %qD"
-msgstr "`%D' bildiriminde şablon parametresi listesi çok az"
+msgstr "%qD bildiriminde şablon parametresi listesi çok az"
-#: cp/pt.c:1797
+#: cp/pt.c:1806
#, fuzzy
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr "doğrudan özelleştirme `template <>' tarafından öncelenmeli"
-#: cp/pt.c:1816
+#: cp/pt.c:1825
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:1848
+#: cp/pt.c:1857
msgid "default argument specified in explicit specialization"
msgstr "doğrudan özelleştirme içinde öntanımlı argüman belirtilmiş"
-#: cp/pt.c:1852
+#: cp/pt.c:1861
msgid "template specialization with C linkage"
msgstr "C ilintileme ile şablon özelleştirmesi"
+#: cp/pt.c:1888
+#, fuzzy
+msgid "%qD is not a template function"
+msgstr "%qD bir üye şablon işlevi değil"
+
#. From [temp.expl.spec]:
#.
#. If such an explicit specialization for the member
@@ -17073,132 +16554,131 @@ msgstr "C ilintileme ile şablon özelleştirmesi"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1936
+#: cp/pt.c:1950
msgid "specialization of implicitly-declared special member function"
msgstr "örtük bildirimli özel üye işlev özelleştirmesi"
-#: cp/pt.c:1980
+#: cp/pt.c:1994
#, fuzzy
msgid "no member function %qD declared in %qT"
-msgstr "`%T' içinde bildirilmiş `%D' diye bir üye işlev yok"
-
-#. There are two many template parameter lists.
-#: cp/pt.c:2130
-#, fuzzy
-msgid "too many template parameter lists in declaration of %qT"
-msgstr "`%T' bildiriminde şablon parametresi listesi çok fazla"
+msgstr "`%T' içinde bildirilmiş %qD diye bir üye işlev yok"
-#: cp/pt.c:2224
+#: cp/pt.c:2199
#, fuzzy
msgid " shadows template parm %q#D"
msgstr " şablon parametresi `%#D' gölgeleniyor"
-#: cp/pt.c:2626
+#: cp/pt.c:2601
msgid "template parameters not used in partial specialization:"
msgstr "kısmî özelleştirmede kullanılmayan şablon parametreleri:"
-#: cp/pt.c:2630
+#: cp/pt.c:2605
#, fuzzy
msgid " %qD"
-msgstr " `%D'"
+msgstr " %qD"
-#: cp/pt.c:2641
+#: cp/pt.c:2616
#, fuzzy
msgid "partial specialization %qT does not specialize any template arguments"
msgstr "kısmî özelleştirme `%T' hiç bir şablon argümanını özelleştirmiyor"
-#: cp/pt.c:2666
+#: cp/pt.c:2641
#, fuzzy, c-format
msgid "template argument %qE involves template parameter(s)"
msgstr "şablon argümanı `%E' şablon parametre(ler)ini içine alıyor"
-#: cp/pt.c:2710
+#: cp/pt.c:2685
#, fuzzy
msgid "type %qT of template argument %qE 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:2797
+#: cp/pt.c:2772
#, fuzzy
msgid "no default argument for %qD"
-msgstr "`%D' için öntanımlı argüman yok"
+msgstr "%qD için öntanımlı argüman yok"
-#: cp/pt.c:2954
+#: cp/pt.c:2929
msgid "template with C linkage"
msgstr "C ilintilemeli ÅŸablon"
-#: cp/pt.c:2957
+#: cp/pt.c:2932
msgid "template class without a name"
msgstr "bir ismi olmayan şablon sınıfı"
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:2965
+#: cp/pt.c:2940
#, fuzzy
msgid "destructor %qD declared as member template"
-msgstr "yıkıcı `%D' bir üye şablonu olarak bildirilmiş"
+msgstr "yıkıcı %qD bir üye şablonu olarak bildirilmiş"
#. [basic.stc.dynamic.allocation]
#.
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:2980
+#: cp/pt.c:2955
#, fuzzy
msgid "invalid template declaration of %qD"
-msgstr "geçersiz şablonu bildirimi `%D'"
+msgstr "geçersiz şablonu bildirimi %qD"
-#: cp/pt.c:3061
+#: cp/pt.c:3036
#, fuzzy
msgid "%qD does not declare a template type"
-msgstr "`%D' bir şablon türü bildirmiyor"
+msgstr "%qD bir şablon türü bildirmiyor"
-#: cp/pt.c:3067
+#: cp/pt.c:3042
#, fuzzy
msgid "template definition of non-template %q#D"
msgstr "ÅŸablon olmayan `%#D' nin ÅŸablon bildirimi"
-#: cp/pt.c:3109
+#: cp/pt.c:3084
#, fuzzy
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr "%d seviye umulurken `%#D' için şablon parametresi seviyesi olarak %d seviye alındı, "
-#: cp/pt.c:3121
+#: cp/pt.c:3096
#, fuzzy
msgid "got %d template parameters for %q#D"
msgstr "%d şablon parametresi alındı (`%#D' için)"
-#: cp/pt.c:3124
+#: cp/pt.c:3099
#, fuzzy
msgid "got %d template parameters for %q#T"
msgstr "%d şablon parametresi alındı (`%#T' için)"
-#: cp/pt.c:3126
+#: cp/pt.c:3101
#, c-format
msgid " but %d required"
msgstr " ama %d gerekiyordu"
-#: cp/pt.c:3211
+#: cp/pt.c:3190
#, fuzzy
msgid "%qT is not a template type"
msgstr "`%T' bir şablon türü değil"
-#: cp/pt.c:3227
+#: cp/pt.c:3203
+#, fuzzy
+msgid "template specifiers not specified in declaration of %qD"
+msgstr "%qD bildiriminde şablon parametresi listesi çok az"
+
+#: cp/pt.c:3213
#, fuzzy
msgid "previous declaration %qD"
-msgstr "`%D' önceki bildirimi"
+msgstr "%qD önceki bildirimi"
-#: cp/pt.c:3228
+#: cp/pt.c:3214
#, 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:3248
+#: cp/pt.c:3234
#, fuzzy
msgid "template parameter %q#D"
msgstr "ÅŸablon parametresi `%#D'"
-#: cp/pt.c:3249
+#: cp/pt.c:3235
#, fuzzy
msgid "redeclared here as %q#D"
msgstr "burada yeniden `%#D' olarak bildirilmiÅŸ"
@@ -17207,345 +16687,355 @@ 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:3259
+#: cp/pt.c:3245
#, fuzzy
msgid "redefinition of default argument for %q#D"
msgstr "`%#D' nin öntanımlı argümanının yeniden tanımlanması"
-#: cp/pt.c:3260
+#: cp/pt.c:3246
msgid "%J original definition appeared here"
msgstr "%J özgün tanımı burada göründü"
-#: cp/pt.c:3370
+#: cp/pt.c:3342
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because function %qD has not external linkage"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:3411
+#: cp/pt.c:3383
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:3486
+#: cp/pt.c:3458
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:3536
+#: cp/pt.c:3508
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:3556
+#: cp/pt.c:3528
msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
msgstr ""
-#: cp/pt.c:3563
+#: cp/pt.c:3535
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:3576
+#: cp/pt.c:3548
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:3618
+#: cp/pt.c:3590
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is a pointer"
msgstr "`%E' geçerli bir şablon argümanı değil"
-#: cp/pt.c:3620
+#: cp/pt.c:3592
#, c-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:3655
+#: cp/pt.c:3627
#, fuzzy
msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr "`%E' geçerli bir şablon argümanı değil"
-#: cp/pt.c:3658
+#: cp/pt.c:3630
#, fuzzy
msgid "standard conversions are not allowed in this context"
msgstr "bu bağlam içinde şartlı ifadeler kullanılamaz"
-#: cp/pt.c:3827
+#: cp/pt.c:3799
#, fuzzy
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:3841 cp/pt.c:3860 cp/pt.c:3900
+#: cp/pt.c:3814 cp/pt.c:3833 cp/pt.c:3873
#, fuzzy
msgid "type/value mismatch at argument %d in template parameter list for %qD"
-msgstr "şablon parametre listesindeki %d. argümanda (`%D' için) tür/değer çelişkisi"
+msgstr "şablon parametre listesindeki %d. argümanda (%qD için) tür/değer çelişkisi"
-#: cp/pt.c:3845
+#: cp/pt.c:3818
#, fuzzy
msgid " expected a constant of type %qT, got %qT"
msgstr " `%T' türünde bir sabit umulurken `%T' alındı"
-#: cp/pt.c:3849
+#: cp/pt.c:3822
#, fuzzy, c-format
msgid " expected a class template, got %qE"
msgstr " bir sınıf şablonu umulurken `%E' alındı"
-#: cp/pt.c:3851
+#: cp/pt.c:3824
#, fuzzy, c-format
msgid " expected a type, got %qE"
msgstr " bir tür umulurken `%E' alındı "
-#: cp/pt.c:3864
+#: cp/pt.c:3837
#, fuzzy
msgid " expected a type, got %qT"
msgstr " bir tür umulurken `%T' alındı"
-#: cp/pt.c:3866
+#: cp/pt.c:3839
#, fuzzy
msgid " expected a class template, got %qT"
msgstr " bir sınıf şablonu umulurken `%T' alındı"
-#: cp/pt.c:3903
+#: cp/pt.c:3876
#, fuzzy
msgid " expected a template of type %qD, got %qD"
-msgstr " `%D' türünde bir şablon umulurken `%D' alındı"
+msgstr " %qD türünde bir şablon umulurken %qD alındı"
-#: cp/pt.c:3939
+#: cp/pt.c:3912
#, fuzzy
msgid "could not convert template argument %qE to %qT"
msgstr "şablon argümanı `%E' `%T' ye dönüştürülemedi"
-#: cp/pt.c:3978
+#: cp/pt.c:3951
#, 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:3982
+#: cp/pt.c:3955
#, fuzzy
msgid "provided for %qD"
-msgstr "`%D' için sağlanmış"
+msgstr "%qD için sağlanmış"
-#: cp/pt.c:4012
+#: cp/pt.c:3985
#, c-format
msgid "template argument %d is invalid"
msgstr "şablon argümanı %d geçersiz"
-#: cp/pt.c:4234
-msgid "non-template used as template"
-msgstr "şablon olarak şablon olmayan kullanılmış"
-
-#: cp/pt.c:4376
+#: cp/pt.c:4340
#, fuzzy
msgid "non-template type %qT used as a template"
msgstr "şablon olarak şablon olmayan tür `%T' kullanılmış"
-#: cp/pt.c:4378
+#: cp/pt.c:4342
#, fuzzy
msgid "for template declaration %qD"
-msgstr "şablon bildirimi `%D' için"
+msgstr "şablon bildirimi %qD için"
-#: cp/pt.c:5018
+#: cp/pt.c:4982
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
-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)"
+msgstr "%d lik en büyük şablon gerçekleme derinliği %qD gerçeklemesinde aşılıyor (en büyük değeri arttırmak için -ftemplate-depth-NN kullanın)"
-#: cp/pt.c:5457
+#: cp/pt.c:5424
#, fuzzy
msgid "ambiguous class template instantiation for %q#T"
msgstr "`%#T' için sınıf şablonu gerçeklemesi belirsiz"
-#: cp/pt.c:5463
+#: cp/pt.c:5430
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:6522
+#: cp/pt.c:6510
#, fuzzy
msgid "instantiation of %qD as type %qT"
-msgstr "`%D' gerçeklemesi `%T' türünde"
+msgstr "%qD gerçeklemesi `%T' türünde"
-#: cp/pt.c:6683
+#: cp/pt.c:6678
#, fuzzy
msgid "invalid parameter type %qT"
msgstr "geçersiz parametre türü `%T'"
-#: cp/pt.c:6685
+#: cp/pt.c:6680
#, fuzzy
msgid "in declaration %qD"
-msgstr "`%D' bildiriminde"
+msgstr "%qD bildiriminde"
-#: cp/pt.c:6746
+#: cp/pt.c:6741
#, fuzzy
msgid "function returning an array"
msgstr "işlev bir küme ile dönüyor"
-#: cp/pt.c:6748
+#: cp/pt.c:6743
#, fuzzy
msgid "function returning a function"
msgstr "`%s' bir işlevle sonuçlanan bir işlev olarak bildirilmiş"
-#: cp/pt.c:6775
+#: cp/pt.c:6770
#, fuzzy
msgid "creating pointer to member function of non-class type %qT"
msgstr "sınıf olmayan `%T' türünde üye işlev göstericisi oluşturulması"
-#: cp/pt.c:6945
+#: cp/pt.c:6938
msgid "creating array with size zero"
msgstr "dizi sıfır uzunlukta oluşturuluyor"
-#: cp/pt.c:6959
+#: cp/pt.c:6952
#, fuzzy, c-format
msgid "creating array with size zero (%qE)"
msgstr "sıfır boyutlu dizi oluşturuluyor (`%E')"
-#: cp/pt.c:7176
+#: cp/pt.c:7169
msgid "forming reference to void"
msgstr "void'e referans oluÅŸturuluyor"
-#: cp/pt.c:7178
+#: cp/pt.c:7171
#, fuzzy
msgid "forming %s to reference type %qT"
msgstr "%s tür `%T'ye referans oluşturuyor"
-#: cp/pt.c:7215
+#: cp/pt.c:7208
#, fuzzy
msgid "creating pointer to member of non-class type %qT"
msgstr "sınıf olmayan `%T' türünde üye göstericisisi oluşturulması"
-#: cp/pt.c:7221
+#: cp/pt.c:7214
#, fuzzy
msgid "creating pointer to member reference type %qT"
msgstr "`%T' üye referans türünde gösterici oluşturulması"
-#: cp/pt.c:7291
+#: cp/pt.c:7280
#, fuzzy
msgid "creating array of %qT"
msgstr "`%T' dizisi oluşturulması"
-#: cp/pt.c:7297
+#: cp/pt.c:7286
#, fuzzy
msgid "creating array of %qT, which is an abstract class type"
msgstr "mutlak sınıf türünde olan `%T' dizininin oluşturulması"
-#: cp/pt.c:7341
+#: cp/pt.c:7330
#, fuzzy
msgid "%qT is not a class, struct, or union type"
msgstr "`%T' bir class, struct, veya union türünde değil"
-#: cp/pt.c:7430
+#: cp/pt.c:7365
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.c:7368
+#, fuzzy
+msgid "%qT resolves to %qT, which is is not a class type"
+msgstr "mutlak sınıf türünde olan `%T' dizininin oluşturulması"
+
+#: cp/pt.c:7429
#, fuzzy, c-format
msgid "use of %qs in template"
-msgstr "şablonda `%s' kullanımı"
+msgstr "şablonda %qs kullanımı"
-#: cp/pt.c:7555
+#: cp/pt.c:7554
#, fuzzy, c-format
msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr "`%E' bağımlı ismi bir tür olarak çözümlenmedi ama gerçekleme onun bir tür olmasını istiyor"
-#: cp/pt.c:7557
+#: cp/pt.c:7556
#, fuzzy
msgid "say %<typename %E%> if a type is meant"
msgstr "eğer bu bir türdür anlamında kullandıysanız `typename %E' deyin"
-#: cp/pt.c:8708
+#: cp/pt.c:7675
+#, fuzzy
+msgid "using invalid field %qD"
+msgstr "statik alan %qs eksik"
+
+#: cp/pt.c:8729
#, fuzzy
msgid "%qT is not a class or namespace"
msgstr "`%T' bir sınıf ya da isim alanı değil"
-#: cp/pt.c:8711
+#: cp/pt.c:8732
#, fuzzy
msgid "%qD is not a class or namespace"
-msgstr "`%D' bir sınıf ya da isim alanı değil"
+msgstr "%qD bir sınıf ya da isim alanı değil"
-#: cp/pt.c:8844
+#: cp/pt.c:8872
#, fuzzy
-msgid "%qT uses anonymous type"
+msgid "%qT is/uses anonymous type"
msgstr "`%T' anonim tür kullanıyor"
-#: cp/pt.c:8846
+#: cp/pt.c:8874
#, fuzzy
msgid "%qT uses local type %qT"
msgstr "`%T' yerel tür `%T' kullanıyor"
-#: cp/pt.c:8854
+#: cp/pt.c:8883
#, fuzzy
msgid "%qT is a variably modified type"
msgstr "`%T' değişkene göre değişen türde"
-#: cp/pt.c:8865
+#: cp/pt.c:8894
#, fuzzy, c-format
msgid "integral expression %qE is not constant"
msgstr "bütünleyen ifade `%E' bir sabit değil"
-#: cp/pt.c:8870
+#: cp/pt.c:8899
#, fuzzy
msgid " trying to instantiate %qD"
-msgstr " `%D' gerçeklenmeye çalışılıyor"
+msgstr " %qD gerçeklenmeye çalışılıyor"
-#: cp/pt.c:9386
+#: cp/pt.c:9418
msgid "incomplete type unification"
msgstr "tamamlanmamış tür birleştirme"
-#: cp/pt.c:10704 cp/pt.c:10775
+#: cp/pt.c:10767 cp/pt.c:10838
#, fuzzy
msgid "explicit instantiation of non-template %q#D"
msgstr "şablon olmayan `%#D' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:10720 cp/pt.c:10770
+#: cp/pt.c:10783 cp/pt.c:10833
#, fuzzy
msgid "no matching template for %qD found"
-msgstr "`%D' için eşleşen bir şablon yok"
+msgstr "%qD için eşleşen bir şablon yok"
-#: cp/pt.c:10726
+#: cp/pt.c:10789
#, fuzzy
msgid "explicit instantiation of %q#D"
msgstr "`%#D' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:10762
+#: cp/pt.c:10825
#, fuzzy
msgid "duplicate explicit instantiation of %q#D"
msgstr "yinelenmiş doğrudan `%#D' gerçeklemesi"
-#: cp/pt.c:10784
+#: cp/pt.c:10847
#, fuzzy
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:10789 cp/pt.c:10879
+#: cp/pt.c:10852 cp/pt.c:10942
#, fuzzy
msgid "storage class %qD applied to template instantiation"
-msgstr "saklama sınıfı `%D' şablon gerçeklemesine uygulanmış"
+msgstr "saklama sınıfı %qD şablon gerçeklemesine uygulanmış"
-#: cp/pt.c:10851
+#: cp/pt.c:10914
#, fuzzy
msgid "explicit instantiation of non-template type %qT"
msgstr "şablon olmayan tür `%T' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:10860
+#: cp/pt.c:10923
#, fuzzy
msgid "explicit instantiation of %q#T before definition of template"
msgstr "şablon tanımından önce `%T' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:10868
+#: cp/pt.c:10931
#, fuzzy, c-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
-msgstr "ISO C++ doğrudan gerçeklemelerde `%s' kullanımına izin vermez"
+msgstr "ISO C++ doğrudan gerçeklemelerde %qs kullanımına izin vermez"
-#: cp/pt.c:10913
+#: cp/pt.c:10976
#, fuzzy
msgid "duplicate explicit instantiation of %q#T"
msgstr "yinelenmiş doğrudan `%#T' gerçeklemesi"
-#: cp/pt.c:11278
+#: cp/pt.c:11341
#, fuzzy
msgid "explicit instantiation of %qD but no definition available"
-msgstr "bir tanımlama olmadan `%D' nin doğrudan gerçeklenmesi"
+msgstr "bir tanımlama olmadan %qD nin doğrudan gerçeklenmesi"
-#: cp/pt.c:11422
+#: cp/pt.c:11485
#, fuzzy
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %q+D, possibly from virtual table generation"
-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)"
+msgstr "%d lik en büyük şablon gerçekleme derinliği %qD gerçeklemesinde aşılıyor (en büyük değeri arttırmak için -ftemplate-depth-NN kullanın)"
-#: cp/pt.c:11701
+#: cp/pt.c:11753
#, fuzzy
msgid "%q#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"
@@ -17562,27 +17052,27 @@ msgstr "%s içinde esrarengiz depo bilgisi"
#: cp/repo.c:214
#, fuzzy, c-format
msgid "can't create repository information file %qs"
-msgstr "depo bilgisi `%s' dosyasında oluşturulamıyor"
+msgstr "depo bilgisi %qs dosyasında oluşturulamıyor"
-#: cp/rtti.c:243
+#: cp/rtti.c:244
msgid "cannot use typeid with -fno-rtti"
msgstr "typeid, -fno-rtti ile kullanılamaz"
-#: cp/rtti.c:249
+#: cp/rtti.c:250
msgid "must #include <typeinfo> before using typeid"
msgstr "typeid kullanımından önce #include <türbilgisi> olmalı"
-#: cp/rtti.c:321
+#: cp/rtti.c:322
#, fuzzy
msgid "cannot create type information for type %qT 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:574 cp/rtti.c:588
+#: cp/rtti.c:570 cp/rtti.c:584
#, fuzzy
msgid "dynamic_cast of %q#D to %q#T can never succeed"
msgstr "`%#D' nin `%#T' türüne özdevimli dönüşümü asla başarılı olamaz"
-#: cp/rtti.c:667
+#: cp/rtti.c:663
#, fuzzy
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr "`%E' (`%#T' türünde) den `%#T' türüne özdevimli dönüşüm yapılamaz (%s)"
@@ -17597,240 +17087,235 @@ msgstr "`%T', `%T' nin bir belirsiz tabanıdır"
msgid "%qT is an inaccessible base of %qT"
msgstr "`%T', `%T' nin bir erişilemeyen tabanıdır"
-#: cp/search.c:1834
+#: cp/search.c:1843
#, fuzzy
msgid "deprecated covariant return type for %q#D"
msgstr "`%#D' için ortak değişen dönüş türü geçersiz"
-#: cp/search.c:1836 cp/search.c:1851 cp/search.c:1857
+#: cp/search.c:1845 cp/search.c:1860 cp/search.c:1866
#, fuzzy
msgid " overriding %q#D"
msgstr " `%#D' deÄŸiÅŸtiriliyor"
-#: cp/search.c:1850
+#: cp/search.c:1859
#, fuzzy
msgid "invalid covariant return type for %q#D"
msgstr "`%#D' için ortak değişen dönüş türü geçersiz"
-#: cp/search.c:1855
+#: cp/search.c:1864
#, fuzzy
msgid "conflicting return type specified for %q#D"
-msgstr "`%D' için çelişen dönüş türü belirtilmiş"
+msgstr "%qD için çelişen dönüş türü belirtilmiş"
-#: cp/search.c:1866
+#: cp/search.c:1875
#, fuzzy
msgid "looser throw specifier for %q#F"
msgstr "`%#F' için throw belirteci daha gevşek"
-#: cp/search.c:1867
+#: cp/search.c:1876
#, fuzzy
msgid " overriding %q#F"
msgstr " `%#F' deÄŸiÅŸtiriliyor"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1960
+#: cp/search.c:1969
#, fuzzy
msgid "%q#D cannot be declared"
msgstr "`%#D' bildirilemez"
-#: cp/search.c:1961
+#: cp/search.c:1970
#, fuzzy
msgid " since %q#D declared in base class"
msgstr " `%#D' taban sınıfta bildirildiğinden"
-#: cp/semantics.c:1157
+#: cp/semantics.c:1199
#, fuzzy, c-format
msgid "type of asm operand %qE could not be determined"
msgstr "asm terimi `%E'nin türü saptanamadı"
-#: cp/semantics.c:1290
+#: cp/semantics.c:1318
#, fuzzy
msgid "invalid use of member %qD in static member function"
-msgstr "statik üye işlev kapsamında üye `%D' kullanımı geçersiz "
+msgstr "statik üye işlev kapsamında üye %qD kullanımı geçersiz "
-#: cp/semantics.c:1294 cp/semantics.c:1333
+#: cp/semantics.c:1322 cp/semantics.c:1361
msgid "from this location"
msgstr "buradan"
-#: cp/semantics.c:1332
+#: cp/semantics.c:1360
#, fuzzy
msgid "object missing in reference to %qD"
-msgstr "`%D' ile iliÅŸkilendirmede nesne eksik"
+msgstr "%qD ile iliÅŸkilendirmede nesne eksik"
-#: cp/semantics.c:1811
+#: cp/semantics.c:1838
msgid "arguments to destructor are not allowed"
msgstr "yıkıcıların argümanı olmaz"
-#: cp/semantics.c:1861
+#: cp/semantics.c:1888
#, fuzzy
msgid "%<this%> is unavailable for static member functions"
msgstr "statik üye işlevlerde `this' kullanılmaz"
-#: cp/semantics.c:1867
+#: cp/semantics.c:1894
#, fuzzy
msgid "invalid use of %<this%> in non-member function"
msgstr "üye olmayan işlevde `this' kullanımı geçersiz"
-#: cp/semantics.c:1869
+#: cp/semantics.c:1896
#, fuzzy
msgid "invalid use of %<this%> at top level"
msgstr "tepe seviyede `this' kullanımı geçersiz"
-#: cp/semantics.c:1893
+#: cp/semantics.c:1920
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr "yarı-yıkıcı ismi içinde geçersiz niteleme kapsamı"
-#: cp/semantics.c:1913
+#: cp/semantics.c:1940
#, fuzzy
msgid "%qE is not of type %qT"
msgstr "`%E' `%T' türünde değil"
-#: cp/semantics.c:2007
+#: cp/semantics.c:2039
#, fuzzy
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:2051
+#: cp/semantics.c:2083
#, fuzzy
msgid "invalid use of type %qT as a default value for a template template-parameter"
msgstr "bir şablonun şablon parametresinin öntanımlı değeri olarak `%T' türünün kullanımı geçersiz"
-#: cp/semantics.c:2054
+#: cp/semantics.c:2086
#, fuzzy
msgid "invalid use of %qD as a default value for a template template-parameter"
-msgstr "bir şablonun şablon parametresinin öntanımlı değeri olarak `%D' kullanımı geçersiz"
+msgstr "bir şablonun şablon parametresinin öntanımlı değeri olarak %qD kullanımı geçersiz"
-#: cp/semantics.c:2058
+#: cp/semantics.c:2090
msgid "invalid default argument for a template template parameter"
msgstr "bir şablonun şablon parametresinin öntanımlı argümanı geçersiz"
-#: cp/semantics.c:2075
+#: cp/semantics.c:2107
#, fuzzy
msgid "definition of %q#T inside template parameter list"
msgstr "şablon parametre listesinde `%#T' tanımı"
-#: cp/semantics.c:2086
+#: cp/semantics.c:2118
#, fuzzy
msgid "invalid definition of qualified type %qT"
msgstr "nitelikli tür `%T' tanımı geçersiz"
-#: cp/semantics.c:2101
-#, fuzzy
-msgid "previous definition of %q#T"
-msgstr "`%#T' nin önceki bildirimi"
-
-#: cp/semantics.c:2277
+#: cp/semantics.c:2334
msgid "invalid base-class specification"
msgstr "ana sınıf belirtimi geçersiz"
-#: cp/semantics.c:2286
+#: cp/semantics.c:2343
#, fuzzy
msgid "base class %qT has cv qualifiers"
msgstr "taban sınıf `%T' cv niteleyiciler içeriyor"
-#: cp/semantics.c:2306
+#: cp/semantics.c:2363
#, fuzzy
msgid "incomplete type %qT used in nested name specifier"
msgstr "içi boş `%T' türü alt isim belirtecinde kullanılmış"
-#: cp/semantics.c:2309
+#: cp/semantics.c:2366
#, fuzzy
msgid "reference to %<%T::%D%> is ambiguous"
-msgstr "`%D' ile iliÅŸkilendirme belirsiz"
+msgstr "%qD ile iliÅŸkilendirme belirsiz"
-#: cp/semantics.c:2313 cp/typeck.c:1653
+#: cp/semantics.c:2370 cp/typeck.c:1621
#, fuzzy
msgid "%qD is not a member of %qT"
-msgstr "`%D' `%T' nin bir üyesi değil"
+msgstr "%qD `%T' nin bir üyesi değil"
-#: cp/semantics.c:2316
+#: cp/semantics.c:2373
#, fuzzy
msgid "%qD is not a member of %qD"
-msgstr "`%D', `%D' nin bir üyesi değil"
+msgstr "%qD, %qD nin bir üyesi değil"
-#: cp/semantics.c:2441
+#: cp/semantics.c:2502
#, fuzzy
msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
-msgstr "`%D' şablon parametresi `%T' türündeyse bütünleyen ya da sıralı türde olmadığından bir bütünleyen sabit ifadesinde kullanılmaz"
+msgstr "%qD şablon parametresi `%T' türündeyse bütünleyen ya da sıralı türde olmadığından bir bütünleyen sabit ifadesinde kullanılmaz"
-#: cp/semantics.c:2585
+#: cp/semantics.c:2656
#, fuzzy
msgid "%qD cannot appear in a constant-expression"
-msgstr "`%D' bir sabit ifadesinde bulunamaz"
+msgstr "%qD bir sabit ifadesinde bulunamaz"
-#: cp/semantics.c:2593
+#: cp/semantics.c:2664
#, fuzzy
msgid "use of namespace %qD as expression"
-msgstr "isim alanı `%D' nin ifade olarak kullanımı"
+msgstr "isim alanı %qD nin ifade olarak kullanımı"
-#: cp/semantics.c:2598
+#: cp/semantics.c:2669
#, fuzzy
msgid "use of class template %qT as expression"
msgstr "sınıf şablonu `%T' nin ifade olarak kullanımı"
#. Ambiguous reference to base members.
-#: cp/semantics.c:2604
+#: cp/semantics.c:2675
#, fuzzy
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
-msgstr "üye `%D' için istek çoklu kalıt kafesi içinde belirsiz"
+msgstr "üye %qD için istek çoklu kalıt kafesi içinde belirsiz"
-#: cp/semantics.c:2665
+#: cp/semantics.c:2748
#, c-format
msgid "use of %s from containing function"
msgstr "içeren işlevden %s kullanımı"
-#: cp/semantics.c:2668
+#: cp/semantics.c:2751
#, fuzzy
msgid " %q#D declared here"
msgstr " `%#D' burada bildirilmiÅŸ"
-#: cp/semantics.c:2719
+#: cp/semantics.c:2801
#, fuzzy, c-format
msgid "type of %qE is unknown"
msgstr "`%E' türü bilinmiyor"
-#: cp/tree.c:525
+#: cp/tree.c:539
#, fuzzy
msgid "%qV qualifiers cannot be applied to %qT"
msgstr "`%V' niteleyicisi `%T' ye uygulanamaz"
-#: cp/tree.c:1760
+#: cp/tree.c:1740
#, fuzzy, c-format
msgid "%qE attribute can only be applied to Java class definitions"
-msgstr "`%s' özniteliği sadece Java sınıf tanımlarında uygulanabilir"
+msgstr "%qs özniteliği sadece Java sınıf tanımlarında uygulanabilir"
-#: cp/tree.c:1789
+#: cp/tree.c:1769
#, fuzzy, c-format
msgid "%qE attribute can only be applied to class definitions"
-msgstr "`%s' özniteliği sadece sınıf tanımlarında uygulanabilir"
+msgstr "%qs özniteliği sadece sınıf tanımlarında uygulanabilir"
-#: cp/tree.c:1794
+#: cp/tree.c:1774
#, fuzzy, c-format
msgid "%qE 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"
+msgstr "%qs artık kullanılmıyor; g++ vtables şimdi öntanımlı olarak COM-uyumludur"
-#: cp/tree.c:1818
+#: cp/tree.c:1798
msgid "requested init_priority is not an integer constant"
msgstr "istenen init_priority bir tamsayı sabit değil"
-#: cp/tree.c:1839
+#: cp/tree.c:1819
#, fuzzy, c-format
msgid "can only use %qE 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"
+msgstr "%qs özniteliği sadece sınıf türünün nesnelerinin dosya bağlamı tanımlarında kullanılabilir"
-#: cp/tree.c:1847
+#: cp/tree.c:1827
msgid "requested init_priority is out of range"
msgstr "istenen init_priority kapsamdışı"
-#: cp/tree.c:1857
+#: cp/tree.c:1837
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:1867
+#: cp/tree.c:1847
#, fuzzy, c-format
msgid "%qE attribute is not supported on this platform"
-msgstr "bu hedefte `%s' özniteliği desteklenmiyor"
+msgstr "bu hedefte %qs özniteliği desteklenmiyor"
#: cp/typeck.c:434 cp/typeck.c:448 cp/typeck.c:541
#, fuzzy
@@ -17847,215 +17332,215 @@ msgstr "ISO C++'da işlev ve `void *' tür göstericileri arasında %s yasaktır
msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
msgstr "%s farklı üye göstericisi türleri `%T' ve `%T' arasında bir tür dönüşümünü kaldırır"
-#: cp/typeck.c:1250
+#: cp/typeck.c:1239
#, fuzzy, c-format
msgid "invalid application of %qs to a member function"
-msgstr "üye olmayan işleve `%s' uygulanması geçersiz"
+msgstr "üye olmayan işleve %qs uygulanması geçersiz"
-#: cp/typeck.c:1283
+#: cp/typeck.c:1272
#, fuzzy, c-format
msgid "invalid application of %qs to a bit-field"
-msgstr "bir bit alanına geçersiz `%s' uygulaması"
+msgstr "bir bit alanına geçersiz %qs uygulaması"
-#: cp/typeck.c:1288
+#: cp/typeck.c:1277
#, fuzzy, c-format
msgid "ISO C++ forbids applying %qs to an expression of function type"
-msgstr "ISO C++ bir işlev türü ifadesine ``%s' uygulanmasına izin vermez"
+msgstr "ISO C++ bir işlev türü ifadesine `%qs uygulanmasına izin vermez"
-#: cp/typeck.c:1325
+#: cp/typeck.c:1314
msgid "invalid use of non-static member function"
msgstr "statik olmayan üye işlev kullanımı geçersiz "
-#: cp/typeck.c:1510
+#: cp/typeck.c:1481
#, fuzzy
msgid "deprecated conversion from string constant to %qT'"
msgstr "dizge sabitten `%T' ye modası geçmiş dönüşüm"
-#: cp/typeck.c:1624 cp/typeck.c:1923
+#: cp/typeck.c:1592 cp/typeck.c:1882
#, fuzzy
msgid "request for member %qD in %qE, which is of non-class type %qT"
-msgstr "sınıf olmayan `%T' türündeki `%E'nin üyesi `%D' için istek"
+msgstr "sınıf olmayan `%T' türündeki `%E'nin üyesi %qD için istek"
-#: cp/typeck.c:1651
+#: cp/typeck.c:1619
#, fuzzy, c-format
msgid "invalid use of nonstatic data member %qE"
msgstr "geçersiz static olmayan veri üyesi `%E' kullanımı"
-#: cp/typeck.c:1703 cp/typeck.c:1731
+#: cp/typeck.c:1671 cp/typeck.c:1699
#, fuzzy
msgid "invalid access to non-static data member %qD of NULL object"
-msgstr "NULL nesnenin static olmayan `%D' veri üyesine erişimi geçersiz"
+msgstr "NULL nesnenin static olmayan %qD veri üyesine erişimi geçersiz"
-#: cp/typeck.c:1706 cp/typeck.c:1733
+#: cp/typeck.c:1674 cp/typeck.c:1701
#, fuzzy
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr "(belki `offsetof' makrosu yanlış kullanıldı)"
-#: cp/typeck.c:1844
+#: cp/typeck.c:1812
#, fuzzy
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr "yetkin tür `%T', yıkıcı ismi `~%T' ile eşleşmiyor"
-#: cp/typeck.c:1850
+#: cp/typeck.c:1818
#, fuzzy
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr "iptal edilen tür `%T' iken yıkıcı `%T' ile ilişkili"
-#: cp/typeck.c:1969
+#: cp/typeck.c:1928
#, fuzzy
msgid "%<%D::%D%> is not a member of %qT"
msgstr "`%D::%D', `%T' nin bir üyesi değil"
-#: cp/typeck.c:1980
+#: cp/typeck.c:1939
#, fuzzy
msgid "%qT is not a base of %qT"
msgstr "`%T' `%T' tabanında değil"
-#: cp/typeck.c:1999
+#: cp/typeck.c:1958
#, fuzzy
msgid "%qD has no member named %qE"
msgstr "%D' `%E' isimli üyeye sahip değil"
-#: cp/typeck.c:2014
+#: cp/typeck.c:1973
#, fuzzy
msgid "%qD is not a member template function"
-msgstr "`%D' bir üye şablon işlevi değil"
+msgstr "%qD 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:2121
+#: cp/typeck.c:2080
#, fuzzy
msgid "%qT is not a pointer-to-object type"
msgstr "`%T' bir nesne gösterici türü değil"
-#: cp/typeck.c:2146
+#: cp/typeck.c:2105
#, fuzzy, c-format
msgid "invalid use of %qs on pointer to member"
-msgstr "üye göstericisinde `%s' kullanımı geçersiz"
+msgstr "üye göstericisinde %qs kullanımı geçersiz"
-#: cp/typeck.c:2152
+#: cp/typeck.c:2111
msgid "invalid type argument"
msgstr "tür argümanı geçersiz"
-#: cp/typeck.c:2175
+#: cp/typeck.c:2134
msgid "subscript missing in array reference"
msgstr "dizi baÅŸvurusunda altindis yok"
-#: cp/typeck.c:2257
+#: cp/typeck.c:2216
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ sol yan olmayan dizi indislemesine izin vermez"
-#: cp/typeck.c:2268
+#: cp/typeck.c:2227
#, fuzzy
msgid "subscripting array declared %<register%>"
msgstr "`register' olarak bildirilmiÅŸ dizi indislemesi"
-#: cp/typeck.c:2351
+#: cp/typeck.c:2310
#, fuzzy, c-format
msgid "object missing in use of %qE"
msgstr "`%E' kullanımı içinde nesne eksik"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2411
#, fuzzy
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:2477
+#: cp/typeck.c:2436
#, fuzzy
msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
msgstr "`%E (...)' içindeki üye göstericili işlev çağrısında .* ya da ->* kullanılmalı"
-#: cp/typeck.c:2491
+#: cp/typeck.c:2450
#, fuzzy, c-format
msgid "%qE cannot be used as a function"
msgstr "`%E' bir işlev olarak kullanılamaz"
-#: cp/typeck.c:2570
+#: cp/typeck.c:2529
#, fuzzy
msgid "too many arguments to %s %q+#D"
msgstr "%s `%+#D' için argümanlar çok fazla"
-#: cp/typeck.c:2572 cp/typeck.c:2678
+#: cp/typeck.c:2531 cp/typeck.c:2634
msgid "at this point in file"
msgstr "dosyanın burasında"
-#: cp/typeck.c:2575
+#: cp/typeck.c:2534
msgid "too many arguments to function"
msgstr "işlev için çok fazla argüman belirtildi"
-#: cp/typeck.c:2609
+#: cp/typeck.c:2568
#, fuzzy
msgid "parameter %P of %qD has incomplete type %qT"
msgstr "`%P' parametresi '%D' içinde tamamlanmamış `%T' türünde"
-#: cp/typeck.c:2612
+#: cp/typeck.c:2571
#, fuzzy
msgid "parameter %P has incomplete type %qT"
msgstr "parametre %P tamamlanmamış `%T' türünde"
-#: cp/typeck.c:2676
+#: cp/typeck.c:2632
#, fuzzy
msgid "too few arguments to %s %q+#D"
msgstr "%s `%+#D' için argümanlar çok az"
-#: cp/typeck.c:2681
+#: cp/typeck.c:2637
msgid "too few arguments to function"
msgstr "işlev için çok az argüman belirtildi"
-#: cp/typeck.c:2828 cp/typeck.c:2838
+#: cp/typeck.c:2784 cp/typeck.c:2794
#, fuzzy
msgid "assuming cast to type %qT from overloaded function"
msgstr "aşırı yüklü işlevden `%T' ye tür dönüşümü yapıldığı varsayılıyor"
-#: cp/typeck.c:2899
+#: cp/typeck.c:2855
#, fuzzy
msgid "division by zero in %<%E / 0%>"
msgstr "`%E / 0' da sıfırla bölme"
-#: cp/typeck.c:2901
+#: cp/typeck.c:2857
#, fuzzy
msgid "division by zero in %<%E / 0.%>"
msgstr "`%E / 0.' da sıfırla bölme"
-#: cp/typeck.c:2935
+#: cp/typeck.c:2891
#, fuzzy
msgid "division by zero in %<%E %% 0%>"
msgstr "`%E %% 0' da sıfırla bölme"
-#: cp/typeck.c:2937
+#: cp/typeck.c:2893
#, fuzzy
msgid "division by zero in %<%E %% 0.%>"
msgstr "`%E %% 0.' da sıfırla bölme"
-#: cp/typeck.c:3017
+#: cp/typeck.c:2973
#, c-format
msgid "%s rotate count is negative"
msgstr "%s döngü sayısı negatif"
-#: cp/typeck.c:3020
+#: cp/typeck.c:2976
#, c-format
msgid "%s rotate count >= width of type"
msgstr "%s döngü sayısı >= tür genişliği"
-#: cp/typeck.c:3054 cp/typeck.c:3059 cp/typeck.c:3155 cp/typeck.c:3160
+#: cp/typeck.c:3010 cp/typeck.c:3015 cp/typeck.c:3111 cp/typeck.c:3116
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ da gösterici ile tamsayı arasında karşılaştırmaya izin verilmez"
-#: cp/typeck.c:3174
+#: cp/typeck.c:3130
msgid "unordered comparison on non-floating point argument"
msgstr "gerçel sayı olmayan argümanlar arasında düzenlenmemiş karşılaştırma"
-#: cp/typeck.c:3196
+#: cp/typeck.c:3152
#, fuzzy
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr "iki terimli `%O' için `%T' ve `%T' türünde geçersiz terimler"
-#: cp/typeck.c:3360
+#: cp/typeck.c:3316
#, fuzzy
msgid "comparison between types %q#T and %q#T"
msgstr "`%#T' ile `%#T' türleri arasında karşılaştırma"
-#: cp/typeck.c:3396
+#: cp/typeck.c:3352
msgid "comparison between signed and unsigned integer expressions"
msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
@@ -18063,150 +17548,150 @@ msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
#. 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:3475
+#: cp/typeck.c:3431
msgid "NULL used in arithmetic"
msgstr "aritmetik içinde NULL kullanımı"
-#: cp/typeck.c:3533
+#: cp/typeck.c:3489
#, fuzzy
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr "ISO C++ bir çıkartma işlemi içinde `void *' türde gösterici kullanımına izin vermez"
-#: cp/typeck.c:3535
+#: cp/typeck.c:3491
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "ISO C++ bir çıkartma işlemi içindeki bir işlev göstericisi kullanımına izin vermez"
-#: cp/typeck.c:3537
+#: cp/typeck.c:3493
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "ISO C++ bir çıkartma işlemi içinde bir yöntem göstericisi kullanımına izin vermez"
-#: cp/typeck.c:3549
+#: cp/typeck.c:3505
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "gösterici aritmetiğinde tamamlanmamış türe gösterici kullanımı geçersiz"
-#: cp/typeck.c:3625
+#: cp/typeck.c:3581
#, fuzzy, c-format
msgid "invalid use of %qE 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:3632
+#: cp/typeck.c:3588
#, fuzzy, c-format
msgid "parenthesis around %qE 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:3655
+#: cp/typeck.c:3611
msgid "taking address of temporary"
msgstr "geçicinin adresi alınıyor"
-#: cp/typeck.c:3890
+#: cp/typeck.c:3846
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ bir enum'um %s-lenmesine izin vermez"
-#: cp/typeck.c:3901
+#: cp/typeck.c:3857
#, fuzzy
msgid "cannot %s a pointer to incomplete type %qT"
msgstr "içi boş `%T' türüne bir gösterici %s yapılamaz"
-#: cp/typeck.c:3907
+#: cp/typeck.c:3863
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type %qT"
msgstr "ISO C++ da bir `%T' türünde göstericiye %s için izin verilmez"
-#: cp/typeck.c:3932
+#: cp/typeck.c:3888
msgid "cast to non-reference type used as lvalue"
msgstr "sol yan olarak kullanılmış referans olmayan türe dönüşüm"
-#: cp/typeck.c:3967
+#: cp/typeck.c:3923
#, fuzzy
msgid "invalid use of %<--%> on bool variable %qD"
-msgstr "bool değişken `%D' üstünde `--' kullanımı geçersiz"
+msgstr "bool değişken %qD üstünde `--' kullanımı geçersiz"
#. ARM $3.4
-#: cp/typeck.c:3996
+#: cp/typeck.c:3952
#, fuzzy
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:4050
+#: cp/typeck.c:4006
#, fuzzy
msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir niteliksiz ya da parantezli statik olmayan üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir."
-#: cp/typeck.c:4055
+#: cp/typeck.c:4011
#, 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++ ü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:4083
+#: cp/typeck.c:4039
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr "ISO C++ bir sol yan olmayan ifadeye dönüşüm adresi alınmasına izin vermez"
-#: cp/typeck.c:4135
+#: cp/typeck.c:4091
#, fuzzy
msgid "attempt to take address of bit-field structure member %qD"
-msgstr "bit-alanı yapının `%D' üyesinin adresi alınmaya çalışılıyor"
+msgstr "bit-alanı yapının %qD üyesinin adresi alınmaya çalışılıyor"
-#: cp/typeck.c:4248
+#: cp/typeck.c:4211
msgid "taking address of destructor"
msgstr "yıkıcı adresinin alınması"
-#: cp/typeck.c:4261
+#: cp/typeck.c:4224
msgid "taking address of bound pointer-to-member expression"
msgstr "üyeye göstericili ifadenin sınır adresi alınıyor"
-#: cp/typeck.c:4269
+#: cp/typeck.c:4232
#, fuzzy
msgid "cannot create pointer to reference member %qD"
-msgstr "referans üyesi `%D' için gösterici oluşturulamaz"
+msgstr "referans üyesi %qD için gösterici oluşturulamaz"
-#: cp/typeck.c:4332
+#: cp/typeck.c:4295
#, fuzzy
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:4355
+#: cp/typeck.c:4318
#, fuzzy
msgid "address of explicit register variable %qD requested"
-msgstr "`%s' yazmaç değişkeninin adresi istendi"
+msgstr "%qs yazmaç değişkeninin adresi istendi"
-#: cp/typeck.c:4360
+#: cp/typeck.c:4323
#, fuzzy
msgid "address requested for %qD, which is declared %<register%>"
-msgstr "`register' olarak bildirilmiş `%D' için adres isteği"
+msgstr "`register' olarak bildirilmiş %qD için adres isteği"
-#: cp/typeck.c:4426
+#: cp/typeck.c:4389
#, c-format
msgid "%s expression list treated as compound expression"
msgstr "%s ifade listesi bileşik ifade olarak ele alınıyor"
-#: cp/typeck.c:4502
+#: cp/typeck.c:4464
#, fuzzy
msgid "%s from type %qT to type %qT casts away constness"
msgstr "`%T' türünden `%T' türüne %s const'suz dışı dönüşüme sebep oluyor"
-#: cp/typeck.c:4800
+#: cp/typeck.c:4761
#, fuzzy
msgid "invalid static_cast from type %qT to type %qT"
msgstr "`%T' türünden `%T' türüne durağan tür dönüşümü geçersiz"
-#: cp/typeck.c:4822
+#: cp/typeck.c:4783
#, fuzzy
msgid "converting from %qT to %qT"
msgstr "`%T' den`%T' ye dönüşüm"
-#: cp/typeck.c:4867
+#: cp/typeck.c:4828
#, fuzzy
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr "`%T' türündeki bir sağ taraf değerinin `%T' türüne yeniden yorumlamalı dönüşümü geçersiz"
-#: cp/typeck.c:4926
+#: cp/typeck.c:4887
#, fuzzy
msgid "cast from %qT to %qT loses precision"
msgstr "`%T' den `%T' ye yeniden yorumlamalı tür dönüşümü hassasiyet kaybı oluşturuyor"
-#: cp/typeck.c:4954
+#: cp/typeck.c:4912
#, fuzzy
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr "`%T' türünden `%T' türüne dönüşüm hedef türün hizalama gereksinimini arttırıyor"
@@ -18215,171 +17700,141 @@ msgstr "`%T' türünden `%T' türüne dönüşüm hedef türün hizalama gereksi
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:4968
+#: cp/typeck.c:4926
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ISO C++ işlev ve nesne göstericileri arasında dönüşüme izin vermez"
-#: cp/typeck.c:4979
+#: cp/typeck.c:4937
#, fuzzy
msgid "invalid cast from type %qT to type %qT"
msgstr "`%T' türünden `%T' türüne const_cast geçersiz"
-#: cp/typeck.c:5035
+#: cp/typeck.c:4993
#, fuzzy
msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
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:5044
+#: cp/typeck.c:5002
#, fuzzy
msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
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:5066
+#: cp/typeck.c:5024
#, fuzzy
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr "`%T' türündeki bir sağ taraf değerinden `%T' türüne const_cast geçersiz"
-#: cp/typeck.c:5109
+#: cp/typeck.c:5067
#, fuzzy
msgid "invalid const_cast from type %qT to type %qT"
msgstr "`%T' türünden `%T' türüne const_cast geçersiz"
-#: cp/typeck.c:5177 cp/typeck.c:5182
+#: cp/typeck.c:5135 cp/typeck.c:5140
#, fuzzy
msgid "ISO C++ forbids casting to an array type %qT"
msgstr "ISO C++ da `%T' dizi türüne dönüşüme izin verilmez"
-#: cp/typeck.c:5190
+#: cp/typeck.c:5148
#, fuzzy
msgid "invalid cast to function type %qT"
msgstr "`%T' işlev türüne dönüşüm geçersiz"
-#: cp/typeck.c:5411
+#: cp/typeck.c:5364
#, fuzzy
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr " `%Q(%#T, %#T)' nin geliÅŸiminde"
-#: cp/typeck.c:5480
+#: cp/typeck.c:5433
#, fuzzy
msgid "incompatible types in assignment of %qT to %qT"
msgstr "`%T' den `%T' ye değer atamada uyumsuz türler"
-#: cp/typeck.c:5487
+#: cp/typeck.c:5440
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ dizilerin deÄŸer atanarak bildirimine izin vermez"
-#: cp/typeck.c:5598
+#: cp/typeck.c:5551
msgid " in pointer to member function conversion"
msgstr " üye işleve gösterici dönüşümünde"
-#: cp/typeck.c:5604
+#: cp/typeck.c:5557
msgid " in pointer to member conversion"
msgstr " üyeye gösterici dönüşümünde"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5615 cp/typeck.c:5631
+#: cp/typeck.c:5568 cp/typeck.c:5584
#, fuzzy
msgid "pointer to member cast via virtual base %qT"
msgstr "sanal taban `%T' üzerinden üye göstericisine dönüşüm"
-#: cp/typeck.c:5634
+#: cp/typeck.c:5587
#, fuzzy
msgid "pointer to member conversion via virtual base %qT"
msgstr "sanal taban `%T' üzerinden üye göstericisine dönüşüm"
-#: cp/typeck.c:5707
+#: cp/typeck.c:5660
#, fuzzy
msgid "invalid conversion to type %qT from type %qT"
msgstr "tür `%T' nin `%T' den dönüşümü geçersiz"
-#: cp/typeck.c:5871
-#, fuzzy
-msgid "passing NULL used for non-pointer %s %P of %qD"
-msgstr "`%D' işlevinin %P. argümanında göstericisiz %s için kullanılan NULL'un aktarılmasında"
-
-#: cp/typeck.c:5874
-#, fuzzy
-msgid "%s to non-pointer type %qT from NULL"
-msgstr "NULL'dan gösterici olmayan `%T' türüne %s"
-
-#: cp/typeck.c:5882
-#, fuzzy
-msgid "passing %qT for %s %P of %qD"
-msgstr "`%D' işlevinin %P. argümanında %s için `%T'nin aktarılmasında"
-
-#: cp/typeck.c:5885
-#, fuzzy
-msgid "%s to %qT from %qT"
-msgstr "`%T' nin `%T' den %s"
-
-#: cp/typeck.c:5894
-#, fuzzy
-msgid "passing negative value %qE for %s %P of %qD"
-msgstr "`%D' işlevinin %P. argümanında %s için `%T' negatif değerinin aktarılmasında"
-
-#: cp/typeck.c:5897
-#, fuzzy
-msgid "%s of negative value %qE to %qT"
-msgstr "%s `%E' nin `%T' için negatif değeridir"
-
-#: cp/typeck.c:5983
+#: cp/typeck.c:5875
#, fuzzy
msgid "cannot convert %qT to %qT for argument %qP to %qD"
-msgstr "`%T' `%T' ye argüman `%P' den `%D' ye için dönüştürülemez"
+msgstr "`%T' `%T' ye argüman `%P' den %qD ye için dönüştürülemez"
-#: cp/typeck.c:5986
+#: cp/typeck.c:5878
#, fuzzy
msgid "cannot convert %qT to %qT in %s"
msgstr " `%T' `%T' ye %s içinde dönüştürülemez"
-#: cp/typeck.c:6062 cp/typeck.c:6064
+#: cp/typeck.c:5951 cp/typeck.c:5953
#, fuzzy
msgid "in passing argument %P of %q+D"
msgstr "`%+D' nin %P. argümanının aktarılmasında"
-#: cp/typeck.c:6114
+#: cp/typeck.c:6003
msgid "returning reference to temporary"
msgstr "geçiciye referans dönüyor"
-#: cp/typeck.c:6121
+#: cp/typeck.c:6010
msgid "reference to non-lvalue returned"
msgstr "sağ yansız dönüşlüye referans"
-#: cp/typeck.c:6133
+#: cp/typeck.c:6022
#, fuzzy
msgid "reference to local variable %qD returned"
-msgstr "yerel değişken `%D' ye referansa döndürüldü"
+msgstr "yerel değişken %qD ye referansa döndürüldü"
-#: cp/typeck.c:6136
+#: cp/typeck.c:6025
#, fuzzy
msgid "address of local variable %qD returned"
-msgstr "yerel değişken `%D' adresi döndürüldü"
+msgstr "yerel değişken %qD adresi döndürüldü"
-#: cp/typeck.c:6166
+#: cp/typeck.c:6055
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:6174
+#: cp/typeck.c:6063
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:6177
+#: cp/typeck.c:6066
msgid "returning a value from a constructor"
msgstr "kurucudan bir değer döndürülemez"
-#: cp/typeck.c:6200
+#: cp/typeck.c:6089
#, fuzzy
msgid "return-statement with no value, in function returning %qT"
msgstr "'%T' döndüren işlevde değer içermeyen `return' deyimi"
-#: cp/typeck.c:6217
+#: cp/typeck.c:6106
msgid "return-statement with a value, in function returning 'void'"
msgstr "'void' dönüşlü işlevde değer içeren `return' deyimi"
-#: cp/typeck.c:6248
+#: cp/typeck.c:6137
#, fuzzy
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)"
@@ -18392,17 +17847,17 @@ msgstr "tür `%T' tür `%T' için taban tür değil"
#: cp/typeck2.c:292
#, fuzzy
msgid "cannot declare variable %q+D to be of abstract type %qT"
-msgstr "değişken `%D' `%T' türünde bildirilemez"
+msgstr "değişken %qD `%T' türünde bildirilemez"
#: cp/typeck2.c:295
#, fuzzy
msgid "cannot declare parameter %q+D to be of abstract type %qT"
-msgstr "parametre `%D' `%T' türünde bildirilemez"
+msgstr "parametre %qD `%T' türünde bildirilemez"
#: cp/typeck2.c:298
#, fuzzy
msgid "cannot declare field %q+D to be of abstract type %qT"
-msgstr "alan `%D' `%T' türünde bildirilemez"
+msgstr "alan %qD `%T' türünde bildirilemez"
#: cp/typeck2.c:302
#, fuzzy
@@ -18446,175 +17901,175 @@ msgstr "\t%#D"
msgid "%J since type %qT has pure virtual functions"
msgstr " tür `%T' mutlak sanal işlevlere sahip olduğundan"
-#: cp/typeck2.c:581
+#: cp/typeck2.c:582
#, fuzzy
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr "kurucu sözdizimi kullanılmış ama `%T' türü için kurucu bildirilmemiş"
-#: cp/typeck2.c:595
+#: cp/typeck2.c:596
msgid "cannot initialize arrays using this syntax"
msgstr "bu sözdizimi kullanılarak diziler ilklendirilemez"
-#: cp/typeck2.c:687
+#: cp/typeck2.c:688
msgid "initializing array with parameter list"
msgstr "dizi parametre listesi ile ilklendiriliyor"
-#: cp/typeck2.c:709
+#: cp/typeck2.c:710
msgid "int-array initialized from non-wide string"
msgstr "tamsayı dizisinin ilklendiricisi olarak geniş-olmayan dizge kullanılmış"
-#: cp/typeck2.c:742
+#: cp/typeck2.c:743
msgid "initializer for scalar variable requires one element"
msgstr "skalar değişken ilklendiricisi bir öğe gerektirir"
-#: cp/typeck2.c:749
+#: cp/typeck2.c:750
#, fuzzy
msgid "braces around scalar initializer for %qT"
msgstr "`%T' için skalar ilklendiriciyi kuşatan parantezler"
-#: cp/typeck2.c:752
+#: cp/typeck2.c:753
#, fuzzy
msgid "ignoring extra initializers for %qT"
msgstr "`%T' için fazladan ilklendiricilerin yoksayılması"
-#: cp/typeck2.c:764
+#: cp/typeck2.c:765
#, fuzzy
msgid "variable-sized object of type %qT may not be initialized"
msgstr "`%T' türünden değişken-uzunluklu nesne ilklendirilmiş olmayabilir"
-#: cp/typeck2.c:775
+#: cp/typeck2.c:776
#, fuzzy
msgid "subobject of type %qT must be initialized by constructor, not by %qE"
msgstr "`%T' türündeki alt nesne kurucu tarafından ilklendirilmiş olmalı, `%E' tarafından değil"
-#: cp/typeck2.c:841
+#: cp/typeck2.c:842
msgid "aggregate has a partly bracketed initializer"
msgstr "küme kısmen köşeli parantezli ilklendirici içeriyor"
-#: cp/typeck2.c:879 cp/typeck2.c:968
+#: cp/typeck2.c:880 cp/typeck2.c:969
msgid "non-trivial labeled initializers"
msgstr "anlamsız olmayan etiketli ilklendiriciler"
-#: cp/typeck2.c:893
+#: cp/typeck2.c:894
msgid "non-empty initializer for array of empty elements"
msgstr "boş öğeler dizisi için boş olmayan ilklendirici"
-#: cp/typeck2.c:1007 cp/typeck2.c:1022
+#: cp/typeck2.c:1008 cp/typeck2.c:1023
#, fuzzy
msgid "missing initializer for member %qD"
-msgstr "üye `%D' için ilklendirici eksik"
+msgstr "üye %qD için ilklendirici eksik"
-#: cp/typeck2.c:1012
+#: cp/typeck2.c:1013
#, fuzzy
msgid "uninitialized const member %qD"
-msgstr "ilklendirilmemiş sabit üyesi `%D'"
+msgstr "ilklendirilmemiş sabit üyesi %qD"
-#: cp/typeck2.c:1014
+#: cp/typeck2.c:1015
#, fuzzy
msgid "member %qD with uninitialized const fields"
-msgstr "üye `%D' ilklendirilmemiş sabit alanlı"
+msgstr "üye %qD ilklendirilmemiş sabit alanlı"
-#: cp/typeck2.c:1016
+#: cp/typeck2.c:1017
#, fuzzy
msgid "member %qD is uninitialized reference"
-msgstr "üye `%D' ilklendirilmemiş referanstır"
+msgstr "üye %qD ilklendirilmemiş referanstır"
-#: cp/typeck2.c:1063
+#: cp/typeck2.c:1064
msgid "index value instead of field name in union initializer"
msgstr "birleşik yapı ilklendiricideki alan isminin yerine index değeri"
-#: cp/typeck2.c:1075
+#: cp/typeck2.c:1076
#, fuzzy
msgid "no field %qD in union being initialized"
-msgstr "birleşik yapı ilklendirmesinde `%D' diye bir alan yok"
+msgstr "birleşik yapı ilklendirmesinde %qD diye bir alan yok"
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1084
#, fuzzy
msgid "union %qT with no named members cannot be initialized"
msgstr "union `%T' isimli üyeler yokken ilklendirilemez"
-#: cp/typeck2.c:1118
+#: cp/typeck2.c:1119
msgid "excess elements in aggregate initializer"
msgstr "küme ilklendiricide gereğinden fazla öğe"
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1227
msgid "circular pointer delegation detected"
msgstr "döngüsel gösterici görevlendirmesi saptandı"
-#: cp/typeck2.c:1245
+#: cp/typeck2.c:1240
#, fuzzy
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr "`->' için taban terim bir gösterici olmayan `%T' türünde"
-#: cp/typeck2.c:1269
+#: cp/typeck2.c:1264
#, fuzzy
msgid "result of %<operator->()%> yields non-pointer result"
msgstr "`operator->()' gösterici olmayan sonuç veriyor"
-#: cp/typeck2.c:1271
+#: cp/typeck2.c:1266
#, fuzzy
msgid "base operand of %<->%> is not a pointer"
msgstr "`->' için taban terim bir gösterici değil"
-#: cp/typeck2.c:1295
+#: cp/typeck2.c:1290
#, fuzzy
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr "`%E', `%T' türünde olduğundan bir üye göstericisi olarak kullanılamaz"
-#: cp/typeck2.c:1304
+#: cp/typeck2.c:1299
#, fuzzy
msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
msgstr "üye göstericisi `%E' kümeleme türü olmayan `%T' türündeki `%E' ye uygulanamaz"
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1321
#, fuzzy
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr "üye türü `%T::' nesne türü `%T' ile uyumsuz"
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1544
#, fuzzy
msgid "call to function %qD which throws incomplete type %q#T"
-msgstr "içi boş tür `%#T' yakalanırken `%D' işlevine çağrı"
+msgstr "içi boş tür `%#T' yakalanırken %qD işlevine çağrı"
-#: cp/typeck2.c:1552
+#: cp/typeck2.c:1547
#, fuzzy
msgid "call to function which throws incomplete type %q#T"
msgstr "içi boş tür `%#T' yakalanırken işleve çağrı"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3843
+#: cp/cp-tree.h:3884
#, 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"
-#: fortran/f95-lang.c:243
+#: fortran/f95-lang.c:242
msgid "Unexpected type in truthvalue_conversion"
msgstr ""
-#: fortran/f95-lang.c:296
+#: fortran/f95-lang.c:295
#, fuzzy, c-format
msgid "can't open input file: %s"
-msgstr "çıktı dosyası `%s' açılamıyor"
+msgstr "çıktı dosyası %qs açılamıyor"
-#: fortran/f95-lang.c:623
+#: fortran/f95-lang.c:622
#, fuzzy, c-format
msgid "global register variable %qs used in nested function"
-msgstr "genel yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
+msgstr "genel yazmaç değişkeni %qs yuvalanmış işlevde kullanılmış"
-#: fortran/f95-lang.c:627
+#: fortran/f95-lang.c:626
#, fuzzy, c-format
msgid "register variable %qs used in nested function"
-msgstr "yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
+msgstr "yazmaç değişkeni %qs yuvalanmış işlevde kullanılmış"
-#: fortran/f95-lang.c:634
+#: fortran/f95-lang.c:633
#, fuzzy, c-format
msgid "address of global register variable %qs requested"
-msgstr "`%s' genel yazmaç değişkeninin adresi istenmiş"
+msgstr "%qs genel yazmaç değişkeninin adresi istenmiş"
-#: fortran/f95-lang.c:652
+#: fortran/f95-lang.c:651
#, fuzzy, c-format
msgid "address of register variable %qs requested"
-msgstr "`%s' yazmaç değişkeninin adresi istendi"
+msgstr "%qs yazmaç değişkeninin adresi istendi"
#: fortran/gfortranspec.c:231
#, fuzzy, c-format
@@ -18630,83 +18085,83 @@ msgstr "`%s' için argüman eksik"
msgid "no input files; unwilling to write output files"
msgstr "girdi dosyası yok; çıktı dosyaları istemeyerek yazılıyor"
-#: fortran/trans-array.c:2888
+#: fortran/trans-array.c:2886
msgid "Possible frontend bug: array constructor not expanded"
msgstr ""
-#: fortran/trans-array.c:3991
+#: fortran/trans-array.c:3989
msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
msgstr ""
-#: fortran/trans-array.c:4151
+#: fortran/trans-array.c:4149
msgid "scalar vector subscript???"
msgstr ""
-#: fortran/trans-array.c:4425
+#: fortran/trans-array.c:4423
#, c-format
msgid "bad expression type during walk (%d)"
msgstr ""
-#: fortran/trans-const.c:329
+#: fortran/trans-const.c:327
#, c-format
msgid "gfc_conv_constant_to_tree(): invalid type: %s"
msgstr ""
-#: fortran/trans-decl.c:760
+#: fortran/trans-decl.c:754
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:1899
+#: fortran/trans-decl.c:1893
#, fuzzy
msgid "Function does not return a value"
msgstr "işlev dizge veri türü ile dönmüyor"
#. I don't think this should ever happen.
-#: fortran/trans-decl.c:1998
+#: fortran/trans-decl.c:1992
#, c-format
msgid "module symbol %s in wrong namespace"
msgstr ""
-#: fortran/trans-decl.c:2012
+#: fortran/trans-decl.c:2006
#, c-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:2094
+#: fortran/trans-decl.c:2088
#, fuzzy, c-format
msgid "unused parameter %qs"
-msgstr "%J parametre `%D' kullanılmamış"
+msgstr "%J parametre %qD kullanılmamış"
-#: fortran/trans-decl.c:2099
+#: fortran/trans-decl.c:2093
#, fuzzy, c-format
msgid "unused variable %qs"
msgstr "%J '%D' değişkeni kullanılmadı"
-#: fortran/trans-decl.c:2243
+#: fortran/trans-decl.c:2234
#, fuzzy
msgid "Function return value not set"
msgstr "işlev bir küme ile dönüyor"
-#: fortran/trans-expr.c:950
+#: fortran/trans-expr.c:949
#, fuzzy
msgid "Unknown intrinsic op"
msgstr "bilinmeyen komut kipi"
-#: fortran/trans-intrinsic.c:585
+#: fortran/trans-intrinsic.c:583
#, fuzzy, c-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr "dil %s tanınmıyor"
-#: fortran/trans-io.c:934
+#: fortran/trans-io.c:936
#, c-format
msgid "Bad namelist IO basetype (%d)"
msgstr ""
-#: fortran/trans-io.c:1011
+#: fortran/trans-io.c:1013
msgid "A format cannot be specified with a namelist"
msgstr ""
-#: fortran/trans-io.c:1309
+#: fortran/trans-io.c:1311
#, c-format
msgid "Bad IO basetype (%d)"
msgstr ""
@@ -18724,7 +18179,7 @@ msgstr ""
msgid "Array element size too big"
msgstr "%0 da dizi elemanı tanımlı aralığının dışında"
-#: fortran/trans.c:623
+#: fortran/trans.c:621
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
@@ -18734,27 +18189,27 @@ msgstr ""
msgid "gfc_todo: Not Implemented: "
msgstr ""
-#: java/check-init.c:245
+#: java/check-init.c:251
#, c-format
msgid "Can't reassign a value to the final variable %qs"
msgstr ""
-#: java/check-init.c:513 java/parse.h:377
+#: java/check-init.c:519 java/parse.h:377
#, fuzzy, c-format
msgid "Variable %qs may not have been initialized"
msgstr "%J son alan '%D' ilklendirilmiÅŸ olmayabilir"
-#: java/check-init.c:529
+#: java/check-init.c:535
#, fuzzy, c-format
msgid "variable %qs may not have been initialized"
msgstr "%J son alan '%D' ilklendirilmiÅŸ olmayabilir"
-#: java/check-init.c:941
+#: java/check-init.c:954
#, 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:1013
+#: java/check-init.c:1026
#, fuzzy
msgid "%Jfinal field %qD may not have been initialized"
msgstr "%J son alan '%D' ilklendirilmiÅŸ olmayabilir"
@@ -18790,194 +18245,194 @@ msgstr "%J kuramsal olmayan sınıfta kuramsal yöntem"
msgid "%Jnon-static method '%D' overrides static method"
msgstr "%J statik olmayan yöntem '%D' statik yönteme zorlanıyor"
-#: java/decl.c:1203
+#: java/decl.c:1260
msgid "%J'%D' used prior to declaration"
msgstr "%J `%D' bildirim öncesi kullanılmış"
-#: java/decl.c:1244
+#: java/decl.c:1301
#, fuzzy, c-format
msgid "declaration of %qs shadows a parameter"
-msgstr "`%s' bildirimi bir parametreyi gölgeliyor"
+msgstr "%qs bildirimi bir parametreyi gölgeliyor"
-#: java/decl.c:1247
+#: java/decl.c:1304
#, fuzzy, c-format
msgid "declaration of %qs shadows a symbol from the parameter list"
-msgstr "`%s' bildirimi parametre listesinden bir sembolü gölgeliyor"
+msgstr "%qs bildirimi parametre listesinden bir sembolü gölgeliyor"
-#: java/decl.c:1575
+#: java/decl.c:1632
msgid "%Jlabel '%D' used but not defined"
msgstr "%J etiket `%D' tanımlanmadan kullanılmış"
-#: java/decl.c:1580
+#: java/decl.c:1637
msgid "%Jlabel '%D' defined but not used"
msgstr "%J etiket `%D' tanımlanmış ama kullanılmamış"
-#: java/decl.c:1702
+#: java/decl.c:1759
msgid "%JIn %D: overlapped variable and exception ranges at %d"
msgstr "%J %D içinde: %d de birbiri içine geçmiş değişken ve olağandışılık aralıkları"
-#: java/decl.c:1766
+#: java/decl.c:1823
msgid "bad type in parameter debug info"
msgstr "parametre hata ayıklama bilgisindeki tür hatalı"
-#: java/decl.c:1775
+#: java/decl.c:1832
msgid "%Jbad PC range for debug info for local '%D'"
msgstr "%J yerel `%D' için hata ayıklama bilgisinin program sayacı (PC) kapsamı hatalı"
-#: java/expr.c:375
+#: java/expr.c:376
#, c-format
msgid "need to insert runtime check for %s"
msgstr ""
-#: java/expr.c:500 java/expr.c:547
+#: java/expr.c:501 java/expr.c:548
#, fuzzy, c-format
msgid "assert: %s is assign compatible with %s"
msgstr "-march=%s seçilen ABI ile uyumsuz"
-#: java/expr.c:667
+#: java/expr.c:668
msgid "stack underflow - dup* operation"
msgstr "yığın alttan taşması - dup* işlemi"
-#: java/expr.c:1699
+#: java/expr.c:1703
#, fuzzy, c-format
msgid "reference %qs is ambiguous: appears in interface %qs and interface %qs"
-msgstr "referans `%s' belirsiz; `%s' ve `%s' arayüzlerinde görünüyor"
+msgstr "referans %qs belirsiz; %qs ve %qs arayüzlerinde görünüyor"
-#: java/expr.c:1727
+#: java/expr.c:1731
#, fuzzy, c-format
msgid "field %qs not found"
-msgstr "alan `%s' yok"
+msgstr "alan %qs yok"
-#: java/expr.c:2112
+#: java/expr.c:2116
#, c-format
msgid "method '%s' not found in class"
msgstr "sınıf içinde yöntem '%s' yok"
-#: java/expr.c:2317
+#: java/expr.c:2321
#, c-format
msgid "failed to find class '%s'"
msgstr "sınıf '%s' bulunamadı"
-#: java/expr.c:2346
+#: java/expr.c:2350
#, 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:2377
+#: java/expr.c:2381
msgid "invokestatic on non static method"
msgstr "stattik olmayan yöntemde invokestatic"
-#: java/expr.c:2382
+#: java/expr.c:2386
msgid "invokestatic on abstract method"
msgstr "kuramsal yöntemde invokestatic"
-#: java/expr.c:2390
+#: java/expr.c:2394
msgid "invoke[non-static] on static method"
msgstr "statik yöntemde invoke[non-static]"
-#: java/expr.c:2708
+#: java/expr.c:2712
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "'%2$s' içinde alan '%1$s' eksik"
-#: java/expr.c:2715
+#: java/expr.c:2719
#, 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:2737
+#: java/expr.c:2741
msgid "%Jassignment to final field '%D' not in field's class"
msgstr "%J bitiş alanı `%D' ataması alan sınıfı içinde değil"
-#: java/expr.c:2742
+#: java/expr.c:2746
#, fuzzy
msgid "%Jassignment to final static field %qD not in class initializer"
msgstr "%J bitiş statik alanı `%D' ataması sınıf ilklendiricisi içinde değil"
-#: java/expr.c:2751
+#: java/expr.c:2755
msgid "%Jassignment to final field '%D' not in constructor"
msgstr "%J bitiş alanı `%D' ataması kurucu içinde değil"
-#: java/expr.c:2941
+#: java/expr.c:2945
msgid "invalid PC in line number table"
msgstr "satır numarası tablosunda geçersiz program sayacı (PC)"
-#: java/expr.c:2995
+#: java/expr.c:3001
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "%d den %d nin öncesine baytkod erişilebilir değil"
-#: java/expr.c:3037
+#: java/expr.c:3043
#, 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:3337
+#: java/expr.c:3343
msgid "unrecogized wide sub-instruction"
msgstr "geniş altişlem anlaşılamadı"
-#: java/gjavah.c:695
+#: java/gjavah.c:701
msgid "static field has same name as method"
msgstr ""
#. FIXME: i18n bug here. Order of prints should not be
#. fixed.
-#: java/gjavah.c:891
+#: java/gjavah.c:899
#, fuzzy, c-format
msgid "ignored method '"
msgstr "`%T::%D' diye bir yöntem yok"
-#: java/gjavah.c:893
+#: java/gjavah.c:901
#, c-format
msgid "' marked virtual\n"
msgstr ""
-#: java/gjavah.c:1241
+#: java/gjavah.c:1249
#, fuzzy, c-format
msgid "couldn't find class %s"
msgstr "sınıf `%s' bulunamıyor"
-#: java/gjavah.c:1248
+#: java/gjavah.c:1256
#, fuzzy, c-format
msgid "parse error while reading %s"
msgstr "zip dosyasından %s okunurken hata"
-#: java/gjavah.c:1474 java/gjavah.c:1576 java/gjavah.c:1651
+#: java/gjavah.c:1482 java/gjavah.c:1584 java/gjavah.c:1659
#, fuzzy, c-format
msgid "unparseable signature: '%s'"
msgstr "'%s' dosyası durumlanamıyor"
-#: java/gjavah.c:2041
+#: java/gjavah.c:2049
#, fuzzy
msgid "Not a valid Java .class file."
msgstr "geçerli bir Java .class dosyası değil"
-#: java/gjavah.c:2049 java/jcf-parse.c:739
+#: java/gjavah.c:2057 java/jcf-parse.c:746
msgid "error while parsing constant pool"
msgstr "sabit havuzu çözümlenirken hata"
-#: java/gjavah.c:2055
+#: java/gjavah.c:2063
#, fuzzy, c-format
msgid "error in constant pool entry #%d"
msgstr "sabit havuzu girdisi #%d de hata\n"
-#: java/gjavah.c:2198
+#: java/gjavah.c:2206
#, fuzzy
msgid "class is of array type\n"
msgstr "tür dönüşümü dizi belirtiyor"
-#: java/gjavah.c:2206
+#: java/gjavah.c:2214
#, fuzzy
msgid "base class is of array type"
msgstr "tür dönüşümü dizi belirtiyor"
-#: java/gjavah.c:2322
+#: java/gjavah.c:2330
#, fuzzy, c-format
msgid "Try 'gcjh --help' for more information.\n"
msgstr "daha fazla bilgi için -Winvalid-pch kullanın"
-#: java/gjavah.c:2329
+#: java/gjavah.c:2337
#, fuzzy, c-format
msgid ""
"Usage: gcjh [OPTION]... CLASS...\n"
@@ -18986,118 +18441,118 @@ msgstr ""
"Kullanımı: gcov [SEÇENEK]... KAYNAKDOSYASI\n"
"\n"
-#: java/gjavah.c:2330
+#: java/gjavah.c:2338
#, fuzzy, c-format
msgid ""
"Generate C++ header files from .class files\n"
"\n"
msgstr "Platforma özel niteliklerin C başlıklarını üretir"
-#: java/gjavah.c:2331
+#: java/gjavah.c:2339
#, fuzzy, c-format
msgid " -stubs Generate an implementation stub file\n"
msgstr " -pipe Aracı dosyalardan ziyade veri yolları kullanılır\n"
-#: java/gjavah.c:2332
+#: java/gjavah.c:2340
#, fuzzy, c-format
msgid " -jni Generate a JNI header or stub\n"
msgstr " -W Fazladan uyarılar da verilir\n"
-#: java/gjavah.c:2334
+#: java/gjavah.c:2342
#, c-format
msgid " -add TEXT Insert TEXT into class body\n"
msgstr ""
-#: java/gjavah.c:2335
+#: java/gjavah.c:2343
#, c-format
msgid " -append TEXT Insert TEXT after class declaration\n"
msgstr ""
-#: java/gjavah.c:2336
+#: java/gjavah.c:2344
#, c-format
msgid " -friend TEXT Insert TEXT as 'friend' declaration\n"
msgstr ""
-#: java/gjavah.c:2337
+#: java/gjavah.c:2345
#, c-format
msgid " -prepend TEXT Insert TEXT before start of class\n"
msgstr ""
-#: java/gjavah.c:2339 java/jcf-dump.c:897
+#: java/gjavah.c:2347 java/jcf-dump.c:897
#, c-format
msgid " --classpath PATH Set path to find .class files\n"
msgstr ""
-#: java/gjavah.c:2340 java/jcf-dump.c:898
+#: java/gjavah.c:2348 java/jcf-dump.c:898
#, fuzzy, c-format
msgid " -IDIR Append directory to class path\n"
msgstr " -B <dizin> Derleyicilerin arama dosya yoluna <dizin>i ekler\n"
-#: java/gjavah.c:2341 java/jcf-dump.c:899
+#: java/gjavah.c:2349 java/jcf-dump.c:899
#, c-format
msgid " --bootclasspath PATH Override built-in class path\n"
msgstr ""
-#: java/gjavah.c:2342 java/jcf-dump.c:900
+#: java/gjavah.c:2350 java/jcf-dump.c:900
#, c-format
msgid " --extdirs PATH Set extensions directory path\n"
msgstr ""
-#: java/gjavah.c:2343
+#: java/gjavah.c:2351
#, c-format
msgid " -d DIRECTORY Set output directory name\n"
msgstr ""
-#: java/gjavah.c:2344 java/jcf-dump.c:901 java/jv-scan.c:114
+#: java/gjavah.c:2352 java/jcf-dump.c:901 java/jv-scan.c:114
#, fuzzy, c-format
msgid " -o FILE Set output file name\n"
msgstr " -o DOSYA Çıktıyı DOSYAya yazar\n"
-#: java/gjavah.c:2345
+#: java/gjavah.c:2353
#, c-format
msgid " -td DIRECTORY Set temporary directory name\n"
msgstr ""
-#: java/gjavah.c:2347 java/jcf-dump.c:903 java/jv-scan.c:116
+#: java/gjavah.c:2355 java/jcf-dump.c:903 java/jv-scan.c:116
#, fuzzy, c-format
msgid " --help Print this help, then exit\n"
msgstr " -h, --help Bu yardım iletisini gösterir ve çıkar\n"
-#: java/gjavah.c:2348 java/jcf-dump.c:904 java/jv-scan.c:117
+#: java/gjavah.c:2356 java/jcf-dump.c:904 java/jv-scan.c:117
#, fuzzy, c-format
msgid " --version Print version number, then exit\n"
msgstr " -v, --version Sürüm bilgilerini gösterir ve çıkar\n"
-#: java/gjavah.c:2349 java/jcf-dump.c:905
+#: java/gjavah.c:2357 java/jcf-dump.c:905
#, fuzzy, c-format
msgid " -v, --verbose Print extra information while running\n"
msgstr " -v, --version Sürüm bilgilerini gösterir ve çıkar\n"
-#: java/gjavah.c:2351
+#: java/gjavah.c:2359
#, c-format
msgid ""
" -M Print all dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2353
+#: java/gjavah.c:2361
#, c-format
msgid ""
" -MM Print non-system dependencies to stdout;\n"
" suppress ordinary output\n"
msgstr ""
-#: java/gjavah.c:2355
+#: java/gjavah.c:2363
#, fuzzy, c-format
msgid " -MD Print all dependencies to stdout\n"
msgstr " -h, --help Bu yardım iletisini gösterir ve çıkar\n"
-#: java/gjavah.c:2356
+#: java/gjavah.c:2364
#, fuzzy, c-format
msgid " -MMD Print non-system dependencies to stdout\n"
msgstr " -h, --help Bu yardım iletisini gösterir ve çıkar\n"
-#: java/gjavah.c:2359 java/jcf-dump.c:907 java/jv-scan.c:119
+#: java/gjavah.c:2367 java/jcf-dump.c:907 java/jv-scan.c:119
#, fuzzy, c-format
msgid ""
"For bug reporting instructions, please see:\n"
@@ -19107,32 +18562,32 @@ msgstr ""
"Hata raporlama işlemleri için:\n"
"%s.\n"
-#: java/gjavah.c:2387 java/gjavah.c:2501
+#: java/gjavah.c:2395 java/gjavah.c:2509
#, fuzzy
msgid "no classes specified"
msgstr "\"%s\" diye bir sınıf ismi yok"
-#: java/gjavah.c:2480
+#: java/gjavah.c:2488
#, fuzzy
msgid "'-MG' option is unimplemented"
msgstr "ret işlemi gerçeklenmedi"
-#: java/gjavah.c:2509
+#: java/gjavah.c:2517
#, fuzzy
msgid "can't specify both -o and -MD"
msgstr "hem -C hem de -o belirtilemez"
-#: java/gjavah.c:2520
+#: java/gjavah.c:2528
#, fuzzy, c-format
msgid "Processing %s\n"
msgstr "%s oluÅŸturuluyor.\n"
-#: java/gjavah.c:2526
+#: java/gjavah.c:2534
#, c-format
msgid "%s: no such class"
msgstr ""
-#: java/gjavah.c:2530
+#: java/gjavah.c:2538
#, c-format
msgid "Found in %s\n"
msgstr ""
@@ -19147,7 +18602,7 @@ msgstr "geçerli bir Java .class dosyası değil"
msgid "error while parsing constant pool\n"
msgstr "sabit havuzu çözümlenirken hata"
-#: java/jcf-dump.c:826 java/jcf-parse.c:742
+#: java/jcf-dump.c:826 java/jcf-parse.c:749
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "sabit havuzu girdisi #%d de hata\n"
@@ -19221,106 +18676,106 @@ msgstr "hatalı yerleşik fcode"
#: java/jcf-io.c:536
#, fuzzy, c-format
msgid "source file for class %qs is newer than its matching class file. Source file %qs 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ı"
+msgstr "sınıf %s için kaynak dosyası onunla eşleşen sınıf dosyasından daha yeni. Yerine kaynak dosyası %qs kullanıldı"
-#: java/jcf-parse.c:362
+#: java/jcf-parse.c:366
msgid "bad string constant"
msgstr "dizge sabit hatalı"
-#: java/jcf-parse.c:380
+#: java/jcf-parse.c:384
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "değer sabiti türü %d, indeks %d hatalı"
-#: java/jcf-parse.c:559
+#: java/jcf-parse.c:572
#, c-format
msgid "can't reopen %s: %m"
msgstr "%s tekrar açılamıyor: %m"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:579
#, c-format
msgid "can't close %s: %m"
msgstr "%s kapatılamıyor: %m"
-#: java/jcf-parse.c:707 java/jcf-parse.c:713
+#: java/jcf-parse.c:714 java/jcf-parse.c:720
#, c-format
msgid "cannot find file for class %s"
msgstr "sınıf %s için dosya bulunamıyor"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:743
msgid "not a valid Java .class file"
msgstr "geçerli bir Java .class dosyası değil"
#. FIXME - where was first time
-#: java/jcf-parse.c:754
+#: java/jcf-parse.c:761
#, 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:772
+#: java/jcf-parse.c:779
msgid "error while parsing fields"
msgstr "alanlar çözümlenirken hata"
-#: java/jcf-parse.c:775
+#: java/jcf-parse.c:782
msgid "error while parsing methods"
msgstr "yöntemler çözümlenirken hata"
-#: java/jcf-parse.c:778
+#: java/jcf-parse.c:785
msgid "error while parsing final attributes"
msgstr "bitiş öznitelikleri çözümlenirken hata"
-#: java/jcf-parse.c:795
+#: java/jcf-parse.c:802
#, fuzzy
msgid "the %<java.lang.Object%> that was found in %qs 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"
+msgstr "`gnu.gcj.gcj-compiled' özel sıfır uzunluklu `gnu.gcj.gcj-compiled' özniteliğine sahip olmayan %qs 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:869
+#: java/jcf-parse.c:876
msgid "missing Code attribute"
msgstr "Code özniteliği eksik"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1137
msgid "%Hsource file seen twice on command line and will be compiled only once"
msgstr "%H komut satırında kaynak dosyası iki kere kullanılmış ama sadece bir kere derlenecek"
-#: java/jcf-parse.c:1144
+#: java/jcf-parse.c:1155
msgid "no input file specified"
msgstr "girdi dosyası belirtilmedi"
-#: java/jcf-parse.c:1176
+#: java/jcf-parse.c:1190
#, c-format
msgid "can't close input file %s: %m"
msgstr "girdi dosyası %s kapatılamıyor: %m"
-#: java/jcf-parse.c:1217
+#: java/jcf-parse.c:1231
#, c-format
msgid "bad zip/jar file %s"
msgstr "zip/jar dosyası %s hatalı"
-#: java/jcf-parse.c:1433
+#: java/jcf-parse.c:1447
#, c-format
msgid "error while reading %s from zip file"
msgstr "zip dosyasından %s okunurken hata"
-#: java/jcf-write.c:2656
+#: java/jcf-write.c:2667
#, 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:3028
+#: java/jcf-write.c:3041
msgid "field initializer type mismatch"
msgstr "alan ilklendirici türü uyumsuzluğu"
-#: java/jcf-write.c:3485
+#: java/jcf-write.c:3498
#, c-format
msgid "can't create directory %s: %m"
msgstr "dizin %s oluşturulamıyor: %m"
-#: java/jcf-write.c:3518
+#: java/jcf-write.c:3531
#, c-format
msgid "can't open %s for writing: %m"
msgstr "%s yazmak için açılamıyor: %m"
-#: java/jcf-write.c:3538
+#: java/jcf-write.c:3551
#, c-format
msgid "can't create %s: %m"
msgstr "%s oluşturulamıyor: %m"
@@ -19376,27 +18831,27 @@ msgstr ""
msgid " --list-filename Print input filename when listing class names\n"
msgstr ""
-#: java/jv-scan.c:213
+#: java/jv-scan.c:190
#, fuzzy
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:216
+#: java/jv-scan.c:193
#, fuzzy, c-format
msgid "can't open output file '%s'"
msgstr "çıktı dosyası `%s' açılamıyor"
-#: java/jv-scan.c:251
+#: java/jv-scan.c:229
#, fuzzy, c-format
msgid "file not found '%s'"
msgstr "`%s' yok"
-#: java/jv-scan.c:273
+#: java/jv-scan.c:251
#, fuzzy, c-format
msgid "%s: error: "
msgstr "hata: "
-#: java/jv-scan.c:285
+#: java/jv-scan.c:263
#, fuzzy, c-format
msgid "%s: warning: "
msgstr "%s:%d: uyarı: "
@@ -19453,15 +18908,15 @@ msgstr "çoklu dosyalarla her iki @FILE kullanımı gerçeklenmedi"
msgid "cannot specify 'main' class when not linking"
msgstr "ilintileme yapılmayacaksa `main' sınıfı belirtilemez"
-#: java/lang.c:620
+#: java/lang.c:629
msgid "can't do dependency tracking with input from stdin"
msgstr "Standart girdiden girdili bağımlılık izlemesi yapılamaz"
-#: java/lang.c:636
+#: java/lang.c:645
msgid "couldn't determine target name for dependency tracking"
msgstr "bağımlılık izlemesi için hedef isim saptanamıyor"
-#: java/lex.c:256
+#: java/lex.c:260
#, fuzzy
msgid ""
"unknown encoding: %qs\n"
@@ -19475,7 +18930,7 @@ msgstr ""
"anlamına gelmektedir. Eğer girdi dosyanızda özellikle bir kodlama kullanmanız\n"
"gerekiyorsa `--encoding=UTF-8' seçeneğini kullanmayı deneyin."
-#: java/lex.c:627
+#: java/lex.c:631
#, fuzzy
msgid "internal error - bad unget"
msgstr "iç hata - Utf8 ismi geçersiz"
@@ -19489,225 +18944,225 @@ msgstr "%s anlamlandırılamıyor"
msgid "internal error - invalid Utf8 name"
msgstr "iç hata - Utf8 ismi geçersiz"
-#: java/parse-scan.y:881 java/parse.y:975 java/parse.y:1316 java/parse.y:1377
-#: java/parse.y:1588 java/parse.y:1811 java/parse.y:1820 java/parse.y:1831
-#: java/parse.y:1842 java/parse.y:1854 java/parse.y:1869 java/parse.y:1886
-#: java/parse.y:1888 java/parse.y:1969 java/parse.y:2146 java/parse.y:2215
-#: java/parse.y:2379 java/parse.y:2392 java/parse.y:2399 java/parse.y:2406
-#: java/parse.y:2417 java/parse.y:2419 java/parse.y:2457 java/parse.y:2459
-#: java/parse.y:2461 java/parse.y:2482 java/parse.y:2484 java/parse.y:2486
-#: java/parse.y:2502 java/parse.y:2504 java/parse.y:2525 java/parse.y:2527
-#: java/parse.y:2529 java/parse.y:2557 java/parse.y:2559 java/parse.y:2561
-#: java/parse.y:2563 java/parse.y:2581 java/parse.y:2583 java/parse.y:2594
-#: java/parse.y:2605 java/parse.y:2616 java/parse.y:2627 java/parse.y:2638
-#: java/parse.y:2651 java/parse.y:2655 java/parse.y:2657 java/parse.y:2670
+#: java/parse-scan.y:878 java/parse.y:974 java/parse.y:1315 java/parse.y:1376
+#: java/parse.y:1587 java/parse.y:1810 java/parse.y:1819 java/parse.y:1830
+#: java/parse.y:1841 java/parse.y:1853 java/parse.y:1868 java/parse.y:1885
+#: java/parse.y:1887 java/parse.y:1968 java/parse.y:2145 java/parse.y:2214
+#: java/parse.y:2378 java/parse.y:2391 java/parse.y:2398 java/parse.y:2405
+#: java/parse.y:2416 java/parse.y:2418 java/parse.y:2456 java/parse.y:2458
+#: java/parse.y:2460 java/parse.y:2481 java/parse.y:2483 java/parse.y:2485
+#: java/parse.y:2501 java/parse.y:2503 java/parse.y:2524 java/parse.y:2526
+#: java/parse.y:2528 java/parse.y:2556 java/parse.y:2558 java/parse.y:2560
+#: java/parse.y:2562 java/parse.y:2580 java/parse.y:2582 java/parse.y:2593
+#: java/parse.y:2604 java/parse.y:2615 java/parse.y:2626 java/parse.y:2637
+#: java/parse.y:2650 java/parse.y:2654 java/parse.y:2656 java/parse.y:2669
msgid "Missing term"
msgstr "Terim eksik"
-#: java/parse-scan.y:883 java/parse.y:749 java/parse.y:787 java/parse.y:812
-#: java/parse.y:996 java/parse.y:1351 java/parse.y:1564 java/parse.y:1566
-#: java/parse.y:1796 java/parse.y:1822 java/parse.y:1833 java/parse.y:1844
-#: java/parse.y:1856 java/parse.y:1871
+#: java/parse-scan.y:880 java/parse.y:748 java/parse.y:786 java/parse.y:811
+#: java/parse.y:995 java/parse.y:1350 java/parse.y:1563 java/parse.y:1565
+#: java/parse.y:1795 java/parse.y:1821 java/parse.y:1832 java/parse.y:1843
+#: java/parse.y:1855 java/parse.y:1870
msgid "';' expected"
msgstr "';' gerekli"
-#: java/parse.y:747 java/parse.y:785
+#: java/parse.y:746 java/parse.y:784
msgid "Missing name"
msgstr "Ä°sim eksik"
-#: java/parse.y:775
+#: java/parse.y:774
#, c-format
msgid "Ambiguous class: %qs and %qs"
msgstr ""
-#: java/parse.y:810
+#: java/parse.y:809
msgid "'*' expected"
msgstr "'*' gerekli"
-#: java/parse.y:824
+#: java/parse.y:823
msgid "Class or interface declaration expected"
msgstr "Sınıf ya da arabirim bildirimi gerekli"
-#: java/parse.y:841
+#: java/parse.y:840
#, fuzzy, c-format
msgid "Modifier %qs declared twice"
msgstr "döngü tanımlayıcı bildirilmemiş"
-#: java/parse.y:861 java/parse.y:863
+#: java/parse.y:860 java/parse.y:862
msgid "Missing class name"
msgstr "Sınıf ismi yok"
-#: java/parse.y:866 java/parse.y:870 java/parse.y:878 java/parse.y:1036
-#: java/parse.y:1297 java/parse.y:1299 java/parse.y:1631 java/parse.y:1882
-#: java/parse.y:1914 java/parse.y:1976
+#: java/parse.y:865 java/parse.y:869 java/parse.y:877 java/parse.y:1035
+#: java/parse.y:1296 java/parse.y:1298 java/parse.y:1630 java/parse.y:1881
+#: java/parse.y:1913 java/parse.y:1975
msgid "'{' expected"
msgstr "'{' gerekli"
-#: java/parse.y:880
+#: java/parse.y:879
msgid "Missing super class name"
msgstr "Süper sınıf ismi eksik"
-#: java/parse.y:890 java/parse.y:906
+#: java/parse.y:889 java/parse.y:905
msgid "Missing interface name"
msgstr "Arabirim ismi yok"
-#: java/parse.y:990
+#: java/parse.y:989
msgid "Missing variable initializer"
msgstr "DeÄŸiÅŸken ilklendirici eksik"
-#: java/parse.y:1007
+#: java/parse.y:1006
msgid "Invalid declaration"
msgstr "Geçersiz bildirim"
-#: java/parse.y:1010 java/parse.y:1095 java/parse.y:2161 java/parse.y:2190
-#: java/parse.y:2212 java/parse.y:2216 java/parse.y:2251 java/parse.y:2330
-#: java/parse.y:2340 java/parse.y:2350
+#: java/parse.y:1009 java/parse.y:1094 java/parse.y:2160 java/parse.y:2189
+#: java/parse.y:2211 java/parse.y:2215 java/parse.y:2250 java/parse.y:2329
+#: java/parse.y:2339 java/parse.y:2349
msgid "']' expected"
msgstr "']' gerekli"
-#: java/parse.y:1014
+#: java/parse.y:1013
msgid "Unbalanced ']'"
msgstr "karşılıksız ']'"
-#: java/parse.y:1050
+#: java/parse.y:1049
msgid "Invalid method declaration, method name required"
msgstr "Yöntem bildirimi geçersiz, yöntem ismi gerekiyor"
-#: java/parse.y:1055 java/parse.y:1060 java/parse.y:1065 java/parse.y:2064
+#: java/parse.y:1054 java/parse.y:1059 java/parse.y:1064 java/parse.y:2063
msgid "Identifier expected"
msgstr "Tanıtıcı gerekli"
-#: java/parse.y:1070 java/parse.y:4742
+#: java/parse.y:1069 java/parse.y:4741
msgid "Invalid method declaration, return type required"
msgstr "Yöntem bildirimi geçersiz, return türü gerekli"
-#: java/parse.y:1090
+#: java/parse.y:1089
msgid "Discouraged form of returned type specification"
msgstr ""
-#: java/parse.y:1093 java/parse.y:1544 java/parse.y:1551 java/parse.y:1560
-#: java/parse.y:1562 java/parse.y:1590 java/parse.y:1699 java/parse.y:2006
-#: java/parse.y:2059
+#: java/parse.y:1092 java/parse.y:1543 java/parse.y:1550 java/parse.y:1559
+#: java/parse.y:1561 java/parse.y:1589 java/parse.y:1698 java/parse.y:2005
+#: java/parse.y:2058
msgid "')' expected"
msgstr "')' gerekli"
-#: java/parse.y:1109
+#: java/parse.y:1108
msgid "Missing formal parameter term"
msgstr "Biçimsel parametre terimi eksik"
-#: java/parse.y:1124 java/parse.y:1129
+#: java/parse.y:1123 java/parse.y:1128
msgid "Missing identifier"
msgstr "Tanıtıcı eksik"
-#: java/parse.y:1149 java/parse.y:1158
+#: java/parse.y:1148 java/parse.y:1157
msgid "Missing class type term"
msgstr "class tür terimi eksik"
-#: java/parse.y:1185
+#: java/parse.y:1184
#, c-format
msgid "Can't define static initializer in class %qs. Static initializer can only be defined in top-level classes"
msgstr ""
-#: java/parse.y:1314
+#: java/parse.y:1313
msgid "Invalid interface type"
msgstr "Geçersiz arabirim türü"
-#: java/parse.y:1483
+#: java/parse.y:1482
msgid "An empty declaration is a deprecated feature that should not be used"
msgstr ""
-#: java/parse.y:1504 java/parse.y:1678 java/parse.y:1680
+#: java/parse.y:1503 java/parse.y:1677 java/parse.y:1679
msgid "':' expected"
msgstr "':' gerekli"
-#: java/parse.y:1530 java/parse.y:1535 java/parse.y:1540
+#: java/parse.y:1529 java/parse.y:1534 java/parse.y:1539
msgid "Invalid expression statement"
msgstr "Geçersiz ifade satırı"
-#: java/parse.y:1558 java/parse.y:1586 java/parse.y:1627 java/parse.y:1695
-#: java/parse.y:1763 java/parse.y:1884 java/parse.y:1962 java/parse.y:2053
-#: java/parse.y:2055 java/parse.y:2068 java/parse.y:2311 java/parse.y:2313
+#: java/parse.y:1557 java/parse.y:1585 java/parse.y:1626 java/parse.y:1694
+#: java/parse.y:1762 java/parse.y:1883 java/parse.y:1961 java/parse.y:2052
+#: java/parse.y:2054 java/parse.y:2067 java/parse.y:2310 java/parse.y:2312
msgid "'(' expected"
msgstr "'(' gerekli"
-#: java/parse.y:1629
+#: java/parse.y:1628
msgid "Missing term or ')'"
msgstr "Terim ya da ')' eksik"
-#: java/parse.y:1676
+#: java/parse.y:1675
msgid "Missing or invalid constant expression"
msgstr "Geçersiz ya da eksik sabit ifadesi"
-#: java/parse.y:1697
+#: java/parse.y:1696
msgid "Missing term and ')' expected"
msgstr "Terim eksik ve ')' gerekli"
-#: java/parse.y:1736
+#: java/parse.y:1735
msgid "Invalid control expression"
msgstr "Geçersiz denetim ifadesi"
-#: java/parse.y:1738 java/parse.y:1740
+#: java/parse.y:1737 java/parse.y:1739
msgid "Invalid update expression"
msgstr "Geçersiz güncelleme ifadesi"
-#: java/parse.y:1765
+#: java/parse.y:1764
msgid "Invalid init statement"
msgstr "Geçersiz ilklendirme satırı"
-#: java/parse.y:1965
+#: java/parse.y:1964
msgid "Missing term or ')' expected"
msgstr "Terim eksik ya da ')' gerekli"
-#: java/parse.y:2008
+#: java/parse.y:2007
msgid "'class' or 'this' expected"
msgstr "'class' ya da 'this' gerekli"
-#: java/parse.y:2010 java/parse.y:2012
+#: java/parse.y:2009 java/parse.y:2011
msgid "'class' expected"
msgstr "'class' gerekli"
-#: java/parse.y:2057
+#: java/parse.y:2056
msgid "')' or term expected"
msgstr "')' ya da terim gerekli"
-#: java/parse.y:2159 java/parse.y:2188
+#: java/parse.y:2158 java/parse.y:2187
msgid "'[' expected"
msgstr "'[' gerekli"
-#: java/parse.y:2266
+#: java/parse.y:2265
msgid "Field expected"
msgstr "Alan gerekli"
-#: java/parse.y:2325 java/parse.y:2335 java/parse.y:2345
+#: java/parse.y:2324 java/parse.y:2334 java/parse.y:2344
msgid "Missing term and ']' expected"
msgstr "Terim eksik ve ']' gerekli"
-#: java/parse.y:2450
+#: java/parse.y:2449
msgid "']' expected, invalid type expression"
msgstr "']' gerekli ve tür ifadesi geçersiz"
-#: java/parse.y:2453
+#: java/parse.y:2452
msgid "Invalid type expression"
msgstr "Geçersiz tür ifadesi"
-#: java/parse.y:2565
+#: java/parse.y:2564
msgid "Invalid reference type"
msgstr "Geçersiz referans türü"
-#: java/parse.y:3032
+#: java/parse.y:3031
msgid "Constructor invocation must be first thing in a constructor"
msgstr "Constructor çağrısı bir kurucu içindeki ilk şey olmalı"
-#: java/parse.y:3034
+#: java/parse.y:3033
msgid "Only constructors can invoke constructors"
msgstr "Sadece kurucular birbirini çağırabilir"
-#: java/parse.y:3042
+#: java/parse.y:3041
#, fuzzy, c-format
msgid ": %qs JDK1.1(TM) feature"
-msgstr ": `%s' JDK1.1(TM) özelliği"
+msgstr ": %qs JDK1.1(TM) özelliği"
-#: java/parse.y:3122 java/parse.y:3124
+#: java/parse.y:3121 java/parse.y:3123
#, c-format
msgid ""
"%s.\n"
@@ -19716,689 +19171,689 @@ msgstr ""
"%s.\n"
"%s"
-#: java/parse.y:3283
+#: java/parse.y:3282
#, fuzzy
msgid "Missing return statement"
msgstr "Ä°sim eksik"
-#: java/parse.y:3305 java/parse.y:11937 java/parse.y:11941
+#: java/parse.y:3304 java/parse.y:11940 java/parse.y:11944
#, fuzzy
msgid "Unreachable statement"
msgstr "Ayrı veri segmanı etkin olur"
-#: java/parse.y:3315
+#: java/parse.y:3314
msgid "Can't access %s field %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:3384
+#: java/parse.y:3383
#, fuzzy, c-format
msgid "%s %qs already defined in %s:%d"
msgstr "`%D' zaten `%T' içinde tanımlı"
-#: java/parse.y:3402
+#: java/parse.y:3401
msgid "Variable %qs is already defined in this method and was declared %<%s %s%> at line %d"
msgstr ""
-#: java/parse.y:3513
+#: java/parse.y:3512
#, fuzzy, c-format
msgid "Interface %qs repeated"
msgstr "tür eski kullanım"
-#: java/parse.y:3543
+#: java/parse.y:3542
#, c-format
msgid "%s name %qs clashes with imported type %qs"
msgstr ""
-#: java/parse.y:3575
+#: java/parse.y:3574
msgid "Public %s %qs must be defined in a file called %<%s.java%>"
msgstr ""
-#: java/parse.y:3590
+#: java/parse.y:3589
#, c-format
msgid "Inner class %qs can't be static. Static classes can only occur in interfaces and top-level classes"
msgstr ""
-#: java/parse.y:3671
+#: java/parse.y:3670
#, c-format
msgid "The class name %qs is already defined in this scope. An inner class may not have the same simple name as any of its enclosing classes"
msgstr ""
-#: java/parse.y:3713
+#: java/parse.y:3712
#, fuzzy
msgid "Qualifier must be a reference"
msgstr "1. parametre referanslanabilir olmalı"
-#: java/parse.y:3734
+#: java/parse.y:3733
#, c-format
msgid "Cyclic inheritance involving %s"
msgstr ""
-#: java/parse.y:3998
+#: java/parse.y:3997
msgid "Redundant use of %<abstract%> modifier. Interface %qs is implicitly abstract"
msgstr ""
-#: java/parse.y:4153
+#: java/parse.y:4152
#, fuzzy, c-format
msgid "Class %qs can't be declared both abstract and final"
msgstr "üye `%D', hem virtual hem de static olarak bildirilemez"
-#: java/parse.y:4165
+#: java/parse.y:4164
msgid "%<java.lang.Object%> can't extend anything"
msgstr ""
-#: java/parse.y:4407
+#: java/parse.y:4406
msgid "Duplicate variable declaration: %<%s %s%> was %<%s %s%> (%s:%d)"
msgstr ""
-#: java/parse.y:4471
+#: java/parse.y:4470
#, c-format
msgid "Field %qs can't be static in inner class %qs unless it is final"
msgstr ""
-#: java/parse.y:4717
+#: java/parse.y:4716
#, c-format
msgid "Class %qs must be declared abstract to define abstract method %qs"
msgstr ""
-#: java/parse.y:4724
+#: java/parse.y:4723
#, c-format
msgid "native method %qs can't be strictfp"
msgstr ""
-#: java/parse.y:4728
+#: java/parse.y:4727
#, c-format
msgid "method %qs can't be transient"
msgstr ""
-#: java/parse.y:4731
+#: java/parse.y:4730
#, c-format
msgid "method %qs can't be volatile"
msgstr ""
-#: java/parse.y:4781 java/parse.y:6530
+#: java/parse.y:4780 java/parse.y:6533
#, c-format
msgid "Method %qs can't be static in inner class %qs. Only members of interfaces and top-level classes can be static"
msgstr ""
-#: java/parse.y:4947
+#: java/parse.y:4946
#, c-format
msgid "%s method %qs can't have a body defined"
msgstr ""
-#: java/parse.y:4958
+#: java/parse.y:4957
#, c-format
msgid "Non native and non abstract method %qs must have a body defined"
msgstr ""
-#: java/parse.y:5029
+#: java/parse.y:5028
#, fuzzy, c-format
msgid "%s: recursive invocation of constructor %qs"
msgstr "`struct %s' tekrar tanımlanmış"
-#: java/parse.y:5059
+#: java/parse.y:5058
msgid "Inconsistent member declaration. At most one of %<public%>, %<private%>, or %<protected%> may be specified"
msgstr ""
-#: java/parse.y:5067
+#: java/parse.y:5066
msgid "Inconsistent member declaration. At most one of %<final%> or %<volatile%> may be specified"
msgstr ""
-#: java/parse.y:5157
+#: java/parse.y:5156
#, c-format
msgid "Variable %qs is used more than once in the argument list of method %qs"
msgstr ""
-#: java/parse.y:5241
+#: java/parse.y:5240
#, c-format
msgid "%s %qs can't implement/extend %s %qs"
msgstr ""
-#: java/parse.y:5275
+#: java/parse.y:5274
#, c-format
msgid "Class %qs can't subclass %s %qs"
msgstr ""
-#: java/parse.y:5284
+#: java/parse.y:5283
#, c-format
msgid "Can't subclass final classes: %s"
msgstr ""
-#: java/parse.y:5470
+#: java/parse.y:5469
#, c-format
msgid "Cyclic class inheritance%s"
msgstr ""
-#: java/parse.y:6181
+#: java/parse.y:6184
#, c-format
msgid "Superclass %qs of class %qs not found"
msgstr ""
-#: java/parse.y:6187
+#: java/parse.y:6190
#, fuzzy, c-format
msgid "Type %qs not found in declaration of field %qs"
-msgstr "`%s' bildiriminde tür `int'e öntanımlı"
+msgstr "%qs bildiriminde tür `int'e öntanımlı"
-#: java/parse.y:6193
+#: java/parse.y:6196
#, c-format
msgid "Type %qs not found in the declaration of the argument %qs of method %qs"
msgstr ""
-#: java/parse.y:6200
+#: java/parse.y:6203
#, c-format
msgid "Type %qs not found in the declaration of the return type of method %qs"
msgstr ""
-#: java/parse.y:6206
+#: java/parse.y:6209
#, c-format
msgid "Superinterface %qs of %s %qs not found"
msgstr ""
-#: java/parse.y:6213
+#: java/parse.y:6216
#, c-format
msgid "Type %qs not found in the declaration of the local variable %qs"
msgstr ""
-#: java/parse.y:6220
+#: java/parse.y:6223
#, fuzzy
msgid "Class %qs not found in %<throws%>"
msgstr "alan '%s' sınıfta yok"
-#: java/parse.y:6277
+#: java/parse.y:6280
#, fuzzy, c-format
msgid "Duplicate %s declaration %qs"
-msgstr "`%s' etiketi birden fazla bildirilmiÅŸ"
+msgstr "%qs etiketi birden fazla bildirilmiÅŸ"
-#: java/parse.y:6351
+#: java/parse.y:6354
msgid "Class %qs doesn't define the abstract method %<%s %s%> from %s %<%s%>. This method must be defined or %s %qs must be declared abstract"
msgstr ""
-#: java/parse.y:6507
+#: java/parse.y:6510
msgid "Class %qs in %<throws%> clause must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:6551
+#: java/parse.y:6554
#, c-format
msgid "Class %qs must override %qs with a public method in order to implement interface %qs"
msgstr ""
-#: java/parse.y:6565 java/parse.y:6792
+#: java/parse.y:6568 java/parse.y:6795
#, c-format
msgid "Method %qs was defined with return type %qs in class %qs"
msgstr ""
-#: java/parse.y:6582
+#: java/parse.y:6585
#, c-format
msgid "%s methods can't be overridden. Method %qs is %s in class %qs"
msgstr ""
-#: java/parse.y:6596
+#: java/parse.y:6599
#, c-format
msgid "Instance methods can't be overridden by a static method. Method %qs is an instance method in class %qs"
msgstr ""
-#: java/parse.y:6619
+#: java/parse.y:6622
#, c-format
msgid "Methods can't be overridden to be more private. Method %qs is not %s in class %qs"
msgstr ""
-#: java/parse.y:6760
+#: java/parse.y:6763
msgid "Invalid checked exception class %qs in %<throws%> clause. The exception must be a subclass of an exception thrown by %qs from class %qs"
msgstr ""
-#: java/parse.y:6817
+#: java/parse.y:6820
#, c-format
msgid "Interface %qs inherits method %qs from interface %qs. This method is redefined with a different return type in interface %qs"
msgstr ""
-#: java/parse.y:6992
+#: java/parse.y:6995
#, fuzzy, c-format
msgid "Class or interface %qs not found in import"
msgstr "Sınıf ya da arabirim bildirimi gerekli"
-#: java/parse.y:7077
+#: java/parse.y:7080
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "CLASSPATH içinde bozuk .zip arşivi: %s"
-#: java/parse.y:7148
+#: java/parse.y:7151
#, fuzzy, c-format
msgid "Can't find default package %qs. 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"
+msgstr "Öntanımlı %qs paketi bulunamıyor. CLASSPATH ortam değişkenini ve arşivlere erişimi kontrol ediniz"
-#: java/parse.y:7153
+#: java/parse.y:7156
#, fuzzy, c-format
msgid "Package %qs not found in import"
msgstr "alan '%s' sınıfta yok"
-#: java/parse.y:7250
+#: java/parse.y:7253
#, c-format
msgid "Type %qs also potentially defined in package %qs"
msgstr ""
-#: java/parse.y:7395
+#: java/parse.y:7398
#, c-format
msgid "Nested %s %s is %s; cannot be accessed from here"
msgstr ""
-#: java/parse.y:7433
+#: java/parse.y:7436
#, c-format
msgid "Can't access %s %qs. Only public classes and interfaces in other packages can be accessed"
msgstr ""
-#: java/parse.y:7471
+#: java/parse.y:7474
msgid "Only %<final%> is allowed as a local variables modifier"
msgstr ""
-#: java/parse.y:9025
+#: java/parse.y:9028
#, fuzzy, c-format
msgid "No constructor matching %qs found in class %qs"
msgstr "kullanışsız ya da belirsiz `%D' `%T' sınıfında bulundu"
-#: java/parse.y:9525
+#: java/parse.y:9528
#, c-format
msgid "Can't reference %qs before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9579
+#: java/parse.y:9582
#, c-format
msgid "Local variable %qs can't be accessed from within the inner class %qs unless it is declared final"
msgstr ""
-#: java/parse.y:9584 java/parse.y:10047
+#: java/parse.y:9587 java/parse.y:10050
#, fuzzy, c-format
msgid "Undefined variable %qs"
msgstr "%J '%D' değişkeni kullanılmadı"
-#: java/parse.y:9595
+#: java/parse.y:9598
#, c-format
msgid "Can't make a static reference to nonstatic variable %qs in class %qs"
msgstr ""
-#: java/parse.y:9801 java/parse.y:10656
+#: java/parse.y:9804 java/parse.y:10659
#, c-format
msgid "No enclosing instance for inner class %qs is in scope%s"
msgstr ""
-#: java/parse.y:9920 java/parse.y:12369
+#: java/parse.y:9923 java/parse.y:12372
msgid "Keyword %<this%> used outside allowed context"
msgstr ""
-#: java/parse.y:9926 java/parse.y:10810
+#: java/parse.y:9929 java/parse.y:10813
msgid "Can't reference %<this%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:9942
+#: java/parse.y:9945
msgid "Can't use variable %<%s.this%>: type %qs isn't an outer type of type %qs"
msgstr ""
-#: java/parse.y:9975
+#: java/parse.y:9978
msgid "Keyword %<super%> used outside allowed context"
msgstr ""
-#: java/parse.y:10024
+#: java/parse.y:10027
#, fuzzy, c-format
msgid "No variable %qs defined in class %qs"
msgstr "`%D' zaten sınıf `%T' içinde tanımlı"
-#: java/parse.y:10029
+#: java/parse.y:10032
#, fuzzy, c-format
msgid "Undefined variable or class name: %qs"
msgstr "sınıf %s için dosya bulunamıyor"
-#: java/parse.y:10100
+#: java/parse.y:10103
#, fuzzy, c-format
msgid "Can't use type %qs as a qualifier"
msgstr "'%s' bir %s yazmacı olarak kullanılamıyor"
-#: java/parse.y:10119
+#: java/parse.y:10122
msgid "Attempt to reference field %qs in %<%s %s%>"
msgstr ""
-#: java/parse.y:10150
+#: java/parse.y:10153
#, c-format
msgid "No variable %qs defined in type %qs"
msgstr ""
-#: java/parse.y:10234
+#: java/parse.y:10237
msgid "Attempt to reference field %<new%> in a %qs"
msgstr ""
-#: java/parse.y:10371
+#: java/parse.y:10374
#, c-format
msgid "The class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10381
+#: java/parse.y:10384
#, c-format
msgid "The %s %qs in class %qs has been deprecated"
msgstr ""
-#: java/parse.y:10498
+#: java/parse.y:10501
#, c-format
msgid "Can't invoke a method on primitive type %qs"
msgstr ""
-#: java/parse.y:10513
+#: java/parse.y:10516
#, c-format
msgid "Can't make static reference to method %qs in interface %qs"
msgstr ""
-#: java/parse.y:10523 java/parse.y:10857
+#: java/parse.y:10526 java/parse.y:10860
msgid "Can't make static reference to method %<%s %s%> in class %qs"
msgstr ""
-#: java/parse.y:10563
+#: java/parse.y:10566
msgid "Can't invoke super constructor on java.lang.Object"
msgstr ""
-#: java/parse.y:10576 java/parse.y:14433
+#: java/parse.y:10579 java/parse.y:14437
#, fuzzy, c-format
msgid "Class %qs not found in type declaration"
msgstr "%Hprototip bildirimi"
-#: java/parse.y:10588
+#: java/parse.y:10591
#, c-format
msgid "Class %qs is an abstract class. It can't be instantiated"
msgstr ""
-#: java/parse.y:10618
+#: java/parse.y:10621
#, c-format
msgid "No method named %qs in scope"
msgstr ""
-#: java/parse.y:10729
+#: java/parse.y:10732
msgid "Can't access %s %s %<%s.%s%> from %qs"
msgstr ""
-#: java/parse.y:11203
+#: java/parse.y:11206
msgid "Can't find %s %<%s(%s)%> in type %qs%s"
msgstr ""
-#: java/parse.y:11783
+#: java/parse.y:11786
#, fuzzy
msgid "Constant expression required"
msgstr "sabitsiz ifade"
-#: java/parse.y:11796
+#: java/parse.y:11799
#, fuzzy
msgid "Incompatible type for case. Can't convert %qs to %<int%>"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: java/parse.y:11830
+#: java/parse.y:11833
#, fuzzy
msgid "Duplicate case label: %<default%>"
msgstr "yinelenmiÅŸ case deÄŸeri"
-#: java/parse.y:12178
+#: java/parse.y:12181
msgid "Incompatible type for %<+=%>. Can't convert %qs to %<java.lang.String%>"
msgstr ""
-#: java/parse.y:12349
+#: java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field %qs"
-msgstr "statik alan `%s' eksik"
+msgstr "statik alan %qs eksik"
-#: java/parse.y:12354
+#: java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field %qs"
-msgstr "`%s' bir statik alan deÄŸil"
+msgstr "%qs bir statik alan deÄŸil"
-#: java/parse.y:12377
+#: java/parse.y:12380
msgid "Can't reference %<this%> or %<super%> before the superclass constructor has been called"
msgstr ""
-#: java/parse.y:12397
+#: java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "%s için uygun bir case yok"
-#: java/parse.y:12827
+#: java/parse.y:12830
#, fuzzy
msgid "Invalid left hand side of assignment"
msgstr "saÄŸ yan bir kip"
-#: java/parse.y:12878
+#: java/parse.y:12881
#, fuzzy, c-format
msgid "Incompatible type for %s. Can't convert %qs to %qs"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: java/parse.y:12881
+#: java/parse.y:12884
#, c-format
msgid "Incompatible type for %s. Explicit cast needed to convert %qs to %qs"
msgstr ""
-#: java/parse.y:13054
+#: java/parse.y:13057
#, c-format
msgid "Constant expression %qs too wide for narrowing primitive conversion to %qs"
msgstr ""
-#: java/parse.y:13345
+#: java/parse.y:13348
#, c-format
msgid "unregistered operator %s"
msgstr "%s işleci tanınmıyor"
-#: java/parse.y:13494
+#: java/parse.y:13497
msgid "Evaluating this expression will result in an arithmetic exception being thrown"
msgstr ""
-#: java/parse.y:13576
+#: java/parse.y:13579
#, c-format
msgid "Incompatible type for %qs. Explicit cast needed to convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13581
+#: java/parse.y:13584
#, c-format
msgid "Incompatible type for %qs. Can't convert shift distance from %qs to integral"
msgstr ""
-#: java/parse.y:13657
+#: java/parse.y:13660
#, fuzzy
msgid "Invalid argument %qs for %<instanceof%>"
-msgstr "`%s' özniteliğinin argümanı geçersiz"
+msgstr "%qs özniteliğinin argümanı geçersiz"
-#: java/parse.y:13684
+#: java/parse.y:13687
#, c-format
msgid "Impossible for %qs to be instance of %qs"
msgstr ""
-#: java/parse.y:13813
+#: java/parse.y:13818
#, fuzzy, c-format
msgid "Incompatible type for %qs. Can't convert %qs to %qs"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: java/parse.y:14294
+#: java/parse.y:14298
#, fuzzy, c-format
msgid "Invalid argument type %qs to %qs"
msgstr "%0 daki mevcut argüman geçersiz"
-#: java/parse.y:14524
+#: java/parse.y:14528
#, fuzzy, c-format
msgid "Invalid cast from %qs to %qs"
msgstr "`%T' den `%T' ye dönüşüm geçersiz"
-#: java/parse.y:14571
+#: java/parse.y:14575
msgid "%<[]%> can only be applied to arrays. It can't be applied to %qs"
msgstr ""
-#: java/parse.y:14584
+#: java/parse.y:14588
msgid "Incompatible type for %<[]%>. Explicit cast needed to convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14588
+#: java/parse.y:14592
#, fuzzy
msgid "Incompatible type for %<[]%>. Can't convert %qs to %<int%>"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: java/parse.y:14659
+#: java/parse.y:14663
msgid "Incompatible type for dimension in array creation expression. %s convert %qs to %<int%>"
msgstr ""
-#: java/parse.y:14775
+#: java/parse.y:14779
#, fuzzy, c-format
msgid "Invalid array initializer for non-array type %qs"
msgstr "dizinin ilklendiricisi olarak sabit olmayan dizi ifadesi kullanılmış"
-#: java/parse.y:14862
+#: java/parse.y:14866
#, fuzzy, c-format
msgid "Incompatible type for array. %s convert %qs to %qs"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: java/parse.y:14931
+#: java/parse.y:14935
#, fuzzy
msgid "%<return%> inside instance initializer"
msgstr "ilklendiricide indeks aralığı boş"
-#: java/parse.y:14935
+#: java/parse.y:14939
#, fuzzy
msgid "%<return%> inside static initializer"
msgstr "ilklendiricide indeks aralığı boş"
-#: java/parse.y:14941
+#: java/parse.y:14945
msgid "%<return%> with%s value from %<%s %s%>"
msgstr ""
-#: java/parse.y:14948
+#: java/parse.y:14952
#, fuzzy
msgid "%<return%> with value from constructor %qs"
msgstr "kurucudan bir değer döndürülemez"
-#: java/parse.y:15013
+#: java/parse.y:15017
msgid "Incompatible type for %<if%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15046
+#: java/parse.y:15050
#, fuzzy, c-format
msgid "Declaration of %qs shadows a previous label declaration"
msgstr "`%D' bildirimi bir genel bildirimi gölgeliyor"
-#: java/parse.y:15051
+#: java/parse.y:15055
#, fuzzy, c-format
msgid "This is the location of the previous declaration of label %qs"
msgstr "bu önceki tanımlamanın yeri"
-#: java/parse.y:15298
+#: java/parse.y:15302
#, fuzzy, c-format
msgid "No label definition found for %qs"
msgstr "%0 daki FORMAT deyimi için etiket tanımı yok"
-#: java/parse.y:15311
+#: java/parse.y:15315
#, fuzzy
msgid "%<continue%> must be in loop"
msgstr "continue deyimi bir döngü içinde değil"
-#: java/parse.y:15314
+#: java/parse.y:15318
#, fuzzy, c-format
msgid "continue label %qs does not name a loop"
msgstr "continue deyimi bir döngü içinde değil"
-#: java/parse.y:15335
+#: java/parse.y:15339
#, fuzzy
msgid "%<break%> must be in loop or switch"
msgstr "break deyimi switch ya da döngü içinde değil"
-#: java/parse.y:15376
+#: java/parse.y:15380
msgid "Incompatible type for loop conditional. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:15414
+#: java/parse.y:15418
msgid "Incompatible type for %<switch%>. Can't convert %qs to %<int%>"
msgstr ""
#. The case_label_list is in reverse order, so print the
#. outer label first.
-#: java/parse.y:15445
+#: java/parse.y:15449
#, fuzzy
msgid "duplicate case label: %<"
msgstr "yinlenmiÅŸ etiket `%D'"
-#: java/parse.y:15446
+#: java/parse.y:15450
msgid "%>"
msgstr ""
-#: java/parse.y:15449
+#: java/parse.y:15453
#, fuzzy
msgid "original label is here"
msgstr "Tüm dallanma hedefleri bayt sınırlarına ayarlanır"
-#: java/parse.y:15666
+#: java/parse.y:15670
msgid "Can't catch class %qs. Catch clause parameter type must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15690
+#: java/parse.y:15694
msgid "%<catch%> not reached because of the catch clause at line %d"
msgstr ""
-#: java/parse.y:15757
+#: java/parse.y:15761
msgid "Incompatible type for %<synchronized%>. Can't convert %qs to %<java.lang.Object%>"
msgstr ""
-#: java/parse.y:15816
+#: java/parse.y:15820
msgid "Can't throw %qs; it must be a subclass of class %<java.lang.Throwable%>"
msgstr ""
-#: java/parse.y:15845
+#: java/parse.y:15849
msgid "Checked exception %qs can't be thrown in instance initializer (not all declared constructor are declaring it in their %<throws%> clause)"
msgstr ""
-#: java/parse.y:15866
+#: java/parse.y:15870
msgid "Checked exception %qs can't be caught by any of the catch clause(s) of the surrounding %<try%> block"
msgstr ""
-#: java/parse.y:15879
+#: java/parse.y:15883
#, c-format
msgid "Checked exception %qs can't be thrown in initializer"
msgstr ""
-#: java/parse.y:15883
+#: java/parse.y:15887
msgid "Checked exception %qs isn't thrown from a %<try%> block"
msgstr ""
-#: java/parse.y:15889
+#: java/parse.y:15893
msgid "Checked exception %qs doesn't match any of current method's %<throws%> declaration(s)"
msgstr ""
-#: java/parse.y:15944
+#: java/parse.y:15948
#, fuzzy, c-format
msgid "Exception %qs can't be thrown in initializer"
msgstr "ilklendiricide indeks aralığı boş"
-#: java/parse.y:15949
+#: java/parse.y:15953
msgid "Exception %qs must be caught, or it must be declared in the %<throws%> clause of %qs"
msgstr ""
-#: java/parse.y:16060
+#: java/parse.y:16066
msgid "Incompatible type for %<?:%>. Can't convert %qs to %<boolean%>"
msgstr ""
-#: java/parse.y:16128
+#: java/parse.y:16134
#, fuzzy
msgid "Incompatible type for %<?:%>. Can't convert %qs to %qs"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: java/typeck.c:547
+#: java/typeck.c:533
msgid "junk at end of signature string"
msgstr "imza dizgesinden sonrası karışık"
-#: java/verify-glue.c:393
+#: java/verify-glue.c:408
#, fuzzy, c-format
msgid "verification failed: %s"
msgstr "PC=%d de doğrulama hatası"
-#: java/verify-glue.c:395
+#: java/verify-glue.c:410
#, fuzzy, c-format
msgid "verification failed at PC=%d: %s"
msgstr "PC=%d de doğrulama hatası"
-#: java/verify-glue.c:479 java/verify.c:514
+#: java/verify-glue.c:494 java/verify.c:480
msgid "bad pc in exception_table"
msgstr "exception_table içindeki pc hatalı"
-#: java/verify.c:1516
+#: java/verify.c:1476
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "doğrulama sırasında bilinmeyen opkod %d@pc=%d"
-#: java/verify.c:1591 java/verify.c:1607 java/verify.c:1612
+#: java/verify.c:1551 java/verify.c:1567 java/verify.c:1572
#, c-format
msgid "verification error at PC=%d"
msgstr "PC=%d de doğrulama hatası"
@@ -20446,195 +19901,195 @@ msgstr ""
msgid "Incompatible type for %qs. Can't convert %qs to integral"
msgstr "dolaylı işlev çağrısının %d. argümanı için tür uyumsuz"
-#: objc/objc-act.c:753
+#: objc/objc-act.c:756
#, fuzzy
msgid "%<@end%> must appear in an @implementation context"
msgstr "`@end' bir oluşum bağlamında görünmeli"
-#: objc/objc-act.c:780
+#: objc/objc-act.c:783
#, fuzzy
msgid "method declaration not in @interface context"
msgstr "yöntem tanımı sınıf bağlamında değil"
-#: objc/objc-act.c:791
+#: objc/objc-act.c:794
#, fuzzy
msgid "method definition not in @implementation context"
msgstr "yöntem tanımı sınıf bağlamında değil"
-#: objc/objc-act.c:901
+#: objc/objc-act.c:925
#, fuzzy, c-format
msgid "object does not conform to the %qs protocol"
-msgstr "nesne `%s'protokolüne uygun değil"
+msgstr "nesne %qsprotokolüne uygun değil"
-#: objc/objc-act.c:991 objc/objc-act.c:1068
+#: objc/objc-act.c:1015 objc/objc-act.c:1092
#, fuzzy, c-format
msgid "class %qs does not implement the %qs protocol"
-msgstr "`%s' sınıfı `%s' protokolünü desteklemiyor"
+msgstr "%qs sınıfı %qs protokolünü desteklemiyor"
-#: objc/objc-act.c:1174
+#: objc/objc-act.c:1198
#, fuzzy, c-format
msgid "statically allocated instance of Objective-C class %qs"
-msgstr "`%s' Objective-C sınıfının durağan olarak ayrılmış gerçeklemesi"
+msgstr "%qs Objective-C sınıfının durağan olarak ayrılmış gerçeklemesi"
-#: objc/objc-act.c:1231
+#: objc/objc-act.c:1269
#, fuzzy, c-format
msgid "protocol %qs has circular dependency"
-msgstr "protokol `%s' döngüsel bağımlılık içeriyor"
+msgstr "protokol %qs döngüsel bağımlılık içeriyor"
-#: objc/objc-act.c:1253 objc/objc-act.c:5831
+#: objc/objc-act.c:1291 objc/objc-act.c:5881
#, fuzzy, c-format
msgid "cannot find protocol declaration for %qs"
-msgstr "`%s' için protokol bildirimi bulunamıyor"
+msgstr "%qs için protokol bildirimi bulunamıyor"
-#: objc/objc-act.c:1649 objc/objc-act.c:2783 objc/objc-act.c:6359
-#: objc/objc-act.c:6685 objc/objc-act.c:6738 objc/objc-act.c:6763
+#: objc/objc-act.c:1687 objc/objc-act.c:2836 objc/objc-act.c:6409
+#: objc/objc-act.c:6735 objc/objc-act.c:6788 objc/objc-act.c:6813
#, fuzzy, c-format
msgid "cannot find interface declaration for %qs"
-msgstr "`%s' için arabirim bildirimi bulunamıyor"
+msgstr "%qs için arabirim bildirimi bulunamıyor"
-#: objc/objc-act.c:1653
+#: objc/objc-act.c:1691
#, fuzzy, c-format
msgid "interface %qs does not have valid constant string layout"
-msgstr "`%s' argümanı geçerli sabit dizge yerleşimi içermiyor"
+msgstr "%qs argümanı geçerli sabit dizge yerleşimi içermiyor"
-#: objc/objc-act.c:1658
+#: objc/objc-act.c:1696
#, fuzzy, c-format
msgid "cannot find reference tag for class %qs"
-msgstr "sınıf `%s' için referans etiketi bulunamıyor"
+msgstr "sınıf %qs için referans etiketi bulunamıyor"
-#: objc/objc-act.c:2330
+#: objc/objc-act.c:2374
#, fuzzy
-msgid "%Jcreating selector for nonexistent method %qE"
+msgid "%Hcreating selector for nonexistent method %qE"
msgstr "omayan yöntem %s için ayraç oluşturuyor"
-#: objc/objc-act.c:2518
+#: objc/objc-act.c:2563
#, fuzzy, c-format
msgid "%qs is not an Objective-C class name or alias"
-msgstr "`%s' geçerli bir Objective-C sınıf ismi ya da rumuzu değil"
+msgstr "%qs geçerli bir Objective-C sınıf ismi ya da rumuzu değil"
-#: objc/objc-act.c:2633 objc/objc-act.c:2651 objc/objc-act.c:6622
-#: objc/objc-act.c:6919 objc/objc-act.c:6949
+#: objc/objc-act.c:2678 objc/objc-act.c:2696 objc/objc-act.c:6672
+#: objc/objc-act.c:6964 objc/objc-act.c:6994
msgid "Objective-C declarations may only appear in global scope"
msgstr "Objective-C bildirimleri sadece genel etki alanında görünebilir"
-#: objc/objc-act.c:2638
+#: objc/objc-act.c:2683
#, fuzzy, c-format
msgid "cannot find class %qs"
-msgstr "sınıf `%s' bulunamıyor"
+msgstr "sınıf %qs bulunamıyor"
-#: objc/objc-act.c:2640
+#: objc/objc-act.c:2685
#, fuzzy, c-format
msgid "class %qs already exists"
-msgstr "sınıf `%s' zaten var"
+msgstr "sınıf %qs zaten var"
-#: objc/objc-act.c:2665 objc/objc-act.c:6654
+#: objc/objc-act.c:2716 objc/objc-act.c:6704
#, fuzzy, c-format
msgid "%qs redeclared as different kind of symbol"
-msgstr "`%s' farklı bir sembol çeşidi olarak tekrar bildirilmiş"
+msgstr "%qs farklı bir sembol çeşidi olarak tekrar bildirilmiş"
-#: objc/objc-act.c:2667 objc/objc-act.c:6656
+#: objc/objc-act.c:2718 objc/objc-act.c:6706
msgid "%Jprevious declaration of '%D'"
msgstr "%J `%D' için önceki bildirim"
-#: objc/objc-act.c:2893
+#: objc/objc-act.c:2946
#, fuzzy
msgid "use %<-fobjc-exceptions%> to enable Objective-C exception syntax"
msgstr "Objective-C olağandışılık sözdizimini etkinleştirmek için `-fobjc-exceptions' kullanılır"
-#: objc/objc-act.c:3222
+#: objc/objc-act.c:3275
#, fuzzy
msgid "@catch parameter is not a known Objective-C class type"
msgstr "`@catch' parametresi bilinen bir Objective-C sınıf türü değil"
-#: objc/objc-act.c:3238
+#: objc/objc-act.c:3291
#, fuzzy
msgid "exception of type %<%T%> will be caught"
msgstr "`%T' türündeki olağandışılık yakalanmış olacak"
-#: objc/objc-act.c:3240
+#: objc/objc-act.c:3293
#, fuzzy
msgid "%H by earlier handler for %<%T%>"
msgstr " `%T'nin önceki tutamağı tarafından "
-#: objc/objc-act.c:3293
+#: objc/objc-act.c:3346
#, fuzzy
msgid "%<@try%> without %<@catch%> or %<@finally%>"
msgstr "`@catch' veya `@finally' olmaksızın `@try'"
-#: objc/objc-act.c:3340
+#: objc/objc-act.c:3393
#, fuzzy
msgid "%<@throw%> (rethrow) used outside of a @catch block"
msgstr "`@throw;' (rethrow) bir `@catch' bloğunun dışında kullanılmış"
-#: objc/objc-act.c:3716
+#: objc/objc-act.c:3758
msgid "%Jtype '%D' does not have a known size"
msgstr "%J '%D' türü bilinen bir boyuta sahip değil"
-#: objc/objc-act.c:4229
+#: objc/objc-act.c:4271
#, fuzzy
msgid "%J%s %qs"
-msgstr "%J %s `%s'"
+msgstr "%J %s %qs"
-#: objc/objc-act.c:4252 objc/objc-act.c:4271
+#: objc/objc-act.c:4294 objc/objc-act.c:4313
msgid "inconsistent instance variable specification"
msgstr "çelişkili gerçekleme değişkeni özelliği"
-#: objc/objc-act.c:5127
+#: objc/objc-act.c:5169
#, fuzzy
msgid "can not use an object as parameter to a method"
msgstr "bir nesne bir yöntemde parametre olarak kullanılamaz\n"
-#: objc/objc-act.c:5329
+#: objc/objc-act.c:5377
#, fuzzy
msgid "multiple %s named %<%c%s%> found"
msgstr "çok sayıda `%s' isimli `%c%s' bulundu"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5602
#, fuzzy, c-format
msgid "no super class declared in @interface for %qs"
-msgstr "@interface içinde `%s' için süper sınıf bildirilmemiş"
+msgstr "@interface içinde %qs için süper sınıf bildirilmemiş"
-#: objc/objc-act.c:5595
+#: objc/objc-act.c:5645
msgid "found %<-%s%> instead of %<+%s%> in protocol(s)"
msgstr ""
-#: objc/objc-act.c:5654
+#: objc/objc-act.c:5704
#, fuzzy, c-format
msgid "invalid receiver type %qs"
-msgstr "alıcı tür `%s' geçersiz"
+msgstr "alıcı tür %qs geçersiz"
-#: objc/objc-act.c:5669
+#: objc/objc-act.c:5719
#, fuzzy
msgid "%<%c%s%> not found in protocol(s)"
msgstr "`%c%s' protokol(ler) tarafından gerçekleştirilmiyor"
-#: objc/objc-act.c:5683
+#: objc/objc-act.c:5733
#, fuzzy
msgid "%qs may not respond to %<%c%s%>"
-msgstr "`%s' `%c%s'e yanıt vermeyebilir"
+msgstr "%qs `%c%s'e yanıt vermeyebilir"
-#: objc/objc-act.c:5691
+#: objc/objc-act.c:5741
msgid "no %<%c%s%> method found"
msgstr ""
-#: objc/objc-act.c:5697
+#: objc/objc-act.c:5747
msgid "(Messages without a matching method signature"
msgstr "(Eşleşen bir yöntem imzası olmaksızın iletiler,"
-#: objc/objc-act.c:5698
+#: objc/objc-act.c:5748
#, fuzzy
msgid "will be assumed to return %<id%> and accept"
msgstr "`id' döneceği varsayılacak ve kabul edilecek"
-#: objc/objc-act.c:5699
+#: objc/objc-act.c:5749
#, fuzzy
msgid "%<...%> as arguments.)"
msgstr "argüman olarak `...')"
-#: objc/objc-act.c:5930
+#: objc/objc-act.c:5980
#, fuzzy, c-format
msgid "undeclared selector %qs"
-msgstr "bildirilmemiş ayraç `%s'"
+msgstr "bildirilmemiş ayraç %qs"
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
@@ -20645,180 +20100,173 @@ msgstr "bildirilmemiş ayraç `%s'"
#. 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:5972
+#: objc/objc-act.c:6022
#, fuzzy, c-format
msgid "instance variable %qs accessed in class method"
-msgstr "gerçekleme değişkeni `%s' sınıf yönteminden erişimli"
+msgstr "gerçekleme değişkeni %qs sınıf yönteminden erişimli"
-#: objc/objc-act.c:6184
+#: objc/objc-act.c:6234
#, fuzzy
msgid "duplicate declaration of method %<%c%s%>"
msgstr "yöntem `%c%s' birden fazla bildirilmiş"
-#: objc/objc-act.c:6229
+#: objc/objc-act.c:6279
#, fuzzy
msgid "duplicate interface declaration for category %<%s(%s)%>"
msgstr "`%s(%s)' kategororisi için birden fazla arayüz bildirimi"
-#: objc/objc-act.c:6256
+#: objc/objc-act.c:6306
#, fuzzy, c-format
msgid "illegal reference type specified for instance variable %qs"
-msgstr "gerçekleme değişkeni `%s' için kuraldışı ilişkilendirme türü"
+msgstr "gerçekleme değişkeni %qs için kuraldışı ilişkilendirme türü"
-#: objc/objc-act.c:6267
+#: objc/objc-act.c:6317
#, fuzzy, c-format
msgid "instance variable %qs has unknown size"
-msgstr "gerçekleme değişkeni `%s' bilinmyen uzunlukta"
+msgstr "gerçekleme değişkeni %qs bilinmyen uzunlukta"
#. vtable pointers are Real Bad(tm), since Obj-C cannot initialize them
-#: objc/objc-act.c:6281
+#: objc/objc-act.c:6331
#, fuzzy, c-format
msgid "type %qs has virtual member functions"
-msgstr "`%s' türü sanal işlevlere sahip"
+msgstr "%qs türü sanal işlevlere sahip"
-#: objc/objc-act.c:6282
+#: objc/objc-act.c:6332
#, fuzzy, c-format
msgid "illegal aggregate type %qs specified for instance variable %qs"
msgstr "gerçekleme değişkeni `%2$s' için kümeleme türü `%1$s' kuraldışı "
-#: objc/objc-act.c:6290
+#: objc/objc-act.c:6340
#, fuzzy, c-format
msgid "type %qs has a user-defined constructor"
-msgstr "`%s' türü bir kullanıcı tanımlı yapıcıya sahip"
+msgstr "%qs türü bir kullanıcı tanımlı yapıcıya sahip"
-#: objc/objc-act.c:6292
+#: objc/objc-act.c:6342
#, fuzzy, c-format
msgid "type %qs has a user-defined destructor"
-msgstr "`%s' türü bir kullanıcı tanımlı yıkıcıya sahip"
+msgstr "%qs türü bir kullanıcı tanımlı yıkıcıya sahip"
-#: objc/objc-act.c:6293
+#: objc/objc-act.c:6343
msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
msgstr "C++ yapıcıları ve yıkıcıları Objective-C alanları için çağrılamaz"
-#: objc/objc-act.c:6383
+#: objc/objc-act.c:6433
#, fuzzy, c-format
msgid "instance variable %qs is declared private"
-msgstr "gerçekleme değişkeni `%s' private olarak bildirilmiş"
+msgstr "gerçekleme değişkeni %qs private olarak bildirilmiş"
-#: objc/objc-act.c:6392
+#: objc/objc-act.c:6442
#, fuzzy, c-format
msgid "instance variable %qs is %s; this will be a hard error in the future"
-msgstr "gerçekleme değişkeni `%s' %s: bu ileride kesinlikle bir hata olacak"
+msgstr "gerçekleme değişkeni %qs %s: bu ileride kesinlikle bir hata olacak"
-#: objc/objc-act.c:6399
+#: objc/objc-act.c:6449
#, fuzzy, c-format
msgid "instance variable %qs is declared %s"
-msgstr "gerçekleme değişkeni `%s' %s olarak bildirilmiş"
+msgstr "gerçekleme değişkeni %qs %s olarak bildirilmiş"
-#: objc/objc-act.c:6409
+#: objc/objc-act.c:6459
#, fuzzy
msgid "static access to object of type %<id%>"
msgstr "`id' türünün nesnesine statik erişim"
-#: objc/objc-act.c:6431 objc/objc-act.c:6519
+#: objc/objc-act.c:6481 objc/objc-act.c:6569
#, fuzzy, c-format
msgid "incomplete implementation of class %qs"
-msgstr "`%s' sınıfının içi boş"
+msgstr "%qs sınıfının içi boş"
-#: objc/objc-act.c:6435 objc/objc-act.c:6524
+#: objc/objc-act.c:6485 objc/objc-act.c:6574
#, fuzzy, c-format
msgid "incomplete implementation of category %qs"
-msgstr "`%s' kategorisinin içi boş"
+msgstr "%qs kategorisinin içi boş"
-#: objc/objc-act.c:6440 objc/objc-act.c:6529
+#: objc/objc-act.c:6490 objc/objc-act.c:6579
#, fuzzy
msgid "method definition for %<%c%s%> not found"
msgstr "`%c%s' için yöntem tanımı yok"
-#: objc/objc-act.c:6570
+#: objc/objc-act.c:6620
#, fuzzy, c-format
msgid "%s %qs does not fully implement the %qs protocol"
-msgstr "%s `%s' `%s'protokolünü tamamen gerçekleştirmiyor"
+msgstr "%s %qs %qsprotokolünü tamamen gerçekleştirmiyor"
-#: objc/objc-act.c:6628 objc/objc-act.c:8177
+#: objc/objc-act.c:6678 objc/objc-act.c:8272
#, fuzzy
msgid "%<@end%> missing in implementation context"
msgstr "oluşum bağlamında `@end' eksik"
-#: objc/objc-act.c:6641
-#, fuzzy, c-format
+#: objc/objc-act.c:6691
+#, c-format
msgid "cannot find interface declaration for %qs, superclass of %qs"
-msgstr "`%s' için arabirim bildirimi ve `%s' süper sınıfı bulunamıyor"
+msgstr "%qs için arabirim bildirimi ve %qs süper sınıfı bulunamıyor"
-#: objc/objc-act.c:6668
-#, fuzzy, c-format
+#: objc/objc-act.c:6718
+#, c-format
msgid "reimplementation of class %qs"
-msgstr "`%s' sınıfının yeniden oluşumu"
+msgstr "%qs sınıfının yeniden gerçeklenimi"
-#: objc/objc-act.c:6699
-#, fuzzy, c-format
+#: objc/objc-act.c:6749
+#, c-format
msgid "conflicting super class name %qs"
-msgstr "süper sınıf ismi `%s' çelişiyor"
+msgstr "süper sınıf ismi %qs çelişiyor"
-#: objc/objc-act.c:6701
-#, fuzzy, c-format
+#: objc/objc-act.c:6751
+#, c-format
msgid "previous declaration of %qs"
-msgstr "`%s'in önceki bildirimi"
+msgstr "%qs'in önceki bildirimi"
-#: objc/objc-act.c:6715 objc/objc-act.c:6717
-#, fuzzy, c-format
+#: objc/objc-act.c:6765 objc/objc-act.c:6767
+#, c-format
msgid "duplicate interface declaration for class %qs"
-msgstr "`%s' sınıfı için birden fazla arabirim bildirimi"
+msgstr "%qs sınıfı için birden fazla arabirim bildirimi"
-#: objc/objc-act.c:6977
-#, fuzzy, c-format
+#: objc/objc-act.c:7022
+#, c-format
msgid "duplicate declaration for protocol %qs"
-msgstr "protokol `%s' için birden fazla bildirim"
+msgstr "protokol %qs için birden fazla bildirim"
#. Add a readable method name to the warning.
-#: objc/objc-act.c:7494
-#, fuzzy
+#: objc/objc-act.c:7552
msgid "%J%s %<%c%s%>"
-msgstr "%J%s `%c%s'"
+msgstr "%J%s %<%c%s%>"
-#: objc/objc-act.c:7784
-#, fuzzy, c-format
+#: objc/objc-act.c:7849
+#, c-format
msgid "no super class declared in interface for %qs"
-msgstr "Arabirim içinde `%s' için süper sınıf bildirilmemiş"
+msgstr "arabirim içinde %qs için süper sınıf bildirilmemiş"
-#: objc/objc-act.c:7832
+#: objc/objc-act.c:7897
msgid "[super ...] must appear in a method context"
msgstr "[super ...] bir yöntem bağlamında görünmeli"
-#: objc/objc-act.c:8459
-#, fuzzy, c-format
+#: objc/objc-act.c:8554
+#, c-format
msgid "local declaration of %qs hides instance variable"
-msgstr "`%s' yerel bildirimi gerçekleme değişkenini gizliyor"
+msgstr "%qs yerel bildirimi gerçekleme değişkenini gizliyor"
-#: objc/objc-parse.y:2720
-#, fuzzy
+#: objc/objc-parse.y:2748
msgid "extra semicolon in method definition specified"
-msgstr "struct ya da union'da fazladan ; var"
+msgstr "yöntem tanımında fazladan ; belirtilmiş"
#: treelang/tree1.c:278
-#, fuzzy
msgid "%HDuplicate name %q.*s."
-msgstr "yinlenmiÅŸ etiket `%D' %H"
+msgstr "%H yinelenmiÅŸ isim %q.*s"
-#: treelang/treetree.c:842
-#, fuzzy
+#: treelang/treetree.c:826
msgid "Global register variable %qD used in nested function."
-msgstr "genel yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
+msgstr "Genel yazmaç değişkeni %qs yuvalanmış işlevde kullanılmış."
-#: treelang/treetree.c:846
-#, fuzzy
+#: treelang/treetree.c:830
msgid "Register variable %qD used in nested function."
-msgstr "yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
+msgstr "Yazmaç değişkeni %qs yuvalanmış işlevde kullanılmış."
-#: treelang/treetree.c:852
-#, fuzzy
+#: treelang/treetree.c:836
msgid "Address of global register variable %qD requested."
-msgstr "`%s' genel yazmaç değişkeninin adresi istenmiş"
+msgstr "%qs genel yazmaç değişkeninin adresi istenmiş."
-#: treelang/treetree.c:857
-#, fuzzy
+#: treelang/treetree.c:841
msgid "Address of register variable %qD requested."
-msgstr "`%s' yazmaç değişkeninin adresi istendi"
+msgstr "%qs yazmaç değişkeninin adresi istendi."
#: options.c:943
msgid "Display this information"
@@ -20845,9 +20293,8 @@ msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value. If just <ma
msgstr "-D<makro>[=<değer>]\t<makro>, <değer> değeriyle tanımlanır. Değer verilmezse 1 kabul edilir"
#: options.c:973
-#, fuzzy
msgid "-F <dir>\tAdd <dir> to the end of the main framework include path "
-msgstr "-iwithprefixbefore DİZİN\tDİZİN ana başlık dosyaları arama yolunun sonuna eklenir"
+msgstr ""
#: options.c:976
msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
@@ -20906,9 +20353,8 @@ msgid "Warn about returning structures, unions or arrays"
msgstr "Dönen yapı, birleşim ve diziler hakkında uyarır"
#: options.c:1042
-#, fuzzy
msgid "Warn about possible aliasing of dummy arguments"
-msgstr "Olası eksik parantezler hakkında uyarır"
+msgstr ""
#: options.c:1048
msgid "Warn about casting functions to incompatible types"
@@ -20935,9 +20381,8 @@ msgid "Synonym for -Wcomment"
msgstr "-Wcomment ile aynı"
#: options.c:1066
-#, fuzzy
msgid "Warn about implicit conversion"
-msgstr "İşlevlerin dolaylı bildirimlerinde uyarır"
+msgstr "Dolaylı dönüşümlerde uyarır"
#: options.c:1069
msgid "Warn when all constructors and destructors are private"
@@ -20948,9 +20393,8 @@ msgid "Warn when a declaration is found after a statement"
msgstr "Bir deyimden sonra gelen bir bildirimde uyarır"
#: options.c:1075
-#, fuzzy
msgid "Warn if a deprecated compiler feature, class, method, or field is used"
-msgstr "Eski tip sınıf, yöntem ya da alan bulunduğunda uyarır"
+msgstr "Önerilmeyen özellik, sınıf, yöntem ya da alan bulunduğunda uyarır"
#: options.c:1078
msgid "Warn about uses of __attribute__((deprecated)) declarations"
@@ -20990,7 +20434,7 @@ msgstr "Eski tip boş deyimler bulunduğunda uyarır"
#: options.c:1105
msgid "Exit on the first error occurred"
-msgstr ""
+msgstr "İlk hatada çıkar"
#: options.c:1108
msgid "Warn if testing floating point numbers for equality"
@@ -21019,9 +20463,8 @@ msgid "Warn about strftime formats yielding 2-digit years"
msgstr "2 haneli yıllara yer veren strftime biçimlerde uyarır"
#: options.c:1126
-#, fuzzy
msgid "Warn about zero-length formats"
-msgstr "sıfır uzunluklu %s biçim dizgesi"
+msgstr "Sıfır uzunluklu biçimlerde uyarır"
#: options.c:1135
msgid "Warn about implicit function declarations"
@@ -21032,9 +20475,8 @@ msgid "Warn when a declaration does not specify a type"
msgstr "Bir bildirimde tür belirtilmemişse uyarır"
#: options.c:1141
-#, fuzzy
msgid "Warn about calls with implicit interface"
-msgstr "İşlevlerin dolaylı bildirimlerinde uyarır"
+msgstr ""
#: options.c:1144
msgid "Deprecated. This switch has no effect."
@@ -21061,9 +20503,8 @@ msgid "-Wlarger-than-<number>\tWarn if an object is larger than <number> bytes"
msgstr "-Wlarger-than-SAYI\tBir nesne SAYI bayttan büyükse uyarır"
#: options.c:1162
-#, fuzzy
msgid "Warn about truncated source lines"
-msgstr "Eskimiş derleyici özellikleri hakkında uyarmaz"
+msgstr ""
#: options.c:1165
msgid "Do not warn about using \"long long\" when -pedantic"
@@ -21082,9 +20523,8 @@ msgid "Warn about global functions without previous declarations"
msgstr "Önceden bildirilmemiş genel işlevler hakkında uyarır"
#: options.c:1177
-#, fuzzy
msgid "Warn about missing fields in struct initializers"
-msgstr "İlklendiricileri çevreleyen parantezler yoksa uyarır"
+msgstr ""
#: options.c:1180
msgid "Warn about functions which might be candidates for format attributes"
@@ -21093,9 +20533,8 @@ msgstr ""
" hakkında uyarır"
#: options.c:1183
-#, fuzzy
msgid "Warn about user-specified include directories that do not exist"
-msgstr "Ana dosyada kullanılmamış olan makro tanımlarında uyarır"
+msgstr ""
#: options.c:1186
msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
@@ -21126,11 +20565,8 @@ msgid "Warn about NULL being passed to argument slots marked as requiring non-NU
msgstr ""
#: options.c:1207
-#, fuzzy
msgid "Warn about usage of non-standard intrinsics"
msgstr ""
-"Fortran uzantılarının kullanımı hakkında uyarır\n"
-" (ÅŸimdilik hepsinde deÄŸil)"
#: options.c:1210
msgid "Warn if a C-style cast is used in a program"
@@ -21169,702 +20605,687 @@ msgid "Warn about function pointer arithmetic"
msgstr "İşlev gösterici aritmetiği hakkında uyarır"
#: options.c:1237
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr ""
+
+#: options.c:1240
msgid "Warn if inherited methods are unimplemented"
msgstr "Kalıt yöntemler oluşturulmamışsa uyarır"
-#: options.c:1240
+#: options.c:1243
msgid "Warn about multiple declarations of the same object"
msgstr "Aynı nesne birden fazla bildirilmişse uyarır"
-#: options.c:1243
+#: options.c:1246
msgid "Warn if modifiers are specified when not necessary"
msgstr "Değiştiriciler gereksizken belirtilmişse uyarır"
-#: options.c:1246
+#: options.c:1249
msgid "Warn when the compiler reorders code"
msgstr "Derleyici kodu yeniden sıralarken uyarır"
-#: options.c:1249
+#: options.c:1252
msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
msgstr "bir işlevin dönen türünün \"int\"e öntanımlılığında (C) ya da belirsiz dönüş türlerinde (C++) uyarır"
-#: options.c:1252
+#: options.c:1255
msgid "Warn if a selector has multiple methods"
msgstr "Bir seçici çoklu yöntemlere sahipse uyarır"
-#: options.c:1255
+#: options.c:1258
msgid "Warn about possible violations of sequence point rules"
msgstr ""
"Ardışık nokta kurallarının olası çelişkileri\n"
" hakkında uyarır"
-#: options.c:1258
+#: options.c:1261
msgid "Warn when one local variable shadows another"
msgstr "Bir yerel değişken bir diğerini gölgeliyorsa uyarır"
-#: options.c:1261
+#: options.c:1264
msgid "Warn about signed-unsigned comparisons"
msgstr "signed/unsigned karşılaştırmalarında uyarır"
-#: options.c:1264
+#: options.c:1267
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
"unsigned'dan signed'a yükseltmelerin aşırı\n"
" yüklemesinde uyarır"
-#: options.c:1267 options.c:1270
+#: options.c:1270 options.c:1273
msgid "Warn about code which might break strict aliasing rules"
msgstr "Adlandırma kurallarının değişmezliğini bozabilen kod varsa uyarır"
-#: options.c:1273
+#: options.c:1276
msgid "Warn about unprototyped function declarations"
msgstr "Prototipsiz işlev bildirimlerinde uyarır"
-#: options.c:1276
-#, fuzzy
+#: options.c:1279
msgid "Warn about \"suspicious\" constructs"
-msgstr "Kuşkulu \"main\" bildirimleri hakkında uyarır"
+msgstr ""
-#: options.c:1279
+#: options.c:1282
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
"Numaralı switch'lerde case eksikse veya\n"
" default yoksa uyarır"
-#: options.c:1282
+#: options.c:1285
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr "Numaralı switch'lerde \"default:\" yoksa uyarır"
-#: options.c:1285
+#: options.c:1288
msgid "Warn about all enumerated switches missing a specific case"
msgstr "Numaralı switch'lerde belli bir case eksikse uyarır"
-#: options.c:1288
+#: options.c:1291
msgid "Warn when synthesis behavior differs from Cfront"
msgstr "Sentezleme davranışı Cfront'dan farklıysa uyarır"
-#: options.c:1291
+#: options.c:1294
msgid "Do not suppress warnings from system headers"
msgstr "Sistem başlık dosyalarından gelen uyarılar engellenmez"
-#: options.c:1294
+#: options.c:1297
msgid "Warn about features not present in traditional C"
msgstr "Geleneksel C'de olmayan özelliklerde uyarır"
-#: options.c:1297
+#: options.c:1300
msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
msgstr "Yazılımın anlamını etkileyebilecek üçlü harfler saptanırsa uyarır"
-#: options.c:1300
-#, fuzzy
+#: options.c:1303
msgid "Warn about @selector()s without previously declared methods"
-msgstr "Önceden bildirilmemiş genel işlevler hakkında uyarır"
+msgstr ""
-#: options.c:1303
+#: options.c:1306
msgid "Warn if an undefined macro is used in an #if directive"
msgstr "#if yönergesinde tanımsız yapılmış makro kullanılmışsa uyarır"
-#: options.c:1306
-#, fuzzy
+#: options.c:1309
msgid "Warn about underflow of numerical constant expressions"
-msgstr "sabit ifadesinde taÅŸma"
+msgstr ""
-#: options.c:1309
+#: options.c:1312
msgid "Warn about uninitialized automatic variables"
msgstr "İlklendirilmemiş otomatik değişkenler hakkında uyarır"
-#: options.c:1312
+#: options.c:1315
msgid "Warn about unrecognized pragmas"
msgstr "tanımlanamayan #pragma'lar hakkında uyarır"
-#: options.c:1315
+#: options.c:1318
msgid "Warn about code that will never be executed"
msgstr "Hiç çalışmayacak kod hakkında uyarır"
-#: options.c:1318
+#: options.c:1321
msgid "Enable all -Wunused- warnings"
msgstr "-Wunused- uyarılarının tamamı etkinleştirilir"
-#: options.c:1321
+#: options.c:1324
msgid "Warn when a function is unused"
msgstr "Bir işlev kullanılmamışsa uyarır"
-#: options.c:1324 options.c:1327
+#: options.c:1327 options.c:1330
msgid "Warn when a label is unused"
msgstr "Bir etiket kullanılmamışsa uyarır"
-#: options.c:1330
+#: options.c:1333
msgid "Warn about macros defined in the main file that are not used"
msgstr "Ana dosyada kullanılmamış olan makro tanımlarında uyarır"
-#: options.c:1333
+#: options.c:1336
msgid "Warn when a function parameter is unused"
msgstr "Bir işlev parametresi kullanılmamışsa uyarır"
-#: options.c:1336
+#: options.c:1339
msgid "Warn when an expression value is unused"
msgstr "Bir ifade değeri kullanılmamışsa uyarır"
-#: options.c:1339
+#: options.c:1342
msgid "Warn when a variable is unused"
msgstr "Bir değişken kullanılmamışsa uyarır"
-#: options.c:1342
-#, fuzzy
+#: options.c:1345
msgid "Do not warn about using variadic macros when -pedantic"
-msgstr "-pedantic ile \"long long\" kullanımı hakkında uyarmaz"
+msgstr ""
-#: options.c:1345
+#: options.c:1348
msgid "Give strings the type \"array of char\""
msgstr "Dizgeler \"char dizileri\" türünde verilir"
-#: options.c:1348
+#: options.c:1351
msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
msgstr "-std=c89 karşılığı bir isim. GCCnin ileri sürümleri -std=c99 yerine eşanlamlıları ile gelebilecek "
-#: options.c:1351
+#: options.c:1354
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr "-aux-info DOSYA\tBildirim bilgileri DOSYAda gösterilir"
-#: options.c:1363
+#: options.c:1366
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr "-d[HARFLER]\tBelirli derleyici aşamalarının dökümlenmesi etkinleştirilir"
-#: options.c:1366
+#: options.c:1369
msgid "Set the default real and integer kinds to double precision"
msgstr ""
-#: options.c:1369
+#: options.c:1372
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr "-dumpbase DOSYA\tDerleyici aşamalarının dökümleneceği DOSYA"
-#: options.c:1372
+#: options.c:1375
msgid "--CLASSPATH\tDeprecated; use --classpath instead"
msgstr "--CLASSPATH\t eski kullanım; yerine --classpath kullanın"
-#: options.c:1375
-#, fuzzy
+#: options.c:1378
msgid "Generate position-independent code if possible (large mode)"
-msgstr "Mümkünse, konumdan bağımsız kod üretilir"
+msgstr "Mümkünse, konumdan bağımsız kod üretilir (büyük kip)"
-#: options.c:1378
-#, fuzzy
+#: options.c:1381
msgid "Generate position-independent code for executables if possible (large mode)"
-msgstr "Mümkünse, çalıştırılabilirler için konumdan bağımsız kod üretilir"
+msgstr "Mümkünse, çalıştırılabilirler için konumdan bağımsız kod üretilir (büyük kip)"
-#: options.c:1384
+#: options.c:1387
msgid "Enforce class member access control semantics"
msgstr "Sınıf üyesi erişim denetimi kurallarına uyulur"
-#: options.c:1387
+#: options.c:1390
msgid "Align the start of functions"
msgstr "İşlevlerin başlangıcı hizalanır"
-#: options.c:1393
+#: options.c:1396
msgid "Align labels which are only reached by jumping"
msgstr ""
"Sadece atlanarak ulaşılabilen hedefler bayt\n"
" sınırlarına ayarlanır"
-#: options.c:1399
+#: options.c:1402
msgid "Align all labels"
msgstr "Tüm dallanma hedefleri bayt sınırlarına ayarlanır"
-#: options.c:1405
+#: options.c:1408
msgid "Align the start of loops"
msgstr "Döngü başlangıçları bayt sınırlarına ayarlanır"
-#: options.c:1414
+#: options.c:1417
msgid "Change when template instances are emitted"
msgstr "Şablon gerçeklemeleri yayınlandığında değiştirilir"
-#: options.c:1417
+#: options.c:1420
msgid "Specify that arguments may alias each other and globals"
msgstr "Argümanların bir diğerinin ya da globallerin takma adı olabileceği varsayılır"
-#: options.c:1420
+#: options.c:1423
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"
-#: options.c:1423
+#: options.c:1426
msgid "Assume arguments alias neither each other nor globals"
msgstr "Argümanların bir diğerine ya da globallere takma ad olmadığı varsayılır"
-#: options.c:1426
+#: options.c:1429
msgid "Recognize the \"asm\" keyword"
msgstr "\"asm\" anahtar sözcüğü tanınır"
-#: options.c:1429
+#: options.c:1432
msgid "Permit the use of the assert keyword"
msgstr ""
-#: options.c:1438
+#: options.c:1441
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr "Birbirlerini etkilemeyenlerin tablosu her komutun tam sınırında oluşturulur"
-#: options.c:1441
+#: options.c:1444
msgid "--bootclasspath=<path>\tReplace system path"
msgstr "--bootclasspath=<yol>\tSistem dosya yolu ile deÄŸiÅŸtirilir"
-#: options.c:1444
+#: options.c:1447
msgid "Generate code to check bounds before indexing arrays"
msgstr ""
"Diziler indislenmeden önce sınrlarını\n"
" denetleyecek kod üretilir"
-#: options.c:1447
+#: options.c:1450
msgid "Replace add, compare, branch with branch on count register"
msgstr "Ekleme, karşılaştırma, dallanma sayaç yazmacı üzerinden dallanma ile değiştirilir"
-#: options.c:1450
+#: options.c:1453
msgid "Use profiling information for branch probabilities"
msgstr ""
"Dallanma olasılıkları için ayrımlama bilgileri\n"
" kullanılır"
-#: options.c:1453
+#: options.c:1456
msgid "Perform branch target load optimization before prologue / epilogue threading"
msgstr "Ön ve ard evreleme öncesi dal hedefli yük eniyilemesi uygulanır"
-#: options.c:1456
+#: options.c:1459
msgid "Perform branch target load optimization after prologue / epilogue threading"
msgstr "Ön ve ard evreleme sonrası dal hedefli yük eniyilemesi uygulanır"
-#: options.c:1459
+#: options.c:1462
msgid "Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: options.c:1462
+#: options.c:1465
msgid "Recognize built-in functions"
msgstr "Yerleşik işlevler tanınır"
-#: options.c:1468
+#: options.c:1471
msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr "-fcall-saved-YAZMAÇ\tYAZMAÇ işlevlere karşı korunmuş olarak imlenir"
-#: options.c:1471
+#: options.c:1474
msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr "-fcall-used-YAZMAÇ\tYAZMAÇ işlev çağrıları tarafından bozulmuş olarak imlenir"
-#: options.c:1474
+#: options.c:1477
msgid "Save registers around function calls"
msgstr "İşlev çağrıları civarındaki yazmaçlar kaydedilir"
-#: options.c:1477
+#: options.c:1480
msgid "Check the return value of new"
msgstr "new işlemiminin dönen değeri denetlenir"
-#: options.c:1480
-#, fuzzy
+#: options.c:1483
msgid "Generate checks for references to NULL"
-msgstr "Bir DLL için kod üretilir"
+msgstr ""
-#: options.c:1483
+#: options.c:1486
msgid "--classpath=<path>\tSet class path"
msgstr "--classpath=<yol>\tSınıf dosya yolunu ayarlar"
-#: options.c:1486
+#: options.c:1489
msgid "Do not put uninitialized globals in the common section"
msgstr "İlklendirilmemiş global'ler ortak bölüme konmaz"
-#: options.c:1492
+#: options.c:1495
msgid "Allow the arguments of the '?' operator to have different types"
msgstr "? işlecinin argümanlarında farklı türlere izin verilir"
-#: options.c:1495
+#: options.c:1498
msgid "Reduce the size of object files"
msgstr "Nesne dosyalarını küçültür"
-#: options.c:1498
+#: options.c:1501
msgid "Make string literals \"const char[]\" not \"char[]\""
msgstr "Dizge sabitler \"char[]\" değil \"const char[]\" yapılır"
-#: options.c:1501
+#: options.c:1504
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr "-fconst-string-class=İSİM\tSabit dizgeleri için İSİM sınıfı kullanılır"
-#: options.c:1504
+#: options.c:1507
msgid "Perform a register copy-propagation optimization pass"
msgstr "Yazmaç kopyalama girişimi eniyileme aşaması uygulanır"
-#: options.c:1507
+#: options.c:1510
msgid "Perform cross-jumping optimization"
msgstr "Çapraz atlama eniyilemesi uygulanır"
-#: options.c:1510
+#: options.c:1513
msgid "When running CSE, follow jumps to their targets"
msgstr ""
"Ortak alt ifade elemesi sırasında onların\n"
" hedeflerine dallanmalar izlenir"
-#: options.c:1513
+#: options.c:1516
msgid "When running CSE, follow conditional jumps"
msgstr ""
"Ortak alt ifade elemesi sırasında koşullu\n"
" dallanmalar izlenir"
-#: options.c:1516
+#: options.c:1519
+msgid "Omit range reduction step when performing complex division"
+msgstr ""
+
+#: options.c:1522
msgid "Place data items into their own section"
msgstr "Veri öğelerini kendi bölümlerine yerleştirir"
-#: options.c:1519
+#: options.c:1525
msgid "Inline member functions by default"
msgstr "Öntanımlı olarak üye işlevler satıriçidir"
-#: options.c:1522
+#: options.c:1528
msgid "Defer popping functions args from stack until later"
msgstr "Yığından işlev argümanlarının çekilmesini erteler"
-#: options.c:1525
+#: options.c:1531
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
"Dallanma komutlarının gecikme yuvalarını doldurmaya\n"
" çalışır"
-#: options.c:1528
+#: options.c:1534
msgid "Delete useless null pointer checks"
msgstr "Kullanışsız boş gösterici denetimlerini siler"
-#: options.c:1531
+#: options.c:1537
msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
msgstr "-fdiagnostics-show-location=[once|every-line]\tSatır sarmalaması başlangıcında, önek olarak, kaynak konumu bilgisinin ne sıklıkta gösterileceği belirtilir. once: bir kere, every-line: her satırda"
-#: options.c:1540
+#: options.c:1546
msgid "Allow dollar signs in entity names"
msgstr ""
-#: options.c:1543
+#: options.c:1549
msgid "Permit '$' as an identifier character"
msgstr "Bir belirteç karakteri olarak '$' kullanılabilir"
-#: options.c:1546
+#: options.c:1552
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr "-fdump-TÜR\tBelirtilen derleyici iç oluşumları bir dosyaya dökümlenir"
-#: options.c:1549
-#, fuzzy
+#: options.c:1555
msgid "Display the code tree after parsing."
-msgstr "Derleyicinin sürüm bilgileri gösterilir"
+msgstr ""
-#: options.c:1552
+#: options.c:1558
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"
-#: options.c:1558
+#: options.c:1564
msgid "Perform DWARF2 duplicate elimination"
msgstr "DWARF2 yinelenmiş elemesi uygulanır"
-#: options.c:1561 options.c:1564
+#: options.c:1567 options.c:1570
msgid "Perform unused type elimination in debug info"
msgstr "Hata ayıklama bilgilerinde kullanılmamış tür elemesi uygulanır"
-#: options.c:1567
+#: options.c:1573
msgid "Output a class file"
msgstr ""
-#: options.c:1570
+#: options.c:1576
msgid "Alias for -femit-class-file"
msgstr ""
-#: options.c:1579
+#: options.c:1585
msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
msgstr "--encoding=<kodlama>\tGirdi kodlaması seçilir (öntanımlısı yerelden gelir)"
-#: options.c:1582
+#: options.c:1588
msgid "Generate code to check exception specifications"
msgstr "Olağandışılık belirtimlerini denetleyecek kod üretilir"
-#: options.c:1588
+#: options.c:1594
msgid "Enable exception handling"
msgstr "Olağandışılıkların yakalanması etkinleştirilir"
-#: options.c:1591
+#: options.c:1597
msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
msgstr "-fexec-charset=KRK-KÜME\tTüm dizgeler ve karakter sabitleri KRK-KÜME karakter kümesine dönüştürülür"
-#: options.c:1594
+#: options.c:1600
msgid "Perform a number of minor, expensive optimizations"
msgstr "Masraflı eniyilemelerden birkaçını uygular"
-#: options.c:1597
+#: options.c:1603
msgid "--extdirs=<path>\tSet the extension directory path"
msgstr ""
-#: options.c:1606
+#: options.c:1612
msgid "Input file is a file with a list of filenames to compile"
msgstr ""
-#: options.c:1609
+#: options.c:1615
msgid "Assume no NaNs or infinities are generated"
msgstr "NaNların ya da sonsuzların üretilmediği varsayılır"
-#: options.c:1612
+#: options.c:1618
msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr "-ffixed-YAZMAÇ\tDerleyiciye YAZMAÇ yok denir"
-#: options.c:1615
-#, fuzzy
+#: options.c:1621
msgid "Assume that the source file is fixed form"
-msgstr "Göstericilerin hizalı olmadıkları varsayılır"
+msgstr ""
-#: options.c:1618
+#: options.c:1624
msgid "-ffixed-line-length-<n>\t\tUse n as character line width in fixed mode"
msgstr ""
-#: options.c:1621
+#: options.c:1627
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: options.c:1624
+#: options.c:1630
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: options.c:1627
+#: options.c:1633
msgid "Scope of for-init-statement variables is local to the loop"
msgstr "For döngüsü başlatma satırındaki değişkenlerin etki alanı döngüye yereldir"
-#: options.c:1630
+#: options.c:1636
msgid "Copy memory address constants into registers before use"
msgstr "Kullanmadan önce bellek adres sabitlerini yazmaçlara kopyalar"
-#: options.c:1633
+#: options.c:1639
msgid "Always check for non gcj generated classes archives"
msgstr ""
"gcj üretimi olmayan sınıfların arşivleri daima\n"
" denetlenir"
-#: options.c:1636
+#: options.c:1642
msgid "Copy memory operands into registers before use"
msgstr "Kullanmadan önce bellek terimlerini yazmaçlara kopyalar"
-#: options.c:1639
+#: options.c:1645
msgid "Assume that the source file is free form"
msgstr ""
-#: options.c:1642
+#: options.c:1648
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr "Standart kitaplıkların ve \"main\" işlevinin varolduğu varsayılır"
-#: options.c:1645
+#: options.c:1651
msgid "Allow function addresses to be held in registers"
msgstr "Yazmaçlarda tutulan işlev adreslerine izin verilir"
-#: options.c:1648
+#: options.c:1654
msgid "Place each function into its own section"
msgstr "Her işlev kendi bölümüne yerleştirilir"
-#: options.c:1651
+#: options.c:1657
msgid "Perform global common subexpression elimination"
msgstr "Global ortak alt ifade elemesi uygulanır"
-#: options.c:1654
-#, fuzzy
+#: options.c:1660
msgid "Perform global common subexpression elimination after register allocation"
-msgstr "Global ortak alt ifade elemesi uygulanır"
+msgstr "Global ortak alt ifade elemesi yazmaç ayırmasından sonra uygulanır"
-#: options.c:1657
-#, fuzzy
+#: options.c:1663
msgid "Perform redundant load after store elimination in global common subexpression"
-msgstr "Genel ortak alt ifade elemesinde saklama elemesinden sonra gereğinden fazla yük uygulanır"
+msgstr "Genel ortak alt ifade içindeki saklama elemesinden sonra gereğinden fazla yük uygulanır"
-#: options.c:1660
+#: options.c:1666
msgid "Perform enhanced load motion during global common subexpression elimination"
msgstr "Global ortak alt ifade elemesi sırasında genişletilmiş yük hareketi uygulanır"
-#: options.c:1663
+#: options.c:1669
msgid "Perform store motion after global common subexpression elimination"
msgstr "Global ortak alt ifade elemesinden sonra saklama hareketi uygulanır"
-#: options.c:1666
+#: options.c:1672
msgid "Recognize GNU-defined keywords"
msgstr "GNU tanımlı anahtar sözcükler tanınır"
-#: options.c:1669
+#: options.c:1675
msgid "Generate code for GNU runtime environment"
msgstr "Kod GNU çalışma ortamı için üretilir"
-#: options.c:1672
+#: options.c:1678
msgid "Enable guessing of branch probabilities"
msgstr "Dallanma olasılıklarının tahmini etkinleştirilir"
-#: options.c:1681
+#: options.c:1687
msgid "Assume the runtime uses a hash table to map an object to its synchronization structure"
msgstr ""
-#: options.c:1687
+#: options.c:1693
msgid "Assume normal C execution environment"
msgstr "Normal C çalıştırma ortamı var sayılır"
-#: options.c:1690
+#: options.c:1696
msgid "Enable support for huge objects"
msgstr "Dev nesneler için destek etkinleştirilir"
-#: options.c:1693
+#: options.c:1699
msgid "Process #ident directives"
msgstr "#ident yönergeleri işlenir"
-#: options.c:1696
+#: options.c:1702
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
"Dallanmasız karşılıklara koşullu atlama dönüşümü\n"
" uygulanır"
-#: options.c:1699
+#: options.c:1705
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr ""
"Koşullu çalıştırmaya koşullu atlama dönüşümü\n"
" uygulanır"
-#: options.c:1702
+#: options.c:1708
msgid "Export functions even if they can be inlined"
msgstr "Özümlenebilir olsalar bile işlevler ihracedilir"
-#: options.c:1705
+#: options.c:1711
msgid "Emit implicit instantiations of inline templates"
msgstr "Satıriçi şablonların doğrudan gerçeklenmesi sağlanır"
-#: options.c:1708
+#: options.c:1714
msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements"
msgstr ""
-#: options.c:1711
+#: options.c:1717
msgid "Emit implicit instantiations of templates"
msgstr "Şablonlarının doğrudan gerçeklenmesi sağlanır"
-#: options.c:1714
+#: options.c:1720
msgid "Use offset tables for virtual method calls"
msgstr ""
"Sanal yöntem çağrıları için adresleme tabloları\n"
" kullanılır"
-#: options.c:1717
+#: options.c:1723
msgid "Do not generate .size directives"
msgstr ".size yönergeleri üretilmez"
-#: options.c:1720
+#: options.c:1726
msgid "Pay attention to the \"inline\" keyword"
msgstr "\"inline\" anahtar sözcüğüne dikkat edilir"
-#: options.c:1729
+#: options.c:1735
msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr "-finline-limit=SAYI\tSatıriçi kod içeren işlevlerin uzunluğu SAYI ile sınırlanır"
-#: options.c:1732
+#: options.c:1738
msgid "-finput-charset=<cset> Specify the default character set for source files."
msgstr "-finput-charset=KRK-KÜME Kaynak dosyaları için öntanımlı karakter kümesi."
-#: options.c:1735
+#: options.c:1741
msgid "Instrument function entry and exit with profiling calls"
msgstr "İşlev giriş ve çıkışı ayrımlama çağrılarıyla yapılır"
-#: options.c:1738
+#: options.c:1744
msgid "Optimize induction variables on trees"
msgstr ""
-#: options.c:1741
+#: options.c:1747
msgid "Assume native functions are implemented using JNI"
msgstr "Yerli işlevlerin JNI kullanarak oluştuğu varsayılır"
-#: options.c:1744
+#: options.c:1750
msgid "Generate code for functions even if they are fully inlined"
msgstr "Tamamı satıriçi kod içerse bile işlevler için kod üretilir"
-#: options.c:1747
+#: options.c:1753
msgid "Emit static const variables even if they are not used"
msgstr ""
"Kullanılmamış bile olsa statik sabit değişkenler\n"
" içerilir"
-#: options.c:1753
+#: options.c:1759
msgid "Give external symbols a leading underscore"
msgstr "Alt çizgi ile başlayan dış semboller verilir"
-#: options.c:1756
+#: options.c:1762
msgid "Perform loop optimizations"
msgstr "Döngü eniyilemeleri uygulanır"
-#: options.c:1759
-#, fuzzy
+#: options.c:1765
msgid "Perform loop optimizations using the new loop optimizer"
-msgstr "Döngü eniyilemeleri uygulanır"
+msgstr "Döngü eniyilemeleri yeni döngü eniyileyici kullanılarak uygulanır"
-#: options.c:1762
+#: options.c:1768
msgid "Set errno after built-in math functions"
msgstr ""
"YerleÅŸik matematik iÅŸlevlerinden sonra ERRNO\n"
" kullanılır"
-#: options.c:1765
+#: options.c:1771
msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
msgstr ""
-#: options.c:1768
+#: options.c:1774
msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack"
msgstr ""
-#: options.c:1771
+#: options.c:1777
msgid "Report on permanent memory allocation"
msgstr "Ayrılan kalıcı bellek miktarı raporlanır"
-#: options.c:1774
+#: options.c:1780
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"
-#: options.c:1777
+#: options.c:1783
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
"Özdeş sabitler derleme birimlerine karşın\n"
" katıştırılmaya çalışılır"
-#: options.c:1780
+#: options.c:1786
msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
msgstr "-fmessage-length=SAYI\tTanı iletilerinin uzunluğu her satırda SAYI karakterle sınırlanır. 0 satır sarmalamayı engeller"
-#: options.c:1783
+#: options.c:1789
msgid "Set default accessibility of module entities to PRIVATE"
msgstr ""
-#: options.c:1786
+#: options.c:1792
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: options.c:1789
-#, fuzzy
+#: options.c:1795
msgid "Move loop invariant computations out of loops"
msgstr ""
-"Döngülerdeki döngü dışına taşınacak olan değişimsiz\n"
-" hesaplama etkinleÅŸtirir"
-#: options.c:1792
+#: options.c:1798
msgid "Don't warn about uses of Microsoft extensions"
msgstr "Microsoft oluşumlarının kullanımı hakkındaki uyarılar verilmez"
-#: options.c:1795
+#: options.c:1801
msgid "Add mudflap bounds-checking instrumentation for single-threaded program."
msgstr ""
-#: options.c:1798
+#: options.c:1804
msgid "Ignore read operations when inserting mudflap instrumentation."
msgstr ""
-#: options.c:1801
+#: options.c:1807
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program."
msgstr ""
-#: options.c:1810
-msgid "Use graph-coloring register allocation"
-msgstr "Çizim renklendiren yazmaç tahsisi kullanılır"
-
-#: options.c:1813
-msgid "Enable the new bytecode verifier"
-msgstr ""
-
#: options.c:1816
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr "Kod NeXT (Apple Mac OS X) çalışma ortamı için üretilir"
@@ -21886,9 +21307,8 @@ msgid "Enable Objective-C exception and synchronization syntax"
msgstr "Objective-C olağandışılık ve eşzamanlama sözdizimi etkinleştirilir"
#: options.c:1837
-#, fuzzy
msgid "Enable Objective-C setjmp exception handling runtime"
-msgstr "Objective-C olağandışılık ve eşzamanlama sözdizimi etkinleştirilir"
+msgstr ""
#: options.c:1840
msgid "When possible do not generate stack frames"
@@ -21951,14 +21371,12 @@ msgid "Downgrade conformance errors to warnings"
msgstr "Uyumluluk hatalarını uyarılara indirger"
#: options.c:1891
-#, fuzzy
msgid "Generate position-independent code if possible (small mode)"
-msgstr "Mümkünse, konumdan bağımsız kod üretilir"
+msgstr "Mümkünse, konumdan bağımsız kod üretilir (küçük kipi)"
#: options.c:1894
-#, fuzzy
msgid "Generate position-independent code for executables if possible (small mode)"
-msgstr "Mümkünse, çalıştırılabilirler için konumdan bağımsız kod üretilir"
+msgstr "Mümkünse, çalıştırılabilirler için konumdan bağımsız kod üretilir (küçük kipi)"
#: options.c:1897
msgid "Generate prefetch instructions, if available, for arrays in loops"
@@ -22013,11 +21431,8 @@ msgstr ""
" yeniden sıralar"
#: options.c:1936
-#, fuzzy
msgid "Reorder basic blocks and partition into hot and cold sections"
msgstr ""
-"Kod yerleşimini iyileştirecek temel blokları\n"
-" yeniden sıralar"
#: options.c:1939
msgid "Reorder functions to improve code placement"
@@ -22234,9 +21649,8 @@ msgid "Use tree-ssa based implementation of profiling"
msgstr ""
#: options.c:2110
-#, fuzzy
msgid "Enable SSA-CCP optimization on trees"
-msgstr "SSA eniyilemesi etkinleÅŸtirilir"
+msgstr "Ağaçlarda SSA-CCP eniyilemesi etkinleştirilir"
#: options.c:2113
msgid "Enable loop header copying on trees"
@@ -22251,56 +21665,44 @@ msgid "Replace SSA temporaries with better names in copies."
msgstr ""
#: options.c:2122
-#, fuzzy
msgid "Enable SSA dead code elimination optimization on trees"
-msgstr "Girgin SSA ölü kod elemesi etkinleştirilir"
+msgstr ""
#: options.c:2125
-#, fuzzy
msgid "Enable dominator optimizations"
-msgstr "Ä°lintileyici eniyilemesi etkinleÅŸtirilir"
+msgstr ""
#: options.c:2128
-#, fuzzy
msgid "Enable dead store elimination"
-msgstr "Girgin SSA ölü kod elemesi etkinleştirilir"
+msgstr ""
#: options.c:2131
msgid "Enable Full Redundancy Elimination (FRE) on trees"
msgstr ""
#: options.c:2134
-#, fuzzy
msgid "Enable loop invariant motion on trees"
msgstr ""
-"Döngülerdeki döngü dışına taşınacak olan değişimsiz\n"
-" hesaplama etkinleÅŸtirir"
#: options.c:2137
-#, fuzzy
msgid "Create canonical induction variables in loops"
msgstr ""
-"Tüm döngülerdeki genel başlatma değişkenlerinin\n"
-" gücünü azaltır"
#: options.c:2140
-#, fuzzy
msgid "Enable linear loop transforms on trees"
-msgstr "Ä°lintileyici eniyilemesi etkinleÅŸtirilir"
+msgstr ""
#: options.c:2143
-#, fuzzy
msgid "Enable loop optimizations on tree level"
-msgstr "SSA eniyilemesi etkinleÅŸtirilir"
+msgstr "Ağaç seviyesinde döngü eniyilemeleri etkinleştirilir"
#: options.c:2146
msgid "Perform live range splitting during the SSA->normal pass."
msgstr ""
#: options.c:2149
-#, fuzzy
msgid "Enable SSA-PRE optimization on trees"
-msgstr "SSA eniyilemesi etkinleÅŸtirilir"
+msgstr "Ağaçlarda SSA-PRE eniyilemesi etkinleştirilir"
#: options.c:2152
msgid "Perform scalar replacement of aggregates"
@@ -22311,373 +21713,368 @@ msgid "Replace temporary expressions in the SSA->normal pass"
msgstr ""
#: options.c:2158
-#, fuzzy
msgid "Enable loop vectorization on trees"
-msgstr "Ä°lintileyici eniyilemesi etkinleÅŸtirilir"
+msgstr ""
#: options.c:2161
-#, fuzzy
-msgid "Append underscores to externally visible names"
-msgstr "external'lara altçizgiler eklenir"
+msgid "-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer"
+msgstr ""
#: options.c:2164
+msgid "Append underscores to externally visible names"
+msgstr ""
+
+#: options.c:2167
msgid "Compile whole compilation unit at a time"
msgstr "Derleme biriminin tamamı bir defada derlenir"
-#: options.c:2167
+#: options.c:2170
msgid "Perform loop unrolling for all loops"
msgstr "Tüm döngülere ters döngüleme uygulanır"
-#: options.c:2170
+#: options.c:2173
msgid "Perform loop unrolling when iteration count is known"
msgstr "Yineleme sayısı bilindiğinde ters döngüleme uygulanır"
-#: options.c:2173
+#: options.c:2176
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr "IEEE veya ISO standartlarını bozabilen matematiksel eniyilemelere izin verilir"
-#: options.c:2176
+#: options.c:2179
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr "\"signed\" veya \"unsigned\" verilmediğinde bit alanı unsigned yapılır"
-#: options.c:2179
+#: options.c:2182
msgid "Make \"char\" unsigned by default"
msgstr "Öntanımlı olarak \"char\" unsigned yapılır"
-#: options.c:2182
+#: options.c:2185
msgid "Perform loop unswitching"
msgstr "Döngü anahtarlamaması uygulanır"
-#: options.c:2185
+#: options.c:2188
msgid "Just generate unwind tables for exception handling"
msgstr ""
"Olağandışılıkların yakalanması için birbirlerini\n"
" etkilemeyenlerin tablosu oluÅŸturulur"
-#: options.c:2188
-#, fuzzy
+#: options.c:2191
msgid "Generate code for the Boehm GC"
-msgstr "Kod C300 MİB için üretilir"
+msgstr "Kod Boehm GC için üretilir"
-#: options.c:2191
+#: options.c:2194
msgid "Use __cxa_atexit to register destructors"
msgstr "Yazmaç yıkıcılara __cxa_atexit kullanılır"
-#: options.c:2194
+#: options.c:2197
msgid "Call a library routine to do integer divisions"
msgstr ""
-#: options.c:2197
-#, fuzzy
+#: options.c:2200
msgid "Perform variable tracking"
-msgstr "Kuyruk çağrı eniyilemesi uygulanır"
+msgstr ""
-#: options.c:2200
+#: options.c:2203
msgid "Apply variable expansion when loops are unrolled."
msgstr ""
-#: options.c:2203
+#: options.c:2206
msgid "Add extra commentary to assembler output"
msgstr "Çevirici çıktısına fazladan açıklama ekler"
-#: options.c:2206
+#: options.c:2209
msgid "Marks all inlined methods as having hidden visibility"
msgstr ""
-#: options.c:2209
+#: options.c:2212
msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility"
msgstr ""
-#: options.c:2212
+#: options.c:2215
msgid "Use expression value profiles in optimizations"
msgstr "Eniyilemelerde ifade değeri ayrımlaması kullanılır"
-#: options.c:2215
+#: options.c:2218
msgid "Discard unused virtual functions"
msgstr "Kullanılmayan sanal işlevler iptal edilir"
-#: options.c:2218
+#: options.c:2221
msgid "Implement vtables using thunks"
msgstr "İşlev gösterici tablosu aşılarla oluşturulur"
-#: options.c:2221
+#: options.c:2224
msgid "Emit common-like symbols as weak symbols"
msgstr "Benzer semboller zayıf semboller olarak ele alınır"
-#: options.c:2224
+#: options.c:2227
msgid "Construct webs and split unrelated uses of single variable"
msgstr "Izgara oluşturur ve tek bir değişkenin ilgisiz kullanımlarını ayırır"
-#: options.c:2227
+#: options.c:2230
msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
msgstr "-fwide-exec-charset=KRK-KÜMESİ\tTüm geniş karakterli dizgeler ve sabitler KRK-KÜMESİne dönüştürülür"
-#: options.c:2230
+#: options.c:2233
msgid "Generate a #line directive pointing at the current working directory"
msgstr "O anki çalışma dizinini betimleyen bir #line yönergesi üretilir"
-#: options.c:2233
+#: options.c:2236
msgid "Assume signed arithmetic overflow wraps around"
msgstr "İşaretli aritmetik taşmaların etrafından dolanıldığı varsayılır"
-#: options.c:2236
+#: options.c:2239
msgid "Emit cross referencing information"
msgstr "Çapraz referans bilgisi yayınlanır"
-#: options.c:2239
+#: options.c:2242
msgid "Put zero initialized data in the bss section"
msgstr "bss bölümüne sıfır ilklendirmeli veri yerleştirilir"
-#: options.c:2242
+#: options.c:2245
msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr "Zero-Link kipinde kullanmak için çılgın sınıf araması (via objc_getClass()) üretilir"
-#: options.c:2245
+#: options.c:2248
msgid "Generate debug information in default format"
msgstr "Öntanımlı biçimde hata ayıklama bilgisi üretir"
-#: options.c:2248
+#: options.c:2251
msgid "Generate debug information in COFF format"
msgstr "COFF biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2251
+#: options.c:2254
msgid "Generate debug information in DWARF v2 format"
msgstr "DWARF v2 biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2254
+#: options.c:2257
msgid "Dump declarations to a .decl file"
msgstr "Bildirimler bir .decl dosyasına dökümlenir"
-#: options.c:2257
+#: options.c:2260
msgid "Generate debug information in default extended format"
msgstr "Öntanımlı gelişmiş biçimde hata ayıklama bilgisi üretir"
-#: options.c:2260
+#: options.c:2263
msgid "Generate debug information in STABS format"
msgstr "STABS biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2263
+#: options.c:2266
msgid "Generate debug information in extended STABS format"
msgstr "Gelişmiş STABS biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2266
+#: options.c:2269
msgid "Generate debug information in VMS format"
msgstr "VMS biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2269
+#: options.c:2272
msgid "Generate debug information in XCOFF format"
msgstr "XCOFF biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2272
+#: options.c:2275
msgid "Generate debug information in extended XCOFF format"
msgstr "Gelişmiş XCOFF biçiminde hata ayıklama bilgisi üretir"
-#: options.c:2275
+#: options.c:2278
msgid "Set the default integer kind to double precision"
msgstr ""
-#: options.c:2278
+#: options.c:2281
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr "-idirafter DİZİN\tDİZİN sistem başlık dosyaları arama yolunun sonuna eklenir"
-#: options.c:2281
+#: options.c:2284
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr "-imacros DOSYA\tDOSYAdaki makro tanımları kabul edilir"
-#: options.c:2284
+#: options.c:2287
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr "-include DOSYA\tDOSYAnın içeriği diğer dosyaların başlangıcına eklenir"
-#: options.c:2287
+#: options.c:2290
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr "-iprefix YOL\tYOL sonraki iki seçenek için önek olur"
-#: options.c:2290
-#, fuzzy
+#: options.c:2293
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
-msgstr "-idirafter DİZİN\tDİZİN sistem başlık dosyaları arama yolunun sonuna eklenir"
+msgstr ""
-#: options.c:2293
+#: options.c:2296
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr "-isysroot DİZİN\tDİZİN sistemin kök dizini kabul edilir"
-#: options.c:2296
+#: options.c:2299
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr "-isystem DİZİN\tDİZİN sistem başlık dosyaları arama yolunun başına eklenir"
-#: options.c:2299
+#: options.c:2302
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr "-iwithprefix DİZİN\tDİZİN sistem başlık dosyaları arama yolunun sonuna eklenir"
-#: options.c:2302
+#: options.c:2305
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr "-iwithprefixbefore DİZİN\tDİZİN ana başlık dosyaları arama yolunun sonuna eklenir"
-#: options.c:2314
+#: options.c:2317
msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
msgstr "Standart sistem başlık dosyaları dizinleri aranmaz (-isystem ile belirtilenler hariç) "
-#: options.c:2317
+#: options.c:2320
msgid "Do not search standard system include directories for C++"
msgstr "C++ için standart sistem başlık dosyaları dizinleri aranmaz"
-#: options.c:2320
+#: options.c:2323
msgid "-o <file>\tPlace output into <file>"
msgstr "-o DOSYA\tÇıktı DOSYAya yazılır"
-#: options.c:2323
+#: options.c:2326
msgid "Enable function profiling"
msgstr "İşlev ayrımlama etkinleştirilir"
-#: options.c:2326
+#: options.c:2329
msgid "Issue warnings needed for strict compliance to the standard"
msgstr "Standarda tam uyum için gereken uyarılar üretilir"
-#: options.c:2329
+#: options.c:2332
msgid "Like -pedantic but issue them as errors"
msgstr "-pedantic gibidir ancak uyarılar hata olarak ele alınır"
-#: options.c:2332
+#: options.c:2335
msgid "Generate C header of platform-specific features"
msgstr "Platforma özel niteliklerin C başlıklarını üretir"
-#: options.c:2335
+#: options.c:2338
msgid "-qkind=<n>\tSet the kind for a real with the 'q' exponent to 'n'"
msgstr ""
-#: options.c:2338
+#: options.c:2341
msgid "Do not display functions compiled or elapsed time"
msgstr "Derlenen işlevler ve geçen zaman gösterilmez"
-#: options.c:2341
+#: options.c:2344
msgid "Set the default real kind to double precision"
msgstr ""
-#: options.c:2344
+#: options.c:2347
msgid "Remap file names when including files"
msgstr "Dosyalar içerildiğinde dosya isimleri yeniden eşlenir"
-#: options.c:2347
+#: options.c:2350
msgid "Conform to the ISO 1998 C++ standard"
msgstr "ISO 1998 C++ standardı uygulanır"
-#: options.c:2350
+#: options.c:2353
msgid "Conform to the ISO 1990 C standard"
msgstr "ISO 1990 C standardı uygulanır"
-#: options.c:2353
+#: options.c:2356
msgid "Conform to the ISO 1999 C standard"
msgstr "ISO 1999 C standardı uygulanır"
-#: options.c:2356 options.c:2386 options.c:2389
+#: options.c:2359 options.c:2389 options.c:2392
msgid "Deprecated in favor of -std=c99"
msgstr "-std=c99 eskidi"
-#: options.c:2359
-#, fuzzy
+#: options.c:2362
msgid "Conform to the ISO Fortran 2003 standard."
-msgstr "ISO 1999 C standardı uygulanır"
+msgstr ""
-#: options.c:2362
-#, fuzzy
+#: options.c:2365
msgid "Conform to the ISO Fortran 95 standard."
-msgstr "ISO 1999 C standardı uygulanır"
+msgstr ""
-#: options.c:2365
+#: options.c:2368
msgid "Conform nothing in particular."
msgstr ""
-#: options.c:2368
+#: options.c:2371
msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
msgstr "ISO 1998 C++ standardı GNU oluşumlarıyla uygulanır"
-#: options.c:2371
+#: options.c:2374
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr "ISO 1990 C standardı GNU oluşumlarıyla uygulanır"
-#: options.c:2374
+#: options.c:2377
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr "ISO 1999 C standardı GNU oluşumlarıyla uygulanır"
-#: options.c:2377
+#: options.c:2380
msgid "Deprecated in favor of -std=gnu99"
msgstr "-std=gnu99 eskidi"
-#: options.c:2380
+#: options.c:2383
msgid "Deprecated in favor of -std=c89"
msgstr "-std=c89 eskidi"
-#: options.c:2383
+#: options.c:2386
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr "ISO 1990 C standardı 1994 düzeltmesiyle uygulanır"
-#: options.c:2392
+#: options.c:2395
msgid "Enable traditional preprocessing"
msgstr "Geleneksel önişlemi etkinleştirir"
-#: options.c:2395
+#: options.c:2398
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr "-trigraphs\tISO C üçlü harfleri desteklenir"
-#: options.c:2398
+#: options.c:2401
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr "Sisteme özel ve GCCye özel makrolar önceden tanımlı yapılmaz"
-#: options.c:2401
+#: options.c:2404
msgid "Enable verbose output"
msgstr "Ayrıntılı bilgi verilir"
-#: options.c:2407
+#: options.c:2410
msgid "Suppress warnings"
msgstr "Uyarılar engellenir"
-#: config/mips/mips.h:1120 config/arc/arc.h:63
+#: config/mips/mips.h:1124 config/arc/arc.h:63
msgid "may not use both -EB and -EL"
msgstr "-EB ve -EL birlikte kullanılamayabilir"
#: config/sh/sh.h:685
-#, fuzzy
msgid "SH2a does not support little-endian"
-msgstr "multilib desteklenmiyor"
+msgstr ""
#: config/mips/r3900.h:35
msgid "-mhard-float not supported"
msgstr "-mhard-float desteklenmiyor"
#: config/mips/r3900.h:37
-#, fuzzy
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr "-msingle-float ve -msoft-float birlikte belirtilemez."
-#: config/darwin.h:248
+#: config/darwin.h:251
msgid "-current_version only allowed with -dynamiclib"
msgstr "-current_version sadece -dynamiclib ile kullanılabilir"
-#: config/darwin.h:250
+#: config/darwin.h:253
msgid "-install_name only allowed with -dynamiclib"
msgstr "-install_name sadece -dynamiclib ile kullanılabilir"
-#: config/darwin.h:255
+#: config/darwin.h:258
msgid "-bundle not allowed with -dynamiclib"
msgstr "-bundle ile -dynamiclib birarada izin verilmez"
-#: config/darwin.h:256
+#: config/darwin.h:259
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr "-bundle_loader ile -dynamiclib birarada izin verilmez"
-#: config/darwin.h:257
+#: config/darwin.h:260
msgid "-client_name not allowed with -dynamiclib"
msgstr "-client_name ile -dynamiclib birarada izin verilmez"
-#: config/darwin.h:262
+#: config/darwin.h:265
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr "-force_flat_namespace ile -dynamiclib birarada izin verilmez"
-#: config/darwin.h:264
+#: config/darwin.h:267
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr "-keep_private_externs ile -dynamiclib birarada izin verilmez"
-#: config/darwin.h:265
+#: config/darwin.h:268
msgid "-private_bundle not allowed with -dynamiclib"
msgstr "-private_bundle ile -dynamiclib birarada izin verilmez"
@@ -22705,29 +22102,20 @@ msgstr "-femit-class-file -fsyntax-only ile birlikte kullanılmalı"
msgid "shared and mdll are not compatible"
msgstr "shared ve mdll uyumsuz"
+#: config/i386/nwld.h:34
+msgid "Static linking is not supported.\n"
+msgstr "DuraÄŸan ilintileme desteklenmiyor.\n"
+
#: config/sparc/linux64.h:211 config/sparc/linux64.h:222
-#: config/sparc/netbsd-elf.h:136 config/sparc/netbsd-elf.h:155
+#: config/sparc/netbsd-elf.h:126 config/sparc/netbsd-elf.h:145
#: config/sparc/sol2-bi.h:195 config/sparc/sol2-bi.h:205
msgid "may not use both -m32 and -m64"
msgstr "-m32 ve -m64 birlikte kullanılamaz"
-#: treelang/lang-specs.h:52
-msgid "-pg or -p and -fomit-frame-pointer are incompatible"
-msgstr "-pg veya -p ve -fomit-frame-pointer uyumsuz"
-
-#: java/jvspec.c:80 gcc.c:796 ada/lang-specs.h:34
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg ve -fomit-frame-pointer 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."
-#: config/i386/nwld.h:34
-#, fuzzy
-msgid "Static linking is not supported.\n"
-msgstr "yığın sınırlama ifadesi desteklenmiyor"
-
#: config/vax/vax.h:50 config/vax/vax.h:51
msgid "profiling not supported with -mg\n"
msgstr "-mg ile ayrımsama desteklenmiyor\n"
@@ -22752,31 +22140,39 @@ msgstr "mno-cygwin ve mno-win32 uyumsuz"
msgid "the m210 does not have little endian support"
msgstr "m210 küçük ilkli bayt sıralamasının desteklemez"
-#: gcc.c:769
+#: gcc.c:763
msgid "GCC does not support -C or -CC without -E"
msgstr "GCC -E kullanılmaksızın -C veya -CC desteklemez"
-#: gcc.c:963
+#: gcc.c:790 java/jvspec.c:80 ada/lang-specs.h:34
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg ve -fomit-frame-pointer uyumsuz"
+
+#: gcc.c:957
msgid "-E required when input is from standard input"
msgstr "Standart girdiden girdi alınırken -E gereklidir"
#: config/lynx.h:71
msgid "Cannot use mthreads and mlegacy-threads together."
-msgstr ""
+msgstr "mthreads ve mlegacy-threads birlikte kullanılamaz."
#: config/lynx.h:96
msgid "Cannot use mshared and static together."
-msgstr ""
+msgstr "mshared ve static birlikte kullanılamaz."
#: config/sparc/sol2-bi.h:167 config/sparc/sol2-bi.h:172
#: config/sparc/sol2-gld-bi.h:17 config/sparc/sol2-gld-bi.h:22
msgid "does not support multilib"
msgstr "multilib desteklenmiyor"
-#: config/rs6000/darwin.h:132
+#: config/rs6000/darwin.h:130
msgid " conflicting code gen style switches are used"
msgstr " çelişen code gen tarzı switch'ler kullanılmış"
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg veya -p ve -fomit-frame-pointer uyumsuz"
+
#: ada/lang-specs.h:35
msgid "-c or -S required for Ada"
msgstr "Ada için -c ya da -S gerekli"
@@ -22949,6 +22345,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "%s format, %s arg (arg %d)"
#~ msgstr "%s biçimi için %s argüman (%d. arg)"
+#~ msgid "%Jfunction '%F' can never be inlined because it has pending sizes"
+#~ msgstr "%J '%F' işlevi belirsiz boyutlar içerdiğinden satıriçine alınamaz"
+
+#~ msgid "%Jnested function '%F' can never be inlined because it has possibly saved pending sizes"
+#~ msgstr "%J '%F' iç işlevi kayıtlı belirsiz boyutlar içermesi olasılığından dolayı satıriçine alınamaz"
+
#~ msgid "YYDEBUG not defined"
#~ msgstr "YYDEBUG tanımlı değil"
@@ -23045,6 +22447,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "initialization"
#~ msgstr "ilklendirme"
+#~ msgid "initialization designators may not nest"
+#~ msgstr "ilklendirme tasarlayıcılar yuvalanamayabilir"
+
#~ msgid "asm template is not a string constant"
#~ msgstr "asm ÅŸablon bir dizge sabit deÄŸil"
@@ -23429,9 +22834,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "#pragma %s %s is already registered"
#~ msgstr "#pragma %s %s zaten kayıtlı"
-#~ msgid "#pragma %s is already registered"
-#~ msgstr "#pragma %s zaten kayıtlı"
-
#~ msgid "#pragma once in main file"
#~ msgstr "main dosyasında '#pragma once'"
@@ -23450,9 +22852,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "current file is older than %s"
#~ msgstr "mevcut dosya %s den daha eski"
-#~ msgid "_Pragma takes a parenthesized string literal"
-#~ msgstr "_Pragma bir parantezli dizge sabiti alır"
-
#~ msgid "#else without #if"
#~ msgstr "#if siz #else"
@@ -23570,6 +22969,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "syntax error in macro parameter list"
#~ msgstr "makro parametre listesinde sözdizimi hatası"
+#~ 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"
+
+#~ 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"
+
#~ msgid "function using short complex types cannot be inline"
#~ msgstr "short karmaşık türler kullanılan işlevler özümlenemez"
@@ -23666,6 +23071,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "%s: internal abort\n"
#~ msgstr "%s: dahili çıkış\n"
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "Bir renklendirme yok.\n"
+
#~ 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"
@@ -23690,6 +23098,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "%Jfunction '%F' can never be inlined because it contains a nested function"
#~ msgstr "%J '%F' işlevi kendi içinde bir işlev içerdiğinden satıriçine alınamaz"
+#~ msgid "unknown set constructor type"
+#~ msgstr "bilinmeyen set constructor türü"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "RTL özümleyici için en fazla komut sayısı"
+
#~ msgid "-msystem-v and -p are incompatible"
#~ msgstr "-msystem-v ile -p uyumsuz"
@@ -23723,6 +23137,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "Use library calls to perform FP operations"
#~ msgstr "Kayan nokta işlemlerini yapmada kitaplık çağrıları kullanılır"
+#~ msgid "unexpected address expression"
+#~ msgstr "beklenmeyen adres ifadesi"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "addr_const olarak beklenmeyen NOT:"
+
#~ 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ı"
@@ -23890,6 +23310,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
#~ msgstr "-fpic ve -gdwarf uyumsuz (-fpic ve -g/-gdwarf-2 uyumlu)"
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "frv_print_operand, 'c' değiştirici için hatalı komut:"
+
#~ msgid "frv_registers_update"
#~ msgstr "frv_registers_update"
@@ -24007,6 +23430,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "Do not enable linker relaxation"
#~ msgstr "Bağlayıcı gevşemesini etkinleştirir"
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Itanium (TM) işlemcisi B adımı için kod üretir"
+
#~ msgid "-malign-loops=%d is not between 1 and %d"
#~ msgstr "-malign-loops=%d 1 ile %d arasında değil"
@@ -24040,6 +23466,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "can't close temp file: %m"
#~ msgstr "geçici dosya kapatılamıyor: %m"
+#~ msgid "Same as -mabi=32, just trickier"
+#~ msgstr "-mabi=32 ile aynı, sadece daha kolay"
+
#~ msgid "Use MIPS as"
#~ msgstr "MIPS as kullanılır"
@@ -24058,6 +23487,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "Don't use embedded PIC"
#~ msgstr "Gömülü PIC kullanılmaz"
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Bellekteki kayan noktalı argümanlar daima aktarılır"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Bellekteki kayan noktalı argümanlar daima aktarılmaz"
+
#~ msgid "invalid UNSPEC as operand (1)"
#~ msgstr "terim (1) olarak UNSPEC geçersiz"
@@ -24097,6 +23532,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "Optimize for SuperSPARC processors"
#~ msgstr "SuperSPARC işlemciler için eniyileme yapılır"
+#~ 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'"
+
#~ msgid "label `%s' referenced outside of any function"
#~ msgstr "`%s' etiketi her işlevin dışına referanslı"
@@ -24124,6 +23562,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "return value type specifier for constructor ignored"
#~ msgstr "kurucu için dönen değer tür belirteci yoksayıldı"
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "%J üyesiz işlev türleri için tür niteleyici geçersiz"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "iÅŸlev `%D' kardeÅŸ olarak bildirilemez"
+
#~ 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"
@@ -24139,6 +23583,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "`%D' implicitly declared before its definition"
#~ msgstr "`%D' tanımından önce dolaylı olarak bildirilmiş"
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "üye olmayan işlev `%D' için ilklendirici belirtilmiş"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "sanal yöntem `%D' için geçersiz ilklendirici"
+
#~ msgid "typename type `%#T' declared `friend'"
#~ msgstr "tür ismi türü `%#T' `friend' olarak bildirilmiş"
@@ -24181,6 +23631,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "`%s' is not a template"
#~ msgstr "`%s' bir ÅŸablon deÄŸil"
+#~ msgid "expected type-name"
+#~ msgstr "burada tür ismi umuluyordu"
+
#~ msgid "extra semicolon"
#~ msgstr "`;' fazla"
@@ -24190,6 +23643,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "partial specialization `%D' of function template"
#~ msgstr "işlev şablonunun `%D' kısmî özelleştirmesi"
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "`%T' bildiriminde şablon parametresi listesi çok fazla"
+
#~ msgid "it must be the address of a function with external linkage"
#~ msgstr "o dış ilintilemeli bir işlevin adresi olmalı"
@@ -24214,6 +23670,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "invalid use of '%E' as a non-type template-argument"
#~ msgstr "türsüz şablon argümanı olarak '%E' kullanımı geçersiz"
+#~ msgid "non-template used as template"
+#~ msgstr "şablon olarak şablon olmayan kullanılmış"
+
#~ msgid "use of `%s' in template type unification"
#~ msgstr "şablon türü birleştirmede `%s' kullanımı"
@@ -24235,6 +23694,12 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "ISO C++ forbids cast to non-reference type used as lvalue"
#~ msgstr "ISO C++ sol taraf değeri olarak kullanılmış referanssız türe dönüşüme izin vermez"
+#~ msgid "passing `%T' for %s %P of `%D'"
+#~ msgstr "`%D' işlevinin %P. argümanında %s için `%T'nin aktarılmasında"
+
+#~ msgid "%s to `%T' from `%T'"
+#~ msgstr "`%T' nin `%T' den %s"
+
#~ 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"
@@ -25020,6 +24485,9 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "Integrate simple functions into their callers"
#~ msgstr "Basit işlevler onları çağıranların içine gömülür"
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Çizim renklendiren yazmaç tahsisi kullanılır"
+
#~ msgid "Store strings in writable data section"
#~ msgstr "Dizgeler yazılabilir veri bölümünde saklanır"
@@ -26389,9 +25857,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ 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)"
-#~ msgid "`%D' is a namespace"
-#~ msgstr "`%D' bir isim alanı"
-
#~ 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"
@@ -26566,9 +26031,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "semicolon missing after %s declaration"
#~ msgstr "%s bildiriminden sonra ; yok"
-#~ msgid "semicolon missing after declaration of `%T'"
-#~ msgstr "`%T' bildiriminden sonra ; yok"
-
#~ msgid "`::%D' undeclared (first use here)"
#~ msgstr "`::%D' bildirilmemiş (burada ilk kullanımı)"
@@ -27720,9 +27182,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ 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"
@@ -27762,9 +27221,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ 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 "invalid use of undefined type `%#T'"
-#~ msgstr "tanımsız `%#T' türünün kullanımı geçersiz"
-
#~ msgid "invalid use of `%T'"
#~ msgstr "`%T' kullanımı geçersiz"
@@ -27948,9 +27404,6 @@ msgstr "Ada için -c ya da -S gerekli"
#~ msgid "incompatible modes in %s"
#~ msgstr "%s içinde uyumsuz kipler"
-#~ msgid "bad string length in %s"
-#~ msgstr "dizge uzunluğu %s için hatalı"
-
#~ msgid "mode mismatch in %s expression"
#~ msgstr "%s ifadesi içinde kip uyumsuzluğu"
diff --git a/gcc/predict.c b/gcc/predict.c
index 30ad0fe17c9..f9c6633af24 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -145,7 +145,8 @@ bool
probably_never_executed_bb_p (basic_block bb)
{
if (profile_info && flag_branch_probabilities)
- return ((bb->count + profile_info->runs / 2) / profile_info->runs) == 0;
+ /* APPLE LOCAL hot/cold partitioning */
+ return (bb->count == 0);
return false;
}
@@ -696,6 +697,11 @@ predict_loops (struct loops *loops_info, bool rtlsimpleloops)
/* Free basic blocks from get_loop_body. */
free (bbs);
}
+
+ /* APPLE LOCAL begin lno */
+ if (rtlsimpleloops)
+ iv_analysis_done ();
+ /* APPLE LOCAL end lno */
if (!rtlsimpleloops)
scev_finalize ();
@@ -1043,9 +1049,9 @@ tree_predict_by_opcode (basic_block bb)
return;
op0 = TREE_OPERAND (cond, 0);
type = TREE_TYPE (op0);
- visited = BITMAP_XMALLOC ();
+ visited = BITMAP_ALLOC (NULL);
val = expr_expected_value (cond, visited);
- BITMAP_XFREE (visited);
+ BITMAP_FREE (visited);
if (val)
{
if (integer_zerop (val))
@@ -1819,7 +1825,7 @@ estimate_bb_frequencies (struct loops *loops)
EDGE_SUCC (ENTRY_BLOCK_PTR, 0)->probability = REG_BR_PROB_BASE;
/* Set up block info for each basic block. */
- tovisit = BITMAP_XMALLOC ();
+ tovisit = BITMAP_ALLOC (NULL);
alloc_aux_for_blocks (sizeof (struct block_info_def));
alloc_aux_for_edges (sizeof (struct edge_info_def));
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
@@ -1857,7 +1863,7 @@ estimate_bb_frequencies (struct loops *loops)
free_aux_for_blocks ();
free_aux_for_edges ();
- BITMAP_XFREE (tovisit);
+ BITMAP_FREE (tovisit);
}
compute_function_frequency ();
if (flag_reorder_functions)
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index 8d8cbffc389..6659e69db20 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -28,6 +28,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "real.h"
#include "ggc.h"
#include "langhooks.h"
+/* APPLE LOCAL mainline */
+#include "tree-iterator.h"
/* Define the hash table of nodes already seen.
Such nodes are not repeated; brief cross-references are used. */
@@ -79,6 +81,12 @@ print_node_brief (FILE *file, const char *prefix, tree node, int indent)
{
if (DECL_NAME (node))
fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node)));
+ else if (TREE_CODE (node) == LABEL_DECL
+ && LABEL_DECL_UID (node) != -1)
+ fprintf (file, " L." HOST_WIDE_INT_PRINT_DEC, LABEL_DECL_UID (node));
+ else
+ fprintf (file, " %c.%u", TREE_CODE (node) == CONST_DECL ? 'C' : 'D',
+ DECL_UID (node));
}
else if (class == tcc_type)
{
@@ -217,6 +225,12 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
{
if (DECL_NAME (node))
fprintf (file, " %s", IDENTIFIER_POINTER (DECL_NAME (node)));
+ else if (TREE_CODE (node) == LABEL_DECL
+ && LABEL_DECL_UID (node) != -1)
+ fprintf (file, " L." HOST_WIDE_INT_PRINT_DEC, LABEL_DECL_UID (node));
+ else
+ fprintf (file, " %c.%u", TREE_CODE (node) == CONST_DECL ? 'C' : 'D',
+ DECL_UID (node));
}
else if (class == tcc_type)
{
@@ -252,6 +266,9 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
fputs (" readonly", file);
if (!TYPE_P (node) && TREE_CONSTANT (node))
fputs (" constant", file);
+ else if (TYPE_P (node) && TYPE_SIZES_GIMPLIFIED (node))
+ fputs (" sizes-gimplified", file);
+
if (TREE_INVARIANT (node))
fputs (" invariant", file);
if (TREE_ADDRESSABLE (node))
@@ -274,6 +291,10 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
fputs (" static", file);
if (TREE_DEPRECATED (node))
fputs (" deprecated", file);
+ /* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) */
+ if (TREE_UNAVAILABLE (node))
+ fputs (" unavailable", file);
+ /* APPLE LOCAL end "unavailable" attribute (Radar 2809697) */
if (TREE_VISITED (node))
fputs (" visited", file);
if (TREE_LANG_FLAG_0 (node))
@@ -708,6 +729,30 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
}
break;
+ /* APPLE LOCAL begin mainline */
+ case STATEMENT_LIST:
+ fprintf (file, " head " HOST_PTR_PRINTF " tail " HOST_PTR_PRINTF " stmts",
+ (void *) node->stmt_list.head, (void *) node->stmt_list.tail);
+ {
+ tree_stmt_iterator i;
+ for (i = tsi_start (node); !tsi_end_p (i); tsi_next (&i))
+ {
+ /* Not printing the addresses of the (not-a-tree)
+ 'struct tree_stmt_list_node's. */
+ fprintf (file, " " HOST_PTR_PRINTF, (void *)tsi_stmt (i));
+ }
+ fprintf (file, "\n");
+ for (i = tsi_start (node); !tsi_end_p (i); tsi_next (&i))
+ {
+ /* Not printing the addresses of the (not-a-tree)
+ 'struct tree_stmt_list_node's. */
+ print_node (file, "stmt", tsi_stmt (i), indent + 4);
+ }
+ }
+ print_node (file, "chain", TREE_CHAIN (node), indent + 4);
+ break;
+ /* APPLE LOCAL end mainline */
+
case BLOCK:
print_node (file, "vars", BLOCK_VARS (node), indent + 4);
print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node),
diff --git a/gcc/recog.c b/gcc/recog.c
index 28b241075ab..f7c1d8c4103 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -1352,12 +1352,16 @@ asm_noperands (rtx body)
int i;
int n_sets;
- /* Count backwards through CLOBBERs to determine number of SETs. */
+ /* APPLE LOCAL CW asm blocks. */
+ /* Count backwards through CLOBBERs/USEs to determine number of SETs. */
for (i = XVECLEN (body, 0); i > 0; i--)
{
if (GET_CODE (XVECEXP (body, 0, i - 1)) == SET)
break;
- if (GET_CODE (XVECEXP (body, 0, i - 1)) != CLOBBER)
+ /* APPLE LOCAL begin CW asm blocks. */
+ if (GET_CODE (XVECEXP (body, 0, i - 1)) != CLOBBER
+ && GET_CODE (XVECEXP (body, 0, i - 1)) != USE)
+ /* APPLE LOCAL end CW asm blocks. */
return -1;
}
@@ -1389,9 +1393,13 @@ asm_noperands (rtx body)
body is [(asm_operands ...) (clobber (reg ...))...]. */
int i;
- /* Make sure all the other parallel things really are clobbers. */
+ /* APPLE LOCAL CW asm blocks. */
+ /* Make sure all the other parallel things really are clobbers or uses. */
for (i = XVECLEN (body, 0) - 1; i > 0; i--)
- if (GET_CODE (XVECEXP (body, 0, i)) != CLOBBER)
+ /* APPLE LOCAL begin CW asm blocks. */
+ if (GET_CODE (XVECEXP (body, 0, i)) != CLOBBER
+ && GET_CODE (XVECEXP (body, 0, i)) != USE)
+ /* APPLE LOCAL end CW asm blocks. */
return -1;
return ASM_OPERANDS_INPUT_LENGTH (XVECEXP (body, 0, 0));
@@ -1479,9 +1487,11 @@ decode_asm_operands (rtx body, rtx *operands, rtx **operand_locs,
&& GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) == ASM_OPERANDS)
{
rtx asmop = SET_SRC (XVECEXP (body, 0, 0));
- int nparallel = XVECLEN (body, 0); /* Includes CLOBBERs. */
+ /* APPLE LOCAL begin CW asm blocks. */
+ int nparallel = XVECLEN (body, 0); /* Includes CLOBBERs/USEs. */
int nin = ASM_OPERANDS_INPUT_LENGTH (asmop);
- int nout = 0; /* Does not include CLOBBERs. */
+ int nout = 0; /* Does not include CLOBBERs/USEs. */
+ /* APPLE LOCAL end CW asm blocks. */
/* At least one output, plus some CLOBBERs. */
@@ -1489,7 +1499,10 @@ decode_asm_operands (rtx body, rtx *operands, rtx **operand_locs,
Their constraints are in the ASM_OPERANDS itself. */
for (i = 0; i < nparallel; i++)
{
- if (GET_CODE (XVECEXP (body, 0, i)) == CLOBBER)
+ /* APPLE LOCAL begin CW asm blocks. */
+ if (GET_CODE (XVECEXP (body, 0, i)) == CLOBBER
+ || GET_CODE (XVECEXP (body, 0, i)) == USE)
+ /* APPLE LOCAL end CW asm blocks. */
break; /* Past last SET */
if (operands)
diff --git a/gcc/reg-notes.def b/gcc/reg-notes.def
index 85a122f6532..3f130cce992 100644
--- a/gcc/reg-notes.def
+++ b/gcc/reg-notes.def
@@ -170,3 +170,8 @@ REG_NOTE (SETJMP)
/* Indicate calls that always returns. */
REG_NOTE (ALWAYS_RETURN)
+
+/* APPLE LOCAL begin ObjC direct dispatch */
+/* Indicate calls to a hard-coded address in memory. */
+REG_NOTE (ABSCALL)
+/* APPLE LOCAL end ObjC direct dispatch */
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 744f181bd18..e81f334f676 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -1283,6 +1283,14 @@ static bool
mode_change_ok (enum machine_mode orig_mode, enum machine_mode new_mode,
unsigned int regno ATTRIBUTE_UNUSED)
{
+ /* APPLE LOCAL begin add mode change case */
+#ifdef TARGET_POWERPC
+ /* This arises from FLOAT_EXTEND which is really a NOP. */
+ if (orig_mode == SFmode && new_mode == DFmode)
+ return true;
+#endif
+ /* APPLE LOCAL end add mode change case */
+
if (GET_MODE_SIZE (orig_mode) < GET_MODE_SIZE (new_mode))
return false;
@@ -1733,6 +1741,15 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
/* Notice copies. */
if (set && REG_P (SET_DEST (set)) && REG_P (SET_SRC (set)))
copy_value (SET_DEST (set), SET_SRC (set), vd);
+ /* APPLE LOCAL begin record that float extend is a copy */
+#ifdef TARGET_POWERPC
+ /* FLOAT_EXTEND is actually a copy; record that too. */
+ if (set && REG_P (SET_DEST (set))
+ && GET_CODE (SET_SRC (set)) == FLOAT_EXTEND
+ && REG_P (XEXP (SET_SRC (set), 0)))
+ copy_value (SET_DEST (set), XEXP (SET_SRC (set), 0), vd);
+#endif
+ /* APPLE LOCAL end record that float extend is a copy */
if (insn == BB_END (bb))
break;
diff --git a/gcc/reload.c b/gcc/reload.c
index 015637e47aa..2b770581271 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -1310,18 +1310,34 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc,
and IN or CLASS and OUT. Get the icode and push any required reloads
needed for each of them if so. */
+ /* APPLE LOCAL begin restoration of inmode/outmode */
#ifdef SECONDARY_INPUT_RELOAD_CLASS
if (in != 0)
- secondary_in_reload
- = push_secondary_reload (1, in, opnum, optional, class, inmode, type,
- &secondary_in_icode);
+ {
+ secondary_in_reload
+ = push_secondary_reload (1, in, opnum, optional, class, inmode, type,
+ &secondary_in_icode);
+#ifdef TARGET_POWERPC
+ if ( secondary_in_reload != -1 && in_subreg_loc )
+ inmode = GET_MODE (*in_subreg_loc);
+#endif
+ }
+ /* APPLE LOCAL end restoration of inmode/outmode */
#endif
#ifdef SECONDARY_OUTPUT_RELOAD_CLASS
+ /* APPLE LOCAL begin restoration of inmode/outmode */
if (out != 0 && GET_CODE (out) != SCRATCH)
- secondary_out_reload
- = push_secondary_reload (0, out, opnum, optional, class, outmode,
- type, &secondary_out_icode);
+ {
+ secondary_out_reload
+ = push_secondary_reload (0, out, opnum, optional, class, outmode,
+ type, &secondary_out_icode);
+#ifdef TARGET_POWERPC
+ if ( secondary_out_reload != -1 && out_subreg_loc )
+ outmode = GET_MODE (*out_subreg_loc);
+#endif
+ }
+ /* APPLE LOCAL end restoration of inmode/outmode */
#endif
/* We found no existing reload suitable for re-use.
@@ -1729,7 +1745,13 @@ combine_reloads (void)
if ((rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
|| rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
&& rld[i].opnum == rld[output_reload].opnum)
+ /* APPLE LOCAL begin try destroyed input */
+#ifdef TARGET_POWERPC
+ goto try_destroyed_input;
+#else
return;
+#endif
+ /* APPLE LOCAL end try destroyed input */
/* Check each input reload; can we combine it? */
@@ -1826,6 +1848,11 @@ combine_reloads (void)
that it does not occur in the output (we already know it isn't an
earlyclobber. If this is an asm insn, give up. */
+ /* APPLE LOCAL begin try destroyed input */
+#ifdef TARGET_POWERPC
+ try_destroyed_input:
+#endif
+ /* APPLE LOCAL end try destroyed input */
if (INSN_CODE (this_insn) == -1)
return;
@@ -2159,15 +2186,20 @@ operands_match_p (rtx x, rtx y)
else
j = REGNO (y);
+ /* APPLE LOCAL begin mainline 2005-03-04 */
/* On a WORDS_BIG_ENDIAN machine, point to the last register of a
- multiple hard register group, so that for example (reg:DI 0) and
- (reg:SI 1) will be considered the same register. */
+ multiple hard register group of scalar integer registers, so that
+ for example (reg:DI 0) and (reg:SI 1) will be considered the same
+ register. */
if (WORDS_BIG_ENDIAN && GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD
+ && SCALAR_INT_MODE_P (GET_MODE (x))
&& i < FIRST_PSEUDO_REGISTER)
i += hard_regno_nregs[i][GET_MODE (x)] - 1;
if (WORDS_BIG_ENDIAN && GET_MODE_SIZE (GET_MODE (y)) > UNITS_PER_WORD
+ && SCALAR_INT_MODE_P (GET_MODE (y))
&& j < FIRST_PSEUDO_REGISTER)
j += hard_regno_nregs[j][GET_MODE (y)] - 1;
+ /* APPLE LOCAL end mainline 2005-03-04 */
return i == j;
}
diff --git a/gcc/reload1.c b/gcc/reload1.c
index d4141be5aee..ba5d8fe954f 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -5411,19 +5411,18 @@ choose_reload_regs (struct insn_chain *chain)
need_mode = mode;
else
need_mode
- = smallest_mode_for_size (GET_MODE_SIZE (mode) + byte,
+ = smallest_mode_for_size (GET_MODE_BITSIZE (mode)
+ + byte * BITS_PER_UNIT,
GET_MODE_CLASS (mode));
- if (
-#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))
+ if ((GET_MODE_SIZE (GET_MODE (last_reg))
>= GET_MODE_SIZE (need_mode))
#ifdef CANNOT_CHANGE_MODE_CLASS
- )
+ /* Verify that the register in "i" can be obtained
+ from LAST_REG. */
+ && !REG_CANNOT_CHANGE_MODE_P (REGNO (last_reg),
+ GET_MODE (last_reg),
+ mode)
#endif
&& reg_reloaded_contents[i] == regno
&& TEST_HARD_REG_BIT (reg_reloaded_valid, i)
@@ -5605,23 +5604,18 @@ choose_reload_regs (struct insn_chain *chain)
and of the desired class. */
if (equiv != 0)
{
- int regs_used = 0;
+ /* APPLE LOCAL begin don't reload unavailable hard regs. PR/16028 */
int bad_for_class = 0;
int max_regno = regno + rld[r].nregs;
for (i = regno; i < max_regno; i++)
- {
- regs_used |= TEST_HARD_REG_BIT (reload_reg_used_at_all,
- i);
bad_for_class |= ! TEST_HARD_REG_BIT (reg_class_contents[(int) rld[r].class],
i);
- }
-
- if ((regs_used
- && ! free_for_value_p (regno, rld[r].mode,
- rld[r].opnum, rld[r].when_needed,
- rld[r].in, rld[r].out, r, 1))
- || bad_for_class)
+ if (bad_for_class
+ || ! free_for_value_p (regno, rld[r].mode,
+ rld[r].opnum, rld[r].when_needed,
+ rld[r].in, rld[r].out, r, 1))
+ /* APPLE LOCAL end don't reload unavailable hard regs. PR/16028 */
equiv = 0;
}
diff --git a/gcc/rtl.h b/gcc/rtl.h
index b0d839a5337..51117ccc01e 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1424,6 +1424,10 @@ extern rtx simplify_subtraction (rtx);
/* In function.c */
extern rtx assign_stack_local (enum machine_mode, HOST_WIDE_INT, int);
+/* APPLE LOCAL begin next declaration */
+extern rtx assign_stack_local_with_alias (enum machine_mode,
+ HOST_WIDE_INT, int);
+/* APPLE LOCAL end next declaration */
extern rtx assign_stack_temp (enum machine_mode, HOST_WIDE_INT, int);
extern rtx assign_stack_temp_for_type (enum machine_mode,
HOST_WIDE_INT, int, tree);
@@ -2122,6 +2126,8 @@ extern int read_rtx_lineno;
extern void clear_reg_alias_info (rtx);
extern rtx canon_rtx (rtx);
extern int true_dependence (rtx, enum machine_mode, rtx, int (*)(rtx, int));
+/* APPLE LOCAL nop on true-dependence. */
+extern int must_true_dependence (rtx, rtx);
extern rtx get_addr (rtx);
extern int canon_true_dependence (rtx, enum machine_mode, rtx, rtx,
int (*)(rtx, int));
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 94e8d4c8033..35e2b67f4d1 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -3025,6 +3025,7 @@ subreg_lsb (rtx x)
SUBREG_BYTE (x));
}
+/* APPLE LOCAL begin assert failure 4087079 */
/* This function returns the regno offset of a subreg expression.
xregno - A regno of an inner hard subreg_reg (or what will become one).
xmode - The mode of xregno.
@@ -3035,13 +3036,37 @@ unsigned int
subreg_regno_offset (unsigned int xregno, enum machine_mode xmode,
unsigned int offset, enum machine_mode ymode)
{
- int nregs_xmode, nregs_ymode;
+ int nregs_xmode, nregs_ymode, nregs_xmode_unit_int;
int mode_multiple, nregs_multiple;
int y_offset;
+ enum machine_mode xmode_unit, xmode_unit_int;
gcc_assert (xregno < FIRST_PSEUDO_REGISTER);
- nregs_xmode = hard_regno_nregs[xregno][xmode];
+ if (GET_MODE_INNER (xmode) == VOIDmode)
+ xmode_unit = xmode;
+ else
+ xmode_unit = GET_MODE_INNER (xmode);
+
+ if (FLOAT_MODE_P (xmode_unit))
+ {
+ xmode_unit_int = int_mode_for_mode (xmode_unit);
+ if (xmode_unit_int == BLKmode)
+ /* It's probably bad to be here; a port should have an integer mode
+ that's the same size as anything of which it takes a SUBREG. */
+ xmode_unit_int = xmode_unit;
+ }
+ else
+ xmode_unit_int = xmode_unit;
+
+ nregs_xmode_unit_int = hard_regno_nregs[xregno][xmode_unit_int];
+
+ /* Adjust nregs_xmode to allow for 'holes'. */
+ if (nregs_xmode_unit_int != hard_regno_nregs[xregno][xmode_unit])
+ nregs_xmode = nregs_xmode_unit_int * GET_MODE_NUNITS (xmode);
+ else
+ nregs_xmode = hard_regno_nregs[xregno][xmode];
+
nregs_ymode = hard_regno_nregs[xregno][ymode];
/* If this is a big endian paradoxical subreg, which uses more actual
@@ -3056,7 +3081,7 @@ subreg_regno_offset (unsigned int xregno, enum machine_mode xmode,
if (offset == 0 || nregs_xmode == nregs_ymode)
return 0;
- /* size of ymode must not be greater than the size of xmode. */
+ /* Size of ymode must not be greater than the size of xmode. */
mode_multiple = GET_MODE_SIZE (xmode) / GET_MODE_SIZE (ymode);
gcc_assert (mode_multiple != 0);
@@ -3071,36 +3096,82 @@ subreg_regno_offset (unsigned int xregno, enum machine_mode xmode,
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. */
+ RETURN - Whether the offset is representable. */
bool
subreg_offset_representable_p (unsigned int xregno, enum machine_mode xmode,
unsigned int offset, enum machine_mode ymode)
{
- int nregs_xmode, nregs_ymode;
+ int nregs_xmode, nregs_ymode, nregs_xmode_unit, nregs_xmode_unit_int;
int mode_multiple, nregs_multiple;
int y_offset;
+ enum machine_mode xmode_unit, xmode_unit_int;
gcc_assert (xregno < FIRST_PSEUDO_REGISTER);
- nregs_xmode = hard_regno_nregs[xregno][xmode];
+ if (GET_MODE_INNER (xmode) == VOIDmode)
+ xmode_unit = xmode;
+ else
+ xmode_unit = GET_MODE_INNER (xmode);
+
+ if (FLOAT_MODE_P (xmode_unit))
+ {
+ xmode_unit_int = int_mode_for_mode (xmode_unit);
+ if (xmode_unit_int == BLKmode)
+ /* It's probably bad to be here; a port should have an integer mode
+ that's the same size as anything of which it takes a SUBREG. */
+ xmode_unit_int = xmode_unit;
+ }
+ else
+ xmode_unit_int = xmode_unit;
+
+ nregs_xmode_unit = hard_regno_nregs[xregno][xmode_unit];
+ nregs_xmode_unit_int = hard_regno_nregs[xregno][xmode_unit_int];
+
+ /* If there are holes in a non-scalar mode in registers, we expect
+ that it is made up of its units concatenated together. */
+ if (nregs_xmode_unit != nregs_xmode_unit_int)
+ {
+ gcc_assert (nregs_xmode_unit * GET_MODE_NUNITS (xmode)
+ == hard_regno_nregs[xregno][xmode]);
+
+ /* You can only ask for a SUBREG of a value with holes in the middle
+ if you don't cross the holes. (Such a SUBREG should be done by
+ picking a different register class, or doing it in memory if
+ necessary.) An example of a value with holes is XCmode on 32-bit
+ x86 with -m128bit-long-double; it's represented in 6 32-bit registers,
+ 3 for each part, but in memory it's two 128-bit parts.
+ Padding is assumed to be at the end (not necessarily the 'high part')
+ of each unit. */
+ if (nregs_xmode_unit != nregs_xmode_unit_int
+ && (offset / GET_MODE_SIZE (xmode_unit_int) + 1
+ < GET_MODE_NUNITS (xmode))
+ && (offset / GET_MODE_SIZE (xmode_unit_int)
+ != ((offset + GET_MODE_SIZE (ymode) - 1)
+ / GET_MODE_SIZE (xmode_unit_int))))
+ return false;
+
+ nregs_xmode = nregs_xmode_unit_int * GET_MODE_NUNITS (xmode);
+ }
+ else
+ nregs_xmode = hard_regno_nregs[xregno][xmode];
+
nregs_ymode = hard_regno_nregs[xregno][ymode];
- /* Paradoxical subregs are always valid. */
+ /* Paradoxical subregs are otherwise 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. */
+ /* Lowpart subregs are otherwise valid. */
if (offset == subreg_lowpart_offset (ymode, xmode))
return true;
- /* 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. */
+ /* This should always pass, otherwise we don't know how to verify
+ the constraint. These conditions may be relaxed but
+ subreg_regno_offset would need to be redesigned. */
gcc_assert ((GET_MODE_SIZE (xmode) % GET_MODE_SIZE (ymode)) == 0);
- gcc_assert ((GET_MODE_SIZE (ymode) % nregs_ymode) == 0);
gcc_assert ((nregs_xmode % nregs_ymode) == 0);
/* The XMODE value can be seen as a vector of NREGS_XMODE
@@ -3111,7 +3182,7 @@ subreg_offset_representable_p (unsigned int xregno, enum machine_mode xmode,
/ nregs_xmode,
MODE_INT, 0));
- /* size of ymode must not be greater than the size of xmode. */
+ /* Size of ymode must not be greater than the size of xmode. */
mode_multiple = GET_MODE_SIZE (xmode) / GET_MODE_SIZE (ymode);
gcc_assert (mode_multiple != 0);
@@ -3123,6 +3194,7 @@ subreg_offset_representable_p (unsigned int xregno, enum machine_mode xmode,
return (!(y_offset % (mode_multiple / nregs_multiple)));
}
+/* APPLE LOCAL end assert failure 4087079 */
/* Return the final regno that a subreg expression refers to. */
unsigned int
@@ -3158,13 +3230,17 @@ parms_set (rtx x, rtx pat ATTRIBUTE_UNUSED, void *data)
}
}
+/* APPLE LOCAL begin 4045984 */
/* Look backward for first parameter to be loaded.
+ Note that loads of all parameters will not necessarily be
+ found if CSE has eliminated some of them (e.g., an argument
+ to the outer function is passed down as a parameter).
Do not skip BOUNDARY. */
rtx
find_first_parameter_load (rtx call_insn, rtx boundary)
{
struct parms_set_data parm;
- rtx p, before;
+ rtx p, before, first_set;
/* Since different machines initialize their parameter registers
in different orders, assume nothing. Collect the set of all
@@ -3186,6 +3262,7 @@ find_first_parameter_load (rtx call_insn, rtx boundary)
parm.nregs++;
}
before = call_insn;
+ first_set = call_insn;
/* Search backward for the first set of a register in this set. */
while (parm.nregs && before != boundary)
@@ -3208,11 +3285,16 @@ find_first_parameter_load (rtx call_insn, rtx boundary)
}
if (INSN_P (before))
- note_stores (PATTERN (before), parms_set, &parm);
+ {
+ int nregs_old = parm.nregs;
+ note_stores (PATTERN (before), parms_set, &parm);
+ if (nregs_old != parm.nregs)
+ first_set = before;
+ }
}
- return before;
+ return first_set;
}
-
+/* APPLE LOCAL end 4045984 */
/* Return true if we should avoid inserting code between INSN and preceding
call instruction. */
diff --git a/gcc/scan-decls.c b/gcc/scan-decls.c
index 7beaa24f0cf..d7dd0a621d4 100644
--- a/gcc/scan-decls.c
+++ b/gcc/scan-decls.c
@@ -39,6 +39,13 @@ int extern_C_braces_length = 0;
char extern_C_braces[MAX_EXTERN_C_BRACES];
#define in_extern_C_brace (extern_C_braces_length>0)
+/* APPLE LOCAL begin CW asm blocks */
+/* Dummies needed because we use them in cpplib, yuck. */
+int flag_cw_asm_blocks;
+int cw_asm_state;
+int cw_asm_in_operands;
+/* APPLE LOCAL end CW asm blocks */
+
/* True if the function declaration currently being scanned is
prefixed by extern "C". */
int current_extern_C = 0;
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index d5004e4e032..271810d6335 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -994,6 +994,11 @@ compute_trg_info (int trg)
edge_iterator ei;
edge e;
+ /* APPLE LOCAL begin lno */
+ el.nr_members = 0;
+ el.first_member = 0;
+ /* APPLE LOCAL end lno */
+
/* Define some of the fields for the target bb as well. */
sp = candidate_table + trg;
sp->is_valid = 1;
diff --git a/gcc/sdbout.c b/gcc/sdbout.c
index 91a7a2cc256..e6ab7fb6c40 100644
--- a/gcc/sdbout.c
+++ b/gcc/sdbout.c
@@ -335,7 +335,8 @@ const struct gcc_debug_hooks sdb_debug_hooks =
debug_nothing_tree, /* outlining_inline_function */
sdbout_label, /* label */
debug_nothing_int, /* handle_pch */
- debug_nothing_rtx /* var_location */
+ debug_nothing_rtx, /* var_location */
+ 0 /* start_end_main_source_file */
};
/* Return a unique string to name an anonymous type. */
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index dc452dbdc26..ce6a27d61eb 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -757,7 +757,10 @@ simplify_unary_operation (enum rtx_code code, enum machine_mode mode,
for (i = 0; i < 4; i++)
tmp[i] = ~tmp[i];
real_from_target (&d, tmp, mode);
+ /* APPLE LOCAL mainline 2005-03-17 4050475 */
+ break;
}
+ break;
default:
gcc_unreachable ();
}
@@ -955,7 +958,10 @@ simplify_unary_operation (enum rtx_code code, enum machine_mode mode,
/* (neg (plus X 1)) can become (not X). */
if (GET_CODE (op) == PLUS
- && XEXP (op, 1) == const1_rtx)
+ /* APPLE LOCAL begin disallow generating (not (SYM)) */
+ && XEXP (op, 1) == const1_rtx
+ && GET_CODE (XEXP (op, 0)) != SYMBOL_REF)
+ /* APPLE LOCAL end disallow generating (not (SYM)) */
return simplify_gen_unary (NOT, mode, XEXP (op, 0), mode);
/* Similarly, (neg (not X)) is (plus X 1). */
@@ -973,9 +979,12 @@ simplify_unary_operation (enum rtx_code code, enum machine_mode mode,
return simplify_gen_binary (MINUS, mode, XEXP (op, 1),
XEXP (op, 0));
+ /* APPLE LOCAL begin don't allow subtraction of symbol address */
if (GET_CODE (op) == PLUS
&& !HONOR_SIGNED_ZEROS (mode)
- && !HONOR_SIGN_DEPENDENT_ROUNDING (mode))
+ && !HONOR_SIGN_DEPENDENT_ROUNDING (mode)
+ && GET_CODE (XEXP (op, 0)) != SYMBOL_REF)
+ /* APPLE LOCAL end don't allow subtraction of symbol address */
{
/* (neg (plus A C)) is simplified to (minus -C A). */
if (GET_CODE (XEXP (op, 1)) == CONST_INT
@@ -1071,7 +1080,7 @@ simplify_unary_operation (enum rtx_code code, enum machine_mode mode,
target mode is the same as the variable's promotion. */
if (GET_CODE (op) == SUBREG
&& SUBREG_PROMOTED_VAR_P (op)
- && SUBREG_PROMOTED_UNSIGNED_P (op)
+ && SUBREG_PROMOTED_UNSIGNED_P (op) > 0
&& GET_MODE (XEXP (op, 0)) == mode)
return XEXP (op, 0);
@@ -1550,48 +1559,69 @@ simplify_binary_operation (enum rtx_code code, enum machine_mode mode,
if (! FLOAT_MODE_P (mode))
{
- HOST_WIDE_INT coeff0 = 1, coeff1 = 1;
+ HOST_WIDE_INT coeff0h = 0, coeff1h = 0;
+ unsigned HOST_WIDE_INT coeff0l = 1, coeff1l = 1;
rtx lhs = op0, rhs = op1;
if (GET_CODE (lhs) == NEG)
- coeff0 = -1, lhs = XEXP (lhs, 0);
+ {
+ coeff0l = -1;
+ coeff0h = -1;
+ lhs = XEXP (lhs, 0);
+ }
else if (GET_CODE (lhs) == MULT
&& GET_CODE (XEXP (lhs, 1)) == CONST_INT)
{
- coeff0 = INTVAL (XEXP (lhs, 1)), lhs = XEXP (lhs, 0);
+ coeff0l = INTVAL (XEXP (lhs, 1));
+ coeff0h = INTVAL (XEXP (lhs, 1)) < 0 ? -1 : 0;
+ lhs = XEXP (lhs, 0);
}
else if (GET_CODE (lhs) == ASHIFT
&& GET_CODE (XEXP (lhs, 1)) == CONST_INT
&& INTVAL (XEXP (lhs, 1)) >= 0
&& INTVAL (XEXP (lhs, 1)) < HOST_BITS_PER_WIDE_INT)
{
- coeff0 = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (lhs, 1));
+ coeff0l = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (lhs, 1));
+ coeff0h = 0;
lhs = XEXP (lhs, 0);
}
if (GET_CODE (rhs) == NEG)
- coeff1 = -1, rhs = XEXP (rhs, 0);
+ {
+ coeff1l = -1;
+ coeff1h = -1;
+ rhs = XEXP (rhs, 0);
+ }
else if (GET_CODE (rhs) == MULT
&& GET_CODE (XEXP (rhs, 1)) == CONST_INT)
{
- coeff1 = INTVAL (XEXP (rhs, 1)), rhs = XEXP (rhs, 0);
+ coeff1l = INTVAL (XEXP (rhs, 1));
+ coeff1h = INTVAL (XEXP (rhs, 1)) < 0 ? -1 : 0;
+ rhs = XEXP (rhs, 0);
}
else if (GET_CODE (rhs) == ASHIFT
&& GET_CODE (XEXP (rhs, 1)) == CONST_INT
&& INTVAL (XEXP (rhs, 1)) >= 0
&& INTVAL (XEXP (rhs, 1)) < HOST_BITS_PER_WIDE_INT)
{
- coeff1 = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (rhs, 1));
+ coeff1l = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (rhs, 1));
+ coeff1h = 0;
rhs = XEXP (rhs, 0);
}
if (rtx_equal_p (lhs, rhs))
{
rtx orig = gen_rtx_PLUS (mode, op0, op1);
- tem = simplify_gen_binary (MULT, mode, lhs,
- GEN_INT (coeff0 + coeff1));
+ rtx coeff;
+ unsigned HOST_WIDE_INT l;
+ HOST_WIDE_INT h;
+
+ add_double (coeff0l, coeff0h, coeff1l, coeff1h, &l, &h);
+ coeff = immed_double_const (l, h, mode);
+
+ tem = simplify_gen_binary (MULT, mode, lhs, coeff);
return rtx_cost (tem, SET) <= rtx_cost (orig, SET)
- ? tem : 0;
+ ? tem : 0;
}
}
@@ -1681,7 +1711,12 @@ simplify_binary_operation (enum rtx_code code, enum machine_mode mode,
return simplify_gen_unary (NEG, mode, op1, mode);
/* (-1 - a) is ~a. */
- if (trueop0 == constm1_rtx)
+ /* APPLE LOCAL begin disallow generating (not (SYM))
+ But not when a is relocatable (this arises temporarily when
+ pulling 386 global addresses out of a loop). */
+ if (trueop0 == constm1_rtx
+ && GET_CODE (op1) != SYMBOL_REF )
+ /* APPLE LOCAL end disallow generating (not (SYM)) */
return simplify_gen_unary (NOT, mode, op1, mode);
/* Subtracting 0 has no effect unless the mode has signed zeros
@@ -1700,46 +1735,69 @@ simplify_binary_operation (enum rtx_code code, enum machine_mode mode,
if (! FLOAT_MODE_P (mode))
{
- HOST_WIDE_INT coeff0 = 1, coeff1 = 1;
+ HOST_WIDE_INT coeff0h = 0, negcoeff1h = -1;
+ unsigned HOST_WIDE_INT coeff0l = 1, negcoeff1l = -1;
rtx lhs = op0, rhs = op1;
if (GET_CODE (lhs) == NEG)
- coeff0 = -1, lhs = XEXP (lhs, 0);
+ {
+ coeff0l = -1;
+ coeff0h = -1;
+ lhs = XEXP (lhs, 0);
+ }
else if (GET_CODE (lhs) == MULT
&& GET_CODE (XEXP (lhs, 1)) == CONST_INT)
{
- coeff0 = INTVAL (XEXP (lhs, 1)), lhs = XEXP (lhs, 0);
+ coeff0l = INTVAL (XEXP (lhs, 1));
+ coeff0h = INTVAL (XEXP (lhs, 1)) < 0 ? -1 : 0;
+ lhs = XEXP (lhs, 0);
}
else if (GET_CODE (lhs) == ASHIFT
&& GET_CODE (XEXP (lhs, 1)) == CONST_INT
&& INTVAL (XEXP (lhs, 1)) >= 0
&& INTVAL (XEXP (lhs, 1)) < HOST_BITS_PER_WIDE_INT)
{
- coeff0 = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (lhs, 1));
+ coeff0l = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (lhs, 1));
+ coeff0h = 0;
lhs = XEXP (lhs, 0);
}
if (GET_CODE (rhs) == NEG)
- coeff1 = - 1, rhs = XEXP (rhs, 0);
+ {
+ negcoeff1l = 1;
+ negcoeff1h = 0;
+ rhs = XEXP (rhs, 0);
+ }
else if (GET_CODE (rhs) == MULT
&& GET_CODE (XEXP (rhs, 1)) == CONST_INT)
{
- coeff1 = INTVAL (XEXP (rhs, 1)), rhs = XEXP (rhs, 0);
+ negcoeff1l = -INTVAL (XEXP (rhs, 1));
+ negcoeff1h = INTVAL (XEXP (rhs, 1)) <= 0 ? 0 : -1;
+ rhs = XEXP (rhs, 0);
}
else if (GET_CODE (rhs) == ASHIFT
&& GET_CODE (XEXP (rhs, 1)) == CONST_INT
&& INTVAL (XEXP (rhs, 1)) >= 0
&& INTVAL (XEXP (rhs, 1)) < HOST_BITS_PER_WIDE_INT)
{
- coeff1 = ((HOST_WIDE_INT) 1) << INTVAL (XEXP (rhs, 1));
+ negcoeff1l = -(((HOST_WIDE_INT) 1)
+ << INTVAL (XEXP (rhs, 1)));
+ negcoeff1h = -1;
rhs = XEXP (rhs, 0);
}
if (rtx_equal_p (lhs, rhs))
{
rtx orig = gen_rtx_MINUS (mode, op0, op1);
- tem = simplify_gen_binary (MULT, mode, lhs,
- GEN_INT (coeff0 - coeff1));
+ rtx coeff;
+ unsigned HOST_WIDE_INT l;
+ HOST_WIDE_INT h;
+
+ add_double (coeff0l, coeff0h, negcoeff1l, negcoeff1h,
+ &l, &h);
+ coeff = immed_double_const (l, h, mode);
+
+ tem = simplify_gen_binary (MULT, mode, lhs, coeff);
return rtx_cost (tem, SET) <= rtx_cost (orig, SET)
? tem : 0;
}
@@ -1826,6 +1884,17 @@ simplify_binary_operation (enum rtx_code code, enum machine_mode mode,
|| val != HOST_BITS_PER_WIDE_INT - 1))
return simplify_gen_binary (ASHIFT, mode, op0, GEN_INT (val));
+ /* Likewise for multipliers wider than a word. */
+ else if (GET_CODE (trueop1) == CONST_DOUBLE
+ && (GET_MODE (trueop1) == VOIDmode
+ || GET_MODE_CLASS (GET_MODE (trueop1)) == MODE_INT)
+ && GET_MODE (op0) == mode
+ && CONST_DOUBLE_LOW (trueop1) == 0
+ && (val = exact_log2 (CONST_DOUBLE_HIGH (trueop1))) >= 0)
+ return simplify_gen_binary (ASHIFT, mode, op0,
+ GEN_INT (val
+ + HOST_BITS_PER_WIDE_INT));
+
/* x*2 is x+x and x*(-1) is -x */
if (GET_CODE (trueop1) == CONST_DOUBLE
&& GET_MODE_CLASS (GET_MODE (trueop1)) == MODE_FLOAT
@@ -1882,7 +1951,8 @@ simplify_binary_operation (enum rtx_code code, enum machine_mode mode,
if (trueop0 == trueop1
&& ! side_effects_p (op0)
&& GET_MODE_CLASS (mode) != MODE_CC)
- return const0_rtx;
+ /* APPLE LOCAL mainline 2005-04-13 */
+ return CONST0_RTX (mode);
/* Canonicalize XOR of the most significant bit to PLUS. */
if ((GET_CODE (op1) == CONST_INT
@@ -2849,7 +2919,7 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode,
/* If op0 is a comparison, extract the comparison arguments form it. */
if (code == NE)
{
- if (GET_MODE (op0) == cmp_mode)
+ if (GET_MODE (op0) == mode)
return simplify_rtx (op0);
else
return simplify_gen_relational (GET_CODE (op0), mode, VOIDmode,
@@ -2886,6 +2956,8 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode,
&& op1 == const0_rtx
&& GET_MODE_CLASS (mode) == MODE_INT
&& cmp_mode != VOIDmode
+ /* ??? Work-around BImode bugs in the ia64 backend. */
+ && mode != BImode
&& cmp_mode != BImode
&& nonzero_bits (op0, cmp_mode) == 1
&& STORE_FLAG_VALUE == 1)
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 6e21b540aa4..ae8712bc2ea 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1,6 +1,7 @@
/* Expands front end tree to back end RTL for GCC
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -322,7 +323,7 @@ parse_output_constraint (const char **constraint_p, int operand_num,
*is_inout = (*p == '+');
/* Canonicalize the output constraint so that it begins with `='. */
- if (p != constraint || is_inout)
+ if (p != constraint || *is_inout)
{
char *buf;
size_t c_len = strlen (constraint);
@@ -610,15 +611,19 @@ decl_conflicts_with_clobbers_p (tree decl, const HARD_REG_SET clobbered_regs)
VOL nonzero means the insn is volatile; don't optimize it. */
+/* APPLE LOCAL begin CW asm blocks. */
static void
expand_asm_operands (tree string, tree outputs, tree inputs,
- tree clobbers, int vol, location_t locus)
+ tree clobbers, int vol, tree uses, location_t locus)
+/* APPLE LOCAL end CW asm blocks. */
{
rtvec argvec, constraintvec;
rtx body;
int ninputs = list_length (inputs);
int noutputs = list_length (outputs);
int ninout;
+ /* APPLE LOCAL CW asm blocks. */
+ int nuses = 0;
int nclobbers;
HARD_REG_SET clobbered_regs;
int clobber_conflict_found = 0;
@@ -675,7 +680,12 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
if (i >= 0)
{
/* Clobbering the PIC register is an error. */
- if (i == (int) PIC_OFFSET_TABLE_REGNUM)
+ /* APPLE LOCAL begin CW asm blocks. */
+ /* Clobbering of PIC register is allowed in CW asm block.
+ We check this condition by checking value of 'uses'.
+ 'uses' is non-null for a CW asm expression only. */
+ if (uses == NULL && i == (int) PIC_OFFSET_TABLE_REGNUM)
+ /* APPLE LOCAL end CW asm blocks. */
{
error ("PIC register %qs clobbered in %<asm%>", regname);
return;
@@ -932,6 +942,10 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
= gen_rtx_ASM_INPUT (inout_mode[i], ggc_strdup (buffer));
}
+ /* APPLE LOCAL begin CW asm blocks. */
+ for (tail = uses; tail; tail = TREE_CHAIN (tail))
+ nuses++;
+ /* APPLE LOCAL end CW asm blocks. */
generating_concat_p = old_generating_concat_p;
/* Now, for each output, construct an rtx
@@ -939,13 +953,15 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
ARGVEC CONSTRAINTS OPNAMES))
If there is more than one, put them inside a PARALLEL. */
- if (noutputs == 1 && nclobbers == 0)
+ /* APPLE LOCAL CW asm blocks. */
+ if (noutputs == 1 && nclobbers == 0 && nuses == 0)
{
ASM_OPERANDS_OUTPUT_CONSTRAINT (body) = ggc_strdup (constraints[0]);
emit_insn (gen_rtx_SET (VOIDmode, output_rtx[0], body));
}
- else if (noutputs == 0 && nclobbers == 0)
+ /* APPLE LOCAL CW asm blocks. */
+ else if (noutputs == 0 && nclobbers == 0 && nuses == 0)
{
/* No output operands: put in a raw ASM_OPERANDS rtx. */
emit_insn (body);
@@ -959,7 +975,8 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
if (num == 0)
num = 1;
- body = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (num + nclobbers));
+ /* APPLE LOCAL CW asm blocks. */
+ body = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (num + nclobbers + nuses));
/* For each output operand, store a SET. */
for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++)
@@ -1035,6 +1052,17 @@ expand_asm_operands (tree string, tree outputs, tree inputs,
= gen_rtx_CLOBBER (VOIDmode, clobbered_reg);
}
+ /* APPLE LOCAL begin CW asm blocks. */
+ for (tail = uses; tail; tail = TREE_CHAIN (tail))
+ {
+ int regno;
+ rtx rtx_reg;
+ const char *use_regname = TREE_STRING_POINTER (TREE_VALUE (tail));
+ regno = decode_reg_name (use_regname);
+ rtx_reg = gen_rtx_REG (QImode, regno);
+ XVECEXP (body, 0, i++) = gen_rtx_USE (VOIDmode, rtx_reg);
+ }
+ /* APPLE LOCAL end CW asm blocks. */
emit_insn (body);
}
@@ -1073,6 +1101,8 @@ expand_asm_expr (tree exp)
OUTPUTS some trees for where the values were actually stored. */
expand_asm_operands (ASM_STRING (exp), outputs, ASM_INPUTS (exp),
ASM_CLOBBERS (exp), ASM_VOLATILE_P (exp),
+ /* APPLE LOCAL CW asm blocks. */
+ ASM_USES (exp),
input_location);
/* Copy all the intermediate outputs into the specified outputs. */
@@ -2238,8 +2268,8 @@ emit_case_bit_tests (tree index_type, tree index_expr, tree minval,
qsort (test, count, sizeof(*test), case_bit_test_cmp);
index_expr = fold (build2 (MINUS_EXPR, index_type,
- convert (index_type, index_expr),
- convert (index_type, minval)));
+ fold_convert (index_type, index_expr),
+ fold_convert (index_type, minval)));
index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0);
do_pending_stack_adjust ();
@@ -2359,7 +2389,7 @@ expand_case (tree exp)
uniq = 0;
count = 0;
- label_bitmap = BITMAP_XMALLOC ();
+ label_bitmap = BITMAP_ALLOC (NULL);
for (n = case_list; n; n = n->right)
{
/* Count the elements and track the largest and smallest
@@ -2390,11 +2420,17 @@ expand_case (tree exp)
}
}
- BITMAP_XFREE (label_bitmap);
+ BITMAP_FREE (label_bitmap);
/* cleanup_tree_cfg removes all SWITCH_EXPR with a single
- destination, such as one with a default case only. */
- gcc_assert (count != 0);
+ destination, such as one with a default case only. However,
+ it doesn't remove cases that are out of range for the switch
+ type, so we may still get a zero here. */
+ if (count == 0)
+ {
+ emit_jump (default_label);
+ return;
+ }
/* Compute span of values. */
range = fold (build2 (MINUS_EXPR, index_type, maxval, minval));
@@ -2611,8 +2647,7 @@ static int
estimate_case_costs (case_node_ptr node)
{
tree min_ascii = integer_minus_one_node;
- tree max_ascii = convert (TREE_TYPE (node->high),
- build_int_cst (NULL_TREE, 127));
+ tree max_ascii = build_int_cst (TREE_TYPE (node->high), 127);
case_node_ptr n;
int i;
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index ac7fb744f66..9463486e40e 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -72,6 +72,15 @@ static GTY(()) tree pending_sizes;
/* Show that REFERENCE_TYPES are internal and should be Pmode. Called only
by front end. */
+/* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+/* Keep track of whether we are laying out the first declared member
+ of a C++ class. We need this flag to handle the case of classes
+ with v-tables where the test to see if the offset in the record
+ is zero is not sufficient to determine if we are dealing with the
+ first declared member. */
+int darwin_align_is_first_member_of_class = 0;
+/* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
+
void
internal_reference_types (void)
{
@@ -415,6 +424,12 @@ layout_decl (tree decl, unsigned int known_align)
|| DECL_SIZE_UNIT (decl) == 0
|| TREE_CODE (DECL_SIZE_UNIT (decl)) == INTEGER_CST))
DECL_ALIGN (decl) = MIN (DECL_ALIGN (decl), BITS_PER_UNIT);
+/* APPLE LOCAL begin Macintosh alignment 2002-2-12 --ff */
+#ifdef PEG_ALIGN_FOR_MAC68K
+ else if (TARGET_ALIGN_MAC68K)
+ DECL_ALIGN (decl) = PEG_ALIGN_FOR_MAC68K (DECL_ALIGN (decl));
+#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-12 --ff */
if (! DECL_USER_ALIGN (decl) && ! DECL_PACKED (decl))
{
@@ -426,7 +441,10 @@ layout_decl (tree decl, unsigned int known_align)
= MIN (DECL_ALIGN (decl), (unsigned) BIGGEST_FIELD_ALIGNMENT);
#endif
#ifdef ADJUST_FIELD_ALIGN
- DECL_ALIGN (decl) = ADJUST_FIELD_ALIGN (decl, DECL_ALIGN (decl));
+ /* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+ DECL_ALIGN (decl) = ADJUST_FIELD_ALIGN (decl, DECL_ALIGN (decl),
+ known_align == 0);
+ /* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
#endif
}
@@ -663,6 +681,23 @@ update_alignment_for_field (record_layout_info rli, tree field,
&& DECL_BIT_FIELD_TYPE (field)
&& ! integer_zerop (TYPE_SIZE (type)));
+ /* APPLE LOCAL begin Macintosh alignment 2002-5-24 --ff */
+#ifdef ADJUST_FIELD_ALIGN
+ if (! user_align && TREE_CODE (rli->t) == RECORD_TYPE)
+ /* The third argument to ADJUST_FIELD_ALIGN indicates whether
+ we are dealing with the first field of the structure.
+ Only adjust the alignment for structs. For unions, every
+ field is the 'first' field and thus holds to its
+ natural alignment. Alignment of union is later deterimined
+ by the maximum alignment among all its fields. */
+ desired_align =
+ ADJUST_FIELD_ALIGN (field, desired_align,
+ (darwin_align_is_first_member_of_class
+ || (integer_zerop (rli->offset)
+ && integer_zerop (rli->bitpos))));
+#endif
+ /* APPLE LOCAL end Macintosh alignment 2002-5-24 --ff */
+
/* Record must have at least as much alignment as any field.
Otherwise, the alignment of the field within the record is
meaningless. */
@@ -701,13 +736,24 @@ update_alignment_for_field (record_layout_info rli, tree field,
#ifdef ADJUST_FIELD_ALIGN
if (! TYPE_USER_ALIGN (type))
- type_align = ADJUST_FIELD_ALIGN (field, type_align);
+ /* APPLE LOCAL begin Macintosh alignment */
+ type_align = ADJUST_FIELD_ALIGN (field, type_align,
+ (darwin_align_is_first_member_of_class
+ || (integer_zerop (rli->offset)
+ && integer_zerop (rli->bitpos))));
+ /* APPLE LOCAL end Macintosh alignment */
#endif
if (maximum_field_alignment != 0)
type_align = MIN (type_align, maximum_field_alignment);
else if (DECL_PACKED (field))
type_align = MIN (type_align, BITS_PER_UNIT);
+/* APPLE LOCAL begin Macintosh alignment 2002-2-12 --ff */
+#ifdef PEG_ALIGN_FOR_MAC68K
+ else if (TARGET_ALIGN_MAC68K)
+ type_align = PEG_ALIGN_FOR_MAC68K (type_align);
+#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-12 --ff */
/* The alignment of the record is increased to the maximum
of the current alignment, the alignment indicated on the
@@ -894,6 +940,11 @@ place_field (record_layout_info rli, tree field)
&& DECL_BIT_FIELD (field)
&& ! DECL_PACKED (field)
&& maximum_field_alignment == 0
+/* APPLE LOCAL begin Macintosh alignment 2002-2-12 --ff */
+#ifdef PEG_ALIGN_FOR_MAC68K
+ && ! TARGET_ALIGN_MAC68K
+#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-12 --ff */
&& ! integer_zerop (DECL_SIZE (field))
&& host_integerp (DECL_SIZE (field), 1)
&& host_integerp (rli->offset, 1)
@@ -907,7 +958,12 @@ place_field (record_layout_info rli, tree field)
#ifdef ADJUST_FIELD_ALIGN
if (! TYPE_USER_ALIGN (type))
- type_align = ADJUST_FIELD_ALIGN (field, type_align);
+ /* APPLE LOCAL begin Macintosh alignment */
+ type_align = ADJUST_FIELD_ALIGN (field, type_align,
+ (darwin_align_is_first_member_of_class
+ || (integer_zerop (rli->offset)
+ && integer_zerop (rli->bitpos))));
+ /* APPLE LOCAL end Macintosh alignment */
#endif
/* A bit field may not span more units of alignment of its type
@@ -939,7 +995,12 @@ place_field (record_layout_info rli, tree field)
#ifdef ADJUST_FIELD_ALIGN
if (! TYPE_USER_ALIGN (type))
- type_align = ADJUST_FIELD_ALIGN (field, type_align);
+ /* APPLE LOCAL begin Macintosh alignment */
+ type_align = ADJUST_FIELD_ALIGN (field, type_align,
+ (darwin_align_is_first_member_of_class
+ || (integer_zerop (rli->offset)
+ && integer_zerop (rli->bitpos))));
+ /* APPLE LOCAL end Macintosh alignment */
#endif
if (maximum_field_alignment != 0)
@@ -948,6 +1009,12 @@ place_field (record_layout_info rli, tree field)
statement, so this code is unreachable currently. */
else if (DECL_PACKED (field))
type_align = MIN (type_align, BITS_PER_UNIT);
+/* APPLE LOCAL begin Macintosh alignment 2002-2-12 --ff */
+#ifdef PEG_ALIGN_FOR_MAC68K
+ else if (TARGET_ALIGN_MAC68K)
+ type_align = PEG_ALIGN_FOR_MAC68K (type_align);
+#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-12 --ff */
/* A bit field may not span the unit of alignment of its type.
Advance to next boundary if necessary. */
@@ -1109,8 +1176,27 @@ place_field (record_layout_info rli, tree field)
/* Offset so far becomes the position of this field after normalizing. */
normalize_rli (rli);
+ /* APPLE LOCAL begin reverse_bitfields */
+ if (targetm.reverse_bitfields_p (rli->t) && DECL_BIT_FIELD_TYPE (field))
+ {
+ /* If we've gone into the next word, move "offset" forward and
+ adjust "bitpos" to compensate. */
+ while ( !INT_CST_LT_UNSIGNED (rli->bitpos, TYPE_SIZE (TREE_TYPE (field))))
+ {
+ rli->offset = size_binop (PLUS_EXPR, rli->offset,
+ TYPE_SIZE_UNIT (TREE_TYPE (field)));
+ rli->bitpos = size_binop (MINUS_EXPR, rli->bitpos,
+ TYPE_SIZE (TREE_TYPE (field)));
+ }
+ DECL_FIELD_BIT_OFFSET (field) = size_binop (MINUS_EXPR,
+ size_binop (MINUS_EXPR,
+ TYPE_SIZE (TREE_TYPE (field)), DECL_SIZE (field)),
+ rli->bitpos);
+ }
+ else
+ DECL_FIELD_BIT_OFFSET (field) = rli->bitpos;
DECL_FIELD_OFFSET (field) = rli->offset;
- DECL_FIELD_BIT_OFFSET (field) = rli->bitpos;
+ /* APPLE LOCAL end reverse bitfields */
SET_DECL_OFFSET_ALIGN (field, rli->offset_align);
/* If this field ended up more aligned than we thought it would be (we
@@ -1298,14 +1384,23 @@ compute_record_mode (tree type)
#endif /* MEMBER_TYPE_FORCES_BLK */
}
- TYPE_MODE (type) = mode_for_size_tree (TYPE_SIZE (type), MODE_INT, 1);
-
- /* If we only have one real field; use its mode if that mode's size
- matches the type's size. This only applies to RECORD_TYPE. This
- does not apply to unions. */
+ /* APPLE LOCAL begin 8-byte-struct hack */
+ /* If we only have one real field; use its mode. This only applies to
+ RECORD_TYPE. This does not apply to unions. */
if (TREE_CODE (type) == RECORD_TYPE && mode != VOIDmode
- && GET_MODE_SIZE (mode) == GET_MODE_SIZE (TYPE_MODE (type)))
+ && GET_MODE_SIZE (mode) == GET_MODE_SIZE (mode_for_size_tree (TYPE_SIZE (type), MODE_INT, 1)))
TYPE_MODE (type) = mode;
+#if defined RS6000_VARARGS_AREA
+ /* Make 8-byte structs BLKmode instead of DImode, which fixes both
+ struct-return methods and attempts to use floats in kernel code.
+ This should probably become a generic macro similar to
+ MEMBER_TYPE_FORCES_BLK above. */
+ else if (mode_for_size_tree (TYPE_SIZE (type), MODE_INT, 1) == DImode)
+ ;
+#endif
+ else
+ TYPE_MODE (type) = mode_for_size_tree (TYPE_SIZE (type), MODE_INT, 1);
+ /* APPLE LOCAL end 8-byte-struct hack */
/* If structure's known alignment is less than what the scalar
mode would need, and it matters, then stick with BLKmode. */
diff --git a/gcc/stub-objc.c b/gcc/stub-objc.c
index f01fd9b4249..bfc24987410 100644
--- a/gcc/stub-objc.c
+++ b/gcc/stub-objc.c
@@ -63,14 +63,42 @@ objc_is_reserved_word (tree ARG_UNUSED (ident))
return 0;
}
-int
-objc_comptypes (tree ARG_UNUSED (lhs), tree ARG_UNUSED (rhs),
- int ARG_UNUSED (reflexive))
+/* APPLE LOCAL begin 4154928 */
+tree
+objc_common_type (tree ARG_UNUSED (type1), tree ARG_UNUSED (type2))
+{
+ return 0;
+}
+
+/* APPLE LOCAL end 4154928 */
+/* APPLE LOCAL begin mainline */
+/* The 'objc_comptypes' routine has been removed. */
+bool
+objc_compare_types (tree ARG_UNUSED (ltyp), tree ARG_UNUSED (rtyp),
+ int ARG_UNUSED (argno), tree ARG_UNUSED (callee))
+{
+ return false;
+}
+
+void
+objc_volatilize_decl (tree ARG_UNUSED (decl))
+{
+}
+
+bool
+objc_type_quals_match (tree ARG_UNUSED (ltyp), tree ARG_UNUSED (rtyp))
+{
+ return false;
+}
+
+tree
+objc_rewrite_function_call (tree function, tree ARG_UNUSED (params))
{
- return -1;
+ return function;
}
tree
+/* APPLE LOCAL end mainline */
objc_message_selector (void)
{
return 0;
@@ -230,6 +258,14 @@ objc_get_class_reference (tree ARG_UNUSED (name))
return 0;
}
+/* APPLE LOCAL begin mainline */
+tree
+objc_get_class_ivars (tree ARG_UNUSED (name))
+{
+ return 0;
+}
+/* APPLE LOCAL end mainline */
+
tree
objc_get_protocol_qualified_type (tree ARG_UNUSED (name),
tree ARG_UNUSED (protos))
@@ -254,3 +290,52 @@ objc_is_public (tree ARG_UNUSED (expr), tree ARG_UNUSED (identifier))
{
return 1;
}
+
+/* APPLE LOCAL begin mainline */
+tree
+objc_build_throw_stmt (tree ARG_UNUSED (expr))
+{
+ return 0;
+}
+
+void
+objc_begin_try_stmt (location_t ARG_UNUSED (loc), tree ARG_UNUSED (stmt))
+{
+}
+
+tree
+objc_finish_try_stmt (void)
+{
+ return 0;
+}
+
+void
+objc_begin_catch_clause (tree ARG_UNUSED (parm))
+{
+}
+
+void
+objc_finish_catch_clause (void) {
+}
+
+void
+objc_build_finally_clause (location_t ARG_UNUSED (location),
+ tree ARG_UNUSED (stmt))
+{
+}
+
+tree
+objc_build_synchronized (location_t ARG_UNUSED (location),
+ tree ARG_UNUSED (lock), tree ARG_UNUSED (stmt))
+{
+ return 0;
+}
+
+tree
+objc_generate_write_barrier (tree ARG_UNUSED (lhs),
+ enum tree_code ARG_UNUSED (modifycode),
+ tree ARG_UNUSED (rhs))
+{
+ return 0;
+}
+/* APPLE LOCAL end mainline */
diff --git a/gcc/system.h b/gcc/system.h
index 752c2542b26..d45e56afb33 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -1,6 +1,6 @@
/* Get common system includes and various definitions and declarations based
on autoconf macros.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GCC.
@@ -660,7 +660,9 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END \
DBX_OUTPUT_GCC_MARKER DBX_FINISH_SYMBOL SDB_GENERATE_FAKE \
NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE \
- CASE_DROPS_THROUGH
+ CASE_DROPS_THROUGH TARGET_BELL TARGET_BS TARGET_CR TARGET_DIGIT0 \
+ TARGET_ESC TARGET_FF TARGET_NEWLINE TARGET_TAB TARGET_VT \
+ LINK_LIBGCC_SPECIAL
/* Hooks that are no longer used. */
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
diff --git a/gcc/target-def.h b/gcc/target-def.h
index 499d37fb9f2..034cab031eb 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -294,6 +294,16 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_EXPAND_BUILTIN default_expand_builtin
#define TARGET_FOLD_BUILTIN hook_tree_tree_bool_null
+/* APPLE LOCAL begin constant cfstrings */
+/* In c-common.c. */
+#ifndef TARGET_EXPAND_TREE_BUILTIN
+#define TARGET_EXPAND_TREE_BUILTIN hook_tree_tree_tree_tree_null
+#endif
+#ifndef TARGET_CONSTRUCT_OBJC_STRING
+#define TARGET_CONSTRUCT_OBJC_STRING hook_tree_tree_null
+#endif
+/* APPLE LOCAL end constant cfstrings */
+
/* In varasm.c. */
#ifndef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS default_section_type_flags
@@ -340,6 +350,8 @@ 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
+/* APPLE LOCAL pragma reverse_bitfields */
+#define TARGET_REVERSE_BITFIELDS_P hook_bool_tree_false
#define TARGET_ALIGN_ANON_BITFIELD hook_bool_void_false
#define TARGET_RTX_COSTS hook_bool_rtx_int_int_intp_false
#define TARGET_MANGLE_FUNDAMENTAL_TYPE hook_constcharptr_tree_null
@@ -355,6 +367,15 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#ifndef TARGET_ENCODE_SECTION_INFO
#define TARGET_ENCODE_SECTION_INFO default_encode_section_info
#endif
+/* APPLE LOCAL begin mainline 2005-04-14 */
+#ifndef TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN
+#define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN hook_invalid_arg_for_unprototyped_fn
+#endif
+/* APPLE LOCAL end mainline 2005-04-14 */
+
+/* APPLE LOCAL begin AltiVec */
+#define TARGET_CAST_EXPR_AS_VECTOR_INIT false
+/* APPLE LOCAL end AltiVec */
#define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false
@@ -390,6 +411,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_STRICT_ARGUMENT_NAMING hook_bool_CUMULATIVE_ARGS_false
#define TARGET_PRETEND_OUTGOING_VARARGS_NAMED \
default_pretend_outgoing_varargs_named
+/* APPLE LOCAL begin Altivec */
+#define TARGET_SKIP_VEC_ARGS default_skip_vec_args
+/* APPLE LOCAL end Altivec */
+
#define TARGET_SPLIT_COMPLEX_ARG NULL
#define TARGET_GIMPLIFY_VA_ARG_EXPR std_gimplify_va_arg_expr
@@ -401,6 +426,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_CALLEE_COPIES hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false
#define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0
+/* APPLE LOCAL begin mainline 2005-04-14 */
#define TARGET_CALLS { \
TARGET_PROMOTE_FUNCTION_ARGS, \
TARGET_PROMOTE_FUNCTION_RETURN, \
@@ -414,10 +440,15 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_STRICT_ARGUMENT_NAMING, \
TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \
TARGET_SPLIT_COMPLEX_ARG, \
+ /* APPLE LOCAL begin Altivec */ \
+ TARGET_SKIP_VEC_ARGS, \
+ /* APPLE LOCAL end Altivec */ \
TARGET_MUST_PASS_IN_STACK, \
TARGET_CALLEE_COPIES, \
- TARGET_ARG_PARTIAL_BYTES \
+ TARGET_ARG_PARTIAL_BYTES, \
+ TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN \
}
+/* APPLE LOCAL end mainline 2005-04-14 */
#ifndef TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
@@ -489,9 +520,15 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_INSERT_ATTRIBUTES, \
TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, \
TARGET_MS_BITFIELD_LAYOUT_P, \
+ /* APPLE LOCAL pragma reverse bitfields */ \
+ TARGET_REVERSE_BITFIELDS_P, \
TARGET_ALIGN_ANON_BITFIELD, \
TARGET_INIT_BUILTINS, \
TARGET_EXPAND_BUILTIN, \
+ /* APPLE LOCAL begin constant cfstrings */ \
+ TARGET_EXPAND_TREE_BUILTIN, \
+ TARGET_CONSTRUCT_OBJC_STRING, \
+ /* APPLE LOCAL end constant cfstrings */ \
TARGET_FOLD_BUILTIN, \
TARGET_MANGLE_FUNDAMENTAL_TYPE, \
TARGET_INIT_LIBFUNCS, \
@@ -536,6 +573,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_TERMINATE_DW2_EH_FRAME_INFO, \
TARGET_ASM_FILE_START_APP_OFF, \
TARGET_ASM_FILE_START_FILE_DIRECTIVE, \
+ /* APPLE LOCAL AltiVec */ \
+ TARGET_CAST_EXPR_AS_VECTOR_INIT, \
TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, \
TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, \
TARGET_RELAXED_ORDERING, \
diff --git a/gcc/target.h b/gcc/target.h
index 0a54c6f7bb4..34a3008a1bb 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -323,6 +323,12 @@ struct gcc_target
Microsoft Visual C++ bitfield layout rules. */
bool (* ms_bitfield_layout_p) (tree record_type);
+ /* APPLE LOCAL begin pragma reverse_bitfields */
+ /* Return true if bitfields in RECORD_TYPE should be allocated
+ reversed (e.g. right to left on a big-endian machine). */
+ bool (* reverse_bitfields_p) (tree record_type);
+ /* APPLE LOCAL end pragma reverse_bitfields */
+
/* Return true if anonymous bitfields affect structure alignment. */
bool (* align_anon_bitfield) (void);
@@ -333,6 +339,18 @@ struct gcc_target
rtx (* expand_builtin) (tree exp, rtx target, rtx subtarget,
enum machine_mode mode, int ignore);
+ /* APPLE LOCAL begin constant cfstrings */
+ /* Expand a platform-specific (but machine-independent) builtin. */
+ tree (* expand_tree_builtin) (tree function, tree params,
+ tree coerced_params);
+
+ /* Construct a target-specific Objective-C string object based on the
+ STRING_CST passed in STR, or NULL if the default Objective-C objects
+ (based on NSConstantString or NXConstantString) should be used
+ instead. */
+ tree (* construct_objc_string) (tree str);
+ /* APPLE LOCAL end constant cfstrings */
+
/* Fold a target-specific builtin. */
tree (* fold_builtin) (tree exp, bool ignore);
@@ -525,6 +543,9 @@ struct gcc_target
/* Given a complex type T, return true if a parameter of type T
should be passed as two scalars. */
bool (* split_complex_arg) (tree type);
+ /* APPLE LOCAL begin Altivec */
+ bool (*skip_vec_args) (tree, int, int*);
+ /* APPLE LOCAL end Altivec */
/* Return true if type T, mode MODE, may not be passed in registers,
but must be passed on the stack. */
@@ -543,6 +564,12 @@ struct gcc_target
in registers; the balance is therefore passed on the stack. */
int (* arg_partial_bytes) (CUMULATIVE_ARGS *ca, enum machine_mode mode,
tree type, bool named);
+ /* APPLE LOCAL begin mainline 2005-04-14 */
+ /* Return the diagnostic message string if function without a prototype
+ is not allowed for this 'val' argument; NULL otherwise. */
+ const char *(*invalid_arg_for_unprototyped_fn) (tree typelist,
+ tree funcdecl, tree val);
+ /* APPLE LOCAL end mainline 2005-04-14 */
} calls;
/* Functions specific to the C++ frontend. */
@@ -598,6 +625,17 @@ struct gcc_target
at the beginning of assembly output. */
bool file_start_file_directive;
+ /* APPLE LOCAL begin AltiVec */
+ /* True if it is permissible to use cast expressions as
+ vector initializers, e.g.:
+
+ (vector unsigned int)(3, 4, 5, 6)
+ (vector float)(2.5)
+
+ This is required for the Motorola AltiVec syntax on the PowerPC. */
+ bool cast_expr_as_vector_init;
+ /* APPLE LOCAL end AltiVec */
+
/* True if #pragma redefine_extname is to be supported. */
bool handle_pragma_redefine_extname;
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 56070931e01..c231e03f1e9 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -129,6 +129,16 @@ default_pretend_outgoing_varargs_named (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
!= default_setup_incoming_varargs);
}
+/* APPLE LOCAL begin Altivec */
+bool
+default_skip_vec_args(tree type ATTRIBUTE_UNUSED,
+ int pass ATTRIBUTE_UNUSED,
+ int* last_pass ATTRIBUTE_UNUSED)
+{
+ return false;
+}
+/* APPLE LOCAL end Altivec */
+
enum machine_mode
default_eh_return_filter_mode (void)
{
@@ -288,3 +298,14 @@ hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 (
{
return 0;
}
+/* APPLE LOCAL begin mainline 2005-04-14 */
+
+const char *
+hook_invalid_arg_for_unprototyped_fn (
+ tree typelist ATTRIBUTE_UNUSED,
+ tree funcdecl ATTRIBUTE_UNUSED,
+ tree val ATTRIBUTE_UNUSED)
+{
+ return NULL;
+}
+/* APPLE LOCAL end mainline 2005-04-14 */
diff --git a/gcc/targhooks.h b/gcc/targhooks.h
index 1965bbdb60c..eccdf80d38e 100644
--- a/gcc/targhooks.h
+++ b/gcc/targhooks.h
@@ -29,6 +29,9 @@ extern rtx default_expand_builtin_saveregs (void);
extern void default_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode, tree, int *, int);
extern rtx default_builtin_setjmp_frame_value (void);
extern bool default_pretend_outgoing_varargs_named (CUMULATIVE_ARGS *);
+/* APPLE LOCAL begin Altivec */
+extern bool default_skip_vec_args (tree, int, int*);
+/* APPLE LOCAL end Altivec */
extern enum machine_mode default_eh_return_filter_mode (void);
extern unsigned HOST_WIDE_INT default_shift_truncation_mask
@@ -58,3 +61,7 @@ extern bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true
(CUMULATIVE_ARGS *, enum machine_mode, tree, bool);
extern int hook_int_CUMULATIVE_ARGS_mode_tree_bool_0
(CUMULATIVE_ARGS *, enum machine_mode, tree, bool);
+/* APPLE LOCAL begin mainline 2005-04-14 */
+extern const char *hook_invalid_arg_for_unprototyped_fn
+ (tree, tree, tree);
+/* APPLE LOCAL end mainline 2005-04-14 */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 34b9f12ddcd..f6975c6e8c9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,979 @@
+2005-06-17 Geoffrey Keating <geoffk@apple.com>
+
+ PR c++/17413
+ * g++.dg/template/local5.C: New.
+
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/20991
+ * g++.dg/opt/pr20991.C: New test.
+
+2005-04-17 Richard Sandiford <rsandifo@redhat.com>
+
+ * gcc.c-torture/execute/20050410-1.c: New test.
+
+2005-04-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/20739
+ * gcc.dg/tree-ssa/pr20739.c: New test.
+
+2005-04-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/21025
+ * g++.dg/template/sizeof9.C: New test.
+
+2005-04-14 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/20927
+ * gcc.dg/pr20927.c: New test.
+
+2005-04-14 Alexandre Oliva <aoliva@redhat.com>
+ Roger Sayle <roger@eyesopen.com>
+
+ PR target/20126
+ * gcc.c-torture/execute/20050414-1.c: New.
+
+2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/20163
+ * gfortran.dg/open-options-blanks.f: New test.
+
+2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR middle-end/20917
+ * gcc.dg/20050409-1.c: New test.
+
+2005-04-10 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/warn/Wdtor1.C: Declare template in system header with
+ explicit C++ linkage.
+
+2005-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20795
+ * g++.dg/abi/param2.C: New test.
+
+2005-04-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20905
+ * g++.dg/parse/cond2.C: New test.
+
+2005-04-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20145
+ * g++.dg/warn/Wdtor1.C: New test.
+
+2005-04-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR fortran/17229
+ * gfortran.dg/pr17229.f: New test.
+
+2005-04-07 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/tiny_1.f90: New test.
+ * gfortran.dg/tiny_2.f90: ditto.
+
+2005-04-07 Thomas Koenig <Thomas.Koenig@online.de>
+
+ * gfortran.dg/eor_1.f90: Fix dg-do run line
+ * gfortran.dg/open_new.f90: Fix dg-do run line
+
+2005-03-12 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.dg/vmx/darwin-abi-3.c: Delete.
+
+2005-04-06 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.dg/pr15754.f90: Change annotations to dg-error.
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.dg/weak/weak-12.c, g++.dg/ext/weak2.C: New tests.
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.dg/i386-387-7.c, gcc.dg/i386-3dnowA-1.c,
+ gcc.dg/i386-3dnowA-2.c, gcc.dg/pr12092-1.c: Skip x86 tests for
+ -m64.
+ * gcc.dg/loop-3.c, gcc.dg/short-compare-1.c,
+ gcc.dg/short-compare-2.c, gcc.dg/smod-1.c,
+ gcc.dg/torture/badshift.c: Don't give 32-bit options for x86 -m64.
+
+2005-04-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20212
+ * g++.dg/warn/Wunused-11.C: New test.
+
+2005-04-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/20076
+ * gcc.dg/builtin-apply4.c: New test.
+
+ PR preprocessor/19475
+ * gcc.dg/cpp/macspace1.c: New test.
+ * gcc.dg/cpp/macspace2.c: New test.
+
+2005-04-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20734
+ * g++.dg/template/ptrmem13.C: New test.
+
+2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/pr20755.f: Fix bad format.
+
+2005-04-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20763
+ * g++.dg/ext/attrib21.C: New test.
+
+2005-04-05 Hans-Peter Nilsson <hp@axis.com>
+
+ PR rtl-optimization/20527
+ * gcc.c-torture/execute/pr20527-1.c: New test.
+
+2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20755
+ * gfortran.dg/pr20755.f: New test.
+
+2005-04-05 Feng Wang <fengwang@nudt.edu.cn>
+
+ * gfortran.dg/pr15959.f90: New test.
+ * gfortran.dg/string_pad_trunc.f90: New test.
+
+2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/backspace.f, gfortran.dg/g77_intrinsics_funcs.f,
+ gfortran.dg/g77_intrinsics_sub.f, gfortran.dg/negative_unit.f,
+ gfortran.dg/g77/12002.f: Correct dejagnu syntax.
+
+2005-04-05 Feng Wang <fengwang@nudt.edu.cn>
+
+ * gfortran.dg/pr18025.f90: Change {dg-do run} to { dg-do run }.
+
+2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20040323-1.c (_rtld_global): Set to 1.
+
+2005-04-04 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/19199
+ * g++.dg/expr/lval2.C: New.
+
+2005-04-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * gcc.c-torture/compile/20011119-1.c: Require weak and alias support.
+ * gcc.c-torture/compile/20011119-2.c: Likewise.
+ * gcc.c-torture/compile/981001-2.c: Likewise.
+
+2005-04-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20679
+ * g++.dg/template/overload4.C: New test.
+
+2005-04-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/16104
+ * gcc.c-torture/execute/20050316-1.c: New test.
+
+2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR debug/20505
+ * g++.dg/debug/const2.C: New.
+
+2005-04-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/18644
+ * g++.old-deja/g++.jason/warning9.C: Adjust.
+
+2005-04-01 Dale Ranta <dir@lanl.gov>
+ Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20068
+ PR libfortran/20125
+ PR libfortran/20156
+ PR libfortran/20471
+ * gfortran.dg/backspace.f: New test.
+
+2005-04-02 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc.dg/pr19345.c: New test.
+
+2005-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR tree-optimization/20640
+ * gcc.dg/torture/tree-loop-1.c: New.
+
+2005-04-02 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/20290
+ * gcc.c-torture/execute/loop-ivopts-2.c: New.
+
+2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.dg/old-style-then-proto-1.c: New test.
+
+2005-04-01 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.fortran-torture/execute/backspace.f90: Check
+ after backspace and read was incorrect.
+
+2005-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/19406
+ * g++.dg/debug/using1.C: New test.
+
+2005-04-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/17855
+ * gcc.c-torture/compile/struct-non-lval-1.c,
+ gcc.c-torture/compile/struct-non-lval-2.c,
+ gcc.c-torture/compile/struct-non-lval-3.c: New tests.
+
+2005-03-31 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20660
+ * gfortran.dg/negative_unit.f: New test.
+
+2005-03-31 Ben Elliston <bje@au.ibm.com>
+
+ * README: Update the DejaGnu bug reporting address.
+ * lib/c-torture.exp: Remove the DejaGnu bug reporting address.
+ * lib/objc-torture.exp: Likewise.
+
+2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/772
+ PR c/17913
+ * gcc.dg/stmt-expr-label-1.c, gcc.dg/stmt-expr-label-2.c,
+ gcc.dg/stmt-expr-label-3.c : New tests.
+ * gcc.c-torture/execute/medce-2.c: Remove.
+
+2005-03-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/20368
+ * gcc.dg/pr20368-1.c, gcc.dg/pr20368-2.c, gcc.dg/pr20368-3.c: New
+ tests.
+
+2005-03-30 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/20249
+ * gcc.dg/20050325-1.c: New test.
+
+2005-03-30 Alan Modra <amodra@bigpond.net.au>
+
+ * gcc.c-torture/compile/pr20203.c: New test.
+
+2005-03-29 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/20532
+ * gcc.dg/torture/badshift.c: New.
+
+2005-03-29 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/promotion.f90: New test.
+
+2005-03-29 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/20491
+ * gcc.dg/torture/asm-subreg-1.c: New test.
+
+2005-03-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/20622
+ * gcc.dg/alias-7.c: New test.
+
+2005-03-29 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/sparc-reg-1.c: New test.
+
+2005-03-29 Dale Ranta <dir@lanl.gov>
+ Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20163
+ * gfortran.dg/pr20163-2.f: New test.
+
+2005-03-27 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.old-deja/g++.warn/compare1.C: Fix typo.
+
+2005-03-24 Geoffrey Keating <geoffk@apple.com>
+
+ * g++.dg/ext/visibility/pragma-override1.C: Mark as requiring
+ 'internal' visibility.
+ * g++.dg/ext/visibility/pragma-override2.C: Likewise.
+ * g++.dg/ext/visibility/visibility-7.C: Mark as requiring
+ 'protected' visibility.
+ * gcc.dg/visibility-7.c: Likewise.
+ * lib/target-supports.exp (check_visibility_available): Take
+ a parameter, the kind of visibility to check for.
+ * lib/target-supports-dg.exp (dg-require-visibility): Pass parameter
+ to check_visibility_available.
+
+ * g++.dg/expr/cast3.C: New.
+
+2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/19678
+ PR libfortran/19679
+ * gfortran.dg/dos_eol.f: New test.
+
+2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/15332
+ * gfortran.dg/pr15332.f: New test.
+
+2005-03-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/pr18025.f90: New test.
+
+2005-03-23 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.old-deja/g++.warn/compare1.C: Run with -Wno-deprecated.
+
+2005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * gfortran.dg/g77_intrinsics_funcs.f: New test.
+ * gfortran.dg/g77_intrinsics_sub.f: New test.
+
+2005-03-22 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/opt/max1.C: Run with -Wno-deprecated.
+ * g++.dg/opt/pr7503-2.C: Likewise.
+ * g++.dg/opt/pr7503-3.C: Likewise.
+ * g++.dg/opt/pr7503-4.C: Likewise.
+ * g++.dg/opt/pr7503-5.C: Likewise.
+ * g++.dg/warn/minmax.C: New test.
+
+2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19980
+ * g++.dg/template/redecl3.C: New test.
+
+2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/20499
+ * g++.dg/parse/error16.C: Tweak error markers.
+
+2005-03-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20561
+ * gcc.dg/20050321-2.c: New test.
+
+2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20465
+ PR c++/20381
+ * g++.dg/template/ptrmem12.C: New.
+
+2005-03-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/20461
+ * g++.dg/parse/crash24.C: New test.
+
+ PR c++/20536
+ * g++.dg/parse/crash25.C: New test.
+
+2005-03-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/20463
+ * g++.dg/template/crash35.C: New test.
+
+2005-03-21 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/20539
+ * gcc.c-torture/compile/pr13066-1.c: New test case.
+ * gcc.c-torture/compile/pr20539-1.c: Likewise.
+ * g++.dg/opt/pr13066-1.C: Likewise.
+
+2005-03-21 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/20147
+ * g++.dg/ext/stmtexpr4.C: New test.
+
+2005-03-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.dg/bitfld-14.c, gcc.dg/enum3.c: New tests.
+
+2005-03-19 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/18525
+ * gfortran.dg/nesting_1.f90: New test.
+
+2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/20240
+ * g++.dg/lookup/using13.C: New test.
+
+2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/20333
+ * g++.dg/template/crash36.C: New test.
+
+2005-03-16 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/15700
+ * gcc.c-torture/compile/20040323-1.c: Don't xfail for solaris.
+ (_rtld_global): New.
+ * gcc.dg/weak/weak-3.c (ffoox1f, ffoox1g): Define.
+ * gcc.dg/weak/weak-9.c (notf1, notf2, notf3, notf4): Define.
+
+ * gcc.dg/alias-3.c: New.
+ * gcc.dg/alias-4.c: New.
+ * gcc.dg/alias-5.c: New.
+ * gcc.dg/alias-6.c: New.
+
+2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20257
+ * gfortran.dg/pr20257.f90: New test.
+
+2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20480
+ * gfortran.dg/pr20480.f90: New test.
+
+2005-03-15 Feng Wang <fengwang@nudt.edu.cn>
+
+ PR fortran/18827
+ * gfortran.dg/assign_2.f90: New test.
+ * gfortran.dg/assign_3.f90: New test.
+ * gfortran.dg/assign.f90: New test.
+
+2005-03-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * g++.dg/other/cv_func.C, g++.dg/other/offsetof3.C,
+ g++.dg/parse/error11.C, g++.dg/tc1/dr108.C,
+ g++.dg/template/local4.C, g++.dg/template/nontype6.C,
+ g++.dg/warn/deprecated.C: Ensure uniqueness of test assertion
+ names.
+
+2005-03-14 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/20280
+ * g++.dg/tree-ssa/pr20280.C: New.
+
+2005-03-14 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcc.dg/pr18628.c: New.
+
+2005-03-14 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/20467
+ * gfortran.dg/stfunc_2.f90: New test.
+
+2005-03-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * gcc.target/mips/fix-vr4130-[1-4].c: New tests.
+
+2005-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20157
+ * g++.dg/template/error18.C: New test.
+
+2005-03-13 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc.dg/anon-struct-6.c, gcc.dg/array-8.c,
+ gcc.dg/cpp/19940712-1.c, gcc.dg/cpp/19951025-1.c,
+ gcc.dg/cpp/tr-warn6.c, gcc.dg/deprecated.c, gcc.dg/init-bad-1.c,
+ gcc.dg/init-bad-2.c, gcc.dg/init-bad-3.c, gcc.dg/m-un-2.c,
+ gcc.dg/parm-mismatch-1.c, gcc.dg/redecl-1.c: Ensure uniqueness of
+ test assertion names.
+
+2003-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/16907
+ * gfortran.dg/real_index_1.f90: New test.
+
+2005-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/20323
+ * gfortran.dg/spec_expr_1.f90: New test.
+
+2005-03-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/20361
+ * gfortran.dg/largeequiv_1.f90: New test.
+
+2005-03-12 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20124
+ * gfortran.dg/pr20124.f90: New Test
+
+2005-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * objc.dg/stabs-1.m (dg-final): Change regexp pattern for hppa SOM.
+
+2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR rtl-opt/20412
+ * gcc.c-torture/compile/pr20412.c: New test.
+
+2005-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20322
+ * gcc.dg/20050307-1.c: New test.
+
+2005-03-10 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20375
+ * g++.dg/other/stdarg3.C: New.
+
+2005-03-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/18384, c++/18327
+ * g++.dg/init/array19.C: New test.
+
+ PR inline-asm/20314
+ * gcc.dg/torture/pr20314-1.c: New test.
+ * gcc.dg/torture/pr20314-2.c: New test.
+
+2005-03-09 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20050309-1.c: New test.
+
+2005-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20208
+ * g++.dg/template/array13.C: New test.
+
+2005-03-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20186
+ * g++.dg/template/non-dependent12.C: New.
+
+2005-03-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20142
+ * g++.dg/init/array18.C: New test.
+
+2005-03-08 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/pr20122.c: New test.
+
+2005-03-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/warn/weak1.C: Skip test on hppa*-*-hpux*.
+ * g++.dg/init/dso_handle1.C, gcc.dg/torture/builtin-noret-1.c,
+ gcc.dg/torture/builtin-noret-2.c: Require weak support.
+
+2005-03-07 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/warn/Wnvdtor.C: New test.
+
+2005-03-07 Richard Sandiford <rsandifo@redhat.com>
+
+ * gcc.dg/torture/pr19683-1.c: New test.
+
+2005-03-06 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/g77/19990313-1.f: Replace tabs with spaces.
+ * gfortran.dg/g77/19990313-2.f: ditto
+ * gfortran.dg/g77/19990313-3.f: ditto
+ * gfortran.dg/g77/19990525-0.f: ditto
+ * gfortran.dg/g77/19990826-0.f: ditto
+ * gfortran.dg/g77/19990826-2.f: ditto
+ * gfortran.dg/g77/19990826-3.f: ditto
+ * gfortran.dg/g77/20000511-1.f: ditto
+ * gfortran.dg/g77/20000511-2.f: ditto
+ * gfortran.dg/g77/970625-2.f: ditto
+ * gfortran.dg/g77/980310-2.f: ditto
+ * gfortran.dg/g77/980310-3.f: ditto
+ * gfortran.dg/g77/980310-8.f: ditto
+ * gfortran.dg/g77/980519-2.f: ditto
+ * gfortran.dg/g77/alpha1.f: ditto
+ * gfortran.dg/g77/claus.f: ditto
+ * gfortran.dg/g77/erfc.f: ditto
+ * gfortran.dg/g77/short.f: ditto
+ * gfortran.fortran-torture/execute/data.f90: ditto
+ * gfortran.fortran-torture/execute/integer_select.f90: ditto
+ * gfortran.fortran-torture/execute/integer_select_1.f90: ditto
+
+2005-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * lib/file-format.exp (gcc_target_object_format): Add check for som
+ format and hardcode object formats on hppa*-*-hpux*.
+ * lib/target-supports.exp (check_weak_available): Add check for som
+ object format. Always return 0 on hppa*-*-hpux10*.
+
+ * gcc.dg/titype-1.c, gcc.dg/uninit-C.c: Don't use TImode if __hppa__
+ is defined.
+
+ * objc.dg/stabs-1.m: hppa*64*-*-* doesn't have stabs.
+
+2005-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/19311
+ * g++.dg/template/non-dependent11.C: New test.
+
+2005-03-05 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/pr19936_1.f90: New test.
+ * gfortran.dg/pr19936_1.f90: ditto.
+ * gfortran.dg/pr19936_1.f90: ditto.
+
+2005-03-05 Paul Thomas <prthomas@drfccad.cea.fr>
+ Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/PR19754_1.f90: New test.
+ * gfortran.dg/PR19754_2.f90: ditto.
+
+2005-03-05 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c++/19797
+ * g++.dg/abi/vague1.C: Remove xfail hppa*-*-hpux*.
+
+2005-03-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/19673
+ * gfortran.dg/func_result_1.f90: New test.
+
+2005-03-04 David Billinghurst <David.Billinghurst@riotinto.com>
+
+ * gcc.dg/cpp/assert4.c: Fix for cygwin.
+
+2005-03-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19916
+ * g++.dg/init/ptrmem2.C: New test.
+
+2005-03-02 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/overload/using2.C: New.
+
+2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/20232
+ * g++.dg/inherit/covariant12.C: New.
+
+2005-02-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ PR fortran/19479
+ * gfortran.dg/bound_1.f90: New test.
+
+2005-02-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/19874
+ * gcc.c-torture/execute/20050119-2.c: New test case.
+
+2005-02-27 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * gfortran.dg/boz_1.f90: New test.
+ * gfortran.dg/boz_3.f90: New test.
+ * gfortran.dg/boz_4.f90: New test.
+
+2005-02-27 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * gfortran.dg/ishft.f90: Remove kind suffix from BOZ constant
+ * gfortran.fortran-torture/execute/intrinsic_mvbits.f90: ditto
+
+2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20101
+ * gfortran.dg/write_0_pe_format.f90: New test.
+
+2005-02-27 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.dg/e_d_fmt.f90: New test.
+
+2005-02-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/20206
+ * g++.dg/opt/thunk2.C: New test.
+ * g++.dg/opt/covariant1.C: New test.
+
+2005-02-27 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * gcc.dg/tree-ssa/inline_asm-2.c: link_error produces
+ a V_MAY_DEF also.
+
+2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/20188
+ * gcc.dg/tree-ssa/inline_asm-1.c: New test.
+ * gcc.dg/tree-ssa/inline_asm-2.c: New test.
+ * gcc.dg/asm-b.c: New test.
+
+2005-02-26 Richard Sandiford <rsandifo@redhat.com>
+
+ * gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: New file.
+ Disable this test on IRIX 6.
+
+2005-02-25 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/20204
+ * testsuite/gcc.dg/pr20204.c: New test.
+
+2005-02-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/20196
+ * gcc.c-torture/execute/20050224-1.c: New test.
+
+ PR c++/20175
+ * g++.dg/warn/Wbraces2.C: New test.
+
+2005-02-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19878
+ * g++.dg/init/const2.C: New test.
+
+2005-02-23 Hans-Peter Nilsson <hp@axis.com>
+
+ PR tree-optimization/20100
+ * gcc.c-torture/execute/pr20100-1.c: New test.
+
+2005-02-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.dg/implicit_3.f90: New test.
+
+ * gfortran.dg/deftype_1.f90: New test.
+
+2005-02-23 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/lookup/anon2.C: Don't let access checks make it look like
+ the test passes.
+ * g++.dg/other/anon3.C: Accept a warning.
+
+2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcc.dg/pr20017.c: Fix a comment typo.
+
+2005-02-23 Bud Davis <bdavis@gfortran.org>
+
+ * gfortran.dg/list_read_4.f90: Change to f90 comments.
+
+2005-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR ada/19902
+ * ada/acats/tests/cxa/cxa3004.a: Remove.
+ * ada/acats/tests/cxb/cxb30061.am: Likewise.
+
+2005-02-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20073
+ * g++.dg/init/const1.C: New test.
+
+ PR c++/19991
+ * g++.dg/parse/constant7.C: New test.
+
+ PR c++/20152
+ * g++.dg/parse/error27.C: New test.
+ * g++.dg/template/qualttp15.C: Adjust error markers.
+ * g++.old-deja/g++.other/struct1.C: Likewise.
+
+ PR c++/20153
+ * g++.dg/template/error17.C: New test.
+
+ PR c++/20148
+ * g++.dg/parser/error26.C: New test.
+
+2005-02-22 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/20100
+ PR tree-optimization/20115
+ * gcc.dg/pr20115.c: New test.
+ * gcc.dg/pr20115-1.c: New test.
+ * gcc.dg/pr20100.c: New test.
+ * gcc.dg/tree-ssa/20040517-1.c: Expect virtual operands for
+ call-clobbered variables after alias1.
+
+2005-02-22 Bud Davis <bdavis@gfortran.org>
+
+ * gfortran.dg/list_read_4.f90: new test.
+
+2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR rtl-optimization/20017.
+ * gcc.dg/pr20017.c: New.
+
+2005-02-22 Devang Patel <dpatel@apple.com>
+
+ PR 19952
+ * g++.dg/tree-ssa/pr19952.C: New test.
+
+2005-02-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/19883
+ * g++.dg/parse/constant6.C: New test.
+
+2005-02-22 Uros Bizjak <uros@kss-loka.si>
+
+ * g++.dg/charset/asm1.c: Check for IBM1047 code set, not IBM-1047.
+ * g++.dg/charset/asm2.c: Likewise.
+ * g++.dg/charset/asm3.c: Likewise.
+ * g++.dg/charset/asm4.c: Likewise.
+ * g++.dg/charset/asm5.c: Likewise.
+ * g++.dg/charset/attribute1.c: Likewise.
+ * g++.dg/charset/attribute2.c: Likewise.
+ * g++.dg/charset/extern1.cc: Likewise.
+ * g++.dg/charset/extern2.cc: Likewise.
+ * g++.dg/charset/extern3.cc: Likewise.
+ * g++.dg/charset/function.cc: Likewise.
+ * g++.dg/charset/string.c: Likewise.
+ * g++.dg/charset/charset.exp: Likewise.
+ * lib/target-supports.exp (check_iconv_available): Fix comment.
+
+2005-02-22 Uros Bizjak <uros@kss-loka.si>
+
+ * gcc.dg/charset/builtin1.c: Use dg-require-iconv "IBM1047".
+ * gcc.dg/charset/asm1.c: Check for IBM1047 code set, not IBM-1047.
+ * gcc.dg/charset/asm2.c: Likewise.
+ * gcc.dg/charset/asm3.c: Likewise.
+ * gcc.dg/charset/asm4.c: Likewise.
+ * gcc.dg/charset/asm5.c: Likewise.
+ * gcc.dg/charset/asm6.c: Likewise.
+ * gcc.dg/charset/attribute1.c: Likewise.
+ * gcc.dg/charset/attribute2.c: Likewise.
+ * gcc.dg/charset/builtin1.c: Likewise.
+ * gcc.dg/charset/extern.c: Likewise.
+ * gcc.dg/charset/function.c: Likewise.
+ * gcc.dg/charset/string.c: Likewise.
+ * gcc.dg/charset/charset.exp: Likewise.
+
+2005-02-21 Bud Davis <bdavis9659@comcast.net>
+
+ PR fortran/20086
+ * gfortran.dg/pr20086.f90: New test.
+
+2005-02-21 Alexandre Oliva <aoliva@redhat.com>
+
+ PR tree-optimization/19786
+ * g++.dg/tree-ssa/pr19786.C: New.
+
+2005-02-21 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * lib/gfortran-dg.exp (gfortran-dg-test): Split long regexps.
+
+2005-02-21 Jeff Law <law@redhat.com>
+
+ * gcc.dg/tree-ssa/20041122-1.c: New test for missing optimization.
+
+2005-02-20 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * gfortran.dg/do_iterator: Split loop, markup all lines for
+ which an error locus is printed.
+ * gfortran.dg/pr17708.f90: Markup all lines for which an error
+ locus is printed.
+ * gfortran.dg/select_4.f90: Likewise.
+ * lib/gfortran-dg.exp (gfortran-dg-test): Handle gfortran error
+ locuses in the various permutations.
+
+2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-optimization/19951
+ * g++.dg/vect: New directory.
+ * g++.dg/vect/vect.exp: New file.
+ * g++.dg/vect/pr19951.cc: New testcase.
+ * g++.dg/dg.exp: Also prune vectorizer tests.
+
+2005-02-20 Zack Weinberg <zack@codesourcery.com>
+
+ PR 18785
+ * gcc.dg/charset/builtin1.c: New test.
+
+2005-02-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19299
+ * g++.dg/inherit/volatile1.C: New test.
+
+ PR c++/19440
+ * g++.dg/template/dtor4.C: New test.
+
+2005-02-19 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/int_1.f90: New test.
+
+2005-02-19 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/cpp/mac-eol-at-eof.c: New test.
+
+2005-02-19 Steven G. Kargl <kargls@comcast.net>
+
+ * gfortran.dg/achar_1.f90: New test.
+
+2005-02-19 Hans-Peter Nilsson <hp@axis.com>
+
+ * gcc.c-torture/execute/20020720-1.x: Don't XFAIL cris-*-*.
+
+2005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/19828
+ * gcc.dg/tree-ssa/loop-7.c: New test.
+ * gcc.c-torture/execute/20050218-1.c: New test.
+
+2005-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/20043
+ * gcc.dg/transparent-union-1.c: New test.
+ * gcc.dg/transparent-union-2.c: New test.
+
+2005-02-18 James E Wilson <wilson@specifixinc.com>
+
+ PR tree-optimization/18977
+ * gcc.c-torture/execute/loop-ivopts-1.c: New testcase.
+
+2005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/20054
+ * gcc.dg/pr20054.c: New test.
+
+2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/19508
+ * g++.dg/ext/attrib20.C: New test.
+
+2004-02-18 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/20030
+ * gfortran.fortran-torture/execute/character_passing.f90: New test.
+
+2005-02-18 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/20008
+ * g++.dg/opt/switch4.C: New.
+
+2005-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/20023
+ PR tree-optimization/20009
+ * gcc.c-torture/compile/20050217-1.c: New test.
+ * g++.dg/opt/switch3.C: New test.
+
+ PR tree-optimization/18947
+ * gcc.c-torture/compile/20050215-1.c: New test.
+ * gcc.c-torture/compile/20050215-2.c: New test.
+ * gcc.c-torture/compile/20050215-3.c: New test.
+
+2005-02-17 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/20028
+ * g++.dg/template/crash34.C: New.
+
+ PR c++/20022
+ * g++.dg/other/access3.C: New.
+
+2005-02-17 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/vect-98.c: New test.
+
+2005-02-16 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR tree-optimization/19967
+ * gcc.dg/pr19967.c: New.
+
+2005-02-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/19857
+ * gcc.dg/tree-ssa/20050215-1.c: New test.
+ * gcc.c-torture/execute/20050215-1.c: New test.
+
2005-02-15 Eric Christopher <echristo@redhat.com>
* gcc.dg/cpp/20050215-1.c: New file.
@@ -218,9 +1194,9 @@
no longer optimize.
* gcc.dg/builtins-47.c: New testcase.
-2005-02-07 Leehod Baruch <leehod@il.ibm.com>
+2005-02-07 Leehod Baruch <leehod@il.ibm.com>
Dorit Naishlos <dorit@il.ibm.com>
-
+
* testsuite/gcc.dg/vect/vect.exp: Add -ftree-vectorizer-verbose=3.
2005-02-06 Richard Sandiford <rsandifo@redhat.com>
@@ -249,7 +1225,7 @@
2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
* gcc.dg/vect/vect-85.c: Remove xfail.
- * gcc.dg/vect/vect-86.c: Remove xfail.
+ * gcc.dg/vect/vect-86.c: Remove xfail.
* gcc.dg/vect/vect-87.c: Remove xfail.
* gcc.dg/vect/vect-88.c: Remove xfail.
@@ -273,7 +1249,7 @@
PR c++/19628
* g++/ext/builtin7.C: New.
* g++/ext/builtin8.C: New.
-
+
2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
PR c/18502
@@ -427,7 +1403,7 @@
* g++.dg/template/static10.C: New test.
PR c++/19395
- * g++.dg/parse/error24.C: New test.
+ * g++.dg/parse/error24.C: New test.
PR c++/19367
* g++.dg/lookup/builtin1.C: New test.
@@ -548,7 +1524,7 @@
2005-01-26 Greg Parker <gparker@apple.com>
Stuart Hastings <stuart@apple.com>
-
+
* gcc.c-torture/execute/20050125-1.c: New.
2005-01-18 Jan Hubicka <jh@suse.cz>
@@ -861,7 +1837,7 @@
* ada/acats/tests/c3/c92005b.ada: Likewise.
* ada/acats/tests/c3/cxb3012.a: Likewise.
* ada/acats/norun.lst: Add c380004 and c953002, add PR
-
+
2005-01-09 Paul Brook <paul@codesourcery.com>
* gfortran.dg/common_2.f90: New file.
@@ -26126,7 +27102,7 @@ Thu Apr 27 15:58:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
* gcc.c-torture/compile/labels-2.c: New test.
-1999-12-27 Martin von Löwis <loewis@informatik.hu-berlin.de>
+1999-12-27 Martin von L�is <loewis@informatik.hu-berlin.de>
* gcc.c-torture/execute/991227-1.c: New test.
@@ -26134,7 +27110,7 @@ Thu Apr 27 15:58:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
* g++.old-deja/g++.pt/instantiate6.C: Remove excess errors XFAIL.
-1999-12-21 Martin von Löwis <loewis@informatik.hu-berlin.de>
+1999-12-21 Martin von L�is <loewis@informatik.hu-berlin.de>
* gcc.c-torture/execute/991221-1.c: New test.
diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..44cd7e4a522
--- /dev/null
+++ b/gcc/testsuite/ChangeLog.apple-ppc
@@ -0,0 +1,1346 @@
+2005-06-28 Dale Johannesen <dalej@apple.com>
+
+ Radar 4163069
+ * gcc.apple/pack-test-1.c: New.
+ * gcc.dg/pack-test-1.c: Enable for darwin.
+
+2005-06-28 Dale Johannesen <dalej@apple.com>
+
+ * gcc.c-torture/execute/20050603-1.c: Move...
+ * gcc.dg/20050603-1.c: ...to here, and edit to match mainline.
+
+2005-06-28 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4140824
+ * obj-c++.dg/proto-lossage-5.mm: Bring over from mainline.
+ * objc.dg/proto-lossage-5.m: Likewise.
+
+2005-06-23 Ziemowit Laski <zlaski@apple.com>
+
+ * obj-c++.dg/proto-lossage-[1-4].mm: Bring over from mainline.
+
+2005-06-23 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4140846
+ * obj-c++.dg/typedef-alias-1.mm: Bring over from mainline.
+ * objc.dg/typedef-alias-1.m: Likewise.
+
+2005-06-22 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4154928
+ * obj-c++.dg/const-cfstring-5.mm: New.
+ * obj-c++.dg/const-str-12.mm: New.
+ * objc.dg/const-cfstring-5.m: New.
+ * objc.dg/const-str-12.m: New.
+
+2005-06-21 Ziemowit Laski <zlaski@apple.com>
+
+ * obj-c++.dg/const-cfstring-[1-4].mm: New.
+
+2005-06-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4149909
+ * obj-c++.dg/const-str-[1-9].mm: Bring over from mainline.
+ * obj-c++.dg/const-str-1[0-1].mm: New.
+ * objc.dg/const-str-1[0-1].m: New.
+
+2005-06-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 4151537
+ * objc.dg/nopicsetup.m: New.
+
+2005-06-15 Devang Patel <dpatel@apple.com>
+
+ * g++.dg/pch/debug-1.C: New test.
+ * g++.dg/pch/debug-1.Hs: New.
+
+2005-06-13 Dale Johannesen <dalej@apple.com>
+
+ Tests from mainline
+ Radar 4141805, 4137102
+ * gcc.dg/20050607-1.c: New.
+ * g++.dg/opt/crossjump1.C: New.
+
+2005-06-13 Dale Johannesen <dalej@apple.com>
+
+ * gcc.c-torture/execute/20050603-1.c: Fix marker.
+
+2005-06-03 Dale Johannesen <dalej@apple.com>
+
+ Radar 4131839 (from mainline)
+ * gcc.c-torture/execute/20050603-1.c: New.
+
+2005-05-31 Devang Patel <dpatel@apple.com>
+
+ Radar 4133821
+ * gcc.dg/bincl-1.c: New test.
+ * gcc.dg/bincl-1.h: New.
+ * g++.dg/bincl-1.C: New test.
+ * g++.dg/bincl-1.h: New.
+
+2005-05-26 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4128976
+ * objc.dg/comp-types-11.m: Bring over from mainline.
+ * obj-c++.dg/comp-types-12.mm: Likewise.
+
+2005-05-26 Ziemowit Laski <zlaski@apple.com>
+
+ * obj-c++.dg/selector-[2-4].mm: Bring over from mainline.
+ * objc.dg/selector-3.m: Likewise.
+
+2005-05-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4035492
+ * obj-c++.dg/bitfield-[1-5].mm, obj-c++.dg/class-protocol-1.mm,
+ obj-c++.dg/comp-types-1[0-1].mm, obj-c++.dg/comp-types-[2-9].mm,
+ obj-c++.dg/encode-[4-8].mm, obj-c++.dg/layout-1.mm,
+ obj-c++.dg/method-1[0-9].mm, obj-c++.dg/method-2[0-1].mm,
+ obj-c++.dg/method-[8-9].mm, obj-c++.dg/objc-gc-3.mm,
+ try-catch-10.mm: New.
+ * obj-c++.dg/objc-gc-1.mm: Add another test.
+ * objc.dg/bitfield-5.m, objc.dg/comp-types-10.m,
+ objc.dg/comp-types-9.m, objc.dg/layout-1.m, objc.dg/objc-gc-4.m,
+ objc.dg/try-catch-9.m: New.
+ * objc.dg/class-protocol-1.m, objc.dg/comp-types-1.m,
+ objc.dg/comp-types-[5-6].m, objc.dg/method-9.m: Tweak diagnostics.
+
+2005-05-17 Devang Patel <dpatel@apple.com>
+
+ Radar 4119059
+ * gcc.dg/darwin-altivec-vspl.c: New.
+ * gcc.apple/apple-altivec-12.c: Fix.
+
+2005-05-26 Ziemowit Laski <zlaski@apple.com>
+
+ * objc.dg/selector-4.m: Bring over from mainline.
+
+2005-05-26 Ziemowit Laski <zlaski@apple.com>
+
+ * obj-c++.dg/selector-1.mm: Adjust APPLE LOCAL marker.
+ * obj-c++.dg/selector-4.mm: Bring over from mainline.
+
+2005-05-25 Ziemowit Laski <zlaski@apple.com>
+
+ * obj-c++.dg/selector-2.mm: New.
+ * obj-c++.dg/selector-3.mm: New.
+ * objc.dg/selector-3.m: New.
+
+2005-05-25 Ziemowit Laski <zlaski@apple.com>
+
+ * objc.dg/selector-2.m: Remove "-fgnu-runtime"; be flexible
+ about where warning appears.
+
+2005-05-16 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4087344
+ * objc.dg/stret-2.m: Grow the 'blob' struct just a bit,
+ so that ..._stret messaging kicks in on x86 also.
+
+2005-05-13 Stuart Hastings <stuart@apple.com>
+
+ * gcc.apple/i386-deep-branch-predict-1.c: Added -fPIC.
+
+2005-05-13 Ziemowit Laski <zlaski@apple.com>
+
+ * objc.dg/volatile-1.m: Provide a
+ scan-assembler pattern for x86 Darwin.
+
+2005-05-13 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4087344
+ * objc.dg/symtab-1.m: Accept '.word' as
+ a synonym for '.short'.
+
+2005-05-11 Stan Shebs <shebs@apple.com>
+
+ * gcc.dg/darwin64-abi.c: New testcase.
+
+2005-05-11 Devang Patel <dpatel@apple.com>
+
+ Radar 4110735
+ * g++.dg/opt/20050511-1.C: New test.
+
+2005-05-09 Dale Johannesen <dalej@apple.com>
+
+ Radar 4113078
+ * gcc.apple/4113078.c: New.
+
+2005-05-06 Dale Johannesen <dalej@apple.com>
+
+ Radar 4104248
+ * gcc.apple/4104248.c: New.
+
+2005-05-06 Dale Johannesen <dalej@apple.com>
+
+ Radar 4090661
+ * gcc.apple/4090661.c: New.
+
+2005-05-02 Dale Johannesen <dalej@apple.com>
+
+ Radar 4102133
+ * gcc.apple/4102133.c: New.
+
+2005-05-01 Jon Ziegler <jonz@apple.com>
+
+ Radar 4101687
+ * gcc.apple/4101687.c: clean up
+
+2005-04-29 Dale Johannesen <dalej@apple.com>
+
+ Radar 4101687
+ * gcc.apple/4101687.c: New.
+
+2005-04-28 Devang Patel <dpatel@apple.com>
+
+ Radar 4086969
+ * gcc.dg/warn-discard-qual.c: New
+
+2005-04-25 Dale Johannesen <dalej@apple.com>
+
+ Radar 4100712
+ * gcc.c-torture/execute/pr21173.c: New.
+ * gcc.apple/4100712.c: New.
+
+2005-04-25 Devang Patel <dpatel@apple.com>
+
+ Radar 3954848
+ * gcc.dg/stabs-attrib-vector-darwin.c: New.
+
+2005-04-25 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4094385
+ * g++.dg/template/templ-deref-1.C: New.
+
+2005-04-22 Devang Patel <dpatel@apple.com>
+
+ * gcc.apple/falign-loops-max-skip-3.c: Fix typo.
+
+2005-04-21 Dale Johannesen <dalej@apple.com>
+
+ * gcc.apple/opt-pragma-[1-5].c: New.
+ g++.dg/ext/opt-pragma-[2-4].C: New.
+
+2005-04-21 Dale Johannesen <dalej@apple.com>
+
+ * g++.dg/4080945a.C: New.
+
+2005-04-21 Devang Patel <dpatel@apple.com>
+
+ Radar 4058553
+ * gcc.apple/very-long-comment.c: New.
+
+2005-04-21 Devang Patel <dpatel@apple.com>
+
+ Radar 4080840
+ * gcc.apple/faling-loops-max-skip-3.c: New.
+
+2005-04-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4056870
+ * obj-c++.dg/super-class-2.mm: New.
+ * objc.dg/super-class-4.m: New.
+
+2005-04-18 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/vect/vect-11.c: Update APPLE LOCAL markers to reflect
+ check-in on mainline.
+ * gcc.dg/vect/vect-11a.c: Same.
+ * gcc.dg/vect/vect-none.c: Same.
+ * lib/target-supports.exp (check_effective_target_vect_int_mult): Same.
+
+2005-04-15 Devang Patel <dpatel@apple.com>
+
+ Radar 3972875
+ * gcc.dg/vect/vect-11.c: Require effective target vect_int_mult.
+ * gcc.dg/vect/vect-11a.c: New.
+ * gcc.dg/vect/vect-none.c: Update.
+ * lib/target-supports.exp (check_effective_target_vect_int_mult): New.
+
+2005-04-14 Devang Patel <dpatel@apple.com>
+
+ Radar 4080840
+ * gcc.apple/falign-jumps-max-skip-1.c: New test.
+ * gcc.apple/falign-jumps-max-skip-2.c: New test.
+ * gcc.apple/falign-loops-max-skip-1.c: New test.
+ * gcc.apple/falign-loops-max-skip-2.c: New test.
+
+2005-04-14 Devang Patel <dpatel@apple.com>
+
+ Radar 3972515
+ * lib/target-supports.exp (check_effective_target_vect_shif): New.
+ * gcc.dg/vect/vect-shift-1.c: New test.
+
+2005-04-12 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/vect/vect-98.c: Fix xfail typo.
+
+2005-04-12 Devang Patel <dpatel@apple.com>
+
+ Radar 4084941
+ * gcc.dg/vect/vect-98.c: xfail.
+
+2005-04-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4065844
+ * obj-c++.dg/encode-3.mm: New.
+
+2005-04-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4073569
+ * obj-c++.dg/method-6.mm: New.
+ * obj-c++.dg/method-7.mm: New.
+ * objc.dg/method-19.m: New.
+ * objc.dg/method-5.m: Tweak warnings.
+
+2005-04-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4055183
+ * obj-c++.dg/stubify-1.mm: New.
+ * obj-c++.dg/stubify-2.mm: New.
+ * objc.dg/stubify-1.m: Redact APPLE LOCAL marker.
+ * objc.dg/stubify-2.m: New.
+
+2005-04-07 Stuart Hastings <stuart@apple.com>
+
+ * gcc.apple/asm-function-15.c: Mark powerpc only.
+ * gcc.apple/asm-function-16.c: Likewise.
+
+2005-04-07 Devang Patel <dpatel@apple.com>
+
+ Radar 4069922
+ * g++.dg/tree-sra/ssa-sra-3.C: New test.
+
+2005-04-02 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4072153
+ * gcc.apple/comma-expr-1.c: New.
+
+2005-03-31 Dale Johannesen <dalej@apple.com>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-55.c: Include stdio.h.
+
+2005-03-30 Dale Johannesen <dalej@apple.com>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-[30|31|
+ 32|33|34|35|36|52|59|60]: Remove.
+ All above files with .ddall suffix: Remove.
+ ssa-chrec-[03|04|06|07|08|10|56|57|58]: Adjust
+ flags to ones that exist.
+
+2005-03-30 Dale Johannesen <dalej@apple.com>
+
+ Radar 3955567
+ * gcc.apple/bitreverse-[0-9].c: New.
+
+2005-03-21 Stuart Hastings <stuart@apple.com>
+
+ Radars 3805723 4010664 3965893 4010496 4015764
+ * objc.dg/stubify-1.m, objc.dg/stubify-2.m
+ gcc.apple/i386-deep-branch-predict-1.c, gcc.apple/dynamic-no-pic-1.c: New.
+
+2005-03-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3995882
+ * obj-c++.dg/try-catch-9.mm: New.
+ * objc.dg/try-catch-8.m: New.
+
+2005-03-09 Ziemowit Laski <zlaski@apple.com>
+
+ * objc.dg/selector-2.m: Move dg-warning to correct line.
+
+2005-03-08 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/vect/vect-none.c: One test that uses condition
+ is now vectorized.
+
+2005-03-03 Dale Johannesen <dalej@apple.com>
+
+ Radar 3897244
+ * gcc.apple/align-test-1.c: Adjust for x86.
+ * gcc.apple/align-test-2.c: Adjust for x86.
+ * gcc.apple/align-test-3.c: Adjust for x86.
+ * gcc.apple/align-test-4.c: Adjust for x86.
+ * gcc.apple/align-test-5a.c: Adjust for x86.
+ * gcc.apple/align-test-5d.c: New.
+ * g++.dg/align-test-1.C: Adjust for x86.
+ * g++.old-deja/g++.abi/align.C: Enable for darwin x86.
+
+2005-03-02 Robert Bowdidge <bowdidge@apple.com>
+ Radar 4025923
+ * g++.dg/kext11.C: add new test for ptmf casts in kexts
+
+2005-03-02 Stan Shebs <shebs@apple.com>
+
+ Radar 3951637
+ * gcc.dg/ppc_intrinsics-2.c: New.
+ * gcc.dg/ppc_intrinsics-1.c: Is ppc-only.
+
+2005-03-01 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4015382 (Part II)
+ * g++.dg/ext/new-delete-1.C: Replace confusing '$'
+ with '.' in search string.
+ * g++.dg/ext/new-delete-2.C: Likewise.
+
+2005-02-28 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4015382
+ * g++.dg/ext/new-delete-1.C: New.
+ * g++.dg/ext/new-delete-2.C: New.
+
+2005-02-25 Stan Shebs <shebs@apple.com>
+
+ Radar 4020219
+ * gcc.dg/pragma-darwin.c: Avoid mac68k align stuff if 64-bit.
+ * g++.dg/expr/align68k-1.C: Stub out for 64-bit.
+ * g++.dg/expr/align68k-2.C: Stub out for 64-bit.
+
+2005-02-23 Devang Patel <dpatel@apple.com>
+
+ Radar 4021019
+ * gcc.apple/ppc-ignored-options.c: New test.
+ * gcc.apple/x86-ignored-options.c: New test.
+
+2005-02-23 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3809189 (additional test cases)
+ * obj-c++.dg/pascal-strings-1.mm: New.
+ * obj-c++.dg/pascal-strings-2.mm: New.
+ * objc.dg/pascal-strings-1.m: New.
+
+2005-02-22 Devang Patel <dpatel@apple.com>
+
+ Radar 3844827
+ Backport from Mainline.
+
+ 2005-01-18 Michael Matz <matz@suse.de>
+
+ * gcc.dg/Wno-pointer-sign.c: New test for -Wno-pointer-sign.
+
+2005-02-22 Dale Johannesen <dalej@apple.com>
+
+ Radar 4015820
+ * obj-c++.dg/objc-fast-4.mm: New.
+
+2005-02-22 Dale Johannesen <dalej@apple.com>
+
+ Radar 4015820
+ * objc.dg/objc-fast-4.m: New.
+
+2005-02-21 Stan Shebs <shebs@apple.com>
+
+ Radar 3939071
+ * gcc.dg/mac68k-pragma-unsup-1.c: New.
+
+2005-02-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3809189
+ * g++.dg/pascal-strings-3.C: New.
+ * g++.dg/pascal-strings-4.C: New.
+ * gcc.apple/pascal-strings-3.c: New.
+
+2005-02-21 Devang Patel <dpatel@apple.com>
+
+ Radar 4007432
+ * gcc.dg/cpp/mac-eol-at-eof.c: New test.
+
+2005-02-19 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4014879
+ * obj-c++.dg/objc-fast-3.mm: New.
+ * objc.dg/objc-fast-3.m: New.
+
+2005-02-18 Devang Patel <dpatel@apple.com>
+
+ Radar 3984893
+ * gcc.dg/vect/vect-dv-1.c: New.
+
+2005-02-18 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4011192
+ * obj-c++.dg/try-catch-7.mm: New.
+ * obj-c++.dg/try-catch-8.mm: New.
+ * objc.dg/try-catch-6.m: New.
+ * objc.dg/try-catch-7.m: New.
+
+2005-02-17 Devang Patel <dpatel@apple.com>
+
+ Radar 3958387
+ * gcc.apple/Wno-newline-1.c: New.
+ * gcc.apple/Wno-newline-2.c: New.
+
+2005-02-17 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3971074
+
+ * gcc.apple/asm-function-14.c: New.
+
+2005-02-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 4006978
+ * obj-c++.dg/isa-field-1.mm: New.
+ * objc.dg/isa-field-1.m: New.
+
+2005-02-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3635843, 3922342
+ * obj-c++.dg/objc-fast-1.mm: New.
+ * obj-c++.dg/objc-fast-2.mm: New.
+ * obj-c++.dg/objc-gc-1.mm: New.
+ * obj-c++.dg/objc-gc-2.mm: New.
+ * objc.dg/next-runtime-1.m: New.
+ * objc.dg/objc-fast-1.m: New.
+ * objc.dg/objc-fast-2.m: New.
+ * objc.dg/objc-gc-1.m: New.
+ * objc.dg/objc-gc-2.m: New.
+ * objc.dg/objc-gc-3.m: New.
+
+2005-02-16 Dale Johannesen <dalej@apple.com>
+
+ Radar 4006687
+ * gcc.dg/i386-mmx-6.c: New (from mainline).
+
+2005-02-16 Dale Johannesen <dalej@apple.com>
+
+ Radar 3991611
+ * gcc.c-torture/execute/20050111-1.c: New (from mainline).
+
+2005-02-16 Fariborz Jahanian <fjahanian@apple.com>
+
+ Radar 3970655
+
+ * g++.dg/asm-function-13.C: New.
+ * gcc.apple/asm-function-13.c: New.
+
+2005-02-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3962013 (Part 2)
+ * obj-c++.dg/method-5.mm: New.
+ * objc.dg/method-18.m: New.
+ * objc.dg/method-6.m: Add '-Wstrict-selector-match' flag.
+ * objc.dg/method-9.m: Likewise.
+
+2005-02-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978619
+ * obj-c++.dg/super-dealloc-1.mm: New.
+ * obj-c++.dg/super-dealloc-2.mm: New.
+ * objc.dg/super-dealloc-1.m: New.
+ * objc.dg/super-dealloc-2.m: New.
+
+2005-02-11 Devang Patel <dpatel@apple.com>
+
+ Radar 3996800
+ * gcc.dg/pch/pch.exp: Test MACOSX_DEPLOYMENT_TARGET and -save-temps.
+
+2005-02-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3993052
+ * obj-c++.dg/pragma-2.mm: New.
+ * objc.dg/pragma-1.m: New.
+
+2005-02-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3982256
+ * objc.dg/comp-types-7.m: Sync with FSF mainline.
+ * objc.dg/comp-types-8.m: New.
+
+2005-02-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3987972
+ * objc.dg/method-17.m: New.
+
+2005-02-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3987120
+ * obj-c++.dg/encode-2.mm: New.
+
+2005-02-06 Dale Johannesen <dalej@apple.com>
+
+ * g++.dg/kext10.C: new.
+
+2005-02-02 Stan Shebs <shebs@apple.com>
+
+ * gcc.apple/align-test-5b.c: Xfail for 64-bit.
+ * gcc.apple/align-test-5c.c: Xfail for 64-bit.
+ * gcc.apple/mac68k-align-unsup.c: New.
+
+2005-02-02 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3984534
+ * g++.dg/ext/lvalue-cast-1.cpp: Rename to
+ g++.dg/ext/lvalue-cast-1.C.
+ * g++.dg/ext/lvalue-cast-2.cpp: Rename to
+ g++.dg/ext/lvalue-cast-2.C.
+ * g++.dg/ext/lvalue-cond-1.cpp: Remove duplicated
+ lines; rename to g++.dg/ext/lvalue-cond-1.C; mark
+ warnings as bogus.
+
+2005-02-02 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978104
+ * obj-c++.dg/extra-semi.mm: New.
+ * objc.dg/extra-semi.m: New.
+
+2005-02-01 Devang Patel <dpatel@apple.com>
+
+ Radar 3983593
+ * gcc.dg/pch/faltivec-1.hs: New.
+ * gcc.dg/pch/faltivec-1.c: New.
+
+2005-01-31 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3978168
+ * g++.dg/ext/lvalue-cast-2.cpp: New.
+ * gcc.dg/lvalue-cast-2.c: New.
+
+2004-01-31 Devang Patel <dpatel@apple.com>
+
+ Radar 3978580
+ * gcc.apple/const-cfstring-4.c: New test.
+
+2005-01-31 Dale Johannesen <dalej@apple.com>
+
+ Radar 3974393
+ * g++.dg/pr19650.C: Modify, move to opt subdirectory.
+
+2005-01-30 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3962013
+ * obj-c++.dg/method-3.mm: New.
+ * obj-c++.dg/method-4.mm: New.
+ * objc.dg/method-16.m: New.
+ * objc.dg/method-7.m: Add '-Wstrict-selector-match'.
+
+2005-01-27 Dale Johannesen <dalej@apple.com>
+
+ Radar 3974393
+ PR 19650
+ * g++.dg/pr19650.C: New.
+
+2005-01-27 Mike Stump <mrs@apple.com>
+
+ Radar 3978098
+ * g++.old-deja/g++.mike/pascal.C: Add.
+
+2005-01-27 Matt Austern <austern@apple.com>
+
+ Radar 3971445
+ * obj-c++.dg/template-5.mm: New.
+ * obj-c++.dg/template-6.mm: New.
+
+2005-01-27 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3971244
+ * obj-c++.dg/comp-types-1.mm: New.
+
+2005-01-26 Matt Austern <austern@apple.com>
+
+ Radar 3972840
+ * g++.dg/kext9.C: New.
+
+2005-01-26 Devang Patel <dpatel@apple.com>
+
+ Radar 3971329
+ * obj-c++.dg/extern-c-1.mm: New test case.
+
+2005-01-26 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3970884
+ * g++.dg/ext/apple-altivec-5.C: New.
+ * g++.dg/ext/apple-altivec-6.C: New.
+
+2005-01-25 Stan Shebs <shebs@apple.com>
+
+ Radar 3220997
+ * g++.dg/align-test-1.C: Fix old problems, add 64-bit cases.
+
+2005-01-25 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3961973 (Part 3)
+ * gcc.dg/cast-lvalue-2.c: Add '-fno-non-lvalue-assign'.
+ * gcc.dg/lvalue1.c: Likewise.
+ * gcc.dg/lvalue-cond-1.c: Remove duplicated lines.
+
+2005-01-24 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3968938
+ * obj-c++.dg/lookup-2.mm: New.
+ * objc.dg/lookup-1.m: New.
+
+2005-01-24 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3961973 (Part 2)
+ * obj-c++.dg/lvalue-cast-1.mm: New.
+ * objc.dg/lvalue-cast-1.m: New.
+
+2005-01-23 Ziemowit Laski <zlaskI@apple.com>
+
+ Radar 3961973
+ * gcc.dg/cond-lvalue-1.c: Add '-fno-non-lvalue-assign';
+ adjust expected line number for error message.
+ * g++.dg/ext/lvalue-cast-1.cpp: Rename -flvalue-cast-assign
+ to -fnon-lvalue-assign; adjust wording of warning message.
+ * gcc.dg/lvalue-cast-1.c: Likewise.
+ * g++.dg/ext/lvalue-cond-1.cpp: New.
+ * gcc.dg/lvalue-cond-1.c: New.
+
+2005-01-21 Stan Shebs <shebs@apple.com>
+
+ Radar 3952527
+ * gcc.apple/align-test-1.c: Add 64-bit alignment values.
+ * gcc.apple/align-test-2.c: Add 64-bit alignment values.
+ * gcc.apple/align-test-3.c: Skip over if compiling 64-bit.
+ * gcc.apple/align-test-4.c: Add 64-bit alignment values.
+
+2005-01-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3951887
+ * objc.dg/comp-types-7.m: New.
+
+2005-01-20 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3958413
+ * gcc.dg/cpp/cpp.exp: Copy headermap test files into '.'.
+ * gcc.dg/cpp/headermap-1.c: New.
+ * gcc.dg/cpp/headermap-2.c: New.
+ * gcc.dg/cpp/headermap.hmap: New.
+ * gcc.dg/cpp/inc/A.h: New.
+ * gcc.dg/cpp/inc/bA.h: New.
+ * gcc.dg/cpp/inc/c.h: New.
+ * gcc.dg/cpp/inc/d/d.h: New.
+
+2005-01-20 Robert Bowdidge <bowdidge@apple.com>
+ Radar 3962986
+ * g++.dg/kext8.C: new check for no coalesced sections in .o's.
+
+2005-01-19 Matt Austern <austern@apple.com>
+
+ Radar 3960754
+ * obj-c++.dg/overload-1.mm: New.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3955336
+ * obj-c++.dg/cxx-scope-1.mm: New.
+ * obj-c++.dg/cxx-scope-2.mm: New.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3953044 (PR objc/19321)
+ * objc.dg/func-ptr-2.m: New.
+ * objc.dg/volatile-1.m: New.
+
+2005-01-17 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3951689
+ * obj-c++.dg/try-catch-1.mm: New.
+ * obj-c++.dg/try-catch-2.mm: New.
+ * obj-c++.dg/try-catch-3.mm: New.
+ * obj-c++.dg/try-catch-4.mm: New.
+ * obj-c++.dg/try-catch-5.mm: New.
+ * obj-c++.dg/try-catch-6.mm: New.
+
+2005-01-14 Stuart Hastings <stuart@apple.com>
+
+ Radar 3943021
+ * gcc.apple/fenv-minmax-1.c: New.
+
+2005-01-11 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3918079
+ * obj-c++.dg/method-2.mm: New.
+ * objc.dg/method-15.m: New.
+
+2005-01-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3943452
+ * g++.dg/ext/apple-altivec-4.C: New.
+ * gcc.apple/apple-altivec-14.c: New.
+
+2005-01-08 Dale Johannesen <dalej@apple.com>
+
+ Radar 3941146
+ * gcc.dg/pr17133.c: New test.
+
+2005-01-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3913725
+ * g++.dg/ext/lvalue-cast-1.cpp: New.
+ * gcc.dg/lvalue-cast-1.c.
+
+2005-01-07 Devang Patel <dpatel@apple.com>
+
+ Radar 3943502
+ * obj-c++.dg/defs.mm: New test.
+
+2005-01-07 Stuart Hastings <stuart@apple.com>
+
+ * gcc.apple/notailcall-1.c: Now tests PPC in addition to x86.
+
+2005-01-06 Andrew Pinski <pinskia@physics.uc.edu>
+ Stuart Hastings <stuart@apple.com>
+
+ Radar 3830232
+ * gcc/testsuite/gcc.apple/notailcall-1.c: New testcase (also recorded in gcc/ChangeLog.apple-ppc).
+
+2005-01-06 Robert Bowdidge <bowdidge@apple.com>
+
+ * g++.dg/kext7.C: New.
+
+2005-01-06 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3925982
+ * obj-c++.dg/encode-1.mm: New.
+ * objc.dg/encode-6.m: New.
+
+2005-01-06 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3926755
+ * g++.dg/ext/apple-altivec-1.C: New.
+ * g++.dg/ext/apple-altivec-2.C: New.
+ * gcc.apple/apple-altivec-12.c: New.
+ * gcc.apple/apple-altivec-13.c: New.
+
+2005-01-06 Devang Patel <dpatel@apple.com>
+
+ Radar 3941766
+ * obj-c++.dg/empty-private-1.mm: New test.
+
+2005-01-05 Mark Mitchell <mark@codesourcery.com>
+ Matt Austern <austern@apple.com>
+
+ Radar 3934803
+ PR c++/18369
+ * g++.dg/init/new12.C: New test.
+
+2005-01-03 Alexander Malmberg <alexander@malmberg.org>
+ Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3926282 (PR objc/18971)
+ * objc.dg/encode-5.m: New test.
+
+2004-12-22 Devang Patel <dpatel@apple.com>
+
+ * gcc.apple/Wextra-tokens-2.c: Remove.
+
+2004-12-22 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/vect/vect-ifcvt-9.c: New.
+
+2004-12-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3866407
+ * g++.dg/ext/apple-altivec-3.C: New.
+
+2004-12-20 Dale Johannesen <dalej@apple.com>
+
+ Radar 3926484
+ * objc.dg/no-extra-load.m: New.
+ * obj-c++.dg/no-extra-load.mm: New.
+
+2004-12-20 Matt Austern <austern@apple.com>
+
+ Radar 3845716
+ PR c++/19044
+ * g++.dg/ext/builtin6.C: New
+
+2004-12-16 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3921172 (from mainline)
+ * objc.dg/stabs-1.m: New.
+
+2004-12-15 Dale Johannesen <dalej@apple.com>
+
+ Radar 3619824
+ * gcc.apple/no-math-errno.c: New.
+
+2004-12-15 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3918376
+ * gcc.apple/apple-altivec-4.c: New.
+
+2004-12-15 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3913672
+ * gcc.apple/apple-altivec-3.c: New.
+
+2004-12-13 Mike Stump <mrs@apple.com>
+
+ Radar 3865314
+ * gcc.apple/shorten.c: New.
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/vect/vect-ifcvt-2.c: Update.
+ * gcc.dg/vect/vect-ifcvt-3.c: Update.
+ * gcc.dg/vect/vect-ifcvt-4.c: Update.
+ * gcc.dg/vect/vect-ifcvt-5.c: Update.
+ * gcc.dg/vect/vect-ifcvt-6.c: Update.
+ * gcc.dg/vect/vect-ifcvt-7.c: Update.
+ * gcc.dg/vect/vect-ifcvt-8.c: New.
+
+2004-12-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3640156, 3877958
+ * gcc.apple/apple-altivec-1.c, gcc.apple/apple-altivec-2.c: New.
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ Radar 3909961
+ * gcc.apple/Wextra-tokens-2.c: New test.
+
+2004-12-07 Dale Johannesen <dalej@apple.com>
+
+ Radar 3907006
+ * gcc.dg/tree-ssa/20040308-4.c: Remove.
+
+2004-11-24 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/cpp/isysroot-1.c: cosmetic changes to match mainline.
+ * gcc.dg/cpp/usr/include/stdio.h: Same.
+ * gcc.dg/cpp/isysroot-2.c: Same.
+ * gcc.dg/cpp/System/Library/Framwork/Carbon.framework/Headers/Carbon.h: Same.
+
+2004-11-23 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/cpp/isysroot-1.c: New test.
+ * gcc.dg/cpp/usr/include/stdio.h: New file.
+ * gcc.dg/cpp/isysroot-2.c: New test.
+ * gcc.dg/cpp/System/Library/Framework/Carbon.framework/Headers/Carbon.h:
+ New file.
+
+2004-11-23 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3883557
+ * obj-c++.dg/cxx-class-1.mm: New test.
+
+2004-11-17 Devang Patel <dpatel@apple.com>
+
+ * gcc.apple/altivec-use.c: Remove.
+
+2004-11-17 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/vect/vect-none.c: Now 2 loops are vectorized.
+
+2004-11-16 Devang Patel <dpatel@apple.com>
+
+ From autovect-branch.
+
+ * gcc.dg/vect/vect-ifcvt-1.c: New test.
+ * gcc.dg/vect/vect-ifcvt-2.c: New test.
+ * gcc.dg/vect/vect-ifcvt-3.c: New test.
+ * gcc.dg/vect/vect-ifcvt-4.c: New test.
+ * gcc.dg/vect/vect-ifcvt-5.c: New test.
+ * gcc.dg/vect/vect-ifcvt-6.c: New test.
+ * gcc.dg/vect/vect-ifcvt-7.c: New test.
+
+2004-11-14 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3877761
+ * obj-c++.dg/ivar-list-semi.mm: New test.
+
+2004-11-10 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3761423
+ * obj-c++.dg/cxx-ivars-2.mm, obj-c++.dg/template-3.mm:
+ Make ivars @public to squash new warnings/errors.
+ * obj-c++.dg/private-1.mm, obj-c++.dg/private-2.mm:
+ New tests.
+
+2004-11-10 Devang Patel <dpatel@apple.com>
+
+ Partial Radar 3846472 fix
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-01.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-02.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-03.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-04.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-05.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-06.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-10.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-15.c: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-27.c: Adjust.
+
+2004-11-10 Devang Patel <dpatel@apple.com>
+
+ Radar 384609
+ More FSF merge cleanup.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-13.c: Remove test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-34.c: Remove test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-36.c: Remove test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-44.c: Remove test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-48.c: Remove test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-60.c: Remove test.
+
+2004-11-08 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3853429
+ * objc.dg/const-str-8.m, objc.dg/const-str-9.m,
+ objc.dg/const-cfstring-3.m, objc.dg/const-cfstring-4.m:
+ New tests.
+
+2004-11-08 Devang Patel <dpatel@apple.com>
+
+ Radar 3869007
+ * gcc.dg/tree-ssa/ivcanon-1.c: Do not use -fscalar-evolutions.
+
+2004-11-05 Devang Patel <dpatel@apple.com>
+
+ Radar 3853509.
+ * obj-c++.dg/lookup-1.mm: New test.
+ * obj-c++.dg/pragma-1.mm: New test.
+
+2004-11-04 Devang Patel <dpatel@apple.com>
+
+ Radar 3837835
+ * gcc.apple/altivec-use.c: New test.
+
+2004-11-01 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 2810013 (includes fix from mainline)
+ * obj-c++.dg/local-decl-1.mm: New test.
+ * objc.dg/local-decl-2.m: New test.
+
+2004-10-29 Stuart Hastings <stuart@apple.com>
+
+ * gcc.apple/special/liblongcall.c: Add #include <stdio.h>.
+ * gcc.apple/special/longcall-prog.c: Add #include <stdlib.h>.
+
+2004-10-29 Devang Patel <dpatel@apple.com>
+
+ FSF merge cleanup.
+ * gcc.dg/tree-ssa-vect/ifc-03.c: Remove test.
+ * gcc.dg/tree-ssa-vect/ifc-03.c: Remove.test.
+ * gcc.dg/tree-ssa-vect/tree-vect.h (exit): Add extern decl.
+ (abort): Same.
+ * gcc.dg/tree-ssa-vect/ifc-01.c: XFAIL.
+ * gcc.dg/tree-ssa-vect/ifc-02.c: XFAIL.
+
+2004-10-29 Devang Patel <dpatel@apple.com>
+
+ FSF merge cleanup. These tests now live in gcc.dg/vect directory.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-1.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-10.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-11.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-12.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-14.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-15.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-16.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-17.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-18.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-19.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-2.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-20.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-22.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-23.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-24.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-25.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-26.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-27.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-28.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-29.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-3.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-30.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-32.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-33.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-4.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-40.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-41.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-42.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-43.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-45.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-46.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-47.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-49.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-5.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-50.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-51.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-52.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-53.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-54.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-55.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-56.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-57.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-58.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-59.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-6.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-61.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-7.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-8.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-9.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-all.c: Remove.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-none.c: Remove.
+
+2004-10-27 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3854155
+ * obj-c++.dg/cxx-ivars-3.mm: New test.
+
+2004-10-26 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3840704
+ * gcc.apple/altivec-5.c: New.
+
+2004-10-26 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3833116 (fix from mainline)
+ * objc.dg/super-class-3.m: New test.
+
+2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
+
+ Radar 3845826 (PR objc/17923)
+ * objc.dg/const-str-7.m: New test.
+
+2004-10-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3540965
+ * obj-c++.dg/cxx-ivars-1.mm: New.
+ * obj-c++.dg/cxx-ivars-2.mm: New.
+
+2004-10-18 Robert Bowdidge <bowdidge@apple.com>
+
+ Radar 3843618
+ * Add g++.dg/lookup/koenig4.C: Bring the fix for PR/17829 over
+ from mainline so that Finder_FE will build again.
+
+2004-10-18 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3832999 (fix from mainline)
+ * objc.dg/method-14.m: New test.
+
+2004-10-18 Devang Patel <dpatel@apple.com>
+
+ Radar 3753408
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-21.c: Remove test.
+
+2004-10-13 Geoffrey Keating <geoffk@apple.com>
+
+ Radar 3476357
+ * gcc.apple/inttypes-4.c: New test.
+
+2004-10-11 Devang Patel <dpatel@apple.com>
+
+ * gcc.apple/ppc_intrinsics-1.c: New test.
+
+2004-09-14 Andrew Pinski <apinski@apple.com>
+
+ Rest of Radar 3753405
+ * g++.dg/asm-block-[12].C: Mark abort as extern "C".
+ * g++.dg/asm-function-[1-5].C: Likewise.
+ * g++.dg/asm-function-5.C (foo): Fix inline asm so that we load the right
+ saved link register.
+
+2004-09-13 Andrew Pinski <apinski@apple.com>
+
+ Part of radar 3753405 and all of 3767339
+ * gcc.apple/asm-block-[1-2].c: Add prototype for abort.
+ * gcc.apple/asm-function-[1-6].c: Likewise.
+
+2004-08-19 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.apple/inttypes-3.c: New file.
+
+2004-08-22 Andrew Pinski <apinski@apple.com>
+
+ * g++.dg/opt/pr14029.C: New test.
+ * gcc.c-torture/execute/pr15262.c: New test.
+
+2004-08-19 Ziemowit Laski <zlaski@apple.com>
+
+ * objc.dg/const-cfstring-1.m: Include stdlib.h.
+
+2004-08-16 Devang Patel <dpatel@apple.com>
+
+ Merge from mainlne.
+ 2004-08-16 Devang Patel <dpatel@apple.com>
+ * gcc.dg/darwin-20040809-1.c: New test.
+
+2004-08-13 Matt Austern <austern@apple.com>
+
+ Radar 2872232
+ * gcc.dg/testsuite/c99-tgmath-1.c: New test.
+ * gcc.dg/testsuite/c99-tgmath-2.c: New test.
+ * gcc.dg/testsuite/c99-tgmath-3.c: New test.
+ * gcc.dg/testsuite/c99-tgmath-4.c: New test.
+
+2004-08-13 Devang Patel <dpatel@apple.com>
+
+ Radar 3729261. Reviewed by Dale.
+ * gcc.dg/20040813-1.c: New test.
+
+2004-08-13 Devang Patel <dpatel@apple.com>
+
+ Merge from mainline. Radar 3739309.
+ 2004-08-11 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/darwin-20040809-2.c: New test.
+
+2004-08-13 Devang Patel <dpatel@apple.com>
+
+ Merge from mainline. Radar 3739302.
+ 2004-08-10 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/darwin-ld--20040809-1.c: New test.
+ * gcc.dg/darwin-ld-20040809-2.c: New test.
+
+2004-08-12 Jon Ziegler <jonz@apple.com>
+
+ Get rid of another APPLE LOCAL (to match Geoff's
+ change to gcc/ginclude/varargs.h).
+ * gcc.dg/va-arg-2.c
+
+2004-08-10 Devang Patel <dpatel@apple.com>
+
+ Remove Symbol Separation.
+ Radar 3555440. Reviewed by Mike Stump.
+ * gcc.dg/ss/README: Remove.
+ * gcc.dg/ss/ss.exp: Remove.
+ * gcc.dg/ss/one.c: Remove.
+ * gcc.dg/ss/one.ssh: Remove.
+ * gcc.dg/ss/ss-cmd1.c: Remove.
+
+2004-08-03 Stan Shebs <shebs@apple.com>
+
+ Support for CodeWarrior-style assembly language blocks and
+ functions. Radar 3368707.
+ * testsuite/gcc.apple/asm-block-[12].c: New tests.
+ * testsuite/gcc.apple/asm-function-[1-6].c: New tests.
+ * testsuite/g++.dg/asm-block-[12].C: New tests.
+ * testsuite/g+.dg/asm-function-[1-6].C: New tests.
+
+2004-07-30 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.dg/darwin-longdouble.c: New file.
+
+2004-07-30 Devang Patel <dpatel@apple.com>
+
+ Re-implement -fwritable-strings support.
+ Radar : 3699482
+
+ * gcc.apple/fwritable-strings.c: New test.
+
+2004-07-14 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/tree-ssa-vect/ifc-04.c: New test.
+
+2004-07-13 Matt Austern <austern@apple.com>
+
+ Radar 3278745, 3419910, 3432773
+ * gcc.apple/inttypes-2.c: New test.
+ * gcc.apple/inttypes-wchar-1.c: New test.
+ * gcc.apple/inttypes-wchar-2.c: New test.
+
+2006-06-29 Andrew Pinski <apinski@apple.com>
+
+ Radar #: 3717673
+ * gcc.dg/pch/struct-1.c: Fix typo of adding a "+".
+
+2006-06-29 Andrew Pinski <apinski@apple.com>
+
+ * testsuite/gcc.apple/loop-transpose-1.c: New test.
+
+2004-06-29 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-4*.c: Abort instead of print.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-5*.c: Likewise.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-61.c: Likewise.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-62.c: Likewise.
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-40.c: Move call to bar.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-42.c: Likewise.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-60.c: Likewise.
+
+2006-06-28 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/tree-ssa-vect/ifc-02.c: New test.
+ * gcc.dg/tree-ssa-vect/ifc-03.c: New test.
+
+2006-06-22 Andrew Pinski <apinski@apple.com>
+
+ * gcc.dg/pch/struct-1.c: New.
+ * gcc.dg/pch/struct-1.hs: New.
+
+2004-06-22 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/tree-ssa-vect/pr16105.c: New test.
+
+2004-06-15 Dorit Naishlos <DORIT@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-30.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-40.c: New test
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-41.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-42.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-43.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-44.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-45.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-46.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-47.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-48.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-49.c: New test
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-50.c: New test
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-51.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-52.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-53.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-54.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-55.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-56.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-57.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-58.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-59.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-60.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-61.c: New test.
+
+
+2004-06-12 Dorit Naishlos <DORIT@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-27.c: Do not xfail.
+2004-06-09 Jon Ziegler <jonz@apple.com>
+
+ Radar 3667992
+ * gcc.apple/Wlong-double.c: Delete file.
+
+2004-06-08 Jon Ziegler <jonz@apple.com>
+
+ Radar 3667992
+ * g++.dg/altivec-4.C: Remove '-Wno-long-double' flag.
+ * g++.dg/abi/layout2.C: Likewise.
+ * gcc.apple/altivec-1.c: Likewise.
+ * gcc.apple/dg.exp: Likewise.
+ * gcc.dg/20020416-1.c: Likewise.
+ * gcc.dg/builtin-inf-1.c: Likewise.
+ * gcc.dg/c99-complex-1.c: Likewise.
+ * gcc.dg/dg.exp: Likewise.
+ * gcc.dg/typespec-1.c: Likewise.
+ * gcc.dg/wtr-conversion-1.c: Likewise.
+ * gcc.dg/cpp/sysmac2.c: Likewise.
+ * gcc.dg/debug/20020220-1.c: Likewise.
+ * gcc.dg/format/c90-printf-1.c: Likewise.
+ * gcc.dg/format/c90-scanf-1.c: Likewise.
+ * gcc.dg/format/strfmon-1.c: Likewise.
+ * gcc.dg/pch/apple-altivec-1.c: Likewise.
+ * gcc.dg/pch/apple-altivec-1.hs: Likewise.
+ * lib/g++.exp: Likewise.
+
+2004-05-28 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3665286
+ * gcc.apple/altivec-2.c: New test case.
+ * gcc.apple/altivec-3.c: New test case.
+
+2004-05-21 Ziemowit Laski <zlaski@apple.com>
+
+ Radar 3621323
+ * g++.dg/ext/altivec-11.C: New test case.
+ * gcc.dg/altivec-15.c: New test case.
+
+2004-05-10 Ziemowit Laski <zlaski@apple.com>
+
+ * g++.dg/ext/altivec-8.C: Brought over from mainline.
+ * gcc.apple/altivec-2.c: Remove, superceded by...
+ * gcc.dg/altivec-13.c: ...this, brought over from mainline.
+
+2004-04-29 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/tree-ssa/copy-headers.c : Merge from lno-branch as of
+ 2004:04:19 00:00.
diff --git a/gcc/testsuite/ChangeLog.lno b/gcc/testsuite/ChangeLog.lno
new file mode 100644
index 00000000000..35bfc1ccb01
--- /dev/null
+++ b/gcc/testsuite/ChangeLog.lno
@@ -0,0 +1,203 @@
+2004-07-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-31.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-32.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-33.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-34.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-35.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-36.c: New test.
+
+2004-07-04 Andi Kleen <ak@muc.de>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-*.c: Add support for i?86-*-*
+ and x86_64-*-*.
+ * gcc.dg/tree-ssa-vect/tree-vect.h: New file.
+
+2004-07-04 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-4*.c: Abort instead of print, and
+ remove redundant check loop in main.
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-40.c: Move call to bar from main1
+ to main.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-42.c: Likewise.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-46.c: Likewise.
+
+2004-06-22 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-54.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-55.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-56.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-57.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-58.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-59.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-60.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-61.c: New test.
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-50.c: Abort instead of print, and
+ remove redundant check loop in main.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-51.c: Likewise.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-52.c: Likewise.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-53.c: Likewise.
+
+2004-06-22 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/tree-ssa-vect/pr16105.c: New test.
+
+2004-06-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-46.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-47.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-48.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-49.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-50.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-51.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-52.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-53.c: New test.
+
+2004-06-14 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-40.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-41.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-42.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-43.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-44.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-45.c: New test.
+
+2004-06-09 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-30.c: New test.
+
+2004-05-20 Olga Golovanevsky <olga@il.ibm.com>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-8.c: Tests with
+ unknown loop bounds should now be vectorized.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-none.c: Likewise.
+
+2004-05-06 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{10, 30-36, 52, 59, 60}.c.ddall: Adjust.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-36.c: Remove comment.
+
+2004-04-15 Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-26.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-27.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-28.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-29.c: New test.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-*.c: Use -msse2 instead of -msse.
+ * gcc.dg/tree-ssa-vect/tree-ssa-vect-*.c: Temporarily change i*86 'run'
+ tests to 'compile' tests.
+
+2004-03-25 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * ssa-chrec-10.c.ddall: Classify more access tuples as
+ independent.
+ * ssa-chrec-36.c.ddall: Same.
+
+2004-03-11 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * gcc.dg/tree-ssa/20040308-2.c: UnXFAIL.
+
+2004-03-11 Andrew Pinski <apinski@apple.com>
+
+ * gcc.dg/tree-ssa/20040308-2.c: Fix dg-final.
+ * gcc.dg/tree-ssa/20040308-1.c: XFAIL as the
+ optimizer for this testcase is disabled.
+
+2004-03-08 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * gcc.dg/tree-ssa/20040308-1.c: New test.
+ * gcc.dg/tree-ssa/20040308-2.c: New test.
+ * gcc.dg/tree-ssa/20040308-3.c: New test.
+ * gcc.dg/tree-ssa/20040308-4.c: New test.
+
+2004-03-03 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * ssa-chrec-*.c.scev: Removed.
+ * ssa-chrec-[54..60].c: New.
+ * ssa-chrec-{59, 60}.c.ddall: New.
+ * ssa-chrec-*.c.ddall: The analyzer don't print the array
+ discovery information, and this information has to go away
+ from the ddall files. This was one of the most varying part
+ of the ddall files. Maybe the base_name of the arrays has to
+ be removed in the same way.
+ * ssa-chrec-*.c: Don't scan the output for scev. Some cases
+ are adapted for using the elimination of checks.
+
+2004-02-20 Devang Patel <dpatel@apple.com>
+
+ * testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-3.c: New test.
+
+2004-02-16 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/tree-ssa-chrec/20040216-1.c: New test.
+
+2004-01-29 Sebastian Pop <sebastian.pop@ensmp.fr>
+
+ * ssa-chrec-{01, 10, 30, 31, 32, 33, 34, 35, 36, 52, 53}.c: Update
+ comments.
+ * ssa-chrec-{13, 14}.c: Use call functions for avoid optimisations
+ touching the condition.
+ * ssa-chrec-{01, 06, 09, 10, 13, 14, 17, 24, 25, 26, 27, 28, 30, 33,
+ 36, 38, 39, 41, 43, 46, 47, 51, 52, 53}.c.scev: Adjusted.
+
+ * ssa-chrec-10.c.ddall ssa-chrec-30.c.ddall
+ ssa-chrec-31.c.ddall ssa-chrec-32.c.ddall ssa-chrec-33.c.ddall
+ ssa-chrec-34.c.ddall ssa-chrec-35.c.ddall ssa-chrec-36.c.ddall
+ ssa-chrec-52.c.ddall: New files.
+ * ssa-chrec-10.c.alldd ssa-chrec-30.c.alldd
+ ssa-chrec-31.c.alldd ssa-chrec-32.c.alldd ssa-chrec-33.c.alldd
+ ssa-chrec-34.c.alldd ssa-chrec-35.c.alldd ssa-chrec-36.c.alldd
+ ssa-chrec-52.c.alldd ssa-chrec-53.c.alldd: Removed.
+
+2004-01-21 Sebastian Pop <s.pop@laposte.net>
+
+ * ssa-chrec-*: Replace -fdump-scalar-evolutions with
+ -fdump-tree-scev. Replace -fdump-all-data-deps with
+ -fdump-tree-alldd.
+ * tree-ssa-vect-*: Use -fdump-tree-vect instead of
+ -fdump-tree-vect-stats.
+
+2004-01-15 Sebastian Pop <s.pop@laposte.net>
+
+ * ssa-chrec-{06, 38, 42, 43}.c: Modify comments.
+ * ssa-chrec-{06, 07, 08, 09, 11, 12, 13, 14, 16, 18, 20,
+ 21, 37, 38, 39, 42, 43, 44, 45, 53}.c.scev: Adjusted.
+ * ssa-chrec-53.c.alldd: Adjusted.
+
+2004-01-12 Sebastian Pop <s.pop@laposte.net>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-51.c.scev: Adjusted.
+
+2004-01-12 Sebastian Pop <s.pop@laposte.net>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-53.c: New test.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-53.c.scev: New.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-53.c.alldd: New.
+
+2004-01-09 Sebastian Pop <s.pop@laposte.net>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{01, 04, 06, 07, 09, 10, 17,
+ 18, 27, 28, 32, 33, 34, 35, 39, 41, 45, 47, 48}.c: Update comments.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{01, 02, 03, 04, 05, 06, 09,
+ 10, 11, 17, 18, 27, 28, 30, 32, 33, 34, 35, 36, 37, 38, 39, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50}.c.scev: Adjusted.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{10, 30, 31, 32, 33, 34, 35,
+ 36}.c.alldd: Adjusted.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{51, 52}.c: New files.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{51, 52}.c.scev: New.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-52.alldd: New.
+ * ChangeLog.lno: New file.
+
+2003-12-27 Sebastian Pop <s.pop@laposte.net>
+
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-[01..50].c : New testcases.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-[01..50].c.scev: Expected
+ outputs for the scalar evolution analyzer.
+ * gcc.dg/tree-ssa-chrec/ssa-chrec-{10, 30, 31, 32, 33, 34,
+ 35, 36}.c.alldd: Expected outputs for the data dependence analyzer.
+ * gcc.dg/tree-ssa-chrec/tree-ssa-scev.exp: New file.
+ * lib/scantree.exp (diff-tree-dumps): New procedure.
diff --git a/gcc/testsuite/README b/gcc/testsuite/README
index ae5e3def522..e8476223716 100644
--- a/gcc/testsuite/README
+++ b/gcc/testsuite/README
@@ -6,7 +6,7 @@ need a current DejaGnu snapshot, which is available from
ftp://gcc.gnu.org/pub/gcc/infrastructure, for example.
These tests are included "as is". If any of them fails, do not report
-a bug. Bug reports for DejaGnu can go to bug-dejagnu@prep.ai.mit.edu.
+a bug. Bug reports for DejaGnu can go to bug-dejagnu@gnu.org.
Discussion and comments about this testsuite should be sent to
gcc@gcc.gnu.org; additions and changes to should go to sent to
gcc-patches@gcc.gnu.org.
diff --git a/gcc/testsuite/UNTESTABLE b/gcc/testsuite/UNTESTABLE
new file mode 100644
index 00000000000..97683ff5b17
--- /dev/null
+++ b/gcc/testsuite/UNTESTABLE
@@ -0,0 +1,57 @@
+APPLE LOCAL file testsuite
+
+This file lists the markers for local changes that are by their nature
+not testable, such as source code tweaks that don't directly affect
+compiler behavior. Every other local change must have at least one
+test case.
+
+Note that if a local change fixes a bug that is exposed by an existing
+test, then by definition the local change should go into FSF GCC
+instead of being listed here.
+
+MW compatibility
+Mach time
+OS pragma hook
+RTX_COST for multiply
+Stripped encodings ('!T_' and '!t_') should match.
+branch cost
+code size reduction / performance enhancement
+combine hoisted consts
+compare >= 0, not > 0.
+darwin host
+darwin mmap bug workaround
+darwin_set_section_for_var_p
+debugging
+default to ppro
+do not extern fp save/restore
+don't define SAVE_FP_PREFIX and friends
+fat builds readability
+finish file hook
+fix prototypes
+fix redundant add?
+flag_objc
+include guard for darwin.h
+interrupt signal handler (radar 2941633)
+keep tables in sync comment
+make easy_vector_constant globally visible (rs6000-protos.h)
+manual
+more orphaned code
+move is_class_name to stub-objc.c
+move lookup_interface to stub-objc.c
+move lookup_objc_ivar to stub-objc.c
+multiply cost pulled into function
+objc finish file
+order files
+parsedir
+prototypes
+prune man page
+reduce code size
+remove a stub tweak
+remove machopic_output_possible_stub_label
+rename for HFS
+separate outputdir
+setrlimit
+time formatting
+try to improve ggc
+work around a makeinfo complaint
+cp_binding_level
diff --git a/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a b/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a
deleted file mode 100644
index ed2023e37e5..00000000000
--- a/gcc/testsuite/ada/acats/tests/cxa/cxa3004.a
+++ /dev/null
@@ -1,235 +0,0 @@
--- CXA3004.A
---
--- Grant of Unlimited Rights
---
--- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
--- unlimited rights in the software and documentation contained herein.
--- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
--- this public release, the Government intends to confer upon all
--- recipients unlimited rights equal to those held by the Government.
--- These rights include rights to use, duplicate, release or disclose the
--- released technical data and computer software in whole or in part, in
--- any manner and for any purpose whatsoever, and to have or permit others
--- to do so.
---
--- DISCLAIMER
---
--- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--- PARTICULAR PURPOSE OF SAID MATERIAL.
---*
---
--- OBJECTIVE:
--- Check that the functions defined in package Ada.Characters.Handling
--- for classification of and conversion between Wide_Character and
--- Character values produce correct results when given the appropriate
--- Character and String inputs.
---
--- TEST DESCRIPTION:
--- This test demonstrates the functions defined in package
--- Ada.Characters.Handling which provide for the classification of and
--- conversion between Wide_Characters and Characters, in character
--- variables and strings.
--- Each of the functions is provided with input values that are of the
--- appropriate range. The results of the function processing are
--- subsequently evaluated.
---
--- APPLICABILITY CRITERIA:
--- Applicable to all implementations using the Latin_1 set as the
--- definition of Character.
---
---
--- CHANGE HISTORY:
--- 06 Dec 94 SAIC ACVC 2.0
--- 27 Dec 94 SAIC Corrected variable names.
---
---!
-
-with Report;
-with Ada.Characters.Handling;
-
-procedure CXA3004 is
-begin
-
- Report.Test ("CXA3004", "Check that the functions defined in package " &
- "Ada.Characters.Handling for classification " &
- "of and conversion between Wide_Character and " &
- "Character values produce correct results " &
- "when given the appropriate Character " &
- "and String inputs");
-
- Test_Block:
- declare
-
- package ACH renames Ada.Characters.Handling;
-
- Char_End : Integer := 255;
- WC_Start : Integer := 256;
- Sub_Char : Character := '*';
-
- Blank : Character := ' ';
- First_Char : Character := Character'First;
- Last_Char : Character := Character'Last;
- F_Char : Character := 'F';
-
-
- First_Wide_Char : Wide_Character := Wide_Character'First;
- Last_Non_Wide_Char : Wide_Character := Wide_Character'Val(Char_End);
- First_Unique_Wide_Char : Wide_Character := Wide_Character'Val(WC_Start);
- Last_Wide_Char : Wide_Character := Wide_Character'Last;
-
- A_String : String (1..3) := First_Char & 'X' & Last_Char;
- A_Wide_String : Wide_String (1..3) := First_Wide_Char &
- ACH.To_Wide_Character('X') &
- ACH.To_Wide_Character(Last_Char);
-
- Unique_Wide_String : Wide_String (1..2) := First_Unique_Wide_Char &
- Last_Wide_Char;
-
- Mixed_Wide_String : Wide_String (1..6) := ACH.To_Wide_Character('A') &
- First_Wide_Char &
- Last_Non_Wide_Char &
- First_Unique_Wide_Char &
- Last_Wide_Char &
- ACH.To_Wide_Character('Z');
-
-
- Basic_Char : Character := 'A';
- Basic_Wide_Char : Wide_Character := 'A';
- Basic_String : String (1..6) := "ABCXYZ";
- Basic_Wide_String : Wide_String (1..6) := "ABCXYZ";
-
- begin
-
-
- -- Function Is_Character
-
-
- if not ACH.Is_Character(First_Wide_Char) then
- Report.Failed ("Incorrect result from Is_Character - 1");
- end if;
-
-
- if ACH.Is_Character(First_Unique_Wide_Char) or
- ACH.Is_Character(Last_Wide_Char)
- then
- Report.Failed ("Incorrect result from Is_Character - 2");
- end if;
-
-
- -- Function Is_String
-
-
- if not ACH.Is_String(A_Wide_String) then
- Report.Failed ("Incorrect result from Is_String - 1");
- end if;
-
-
- if ACH.Is_String(Unique_Wide_String) or
- ACH.Is_String(Mixed_Wide_String)
- then
- Report.Failed ("Incorrect result from Is_String - 2");
- end if;
-
-
- -- Function To_Character
-
-
- -- Use default substitution character in call of To_Character.
-
- if ACH.To_Character(First_Wide_Char) /= First_Char or
- ACH.To_Character(Last_Non_Wide_Char) /= Last_Char
- then
- Report.Failed ("Incorrect result from To_Character - 1");
- end if;
-
-
- -- Provide a substitution character for use with To_Character.
-
- if ACH.To_Character(First_Unique_Wide_Char, Blank) /= Blank or
- ACH.To_Character(First_Unique_Wide_Char, Sub_Char) /= Sub_Char or
- ACH.To_Character(Last_Wide_Char) /= ' ' -- default
- then
- Report.Failed ("Incorrect result from To_Character - 2");
- end if;
-
-
- -- Function To_String
-
-
- if ACH.To_String(A_Wide_String) /= A_String then
- Report.Failed ("Incorrect result from To_String - 1");
- end if;
-
-
- if ACH.To_String(Unique_Wide_String, Sub_Char) /= "**" then
- Report.Failed ("Incorrect result from To_String - 2");
- end if;
-
-
-
- if ACH.To_String(Mixed_Wide_String, Sub_Char) /=
- ('A' & First_Char & Last_Char & "**" & 'Z') or
- ACH.To_String(Mixed_Wide_String, Sub_Char) /=
- (ACH.To_Character(Mixed_Wide_String(1), Sub_Char) &
- ACH.To_Character(Mixed_Wide_String(2), Sub_Char) &
- ACH.To_Character(Mixed_Wide_String(3), Sub_Char) &
- ACH.To_Character(Mixed_Wide_String(4), Sub_Char) &
- ACH.To_Character(Mixed_Wide_String(5), Sub_Char) &
- ACH.To_Character(Mixed_Wide_String(6), Sub_Char))
- then
- Report.Failed ("Incorrect result from To_String - 3");
- end if;
-
-
- -- Function To_Wide_Character
-
-
- if ACH.To_Wide_Character(Basic_Char) /= Basic_Wide_Char then
- Report.Failed ("Incorrect result from To_Wide_Character");
- end if;
-
-
- -- Function To_Wide_String
-
-
- if not (ACH.To_Wide_String(Basic_String) = Basic_Wide_String) then
- Report.Failed ("Incorrect result from To_Wide_String");
- end if;
-
-
- -- Functions Used In Combination
-
- if not ACH.Is_Character (ACH.To_Wide_Character (
- ACH.To_Character(First_Wide_Char)))
- then
- Report.Failed ("Incorrect result from functions in combination - 1");
- end if;
-
-
- if not ACH.Is_String(ACH.To_Wide_String(ACH.To_String(A_Wide_String)))
- then
- Report.Failed ("Incorrect result from functions in combination - 2");
- end if;
-
-
- if ACH.To_String(ACH.To_Wide_Character('A') &
- ACH.To_Wide_Character(F_Char) &
- ACH.To_Wide_Character('Z')) /= "AFZ"
- then
- Report.Failed ("Incorrect result from functions in combination - 3");
- end if;
-
-
- exception
- when others => Report.Failed ("Exception raised in Test_Block");
- end Test_Block;
-
-
- Report.Result;
-
-end CXA3004;
diff --git a/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am b/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am
deleted file mode 100644
index d31345a8eb1..00000000000
--- a/gcc/testsuite/ada/acats/tests/cxb/cxb30061.am
+++ /dev/null
@@ -1,404 +0,0 @@
--- CXB30061.AM
---
--- Grant of Unlimited Rights
---
--- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
--- unlimited rights in the software and documentation contained herein.
--- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
--- this public release, the Government intends to confer upon all
--- recipients unlimited rights equal to those held by the Government.
--- These rights include rights to use, duplicate, release or disclose the
--- released technical data and computer software in whole or in part, in
--- any manner and for any purpose whatsoever, and to have or permit others
--- to do so.
---
--- DISCLAIMER
---
--- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
--- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
--- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--- PARTICULAR PURPOSE OF SAID MATERIAL.
---*
---
--- OBJECTIVE:
--- Check that the function To_C maps between the Ada type Wide_Character
--- and the C type wchar_t.
---
--- Check that the function To_Ada maps between the C type wchar_t and
--- the Ada type Wide_Character.
---
--- Check that the function Is_Nul_Terminated returns True if the
--- wchar_array parameter contains wide_nul, and otherwise False.
---
--- Check that the function To_C produces a correct wchar_array result,
--- with lower bound of 0, and length dependent upon the Item and
--- Append_Nul parameters.
---
--- Check that the function To_Ada produces a correct wide_string result,
--- with lower bound of 1, and length dependent upon the Item and
--- Trim_Nul parameters.
---
--- Check that the function To_Ada raises Terminator_Error if the
--- parameter Trim_Nul is set to True, but the actual Item parameter
--- does not contain the wide_nul wchar_t.
---
--- TEST DESCRIPTION:
--- This test uses a variety of Wide_Character, wchar_t, Wide_String, and
--- wchar_array objects to test versions of the To_C, To_Ada, and
--- Is_Nul_Terminated functions.
---
--- This test assumes that the following characters are all included
--- in the implementation defined type Interfaces.C.wchar_t:
--- ' ', ',', '.', '0'..'9', 'a'..'z' and 'A'..'Z'.
---
--- APPLICABILITY CRITERIA:
--- This test is applicable to all implementations that provide
--- package Interfaces.C. If an implementation provides
--- package Interfaces.C, this test must compile, execute, and
--- report "PASSED".
---
--- SPECIAL REQUIREMENTS:
--- The file CXB30060.C must be compiled with a C compiler.
--- Implementation dialects of C may require alteration of
--- the C program syntax (see individual C files).
---
--- Note that the compiled C code must be bound with the compiled Ada
--- code to create an executable image. An implementation must provide
--- the necessary commands to accomplish this.
---
--- Note that the C code included in CXB30060.C conforms
--- to ANSI-C. Modifications to these files may be required for other
--- C compilers. An implementation must provide the necessary
--- modifications to satisfy the function requirements.
---
--- TEST FILES:
--- The following files comprise this test:
---
--- CXB30060.C
--- CXB30061.AM
---
--- CHANGE HISTORY:
--- 07 Sep 95 SAIC Initial prerelease version.
--- 09 May 96 SAIC Incorporated reviewer comments for ACVC 2.1.
--- 13 Sep 99 RLB Replaced (bogus) Unchecked_Conversions with a
--- C function character generator.
---
---!
-
-with Report;
-with Interfaces.C; -- N/A => ERROR
-with Ada.Characters.Latin_1;
-with Ada.Characters.Handling;
-with Ada.Exceptions;
-with Ada.Strings.Wide_Fixed;
-with Impdef;
-
-procedure CXB30061 is
-begin
-
- Report.Test ("CXB3006", "Check that the functions To_C and To_Ada " &
- "produce correct results");
-
- Test_Block:
- declare
-
- use Interfaces, Interfaces.C;
- use Ada.Characters, Ada.Characters.Latin_1, Ada.Characters.Handling;
- use Ada.Strings.Wide_Fixed;
-
- First_Character,
- Last_Character : Character;
- TC_wchar_t,
- TC_Low_wchar_t,
- TC_High_wchar_t : wchar_t := wchar_t'First;
- TC_Wide_String : Wide_String(1..8) := (others => Wide_Character'First);
- TC_wchar_array : wchar_array(0..7) := (others => C.wide_nul);
-
- -- The function Char_Gen returns a character corresponding to its
- -- argument.
- -- Value 0 .. 9 ==> '0' .. '9'
- -- Value 10 .. 19 ==> 'A' .. 'J'
- -- Value 20 .. 29 ==> 'k' .. 't'
- -- Value 30 ==> ' '
- -- Value 31 ==> '.'
- -- Value 32 ==> ','
-
- function Char_Gen (Value : in int) return wchar_t;
-
- -- Use the user-defined C function char_gen as a completion to the
- -- function specification above.
-
- pragma Import (Convention => C,
- Entity => Char_Gen,
- External_Name => Impdef.CXB30060_External_Name);
-
- begin
-
- -- Check that the functions To_C and To_Ada map between the Ada type
- -- Wide_Character and the C type wchar_t.
-
- if To_C(To_Wide_Character(Ada.Characters.Latin_1.NUL)) /=
- Interfaces.C.wide_nul
- then
- Report.Failed("Incorrect result from To_C with NUL character input");
- end if;
-
- First_Character := Report.Ident_Char('k');
- Last_Character := Report.Ident_Char('t');
- for i in First_Character..Last_Character loop
- if To_C(Item => To_Wide_Character(i)) /=
- Char_Gen(Character'Pos(i) - Character'Pos('k') + 20)
- then
- Report.Failed("Incorrect result from To_C with lower case " &
- "alphabetic wide character input");
- end if;
- end loop;
-
- First_Character := Report.Ident_Char('A');
- Last_Character := Report.Ident_Char('J');
- for i in First_Character..Last_Character loop
- if To_C(Item => To_Wide_Character(i)) /=
- Char_Gen(Character'Pos(i) - Character'Pos('A') + 10)
- then
- Report.Failed("Incorrect result from To_C with upper case " &
- "alphabetic wide character input");
- end if;
- end loop;
-
- First_Character := Report.Ident_Char('0');
- Last_Character := Report.Ident_Char('9');
- for i in First_Character..Last_Character loop
- if To_C(Item => To_Wide_Character(i)) /=
- Char_Gen(Character'Pos(i) - Character'Pos('0'))
- then
- Report.Failed("Incorrect result from To_C with digit " &
- "wide character input");
- end if;
- end loop;
-
- if To_C(Item => To_Wide_Character(' ')) /= Char_Gen(30)
- then
- Report.Failed("Incorrect result from To_C with space " &
- "wide character input");
- end if;
-
- if To_C(Item => To_Wide_Character('.')) /= Char_Gen(31)
- then
- Report.Failed("Incorrect result from To_C with dot " &
- "wide character input");
- end if;
-
- if To_C(Item => To_Wide_Character(',')) /= Char_Gen(32)
- then
- Report.Failed("Incorrect result from To_C with comma " &
- "wide character input");
- end if;
-
- if To_Ada(Interfaces.C.wide_nul) /=
- To_Wide_Character(Ada.Characters.Latin_1.NUL)
- then
- Report.Failed("Incorrect result from To_Ada with wide_nul " &
- "wchar_t input");
- end if;
-
- for Code in int range
- int(Report.Ident_Int(20)) .. int(Report.Ident_Int(29)) loop
- -- 'k' .. 't'
- if To_Ada(Item => Char_Gen(Code)) /=
- To_Wide_Character(Character'Val (Character'Pos('k') + (Code - 20)))
- then
- Report.Failed("Incorrect result from To_Ada with lower case " &
- "alphabetic wchar_t input");
- end if;
- end loop;
-
- for Code in int range
- int(Report.Ident_Int(10)) .. int(Report.Ident_Int(19)) loop
- -- 'A' .. 'J'
- if To_Ada(Item => Char_Gen(Code)) /=
- To_Wide_Character(Character'Val (Character'Pos('A') + (Code - 10)))
- then
- Report.Failed("Incorrect result from To_Ada with upper case " &
- "alphabetic wchar_t input");
- end if;
- end loop;
-
- for Code in int range
- int(Report.Ident_Int(0)) .. int(Report.Ident_Int(9)) loop
- -- '0' .. '9'
- if To_Ada(Item => Char_Gen(Code)) /=
- To_Wide_Character(Character'Val (Character'Pos('0') + (Code)))
- then
- Report.Failed("Incorrect result from To_Ada with digit " &
- "wchar_t input");
- end if;
- end loop;
-
- if To_Ada(Item => Char_Gen(30)) /= ' ' then
- Report.Failed("Incorrect result from To_Ada with space " &
- "char input");
- end if;
- if To_Ada(Item => Char_Gen(31)) /= '.' then
- Report.Failed("Incorrect result from To_Ada with dot " &
- "char input");
- end if;
- if To_Ada(Item => Char_Gen(32)) /= ',' then
- Report.Failed("Incorrect result from To_Ada with comma " &
- "char input");
- end if;
-
- -- Check that the function Is_Nul_Terminated produces correct results
- -- whether or not the wchar_array argument contains the
- -- Ada.Interfaces.C.wide_nul character.
-
- TC_Wide_String := "abcdefgh";
- if Is_Nul_Terminated(Item => To_C(TC_Wide_String, Append_Nul => False))
- then
- Report.Failed("Incorrect result from Is_Nul_Terminated when no " &
- "wide_nul wchar_t is present");
- end if;
-
- if not Is_Nul_Terminated(To_C(TC_Wide_String, Append_Nul => True)) then
- Report.Failed("Incorrect result from Is_Nul_Terminated when the " &
- "wide_nul wchar_t is present");
- end if;
-
-
-
- -- Now that we've tested the character/char versions of To_Ada and To_C,
- -- use them to test the string versions.
-
- declare
- i : size_t := 0;
- j : integer := 1;
- Incorrect_Conversion : Boolean := False;
-
- TC_No_wide_nul : constant wchar_array := To_C(TC_Wide_String,
- False);
- TC_wide_nul_Appended : constant wchar_array := To_C(TC_Wide_String,
- True);
- begin
-
- -- Check that the function To_C produces a wchar_array result with
- -- lower bound of 0, and length dependent upon the Item and
- -- Append_Nul parameters (if Append_Nul is True, length is
- -- Item'Length + 1; if False, length is Item'Length).
-
- if TC_No_wide_nul'First /= 0 or TC_wide_nul_Appended'First /= 0 then
- Report.Failed("Incorrect lower bound from Function To_C");
- end if;
-
- if TC_No_wide_nul'Length /= TC_Wide_String'Length then
- Report.Failed("Incorrect length returned from Function To_C " &
- "when Append_Nul => False");
- end if;
-
- if TC_wide_nul_Appended'Length /= TC_Wide_String'Length + 1 then
- Report.Failed("Incorrect length returned from Function To_C " &
- "when Append_Nul => True");
- end if;
-
- if not Is_Nul_Terminated(TC_wide_nul_Appended) then
- Report.Failed("No wide_nul appended to the wide_string " &
- "parameter during conversion to wchar_array " &
- "by function To_C");
- end if;
-
- for TC_char in Report.Ident_Char('a')..Report.Ident_Char('h') loop
- if TC_No_wide_nul(i) /= To_C(To_Wide_Character(TC_char)) or
- TC_wide_nul_Appended(i) /= To_C(To_Wide_Character(TC_char)) then
- -- Use single character To_C.
- Incorrect_Conversion := True;
- end if;
- i := i + 1;
- end loop;
-
- if Incorrect_Conversion then
- Report.Failed("Incorrect result from To_C with wide_string input " &
- "and wchar_array result");
- end if;
-
-
- -- Check that the function To_Ada produces a wide_string result with
- -- lower bound of 1, and length dependent upon the Item and
- -- Trim_Nul parameters (if Trim_Nul is False, length is Item'Length;
- -- if False, length will be the length of the slice of Item prior to
- -- the first wide_nul).
-
- declare
- TC_No_NUL_Wide_String : constant Wide_String :=
- To_Ada(Item => TC_wide_nul_Appended, Trim_Nul => True);
-
- TC_NUL_Appended_Wide_String : constant Wide_String :=
- To_Ada(TC_wide_nul_Appended, False);
-
- begin
-
- if TC_No_NUL_Wide_String'First /= 1 or
- TC_NUL_Appended_Wide_String'First /= 1
- then
- Report.Failed("Incorrect lower bound from Function To_Ada");
- end if;
-
- if TC_No_NUL_Wide_String'Length /= TC_Wide_String'Length then
- Report.Failed("Incorrect length returned from Function " &
- "To_Ada when Trim_Nul => True");
- end if;
-
- if TC_NUL_Appended_Wide_String'Length /=
- TC_Wide_String'Length + 1
- then
- Report.Failed("Incorrect length returned from Function " &
- "To_Ada when Trim_Nul => False");
- end if;
-
- for TC_Character in Wide_Character'('a') .. Wide_Character'('h') loop
- if TC_No_NUL_Wide_String(j) /= TC_Character or
- TC_NUL_Appended_Wide_String(j) /= TC_Character
- then
- Report.Failed("Incorrect result from To_Ada with " &
- "char_array input, index = " &
- Integer'Image(j));
- end if;
- j := j + 1;
- end loop;
-
- end;
-
-
- -- Check that the function To_Ada raises Terminator_Error if the
- -- parameter Trim_Nul is set to True, but the actual Item parameter
- -- does not contain the wide_nul wchar_t.
-
- begin
- TC_Wide_String := To_Ada(TC_No_wide_nul, Trim_Nul => True);
- Report.Failed("Terminator_Error not raised when Item " &
- "parameter of To_Ada does not contain the " &
- "wide_nul wchar_t, but parameter Trim_Nul " &
- "=> True");
- Report.Comment
- (To_String(TC_Wide_String) & " printed to defeat optimization");
- exception
- when Terminator_Error => null; -- OK, expected exception.
- when others =>
- Report.Failed("Incorrect exception raised by function " &
- "To_Ada when the Item parameter does not " &
- "contain the wide_nul wchar_t, but " &
- "parameter Trim_Nul => True");
- end;
-
- end;
-
- exception
- when The_Error : others =>
- Report.Failed
- ("The following exception was raised in the Test_Block: " &
- Ada.Exceptions.Exception_Name(The_Error));
- end Test_Block;
-
- Report.Result;
-
-end CXB30061;
diff --git a/gcc/testsuite/bugs/powerpc/g++.xfail b/gcc/testsuite/bugs/powerpc/g++.xfail
new file mode 100644
index 00000000000..062c4a7d86a
--- /dev/null
+++ b/gcc/testsuite/bugs/powerpc/g++.xfail
@@ -0,0 +1,108 @@
+# APPLE LOCAL file testsuite
+###
+### List of failing tests with Radar bug numbers
+### <radarNum>: <test name>
+### test name should be exactly as it appears html summary reports
+### including any trailing #<number>
+###
+### When the bug is fixed and the test passes, it will be an
+### analyzed non-fail. You should then comment out the test in this
+### file and make sure the Radar is closed.
+###
+###------------------------------------------------------------------
+3222046: g++.dg/warn/weak1.C (test for excess errors)
+3223598: g++.dg/special/conpr-3.C execution test
+3222135: g++.old-deja/g++.bugs/900404_02.C (test for warnings, line 25)
+3222698: g++.old-deja/g++.ext/pretty4.C execution test
+3843119: g++.dg/abi/local1.C execution test
+3843157: g++.dg/pascal-strings-2.C (test for warnings, line 7)
+3843157: g++.dg/pascal-strings-2.C (test for warnings, line 8)
+3843157: g++.dg/pascal-strings-2.C (test for warnings, line 22)
+3843157: g++.dg/pascal-strings-2.C (test for warnings, line 24)
+3843157: g++.dg/pascal-strings-2.C (test for warnings, line 25)
+3843157: g++.dg/pascal-strings-2.C (test for excess errors)
+4096269: g++.dg/eh/uncaught1.C execution test
+#
+# The following tests fail only when the c++ suite is run through Obj-C++.
+3904139: g++.dg/ext/fnname3.C execution test
+3904139: g++.dg/ext/pretty1.C scan-assembler int bar\\(T\\).*with T = int
+3904139: g++.dg/ext/pretty1.C scan-assembler int main\\(\\)
+3904178: g++.dg/opt/devirt1.C scan-assembler xyzzy
+3904139: g++.old-deja/g++.ext/pretty2.C execution test
+3904139: g++.old-deja/g++.ext/pretty3.C execution test
+3904139: g++.old-deja/g++.pt/memtemp77.C execution test
+3904173: g++.old-deja/g++.jason/cleanup2.C (test for excess errors)
+3904173: g++.old-deja/g++.jason/hmc1.C (test for excess errors)
+3904173: g++.old-deja/g++.law/ctors10.C (test for errors, line 21)
+3904173: g++.old-deja/g++.law/ctors10.C (test for excess errors)
+3904173: g++.old-deja/g++.law/shadow1.C (test for excess errors)
+3904184: g++.old-deja/g++.mike/p11144.C (test for excess errors)
+3904186: g++.dg/pch/system-1.C -g assembly comparison
+3904186: g++.dg/pch/system-1.C -O2 -g assembly comparison
+3904186: g++.dg/pch/system-1.C -O2 assembly comparison
+3904186: g++.dg/pch/system-2.C -g assembly comparison
+3904186: g++.dg/pch/system-2.C -O2 -g assembly comparison
+3904186: g++.dg/pch/system-2.C -O2 assembly comparison
+3904186: g++.dg/pch/uninst.C -g assembly comparison
+3904186: g++.dg/pch/uninst.C -O2 -g assembly comparison
+3904186: g++.dg/pch/uninst.C -O2 assembly comparison
+4079018: g++.dg/template/spec19.C (test for excess errors)
+4084977: g++.old-deja/g++.oliva/expr2.C execution test
+4084991: g++.dg/expr/lval2.C (test for excess errors)
+#
+# The following tests fail only when the c++ suite is run with -mcpu=G5
+3719311: g++.dg/template/warn1.C (test for warnings, line 12)
+#
+# The following tests fail only when the c++ suite is run with -m64
+3964999: g++.old-deja/g++.pt/const2.C (test for excess errors)
+3965017: g++.dg/template/repo1.C (test for excess errors)
+3965017: g++.dg/template/repo3.C (test for excess errors)
+3965017: g++.old-deja/g++.pt/instantiate4.C (test for excess errors)
+3965017: g++.old-deja/g++.pt/instantiate6.C (test for excess errors)
+3965017: g++.old-deja/g++.pt/repo1.C (test for excess errors)
+3965017: g++.old-deja/g++.pt/repo2.C (test for excess errors)
+3965017: g++.old-deja/g++.pt/repo3.C (test for excess errors)
+3965017: g++.old-deja/g++.pt/repo4.C (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-21 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-21 -O2 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-21 -O3 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-21 -fastcp (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-2 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-2 -O2 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-2 -O3 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-2 -fastcp (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-23 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-23 -O2 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-23 -O3 (test for excess errors)
+3941491: g++.dg/debug/const1.C -gdwarf-23 -fastcp (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-21 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-21 -O2 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-21 -O3 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-21 -fastcp (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-2 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-2 -O2 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-2 -O3 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-2 -fastcp (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-23 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-23 -O2 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-23 -O3 (test for excess errors)
+3941491: g++.dg/debug/debug4.C -gdwarf-23 -fastcp (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-21 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-21 -O2 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-21 -O3 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-21 -fastcp (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-2 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-2 -O2 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-2 -O3 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-2 -fastcp (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-23 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-23 -O2 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-23 -O3 (test for excess errors)
+3941491: g++.dg/debug/trivial.C -gdwarf-23 -fastcp (test for excess errors)
+3967626: g++.dg/eh/forced1.C execution test
+3967626: g++.old-deja/g++.eh/terminate2.C execution test
+#4097506: g++.dg/ext/opt-pragma-2.C scan-assembler-times bl "L_printf 4
+#4097506: g++.dg/ext/opt-pragma-3.C scan-assembler-times b "L_printf 4
+#4097506: g++.dg/ext/opt-pragma-4.C scan-assembler-times b "L_printf 2
+#4097506: g++.dg/ext/opt-pragma-4.C scan-assembler-times bl "L_printf 2
+#4099260: g++.old-deja/g++.brendan/new3.C execution test
diff --git a/gcc/testsuite/bugs/powerpc/gcc.xfail b/gcc/testsuite/bugs/powerpc/gcc.xfail
new file mode 100644
index 00000000000..24ddbc5eadf
--- /dev/null
+++ b/gcc/testsuite/bugs/powerpc/gcc.xfail
@@ -0,0 +1,312 @@
+# APPLE LOCAL file testsuite
+###
+### List of failing tests with Radar bug numbers
+### <radarNum>: <test name>
+### test name should be exactly as it appears html summary reports
+### including any trailing #<number>
+###
+### When the bug is fixed and the test passes, it will be an
+### analyzed non-fail. You should then comment out the test in this
+### file and make sure the Radar is closed.
+###
+###------------------------------------------------------------------
+3191500: gcc.dg/c99-func-3.c execution test
+3673618: gcc.c-torture/execute/ieee/fp-cmp-1.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-2.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-3.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-4.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-5.c compilation, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-6.c compilation, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-8.c execution, -fast
+3907496: gcc.dg/rs6000-power2-2.c scan-assembler-not lfd
+3717694: gcc.dg/pch/valid-3.c -fast (test for errors, line 3)
+3717694: gcc.dg/pch/valid-3.c -fast (test for errors, line 3) #1
+3846097: gcc.c-torture/execute/builtins/fputs.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/memmove.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/memops-asm.c compilation, -fast
+3846097: gcc.c-torture/execute/builtins/mempcpy.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/memset.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/strlen-2.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/strpcpy.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/strstr-asm.c compilation, -fast
+3846097: gcc.c-torture/execute/builtins/memmove-2.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/strcpy-2.c execution, -fast
+3846097: gcc.c-torture/execute/builtins/strlen-3.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/compare-fp-1.c compilation, -fast
+3673618: gcc.c-torture/execute/ieee/compare-fp-4.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-4f.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-4l.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-8f.c execution, -fast
+3673618: gcc.c-torture/execute/ieee/fp-cmp-8l.c execution, -fast
+3869017: gcc.dg/tree-ssa-chrec/ssa-chrec-04.c scan-tree-dump-times remove_me 0
+3869017: gcc.dg/tree-ssa-chrec/ssa-chrec-06.c scan-tree-dump-times remove_me 0
+3869017: gcc.dg/tree-ssa-chrec/ssa-chrec-07.c scan-tree-dump-times remove_me 0
+3869017: gcc.dg/tree-ssa-chrec/ssa-chrec-08.c scan-tree-dump-times remove_me 0
+3869017: gcc.dg/tree-ssa-chrec/ssa-chrec-57.c scan-tree-dump-times remove_me 0
+3869017: gcc.dg/tree-ssa-chrec/ssa-chrec-58.c scan-tree-dump-times remove_me 0
+3869017: gcc.dg/tree-ssa-chrec/20040216-1.c scan-tree-dump-times Dependence Node 4
+3869017: gcc.dg/tree-ssa/20030807-7.c scan-tree-dump-times if 1
+3869017: gcc.dg/tree-ssa/20031216-1.c scan-tree-dump-times link_error 0
+3673618: gcc.c-torture/execute/ieee/unsafe-fp-assoc.c execution, -fast
+3907496: gcc.dg/rs6000-power2-2.c scan-assembler lfq
+3907496: gcc.dg/rs6000-power2-2.c scan-assembler stfq
+3906375: gcc.dg/debug/debug-1.c -gstabs -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-1.c -gstabs3 -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-1.c -gstabs+ -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-1.c -gstabs+3 -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-2.c -gstabs -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-2.c -gstabs3 -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-2.c -gstabs+ -fast scan-assembler xyzzy
+3906375: gcc.dg/debug/debug-2.c -gstabs+3 -fast scan-assembler xyzzy
+3906482: gcc.dg/cpp/trad/comment-3.c (test for warnings, line 6)
+3961392: gcc.dg/ppc-fsel-3.c scan-assembler-not fsub
+3965499: gcc.dg/cpp/headermap-2.c (test for warnings, line 9)
+3965499: gcc.dg/cpp/headermap-2.c (test for excess errors)
+4078995: gcc.c-torture/execute/ieee/copysign1.c execution, -fast
+4078995: gcc.c-torture/execute/ieee/copysign2.c execution, -fast
+4078995: gcc.c-torture/execute/ieee/mzero6.c execution, -fast
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -fast
+4084941: gcc.dg/vect/vect-98.c scan-tree-dump-times not vectorized: complicated access pattern 1
+#
+# the following failures occur only when the tests are being run through ObjC
+3904213: gcc.dg/20040813-1.c scan-assembler .stabs.*100,0,2
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 25)
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 26)
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 27)
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 28)
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 32)
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 34)
+3904216: gcc.dg/cast-function-1.c (test for warnings, line 35)
+3904224: gcc.dg/gnu89-init-1.c (test for excess errors)
+3904224: gcc.dg/gnu99-init-1.c (test for excess errors)
+3904228: gcc.dg/uninit-A.c (test for excess errors)
+3904235: gcc.dg/wtr-unary-plus-1.c unary plus operator (test for warnings, line 12)
+3904235: gcc.dg/wtr-unary-plus-1.c unary plus operator (test for warnings, line 13)
+4079037: gcc.dg/cpp/direct2.c (test for excess errors)
+4079037: gcc.dg/cpp/direct2s.c (test for excess errors)
+3904213: gcc.apple/objc-negtest.c (test for errors, line 3)
+#
+# the following failures are for -mpowerpc64
+3966342: gcc.dg/20020919-1.c (test for errors, line 105)
+3966342: gcc.dg/20020919-1.c (test for errors, line 123)
+3966342: gcc.dg/20020919-1.c (test for errors, line 132)
+3966342: gcc.dg/20020919-1.c (test for errors, line 159)
+3966342: gcc.dg/20020919-1.c (test for errors, line 177)
+3966342: gcc.dg/20020919-1.c (test for errors, line 231)
+#4054717: gcc.dg/compat/scalar-by-value-1 c_compat_x_tst.o-c_compat_y_tst.o execute
+#4054717: gcc.dg/compat/struct-by-value-7a c_compat_x_tst.o-c_compat_y_tst.o execute
+#
+# the following failures are for -mcpu=G5
+4085878: gcc.apple/altivec-5.c (test for warnings, line 30)
+4085878: gcc.apple/altivec-5.c scan-assembler-not stvx
+4085878: gcc.apple/altivec-faltivec-1.c scan-assembler mainInt
+#3939205 causes the following test to fail when run with -m64
+4085878: gcc.apple/altivec-faltivec-1.c scan-tree-dump-times callee has AltiVec 2
+4083754: gcc.apple/comma-expr-1.c (test for errors, line 6)
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -O0
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -O1
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -O2
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -O3 -fomit-frame-pointer
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -O3 -g
+#4084907: gcc.c-torture/execute/20050316-1.c execution, -Os
+#4085878: gcc.dg/convert-vec-1.c (test for errors, line 3)
+3788046: gcc.dg/simd-2.c (test for excess errors)
+#
+# the following failures are for -m64
+3966342: gcc.apple/altivec-1.c (test for excess errors)
+3966342: gcc.apple/apple-altivec-13.c (test for excess errors)
+3966342: gcc.apple/const-cfstring-3.c scan-assembler \\.long[ \\t]+___CFConstantStringClassReference\n[ \\t]*\\.long[ \\t]+1992\n[ \\t]*\\.long[ \\t]+LC.*\n[ \\t]*\\.long[ \\t]+4\n
+3966342: gcc.apple/const-cfstring-3.c scan-assembler \\.long[ \\t]+___CFConstantStringClassReference\n[ \\t]*\\.long[ \\t]+1992\n[ \\t]*\\.long[ \\t]+LC.*\n[ \\t]*\\.long[ \\t]+10\n
+3966342: gcc.dg/darwin-bool-1.c (test for excess errors)
+3966342: gcc.dg/pr17133.c (test for excess errors)
+3966342: gcc.dg/lvalue-cast-1.c (test for excess errors)
+3939205: gcc.apple/altivec-faltivec-1.c (test for excess errors)
+#3939205: gcc.apple/altivec-faltivec-1.c scan-tree-dump-times callee has AltiVec 2
+3939205: gcc.apple/altivec-faltivec-2.c (test for excess errors)
+3939205: gcc.apple/altivec-maltivec-1.c (test for excess errors)
+3939205: gcc.dg/framework-1.c (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-21 (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-21 -O (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-21 -O3 (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-21 -fast (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-2 (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-2 -O (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-2 -O3 (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-2 -fast (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-23 (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-23 -O (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-23 -O3 (test for excess errors)
+3967637: gcc.dg/debug/20020220-1.c -gdwarf-23 -fast (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-21 (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-21 -O (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-21 -O3 (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-21 -fast (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-2 (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-2 -O (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-2 -O3 (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-2 -fast (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-23 (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-23 -O (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-23 -O3 (test for excess errors)
+3967637: gcc.dg/debug/20020327-1.c -gdwarf-23 -fast (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-21 (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-21 -O (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-21 -O3 (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-21 -fast (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-2 (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-2 -O (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-2 -O3 (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-2 -fast (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-23 (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-23 -O (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-23 -O3 (test for excess errors)
+3967637: gcc.dg/debug/trivial.c -gdwarf-23 -fast (test for excess errors)
+3967747: gcc.dg/cleanup-10.c execution test
+3967747: gcc.dg/cleanup-11.c execution test
+3967747: gcc.dg/cleanup-8.c execution test
+3967747: gcc.dg/cleanup-9.c execution test
+3939035: gcc.misc-tests/linkage.c link
+3968604: gcc.dg/pch/apple-altivec-1.c -O0 -g (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -O0 -g (test for excess errors) #1
+3968604: gcc.dg/pch/apple-altivec-1.c -O0 (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -O0 (test for excess errors) #1
+3968604: gcc.dg/pch/apple-altivec-1.c -O1 (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -O1 (test for excess errors) #1
+3968604: gcc.dg/pch/apple-altivec-1.c -O2 (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -O2 (test for excess errors) #1
+3968604: gcc.dg/pch/apple-altivec-1.c -O3 -fomit-frame-pointer (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -O3 -fomit-frame-pointer (test for excess errors) #1
+3968604: gcc.dg/pch/apple-altivec-1.c -O3 -g (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -O3 -g (test for excess errors) #1
+3968604: gcc.dg/pch/apple-altivec-1.c -Os (test for excess errors)
+3968604: gcc.dg/pch/apple-altivec-1.c -Os (test for excess errors) #1
+3996036: gcc.dg/Wpadded.c (test for excess errors)
+#4063657: gcc.apple/asm-block-2.c execution test
+4078608: gcc.misc-tests/bprob-1.c compilation, -fast -fbranch-probabilities
+4078608: gcc.misc-tests/bprob-1.c compilation, -fast -ftree-based-profiling -fbranch-probabilities
+4078777: gcc.misc-tests/bprob-2.c execution, -fast -ftree-based-profiling -fprofile-arcs
+4096268: gcc.misc-tests/bprob-1.c execution, -fast -fbranch-probabilities
+4096268: gcc.misc-tests/bprob-1.c execution, -fast -ftree-based-profiling -fbranch-probabilities
+4078834: gcc.dg/pr18096-1.c stack frame too large (test for warnings, line 11)
+#4078985: gcc.c-torture/compile/920617-1.c -fast (test for excess errors)
+#4078985: gcc.c-torture/compile/991202-1.c -fast (test for excess errors)
+4078990: gcc.c-torture/execute/comp-goto-1.c execution, -fast
+4085016: gcc.dg/altivec-14.c (test for warnings, line 7)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 8)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 9)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 10)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 11)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 12)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 14)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 15)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 16)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 20)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 21)
+4085016: gcc.dg/altivec-14.c (test for warnings, line 22)
+4085016: gcc.dg/altivec-14.c (test for excess errors)
+4085217: gcc.dg/asm-b.c execution test
+4085231: gcc.dg/transparent-union-1.c (test for excess errors)
+4085231: gcc.dg/transparent-union-2.c (test for excess errors)
+4097506: gcc.apple/opt-pragma-2.c scan-assembler-times bl "L_printf 4
+4097506: gcc.apple/opt-pragma-3.c scan-assembler-times b "L_printf 4
+4097506: gcc.apple/opt-pragma-4.c scan-assembler-times b "L_printf 2
+4097506: gcc.apple/opt-pragma-4.c scan-assembler-times bl "L_printf 2
+#
+# the following failures are for x86 only
+4087300: gcc.c-torture/execute/builtins/strcat.c execution, -fast
+4087300: gcc.c-torture/execute/builtins/strlen-3.c compilation, -fast
+4087300: gcc.c-torture/execute/builtins/strncmp-2.c execution, -fast
+4087313: gcc.dg/20011119-1.c (test for excess errors)
+4087319: gcc.dg/990424-1.c execution test
+4087219: gcc.dg/i386-asm-3.c (test for excess errors)
+4087327: gcc.dg/clobbers.c (test for excess errors)
+4087330: gcc.dg/sibcall-6.c execution test
+4053179: gcc.dg/vect/vect-none.c scan-tree-dump-times vectorized 0 loops 2
+4053179: gcc.dg/vect/vect-none.c scan-tree-dump-times vectorized 1 loops 1
+#4015764: gcc.c-torture/compile/20000518-1.c -O1 (test for excess errors)
+#4015764: gcc.c-torture/compile/20000518-1.c -O2 (test for excess errors)
+#4015764: gcc.c-torture/compile/20000518-1.c -O3 -fomit-frame-pointer (test for excess errors)
+#4015764: gcc.c-torture/compile/20000518-1.c -O3 -g (test for excess errors)
+#4015764: gcc.c-torture/compile/20000518-1.c -Os (test for excess errors)
+#4015764: gcc.c-torture/compile/20000518-1.c -fast (test for excess errors)
+4087219: gcc.c-torture/compile/20000804-1.c -O0 (test for excess errors)
+4015789: gcc.c-torture/compile/20011029-1.c -O0 (test for excess errors)
+4015854: gcc.c-torture/execute/20020720-1.c compilation, -O1
+4015854: gcc.c-torture/execute/20020720-1.c compilation, -O2
+4015854: gcc.c-torture/execute/20020720-1.c compilation, -O3 -fomit-frame-pointer
+4015854: gcc.c-torture/execute/20020720-1.c compilation, -O3 -g
+4015854: gcc.c-torture/execute/20020720-1.c compilation, -Os
+4015854: gcc.c-torture/execute/20020720-1.c compilation, -fast
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O0
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O1
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O2
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O3 -fomit-frame-pointer
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O3 -fomit-frame-pointer -funroll-loops
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -O3 -g
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -Os
+4015789: gcc.c-torture/execute/built-in-setjmp.c compilation, -fast
+4015896: gcc.dg/20020312-2.c (test for excess errors)
+4015896: gcc.dg/20020919-1.c (test for errors, line 244)
+4015896: gcc.dg/20020919-1.c (test for excess errors)
+#4015916: gcc.dg/c99-tgmath-2.c (test for excess errors)
+#4015916: gcc.dg/c99-tgmath-3.c (test for excess errors)
+#4015916: gcc.dg/c99-tgmath-4.c (test for excess errors)
+#4015922: gcc.dg/cpp/19990407-1.c (test for excess errors)
+#4015927: gcc.dg/cpp/headermap-1.c (test for excess errors)
+#4015927: gcc.dg/cpp/headermap-2.c (test for warnings, line 10)
+#4015922: gcc.dg/cpp/strp1.c (test for excess errors)
+#4015922: gcc.dg/cpp/strp2.c (test for excess errors)
+4015940: gcc.dg/lvalue-cast-1.c (test for warnings, line 20)
+4015940: gcc.dg/lvalue-cast-1.c (test for excess errors)
+#4015922: gcc.dg/struct-ret-libc.c (test for excess errors)
+4053179: gcc.dg/tree-ssa-vect/ifc-01.c execution test
+#4064388: gcc.c-torture/execute/simd-1.c execution, -O0
+#4064388: gcc.c-torture/execute/simd-2.c execution, -O0
+#4064388: gcc.c-torture/execute/simd-2.c execution, -O1
+#4064388: gcc.c-torture/execute/simd-2.c execution, -O2
+#4064388: gcc.c-torture/execute/simd-2.c execution, -O3 -fomit-frame-pointer
+#4064388: gcc.c-torture/execute/simd-2.c execution, -O3 -g
+#4064388: gcc.c-torture/execute/simd-2.c execution, -Os
+#4064388: gcc.c-torture/execute/simd-2.c execution, -fast
+#4087332: gcc.c-torture/execute/va-arg-25.c execution, -Os
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?sin
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?cos
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?sqrt
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?atan2
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?log
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?exp
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?tan
+4087344: gcc.dg/i386-387-1.c scan-assembler call\t_?fmod
+4087344: gcc.dg/i386-387-3.c scan-assembler fldpi
+4087344: gcc.dg/i386-387-4.c scan-assembler fldpi
+4087344: gcc.dg/i386-387-5.c scan-assembler call\t_?atan
+4087344: gcc.dg/i386-387-5.c scan-assembler call\t_?log1p
+4087344: gcc.dg/i386-387-5.c scan-assembler call\t_?drem
+4087344: gcc.dg/i386-cmov1.c scan-assembler sar[^\\n]*magic_namea
+4087344: gcc.dg/i386-cmov1.c scan-assembler sar[^\\n]*magic_nameb
+4087344: gcc.dg/i386-cmov1.c scan-assembler sar[^\\n]*magic_namec
+4087344: gcc.dg/i386-cmov1.c scan-assembler shr[^\\n]*magic_named
+4087344: gcc.dg/i386-cmov1.c scan-assembler shr[^\\n]*magic_namee
+4087344: gcc.dg/i386-cmov1.c scan-assembler shr[^\\n]*magic_namef
+4087344: gcc.dg/i386-cmov4.c scan-assembler cmov
+4087344: gcc.dg/i386-local2.c scan-assembler-not sub[^\\n]*sp
+4087344: gcc.dg/i386-mul.c scan-assembler and[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-1.c scan-assembler andpd[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-1.c scan-assembler andnpd[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-1.c scan-assembler xorpd[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-1.c scan-assembler orpd[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-1.c scan-assembler movapd[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-3.c scan-assembler andps[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-3.c scan-assembler andnps[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-3.c scan-assembler xorps[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-3.c scan-assembler orps[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-3.c scan-assembler movaps[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-5.c scan-assembler pand[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-5.c scan-assembler pandn[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-5.c scan-assembler pxor[^\\n]*magic
+4087344: gcc.dg/i386-ssetype-5.c scan-assembler por[^\\n]*magic
+4087344: gcc.dg/i386-cvt-1.c scan-assembler cvttsd2si[^\\n]*xmm
+4087344: gcc.dg/i386-cvt-1.c scan-assembler cvttss2si[^\\n]*xmm
+4087344: gcc.misc-tests/i386-pf-none-1.c -march=i686 scan-assembler-not fetch
+4087344: gcc.misc-tests/i386-pf-none-1.c -march=pentium2 scan-assembler-not fetch
diff --git a/gcc/testsuite/bugs/powerpc/libstdc++-v3.xfail b/gcc/testsuite/bugs/powerpc/libstdc++-v3.xfail
new file mode 100644
index 00000000000..01cb049740a
--- /dev/null
+++ b/gcc/testsuite/bugs/powerpc/libstdc++-v3.xfail
@@ -0,0 +1,34 @@
+# APPLE LOCAL file testsuite
+###
+### List of failing tests with Radar bug numbers
+### <radarNum>: <test name>
+### test name should be exactly as it appears html summary reports
+### including any trailing #<number>
+###
+### When the bug is fixed and the test passes, it will be a
+### analyzed non-fail. You should then comment out the test in this
+### file and make sure the Radar bug is closed.
+###
+###------------------------------------------------------------------
+4125559: 21_strings/basic_string/capacity/char/18654.cc execution test
+4125559: 21_strings/basic_string/capacity/wchar_t/18654.cc execution test
+3884894: 23_containers/vector/resize/1.cc execution test
+3378287: 26_numerics/cmath/c99_classification_macros_c.cc (test for excess errors)
+3378287: 26_numerics/complex/13450.cc execution test
+4125559: 27_io/basic_istream/get/char/3.cc execution test
+4125559: 27_io/basic_istream/get/wchar_t/3.cc execution test
+4125559: 27_io/basic_istream/getline/char/6.cc execution test
+4125559: 27_io/basic_istream/getline/wchar_t/6.cc execution test
+4127891: 27_io/ios_base/storage/11584.cc execution test
+3884894: 27_io/ios_base/storage/2.cc execution test
+4079184: demangle/abi_examples/01.cc execution test
+4079184: demangle/abi_examples/02.cc execution test
+#
+# the following failures are for x86 only
+#4125564: 22_locale/money_put/put/char/4.cc execution test
+#4125564: 22_locale/money_put/put/wchar_t/4.cc execution test
+#4125564: 22_locale/num_put/put/char/4.cc execution test
+#4125564: 22_locale/num_put/put/wchar_t/4.cc execution test
+#4125564: 26_numerics/complex/complex_inserters_extractors.cc execution test
+4129761: 26_numerics/complex/complex_value.cc execution test
+4129761: 26_numerics/complex/pow.cc execution test
diff --git a/gcc/testsuite/bugs/powerpc/obj-c++.xfail b/gcc/testsuite/bugs/powerpc/obj-c++.xfail
new file mode 100644
index 00000000000..b0ba438f345
--- /dev/null
+++ b/gcc/testsuite/bugs/powerpc/obj-c++.xfail
@@ -0,0 +1,12 @@
+# APPLE LOCAL file testsuite
+###
+### List of failing tests with Radar bug numbers
+### <radarNum>: <test name>
+### test name should be exactly as it appears html summary reports
+### including any trailing #<number>
+###
+### When the bug is fixed and the test passes, it will be an
+### analyzed non-fail. You should then comment out the test in this
+### file and make sure the Radar is closed.
+###
+###------------------------------------------------------------------
diff --git a/gcc/testsuite/bugs/powerpc/objc.xfail b/gcc/testsuite/bugs/powerpc/objc.xfail
new file mode 100644
index 00000000000..b47ac9fe83e
--- /dev/null
+++ b/gcc/testsuite/bugs/powerpc/objc.xfail
@@ -0,0 +1,21 @@
+# APPLE LOCAL file testsuite
+###
+### List of failing tests with Radar bug numbers
+### <radarNum>: <test name>
+### test name should be exactly as it appears html summary reports
+### including any trailing #<number>
+###
+### When the bug is fixed and the test passes, it will be an
+### analyzed non-fail. You should then comment out the test in this
+### file and make sure the Radar is closed.
+###
+###------------------------------------------------------------------
+#4055183: objc.dg/stubify-1.m scan-assembler (bl|call)\tL_objc_msgSend\\$stub\n
+#4055183: objc.dg/stubify-1.m scan-assembler (bl|call)\tL_bogonic\\$stub\n
+#4055183: objc.dg/stubify-1.m scan-assembler-not \\$non_lazy_ptr
+#4055183: objc.dg/stubify-2.m scan-file-not symbol_ref.*"objc_msgSend"
+#4087344: objc.dg/stret-2.m scan-assembler objc_msgSend_stret
+#4087344: objc.dg/stret-2.m scan-assembler-not objc_msgSend[^_S]
+#4087344: objc.dg/stret-2.m scan-assembler-not objc_msgSendSuper[^_]
+#4087344: objc.dg/symtab-1.m scan-assembler L_OBJC_SYMBOLS.*:\n\t.long\t0\n\t.long\t0\n\t.short\t2\n\t.short\t0\n\t.long\tL_OBJC_CLASS_Derived.*\n\t.long\tL_OBJC_CLASS_Base.*\n
+
diff --git a/gcc/testsuite/g++.dg/4080945a.C b/gcc/testsuite/g++.dg/4080945a.C
new file mode 100644
index 00000000000..6a46a9e3d09
--- /dev/null
+++ b/gcc/testsuite/g++.dg/4080945a.C
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file 4080945 / PR 20742 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/**********************************************************************/
+
+extern int Loop1Max,Loop2Max;
+void bar(int a, int b, int c);
+void foo(int parm);
+
+/**********************************************************************/
+
+#define x7(x) x;x;x;x;x;x;x
+#define REPL(x) x7(x);x7(x);x7(x);x7(x);x7(x);x7(x)
+ // 6 * 7 = 42 (0.06 seconds compile-time for GCC 3.3, 1 year for GCC 4.0)
+ // Changing REPL from 42 to 21 will reduce GCC 4.0 compile-time to 20 seconds.
+
+/**********************************************************************/
+void foo(int parm)
+{
+ register int x,y;
+ register int a,b,c;
+
+ a = b = c = parm;
+
+ for (y=0; y<Loop2Max; ++y)
+ {
+ for (x=0; x<Loop1Max; ++x)
+ {
+ REPL
+ (
+ a = c * a;
+ b = a * b;
+ c = parm - a;
+ );
+ }
+ }
+
+ bar(a,b,c);
+
+ return;
+}
+
+/**********************************************************************/
diff --git a/gcc/testsuite/g++.dg/abi/param2.C b/gcc/testsuite/g++.dg/abi/param2.C
new file mode 100644
index 00000000000..ed3c0dff132
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/param2.C
@@ -0,0 +1,18 @@
+// PR target/20795
+// Test passing aligned empty aggregate
+// { dg-do compile }
+
+struct S { union {} a; } __attribute__((aligned));
+
+S
+foo (S arg)
+{
+ return arg;
+}
+
+void
+bar (void)
+{
+ S arg;
+ foo (arg);
+}
diff --git a/gcc/testsuite/g++.dg/abi/vague1.C b/gcc/testsuite/g++.dg/abi/vague1.C
index 83be514919a..02feee9e2d4 100644
--- a/gcc/testsuite/g++.dg/abi/vague1.C
+++ b/gcc/testsuite/g++.dg/abi/vague1.C
@@ -3,8 +3,6 @@
// Disable debug info so we don't get confused by the symbol name there.
// { dg-options "-g0" }
-// The test fails on hppa*-*-hpux* because the symbol _ZN1AIiE1tE is imported.
-// { dg-final { scan-assembler-not "_ZN1AIiE1tE" { xfail hppa*-*-hpux* } } }
template <class T> struct A {
static const T t = 0;
diff --git a/gcc/testsuite/g++.dg/align-test-1.C b/gcc/testsuite/g++.dg/align-test-1.C
new file mode 100644
index 00000000000..e0cdb68c851
--- /dev/null
+++ b/gcc/testsuite/g++.dg/align-test-1.C
@@ -0,0 +1,295 @@
+/* APPLE LOCAL file Macintosh alignment */
+
+/* { dg-do run } */
+/* { dg-options "-Wno-long-long -Wno-invalid-offsetof" } */
+
+/*
+ * Macintosh compiler alignment test for C++.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+extern "C" void abort (void);
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned short UINT16;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+/* === classes === */
+
+class C1 {
+ static const int f1 = 1;
+ UINT8 f2;
+};
+
+class C2 {
+ static int f1;
+ UINT8 f2;
+};
+
+class C3 {
+ public:
+ enum E1 {
+ f1 = 1
+ };
+ protected:
+ UINT8 f2;
+};
+
+class C4 {
+ UINT8 f1;
+ static const int f2 = 1;
+};
+
+class C5 {
+ UINT8 f2;
+ static int f1;
+};
+
+class C6 {
+ UINT8 f1;
+ enum E1 {
+ f2 = 1
+ };
+};
+
+class C7 {
+ /* empty base class */
+};
+
+#ifndef __LP64__
+#pragma options align=mac68k
+
+class C8 {
+ /* empty base class */
+};
+
+class C9: public C8 {
+ public:
+ UINT8 f1;
+};
+
+#pragma options align=reset
+#endif /* n __LP64 __ */
+
+/* What is offset of first field after an empty base class? */
+class C10: public C7 {
+ public:
+ UINT8 f1;
+};
+
+/* Check that we no longer try to put derived class bits in padding at end of base class. */
+class C11 {
+ public:
+ UINT32 f1;
+ UINT8 f2;
+};
+
+class C12: public C11 {
+ public:
+ UINT8 f3;
+};
+
+/* Check whether compiler will reorder members to take advantage of
+ padding. If the compiler did this (which it does not appear to
+ do), f3 and f4 in C14 would be reordered to take advantage of the
+ padding at the end of the base class. */
+class C13 {
+ public:
+ UINT32 f1;
+ UINT16 f2;
+};
+
+class C14: public C13 {
+ public:
+ UINT32 f3;
+ UINT16 f4;
+};
+
+/* Tests for double aligned base class */
+
+class C15 {
+ public:
+ double f1;
+ long f2;
+};
+
+class C16: public C15 {
+};
+
+class C17: public C15 {
+ public:
+ long f3;
+};
+
+class C18: public C16 {
+ public:
+ char f3;
+};
+
+class C19: public C17 {
+ public:
+ char f4;
+};
+
+/* Tests for alignment in class with v-table pointer */
+
+class C20 {
+ public:
+ double f1;
+ virtual void func1(void);
+};
+
+/* === vectors === */
+
+#ifdef __VEC__
+class VC1 {
+ public:
+ vector signed short f1;
+ UINT8 f2;
+};
+
+typedef struct VS1 {
+ VC1 f1;
+ UINT8 f2;
+} VS1;
+
+class VC2: public VC1 {
+ public:
+ UINT8 f1;
+};
+
+typedef struct VS2 {
+ UINT8 f1;
+ VC2 f2;
+ UINT8 f3;
+} VS2;
+
+class VC3 {
+ public:
+ vector signed short f1;
+ virtual void func1(void);
+};
+
+#endif
+
+/* === bools === */
+
+typedef struct B1 {
+ bool f1;
+ UINT8 f2;
+} B1;
+
+typedef struct B2 {
+ UINT8 f1;
+ bool f2;
+} B2;
+
+
+static void check(char * rec_name, int actual, int expected32, int expected64,
+ int expected_ia32, char * comment)
+{
+ int expected;
+#ifdef __i386__
+ expected = expected_ia32;
+#else
+ expected = ((sizeof(char *) == 8) ? expected64 : expected32);
+#endif
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ check(Q(sizeof(C1)), 1, 1, 1, "const as 1st field");
+ check(Q(sizeof(C2)), 1, 1, 1, "static as 1st field");
+ check(Q(sizeof(C3)), 1, 1, 1, "enum as 1st field");
+ check(Q(sizeof(C4)), 1, 1, 1, "const as 2nd field");
+ check(Q(sizeof(C5)), 1, 1, 1, "static as 2nd field");
+ check(Q(sizeof(C6)), 1, 1, 1, "enum as 2nd field");
+ check(Q(sizeof(C7)), 1, 1, 1, "empty class, power mode");
+#ifndef __LP64__
+ check(Q(sizeof(C8)), 2, 2, 2, "empty class, mac68k mode");
+ check(Q(sizeof(C9)), 2, 2, 2, "class with empty base class and one char, mac68k");
+ check(Q(offsetof(C9, f1)), 0, 0, 0, "offset of 1st field after empty base class");
+#endif
+ check(Q(sizeof(C10)), 1, 1, 1, "class based on an empty class, power mode");
+ check(Q(sizeof(C11)), 8, 16, 8, "class with long, char");
+ check(Q(sizeof(C12)), 12, 24, 12, "class with base class with long, char and its own char");
+ check(Q(offsetof(C12, f3)), 8, 16, 8, "offset of 1st field in class with a base class with a long, char");
+ check(Q(sizeof(C13)), 8, 16, 8, "class with long, short");
+ check(Q(sizeof(C14)), 16, 32, 16, "derived class with short, long");
+ check(Q(offsetof(C14, f3)), 8, 16, 8, "offset of 1st field after base class with padding");
+ check(Q(offsetof(C14, f4)), 12, 24, 12, "offset of 2nd field after base class with padding");
+
+ check(Q(sizeof(C15)), 16, 16, 12, "base class with double, long");
+ check(Q(sizeof(C16)), 16, 16, 12, "empty derived class with base with double, long");
+ check(Q(sizeof(C17)), 24, 24, 16, "derived class with base with double, long and its own long");
+ check(Q(sizeof(C18)), 20, 24, 16, "derived class based on empty derived class with base with double, long");
+ check(Q(sizeof(C19)), 24, 32, 20, "derived class based on derived class with base with double, long and its own long");
+ check(Q(sizeof(C20)), 12, 16, 12, "class with double and v-table ptr");
+ check(Q(offsetof(C20, f1)), 4, 8, 4, "offset of double 1st field in class with v-table ptr");
+
+ /* Vector tests */
+#ifdef __VEC__
+ check(Q(sizeof(VC1)), 32, 32, 32, "class with vector as 1st field");
+ check(Q(sizeof(VS1)), 48, 48, 48, "struct with a class with a vector as 1st field");
+ check(Q(sizeof(VC2)), 48, 48, 48, "class with base class containing a vector");
+ check(Q(offsetof(VC2, f1)), 32, 32, 32, "offset of 1st field after base class with vector, char, and padding");
+ check(Q(sizeof(VS2)), 80, 80, 80, "struct with a char, class with a vector, char");
+ check(Q(offsetof(VS2, f2)), 16, 16, 16, "offset of class with a vector in a struct with char, class...");
+ check(Q(offsetof(VS2, f3)), 64, 64, 64, "offset of 2nd char in a struct with char, class, char");
+ check(Q(sizeof(VC3)), 32, 32, 32, "class with a vector and v-table ptr");
+ check(Q(offsetof(VC3, f1)), 16, 16, 16, "offset vector in class with a vector and v-table ptr");
+#endif
+
+ /* bool tests */
+ check(Q(sizeof(bool)), 4, 1, 1, "bool data type");
+ check(Q(sizeof(B1)), 8, 2, 2, "struct with bool, char");
+ check(Q(sizeof(B2)), 8, 2, 2, "struct with char, bool");
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/altivec-1.C b/gcc/testsuite/g++.dg/altivec-1.C
new file mode 100644
index 00000000000..6bda7094db0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-1.C
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file AltiVec */
+/* Test for static_cast<...> among AltiVec types. */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+struct Foo2 {
+ vector unsigned int vui;
+ vector signed int As_vsi() {
+ return static_cast<vector signed int>(vui); /* { dg-bogus "invalid static_cast" } */
+ }
+};
+
diff --git a/gcc/testsuite/g++.dg/altivec-2.C b/gcc/testsuite/g++.dg/altivec-2.C
new file mode 100644
index 00000000000..0b2f3751a24
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-2.C
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file AltiVec */
+/* Test for distinguishing 'vector bool ...' from 'vector unsigned ...'
+ types by the front-end. */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+struct Foo1 {
+ void foo(vector unsigned char) { }
+ void foo(vector bool char) { } /* { dg-bogus "has already been declared" } */
+ void bar(vector unsigned short) { }
+ void bar(vector bool short) { } /* { dg-bogus "has already been declared" } */
+ void baz(vector unsigned int) { }
+ void baz(vector bool int) { } /* { dg-bogus "has already been declared" } */
+};
+
diff --git a/gcc/testsuite/g++.dg/altivec-3.C b/gcc/testsuite/g++.dg/altivec-3.C
new file mode 100644
index 00000000000..77084a1d824
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-3.C
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec -Wall" } */
+
+/* This test checks if AltiVec builtins accept const-qualified
+ arguments. */
+
+int main (int argc, const char * argv[])
+{
+ int i;
+ const float cf = 1.0;
+ vector float v;
+ const vector float cv = (vector float)(1.0, 2.0, 3.0, 4.0);
+
+ vec_dst(&cv, i, 0);
+ v = vec_ld(0, &cv);
+ v = vec_lde(0, &cf);
+ vec_lvsl(0, &cf);
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/altivec-4.C b/gcc/testsuite/g++.dg/altivec-4.C
new file mode 100644
index 00000000000..63eb1d5c379
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-4.C
@@ -0,0 +1,129 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec -maltivec" } */
+
+/* Test for correct handling of AltiVec constants passed
+ through '...' (va_arg). */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define CHECK_INVARIANT(expr) \
+ if (!(expr)) { \
+ printf ("ASSERT FAILED: %d: %s\n", __LINE__, #expr); \
+ abort (); \
+ }
+
+struct foo { int x; int y; };
+struct vfoo { int x; __vector signed int v; int y; };
+union u { __vector signed int v; signed int i[4]; };
+
+struct foo x_g = { 3, 4};
+struct vfoo vx_g = { 10, (vector signed int)(11, 12, 13, 14), 15 };
+__vector signed int v_g = (vector signed int) (22, 23, 24, 25);
+struct vfoo vx2_g = { 30, (vector signed int)(31, 32, 33, 34), 35 };
+__vector signed int v2_g = (vector signed int)(40, 41, 42, 43);
+int i_1 = 99, i_2 = 33;
+double d_2 = 1.5, d_3 = 1.75;
+long double ld_1 = 1.25;
+
+void bar (int i, ... )
+{
+ struct foo xi;
+ double d;
+ long double ld;
+ float f;
+ char c;
+ short s;
+ va_list ap;
+ va_start(ap, i);
+ xi = va_arg(ap, struct foo);
+ s = (short)va_arg(ap, int);
+ f = (float)va_arg(ap, double);
+ ld = va_arg(ap, long double);
+ c = (char)va_arg(ap, int);
+ d = va_arg(ap, double);
+ va_end(ap);
+
+ CHECK_INVARIANT (xi.x == x_g.x && xi.y == x_g.y);
+ CHECK_INVARIANT (s == (short)i_2);
+ CHECK_INVARIANT (f == (float)d_2);
+ CHECK_INVARIANT (ld == ld_1);
+ CHECK_INVARIANT (c == (char)i_1);
+ CHECK_INVARIANT (d == d_3);
+}
+
+void baz (int i, ... )
+{
+ struct vfoo vx, vx2;
+ __vector signed int v_i, v2_i;
+ int j, k, l;
+ va_list ap;
+ va_start(ap, i);
+ v_i = va_arg(ap, __vector signed int); /* { dg-bogus "non-POD type" } */
+ j = va_arg(ap, int);
+ vx = va_arg(ap, struct vfoo); /* { dg-bogus "non-POD type" } */
+ k = va_arg(ap, int);
+ v2_i = va_arg(ap, __vector signed int); /* { dg-bogus "non-POD type" } */
+ l = va_arg(ap, int);
+ vx2 = va_arg(ap, struct vfoo); /* { dg-bogus "non-POD type" } */
+ va_end(ap);
+
+ CHECK_INVARIANT (vec_all_eq (v_i, v_g));
+ CHECK_INVARIANT (j == i_1);
+ CHECK_INVARIANT (vx.x == vx_g.x && vec_all_eq(vx.v, vx_g.v) && vx.y == vx_g.y);
+ CHECK_INVARIANT (k == i_1);
+ CHECK_INVARIANT (vec_all_eq (v2_i, v2_g));
+ CHECK_INVARIANT (l == i_1);
+ CHECK_INVARIANT (vx2.x == vx2_g.x && vec_all_eq(vx2.v, vx2_g.v) && vx2.y == vx2_g.y);
+}
+
+void quux (int i, ... )
+{
+ __vector signed int v_i, v2_i;
+ union u vi, v2i;
+ va_list ap;
+ va_start(ap, i);
+ v_i = va_arg(ap, __vector signed int);
+ v2_i = va_arg(ap, __vector signed int);
+ va_end(ap);
+ vi.v = v_i;
+ v2i.v = v2_i;
+
+ CHECK_INVARIANT (vec_all_eq (v_i, v_g));
+ CHECK_INVARIANT (vec_all_eq (v2_i, v_g));
+ CHECK_INVARIANT (vec_all_eq (vi.v, v_g));
+ CHECK_INVARIANT (vec_all_eq (v2i.v, v_g));
+}
+
+void baz2 (int i, ... )
+{
+ struct vfoo vx;
+ union u vxi;
+ va_list ap;
+ va_start(ap, i);
+ vx = va_arg(ap, struct vfoo);
+ va_end(ap);
+ vxi.v = vx.v;
+
+ CHECK_INVARIANT (vx.x == vx_g.x && vec_all_eq(vx.v, vx_g.v) && vx.y == vx_g.y);
+ CHECK_INVARIANT (vec_all_eq (vxi.v, vx_g.v));
+}
+
+int main(void)
+{
+ CHECK_INVARIANT (sizeof(struct foo) == 8 && sizeof(struct vfoo) == 48);
+
+ bar(i_1, x_g, (short)i_2, (float)d_2, ld_1, (char)i_1, d_3);
+ baz(i_1, v_g, /* { dg-bogus "non-POD type" "" { target *-*-* } 122 } */
+ i_1, vx_g, /* { dg-bogus "non-POD type" "" { target *-*-* } 122 } */
+ i_1, v2_g, /* { dg-bogus "non-POD type" "" { target *-*-* } 122 } */
+ i_1, vx2_g); /* { dg-bogus "non-POD type" } */
+ quux(i_1, v_g, /* { dg-bogus "non-POD type" "" { target *-*-* } 124 } */
+ v_g); /* { dg-bogus "non-POD type" } */
+ baz2(i_1, vx_g); /* { dg-bogus "non-POD type" } */
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/altivec-5.C b/gcc/testsuite/g++.dg/altivec-5.C
new file mode 100644
index 00000000000..9cfa64470d6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-5.C
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file AltiVec */
+/* Test for AltiVec type overloading. */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+ void foo(vector unsigned char) { }
+ void foo(vector signed char) { }
+ void foo(vector bool char) { }
+ void foo(vector unsigned short) { }
+ void foo(vector signed short) { }
+ void foo(vector bool short) { }
+ void foo(vector unsigned int) { }
+ void foo(vector signed int) { }
+ void foo(vector bool int) { }
+ void foo(vector float) { }
+ void foo(vector pixel) { }
+ void foo(int) { }
+ void foo(unsigned int) { }
+ void foo(float) { }
+ void foo(bool) { }
diff --git a/gcc/testsuite/g++.dg/altivec-7.C b/gcc/testsuite/g++.dg/altivec-7.C
new file mode 100644
index 00000000000..74467361dd9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-7.C
@@ -0,0 +1,66 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+
+extern "C" void abort(void);
+
+void CMP (vector unsigned char v, vector unsigned char v1)
+{
+ union {
+ vector unsigned char vv;
+ unsigned char s[16];
+ } r, r1;
+ r.vv = v;
+ r1.vv = v1;
+
+ for (int i=0; i < 16; i++)
+ if (r.s[i] != r1.s[i])
+ abort();
+ return;
+}
+
+#define TEST_FUNCTION_TEMPLATE
+
+#ifdef TEST_FUNCTION_TEMPLATE
+template <int I>
+#endif
+void vectorTest()
+{
+ typedef vector unsigned char VUC;
+
+ // Multiple initializers with expressions
+ const unsigned char kFoo = 0;
+ enum { kBar = 1 };
+ VUC v1 = {kFoo,kBar,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ VUC v3 = (VUC)(kFoo,kBar,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+ CMP (v1, v3);
+
+ VUC v2 = {kBar*kFoo,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ VUC v4 = (VUC)(kBar*kFoo,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+ CMP (v2, v4);
+
+ // Single initializers
+ VUC v5 = {42};
+ VUC v7 = (VUC)(42);
+ CMP (v5, v7);
+
+ VUC v6 = {40+2};
+ VUC v8 = (VUC)(40+2);
+ CMP (v6, v8);
+
+ VUC v9 = {I+5};
+ VUC v11 = (VUC)(I+5);
+ CMP (v9, v11);
+}
+
+
+int main (int argc, char * const argv[])
+{
+#ifdef TEST_FUNCTION_TEMPLATE
+ vectorTest<0>();
+#else
+ vectorTest();
+#endif
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/altivec-8.C b/gcc/testsuite/g++.dg/altivec-8.C
new file mode 100644
index 00000000000..5e6b75c1b62
--- /dev/null
+++ b/gcc/testsuite/g++.dg/altivec-8.C
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+extern "C" void abort();
+
+void check_eq (vector signed short v1, vector signed short v2)
+{
+ if (!vec_all_eq (v1, v2))
+ abort();
+ return;
+}
+
+int main()
+{
+ int r;
+
+ vector signed short vboundary[8] = {
+ (vector signed short)(0),
+ (vector signed short)(1),
+ (vector signed short)(2),
+ (vector signed short)(3),
+ (vector signed short)(4),
+ (vector signed short)(5),
+ (vector signed short)(6),
+ (vector signed short)(7)
+ };
+ for (r = 0; r < 8; r++)
+ check_eq (vboundary[r], (vector signed short)(r,r,r,r,r,r,r,r));
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/apple-altivec-1.C b/gcc/testsuite/g++.dg/apple-altivec-1.C
new file mode 100644
index 00000000000..c070de43f6c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/apple-altivec-1.C
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+void foo() {
+ vector bool int boolVector = (vector bool int) vec_splat_u32(3);
+ boolVector = vec_sld( boolVector, boolVector,
+ 1 ); /* { dg-bogus "no instance of overloaded" } */
+}
diff --git a/gcc/testsuite/g++.dg/apple-altivec-2.C b/gcc/testsuite/g++.dg/apple-altivec-2.C
new file mode 100644
index 00000000000..4e6d70b483b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/apple-altivec-2.C
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern "C" void abort (void);
+
+int main()
+{
+ vector float tiny = (vector float) ((vector unsigned int) (0x00800000, 0xBF800000, 0x3E800000, 0));
+ unsigned int af[4] = {
+ (unsigned int)(unsigned int)0x00800000,
+ (unsigned int)(unsigned int)0xBF800000,
+ (unsigned int)(unsigned int)0x3E800000,
+ (unsigned int)(unsigned int)0};
+
+ union u {
+ vector float vf;
+ unsigned int ai[4];
+ }vu;
+ int i;
+
+ vu.vf = tiny;
+
+ for (i=0; i < 4; i++)
+ if (af[i] != vu.ai[i])
+ abort();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/apple-altivec-6.C b/gcc/testsuite/g++.dg/apple-altivec-6.C
new file mode 100644
index 00000000000..90c2d48abe1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/apple-altivec-6.C
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec -pedantic" } */
+
+int main()
+ {
+ typedef unsigned char UC;
+ typedef vector unsigned char VUC;
+
+ const UC kBar = 7;
+ VUC vBar1 = (VUC)(kBar);
+ VUC vBar2 = {kBar};
+ VUC vBar3 = (VUC){kBar};
+ return 0;
+ }
diff --git a/gcc/testsuite/g++.dg/apple-altivec-7.C b/gcc/testsuite/g++.dg/apple-altivec-7.C
new file mode 100644
index 00000000000..c5f2cd51933
--- /dev/null
+++ b/gcc/testsuite/g++.dg/apple-altivec-7.C
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+typedef __vector unsigned int vui; // 1
+typedef __vector float vf; // 2
+
+template <int i> vui do2 () // 3
+{
+ vui v; return v;
+}
+
+template <int j> vf do1 ()
+{
+ static_cast <vf> (do2 <j> ()); // 4
+}
+
+int main ()
+{
+ do1 <12> (); // 5
+}
diff --git a/gcc/testsuite/g++.dg/apple-altivec-test.C b/gcc/testsuite/g++.dg/apple-altivec-test.C
new file mode 100644
index 00000000000..723ed86006d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/apple-altivec-test.C
@@ -0,0 +1,57 @@
+/* APPLE LOCAL file */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern "C" void abort();
+
+class Star
+{
+ public:
+ inline vector float foo() const;
+
+ Star()
+ {
+ data.f[0] = 1.0; data.f[1] = 2.0; data.f[2] = 3.0, data.f[3] = 4.0;
+ }
+
+ private:
+ union {
+ float f[4];
+ vector float v;
+ } data;
+
+ friend vector float fTest(const Star &);
+};
+
+vector float Star::foo() const
+{
+ return data.v;
+}
+
+vector float fTest(const Star & val)
+{
+ vector float vf = val.foo();
+ return vf;
+}
+
+int main() {
+
+ Star s;
+
+ union u {
+ float f[4];
+ vector float v;
+ } data;
+
+ data.v = fTest(s);
+ for (int i=0 ; i < 4; i++)
+ if (data.f[i] != (float)(i+1))
+ abort();
+ return 0;
+}
+
+
+
+
diff --git a/gcc/testsuite/g++.dg/asm-array-ref.C b/gcc/testsuite/g++.dg/asm-array-ref.C
new file mode 100644
index 00000000000..0a0089a8764
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-array-ref.C
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+struct x {
+ int filler;
+ float f[100];
+ virtual void vf();
+};
+
+asm void func()
+{
+ lwz r4, x.f[0](r2)
+ lwz r5, x.f[0]+4(r2)
+}
+
+int main (int argc, char * const argv[])
+{
+ func();
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-block-1.C b/gcc/testsuite/g++.dg/asm-block-1.C
new file mode 100644
index 00000000000..63446417a12
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-1.C
@@ -0,0 +1,75 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test asm-syntax blocks within functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+extern "C" void abort (void);
+
+int
+foo (int argx, int argy)
+{
+ register int locx = argx, locy = argy, rslt;
+ asm {
+ add rslt,locx,locy
+ }
+ return rslt;
+}
+
+/* Exercise corners of syntax. */
+
+int
+bar ()
+{
+ register int rslt = 100;
+ asm {
+ // Combos of instructions on a line
+
+ nop
+ ;
+ nop
+ nop ;
+ ; nop
+ nop ; nop
+ ; nop ;;; li r3,95 ; nop ;
+ // '.' in an opcode
+ add. r6,r6,r5
+ }
+ return rslt;
+}
+
+int baz ()
+{
+ register int rslt = 1;
+ asm {
+ li r8,29+(2 * 3);
+ add rslt,rslt,r8;
+ b @192
+ @34
+ nop
+ ble+ @34
+ b forward
+ abc:
+ b abc
+ @abc:
+ b @abc
+ forward: ; @192:
+ nop
+ ;
+ sameline: nop
+ x1: @x2 @x3: nop ; @x4 x5:
+ }
+ return rslt;
+}
+
+int
+main ()
+{
+ if (foo (22, 23) != 45)
+ abort ();
+ if (bar () != 100)
+ abort ();
+ if (baz () != 36)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/asm-block-2.C b/gcc/testsuite/g++.dg/asm-block-2.C
new file mode 100644
index 00000000000..6248c2dcc63
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-2.C
@@ -0,0 +1,101 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test structure refs in asm-syntax blocks within functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+extern "C" void abort(void);
+
+typedef struct astruct {
+ int arr[40];
+ char charfield;
+ int fieldx;
+} atypedef;
+
+union aunion {
+ int field1;
+ int field2;
+};
+
+class aclass {
+ public:
+ double headfield;
+ int intfield;
+};
+
+int fun1 (struct astruct *x)
+{
+ int loc;
+ asm {
+ lwz loc, astruct.fieldx(x)
+ addi loc, loc, 42
+ }
+ return loc;
+}
+
+int fun2 (atypedef *x)
+{
+ int loc;
+
+ asm {
+ lwz loc, atypedef.fieldx(r3)
+ addi loc, loc, 43
+ }
+ return loc;
+}
+
+int fun3(int arg)
+{
+ int loc;
+
+ asm {
+ mr loc, r3
+ addi loc, loc, aunion.field1
+ }
+ return loc;
+}
+
+int fun4 (struct astruct *arg)
+{
+ int loc;
+ asm {
+ lbz loc, arg->charfield
+ addi loc, loc, 1
+ }
+ return loc;
+}
+
+int fun5 (aclass *x)
+{
+ int loc;
+ asm {
+ lwz loc, aclass.intfield(x)
+ addi loc, loc, 95
+ }
+ return loc;
+}
+
+struct astruct glob;
+union uglob;
+
+int
+main ()
+{
+ aclass *localobj = new aclass;
+
+ glob.charfield = 'b';
+ glob.fieldx = 22;
+ if (fun1 (&glob) != 64)
+ abort ();
+ if (fun2 (&glob) != 65)
+ abort ();
+ if (fun3 (89) != 89)
+ abort ();
+ if (fun4 (&glob) != 'c')
+ abort ();
+ localobj->intfield = 55;
+ if (fun5 (localobj) != 150)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-block-3.C b/gcc/testsuite/g++.dg/asm-block-3.C
new file mode 100644
index 00000000000..b7fa0fe475a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-3.C
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test C++ keywords in asm-syntax blocks within functions. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+void
+bar ()
+{
+ register unsigned int theColor;
+ register unsigned char bbb;
+ asm {and++ bbb,theColor,24; };
+ asm {and bbb,theColor,24; };
+ asm {and_eq bbb,theColor,24; };
+ asm {bitand bbb,theColor,24; };
+ asm {bitor bbb,theColor,24; };
+ asm {compl bbb,theColor,24; };
+ asm {not bbb,theColor,24; };
+ asm {not_eq bbb,theColor,24; };
+ asm {or bbb,theColor,24; };
+ asm {or_eq bbb,theColor,24; };
+ asm {xor bbb,theColor,24; };
+ asm {xor_eq bbb,theColor,24; };
+}
diff --git a/gcc/testsuite/g++.dg/asm-block-4.C b/gcc/testsuite/g++.dg/asm-block-4.C
new file mode 100644
index 00000000000..75886faa038
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-4.C
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test C++ keywords that are binary operators in asm-syntax blocks within functions. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+int baz (int arg1) {
+ asm {
+ mr r2, arg1
+ add r3, r2, r2
+ and r3, arg1, r3
+ }
+}
diff --git a/gcc/testsuite/g++.dg/asm-block-5.C b/gcc/testsuite/g++.dg/asm-block-5.C
new file mode 100644
index 00000000000..5bafb6df7f3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-5.C
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test -40(sp) in asm-syntax blocks within functions. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+void foo() {
+ asm {
+ stfd f9,-40(sp);
+ }
+}
diff --git a/gcc/testsuite/g++.dg/asm-block-6.C b/gcc/testsuite/g++.dg/asm-block-6.C
new file mode 100644
index 00000000000..55c78e4f975
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-6.C
@@ -0,0 +1,14 @@
+/* APPLE LOCAL begin radar 4150131 */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+main()
+{
+ asm {
+ add r0,r0,r0
+ }
+}
+
+#pragma options align=mac68k
+#pragma options align=reset
+/* APPLE LOCAL end radar 4150131 */
diff --git a/gcc/testsuite/g++.dg/asm-function-1.C b/gcc/testsuite/g++.dg/asm-function-1.C
new file mode 100644
index 00000000000..c546c1f0dde
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-1.C
@@ -0,0 +1,39 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test whole asm functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+extern "C" void abort (void);
+
+asm int
+foo (register int argx, register int argy)
+{
+ add r3, argx, argy
+}
+
+#define rsltreg r3
+
+asm int
+foo1 (register int argx, register int argy)
+{ register int loc1, loc2;
+ nop
+ li loc1, 100
+ li rsltreg,0
+ b @a34
+ add rsltreg, argx, argy
+@a34
+ add rsltreg, rsltreg, loc1
+ blr
+}
+
+int
+main ()
+{
+ if (foo (22, 23) != 45)
+ abort ();
+ if (foo1 (1, 2) != 100)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-10.C b/gcc/testsuite/g++.dg/asm-function-10.C
new file mode 100644
index 00000000000..c3ebc52bf65
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-10.C
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+struct tDummyStruct
+{
+ unsigned long fDummy;
+ unsigned long fSample;
+};
+
+asm void foo()
+{
+ lwzu r1,(sizeof(tDummyStruct))(r2) // works
+ lwzu r1,sizeof(tDummyStruct)(r2)
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-11.C b/gcc/testsuite/g++.dg/asm-function-11.C
new file mode 100644
index 00000000000..c46d4c5a292
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-11.C
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+struct tDummyStruct
+{
+ unsigned long fDummy;
+ unsigned long fSample;
+};
+
+asm void foo()
+{
+ lwz r1,-8+tDummyStruct.fSample(r2)
+ stw r1,-8+tDummyStruct.fSample(r2)
+ lwz r1,-8-(tDummyStruct.fSample-tDummyStruct.fDummy)(r2)
+ stw r1,-8-(tDummyStruct.fSample-tDummyStruct.fDummy)(r2)
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
+
diff --git a/gcc/testsuite/g++.dg/asm-function-12.C b/gcc/testsuite/g++.dg/asm-function-12.C
new file mode 100644
index 00000000000..c518550fcdd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-12.C
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+asm void foo()
+{
+ b .+8
+ bl .+24
+ b .-8
+ bl .-32
+ andi. r1, r0, 3
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-13.C b/gcc/testsuite/g++.dg/asm-function-13.C
new file mode 100644
index 00000000000..ace3cba12ef
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-13.C
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+asm void foo()
+{
+ .align 15
+ andi. r1,r2, 3
+ .align 10
+ b .+8
+ .align 4
+ b .-16
+ .align 3
+ lha r1, 4(r3)
+ .align 4
+ add r1,r2,r3
+ .align 3
+ .align 4
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
+
diff --git a/gcc/testsuite/g++.dg/asm-function-14.C b/gcc/testsuite/g++.dg/asm-function-14.C
new file mode 100644
index 00000000000..f7f4162aaee
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-14.C
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+/* Test for use of '*' in a relative jump. This is to conform with CW compiler. */
+
+asm void foo()
+{
+ b *+8
+ bl *+24
+ b *-8
+ bl *-32
+ andi. r1,r0,2
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-15.C b/gcc/testsuite/g++.dg/asm-function-15.C
new file mode 100644
index 00000000000..41a8a05cc12
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-15.C
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+signed short foo(signed int a, signed short b)
+{
+ b = a * -1;
+
+ asm {
+ bl *+24
+ bl *-32
+ b .+8
+ }
+ return b;
+}
+
+int main (int argc, char * const argv[])
+{
+ return foo(1,2);
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-2.C b/gcc/testsuite/g++.dg/asm-function-2.C
new file mode 100644
index 00000000000..87f46a6b787
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-2.C
@@ -0,0 +1,75 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test whole asm functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+extern "C" void abort(void);
+
+asm void normal_fn ()
+{
+ nop
+ nop
+}
+
+asm void nofralloc_fn ()
+{
+ nofralloc
+ nop
+ blr
+}
+
+asm void fralloc_fn ()
+{
+ fralloc
+ nop
+ nop
+}
+
+asm int fralloc_fn_1 ()
+{
+ fralloc
+ mr r4,r1
+ frfree
+ sub r3,r4,r1
+ blr
+}
+
+asm int fralloc_fn_2 ()
+{
+ fralloc 1000
+ nop
+ frfree
+ blr
+}
+
+asm int fralloc_fn_3 ()
+{
+ int loc1, loc2;
+ fralloc 41
+ nop
+ mr r3, loc2
+ frfree
+ mr r3, loc1
+ blr
+}
+
+asm int f6 ()
+{
+ opword 0x386004d2 /* li r3,1234 */
+}
+
+main()
+{
+ normal_fn ();
+ nofralloc_fn ();
+ fralloc_fn ();
+ /*
+ fralloc_fn_1 ();
+ fralloc_fn_2 ();
+ fralloc_fn_3 ();
+ */
+ if (f6 () != 1234)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/asm-function-3.C b/gcc/testsuite/g++.dg/asm-function-3.C
new file mode 100644
index 00000000000..8a05a300004
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-3.C
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file CW asm blocks */
+/* More tests of asm functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+extern "C" void abort(void);
+
+/* Return 0 if xer and spr1 both have the same data. */
+
+asm int
+test_spr ()
+{
+ mfspr r5,xer
+ mfspr r4,spr1
+ sub r3,r4,r5
+}
+
+int
+main ()
+{
+ if (test_spr ())
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-4.C b/gcc/testsuite/g++.dg/asm-function-4.C
new file mode 100644
index 00000000000..eb1baa76b83
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-4.C
@@ -0,0 +1,62 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test asm with macros. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+extern "C" void abort(void);
+
+#define mac1 add r3, argx, argy
+
+asm int
+foo (register int argx, register int argy)
+{
+ mac1
+}
+
+#define rsltreg r3
+#define mac2(x,y) add rsltreg,x,y
+
+asm int
+foo1 (register int argx, register int argy)
+{
+ register int loc1, loc2;
+ nop
+ li loc1, 100
+ li rsltreg,0
+ b @a34
+ mac2(argx,argy)
+@a34
+ mac2(rsltreg,loc1)
+ blr
+}
+
+#define limac li
+#define num 48
+
+asm int foo2(int x, float y)
+{
+#pragma unused(x)
+#pragma unused(x,y)
+ limac rsltreg, num;
+#define mac3(zzz) \
+ limac r4, zzz
+#pragma unused(y)
+ nop
+ mac3(num)
+#pragma unused(x)
+ add r3,r3,r4
+}
+
+int
+main ()
+{
+ if (foo (22, 23) != 45)
+ abort ();
+ if (foo1 (1, 2) != 100)
+ abort ();
+ if (foo2 (100, 1.2) != 2 * num)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-5.C b/gcc/testsuite/g++.dg/asm-function-5.C
new file mode 100644
index 00000000000..f04eb4eed19
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-5.C
@@ -0,0 +1,55 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test function calls in asm functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void function_with_asm_stmts () {
+ asm ("nop");
+ asm volatile ("nop");
+ __asm__ ("nop");
+ __asm__ __volatile__ ("nop");
+}
+
+extern "C" void abort (void);
+
+int glob = 0;
+
+int other ();
+extern "C" int stubfn ();
+int localfn () { return other (); }
+
+asm void foo(int arg)
+{
+ nofralloc
+ mflr r0
+ stmw r30,(-8)(r1)
+ stw r0,8(r1)
+ stwu r1,(-80)(r1)
+ bl stubfn
+ addi r1,r1,80
+ lwz r0,8(r1)
+ lmw r30,(-8)(r1)
+ mtlr r0
+ b localfn
+}
+
+void bar (int arg)
+{
+ stubfn ();
+ localfn ();
+}
+
+int stubfn () { return other(); }
+
+int other () { return ++glob; }
+
+int main ()
+{
+ bar(34);
+ foo(92);
+ if (glob != 4)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/asm-function-6.C b/gcc/testsuite/g++.dg/asm-function-6.C
new file mode 100644
index 00000000000..0c46c33476c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-6.C
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test entry points in asm functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+#include <stdlib.h>
+
+int entry1(int);
+int entry2(int);
+int entry3(int);
+
+asm int foo(int x)
+{
+ addi x,x,45
+ entry entry1
+ addi x,x,1
+ entry static entry2
+ addi x,x,1
+ entry extern entry3
+ addi x,x,1
+}
+
+int main ()
+{
+ if (entry1(0) != 3)
+ abort();
+ if (entry2(89) != 91)
+ abort();
+ if (entry3(100) != 101)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/asm-function-7.C b/gcc/testsuite/g++.dg/asm-function-7.C
new file mode 100644
index 00000000000..fc877cf5fd8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-7.C
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test la16(TABLE), lo16(TABLE), and bdnz+. */
+
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+double TABLE[4]={2.0, 1./2., 3., 1.};
+
+asm void SQRT()
+{
+ lis r3,ha16(TABLE)
+ addi r3,r3,lo16(TABLE)
+@cycle:
+ fmul fp6,fp1,fp1
+ bdnz+ @cycle
+ blr
+}
diff --git a/gcc/testsuite/g++.dg/asm-function-8.C b/gcc/testsuite/g++.dg/asm-function-8.C
new file mode 100644
index 00000000000..5101c078628
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-8.C
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test lo16(foo)(v) and ha16(foo). */
+
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+int foo;
+
+asm int fun1 ()
+{
+ int v;
+ addis v,0,ha16(foo)
+ lwz r3,lo16(foo)(v)
+}
diff --git a/gcc/testsuite/g++.dg/asm-function-9.C b/gcc/testsuite/g++.dg/asm-function-9.C
new file mode 100644
index 00000000000..576390fc1a3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-function-9.C
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test macros with . in the opcode. */
+
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+#define foodef() rlwinm. r4,r4,31,16,31
+
+asm void foo (void)
+{
+ foodef()
+}
diff --git a/gcc/testsuite/g++.dg/bincl-1.C b/gcc/testsuite/g++.dg/bincl-1.C
new file mode 100644
index 00000000000..222fe1b4e76
--- /dev/null
+++ b/gcc/testsuite/g++.dg/bincl-1.C
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file bincl/eincl stabs */
+/* Test BINCL/EINCL stabs. */
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */
+/* { dg-options "-gstabs -fno-eliminate-unused-debug-symbols" } */
+
+#include "bincl-1.h"
+int
+main ()
+{
+ my_int j = 0;
+ return j;
+}
+
+/* { dg-final { scan-assembler ".stabs.*130,0,0,0" } } */
+/* { dg-final { scan-assembler ".stabs.*162,0,0,0" } } */
+
diff --git a/gcc/testsuite/g++.dg/bincl-1.h b/gcc/testsuite/g++.dg/bincl-1.h
new file mode 100644
index 00000000000..3bf51278e90
--- /dev/null
+++ b/gcc/testsuite/g++.dg/bincl-1.h
@@ -0,0 +1,3 @@
+/* APPLE LOCAL file bincl/eincl stabs */
+/* Test BINCL/EINCL stabs. */
+typedef int my_int;
diff --git a/gcc/testsuite/g++.dg/charset/asm1.c b/gcc/testsuite/g++.dg/charset/asm1.c
index 9c0ff2866b0..7076d128566 100644
--- a/gcc/testsuite/g++.dg/charset/asm1.c
+++ b/gcc/testsuite/g++.dg/charset/asm1.c
@@ -1,5 +1,5 @@
/* { dg-do compile { target *-*-* } }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler ".ascii bar" } }
{ dg-final { scan-assembler ".ascii foo" } }
*/
diff --git a/gcc/testsuite/g++.dg/charset/asm2.c b/gcc/testsuite/g++.dg/charset/asm2.c
index 8d8dbbb524d..8ae2212fd26 100644
--- a/gcc/testsuite/g++.dg/charset/asm2.c
+++ b/gcc/testsuite/g++.dg/charset/asm2.c
@@ -1,7 +1,7 @@
/* Test for complex asm statements. Make sure it compiles
then test for some of the asm statements not being translated. */
/* { dg-do compile { target i?86-*-* } }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "std" } }
{ dg-final { scan-assembler "cld" } }
{ dg-final { scan-assembler "rep" } }
diff --git a/gcc/testsuite/g++.dg/charset/asm3.c b/gcc/testsuite/g++.dg/charset/asm3.c
index cd850c3e81f..59c8d59ff39 100644
--- a/gcc/testsuite/g++.dg/charset/asm3.c
+++ b/gcc/testsuite/g++.dg/charset/asm3.c
@@ -1,6 +1,6 @@
/* Simple asm test. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "foo" } } */
extern int bar;
diff --git a/gcc/testsuite/g++.dg/charset/asm4.c b/gcc/testsuite/g++.dg/charset/asm4.c
index fa93f40fdaf..a4bb01401a9 100644
--- a/gcc/testsuite/g++.dg/charset/asm4.c
+++ b/gcc/testsuite/g++.dg/charset/asm4.c
@@ -1,6 +1,6 @@
/* Test for string translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "translate" } } */
void foo (void)
{
diff --git a/gcc/testsuite/g++.dg/charset/asm5.c b/gcc/testsuite/g++.dg/charset/asm5.c
index 91316224f0c..ae2ec485d80 100644
--- a/gcc/testsuite/g++.dg/charset/asm5.c
+++ b/gcc/testsuite/g++.dg/charset/asm5.c
@@ -1,6 +1,6 @@
/* Test for string translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "foo" } } */
int main()
{
diff --git a/gcc/testsuite/g++.dg/charset/attribute1.c b/gcc/testsuite/g++.dg/charset/attribute1.c
index 993c7934c80..799630030ba 100644
--- a/gcc/testsuite/g++.dg/charset/attribute1.c
+++ b/gcc/testsuite/g++.dg/charset/attribute1.c
@@ -1,6 +1,6 @@
/* Test for attribute non-translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "foo" } } */
int walrus __attribute__ ((section (".foo")));
diff --git a/gcc/testsuite/g++.dg/charset/attribute2.c b/gcc/testsuite/g++.dg/charset/attribute2.c
index 3cb766aa63a..dcb28f2da27 100644
--- a/gcc/testsuite/g++.dg/charset/attribute2.c
+++ b/gcc/testsuite/g++.dg/charset/attribute2.c
@@ -2,7 +2,7 @@
If error recovery is ever testable then "foobar" should be
translated. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
*/
int foo __attribute__ ((walrus)); /* { dg-error "walrus" "ignored" } */
char x[] = "foobar";
diff --git a/gcc/testsuite/g++.dg/charset/charset.exp b/gcc/testsuite/g++.dg/charset/charset.exp
index 7a74217dec3..6bb19593944 100644
--- a/gcc/testsuite/g++.dg/charset/charset.exp
+++ b/gcc/testsuite/g++.dg/charset/charset.exp
@@ -30,7 +30,7 @@ load_lib target-supports.exp
# If a testcase doesn't have special options, use these.
global DEFAULT_CHARSETCFLAGS
if ![info exists DEFAULT_CHARSETCFLAGS] then {
- set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM-1047"
+ set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM1047"
}
# Initialize `dg'.
diff --git a/gcc/testsuite/g++.dg/charset/extern1.cc b/gcc/testsuite/g++.dg/charset/extern1.cc
index 2a68ab7cf78..09284ad1ed2 100644
--- a/gcc/testsuite/g++.dg/charset/extern1.cc
+++ b/gcc/testsuite/g++.dg/charset/extern1.cc
@@ -1,6 +1,6 @@
/* Test extern statments not being translated. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
*/
extern "C" {
diff --git a/gcc/testsuite/g++.dg/charset/extern2.cc b/gcc/testsuite/g++.dg/charset/extern2.cc
index 82157a6fea4..3a8f4e82d7e 100644
--- a/gcc/testsuite/g++.dg/charset/extern2.cc
+++ b/gcc/testsuite/g++.dg/charset/extern2.cc
@@ -1,5 +1,5 @@
/* Check that we push the declaration and then continue translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "foobar" } } */
extern "C" { char *foo = "foobar"; }
diff --git a/gcc/testsuite/g++.dg/charset/extern3.cc b/gcc/testsuite/g++.dg/charset/extern3.cc
index 5e46ca6facf..05a0c3e42bc 100644
--- a/gcc/testsuite/g++.dg/charset/extern3.cc
+++ b/gcc/testsuite/g++.dg/charset/extern3.cc
@@ -1,5 +1,5 @@
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "abcdefghijklmnopqrstuvwxyz" } } */
extern char *bar;
diff --git a/gcc/testsuite/g++.dg/charset/function.cc b/gcc/testsuite/g++.dg/charset/function.cc
index ab4c2bcba0e..5aba6511bd0 100644
--- a/gcc/testsuite/g++.dg/charset/function.cc
+++ b/gcc/testsuite/g++.dg/charset/function.cc
@@ -1,5 +1,5 @@
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "\"foobar\"" } } */
const char *str;
diff --git a/gcc/testsuite/g++.dg/charset/string.c b/gcc/testsuite/g++.dg/charset/string.c
index 375e28a2ed6..f720773dd57 100644
--- a/gcc/testsuite/g++.dg/charset/string.c
+++ b/gcc/testsuite/g++.dg/charset/string.c
@@ -1,5 +1,5 @@
/* Simple character translation test. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "string foobar" } } */
char *foo = "string foobar";
diff --git a/gcc/testsuite/g++.dg/const-cfstring-1.C b/gcc/testsuite/g++.dg/const-cfstring-1.C
new file mode 100644
index 00000000000..23bfb0e4ee7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/const-cfstring-1.C
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file constant cfstrings */
+/* Test whether the __builtin__CFStringMakeConstantString
+ "function" fails gracefully when handed a non-constant
+ argument. This will only work on MacOS X 10.1.2 and later. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings" } */
+
+#import <CoreFoundation/CFString.h>
+
+#ifdef __CONSTANT_CFSTRINGS__
+#undef CFSTR
+#define CFSTR(STR) ((CFStringRef) __builtin___CFStringMakeConstantString (STR))
+#endif
+
+extern int cond;
+extern const char *func(void);
+
+int main(void) {
+ CFStringRef s1 = CFSTR("Str1");
+ CFStringRef s2 = CFSTR(cond? "Str2": "Str3"); /* { dg-error "CFString literal expression is not constant" } */
+ CFStringRef s3 = CFSTR(func()); /* { dg-error "CFString literal expression is not constant" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/cpp/normalize-1.C b/gcc/testsuite/g++.dg/cpp/normalize-1.C
new file mode 100644
index 00000000000..ef1d727fda8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp/normalize-1.C
@@ -0,0 +1,36 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-Wnormalized=id" } */
+
+\u00AA
+\u00B7
+\u0F43 /* { dg-warning "not in NFC" } */
+a\u05B8\u05B9\u05B9\u05BBb
+ a\u05BB\u05B9\u05B8\u05B9b /* { dg-warning "not in NFC" } */
+\u09CB
+\u09C7\u09BE /* { dg-warning "not in NFC" } */
+\u0B4B
+\u0B47\u0B3E /* { dg-warning "not in NFC" } */
+\u0BCA
+\u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+\u0BCB
+\u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+\u0CCA
+\u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+\u0D4A
+\u0D46\u0D3E /* { dg-warning "not in NFC" } */
+\u0D4B
+\u0D47\u0D3E /* { dg-warning "not in NFC" } */
+
+K
+\u212A
+
+\u03AC
+\u1F71 /* { dg-warning "not in NFC" } */
+
+\uAC00
+\u1100\u1161
+\uAC01
+\u1100\u1161\u11A8
+\uAC00\u11A8
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/g++.dg/cpp/ucnid-1.C b/gcc/testsuite/g++.dg/cpp/ucnid-1.C
new file mode 100644
index 00000000000..42b84c1f503
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp/ucnid-1.C
@@ -0,0 +1,19 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-pedantic" } */
+
+\u00AA /* { dg-error "not valid in an identifier" } */
+\u00AB /* { dg-error "not valid in an identifier" } */
+\u00B6 /* { dg-error "not valid in an identifier" } */
+\u00BA /* { dg-error "not valid in an identifier" } */
+\u00C0
+\u00D6
+\u0384
+
+\u0669 /* { dg-error "not valid in an identifier" } */
+A\u0669 /* { dg-error "not valid in an identifier" } */
+0\u00BA /* { dg-error "not valid in an identifier" } */
+0\u0669 /* { dg-error "not valid in an identifier" } */
+\u0E59
+A\u0E59
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/g++.dg/debug/const2.C b/gcc/testsuite/g++.dg/debug/const2.C
new file mode 100644
index 00000000000..8e98f8b195e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/const2.C
@@ -0,0 +1,15 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 1 Apr 2005 <nathan@codesourcery.com>
+
+// { dg-options "-ggdb2" }
+// Origin: ivan <ivanr@syncad.com>
+// pinskia@gcc.gnu.org
+// Bug 20505: ICE with -ggdb2
+
+struct b
+{
+ static const int d;
+ virtual bool IsEmpty() const=0;
+ int e,c;
+};
+const int b::d = ((__SIZE_TYPE__)(&((b*)1)->c) - 1);
diff --git a/gcc/testsuite/g++.dg/debug/using1.C b/gcc/testsuite/g++.dg/debug/using1.C
new file mode 100644
index 00000000000..d3168fc6c1c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/using1.C
@@ -0,0 +1,15 @@
+// PR c++/19406
+// { dg-do compile }
+
+struct A
+{
+ virtual int foo();
+ double d;
+};
+
+struct B : public A
+{
+ A::d;
+};
+
+B b;
diff --git a/gcc/testsuite/g++.dg/dg.exp b/gcc/testsuite/g++.dg/dg.exp
index f809f10f2db..f4ec94c6ee1 100644
--- a/gcc/testsuite/g++.dg/dg.exp
+++ b/gcc/testsuite/g++.dg/dg.exp
@@ -39,6 +39,7 @@ set tests [prune $tests $srcdir/$subdir/gcov/*]
set tests [prune $tests $srcdir/$subdir/pch/*]
set tests [prune $tests $srcdir/$subdir/special/*]
set tests [prune $tests $srcdir/$subdir/tls/*]
+set tests [prune $tests $srcdir/$subdir/vect/*]
# Main loop.
dg-runtest $tests "" $DEFAULT_CXXFLAGS
diff --git a/gcc/testsuite/g++.dg/eh/uncaught1.C b/gcc/testsuite/g++.dg/eh/uncaught1.C
new file mode 100644
index 00000000000..2aa1068b090
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/uncaught1.C
@@ -0,0 +1,83 @@
+// PR libstdc++/10606
+// { dg-do run }
+
+#include <exception>
+#include <cstdlib>
+
+
+struct Check {
+ int obj1, obj2;
+ bool state;
+};
+
+static Check const data[] = {
+ { 0, 0, false }, // construct [0]
+ { 1, 0, true }, // [1] = [0]
+ { 0, 0, true }, // destruct [0]
+ { 2, 1, true }, // [2] = [1]
+ { 2, 2, true }, // destruct [2]
+ { 3, 1, true }, // [3] = [1]
+ { 3, 3, false }, // destruct [3]
+ { 1, 1, false }, // destruct [1]
+ { 9, 9, false } // end-of-data
+};
+
+static int pos = 0;
+
+static void test(int obj1, int obj2, bool state)
+{
+ if (obj1 != data[pos].obj1) abort ();
+ if (obj2 != data[pos].obj2) abort ();
+ if (state != data[pos].state) abort ();
+ pos++;
+}
+
+
+struct S {
+ int id;
+ S ();
+ S (const S &);
+ ~S ();
+};
+
+static int next_id = 0;
+
+S::S()
+ : id (next_id++)
+{
+ test (id, id, std::uncaught_exception ());
+}
+
+S::S(const S &x)
+ : id (next_id++)
+{
+ test (id, x.id, std::uncaught_exception ());
+}
+
+S::~S()
+{
+ test (id, id, std::uncaught_exception ());
+}
+
+extern void foo (S *);
+
+int main()
+{
+ try
+ {
+ try
+ {
+ S s0;
+ throw s0; // s1 is the exception object
+ }
+ catch (S s2)
+ {
+ throw;
+ }
+ }
+ catch (S s3)
+ {
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/expr/align68k-1.C b/gcc/testsuite/g++.dg/expr/align68k-1.C
new file mode 100644
index 00000000000..8a89425f1d7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/align68k-1.C
@@ -0,0 +1,53 @@
+// APPLE LOCAL file test of -mdynamic-no-pic combined with 68k alignment
+// Radar 3242139: Positive C++ test case
+// Origin: Matt Austern <austern@apple.com>
+// { dg-do run }
+// { dg-options "-mdynamic-no-pic" }
+
+#ifdef __LP64__
+/* mac68k align not going to be supported for 64-bit, so skip entirely. */
+int main () { return 0; }
+#else
+
+const long val1 = 0xa0b0;
+const long val2 = 0x1234;
+
+#pragma options align=mac68k
+struct X {
+ long x1;
+ long x2;
+};
+
+#pragma options align=reset
+
+void setX(X* x) {
+ x->x1 = val1;
+ x->x2 = val2;
+}
+
+struct Y
+{
+ X field;
+ void set_vals();
+};
+
+void Y::set_vals()
+{
+ ::setX(&field);
+}
+
+int main()
+{
+ Y y;
+ bool ok = true;
+
+ y.field.x1 = y.field.x2 = 0;
+ ok = ok && y.field.x1 == 0 && y.field.x2 == 0;
+
+ y.set_vals();
+ ok = ok && y.field.x1 == val1 && y.field.x2 == val2;
+
+ return !ok;
+}
+
+#endif /* __LP64__ */
diff --git a/gcc/testsuite/g++.dg/expr/align68k-2.C b/gcc/testsuite/g++.dg/expr/align68k-2.C
new file mode 100644
index 00000000000..e0bebacf332
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/align68k-2.C
@@ -0,0 +1,45 @@
+// APPLE LOCAL file test 68k alignment
+// Radar 3313261: Positive C++ test case
+// Origin: Matt Austern <austern@apple.com>
+// { dg-do run }
+
+#ifdef __LP64__
+/* mac68k align not going to be supported for 64-bit, so skip entirely. */
+int main () { return 0; }
+#else
+
+#pragma options align=mac68k
+
+typedef struct PMR {
+ double x;
+ double y;
+}PMR;
+
+#pragma options align=reset
+
+static void GetDouble(double *doubleP)
+{
+ *doubleP = 1.;
+}
+
+static void GetPMR(PMR *p)
+{
+ GetDouble(&p->x);
+ GetDouble(&p->y);
+}
+
+int main(void)
+{
+ PMR tmp;
+ bool ok = true;
+
+ tmp.x = tmp.y = 0;
+ ok = ok && tmp.x == 0.0 && tmp.y == 0.0;
+
+ GetPMR(&tmp);
+ ok = ok && tmp.x == 1.0 && tmp.y == 1.0;
+
+ return !ok;
+}
+
+#endif /* __LP64__ */
diff --git a/gcc/testsuite/g++.dg/expr/cast-ptr-1.C b/gcc/testsuite/g++.dg/expr/cast-ptr-1.C
new file mode 100644
index 00000000000..cb42d13ac48
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/cast-ptr-1.C
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file pointer casts */
+/* Test that casts of pointer to unsigned long long aren't sign extended */
+/* Author: Matt Austern <austern@apple.com> */
+/* { dg-do run } */
+/* { dg-options "-Wno-error -w" } */
+
+int main () {
+ /* Note: test assumes sizeof(long long) >= sizeof(void*) */
+
+ unsigned long x1 = 0x80000000ul;
+ void* p = (void*) x1;
+ unsigned long long x2 = (unsigned long long) p;
+
+ return !(x1 == x2);
+}
diff --git a/gcc/testsuite/g++.dg/expr/cast3.C b/gcc/testsuite/g++.dg/expr/cast3.C
new file mode 100644
index 00000000000..c0607b90245
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/cast3.C
@@ -0,0 +1,24 @@
+/* APPLE LOCAL begin mainline 4.0 2005-03-25 */
+// { dg-do compile }
+
+enum MyState
+{
+ QUIT = 0,
+ START,
+ STOP,
+ PAUSE
+};
+
+double GetDouble()
+{
+ return 1.0;
+}
+
+int main()
+{
+ MyState the_state;
+
+ the_state = (MyState)GetDouble(); // { dg-bogus "invalid cast" }
+ return 0;
+}
+/* APPLE LOCAL end mainline 4.0 2005-03-25 */
diff --git a/gcc/testsuite/g++.dg/expr/fieldref1.C b/gcc/testsuite/g++.dg/expr/fieldref1.C
new file mode 100644
index 00000000000..b04ed137548
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/fieldref1.C
@@ -0,0 +1,23 @@
+// APPLE LOCAL file - test of access to 8-byte struct field
+// Radar 3309305: positive C++ test case
+// Origin: Matt Austern <austern@apple.com>
+// { dg-do run }
+
+struct X {
+ char array[8];
+};
+
+char* get_array(X* p) {
+ char* p2 = p->array;
+ return p2;
+}
+
+int main()
+{
+ X t;
+ X* p = &t;
+ char* p2 = get_array(p);
+
+ bool ok = (void*)p == (void*)p2;
+ return !ok;
+}
diff --git a/gcc/testsuite/g++.dg/expr/lval2.C b/gcc/testsuite/g++.dg/expr/lval2.C
new file mode 100644
index 00000000000..5d062f1c628
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/lval2.C
@@ -0,0 +1,27 @@
+// PR c++/19199
+
+// { dg-do run }
+
+// We used to turn the COND_EXPR lvalue into a MIN_EXPR rvalue, and
+// then return a reference to a temporary in qMin.
+
+#include <assert.h>
+
+enum Foo { A, B };
+
+template<typename T> T &qMin(T &a, T &b)
+{
+ return a < b ? a : b;
+}
+
+int main (int, char **)
+{
+ Foo f = A;
+ Foo g = B;
+ Foo &h = qMin(f, g);
+ assert (&h == &f || &h == &g);
+ const Foo &i = qMin((const Foo&)f, (const Foo&)g);
+ assert (&i == &f || &i == &g);
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/ext/altivec-apple-11.C b/gcc/testsuite/g++.dg/ext/altivec-apple-11.C
new file mode 100644
index 00000000000..c5104b2635b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/altivec-apple-11.C
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file AltiVec */
+/* This is a compile-only test for interaction of "-maltivec" and "-save-temps". */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-save-temps -maltivec" } */
+
+#define vector_float vector float
+#define vector_float_foo vector float foo
+#define vector_float_bar_eq vector float bar =
+
+/* NB: Keep the following split across three lines. */
+vector
+int
+a1 = { 100, 200, 300, 400 };
+
+vector_float f1 = { 1.0, 2.0, 3.0, 4.0 };
+vector_float_foo = { 3.0, 4.0, 5.0, 6.0 };
+vector_float_bar_eq { 8.0, 7.0, 6.0, 5.0 };
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-1.C b/gcc/testsuite/g++.dg/ext/apple-altivec-1.C
new file mode 100644
index 00000000000..2726c81b3af
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-1.C
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file AltiVec */
+/* Additional AltiVec PIM argument type combinations. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -Wall" } */
+
+vector signed int
+LoadUnalignedSI( signed int *p)
+{
+ vector signed int vload1 = vec_ld( 0, (vector signed int *)p);
+ if ( ((long)p) * 0xF){
+ vector signed int vload2 = vec_ld( 16, (vector signed int *)p);
+ vector unsigned char vperm = vec_ldl( 0, p);
+
+ vload1 = vec_perm(vload1, vload2, vperm);
+ }
+ return vload1;
+}
+
+inline vector float Reciprocal( vector float v )
+{
+
+ vector float estimate = vec_re( v );
+
+ return vec_madd( vec_nmsub( estimate, v, (vector float) (1.0) ), estimate, estimate );
+}
+
+void foo(void) {
+ vector bool char vbc1 = (vector bool char)(255);
+ vector pixel vp1, vp2;
+ vector float vf1, vf2;
+ vector unsigned char vuc1;
+ vector unsigned short vus1, vus2;
+ vector bool short vbs1, vbs2;
+ vector signed short vss1;
+ vector signed int vsi1, vsi2;
+ vbc1 = vec_splat (vbc1, 9);
+ vp2 = vec_splat (vp1, 7);
+ vf1 = vec_splat (vf2, 31);
+ vuc1 = vec_pack (vus1, vus2);
+ vbc1 = vec_pack (vbs1, vbs2);
+ vss1 = vec_pack (vsi1, vsi2);
+}
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-2.C b/gcc/testsuite/g++.dg/ext/apple-altivec-2.C
new file mode 100644
index 00000000000..e83b997a00c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-2.C
@@ -0,0 +1,398 @@
+/* APPLE LOCAL file AltiVec */
+/* Check for presence of AltiVec PIM "specific operations". */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -Wall" } */
+
+vector signed int
+specific_operations( signed int *p)
+{
+ vector unsigned int vui1, vui2;
+ vector unsigned short vus1, vus2;
+ vector unsigned char vuc1, vuc2;
+ vector signed int vsi1, vsi2;
+ vector signed short vss1, vss2;
+ vector signed char vsc1, vsc2;
+ vector bool int vbi1, vbi2;
+ vector bool short vbs1, vbs2;
+ vector bool char vbc1, vbc2;
+ vector float vf1, vf2;
+ vector pixel vp1, vp2;
+
+ vuc1 = vec_lvebx (8, (unsigned char *)p);
+ vss1 = vec_lvehx (4, (short *)p);
+ vf1 = vec_lvewx (2, (float *)p);
+
+ vsi1 = vec_lvx (1, (vector signed int *)p);
+ vp1 = vec_lvxl (16, (vector pixel *)p);
+
+ vec_stvebx (vuc1, 2, (char *)p);
+ vec_stvehx (vp1, 4, (unsigned short *)p);
+ vec_stvewx (vf1, 1, (float *)p);
+
+ vec_stvx (vbi1, 12, (vector int bool *)p);
+ vec_stvxl (vp1, 11, (vector pixel *)p);
+
+ vui1 = vec_vaddcuw (vui1, vui2);
+ vf1 = vec_vaddfp (vf1, vf2);
+
+ vsc1 = vec_vaddsbs (vsc1, vsc2);
+ vss1 = vec_vaddshs (vss1, vss2);
+ vsi1 = vec_vaddsws (vsi1, vsi2);
+ vuc1 = vec_vaddubs (vuc1, vuc2);
+ vus1 = vec_vadduhs (vus1, vus2);
+ vui1 = vec_vadduws (vui1, vui2);
+ vuc1 = vec_vaddubm (vuc1, vuc2);
+ vus1 = vec_vadduhm (vus1, vus2);
+ vui1 = vec_vadduwm (vui1, vui2);
+
+ vsc1 = vec_vand (vsc1, vsc2);
+ vss1 = vec_vandc (vss1, vss2);
+
+ vsc1 = vec_vavgsb (vsc1, vsc2);
+ vss1 = vec_vavgsh (vss1, vss2);
+ vsi1 = vec_vavgsw (vsi1, vsi2);
+ vuc1 = vec_vavgub (vuc1, vuc2);
+ vus1 = vec_vavguh (vus1, vus2);
+ vui1 = vec_vavguw (vui1, vui2);
+
+ vf1 = vec_vcfsx (vsi1, 4);
+ vf2 = vec_vcfux (vui1, 3);
+
+ vsi1 = vec_vcmpbfp (vf1, vf2);
+ vbi1 = vec_vcmpeqfp (vf1, vf2);
+
+ vbc1 = vec_vcmpequb (vuc1, vuc2);
+ vbs2 = vec_vcmpequh (vus1, vus2);
+ vbi1 = vec_vcmpequw (vui1, vui2);
+
+ vbi1 = vec_vcmpgefp (vf1, vf2);
+ vbi2 = vec_vcmpgtfp (vf1, vf2);
+
+ vbc1 = vec_vcmpgtsb (vsc1, vsc2);
+ vbs1 = vec_vcmpgtsh (vss1, vss2);
+ vbi1 = vec_vcmpgtsw (vsi1, vsi2);
+
+ vbc1 = vec_vcmpgtub (vuc1, vuc2);
+ vbs1 = vec_vcmpgtuh (vus1, vus2);
+ vbi1 = vec_vcmpgtuw (vui1, vui2);
+
+ vsi1 = vec_vctsxs (vf1, 22);
+ vui1 = vec_vctuxs (vf2, 30);
+
+ vf2 = vec_vexptefp (vf1);
+ vf1 = vec_vlogefp (vf2);
+ vf2 = vec_vmaddfp (vf1, vf2, vf2);
+
+ vf1 = vec_vmaxfp (vf1, vf2);
+
+ vsc1 = vec_vmaxsb (vsc1, vsc2);
+ vss1 = vec_vmaxsh (vss1, vss2);
+ vsi1 = vec_vmaxsw (vsi1, vsi2);
+ vuc1 = vec_vmaxub (vuc1, vuc2);
+ vus1 = vec_vmaxuh (vus1, vus2);
+ vui1 = vec_vmaxuw (vui1, vui2);
+
+ vbc1 = vec_vmrghb (vbc1, vbc2);
+ vp1 = vec_vmrghh (vp1, vp2);
+ vf2 = vec_vmrghw (vf2, vf1);
+
+ vbc1 = vec_vmrglb (vbc1, vbc2);
+ vp1 = vec_vmrglh (vp1, vp2);
+ vf2 = vec_vmrglw (vf2, vf1);
+
+ vf1 = vec_vminfp (vf1, vf2);
+
+ vsc1 = vec_vminsb (vsc1, vsc2);
+ vss1 = vec_vminsh (vss1, vss2);
+ vsi1 = vec_vminsw (vsi1, vsi2);
+ vuc1 = vec_vminub (vuc1, vuc2);
+ vus1 = vec_vminuh (vus1, vus2);
+ vui1 = vec_vminuw (vui1, vui2);
+
+ vss1 = vec_vmhaddshs (vss1, vss2, vss2);
+ vss2 = vec_vmhraddshs (vss1, vss2, vss2);
+ vus1 = vec_vmladduhm (vus1, vus1, vus2);
+ vui1 = vec_vmsumubm (vuc1, vuc2, vui1);
+ vsi1 = vec_vmsummbm (vsc1, vuc2, vsi1);
+ vsi2 = vec_vmsumshm (vss1, vss2, vsi1);
+ vui1 = vec_vmsumuhm (vus1, vus2, vui2);
+ vui2 = vec_vmsumuhs (vus1, vus2, vui1);
+ vsi2 = vec_vmsumshs (vss1, vss1, vsi2);
+
+ vus1 = vec_vmuleub (vuc1, vuc2);
+ vss1 = vec_vmulesb (vsc1, vsc2);
+ vui1 = vec_vmuleuh (vus1, vus2);
+ vsi1 = vec_vmulesh (vss1, vss2);
+
+ vus2 = vec_vmuloub (vuc1, vuc2);
+ vss2 = vec_vmulosb (vsc1, vsc2);
+ vui2 = vec_vmulouh (vus1, vus2);
+ vsi2 = vec_vmulosh (vss1, vss2);
+
+ vf1 = vec_vnmsubfp (vf1, vf2, vf1);
+
+ vp1 = vec_vnor (vp1, vp2);
+ vf2 = vec_vor (vf2, vbi1);
+ vf2 = vec_vxor (vf2, vbi1);
+
+ vsc1 = vec_vpkuhum (vss1, vss2);
+ vbs1 = vec_vpkuwum (vbi1, vbi2);
+ vp1 = vec_vpkpx (vui1, vui2);
+ vuc1 = vec_vpkuhus (vus1, vus1);
+ vsc1 = vec_vpkshss (vss1, vss2);
+ vus1 = vec_vpkuwus (vui1, vui2);
+ vss2 = vec_vpkswss (vsi1, vsi1);
+ vuc1 = vec_vpkshus (vss1, vss2);
+ vus1 = vec_vpkswus (vsi1, vsi1);
+
+ vp1 = vec_vperm (vp1, vp2, vuc1);
+
+ vf1 = vec_vrefp (vf2);
+ vf2 = vec_vrfin (vf1);
+ vf1 = vec_vrsqrtefp (vf2);
+
+ vuc1 = vec_vrlb (vuc1, vuc2);
+ vss1 = vec_vrlh (vss2, vss1);
+ vui2 = vec_vrlw (vui2, vui1);
+
+ vf1 = vec_vsel (vf2, vf1, vbi1);
+
+ vuc1 = vec_vslb (vuc1, vuc2);
+ vss1 = vec_vslh (vss2, vss1);
+ vui2 = vec_vslw (vui2, vui1);
+
+ vp1 = vec_vsldoi (vp2, vp1, 14);
+ vp2 = vec_vsl (vp1, vuc1);
+ vp1 = vec_vslo (vp2, vuc1);
+
+ vbc1 = vec_vspltb (vbc1, 9);
+ vp2 = vec_vsplth (vp1, 7);
+ vf1 = vec_vspltw (vf2, 31);
+ vsc2 = vec_vspltisb (15);
+ vss1 = vec_vspltish (14);
+ vsi1 = vec_vspltisw (13);
+
+ vuc1 = vec_vsrb (vuc1, vuc2);
+ vss1 = vec_vsrh (vss2, vss1);
+ vui2 = vec_vsrw (vui2, vui1);
+ vuc2 = vec_vsrab (vuc1, vuc2);
+ vss2 = vec_vsrah (vss2, vss1);
+ vui1 = vec_vsraw (vui2, vui1);
+ vp2 = vec_vsr (vp1, vuc1);
+ vp1 = vec_vsro (vp2, vuc1);
+
+ vui1 = vec_vsubcuw (vui1, vui2);
+ vf1 = vec_vsubfp (vf1, vf2);
+
+ vsc1 = vec_vsubsbs (vsc1, vsc2);
+ vss1 = vec_vsubshs (vss1, vss2);
+ vsi1 = vec_vsubsws (vsi1, vsi2);
+ vuc1 = vec_vsububs (vuc1, vuc2);
+ vus1 = vec_vsubuhs (vus1, vus2);
+ vui1 = vec_vsubuws (vui1, vui2);
+ vuc1 = vec_vsububm (vuc1, vuc2);
+ vus1 = vec_vsubuhm (vus1, vus2);
+ vui1 = vec_vsubuwm (vui1, vui2);
+
+ vui2 = vec_vsum4ubs (vuc1, vui1);
+ vsi1 = vec_vsum4sbs (vsc2, vsi1);
+ vsi1 = vec_vsum2sws (vsi1, vsi1);
+ vsi2 = vec_vsumsws (vsi2, vsi1);
+
+ vf2 = vec_vrfiz (vf1);
+
+ vbs1 = vec_vupkhsb (vbc1);
+ vui1 = vec_vupkhpx (vp1);
+ vbi1 = vec_vupkhsh (vbs1);
+
+ vss1 = vec_vupklsb (vsc1);
+ vui1 = vec_vupklpx (vp2);
+ vbi1 = vec_vupklsh (vbs1);
+
+ return vsi1;
+}
+
+/* { dg-final { scan-assembler "\tlvebx " } } */
+/* { dg-final { scan-assembler "\tlvehx " } } */
+/* { dg-final { scan-assembler "\tlvewx " } } */
+/* { dg-final { scan-assembler "\tlvx " } } */
+/* { dg-final { scan-assembler "\tlvxl " } } */
+/* { dg-final { scan-assembler "\tstvebx " } } */
+/* { dg-final { scan-assembler "\tstvehx " } } */
+/* { dg-final { scan-assembler "\tstvewx " } } */
+/* { dg-final { scan-assembler "\tstvx " } } */
+/* { dg-final { scan-assembler "\tstvxl " } } */
+
+/* { dg-final { scan-assembler "\tvaddcuw " } } */
+/* { dg-final { scan-assembler "\tvaddfp " } } */
+/* { dg-final { scan-assembler "\tvaddsbs " } } */
+/* { dg-final { scan-assembler "\tvaddshs " } } */
+/* { dg-final { scan-assembler "\tvaddsws " } } */
+/* { dg-final { scan-assembler "\tvaddubs " } } */
+/* { dg-final { scan-assembler "\tvadduhs " } } */
+/* { dg-final { scan-assembler "\tvadduws " } } */
+/* { dg-final { scan-assembler "\tvaddubm " } } */
+/* { dg-final { scan-assembler "\tvadduhm " } } */
+/* { dg-final { scan-assembler "\tvadduwm " } } */
+
+/* { dg-final { scan-assembler "\tvand " } } */
+/* { dg-final { scan-assembler "\tvandc " } } */
+
+/* { dg-final { scan-assembler "\tvavgsb " } } */
+/* { dg-final { scan-assembler "\tvavgsh " } } */
+/* { dg-final { scan-assembler "\tvavgsw " } } */
+/* { dg-final { scan-assembler "\tvavgub " } } */
+/* { dg-final { scan-assembler "\tvavguh " } } */
+/* { dg-final { scan-assembler "\tvavguw " } } */
+
+/* { dg-final { scan-assembler "\tvcfsx " } } */
+/* { dg-final { scan-assembler "\tvcfux " } } */
+
+/* { dg-final { scan-assembler "\tvcmpbfp " } } */
+/* { dg-final { scan-assembler "\tvcmpeqfp " } } */
+
+/* { dg-final { scan-assembler "\tvcmpequb " } } */
+/* { dg-final { scan-assembler "\tvcmpequh " } } */
+/* { dg-final { scan-assembler "\tvcmpequw " } } */
+
+/* { dg-final { scan-assembler "\tvcmpgefp " } } */
+/* { dg-final { scan-assembler "\tvcmpgtfp " } } */
+
+/* { dg-final { scan-assembler "\tvcmpgtsb " } } */
+/* { dg-final { scan-assembler "\tvcmpgtsh " } } */
+/* { dg-final { scan-assembler "\tvcmpgtsw " } } */
+
+/* { dg-final { scan-assembler "\tvcmpgtub " } } */
+/* { dg-final { scan-assembler "\tvcmpgtuh " } } */
+/* { dg-final { scan-assembler "\tvcmpgtuw " } } */
+
+/* { dg-final { scan-assembler "\tvctsxs " } } */
+/* { dg-final { scan-assembler "\tvctuxs " } } */
+
+/* { dg-final { scan-assembler "\tvexptefp " } } */
+/* { dg-final { scan-assembler "\tvlogefp " } } */
+/* { dg-final { scan-assembler "\tvmaddfp " } } */
+
+/* { dg-final { scan-assembler "\tvmaxfp " } } */
+/* { dg-final { scan-assembler "\tvmaxsb " } } */
+/* { dg-final { scan-assembler "\tvmaxsh " } } */
+/* { dg-final { scan-assembler "\tvmaxsw " } } */
+/* { dg-final { scan-assembler "\tvmaxub " } } */
+/* { dg-final { scan-assembler "\tvmaxuh " } } */
+/* { dg-final { scan-assembler "\tvmaxuw " } } */
+
+/* { dg-final { scan-assembler "\tvmrghb " } } */
+/* { dg-final { scan-assembler "\tvmrghh " } } */
+/* { dg-final { scan-assembler "\tvmrghw " } } */
+
+/* { dg-final { scan-assembler "\tvmrglb " } } */
+/* { dg-final { scan-assembler "\tvmrglh " } } */
+/* { dg-final { scan-assembler "\tvmrglw " } } */
+
+/* { dg-final { scan-assembler "\tvminfp " } } */
+/* { dg-final { scan-assembler "\tvminsb " } } */
+/* { dg-final { scan-assembler "\tvminsh " } } */
+/* { dg-final { scan-assembler "\tvminsw " } } */
+/* { dg-final { scan-assembler "\tvminub " } } */
+/* { dg-final { scan-assembler "\tvminuh " } } */
+/* { dg-final { scan-assembler "\tvminuw " } } */
+
+/* { dg-final { scan-assembler "\tvmhaddshs " } } */
+/* { dg-final { scan-assembler "\tvmhraddshs " } } */
+/* { dg-final { scan-assembler "\tvmladduhm " } } */
+/* { dg-final { scan-assembler "\tvmsumubm " } } */
+/* { dg-final { scan-assembler "\tvmsummbm " } } */
+/* { dg-final { scan-assembler "\tvmsumshm " } } */
+/* { dg-final { scan-assembler "\tvmsumuhm " } } */
+/* { dg-final { scan-assembler "\tvmsumuhs " } } */
+/* { dg-final { scan-assembler "\tvmsumshs " } } */
+
+/* { dg-final { scan-assembler "\tvmuleub " } } */
+/* { dg-final { scan-assembler "\tvmulesb " } } */
+/* { dg-final { scan-assembler "\tvmuleuh " } } */
+/* { dg-final { scan-assembler "\tvmulesh " } } */
+
+/* { dg-final { scan-assembler "\tvmuloub " } } */
+/* { dg-final { scan-assembler "\tvmulosb " } } */
+/* { dg-final { scan-assembler "\tvmulouh " } } */
+/* { dg-final { scan-assembler "\tvmulosh " } } */
+
+/* { dg-final { scan-assembler "\tvnmsubfp " } } */
+
+/* { dg-final { scan-assembler "\tvnor " } } */
+/* { dg-final { scan-assembler "\tvor " } } */
+/* { dg-final { scan-assembler "\tvxor " } } */
+
+/* { dg-final { scan-assembler "\tvpkuhum " } } */
+/* { dg-final { scan-assembler "\tvpkuwum " } } */
+/* { dg-final { scan-assembler "\tvpkpx " } } */
+/* { dg-final { scan-assembler "\tvpkuhus " } } */
+/* { dg-final { scan-assembler "\tvpkshss " } } */
+/* { dg-final { scan-assembler "\tvpkuwus " } } */
+/* { dg-final { scan-assembler "\tvpkswss " } } */
+/* { dg-final { scan-assembler "\tvpkshus " } } */
+/* { dg-final { scan-assembler "\tvpkswus " } } */
+
+/* { dg-final { scan-assembler "\tvperm " } } */
+
+/* { dg-final { scan-assembler "\tvrefp " } } */
+/* { dg-final { scan-assembler "\tvrfin " } } */
+/* { dg-final { scan-assembler "\tvrsqrtefp " } } */
+
+/* { dg-final { scan-assembler "\tvrlb " } } */
+/* { dg-final { scan-assembler "\tvrlh " } } */
+/* { dg-final { scan-assembler "\tvrlw " } } */
+
+/* { dg-final { scan-assembler "\tvsel " } } */
+
+/* { dg-final { scan-assembler "\tvslb " } } */
+/* { dg-final { scan-assembler "\tvslh " } } */
+/* { dg-final { scan-assembler "\tvslw " } } */
+
+/* { dg-final { scan-assembler "\tvsldoi " } } */
+/* { dg-final { scan-assembler "\tvsl " } } */
+/* { dg-final { scan-assembler "\tvslo " } } */
+
+/* { dg-final { scan-assembler "\tvspltb " } } */
+/* { dg-final { scan-assembler "\tvsplth " } } */
+/* { dg-final { scan-assembler "\tvspltw " } } */
+/* { dg-final { scan-assembler "\tvspltisb " } } */
+/* { dg-final { scan-assembler "\tvspltish " } } */
+/* { dg-final { scan-assembler "\tvspltisw " } } */
+
+/* { dg-final { scan-assembler "\tvsrb " } } */
+/* { dg-final { scan-assembler "\tvsrh " } } */
+/* { dg-final { scan-assembler "\tvsrw " } } */
+/* { dg-final { scan-assembler "\tvsrab " } } */
+/* { dg-final { scan-assembler "\tvsrah " } } */
+/* { dg-final { scan-assembler "\tvsraw " } } */
+/* { dg-final { scan-assembler "\tvsr " } } */
+/* { dg-final { scan-assembler "\tvsro " } } */
+
+/* { dg-final { scan-assembler "\tvsubcuw " } } */
+/* { dg-final { scan-assembler "\tvsubfp " } } */
+/* { dg-final { scan-assembler "\tvsubsbs " } } */
+/* { dg-final { scan-assembler "\tvsubshs " } } */
+/* { dg-final { scan-assembler "\tvsubsws " } } */
+/* { dg-final { scan-assembler "\tvsububs " } } */
+/* { dg-final { scan-assembler "\tvsubuhs " } } */
+/* { dg-final { scan-assembler "\tvsubuws " } } */
+/* { dg-final { scan-assembler "\tvsububm " } } */
+/* { dg-final { scan-assembler "\tvsubuhm " } } */
+/* { dg-final { scan-assembler "\tvsubuwm " } } */
+
+/* { dg-final { scan-assembler "\tvsum4ubs " } } */
+/* { dg-final { scan-assembler "\tvsum4sbs " } } */
+/* { dg-final { scan-assembler "\tvsum2sws " } } */
+/* { dg-final { scan-assembler "\tvsumsws " } } */
+
+/* { dg-final { scan-assembler "\tvrfiz " } } */
+
+/* { dg-final { scan-assembler "\tvupkhsb " } } */
+/* { dg-final { scan-assembler "\tvupkhpx " } } */
+/* { dg-final { scan-assembler "\tvupkhsh " } } */
+
+/* { dg-final { scan-assembler "\tvupklsb " } } */
+/* { dg-final { scan-assembler "\tvupklpx " } } */
+/* { dg-final { scan-assembler "\tvupklsh " } } */
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-3.C b/gcc/testsuite/g++.dg/ext/apple-altivec-3.C
new file mode 100644
index 00000000000..b095b88eee4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-3.C
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file AltiVec */
+/* Vectors in template functions. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -Wall" } */
+
+template<int I>
+void FooBar()
+{
+ vector unsigned char va, vb, vc;
+ vc = (vector unsigned char)vec_mergeh((vector unsigned short)va, (vector unsigned short)vb);
+}
+
+int main (int argc, char * const argv[])
+{
+ FooBar<0>();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-4.C b/gcc/testsuite/g++.dg/ext/apple-altivec-4.C
new file mode 100644
index 00000000000..0bb1dcd1d3a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-4.C
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+/* Existing AltiVec PIM implementations allow numeric literals with
+ any number of bits, so long as the value is within allowed range. */
+int foo(void)
+{
+ vector unsigned char amask = vec_splat_u8 ( 0xFFFFFFF3L );
+ vector signed short bmask = vec_splat_s16 ( 0xFFFFFFFFFFFFFFF1LL );
+}
+
+
+/* { dg-final { scan-assembler "vspltisb.+\\-13" } } */
+/* { dg-final { scan-assembler "vspltish.+\\-15" } } */
+
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-5.C b/gcc/testsuite/g++.dg/ext/apple-altivec-5.C
new file mode 100644
index 00000000000..4473881dda7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-5.C
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file AltiVec */
+/* Test for handling of reference vector parameters. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec" } */
+
+struct Vect
+{
+ typedef vector unsigned int vector_1;
+
+ static vector_1 ConvertPixel1(const vector_1 &source, const vector unsigned char &vp);
+ static vector_1 ConvertPixel2(const vector_1 source, const vector unsigned char vp);
+ static vector_1 ConvertPixel3(vector_1 &source, vector unsigned char &vp);
+ static vector_1 ConvertPixel4(vector_1 source, vector unsigned char vp);
+};
+
+Vect::vector_1 Vect::ConvertPixel1(const vector_1 &source, const vector unsigned char &vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
+Vect::vector_1 Vect::ConvertPixel2(const vector_1 source, const vector unsigned char vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
+Vect::vector_1 Vect::ConvertPixel3(vector_1 &source, vector unsigned char &vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
+Vect::vector_1 Vect::ConvertPixel4(vector_1 source, vector unsigned char vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-6.C b/gcc/testsuite/g++.dg/ext/apple-altivec-6.C
new file mode 100644
index 00000000000..7a74578d477
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-6.C
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file AltiVec */
+/* Test for handling of volatile reference vector parameters. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec" } */
+
+int foo(volatile vector float &i, int &j)
+{
+ vector unsigned char zero = vec_splat_u8(0);
+ vector unsigned char one = vec_splat_u8(1);
+ i = vec_add( (vector float)zero, (vector float)one );
+ j = 5;
+ return 0;
+}
+
+/* { dg-final { scan-assembler "Z3fooRVU8__vectorfRi" } } */
diff --git a/gcc/testsuite/g++.dg/ext/attrib20.C b/gcc/testsuite/g++.dg/ext/attrib20.C
new file mode 100644
index 00000000000..e46e8ae2077
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/attrib20.C
@@ -0,0 +1,23 @@
+// { dg-do compile }
+// { dg-options "-g" }
+// Origin: <jan at etpmod dot phys dot tue dot nl>
+// PR c++/19508: avoid attributes for template parameters
+
+template <typename T>
+struct BVector
+{
+ typedef T T2;
+ typedef T value_type __attribute__ ((aligned(8))); // { dg-bogus "attribute" "attribute" { xfail *-*-* } }
+ typedef T2 value_type2 __attribute__ ((aligned(8))); // { dg-bogus "attribute" "attribute" { xfail *-*-* } }
+ value_type v;
+};
+BVector<int> m;
+
+template <template <class> class T>
+struct BV2
+{
+ typedef T<float> value_type __attribute__((aligned(8))); // { dg-bogus "attribute" "attribute" { xfail *-*-* } }
+ value_type v;
+};
+BV2<BVector> m2;
+
diff --git a/gcc/testsuite/g++.dg/ext/attrib21.C b/gcc/testsuite/g++.dg/ext/attrib21.C
new file mode 100644
index 00000000000..2fc5800b05e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/attrib21.C
@@ -0,0 +1,17 @@
+// PR c++/20763
+
+typedef void *voidp;
+
+struct S
+{
+ char a;
+ voidp __attribute__ ((aligned (16))) b;
+};
+
+struct T
+{
+ char a;
+ void *__attribute__ ((aligned (16))) b;
+};
+
+int f[sizeof (struct S) != sizeof (struct T) ? -1 : 1];
diff --git a/gcc/testsuite/g++.dg/ext/lvalue-cast-1.C b/gcc/testsuite/g++.dg/ext/lvalue-cast-1.C
new file mode 100644
index 00000000000..ebee754f069
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/lvalue-cast-1.C
@@ -0,0 +1,34 @@
+/* APPLE LOCAL file non lvalue assign */
+/* { dg-do run } */
+/* { dg-options "-fnon-lvalue-assign" } */
+
+#include <stdlib.h>
+#define CHECK_IF(expr) if (!(expr)) abort ()
+
+static int global;
+
+void f(int &) { global = 35; }
+void f(const int &) { global = 78; }
+
+long long_arr[2];
+
+int main(void) {
+
+ char *p;
+
+ (long *)p = long_arr; /* { dg-warning "target of assignment not really an lvalue" } */
+ ((long *)p)++; /* { dg-warning "target of assignment not really an lvalue" } */
+ *(long *)p = -1;
+
+ *p = -2;
+ CHECK_IF(p[-1] == 0 && p[0] == -2 && p[1] == -1);
+
+ (long *)p += 2; /* { dg-warning "target of assignment not really an lvalue" } */
+ (long *)p -= 2; /* { dg-warning "target of assignment not really an lvalue" } */
+
+ long x = 0;
+ f((int)x);
+ CHECK_IF(global == 78);
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ext/lvalue-cast-2.C b/gcc/testsuite/g++.dg/ext/lvalue-cast-2.C
new file mode 100644
index 00000000000..bfd2e29e52c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/lvalue-cast-2.C
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file non lvalue assign */
+/* Allow lvalue casts in conjunction with '&'. */
+/* { dg-do compile } */
+/* { dg-options "-fnon-lvalue-assign" } */
+
+int foo (void **ptr) {
+ return 1;
+}
+
+int bar (void) {
+ char *string;
+
+ return foo ((void **)&((char *)string)); /* { dg-warning "argument to .&. not really an lvalue" } */
+}
diff --git a/gcc/testsuite/g++.dg/ext/lvalue-cond-1.C b/gcc/testsuite/g++.dg/ext/lvalue-cond-1.C
new file mode 100644
index 00000000000..ad059afe9b6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/lvalue-cond-1.C
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file non lvalue assign */
+/* Allow assignments to conditional expressions, as long as the second and third
+ operands are already lvalues. */
+/* NB: It turns out that C++ (unlike C) already allows these as lvalues, and so
+ no warnings whatsoever will be produced. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-options "-fnon-lvalue-assign" } */
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+int g1 = 3, g2 = 5;
+
+void assign_val1 (int which, int value) {
+ (which ? g1 : g2) = value; /* { dg-bogus "target of assignment not really an lvalue" } */
+}
+
+void assign_val2 (int which) {
+ (which ? g1 : g2)++; /* { dg-bogus "target of assignment not really an lvalue" } */
+}
+
+int main(void) {
+ assign_val1 (0, 15);
+ if (g1 != 3 || g2 != 15)
+ abort ();
+
+ assign_val2 (1);
+ if (g1 != 4 || g2 != 15)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ext/new-delete-1.C b/gcc/testsuite/g++.dg/ext/new-delete-1.C
new file mode 100644
index 00000000000..8f09183ab7a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/new-delete-1.C
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file coalescing */
+/* Make sure that non-weak '::new' and '::delete' operators do not wind
+ up in a coalesced section. Whether or not they get called via a stub
+ from within the same translation unit is an issue we defer for later
+ (i.e., Positron); when called from other translation units, they do
+ need a stub. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+
+extern "C" void free(void *);
+
+void operator delete(void*) throw();
+void operator delete(void* p) throw() { free(p); }
+
+void operator delete(void*, int) throw();
+
+void *operator new(unsigned long) throw();
+void *operator new(unsigned long) throw() { return (void *)0; }
+
+int *foo(void) {
+ int *n = new int();
+ ::operator delete(n, 0);
+ ::operator delete(n);
+ return 0;
+}
+
+/* { dg-final { scan-assembler-not "coal" } } */
+/* { dg-final { scan-assembler "bl L__ZdlPvi.stub" } } */
diff --git a/gcc/testsuite/g++.dg/ext/new-delete-2.C b/gcc/testsuite/g++.dg/ext/new-delete-2.C
new file mode 100644
index 00000000000..72d6b9e3ae1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/new-delete-2.C
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file coalescing */
+/* Make sure that weak '::new' and '::delete' operators wind
+ up in a coalesced section and get called via a stub. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+
+extern "C" void free(void *);
+
+void operator delete(void*) throw() __attribute__((weak));
+void operator delete(void* p) throw() { free(p); }
+
+void operator delete(void*, int) throw() __attribute__((weak));
+
+void *operator new(unsigned long) throw() __attribute__((weak));
+void *operator new(unsigned long) throw() { return (void *)0; }
+
+int *foo(void) {
+ int *n = new int();
+ ::operator delete(n, 0);
+ ::operator delete(n);
+ return 0;
+}
+
+/* { dg-final { scan-assembler "coal" } } */
+
+/* { dg-final { scan-assembler "bl L__Znwm.stub" } } */
+/* { dg-final { scan-assembler "bl L__ZdlPvi.stub" } } */
+/* { dg-final { scan-assembler "bl L__ZdlPv.stub" } } */
diff --git a/gcc/testsuite/g++.dg/ext/opt-pragma-2.C b/gcc/testsuite/g++.dg/ext/opt-pragma-2.C
new file mode 100644
index 00000000000..f44285a2f9c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/opt-pragma-2.C
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O3" } */
+void f4(int);
+#pragma optimization_level 0
+void f1(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimize_for_size on
+#pragma GCC optimization_level 0
+void f4(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level 0
+void f5(int x) {
+#pragma GCC optimization_level 2
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level reset
+void f6(int x) {
+ printf("%d\n", x);
+}
+/* Make sure sibling call optimization is not applied. */
+/* { dg-final { scan-assembler-times "b L_printf" 0 } } */
+/* { dg-final { scan-assembler-times "bl L_printf" 4 } } */
diff --git a/gcc/testsuite/g++.dg/ext/opt-pragma-3.C b/gcc/testsuite/g++.dg/ext/opt-pragma-3.C
new file mode 100644
index 00000000000..dcb4845cc21
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/opt-pragma-3.C
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O0" } */
+void f4(int);
+#pragma optimization_level 3
+void f1(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimize_for_size on
+#pragma GCC optimization_level 3
+void f4(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level 3
+void f5(int x) {
+#pragma GCC optimization_level 0
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level reset
+void f6(int x) {
+ printf("%d\n", x);
+}
+/* Make sure sibling call optimization is applied. */
+/* { dg-final { scan-assembler-times "b L_printf" 4 } } */
+/* { dg-final { scan-assembler-times "bl L_printf" 0 } } */
diff --git a/gcc/testsuite/g++.dg/ext/opt-pragma-4.C b/gcc/testsuite/g++.dg/ext/opt-pragma-4.C
new file mode 100644
index 00000000000..60064ab768d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/opt-pragma-4.C
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O0" } */
+void f4(int);
+#pragma optimization_level 3
+void f1(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimize_for_size on
+#pragma GCC optimization_level 3
+void f4(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level 0
+void f5(int x) {
+#pragma GCC optimization_level 2
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level reset
+void f6(int x) {
+ printf("%d\n", x);
+}
+/* { dg-final { scan-assembler-times "b L_printf" 2 } } */
+/* { dg-final { scan-assembler-times "bl L_printf" 2 } } */
diff --git a/gcc/testsuite/g++.dg/ext/stmtexpr4.C b/gcc/testsuite/g++.dg/ext/stmtexpr4.C
new file mode 100644
index 00000000000..a37c33ae086
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/stmtexpr4.C
@@ -0,0 +1,8 @@
+// PR c++/20147
+// { dg-do compile }
+// { dg-options "" }
+
+void foo()
+{
+ ({x;}); // { dg-error "was not declared" }
+}
diff --git a/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C b/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C
index a2c93ebb752..e292df41b4c 100644
--- a/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C
+++ b/gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C
@@ -1,6 +1,6 @@
/* Test that #pragma GCC visibility does not override class member specific settings. */
/* { dg-do compile } */
-/* { dg-require-visibility "" } */
+/* { dg-require-visibility "internal" } */
/* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" } } */
#pragma GCC visibility push(hidden)
diff --git a/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C b/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C
index a4bb42c728a..fe6c47fdbf5 100644
--- a/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C
+++ b/gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C
@@ -1,6 +1,6 @@
/* Test that #pragma GCC visibility does not override class member specific settings. */
/* { dg-do compile } */
-/* { dg-require-visibility "" } */
+/* { dg-require-visibility "internal" } */
/* { dg-final { scan-assembler "\\.internal.*Foo.methodEv" } } */
#pragma GCC visibility push(hidden)
diff --git a/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C b/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C
index dbd7010d028..ae4589397b6 100644
--- a/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C
+++ b/gcc/testsuite/g++.dg/ext/visibility/visibility-7.C
@@ -1,5 +1,5 @@
/* Test warning from conflicting visibility specifications. */
-/* { dg-require-visibility "" } */
+/* { dg-require-visibility "protected" } */
/* { dg-final { scan-hidden "xyzzy" } } */
extern int
diff --git a/gcc/testsuite/g++.dg/ext/weak2.C b/gcc/testsuite/g++.dg/ext/weak2.C
new file mode 100644
index 00000000000..1bf2ddcb4d6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/weak2.C
@@ -0,0 +1,17 @@
+// Test for #pragma weak with declaration not at file scope.
+// { dg-do compile }
+// { dg-require-weak "" }
+// { dg-options "" }
+
+// { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?_Z3foov" } }
+
+#pragma weak _Z3foov
+
+int
+main (void)
+{
+ extern int foo (void);
+ if (&foo)
+ return foo ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/f-asm-blocks-test.C b/gcc/testsuite/g++.dg/f-asm-blocks-test.C
new file mode 100644
index 00000000000..1c37a3afed0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/f-asm-blocks-test.C
@@ -0,0 +1,33 @@
+/* APPLE LOCAL begin CW asm blocks */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+class Foo
+{
+ public:
+ explicit Foo(int i) { mFoo = i; }
+
+ private:
+ int mFoo;
+};
+
+class FooRange
+{
+ public:
+ explicit FooRange(const Foo &start, const Foo &end) : mStart(start), mEnd(end)
+ {
+ }
+
+ private:
+ Foo mStart, mEnd;
+};
+
+void FooFunc(const FooRange &inRange)
+{
+}
+
+int main (int argc, char * const argv[]) {
+ FooRange theRange( Foo( 0 ) , Foo( 0 ) ); // Change this to FooRange theRange = FooRange( Foo( 0 ) , Foo( 0 ) );
+ // and everything is good...
+ FooFunc(theRange);
+}
+/* APPLE LOCAL end CW asm blocks */
diff --git a/gcc/testsuite/g++.dg/inherit/covariant12.C b/gcc/testsuite/g++.dg/inherit/covariant12.C
new file mode 100644
index 00000000000..434082abb0d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/covariant12.C
@@ -0,0 +1,18 @@
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 27 Feb 2005<nathan@codesourcery.com>
+
+// PR 20232: ICE on invalid
+
+struct T { };
+
+struct S;
+
+struct B
+{
+ virtual T *Foo (); // { dg-error "overriding" "" }
+};
+
+struct D : B
+{
+ virtual S *Foo (); // { dg-error "invalid covariant" "" }
+};
diff --git a/gcc/testsuite/g++.dg/inherit/volatile1.C b/gcc/testsuite/g++.dg/inherit/volatile1.C
new file mode 100644
index 00000000000..48df50adac5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/volatile1.C
@@ -0,0 +1,14 @@
+// PR c++/19299
+// Origin: Andrew Pinski <pinskia@gcc.gnu.org>
+
+// { dg-do compile }
+
+struct V
+{
+ virtual void foo() = 0;
+};
+
+void bar(V volatile* p)
+{
+ p->V::~V();
+}
diff --git a/gcc/testsuite/g++.dg/init/array18.C b/gcc/testsuite/g++.dg/init/array18.C
new file mode 100644
index 00000000000..154d03fcff8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array18.C
@@ -0,0 +1,22 @@
+// PR c++/20142
+// { dg-do run }
+
+int n=4;
+
+struct A
+{
+ A() {}
+ A& operator= (const A&) { --n; return *this; }
+};
+
+struct B
+{
+ A x[2][2];
+};
+
+int main()
+{
+ B b;
+ b = b;
+ return n;
+}
diff --git a/gcc/testsuite/g++.dg/init/array19.C b/gcc/testsuite/g++.dg/init/array19.C
new file mode 100644
index 00000000000..a5f124e21ce
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array19.C
@@ -0,0 +1,4 @@
+// { dg-do compile }
+// { dg-options "" }
+double a[0] = { };
+const double b[0][1] = { };
diff --git a/gcc/testsuite/g++.dg/init/const1.C b/gcc/testsuite/g++.dg/init/const1.C
new file mode 100644
index 00000000000..af4427d9ab3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/const1.C
@@ -0,0 +1,8 @@
+// PR c++/20073
+
+template<int> struct A
+{
+ A();
+};
+
+const A<0> x[] = { A<0>() };
diff --git a/gcc/testsuite/g++.dg/init/const2.C b/gcc/testsuite/g++.dg/init/const2.C
new file mode 100644
index 00000000000..4fd631851a4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/const2.C
@@ -0,0 +1,7 @@
+// PR c++/19878
+
+struct S {
+ char k;
+};
+char const volatile S::* const p01 = &S::k;
+
diff --git a/gcc/testsuite/g++.dg/init/dso_handle1.C b/gcc/testsuite/g++.dg/init/dso_handle1.C
index 6578f4fae7e..97f67cad8f4 100644
--- a/gcc/testsuite/g++.dg/init/dso_handle1.C
+++ b/gcc/testsuite/g++.dg/init/dso_handle1.C
@@ -1,5 +1,6 @@
// PR c++/17042
// { dg-do assemble }
+/* { dg-require-weak "" } */
// { dg-options "-fuse-cxa-atexit" }
struct A
diff --git a/gcc/testsuite/g++.dg/init/ptrmem2.C b/gcc/testsuite/g++.dg/init/ptrmem2.C
new file mode 100644
index 00000000000..54b69215bb4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ptrmem2.C
@@ -0,0 +1,12 @@
+// PR c++/19916
+// { dg-do run }
+
+struct S {
+ char k;
+};
+
+char const volatile S::* const p01 = &S::k;
+int main(void)
+{
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/kext1.C b/gcc/testsuite/g++.dg/kext1.C
new file mode 100644
index 00000000000..2b8cdfa07e9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext1.C
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file KEXT indirect-virtual-calls --sts */
+/* Radar 3008388: Positive C++ test case. */
+/* Origin: Matt Austern <austern@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-fapple-kext" } */
+
+struct B1 { }; /* ok */
+struct B2 { }; /* ok */
+struct D1 : B1 { }; /* ok */
+struct D2 : B1, B2 { }; /* ok */
+struct D3 : virtual B1 { }; /* ok */
diff --git a/gcc/testsuite/g++.dg/kext10.C b/gcc/testsuite/g++.dg/kext10.C
new file mode 100644
index 00000000000..74cfa24c96b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext10.C
@@ -0,0 +1,23 @@
+// APPLE LOCAL file
+// Radar 3988061
+// { dg-do compile { target powerpc*-*-darwin* } }
+// { dg-options "-Os -static -fapple-kext" }
+// the virtual call to IOHIDElement::free() is normally resolved
+// at compile time, but with -fapple-kext we don't want this.
+class IOHIDElement
+{
+protected:
+ virtual ~IOHIDElement();
+ virtual void free();
+};
+class IOHIDElementPrivate: public IOHIDElement
+{
+protected:
+ virtual void free();
+};
+IOHIDElement::~IOHIDElement() {}
+void IOHIDElementPrivate::free()
+{
+ IOHIDElement::free();
+}
+// { dg-final { scan-assembler-times "IOHIDElement4free" 1} }
diff --git a/gcc/testsuite/g++.dg/kext11.C b/gcc/testsuite/g++.dg/kext11.C
new file mode 100644
index 00000000000..d91a686e00f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext11.C
@@ -0,0 +1,39 @@
+/* APPLE LOCAL file ptmf casts --bowdidge */
+/* In gcc-4.0 and beyond, kexts are not permitted to cast
+ pointer-to-member- functions into pointer-to-functions.
+ These casts should be flagged as a hard error if
+ -fapple-kext is an option for the compile. -fpermissive shouldn't permit
+ this, either. This checks for OSMemberFunctionCast in the error message
+ because the error advises developers to use that function to replace
+ these casts.
+
+ Radar 4025923, gcc-4.0 should ban kexts from doing ptmf to ptf
+ conversions without OSMemberFunctionCast
+*/
+/* { dg-do compile { target powerpc*-apple-darwin* } } */
+/* { dg-options "-S -static -fapple-kext -fpermissive -fno-exceptions" } */
+
+typedef int(*INT_FUNC_INT)(int);
+class Superclass {
+public:
+ /* In 3.3, this would get the foo function for the class of "this". In 4.0, it
+ gets the foo function for Superclass. */
+ virtual int init(void) {_myFunc = (INT_FUNC_INT)&Superclass::foo;}; /* { dg-error "OSMemberFunctionCast" } */
+ INT_FUNC_INT _myFunc;
+ virtual int foo(int i) { return 2;};
+};
+
+class Subclass : public Superclass {
+public:
+ virtual int foo(int) { return 1;};
+};
+
+main(int argc, char **argv) {
+ Superclass sup;
+ Subclass sub;
+ sup.init();
+ sup.foo(1);
+ sub.init();
+ sub.foo(1);
+}
+
diff --git a/gcc/testsuite/g++.dg/kext2.C b/gcc/testsuite/g++.dg/kext2.C
new file mode 100644
index 00000000000..992c81c6a3a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext2.C
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file KEXT indirect-virtual-calls --sts */
+/* Radar 3008388: Positive C++ test case. */
+/* Origin: Matt Austern <austern@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-fapple-kext" } */
+
+struct B1 { virtual ~B1(); virtual void f(); }; /* ok */
+struct D1 : B1 { }; /* ok */
+struct X1 : D1 { virtual void f(); }; /* ok */
+
+void X1::f() { D1::f(); } /* ok */
+
+
diff --git a/gcc/testsuite/g++.dg/kext3.C b/gcc/testsuite/g++.dg/kext3.C
new file mode 100644
index 00000000000..25b904bf78b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext3.C
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file KEXT indirect-virtual-calls --sts */
+/* Radar 3008388: Negative C++ test case. */
+/* Origin: Matt Austern <austern@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-fapple-kext" } */
+
+struct B1 { virtual ~B1(); virtual void f(); }; /* ok */
+struct D1 : B1 { }; /* ok */
+struct D2 { }; /* ok */
+
+struct X1 : D1, D2 { }; /* ok */
+struct X2 : virtual D1 { }; /* ok */
+
+struct Y1 : X1 { virtual void f(); }; /* ok */
+struct Y2 : X2 { virtual void f(); }; /* ok */
+
+void Y1::f() { X1::f(); } /* { dg-error "indirect virtual" } */
+void Y2::f() { X2::f(); } /* { dg-error "indirect virtual" } */
diff --git a/gcc/testsuite/g++.dg/kext4.C b/gcc/testsuite/g++.dg/kext4.C
new file mode 100644
index 00000000000..bdaefb61121
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext4.C
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file KEXT double destructor */
+/* { dg-do compile } */
+/* { dg-options "-fapple-kext" } */
+/* test for use of apple_kext_compatibility on stack */
+struct B1 {
+ virtual ~B1();
+} __attribute__((apple_kext_compatibility));
+
+struct D1 : B1 {
+ void operator delete(void *) { }
+ D1();
+};
+
+struct D2 : B1 {
+ void operator delete(void *);
+ D2();
+};
+
+struct D3 : B1 {
+ D3();
+};
+
+void foo() {
+ D1 d1; // ok
+ D2 d2; // { dg-warning "is an instance of a class" }
+ D3 d3; // { dg-warning "is an instance of a class" }
+}
diff --git a/gcc/testsuite/g++.dg/kext5.C b/gcc/testsuite/g++.dg/kext5.C
new file mode 100644
index 00000000000..4306c171401
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext5.C
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file KEXT double destructor */
+/* { dg-do compile } */
+/* { dg-options "-fapple-kext" } */
+
+class tTest
+{
+ public:
+
+ tTest();
+ ~tTest();
+};
+
+void bar ()
+{
+ tTest tests[5];
+}
diff --git a/gcc/testsuite/g++.dg/kext6.C b/gcc/testsuite/g++.dg/kext6.C
new file mode 100644
index 00000000000..c3f7503e53d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext6.C
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file KEXT indirect-virtual-calls --sts */
+/* Radar 3848842 Positive C++ test case. */
+/* Origin F. Jahanian <fjahanian@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-Os -fapple-kext" } */
+
+struct Integer
+{
+ Integer ( void ) ;
+ virtual ~Integer ( void ) ;
+};
+
+static void AppendMa(unsigned char *outBuffer);
+static void AppendNonce();
+
+extern "C" void afpfs_DHXLogin ()
+{
+ unsigned char *cptr = __null;
+ AppendMa(cptr);
+ AppendNonce();
+}
+
+static void AppendNonce() { }
+
+
+static void AppendMa(unsigned char *outBuffer)
+{
+ Integer Ma;
+}
diff --git a/gcc/testsuite/g++.dg/kext7.C b/gcc/testsuite/g++.dg/kext7.C
new file mode 100644
index 00000000000..564e1219599
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext7.C
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file KEXT double destructor --bowdidge */
+/* Radar 3943783 kernel extensions built with gcc-4.0 can't be loaded */
+/* { dg-do compile { target powerpc*-apple-darwin* } } */
+/* { dg-options "-S -fapple-kext" } */
+
+struct Base {
+ virtual ~Base();
+} __attribute__((apple_kext_compatibility));
+
+struct Derived : Base {
+ void operator delete(void *) { }
+ Derived();
+};
+
+void foo() {
+ Derived d1; // ok
+}
+/* An implicit in-charge destructor shouldn't be created when -fapple-kext
+ is declared. */
+/* { dg-final { scan-assembler-not "_ZN7DerivedD1Ev" } } */
diff --git a/gcc/testsuite/g++.dg/kext8.C b/gcc/testsuite/g++.dg/kext8.C
new file mode 100644
index 00000000000..399f8c03f44
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext8.C
@@ -0,0 +1,36 @@
+/* APPLE LOCAL file KEXT double destructor --bowdidge */
+/* Radar 3943783 kernel extensions built with gcc-4.0 can't be loaded */
+/* { dg-do compile { target powerpc*-apple-darwin* } } */
+/* { dg-options "-S -fapple-kext -fno-exceptions" } */
+
+/* Here's some kext class hierarchy code. */
+
+
+struct Base {
+ virtual ~Base();
+} __attribute__((apple_kext_compatibility));
+
+struct Derived : Base {
+ void operator delete(void *) { }
+ Derived();
+};
+
+void foo() {
+ Derived d1; // ok
+}
+
+/* Here's some inlined functions to try to trick the compiler into creating coalesced
+ sections. */
+inline unsigned f(unsigned n) { return n == 0 ? 0 : n + f(n-1); }
+
+unsigned g(unsigned n) { return f(n); }
+
+/* Here's some template stuff to try to trick the compiler into creating coalesced sections
+ another way. */
+
+ template <typename X> X ident(X x) { return x; }
+ int foo(int n) { return ident(n); }
+
+/* See if there's any sections with the coalesced flag. coalesced sections
+ currently aren't loaded by the kernel loader into memory. */
+/* { dg-final { scan-assembler-not "coalesced" } } */
diff --git a/gcc/testsuite/g++.dg/kext9.C b/gcc/testsuite/g++.dg/kext9.C
new file mode 100644
index 00000000000..88293aa5558
--- /dev/null
+++ b/gcc/testsuite/g++.dg/kext9.C
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file KEXT indirect virtual calls */
+/* Radar 3972840: Positive C++ test case */
+/* Origin: Matt Austern <austern@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-fapple-kext" } */
+
+struct Base { virtual char* abc(void) const; };
+
+char* Base::abc() const { return 0; }
+
+void f(Base* p) {
+ char* c = p->Base::abc();
+}
diff --git a/gcc/testsuite/g++.dg/lookup/anon2.C b/gcc/testsuite/g++.dg/lookup/anon2.C
index 4cd64aecb49..d556ba0034a 100644
--- a/gcc/testsuite/g++.dg/lookup/anon2.C
+++ b/gcc/testsuite/g++.dg/lookup/anon2.C
@@ -1,6 +1,9 @@
// { dg-do compile }
// { dg-options "" }
-class { int i; } a; // { dg-error "private|anonymous type" }
-void foo() { a.i; } // { dg-error "context" }
+// Make sure we issue a diagnostic if a type with no linkage is used
+// to declare a a variable that has linkage.
+struct { int i; } a; // { dg-warning "anonymous type" }
+
+void foo() { a.i; }
diff --git a/gcc/testsuite/g++.dg/lookup/using13.C b/gcc/testsuite/g++.dg/lookup/using13.C
new file mode 100644
index 00000000000..c102fdcf872
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/using13.C
@@ -0,0 +1,12 @@
+// { dg-do compile }
+
+// Origin: Stefan Straßer <sstrasser@systemhaus-gruppe.de>
+
+// PR c++/20240:
+
+namespace A { int a; }
+
+namespace C{
+ int a;
+ using A::a; // { dg-error "already declared" }
+}
diff --git a/gcc/testsuite/g++.dg/opt/20050511-1.C b/gcc/testsuite/g++.dg/opt/20050511-1.C
new file mode 100644
index 00000000000..6b25296c333
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/20050511-1.C
@@ -0,0 +1,65 @@
+/* APPLE LOCAL file 4110735 */
+/* { dg-do run } */
+/* { dg-options "-O3" { target powerpc*-*-* } } */
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef signed short SINT16 ;
+typedef unsigned long UINT32 ;
+typedef unsigned int UINT ;
+
+class A
+{
+public:
+ union
+ {
+ SINT16 xy[2];
+ UINT32 abXY;
+ };
+ bool operator==(const A& other) const {return abXY == other.abXY;}
+ bool operator!=(const A& other) const {return abXY != other.abXY;}
+};
+
+template <int size> struct pArray { unsigned char u08[16*(((size*1)+15)/16)] __attribute__ ((aligned(16))); };
+
+struct B
+{
+ union {
+ A mvL[2];
+ pArray<1> xyz;
+ };
+} ;
+
+typedef struct
+{
+ UINT w;
+ B b;
+
+}C;
+
+
+UINT32 bar (const C * sPtr)
+{
+ UINT w = sPtr->w;
+ A a;
+
+ a.xy[0] = sPtr->b.mvL[w].xy[0]<<2;
+ a.xy[1] = sPtr->b.mvL[w].xy[1]<<2;
+
+ if (a.xy[0] != (SINT16) (0xffff << 2))
+ abort ();
+}
+
+int main()
+{
+ A a;
+ C c;
+ a.xy[0] = 0xffff;
+ a.xy[1] = 0xffff;
+ c.w=0;
+ c.b.mvL[0].xy[0] = a.xy[0];
+ c.b.mvL[0].xy[1] = a.xy[1];
+
+ bar (&c);
+}
+
diff --git a/gcc/testsuite/g++.dg/opt/covariant1.C b/gcc/testsuite/g++.dg/opt/covariant1.C
new file mode 100644
index 00000000000..e57cf4c6be0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/covariant1.C
@@ -0,0 +1,47 @@
+// PR c++/20206
+// { dg-do run }
+// { dg-options "-O0" }
+
+void
+bar (int x)
+{
+ asm ("" : : "g" (x));
+}
+
+struct S { S () {}; virtual ~S () {}; };
+struct T { virtual T *foo (int) {}; };
+struct V : virtual S, virtual T {};
+struct V v;
+struct U : public S, public T
+{
+ bool a;
+ U () {}
+ virtual ~U () {}
+ virtual V *foo (int x)
+ {
+ switch (x)
+ {
+ case 12:
+ break;
+ case 9:
+ bar (7);
+ break;
+ case 10:
+ bar (12);
+ break;
+ case 4:
+ bar (18);
+ break;
+ case 2:
+ bar (26);
+ break;
+ }
+ return &v;
+ }
+};
+U u;
+
+int
+main ()
+{
+}
diff --git a/gcc/testsuite/g++.dg/opt/crossjump1.C b/gcc/testsuite/g++.dg/opt/crossjump1.C
new file mode 100644
index 00000000000..acb3af03b1d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/crossjump1.C
@@ -0,0 +1,36 @@
+// APPLE LOCAL file mainline
+// modified to avoid using test harness feature unsupported locally
+// PR middle-end/21492
+// { dg-do compile }
+// { dg-options "-Os" }
+// { dg-options "-Os -fPIC" }
+
+extern char *bar (const char *, const char *);
+extern char *baz (char *, const char *);
+extern unsigned int fn (const char *);
+static const struct C { int i; } k = { 0};
+
+struct A
+{
+ ~A ();
+};
+
+char *
+foo (char *x, const char *y)
+{
+ A a;
+ char *c = x;
+
+ if (bar (y, "foo"))
+ {
+ baz (c, "foo");
+ c += fn ("foo");
+ }
+ else if (bar (y, "bar"))
+ {
+ baz (c, "bar");
+ c += fn ("bar");
+ }
+
+ return x;
+}
diff --git a/gcc/testsuite/g++.dg/opt/max1.C b/gcc/testsuite/g++.dg/opt/max1.C
index 61b7021da66..10a6e57d92d 100644
--- a/gcc/testsuite/g++.dg/opt/max1.C
+++ b/gcc/testsuite/g++.dg/opt/max1.C
@@ -1,7 +1,7 @@
/* PR middle-end/19068 */
/* Test case by Andrew Pinski <pinskia@physics.uc.edu> */
/* { dg-do run } */
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -Wno-deprecated" } */
extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/opt/pr13066-1.C b/gcc/testsuite/g++.dg/opt/pr13066-1.C
new file mode 100644
index 00000000000..67f85345676
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr13066-1.C
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+class nsIURI;
+
+struct nsCOMPtr
+{
+ operator nsIURI*() const
+ {
+ return mRawPtr;
+ }
+
+ nsIURI *mRawPtr;
+};
+
+void func()
+{
+ nsCOMPtr u1;
+ if (!u1 == !u1)
+ return;
+}
+
diff --git a/gcc/testsuite/g++.dg/opt/pr19108.C b/gcc/testsuite/g++.dg/opt/pr19108.C
new file mode 100644
index 00000000000..206a2bc382b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr19108.C
@@ -0,0 +1,19 @@
+// PR tree-optimization/19108
+// This used to abort due to not handing RANGE_EXPR in SRA.
+
+// { dg-do compile }
+// { dg-options "-O" }
+
+struct A
+{
+ int i[6];
+ A () : i() {}
+};
+
+struct B
+{
+ A a;
+ B(const A& x) : a(x) {}
+};
+
+B b=A();
diff --git a/gcc/testsuite/g++.dg/opt/pr20991.C b/gcc/testsuite/g++.dg/opt/pr20991.C
new file mode 100644
index 00000000000..32b3d05c351
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr20991.C
@@ -0,0 +1,34 @@
+// PR middle-end/20991
+// { dg-options "-O2" }
+// { dg-do compile }
+
+struct S
+{
+ virtual inline int foo () const;
+ virtual inline bool bar () const;
+ virtual int baz (int) const;
+};
+
+inline int S::foo () const
+{
+ return 1;
+}
+
+inline bool S::bar () const
+{
+ return foo () == 0;
+}
+
+void A ()
+{
+ S s;
+ if (s.bar ())
+ s.foo ();
+}
+
+void B ()
+{
+ S s;
+ if (s.bar ())
+ s.foo ();
+}
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-2.C b/gcc/testsuite/g++.dg/opt/pr7503-2.C
index 68bb143e45e..02ce5988d70 100644
--- a/gcc/testsuite/g++.dg/opt/pr7503-2.C
+++ b/gcc/testsuite/g++.dg/opt/pr7503-2.C
@@ -1,6 +1,6 @@
// PR c++/7503
// { dg-do run }
-// { dg-options "-O2" }
+// { dg-options "-O2 -Wno-deprecated" }
extern "C" void abort();
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-3.C b/gcc/testsuite/g++.dg/opt/pr7503-3.C
index 34d91ddb6c0..4e8de0f207c 100644
--- a/gcc/testsuite/g++.dg/opt/pr7503-3.C
+++ b/gcc/testsuite/g++.dg/opt/pr7503-3.C
@@ -1,6 +1,6 @@
// PR c++/7503
// { dg-do compile }
-// { dg-options "-O2" }
+// { dg-options "-O2 -Wno-deprecated" }
extern int A, B;
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-4.C b/gcc/testsuite/g++.dg/opt/pr7503-4.C
index 06ac901229f..7ed70946984 100644
--- a/gcc/testsuite/g++.dg/opt/pr7503-4.C
+++ b/gcc/testsuite/g++.dg/opt/pr7503-4.C
@@ -1,6 +1,6 @@
// PR c++/7503
// { dg-do run }
-// { dg-options "-O2" }
+// { dg-options "-O2 -Wno-deprecated" }
extern "C" void abort();
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-5.C b/gcc/testsuite/g++.dg/opt/pr7503-5.C
index 9e1e719f5c2..236ac93aa3a 100644
--- a/gcc/testsuite/g++.dg/opt/pr7503-5.C
+++ b/gcc/testsuite/g++.dg/opt/pr7503-5.C
@@ -1,6 +1,6 @@
// PR c++/7503
// { dg-do run }
-// { dg-options "-O2" }
+// { dg-options "-O2 -Wno-deprecated" }
extern "C" void abort();
diff --git a/gcc/testsuite/g++.dg/opt/switch3.C b/gcc/testsuite/g++.dg/opt/switch3.C
new file mode 100644
index 00000000000..643cac3235b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/switch3.C
@@ -0,0 +1,16 @@
+// PR c++/20023
+// { dg-do compile }
+// { dg-options "-O2" }
+
+void f (void);
+typedef __SIZE_TYPE__ size_t;
+void g (void *a)
+{
+ size_t b = (size_t) a;
+ switch (b)
+ {
+ case 1:
+ f ();
+ break;
+ }
+}
diff --git a/gcc/testsuite/g++.dg/opt/switch4.C b/gcc/testsuite/g++.dg/opt/switch4.C
new file mode 100644
index 00000000000..231929fdf3d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/switch4.C
@@ -0,0 +1,30 @@
+// { dg-do compile }
+
+// PR c++/20008
+
+// We failed to compile this because CFG cleanup left the switch
+// statement intact, whereas expand_case expected at least one
+// in-range case to remain.
+
+typedef enum _SECStatus {
+ SECWouldBlock = -2,
+ SECFailure = -1,
+ SECSuccess = 0
+} SECStatus;
+
+typedef enum {
+ SEC_ERROR_BAD_SIGNATURE = (-0x2000) + 10
+} SECErrorCodes;
+
+void g(void);
+void f(SECStatus status)
+{
+ switch( status )
+ {
+ case SEC_ERROR_BAD_SIGNATURE :
+ // This case can be optimized away in C++ (but apparently not in
+ // C), because the enum type is defined with a narrow range.
+ g();
+ break ;
+ }
+}
diff --git a/gcc/testsuite/g++.dg/opt/thunk2.C b/gcc/testsuite/g++.dg/opt/thunk2.C
new file mode 100644
index 00000000000..52fcd74bc11
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/thunk2.C
@@ -0,0 +1,44 @@
+// PR c++/20206
+// { dg-do run }
+// { dg-options "-O0" }
+
+void
+bar (int x)
+{
+ asm ("" : : "g" (x));
+}
+
+struct S { S () {}; virtual ~S () {}; };
+struct T { virtual void foo (int) = 0; };
+struct U : public S, public T
+{
+ bool a;
+ U () {}
+ virtual ~U () {}
+ virtual void foo (int x)
+ {
+ switch (x)
+ {
+ case 12:
+ break;
+ case 9:
+ bar (7);
+ break;
+ case 10:
+ bar (12);
+ break;
+ case 4:
+ bar (18);
+ break;
+ case 2:
+ bar (26);
+ break;
+ }
+ }
+};
+U u;
+
+int
+main ()
+{
+}
diff --git a/gcc/testsuite/g++.dg/other/access3.C b/gcc/testsuite/g++.dg/other/access3.C
new file mode 100644
index 00000000000..2c21c1e5fa9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/access3.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// { dg-options "-fno-access-control" }
+
+// PR c++/20022
+
+// Make sure -fno-access-control doesn't crash, and actually grants at
+// least some access.
+
+class B {
+ enum A {};
+};
+
+B::A r;
diff --git a/gcc/testsuite/g++.dg/other/anon3.C b/gcc/testsuite/g++.dg/other/anon3.C
index 87cbfb544cd..87116eb8901 100644
--- a/gcc/testsuite/g++.dg/other/anon3.C
+++ b/gcc/testsuite/g++.dg/other/anon3.C
@@ -4,4 +4,4 @@
// { dg-do compile }
-enum { a = 3 } x;
+enum { a = 3 } x; // { dg-warning "anonymous type" }
diff --git a/gcc/testsuite/g++.dg/other/cv_func.C b/gcc/testsuite/g++.dg/other/cv_func.C
new file mode 100644
index 00000000000..4f103824d93
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/cv_func.C
@@ -0,0 +1,32 @@
+// { dg-do compile }
+// { dg-options "-pedantic -pedantic-errors" }
+typedef int FIC(int) const;
+typedef int FI(int);
+
+FIC f; // { dg-error "qualified" }
+// { dg-error "ignoring" "ignoring" { target *-*-* } 6 }
+struct S {
+ FIC f; // OK
+
+ const FI g; // { dg-error "qualifier" }
+
+ int h(int) const;
+
+};
+FIC S::*pm = &S::f;
+const FI S::*pm2 = &S::f; // { dg-error "qualifier" }
+// { dg-error "cannot convert" "cannot convert" { target *-*-* } 17 }
+const FIC S::*pm3 = &S::f; // { dg-error "qualifier" }
+
+int S::f(int) const
+{
+ return 17;
+}
+
+
+int foo(float) const // { dg-error "qualifier" }
+{
+ return 0;
+}
+
+int bar(float) volatile; // { dg-error "qualifier" }
diff --git a/gcc/testsuite/g++.dg/other/offsetof3.C b/gcc/testsuite/g++.dg/other/offsetof3.C
index 7106a3f01ad..1e83af98071 100644
--- a/gcc/testsuite/g++.dg/other/offsetof3.C
+++ b/gcc/testsuite/g++.dg/other/offsetof3.C
@@ -13,4 +13,4 @@ typedef X* pX;
typedef __SIZE_TYPE__ size_t;
size_t yoff = size_t(&(pX(0)->y)); /* { dg-warning "invalid access" "" } */
-/* { dg-warning "macro was used incorrectly" "" { target *-*-* } 15 } */
+/* { dg-warning "macro was used incorrectly" "macro" { target *-*-* } 15 } */
diff --git a/gcc/testsuite/g++.dg/other/stdarg3.C b/gcc/testsuite/g++.dg/other/stdarg3.C
new file mode 100644
index 00000000000..3d11dffae1f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/stdarg3.C
@@ -0,0 +1,16 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 8 Mar 2005 <nathan@codesourcery.com>
+
+// PR 20375: ICE
+// Origin: Joseph S. Myers <jsm28@gcc.gnu.org>
+// { dg-options "-mlp64" { target "ia64-*-*" } }
+
+union U
+{
+ void *m[7];
+};
+
+struct C;
+
+void f(struct C *c, float f, union U, ...)
+{ }
diff --git a/gcc/testsuite/g++.dg/other/ucnid-1.C b/gcc/testsuite/g++.dg/other/ucnid-1.C
new file mode 100644
index 00000000000..c55afd6b1d7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/ucnid-1.C
@@ -0,0 +1,27 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+#include <cstdlib>
+
+int \u00C0(void) { return 1; }
+int \u00C1(void) { return 2; }
+int \U000000C2(void) { return 3; }
+int wh\u00ff(void) { return 4; }
+int a\u00c4b\u0441\U000003b4e(void) { return 5; }
+
+int main (void)
+{
+
+ if (\u00C0() != 1)
+ abort ();
+ if (\u00c1() != 2)
+ abort ();
+ if (\u00C2() != 3)
+ abort ();
+ if (wh\u00ff() != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e() != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/g++.dg/overload/using2.C b/gcc/testsuite/g++.dg/overload/using2.C
new file mode 100644
index 00000000000..2ecb5fad6b0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/using2.C
@@ -0,0 +1,87 @@
+// { dg-do compile }
+
+// Copyright 2005 Free Software Foundation
+// by Alexandre Oliva <aoliva@redhat.com>
+// based on https://bugzilla.redhat.com/beta/show_bug.cgi?id=149098
+
+// Per the ISO C++ 90 Standard, using declarations before of after a
+// declaration of the same function name and prototype should be
+// errors (7.3.3/11). However, DR 101's resolution recommends
+// accepting such duplicates if they denote the same function, which
+// means extern "C" declarations are supposed to match and be
+// accepted.
+
+// This test makes sure we reject or accept regular and using
+// declarations regardless of order as appropriate, and that having
+// built-in declarations or overloads doesn't affet the outcome.
+
+namespace std {
+ extern "C" void exit (int) throw (); // these are built-in (extern "C")
+ extern "C" void *malloc (__SIZE_TYPE__) throw () __attribute__((malloc));
+
+ void abort (void) throw (); // these aren't
+ void _exit (int) throw (); // { dg-error "std::_exit" }
+
+ extern "C" void c1 (void) throw ();
+ void C1 (void) throw (); // { dg-error "std::C1" }
+
+ extern "C" void c2 (void) throw ();
+ void C2 (void) throw ();
+
+ extern "C" void c3 (void) throw ();
+ void C3 (void) throw (); // { dg-error "std::C3" }
+}
+
+namespace other {
+ extern "C" void c3 (void) throw ();
+ void C3 (void) throw (); // { dg-error "other::C3" }
+}
+
+using std::exit;
+using std::_exit;
+using std::c1;
+using std::C1;
+
+ extern "C" void exit (int) throw ();
+ extern "C" void *malloc (__SIZE_TYPE__) throw () __attribute__((malloc));
+
+ void abort (void) throw ();
+ void _exit (int) throw (); // { dg-error "conflicts|void _exit" }
+
+ extern "C" void c1 (void) throw ();
+ void C1 (void) throw (); // { dg-error "conflicts|void C1" }
+
+ extern "C" void c2 (void) throw ();
+ void C2 (void) throw ();
+
+ int C3 (int) throw ();
+
+using std::malloc;
+using std::abort; // { dg-error "already declared" }
+using std::c2;
+using std::C2; // { dg-error "already declared" }
+
+using std::c3; using other::c3;
+using std::C3; using other::C3;
+
+ long C3 (long) throw ();
+
+int main () {
+ malloc (0);
+ exit (0);
+
+ _exit (0); // { dg-error "ambiguous" }
+ abort ();
+
+ c1 ();
+ C1 (); // { dg-error "ambiguous" }
+
+ c2 ();
+ C2 (); // one might expect an ambiguous call error here as well, but
+ // we don't add the using decl if we find it to be in error.
+
+ c3 ();
+ C3 (); // { dg-error "ambiguous" }
+ C3 (0);
+ C3 (0l);
+}
diff --git a/gcc/testsuite/g++.dg/parse/cond2.C b/gcc/testsuite/g++.dg/parse/cond2.C
new file mode 100644
index 00000000000..2dbe42b34f3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/cond2.C
@@ -0,0 +1,14 @@
+// PR c++/20905
+
+struct name {};
+
+int
+f ();
+
+void
+g ()
+{
+ if (int name = f ())
+ {
+ }
+}
diff --git a/gcc/testsuite/g++.dg/parse/constant6.C b/gcc/testsuite/g++.dg/parse/constant6.C
new file mode 100644
index 00000000000..dae01d47be3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/constant6.C
@@ -0,0 +1,23 @@
+// PR c++/19883
+
+template<typename T> struct A
+{
+ static const T i = 1;
+ char a[int(i)];
+};
+
+template<int> struct B {};
+
+template<typename T> struct C
+{
+ static const T i = 2;
+ B<int(i)> a;
+};
+
+template< typename T, T N >
+struct integral_c
+{
+ static const T value = N;
+
+ typedef integral_c< T, static_cast<T>((value + 1)) > next;
+};
diff --git a/gcc/testsuite/g++.dg/parse/constant7.C b/gcc/testsuite/g++.dg/parse/constant7.C
new file mode 100644
index 00000000000..c54ad55c1f0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/constant7.C
@@ -0,0 +1,9 @@
+// PR c++/19991
+
+enum { e = 1 };
+
+template<typename> struct A
+{
+ static const int i = e;
+ char a[i];
+};
diff --git a/gcc/testsuite/g++.dg/parse/crash24.C b/gcc/testsuite/g++.dg/parse/crash24.C
new file mode 100644
index 00000000000..fdc4f1e7c9d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash24.C
@@ -0,0 +1,6 @@
+// PR c++/20461
+// { dg-do compile }
+
+class C; // { dg-error "forward declaration" }
+
+C::C() : f() {} // { dg-error "invalid use|does not have" }
diff --git a/gcc/testsuite/g++.dg/parse/crash25.C b/gcc/testsuite/g++.dg/parse/crash25.C
new file mode 100644
index 00000000000..d7f20c62f26
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash25.C
@@ -0,0 +1,10 @@
+// PR c++/20536
+// Found by Wolfgang Wieser 03/2005.
+// { dg-do compile }
+
+struct yyguts_t
+{
+ class TestScanner* yyextra_r; // { dg-error "forward declaration" }
+};
+
+TestScanner::TestScanner() {} // { dg-error "invalid use" }
diff --git a/gcc/testsuite/g++.dg/parse/error11.C b/gcc/testsuite/g++.dg/parse/error11.C
index 6b3deec178a..0a8e2e4fc3d 100644
--- a/gcc/testsuite/g++.dg/parse/error11.C
+++ b/gcc/testsuite/g++.dg/parse/error11.C
@@ -50,4 +50,4 @@ template struct Foo<::B>; // { dg-error "cannot begin|alternate spelling" }
// On the first error message, an additional note about the use of
// -fpermissive should be present
-// { dg-error "-fpermissive" "" { target *-*-* } 18 }
+// { dg-error "-fpermissive" "-fpermissive" { target *-*-* } 18 }
diff --git a/gcc/testsuite/g++.dg/parse/error16.C b/gcc/testsuite/g++.dg/parse/error16.C
index afc790e072e..3dc58ad53c0 100644
--- a/gcc/testsuite/g++.dg/parse/error16.C
+++ b/gcc/testsuite/g++.dg/parse/error16.C
@@ -2,7 +2,7 @@
struct A
{
- struct B {}; // { dg-error "" }
+ struct B {}; // { dg-error "previous" }
};
-struct A::B{}; // { dg-error "" }
+struct A::B{}; // { dg-error "redefinition" }
diff --git a/gcc/testsuite/g++.dg/parse/error26.C b/gcc/testsuite/g++.dg/parse/error26.C
new file mode 100644
index 00000000000..6e2b897d92b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/error26.C
@@ -0,0 +1,12 @@
+// PR c++/20148
+// { dg-options "" }
+
+void foo()
+{
+ if (({int c[2];})) ; // { dg-error "\{\.\.\.\}" }
+}
+
+void bar()
+{
+ if (({})); // { dg-error "\{\.\.\.\}" }
+}
diff --git a/gcc/testsuite/g++.dg/parse/error27.C b/gcc/testsuite/g++.dg/parse/error27.C
new file mode 100644
index 00000000000..f52d3cecce6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/error27.C
@@ -0,0 +1,7 @@
+// PR c++/20152
+
+struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "previous definition" }
+struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "previous definition" }
+struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "" }
+struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "" }
+KrKDESelectionMode krKDESelectionMode;
diff --git a/gcc/testsuite/g++.dg/pascal-strings-1.C b/gcc/testsuite/g++.dg/pascal-strings-1.C
new file mode 100644
index 00000000000..50c52015ec4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pascal-strings-1.C
@@ -0,0 +1,44 @@
+/* APPLE LOCAL file pascal strings */
+/* Positive C++ test cases. */
+/* Origin: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do run } */
+/* { dg-options "-fpascal-strings" } */
+
+typedef __SIZE_TYPE__ size_t;
+extern "C" void abort (void);
+extern "C" size_t strlen (const char *s);
+
+const unsigned char *pascalStr1 = "\pHello, World!";
+const unsigned char *concat1 = "\pConcatenated" "string" "\pliteral";
+
+const unsigned char msg1[] = "\pHello"; /* ok */
+const unsigned char *msg2 = "\pHello"; /* ok */
+const signed char msg3[] = "\pHello"; /* ok */
+const char msg4[] = "\pHello"; /* ok */
+unsigned char msg5[] = "\pHello"; /* ok */
+signed char msg7[] = "\pHello"; /* ok */
+char msg8[] = "\pHello"; /* ok */
+
+int
+main (void)
+{
+ const unsigned char *pascalStr2 = "\pGood-bye!";
+
+ if (strlen ((const char *)pascalStr1) != 14)
+ abort ();
+ if (*pascalStr1 != 13)
+ abort (); /* the length byte does not include trailing null */
+
+ if (strlen ((const char *)pascalStr2) != 10)
+ abort ();
+ if (*pascalStr2 != 9)
+ abort ();
+
+ if (strlen ((const char *)concat1) != 26)
+ abort ();
+ if (*concat1 != 25)
+ abort ();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/pascal-strings-2.C b/gcc/testsuite/g++.dg/pascal-strings-2.C
new file mode 100644
index 00000000000..e74c67f89c7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pascal-strings-2.C
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file pascal strings */
+/* Negative C++ test cases. */
+/* Origin: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings" } */
+
+const wchar_t *pascalStr1 = L"\pHi!"; /* { dg-warning "unknown escape sequence" } */
+const wchar_t *pascalStr2 = L"Bye\p!"; /* { dg-warning "unknown escape sequence" } */
+
+const wchar_t *initErr0 = "\pHi"; /* { dg-error "cannot convert" } */
+const wchar_t initErr0a[] = "\pHi"; /* { dg-error "initialized from non-wide string" } */
+const wchar_t *initErr1 = "Bye"; /* { dg-error "cannot convert" } */
+const wchar_t initErr1a[] = "Bye"; /* { dg-error "initialized from non-wide string" } */
+
+const char *initErr2 = L"Hi"; /* { dg-error "cannot convert" } */
+const char initErr2a[] = L"Hi"; /* { dg-error "initialized from wide string" } */
+const signed char *initErr3 = L"Hi"; /* { dg-error "cannot convert" } */
+const signed char initErr3a[] = L"Hi"; /* { dg-error "initialized from wide string" } */
+const unsigned char *initErr4 = L"Hi"; /* { dg-error "cannot convert" } */
+const unsigned char initErr4a[] = L"Hi"; /* { dg-error "initialized from wide string" } */
+
+const char *pascalStr3 = "Hello\p, World!"; /* { dg-warning "unknown escape sequence" } */
+
+const char *concat2 = "Hi" "\pthere"; /* { dg-warning "unknown escape sequence" } */
+const char *concat3 = "Hi" "there\p"; /* { dg-warning "unknown escape sequence" } */
+
+const char *s2 = "\pGoodbye!"; /* { dg-error "invalid conversion" } */
+unsigned char *s3 = "\pHi!"; /* { dg-error "invalid conversion" } */
+char *s4 = "\pHi"; /* { dg-error "invalid conversion" } */
+signed char *s5 = "\pHi"; /* { dg-error "invalid conversion" } */
+const signed char *s6 = "\pHi"; /* { dg-error "invalid conversion" } */
+
+/* the maximum length of a Pascal literal is 255. */
+const unsigned char *almostTooLong =
+ "\p12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "123456789012345"; /* ok */
+const unsigned char *definitelyTooLong =
+ "\p12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "1234567890123456"; /* { dg-error "too long" } */
diff --git a/gcc/testsuite/g++.dg/pascal-strings-3.C b/gcc/testsuite/g++.dg/pascal-strings-3.C
new file mode 100644
index 00000000000..7c7cf8139ed
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pascal-strings-3.C
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file pascal strings */
+/* Ensure that there are no warnings or errors issued when a Pascal string is used to
+ initialize an array and the NUL terminator does not fit. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings" } */
+
+typedef unsigned char Str15[16];
+
+Str15 ggg = "\p012345678901234";
+Str15 hhh = "\p0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+int foo(void)
+{
+ Str15 sss = "\p012345678901234";
+ Str15 ttt = "\p0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/pascal-strings-4.C b/gcc/testsuite/g++.dg/pascal-strings-4.C
new file mode 100644
index 00000000000..ef336990455
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pascal-strings-4.C
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file pascal strings */
+/* Ensure that Pascal strings do not get confused with ordinary C strings when
+ -funsigned-char is being used. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings -funsigned-char" } */
+
+typedef unsigned char Str15[16];
+
+Str15 ggg = "\p012345678901234";
+Str15 hhh = "0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+int foo(void)
+{
+ Str15 sss = "\p012345678901234";
+ Str15 ttt = "0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/pch/debug-1.C b/gcc/testsuite/g++.dg/pch/debug-1.C
new file mode 100644
index 00000000000..ba221ef58b4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pch/debug-1.C
@@ -0,0 +1,6 @@
+/* APPLE LOCAL file bincl/eincl */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-g -fno-eliminate-unused-debug-symbols -I. -Winvalid-pch" } */
+#include "debug-1.H"
+typedef int myint;
+
diff --git a/gcc/testsuite/g++.dg/pch/debug-1.Hs b/gcc/testsuite/g++.dg/pch/debug-1.Hs
new file mode 100644
index 00000000000..949320dfede
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pch/debug-1.Hs
@@ -0,0 +1,4 @@
+/* APPLE LOCAL file bincl eincl */
+/* { dg-options "-g -fno-eliminate-unused-debug-symbols -I." } */
+#include <Carbon/Carbon.h>
+
diff --git a/gcc/testsuite/g++.dg/preserve-PPC-CR.C b/gcc/testsuite/g++.dg/preserve-PPC-CR.C
new file mode 100644
index 00000000000..38e76873ddd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/preserve-PPC-CR.C
@@ -0,0 +1,41 @@
+// APPLE LOCAL file preserve CR2 for save_world prologues
+// This testcase failed at -O2 due to a missing EH note describing the PowerPC Condition Register.
+// Thanks to Dale Johannesen.
+
+// { dg-do run }
+// { dg-options "-fpascal-strings" }
+#include <stdlib.h>
+#include <stdio.h>
+int tick = 1;
+int caught_x = 1;
+int h() { return 2; }
+void f()
+{ throw(3); }
+extern int h();
+void ff() {
+ bool xx = h() == 0;
+ if ( !xx ) {
+ try {
+ f();
+ } catch (float f) {
+ if (!xx) printf("%f\n", f);
+ }
+ }
+}
+int g(int y)
+{
+ bool x = h() != 0;
+ if ( x) {
+ try {
+ ff();
+ } catch (int ex) {
+ // if (x) printf("%d\n", ex);
+ if (x) { tick++; caught_x = ex; }
+ }}
+}
+main()
+{
+ g(3);
+ if (tick != 2 || caught_x != 3)
+ abort();
+}
diff --git a/gcc/testsuite/g++.dg/ss/one.C b/gcc/testsuite/g++.dg/ss/one.C
new file mode 100644
index 00000000000..b75a8ebcd74
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ss/one.C
@@ -0,0 +1,17 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Test simple use of symbol repository.
+ Include file one.h is supplied as one.ssh in this directory,
+ so that ss.exp can pick it up as candidate for making
+ repository. */
+/* { dg-do assemble } */
+
+#include "one.h"
+int main ()
+{
+ struct x_y_point a;
+ a.x = 0;
+ a.y = 0;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ss/one.ssh b/gcc/testsuite/g++.dg/ss/one.ssh
new file mode 100644
index 00000000000..b35ec2d1ce8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ss/one.ssh
@@ -0,0 +1,11 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Test simple use of symbol repository.
+ Part of one.c test. */
+
+struct x_y_point
+{
+ int x;
+ int y;
+};
diff --git a/gcc/testsuite/g++.dg/ss/one_part_2.C b/gcc/testsuite/g++.dg/ss/one_part_2.C
new file mode 100644
index 00000000000..2d6f73f8379
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ss/one_part_2.C
@@ -0,0 +1,12 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Test simple use of symbol repository.
+ Include file one.h is supplied as one.ssh in this directory,
+ so that ss.exp can pick it up as candidate for making
+ repository. */
+/* { dg-do assemble } */
+#include "one.h"
+extern int foo ()
+{
+}
diff --git a/gcc/testsuite/g++.dg/ss/ss-cmd1.c b/gcc/testsuite/g++.dg/ss/ss-cmd1.c
new file mode 100644
index 00000000000..3fb08a5be80
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ss/ss-cmd1.c
@@ -0,0 +1,9 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+/* Test command line option -grepository */
+/* { dg-do compile } */
+/* { dg-options "-gfull -fsave-repository=ss-cmd1-ss.o" } */
+int main()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ss/ss.exp b/gcc/testsuite/g++.dg/ss/ss.exp
new file mode 100644
index 00000000000..5b76de7cc31
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ss/ss.exp
@@ -0,0 +1,230 @@
+# Copyright (C) 2005 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 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.
+
+# GCC testsuite for symbol separation interaction,
+# that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib g++-dg.exp
+
+# Initialize `dg'.
+dg-init
+
+# Get checksum (first field of BINCL and EXCL stab information
+proc get_checksum {input_file search_string} {
+ global RESULT nshort
+
+ # Regular expression to extract hexadecimal word
+ set hexexp {[0-9a-fA-F]+}
+
+ # Do nm on input_file and grep for search_string
+ set tmp [remote_exec host "nm -ap $input_file"]
+ set status [lindex $tmp 0];
+ set output [lindex $tmp 1];
+
+ if {$status != 0} {
+ fail "$nshort test checksum"
+ } else {
+ pass "$nshort test checksum"
+ }
+
+ regexp $hexexp $output RESULT;
+
+ # Return check sum
+ return $RESULT
+}
+
+set old_dg_do_what_default "${dg-do-what-default}"
+
+# Main loop.
+foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.C]] {
+ global runtests torture_without_loops dg-do-what-default nshort
+
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $test] {
+ continue
+ }
+
+ # [file tail name] returns part of name after last /
+ set nshort "$subdir/[file tail $test]"
+ set short_bname "[file rootname [file tail $test]]"
+ set bname "[file rootname $test]"
+ set ss_exp_debug 0
+
+ # We don't try to use the loop-optimizing options, since they are highly
+ # unlikely to make any difference to CINFO.
+ foreach flags "[list {-gfull}]" {
+ verbose "Testing $nshort, $flags" 1
+
+ # Clean up
+ catch { file delete "$bname.h" }
+ catch { file delete "$bname.o" }
+ catch { file delete "$bname.h.o" }
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: various names"
+ puts "ss_exp_debug bname:"; puts $bname
+ puts "ss_exp_debug bname.ssh:"; puts $bname.ssh
+ puts "ss_exp_debug test:"; puts $test
+ puts "ss_exp_debug short_bname:"; puts $short_bname
+ }
+
+ # 1) compile foo.h to create foo.h.o
+ if { [ file exists "$bname.ssh" ] } {
+
+ # For the header files, the default is to make repository
+ set dg-do-what-default assemble
+
+ # Header files are supplied using .ssh extension, so that we can
+ # identify candidates for makeing symbol repository. Get header copy
+ # with .h here.
+ file copy -force "$bname.ssh" "$bname.h"
+ file copy -force "$bname.ssh" "$short_bname.h"
+
+ # Make repository
+ # This will create two output files $short_bname.h.o and PCH
+ dg-test -keep-output "$bname.h" $flags "-fsave-repository=$short_bname.h.o -x c++-header"
+
+ if { [ file exists "$short_bname.o" ] } {
+ file rename -force "$short_bname.h.o" "$bname.h.o"
+
+ puts "ss_exp_debug short_bname:"; puts $bname.h.o; puts $bname.h;
+ # Do nm on $bname.h.o and grep for "BINCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT1
+ set RESULT1 [get_checksum $bname.h.o "BINCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT1"; puts $RESULT1
+ }
+
+ pass "$nshort $flags Make Repository"
+ } else {
+ set RESULT1 " "
+ fail "$nshort $flags Make Repository"
+ }
+
+ if { [ file exists "$bname.h.o" ] } {
+
+ # 2) compile foo.c to create foo.o
+ dg-test -keep-output $test $flags "-I. "
+ if { [ file exists "$short_bname.o" ] } {
+
+ # Do nm on $bname.o and grep for "EXCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT2
+ set RESULT2 [get_checksum $short_bname.o "EXCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT2"; puts $RESULT2
+ }
+
+ pass "$nshort $flags Use symbol repository"
+
+ } else {
+ set RESULT2 " "
+ fail "$nshort $flags Use symbol repository"
+ }
+
+
+ if { [ file exists "$bname.part_2.c" ] } {
+
+ # 3) compile foo_part_2.c to create foo_part_2.o
+ dg-test -keep-output "$bname_part_2.c" $flags "-I. -grepository"
+ if { [ file exists "$short_bname_part_2.o" ] } {
+
+ # Do nm on $bname_part_2.o and grep for "EXCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT3
+ set RESULT3 [get_checksum $short_bname_part_2.o "EXCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT3"; puts $RESULT3
+ }
+
+ pass "$nshort $flags Use symbol repository"
+
+ } else {
+ set RESULT3 " "
+ fail "$nshort $flags Use symbol repository"
+ }
+
+ # 4) Link foo.h.o and foo.o to create foo
+ set dg-do-what-default link
+ dg-test -keep-output "$bname.h.o" "$bname.o" "-o $short_bname.out"
+
+ # 5) do 'nm |grep ' on final assembler and save result in RES4
+ # Do nm on $bname.out and grep for "EXCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT4
+ set RESULT4 [get_checksum $short_bname.out "EXCL $bname.h"]
+
+ # Do nm on $bname.out and grep for "BINCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT5
+ set RESULT5 [get_checksum $short_bname.out "BINCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT4"; puts $RESULT4
+ puts "ss_exp_debug: RESULT5"; puts $RESULT5
+ }
+
+ pass "$nshort $flags symbol separation: linking"
+
+ } else {
+
+ # If we are not testing second part then set values so that comparison test succeeds
+ set RESULT3 $RESULT2
+ set RESULT4 $RESULT2
+ set RESULT5 $RESULT2
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT3"; puts $RESULT3
+ puts "ss_exp_debug: RESULT4"; puts $RESULT4
+ puts "ss_exp_debug: RESULT5"; puts $RESULT5
+ }
+ }
+
+ # 6) Compare RES1 and RES2 and RES3 and RES4
+ if { ( $RESULT1 == $RESULT2 )
+ && ( $RESULT1 == $RESULT3 )
+ && ( $RESULT1 == $RESULT4 ) } {
+ pass "$nshort $flags symbol separation valid use test"
+ } else {
+ fail "$nshort $flags symbol separation valid use test"
+ }
+ if { ( $RESULT1 == $RESULT5 ) } {
+ pass "$nshort $flags symbol separation link test"
+ } else {
+ fail "$nshort $flags symbol separation link test"
+ }
+ pass "$nshort $flags Make repository"
+ } else {
+ fail "$nshort $flags Make repository"
+ }
+ } else {
+
+ # Normal test
+ set dg-do-what-default compile
+ dg-test -keep-output $test $flags "-I."
+ }
+
+ }
+
+ # Clean up
+ catch { file delete "$bname.h" }
+ catch { file delete "$bname.o" }
+ catch { file delete "$bname.h.o" }
+}
+
+set dg-do-what-default "$old_dg_do_what_default"
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/g++.dg/tc1/dr108.C b/gcc/testsuite/g++.dg/tc1/dr108.C
index f7848ec74b6..6b567a9fad5 100644
--- a/gcc/testsuite/g++.dg/tc1/dr108.C
+++ b/gcc/testsuite/g++.dg/tc1/dr108.C
@@ -12,4 +12,4 @@ template <class T> struct S {
};
// Additional notes on the same line are allowed
-// { dg-error "" "" { target *-*-* } 10 }
+// { dg-error "" "additional" { target *-*-* } 10 }
diff --git a/gcc/testsuite/g++.dg/template/array13.C b/gcc/testsuite/g++.dg/template/array13.C
new file mode 100644
index 00000000000..3bc152ce4f8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/array13.C
@@ -0,0 +1,14 @@
+// PR c++/20208
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern "C" void abort();
+
+template <typename T>
+inline void *Foo (T arg) { return &arg[0]; }
+
+int main () {
+ int bry[2];
+ if (Foo<int[2]>(bry) != bry)
+ abort();
+}
diff --git a/gcc/testsuite/g++.dg/template/crash34.C b/gcc/testsuite/g++.dg/template/crash34.C
new file mode 100644
index 00000000000..9cca62f0539
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash34.C
@@ -0,0 +1,12 @@
+// { dg-do compile }
+
+// PR c++/20028
+
+// We used to crash when referencing TYPE_SIZE_UNIT of the messed-up
+// type used for x, because it was not initialized.
+
+class Foo;
+
+template <typename T> class Foo { }; // { dg-error "not a template type" }
+
+Foo<int> x; // { dg-error "not a template" }
diff --git a/gcc/testsuite/g++.dg/template/crash35.C b/gcc/testsuite/g++.dg/template/crash35.C
new file mode 100644
index 00000000000..dd8aa2f0906
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash35.C
@@ -0,0 +1,9 @@
+// PR c++/20463
+// { dg-do compile }
+
+template <typename T> struct C; // { dg-error "declaration" }
+
+template <typename T> void C<T>::f() // { dg-error "invalid|template" }
+{
+ const foo bar; // { dg-error "name a type" }
+}
diff --git a/gcc/testsuite/g++.dg/template/crash36.C b/gcc/testsuite/g++.dg/template/crash36.C
new file mode 100644
index 00000000000..2f0ef921a67
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash36.C
@@ -0,0 +1,9 @@
+// { dg-do compile }
+
+// Origin: Ivan Godard <igodard@pacbell.net>
+// Andrew Pinski <pinskia@gcc.gnu.org>
+
+// PR c++/20333: ICE parsing typename without nested-name-specifier
+
+template<class> struct f {};
+f<int> f2[2] = {typename f<int>()}; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/template/dtor4.C b/gcc/testsuite/g++.dg/template/dtor4.C
new file mode 100644
index 00000000000..6d7cd2343f1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/dtor4.C
@@ -0,0 +1,9 @@
+// PR c++/19440
+// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+// { dg-do compile }
+
+template<int> struct A
+{
+ ~A<0>(); // { dg-error "declaration" }
+};
diff --git a/gcc/testsuite/g++.dg/template/error17.C b/gcc/testsuite/g++.dg/template/error17.C
new file mode 100644
index 00000000000..24b364455fd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/error17.C
@@ -0,0 +1,8 @@
+// PR c++/20153
+
+template <typename T>
+void
+foo()
+{
+ union { struct { }; }; // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/template/error18.C b/gcc/testsuite/g++.dg/template/error18.C
new file mode 100644
index 00000000000..7b7151a3b7f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/error18.C
@@ -0,0 +1,11 @@
+// PR c++/20157
+
+template<typename AT>
+struct A{
+ template<typename T>
+ void function(T);
+};
+
+template<>
+template<typename ABC,typename DEF>
+void A<int>::function(ABC); // { dg-error "match" }
diff --git a/gcc/testsuite/g++.dg/template/local4.C b/gcc/testsuite/g++.dg/template/local4.C
index 748810b409e..20f8bf29441 100644
--- a/gcc/testsuite/g++.dg/template/local4.C
+++ b/gcc/testsuite/g++.dg/template/local4.C
@@ -6,6 +6,6 @@ int main () {
struct S {};
// We do not simply use "local|match" on line 10 because we want to
// make sure that "local" appears.
- // { dg-error "local" "" { target *-*-* } 10 }
+ // { dg-error "local" "local" { target *-*-* } 10 }
foo<S> (); // { dg-error "trying|match" }
}
diff --git a/gcc/testsuite/g++.dg/template/local5.C b/gcc/testsuite/g++.dg/template/local5.C
new file mode 100644
index 00000000000..bd1d21bfaf2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/local5.C
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file mainline 4.1 2005-06-17 4122333 */
+struct Attribute { };
+
+template <class T> bool operator == (const Attribute &attr, const T &value);
+
+enum {
+ anon = 123
+};
+
+void test(int foo)
+{
+ if (foo == anon) ; /* { dg-bogus "anonymous type" } */
+}
diff --git a/gcc/testsuite/g++.dg/template/mem_func_ptr.C b/gcc/testsuite/g++.dg/template/mem_func_ptr.C
new file mode 100644
index 00000000000..bcdda5ca69d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/mem_func_ptr.C
@@ -0,0 +1,57 @@
+// { dg-do compile }
+template<typename T> struct takes_member_ptr;
+template<typename T, typename Class> struct takes_member_ptr<T Class::*> {};
+
+template<typename T, typename Class>
+void fun_takes_member_ptr(T Class::*) {}
+
+
+template<typename T> struct order_member_ptrs;
+template<typename T, typename Class> struct order_member_ptrs<T Class::*> {};
+template<typename R, typename T1, typename Class>
+ struct order_member_ptrs<R (Class::*)(T1)>
+ {
+ typedef int type;
+ };
+
+template<typename R, typename T1, typename Class>
+ struct order_member_ptrs<R (Class::*)(T1) const>
+ {
+ typedef int c_type;
+ };
+
+template<typename R, typename T1, typename Class>
+ struct order_member_ptrs<R (Class::*)(T1) volatile>
+ {
+ typedef int v_type;
+ };
+
+template<typename R, typename T1, typename Class>
+ struct order_member_ptrs<R (Class::*)(T1) const volatile>
+ {
+ typedef int cv_type;
+ };
+
+
+struct X {
+ void bar(float) {}
+ void bar_c(float) const {}
+ void bar_v(float) volatile {}
+ void bar_cv(float) const volatile {}
+};
+
+void foo()
+{
+ sizeof(takes_member_ptr<void (X::*)(float)>);
+ sizeof(takes_member_ptr<void (X::*)(float) const>);
+ sizeof(takes_member_ptr<void (X::*)(float) volatile>);
+ sizeof(takes_member_ptr<void (X::*)(float) const volatile>);
+ sizeof(order_member_ptrs<void (X::*)(float)>::type);
+ sizeof(order_member_ptrs<void (X::*)(float) const>::c_type);
+ sizeof(order_member_ptrs<void (X::*)(float) volatile>::v_type);
+ sizeof(order_member_ptrs<void (X::*)(float) const volatile>::cv_type);
+ fun_takes_member_ptr(&X::bar);
+ fun_takes_member_ptr(&X::bar_c);
+ fun_takes_member_ptr(&X::bar_v);
+ fun_takes_member_ptr(&X::bar_cv);
+}
diff --git a/gcc/testsuite/g++.dg/template/non-dependent11.C b/gcc/testsuite/g++.dg/template/non-dependent11.C
new file mode 100644
index 00000000000..dff5b909d95
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/non-dependent11.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+
+// Origin: Jakub Jelinek <jakub@gcc.gnu.org>
+// Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/19311: Non-dependent address to member as function argument.
+
+template <class R, class T> void foo (R (T::*x) ());
+template <class R, class T, class C> void foo (R (T::*x) (C));
+
+template<int> struct I {
+ int o ();
+ int o () const;
+};
+
+template <int> void bar (void) {
+ foo <int, I<1> > (&I<1>::o);
+}
diff --git a/gcc/testsuite/g++.dg/template/non-dependent12.C b/gcc/testsuite/g++.dg/template/non-dependent12.C
new file mode 100644
index 00000000000..73d7e949766
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/non-dependent12.C
@@ -0,0 +1,10 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 8 Mar 2005 <nathan@codesourcery.com>
+
+// PR 20186: ICE
+// Origin: Jan Dvorak <jan.dvorak@kraxnet.cz>
+
+template<typename T> void foo(T &t)
+{
+ int i = static_cast<int>(t);
+}
diff --git a/gcc/testsuite/g++.dg/template/nontype6.C b/gcc/testsuite/g++.dg/template/nontype6.C
index 43470ccdb1d..298ce82591c 100644
--- a/gcc/testsuite/g++.dg/template/nontype6.C
+++ b/gcc/testsuite/g++.dg/template/nontype6.C
@@ -13,7 +13,7 @@ template <class T>
void func(void)
{
(void)A<T>::type(); // { dg-error "if a type is meant" }
-// { dg-error "parsed as a non-type" "" { target *-*-* } 15 }
+// { dg-error "parsed as a non-type" "non-type" { target *-*-* } 15 }
}
template void func<float>(void); // { dg-error "instantiated from here" }
diff --git a/gcc/testsuite/g++.dg/template/overload4.C b/gcc/testsuite/g++.dg/template/overload4.C
new file mode 100644
index 00000000000..1a294eb3c05
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/overload4.C
@@ -0,0 +1,20 @@
+// PR c++/20679
+
+template <class T>
+struct foo
+{
+ struct bar
+ {
+ int m;
+ };
+
+ void m() const {}
+ void m() {}
+
+ bool n() const { return b->m < 42; }
+
+ bar *b;
+};
+
+
+
diff --git a/gcc/testsuite/g++.dg/template/ptrmem12.C b/gcc/testsuite/g++.dg/template/ptrmem12.C
new file mode 100644
index 00000000000..717b86988cb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ptrmem12.C
@@ -0,0 +1,29 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 17 Mar 2005 <nathan@codesourcery.com>
+
+// PR 20465
+// Origin: Matthias Klose <doko@debian.org>
+// Andrew Pinski <pinskia@gcc.gnu.org>
+
+template <class _Ret, class _Tp>
+void mem_fun_ref(_Ret (_Tp::*__f)());
+
+struct A {
+ double f();
+};
+
+void h ()
+{
+ mem_fun_ref(&A::f);
+}
+
+template <class T>
+void f()
+{
+ mem_fun_ref(&A::f);
+}
+
+void g()
+{
+ f<int>();
+}
diff --git a/gcc/testsuite/g++.dg/template/ptrmem13.C b/gcc/testsuite/g++.dg/template/ptrmem13.C
new file mode 100644
index 00000000000..84374ea05fc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ptrmem13.C
@@ -0,0 +1,11 @@
+// PR c++/20734
+
+struct A;
+void blah(int A::*);
+struct A{
+ int a;
+};
+template<typename T>
+void hoho(){
+ blah(&A::a);
+}
diff --git a/gcc/testsuite/g++.dg/template/qualttp15.C b/gcc/testsuite/g++.dg/template/qualttp15.C
index 1b1f3bb725d..0f97c32fcb8 100644
--- a/gcc/testsuite/g++.dg/template/qualttp15.C
+++ b/gcc/testsuite/g++.dg/template/qualttp15.C
@@ -17,8 +17,8 @@ template <class T> struct X<T::template B>
T z;
};
-template <class T> struct X<T::template B>
-{ // { dg-error "redefinition" }
+template <class T> struct X<T::template B> // { dg-error "redefinition" }
+{
T z;
};
diff --git a/gcc/testsuite/g++.dg/template/qualttp20.C b/gcc/testsuite/g++.dg/template/qualttp20.C
index 5a9c61c4304..ae20d762902 100644
--- a/gcc/testsuite/g++.dg/template/qualttp20.C
+++ b/gcc/testsuite/g++.dg/template/qualttp20.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-options "-pedantic -pedantic-errors" }
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 15 Dec 2001 <nathan@codesourcery.com>
@@ -16,7 +17,7 @@ struct AS
template <typename T> struct B1 : T
{
typedef typename T::L __restrict__ r;// { dg-error "'__restrict__' qualifiers cannot" "" }
- typedef typename T::myT __restrict__ p;// { dg-warning "ignoring '__restrict__'" "" { xfail *-*-* } }
+ typedef typename T::myT __restrict__ p;// { dg-error "ignoring '__restrict__'" }
// The following are DR 295 dependent
typedef typename T::myT volatile *myvolatile;
diff --git a/gcc/testsuite/g++.dg/template/redecl3.C b/gcc/testsuite/g++.dg/template/redecl3.C
new file mode 100644
index 00000000000..029f9e69a5f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/redecl3.C
@@ -0,0 +1,7 @@
+// PR c++/19980
+// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+// { dg-do compile }
+
+int foo; // { dg-error "previous declaration" }
+template<int> void foo() {} // { dg-error "redeclared" }
diff --git a/gcc/testsuite/g++.dg/template/sizeof9.C b/gcc/testsuite/g++.dg/template/sizeof9.C
new file mode 100644
index 00000000000..8d9ec95ae1f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/sizeof9.C
@@ -0,0 +1,6 @@
+// PR c++/21025
+
+template<int N> struct X { char x[N]; };
+template<typename T> X<1 + sizeof(T) - sizeof(T)> F(T const &);
+template<int N> struct S { int d() { F(1); } };
+
diff --git a/gcc/testsuite/g++.dg/template/templ-deref-1.C b/gcc/testsuite/g++.dg/template/templ-deref-1.C
new file mode 100644
index 00000000000..dba909a989b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/templ-deref-1.C
@@ -0,0 +1,68 @@
+/* APPLE LOCAL file C++ */
+/* It should be possible to be possible to explicitly call 'operator ...'
+ functions with an implicit 'this', so long as the base class is not
+ a dependent type. For dependent base types, 'this->' or 'Base::'
+ must be used. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+class Foo
+{
+ public:
+ void read(int i);
+};
+
+void Func(Foo* inFoo);
+
+void Foo::read(int i)
+{
+ i = i + 1;
+}
+
+class Baz
+{
+ public:
+ Baz(Foo* in) : fFoo(in) {}
+ operator Foo*() { return fFoo; }
+ Foo *foofoo(void) { return fFoo; }
+ Foo* fFoo;
+};
+
+template <class T> class Boop {
+ public:
+ Foo *booboo(void) { return gFoo; }
+ operator void *(void) { return (void *)gFoo; }
+ Foo *gFoo;
+};
+
+void Func(Foo* inFoo)
+{
+ inFoo->read(1);
+}
+
+template <class T> class Bar : public Baz, public Boop <T>
+{
+ public:
+ Bar(T *inFoo) : Baz(inFoo) {}
+ void CallMe()
+ {
+ void *p;
+ Func(this->foofoo());
+ Func(this->operator Foo*());
+ Func(this->booboo());
+ p = Boop<T>::operator void*();
+ Func(foofoo());
+ Func(operator Foo*());
+ Func(booboo()); /* { dg-error "must be available" } */
+ p = operator void *(); /* { dg-error "must be available" } */
+ }
+};
+
+int main (int argc, char * const argv[])
+{
+ Foo theFoo;
+ Bar<Foo> theBar(&theFoo);
+ theBar.CallMe();
+}
+
+/* { dg-error "allowing the use of an undeclared name is deprecated" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr19786.C b/gcc/testsuite/g++.dg/tree-ssa/pr19786.C
new file mode 100644
index 00000000000..faaecdfd971
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr19786.C
@@ -0,0 +1,48 @@
+// { dg-do run }
+/* { dg-options "-O2" } */
+
+// We used to get alias grouping wrong on this one, hoisting accesses
+// to the vector's end out of the loop.
+
+#include <vector>
+#include <cassert>
+
+struct A
+{
+ double unused; // If I remove it => it works.
+ std::vector<int> v;
+
+ A() : v(1) {}
+};
+
+inline // If not inline => it works.
+A g()
+{
+ A r;
+ r.v.resize(2);
+ r.v[0] = 1;
+
+ while (!r.v.empty() && r.v.back() == 0)
+ r.v.pop_back();
+
+ return r;
+}
+
+A f(const A &a)
+{
+ if (a.v.empty()) return a;
+ if (a.v.empty()) return a;
+
+ // A z = g(); return z; // If I return like this => it works.
+ return g();
+}
+
+int main()
+{
+ A a;
+ A b;
+ A r = f(a);
+ assert(r.v.size() != 0);
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr19952.C b/gcc/testsuite/g++.dg/tree-ssa/pr19952.C
new file mode 100644
index 00000000000..92d669c1415
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr19952.C
@@ -0,0 +1,24 @@
+/* PR 19952 */
+/* { dg-compile } */
+/* { dg-options "-ftree-vectorize -O2" } */
+
+int i;
+
+struct A
+{
+ ~A() { ++i; }
+};
+
+struct B
+{
+ A a;
+};
+
+void foo()
+{
+ for (int i=0; i<2; ++i)
+ {
+ B *p;
+ if (p) p->~B();
+ }
+}
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr20280.C b/gcc/testsuite/g++.dg/tree-ssa/pr20280.C
new file mode 100644
index 00000000000..ec4dad70620
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr20280.C
@@ -0,0 +1,63 @@
+// PR c++/20280
+
+// { dg-do compile }
+
+// Gimplification of the COND_EXPR used to fail because it had an
+// addressable type, and create_tmp_var rejected that.
+
+struct A
+{
+ ~A();
+};
+
+struct B : A {};
+
+A& foo();
+
+void bar(bool b)
+{
+ (B&) (b ? foo() : foo());
+}
+
+// Make sure bit-fields and addressable types don't cause crashes.
+// These were not in the original bug report.
+
+// Added by Alexandre Oliva <aoliva@redhat.com>
+
+// Copyright 2005 Free Software Foundation
+
+struct X
+{
+ long i : 32, j, k : 32;
+};
+
+void g(long&);
+void h(const long&);
+
+void f(X &x, bool b)
+{
+ (b ? x.i : x.j) = 1;
+ (b ? x.j : x.k) = 2;
+ (b ? x.i : x.k) = 3;
+
+ (void)(b ? x.i : x.j);
+ (void)(b ? x.i : x.k);
+ (void)(b ? x.j : x.k);
+
+ g (b ? x.i : x.j); // { dg-error "cannot bind bitfield" }
+ g (b ? x.i : x.k); // { dg-error "cannot bind bitfield" }
+ g (b ? x.j : x.k); // { dg-error "cannot bind bitfield" }
+
+ // It's not entirely clear whether these should be accepted. The
+ // conditional expressions are lvalues for sure, and 8.5.3/5 exempts
+ // lvalues for bit-fields, but it's not clear that conditional
+ // expressions that are lvalues and that have at least one possible
+ // result that is a bit-field lvalue meets this condition.
+ h (b ? x.i : x.j);
+ h (b ? x.i : x.k);
+ h (b ? x.j : x.k);
+
+ (long &)(b ? x.i : x.j); // { dg-error "address of bit-field" }
+ (long &)(b ? x.i : x.k); // { dg-error "address of bit-field" }
+ (long &)(b ? x.j : x.k); // { dg-error "address of bit-field" }
+}
diff --git a/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C b/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C
new file mode 100644
index 00000000000..41bbc919f65
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C
@@ -0,0 +1,86 @@
+/* APPLE LOCAL file mainline and 4.0 branch 2005-03-31 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* Test check use_block_copy bit propagation in sra element hierarchy. */
+
+typedef unsigned char UINT8 ;
+typedef unsigned int UINT ;
+class C4
+{
+public:
+ int xy[2];
+};
+
+class C3
+{
+public:
+ inline void
+ Reset()
+ {
+ C4 const mvMax = {0x7fff, 0x7fff};
+
+ m42(0,mvMax);
+ m42(1,mvMax);
+ m43(0);
+ };
+
+ inline void m42 (UINT i, C4 mv)
+ {
+ mMv[i] = mv;
+ };
+
+
+
+ inline void m43(UINT j)
+ {
+ m44 (j);
+ d41 = j + 1;
+ };
+
+private:
+
+ C4 mMv[2];
+ UINT8 d41;
+ inline void m44 (UINT j) const {};
+};
+
+class C2
+{
+private:
+ bool valid;
+};
+
+class C1
+{
+public:
+ void m1(C3 *c);
+
+private:
+ const C2 * d1[2];
+ void m2(C3 *m);
+};
+
+void C1::m1 (C3 *r)
+{
+ C3 x;
+ m2(&x);
+}
+void C1::m2(C3 *x)
+{
+ C3 m3;
+ int i;
+ m3.Reset ();
+ for(i=0; i<2; i++)
+ {
+ const C2 * r = d1[i];
+ if (r!=__null)
+ {
+ C4 const c400 = {0,0};
+ m3.m42 (i, c400);
+
+ }
+ }
+}
+
+
+
diff --git a/gcc/testsuite/g++.dg/vect/pr19951.cc b/gcc/testsuite/g++.dg/vect/pr19951.cc
new file mode 100644
index 00000000000..bb6586c0629
--- /dev/null
+++ b/gcc/testsuite/g++.dg/vect/pr19951.cc
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+
+struct A
+{
+ ~A();
+};
+
+void foo();
+
+void bar()
+{
+ A a;
+
+ foo();
+ for (;;)
+ foo();
+}
diff --git a/gcc/testsuite/g++.dg/vect/vect.exp b/gcc/testsuite/g++.dg/vect/vect.exp
new file mode 100644
index 00000000000..cc2e4e30364
--- /dev/null
+++ b/gcc/testsuite/g++.dg/vect/vect.exp
@@ -0,0 +1,95 @@
+# Copyright (C) 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 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.
+
+# GCC testsuite that uses the 'dg.exp' driver.
+
+# There's a bunch of headers we need.
+if [is_remote host] {
+ foreach header [glob -nocomplain $srcdir/$subdir/*.{h,def} ] {
+ remote_download host $header
+ }
+}
+
+# Load support procs.
+load_lib g++-dg.exp
+load_lib target-supports.exp
+
+# If the target system supports vector instructions, the default action
+# for a test is 'run', otherwise it's 'compile'. Save current default.
+# Executing vector instructions on a system without hardware vector support
+# is also disabled by a call to check_vect, but disabling execution here is
+# more efficient.
+global dg-do-what-default
+set save-dg-do-what-default ${dg-do-what-default}
+
+# Set up flags used for tests that don't specify options.
+set DEFAULT_VECTCFLAGS ""
+
+# These flags are used for all targets.
+lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \
+ "-ftree-vectorizer-verbose=3" "-fdump-tree-vect-stats"
+
+# Skip these tests for targets that do not support generating vector
+# code. Set additional target-dependent vector flags, which can be
+# overridden by using dg-options in individual tests.
+if [istarget "powerpc*-*-*"] {
+ # If there are powerpc targets to skip, do it here.
+
+ lappend DEFAULT_VECTCFLAGS "-maltivec"
+ if [check_vmx_hw_available] {
+ set dg-do-what-default run
+ } else {
+ if [is-effective-target ilp32] {
+ # Specify a cpu that supports VMX for compile-only tests.
+ lappend DEFAULT_VECTCFLAGS "-mcpu=7400"
+ }
+ set dg-do-what-default compile
+ }
+} elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
+ lappend DEFAULT_VECTCFLAGS "-msse2"
+ set dg-do-what-default run
+} elseif [istarget "mipsisa64*-*-*"] {
+ lappend DEFAULT_VECTCFLAGS "-mpaired-single"
+ set dg-do-what-default run
+} elseif [istarget "sparc*-*-*"] {
+ lappend DEFAULT_VECTCFLAGS "-mcpu=ultrasparc" "-mvis"
+ set dg-do-what-default run
+} elseif [istarget "alpha*-*-*"] {
+ lappend DEFAULT_VECTCFLAGS "-mmax"
+ if [check_alpha_max_hw_available] {
+ set dg-do-what-default run
+ } else {
+ set dg-do-what-default compile
+ }
+} elseif [istarget "ia64-*-*"] {
+ set dg-do-what-default run
+} else {
+ return
+}
+
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,cc,S} ]] \
+ "" $DEFAULT_VECTCFLAGS
+
+# Clean up.
+set dg-do-what-default ${save-dg-do-what-default}
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/g++.dg/warn/Wbraces2.C b/gcc/testsuite/g++.dg/warn/Wbraces2.C
new file mode 100644
index 00000000000..b51d5ca77b9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wbraces2.C
@@ -0,0 +1,15 @@
+// PR c++/20175
+// { dg-options "-Wmissing-braces" }
+int a[2][2] = { 0, 1, 2, 3 }; // { dg-warning "missing braces" }
+int b[2][2] = { { 0, 1 }, { 2, 3 } };
+int c[2][2] = { { { 0 }, 1 }, { 2, 3 } }; // { dg-error "brace-enclosed" }
+struct S { char s[6]; int i; };
+S d = { "hello", 1 };
+S e = { { "hello" }, 1 };
+S f = { { { "hello" } }, 1 }; // { dg-error "brace-enclosed" }
+S g = { 'h', 'e', 'l', 'l', 'o', '\0', 1 }; // { dg-warning "missing braces" }
+struct T { wchar_t s[6]; int i; };
+T i = { L"hello", 1 };
+T j = { { L"hello" }, 1 };
+T k = { { { L"hello" } }, 1 }; // { dg-error "brace-enclosed" }
+T l = { L'h', L'e', L'l', L'l', L'o', L'\0', 1 };// { dg-warning "missing braces" }
diff --git a/gcc/testsuite/g++.dg/warn/Wdtor1.C b/gcc/testsuite/g++.dg/warn/Wdtor1.C
new file mode 100644
index 00000000000..34c8a7edcad
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wdtor1.C
@@ -0,0 +1,22 @@
+// PR c++/20145
+// { dg-options "-Wnon-virtual-dtor" }
+# 1 "t.cc"
+# 1 "<built-in>"
+# 1 "<command line>"
+# 1 "t.cc"
+# 1 "include/t.h" 1 3 4
+// Declare the template with explicit C++ linkage in case system
+// headers have implicit C linkage.
+extern "C++" {
+template <int> class t
+{
+ virtual void f();
+};
+}
+# 2 "t.cc" 2
+
+void f(void)
+{
+ t<1> h;
+}
+
diff --git a/gcc/testsuite/g++.dg/warn/Wnvdtor.C b/gcc/testsuite/g++.dg/warn/Wnvdtor.C
new file mode 100644
index 00000000000..b04fdcbe6b1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wnvdtor.C
@@ -0,0 +1,10 @@
+// { dg-options "-Wnon-virtual-dtor" }
+
+extern "Java"
+{
+ class Foo
+ {
+ public:
+ virtual void bar( void);
+ };
+}
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-11.C b/gcc/testsuite/g++.dg/warn/Wunused-11.C
new file mode 100644
index 00000000000..4a151d24547
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wunused-11.C
@@ -0,0 +1,11 @@
+// PR c++/20212
+// { dg-options "-O2 -Wunused -Wextra" }
+
+template<int> void f(int);
+void g(int i)
+{
+ f<0>(i);
+}
+template<int> void f(int i __attribute__((unused)) )
+{}
+
diff --git a/gcc/testsuite/g++.dg/warn/deprecated.C b/gcc/testsuite/g++.dg/warn/deprecated.C
index 21b901af4f5..59dc3d67257 100644
--- a/gcc/testsuite/g++.dg/warn/deprecated.C
+++ b/gcc/testsuite/g++.dg/warn/deprecated.C
@@ -53,10 +53,10 @@ int func1()
int (*pf)() = f1; /* { dg-warning "'f1' is deprecated" "" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" "" } */
- /* { dg-warning "'y' is deprecated" "" { target *-*-* } 55 } */
- /* { dg-warning "'g2' is deprecated" "" { target *-*-* } 55 } */
- /* { dg-warning "'g3' is deprecated" "" { target *-*-* } 55 } */
- return f1(); /* { dg-warning "'f1' is deprecated" "" } */
+ /* { dg-warning "'y' is deprecated" "y" { target *-*-* } 55 } */
+ /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } 55 } */
+ /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } 55 } */
+ return f1(); /* { dg-warning "'f1' is deprecated" "f1" } */
}
int func2(S1 *p)
@@ -71,7 +71,7 @@ int func2(S1 *p)
p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'u2' is deprecated" "" } */
return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated" "" } */
- /* { dg-warning "'field8' is deprecated" "" { target *-*-* } 73 } */
+ /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */
}
struct SS1 {
diff --git a/gcc/testsuite/g++.dg/warn/minmax.C b/gcc/testsuite/g++.dg/warn/minmax.C
new file mode 100644
index 00000000000..7431bfc3c4e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/minmax.C
@@ -0,0 +1,15 @@
+int i, j, k;
+
+void f() {
+ i = j <? k; // { dg-warning "deprecated" }
+ i = j >? k; // { dg-warning "deprecated" }
+ i <?= j; // { dg-warning "deprecated" }
+ i >?= j; // { dg-warning "deprecated" }
+}
+
+struct S {
+ void operator<?(int); // { dg-warning "deprecated" }
+ void operator>?(int); // { dg-warning "deprecated" }
+ void operator<?=(int); // { dg-warning "deprecated" }
+ void operator>?=(int); // { dg-warning "deprecated" }
+};
diff --git a/gcc/testsuite/g++.dg/warn/weak1.C b/gcc/testsuite/g++.dg/warn/weak1.C
index 84d08fbd479..034716accce 100644
--- a/gcc/testsuite/g++.dg/warn/weak1.C
+++ b/gcc/testsuite/g++.dg/warn/weak1.C
@@ -1,5 +1,7 @@
+// The PA HP-UX dynamic loader doesn't support unsatisfied weak symbols.
// { dg-do run }
// { dg-require-weak "" }
+// { dg-skip-if "No unsat" { hppa*-*-hpux* } { "*" } { "" } }
extern void foo (void) __attribute__ ((weak));
diff --git a/gcc/testsuite/g++.old-deja/g++.abi/align.C b/gcc/testsuite/g++.old-deja/g++.abi/align.C
index 28d3ba9ce86..09b5667ddef 100644
--- a/gcc/testsuite/g++.old-deja/g++.abi/align.C
+++ b/gcc/testsuite/g++.old-deja/g++.abi/align.C
@@ -1,4 +1,5 @@
-// { dg-do run { target i?86-*-linux* i?86-*-freebsd* } }
+// APPLE LOCAL why is this local?
+// { dg-do run { target i?86-*-linux* i?86-*-freebsd* i?86-*-darwin* } }
// { dg-options "-malign-double" }
// Origin: Alex Samuel <samuel@codesourcery.com>
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C
index 9423ac1269b..775a37ca33d 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C
@@ -3,12 +3,13 @@
struct A {
operator int ();
- A& operator= (int); // { dg-warning "" } not used below
+ A& operator= (int);
};
+int
main()
{
A a, b;
- a = b; // { dg-warning "" } uses synthesized op=
+ a = b;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pascal.C b/gcc/testsuite/g++.old-deja/g++.mike/pascal.C
new file mode 100644
index 00000000000..e1d6fe342a7
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.mike/pascal.C
@@ -0,0 +1,5 @@
+// APPLE LOCAL file pascal strings
+// { dg-do compile }
+// { dg-options "-fpascal-strings -save-temps" }
+
+const unsigned char * cucp = "\pHi";
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
index cb7d567f659..6972b58b6a7 100644
--- a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
+++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
@@ -1,3 +1,12 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-04 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/19199
+ * expr2.C: Fixed.
+
2003-06-04 J"orn Rennecke <joern.rennecke@superh.com>
* template1.C (bar): Remove xfail marker.
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C b/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C
index dd364accfa4..1e63c645b6c 100644
--- a/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C
+++ b/gcc/testsuite/g++.old-deja/g++.oliva/expr2.C
@@ -1,4 +1,4 @@
-// { dg-do run { xfail *-*-* } }
+// { dg-do run }
// Copyright (C) 2000 Free Software Foundation
diff --git a/gcc/testsuite/g++.old-deja/g++.other/struct1.C b/gcc/testsuite/g++.old-deja/g++.other/struct1.C
index f4fa322bd1f..b1f943f604f 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/struct1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/struct1.C
@@ -9,34 +9,34 @@
class Y
{ // { dg-error "" } previous definition
};
-class Y
-{ // { dg-error "" } redefinition
+class Y // { dg-error "" } redefinition
+{
};
template<class T> class X
{ // { dg-error "" } previous definition
};
-template<class T> class X
-{ // { dg-error "" } redefinition
+template<class T> class X // { dg-error "" } redefinition
+{
};
template<class T> class X<T *>
{ // { dg-error "" } previous definition
};
-template<class T> class X<T *>
-{ // { dg-error "" } redefinition
+template<class T> class X<T *> // { dg-error "" } redefinition
+{
};
template<> class X<int>
{ // { dg-error "" } previous definition
};
-template<> class X<int>
-{ // { dg-error "" } redefinition
+template<> class X<int> // { dg-error "" } redefinition
+{
};
template<> class X<int *>
{ // { dg-error "" } previous definition
};
-template<> class X<int *>
-{ // { dg-error "" } redefinition
+template<> class X<int *> // { dg-error "" } redefinition
+{
};
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C
index 4b7d5f9f572..54e975edab6 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C
@@ -14,4 +14,4 @@ struct Null {
int *pd = NULL;
int (*pf)() = NULL;
int Null::*pmd = NULL;
-int (Null::*pmf)() = NULL; // { dg-bogus "" "" { xfail *-*-* } } - cannot convert -
+int (Null::*pmf)() = NULL;
diff --git a/gcc/testsuite/g++.old-deja/g++.warn/compare1.C b/gcc/testsuite/g++.old-deja/g++.warn/compare1.C
index 5407c936057..7a231801bfa 100644
--- a/gcc/testsuite/g++.old-deja/g++.warn/compare1.C
+++ b/gcc/testsuite/g++.old-deja/g++.warn/compare1.C
@@ -1,5 +1,5 @@
// { dg-do assemble }
-// { dg-options "-ansi -pedantic-errors -Wsign-compare" }
+// { dg-options "-ansi -pedantic-errors -Wsign-compare -Wno-deprecated" }
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5/13/2001
diff --git a/gcc/testsuite/gcc.apple/4090661.c b/gcc/testsuite/gcc.apple/4090661.c
new file mode 100644
index 00000000000..b460b46243c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/4090661.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file 4090661 */
+/* { dg-do compile { target "*-*-darwin*" } } */
+const char c29[] = "12345678901234567890123456789";
+const char c30[] = "123456789012345678901234567890";
+const char c31[] = "1234567890123456789012345678901";
+const char *p29 = "12345678901234567890123456789";
+const char *p30 = "123456789012345678901234567890";
+const char *p31 = "1234567890123456789012345678901";
+/* { dg-final { scan-assembler-not "align 5" } } */
diff --git a/gcc/testsuite/gcc.apple/4100712.c b/gcc/testsuite/gcc.apple/4100712.c
new file mode 100644
index 00000000000..7298a3fa7c4
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/4100712.c
@@ -0,0 +1,37 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+void foo(void *pdst, short i, double *sp,
+ short xsize, short dorder, short strided)
+{
+ unsigned short *dp = (unsigned short*)pdst + i*strided;
+ short j, k;
+ if (strided == xsize)
+ {
+ for (j = 0; j < (xsize << dorder); j++)
+ {
+ double x = sp[2*j];
+ if (x >= (32767 * 2 + 1))
+ x = (32767 * 2 + 1);
+ if (x <= 0) x
+ = 0;
+ dp[j] = (short) x;
+ }
+ }
+ else
+ {
+ for (k = 0; k < (1 << dorder); k++)
+ {
+ for (j = 0; j < xsize; j++)
+ {
+ double x = sp[2*j];
+ if (x >= (32767 * 2 + 1))
+ x = (32767 * 2 + 1);
+ if (x <= 0)
+ x = 0;
+ dp[j] = (short) x;
+ }
+ sp += 2*xsize;
+ dp += strided;
+ }
+ }
+}
diff --git a/gcc/testsuite/gcc.apple/4101687.c b/gcc/testsuite/gcc.apple/4101687.c
new file mode 100644
index 00000000000..0655cb0e0f2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/4101687.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file 4101687 */
+/* { dg-do run } */
+/* { dg-options "-Os" } */
+#include <stdlib.h>
+
+void
+fill(char *buf)
+{
+ int i;
+
+ for (i = 0; i < 16; i++) {
+ buf[i+i] = 2;
+ buf[i+i+1] = 3;
+ }
+ buf[i+i] = '\0';
+}
+
+int main()
+{
+ char buf[33];
+
+ fill(buf);
+ if (buf[16] == '\0')
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/4102133.c b/gcc/testsuite/gcc.apple/4102133.c
new file mode 100644
index 00000000000..90d13c77f0b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/4102133.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file 4102133 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+struct {
+int k_;
+} detwfn_;
+struct {
+double x_[1];
+} fmcom_;
+void gciprt_(int *iw_)
+{
+int Tmp8, ibcon_, iwrk_, ibo_, jstsym_, lcivec_, iacon_, igmul_;
+int i_, nsym_, ipica_, ipicb_;
+ibo_ = iwrk_ + 43;
+Tmp8 = detwfn_.k_;
+for(i_ = 1;i_ <= Tmp8;i_++) {
+ gcisym_(iw_,&fmcom_.x_[lcivec_ + -1],&fmcom_.x_[ipica_ + -1],&fmcom_.x_[ipicb_ + -1],
+ &fmcom_.x_[iacon_ + -1],&fmcom_.x_[ibcon_ + -1],&fmcom_.x_[igmul_ + -1],&nsym_,
+ &fmcom_.x_[iwrk_ + -1],&fmcom_.x_[ibo_ + -1],&jstsym_);
+}
+return ;
+}
diff --git a/gcc/testsuite/gcc.apple/4104248.c b/gcc/testsuite/gcc.apple/4104248.c
new file mode 100644
index 00000000000..5cbf564f3d7
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/4104248.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file 4104248 */
+/* { dg-do compile { target "i?86*-*-darwin*" } }
+/* { dg-options "-Os" } */
+register char foo asm("edi");
+char x;
+int bar() {
+ foo = x;
+}
+/* { dg-final { scan-assembler "movzbl" } } */
diff --git a/gcc/testsuite/gcc.apple/4113078.c b/gcc/testsuite/gcc.apple/4113078.c
new file mode 100644
index 00000000000..37ff9d76948
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/4113078.c
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file 4113078 */
+/* Check that stack alignment is correct when callee inlined function uses
+ a vector and caller does not. */
+/* { dg-do compile { target i?86-*-darwin* } } */
+/* { dg-options "-O2 -msse3 -march=pentium4 -march=prescott" } */
+#include <xmmintrin.h>
+extern void bar(__m128i*);
+__m128i *global;
+static void vfunc(void) {
+ volatile __m128i xone = _mm_cvtsi32_si128(0x00010001);
+ global = (__m128i*)&xone;
+}
+void baz() {
+ int x;
+ vfunc();
+}
+/* { dg-final { scan-assembler "\\-24\\(\\%ebp\\)" } } */
diff --git a/gcc/testsuite/gcc.apple/Wextra-tokens.c b/gcc/testsuite/gcc.apple/Wextra-tokens.c
new file mode 100644
index 00000000000..08b3cb7745c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/Wextra-tokens.c
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file -Wextra-tokens */
+/* Lifted from gcc.dg/cpp/extratokens2.c. */
+/* Copyright (C) 2002 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-fno-show-column -Wextra-tokens" } */
+
+/* Tests that -Wextra-tokens correctly enables the checks
+ that are disabled by default. */
+
+#if 1
+#if 0
+#else foo /* { dg-warning "extra tokens" "bad warning" } */
+#endif / /* { dg-warning "extra tokens" "bad warning" } */
+#endif
+
+# 36 "file.c" 3
+
+/* ... but in a system header, it's acceptable. */
+#ifdef KERNEL
+#endif KERNEL /* { dg-bogus "extra tokens" "bad warning" } */
diff --git a/gcc/testsuite/gcc.apple/Wfour-char-constants-1.c b/gcc/testsuite/gcc.apple/Wfour-char-constants-1.c
new file mode 100644
index 00000000000..536396454b7
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/Wfour-char-constants-1.c
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file -Wfour-char-constants */
+/* We warn by default on Darwin, so no specific option needed. */
+
+/* { dg-do compile { target "*-*-darwin*" } } */
+/* { dg-options "" } */
+
+int glob1 = 'a';
+int glob2 = 'ab'; /* { dg-warning "multi-character character constant" } */
+int glob3 = 'abc'; /* { dg-warning "multi-character character constant" } */
+int glob4 = 'abcd'; /* say nothing */
+int glob5 = 'abcde'; /* { dg-warning "character constant too long" } */
+
diff --git a/gcc/testsuite/gcc.apple/Wfour-char-constants-2.c b/gcc/testsuite/gcc.apple/Wfour-char-constants-2.c
new file mode 100644
index 00000000000..14115ba6fea
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/Wfour-char-constants-2.c
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file -Wfour-char-constants */
+/* Explicitly enable the warning. */
+
+/* { dg-do compile } */
+/* { dg-options "-Wfour-char-constants" } */
+
+int glob1 = 'a';
+int glob2 = 'ab'; /* { dg-warning "multi-character character constant" } */
+int glob3 = 'abc'; /* { dg-warning "multi-character character constant" } */
+int glob4 = 'abcd'; /* { dg-warning "multi-character character constant" } */
+int glob5 = 'abcde'; /* { dg-warning "character constant too long" } */
+
diff --git a/gcc/testsuite/gcc.apple/Wmost.c b/gcc/testsuite/gcc.apple/Wmost.c
new file mode 100644
index 00000000000..6e1d3342539
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/Wmost.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file -Wmost */
+
+/* { dg-do compile } */
+/* { dg-options "-Wmost" } */
+
+int baz (void);
+
+int
+foo ()
+{
+ int loc;
+
+ bar (); /* { dg-warning "implicit declaration" } */
+
+ if (loc = baz ()) /* be quiet about this */
+ return 1;
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/Wno-newline-1.c b/gcc/testsuite/gcc.apple/Wno-newline-1.c
new file mode 100644
index 00000000000..44eab6e533c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/Wno-newline-1.c
@@ -0,0 +1,3 @@
+/* Test no newline at eof warning. */
+/* { dg-do compile } */
+int main() { return 0; } \ No newline at end of file
diff --git a/gcc/testsuite/gcc.apple/Wno-newline-2.c b/gcc/testsuite/gcc.apple/Wno-newline-2.c
new file mode 100644
index 00000000000..74acf1afa68
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/Wno-newline-2.c
@@ -0,0 +1,4 @@
+/* Test no newline at eof warning. */
+/* { dg-do compile } */
+/* { dg-options "-Wnewline-eof" } */
+int main() { return 0; } /* { dg-warning "no newline" } */ \ No newline at end of file
diff --git a/gcc/testsuite/gcc.apple/align-func.c b/gcc/testsuite/gcc.apple/align-func.c
new file mode 100644
index 00000000000..0633cbc2277
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-func.c
@@ -0,0 +1,4 @@
+/* APPLE LOCAL file 4096997 */
+/* { dg-do compile } */
+/* { dg-options "-falign-functions=4" } */
+main() {}
diff --git a/gcc/testsuite/gcc.apple/align-test-1.c b/gcc/testsuite/gcc.apple/align-test-1.c
new file mode 100644
index 00000000000..e8493c0e260
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-1.c
@@ -0,0 +1,613 @@
+/* APPLE LOCAL file Macintosh alignment */
+
+/* { dg-do run } */
+/* { dg-options "-Wno-long-long" } */
+
+/*
+ * Macintosh compiler alignment test for C.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+/* === basic types === */
+
+typedef struct B1 {
+ char f1;
+ UINT8 f2;
+} B1;
+
+typedef struct B2 {
+ short f1;
+ UINT8 f2;
+} B2;
+
+typedef struct B3 {
+ long f1;
+ UINT8 f2;
+} B3;
+
+typedef struct B4 {
+ int f1;
+ UINT8 f2;
+} B4;
+
+typedef struct B5 {
+ float f1;
+ UINT8 f2;
+} B5;
+
+/* doubles, long longs, and vectors are treated separately below. */
+
+/* === enums === */
+
+typedef enum E1 {
+ e1_b = 0,
+ e1_e = 255
+} E1;
+
+typedef enum E2 {
+ e2_b = -256,
+ e2_e = 255
+} E2;
+
+typedef enum E3 {
+ e3_b = 0,
+ e3_e = 32767
+} E3;
+
+typedef enum E4 {
+ e4_b = 0,
+ e4_e = 65536
+} E4;
+
+/* === pointers === */
+
+typedef struct P1 {
+ char * f1;
+ UINT8 f2;
+} P1;
+
+typedef struct P2 {
+ long * f1;
+ UINT8 f2;
+} P2;
+
+typedef struct P3 {
+ double * f1;
+ UINT8 f2;
+} P3;
+
+typedef struct P4 {
+ long long * f1;
+ UINT8 f2;
+} P4;
+
+typedef struct P5 {
+ void (* f1) (void);
+ UINT8 f2;
+} P5;
+
+#ifdef __VEC__
+typedef struct P61 {
+ vector signed short * f1;
+ UINT8 f2;
+} P6;
+#endif
+
+/* === vectors === */
+
+#ifdef __VEC__
+typedef struct V1 {
+ vector signed short f1;
+ UINT8 f2;
+} V1;
+
+typedef struct V2 {
+ V1 f1;
+ UINT8 f2;
+} V2;
+
+typedef struct V3 {
+ UINT8 f1;
+ vector signed short f2;
+} V3;
+
+typedef struct V4 {
+ V3 f1;
+ UINT8 f2;
+} V4;
+#endif
+
+/* === doubles === */
+
+typedef struct D1 {
+ double f1;
+ UINT8 f2;
+} D1;
+
+typedef struct D2 {
+ D1 f1;
+ UINT8 f2;
+} D2;
+
+typedef struct D3 {
+ UINT8 f1;
+ double f2;
+} D3;
+
+typedef struct D4 {
+ D3 f1;
+ UINT8 f2;
+} D4;
+
+typedef struct D5 {
+ UINT8 f1;
+ D3 f2;
+} D5;
+
+typedef struct D6 {
+ double f1;
+ UINT8 f2;
+ double f3;
+} D6;
+
+typedef struct D7 {
+ UINT8 f1;
+ D1 f2;
+} D7;
+
+/* === long longs === */
+
+typedef struct LL1 {
+ long long f1;
+ UINT8 f2;
+} LL1;
+
+typedef struct LL2 {
+ LL1 f1;
+ UINT8 f2;
+} LL2;
+
+typedef struct LL3 {
+ UINT8 f1;
+ long long f2;
+} LL3;
+
+typedef struct LL4 {
+ LL3 f1;
+ UINT8 f2;
+} LL4;
+
+typedef struct LL5 {
+ UINT8 f1;
+ LL3 f2;
+} LL5;
+
+/* === arrays === */
+
+typedef struct A1 {
+ short f1[4];
+ UINT8 f2;
+} A1;
+
+typedef struct A2 {
+ A1 f1;
+ UINT8 f2;
+} A2;
+
+typedef struct A3 {
+ double f1[4];
+ UINT8 f2;
+} A3;
+
+typedef struct A4 {
+ A3 f1;
+ UINT8 f2;
+} A4;
+
+typedef struct A5 {
+ long long f1[4];
+ UINT8 f2;
+} A5;
+
+typedef struct A6 {
+ A5 f1;
+ UINT8 f2;
+} A6;
+
+#ifdef __VEC__
+typedef struct A7 {
+ vector signed short f1[4];
+ UINT8 f2;
+} A7;
+
+typedef struct A8 {
+ A7 f1;
+ UINT8 f2;
+} A8;
+#endif
+
+typedef struct A9 {
+ D1 f1[4];
+ UINT8 f2;
+} A9;
+
+typedef struct A10 {
+ A9 f1;
+ UINT8 f2;
+} A10;
+
+/* === unions === */
+
+typedef union U1 {
+ UINT8 f1;
+ double f2;
+} U1;
+
+typedef struct U2 {
+ U1 f1;
+ UINT8 f2;
+} U2;
+
+typedef union U3 {
+ UINT8 f1;
+ long long f2;
+} U3;
+
+typedef struct U4 {
+ U3 f1;
+ UINT8 f2;
+} U4;
+
+#ifdef __VEC__
+typedef union U5 {
+ UINT8 f1;
+ vector signed short f2;
+} U5;
+
+typedef struct U6 {
+ U5 f1;
+ UINT8 f2;
+} U6;
+#endif
+
+typedef union U7 {
+ UINT8 f1;
+ short f2[4];
+} U7;
+
+typedef struct U8 {
+ U7 f1;
+ UINT8 f2;
+} U8;
+
+/* === misc === */
+
+typedef struct { /* unnamed struct */
+ long long f1;
+ UINT8 f2;
+} M0;
+
+typedef struct M1 {
+ UINT8 f1[8];
+} M1;
+
+typedef struct M2 {
+ M1 f1;
+ UINT8 f2;
+} M2;
+
+typedef struct M3 {
+ UINT8 f1;
+ M1 f2;
+} M3;
+
+typedef struct M4 { /* M4 & M5: see corresponding mac68k tests (M68K11 & M68K12) */
+ UINT8 f1[9];
+} M4;
+
+typedef struct M5 {
+ UINT8 f1;
+ M4 f2;
+} M5;
+
+/* === mac68k === */
+
+#ifndef __LP64__
+#pragma options align=mac68k
+
+typedef struct M68K0 {
+ long f1;
+ UINT8 f2;
+} M68K0;
+
+typedef struct M68K1 {
+ double f1;
+ UINT8 f2;
+} M68K1;
+
+#pragma options align=reset
+
+typedef struct M68K2 {
+ M68K1 f1;
+ UINT8 f2;
+} M68K2;
+
+#ifdef __VEC__
+#pragma options align=mac68k
+
+typedef struct M68K3 {
+ vector signed short f1;
+ UINT8 f2;
+} M68K3;
+
+typedef struct M68K4 {
+ M68K3 f1;
+ UINT8 f2;
+} M68K4;
+
+#pragma options align=reset
+
+typedef struct M68K5 {
+ M68K3 f1;
+ UINT8 f2;
+} M68K5;
+
+#pragma options align=mac68k
+
+typedef struct M68K6 {
+ UINT8 f1;
+ vector signed short f2;
+} M68K6;
+
+#pragma options align=reset
+#endif /* __VEC__ */
+
+#pragma options align=mac68k
+
+typedef struct M68K7 {
+ UINT8 f1;
+} M68K7;
+
+typedef union M68K8 {
+ UINT8 f1;
+} M68K8;
+
+typedef struct M68K9 {
+ UINT8 f1;
+ int f2;
+ UINT8 f3;
+} M68K9;
+
+#pragma options align=reset
+
+typedef struct M68K10 {
+ UINT8 f1;
+ M68K9 f2;
+} M68K10;
+
+#pragma options align=mac68k
+
+typedef struct M68K11 { /* M68K11 & M68K12: see corresponding power tests (M4 & M5) */
+ UINT8 f1[9];
+} M68K11;
+
+typedef struct M68K12 {
+ UINT8 f1;
+ M68K11 f2;
+} M68K12;
+
+typedef struct M68K13 {
+ UINT8 f1;
+ UINT8 f2[5];
+} M68K13;
+
+#pragma options align=reset
+#endif /* n __LP64__ */
+
+static void check(char * rec_name, int actual, int expected32, int expected64,
+ int expected_ia32, char * comment)
+{
+ int expected;
+#ifdef __i386__
+ expected = expected_ia32;
+#else
+ expected = ((sizeof(char *) == 8) ? expected64 : expected32);
+#endif
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ /* === basic data types === */
+
+ check(Q(sizeof(char)), 1, 1, 1, "char data type");
+ check(Q(sizeof(signed char)), 1, 1, 1, "signed char data type");
+ check(Q(sizeof(unsigned char)), 1, 1, 1, "unsigned char data type");
+ check(Q(sizeof(short)), 2, 2, 2, "short data type");
+ check(Q(sizeof(signed short)), 2, 2, 2, "signed short data type");
+ check(Q(sizeof(unsigned short)), 2, 2, 2, "unsigned short data type");
+ check(Q(sizeof(long)), 4, 8, 4, "short long type");
+ check(Q(sizeof(signed long)), 4, 8, 4, "signed long data type");
+ check(Q(sizeof(unsigned long)), 4, 8, 4, "unsigned long data type");
+ check(Q(sizeof(int)), 4, 4, 4, "short int type");
+ check(Q(sizeof(signed int)), 4, 4, 4, "signed int data type");
+ check(Q(sizeof(unsigned int)), 4, 4, 4, "unsigned int data type");
+ check(Q(sizeof(float)), 4, 4, 4, "float type");
+ check(Q(sizeof(double)), 8, 8, 8, "double data type");
+ check(Q(sizeof(long long)), 8, 8, 8, "long long data type");
+ check(Q(sizeof(signed long long)), 8, 8, 8, "signed long long data type");
+ check(Q(sizeof(unsigned long long)), 8, 8, 8, "unsigned long long data type");
+
+ check(Q(sizeof(B1)), 2, 2, 2, "char as 1st field");
+ check(Q(sizeof(B2)), 4, 4, 4, "short as 1st field");
+ check(Q(sizeof(B3)), 8, 16, 8, "long as 1st field");
+ check(Q(sizeof(B4)), 8, 8, 8, "int as 1st field");
+ check(Q(sizeof(B5)), 8, 8, 8, "float as 1st field");
+
+ /* === enums === */
+
+ check(Q(sizeof(E1)), 4, 4, 4, "enum with range 0..255");
+ check(Q(sizeof(E2)), 4, 4, 4, "enum with range -256..255");
+ check(Q(sizeof(E3)), 4, 4, 4, "enum with range 0..32767");
+ check(Q(sizeof(E4)), 4, 4, 4, "enum with range 0..65536");
+
+ /* === pointers === */
+
+ check(Q(sizeof(P1)), 8, 16, 8, "char * as 1st field");
+ check(Q(sizeof(P2)), 8, 16, 8, "long * as 1st field");
+ check(Q(sizeof(P3)), 8, 16, 8, "double * as 1st field");
+ check(Q(sizeof(P4)), 8, 16, 8, "long long * as 1st field");
+ check(Q(sizeof(P5)), 8, 16, 8, "function * as 1st field");
+
+#ifdef __VEC__
+ check(Q(sizeof(P6)), 8, 16, 8, "vector signed short * as 1st field");
+#endif
+
+#ifdef __VEC__
+ /* === vectors === */
+
+ /* ??? Do we want to test all the possible vector data types? ??? */
+ check(Q(sizeof(vector signed short)), 16, 16, 16, "vector signed short data type");
+
+ check(Q(sizeof(V1)), 32, 32, 32, "vector as 1st field");
+ check(Q(sizeof(V2)), 48, 48, 48, "embedding struct with vector as 1st field");
+ check(Q(sizeof(V3)), 32, 32, 32, "vector as 2nd field");
+ check(Q(offsetof(V3, f2)), 16, 16, 16, "offset of vector as 2nd field");
+ check(Q(sizeof(V4)), 48, 48, 48, "embedding struct with vector as 2nd field");
+#endif
+
+ /* === doubles === */
+
+ check(Q(sizeof(D1)), 16, 16, 12, "double as 1st field");
+ check(Q(sizeof(D2)), 24, 24, 16, "embedding struct with double as 1st field");
+ check(Q(sizeof(D3)), 12, 16, 12, "double as 2nd field");
+ check(Q(offsetof(D3, f2)), 4, 8, 4, "offset of double as 2nd field");
+ check(Q(sizeof(D4)), 16, 24, 16, "embedding struct with double as 2nd field");
+ check(Q(sizeof(D5)), 16, 24, 16, "struct with double as 2nd field");
+ check(Q(offsetof(D5, f2)), 4, 8, 4, "offset of struct with double as 2nd field");
+ check(Q(sizeof(D6)), 24, 24, 20, "struct with double, char, double");
+ check(Q(offsetof(D6, f3)), 12, 16, 12, "offset of 2nd double in struct with double, char, double");
+ check(Q(sizeof(D7)), 20, 24, 16, "struct with double as 2nd field of another struct");
+ check(Q(offsetof(D7, f2)), 4, 8, 4, "offset of struct with double as 2nd field of another struct");
+
+ /* === long longs === */
+
+ check(Q(sizeof(LL1)), 16, 16, 12, "long long as 1st field");
+ check(Q(sizeof(LL2)), 24, 24, 16, "embedding struct with long long as 1st field");
+ check(Q(sizeof(LL3)), 12, 16, 12, "long long as 2nd field");
+ check(Q(offsetof(LL3, f2)), 4, 8, 4, "offset of long long as 2nd field");
+ check(Q(sizeof(LL4)), 16, 24, 16, "embedding struct with long long as 2nd field");
+ check(Q(sizeof(LL5)), 16, 24, 16, "struct with long long as 2nd field");
+ check(Q(offsetof(LL5, f2)), 4, 8, 4, "offset of struct with long long as 2nd field");
+
+ /* === arrays === */
+
+ check(Q(sizeof(A1)), 10, 10, 10, "array of shorts as 1st field");
+ check(Q(sizeof(A2)), 12, 12, 12, "embedding struct with array of shorts as 1st field");
+ check(Q(sizeof(A3)), 40, 40, 36, "array of doubles as 1st field");
+ check(Q(sizeof(A4)), 48, 48, 40, "embedding struct with array of doubles as 1st field");
+ check(Q(sizeof(A5)), 40, 40, 36, "array of long longs as 1st field");
+ check(Q(sizeof(A6)), 48, 48, 40, "embedding struct with array of long longs as 1st field");
+#ifdef __VEC__
+ check(Q(sizeof(A7)), 80, 80, 80, "array of vectors as 1st field");
+ check(Q(sizeof(A8)), 96, 96, 96, "embedding struct with array of vectors as 1st field");
+#endif
+ check(Q(sizeof(A9)), 72, 72, 52, "array of structs as 1st field");
+ check(Q(sizeof(A10)), 80, 80, 56, "embedding struct with array of structs as 1st field");
+
+ /* === unions === */
+
+ check(Q(sizeof(U1)), 8, 8, 8, "union with double");
+ check(Q(sizeof(U2)), 16, 16, 12, "embedding union with double");
+ check(Q(sizeof(U3)), 8, 8, 8, "union with long long");
+ check(Q(sizeof(U4)), 16, 16, 12, "embedding union with long long");
+#if __VEC__
+ check(Q(sizeof(U5)), 16, 16, 16, "union with vector");
+ check(Q(sizeof(U6)), 32, 32, 32, "embedding union with vector");
+#endif
+ check(Q(sizeof(U7)), 8, 8, 8, "union with array of shorts");
+ check(Q(sizeof(U8)), 10, 10, 10, "embedding union with array of shorts");
+
+ /* === misc === */
+
+ check(Q(sizeof(M0)), 16, 16, 12, "untagged struct with long long as 1st field");
+ check(Q(sizeof(M1)), 8, 8, 8, "array[8] of char");
+ check(Q(sizeof(M2)), 9, 9, 9, "embedding struct with array[8] of char as 1st field");
+ check(Q(sizeof(M3)), 9, 9, 9, "embedding struct with array[8] of char as 2nd field");
+ check(Q(offsetof(M3, f2)), 1, 1, 1, "offset of struct with array[8] of char as 2nd field");
+ check(Q(sizeof(M4)), 9, 9, 9, "odd size struct: array[9] of char");
+ check(Q(sizeof(M5)), 10, 10, 10, "embedding odd size struct");
+
+ /* === mac68k mode === */
+
+#ifndef __LP64__
+ check(Q(sizeof(M68K0)), 6, 6, 6, "mac68k struct with long");
+ check(Q(sizeof(M68K1)), 10, 10, 10, "mac68k struct with double as 1st field");
+ check(Q(sizeof(M68K2)), 12, 12, 12, "embedding mac68k struct with double as 1st field");
+#ifdef __VEC__
+ check(Q(sizeof(M68K3)), 32, 32, 32, "mac68k struct with vector as 1st field");
+ check(Q(sizeof(M68K4)), 48, 48, 48, "embedding mac68k struct with vector as 1st field in a mac68k struct");
+ check(Q(sizeof(M68K5)), 48, 48, 48, "embedding mac68k struct with vector as 1st field in a power struct");
+ check(Q(offsetof(M68K6, f2)), 16, 16, 16, "offset of vector as 2nd field in a mac68k struct");
+#endif
+ check(Q(sizeof(M68K7)), 2, 2, 2, "padding of mac68k struct with one char");
+ check(Q(sizeof(M68K8)), 2, 2, 2, "padding of mac68k union with one char");
+ check(Q(sizeof(M68K9)), 8, 8, 8, "padding of mac68k struct");
+ check(Q(offsetof(M68K9, f2)), 2, 2, 2, "offset of int as 2nd field in a mac68k struct");
+ check(Q(sizeof(M68K10)), 10, 10, 10, "power struct with embedded mac68k struct");
+ check(Q(offsetof(M68K10, f2)), 2, 2, 2, "offset of mac68k struct as 2nd field in a power struct");
+ check(Q(sizeof(M68K11)), 10, 10, 10, "odd size struct (before padding): array[9] of char");
+ check(Q(sizeof(M68K12)), 12, 12, 12, "embedding odd size struct (before padding)");
+ check(Q(sizeof(M68K13)), 6, 6, 6, "array of char at odd addr in mac68k struct");
+ check(Q(offsetof(M68K13, f2)), 1, 1, 1, "offset of array of char at odd addr in mac68k struct");
+#endif
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/align-test-2.c b/gcc/testsuite/gcc.apple/align-test-2.c
new file mode 100644
index 00000000000..c78b8e390a4
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-2.c
@@ -0,0 +1,163 @@
+/* APPLE LOCAL file Macintosh alignment */
+
+/* { dg-do run } */
+/* { dg-options "-Wno-long-long" } */
+
+/*
+ * Macintosh compiler alignment test for alignment extensions in GCC 3.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+ #define GCC3 1
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+/* === alignment modes === */
+
+typedef struct S1 {
+ UINT8 f1;
+} S1;
+
+#ifndef __LP64__
+#pragma options align=mac68k
+
+typedef struct S2 {
+ UINT8 f1;
+} S2;
+#endif
+
+#pragma options align=native
+
+typedef struct S3 {
+ UINT8 f1;
+} S3;
+
+#pragma options align=reset
+/* Should be mac68k mode here. */
+
+#ifndef __LP64__
+#pragma options align=reset
+#endif
+/* Should be power mode here. */
+
+typedef struct S4 {
+ UINT8 f1;
+ double f2;
+} S4;
+
+#pragma options align=natural
+
+typedef struct S5 {
+ UINT8 f1;
+ double f2;
+} S5;
+
+typedef struct S6 {
+ UINT8 f1;
+ double f2;
+ UINT8 f3;
+} S6;
+
+#pragma options align=reset
+/* Should be power mode here. */
+
+#pragma options align=packed
+
+typedef struct S7 {
+ UINT8 f1;
+ UINT32 f2;
+} S7;
+
+#pragma options align=reset
+/* Should be power mode here. */
+
+typedef struct S8 {
+ UINT8 f1;
+ UINT32 f2;
+} S8;
+
+static void check(char * rec_name, int actual, int expected32, int expected64,
+ int expected_ia32, char * comment)
+{
+ int expected;
+#ifdef __i386__
+ expected = expected_ia32;
+#else
+ expected = ((sizeof(char *) == 8) ? expected64 : expected32);
+#endif
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+#ifndef GCC3
+ printf("This test requires GCC 3");
+ return 1;
+#endif
+
+ check(Q(sizeof(S1)), 1, 1, 1, "struct with 1 char; power mode");
+#ifndef __LP64__
+ check(Q(sizeof(S2)), 2, 2, 2, "struct with 1 char; mac68k mode");
+#endif
+ check(Q(sizeof(S3)), 1, 1, 1, "struct with 1 char; native mode");
+ check(Q(sizeof(S4)), 12, 16, 12, "struct with char, double; power/natural mode");
+ check(Q(offsetof(S4, f2)), 4, 8, 4, "offset of double in a struct with char, double; power/natural mode");
+ check(Q(sizeof(S5)), 16, 16, 12, "struct with char, double; natural mode");
+ check(Q(offsetof(S5, f2)), 8, 8, 4, "offset of double in a struct with char, double; natural mode");
+ check(Q(sizeof(S6)), 24, 24, 16, "struct with char, double, char; natural mode");
+ check(Q(sizeof(S7)), 5, 9, 5, "struct with char, long; packed mode");
+ check(Q(sizeof(S8)), 8, 16, 8, "struct with char, long; power/natural mode");
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/align-test-3.c b/gcc/testsuite/gcc.apple/align-test-3.c
new file mode 100644
index 00000000000..ef806238508
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-3.c
@@ -0,0 +1,136 @@
+/* APPLE LOCAL file Macintosh alignment */
+
+/* { dg-do run } */
+/* { dg-options "-Wno-long-long" } */
+
+/*
+ * GCC alignment test for alignment problems due to interactions
+ * between FSF and Macintosh alignment modes.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+#ifdef __LP64__
+int main()
+{
+ return 0;
+}
+#else /* 32-bit */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+#define GCC3 1
+#else
+#define GCC3 0
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+/* === alignment modes === */
+
+#pragma options align=power
+#pragma options align=mac68k
+#pragma pack(1)
+
+typedef struct S0 {
+ UINT32 f1;
+ UINT8 f2;
+} S0;
+
+#pragma options align=reset
+
+/* We should be back in mac68k alignment, if #pragma option align=reset
+ can rest a #pragma pack(n). So check for mac68k alignment. */
+
+typedef struct S1 {
+ UINT32 f1;
+ UINT8 f2;
+} S1;
+
+#if GCC3
+#pragma options align=power
+#pragma options align=mac68k
+//#pragma pack(push, 1)
+//#pragma pack(pop)
+#pragma pack(1)
+#pragma pack()
+
+/* We should be back in mac68k alignment, if #pragma pack()
+ can reset a #pragma pack(n). So check for mac68k alignment. */
+
+typedef struct S2 {
+ UINT32 f1;
+ UINT8 f2;
+} S2;
+#endif /* GCC3 */
+
+static void check(char * rec_name, int actual, int expected_ppc32, int expected_ia32, char * comment)
+{
+ int expected;
+#ifdef __i386__
+ expected = expected_ia32;
+#else
+ expected = expected_ppc32;
+#endif
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ check(Q(sizeof(S0)), 5, 5, "struct with 1 long, 1 char; pack(1) mode");
+ check(Q(sizeof(S1)), 6, 6, "struct with 1 long, 1 char; should be mac68k mode");
+#if GCC3
+ check(Q(sizeof(S2)), 6, 6, "struct with 1 long, 1 char; should be mac68k mode");
+#endif
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
+
+#endif /* 32-bit */
diff --git a/gcc/testsuite/gcc.apple/align-test-4.c b/gcc/testsuite/gcc.apple/align-test-4.c
new file mode 100644
index 00000000000..dec805161f4
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-4.c
@@ -0,0 +1,233 @@
+/* APPLE LOCAL file Macintosh alignment */
+
+/* { dg-do run } */
+/* { dg-options "-Wno-long-long" } */
+
+/*
+ * GCC alignment test for bit-fields.
+ * This came up initially as an alignment problem in the kernel.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+#define GCC3 1
+#else
+#define GCC3 0
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+/*
+ * The following defined determines whether we should compare against
+ * the values produced by GCC 2.95 or against the values I expect given
+ * my understanding of the alignment rules.
+ */
+#define USE_GCC2_VALUES 1
+
+#define NAME2(name,mode) mode##_##name
+#define NAME(name,mode) NAME2(name,mode)
+
+#define STR(s) #s
+#define SIZEOF3(name) STR(sizeof(name)), sizeof(name)
+#define SIZEOF2(name,mode) SIZEOF3(mode##_##name)
+#define SIZEOF(name,mode) SIZEOF2(name,mode)
+
+#define OFFSETOF3(name,field) STR(offsetof(name,field)), offsetof(name,field)
+#define OFFSETOF2(name,mode,field) OFFSETOF3(mode##_##name,field)
+#define OFFSETOF(name,mode,field) OFFSETOF2(name,mode,field)
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+/* === mac68k alignment problem in kernel === */
+
+typedef unsigned PEF_UBits32, ByteCount;
+typedef short SInt16;
+
+/* === power === */
+#pragma options align=power
+#define MODE power
+#include "align-test-4.h"
+
+#ifndef __LP64__
+/* === mac68k === */
+#pragma options align=mac68k
+#undef MODE
+#define MODE mac68k
+#include "align-test-4.h"
+#endif
+
+/* === pack(2) === */
+#pragma pack(2)
+#undef MODE
+#define MODE pack2
+#include "align-test-4.h"
+
+
+static void check(char * rec_name, int actual, int expected32, int expected64,
+ int expected_ia32, char * comment)
+{
+ int expected;
+#ifdef __i386__
+ expected = expected_ia32;
+#else
+ expected = ((sizeof(char *) == 8) ? expected64 : expected32);
+#endif
+ if (flag_verbose || (actual != expected)) {
+ printf("%-30s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+#undef MODE
+#define MODE power
+
+#if USE_GCC2_VALUES
+ check(SIZEOF(LoaderExport, MODE), 12, 12, 12, "kernel struct");
+ check(OFFSETOF(LoaderExport, MODE, offset), 4, 4, 4, "offset of offset");
+ check(OFFSETOF(LoaderExport, MODE, sectionNumber), 8, 8, 8, "offset of sectionNumber");
+ check(SIZEOF(S1, MODE), 8, 8, 8, "bitfields & char");
+ check(SIZEOF(S2, MODE), 8, 8, 8, "int & char");
+ check(SIZEOF(S3, MODE), 12, 12, 12, "char, bitfields(32), char");
+ check(OFFSETOF(S3, MODE, f3), 8, 8, 8, "offset of 2nd char");
+ check(SIZEOF(S4, MODE), 8, 8, 8, "char, bitfields(32), char");
+ check(OFFSETOF(S4, MODE, f3), 7, 7, 7, "offset of 2nd char");
+ check(SIZEOF(S5, MODE), 4, 4, 4, "char, bitfields(16), char");
+ check(OFFSETOF(S5, MODE, f3), 3, 3, 3, "offset of 2nd char");
+ check(SIZEOF(S6, MODE), 4, 4, 4, "char, bitfields(8), char");
+ check(OFFSETOF(S6, MODE, f3), 2, 2, 2, "offset of 2nd char");
+#else
+ check(SIZEOF(LoaderExport, MODE), 12, 12, "kernel struct");
+ check(OFFSETOF(LoaderExport, MODE, offset), 4, 4, "offset of offset");
+ check(OFFSETOF(LoaderExport, MODE, sectionNumber), 8, 8, "offset of sectionNumber");
+ check(SIZEOF(S1, MODE), 8, 8, "bitfields & char");
+ check(SIZEOF(S2, MODE), 8, 8, "int & char");
+ check(SIZEOF(S3, MODE), 12, 12, "char, bitfields(32), char");
+ check(OFFSETOF(S3, MODE, f3), 8, 8, "offset of 2nd char");
+ check(SIZEOF(S4, MODE), 12, 12, "char, bitfields(32), char");
+ check(OFFSETOF(S4, MODE, f3), 8, 8, "offset of 2nd char");
+ check(SIZEOF(S5, MODE), 12, 12, "char, bitfields(16), char");
+ check(OFFSETOF(S5, MODE, f3), 8, 8, "offset of 2nd char");
+ check(SIZEOF(S6, MODE), 12, 12, "char, bitfields(8), char");
+ check(OFFSETOF(S6, MODE, f3), 8, 8, "offset of 2nd char");
+#endif
+
+#ifndef __LP64__
+#undef MODE
+#define MODE mac68k
+
+#if USE_GCC2_VALUES
+ check(SIZEOF(LoaderExport, MODE), 10, 10, 10, "kernel struct");
+ check(OFFSETOF(LoaderExport, MODE, offset), 4, 4, 4, "offset of offset");
+ check(OFFSETOF(LoaderExport, MODE, sectionNumber), 8, 8, 8, "offset of sectionNumber");
+#if 1
+ // GCC 2 is wrong on the following.
+ check(SIZEOF(S1, MODE), 6, 6, 6, "bitfields & char");
+#else
+ check(SIZEOF(S1, MODE), 8, 8, "bitfields & char");
+#endif
+ check(SIZEOF(S2, MODE), 6, 6, 6, "int & char");
+ check(SIZEOF(S3, MODE), 6, 6, 6, "char, bitfields(32), char");
+ check(OFFSETOF(S3, MODE, f3), 5, 5, 5, "offset of 2nd char");
+ check(SIZEOF(S4, MODE), 6, 6, 6, "char, bitfields(32), char");
+ check(OFFSETOF(S4, MODE, f3), 5, 5, 5, "offset of 2nd char");
+ check(SIZEOF(S5, MODE), 4, 4, 4, "char, bitfields(16), char");
+ check(OFFSETOF(S5, MODE, f3), 3, 3, 3, "offset of 2nd char");
+ check(SIZEOF(S6, MODE), 4, 4, 4, "char, bitfields(8), char");
+ check(OFFSETOF(S6, MODE, f3), 2, 2, 2, "offset of 2nd char");
+#else
+ check(SIZEOF(LoaderExport, MODE), 10, 10, "kernel struct");
+ check(OFFSETOF(LoaderExport, MODE, offset), 4, 4, "offset of offset");
+ check(OFFSETOF(LoaderExport, MODE, sectionNumber), 8, 8, "offset of sectionNumber");
+ check(SIZEOF(S1, MODE), 6, 6, "bitfields & char");
+ check(SIZEOF(S2, MODE), 6, 6, "int & char");
+ check(SIZEOF(S3, MODE), 8, 8, "char, bitfields(32), char");
+ check(OFFSETOF(S3, MODE, f3), 6, 6, "offset of 2nd char");
+ check(SIZEOF(S4, MODE), 8, 8, "char, bitfields(32), char");
+ check(OFFSETOF(S4, MODE, f3), 6, 6, "offset of 2nd char");
+ check(SIZEOF(S5, MODE), 6, 6, "char, bitfields(16), char");
+ check(OFFSETOF(S5, MODE, f3), 4, 4, "offset of 2nd char");
+ check(SIZEOF(S6, MODE), 4, 4, "char, bitfields(8), char");
+ check(OFFSETOF(S6, MODE, f3), 2, 2, "offset of 2nd char");
+#endif
+#endif /* n __LP64__ */
+
+#undef MODE
+#define MODE pack2
+
+#if USE_GCC2_VALUES
+ check(SIZEOF(LoaderExport, MODE), 10, 10, 10, "kernel struct");
+ check(OFFSETOF(LoaderExport, MODE, offset), 4, 4, 4, "offset of offset");
+ check(OFFSETOF(LoaderExport, MODE, sectionNumber), 8, 8, 8, "offset of sectionNumber");
+ /* GCC2 used to have this as '8', but it should really be 6. */
+ check(SIZEOF(S1, MODE), 6, 6, 6, "bitfields & char");
+ check(SIZEOF(S2, MODE), 6, 6, 6, "int & char");
+ check(SIZEOF(S3, MODE), 6, 6, 6, "char, bitfields(32), char");
+ check(OFFSETOF(S3, MODE, f3), 5, 5, 5, "offset of 2nd char");
+ check(SIZEOF(S4, MODE), 6, 6, 6, "char, bitfields(32), char");
+ check(OFFSETOF(S4, MODE, f3), 5, 5, 5, "offset of 2nd char");
+ check(SIZEOF(S5, MODE), 4, 4, 4, "char, bitfields(16), char");
+ check(OFFSETOF(S5, MODE, f3), 3, 3, 3, "offset of 2nd char");
+ check(SIZEOF(S6, MODE), 4, 4, 4, "char, bitfields(8), char");
+ check(OFFSETOF(S6, MODE, f3), 2, 2, 2, "offset of 2nd char");
+#else
+ check(SIZEOF(LoaderExport, MODE), 10, 10, "kernel struct");
+ check(OFFSETOF(LoaderExport, MODE, offset), 4, 4, "offset of offset");
+ check(OFFSETOF(LoaderExport, MODE, sectionNumber), 8, 8, "offset of sectionNumber");
+ check(SIZEOF(S1, MODE), 6, 6, "bitfields & char");
+ check(SIZEOF(S2, MODE), 6, 6, "int & char");
+ check(SIZEOF(S3, MODE), 8, 8, "char, bitfields(32), char");
+ check(OFFSETOF(S3, MODE, f3), 6, 6, "offset of 2nd char");
+ check(SIZEOF(S4, MODE), 8, 8, "char, bitfields(32), char");
+ check(OFFSETOF(S4, MODE, f3), 6, 6, "offset of 2nd char");
+ check(SIZEOF(S5, MODE), 6, 6, "char, bitfields(16), char");
+ check(OFFSETOF(S5, MODE, f3), 4, 4, "offset of 2nd char");
+ check(SIZEOF(S6, MODE), 4, 4, "char, bitfields(8), char");
+ check(OFFSETOF(S6, MODE, f3), 2, 2, "offset of 2nd char");
+#endif
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/align-test-4.h b/gcc/testsuite/gcc.apple/align-test-4.h
new file mode 100644
index 00000000000..f7c18727fee
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-4.h
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file Macintosh alignment */
+
+typedef struct {
+ PEF_UBits32 symClass : 8;
+ PEF_UBits32 nameOffset : 24;
+ ByteCount offset;
+ SInt16 sectionNumber;
+} NAME(LoaderExport, MODE);
+
+typedef struct {
+ unsigned f1 : 32;
+ char f2;
+} NAME(S1, MODE);
+
+typedef struct {
+ unsigned f1;
+ char f2;
+} NAME(S2, MODE);
+
+typedef struct {
+ char f1;
+ unsigned f2 : 32;
+ char f3;
+} NAME(S3, MODE);
+
+typedef struct {
+ char f1;
+ unsigned f2_1 : 8;
+ unsigned f2_2 : 24;
+ char f3;
+} NAME(S4, MODE);
+
+typedef struct {
+ char f1;
+ unsigned f2 : 16;
+ char f3;
+} NAME(S5, MODE);
+
+typedef struct {
+ char f1;
+ unsigned f2 : 8;
+ char f3;
+} NAME(S6, MODE);
diff --git a/gcc/testsuite/gcc.apple/align-test-5a.c b/gcc/testsuite/gcc.apple/align-test-5a.c
new file mode 100644
index 00000000000..10c7d8ad7c3
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-5a.c
@@ -0,0 +1,87 @@
+/* APPLE LOCAL file Macintosh alignment */
+/* align-test-5*.c are all the same code but with different options. */
+
+/* { dg-do run { target "powerpc-*-darwin*" } } */
+/* { dg-options "-malign-natural -DSIZE=16" } */
+
+/*
+ * GCC alignment test for command line options for setting alignment modes.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ * (C) 2000-2002.
+ * Last modified 2002-2-18.
+ *
+ */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+#define GCC3 1
+#else
+#define GCC3 0
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+typedef struct S0 {
+ UINT8 f1;
+ double f2;
+} S0;
+
+static void check(char * rec_name, int actual, int expected, char * comment)
+{
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ check(Q(sizeof(S0)), SIZE, "struct with 1 char, 1 double");
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/align-test-5b.c b/gcc/testsuite/gcc.apple/align-test-5b.c
new file mode 100644
index 00000000000..a44d8cb4d8f
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-5b.c
@@ -0,0 +1,87 @@
+/* APPLE LOCAL file Macintosh alignment */
+/* align-test-5*.c are all the same code but with different options. */
+
+/* { dg-do run } */
+/* { dg-options "-malign-power -DSIZE=12" } */
+
+/* We have a different test to pick up the warning from 64-bit case. */
+/* { dg-xfail-if "" { powerpc*-*-darwin* } { "-m64" } { "" } } */
+
+/*
+ * GCC alignment test for command line options for setting alignment modes.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+#define GCC3 1
+#else
+#define GCC3 0
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+typedef struct S0 {
+ UINT8 f1;
+ double f2;
+} S0;
+
+static void check(char * rec_name, int actual, int expected, char * comment)
+{
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ check(Q(sizeof(S0)), SIZE, "struct with 1 char, 1 double");
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/align-test-5c.c b/gcc/testsuite/gcc.apple/align-test-5c.c
new file mode 100644
index 00000000000..707a9c6a215
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-5c.c
@@ -0,0 +1,87 @@
+/* APPLE LOCAL file Macintosh alignment */
+/* align-test-5*.c are all the same code but with different options. */
+
+/* { dg-do run } */
+/* { dg-options "-malign-mac68k -DSIZE=10" } */
+
+/* dg-skip-if would be better, should be in the next merge after 2004-01. */
+/* { dg-xfail-if "" { powerpc*-*-darwin* } { "-m64" } { "" } } */
+
+/*
+ * GCC alignment test for command line options for setting alignment modes.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+#define GCC3 1
+#else
+#define GCC3 0
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+typedef struct S0 {
+ UINT8 f1;
+ double f2;
+} S0;
+
+static void check(char * rec_name, int actual, int expected, char * comment)
+{
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ check(Q(sizeof(S0)), SIZE, "struct with 1 char, 1 double");
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/align-test-5d.c b/gcc/testsuite/gcc.apple/align-test-5d.c
new file mode 100644
index 00000000000..fbbe60f7aa2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/align-test-5d.c
@@ -0,0 +1,90 @@
+/* APPLE LOCAL file Macintosh alignment */
+/* align-test-5*.c are all the same code but with different options. */
+
+/* { dg-do run { target "i?86-*-darwin*" } } */
+/* { dg-options "-malign-natural -DSIZE=12" } */
+
+/* This is for Intel only. */
+/* { dg-xfail-if "" { powerpc*-*-darwin* } { "" } { "" } } */
+
+/*
+ * GCC alignment test for command line options for setting alignment modes.
+ * Fred Forsman
+ * Apple Computer, Inc.
+ * (C) 2000-2002.
+ * Last modified 2002-2-18.
+ *
+ */
+
+ /* Check whether we are testing GCC 3 or later. */
+#ifdef __GNUC__
+#if __GNUC__ >= 3
+#define GCC3 1
+#else
+#define GCC3 0
+#endif
+#endif
+
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+
+#define Q(x) #x, x
+
+typedef unsigned char UINT8;
+typedef unsigned long UINT32;
+
+static int bad_option = 0;
+static int flag_verbose = 0;
+static int nbr_failures = 0;
+
+typedef struct S0 {
+ UINT8 f1;
+ double f2;
+} S0;
+
+static void check(char * rec_name, int actual, int expected, char * comment)
+{
+ if (flag_verbose || (actual != expected)) {
+ printf("%-20s = %2d (%2d) ", rec_name, actual, expected);
+ if (actual != expected) {
+ printf("*** FAIL");
+ nbr_failures++;
+ } else
+ printf(" PASS");
+ printf(": %s\n", comment);
+ }
+}
+
+static void check_option(char *option)
+{
+ if (*option == '-') {
+ if (strcmp(option, "-v") == 0)
+ flag_verbose = 1;
+ else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+ } else {
+ fprintf(stderr, "*** unrecognized option '%s'.\n", option);
+ bad_option = 1;
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ check_option(argv[i]);
+
+ if (bad_option)
+ return 1;
+
+ check(Q(sizeof(S0)), SIZE, "struct with 1 char, 1 double");
+
+ if (nbr_failures > 0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/altivec-1.c b/gcc/testsuite/gcc.apple/altivec-1.c
new file mode 100644
index 00000000000..c8df7f026b9
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-1.c
@@ -0,0 +1,124 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+/* Test for correct handling of AltiVec constants passed
+ through '...' (va_arg). */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define CHECK_INVARIANT(expr) \
+ if (!(expr)) { \
+ printf ("ASSERT FAILED: %d: %s\n", __LINE__, #expr); \
+ abort (); \
+ }
+
+struct foo { int x; int y; };
+struct vfoo { int x; __vector signed int v; int y; };
+union u { __vector signed int v; signed int i[4]; };
+
+struct foo x_g = { 3, 4};
+struct vfoo vx_g = { 10, (vector signed int)(11, 12, 13, 14), 15 };
+__vector signed int v_g = (vector signed int) (22, 23, 24, 25);
+struct vfoo vx2_g = { 30, (vector signed int)(31, 32, 33, 34), 35 };
+__vector signed int v2_g = (vector signed int)(40, 41, 42, 43);
+int i_1 = 99, i_2 = 33;
+double d_2 = 1.5, d_3 = 1.75;
+long double ld_1 = 1.25;
+
+void bar (int i, ... )
+{
+ struct foo xi;
+ double d;
+ long double ld;
+ float f;
+ char c;
+ short s;
+ va_list ap;
+ va_start(ap, i);
+ xi = va_arg(ap, struct foo);
+ s = (short)va_arg(ap, int);
+ f = (float)va_arg(ap, double);
+ ld = va_arg(ap, long double);
+ c = (char)va_arg(ap, int);
+ d = va_arg(ap, double);
+ va_end(ap);
+
+ CHECK_INVARIANT (xi.x == x_g.x && xi.y == x_g.y);
+ CHECK_INVARIANT (s == (short)i_2);
+ CHECK_INVARIANT (f == (float)d_2);
+ CHECK_INVARIANT (ld == ld_1);
+ CHECK_INVARIANT (c == (char)i_1);
+ CHECK_INVARIANT (d == d_3);
+}
+
+void baz (int i, ... )
+{
+ struct vfoo vx, vx2;
+ __vector signed int v_i, v2_i;
+ int j, k, l;
+ va_list ap;
+ va_start(ap, i);
+ v_i = va_arg(ap, __vector signed int);
+ j = va_arg(ap, int);
+ vx = va_arg(ap, struct vfoo);
+ k = va_arg(ap, int);
+ v2_i = va_arg(ap, __vector signed int);
+ l = va_arg(ap, int);
+ vx2 = va_arg(ap, struct vfoo);
+ va_end(ap);
+
+ CHECK_INVARIANT (vec_all_eq (v_i, v_g));
+ CHECK_INVARIANT (j == i_1);
+ CHECK_INVARIANT (vx.x == vx_g.x && vec_all_eq(vx.v, vx_g.v) && vx.y == vx_g.y);
+ CHECK_INVARIANT (k == i_1);
+ CHECK_INVARIANT (vec_all_eq (v2_i, v2_g));
+ CHECK_INVARIANT (l == i_1);
+ CHECK_INVARIANT (vx2.x == vx2_g.x && vec_all_eq(vx2.v, vx2_g.v) && vx2.y == vx2_g.y);
+}
+
+void quux (int i, ... )
+{
+ __vector signed int v_i, v2_i;
+ union u vi, v2i;
+ va_list ap;
+ va_start(ap, i);
+ v_i = va_arg(ap, __vector signed int);
+ v2_i = va_arg(ap, __vector signed int);
+ va_end(ap);
+ vi.v = v_i;
+ v2i.v = v2_i;
+
+ CHECK_INVARIANT (vec_all_eq (v_i, v_g));
+ CHECK_INVARIANT (vec_all_eq (v2_i, v_g));
+ CHECK_INVARIANT (vec_all_eq (vi.v, v_g));
+ CHECK_INVARIANT (vec_all_eq (v2i.v, v_g));
+}
+
+void baz2 (int i, ... )
+{
+ struct vfoo vx;
+ union u vxi;
+ va_list ap;
+ va_start(ap, i);
+ vx = va_arg(ap, struct vfoo);
+ va_end(ap);
+ vxi.v = vx.v;
+
+ CHECK_INVARIANT (vx.x == vx_g.x && vec_all_eq(vx.v, vx_g.v) && vx.y == vx_g.y);
+ CHECK_INVARIANT (vec_all_eq (vxi.v, vx_g.v));
+}
+
+int main(void)
+{
+ CHECK_INVARIANT (sizeof(struct foo) == 8 && sizeof(struct vfoo) == 48);
+
+ bar(i_1, x_g, (short)i_2, (float)d_2, ld_1, (char)i_1, d_3);
+ baz(i_1, v_g, i_1, vx_g, i_1, v2_g, i_1, vx2_g);
+ quux(i_1, v_g, v_g);
+ baz2(i_1, vx_g);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/altivec-19.c b/gcc/testsuite/gcc.apple/altivec-19.c
new file mode 100644
index 00000000000..857962f9f2e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-19.c
@@ -0,0 +1,15 @@
+/* APPLE LOCAL entire file */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec -pedantic" } */
+
+int main()
+ {
+ typedef unsigned char UC;
+ typedef vector unsigned char VUC;
+
+ const UC kBar = 7;
+ VUC vBar1 = (VUC)(kBar);
+ VUC vBar2 = {kBar};
+ VUC vBar3 = (VUC){kBar};
+ return 0;
+ }
diff --git a/gcc/testsuite/gcc.apple/altivec-2.c b/gcc/testsuite/gcc.apple/altivec-2.c
new file mode 100644
index 00000000000..23eaf3d230d
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-2.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+/* Check whether AltiVec allows for 'bool'
+ and 'pixel' to be #defined to mean other things. */
+
+extern void abort (void);
+#define CHECK_IF(E) if(!(E)) abort()
+
+#define bool char
+#define pixel unsigned char
+
+int main(void) {
+ bool x1;
+ pixel x2;
+
+ CHECK_IF(sizeof(x1) == 1);
+ CHECK_IF(sizeof(x2) == 1);
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/altivec-20.c b/gcc/testsuite/gcc.apple/altivec-20.c
new file mode 100644
index 00000000000..63cc2dba6d8
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-20.c
@@ -0,0 +1,7 @@
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#define vector __attribute__((vector_size(16)))
+
+vector long long vbl; /* { dg-error "use of 'long long' in AltiVec types is invalid" } */
+
diff --git a/gcc/testsuite/gcc.apple/altivec-3.c b/gcc/testsuite/gcc.apple/altivec-3.c
new file mode 100644
index 00000000000..09579468c9b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-3.c
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+int main(void)
+{
+ bool b; /* { dg-error ".bool. undeclared" } */
+ /* { dg-error "is reported only once" "" { target *-*-* } 7 } */
+ /* { dg-error "function it appears in" "" { target *-*-* } 7 } */
+ /* { dg-error "(parse|syntax) error" "" { target *-*-* } 7 } */
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/altivec-4.c b/gcc/testsuite/gcc.apple/altivec-4.c
new file mode 100644
index 00000000000..c81cc7676aa
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-4.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+extern void abort();
+
+#include <stdio.h>
+int main()
+{
+ int i;
+ union u {
+ vector signed short uv;
+ signed short val[8];
+ } v;
+
+ vector signed short SpecialConstants = (vector signed short)( 1, 2, 3, 4, 5, 6,7,8);
+ v.uv = SpecialConstants;
+ for (i=0; i < 8; i++)
+ if (v.val[i] != i+1)
+ abort();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/altivec-5.c b/gcc/testsuite/gcc.apple/altivec-5.c
new file mode 100644
index 00000000000..cd9e1888af2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-5.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file AltiVec 3840704 */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+/* { dg-final { scan-assembler-not "stvx" } } */
+
+void *memset(void *, int, unsigned long int);
+
+struct tm
+{
+ int tm_sec;
+ int tm_min;
+ int tm_hour;
+ int tm_mday;
+ int tm_mon;
+ int tm_year;
+ int tm_wday;
+ int tm_yday;
+ int tm_isdst;
+ long tm_gmtoff;
+ char *tm_zone;
+};
+
+
+int asl_send()
+{
+ char *str, *out;
+ unsigned int i, len, level, outstatus;
+ struct tm gtime;
+
+ memset(&gtime, 0, sizeof(struct tm)); /* { dg-warning "disabled" } */
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/altivec-faltivec-1.c b/gcc/testsuite/gcc.apple/altivec-faltivec-1.c
new file mode 100644
index 00000000000..f624187d56e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-faltivec-1.c
@@ -0,0 +1,135 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-O3 -finline-limit=9999 -faltivec -Wa,-force_cpusubtype_ALL -fdump-ipa-cgraph -S" } */
+/* Inliner should not inline AltiVec(tm) functions when -faltivec is on. */
+/* <rdar://problem/3837835> Selective inlining of functions that use Altivec */
+#include <Carbon/Carbon.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+/* #include <altivec.h> */
+
+#define N 400
+#define N4 ((N+3)/4)
+#define N8 ((N+7)/8)
+
+typedef union
+{
+ signed short sInt[8];
+ vector signed short vInt;
+} IntegerToVector;
+
+static signed long vIntDotProduct (vector signed short [], vector signed short [], long int);
+static int mainInt();
+static Ptr getMemory (size_t);
+
+static int
+mainInt()
+{
+ long int n = N, n8 = N8, m, i, j;
+ signed long vDotProduct, sDotProduct;
+ signed short *sx, *sy;
+ vector signed short *x, *y;
+ IntegerToVector *sX, *sY;
+
+ sx = (short *) getMemory( 4*(n+3) );
+ if (sx == nil)
+ return 0;
+ sy = (short *) getMemory( 4*(n+3) );
+ if (sy == nil)
+ return 0;
+
+ x = (vector signed short *) getMemory( n8*16 );
+ if ( x == nil)
+ return 0;
+ y = (vector signed short *) getMemory( n8*16 );
+ if ( y == nil)
+ return 0;
+
+ sX = (IntegerToVector *) getMemory( n8*16 );
+ if (sX == nil)
+ return 0;
+ sY = (IntegerToVector *) getMemory( n8*16 );
+ if (sY == nil)
+ return 0;
+
+ for ( i = 0; i < n; i++ )
+ {
+ sx[i] = ( signed short ) scalb(( M_PI * ( double ) ( i ) / ( double ) n ), 8) + 0.5;
+ sy[i] = ( signed short ) scalb(( M_PI * ( double ) ( n - i ) / ( double ) n ), 8) + 0.5;
+ }
+
+ m = n % 8;
+ if (m != 0)
+ for (i = n; i < n + 8 - m; i++)
+ {
+ sx[i] = 0.0;
+ sy[i] = 0.0;
+ }
+
+ for ( i = 0; i < n8; i++ )
+ for ( j = 0; j < 8; j++ )
+ {
+ sX[i].sInt[j] = sx[i*8+j];
+ sY[i].sInt[j] = sy[i*8+j];
+ }
+
+ for ( i = 0; i < n8; i++ )
+ {
+ x[i] = sX[i].vInt;
+ y[i] = sY[i].vInt;
+ }
+
+ vDotProduct = vIntDotProduct ( x, y, n8 );
+
+ printf ( "\nVector dot product = %10d\n", (int) vDotProduct );
+
+ return 0;
+}
+
+static Ptr
+getMemory ( size_t amount )
+{
+ Ptr ptr;
+
+ ptr = malloc(amount);
+ if (ptr == nil)
+ printf ("\nUnable to allocate sufficient memory.");
+ return (ptr);
+}
+
+signed long
+vIntDotProduct ( vector signed short x[], vector signed short y[], long int n )
+{
+
+ typedef union
+ {
+ signed long xElem[4];
+ vector signed int vWord;
+ } WordToVector;
+
+ long int i;
+
+ vector signed int partialProduct, zero = ( vector signed int ) { 0,0,0,0 };
+ WordToVector sum;
+
+ partialProduct = zero;
+
+ for ( i = 0; i < n ; i++ )
+ partialProduct = vec_msums ( x[i], y[i], partialProduct );
+
+ sum.vWord = vec_sums( partialProduct, zero);
+
+ return sum.xElem[3];
+}
+
+int
+main()
+{
+ mainInt();
+ exit(0);
+}
+
+/* { dg-final { scan-tree-dump-times "callee has AltiVec" 2 "cgraph" } } */
+/* { dg-final { scan-assembler-not "vIntDotProduct" } } */
+/* { dg-final { scan-assembler "mainInt" } } */
diff --git a/gcc/testsuite/gcc.apple/altivec-faltivec-2.c b/gcc/testsuite/gcc.apple/altivec-faltivec-2.c
new file mode 100644
index 00000000000..fe376397d6c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-faltivec-2.c
@@ -0,0 +1,135 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-O3 -finline-limit=9999 -faltivec -Wa,-force_cpusubtype_ALL -fdump-ipa-cgraph -S" } */
+/* Inliner should inline always-inline AltiVec(tm) functions when -faltivec is on. */
+/* <rdar://problem/3837835> Selective inlining of functions that use Altivec */
+#include <Carbon/Carbon.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+/* #include <altivec.h> */
+
+#define N 400
+#define N4 ((N+3)/4)
+#define N8 ((N+7)/8)
+
+typedef union
+{
+ signed short sInt[8];
+ vector signed short vInt;
+} IntegerToVector;
+
+static signed long __attribute__ ((always_inline)) vIntDotProduct (vector signed short [], vector signed short [], long int);
+static int __attribute__ ((always_inline)) mainInt();
+static Ptr getMemory (size_t);
+
+static int __attribute__ ((always_inline))
+mainInt()
+{
+ long int n = N, n8 = N8, m, i, j;
+ signed long vDotProduct, sDotProduct;
+ signed short *sx, *sy;
+ vector signed short *x, *y;
+ IntegerToVector *sX, *sY;
+
+ sx = (short *) getMemory( 4*(n+3) );
+ if (sx == nil)
+ return 0;
+ sy = (short *) getMemory( 4*(n+3) );
+ if (sy == nil)
+ return 0;
+
+ x = (vector signed short *) getMemory( n8*16 );
+ if ( x == nil)
+ return 0;
+ y = (vector signed short *) getMemory( n8*16 );
+ if ( y == nil)
+ return 0;
+
+ sX = (IntegerToVector *) getMemory( n8*16 );
+ if (sX == nil)
+ return 0;
+ sY = (IntegerToVector *) getMemory( n8*16 );
+ if (sY == nil)
+ return 0;
+
+ for ( i = 0; i < n; i++ )
+ {
+ sx[i] = ( signed short ) scalb(( M_PI * ( double ) ( i ) / ( double ) n ), 8) + 0.5;
+ sy[i] = ( signed short ) scalb(( M_PI * ( double ) ( n - i ) / ( double ) n ), 8) + 0.5;
+ }
+
+ m = n % 8;
+ if (m != 0)
+ for (i = n; i < n + 8 - m; i++)
+ {
+ sx[i] = 0.0;
+ sy[i] = 0.0;
+ }
+
+ for ( i = 0; i < n8; i++ )
+ for ( j = 0; j < 8; j++ )
+ {
+ sX[i].sInt[j] = sx[i*8+j];
+ sY[i].sInt[j] = sy[i*8+j];
+ }
+
+ for ( i = 0; i < n8; i++ )
+ {
+ x[i] = sX[i].vInt;
+ y[i] = sY[i].vInt;
+ }
+
+ vDotProduct = vIntDotProduct ( x, y, n8 );
+
+ printf ( "\nVector dot product = %10d\n", (int) vDotProduct );
+
+ return 0;
+}
+
+static Ptr
+getMemory ( size_t amount )
+{
+ Ptr ptr;
+
+ ptr = malloc(amount);
+ if (ptr == nil)
+ printf ("\nUnable to allocate sufficient memory.");
+ return (ptr);
+}
+
+signed long __attribute__ ((always_inline))
+vIntDotProduct ( vector signed short x[], vector signed short y[], long int n )
+{
+
+ typedef union
+ {
+ signed long xElem[4];
+ vector signed int vWord;
+ } WordToVector;
+
+ long int i;
+
+ vector signed int partialProduct, zero = ( vector signed int ) { 0,0,0,0 };
+ WordToVector sum;
+
+ partialProduct = zero;
+
+ for ( i = 0; i < n ; i++ )
+ partialProduct = vec_msums ( x[i], y[i], partialProduct );
+
+ sum.vWord = vec_sums( partialProduct, zero);
+
+ return sum.xElem[3];
+}
+
+int
+main()
+{
+ mainInt();
+ exit(0);
+}
+
+/* { dg-final { scan-tree-dump-times "callee has AltiVec" 0 "cgraph" } } */
+/* { dg-final { scan-assembler-not "vIntDotProduct" } } */
+/* { dg-final { scan-assembler-not "mainInt" } } */
diff --git a/gcc/testsuite/gcc.apple/altivec-maltivec-1.c b/gcc/testsuite/gcc.apple/altivec-maltivec-1.c
new file mode 100644
index 00000000000..52181bde5be
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-maltivec-1.c
@@ -0,0 +1,135 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-O3 -finline-limit=9999 -maltivec -Wa,-force_cpusubtype_ALL -fdump-ipa-cgraph -S" } */
+/* Inliner should inline AltiVec(tm) functions normally when -maltivec is on. */
+/* <rdar://problem/3837835> Selective inlining of functions that use Altivec */
+#include <Carbon/Carbon.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <altivec.h>
+
+#define N 400
+#define N4 ((N+3)/4)
+#define N8 ((N+7)/8)
+
+typedef union
+{
+ signed short sInt[8];
+ vector signed short vInt;
+} IntegerToVector;
+
+static signed long vIntDotProduct (vector signed short [], vector signed short [], long int);
+static int mainInt();
+static Ptr getMemory ( size_t amount );
+
+static int
+mainInt()
+{
+ long int n = N, n8 = N8, m, i, j;
+ signed long vDotProduct, sDotProduct;
+ signed short *sx, *sy;
+ vector signed short *x, *y;
+ IntegerToVector *sX, *sY;
+
+ sx = (short *) getMemory( 4*(n+3) );
+ if (sx == nil)
+ return 0;
+ sy = (short *) getMemory( 4*(n+3) );
+ if (sy == nil)
+ return 0;
+
+ x = (vector signed short *) getMemory( n8*16 );
+ if ( x == nil)
+ return 0;
+ y = (vector signed short *) getMemory( n8*16 );
+ if ( y == nil)
+ return 0;
+
+ sX = (IntegerToVector *) getMemory( n8*16 );
+ if (sX == nil)
+ return 0;
+ sY = (IntegerToVector *) getMemory( n8*16 );
+ if (sY == nil)
+ return 0;
+
+ for ( i = 0; i < n; i++ )
+ {
+ sx[i] = ( signed short ) scalb(( M_PI * ( double ) ( i ) / ( double ) n ), 8) + 0.5;
+ sy[i] = ( signed short ) scalb(( M_PI * ( double ) ( n - i ) / ( double ) n ), 8) + 0.5;
+ }
+
+ m = n % 8;
+ if (m != 0)
+ for (i = n; i < n + 8 - m; i++)
+ {
+ sx[i] = 0.0;
+ sy[i] = 0.0;
+ }
+
+ for ( i = 0; i < n8; i++ )
+ for ( j = 0; j < 8; j++ )
+ {
+ sX[i].sInt[j] = sx[i*8+j];
+ sY[i].sInt[j] = sy[i*8+j];
+ }
+
+ for ( i = 0; i < n8; i++ )
+ {
+ x[i] = sX[i].vInt;
+ y[i] = sY[i].vInt;
+ }
+
+ vDotProduct = vIntDotProduct ( x, y, n8 );
+
+ printf ( "\nVector dot product = %10d\n", (int) vDotProduct );
+
+ return 0;
+}
+
+static Ptr
+getMemory ( size_t amount )
+{
+ Ptr ptr;
+
+ ptr = malloc(amount);
+ if (ptr == nil)
+ printf ("\nUnable to allocate sufficient memory.");
+ return (ptr);
+}
+
+static signed long
+vIntDotProduct ( vector signed short x[], vector signed short y[], long int n )
+{
+
+ typedef union
+ {
+ signed long xElem[4];
+ vector signed int vWord;
+ } WordToVector;
+
+ long int i;
+
+ vector signed int partialProduct, zero = ( vector signed int ) { 0,0,0,0 };
+ WordToVector sum;
+
+ partialProduct = zero;
+
+ for ( i = 0; i < n ; i++ )
+ partialProduct = vec_msums ( x[i], y[i], partialProduct );
+
+ sum.vWord = vec_sums( partialProduct, zero);
+
+ return sum.xElem[3];
+}
+
+int
+main()
+{
+ mainInt();
+ exit(0);
+}
+
+/* { dg-final { scan-tree-dump-times "callee has AltiVec" 0 "cgraph" } } */
+/* { dg-final { scan-assembler-not "vIntDotProduct" } } */
+/* { dg-final { scan-assembler-not "mainInt" } } */
diff --git a/gcc/testsuite/gcc.apple/altivec-test-macro.c b/gcc/testsuite/gcc.apple/altivec-test-macro.c
new file mode 100644
index 00000000000..6d5a2dc894d
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/altivec-test-macro.c
@@ -0,0 +1,30 @@
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+#define TYPE unsigned int
+union U {
+ TYPE ui[4];
+ vector TYPE uv;
+} data;
+
+extern void abort();
+
+int main( void )
+{
+ vector unsigned int v = {1,2,3,4};
+ vector TYPE UUUUUU = {10,10,10,10};
+ int i;
+
+ v = vec_add( v, UUUUUU );
+
+ data.uv = v;
+
+ for (i=0; i < 4; i++)
+ if (data.ui[i] != (10+i+1))
+ abort();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-1.c b/gcc/testsuite/gcc.apple/apple-altivec-1.c
new file mode 100644
index 00000000000..81a5bc1beab
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-1.c
@@ -0,0 +1,64 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec" } */
+
+static vector int x, y;
+
+static vector signed int i,j;
+static vector signed short s,t;
+static vector signed char c,d;
+static vector float f,g;
+static vector unsigned short us;
+
+static vector unsigned char uc;
+
+static vector signed int *pi;
+
+static int int1, int2;
+
+void
+b()
+{
+ vec_add (x, y);
+
+ /* Make sure the predicates accept correct argument types. */
+
+ int1 = vec_all_in (f, g);
+ int1 = vec_all_ne (f, g);
+ int1 = vec_all_ne (c, d);
+ int1 = vec_all_ne (s, t);
+ int1 = vec_all_ne (i, j);
+ int1 = vec_all_nge (f, g);
+ int1 = vec_all_ngt (f, g);
+ int1 = vec_all_ge (c, d);
+ int1 = vec_all_ge (s, t);
+ int1 = vec_all_ge (i, j);
+ int1 = vec_all_ge (c, d);
+ int1 = vec_all_ge (s, t);
+ int1 = vec_all_ge (i, j);
+
+ vec_mtvscr (i);
+ vec_dssall ();
+ us = vec_mfvscr ();
+ vec_dss (3);
+
+ vec_dst (pi, int1 + int2, 3);
+ vec_dstst (pi, int1 + int2, 3);
+ vec_dststt (pi, int1 + int2, 3);
+ vec_dstt (pi, int1 + int2, 3);
+
+ uc = vec_lvsl (int1 + 69, pi);
+ uc = vec_lvsr (int1 + 69, pi);
+
+ c = vec_lde (int1, (vector bool char *)pi);
+ s = vec_lde (int1, (vector pixel *)pi);
+ i = vec_lde (int1, pi);
+ i = vec_ldl (int1, pi);
+ i = vec_ld (int1, pi);
+
+ vec_st (i, int2, pi);
+ vec_ste (c, int2, (vector unsigned char *)pi);
+ vec_ste (s, int2, (vector bool short *)pi);
+ vec_ste (i, int2, pi);
+ vec_stl (i, int2, pi);
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-10.c b/gcc/testsuite/gcc.apple/apple-altivec-10.c
new file mode 100644
index 00000000000..12afefa4c1c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-10.c
@@ -0,0 +1,81 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+extern void abort();
+
+#include <stdio.h>
+
+int main()
+{
+ char str[128];
+ vector unsigned char
+ vuchar = (vector unsigned char)((vector unsigned int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d));
+
+ vector unsigned short
+ vushort = (vector unsigned short)((vector unsigned int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d));
+
+ vector unsigned char
+ vushort_to_char = (vector unsigned char)
+ ((vector unsigned short)(0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d));
+
+ vector signed char
+ vschar = (vector signed char)((vector signed int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d));
+
+ vector signed short
+ vsshort = (vector signed short)((vector signed int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d));
+
+ vector signed char
+ vsshort_to_char = (vector signed char)
+ ((vector signed short)(0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d));
+
+ vector unsigned int
+ vui = (vector unsigned int)((vector unsigned short)(0x011f,0x021d, 0x031f,0x041d, 0x051f,0x061d, 0x071f,0x081d));
+
+ vector unsigned int
+ vui1 = (vector unsigned int)
+ ((vector unsigned char)(0x01,0x1f,0x02,0x1d, 0x03,0x1f,0x04,0x1d,
+ 0x05,0x1f,0x06,0x1d, 0x07,0x1f,0x08,0x1d));
+
+ vector unsigned short
+ vus = (vector unsigned short)
+ ((vector unsigned char)(0x01,0x1f,0x02,0x1d, 0x03,0x1f,0x04,0x1d,
+ 0x05,0x1f,0x06,0x1d, 0x07,0x1f,0x08,0x1d));
+
+ vector float
+ vf = (vector float)
+ ((vector unsigned int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d));
+
+ sprintf(str, "%vhu", vuchar);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ sprintf(str, "%vhu", vushort);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ sprintf(str, "%vhu", vushort_to_char);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ sprintf(str, "%vhu", vschar);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ sprintf(str, "%vhu", vsshort);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ sprintf(str, "%vhu", vsshort_to_char);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ sprintf(str, "%vd", vui);
+ if (strcmp (str, "1 31 2 29 3 31 4 29 5 31 6 29 7 31 8 29"))
+ abort();
+ sprintf(str, "%vd", vui1);
+ if (strcmp (str, "1 31 2 29 3 31 4 29 5 31 6 29 7 31 8 29"))
+ abort();
+ sprintf(str, "%vd", vus);
+ if (strcmp (str, "1 31 2 29 3 31 4 29 5 31 6 29 7 31 8 29"))
+ abort();
+ sprintf(str, "%vhu", vf);
+ if (strcmp (str, "31 29 31 29 31 29 31 29"))
+ abort();
+ return 0;
+}
+
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-11.c b/gcc/testsuite/gcc.apple/apple-altivec-11.c
new file mode 100644
index 00000000000..6224923c1be
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-11.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+extern void abort();
+
+vector signed int
+vandc(vector signed int a, vector signed int b)
+{
+ return vec_andc(a, b);
+}
+
+int main ()
+{
+ char buf [1024];
+ vector signed int a1 = (vector signed int) (0XFFFFFFFF);
+ vector signed int b1 = (vector signed int) (0X0);
+
+ if (!vec_all_eq (vandc (a1, b1), a1))
+ abort();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-12.c b/gcc/testsuite/gcc.apple/apple-altivec-12.c
new file mode 100644
index 00000000000..54b30e5059c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-12.c
@@ -0,0 +1,395 @@
+/* APPLE LOCAL file AltiVec */
+/* Check for presence of AltiVec PIM "specific operations". */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -Wall" } */
+
+vector signed int
+specific_operations( signed int *p)
+{
+ vector unsigned int vui1, vui2;
+ vector unsigned short vus1, vus2;
+ vector unsigned char vuc1, vuc2;
+ vector signed int vsi1, vsi2;
+ vector signed short vss1, vss2;
+ vector signed char vsc1, vsc2;
+ vector bool int vbi1, vbi2;
+ vector bool short vbs1, vbs2;
+ vector bool char vbc1, vbc2;
+ vector float vf1, vf2;
+ vector pixel vp1, vp2;
+
+ vuc1 = vec_lvebx (8, (unsigned char *)p);
+ vss1 = vec_lvehx (4, (short *)p);
+ vf1 = vec_lvewx (2, (float *)p);
+
+ vsi1 = vec_lvx (1, (vector signed int *)p);
+ vp1 = vec_lvxl (16, (vector pixel *)p);
+
+ vec_stvebx (vuc1, 2, (char *)p);
+ vec_stvehx (vp1, 4, (unsigned short *)p);
+ vec_stvewx (vf1, 1, (float *)p);
+
+ vec_stvx (vbi1, 12, (vector int bool *)p);
+ vec_stvxl (vp1, 11, (vector pixel *)p);
+
+ vui1 = vec_vaddcuw (vui1, vui2);
+ vf1 = vec_vaddfp (vf1, vf2);
+
+ vsc1 = vec_vaddsbs (vsc1, vsc2);
+ vss1 = vec_vaddshs (vss1, vss2);
+ vsi1 = vec_vaddsws (vsi1, vsi2);
+ vuc1 = vec_vaddubs (vuc1, vuc2);
+ vus1 = vec_vadduhs (vus1, vus2);
+ vui1 = vec_vadduws (vui1, vui2);
+ vuc1 = vec_vaddubm (vuc1, vuc2);
+ vus1 = vec_vadduhm (vus1, vus2);
+ vui1 = vec_vadduwm (vui1, vui2);
+
+ vsc1 = vec_vand (vsc1, vsc2);
+ vss1 = vec_vandc (vss1, vss2);
+
+ vsc1 = vec_vavgsb (vsc1, vsc2);
+ vss1 = vec_vavgsh (vss1, vss2);
+ vsi1 = vec_vavgsw (vsi1, vsi2);
+ vuc1 = vec_vavgub (vuc1, vuc2);
+ vus1 = vec_vavguh (vus1, vus2);
+ vui1 = vec_vavguw (vui1, vui2);
+
+ vf1 = vec_vcfsx (vsi1, 4);
+ vf2 = vec_vcfux (vui1, 3);
+
+ vsi1 = vec_vcmpbfp (vf1, vf2);
+ vbi1 = vec_vcmpeqfp (vf1, vf2);
+
+ vbc1 = vec_vcmpequb (vuc1, vuc2);
+ vbs2 = vec_vcmpequh (vus1, vus2);
+ vbi1 = vec_vcmpequw (vui1, vui2);
+
+ vbi1 = vec_vcmpgefp (vf1, vf2);
+ vbi2 = vec_vcmpgtfp (vf1, vf2);
+
+ vbc1 = vec_vcmpgtsb (vsc1, vsc2);
+ vbs1 = vec_vcmpgtsh (vss1, vss2);
+ vbi1 = vec_vcmpgtsw (vsi1, vsi2);
+
+ vbc1 = vec_vcmpgtub (vuc1, vuc2);
+ vbs1 = vec_vcmpgtuh (vus1, vus2);
+ vbi1 = vec_vcmpgtuw (vui1, vui2);
+
+ vsi1 = vec_vctsxs (vf1, 22);
+ vui1 = vec_vctuxs (vf2, 30);
+
+ vf2 = vec_vexptefp (vf1);
+ vf1 = vec_vlogefp (vf2);
+ vf2 = vec_vmaddfp (vf1, vf2, vf2);
+
+ vf1 = vec_vmaxfp (vf1, vf2);
+ vsc1 = vec_vmaxsb (vsc1, vsc2);
+ vss1 = vec_vmaxsh (vss1, vss2);
+ vsi1 = vec_vmaxsw (vsi1, vsi2);
+ vuc1 = vec_vmaxub (vuc1, vuc2);
+ vus1 = vec_vmaxuh (vus1, vus2);
+ vui1 = vec_vmaxuw (vui1, vui2);
+
+ vbc1 = vec_vmrghb (vbc1, vbc2);
+ vp1 = vec_vmrghh (vp1, vp2);
+ vf2 = vec_vmrghw (vf2, vf1);
+
+ vbc1 = vec_vmrglb (vbc1, vbc2);
+ vp1 = vec_vmrglh (vp1, vp2);
+ vf2 = vec_vmrglw (vf2, vf1);
+
+ vf1 = vec_vminfp (vf1, vf2);
+ vsc1 = vec_vminsb (vsc1, vsc2);
+ vss1 = vec_vminsh (vss1, vss2);
+ vsi1 = vec_vminsw (vsi1, vsi2);
+ vuc1 = vec_vminub (vuc1, vuc2);
+ vus1 = vec_vminuh (vus1, vus2);
+ vui1 = vec_vminuw (vui1, vui2);
+
+ vss1 = vec_vmhaddshs (vss1, vss2, vss2);
+ vss2 = vec_vmhraddshs (vss1, vss2, vss2);
+ vus1 = vec_vmladduhm (vus1, vus1, vus2);
+ vui1 = vec_vmsumubm (vuc1, vuc2, vui1);
+ vsi1 = vec_vmsummbm (vsc1, vuc2, vsi1);
+ vsi2 = vec_vmsumshm (vss1, vss2, vsi1);
+ vui1 = vec_vmsumuhm (vus1, vus2, vui2);
+ vui2 = vec_vmsumuhs (vus1, vus2, vui1);
+ vsi2 = vec_vmsumshs (vss1, vss1, vsi2);
+
+ vus1 = vec_vmuleub (vuc1, vuc2);
+ vss1 = vec_vmulesb (vsc1, vsc2);
+ vui1 = vec_vmuleuh (vus1, vus2);
+ vsi1 = vec_vmulesh (vss1, vss2);
+
+ vus2 = vec_vmuloub (vuc1, vuc2);
+ vss2 = vec_vmulosb (vsc1, vsc2);
+ vui2 = vec_vmulouh (vus1, vus2);
+ vsi2 = vec_vmulosh (vss1, vss2);
+
+ vf1 = vec_vnmsubfp (vf1, vf2, vf1);
+
+ vp1 = vec_vnor (vp1, vp2);
+ vf2 = vec_vor (vf2, vbi1);
+ vf2 = vec_vxor (vf2, vbi1);
+
+ vsc1 = vec_vpkuhum (vss1, vss2);
+ vbs1 = vec_vpkuwum (vbi1, vbi2);
+ vp1 = vec_vpkpx (vui1, vui2);
+ vuc1 = vec_vpkuhus (vus1, vus1);
+ vsc1 = vec_vpkshss (vss1, vss2);
+ vus1 = vec_vpkuwus (vui1, vui2);
+ vss2 = vec_vpkswss (vsi1, vsi1);
+ vuc1 = vec_vpkshus (vss1, vss2);
+ vus1 = vec_vpkswus (vsi1, vsi1);
+
+ vp1 = vec_vperm (vp1, vp2, vuc1);
+
+ vf1 = vec_vrefp (vf2);
+ vf2 = vec_vrfin (vf1);
+ vf1 = vec_vrsqrtefp (vf2);
+
+ vuc1 = vec_vrlb (vuc1, vuc2);
+ vss1 = vec_vrlh (vss2, vss1);
+ vui2 = vec_vrlw (vui2, vui1);
+
+ vf1 = vec_vsel (vf2, vf1, vbi1);
+
+ vuc1 = vec_vslb (vuc1, vuc2);
+ vss1 = vec_vslh (vss2, vss1);
+ vui2 = vec_vslw (vui2, vui1);
+
+ vp1 = vec_vsldoi (vp2, vp1, 14);
+ vp2 = vec_vsl (vp1, vuc1);
+ vp1 = vec_vslo (vp2, vuc1);
+
+ vbc1 = vec_vspltb (vbc1, 9);
+ vp2 = vec_vsplth (vp1, 7);
+ vf1 = vec_vspltw (vf2, 31);
+ vsc2 = vec_vspltisb (15);
+ vss1 = vec_vspltish (14);
+ vsi1 = vec_vspltisw (13);
+
+ vuc1 = vec_vsrb (vuc1, vuc2);
+ vss1 = vec_vsrh (vss2, vss1);
+ vui2 = vec_vsrw (vui2, vui1);
+ vuc2 = vec_vsrab (vuc1, vuc2);
+ vss2 = vec_vsrah (vss2, vss1);
+ vui1 = vec_vsraw (vui2, vui1);
+ vp2 = vec_vsr (vp1, vuc1);
+ vp1 = vec_vsro (vp2, vuc1);
+
+ vui1 = vec_vsubcuw (vui1, vui2);
+ vf1 = vec_vsubfp (vf1, vf2);
+ vsc1 = vec_vsubsbs (vsc1, vsc2);
+ vss1 = vec_vsubshs (vss1, vss2);
+ vsi1 = vec_vsubsws (vsi1, vsi2);
+ vuc1 = vec_vsububs (vuc1, vuc2);
+ vus1 = vec_vsubuhs (vus1, vus2);
+ vui1 = vec_vsubuws (vui1, vui2);
+ vuc1 = vec_vsububm (vuc1, vuc2);
+ vus1 = vec_vsubuhm (vus1, vus2);
+ vui1 = vec_vsubuwm (vui1, vui2);
+
+ vui2 = vec_vsum4ubs (vuc1, vui1);
+ vsi1 = vec_vsum4sbs (vsc2, vsi1);
+ vsi1 = vec_vsum2sws (vsi1, vsi1);
+ vsi2 = vec_vsumsws (vsi2, vsi1);
+
+ vf2 = vec_vrfiz (vf1);
+
+ vbs1 = vec_vupkhsb (vbc1);
+ vui1 = vec_vupkhpx (vp1);
+ vbi1 = vec_vupkhsh (vbs1);
+
+ vss1 = vec_vupklsb (vsc1);
+ vui1 = vec_vupklpx (vp2);
+ vbi1 = vec_vupklsh (vbs1);
+
+ return vsi1;
+}
+
+/* { dg-final { scan-assembler "\tlvebx " } } */
+/* { dg-final { scan-assembler "\tlvehx " } } */
+/* { dg-final { scan-assembler "\tlvewx " } } */
+/* { dg-final { scan-assembler "\tlvx " } } */
+/* { dg-final { scan-assembler "\tlvxl " } } */
+/* { dg-final { scan-assembler "\tstvebx " } } */
+/* { dg-final { scan-assembler "\tstvehx " } } */
+/* { dg-final { scan-assembler "\tstvewx " } } */
+/* { dg-final { scan-assembler "\tstvx " } } */
+/* { dg-final { scan-assembler "\tstvxl " } } */
+
+/* { dg-final { scan-assembler "\tvaddcuw " } } */
+/* { dg-final { scan-assembler "\tvaddfp " } } */
+/* { dg-final { scan-assembler "\tvaddsbs " } } */
+/* { dg-final { scan-assembler "\tvaddshs " } } */
+/* { dg-final { scan-assembler "\tvaddsws " } } */
+/* { dg-final { scan-assembler "\tvaddubs " } } */
+/* { dg-final { scan-assembler "\tvadduhs " } } */
+/* { dg-final { scan-assembler "\tvadduws " } } */
+/* { dg-final { scan-assembler "\tvaddubm " } } */
+/* { dg-final { scan-assembler "\tvadduhm " } } */
+/* { dg-final { scan-assembler "\tvadduwm " } } */
+
+/* { dg-final { scan-assembler "\tvand " } } */
+/* { dg-final { scan-assembler "\tvandc " } } */
+
+/* { dg-final { scan-assembler "\tvavgsb " } } */
+/* { dg-final { scan-assembler "\tvavgsh " } } */
+/* { dg-final { scan-assembler "\tvavgsw " } } */
+/* { dg-final { scan-assembler "\tvavgub " } } */
+/* { dg-final { scan-assembler "\tvavguh " } } */
+/* { dg-final { scan-assembler "\tvavguw " } } */
+
+/* { dg-final { scan-assembler "\tvcfsx " } } */
+/* { dg-final { scan-assembler "\tvcfux " } } */
+
+/* { dg-final { scan-assembler "\tvcmpbfp " } } */
+/* { dg-final { scan-assembler "\tvcmpeqfp " } } */
+
+/* { dg-final { scan-assembler "\tvcmpequb " } } */
+/* { dg-final { scan-assembler "\tvcmpequh " } } */
+/* { dg-final { scan-assembler "\tvcmpequw " } } */
+
+/* { dg-final { scan-assembler "\tvcmpgefp " } } */
+/* { dg-final { scan-assembler "\tvcmpgtfp " } } */
+
+/* { dg-final { scan-assembler "\tvcmpgtsb " } } */
+/* { dg-final { scan-assembler "\tvcmpgtsh " } } */
+/* { dg-final { scan-assembler "\tvcmpgtsw " } } */
+
+/* { dg-final { scan-assembler "\tvcmpgtub " } } */
+/* { dg-final { scan-assembler "\tvcmpgtuh " } } */
+/* { dg-final { scan-assembler "\tvcmpgtuw " } } */
+
+/* { dg-final { scan-assembler "\tvctsxs " } } */
+/* { dg-final { scan-assembler "\tvctuxs " } } */
+
+/* { dg-final { scan-assembler "\tvexptefp " } } */
+/* { dg-final { scan-assembler "\tvlogefp " } } */
+/* { dg-final { scan-assembler "\tvmaddfp " } } */
+
+/* { dg-final { scan-assembler "\tvmaxfp " } } */
+/* { dg-final { scan-assembler "\tvmaxsb " } } */
+/* { dg-final { scan-assembler "\tvmaxsh " } } */
+/* { dg-final { scan-assembler "\tvmaxsw " } } */
+/* { dg-final { scan-assembler "\tvmaxub " } } */
+/* { dg-final { scan-assembler "\tvmaxuh " } } */
+/* { dg-final { scan-assembler "\tvmaxuw " } } */
+
+/* { dg-final { scan-assembler "\tvmrghb " } } */
+/* { dg-final { scan-assembler "\tvmrghh " } } */
+/* { dg-final { scan-assembler "\tvmrghw " } } */
+
+/* { dg-final { scan-assembler "\tvmrglb " } } */
+/* { dg-final { scan-assembler "\tvmrglh " } } */
+/* { dg-final { scan-assembler "\tvmrglw " } } */
+
+/* { dg-final { scan-assembler "\tvminfp " } } */
+/* { dg-final { scan-assembler "\tvminsb " } } */
+/* { dg-final { scan-assembler "\tvminsh " } } */
+/* { dg-final { scan-assembler "\tvminsw " } } */
+/* { dg-final { scan-assembler "\tvminub " } } */
+/* { dg-final { scan-assembler "\tvminuh " } } */
+/* { dg-final { scan-assembler "\tvminuw " } } */
+
+/* { dg-final { scan-assembler "\tvmhaddshs " } } */
+/* { dg-final { scan-assembler "\tvmhraddshs " } } */
+/* { dg-final { scan-assembler "\tvmladduhm " } } */
+/* { dg-final { scan-assembler "\tvmsumubm " } } */
+/* { dg-final { scan-assembler "\tvmsummbm " } } */
+/* { dg-final { scan-assembler "\tvmsumshm " } } */
+/* { dg-final { scan-assembler "\tvmsumuhm " } } */
+/* { dg-final { scan-assembler "\tvmsumuhs " } } */
+/* { dg-final { scan-assembler "\tvmsumshs " } } */
+
+/* { dg-final { scan-assembler "\tvmuleub " } } */
+/* { dg-final { scan-assembler "\tvmulesb " } } */
+/* { dg-final { scan-assembler "\tvmuleuh " } } */
+/* { dg-final { scan-assembler "\tvmulesh " } } */
+
+/* { dg-final { scan-assembler "\tvmuloub " } } */
+/* { dg-final { scan-assembler "\tvmulosb " } } */
+/* { dg-final { scan-assembler "\tvmulouh " } } */
+/* { dg-final { scan-assembler "\tvmulosh " } } */
+
+/* { dg-final { scan-assembler "\tvnmsubfp " } } */
+
+/* { dg-final { scan-assembler "\tvnor " } } */
+/* { dg-final { scan-assembler "\tvor " } } */
+/* { dg-final { scan-assembler "\tvxor " } } */
+
+/* { dg-final { scan-assembler "\tvpkuhum " } } */
+/* { dg-final { scan-assembler "\tvpkuwum " } } */
+/* { dg-final { scan-assembler "\tvpkpx " } } */
+/* { dg-final { scan-assembler "\tvpkuhus " } } */
+/* { dg-final { scan-assembler "\tvpkshss " } } */
+/* { dg-final { scan-assembler "\tvpkuwus " } } */
+/* { dg-final { scan-assembler "\tvpkswss " } } */
+/* { dg-final { scan-assembler "\tvpkshus " } } */
+/* { dg-final { scan-assembler "\tvpkswus " } } */
+
+/* { dg-final { scan-assembler "\tvperm " } } */
+
+/* { dg-final { scan-assembler "\tvrefp " } } */
+/* { dg-final { scan-assembler "\tvrfin " } } */
+/* { dg-final { scan-assembler "\tvrsqrtefp " } } */
+
+/* { dg-final { scan-assembler "\tvrlb " } } */
+/* { dg-final { scan-assembler "\tvrlh " } } */
+/* { dg-final { scan-assembler "\tvrlw " } } */
+
+/* { dg-final { scan-assembler "\tvsel " } } */
+
+/* { dg-final { scan-assembler "\tvslb " } } */
+/* { dg-final { scan-assembler "\tvslh " } } */
+/* { dg-final { scan-assembler "\tvslw " } } */
+
+/* { dg-final { scan-assembler "\tvsldoi " } } */
+/* { dg-final { scan-assembler "\tvsl " } } */
+/* { dg-final { scan-assembler "\tvslo " } } */
+
+/* { dg-final { scan-assembler "\tvspltb " } } */
+/* { dg-final { scan-assembler "\tvsplth " } } */
+/* { dg-final { scan-assembler "\tvspltw " } } */
+/* { dg-final { scan-assembler "\tvspltisb " } } */
+/* { dg-final { scan-assembler "\tvspltish " } } */
+/* { dg-final { scan-assembler "\tvspltisw " } } */
+
+/* { dg-final { scan-assembler "\tvsrb " } } */
+/* { dg-final { scan-assembler "\tvsrh " } } */
+/* { dg-final { scan-assembler "\tvsrw " } } */
+/* { dg-final { scan-assembler "\tvsrab " } } */
+/* { dg-final { scan-assembler "\tvsrah " } } */
+/* { dg-final { scan-assembler "\tvsraw " } } */
+/* { dg-final { scan-assembler "\tvsr " } } */
+/* { dg-final { scan-assembler "\tvsro " } } */
+
+/* { dg-final { scan-assembler "\tvsubcuw " } } */
+/* { dg-final { scan-assembler "\tvsubfp " } } */
+/* { dg-final { scan-assembler "\tvsubsbs " } } */
+/* { dg-final { scan-assembler "\tvsubshs " } } */
+/* { dg-final { scan-assembler "\tvsubsws " } } */
+/* { dg-final { scan-assembler "\tvsububs " } } */
+/* { dg-final { scan-assembler "\tvsubuhs " } } */
+/* { dg-final { scan-assembler "\tvsubuws " } } */
+/* { dg-final { scan-assembler "\tvsububm " } } */
+/* { dg-final { scan-assembler "\tvsubuhm " } } */
+/* { dg-final { scan-assembler "\tvsubuwm " } } */
+
+/* { dg-final { scan-assembler "\tvsum4ubs " } } */
+/* { dg-final { scan-assembler "\tvsum4sbs " } } */
+/* { dg-final { scan-assembler "\tvsum2sws " } } */
+/* { dg-final { scan-assembler "\tvsumsws " } } */
+
+/* { dg-final { scan-assembler "\tvrfiz " } } */
+
+/* { dg-final { scan-assembler "\tvupkhsb " } } */
+/* { dg-final { scan-assembler "\tvupkhpx " } } */
+/* { dg-final { scan-assembler "\tvupkhsh " } } */
+
+/* { dg-final { scan-assembler "\tvupklsb " } } */
+/* { dg-final { scan-assembler "\tvupklpx " } } */
+/* { dg-final { scan-assembler "\tvupklsh " } } */
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-13.c b/gcc/testsuite/gcc.apple/apple-altivec-13.c
new file mode 100644
index 00000000000..f680d20eb7a
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-13.c
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file AltiVec */
+/* Additional AltiVec PIM argument type combinations. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -Wall" } */
+
+vector signed int
+LoadUnalignedSI( signed int *p)
+{
+ vector signed int vload1 = vec_ld( 0, (vector signed int *)p);
+ if ( ((int)p) * 0xF){
+ vector signed int vload2 = vec_ld( 16, (vector signed int *)p);
+ vector unsigned char vperm = vec_ldl( 0, p);
+
+ vload1 = vec_perm(vload1, vload2, vperm);
+ }
+ return vload1;
+}
+
+inline vector float Reciprocal( vector float v )
+{
+
+ vector float estimate = vec_re( v );
+
+ return vec_madd( vec_nmsub( estimate, v, (vector float) (1.0) ), estimate, estimate );
+}
+
+void foo(void) {
+ vector bool char vbc1 = (vector bool char)(255);
+ vector pixel vp1, vp2;
+ vector float vf1, vf2;
+ vector unsigned char vuc1;
+ vector unsigned short vus1, vus2;
+ vector bool short vbs1, vbs2;
+ vector signed short vss1;
+ vector signed int vsi1, vsi2;
+ vbc1 = vec_splat (vbc1, 9);
+ vp2 = vec_splat (vp1, 7);
+ vf1 = vec_splat (vf2, 31);
+ vuc1 = vec_pack (vus1, vus2);
+ vbc1 = vec_pack (vbs1, vbs2);
+ vss1 = vec_pack (vsi1, vsi2);
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-14.c b/gcc/testsuite/gcc.apple/apple-altivec-14.c
new file mode 100644
index 00000000000..0bb1dcd1d3a
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-14.c
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+/* Existing AltiVec PIM implementations allow numeric literals with
+ any number of bits, so long as the value is within allowed range. */
+int foo(void)
+{
+ vector unsigned char amask = vec_splat_u8 ( 0xFFFFFFF3L );
+ vector signed short bmask = vec_splat_s16 ( 0xFFFFFFFFFFFFFFF1LL );
+}
+
+
+/* { dg-final { scan-assembler "vspltisb.+\\-13" } } */
+/* { dg-final { scan-assembler "vspltish.+\\-15" } } */
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-15.c b/gcc/testsuite/gcc.apple/apple-altivec-15.c
new file mode 100644
index 00000000000..96bee290c9b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-15.c
@@ -0,0 +1,39 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+union agg_def {
+ vector unsigned int v ;
+ unsigned int i;
+};
+
+extern void abort();
+
+int my_vec_all_eq(union agg_def a, union agg_def b);
+int compare(int d1, int d2);
+
+int main() {
+ union agg_def a, b, d1, d2;
+
+ d1.i = 0;
+ d2.i = 1;
+ a.v = (vector unsigned int) (2,3,4,5);
+ b.v = (vector unsigned int) (2,3,4,5);
+
+ d1.i = my_vec_all_eq(a, b);
+ d2.i = vec_all_eq(a.v, b.v);
+
+ if (compare(d1.i, d2.i))
+ return 0;
+ else
+ abort();
+}
+
+int my_vec_all_eq(union agg_def a, union agg_def b) {
+ return vec_all_eq(a.v, b.v);
+}
+
+int compare(int d1, int d2) {
+ return (d1 == d2);
+}
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-2.c b/gcc/testsuite/gcc.apple/apple-altivec-2.c
new file mode 100644
index 00000000000..dddf761b670
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-2.c
@@ -0,0 +1,95 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec" } */
+
+/* Program to test PowerPC AltiVec instructions. */
+
+#include "../gcc.dg/altivec_check.h"
+
+extern void abort (void);
+#define CHECK_IF(E) if(!(E)) abort()
+
+vector int a1 = (vector int)( 100, 200, 300, 400 );
+vector int a2 = (vector int)( 500, 600, 700, 800 );
+vector int addi = (vector int)( 600, 800, 1000, 1200 );
+vector int avgi = (vector int)( 300, 400, 500, 600 );
+
+vector float f1 = (vector float)( 1.0, 2.0, 3.0, 4.0 );
+vector float f2 = (vector float)( 5.0, 6.0, 7.0, 8.0 );
+vector float f3;
+vector float addf1 = (vector float)( 6.0, 8.0, 10.0, 12.0 );
+vector float addf2 = (vector float)( 6.1, 8.1, 10.1, 12.1 );
+vector float addf3 = (vector float)( 6.0, 8.0, 9.9, 12.1 );
+vector int k;
+vector float f, g, h;
+
+int main ()
+{
+
+ altivec_check(); /* Exit if AltiVec not available. */
+
+ k = vec_add (a1, a2);
+ CHECK_IF (vec_all_eq (addi, k));
+ CHECK_IF (vec_all_ge (addi, k));
+ CHECK_IF (vec_all_le (addi, k));
+ CHECK_IF (vec_any_eq (addi, k));
+ CHECK_IF (vec_any_ge (addi, k));
+ CHECK_IF (vec_any_le (addi, k));
+ CHECK_IF (!vec_any_ne (addi, k));
+ CHECK_IF (!vec_any_lt (addi, k));
+ CHECK_IF (!vec_any_gt (addi, k));
+ CHECK_IF (!vec_any_ne (addi, k));
+ CHECK_IF (!vec_any_lt (addi, k));
+ CHECK_IF (!vec_any_gt (addi, k));
+
+ k = vec_avg (a1, a2);
+ CHECK_IF (vec_all_eq (k, avgi));
+
+ h = vec_add (f1, f2);
+ CHECK_IF (vec_all_eq (h, addf1));
+ CHECK_IF (vec_all_ge (h, addf1));
+ CHECK_IF (vec_all_le (h, addf1));
+ CHECK_IF (vec_any_eq (h, addf1));
+ CHECK_IF (vec_any_ge (h, addf1));
+ CHECK_IF (vec_any_le (h, addf1));
+ CHECK_IF (!vec_any_ne (h, addf1));
+ CHECK_IF (!vec_any_lt (h, addf1));
+ CHECK_IF (!vec_any_gt (h, addf1));
+ CHECK_IF (!vec_any_ne (h, addf1));
+ CHECK_IF (!vec_any_lt (h, addf1));
+ CHECK_IF (!vec_any_gt (h, addf1));
+
+ CHECK_IF (vec_all_gt (addf2, addf1));
+ CHECK_IF (vec_any_gt (addf2, addf1));
+ CHECK_IF (vec_all_ge (addf2, addf1));
+ CHECK_IF (vec_any_ge (addf2, addf1));
+ CHECK_IF (vec_all_ne (addf2, addf1));
+ CHECK_IF (vec_any_ne (addf2, addf1));
+ CHECK_IF (!vec_all_lt (addf2, addf1));
+ CHECK_IF (!vec_any_lt (addf2, addf1));
+ CHECK_IF (!vec_all_le (addf2, addf1));
+ CHECK_IF (!vec_any_le (addf2, addf1));
+ CHECK_IF (!vec_all_eq (addf2, addf1));
+ CHECK_IF (!vec_any_eq (addf2, addf1));
+
+ CHECK_IF (vec_any_eq (addf3, addf1));
+ CHECK_IF (vec_any_ne (addf3, addf1));
+ CHECK_IF (vec_any_lt (addf3, addf1));
+ CHECK_IF (vec_any_le (addf3, addf1));
+ CHECK_IF (vec_any_gt (addf3, addf1));
+ CHECK_IF (vec_any_ge (addf3, addf1));
+ CHECK_IF (!vec_all_eq (addf3, addf1));
+ CHECK_IF (!vec_all_ne (addf3, addf1));
+ CHECK_IF (!vec_all_lt (addf3, addf1));
+ CHECK_IF (!vec_all_le (addf3, addf1));
+ CHECK_IF (!vec_all_gt (addf3, addf1));
+ CHECK_IF (!vec_all_ge (addf3, addf1));
+
+ CHECK_IF (vec_all_numeric (addf3));
+ CHECK_IF (vec_all_in (addf1, addf2));
+
+ CHECK_IF (vec_step (vector bool char) == 16);
+ CHECK_IF (vec_step (addf3) == 4);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-3.c b/gcc/testsuite/gcc.apple/apple-altivec-3.c
new file mode 100644
index 00000000000..1112913de1b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-3.c
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file AltiVec */
+/* Providing '-maltivec' should ensure that AltiVec codegen for block copies is enabled,
+ even if '-faltivec' is also specified. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -maltivec" } */
+typedef struct { vector int a; vector int b; } Scld1;
+
+void testvaScld1 (int n, Scld1);
+
+void foo ()
+{
+ Scld1 g1sScld1;
+ testvaScld1 (1, g1sScld1); /* { dg-bogus "disabled" } */
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-4.c b/gcc/testsuite/gcc.apple/apple-altivec-4.c
new file mode 100644
index 00000000000..d05aac5fedc
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-4.c
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file AltiVec */
+/* Additional AltiVec PIM argument type combinations. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec" } */
+
+typedef float R;
+typedef vector float V;
+V gV = (vector float)(0.3, 0.4, 0.5, 0.6);
+
+void foo(int ovs) {
+ vector float vFGravity1, vFGravity2, vCombined1OverR_12 = (vector float)(0.3);
+ V v; R *x = (R *)&gV;
+
+ vFGravity1 = vec_mergeh(vCombined1OverR_12, vCombined1OverR_12);
+ vFGravity2 = vec_mergel(vCombined1OverR_12, vCombined1OverR_12);
+
+ vec_ste (v, 0, x);
+ vec_ste (v, 4 + ovs, x);
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-5.c b/gcc/testsuite/gcc.apple/apple-altivec-5.c
new file mode 100644
index 00000000000..0c7dd9bcb60
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-5.c
@@ -0,0 +1,31 @@
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern void abort();
+
+int main()
+{
+ vector float tiny = (vector float) ((vector unsigned int) (0x00800000, 0xBF800000, 0x3E800000, 0));
+ unsigned int af[4] = {
+ (unsigned int)(unsigned int)0x00800000,
+ (unsigned int)(unsigned int)0xBF800000,
+ (unsigned int)(unsigned int)0x3E800000,
+ (unsigned int)(unsigned int)0};
+
+ union u {
+ vector float vf;
+ unsigned int ai[4];
+ }vu;
+ int i;
+
+ vu.vf = tiny;
+
+ for (i=0; i < 4; i++)
+ if (af[i] != vu.ai[i])
+ abort();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-6.c b/gcc/testsuite/gcc.apple/apple-altivec-6.c
new file mode 100644
index 00000000000..09e1f6861bf
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-6.c
@@ -0,0 +1,31 @@
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern void abort();
+
+int main()
+{
+ vector unsigned int tiny = (vector unsigned int) ((vector signed int) (0x00800000, 0xBF800000, 0x3E800000, 0));
+ unsigned int af[4] = {
+ (signed int)0x00800000,
+ (signed int)0xBF800000,
+ (signed int)0x3E800000,
+ (signed int)0};
+
+ union u {
+ vector unsigned int vf;
+ unsigned int ai[4];
+ }vu;
+ int i;
+
+ vu.vf = tiny;
+
+ for (i=0; i < 4; i++)
+ if (af[i] != vu.ai[i])
+ abort();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-7.c b/gcc/testsuite/gcc.apple/apple-altivec-7.c
new file mode 100644
index 00000000000..ffbb408aadd
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-7.c
@@ -0,0 +1,34 @@
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern void abort();
+
+int main()
+{
+
+ static vector float vINF =
+ ( vector float ) ( ( vector unsigned int ) ( 0x7F800000, 0x7F800000, 0x7F800000, 0x7F800000 ) );
+
+ unsigned int af[4] = {
+ (unsigned int)0x7F800000,
+ (unsigned int)0x7F800000,
+ (unsigned int)0x7F800000,
+ (unsigned int)0x7F800000};
+
+ union u {
+ vector float vf;
+ unsigned int ai[4];
+ }vu;
+
+ int i;
+
+ vu.vf = vINF;
+
+ for (i=0; i < 4; i++)
+ if (af[i] != vu.ai[i])
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-8.c b/gcc/testsuite/gcc.apple/apple-altivec-8.c
new file mode 100644
index 00000000000..fb2389526d2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-8.c
@@ -0,0 +1,36 @@
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-maltivec -O2" } */
+
+/* ICEs at -O1 or more */
+
+#include <altivec.h>
+
+extern void abort();
+
+int main()
+{
+
+ const static vector float vINF =
+ ( vector float ) ( ( vector unsigned int ) ( 0x7F800000, 0x7F800000, 0x7F800000, 0x7F800000 ) );
+
+ unsigned int af[4] = {
+ (unsigned int)0x7F800000,
+ (unsigned int)0x7F800000,
+ (unsigned int)0x7F800000,
+ (unsigned int)0x7F800000};
+
+ union u {
+ vector float vf;
+ unsigned int ai[4];
+ }vu;
+
+ int i;
+
+ vu.vf = vINF;
+
+ for (i=0; i < 4; i++)
+ if (af[i] != vu.ai[i])
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-9.c b/gcc/testsuite/gcc.apple/apple-altivec-9.c
new file mode 100644
index 00000000000..938baca5356
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-9.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec -ftrapping-math" } */
+
+int vConvert_PlanarFtoPlanar16F( )
+{
+ vector float twoP10 = (vector float) (0x1.0p+10f, 0x1.0p+24f, 0x1.0p+102f, 1.0f/0.0f );
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-abi-test.c b/gcc/testsuite/gcc.apple/apple-altivec-abi-test.c
new file mode 100644
index 00000000000..5361cc7d314
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-abi-test.c
@@ -0,0 +1,39 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-O -faltivec" } */
+/* { dg-final { scan-assembler "vspltisw v2,1" } } */
+/* { dg-final { scan-assembler "vspltisw v3,2" } } */
+/* { dg-final { scan-assembler "vspltisw v4,3" } } */
+/* { dg-final { scan-assembler "vspltisw v5,4" } } */
+/* { dg-final { scan-assembler "vspltisw v6,5" } } */
+/* { dg-final { scan-assembler "vspltisw v7,6" } } */
+/* { dg-final { scan-assembler "vspltisw v8,7" } } */
+/* { dg-final { scan-assembler "vspltisw v9,8" } } */
+/* { dg-final { scan-assembler "vspltisw v10,9" } } */
+/* { dg-final { scan-assembler "vspltisw v11,10" } } */
+/* { dg-final { scan-assembler "vspltisw v12,11" } } */
+/* { dg-final { scan-assembler "vspltisw v13,12" } } */
+
+void
+foo (vector signed int v0, vector signed int v1, vector signed int v2,
+ vector signed int v3, vector signed int v4, vector signed int v5,
+ vector signed int v6, vector signed int v7, vector signed int v8,
+ vector signed int v9, vector signed int v10, vector signed int v11,
+ vector signed int v12,
+ int z, double u);
+
+int main(void)
+{
+ foo ((vector signed int) ( 1 ), (vector signed int) ( 2 ),
+ (vector signed int) ( 3 ),
+ (vector signed int) ( 4 ), (vector signed int) ( 5 ),
+ (vector signed int) ( 6 ), (vector signed int) ( 7 ),
+ (vector signed int) ( 8 ), (vector signed int) ( 9 ),
+ (vector signed int) ( 10 ), (vector signed int) ( 11 ),
+ (vector signed int) ( 12 ), (vector signed int) ( 13 ),
+ 20, 3.0);
+}
+
+
+
+
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-abi.c b/gcc/testsuite/gcc.apple/apple-altivec-abi.c
new file mode 100644
index 00000000000..264791801c9
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-abi.c
@@ -0,0 +1,66 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+#include <stdio.h>
+
+typedef vector signed int VSI;
+
+VSI VI(
+ VSI v2,
+ int gpr3,
+ VSI v3,
+ int gpr4,
+ VSI v4,
+ int gpr5,
+ VSI v5,
+ int gpr6,
+ int gpr7,
+ int gpr8,
+ int gpr9,
+ VSI v6,
+ int gpr10, /* gpr3-gpr10 in registers */
+ VSI v7,
+ VSI v8,
+ VSI v9,
+ VSI v10,
+ VSI v11,
+ VSI v12,
+ VSI v13, /* All in v2-v13 */
+ volatile VSI v14,
+ int gpr11,
+ int gpr12,
+ int gpr13,
+ int gpr14,
+ VSI v15,
+ VSI v16, int* sum)
+{
+ *sum = gpr3 + gpr4 + gpr5 + gpr6 + gpr7 + gpr8 + gpr9 + gpr10 + gpr11 + gpr12 + gpr13 + gpr14;
+ return v2+v3+v4+v5+v6+v7+v8+v9+v10+v11+v12+v13+v14+v15+v16;
+}
+
+extern void abort();
+
+int main()
+{
+ union u {
+ VSI uv;
+ int val[4];
+ } union_var;
+
+ int i;
+
+ int sum;
+ union_var.uv =
+ VI((VSI){1,1,1,1},3,(VSI){1,1,1,1},4,(VSI){1,1,1,1},5,(VSI){1,1,1,1},6,7,8,9,
+ (VSI){1,1,1,1},10,(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},
+ (VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},11,12,13,14,
+ (VSI){1,1,1,1},(VSI){1,1,1,1}, &sum);
+ if (sum != 102)
+ abort();
+
+ for (i=0; i < 4; i++)
+ if (union_var.val[i] != 15)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/apple-altivec-builtin-nanf.c b/gcc/testsuite/gcc.apple/apple-altivec-builtin-nanf.c
new file mode 100644
index 00000000000..fb9253929f2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/apple-altivec-builtin-nanf.c
@@ -0,0 +1,8 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-faltivec" } */
+
+void _sqrt()
+{
+ __vector float vNAN = (__vector float)(__builtin_nanf("0x7fc00000"));
+}
diff --git a/gcc/testsuite/gcc.apple/applecc.c b/gcc/testsuite/gcc.apple/applecc.c
new file mode 100644
index 00000000000..757ad573272
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/applecc.c
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file Apple version */
+/* { dg-do compile } */
+
+#if __APPLE_CC__ < 1000
+#error build number too small
+#endif
+#if __APPLE_CC__ > 32768
+#error build number too big
+#endif
+#if ! ( __APPLE_CC__ > 1000)
+#error build number not really a number
+#endif
+
+int x = __APPLE_CC__;
diff --git a/gcc/testsuite/gcc.apple/asm-array-ref.c b/gcc/testsuite/gcc.apple/asm-array-ref.c
new file mode 100644
index 00000000000..c66c29bc734
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-array-ref.c
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+struct x {
+ int filler;
+ float f[100];
+};
+
+asm void func()
+{
+ lwz r4, x.f[0](r2)
+ lwz r5, x.f[0]+4(r2)
+}
+
+int main (int argc, char * const argv[])
+{
+ func();
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-block-1.c b/gcc/testsuite/gcc.apple/asm-block-1.c
new file mode 100644
index 00000000000..3ad73fb12f7
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-block-1.c
@@ -0,0 +1,75 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test asm-syntax blocks within functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+void abort(void);
+
+int
+foo (int argx, int argy)
+{
+ register int locx = argx, locy = argy, rslt;
+ asm {
+ add rslt,locx,locy
+ }
+ return rslt;
+}
+
+/* Exercise corners of syntax. */
+
+int
+bar ()
+{
+ register int rslt = 100;
+ asm {
+ // Combos of instructions on a line
+
+ nop
+ ;
+ nop
+ nop ;
+ ; nop
+ nop ; nop
+ ; nop ;;; li r3,95 ; nop ;
+ // '.' in an opcode
+ add. r6,r6,r5
+ }
+ return rslt;
+}
+
+int baz ()
+{
+ register int rslt = 1;
+ asm {
+ li r8,29+(2 * 3);
+ add rslt,rslt,r8;
+ b @192
+ @34
+ nop
+ ble+ @34
+ b forward
+ abc:
+ b abc
+ @abc:
+ b @abc
+ forward: ; @192:
+ nop
+ ;
+ sameline: nop
+ x1: @x2 @x3: nop ; @x4 x5:
+ }
+ return rslt;
+}
+
+int
+main ()
+{
+ if (foo (22, 23) != 45)
+ abort ();
+ if (bar () != 100)
+ abort ();
+ if (baz () != 36)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/asm-block-2.c b/gcc/testsuite/gcc.apple/asm-block-2.c
new file mode 100644
index 00000000000..586f2c73357
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-block-2.c
@@ -0,0 +1,88 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test structure refs in asm-syntax blocks within functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+
+typedef struct astruct {
+ int arr[40];
+ char charfield;
+ int fieldx;
+ int fieldy;
+} atypedef;
+
+union aunion {
+ int field1;
+ int field2;
+};
+
+int fun1 (struct astruct *x)
+{
+ int loc;
+ asm {
+ lwz loc, astruct.fieldx(x)
+ addi loc, loc, 42
+ stw loc, astruct.fieldx+4(x)
+ }
+ return loc;
+}
+
+int fun2 (atypedef *x)
+{
+ int loc;
+
+ asm {
+ lwz loc, atypedef.fieldx(r3)
+ addi loc, loc, 43
+ stw loc, 4 + astruct.fieldx(x)
+ }
+ return loc;
+}
+
+int fun3(int arg)
+{
+ int loc;
+
+ asm {
+ mr loc, r3
+ addi loc, loc, aunion.field1
+ }
+ return loc;
+}
+
+int fun4 (struct astruct *arg)
+{
+ int loc;
+ asm {
+ lbz loc, arg->charfield
+ addi loc, loc, 1
+ }
+ return loc;
+}
+
+struct astruct glob;
+union uglob;
+
+int
+main ()
+{
+ glob.charfield = 'b';
+ glob.fieldx = 22;
+ if (fun1 (&glob) != 64)
+ abort ();
+ if (glob.fieldy != 64)
+ abort ();
+ if (fun2 (&glob) != 65)
+ abort ();
+ if (glob.fieldy != 65)
+ abort ();
+ if (fun3 (89) != 89)
+ abort ();
+ if (fun4 (&glob) != 'c')
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-block-3.c b/gcc/testsuite/gcc.apple/asm-block-3.c
new file mode 100644
index 00000000000..c3071dceaf2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-block-3.c
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test single line asms */
+
+/* { dg-do compile } */
+/* { dg-options "-fasm-blocks" } */
+
+void
+bar ()
+{
+ asm { nop };
+}
diff --git a/gcc/testsuite/gcc.apple/asm-block-4.c b/gcc/testsuite/gcc.apple/asm-block-4.c
new file mode 100644
index 00000000000..5bafb6df7f3
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-block-4.c
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test -40(sp) in asm-syntax blocks within functions. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks" } */
+
+void foo() {
+ asm {
+ stfd f9,-40(sp);
+ }
+}
diff --git a/gcc/testsuite/gcc.apple/asm-block-5.c b/gcc/testsuite/gcc.apple/asm-block-5.c
new file mode 100644
index 00000000000..e6465f473a7
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-block-5.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL begin radar 4125900 */
+/* Test interaction of optimization on memory references in CW asm block. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void Process()
+{
+ long BufferSize;
+ long ControlRate;
+ long lBlocks=(BufferSize/ControlRate)+(BufferSize?1:0);
+
+ asm
+ {
+ lwz r23, lBlocks
+ lwz r24, BufferSize
+ }
+}
+/* APPLE LOCAL end radar 4125900 */
diff --git a/gcc/testsuite/gcc.apple/asm-function-1.c b/gcc/testsuite/gcc.apple/asm-function-1.c
new file mode 100644
index 00000000000..9a031f27386
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-1.c
@@ -0,0 +1,51 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test whole asm functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+asm int
+foo (register int argx, register int argy)
+{
+ add r3, argx, argy
+}
+
+#define rsltreg r3
+
+asm int
+foo1 (register int argx, register int argy)
+{
+ register int loc1, loc2;
+ nop
+ li loc1, 100
+ li rsltreg,0
+ b @a34
+ add rsltreg, argx, argy
+@a34
+ add rsltreg, rsltreg, loc1
+ blr
+}
+
+extern asm int foo2(int x, float y)
+{
+#pragma unused(x)
+#pragma unused(x,y)
+ li rsltreg, 48;
+#pragma unused(y)
+ nop
+#pragma unused(x)
+}
+
+int
+main ()
+{
+ if (foo (22, 23) != 45)
+ abort ();
+ if (foo1 (1, 2) != 100)
+ abort ();
+ if (foo2 (100, 1.2) != 48)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-10.c b/gcc/testsuite/gcc.apple/asm-function-10.c
new file mode 100644
index 00000000000..46c5cb09591
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-10.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+asm void foo()
+{
+ lis r1,(kUndefindedConstant<<10)|(3<<5)|(7)
+ rlwinm r0,r2,16+kUndefindedConstant,31 /* { dg-error "block assembly operand not recognized" } */
+ cmpwi cr7,r1,kUndefindedConstant-1 /* { dg-error "block assembly operand not recognized" } */
+} /* { dg-error "block assembly operand not recognized" } */
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-11.c b/gcc/testsuite/gcc.apple/asm-function-11.c
new file mode 100644
index 00000000000..e75f3c132f8
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-11.c
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+struct tDummyStruct
+{
+ unsigned long fDummy;
+ unsigned long fSample;
+};
+
+asm void foo()
+{
+ lwz r1,-8+tDummyStruct.fSample(r2)
+ stw r1,-8+tDummyStruct.fSample(r2)
+ lwz r1,-8-(tDummyStruct.fSample-tDummyStruct.fDummy)(r2)
+ stw r1,-8-(tDummyStruct.fSample-tDummyStruct.fDummy)(r2)
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-12.c b/gcc/testsuite/gcc.apple/asm-function-12.c
new file mode 100644
index 00000000000..5a1a3d6af55
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-12.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+asm void foo()
+{
+ b .+8
+ bl .+24
+ b .-8
+ bl .-32
+ andi. r1,r0,2
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-13.c b/gcc/testsuite/gcc.apple/asm-function-13.c
new file mode 100644
index 00000000000..ace3cba12ef
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-13.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+asm void foo()
+{
+ .align 15
+ andi. r1,r2, 3
+ .align 10
+ b .+8
+ .align 4
+ b .-16
+ .align 3
+ lha r1, 4(r3)
+ .align 4
+ add r1,r2,r3
+ .align 3
+ .align 4
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-14.c b/gcc/testsuite/gcc.apple/asm-function-14.c
new file mode 100644
index 00000000000..56458390f4c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-14.c
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+asm void foo()
+{
+ dcbst r0,r5 /* { dg-error "r0 not allowed for parameter 1" } */
+
+ li r1, kUndefindedConstant /* { dg-error "expression must be absolute" } */
+
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-15.c b/gcc/testsuite/gcc.apple/asm-function-15.c
new file mode 100644
index 00000000000..f7f4162aaee
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-15.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+/* Test for use of '*' in a relative jump. This is to conform with CW compiler. */
+
+asm void foo()
+{
+ b *+8
+ bl *+24
+ b *-8
+ bl *-32
+ andi. r1,r0,2
+}
+
+int main (int argc, char * const argv[])
+{
+ foo();
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-16.c b/gcc/testsuite/gcc.apple/asm-function-16.c
new file mode 100644
index 00000000000..41a8a05cc12
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-16.c
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+signed short foo(signed int a, signed short b)
+{
+ b = a * -1;
+
+ asm {
+ bl *+24
+ bl *-32
+ b .+8
+ }
+ return b;
+}
+
+int main (int argc, char * const argv[])
+{
+ return foo(1,2);
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-17.c b/gcc/testsuite/gcc.apple/asm-function-17.c
new file mode 100644
index 00000000000..457b8836e5c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-17.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+typedef struct astruct {
+ int fieldy;
+ int fieldx;
+} atypedef;
+
+void fun2 ()
+{
+ register int R3 asm ("r3");
+ register int R4 asm ("r4");
+
+ asm {
+ stw R4, atypedef.fieldx(R3)
+ }
+}
+
+int main()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-18.c b/gcc/testsuite/gcc.apple/asm-function-18.c
new file mode 100644
index 00000000000..4f180a4f97f
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-18.c
@@ -0,0 +1,84 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test that gcc does not issue error on use of r31 (pic register) */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -faltivec" } */
+
+asm void saveNonvolatileRegistersPPC(register unsigned long *saveBuffer)
+{
+ // zero offset register
+ xor r10, r10, r10
+ // store stack pointer (4 bytes)
+ stwx r1, r3, r10
+ addi r10, r10, 4
+ // store gpr's 13 through 31 (72 bytes)
+ stwx r13, r3, r10
+ addi r10, r10, 4
+ stwx r14, r3, r10
+ addi r10, r10, 4
+ stwx r15, r3, r10
+ addi r10, r10, 4
+ stwx r16, r3, r10
+ addi r10, r10, 4
+ stwx r17, r3, r10
+ addi r10, r10, 4
+ stwx r18, r3, r10
+ addi r10, r10, 4
+ stwx r19, r3, r10
+ addi r10, r10, 4
+ stwx r20, r3, r10
+ addi r10, r10, 4
+ stwx r21, r3, r10
+ addi r10, r10, 4
+ stwx r22, r3, r10
+ addi r10, r10, 4
+ stwx r23, r3, r10
+ addi r10, r10, 4
+ stwx r24, r3, r10
+ addi r10, r10, 4
+ stwx r25, r3, r10
+ addi r10, r10, 4
+ stwx r26, r3, r10
+ addi r10, r10, 4
+ stwx r27, r3, r10
+ addi r10, r10, 4
+ stwx r28, r3, r10
+ addi r10, r10, 4
+ stwx r29, r3, r10
+ addi r10, r10, 4
+ stwx r30, r3, r10
+ addi r10, r10, 4
+ stwx r31, r3, r10
+ addi r10, r10, 4
+
+ // Store VRSAVE (4 bytes)
+ mfspr r11, 256
+ stwx r11, r3, r10
+ addi r10, r10, 4
+
+ // store vector registers 20 - 31 (176 bytes)
+ stvx v20, r3, r10
+ addi r10, r10, 16
+ stvx v21, r3, r10
+ addi r10, r10, 16
+ stvx v22, r3, r10
+ addi r10, r10, 16
+ stvx v23, r3, r10
+ addi r10, r10, 16
+ stvx v24, r3, r10
+ addi r10, r10, 16
+ stvx v25, r3, r10
+ addi r10, r10, 16
+ stvx v26, r3, r10
+ addi r10, r10, 16
+ stvx v27, r3, r10
+ addi r10, r10, 16
+ stvx v28, r3, r10
+ addi r10, r10, 16
+ stvx v29, r3, r10
+ addi r10, r10, 16
+ stvx v30, r3, r10
+ addi r10, r10, 16
+ stvx v31, r3, r10
+
+ blr
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-2.c b/gcc/testsuite/gcc.apple/asm-function-2.c
new file mode 100644
index 00000000000..9ac177eff08
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-2.c
@@ -0,0 +1,73 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test whole asm functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+asm void normal_fn ()
+{
+ nop
+}
+
+asm void nofralloc_fn ()
+{
+ nofralloc
+ nop
+ blr
+}
+
+asm void fralloc_fn ()
+{
+ fralloc
+ nop
+}
+
+asm int fralloc_fn_1 ()
+{
+ fralloc
+ mr r4,r1
+ frfree
+ sub r3,r4,r1
+ blr
+}
+
+asm int fralloc_fn_2 ()
+{
+ fralloc 1000
+ nop
+ frfree
+ blr
+}
+
+asm int fralloc_fn_3 ()
+{
+ int loc1, loc2;
+ fralloc 41
+ nop
+ mr r3, loc2
+ frfree
+ mr r3, loc1
+ blr
+}
+
+asm int f6 ()
+{
+ opword 0x386004d2 /* li r3,1234 */
+}
+
+main()
+{
+ normal_fn ();
+ nofralloc_fn ();
+ fralloc_fn ();
+ /*
+ fralloc_fn_1 ();
+ fralloc_fn_2 ();
+ fralloc_fn_3 ();
+ */
+ if (f6 () != 1234)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-3.c b/gcc/testsuite/gcc.apple/asm-function-3.c
new file mode 100644
index 00000000000..944900fb75b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-3.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file CW asm blocks */
+/* More tests of asm functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+/* Return 0 if xer and spr1 both have the same data. */
+
+asm int
+test_spr ()
+{
+ mfspr r5,xer
+ mfspr r4,spr1
+ sub r3,r4,r5
+}
+
+int
+main ()
+{
+ if (test_spr ())
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-4.c b/gcc/testsuite/gcc.apple/asm-function-4.c
new file mode 100644
index 00000000000..f3889a413bd
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-4.c
@@ -0,0 +1,62 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test asm with macros. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+#define mac1 add r3, argx, argy
+
+asm int
+foo (register int argx, register int argy)
+{
+ mac1
+}
+
+#define rsltreg r3
+#define mac2(x,y) add rsltreg,x,y
+
+asm int
+foo1 (register int argx, register int argy)
+{
+ register int loc1, loc2;
+ nop
+ li loc1, 100
+ li rsltreg,0
+ b @a34
+ mac2(argx,argy)
+@a34
+ mac2(rsltreg,loc1)
+ blr
+}
+
+#define limac li
+#define num 48
+
+asm int foo2(int x, float y)
+{
+#pragma unused(x)
+#pragma unused(x,y)
+ limac rsltreg, num;
+#define mac3(zzz) \
+ limac r4, zzz
+#pragma unused(y)
+ nop
+ mac3(num)
+#pragma unused(x)
+ add r3,r3,r4
+}
+
+int
+main ()
+{
+ if (foo (22, 23) != 45)
+ abort ();
+ if (foo1 (1, 2) != 100)
+ abort ();
+ if (foo2 (100, 1.2) != 2 * num)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-5.c b/gcc/testsuite/gcc.apple/asm-function-5.c
new file mode 100644
index 00000000000..7808daaa81b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-5.c
@@ -0,0 +1,49 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test function calls in asm functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+int glob = 0;
+
+int other ();
+int stubfn ();
+int localfn () { return other (); }
+
+asm void foo(int arg)
+{
+ nofralloc
+ mflr r0
+ stmw r30,-8(r1)
+ stw r0,8(r1)
+ stwu r1,-80(r1)
+ bl stubfn
+ /* bl L_stubfn$stub */
+ lwz r0,88(r1)
+ addi r1,r1,80
+ mtlr r0
+ lmw r30,-8(r1)
+ b localfn
+}
+
+void bar (int arg)
+{
+ stubfn ();
+ localfn ();
+}
+
+int stubfn () { return other(); }
+
+int other () { return ++glob; }
+
+int main ()
+{
+ bar(34);
+ foo(92);
+ if (glob != 4)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/asm-function-6.c b/gcc/testsuite/gcc.apple/asm-function-6.c
new file mode 100644
index 00000000000..1ff272e183e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-6.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test entry points in asm functions. */
+
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks -O2" } */
+
+void abort(void);
+
+int entry1(int);
+int entry2(int);
+int entry3(int);
+
+asm int foo(int x)
+{
+ addi r3,r3,45
+ entry entry1
+ addi r3,r3,1
+ entry static entry2
+ addi r3,r3,1
+ entry extern entry3
+ addi r3,r3,1
+}
+
+int main ()
+{
+ if (entry1(0) != 3)
+ abort();
+ if (entry2(89) != 91)
+ abort();
+ if (entry3(100) != 101)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-7.c b/gcc/testsuite/gcc.apple/asm-function-7.c
new file mode 100644
index 00000000000..c182fd05c1e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-7.c
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test la16(TABLE), lo16(TABLE), and bdnz+. */
+
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+double TABLE[4]={2.0, 1./2., 3., 1.};
+
+asm void SQRT()
+{
+ lis r3,ha16(TABLE)
+ addi r3,r3,lo16(TABLE)
+@cycle:
+ fmul fp6,fp1,fp1
+ bdnz+ @cycle
+ blr
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-8.c b/gcc/testsuite/gcc.apple/asm-function-8.c
new file mode 100644
index 00000000000..2e559043308
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-8.c
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test lo16(foo)(v) and ha16(foo). */
+
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+int foo;
+
+asm int fun1 ()
+{
+ int v;
+ addis v,0,ha16(foo)
+ lwz r3,lo16(foo)(v)
+}
diff --git a/gcc/testsuite/gcc.apple/asm-function-9.c b/gcc/testsuite/gcc.apple/asm-function-9.c
new file mode 100644
index 00000000000..7b5e3101b68
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-function-9.c
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file CW asm blocks */
+/* Test macros with . in the opcode. */
+
+/* { dg-do assemble { target powerpc*-*-* } } */
+/* { dg-options "-fasm-blocks" } */
+
+#define foodef() rlwinm. r4,r4,31,16,31
+
+asm void foo (void)
+{
+ foodef()
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-0.c b/gcc/testsuite/gcc.apple/bitreverse-0.c
new file mode 100644
index 00000000000..4425dc972fc
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-0.c
@@ -0,0 +1,76 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* This tests layout when the pragma is off, as a sanity check. */
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+#pragma reverse_bitfields off
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ unsigned int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0xa2020002
+ || bitfields.u2.ints.i2 != 0x00010116
+ || bitfields.u2.ints.i3 != 0x44040004)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-1.c b/gcc/testsuite/gcc.apple/bitreverse-1.c
new file mode 100644
index 00000000000..4a38bca6bb6
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-1.c
@@ -0,0 +1,96 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* This is the same data structure originally supplied by a user. */
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+/*
+ Fun with bitfields!
+
+ This needs to generate the same output when compiled with CodeWarrior and
+ with XCode. Following is the output I see.
+
+ CodeWarrior:
+
+ u1: 0x0000808b
+ u2: 0x51010001 0x00004045
+
+
+ XCode:
+
+ u1: 0xa2020002
+ u2: 0x00010116 0x44040004
+*/
+
+
+#pragma reverse_bitfields on
+
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ unsigned int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0x0000808b ||
+ bitfields.u2.ints.i2 != 0x51010001 ||
+ bitfields.u2.ints.i3 != 0x00004045)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-2.c b/gcc/testsuite/gcc.apple/bitreverse-2.c
new file mode 100644
index 00000000000..ef74d8eb3ea
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-2.c
@@ -0,0 +1,88 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests interleaving of bitfields and non-bitfields. Note that they
+ overlap, so the code cannot possibly work, but bug compability is
+ the requirement. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+#pragma reverse_bitfields on
+
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ unsigned int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+ char baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ char baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ char baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x55;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaa; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x33;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0x0000808b
+ || bitfields.baz != 0x55
+ || bitfields.u2.ints.i2 != 0x51010001
+ || bitfields.u2.ints.i3 != 0x01003300
+ || bitfields.u2.ints.i4 != 0x00000001
+ || sizeof(bitfields) != 20)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-3.c b/gcc/testsuite/gcc.apple/bitreverse-3.c
new file mode 100644
index 00000000000..034d120f6ba
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-3.c
@@ -0,0 +1,80 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests turning pragma on and off, and that setting in effect at time
+ of the struct definition, not the variable definition, is what matters.
+. Layout same as bitreverse-0. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+#pragma reverse_bitfields on
+#pragma reverse_bitfields off
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ unsigned int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+#pragma reverse_bitfields on
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0xa2020002
+ || bitfields.u2.ints.i2 != 0x00010116
+ || bitfields.u2.ints.i3 != 0x44040004)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-4.c b/gcc/testsuite/gcc.apple/bitreverse-4.c
new file mode 100644
index 00000000000..1ebf5f7eb07
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-4.c
@@ -0,0 +1,92 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests interleaving of bitfields and non-bitfields. Note that they
+ overlap, so the code cannot possibly work, but bug compability is
+ the requirement. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+#pragma reverse_bitfields on
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ int b5: 16;
+ } bits;
+ } u1;
+
+ short baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ unsigned int i5;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ char quux;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ short baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ short baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x5555;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaaaa; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x3333;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0x0000808b
+ || bitfields.baz != 0x5555
+ || bitfields.u2.ints.i2 != 0x01010001
+ || bitfields.u2.ints.i3 != 0x5a00aaaa
+ || bitfields.u2.ints.i4 != 0x00003333
+ || bitfields.u2.ints.i5 != 0x00000101
+ || sizeof(bitfields) != 24)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-5.c b/gcc/testsuite/gcc.apple/bitreverse-5.c
new file mode 100644
index 00000000000..50c4df3879e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-5.c
@@ -0,0 +1,92 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests interaction with pragma pack, and interleaving of bitfields
+ and non-bitfields. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+#pragma reverse_bitfields on
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ int b5: 16;
+ } bits;
+ } u1;
+
+ short baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ unsigned int i5;
+ } ints;
+
+#pragma pack(1)
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ char quux;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ short baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ short baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x5555;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaaaa; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x3333;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0x0000808b
+ || bitfields.baz != 0x5555
+ || bitfields.u2.ints.i2 != 0x01010001
+ || bitfields.u2.ints.i3 != 0x5a00aaaa
+ || bitfields.u2.ints.i4 != 0x01333305
+ || bitfields.u2.ints.i5 != 0x00000001
+ || sizeof(bitfields) != 22)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-6.c b/gcc/testsuite/gcc.apple/bitreverse-6.c
new file mode 100644
index 00000000000..d24689f4412
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-6.c
@@ -0,0 +1,93 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests interaction with pragma pack, and interleaving of bitfields
+ and non-bitfields. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+
+#pragma reverse_bitfields on
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+#pragma pack(2)
+ struct
+ {
+ int b1: 1;
+ unsigned int b2: 2;
+ unsigned int b3: 4;
+ unsigned int b4: 8;
+ int b5: 16;
+ } bits;
+ } u1;
+
+ short baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ unsigned int i5;
+ } ints;
+
+#pragma pack(1)
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ char quux;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ short baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ short baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x5555;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaaaa; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x3333;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0x0000808b
+ || bitfields.baz != 0x5555
+ || bitfields.u2.ints.i2 != 0x01010001
+ || bitfields.u2.ints.i3 != 0x5a00aaaa
+ || bitfields.u2.ints.i4 != 0x01333305
+ || bitfields.u2.ints.i5 != 0x00000001
+ || sizeof(bitfields) != 22)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-7.c b/gcc/testsuite/gcc.apple/bitreverse-7.c
new file mode 100644
index 00000000000..f09076bd363
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-7.c
@@ -0,0 +1,94 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests interaction with pragma pack, and interleaving of bitfields
+ and non-bitfields. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-std=gnu99" } */
+
+#pragma reverse_bitfields on
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+#pragma pack(2)
+ struct
+ {
+ short b1: 1;
+ unsigned int b2: 2;
+ char b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+
+ short baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ unsigned int i5;
+ } ints;
+
+#pragma pack(1)
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ char quux;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ short baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ short baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x5555;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaaaa;
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x3333;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0x00008082
+ || bitfields.baz != 0x5555
+ || bitfields.u2.ints.i2 != 0x01010001
+ || bitfields.u2.ints.i3 != 0x5a00aaaa
+ || bitfields.u2.ints.i4 != 0x01333305
+ || bitfields.u2.ints.i5 != 0x00000001
+ || sizeof(bitfields) != 22)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-8.c b/gcc/testsuite/gcc.apple/bitreverse-8.c
new file mode 100644
index 00000000000..77f5d6c6e9d
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-8.c
@@ -0,0 +1,90 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Tests interleaving of bitfields and non-bitfields. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-std=gnu99" } */
+
+#pragma reverse_bitfields on
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ short b1: 1;
+ unsigned int b2: 2;
+ char b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+
+ short baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ unsigned int i5;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ char quux;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ short baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ short baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x5555;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaaaa;
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x3333;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+ if (bitfields.u1.i1 != 0x00008082
+ || bitfields.baz != 0x5555
+ || bitfields.u2.ints.i2 != 0x01010001
+ || bitfields.u2.ints.i3 != 0x5a00aaaa
+ || bitfields.u2.ints.i4 != 0x00003333
+ || bitfields.u2.ints.i5 != 0x00000101
+ || sizeof(bitfields) != 24)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/bitreverse-9.c b/gcc/testsuite/gcc.apple/bitreverse-9.c
new file mode 100644
index 00000000000..f719335b17e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/bitreverse-9.c
@@ -0,0 +1,92 @@
+/* APPLE LOCAL file */
+#include <stdio.h>
+#include <string.h>
+
+/* Test reset. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-std=gnu99" } */
+
+#pragma reverse_bitfields on
+#pragma reverse_bitfields reset
+typedef struct
+{
+ union
+ {
+ unsigned int i1;
+ struct
+ {
+ short b1: 1;
+ unsigned int b2: 2;
+ char b3: 4;
+ unsigned int b4: 8;
+ unsigned int b5: 16;
+ } bits;
+ } u1;
+
+ short baz;
+ union
+ {
+ struct
+ {
+ unsigned int i2;
+ unsigned int i3;
+ unsigned int i4;
+ unsigned int i5;
+ } ints;
+
+ struct
+ {
+ unsigned int b1: 16;
+ unsigned int b2: 8;
+ unsigned int b3: 4;
+ char quux;
+ unsigned int b4: 2;
+ unsigned int b5: 1;
+ short baz;
+ unsigned int b6: 2;
+ unsigned int b7: 4;
+ short baz2;
+ unsigned int b8: 8;
+ unsigned int b9: 16;
+ } bits;
+ } u2;
+} Bitfields;
+
+#pragma reverse_bitfields on
+int main()
+{
+ Bitfields bitfields;
+
+
+ memset(&bitfields, 0, sizeof(bitfields));
+
+ bitfields.u1.bits.b1 = 1;
+ bitfields.u1.bits.b2 = 1;
+ bitfields.u1.bits.b3 = 1;
+ bitfields.u1.bits.b4 = 1;
+ bitfields.u1.bits.b5 = 1;
+ bitfields.baz = 0x5555;
+ bitfields.u2.bits.b1 = 1;
+ bitfields.u2.bits.b2 = 1;
+ bitfields.u2.bits.b3 = 1;
+ bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */
+ bitfields.u2.bits.b4 = 1;
+ bitfields.u2.bits.b5 = 1;
+ bitfields.u2.bits.baz = 0xaaaa;
+ bitfields.u2.bits.b6 = 1;
+ bitfields.u2.bits.b7 = 1;
+ bitfields.u2.bits.baz2 = 0x3333;
+ bitfields.u2.bits.b8 = 1;
+ bitfields.u2.bits.b9 = 1;
+
+ if (bitfields.u1.i1 != 0xa2020002
+ || bitfields.baz != 0x5555
+ || bitfields.u2.ints.i2 != 0x00010110
+ || bitfields.u2.ints.i3 != 0x5a60aaaa
+ || bitfields.u2.ints.i4 != 0x44003333
+ || bitfields.u2.ints.i5 != 0x01000100
+ || sizeof(bitfields) != 24)
+ return 42;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/comma-expr-1.c b/gcc/testsuite/gcc.apple/comma-expr-1.c
new file mode 100644
index 00000000000..35c082ec78f
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/comma-expr-1.c
@@ -0,0 +1,6 @@
+/* APPLE LOCAL file AltiVec */
+/* Comma expressions are not considered constant per C99, even if their
+ constituent elements are. */
+/* { dg-do compile } */
+
+int i = (1, 2); /* { dg-error "initializer element is not constant" } */
diff --git a/gcc/testsuite/gcc.apple/const-cfstring-1.c b/gcc/testsuite/gcc.apple/const-cfstring-1.c
new file mode 100644
index 00000000000..3e8c1194d20
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/const-cfstring-1.c
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file constant CFStrings */
+/* Test whether the __builtin__CFStringMakeConstantString
+ "function" fails gracefully when handed a non-constant
+ argument. This will only work on MacOS X 10.1.2 and later. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings" } */
+
+typedef const struct __CFString *CFStringRef;
+
+#ifdef __CONSTANT_CFSTRINGS__
+#define CFSTR(STR) ((CFStringRef) __builtin___CFStringMakeConstantString (STR))
+#else
+#error __CONSTANT_CFSTRINGS__ not defined
+#endif
+
+extern int cond;
+extern const char *func(void);
+
+const CFStringRef s0 = CFSTR("Hello" "there");
+
+int main(void) {
+ CFStringRef s1 = CFSTR("Str1");
+ CFStringRef s2 = CFSTR(cond? "Str2": "Str3"); /* { dg-error "literal expression is not constant" } */
+ CFStringRef s3 = CFSTR(func()); /* { dg-error "literal expression is not constant" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/const-cfstring-2.c b/gcc/testsuite/gcc.apple/const-cfstring-2.c
new file mode 100644
index 00000000000..cbf09d3a977
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/const-cfstring-2.c
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file constant CFStrings */
+/* Test whether the __builtin__CFStringMakeConstantString
+ "function" fails gracefully when used without the
+ -fconstant-cfstrings flag. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fno-constant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+typedef const struct __CFString *CFStringRef;
+
+const CFStringRef S = ((CFStringRef)__builtin___CFStringMakeConstantString("Testing"));
+/* { dg-error "built-in" "built-in function .* requires .* flag" { target *-*-* } 12 } */
diff --git a/gcc/testsuite/gcc.apple/const-cfstring-3.c b/gcc/testsuite/gcc.apple/const-cfstring-3.c
new file mode 100644
index 00000000000..aba558b1f8b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/const-cfstring-3.c
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file constant CFStrings */
+/* Test whether the __builtin__CFStringMakeConstantString
+ "function" generates compile-time objects with the correct layout. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings" } */
+
+typedef const struct __CFString *CFStringRef;
+
+#ifdef __CONSTANT_CFSTRINGS__
+#define CFSTR(STR) ((CFStringRef) __builtin___CFStringMakeConstantString (STR))
+#else
+#error __CONSTANT_CFSTRINGS__ not defined
+#endif
+
+extern int cond;
+extern const char *func(void);
+
+CFStringRef s0 = CFSTR("Hello" "there");
+
+void foo(void) {
+ const CFStringRef s1 = CFSTR("Str1");
+
+ s0 = s1;
+}
+
+/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" } } */
+/* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+LC.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" } } */
diff --git a/gcc/testsuite/gcc.apple/const-cfstring-4.c b/gcc/testsuite/gcc.apple/const-cfstring-4.c
new file mode 100644
index 00000000000..0c7c326100e
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/const-cfstring-4.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file */
+/* Test constant cfstring and writabe strings interaction.
+ Radar 3978580. */
+/* Developed by Devang Patel <dpatel@apple.com>. */
+
+/* { dg-do assemble { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings -fwritable-strings" } */
+
+typedef const struct __CFString *CFStringRef;
+
+#ifdef __CONSTANT_CFSTRINGS__
+#define CFSTR(STR) ((CFStringRef) __builtin___CFStringMakeConstantString (STR))
+#else
+#error __CONSTANT_CFSTRINGS__ not defined
+#endif
+
+extern void bar (const void **);
+
+static void foo()
+{
+ CFStringRef keys[] =
+ {
+ CFSTR("blah1"),
+ CFSTR("blah2")
+ };
+ int count = sizeof(keys) / sizeof(keys[0]);
+
+ bar ((const void **)keys);
+}
+
diff --git a/gcc/testsuite/gcc.apple/cw-altivec-asm-block.c b/gcc/testsuite/gcc.apple/cw-altivec-asm-block.c
new file mode 100644
index 00000000000..1b3baaa6e2f
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/cw-altivec-asm-block.c
@@ -0,0 +1,35 @@
+/* APPLE LOCAL file CW asm blocks with AltiVec insn. */
+/* Test asm-syntax blocks within functions. */
+
+/* { dg-do run { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -fasm-blocks" } */
+
+extern void abort();
+
+int main( void )
+{
+ int i;
+ register vector float a = (vector float) (1.0f);
+ register vector float b = (vector float) (2.0f);
+ register vector float c = (vector float) (3.0f);
+ float result[4] = {5.00, 5.00, 5.00, 5.00};
+ union u {
+ vector float v;
+ float fv[4];
+ } uv;
+
+ asm
+ {
+ vmaddfp c, a, c, b
+ }
+
+ uv.v = c;
+
+ for (i=0; i < 4; i++)
+ if (uv.fv[i] != result[i])
+ abort();
+
+ return 0;
+}
+
+
diff --git a/gcc/testsuite/gcc.apple/darwin-fsel-3.c b/gcc/testsuite/gcc.apple/darwin-fsel-3.c
new file mode 100644
index 00000000000..3c7b19e0453
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/darwin-fsel-3.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-O -mpowerpc-gfxopt" } */
+/* { dg-final { scan-assembler "fsub" } } */
+
+/* This is the same as gcc.dg/ppc-fsel-3.c, which is checking to see
+ that this optimization is *not* done, that is, that
+ -fno-trapping-math is the default. They can't both pass. */
+
+double foo(double a, double b, double c, double d)
+{
+ return a < b ? c : d;
+}
diff --git a/gcc/testsuite/gcc.apple/dg.exp b/gcc/testsuite/gcc.apple/dg.exp
new file mode 100644
index 00000000000..83910af8ac8
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/dg.exp
@@ -0,0 +1,40 @@
+# APPLE LOCAL file testsuite
+# Copyright (C) 1997 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 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.
+
+# Apple-specific GCC testsuite driver.
+# Note that this is basically a clone of gcc.dg/dg.exp, updated
+# whenever the original file changes (which is not very often).
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+ set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+# APPLE LOCAL preprocess .s files
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cSs\]]] \
+ "" $DEFAULT_CFLAGS
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.apple/dynamic-no-pic-1.c b/gcc/testsuite/gcc.apple/dynamic-no-pic-1.c
new file mode 100644
index 00000000000..070544c5fc8
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/dynamic-no-pic-1.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file Radar 4010664 */
+/* { dg-do compile { target i?86*-*-darwin* } } */
+/* { dg-options "-mdynamic-no-pic -march=pentium4" } */
+/* { dg-final { scan-assembler-not "86.get_pc_thunk" } } */
+#define TEST_STRING "test string %d"
+#define TEST_STRING0 "test string 0"
+#include <stdlib.h>
+#include <stdio.h>
+int globalvar_i;
+main (int argc, char *argv[])
+{
+ char buf[90];
+
+ sprintf (buf, TEST_STRING, globalvar_i);
+ if (strcmp (buf, TEST_STRING0))
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.apple/execute/bitfield-1.c b/gcc/testsuite/gcc.apple/execute/bitfield-1.c
new file mode 100644
index 00000000000..bd472d28ccb
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/execute/bitfield-1.c
@@ -0,0 +1,52 @@
+/* { dg-do run { target *-*-darwin* } } */
+/* { dg-options "-O2 -fss-const-prop" } */
+/* APPLE LOCAL file bitfield zero initialization */
+/* <rdar://problem/3366203>:Setup Assistant crashes in SetModificationDateToPasteboard */
+/* <rdar://problem/3379022>:GCC compiler error in bitfield handling */
+
+
+typedef struct
+{
+ unsigned int b01 : 1;
+ unsigned int b02 : 2;
+ unsigned int b03 : 1;
+ unsigned int b04 : 1;
+ unsigned int b05 : 1;
+ unsigned int b06 : 1;
+ unsigned int b07 : 3;
+ unsigned int b08 : 3;
+ unsigned int b09 : 3;
+ unsigned int b10 : 3;
+ unsigned int b11 : 8;
+ unsigned int b12 : 1;
+ unsigned int b13 : 4;
+} test_struct;
+
+void func( test_struct* s, int t )
+{
+ s->b12 = 0;
+ s->b02 = 0;
+}
+
+main()
+{
+ test_struct r = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+
+ func (&r, 42);
+
+ if (r.b01 != 1
+ || r.b03 != 1
+ || r.b04 != 1
+ || r.b05 != 1
+ || r.b06 != 1
+ || r.b07 != 1
+ || r.b08 != 1
+ || r.b09 != 1
+ || r.b10 != 1
+ || r.b11 != 1
+ || r.b13 != 1)
+ {
+ abort();
+ }
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.apple/execute/execute.exp b/gcc/testsuite/gcc.apple/execute/execute.exp
new file mode 100644
index 00000000000..f7b1f5b5eeb
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/execute/execute.exp
@@ -0,0 +1,43 @@
+# Copyright (C) 1991, 1992, 1993, 1995, 1997 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 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.
+
+# This file was written by Rob Savoye. (rob@cygnus.com)
+# Modified and maintained by Jeffrey Wheat (cassidy@cygnus.com)
+
+#
+# These tests come from Torbjorn Granlund (tege@cygnus.com)
+# C torture test suite.
+#
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+# load support procs
+load_lib c-torture.exp
+
+#
+# main test loop
+#
+
+foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $src] then {
+ continue
+ }
+
+ c-torture-execute $src
+}
diff --git a/gcc/testsuite/gcc.apple/falign-jumps-max-skip-1.c b/gcc/testsuite/gcc.apple/falign-jumps-max-skip-1.c
new file mode 100644
index 00000000000..447e0d57802
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/falign-jumps-max-skip-1.c
@@ -0,0 +1,7 @@
+/* {dg-do compile } */
+/* Test -falign-jumps-max-skip */
+/* { dg-options "-falign-jumps-max-skip" } */
+
+void foo()
+{
+}
diff --git a/gcc/testsuite/gcc.apple/falign-jumps-max-skip-2.c b/gcc/testsuite/gcc.apple/falign-jumps-max-skip-2.c
new file mode 100644
index 00000000000..ee9ff6a6e0c
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/falign-jumps-max-skip-2.c
@@ -0,0 +1,7 @@
+/* {dg-do compile } */
+/* Test -falign-jumps-max-skip */
+/* { dg-options "-falign-jumps-max-skip=1234" } */
+
+void foo()
+{
+}
diff --git a/gcc/testsuite/gcc.apple/falign-loops-max-skip-1.c b/gcc/testsuite/gcc.apple/falign-loops-max-skip-1.c
new file mode 100644
index 00000000000..405ed4adc5d
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/falign-loops-max-skip-1.c
@@ -0,0 +1,7 @@
+/* {dg-do compile } */
+/* Test -falign-loops-max-skip */
+/* { dg-options "-falign-loops-max-skip" } */
+
+void foo()
+{
+}
diff --git a/gcc/testsuite/gcc.apple/falign-loops-max-skip-2.c b/gcc/testsuite/gcc.apple/falign-loops-max-skip-2.c
new file mode 100644
index 00000000000..1d00bd88f02
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/falign-loops-max-skip-2.c
@@ -0,0 +1,7 @@
+/* {dg-do compile } */
+/* Test -falign-loops-max-skip */
+/* { dg-options "-falign-loops-max-skip=1234" } */
+
+void foo()
+{
+}
diff --git a/gcc/testsuite/gcc.apple/falign-loops-max-skip-3.c b/gcc/testsuite/gcc.apple/falign-loops-max-skip-3.c
new file mode 100644
index 00000000000..664c75cd339
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/falign-loops-max-skip-3.c
@@ -0,0 +1,13 @@
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* Test -falign-loops-max-skip */
+/* { dg-options "-O3 -falign-loops=16 -falign-loops-max-skip=11" } */
+
+void foo()
+{
+ int i;
+ float j;
+ for (i=0; i<1000; i++)
+ j = 123*456;
+}
+
+/* { dg-final { scan-assembler "p2align 4,,11" } } */
diff --git a/gcc/testsuite/gcc.apple/fenv-minmax-1.c b/gcc/testsuite/gcc.apple/fenv-minmax-1.c
new file mode 100644
index 00000000000..4385ae3ced6
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/fenv-minmax-1.c
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file Radar 3943021 */
+/* { dg-do compile { target powerpc-*-darwin* } } */
+/* { dg-options "-ffast-math" } */
+#pragma GCC fenv
+float size[2], tex_size;
+void
+test_of_pragma_fenv ()
+{
+ size[0] = ((size[0]) < (tex_size) ? (size[0]) : (tex_size));
+}
+
diff --git a/gcc/testsuite/gcc.apple/framework1.c b/gcc/testsuite/gcc.apple/framework1.c
new file mode 100644
index 00000000000..bd0203669c2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/framework1.c
@@ -0,0 +1,12 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-nostdinc -c -F${srcdir}/gcc.apple" } */
+
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+#include <one/one.h>
+int main()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/fwritable-strings.c b/gcc/testsuite/gcc.apple/fwritable-strings.c
new file mode 100644
index 00000000000..4cf335a0db3
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/fwritable-strings.c
@@ -0,0 +1,19 @@
+/* { dg-do run } */
+/* { dg-options "-fwritable-strings" } */
+
+/*#include <stdio.h>*/
+void foo( void *dst)
+{
+ char *ucdst;
+
+ ucdst = (char *)dst;
+ ucdst++;
+ *ucdst = 'X';
+}
+
+int main()
+{
+ char *a = "Hello";
+ foo ((void *) a);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/i386-builtin-shufps.c b/gcc/testsuite/gcc.apple/i386-builtin-shufps.c
new file mode 100644
index 00000000000..ac102fbe834
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/i386-builtin-shufps.c
@@ -0,0 +1,21 @@
+/* APPLE LOCAL begin radar 4099352 */
+/* { dg-do compile { target i?86-*-darwin* } } */
+/* { dg-options "-O1 -msse2" } */
+/* { dg-final { scan-assembler "xorps" } } */
+
+typedef float __m128 __attribute__ ((__vector_size__ (16)));
+typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+
+int main()
+{
+ __m128 f2;
+
+ volatile __m128 votf = (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };
+
+ do {
+ XXXXXX();
+ volatile __v4sf __t1 = __builtin_ia32_shufps (f2, (__m128){ 0.0f, 0.0f, 0.0f, 0.0f }, 0x44);
+ XXXXXX();
+ } while (0);
+}
+/* APPLE LOCAL end radar 4099352 */
diff --git a/gcc/testsuite/gcc.apple/i386-deep-branch-predict-1.c b/gcc/testsuite/gcc.apple/i386-deep-branch-predict-1.c
new file mode 100644
index 00000000000..507d2149c90
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/i386-deep-branch-predict-1.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file Radar 4010498 et. al. */
+/* { dg-do compile { target i?86-*-darwin* } } */
+/* { dg-options "-march=pentium4 -fPIC" } */
+/* { dg-final { scan-assembler "86.get_pc_thunk" } } */
+#define TEST_STRING "test string %d"
+#define TEST_STRING0 "test string 0"
+#include <stdlib.h>
+#include <stdio.h>
+int globalvar_i;
+main (int argc, char *argv[])
+{
+ char buf[90];
+
+ sprintf (buf, TEST_STRING, globalvar_i);
+ if (strcmp (buf, TEST_STRING0))
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.apple/i386-leaf-stack-opt.c b/gcc/testsuite/gcc.apple/i386-leaf-stack-opt.c
new file mode 100644
index 00000000000..1b1f2896b63
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/i386-leaf-stack-opt.c
@@ -0,0 +1,10 @@
+/* APPLE LOCAL begin radar 4095567 */
+/* { dg-do compile { target i?86-*-darwin* } } */
+/* { dg-options "-O2 -mfpmath=387 -mdynamic-no-pic" } */
+/* { dg-final { scan-assembler-not "sub\[^\\n\]*sp" } } */
+
+/* -Os -mfpmath=387 -mdynamic-no-pic */
+double foo(double x) {
+ return x+1.0;
+}
+/* APPLE LOCAL end radar 4095567 */
diff --git a/gcc/testsuite/gcc.apple/i386-ssetype-6.c b/gcc/testsuite/gcc.apple/i386-ssetype-6.c
new file mode 100644
index 00000000000..ed517d648bf
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/i386-ssetype-6.c
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file 4099020 */
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -msse2 -march=pentium4" } */
+/* { dg-final { scan-assembler-times "movq\[^\\n\]*" 3} } */
+
+/* Verify that we generate proper instruction with memory operand. */
+
+#include <emmintrin.h>
+
+__m128i
+t1(__m128i *p)
+{
+ return _mm_loadl_epi64(p); /* 64-bit, zero-extended result in %xmm. */
+}
+void
+t2(__m128i *p, __m128i a)
+{
+ _mm_storel_epi64(p, a); /* 64-bit store from %xmm. */
+}
+__m128i
+t3(__m128i a)
+{
+ return _mm_move_epi64(a); /* 64-bit move between %xmm registers. */
+}
diff --git a/gcc/testsuite/gcc.apple/import.c b/gcc/testsuite/gcc.apple/import.c
new file mode 100644
index 00000000000..110a2d249ed
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/import.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file #import not deprecated */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+#import "importee.h"
+
+#import "importee.h"
+
+void foo (bar x) {}
diff --git a/gcc/testsuite/gcc.apple/importee.h b/gcc/testsuite/gcc.apple/importee.h
new file mode 100644
index 00000000000..86fbd11da4d
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/importee.h
@@ -0,0 +1,3 @@
+/* APPLE LOCAL file #import not deprecated */
+
+typedef int bar;
diff --git a/gcc/testsuite/gcc.apple/inttypes-1.c b/gcc/testsuite/gcc.apple/inttypes-1.c
new file mode 100644
index 00000000000..40404e2995b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/inttypes-1.c
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file test of inttypes.h formatter macros */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall -W" } */
+
+#include <stdio.h>
+#include <inttypes.h>
+#include <stdint.h>
+
+int main ()
+{
+ uint32_t x = 12;
+ int32_t y = 15;
+ printf("x = %" PRIo32 "\n", x);
+ printf("x = %" PRIu32 "\n", x);
+ printf("x = %" PRIx32 "\n", x);
+ printf("x = %" PRIX32 "\n", x);
+ printf("y = %" PRId32 "\n", y);
+ printf("y = %" PRIi32 "\n", y);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/inttypes-2.c b/gcc/testsuite/gcc.apple/inttypes-2.c
new file mode 100644
index 00000000000..7ea63badc58
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/inttypes-2.c
@@ -0,0 +1,45 @@
+/* APPLE LOCAL file test of inttypes.h [U]INT*_C macros */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall -W" } */
+
+#include <stdio.h>
+#include <inttypes.h>
+#include <stdint.h>
+
+#if INT8_C(3) != 3
+#error int8 comparison failed
+#endif
+
+#if INT16_C(-3) != -3
+#error int16 comparison failed
+#endif
+
+#if INT32_C(536870912) != 536870912L
+#error int32 comparison failed
+#endif
+
+#if INT64_C(536870912) != 536870912LL
+#error int64 comparison failed
+#endif
+
+#if UINT8_C(3) != 3
+#error int8 comparison failed
+#endif
+
+#if UINT16_C(3) != 3
+#error int16 comparison failed
+#endif
+
+#if UINT32_C(536870912) != 536870912UL
+#error int32 comparison failed
+#endif
+
+#if UINT64_C(536870912) != 536870912ULL
+#error int64 comparison failed
+#endif
+
+int main()
+{
+ return INT32_C(0);
+}
diff --git a/gcc/testsuite/gcc.apple/inttypes-3.c b/gcc/testsuite/gcc.apple/inttypes-3.c
new file mode 100644
index 00000000000..14fcd0805e0
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/inttypes-3.c
@@ -0,0 +1,51 @@
+/* APPLE LOCAL file test of inttypes.h SCN* and PRI* macros */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall -W" } */
+
+#include <stdint.h>
+#include <stdio.h>
+#include <inttypes.h>
+
+#define TEST(tn, scn, pri) \
+do { \
+ tn x; \
+ scanf ("%" scn "\n", &x); \
+ printf ("%" pri "\n", x); \
+} while (0)
+
+void foo(void)
+{
+ TEST (int8_t, SCNd8, PRId8);
+ TEST (uint8_t, SCNu8, PRIu8);
+ TEST (int16_t, SCNd16, PRId16);
+ TEST (uint16_t, SCNu16, PRIu16);
+ TEST (int32_t, SCNd32, PRId32);
+ TEST (uint32_t, SCNu32, PRIu32);
+ TEST (int64_t, SCNd64, PRId64);
+ TEST (uint64_t, SCNu64, PRIu64);
+
+ TEST (int_least8_t, SCNdLEAST8, PRIdLEAST8);
+ TEST (uint_least8_t, SCNuLEAST8, PRIuLEAST8);
+ TEST (int_least16_t, SCNdLEAST16, PRIdLEAST16);
+ TEST (uint_least16_t, SCNuLEAST16, PRIuLEAST16);
+ TEST (int_least32_t, SCNdLEAST32, PRIdLEAST32);
+ TEST (uint_least32_t, SCNuLEAST32, PRIuLEAST32);
+ TEST (int_least64_t, SCNdLEAST64, PRIdLEAST64);
+ TEST (uint_least64_t, SCNuLEAST64, PRIuLEAST64);
+
+ TEST (int_fast8_t, SCNdFAST8, PRIdFAST8);
+ TEST (uint_fast8_t, SCNuFAST8, PRIuFAST8);
+ TEST (int_fast16_t, SCNdFAST16, PRIdFAST16);
+ TEST (uint_fast16_t, SCNuFAST16, PRIuFAST16);
+ TEST (int_fast32_t, SCNdFAST32, PRIdFAST32);
+ TEST (uint_fast32_t, SCNuFAST32, PRIuFAST32);
+ TEST (int_fast64_t, SCNdFAST64, PRIdFAST64);
+ TEST (uint_fast64_t, SCNuFAST64, PRIuFAST64);
+
+ TEST (intptr_t, SCNdPTR, PRIdPTR);
+ TEST (uintptr_t, SCNuPTR, PRIuPTR);
+
+ TEST (intmax_t, SCNdMAX, PRIdMAX);
+ TEST (uintmax_t, SCNuMAX, PRIuMAX);
+}
diff --git a/gcc/testsuite/gcc.apple/inttypes-4.c b/gcc/testsuite/gcc.apple/inttypes-4.c
new file mode 100644
index 00000000000..4f1029981bb
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/inttypes-4.c
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file stdint.h */
+
+/* { dg-do run } */
+/* { dg-options "-Wall -W" } */
+
+/* Check SIG_ATOMIC_{MIN,MAX}, WINT_{MIN,MAX}. Also check that
+ stdint.h and sys/types.h can be included simultaneously. */
+
+#include <stdint.h>
+#include <sys/types.h>
+#include <signal.h>
+#include <wchar.h>
+#include <stdlib.h>
+
+int main(void)
+{
+ sig_atomic_t s_a;
+ wint_t wi;
+
+ s_a = SIG_ATOMIC_MIN;
+ if (s_a != SIG_ATOMIC_MIN)
+ abort ();
+ if (s_a > 0)
+ abort ();
+ s_a--;
+ if (s_a != SIG_ATOMIC_MAX)
+ abort ();
+ if (s_a <= 0)
+ abort ();
+
+ wi = WINT_MIN;
+ if (wi != WINT_MIN)
+ abort ();
+ if (wi > 0)
+ abort ();
+ wi--;
+ if (wi != WINT_MAX)
+ abort ();
+ if (wi <= 0)
+ abort ();
+
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.apple/inttypes-wchar-1.c b/gcc/testsuite/gcc.apple/inttypes-wchar-1.c
new file mode 100644
index 00000000000..6799c59c5eb
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/inttypes-wchar-1.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file test of wchar_t's definition in inttypes.h */
+
+/* { dg-do run } */
+/* { dg-options "-Wall -W" } */
+
+#include <inttypes.h>
+#include <stdint.h>
+
+/* Verify that WCHAR_MAX is the largest positive 32-bit integer */
+#if WCHAR_MAX != 0x7fffffff
+# error WCHAR_MAX has incorrect value
+#endif
+
+/* Verify that WCHAR_MIN is negative and consistent with WCHAR_MAX. */
+#if WCHAR_MIN != (-WCHAR_MAX-1)
+# error WCHAR_MIN has incorrect value
+#endif
+
+int dummy1[5 - sizeof(wchar_t)] = { 0 };
+int dummy2[sizeof(wchar_t) - 3] = { 0 };
+
+int main ()
+{
+ /* Verify that wchar_t is a 32-bit type. */
+ return (sizeof(wchar_t) == 4) ? 0 : 1;
+}
diff --git a/gcc/testsuite/gcc.apple/inttypes-wchar-2.c b/gcc/testsuite/gcc.apple/inttypes-wchar-2.c
new file mode 100644
index 00000000000..0021b3dc0fc
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/inttypes-wchar-2.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file test that the definition of wchar_t in
+ inttypes.h gives sizeof(wchar_t) == 2 when using -fshort-wchar. */
+
+/* { dg-do run } */
+/* { dg-options "-Wall -W -fshort-wchar" } */
+
+#include <inttypes.h>
+#include <stdint.h>
+
+/* Verify that WCHAR_MAX is the largest unsigned 16-bit integer. */
+#if WCHAR_MAX != 0xffffU
+# error WCHAR_MAX has incorrect value
+#endif
+
+/* Verify that WCHAR_MIN is 0 */
+#if WCHAR_MIN != 0
+# error WCHAR_MIN has incorrect value
+#endif
+
+int dummy1[3 - sizeof(wchar_t)] = { 0 };
+int dummy2[sizeof(wchar_t) - 1] = { 0 };
+
+int main ()
+{
+ return (sizeof(wchar_t) == 2) ? 0 : 1;
+}
diff --git a/gcc/testsuite/gcc.apple/lazy-ptr-test.c b/gcc/testsuite/gcc.apple/lazy-ptr-test.c
new file mode 100644
index 00000000000..da66b518ff0
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/lazy-ptr-test.c
@@ -0,0 +1,18 @@
+/* { dg-do compile { target powerpc*-apple-darwin* } } */
+/* { dg-options "-S" } */
+
+void f () __attribute__((weak_import));
+
+typedef void PF (void);
+
+void f(void){};
+
+PF* g (void) { return f; }
+
+int main()
+{
+ (*g())();
+ return 0;
+}
+
+/* { dg-final { scan-assembler "non_lazy_ptr" } } */
diff --git a/gcc/testsuite/gcc.apple/mac68k-align-unsup.c b/gcc/testsuite/gcc.apple/mac68k-align-unsup.c
new file mode 100644
index 00000000000..52c0b2e2573
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/mac68k-align-unsup.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file 64-bit */
+/* Darwin (Mac OS X) alignment exercises. */
+
+/* { dg-do compile { target powerpc-*-darwin[89]* } } */
+/* { dg-options "-m64 -malign-mac68k" } */
+
+/* { dg-error "-malign-mac68k is not allowed for 64-bit Darwin" "" { target *-*-* } 1 } */
+
+main() {}
diff --git a/gcc/testsuite/gcc.apple/no-math-errno.c b/gcc/testsuite/gcc.apple/no-math-errno.c
new file mode 100644
index 00000000000..cad9edf8be2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/no-math-errno.c
@@ -0,0 +1,8 @@
+/* APPLE LOCAL math-errno off by default 3619824 */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-mpowerpc-gpopt -O2" } */
+/* { dg-final { scan-assembler-not "fcmpu" } } */
+extern double sqrt(double);
+float foo(float y) {
+ return sqrt(y);
+}
diff --git a/gcc/testsuite/gcc.apple/no-warning.c b/gcc/testsuite/gcc.apple/no-warning.c
new file mode 100644
index 00000000000..9b71d722239
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/no-warning.c
@@ -0,0 +1,8 @@
+/* APPLE LOCAL file -Wno-#warnings */
+
+/* { dg-do compile } */
+/* { dg-options "-Wno-#warnings" } */
+
+#warning "suppress this warning"
+
+int a;
diff --git a/gcc/testsuite/gcc.apple/non-lazy-ptr-test.c b/gcc/testsuite/gcc.apple/non-lazy-ptr-test.c
new file mode 100644
index 00000000000..e496784d32b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/non-lazy-ptr-test.c
@@ -0,0 +1,40 @@
+/* { dg-do compile { target powerpc*-apple-darwin* } } */
+/* { dg-options "-S" } */
+
+typedef void PF (void);
+
+static void f(void) {
+}
+
+void f1(void) {
+}
+
+extern void f2(void) {
+}
+
+static void f3(void);
+
+__private_extern__ void pe(void)
+{
+}
+
+PF* g (void) { f(); return f; }
+PF* x (void) { return f1; }
+PF* y (void) { f2(); return f2; }
+PF* z (void) { return f3; }
+PF* w (void) { pe(); return pe; }
+
+int main()
+{
+ (*g())();
+ (*x())();
+ (*y())();
+ (*z())();
+ (*w())();
+ return 0;
+}
+
+void f3(void) {
+}
+
+/* { dg-final { scan-assembler-not "non_lazy_ptr" } } */
diff --git a/gcc/testsuite/gcc.apple/notailcall-1.c b/gcc/testsuite/gcc.apple/notailcall-1.c
new file mode 100644
index 00000000000..ee072d283fd
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/notailcall-1.c
@@ -0,0 +1,73 @@
+/* APPLE LOCAL file Radar 3830232 */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler-not "\(jmp|b\)\[ \\t\]+_*init_iconv_desc" } } */
+/* Contributed by Andrew Pinski 26 Oct 2004 <pinskia@gcc.gnu.org> */
+
+struct cset_converter { int func; int cd; };
+void abort(void); int puts(const char*);
+int f(int i){return i;}
+void g(void){puts("hi");}
+struct conversion
+{
+ int pair;
+ int func;
+ int fake_cd;
+};
+static const struct conversion conversion_tab[] = {
+ { 2, 2, 2 },
+ { 3, 3, 3 }
+};
+static struct cset_converter
+init_iconv_desc (int i)
+{
+ struct cset_converter ret;
+ unsigned i1;
+ char *pair;
+ if (!i)
+ {
+ ret.func = 0;
+ ret.cd = 0;
+ return ret;
+ }
+ pair = __builtin_alloca(i*3);
+ for (i1 = 0; i1 < (sizeof (conversion_tab) / sizeof ((conversion_tab)[0])); i1++)
+ if (i == conversion_tab[i1].pair)
+ {
+ ret.func = conversion_tab[i1].func;
+ ret.cd = conversion_tab[i1].fake_cd;
+ return ret;
+ }
+
+ ret.func = 2;
+ ret.cd = f(i);
+ if (ret.cd == 4)
+ {
+ g();
+ ret.func = 4;
+ }
+ return ret;
+}
+struct f
+{
+ struct cset_converter a;
+ struct cset_converter b;
+};
+
+void ff(struct f *a)
+{
+ a->a = init_iconv_desc(0);
+ /* Compiler was illegally optimizing this call into a tailcall (jmp). Radar 3830232 */
+ a->b = init_iconv_desc(1);
+}
+
+int main(void)
+{
+ struct f a;
+ ff (&a);
+ if (a.a.func!=0 || a.a.cd !=0)
+ abort();
+ if (a.b.func!=2 || a.b.cd !=1)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/objc-negtest.c b/gcc/testsuite/gcc.apple/objc-negtest.c
new file mode 100644
index 00000000000..aeff151892a
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/objc-negtest.c
@@ -0,0 +1,8 @@
+/* APPLE LOCAL begin radar 4122328 */
+/* { dg-options "-fasm-blocks" } */
+@class NSString; /* { dg-error "parse error before '@' token" } */
+
+int main()
+{
+}
+/* APPLE LOCAL end radar 4122328 */
diff --git a/gcc/testsuite/gcc.apple/objcpp.c b/gcc/testsuite/gcc.apple/objcpp.c
new file mode 100644
index 00000000000..64728306efd
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/objcpp.c
@@ -0,0 +1,6 @@
+/* { dg-options "-x objc++-cpp-output $srcdir/gcc.apple/objcpp.c" } */
+
+/* Radar 3981486 */
+
+int main() {
+}
diff --git a/gcc/testsuite/gcc.apple/one.framework/Headers/one.h b/gcc/testsuite/gcc.apple/one.framework/Headers/one.h
new file mode 100644
index 00000000000..50c24d3e6c5
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/one.framework/Headers/one.h
@@ -0,0 +1,3 @@
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Empty header */
diff --git a/gcc/testsuite/gcc.apple/opt-pragma-1.c b/gcc/testsuite/gcc.apple/opt-pragma-1.c
new file mode 100644
index 00000000000..046ea5050b8
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/opt-pragma-1.c
@@ -0,0 +1,15 @@
+/* Test error handling of optimization pragmas. */
+/* Radar 3124235 */
+/* { dg-do compile } */
+int outwit; /* make the file non-empty */
+#pragma optimization_level -1 /* { dg-warning "malformed '#pragma optimization_level" } */
+#pragma optimization_level foo /* { dg-warning "malformed '#pragma optimization_level" } */
+#pragma optimization_level 3.0 /* { dg-warning "malformed '#pragma optimization_level" } */
+#pragma optimization_level 3 extra /* { dg-warning "junk at end of '#pragma optimization_level" } */
+#pragma optimization_level 0x4
+#pragma optimize_for_size on
+#pragma optimize_for_size foo /* { dg-warning "malformed '#pragma optimize_for_size" } */
+#pragma optimization_level reset
+#pragma optimization_level reset
+#pragma optimization_level reset
+#pragma optimization_level reset /* { dg-warning "optimization pragma stack underflow" } */
diff --git a/gcc/testsuite/gcc.apple/opt-pragma-2.c b/gcc/testsuite/gcc.apple/opt-pragma-2.c
new file mode 100644
index 00000000000..fb5dc7aafce
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/opt-pragma-2.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O3" } */
+void f4(int);
+#pragma optimization_level 0
+void f1(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimize_for_size on
+#pragma GCC optimization_level 0
+void f4(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level 0
+void f5(int x) {
+#pragma GCC optimization_level 2
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level reset
+void f6(int x) {
+ printf("%d\n", x);
+}
+/* Make sure sibling call optimization is not applied. */
+/* { dg-final { scan-assembler-times "b L_printf" 0 } } */
+/* { dg-final { scan-assembler-times "bl L_printf" 4 } } */
diff --git a/gcc/testsuite/gcc.apple/opt-pragma-3.c b/gcc/testsuite/gcc.apple/opt-pragma-3.c
new file mode 100644
index 00000000000..786d30e261b
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/opt-pragma-3.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O0" } */
+void f4(int);
+#pragma optimization_level 3
+void f1(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimize_for_size on
+#pragma GCC optimization_level 3
+void f4(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level 3
+void f5(int x) {
+#pragma GCC optimization_level 0
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level reset
+void f6(int x) {
+ printf("%d\n", x);
+}
+/* Make sure sibling call optimization is applied. */
+/* { dg-final { scan-assembler-times "b L_printf" 4 } } */
+/* { dg-final { scan-assembler-times "bl L_printf" 0 } } */
diff --git a/gcc/testsuite/gcc.apple/opt-pragma-4.c b/gcc/testsuite/gcc.apple/opt-pragma-4.c
new file mode 100644
index 00000000000..4129450eea3
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/opt-pragma-4.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O0" } */
+void f4(int);
+#pragma optimization_level 3
+void f1(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimize_for_size on
+#pragma GCC optimization_level 3
+void f4(int x) {
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level 0
+void f5(int x) {
+#pragma GCC optimization_level 2
+ printf("%d\n", x);
+}
+#pragma GCC optimization_level reset
+void f6(int x) {
+ printf("%d\n", x);
+}
+/* { dg-final { scan-assembler-times "b L_printf" 2 } } */
+/* { dg-final { scan-assembler-times "bl L_printf" 2 } } */
diff --git a/gcc/testsuite/gcc.apple/opt-pragma-5.c b/gcc/testsuite/gcc.apple/opt-pragma-5.c
new file mode 100644
index 00000000000..c637fa3f8ac
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/opt-pragma-5.c
@@ -0,0 +1,25 @@
+/* Radar 3124235 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-O3" } */
+#pragma optimization_level 0
+extern void f1a(int), f4a(int), f5a(int), f6a(int);
+void f4(int); void f6(int);
+void f1(int x) {
+ f1a(x);
+}
+#pragma GCC optimization_level 2
+void f5(int x) {
+ f5a(x);
+}
+#pragma GCC optimization_level 3
+void f6(int x) {
+ f6a(x);
+}
+#pragma GCC optimization_level 1
+void f4(int x) {
+ f4a(x);
+}
+/* { dg-final { scan-assembler "bl L_f1a" } } */
+/* { dg-final { scan-assembler "bl L_f4a" } } */
+/* { dg-final { scan-assembler "b L_f5a" } } */
+/* { dg-final { scan-assembler "b L_f6a" } } */
diff --git a/gcc/testsuite/gcc.apple/pack-test-1.c b/gcc/testsuite/gcc.apple/pack-test-1.c
new file mode 100644
index 00000000000..10273b2ba27
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/pack-test-1.c
@@ -0,0 +1,76 @@
+/* APPLE LOCAL file 4163069 */
+/* Test semantics of #pragma pack.
+ Contributed by Mike Stump <mrs@apple.com> */
+
+/* { dg-do run { target *-*-darwin* } } */
+
+#include <stdio.h>
+
+#pragma pack(push, 1)
+struct
+{
+ int a;
+ short b;
+} ShouldBeSixBytes;
+
+#pragma pack(push, 8)
+struct
+{
+ int a;
+ short b;
+} ShouldBeEightBytes;
+
+/* Does a "push" in Apple's standard GCC, should here, too. */
+#pragma pack(push, 4)
+struct
+{
+ char a;
+ short b;
+} ShouldBeFourBytes;
+
+/* Should be popped back to eight bytes. */
+#pragma pack()
+struct
+{
+ int a;
+ short b;
+} ShouldBeEightBytesToo;
+
+/* Should be popped back to one byte packing. */
+#pragma pack(pop)
+struct
+{
+ char a;
+ char b;
+ char c;
+} ShouldBeThreeBytes;
+
+/* pop to native packing. */
+#pragma pack(pop)
+struct
+{
+ char a;
+ short b;
+} ShouldBeFourBytesToo; /* (well, four bytes on 32-bit PowerPC. YMMV.) */
+
+int nerrs = 0;
+
+static void
+dotest (const char *name, int trueOrFalse)
+{
+ if (! trueOrFalse)
+ ++nerrs;
+ printf ("test %s: %s\n", name, trueOrFalse ? "passed" : "failed");
+}
+
+int main(void)
+{
+ dotest ("push 1", sizeof (ShouldBeSixBytes) == 6);
+ dotest ("push 8", sizeof (ShouldBeEightBytes) == 8);
+ dotest ("push 4", sizeof (ShouldBeFourBytes) == 4);
+ dotest (" pop 8", sizeof (ShouldBeEightBytesToo) == 8);
+ dotest (" pop 1", sizeof (ShouldBeThreeBytes) == 3);
+ dotest (" pop n", sizeof (ShouldBeFourBytesToo) == 4);
+
+ return nerrs;
+}
diff --git a/gcc/testsuite/gcc.apple/pascal-strings-1.c b/gcc/testsuite/gcc.apple/pascal-strings-1.c
new file mode 100644
index 00000000000..c4e2d86ddc9
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/pascal-strings-1.c
@@ -0,0 +1,46 @@
+/* APPLE LOCAL file pascal strings */
+/* Positive C test cases. */
+/* Origin: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do run } */
+/* { dg-options "-std=iso9899:1999 -fpascal-strings" } */
+
+typedef __WCHAR_TYPE__ wchar_t;
+typedef __SIZE_TYPE__ size_t;
+
+extern void abort (void);
+extern size_t strlen (const char *s);
+
+const unsigned char *pascalStr1 = "\pHello, World!";
+const unsigned char *concat1 = "\pConcatenated" "string" "\pliteral";
+
+const unsigned char msg1[] = "\pHello"; /* ok */
+const unsigned char *msg2 = "\pHello"; /* ok */
+const signed char msg3[] = "\pHello"; /* ok */
+const char msg4[] = "\pHello"; /* ok */
+unsigned char msg5[] = "\pHello"; /* ok */
+signed char msg7[] = "\pHello"; /* ok */
+char msg8[] = "\pHello"; /* ok */
+
+int
+main (void)
+{
+ const unsigned char *pascalStr2 = "\pGood-bye!";
+
+ if (strlen ((const char *)pascalStr1) != 14)
+ abort ();
+ if (*pascalStr1 != 13)
+ abort (); /* the length byte does not include trailing null */
+
+ if (strlen ((const char *)pascalStr2) != 10)
+ abort ();
+ if (*pascalStr2 != 9)
+ abort ();
+
+ if (strlen ((const char *)concat1) != 26)
+ abort ();
+ if (*concat1 != 25)
+ abort ();
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/pascal-strings-2.c b/gcc/testsuite/gcc.apple/pascal-strings-2.c
new file mode 100644
index 00000000000..b25c6cf8013
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/pascal-strings-2.c
@@ -0,0 +1,45 @@
+/* APPLE LOCAL file pascal strings */
+/* Negative C test cases. */
+/* Origin: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999 -Wwrite-strings -fpascal-strings" } */
+
+typedef __WCHAR_TYPE__ wchar_t;
+
+const wchar_t *pascalStr1 = L"\pHi!"; /* { dg-warning "unknown escape sequence" } */
+const wchar_t *pascalStr2 = L"Bye\p!"; /* { dg-warning "unknown escape sequence" } */
+
+const wchar_t *initErr0 = "\pHi"; /* { dg-warning "incompatible pointer type" } */
+const wchar_t initErr0a[] = "\pHi"; /* { dg-error "initialized from non-wide string" } */
+const wchar_t *initErr1 = "Bye"; /* { dg-warning "incompatible pointer type" } */
+const wchar_t initErr1a[] = "Bye"; /* { dg-error "initialized from non-wide string" } */
+
+const char *initErr2 = L"Hi"; /* { dg-warning "incompatible pointer type" } */
+const char initErr2a[] = L"Hi"; /* { dg-error "initialized from wide string" } */
+const signed char *initErr3 = L"Hi"; /* { dg-warning "incompatible pointer type" } */
+const signed char initErr3a[] = L"Hi"; /* { dg-error "initialized from wide string" } */
+const unsigned char *initErr4 = L"Hi"; /* { dg-warning "incompatible pointer type" } */
+const unsigned char initErr4a[] = L"Hi"; /* { dg-error "initialized from wide string" } */
+
+const char *pascalStr3 = "Hello\p, World!"; /* { dg-warning "unknown escape sequence" } */
+
+const char *concat2 = "Hi" "\pthere"; /* { dg-warning "unknown escape sequence" } */
+const char *concat3 = "Hi" "there\p"; /* { dg-warning "unknown escape sequence" } */
+
+const unsigned char *s2 = "\pGoodbye!"; /* ok */
+unsigned char *s3 = "\pHi!"; /* { dg-warning "initialization discards qualifiers" } */
+char *s4 = "\pHi"; /* { dg-warning "initialization discards qualifiers" } */
+signed char *s5 = "\pHi"; /* { dg-warning "initialization discards qualifiers" } */
+const signed char *s6 = "\pHi"; /* { dg-warning "differ in signedness" } */
+
+/* the maximum length of a Pascal literal is 255. */
+const unsigned char *almostTooLong =
+ "\p12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "123456789012345"; /* ok */
+const unsigned char *definitelyTooLong =
+ "\p12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+ "1234567890123456"; /* { dg-error "too long" } */
diff --git a/gcc/testsuite/gcc.apple/pascal-strings-3.c b/gcc/testsuite/gcc.apple/pascal-strings-3.c
new file mode 100644
index 00000000000..477b94bbff2
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/pascal-strings-3.c
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file pascal strings */
+/* Ensure that there are no warnings or errors issued when a Pascal string is used to
+ initialize an array and the NUL terminator does not fit. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings" } */
+
+typedef unsigned char Str15[16];
+
+Str15 ggg = "\p012345678901234";
+Str15 hhh = "\p0123456789012345"; /* { dg-warning "initializer.string for array of chars is too long" } */
+
+int foo(void)
+{
+ Str15 sss = "\p012345678901234";
+ Str15 ttt = "\p0123456789012345"; /* { dg-warning "initializer.string for array of chars is too long" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.apple/power-align-unsup.c b/gcc/testsuite/gcc.apple/power-align-unsup.c
new file mode 100644
index 00000000000..63d86853a97
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/power-align-unsup.c
@@ -0,0 +1,8 @@
+/* Darwin (Mac OS X) alignment exercises. */
+
+/* { dg-do compile { target powerpc-*-darwin[89]* } } */
+/* { dg-options "-m64 -malign-power" } */
+
+/* { dg-error "-malign-power is not supported for 64-bit Darwin" "" { target *-*-* } 1 } */
+
+main() {}
diff --git a/gcc/testsuite/gcc.apple/ppc-ignored-options.c b/gcc/testsuite/gcc.apple/ppc-ignored-options.c
new file mode 100644
index 00000000000..e08634f4fe5
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/ppc-ignored-options.c
@@ -0,0 +1,11 @@
+/* Test options to ignore. */
+
+/* { dg-do run { target powerpc-*-darwin* } } */
+/* { dg-options "-msse -msse2 -march=pentium4 -mcpu=pentium4" } */
+
+int
+main ()
+{
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/ppc_intrinsics-1.c b/gcc/testsuite/gcc.apple/ppc_intrinsics-1.c
new file mode 100644
index 00000000000..3df118853ca
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/ppc_intrinsics-1.c
@@ -0,0 +1,35 @@
+/* { dg-options "-I ${srcdir}/../../more-hdrs" } */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* Radar 3208244 */
+#include "ppc_intrinsics.h"
+#include <stdlib.h>
+
+int main( void )
+{
+ int i,j;
+ int value;
+ register int temp;
+ double a,b,c,d;
+ a = 1.;b=2.;c=3.;
+
+ d = __fmadd(a,b,c);
+ a = __fmadd(c,b,d);
+ d = __fmadd(a,b,c);
+
+ __lwsync();
+ __nop();
+ __lwsync();
+ __nop();
+ d = __fctidz(a);
+ d = __fctidz(d);
+ b = __fctid(a);
+ b = __fctid(b);
+ c = __fcfid(a);
+ c = __fcfid(c);
+ __dcbzl(32,&value);
+ __dcbzl(&value,0);
+
+ return a+b+c+d;
+}
+
+
diff --git a/gcc/testsuite/gcc.apple/ppc_intrinsics-2.c b/gcc/testsuite/gcc.apple/ppc_intrinsics-2.c
new file mode 100644
index 00000000000..2f5698fc685
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/ppc_intrinsics-2.c
@@ -0,0 +1,66 @@
+/* { dg-options "-I ${srcdir}/../../more-hdrs -Wshorten-64-to-32 -Wno-long-long" } */
+/* { dg-do run { target "powerpc*-*-darwin*" } } */
+#include "ppc_intrinsics.h"
+#include <stdlib.h>
+
+int main( void )
+{
+ int intconst = 0x5;
+ long long longlongconst = 0x5;
+ int intloc, intloc1, intloc2;
+ unsigned int uintloc, uintloc1, uintloc2;
+ long longloc;
+ long long longlongloc;
+ int fails = 0;
+
+ intloc = __cntlzw(intconst);
+ if (intloc != 29)
+ ++fails;
+
+ longlongloc = __cntlzd(longlongconst);
+ if (longlongloc != 61)
+ ++fails;
+
+ intloc = 0xffff;
+ __rlwimi(intloc, 0x21876543, 8, 0, 23);
+ if (intloc != 0x876543ff)
+ ++fails;
+
+ intloc = __rlwinm(0x21876543, 8, 0, 31);
+ if (intloc != 0x87654321)
+ ++fails;
+
+ longloc = __rlwinm(0x45, 5, 24, 31);
+ if (longloc != 0xa0)
+ ++fails;
+
+ longloc = __rlwnm(0x47, 5, 24, 31);
+ if (longloc != 0xe0)
+ ++fails;
+
+ intloc1 = 1 << 20;
+ intloc2 = 1 << 21;
+ intloc = __mulhw (intloc1, intloc2);
+ if (intloc != (1 << 9))
+ ++fails;
+
+ intloc1 = 0xfffe0000;
+ intloc2 = 0xfffc0000;
+ intloc = __mulhw (intloc1, intloc2);
+ if (intloc != 8)
+ ++fails;
+
+ uintloc1 = 0xffffffff;
+ uintloc2 = 0xfffffffe;
+ uintloc = __mulhwu (uintloc1, uintloc2);
+ if (uintloc != 0xfffffffd)
+ ++fails;
+
+ uintloc1 = 0xfffe0000;
+ uintloc2 = 0xfffc0000;
+ uintloc = __mulhwu (uintloc1, uintloc2);
+ if (uintloc != 0xfffa0008)
+ ++fails;
+
+ return fails;
+}
diff --git a/gcc/testsuite/gcc.apple/preprocess.s b/gcc/testsuite/gcc.apple/preprocess.s
new file mode 100644
index 00000000000..897f2a7d6b1
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/preprocess.s
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file preprocess .s files */
+
+/* Regression test - in assembly language, # may have some significance
+ other than 'stringize macro argument' and therefore must be preserved
+ in the output, and should not be warned about. */
+
+/* { dg-do preprocess } */
+
+#define foo() mov r0, #5 /* { dg-bogus "not followed" "spurious warning" } */
+
+entry:
+ foo()
+
+/* Check we don't EOF on an unknown directive. */
+#unknown directive
+#error a later diagnostic /* { dg-error "diagnostic" } */
diff --git a/gcc/testsuite/gcc.apple/shorten.c b/gcc/testsuite/gcc.apple/shorten.c
new file mode 100644
index 00000000000..842979b4ed9
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/shorten.c
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file 64bit shorten warning 3865314 */
+/* { dg-do compile } */
+/* { dg-options "-Wshorten-64-to-32" } */
+/* Radar 3865314 */
+
+long long ll;
+int i;
+char c;
+
+void bar (int);
+
+void foo() {
+ c = i;
+ c = ll;
+ i = (int) ll;
+ i = ll; /* { dg-warning "implicit conversion shortens 64-bit value into a 32-bit value" } */
+ i += ll; /* { dg-warning "implicit conversion shortens 64-bit value into a 32-bit value" } */
+ i = i ? ll : i;/* { dg-warning "implicit conversion shortens 64-bit value into a 32-bit value" } */
+ bar (ll); /* { dg-warning "implicit conversion shortens 64-bit value into a 32-bit value" } */
+}
diff --git a/gcc/testsuite/gcc.apple/special/liblongcall.c b/gcc/testsuite/gcc.apple/special/liblongcall.c
new file mode 100644
index 00000000000..6a952281ecd
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/special/liblongcall.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-mlongcall" } */
+#include <stdio.h>
+
+int
+dy_foo (char *str, int i)
+{
+ printf ("dy_foo (\"%s\", %d)\n", str, i);
+ return i + 1;
+}
diff --git a/gcc/testsuite/gcc.apple/special/longcall-prog.c b/gcc/testsuite/gcc.apple/special/longcall-prog.c
new file mode 100644
index 00000000000..5cbb8c0e4ee
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/special/longcall-prog.c
@@ -0,0 +1,18 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+/* declare all externally visible functions in libweak.c */
+int dy_foo (char *, int);
+
+main ()
+{
+ int answer, x=41;
+ char *str = "foostr";
+ printf ("%s begins:\n", __FILE__);
+ answer = dy_foo (str, x);
+ printf ("dy_foo (\"%s\", %d) = %d", str, x, answer);
+ if (answer != 42)
+ printf (" (error!)");
+ printf ("\n%s done.\n", __FILE__);
+ exit (answer != 42);
+}
diff --git a/gcc/testsuite/gcc.apple/special/longcall.exp b/gcc/testsuite/gcc.apple/special/longcall.exp
new file mode 100644
index 00000000000..d9ebd1270ea
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/special/longcall.exp
@@ -0,0 +1,69 @@
+# APPLE LOCAL file testsuite
+# Copyright (C) 2002 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; 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.
+
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# Initialize `dg'.
+dg-init
+
+set timeout 30
+
+set prms_id 0
+set bug_id 0
+
+set testfile "longcall-prog"
+set binfile ${objdir}/${subdir}/${testfile}
+set srcfile ${srcdir}/${subdir}/${testfile}.c
+
+set libfilestem "longcall"
+set libfile "lib${libfilestem}"
+set libbinfile ${objdir}/${subdir}/${libfile}.dylib
+set libsrcfile ${srcdir}/${subdir}/${libfile}.c
+
+file mkdir ${objdir}/${subdir}
+
+set test "longcall/dylib"
+
+proc note_result {success diagnostic} {
+ set verb [expr {($success) ? "pass" : "fail"}]
+ eval {$verb $diagnostic}
+}
+
+set whine "building $test library"
+set additional_flags "additional_flags=-dynamiclib -mlongcall"
+set result [expr {[gcc_target_compile "${libsrcfile}" "${libbinfile}" executable [list debug $additional_flags]] == ""}]
+note_result $result $whine
+
+set whine "building $test test program"
+set additional_flags "additional_flags=-L${objdir}/${subdir} -l${libfilestem}"
+set result [expr {[gcc_target_compile "${srcfile}" "${binfile}" executable [list debug $additional_flags]] == ""}]
+note_result $result $whine
+
+set result [gcc_load "$binfile" "" ""]
+set status [lindex $result 0]
+set output [lindex $result 1];
+if {$status == "pass" } {
+ pass $test
+ file delete $libbinfile $binfile
+} else {
+ fail $test
+}
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.apple/special/special.exp b/gcc/testsuite/gcc.apple/special/special.exp
new file mode 100644
index 00000000000..5344a4817b7
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/special/special.exp
@@ -0,0 +1,42 @@
+# APPLE LOCAL file testsuite
+# Copyright (C) 2002 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; 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.
+
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# Initialize `dg'.
+dg-init
+
+# Test the zerofill support by seeing if a file with a large array
+# compiled -fno-common has a small size on disk.
+
+gcc_target_compile "$srcdir/$subdir/zerofill.c" "zerofill.o" object \
+ "additional_flags=-fno-common"
+
+set size [ exec wc -c < zerofill.o ]
+
+if { $size < 100000 } {
+ pass "zerofill"
+} else {
+ fail "zerofill"
+}
+
+file delete zerofill.o
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.apple/special/zerofill.c b/gcc/testsuite/gcc.apple/special/zerofill.c
new file mode 100644
index 00000000000..e4bd84c816f
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/special/zerofill.c
@@ -0,0 +1,5 @@
+/* APPLE LOCAL file zerofill */
+
+int arr[40000];
+
+foo() {}
diff --git a/gcc/testsuite/gcc.apple/string-insns.c b/gcc/testsuite/gcc.apple/string-insns.c
new file mode 100644
index 00000000000..aee058d5548
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/string-insns.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL Disable string insns with -Os on Darwin (radar 3509006) */
+/* { dg-do compile { target powerpc*-apple-darwin* } } */
+/* { dg-options "-Os" } */
+/* On ppc at Apple, -Os should not use string instructions. 3509006. */
+struct s { int a; int b; int c; };
+int foo (struct s* p, struct s* q) {
+ *p = *q;
+}
+/* { dg-final { scan-assembler-not "lswi" } } */
diff --git a/gcc/testsuite/gcc.apple/test-ldouble.c b/gcc/testsuite/gcc.apple/test-ldouble.c
new file mode 100644
index 00000000000..fe85d86e0e1
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/test-ldouble.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-Os" } */
+
+extern void __inline_x80told(long double *x);
+extern double rint( double );
+
+extern unsigned long AECreateDesc(const void * dataPtr);
+
+unsigned long aeCoercePtrToMagnitude()
+{
+ unsigned long err = 0;
+ unsigned long magValue;
+ double doubleValue;
+ long double longDoubleValue;
+
+ __inline_x80told(&longDoubleValue);
+ doubleValue = longDoubleValue;
+ if (doubleValue < 0)
+ err = 2;
+ else
+ magValue = (unsigned long) rint(doubleValue);
+ err = AECreateDesc(&magValue);
+ return err;
+}
diff --git a/gcc/testsuite/gcc.apple/test-local-static-longlong.c b/gcc/testsuite/gcc.apple/test-local-static-longlong.c
new file mode 100644
index 00000000000..19afa53c016
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/test-local-static-longlong.c
@@ -0,0 +1,19 @@
+/* { dg-do run } */
+/* { dg-options "-Wno-long-long" } */
+
+#include <stdlib.h>
+
+long long foo()
+{
+ static long long rat = (1LL<<62);
+ return rat;
+}
+
+int main()
+{
+
+ if (foo() != (1LL<<62))
+ abort();
+ exit(0);
+}
+
diff --git a/gcc/testsuite/gcc.apple/very-long-comment.c b/gcc/testsuite/gcc.apple/very-long-comment.c
new file mode 100644
index 00000000000..2d9928dd4b3
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/very-long-comment.c
@@ -0,0 +1,14 @@
+/*
+This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment. This is a really long comment.
+ */
+#warning test warning /* { dg-warning "test warning" } */
+#include <stdio.h>
+
+int main()
+{
+ printf("This is line %d\n", __LINE__);
+ return 0;
+}
+
+/* { dg-options "-Wall" } */
+/* { dg-do compile } */
diff --git a/gcc/testsuite/gcc.apple/x86-ignored-options.c b/gcc/testsuite/gcc.apple/x86-ignored-options.c
new file mode 100644
index 00000000000..d48919758bf
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/x86-ignored-options.c
@@ -0,0 +1,11 @@
+/* Test options to ignore. */
+
+/* { dg-do run { target i?86-*-darwin* } } */
+/* { dg-options "-faltivec -mno-fused-madd -mlong-branch -mlongcall -mcpu=G4 -mcpu=G5" } */
+
+int
+main ()
+{
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.apple/x86-no-math-errno.c b/gcc/testsuite/gcc.apple/x86-no-math-errno.c
new file mode 100644
index 00000000000..c0b018d8be3
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/x86-no-math-errno.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL begin math-errno off by default 4094534 */
+/* { dg-do compile { target i?86-*-darwin* } } */
+/* { dg-options "-O3" } */
+/* { dg-final { scan-assembler-not "ucomiss" } } */
+extern double sqrt(double);
+float foo(float y) {
+ return sqrt(y);
+}
+/* APPLE LOCAL end math-errno off by default 4094534 */
diff --git a/gcc/testsuite/gcc.c-torture/compile/20011119-1.c b/gcc/testsuite/gcc.c-torture/compile/20011119-1.c
index 2204c11c90b..4057ff0612c 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20011119-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20011119-1.c
@@ -1,3 +1,5 @@
+/* { dg-require-weak "" } */
+/* { dg-require-alias "" } */
extern inline int foo (void) { return 23; }
int xxx(void) __asm__("xxx");
int xxx(void) { return 23; }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20011119-2.c b/gcc/testsuite/gcc.c-torture/compile/20011119-2.c
index ab649b98bc7..3f5a62f10a4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20011119-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20011119-2.c
@@ -1,3 +1,5 @@
+/* { dg-require-weak "" } */
+/* { dg-require-alias "" } */
extern inline int foo (void) { return 23; }
int bar (void) { return foo (); }
extern int foo (void) __attribute__ ((weak, alias ("xxx")));
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040323-1.c b/gcc/testsuite/gcc.c-torture/compile/20040323-1.c
index a8d924ab0fc..77ddadc9dcd 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20040323-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20040323-1.c
@@ -1,7 +1,7 @@
/* PR middle-end/14694 */
/* { dg-require-alias "" } */
-/* { dg-xfail-if "undefined alias" { "*-*-solaris2.*" } { "*" } { "" } } */
+unsigned int _rtld_global = 1;
extern unsigned int _rtld_local __attribute__ ((alias ("_rtld_global")));
unsigned int
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050215-1.c b/gcc/testsuite/gcc.c-torture/compile/20050215-1.c
new file mode 100644
index 00000000000..e9717797a10
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20050215-1.c
@@ -0,0 +1,4 @@
+/* PR tree-optimization/18947 */
+extern __inline void f1 (void) { }
+extern __inline void f2 (void) { f1 (); }
+void f2 (void) {}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050215-2.c b/gcc/testsuite/gcc.c-torture/compile/20050215-2.c
new file mode 100644
index 00000000000..44550d04ce7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20050215-2.c
@@ -0,0 +1,7 @@
+/* PR tree-optimization/18947 */
+int v;
+extern __inline void f1 (void) { v++; }
+void f4 (void) { f1 (); }
+extern __inline void f2 (void) { f1 (); }
+void f3 (void) { f2 (); }
+void f2 (void) { f1 (); }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050215-3.c b/gcc/testsuite/gcc.c-torture/compile/20050215-3.c
new file mode 100644
index 00000000000..7a35eb6d0c1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20050215-3.c
@@ -0,0 +1,8 @@
+/* PR tree-optimization/18947 */
+int v;
+extern __inline void f0 (void) { v++; }
+extern __inline void f1 (void) { f0 (); }
+void f4 (void) { f1 (); }
+extern __inline void f2 (void) { f1 (); }
+void f3 (void) { f2 (); }
+void f2 (void) { f1 (); }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050217-1.c b/gcc/testsuite/gcc.c-torture/compile/20050217-1.c
new file mode 100644
index 00000000000..f4b928d1e04
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20050217-1.c
@@ -0,0 +1,14 @@
+/* PR c++/20023 */
+
+void f (void);
+typedef __SIZE_TYPE__ size_t;
+void g (void *a)
+{
+ size_t b = (size_t) a;
+ switch (b)
+ {
+ case 1:
+ f ();
+ break;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
new file mode 100644
index 00000000000..005a8c50ea4
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file mainline */
+void crc()
+{
+ int toread;
+ long long nleft;
+ unsigned char buf[(128 * 1024)];
+
+ nleft = 0;
+ while (toread = (nleft < (2147483647 * 2U + 1U)) ? nleft: (2147483647 * 2U + 1U) )
+ ;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/981001-2.c b/gcc/testsuite/gcc.c-torture/compile/981001-2.c
index 9ade1d92aef..f635cbb60e3 100644
--- a/gcc/testsuite/gcc.c-torture/compile/981001-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/981001-2.c
@@ -1,3 +1,5 @@
+/* { dg-require-weak "" } */
+/* { dg-require-alias "" } */
#define weak_alias(func, aliasname) \
extern __typeof (func) aliasname __attribute__ ((weak, alias (#func)));
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr13066-1.c b/gcc/testsuite/gcc.c-torture/compile/pr13066-1.c
new file mode 100644
index 00000000000..c2930f95df6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr13066-1.c
@@ -0,0 +1,10 @@
+void *g, *c;
+int a, b;
+
+int f()
+{
+ if ((0 == a) != (b || g == c))
+ return 1;
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20203.c b/gcc/testsuite/gcc.c-torture/compile/pr20203.c
new file mode 100644
index 00000000000..1fb2a045d55
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr20203.c
@@ -0,0 +1,16 @@
+void *memset (void *, int, unsigned long);
+
+typedef struct bfd_section
+{
+ unsigned long size;
+ unsigned char *contents;
+} asection;
+
+int
+_bfd_mips_elf_finish_dynamic_sections (asection *s)
+{
+ long long dummy_offset;
+ dummy_offset = s->size - 16;
+ memset (s->contents + dummy_offset, 0, 16);
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20412.c b/gcc/testsuite/gcc.c-torture/compile/pr20412.c
new file mode 100644
index 00000000000..c0feecf3d43
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr20412.c
@@ -0,0 +1,20 @@
+int
+foo(void)
+{
+ int a,b,g;
+ int i,len;
+ int stop;
+
+ len = 10;
+ stop = 0;
+ for (i=0; i<len; i++)
+ {
+ a = bar1() ? 0 : 1;
+ b = bar2() ? 0 : 1;
+ g = bar3() ? 0 : 1;
+
+ if (stop = ((a+b) % 2 != g)) break;
+ }
+
+ return stop;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20539-1.c b/gcc/testsuite/gcc.c-torture/compile/pr20539-1.c
new file mode 100644
index 00000000000..f67f06b8816
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr20539-1.c
@@ -0,0 +1,10 @@
+char l7_en;
+long long l6_data_Z_0th;
+int t;
+void f()
+{
+ if (((char )(l6_data_Z_0th>>1 & 1U)) & ((l6_data_Z_0th & 1U)
+ | !(((char )(l6_data_Z_0th>>35 & 15U))==14U)))
+ t = 0ULL;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/simd-4.x b/gcc/testsuite/gcc.c-torture/compile/simd-4.x
new file mode 100644
index 00000000000..0ab59899f66
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/simd-4.x
@@ -0,0 +1,4 @@
+# APPLE LOCAL file vector instructions are not supported except with -faltivec
+
+if { [istarget "*-apple-darwin*"] } { set options "-faltivec" }
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c
new file mode 100644
index 00000000000..0924f5cc02d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-1.c
@@ -0,0 +1,7 @@
+/* Bug c/17855. */
+struct foo {char x, y, z[2];};
+struct foo f();
+void bar(int baz)
+{
+ f().z[baz] = 1;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c
new file mode 100644
index 00000000000..daa0d17492d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-2.c
@@ -0,0 +1,7 @@
+/* Bug c/17855, using conditional expression for non-lvalue. */
+struct foo {char x, y, z[2];};
+struct foo p, q; int r;
+void bar(int baz)
+{
+ (r ? p : q).z[baz] = 1;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c
new file mode 100644
index 00000000000..3020194cae0
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/struct-non-lval-3.c
@@ -0,0 +1,7 @@
+/* Bug c/17855, using assignment for non-lvalue. */
+struct foo {char x, y, z[2];};
+struct foo p, q;
+void bar(int baz)
+{
+ (p = q).z[baz] = 1;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020720-1.x b/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
index 7afd9e44879..c693128a791 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
@@ -29,7 +29,7 @@ set torture_eval_before_compile {
set compiler_conditional_xfail_data {
"This test fails to optimize completely on certain platforms." \
{ "xtensa-*-*" "sh-*-*" "arm*-*-*" "strongarm*-*-*" "xscale*-*-*" \
- "h8300*-*-*" "cris-*-*" "frv-*-*" "powerpc-*-*spe" } \
+ "h8300*-*-*" "frv-*-*" "powerpc-*-*spe" } \
{ "*" } \
{ "-O0" }
}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050119-2.c b/gcc/testsuite/gcc.c-torture/execute/20050119-2.c
new file mode 100644
index 00000000000..568109cb2c9
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050119-2.c
@@ -0,0 +1,40 @@
+/* PR middle-end/19874 */
+typedef enum { A, B, C, D } E;
+
+struct S {
+ E __attribute__ ((mode (__byte__))) a;
+ E __attribute__ ((mode (__byte__))) b;
+ E __attribute__ ((mode (__byte__))) c;
+ E __attribute__ ((mode (__byte__))) d;
+};
+
+extern void abort (void);
+extern void exit (int);
+
+E
+foo (struct S *s)
+{
+ if (s->a != s->b)
+ abort ();
+ if (s->c != C)
+ abort ();
+ return s->d;
+}
+
+int
+main (void)
+{
+ struct S s[2];
+ s[0].a = B;
+ s[0].b = B;
+ s[0].c = C;
+ s[0].d = D;
+ s[1].a = D;
+ s[1].b = C;
+ s[1].c = B;
+ s[1].d = A;
+ if (foo (s) != D)
+ abort ();
+ exit (0);
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050215-1.c b/gcc/testsuite/gcc.c-torture/execute/20050215-1.c
new file mode 100644
index 00000000000..f4920ce5fd9
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050215-1.c
@@ -0,0 +1,25 @@
+/* PR middle-end/19857 */
+
+typedef struct { char c[8]; } V
+#ifdef __ELF__
+ __attribute__ ((aligned (8)))
+#endif
+ ;
+typedef __SIZE_TYPE__ size_t;
+V v;
+void abort (void);
+
+int
+main (void)
+{
+ V *w = &v;
+ if (((size_t) ((float *) ((size_t) w & ~(size_t) 3)) % 8) != 0
+ || ((size_t) w & 1))
+ {
+#ifndef __ELF__
+ if (((size_t) &v & 7) == 0)
+#endif
+ abort ();
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050218-1.c b/gcc/testsuite/gcc.c-torture/execute/20050218-1.c
new file mode 100644
index 00000000000..104174f923a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050218-1.c
@@ -0,0 +1,30 @@
+/* PR tree-optimization/19828 */
+typedef __SIZE_TYPE__ size_t;
+extern size_t strlen (const char *s);
+extern int strncmp (const char *s1, const char *s2, size_t n);
+extern void abort (void);
+
+const char *a[16] = { "a", "bc", "de", "fgh" };
+
+int
+foo (char *x, const char *y, size_t n)
+{
+ size_t i, j = 0;
+ for (i = 0; i < n; i++)
+ {
+ if (strncmp (x + j, a[i], strlen (a[i])) != 0)
+ return 2;
+ j += strlen (a[i]);
+ if (y)
+ j += strlen (y);
+ }
+ return 0;
+}
+
+int
+main (void)
+{
+ if (foo ("abcde", (const char *) 0, 3) != 0)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050224-1.c b/gcc/testsuite/gcc.c-torture/execute/20050224-1.c
new file mode 100644
index 00000000000..681200364c1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050224-1.c
@@ -0,0 +1,33 @@
+/* Origin: Mikael Pettersson <mikpe@csd.uu.se> and the Linux kernel. */
+
+extern void abort (void);
+unsigned long a = 0xc0000000, b = 0xd0000000;
+unsigned long c = 0xc01bb958, d = 0xc0264000;
+unsigned long e = 0xc0288000, f = 0xc02d4378;
+
+void
+foo (int x, int y, int z)
+{
+ if (x != 245 || y != 36 || z != 444)
+ abort ();
+}
+
+int
+main (void)
+{
+ unsigned long g;
+ int h = 0, i = 0, j = 0;
+
+ if (sizeof (unsigned long) < 4)
+ return 0;
+
+ for (g = a; g < b; g += 0x1000)
+ if (g < c)
+ h++;
+ else if (g >= d && g < e)
+ j++;
+ else if (g < f)
+ i++;
+ foo (i, j, h);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-1.c b/gcc/testsuite/gcc.c-torture/execute/20050316-1.c
new file mode 100644
index 00000000000..2a1c6254dfa
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050316-1.c
@@ -0,0 +1,69 @@
+/* PR rtl-optimization/16104 */
+
+extern void abort (void);
+
+typedef int V2SI __attribute__ ((vector_size (8)));
+typedef unsigned int V2USI __attribute__ ((vector_size (8)));
+typedef short V2HI __attribute__ ((vector_size (4)));
+typedef unsigned int V2UHI __attribute__ ((vector_size (4)));
+
+int
+test1 (void)
+{
+ return (long long) (V2SI) 0LL;
+}
+
+int
+test2 (V2SI x)
+{
+ return (long long) x;
+}
+
+V2SI
+test3 (void)
+{
+ return (V2SI) (long long) (int) (V2HI) 0;
+}
+
+V2SI
+test4 (V2HI x)
+{
+ return (V2SI) (long long) (int) x;
+}
+
+V2SI
+test5 (V2USI x)
+{
+ return (V2SI) x;
+}
+
+int
+main (void)
+{
+ if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8)
+ return 0;
+
+ if (test1 () != 0)
+ abort ();
+
+ V2SI x = { 2, 2 };
+ if (test2 (x) != 2)
+ abort ();
+
+ union { V2SI x; int y[2]; V2USI z; long long l; } u;
+ u.x = test3 ();
+ if (u.y[0] != 0 || u.y[1] != 0)
+ abort ();
+
+ V2HI y = { 4, 4 };
+ union { V2SI x; long long y; } v;
+ v.x = test4 (y);
+ if (v.y != 0x40004)
+ abort ();
+
+ V2USI z = { 6, 6 };
+ u.x = test5 (z);
+ if (u.y[0] != 6 || u.y[1] != 6)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050410-1.c b/gcc/testsuite/gcc.c-torture/execute/20050410-1.c
new file mode 100644
index 00000000000..c4cd85279a9
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050410-1.c
@@ -0,0 +1,13 @@
+int s = 200;
+int __attribute__((noinline))
+foo (void)
+{
+ return (signed char) (s - 100) - 5;
+}
+int
+main (void)
+{
+ if (foo () != 95)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050414-1.c b/gcc/testsuite/gcc.c-torture/execute/20050414-1.c
new file mode 100644
index 00000000000..8217280ae1b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050414-1.c
@@ -0,0 +1,47 @@
+/* PR target/20126 was not really target-specific, but rather a loop's
+ failure to take into account the possibility that a DEST_ADDR giv
+ replacement might fail, such as when you attempt to replace a REG
+ with a PLUS in one of the register_operands of cmpstrqi_rex_1. */
+
+extern void abort (void);
+
+typedef struct { int a; char b[3]; } S;
+S c = { 2, "aa" }, d = { 2, "aa" };
+
+void *
+bar (const void *x, int y, int z)
+{
+ return (void *) 0;
+}
+
+int
+foo (S *x, S *y)
+{
+ const char *e, *f, *g;
+ int h;
+
+ h = y->a;
+ f = y->b;
+ e = x->b;
+
+ if (h == 1)
+ return bar (e, *f, x->a) != 0;
+
+ g = e + x->a - h;
+ while (e <= g)
+ {
+ const char *t = e + 1;
+ if (__builtin_memcmp (e, f, h) == 0)
+ return 1;
+ e = t;
+ }
+ return 0;
+}
+
+int
+main (void)
+{
+ if (foo (&c, &d) != 1)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x
new file mode 100644
index 00000000000..8e3b5f146f1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x
@@ -0,0 +1,6 @@
+if [istarget "mips-sgi-irix6*"] {
+ # IRIX 6 sets the MIPS IV flush to zero bit by default, so this test
+ # isn't expected to work for n32 and n64 on MIPS IV targets.
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c b/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c
new file mode 100644
index 00000000000..13396fbf0da
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-1.c
@@ -0,0 +1,30 @@
+/* From PR 18977. */
+void foo(float * x);
+
+int main()
+{
+ float x[4];
+ foo (x);
+ return 0;
+}
+
+void foo (float *x)
+{
+ int i,j,k;
+ float temp;
+ static float t16[16]={1.,2.,3.,4.,5.,6.,7.,8.,9.,
+ 10.,11.,12.,13.,14.,15.,16.};
+ static float tmp[4]={0.,0.,0.,0.};
+
+ for (i=0; i<4; i++) {
+ k = 3 - i;
+ temp = t16[5*k];
+ for(j=k+1; j<4; j++) {
+ tmp[k] = t16[k+ j*4] * temp;
+ }
+ }
+ x[0] = tmp[0];
+ x[1] = tmp[1];
+ x[2] = tmp[2];
+ x[3] = tmp[3];
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c b/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c
new file mode 100644
index 00000000000..737640bff05
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c
@@ -0,0 +1,50 @@
+/* PR rtl-optimization/20290 */
+
+/* We used to mis-optimize the second loop in main on at least ppc and
+ arm, because tree loop would change the loop to something like:
+
+ ivtmp.65 = &l[i];
+ ivtmp.16 = 113;
+ goto <bb 4> (<L4>);
+
+<L3>:;
+ *(ivtmp.65 + 4294967292B) = 9;
+ i = i + 1;
+
+<L4>:;
+ ivtmp.16 = ivtmp.16 - 1;
+ ivtmp.65 = ivtmp.65 + 4B;
+ if (ivtmp.16 != 0) goto <L3>;
+
+ We used to consider the increment of i as executed in every
+ iteration, so we'd miscompute the final value. */
+
+extern void abort (void);
+
+void
+check (unsigned int *l)
+{
+ int i;
+ for (i = 0; i < 288; i++)
+ if (l[i] != 7 + (i < 256 || i >= 280) + (i >= 144 && i < 256))
+ abort ();
+}
+
+int
+main (void)
+{
+ int i;
+ unsigned int l[288];
+
+ for (i = 0; i < 144; i++)
+ l[i] = 8;
+ for (; i < 256; i++)
+ l[i] = 9;
+ for (; i < 280; i++)
+ l[i] = 7;
+ for (; i < 288; i++)
+ l[i] = 8;
+ check (l);
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/medce-2.c b/gcc/testsuite/gcc.c-torture/execute/medce-2.c
deleted file mode 100644
index cd83ead2867..00000000000
--- a/gcc/testsuite/gcc.c-torture/execute/medce-2.c
+++ /dev/null
@@ -1,42 +0,0 @@
-
-extern void abort ();
-
-static int ok = 0;
-
-int bar(void)
-{
- ok |= 1;
- return 1;
-}
-
-void bat(void)
-{
- ok |= 2;
-}
-
-void baz(void)
-{
- ok |= 4;
-}
-
-void foo()
-{
- goto lab;
-
- if (0)
- {
- if (({lab: bar();}))
- bat ();
- else
- baz ();
- }
-}
-
-int main()
-{
- foo();
- if (ok != 3)
- abort ();
- return 0;
-}
-
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr17133.c b/gcc/testsuite/gcc.c-torture/execute/pr17133.c
new file mode 100644
index 00000000000..6357d03a54f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr17133.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file mainline */
+extern void abort (void);
+
+int foo = 0;
+void *bar = 0;
+unsigned int baz = 100;
+
+void *pure_alloc ()
+{
+ void *res;
+
+ while (1)
+ {
+ res = (void *) ((((unsigned int) (foo + bar))) & ~1);
+ foo += 2;
+ if (foo < baz)
+ return res;
+ foo = 0;
+ }
+}
+
+int main ()
+{
+ pure_alloc ();
+ if (!foo)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr20100-1.c b/gcc/testsuite/gcc.c-torture/execute/pr20100-1.c
new file mode 100644
index 00000000000..8782edcd845
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr20100-1.c
@@ -0,0 +1,76 @@
+/* PR tree-optimization/20100
+ Pure function being treated as const.
+ Author: Hans-Peter Nilsson. */
+
+static unsigned short g = 0;
+static unsigned short p = 0;
+unsigned char e;
+
+static unsigned short
+next_g (void)
+{
+ return g == e - 1 ? 0 : g + 1;
+}
+
+static unsigned short
+curr_p (void)
+{
+ return p;
+}
+
+static unsigned short
+inc_g (void)
+{
+ return g = next_g ();
+}
+
+static unsigned short
+curr_g (void)
+{
+ return g;
+}
+
+static char
+ring_empty (void)
+{
+ if (curr_p () == curr_g ())
+ return 1;
+ else
+ return 0;
+}
+
+char
+frob (unsigned short a, unsigned short b)
+{
+ g = a;
+ p = b;
+ inc_g ();
+ return ring_empty ();
+}
+
+unsigned short
+get_n (void)
+{
+ unsigned short n = 0;
+ unsigned short org_g;
+ org_g = curr_g ();
+ while (!ring_empty () && n < 5)
+ {
+ inc_g ();
+ n++;
+ }
+
+ return n;
+}
+
+void abort (void);
+void exit (int);
+int main (void)
+{
+ e = 3;
+ if (frob (0, 2) != 0 || g != 1 || p != 2 || e != 3
+ || get_n () != 1
+ || g != 2 || p != 2)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr20527-1.c b/gcc/testsuite/gcc.c-torture/execute/pr20527-1.c
new file mode 100644
index 00000000000..81162dfebb4
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr20527-1.c
@@ -0,0 +1,81 @@
+/* PR rtl-optimization/20527
+ Mishandled postincrement. This test-case is derived from the
+ function BZ2_hbCreateDecodeTables in the file huffman.c from
+ bzip2-1.0.2, hence requiring the following disclaimer copied here: */
+
+/*--
+ This file is a part of bzip2 and/or libbzip2, a program and
+ library for lossless, block-sorting data compression.
+
+ Copyright (C) 1996-2002 Julian R Seward. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+ 3. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+ 4. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ Julian Seward, Cambridge, UK.
+ jseward@acm.org
+ bzip2/libbzip2 version 1.0 of 21 March 2000
+
+ This program is based on (at least) the work of:
+ Mike Burrows
+ David Wheeler
+ Peter Fenwick
+ Alistair Moffat
+ Radford Neal
+ Ian H. Witten
+ Robert Sedgewick
+ Jon L. Bentley
+
+ For more information on these sources, see the manual.
+--*/
+
+void f (long *limit, long *base, long minLen, long maxLen) __attribute__ ((__noinline__));
+void f (long *limit, long *base, long minLen, long maxLen)
+{
+ long i;
+ long vec;
+ vec = 0;
+ for (i = minLen; i <= maxLen; i++) {
+ vec += (base[i+1] - base[i]);
+ limit[i] = vec-1;
+ }
+}
+extern void abort (void);
+extern void exit (int);
+long b[] = {1, 5, 11, 23};
+int main (void)
+{
+ long l[3];
+ f (l, b, 0, 2);
+ if (l[0] != 3 || l[1] != 9 || l[2] != 21)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr20601-1.c b/gcc/testsuite/gcc.c-torture/execute/pr20601-1.c
new file mode 100644
index 00000000000..7c13c913819
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr20601-1.c
@@ -0,0 +1,122 @@
+/* PR tree-optimization/20601 */
+extern void abort (void);
+extern void exit (int);
+
+struct T
+{
+ char *t1;
+ char t2[4096];
+ char **t3;
+};
+
+int a[5];
+int b;
+char **c;
+int d;
+char **e;
+struct T t;
+char *f[16];
+char *g[] = { "a", "-u", "b", "c" };
+
+__attribute__ ((__noreturn__)) void
+foo (void)
+{
+ while (1);
+}
+
+__attribute__ ((noinline)) char *
+bar (char *x, unsigned int y)
+{
+ return 0;
+}
+
+static inline char *
+baz (char *x, unsigned int y)
+{
+ if (sizeof (t.t2) != (unsigned int) -1 && y > sizeof (t.t2))
+ foo ();
+ return bar (x, y);
+}
+
+static inline int
+setup1 (int x)
+{
+ char *p;
+ int rval;
+
+ if (!baz (t.t2, sizeof (t.t2)))
+ baz (t.t2, sizeof (t.t2));
+
+ if (x & 0x200)
+ {
+ char **h, **i = e;
+
+ ++d;
+ e = f;
+ if (t.t1 && *t.t1)
+ e[0] = t.t1;
+ else
+ abort ();
+
+ for (h = e + 1; (*h = *i); ++i, ++h)
+ ;
+ }
+ return 1;
+}
+
+static inline int
+setup2 (void)
+{
+ int j = 1;
+
+ e = c + 1;
+ d = b - 1;
+ while (d > 0 && e[0][0] == '-')
+ {
+ if (e[0][1] != '\0' && e[0][2] != '\0')
+ abort ();
+
+ switch (e[0][1])
+ {
+ case 'u':
+ if (!e[1])
+ abort ();
+
+ t.t3 = &e[1];
+ d--;
+ e++;
+ break;
+ case 'P':
+ j |= 0x1000;
+ break;
+ case '-':
+ d--;
+ e++;
+ if (j == 1)
+ j |= 0x600;
+ return j;
+ }
+ d--;
+ e++;
+ }
+
+ if (d > 0 && !(j & 1))
+ abort ();
+
+ return j;
+}
+
+int
+main (void)
+{
+ int x;
+ c = g;
+ b = 4;
+ x = setup2 ();
+ t.t1 = "/bin/sh";
+ setup1 (x);
+ /* PRE shouldn't transform x into the constant 0x601 here, it's not legal. */
+ if ((x & 0x400) && !a[4])
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr21173.c b/gcc/testsuite/gcc.c-torture/execute/pr21173.c
new file mode 100644
index 00000000000..e9509b294f7
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr21173.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file 4100712 FSF 4.0 branch */
+void abort (void);
+
+char q;
+void *a[2];
+
+void foo (char *p)
+{
+ int i;
+ for (i = 0; i < 2; i++)
+ a[i] += p - &q;
+}
+
+int main (void)
+{
+ int i;
+ foo (&q);
+ for (i = 0; i < 2; i ++)
+ if (a[i])
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20050307-1.c b/gcc/testsuite/gcc.dg/20050307-1.c
new file mode 100644
index 00000000000..0e8dac69a65
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050307-1.c
@@ -0,0 +1,52 @@
+/* PR target/20322 */
+
+extern void abort (void);
+
+typedef unsigned long T;
+typedef struct
+{
+ T a, b;
+ unsigned char c, d;
+} S;
+
+#define M (sizeof (T) * 4)
+
+S __attribute__((noinline))
+foo (T x, T y)
+{
+ S e;
+ T f[2], g;
+
+ e.b = (x & (~(T) 0 >> M)) * (y & (~(T) 0 >> M));
+ e.a = (x >> M) * (y >> M);
+
+ f[0] = (x & (~(T) 0 >> M)) * (y >> M);
+ f[1] = (x >> M) * (y & (~(T) 0 >> M));
+
+ g = e.b;
+ e.b += (f[0] & (~(T) 0 >> M)) << M;
+ if (e.b < g)
+ e.a++;
+
+ g = e.b;
+ e.b += (f[1] & (~(T) 0 >> M)) << M;
+ if (e.b < g)
+ e.a++;
+
+ e.a += (f[0] >> M);
+ e.a += (f[1] >> M);
+ e.c = 1;
+ e.d = 0;
+
+ return e;
+}
+
+int
+main (void)
+{
+ T x = 1UL << (M * 2 - 1);
+ S y = foo (1, x);
+ if (y.a || y.b != x || y.c != 1 || y.d)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20050309-1.c b/gcc/testsuite/gcc.dg/20050309-1.c
new file mode 100644
index 00000000000..413930f86f8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050309-1.c
@@ -0,0 +1,37 @@
+/* This caused an ICE on s390 due to incorrect secondary
+ output reloads. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fprofile-generate" } */
+
+char *
+test(char *ret, int *counter, void *schema,
+ const char* name, const char *namespace,
+ void *node, int topLevel)
+{
+ char buf[30];
+ int val;
+
+ if (counter == 0) return 0;
+ if (schema == 0) return 0;
+ if (name == 0) return 0;
+
+ __builtin_memset (ret, 0, 100);
+ lookup (schema, name, -1);
+ val = hash (schema, name, namespace, name, ret);
+ if (val == 0) return ret;
+
+ if (topLevel != 0)
+ {
+ error (1, 0, 0, node, "%s", name);
+ return 0;
+ }
+
+ __snprintf_chk (buf, 29, 1, 30, "#eCont %d", ++*counter);
+ val = hash (schema, name, buf, namespace, ret);
+ if (val == 0) return ret;
+
+ error (1, 0, 0, node, "%s", name);
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/20050321-1.c b/gcc/testsuite/gcc.dg/20050321-1.c
new file mode 100644
index 00000000000..01c68cd5ed9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050321-1.c
@@ -0,0 +1,26 @@
+/* This caused an ICE on powerpc-linux-gnu due to not
+ up-to-date life info (PR middle-end/20177). */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fmodulo-sched" } */
+extern void * malloc (long);
+
+struct s {
+ int k;
+};
+
+int n;
+struct s *a1, *(*use)[];
+float (*vector)[];
+
+void
+foo (float *V)
+{
+ int i, used = 0;
+
+ vector = malloc (i * sizeof (float));
+ while ((*use)[used] != a1)
+ used += 1;
+ for (i = 0; i < n; i++)
+ *V += (*vector)[i];
+}
diff --git a/gcc/testsuite/gcc.dg/20050321-2.c b/gcc/testsuite/gcc.dg/20050321-2.c
new file mode 100644
index 00000000000..ac3191423b1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050321-2.c
@@ -0,0 +1,54 @@
+/* This testcase could not assemble on ppc32, because the compiler assumed
+ the huge ADDR_DIFF_VEC will be emitted into rodata section, yet because
+ of some notes inserted between jump table's CODE_LABEL and the jump table
+ it ended up in the .text section and thus shorten_branches couldn't
+ figure out branch to lab is too far. */
+/* { dg-do link } */
+/* { dg-options "-g1 -fpic" } */
+
+#define A(n) \
+ case n##1: return n##1 * 131 + 63; \
+ case n##3: return n##3 * 1231 + 182; \
+ case n##5: return n##5 * 351 + 1; \
+ case n##7: return n##7 * 312 + 61; \
+ case n##9: return n##9 * 17 - 1;
+#define B(n) \
+A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
+A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
+#define C(n) \
+B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
+B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
+#define D(n) \
+C(n##0) C(n##1) B(n##20) B(n##21) B(n##22)
+
+int
+foo (int x)
+{
+ {
+lab:;
+ int a = x;
+ while (a < 60000)
+ {
+ int b = a;
+ {
+ int c = b;
+ switch (c)
+ {
+ D(1)
+ default: break;
+ }
+ }
+ a += 10000;
+ if (a == 4168)
+ goto lab;
+ }
+ }
+ return x;
+}
+
+int
+main (void)
+{
+ foo (71);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20050325-1.c b/gcc/testsuite/gcc.dg/20050325-1.c
new file mode 100644
index 00000000000..5760e387a22
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050325-1.c
@@ -0,0 +1,19 @@
+/* PR 20249 */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fprofile-arcs" } */
+
+extern int *g (int x, void* y);
+extern void fg (long long x, int y);
+
+static void
+ff (int y, long long z)
+{
+ fg (z, 1);
+}
+
+void
+f ()
+{
+ g (42, ff);
+}
diff --git a/gcc/testsuite/gcc.dg/20050330-1.c b/gcc/testsuite/gcc.dg/20050330-1.c
new file mode 100644
index 00000000000..69b5f9dcfe9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050330-1.c
@@ -0,0 +1,14 @@
+/* This test is a reduced test case for a bug that caused
+ ICE while bootstrapping with -fmodulo-sched on powerpc-apple-darwin
+ related to (PR middle-end/20177). */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fmodulo-sched" } */
+
+void
+foo ( const char *bytes, int len , char *buf)
+{
+ int i;
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
+}
diff --git a/gcc/testsuite/gcc.dg/20050409-1.c b/gcc/testsuite/gcc.dg/20050409-1.c
new file mode 100644
index 00000000000..be85f71a6b7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050409-1.c
@@ -0,0 +1,18 @@
+/* This used to ICE due to a regmove problem on s390. */
+
+/* { dg-do compile { target s390*-*-* } } */
+/* { dg-options "-O2" } */
+
+
+extern void abort (void);
+extern void **alloc (void);
+
+void *test (void)
+{
+ void **p = alloc ();
+ if (!p) abort ();
+
+ __builtin_set_thread_pointer (p);
+ return *p;
+}
+
diff --git a/gcc/testsuite/gcc.dg/20050603-1.c b/gcc/testsuite/gcc.dg/20050603-1.c
new file mode 100644
index 00000000000..7ec96dbc09d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050603-1.c
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-O2" } */
+#include <locale.h>
+#include <stdlib.h>
+register int *testreg asm ("r29");
+
+int x;
+int y;
+int *ext_func (int *p) { return p; }
+
+void test_reg_save_restore (int*) __attribute__((noinline));
+void
+test_reg_save_restore (int *p)
+{
+ setlocale (LC_ALL, "C");
+ testreg = ext_func(p);
+}
+main() {
+ testreg = &x;
+ test_reg_save_restore (&y);
+ if (testreg != &y)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20050607-1.c b/gcc/testsuite/gcc.dg/20050607-1.c
new file mode 100644
index 00000000000..5e53e3fcd6e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050607-1.c
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+/* { dg-options "-Wpadded" }
+/* The struct internally constructed for the nested function should
+ not result in a warning from -Wpadded. */
+extern int baz(int (*) (int));
+int foo(void)
+{
+ int k = 3;
+ int bar(int x) {
+ return x + k;
+ }
+ return baz(bar);
+}
diff --git a/gcc/testsuite/gcc.dg/Foundation.framework/empty b/gcc/testsuite/gcc.dg/Foundation.framework/empty
new file mode 100644
index 00000000000..412078626a1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Foundation.framework/empty
@@ -0,0 +1,2 @@
+/* APPLE LOCAL file mainline */
+This directory is empty.
diff --git a/gcc/testsuite/gcc.dg/alias-3.c b/gcc/testsuite/gcc.dg/alias-3.c
new file mode 100644
index 00000000000..3dc25a91c49
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/alias-3.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-alias "" } */
+/* { dg-options "" } */
+
+extern int foo();
+
+int baz () { return foo(); }
+
+static inline int bar () __attribute__ ((alias ("foo"))); /* { dg-error "aliased to" } */
+
+int main () { return bar (); }
diff --git a/gcc/testsuite/gcc.dg/alias-4.c b/gcc/testsuite/gcc.dg/alias-4.c
new file mode 100644
index 00000000000..0a2633932ef
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/alias-4.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-alias "" } */
+/* { dg-options "-O2 -funit-at-a-time" } */
+
+extern int foo();
+
+int baz () { return foo(); }
+
+static inline int bar () __attribute__ ((alias ("foo"))); /* { dg-error "aliased to" } */
+
+int main () { return bar (); }
diff --git a/gcc/testsuite/gcc.dg/alias-5.c b/gcc/testsuite/gcc.dg/alias-5.c
new file mode 100644
index 00000000000..56848c9a416
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/alias-5.c
@@ -0,0 +1,7 @@
+/* { dg-do link } */
+/* { dg-require-alias "" } */
+/* { dg-options "" } */
+
+static inline int foo () { return 0; }
+static int bar () __attribute__ ((alias ("foo")));
+int main () { return bar (); }
diff --git a/gcc/testsuite/gcc.dg/alias-6.c b/gcc/testsuite/gcc.dg/alias-6.c
new file mode 100644
index 00000000000..3ba101aa1b4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/alias-6.c
@@ -0,0 +1,7 @@
+/* { dg-do link } */
+/* { dg-require-alias "" } */
+/* { dg-options "-O2 -funit-at-a-time" } */
+
+static inline int foo () { return 0; }
+static int bar () __attribute__ ((alias ("foo")));
+int main () { return bar (); }
diff --git a/gcc/testsuite/gcc.dg/alias-7.c b/gcc/testsuite/gcc.dg/alias-7.c
new file mode 100644
index 00000000000..697497021f1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/alias-7.c
@@ -0,0 +1,16 @@
+/* { dg-do run } */
+/* { dg-require-alias "" } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+
+int foo __asm__ ("foo") __attribute__((nocommon));
+extern __typeof (foo) bar __attribute__ ((weak, alias ("foo")));
+
+int
+main (void)
+{
+ if (&foo != &bar || foo || bar)
+ abort ();
+ return bar;
+}
diff --git a/gcc/testsuite/gcc.dg/altivec-20.c b/gcc/testsuite/gcc.dg/altivec-20.c
new file mode 100644
index 00000000000..f733d18214c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-20.c
@@ -0,0 +1,23 @@
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-maltivec -mcpu=G5 -O2" } */
+
+#include <altivec.h>
+
+void foo( float scalar)
+{
+ unsigned long width;
+ unsigned long x;
+ vector float vColor;
+ vector unsigned int selectMask;
+ vColor = vec_perm( vec_ld( 0, &scalar), vec_ld( 3, &scalar), vec_lvsl( 0, &scalar) );
+
+ float *destRow;
+ vector float store, load0;
+
+ for( ; x < width; x++)
+ {
+ load0 = vec_sel( vColor, load0, selectMask );
+ vec_st( store, 0, destRow );
+ store = load0;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/altivec-21.c b/gcc/testsuite/gcc.dg/altivec-21.c
new file mode 100644
index 00000000000..bcb78ced52b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-21.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL begin mainline 2005-04-14 */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-xfail-if "" { "powerpc*-*-*" } { "-m64" } { "" } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern void preansi();
+
+typedef void (*pvecfunc) ();
+
+void foo(pvecfunc pvf) {
+ vector int v = (vector int){1, 2, 3, 4};
+ (*pvf) (4, 4.0, v); /* { dg-error "AltiVec argument passed to unprototyped function" } */
+}
+/* APPLE LOCAL end mainline 2005-04-14 */
diff --git a/gcc/testsuite/gcc.dg/altivec-22.c b/gcc/testsuite/gcc.dg/altivec-22.c
new file mode 100644
index 00000000000..51bcb4b4c69
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-22.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL begin altivec test */
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-xfail-if "" { "powerpc*-*-*" } { "-m64" } { "" } } */
+/* { dg-options "-maltivec" } */
+
+#include <altivec.h>
+
+extern void preansi();
+
+typedef void (*pvecfunc) ();
+
+void foo(pvecfunc pvf) {
+ vector int v = (vector int){1, 2, 3, 4};
+ preansi (4, 4.0, v); /* { dg-error "AltiVec argument passed to unprototyped function" } */
+}
+/* APPLE LOCAL end altivec test */
diff --git a/gcc/testsuite/gcc.dg/altivec-cpusubtype.c b/gcc/testsuite/gcc.dg/altivec-cpusubtype.c
new file mode 100644
index 00000000000..fb5c30c5ac1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-cpusubtype.c
@@ -0,0 +1,10 @@
+/* APPLE LOCAL begin radar 4161346 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-faltivec" } */
+/* { dg-final { scan-assembler-not "ppc7400" } } */
+
+int main( int argc, char * argv[] )
+{
+ return 0;
+}
+/* APPLE LOCAL end radar 4161346 */
diff --git a/gcc/testsuite/gcc.dg/altivec-nomfcr.c b/gcc/testsuite/gcc.dg/altivec-nomfcr.c
new file mode 100644
index 00000000000..a4a06333aa7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-nomfcr.c
@@ -0,0 +1,12 @@
+/* APPLE LOCAL begin radar 4149154 */
+/* { dg-do compile { target powerpc-*-* } } */
+/* { dg-options "-O3 -maltivec" } */
+/* { dg-final { scan-assembler-not "mfcr" } } */
+
+#include <altivec.h>
+
+int foo(vector float x, vector float y) {
+ if (vec_all_eq(x,y)) return 3245;
+ else return 12;
+}
+/* APPLE LOCAL begin radar 4149154 */
diff --git a/gcc/testsuite/gcc.dg/anon-struct-6.c b/gcc/testsuite/gcc.dg/anon-struct-6.c
index a2042176c03..ad961c62aea 100644
--- a/gcc/testsuite/gcc.dg/anon-struct-6.c
+++ b/gcc/testsuite/gcc.dg/anon-struct-6.c
@@ -9,4 +9,4 @@ struct s {
const;
};
/* { dg-warning "warning: useless type qualifier in empty declaration" "empty" { target *-*-* } 9 } */
-/* { dg-warning "warning: empty declaration" "empty" { target *-*-* } 9 } */
+/* { dg-warning "warning: empty declaration" "empty 2" { target *-*-* } 9 } */
diff --git a/gcc/testsuite/gcc.dg/array-8.c b/gcc/testsuite/gcc.dg/array-8.c
index 6d0a211461b..44b757b70df 100644
--- a/gcc/testsuite/gcc.dg/array-8.c
+++ b/gcc/testsuite/gcc.dg/array-8.c
@@ -43,7 +43,7 @@ g (void)
pv[0]; /* { dg-warning "warning: dereferencing 'void \\*' pointer" } */
0[pv]; /* { dg-warning "warning: dereferencing 'void \\*' pointer" } */
sip[0]; /* { dg-error "error: invalid use of undefined type 'struct si'" } */
- /* { dg-error "error: dereferencing pointer to incomplete type" "" { target *-*-* } 45 } */
+ /* { dg-error "error: dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 45 } */
0[sip]; /* { dg-error "error: invalid use of undefined type 'struct si'" } */
- /* { dg-error "error: dereferencing pointer to incomplete type" "" { target *-*-* } 47 } */
+ /* { dg-error "error: dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 47 } */
}
diff --git a/gcc/testsuite/gcc.dg/asm-b.c b/gcc/testsuite/gcc.dg/asm-b.c
new file mode 100644
index 00000000000..ce68cabe300
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asm-b.c
@@ -0,0 +1,39 @@
+/* { dg-do run { target powerpc-*-* i?386-*-* x86_64-*-* } } */
+/* { dg-options "-O1" } */
+/* Test to make sure that inline-asm causes the tree optimizators get the
+ V_MAY_DEFs and clober memory. */
+/* Test from Jakub Jelinek, modified by Andrew Pinski to work on all powerpc targets. */
+extern void abort (void);
+
+unsigned short v = 0x0300;
+
+void
+foo (unsigned short *p)
+{
+ *p = v;
+}
+
+int
+bar (void)
+{
+ unsigned short x;
+ volatile unsigned short *z;
+ foo (&x);
+ const unsigned int y = x;
+ z = &x;
+#if defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) || defined (_POWER)
+ __asm __volatile ("sthbrx %1,0,%2" : "=m" (*z) : "r" (y), "r" (z));
+#elif defined __i386__ || defined __x86_64__
+ __asm __volatile ("movb %b1,1(%2); movb %h1,(%2)" : "=m" (*z) : "r" (y), "r"
+(z));
+#endif
+ return (x & 1) == 0;
+}
+
+int
+main (void)
+{
+ if (bar ())
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/bincl-1.c b/gcc/testsuite/gcc.dg/bincl-1.c
new file mode 100644
index 00000000000..222fe1b4e76
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bincl-1.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file bincl/eincl stabs */
+/* Test BINCL/EINCL stabs. */
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */
+/* { dg-options "-gstabs -fno-eliminate-unused-debug-symbols" } */
+
+#include "bincl-1.h"
+int
+main ()
+{
+ my_int j = 0;
+ return j;
+}
+
+/* { dg-final { scan-assembler ".stabs.*130,0,0,0" } } */
+/* { dg-final { scan-assembler ".stabs.*162,0,0,0" } } */
+
diff --git a/gcc/testsuite/gcc.dg/bincl-1.h b/gcc/testsuite/gcc.dg/bincl-1.h
new file mode 100644
index 00000000000..3bf51278e90
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bincl-1.h
@@ -0,0 +1,3 @@
+/* APPLE LOCAL file bincl/eincl stabs */
+/* Test BINCL/EINCL stabs. */
+typedef int my_int;
diff --git a/gcc/testsuite/gcc.dg/bitfld-14.c b/gcc/testsuite/gcc.dg/bitfld-14.c
new file mode 100644
index 00000000000..eca0b03def0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitfld-14.c
@@ -0,0 +1,11 @@
+/* Test for non-integer bit-field widths. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+enum e { E, F };
+struct s {
+ int a : (void *)4; /* { dg-error "error: bit-field 'a' width not an integer constant" } */
+ int b : (enum e)F;
+ int c : (_Bool)1;
+};
diff --git a/gcc/testsuite/gcc.dg/builtin-apply4.c b/gcc/testsuite/gcc.dg/builtin-apply4.c
new file mode 100644
index 00000000000..289694e3c1b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/builtin-apply4.c
@@ -0,0 +1,30 @@
+/* PR tree-optimization/20076 */
+/* { dg-options "-O2" } */
+/* { dg-do run } */
+
+extern void abort (void);
+
+double
+foo (int arg)
+{
+ if (arg != 116)
+ abort();
+ return arg + 1;
+}
+
+inline double
+bar (int arg)
+{
+ foo (arg);
+ __builtin_return (__builtin_apply ((void (*) ()) foo,
+ __builtin_apply_args (), 16));
+}
+
+int
+main (int argc, char **argv)
+{
+ if (bar (116) != 117.0)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-1.c b/gcc/testsuite/gcc.dg/c99-tgmath-1.c
new file mode 100644
index 00000000000..e4890226511
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-1.c
@@ -0,0 +1,248 @@
+/* APPLE LOCAL file radar 2872232 */
+/* Test for <tgmath.h> in C99. */
+/* Origin: Matt Austern <austern@apple.com>
+/* { dg-do preprocess } */
+/* { dg-options "-std=iso9899:1999" } */
+
+/* Test that tgmath defines the macros it's supposed to. */
+#include <tgmath.h>
+
+#ifndef acos
+#error acos undefined
+#endif
+
+#ifndef asin
+#error asin undefined
+#endif
+
+#ifndef atan
+#error atan undefined
+#endif
+
+#ifndef acosh
+#error acosh undefined
+#endif
+
+#ifndef asinh
+#error asinh undefined
+#endif
+
+#ifndef atanh
+#error atanh undefined
+#endif
+
+#ifndef cos
+#error cos undefined
+#endif
+
+#ifndef sin
+#error sin undefined
+#endif
+
+#ifndef tan
+#error tan undefined
+#endif
+
+#ifndef cosh
+#error cosh undefined
+#endif
+
+#ifndef sinh
+#error sinh undefined
+#endif
+
+#ifndef tanh
+#error tanh undefined
+#endif
+
+#ifndef exp
+#error exp undefined
+#endif
+
+#ifndef log
+#error log undefined
+#endif
+
+#ifndef pow
+#error pow undefined
+#endif
+
+#ifndef sqrt
+#error sqrt undefined
+#endif
+
+#ifndef fabs
+#error fabs undefined
+#endif
+
+#ifndef atan2
+#error atan2 undefined
+#endif
+
+#ifndef cbrt
+#error cbrt undefined
+#endif
+
+#ifndef ceil
+#error ceil undefined
+#endif
+
+#ifndef copysign
+#error copysign undefined
+#endif
+
+#ifndef erf
+#error erf undefined
+#endif
+
+#ifndef erfc
+#error erfc undefined
+#endif
+
+#ifndef exp2
+#error exp2 undefined
+#endif
+
+#ifndef expm1
+#error expm1 undefined
+#endif
+
+#ifndef fdim
+#error fdim undefined
+#endif
+
+#ifndef floor
+#error floor undefined
+#endif
+
+#ifndef fma
+#error fma undefined
+#endif
+
+#ifndef fmax
+#error fmax undefined
+#endif
+
+#ifndef fmin
+#error fmin undefined
+#endif
+
+#ifndef fmod
+#error fmod undefined
+#endif
+
+#ifndef frexp
+#error frexp undefined
+#endif
+
+#ifndef hypot
+#error hypot undefined
+#endif
+
+#ifndef ilogb
+#error ilogb undefined
+#endif
+
+#ifndef ldexp
+#error ldexp undefined
+#endif
+
+#ifndef lgamma
+#error lgamma undefined
+#endif
+
+#ifndef llrint
+#error llrint undefined
+#endif
+
+#ifndef llround
+#error llround undefined
+#endif
+
+#ifndef log10
+#error log10 undefined
+#endif
+
+#ifndef log1p
+#error log1p undefined
+#endif
+
+#ifndef log2
+#error log2 undefined
+#endif
+
+#ifndef logb
+#error logb undefined
+#endif
+
+#ifndef lrint
+#error lrint undefined
+#endif
+
+#ifndef lround
+#error lround undefined
+#endif
+
+#ifndef nearbyint
+#error nearbyint undefined
+#endif
+
+#ifndef nextafter
+#error nextafter undefined
+#endif
+
+#ifndef nexttoward
+#error nexttoward undefined
+#endif
+
+#ifndef remainder
+#error remainder undefined
+#endif
+
+#ifndef remquo
+#error remquo undefined
+#endif
+
+#ifndef rint
+#error rint undefined
+#endif
+
+#ifndef round
+#error round undefined
+#endif
+
+#ifndef scalbn
+#error scalbn undefined
+#endif
+
+#ifndef scalbln
+#error scalbln undefined
+#endif
+
+#ifndef tgamma
+#error tgamma undefined
+#endif
+
+#ifndef trunc
+#error trunc undefined
+#endif
+
+#ifndef carg
+#error carg undefined
+#endif
+
+#ifndef cimag
+#error cimag undefined
+#endif
+
+#ifndef conj
+#error conj undefined
+#endif
+
+#ifndef cproj
+#error cproj undefined
+#endif
+
+#ifndef creal
+#error creal undefined
+#endif
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-2.c b/gcc/testsuite/gcc.dg/c99-tgmath-2.c
new file mode 100644
index 00000000000..35978cc8469
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-2.c
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file radar 2872232 */
+/* Test for <tgmath.h> in C99. */
+/* Origin: Matt Austern <austern@apple.com>
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999" } */
+
+/* Test that invoking type-generic sin on a float invokes sinf. */
+#include <tgmath.h>
+
+float foo(float x)
+{
+ return sin(x);
+}
+
+/* {dg-final {scan-assembler "sinf" } } */
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-3.c b/gcc/testsuite/gcc.dg/c99-tgmath-3.c
new file mode 100644
index 00000000000..9d164095a70
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-3.c
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file radar 2872232 */
+/* Test for <tgmath.h> in C99. */
+/* Origin: Matt Austern <austern@apple.com>
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999" } */
+
+/* Test that invoking type-generic exp on a complex invokes cexp. */
+#include <tgmath.h>
+
+complex double foo(complex double x)
+{
+ return exp(x);
+}
+
+/* {dg-final {scan-assembler "cexp" } } */
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-4.c b/gcc/testsuite/gcc.dg/c99-tgmath-4.c
new file mode 100644
index 00000000000..dbb8d1c341c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-4.c
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file radar 2872232 */
+/* Test for <tgmath.h> in C99. */
+/* Origin: Matt Austern <austern@apple.com>
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999" } */
+
+/* Test that invoking type-generic pow on complex float invokes cpowf. */
+#include <tgmath.h>
+
+complex double foo(complex float x, float y)
+{
+ return pow(x, y);
+}
+
+/* {dg-final {scan-assembler "cpowf" } } */
diff --git a/gcc/testsuite/gcc.dg/cast-lvalue-2.c b/gcc/testsuite/gcc.dg/cast-lvalue-2.c
index ed6a2e69fe8..0d52a6253c7 100644
--- a/gcc/testsuite/gcc.dg/cast-lvalue-2.c
+++ b/gcc/testsuite/gcc.dg/cast-lvalue-2.c
@@ -1,7 +1,8 @@
/* Test for error on casts as lvalues. Casts to same type. */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
/* { dg-do compile } */
-/* { dg-options "" } */
+/* APPLE LOCAL non lvalue assign */
+/* { dg-options "-fno-non-lvalue-assign" } */
int x;
@@ -10,4 +11,5 @@ foo (void)
{
(int) x = 1; /* { dg-bogus "warning" "warning in place of error" } */
}
-/* { dg-error "lvalue" "cast as lvalue" { target *-*-*} 11 } */
+/* APPLE LOCAL non lvalue assign */
+/* { dg-error "lvalue" "cast as lvalue" { target *-*-*} 12 } */
diff --git a/gcc/testsuite/gcc.dg/cast-ptr-1.c b/gcc/testsuite/gcc.dg/cast-ptr-1.c
new file mode 100644
index 00000000000..cb42d13ac48
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cast-ptr-1.c
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file pointer casts */
+/* Test that casts of pointer to unsigned long long aren't sign extended */
+/* Author: Matt Austern <austern@apple.com> */
+/* { dg-do run } */
+/* { dg-options "-Wno-error -w" } */
+
+int main () {
+ /* Note: test assumes sizeof(long long) >= sizeof(void*) */
+
+ unsigned long x1 = 0x80000000ul;
+ void* p = (void*) x1;
+ unsigned long long x2 = (unsigned long long) p;
+
+ return !(x1 == x2);
+}
diff --git a/gcc/testsuite/gcc.dg/charset/asm1.c b/gcc/testsuite/gcc.dg/charset/asm1.c
index d7578d418f6..dfd14018613 100644
--- a/gcc/testsuite/gcc.dg/charset/asm1.c
+++ b/gcc/testsuite/gcc.dg/charset/asm1.c
@@ -1,5 +1,5 @@
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler ".ascii bar" } }
{ dg-final { scan-assembler ".ascii foo" } }
*/
diff --git a/gcc/testsuite/gcc.dg/charset/asm2.c b/gcc/testsuite/gcc.dg/charset/asm2.c
index bfca86c8e96..a9a9c011b2b 100644
--- a/gcc/testsuite/gcc.dg/charset/asm2.c
+++ b/gcc/testsuite/gcc.dg/charset/asm2.c
@@ -2,7 +2,7 @@
If we ever get a good way to test error recovery
the string "foobar" should be translated. */
/* { dg-do compile } */
-/* { dg-require-iconv "IBM-1047" } */
+/* { dg-require-iconv "IBM1047" } */
asm (not_a_string); /* { dg-error "(parse error|syntax error|expected string literal) before" "not_a_string" } */
char x[] = "foobar";
diff --git a/gcc/testsuite/gcc.dg/charset/asm3.c b/gcc/testsuite/gcc.dg/charset/asm3.c
index 8d8dbbb524d..8ae2212fd26 100644
--- a/gcc/testsuite/gcc.dg/charset/asm3.c
+++ b/gcc/testsuite/gcc.dg/charset/asm3.c
@@ -1,7 +1,7 @@
/* Test for complex asm statements. Make sure it compiles
then test for some of the asm statements not being translated. */
/* { dg-do compile { target i?86-*-* } }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "std" } }
{ dg-final { scan-assembler "cld" } }
{ dg-final { scan-assembler "rep" } }
diff --git a/gcc/testsuite/gcc.dg/charset/asm4.c b/gcc/testsuite/gcc.dg/charset/asm4.c
index cd850c3e81f..59c8d59ff39 100644
--- a/gcc/testsuite/gcc.dg/charset/asm4.c
+++ b/gcc/testsuite/gcc.dg/charset/asm4.c
@@ -1,6 +1,6 @@
/* Simple asm test. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "foo" } } */
extern int bar;
diff --git a/gcc/testsuite/gcc.dg/charset/asm5.c b/gcc/testsuite/gcc.dg/charset/asm5.c
index fa93f40fdaf..a4bb01401a9 100644
--- a/gcc/testsuite/gcc.dg/charset/asm5.c
+++ b/gcc/testsuite/gcc.dg/charset/asm5.c
@@ -1,6 +1,6 @@
/* Test for string translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "translate" } } */
void foo (void)
{
diff --git a/gcc/testsuite/gcc.dg/charset/asm6.c b/gcc/testsuite/gcc.dg/charset/asm6.c
index 91316224f0c..ae2ec485d80 100644
--- a/gcc/testsuite/gcc.dg/charset/asm6.c
+++ b/gcc/testsuite/gcc.dg/charset/asm6.c
@@ -1,6 +1,6 @@
/* Test for string translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "foo" } } */
int main()
{
diff --git a/gcc/testsuite/gcc.dg/charset/attribute1.c b/gcc/testsuite/gcc.dg/charset/attribute1.c
index 993c7934c80..799630030ba 100644
--- a/gcc/testsuite/gcc.dg/charset/attribute1.c
+++ b/gcc/testsuite/gcc.dg/charset/attribute1.c
@@ -1,6 +1,6 @@
/* Test for attribute non-translation. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler "foo" } } */
int walrus __attribute__ ((section (".foo")));
diff --git a/gcc/testsuite/gcc.dg/charset/attribute2.c b/gcc/testsuite/gcc.dg/charset/attribute2.c
index 4ce95a51f84..ef1f35f3ed1 100644
--- a/gcc/testsuite/gcc.dg/charset/attribute2.c
+++ b/gcc/testsuite/gcc.dg/charset/attribute2.c
@@ -2,7 +2,7 @@
If error recovery is ever testable then "foobar" should be
translated. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
*/
int foo __attribute__ ((walrus)); /* { dg-error "walrus" "ignored" } */
char x[] = "foobar";
diff --git a/gcc/testsuite/gcc.dg/charset/builtin1.c b/gcc/testsuite/gcc.dg/charset/builtin1.c
new file mode 100644
index 00000000000..753049c9666
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/charset/builtin1.c
@@ -0,0 +1,26 @@
+/* isdigit(c) can be optimized to ((unsigned)c) - '0' <= 9, but only if
+ we know the correct value of '0'. PR 18785. */
+
+/* { dg-do run } */
+/* { dg-require-iconv "IBM1047" } */
+/* { dg-options "-O2 -fno-inline -fexec-charset=IBM1047" } */
+
+extern int isdigit(int);
+extern void abort(void);
+
+static int str1(void) { return '1'; }
+static int strA(void) { return 'A'; }
+
+int
+main(void)
+{
+ if (!isdigit('1'))
+ abort();
+ if (isdigit('A'))
+ abort();
+ if (!isdigit(str1()))
+ abort();
+ if (isdigit(strA()))
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/charset/charset.exp b/gcc/testsuite/gcc.dg/charset/charset.exp
index ad75cb55af8..bc2c65db910 100644
--- a/gcc/testsuite/gcc.dg/charset/charset.exp
+++ b/gcc/testsuite/gcc.dg/charset/charset.exp
@@ -30,7 +30,7 @@ load_lib target-supports.exp
# If a testcase doesn't have special options, use these.
global DEFAULT_CHARSETCFLAGS
if ![info exists DEFAULT_CHARSETCFLAGS] then {
- set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM-1047"
+ set DEFAULT_CHARSETCFLAGS "-fexec-charset=IBM1047"
}
# Initialize `dg'.
diff --git a/gcc/testsuite/gcc.dg/charset/extern.c b/gcc/testsuite/gcc.dg/charset/extern.c
index 5e46ca6facf..05a0c3e42bc 100644
--- a/gcc/testsuite/gcc.dg/charset/extern.c
+++ b/gcc/testsuite/gcc.dg/charset/extern.c
@@ -1,5 +1,5 @@
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "abcdefghijklmnopqrstuvwxyz" } } */
extern char *bar;
diff --git a/gcc/testsuite/gcc.dg/charset/function.c b/gcc/testsuite/gcc.dg/charset/function.c
index ab4c2bcba0e..5aba6511bd0 100644
--- a/gcc/testsuite/gcc.dg/charset/function.c
+++ b/gcc/testsuite/gcc.dg/charset/function.c
@@ -1,5 +1,5 @@
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "\"foobar\"" } } */
const char *str;
diff --git a/gcc/testsuite/gcc.dg/charset/string.c b/gcc/testsuite/gcc.dg/charset/string.c
index 375e28a2ed6..f720773dd57 100644
--- a/gcc/testsuite/gcc.dg/charset/string.c
+++ b/gcc/testsuite/gcc.dg/charset/string.c
@@ -1,5 +1,5 @@
/* Simple character translation test. */
/* { dg-do compile }
- { dg-require-iconv "IBM-1047" }
+ { dg-require-iconv "IBM1047" }
{ dg-final { scan-assembler-not "string foobar" } } */
char *foo = "string foobar";
diff --git a/gcc/testsuite/gcc.dg/cond-lvalue-1.c b/gcc/testsuite/gcc.dg/cond-lvalue-1.c
index f2605af6ad6..8c7595bd591 100644
--- a/gcc/testsuite/gcc.dg/cond-lvalue-1.c
+++ b/gcc/testsuite/gcc.dg/cond-lvalue-1.c
@@ -1,7 +1,8 @@
/* Test for deprecation of conditional expressions as lvalues. */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
/* { dg-do compile } */
-/* { dg-options "" } */
+/* APPLE LOCAL non lvalue assign */
+/* { dg-options "-fno-non-lvalue-assign" } */
int x, y, z;
@@ -10,4 +11,5 @@ foo (void)
{
(x ? y : z) = 1; /* { dg-bogus "warning" "warning in place of error" } */
}
-/* { dg-error "lvalue" "conditional expression as lvalue" { target *-*-* } 11 } */
+/* APPLE LOCAL non lvalue assign */
+/* { dg-error "lvalue" "conditional expression as lvalue" { target *-*-* } 12 } */
diff --git a/gcc/testsuite/gcc.dg/const-compare.c b/gcc/testsuite/gcc.dg/const-compare.c
new file mode 100644
index 00000000000..f0e30d89e1e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/const-compare.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL begin radar 3869444 */
+/* { dg-do compile { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-m64 -O1 -static" } */
+typedef unsigned long long uint64_t;
+
+static int
+match(name, pat)
+ uint64_t *name, *pat;
+{
+ int ok=0, negate_range;
+ uint64_t c, k;
+
+ c = *pat++;
+ switch (c & 0xffffffffffULL) {
+ case ((uint64_t)(('[')|0x8000000000ULL)):
+ if ((negate_range = ((*pat & 0xffffffffffULL) == ((uint64_t)(('!')|0x8000000000ULL)) )) != '\0')
+ ++pat;
+ while (((c = *pat++) & 0xffffffffffULL) )
+ if ((*pat & 0xffffffffffULL) == ((uint64_t)(('-')|0x8000000000ULL)))
+ {
+ pat += 2;
+ }
+
+ if (ok == negate_range)
+ return(0);
+ break;
+ }
+ return(*name == '\0');
+}
+/* APPLE LOCAL end radar 3869444 */
diff --git a/gcc/testsuite/gcc.dg/cpp/19940712-1.c b/gcc/testsuite/gcc.dg/cpp/19940712-1.c
index 5b4ac8b722c..d5ed88973e3 100644
--- a/gcc/testsuite/gcc.dg/cpp/19940712-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19940712-1.c
@@ -3,7 +3,7 @@
/* dg.exp doesn't read the header files for magic comments. */
/* { dg-error "unterminated comment" "" { target *-*-* } 4 } */
-/* { dg-error "unterminated comment" "" { target *-*-* } 8 } */
+/* { dg-error "unterminated comment" "header error" { target *-*-* } 8 } */
#include "19940712-1.h" /* { dg-error "" } // In file included from: */
#include "19940712-1a.h" /* { dg-error "" } // In file included from: */
diff --git a/gcc/testsuite/gcc.dg/cpp/19951025-1.c b/gcc/testsuite/gcc.dg/cpp/19951025-1.c
index 283b5f53f1a..b817b68c8ae 100644
--- a/gcc/testsuite/gcc.dg/cpp/19951025-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19951025-1.c
@@ -1,4 +1,4 @@
/* { dg-do preprocess } */
-/* { dg-error "include expects" "" { target *-*-* } 4 } */
-/* { dg-error "newline at end" "" { target *-*-* } 4 } */
+/* { dg-error "include expects" "include" { target *-*-* } 4 } */
+/* { dg-error "newline at end" "newline" { target *-*-* } 4 } */
#include /\
diff --git a/gcc/testsuite/gcc.dg/cpp/assert4.c b/gcc/testsuite/gcc.dg/cpp/assert4.c
index 99b304f2455..023bb50cdeb 100644
--- a/gcc/testsuite/gcc.dg/cpp/assert4.c
+++ b/gcc/testsuite/gcc.dg/cpp/assert4.c
@@ -78,7 +78,7 @@
# error
#endif
-#if defined __unix__ || defined _AIX
+#if ( defined __unix__ && !defined __CYGWIN__ ) || defined _AIX
# if !#system(unix)
# error
# endif
@@ -118,7 +118,7 @@
# error
#endif
-#if defined __WINNT__
+#if defined __WINNT__ || defined __CYGWIN__
# if !#system(winnt)
# error
# endif
diff --git a/gcc/testsuite/gcc.dg/cpp/c++98-pedantic.cc b/gcc/testsuite/gcc.dg/cpp/c++98-pedantic.cc
new file mode 100644
index 00000000000..1e8c160a96f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c++98-pedantic.cc
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file rename for HFS */
+/* Copyright (C) 2000 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-std=c++98 -pedantic" } */
+
+/* This file is for testing the preprocessor in -std=c++98 -pedantic mode.
+ Neil Booth, 2 Dec 2000. */
+
+#if 1LL /* { dg-warning "long long" } */
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/c++98.cc b/gcc/testsuite/gcc.dg/cpp/c++98.cc
new file mode 100644
index 00000000000..a9843b878fd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/c++98.cc
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file rename for HFS */
+/* Copyright (C) 2000 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-std=c++98" } */
+
+/* This file is for testing the preprocessor in -std=c++98 mode.
+ Neil Booth, 2 Dec 2000. */
+
+#if 1LL
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/cpp.exp b/gcc/testsuite/gcc.dg/cpp/cpp.exp
index 960a29182d0..d1ed5e8c981 100644
--- a/gcc/testsuite/gcc.dg/cpp/cpp.exp
+++ b/gcc/testsuite/gcc.dg/cpp/cpp.exp
@@ -23,6 +23,13 @@ if [is_remote host] {
}
}
+# APPLE LOCAL begin headermaps
+file mkdir d
+foreach header { A.h bA.h c.h d/d.h } {
+ remote_download host $srcdir/$subdir/inc/$header $header
+}
+# APPLE LOCAL end headermaps
+
# Load support procs.
load_lib gcc-dg.exp
diff --git a/gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c b/gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c
index d5c6eb960e6..0b2124bd512 100644
--- a/gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c
+++ b/gcc/testsuite/gcc.dg/cpp/endif-pedantic2.c
@@ -3,6 +3,8 @@
/* { dg-do preprocess } */
/* { dg-options "-Wno-endif-labels -pedantic" } */
+/* APPLE LOCAL -Wextra-tokens */
+/* { dg-options "-Wextra-tokens -Wno-endif-labels -pedantic" { target *-apple-darwin* } } */
/* Tests combinations of -pedantic and -Wno-endif-labels; see extratokens2.c
for more general tests. */
diff --git a/gcc/testsuite/gcc.dg/cpp/extratokens.c b/gcc/testsuite/gcc.dg/cpp/extratokens.c
index c06a41d4c2b..125a9bdf805 100644
--- a/gcc/testsuite/gcc.dg/cpp/extratokens.c
+++ b/gcc/testsuite/gcc.dg/cpp/extratokens.c
@@ -1,7 +1,8 @@
/* Copyright (C) 2000 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
-/* { dg-options "-fno-show-column" } */
+/* APPLE LOCAL -Wextra-tokens */
+/* { dg-options "-fno-show-column -Wextra-tokens" } */
/* Tests all directives that do not permit excess tokens at the end of
the line. */
diff --git a/gcc/testsuite/gcc.dg/cpp/headermap-1.c b/gcc/testsuite/gcc.dg/cpp/headermap-1.c
new file mode 100644
index 00000000000..aac0257df63
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/headermap-1.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file headermaps */
+/* Copyright (C) 2005 Free Software Foundation, Inc. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* This test is ppc specific, as the headermap binary was generated for ppc. */
+/* { dg-options "-I $srcdir/gcc.dg/cpp/headermap.hmap" } */
+
+#define COUNT 1
+#include <A.h>
+#include <bA.h>
+#include <c.h>
+#import <d.h>
+#import <d.h>
+#import <A.h>
+
+#if COUNT != 5
+ #error COUNT not 5 in headermap-1
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/headermap-2.c b/gcc/testsuite/gcc.dg/cpp/headermap-2.c
new file mode 100644
index 00000000000..68e4690c475
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/headermap-2.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file headermaps */
+/* Copyright (C) 2005 Free Software Foundation, Inc. */
+
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* This test is ppc specific, as the headermap binary was generated for ppc. */
+/* { dg-options "-I $srcdir/gcc.dg/cpp/headermap.hmap" } */
+
+#define COUNT 1
+#include <a.h> /* { dg-warning "mismatched case" } */
+#include <Ba.h> /* { dg-warning "mismatched case" } */
+#include <C.h> /* { dg-warning "mismatched case" } */
+#import <c.h>
+
+#if COUNT != 4
+ #error COUNT not 4 in headermap-d21
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/headermap.hmap b/gcc/testsuite/gcc.dg/cpp/headermap.hmap
new file mode 100644
index 00000000000..f9b70b5cce5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/headermap.hmap
Binary files differ
diff --git a/gcc/testsuite/gcc.dg/cpp/if-2.c b/gcc/testsuite/gcc.dg/cpp/if-2.c
index 8bca251b46b..8237112078d 100644
--- a/gcc/testsuite/gcc.dg/cpp/if-2.c
+++ b/gcc/testsuite/gcc.dg/cpp/if-2.c
@@ -1,5 +1,7 @@
/* { dg-do preprocess } */
/* { dg-options -pedantic-errors } */
+/* APPLE LOCAL -Wfour-char-constants */
+/* { dg-options "-Wfour-char-constants" { target *-apple-darwin* } } */
#if 'a' != 'a' || '\001' != 1 || '\x12' != 0x12
#error a,1,0x12 /* { dg-bogus "#error" "basic charconst recognition" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/inc/A.h b/gcc/testsuite/gcc.dg/cpp/inc/A.h
new file mode 100644
index 00000000000..a1a6ef851c3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/inc/A.h
@@ -0,0 +1,6 @@
+/* APPLE LOCAL file headermaps */
+#if COUNT != 1
+ #error COUNT not 1
+#endif
+#undef COUNT
+#define COUNT 2
diff --git a/gcc/testsuite/gcc.dg/cpp/inc/bA.h b/gcc/testsuite/gcc.dg/cpp/inc/bA.h
new file mode 100644
index 00000000000..4ba328017bf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/inc/bA.h
@@ -0,0 +1,6 @@
+/* APPLE LOCAL file headermaps */
+#if COUNT != 2
+ #error COUNT not 2 in bA
+#endif
+#undef COUNT
+#define COUNT 3
diff --git a/gcc/testsuite/gcc.dg/cpp/inc/c.h b/gcc/testsuite/gcc.dg/cpp/inc/c.h
new file mode 100644
index 00000000000..48a738aa7cd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/inc/c.h
@@ -0,0 +1,6 @@
+/* APPLE LOCAL file headermaps */
+#if COUNT != 3
+ #error COUNT not 3 in c
+#endif
+#undef COUNT
+#define COUNT 4
diff --git a/gcc/testsuite/gcc.dg/cpp/inc/d/d.h b/gcc/testsuite/gcc.dg/cpp/inc/d/d.h
new file mode 100644
index 00000000000..29173816d0a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/inc/d/d.h
@@ -0,0 +1,7 @@
+/* APPLE LOCAL file headermaps */
+#if COUNT != 4
+ #error COUNT not 4 in d
+#endif
+#undef COUNT
+#define COUNT 5
+
diff --git a/gcc/testsuite/gcc.dg/cpp/include2.c b/gcc/testsuite/gcc.dg/cpp/include2.c
index 60edfccb0cd..f4f6ab41f9d 100644
--- a/gcc/testsuite/gcc.dg/cpp/include2.c
+++ b/gcc/testsuite/gcc.dg/cpp/include2.c
@@ -1,10 +1,10 @@
/* Copyright (C) 2000 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
-
+/* APPLE LOCAL begin -Wextra-tokens */
/* Tests that #include does not allow the terminating '>' or '"' to be
escaped, as per the standard. */
-
+/* { dg-options "-Wextra-tokens" } */
/* Source: Neil Booth, 4 Nov 2000. */
#include <silly\>> /* { dg-warning "extra tokens" "" } */
@@ -13,4 +13,4 @@
/* These error is No such file or directory, just once. However, this
message is locale-dependent, so don't test for it. */
/* { dg-error "silly" "" { target *-*-* } 10 } */
-
+/* APPLE LOCAL end */
diff --git a/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c b/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c
new file mode 100644
index 00000000000..e3dca859b32
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c
@@ -0,0 +1 @@
+/* APPLE LOCAL file mainline 2005-03-04 */ /* Test no newline at eof warning when Mac line ending is used*/ /* { dg-do compile } */ int main() { return 0; } \ No newline at end of file
diff --git a/gcc/testsuite/gcc.dg/cpp/macspace1.c b/gcc/testsuite/gcc.dg/cpp/macspace1.c
new file mode 100644
index 00000000000..ddd62c743b9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/macspace1.c
@@ -0,0 +1,61 @@
+/* PR preprocessor/19475 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors -fno-show-column" } */
+
+#define a! /* { dg-warning "missing whitespace" } */
+#define b" /* { dg-warning "missing whitespace" } */
+#define c# /* { dg-warning "missing whitespace" } */
+#define d% /* { dg-warning "missing whitespace" } */
+#define e& /* { dg-warning "missing whitespace" } */
+#define f' /* { dg-warning "missing whitespace" } */
+#define g) /* { dg-warning "missing whitespace" } */
+#define h* /* { dg-warning "missing whitespace" } */
+#define i+ /* { dg-warning "missing whitespace" } */
+#define j, /* { dg-warning "missing whitespace" } */
+#define k- /* { dg-warning "missing whitespace" } */
+#define l. /* { dg-warning "missing whitespace" } */
+#define m/ /* { dg-warning "missing whitespace" } */
+#define n: /* { dg-warning "missing whitespace" } */
+#define o; /* { dg-warning "missing whitespace" } */
+#define p< /* { dg-warning "missing whitespace" } */
+#define q= /* { dg-warning "missing whitespace" } */
+#define r> /* { dg-warning "missing whitespace" } */
+#define s? /* { dg-warning "missing whitespace" } */
+#define t[ /* { dg-warning "missing whitespace" } */
+#define u] /* { dg-warning "missing whitespace" } */
+#define v^ /* { dg-warning "missing whitespace" } */
+#define w{ /* { dg-warning "missing whitespace" } */
+#define x| /* { dg-warning "missing whitespace" } */
+#define y} /* { dg-warning "missing whitespace" } */
+#define z~ /* { dg-warning "missing whitespace" } */
+#define A>> /* { dg-warning "missing whitespace" } */
+#define B<< /* { dg-warning "missing whitespace" } */
+#define E&& /* { dg-warning "missing whitespace" } */
+#define F|| /* { dg-warning "missing whitespace" } */
+#define G== /* { dg-warning "missing whitespace" } */
+#define H!= /* { dg-warning "missing whitespace" } */
+#define I>= /* { dg-warning "missing whitespace" } */
+#define J<= /* { dg-warning "missing whitespace" } */
+#define K+= /* { dg-warning "missing whitespace" } */
+#define L-= /* { dg-warning "missing whitespace" } */
+#define M*= /* { dg-warning "missing whitespace" } */
+#define N/= /* { dg-warning "missing whitespace" } */
+#define O%= /* { dg-warning "missing whitespace" } */
+#define P&= /* { dg-warning "missing whitespace" } */
+#define Q|= /* { dg-warning "missing whitespace" } */
+#define R^= /* { dg-warning "missing whitespace" } */
+#define S>>= /* { dg-warning "missing whitespace" } */
+#define T<<= /* { dg-warning "missing whitespace" } */
+#define W... /* { dg-warning "missing whitespace" } */
+#define X++ /* { dg-warning "missing whitespace" } */
+#define Y-- /* { dg-warning "missing whitespace" } */
+#define Z-> /* { dg-warning "missing whitespace" } */
+#define aa:: /* { dg-warning "missing whitespace" } */
+#define ab->* /* { dg-warning "missing whitespace" } */
+#define ac.* /* { dg-warning "missing whitespace" } */
+#define ad\x /* { dg-warning "missing whitespace" } */
+#define ae\\x /* { dg-warning "missing whitespace" } */
+#define af'1' /* { dg-warning "missing whitespace" } */
+#define ag"abc" /* { dg-warning "missing whitespace" } */
+
+int dummy;
diff --git a/gcc/testsuite/gcc.dg/cpp/macspace2.c b/gcc/testsuite/gcc.dg/cpp/macspace2.c
new file mode 100644
index 00000000000..21576fa22fa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/macspace2.c
@@ -0,0 +1,61 @@
+/* PR preprocessor/19475 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors -fno-show-column" } */
+
+#define a! /* { dg-error "requires whitespace" } */
+#define b" /* { dg-error "requires whitespace" } */
+#define c# /* { dg-error "requires whitespace" } */
+#define d% /* { dg-error "requires whitespace" } */
+#define e& /* { dg-error "requires whitespace" } */
+#define f' /* { dg-error "requires whitespace" } */
+#define g) /* { dg-error "requires whitespace" } */
+#define h* /* { dg-error "requires whitespace" } */
+#define i+ /* { dg-error "requires whitespace" } */
+#define j, /* { dg-error "requires whitespace" } */
+#define k- /* { dg-error "requires whitespace" } */
+#define l. /* { dg-error "requires whitespace" } */
+#define m/ /* { dg-error "requires whitespace" } */
+#define n: /* { dg-error "requires whitespace" } */
+#define o; /* { dg-error "requires whitespace" } */
+#define p< /* { dg-error "requires whitespace" } */
+#define q= /* { dg-error "requires whitespace" } */
+#define r> /* { dg-error "requires whitespace" } */
+#define s? /* { dg-error "requires whitespace" } */
+#define t[ /* { dg-error "requires whitespace" } */
+#define u] /* { dg-error "requires whitespace" } */
+#define v^ /* { dg-error "requires whitespace" } */
+#define w{ /* { dg-error "requires whitespace" } */
+#define x| /* { dg-error "requires whitespace" } */
+#define y} /* { dg-error "requires whitespace" } */
+#define z~ /* { dg-error "requires whitespace" } */
+#define A>> /* { dg-error "requires whitespace" } */
+#define B<< /* { dg-error "requires whitespace" } */
+#define E&& /* { dg-error "requires whitespace" } */
+#define F|| /* { dg-error "requires whitespace" } */
+#define G== /* { dg-error "requires whitespace" } */
+#define H!= /* { dg-error "requires whitespace" } */
+#define I>= /* { dg-error "requires whitespace" } */
+#define J<= /* { dg-error "requires whitespace" } */
+#define K+= /* { dg-error "requires whitespace" } */
+#define L-= /* { dg-error "requires whitespace" } */
+#define M*= /* { dg-error "requires whitespace" } */
+#define N/= /* { dg-error "requires whitespace" } */
+#define O%= /* { dg-error "requires whitespace" } */
+#define P&= /* { dg-error "requires whitespace" } */
+#define Q|= /* { dg-error "requires whitespace" } */
+#define R^= /* { dg-error "requires whitespace" } */
+#define S>>= /* { dg-error "requires whitespace" } */
+#define T<<= /* { dg-error "requires whitespace" } */
+#define W... /* { dg-error "requires whitespace" } */
+#define X++ /* { dg-error "requires whitespace" } */
+#define Y-- /* { dg-error "requires whitespace" } */
+#define Z-> /* { dg-error "requires whitespace" } */
+#define aa:: /* { dg-error "requires whitespace" } */
+#define ab->* /* { dg-error "requires whitespace" } */
+#define ac.* /* { dg-error "requires whitespace" } */
+#define ad\x /* { dg-error "requires whitespace" } */
+#define ae\\x /* { dg-error "requires whitespace" } */
+#define af'1' /* { dg-error "requires whitespace" } */
+#define ag"abc" /* { dg-error "requires whitespace" } */
+
+int dummy;
diff --git a/gcc/testsuite/gcc.dg/cpp/normalize-1.c b/gcc/testsuite/gcc.dg/cpp/normalize-1.c
new file mode 100644
index 00000000000..967b29c2a66
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/normalize-1.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99" } */
+
+\u00AA
+\u00B7
+\u0F43 /* { dg-warning "not in NFC" } */
+a\u05B8\u05B9\u05B9\u05BBb
+ a\u05BB\u05B9\u05B8\u05B9b /* { dg-warning "not in NFC" } */
+\u09CB
+\u09C7\u09BE /* { dg-warning "not in NFC" } */
+\u0B4B
+\u0B47\u0B3E /* { dg-warning "not in NFC" } */
+\u0BCA
+\u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+\u0BCB
+\u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+\u0CCA
+\u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+\u0D4A
+\u0D46\u0D3E /* { dg-warning "not in NFC" } */
+\u0D4B
+\u0D47\u0D3E /* { dg-warning "not in NFC" } */
+
+K
+\u212A /* { dg-warning "not in NFC" } */
+
+\u03AC
+\u1F71 /* { dg-warning "not in NFC" } */
+
+\uAC00
+\u1100\u1161 /* { dg-warning "not in NFC" } */
+\uAC01
+\u1100\u1161\u11A8 /* { dg-warning "not in NFC" } */
+\uAC00\u11A8 /* { dg-warning "not in NFC" } */
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/normalize-2.c b/gcc/testsuite/gcc.dg/cpp/normalize-2.c
new file mode 100644
index 00000000000..eb61fa607ae
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/normalize-2.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99 -Wnormalized=nfkc" } */
+
+\u00AA /* { dg-warning "not in NFKC" } */
+\u00B7
+\u0F43 /* { dg-warning "not in NFC" } */
+a\u05B8\u05B9\u05B9\u05BBb
+ a\u05BB\u05B9\u05B8\u05B9b /* { dg-warning "not in NFC" } */
+\u09CB
+\u09C7\u09BE /* { dg-warning "not in NFC" } */
+\u0B4B
+\u0B47\u0B3E /* { dg-warning "not in NFC" } */
+\u0BCA
+\u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+\u0BCB
+\u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+\u0CCA
+\u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+\u0D4A
+\u0D46\u0D3E /* { dg-warning "not in NFC" } */
+\u0D4B
+\u0D47\u0D3E /* { dg-warning "not in NFC" } */
+
+K
+\u212A /* { dg-warning "not in NFC" } */
+
+\u03AC
+\u1F71 /* { dg-warning "not in NFC" } */
+
+\uAC00
+\u1100\u1161 /* { dg-warning "not in NFC" } */
+\uAC01
+\u1100\u1161\u11A8 /* { dg-warning "not in NFC" } */
+\uAC00\u11A8 /* { dg-warning "not in NFC" } */
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/normalize-3.c b/gcc/testsuite/gcc.dg/cpp/normalize-3.c
new file mode 100644
index 00000000000..6205a68a545
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/normalize-3.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99 -Wnormalized=id" } */
+
+\u00AA
+\u00B7
+\u0F43 /* { dg-warning "not in NFC" } */
+a\u05B8\u05B9\u05B9\u05BBb
+ a\u05BB\u05B9\u05B8\u05B9b /* { dg-warning "not in NFC" } */
+\u09CB
+\u09C7\u09BE /* { dg-warning "not in NFC" } */
+\u0B4B
+\u0B47\u0B3E /* { dg-warning "not in NFC" } */
+\u0BCA
+\u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+\u0BCB
+\u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+\u0CCA
+\u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+\u0D4A
+\u0D46\u0D3E /* { dg-warning "not in NFC" } */
+\u0D4B
+\u0D47\u0D3E /* { dg-warning "not in NFC" } */
+
+K
+\u212A
+
+\u03AC
+\u1F71 /* { dg-warning "not in NFC" } */
+
+\uAC00
+\u1100\u1161
+\uAC01
+\u1100\u1161\u11A8
+\uAC00\u11A8
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/normalize-4.c b/gcc/testsuite/gcc.dg/cpp/normalize-4.c
new file mode 100644
index 00000000000..c05df47d38d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/normalize-4.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99 -Wnormalized=none" } */
+
+\u00AA
+\u00B7
+\u0F43
+a\u05B8\u05B9\u05B9\u05BBb
+ a\u05BB\u05B9\u05B8\u05B9b
+\u09CB
+\u09C7\u09BE
+\u0B4B
+\u0B47\u0B3E
+\u0BCA
+\u0BC6\u0BBE
+\u0BCB
+\u0BC7\u0BBE
+\u0CCA
+\u0CC6\u0CC2
+\u0D4A
+\u0D46\u0D3E
+\u0D4B
+\u0D47\u0D3E
+
+K
+\u212A
+
+\u03AC
+\u1F71
+
+\uAC00
+\u1100\u1161
+\uAC01
+\u1100\u1161\u11A8
+\uAC00\u11A8
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/skipping2.c b/gcc/testsuite/gcc.dg/cpp/skipping2.c
index 3b0d0f32c8e..61428c2b989 100644
--- a/gcc/testsuite/gcc.dg/cpp/skipping2.c
+++ b/gcc/testsuite/gcc.dg/cpp/skipping2.c
@@ -1,6 +1,8 @@
/* Copyright (C) 2001 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
+/* APPLE LOCAL -Wextra-tokens */
+/* { dg-options "-Wextra-tokens" } */
/* Tests that excess tokens in skipped conditional blocks don't warn. */
diff --git a/gcc/testsuite/gcc.dg/cpp/tr-warn6.c b/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
index 5c94e4ca14a..e9aa851d041 100644
--- a/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
+++ b/gcc/testsuite/gcc.dg/cpp/tr-warn6.c
@@ -13,7 +13,7 @@
#define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument \"hello\" would be stringified" "traditional stringification" } */
/* Catch the second warning from the above line. */
-/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification" { target *-*-* } 13 } */
+/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } 13 } */
# 19 "sys-header.h" 3
/* We are in system headers now, no -Wtraditional warnings should issue. */
diff --git a/gcc/testsuite/gcc.dg/cpp/trad/comment-3.c b/gcc/testsuite/gcc.dg/cpp/trad/comment-3.c
index e2710ad5629..4694b1a922a 100644
--- a/gcc/testsuite/gcc.dg/cpp/trad/comment-3.c
+++ b/gcc/testsuite/gcc.dg/cpp/trad/comment-3.c
@@ -1,6 +1,8 @@
/* Test we don't accept C++ comments. */
/* { dg-do preprocess } */
+/* APPLE LOCAL -Wextra-tokens 2001-08-01 --sts */
+/* { dg-options "-traditional-cpp -Wextra-tokens" } */
#if 0
#endif // /* { dg-warning "extra tokens" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-1.c b/gcc/testsuite/gcc.dg/cpp/ucnid-1.c
new file mode 100644
index 00000000000..5f19eed903f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-1.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+void abort (void);
+
+#define \u00C0 1
+#define \u00C1 2
+#define \U000000C2 3
+#define wh\u00ff 4
+#define a\u00c4b\u0441\U000003b4e 5
+
+int main (void)
+{
+
+ if (\u00C0 != 1)
+ abort ();
+ if (\u00c1 != 2)
+ abort ();
+ if (\u00C2 != 3)
+ abort ();
+ if (wh\u00ff != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-2.c b/gcc/testsuite/gcc.dg/cpp/ucnid-2.c
new file mode 100644
index 00000000000..02ffdaf32ee
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-2.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+#include <stdlib.h>
+#include <string.h>
+
+#define str(t) #t
+
+int main (void)
+{
+ const char s[] = str (\u30b2);
+
+ if (strcmp (s, "\u30b2") != 0)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-3.c b/gcc/testsuite/gcc.dg/cpp/ucnid-3.c
new file mode 100644
index 00000000000..e04f092a616
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-3.c
@@ -0,0 +1,9 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do compile } */
+/* { dg-options "-std=c99" } */
+
+#define paste(x, y) x ## y
+
+int paste(\u00aa, \u0531) = 3;
+
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-4.c b/gcc/testsuite/gcc.dg/cpp/ucnid-4.c
new file mode 100644
index 00000000000..395c0d4e311
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-4.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99" } */
+
+\u00AA
+\u00AB /* { dg-error "not valid in an identifier" } */
+\u00B6 /* { dg-error "not valid in an identifier" } */
+\u00BA
+\u00C0
+\u00D6
+\u0384
+
+\u0669 /* { dg-error "not valid at the start of an identifier" } */
+A\u0669
+0\u00BA
+0\u0669
+\u0E59 /* { dg-error "not valid at the start of an identifier" } */
+A\u0E59
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-5.c b/gcc/testsuite/gcc.dg/cpp/ucnid-5.c
new file mode 100644
index 00000000000..3ede8f728d1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-5.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99 -pedantic" } */
+
+\u00AA
+\u00AB /* { dg-error "not valid in an identifier" } */
+\u00B6 /* { dg-error "not valid in an identifier" } */
+\u00BA
+\u00C0
+\u00D6
+\u0384 /* { dg-error "not valid in an identifier" } */
+
+\u0669 /* { dg-error "not valid at the start of an identifier" } */
+A\u0669
+0\u00BA
+0\u0669
+\u0E59 /* { dg-error "not valid at the start of an identifier" } */
+A\u0E59
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-6.c b/gcc/testsuite/gcc.dg/cpp/ucnid-6.c
new file mode 100644
index 00000000000..1bc491bfa32
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-6.c
@@ -0,0 +1,7 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do compile } */
+/* { dg-options "-std=c89" } */
+#define a b(
+#define b(x) q
+int a\u00aa);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-7.c b/gcc/testsuite/gcc.dg/cpp/ucnid-7.c
new file mode 100644
index 00000000000..57476d5cb68
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-7.c
@@ -0,0 +1,7 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do compile } */
+/* { dg-options "-std=c99" } */
+#define a b(
+#define b(x) q
+int a\U0000000z );
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/darwin-altivec-vsplt-1.c b/gcc/testsuite/gcc.dg/darwin-altivec-vsplt-1.c
new file mode 100644
index 00000000000..f35b52fbc46
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/darwin-altivec-vsplt-1.c
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file 4119059 */
+/* { dg-do assemble { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec -O3" } */
+typedef unsigned char UInt8;
+typedef signed char SInt8;
+typedef unsigned short UInt16;
+typedef signed short SInt16;
+typedef signed long SInt32;
+typedef unsigned long UInt32;
+typedef __attribute__((altivec(vector__))) signed char VSInt8;
+typedef __attribute__((altivec(vector__))) unsigned char VUInt8;
+typedef __attribute__((altivec(vector__))) signed short VSInt16;
+
+typedef __attribute__((altivec(vector__))) signed int VSInt32;
+
+
+extern unsigned char *dPtr;
+extern VSInt8 xyz;
+unsigned long ix;
+
+void foo ()
+{
+ VSInt16 Y;
+ const VSInt32 vC1 = (VSInt32) (128, 128, 0, 0);
+ const VUInt8 vC2 = vec_splat((const VUInt8) vC1,3);
+
+ xyz = vec_sub(xyz, vC2);
+ Y = vec_unpackl (xyz);
+ vec_st ((VUInt8) Y, ix, dPtr);
+}
+
diff --git a/gcc/testsuite/gcc.dg/darwin64-abi.c b/gcc/testsuite/gcc.dg/darwin64-abi.c
new file mode 100644
index 00000000000..a98e8e1d7de
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/darwin64-abi.c
@@ -0,0 +1,627 @@
+/* APPLE LOCAL file 64-bit ABI testing */
+/* { dg-do run { target "powerpc*-*-darwin*" } } */
+/* { dg-options "-m64 -maltivec" } */
+
+/* Set this if 8-byte structs are being passed as integers. */
+/* #define STRUCT8INT */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <complex.h>
+#include <altivec.h>
+
+extern void abort (void);
+
+struct s3c { char ch[3]; };
+struct ssc { short sh; char ch; };
+struct sif { int i; float f; };
+struct sfi { float f; int i; };
+struct sfii { float f; int i; int j; };
+struct sfil { float f; int i; long l; };
+struct sfif { float f; int i; float g; };
+struct sfill { float f; int i; long l, m; };
+struct sfl { float f; long l; };
+struct sfldl { float f; long l1; double d; long l2; };
+struct sfpp { float f; char *p1; char *p2; };
+
+
+struct sff { float f1, f2; };
+struct sfff { float f1, f2, f3; };
+struct sffff { float f1, f2, f3, f4; };
+
+struct sfD { float f; long double D; };
+
+struct sidi { int i1; double d; int i2; };
+
+struct sdd { double d1, d2; };
+struct sddd { double d1, d2, d3; };
+struct sdddd { double d1, d2, d3, d4; };
+struct s3d { double d[3]; };
+
+struct vr { union { int ielts[4]; float felts[4]; } elts; };
+
+typedef struct
+{
+ unsigned long gprs[32];
+ double fprs[32];
+ struct vr vrs[32];
+ unsigned char stack[1000];
+} reg_parms_t;
+
+reg_parms_t gparms;
+
+#define TESTFN(RET,NAME,PARAMS) \
+RET NAME PARAMS; \
+RET dummy_ ## NAME PARAMS \
+{ \
+ asm("b end_" #NAME "\n_" # NAME ":\n\t" SAVE_STATE "b _dummy_" # NAME "\n\tend_" #NAME ":\n\n" ); \
+}
+
+#define SAVE_STATE \
+SAVE_GPR(0) \
+SAVE_GPR(1) \
+SAVE_GPR(3) \
+SAVE_GPR(4) \
+SAVE_GPR(5) \
+SAVE_GPR(6) \
+SAVE_GPR(7) \
+SAVE_GPR(8) \
+SAVE_GPR(9) \
+SAVE_GPR(10) \
+SAVE_FPR(0) \
+SAVE_FPR(1) \
+SAVE_FPR(2) \
+SAVE_FPR(3) \
+SAVE_FPR(4) \
+SAVE_FPR(5) \
+SAVE_FPR(6) \
+SAVE_FPR(7) \
+SAVE_FPR(8) \
+SAVE_FPR(9) \
+SAVE_FPR(10) \
+SAVE_FPR(12) \
+SAVE_FPR(13) \
+SAVE_VR(0) \
+SAVE_VR(1) \
+SAVE_VR(2) \
+SAVE_VR(3) \
+SAVE_VR(4) \
+SAVE_STACK(112) \
+SAVE_STACK(120) \
+SAVE_STACK(128) \
+SAVE_STACK(136) \
+SAVE_STACK(144) \
+
+
+#ifdef __LP64__
+#define SAVE_GPR(N) "std r" #N "," #N "*8(r25)\n\t"
+#define SAVE_FPR(N) "stfd f" #N "," #N "*8+256(r25)\n\t"
+#define SAVE_VR(N) "li r26," #N "*16+512\n\tstvx v" #N ",r25,r26\n\t"
+#define SAVE_STACK(N) "ld r26," #N "(r1)\n\tstd r26," #N "+1024(r25)\n\t"
+#else
+#define SAVE_GPR(N) "stw r" #N "," #N "*4(r25)\n\t"
+#define SAVE_FPR(N) "stfd f" #N "," #N "*8+128(r25)\n\t"
+#define SAVE_VR(N)
+#define SAVE_STACK(N)
+#endif
+
+TESTFN(void, fffi, (float x, float y, int z))
+
+#define clearall \
+asm volatile ( \
+"\n\t" \
+"li r3,0x333\n\t" \
+"li r4,0x444 \n\t" \
+"li r5,0x555\n\t" \
+"li r6,0x666\n\t" \
+"li r7,0x777\n\t" \
+"li r8,0x888\n\t" \
+"li r9,0x999\n\t" \
+"li r10,0xaaa\n\t" \
+"fsub f0,f0,f0\n\t" \
+"fsub f1,f1,f1\n\t" \
+"fsub f2,f2,f2\n\t" \
+"fsub f3,f3,f3\n\t" \
+"fsub f4,f4,f4\n\t" \
+"fsub f5,f5,f5\n\t" \
+"fsub f6,f6,f6\n\t" \
+"fsub f7,f7,f7\n\t" \
+"vsubuwm v0,v0,v0\n\t" \
+"vsubuwm v1,v1,v1\n\t" \
+"vsubuwm v2,v2,v2\n\t" \
+"vsubuwm v3,v3,v3\n\t" \
+"vsubuwm v4,v4,v4\n\t" \
+: : : "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", \
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "v0", "v1", "v2", "v3", "v4" );
+
+TESTFN(void, fii, (int a, int b))
+TESTFN(void, fid, (int i, double d))
+TESTFN(void, fc, (complex float z))
+TESTFN(void, fffff, (float f1, float f2, float f3, float f4))
+TESTFN(void, fdddd, (double d1, double d2, double d3, double d4))
+TESTFN(void, f_s3c_ssc, (struct s3c s1, struct ssc s2))
+TESTFN(void, f_sff, (struct sff s))
+TESTFN(void, f_sfff, (struct sfff s))
+TESTFN(void, f_sffff, (struct sffff s))
+TESTFN(void, f_sdd, (struct sdd s))
+TESTFN(void, f_sddd, (struct sddd s))
+TESTFN(void, f_sdddd, (struct sdddd s))
+TESTFN(void, f_s3d, (struct s3d s))
+TESTFN(void, f_sif, (int i, struct sif s))
+TESTFN(void, fi_sif, (int i, struct sif s))
+TESTFN(void, fi_sif_i, (int i, struct sif s, int j))
+TESTFN(void, f_sfi, (int i, struct sfi s))
+TESTFN(void, fi_sfi, (int i, struct sfi s))
+TESTFN(void, fi_sfi_if, (int i, struct sfi s, int j, float f))
+TESTFN(void, fi_sfill, (int i, struct sfill s))
+TESTFN(void, fi_sfill_i, (int i, struct sfill s, int j))
+TESTFN(void, f_sfl, (struct sfl s))
+TESTFN(void, f_sfl_sfl_sfl_sfl_sfl, (struct sfl s1, struct sfl s2, struct sfl s3, struct sfl s4, struct sfl s5))
+TESTFN(void, fi_sff, (int i, struct sff s))
+TESTFN(void, f_sfpp_p, (struct sfpp s, char *p))
+TESTFN(void, f_sfldl, (struct sfldl s))
+TESTFN(void, fi_sff_i, (int i, struct sff s, int j))
+TESTFN(void, f_sfD_sfD_sfD_sfD_sfD, (struct sfD s1, struct sfD s2, struct sfD s3, struct sfD s4, struct sfD s5))
+TESTFN(void, fi_sidi, (int i, struct sidi s))
+TESTFN(void, fifvf_sfi_dots, (int i, float f, vector float vf, struct sfi s, ...))
+TESTFN(void, fifvf_sfii_dots, (int i, float f, vector float vf, struct sfii s, ...))
+
+int numerrs;
+
+#ifndef SKIP
+check_gpr (int line, int reg, long expected)
+{
+ if (gparms.gprs[reg] != expected)
+ {
+ printf("%d: r%d is 0x%lx, expected 0x%lx\n",
+ line, reg, gparms.gprs[reg], expected);
+ ++numerrs;
+ }
+}
+
+check_gpr_double (int line, int reg, double expected)
+{
+ double tmp = *((double *) &(gparms.gprs[reg]));
+ if (tmp != expected)
+ {
+ printf("%d: r%d is %f (0x%llx), expected %f (0x%llx)\n",
+ line, reg,
+ tmp, *((long long *) &tmp),
+ expected, *((long long *) &expected));
+ ++numerrs;
+ }
+}
+
+check_gpr_float_pair (int line, int reg, float exp1, float exp2)
+{
+ float tmp1 = *((float *) &(gparms.gprs[reg]));
+ float tmp2 = *(((float *) &(gparms.gprs[reg])) + 1);
+
+ if (tmp1 != exp1 || tmp2 != exp2)
+ {
+ printf("%d: r%d is %f / %f (0x%llx), expected %f (0x%x) / %f (0x%x)\n",
+ line, reg,
+ tmp1, tmp2, *((long long *) &(gparms.gprs[reg])),
+ exp1, *((int *) &exp1),
+ exp2, *((int *) &exp2));
+ ++numerrs;
+ }
+}
+
+check_fpr (int line, int reg, double expected)
+{
+ if (gparms.fprs[reg] != expected)
+ {
+ printf("%d: f%d is %f (0x%llx), expected %f (0x%llx)\n",
+ line, reg,
+ gparms.fprs[reg], *((long long *) &(gparms.fprs[reg])),
+ expected, *((long long *) &expected));
+ ++numerrs;
+ }
+}
+
+check_vr_int (int reg, int n1, int n2, int n3, int n4)
+{
+ if (gparms.vrs[reg].elts.ielts[0] != n1
+ || gparms.vrs[reg].elts.ielts[1] != n2
+ || gparms.vrs[reg].elts.ielts[2] != n3
+ || gparms.vrs[reg].elts.ielts[3] != n4)
+ {
+ printf("v%d is (%d,%d,%d,%d) (0x%x,0x%x,0x%x,0x%x),\n"
+ " expected (%d,%d,%d,%d) (0x%x,0x%x,0x%x,0x%x)\n",
+ reg,
+ gparms.vrs[reg].elts.ielts[0],
+ gparms.vrs[reg].elts.ielts[1],
+ gparms.vrs[reg].elts.ielts[2],
+ gparms.vrs[reg].elts.ielts[3],
+ gparms.vrs[reg].elts.ielts[0],
+ gparms.vrs[reg].elts.ielts[1],
+ gparms.vrs[reg].elts.ielts[2],
+ gparms.vrs[reg].elts.ielts[3],
+ n1, n2, n3, n4,
+ n1, n2, n3, n4
+ );
+ ++numerrs;
+ }
+}
+
+check_vr_float (int reg, float f1, float f2, float f3, float f4)
+{
+ if (gparms.vrs[reg].elts.felts[0] != f1
+ || gparms.vrs[reg].elts.felts[1] != f2
+ || gparms.vrs[reg].elts.felts[2] != f3
+ || gparms.vrs[reg].elts.felts[3] != f4)
+ {
+ printf("v%d is (%f,%f,%f,%f) (0x%x,0x%x,0x%x,0x%x),\n"
+ " expected (%f,%f,%f,%f) (0x%x,0x%x,0x%x,0x%x)\n",
+ reg,
+ gparms.vrs[reg].elts.felts[0],
+ gparms.vrs[reg].elts.felts[1],
+ gparms.vrs[reg].elts.felts[2],
+ gparms.vrs[reg].elts.felts[3],
+ gparms.vrs[reg].elts.ielts[0],
+ gparms.vrs[reg].elts.ielts[1],
+ gparms.vrs[reg].elts.ielts[2],
+ gparms.vrs[reg].elts.ielts[3],
+ f1, f2, f3, f4,
+ *((int *) &f1), *((int *) &f2), *((int *) &f3), *((int *) &f4)
+ );
+ ++numerrs;
+ }
+}
+#endif
+
+main()
+{
+ complex float cpx = 4.45f + I * 4.92f;
+ struct s3c s3c_loc;
+ struct ssc ssc_loc;
+ struct sfi sfi_loc;
+ struct sfi sfi_loc2 = { 6.3f, 0x1108 };
+ struct sfii sfii_loc;
+ struct sfii sfii_loc2 = { 6.9f, 0x1110 };
+ vector float vf_loc = (vector float) { 7.1f, 7.2f, 7.3f, 7.4f };
+ vector int vi_loc = (vector int) { 0xabc, 0xdef, 0xfed, 0xcba };
+
+ asm ("mr r25,%0" : : "b" (&gparms) );
+
+ clearall;
+ fii(1, 2);
+ check_gpr (__LINE__, 3, 1);
+ check_gpr (__LINE__, 4, 2);
+
+ clearall;
+ fid(45, 4.5);
+ check_gpr (__LINE__, 3, 45);
+ check_fpr (__LINE__, 1, 4.5);
+
+ clearall;
+ fffi(1.2f, 3.4f, 456);
+ check_fpr(__LINE__, 1, 1.2f);
+
+ clearall;
+ fc(cpx);
+ /* Two floats are packed into r3 */
+ check_gpr_float_pair (__LINE__, 3, 4.45f, 4.92f);
+
+ clearall;
+ fffff (4.1f, 4.2f, 4.3f, 4.4f);
+ check_fpr (__LINE__, 1, 4.1f);
+ check_fpr (__LINE__, 4, 4.4f);
+
+ clearall;
+ fdddd (4.1, 4.2, 4.3, 4.4);
+ check_fpr (__LINE__, 1, 4.1);
+ check_fpr (__LINE__, 4, 4.4);
+
+ {
+ struct sff sff_loc = { 2.1f, 2.2f };
+ clearall;
+ f_sff(sff_loc);
+#ifdef STRUCT8INT
+ check_gpr_float_pair (__LINE__, 3, 2.1f, 2.2f);
+#else
+ check_fpr(__LINE__, 1, 2.1f);
+ check_fpr(__LINE__, 2, 2.2f);
+#endif
+ clearall;
+ fi_sff_i(65, sff_loc, 66);
+ check_gpr(__LINE__, 3, 65);
+#ifdef STRUCT8INT
+ check_gpr_float_pair (__LINE__, 4, 2.1f, 2.2f);
+#else
+ check_fpr(__LINE__, 1, 2.1f);
+ check_fpr(__LINE__, 2, 2.2f);
+#endif
+ check_gpr(__LINE__, 5, 66);
+ }
+
+ {
+ struct sfff sfff_loc = { 3.1f, 3.2f, 3.3f };
+ clearall;
+ f_sfff(sfff_loc);
+ check_fpr(__LINE__, 1, 3.1f);
+ check_fpr(__LINE__, 2, 3.2f);
+ check_fpr(__LINE__, 3, 3.3f);
+ clearall;
+ f_sfff(sfff_loc);
+ check_fpr(__LINE__, 1, 3.1f);
+ check_fpr(__LINE__, 2, 3.2f);
+ check_fpr(__LINE__, 3, 3.3f);
+ }
+
+ {
+ struct sffff sffff_loc = { 4.1f, 4.2f, 4.3f, 4.4f };
+ clearall;
+ f_sffff(sffff_loc);
+ check_gpr_float_pair(__LINE__, 3, 4.1f, 4.2f);
+ check_gpr_float_pair(__LINE__, 4, 4.3f, 4.4f);
+ }
+
+ {
+ struct sdd sdd_loc = { 2.1, 2.2 };
+ clearall;
+ f_sdd(sdd_loc);
+ /* 16-byte struct is passed in two GPRs. */
+ check_gpr_double(__LINE__, 3, 2.1);
+ check_gpr_double(__LINE__, 4, 2.2);
+ }
+
+ {
+ struct sddd sddd_loc = { 3.1, 3.2, 3.3 };
+ clearall;
+ f_sddd(sddd_loc);
+ check_fpr(__LINE__, 1, 3.1);
+ check_fpr(__LINE__, 2, 3.2);
+ check_fpr(__LINE__, 3, 3.3);
+ }
+
+ {
+ struct sdddd sdddd_loc = { 4.1, 4.2, 4.3, 4.4 };
+ clearall;
+ f_sdddd(sdddd_loc);
+ check_fpr(__LINE__, 1, 4.1);
+ check_fpr(__LINE__, 2, 4.2);
+ check_fpr(__LINE__, 3, 4.3);
+ check_fpr(__LINE__, 4, 4.4);
+ }
+
+ {
+ struct s3d s3d_loc = { 89.92, 4.89, 90.9 };
+ clearall;
+ f_s3d(s3d_loc);
+ check_gpr_double (__LINE__, 3, 89.92);
+ check_gpr_double (__LINE__, 4, 4.89);
+ check_gpr_double (__LINE__, 5, 90.9);
+ }
+
+ {
+ s3c_loc.ch[0] = 'A';
+ s3c_loc.ch[1] = 'B';
+ s3c_loc.ch[2] = 'C';
+ ssc_loc.sh = 0x1234;
+ ssc_loc.ch = 'D';
+ clearall;
+ f_s3c_ssc(s3c_loc, ssc_loc);
+ }
+
+ {
+ struct sif sif_loc_n = { 334, 4.3f };
+ long floatcast;
+ floatcast = *((int *) &(sif_loc_n.f));
+ clearall;
+ fi_sif(29, sif_loc_n);
+ check_gpr (__LINE__, 3, 29);
+ check_gpr (__LINE__, 4, 334LL << 32 | floatcast);
+#ifdef STRUCT8INT
+#else
+ check_fpr (__LINE__, 1, 4.3f);
+#endif
+ clearall;
+ fi_sif_i(31, sif_loc_n, 33);
+ check_gpr (__LINE__, 3, 31);
+ check_gpr (__LINE__, 4, 334LL << 32 | floatcast);
+#ifdef STRUCT8INT
+#else
+ check_fpr (__LINE__, 1, 4.3f);
+#endif
+ check_gpr (__LINE__, 5, 33);
+ }
+
+ {
+ struct sfi sfi_loc_n = { 4.145f, 335 };
+ clearall;
+ fi_sfi(29, sfi_loc_n);
+ check_gpr (__LINE__, 3, 29);
+#ifdef STRUCT8INT
+ check_gpr (__LINE__, 4, 0x4084a3d70000014fLL);
+#else
+ check_fpr (__LINE__, 1, 4.145f);
+ check_gpr (__LINE__, 4, 335);
+#endif
+ }
+
+ {
+ struct sfi sfi_loc_n = { 4.145f, 335 };
+ clearall;
+ fi_sfi_if (29, sfi_loc_n, 65, 9.8f);
+ check_gpr (__LINE__, 3, 29);
+#ifdef STRUCT8INT
+ check_gpr (__LINE__, 4, 0x4084a3d70000014fLL);
+#else
+ check_fpr (__LINE__, 1, 4.145f);
+ check_gpr (__LINE__, 4, 335);
+#endif
+ check_gpr (__LINE__, 5, 65);
+ check_gpr (__LINE__, 6, 0x666);
+#ifdef STRUCT8INT
+ check_fpr (__LINE__, 1, 9.8f);
+#else
+ check_fpr (__LINE__, 2, 9.8f);
+#endif
+ check_gpr (__LINE__, 7, 0x777);
+ }
+
+ {
+ struct sfill sfill_loc_n = { 4.145f, 335, 10000000000LL, 20000000000LL };
+ clearall;
+ fi_sfill(29, sfill_loc_n);
+ check_gpr (__LINE__, 3, 29);
+ check_fpr (__LINE__, 1, 4.145f);
+ check_gpr (__LINE__, 4, 335);
+ check_gpr (__LINE__, 5, 10000000000LL);
+ check_gpr (__LINE__, 6, 20000000000LL);
+ }
+
+ {
+ struct sfl sfl_loc_n = { 4.145f, 335 };
+ clearall;
+ f_sfl (sfl_loc_n);
+ check_gpr_float_pair (__LINE__, 3, 4.145f, 0.0f);
+ check_gpr (__LINE__, 4, 335);
+ check_gpr (__LINE__, 5, 0x555);
+ clearall;
+ f_sfl_sfl_sfl_sfl_sfl (sfl_loc_n, sfl_loc_n, sfl_loc_n, sfl_loc_n, sfl_loc_n);
+ check_gpr_float_pair (__LINE__, 3, 4.145f, 0.0f);
+ check_gpr (__LINE__, 4, 335);
+ check_gpr (__LINE__, 6, 335);
+ check_gpr (__LINE__, 8, 335);
+ check_gpr (__LINE__, 10, 335);
+ }
+
+ {
+ struct sfldl sfldl_loc_n = { 4.145f, 335, 3.3, 336 };
+ clearall;
+ f_sfldl (sfldl_loc_n);
+ check_fpr (__LINE__, 1, 4.145f);
+ check_gpr (__LINE__, 4, 335);
+ check_fpr (__LINE__, 2, 3.3);
+ check_gpr (__LINE__, 6, 336);
+ }
+
+ {
+ char *p1 = "abc";
+ char *p2 = "def";
+ char *p3 = "ghi";
+ struct sfpp sfpp_loc_n = { 4.145f, p1, p2 };
+ clearall;
+ f_sfpp_p(sfpp_loc_n, p3);
+ check_fpr (__LINE__, 1, 4.145f);
+ check_gpr (__LINE__, 4, (long) p1);
+ check_gpr (__LINE__, 5, (long) p2);
+ check_gpr (__LINE__, 6, (long) p3);
+ }
+
+ {
+ struct sff sff_loc_n = { 4.145f, 335.3f };
+ clearall;
+ fi_sff(29, sff_loc_n);
+ check_gpr (__LINE__, 3, 29);
+#ifdef STRUCT8INT
+ check_gpr_float_pair (__LINE__, 4, 4.145f, 335.3f);
+#else
+ check_fpr (__LINE__, 1, 4.145f);
+ check_fpr (__LINE__, 2, 335.3f);
+#endif
+ }
+
+ {
+ struct sfD sfD_loc_n = { 4.145f, 335.335 };
+ clearall;
+ f_sfD_sfD_sfD_sfD_sfD (sfD_loc_n, sfD_loc_n, sfD_loc_n, sfD_loc_n, sfD_loc_n);
+ check_fpr (__LINE__, 1, 4.145f);
+ check_fpr (__LINE__, 2, 335.335);
+ check_fpr (__LINE__, 4, 4.145f);
+ check_fpr (__LINE__, 5, 335.335);
+ check_fpr (__LINE__, 7, 4.145f);
+ check_fpr (__LINE__, 10, 4.145f);
+ check_fpr (__LINE__, 13, 4.145f);
+ }
+
+ {
+ struct sidi sidi_loc_n = { 257, 4.14515, 258 };
+ clearall;
+ fi_sidi(16, sidi_loc_n);
+ check_gpr (__LINE__, 3, 16);
+ check_fpr (__LINE__, 1, 4.14515);
+ check_gpr (__LINE__, 4, 257LL << 32);
+ check_gpr (__LINE__, 5, 0x555);
+ check_gpr (__LINE__, 6, 258LL << 32);
+ }
+
+ sfi_loc.f = 5.2f;
+ sfi_loc.i = 98;
+ clearall;
+ fifvf_sfi_dots(41, 4.3f, vf_loc, sfi_loc, 4.63f, vi_loc, sfi_loc2);
+ asm ("\n");
+ check_gpr (__LINE__, 3, 41);
+ check_fpr (__LINE__, 1, 4.3f); /* float skips r4 */
+ check_vr_float(2, 7.1f, 7.2f, 7.3f, 7.4f); /* vector skips r5/r6 */
+#ifdef STRUCT8INT
+ check_gpr (__LINE__, 7, 0x40a6666600000062);
+#else
+ check_fpr (__LINE__, 2, sfi_loc.f);
+ check_gpr (__LINE__, 7, sfi_loc.i);
+#endif
+ /* start of varying parameters */
+#ifdef STRUCT8INT
+ check_fpr (__LINE__, 2, 4.63f);
+#else
+ check_fpr (__LINE__, 3, 4.63f);
+#endif
+ check_gpr_double (__LINE__, 8, 4.63f);
+ /* vector takes up r9/r10 */
+ /* sfi_loc2 on stack */
+
+ clearall;
+ sfii_loc.f = 5.2f;
+ sfii_loc.i = 98;
+ clearall;
+ fifvf_sfii_dots(41, 4.3f, vf_loc, sfii_loc, 4.63f, vi_loc, sfii_loc2);
+ asm ("\n");
+ check_gpr (__LINE__, 3, 41);
+ check_fpr (__LINE__, 1, 4.3f); /* float skips r4 */
+ check_vr_float(2, 7.1f, 7.2f, 7.3f, 7.4f); /* vector skips r5/r6 */
+ check_fpr (__LINE__, 2, sfii_loc.f);
+ check_gpr (__LINE__, 7, sfii_loc.i);
+ check_gpr (__LINE__, 8, sfii_loc.j);
+ /* start of varying parameters */
+ check_fpr (__LINE__, 3, 4.63f);
+ check_gpr_double (__LINE__, 9, 4.63f);
+ /* vector takes up r10/stack (?) */
+ /* sfii_loc2 on stack */
+
+ if (numerrs > 0)
+ abort ();
+ return 0;
+}
+
+int dumpall()
+{
+ int i;
+
+ printf("\n");
+ for (i = 3; i <= 10; ++i)
+#ifdef __LP64__
+ printf("r%d=0x%16.16lx ", i, gparms.gprs[i]);
+#else
+ printf("r%d=0x%8.8x ", i, gparms.gprs[i]);
+#endif
+ printf("\n");
+ for (i = 1; i <= 13; ++i)
+ printf("f%d=%8.8f ", i, gparms.fprs[i]);
+ printf("\n");
+ for (i = 0; i <= 4; ++i)
+ printf("v%d=(%x,%x,%x,%x) ", i,
+ gparms.vrs[i].elts.ielts[0], gparms.vrs[i].elts.ielts[1],
+ gparms.vrs[i].elts.ielts[2], gparms.vrs[i].elts.ielts[3]);
+ printf("\n");
+ for (i = 112; i < 152; ++i)
+ {
+ if (i > 112 && i % 8 == 0)
+ printf(" | ");
+ printf("%02x", gparms.stack[i]);
+ }
+ printf("\n");
+}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c
new file mode 100644
index 00000000000..45e93737283
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c
@@ -0,0 +1,13 @@
+/* Test to make sure the mcaro info includes a start file command for the main source */
+/* { dg-do compile */
+/* { dg-options "-g3 -gdwarf-2 -dA -fverbose-asm" } */
+/* { dg-final { scan-assembler "Start new file" } } */
+
+#define ADD(x) (M + x)
+
+int main (void)
+{
+#define N 28
+#define M 42
+ return ADD(N);
+}
diff --git a/gcc/testsuite/gcc.dg/deprecated.c b/gcc/testsuite/gcc.dg/deprecated.c
index 1e07efe6314..6ca95d42a74 100644
--- a/gcc/testsuite/gcc.dg/deprecated.c
+++ b/gcc/testsuite/gcc.dg/deprecated.c
@@ -53,10 +53,10 @@ int func1()
int (*pf)() = f1; /* { dg-warning "'f1' is deprecated" "" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" "" } */
- /* { dg-warning "'y' is deprecated" "" { target *-*-* } 55 } */
- /* { dg-warning "'g2' is deprecated" "" { target *-*-* } 55 } */
- /* { dg-warning "'g3' is deprecated" "" { target *-*-* } 55 } */
- return f1(); /* { dg-warning "'f1' is deprecated" "" } */
+ /* { dg-warning "'y' is deprecated" "y" { target *-*-* } 55 } */
+ /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } 55 } */
+ /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } 55 } */
+ return f1(); /* { dg-warning "'f1' is deprecated" "f1" } */
}
int func2(S1 *p)
@@ -71,7 +71,7 @@ int func2(S1 *p)
p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'u2' is deprecated" "" } */
return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated" "" } */
- /* { dg-warning "'field8' is deprecated" "" { target *-*-* } 73 } */
+ /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } 73 } */
}
struct SS1 {
diff --git a/gcc/testsuite/gcc.dg/enum3.c b/gcc/testsuite/gcc.dg/enum3.c
new file mode 100644
index 00000000000..ba3c1da15e3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/enum3.c
@@ -0,0 +1,11 @@
+/* Test for non-integer enum values. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+enum e { E, F };
+enum e2 {
+ E1 = (void *)4, /* { dg-error "error: enumerator value for 'E1' is not an integer constant" } */
+ E2 = (enum e)F,
+ E3 = (_Bool)1
+};
diff --git a/gcc/testsuite/gcc.dg/framework-2.c b/gcc/testsuite/gcc.dg/framework-2.c
new file mode 100644
index 00000000000..1fad935a903
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/framework-2.c
@@ -0,0 +1,5 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-F$srcdir/gcc.dg" } */
+
+#include <Foundation/Foundation.h> /* { dg-error "error: Foundation/Foundation.h: No such file" } */
diff --git a/gcc/testsuite/gcc.dg/i386-387-7.c b/gcc/testsuite/gcc.dg/i386-387-7.c
index 210917ad415..1a40cd719d8 100644
--- a/gcc/testsuite/gcc.dg/i386-387-7.c
+++ b/gcc/testsuite/gcc.dg/i386-387-7.c
@@ -1,5 +1,6 @@
/* Verify that 387 fsincos instruction is generated. */
/* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O -ffast-math -march=i686" } */
/* { dg-final { scan-assembler "fsincos" } } */
diff --git a/gcc/testsuite/gcc.dg/i386-3dnowA-1.c b/gcc/testsuite/gcc.dg/i386-3dnowA-1.c
index 2ae1a04d5cb..b5327b3d9ec 100644
--- a/gcc/testsuite/gcc.dg/i386-3dnowA-1.c
+++ b/gcc/testsuite/gcc.dg/i386-3dnowA-1.c
@@ -1,4 +1,5 @@
/* { dg-do assemble { target i?86-*-* } } */
+/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow -march=athlon" } */
/* Test that the intrinsics compile with optimization. All of them are
diff --git a/gcc/testsuite/gcc.dg/i386-3dnowA-2.c b/gcc/testsuite/gcc.dg/i386-3dnowA-2.c
index d8ed6cb4c4d..ea336af4147 100644
--- a/gcc/testsuite/gcc.dg/i386-3dnowA-2.c
+++ b/gcc/testsuite/gcc.dg/i386-3dnowA-2.c
@@ -1,4 +1,5 @@
/* { dg-do assemble { target i?86-*-* } } */
+/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow -march=athlon" } */
/* Test that the intrinsics compile without optimization. All of them are
diff --git a/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c b/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c
new file mode 100644
index 00000000000..35798d6593a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c
@@ -0,0 +1,10 @@
+/* APPLE LOCAL file mainline 2005-04-11 4010614 */
+/* { dg-do compile { target i?86-*-darwin* } } */
+/* { dg-final { scan-assembler "addsd" } } */
+/* Do not add -msse or -msse2 or -mfpmath=sse to the options. GCC is
+ supposed to use SSE math on Darwin by default, and libm won't work
+ right if it doesn't. */
+double foo(double x, double y)
+{
+ return x + y;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-sse-11.c b/gcc/testsuite/gcc.dg/i386-sse-11.c
new file mode 100644
index 00000000000..0a41fb9d327
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-sse-11.c
@@ -0,0 +1,17 @@
+/* APPLE LOCAL begin radar 4120689 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O1 -msse2" } */
+void idct_sse2as(void)
+{
+ int i;
+ short dst[64] __attribute__((aligned(16))) ;
+
+ __asm__ __volatile__ ("movdqa" " %%" "xmm1" ", %0" : "=m" (*(dst + 0*8)) : );
+}
+
+int main()
+{
+ idct_sse2as();
+ return 0;
+}
+/* APPLE LOCAL end radar 4120689 */
diff --git a/gcc/testsuite/gcc.dg/i386-xorps.c b/gcc/testsuite/gcc.dg/i386-xorps.c
new file mode 100644
index 00000000000..450488c1fd2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-xorps.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL begin mainline 2005-04-13 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-Os -msse2" } */
+
+typedef float __m128 __attribute__ ((vector_size (16)));
+
+static __inline __m128
+_mm_mul_ps (__m128 __A, __m128 __B)
+{
+ return __builtin_ia32_mulps (__A, __B);
+}
+
+static __inline __m128
+_mm_sub_ps (__m128 __A, __m128 __B)
+{
+ return __builtin_ia32_subps (__A, __B);
+}
+
+__m128 POW_FUNC (__m128 x, __m128 y)
+{
+ __m128 xmm0 = x, xmm1 = y, xmm2;
+
+ xmm0 = __builtin_ia32_xorps (xmm1, xmm1);
+
+ xmm0 = _mm_mul_ps (xmm0, xmm1);
+
+ xmm0 = _mm_sub_ps (xmm0, xmm1);
+
+ xmm0 = _mm_mul_ps (xmm0, xmm1);
+
+ return xmm0;
+}
+/* APPLE LOCAL end mainline 2005-04-13 */
diff --git a/gcc/testsuite/gcc.dg/init-bad-1.c b/gcc/testsuite/gcc.dg/init-bad-1.c
index 7f20b8cbb0a..1fa1bfb2d82 100644
--- a/gcc/testsuite/gcc.dg/init-bad-1.c
+++ b/gcc/testsuite/gcc.dg/init-bad-1.c
@@ -10,8 +10,8 @@ void h(a)
int a = 1; /* { dg-error "error: parameter 'a' is initialized" } */
{
struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */
- /* { dg-warning "excess elements|near init" "" { target *-*-* } 12 } */
- /* { dg-error "storage size" "" { target *-*-* } 12 } */
+ /* { dg-warning "excess elements|near init" "excess" { target *-*-* } 12 } */
+ /* { dg-error "storage size" "size" { target *-*-* } 12 } */
}
char s[1] = "x";
@@ -19,27 +19,27 @@ char s1[1] = { "x" };
char t[1] = "xy"; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
char t1[1] = { "xy" }; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 21 } */
+/* { dg-error "near init" "near" { target *-*-* } 21 } */
int i = { }; /* { dg-error "error: empty scalar initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 24 } */
+/* { dg-error "near init" "near" { target *-*-* } 24 } */
int j = { 1 };
int k = { 1, 2 }; /* { dg-warning "warning: excess elements in scalar initializer" } */
-/* { dg-warning "near init" "" { target *-*-* } 29 } */
+/* { dg-warning "near init" "near" { target *-*-* } 29 } */
int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 32 } */
+/* { dg-error "near init" "near" { target *-*-* } 32 } */
int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 34 } */
+/* { dg-error "near init" "near" { target *-*-* } 34 } */
int a3[1] = { [0 ... 1] = 0 }; /* { dg-error "error: array index range in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 36 } */
+/* { dg-error "near init" "near" { target *-*-* } 36 } */
int a4[2] = { [1 ... 0] = 0 }; /* { dg-error "error: empty index range in initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 38 } */
+/* { dg-error "near init" "near" { target *-*-* } 38 } */
int a5[2] = { [0 ... 2] = 0 }; /* { dg-error "error: array index range in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 40 } */
+/* { dg-error "near init" "near" { target *-*-* } 40 } */
int a6[2] = { [-1 ... 1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 42 } */
+/* { dg-error "near init" "near" { target *-*-* } 42 } */
int a7[] = { [-1 ... 1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 44 } */
+/* { dg-error "near init" "near" { target *-*-* } 44 } */
diff --git a/gcc/testsuite/gcc.dg/init-bad-2.c b/gcc/testsuite/gcc.dg/init-bad-2.c
index 794cc412db3..23387e500f0 100644
--- a/gcc/testsuite/gcc.dg/init-bad-2.c
+++ b/gcc/testsuite/gcc.dg/init-bad-2.c
@@ -11,8 +11,8 @@ void h(a)
int a = 1; /* { dg-error "error: parameter 'a' is initialized" } */
{
struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */
- /* { dg-warning "excess elements|near init" "" { target *-*-* } 13 } */
- /* { dg-error "storage size" "" { target *-*-* } 13 } */
+ /* { dg-warning "excess elements|near init" "near" { target *-*-* } 13 } */
+ /* { dg-error "storage size" "size" { target *-*-* } 13 } */
}
char s[1] = "x";
@@ -20,14 +20,14 @@ char s1[1] = { "x" };
char t[1] = "xy"; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
char t1[1] = { "xy" }; /* { dg-warning "warning: initializer-string for array of chars is too long" } */
char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 22 } */
+/* { dg-error "near init" "near" { target *-*-* } 22 } */
int j = { 1 };
int k = { 1, 2 }; /* { dg-warning "warning: excess elements in scalar initializer" } */
-/* { dg-warning "near init" "" { target *-*-* } 27 } */
+/* { dg-warning "near init" "near" { target *-*-* } 27 } */
int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 30 } */
+/* { dg-error "near init" "near" { target *-*-* } 30 } */
int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 32 } */
+/* { dg-error "near init" "near" { target *-*-* } 32 } */
diff --git a/gcc/testsuite/gcc.dg/init-bad-3.c b/gcc/testsuite/gcc.dg/init-bad-3.c
index aed3d35a49f..bb149823dc1 100644
--- a/gcc/testsuite/gcc.dg/init-bad-3.c
+++ b/gcc/testsuite/gcc.dg/init-bad-3.c
@@ -11,8 +11,8 @@ void h(a)
int a = 1; /* { dg-error "error: parameter 'a' is initialized" } */
{
struct s x = { 0 }; /* { dg-error "error: variable 'x' has initializer but incomplete type" } */
- /* { dg-error "excess elements|near init" "" { target *-*-* } 13 } */
- /* { dg-error "storage size" "" { target *-*-* } 13 } */
+ /* { dg-error "excess elements|near init" "near" { target *-*-* } 13 } */
+ /* { dg-error "storage size" "size" { target *-*-* } 13 } */
}
char s[1] = "x";
@@ -20,14 +20,14 @@ char s1[1] = { "x" };
char t[1] = "xy"; /* { dg-error "error: initializer-string for array of chars is too long" } */
char t1[1] = { "xy" }; /* { dg-error "error: initializer-string for array of chars is too long" } */
char u[1] = { "x", "x" }; /* { dg-error "error: excess elements in char array initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 22 } */
+/* { dg-error "near init" "near" { target *-*-* } 22 } */
int j = { 1 };
int k = { 1, 2 }; /* { dg-error "error: excess elements in scalar initializer" } */
-/* { dg-error "near init" "" { target *-*-* } 27 } */
+/* { dg-error "near init" "near" { target *-*-* } 27 } */
int a1[1] = { [1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 30 } */
+/* { dg-error "near init" "near" { target *-*-* } 30 } */
int a2[1] = { [-1] = 0 }; /* { dg-error "error: array index in initializer exceeds array bounds" } */
-/* { dg-error "near init" "" { target *-*-* } 32 } */
+/* { dg-error "near init" "near" { target *-*-* } 32 } */
diff --git a/gcc/testsuite/gcc.dg/loop-3.c b/gcc/testsuite/gcc.dg/loop-3.c
index 3cc6643e15d..f7ceaddb899 100644
--- a/gcc/testsuite/gcc.dg/loop-3.c
+++ b/gcc/testsuite/gcc.dg/loop-3.c
@@ -3,7 +3,7 @@
/* { dg-do compile } */
/* { dg-options "-O3" } */
-/* { dg-options "-O3 -mtune=i386" { target i?86-*-* } } */
+/* { dg-options "-O3 -mtune=i386" { target { i?86-*-* && ilp32 } } } */
#if defined(STACK_SIZE) && (STACK_SIZE < 65536)
# define BYTEMEM_SIZE 10000L
diff --git a/gcc/testsuite/gcc.dg/lvalue-cast-1.c b/gcc/testsuite/gcc.dg/lvalue-cast-1.c
new file mode 100644
index 00000000000..e434baf6e7e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lvalue-cast-1.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file non lvalue assign */
+/* { dg-do compile } */
+/* { dg-options "-fnon-lvalue-assign -faltivec" } */
+
+int foo(void) {
+
+ char *p;
+ long l;
+ short s;
+ vector unsigned int vui;
+ volatile int *pvi;
+
+ (long *)p = &l; /* { dg-warning "target of assignment not really an lvalue" } */
+ ((long *)p)++; /* { dg-warning "target of assignment not really an lvalue" } */
+ (short)l = 2; /* { dg-error "invalid lvalue" } */
+ (long)s = 3; /* { dg-error "invalid lvalue" } */
+ (int)pvi = 4; /* { dg-warning "target of assignment not really an lvalue" } */
+ (int)pvi &= 5; /* { dg-warning "target of assignment not really an lvalue" } */
+
+ (vector float)vui = (vector float)(1.0, 2.0, 3.0, 4.0); /* { dg-warning "target of assignment not really an lvalue" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lvalue-cast-2.c b/gcc/testsuite/gcc.dg/lvalue-cast-2.c
new file mode 100644
index 00000000000..bfd2e29e52c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lvalue-cast-2.c
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file non lvalue assign */
+/* Allow lvalue casts in conjunction with '&'. */
+/* { dg-do compile } */
+/* { dg-options "-fnon-lvalue-assign" } */
+
+int foo (void **ptr) {
+ return 1;
+}
+
+int bar (void) {
+ char *string;
+
+ return foo ((void **)&((char *)string)); /* { dg-warning "argument to .&. not really an lvalue" } */
+}
diff --git a/gcc/testsuite/gcc.dg/lvalue-cond-1.c b/gcc/testsuite/gcc.dg/lvalue-cond-1.c
new file mode 100644
index 00000000000..9f48adbdfe2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lvalue-cond-1.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file non lvalue assign */
+/* Allow assignments to conditional expressions, as long as the second and third
+ operands are already lvalues. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-options "-fnon-lvalue-assign" } */
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+int g1 = 3, g2 = 5;
+
+void assign_val1 (int which, int value) {
+ (which ? g1 : g2) = value; /* { dg-warning "target of assignment not really an lvalue" } */
+}
+
+void assign_val2 (int which) {
+ (which ? g1 : g2)++; /* { dg-warning "target of assignment not really an lvalue" } */
+}
+
+int main(void) {
+ assign_val1 (0, 15);
+ if (g1 != 3 || g2 != 15)
+ abort ();
+
+ assign_val2 (1);
+ if (g1 != 4 || g2 != 15)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lvalue1.c b/gcc/testsuite/gcc.dg/lvalue1.c
index 7e21608ab36..36fb9d8e0a5 100644
--- a/gcc/testsuite/gcc.dg/lvalue1.c
+++ b/gcc/testsuite/gcc.dg/lvalue1.c
@@ -1,5 +1,7 @@
/* PR c/5225 */
/* { dg-do compile } */
+/* APPLE LOCAL non lvalue assign */
+/* { dg-options "-fno-non-lvalue-assign" } */
int main()
{
diff --git a/gcc/testsuite/gcc.dg/m-un-2.c b/gcc/testsuite/gcc.dg/m-un-2.c
index d957f868405..0d280bb5793 100644
--- a/gcc/testsuite/gcc.dg/m-un-2.c
+++ b/gcc/testsuite/gcc.dg/m-un-2.c
@@ -16,7 +16,7 @@ struct vtable mtable = {
malloc,
free
}; /* { dg-warning "missing initializer" "warning regression" { target *-*-* } {18} } */
- /* { dg-warning "initialization for 'mtable._realloc'" "warning regression" { target *-*-* } {18} } */
+ /* { dg-warning "initialization for 'mtable._realloc'" "warning regression 2" { target *-*-* } {18} } */
/* With designated initializers, we assume you meant to leave out the
initialization of any blank fields. */
diff --git a/gcc/testsuite/gcc.dg/mac68k-pragma-unsup-1.c b/gcc/testsuite/gcc.dg/mac68k-pragma-unsup-1.c
new file mode 100644
index 00000000000..2250d0edfed
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/mac68k-pragma-unsup-1.c
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file 64-bit mainline */
+/* 64-bit Darwin officially doesn't like the mac68k alignment pragma. */
+
+/* { dg-do compile { target powerpc*-*-darwin[89]* } } */
+/* { dg-options "-m64" } */
+
+#pragma options align=mac68k /* { dg-warning "mac68k alignment pragma is deprecated for 64-bit Darwin" } */
+
+#pragma options align=reset /* this shouldn't error out */
+
+
+
diff --git a/gcc/testsuite/gcc.dg/old-style-then-proto-1.c b/gcc/testsuite/gcc.dg/old-style-then-proto-1.c
new file mode 100644
index 00000000000..abe02d06378
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/old-style-then-proto-1.c
@@ -0,0 +1,44 @@
+/* Test for old-style definition followed by prototype declaration.
+ Mismatched qualifiers used to be wrongly forbidden. */
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void f1() {}
+void f1(void); /* { dg-warning "warning: prototype for 'f1' follows non-prototype definition" } */
+
+void f2() {} /* { dg-error "error: previous definition of 'f2' was here" } */
+void f2(int); /* { dg-error "error: prototype for 'f2' declares more arguments than previous old-style definition" } */
+
+void f3(a) int a; {} /* { dg-error "error: previous definition of 'f3' was here" } */
+void f3(void); /* { dg-error "error: prototype for 'f3' declares fewer arguments than previous old-style definition" } */
+
+void f4(a) int a; {}
+void f4(int); /* { dg-warning "warning: prototype for 'f4' follows non-prototype definition" } */
+
+void f5(a) int a; {} /* { dg-error "error: previous definition of 'f5' was here" } */
+void f5(int, int); /* { dg-error "error: prototype for 'f5' declares more arguments than previous old-style definition" } */
+
+void f6(a) int a; {} /* { dg-error "error: previous definition of 'f6' was here" } */
+void f6(int, ...); /* { dg-error "error: conflicting types for 'f6'" } */
+
+void f7(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f7' was here" } */
+void f7(int); /* { dg-error "error: prototype for 'f7' declares fewer arguments than previous old-style definition" } */
+
+void f8(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f8' was here" } */
+void f8(int, ...); /* { dg-error "error: conflicting types for 'f8'" } */
+
+void f9(a, b) int a, b; {}
+void f9(int, int); /* { dg-warning "warning: prototype for 'f9' follows non-prototype definition" } */
+
+void f10(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f10' was here" } */
+void f10(int, long); /* { dg-error "error: prototype for 'f10' declares argument 2 with incompatible type" } */
+
+void f11(a, b) int a, b; {} /* { dg-error "error: previous definition of 'f11' was here" } */
+void f11(long, int); /* { dg-error "error: prototype for 'f11' declares argument 1 with incompatible type" } */
+
+void f12(a, b) const int a; volatile int b; {}
+void f12(volatile int, const int); /* { dg-warning "warning: prototype for 'f12' follows non-prototype definition" } */
+
+void f13(a) const int a[2][2]; {} /* { dg-error "error: previous definition of 'f13' was here" } */
+void f13(volatile int [2][2]); /* { dg-error "error: prototype for 'f13' declares argument 1 with incompatible type" } */
diff --git a/gcc/testsuite/gcc.dg/pack-test-1.c b/gcc/testsuite/gcc.dg/pack-test-1.c
index 4d54647918e..a365b245f9b 100644
--- a/gcc/testsuite/gcc.dg/pack-test-1.c
+++ b/gcc/testsuite/gcc.dg/pack-test-1.c
@@ -1,7 +1,8 @@
/* Test semantics of #pragma pack.
Contributed by Mike Coleman <mcoleman2@kc.rr.com> */
-/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */
+/* APPLE LOCAL Macintosh alignment 2002-1-22 ff */
+/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* *-*-darwin* } } */
/* We only test the alignment of char, short, and int, because these
are the only ones that are pretty certain to be the same across
diff --git a/gcc/testsuite/gcc.dg/parm-mismatch-1.c b/gcc/testsuite/gcc.dg/parm-mismatch-1.c
index 59d9447b2e0..6b82b7be1b2 100644
--- a/gcc/testsuite/gcc.dg/parm-mismatch-1.c
+++ b/gcc/testsuite/gcc.dg/parm-mismatch-1.c
@@ -6,13 +6,13 @@
void f0(); /* { dg-error "error: previous declaration of 'f0' was here" } */
void f0(int, ...); /* { dg-error "error: conflicting types for 'f0'" } */
-/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "" { target *-*-* } 8 } */
+/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 8 } */
void f1(int, ...); /* { dg-error "error: previous declaration of 'f1' was here" } */
void f1(); /* { dg-error "error: conflicting types for 'f1'" } */
-/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "" { target *-*-* } 11 } */
+/* { dg-error "note: a parameter list with an ellipsis can't match an empty parameter name list declaration" "note" { target *-*-* } 11 } */
void f2(); /* { dg-error "error: previous declaration of 'f2' was here" } */
void f2(char); /* { dg-error "error: conflicting types for 'f2'" } */
-/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "" { target *-*-* } 14 } */
+/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 14 } */
void f3(char); /* { dg-error "error: previous declaration of 'f3' was here" } */
void f3(); /* { dg-error "error: conflicting types for 'f3'" } */
-/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "" { target *-*-* } 17 } */
+/* { dg-error "note: an argument type that has a default promotion can't match an empty parameter name list declaration" "note" { target *-*-* } 17 } */
diff --git a/gcc/testsuite/gcc.dg/pch/apple-altivec-1.c b/gcc/testsuite/gcc.dg/pch/apple-altivec-1.c
new file mode 100644
index 00000000000..5f2e93f365e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pch/apple-altivec-1.c
@@ -0,0 +1,126 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc-*-darwin* } } */
+/* { dg-options "-faltivec -I." } */
+
+#include "apple-altivec-1.h"
+
+/* Test for correct handling of AltiVec constants passed
+ through '...' (va_arg). */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define CHECK_INVARIANT(expr) \
+ if (!(expr)) { \
+ printf ("ASSERT FAILED: %d: %s\n", __LINE__, #expr); \
+ abort (); \
+ }
+
+struct foo { int x; int y; };
+struct vfoo { int x; __vector signed int v; int y; };
+union u { __vector signed int v; signed int i[4]; };
+
+struct foo x_g = { 3, 4};
+struct vfoo vx_g = { 10, (vector signed int)(11, 12, 13, 14), 15 };
+__vector signed int v_g = (vector signed int) (22, 23, 24, 25);
+struct vfoo vx2_g = { 30, (vector signed int)(31, 32, 33, 34), 35 };
+__vector signed int v2_g = (vector signed int)(40, 41, 42, 43);
+int i_1 = 99, i_2 = 33;
+double d_2 = 1.5, d_3 = 1.75;
+long double ld_1 = 1.25;
+
+void bar (int i, ... )
+{
+ struct foo xi;
+ double d;
+ long double ld;
+ float f;
+ char c;
+ short s;
+ va_list ap;
+ va_start(ap, i);
+ xi = va_arg(ap, struct foo);
+ s = (short)va_arg(ap, int);
+ f = (float)va_arg(ap, double);
+ ld = va_arg(ap, long double);
+ c = (char)va_arg(ap, int);
+ d = va_arg(ap, double);
+ va_end(ap);
+
+ CHECK_INVARIANT (xi.x == x_g.x && xi.y == x_g.y);
+ CHECK_INVARIANT (s == (short)i_2);
+ CHECK_INVARIANT (f == (float)d_2);
+ CHECK_INVARIANT (ld == ld_1);
+ CHECK_INVARIANT (c == (char)i_1);
+ CHECK_INVARIANT (d == d_3);
+}
+
+void baz (int i, ... )
+{
+ struct vfoo vx, vx2;
+ __vector signed int v_i, v2_i;
+ int j, k, l;
+ va_list ap;
+ va_start(ap, i);
+ v_i = va_arg(ap, __vector signed int);
+ j = va_arg(ap, int);
+ vx = va_arg(ap, struct vfoo);
+ k = va_arg(ap, int);
+ v2_i = va_arg(ap, __vector signed int);
+ l = va_arg(ap, int);
+ vx2 = va_arg(ap, struct vfoo);
+ va_end(ap);
+
+ CHECK_INVARIANT (vec_all_eq (v_i, v_g));
+ CHECK_INVARIANT (j == i_1);
+ CHECK_INVARIANT (vx.x == vx_g.x && vec_all_eq(vx.v, vx_g.v) && vx.y == vx_g.y);
+ CHECK_INVARIANT (k == i_1);
+ CHECK_INVARIANT (vec_all_eq (v2_i, v2_g));
+ CHECK_INVARIANT (l == i_1);
+ CHECK_INVARIANT (vx2.x == vx2_g.x && vec_all_eq(vx2.v, vx2_g.v) && vx2.y == vx2_g.y);
+}
+
+void quux (int i, ... )
+{
+ __vector signed int v_i, v2_i;
+ union u vi, v2i;
+ va_list ap;
+ va_start(ap, i);
+ v_i = va_arg(ap, __vector signed int);
+ v2_i = va_arg(ap, __vector signed int);
+ va_end(ap);
+ vi.v = v_i;
+ v2i.v = v2_i;
+
+ CHECK_INVARIANT (vec_all_eq (v_i, v_g));
+ CHECK_INVARIANT (vec_all_eq (v2_i, v_g));
+ CHECK_INVARIANT (vec_all_eq (vi.v, v_g));
+ CHECK_INVARIANT (vec_all_eq (v2i.v, v_g));
+}
+
+void baz2 (int i, ... )
+{
+ struct vfoo vx;
+ union u vxi;
+ va_list ap;
+ va_start(ap, i);
+ vx = va_arg(ap, struct vfoo);
+ va_end(ap);
+ vxi.v = vx.v;
+
+ CHECK_INVARIANT (vx.x == vx_g.x && vec_all_eq(vx.v, vx_g.v) && vx.y == vx_g.y);
+ CHECK_INVARIANT (vec_all_eq (vxi.v, vx_g.v));
+}
+
+int main(void)
+{
+ CHECK_INVARIANT (sizeof(struct foo) == 8 && sizeof(struct vfoo) == 48);
+
+ bar(i_1, x_g, (short)i_2, (float)d_2, ld_1, (char)i_1, d_3);
+ baz(i_1, v_g, i_1, vx_g, i_1, v2_g, i_1, vx2_g);
+ quux(i_1, v_g, v_g);
+ baz2(i_1, vx_g);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pch/apple-altivec-1.hs b/gcc/testsuite/gcc.dg/pch/apple-altivec-1.hs
new file mode 100644
index 00000000000..156bdf74eba
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pch/apple-altivec-1.hs
@@ -0,0 +1,2 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-options "-faltivec" } */
diff --git a/gcc/testsuite/gcc.dg/pch/faltivec-1.c b/gcc/testsuite/gcc.dg/pch/faltivec-1.c
new file mode 100644
index 00000000000..5824d4155cc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pch/faltivec-1.c
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-do compile { target powerpc-*-darwin* } } */
+/* { dg-options "-faltivec -I. -mcpu=G5" } */
+
+#include "faltivec-1.h"
+/* { dg-error "No such file or directory" "" { target *-*-* } 5 } */
+/* { dg-error "one or more PCH files were found" "" { target *-*-* } 5 } */
+/* { dg-error "use -Winvalid-pch for more information" "" { target *-*-* } 5 } */
+
+/* Test for correct PCH validation of -faltivec. */
+void foo()
+{
+ const vector signed short vconst = (vector signed short) (0,0,0,0,0,0,0,0);
+ const vector signed short vconst2 = vec_splat(vconst, 0);
+ bar();
+}
+
diff --git a/gcc/testsuite/gcc.dg/pch/faltivec-1.hs b/gcc/testsuite/gcc.dg/pch/faltivec-1.hs
new file mode 100644
index 00000000000..c24c35cefae
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pch/faltivec-1.hs
@@ -0,0 +1,3 @@
+/* APPLE LOCAL file AltiVec */
+/* { dg-options " -mcpu=G5" } */
+extern void bar();
diff --git a/gcc/testsuite/gcc.dg/pch/pch.exp b/gcc/testsuite/gcc.dg/pch/pch.exp
index 79fd9e77139..7f6334efbce 100644
--- a/gcc/testsuite/gcc.dg/pch/pch.exp
+++ b/gcc/testsuite/gcc.dg/pch/pch.exp
@@ -26,6 +26,29 @@ dg-init
set old_dg_do_what_default "${dg-do-what-default}"
+# APPLE LOCAL begin
+# Test MACOSX_DEPLOYMENT_TARGET
+set macosx_deployment_target env(MACOSX_DEPLOYMENT_TARGET)
+setenv MACOSX_DEPLOYMENT_TARGET 10.2
+set test "cfstring-1.c"
+set f [open $test w]
+set v 0
+puts $f "#include \"cfstring-1.h\""
+puts $f "/* { dg-options \"-I./ -Winvalid-pch -save-temps\" } */"
+puts $f "void foo\(\) { x = 0; }"
+puts $f ""
+close $f
+set testh "cfstring-1.hs"
+set f [open $testh w]
+puts $f "int x;"
+puts $f ""
+close $f
+dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h"
+set MACOSX_DEPLOYMENT_TARGET $macosx_deployment_target
+file delete $test
+file delete $testh
+# APPLE LOCAL end
+
# Main loop.
foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
global torture_without_loops
diff --git a/gcc/testsuite/gcc.dg/pr12092-1.c b/gcc/testsuite/gcc.dg/pr12092-1.c
index 8f38a4a7f46..1b29452881f 100644
--- a/gcc/testsuite/gcc.dg/pr12092-1.c
+++ b/gcc/testsuite/gcc.dg/pr12092-1.c
@@ -1,6 +1,7 @@
/* PR rtl-optimization/12092 */
/* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */
/* { dg-do compile { target i?86-*-* } } */
+/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2 -mtune=i486 -march=pentium4 -fprefetch-loop-arrays" } */
void DecodeAC(int index,int *matrix)
diff --git a/gcc/testsuite/gcc.dg/pr18628.c b/gcc/testsuite/gcc.dg/pr18628.c
new file mode 100644
index 00000000000..d365075b729
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr18628.c
@@ -0,0 +1,31 @@
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+
+/* PR middle-end/18628 exposed a problem in which cse folded a load
+ from a jump table into the label that was the target of the branch.
+ Unfortunately, the indirect jump was moved to a different basic
+ block, and the LABEL_REF copied to the register wasn't enough to
+ keep the cfg from optimizing the otherwise-unused label away. So
+ we ended up with a dangling reference to the label. */
+
+int i;
+
+int main()
+{
+ for (;;)
+ {
+ switch (i)
+ {
+ case 0:
+ case 1:
+ return 1;
+
+ case 2:
+ case 3:
+ return 0;
+
+ case 5:
+ --i;
+ }
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/pr19345.c b/gcc/testsuite/gcc.dg/pr19345.c
new file mode 100644
index 00000000000..40c6de4d836
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr19345.c
@@ -0,0 +1,12 @@
+/* We shouldn't crash trying to produce the inlined structure type die debug info. */
+/* { dg-do compile } */
+/* { dg-options "-O1 -g" } */
+inline void bar(char a[], unsigned int l)
+{
+ asm volatile ("" :: "m" ( *(struct {char x[l]; } *)a));
+}
+
+void foo(void)
+{
+ bar (0, 0);
+}
diff --git a/gcc/testsuite/gcc.dg/pr19967.c b/gcc/testsuite/gcc.dg/pr19967.c
new file mode 100644
index 00000000000..85afeafe285
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr19967.c
@@ -0,0 +1,26 @@
+/* PR middle-end/19967
+ These functions mentioned below are supposed to return char *.
+ However, fold_builtin_... had bugs that caused the return types to
+ be const char *. */
+
+/* { dg-do compile } */
+/* { dg-options "-pedantic" } */
+
+char *strchr(const char *, int);
+char *strrchr(const char *, int);
+char *index(const char *, int);
+char *rindex(const char *, int);
+char *strpbrk(const char *, const char *);
+char *strstr(const char *, const char *);
+char *p;
+
+void
+f (void)
+{
+ p = strchr(__func__, 'f');
+ p = strrchr(__func__, 'f');
+ p = index(__func__, 'f');
+ p = rindex(__func__, 'f');
+ p = strpbrk(__func__, "f");
+ p = strstr(__func__, "f");
+}
diff --git a/gcc/testsuite/gcc.dg/pr20017.c b/gcc/testsuite/gcc.dg/pr20017.c
new file mode 100644
index 00000000000..16bd72b315d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20017.c
@@ -0,0 +1,41 @@
+/* PR rtl-optimization/20017
+
+ After CSE/GCSE folds a switch statement to an unconditional jump,
+ cfg_cleanup did not remove a dead jump table, confusing the CFG
+ layout code later on. */
+
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+/* { dg-options "-O1 -march=i386" { target { i?86-*-* && ilp32 } } } */
+
+int
+foo (int *buf, int *p)
+{
+ int result;
+ const int *tmp;
+
+ if (*buf)
+ return 1;
+
+ result = 2;
+ *buf = 2;
+ tmp = buf;
+ switch (*tmp)
+ {
+ case 3:
+ case 4:
+ case 6:
+ case 14:
+ return 1;
+
+ case 0:
+ result = *p;
+
+ /* Fall through. */
+ default:
+ if (result)
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr20054.c b/gcc/testsuite/gcc.dg/pr20054.c
new file mode 100644
index 00000000000..292b856d014
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20054.c
@@ -0,0 +1,23 @@
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -fno-strict-aliasing" } */
+
+
+unsigned int *foo (void);
+
+char *
+bar (double *d)
+{
+ return (char *) (d + 1) - sizeof (unsigned int);
+}
+
+char
+baz (double x)
+{
+ unsigned int h = *foo ();
+ unsigned int l = *(unsigned int *) bar (&x);
+
+ return (h & ~0x80000000L) == 0x7FF00000 && l == 0;
+}
+
+
diff --git a/gcc/testsuite/gcc.dg/pr20100.c b/gcc/testsuite/gcc.dg/pr20100.c
new file mode 100644
index 00000000000..988fbda6429
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20100.c
@@ -0,0 +1,32 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+int func_pure (void) __attribute__ ((pure));
+void func_other (int);
+int global_int;
+void abort ();
+void func_other(int a)
+{
+ if (a != global_int)
+ abort ();
+ global_int++;
+}
+
+int func_pure(void)
+{
+ return global_int;
+}
+
+int
+func_loop (int arg)
+{
+ // global_int ++;
+ while (arg--)
+ func_other (func_pure ());
+}
+
+int main(void)
+{
+ func_loop(10);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr20115-1.c b/gcc/testsuite/gcc.dg/pr20115-1.c
new file mode 100644
index 00000000000..d1c4066729f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20115-1.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-dom1" } */
+
+extern int foo (void) __attribute__((pure));
+
+int bar()
+{
+ int a = foo ();
+ a += foo ();
+ return a;
+}
+
+/* Check that we only have one call to foo. */
+/* { dg-final { scan-tree-dump-times "foo" 1 "dom1" } } */
diff --git a/gcc/testsuite/gcc.dg/pr20115.c b/gcc/testsuite/gcc.dg/pr20115.c
new file mode 100644
index 00000000000..cea4b486854
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20115.c
@@ -0,0 +1,28 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+int func_pure (void);
+void func_other (int);
+int global_int;
+int func_pure (void) { return global_int; }
+void func_other (int a)
+{
+ global_int = a + 1;
+}
+int f(void)
+{
+ int a;
+ a = func_pure();
+ func_other (a);
+ a = func_pure (); // We were removing this function call
+ return a;
+}
+void abort (void);
+
+int main(void)
+{
+ global_int = 10;
+ if (f() != 11)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/pr20204.c b/gcc/testsuite/gcc.dg/pr20204.c
new file mode 100644
index 00000000000..ad85af5baa3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20204.c
@@ -0,0 +1,34 @@
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O2" } */
+
+void *x (void *pdst, const void *psrc, unsigned int pn)
+{
+ register void *return_dst = pdst;
+ register unsigned char *dst = pdst;
+ register unsigned const char *src = psrc;
+ register int n __asm__ ("ebx") = pn;
+
+ if (src < dst && dst < src + n)
+ {
+ src += n;
+ dst += n;
+ while (n--)
+ *--dst = *--src;
+ return return_dst;
+ }
+
+ while (n >= 16) n--;
+
+ return return_dst;
+}
+extern void abort ();
+extern void exit (int);
+char xx[30] = "abc";
+int main (void)
+{
+ char yy[30] = "aab";
+
+ if (x (xx + 1, xx, 2) != xx + 1 || memcmp (xx, yy, sizeof (yy)) != 0)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/pr20216.c b/gcc/testsuite/gcc.dg/pr20216.c
new file mode 100644
index 00000000000..8baba44a030
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20216.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file why is this local? */
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+static unsigned int *buffer;
+
+void FUNC (void)
+{
+ unsigned int *base;
+ int i, j;
+
+ for (i = 0; i < 4; i++)
+ for (j = 0; j < 1600000; j++)
+ *base++ = buffer[j];
+}
+
diff --git a/gcc/testsuite/gcc.dg/pr20368-1.c b/gcc/testsuite/gcc.dg/pr20368-1.c
new file mode 100644
index 00000000000..a88c7f803b7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20368-1.c
@@ -0,0 +1,12 @@
+/* ICE with -Wstrict-prototypes and typeof an undeclared function.
+ Bug 20368. */
+/* { dg-do compile } */
+/* { dg-options "-Wstrict-prototypes" } */
+
+extern __typeof (f) g; /* { dg-error "error: 'f' undeclared here \\(not in a function\\)" } */
+
+int
+f (x)
+ float x;
+{
+}
diff --git a/gcc/testsuite/gcc.dg/pr20368-2.c b/gcc/testsuite/gcc.dg/pr20368-2.c
new file mode 100644
index 00000000000..e3c8396233e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20368-2.c
@@ -0,0 +1,12 @@
+/* ICE with -Wstrict-prototypes and typeof an undeclared function.
+ Bug 20368. Test with -Wmissing-prototypes. */
+/* { dg-do compile } */
+/* { dg-options "-Wmissing-prototypes" } */
+
+extern __typeof (f) g; /* { dg-error "error: 'f' undeclared here \\(not in a function\\)" } */
+
+int
+f (x)
+ float x;
+{
+}
diff --git a/gcc/testsuite/gcc.dg/pr20368-3.c b/gcc/testsuite/gcc.dg/pr20368-3.c
new file mode 100644
index 00000000000..32095999676
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20368-3.c
@@ -0,0 +1,12 @@
+/* ICE with -Wstrict-prototypes and typeof an undeclared function.
+ Bug 20368. Test with -Wmissing-declarations. */
+/* { dg-do compile } */
+/* { dg-options "-Wmissing-declarations" } */
+
+extern __typeof (f) g; /* { dg-error "error: 'f' undeclared here \\(not in a function\\)" } */
+
+int
+f (x)
+ float x;
+{
+}
diff --git a/gcc/testsuite/gcc.dg/pr20927.c b/gcc/testsuite/gcc.dg/pr20927.c
new file mode 100644
index 00000000000..55cda33e8c4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20927.c
@@ -0,0 +1,23 @@
+/* This caused an ICE on s390x due to a reload inheritance bug. */
+
+/* { dg-do compile { target s390*-*-* } } */
+/* { dg-options "-O2" } */
+
+struct point { double x, y; };
+extern void use (struct point);
+
+void test (struct point *pc, struct point p1)
+{
+ struct point p0 = *pc;
+
+ if (p0.x == p1.x && p0.y == p1.y)
+ use (p0);
+
+ asm ("" : : : "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
+
+ p1.y -= p0.y;
+
+ use (p0);
+ use (p1);
+}
+
diff --git a/gcc/testsuite/gcc.dg/pragma-darwin.c b/gcc/testsuite/gcc.dg/pragma-darwin.c
index da70c8918a0..7d5d22bb667 100644
--- a/gcc/testsuite/gcc.dg/pragma-darwin.c
+++ b/gcc/testsuite/gcc.dg/pragma-darwin.c
@@ -14,20 +14,30 @@ extern void abort(void);
#pragma options 23 /* { dg-error "malformed '#pragma options'" } */
#pragma options align /* { dg-error "malformed '#pragma options'" } */
-#pragma options align mac68k /* { dg-error "malformed '#pragma options'" } */
+/* APPLE LOCAL 64-bit mainline */
+#pragma options align natural /* { dg-error "malformed '#pragma options'" } */
#pragma options align=45 /* { dg-error "malformed '#pragma options'" } */
#pragma options align=foo /* { dg-error "malformed '#pragma options align" } */
+/* APPLE LOCAL 64-bit mainline */
+#ifndef __LP64__
#pragma options align=mac68k
struct s1 { short f1; int f2; };
+/* APPLE LOCAL 64-bit mainline */
+#endif
#pragma options align=power
struct s2 { short f1; int f2; };
+/* APPLE LOCAL 64-bit mainline */
+#ifndef __LP64__
#pragma options align=mac68k
struct s3 { short f1; int f2; };
+/* APPLE LOCAL 64-bit mainline */
+#endif
#pragma options align=reset
struct s4 { short f1; int f2; };
-#pragma options align=mac68k foo /* { dg-warning "junk at end of '#pragma options'" } */
+/* APPLE LOCAL 64-bit mainline */
+#pragma options align=natural foo /* { dg-warning "junk at end of '#pragma options'" } */
/* Segment pragmas don't do anything anymore. */
@@ -39,12 +49,20 @@ main ()
int x, z; /* { dg-warning "unused variable" } */
#pragma unused (x, y)
+/* APPLE LOCAL 64-bit mainline */
+#ifndef __LP64__
if (sizeof (struct s1) != 6)
abort ();
+/* APPLE LOCAL 64-bit mainline */
+#endif
if (sizeof (struct s2) != 8)
abort ();
+/* APPLE LOCAL 64-bit mainline */
+#ifndef __LP64__
if (sizeof (struct s3) != 6)
abort ();
+/* APPLE LOCAL 64-bit mainline */
+#endif
if (sizeof (struct s4) != 8)
abort ();
return 0;
diff --git a/gcc/testsuite/gcc.dg/redecl-1.c b/gcc/testsuite/gcc.dg/redecl-1.c
index 14877667e91..75ce208457c 100644
--- a/gcc/testsuite/gcc.dg/redecl-1.c
+++ b/gcc/testsuite/gcc.dg/redecl-1.c
@@ -94,7 +94,7 @@ static int test7(int x)
void prime8(void)
{
test8(); /* { dg-warning "previous" "" } */
- /* { dg-warning "implicit" "" { target *-*-* } 96 } */
+ /* { dg-warning "implicit" "implicit" { target *-*-* } 96 } */
}
static int test8(int x)
diff --git a/gcc/testsuite/gcc.dg/short-compare-1.c b/gcc/testsuite/gcc.dg/short-compare-1.c
index 6a4e388d179..7ecca243a7c 100644
--- a/gcc/testsuite/gcc.dg/short-compare-1.c
+++ b/gcc/testsuite/gcc.dg/short-compare-1.c
@@ -3,7 +3,7 @@
/* { dg-do run } */
/* { dg-options "-O" } */
-/* { dg-options "-O -mtune=i686" { target i?86-*-* } } */
+/* { dg-options "-O -mtune=i686" { target { i?86-*-* && ilp32 } } } */
/* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */
extern void abort(void);
diff --git a/gcc/testsuite/gcc.dg/short-compare-2.c b/gcc/testsuite/gcc.dg/short-compare-2.c
index 1c5963c5a2f..736e1510e8d 100644
--- a/gcc/testsuite/gcc.dg/short-compare-2.c
+++ b/gcc/testsuite/gcc.dg/short-compare-2.c
@@ -4,7 +4,7 @@
/* { dg-do run } */
/* { dg-options "-O" } */
-/* { dg-options "-O -mtune=i686" { target i?86-*-* } } */
+/* { dg-options "-O -mtune=i686" { target { i?86-*-* && ilp32 } } } */
/* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */
extern void abort();
diff --git a/gcc/testsuite/gcc.dg/smod-1.c b/gcc/testsuite/gcc.dg/smod-1.c
index 268b43bd2ab..e75978af595 100644
--- a/gcc/testsuite/gcc.dg/smod-1.c
+++ b/gcc/testsuite/gcc.dg/smod-1.c
@@ -3,7 +3,7 @@
/* { dg-do run } */
/* { dg-options "-std=c99" } */
-/* { dg-options "-std=c99 -mtune=i486" { target i?86-*-* } } */
+/* { dg-options "-std=c99 -mtune=i486" { target { i?86-*-* && ilp32 } } } */
#include <limits.h>
diff --git a/gcc/testsuite/gcc.dg/sparc-reg-1.c b/gcc/testsuite/gcc.dg/sparc-reg-1.c
new file mode 100644
index 00000000000..860094299a1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sparc-reg-1.c
@@ -0,0 +1,11 @@
+/* PR middle-end/20263 */
+
+/* { dg-do assemble { target sparc64-*-* } } */
+/* { dg-options "" } */
+
+register void *tp __asm__("%g7");
+
+void set_tp(void)
+{
+ tp = 0;
+}
diff --git a/gcc/testsuite/gcc.dg/ss/one.c b/gcc/testsuite/gcc.dg/ss/one.c
new file mode 100644
index 00000000000..b75a8ebcd74
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ss/one.c
@@ -0,0 +1,17 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Test simple use of symbol repository.
+ Include file one.h is supplied as one.ssh in this directory,
+ so that ss.exp can pick it up as candidate for making
+ repository. */
+/* { dg-do assemble } */
+
+#include "one.h"
+int main ()
+{
+ struct x_y_point a;
+ a.x = 0;
+ a.y = 0;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/ss/one.ssh b/gcc/testsuite/gcc.dg/ss/one.ssh
new file mode 100644
index 00000000000..b35ec2d1ce8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ss/one.ssh
@@ -0,0 +1,11 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Test simple use of symbol repository.
+ Part of one.c test. */
+
+struct x_y_point
+{
+ int x;
+ int y;
+};
diff --git a/gcc/testsuite/gcc.dg/ss/one_part_2.c b/gcc/testsuite/gcc.dg/ss/one_part_2.c
new file mode 100644
index 00000000000..2d6f73f8379
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ss/one_part_2.c
@@ -0,0 +1,12 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Test simple use of symbol repository.
+ Include file one.h is supplied as one.ssh in this directory,
+ so that ss.exp can pick it up as candidate for making
+ repository. */
+/* { dg-do assemble } */
+#include "one.h"
+extern int foo ()
+{
+}
diff --git a/gcc/testsuite/gcc.dg/ss/ss-cmd1.c b/gcc/testsuite/gcc.dg/ss/ss-cmd1.c
new file mode 100644
index 00000000000..3fb08a5be80
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ss/ss-cmd1.c
@@ -0,0 +1,9 @@
+/* Copyright (C) 2005 Free Software Foundation.
+ Contributed by Devang Patel <dpatel@apple.com> */
+/* Test command line option -grepository */
+/* { dg-do compile } */
+/* { dg-options "-gfull -fsave-repository=ss-cmd1-ss.o" } */
+int main()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/ss/ss.exp b/gcc/testsuite/gcc.dg/ss/ss.exp
new file mode 100644
index 00000000000..eef1b489f15
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ss/ss.exp
@@ -0,0 +1,230 @@
+# Copyright (C) 2005 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 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.
+
+# GCC testsuite for symbol separation interaction,
+# that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# Initialize `dg'.
+dg-init
+
+# Get checksum (first field of BINCL and EXCL stab information
+proc get_checksum {input_file search_string} {
+ global RESULT nshort
+
+ # Regular expression to extract hexadecimal word
+ set hexexp {[0-9a-fA-F]+}
+
+ # Do nm on input_file and grep for search_string
+ set tmp [remote_exec host "nm -ap $input_file"]
+ set status [lindex $tmp 0];
+ set output [lindex $tmp 1];
+
+ if {$status != 0} {
+ fail "$nshort test checksum"
+ } else {
+ pass "$nshort test checksum"
+ }
+
+ regexp $hexexp $output RESULT;
+
+ # Return check sum
+ return $RESULT
+}
+
+set old_dg_do_what_default "${dg-do-what-default}"
+
+# Main loop.
+foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
+ global runtests torture_without_loops dg-do-what-default nshort
+
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $test] {
+ continue
+ }
+
+ # [file tail name] returns part of name after last /
+ set nshort "$subdir/[file tail $test]"
+ set short_bname "[file rootname [file tail $test]]"
+ set bname "[file rootname $test]"
+ set ss_exp_debug 0
+
+ # We don't try to use the loop-optimizing options, since they are highly
+ # unlikely to make any difference to CINFO.
+ foreach flags "[list {-gfull}]" {
+ verbose "Testing $nshort, $flags" 1
+
+ # Clean up
+ catch { file delete "$bname.h" }
+ catch { file delete "$bname.o" }
+ catch { file delete "$bname.h.o" }
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: various names"
+ puts "ss_exp_debug bname:"; puts $bname
+ puts "ss_exp_debug bname.ssh:"; puts $bname.ssh
+ puts "ss_exp_debug test:"; puts $test
+ puts "ss_exp_debug short_bname:"; puts $short_bname
+ }
+
+ # 1) compile foo.h to create foo.h.o
+ if { [ file exists "$bname.ssh" ] } {
+
+ # For the header files, the default is to make repository
+ set dg-do-what-default assemble
+
+ # Header files are supplied using .ssh extension, so that we can
+ # identify candidates for makeing symbol repository. Get header copy
+ # with .h here.
+ file copy -force "$bname.ssh" "$bname.h"
+ file copy -force "$bname.ssh" "$short_bname.h"
+
+ # Make repository
+ # This will create two output files $short_bname.h.o and PCH
+ dg-test -keep-output "$bname.h" $flags "-fsave-repository=$short_bname.h.o -x c-header"
+
+ if { [ file exists "$short_bname.o" ] } {
+ file rename -force "$short_bname.h.o" "$bname.h.o"
+
+ puts "ss_exp_debug short_bname:"; puts $bname.h.o; puts $bname.h;
+ # Do nm on $bname.h.o and grep for "BINCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT1
+ set RESULT1 [get_checksum $bname.h.o "BINCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT1"; puts $RESULT1
+ }
+
+ pass "$nshort $flags Make Repository"
+ } else {
+ set RESULT1 " "
+ fail "$nshort $flags Make Repository"
+ }
+
+ if { [ file exists "$bname.h.o" ] } {
+
+ # 2) compile foo.c to create foo.o
+ dg-test -keep-output $test $flags "-I. "
+ if { [ file exists "$short_bname.o" ] } {
+
+ # Do nm on $bname.o and grep for "EXCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT2
+ set RESULT2 [get_checksum $short_bname.o "EXCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT2"; puts $RESULT2
+ }
+
+ pass "$nshort $flags Use symbol repository"
+
+ } else {
+ set RESULT2 " "
+ fail "$nshort $flags Use symbol repository"
+ }
+
+
+ if { [ file exists "$bname.part_2.c" ] } {
+
+ # 3) compile foo_part_2.c to create foo_part_2.o
+ dg-test -keep-output "$bname_part_2.c" $flags "-I. -grepository"
+ if { [ file exists "$short_bname_part_2.o" ] } {
+
+ # Do nm on $bname_part_2.o and grep for "EXCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT3
+ set RESULT3 [get_checksum $short_bname_part_2.o "EXCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT3"; puts $RESULT3
+ }
+
+ pass "$nshort $flags Use symbol repository"
+
+ } else {
+ set RESULT3 " "
+ fail "$nshort $flags Use symbol repository"
+ }
+
+ # 4) Link foo.h.o and foo.o to create foo
+ set dg-do-what-default link
+ dg-test -keep-output "$bname.h.o" "$bname.o" "-o $short_bname.out"
+
+ # 5) do 'nm |grep ' on final assembler and save result in RES4
+ # Do nm on $bname.out and grep for "EXCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT4
+ set RESULT4 [get_checksum $short_bname.out "EXCL $bname.h"]
+
+ # Do nm on $bname.out and grep for "BINCL $bname.h"
+ # Extract dummy-checksum from the grep result and save it in RESULT5
+ set RESULT5 [get_checksum $short_bname.out "BINCL $bname.h"]
+
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT4"; puts $RESULT4
+ puts "ss_exp_debug: RESULT5"; puts $RESULT5
+ }
+
+ pass "$nshort $flags symbol separation: linking"
+
+ } else {
+
+ # If we are not testing second part then set values so that comparison test succeeds
+ set RESULT3 $RESULT2
+ set RESULT4 $RESULT2
+ set RESULT5 $RESULT2
+ if {$ss_exp_debug == 1} {
+ puts "ss_exp_debug: RESULT3"; puts $RESULT3
+ puts "ss_exp_debug: RESULT4"; puts $RESULT4
+ puts "ss_exp_debug: RESULT5"; puts $RESULT5
+ }
+ }
+
+ # 6) Compare RES1 and RES2 and RES3 and RES4
+ if { ( $RESULT1 == $RESULT2 )
+ && ( $RESULT1 == $RESULT3 )
+ && ( $RESULT1 == $RESULT4 ) } {
+ pass "$nshort $flags symbol separation valid use test"
+ } else {
+ fail "$nshort $flags symbol separation valid use test"
+ }
+ if { ( $RESULT1 == $RESULT5 ) } {
+ pass "$nshort $flags symbol separation link test"
+ } else {
+ fail "$nshort $flags symbol separation link test"
+ }
+ pass "$nshort $flags Make repository"
+ } else {
+ fail "$nshort $flags Make repository"
+ }
+ } else {
+
+ # Normal test
+ set dg-do-what-default compile
+ dg-test -keep-output $test $flags "-I."
+ }
+
+ }
+
+ # Clean up
+ catch { file delete "$bname.h" }
+ catch { file delete "$bname.o" }
+ catch { file delete "$bname.h.o" }
+}
+
+set dg-do-what-default "$old_dg_do_what_default"
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.dg/stabs-attrib-vect-darwin.c b/gcc/testsuite/gcc.dg/stabs-attrib-vect-darwin.c
new file mode 100644
index 00000000000..82aa4ada66f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/stabs-attrib-vect-darwin.c
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file mainline 2005-04-25 */
+/* Test Attribute Vector associated with vectory type stabs. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-gstabs -fno-eliminate-unused-debug-types -faltivec" } */
+
+int main ()
+{
+ vector int vi = { 6,7,8,9 };
+ return 0;
+}
+
+/* { dg-final { scan-assembler ".stabs.*vi\:\\(0,16\\)=\@V" } } */
diff --git a/gcc/testsuite/gcc.dg/stmt-expr-label-1.c b/gcc/testsuite/gcc.dg/stmt-expr-label-1.c
new file mode 100644
index 00000000000..1f52a313918
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/stmt-expr-label-1.c
@@ -0,0 +1,404 @@
+/* Test for labels in statement expressions: bugs 772 and 17913.
+ goto statements must not jump into statement expressions.
+
+ This tests all combinations of label and goto locations in a given
+ function. Each combination is tested twice, once with just that
+ label and goto and once with many others in order to exercise the
+ different code paths involved with excess labels. */
+
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void f0 (void) { goto a; a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa0 (void) { p0A:goto p0A; goto a; a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f1 (void) { goto a; ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa1 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f2 (void) { goto a; ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa2 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f3 (void) { goto a; ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa3 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f4 (void) { goto a; ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa4 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f5 (void) { goto a; ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa5 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f6 (void) { goto a; ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa6 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f7 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa7 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f8 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa8 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f9 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa9 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f10 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa10 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f11 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa11 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f12 (void) { goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa12 (void) { p0A:goto p0A; goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f13 (void) { a: goto a; ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa13 (void) { a: goto a; P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f14 (void) { a:({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa14 (void) { a:({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f15 (void) { ({ goto a; a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa15 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f16 (void) { ({ goto a; ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa16 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f17 (void) { ({ goto a; ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa17 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f18 (void) { ({ goto a; ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa18 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f19 (void) { ({ goto a; ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa19 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f20 (void) { ({ goto a; ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa20 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f21 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa21 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f22 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa22 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f23 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa23 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f24 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa24 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f25 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa25 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f26 (void) { ({ goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa26 (void) { P0A:goto P0A;({ p01A:goto p01A; goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f27 (void) { ({ a: goto a; ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa27 (void) { P0A:goto P0A;({ a: goto a; P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f28 (void) { a:({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa28 (void) { a:({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f29 (void) { ({ a:({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa29 (void) { P0A:goto P0A;({ a:({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f30 (void) { ({ ({ goto a; a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa30 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f31 (void) { ({ ({ goto a; 0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa31 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f32 (void) { ({ ({ goto a; 0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa32 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f33 (void) { ({ ({ goto a; 0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa33 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f34 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa34 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f35 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa35 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f36 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa36 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f37 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa37 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f38 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa38 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f39 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa39 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f40 (void) { ({ ({ goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa40 (void) { P0A:goto P0A;({ P01A:goto P01A;({p012A:goto p012A; goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f41 (void) { ({ ({a: goto a; 0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa41 (void) { P0A:goto P0A;({ P01A:goto P01A;({a: goto a; P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f42 (void) { a:({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa42 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f43 (void) { ({ a:({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa43 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f44 (void) { ({ ({a:0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa44 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f45 (void) { ({ ({0;}); goto a; a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa45 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f46 (void) { ({ ({0;}); goto a; ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa46 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f47 (void) { ({ ({0;}); goto a; ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa47 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f48 (void) { ({ ({0;}); goto a; ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa48 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f49 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa49 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f50 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa50 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f51 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa51 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f52 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa52 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f53 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa53 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f54 (void) { ({ ({0;}); goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa54 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); p01B:goto p01B; goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f55 (void) { ({ ({0;}); a: goto a; ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa55 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a: goto a; P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f56 (void) { a:({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa56 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f57 (void) { ({ a:({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa57 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f58 (void) { ({ ({a:0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa58 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f59 (void) { ({ ({0;}); a:({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa59 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f60 (void) { ({ ({0;}); ({ goto a; a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa60 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f61 (void) { ({ ({0;}); ({ goto a; 0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa61 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f62 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa62 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f63 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa63 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f64 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa64 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f65 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa65 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f66 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa66 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f67 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa67 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f68 (void) { ({ ({0;}); ({ goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa68 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({p013A:goto p013A; goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f69 (void) { ({ ({0;}); ({a: goto a; 0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa69 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a: goto a; P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f70 (void) { a:({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa70 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f71 (void) { ({ a:({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa71 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f72 (void) { ({ ({a:0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa72 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f73 (void) { ({ ({0;}); a:({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa73 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f74 (void) { ({ ({0;}); ({a:0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa74 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f75 (void) { ({ ({0;}); ({0;}); goto a; a:0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa75 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f76 (void) { ({ ({0;}); ({0;}); goto a; 0;}); a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa76 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f77 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa77 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f78 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa78 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f79 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa79 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f80 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa80 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f81 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa81 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f82 (void) { ({ ({0;}); ({0;}); goto a; 0;}); ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa82 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); p01C:goto p01C; goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f83 (void) { ({ ({0;}); ({0;}); a: goto a; 0;}); ({ ({0;}); ({0;}); 0;}); 0; }
+void fa83 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a: goto a; P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f84 (void) { a:({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; }
+void fa84 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f85 (void) { ({ a:({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa85 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f86 (void) { ({ ({a:0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa86 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f87 (void) { ({ ({0;}); a:({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa87 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f88 (void) { ({ ({0;}); ({a:0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa88 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f89 (void) { ({ ({0;}); ({0;}); a:0;}); goto a; ({ ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa89 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f90 (void) { ({ ({0;}); ({0;}); 0;}); goto a; a:({ ({0;}); ({0;}); 0;}); 0; }
+void fa90 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f91 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ a:({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa91 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f92 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa92 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f93 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); a:({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa93 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f94 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa94 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f95 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); a:0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa95 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f96 (void) { ({ ({0;}); ({0;}); 0;}); goto a; ({ ({0;}); ({0;}); 0;}); a:0; }
+void fa96 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); p0B:goto p0B; goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f97 (void) { ({ ({0;}); ({0;}); 0;}); a: goto a; ({ ({0;}); ({0;}); 0;}); 0; }
+void fa97 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a: goto a; P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f98 (void) { a:({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; }
+void fa98 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f99 (void) { ({ a:({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa99 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f100 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa100 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f101 (void) { ({ ({0;}); a:({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa101 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f102 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa102 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f103 (void) { ({ ({0;}); ({0;}); a:0;}); ({ goto a; ({0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa103 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f104 (void) { ({ ({0;}); ({0;}); 0;}); a:({ goto a; ({0;}); ({0;}); 0;}); 0; }
+void fa104 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f105 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; a:({0;}); ({0;}); 0;}); 0; }
+void fa105 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f106 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({a:0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa106 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f107 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); a:({0;}); 0;}); 0; }
+void fa107 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f108 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa108 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f109 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); a:0;}); 0; }
+void fa109 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f110 (void) { ({ ({0;}); ({0;}); 0;}); ({ goto a; ({0;}); ({0;}); 0;}); a:0; }
+void fa110 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ p02A:goto p02A; goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f111 (void) { ({ ({0;}); ({0;}); 0;}); ({ a: goto a; ({0;}); ({0;}); 0;}); 0; }
+void fa111 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a: goto a; P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f112 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; }
+void fa112 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f113 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa113 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f114 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa114 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f115 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa115 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f116 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa116 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f117 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa117 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f118 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({ goto a; 0;}); ({0;}); 0;}); 0; }
+void fa118 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f119 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({ goto a; 0;}); ({0;}); 0;}); 0; }
+void fa119 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f120 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; a:0;}); ({0;}); 0;}); 0; }
+void fa120 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f121 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); a:({0;}); 0;}); 0; }
+void fa121 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f122 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa122 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f123 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); a:0;}); 0; }
+void fa123 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f124 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({ goto a; 0;}); ({0;}); 0;}); a:0; }
+void fa124 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({p024A:goto p024A; goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f125 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a: goto a; 0;}); ({0;}); 0;}); 0; }
+void fa125 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a: goto a; P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f126 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; }
+void fa126 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f127 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa127 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f128 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa128 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f129 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa129 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f130 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa130 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f131 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa131 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f132 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); goto a; ({0;}); 0;}); 0; }
+void fa132 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f133 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); goto a; ({0;}); 0;}); 0; }
+void fa133 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f134 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); goto a; ({0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa134 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f135 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; a:({0;}); 0;}); 0; }
+void fa135 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f136 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({a:0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa136 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f137 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); a:0;}); 0; }
+void fa137 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f138 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); goto a; ({0;}); 0;}); a:0; }
+void fa138 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); p02B:goto p02B; goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f139 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a: goto a; ({0;}); 0;}); 0; }
+void fa139 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a: goto a; P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f140 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; }
+void fa140 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f141 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa141 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f142 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa142 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f143 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa143 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f144 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa144 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f145 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa145 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f146 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({ goto a; 0;}); 0;}); 0; }
+void fa146 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f147 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({ goto a; 0;}); 0;}); 0; }
+void fa147 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f148 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({ goto a; 0;}); 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa148 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f149 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({ goto a; 0;}); 0;}); 0; }
+void fa149 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f150 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; a:0;}); 0;}); 0; }
+void fa150 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f151 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); a:0;}); 0; }
+void fa151 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f152 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({ goto a; 0;}); 0;}); a:0; }
+void fa152 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({p025A:goto p025A; goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f153 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a: goto a; 0;}); 0;}); 0; }
+void fa153 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a: goto a; P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f154 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; }
+void fa154 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f155 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa155 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f156 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa156 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f157 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa157 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f158 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa158 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f159 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa159 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f160 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); goto a; 0;}); 0; }
+void fa160 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f161 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); goto a; 0;}); 0; }
+void fa161 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f162 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa162 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f163 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); goto a; 0;}); 0; }
+void fa163 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f164 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); goto a; 0;}); 0; } /* { dg-error "error: jump into statement expression" } */
+void fa164 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f165 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; a:0;}); 0; }
+void fa165 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; a:0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f166 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); goto a; 0;}); a:0; }
+void fa166 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); p02C:goto p02C; goto a; P02C:goto P02C;0;}); a:0;P0D:goto P0D; }
+void f167 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a: goto a; 0;}); 0; }
+void fa167 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a: goto a; P02C:goto P02C;0;}); P0C:goto P0C;0;P0D:goto P0D; }
+void f168 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; }
+void fa168 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; }
+void f169 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa169 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f170 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa170 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f171 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa171 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f172 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa172 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f173 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa173 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f174 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); goto a; 0; }
+void fa174 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; }
+void f175 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa175 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f176 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa176 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f177 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa177 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f178 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa178 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f179 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); goto a; 0; } /* { dg-error "error: jump into statement expression" } */
+void fa179 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); p0C:goto p0C; goto a; P0C:goto P0C;0;P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f180 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); goto a; a:0; }
+void fa180 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); p0C:goto p0C; goto a; a:0;P0D:goto P0D; }
+void f181 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a: goto a; 0; }
+void fa181 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a: goto a; P0C:goto P0C;0;P0D:goto P0D; }
+void f182 (void) { a:({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; }
+void fa182 (void) { a:({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; }
+void f183 (void) { ({ a:({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa183 (void) { P0A:goto P0A;({ a:({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f184 (void) { ({ ({a:0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa184 (void) { P0A:goto P0A;({ P01A:goto P01A;({a:0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f185 (void) { ({ ({0;}); a:({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa185 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); a:({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f186 (void) { ({ ({0;}); ({a:0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa186 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({a:0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f187 (void) { ({ ({0;}); ({0;}); a:0;}); ({ ({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa187 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); a:0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f188 (void) { ({ ({0;}); ({0;}); 0;}); a:({ ({0;}); ({0;}); 0;}); 0; goto a; }
+void fa188 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); a:({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; }
+void f189 (void) { ({ ({0;}); ({0;}); 0;}); ({ a:({0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa189 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ a:({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f190 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({a:0;}); ({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa190 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({a:0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f191 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); a:({0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa191 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); a:({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f192 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({a:0;}); 0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa192 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({a:0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f193 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); a:0;}); 0; goto a; } /* { dg-error "error: jump into statement expression" } */
+void fa193 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); a:0;}); P0C:goto P0C;0;p0D:goto p0D; goto a; P0D:goto P0D; } /* { dg-error "error: jump into statement expression" } */
+void f194 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); a:0; goto a; }
+void fa194 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); a:0;p0D:goto p0D; goto a; P0D:goto P0D; }
+void f195 (void) { ({ ({0;}); ({0;}); 0;}); ({ ({0;}); ({0;}); 0;}); 0;a: goto a; }
+void fa195 (void) { P0A:goto P0A;({ P01A:goto P01A;({P012A:goto P012A;0;}); P01B:goto P01B;({P013A:goto P013A;0;}); P01C:goto P01C;0;}); P0B:goto P0B;({ P02A:goto P02A;({P024A:goto P024A;0;}); P02B:goto P02B;({P025A:goto P025A;0;}); P02C:goto P02C;0;}); P0C:goto P0C;0;a: goto a; P0D:goto P0D; }
diff --git a/gcc/testsuite/gcc.dg/stmt-expr-label-2.c b/gcc/testsuite/gcc.dg/stmt-expr-label-2.c
new file mode 100644
index 00000000000..863d610545c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/stmt-expr-label-2.c
@@ -0,0 +1,27 @@
+/* Test for labels in statement expressions: bugs 772 and 17913.
+ switch statements must not jump into statement expressions. */
+
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void
+f (int a)
+{
+ switch (a)
+ {
+ case 0:
+ case 1:
+ ({
+ case 2: /* { dg-error "error: case label in statement expression not containing enclosing switch statement" } */
+ default: /* { dg-error "error: 'default' label in statement expression not containing enclosing switch statement" } */
+ switch (a)
+ {
+ case 3:
+ default:
+ ;
+ }
+ 0;
+ });
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/stmt-expr-label-3.c b/gcc/testsuite/gcc.dg/stmt-expr-label-3.c
new file mode 100644
index 00000000000..09258069522
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/stmt-expr-label-3.c
@@ -0,0 +1,8 @@
+/* Test for labels in statement expressions: bugs 772 and 17913.
+ Test the particular case of bug 17913. */
+
+/* Origin: Joseph Myers <joseph@codesourcery.com> */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+void f(void) { 1 ? 1 : ({ a : 1; 1; }); goto a; } /* { dg-error "error: jump into statement expression" } */
diff --git a/gcc/testsuite/gcc.dg/titype-1.c b/gcc/testsuite/gcc.dg/titype-1.c
index d9f9da90756..1d0c570dafa 100644
--- a/gcc/testsuite/gcc.dg/titype-1.c
+++ b/gcc/testsuite/gcc.dg/titype-1.c
@@ -1,7 +1,7 @@
/* { dg-do run } */
/* Not all platforms support TImode integers. */
-#if defined(__LP64__)
+#if defined(__LP64__) && !defined(__hppa__)
typedef int TItype __attribute__ ((mode (TI)));
#else
typedef long TItype;
diff --git a/gcc/testsuite/gcc.dg/torture/asm-subreg-1.c b/gcc/testsuite/gcc.dg/torture/asm-subreg-1.c
new file mode 100644
index 00000000000..2a539208529
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/asm-subreg-1.c
@@ -0,0 +1,14 @@
+/* PR middle-end/20491 */
+
+/* { dg-do compile } */
+
+/* Combine used to introduce invalid subregs for the asm input, and
+ we'd crash later on, when removing all subregs. */
+
+volatile unsigned short _const_32 [4] = {1,2,3,4};
+void
+evas_common_convert_yuv_420p_601_rgba()
+{
+ __asm__ __volatile__ ("" : : "X" (*_const_32));
+}
+
diff --git a/gcc/testsuite/gcc.dg/torture/badshift.c b/gcc/testsuite/gcc.dg/torture/badshift.c
new file mode 100644
index 00000000000..dec71cfa2d1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/badshift.c
@@ -0,0 +1,29 @@
+/* PR rtl-optimization/20532 */
+
+/* { dg-do run } */
+/* { dg-options "" } */
+/* { dg-options "-march=i386" { target { i?86-*-* && ilp32 } } } */
+
+/* We used to optimize the DImode shift-by-32 to zero because in combine
+ we turned:
+
+ (v << 31) + (v << 31)
+
+ into:
+
+ (v * (((HOST_WIDE_INT)1 << 31) + ((HOST_WIDE_INT)1 << 31)))
+
+ With a 32-bit HOST_WIDE_INT, the coefficient overflowed to zero. */
+
+unsigned long long int badshift(unsigned long long int v)
+{
+ return v << 31 << 1;
+}
+
+extern void abort ();
+
+int main() {
+ if (badshift (1) == 0)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c b/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c
index b8b970e5cb9..d3e97701f2b 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-noret-1.c
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
/* { dg-options "-multiply_defined suppress" { target powerpc-*-darwin* } } */
/* { dg-do link } */
+/* { dg-require-weak "" } */
extern void abort (void);
extern void exit (int);
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c b/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c
index c8c8609f62c..1103e3d8120 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-noret-2.c
@@ -3,6 +3,7 @@
<zack@codesourcery.com>. */
/* { dg-options "-multiply_defined suppress" { target powerpc-*-darwin* } } */
/* { dg-do link } */
+/* { dg-require-weak "" } */
extern void tabort (void);
extern void texit (void);
diff --git a/gcc/testsuite/gcc.dg/torture/pr19683-1.c b/gcc/testsuite/gcc.dg/torture/pr19683-1.c
new file mode 100644
index 00000000000..4015fb981e9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr19683-1.c
@@ -0,0 +1,42 @@
+/* From PR rtl-optimization/19683. On little-endian MIPS targets,
+ reload would incorrectly inherit the high part of the multiplication
+ result. */
+/* { dg-do run { target mips*-*-* } } */
+
+extern void abort (void);
+extern void exit (int);
+
+#define REPEAT10(X, Y) \
+ X(Y##0); X(Y##1); X(Y##2); X(Y##3); X(Y##4); \
+ X(Y##5); X(Y##6); X(Y##7); X(Y##8); X(Y##9)
+
+#define REPEAT30(X) REPEAT10 (X, 0); REPEAT10 (X, 1); REPEAT10 (X, 2)
+#define IN(X) unsigned int x##X = ptr[0]
+#define OUT(X) ptr[0] = x##X
+
+union u { unsigned long long ll; unsigned int i[2]; };
+
+unsigned int
+foo (volatile unsigned int *ptr)
+{
+ union u u;
+ int result;
+
+ u.ll = (unsigned long long) ptr[0] * ptr[0];
+ REPEAT30 (IN);
+ REPEAT30 (OUT);
+ asm ("#" : "=l" (result) : "l" (u.i[1]));
+ return result;
+}
+
+int
+main (void)
+{
+ unsigned int array[] = { 1000 * 1000 * 1000 };
+ union u u;
+
+ u.ll = (unsigned long long) array[0] * array[0];
+ if (foo (array) != u.i[1])
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr20314-1.c b/gcc/testsuite/gcc.dg/torture/pr20314-1.c
new file mode 100644
index 00000000000..8a69c2dcaf5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr20314-1.c
@@ -0,0 +1,56 @@
+/* PR inline-asm/20314 */
+/* { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* ia64-*-* } } */
+
+int
+f1 (void)
+{
+ int x = 4, y;
+ __asm__ volatile ("" : "+r,r" (x), "=r,r" (y)
+ : "%r,r" (x), "m,r" (8), "r,r" (2));
+ return x;
+}
+
+int
+f2 (void)
+{
+ int x = 4, y;
+ __asm__ volatile ("" : "=r,r" (x), "=r,r" (y)
+ : "%0,0" (x), "m,r" (8), "r,r" (2));
+ return x;
+}
+
+int
+f3 (void)
+{
+ int x = 4, y;
+ __asm__ volatile ("" : "+r,r" (x), "=r,r" (y)
+ : "%m,r" (8), "r,r" (2));
+ return x;
+}
+
+int
+f4 (void)
+{
+ int x = 4, y;
+ __asm__ volatile ("" : "+r" (x), "=r" (y)
+ : "r" (x), "r" (8), "r" (2));
+ return x;
+}
+
+int
+f5 (void)
+{
+ int x = 4, y;
+ __asm__ volatile ("" : "=r" (x), "=r" (y)
+ : "0" (x), "r" (8), "r" (2));
+ return x;
+}
+
+int
+f6 (void)
+{
+ int x = 4, y;
+ __asm__ volatile ("" : "+r" (x), "=r" (y)
+ : "r" (8), "r" (2));
+ return x;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr20314-2.c b/gcc/testsuite/gcc.dg/torture/pr20314-2.c
new file mode 100644
index 00000000000..ad1b8f9724a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr20314-2.c
@@ -0,0 +1,47 @@
+/* PR inline-asm/20314 */
+/* { dg-do compile { target { x86_64-*-* && lp64 } } } */
+/* { dg-do compile { target ia64-*-* powerpc*-*-* } } */
+
+int a, b, c, d, e, f, g, h, i, j, k, l;
+
+void
+f1 (void)
+{
+ __asm__ volatile (""
+ : [a] "+r" (a), [b] "+r" (b), [c] "+r" (c), [d] "+r" (d),
+ [e] "+r" (e), [f] "+r" (f), [g] "+r" (g), [h] "+r" (h),
+ [i] "+r" (i), [j] "+r" (j), [k] "+r" (k), [l] "+r" (l));
+}
+
+void
+f2 (void)
+{
+ __asm__ volatile (""
+ : [a] "+r,m" (a), [b] "+r,m" (b), [c] "+r,m" (c), [d] "+r,m" (d),
+ [e] "+r,m" (e), [f] "+r,m" (f), [g] "+r,m" (g), [h] "+r,m" (h),
+ [i] "+r,m" (i), [j] "+r,m" (j), [k] "+r,m" (k), [l] "+r,m" (l));
+}
+
+void
+f3 (void)
+{
+ __asm__ volatile (""
+ : [a] "=r" (a), [b] "=r" (b), [c] "=r" (c), [d] "=r" (d),
+ [e] "=r" (e), [f] "=r" (f), [g] "=r" (g), [h] "=r" (h),
+ [i] "=r" (i), [j] "=r" (j), [k] "=r" (k), [l] "=r" (l)
+ : "[a]" (a), "[b]" (b), "[c]" (c), "[d]" (d),
+ "[e]" (e), "[f]" (f), "[g]" (g), "[h]" (h),
+ "[i]" (i), "[j]" (j), "[k]" (k), "[l]" (l));
+}
+
+void
+f4 (void)
+{
+ __asm__ volatile (""
+ : [a] "=r,m" (a), [b] "=r,m" (b), [c] "=r,m" (c), [d] "=r,m" (d),
+ [e] "=r,m" (e), [f] "=r,m" (f), [g] "=r,m" (g), [h] "=r,m" (h),
+ [i] "=r,m" (i), [j] "=r,m" (j), [k] "=r,m" (k), [l] "=r,m" (l)
+ : "[a],m" (a), "[b],m" (b), "[c],m" (c), "[d],m" (d),
+ "[e],m" (e), "[f],m" (f), "[g],m" (g), "[h],m" (h),
+ "[i],m" (i), "[j],m" (j), "[k],m" (k), "[l],m" (l));
+}
diff --git a/gcc/testsuite/gcc.dg/torture/tree-loop-1.c b/gcc/testsuite/gcc.dg/torture/tree-loop-1.c
new file mode 100644
index 00000000000..1d38691780a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/tree-loop-1.c
@@ -0,0 +1,21 @@
+/* PR tree-optimization/20640 */
+
+/* After unrolling the loop, we'd turn some conditional branches into
+ unconditional ones, but branch redirection would fail to compute
+ the PHI args for the PHI nodes in the replacement edge
+ destination, so they'd remain NULL causing crashes later on. */
+
+/* { dg-do compile } */
+
+static int a = 0;
+extern int foo (void);
+extern int *bar (void) __attribute__ ((__const__));
+
+void
+test (int x)
+{
+ int b = 10;
+ while (foo () == -1 && *bar () == 4 && b > 0)
+ --b;
+ a = x;
+}
diff --git a/gcc/testsuite/gcc.dg/transparent-union-1.c b/gcc/testsuite/gcc.dg/transparent-union-1.c
new file mode 100644
index 00000000000..a5be8ce9186
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/transparent-union-1.c
@@ -0,0 +1,83 @@
+/* PR c/20043 */
+/* { dg-compile } */
+/* { dg-options "-std=gnu99" } */
+
+extern void f0 (int *);
+extern void f0 (int *__restrict);
+
+extern void f1 (int *__restrict);
+extern void f1 (int *);
+
+typedef union { int *i; long *l; } U2
+ __attribute__((transparent_union));
+extern void f2 (U2);
+extern void f2 (int *);
+
+typedef union { int *__restrict i; long *__restrict l; } U3
+ __attribute__((transparent_union));
+extern void f3 (U3);
+extern void f3 (int *__restrict);
+
+extern void f4 (U3);
+extern void f4 (int *);
+
+extern void f5 (U2);
+extern void f5 (int *__restrict);
+
+typedef union { long *l; int *i; } U6
+ __attribute__((transparent_union));
+extern void f6 (U6);
+extern void f6 (int *);
+
+typedef union { long *__restrict l; int *__restrict i; } U7
+ __attribute__((transparent_union));
+extern void f7 (U7);
+extern void f7 (int *__restrict);
+
+extern void f8 (U7);
+extern void f8 (int *);
+
+extern void f9 (U6);
+extern void f9 (int *__restrict);
+
+extern void f10 (U2);
+extern void f11 (U3);
+extern void f12 (U6);
+extern void f13 (U7);
+
+int i;
+long l;
+
+int
+main (void)
+{
+ f0 (&i);
+ f0 (&l); /* { dg-warning "warning: passing argument 1 of 'f0' from incompatible pointer type" } */
+ f1 (&i);
+ f1 (&l); /* { dg-warning "warning: passing argument 1 of 'f1' from incompatible pointer type" } */
+ f2 (&i);
+ f2 (&l); /* { dg-warning "warning: passing argument 1 of 'f2' from incompatible pointer type" } */
+ f3 (&i);
+ f3 (&l); /* { dg-warning "warning: passing argument 1 of 'f3' from incompatible pointer type" } */
+ f4 (&i);
+ f4 (&l); /* { dg-warning "warning: passing argument 1 of 'f4' from incompatible pointer type" } */
+ f5 (&i);
+ f5 (&l); /* { dg-warning "warning: passing argument 1 of 'f5' from incompatible pointer type" } */
+ f6 (&i);
+ f6 (&l); /* { dg-warning "warning: passing argument 1 of 'f6' from incompatible pointer type" } */
+ f7 (&i);
+ f7 (&l); /* { dg-warning "warning: passing argument 1 of 'f7' from incompatible pointer type" } */
+ f8 (&i);
+ f8 (&l); /* { dg-warning "warning: passing argument 1 of 'f8' from incompatible pointer type" } */
+ f9 (&i);
+ f9 (&l); /* { dg-warning "warning: passing argument 1 of 'f9' from incompatible pointer type" } */
+ f10 (&i);
+ f10 (&l);
+ f11 (&i);
+ f11 (&l);
+ f12 (&i);
+ f12 (&l);
+ f13 (&i);
+ f13 (&l);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/transparent-union-2.c b/gcc/testsuite/gcc.dg/transparent-union-2.c
new file mode 100644
index 00000000000..f466c4aa2be
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/transparent-union-2.c
@@ -0,0 +1,18 @@
+/* PR c/20043 */
+/* { dg-compile } */
+/* { dg-options "-std=gnu99" } */
+
+typedef union { int *i; long *l; } U
+ __attribute__((transparent_union));
+
+extern void f0 (U); /* { dg-error "previous declaration" } */
+extern void f0 (void *); /* { dg-error "conflicting types" } */
+
+extern void f1 (U); /* { dg-error "previous declaration" } */
+extern void f1 (unsigned long); /* { dg-error "conflicting types" } */
+
+extern void f2 (void *); /* { dg-error "previous declaration" } */
+extern void f2 (U); /* { dg-error "conflicting types" } */
+
+extern void f3 (unsigned long); /* { dg-error "previous declaration" } */
+extern void f3 (U); /* { dg-error "conflicting types" } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/20040216-1.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/20040216-1.c
new file mode 100644
index 00000000000..1d1784e011b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/20040216-1.c
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file lno */
+/* Test dependence graph. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -floop-test -c -fdump-tree-all" } */
+
+#define N 16
+void bar(int *);
+void foo()
+{
+ int i,j;
+ int A[N];
+ int X[N];
+ int Y[N];
+ int Z[N];
+
+ for (i=2; i<9; i++)
+ {
+ X[i] = Y[i] + Z[i];
+ A[i] = X[i-1] + 1;
+ }
+
+ bar (A);
+}
+
+/* Find 4 Dependence nodes */
+/* { dg-final { scan-tree-dump-times "Dependence Node" 4 "lptest"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-01.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-01.c
new file mode 100644
index 00000000000..b7ac0083fb4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-01.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int main(void)
+{
+ unsigned a;
+ int b;
+ int c;
+
+ /* loop_1 runs exactly 4 times. */
+ for (a = 22; a < 50; a+=1)
+ {
+ /* loop_2 runs exactly 6 times. On exit, the variable B is equal to 53. */
+ for (b = 23; b < 50; b+=5)
+ {
+ ++a;
+
+ /* loop_3 runs {{77, +, -7}_1, +, -1}_2 times. */
+ for (c = a; c < 100; c++)
+ {
+
+ }
+ }
+ }
+}
+
+/* The analyzer has to detect the following evolution functions:
+ b -> {23, +, 5}_2
+ a -> {{22, +, 7}_1, +, 1}_2
+ c -> {{{23, +, 7}_1, +, 1}_2, +, 1}_3
+*/
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 4" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 6" 1 "lptest"} } */
+
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-02.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-02.c
new file mode 100644
index 00000000000..2dce3aa1aa6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-02.c
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int main(void)
+{
+ int a;
+ int b;
+ int *c;
+
+ /* The following loop runs exactly 3 times. */
+ for (a = 11; a < 50; a++)
+ {
+ /* The following loop runs exactly 9 times. */
+ for (b = 8; b < 50; b+=5)
+ {
+ c[a + 5] = 5;
+ c[b] = 6;
+ a+=2;
+ }
+ }
+}
+
+/* The analyzer has to detect the following evolution functions:
+ b -> {8, +, 5}_2
+ a -> {{11, +, 19}_1, +, 2}_2
+*/
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 3" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 9" 1 "lptest"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-03.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-03.c
new file mode 100644
index 00000000000..be137f8e1c2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-03.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main(void)
+{
+ int a;
+ int b;
+ int *c;
+
+ /* loop_1 runs exactly 5 times. */
+ for (a = 11; a < 50; a++)
+ {
+ /* loop_2 runs exactly 7 times. */
+ for (b = 8; b < 50; b+=5)
+ {
+ c[a++] = 5;
+ c[b++] = 6;
+ }
+ }
+}
+
+/* The analyzer has to detect the following evolution functions:
+ b -> {8, +, 6}_2
+ a -> {{11, +, 8}_1, +, 1}_2
+*/
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 5" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 7" 1 "lptest"} } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-04.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-04.c
new file mode 100644
index 00000000000..5ab97d19ef9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-04.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main(void)
+{
+ int a;
+ int b = 22;
+
+ /* loop_1 runs exactly 28 times. */
+ for (a = 22; a < 50; a++) /* a -> {22, +, 1}_1 */
+ {
+ if (a > b) /* This condition is always false. */
+ remove_me ();
+ b = b + 2; /* b -> {22, +, 2}_1 */
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 28" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-05.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-05.c
new file mode 100644
index 00000000000..09df0c89050
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-05.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main(void)
+{
+ int a;
+ int b;
+ int c;
+
+ /* nb_iterations 28 */
+ for (a = 22; a < 50; a++)
+ {
+ /* nb_iterations 6 */
+ for (b = 23; b < 50; b+=5)
+ {
+ /* nb_iterations {78, +, -1}_1 */
+ for (c = a; c < 100; c++)
+ {
+
+ }
+ }
+ }
+}
+
+/* The analyzer has to detect the following evolution functions:
+ a -> {22, +, 1}_1
+ b -> {23, +, 5}_2
+ c -> {{22, +, 1}_1, +, 1}_3
+*/
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 28" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 6" 1 "lptest"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-06.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-06.c
new file mode 100644
index 00000000000..3a6a67d0a2b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-06.c
@@ -0,0 +1,51 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main(void)
+{
+ int a;
+ int b;
+ int c;
+
+ /* loop_1 runs 2 times. */
+ for (a = 22; a < 83; a+=1) /* a -> {22, +, 60}_1 */
+ {
+ c = a;
+
+ /* loop_2 runs exactly 6 times. */
+ for (b = 23; b < 50; b+=5) /* b -> {23, +, 5}_2 */
+ {
+ ++a;
+ }
+ /* The following stmt exercises the value of B on the exit of the loop.
+ In this case the value of B out of the loop is that of the evolution
+ function of B applied to the number of iterations the inner loop_2 runs.
+ Value (B) = {23, +, 5}_2 (6) = 53. */
+
+ /* At this point, the variable A has the evolution function:
+ {{22, +, 6}_1, +, 1}_2. */
+ if (b != 53
+ || a != c + 6)
+ remove_me ();
+
+ a = a + b;
+ /* At this point, the variable A has the evolution function:
+ {{22, +, 59}_1, +, 1}_2. The evolution of the variable B in
+ the loop_2 does not matter, and is not recorded in the
+ evolution of A. The above statement is equivalent to:
+ "a = a + 53", ie. the scalar value of B on exit of the loop_2. */
+
+ if (a != c + 59)
+ remove_me ();
+
+ /* And finally the a+=1 from the FOR_STMT produces the evolution
+ function: {{22, +, 60}_1, +, 1}_2. */
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 2" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 6" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-07.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-07.c
new file mode 100644
index 00000000000..2143751f6ac
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-07.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main(void)
+{
+ int a = -100;
+ int b = 2;
+ int d = -1;
+ int e = -100;
+
+ while (a)
+ {
+ /* Exercises higher order polynomials. */
+ a = a + b; /* a -> {-100, +, {2, +, 3}_1}_1 */
+ b = b + 3; /* b -> {2, +, 3}_1 */
+
+ d = d + 3; /* d -> {-1, +, 3}_1 */
+ e = e + d; /* e -> {-100, +, {2, +, 3}_1}_1 */
+
+ if (a != e) /* a -> {-98, +, {5, +, 3}_1}_1 */
+ remove_me ();
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-08.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-08.c
new file mode 100644
index 00000000000..a0265000b33
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-08.c
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main(void)
+{
+ int a = -100;
+ int b = 2;
+ int c = 3;
+ int d = -5;
+ int e = 3;
+ int f = -100;
+
+ while (a)
+ {
+ /* Exercises higher order polynomials. */
+ a = a + b; /* a -> {-100, +, 2, +, 3, +, 4}_1 */
+ b = b + c; /* b -> {2, +, 3, +, 4}_1 */
+ c = c + 4; /* c -> {3, +, 4}_1 */
+
+ d = d + 4; /* d -> {-5, +, 4}_1 */
+ e = e + d; /* e -> {3, +, -1, +, 4}_1 */
+ f = f + e; /* f -> {-100, +, 2, +, 3, +, 4}_1 */
+
+ if (a != f) /* (a == f) -> {-98, +, 5, +, 7, +, 4}_1 */
+ remove_me ();
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-09.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-09.c
new file mode 100644
index 00000000000..406544f3b7d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-09.c
@@ -0,0 +1,42 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int main(void)
+{
+ int a = -100;
+ int b = 2;
+ int c = 3;
+ int d = 4;
+ int e = 5;
+
+ while (a)
+ {
+ /* Exercises the cycle detector: a -> b -> (c -> d -> e -> c)*. */
+ a += b;
+ b += c;
+ c += d;
+ d += e;
+ e += c;
+ }
+}
+
+/* This is what is commonly called a "mixer". It whirls the data in a
+ strongly connected component. We expect the following evolution
+ functions:
+
+ e -> {5, +, c_13}_1
+ d -> {4, +, {5, +, c_13}_1}_1
+ c -> {3, +, {4, +, {5, +, c_13}_1}_1}_1
+ b -> {2, +, {3, +, {4, +, {5, +, c_13}_1}_1}_1}_1
+ a -> {-100, +, {2, +, {3, +, {4, +, {5, +, c_13}_1}_1}_1}_1}_1
+*/
+
+/* FIXME:
+ For the moment this testcase does not test for anything, but for
+ not ICEing, and for documentation purposes (okay here is the
+ definition of a mixer). However, I'm considering testing something
+ around the lines of ssa-chrec-08.c, ie. build two mixers, and then
+ compare their values. But that is difficult, and low priority. */
+
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-10.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-10.c
new file mode 100644
index 00000000000..f9c1c516ece
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-10.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+void bar (int);
+
+int foo (void)
+{
+ int a;
+ int x;
+ int c[100][100];
+
+ /* loop_1 runs 39 times. */
+ for (a = 11; a < 50; a++)
+ {
+ /* Array access functions have to be analyzed. */
+ x = a + 5;
+ c[x][a+1] = c[x+2][a+3] + c[x-1][a+2];
+ }
+ bar (c[1][2]);
+}
+
+/* The analyzer has to detect the scalar functions:
+ a -> {11, +, 1}_1
+ x -> {16, +, 1}_1
+ x+2 -> {18, +, 1}_1
+ x-1 -> {15, +, 1}_1
+*/
+
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 39" 1 "lptest"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-11.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-11.c
new file mode 100644
index 00000000000..7e1779f97b4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-11.c
@@ -0,0 +1,60 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main(void)
+{
+ int a = -100;
+ int b = 2;
+
+ int f = 6;
+ int g = 7;
+ int h = 8;
+
+ /* Exercises complex loop exit conditions.
+ FIXME: This is a strange case where the compiler cc1 and the wrapper gcc
+ don't produce the same representation:
+
+ (with gcc from command line)
+
+ T.1_9 = f_2 | a_1;
+ if (T.1_9 == 0)
+ {
+ goto <UL47e0>;
+ }
+
+ versus (with cc1 called from gdb):
+
+ if (f_2 == 0)
+ {
+ if (a_1 == 0)
+ {
+ goto <ULc7e0>;
+ }
+ else
+ {
+ (void)0
+ }
+ }
+ else
+ {
+ (void)0
+ };
+ */
+ while (f || a)
+ {
+ a += b;
+
+ f += g;
+ g += h;
+ }
+}
+
+/*
+ g -> {7, +, 8}_1
+ f -> {6, +, {7, +, 8}_1}_1
+ a -> {-100, +, 2}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-12.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-12.c
new file mode 100644
index 00000000000..067bfcb2474
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-12.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int a = -100;
+ int b = 2;
+ int c = 3;
+ int d = 4;
+
+ while (a)
+ {
+ a = a + b;
+
+ /* Exercises if-phi-nodes. */
+ if (bar ())
+ b = b + c;
+
+ c = c + d;
+ }
+}
+
+/* The analyzer has to detect the following evolution functions:
+ c -> {3, +, 4}_1
+ b -> {2, +, {[0, 3], +, [0, 4]}_1}_1
+ a -> {-100, +, {2, +, {[0, 3], +, [0, 4]}_1}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-13.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-13.c
new file mode 100644
index 00000000000..cb785d020f4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-13.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int foo (void);
+
+int main (void)
+{
+ int a = -100;
+ int b = 2;
+ int c = 3;
+
+ while (a)
+ {
+ /* Exercises if-phi-nodes. */
+ if (foo ())
+ a += b;
+ else
+ a += c;
+
+ b++;
+ c++;
+ }
+}
+
+/* The analyzer has to detect the following evolution function:
+ a -> {-100, +, {[2, 3], +, 1}_1}_1
+*/
+
+/* FIXME. */
+
+
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-14.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-14.c
new file mode 100644
index 00000000000..c0258c81aba
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-14.c
@@ -0,0 +1,37 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int foo (void);
+
+int main (void)
+{
+ int a = -100;
+ int b = 2;
+ int c = 3;
+ int d = 4;
+
+ while (d)
+ {
+ if (foo ())
+ a += b;
+ else
+ a += c;
+
+ b += 1;
+ c += 5;
+
+ /* Exercises the initial condition of A after the if-phi-node. */
+ d = d + a;
+ }
+}
+
+/* The analyzer has to detect the following evolution function:
+ b -> {2, +, 1}_1
+ c -> {3, +, 5}_1
+ a -> {-100, +, {[2, 3], +, [1, 5]}_1}_1
+ d -> {4, +, {[-98, -97], +, {[2, 3], +, [1, 5]}_1}_1}_1
+*/
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-15.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-15.c
new file mode 100644
index 00000000000..800866b677b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-15.c
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main (void)
+{
+ int a;
+ int b;
+ int c;
+
+ /* Exercises the MINUS_EXPR. loop_1 runs 50 times. */
+ for (a = 100; a > 50; a--)
+ {
+
+ }
+}
+
+/* The analyzer has to detect the following evolution function:
+ a -> {100, +, -1}_1
+*/
+
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 50" 1 "lptest"} } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-16.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-16.c
new file mode 100644
index 00000000000..a80414abb83
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-16.c
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main (void)
+{
+ int a = -100;
+ int b = 2;
+ int c = 3;
+ int d = 4;
+
+ /* Determining the number of iterations for the != or == is work in
+ progress. Same for polynomials of degree >= 2, where we have to
+ find the zeros of the polynomial. */
+ while (d)
+ {
+ a += 23;
+ d = a + d;
+ }
+}
+
+/* a -> {-100, +, 23}_1
+ d -> {4, +, {-77, +, 23}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-17.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-17.c
new file mode 100644
index 00000000000..1e7ac50e013
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-17.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+void foo ()
+{
+ int a = -100;
+ int b = 2;
+
+ while (b)
+ {
+ if (bar ())
+ a += 3;
+ else
+ a = 2;
+
+ /* Exercises the case when one of the branches of the if-phi-node is a constant.
+ FIXME:
+ - What is the chrec representation of such an evolution?
+ - Does this kind of code exist in real codes? */
+ b += a;
+ }
+}
+
+/* For the moment the analyzer is expected to output a "don't know" answer,
+ both for the initial condition and for the evolution part. This is done
+ in the merge condition branches information.
+
+ a -> [-oo, +oo]
+ b -> {2, +, a_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-18.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-18.c
new file mode 100644
index 00000000000..f72aaa1f542
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-18.c
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo (int x)
+{
+ int a = -100;
+ int b = 2;
+
+ while (b)
+ {
+ if (x)
+ a += 3;
+ else
+ a += bar ();
+
+ /* Exercises the case when one of the branches of the if-phi-node cannot
+ be determined: [-oo, +oo].
+ Since the evolution function is too difficult to handle in the expanded
+ form, we have to keep it in its symbolic form: "b -> {2, +, a_1}_1". */
+ b += a;
+ }
+}
+
+/* a -> {-100, +, [min<t, 3>, max<t, 3>]}_1
+ b -> {2, +, {[min<t, 3>, max<t, 3>] - 100, +, [min<t, 3>, max<t, 3>]}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-19.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-19.c
new file mode 100644
index 00000000000..bb3a5b183ae
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-19.c
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int b = 2;
+
+ while (b)
+ {
+ /* Exercises the MULT_EXPR. */
+ b = 2*b;
+ }
+}
+
+/* b -> {2, *, 2}_1
+*/
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-20.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-20.c
new file mode 100644
index 00000000000..e5a24d80a8f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-20.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 3;
+ int b = 2;
+
+ while (a)
+ {
+ b += 5;
+ a += b;
+
+ /* Exercises the sum of a polynomial of degree 2 with an
+ evolution of degree 1:
+
+ (loop_num = 1, chrec_var = {3, +, 7, +, 5}, to_add = 2).
+ The result should be: {3, +, 9, +, 5}. */
+ a += 2;
+ }
+}
+
+/*
+ b -> {2, +, 5}_1
+ a -> {3, +, {9, +, 5}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-21.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-21.c
new file mode 100644
index 00000000000..82c5ccb49db
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-21.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 3;
+ int b = 2;
+
+ while (b)
+ {
+ a *= 4;
+ b *= a;
+ }
+}
+
+/* a -> {3, *, 4}_1
+ b -> {{2, *, 12}_1, *, 4}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-22.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-22.c
new file mode 100644
index 00000000000..a439099e4df
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-22.c
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 2;
+ int b = 4;
+
+ while (a)
+ {
+ a *= 3;
+ a *= b;
+ b *= 5;
+ }
+}
+
+/*
+ b -> {4, *, 5}_1
+ a -> {2, *, {12, *, 5}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-23.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-23.c
new file mode 100644
index 00000000000..c12bc4bf469
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-23.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 1;
+ int b = 1;
+
+ while (a)
+ {
+ a *= b;
+ b += 1;
+ }
+}
+
+/* a -> {1, *, {1, +, 1}_1}_1
+*/
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-24.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-24.c
new file mode 100644
index 00000000000..96095cd4d4e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-24.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int c;
+
+ /* This exercises the initial condition propagator:
+ Interval Copy Constant Propagation (ICCP). */
+ if (bar ())
+ c = 2;
+ else
+ c = 3;
+
+ while (c)
+ {
+ c += 5;
+ }
+}
+
+/*
+ c -> {[2, 3], +, 5}_1
+*/
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-25.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-25.c
new file mode 100644
index 00000000000..43b1dc5bd37
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-25.c
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int c = 7;
+
+ /* This exercises the initial condition propagator:
+ Interval Copy Constant Propagation (ICCP). */
+ if (bar ())
+ c = 2;
+ else
+ c += 3;
+
+ while (c)
+ {
+ c += 5;
+ }
+}
+
+/*
+ c -> {[2, 10], +, 5}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-26.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-26.c
new file mode 100644
index 00000000000..f7025534118
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-26.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int a = -100;
+ int b = -10;
+
+ /* This exercises a code with two loop nests. */
+
+ while (a)
+ a++;
+
+ while (b)
+ b++;
+}
+
+/* a -> {-100, +, 1}_1
+ b -> {-10, +, 1}_2
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-27.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-27.c
new file mode 100644
index 00000000000..92c627d324c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-27.c
@@ -0,0 +1,41 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int a = -100;
+
+ /* This exercises a code with two loop nests. */
+
+ /* loop_1 runs 100 times. */
+ while (a < 0)
+ a++;
+
+ a -= 77;
+
+ /* loop_2 runs 26 times. */
+ while (a < 0)
+ a+=3;
+}
+
+/* The analyzer sees two loop nests:
+ for the first, it determines the evolution:
+ a -> {-100, +, 1}_1
+
+ and for the second, it determines that the first loop ends at 0 and then:
+ a -> {-77, +, 3}_2
+
+ When the constant propagation is postponed, the analyzer detects
+ for the second loop the evolution function:
+ a -> {a_5, +, 3}_2
+
+*/
+
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 100" 1 "lptest"} } */
+/* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 26" 1 "lptest"} } */
+
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-28.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-28.c
new file mode 100644
index 00000000000..a05930fb0df
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-28.c
@@ -0,0 +1,40 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int i;
+ int a = 2;
+
+ while (a)
+ {
+ a *= 3;
+
+ for (i = 0; i < 100; i++)
+ a += 4;
+ }
+}
+
+/* FIXME: We have to transform the evolution function of "a" into an infinite
+ sum, a -> {//2, *, 2//}, and then to add the 400 from the inner sum...
+ But this is quite difficult, and cases like this one do not happen often.
+
+ (Francois Irigoin consider that this case falls into the 0.01 percent
+ rule, and it is no worth to implement a solution for this testcase in a
+ production compiler. )
+*/
+
+/* Do nothing for this testcase.
+ The following evolutions are detected:
+
+ i -> {0, +, 1}_2
+ a -> {{2, *, [-oo, +oo]}_1, +, 4}_2
+
+*/
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-29.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-29.c
new file mode 100644
index 00000000000..5d639a9dfae
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-29.c
@@ -0,0 +1,41 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int bar (void);
+
+int foo ()
+{
+ int i;
+ int a = 2;
+
+ while (a)
+ {
+ a *= 3;
+ a += 5;
+ }
+}
+
+/* FIXME: This exposes a problem in the representation. Is it
+ possible to have an exponential and a polynomial together?
+
+ The first assignment constructs "a -> {2, *, 3}_1",
+ while the second adds 5 as a polynomial function.
+
+ The following two representations are not correct:
+ "a -> {{2, *, 3}_1, +, 5}_1"
+ "a -> {{2, +, 5}_1, *, 3}_1"
+
+ The right solution is:
+ "a -> {2, *, 3}_1 + {0, +, 5}_1"
+ but this exposes yet again the "exp + poly" problem: the representation
+ is not homogen. Going into a Taylor decomposition could solve this problem.
+
+ This is too difficult for the moment, and does not happen often.
+*/
+
+/* Do nothing for this testcase. */
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-37.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-37.c
new file mode 100644
index 00000000000..746a81e68fe
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-37.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a;
+ int b = 2;
+ int c = 11;
+
+ for (a = -123; a < 0; c += 12, b += 5)
+ {
+ a += b;
+
+ /* The next stmt exercises the add_function_to_loop_evolution
+ (loop_num = 1, chrec_before = {-123, +, {2, +, 5}_1}_1, to_add = {11, +, 12}_1).
+ The result should be: {-123, +, {13, +, 17}_1}_1. */
+ a += c;
+ }
+}
+
+/*
+ b -> {2, +, 5}_1
+ c -> {11, +, 12}_1
+ a -> {-123, +, {13, +, 17}_1}_1
+*/
+
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-38.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-38.c
new file mode 100644
index 00000000000..bdfe8bc6bfd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-38.c
@@ -0,0 +1,49 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 3;
+ int b = 2;
+ int c = 11;
+ int d = -5;
+
+ while (a)
+ {
+ b += 5;
+ a += b;
+
+ for (d = -5; d < 0; d++)
+ {
+ /* Exercises the build_polynomial_evolution_in_loop function in the following context:
+ (add_to_evolution
+ loop_num = 2
+ chrec_before = {3, +, 7, +, 5}_1
+ to_add = {11, +, 12}_1
+ res = {{3, +, 7, +, 5}_1, +, {11, +, 12}_1}_2
+ )
+
+ This also exercises the chrec_apply function in the following context:
+ (chrec_apply
+ var = 2
+ chrec = {0, +, {11, +, 12}_1}_2
+ x = 5
+ res = {55, +, 60}_1
+ )
+ */
+ a += c;
+ }
+ c += 12;
+ }
+}
+
+/*
+ b -> {2, +, 5}_1
+ c -> {11, +, 12}_1
+ d -> {-5, +, 1}_2
+ a -> {{3, +, 62, +, 65}_1, +, {11, +, 12}_1}_2
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-39.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-39.c
new file mode 100644
index 00000000000..87d844482e7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-39.c
@@ -0,0 +1,46 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int foo (int ParmN)
+{
+ int a = 3;
+ int b = 2;
+ int d = -5;
+
+ while (a)
+ {
+ b += 25;
+ a += b;
+
+ for (d = -5; d < 0; d++)
+ {
+ /* Exercises the build_polynomial_evolution_in_loop in the following context:
+ (add_to_evolution
+ loop_num = 2
+ chrec_before = {3, +, {27, +, 25}_1}_1
+ to_add = ParmN_15
+ res = {{3, +, {27, +, 25}_1}_1, +, ParmN_15}_2
+ )
+
+ Then it exercises the add_expr_to_loop_evolution in the following context:
+ (add_to_evolution
+ loop_num = 1
+ chrec_before = {{3, +, {27, +, 25}_1}_1, +, ParmN_15}_2
+ to_add = ParmN_15 * 5
+ res = {{3, +, {ParmN_15 * 5 + 27, +, 25}_1}_1, +, ParmN_15}_2
+ )
+ */
+ a += ParmN;
+ }
+ }
+}
+
+/*
+ b -> {2, +, 25}_1
+ d -> {-5, +, 1}_2
+ a -> {{3, +, {ParmN * 5 + 27, +, 25}_1}_1, +, ParmN}_2
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-40.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-40.c
new file mode 100644
index 00000000000..7a1ecf7d5bd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-40.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 1;
+ int b = 1;
+
+ while (a)
+ {
+ a += b;
+ b *= 2;
+ }
+}
+
+/*
+ b -> {1, *, 2}_1
+ a -> {1, +, {1, *, 2}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-41.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-41.c
new file mode 100644
index 00000000000..ab93fbcaf98
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-41.c
@@ -0,0 +1,53 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 2;
+ int b = 4;
+ int c = 2;
+
+ while (a)
+ {
+ a *= 3;
+ for (c = -10; c < 0; c++)
+ {
+ /* Exercises the build_exponential_evolution_in_loop function in the following context:
+ (multiply_evolution
+ loop_num = 2
+ chrec_before = {2, *, 3}_1
+ to_mult = {4, *, 5}_1
+ res = {{2, *, 3}_1, *, {4, *, 5}_1}_2
+ )
+
+ Then it exerces the chrec_apply in the following context:
+ (chrec_apply
+ var = 2
+ chrec = {0, +, {4, *, 5}_1}_2
+ x = 10
+ res = {40, *, 5}_1
+ )
+
+ Finally it tests the
+ (add_to_evolution
+ loop_num = 1
+ chrec_before = {{2, *, 3}_1, *, {4, *, 5}_1}_2
+ to_add = {40, *, 5}_1
+ res = {{2, *, {120, *, 5}_1}_1, *, {4, *, 5}_1}_2
+ )
+ */
+ a *= b;
+ }
+ b *= 5;
+ }
+}
+
+/*
+ c -> {-10, +, 1}_2
+ b -> {4, *, 5}_1
+ a -> {{2, *, {120, *, 5}_1}_1, *, {4, *, 5}_1}_2
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-42.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-42.c
new file mode 100644
index 00000000000..33378ddfa9c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-42.c
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 1;
+ int b = 2;
+ int c = 0;
+ int d = 5;
+
+ while (a)
+ {
+ a += b;
+ a += d;
+
+ b += c;
+ c += 1;
+ d += 9;
+ }
+}
+
+/*
+ c -> {0, +, 1}_1
+ b -> {2, +, 0, +, 1}_1
+ d -> {5, +, 9}_1
+ a -> {1, +, 7, +, 9, +, 1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-43.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-43.c
new file mode 100644
index 00000000000..329f205506f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-43.c
@@ -0,0 +1,65 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+
+int main ()
+{
+ int a = 1;
+ int b = 2;
+ int c = 0;
+ int d = 5;
+ int e;
+
+ while (a)
+ {
+ /* The following statement produces the evolution function:
+ (add_to_evolution
+ loop_num = 1
+ chrec_before = 1
+ to_add = {{2, +, 0}_1, +, 10}_1
+ res = {{{1, +, 2}_1, +, 0}_1, +, 10}_1
+ )
+ Note that the evolution of B in the inner loop_2 is not
+ relevant to the evolution of A in the loop_1. */
+ a += b;
+
+ /* And finally the following statement produces the expected scev:
+ (add_to_evolution
+ loop_num = 1
+ chrec_before = {{{1, +, 2}_1, +, 0}_1, +, 10}_1
+ to_add = {5, +, 9}_1
+ res = {{{1, +, 7}_1, +, 9}_1, +, 10}_1
+ )
+ That ends this not so formal proof ("CQFD" in french ;-). */
+ a += d;
+
+ for (e = 0; e < 10; e++)
+ b += c;
+ /* After having analyzed this loop, the overall effect is added to the evolution of b.
+ This corresponds to the following operation:
+ (add_to_evolution
+ loop_num = 1
+ chrec_before = {2, +, {0, +, 1}_1}_2
+ to_add = {0, +, 10}_1
+ res = {{{2, +, 0}_1, +, 10}_1, +, {0, +, 1}_1}_2
+ ).
+ Note that the variable c has not yet been updated in the loop, and thus its value
+ at this version is "{0, +, 1}_1". Since the loop_2 runs exactly 10 times, the overall
+ effect of the loop is "10 * {0, +, 1}_1": that is the TO_ADD argument.
+ */
+
+ c += 1;
+ d += 9;
+ }
+}
+
+/*
+ c -> {0, +, 1}_1
+ e -> {0, +, 1}_2
+ b -> {{2, +, 0, +, 10}_1, +, {0, +, 1}_1}_2
+ d -> {5, +, 9}_1
+ a -> {1, +, 7, +, 9, +, 10}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-44.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-44.c
new file mode 100644
index 00000000000..86308138d37
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-44.c
@@ -0,0 +1,39 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+/* That's a reduced testcase of one of my favourite simulation programs.
+ This is also known under the name: "Newton's falling apple".
+ The general version is known under the name: "the N-body simulation problem".
+
+ The physics terminology is the best to describe the scalar evolution algorithm:
+ - first determine the initial conditions of the system,
+ - then analyze its evolution.
+*/
+
+double Newton_s_apple ()
+{
+ /* Initial conditions. */
+ double g = -10.0;
+ double speed_z = 0;
+ double altitude = 3000;
+ double delta_t = 0.1;
+ double total_time = 0;
+
+ /* Laws of evolution. */
+ while (altitude > 0.0)
+ {
+ speed_z += g * delta_t;
+ altitude += speed_z * delta_t;
+ total_time += delta_t;
+ }
+
+ return total_time;
+}
+
+/*
+ speed_z -> {0.0, +, -1.0e+0}_1
+ altitude -> {3.0e+3, +, {(0.0 + -1.0e+0) * 1.00000000000000005551115123125782702118158340454e-1, +, -1.0e+0 * 1.00000000000000005551115123125782702118158340454e-1}_1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-45.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-45.c
new file mode 100644
index 00000000000..40f09a236f3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-45.c
@@ -0,0 +1,45 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+/* That's a reduced testcase of one of my favourite simulation programs.
+ This is also known under the name: "Newton's falling apple".
+ The general version is known under the name: "the N-body simulation problem".
+
+ The physics terminology is the best to describe the scalar evolution algorithm:
+ - first determine the initial conditions of the system,
+ - then analyze its evolution.
+*/
+
+double Newton_s_apple ()
+{
+ /* Initial conditions. */
+ double g = 10.0;
+ double speed_z = 0;
+ double altitude = 3000;
+ double delta_t = 0.1;
+ double total_time = 0;
+
+ /* Laws of evolution. */
+ while (altitude > 0.0)
+ {
+ speed_z += g * delta_t;
+ altitude -= speed_z * delta_t;
+ total_time += delta_t;
+ }
+
+ return total_time;
+}
+
+/*
+ speed_z -> {0.0, +, 1.0e+0}_1
+ altitude -> {3.0e+3, +, {(0.0 + 1.0e+0) * 1.00000000000000005551115123125782702118158340454e-1 * -1, +, 1.0e+0 * 1.00000000000000005551115123125782702118158340454e-1 * -1}_1}_1
+
+ When computing evolutions in the "symbolic as long as possible" strategy,
+ the analyzer extracts only the following:
+
+ altitude -> {3.0e+3, +, T.2_11 * -1}_1
+
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-46.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-46.c
new file mode 100644
index 00000000000..b97d6f87fab
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-46.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int
+foo (int i,
+ int precision)
+{
+ i = precision - i - 1;
+
+ /* At this point the analyzer is confused by the initialisation of "i".
+ It keeps the initial condition under a symbolic form: "i_1". */
+
+ while (--i);
+}
+
+/* i -> {i_1, +, -1}_1 */
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-47.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-47.c
new file mode 100644
index 00000000000..bd5afc50b7e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-47.c
@@ -0,0 +1,36 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int
+foo (int unknown_parm, int a, int b)
+{
+ int p;
+
+ if (unknown_parm)
+ {
+ p = a + 2;
+ }
+ else
+ {
+ p = b + 1;
+ }
+
+ /* At this point the initial condition of "p" is unknown.
+ In this case, the analyzer has to keep the initial condition under a symbolic form. */
+
+ while (p)
+ p--;
+
+}
+
+/*
+ p -> {p_1, +, -1}_1
+
+ or, when the Value Range Propagation does its work:
+
+ p -> {[MIN_EXPR <p_4, p_6>, MAX_EXPR <p_4, p_6>], +, -1}_1
+
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-48.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-48.c
new file mode 100644
index 00000000000..fbd3c98bb29
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-48.c
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int
+foo (int *c)
+{
+ int i;
+ int j = 10;
+
+ for (i = 0; i < 5; i++)
+ {
+ for (j = 10;; j--)
+ {
+ if (j == 0)
+ break;
+
+ *(c + j) = *(c + j) - 1;
+ }
+ }
+
+ return j;
+}
+
+/*
+ j -> {10, +, -1}_2
+ i -> {0, +, 1}_1
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-49.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-49.c
new file mode 100644
index 00000000000..413758aa6f6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-49.c
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int
+foo (int *c)
+{
+ int i = 0;
+ int j = 10;
+
+ while (1)
+ {
+ if (i == j)
+ break;
+
+ i++;
+ j--;
+ }
+
+ return j;
+}
+
+/* i -> {0, +, 1}_1 */
+/* j -> {10, +, -1}_1 */
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-50.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-50.c
new file mode 100644
index 00000000000..b3ea5b5dfb9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-50.c
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int
+foo (int *c)
+{
+ int i = 0;
+ int j = 10;
+
+ while (1)
+ {
+ /* This case exercises the number of iterations detector for
+ {0, +, 1}_1 == {10, +, -1}_1
+ */
+ if (i == j)
+ break;
+
+ i++;
+ j--;
+ }
+
+ return j;
+}
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-51.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-51.c
new file mode 100644
index 00000000000..c0a7f51f8ff
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-51.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int
+foo (int j)
+{
+ int i = 0;
+ int temp_var;
+
+ while (i < 100)
+ {
+ /* This exercises the analyzer on strongly connected
+ components: here "i -> temp_var -> i". */
+ temp_var = i + j;
+ i = temp_var + 2;
+ }
+
+ return i;
+}
+
+/* FIXME. */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-53.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-53.c
new file mode 100644
index 00000000000..3933c21e360
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-53.c
@@ -0,0 +1,129 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details " } */
+
+#define N 16
+
+void fbar (float *);
+void ibar (int *);
+void sbar (short *);
+
+/* Should be vectorized */
+
+foo (int n)
+{
+ float a[N+1];
+ float b[N];
+ float c[N];
+ float d[N];
+ int ia[N];
+ int ib[N];
+ int ic[N];
+ double da[N];
+ double db[N];
+ short sa[N];
+ short sb[N];
+ short sc[N];
+ int i,j;
+ int diff = 0;
+ char cb[N];
+ char cc[N];
+ char image[N][N];
+ char block[N][N];
+
+ /* Not vetorizable yet (unknown loop bound). */
+ for (i = 0; i < n; i++){
+ a[i] = b[i];
+ }
+ fbar (a);
+
+ /* Vectorizable. */
+ for (i = 0; i < N; i++){
+ a[i] = b[i];
+ }
+ fbar (a);
+
+ /* Not Vectorizable (mode not supported). */
+ for (i = 0; i < N; i++){
+ da[i] = db[i];
+ }
+ fbar (a);
+
+ /* Not vetorizable yet (constant assignment). */
+ for (i = 0; i < N; i++){
+ a[i] = 5;
+ }
+ fbar (a);
+
+ /* Vectorizable. */
+ for (i = 0; i < N; i++){
+ a[i] = b[i] + c[i] + d[i];
+ }
+ fbar (a);
+
+ /* Vectorizable. */
+ for (i = 0; i < N; i++){
+ a[i] = b[i] * c[i];
+ }
+ fbar (a);
+
+ /* Vectorizable. */
+ for (i = 0; i < N/2; i++){
+ a[i] = b[i+N/2] * c[i+N/2] - b[i] * c[i];
+ d[i] = b[i] * c[i+N/2] + b[i+N/2] * c[i];
+ }
+ fbar (a);
+
+ /* Not vetorizable yet (too conservative dependence test). */
+ for (i = 0; i < N/2; i++){
+ a[i] = b[i+N/2] * c[i+N/2] - b[i] * c[i];
+ a[i+N/2] = b[i] * c[i+N/2] + b[i+N/2] * c[i];
+ }
+ fbar (a);
+
+ /* Not vetorizable yet (access pattern). */
+ for (i = 0; i < N/2; i++){
+ a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i];
+ d[i] = b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i];
+ }
+ fbar (a);
+
+ /* Not vetorizable yet (too conservative dependence test; access pattern). */
+ for (i = 0; i < N/2; i++){
+ a[2*i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i];
+ a[2*i+1] = b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i];
+ }
+ fbar (a);
+
+ /* Not vetorizable yet (no support for integer mult). */
+ for (i = 0; i < N; i++){
+ ia[i] = ib[i] * ic[i];
+ }
+ ibar (ia);
+
+ /* Vectorizable. */
+ for (i = 0; i < N; i++){
+ a[i] = b[i] + c[i];
+ d[i] = b[i] + c[i];
+ ia[i] = ib[i] + ic[i];
+ }
+ ibar (ia);
+ fbar (a);
+ fbar (d);
+
+ /* Not vectorizable yet (two types with different nunits in vector). */
+ for (i = 0; i < N; i++){
+ ia[i] = ib[i] + ic[i];
+ sa[i] = sb[i] + sc[i];
+ }
+ ibar (ia);
+ sbar (sa);
+
+ /* Not vetorizable yet (too conservative dependence test). */
+ for (i = 0; i < N; i++){
+ a[i] = b[i] + c[i];
+ a[i+1] = b[i] + c[i];
+ }
+ fbar (a);
+}
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-54.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-54.c
new file mode 100644
index 00000000000..1f64eb4e22d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-54.c
@@ -0,0 +1,34 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int main(void)
+{
+ int a = 5;
+ int b = 6;
+ int c = 20;
+
+ while (a <= 100)
+ {
+ int i;
+
+ a = b;
+ for (i = 0; i <= 12; i++)
+ {
+ a++;
+ }
+ b = b + c;
+ }
+}
+
+/* This example has been distilled from Pattern1 that cannot be
+ handled: "Big steps, small steps" from the ICS'01 paper "Monotonic
+ Evolution" by Peng Wu.
+
+ The analyzer has to detect the following evolution functions:
+ i -> {0, +, 1}_2
+ b -> {6, +, 20}_1
+ a -> {{6, +, 20}_1, +, 1}_2
+*/
+
+/* FIXME. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-55.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-55.c
new file mode 100644
index 00000000000..f89f825f100
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-55.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file lno */
+#include <stdio.h>
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */
+
+int main(int argc)
+{
+ int I, J;
+ const int N = 30;
+ const int M = 40;
+ for (J = argc; J < N; J += 3)
+ {
+ for (I = J; I < M; I++)
+ {
+ printf ("%d %d\n", I, J);
+ }
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-56.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-56.c
new file mode 100644
index 00000000000..4230b4726e5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-56.c
@@ -0,0 +1,22 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main (void)
+{
+ int a = -100;
+ int b = 0;
+ int c = 3;
+
+ for (a = 0; a < 100; a++)
+ {
+ b = b + 3;
+ if (b != c)
+ remove_me ();
+ c = c + 3;
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-57.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-57.c
new file mode 100644
index 00000000000..0d938f6dd25
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-57.c
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main (void)
+{
+ int a = -100;
+ int b = 0;
+ int c = 3;
+
+ for (a = 0; a < 100; a++)
+ {
+ if (b > c)
+ remove_me ();
+ b = b + 2;
+ c = c + 3;
+ }
+}
+
+
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-58.c b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-58.c
new file mode 100644
index 00000000000..c5e8964c01b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/ssa-chrec-58.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -floop-test -fdump-tree-optimized" } */
+
+void remove_me (void);
+
+int main (void)
+{
+ int a, b;
+ int N = 100;
+
+ a = 0;
+ b = 0;
+ while (a < N)
+ {
+ if (b >= 5*N - 4)
+ remove_me ();
+ a++;
+ b+=5;
+ }
+}
+
+/* { dg-final { scan-tree-dump-times "remove_me" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-chrec/tree-ssa-scev.exp b/gcc/testsuite/gcc.dg/tree-ssa-chrec/tree-ssa-scev.exp
new file mode 100644
index 00000000000..46fcf02054f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-chrec/tree-ssa-scev.exp
@@ -0,0 +1,36 @@
+# APPLE LOCAL file lno
+# Copyright (C) 1997 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 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.
+
+# GCC testsuite that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+ set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-01.c b/gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-01.c
new file mode 100644
index 00000000000..6f86290c629
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-01.c
@@ -0,0 +1,55 @@
+/* APPLE LOCAL file AV */
+/* { dg-do run { target powerpc*-*-* i?86-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse" { target i?86-*-* } } */
+
+#include <stdarg.h>
+#include <signal.h>
+
+extern void abort (void);
+extern void exit (int);
+#define N 16
+#define MAX 42
+
+int main1 ()
+{
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+
+ int i, j;
+
+ for (i = 0; i < N; i++)
+ {
+ j = A[i];
+ A[i] = ( j >= MAX ? MAX : 0);
+ }
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ {
+ if (A[i] > MAX)
+ abort ();
+ }
+
+ return 0;
+}
+
+void
+sig_ill_handler (int sig)
+{
+ exit(0);
+}
+
+int main (void)
+{
+ /* Exit on systems without altivec. */
+ signal (SIGILL, sig_ill_handler);
+ /* Altivec instruction, 'vor %v0,%v0,%v0'. */
+ asm volatile (".long 0x10000484");
+ signal (SIGILL, SIG_DFL);
+
+ return main1 ();
+}
+
+
+/* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-02.c b/gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-02.c
new file mode 100644
index 00000000000..5d996ef832b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/ifc-02.c
@@ -0,0 +1,49 @@
+/* APPLE LOCAL file */
+/* { dg-do compile { target powerpc*-*-* i?86-*-* } } */
+/* { dg-options "-c -O2 -ftree-vectorize -fdump-tree-vect-details -maltivec" { target powerpc*-*-* } } */
+/* { dg-options "-c -O2 -ftree-vectorize -fdump-tree-vect-details -msse" { target i?86-*-* } } */
+
+#include <stdarg.h>
+#include <signal.h>
+
+extern int c;
+struct A;
+typedef struct A *A_def;
+static A_def *data;
+
+extern void abort (void);
+extern void exit (int);
+
+#define N 128
+
+int main1 ()
+{
+
+ unsigned int i;
+
+ for (i = 0; i < N; i++)
+ if (c)
+ data[i] = 0;
+
+ return 0;
+}
+
+void
+sig_ill_handler (int sig)
+{
+ exit(0);
+}
+
+int main (void)
+{
+ /* Exit on systems without altivec. */
+ signal (SIGILL, sig_ill_handler);
+ /* Altivec instruction, 'vor %v0,%v0,%v0'. */
+ asm volatile (".long 0x10000484");
+ signal (SIGILL, SIG_DFL);
+
+ return main1 ();
+}
+
+
+/* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "vect" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/pr16105.c b/gcc/testsuite/gcc.dg/tree-ssa-vect/pr16105.c
new file mode 100644
index 00000000000..3a968ff25ea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/pr16105.c
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile { target powerpc*-*-* i?86-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* } } */
+
+#define VECTOR_SIZE 512
+typedef float afloat __attribute__ ((__aligned__(16)));
+
+extern void check(const afloat * __restrict__ v);
+
+void square(const afloat * __restrict__ a,
+ afloat * __restrict__ out)
+{
+ unsigned int i;
+ for (i = 0; i < VECTOR_SIZE; i++) {
+ float ai = a[i];
+ float a2 = ai * ai;
+ out[i] = a2;
+ }
+ check(out);
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-31.c b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-31.c
new file mode 100644
index 00000000000..d1e77acc6e0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-31.c
@@ -0,0 +1,44 @@
+/* APPLE LOCAL file lno */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* x86_64-*-* } } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+typedef char achar __attribute__ ((__aligned__(16)));
+
+#define N 16
+
+int main1 ()
+{
+ struct {
+ achar ca[N];
+ } s;
+ int i;
+
+ for (i = 0; i < N; i++)
+ {
+ s.ca[i] = 5;
+ }
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ {
+ if (s.ca[i] != 5)
+ abort ();
+ }
+
+ return 0;
+}
+
+int main (void)
+{
+ check_vect ();
+
+ return main1 ();
+}
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-35.c b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-35.c
new file mode 100644
index 00000000000..14591764e9f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect-35.c
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file lno */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* x86_64-*-* } } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+#define N 16
+
+int main1 ()
+{
+ struct {
+ char ca[N];
+ } s;
+ char cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ int i;
+
+ for (i = 0; i < N; i++)
+ {
+ s.ca[i] = cb[i];
+ }
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ {
+ if (s.ca[i] != cb[i])
+ abort ();
+ }
+
+ return 0;
+}
+
+int main (void)
+{
+ check_vect ();
+
+ return main1 ();
+}
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect.exp b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect.exp
new file mode 100644
index 00000000000..46fcf02054f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-ssa-vect.exp
@@ -0,0 +1,36 @@
+# APPLE LOCAL file lno
+# Copyright (C) 1997 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 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.
+
+# GCC testsuite that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+ set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-vect.h b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-vect.h
new file mode 100644
index 00000000000..f56e83138b3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa-vect/tree-vect.h
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file lno */
+/* Check if system supports SIMD */
+#include <signal.h>
+
+extern void exit (int);
+extern void abort (void);
+
+void
+sig_ill_handler (int sig)
+{
+ exit(0);
+}
+
+void check_vect (void)
+{
+ signal(SIGILL, sig_ill_handler);
+#if defined(__ppc__) || defined(__ppc64__)
+ /* Altivec instruction, 'vor %v0,%v0,%v0'. */
+ asm volatile (".long 0x10000484");
+#elif defined(__i386__) || defined(__x86_64__)
+ /* SSE2 instruction: movsd %xmm0,%xmm0 */
+ asm volatile (".byte 0xf2,0x0f,0x10,0xc0");
+#endif
+ signal (SIGILL, SIG_DFL);
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
index a1ef017dfda..7e645a85864 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-dom3" } */
+/* APPLE LOCAL lno */
+/* { dg-options "-O1 -fdump-tree-dom3 -ftree-loop-optimize" } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c b/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c
index 2c8a84a494d..e9f57e40f1d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-dom3" } */
+/* APPLE LOCAL lno */
+/* { dg-options "-O1 -fdump-tree-dom3 -ftree-loop-optimize" } */
union tree_node;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040308-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040308-1.c
new file mode 100644
index 00000000000..987aad09519
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20040308-1.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-phiopt1-details" } */
+
+int t( int i)
+{
+ int j;
+ if(i ==0)
+ j = 1;
+ else
+ j = 0;
+
+
+ return j;
+}
+
+/* We should convert one COND_EXPRs into straightline code. */
+/* { dg-final { scan-tree-dump-times "straightline" 1 "phiopt1" {xfail *-*-* } } } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040308-2.c b/gcc/testsuite/gcc.dg/tree-ssa/20040308-2.c
new file mode 100644
index 00000000000..23fad9a47e3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20040308-2.c
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-phiopt1-details -fdump-tree-tailc-details" } */
+
+
+int f(int i)
+{
+ int result;
+ result = t(i);
+ if (result)
+ return result;
+ return 0;
+}
+
+/* We should convert one COND_EXPRs into straightline code. */
+/* { dg-final { scan-tree-dump-times "straightline" 1 "phiopt1" } } */
+/* Also we should have found that the call to t is tail called. */
+/* { dg-final { scan-tree-dump-times "Found tail call" 1 "tailc" } } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040308-3.c b/gcc/testsuite/gcc.dg/tree-ssa/20040308-3.c
new file mode 100644
index 00000000000..962734fdf6a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20040308-3.c
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-phiopt1-details" } */
+
+int t( int i)
+{
+ int j;
+ if(i>=0)
+ j = i;
+ else
+ j = -i;
+ return j;
+}
+
+/* We should convert one COND_EXPRs into straightline code with ABS. */
+/* { dg-final { scan-tree-dump-times "straightline" 1 "phiopt1"} } */
+/* { dg-final { scan-tree-dump-times "ABS_EXPR" 1 "phiopt1"} } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
index 5f99be2874e..4b09b536d13 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-ssa-vops" } */
+/* { dg-options "-O1 -fdump-tree-alias1-vops" } */
extern void abort (void);
int a;
@@ -17,5 +17,4 @@ void bar (void)
malloc functions may clobber global memory. Only the function result
does not alias any other pointer.
Hence, we must have a VDEF for a before and after the call to foo(). */
-/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "ssa"} } */
-
+/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "alias1"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
new file mode 100644
index 00000000000..89b90643e17
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
@@ -0,0 +1,39 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-dom3" } */
+
+
+typedef unsigned int size_t;
+extern void *xmalloc (size_t) __attribute__ ((__malloc__));
+struct edge_def
+{
+ struct basic_block_def *dest;
+ int flags;
+};
+typedef struct edge_def *edge;
+struct basic_block_def
+{
+ int flags;
+};
+typedef struct basic_block_def *basic_block;
+extern int n_basic_blocks;
+extern edge frob ();
+void
+find_unreachable_blocks (int frobit)
+{
+ basic_block *tos, *worklist, bb;
+ tos = worklist = xmalloc (sizeof (basic_block) * n_basic_blocks);
+ edge e = frob();
+ if (!(e->dest->flags & 4))
+ {
+ e->dest->flags |= 4;
+ *tos++ = e->dest;
+ }
+}
+
+/* If the aliasing code does its job properly, then we should be
+ able to determine that modifying e->dest->flags does not
+ modify e or e->dest. The net result is that we only need one
+ load of e->dest. */
+/* { dg-final { scan-tree-dump-times "->dest" 1 "dom3" { xfail *-*-* } } } */
+
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c
new file mode 100644
index 00000000000..6ce588038aa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c
@@ -0,0 +1,13 @@
+/* PR middle-end/19857 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+int i;
+int foo (void)
+{
+ return i & ~(unsigned int) 3;
+}
+
+/* Make sure the optimizers don't introduce overflow where one
+ did not exist in the original. */
+/* { dg-final { scan-tree-dump-times "-0+4" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c b/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c
new file mode 100644
index 00000000000..7dff01ce425
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c
@@ -0,0 +1,12 @@
+/* Verify that we don't libcall for complex * real. */
+/* { dg-do compile } */
+/* { dg-options "-std=c99 -O -fdump-tree-optimized" } */
+
+typedef _Complex float C;
+
+C foo(C x, float y)
+{
+ return x * y;
+}
+
+/* { dg-final { scan-tree-dump-times "__mul" 0 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c b/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c
new file mode 100644
index 00000000000..ce72eb2172f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c
@@ -0,0 +1,12 @@
+/* Verify that we don't libcall for complex / real. */
+/* { dg-do compile } */
+/* { dg-options "-std=c99 -O -fdump-tree-optimized" } */
+
+typedef _Complex float C;
+
+C foo(C x, float y)
+{
+ return x / y;
+}
+
+/* { dg-final { scan-tree-dump-times "__div" 0 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c
new file mode 100644
index 00000000000..4b241c30ba2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-alias1-vops" } */
+/* Test to make sure that inline-asm causes a V_MAY_DEF and that we call test_function twice. */
+
+char test_function(void ) __attribute__((__pure__));
+char f(char *a)
+{
+ char b = test_function();
+ asm("":"=m"(*a):"r"(b));
+ b = test_function();
+ return b;
+}
+
+/* test_function should be called twice as the inline-asm changes memory. */
+/* { dg-final { scan-tree-dump-times "test_function" 2 "optimized"} } */
+
+/* There should a V_MAY_DEF for the inline-asm. */
+/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "alias1"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c
new file mode 100644
index 00000000000..ef8f9607056
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-alias1-vops" } */
+/* Test to make sure that inline-asm causes a V_MAY_DEF. */
+
+
+void link_error();
+void f(char *a)
+{
+ int *a1 = (int *)a;
+ if (*a == 0)
+ asm("":"=m"(*a1));
+ if (*a == 0)
+ link_error ();
+}
+
+/* There should a V_MAY_DEF for the inline-asm and one for the link_error. */
+/* { dg-final { scan-tree-dump-times "V_MAY_DEF" 2 "alias1"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c
new file mode 100644
index 00000000000..c9fc2003ec7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ivcanon-1.c
@@ -0,0 +1,38 @@
+/* APPLE LOCAL file lno */
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-loop-optimize -funroll-loops -fdump-tree-optimized" } */
+
+void foo(void)
+{
+ int n = 16875;
+
+ while (n)
+ {
+ if (n&1)
+ bar (n);
+ n >>= 1;
+ }
+}
+
+static inline int power (long x, unsigned int n)
+{
+ long y = n % 2 ? x : 1;
+
+ while (n >>= 1)
+ {
+ x = x * x;
+ if (n % 2)
+ y = y * x;
+ }
+
+ return y;
+}
+
+void test(long x)
+{
+ bar (power (x, 10));
+ bar (power (x, 27));
+}
+
+/* All loops should be completely unrolled, so there should be no labels. */
+/* { dg-final { scan-tree-dump-times "<L" 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c
new file mode 100644
index 00000000000..e5a408321d7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c
@@ -0,0 +1,34 @@
+/* PR tree-optimization/19828 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-lim-details" } */
+
+int cst_fun1 (int) __attribute__((__const__));
+int cst_fun2 (int) __attribute__((__const__));
+int pure_fun1 (int) __attribute__((__pure__));
+int pure_fun2 (int) __attribute__((__pure__));
+int foo (void);
+
+int xxx (void)
+{
+ int i, k = foo (), x = 0;
+
+ for (i = 0; i < 100; i++)
+ {
+ x += cst_fun1 (k);
+ x += pure_fun1 (k);
+
+ if (k)
+ {
+ x += cst_fun2 (k);
+ x += pure_fun2 (k);
+ }
+ }
+
+ return x;
+}
+
+/* Calls to cst_fun1 and pure_fun1 may be moved out of the loop.
+ Calls to cst_fun2 and pure_fun2 should not be, since calling
+ with k = 0 may be invalid. */
+
+/* { dg-final { scan-tree-dump-times "Moving statement" 2 "lim" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c b/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
new file mode 100644
index 00000000000..c1e7b58e385
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
@@ -0,0 +1,24 @@
+/* PR middle-end/20739 */
+
+/* dg-do compile */
+/* dg-options "-O" */
+
+/* We used to fail to compile this because gimplification dropped the
+ conversion that added the const qualifier to the sub-expression
+ involving baz, and then immediately noticed and reported its
+ absence. */
+
+typedef struct
+{
+ char chars[5];
+}
+baz_t;
+
+extern baz_t * baz;
+
+extern void foo (baz_t);
+int
+bar (const baz_t * ls)
+{
+ foo (ls == 0 ? *(&baz[0]) : *ls);
+}
diff --git a/gcc/testsuite/gcc.dg/ucnid-1.c b/gcc/testsuite/gcc.dg/ucnid-1.c
new file mode 100644
index 00000000000..da8a445d239
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ucnid-1.c
@@ -0,0 +1,27 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+void abort (void);
+
+int main (void)
+{
+ int \u00C0 = 1;
+ int \u00C1 = 2;
+ int \U000000C2 = 3;
+ int wh\u00ff = 4;
+ int a\u00c4b\u0441\U000003b4e = 5;
+
+ if (\u00C0 != 1)
+ abort ();
+ if (\u00c1 != 2)
+ abort ();
+ if (\u00C2 != 3)
+ abort ();
+ if (wh\u00ff != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/ucnid-2.c b/gcc/testsuite/gcc.dg/ucnid-2.c
new file mode 100644
index 00000000000..e4ad6437c1c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ucnid-2.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+void abort (void);
+
+static int \u00C0 = 1;
+static int \u00C1 = 2;
+static int \U000000C2 = 3;
+static int wh\u00ff = 4;
+static int a\u00c4b\u0441\U000003b4e = 5;
+
+int main (void)
+{
+
+ if (\u00C0 != 1)
+ abort ();
+ if (\u00c1 != 2)
+ abort ();
+ if (\u00C2 != 3)
+ abort ();
+ if (wh\u00ff != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/ucnid-3.c b/gcc/testsuite/gcc.dg/ucnid-3.c
new file mode 100644
index 00000000000..af35b7eeb60
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ucnid-3.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+void abort (void);
+
+int \u00C0 = 1;
+int \u00C1 = 2;
+int \U000000C2 = 3;
+int wh\u00ff = 4;
+int a\u00c4b\u0441\U000003b4e = 5;
+
+int main (void)
+{
+
+ if (\u00C0 != 1)
+ abort ();
+ if (\u00c1 != 2)
+ abort ();
+ if (\u00C2 != 3)
+ abort ();
+ if (wh\u00ff != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/ucnid-4.c b/gcc/testsuite/gcc.dg/ucnid-4.c
new file mode 100644
index 00000000000..c248fd69dda
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ucnid-4.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+void abort (void);
+
+int \u00C0(void) { return 1; }
+int \u00C1(void) { return 2; }
+int \U000000C2(void) { return 3; }
+int wh\u00ff(void) { return 4; }
+int a\u00c4b\u0441\U000003b4e(void) { return 5; }
+
+int main (void)
+{
+
+ if (\u00C0() != 1)
+ abort ();
+ if (\u00c1() != 2)
+ abort ();
+ if (\u00C2() != 3)
+ abort ();
+ if (wh\u00ff() != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e() != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/ucnid-5.c b/gcc/testsuite/gcc.dg/ucnid-5.c
new file mode 100644
index 00000000000..ddbf766d3b2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ucnid-5.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99 -fdollars-in-identifiers" } */
+void abort (void);
+
+int a$b(void) { return 1; }
+
+int main (void)
+{
+
+ if (a\u0024b() != 1)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/ucnid-6.c b/gcc/testsuite/gcc.dg/ucnid-6.c
new file mode 100644
index 00000000000..d0116413d82
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ucnid-6.c
@@ -0,0 +1,28 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* { dg-do run } */
+/* { dg-options "-std=c99 -save-temps" } */
+void abort (void);
+
+int \u00C0(void) { return 1; }
+int \u00C1(void) { return 2; }
+int \U000000C2(void) { return 3; }
+int wh\u00ff(void) { return 4; }
+int a\u00c4b\u0441\U000003b4e(void) { return 5; }
+
+int main (void)
+{
+
+ if (\u00C0() != 1)
+ abort ();
+ if (\u00c1() != 2)
+ abort ();
+ if (\u00C2() != 3)
+ abort ();
+ if (wh\u00ff() != 4)
+ abort ();
+ if (a\u00c4b\u0441\U000003b4e() != 5)
+ abort ();
+
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/gcc/testsuite/gcc.dg/uninit-C.c b/gcc/testsuite/gcc.dg/uninit-C.c
index 45decf33521..741106cb463 100644
--- a/gcc/testsuite/gcc.dg/uninit-C.c
+++ b/gcc/testsuite/gcc.dg/uninit-C.c
@@ -3,7 +3,7 @@
/* { dg-options "-O -Wuninitialized" } */
/* Not all platforms support TImode integers. */
-#if defined(__LP64__)
+#if defined(__LP64__) && !defined(__hppa__)
typedef int TItype __attribute__ ((mode (TI)));
#else
typedef long TItype;
diff --git a/gcc/testsuite/gcc.dg/vec_merge_opt_test.c b/gcc/testsuite/gcc.dg/vec_merge_opt_test.c
new file mode 100644
index 00000000000..3191e6256cf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vec_merge_opt_test.c
@@ -0,0 +1,583 @@
+/* APPLE LOCAL begin radar 4110116 */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec -O2" } */
+
+extern void abort();
+
+void foo(char *bS, char *bS_edge, int field_MBAFF, int top){
+ char intra[16] __attribute__ ((aligned(16)));
+ signed short mv_const[8] __attribute__((aligned(16)));
+
+ vector signed short v_zero, v_three, v_ref_mask00, v_ref_mask01, v_vec_maskv, v_vec_maskh;
+ vector unsigned char v_permv, v_permh, v_bS, v_bSh, v_bSv, v_cbp_maskv, v_cbp_maskvn, v_cbp_maskh, v_cbp_maskhn, v_intra_maskh, v_intra_maskv, v_intra_maskhn, v_intra_maskvn;
+ vector unsigned char tmp7, tmp8, tmp9, tmp10, v_c1, v_cbp1, v_cbp2, v_pocl, v_poch;
+ vector signed short v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
+ vector signed short idx0;
+ vector signed short tmp00, tmp01, tmp02, tmp03;
+ v_zero = (vector signed short) 0x0;
+ v_three = (vector signed short) vec_ld (0, (vector signed short *) mv_const);
+
+ vector unsigned char v_coef_mask = vec_ld(0, (vector unsigned char *)mv_const);
+ vector unsigned char v_coef_mask_hi = vec_splat(v_coef_mask, 0);
+ vector unsigned char v_coef_mask_lo = vec_splat(v_coef_mask, 1);
+ v_coef_mask = vec_sld(v_coef_mask_hi, v_coef_mask_lo, 8);
+ vector unsigned char v_bit_mask = vec_sub(vec_splat_u8(7), vec_lvsl(0, (unsigned char *)0));
+ v_bit_mask = vec_sld(vec_sld(v_bit_mask, v_bit_mask, 8), v_bit_mask, 8);
+ v_bit_mask = vec_sl(vec_splat_u8(1), v_bit_mask);
+ tmp5 = (vector signed short) vec_and(v_coef_mask, v_bit_mask);
+
+ intra[0] = 1;
+ tmp8 = vec_ld (0, (vector unsigned char *) intra);
+ tmp9 = vec_ld (0, (vector unsigned char *) mv_const);
+ tmp10 = vec_ld (0, (vector unsigned char *) mv_const);
+ v_permv = vec_ld (0, (vector unsigned char *) mv_const);
+ v_permh = vec_ld (0, (vector unsigned char *) mv_const);
+ tmp6 = vec_ld (0, (vector signed short *) mv_const);
+
+ tmp8 = vec_splat((vector unsigned char) tmp8, 0);
+ tmp9 = vec_splat((vector unsigned char) tmp9, 12);
+ tmp10 = vec_splat((vector unsigned char) tmp10, 12);
+ tmp9 = vec_sld ((vector unsigned char) tmp9,(vector unsigned char) tmp8, 12);
+ tmp10 = vec_sld ((vector unsigned char) tmp10, (vector unsigned char) tmp8, 12);
+ v_intra_maskv = vec_or (tmp9, tmp8);
+ v_intra_maskh = vec_or (tmp10, tmp8);
+ v_intra_maskv = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_intra_maskv, (vector unsigned char) v_zero);
+ v_intra_maskh = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_intra_maskh, (vector unsigned char) v_zero);
+
+ tmp9 = vec_lvsl (4 + (top<<2), (unsigned char *) 0x0);
+ v_cbp1 = vec_perm ((vector unsigned char) tmp6, (vector unsigned char) tmp6, tmp9);
+ v_cbp2 = (vector unsigned char) vec_perm ((vector unsigned char) tmp5, (vector unsigned char) tmp5, (vector unsigned char) v_permv);
+ v_cbp1 = (vector unsigned char) vec_sld ((vector unsigned char) v_cbp1,(vector unsigned char) v_cbp2, 12);
+ v_cbp_maskv = vec_or (v_cbp1, v_cbp2);
+
+ tmp9 = vec_lvsl (12 + (top<<2), (unsigned char *) 0x0);
+ v_cbp1 = vec_perm ((vector unsigned char) tmp6, (vector unsigned char) tmp6, tmp9);
+ v_cbp2 = (vector unsigned char) vec_perm ((vector unsigned char) tmp5, (vector unsigned char) tmp5, (vector unsigned char) v_permh);
+ v_cbp1 = (vector unsigned char) vec_sld ((vector unsigned char) v_cbp1,(vector unsigned char) v_cbp2, 12);
+ v_cbp_maskh = vec_or (v_cbp1, v_cbp2);
+
+ v_cbp_maskv = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_cbp_maskv, (vector unsigned char) v_zero);
+ v_cbp_maskh = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_cbp_maskh, (vector unsigned char) v_zero);
+
+ intra[0] =0;
+ intra[1] =1;
+ intra[2] =2;
+ intra[3] =3;
+ intra[4] =4;
+ intra[5] = 5;
+ intra[6] =6;
+ intra[7] =7;
+ intra[8] =8;
+ intra[9] =9;
+ intra[10] =9;
+ intra[11] =9;
+ intra[12] = 0xff;
+
+ idx0 = vec_ld (0, (signed short *) intra);
+
+ v_c1 = (vector unsigned char) 1;
+
+ if (field_MBAFF){
+ v0 = (vector signed short) vec_and ((vector unsigned char) idx0, v_c1);
+ idx0 = (vector signed short) vec_sra ((vector unsigned char) idx0, v_c1);
+
+ v1 = vec_sld (v0, v0, 15);
+ v1 = (vector signed short) vec_pack (v1, v0);
+
+ v2 = vec_sld (v1, v1, 2);
+ v3 = vec_sld (v1, v1, 10);
+
+ v4 = (vector signed short) vec_cmpeq ((vector signed char) v1, (vector signed char) v2);
+ v5 = (vector signed short) vec_cmpeq ((vector signed char) v1, (vector signed char) v3);
+ v6 = (vector signed short) vec_cmpeq ((vector signed char) v2, (vector signed char) v3);
+ }
+ else {
+ v4 = v5 = v6 = vec_nor (v_zero, v_zero);
+ }
+
+ tmp1 = (vector signed short) vec_sl ((vector unsigned char) idx0, v_c1);
+ v_c1 = vec_mergeh ((vector unsigned char) v_zero, v_c1);
+ tmp1 = (vector signed short) vec_add (tmp1, (vector signed short) v_c1);
+
+ v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (0, (vector unsigned char *) mv_const);
+ tmp2 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+
+ v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (16, (vector unsigned char *) mv_const);
+ tmp1 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+ tmp1 = vec_sel (tmp1, tmp2, (vector unsigned short) (0xffff,0xffff,0,0,0,0,0,0));
+
+ tmp3 = (vector signed short) vec_splat ((vector unsigned char) idx0, 12);
+ v_c1 = (vector unsigned char) vec_nor (v_zero, v_zero);
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) idx0, (vector signed char) v_c1);
+ tmp1 = vec_sel (tmp1, (vector signed short) tmp3, (vector unsigned short) tmp0);
+
+ tmp2 = vec_sld (tmp1, tmp1, 15);
+ tmp1 = (vector signed short) vec_pack (tmp2, tmp1);
+
+ tmp2 = vec_sld (tmp1, tmp1, 2);
+ tmp3 = vec_sld (tmp1, tmp1, 10);
+
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp2);
+ tmp4 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp3);
+ tmp1 = (vector signed short) vec_cmpeq ((vector signed char) tmp2, (vector signed char) tmp3);
+ tmp0 = vec_and (tmp0, v4);
+ tmp4 = vec_and (tmp4, v5);
+ tmp1 = vec_and (tmp1, v6);
+ tmp2 = vec_sld ((vector signed short) tmp0, (vector signed short) tmp0, 8);
+ tmp3 = vec_sld ((vector signed short) tmp4, (vector signed short) tmp4, 8);
+ tmp5 = vec_sld ((vector signed short) tmp1, (vector signed short) tmp1, 8);
+ tmp0 = vec_and (tmp0, tmp2);
+ tmp4 = vec_and (tmp4, tmp3);
+ tmp1 = vec_and (tmp1, tmp5);
+ v_ref_mask00 = vec_mergeh ((vector signed short) tmp0, (vector signed short) v_c1);
+ v_ref_mask01 = vec_mergeh ((vector signed short) tmp4, (vector signed short) tmp1);
+ v_ref_mask00 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask00, (vector unsigned char) v_ref_mask00);
+ v_ref_mask01 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask01, (vector unsigned char) v_ref_mask01);
+
+ v0 = vec_ld (0, (vector signed short *) mv_const);
+ v1 = vec_ld (16, (vector signed short *) mv_const);
+ v4 = vec_ld (64, (vector signed short *) mv_const);
+ v5 = vec_ld (80, (vector signed short *) mv_const);
+ v8 = vec_ld (0, (vector signed short *) mv_const);
+ v9 = vec_ld (16, (vector signed short *) mv_const);
+
+ tmp0 = (vector signed short) vec_perm ((vector unsigned char) v8, (vector unsigned char) v8, (vector unsigned char) (0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15));
+ tmp1 = (vector signed short) vec_mergeh ((vector signed int) v0, (vector signed int) v1);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp0 = (vector signed short) vec_perm ((vector unsigned char) v9, (vector unsigned char) v9, (vector unsigned char) (0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15));
+ tmp1 = (vector signed short) vec_mergeh ((vector signed int) v4, (vector signed int) v5);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp00 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ tmp0 = (vector signed short) vec_mergeh ((vector signed int) v0, (vector signed int) v1);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp0 = (vector signed short) vec_mergeh ((vector signed int) v4, (vector signed int) v5);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp01 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ v2 = vec_ld (32, (vector signed short *) mv_const);
+ v3 = vec_ld (48, (vector signed short *) mv_const);
+ v6 = vec_ld (96, (vector signed short *) mv_const);
+ v7 = vec_ld (112,(vector signed short *) mv_const);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+ tmp1 = (vector signed short) vec_mergeh ((vector signed int) v2, (vector signed int) v3);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+ tmp1 = (vector signed short) vec_mergeh ((vector signed int) v6, (vector signed int) v7);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp02 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ tmp0 = (vector signed short) vec_mergeh ((vector signed int) v2, (vector signed int) v3);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v2, (vector signed int) v3);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp0 = (vector signed short) vec_mergeh ((vector signed int) v6, (vector signed int) v7);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v6, (vector signed int) v7);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp03 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ tmp0 = (vector signed short) vec_pack ((vector unsigned int) tmp00, (vector unsigned int) tmp01);
+ tmp1 = (vector signed short) vec_pack ((vector unsigned int) tmp02, (vector unsigned int) tmp03);
+ tmp2 = (vector signed short) vec_mergeh ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp3 = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp4 = (vector signed short) vec_mergeh ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp5 = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp4 = vec_and (v_ref_mask00, tmp4);
+ tmp5 = vec_and (v_ref_mask01, tmp5);
+
+ tmp0 = vec_nor (v_ref_mask00, v_ref_mask01);
+ tmp1 = vec_and (v_ref_mask00, v_ref_mask01);
+ tmp2 = vec_and (tmp4, tmp5);
+ tmp2 = vec_and (tmp2, tmp1);
+ tmp3 = vec_nor (tmp4, tmp5);
+ tmp3 = vec_nor (tmp3, tmp1);
+ v_vec_maskv = vec_or (tmp0, tmp2);
+ v_vec_maskv = vec_or (v_vec_maskv, tmp3);
+
+ intra[0] = 1;
+ intra[1] = 1;
+ intra[2] = 2;
+ intra[3] = 3;
+ intra[4] = 2;
+ intra[5] = 2;
+ intra[6] = 2;
+ intra[7] = 1;
+ intra[8] = 1;
+ intra[9] = 5;
+ intra[10] = 5;
+ intra[11] = 5;
+
+ intra[13] = 0;
+ intra[14] = 0;
+ intra[15] = 0;
+
+ idx0 = vec_ld (0, (signed short *) intra);
+
+ v_c1 = (vector unsigned char) 1;
+
+ if (field_MBAFF){
+ v8 = (vector signed short) vec_and ((vector unsigned char) idx0, v_c1);
+ idx0 = (vector signed short) vec_sra ((vector unsigned char) idx0, v_c1);
+
+ v9 = vec_sld (v8, v8, 15);
+ v9 = (vector signed short) vec_pack (v9, v8);
+
+ v10 = vec_sld (v9, v9, 2);
+ v11 = vec_sld (v9, v9, 10);
+
+ v8 = (vector signed short) vec_cmpeq ((vector signed char) v9, (vector signed char) v10);
+ v9 = (vector signed short) vec_cmpeq ((vector signed char) v9, (vector signed char) v11);
+ v10 = (vector signed short) vec_cmpeq ((vector signed char) v10, (vector signed char) v11);
+ }
+ else {
+ v8 = v9 = v10 = vec_nor (v_zero, v_zero);
+ }
+
+ tmp1 = (vector signed short) vec_sl ((vector unsigned char) idx0, v_c1);
+
+ v_c1 = vec_mergeh ((vector unsigned char) v_zero, v_c1);
+ tmp1 = (vector signed short) vec_add (tmp1, (vector signed short) v_c1);
+
+if (1){
+ unsigned char toto2[16] __attribute__((aligned(16)));
+ int m;
+
+ vec_st(v_c1, 0, (unsigned char *) toto2);
+ for (m=0; m < 16; m +=2)
+ if (toto2[m] != 0)
+ abort();
+ for (m=1; m < 16; m +=2)
+ if (toto2[m] != 1)
+ abort();
+}
+
+ v_pocl = vec_ld (32, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (48, (vector unsigned char *) mv_const);
+ tmp2 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+
+ v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (16, (vector unsigned char *) mv_const);
+
+ tmp1 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+
+ tmp1 = vec_sel (tmp1, tmp2, (vector unsigned short) (0xffff,0xffff,0,0,0,0,0,0));
+
+
+ tmp3 = (vector signed short) vec_splat ((vector unsigned char) idx0, 12);
+ v_c1 = (vector unsigned char) vec_nor (v_zero, v_zero);
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) idx0, (vector signed char) v_c1);
+ tmp1 = vec_sel (tmp1, (vector signed short) tmp3, (vector unsigned short) tmp0);
+
+ tmp2 = vec_sld (tmp1, tmp1, 15);
+ tmp1 = (vector signed short) vec_pack (tmp2, tmp1);
+
+
+ tmp2 = vec_sld (tmp1, tmp1, 2);
+ tmp3 = vec_sld (tmp1, tmp1, 10);
+
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp2);
+ tmp4 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp3);
+ tmp1 = (vector signed short) vec_cmpeq ((vector signed char) tmp2, (vector signed char) tmp3);
+ tmp0 = vec_and (tmp0, v8);
+ tmp4 = vec_and (tmp4, v9);
+ tmp1 = vec_and (tmp1, v10);
+ tmp2 = vec_sld ((vector signed short) tmp0, (vector signed short) tmp0, 8);
+ tmp3 = vec_sld ((vector signed short) tmp4, (vector signed short) tmp4, 8);
+ tmp5 = vec_sld ((vector signed short) tmp1, (vector signed short) tmp1, 8);
+ tmp0 = vec_and (tmp0, tmp2);
+ tmp4 = vec_and (tmp4, tmp3);
+ tmp1 = vec_and (tmp1, tmp5);
+ v_ref_mask00 = vec_mergeh ((vector signed short) tmp0, (vector signed short) v_c1);
+ v_ref_mask01 = vec_mergeh ((vector signed short) tmp4, (vector signed short) tmp1);
+ v_ref_mask00 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask00, (vector unsigned char) v_ref_mask00);
+ v_ref_mask01 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask01, (vector unsigned char) v_ref_mask01);
+
+
+ v_permv= vec_ld (0, (vector unsigned char *) mv_const);
+ v8 = vec_ld (0, (vector signed short *) mv_const);
+ v9 = vec_ld (16, (vector signed short *) mv_const);
+ tmp2 = vec_perm (v0, v0, v_permv);
+ tmp3 = vec_sub (vec_max (v8, v0), vec_min (v8, v0));
+ tmp4 = vec_sub (vec_max (v8, tmp2), vec_min (v8, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v2, v2, v_permv);
+ tmp5 = vec_sub (vec_max (v9, v2), vec_min (v9, v2));
+ tmp6 = vec_sub (vec_max (v9, tmp2), vec_min (v9, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp00 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+ tmp2 = vec_perm (v1, v1, v_permv);
+ tmp3 = vec_sub (vec_max (v0, v1), vec_min (v0, v1));
+ tmp4 = vec_sub (vec_max (v0, tmp2), vec_min (v0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v3, v3, v_permv);
+ tmp5 = vec_sub (vec_max (v2, v3), vec_min (v2, v3));
+ tmp6 = vec_sub (vec_max (v2, tmp2), vec_min (v2, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp01 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+ tmp2 = vec_perm (v4, v4, v_permv);
+ tmp3 = vec_sub (vec_max (v1, v4), vec_min (v1, v4));
+ tmp4 = vec_sub (vec_max (v1, tmp2), vec_min (v1, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v6, v6, v_permv);
+ tmp5 = vec_sub (vec_max (v3, v6), vec_min (v3, v6));
+ tmp6 = vec_sub (vec_max (v3, tmp2), vec_min (v3, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp02 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+
+ tmp2 = vec_perm (v5, v5, v_permv);
+ tmp3 = vec_sub (vec_max (v4, v5), vec_min (v4, v5));
+ tmp4 = vec_sub (vec_max (v4, tmp2), vec_min (v4, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v7, v7, v_permv);
+ tmp5 = vec_sub (vec_max (v6, v7), vec_min (v6, v7));
+ tmp6 = vec_sub (vec_max (v6, tmp2), vec_min (v6, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp03 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+ tmp0 = (vector signed short) vec_pack ((vector unsigned short) tmp00, (vector unsigned short) tmp01);
+ tmp1 = (vector signed short) vec_pack ((vector unsigned short) tmp02, (vector unsigned short) tmp03);
+ tmp2 = (vector signed short) vec_mergeh ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp3 = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp4 = (vector signed short) vec_mergeh ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp5 = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp4 = vec_and (v_ref_mask00, tmp4);
+ tmp5 = vec_and (v_ref_mask01, tmp5);
+
+ tmp0 = vec_nor (v_ref_mask00, v_ref_mask01);
+ tmp1 = vec_and (v_ref_mask00, v_ref_mask01);
+ tmp2 = vec_and (tmp4, tmp5);
+ tmp2 = vec_and (tmp2, tmp1);
+ tmp3 = vec_nor (tmp4, tmp5);
+ tmp3 = vec_nor (tmp3, tmp1);
+ v_vec_maskh = vec_or (tmp0, tmp2);
+ v_vec_maskh = vec_or (v_vec_maskh, tmp3);
+
+
+ v_intra_maskvn = vec_nor (v_intra_maskv, v_intra_maskv);
+ v_intra_maskhn = vec_nor (v_intra_maskh, v_intra_maskh);
+ v_cbp_maskvn = (vector unsigned char) vec_cmpeq ((vector unsigned char) v_cbp_maskv, (vector unsigned char) v_zero);
+ v_cbp_maskhn = (vector unsigned char) vec_cmpeq ((vector unsigned char) v_cbp_maskh, (vector unsigned char) v_zero);
+
+ v_cbp_maskv = vec_and (v_cbp_maskv, v_intra_maskvn);
+ v_cbp_maskh = vec_and (v_cbp_maskh, v_intra_maskhn);
+ v_vec_maskv = vec_and (v_vec_maskv, (vector signed short) v_intra_maskvn);
+ v_vec_maskv = vec_and (v_vec_maskv, (vector signed short) v_cbp_maskvn);
+ v_vec_maskh = vec_and (v_vec_maskh, (vector signed short) v_intra_maskhn);
+ v_vec_maskh = vec_and (v_vec_maskh, (vector signed short) v_cbp_maskhn);
+
+ tmp9 = vec_splat_u8(2);
+ tmp8 = vec_splat_u8(1);
+ v_bS = vec_ld (0, (vector unsigned char *) mv_const);
+
+ v_bSv = vec_and ((vector unsigned char) v_bS, (vector unsigned char)v_intra_maskv);
+ tmp7 = vec_and ((vector unsigned char)tmp9, (vector unsigned char)v_cbp_maskv);
+ tmp6 = (vector signed short) vec_and ((vector unsigned char)tmp8, (vector unsigned char)v_vec_maskv);
+ tmp7 = vec_or ((vector unsigned char)tmp7, (vector unsigned char)tmp6);
+ v_bSv = vec_or ((vector unsigned char)tmp7, (vector unsigned char)v_bSv);
+
+ v_bS = vec_ld (0, (vector unsigned char *) mv_const);
+ v_bSh = vec_and ((vector unsigned char) v_bS, (vector unsigned char)v_intra_maskh);
+ tmp7 = vec_and ((vector unsigned char)tmp9, (vector unsigned char)v_cbp_maskh);
+ tmp6 = (vector signed short) vec_and ((vector unsigned char)tmp8, (vector unsigned char)v_vec_maskh);
+ tmp7 = vec_or ((vector unsigned char)tmp7, (vector unsigned char)tmp6);
+ v_bSh = vec_or ((vector unsigned char)tmp7, (vector unsigned char)v_bSh);
+
+ v_permh = (vector unsigned char) vec_ld (0 , (vector unsigned char *) mv_const);
+ v_permv = (vector unsigned char) vec_ld (0, (vector unsigned char *) mv_const);
+ v_bSv = vec_and (v_bSv, v_permv);
+ v_bSh = vec_and (v_bSh, v_permh);
+
+ vec_st (v_bSv, 0, (unsigned char *) mv_const);
+ vec_st (v_bSh, 0, (unsigned char *) mv_const);
+
+ v_bSv = vec_mergeh (v_bSv, v_bSv);
+ v_bSv = vec_mergeh (v_bSv, v_bSv);
+ v_bSh = vec_mergeh (v_bSh, v_bSh);
+ v_bSh = vec_mergeh (v_bSh, v_bSh);
+
+ vec_st (v_bSv, 0, (vector unsigned char *) mv_const);
+ vec_st (v_bSh, 0,(vector unsigned char *) mv_const);
+}
+
+
+int main(int argc, char **argv)
+{
+ char toto[32] __attribute__((aligned(16)));
+ foo(toto, toto, 0, 0);
+ return 0;
+}
+/* APPLE LOCAL end radar 4110116 */
diff --git a/gcc/testsuite/gcc.dg/vec_mergel_opt_test.c b/gcc/testsuite/gcc.dg/vec_mergel_opt_test.c
new file mode 100644
index 00000000000..265477987f2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vec_mergel_opt_test.c
@@ -0,0 +1,583 @@
+/* APPLE LOCAL begin radar 4110116 */
+/* { dg-do run { target powerpc*-*-* } } */
+/* { dg-options "-faltivec -O2" } */
+
+extern void abort();
+
+void foo(char *bS, char *bS_edge, int field_MBAFF, int top){
+ char intra[16] __attribute__ ((aligned(16)));
+ signed short mv_const[8] __attribute__((aligned(16)));
+
+ vector signed short v_zero, v_three, v_ref_mask00, v_ref_mask01, v_vec_maskv, v_vec_maskh;
+ vector unsigned char v_permv, v_permh, v_bS, v_bSh, v_bSv, v_cbp_maskv, v_cbp_maskvn, v_cbp_maskh, v_cbp_maskhn, v_intra_maskh, v_intra_maskv, v_intra_maskhn, v_intra_maskvn;
+ vector unsigned char tmp7, tmp8, tmp9, tmp10, v_c1, v_cbp1, v_cbp2, v_pocl, v_poch;
+ vector signed short v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
+ vector signed short idx0;
+ vector signed short tmp00, tmp01, tmp02, tmp03;
+ v_zero = (vector signed short) 0x0;
+ v_three = (vector signed short) vec_ld (0, (vector signed short *) mv_const);
+
+ vector unsigned char v_coef_mask = vec_ld(0, (vector unsigned char *)mv_const);
+ vector unsigned char v_coef_mask_hi = vec_splat(v_coef_mask, 0);
+ vector unsigned char v_coef_mask_lo = vec_splat(v_coef_mask, 1);
+ v_coef_mask = vec_sld(v_coef_mask_hi, v_coef_mask_lo, 8);
+ vector unsigned char v_bit_mask = vec_sub(vec_splat_u8(7), vec_lvsl(0, (unsigned char *)0));
+ v_bit_mask = vec_sld(vec_sld(v_bit_mask, v_bit_mask, 8), v_bit_mask, 8);
+ v_bit_mask = vec_sl(vec_splat_u8(1), v_bit_mask);
+ tmp5 = (vector signed short) vec_and(v_coef_mask, v_bit_mask);
+
+ intra[0] = 1;
+ tmp8 = vec_ld (0, (vector unsigned char *) intra);
+ tmp9 = vec_ld (0, (vector unsigned char *) mv_const);
+ tmp10 = vec_ld (0, (vector unsigned char *) mv_const);
+ v_permv = vec_ld (0, (vector unsigned char *) mv_const);
+ v_permh = vec_ld (0, (vector unsigned char *) mv_const);
+ tmp6 = vec_ld (0, (vector signed short *) mv_const);
+
+ tmp8 = vec_splat((vector unsigned char) tmp8, 0);
+ tmp9 = vec_splat((vector unsigned char) tmp9, 12);
+ tmp10 = vec_splat((vector unsigned char) tmp10, 12);
+ tmp9 = vec_sld ((vector unsigned char) tmp9,(vector unsigned char) tmp8, 12);
+ tmp10 = vec_sld ((vector unsigned char) tmp10, (vector unsigned char) tmp8, 12);
+ v_intra_maskv = vec_or (tmp9, tmp8);
+ v_intra_maskh = vec_or (tmp10, tmp8);
+ v_intra_maskv = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_intra_maskv, (vector unsigned char) v_zero);
+ v_intra_maskh = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_intra_maskh, (vector unsigned char) v_zero);
+
+ tmp9 = vec_lvsl (4 + (top<<2), (unsigned char *) 0x0);
+ v_cbp1 = vec_perm ((vector unsigned char) tmp6, (vector unsigned char) tmp6, tmp9);
+ v_cbp2 = (vector unsigned char) vec_perm ((vector unsigned char) tmp5, (vector unsigned char) tmp5, (vector unsigned char) v_permv);
+ v_cbp1 = (vector unsigned char) vec_sld ((vector unsigned char) v_cbp1,(vector unsigned char) v_cbp2, 12);
+ v_cbp_maskv = vec_or (v_cbp1, v_cbp2);
+
+ tmp9 = vec_lvsl (12 + (top<<2), (unsigned char *) 0x0);
+ v_cbp1 = vec_perm ((vector unsigned char) tmp6, (vector unsigned char) tmp6, tmp9);
+ v_cbp2 = (vector unsigned char) vec_perm ((vector unsigned char) tmp5, (vector unsigned char) tmp5, (vector unsigned char) v_permh);
+ v_cbp1 = (vector unsigned char) vec_sld ((vector unsigned char) v_cbp1,(vector unsigned char) v_cbp2, 12);
+ v_cbp_maskh = vec_or (v_cbp1, v_cbp2);
+
+ v_cbp_maskv = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_cbp_maskv, (vector unsigned char) v_zero);
+ v_cbp_maskh = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_cbp_maskh, (vector unsigned char) v_zero);
+
+ intra[0] =0;
+ intra[1] =1;
+ intra[2] =2;
+ intra[3] =3;
+ intra[4] =4;
+ intra[5] = 5;
+ intra[6] =6;
+ intra[7] =7;
+ intra[8] =8;
+ intra[9] =9;
+ intra[10] =9;
+ intra[11] =9;
+ intra[12] = 0xff;
+
+ idx0 = vec_ld (0, (signed short *) intra);
+
+ v_c1 = (vector unsigned char) 1;
+
+ if (field_MBAFF){
+ v0 = (vector signed short) vec_and ((vector unsigned char) idx0, v_c1);
+ idx0 = (vector signed short) vec_sra ((vector unsigned char) idx0, v_c1);
+
+ v1 = vec_sld (v0, v0, 15);
+ v1 = (vector signed short) vec_pack (v1, v0);
+
+ v2 = vec_sld (v1, v1, 2);
+ v3 = vec_sld (v1, v1, 10);
+
+ v4 = (vector signed short) vec_cmpeq ((vector signed char) v1, (vector signed char) v2);
+ v5 = (vector signed short) vec_cmpeq ((vector signed char) v1, (vector signed char) v3);
+ v6 = (vector signed short) vec_cmpeq ((vector signed char) v2, (vector signed char) v3);
+ }
+ else {
+ v4 = v5 = v6 = vec_nor (v_zero, v_zero);
+ }
+
+ tmp1 = (vector signed short) vec_sl ((vector unsigned char) idx0, v_c1);
+ v_c1 = vec_mergel ((vector unsigned char) v_zero, v_c1);
+ tmp1 = (vector signed short) vec_add (tmp1, (vector signed short) v_c1);
+
+ v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (0, (vector unsigned char *) mv_const);
+ tmp2 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+
+ v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (16, (vector unsigned char *) mv_const);
+ tmp1 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+ tmp1 = vec_sel (tmp1, tmp2, (vector unsigned short) (0xffff,0xffff,0,0,0,0,0,0));
+
+ tmp3 = (vector signed short) vec_splat ((vector unsigned char) idx0, 12);
+ v_c1 = (vector unsigned char) vec_nor (v_zero, v_zero);
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) idx0, (vector signed char) v_c1);
+ tmp1 = vec_sel (tmp1, (vector signed short) tmp3, (vector unsigned short) tmp0);
+
+ tmp2 = vec_sld (tmp1, tmp1, 15);
+ tmp1 = (vector signed short) vec_pack (tmp2, tmp1);
+
+ tmp2 = vec_sld (tmp1, tmp1, 2);
+ tmp3 = vec_sld (tmp1, tmp1, 10);
+
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp2);
+ tmp4 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp3);
+ tmp1 = (vector signed short) vec_cmpeq ((vector signed char) tmp2, (vector signed char) tmp3);
+ tmp0 = vec_and (tmp0, v4);
+ tmp4 = vec_and (tmp4, v5);
+ tmp1 = vec_and (tmp1, v6);
+ tmp2 = vec_sld ((vector signed short) tmp0, (vector signed short) tmp0, 8);
+ tmp3 = vec_sld ((vector signed short) tmp4, (vector signed short) tmp4, 8);
+ tmp5 = vec_sld ((vector signed short) tmp1, (vector signed short) tmp1, 8);
+ tmp0 = vec_and (tmp0, tmp2);
+ tmp4 = vec_and (tmp4, tmp3);
+ tmp1 = vec_and (tmp1, tmp5);
+ v_ref_mask00 = vec_mergel ((vector signed short) tmp0, (vector signed short) v_c1);
+ v_ref_mask01 = vec_mergel ((vector signed short) tmp4, (vector signed short) tmp1);
+ v_ref_mask00 = (vector signed short) vec_mergel ((vector unsigned char) v_ref_mask00, (vector unsigned char) v_ref_mask00);
+ v_ref_mask01 = (vector signed short) vec_mergel ((vector unsigned char) v_ref_mask01, (vector unsigned char) v_ref_mask01);
+
+ v0 = vec_ld (0, (vector signed short *) mv_const);
+ v1 = vec_ld (16, (vector signed short *) mv_const);
+ v4 = vec_ld (64, (vector signed short *) mv_const);
+ v5 = vec_ld (80, (vector signed short *) mv_const);
+ v8 = vec_ld (0, (vector signed short *) mv_const);
+ v9 = vec_ld (16, (vector signed short *) mv_const);
+
+ tmp0 = (vector signed short) vec_perm ((vector unsigned char) v8, (vector unsigned char) v8, (vector unsigned char) (0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15));
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp0 = (vector signed short) vec_perm ((vector unsigned char) v9, (vector unsigned char) v9, (vector unsigned char) (0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15));
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp00 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp01 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ v2 = vec_ld (32, (vector signed short *) mv_const);
+ v3 = vec_ld (48, (vector signed short *) mv_const);
+ v6 = vec_ld (96, (vector signed short *) mv_const);
+ v7 = vec_ld (112,(vector signed short *) mv_const);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v2, (vector signed int) v3);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v6, (vector signed int) v7);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp02 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v2, (vector signed int) v3);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v2, (vector signed int) v3);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp3 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp4 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp0 = (vector signed short) vec_mergel ((vector signed int) v6, (vector signed int) v7);
+ tmp1 = (vector signed short) vec_mergel ((vector signed int) v6, (vector signed int) v7);
+ tmp2 = vec_sld (tmp1, tmp1, 8);
+ tmp5 = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+ tmp6 = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 12);
+ tmp6 = vec_sld (tmp4, tmp4, 12);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp03 = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+
+ tmp0 = (vector signed short) vec_pack ((vector unsigned int) tmp00, (vector unsigned int) tmp01);
+ tmp1 = (vector signed short) vec_pack ((vector unsigned int) tmp02, (vector unsigned int) tmp03);
+ tmp2 = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp3 = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp4 = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp5 = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp4 = vec_and (v_ref_mask00, tmp4);
+ tmp5 = vec_and (v_ref_mask01, tmp5);
+
+ tmp0 = vec_nor (v_ref_mask00, v_ref_mask01);
+ tmp1 = vec_and (v_ref_mask00, v_ref_mask01);
+ tmp2 = vec_and (tmp4, tmp5);
+ tmp2 = vec_and (tmp2, tmp1);
+ tmp3 = vec_nor (tmp4, tmp5);
+ tmp3 = vec_nor (tmp3, tmp1);
+ v_vec_maskv = vec_or (tmp0, tmp2);
+ v_vec_maskv = vec_or (v_vec_maskv, tmp3);
+
+ intra[0] = 1;
+ intra[1] = 1;
+ intra[2] = 2;
+ intra[3] = 3;
+ intra[4] = 2;
+ intra[5] = 2;
+ intra[6] = 2;
+ intra[7] = 1;
+ intra[8] = 1;
+ intra[9] = 5;
+ intra[10] = 5;
+ intra[11] = 5;
+
+ intra[13] = 0;
+ intra[14] = 0;
+ intra[15] = 0;
+
+ idx0 = vec_ld (0, (signed short *) intra);
+
+ v_c1 = (vector unsigned char) 1;
+
+ if (field_MBAFF){
+ v8 = (vector signed short) vec_and ((vector unsigned char) idx0, v_c1);
+ idx0 = (vector signed short) vec_sra ((vector unsigned char) idx0, v_c1);
+
+ v9 = vec_sld (v8, v8, 15);
+ v9 = (vector signed short) vec_pack (v9, v8);
+
+ v10 = vec_sld (v9, v9, 2);
+ v11 = vec_sld (v9, v9, 10);
+
+ v8 = (vector signed short) vec_cmpeq ((vector signed char) v9, (vector signed char) v10);
+ v9 = (vector signed short) vec_cmpeq ((vector signed char) v9, (vector signed char) v11);
+ v10 = (vector signed short) vec_cmpeq ((vector signed char) v10, (vector signed char) v11);
+ }
+ else {
+ v8 = v9 = v10 = vec_nor (v_zero, v_zero);
+ }
+
+ tmp1 = (vector signed short) vec_sl ((vector unsigned char) idx0, v_c1);
+
+ v_c1 = vec_mergel ((vector unsigned char) v_zero, v_c1);
+ tmp1 = (vector signed short) vec_add (tmp1, (vector signed short) v_c1);
+
+if (1){
+ unsigned char toto2[16] __attribute__((aligned(16)));
+ int m;
+
+ vec_st(v_c1, 0, (unsigned char *) toto2);
+ for (m=0; m < 16; m +=2)
+ if (toto2[m] != 0)
+ abort();
+ for (m=1; m < 16; m +=2)
+ if (toto2[m] != 1)
+ abort();
+}
+
+ v_pocl = vec_ld (32, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (48, (vector unsigned char *) mv_const);
+ tmp2 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+
+ v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+ v_poch = vec_ld (16, (vector unsigned char *) mv_const);
+
+ tmp1 = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+
+ tmp1 = vec_sel (tmp1, tmp2, (vector unsigned short) (0xffff,0xffff,0,0,0,0,0,0));
+
+
+ tmp3 = (vector signed short) vec_splat ((vector unsigned char) idx0, 12);
+ v_c1 = (vector unsigned char) vec_nor (v_zero, v_zero);
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) idx0, (vector signed char) v_c1);
+ tmp1 = vec_sel (tmp1, (vector signed short) tmp3, (vector unsigned short) tmp0);
+
+ tmp2 = vec_sld (tmp1, tmp1, 15);
+ tmp1 = (vector signed short) vec_pack (tmp2, tmp1);
+
+
+ tmp2 = vec_sld (tmp1, tmp1, 2);
+ tmp3 = vec_sld (tmp1, tmp1, 10);
+
+ tmp0 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp2);
+ tmp4 = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp3);
+ tmp1 = (vector signed short) vec_cmpeq ((vector signed char) tmp2, (vector signed char) tmp3);
+ tmp0 = vec_and (tmp0, v8);
+ tmp4 = vec_and (tmp4, v9);
+ tmp1 = vec_and (tmp1, v10);
+ tmp2 = vec_sld ((vector signed short) tmp0, (vector signed short) tmp0, 8);
+ tmp3 = vec_sld ((vector signed short) tmp4, (vector signed short) tmp4, 8);
+ tmp5 = vec_sld ((vector signed short) tmp1, (vector signed short) tmp1, 8);
+ tmp0 = vec_and (tmp0, tmp2);
+ tmp4 = vec_and (tmp4, tmp3);
+ tmp1 = vec_and (tmp1, tmp5);
+ v_ref_mask00 = vec_mergel ((vector signed short) tmp0, (vector signed short) v_c1);
+ v_ref_mask01 = vec_mergel ((vector signed short) tmp4, (vector signed short) tmp1);
+ v_ref_mask00 = (vector signed short) vec_mergel ((vector unsigned char) v_ref_mask00, (vector unsigned char) v_ref_mask00);
+ v_ref_mask01 = (vector signed short) vec_mergel ((vector unsigned char) v_ref_mask01, (vector unsigned char) v_ref_mask01);
+
+
+ v_permv= vec_ld (0, (vector unsigned char *) mv_const);
+ v8 = vec_ld (0, (vector signed short *) mv_const);
+ v9 = vec_ld (16, (vector signed short *) mv_const);
+ tmp2 = vec_perm (v0, v0, v_permv);
+ tmp3 = vec_sub (vec_max (v8, v0), vec_min (v8, v0));
+ tmp4 = vec_sub (vec_max (v8, tmp2), vec_min (v8, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v2, v2, v_permv);
+ tmp5 = vec_sub (vec_max (v9, v2), vec_min (v9, v2));
+ tmp6 = vec_sub (vec_max (v9, tmp2), vec_min (v9, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp00 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+ tmp2 = vec_perm (v1, v1, v_permv);
+ tmp3 = vec_sub (vec_max (v0, v1), vec_min (v0, v1));
+ tmp4 = vec_sub (vec_max (v0, tmp2), vec_min (v0, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v3, v3, v_permv);
+ tmp5 = vec_sub (vec_max (v2, v3), vec_min (v2, v3));
+ tmp6 = vec_sub (vec_max (v2, tmp2), vec_min (v2, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp01 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+ tmp2 = vec_perm (v4, v4, v_permv);
+ tmp3 = vec_sub (vec_max (v1, v4), vec_min (v1, v4));
+ tmp4 = vec_sub (vec_max (v1, tmp2), vec_min (v1, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v6, v6, v_permv);
+ tmp5 = vec_sub (vec_max (v3, v6), vec_min (v3, v6));
+ tmp6 = vec_sub (vec_max (v3, tmp2), vec_min (v3, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp02 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+
+ tmp2 = vec_perm (v5, v5, v_permv);
+ tmp3 = vec_sub (vec_max (v4, v5), vec_min (v4, v5));
+ tmp4 = vec_sub (vec_max (v4, tmp2), vec_min (v4, tmp2));
+ tmp3 = (vector signed short) vec_cmpgt (tmp3, v_three);
+ tmp4 = (vector signed short) vec_cmpgt (tmp4, v_three);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+
+ tmp2 = vec_perm (v7, v7, v_permv);
+ tmp5 = vec_sub (vec_max (v6, v7), vec_min (v6, v7));
+ tmp6 = vec_sub (vec_max (v6, tmp2), vec_min (v6, tmp2));
+ tmp5 = (vector signed short) vec_cmpgt (tmp5, v_three);
+ tmp6 = (vector signed short) vec_cmpgt (tmp6, v_three);
+ tmp0 = vec_sld (tmp5, tmp5, 14);
+ tmp1 = vec_sld (tmp6, tmp6, 14);
+ tmp5 = vec_or (tmp0, tmp5);
+ tmp6 = vec_or (tmp1, tmp6);
+
+ tmp3 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+ tmp4 = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+ tmp5 = vec_sld (tmp3, tmp3, 14);
+ tmp6 = vec_sld (tmp4, tmp4, 14);
+ tmp3 = vec_or (tmp3, tmp5);
+ tmp4 = vec_or (tmp4, tmp6);
+ tmp03 = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+
+ tmp0 = (vector signed short) vec_pack ((vector unsigned short) tmp00, (vector unsigned short) tmp01);
+ tmp1 = (vector signed short) vec_pack ((vector unsigned short) tmp02, (vector unsigned short) tmp03);
+ tmp2 = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp3 = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+ tmp4 = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp5 = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+ tmp4 = vec_and (v_ref_mask00, tmp4);
+ tmp5 = vec_and (v_ref_mask01, tmp5);
+
+ tmp0 = vec_nor (v_ref_mask00, v_ref_mask01);
+ tmp1 = vec_and (v_ref_mask00, v_ref_mask01);
+ tmp2 = vec_and (tmp4, tmp5);
+ tmp2 = vec_and (tmp2, tmp1);
+ tmp3 = vec_nor (tmp4, tmp5);
+ tmp3 = vec_nor (tmp3, tmp1);
+ v_vec_maskh = vec_or (tmp0, tmp2);
+ v_vec_maskh = vec_or (v_vec_maskh, tmp3);
+
+
+ v_intra_maskvn = vec_nor (v_intra_maskv, v_intra_maskv);
+ v_intra_maskhn = vec_nor (v_intra_maskh, v_intra_maskh);
+ v_cbp_maskvn = (vector unsigned char) vec_cmpeq ((vector unsigned char) v_cbp_maskv, (vector unsigned char) v_zero);
+ v_cbp_maskhn = (vector unsigned char) vec_cmpeq ((vector unsigned char) v_cbp_maskh, (vector unsigned char) v_zero);
+
+ v_cbp_maskv = vec_and (v_cbp_maskv, v_intra_maskvn);
+ v_cbp_maskh = vec_and (v_cbp_maskh, v_intra_maskhn);
+ v_vec_maskv = vec_and (v_vec_maskv, (vector signed short) v_intra_maskvn);
+ v_vec_maskv = vec_and (v_vec_maskv, (vector signed short) v_cbp_maskvn);
+ v_vec_maskh = vec_and (v_vec_maskh, (vector signed short) v_intra_maskhn);
+ v_vec_maskh = vec_and (v_vec_maskh, (vector signed short) v_cbp_maskhn);
+
+ tmp9 = vec_splat_u8(2);
+ tmp8 = vec_splat_u8(1);
+ v_bS = vec_ld (0, (vector unsigned char *) mv_const);
+
+ v_bSv = vec_and ((vector unsigned char) v_bS, (vector unsigned char)v_intra_maskv);
+ tmp7 = vec_and ((vector unsigned char)tmp9, (vector unsigned char)v_cbp_maskv);
+ tmp6 = (vector signed short) vec_and ((vector unsigned char)tmp8, (vector unsigned char)v_vec_maskv);
+ tmp7 = vec_or ((vector unsigned char)tmp7, (vector unsigned char)tmp6);
+ v_bSv = vec_or ((vector unsigned char)tmp7, (vector unsigned char)v_bSv);
+
+ v_bS = vec_ld (0, (vector unsigned char *) mv_const);
+ v_bSh = vec_and ((vector unsigned char) v_bS, (vector unsigned char)v_intra_maskh);
+ tmp7 = vec_and ((vector unsigned char)tmp9, (vector unsigned char)v_cbp_maskh);
+ tmp6 = (vector signed short) vec_and ((vector unsigned char)tmp8, (vector unsigned char)v_vec_maskh);
+ tmp7 = vec_or ((vector unsigned char)tmp7, (vector unsigned char)tmp6);
+ v_bSh = vec_or ((vector unsigned char)tmp7, (vector unsigned char)v_bSh);
+
+ v_permh = (vector unsigned char) vec_ld (0 , (vector unsigned char *) mv_const);
+ v_permv = (vector unsigned char) vec_ld (0, (vector unsigned char *) mv_const);
+ v_bSv = vec_and (v_bSv, v_permv);
+ v_bSh = vec_and (v_bSh, v_permh);
+
+ vec_st (v_bSv, 0, (unsigned char *) mv_const);
+ vec_st (v_bSh, 0, (unsigned char *) mv_const);
+
+ v_bSv = vec_mergel (v_bSv, v_bSv);
+ v_bSv = vec_mergel (v_bSv, v_bSv);
+ v_bSh = vec_mergel (v_bSh, v_bSh);
+ v_bSh = vec_mergel (v_bSh, v_bSh);
+
+ vec_st (v_bSv, 0, (vector unsigned char *) mv_const);
+ vec_st (v_bSh, 0,(vector unsigned char *) mv_const);
+}
+
+
+int main(int argc, char **argv)
+{
+ char toto[32] __attribute__((aligned(16)));
+ foo(toto, toto, 0, 0);
+ return 0;
+}
+/* APPLE LOCAL end radar 4110116 */
diff --git a/gcc/testsuite/gcc.dg/vect/pr20122.c b/gcc/testsuite/gcc.dg/vect/pr20122.c
new file mode 100644
index 00000000000..ff6ec75e5ab
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr20122.c
@@ -0,0 +1,38 @@
+/* { dg-require-effective-target vect_int } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+typedef short ashort __attribute__ ((__aligned__(16)));
+ashort Kernshort[24];
+static void VecBug(ashort Kernel[8][24]) __attribute__((noinline));
+static void VecBug(ashort Kernel[8][24]);
+
+/* Doesn't occur of only inner-loop. */
+static void VecBug(ashort Kernel[8][24])
+{
+ int k,i;
+ for (k = 0; k<8; k++)
+ for (i = 0; i<24; i++)
+ Kernshort[i] = Kernel[k][i];
+}
+
+int main (int argc, char **argv)
+{
+ check_vect ();
+
+ ashort Kernel[8][24];
+ int k,i;
+
+ for (k = 0; k<8; k++)
+ for (i = 0; i<24; i++)
+ Kernel[k][i] = 0;
+
+ VecBug(Kernel);
+
+ return 0;
+}
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
+
diff --git a/gcc/testsuite/gcc.dg/vect/vect-11.c b/gcc/testsuite/gcc.dg/vect/vect-11.c
index 1ad27604627..e2dab4d4aae 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-11.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-11.c
@@ -1,5 +1,6 @@
/* { dg-require-effective-target vect_int } */
-
+/* APPLE LOCAL 3972875 mainline 2005-04-18 */
+/* { dg-require-effective-target vect_int_mult } */
#include <stdarg.h>
#include "tree-vect.h"
@@ -35,4 +36,5 @@ int main (void)
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
+/* APPLE LOCAL 3972875 mainline 2005-04-18 */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-11a.c b/gcc/testsuite/gcc.dg/vect/vect-11a.c
new file mode 100644
index 00000000000..46b86dbb134
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-11a.c
@@ -0,0 +1,52 @@
+/* APPLE LOCAL file 3972875 mainline 2005-04-18 */
+/* { dg-require-effective-target vect_int } */
+/* { dg-require-effective-target vect_int_mult } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+extern void abort (void);
+void u ()
+{
+ unsigned int A[4] = {0x08000000,0xffffffff,0xff0000ff,0xf0000001};
+ unsigned int B[4] = {0x08000000,0x08000001,0xff0000ff,0xf0000001};
+ unsigned int Answer[4] = {0,0xf7ffffff,0x0200fe01,0xe0000001};
+ unsigned int C[4];
+ int i, j;
+
+ for (i=0; i<4; i++)
+ C[i] = A[i] * B[i];
+ for (i=0; i<4; i++)
+ if (C[i] != Answer[i])
+ abort ();
+}
+void s()
+{
+ signed int A[4] = {0x08000000,0xffffffff,0xff0000ff,0xf0000001};
+ signed int B[4] = {0x08000000,0x08000001,0xff0000ff,0xf0000001};
+ signed int Answer[4] = {0,0xf7ffffff,0x0200fe01, 0xe0000001};
+ signed int C[4];
+ int i, j;
+
+ for (i=0; i<4; i++)
+ C[i] = A[i] * B[i];
+ for (i=0; i<4; i++)
+ if (C[i] != Answer[i])
+ abort ();
+}
+
+int main1 ()
+{
+ u();
+ s();
+ return 0;
+}
+
+int main (void)
+{
+ check_vect ();
+
+ return main1 ();
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-98.c b/gcc/testsuite/gcc.dg/vect/vect-98.c
new file mode 100644
index 00000000000..d876bce124f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-98.c
@@ -0,0 +1,41 @@
+/* { dg-require-effective-target vect_int } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+#define N 4
+#define DOT4( a, b ) ( a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3] )
+
+int main1 (int ia[][N])
+{
+ int i, j;
+ int ib[N] = {0,3,6,9};
+ int ic[N][N];
+
+ for (i = 0; i < N; i++)
+ {
+ ic[0][i] = DOT4 (ia[i], ib);
+ }
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ {
+ if (ic[0][i] != DOT4 (ia[i], ib))
+ abort();
+ }
+
+ return 0;
+}
+
+int main (void)
+{
+ int ia[N][N] = {{1,2,3,4},{2,3,5,7},{2,4,6,8},{22,43,55,77}};
+
+ check_vect ();
+
+ return main1 (ia);
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+/* APPLE LOCAL xfail */
+/* { dg-final { scan-tree-dump-times "not vectorized: complicated access pattern" 1 "vect" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-dv-1.c b/gcc/testsuite/gcc.dg/vect/vect-dv-1.c
new file mode 100644
index 00000000000..516956b8cab
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-dv-1.c
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file AV */
+/* Test compiler crash when dependence analyzer can not represent
+ dependence relation by distance vector. */
+/* { dg-do compile } */
+
+int x[199];
+
+void foo()
+
+{
+ int t,j;
+
+ for (j=99;j>0;j--)
+ x [j+j]=x[j];
+
+ for (j=198;j>=100;j--)
+ if(x[j])
+ {
+ x[j-63]=x[j-3]-x[j];
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-1.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-1.c
new file mode 100644
index 00000000000..be35d3e7bff
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-1.c
@@ -0,0 +1,76 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* x86_64-*-* } } */
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 64
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N];
+ int B[N];
+ int C[N];
+ int D[N];
+
+ int i, j;
+
+ for (i = 0; i < N; i++)
+ {
+ A[i] = i;
+ B[i] = i;
+ C[i] = i;
+ D[i] = i;
+ }
+
+ /* Vectorizable */
+ for (i = 0; i < 16; i++)
+ {
+ A[i] = A[i+20];
+ }
+
+ /* check results: */
+ for (i = 0; i < 16; i++)
+ {
+ if (A[i] != A[i+20])
+ abort ();
+ }
+
+ /* Vectorizable */
+ for (i = 0; i < 16; i++)
+ {
+ B[i] = B[i] + 5;
+ }
+
+ /* check results: */
+ for (i = 0; i < 16; i++)
+ {
+ if (B[i] != C[i] + 5)
+ abort ();
+ }
+
+ /* Not vectorizable */
+ for (i = 0; i < 4; i++)
+ {
+ C[i] = C[i+3];
+ }
+
+ /* check results: */
+ for (i = 0; i < 4; i++)
+ {
+ if (C[i] != D[i+3])
+ abort ();
+ }
+
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
new file mode 100644
index 00000000000..0f7de3fcb8f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+ int B[N] = {0,0,42,42,42,0,0,0,0,0,42,42,42,42,42,0};
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] >= MAX ? MAX : 0);
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
new file mode 100644
index 00000000000..e9e862ba4f5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+ int B[N] = {0,0,0,42,42,0,0,0,0,0,42,42,42,42,42,0};
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] > MAX ? MAX : 0);
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c
new file mode 100644
index 00000000000..75b397c0bd8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+ int B[N] = {42,42,42,0,0,42,42,42,42,42,0,0,0,0,0,42};
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] <= MAX ? MAX : 0);
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
new file mode 100644
index 00000000000..b2e55291495
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+ int B[N] = {42,42,0,0,0,42,42,42,42,42,0,0,0,0,0,42};
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] < MAX ? MAX : 0);
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
new file mode 100644
index 00000000000..776c9a6680e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N] = {36,39,42,45,43,32,21,42,23,34,45,56,67,42,89,11};
+ int B[N] = {42,42,0,42,42,42,42,0,42,42,42,42,42,0,42,42};
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] != MAX ? MAX : 0);
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
new file mode 100644
index 00000000000..1647b6f89c0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,42,78,89,11};
+ int B[N] = {42,42,0,42,42,42,42,42,42,42,42,42,0,42,42,42};
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] == MAX ? 0 : MAX);
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-8.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-8.c
new file mode 100644
index 00000000000..7ce84470382
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-8.c
@@ -0,0 +1,37 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ unsigned short A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+ unsigned short B[N] = {0,0,0,3,1,0,0,0,0,0,3,14,25,36,47,0};
+ unsigned int i, j;
+ unsigned m;
+
+ for (i = 0; i < 16; i++)
+ {
+ m = A[i];
+ A[i] = (unsigned short) ( m >= MAX ? m-MAX : 0);
+ }
+
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
new file mode 100644
index 00000000000..ab2eeab6e72
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
@@ -0,0 +1,40 @@
+/* APPLE LOCAL file AV data dependence */
+/* { dg-do run } */
+/* { dg-options "-O3 -funroll-loops -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
+
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+int B[N] = {0,0,42,42,42,0,0,0,0,0,42,42,42,42,42,0};
+void foo () __attribute__((always_inline));
+void foo ()
+{
+ int i, j;
+
+ for (i = 0; i < 16; i++)
+ A[i] = ( A[i] >= MAX ? MAX : 0);
+}
+
+int main ()
+{
+
+ int i, j;
+ foo ();
+ /* check results: */
+ for (i = 0; i < N; i++)
+ if (A[i] != B[i])
+ abort ();
+
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-none.c b/gcc/testsuite/gcc.dg/vect/vect-none.c
index f5303b93e18..7dd004aab75 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-none.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-none.c
@@ -107,6 +107,8 @@ foo (int n)
/* Test 3 - no target support for integer mult. */
+ /* APPLE LOCAL mainline 2005-04-18 */
+ /* This loop is vectorized on platforms that support vect_int_mult. */
for (i = 0; i < N; i++)
{
ia[i] = ib[i] * ic[i];
@@ -133,6 +135,8 @@ foo (int n)
/* Test 6 - condition in loop. */
+ /* APPLE LOCAL mainline 2005-04-18 */
+ /* This loop is vectorized on platformst that support vect_condition. */
for (i = 0; i < N; i++){
a[i] = (b[i] > 0 ? b[i] : 0);
}
@@ -181,4 +185,10 @@ foo (int n)
}
/* { dg-final { scan-tree-dump-times "vectorized " 3 "vect"} } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 3 "vect"} } */
+/* APPLE LOCAL begin AV */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" { xfail powerpc*-*-* i?86-*-* x86_64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target powerpc*-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" { target powerpc*-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target i?86-*-* x86_64-*-* ia64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" { target i?86-*-* x86_64-*-* ia64-*-* } } } */
+/* APPLE LOCAL end AV */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-shift-1.c b/gcc/testsuite/gcc.dg/vect/vect-shift-1.c
new file mode 100644
index 00000000000..d6c4bdc19d2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-shift-1.c
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file mainline 2005-04-05 3972515 */
+/* { dg-require-effective-target vect_shift } */
+
+#include <stdarg.h>
+#include <signal.h>
+
+#define N 16
+#define MAX 42
+
+extern void abort(void);
+
+int main ()
+{
+ unsigned int A[4] = {0x08000000,0x08000001,0xff0000ff,0xf0000001};
+ unsigned int Answer[4] = {0x01000000,0x01000000,0x01fe0001f,0x1e000000};
+ unsigned int B[4];
+ int i, j;
+
+ for (i=0; i<4; i++)
+ B[i] = A[i] >> 3;
+ for (i=0; i<4; i++)
+ if (B[i] != Answer[i])
+ abort ();
+ return 0;
+}
+
+
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail i?86-*-* x86_64-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/verbose-asm-2.c b/gcc/testsuite/gcc.dg/verbose-asm-2.c
new file mode 100644
index 00000000000..314ac949541
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/verbose-asm-2.c
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file */
+/* Test whether -fverbose-asm emits option values. */
+/* Contibuted by Devang Patel <dpatel@apple.com>. */
+
+/* { dg-do compile } */
+/* { dg-options "-fverbose-asm" } */
+/* { dg-final { scan-assembler "fpeephole" } } */
+
+int
+main (int argc, char *argv [])
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/visibility-7.c b/gcc/testsuite/gcc.dg/visibility-7.c
index f5e6e9aae5c..aaa8165e3e0 100644
--- a/gcc/testsuite/gcc.dg/visibility-7.c
+++ b/gcc/testsuite/gcc.dg/visibility-7.c
@@ -1,6 +1,6 @@
/* Test warning from conflicting visibility specifications. */
/* { dg-do compile } */
-/* { dg-require-visibility "" } */
+/* { dg-require-visibility "protected" } */
/* { dg-final { scan-hidden "xyzzy" } } */
extern int
diff --git a/gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c b/gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c
deleted file mode 100644
index af4d15a0c2d..00000000000
--- a/gcc/testsuite/gcc.dg/vmx/darwin-abi-3.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* { dg-do run { target powerpc*-*-darwin* } } */
-
-/* This check was originally in test vmx/varargs-4.c. It does not
- match the expected behavior according to the PowerPC-64 ELF ABI. */
-
-#include <altivec.h>
-
-extern void abort (void);
-extern void exit (int);
-
-typedef struct n_a
-{
- signed char m1;
- short m2;
- int m3;
- double m4;
- vector float m5;
-}
-n_a;
-
-typedef struct n_a_x
-{
- n_a b;
- char a;
-}
-n_a_x;
-
-int
-main ()
-{
- if (sizeof (n_a_x) - sizeof (n_a) != sizeof (n_a))
- abort ();
- exit (0);
-}
diff --git a/gcc/testsuite/gcc.dg/warn-discard-qual.c b/gcc/testsuite/gcc.dg/warn-discard-qual.c
new file mode 100644
index 00000000000..edf757b0cea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/warn-discard-qual.c
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file 4086969 */
+/* Test -Wno-discard-qual */
+/* { dg-do compile } */
+/* { dg-options "-Wno-discard-qual" } */
+
+const char *a( void )
+{
+ return "abc";
+}
+
+int main( void )
+{
+ char *s = a();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/weak/weak-12.c b/gcc/testsuite/gcc.dg/weak/weak-12.c
new file mode 100644
index 00000000000..72cc1445e4b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/weak/weak-12.c
@@ -0,0 +1,17 @@
+/* Test for #pragma weak with declaration not at file scope. */
+/* { dg-do compile } */
+/* { dg-require-weak "" } */
+/* { dg-options "" } */
+
+/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?foo" } } */
+
+#pragma weak foo
+
+int
+main (void)
+{
+ extern int foo (void);
+ if (&foo)
+ return foo ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/weak/weak-3.c b/gcc/testsuite/gcc.dg/weak/weak-3.c
index c9448f032cf..2294ebf7b4e 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-3.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-3.c
@@ -52,18 +52,18 @@ void * foo1e (void)
extern void * ffoo1f (void);
-extern void * ffoox1f (void);
void * foo1f (void)
{
if (ffoo1f) /* { dg-warning "" } */
ffoo1f ();
return 0;
}
+void * ffoox1f (void) { return (void *)0; }
extern void * ffoo1f (void) __attribute__((weak, alias ("ffoox1f"))); /* { dg-warning "weak declaration" "weak declaration" } */
extern void * ffoo1g (void);
-extern void * ffoox1g (void);
+void * ffoox1g (void) { return (void *)0; }
extern void * ffoo1g (void) __attribute__((weak, alias ("ffoox1g")));
void * foo1g (void)
{
diff --git a/gcc/testsuite/gcc.dg/weak/weak-9.c b/gcc/testsuite/gcc.dg/weak/weak-9.c
index 95e8f809f38..abbd0201c46 100644
--- a/gcc/testsuite/gcc.dg/weak/weak-9.c
+++ b/gcc/testsuite/gcc.dg/weak/weak-9.c
@@ -7,10 +7,11 @@
/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f2" } } */
/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f3" } } */
/* { dg-final { scan-assembler "weak\[^ \t\]*\[ \t\]_?f4" } } */
-/* { dg-final { scan-assembler "notf1" } } */
-/* { dg-final { scan-assembler "notf2" } } */
-/* { dg-final { scan-assembler "notf3" } } */
-/* { dg-final { scan-assembler "notf4" } } */
+
+void notf1() { }
+void notf2() { }
+void notf3() { }
+void notf4() { }
void f1() __attribute__((weak, alias("notf1")));
void f2() __attribute__((alias("notf2"), weak));
diff --git a/gcc/testsuite/gcc.dg/winline-6.c b/gcc/testsuite/gcc.dg/winline-6.c
index 7ce7481a3ef..dd8d3a81b08 100644
--- a/gcc/testsuite/gcc.dg/winline-6.c
+++ b/gcc/testsuite/gcc.dg/winline-6.c
@@ -17,5 +17,5 @@ inline int q(void)
}
inline int t (void)
{
- return q (); /* { dg-warning "called from here" } */
+ return q () + 1; /* { dg-warning "called from here" } */
}
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c
new file mode 100644
index 00000000000..d6d2a5ad7f3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target mips*-*-* } } */
+/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */
+/* { dg-options "-mfix-vr4130 -march=vr4130" } */
+#if _MIPS_ARCH_VR4130 && !__mips16
+int foo (void) { int r; asm ("# foo" : "=h" (r)); return r; }
+#else
+asm ("#\tmacchi\t");
+#endif
+/* { dg-final { scan-assembler "\tmacchi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c
new file mode 100644
index 00000000000..dcb48998425
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target mips*-*-* } } */
+/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */
+/* { dg-options "-mfix-vr4130 -march=vr4130" } */
+#if _MIPS_ARCH_VR4130 && !__mips16
+int foo (void) { int r; asm ("# foo" : "=l" (r)); return r; }
+#else
+asm ("#\tmacc\t");
+#endif
+/* { dg-final { scan-assembler "\tmacc\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c
new file mode 100644
index 00000000000..ff258bab897
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target mips*-*-* } } */
+/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */
+/* { dg-options "-mfix-vr4130 -march=vr4130" } */
+#if _MIPS_ARCH_VR4130 && !__mips16 && __mips64
+long long foo (void) { long long r; asm ("# foo" : "=h" (r)); return r; }
+#else
+asm ("#\tdmacchi\t");
+#endif
+/* { dg-final { scan-assembler "\tdmacchi\t" } } */
diff --git a/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c b/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c
new file mode 100644
index 00000000000..acb2d0807f3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c
@@ -0,0 +1,9 @@
+/* { dg-do compile { target mips*-*-* } } */
+/* { dg-skip-if "" { mips-sgi-irix* } { "-mabi=32" } { "" } } */
+/* { dg-options "-mfix-vr4130 -march=vr4130" } */
+#if _MIPS_ARCH_VR4130 && !__mips16 && __mips64
+long long foo (void) { long long r; asm ("# foo" : "=l" (r)); return r; }
+#else
+asm ("#\tdmacc\t");
+#endif
+/* { dg-final { scan-assembler "\tdmacc\t" } } */
diff --git a/gcc/testsuite/gfortran.dg/PR19754_1.f90 b/gcc/testsuite/gfortran.dg/PR19754_1.f90
new file mode 100644
index 00000000000..b554d1094c5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/PR19754_1.f90
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! Test of fix to PR19754
+program PR19754_1
+ real x(3,3),y(2,2)
+ x = 1.
+ y = 2.
+ x = x + y ! { dg-error "Shapes for operands at" }
+end program PR19754_1
+
diff --git a/gcc/testsuite/gfortran.dg/PR19754_2.f90 b/gcc/testsuite/gfortran.dg/PR19754_2.f90
new file mode 100644
index 00000000000..9b71bd02ba0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/PR19754_2.f90
@@ -0,0 +1,22 @@
+! { dg-do run }
+! Test of Steve Kargl's fix to PR19754
+! This exercises bugs that the original patch caused
+!
+program PR19754_2
+ real a(2,2), b(2,2),c(2,2),d(2,2)
+ integer i(2,2),j(2,2),k(2,2)
+ a = 1. ; b = 2. ; i = 4
+ c = b - floor( a / b ) ! this caused an ICE
+ d = b - real(floor( a / b ))
+ if (any (c/=d)) call abort ()
+ j = aint(b) - floor( a / b ) ! this caused an ICE
+ if (any(real(j)/=d)) call abort ()
+ c = i
+ if (any(real(i)/=c)) call abort ()
+ c = i + b ! this caused an ICE
+ d = real(i) + b
+ if (any(c/=d)) call abort ()
+ j = i + aint (a)
+ k = i + a ! this caused an ICE
+ if (any(j/=k)) call abort ()
+end program PR19754_2
diff --git a/gcc/testsuite/gfortran.dg/achar_1.f90 b/gcc/testsuite/gfortran.dg/achar_1.f90
new file mode 100644
index 00000000000..1fdb7747210
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/achar_1.f90
@@ -0,0 +1,8 @@
+! { dg-do run }
+! achar() should work with all supported integer kinds.
+program bug6
+ integer(1) :: i = 65
+ character a
+ a = achar(i)
+ if (a /= 'A') call abort
+end program bug6
diff --git a/gcc/testsuite/gfortran.dg/assign.f90 b/gcc/testsuite/gfortran.dg/assign.f90
new file mode 100644
index 00000000000..516a3d7632a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/assign.f90
@@ -0,0 +1,8 @@
+! { dg-do run }
+! Program to test ASSIGNing a label to common variable. PR18827.
+ program test
+ integer i
+ common i
+ assign 2000 to i ! { dg-warning "Obsolete: ASSIGN statement" }
+2000 continue
+ end
diff --git a/gcc/testsuite/gfortran.dg/assign_2.f90 b/gcc/testsuite/gfortran.dg/assign_2.f90
new file mode 100644
index 00000000000..4119cd94f58
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/assign_2.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! Option passed to avoid excess errors from obsolete warning
+! { dg-options "-w" }
+! PR18827
+ integer i,j
+ common /foo/ i,j
+ assign 1000 to j
+ j = 5
+ goto j
+ 1000 continue
+ end
diff --git a/gcc/testsuite/gfortran.dg/assign_3.f90 b/gcc/testsuite/gfortran.dg/assign_3.f90
new file mode 100644
index 00000000000..a43b10c11b1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/assign_3.f90
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! Option passed to avoid excess errors from obsolete warning
+! { dg-options "-w" }
+! PR18827
+ integer i,j
+ equivalence (i,j)
+ assign 1000 to i
+ write (*, j) ! { dg-error "not been assigned a format label" }
+ goto j ! { dg-error "not been assigned a target label" }
+ 1000 continue
+ end
diff --git a/gcc/testsuite/gfortran.dg/backspace.f b/gcc/testsuite/gfortran.dg/backspace.f
new file mode 100644
index 00000000000..c3ec0c41756
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/backspace.f
@@ -0,0 +1,82 @@
+! This file is all about BACKSPACE
+! { dg-do run }
+
+ integer i, n, nr
+ real x(10), y(10)
+
+! PR libfortran/20068
+ open (20, status='scratch')
+ write (20,*) 1
+ write (20,*) 2
+ write (20,*) 3
+ rewind (20)
+ read (20,*) i
+ if (i .ne. 1) call abort
+ write (*,*) ' '
+ backspace (20)
+ read (20,*) i
+ if (i .ne. 1) call abort
+ close (20)
+
+! PR libfortran/20125
+ open (20, status='scratch')
+ write (20,*) 7
+ backspace (20)
+ read (20,*) i
+ if (i .ne. 7) call abort
+ close (20)
+
+ open (20, status='scratch', form='unformatted')
+ write (20) 8
+ backspace (20)
+ read (20) i
+ if (i .ne. 8) call abort
+ close (20)
+
+! PR libfortran/20471
+ do n = 1, 10
+ x(n) = sqrt(real(n))
+ end do
+ open (3, form='unformatted', status='scratch')
+ write (3) (x(n),n=1,10)
+ backspace (3)
+ rewind (3)
+ read (3) (y(n),n=1,10)
+
+ do n = 1, 10
+ if (abs(x(n)-y(n)) > 0.00001) call abort
+ end do
+ close (3)
+
+! PR libfortran/20156
+ open (3, form='unformatted', status='scratch')
+ do i = 1, 5
+ x(1) = i
+ write (3) n, (x(n),n=1,10)
+ end do
+ nr = 0
+ rewind (3)
+ 20 continue
+ read (3,end=30,err=90) n, (x(n),n=1,10)
+ nr = nr + 1
+ goto 20
+ 30 continue
+ if (nr .ne. 5) call abort
+
+ do i = 1, nr+1
+ backspace (3)
+ end do
+
+ do i = 1, nr
+ read(3,end=70,err=90) n, (x(n),n=1,10)
+ if (abs(x(1) - i) .gt. 0.001) call abort
+ end do
+ close (3)
+ stop
+
+ 70 continue
+ call abort
+ 90 continue
+ call abort
+
+ end
diff --git a/gcc/testsuite/gfortran.dg/bound_1.f90 b/gcc/testsuite/gfortran.dg/bound_1.f90
new file mode 100644
index 00000000000..ce872bb0af5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bound_1.f90
@@ -0,0 +1,20 @@
+! { dg-do run }
+ implicit none
+
+ type test_type
+ integer, dimension(5) :: a
+ end type test_type
+
+ type (test_type), target :: tt(2)
+ integer i
+
+ i = ubound(tt(1)%a, 1)
+ if (i/=5) call abort()
+ i = lbound(tt(1)%a, 1)
+ if (i/=1) call abort()
+
+ i = ubound(tt, 1)
+ if (i/=2) call abort()
+ i = lbound(tt, 1)
+ if (i/=1) call abort()
+end
diff --git a/gcc/testsuite/gfortran.dg/boz_1.f90 b/gcc/testsuite/gfortran.dg/boz_1.f90
new file mode 100644
index 00000000000..abf02d36043
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/boz_1.f90
@@ -0,0 +1,38 @@
+! { dg-do run }
+! Test the boz handling
+program boz
+
+ implicit none
+
+ integer(1), parameter :: b1 = b'00000001'
+ integer(2), parameter :: b2 = b'0101010110101010'
+ integer(4), parameter :: b4 = b'01110000111100001111000011110000'
+ integer(8), parameter :: &
+ & b8 = b'0111000011110000111100001111000011110000111100001111000011110000'
+
+ integer(1), parameter :: o1 = o'12'
+ integer(2), parameter :: o2 = o'4321'
+ integer(4), parameter :: o4 = o'43210765'
+ integer(8), parameter :: o8 = o'1234567076543210'
+
+ integer(1), parameter :: z1 = z'a'
+ integer(2), parameter :: z2 = z'ab'
+ integer(4), parameter :: z4 = z'dead'
+ integer(8), parameter :: z8 = z'deadbeef'
+
+ if (z1 /= 10_1) call abort
+ if (z2 /= 171_2) call abort
+ if (z4 /= 57005_4) call abort
+ if (z8 /= 3735928559_8) call abort
+
+ if (b1 /= 1_1) call abort
+ if (b2 /= 21930_2) call abort
+ if (b4 /= 1894838512_4) call abort
+ if (b8 /= 8138269444283625712_8) call abort
+
+ if (o1 /= 10_1) call abort
+ if (o2 /= 2257_2) call abort
+ if (o4 /= 9245173_4) call abort
+ if (o8 /= 45954958542472_8) call abort
+
+end program boz
diff --git a/gcc/testsuite/gfortran.dg/boz_3.f90 b/gcc/testsuite/gfortran.dg/boz_3.f90
new file mode 100644
index 00000000000..96184deb7df
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/boz_3.f90
@@ -0,0 +1,34 @@
+! { dg-do run }
+! Test that the BOZ constant on the RHS, which are of different KIND than
+! the LHS, are correctly converted.
+!
+program boz
+
+ implicit none
+
+ integer(1), parameter :: b1 = b'000000000001111'
+ integer(2), parameter :: b2 = b'00000000000000000111000011110000'
+ integer(4), parameter :: &
+ & b4 = b'0000000000000000000000000000000001110000111100001111000011110000'
+
+ integer(1), parameter :: o1 = o'0012'
+ integer(2), parameter :: o2 = o'0004321'
+ integer(4), parameter :: o4 = o'0000000043210765'
+
+ integer(1), parameter :: z1 = z'0a'
+ integer(2), parameter :: z2 = z'00ab'
+ integer(4), parameter :: z4 = z'0000dead'
+
+ if (b1 /= 15_1) call abort
+ if (b2 /= 28912_2) call abort
+ if (b4 /= 1894838512_4) call abort
+
+ if (o1 /= 10_1) call abort
+ if (o2 /= 2257_2) call abort
+ if (o4 /= 9245173_4) call abort
+
+ if (z1 /= 10_1) call abort
+ if (z2 /= 171_2) call abort
+ if (z4 /= 57005_4) call abort
+
+end program boz
diff --git a/gcc/testsuite/gfortran.dg/boz_4.f90 b/gcc/testsuite/gfortran.dg/boz_4.f90
new file mode 100644
index 00000000000..d016df22c49
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/boz_4.f90
@@ -0,0 +1,29 @@
+! { dg-do compile }
+! Test that the conversion of a BOZ constant that is too large for the
+! integer variable is caught by the compiler.
+program boz
+
+ implicit none
+
+ integer(1), parameter :: &
+ & b1 = b'0101010110101010' ! { dg-error "overflow converting" }
+ integer(2), parameter :: &
+ & b2 = b'01110000111100001111000011110000' ! { dg-error "overflow converting" }
+ integer(4), parameter :: &
+ & b4 = b'0111000011110000111100001111000011110000111100001111000011110000' ! { dg-error "overflow converting" }
+
+ integer(1), parameter :: &
+ & o1 = o'1234567076543210' ! { dg-error "overflow converting" }
+ integer(2), parameter :: &
+ & o2 = o'1234567076543210' ! { dg-error "overflow converting" }
+ integer(4), parameter :: &
+ & o4 = o'1234567076543210' ! { dg-error "overflow converting" }
+
+ integer(1), parameter :: &
+ & z1 = z'deadbeef' ! { dg-error "overflow converting" }
+ integer(2), parameter :: &
+ & z2 = z'deadbeef' ! { dg-error "overflow converting" }
+ integer(4), parameter :: &
+ & z4 = z'deadbeeffeed' ! { dg-error "overflow converting" }
+
+end program boz
diff --git a/gcc/testsuite/gfortran.dg/deftype_1.f90 b/gcc/testsuite/gfortran.dg/deftype_1.f90
new file mode 100644
index 00000000000..e0476d02e58
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/deftype_1.f90
@@ -0,0 +1,6 @@
+! { dg-do compile }
+! Checks for excess errors.
+implicit none
+dimension i(10) ! { dg-error "has no IMPLICIT type" }
+i = 2
+end
diff --git a/gcc/testsuite/gfortran.dg/do_iterator.f90 b/gcc/testsuite/gfortran.dg/do_iterator.f90
index 982568e3909..0e11aa23339 100644
--- a/gcc/testsuite/gfortran.dg/do_iterator.f90
+++ b/gcc/testsuite/gfortran.dg/do_iterator.f90
@@ -1,8 +1,12 @@
! { dg-do compile }
! various checks which verify that we don't change do-iterators
-DO I=1,5
- I=1 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
+DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
+ I=1 ! { dg-error "cannot be redefined" "changing do-iterator 1" }
+END DO
+DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 2" }
READ(5,*) I ! { dg-error "cannot be redefined" "changing do-iterator 2" }
+END DO
+DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 3" }
READ(5,*,iostat=i) j ! { dg-error "cannot be redefined" "changing do-iterator 3" }
ENDDO
END
diff --git a/gcc/testsuite/gfortran.dg/dos_eol.f b/gcc/testsuite/gfortran.dg/dos_eol.f
new file mode 100644
index 00000000000..3a22a14b143
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dos_eol.f
@@ -0,0 +1,19 @@
+! PR libfortran/19678 and PR libfortran/19679
+! { dg-do run }
+ integer i, j
+
+ open (10,status='scratch')
+ write (10,'(2A)') '1', achar(13)
+ rewind (10)
+ read (10,*) i
+ if (i .ne. 1) call abort
+ close (10)
+
+ open (10,status='scratch')
+ write (10,'(2A)') ' 1', achar(13)
+ write (10,'(2A)') ' 2', achar(13)
+ rewind (10)
+ read (10,'(I4)') i
+ read (10,'(I5)') j
+ if ((i .ne. 1) .or. (j .ne. 2)) call abort
+ end
diff --git a/gcc/testsuite/gfortran.dg/e_d_fmt.f90 b/gcc/testsuite/gfortran.dg/e_d_fmt.f90
new file mode 100644
index 00000000000..1abfa6105ea
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/e_d_fmt.f90
@@ -0,0 +1,13 @@
+! { dg-do run }
+! Verify that the D format uses 'D' as the exponent character.
+! " " " E " " 'E' " " " "
+CHARACTER*10 c1, c2
+REAL*8 r
+r = 1.0
+write(c1,"(e9.2)") r
+write(c2,"(d9.2)") r
+
+if (trim(adjustl(c1)) .ne. "0.10E+01") call abort()
+if (trim(adjustl(c2)) .ne. "0.10D+01") call abort()
+
+END
diff --git a/gcc/testsuite/gfortran.dg/eor_1.f90 b/gcc/testsuite/gfortran.dg/eor_1.f90
index c61a0b7c87f..dd3b5e98f70 100644
--- a/gcc/testsuite/gfortran.dg/eor_1.f90
+++ b/gcc/testsuite/gfortran.dg/eor_1.f90
@@ -1,4 +1,4 @@
-! { dg do-run }
+! { dg-do run }
! PR 19451: The test for advance='NO' with eor used to be reversed.
program main
character*2 c
diff --git a/gcc/testsuite/gfortran.dg/func_result_1.f90 b/gcc/testsuite/gfortran.dg/func_result_1.f90
new file mode 100644
index 00000000000..ce3c2e4e685
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/func_result_1.f90
@@ -0,0 +1,19 @@
+! { dg-do run }
+! From PR 19673 : We didn't dereference the the result from POINTER
+! functions with a RESULT clause
+program ret_ptr
+ if (foo(99) /= bar(99)) call abort ()
+contains
+ function foo (arg) result(ptr)
+ integer :: arg
+ integer, pointer :: ptr
+ allocate (ptr)
+ ptr = arg
+ end function foo
+ function bar (arg)
+ integer :: arg
+ integer, pointer :: bar
+ allocate (bar)
+ bar = arg
+ end function bar
+end program ret_ptr
diff --git a/gcc/testsuite/gfortran.dg/g77/12002.f b/gcc/testsuite/gfortran.dg/g77/12002.f
index 609573f4a62..0cb29c7549e 100644
--- a/gcc/testsuite/gfortran.dg/g77/12002.f
+++ b/gcc/testsuite/gfortran.dg/g77/12002.f
@@ -1,5 +1,5 @@
C PR middle-end/12002
-C {dg-do compile }
+C { dg-do compile }
COMPLEX TE1
TE1=-2.
TE1=TE1+TE1
diff --git a/gcc/testsuite/gfortran.dg/g77/19990313-1.f b/gcc/testsuite/gfortran.dg/g77/19990313-1.f
index b229bb40f20..db4be77334f 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990313-1.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990313-1.f
@@ -1,6 +1,6 @@
c { dg-do run }
integer *8 foo, bar
- double precision r
+ double precision r
data r/4d10/
foo = 4d10
bar = r
diff --git a/gcc/testsuite/gfortran.dg/g77/19990313-2.f b/gcc/testsuite/gfortran.dg/g77/19990313-2.f
index 5dac2d0ed40..edd5afd8188 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990313-2.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990313-2.f
@@ -1,6 +1,6 @@
c { dg-do run }
integer *8 foo, bar
- complex c
+ complex c
data c/(4e10,0)/
foo = 4e10
bar = c
diff --git a/gcc/testsuite/gfortran.dg/g77/19990313-3.f b/gcc/testsuite/gfortran.dg/g77/19990313-3.f
index c7489f6870a..c14beb92e71 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990313-3.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990313-3.f
@@ -1,6 +1,6 @@
c { dg-do run }
integer *8 foo, bar
- double complex c
+ double complex c
data c/(4d10,0)/
foo = 4d10
bar = c
diff --git a/gcc/testsuite/gfortran.dg/g77/19990525-0.f b/gcc/testsuite/gfortran.dg/g77/19990525-0.f
index 0baa802b66a..589fb8ebfd1 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990525-0.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990525-0.f
@@ -15,24 +15,24 @@ c { dg-do compile }
*
* Run the following through g77:
*
- subroutine a
- character*2 string1
- character*2 string2
- character*4 string3
- string1 = 's1'
- string2 = 's2'
+ subroutine a
+ character*2 string1
+ character*2 string2
+ character*4 string3
+ string1 = 's1'
+ string2 = 's2'
c
c the next 2 lines are ok.
- string3 = (string1 // string2)
- call b(string1//string2)
+ string3 = (string1 // string2)
+ call b(string1//string2)
c
c this line gives gcc/f/com.c:10660: failed assertion `hook'
- call b((string1//string2))
- end
+ call b((string1//string2))
+ end
*
* the output from:
*
-* /usr/local/egcs-19990418/bin/g77 --verbose -c D.f
+* /usr/local/egcs-19990418/bin/g77 --verbose -c D.f
*
* is:
*
diff --git a/gcc/testsuite/gfortran.dg/g77/19990826-0.f b/gcc/testsuite/gfortran.dg/g77/19990826-0.f
index 054f9abf552..bc471f0bf1a 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990826-0.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990826-0.f
@@ -16,5 +16,5 @@ c { dg-do run }
* It seems to work fine if I change it to the generic NINT(). Probably
* a name pollution problem in the new C library, but it seems bad. no?
-* Thanks,
-* Rick Niles.
+* Thanks,
+* Rick Niles.
diff --git a/gcc/testsuite/gfortran.dg/g77/19990826-2.f b/gcc/testsuite/gfortran.dg/g77/19990826-2.f
index 8f0f0c18eb4..b8384f8d25a 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990826-2.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990826-2.f
@@ -1,7 +1,7 @@
c { dg-do run }
* From: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au>
* Subject: RE: single precision complex bug in g77 - was Testing g77 with LA
-* PACK 3.0
+* PACK 3.0
* Date: Thu, 8 Jul 1999 00:55:11 +0100
* X-UIDL: b00d9d8081a36fef561b827d255dd4a5
diff --git a/gcc/testsuite/gfortran.dg/g77/19990826-3.f b/gcc/testsuite/gfortran.dg/g77/19990826-3.f
index aeaf4439996..dba24becb4c 100644
--- a/gcc/testsuite/gfortran.dg/g77/19990826-3.f
+++ b/gcc/testsuite/gfortran.dg/g77/19990826-3.f
@@ -28,294 +28,293 @@ c { dg-do compile }
* See <URL:http://egcs.cygnus.com/faq.html#bugreport> for instructions.
C* PCAPOP
- SUBROUTINE PCAPOP(M1,M2,L1,L2,NMEM,N1,N2,IB,IBB,K3,TF,TS,TC,TTO)
- DIMENSION NVA(6),C(6),I(6)
+ SUBROUTINE PCAPOP(M1,M2,L1,L2,NMEM,N1,N2,IB,IBB,K3,TF,TS,TC,TTO)
+ DIMENSION NVA(6),C(6),I(6)
C
C CALCUL DES PARAMETRES OPTIMAUX N1 N2 IB IBB
C
- TACC=.035
- TTRANS=.000004
- RAD=.000001
- RMI=.000001
- RMU=.0000015
- RDI=.000003
- RTE=.000003
- REQ=.000005
- VY1=3*RTE+RDI+8*REQ+3*(RAD+RMI+RMU)
- VY2=REQ+2*RAD
- AR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ))
+ TACC=.035
+ TTRANS=.000004
+ RAD=.000001
+ RMI=.000001
+ RMU=.0000015
+ RDI=.000003
+ RTE=.000003
+ REQ=.000005
+ VY1=3*RTE+RDI+8*REQ+3*(RAD+RMI+RMU)
+ VY2=REQ+2*RAD
+ AR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ))
C VARIATION DE L1,L2,
C
- TTOTOP=1.E+10
- N1CO=0
- N2CO=0
- IBCO=0
- IBBCO=0
- K3CO=0
- TESOP=0.
- TCOP=0.
- TFOP=0.
- INUN=7
- INDE=7
- IF(M1.LT.128)INUN=6
- IF(M1.LT.64)INUN=5
- IF(M1.LT.32)INUN=4
- IF(M2.LT.128)INDE=6
- IF(M2.LT.64)INDE=5
- IF(M2.LT.32)INDE=4
- DO 3 NUN =3,INUN
- DO 3 NDE=3,INDE
- N10=2**NUN
- N20=2**NDE
- NDIF=(N10-N20)
- NDIF=IABS(NDIF)
+ TTOTOP=1.E+10
+ N1CO=0
+ N2CO=0
+ IBCO=0
+ IBBCO=0
+ K3CO=0
+ TESOP=0.
+ TCOP=0.
+ TFOP=0.
+ INUN=7
+ INDE=7
+ IF(M1.LT.128)INUN=6
+ IF(M1.LT.64)INUN=5
+ IF(M1.LT.32)INUN=4
+ IF(M2.LT.128)INDE=6
+ IF(M2.LT.64)INDE=5
+ IF(M2.LT.32)INDE=4
+ DO 3 NUN =3,INUN
+ DO 3 NDE=3,INDE
+ N10=2**NUN
+ N20=2**NDE
+ NDIF=(N10-N20)
+ NDIF=IABS(NDIF)
C POUR AVOIR CES RESULTATS FAIRE TOURNER LE PROGRAMME VEFFT1
- TCFFTU=0.
- IF(N10.EQ.128.AND.N20.EQ.128)TCFFTU=3.35
- IF(N10.EQ.64.AND.N20.EQ.64)TCFFTU=.70
- IF(N10.EQ.32.AND.N20.EQ.32)TCFFTU=.138
- IF(N10.EQ.16.AND.N20.EQ.16)TCFFTU=.0332
- IF(N10.EQ.8.AND.N20.EQ.8)TCFFTU=.00688
- IF(NDIF.EQ.64)TCFFTU=1.566
- IF(NDIF.EQ.96)TCFFTU=.709
- IF(NDIF.EQ.112)TCFFTU=.349
- IF(NDIF.EQ.120)TCFFTU=.160
- IF(NDIF.EQ.32)TCFFTU=.315
- IF(NDIF.EQ.48)TCFFTU=.154
- IF(NDIF.EQ.56)TCFFTU=.07
- IF(NDIF.EQ.16)TCFFTU=.067
- IF(NDIF.EQ.24)TCFFTU=.030
- IF(NDIF.EQ.8)TCFFTU=.016
- N30=N10-L1+1
- N40=N20-L2+1
- WW=VY1+N30*VY2
- NDOU=2*N10*N20
- IF((N10.LT.L1).OR.(N20.LT.L2)) GOTO 3
- NB=NMEM-NDOU-N20*(L1-1)
- NVC=2*N10*(N20-1)+M1
- IF(NB.LT.(NVC)) GOTO 3
- CALL VALENT(M1,N30,K1)
- CALL VALENT(M2,N40,K2)
- IS=K1/2
- IF((2*IS).NE.K1)K1=K1+1
- TFF=TCFFTU*K1*K2
- CALL VALENT(M2,N40,JOFI)
- IF(NB.GE.(K1*N20*N30+2*N20*(L1-1))) GOTO 4
- TIOOP=1.E+10
- IC=1
+ TCFFTU=0.
+ IF(N10.EQ.128.AND.N20.EQ.128)TCFFTU=3.35
+ IF(N10.EQ.64.AND.N20.EQ.64)TCFFTU=.70
+ IF(N10.EQ.32.AND.N20.EQ.32)TCFFTU=.138
+ IF(N10.EQ.16.AND.N20.EQ.16)TCFFTU=.0332
+ IF(N10.EQ.8.AND.N20.EQ.8)TCFFTU=.00688
+ IF(NDIF.EQ.64)TCFFTU=1.566
+ IF(NDIF.EQ.96)TCFFTU=.709
+ IF(NDIF.EQ.112)TCFFTU=.349
+ IF(NDIF.EQ.120)TCFFTU=.160
+ IF(NDIF.EQ.32)TCFFTU=.315
+ IF(NDIF.EQ.48)TCFFTU=.154
+ IF(NDIF.EQ.56)TCFFTU=.07
+ IF(NDIF.EQ.16)TCFFTU=.067
+ IF(NDIF.EQ.24)TCFFTU=.030
+ IF(NDIF.EQ.8)TCFFTU=.016
+ N30=N10-L1+1
+ N40=N20-L2+1
+ WW=VY1+N30*VY2
+ NDOU=2*N10*N20
+ IF((N10.LT.L1).OR.(N20.LT.L2)) GOTO 3
+ NB=NMEM-NDOU-N20*(L1-1)
+ NVC=2*N10*(N20-1)+M1
+ IF(NB.LT.(NVC)) GOTO 3
+ CALL VALENT(M1,N30,K1)
+ CALL VALENT(M2,N40,K2)
+ IS=K1/2
+ IF((2*IS).NE.K1)K1=K1+1
+ TFF=TCFFTU*K1*K2
+ CALL VALENT(M2,N40,JOFI)
+ IF(NB.GE.(K1*N20*N30+2*N20*(L1-1))) GOTO 4
+ TIOOP=1.E+10
+ IC=1
18 IB1=2*IC
- MAX=(NB-2*N20*(L1-1))/(N20*N30)
- IN=MAX/2
- IF(MAX.NE.2*IN) MAX=MAX-1
- K3=K1/IB1
- IBB1=K1-K3*IB1
- IOFI=M1/(IB1*N30)
- IRZ=0
- IF(IOFI*IB1*N30.EQ.M1) GOTO1234
- IRZ=1
- IOFI=IOFI+1
- IF(IBB1.EQ.0) GOTO 1234
- IF(M1.EQ.((IOFI-1)*IB1*N30+IBB1*N30)) GOTO 1233
- IRZ=2
- GOTO 1234
+ MAX=(NB-2*N20*(L1-1))/(N20*N30)
+ IN=MAX/2
+ IF(MAX.NE.2*IN) MAX=MAX-1
+ K3=K1/IB1
+ IBB1=K1-K3*IB1
+ IOFI=M1/(IB1*N30)
+ IRZ=0
+ IF(IOFI*IB1*N30.EQ.M1) GOTO1234
+ IRZ=1
+ IOFI=IOFI+1
+ IF(IBB1.EQ.0) GOTO 1234
+ IF(M1.EQ.((IOFI-1)*IB1*N30+IBB1*N30)) GOTO 1233
+ IRZ=2
+ GOTO 1234
1233 IRZ=3
1234 IBX1=IBB1
- IF(IBX1.EQ.0)IBX1=IB1
- AR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1-(IOFI-1)*IB1*N30)*2*(REQ+RAD))
+ IF(IBX1.EQ.0)IBX1=IB1
+ AR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1-(IOFI-1)*IB1*N30)*2*(REQ+RAD))
%+M2*(3*(REQ+RMU+RAD)+4*RMI+(M1-(IOFI-1)*IB1*N30)*(2*RAD+REQ)
%+(IOFI-1)*IB1*N30*(2*RMI+REQ+RAD))
- AR5=(JOFI-1)*(N20-L2)*(M1-(IOFI-1)*IB1*N30)*(2*(RAD+RMU)+REQ)
+ AR5=(JOFI-1)*(N20-L2)*(M1-(IOFI-1)*IB1*N30)*(2*(RAD+RMU)+REQ)
%*IOFI+(M2-(JOFI-1)*N40+L2-2)*(M1-(IOFI-1)*IB1*N30)*(2*(RAD+RMU
%)+REQ)*IOFI
- WQ=((IOFI-1)*IB1+IBX1)*JOFI*WW
- AT1=N20*WQ
- AT2=N40*WQ
- QW=JOFI*(VY1+VY2*IB1*N30)
- AT3=IOFI*N40*QW
- AT4=(IOFI-1)*N40*QW
- AT5=JOFI*((IOFI-1)*N40*(IB1/IBX1)*(VY1+IBX1*N30*VY2)
+ WQ=((IOFI-1)*IB1+IBX1)*JOFI*WW
+ AT1=N20*WQ
+ AT2=N40*WQ
+ QW=JOFI*(VY1+VY2*IB1*N30)
+ AT3=IOFI*N40*QW
+ AT4=(IOFI-1)*N40*QW
+ AT5=JOFI*((IOFI-1)*N40*(IB1/IBX1)*(VY1+IBX1*N30*VY2)
%+N40*((IB1/IBX1)*(IOFI-1)+1)*(VY1+IBX1*N30*VY2))
- AT6=JOFI*((IOFI-1)*N40*(IB1/2)*(VY1+2*N30*VY2)+N40*(
+ AT6=JOFI*((IOFI-1)*N40*(IB1/2)*(VY1+2*N30*VY2)+N40*(
%IB1*(IOFI-1)/2+IBX1/2)*(VY1+2*N30*VY2))
- T1=JOFI*N20*(L1-1)*REQ
- T2=M1*(L2-1)*REQ
- T3=JOFI*N20*IBX1*N30*(RAD+REQ)
- T4=JOFI*((IOFI-1)*IB1*N30*N20*(2*RMI+REQ)+IBX1*N30*N20*(2*RMI+R
+ T1=JOFI*N20*(L1-1)*REQ
+ T2=M1*(L2-1)*REQ
+ T3=JOFI*N20*IBX1*N30*(RAD+REQ)
+ T4=JOFI*((IOFI-1)*IB1*N30*N20*(2*RMI+REQ)+IBX1*N30*N20*(2*RMI+R
%EQ))
- T5=JOFI*((IOFI-1)*IB1/2+IBX1/2)*N20*N30*(2*RAD+REQ)
- T6=2*JOFI*(((IOFI-1)*IB1+IBX1)*N20)*((5*(RMI+RMU)+4*RAD
+ T5=JOFI*((IOFI-1)*IB1/2+IBX1/2)*N20*N30*(2*RAD+REQ)
+ T6=2*JOFI*(((IOFI-1)*IB1+IBX1)*N20)*((5*(RMI+RMU)+4*RAD
%)+(L1-1)*(2*RAD+REQ)+N30*(2*RAD+REQ))
- T7=JOFI*2*((IOFI-1)*IB1+IBX1)*(L1-1)*(2*RAD+REQ)
- T8=JOFI*N10*N20*((IOFI-1)*IB1/2+IBX1/2)*(3*REQ+9*RAD+4*RMU+RMI)
- T9=N10*N20*JOFI*((IOFI-1)*IB1/2+IBX1/2)*(REQ+RMI)+M1*M2*(REQ+R
+ T7=JOFI*2*((IOFI-1)*IB1+IBX1)*(L1-1)*(2*RAD+REQ)
+ T8=JOFI*N10*N20*((IOFI-1)*IB1/2+IBX1/2)*(3*REQ+9*RAD+4*RMU+RMI)
+ T9=N10*N20*JOFI*((IOFI-1)*IB1/2+IBX1/2)*(REQ+RMI)+M1*M2*(REQ+R
%DI+2*RAD)
- T10=JOFI*((IOFI-1)*IB1/2+IBX1/2)*2*(3*RMU+2*(RMI+RAD)+N40*(3*RMI
+ T10=JOFI*((IOFI-1)*IB1/2+IBX1/2)*2*(3*RMU+2*(RMI+RAD)+N40*(3*RMI
%+4*RMU+3*(RAD+REQ)+N30*(2*RAD+REQ)))
- POI=JOFI
- IF(POI.LE.2)POI=2
- TNRAN=(N40+(POI-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMI+RMU+RAD
+ POI=JOFI
+ IF(POI.LE.2)POI=2
+ TNRAN=(N40+(POI-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMI+RMU+RAD
%+REQ+N30*(2*RAD+2*REQ)*(IB1*(IOFI-1)+IBX1))
- IF(TNRAN.LT.0.)TNRAN=0.
- TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10+TNRAN
- NVA(1)=N40
- NVA(2)=N40
- NVA(3)=N20
- NVA(4)=N20
- NVA(5)=M2-(JOFI-1)*N40
- NVA(6)=NVA(5)
- C(1)=FLOAT(IB1*N30)/FLOAT(M1)
- C(2)=FLOAT(M1-(IOFI-1)*IB1*N30)/FLOAT(M1)
- C(3)=C(1)
- C(4)=C(2)
- C(5)=C(1)
- C(6)=C(2)
- K=1
- P1=FLOAT(NB)/FLOAT(M1)
+ IF(TNRAN.LT.0.)TNRAN=0.
+ TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10+TNRAN
+ NVA(1)=N40
+ NVA(2)=N40
+ NVA(3)=N20
+ NVA(4)=N20
+ NVA(5)=M2-(JOFI-1)*N40
+ NVA(6)=NVA(5)
+ C(1)=FLOAT(IB1*N30)/FLOAT(M1)
+ C(2)=FLOAT(M1-(IOFI-1)*IB1*N30)/FLOAT(M1)
+ C(3)=C(1)
+ C(4)=C(2)
+ C(5)=C(1)
+ C(6)=C(2)
+ K=1
+ P1=FLOAT(NB)/FLOAT(M1)
10 IP1=P1
- I(K)=1
- IF(IP1.GE.NVA(K)) GOTO 7
- P2=P1
- IP2=P2
+ I(K)=1
+ IF(IP1.GE.NVA(K)) GOTO 7
+ P2=P1
+ IP2=P2
8 P2=P2-FLOAT(IP2)*C(K)
- IP2=P2
- IF(IP2.EQ.0) GOTO 3
- IP1=IP1+IP2
- I(K)=I(K)+1
- IF(IP1.GE.NVA(K))GOTO 7
- GOTO 8
+ IP2=P2
+ IF(IP2.EQ.0) GOTO 3
+ IP1=IP1+IP2
+ I(K)=I(K)+1
+ IF(IP1.GE.NVA(K))GOTO 7
+ GOTO 8
7 IF(K.EQ.6) GOTO 11
- K=K+1
- GOTO 10
+ K=K+1
+ GOTO 10
11 IP1=0
- IP2=0
- IP3=0
- POFI=JOFI
- IF(POFI.LE.2)POFI=2
- TIOL=(I(2)+(IOFI-1)*I(1)+(POFI-2)*(IOFI-1)*I(3)+(POFI-
+ IP2=0
+ IP3=0
+ POFI=JOFI
+ IF(POFI.LE.2)POFI=2
+ TIOL=(I(2)+(IOFI-1)*I(1)+(POFI-2)*(IOFI-1)*I(3)+(POFI-
%2)*I(4)+(IOFI-1)*I(5)+I(6))*TACC+(IOFI*M1*N40+(POFI-2)*IOFI*
%M1*N20+(M2-(JOFI-1)*N40+L2-1)*M1*IOFI)*TTRANS
- IF(IBB1.EQ.0) GOTO 33
- IF(IB1.EQ.IBB1) GOTO 33
- IF(IBB1.EQ.2)GOTO 34
- IP3=1
- INL=NMEM/((IOFI-1)*IB1*N30+IBB1*N30)
+ IF(IBB1.EQ.0) GOTO 33
+ IF(IB1.EQ.IBB1) GOTO 33
+ IF(IBB1.EQ.2)GOTO 34
+ IP3=1
+ INL=NMEM/((IOFI-1)*IB1*N30+IBB1*N30)
55 IF(INL.GT.N40)INL=N40
- GOTO 35
+ GOTO 35
33 IF(IB1.GT.2) GOTO 36
- IF((M1-(IOFI-1)*IB1*N30).GE.N30) GOTO 36
+ IF((M1-(IOFI-1)*IB1*N30).GE.N30) GOTO 36
34 IP1=1
- INL=NMEM/(2*M1-(IOFI-1)*IB1*N30)
- GOTO 55
+ INL=NMEM/(2*M1-(IOFI-1)*IB1*N30)
+ GOTO 55
36 IP2=1
- INL=NMEM/(IOFI*IB1*N30)
- IF(INL.GT.N40)INL=N40
+ INL=NMEM/(IOFI*IB1*N30)
+ IF(INL.GT.N40)INL=N40
35 CALL VALENT(N40,INL,KN1)
- CALL VALENT(M2-(JOFI-1)*N40,INL,KN2)
- CALL VALENT(INL*IBB1,IB1,KN3)
- CALL VALENT((N40-(KN1-1)*INL)*IBB1,IB1,KN4)
- IF((IP1+IP2+IP3).NE.1) CALL ERMESF(14)
- TIO1=0.
- IF(IP3.EQ.1)TIO1=N30*M2*TTRANS*(IB1*(IOFI-1)+IBB1)
- IF(IP1.EQ.1)TIO1=M1*M2*TTRANS
- IF(IP2.EQ.1) TIO1=(IB1*N30*M2*IOFI*TTRANS)
- TTIO=2.*TIO1+(KN1*IOFI*(JOFI-1)+KN2*IOFI+(KN1-1)*(
+ CALL VALENT(M2-(JOFI-1)*N40,INL,KN2)
+ CALL VALENT(INL*IBB1,IB1,KN3)
+ CALL VALENT((N40-(KN1-1)*INL)*IBB1,IB1,KN4)
+ IF((IP1+IP2+IP3).NE.1) CALL ERMESF(14)
+ TIO1=0.
+ IF(IP3.EQ.1)TIO1=N30*M2*TTRANS*(IB1*(IOFI-1)+IBB1)
+ IF(IP1.EQ.1)TIO1=M1*M2*TTRANS
+ IF(IP2.EQ.1) TIO1=(IB1*N30*M2*IOFI*TTRANS)
+ TTIO=2.*TIO1+(KN1*IOFI*(JOFI-1)+KN2*IOFI+(KN1-1)*(
%JOFI-1)+IOFI*(JOFI-1)+KN2-1.+IOFI+(KN1*(JOFI-1)+KN2))*TACC
%+M1*M2*TTRANS+TIOL
- IF((IP1.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3
- IF((IP1.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT4+AR1
- IF((IP2.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3
- IF((IP2.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT3+AR2
- IFOIS=IB1/IBX1
- IF((IP3.EQ.1).AND.(IFOIS*IBX1.EQ.IB1))TCPU=TCPU+AT1+AT2+AT5+AR2
- IF((IP3.EQ.1).AND.(IFOIS*IBX1.NE.IB1))TCPU=TCPU+AT1+AT2+AT6+AR2
- IF((IP1.EQ.1).AND.(IRZ.EQ.1))TCPU=TCPU+AR5
- IF((IP1.EQ.1).AND.(IRZ.EQ.2))TCPU=TCPU+AR5
- TTIOG=TTIO+TCPU
- IF(TTIOG.LE.0.) GOTO 99
- IF(TTIOG.GE.TIOOP) GOTO 99
- IBOP=IB1
- IBBOP=IBB1
- K3OP=K3
- TIOOP=TTIOG
- TIOOP1=TTIO
- TIOOP2=TCPU
+ IF((IP1.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3
+ IF((IP1.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT4+AR1
+ IF((IP2.EQ.1).AND.(IRZ.EQ.0))TCPU=TCPU+AT1+AT2+AT3
+ IF((IP2.EQ.1).AND.(IRZ.NE.0))TCPU=TCPU+AT1+AT2+AT3+AR2
+ IFOIS=IB1/IBX1
+ IF((IP3.EQ.1).AND.(IFOIS*IBX1.EQ.IB1))TCPU=TCPU+AT1+AT2+AT5+AR2
+ IF((IP3.EQ.1).AND.(IFOIS*IBX1.NE.IB1))TCPU=TCPU+AT1+AT2+AT6+AR2
+ IF((IP1.EQ.1).AND.(IRZ.EQ.1))TCPU=TCPU+AR5
+ IF((IP1.EQ.1).AND.(IRZ.EQ.2))TCPU=TCPU+AR5
+ TTIOG=TTIO+TCPU
+ IF(TTIOG.LE.0.) GOTO 99
+ IF(TTIOG.GE.TIOOP) GOTO 99
+ IBOP=IB1
+ IBBOP=IBB1
+ K3OP=K3
+ TIOOP=TTIOG
+ TIOOP1=TTIO
+ TIOOP2=TCPU
99 IF(IB1.GE.MAX)GOTO17
- IC=IC+1
- GOTO 18
+ IC=IC+1
+ GOTO 18
4 T1=JOFI*N20*(L1-1)*REQ
- T2=M1*(L2-1)*REQ
- T3=JOFI*N20*N30*(RAD+REQ)*K1
- T4=JOFI*(K1*N30*N20*(2*RMI+REQ))
- T5=JOFI*N20*N30*(2*RAD+REQ)*K1/2
- T6=2*JOFI*(K1*N20)*((5*RMI+RMU)+4*RAD+(L1-1)*(2*RAD+REQ)+N30*2*
+ T2=M1*(L2-1)*REQ
+ T3=JOFI*N20*N30*(RAD+REQ)*K1
+ T4=JOFI*(K1*N30*N20*(2*RMI+REQ))
+ T5=JOFI*N20*N30*(2*RAD+REQ)*K1/2
+ T6=2*JOFI*(K1*N20)*((5*RMI+RMU)+4*RAD+(L1-1)*(2*RAD+REQ)+N30*2*
%RAD+REQ)
- T7=JOFI*2*K1*(L1-1)*(2*RAD+REQ)
- T9=JOFI*N10*N20*K1*(REQ+RMI)/2+M1*M2*(REQ+RDI+2*RAD)
- T8=JOFI*N10*N20*K1*(3*REQ+9*RAD+4*RMU+RMI)/2
- T10=JOFI*K1*(3*RMU+2*(RMI+RAD)+N40*(3*RMI
+ T7=JOFI*2*K1*(L1-1)*(2*RAD+REQ)
+ T9=JOFI*N10*N20*K1*(REQ+RMI)/2+M1*M2*(REQ+RDI+2*RAD)
+ T8=JOFI*N10*N20*K1*(3*REQ+9*RAD+4*RMU+RMI)/2
+ T10=JOFI*K1*(3*RMU+2*(RMI+RAD)+N40*(3*RMI
%+4*RMU+3*(RAD+REQ)+N30*(2*RAD+REQ)))
- PIO=JOFI
- IF(PIO.LE.2)PIO=2
- TNR=(N40+(PIO-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMU+RMI+RAD+REQ+
+ PIO=JOFI
+ IF(PIO.LE.2)PIO=2
+ TNR=(N40+(PIO-2)*N20+(M2-(JOFI-1)*N40+L2-1))*(RMU+RMI+RAD+REQ+
%N30*(2*RAD+2*REQ)*K1)
- IF(TNR.LE.0.)TNR=0.
- BT1=JOFI*N20*WW*K1
- BT2=JOFI*N40*WW*K1
- BT3=JOFI*N40*(VY1+K1*N30*VY2)
- BR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1*2*(REQ+RAD)))+M2*(3*(
+ IF(TNR.LE.0.)TNR=0.
+ BT1=JOFI*N20*WW*K1
+ BT2=JOFI*N40*WW*K1
+ BT3=JOFI*N40*(VY1+K1*N30*VY2)
+ BR1=M2*(2*(RAD+RMI+RMU+REQ)+(M1*2*(REQ+RAD)))+M2*(3*(
$REQ+RAD+RMU)+4*(RMI)+M1*(2*(RAD)+REQ))
- BR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ))
- TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10
- TCPU=TCPU+TNR+BT1+BT2
- LIOF=M1/(N30)
- IRZ=0
- IF(LIOF*N30.EQ.M1) GOTO 2344
- IRZ=1
+ BR2=M2*(2*(REQ+RMI)+3*RMU+M1*(2*RAD+REQ))
+ TCPU=T1+T2+T3+T4+T5+T6+T7+T8+T9+T10
+ TCPU=TCPU+TNR+BT1+BT2
+ LIOF=M1/(N30)
+ IRZ=0
+ IF(LIOF*N30.EQ.M1) GOTO 2344
+ IRZ=1
2344 IF(IRZ.EQ.0)TCPU=TCPU+BT3
- IF(IRZ.NE.0)TCPU=TCPU+BT3+BR2
- TIOOP=2.*FLOAT(M1)*FLOAT(M2)*TTRANS+2.*FLOAT(K2)*TACC+TCPU
- IBOP=1
- IBBOP=0
- K3OP=1
- TIOOP2=TCPU
- TIOOP1=TIOOP-TCPU
+ IF(IRZ.NE.0)TCPU=TCPU+BT3+BR2
+ TIOOP=2.*FLOAT(M1)*FLOAT(M2)*TTRANS+2.*FLOAT(K2)*TACC+TCPU
+ IBOP=1
+ IBBOP=0
+ K3OP=1
+ TIOOP2=TCPU
+ TIOOP1=TIOOP-TCPU
17 TTOT=TIOOP+TFF
- IF(TTOT.LE.0.) GOTO 3
- IF(TTOT.GE.TTOTOP)GOTO3
- N1CO=N10
- N2CO=N20
- IBCO=IBOP
- IBBCO=IBBOP
- K3CO=K3OP
- TTOTOP=TTOT
- TESOP=TIOOP1
- TCOP=TIOOP2
- TFOP=TFF
+ IF(TTOT.LE.0.) GOTO 3
+ IF(TTOT.GE.TTOTOP)GOTO3
+ N1CO=N10
+ N2CO=N20
+ IBCO=IBOP
+ IBBCO=IBBOP
+ K3CO=K3OP
+ TTOTOP=TTOT
+ TESOP=TIOOP1
+ TCOP=TIOOP2
+ TFOP=TFF
3 CONTINUE
-C
- N1=N1CO
- N2=N2CO
- TTO=TTOTOP
- IB=IBCO
- IBB=IBBCO
- K3=K3CO
- TC=TCOP
- TS=TESOP
- TF=TFOP
- TT=TCOP+TFOP
- TWER=TTO-TT
- IF(N1.EQ.0.OR.N2.EQ.0) CALL OUTSTR(0,'PAS DE PLACE MEMOIRE SUFFISA
+ N1=N1CO
+ N2=N2CO
+ TTO=TTOTOP
+ IB=IBCO
+ IBB=IBBCO
+ K3=K3CO
+ TC=TCOP
+ TS=TESOP
+ TF=TFOP
+ TT=TCOP+TFOP
+ TWER=TTO-TT
+ IF(N1.EQ.0.OR.N2.EQ.0) CALL OUTSTR(0,'PAS DE PLACE MEMOIRE SUFFISA
$NTE POUR UNE MISE EN OEUVRE PAR BLOCS$')
- IF(IB.NE.1)RETURN
- IHJ=(M1/(N1-L1+1))
- IF(IHJ*(N1-L1+1).NE.M1)IHJ=IHJ+1
- IHJ1=IHJ/2
- IF(IHJ1*2.NE.IHJ)GOTO7778
- IB=IHJ
- IBB=0
- RETURN
-7778 IB=IHJ+1
- IBB=0
- RETURN
- END
+ IF(IB.NE.1)RETURN
+ IHJ=(M1/(N1-L1+1))
+ IF(IHJ*(N1-L1+1).NE.M1)IHJ=IHJ+1
+ IHJ1=IHJ/2
+ IF(IHJ1*2.NE.IHJ)GOTO7778
+ IB=IHJ
+ IBB=0
+ RETURN
+7778 IB=IHJ+1
+ IBB=0
+ RETURN
+ END
diff --git a/gcc/testsuite/gfortran.dg/g77/20000511-1.f b/gcc/testsuite/gfortran.dg/g77/20000511-1.f
index fca4bf94080..261b6a0e27c 100644
--- a/gcc/testsuite/gfortran.dg/g77/20000511-1.f
+++ b/gcc/testsuite/gfortran.dg/g77/20000511-1.f
@@ -14,9 +14,9 @@ C -ffast-math ICE provoked by this conditional
C
C code for both increments equal to 1
C
- do i= 1,n
- sy(i)= sy(i)+sa*sx(i)
- enddo
- endif
+ do i= 1,n
+ sy(i)= sy(i)+sa*sx(i)
+ enddo
+ endif
return
end
diff --git a/gcc/testsuite/gfortran.dg/g77/20000511-2.f b/gcc/testsuite/gfortran.dg/g77/20000511-2.f
index b3a3ca3dfd4..1ae24ae5b87 100644
--- a/gcc/testsuite/gfortran.dg/g77/20000511-2.f
+++ b/gcc/testsuite/gfortran.dg/g77/20000511-2.f
@@ -47,16 +47,16 @@ C Multiply by inv(L).
C
do j= 1,n-1
C the following min() intrinsic provokes this bug
- lm= min(kl,n-j)
- jp= ipiv(j)
- t= work(jp)
- if(jp.ne.j)then
+ lm= min(kl,n-j)
+ jp= ipiv(j)
+ t= work(jp)
+ if(jp.ne.j)then
C but only when combined with this if block
- work(jp)= work(j)
- work(j)= t
- endif
+ work(jp)= work(j)
+ work(j)= t
+ endif
C and this subroutine call
- call saxpy(lm,-t,ab(kd+1,j),1,work(j+1),1)
- enddo
+ call saxpy(lm,-t,ab(kd+1,j),1,work(j+1),1)
+ enddo
return
end
diff --git a/gcc/testsuite/gfortran.dg/g77/970625-2.f b/gcc/testsuite/gfortran.dg/g77/970625-2.f
index 53a4b23cc5d..c77a2b5f310 100644
--- a/gcc/testsuite/gfortran.dg/g77/970625-2.f
+++ b/gcc/testsuite/gfortran.dg/g77/970625-2.f
@@ -5,7 +5,7 @@
* Subject: Re: testing 970624.
* In-Reply-To: <199706251027.GAA07892@churchy.gnu.ai.mit.edu>
* References: <199706251018.MAA21538@nu>
-* <199706251027.GAA07892@churchy.gnu.ai.mit.edu>
+* <199706251027.GAA07892@churchy.gnu.ai.mit.edu>
* X-Mailer: VM 6.30 under Emacs 19.34.1
* Content-Type: text/plain; charset=US-ASCII
*
@@ -24,7 +24,7 @@
*
* Regards,
* --
-* ===== R.Hooft@EuroMail.com http://www.Sander.EMBL-Heidelberg.DE/rob/ ==
+* ===== R.Hooft@EuroMail.com http://www.Sander.EMBL-Heidelberg.DE/rob/ ==
* ==== In need of protein modeling? http://www.Sander.EMBL-Heidelberg.DE/whatif/
* Validation of protein structures? http://biotech.EMBL-Heidelberg.DE:8400/ ====
* == PGPid 0xFA19277D == Use Linux! Free Software Rules The World! =============
diff --git a/gcc/testsuite/gfortran.dg/g77/980310-2.f b/gcc/testsuite/gfortran.dg/g77/980310-2.f
index 829706a9e62..1ed5efc5960 100644
--- a/gcc/testsuite/gfortran.dg/g77/980310-2.f
+++ b/gcc/testsuite/gfortran.dg/g77/980310-2.f
@@ -33,12 +33,12 @@ C doesn't exist in the g77 runtime)
C
C RND - Return a random integer mod n
C
- INTEGER FUNCTION RND (N)
- IMPLICIT INTEGER (A-Z)
- REAL RAND
- COMMON /SEED/ RNSEED
+ INTEGER FUNCTION RND (N)
+ IMPLICIT INTEGER (A-Z)
+ REAL RAND
+ COMMON /SEED/ RNSEED
- RND = RAND(RNSEED)*FLOAT(N)
- RETURN
+ RND = RAND(RNSEED)*FLOAT(N)
+ RETURN
- END
+ END
diff --git a/gcc/testsuite/gfortran.dg/g77/980310-3.f b/gcc/testsuite/gfortran.dg/g77/980310-3.f
index e7e9523558a..56560237859 100644
--- a/gcc/testsuite/gfortran.dg/g77/980310-3.f
+++ b/gcc/testsuite/gfortran.dg/g77/980310-3.f
@@ -1,9 +1,9 @@
c { dg-do compile }
c
-c This demonstrates a problem with g77 and pic on x86 where
-c egcs 1.0.1 and earlier will generate bogus assembler output.
-c unfortunately, gas accepts the bogus acssembler output and
-c generates code that almost works.
+c This demonstrates a problem with g77 and pic on x86 where
+c egcs 1.0.1 and earlier will generate bogus assembler output.
+c unfortunately, gas accepts the bogus acssembler output and
+c generates code that almost works.
c
diff --git a/gcc/testsuite/gfortran.dg/g77/980310-8.f b/gcc/testsuite/gfortran.dg/g77/980310-8.f
index bafb470d340..c20f2d72082 100644
--- a/gcc/testsuite/gfortran.dg/g77/980310-8.f
+++ b/gcc/testsuite/gfortran.dg/g77/980310-8.f
@@ -4,19 +4,20 @@ C Subject: egcs-g77 and array indexing
C Reply-To: etseidl@jutland.ca.sandia.gov
C Date: Wed, 26 Nov 1997 10:38:27 -0800
C From: Edward Seidl <etseidl@jutland.ca.sandia.gov>
-C
-C I have some horrible spaghetti code I'm trying compile with egcs-g77,
-C but it's puking on code like the example below. I have no idea if it's
-C legal fortran or not, and I'm in no position to change it. All I do know
-C is it compiles with a number of other compilers, including f2c and
-C g77-0.5.19.1/gcc-2.7.2.1. When I try to compile with egcs-2.90.18 971122
-C I get the following (on both i686-pc-linux-gnu and alphaev56-unknown-linux-gnu):
-C
-C foo.f: In subroutine `foobar':
-C foo.f:11:
-C subroutine foobar(norb,nnorb)
-C ^
-C Array `norb' at (^) is too large to handle
+C
+C I have some horrible spaghetti code I'm trying compile with egcs-g77,
+C but it's puking on code like the example below. I have no idea if it's
+C legal fortran or not, and I'm in no position to change it. All I do know
+C is it compiles with a number of other compilers, including f2c and
+C g77-0.5.19.1/gcc-2.7.2.1. When I try to compile with egcs-2.90.18 971122
+C I get the following (on both i686-pc-linux-gnu and
+C alphaev56-unknown-linux-gnu):
+C
+Cfoo.f: In subroutine `foobar':
+Cfoo.f:11:
+C subroutine foobar(norb,nnorb)
+C ^
+CArray `norb' at (^) is too large to handle
program foo
implicit integer(A-Z)
diff --git a/gcc/testsuite/gfortran.dg/g77/980519-2.f b/gcc/testsuite/gfortran.dg/g77/980519-2.f
index 50b517fbd0c..3134a00b5cd 100644
--- a/gcc/testsuite/gfortran.dg/g77/980519-2.f
+++ b/gcc/testsuite/gfortran.dg/g77/980519-2.f
@@ -40,10 +40,10 @@ c Next declaration added on transfer to gfortran testsuite
common /Idim/ nlay, nlayz
common /Idim/ n_work
common /Idim/ nb_calls
-
- real Xsp, Ysp, Xrcv, Yrcv
- real in( jT_f-hd_T : jT_l )
-
+
+ real Xsp, Ysp, Xrcv, Yrcv
+ real in( jT_f-hd_T : jT_l )
+
in( jT_f-hd_T ) = Xsp
in( jT_f-hd_T + 1 ) = Ysp
in( jT_f-hd_T + 2 ) = Xrcv
diff --git a/gcc/testsuite/gfortran.dg/g77/alpha1.f b/gcc/testsuite/gfortran.dg/g77/alpha1.f
index 5b33840f8c6..e8b8ed7cafd 100644
--- a/gcc/testsuite/gfortran.dg/g77/alpha1.f
+++ b/gcc/testsuite/gfortran.dg/g77/alpha1.f
@@ -19,8 +19,8 @@ C at this point!
!
!if { [ishost "i\[34567\]86-*-*"] } {
! if { [istarget "mmix-knuth-mmixware"]
-! || [istarget "powerpc-*-*"] } {
-! set torture_compile_xfail [istarget]
+! || [istarget "powerpc-*-*"] } {
+! set torture_compile_xfail [istarget]
! }
!}
!
diff --git a/gcc/testsuite/gfortran.dg/g77/claus.f b/gcc/testsuite/gfortran.dg/g77/claus.f
index 63b9be254c9..391d1cb9a85 100644
--- a/gcc/testsuite/gfortran.dg/g77/claus.f
+++ b/gcc/testsuite/gfortran.dg/g77/claus.f
@@ -7,8 +7,8 @@ c { dg-do run }
k=1
n=2
ind=k-n+2
- if (ind /= 1) call abort
- if (ab(ind) /= 1) call abort
- if (k-n+2 /= 1) call abort
- if (ab(k-n+2) /= 1) call abort
+ if (ind /= 1) call abort
+ if (ab(ind) /= 1) call abort
+ if (k-n+2 /= 1) call abort
+ if (ab(k-n+2) /= 1) call abort
END
diff --git a/gcc/testsuite/gfortran.dg/g77/erfc.f b/gcc/testsuite/gfortran.dg/g77/erfc.f
index 0ab0aee8c1c..f8aae199d51 100644
--- a/gcc/testsuite/gfortran.dg/g77/erfc.f
+++ b/gcc/testsuite/gfortran.dg/g77/erfc.f
@@ -1,32 +1,32 @@
c { dg-do run }
c============================================== test.f
- real x, y
- real*8 x1, y1
- x=0.
- y = erfc(x)
- if (y .ne. 1.) call abort
+ real x, y
+ real*8 x1, y1
+ x=0.
+ y = erfc(x)
+ if (y .ne. 1.) call abort
- x=1.1
- y = erfc(x)
- if (abs(y - .1197949) .ge. 1.e-6) call abort
+ x=1.1
+ y = erfc(x)
+ if (abs(y - .1197949) .ge. 1.e-6) call abort
-* modified from x=10, y .gt. 1.5e-44 to avoid lack of -mieee on Alphas.
- x=8
- y = erfc(x)
- if (y .gt. 1.2e-28) call abort
+c modified from x=10, y .gt. 1.5e-44 to avoid lack of -mieee on Alphas.
+ x=8
+ y = erfc(x)
+ if (y .gt. 1.2e-28) call abort
- x1=0.
- y1 = erfc(x1)
- if (y1 .ne. 1.) call abort
+ x1=0.
+ y1 = erfc(x1)
+ if (y1 .ne. 1.) call abort
- x1=1.1d0
- y1 = erfc(x1)
- if (abs(y1 - .1197949d0) .ge. 1.d-6) call abort
+ x1=1.1d0
+ y1 = erfc(x1)
+ if (abs(y1 - .1197949d0) .ge. 1.d-6) call abort
- x1=10
- y1 = erfc(x1)
- if (y1 .gt. 1.5d-44) call abort
- end
+ x1=10
+ y1 = erfc(x1)
+ if (y1 .gt. 1.5d-44) call abort
+ end
c=================================================
!output:
! 0. 1.875
diff --git a/gcc/testsuite/gfortran.dg/g77/short.f b/gcc/testsuite/gfortran.dg/g77/short.f
index 3f0e12217ad..e9a18a1315b 100644
--- a/gcc/testsuite/gfortran.dg/g77/short.f
+++ b/gcc/testsuite/gfortran.dg/g77/short.f
@@ -38,16 +38,16 @@ c a four-way average of rhobar
c another four-way average of rhobar
do 270 k=0,N
- rtmp1 = z(2,2,k)
- rtmp2 = z(1,2,k)
- rtmp3 = z(2,1,k)
- rtmp4 = z(1,1,k)
- yzin2(k) = 0.25 *
+ rtmp1 = z(2,2,k)
+ rtmp2 = z(1,2,k)
+ rtmp3 = z(2,1,k)
+ rtmp4 = z(1,1,k)
+ yzin2(k) = 0.25 *
& ( rtmp1 + rtmp2 + rtmp3 + rtmp4 )
270 continue
do k=0,N
- if (yzin1(k) .ne. yzin2(k)) call abort
+ if (yzin1(k) .ne. yzin2(k)) call abort
enddo
if (yzin1(0) .ne. -1371.) call abort
if (yzin1(1) .ne. -685.5) call abort
diff --git a/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f b/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f
new file mode 100644
index 00000000000..a2c37b03fdc
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f
@@ -0,0 +1,51 @@
+! { dg-do compile }
+! Testing g77 intrinsics as subroutines
+ integer*8 i8
+ integer*4 i4
+ integer i
+ character*80 c
+
+ i8 = time ()
+ i4 = time ()
+ i8 = time8 ()
+ i4 = time8 ()
+
+ i8 = hostnm (c)
+ i4 = hostnm (c)
+ i = hostnm (c)
+
+ i8 = ierrno ()
+ i4 = ierrno ()
+ i = ierrno ()
+
+ i8 = kill (i8, i8)
+ i8 = kill (i8, i4)
+ i8 = kill (i4, i8)
+ i8 = kill (i4, i4)
+ i4 = kill (i8, i8)
+ i4 = kill (i8, i4)
+ i4 = kill (i4, i8)
+ i4 = kill (i4, i4)
+
+ i8 = link ('foo', 'bar')
+ i4 = link ('foo', 'bar')
+ i = link ('foo', 'bar')
+
+ i8 = rename ('foo', 'bar')
+ i4 = rename ('foo', 'bar')
+ i = rename ('foo', 'bar')
+
+ i8 = symlnk ('foo', 'bar')
+ i4 = symlnk ('foo', 'bar')
+ i = symlnk ('foo', 'bar')
+
+! Cleaning our mess
+ call unlink ('bar')
+
+! This should be the last test, unless you want garbage everywhere in
+! your filesystem.
+ i8 = chdir ('..')
+ i4 = chdir ('..')
+ i = chdir ('..')
+
+ end
diff --git a/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f b/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
new file mode 100644
index 00000000000..1d797f75a28
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
@@ -0,0 +1,82 @@
+! { dg-do compile }
+! Testing g77 intrinsics as subroutines
+ integer*8 i8, j8
+ integer*4 i4, j4
+ integer i, j
+ character*80 c
+
+ call gerror (c)
+ call getlog (c)
+
+ call hostnm (c, status = i8)
+ call hostnm (c, i8)
+ call hostnm (c, status = i4)
+ call hostnm (c, i4)
+ call hostnm (c, status = i)
+ call hostnm (c, i)
+ call hostnm (c)
+
+ call kill (i8, i8, status = i8)
+ call kill (i8, i8, i8)
+ call kill (i4, i8, i8)
+ call kill (i8, i4, i8)
+ call kill (i8, i8, i4)
+ call kill (i4, i4, i8)
+ call kill (i4, i8, i4)
+ call kill (i8, i4, i4)
+ call kill (i4, i4, i4)
+ call kill (i, i, i)
+ call kill (i8, i8)
+ call kill (i4, i8)
+ call kill (i8, i4)
+ call kill (i4, i4)
+ call kill (i, i)
+
+ call link ('foo', 'bar', status = i8)
+ call link ('foo', 'bar', status = i4)
+ call link ('foo', 'bar', status = i)
+ call link ('foo', 'bar', i8)
+ call link ('foo', 'bar', i4)
+ call link ('foo', 'bar', i)
+ call link ('foo', 'bar')
+
+ call perror (c)
+
+ call rename ('foo', 'bar', status = i8)
+ call rename ('foo', 'bar', status = i4)
+ call rename ('foo', 'bar', status = i)
+ call rename ('foo', 'bar', i8)
+ call rename ('foo', 'bar', i4)
+ call rename ('foo', 'bar', i)
+ call rename ('foo', 'bar')
+
+ i = 1
+ i4 = 1
+ i8 = 1
+ call sleep (i)
+ call sleep (i4)
+ call sleep (i8)
+ call sleep (-1)
+
+ call symlnk ('foo', 'bar', status = i8)
+ call symlnk ('foo', 'bar', status = i4)
+ call symlnk ('foo', 'bar', status = i)
+ call symlnk ('foo', 'bar', i8)
+ call symlnk ('foo', 'bar', i4)
+ call symlnk ('foo', 'bar', i)
+ call symlnk ('foo', 'bar')
+
+! Cleaning our mess
+ call unlink ('bar')
+
+! This should be the last test, unless you want garbage everywhere in
+! your filesystem.
+ call chdir ('..', status = i8)
+ call chdir ('..', i8)
+ call chdir ('..', status = i4)
+ call chdir ('..', i4)
+ call chdir ('..', status = i)
+ call chdir ('..', i)
+ call chdir ('..')
+
+ end
diff --git a/gcc/testsuite/gfortran.dg/implicit_3.f90 b/gcc/testsuite/gfortran.dg/implicit_3.f90
new file mode 100644
index 00000000000..830b8611a9f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/implicit_3.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! Verify that INTERFACEs don't inherit the implicit types of the
+! surrounding namespace.
+implicit complex (i-k)
+
+interface
+ function f(k,l)
+ ! k should be default INTEGER
+ dimension l(k)
+ end function f
+end interface
+end
diff --git a/gcc/testsuite/gfortran.dg/int_1.f90 b/gcc/testsuite/gfortran.dg/int_1.f90
new file mode 100644
index 00000000000..4e381220a72
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/int_1.f90
@@ -0,0 +1,172 @@
+! { dg-do run }
+!
+! 13.7.53 INT(A [, KIND])
+!
+! Description. Convert to integer type.
+! Class. Elemental function.
+! Arguments.
+! A shall be of type integer, real, or complex,
+! or a boz-literal-constant .
+! KIND (optional) shall be a scalar integer initialization expression.
+!
+! Result Characteristics. Integer. If KIND is present, the kind type
+! parameter is that specified by the value of KIND; otherwise, the
+! kind type parameter is that of default integer type.
+!
+! Result Value.
+!
+! Case (1): If A is of type integer, INT (A) = A.
+!
+! Case (2): If A is of type real, there are two cases:
+! (a) if |A| < 1, INT (A) has the value 0
+! (b) if |A| .ge. 1, INT (A) is the integer whose magnitude is the
+! largest integer that does not exceed the magnitude of A and
+! whose sign is the same as the sign of A.
+!
+! Case (3): If A is of type complex, INT(A) = INT(REAL(A, KIND(A))).
+!
+! Case (4): If A is a boz-literal-constant, it is treated as if it were
+! an int-literal-constant with a kind-param that specifies the
+! representation method with the largest decimal exponent range
+! supported by the processor.
+!
+! Example. INT (­3.7) has the value ­3.
+!
+module mykinds
+ integer, parameter :: ik1 = selected_int_kind(2)
+ integer, parameter :: ik2 = selected_int_kind(4)
+ integer, parameter :: ik4 = selected_int_kind(9)
+ integer, parameter :: ik8 = selected_int_kind(18)
+ integer, parameter :: sp = selected_real_kind(6,30)
+ integer, parameter :: dp = selected_real_kind(15,300)
+ integer, parameter :: ck = kind('a')
+end module mykinds
+
+program test_int
+
+ use mykinds
+
+ integer(ik1) i1
+ integer(ik2) i2
+ integer(ik4) i4
+ integer(ik8) i8
+ real(sp) r4
+ real(dp) r8
+ complex(sp) c4
+ complex(dp) c8
+ !
+ ! Case 1
+ !
+ i1 = int(-3)
+ i2 = int(-3)
+ i4 = int(-3)
+ i8 = int(-3)
+ if (i1 /= -3_ik1 .or. i2 /= -3_ik2) call abort
+ if (i4 /= -3_ik4 .or. i8 /= -3_ik8) call abort
+
+ i1 = int(5, ik1)
+ i2 = int(i1, ik2)
+ i4 = int(i1, ik4)
+ i8 = int(i1, ik8)
+ if (i1 /= 5_ik1 .or. i2 /= 5_ik2) call abort
+ if (i4 /= 5_ik4 .or. i8 /= 5_ik8) call abort
+
+ i8 = int(10, ik8)
+ i1 = int(i8, ik1)
+ i2 = int(i8, ik2)
+ i4 = int(i8, ik4)
+ if (i1 /= 10_ik1 .or. i2 /= 10_ik2) call abort
+ if (i4 /= 10_ik4 .or. i8 /= 10_ik8) call abort
+ !
+ ! case 2(b)
+ !
+ r4 = -3.7_sp
+ i1 = int(r4, ik1)
+ i2 = int(r4, ik2)
+ i4 = int(r4, ik4)
+ i8 = int(r4, ik8)
+ if (i1 /= -3_ik1 .or. i2 /= -3_ik2) call abort
+ if (i4 /= -3_ik4 .or. i8 /= -3_ik8) call abort
+
+ r8 = -3.7_dp
+ i1 = int(r8, ik1)
+ i2 = int(r8, ik2)
+ i4 = int(r8, ik4)
+ i8 = int(r8, ik8)
+ if (i1 /= -3_ik1 .or. i2 /= -3_ik2) call abort
+ if (i4 /= -3_ik4 .or. i8 /= -3_ik8) call abort
+ !
+ ! Case 2(a)
+ !
+ r4 = -3.7E-1_sp
+ i1 = int(r4, ik1)
+ i2 = int(r4, ik2)
+ i4 = int(r4, ik4)
+ i8 = int(r4, ik8)
+ if (i1 /= 0_ik1 .or. i2 /= 0_ik2) call abort
+ if (i4 /= 0_ik4 .or. i8 /= 0_ik8) call abort
+
+ r8 = -3.7E-1_dp
+ i1 = int(r8, ik1)
+ i2 = int(r8, ik2)
+ i4 = int(r8, ik4)
+ i8 = int(r8, ik8)
+ if (i1 /= 0_ik1 .or. i2 /= 0_ik2) call abort
+ if (i4 /= 0_ik4 .or. i8 /= 0_ik8) call abort
+ !
+ ! Case 3
+ !
+ c4 = (-3.7E-1_sp,3.7E-1_sp)
+ i1 = int(c4, ik1)
+ i2 = int(c4, ik2)
+ i4 = int(c4, ik4)
+ i8 = int(c4, ik8)
+ if (i1 /= 0_ik1 .or. i2 /= 0_ik2) call abort
+ if (i4 /= 0_ik4 .or. i8 /= 0_ik8) call abort
+
+ c8 = (-3.7E-1_dp,3.7E-1_dp)
+ i1 = int(c8, ik1)
+ i2 = int(c8, ik2)
+ i4 = int(c8, ik4)
+ i8 = int(c8, ik8)
+ if (i1 /= 0_ik1 .or. i2 /= 0_ik2) call abort
+ if (i4 /= 0_ik4 .or. i8 /= 0_ik8) call abort
+
+ c4 = (-3.7_sp,3.7_sp)
+ i1 = int(c4, ik1)
+ i2 = int(c4, ik2)
+ i4 = int(c4, ik4)
+ i8 = int(c4, ik8)
+ if (i1 /= -3_ik1 .or. i2 /= -3_ik2) call abort
+ if (i4 /= -3_ik4 .or. i8 /= -3_ik8) call abort
+
+ c8 = (3.7_dp,3.7_dp)
+ i1 = int(c8, ik1)
+ i2 = int(c8, ik2)
+ i4 = int(c8, ik4)
+ i8 = int(c8, ik8)
+ if (i1 /= 3_ik1 .or. i2 /= 3_ik2) call abort
+ if (i4 /= 3_ik4 .or. i8 /= 3_ik8) call abort
+ !
+ ! Case 4
+ !
+ i1 = int(b'0011', ik1)
+ i2 = int(b'0011', ik2)
+ i4 = int(b'0011', ik4)
+ i8 = int(b'0011', ik8)
+ if (i1 /= 3_ik1 .or. i2 /= 3_ik2) call abort
+ if (i4 /= 3_ik4 .or. i8 /= 3_ik8) call abort
+ i1 = int(o'0011', ik1)
+ i2 = int(o'0011', ik2)
+ i4 = int(o'0011', ik4)
+ i8 = int(o'0011', ik8)
+ if (i1 /= 9_ik1 .or. i2 /= 9_ik2) call abort
+ if (i4 /= 9_ik4 .or. i8 /= 9_ik8) call abort
+ i1 = int(z'0011', ik1)
+ i2 = int(z'0011', ik2)
+ i4 = int(z'0011', ik4)
+ i8 = int(z'0011', ik8)
+ if (i1 /= 17_ik1 .or. i2 /= 17_ik2) call abort
+ if (i4 /= 17_ik4 .or. i8 /= 17_ik8) call abort
+
+end program test_int
diff --git a/gcc/testsuite/gfortran.dg/ishft.f90 b/gcc/testsuite/gfortran.dg/ishft.f90
index d8ca3a7de73..88edd30efdd 100644
--- a/gcc/testsuite/gfortran.dg/ishft.f90
+++ b/gcc/testsuite/gfortran.dg/ishft.f90
@@ -25,7 +25,7 @@ if (ishft (1_8, 0) /= 1) call abort
if (ishft (1_8, 1) /= 2) call abort
if (ishft (3_8, 1) /= 6) call abort
if (ishft (-1_8, 1) /= -2) call abort
-if (ishft (-1_8, -60) /= z'F'_8) call abort ! { dg-warning "" "" }
+if (ishft (-1_8, -60) /= z'F') call abort
if (ishftc (1_1, 0) /= 1) call abort
if (ishftc (1_1, 1) /= 2) call abort
diff --git a/gcc/testsuite/gfortran.dg/largeequiv_1.f90 b/gcc/testsuite/gfortran.dg/largeequiv_1.f90
new file mode 100644
index 00000000000..39b1f815938
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/largeequiv_1.f90
@@ -0,0 +1,13 @@
+! { dg-do run }
+! PR 20361 : We didn't check if a large equivalence actually fit on
+! the stack, and therefore segfaulted at execution time
+subroutine test
+integer i(1000000), j
+equivalence (i(50), j)
+
+j = 1
+if (i(50) /= j) call abort()
+end subroutine test
+
+call test
+end
diff --git a/gcc/testsuite/gfortran.dg/list_read_4.f90 b/gcc/testsuite/gfortran.dg/list_read_4.f90
new file mode 100644
index 00000000000..fb1770e2303
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/list_read_4.f90
@@ -0,0 +1,54 @@
+! { dg-do run }
+! Test of gfortran list directed read> check delimiters are correctly
+! treated. Written in f77 so that g77 will run for comparison.
+!
+! f , e and i edit reads are terminated separately by read_real.c
+!
+! PThomas Jan 2005
+! BDavis
+ program list_read_4
+ integer i(10),l(10),k,j
+ real x(10),y(10)
+! expected results
+ data y / 1.0,2.0,3.0,-1.0,-1.0,-1.0,4.0,4.0,99.0,99.0 /
+ data l /1,2,3,-1,-1,-1,4,4,99,99/
+! put them in a file
+ open (10,status="scratch")
+ write (10,*) " 1.0, 2.0 , 3.0,, 2* , 2*4.0 , 5*99.0"
+ write (10,*) " 1.0e0, 2.0e0 , 3.0e0,, 2* , 2*4.0e0 , 5*99.0e0"
+ write (10,*) " 1, 2 , 3,, 2* , 2*4 , 5*99"
+ write (10,*) " 1, 2 , 3,, 2* , 2*4 , 5*99"
+ rewind (10)
+!
+ do k = 1,10
+ x(k) = -1.0
+ enddo
+ read (10,*,iostat=ier) x
+ if (ier.ne.0) call abort
+ do k = 1,10
+ if (x(k).ne.y(k)) call abort
+ x(k) = -1
+ end do
+ READ(10,*,iostat=ier) x
+ if (ier.ne.0) call abort
+ do k = 1,10
+ if (x(k).ne.y(k)) call abort
+ x(k) = -1
+ end do
+ READ(10,*,iostat=ier) x
+ if (ier.ne.0) call abort
+ do k = 1,10
+ if (x(k).ne.y(k)) call abort
+ x(k) = -1
+ end do
+! integer
+ do k = 1,10
+ i(k) = -1
+ end do
+ READ(10,*,iostat=ier) (i(j),j=1,10)
+ if (ier.ne.0) call abort
+ do k = 1,10
+ if (i(k).ne.y(k)) call abort
+ i(k) = -1
+ end do
+ end
diff --git a/gcc/testsuite/gfortran.dg/negative_unit.f b/gcc/testsuite/gfortran.dg/negative_unit.f
new file mode 100644
index 00000000000..fd0100a14de
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/negative_unit.f
@@ -0,0 +1,22 @@
+! { dg-do run }
+!
+! PR libfortran/20660 and other bugs (not filed in bugzilla) relating
+! to negative units
+!
+! Bugs submitted by Walt Brainerd
+ integer i
+ logical l
+
+ i = 0
+! gfortran created a 'fort.-1' file and wrote "Hello" in it
+ write (unit=-1, fmt=*, iostat=i) "Hello"
+ if (i <= 0) call abort
+
+ i = 0
+ open (unit=-11, file="xxx", iostat=i)
+ if (i <= 0) call abort
+
+ inquire (unit=-42, exist=l)
+ if (l) call abort
+
+ end
diff --git a/gcc/testsuite/gfortran.dg/nesting_1.f90 b/gcc/testsuite/gfortran.dg/nesting_1.f90
new file mode 100644
index 00000000000..51ebfd999a8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/nesting_1.f90
@@ -0,0 +1,18 @@
+! PR 18525
+! we used to incorrectly refer to n from a when resolving the call to
+! c from b
+! { dg-do run }
+subroutine a(n)
+call b(n+1)
+contains
+ subroutine b(n)
+ call c(n)
+ end subroutine b
+
+ subroutine c(m)
+ if (m/=1) call abort
+ end subroutine c
+end subroutine a
+
+call a(0)
+end
diff --git a/gcc/testsuite/gfortran.dg/open-options-blanks.f b/gcc/testsuite/gfortran.dg/open-options-blanks.f
new file mode 100644
index 00000000000..8f5faa41629
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/open-options-blanks.f
@@ -0,0 +1,7 @@
+! { dg-do run }
+! PR 20163, first half: Trailing blanks on an option to
+! open used to cause an error
+ CHARACTER*8 ST
+ ST = 'SCRATCH '
+ OPEN(UNIT=10,STATUS=ST)
+ END
diff --git a/gcc/testsuite/gfortran.dg/open_new.f90 b/gcc/testsuite/gfortran.dg/open_new.f90
index 9e9c9512776..3b8e95ae944 100644
--- a/gcc/testsuite/gfortran.dg/open_new.f90
+++ b/gcc/testsuite/gfortran.dg/open_new.f90
@@ -1,4 +1,4 @@
-! { dg do-run }
+! { dg-do run }
! PR 18982: verifies that opening an existing file with
! status="new" is an error
program main
diff --git a/gcc/testsuite/gfortran.dg/pr15332.f b/gcc/testsuite/gfortran.dg/pr15332.f
new file mode 100644
index 00000000000..238553533e2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr15332.f
@@ -0,0 +1,12 @@
+! PR libfortran/15332
+! {do-do run}
+ character*12 c
+
+ write (c,100) 0, 1
+ if (c .ne. 'i = 0, j = 1') call abort
+
+ write (c,100) 0
+ if (c .ne. 'i = 0 ') call abort
+
+ 100 format ('i = ',i1,:,', j = ',i1)
+ end
diff --git a/gcc/testsuite/gfortran.dg/pr15754.f90 b/gcc/testsuite/gfortran.dg/pr15754.f90
index 6d8e34f28db..f595d6e2ac6 100644
--- a/gcc/testsuite/gfortran.dg/pr15754.f90
+++ b/gcc/testsuite/gfortran.dg/pr15754.f90
@@ -1,7 +1,7 @@
! we didn't give a warning if the RHS of an assignment was NULL
! { dg-do-compile }
INTEGER, POINTER :: P
-I = NULL() ! { dg-warning "NULL appears" "Assignment non-pointer = NULL" }
-P = NULL() ! { dg-warning "NULL appears" "Assignment pointer = NULL" }
+I = NULL() ! { dg-error "NULL appears" "Assignment non-pointer = NULL" }
+P = NULL() ! { dg-error "NULL appears" "Assignment pointer = NULL" }
P => NULL()
END
diff --git a/gcc/testsuite/gfortran.dg/pr15959.f90 b/gcc/testsuite/gfortran.dg/pr15959.f90
new file mode 100644
index 00000000000..b7f3719dfe4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr15959.f90
@@ -0,0 +1,5 @@
+! { dg-do run }
+! Test initializer of character array. PR15959
+character (*), parameter :: a (1:2) = (/'ab', 'abc'/)
+if (a(2) .ne. 'abc') call abort()
+end
diff --git a/gcc/testsuite/gfortran.dg/pr17229.f b/gcc/testsuite/gfortran.dg/pr17229.f
new file mode 100644
index 00000000000..b1a4471e410
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr17229.f
@@ -0,0 +1,23 @@
+! PR fortran/17229
+! { dg-do run }
+ integer i
+ logical l
+
+ l = .false.
+ i = -1
+ if (l) if (i) 999,999,999
+
+ l = .true.
+ if (l) if (i) 10,999,999
+ go to 999
+
+ 10 i = 0
+ if (l) if (i) 999,20,999
+ go to 999
+
+ 20 i = 1
+ if (l) if (i) 999,999,30
+ go to 999
+
+ 999 call abort
+ 30 end
diff --git a/gcc/testsuite/gfortran.dg/pr17708.f90 b/gcc/testsuite/gfortran.dg/pr17708.f90
index 7485da8bb07..b696b0c2757 100644
--- a/gcc/testsuite/gfortran.dg/pr17708.f90
+++ b/gcc/testsuite/gfortran.dg/pr17708.f90
@@ -2,8 +2,8 @@
program test
j = 0
do 10 i=1,3
- if(i == 2) goto 10 ! { dg-warning "" "" }
+ if(i == 2) goto 10 ! { dg-warning "jumps to END" }
j = j+1
-10 enddo
+10 enddo ! { dg-warning "jumps to END" }
if (j/=2) call abort
end
diff --git a/gcc/testsuite/gfortran.dg/pr18025.f90 b/gcc/testsuite/gfortran.dg/pr18025.f90
new file mode 100644
index 00000000000..26d5c01e023
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr18025.f90
@@ -0,0 +1,8 @@
+! PR libfortran/18025 <coudert@clipper.ens.fr>
+! { dg-do run }
+ character(len=80) :: c
+ write(c, "('#',F0.2,'#')") 1.23
+ if (c /= '#1.23#') call abort
+ write(c, "('#',F0.2,'#')") -1.23
+ if (c /= '#-1.23#') call abort
+ end
diff --git a/gcc/testsuite/gfortran.dg/pr19936_1.f90 b/gcc/testsuite/gfortran.dg/pr19936_1.f90
new file mode 100644
index 00000000000..cd5140f21b1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr19936_1.f90
@@ -0,0 +1,5 @@
+! { dg-do compile }
+program pr19936_1
+ integer, parameter :: i=4
+ print *,(/(i,i=1,4)/) ! { dg-error "Expected VARIABLE" }
+end program pr19936_1
diff --git a/gcc/testsuite/gfortran.dg/pr19936_2.f90 b/gcc/testsuite/gfortran.dg/pr19936_2.f90
new file mode 100644
index 00000000000..ad43c943fec
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr19936_2.f90
@@ -0,0 +1,5 @@
+! { dg-do compile }
+program pr19936_2
+ integer i
+ print *,(/(i,i=1a,4)/) ! { dg-error "Syntax error in iterator" }
+end program pr19936_2
diff --git a/gcc/testsuite/gfortran.dg/pr19936_3.f90 b/gcc/testsuite/gfortran.dg/pr19936_3.f90
new file mode 100644
index 00000000000..6f6f8ba37a9
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr19936_3.f90
@@ -0,0 +1,5 @@
+! { dg-do compile }
+program pr19936_3
+ integer, parameter :: i = 4
+ print *,(/(i,i,4)/) ! { dg-error "Syntax error in COMPLEX" }
+end program pr19936_3
diff --git a/gcc/testsuite/gfortran.dg/pr20086.f90 b/gcc/testsuite/gfortran.dg/pr20086.f90
new file mode 100644
index 00000000000..e5759da3dc1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr20086.f90
@@ -0,0 +1,14 @@
+! { dg-do run }
+! PR 20086 - Missing characters in output with hollerith strings
+ implicit none
+ character*80 line
+ write(line,2070)
+ if (line.ne.' stiffness reformed for this high step')call abort
+ write(line,2090)
+ if (line.ne.' stiffness reformed for hello hello')call abort
+ stop
+
+ 2070 format (2x,37hstiffness reformed for this high step)
+ 2090 format (2x,34hstiffness reformed for hello hello)
+
+ end
diff --git a/gcc/testsuite/gfortran.dg/pr20124.f90 b/gcc/testsuite/gfortran.dg/pr20124.f90
new file mode 100644
index 00000000000..69f4f18b29c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr20124.f90
@@ -0,0 +1,8 @@
+! { dg-do run }
+! pr 20124
+ character*80 line
+ x = -.01
+ y = .01
+ write(line,'(2f10.2)') x, y
+ if (line.ne.' -0.01 0.01') call abort
+ end
diff --git a/gcc/testsuite/gfortran.dg/pr20163-2.f b/gcc/testsuite/gfortran.dg/pr20163-2.f
new file mode 100644
index 00000000000..c0b2573ed93
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr20163-2.f
@@ -0,0 +1,5 @@
+ open(10,status="foo",err=100)
+ call abort
+ 100 continue
+ open(10,status="scratch")
+ end
diff --git a/gcc/testsuite/gfortran.dg/pr20257.f90 b/gcc/testsuite/gfortran.dg/pr20257.f90
new file mode 100644
index 00000000000..3808829b486
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr20257.f90
@@ -0,0 +1,9 @@
+! { dg-do run }
+ integer,parameter :: n = 10000
+ real(8) array(10000)
+
+ array(:) = 0
+ open (10, status='scratch')
+ write (10,*) array
+ close (10)
+end
diff --git a/gcc/testsuite/gfortran.dg/pr20480.f90 b/gcc/testsuite/gfortran.dg/pr20480.f90
new file mode 100644
index 00000000000..12e53009d91
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr20480.f90
@@ -0,0 +1,9 @@
+! { dg-do run }
+! PR libfortran/20480
+! fxcoudert@gcc.gnu.org
+ character(len=80) c
+ write (c,'(ES12.3)') 0.0
+ if (trim(adjustl(c)) .ne. '0.000E+00') call abort ()
+ write (c,'(EN12.3)') 0.0
+ if (trim(adjustl(c)) .ne. '0.000E+00') call abort ()
+ end
diff --git a/gcc/testsuite/gfortran.dg/pr20755.f b/gcc/testsuite/gfortran.dg/pr20755.f
new file mode 100644
index 00000000000..e2bac5a7dcc
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr20755.f
@@ -0,0 +1,10 @@
+! PR libfortran/20755
+! { dg-do run }
+ character*30 s
+
+ write (s,2000) 0.0, 0.02
+ if (s .ne. " 0.00 2.000E-02") call abort
+ write (s,2000) 0.01, 0.02
+ if (s .ne. " 1.000E-02 2.000E-02") call abort
+ 2000 format (1PG12.3,G12.3)
+ end
diff --git a/gcc/testsuite/gfortran.dg/promotion.f90 b/gcc/testsuite/gfortran.dg/promotion.f90
new file mode 100644
index 00000000000..d1b9b686e58
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/promotion.f90
@@ -0,0 +1,12 @@
+! { dg-do run { target i?86-*-* } }
+! { dg-options "-fdefault-integer-8 -fdefault-real-8" }
+program a
+ logical l
+ integer i
+ real x
+ double precision d
+ if (kind(l) /= 8) call abort
+ if (kind(i) /= 8) call abort
+ if (kind(x) /= 8) call abort
+ if (kind(d) /= 8) call abort
+end program a
diff --git a/gcc/testsuite/gfortran.dg/real_index_1.f90 b/gcc/testsuite/gfortran.dg/real_index_1.f90
new file mode 100644
index 00000000000..16ceca82774
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/real_index_1.f90
@@ -0,0 +1,7 @@
+! { dg-do run }
+! PR 16907 : We didn't support REAL array indices as an extension
+ integer I, A(10)
+ A = 2
+ I=A(1.0) ! { dg-warning "Extension" }
+ if (i/=2) call abort ()
+ end
diff --git a/gcc/testsuite/gfortran.dg/select_4.f90 b/gcc/testsuite/gfortran.dg/select_4.f90
index 8fb661f7c22..dbced6e4c66 100644
--- a/gcc/testsuite/gfortran.dg/select_4.f90
+++ b/gcc/testsuite/gfortran.dg/select_4.f90
@@ -4,15 +4,15 @@
program select_5
integer i
select case(i)
- case (20:30)
- case (25:) ! { dg-error "overlaps with CASE" "" }
+ case (20:30) ! { dg-error "overlaps with CASE" }
+ case (25:) ! { dg-error "overlaps with CASE" }
end select
select case(i)
- case (30)
- case (25:) ! { dg-error "overlaps with CASE" "" }
+ case (30) ! { dg-error "overlaps with CASE" }
+ case (25:) ! { dg-error "overlaps with CASE" }
end select
select case(i)
- case (20:30)
- case (25) ! { dg-error "overlaps with CASE" "" }
+ case (20:30) ! { dg-error "overlaps with CASE" }
+ case (25) ! { dg-error "overlaps with CASE" }
end select
end program select_5
diff --git a/gcc/testsuite/gfortran.dg/spec_expr_1.f90 b/gcc/testsuite/gfortran.dg/spec_expr_1.f90
new file mode 100644
index 00000000000..61591c3113c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/spec_expr_1.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! PR 20323
+! We didn't verify that character length expressions are specification
+! expressions.
+function testpresent(arg)
+ integer, intent(in), optional :: arg
+ character(len=arg) :: s ! { dg-error "OPTIONAL" }
+ logical :: testpresent
+
+ testpresent=.true.
+
+end function testpresent
diff --git a/gcc/testsuite/gfortran.dg/stfunc_2.f90 b/gcc/testsuite/gfortran.dg/stfunc_2.f90
new file mode 100644
index 00000000000..75ecb057b05
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/stfunc_2.f90
@@ -0,0 +1,6 @@
+! { dg-do compile }
+! PR 20467 : we didn't check if a statement function had the dummy attribute.
+SUBROUTINE a(b)
+ b(c) = 0 ! { dg-error "Unclassifiable statement" }
+END SUBROUTINE a
+
diff --git a/gcc/testsuite/gfortran.dg/string_pad_trunc.f90 b/gcc/testsuite/gfortran.dg/string_pad_trunc.f90
new file mode 100644
index 00000000000..738a181b962
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/string_pad_trunc.f90
@@ -0,0 +1,20 @@
+! { dg-do run }
+! PR20713. Pad and truncate string.
+
+character(len = 6),parameter:: a = 'hello'
+character(len = 6),parameter:: b = 'hello *'
+character(len = 6),parameter:: c (1:1) = 'hello'
+character(len = 11) line
+
+write (line, '(6A)') a, 'world'
+if (line .ne. 'hello world') call abort
+
+write (line, '(6A)') b, 'world'
+if (line .ne. 'hello world') call abort
+
+write (line, '(6A)') c, 'world'
+if (line .ne. 'hello world') call abort
+
+write (line, '(6A)') c(1), 'world'
+if (line .ne. 'hello world') call abort
+end
diff --git a/gcc/testsuite/gfortran.dg/tiny_1.f90 b/gcc/testsuite/gfortran.dg/tiny_1.f90
new file mode 100644
index 00000000000..e8bfb2d8994
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/tiny_1.f90
@@ -0,0 +1,9 @@
+! { dg-do run }
+! Test program inspired by bug report from Walt Brainerd.
+! http://gcc.gnu.org/ml/fortran/2005-04/msg00132.html
+program tiny1
+ real(4) x4
+ real(8) x8
+ if (minexponent(x4) /= exponent(tiny(x4))) call abort
+ if (minexponent(x8) /= exponent(tiny(x8))) call abort
+end program tiny1
diff --git a/gcc/testsuite/gfortran.dg/tiny_2.f90 b/gcc/testsuite/gfortran.dg/tiny_2.f90
new file mode 100644
index 00000000000..194e6cd3109
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/tiny_2.f90
@@ -0,0 +1,9 @@
+! { dg-do run }
+program tiny2
+ real(4) x4
+ real(8) x8
+ x4 = tiny(x4)
+ x8 = tiny(x8)
+ if (minexponent(x4) /= exponent(x4)) call abort
+ if (minexponent(x8) /= exponent(x8)) call abort
+end program tiny2
diff --git a/gcc/testsuite/gfortran.dg/write_0_pe_format.f90 b/gcc/testsuite/gfortran.dg/write_0_pe_format.f90
new file mode 100644
index 00000000000..3890c32ecc0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/write_0_pe_format.f90
@@ -0,0 +1,9 @@
+! { dg-do run }
+! PR libfortran/20101
+! With format "PE", 0.0 must still have "+00" as exponent
+character(len=10) :: c1, c2
+write(c1,"(1pe9.2)") 0.0
+write(c2,"(1pe9.2)") 1.0
+if (trim(adjustl(c1)) .ne. "0.00E+00") call abort()
+if (trim(adjustl(c2)) .ne. "1.00E+00") call abort()
+end
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90
index 16f5523e353..8781fb2c996 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/backspace.f90
@@ -9,6 +9,6 @@
read(10,*)C
backspace(10)
read(10,*) C
- if (C.ne.'b') call abort
+ if (C.ne.'a') call abort
close(10,STATUS='DELETE')
end
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
new file mode 100644
index 00000000000..ade7f9d0c29
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/character_passing.f90
@@ -0,0 +1,21 @@
+! PR middle-end/20030
+! we were messing up the access in LSAME for
+! the character agruments.
+ program foo
+ character*1 a1, a2, b
+ a1='A'
+ a2='A'
+ b='B'
+ x = LSAME(a1,a2)
+ if ( x.ne.1 ) then
+ call abort ();
+ endif
+ end
+
+ logical function LSAME( CA, CB )
+ character CA, CB
+ integer INTA, INTB
+ INTA = ICHAR( CA )
+ INTB = ICHAR( CB )
+ LSAME = INTA.EQ.INTB
+ end
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/data.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/data.f90
index 81954e222b5..d2d86a2d71c 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/data.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/data.f90
@@ -1,13 +1,13 @@
! Program to test data statement
program data
- call sub1()
- call sub2()
- end
+ call sub1()
+ call sub2()
+ end
subroutine sub1()
integer i
type tmp
integer, dimension(4)::a
- real :: r
+ real :: r
end type
type tmp1
type (tmp) t1(4)
@@ -58,7 +58,7 @@
if (tmp2(2)%b .ne. 0) call abort
end
- subroutine sub2()
+ subroutine sub2()
integer a(4,4), b(10)
integer i,j,k
real r,t
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90
index 148cd394e68..765356d2610 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select.f90
@@ -8,20 +8,20 @@ PROGRAM Test_INTEGER_select
SELECT CASE (I)
CASE (:-1)
- CALL abort
+ CALL abort
CASE (1:)
- CALL abort
+ CALL abort
CASE DEFAULT
- CONTINUE
+ CONTINUE
END SELECT
SELECT CASE (I)
CASE (3,2,1)
- CALL abort
+ CALL abort
CASE (0)
- CONTINUE
+ CONTINUE
CASE DEFAULT
- call abort
+ call abort
END SELECT
! Not aborted by here, so it worked
@@ -31,40 +31,40 @@ PROGRAM Test_INTEGER_select
SELECT CASE (I)
CASE (:-1)
- CALL abort
+ CALL abort
CASE (1:)
- CONTINUE
+ CONTINUE
CASE DEFAULT
- CALL abort
+ CALL abort
END SELECT
SELECT CASE (I)
CASE (3,2,1,:0)
- CALL abort
+ CALL abort
CASE (maxI)
- CONTINUE
+ CONTINUE
CASE DEFAULT
- call abort
+ call abort
END SELECT
I = minI
SELECT CASE (I)
CASE (:-1)
- CONTINUE
+ CONTINUE
CASE (1:)
- CALL abort
+ CALL abort
CASE DEFAULT
- CALL abort
+ CALL abort
END SELECT
SELECT CASE (I)
CASE (3:,2,1,0)
- CALL abort
+ CALL abort
CASE (minI)
- CONTINUE
+ CONTINUE
CASE DEFAULT
- call abort
+ call abort
END SELECT
END
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90
index cd9bb00a98c..18bc79b4358 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/integer_select_1.f90
@@ -1,6 +1,6 @@
INTEGER :: I = 1
SELECT CASE (I)
- CASE (-3:-5) ! Can never be matched
+ CASE (-3:-5) ! Can never be matched
CALL abort
CASE (1)
CONTINUE
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90
index c9fbe782703..3437e9f0c9d 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_mvbits.f90
@@ -1,6 +1,6 @@
! Test the MVBITS intrinsic subroutine
INTEGER*4 :: from, to, result
-integer*8 :: to8
+integer*8 :: from8, to8
DATA from / z'0003FFFC' /
DATA to / z'77760000' /
@@ -9,7 +9,8 @@ DATA result / z'7777FFFE' /
CALL mvbits(from, 2, 16, to, 1)
if (to /= result) CALL abort()
-to8 = 0
-call mvbits (b'1011'_8*2_8**32, 33, 3, to8, 2) ! { dg-warning "" "" }
-if (to8 /= b'10100'_8) call abort ! { dg-warning "" "" }
+to8 = 0_8
+from8 = b'1011'*2_8**32
+call mvbits (from8, 33, 3, to8, 2)
+if (to8 /= b'10100') call abort
end
diff --git a/gcc/testsuite/lib/c-torture.exp b/gcc/testsuite/lib/c-torture.exp
index f7b547a0708..375ff2c9464 100644
--- a/gcc/testsuite/lib/c-torture.exp
+++ b/gcc/testsuite/lib/c-torture.exp
@@ -14,9 +14,6 @@
# along with this program; if not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@gnu.org.
-
# This file was written by Rob Savoye. (rob@cygnus.com)
load_lib file-format.exp
diff --git a/gcc/testsuite/lib/file-format.exp b/gcc/testsuite/lib/file-format.exp
index 7be398eeb3a..a1aa484455c 100644
--- a/gcc/testsuite/lib/file-format.exp
+++ b/gcc/testsuite/lib/file-format.exp
@@ -32,6 +32,13 @@ proc gcc_target_object_format { } {
} elseif { [string match "*-*-darwin*" $target_triplet] } {
# Darwin doesn't necessarily have objdump, so hand-code it.
set gcc_target_object_format_saved mach-o
+ } elseif { [string match "hppa*-*-hpux*" $target_triplet] } {
+ # HP-UX doesn't necessarily have objdump, so hand-code it.
+ if { [string match "hppa*64*-*-hpux*" $target_triplet] } {
+ set gcc_target_object_format_saved elf
+ } else {
+ set gcc_target_object_format_saved som
+ }
} else {
set objdump_name [find_binutils_prog objdump]
set open_file [open objfmtst.c w]
@@ -66,6 +73,9 @@ proc gcc_target_object_format { } {
pe {
set gcc_target_object_format_saved pe
}
+ som {
+ set gcc_target_object_format_saved som
+ }
default {
verbose "Unknown file format: $objformat" 3
set gcc_target_object_format_saved unknown
diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp
index 19c06839fe6..9f79fbb273a 100644
--- a/gcc/testsuite/lib/g++.exp
+++ b/gcc/testsuite/lib/g++.exp
@@ -273,6 +273,11 @@ proc g++_target_compile { source dest type options } {
}
lappend options "additional_flags=[libio_include_flags]"
+ # APPLE LOCAL begin testsuite multiply defined
+ if [ istarget *-*-darwin* ] {
+ lappend options "ldflags=-Wl,-multiply_defined,suppress"
+ }
+ # APPLE LOCAL end testsuite multiply defined
lappend options "compiler=$GXX_UNDER_TEST";
set options [concat $gpp_compile_options $options]
diff --git a/gcc/testsuite/lib/gcc.exp b/gcc/testsuite/lib/gcc.exp
index 2f553387666..e5d3d5d857e 100644
--- a/gcc/testsuite/lib/gcc.exp
+++ b/gcc/testsuite/lib/gcc.exp
@@ -144,6 +144,11 @@ proc gcc_target_compile { source dest type options } {
if [target_info exists gcc,timeout] {
lappend options "timeout=[target_info gcc,timeout]"
}
+ # APPLE LOCAL begin testsuite multiply defined
+ if [ istarget *-*-darwin* ] {
+ lappend options "ldflags=-Wl,-multiply_defined,suppress"
+ }
+ # APPLE LOCAL end testsuite multiply defined
lappend options "compiler=$GCC_UNDER_TEST"
set options [dg-additional-files-options $options $source]
return [target_compile $source $dest $type $options]
diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp
index 2387403030b..247df02bd0c 100644
--- a/gcc/testsuite/lib/gfortran-dg.exp
+++ b/gcc/testsuite/lib/gfortran-dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005 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
@@ -25,11 +25,47 @@ proc gfortran-dg-test { prog do_what extra_tool_flags } {
set comp_output [lindex $result 0]
set output_file [lindex $result 1]
- # Put the error message on the same line as the line number
- # FIXME: Add a colon after line number
- # Remove the line of source code with the error and
- # the number pointing to error
- regsub -all "\n\n\[^\n\]*\n *\[0-9\]*\n" $comp_output ": " comp_output
+ # gfortran error messages look like this:
+ # In file [name]:[line]
+ #
+ # some code
+ # 1
+ # Error: Some error at (1) and (2)
+ # or
+ # In file [name]:[line]
+ #
+ # some code
+ # 1
+ # In file [name]:[line2]
+ #
+ # some other code
+ # 2
+ # Error: Some error at (1) and (2)
+ # or
+ # In file [name]:[line]
+ #
+ # some code and some more code
+ # 1 2
+ # Error: Some error at (1) and (2)
+ #
+ # We collapse these to look like:
+ # [name]:[line]: Error: Some error at (1) and (2)
+ # or
+ # [name]:[line]: Error: Some error at (1) and (2)
+ # [name]:[line2]: Error: Some error at (1) and (2)
+ # We proceed in two steps: first we deal with the form with two
+ # different locus lines, then with the form with only one locus line.
+ #
+ # Note that these regexps only make sense in the combinations used below.
+ # Note also that is imperative that we first deal with the form with
+ # two loci.
+ set locus_regexp " In file (\[^\n\]*)\n\n\[^\n\]*\n\[^\n\]*\n"
+ set diag_regexp "(\[^\n\]*)\n"
+
+ set two_loci "$locus_regexp$locus_regexp$diag_regexp"
+ set single_locus "$locus_regexp$diag_regexp"
+ regsub -all $two_loci $comp_output "\\1: \\3\n\\2: \\3\n" comp_output
+ regsub -all $single_locus $comp_output "\\1: \\2\n" comp_output
return [list $comp_output $output_file]
}
diff --git a/gcc/testsuite/lib/obj-c++-dg.exp b/gcc/testsuite/lib/obj-c++-dg.exp
new file mode 100644
index 00000000000..2002230bc1a
--- /dev/null
+++ b/gcc/testsuite/lib/obj-c++-dg.exp
@@ -0,0 +1,29 @@
+# APPLE LOCAL file mainline
+# Copyright (C) 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 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.
+
+# Define obj-c++ callbacks for dg.exp.
+
+load_lib gcc-dg.exp
+
+proc obj-c++-dg-test { prog do_what extra_tool_flags } {
+ return [gcc-dg-test-1 obj-c++_target_compile $prog $do_what $extra_tool_flags]
+}
+
+
+proc obj-c++-dg-prune { system text } {
+ return [gcc-dg-prune $system $text]
+}
diff --git a/gcc/testsuite/lib/obj-c++.exp b/gcc/testsuite/lib/obj-c++.exp
new file mode 100644
index 00000000000..bcebfbcfeca
--- /dev/null
+++ b/gcc/testsuite/lib/obj-c++.exp
@@ -0,0 +1,366 @@
+# APPLE LOCAL file mainline
+# Copyright (C) 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 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This file was written by Rob Savoye (rob@cygnus.com)
+# Many modifications by Jeffrey Wheat (cassidy@cygnus.com)
+# With modifications by Mike Stump <mrs@cygnus.com>.
+
+#
+# obj-c++ support library routines
+#
+load_lib prune.exp
+load_lib gcc-defs.exp
+
+#
+# OBJCXX_UNDER_TEST is the compiler under test.
+#
+
+
+set gpp_compile_options ""
+
+#
+# obj-c++_version -- extract and print the version number of the compiler
+#
+
+proc obj-c++_version { } {
+ global OBJCXX_UNDER_TEST
+
+ obj-c++_init
+
+ # ignore any arguments after the command
+ set compiler [lindex $OBJCXX_UNDER_TEST 0]
+
+ # verify that the compiler exists
+ if { [is_remote host] || [which $compiler] != 0 } then {
+ set tmp [remote_exec host "$compiler -v"]
+ set status [lindex $tmp 0];
+ set output [lindex $tmp 1];
+ regexp " version \[^\n\r\]*" $output version
+ if { $status == 0 && [info exists version] } then {
+ if [is_remote host] {
+ clone_output "$compiler $version\n"
+ } else {
+ clone_output "[which $compiler] $version\n"
+ }
+ } else {
+ clone_output "Couldn't determine version of [which $compiler]\n"
+ }
+ } else {
+ # compiler does not exist (this should have already been detected)
+ warning "$compiler does not exist"
+ }
+}
+
+#
+# obj-c++_include_flags -- provide new version of obj-c++_include_flags
+# (originally from libgloss.exp) which knows about the gcc tree structure
+#
+proc obj-c++_include_flags { paths } {
+ global srcdir
+ global HAVE_LIBSTDCXX_V3
+ global TESTING_IN_BUILD_TREE
+
+ set flags ""
+
+ if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
+ return "${flags}"
+ }
+
+ set gccpath ${paths}
+
+ set odir [lookfor_file ${gccpath} libstdc++-v3]
+ if { ${odir} != "" } {
+ append flags [exec sh ${odir}/scripts/testsuite_flags --build-includes]
+ }
+
+ return "$flags"
+}
+
+#
+# obj-c++_link_flags -- provide new version of obj-c++_link_flags
+# (originally from libgloss.exp) which knows about the gcc tree structure
+#
+
+proc obj-c++_link_flags { paths } {
+ global rootme
+ global srcdir
+ global ld_library_path
+ global OBJCXX_UNDER_TEST
+
+ set gccpath ${paths}
+ set libio_dir ""
+ set flags ""
+ set ld_library_path "."
+
+ if { $gccpath != "" } {
+ if [file exists "${gccpath}/lib/libstdc++.a"] {
+ append ld_library_path ":${gccpath}/lib"
+ }
+ if [file exists "${gccpath}/libg++/libg++.a"] {
+ append flags "-L${gccpath}/libg++ "
+ append ld_library_path ":${gccpath}/libg++"
+ }
+ if [file exists "${gccpath}/libstdc++/libstdc++.a"] {
+ append flags "-L${gccpath}/libstdc++ "
+ append ld_library_path ":${gccpath}/libstdc++"
+ }
+ if [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"] {
+ append flags " -L${gccpath}/libstdc++-v3/src/.libs "
+ append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
+ }
+ if [file exists "${gccpath}/libiberty/libiberty.a"] {
+ append flags "-L${gccpath}/libiberty "
+ }
+ if [file exists "${gccpath}/librx/librx.a"] {
+ append flags "-L${gccpath}/librx "
+ }
+ append ld_library_path ":${rootme}"
+ set compiler [lindex $OBJCXX_UNDER_TEST 0]
+ if { [is_remote host] == 0 && [which $compiler] != 0 } {
+ foreach i "[exec $compiler --print-multi-lib]" {
+ set mldir ""
+ regexp -- "\[a-z0-9=/\.-\]*;" $i mldir
+ set mldir [string trimright $mldir "\;@"]
+ if { "$mldir" == "." } {
+ continue
+ }
+ if { [llength [glob -nocomplain ${rootme}/${mldir}/libgcc_s*.so.*]] == 1 } {
+ append ld_library_path ":${rootme}/${mldir}"
+ }
+ }
+ }
+ } else {
+ global tool_root_dir;
+
+ set libgpp [lookfor_file ${tool_root_dir} libg++];
+ if { $libgpp != "" } {
+ append flags "-L${libgpp} ";
+ append ld_library_path ":${libgpp}"
+ }
+ set libstdcpp [lookfor_file ${tool_root_dir} libstdc++];
+ if { $libstdcpp != "" } {
+ append flags "-L${libstdcpp} ";
+ append ld_library_path ":${libstdcpp}"
+ }
+ set libiberty [lookfor_file ${tool_root_dir} libiberty];
+ if { $libiberty != "" } {
+ append flags "-L${libiberty} ";
+ }
+ set librx [lookfor_file ${tool_root_dir} librx];
+ if { $librx != "" } {
+ append flags "-L${librx} ";
+ }
+ }
+
+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
+ # (for the 64-bit ABI). The right way to do this would be to modify
+ # unix.exp -- but that's not an option since it's part of DejaGNU
+ # proper, so we do it here.
+ # The same applies to Darwin (DYLD_LIBRARY_PATH), Solaris 32 bit
+ # (LD_LIBRARY_PATH_32), Solaris 64 bit (LD_LIBRARY_PATH_64), and HP-UX
+ # (SHLIB_PATH).
+ # Doing this does cause trouble when testing cross-compilers.
+ if {![is_remote target]} {
+ global env;
+ if [info exists env(LD_LIBRARY_PATH)] {
+ # If we've already added these directories once, keep the
+ # existing path.
+ if {$ld_library_path == $env(LD_LIBRARY_PATH)
+ || [string first $ld_library_path: \
+ $env(LD_LIBRARY_PATH)] == 0} {
+ set ld_library_path $env(LD_LIBRARY_PATH)
+ } elseif { $env(LD_LIBRARY_PATH) != "" } {
+ append ld_library_path ":$env(LD_LIBRARY_PATH)"
+ }
+ }
+ 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_32 $ld_library_path
+ setenv LD_LIBRARY_PATH_64 $ld_library_path
+ setenv DYLD_LIBRARY_PATH $ld_library_path
+ }
+
+ return "$flags"
+}
+
+#
+# obj-c++_init -- called at the start of each subdir of tests
+#
+
+proc obj-c++_init { args } {
+ global subdir
+ global gpp_initialized
+ global base_dir
+ global tmpdir
+ global libdir
+ global gluefile wrap_flags;
+ global objdir srcdir
+ global ALWAYS_OBJCXXFLAGS
+ global TOOL_EXECUTABLE TOOL_OPTIONS
+ global OBJCXX_UNDER_TEST
+ global TESTING_IN_BUILD_TREE
+ global target_triplet
+
+ if ![info exists OBJCXX_UNDER_TEST] then {
+ if [info exists TOOL_EXECUTABLE] {
+ set OBJCXX_UNDER_TEST $TOOL_EXECUTABLE;
+ } else {
+ if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
+ set OBJCXX_UNDER_TEST [transform c++]
+ } else {
+ set OBJCXX_UNDER_TEST [findfile $base_dir/../g++ "$base_dir/../g++ -B$base_dir/../" [findfile $base_dir/g++ "$base_dir/g++ -B$base_dir/" [transform c++]]]
+ }
+ }
+ }
+
+ # Bleah, nasty. Bad taste.
+ if [ishost "*-dos-*" ] {
+ regsub "c\\+\\+" "$OBJCXX_UNDER_TEST" "gcc" OBJCXX_UNDER_TEST
+ }
+
+ if ![is_remote host] {
+ if { [which $OBJCXX_UNDER_TEST] == 0 } then {
+ perror "OBJCXX_UNDER_TEST ($OBJCXX_UNDER_TEST) does not exist"
+ exit 1
+ }
+ }
+ if ![info exists tmpdir] {
+ set tmpdir "/tmp"
+ }
+
+ if [info exists gluefile] {
+ unset gluefile
+ }
+
+ obj-c++_maybe_build_wrapper "${tmpdir}/obj-c++-testglue.o"
+
+ set ALWAYS_OBJCXXFLAGS ""
+
+ if ![is_remote host] {
+ if [info exists TOOL_OPTIONS] {
+ lappend ALWAYS_OBJCXXFLAGS "additional_flags=[obj-c++_include_flags [get_multilibs ${TOOL_OPTIONS}] ]";
+ lappend ALWAYS_OBJCXXFLAGS "ldflags=[obj-c++_link_flags [get_multilibs ${TOOL_OPTIONS}] ]";
+ } else {
+ lappend ALWAYS_OBJCXXFLAGS "additional_flags=[obj-c++_include_flags [get_multilibs] ]";
+ lappend ALWAYS_OBJCXXFLAGS "ldflags=[obj-c++_link_flags [get_multilibs] ]";
+ }
+ }
+
+ if [info exists TOOL_OPTIONS] {
+ lappend ALWAYS_OBJCXXFLAGS "additional_flags=$TOOL_OPTIONS";
+ }
+
+ # Make sure that lines are not wrapped. That can confuse the
+ # error-message parsing machinery.
+ lappend ALWAYS_OBJCXXFLAGS "additional_flags=-fmessage-length=0"
+
+ if { [string match "powerpc-*-darwin*" $target_triplet] } {
+ lappend ALWAYS_OBJCXXFLAGS "ldflags=-multiply_defined suppress"
+ }
+
+ verbose -log "ALWAYS_OBJCXXFLAGS set to $ALWAYS_OBJCXXFLAGS"
+
+ verbose "obj-c++ is initialized" 3
+}
+
+#
+# obj-c++_target_compile -- compile a source file
+#
+
+proc obj-c++_target_compile { source dest type options } {
+ global tmpdir;
+ global gpp_compile_options
+ global gluefile wrap_flags
+ global ALWAYS_OBJCXXFLAGS;
+ global OBJCXX_UNDER_TEST;
+
+ lappend options "libs=-lobjc"
+
+ if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
+ lappend options "libs=${gluefile}"
+ lappend options "ldflags=${wrap_flags}"
+ }
+
+ # If we have built libobjc along with the compiler (which usually
+ # _is not_ the case on Mac OS X systems), point the test harness
+ # at it (and associated headers).
+
+ set objcpath "[get_multilibs]"
+
+ set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
+ if { $libobjc_dir == ""} {
+ verbose "see if we have -fgnu-runtime in [target_info name]"
+ if [regexp ".*-fgnu-runtime.*" [target_info name]] {
+ set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
+ }
+ }
+ if { $libobjc_dir != "" } {
+ set objc_include_dir "${srcdir}/../../libobjc"
+ lappend options "additional_flags=-I${objc_include_dir}"
+ set libobjc_dir [file dirname ${libobjc_dir}]
+ set objc_link_flags "-L${libobjc_dir}"
+ lappend options "additional_flags=${objc_link_flags}"
+ append ld_library_path ":${libobjc_dir}"
+ }
+
+ lappend options "additional_flags=[libio_include_flags]"
+ lappend options "compiler=$OBJCXX_UNDER_TEST";
+
+ set options [concat $gpp_compile_options $options]
+
+ set options [concat "$ALWAYS_OBJCXXFLAGS" $options];
+
+ if { [regexp "(^| )-frepo( |$)" $options] && \
+ [regexp "\.o(|bj)$" $dest] } then {
+ regsub "\.o(|bj)$" $dest ".rpo" rponame
+ exec rm -f $rponame
+ }
+
+ set options [dg-additional-files-options $options $source]
+
+ set result [target_compile $source $dest $type $options]
+
+ return $result
+}
+
+#
+# ${tool}_option_help
+#
+
+proc ${tool}_option_help { } {
+ send_user " --additional_options,OPTIONS\t\tUse OPTIONS to compile the testcase files. OPTIONS should be comma-separated.\n"
+}
+
+#
+# ${tool}_option_proc
+#
+
+proc ${tool}_option_proc { option } {
+ if [regexp "^--additional_options," $option] {
+ global gpp_compile_options
+ regsub "--additional_options," $option "" option
+ foreach x [split $option ","] {
+ lappend gpp_compile_options "additional_flags=$x"
+ }
+ return 1;
+ } else {
+ return 0
+ }
+}
diff --git a/gcc/testsuite/lib/objc-torture.exp b/gcc/testsuite/lib/objc-torture.exp
index ec05da91d0d..73cbc6a30a0 100644
--- a/gcc/testsuite/lib/objc-torture.exp
+++ b/gcc/testsuite/lib/objc-torture.exp
@@ -14,9 +14,6 @@
# along with this program; if not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@gnu.org.
-
# This file was written by Rob Savoye. (rob@cygnus.com)
load_lib file-format.exp
diff --git a/gcc/testsuite/lib/scantree.exp b/gcc/testsuite/lib/scantree.exp
index 76d1a59fb60..085faa92f57 100644
--- a/gcc/testsuite/lib/scantree.exp
+++ b/gcc/testsuite/lib/scantree.exp
@@ -19,6 +19,54 @@
#
# This is largely borrowed from scanasm.exp.
+# APPLE LOCAL begin lno
+# Utility for diffing compiler result against an expected output file.
+# Invoked via dg-final. Call pass if there are no differences between
+# the output of the compiler and the expected output file, otherwise
+# fail. The expected output file has the same name as the output
+# file, and is stored in the same directory as the testcase.
+#
+# Argument 0 is the suffix for the tree dump file
+# Argument 1 handles expected failures and the like
+proc diff-tree-dumps { args } {
+ if { [llength $args] < 1 } {
+ error "diff-tree-dumps: too few arguments"
+ return
+ }
+ if { [llength $args] > 2 } {
+ error "diff-tree-dumps:: too many arguments"
+ return
+ }
+ if { [llength $args] >= 2 } {
+ switch [dg-process-target [lindex $args 1]] {
+ "S" { }
+ "N" { return }
+ "F" { setup_xfail "*-*-*" }
+ "P" { }
+ }
+ }
+
+ # This assumes that we are two frames down from dg-test, and that
+ # it still stores the filename of the testcase in a local variable "name".
+ # A cleaner solution would require a new dejagnu release.
+ upvar 2 prog testcase
+
+ # This must match the rule in gcc-dg.exp.
+ # APPLE LOCAL <rdar://problem/3837835> Selective inlining of functions that use Altivec
+ set new_file "[glob [file tail $testcase].\[ti\]??.[lindex $args 0]]"
+ set reference_file "[glob $testcase.[lindex $args 0]]"
+
+ set test_result [diff $reference_file $new_file]
+
+ if { $test_result == 1 } {
+ pass "$testcase diff-tree-dumps [lindex $args 0]"
+ } else {
+ fail "$testcase diff-tree-dumps [lindex $args 0]"
+ local_exec (diff $reference_file $new_file 0);
+ }
+}
+# APPLE LOCAL end lno
+
# Utility for scanning compiler result, invoked via dg-final.
# Call pass if pattern is present, otherwise fail.
#
@@ -49,7 +97,8 @@ proc scan-tree-dump { args } {
upvar 2 name testcase
# This must match the rule in gcc-dg.exp.
- set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
+ # APPLE LOCAL <rdar://problem/3837835> Selective inlining of functions that use Altivec
+ set output_file "[glob [file tail $testcase].\[ti\]??.[lindex $args 1]]"
set fd [open $output_file r]
set text [read $fd]
@@ -91,7 +140,8 @@ proc scan-tree-dump-times { args } {
upvar 2 name testcase
# This must match the rule in gcc-dg.exp.
- set output_file "[glob [file tail $testcase].t??.[lindex $args 2]]"
+ # APPLE LOCAL <rdar://problem/3837835> Selective inlining of functions that use Altivec
+ set output_file "[glob [file tail $testcase].\[ti\]??.[lindex $args 2]]"
set fd [open $output_file r]
set text [read $fd]
@@ -128,7 +178,8 @@ proc scan-tree-dump-not { args } {
}
upvar 2 name testcase
- set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
+ # APPLE LOCAL <rdar://problem/3837835> Selective inlining of functions that use Altivec
+ set output_file "[glob [file tail $testcase].\[ti\]??.[lindex $args 1]]"
set fd [open $output_file r]
set text [read $fd]
@@ -179,7 +230,8 @@ proc scan-tree-dump-dem { args } {
}
upvar 2 name testcase
- set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
+ # APPLE LOCAL <rdar://problem/3837835> Selective inlining of functions that use Altivec
+ set output_file "[glob [file tail $testcase].\[ti\]??.[lindex $args 1]]"
set fd [open "| $cxxfilt < $output_file" r]
set text [read $fd]
@@ -229,7 +281,8 @@ proc scan-tree-dump-dem-not { args } {
}
upvar 2 name testcase
- set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
+ # APPLE LOCAL <rdar://problem/3837835> Selective inlining of functions that use Altivec
+ set output_file "[glob [file tail $testcase].\[ti\]??.[lindex $args 1]]"
set fd [open "| $cxxfilt < $output_file" r]
set text [read $fd]
diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp
index e3ad1d540fa..1f2242fdc5d 100644
--- a/gcc/testsuite/lib/target-supports-dg.exp
+++ b/gcc/testsuite/lib/target-supports-dg.exp
@@ -32,7 +32,7 @@ proc dg-require-weak { args } {
# test.
proc dg-require-visibility { args } {
- set visibility_available [ check_visibility_available ]
+ set visibility_available [ check_visibility_available [lindex $args 1 ] ]
if { $visibility_available == -1 } {
upvar name name
unresolved "$name"
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index f2577c18106..f78b89b935f 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -87,6 +87,12 @@ proc check_weak_available { } {
return 1
}
+ # HP-UX 10.X doesn't support it
+
+ if { [regexp "hppa.*hpux10" $target_triplet] } {
+ return 0
+ }
+
# ELF and ECOFF support it. a.out does with gas/gld but may also with
# other linkers, so we should try it
@@ -97,19 +103,22 @@ proc check_weak_available { } {
ecoff { return 1 }
a.out { return 1 }
mach-o { return 1 }
+ som { return 1 }
unknown { return -1 }
default { return 0 }
}
}
+# APPLE LOCAL begin mainline 4.0 2005-03-25
###############################
-# proc check_visibility_available { }
+# proc check_visibility_available { what_kind }
###############################
# The visibility attribute is only support in some object formats
# This proc returns 1 if it is supported, 0 if not.
+# The argument is the kind of visibility, default/protected/hidden/internal.
-proc check_visibility_available { } {
+proc check_visibility_available { what_kind } {
global visibility_available_saved
global tool
global target_triplet
@@ -119,19 +128,31 @@ proc check_visibility_available { } {
return 0
}
- if {![info exists visibility_available_saved] } {
- set lines [get_compiler_messages visibility object {
- void f() __attribute__((visibility("hidden")));
- void f() {}
- }]
- if [string match "" $lines] then {
- set visibility_available_saved 1
- } else {
- set visibility_available_saved 0
+ if [string match "" $what_kind] { set what_kind "hidden" }
+
+ if { [info exists visibility_available_saved] } {
+ verbose "Saved result is <$visibility_available_saved>" 1
+ if { [ lsearch -exact $visibility_available_saved $what_kind ] != -1 } {
+ return 1
+ } elseif { [ lsearch -exact $visibility_available_saved "!$what_kind" ] != -1 } {
+ return 0
}
}
- return $visibility_available_saved
+
+ set lines [get_compiler_messages visibility object "
+ void f() __attribute__((visibility(\"$what_kind\")));
+ void f() {}
+ "]
+ if [string match "" $lines] then {
+ set answer 1
+ lappend visibility_available_saved $what_kind
+ } else {
+ set answer 0
+ lappend visibility_available_saved "!$what_kind"
+ }
+ return $answer
}
+# APPLE LOCAL end mainline 4.0 2005-03-25
###############################
# proc check_alias_available { }
@@ -609,6 +630,22 @@ proc check_effective_target_vect_int { } {
return $et_vect_int_saved
}
+# APPLE LOCAL begin mainline 2005-04-05 3972515
+# Return 1 if the target supports hardware vector shift operation.
+
+proc check_effective_target_vect_shift { } {
+ if { [istarget powerpc*-*-*] } {
+ set answer 1
+ } else {
+ set answer 0
+ }
+
+ verbose "check_effective_target_vect_shift: returning $answer" 2
+ return $answer
+}
+
+# APPLE LOCAL end mainline 2005-04-05 3972515
+
# Return 1 if the target supports hardware vectors of long, 0 otherwise.
#
# This can change for different subtargets so do not cache the result.
@@ -734,6 +771,26 @@ proc check_effective_target_vect_no_align { } {
return $et_vect_no_align_saved
}
+# APPLE LOCAL begin 3972875 mainline 2005-04-18
+# Return 1 if the target supports vector int multiplication, 0 otherwise.
+
+proc check_effective_target_vect_int_mult { } {
+ global et_vect_int_mult_saved
+
+ if [info exists et_vect_int_mult] {
+ verbose "check_effective_target_vect_int_mult: using cached result" 2
+ } else {
+ set et_vect_int_mult_saved 0
+ if { [istarget powerpc*-*-*] } {
+ set et_vect_int_mult_saved 1
+ }
+ }
+
+ verbose "check_effective_target_vect_int_mult: returning $et_vect_int_mult_saved" 2
+ return $et_vect_int_mult_saved
+}
+# APPLE LOCAL end 3972875 mainline 2005-04-18
+
# Return 1 if the target matches the effective target 'arg', 0 otherwise.
# This can be used with any check_* proc that takes no argument and
# returns only 1 or 0. It could be used with check_* procs that take
diff --git a/gcc/testsuite/obj-c++.dg/basic.mm b/gcc/testsuite/obj-c++.dg/basic.mm
new file mode 100644
index 00000000000..fc0b63ad2e3
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/basic.mm
@@ -0,0 +1,22 @@
+// APPLE LOCAL file mainline
+// A basic sanity check for Objective-C++.
+// { dg-do run }
+
+#include <objc/Object.h>
+#include <iostream>
+
+@interface Greeter : Object
+- (void) greet: (const char *)msg;
+@end
+
+@implementation Greeter
+- (void) greet: (const char *)msg { std::cout << msg; }
+@end
+
+int
+main ()
+{
+ std::cout << "Hello from C++\n";
+ Greeter *obj = [Greeter new];
+ [obj greet: "Hello from Objective-C\n"];
+}
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-1.mm b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
new file mode 100644
index 00000000000..a5066dc4561
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/bitfield-1.mm
@@ -0,0 +1,114 @@
+/* APPLE LOCAL file mainline */
+/* Check if ObjC class layout follows the ABI (informally)
+ set in the past. ObjC structs must be laid out as if
+ all ivars, including those inherited from superclasses,
+ were defined at once (i.e., any padding introduced for
+ superclasses should be removed). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-Wpadded -Wabi" } */
+/* { dg-do run } */
+
+#include <objc/objc.h>
+#include <objc/Object.h>
+#include <stdlib.h>
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+enum Enum { zero, one, two, three, four };
+
+@interface Base: Object {
+@public
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+} /* { dg-warning "padding struct size to alignment boundary" } */
+@end
+
+struct Base_0 { /* { dg-warning "padding struct size to alignment boundary" } */
+ Class isa;
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+};
+
+@interface Derived: Base {
+@public
+ signed e: 5;
+ unsigned f: 4;
+ enum Enum g: 3;
+}
+@end
+
+struct Derived_0 {
+ Class isa;
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+ signed e: 5;
+ int f: 4;
+ enum Enum g: 3;
+};
+
+@interface Leaf: Derived {
+@public
+ signed h: 2;
+}
+@end
+
+struct Leaf_0 {
+ Class isa;
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+ signed e: 5;
+ unsigned f: 4;
+ enum Enum g: 3;
+ signed h: 2;
+};
+
+/* Note that the semicolon after @defs(...) is optional. */
+
+typedef struct { @defs(Base) } Base_t; /* { dg-warning "padding struct size to alignment boundary" } */
+typedef struct { @defs(Derived); } Derived_t;
+typedef struct { @defs(Leaf); } Leaf_t;
+
+int main(void)
+{
+ struct Leaf_0 l_0;
+ Leaf *l = (Leaf *)&l_0;
+ Leaf_t *l_t = (Leaf_t *)&l_0;
+
+ CHECK_IF(sizeof(Base_t) == sizeof(Base));
+ CHECK_IF(sizeof(Derived_t) == sizeof(Derived));
+ CHECK_IF(sizeof(Leaf_t) == sizeof(Leaf));
+
+ CHECK_IF(sizeof(struct Base_0) == sizeof(Base));
+ CHECK_IF(sizeof(struct Derived_0) == sizeof(Derived));
+ CHECK_IF(sizeof(struct Leaf_0) == sizeof(Leaf));
+
+ l_0.isa = (Class)0;
+ l_0.a = 3;
+ l_0.b = 0;
+ l_0.c = three;
+ l_0.d = 31;
+ l_0.e = 0;
+ l_0.f = 15;
+ l_0.g = zero;
+ l_0.h = -2;
+
+ CHECK_IF(!l_t->isa);
+ CHECK_IF(l->a == 3 && l_t->a == 3);
+ CHECK_IF(!l->b && !l_t->b);
+ CHECK_IF(l->c == three && l_t->c == three);
+ CHECK_IF(l->d == 31 && l_t->d == 31);
+ CHECK_IF(!l->e && !l_t->e);
+ CHECK_IF(l->f == 15 && l_t->f == 15);
+ CHECK_IF(l->g == zero && l_t->g == zero);
+ CHECK_IF(l->h == -2 && l_t->h == -2);
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-2.mm b/gcc/testsuite/obj-c++.dg/bitfield-2.mm
new file mode 100644
index 00000000000..38cb19b543b
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/bitfield-2.mm
@@ -0,0 +1,79 @@
+/* APPLE LOCAL file mainline */
+/* Check if bitfield ivars are inherited correctly (i.e., without
+ being "promoted" to ints). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+#define CHECK_IF(expr) if(!(expr)) abort();
+
+@interface Base: Object
+{
+ int full;
+ int full2: 32;
+ int _refs: 8;
+ int field2: 3;
+ unsigned f3: 8;
+ short cc;
+ unsigned g: 16;
+ int r2: 8;
+ int r3: 8;
+ int r4: 2;
+ int r5: 8;
+ char c;
+}
+- (void)setValues;
+@end
+
+@interface Derived: Base
+{
+ char d;
+ int _field3: 6;
+}
+- (void)checkValues;
+@end
+
+@implementation Base
+-(void)setValues {
+ full = 1;
+ full2 = 2;
+ _refs = 3;
+ field2 = 1;
+ f3 = 6;
+ cc = 7;
+ g = 8;
+ r2 = 9;
+ r3 = 10;
+ r4 = 1;
+ r5 = 12;
+ c = 13;
+}
+@end
+
+@implementation Derived
+-(void)checkValues {
+ CHECK_IF(full == 1);
+ CHECK_IF(full2 == 2);
+ CHECK_IF(_refs == 3);
+ CHECK_IF(field2 == 1);
+ CHECK_IF(f3 == 6);
+ CHECK_IF(cc == 7);
+ CHECK_IF(g == 8);
+ CHECK_IF(r2 == 9);
+ CHECK_IF(r3 == 10);
+ CHECK_IF(r4 == 1);
+ CHECK_IF(r5 == 12);
+ CHECK_IF(c == 13);
+}
+@end
+
+int main(void) {
+ Derived *obj = [[Derived alloc] init];
+
+ [obj setValues];
+ [obj checkValues];
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-3.mm b/gcc/testsuite/obj-c++.dg/bitfield-3.mm
new file mode 100644
index 00000000000..8e5a5d4fabf
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/bitfield-3.mm
@@ -0,0 +1,58 @@
+/* APPLE LOCAL file mainline */
+/* Check if bitfield ivars are correctly @encode'd when
+ the NeXT runtime is used. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-fnext-runtime -fsigned-char" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+typedef struct objc_object { struct objc_class *class_pointer; } *id;
+
+extern "C" {
+ extern void abort(void);
+ extern int strcmp(const char *, const char *);
+}
+
+#define CHECK_IF(expr) if(!(expr)) abort();
+
+@interface Base
+{
+ struct objc_class *isa;
+ int full;
+ int full2: 32;
+ int _refs: 8;
+ int field2: 3;
+ unsigned f3: 8;
+ short cc;
+ unsigned g: 16;
+ int r2: 8;
+ int r3: 8;
+ int r4: 2;
+ int r5: 8;
+ char c;
+}
+@end
+
+@interface Derived: Base
+{
+ char d;
+ int _field3: 6;
+}
+@end
+
+@implementation Base
+@end
+
+@implementation Derived
+@end
+
+int main(void) {
+ const char *s1r = "{Base=#ib32b8b3b8sb16b8b8b2b8c}";
+ const char *s1 = @encode(Base);
+ const char *s2r = "{Derived=#ib32b8b3b8sb16b8b8b2b8ccb6}";
+ const char *s2 = @encode(Derived);
+
+ CHECK_IF(!strcmp(s1r, s1));
+ CHECK_IF(!strcmp(s2r, s2));
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-4.mm b/gcc/testsuite/obj-c++.dg/bitfield-4.mm
new file mode 100644
index 00000000000..0a5ecbfc947
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/bitfield-4.mm
@@ -0,0 +1,52 @@
+/* APPLE LOCAL file mainline */
+/* Check if the @defs() construct preserves the correct
+ layout of bitfields. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-lobjc -Wpadded" } */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+
+extern "C" {
+ extern void abort(void);
+ extern int strcmp(const char *str1, const char *str2);
+}
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+enum Enum { one, two, three, four };
+
+@interface Base: Object {
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+} /* { dg-warning "padding struct size to alignment boundary" } */
+@end
+
+@interface Derived: Base {
+ signed e: 5;
+ int f: 4;
+ enum Enum g: 3;
+}
+@end
+
+/* Note that the semicolon after @defs(...) is optional. */
+
+typedef struct { @defs(Base) } Base_t; /* { dg-warning "padding struct size to alignment boundary" } */
+typedef struct { @defs(Derived); } Derived_t;
+
+int main(void)
+{
+ CHECK_IF(sizeof(Base_t) == sizeof(Base));
+ CHECK_IF(sizeof(Derived_t) == sizeof(Derived));
+
+#ifdef __NEXT_RUNTIME__
+ CHECK_IF(!strcmp(@encode(Base), "{Base=#b2b3b4b5}"));
+ CHECK_IF(!strcmp(@encode(Derived), "{Derived=#b2b3b4b5b5b4b3}"));
+
+ CHECK_IF(!strcmp(@encode(Base_t), "{?=#b2b3b4b5}"));
+ CHECK_IF(!strcmp(@encode(Derived_t), "{?=#b2b3b4b5b5b4b3}"));
+#endif /* __NEXT_RUNTIME__ */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/bitfield-5.mm b/gcc/testsuite/obj-c++.dg/bitfield-5.mm
new file mode 100644
index 00000000000..772f92128e0
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/bitfield-5.mm
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file mainline */
+/* Make sure that bitfield types are printed correctly, and that ivar redeclaration
+ (@interface vs. @implementation) checks take the bitfield width into account. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+@interface Base {
+ int i;
+}
+@end
+
+@interface WithBitfields: Base {
+ void *isa;
+ unsigned a: 3;
+ signed b: 4;
+ int c: 5;
+}
+@end
+
+@implementation WithBitfields {
+ char *isa; /* { dg-error "conflicting instance variable type .char \\*isa." } */
+ /* { dg-error "previous declaration of .void \\*isa." "" { target *-*-* } 13 } */
+ unsigned a: 5; /* { dg-error "conflicting instance variable type .unsigned( int)? a: 5." } */
+ /* { dg-error "previous declaration of .unsigned( int)? a: 3." "" { target *-*-* } 14 } */
+ signed b: 4; /* This one is fine. */
+ int c: 3; /* { dg-error "conflicting instance variable type .int c: 3." } */
+ /* { dg-error "previous declaration of .int c: 5." "" { target *-*-* } 16 } */
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/class-protocol-1.mm b/gcc/testsuite/obj-c++.dg/class-protocol-1.mm
new file mode 100644
index 00000000000..c219c89cea3
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/class-protocol-1.mm
@@ -0,0 +1,442 @@
+/* APPLE LOCAL file mainline */
+/* Check Class <protocol> types */
+/* Author: David Ayers <d.ayers@inode.at> */
+/* { dg-do compile } */
+
+#include <objc/objc.h>
+#include <objc/objc-api.h>
+
+@protocol MyProto1
++(void)doItClass1;
+-(void)doItInstance1;
+@end
+
+@protocol MyProto2
++(void)doItClass2;
+-(void)doItInstance2;
+@end
+
+@interface MyClass1 <MyProto1>
+{
+ Class isa;
+}
+@end
+@implementation MyClass1
++(void)doItClass1{}
+-(void)doItInstance1{}
+@end
+
+@interface MyClass2 : MyClass1 <MyProto2>
+@end
+@implementation MyClass2
++(void)doItClass2{}
+-(void)doItInstance2{}
+@end
+
+@interface MyClass3
+{
+ Class isa;
+}
+@end
+@interface MyClass4 : MyClass3 <MyProto1>
+@end
+
+/*----------------------------------------*/
+
+Class cls = 0;
+Class <MyProto1> clsP1 = 0;
+Class <MyProto2> clsP2 = 0;
+
+void
+testSimple(void)
+{
+ [cls doItClass1];
+ [cls doItInstance1];
+ [cls doItClass2];
+ [cls doItInstance2];
+
+ [clsP1 doItClass1];
+ [clsP1 doItInstance1]; /* { dg-warning "instead of" } */
+ [clsP1 doItClass2]; /* { dg-warning "not found in protocol" } */
+ [clsP1 doItInstance2]; /* { dg-warning "not found in protocol" } */
+
+ [clsP2 doItClass1]; /* { dg-warning "not found in protocol" } */
+ [clsP2 doItInstance1]; /* { dg-warning "not found in protocol" } */
+ [clsP2 doItClass2];
+ [clsP2 doItInstance2]; /* { dg-warning "instead of" } */
+
+ [MyClass1 doItClass1];
+ [MyClass1 doItInstance1];
+ [MyClass1 doItClass2]; /* { dg-warning "may not respond to" } */
+ [MyClass1 doItInstance2]; /* { dg-warning "may not respond to" } */
+
+ [MyClass2 doItClass1];
+ [MyClass2 doItInstance1];
+ [MyClass2 doItClass2];
+ [MyClass2 doItInstance2]; /* { dg-warning "may not respond to" } */
+
+ [MyClass3 doItClass1]; /* { dg-warning "may not respond to" } */
+ [MyClass3 doItInstance1]; /* { dg-warning "may not respond to" } */
+
+ [MyClass4 doItClass1];
+ [MyClass4 doItInstance1]; /* { dg-warning "may not respond to" } */
+}
+
+/*----------------------------------------*/
+/* Protocols declared by categories */
+
+@protocol MyProto3
++(void)doItClass3;
+-(void)doItInstance3;
+@end
+@protocol MyProto4
++(void)doItClass4;
+-(void)doItInstance4;
+@end
+
+@interface MyClass1 (Category1) <MyProto3>
+@end
+@interface MyClass2 (Category2) <MyProto4>
+@end
+
+void
+testCategory(void)
+{
+ [cls doItClass3];
+ [cls doItInstance3];
+ [cls doItClass4];
+ [cls doItInstance4];
+
+ [MyClass1 doItClass3];
+ [MyClass1 doItInstance3];
+ [MyClass1 doItClass4]; /* { dg-warning "may not respond" } */
+ [MyClass1 doItInstance4]; /* { dg-warning "may not respond" } */
+
+ [MyClass2 doItClass3];
+ [MyClass2 doItInstance3];
+ [MyClass2 doItClass4];
+ [MyClass2 doItInstance4]; /* { dg-warning "may not respond" } */
+
+}
+
+/*----------------------------------------*/
+/* Inherited protocols declared by categories */
+
+@protocol MyProto5 <MyProto1>
++(void)doItClass5;
+-(void)doItInstance5;
+@end
+
+@protocol MyProto6 <MyProto2>
++(void)doItClass6;
+-(void)doItInstance6;
+@end
+
+@interface MyClass1 (Category3) <MyProto5>
+@end
+@interface MyClass2 (Category4) <MyProto6>
+@end
+
+Class <MyProto5> clsP5 = 0;
+Class <MyProto6> clsP6 = 0;
+
+void
+testCategoryInherited(void)
+{
+ [cls doItClass5];
+ [cls doItInstance5];
+ [cls doItClass6];
+ [cls doItInstance6];
+
+ [clsP5 doItClass1];
+ [clsP5 doItInstance1]; /* { dg-warning "instead of" } */
+ [clsP5 doItClass2]; /* { dg-warning "not found in protocol" } */
+ [clsP5 doItInstance2]; /* { dg-warning "not found in protocol" } */
+
+ [clsP6 doItClass1]; /* { dg-warning "not found in protocol" } */
+ [clsP6 doItInstance1]; /* { dg-warning "not found in protocol" } */
+ [clsP6 doItClass2];
+ [clsP6 doItInstance2]; /* { dg-warning "instead of" } */
+
+
+ [MyClass1 doItClass5];
+ [MyClass1 doItInstance5];
+ [MyClass1 doItClass6]; /* { dg-warning "may not respond" } */
+ [MyClass1 doItInstance6]; /* { dg-warning "may not respond" } */
+
+ [MyClass2 doItClass5];
+ [MyClass2 doItInstance5];
+ [MyClass2 doItClass6];
+ [MyClass2 doItInstance6]; /* { dg-warning "may not respond" } */
+
+}
+
+/*----------------------------------------*/
+/* Forward declared root protocols */
+
+@protocol FwProto;
+
+@interface MyClass1 (Forward) <FwProto>
+@end
+
+Class <FwProto> clsP7 = 0;
+
+void
+testForwardeDeclared1(void)
+{
+ [cls doItClass7]; /* { dg-warning "no .\\+doItClass7. method found" } */
+ [cls doItInstance7]; /* { dg-warning "no .\\+doItInstance7. method found" } */
+
+ [clsP7 doItClass7]; /* { dg-warning "not found in protocol" } */
+ /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } 190 } */
+ [clsP7 doItInstance7]; /* { dg-warning "not found in protocol" } */
+ /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } 192 } */
+
+ [MyClass1 doItClass7]; /* { dg-warning "may not respond" } */
+ [MyClass1 doItInstance7]; /* { dg-warning "may not respond" } */
+
+ [MyClass2 doItClass7]; /* { dg-warning "may not respond" } */
+ [MyClass2 doItInstance7]; /* { dg-warning "may not respond" } */
+
+}
+
+@protocol FwProto
++(void)doItClass7;
+-(void)doItInstance7;
+@end
+
+void
+testForwardeDeclared2(void)
+{
+ [cls doItClass7];
+ [cls doItInstance7];
+
+ [clsP7 doItClass7];
+ [clsP7 doItInstance7]; /* { dg-warning "instead of" } */
+
+ [MyClass1 doItClass7];
+ [MyClass1 doItInstance7];
+
+ [MyClass2 doItClass7];
+ [MyClass2 doItInstance7];
+}
+
+/*----------------------------------------*/
+/* Inherited non root protocols */
+
+@protocol MyProto8
++(void)doItClass8;
+-(void)doItInstance8;
+@end
+
+@protocol MyProto9 <MyProto8>
++(void)doItClass9;
+-(void)doItInstance9;
+@end
+
+@interface MyClass1 (InheritedNonRoot) <MyProto9>
+@end
+
+Class <MyProto8> clsP8 = 0;
+Class <MyProto9> clsP9 = 0;
+
+void
+testInheritedNonRoot(void)
+{
+ [cls doItClass8];
+ [cls doItInstance8];
+ [cls doItClass9];
+ [cls doItInstance9];
+
+ [clsP8 doItClass8];
+ [clsP8 doItInstance8]; /* { dg-warning "instead of" } */
+ [clsP8 doItClass9]; /* { dg-warning "not found in protocol" } */
+ [clsP8 doItInstance9]; /* { dg-warning "not found in protocol" } */
+
+ [clsP9 doItClass8];
+ [clsP9 doItInstance8]; /* { dg-warning "instead of" } */
+ [clsP9 doItClass9];
+ [clsP9 doItInstance9]; /* { dg-warning "instead of" } */
+
+ [MyClass1 doItClass8];
+ [MyClass1 doItInstance8];
+ [MyClass1 doItClass9];
+ [MyClass1 doItInstance9];
+
+ [MyClass2 doItClass8];
+ [MyClass2 doItInstance8];
+ [MyClass2 doItClass9];
+ [MyClass2 doItInstance9];
+
+}
+
+/*----------------------------------------*/
+/* Prototype mismatch */
+
+@protocol MyOtherProto1
++(id)doItClass1;
+-(id)doItInstance1;
+@end
+@interface MyOtherClass1 <MyOtherProto1>
+@end
+
+Class <MyOtherProto1> oclsP1;
+
+void
+testPrototypeMismatch(void)
+{
+ id tmp1 = [oclsP1 doItClass1];
+ id tmp2 = [oclsP1 doItInstance1]; /* { dg-warning "instead of" } */
+
+ [clsP1 doItClass1];
+ [clsP1 doItInstance1]; /* { dg-warning "instead of" } */
+}
+
+id obj = nil;
+id <MyProto1> objP1 = nil;
+id <MyProto2> objP2 = nil;
+id <MyProto5> objP5 = nil;
+int num = 0;
+void *ptr = 0;
+
+MyClass1 *mc1 = nil;
+
+void
+testComptypes(void)
+{
+ { /* id <protocol>, id <protocol> */
+ objP1 == objP2; /* { dg-warning "lacks a cast" } */
+ objP2 == objP1; /* { dg-warning "lacks a cast" } */
+
+ objP1 == objP5;
+ objP5 == objP1;
+ }
+ { /* id <protocol>, SomeClass * */
+ mc1 == objP1;
+ objP1 == mc1;
+
+ mc1 == objP2; /* { dg-warning "lacks a cast" } */
+ objP2 == mc1; /* { dg-warning "lacks a cast" } */
+ }
+ { /* id <protocol>, id */
+ obj == objP1;
+ objP1 == obj;
+ }
+ { /* id <protocol>, Class */
+ cls == objP1; /* { dg-warning "lacks a cast" } */
+ objP1 == cls; /* { dg-warning "lacks a cast" } */
+ }
+ { /* id <protocol>, non-ObjC */
+ num == objP1; /* { dg-warning "between pointer" } */
+ objP1 == num; /* { dg-warning "between pointer" } */
+
+ ptr == objP1;
+ objP1 == ptr;
+ }
+ { /* Class <protocol>, Class <protocol> */
+ clsP1 == clsP2; /* { dg-warning "lacks a cast" } */
+ clsP2 == clsP1; /* { dg-warning "lacks a cast" } */
+
+ clsP1 == clsP5;
+ clsP5 == clsP1;
+ }
+ { /* Class <protocol>, SomeClass * */
+ mc1 == clsP1; /* { dg-warning "lacks a cast" } */
+ clsP1 == mc1; /* { dg-warning "lacks a cast" } */
+ }
+ { /* Class <protocol>, id */
+ obj == clsP1;
+ clsP1 == obj;
+ }
+ { /* Class <protocol>, Class */
+ cls == clsP1;
+ clsP1 == cls;
+ }
+ { /* Class <protocol>, non-ObjC */
+ num == clsP1; /* { dg-warning "between pointer" } */
+ clsP1 == num; /* { dg-warning "between pointer" } */
+
+ ptr == clsP1;
+ clsP1 == ptr;
+ }
+ { /* Class <protocol>, id <protocol> */
+ clsP1 == objP1; /* { dg-warning "lacks a cast" } */
+ objP1 == clsP1; /* { dg-warning "lacks a cast" } */
+ }
+
+ { /* id <protocol>, id <protocol> */
+ objP1 = objP2; /* { dg-warning "does not conform" } */
+ objP2 = objP1; /* { dg-warning "does not conform" } */
+
+ objP1 = objP5;
+ objP5 = objP1; /* { dg-warning "does not conform" } */
+ }
+ { /* id <protocol>, SomeClass * */
+ mc1 = objP1;
+ objP1 = mc1;
+
+ mc1 = objP2; /* { dg-warning "does not conform" } */
+ objP2 = mc1; /* { dg-warning "does not implement" } */
+ }
+ { /* id <protocol>, id */
+ obj = objP1;
+ objP1 = obj;
+ }
+ { /* id <protocol>, Class */
+ cls = objP1; /* { dg-warning "distinct Objective\\-C type" } */
+ objP1 = cls; /* { dg-warning "distinct Objective\\-C type" } */
+ }
+ { /* id <protocol>, non-ObjC */
+ num = objP1; /* { dg-error "invalid conversion" } */
+ objP1 = num; /* { dg-error "invalid conversion" } */
+
+ ptr = objP1;
+ objP1 = ptr; /* { dg-error "invalid conversion" } */
+ }
+ { /* Class <protocol>, Class <protocol> */
+ clsP1 = clsP2; /* { dg-warning "does not conform" } */
+ clsP2 = clsP1; /* { dg-warning "does not conform" } */
+
+ clsP1 = clsP5;
+ clsP5 = clsP1; /* { dg-warning "does not conform" } */
+ }
+ { /* Class <protocol>, SomeClass * */
+ /* These combinations should always elicit a warning. */
+ mc1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
+ clsP1 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
+
+ mc1 = clsP2; /* { dg-warning "distinct Objective\\-C type" } */
+ clsP2 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
+ }
+ { /* Class <protocol>, id */
+ obj = clsP1;
+ clsP1 = obj;
+ }
+ { /* Class <protocol>, Class */
+ cls = clsP1;
+ clsP1 = cls;
+ }
+ { /* Class <protocol>, non-ObjC */
+ num = clsP1; /* { dg-error "invalid conversion" } */
+ clsP1 = num; /* { dg-error "invalid conversion" } */
+
+ ptr = clsP1;
+ clsP1 = ptr; /* { dg-error "invalid conversion" } */
+ }
+ { /* Class <protocol>, id <protocol> */
+ clsP1 = objP1; /* { dg-warning "distinct Objective\\-C type" } */
+ objP1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
+ }
+}
+
+int main ()
+{
+ testSimple();
+ testCategory();
+ testCategoryInherited();
+ return(0);
+}
+
+/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-1.mm b/gcc/testsuite/obj-c++.dg/comp-types-1.mm
new file mode 100644
index 00000000000..3de76215302
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-1.mm
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+
+@interface A
++ new;
+@end
+
+@interface B : A
+@end
+
+int main(int argc, char **argv) {
+ B *b = [B new];
+ A *a = b;
+
+ return (b == a);
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-10.mm b/gcc/testsuite/obj-c++.dg/comp-types-10.mm
new file mode 100644
index 00000000000..6ca9a45721b
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-10.mm
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file mainline */
+/* Yet another mysterious gimplifier crasher. */
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+@class NSString;
+@protocol NSObject
+@end
+@interface NSObject <NSObject> {
+}
+@end
+void __setRetained(id *ivar, id value) {
+ *ivar = value;
+}
+static NSString *_logProcessPrefix = 0;
+@implementation NSObject (ScopeAdditions)
++ (void)setObjectLogProcessPrefix:(NSString *)processPrefix {
+ __setRetained(&_logProcessPrefix, processPrefix);
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-11.mm b/gcc/testsuite/obj-c++.dg/comp-types-11.mm
new file mode 100644
index 00000000000..9e7d31d49e7
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-11.mm
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+
+
+#include <objc/Object.h>
+
+@protocol Foo
+- (id)meth1;
+- (id)meth2:(int)arg;
+@end
+
+@interface Derived1: Object
+@end
+
+@interface Derived2: Object
++ (Derived1 *)new;
+@end
+
+id<Foo> func(void) {
+ Object *o = [Object new];
+ return o; /* { dg-warning "class .Object. does not implement the .Foo. protocol" } */
+}
+
+@implementation Derived2
++ (Derived1 *)new {
+ Derived2 *o = [super new];
+ return o; /* { dg-warning "distinct Objective\\-C type in return" } */
+}
+@end
+
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-12.mm b/gcc/testsuite/obj-c++.dg/comp-types-12.mm
new file mode 100644
index 00000000000..3ef2ad3c5cc
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-12.mm
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+#include <objc/Object.h>
+
+@interface Derived: Object
+@end
+
+extern Object* foo(void);
+static Derived *test(void)
+{
+ Derived *m = foo(); /* { dg-warning "initialization from distinct Objective\\-C type" } */
+
+ return m;
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-2.mm b/gcc/testsuite/obj-c++.dg/comp-types-2.mm
new file mode 100644
index 00000000000..520c785cffd
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-2.mm
@@ -0,0 +1,88 @@
+/* APPLE LOCAL file mainline */
+/* Test various ObjC types assignments and comparisons. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@protocol MyProtocol
+- (void) foo;
+@end
+
+@interface MyClass
+@end
+
+@interface MyOtherClass <MyProtocol>
+- (void) foo;
+@end
+
+int main()
+{
+ id obj = nil;
+ id<MyProtocol> obj_p = nil;
+ MyClass *obj_c = nil;
+ MyOtherClass *obj_cp = nil;
+ Class obj_C = Nil;
+
+ /* Assigning to an 'id' variable should never
+ generate a warning. */
+ obj = obj_p; /* Ok */
+ obj = obj_c; /* Ok */
+ obj = obj_cp; /* Ok */
+ obj = obj_C; /* Ok */
+
+ /* Assigning to a 'MyClass *' variable should always generate a
+ warning, unless done from an 'id'. */
+ obj_c = obj; /* Ok */
+ obj_c = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_c = obj_cp; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_c = obj_C; /* { dg-warning "distinct Objective\\-C type" } */
+
+ /* Assigning to an 'id<MyProtocol>' variable should generate a
+ warning if done from a 'MyClass *' (which doesn't implement
+ MyProtocol), but not from an 'id' or from a 'MyOtherClass *'
+ (which implements MyProtocol). */
+ obj_p = obj; /* Ok */
+ obj_p = obj_c; /* { dg-warning "does not implement" } */
+ obj_p = obj_cp; /* Ok */
+ obj_p = obj_C; /* { dg-warning "distinct Objective\\-C type" } */
+
+ /* Assigning to a 'MyOtherClass *' variable should always generate
+ a warning, unless done from an 'id' or an 'id<MyProtocol>' (since
+ MyOtherClass implements MyProtocol). */
+ obj_cp = obj; /* Ok */
+ obj_cp = obj_c; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_cp = obj_p; /* Ok */
+ obj_cp = obj_C; /* { dg-warning "distinct Objective\\-C type" } */
+
+ /* Any comparison involving an 'id' must be without warnings. */
+ if (obj == obj_p) ; /* Ok */ /*Bogus warning here in 2.95.4*/
+ if (obj_p == obj) ; /* Ok */
+ if (obj == obj_c) ; /* Ok */
+ if (obj_c == obj) ; /* Ok */
+ if (obj == obj_cp) ; /* Ok */
+ if (obj_cp == obj) ; /* Ok */
+ if (obj == obj_C) ; /* Ok */
+ if (obj_C == obj) ; /* Ok */
+
+ /* Any comparison between 'MyClass *' and anything which is not an 'id'
+ must generate a warning. */
+ if (obj_c == obj_p) ; /* { dg-warning "lacks a cast" } */
+ if (obj_p == obj_c) ; /* { dg-warning "lacks a cast" } */
+ if (obj_c == obj_cp) ; /* { dg-warning "lacks a cast" } */
+ if (obj_cp == obj_c) ; /* { dg-warning "lacks a cast" } */
+ if (obj_c == obj_C) ; /* { dg-warning "lacks a cast" } */
+ if (obj_C == obj_c) ; /* { dg-warning "lacks a cast" } */
+
+ /* Any comparison between 'MyOtherClass *' (which implements
+ MyProtocol) and an 'id' implementing MyProtocol are Ok. */
+ if (obj_cp == obj_p) ; /* Ok */
+ if (obj_p == obj_cp) ; /* Ok */
+
+
+ if (obj_p == obj_C) ; /* { dg-warning "lacks a cast" } */
+ if (obj_C == obj_p) ; /* { dg-warning "lacks a cast" } */
+ if (obj_cp == obj_C) ; /* { dg-warning "lacks a cast" } */
+ if (obj_C == obj_cp) ; /* { dg-warning "lacks a cast" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-3.mm b/gcc/testsuite/obj-c++.dg/comp-types-3.mm
new file mode 100644
index 00000000000..5158e369934
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-3.mm
@@ -0,0 +1,38 @@
+/* APPLE LOCAL file mainline */
+/* Test simple ObjC types casts. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@protocol MyProtocol
+- (void) foo;
+@end
+
+@interface MyClass
+@end
+
+int main()
+{
+ id obj = nil;
+ id<MyProtocol> obj_p = nil;
+ MyClass *obj_c = nil;
+ Class obj_C = Nil;
+
+ /* All these casts should generate no warnings. */
+
+ obj = (id)obj_p;
+ obj = (id)obj_c;
+ obj = (id)obj_C;
+ obj_c = (MyClass *)obj;
+ obj_c = (MyClass *)obj_p;
+ obj_c = (MyClass *)obj_C;
+ obj_p = (id<MyProtocol>)obj;
+ obj_p = (id<MyProtocol>)obj_c;
+ obj_p = (id<MyProtocol>)obj_C;
+ obj_C = (Class)obj;
+ obj_C = (Class)obj_p;
+ obj_C = (Class)obj_c;
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-4.mm b/gcc/testsuite/obj-c++.dg/comp-types-4.mm
new file mode 100644
index 00000000000..87ad8324d76
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-4.mm
@@ -0,0 +1,64 @@
+/* APPLE LOCAL file mainline */
+/* Test assignments and comparisons between protocols (obscure case). */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@protocol MyProtocolA
+- (void) methodA;
+@end
+
+@protocol MyProtocolB
+- (void) methodB;
+@end
+
+@protocol MyProtocolAB <MyProtocolA, MyProtocolB>
+@end
+
+@protocol MyProtocolAC <MyProtocolA>
+- (void) methodC;
+@end
+
+int main()
+{
+ id<MyProtocolA> obj_a = nil;
+ id<MyProtocolB> obj_b = nil;
+ id<MyProtocolAB> obj_ab = nil;
+ id<MyProtocolAC> obj_ac = nil;
+
+ obj_a = obj_b; /* { dg-warning "does not conform" } */
+ obj_a = obj_ab; /* Ok */
+ obj_a = obj_ac; /* Ok */
+
+ obj_b = obj_a; /* { dg-warning "does not conform" } */
+ obj_b = obj_ab; /* Ok */
+ obj_b = obj_ac; /* { dg-warning "does not conform" } */
+
+ obj_ab = obj_a; /* { dg-warning "does not conform" } */
+ obj_ab = obj_b; /* { dg-warning "does not conform" } */
+ obj_ab = obj_ac; /* { dg-warning "does not conform" } */
+
+ obj_ac = obj_a; /* { dg-warning "does not conform" } */
+ obj_ac = obj_b; /* { dg-warning "does not conform" } */
+ obj_ac = obj_ab; /* { dg-warning "does not conform" } */
+
+ if (obj_a == obj_b) ; /* { dg-warning "lacks a cast" } */
+ if (obj_b == obj_a) ; /* { dg-warning "lacks a cast" } */
+
+ if (obj_a == obj_ab) ; /* Ok */
+ if (obj_ab == obj_a) ; /* Ok */ /* Spurious 2.95.4 warning here */
+
+ if (obj_a == obj_ac) ; /* Ok */
+ if (obj_ac == obj_a) ; /* Ok */ /* Spurious 2.95.4 warning here */
+
+ if (obj_b == obj_ab) ; /* Ok */
+ if (obj_ab == obj_b) ; /* Ok */ /* Spurious 2.95.4 warning here */
+
+ if (obj_b == obj_ac) ; /* { dg-warning "lacks a cast" } */
+ if (obj_ac == obj_b) ; /* { dg-warning "lacks a cast" } */
+
+ if (obj_ab == obj_ac) ; /* { dg-warning "lacks a cast" } */
+ if (obj_ac == obj_ab) ; /* { dg-warning "lacks a cast" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-5.mm b/gcc/testsuite/obj-c++.dg/comp-types-5.mm
new file mode 100644
index 00000000000..8d1305b1b80
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-5.mm
@@ -0,0 +1,74 @@
+/* APPLE LOCAL file mainline */
+/* Test errors for assignments and comparisons between ObjC and C++ types. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+/* The NeXT runtime headers do not define NULL. */
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
+
+@protocol MyProtocol
+- (void) method;
+@end
+
+@interface MyClass
+@end
+
+int main()
+{
+ id obj = nil;
+ id <MyProtocol> obj_p = nil;
+ MyClass *obj_c = nil;
+ Class obj_C = Nil;
+
+ int i = 0;
+ int *j = (int *)NULL;
+
+ /* These should all generate warnings. */
+
+ obj = i; /* { dg-error "invalid conversion" } */
+ obj = j; /* { dg-error "cannot convert" } */
+
+ obj_p = i; /* { dg-error "invalid conversion" } */
+ obj_p = j; /* { dg-error "cannot convert" } */
+
+ obj_c = i; /* { dg-error "invalid conversion" } */
+ obj_c = j; /* { dg-error "cannot convert" } */
+
+ obj_C = i; /* { dg-error "invalid conversion" } */
+ obj_C = j; /* { dg-error "cannot convert" } */
+
+ i = obj; /* { dg-error "invalid conversion" } */
+ i = obj_p; /* { dg-error "invalid conversion" } */
+ i = obj_c; /* { dg-error "invalid conversion" } */
+ i = obj_C; /* { dg-error "invalid conversion" } */
+
+ j = obj; /* { dg-error "cannot convert" } */
+ j = obj_p; /* { dg-error "cannot convert" } */
+ j = obj_c; /* { dg-error "cannot convert" } */
+ j = obj_C; /* { dg-error "cannot convert" } */
+
+ if (obj == i) ; /* { dg-error "comparison between pointer and integer" } */
+ if (i == obj) ; /* { dg-error "comparison between pointer and integer" } */
+ if (obj == j) ; /* { dg-error "lacks a cast" } */
+ if (j == obj) ; /* { dg-error "lacks a cast" } */
+
+ if (obj_c == i) ; /*{ dg-error "comparison between pointer and integer" }*/
+ if (i == obj_c) ; /*{ dg-error "comparison between pointer and integer" }*/
+ if (obj_c == j) ; /* { dg-error "lacks a cast" } */
+ if (j == obj_c) ; /* { dg-error "lacks a cast" } */
+
+ if (obj_p == i) ; /*{ dg-error "comparison between pointer and integer" }*/
+ if (i == obj_p) ; /*{ dg-error "comparison between pointer and integer" }*/
+ if (obj_p == j) ; /* { dg-error "lacks a cast" } */
+ if (j == obj_p) ; /* { dg-error "lacks a cast" } */
+
+ if (obj_C == i) ; /*{ dg-error "comparison between pointer and integer" }*/
+ if (i == obj_C) ; /*{ dg-error "comparison between pointer and integer" }*/
+ if (obj_C == j) ; /* { dg-error "lacks a cast" } */
+ if (j == obj_C) ; /* { dg-error "lacks a cast" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-6.mm b/gcc/testsuite/obj-c++.dg/comp-types-6.mm
new file mode 100644
index 00000000000..0bff587f4ab
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-6.mm
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file mainline */
+/* Test assignments and comparisons involving `one-off' protocols. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@protocol MyProtocol
+- (void) method;
+@end
+
+@interface MyClass
+@end
+
+int main()
+{
+ id obj = nil;
+ id <MyProtocol> obj_p = nil;
+ MyClass<MyProtocol> *obj_cp = nil;
+
+ obj_cp = obj; /* Ok */
+ obj = obj_cp; /* Ok */
+
+ obj_cp = obj_p; /* Ok */
+ obj_p = obj_cp; /* Ok */
+
+ if (obj_cp == obj) ; /* Ok */
+ if (obj == obj_cp) ; /* Ok */
+
+ if (obj_cp == obj_p) ; /* Ok */
+ if (obj_p == obj_cp) ; /* Ok */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-7.mm b/gcc/testsuite/obj-c++.dg/comp-types-7.mm
new file mode 100644
index 00000000000..d4f79ec87d7
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-7.mm
@@ -0,0 +1,38 @@
+/* APPLE LOCAL file mainline */
+/* Test assignments and comparisons involving category protocols. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@protocol MyProtocol
+- (void) method;
+@end
+
+@interface MyClass
+@end
+
+@interface MyClass (Addition) <MyProtocol>
+- (void) method;
+@end
+
+@interface MyOtherClass : MyClass
+@end
+
+int main()
+{
+ id <MyProtocol> obj_p = nil;
+ MyClass *obj_cp = nil;
+ MyOtherClass *obj_cp2 = nil;
+
+ obj_cp = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_cp2 = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_p = obj_cp; /* Ok */
+ obj_p = obj_cp2; /* Ok */
+
+ if (obj_cp == obj_p) ; /* Ok */
+ if (obj_cp2 == obj_p) ; /* Ok */
+ if (obj_p == obj_cp) ; /* Ok */
+ if (obj_p == obj_cp2) ; /* Ok */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-8.mm b/gcc/testsuite/obj-c++.dg/comp-types-8.mm
new file mode 100644
index 00000000000..1cde321e60a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-8.mm
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+/* We used to ICE because we removed the cast to List_linked*
+ in -[ListIndex_linked next]. */
+
+@interface List
+{
+@public
+ int firstLink;
+}
+@end
+
+@interface ListIndex_linked
+{
+@public
+ List *collection;
+ int link;
+}
+@end
+
+@interface List_linked: List
+@end
+
+@implementation List
+@end
+
+@implementation ListIndex_linked
+- next
+{
+ link = ((List_linked*)collection)->firstLink;
+}
+@end
+
diff --git a/gcc/testsuite/obj-c++.dg/comp-types-9.mm b/gcc/testsuite/obj-c++.dg/comp-types-9.mm
new file mode 100644
index 00000000000..9c9b3dfe70f
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/comp-types-9.mm
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+/* Another gimplifier ICE... */
+
+#include <objc/Object.h>
+
+@interface MyView: Object {
+ int _frame;
+}
+- (void)_finalize;
+@end
+
+@interface MyViewTemplate: MyView {
+ void *_className;
+}
+- (id)createRealObject;
+@end
+
+@implementation MyViewTemplate
+- (id)createRealObject {
+ id realObj;
+ *(MyView *)realObj = *(MyView *)self;
+ return realObj;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/const-cfstring-1.mm b/gcc/testsuite/obj-c++.dg/const-cfstring-1.mm
new file mode 100644
index 00000000000..8645022b6ef
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-cfstring-1.mm
@@ -0,0 +1,57 @@
+/* APPLE LOCAL file constant cfstrings */
+/* Test the -fconstant-cfstrings option for constructing
+ compile-time immutable CFStrings, and their interoperation
+ with both Cocoa and CoreFoundation. This will only work
+ on MacOS X 10.1.2 and later. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do run { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings -framework Cocoa" } */
+
+#import <Foundation/NSString.h>
+#import <CoreFoundation/CFString.h>
+#include <stdlib.h>
+
+void printOut(NSString *str) {
+ NSLog(@"The value of str is: %@", str);
+}
+
+CFStringRef s0a = CFSTR("Compile-time string literal");
+CFStringRef s0b = CFSTR("Compile-time string literal");
+
+void checkNSRange(NSRange r) {
+ if (r.location != 6 || r.length != 5) {
+ printOut(@"Range check failed");
+ abort();
+ }
+}
+
+void checkCFRange(CFRange r) {
+ if (r.location != 6 || r.length != 5) {
+ printOut(@"Range check failed");
+ abort();
+ }
+}
+
+int main(void) {
+ const NSString *s1 = @"Compile-time string literal";
+ CFStringRef s2 = CFSTR("Compile-time string literal");
+
+ checkNSRange([@"Hello World" rangeOfString:@"World"]);
+ checkNSRange([(id)CFSTR("Hello World") rangeOfString:@"World"]);
+ checkNSRange([@"Hello World" rangeOfString:(id)CFSTR("World")]);
+ checkNSRange([(id)CFSTR("Hello World") rangeOfString:(id)CFSTR("World")]);
+
+ checkCFRange(CFStringFind((CFStringRef)@"Hello World", (CFStringRef)@"World", 0));
+ checkCFRange(CFStringFind(CFSTR("Hello World"), (CFStringRef)@"World", 0));
+ checkCFRange(CFStringFind((CFStringRef)@"Hello World", CFSTR("World"), 0));
+ checkCFRange(CFStringFind(CFSTR("Hello World"), CFSTR("World"), 0));
+
+ /* Check for string uniquing. */
+ if (s0a != s0b || s0a != s2 || s1 != (id)s2) {
+ NSLog(@"String uniquing failed");
+ abort ();
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-cfstring-2.mm b/gcc/testsuite/obj-c++.dg/const-cfstring-2.mm
new file mode 100644
index 00000000000..57b8d95a7d4
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-cfstring-2.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file constant CFStrings */
+/* Test the -Wnonportable-cfstrings option, which should give
+ warnings if non-ASCII characters are embedded in constant
+ CFStrings. This will only work on MacOS X 10.2 and later. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings -Wnonportable-cfstrings" } */
+
+#import <Foundation/NSString.h>
+#import <CoreFoundation/CFString.h>
+
+#ifndef __CONSTANT_CFSTRINGS__
+#error The -fconstant-cfstrings option is not functioning properly
+#endif
+
+void foo(void) {
+ NSString *s1 = @"Compile-time string literal";
+ CFStringRef s2 = CFSTR("Compile-time string literal");
+ NSString *s3 = @"Non-ASCII literal - \222"; /* { dg-warning "non-ASCII character in CFString literal" } */
+ CFStringRef s4 = CFSTR("\222 - Non-ASCII literal"); /* { dg-warning "non-ASCII character in CFString literal" } */
+ CFStringRef s5 = CFSTR("Non-ASCII (\222) literal"); /* { dg-warning "non-ASCII character in CFString literal" } */
+ NSString *s6 = @"\0Embedded NUL"; /* { dg-warning "embedded NUL in CFString literal" } */
+ CFStringRef s7 = CFSTR("Embedded \0NUL"); /* { dg-warning "embedded NUL in CFString literal" } */
+ CFStringRef s8 = CFSTR("Embedded NUL\0"); /* { dg-warning "embedded NUL in CFString literal" } */
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-cfstring-3.mm b/gcc/testsuite/obj-c++.dg/const-cfstring-3.mm
new file mode 100644
index 00000000000..82f361cec6f
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-cfstring-3.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file constant strings */
+/* Test for assigning compile-time constant-string objects to static variables. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fconstant-cfstrings -framework Foundation" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+#include <stdlib.h>
+
+typedef const struct __CFString * CFStringRef;
+static CFStringRef appKey = (CFStringRef) @"com.apple.soundpref";
+
+static int CFPreferencesSynchronize (CFStringRef ref) {
+ return ref == appKey;
+}
+
+static void PrefsSynchronize()
+{
+ if(!CFPreferencesSynchronize(appKey))
+ abort();
+}
+
+int main(void) {
+ PrefsSynchronize();
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm b/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm
new file mode 100644
index 00000000000..d823adf730b
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file constant strings */
+/* Test if constant CFStrings get placed in the correct section. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fconstant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+typedef const struct __CFString * CFStringRef;
+CFStringRef appKey = (CFStringRef) @"com.apple.soundpref";
+
+/* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */
+/* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\n\t.data" } } */
diff --git a/gcc/testsuite/obj-c++.dg/const-cfstring-5.mm b/gcc/testsuite/obj-c++.dg/const-cfstring-5.mm
new file mode 100644
index 00000000000..1274d5d0889
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-cfstring-5.mm
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file 4154928 */
+/* Test if constant CFStrings may be passed back as ObjC strings. */
+/* Author: Ziemowit Laski */
+
+/* { dg-options "-fconstant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
++ (Foo *)description;
+@end
+
+@interface Bar: Object
++ (Foo *) getString: (int) which;
+@end
+
+@implementation Bar
++ (Foo *) getString: (int) which {
+ return which? [Foo description]: @"Hello";
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/const-str-1.mm b/gcc/testsuite/obj-c++.dg/const-str-1.mm
new file mode 100644
index 00000000000..47bf5ab6637
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-1.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* Test errors for constant strings. */
+/* { dg-do compile } */
+/* { dg-options "-fgnu-runtime" } */
+
+#ifdef __cplusplus
+extern void baz(...);
+#endif
+
+void foo()
+{
+ baz(@"hiya"); /* { dg-error "annot find interface declaration" } */
+}
+
+@interface NXConstantString
+{
+ void *isa;
+ char *str;
+ int len;
+}
+@end
+
+void bar()
+{
+ baz(@"howdah");
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-str-10.mm b/gcc/testsuite/obj-c++.dg/const-str-10.mm
new file mode 100644
index 00000000000..6e6d86a8860
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-10.mm
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file 4149909 */
+/* Test if ObjC constant string layout is checked properly, regardless of how
+ constant string classes get derived. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fnext-runtime -fno-constant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface NSString: Object
+@end
+
+@interface NSSimpleCString : NSString {
+@protected
+ char *bytes;
+ unsigned int numBytes;
+}
+@end
+
+@interface NSConstantString : NSSimpleCString
+@end
+
+extern struct objc_class _NSConstantStringClassReference;
+
+const NSConstantString *appKey = @"MyApp";
+
+/* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff --git a/gcc/testsuite/obj-c++.dg/const-str-11.mm b/gcc/testsuite/obj-c++.dg/const-str-11.mm
new file mode 100644
index 00000000000..de3107cb33d
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-11.mm
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file 4149909 */
+/* Test if ObjC constant string layout is checked properly, regardless of how
+ constant string classes get derived. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fnext-runtime -fno-constant-cfstrings -fconstant-string-class=XStr" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface XString: Object {
+@protected
+ char *bytes;
+}
+@end
+
+@interface XStr : XString {
+@public
+ unsigned int len;
+}
+@end
+
+extern struct objc_class _XStrClassReference;
+
+const XStr *appKey = @"MyApp";
+
+/* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff --git a/gcc/testsuite/obj-c++.dg/const-str-12.mm b/gcc/testsuite/obj-c++.dg/const-str-12.mm
new file mode 100644
index 00000000000..134c99b3c37
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-12.mm
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file 4154928 */
+/* Test if ObjC types play nice in conditional expressions. */
+/* Author: Ziemowit Laski */
+
+/* { dg-options "-fno-constant-cfstrings -fconstant-string-class=Foo" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
++ (id)description;
+@end
+
+@interface Bar: Object
++ (Foo *) getString: (int) which;
+@end
+
+struct objc_class _FooClassReference;
+
+@implementation Bar
++ (Foo *) getString: (int) which {
+ return which? [Foo description]: @"Hello";
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/const-str-2.mm b/gcc/testsuite/obj-c++.dg/const-str-2.mm
new file mode 100644
index 00000000000..cb8d09c8691
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-2.mm
@@ -0,0 +1,8 @@
+/* APPLE LOCAL file mainline */
+/* Test the -fconstant-string-class flag error. */
+/* { dg-do compile } */
+/* { dg-options "-fconstant-string-class=" } */
+
+{ dg-error "no class name specified|missing argument" "" { target *-*-* } 0 }
+
+void foo () {}
diff --git a/gcc/testsuite/obj-c++.dg/const-str-3.mm b/gcc/testsuite/obj-c++.dg/const-str-3.mm
new file mode 100644
index 00000000000..e94eab49fe8
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-3.mm
@@ -0,0 +1,49 @@
+/* APPLE LOCAL file mainline */
+/* Test the -fconstant-string-class=Foo option under the NeXT
+ runtime. */
+/* Developed by Markus Hitter <mah@jump-ing.de>. */
+
+/* { dg-options "-fnext-runtime -fconstant-string-class=Foo -lobjc" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <memory.h>
+#include <objc/objc.h>
+#include <objc/Object.h>
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
+- (char *)customString;
+@end
+
+struct objc_class _FooClassReference;
+
+@implementation Foo : Object
+- (char *)customString {
+ return cString;
+}
+@end
+
+int main () {
+ Foo *string = @"bla";
+ Foo *string2 = @"bla";
+
+ if(string != string2)
+ abort();
+ printf("Strings are being uniqued properly\n");
+
+ /* This memcpy has to be done before the first message is sent to a
+ constant string object. Can't be moved to +initialize since _that_
+ is already a message. */
+
+ memcpy(&_FooClassReference, objc_getClass("Foo"), sizeof(_FooClassReference));
+ if (strcmp ([string customString], "bla")) {
+ abort ();
+ }
+
+ printf([@"This is a working constant string object\n" customString]);
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-str-4.mm b/gcc/testsuite/obj-c++.dg/const-str-4.mm
new file mode 100644
index 00000000000..6eab2a63e0a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-4.mm
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file mainline */
+/* Ensure that the preprocessor handles ObjC string constants gracefully. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-options "-fnext-runtime -fconstant-string-class=MyString -lobjc" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+extern "C" void abort(void);
+
+@interface MyString
+{
+ void *isa;
+ char *str;
+ int len;
+}
+@end
+
+#define kMyStringMacro1 "My String"
+#define kMyStringMacro2 @"My String"
+
+void *_MyStringClassReference;
+
+@implementation MyString
+@end
+
+int main(void) {
+ MyString* aString1 = @kMyStringMacro1;
+ MyString* aString2 = kMyStringMacro2;
+ if(aString1 != aString2) {
+ abort();
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-str-5.mm b/gcc/testsuite/obj-c++.dg/const-str-5.mm
new file mode 100644
index 00000000000..915f05c7c59
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-5.mm
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file mainline */
+/* Positive test case for constant string layout. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fconstant-string-class=MyConstantString" } */
+/* { dg-do compile } */
+
+@interface MyBase {
+ const char *p;
+}
+@end
+
+@interface MyConstantString: MyBase {
+ union {
+ void *u;
+ unsigned char *c;
+ } _contents;
+ unsigned int _count;
+}
+@end
+
+/* The NeXT runtime initializes the 'isa' pointer of string constants at
+ compile time. */
+#ifdef __NEXT_RUNTIME__
+extern void *_MyConstantStringClassReference;
+#endif
+
+MyConstantString *str = @"Hello";
diff --git a/gcc/testsuite/obj-c++.dg/const-str-6.mm b/gcc/testsuite/obj-c++.dg/const-str-6.mm
new file mode 100644
index 00000000000..9caeada7322
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-6.mm
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file mainline */
+/* Negative test case for constant string layout. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fconstant-string-class=MyConstantString" } */
+/* { dg-do compile } */
+
+@interface MyBase {
+ char p;
+}
+@end
+
+@interface MyConstantString: MyBase {
+ union {
+ void *u;
+ unsigned char *c;
+ } _contents;
+ char _count;
+}
+@end
+
+/* The NeXT runtime initializes the 'isa' pointer of string constants at
+ compile time. */
+#ifdef __NEXT_RUNTIME__
+extern void *_MyConstantStringClassReference;
+#endif
+
+MyConstantString *str = @"Hello"; /* { dg-error "interface .MyConstantString. does not have valid constant string layout" } */
diff --git a/gcc/testsuite/obj-c++.dg/const-str-7.mm b/gcc/testsuite/obj-c++.dg/const-str-7.mm
new file mode 100644
index 00000000000..7eec5f1e454
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-7.mm
@@ -0,0 +1,47 @@
+/* APPLE LOCAL file mainline */
+/* Test to make sure that the const objc strings are the same across
+ scopes. */
+/* Developed by Andrew Pinski <pinskia@physics.uc.edu> */
+
+
+/* { dg-options "-fnext-runtime -fconstant-string-class=Foo -lobjc" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <memory.h>
+#include <objc/objc.h>
+#include <objc/Object.h>
+
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
+- (char *)customString;
+@end
+
+struct objc_class _FooClassReference;
+
+
+@implementation Foo : Object
+- (char *)customString {
+ return cString;
+}
+@end
+
+
+int main () {
+ Foo *string = @"bla";
+ {
+ Foo *string2 = @"bla";
+
+
+ if(string != string2)
+ abort();
+ printf("Strings are being uniqued properly\n");
+ }
+ return 0;
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/const-str-8.mm b/gcc/testsuite/obj-c++.dg/const-str-8.mm
new file mode 100644
index 00000000000..108e7c3ad0b
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-8.mm
@@ -0,0 +1,40 @@
+/* APPLE LOCAL file mainline */
+/* Test for assigning compile-time constant-string objects to static variables. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fnext-runtime -fconstant-string-class=Foo -lobjc" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+
+#include <stdlib.h>
+#include <objc/Object.h>
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
+@end
+
+struct objc_class _FooClassReference;
+
+@implementation Foo : Object
+- (char *)customString {
+ return cString;
+}
+@end
+
+static const Foo *appKey = @"MyApp";
+static int CFPreferencesSynchronize (const Foo *ref) {
+ return ref == appKey;
+}
+
+static void PrefsSynchronize(void)
+{
+ if(!CFPreferencesSynchronize(appKey))
+ abort();
+}
+
+int main () {
+ PrefsSynchronize();
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/const-str-9.mm b/gcc/testsuite/obj-c++.dg/const-str-9.mm
new file mode 100644
index 00000000000..e59bb742e7f
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/const-str-9.mm
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file mainline */
+/* Test if ObjC constant strings get placed in the correct section. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fnext-runtime" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface NSConstantString: Object {
+ char *cString;
+ unsigned int len;
+}
+@end
+
+extern struct objc_class _NSConstantStringClassReference;
+
+const NSConstantString *appKey = @"MyApp";
+
+/* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff --git a/gcc/testsuite/obj-c++.dg/cxx-class-1.mm b/gcc/testsuite/obj-c++.dg/cxx-class-1.mm
new file mode 100644
index 00000000000..7c758840c7a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/cxx-class-1.mm
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file mainline */
+/* Test that Objective-C++ is able to chew through a simple C++ class hierarchy.
+ This was broken in earlier ObjC++ incarnations. */
+
+struct foo
+{
+ foo(void *a) {};
+};
+
+struct bar : foo
+{
+ bar() : foo((char*)0) {};
+};
+
+class apple : foo
+{
+public:
+ apple() : foo(0) { };
+};
+
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
new file mode 100644
index 00000000000..26b8bde1d1f
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
@@ -0,0 +1,42 @@
+// APPLE LOCAL file mainline
+// Check if ivars may be accessed via the C++ dot notation.
+// { dg-do run }
+// { dg-options "-fno-objc-call-cxx-cdtors" }
+
+#include <objc/Object.h>
+#include <stdlib.h>
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+struct cxx_struct {
+ int a, b;
+ void set_values (int _a, int _b = 3) {
+ a = _a; b = _b;
+ }
+ ~cxx_struct (void) {
+ a = b = 99;
+ }
+};
+
+@interface Manip : Object {
+ int c;
+ cxx_struct s; // { dg-warning "user-defined destructor" }
+ // { dg-warning "constructors and destructors will not be invoked" "" { target *-*-* } 22 }
+}
+- (void) manipulate_ivars;
+@end
+
+@implementation Manip
+- (void) manipulate_ivars {
+ s.set_values (7);
+ CHECK_IF (s.a == 7 && s.b == 3);
+ s.~cxx_struct();
+ CHECK_IF (s.a == 99 && s.b == 99);
+}
+@end
+
+int main (void)
+{
+ Manip *obj = [Manip new];
+ [obj manipulate_ivars];
+ [obj free];
+}
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
new file mode 100644
index 00000000000..9cfe5ce4a1d
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
@@ -0,0 +1,77 @@
+// APPLE LOCAL file mainline
+// Check if the '- .cxx_construct' and '-.cxx_destruct' methods get called
+// and if they perform their desired function.
+// { dg-do run }
+// { dg-options "-fobjc-call-cxx-cdtors" }
+
+#include <objc/Object.h>
+#include <stdlib.h>
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+static int ctor1_called, ctor2_called, dtor1_called;
+
+struct bar {
+ int a, b;
+ bar(void) {
+ a = 5; b = 6;
+ ctor1_called++;
+ }
+ ~bar(void) {
+ a = b = 99;
+ dtor1_called++;
+ }
+};
+
+struct boo: bar {
+ int c;
+ boo(int _c = 9): c(_c) {
+ ctor2_called++;
+ }
+};
+
+@interface Baz: Object {
+@public
+ bar aa;
+}
+@end
+
+@implementation Baz
+@end
+
+@interface Foo: Baz {
+@public
+ int a;
+ boo bb;
+ bar b;
+ float c;
+ bar d;
+}
+@end
+
+@implementation Foo
+@end
+
+int main (void)
+{
+ CHECK_IF(!ctor1_called && !ctor2_called && !dtor1_called); /* are we sane? */
+
+ Baz *baz = [Baz new];
+ CHECK_IF(ctor1_called && !ctor2_called && !dtor1_called);
+ CHECK_IF(baz->aa.a == 5 && baz->aa.b == 6);
+ ctor1_called = 0; /* reset */
+
+ [baz free];
+ CHECK_IF(!ctor1_called && !ctor2_called && dtor1_called);
+ dtor1_called = 0; /* reset */
+
+ Foo *foo = [Foo new];
+ CHECK_IF(ctor1_called && ctor2_called && !dtor1_called);
+ CHECK_IF(foo->bb.a == 5 && foo->bb.b == 6 && foo->bb.c == 9);
+ CHECK_IF(foo->b.a == 5 && foo->b.b == 6);
+ CHECK_IF(foo->d.a == 5 && foo->d.b == 6);
+ ctor1_called = ctor2_called = 0; /* reset */
+
+ [foo free];
+ CHECK_IF(!ctor1_called && !ctor2_called && dtor1_called);
+
+}
diff --git a/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm b/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
new file mode 100644
index 00000000000..4d4b3bf9fee
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
@@ -0,0 +1,46 @@
+// APPLE LOCAL file mainline
+// Check if ObjC classes with non-POD C++ ivars are specially marked in the metadata.
+// { dg-do run { target *-*-darwin* } }
+// { dg-options "-fobjc-call-cxx-cdtors -fnext-runtime" }
+
+#include <objc/objc-runtime.h>
+#include <stdlib.h>
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+#ifndef CLS_HAS_CXX_STRUCTORS
+#define CLS_HAS_CXX_STRUCTORS 0x2000L
+#endif
+
+struct cxx_struct {
+ int a, b;
+ cxx_struct (void) { a = b = 55; }
+};
+
+@interface Foo {
+ int c;
+ cxx_struct s;
+}
+@end
+
+@interface Bar: Foo {
+ float f;
+}
+@end
+
+@implementation Foo
+@end
+
+@implementation Bar
+@end
+
+int main (void)
+{
+ Class cls;
+
+ cls = objc_getClass("Foo");
+ CHECK_IF(cls->info & CLS_HAS_CXX_STRUCTORS);
+ cls = objc_getClass("Bar");
+ CHECK_IF(!(cls->info & CLS_HAS_CXX_STRUCTORS));
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm b/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
new file mode 100644
index 00000000000..33bbc07a670
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
@@ -0,0 +1,53 @@
+/* APPLE LOCAL file mainline */
+/* Handle C++ scoping ('::') operators in ObjC message receivers gracefully. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+@class Derived;
+
+Derived *inst[3];
+
+struct CxxClass {
+ static Derived *get_instance(int);
+};
+
+Derived *CxxClass::get_instance(int offs) {
+ return inst[offs];
+}
+
+@interface Derived: Object {
+ int value;
+}
+-(id)initWithValue:(int)val;
+-(int)derived_meth;
+@end
+
+@implementation Derived
+-(id)initWithValue:(int)val {
+ [super init];
+ value = val;
+ return self;
+}
+- (int)derived_meth {
+ return value;
+}
+@end
+
+int main(void) {
+ int r;
+ inst[1] = [[::Derived alloc] initWithValue:7];
+ inst[2] = [[Derived alloc] initWithValue:77];
+
+ r = [CxxClass::get_instance(2) derived_meth];
+ if (r != 77)
+ abort();
+
+ r = [CxxClass::get_instance(1) derived_meth];
+ if (r != 7)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm b/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
new file mode 100644
index 00000000000..435356ae478
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file mainline */
+/* Make sure Objective-C++ can distinguish ObjC classes from C++ classes. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+#include <iostream>
+#include <string>
+
+@interface iostream: Object
+@end
+
+int main(void) {
+ id i = [std::iostream new]; /* { dg-warning "not an Objective\\-C class name or alias" } */
+ i = [iostream new];
+ i = [std::basic_string<char> new]; /* { dg-warning "not an Objective\\-C class name or alias" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/defs.mm b/gcc/testsuite/obj-c++.dg/defs.mm
new file mode 100644
index 00000000000..b30c328e43b
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/defs.mm
@@ -0,0 +1,44 @@
+/* APPLE LOCAL file mainline */
+/* Check @defs() in Objective-C++ */
+/* Contributed by Devang Patel <dpatel@apple.com> */
+/* { dg-options "-lobjc" } */
+/* { dg-do run } */
+
+
+#include <stdlib.h>
+#include <objc/objc.h>
+#include <objc/Object.h>
+
+extern void abort(void);
+
+@interface A : Object
+{
+ @public
+ int a;
+}
+@end
+
+struct A_defs
+{
+ @defs(A);
+};
+
+@implementation A
+- init
+{
+ a = 42;
+ return self;
+}
+@end
+
+
+int main()
+{
+ A *a = [A init];
+ struct A_defs *a_defs = (struct A_defs *)a;
+
+ if (a->a != a_defs->a)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/dg.exp b/gcc/testsuite/obj-c++.dg/dg.exp
new file mode 100644
index 00000000000..d6498e0fe07
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/dg.exp
@@ -0,0 +1,38 @@
+# APPLE LOCAL file mainline
+# GCC Objective-C++ testsuite that uses the `dg.exp' driver.
+# Copyright (C) 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 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.
+
+# Load support procs.
+load_lib obj-c++-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_OBJCXXFLAGS
+if ![info exists DEFAULT_OBJCXXFLAGS] then {
+ set DEFAULT_OBJCXXFLAGS " -ansi -pedantic-errors -Wno-long-long"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Gather a list of all tests.
+set tests [lsort [find $srcdir/$subdir *.mm]]
+
+# Main loop.
+dg-runtest $tests "" $DEFAULT_OBJCXXFLAGS
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/obj-c++.dg/empty-private-1.mm b/gcc/testsuite/obj-c++.dg/empty-private-1.mm
new file mode 100644
index 00000000000..4c1346f547f
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/empty-private-1.mm
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file mainline */
+/* Test for no entry after @private token. */
+/* { do-do compile } */
+
+@interface foo
+{
+@private
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/encode-1.mm b/gcc/testsuite/obj-c++.dg/encode-1.mm
new file mode 100644
index 00000000000..de951375f30
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-1.mm
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file mainline */
+/* Test for graceful encoding of const-qualified fields and parameters. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+struct Cxx {
+ const struct Cxx *next;
+};
+
+@interface ObjC {
+ const struct Cxx *obj;
+}
+- (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d;
+@end
+
+@implementation ObjC
+- (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d {
+ obj = d;
+ return self;
+}
+@end
+
+/* { dg-final { scan-assembler "@\[0-9\]+@0:\[0-9\]+r\\^{Cxx=\\^r{Cxx}}\[0-9\]+\\^r{Cxx}" } } */
diff --git a/gcc/testsuite/obj-c++.dg/encode-2.mm b/gcc/testsuite/obj-c++.dg/encode-2.mm
new file mode 100644
index 00000000000..d8f893b2cdd
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-2.mm
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+
+template <class T>
+struct Vec {
+ T x, y;
+ int z;
+};
+
+Vec<double> dd;
+const char *enc = @encode(Vec<float>);
+const char *enc2 = @encode(Vec<double>);
+
+/* { dg-final { scan-assembler "{Vec<float>=ffi}" } } */
+/* { dg-final { scan-assembler "{Vec<double>=ddi}" } } */
+
diff --git a/gcc/testsuite/obj-c++.dg/encode-3.mm b/gcc/testsuite/obj-c++.dg/encode-3.mm
new file mode 100644
index 00000000000..5c9cff1184c
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-3.mm
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do run } */
+
+#include <stdlib.h>
+#include <string.h>
+
+template <class T>
+struct Vec {
+ T x, y;
+ long z;
+ long long zz;
+};
+
+Vec<double> dd;
+const char *enc = @encode(Vec<float>);
+const char *enc2 = @encode(Vec<double>);
+
+int main(void) {
+ char *encode = @encode(long);
+
+ if (strcmp (encode, "l"))
+ abort();
+
+ if (strcmp (enc, "{Vec<float>=fflq}"))
+ abort();
+
+ if (strcmp (enc2, "{Vec<double>=ddlq}"))
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/encode-4.mm b/gcc/testsuite/obj-c++.dg/encode-4.mm
new file mode 100644
index 00000000000..0d38dbb04fd
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-4.mm
@@ -0,0 +1,105 @@
+/* APPLE LOCAL file mainline */
+/* Test Objective-C method encodings. */
+
+/* The _encoded_ parameter offsets for Objective-C methods are
+ computed inductively as follows:
+ - The first paramter (self) has offset 0;
+ - The k-th parameter (k > 1) has offset equal to the
+ sum of:
+ - the offset of the k-1-st paramter
+ - the (void *)-promoted size of the k-1-st parameter.
+
+ Note that the encoded offsets need not correspond
+ to the actual placement of parameters (relative to 'self')
+ on the stack! Your target's ABI may have very different
+ opinions on the matter. */
+
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/objc.h>
+#include <objc/Object.h>
+
+#ifdef __NEXT_RUNTIME__
+#define METHOD Method
+#define OBJC_GETCLASS objc_getClass
+#define CLASS_GETINSTANCEMETHOD class_getInstanceMethod
+#else
+#include <objc/objc-api.h>
+#define METHOD Method_t
+#define OBJC_GETCLASS objc_get_class
+#define CLASS_GETINSTANCEMETHOD class_get_instance_method
+#endif
+
+extern "C" {
+ extern int sscanf(const char *str, const char *format, ...);
+ extern void abort(void);
+}
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@interface Foo: Object
+typedef struct { float x, y; } XXPoint;
+typedef struct { float width, height; } XXSize;
+typedef struct _XXRect { XXPoint origin; XXSize size; } XXRect;
+-(id)setRect:(XXRect)r withInt:(int)i;
+-(void) char:(signed char)c float:(float)f double:(double)d long:(long)l;
+@end
+
+XXRect my_rect;
+unsigned offs1, offs2, offs3, offs4, offs5, offs6, offs7;
+
+@implementation Foo
+-(id)setRect:(XXRect)r withInt:(int)i {
+ unsigned offs = sizeof(self);
+ CHECK_IF(offs == offs3);
+ offs += sizeof(_cmd);
+ CHECK_IF(offs == offs4);
+ offs += sizeof(r);
+ CHECK_IF(offs == offs5);
+ offs += sizeof(i);
+ CHECK_IF(offs == offs1);
+ return nil;
+}
+-(void) char:(signed char)c float:(float)f double:(double)d long:(long)l {
+ unsigned offs = sizeof(self);
+ CHECK_IF(offs == offs3);
+ offs += sizeof(_cmd);
+ CHECK_IF(offs == offs4);
+ offs += sizeof((int)c);
+ CHECK_IF(offs == offs5);
+ offs += sizeof(f);
+ CHECK_IF(offs == offs6);
+ offs += sizeof(d);
+ CHECK_IF(offs == offs7);
+ offs += sizeof(l);
+ CHECK_IF(offs == offs1);
+}
+@end
+
+
+int main(void) {
+ Foo *foo = [[Foo alloc] init];
+ Class fooClass = OBJC_GETCLASS("Foo");
+ METHOD meth;
+ const char *string;
+
+ meth = CLASS_GETINSTANCEMETHOD(fooClass, @selector(setRect:withInt:));
+ offs2 = 9999;
+ sscanf(meth->method_types, "@%u@%u:%u{_XXRect={?=ff}{?=ff}}%ui%u", &offs1, &offs2, &offs3,
+ &offs4, &offs5);
+ CHECK_IF(!offs2);
+ [foo setRect:my_rect withInt:123];
+
+ meth = CLASS_GETINSTANCEMETHOD(fooClass, @selector(char:float:double:long:));
+ offs2 = 9999;
+ if (sizeof (long) == 8)
+ string = "v%u@%u:%uc%uf%ud%uq%u";
+ else
+ string = "v%u@%u:%uc%uf%ud%ul%u";
+ sscanf(meth->method_types, string, &offs1, &offs2, &offs3,
+ &offs4, &offs5, &offs6, &offs7);
+ CHECK_IF(!offs2);
+ [foo char:'c' float:2.3 double:3.5 long:2345L];
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/encode-5.mm b/gcc/testsuite/obj-c++.dg/encode-5.mm
new file mode 100644
index 00000000000..0b8edc5cfa6
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-5.mm
@@ -0,0 +1,75 @@
+/* APPLE LOCAL file mainline */
+/* Method encoding tests for stand-alone @protocol declarations. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/Protocol.h>
+#ifdef __cplusplus
+#define ProtoBool bool
+#else
+#define ProtoBool _Bool
+#endif
+
+#ifndef __NEXT_RUNTIME__
+#include <objc/objc-api.h>
+#endif
+
+extern "C" {
+ extern int sscanf(const char *str, const char *format, ...);
+ extern void abort(void);
+}
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+enum Enum {
+ zero, one, two, three
+};
+typedef enum Enum Enum;
+typedef signed char ObjCBool; /* as used by the NeXT runtime */
+
+@protocol Proto
+union __XXAngle { unsigned int alpha, beta; };
+typedef struct { float x, y; union __XXAngle a; } XXPoint;
+typedef struct { double width, height; } XXSize;
+typedef struct _XXRect { XXPoint origin; XXSize size; struct _XXRect *next; } XXRect;
+- (void) char:(signed char)c float:(float)f double:(double)d unsigned:(unsigned)u short:(short)s long:(long)l;
+- (void *)setRect:(XXRect)r withBool:(ProtoBool)b withInt:(int)i;
++ (Enum *)getEnum:(XXPoint *)pt enum:(enum Enum)e bool:(ObjCBool)b;
++ (ProtoBool **)getBool:(ObjCBool **)b;
+@end
+
+Protocol *proto = @protocol(Proto);
+struct objc_method_description *meth;
+unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
+
+static void scan_initial(const char *pattern) {
+ totsize = offs0 = offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = offs7 = (unsigned)-1;
+ sscanf(meth->types, pattern, &totsize, &offs0, &offs1, &offs2, &offs3,
+ &offs4, &offs5, &offs6, &offs7);
+ CHECK_IF(!offs0 && offs1 == sizeof(id) && offs2 == offs1 + sizeof(SEL) && totsize >= offs2);
+}
+
+int main(void) {
+ const char *string;
+
+ meth = [proto descriptionForInstanceMethod: @selector(char:float:double:unsigned:short:long:)];
+ if (sizeof (long) == 8)
+ string = "v%u@%u:%uc%uf%ud%uI%us%uq%u";
+ else
+ string = "v%u@%u:%uc%uf%ud%uI%us%ul%u";
+ scan_initial(string);
+ CHECK_IF(offs3 == offs2 + sizeof(int) && offs4 == offs3 + sizeof(float));
+ CHECK_IF(offs5 == offs4 + sizeof(double) && offs6 == offs5 + sizeof(unsigned));
+ CHECK_IF(offs7 == offs6 + sizeof(int) && totsize == offs7 + sizeof(long));
+ meth = [proto descriptionForInstanceMethod: @selector(setRect:withBool:withInt:)];
+ scan_initial("^v%u@%u:%u{_XXRect={?=ff(__XXAngle=II)}{?=dd}^{_XXRect}}%uB%ui%u");
+ CHECK_IF(offs3 == offs2 + sizeof(XXRect) && offs4 == offs3 + sizeof(int));
+ CHECK_IF(totsize == offs4 + sizeof(int));
+ meth = [proto descriptionForClassMethod: @selector(getEnum:enum:bool:)];
+ scan_initial("^i%u@%u:%u^{?=ff(__XXAngle=II)}%ui%uc%u");
+ CHECK_IF(offs3 == offs2 + sizeof(XXPoint *) && offs4 == offs3 + sizeof(enum Enum));
+ CHECK_IF(totsize == offs4 + sizeof(int)); /* 'ObjCBool' is really 'char' */
+ meth = [proto descriptionForClassMethod: @selector(getBool:)];
+ scan_initial("^^B%u@%u:%u^*%u");
+ CHECK_IF(totsize == offs2 + sizeof(ObjCBool **));
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/encode-6.mm b/gcc/testsuite/obj-c++.dg/encode-6.mm
new file mode 100644
index 00000000000..e7a6e6b3ef8
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-6.mm
@@ -0,0 +1,76 @@
+/* APPLE LOCAL file mainline */
+/* Encoding tests for ObjC class layouts. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-lobjc" } */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#ifdef __NEXT_RUNTIME__
+#include <objc/objc-class.h>
+#define OBJC_GETCLASS objc_getClass
+#else
+#include <objc/objc-api.h>
+#define OBJC_GETCLASS objc_get_class
+#endif
+
+extern "C" {
+ extern void abort(void);
+ extern int strcmp(const char *s1, const char *s2);
+}
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@class Int1, Int2;
+struct Nested;
+
+struct Innermost {
+ unsigned char a, b;
+ struct Nested *encl;
+};
+
+struct Nested {
+ float a, b;
+ Int1 *next;
+ struct Innermost innermost;
+};
+
+@interface Int1: Object {
+ signed char a, b;
+ Int2 *int2;
+ struct Nested nested;
+}
+@end
+
+@interface Int2: Int1 {
+ struct Innermost *innermost;
+ Int1 *base;
+}
+@end
+
+@implementation Int1
+@end
+
+@implementation Int2
+@end
+
+struct objc_ivar *ivar;
+
+static void check_ivar(const char *name, const char *type) {
+ CHECK_IF(!strcmp(ivar->ivar_name, name));
+ CHECK_IF(!strcmp(ivar->ivar_type, type));
+ ivar++;
+}
+
+int main(void) {
+ ivar = ((Class)OBJC_GETCLASS("Int1"))->ivars->ivar_list;
+ check_ivar("a", "c");
+ check_ivar("b", "c");
+ check_ivar("int2", "@\"Int2\"");
+ check_ivar("nested",
+ "{Nested=\"a\"f\"b\"f\"next\"@\"Int1\"\"innermost\"{Innermost=\"a\"C\"b\"C\"encl\"^{Nested}}}");
+
+ ivar = ((Class)OBJC_GETCLASS("Int2"))->ivars->ivar_list;
+ check_ivar("innermost", "^{Innermost=CC^{Nested}}");
+ check_ivar("base", "@\"Int1\"");
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/encode-7.mm b/gcc/testsuite/obj-c++.dg/encode-7.mm
new file mode 100644
index 00000000000..00f4389eea1
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-7.mm
@@ -0,0 +1,79 @@
+/* APPLE LOCAL file mainline */
+/* Check if array arguments of ObjC methods are decayed to pointer types
+ in a proper fashion:
+ (1) The _encodings_ for the array arguments should remain to be '[4i]' and
+ such, since this has been the case since at least gcc 3.3.
+ (2) However, when building the static C functions out of ObjC method signatures,
+ we need to decay the arrays into pointers (as C does).
+ (3) If array size is not known (e.g., 'int a[]'), then the type shall be
+ encoded as a pointer. */
+
+/* Contributed by Alexander Malmberg <alexander@malmberg.org> */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+#include <stdio.h>
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+#ifdef __NEXT_RUNTIME__
+#define METHOD Method
+#define OBJC_GETCLASS objc_getClass
+#define CLASS_GETINSTANCEMETHOD class_getInstanceMethod
+#else
+#include <objc/objc-api.h>
+#define METHOD Method_t
+#define OBJC_GETCLASS objc_get_class
+#define CLASS_GETINSTANCEMETHOD class_get_instance_method
+#endif
+
+@interface Test : Object
+{ float j; }
+-(void) test2: (int [5])a with: (int [])b;
+-(id) test3: (Test **)b; /* { dg-warning "previous declaration of .\\-\\(id\\)test3:\\(Test \\*\\*\\)b." } */
+@end
+
+@implementation Test
+-(void) test2: (int [5])a with: (int [])b
+{
+ a[3] = *b;
+}
+-(void) test3: (Test [3][4])b { /* { dg-warning "conflicting types for .\\-\\(void\\)test3:\\(Test \\\[3\\\]\\\[4\\\]\\)b." } */
+}
+@end
+
+int bb[6] = { 0, 1, 2, 3, 4, 5 };
+int *b = bb;
+Test *cc[4];
+Test **c = cc;
+
+int offs1, offs2, offs3, offs4, offs5, offs6;
+
+int main(int argc, char **argv)
+{
+ Class testClass = OBJC_GETCLASS("Test");
+ METHOD meth;
+
+ cc[0] = [Test new];
+ CHECK_IF (bb[3] == 3);
+ [*c test2: b with: bb + 4];
+ CHECK_IF (bb[3] == 4);
+ bb[3] = 0;
+ [*c test2: bb with: bb + 5];
+ CHECK_IF (bb[3] == 5);
+
+ meth = CLASS_GETINSTANCEMETHOD(testClass, @selector(test2:with:));
+ offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
+ sscanf(meth->method_types, "v%d@%d:%d[%di]%d^i%d", &offs1, &offs2, &offs3,
+ &offs4, &offs5, &offs6);
+ CHECK_IF (!offs2 && offs4 == 5 && offs3 > 0);
+ CHECK_IF (offs5 == 2 * offs3 && offs6 == 3 * offs3 && offs1 == 4 * offs3);
+
+ meth = CLASS_GETINSTANCEMETHOD(testClass, @selector(test3:));
+ offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
+ sscanf(meth->method_types, "v%d@%d:%d[%d[%d{Test=#f}]]%d", &offs1, &offs2, &offs3,
+ &offs4, &offs5, &offs6);
+ CHECK_IF (!offs2 && offs4 == 3 && offs5 == 4 && offs3 > 0);
+ CHECK_IF (offs6 == 2 * offs3 && offs1 == 3 * offs3);
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/encode-8.mm b/gcc/testsuite/obj-c++.dg/encode-8.mm
new file mode 100644
index 00000000000..2e4153a2ec8
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/encode-8.mm
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file mainline */
+/* Test if the Objective-C @encode machinery distinguishes between
+ 'BOOL *' (which should be encoded as '^c') and 'char *' (which
+ should be encoded as '*'). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-lobjc" } */
+/* { dg-do run } */
+
+#include <string.h>
+#include <stdlib.h>
+#include <objc/objc.h>
+
+int main(void) {
+ const char *BOOL_ptr = @encode(BOOL *);
+ const char *char_ptr = @encode(char *);
+
+ if(strcmp(BOOL_ptr, "^c"))
+ abort();
+
+ if(strcmp(char_ptr, "*"))
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/extern-c-1.mm b/gcc/testsuite/obj-c++.dg/extern-c-1.mm
new file mode 100644
index 00000000000..aab0ce78df3
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/extern-c-1.mm
@@ -0,0 +1,19 @@
+/* APPLE LOCAL file mainline */
+/* Test extern c support inside @implementation */
+/* Devang Patel <dpatel@apple.com>. */
+#include <objc/objc.h>
+
+@interface Extern
+@end
+
+@implementation Extern
+
+extern "C" void NSRegisterElement(id element);
+
+- init {
+ NSRegisterElement(self);
+ return self;
+}
+
+@end
+
diff --git a/gcc/testsuite/obj-c++.dg/extra-semi.mm b/gcc/testsuite/obj-c++.dg/extra-semi.mm
new file mode 100644
index 00000000000..520a59aaaf2
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/extra-semi.mm
@@ -0,0 +1,10 @@
+/* APPLE LOCAL file mainline */
+/* Allow extra semicolons in between method declarations,
+ for old times' sake. */
+/* { dg-do compile } */
+
+@interface Foo
+ -(Foo *) expiration;
+ -(void) setExpiration:(Foo *) date;;
+ -(int) getVersion;
+@end
diff --git a/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm b/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm
new file mode 100644
index 00000000000..e5db5d5aa35
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file mainline */
+/* Static variables, even if local, require indirect access through a stub
+ if -mfix-and-continue is enabled. */
+
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do assemble { target *-*-darwin* } } */
+/* { dg-options "-mfix-and-continue" } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object
++ (Object *)indexableFileTypes;
+@end
+
+@implementation Foo
++ (Object *)indexableFileTypes
+{
+ static Object *fileTypes = 0;
+ if(!fileTypes) {
+ fileTypes = [Object new];
+ }
+ return fileTypes;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/isa-field-1.mm b/gcc/testsuite/obj-c++.dg/isa-field-1.mm
new file mode 100644
index 00000000000..c925ce3b1b6
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/isa-field-1.mm
@@ -0,0 +1,44 @@
+/* APPLE LOCAL file mainline */
+/* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@interface Object (Test)
+- (Class) test1: (id)object;
+@end
+
+@interface Derived: Object
+- (Class) test2: (id)object;
+@end
+
+@implementation Object (Test)
+
+Class test1(id object) {
+ Class cls = object->isa;
+ return cls;
+}
+- (Class) test1: (id)object {
+ Class cls = object->isa;
+ return cls;
+}
+
+@end
+
+@implementation Derived
+
+Class test2(id object) {
+ Class cls = object->isa;
+ return cls;
+}
+- (Class) test2: (id)object {
+ Class cls = object->isa;
+ return cls;
+}
+
+@end
+
+Class test3(id object) {
+ Class cls = object->isa;
+ return cls;
+}
diff --git a/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm b/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm
new file mode 100644
index 00000000000..f860c873a65
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file mainline */
+/* Allow for an optional semicolon following the ivar block. */
+/* Contributed by: Ziemowit Laski <zlaski@apple.com>. */
+
+#include <objc/Object.h>
+
+@interface Tink : Object {
+@private
+ unsigned long mCode[4];
+};
+- (id)initWithProc:(void *)inProc;
+- (void *)getUniqueProc;
+@end
diff --git a/gcc/testsuite/obj-c++.dg/layout-1.mm b/gcc/testsuite/obj-c++.dg/layout-1.mm
new file mode 100644
index 00000000000..c3e03dc96de
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/layout-1.mm
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file mainline */
+/* Ensure that we do not get bizarre warnings referring to
+ __attribute__((packed)) or some such. */
+/* { dg-do compile } */
+/* { dg-options "-Wpadded -Wpacked -Wabi" } */
+
+#include <objc/Object.h>
+
+@interface Derived1: Object
+{ }
+@end
+
+@interface Derived2: Object
+- (id) foo;
+@end
+
diff --git a/gcc/testsuite/obj-c++.dg/local-decl-1.mm b/gcc/testsuite/obj-c++.dg/local-decl-1.mm
new file mode 100644
index 00000000000..7ef49809768
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/local-decl-1.mm
@@ -0,0 +1,43 @@
+/* APPLE LOCAL file mainline */
+/* Test for ivar access inside of class methods. It should be allowed (with a warning), but only
+ if no other declarations with the same name are seen. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@interface Sprite: Object {
+ int sprite, spree;
+}
++ (void)setFoo:(int)foo;
++ (void)setSprite:(int)sprite;
+- (void)setFoo:(int)foo;
+- (void)setSprite:(int)sprite;
+@end
+
+int spree = 23;
+
+@implementation Sprite
++ (void)setFoo:(int)foo {
+ sprite = foo; /* { dg-warning "instance variable .sprite. accessed in class method" } */
+ spree = foo;
+}
++ (void)setSprite:(int)sprite {
+ int spree;
+ sprite = 15;
+ spree = 17;
+ ((Sprite *)self)->sprite = 16; /* NB: This is how one _should_ access */
+ ((Sprite *)self)->spree = 18; /* ivars from within class methods! */
+}
+- (void)setFoo:(int)foo {
+ sprite = foo;
+ spree = foo;
+}
+- (void)setSprite:(int)sprite {
+ int spree;
+ sprite = 15; /* { dg-warning "local declaration of .sprite. hides instance variable" } */
+ self->sprite = 16;
+ spree = 17; /* { dg-warning "local declaration of .spree. hides instance variable" } */
+ self->spree = 18;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/lookup-1.mm b/gcc/testsuite/obj-c++.dg/lookup-1.mm
new file mode 100644
index 00000000000..9690e58e56e
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/lookup-1.mm
@@ -0,0 +1,9 @@
+/* APPLE LOCAL file mainline */
+/* Simple test to check Objectivec-C++ qualified type lookup. */
+/* Devang Patel <dpatel@apple.com>. */
+
+@interface A
+{
+ A *ap;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/lookup-2.mm b/gcc/testsuite/obj-c++.dg/lookup-2.mm
new file mode 100644
index 00000000000..a72c05282ed
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/lookup-2.mm
@@ -0,0 +1,57 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+class MyWidget {
+ public:
+ int a;
+ MyWidget(void) { a = 17; }
+};
+
+MyWidget gWidget;
+
+@protocol MyProto
+- (MyWidget *)widget;
+@end
+
+@interface Foo: Object
+@end
+
+@interface Bar: Foo <MyProto>
+@end
+
+@interface Container: Object
++ (MyWidget *)elementForView:(Foo *)view;
+@end
+
+@implementation Foo
+@end
+
+@implementation Bar
+- (MyWidget *)widget {
+ return &gWidget;
+}
+@end
+
+@implementation Container
++ (MyWidget *)elementForView:(Foo *)view
+{
+ MyWidget *widget = nil;
+ if ([view conformsTo:@protocol(MyProto)]) {
+ widget = [(Foo <MyProto> *)view widget];
+ }
+ return widget;
+}
+@end
+
+int main(void) {
+ id view = [Bar new];
+ MyWidget *w = [Container elementForView: view];
+
+ if (!w || w->a != 17)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/lvalue-cast-1.mm b/gcc/testsuite/obj-c++.dg/lvalue-cast-1.mm
new file mode 100644
index 00000000000..f2575efc631
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/lvalue-cast-1.mm
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file non lvalue assign */
+/* { dg-do compile } */
+/* { dg-options "-fnon-lvalue-assign" } */
+
+#include <objc/Object.h>
+
+typedef struct _NSPoint {
+ float x;
+ float y;
+} NSPoint;
+typedef NSPoint *NSPointPointer;
+typedef NSPoint *NSPointArray;
+typedef struct _NSSize {
+ float width;
+ float height;
+} NSSize;
+typedef struct _NSRect {
+ NSPoint origin;
+ NSSize size;
+} NSRect;
+
+@interface NSLayoutManager: Object {
+ NSRect *_cachedRectArray;
+}
+- (void)_growCachedRectArrayToSize:(unsigned)newSize;
+@end
+
+@implementation NSLayoutManager
+- (void)_growCachedRectArrayToSize:(unsigned)newSize {
+ ( NSRect *)_cachedRectArray = nil; /* { dg-warning "target of assignment not really an lvalue" } */
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/method-1.mm b/gcc/testsuite/obj-c++.dg/method-1.mm
new file mode 100644
index 00000000000..45fd0c6f836
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-1.mm
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* Test whether casting 'id' to a specific class removes method lookup
+ ambiguity. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+#include <objc/objc.h>
+
+@class Int1, Int2;
+
+@interface Int1
++ (Int1 *)classMethod1;
++ (id)classMethod2;
+- (Int1 *)instanceMethod:(Int2 *)arg; /* { dg-bogus "using" } */
+@end
+
+@interface Int2: Int1
++ (Int1 *)classMethod1;
++ (id)classMethod2;
+- (id)int2Method;
+- (int)instanceMethod:(int)arg; /* { dg-bogus "also found" } */
+@end
+
+int main(void) {
+ id i = [(Int2 *)[Int1 classMethod1] int2Method]; /* { dg-bogus "may not respond to" } */
+ int j = [(Int2 *)[Int2 classMethod2] instanceMethod: 45]; /* { dg-bogus "multiple methods" } */
+ /* { dg-bogus "invalid conversion" "" { target *-*-* } 25 } */
+ /* { dg-bogus "invalid conversion" "" { target *-*-* } 25 } */
+ return j;
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-10.mm b/gcc/testsuite/obj-c++.dg/method-10.mm
new file mode 100644
index 00000000000..2498fcb43d8
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-10.mm
@@ -0,0 +1,46 @@
+/* APPLE LOCAL file mainline */
+/* Test for sending messages to aliased classes (and instances thereof). */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-lobjc" } */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+
+extern "C" void abort(void);
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@interface Int1: Object
++ (int) classMeth;
+- (int) instanceMeth;
+@end
+
+@interface Int2: Object
++ (int) classMeth;
+- (int) instanceMeth;
+@end
+
+@implementation Int1
++ (int) classMeth { return 345; }
+- (int) instanceMeth { return 697; }
+@end
+
+@implementation Int2
++ (int) classMeth { return 1345; }
+- (int) instanceMeth { return 1697; }
+@end
+
+typedef Int1 Int1Typedef;
+@compatibility_alias Int1Alias Int1Typedef;
+@compatibility_alias Int2Alias Int2;
+typedef Int2Alias Int2Typedef;
+
+int main(void) {
+ Int1Alias *int1alias = [[Int1Typedef alloc] init];
+ Int2Typedef *int2typedef = [[Int2Alias alloc] init];
+
+ CHECK_IF([Int1Typedef classMeth] == 345 && [Int2Alias classMeth] == 1345);
+ CHECK_IF([int1alias instanceMeth] == 697 && [int2typedef instanceMeth] == 1697);
+ CHECK_IF([(Int2Typedef *)int1alias instanceMeth] == 697);
+ CHECK_IF([(Int1Alias *)int2typedef instanceMeth] == 1697);
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-11.mm b/gcc/testsuite/obj-c++.dg/method-11.mm
new file mode 100644
index 00000000000..755a6dd5b73
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-11.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* Check if class references (generated for the NeXT runtime) are appropriately
+ folded. This test is safe to run on all targets. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-fnext-runtime" } */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+typedef Object ObjectTypedef1;
+typedef ObjectTypedef1 ObjectTypedef2;
+@compatibility_alias ObjectAlias1 ObjectTypedef2;
+@compatibility_alias ObjectAlias2 ObjectAlias1;
+typedef ObjectAlias2 ObjectTypedef3;
+
+void foo(void) {
+ id obj = [Object new];
+ obj = [ObjectTypedef1 new];
+ obj = [ObjectTypedef2 new];
+ obj = [ObjectTypedef3 new];
+ obj = [ObjectAlias1 new];
+ obj = [ObjectAlias2 new];
+}
+
+/* { dg-final { scan-assembler "_OBJC_CLASS_REFERENCES_0" } } */
+/* { dg-final { scan-assembler-not "_OBJC_CLASS_REFERENCES_1" } } */
diff --git a/gcc/testsuite/obj-c++.dg/method-12.mm b/gcc/testsuite/obj-c++.dg/method-12.mm
new file mode 100644
index 00000000000..e3380426689
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-12.mm
@@ -0,0 +1,34 @@
+/* APPLE LOCAL file mainline */
+/* Check that sending messages to variables of type 'Class' does not involve instance methods, unless they reside in root classes. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+#include <objc/Protocol.h>
+
+@interface Base
+- (unsigned)port;
+@end
+
+@interface Derived: Base
+- (Object *)port;
++ (Protocol *)port;
+- (id)starboard;
+@end
+
+void foo(void) {
+ Class receiver;
+
+ [receiver port]; /* { dg-warning "multiple methods named .\\+port. found" } */
+ /* { dg-warning "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 9 } */
+ /* { dg-warning "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 14 } */
+
+ [receiver starboard]; /* { dg-warning "no .\\+starboard. method found" } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
+
+ [Class port]; /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
+}
+
+/* { dg-options "-Wstrict-selector-match" } */
+
diff --git a/gcc/testsuite/obj-c++.dg/method-13.mm b/gcc/testsuite/obj-c++.dg/method-13.mm
new file mode 100644
index 00000000000..b714f8eb6f7
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-13.mm
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file mainline */
+/* Check if finding multiple signatures for a method is handled gracefully. Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@interface Class1
+- (void)setWindow:(Object *)wdw;
+@end
+
+@interface Class2
+- (void)setWindow:(Class1 *)window;
+@end
+
+id foo(void) {
+ Object *obj = [[Object alloc] init];
+ id obj2 = obj;
+ [obj setWindow:nil]; /* { dg-warning ".Object. may not respond to .\\-setWindow:." } */
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 18 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 18 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 18 } */
+ [obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
+ /* { dg-warning "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 8 } */
+ /* { dg-warning "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 12 } */
+
+ return obj;
+}
+
+/* { dg-options "-Wstrict-selector-match" } */
diff --git a/gcc/testsuite/obj-c++.dg/method-14.mm b/gcc/testsuite/obj-c++.dg/method-14.mm
new file mode 100644
index 00000000000..77bb7b794ee
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-14.mm
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file mainline */
+/* Check if casting the receiver type causes method lookup to succeed. This was broken
+ in Objective-C++. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+@interface A
+@end
+
+@interface B: A
+- (void)f;
+@end
+
+void g(A *p) { [(B *)p f]; }
+
diff --git a/gcc/testsuite/obj-c++.dg/method-15.mm b/gcc/testsuite/obj-c++.dg/method-15.mm
new file mode 100644
index 00000000000..1ea1445c3ee
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-15.mm
@@ -0,0 +1,46 @@
+/* APPLE LOCAL file mainline */
+/* Check if finding multiple signatures for a method is handled gracefully when method lookup succeeds (see also method-7.m). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@protocol MyObject
+- (id)initWithData:(Object *)data;
+@end
+
+@protocol SomeOther
+- (id)initWithData:(int)data;
+@end
+
+@protocol MyCoding
+- (id)initWithData:(id<MyObject, MyCoding>)data;
+@end
+
+@interface NTGridDataObject: Object <MyCoding>
+{
+ Object<MyCoding> *_data;
+}
++ (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data;
+@end
+
+@implementation NTGridDataObject
+- (id)initWithData:(id<MyObject, MyCoding>)data {
+ return data;
+}
++ (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
+{
+ NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
+ /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
+ /* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 9 } */
+ /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 17 } */
+ /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
+
+ /* The following warning is a consequence of picking the "wrong" method signature. */
+ /* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 33 } */
+ return result;
+}
+@end
+
+/* { dg-options "-Wstrict-selector-match" } */
+
diff --git a/gcc/testsuite/obj-c++.dg/method-16.mm b/gcc/testsuite/obj-c++.dg/method-16.mm
new file mode 100644
index 00000000000..2235a47e086
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-16.mm
@@ -0,0 +1,34 @@
+/* APPLE LOCAL file mainline */
+/* Ensure that we indeed cannot obtain the value of a message send
+ if the chosen method signature returns 'void'. There used to
+ exist a cheesy hack that allowed it. While at it, check that
+ the first lexically occurring method signature gets picked
+ when sending messages to 'id'. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+#include <objc/objc.h>
+
+@interface Object1
+- (void)initWithData:(Object1 *)data;
+@end
+
+@interface Object2
+- (id)initWithData:(Object1 *)data;
+@end
+
+@interface Object3
+- (id)initWithData:(Object2 *)data;
+@end
+
+void foo(void) {
+ id obj1, obj2 = 0;
+ obj2 = [obj1 initWithData: obj2];
+ /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 26 } */
+ /* { dg-warning "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 13 } */
+ /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 17 } */
+ /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */
+
+ /* The following error is a consequence of picking the "wrong" method signature. */
+ /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } 26 } */
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-17.mm b/gcc/testsuite/obj-c++.dg/method-17.mm
new file mode 100644
index 00000000000..8e26caf9435
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-17.mm
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file mainline */
+/* When there is only one candidate method available, make sure the
+ compiler uses its argument/return types when constructing the
+ message sends (so that proper C/C++ argument conversions may
+ take place). */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+extern "C" void abort(void);
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+static double d = 4.5920234e2;
+
+@interface Foo : Object
+-(void) brokenType: (int)x floatingPoint: (double)y;
+@end
+
+
+@implementation Foo
+-(void) brokenType: (int)x floatingPoint: (double)y
+{
+ CHECK_IF(x == 459);
+ CHECK_IF(y == d);
+}
+@end
+
+int main(void)
+{
+ Foo *foo=[Foo new];
+ [foo brokenType: (int)d floatingPoint: d];
+ return 0;
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/method-18.mm b/gcc/testsuite/obj-c++.dg/method-18.mm
new file mode 100644
index 00000000000..1035553dcc4
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-18.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* Contributed by Igor Seleznev <selez@mail.ru>. */
+/* This used to be broken. */
+
+#include <objc/objc.h>
+
+@interface A
++ (A *)currentContext;
+@end
+
+@interface B
++ (B *)currentContext;
+@end
+
+int main()
+{
+ [A currentContext]; /* { dg-bogus "multiple declarations" } */
+ return 0;
+}
+
+@implementation A
++ (A *)currentContext { return nil; }
+@end
+@implementation B
++ (B *)currentContext { return nil; }
+@end
diff --git a/gcc/testsuite/obj-c++.dg/method-19.mm b/gcc/testsuite/obj-c++.dg/method-19.mm
new file mode 100644
index 00000000000..b1e79b58fca
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-19.mm
@@ -0,0 +1,82 @@
+/* APPLE LOCAL file mainline */
+/* Test if instance methods of root classes are used as class methods, if no
+ "real" methods are found. For receivers of type 'id' and 'Class', all
+ root classes must be considered. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/objc.h>
+
+#ifdef __NEXT_RUNTIME__
+#include <objc/objc-runtime.h>
+#define OBJC_GETCLASS objc_getClass
+#else
+#include <objc/objc-api.h>
+#define OBJC_GETCLASS objc_get_class
+#endif
+
+extern "C" {
+ extern void abort(void);
+ extern int strcmp(const char *, const char *);
+}
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@protocol Proto
+- (const char *) method4;
+@end
+
+@interface Root
+{ Class isa; }
++ (const char *) method2;
+@end
+
+@interface Derived: Root
+- (const char *) method1;
+- (const char *) method2;
+- (const char *) method3;
+@end
+
+@interface Root (Categ)
+- (const char *) method3;
+@end
+
+@implementation Root (Categ)
+- (const char *) method3 { return "Root(Categ)::-method3"; }
+- (const char *) method4 { return "Root(Categ)::-method4"; }
+@end
+
+@implementation Derived
+- (const char *) method1 { return "Derived::-method1"; }
+- (const char *) method2 { return "Derived::-method2"; }
+- (const char *) method3 { return "Derived::-method3"; }
+@end
+
+@implementation Root
+#ifdef __NEXT_RUNTIME__
++ initialize { return self; }
+#endif
+- (const char *) method1 { return "Root::-method1"; }
++ (const char *) method2 { return "Root::+method2"; }
+@end
+
+int main(void)
+{
+ Class obj = OBJC_GETCLASS("Derived");
+
+ /* None of the following should elicit compiler-time warnings. */
+
+ CHECK_IF(!strcmp([Root method1], "Root::-method1"));
+ CHECK_IF(!strcmp([Root method2], "Root::+method2"));
+ CHECK_IF(!strcmp([Root method3], "Root(Categ)::-method3"));
+ CHECK_IF(!strcmp([Root method4], "Root(Categ)::-method4"));
+ CHECK_IF(!strcmp([Derived method1], "Root::-method1"));
+ CHECK_IF(!strcmp([Derived method2], "Root::+method2"));
+ CHECK_IF(!strcmp([Derived method3], "Root(Categ)::-method3"));
+ CHECK_IF(!strcmp([Derived method4], "Root(Categ)::-method4"));
+ CHECK_IF(!strcmp([obj method1], "Root::-method1"));
+ CHECK_IF(!strcmp([obj method2], "Root::+method2"));
+ CHECK_IF(!strcmp([obj method3], "Root(Categ)::-method3"));
+ CHECK_IF(!strcmp([obj method4], "Root(Categ)::-method4"));
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-2.mm b/gcc/testsuite/obj-c++.dg/method-2.mm
new file mode 100644
index 00000000000..8b22a84a8bf
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-2.mm
@@ -0,0 +1,56 @@
+/* APPLE LOCAL file mainline */
+/* Test if prior method lookup at method @implementation time is not
+ overly aggressive, leading to methods being found in other classes. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@class NSString;
+
+@protocol NSMenuItem
++ (void)setUsesUserKeyEquivalents:(BOOL)flag;
++ (BOOL)usesUserKeyEquivalents;
+@end
+
+@interface NSMenuItem : Object <NSMenuItem> {
+ @private
+ id _menu;
+}
+@end
+
+@interface NSResponder : Object <NSMenuItem>
+{
+ id _nextResponder;
+}
+@end
+
+@interface Object(NSMenuValidation)
+- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
+@end
+
+@interface NSResponder (NSStandardKeyBindingMethods)
+- (void)insertText:(id)insertString;
+- (void)doCommandBySelector:(SEL)aSelector;
+@end
+
+@interface NSView : NSResponder
+{
+ id _superview;
+ id _subviews;
+}
+@end
+
+@interface SKTGraphicView : NSView {
+ @private
+ float _gridSpacing;
+}
+@end
+
+@implementation SKTGraphicView
+- (BOOL)validateMenuItem:(NSMenuItem *)item {
+ return (BOOL)1;
+}
+- (void)insertText:(NSString *)str {
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/method-20.mm b/gcc/testsuite/obj-c++.dg/method-20.mm
new file mode 100644
index 00000000000..bd3b03bb0ea
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-20.mm
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file mainline */
+/* Test if context-sensitive "in", "out", "byref", etc., qualifiers can be
+ used as method selectors. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+@interface Foo
+- (void)insertNewButtonImage:(Foo *)newButtonImage in:(Foo *)buttonCell;
++ (oneway void)oneway:(int)i2 byref:(int)i3 out:(float)f4 bycopy:(float)f5;
+@end
+
+@implementation Foo
+- (void)insertNewButtonImage:(Foo *)newButtonImage in:(Foo *)buttonCell { }
++ (oneway void)oneway:(int)i2 byref:(int)i3 out:(float)f4 bycopy:(float)f5 { }
+@end
+
+/* { dg-final { scan-assembler "insertNewButtonImage:in:" } } */
+/* { dg-final { scan-assembler "oneway:byref:out:bycopy:" } } */
diff --git a/gcc/testsuite/obj-c++.dg/method-21.mm b/gcc/testsuite/obj-c++.dg/method-21.mm
new file mode 100644
index 00000000000..7ebfa02cc0c
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-21.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* Test for spurious "may or may not return a value" warnings. */
+/* { dg-do compile } */
+/* { dg-options "-Wextra" } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object
+- (id) meth1;
+- (void) meth2;
+@end
+
+extern int bar;
+
+@implementation Foo
+- (id) meth1 {
+ if (bar)
+ return [Object new];
+ return; /* { dg-error "return.statement with no value" } */
+}
+- (void) meth2 {
+ if (!bar)
+ return;
+ bar = 0;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/method-3.mm b/gcc/testsuite/obj-c++.dg/method-3.mm
new file mode 100644
index 00000000000..0173d301a73
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-3.mm
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file mainline */
+/* Do not warn about "slightly" mismatched method signatures if
+ -Wstrict-selector-match is off. */
+/* { dg-do compile } */
+/* { dg-options "-Wno-strict-selector-match" } */
+
+#include <objc/objc.h>
+
+@interface Base
+- (id) meth1: (Base *)arg1;
+- (id) window;
+@end
+
+@interface Derived: Base
+- (id) meth1: (Derived *)arg1;
+- (Base *) window;
+@end
+
+void foo(void) {
+ id r;
+
+ [r meth1:r];
+ [r window];
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-4.mm b/gcc/testsuite/obj-c++.dg/method-4.mm
new file mode 100644
index 00000000000..fa9c80227d0
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-4.mm
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file mainline */
+/* Warn about "slightly" mismatched method signatures if
+ -Wstrict-selector-match is on. */
+/* { dg-do compile } */
+/* { dg-options "-Wstrict-selector-match" } */
+
+#include <objc/objc.h>
+
+@interface Base
+- (id) meth1: (Base *)arg1; /* { dg-warning "using .\\-\\(id\\)meth1:\\(Base \\*\\)arg1." } */
+- (id) window; /* { dg-warning "using .\\-\\(id\\)window" } */
+@end
+
+@interface Derived: Base
+- (id) meth1: (Derived *)arg1; /* { dg-warning "also found .\\-\\(id\\)meth1:\\(Derived \\*\\)arg1." } */
+- (Base *) window; /* { dg-warning "also found .\\-\\(Base \\*\\)window." } */
+@end
+
+void foo(void) {
+ id r;
+
+ [r meth1:r]; /* { dg-warning "multiple methods named .\\-meth1:. found" } */
+ [r window]; /* { dg-warning "multiple methods named .\\-window. found" } */
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-5.mm b/gcc/testsuite/obj-c++.dg/method-5.mm
new file mode 100644
index 00000000000..191206a896a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-5.mm
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* Do not warn about "slightly" mismatched method signatures if
+ -Wstrict-selector-match is off. */
+/* { dg-do compile } */
+/* { dg-options "-Wno-strict-selector-match" } */
+
+#include <objc/objc.h>
+
+typedef enum { en1_1, en1_2 } En1;
+typedef enum { en2_1, en2_2 } En2;
+typedef struct { int a, b; } St1;
+typedef struct { unsigned a, b; } St2;
+
+@interface Base
+- (id) meth1: (En1)arg1;
+- (St1) window;
+@end
+
+@interface Derived: Base
+- (id) meth1: (En2)arg1;
+- (St2)window;
+@end
+
+void foo(void) {
+ id r;
+ En1 en;
+
+ [r meth1:en];
+ [r window];
+}
diff --git a/gcc/testsuite/obj-c++.dg/method-6.mm b/gcc/testsuite/obj-c++.dg/method-6.mm
new file mode 100644
index 00000000000..4d99214ab19
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-6.mm
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file mainline */
+/* The following should NOT generate "may not respond to" warnings, since a forward-declared
+ @class (instance) should be treated like a 'Class') ('id'). */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@class NotKnown;
+
+void foo(NotKnown *n) {
+ [NotKnown new];
+ [n nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+}
+
+/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
+
diff --git a/gcc/testsuite/obj-c++.dg/method-7.mm b/gcc/testsuite/obj-c++.dg/method-7.mm
new file mode 100644
index 00000000000..2817b21693d
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-7.mm
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file mainline */
+/* Check if sending messages to "underspecified" objects is handled gracefully. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+@class UnderSpecified;
+typedef struct NotAClass {
+ int a, b;
+} NotAClass;
+
+void foo(UnderSpecified *u, NotAClass *n) {
+ [n nonexistent_method]; /* { dg-warning "invalid receiver type" } */
+ /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 12 } */
+ [NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
+ [u nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+ [UnderSpecified nonexistent_method]; /* { dg-warning "no .\\+nonexistent_method. method found" } */
+}
+
+/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/obj-c++.dg/method-8.mm b/gcc/testsuite/obj-c++.dg/method-8.mm
new file mode 100644
index 00000000000..5938c3e0ac2
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-8.mm
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file mainline */
+/* Tests of duplication. */
+/* { dg-do compile } */
+
+@interface class1
+- (int) meth1;
+- (void) meth1; /* { dg-error "duplicate declaration of method .\\-meth1." } */
+@end
+
+@interface class2
++ (void) meth1;
++ (int) meth1; /* { dg-error "duplicate declaration of method .\\+meth1." } */
+@end
+
+@interface class3
+- (int) meth1;
+@end
+
+@implementation class3
+- (int) meth1 { return 0; } /* { dg-error "previously defined here" } */
+- (int) meth1 { return 0; } /* { dg-error "redefinition of" } */
+@end
+
+@interface class4
++ (void) meth1;
+@end
+
+@implementation class4
++ (void) meth1 {} /* { dg-error "previously defined here" } */
++ (void) meth1 {} /* { dg-error "redefinition of" } */
+@end
diff --git a/gcc/testsuite/obj-c++.dg/method-9.mm b/gcc/testsuite/obj-c++.dg/method-9.mm
new file mode 100644
index 00000000000..2943d7fb12d
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/method-9.mm
@@ -0,0 +1,34 @@
+/* APPLE LOCAL file mainline */
+/* Test for lookup of class (factory) methods. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+@interface MyBase
+- (void) rootInstanceMethod;
+@end
+
+@interface MyIntermediate: MyBase
+@end
+
+@interface MyDerived: MyIntermediate
+- (void) instanceMethod;
++ (void) classMethod;
+@end
+
+@implementation MyDerived
+- (void) instanceMethod {
+}
+
++ (void) classMethod { /* If a class method is not found, the root */
+ [self rootInstanceMethod]; /* class is searched for an instance method */
+ [MyIntermediate rootInstanceMethod]; /* with the same name. */
+
+ [self instanceMethod]; /* { dg-warning ".MyDerived. may not respond to .\\+instanceMethod." } */
+ [MyDerived instanceMethod]; /* { dg-warning ".MyDerived. may not respond to .\\+instanceMethod." } */
+}
+@end
+
+/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
+
diff --git a/gcc/testsuite/obj-c++.dg/no-extra-load.mm b/gcc/testsuite/obj-c++.dg/no-extra-load.mm
new file mode 100644
index 00000000000..40ff8114eab
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/no-extra-load.mm
@@ -0,0 +1,23 @@
+// APPLE LOCAL file mainline
+// Radar 3926484
+// { dg-do compile }
+
+#include <objc/Object.h>
+#include <iostream>
+
+@interface Greeter : Object
+- (void) greet: (const char *)msg;
+@end
+
+@implementation Greeter
+- (void) greet: (const char *)msg { std::cout << msg; }
+@end
+
+int
+main ()
+{
+ std::cout << "Hello from C++\n";
+ Greeter *obj = [Greeter new];
+ [obj greet: "Hello from Objective-C\n"];
+}
+/* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff --git a/gcc/testsuite/obj-c++.dg/objc-fast-1.mm b/gcc/testsuite/obj-c++.dg/objc-fast-1.mm
new file mode 100644
index 00000000000..6db7c38beec
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-fast-1.mm
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* A compile-only test for insertion of 'bla' comm page jumps. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wassign-intercept" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object {
+@public
+ Object *other;
+}
+@end
+
+void foo(void) {
+ Derived *o = [Derived new];
+ o->other = 0; /* { dg-warning "instance variable assignment has been intercepted" } */
+}
+
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+/* { dg-final { scan-assembler-not "objc_assign_ivar" } } */
+
+/* { dg-final { scan-assembler "bla.*fffeff00" } } */
+/* { dg-final { scan-assembler "bla.*fffefec0" } } */
diff --git a/gcc/testsuite/obj-c++.dg/objc-fast-2.mm b/gcc/testsuite/obj-c++.dg/objc-fast-2.mm
new file mode 100644
index 00000000000..61e97adad3a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-fast-2.mm
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* A compile-only test for insertion of 'ba' sibcall comm page jumps. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wno-assign-intercept -O2" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object {
+@public
+ Object *other;
+}
+@end
+
+void foo(void) {
+ Derived *o;
+ o->other = 0; /* sibcall to objc_assign_ivar_Fast() */
+}
+
+void bar(void) {
+ Derived *o = nil;
+ [Derived new]; /* sibcall to objc_msgSend_Fast() */
+}
+
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+/* { dg-final { scan-assembler-not "objc_assign_ivar" } } */
+
+/* { dg-final { scan-assembler "ba.*fffeff00" } } */
+/* { dg-final { scan-assembler "ba.*fffefec0" } } */
diff --git a/gcc/testsuite/obj-c++.dg/objc-fast-3.mm b/gcc/testsuite/obj-c++.dg/objc-fast-3.mm
new file mode 100644
index 00000000000..fc57f831eef
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-fast-3.mm
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* A compile-only test for insertion of 'bla' and 'ba' sibcall comm page jumps
+ for methods returning 'void'. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wno-assign-intercept -O2" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object {
+@public
+ Object *other;
+}
+- (void) do_nothing;
+@end
+
+int a;
+
+void foo(void) {
+ Derived *o;
+ [o do_nothing]; /* objc_msgSend_Fast() */
+ a = 2;
+}
+
+void bar(void) {
+ Derived *o = nil;
+ [o do_nothing]; /* sibcall to objc_msgSend_Fast() */
+}
+
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+
+/* { dg-final { scan-assembler "bla.*fffeff00" } } */
+/* { dg-final { scan-assembler "ba.*fffeff00" } } */
diff --git a/gcc/testsuite/obj-c++.dg/objc-fast-4.mm b/gcc/testsuite/obj-c++.dg/objc-fast-4.mm
new file mode 100644
index 00000000000..67e8a998bc4
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-fast-4.mm
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* Check that 4015820 is fixed. That does not appear except
+ with -O0, so the sibcall case cannot occur. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-O0 -fobjc-direct-dispatch" } */
+#include <objc/Object.h>
+
+void foo(void) {
+ Object *o;
+ [o++ free];
+}
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+/* { dg-final { scan-assembler "bla.*fffeff00" } } */
diff --git a/gcc/testsuite/obj-c++.dg/objc-gc-1.mm b/gcc/testsuite/obj-c++.dg/objc-gc-1.mm
new file mode 100644
index 00000000000..ed9a8b1ac13
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-gc-1.mm
@@ -0,0 +1,146 @@
+/* APPLE LOCAL file ObjC GC */
+/* A compile-only test for insertion of write barriers. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -Wassign-intercept" } */
+
+#ifndef __OBJC_GC__
+#error Missing __OBJC_GC__ manifest constant
+#endif
+
+#include <objc/Object.h>
+
+@class Underspecified;
+@class MyClass;
+
+@interface AnotherClass: Object {
+@public
+ __strong void *storage;
+ MyClass *SomeObj;
+}
+- (id)assignObj:(id)obj;
+@end
+
+struct Struct1 {
+ MyClass *someobj;
+ void *obj2;
+ __strong void *obj3;
+};
+
+struct Struct1 *str1a, str1aa;
+__strong struct Struct1 *str1b, str1bb, **str1c, *str1d[3][3];
+
+extern MyClass *externFunc(void);
+
+@interface MyClass: Object {
+@public
+ id ivar1, *ivar1a;
+ void *ivar2;
+ __strong void *ivar3;
+ Underspecified *ivar4[2], **ivar4a;
+ union {
+ struct {
+ Underspecified *data;
+ const unsigned char *dataBytes;
+ } d;
+ struct {
+ __strong void *storage;
+ AnotherClass *another;
+ } s;
+ } contents;
+ struct {
+ struct {
+ void *yy;
+ } z;
+ } y;
+}
+@end
+
+@implementation AnotherClass
+- (id)assignObj:(id)obj {
+ static MyClass *m_myclass;
+ static id *indirect;
+ str1a = 0;
+ str1b = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1c = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1d[1][1] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1a->someobj = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ str1b->someobj = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ str1aa.someobj = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1bb.someobj = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1a->obj2 = 0;
+ str1b->obj2 = 0;
+ str1a->obj3 = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ str1b->obj3 = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ SomeObj->contents.s.another = 0; /* { dg-warning "instance variable assignment" } */
+ obj = 0;
+ externFunc()->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ externFunc()->contents.s.another->SomeObj = 0; /* { dg-warning "instance variable assignment" } */
+ m_myclass = 0; /* { dg-warning "global\\/static variable assignment" } */
+ *indirect = obj; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ (__strong id)*indirect = obj; /* { dg-warning "strong\\-cast assignment" } */
+ (__strong id)(MyClass *)*indirect = obj; /* { dg-warning "strong\\-cast assignment" } */
+ self = 0;
+ self->isa = 0; /* { dg-warning "instance variable assignment" } */
+ return SomeObj = obj; /* { dg-warning "instance variable assignment" } */
+}
+@end
+
+typedef MyClass MyClass1;
+@compatibility_alias MyClass2 MyClass;
+
+MyClass *g_myclass;
+MyClass1 *g_myclass1;
+MyClass2 *g_myclass2;
+MyClass2 **g_myclass2a, ***g_myclass2b;
+MyClass2 *g_myclass2c[6], *g_myclass2d[4][5];
+__strong void *g_myclass2e[3];
+
+id *g_myid, ***g_myid3;
+
+void function(void) {
+ static MyClass *l_myclass;
+ MyClass2 *l_myclass2;
+
+ g_myclass = 0; /* { dg-warning "global\\/static variable assignment" } */
+ l_myclass = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ *g_myclass->ivar1a = 0;
+ l_myclass2 = 0;
+ l_myclass2->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ (__strong id)*g_myclass->ivar1a = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass->ivar2 = 0;
+ (__strong void *)g_myclass->ivar2 = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass->ivar3 = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->ivar4[1] = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->ivar4a = 0;
+ *l_myclass->ivar4a = 0;
+ (__strong id)*l_myclass->ivar4a = 0; /* { dg-warning "strong\\-cast assignment" } */
+ l_myclass->contents.d.data = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->contents.d.dataBytes = 0;
+ (__strong const unsigned char *)l_myclass->contents.d.dataBytes = 0; /* { dg-warning "strong\\-cast assignment" } */
+ l_myclass->contents.s.storage = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->contents.s.another->SomeObj = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->contents.s.another->storage = 0; /* { dg-warning "instance variable assignment" } */
+ (__strong void *)l_myclass->contents.s.another->storage = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass->y.z.yy = 0;
+ (__strong void *)g_myclass->y.z.yy = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass1->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ (*g_myclass2a)->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ *g_myid = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ ***g_myid3 = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ (__strong id)*g_myid = 0; /* { dg-warning "strong\\-cast assignment" } */
+ (__strong id)***g_myid3 = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass2[3] = g_myclass1[4];
+ g_myclass2a[1] = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ g_myclass2b[1][2] = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ g_myclass2c[1] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass2e[1] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass2d[1][2] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass2a[1]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2b[1][2]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2c[1]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2d[1][2]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/objc-gc-2.mm b/gcc/testsuite/obj-c++.dg/objc-gc-2.mm
new file mode 100644
index 00000000000..a85e3ba14ed
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-gc-2.mm
@@ -0,0 +1,60 @@
+/* APPLE LOCAL file ObjC GC */
+/* A compile-only test for insertion of write barriers. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+/* { dg-options "-fnext-runtime -fobjc-gc -Wassign-intercept" } */
+
+#include <objc/objc.h>
+
+struct NSRect {
+ void *a;
+ id b;
+ __strong void *c;
+ __strong id *d;
+};
+
+@protocol WebCoreImageRenderer
+- (void)drawImageInRect:(NSRect)ir fromRect:(NSRect)fr;
+- (void)release;
+- (void)new;
+- (BOOL)isNull;
+- (id <WebCoreImageRenderer>)copyWithZone:(int)z;
+- (id <WebCoreImageRenderer>)retainOrCopyIfNeeded;
+@end
+
+typedef id <WebCoreImageRenderer> WebCoreImageRendererPtr;
+
+class QPixmap {
+public:
+ QPixmap() {}
+ ~QPixmap() {}
+
+ void resize(int w, int h);
+
+public:
+ WebCoreImageRendererPtr imageRenderer;
+ __strong void *somePtr;
+ mutable bool needCopyOnWrite;
+};
+
+void inline_func(void) {
+ QPixmap *pix;
+
+ pix->imageRenderer = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ pix->somePtr = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ (__strong id)pix->somePtr = 0; /* { dg-warning "strong\\-cast assignment" } */
+ (__strong id)pix->imageRenderer = 0; /* { dg-warning "strong\\-cast assignment" } */
+}
+
+void QPixmap::resize(int w, int h)
+{
+ if (needCopyOnWrite) {
+ id <WebCoreImageRenderer> newImageRenderer = [imageRenderer copyWithZone:0];
+ [imageRenderer release];
+ imageRenderer = newImageRenderer; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ somePtr = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ (__strong id)imageRenderer = newImageRenderer; /* { dg-warning "strong\\-cast assignment" } */
+ needCopyOnWrite = false;
+ }
+ [imageRenderer new];
+}
diff --git a/gcc/testsuite/obj-c++.dg/objc-gc-3.mm b/gcc/testsuite/obj-c++.dg/objc-gc-3.mm
new file mode 100644
index 00000000000..329ee601a87
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/objc-gc-3.mm
@@ -0,0 +1,64 @@
+/* APPLE LOCAL file mainline */
+/* Test looking up fields in superclasses in the context of write-barriers
+ (where component references get rewritten). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fobjc-gc" } */
+
+#include <objc/Object.h>
+
+@class MyWindow;
+
+@interface MyDocument : Object {
+ MyWindow *_window;
+}
+@end
+
+@interface MyFileDocument : MyDocument {
+ struct {
+ unsigned int autoClose:1;
+ unsigned int openForUI:1;
+ unsigned int isClosing:1;
+ unsigned int needsDiskCheck:1;
+ unsigned int isWritable:1;
+ unsigned int representsFileOnDisk:1;
+ unsigned int RESERVED:26;
+ } _fdFlags;
+}
+@end
+
+@interface MyTextFileDocument : MyFileDocument {
+ Object *_textStorage;
+ struct __tfdFlags {
+ unsigned int immutable:1;
+ unsigned int lineEnding:2;
+ unsigned int isClosing:1;
+ unsigned int settingsAreSet:1;
+ unsigned int usesTabs:1;
+ unsigned int isUTF8WithBOM:1;
+ unsigned int wrapsLines:1;
+ unsigned int usingDefaultLanguage:1;
+ unsigned int RESERVED:23;
+ } _tfdFlags;
+ int _tabWidth;
+ int _indentWidth;
+}
+@end
+
+@interface MyRTFFileDocument : MyTextFileDocument
+- (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type;
+@end
+
+@implementation MyRTFFileDocument
+- (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type {
+ if (_textStorage && fileName) {
+ [_textStorage free];
+ return YES;
+ } else if (type) {
+ _textStorage = [MyRTFFileDocument new];
+ return NO;
+ }
+ return (fileName && type);
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/overload-1.mm b/gcc/testsuite/obj-c++.dg/overload-1.mm
new file mode 100644
index 00000000000..bca9fe92218
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/overload-1.mm
@@ -0,0 +1,11 @@
+// APPLE LOCAL file mainline
+// Make sure we can overload on ObjC classes
+// Radar 3960754
+// { dg-do compile }
+
+@class A, B;
+
+struct X {
+ void call(A*);
+ void call(B*);
+};
diff --git a/gcc/testsuite/obj-c++.dg/pascal-strings-1.mm b/gcc/testsuite/obj-c++.dg/pascal-strings-1.mm
new file mode 100644
index 00000000000..7c7cf8139ed
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/pascal-strings-1.mm
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file pascal strings */
+/* Ensure that there are no warnings or errors issued when a Pascal string is used to
+ initialize an array and the NUL terminator does not fit. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings" } */
+
+typedef unsigned char Str15[16];
+
+Str15 ggg = "\p012345678901234";
+Str15 hhh = "\p0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+int foo(void)
+{
+ Str15 sss = "\p012345678901234";
+ Str15 ttt = "\p0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/pascal-strings-2.mm b/gcc/testsuite/obj-c++.dg/pascal-strings-2.mm
new file mode 100644
index 00000000000..ef336990455
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/pascal-strings-2.mm
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file pascal strings */
+/* Ensure that Pascal strings do not get confused with ordinary C strings when
+ -funsigned-char is being used. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings -funsigned-char" } */
+
+typedef unsigned char Str15[16];
+
+Str15 ggg = "\p012345678901234";
+Str15 hhh = "0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+int foo(void)
+{
+ Str15 sss = "\p012345678901234";
+ Str15 ttt = "0123456789012345"; /* { dg-error "initializer.string for array of chars is too long" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/pragma-1.mm b/gcc/testsuite/obj-c++.dg/pragma-1.mm
new file mode 100644
index 00000000000..098e96bb820
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/pragma-1.mm
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file mainline */
+/* It is OK to use #pragma inside @interface body. This test checks that. */
+/* Devang Patel <dpatel@apple.com>. */
+
+@interface A
+{
+ int p;
+}
++(int) foo;
+#pragma Mark foobar
+-(int) bar;
+@end
diff --git a/gcc/testsuite/obj-c++.dg/pragma-2.mm b/gcc/testsuite/obj-c++.dg/pragma-2.mm
new file mode 100644
index 00000000000..ab354582be6
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/pragma-2.mm
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file mainline */
+/* It is OK to use #pragma inside @implementation body. This test checks that. */
+/* Ziemowit Laski <zlaski@apple.com>. */
+
+@interface A
+{
+ int p;
+}
++(int) foo;
+-(int) bar;
+@end
+
+@implementation A
+#pragma mark -
+#pragma mark init / dealloc
++ (int)foo {
+ return 1;
+}
+#pragma mark -
+#pragma mark Private Functions
+- (int)bar {
+ return 2;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/private-1.mm b/gcc/testsuite/obj-c++.dg/private-1.mm
new file mode 100644
index 00000000000..6f65be26fac
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/private-1.mm
@@ -0,0 +1,59 @@
+/* APPLE LOCAL file mainline */
+/* Test errors for accessing @private and @protected variables. */
+/* Based on work by: 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 "._private. was not declared in this scope" } */
+
+ _protected = 12; /* Ok */
+ _public = 12; /* Ok */
+}
+@end
+
+int main (void)
+{
+ MyClass *m = nil;
+
+ if (m != nil)
+ {
+ int access;
+
+ access = m->_private; /* { dg-error "is @private" } */
+ access = m->_protected; /* { dg-error "is @protected" } */
+ access = m->_public; /* Ok */
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/private-2.mm b/gcc/testsuite/obj-c++.dg/private-2.mm
new file mode 100644
index 00000000000..d7ec62fcb00
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/private-2.mm
@@ -0,0 +1,55 @@
+/* APPLE LOCAL file mainline */
+/* Test warnings for shadowing instance variables. */
+/* Based on work by: 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/obj-c++.dg/proto-lossage-1.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-1.mm
new file mode 100644
index 00000000000..20af5472c81
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-1.mm
@@ -0,0 +1,45 @@
+/* APPLE LOCAL file mainline */
+/* Test for situations in which protocol conformance information
+ may be lost, leading to superfluous warnings. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+/* One-line substitute for objc/objc.h */
+typedef struct objc_object { struct objc_class *class_pointer; } *id;
+
+@protocol NSObject
+- (int)someValue;
+@end
+
+@interface NSObject <NSObject>
+@end
+
+@protocol PlateMethods
+- (void)someMethod;
+@end
+
+@interface Foo {
+ NSObject <PlateMethods> *plate;
+ id <PlateMethods> plate1;
+ NSObject *plate2;
+}
+- (id <PlateMethods>) getPlate;
+- (id <NSObject>) getPlate1;
+- (int) getValue;
+@end
+
+@implementation Foo
+- (id <PlateMethods>) getPlate {
+ return plate; /* { dg-bogus "does not implement" } */
+}
+- (id <NSObject>) getPlate1 {
+ return (id <NSObject>)plate1; /* { dg-bogus "does not conform" } */
+}
+- (int) getValue {
+ int i = [plate1 someValue]; /* { dg-warning ".\\-someValue. not found in protocol\\(s\\)" } */
+
+ int j = [(id <NSObject>)plate1 someValue]; /* { dg-bogus "not found in protocol" } */
+ int k = [(id)plate1 someValue]; /* { dg-bogus "not found in protocol" } */
+ return i + j + k;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm
new file mode 100644
index 00000000000..12ec9c7b6f9
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm
@@ -0,0 +1,21 @@
+/* APPLE LOCAL file mainline */
+/* Don't forget to look in protocols if a class (and its superclasses) do not
+ provide a suitable method. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@protocol Zot
+-(void) zot;
+@end
+
+@interface Foo : Object <Zot>
+@end
+
+int foo()
+{
+ Foo *f=nil;
+ [f zot]; /* There should be no warnings here! */
+ return 0;
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm
new file mode 100644
index 00000000000..47a5609658d
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* 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/obj-c++.dg/proto-lossage-4.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
new file mode 100644
index 00000000000..4e57d2bda4c
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
@@ -0,0 +1,52 @@
+/* APPLE LOCAL file mainline */ /* Test for situations in which protocol conformance information
+ may be lost while casting. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+/* One-line substitute for objc/objc.h */
+typedef struct objc_object { struct objc_class *class_pointer; } *id;
+
+@protocol Proto
+- (long)someValue;
+@end
+
+@interface Obj
+- (long)anotherValue;
+@end
+
+long foo(void) {
+ long receiver = 2;
+ Obj *objrcvr;
+ Obj <Proto> *objrcvr2;
+
+ /* NB: Since 'receiver' is an invalid ObjC message receiver, the compiler
+ should warn but then search for methods as if we were messaging 'id'. */
+
+ receiver += [receiver someValue]; /* { dg-warning "invalid receiver type .long int." } */
+ receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .long int." } */
+
+ receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
+/* { dg-error "invalid conversion" "" { target *-*-* } 28 } */
+
+ receiver += [(Obj *)receiver anotherValue];
+ receiver += [(Obj <Proto> *)receiver someValue];
+ receiver += [(Obj <Proto> *)receiver anotherValue];
+ receiver += [objrcvr someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
+/* { dg-error "invalid conversion" "" { target *-*-* } 34 } */
+
+ receiver += [objrcvr anotherValue];
+ receiver += [(Obj <Proto> *)objrcvr someValue];
+ receiver += [(Obj <Proto> *)objrcvr anotherValue];
+ receiver += [objrcvr2 someValue];
+ receiver += [objrcvr2 anotherValue];
+ receiver += [(Obj *)objrcvr2 someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
+/* { dg-warning "invalid conversion" "" { target *-*-* } 42 } */
+
+ receiver += [(Obj *)objrcvr2 anotherValue];
+
+ return receiver;
+}
+
+/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm b/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm
new file mode 100644
index 00000000000..c257411561f
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file mainline */
+/* Do not lose references to forward-declared protocols. */
+/* { dg-do compile } */
+@class MyBaseClass;
+@class MyClassThatFails;
+@protocol _MyProtocol;
+
+@interface MyClassThatFails
+- (MyBaseClass<_MyProtocol> *) aMethod;
+@end
+
+@interface MyBaseClass
+@end
+
+@protocol _MyProtocol
+@end
+
+@implementation MyClassThatFails
+- (MyBaseClass<_MyProtocol> *) aMethod
+{
+ return 0;
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/proto-qual-1.mm b/gcc/testsuite/obj-c++.dg/proto-qual-1.mm
new file mode 100644
index 00000000000..aa13fb98b9c
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/proto-qual-1.mm
@@ -0,0 +1,52 @@
+// APPLE LOCAL file mainline
+/* Check that protocol qualifiers are compiled and encoded properly. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do run } */
+
+#include <objc/Protocol.h>
+#ifndef __NEXT_RUNTIME__
+#include <objc/objc-api.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+
+/* The encoded parameter sizes will be rounded up to match pointer alignment. */
+#define ROUND(s,a) (a * ((s + a - 1) / a))
+#define aligned_sizeof(T) ROUND(sizeof(T),__alignof(void *))
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@protocol Retain
++ (oneway void)retainArgument:(out bycopy id)arg1 with:(in signed char **)arg2;
+- (bycopy) address:(byref inout id)location with:(out short unsigned **)arg2;
+@end
+
+@interface Foo <Retain>
++ (oneway void)retainArgument:(out bycopy id)arg with:(in signed char **)arg2;
+@end
+
+@implementation Foo
++ (oneway void)retainArgument:(out bycopy id)arg1 with:(in signed char **)arg2 { }
+- (bycopy) address:(byref inout id)location with:(out short unsigned **)arg2 { return nil; }
+@end
+
+Protocol *proto = @protocol(Retain);
+struct objc_method_description *meth;
+unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
+
+static void scan_initial(const char *pattern) {
+ totsize = offs0 = offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = offs7 = (unsigned)-1;
+ sscanf(meth->types, pattern, &totsize, &offs0, &offs1, &offs2, &offs3,
+ &offs4, &offs5, &offs6, &offs7);
+ CHECK_IF(!offs0 && offs1 == aligned_sizeof(id) && offs2 == offs1 + aligned_sizeof(SEL) && totsize >= offs2);
+}
+
+int main(void) {
+ meth = [proto descriptionForInstanceMethod: @selector(address:with:)];
+ scan_initial("O@%u@%u:%uNR@%uo^^S%u");
+ CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(unsigned));
+ meth = [proto descriptionForClassMethod: @selector(retainArgument:with:)];
+ scan_initial("Vv%u@%u:%uOo@%un^*%u");
+ CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(char **));
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/qual-types-1.mm b/gcc/testsuite/obj-c++.dg/qual-types-1.mm
new file mode 100644
index 00000000000..4aef33d6dc5
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/qual-types-1.mm
@@ -0,0 +1,72 @@
+/* APPLE LOCAL file mainline */
+/* Test if ObjC++ can distinguish protocol qualifiers from
+ template arguments. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@protocol Zone
++ allocFromZone:(void *)zone;
+- copyFromZone:(void *)zone;
+@end
+
+@protocol Init <Zone>
++ initialize;
+- init;
+@end
+
+@interface Foo: Object
+{ @public int val; }
+- init;
+@end
+
+template <class T, class U> struct X {
+ T x; U y;
+};
+
+X<int, float> xx;
+
+template <typename T> struct Holder
+{
+ T *obj;
+ static int counter;
+ Holder(void) { obj = [[T alloc] init]; }
+ ~Holder(void) { [obj free]; --counter; }
+ id <Init, Zone> getObjId(void) { return obj; }
+ Object <Zone, Init> *getObj(void) { return obj; }
+};
+
+typedef Holder <Foo <Init, Zone> > FooHolder;
+
+@implementation Foo
+-(id) init {
+ [super init];
+ val = ++FooHolder::counter;
+ return self;
+}
+@end
+
+template <typename T>
+int Holder<T>::counter = 0;
+
+int main (void) {
+ CHECK_IF(FooHolder::counter == 0);
+ {
+ FooHolder holder;
+ CHECK_IF(holder.obj->val == 1);
+ CHECK_IF(FooHolder::counter == 1);
+ FooHolder holder2;
+ CHECK_IF(holder2.obj->val == 2);
+ CHECK_IF(FooHolder::counter == 2);
+ }
+ CHECK_IF(FooHolder::counter == 0);
+ return 0;
+}
+
+
+
+
diff --git a/gcc/testsuite/obj-c++.dg/selector-1.mm b/gcc/testsuite/obj-c++.dg/selector-1.mm
new file mode 100644
index 00000000000..a4f2b442b7e
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/selector-1.mm
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file mainline */
+/* Test whether including C++ keywords such as 'and', 'or',
+ 'not', etc., is allowed inside ObjC selectors (as it must be). */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+
+@interface Int1
++ (int)and_eq:(int)arg1 and:(int)arg2;
+- (int)or_eq:(int)arg1 or:(int)arg3;
+- (int)not:(int)arg1 xor:(int)arg2;
+- (void)bitand:(char)c1 bitor:(char)c2;
+- (void)compl:(float)f1 xor_eq:(double)d1;
+- (void)not_eq;
+@end
+
+@implementation Int1
++ (int)and_eq:(int)arg1 and:(int)arg2 { return arg1 + arg2; }
+- (int)or_eq:(int)arg1 or:(int)arg3 { return arg1 + arg3; }
+- (int)not:(int)arg1 xor:(int)arg2 { return arg1 + arg2; }
+- (void)bitand:(char)c1 bitor:(char)c2 { }
+- (void)compl:(float)f1 xor_eq:(double)d1 { }
+- (void)not_eq { }
+@end
+
+/* { dg-final { scan-assembler "\\+\\\[Int1 and_eq:and:\\]|c_Int1__and_eq_and" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 or_eq:or:\\]|i_Int1__or_eq_or" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 not:xor:\\]|i_Int1__not_xor" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 bitand:bitor:\\]|i_Int1__bitand_bitor" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 compl:xor_eq:\\]|i_Int1__compl_xor_eq" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 not_eq\\]|i_Int1__not_eq" } } */
+
diff --git a/gcc/testsuite/obj-c++.dg/selector-2.mm b/gcc/testsuite/obj-c++.dg/selector-2.mm
new file mode 100644
index 00000000000..97ff03d78aa
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/selector-2.mm
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file mainline */
+/* Test that we don't ICE when issuing a -Wselector warning. */
+/* { dg-options "-Wselector" } */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@interface Foo
+@end
+@implementation Foo
+-(void) foo
+{
+ SEL a;
+ a = @selector(b1ar);
+}
+@end
+/* { dg-warning "creating selector for nonexistent method .b1ar." "" { target *-*-* } 0 } */
+
diff --git a/gcc/testsuite/obj-c++.dg/selector-3.mm b/gcc/testsuite/obj-c++.dg/selector-3.mm
new file mode 100644
index 00000000000..7ac1d2aff87
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/selector-3.mm
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file mainline */
+/* Test warning for non-existent selectors. */
+/* This is the "-fgnu-runtime" variant of objc.dg/selector-1.m. */
+/* { dg-options "-Wselector -fgnu-runtime" } */
+/* { dg-do compile } */
+
+typedef struct objc_object { struct objc_class *class_pointer; } *id;
+typedef const struct objc_selector *SEL;
+
+@interface Foo
+- (void) foo;
+- (void) bar;
+@end
+
+@implementation Foo
+- (void) bar
+{
+}
+
+- (void) foo
+{
+ SEL a,b,c;
+ a = @selector(b1ar);
+ b = @selector(bar);
+}
+@end /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+
diff --git a/gcc/testsuite/obj-c++.dg/selector-4.mm b/gcc/testsuite/obj-c++.dg/selector-4.mm
new file mode 100644
index 00000000000..5072615a5d5
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/selector-4.mm
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file mainline */
+/* Test warning for non existing selectors. */
+/* Contributed by Devang Patel <dpatel@apple.com>. */
+
+/* { dg-options "-Wselector -fnext-runtime" } */
+/* { dg-do compile } */
+
+typedef struct objc_object { struct objc_class *class_pointer; } *id;
+typedef struct objc_selector *SEL;
+
+@interface Foo
+- (void) foo;
+- (void) bar;
+@end
+
+@implementation Foo
+- (void) bar
+{
+}
+
+- (void) foo
+{
+ SEL a,b,c;
+ a = @selector(b1ar); /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+ b = @selector(bar);
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/stubify-1.mm b/gcc/testsuite/obj-c++.dg/stubify-1.mm
new file mode 100644
index 00000000000..50d9b35aec1
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/stubify-1.mm
@@ -0,0 +1,37 @@
+/* APPLE LOCAL file mainline */
+/* All calls must be properly stubified. Complain about any "call
+ _objc_msgSend<end-of-line>" without the $stub suffix. */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-Os -mdynamic-no-pic -fno-exceptions" } */
+
+typedef struct objc_object { } *id ;
+int x = 41 ;
+
+extern "C" {
+ extern id objc_msgSend(id self, char * op, ...);
+ extern int bogonic (int, int, int);
+}
+
+@interface Document {}
+- (Document *) window;
+- (Document *) class;
+- (Document *) close;
+@end
+@implementation Document
+- (Document *) class { }
+- (Document *) close { }
+- (Document *) window { }
+- (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+ [[self window] close];
+ ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+ ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+ bogonic (3, 4, 5);
+ x++;
+}
+@end
+
+/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_objc_msgSend\n" } } */
+/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_objc_msgSend\\\$stub\n" } } */
+/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_bogonic\n" } } */
+/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_bogonic\\\$stub\n" } } */
+/* { dg-final { scan-assembler-not "\\\$non_lazy_ptr" } } */
diff --git a/gcc/testsuite/obj-c++.dg/stubify-2.mm b/gcc/testsuite/obj-c++.dg/stubify-2.mm
new file mode 100644
index 00000000000..a4789434d51
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/stubify-2.mm
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* All calls must be properly stubified. */
+/* Testcase extracted from TextEdit:Document.m. */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-mdynamic-no-pic -fdump-rtl-expand" } */
+typedef struct objc_object { } *id ;
+int x = 41 ;
+extern id objc_msgSend(id self, char * op, ...);
+extern int bogonic (int, int, int) ;
+@interface Document {}
+- (Document *) window;
+- (Document *) class;
+- (Document *) close;
+@end
+@implementation Document
+- (Document *) class { }
+- (Document *) close { }
+- (Document *) window { }
+- (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+ [[self window] close];
+ ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+ ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+ bogonic (3, 4, 5);
+ x++;
+}
+@end
+
+/* Any symbol_ref of an un-stubified objc_msgSend is an error; look
+ for "objc_msgSend" in quotes, without the $stub suffix. */
+/* { dg-final { scan-file-not stubify-2.mm.00.expand "symbol_ref.*\"objc_msgSend\"" } } */
diff --git a/gcc/testsuite/obj-c++.dg/super-class-1.mm b/gcc/testsuite/obj-c++.dg/super-class-1.mm
new file mode 100644
index 00000000000..3ab5a25a896
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/super-class-1.mm
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* Test calling super from within a category method. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@interface NSObject
+@end
+@interface NSMenuItem: NSObject
+@end
+
+@interface NSObject (Test)
++ (int) test_func;
+@end
+
+@implementation NSObject (Test)
++ (int) test_func
+{}
+@end
+
+@interface NSMenuItem (Test)
++ (int) test_func;
+@end
+
+@implementation NSMenuItem (Test)
++ (int) test_func
+{
+ return [super test_func]; /* { dg-bogus "invalid use of undefined type" } */
+} /* { dg-bogus "forward declaration of" "" { target *-*-* } 27 } */
+@end
+
diff --git a/gcc/testsuite/obj-c++.dg/super-class-2.mm b/gcc/testsuite/obj-c++.dg/super-class-2.mm
new file mode 100644
index 00000000000..e0caec43492
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/super-class-2.mm
@@ -0,0 +1,35 @@
+/* APPLE LOCAL file mainline */
+/* Bail out gracefully if attempting to derive from a class that has only been
+ forward-declared (via @class). Conversely, @compatibility_alias declarations
+ should be traversed to find the @interface. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@class MyWpModule;
+
+@compatibility_alias MyObject Object;
+@compatibility_alias FictitiousModule MyWpModule;
+
+@protocol MySelTarget
+- (id) meth1;
+@end
+
+@protocol Img
+- (id) meth2;
+@end
+
+@interface FunnyModule: FictitiousModule <Img> /* { dg-error ".MyWpModule., superclass of .FunnyModule." } */
+- (id) meth2;
+@end
+
+@interface MyProjWpModule : MyWpModule <MySelTarget, Img> /* { dg-error ".MyWpModule., superclass of .MyProjWpModule." } */ {
+ id i1, i2;
+}
+- (id) meth1;
+- (id) meth2;
+@end
+
+@interface AnotherModule: MyObject <MySelTarget>
+- (id) meth1;
+@end
diff --git a/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm b/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm
new file mode 100644
index 00000000000..0e123f20b8b
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm
@@ -0,0 +1,47 @@
+/* APPLE LOCAL file mainline */
+/* Check for warnings about missing [super dealloc] calls. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+
+@interface Foo {
+ void *isa;
+}
+- (void) dealloc;
+- (void) some_other;
+@end
+
+@interface Bar: Foo {
+ void *casa;
+}
+- (void) dealloc;
+@end
+
+@interface Baz: Bar {
+ void *usa;
+}
+- (void) dealloc;
+@end
+
+@implementation Foo
+- (void) dealloc {
+ isa = 0; /* Should not warn here. */
+}
+- (void) some_other {
+ isa = (void *)-1;
+}
+@end
+
+@implementation Bar
+- (void) dealloc {
+ casa = 0;
+ [super some_other];
+} /* { dg-warning "method possibly missing a .super dealloc. call" } */
+@end
+
+@implementation Baz
+- (void) dealloc {
+ usa = 0;
+ [super dealloc]; /* Should not warn here. */
+}
+@end
diff --git a/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm b/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm
new file mode 100644
index 00000000000..b60b82c13d7
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm
@@ -0,0 +1,47 @@
+/* APPLE LOCAL file mainline */
+/* Check for warnings about missing [super dealloc] calls. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+
+@interface Foo {
+ void *isa;
+}
+- (void) dealloc;
+- (void) some_other;
+@end
+
+@interface Bar: Foo {
+ void *casa;
+}
+- (void) dealloc0;
+@end
+
+@interface Baz: Bar {
+ void *usa;
+}
+- (void) dealloc;
+@end
+
+@implementation Foo
+- (void) dealloc {
+ isa = 0; /* Should not warn here. */
+}
+- (void) some_other {
+ isa = (void *)-1;
+}
+@end
+
+@implementation Bar
+- (void) dealloc0 {
+ casa = 0;
+ [super some_other]; /* Should not warn here. */
+}
+@end
+
+@implementation Baz
+- (void) dealloc {
+ usa = 0;
+ [super dealloc0];
+} /* { dg-warning "method possibly missing a .super dealloc. call" } */
+@end
diff --git a/gcc/testsuite/obj-c++.dg/template-1.mm b/gcc/testsuite/obj-c++.dg/template-1.mm
new file mode 100644
index 00000000000..de1e0f1574c
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/template-1.mm
@@ -0,0 +1,49 @@
+// APPLE LOCAL file mainline
+/* Test for using ObjC classes as C++ template parameters. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@interface Base: Object
+- (int) meth;
+@end
+
+@interface Derived: Base
+- (int) meth;
+@end
+
+static int count = 0;
+
+template <class T> struct Templ
+{
+ T *m;
+ int i;
+ Templ(): i(55), m([[T alloc] init]) { count++; }
+ ~Templ() { [m free]; count--; }
+};
+
+@implementation Base
+- (int) meth { return 333; }
+@end
+
+@implementation Derived
+- (int) meth { return 666; }
+@end
+
+int main (void) {
+ CHECK_IF(count == 0);
+ {
+ Templ<Derived> derived;
+ CHECK_IF(derived.i == 55 && count == 1);
+ Templ<Base> base;
+ CHECK_IF(base.i == 55 && count == 2);
+ CHECK_IF([base.m meth] == 333);
+ CHECK_IF([derived.m meth] == 666);
+ }
+ CHECK_IF(count == 0);
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/template-2.mm b/gcc/testsuite/obj-c++.dg/template-2.mm
new file mode 100644
index 00000000000..91f51db6ea4
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/template-2.mm
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file mainline */
+/* Test if ObjC classes (and pointers thereto) can participate
+ in C++ overloading. Correct handling of cv-qualifiers is
+ key here. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do compile } */
+
+@interface foo {
+ int a, b;
+}
+@end
+
+struct bar {
+ int c, d;
+};
+
+template <class _Tp>
+struct allocator {
+ typedef _Tp* pointer;
+ typedef const _Tp* const_pointer;
+ typedef _Tp& reference;
+ typedef const _Tp& const_reference;
+
+ pointer address(reference __x) const { return &__x; }
+ const_pointer address(const_reference __x) const { return &__x; }
+};
+
+allocator<bar *> b;
+allocator<foo *> d;
diff --git a/gcc/testsuite/obj-c++.dg/template-3.mm b/gcc/testsuite/obj-c++.dg/template-3.mm
new file mode 100644
index 00000000000..f8622d53a9a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/template-3.mm
@@ -0,0 +1,80 @@
+/* APPLE LOCAL file mainline */
+/* Test for passing arguments to ObjC methods in the context of template
+ expansion. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@interface ObjCClass : Object
+{
+@public
+ int info;
+}
+-(id) init;
+-(id) initWithInformation: (int) whatInfo;
+-(id) initWithInformation: (int) whatInfo andInfo: (int) info2;
+@end
+
+void foo(int info) {
+ ObjCClass *mObj1 = [[ObjCClass alloc] init];
+ ObjCClass *mObj2 = [[ObjCClass alloc] initWithInformation: info];
+ ObjCClass *mObj3 = [[ObjCClass alloc] initWithInformation: info andInfo: 39];
+
+ CHECK_IF(mObj1->info == 666);
+ CHECK_IF(mObj2->info == info);
+ CHECK_IF(mObj3->info == info + 39);
+}
+
+template <class WrappedObjCClass>
+class ObjCObjectWrapper
+{
+ public:
+ ObjCObjectWrapper(int info);
+ WrappedObjCClass *mObj1, *mObj2, *mObj3;
+};
+
+template <class WrappedObjCClass>
+ObjCObjectWrapper<WrappedObjCClass>::ObjCObjectWrapper(int info)
+{
+ mObj1 = [[WrappedObjCClass alloc] init];
+ mObj2 = [[WrappedObjCClass alloc] initWithInformation: info];
+ mObj3 = [[WrappedObjCClass alloc] initWithInformation: info andInfo: 67];
+}
+
+@implementation ObjCClass
+-(id) init {
+ return [self initWithInformation:666];
+}
+-(id) initWithInformation: (int) whatInfo {
+ [super init];
+ info = whatInfo;
+ return self;
+}
+-(id) initWithInformation: (int) whatInfo andInfo: (int) info2 {
+ [super init];
+ info = whatInfo + info2;
+ return self;
+}
+@end
+
+ObjCObjectWrapper<ObjCClass> staticInstance(42);
+
+int main(void) {
+ ObjCObjectWrapper<ObjCClass> stackInstance(47);
+
+ foo(89);
+
+ CHECK_IF(staticInstance.mObj1->info == 666);
+ CHECK_IF(staticInstance.mObj2->info == 42);
+ CHECK_IF(staticInstance.mObj3->info == 42 + 67);
+
+ CHECK_IF(stackInstance.mObj1->info == 666);
+ CHECK_IF(stackInstance.mObj2->info == 47);
+ CHECK_IF(stackInstance.mObj3->info == 47 + 67);
+
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/template-4.mm b/gcc/testsuite/obj-c++.dg/template-4.mm
new file mode 100644
index 00000000000..17a53957272
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/template-4.mm
@@ -0,0 +1,82 @@
+/* APPLE LOCAL file mainline */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+#ifdef __NEXT_RUNTIME__
+/* The following ain't pretty, but does allow us to have just one copy
+ of next_mapping.h. */
+#include "../objc/execute/next_mapping.h"
+#else
+#include <objc/NXConstStr.h>
+#endif
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+template <class ARR, class TYPE> class TestT
+{
+public:
+ TYPE k;
+ int abc( ARR *array ) {
+ return [array count] * k;
+ }
+ TestT(TYPE _k): k(_k) { }
+};
+
+template <class TYPE>
+const char *getDesc(void) {
+ return [TYPE name];
+}
+
+@class Array;
+
+template <class TYPE>
+int abc( TYPE *xyz, Array *array ) {
+ return [xyz count] + [array count];
+}
+
+@interface Array: Object {
+ id *arr;
+ int count;
+}
++ (id)arrayWithObjects:(id)first, ... ;
+- (int)count;
+@end
+
+@implementation Array
++ (id)arrayWithObjects:(id)first, ... {
+ Array *a = [Array new];
+ a->count = 0;
+ a->arr = (id *) calloc(8, sizeof(id));
+
+ va_list args;
+ va_start (args, first);
+
+ a->arr[a->count++] = first;
+
+ for (id el; el = va_arg(args, id); a->count++)
+ a->arr[a->count] = el;
+
+ return a;
+}
+- (int)count {
+ return count;
+}
+@end
+
+int main(void)
+{
+ CHECK_IF(!strcmp ([@"Object" cString], getDesc<Object>()));
+ CHECK_IF(!strcmp ([@"Array" cString], getDesc<Array>()));
+
+ Array* a1 = [Array arrayWithObjects:@"One", @"Two", @"Three", nil];
+ Array* a2 = [Array arrayWithObjects:@"Four", @"Five", nil];
+
+ TestT<Array, int> t(7);
+ CHECK_IF(t.abc(a1) + t.abc(a2) == 35);
+ CHECK_IF(abc(a1, a2) * t.k == 35);
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/template-5.mm b/gcc/testsuite/obj-c++.dg/template-5.mm
new file mode 100644
index 00000000000..ca3a3d787e6
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/template-5.mm
@@ -0,0 +1,17 @@
+// APPLE LOCAL file mainline
+// Test that extern template does not get emitted.
+// Author: Matt Austern <austern@apple.com>
+// { dg-do compile }
+// { dg-options "" }
+// { dg-final { scan-assembler-not ".globl __ZN3FooIiE5identEi" } }
+
+template <typename X>
+struct Foo {
+ X ident(X x) { return x; }
+};
+
+extern template struct Foo<int>;
+
+int abcde(Foo<int>& foo, int n) {
+ return foo.ident(n);
+}
diff --git a/gcc/testsuite/obj-c++.dg/template-6.mm b/gcc/testsuite/obj-c++.dg/template-6.mm
new file mode 100644
index 00000000000..ff762126592
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/template-6.mm
@@ -0,0 +1,16 @@
+// APPLE LOCAL file mainline
+// Test that extern template does not get emitted.
+// Author: Matt Austern <austern@apple.com>
+// { dg-do compile }
+// { dg-options "" }
+// { dg-final { scan-assembler-not ".globl __ZN3FooIiE5identEi" } }
+
+template <typename X>
+ struct Foo { X ident(X x); };
+
+template <typename X>
+ X Foo<X>::ident(X x) { return x; }
+
+extern template struct Foo<int>;
+
+int abcde(Foo<int>& foo, int n) { return foo.ident(n); }
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-1.mm b/gcc/testsuite/obj-c++.dg/try-catch-1.mm
new file mode 100644
index 00000000000..b7a25854090
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-1.mm
@@ -0,0 +1,42 @@
+/* APPLE LOCAL file mainline */
+/* Test if the compiler accepts @throw / @try..@catch..@finally syntax. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-fobjc-exceptions" } */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+#include <stdio.h>
+#include <setjmp.h>
+
+@interface Frob: Object
+@end
+
+@implementation Frob: Object
+@end
+
+static int exc_control = 0;
+
+int proc() {
+ if(exc_control) {
+ printf ("Throwing (%d)... ", exc_control);
+ @throw [Frob new];
+ }
+ return 1;
+}
+
+int foo()
+{
+ @try {
+ return proc();
+ }
+ @catch (Frob* ex) {
+ if(exc_control > 1) {
+ printf("Rethrowing (%d)... ", exc_control);
+ @throw;
+ }
+ return 0;
+ }
+ @finally {
+ printf("In @finally block (%d)... ", exc_control);
+ }
+}
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-10.mm b/gcc/testsuite/obj-c++.dg/try-catch-10.mm
new file mode 100644
index 00000000000..66d59e9bd60
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-10.mm
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* Check that taking the address of a local variable marked 'volatile'
+ by the compiler does not generate untoward errors. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fobjc-exceptions" } */
+/* { dg-do compile } */
+
+
+void foo (int *arg1, int *arg2)
+{
+ *arg1 = *arg2;
+}
+
+void bar (int arg) {
+ int rcvr;
+
+ @try {
+ rcvr = arg;
+ }
+ @finally {
+ int *rcvr0 = &rcvr;
+ foo (rcvr0, &arg);
+ }
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-2.mm b/gcc/testsuite/obj-c++.dg/try-catch-2.mm
new file mode 100644
index 00000000000..f6b32ebef49
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-2.mm
@@ -0,0 +1,80 @@
+/* APPLE LOCAL file mainline */
+/* Test out '@catch(id foo) {...}', which should catch
+ all uncaught exceptions. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fobjc-exceptions" } */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdio.h>
+
+/* The following is not required in actual user code; we include it
+ here to check that the compiler generates an internal definition of
+ _setjmp that is consistent with what <setjmp.h> provides. */
+#include <setjmp.h>
+
+extern "C" void abort(void);
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+@interface Frob: Object
+@end
+
+@implementation Frob: Object
+@end
+
+static Frob* _connection = nil;
+
+//--------------------------------------------------------------------
+
+
+void test (Object* sendPort)
+{
+ int cleanupPorts = 1;
+ Frob* receivePort = nil;
+
+ @try {
+ printf ("receivePort = %p\n", receivePort);
+ printf ("sendPort = %p\n", sendPort);
+ printf ("cleanupPorts = %d\n", cleanupPorts);
+ printf ("---\n");
+
+ receivePort = (Frob *) -1;
+ _connection = (Frob *) -1;
+ printf ("receivePort = %p\n", receivePort);
+ printf ("sendPort = %p\n", sendPort);
+ printf ("cleanupPorts = %d\n", cleanupPorts);
+ printf ("---\n");
+
+ receivePort = nil;
+ sendPort = nil;
+ cleanupPorts = 0;
+
+ printf ("receivePort = %p\n", receivePort);
+ printf ("sendPort = %p\n", sendPort);
+ printf ("cleanupPorts = %d\n", cleanupPorts);
+ printf ("---\n");
+
+ @throw [Object new];
+ }
+ @catch(Frob *obj) {
+ printf ("Exception caught by incorrect handler!\n");
+ CHECK_IF(0);
+ }
+ @catch(id exc) {
+ printf ("Exception caught by correct handler.\n");
+ printf ("receivePort = %p (expected 0x0)\n", receivePort);
+ printf ("sendPort = %p (expected 0x0)\n", sendPort);
+ printf ("cleanupPorts = %d (expected 0)\n", cleanupPorts);
+ printf ("---");
+ CHECK_IF(!receivePort);
+ CHECK_IF(!sendPort);
+ CHECK_IF(!cleanupPorts);
+ }
+}
+
+int main (void) {
+
+ test((Object *)-1);
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-3.mm b/gcc/testsuite/obj-c++.dg/try-catch-3.mm
new file mode 100644
index 00000000000..97f8c3a59d6
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-3.mm
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file mainline */
+/* Test if caught exception objects are accessible inside the
+ @catch block. (Yes, I managed to break this.) */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fobjc-exceptions" } */
+
+#include <objc/Object.h>
+
+const char *foo(void)
+{
+ @try {
+ return "foo";
+ }
+ @catch (Object* theException) {
+ return [theException name];
+ }
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-4.mm b/gcc/testsuite/obj-c++.dg/try-catch-4.mm
new file mode 100644
index 00000000000..9c89c44802e
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-4.mm
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file mainline */
+/* Check that the compiler does not incorrectly complain about
+ exceptions being caught by previous @catch blocks. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall -fobjc-exceptions" } */
+
+@interface Exception
+@end
+
+@interface FooException : Exception
+@end
+
+extern void foo();
+
+void test()
+{
+ @try {
+ foo();
+ }
+ @catch (FooException* fe) {
+ }
+ @catch (Exception* e) {
+ }
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-5.mm b/gcc/testsuite/obj-c++.dg/try-catch-5.mm
new file mode 100644
index 00000000000..8fef6af1423
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-5.mm
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file mainline */
+/* Check that the compiler does correctly complain about
+ exceptions being caught by previous @catch blocks. */
+/* Force the use of NeXT runtime to see that we don't ICE after
+ generating the warning message. */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall -fnext-runtime -fobjc-exceptions" } */
+
+@interface Exception
+@end
+
+@interface FooException : Exception
+@end
+
+extern void foo();
+
+void test()
+{
+ @try {
+ foo();
+ }
+ @catch (Exception* e) { /* { dg-warning "earlier handler" } */
+ }
+ @catch (FooException* fe) { /* { dg-warning "will be caught" } */
+ }
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-6.mm b/gcc/testsuite/obj-c++.dg/try-catch-6.mm
new file mode 100644
index 00000000000..af21aea3021
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-6.mm
@@ -0,0 +1,14 @@
+/* APPLE LOCAL file mainline */
+/* A very simple @try-@catch example. */
+/* { dg-do compile } */
+/* { dg-options "-fobjc-exceptions" } */
+
+int foo(void) {
+ @try {
+ return 2;
+ }
+ @catch (id foo) {
+ return 1;
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-7.mm b/gcc/testsuite/obj-c++.dg/try-catch-7.mm
new file mode 100644
index 00000000000..608f1d5a52c
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-7.mm
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+/* { dg-options "-fobjc-exceptions" } */
+
+#include <objc/Object.h>
+
+int main (int argc, const char * argv[]) {
+
+ Object * pool = [Object new];
+ int a;
+
+ if ( 1 ) {
+
+ @try {
+ a = 1;
+ }
+
+ @catch (Object *e) {
+ a = 2;
+ }
+
+ @finally {
+ a = 3;
+ }
+ }
+
+ [pool free];
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-8.mm b/gcc/testsuite/obj-c++.dg/try-catch-8.mm
new file mode 100644
index 00000000000..fed9f362b51
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-8.mm
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file mainline */
+/* Test for graceful compilation of @synchronized statements. */
+/* { dg-do compile } */
+/* { dg-options "-fobjc-exceptions" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object
+- (id) meth;
+@end
+
+@implementation Derived
+- (id) meth {
+ return self;
+}
+
+static Derived* rewriteDict(void) {
+ static Derived *sDict = 0;
+ if (sDict == 0) {
+ @synchronized ([Derived class]) {
+ if (sDict == 0)
+ sDict = [Derived new];
+ }
+ }
+ return sDict;
+}
+@end
+
diff --git a/gcc/testsuite/obj-c++.dg/try-catch-9.mm b/gcc/testsuite/obj-c++.dg/try-catch-9.mm
new file mode 100644
index 00000000000..d9720310f57
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/try-catch-9.mm
@@ -0,0 +1,65 @@
+/* APPLE LOCAL file mainline */
+/* Check that local variables that get modified inside the @try
+ block survive until the @catch block is reached. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fobjc-exceptions -O2" } */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+int gi1 = 9, gi2 = 19;
+float gf1 = 9.0, gf2 = 19.0;
+id obj2 = nil;
+
+void foo (int arg1, float *arg2)
+{
+ int *pi = &gi1;
+ float *pf = &gf1;
+ id obj1 = nil;
+ int local1 = 45, local2 = 47;
+ float local3 = 3.0, local4 = 4.0;
+ register int local5 = 15;
+ static float local6 = 16.0;
+
+ @try {
+ local1 = 123;
+ local2 = 345;
+ local3 = 5.0;
+ local4 = 6.0;
+ local5 = 17;
+ local6 = 18.0;
+ pi = &gi2;
+ pf = &gf2;
+ obj2 = obj1 = [Object new];
+ arg1 = 17;
+ arg2 = &gf2;
+
+ @throw [Object new];
+ }
+ @catch (Object *obj) {
+ if(local1 != 123 || local2 != 345 || local3 != 5.0 || local4 != 6.0 || local5 != 17 || local6 != 18.0) {
+ printf("Abort 1\n");
+ abort();
+ }
+ if(pi != &gi2 || pf != &gf2) {
+ printf("Abort 2\n");
+ abort();
+ }
+ if(!obj1 || obj1 != obj2) {
+ printf("Abort 3\n");
+ abort();
+ }
+ if(arg1 != 17 || arg2 != &gf2) {
+ printf("Abort 4\n");
+ abort();
+ }
+ }
+}
+
+int main(void) {
+ foo(15, &gf1);
+ return 0;
+}
diff --git a/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm b/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm
new file mode 100644
index 00000000000..608084c1504
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file mainline */
+/* Typedefs of ObjC types should work without any bogus warnings. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+typedef Object MyObject;
+
+int main (int argc, const char * argv[])
+{
+ Object* a = nil;
+ MyObject* b = a;
+ Object* c = b;
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/obj-c++.dg/va-meth-1.mm b/gcc/testsuite/obj-c++.dg/va-meth-1.mm
new file mode 100644
index 00000000000..66ecbe3e91a
--- /dev/null
+++ b/gcc/testsuite/obj-c++.dg/va-meth-1.mm
@@ -0,0 +1,74 @@
+/* APPLE LOCAL file mainline */
+/* Based on objc/execute/va_method.m, by Nicola Pero */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+/* Test methods with "C-style" trailing arguments, with or without ellipsis. */
+
+@interface MathClass: Object
+/* sum positive numbers; -1 ends the list */
++ (int) sum: (int) firstNumber, int secondNumber, ...;
++ (int) prod: (int) firstNumber, int secondNumber, int thirdNumber;
++ (int) minimum: (int) firstNumber, ...;
+@end
+
+extern "C" int some_func(id self, SEL _cmd, int firstN, int secondN, int thirdN, ...) {
+ return firstN + secondN + thirdN;
+}
+
+@implementation MathClass
++ (int) sum: (int) firstNumber, int secondNumber, ...
+{
+ va_list ap;
+ int sum = 0, number = 0;
+
+ va_start (ap, secondNumber);
+ number = firstNumber + secondNumber;
+
+ while (number >= 0)
+ {
+ sum += number;
+ number = va_arg (ap, int);
+ }
+
+ va_end (ap);
+
+ return sum;
+}
++ (int) prod: (int) firstNumber, int secondNumber, int thirdNumber {
+ return firstNumber * secondNumber * thirdNumber;
+}
++ (int) minimum: (int) firstNumber, ...
+{
+ va_list ap;
+ int minimum = 999, number = 0;
+
+ va_start (ap, firstNumber);
+ number = firstNumber;
+
+ while (number >= 0)
+ {
+ minimum = (minimum < number ? minimum: number);
+ number = va_arg (ap, int);
+ }
+
+ va_end (ap);
+
+ return minimum;
+}
+@end
+
+int main (void)
+{
+ if ([MathClass sum: 1, 2, 3, 4, 5, -1] != 15)
+ abort ();
+ if ([MathClass prod: 4, 5, 6] != 120)
+ abort ();
+ if ([MathClass minimum: 17, 9, 133, 84, 35, -1] != 9)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/bitfield-5.m b/gcc/testsuite/objc.dg/bitfield-5.m
new file mode 100644
index 00000000000..5cc545ce72f
--- /dev/null
+++ b/gcc/testsuite/objc.dg/bitfield-5.m
@@ -0,0 +1,114 @@
+/* APPLE LOCAL file mainline */
+/* Check ObjC class layout follows the ABI (informally)
+ set in the past. ObjC structs must be laid out as if
+ all ivars, including those inherited from superclasses,
+ were defined at once (i.e., any padding introduced for
+ superclasses should be removed). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
+/* { dg-options "-Wpadded" } */
+/* { dg-do run } */
+
+#include <objc/objc.h>
+#include <objc/Object.h>
+#include <stdlib.h>
+
+#define CHECK_IF(expr) if(!(expr)) abort()
+
+enum Enum { zero, one, two, three, four };
+
+@interface Base: Object {
+@public
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+} /* { dg-warning "padding struct size to alignment boundary" } */
+@end
+
+struct Base_0 {
+ Class isa;
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+}; /* { dg-warning "padding struct size to alignment boundary" } */
+
+@interface Derived: Base {
+@public
+ signed e: 5;
+ unsigned f: 4;
+ enum Enum g: 3;
+} /* { dg-warning "padding struct size to alignment boundary" } */
+@end
+
+struct Derived_0 {
+ Class isa;
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+ signed e: 5;
+ int f: 4;
+ enum Enum g: 3;
+}; /* { dg-warning "padding struct size to alignment boundary" } */
+
+@interface Leaf: Derived {
+@public
+ signed h: 2;
+} /* { dg-warning "padding struct size to alignment boundary" } */
+@end
+
+struct Leaf_0 {
+ Class isa;
+ unsigned a: 2;
+ int b: 3;
+ enum Enum c: 4;
+ unsigned d: 5;
+ signed e: 5;
+ unsigned f: 4;
+ enum Enum g: 3;
+ signed h: 2;
+}; /* { dg-warning "padding struct size to alignment boundary" } */
+
+/* Note that the semicolon after @defs(...) is optional. */
+
+typedef struct { @defs(Base) } Base_t; /* { dg-warning "padding struct size to alignment boundary" } */
+typedef struct { @defs(Derived); } Derived_t; /* { dg-warning "padding struct size to alignment boundary" } */
+typedef struct { @defs(Leaf); } Leaf_t; /* { dg-warning "padding struct size to alignment boundary" } */
+
+int main(void)
+{
+ struct Leaf_0 l_0;
+ Leaf *l = (Leaf *)&l_0;
+ Leaf_t *l_t = (Leaf_t *)&l_0;
+
+ CHECK_IF(sizeof(Base_t) == sizeof(Base));
+ CHECK_IF(sizeof(Derived_t) == sizeof(Derived));
+ CHECK_IF(sizeof(Leaf_t) == sizeof(Leaf));
+
+ CHECK_IF(sizeof(struct Base_0) == sizeof(Base));
+ CHECK_IF(sizeof(struct Derived_0) == sizeof(Derived));
+ CHECK_IF(sizeof(struct Leaf_0) == sizeof(Leaf));
+
+ l_0.isa = (Class)0;
+ l_0.a = 3;
+ l_0.b = 0;
+ l_0.c = three;
+ l_0.d = 31;
+ l_0.e = 0;
+ l_0.f = 15;
+ l_0.g = zero;
+ l_0.h = -2;
+
+ CHECK_IF(!l_t->isa);
+ CHECK_IF(l->a == 3 && l_t->a == 3);
+ CHECK_IF(!l->b && !l_t->b);
+ CHECK_IF(l->c == three && l_t->c == three);
+ CHECK_IF(l->d == 31 && l_t->d == 31);
+ CHECK_IF(!l->e && !l_t->e);
+ CHECK_IF(l->f == 15 && l_t->f == 15);
+ CHECK_IF(l->g == zero && l_t->g == zero);
+ CHECK_IF(l->h == -2 && l_t->h == -2);
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/class-protocol-1.m b/gcc/testsuite/objc.dg/class-protocol-1.m
index ffa2435f5c0..7eb55024c48 100644
--- a/gcc/testsuite/objc.dg/class-protocol-1.m
+++ b/gcc/testsuite/objc.dg/class-protocol-1.m
@@ -313,9 +313,11 @@ testComptypes(void)
{ /* id <protocol>, SomeClass * */
mc1 == objP1;
objP1 == mc1;
-
- mc1 == objP2; /* { dg-warning "does not implement" } */
- objP2 == mc1; /* { dg-warning "does not implement" } */
+
+ /* APPLE LOCAL begin mainline */
+ mc1 == objP2; /* { dg-warning "lacks a cast" } */
+ objP2 == mc1; /* { dg-warning "lacks a cast" } */
+ /* APPLE LOCAL end mainline */
}
{ /* id <protocol>, id */
obj == objP1;
@@ -371,10 +373,12 @@ testComptypes(void)
objP5 = objP1; /* { dg-warning "does not conform" } */
}
{ /* id <protocol>, SomeClass * */
- mc1 = objP1; /* { dg-warning "incompatible" } */ /* FIXME: should be "" */
+ /* APPLE LOCAL mainline */
+ mc1 = objP1;
objP1 = mc1;
- mc1 = objP2; /* { dg-warning "incompatible" } */ /* FIXME: should be "does not implement" */
+ /* APPLE LOCAL mainline */
+ mc1 = objP2; /* { dg-warning "does not conform" } */
objP2 = mc1; /* { dg-warning "does not implement" } */
}
{ /* id <protocol>, id */
@@ -382,8 +386,10 @@ testComptypes(void)
objP1 = obj;
}
{ /* id <protocol>, Class */
- cls = objP1; /* { dg-warning "incompatible" } */
- objP1 = cls; /* { dg-warning "incompatible" } */
+ /* APPLE LOCAL begin mainline */
+ cls = objP1; /* { dg-warning "distinct Objective\\-C type" } */
+ objP1 = cls; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL end mainline */
}
{ /* id <protocol>, non-ObjC */
num = objP1; /* { dg-warning "makes integer" } */
@@ -401,11 +407,13 @@ testComptypes(void)
}
{ /* Class <protocol>, SomeClass * */
/* These combinations should always elicit a warning. */
- mc1 = clsP1; /* { dg-warning "incompatible" } */
- clsP1 = mc1; /* { dg-warning "incompatible" } */
+ /* APPLE LOCAL begin mainline */
+ mc1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
+ clsP1 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
- mc1 = clsP2; /* { dg-warning "incompatible" } */
- clsP2 = mc1; /* { dg-warning "incompatible" } */
+ mc1 = clsP2; /* { dg-warning "distinct Objective\\-C type" } */
+ clsP2 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL end mainline */
}
{ /* Class <protocol>, id */
obj = clsP1;
@@ -423,8 +431,10 @@ testComptypes(void)
clsP1 = ptr;
}
{ /* Class <protocol>, id <protocol> */
- clsP1 = objP1; /* { dg-warning "incompatible" } */
- objP1 = clsP1; /* { dg-warning "incompatible" } */
+ /* APPLE LOCAL begin mainline */
+ clsP1 = objP1; /* { dg-warning "distinct Objective\\-C type" } */
+ objP1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL end mainline */
}
}
diff --git a/gcc/testsuite/objc.dg/comp-types-1.m b/gcc/testsuite/objc.dg/comp-types-1.m
index 310b22634c0..92554e74490 100644
--- a/gcc/testsuite/objc.dg/comp-types-1.m
+++ b/gcc/testsuite/objc.dg/comp-types-1.m
@@ -32,9 +32,11 @@ int main()
/* Assigning to a 'MyClass *' variable should always generate a
warning, unless done from an 'id'. */
obj_c = obj; /* Ok */
- obj_c = obj_p; /* { dg-warning "incompatible pointer type" } */
- obj_c = obj_cp; /* { dg-warning "incompatible pointer type" } */
- obj_c = obj_C; /* { dg-warning "incompatible pointer type" } */
+ /* APPLE LOCAL begin mainline */
+ obj_c = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_c = obj_cp; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_c = obj_C; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL end mainline */
/* Assigning to an 'id<MyProtocol>' variable should generate a
warning if done from a 'MyClass *' (which doesn't implement
@@ -43,14 +45,20 @@ int main()
obj_p = obj; /* Ok */
obj_p = obj_c; /* { dg-warning "does not implement" } */
obj_p = obj_cp; /* Ok */
- obj_p = obj_C; /* { dg-warning "incompatible pointer type" } */
+ /* APPLE LOCAL mainline */
+ obj_p = obj_C; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL begin mainline */
/* Assigning to a 'MyOtherClass *' variable should always generate
- a warning, unless done from an 'id' */
+ a warning, unless done from an 'id' or an 'id<MyProtocol>' (since
+ MyOtherClass implements MyProtocol). */
+ /* APPLE LOCAL end mainline */
obj_cp = obj; /* Ok */
- obj_cp = obj_c; /* { dg-warning "incompatible pointer type" } */
- obj_cp = obj_p; /* { dg-warning "incompatible pointer type" } */
- obj_cp = obj_C; /* { dg-warning "incompatible pointer type" } */
+ /* APPLE LOCAL begin mainline */
+ obj_cp = obj_c; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_cp = obj_p; /* Ok */
+ obj_cp = obj_C; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL end mainline */
/* Any comparison involving an 'id' must be without warnings. */
if (obj == obj_p) ; /* Ok */ /*Bogus warning here in 2.95.4*/
@@ -64,8 +72,10 @@ int main()
/* Any comparison between 'MyClass *' and anything which is not an 'id'
must generate a warning. */
- if (obj_c == obj_p) ; /* { dg-warning "does not implement" } */
- if (obj_p == obj_c) ; /* { dg-warning "does not implement" } */
+ /* APPLE LOCAL begin mainline */
+ if (obj_c == obj_p) ; /* { dg-warning "lacks a cast" } */
+ if (obj_p == obj_c) ; /* { dg-warning "lacks a cast" } */
+ /* APPLE LOCAL end mainline */
if (obj_c == obj_cp) ; /* { dg-warning "lacks a cast" } */
if (obj_cp == obj_c) ; /* { dg-warning "lacks a cast" } */
if (obj_c == obj_C) ; /* { dg-warning "lacks a cast" } */
diff --git a/gcc/testsuite/objc.dg/comp-types-10.m b/gcc/testsuite/objc.dg/comp-types-10.m
new file mode 100644
index 00000000000..9e7d31d49e7
--- /dev/null
+++ b/gcc/testsuite/objc.dg/comp-types-10.m
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+
+
+#include <objc/Object.h>
+
+@protocol Foo
+- (id)meth1;
+- (id)meth2:(int)arg;
+@end
+
+@interface Derived1: Object
+@end
+
+@interface Derived2: Object
++ (Derived1 *)new;
+@end
+
+id<Foo> func(void) {
+ Object *o = [Object new];
+ return o; /* { dg-warning "class .Object. does not implement the .Foo. protocol" } */
+}
+
+@implementation Derived2
++ (Derived1 *)new {
+ Derived2 *o = [super new];
+ return o; /* { dg-warning "distinct Objective\\-C type in return" } */
+}
+@end
+
diff --git a/gcc/testsuite/objc.dg/comp-types-11.m b/gcc/testsuite/objc.dg/comp-types-11.m
new file mode 100644
index 00000000000..3ef2ad3c5cc
--- /dev/null
+++ b/gcc/testsuite/objc.dg/comp-types-11.m
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+#include <objc/Object.h>
+
+@interface Derived: Object
+@end
+
+extern Object* foo(void);
+static Derived *test(void)
+{
+ Derived *m = foo(); /* { dg-warning "initialization from distinct Objective\\-C type" } */
+
+ return m;
+}
+
diff --git a/gcc/testsuite/objc.dg/comp-types-5.m b/gcc/testsuite/objc.dg/comp-types-5.m
index f4d3dfc94e9..fa41c4c8dae 100644
--- a/gcc/testsuite/objc.dg/comp-types-5.m
+++ b/gcc/testsuite/objc.dg/comp-types-5.m
@@ -19,8 +19,10 @@ int main()
obj_cp = obj; /* Ok */
obj = obj_cp; /* Ok */
- obj_cp = obj_p; /* { dg-warning "incompatible pointer type" } */
- obj_p = obj_cp; /* Ok */ /* Spurious 2.95.4 warning here. */
+ /* APPLE LOCAL begin mainline */
+ obj_cp = obj_p; /* Ok */
+ obj_p = obj_cp; /* Ok */
+ /* APPLE LOCAL end mainline */
if (obj_cp == obj) ; /* Ok */
if (obj == obj_cp) ; /* Ok */
diff --git a/gcc/testsuite/objc.dg/comp-types-6.m b/gcc/testsuite/objc.dg/comp-types-6.m
index 9403b532fd3..8881e22dc11 100644
--- a/gcc/testsuite/objc.dg/comp-types-6.m
+++ b/gcc/testsuite/objc.dg/comp-types-6.m
@@ -23,8 +23,10 @@ int main()
MyClass *obj_cp = nil;
MyOtherClass *obj_cp2 = nil;
- obj_cp = obj_p; /* { dg-warning "incompatible pointer type" } */
- obj_cp2 = obj_p; /* { dg-warning "incompatible pointer type" } */
+ /* APPLE LOCAL begin mainline */
+ obj_cp = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+ obj_cp2 = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+ /* APPLE LOCAL end mainline */
obj_p = obj_cp; /* Ok */
obj_p = obj_cp2; /* Ok */
diff --git a/gcc/testsuite/objc.dg/comp-types-8.m b/gcc/testsuite/objc.dg/comp-types-8.m
new file mode 100644
index 00000000000..9c9b3dfe70f
--- /dev/null
+++ b/gcc/testsuite/objc.dg/comp-types-8.m
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+/* Another gimplifier ICE... */
+
+#include <objc/Object.h>
+
+@interface MyView: Object {
+ int _frame;
+}
+- (void)_finalize;
+@end
+
+@interface MyViewTemplate: MyView {
+ void *_className;
+}
+- (id)createRealObject;
+@end
+
+@implementation MyViewTemplate
+- (id)createRealObject {
+ id realObj;
+ *(MyView *)realObj = *(MyView *)self;
+ return realObj;
+}
+@end
diff --git a/gcc/testsuite/objc.dg/comp-types-9.m b/gcc/testsuite/objc.dg/comp-types-9.m
new file mode 100644
index 00000000000..6ca9a45721b
--- /dev/null
+++ b/gcc/testsuite/objc.dg/comp-types-9.m
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file mainline */
+/* Yet another mysterious gimplifier crasher. */
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+@class NSString;
+@protocol NSObject
+@end
+@interface NSObject <NSObject> {
+}
+@end
+void __setRetained(id *ivar, id value) {
+ *ivar = value;
+}
+static NSString *_logProcessPrefix = 0;
+@implementation NSObject (ScopeAdditions)
++ (void)setObjectLogProcessPrefix:(NSString *)processPrefix {
+ __setRetained(&_logProcessPrefix, processPrefix);
+}
+@end
diff --git a/gcc/testsuite/objc.dg/const-cfstring-1.m b/gcc/testsuite/objc.dg/const-cfstring-1.m
new file mode 100644
index 00000000000..8645022b6ef
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-cfstring-1.m
@@ -0,0 +1,57 @@
+/* APPLE LOCAL file constant cfstrings */
+/* Test the -fconstant-cfstrings option for constructing
+ compile-time immutable CFStrings, and their interoperation
+ with both Cocoa and CoreFoundation. This will only work
+ on MacOS X 10.1.2 and later. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do run { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings -framework Cocoa" } */
+
+#import <Foundation/NSString.h>
+#import <CoreFoundation/CFString.h>
+#include <stdlib.h>
+
+void printOut(NSString *str) {
+ NSLog(@"The value of str is: %@", str);
+}
+
+CFStringRef s0a = CFSTR("Compile-time string literal");
+CFStringRef s0b = CFSTR("Compile-time string literal");
+
+void checkNSRange(NSRange r) {
+ if (r.location != 6 || r.length != 5) {
+ printOut(@"Range check failed");
+ abort();
+ }
+}
+
+void checkCFRange(CFRange r) {
+ if (r.location != 6 || r.length != 5) {
+ printOut(@"Range check failed");
+ abort();
+ }
+}
+
+int main(void) {
+ const NSString *s1 = @"Compile-time string literal";
+ CFStringRef s2 = CFSTR("Compile-time string literal");
+
+ checkNSRange([@"Hello World" rangeOfString:@"World"]);
+ checkNSRange([(id)CFSTR("Hello World") rangeOfString:@"World"]);
+ checkNSRange([@"Hello World" rangeOfString:(id)CFSTR("World")]);
+ checkNSRange([(id)CFSTR("Hello World") rangeOfString:(id)CFSTR("World")]);
+
+ checkCFRange(CFStringFind((CFStringRef)@"Hello World", (CFStringRef)@"World", 0));
+ checkCFRange(CFStringFind(CFSTR("Hello World"), (CFStringRef)@"World", 0));
+ checkCFRange(CFStringFind((CFStringRef)@"Hello World", CFSTR("World"), 0));
+ checkCFRange(CFStringFind(CFSTR("Hello World"), CFSTR("World"), 0));
+
+ /* Check for string uniquing. */
+ if (s0a != s0b || s0a != s2 || s1 != (id)s2) {
+ NSLog(@"String uniquing failed");
+ abort ();
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/const-cfstring-2.m b/gcc/testsuite/objc.dg/const-cfstring-2.m
new file mode 100644
index 00000000000..57b8d95a7d4
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-cfstring-2.m
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file constant CFStrings */
+/* Test the -Wnonportable-cfstrings option, which should give
+ warnings if non-ASCII characters are embedded in constant
+ CFStrings. This will only work on MacOS X 10.2 and later. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fconstant-cfstrings -Wnonportable-cfstrings" } */
+
+#import <Foundation/NSString.h>
+#import <CoreFoundation/CFString.h>
+
+#ifndef __CONSTANT_CFSTRINGS__
+#error The -fconstant-cfstrings option is not functioning properly
+#endif
+
+void foo(void) {
+ NSString *s1 = @"Compile-time string literal";
+ CFStringRef s2 = CFSTR("Compile-time string literal");
+ NSString *s3 = @"Non-ASCII literal - \222"; /* { dg-warning "non-ASCII character in CFString literal" } */
+ CFStringRef s4 = CFSTR("\222 - Non-ASCII literal"); /* { dg-warning "non-ASCII character in CFString literal" } */
+ CFStringRef s5 = CFSTR("Non-ASCII (\222) literal"); /* { dg-warning "non-ASCII character in CFString literal" } */
+ NSString *s6 = @"\0Embedded NUL"; /* { dg-warning "embedded NUL in CFString literal" } */
+ CFStringRef s7 = CFSTR("Embedded \0NUL"); /* { dg-warning "embedded NUL in CFString literal" } */
+ CFStringRef s8 = CFSTR("Embedded NUL\0"); /* { dg-warning "embedded NUL in CFString literal" } */
+}
diff --git a/gcc/testsuite/objc.dg/const-cfstring-3.m b/gcc/testsuite/objc.dg/const-cfstring-3.m
new file mode 100644
index 00000000000..82f361cec6f
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-cfstring-3.m
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file constant strings */
+/* Test for assigning compile-time constant-string objects to static variables. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fconstant-cfstrings -framework Foundation" } */
+/* { dg-do run { target *-*-darwin* } } */
+
+#include <stdlib.h>
+
+typedef const struct __CFString * CFStringRef;
+static CFStringRef appKey = (CFStringRef) @"com.apple.soundpref";
+
+static int CFPreferencesSynchronize (CFStringRef ref) {
+ return ref == appKey;
+}
+
+static void PrefsSynchronize()
+{
+ if(!CFPreferencesSynchronize(appKey))
+ abort();
+}
+
+int main(void) {
+ PrefsSynchronize();
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/const-cfstring-4.m b/gcc/testsuite/objc.dg/const-cfstring-4.m
new file mode 100644
index 00000000000..9078bfa2313
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-cfstring-4.m
@@ -0,0 +1,12 @@
+/* APPLE LOCAL file constant strings */
+/* Test if constant CFStrings get placed in the correct section. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fconstant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+typedef const struct __CFString * CFStringRef;
+static CFStringRef appKey = (CFStringRef) @"com.apple.soundpref";
+
+/* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */
+/* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\n\t.data" } } */
diff --git a/gcc/testsuite/objc.dg/const-cfstring-5.m b/gcc/testsuite/objc.dg/const-cfstring-5.m
new file mode 100644
index 00000000000..1274d5d0889
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-cfstring-5.m
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file 4154928 */
+/* Test if constant CFStrings may be passed back as ObjC strings. */
+/* Author: Ziemowit Laski */
+
+/* { dg-options "-fconstant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
++ (Foo *)description;
+@end
+
+@interface Bar: Object
++ (Foo *) getString: (int) which;
+@end
+
+@implementation Bar
++ (Foo *) getString: (int) which {
+ return which? [Foo description]: @"Hello";
+}
+@end
diff --git a/gcc/testsuite/objc.dg/const-str-10.m b/gcc/testsuite/objc.dg/const-str-10.m
new file mode 100644
index 00000000000..6e6d86a8860
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-str-10.m
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file 4149909 */
+/* Test if ObjC constant string layout is checked properly, regardless of how
+ constant string classes get derived. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fnext-runtime -fno-constant-cfstrings" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface NSString: Object
+@end
+
+@interface NSSimpleCString : NSString {
+@protected
+ char *bytes;
+ unsigned int numBytes;
+}
+@end
+
+@interface NSConstantString : NSSimpleCString
+@end
+
+extern struct objc_class _NSConstantStringClassReference;
+
+const NSConstantString *appKey = @"MyApp";
+
+/* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff --git a/gcc/testsuite/objc.dg/const-str-11.m b/gcc/testsuite/objc.dg/const-str-11.m
new file mode 100644
index 00000000000..de3107cb33d
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-str-11.m
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file 4149909 */
+/* Test if ObjC constant string layout is checked properly, regardless of how
+ constant string classes get derived. */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-options "-fnext-runtime -fno-constant-cfstrings -fconstant-string-class=XStr" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface XString: Object {
+@protected
+ char *bytes;
+}
+@end
+
+@interface XStr : XString {
+@public
+ unsigned int len;
+}
+@end
+
+extern struct objc_class _XStrClassReference;
+
+const XStr *appKey = @"MyApp";
+
+/* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff --git a/gcc/testsuite/objc.dg/const-str-12.m b/gcc/testsuite/objc.dg/const-str-12.m
new file mode 100644
index 00000000000..134c99b3c37
--- /dev/null
+++ b/gcc/testsuite/objc.dg/const-str-12.m
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file 4154928 */
+/* Test if ObjC types play nice in conditional expressions. */
+/* Author: Ziemowit Laski */
+
+/* { dg-options "-fno-constant-cfstrings -fconstant-string-class=Foo" } */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object {
+ char *cString;
+ unsigned int len;
+}
++ (id)description;
+@end
+
+@interface Bar: Object
++ (Foo *) getString: (int) which;
+@end
+
+struct objc_class _FooClassReference;
+
+@implementation Bar
++ (Foo *) getString: (int) which {
+ return which? [Foo description]: @"Hello";
+}
+@end
diff --git a/gcc/testsuite/objc.dg/dg.exp b/gcc/testsuite/objc.dg/dg.exp
index ebf952967c7..7b3eba41d98 100644
--- a/gcc/testsuite/objc.dg/dg.exp
+++ b/gcc/testsuite/objc.dg/dg.exp
@@ -28,7 +28,8 @@ if ![info exists DEFAULT_CFLAGS] then {
dg-init
# Main loop.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[m\]]] \
+# APPLE LOCAL -ObjC
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[mc\]]] \
"" $DEFAULT_CFLAGS
# All done.
diff --git a/gcc/testsuite/objc.dg/encode-1.m b/gcc/testsuite/objc.dg/encode-1.m
index 868c3254753..126e5d010f4 100644
--- a/gcc/testsuite/objc.dg/encode-1.m
+++ b/gcc/testsuite/objc.dg/encode-1.m
@@ -1,9 +1,9 @@
+/* APPLE LOCAL file bool encoding */
/* Test if the Objective-C @encode machinery distinguishes between
- 'BOOL *' (which should be encoded as a pointer to BOOL) and 'char *' (which
- should be encoded as '*'). This is somewhat tricky wrt the NeXT runtime,
- where we have 'typedef char BOOL'. */
+ 'BOOL *' (which should be encoded as '^c') and 'char *' (which
+ should be encoded as '*'). */
/* Contributed by Ziemowit Laski <zlaski@apple.com>. */
-/* { dg-options "-fnext-runtime -lobjc" } */
+/* { dg-options "-lobjc" } */
/* { dg-do run } */
#include <string.h>
@@ -12,10 +12,9 @@
int main(void) {
const char *BOOL_ptr = @encode(BOOL *);
- const char *BOOL_ = @encode(BOOL);
const char *char_ptr = @encode(char *);
-
- if(*BOOL_ptr != '^' || strcmp(BOOL_ptr + 1, BOOL_))
+
+ if(strcmp(BOOL_ptr, "^c"))
abort();
if(strcmp(char_ptr, "*"))
diff --git a/gcc/testsuite/objc.dg/encode-6.m b/gcc/testsuite/objc.dg/encode-6.m
new file mode 100644
index 00000000000..de951375f30
--- /dev/null
+++ b/gcc/testsuite/objc.dg/encode-6.m
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file mainline */
+/* Test for graceful encoding of const-qualified fields and parameters. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile } */
+
+struct Cxx {
+ const struct Cxx *next;
+};
+
+@interface ObjC {
+ const struct Cxx *obj;
+}
+- (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d;
+@end
+
+@implementation ObjC
+- (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d {
+ obj = d;
+ return self;
+}
+@end
+
+/* { dg-final { scan-assembler "@\[0-9\]+@0:\[0-9\]+r\\^{Cxx=\\^r{Cxx}}\[0-9\]+\\^r{Cxx}" } } */
diff --git a/gcc/testsuite/objc.dg/extra-semi.m b/gcc/testsuite/objc.dg/extra-semi.m
new file mode 100644
index 00000000000..2f60f801733
--- /dev/null
+++ b/gcc/testsuite/objc.dg/extra-semi.m
@@ -0,0 +1,11 @@
+/* APPLE LOCAL file mainline */
+/* Allow extra semicolons in between method declarations,
+ for old times' sake. */
+
+/* { dg-do compile } */
+
+@interface Foo
+ -(Foo *) expiration;
+ -(void) setExpiration:(Foo *) date;;
+ -(int) getVersion;
+@end
diff --git a/gcc/testsuite/objc.dg/fix-and-continue-1.m b/gcc/testsuite/objc.dg/fix-and-continue-1.m
new file mode 100644
index 00000000000..7bfc8a13776
--- /dev/null
+++ b/gcc/testsuite/objc.dg/fix-and-continue-1.m
@@ -0,0 +1,91 @@
+/* APPLE LOCAL file mainline */
+/* Fix and continue should not interfere with computation of
+ local (static) function addresses. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do run { target *-*-darwin* } } */
+/* { dg-options "-mfix-and-continue" } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+@class MyTarget, MySet;
+
+int global_value = 0;
+
+@interface MyTargetBuildContext : Object
+{
+ MyTarget * _target;
+ unsigned _cacheInvalDisableCount;
+ BOOL _cacheInvalidationNeeded;
+ unsigned short _isCreatingDependencies:1;
+ unsigned short _isCreatingHeadermap:1;
+ unsigned short _haveAddedIdleTimeInvoc:1;
+ BOOL _hasSetUpBuildSettings;
+}
+- (id)initWithTarget:(MyTarget *)target;
+- (MyTarget *)target;
+@end
+
+@interface MyTargetBuildContext (PrivateMethods)
++ (MySet *)_headerFileExtensions;
+@end
+
+@interface MyCountedSet: Object {
+@public
+ int cardinality;
+}
+- (id)init;
+- (id)sortedArrayUsingFunction:(int (*)(id, id, void *))comparator with:(int)value;
+@end
+
+@implementation MyCountedSet
+- (id)init {
+ cardinality = 5;
+ global_value = 17;
+ return self;
+}
+- (id)sortedArrayUsingFunction:(int (*)(id, id, void *))comparator with:(int)value {
+ if(value == comparator(self, self, self))
+ return self;
+ return nil;
+}
+@end
+
+@implementation MyTargetBuildContext : Object
+- (id)initWithTarget:(MyTarget *)target
+{
+ self = [super init];
+ return self;
+}
+- (MyTarget *)target
+{
+ return _target;
+}
+
+static int _MyCompareObjectsByDecreasingSetCount (id object1, id object2, MyCountedSet * countedSet)
+{
+ global_value = 5;
+ return countedSet->cardinality;
+}
++ (MySet *)_headerFileExtensions
+{
+ MySet * _headerFileExtensions = 0;
+ return _headerFileExtensions;
+}
+- (void)_recomputeHeadermap
+{
+ MyCountedSet *set = [MyCountedSet new];
+ int (*functionPointer)(id, id, void *) = (int (*)(id, id, void *))_MyCompareObjectsByDecreasingSetCount;
+ id result = [set sortedArrayUsingFunction:functionPointer with:5];
+}
+@end
+
+int main(void) {
+ MyTargetBuildContext *ctx = [MyTargetBuildContext new];
+ [ctx _recomputeHeadermap];
+ if (global_value != 5)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/fix-and-continue-2.m b/gcc/testsuite/objc.dg/fix-and-continue-2.m
new file mode 100644
index 00000000000..e5db5d5aa35
--- /dev/null
+++ b/gcc/testsuite/objc.dg/fix-and-continue-2.m
@@ -0,0 +1,25 @@
+/* APPLE LOCAL file mainline */
+/* Static variables, even if local, require indirect access through a stub
+ if -mfix-and-continue is enabled. */
+
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do assemble { target *-*-darwin* } } */
+/* { dg-options "-mfix-and-continue" } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object
++ (Object *)indexableFileTypes;
+@end
+
+@implementation Foo
++ (Object *)indexableFileTypes
+{
+ static Object *fileTypes = 0;
+ if(!fileTypes) {
+ fileTypes = [Object new];
+ }
+ return fileTypes;
+}
+@end
diff --git a/gcc/testsuite/objc.dg/isa-field-1.m b/gcc/testsuite/objc.dg/isa-field-1.m
new file mode 100644
index 00000000000..b4147040fa6
--- /dev/null
+++ b/gcc/testsuite/objc.dg/isa-field-1.m
@@ -0,0 +1,45 @@
+/* APPLE LOCAL file mainline */
+/* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects. */
+
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@interface Object (Test)
+- (Class) test1: (id)object;
+@end
+
+@interface Derived: Object
+- (Class) test2: (id)object;
+@end
+
+@implementation Object (Test)
+
+Class test1(id object) {
+ Class cls = object->isa;
+ return cls;
+}
+- (Class) test1: (id)object {
+ Class cls = object->isa;
+ return cls;
+}
+
+@end
+
+@implementation Derived
+
+Class test2(id object) {
+ Class cls = object->isa;
+ return cls;
+}
+- (Class) test2: (id)object {
+ Class cls = object->isa;
+ return cls;
+}
+
+@end
+
+Class test3(id object) {
+ Class cls = object->isa;
+ return cls;
+}
diff --git a/gcc/testsuite/objc.dg/layout-1.m b/gcc/testsuite/objc.dg/layout-1.m
new file mode 100644
index 00000000000..f84505f97ae
--- /dev/null
+++ b/gcc/testsuite/objc.dg/layout-1.m
@@ -0,0 +1,16 @@
+/* APPLE LOCAL file mainline */
+/* Ensure that we do not get bizarre warnings referring to
+ __attribute__((packed)) or some such. */
+/* { dg-do compile } */
+/* { dg-options "-Wpadded -Wpacked" } */
+
+#include <objc/Object.h>
+
+@interface Derived1: Object
+{ }
+@end
+
+@interface Derived2: Object
+- (id) foo;
+@end
+
diff --git a/gcc/testsuite/objc.dg/lookup-1.m b/gcc/testsuite/objc.dg/lookup-1.m
new file mode 100644
index 00000000000..0de22d99a26
--- /dev/null
+++ b/gcc/testsuite/objc.dg/lookup-1.m
@@ -0,0 +1,55 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+
+typedef struct MyWidget {
+ int a;
+} MyWidget;
+
+MyWidget gWidget = { 17 };
+
+@protocol MyProto
+- (MyWidget *)widget;
+@end
+
+@interface Foo: Object
+@end
+
+@interface Bar: Foo <MyProto>
+@end
+
+@interface Container: Object
++ (MyWidget *)elementForView:(Foo *)view;
+@end
+
+@implementation Foo
+@end
+
+@implementation Bar
+- (MyWidget *)widget {
+ return &gWidget;
+}
+@end
+
+@implementation Container
++ (MyWidget *)elementForView:(Foo *)view
+{
+ MyWidget *widget = nil;
+ if ([view conformsTo:@protocol(MyProto)]) {
+ widget = [(Foo <MyProto> *)view widget];
+ }
+ return widget;
+}
+@end
+
+int main(void) {
+ id view = [Bar new];
+ MyWidget *w = [Container elementForView: view];
+
+ if (!w || w->a != 17)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/lvalue-cast-1.m b/gcc/testsuite/objc.dg/lvalue-cast-1.m
new file mode 100644
index 00000000000..f2575efc631
--- /dev/null
+++ b/gcc/testsuite/objc.dg/lvalue-cast-1.m
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file non lvalue assign */
+/* { dg-do compile } */
+/* { dg-options "-fnon-lvalue-assign" } */
+
+#include <objc/Object.h>
+
+typedef struct _NSPoint {
+ float x;
+ float y;
+} NSPoint;
+typedef NSPoint *NSPointPointer;
+typedef NSPoint *NSPointArray;
+typedef struct _NSSize {
+ float width;
+ float height;
+} NSSize;
+typedef struct _NSRect {
+ NSPoint origin;
+ NSSize size;
+} NSRect;
+
+@interface NSLayoutManager: Object {
+ NSRect *_cachedRectArray;
+}
+- (void)_growCachedRectArrayToSize:(unsigned)newSize;
+@end
+
+@implementation NSLayoutManager
+- (void)_growCachedRectArrayToSize:(unsigned)newSize {
+ ( NSRect *)_cachedRectArray = nil; /* { dg-warning "target of assignment not really an lvalue" } */
+}
+@end
diff --git a/gcc/testsuite/objc.dg/method-15.m b/gcc/testsuite/objc.dg/method-15.m
new file mode 100644
index 00000000000..cc3e96778db
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-15.m
@@ -0,0 +1,57 @@
+/* APPLE LOCAL file mainline */
+/* Test if prior method lookup at method @implementation time is not
+ overly aggressive, leading to methods being found in other classes. */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@class NSString;
+
+@protocol NSMenuItem
++ (void)setUsesUserKeyEquivalents:(BOOL)flag;
++ (BOOL)usesUserKeyEquivalents;
+@end
+
+@interface NSMenuItem : Object <NSMenuItem> {
+ @private
+ id _menu;
+}
+@end
+
+@interface NSResponder : Object <NSMenuItem>
+{
+ id _nextResponder;
+}
+@end
+
+@interface Object(NSMenuValidation)
+- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
+@end
+
+@interface NSResponder (NSStandardKeyBindingMethods)
+- (void)insertText:(id)insertString;
+- (void)doCommandBySelector:(SEL)aSelector;
+@end
+
+@interface NSView : NSResponder
+{
+ id _superview;
+ id _subviews;
+}
+@end
+
+@interface SKTGraphicView : NSView {
+ @private
+ float _gridSpacing;
+}
+@end
+
+@implementation SKTGraphicView
+- (BOOL)validateMenuItem:(NSMenuItem *)item {
+ return (BOOL)1;
+}
+- (void)insertText:(NSString *)str {
+}
+@end
diff --git a/gcc/testsuite/objc.dg/method-16.m b/gcc/testsuite/objc.dg/method-16.m
new file mode 100644
index 00000000000..66f1fa69acc
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-16.m
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file mainline */
+/* Do not warn about "slightly" mismatched method signatures if
+ -Wstrict-selector-match is off. */
+/* { dg-do compile } */
+/* { dg-options "-Wno-strict-selector-match" } */
+
+#include <objc/objc.h>
+
+@interface Base
+- (id) meth1: (Base *)arg1;
+- (id) window;
+@end
+
+@interface Derived: Base
+- (id) meth1: (Derived *)arg1;
+- (Base *)window;
+@end
+
+void foo(void) {
+ id r;
+
+ [r meth1:r];
+ [r window];
+}
diff --git a/gcc/testsuite/objc.dg/method-17.m b/gcc/testsuite/objc.dg/method-17.m
new file mode 100644
index 00000000000..354ade66db7
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-17.m
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file mainline */
+/* Test for spurious "may or may not return a value" warnings. */
+
+/* { dg-do compile } */
+/* { dg-options "-Wextra" } */
+
+#include <objc/Object.h>
+
+@interface Foo: Object
+- (id) meth1;
+- (void) meth2;
+@end
+
+extern int bar;
+
+@implementation Foo
+- (id) meth1 {
+ if (bar)
+ return [Object new];
+ return;
+} /* { dg-warning "this function may return with or without a value" } */
+- (void) meth2 {
+ if (!bar)
+ return;
+ bar = 0;
+} /* { dg-bogus "this function may return with or without a value" } */
+@end
diff --git a/gcc/testsuite/objc.dg/method-18.m b/gcc/testsuite/objc.dg/method-18.m
new file mode 100644
index 00000000000..191206a896a
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-18.m
@@ -0,0 +1,30 @@
+/* APPLE LOCAL file mainline */
+/* Do not warn about "slightly" mismatched method signatures if
+ -Wstrict-selector-match is off. */
+/* { dg-do compile } */
+/* { dg-options "-Wno-strict-selector-match" } */
+
+#include <objc/objc.h>
+
+typedef enum { en1_1, en1_2 } En1;
+typedef enum { en2_1, en2_2 } En2;
+typedef struct { int a, b; } St1;
+typedef struct { unsigned a, b; } St2;
+
+@interface Base
+- (id) meth1: (En1)arg1;
+- (St1) window;
+@end
+
+@interface Derived: Base
+- (id) meth1: (En2)arg1;
+- (St2)window;
+@end
+
+void foo(void) {
+ id r;
+ En1 en;
+
+ [r meth1:en];
+ [r window];
+}
diff --git a/gcc/testsuite/objc.dg/method-19.m b/gcc/testsuite/objc.dg/method-19.m
new file mode 100644
index 00000000000..d30c36a1e9e
--- /dev/null
+++ b/gcc/testsuite/objc.dg/method-19.m
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file mainline */
+/* The following should NOT generate "may not respond to" warnings, since a forward-declared
+ @class (instance) should be treated like a 'Class') ('id'). */
+
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@class NotKnown;
+
+void foo(NotKnown *n) {
+ [NotKnown new];
+ [n nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+}
+
+/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/objc.dg/method-5.m b/gcc/testsuite/objc.dg/method-5.m
index 37677a1ccaa..17c3f9f3367 100644
--- a/gcc/testsuite/objc.dg/method-5.m
+++ b/gcc/testsuite/objc.dg/method-5.m
@@ -11,8 +11,10 @@ void foo(UnderSpecified *u, NotAClass *n) {
[n nonexistent_method]; /* { dg-warning "invalid receiver type" } */
/* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 11 } */
[NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
- [u nonexistent_method]; /* { dg-warning ".UnderSpecified. may not respond to .\\-nonexistent_method." } */
- [UnderSpecified nonexistent_method]; /* { dg-warning ".UnderSpecified. may not respond to .\\+nonexistent_method." } */
+ /* APPLE LOCAL begin mainline */
+ [u nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+ [UnderSpecified nonexistent_method]; /* { dg-warning "no .\\+nonexistent_method. method found" } */
+ /* APPLE LOCAL end mainline */
}
/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/objc.dg/method-6.m b/gcc/testsuite/objc.dg/method-6.m
index a4c1323fac8..07f46382086 100644
--- a/gcc/testsuite/objc.dg/method-6.m
+++ b/gcc/testsuite/objc.dg/method-6.m
@@ -1,5 +1,5 @@
-/* Check that sending messages to variables of type 'Class' does not involve instance methods,
- unless they reside in root classes. */
+/* APPLE LOCAL file mainline */
+/* Check that sending messages to variables of type 'Class' does not involve instance methods, unless they reside in root classes. */
/* Author: Ziemowit Laski <zlaski@apple.com> */
/* { dg-do compile } */
@@ -29,3 +29,5 @@ void foo(void) {
[Class port]; /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
}
+
+/* { dg-options "-Wstrict-selector-match" } */
diff --git a/gcc/testsuite/objc.dg/method-7.m b/gcc/testsuite/objc.dg/method-7.m
index f84759c2169..b714f8eb6f7 100644
--- a/gcc/testsuite/objc.dg/method-7.m
+++ b/gcc/testsuite/objc.dg/method-7.m
@@ -1,5 +1,5 @@
-/* Check if finding multiple signatures for a method is handled gracefully. */
-/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* APPLE LOCAL file mainline */
+/* Check if finding multiple signatures for a method is handled gracefully. Author: Ziemowit Laski <zlaski@apple.com> */
/* { dg-do compile } */
#include <objc/Object.h>
@@ -25,3 +25,5 @@ id foo(void) {
return obj;
}
+
+/* { dg-options "-Wstrict-selector-match" } */
diff --git a/gcc/testsuite/objc.dg/method-9.m b/gcc/testsuite/objc.dg/method-9.m
index 3921663ec8f..c72087f1021 100644
--- a/gcc/testsuite/objc.dg/method-9.m
+++ b/gcc/testsuite/objc.dg/method-9.m
@@ -1,5 +1,5 @@
-/* Check if finding multiple signatures for a method is handled gracefully
- when method lookup succeeds (see also method-7.m). */
+/* APPLE LOCAL file mainline */
+/* Check if finding multiple signatures for a method is handled gracefully when method lookup succeeds (see also method-7.m). */
/* Contributed by Ziemowit Laski <zlaski@apple.com> */
/* { dg-do compile } */
@@ -37,7 +37,11 @@
/* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
/* The following warning is a consequence of picking the "wrong" method signature. */
- /* { dg-warning "passing argument 1 of .initWithData:. from incompatible pointer type" "" { target *-*-* } 33 } */
+ /* APPLE LOCAL mainline */
+ /* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 33 } */
return result;
}
@end
+
+/* { dg-options "-Wstrict-selector-match" } */
+
diff --git a/gcc/testsuite/objc.dg/next-runtime-1.m b/gcc/testsuite/objc.dg/next-runtime-1.m
new file mode 100644
index 00000000000..0e05c58f75e
--- /dev/null
+++ b/gcc/testsuite/objc.dg/next-runtime-1.m
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file mainline */
+/* Test that the correct version number (6) is set in the module descriptor
+ when compiling for the NeXT runtime. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fnext-runtime" } */
+
+#include <objc/Object.h>
+
+@interface FooBar: Object
+- (void)boo;
+@end
+
+@implementation FooBar
+- (void)boo { }
+@end
+
+/* { dg-final { scan-assembler "L_OBJC_MODULES:\n\[ \t\]*\.long\t6\n" } } */
diff --git a/gcc/testsuite/objc.dg/no-extra-load.m b/gcc/testsuite/objc.dg/no-extra-load.m
new file mode 100644
index 00000000000..d740130a342
--- /dev/null
+++ b/gcc/testsuite/objc.dg/no-extra-load.m
@@ -0,0 +1,7 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile { target *-*-darwin* } } */
+
+#import <Foundation/Foundation.h>
+main() { [NSObject new]; }
+
+/* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff --git a/gcc/testsuite/objc.dg/nopicsetup.m b/gcc/testsuite/objc.dg/nopicsetup.m
new file mode 100644
index 00000000000..3a5b46fbacd
--- /dev/null
+++ b/gcc/testsuite/objc.dg/nopicsetup.m
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* Magic "bcl" to do PIC setup should be suppressed (commented) */
+@interface Base {}
+- (id)init;
+@end
+@interface Derived : Base {}
+@end
+@implementation Derived
+- (id)init
+{
+ self = [super init];
+ if (self) {}
+ return self;
+}
+@end
+/* { scan-assembler ";bcl" } */
diff --git a/gcc/testsuite/objc.dg/objc-fast-1.m b/gcc/testsuite/objc.dg/objc-fast-1.m
new file mode 100644
index 00000000000..6db7c38beec
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-fast-1.m
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* A compile-only test for insertion of 'bla' comm page jumps. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wassign-intercept" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object {
+@public
+ Object *other;
+}
+@end
+
+void foo(void) {
+ Derived *o = [Derived new];
+ o->other = 0; /* { dg-warning "instance variable assignment has been intercepted" } */
+}
+
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+/* { dg-final { scan-assembler-not "objc_assign_ivar" } } */
+
+/* { dg-final { scan-assembler "bla.*fffeff00" } } */
+/* { dg-final { scan-assembler "bla.*fffefec0" } } */
diff --git a/gcc/testsuite/objc.dg/objc-fast-2.m b/gcc/testsuite/objc.dg/objc-fast-2.m
new file mode 100644
index 00000000000..61e97adad3a
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-fast-2.m
@@ -0,0 +1,29 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* A compile-only test for insertion of 'ba' sibcall comm page jumps. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wno-assign-intercept -O2" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object {
+@public
+ Object *other;
+}
+@end
+
+void foo(void) {
+ Derived *o;
+ o->other = 0; /* sibcall to objc_assign_ivar_Fast() */
+}
+
+void bar(void) {
+ Derived *o = nil;
+ [Derived new]; /* sibcall to objc_msgSend_Fast() */
+}
+
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+/* { dg-final { scan-assembler-not "objc_assign_ivar" } } */
+
+/* { dg-final { scan-assembler "ba.*fffeff00" } } */
+/* { dg-final { scan-assembler "ba.*fffefec0" } } */
diff --git a/gcc/testsuite/objc.dg/objc-fast-3.m b/gcc/testsuite/objc.dg/objc-fast-3.m
new file mode 100644
index 00000000000..fc57f831eef
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-fast-3.m
@@ -0,0 +1,33 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* A compile-only test for insertion of 'bla' and 'ba' sibcall comm page jumps
+ for methods returning 'void'. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -fobjc-direct-dispatch -Wno-assign-intercept -O2" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object {
+@public
+ Object *other;
+}
+- (void) do_nothing;
+@end
+
+int a;
+
+void foo(void) {
+ Derived *o;
+ [o do_nothing]; /* objc_msgSend_Fast() */
+ a = 2;
+}
+
+void bar(void) {
+ Derived *o = nil;
+ [o do_nothing]; /* sibcall to objc_msgSend_Fast() */
+}
+
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+
+/* { dg-final { scan-assembler "bla.*fffeff00" } } */
+/* { dg-final { scan-assembler "ba.*fffeff00" } } */
diff --git a/gcc/testsuite/objc.dg/objc-fast-4.m b/gcc/testsuite/objc.dg/objc-fast-4.m
new file mode 100644
index 00000000000..67e8a998bc4
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-fast-4.m
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file ObjC direct dispatch */
+/* Check that 4015820 is fixed. That does not appear except
+ with -O0, so the sibcall case cannot occur. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-O0 -fobjc-direct-dispatch" } */
+#include <objc/Object.h>
+
+void foo(void) {
+ Object *o;
+ [o++ free];
+}
+/* { dg-final { scan-assembler-not "objc_msgSend" } } */
+/* { dg-final { scan-assembler "bla.*fffeff00" } } */
diff --git a/gcc/testsuite/objc.dg/objc-gc-1.m b/gcc/testsuite/objc.dg/objc-gc-1.m
new file mode 100644
index 00000000000..ed9a8b1ac13
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-gc-1.m
@@ -0,0 +1,146 @@
+/* APPLE LOCAL file ObjC GC */
+/* A compile-only test for insertion of write barriers. */
+/* Developed by Ziemowit Laski <zlaski@apple.com> */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc -Wassign-intercept" } */
+
+#ifndef __OBJC_GC__
+#error Missing __OBJC_GC__ manifest constant
+#endif
+
+#include <objc/Object.h>
+
+@class Underspecified;
+@class MyClass;
+
+@interface AnotherClass: Object {
+@public
+ __strong void *storage;
+ MyClass *SomeObj;
+}
+- (id)assignObj:(id)obj;
+@end
+
+struct Struct1 {
+ MyClass *someobj;
+ void *obj2;
+ __strong void *obj3;
+};
+
+struct Struct1 *str1a, str1aa;
+__strong struct Struct1 *str1b, str1bb, **str1c, *str1d[3][3];
+
+extern MyClass *externFunc(void);
+
+@interface MyClass: Object {
+@public
+ id ivar1, *ivar1a;
+ void *ivar2;
+ __strong void *ivar3;
+ Underspecified *ivar4[2], **ivar4a;
+ union {
+ struct {
+ Underspecified *data;
+ const unsigned char *dataBytes;
+ } d;
+ struct {
+ __strong void *storage;
+ AnotherClass *another;
+ } s;
+ } contents;
+ struct {
+ struct {
+ void *yy;
+ } z;
+ } y;
+}
+@end
+
+@implementation AnotherClass
+- (id)assignObj:(id)obj {
+ static MyClass *m_myclass;
+ static id *indirect;
+ str1a = 0;
+ str1b = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1c = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1d[1][1] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1a->someobj = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ str1b->someobj = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ str1aa.someobj = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1bb.someobj = 0; /* { dg-warning "global\\/static variable assignment" } */
+ str1a->obj2 = 0;
+ str1b->obj2 = 0;
+ str1a->obj3 = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ str1b->obj3 = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ SomeObj->contents.s.another = 0; /* { dg-warning "instance variable assignment" } */
+ obj = 0;
+ externFunc()->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ externFunc()->contents.s.another->SomeObj = 0; /* { dg-warning "instance variable assignment" } */
+ m_myclass = 0; /* { dg-warning "global\\/static variable assignment" } */
+ *indirect = obj; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ (__strong id)*indirect = obj; /* { dg-warning "strong\\-cast assignment" } */
+ (__strong id)(MyClass *)*indirect = obj; /* { dg-warning "strong\\-cast assignment" } */
+ self = 0;
+ self->isa = 0; /* { dg-warning "instance variable assignment" } */
+ return SomeObj = obj; /* { dg-warning "instance variable assignment" } */
+}
+@end
+
+typedef MyClass MyClass1;
+@compatibility_alias MyClass2 MyClass;
+
+MyClass *g_myclass;
+MyClass1 *g_myclass1;
+MyClass2 *g_myclass2;
+MyClass2 **g_myclass2a, ***g_myclass2b;
+MyClass2 *g_myclass2c[6], *g_myclass2d[4][5];
+__strong void *g_myclass2e[3];
+
+id *g_myid, ***g_myid3;
+
+void function(void) {
+ static MyClass *l_myclass;
+ MyClass2 *l_myclass2;
+
+ g_myclass = 0; /* { dg-warning "global\\/static variable assignment" } */
+ l_myclass = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ *g_myclass->ivar1a = 0;
+ l_myclass2 = 0;
+ l_myclass2->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ (__strong id)*g_myclass->ivar1a = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass->ivar2 = 0;
+ (__strong void *)g_myclass->ivar2 = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass->ivar3 = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->ivar4[1] = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->ivar4a = 0;
+ *l_myclass->ivar4a = 0;
+ (__strong id)*l_myclass->ivar4a = 0; /* { dg-warning "strong\\-cast assignment" } */
+ l_myclass->contents.d.data = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->contents.d.dataBytes = 0;
+ (__strong const unsigned char *)l_myclass->contents.d.dataBytes = 0; /* { dg-warning "strong\\-cast assignment" } */
+ l_myclass->contents.s.storage = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->contents.s.another->SomeObj = 0; /* { dg-warning "instance variable assignment" } */
+ l_myclass->contents.s.another->storage = 0; /* { dg-warning "instance variable assignment" } */
+ (__strong void *)l_myclass->contents.s.another->storage = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass->y.z.yy = 0;
+ (__strong void *)g_myclass->y.z.yy = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass1->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ (*g_myclass2a)->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ *g_myid = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ ***g_myid3 = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ (__strong id)*g_myid = 0; /* { dg-warning "strong\\-cast assignment" } */
+ (__strong id)***g_myid3 = 0; /* { dg-warning "strong\\-cast assignment" } */
+ g_myclass2[3] = g_myclass1[4];
+ g_myclass2a[1] = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ g_myclass2b[1][2] = 0; /* { dg-warning "strong\\-cast may possibly be needed" } */
+ g_myclass2c[1] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass2e[1] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass2d[1][2] = 0; /* { dg-warning "global\\/static variable assignment" } */
+ g_myclass2a[1]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2b[1][2]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2c[1]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+ g_myclass2d[1][2]->ivar1 = 0; /* { dg-warning "instance variable assignment" } */
+}
+
diff --git a/gcc/testsuite/objc.dg/objc-gc-2.m b/gcc/testsuite/objc.dg/objc-gc-2.m
new file mode 100644
index 00000000000..75c7aea45a3
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-gc-2.m
@@ -0,0 +1,172 @@
+/* APPLE LOCAL file ObjC GC */
+/* A run-time test for insertion of write barriers. */
+
+/* { dg-do run { target *-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc" } */
+
+#include <objc/objc.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef const struct __CFDictionary * CFDictionaryRef;
+
+// callouts to these are generated with cc -fobjc-gc
+
+int GlobalAssigns;
+int IvarAssigns;
+int StrongCastAssigns;
+
+
+id objc_assign_global(id value, id *dest) {
+ ++GlobalAssigns;
+ return (*dest = value);
+}
+
+id objc_assign_ivar(id value, id dest, unsigned int offset) {
+ id *slot = (id*) ((char *)dest + offset);
+
+ ++IvarAssigns;
+ return (*slot = value);
+}
+
+id objc_assign_strongCast(id value, id *dest) {
+ id base;
+
+ ++StrongCastAssigns ;
+ return (*dest = value);
+}
+
+// The test case elements;
+@class NSObject;
+@class NSString;
+
+typedef struct {
+ id element;
+ id elementArray[10];
+ __strong CFDictionaryRef cfElement;
+ __strong CFDictionaryRef cfElementArray[10];
+} struct_with_ids_t;
+
+@interface Foo {
+@public
+// assignments to any/all of these fields should generate objc_assign_ivar
+ __strong CFDictionaryRef dict;
+ __strong CFDictionaryRef dictArray[3];
+ id ivar;
+ id array[10];
+ NSObject *nsobject;
+ NSString *stringArray[10];
+ struct_with_ids_t inner;
+}
+
+@end
+
+// assignments to these should generate objc_assign_global
+id GlobalId;
+id GlobalArray[20];
+NSObject *GlobalObject;
+NSObject *GlobalObjectArray[20];
+__strong CFDictionaryRef Gdict;
+__strong CFDictionaryRef Gdictarray[10];
+struct_with_ids_t GlobalStruct;
+struct_with_ids_t GlobalStructArray[10];
+
+
+// The test cases
+void *rhs = 0;
+
+#define ASSIGNTEST(expr, global) expr = rhs; if (!global) { printf(# expr " is busted\n"); ++counter; } global = 0
+
+int testGlobals() {
+ // Everything in this function generates assign_global intercepts
+ int counter = 0;
+
+ static id staticGlobalId;
+ static id staticGlobalArray[20];
+ static NSObject *staticGlobalObject;
+ static NSObject *staticGlobalObjectArray[20];
+ static __strong CFDictionaryRef staticGdict;
+ static __strong CFDictionaryRef staticGdictarray[10];
+ static struct_with_ids_t staticGlobalStruct;
+ static struct_with_ids_t staticGlobalStructArray[10];
+
+ ASSIGNTEST(GlobalId, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(GlobalArray[0], GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(GlobalObject, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(GlobalObjectArray[0], GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(Gdict, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(Gdictarray[1], GlobalAssigns); // objc_assign_global
+
+ ASSIGNTEST(GlobalStruct.element, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(GlobalStruct.elementArray[0], GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(GlobalStruct.cfElement, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(GlobalStruct.cfElementArray[0], GlobalAssigns); // objc_assign_global
+
+ ASSIGNTEST(staticGlobalId, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGlobalArray[0], GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGlobalObject, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGlobalObjectArray[0], GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGdict, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGdictarray[1], GlobalAssigns); // objc_assign_global
+
+ ASSIGNTEST(staticGlobalStruct.element, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGlobalStruct.elementArray[0], GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGlobalStruct.cfElement, GlobalAssigns); // objc_assign_global
+ ASSIGNTEST(staticGlobalStruct.cfElementArray[0], GlobalAssigns); // objc_assign_global
+
+ return counter;
+}
+
+
+int testIvars() {
+ Foo *foo = (Foo *)malloc(sizeof(Foo)); // don't call in ObjC
+ int counter = 0;
+
+ ASSIGNTEST(foo->ivar, IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->dict, IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->dictArray[0], IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->array[0], IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->nsobject, IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->stringArray[0], IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->inner.element, IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->inner.elementArray[0], IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->inner.cfElement, IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->inner.cfElementArray[0], IvarAssigns); // objc_assign_ivar
+
+ return counter;
+}
+
+int testStrongCasts() {
+ id x = nil;
+ int counter = 0;
+ typedef struct { @defs(Foo) } Foo_defs;
+ Foo_defs *foo = (Foo_defs *)malloc(sizeof(Foo));
+
+ // strong casts should always be issued, even if the compiler could know better
+
+ ASSIGNTEST((__strong id)foo->ivar, StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->dict, StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->dictArray[0], StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->array[0], StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->nsobject, StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->stringArray[0], StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->inner.element, StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->inner.elementArray[0], StrongCastAssigns);// objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->inner.cfElement, StrongCastAssigns); // objc_assign_strongCast
+ ASSIGNTEST((__strong id)foo->inner.cfElementArray[0], StrongCastAssigns);// objc_assign_strongCast
+
+ // assignments to declared __strong on plain structure elements shouldn't work
+
+ return counter;
+}
+
+@implementation Foo
+@end
+
+int main(int argc, char *argv[]) {
+ int errors = 0;
+ errors += testGlobals();
+ errors += testIvars();
+ errors += testStrongCasts();
+ return (errors != 0);
+}
diff --git a/gcc/testsuite/objc.dg/objc-gc-3.m b/gcc/testsuite/objc.dg/objc-gc-3.m
new file mode 100644
index 00000000000..dcb6c9679c8
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-gc-3.m
@@ -0,0 +1,54 @@
+/* APPLE LOCAL file ObjC GC */
+/* A run-time test for insertion of write barriers. */
+
+/* { dg-do run { target *-*-darwin* } } */
+/* { dg-options "-fnext-runtime -fobjc-gc" } */
+
+#include <objc/objc.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+// callouts to these are generated with cc -fobjc-gc
+
+int IvarAssigns;
+
+id objc_assign_ivar(id value, id dest, unsigned int offset) {
+ id *slot = (id*) ((char *)dest + offset);
+
+ ++IvarAssigns;
+ return (*slot = value);
+}
+
+// The test case elements;
+@class NSObject;
+
+@interface Foo {
+@public
+// assignments to any/all of these fields should generate objc_assign_ivar
+ Foo *obj[20];
+ short idx[5];
+}
+@end
+
+int testIvars() {
+ Foo *foo = (Foo *)calloc(1,sizeof(Foo)); // don't call in ObjC
+ int counter = 0, errors = 0;
+#define ASSIGNTEST(expr, global) expr = foo; if (!global) { printf(# expr " is busted\n"); ++errors; } global = 0
+
+ ASSIGNTEST(foo->obj[5], IvarAssigns); // objc_assign_ivar
+ ASSIGNTEST(foo->obj[++counter], IvarAssigns); // objc_assign_ivar
+ foo->idx[++counter] = 15;
+ ASSIGNTEST(foo->obj[foo->idx[2]], IvarAssigns); // objc_assign_ivar
+
+ if (foo->obj[5] != foo || foo->obj[1] != foo || foo->obj[15] != foo)
+ abort();
+
+ return errors;
+}
+
+@implementation Foo
+@end
+
+int main(int argc, char *argv[]) {
+ return testIvars();
+}
diff --git a/gcc/testsuite/objc.dg/objc-gc-4.m b/gcc/testsuite/objc.dg/objc-gc-4.m
new file mode 100644
index 00000000000..329ee601a87
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc-gc-4.m
@@ -0,0 +1,64 @@
+/* APPLE LOCAL file mainline */
+/* Test looking up fields in superclasses in the context of write-barriers
+ (where component references get rewritten). */
+/* Contributed by Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fobjc-gc" } */
+
+#include <objc/Object.h>
+
+@class MyWindow;
+
+@interface MyDocument : Object {
+ MyWindow *_window;
+}
+@end
+
+@interface MyFileDocument : MyDocument {
+ struct {
+ unsigned int autoClose:1;
+ unsigned int openForUI:1;
+ unsigned int isClosing:1;
+ unsigned int needsDiskCheck:1;
+ unsigned int isWritable:1;
+ unsigned int representsFileOnDisk:1;
+ unsigned int RESERVED:26;
+ } _fdFlags;
+}
+@end
+
+@interface MyTextFileDocument : MyFileDocument {
+ Object *_textStorage;
+ struct __tfdFlags {
+ unsigned int immutable:1;
+ unsigned int lineEnding:2;
+ unsigned int isClosing:1;
+ unsigned int settingsAreSet:1;
+ unsigned int usesTabs:1;
+ unsigned int isUTF8WithBOM:1;
+ unsigned int wrapsLines:1;
+ unsigned int usingDefaultLanguage:1;
+ unsigned int RESERVED:23;
+ } _tfdFlags;
+ int _tabWidth;
+ int _indentWidth;
+}
+@end
+
+@interface MyRTFFileDocument : MyTextFileDocument
+- (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type;
+@end
+
+@implementation MyRTFFileDocument
+- (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type {
+ if (_textStorage && fileName) {
+ [_textStorage free];
+ return YES;
+ } else if (type) {
+ _textStorage = [MyRTFFileDocument new];
+ return NO;
+ }
+ return (fileName && type);
+}
+@end
diff --git a/gcc/testsuite/objc.dg/objc.c b/gcc/testsuite/objc.dg/objc.c
new file mode 100644
index 00000000000..748111c26eb
--- /dev/null
+++ b/gcc/testsuite/objc.dg/objc.c
@@ -0,0 +1,6 @@
+/* APPLE LOCAL file -ObjC */
+
+/* { dg-do compile } */
+/* { dg-options "-ObjC" } */
+
+@class foo;
diff --git a/gcc/testsuite/objc.dg/pascal-strings-1.m b/gcc/testsuite/objc.dg/pascal-strings-1.m
new file mode 100644
index 00000000000..477b94bbff2
--- /dev/null
+++ b/gcc/testsuite/objc.dg/pascal-strings-1.m
@@ -0,0 +1,20 @@
+/* APPLE LOCAL file pascal strings */
+/* Ensure that there are no warnings or errors issued when a Pascal string is used to
+ initialize an array and the NUL terminator does not fit. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-fpascal-strings" } */
+
+typedef unsigned char Str15[16];
+
+Str15 ggg = "\p012345678901234";
+Str15 hhh = "\p0123456789012345"; /* { dg-warning "initializer.string for array of chars is too long" } */
+
+int foo(void)
+{
+ Str15 sss = "\p012345678901234";
+ Str15 ttt = "\p0123456789012345"; /* { dg-warning "initializer.string for array of chars is too long" } */
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/pragma-1.m b/gcc/testsuite/objc.dg/pragma-1.m
new file mode 100644
index 00000000000..ab354582be6
--- /dev/null
+++ b/gcc/testsuite/objc.dg/pragma-1.m
@@ -0,0 +1,24 @@
+/* APPLE LOCAL file mainline */
+/* It is OK to use #pragma inside @implementation body. This test checks that. */
+/* Ziemowit Laski <zlaski@apple.com>. */
+
+@interface A
+{
+ int p;
+}
++(int) foo;
+-(int) bar;
+@end
+
+@implementation A
+#pragma mark -
+#pragma mark init / dealloc
++ (int)foo {
+ return 1;
+}
+#pragma mark -
+#pragma mark Private Functions
+- (int)bar {
+ return 2;
+}
+@end
diff --git a/gcc/testsuite/objc.dg/proto-lossage-5.m b/gcc/testsuite/objc.dg/proto-lossage-5.m
new file mode 100644
index 00000000000..c257411561f
--- /dev/null
+++ b/gcc/testsuite/objc.dg/proto-lossage-5.m
@@ -0,0 +1,23 @@
+/* APPLE LOCAL file mainline */
+/* Do not lose references to forward-declared protocols. */
+/* { dg-do compile } */
+@class MyBaseClass;
+@class MyClassThatFails;
+@protocol _MyProtocol;
+
+@interface MyClassThatFails
+- (MyBaseClass<_MyProtocol> *) aMethod;
+@end
+
+@interface MyBaseClass
+@end
+
+@protocol _MyProtocol
+@end
+
+@implementation MyClassThatFails
+- (MyBaseClass<_MyProtocol> *) aMethod
+{
+ return 0;
+}
+@end
diff --git a/gcc/testsuite/objc.dg/selector-2.m b/gcc/testsuite/objc.dg/selector-2.m
index 5584f1511b6..97ff03d78aa 100644
--- a/gcc/testsuite/objc.dg/selector-2.m
+++ b/gcc/testsuite/objc.dg/selector-2.m
@@ -1,5 +1,6 @@
+/* APPLE LOCAL file mainline */
/* Test that we don't ICE when issuing a -Wselector warning. */
-/* { dg-options "-Wselector -fgnu-runtime" } */
+/* { dg-options "-Wselector" } */
/* { dg-do compile } */
#include <objc/Object.h>
@@ -12,5 +13,6 @@
SEL a;
a = @selector(b1ar);
}
-@end /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+@end
+/* { dg-warning "creating selector for nonexistent method .b1ar." "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/objc.dg/selector-3.m b/gcc/testsuite/objc.dg/selector-3.m
new file mode 100644
index 00000000000..7ac1d2aff87
--- /dev/null
+++ b/gcc/testsuite/objc.dg/selector-3.m
@@ -0,0 +1,27 @@
+/* APPLE LOCAL file mainline */
+/* Test warning for non-existent selectors. */
+/* This is the "-fgnu-runtime" variant of objc.dg/selector-1.m. */
+/* { dg-options "-Wselector -fgnu-runtime" } */
+/* { dg-do compile } */
+
+typedef struct objc_object { struct objc_class *class_pointer; } *id;
+typedef const struct objc_selector *SEL;
+
+@interface Foo
+- (void) foo;
+- (void) bar;
+@end
+
+@implementation Foo
+- (void) bar
+{
+}
+
+- (void) foo
+{
+ SEL a,b,c;
+ a = @selector(b1ar);
+ b = @selector(bar);
+}
+@end /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+
diff --git a/gcc/testsuite/objc.dg/selector-4.m b/gcc/testsuite/objc.dg/selector-4.m
new file mode 100644
index 00000000000..d4dee42461f
--- /dev/null
+++ b/gcc/testsuite/objc.dg/selector-4.m
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file mainline */
+/* Test whether including C++ keywords such as 'and', 'or',
+ 'not', etc., is allowed inside ObjC selectors (as it must be). */
+/* Author: Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-do compile } */
+
+@interface Int1
++ (int)and_eq:(int)arg1 and:(int)arg2;
+- (int)or_eq:(int)arg1 or:(int)arg3;
+- (int)not:(int)arg1 xor:(int)arg2;
+- (void)bitand:(char)c1 bitor:(char)c2;
+- (void)compl:(float)f1 xor_eq:(double)d1;
+- (void)not_eq;
+@end
+
+@implementation Int1
++ (int)and_eq:(int)arg1 and:(int)arg2 { return arg1 + arg2; }
+- (int)or_eq:(int)arg1 or:(int)arg3 { return arg1 + arg3; }
+- (int)not:(int)arg1 xor:(int)arg2 { return arg1 + arg2; }
+- (void)bitand:(char)c1 bitor:(char)c2 { }
+- (void)compl:(float)f1 xor_eq:(double)d1 { }
+- (void)not_eq { }
+@end
+
+/* { dg-final { scan-assembler "\\+\\\[Int1 and_eq:and:\\]|c_Int1__and_eq_and" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 or_eq:or:\\]|i_Int1__or_eq_or" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 not:xor:\\]|i_Int1__not_xor" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 bitand:bitor:\\]|i_Int1__bitand_bitor" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 compl:xor_eq:\\]|i_Int1__compl_xor_eq" } } */
+/* { dg-final { scan-assembler "\\-\\\[Int1 not_eq\\]|i_Int1__not_eq" } } */
diff --git a/gcc/testsuite/objc.dg/stabs-1.m b/gcc/testsuite/objc.dg/stabs-1.m
index 9c38b916728..cb8a6d26269 100644
--- a/gcc/testsuite/objc.dg/stabs-1.m
+++ b/gcc/testsuite/objc.dg/stabs-1.m
@@ -2,7 +2,7 @@
/* Contributed by Ziemowit Laski <zlaski@apple.com> */
/* { dg-do compile } */
-/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* ia64-*-* } { "*" } { "" } } */
+/* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */
/* { dg-options "-gstabs" } */
@interface MyClass
@@ -15,4 +15,4 @@
}
@end
-/* { dg-final { scan-assembler ".text\"?\n\t.stabs.*100,0,0,(\\.)?L?Letext\[0-9\]*\n(\\.)?L?Letext" } } */
+/* { dg-final { scan-assembler "(.SUBSPA.*\[\$\]CODE\[\$\]|.text\"?)\n\t.stabs.*100,0,0,(\\.)?L?L\[\$\]?etext\[0-9\]*\n(\\.)?L?L\[\$\]?etext" } } */
diff --git a/gcc/testsuite/objc.dg/stret-2.m b/gcc/testsuite/objc.dg/stret-2.m
index dd9a2e8e5b2..b4be5ff6a54 100644
--- a/gcc/testsuite/objc.dg/stret-2.m
+++ b/gcc/testsuite/objc.dg/stret-2.m
@@ -8,7 +8,10 @@
struct astruct {
float a, b;
-} glob = { 1.0, 2.0 };
+ /* APPLE LOCAL begin testing */
+ char c;
+} glob = { 1.0, 2.0, 'a' };
+/* APPLE LOCAL end testing */
struct bstruct {
float a, b, c, d, e, f;
diff --git a/gcc/testsuite/objc.dg/stubify-1.m b/gcc/testsuite/objc.dg/stubify-1.m
new file mode 100644
index 00000000000..a96b145f541
--- /dev/null
+++ b/gcc/testsuite/objc.dg/stubify-1.m
@@ -0,0 +1,34 @@
+/* APPLE LOCAL file mainline */
+/* All calls must be properly stubified. Complain about any "call
+ _objc_msgSend<end-of-line>" without the $stub suffix. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-Os -mdynamic-no-pic" } */
+
+typedef struct objc_object { } *id ;
+int x = 41 ;
+extern id objc_msgSend(id self, char * op, ...);
+extern int bogonic (int, int, int) ;
+@interface Document {}
+- (Document *) window;
+- (Document *) class;
+- (Document *) close;
+@end
+@implementation Document
+- (Document *) class { }
+- (Document *) close { }
+- (Document *) window { }
+- (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+ [[self window] close];
+ ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+ ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+ bogonic (3, 4, 5);
+ x++;
+}
+@end
+
+/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_objc_msgSend\n" } } */
+/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_objc_msgSend\\\$stub\n" } } */
+/* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_bogonic\n" } } */
+/* { dg-final { scan-assembler "\(bl|call\)\[ \t\]+L_bogonic\\\$stub\n" } } */
+/* { dg-final { scan-assembler-not "\\\$non_lazy_ptr" } } */
diff --git a/gcc/testsuite/objc.dg/stubify-2.m b/gcc/testsuite/objc.dg/stubify-2.m
new file mode 100644
index 00000000000..0aebedfbecf
--- /dev/null
+++ b/gcc/testsuite/objc.dg/stubify-2.m
@@ -0,0 +1,32 @@
+/* APPLE LOCAL file mainline */
+/* All calls must be properly stubified. */
+/* Testcase extracted from TextEdit:Document.m. */
+
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-mdynamic-no-pic -fdump-rtl-jump" } */
+
+typedef struct objc_object { } *id ;
+int x = 41 ;
+extern id objc_msgSend(id self, char * op, ...);
+extern int bogonic (int, int, int) ;
+@interface Document {}
+- (Document *) window;
+- (Document *) class;
+- (Document *) close;
+@end
+@implementation Document
+- (Document *) class { }
+- (Document *) close { }
+- (Document *) window { }
+- (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+ [[self window] close];
+ ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+ ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+ bogonic (3, 4, 5);
+ x++;
+}
+@end
+
+/* Any symbol_ref of an un-stubified objc_msgSend is an error; look
+ for "objc_msgSend" in quotes, without the $stub suffix. */
+/* { dg-final { scan-file-not stubify-2.m.03.jump "symbol_ref.*\"objc_msgSend\"" } } */
diff --git a/gcc/testsuite/objc.dg/super-class-4.m b/gcc/testsuite/objc.dg/super-class-4.m
new file mode 100644
index 00000000000..0f6317beb50
--- /dev/null
+++ b/gcc/testsuite/objc.dg/super-class-4.m
@@ -0,0 +1,35 @@
+/* APPLE LOCAL file mainliine */
+/* Bail out gracefully if attempting to derive from a class that has only been
+ forward-declared (via @class). Conversely, @compatibility_alias declarations
+ should be traversed to find the @interface. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+@class MyWpModule;
+
+@compatibility_alias MyObject Object;
+@compatibility_alias FictitiousModule MyWpModule;
+
+@protocol MySelTarget
+- (id) meth1;
+@end
+
+@protocol Img
+- (id) meth2;
+@end
+
+@interface FunnyModule: FictitiousModule <Img> /* { dg-error ".MyWpModule., superclass of .FunnyModule." } */
+- (id) meth2;
+@end
+
+@interface MyProjWpModule : MyWpModule <MySelTarget, Img> /* { dg-error ".MyWpModule., superclass of .MyProjWpModule." } */ {
+ id i1, i2;
+}
+- (id) meth1;
+- (id) meth2;
+@end
+
+@interface AnotherModule: MyObject <MySelTarget>
+- (id) meth1;
+@end
diff --git a/gcc/testsuite/objc.dg/super-dealloc-1.m b/gcc/testsuite/objc.dg/super-dealloc-1.m
new file mode 100644
index 00000000000..0e123f20b8b
--- /dev/null
+++ b/gcc/testsuite/objc.dg/super-dealloc-1.m
@@ -0,0 +1,47 @@
+/* APPLE LOCAL file mainline */
+/* Check for warnings about missing [super dealloc] calls. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+
+@interface Foo {
+ void *isa;
+}
+- (void) dealloc;
+- (void) some_other;
+@end
+
+@interface Bar: Foo {
+ void *casa;
+}
+- (void) dealloc;
+@end
+
+@interface Baz: Bar {
+ void *usa;
+}
+- (void) dealloc;
+@end
+
+@implementation Foo
+- (void) dealloc {
+ isa = 0; /* Should not warn here. */
+}
+- (void) some_other {
+ isa = (void *)-1;
+}
+@end
+
+@implementation Bar
+- (void) dealloc {
+ casa = 0;
+ [super some_other];
+} /* { dg-warning "method possibly missing a .super dealloc. call" } */
+@end
+
+@implementation Baz
+- (void) dealloc {
+ usa = 0;
+ [super dealloc]; /* Should not warn here. */
+}
+@end
diff --git a/gcc/testsuite/objc.dg/super-dealloc-2.m b/gcc/testsuite/objc.dg/super-dealloc-2.m
new file mode 100644
index 00000000000..b60b82c13d7
--- /dev/null
+++ b/gcc/testsuite/objc.dg/super-dealloc-2.m
@@ -0,0 +1,47 @@
+/* APPLE LOCAL file mainline */
+/* Check for warnings about missing [super dealloc] calls. */
+/* Author: Ziemowit Laski <zlaski@apple.com> */
+
+/* { dg-do compile } */
+
+@interface Foo {
+ void *isa;
+}
+- (void) dealloc;
+- (void) some_other;
+@end
+
+@interface Bar: Foo {
+ void *casa;
+}
+- (void) dealloc0;
+@end
+
+@interface Baz: Bar {
+ void *usa;
+}
+- (void) dealloc;
+@end
+
+@implementation Foo
+- (void) dealloc {
+ isa = 0; /* Should not warn here. */
+}
+- (void) some_other {
+ isa = (void *)-1;
+}
+@end
+
+@implementation Bar
+- (void) dealloc0 {
+ casa = 0;
+ [super some_other]; /* Should not warn here. */
+}
+@end
+
+@implementation Baz
+- (void) dealloc {
+ usa = 0;
+ [super dealloc0];
+} /* { dg-warning "method possibly missing a .super dealloc. call" } */
+@end
diff --git a/gcc/testsuite/objc.dg/symtab-1.m b/gcc/testsuite/objc.dg/symtab-1.m
index d031cb46d06..d9e47e592d8 100644
--- a/gcc/testsuite/objc.dg/symtab-1.m
+++ b/gcc/testsuite/objc.dg/symtab-1.m
@@ -21,4 +21,5 @@
-(void)checkValues { }
@end
-/* { dg-final { scan-assembler "L_OBJC_SYMBOLS.*:\n\t.long\t0\n\t.long\t0\n\t.short\t2\n\t.short\t0\n\t.long\tL_OBJC_CLASS_Derived.*\n\t.long\tL_OBJC_CLASS_Base.*\n" } } */
+/* APPLE LOCAL testing */
+/* { dg-final { scan-assembler "L_OBJC_SYMBOLS.*:\n\t.long\t0\n\t.long\t0\n\t.(short|word)\t2\n\t.(short|word)\t0\n\t.long\tL_OBJC_CLASS_Derived.*\n\t.long\tL_OBJC_CLASS_Base.*\n" } } */
diff --git a/gcc/testsuite/objc.dg/try-catch-6.m b/gcc/testsuite/objc.dg/try-catch-6.m
new file mode 100644
index 00000000000..0d82ff900fa
--- /dev/null
+++ b/gcc/testsuite/objc.dg/try-catch-6.m
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* { dg-do compile } */
+/* { dg-options "-fobjc-exceptions" } */
+
+#include <objc/Object.h>
+
+int main (int argc, const char * argv[]) {
+ Object * pool = [Object new];
+ int a;
+
+ if ( 1 ) {
+
+ @try {
+ a = 1;
+ }
+ @catch (Object *e) {
+ a = 2;
+ }
+ @finally {
+ a = 3;
+ }
+ }
+
+ [pool free];
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/try-catch-7.m b/gcc/testsuite/objc.dg/try-catch-7.m
new file mode 100644
index 00000000000..6a9beecb4ac
--- /dev/null
+++ b/gcc/testsuite/objc.dg/try-catch-7.m
@@ -0,0 +1,28 @@
+/* APPLE LOCAL file mainline */
+/* Test for graceful compilation of @synchronized statements. */
+
+/* { dg-do compile } */
+/* { dg-options "-fobjc-exceptions" } */
+
+#include <objc/Object.h>
+
+@interface Derived: Object
+- (id) meth;
+@end
+
+@implementation Derived
+- (id) meth {
+ return self;
+}
+
+static Derived* rewriteDict(void) {
+ static Derived *sDict = 0;
+ if (sDict == 0) {
+ @synchronized ([Derived class]) {
+ if (sDict == 0)
+ sDict = [Derived new];
+ }
+ }
+ return sDict;
+}
+@end
diff --git a/gcc/testsuite/objc.dg/try-catch-8.m b/gcc/testsuite/objc.dg/try-catch-8.m
new file mode 100644
index 00000000000..a36257051c3
--- /dev/null
+++ b/gcc/testsuite/objc.dg/try-catch-8.m
@@ -0,0 +1,66 @@
+/* APPLE LOCAL file mainline */
+/* Check that local variables that get modified inside the @try
+ block survive until the @catch block is reached. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fobjc-exceptions -O2" } */
+/* { dg-do run } */
+
+#include <objc/Object.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+int gi1 = 9, gi2 = 19;
+float gf1 = 9.0, gf2 = 19.0;
+id obj2 = nil;
+
+void foo (int arg1, float *arg2)
+{
+ int *pi = &gi1;
+ float *pf = &gf1;
+ id obj1 = nil;
+ int local1 = 45, local2 = 47;
+ float local3 = 3.0, local4 = 4.0;
+ register int local5 = 15;
+ static float local6 = 16.0;
+
+ @try {
+ local1 = 123;
+ local2 = 345;
+ local3 = 5.0;
+ local4 = 6.0;
+ local5 = 17;
+ local6 = 18.0;
+ pi = &gi2;
+ pf = &gf2;
+ obj2 = obj1 = [Object new];
+ arg1 = 17;
+ arg2 = &gf2;
+
+ @throw [Object new];
+ }
+ @catch (Object *obj) {
+ if (local1 != 123 || local2 != 345 || local3 != 5.0 || local4 != 6.0
+ || local5 != 17 || local6 != 18.0) {
+ printf("Abort 1\n");
+ abort();
+ }
+ if(pi != &gi2 || pf != &gf2) {
+ printf("Abort 2\n");
+ abort();
+ }
+ if(!obj1 || obj1 != obj2) {
+ printf("Abort 3\n");
+ abort();
+ }
+ if(arg1 != 17 || arg2 != &gf2) {
+ printf("Abort 4\n");
+ abort();
+ }
+ }
+}
+
+int main(void) {
+ foo(15, &gf1);
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/try-catch-9.m b/gcc/testsuite/objc.dg/try-catch-9.m
new file mode 100644
index 00000000000..66d59e9bd60
--- /dev/null
+++ b/gcc/testsuite/objc.dg/try-catch-9.m
@@ -0,0 +1,26 @@
+/* APPLE LOCAL file mainline */
+/* Check that taking the address of a local variable marked 'volatile'
+ by the compiler does not generate untoward errors. */
+/* Developed by Ziemowit Laski <zlaski@apple.com>. */
+
+/* { dg-options "-fobjc-exceptions" } */
+/* { dg-do compile } */
+
+
+void foo (int *arg1, int *arg2)
+{
+ *arg1 = *arg2;
+}
+
+void bar (int arg) {
+ int rcvr;
+
+ @try {
+ rcvr = arg;
+ }
+ @finally {
+ int *rcvr0 = &rcvr;
+ foo (rcvr0, &arg);
+ }
+}
+
diff --git a/gcc/testsuite/objc.dg/typedef-alias-1.m b/gcc/testsuite/objc.dg/typedef-alias-1.m
new file mode 100644
index 00000000000..608084c1504
--- /dev/null
+++ b/gcc/testsuite/objc.dg/typedef-alias-1.m
@@ -0,0 +1,17 @@
+/* APPLE LOCAL file mainline */
+/* Typedefs of ObjC types should work without any bogus warnings. */
+/* { dg-do compile } */
+
+#include <objc/Object.h>
+
+typedef Object MyObject;
+
+int main (int argc, const char * argv[])
+{
+ Object* a = nil;
+ MyObject* b = a;
+ Object* c = b;
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/objc.dg/volatile-1.m b/gcc/testsuite/objc.dg/volatile-1.m
index 8b5381a9874..516c4588106 100644
--- a/gcc/testsuite/objc.dg/volatile-1.m
+++ b/gcc/testsuite/objc.dg/volatile-1.m
@@ -16,3 +16,5 @@
@end
/* { dg-final { scan-assembler "li r\[0-9\]+,1" { target powerpc*-*-darwin* } } } */
+/* APPLE LOCAL testing */
+/* { dg-final { scan-assembler "movl\t\\\$1, 16\\(%ebp\\)" { target i?86*-*-darwin* } } } */
diff --git a/gcc/testsuite/objc/execute/next_mapping.h b/gcc/testsuite/objc/execute/next_mapping.h
index 0a361896e12..713558ac8e9 100644
--- a/gcc/testsuite/objc/execute/next_mapping.h
+++ b/gcc/testsuite/objc/execute/next_mapping.h
@@ -8,6 +8,10 @@
#include <objc/objc-class.h>
#include <objc/Object.h>
#include <ctype.h>
+/* APPLE LOCAL begin mainline */
+#include <stdlib.h>
+#include <string.h>
+/* APPLE LOCAL end mainline */
#define objc_get_class(C) objc_getClass(C)
#define objc_get_meta_class(C) objc_getMetaClass(C)
@@ -44,23 +48,33 @@
/* The following is necessary to "cover" the bf*.m test cases on NeXT. */
+/* APPLE LOCAL begin mainline */
#undef MAX
+#undef MIN
+#undef ROUND
+
+#ifdef __cplusplus
+#define MAX(X, Y) ((X > Y) ? X : Y)
+#define MIN(X, Y) ((X < Y) ? X : Y)
+#define ROUND(V, A) (A * ((V + A - 1) / A))
+#else
#define MAX(X, Y) \
({ typeof (X) __x = (X), __y = (Y); \
(__x > __y ? __x : __y); })
-
-#undef MIN
#define MIN(X, Y) \
({ typeof (X) __x = (X), __y = (Y); \
(__x < __y ? __x : __y); })
-
-#undef ROUND
#define ROUND(V, A) \
({ typeof (V) __v = (V); typeof (A) __a = (A); \
__a * ((__v+__a - 1)/__a); })
+#endif
+/* APPLE LOCAL end mainline */
#define BITS_PER_UNIT __CHAR_BIT__
-#define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (struct{char a;}))
+/* APPLE LOCAL begin mainline */
+typedef struct{ char a; } __small_struct;
+#define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (__small_struct))
+/* APPLE LOCAL end mainline */
/* Not sure why the following are missing from NeXT objc headers... */
@@ -104,7 +118,8 @@ struct objc_struct_layout
unsigned int record_align;
};
-typedef union {
+/* APPLE LOCAL mainline */
+typedef union arglist {
char *arg_ptr;
char arg_regs[sizeof (char*)];
} *arglist_t; /* argument frame */
@@ -117,6 +132,8 @@ void objc_layout_structure (const char *type,
BOOL objc_layout_structure_next_member (struct objc_struct_layout *layout);
void objc_layout_finish_structure (struct objc_struct_layout *layout,
unsigned int *size, unsigned int *align);
+/* APPLE LOCAL mainline */
+int objc_aligned_size (const char *type);
/*
return the size of an object specified by type
@@ -193,9 +210,8 @@ objc_sizeof_type (const char *type)
return sizeof (double);
break;
- case _C_VOID:
- return sizeof (void);
- break;
+ /* APPLE LOCAL mainline */
+ /* Do not compute 'sizeof (void)'. */
case _C_PTR:
case _C_ATOM:
diff --git a/gcc/testsuite/treelang/ChangeLog b/gcc/testsuite/treelang/ChangeLog
index c60765b837c..348ffd6d3cf 100644
--- a/gcc/testsuite/treelang/ChangeLog
+++ b/gcc/testsuite/treelang/ChangeLog
@@ -1,3 +1,35 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-03-11 James A. Morrison <phython@gcc.gnu.org>
+
+ Backport recent test cases added to mainline:
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * compile/var_defs: Add uninitialized variables.
+
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * compile/extrafunc.tree, compile/extravar.tree: New tests.
+
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * compile/unsigned.tree: New test.
+
+2005-02-24 James A. Morrison <phython@gcc.gnu.org>
+
+ PR other/19896
+ * execute/execute.exp: New file.
+ * execute/funccall.tree, execute/funccall-2.tree, execute/initial.tree,
+ execute/main.tree, execute/static.tree: New tests.
+
+2005-02-24 James A. Morrison <phython@gcc.gnu.org>
+
+ PR other/19897
+ * compile/exit.tree, compile/extref.tree, compile/function-1.tree,
+ compile/syntax-1.tree: New tests.
+
2004-10-02 James A. Morrison <phython@gcc.gnu.org>
* compile/autofunc.tree: New File.
diff --git a/gcc/testsuite/treelang/compile/exit.tree b/gcc/testsuite/treelang/compile/exit.tree
new file mode 100644
index 00000000000..fd12e3568f6
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/exit.tree
@@ -0,0 +1,12 @@
+// { dg-do compile { xfail *-*-* } }
+external_reference void exit (int code);
+
+static int foo ();
+
+foo
+{
+ automatic int bar = +1;
+ bar = bar + +1;
+ exit (0); // Calling external references is currently broken.
+ return bar;
+}
diff --git a/gcc/testsuite/treelang/compile/extrafunc.tree b/gcc/testsuite/treelang/compile/extrafunc.tree
new file mode 100644
index 00000000000..6682a118a04
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/extrafunc.tree
@@ -0,0 +1,24 @@
+// { dg-do compile }
+// { dg-options "-O2 -fdump-tree-optimized -Wunused-function" }
+// Check to see that unused functions get removed at -O2 and
+// above.
+static int foo (int bar);
+static int baz (int aaa);
+external_definition int ext (int bbb);
+
+foo
+{
+ return bar;
+}
+
+baz // { dg-warning "defined but not used" }
+{
+ return foo (aaa);
+}
+
+ext
+{
+ return foo (bbb);
+}
+
+// { dg-final { scan-tree-dump-not "baz" "optimized" } }
diff --git a/gcc/testsuite/treelang/compile/extravar.tree b/gcc/testsuite/treelang/compile/extravar.tree
new file mode 100644
index 00000000000..5c6b5867b8c
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/extravar.tree
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// { dg-options "-fdump-tree-vars -O1 -Wunused-variable" }
+external_definition int bar (int aaa, int ddd);
+
+static int foo = -3; // { dg-warning "defined but not used" }
+
+bar
+{
+ automatic int ccc;
+
+ return aaa + ddd + +3;
+}
+// { dg-final { scan-tree-dump-not "ccc" "vars" } }
diff --git a/gcc/testsuite/treelang/compile/extref.tree b/gcc/testsuite/treelang/compile/extref.tree
new file mode 100644
index 00000000000..085ab8f88fd
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/extref.tree
@@ -0,0 +1,9 @@
+// { dg-do compile }
+external_reference void abort ();
+
+static int foo (int a);
+
+foo
+{
+ return a;
+}
diff --git a/gcc/testsuite/treelang/compile/function-1.tree b/gcc/testsuite/treelang/compile/function-1.tree
new file mode 100644
index 00000000000..6bb4e370a48
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/function-1.tree
@@ -0,0 +1,14 @@
+// { dg-do compile }
+static int foo ();
+static int bar (int a);
+
+foo
+{
+ return 1;
+}
+
+bar
+{
+ a = a + foo ();
+ return a;
+}
diff --git a/gcc/testsuite/treelang/compile/syntax-1.tree b/gcc/testsuite/treelang/compile/syntax-1.tree
new file mode 100644
index 00000000000..32efe744ca2
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/syntax-1.tree
@@ -0,0 +1,9 @@
+// { dg-do compile }
+external_reference void exit(int); // { dg-error "(parse|syntax) error" }
+
+static int foo (int a);
+
+foo
+{
+ return a;
+}
diff --git a/gcc/testsuite/treelang/compile/unsigned.tree b/gcc/testsuite/treelang/compile/unsigned.tree
new file mode 100644
index 00000000000..d10eacf7755
--- /dev/null
+++ b/gcc/testsuite/treelang/compile/unsigned.tree
@@ -0,0 +1,19 @@
+// { dg-do compile }
+// { dg-options "-fdump-tree-generic" }
+external_reference void abort ();
+external_reference void exit (int status);
+external_definition int main (int argc, int argv);
+
+main
+{
+ automatic unsigned int bar = 2147483649;
+ automatic unsigned int baz = 2147483649;
+
+ if (bar == baz) {
+ abort ();
+ } else {
+ exit (0);
+ }
+ return +1;
+}
+// { dg-final { scan-tree-dump-not "\\\(int\\\)" "generic" } }
diff --git a/gcc/testsuite/treelang/compile/var_defs.tree b/gcc/testsuite/treelang/compile/var_defs.tree
index aaab0d9099e..49f9cd0385b 100644
--- a/gcc/testsuite/treelang/compile/var_defs.tree
+++ b/gcc/testsuite/treelang/compile/var_defs.tree
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-options "-Wuninitialized -O" }
external_definition void boring (int arg0);
external_definition char condition (char arg1, char arg2);
external_definition int first_nonzero (int arg5, int arg6);
@@ -14,11 +15,12 @@ condition
if (arg1)
{
automatic int i;
- return arg1;
+ return i + 1; // { dg-warning "uninitialized" }
}
else
{
- return 0;
+ automatic int j;
+ return j; // { dg-warning "uninitialized" }
}
}
diff --git a/gcc/timevar.c b/gcc/timevar.c
index ffcd9e00876..6be20b2a3d9 100644
--- a/gcc/timevar.c
+++ b/gcc/timevar.c
@@ -27,6 +27,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifdef HAVE_SYS_RESOURCE_H
#include <sys/resource.h>
#endif
+
+/* APPLE LOCAL begin Mach time */
+#ifdef HAVE_MACH_MACH_TIME_H
+#include <mach/mach_time.h>
+#define HAVE_MACH_TIME 1
+static double timeBaseRatio;
+static struct mach_timebase_info tbase;
+#else
+#define HAVE_MACH_TIME 0
+#endif
+/* APPLE LOCAL end Mach time */
#include "coretypes.h"
#include "tm.h"
#include "intl.h"
@@ -69,6 +80,34 @@ struct tms
/* Prefer times to getrusage to clock (each gives successively less
information). */
+/* APPLE LOCAL begin Mach time */
+/* On Darwin, prefer getrusage, plus Mach absolute time for the wall
+ clock time. Use PPC intrinsics if possible. */
+#if defined(__APPLE__) && defined(__POWERPC__) && HAVE_MACH_TIME
+#if __POWERPC__
+# include "../more-hdrs/ppc_intrinsics.h"
+# define HAVE_WALL_TIME
+# define USE_PPC_INTRINSICS
+static inline double
+ppc_intrinsic_time (void)
+{
+ unsigned long hi, lo;
+ do
+ {
+ hi = __mftbu();
+ lo = __mftb();
+ } while (hi != (unsigned long) __mftbu());
+ return (hi * 0x100000000ull + lo) * timeBaseRatio;
+}
+#endif /* __POWERPC__ */
+#elif HAVE_MACH_TIME
+# define USE_GETRUSAGE
+# define USE_MACH_TIME
+# define HAVE_USER_TIME
+# define HAVE_SYS_TIME
+# define HAVE_WALL_TIME
+# else
+/* APPLE LOCAL end Mach time */
#ifdef HAVE_TIMES
# if defined HAVE_DECL_TIMES && !HAVE_DECL_TIMES
extern clock_t times (struct tms *);
@@ -95,6 +134,8 @@ struct tms
#endif
#endif
#endif
+/* APPLE LOCAL Mach time */
+#endif /* HAVE_MACH_TIME */
/* libc is very likely to have snuck a call to sysconf() into one of
the underlying constants, and that can be very slow, so we have to
@@ -203,6 +244,14 @@ get_time (struct timevar_time_def *now)
#ifdef USE_CLOCK
now->user = clock () * clocks_to_msec;
#endif
+ /* APPLE LOCAL begin Mach time */
+#ifdef USE_MACH_TIME
+ now->wall = mach_absolute_time() * timeBaseRatio;
+#endif
+#ifdef USE_PPC_INTRINSICS
+ now->wall = ppc_intrinsic_time();
+#endif
+ /* APPLE LOCAL end Mach time */
}
}
@@ -240,6 +289,12 @@ timevar_init (void)
#ifdef USE_CLOCK
clocks_to_msec = CLOCKS_TO_MSEC;
#endif
+ /* APPLE LOCAL begin Mach time */
+#if defined(USE_MACH_TIME) || defined(USE_PPC_INTRINSICS)
+ mach_timebase_info(&tbase);
+ timeBaseRatio = ((double) tbase.numer / (double) tbase.denom) * 1e-9;
+#endif
+ /* APPLE LOCAL end Mach time */
}
/* Push TIMEVAR onto the timing stack. No further elapsed time is
@@ -450,14 +505,19 @@ timevar_print (FILE *fp)
/* Print total time. */
fputs (_(" TOTAL :"), fp);
#ifdef HAVE_USER_TIME
- fprintf (fp, "%7.2f ", total->user);
+ /* APPLE LOCAL time formatting */
+ fprintf (fp, "%7.2f", total->user);
#endif
#ifdef HAVE_SYS_TIME
- fprintf (fp, "%7.2f ", total->sys);
+ /* APPLE LOCAL time formatting */
+ fprintf (fp, " %7.2f", total->sys);
#endif
#ifdef HAVE_WALL_TIME
- fprintf (fp, "%7.2f\n", total->wall);
+ /* APPLE LOCAL time formatting */
+ fprintf (fp, " %7.2f", total->wall);
#endif
+ /* APPLE LOCAL time formatting */
+ putc ('\n', fp);
#ifdef ENABLE_CHECKING
fprintf (fp, "Extra diagnostic checks enabled; compiler may run slowly.\n");
diff --git a/gcc/timevar.def b/gcc/timevar.def
index e116f4bbfb2..7e38d9cacf1 100644
--- a/gcc/timevar.def
+++ b/gcc/timevar.def
@@ -87,7 +87,14 @@ DEFTIMEVAR (TV_TREE_DSE , "tree DSE")
DEFTIMEVAR (TV_TREE_MERGE_PHI , "PHI merge")
DEFTIMEVAR (TV_TREE_LOOP , "tree loop optimization")
DEFTIMEVAR (TV_TREE_LOOP_BOUNDS , "tree record loop bounds")
+/* APPLE LOCAL begin lno */
+DEFTIMEVAR (TV_MARK_MILOOPS , "mark maybe infinite loops")
+DEFTIMEVAR (TV_TREE_PREFETCH , "tree prefetching")
+DEFTIMEVAR (TV_DEP_GRAPH , "data dependences graph")
+/* APPLE LOCAL end lno */
DEFTIMEVAR (TV_LIM , "loop invariant motion")
+/* APPLE LOCAL lno */
+DEFTIMEVAR (TV_UNSWITCH , "loop unswitching")
DEFTIMEVAR (TV_TREE_LOOP_IVCANON , "tree canonical iv creation")
DEFTIMEVAR (TV_TREE_LOOP_UNSWITCH , "tree loop unswitching")
DEFTIMEVAR (TV_COMPLETE_UNROLL , "complete unrolling")
@@ -147,6 +154,8 @@ DEFTIMEVAR (TV_SHORTEN_BRANCH , "shorten branches")
DEFTIMEVAR (TV_REG_STACK , "reg stack")
DEFTIMEVAR (TV_FINAL , "final")
DEFTIMEVAR (TV_SYMOUT , "symout")
+/* APPLE LOCAL overload resolution */
+DEFTIMEVAR (TV_OV_RESOLUTION , "overload resolution")
DEFTIMEVAR (TV_VAR_TRACKING , "variable tracking")
/* Everything else in rest_of_compilation not included above. */
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 99704a43090..b1101fdaee7 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -108,6 +108,8 @@ static void init_asm_output (const char *);
static void finalize (void);
static void crash_signal (int) ATTRIBUTE_NORETURN;
+/* APPLE LOCAL interrupt signal handler (radar 2941633) --ilr */
+static void interrupt_signal (int) ATTRIBUTE_NORETURN;
static void setup_core_dumping (void);
static void compile_file (void);
@@ -199,22 +201,11 @@ enum graph_dump_types graph_dump_format;
/* Name for output file of assembly code, specified with -o. */
const char *asm_file_name;
+/* APPLE LOCAL ss2 */
+char *asm_file_name2;
-/* Nonzero means do optimizations. -O.
- Particular numeric values stand for particular amounts of optimization;
- thus, -O2 stores 2 here. However, the optimizations beyond the basic
- ones are not controlled directly by this variable. Instead, they are
- controlled by individual `flag_...' variables that are defaulted
- based on this variable. */
-
-int optimize = 0;
-
-/* Nonzero means optimize for size. -Os.
- The only valid values are zero and nonzero. When optimize_size is
- nonzero, optimize defaults to 2, but certain individual code
- bloating optimizations are disabled. */
-
-int optimize_size = 0;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
/* The FUNCTION_DECL for the function currently being compiled,
or 0 if between functions. */
@@ -252,6 +243,19 @@ int flag_signed_char;
int flag_short_enums;
+/* APPLE LOCAL begin -fast */
+/* Nonzero if we should perform SPEC oriented optimizations. */
+int flag_fast = 0;
+int flag_fastf = 0;
+int flag_fastcp = 0;
+/* APPLE LOCAL end -fast */
+
+/* APPLE LOCAL begin -ffppc 2001-08-01 --sts */
+/* Nonzero if the floating point precision control pass should
+ be performed. (x86 only really, but we pretend it's generic) */
+int flag_fppc = 0;
+/* APPLE LOCAL end -ffppc 2001-08-01 --sts */
+
/* Nonzero if structures and unions should be returned in memory.
This should only be defined if compatibility with another compiler or
@@ -265,11 +269,28 @@ int flag_short_enums;
int flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
+/* APPLE LOCAL begin fwritable strings */
+/* Nonzero for -fwritable-strings:
+ store string constants in data segment and don't uniquize them. */
+
+int flag_writable_strings = 0;
+/* APPLE LOCAL end fwritable strings */
+
+/* APPLE LOCAL Altivec */
+int flag_disable_opts_for_faltivec = 0;
+
/* 0 means straightforward implementation of complex divide acceptable.
1 means wide ranges of inputs must work for complex divide.
2 means C99-like requirements for complex multiply and divide. */
-int flag_complex_method = 0;
+int flag_complex_method = 1;
+
+/* APPLE LOCAL begin -fobey-inline */
+/* Nonzero for -fobey-inline: 'inline' keyword must be obeyed, regardless
+ of codesize. */
+
+int flag_obey_inline;
+/* APPLE LOCAL end -fobey-inline */
/* Nonzero means that we don't want inlining by virtue of -fno-inline,
not just because the tree inliner turned us off. */
@@ -325,6 +346,10 @@ rtx stack_limit_rtx;
one, unconditionally renumber instruction UIDs. */
int flag_renumber_insns = 1;
+/* APPLE LOCAL begin predictive compilation */
+int predictive_compilation = -1;
+/* APPLE LOCAL end predictive compilation */
+
/* Nonzero if we should track variables. When
flag_var_tracking == AUTODETECT_FLAG_VAR_TRACKING it will be set according
to optimize, debug_info_level and debug_hooks in process_options (). */
@@ -341,9 +366,11 @@ bool user_defined_section_attribute = false;
of two not less than the variable, for .align output. */
int align_loops_log;
-int align_loops_max_skip;
+/* APPLE LOCAL -falign-loops-max-skip */
+/* Delete int align_loops_max_skip; */
int align_jumps_log;
-int align_jumps_max_skip;
+/* APPLE LOCAL -falign-jumps-max-skip */
+/* Delete int align_jumps_max_skip; */
int align_labels_log;
int align_labels_max_skip;
int align_functions_log;
@@ -414,6 +441,11 @@ FILE *aux_info_file;
FILE *dump_file = NULL;
const char *dump_file_name;
+/* APPLE LOCAL begin ss2 */
+int flag_pch_file;
+int flag_save_repository;
+/* APPLE LOCAL end ss2 */
+
/* The current working directory of a translation. It's generally the
directory from which compilation was initiated, but a preprocessed
file may specify the original directory in which it was
@@ -575,6 +607,30 @@ floor_log2 (unsigned HOST_WIDE_INT x)
return t;
}
+/* APPLE LOCAL begin interrupt signal handler (radar 2941633) --ilr */
+/* If the compilation is interrupted do some cleanup. Any files created
+ by the compilation are deleted. The compilation is terminated from
+ here. */
+static void
+interrupt_signal (int signo ATTRIBUTE_UNUSED)
+{
+ /* Close the dump files. */
+ if (flag_gen_aux_info)
+ {
+ fclose (aux_info_file);
+ unlink (aux_info_file_name);
+ }
+ if (asm_out_file)
+ {
+ fclose (asm_out_file);
+ if (asm_file_name && *asm_file_name)
+ unlink (asm_file_name);
+ }
+
+ exit (FATAL_EXIT_CODE);
+}
+/* APPLE LOCAL end interrupt signal handler */
+
/* Return the logarithm of X, base 2, considering X unsigned,
if X is a power of 2. Otherwise, returns -1. */
@@ -781,6 +837,8 @@ wrapup_global_declarations (tree *vec, int len)
if (flag_unit_at_a_time && node->finalized)
needed = 0;
+ else if (node->alias)
+ needed = 0;
else if ((flag_unit_at_a_time && !cgraph_global_info_ready)
&& (TREE_USED (decl)
|| TREE_USED (DECL_ASSEMBLER_NAME (decl))))
@@ -935,6 +993,46 @@ warn_deprecated_use (tree node)
}
}
+/* APPLE LOCAL begin "unavailable" attribute (radar 2809697) --ilr */
+/* Warn about a use of an identifier which was marked deprecated. */
+void
+warn_unavailable_use (tree node)
+{
+ if (node == 0)
+ return;
+
+ if (DECL_P (node))
+ warning ("%qs is unavailable (declared at %s:%d)",
+ IDENTIFIER_POINTER (DECL_NAME (node)),
+ DECL_SOURCE_FILE (node), DECL_SOURCE_LINE (node));
+ else if (TYPE_P (node))
+ {
+ const char *what = NULL;
+ tree decl = TYPE_STUB_DECL (node);
+
+ if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)
+ what = IDENTIFIER_POINTER (TYPE_NAME (node));
+ else if (TREE_CODE (TYPE_NAME (node)) == TYPE_DECL
+ && DECL_NAME (TYPE_NAME (node)))
+ what = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node)));
+
+ if (what)
+ {
+ if (decl)
+ warning ("%qs is unavailable (declared at %s:%d)", what,
+ DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
+ else
+ warning ("%qs is unavailable", what);
+ }
+ else if (decl)
+ warning ("type is unavailable (declared at %s:%d)",
+ DECL_SOURCE_FILE (decl), DECL_SOURCE_LINE (decl));
+ else
+ warning ("type is unavailable");
+ }
+}
+/* APPLE LOCAL end "unavailable" attribute (radar 2809697) --ilr */
+
/* Save the current INPUT_LOCATION on the top entry in the
INPUT_FILE_STACK. Push a new entry for FILE and LINE, and set the
INPUT_LOCATION accordingly. */
@@ -1007,8 +1105,8 @@ compile_file (void)
return;
lang_hooks.decls.final_write_globals ();
-
cgraph_varpool_assemble_pending_decls ();
+ finish_aliases_2 ();
/* This must occur after the loop to output deferred functions.
Else the coverage initializer would not be emitted if all the
@@ -1043,9 +1141,6 @@ compile_file (void)
expander can also generate them. */
process_pending_assemble_externals ();
- /* Flush any pending equate directives. */
- process_pending_assemble_output_defs ();
-
/* Attach a special .ident directive to the end of the file to identify
the version of GCC which compiled this code. The format of the .ident
string is patterned after the ones produced by native SVR4 compilers. */
@@ -1326,6 +1421,18 @@ print_switch_values (FILE *file, int pos, int max,
continue;
if ((*p)[1] == 'd')
continue;
+ /* APPLE LOCAL begin -fast or -fastf or -fastcp */
+ if ((flag_fast || flag_fastf || flag_fastcp)
+ && (*p)[0] == '-' && (*p)[1] == 'O')
+ {
+ int optimize_val;
+ if ((*p)[2] == 's' && (*p)[3] == '\0')
+ continue;
+ optimize_val = read_integral_parameter (*p+2, 0, -1);
+ if (optimize_val != 3)
+ continue;
+ }
+ /* APPLE LOCAL end -fast or -fastf or -fastcp */
pos = print_single_switch (file, pos, max, indent, sep, term, *p, "");
}
@@ -1341,11 +1448,23 @@ print_switch_values (FILE *file, int pos, int max,
for (j = 0; j < cl_options_count; j++)
{
- if (!cl_options[j].flag_var
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ if (!(cl_options[j].flag_var || cl_options[j].access_flag)
|| !(cl_options[j].flags & CL_REPORT))
continue;
- if (cl_options[j].has_set_value)
+ if (cl_options[j].access_flag && !cl_options[j].has_set_value)
+ {
+ if (!(cl_options[j].access_flag (0, 0)))
+ continue;
+ }
+ else if (cl_options[j].access_flag && cl_options[j].has_set_value)
+ {
+ if ((cl_options[j].access_flag (0, 0)) != cl_options[j].set_value)
+ continue;
+ }
+ else if (cl_options[j].has_set_value)
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
{
if (*cl_options[j].flag_var != cl_options[j].set_value)
continue;
@@ -1409,7 +1528,19 @@ init_asm_output (const char *name)
if (!strcmp (asm_file_name, "-"))
asm_out_file = stdout;
else
- asm_out_file = fopen (asm_file_name, "w+b");
+ /* APPLE LOCAL begin ss2 */
+ {
+ if (flag_save_repository
+ && flag_pch_file && !flag_debug_only_used_symbols)
+ {
+ asm_file_name2 = (char *) xmalloc (strlen (asm_file_name) + 3);
+ sprintf (asm_file_name2, "%s.t", asm_file_name);
+ asm_out_file = fopen (asm_file_name2, "w+b");
+ }
+ else
+ asm_out_file = fopen (asm_file_name, "w+b");
+ }
+ /* APPLE LOCAL end ss2 */
if (asm_out_file == 0)
fatal_error ("can%'t open %s for writing: %m", asm_file_name);
}
@@ -1628,6 +1759,15 @@ general_init (const char *argv0)
#if defined SIGIOT && (!defined SIGABRT || SIGABRT != SIGIOT)
signal (SIGIOT, crash_signal);
#endif
+ /* APPLE LOCAL begin interrupt signal handler (radar 2941633) --ilr */
+ /* Handle compilation interrupts. */
+ if (signal (SIGINT, SIG_IGN) != SIG_IGN)
+ signal (SIGINT, interrupt_signal);
+ if (signal (SIGKILL, SIG_IGN) != SIG_IGN)
+ signal (SIGINT, interrupt_signal);
+ if (signal (SIGTERM, SIG_IGN) != SIG_IGN)
+ signal (SIGTERM, interrupt_signal);
+ /* APPLE LOCAL end interrupt signal handler */
#ifdef SIGFPE
signal (SIGFPE, crash_signal);
#endif
@@ -1635,6 +1775,22 @@ general_init (const char *argv0)
/* Other host-specific signal setup. */
(*host_hooks.extra_signals)();
+ /* APPLE LOCAL begin setrlimit */
+#ifdef RLIMIT_STACK
+ /* Get rid of any avoidable limit on stack size. */
+ {
+ struct rlimit rlim;
+
+ /* Set the stack limit huge. (Compiles normally work within
+ a megabyte of stack, but the normal limit on OSX is 512K for
+ some reason.) */
+ getrlimit (RLIMIT_STACK, &rlim);
+ rlim.rlim_cur = rlim.rlim_max;
+ setrlimit (RLIMIT_STACK, &rlim);
+ }
+#endif /* RLIMIT_STACK defined */
+ /* APPLE LOCAL end setrlimit */
+
/* Initialize the garbage-collector, string pools and tree type hash
table. */
init_ggc ();
@@ -1948,14 +2104,20 @@ process_options (void)
/* The presence of IEEE signaling NaNs, implies all math can trap. */
if (flag_signaling_nans)
flag_trapping_math = 1;
+
+ /* With -fcx-limited-range, we do cheap and quick complex arithmetic. */
+ if (flag_cx_limited_range)
+ flag_complex_method = 0;
+
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ cl_pf_opts_cooked = cl_pf_opts;
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
}
/* Initialize the compiler back end. */
static void
backend_init (void)
{
- init_adjust_machine_modes ();
-
init_emit_once (debug_info_level == DINFO_LEVEL_NORMAL
|| debug_info_level == DINFO_LEVEL_VERBOSE
#ifdef VMS_DEBUGGING_INFO
@@ -1977,7 +2139,11 @@ backend_init (void)
provide a dummy function context for them. */
init_dummy_function_start ();
init_expmed ();
- if (flag_caller_saves)
+ /* APPLE LOCAL begin 4111151 optimization pragmas */
+ /* We must do this if it will ever be turned on by pragmas. It's not
+ that expensive so just do it unconditionally. */
+ /* if (flag_caller_saves) */
+ /* APPLE LOCAL end 4111151 optimization pragmas */
init_caller_save ();
expand_dummy_function_end ();
}
@@ -2012,6 +2178,8 @@ lang_dependent_init (const char *name)
provide a dummy function context for them. */
init_dummy_function_start ();
init_expr_once ();
+ /* APPLE LOCAL lno */
+ init_set_costs ();
expand_dummy_function_end ();
/* If dbx symbol table desired, initialize writing it and output the
@@ -2053,7 +2221,13 @@ finalize (void)
{
if (ferror (asm_out_file) != 0)
fatal_error ("error writing to %s: %m", asm_file_name);
- if (fclose (asm_out_file) != 0)
+ /* APPLE LOCAL begin ss2 */
+ if (flag_save_repository
+ && flag_pch_file
+ && !flag_debug_only_used_symbols)
+ unlink (asm_file_name2);
+ else if (fclose (asm_out_file) != 0)
+ /* APPLE LOCAL end ss2 */
fatal_error ("error closing %s: %m", asm_file_name);
}
@@ -2092,6 +2266,11 @@ do_compile (void)
/* Don't do any more if an error has already occurred. */
if (!errorcount)
{
+ /* This must be run always, because it is needed to compute the FP
+ predefined macros, such as __LDBL_MAX__, for targets using non
+ default FP formats. */
+ init_adjust_machine_modes ();
+
/* Set up the back-end if requested. */
if (!no_backend)
backend_init ();
diff --git a/gcc/toplev.h b/gcc/toplev.h
index a1a388ba73f..e891c32d0ac 100644
--- a/gcc/toplev.h
+++ b/gcc/toplev.h
@@ -85,6 +85,8 @@ extern void announce_function (tree);
extern void error_for_asm (rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
extern void warning_for_asm (rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
extern void warn_deprecated_use (tree);
+/* APPLE LOCAL "unavailable" attribute (radar 2809697) */
+extern void warn_unavailable_use (tree);
#ifdef BUFSIZ
extern void output_quoted_string (FILE *, const char *);
@@ -120,21 +122,11 @@ extern int target_flags_explicit;
extern bool user_defined_section_attribute;
/* See toplev.c. */
-extern int flag_loop_optimize;
-extern int flag_crossjumping;
-extern int flag_if_conversion;
-extern int flag_if_conversion2;
+/* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
extern int flag_keep_static_consts;
-extern int flag_peel_loops;
-extern int flag_rerun_cse_after_loop;
-extern int flag_thread_jumps;
-extern int flag_tracer;
-extern int flag_unroll_loops;
-extern int flag_unroll_all_loops;
-extern int flag_unswitch_loops;
-extern int flag_cprop_registers;
extern int time_report;
extern int flag_tree_based_profiling;
+/* APPLE LOCAL end optimization pragmas 3124235/3420242 */
/* Things to do with target switches. */
extern void display_target_options (void);
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index cade864f191..a717ca77e00 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -440,6 +440,29 @@ create_bb (void *h, void *e, basic_block after)
Edge creation
---------------------------------------------------------------------------*/
+/* Fold COND_EXPR_COND of each COND_EXPR. */
+
+static void
+fold_cond_expr_cond (void)
+{
+ basic_block bb;
+
+ FOR_EACH_BB (bb)
+ {
+ tree stmt = last_stmt (bb);
+
+ if (stmt
+ && TREE_CODE (stmt) == COND_EXPR)
+ {
+ tree cond = fold (COND_EXPR_COND (stmt));
+ if (integer_zerop (cond))
+ COND_EXPR_COND (stmt) = integer_zero_node;
+ else if (integer_onep (cond))
+ COND_EXPR_COND (stmt) = integer_one_node;
+ }
+ }
+}
+
/* Join all the blocks in the flowgraph. */
static void
@@ -478,6 +501,9 @@ make_edges (void)
builder inserted for completeness. */
remove_fake_exit_edges ();
+ /* Fold COND_EXPR_COND of each COND_EXPR. */
+ fold_cond_expr_cond ();
+
/* Clean up the graph and warn for unreachable code. */
cleanup_tree_cfg ();
}
@@ -2198,14 +2224,7 @@ find_taken_edge (basic_block bb, tree val)
gcc_assert (is_ctrl_stmt (stmt));
gcc_assert (val);
- /* If VAL is a predicate of the form N RELOP N, where N is an
- SSA_NAME, we can usually determine its truth value. */
- if (COMPARISON_CLASS_P (val))
- val = fold (val);
-
- /* If VAL is not a constant, we can't determine which edge might
- be taken. */
- if (!really_constant_p (val))
+ if (TREE_CODE (val) != INTEGER_CST)
return NULL;
if (TREE_CODE (stmt) == COND_EXPR)
@@ -2229,20 +2248,14 @@ find_taken_edge_cond_expr (basic_block bb, tree val)
extract_true_false_edges_from_block (bb, &true_edge, &false_edge);
- /* Otherwise, try to determine which branch of the if() will be taken.
- If VAL is a constant but it can't be reduced to a 0 or a 1, then
- we don't really know which edge will be taken at runtime. This
- may happen when comparing addresses (e.g., if (&var1 == 4)). */
- if (integer_nonzerop (val))
- return true_edge;
- else if (integer_zerop (val))
- return false_edge;
- else
- return NULL;
+ /* APPLE LOCAL begin mainline 4102133 */
+ gcc_assert (TREE_CODE (val) == INTEGER_CST);
+ return (zero_p (val) ? false_edge : true_edge);
+ /* APPLE LOCAL end mainline 4102133 */
}
-/* Given a constant value VAL and the entry block BB to a SWITCH_EXPR
+/* Given an INTEGER_CST VAL and the entry block BB to a SWITCH_EXPR
statement, determine which edge will be taken out of the block. Return
NULL if any edge may be taken. */
@@ -2253,9 +2266,6 @@ find_taken_edge_switch_expr (basic_block bb, tree val)
basic_block dest_bb;
edge e;
- if (TREE_CODE (val) != INTEGER_CST)
- return NULL;
-
switch_expr = last_stmt (bb);
taken_case = find_case_label_for_value (switch_expr, val);
dest_bb = label_to_block (CASE_LABEL (taken_case));
@@ -4466,7 +4476,8 @@ tree_redirect_edge_and_branch (edge e, basic_block dest)
return ret;
if (e->dest == dest)
- return NULL;
+ /* APPLE LOCAL lno */
+ return e;
label = tree_block_label (dest);
@@ -4609,9 +4620,17 @@ tree_split_block (basic_block bb, void *stmt)
bsi_tgt = bsi_start (new_bb);
while (!bsi_end_p (bsi))
{
+ /* APPLE LOCAL lno */
+ bool was_modified;
act = bsi_stmt (bsi);
+ /* APPLE LOCAL lno */
+ was_modified = stmt_modified_p (act);
bsi_remove (&bsi);
bsi_insert_after (&bsi_tgt, act, BSI_NEW_STMT);
+ /* APPLE LOCAL begin lno */
+ if (!was_modified)
+ unmodify_stmt (act);
+ /* APPLE LOCAL end lno */
}
return new_bb;
@@ -5079,7 +5098,7 @@ tree_duplicate_sese_region (edge entry, edge exit,
free (region_copy);
unmark_all_for_rewrite ();
- BITMAP_XFREE (definitions);
+ BITMAP_FREE (definitions);
return true;
}
@@ -5272,12 +5291,21 @@ print_loop_ir (FILE *file)
/* Debugging loops structure at tree level. */
+/* APPLE LOCAL begin lno */
void
-debug_loop_ir (void)
+tree_debug_loops (void)
{
print_loop_ir (stderr);
}
+/* Debugging loops structure at tree level. */
+
+void
+tree_debug_loop (struct loop *loop)
+{
+ print_loop (stderr, loop, 0);
+}
+/* APPLE LOCAL end lno */
/* Return true if BB ends with a call, possibly followed by some
instructions that must stay with the call. Return false,
@@ -5287,6 +5315,10 @@ static bool
tree_block_ends_with_call_p (basic_block bb)
{
block_stmt_iterator bsi = bsi_last (bb);
+ /* APPLE LOCAL begin tree-profiling-branch --dbj */
+ if (bsi_end_p (bsi))
+ return false;
+ /* APPLE LOCAL end tree-profiling-branch --dbj */
return get_call_expr_in (bsi_stmt (bsi)) != NULL;
}
@@ -5297,8 +5329,15 @@ tree_block_ends_with_call_p (basic_block bb)
static bool
tree_block_ends_with_condjump_p (basic_block bb)
{
- tree stmt = tsi_stmt (bsi_last (bb).tsi);
- return (TREE_CODE (stmt) == COND_EXPR);
+ /* APPLE LOCAL begin tree-profiling-branch --dbj */
+ block_stmt_iterator bsi = bsi_last (bb);
+ if (!bsi_end_p (bsi))
+ {
+ tree stmt = bsi_stmt (bsi);
+ return (TREE_CODE (stmt) == COND_EXPR);
+ }
+ else return false;
+ /* APPLE LOCAL end tree-profiling-branch --dbj */
}
diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c
index 54960449217..25041f03f13 100644
--- a/gcc/tree-chrec.c
+++ b/gcc/tree-chrec.c
@@ -1,5 +1,5 @@
/* Chains of recurrences.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Sebastian Pop <s.pop@laposte.net>
This file is part of GCC.
@@ -35,7 +35,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "varray.h"
#include "tree-chrec.h"
#include "tree-pass.h"
-
+/* APPLE LOCAL mainline 4080945/ PR 20742 */
+#include "params.h"
/* Extended folder for chrecs. */
@@ -286,11 +287,19 @@ chrec_fold_plus_1 (enum tree_code code,
build_int_cst_type (type, -1)));
default:
- if (tree_contains_chrecs (op0)
- || tree_contains_chrecs (op1))
- return build (code, type, op0, op1);
- else
- return fold (build (code, type, op0, op1));
+/* APPLE LOCAL begin mainline 4080945/ PR 20742 */
+ {
+ int size = 0;
+ if ((tree_contains_chrecs (op0, &size)
+ || tree_contains_chrecs (op1, &size))
+ && size < PARAM_VALUE (PARAM_SCEV_MAX_EXPR_SIZE))
+ return build2 (code, type, op0, op1);
+ else if (size < PARAM_VALUE (PARAM_SCEV_MAX_EXPR_SIZE))
+ return fold (build2 (code, type, op0, op1));
+ else
+ return chrec_dont_know;
+ }
+/* APPLE LOCAL end mainline 4080945/ PR 20742 */
}
}
}
@@ -383,63 +392,111 @@ chrec_fold_multiply (tree type,
/* Operations. */
-/* The factorial. */
-
+/* Evaluate the binomial coefficient. Return NULL_TREE if the intermediate
+ calculation overflows, otherwise return C(n,k) with type TYPE. */
+
static tree
-tree_fold_factorial (tree f)
+tree_fold_binomial (tree type, tree n, unsigned int k)
{
- if (tree_int_cst_sgn (f) <= 0)
- return integer_one_node;
+ unsigned HOST_WIDE_INT lidx, lnum, ldenom, lres, ldum;
+ HOST_WIDE_INT hidx, hnum, hdenom, hres, hdum;
+ unsigned int i;
+ tree res;
+
+ /* Handle the most frequent cases. */
+ if (k == 0)
+ return build_int_cst (type, 1);
+ if (k == 1)
+ return fold_convert (type, n);
+
+ /* Check that k <= n. */
+ if (TREE_INT_CST_HIGH (n) == 0
+ && TREE_INT_CST_LOW (n) < k)
+ return NULL_TREE;
+
+ /* Numerator = n. */
+ lnum = TREE_INT_CST_LOW (n);
+ hnum = TREE_INT_CST_HIGH (n);
+
+ /* Denominator = 2. */
+ ldenom = 2;
+ hdenom = 0;
+
+ /* Index = Numerator-1. */
+ if (lnum == 0)
+ {
+ hidx = hnum - 1;
+ lidx = ~ (unsigned HOST_WIDE_INT) 0;
+ }
else
- return fold
- (build (MULT_EXPR, integer_type_node, f,
- tree_fold_factorial (fold (build (MINUS_EXPR, integer_type_node,
- f, integer_one_node)))));
-}
+ {
+ hidx = hnum;
+ lidx = lnum - 1;
+ }
-/* The binomial coefficient. */
+ /* Numerator = Numerator*Index = n*(n-1). */
+ if (mul_double (lnum, hnum, lidx, hidx, &lnum, &hnum))
+ return NULL_TREE;
-static tree
-tree_fold_binomial (tree n,
- tree k)
-{
- return fold
- (build (EXACT_DIV_EXPR, integer_type_node, tree_fold_factorial (n),
- fold (build (MULT_EXPR, integer_type_node,
- tree_fold_factorial (k),
- tree_fold_factorial
- (fold (build (MINUS_EXPR, integer_type_node,
- n, k)))))));
+ for (i = 3; i <= k; i++)
+ {
+ /* Index--. */
+ if (lidx == 0)
+ {
+ hidx--;
+ lidx = ~ (unsigned HOST_WIDE_INT) 0;
+ }
+ else
+ lidx--;
+
+ /* Numerator *= Index. */
+ if (mul_double (lnum, hnum, lidx, hidx, &lnum, &hnum))
+ return NULL_TREE;
+
+ /* Denominator *= i. */
+ mul_double (ldenom, hdenom, i, 0, &ldenom, &hdenom);
+ }
+
+ /* Result = Numerator / Denominator. */
+ div_and_round_double (EXACT_DIV_EXPR, 1, lnum, hnum, ldenom, hdenom,
+ &lres, &hres, &ldum, &hdum);
+
+ res = build_int_cst_wide (type, lres, hres);
+ return int_fits_type_p (res, type) ? res : NULL_TREE;
}
/* Helper function. Use the Newton's interpolating formula for
evaluating the value of the evolution function. */
static tree
-chrec_evaluate (unsigned var,
- tree chrec,
- tree n,
- tree k)
+chrec_evaluate (unsigned var, tree chrec, tree n, unsigned int k)
{
- tree type = chrec_type (chrec);
- tree binomial_n_k = tree_fold_binomial (n, k);
-
- if (TREE_CODE (chrec) == POLYNOMIAL_CHREC)
+ tree arg0, arg1, binomial_n_k;
+ tree type = TREE_TYPE (chrec);
+
+ while (TREE_CODE (chrec) == POLYNOMIAL_CHREC
+ && CHREC_VARIABLE (chrec) > var)
+ chrec = CHREC_LEFT (chrec);
+
+ if (TREE_CODE (chrec) == POLYNOMIAL_CHREC
+ && CHREC_VARIABLE (chrec) == var)
{
- if (CHREC_VARIABLE (chrec) > var)
- return chrec_evaluate (var, CHREC_LEFT (chrec), n, k);
-
- if (CHREC_VARIABLE (chrec) == var)
- return chrec_fold_plus
- (type,
- fold (build (MULT_EXPR, type, binomial_n_k, CHREC_LEFT (chrec))),
- chrec_evaluate (var, CHREC_RIGHT (chrec), n,
- fold (build (PLUS_EXPR, type, k, integer_one_node))));
-
- return fold (build (MULT_EXPR, type, binomial_n_k, chrec));
+ arg0 = chrec_evaluate (var, CHREC_RIGHT (chrec), n, k + 1);
+ if (arg0 == chrec_dont_know)
+ return chrec_dont_know;
+ binomial_n_k = tree_fold_binomial (type, n, k);
+ if (!binomial_n_k)
+ return chrec_dont_know;
+ arg1 = fold (build2 (MULT_EXPR, type,
+ CHREC_LEFT (chrec), binomial_n_k));
+ return chrec_fold_plus (type, arg0, arg1);
}
- else
- return fold (build (MULT_EXPR, type, binomial_n_k, chrec));
+
+ binomial_n_k = tree_fold_binomial (type, n, k);
+ if (!binomial_n_k)
+ return chrec_dont_know;
+
+ return fold (build2 (MULT_EXPR, type, chrec, binomial_n_k));
}
/* Evaluates "CHREC (X)" when the varying variable is VAR.
@@ -493,7 +550,7 @@ chrec_apply (unsigned var,
else if (TREE_CODE (x) == INTEGER_CST
&& tree_int_cst_sgn (x) == 1)
/* testsuite/.../ssa-chrec-38.c. */
- res = chrec_evaluate (var, chrec, x, integer_zero_node);
+ res = chrec_evaluate (var, chrec, x, 0);
else
res = chrec_dont_know;
@@ -669,7 +726,8 @@ reset_evolution_in_loop (unsigned loop_num,
{
if (TREE_CODE (chrec) == POLYNOMIAL_CHREC
&& CHREC_VARIABLE (chrec) > loop_num)
- return build
+/* APPLE LOCAL mainline 4080945/ PR 20742 */
+ return build2
(TREE_CODE (chrec),
build_int_cst (NULL_TREE, CHREC_VARIABLE (chrec)),
reset_evolution_in_loop (loop_num, CHREC_LEFT (chrec), new_evol),
@@ -814,29 +872,36 @@ chrec_contains_undetermined (tree chrec)
}
}
-/* Determines whether the tree EXPR contains chrecs. */
+/* APPLE LOCAL begin mainline 4080945/ PR 20742 */
+/* Determines whether the tree EXPR contains chrecs, and increment
+ SIZE if it is not a NULL pointer by an estimation of the depth of
+ the tree. */
bool
-tree_contains_chrecs (tree expr)
+tree_contains_chrecs (tree expr, int *size)
{
if (expr == NULL_TREE)
return false;
+ if (size)
+ (*size)++;
+
if (tree_is_chrec (expr))
return true;
switch (TREE_CODE_LENGTH (TREE_CODE (expr)))
{
case 3:
- if (tree_contains_chrecs (TREE_OPERAND (expr, 2)))
+ if (tree_contains_chrecs (TREE_OPERAND (expr, 2), size))
return true;
case 2:
- if (tree_contains_chrecs (TREE_OPERAND (expr, 1)))
+ if (tree_contains_chrecs (TREE_OPERAND (expr, 1), size))
return true;
case 1:
- if (tree_contains_chrecs (TREE_OPERAND (expr, 0)))
+ if (tree_contains_chrecs (TREE_OPERAND (expr, 0), size))
+/* APPLE LOCAL end mainline 4080945/ PR 20742 */
return true;
default:
@@ -954,7 +1019,23 @@ nb_vars_in_chrec (tree chrec)
-/* Convert the initial condition of chrec to type. */
+/* Convert CHREC to TYPE. The following is rule is always true:
+ TREE_TYPE (chrec) == TREE_TYPE (CHREC_LEFT (chrec)) == TREE_TYPE
+ (CHREC_RIGHT (chrec)). An example of what could happen when adding
+ two chrecs and the type of the CHREC_RIGHT is different than
+ CHREC_LEFT is:
+
+ {(uint) 0, +, (uchar) 10} +
+ {(uint) 0, +, (uchar) 250}
+
+ that would produce a wrong result if CHREC_RIGHT is not (uint):
+
+ {(uint) 0, +, (uchar) 4}
+
+ instead of
+
+ {(uint) 0, +, (uint) 260}
+*/
tree
chrec_convert (tree type,
@@ -989,6 +1070,18 @@ chrec_convert (tree type,
TREE_OVERFLOW (res) = 0;
if (CONSTANT_CLASS_P (res))
TREE_CONSTANT_OVERFLOW (res) = 0;
+
+ /* But reject constants that don't fit in their type after conversion.
+ This can happen if TYPE_MIN_VALUE or TYPE_MAX_VALUE are not the
+ natural values associated with TYPE_PRECISION and TYPE_UNSIGNED,
+ and can cause problems later when computing niters of loops. Note
+ that we don't do the check before converting because we don't want
+ to reject conversions of negative chrecs to unsigned types. */
+ if (TREE_CODE (res) == INTEGER_CST
+ && TREE_CODE (type) == INTEGER_TYPE
+ && !int_fits_type_p (res, type))
+ res = chrec_dont_know;
+
return res;
}
}
diff --git a/gcc/tree-chrec.h b/gcc/tree-chrec.h
index a3e219086d2..36b87ff541a 100644
--- a/gcc/tree-chrec.h
+++ b/gcc/tree-chrec.h
@@ -87,7 +87,8 @@ extern bool chrec_is_positive (tree, bool *);
extern bool chrec_contains_symbols (tree);
extern bool chrec_contains_symbols_defined_in_loop (tree, unsigned);
extern bool chrec_contains_undetermined (tree);
-extern bool tree_contains_chrecs (tree);
+/* APPLE LOCAL mainline 4080945/ PR 20742 */
+extern bool tree_contains_chrecs (tree, int *);
extern bool evolution_function_is_affine_multivariate_p (tree);
extern bool evolution_function_is_univariate_p (tree);
extern unsigned nb_vars_in_chrec (tree);
@@ -183,7 +184,8 @@ evolution_function_is_affine_or_constant_p (tree chrec)
static inline bool
tree_does_not_contain_chrecs (tree expr)
{
- return !tree_contains_chrecs (expr);
+/* APPLE LOCAL mainline 4080945/ PR 20742 */
+ return !tree_contains_chrecs (expr, NULL);
}
/* Determines whether CHREC is a loop invariant with respect to LOOP_NUM.
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 55b34fbb73f..49062e1ae26 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -117,8 +117,6 @@ array_base_name_differ_p (struct data_reference *a,
ta = TREE_TYPE (base_a);
tb = TREE_TYPE (base_b);
- gcc_assert (!POINTER_TYPE_P (ta) && !POINTER_TYPE_P (tb));
-
/* Determine if same base. Example: for the array accesses
a[i], b[i] or pointer accesses *a, *b, bases are a, b. */
if (base_a == base_b)
@@ -652,7 +650,11 @@ all_chrecs_equal_p (tree chrec)
/* Determine for each subscript in the data dependence relation DDR
the distance. */
-static void
+/* APPLE LOCAL begin AV data dependence. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004.
+ Make this function externally visible. */
+void
+/* APPLE LOCAL end AV data dependence. -dpatel */
compute_subscript_distance (struct data_dependence_relation *ddr)
{
if (DDR_ARE_DEPENDENT (ddr) == NULL_TREE)
@@ -1775,7 +1777,11 @@ subscript_dependence_tester (struct data_dependence_relation *ddr)
starting at FIRST_LOOP_DEPTH.
Return TRUE otherwise. */
-static bool
+/* APPLE LOCAL begin AV data dependence. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004.
+ Make this function externally visible. */
+bool
+/* APPLE LOCAL end AV data dependence. -dpatel */
build_classic_dist_vector (struct data_dependence_relation *ddr,
int nb_loops, int first_loop_depth)
{
diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h
index ea3bb7ddd30..629901cb99d 100644
--- a/gcc/tree-data-ref.h
+++ b/gcc/tree-data-ref.h
@@ -155,6 +155,13 @@ extern tree find_data_references_in_loop (struct loop *, varray_type *);
extern struct data_dependence_relation *initialize_data_dependence_relation
(struct data_reference *, struct data_reference *);
extern void compute_affine_dependence (struct data_dependence_relation *);
+/* APPLE LOCAL begin AV data dependence. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004.
+ Make these two functions externally visible. */
+extern void compute_subscript_distance (struct data_dependence_relation *);
+extern bool build_classic_dist_vector (struct data_dependence_relation *, int,
+ int);
+/* APPLE LOCAL end AV data dependence. -dpatel */
extern void analyze_all_data_dependences (struct loops *);
extern void compute_data_dependences_for_loop (unsigned, struct loop *,
varray_type *, varray_type *);
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 70bbd7a7ab2..b591ffb5e7e 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -956,7 +956,7 @@ mark_new_vars_to_rename (tree stmt, bitmap vars_to_rename)
int v_may_defs_before, v_may_defs_after;
int v_must_defs_before, v_must_defs_after;
- vars_in_vops_to_rename = BITMAP_XMALLOC ();
+ vars_in_vops_to_rename = BITMAP_ALLOC (NULL);
/* Before re-scanning the statement for operands, mark the existing
virtual operands to be renamed again. We do this because when new
@@ -1005,7 +1005,7 @@ mark_new_vars_to_rename (tree stmt, bitmap vars_to_rename)
|| v_must_defs_before > v_must_defs_after)
bitmap_ior_into (vars_to_rename, vars_in_vops_to_rename);
- BITMAP_XFREE (vars_in_vops_to_rename);
+ BITMAP_FREE (vars_in_vops_to_rename);
}
/* Find all variables within the gimplified statement that were not previously
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 20660e4e279..b21654a10d9 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -755,7 +755,7 @@ lower_try_finally_fallthru_label (struct leh_tf_state *tf)
alternative considered below. For the nonce, we always choose the first
option.
- THIS_STATE may be null if if this is a try-cleanup, not a try-finally. */
+ THIS_STATE may be null if this is a try-cleanup, not a try-finally. */
static void
honor_protect_cleanup_actions (struct leh_state *outer_state,
@@ -1038,47 +1038,72 @@ lower_try_finally_copy (struct leh_state *state, struct leh_tf_state *tf)
{
struct goto_queue_node *q, *qe;
tree return_val = NULL;
- int return_index;
- tree *labels;
+ int return_index, index;
+ struct
+ {
+ struct goto_queue_node *q;
+ tree label;
+ } *labels;
if (tf->dest_array)
return_index = VARRAY_ACTIVE_SIZE (tf->dest_array);
else
return_index = 0;
- labels = xcalloc (sizeof (tree), return_index + 1);
+ labels = xcalloc (sizeof (*labels), return_index + 1);
q = tf->goto_queue;
qe = q + tf->goto_queue_active;
for (; q < qe; q++)
{
- int index = q->index < 0 ? return_index : q->index;
- tree lab = labels[index];
- bool build_p = false;
+ index = q->index < 0 ? return_index : q->index;
- if (!lab)
- {
- labels[index] = lab = create_artificial_label ();
- build_p = true;
- }
+ if (!labels[index].q)
+ labels[index].q = q;
+ }
+
+ for (index = 0; index < return_index + 1; index++)
+ {
+ tree lab;
+
+ q = labels[index].q;
+ if (! q)
+ continue;
+
+ lab = labels[index].label = create_artificial_label ();
if (index == return_index)
do_return_redirection (q, lab, NULL, &return_val);
else
do_goto_redirection (q, lab, NULL);
- if (build_p)
- {
- x = build1 (LABEL_EXPR, void_type_node, lab);
- append_to_statement_list (x, &new_stmt);
+ x = build1 (LABEL_EXPR, void_type_node, lab);
+ append_to_statement_list (x, &new_stmt);
- x = lower_try_finally_dup_block (finally, state);
- lower_eh_constructs_1 (state, &x);
- append_to_statement_list (x, &new_stmt);
+ x = lower_try_finally_dup_block (finally, state);
+ lower_eh_constructs_1 (state, &x);
+ append_to_statement_list (x, &new_stmt);
- append_to_statement_list (q->cont_stmt, &new_stmt);
- maybe_record_in_goto_queue (state, q->cont_stmt);
- }
+ append_to_statement_list (q->cont_stmt, &new_stmt);
+ maybe_record_in_goto_queue (state, q->cont_stmt);
+ }
+
+ for (q = tf->goto_queue; q < qe; q++)
+ {
+ tree lab;
+
+ index = q->index < 0 ? return_index : q->index;
+
+ if (labels[index].q == q)
+ continue;
+
+ lab = labels[index].label;
+
+ if (index == return_index)
+ do_return_redirection (q, lab, NULL, &return_val);
+ else
+ do_goto_redirection (q, lab, NULL);
}
+
replace_goto_queue (tf);
free (labels);
}
@@ -1194,7 +1219,6 @@ lower_try_finally_switch (struct leh_state *state, struct leh_tf_state *tf)
q = tf->goto_queue;
qe = q + tf->goto_queue_active;
j = last_case_index + tf->may_return;
- last_case_index += nlabels;
for (; q < qe; ++q)
{
tree mod;
@@ -1217,20 +1241,37 @@ lower_try_finally_switch (struct leh_state *state, struct leh_tf_state *tf)
case_index = j + q->index;
if (!TREE_VEC_ELT (case_label_vec, case_index))
- {
- last_case = build (CASE_LABEL_EXPR, void_type_node,
- build_int_cst (NULL_TREE, switch_id), NULL,
- create_artificial_label ());
- TREE_VEC_ELT (case_label_vec, case_index) = last_case;
-
- x = build (LABEL_EXPR, void_type_node, CASE_LABEL (last_case));
- append_to_statement_list (x, &switch_body);
- append_to_statement_list (q->cont_stmt, &switch_body);
- maybe_record_in_goto_queue (state, q->cont_stmt);
- }
+ TREE_VEC_ELT (case_label_vec, case_index)
+ = build (CASE_LABEL_EXPR, void_type_node,
+ build_int_cst (NULL_TREE, switch_id), NULL,
+ /* We store the cont_stmt in the
+ CASE_LABEL, so that we can recover it
+ in the loop below. We don't create
+ the new label while walking the
+ goto_queue because pointers don't
+ offer a stable order. */
+ q->cont_stmt);
+ }
+ for (j = last_case_index; j < last_case_index + nlabels; j++)
+ {
+ tree label;
+ tree cont_stmt;
+
+ last_case = TREE_VEC_ELT (case_label_vec, j);
+
+ gcc_assert (last_case);
+
+ cont_stmt = CASE_LABEL (last_case);
+
+ label = create_artificial_label ();
+ CASE_LABEL (last_case) = label;
+
+ x = build (LABEL_EXPR, void_type_node, label);
+ append_to_statement_list (x, &switch_body);
+ append_to_statement_list (cont_stmt, &switch_body);
+ maybe_record_in_goto_queue (state, cont_stmt);
}
replace_goto_queue (tf);
- last_case_index += nlabels;
/* Make sure that the last case is the default label, as one is required.
Then sort the labels, which is also required in GIMPLE. */
@@ -1840,6 +1881,13 @@ tree_could_trap_p (tree expr)
return true;
return false;
+ case CALL_EXPR:
+ t = get_callee_fndecl (expr);
+ /* Assume that calls to weak functions may trap. */
+ if (!t || !DECL_P (t) || DECL_WEAK (t))
+ return true;
+ return false;
+
default:
/* Any floating arithmetic may trap. */
if (fp_operation && flag_trapping_math)
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 80ad68680a8..d74bc89cb82 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -474,6 +474,10 @@ extern void debug_tree_cfg (int);
extern void dump_cfg_stats (FILE *);
extern void debug_cfg_stats (void);
extern void debug_loop_ir (void);
+/* APPLE LOCAL begin lno */
+extern void tree_debug_loop (struct loop *);
+extern void tree_debug_loops (void);
+/* APPLE LOCAL end lno */
extern void print_loop_ir (FILE *);
extern void cleanup_dead_labels (void);
extern void group_case_labels (void);
@@ -657,6 +661,9 @@ bool empty_block_p (basic_block);
/* In tree-ssa-loop*.c */
+/* APPLE LOCAL begin loops-to-memset */
+void tree_ssa_memset (struct loops *);
+/* APPLE LOCAL end loops-to-memset */
void tree_ssa_lim (struct loops *);
void tree_ssa_unswitch_loops (struct loops *);
void canonicalize_induction_variables (struct loops *);
@@ -704,6 +711,13 @@ enum move_pos
};
extern enum move_pos movement_possibility (tree);
+/* APPLE LOCAL begin lno */
+/* In tree-ssa-loop*.c */
+struct loops *tree_loop_optimizer_init (FILE *);
+void tree_ssa_prefetch_arrays (struct loops *);
+void mark_maybe_infinite_loops (struct loops *);
+/* APPLE LOCAL end lno */
+
/* In tree-flow-inline.h */
static inline bool is_call_clobbered (tree);
static inline void mark_call_clobbered (tree);
diff --git a/gcc/tree-gimple.c b/gcc/tree-gimple.c
index 61d2ec74ace..717c945993f 100644
--- a/gcc/tree-gimple.c
+++ b/gcc/tree-gimple.c
@@ -180,7 +180,8 @@ is_gimple_min_invariant (tree t)
case STRING_CST:
case COMPLEX_CST:
case VECTOR_CST:
- return !TREE_OVERFLOW (t);
+ /* APPLE LOCAL mainline 4102133 */
+ return true;
default:
return false;
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index fbcbe1ca5d7..c07c04cd9b2 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -821,7 +821,8 @@ process_phi_nodes (struct loop *loop)
/* Replace phi nodes with cond. modify expr. */
for (i = 1; i < orig_loop_num_nodes; i++)
{
- tree phi, cond;
+ /* APPLE LOCAL dunno why this is necessary */
+ tree phi, cond = NULL_TREE;
block_stmt_iterator bsi;
basic_block true_bb = NULL;
bb = ifc_bbs[i];
@@ -830,7 +831,7 @@ process_phi_nodes (struct loop *loop)
continue;
phi = phi_nodes (bb);
- bsi = bsi_start (bb);
+ bsi = bsi_after_labels (bb);
/* BB has two predecessors. Using predecessor's aux field, set
appropriate condition for the PHI node replacement. */
@@ -858,7 +859,8 @@ combine_blocks (struct loop *loop)
basic_block bb, exit_bb, merge_target_bb;
unsigned int orig_loop_num_nodes = loop->num_nodes;
unsigned int i;
-
+ unsigned int n_exits;
+ edge *exits = get_loop_exit_edges (loop, &n_exits);
/* Process phi nodes to prepare blocks for merge. */
process_phi_nodes (loop);
@@ -903,11 +905,23 @@ combine_blocks (struct loop *loop)
continue;
/* It is time to remove this basic block. First remove edges. */
- while (EDGE_COUNT (bb->succs) > 0)
- remove_edge (EDGE_SUCC (bb, 0));
while (EDGE_COUNT (bb->preds) > 0)
remove_edge (EDGE_PRED (bb, 0));
+ /* This is loop latch and loop does not have exit then do not
+ delete this basic block. Just remove its PREDS and reconnect
+ loop->header and loop->latch blocks. */
+ if (bb == loop->latch && n_exits == 0)
+ {
+ exits = NULL; /* To suppress unused warning. */
+ make_edge (loop->header, loop->latch, EDGE_FALLTHRU);
+ set_immediate_dominator (CDI_DOMINATORS, loop->latch, loop->header);
+ continue;
+ }
+
+ while (EDGE_COUNT (bb->succs) > 0)
+ remove_edge (EDGE_SUCC (bb, 0));
+
/* Remove labels and make stmts member of loop->header. */
for (bsi = bsi_start (bb); !bsi_end_p (bsi); )
{
@@ -1017,7 +1031,7 @@ get_loop_body_in_if_conv_order (const struct loop *loop)
gcc_assert (loop->latch != EXIT_BLOCK_PTR);
blocks = xcalloc (loop->num_nodes, sizeof (basic_block));
- visited = BITMAP_XMALLOC ();
+ visited = BITMAP_ALLOC (NULL);
blocks_in_bfs_order = get_loop_body_in_bfs_order (loop);
@@ -1029,7 +1043,7 @@ get_loop_body_in_if_conv_order (const struct loop *loop)
if (bb->flags & BB_IRREDUCIBLE_LOOP)
{
free (blocks_in_bfs_order);
- BITMAP_XFREE (visited);
+ BITMAP_FREE (visited);
free (blocks);
return NULL;
}
@@ -1052,7 +1066,7 @@ get_loop_body_in_if_conv_order (const struct loop *loop)
}
}
free (blocks_in_bfs_order);
- BITMAP_XFREE (visited);
+ BITMAP_FREE (visited);
return blocks;
}
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 120bab0fb21..d567a565fb7 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -173,6 +173,11 @@ remap_decl (tree decl, inline_data *id)
/* Make a copy of the variable or label. */
tree t = copy_decl_for_inlining (decl, fn, VARRAY_TREE (id->fns, 0));
+ /* Remember it, so that if we encounter this local entity again
+ we can reuse this copy. Do this early because remap_type may
+ need this decl for TYPE_STUB_DECL. */
+ insert_decl_map (id, decl, t);
+
/* Remap types, if necessary. */
TREE_TYPE (t) = remap_type (TREE_TYPE (t), id);
if (TREE_CODE (t) == TYPE_DECL)
@@ -215,9 +220,6 @@ remap_decl (tree decl, inline_data *id)
}
#endif
- /* Remember it, so that if we encounter this local entity
- again we can reuse this copy. */
- insert_decl_map (id, decl, t);
return t;
}
@@ -286,6 +288,9 @@ remap_type (tree type, inline_data *id)
TYPE_NEXT_VARIANT (new) = NULL;
}
+ if (TYPE_STUB_DECL (type))
+ TYPE_STUB_DECL (new) = remap_decl (TYPE_STUB_DECL (type), id);
+
/* Lazily create pointer and reference types. */
TYPE_POINTER_TO (new) = NULL;
TYPE_REFERENCE_TO (new) = NULL;
@@ -1014,6 +1019,17 @@ inline_forbidden_p_1 (tree *nodep, int *walk_subtrees ATTRIBUTE_UNUSED,
"it uses non-local goto");
return node;
+ case BUILT_IN_RETURN:
+ case BUILT_IN_APPLY_ARGS:
+ /* If a __builtin_apply_args caller would be inlined,
+ it would be saving arguments of the function it has
+ been inlined into. Similarly __builtin_return would
+ return from the function the inline has been inlined into. */
+ inline_forbidden_reason
+ = N_("%Jfunction %qF can never be inlined because "
+ "it uses __builtin_return or __builtin_apply_args");
+ return node;
+
default:
break;
}
@@ -1165,6 +1181,23 @@ inlinable_function_p (tree fn)
return inlinable;
}
+/* Estimate the cost of a memory move. Use machine dependent
+ word size and take possible memcpy call into account. */
+
+int
+estimate_move_cost (tree type)
+{
+ HOST_WIDE_INT size;
+
+ size = int_size_in_bytes (type);
+
+ if (size < 0 || size > MOVE_MAX_PIECES * MOVE_RATIO)
+ /* Cost of a memcpy call, 3 arguments and the call. */
+ return 4;
+ else
+ return ((size + MOVE_MAX_PIECES - 1) / MOVE_MAX_PIECES);
+}
+
/* Used by estimate_num_insns. Estimate number of instructions seen
by given statement. */
@@ -1243,28 +1276,50 @@ estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
*walk_subtrees = 0;
return NULL;
- /* Recognize assignments of large structures and constructors of
- big arrays. */
+ /* Try to estimate the cost of assignments. We have three cases to
+ deal with:
+ 1) Simple assignments to registers;
+ 2) Stores to things that must live in memory. This includes
+ "normal" stores to scalars, but also assignments of large
+ structures, or constructors of big arrays;
+ 3) TARGET_EXPRs.
+
+ Let us look at the first two cases, assuming we have "a = b + C":
+ <modify_expr <var_decl "a"> <plus_expr <var_decl "b"> <constant C>>
+ If "a" is a GIMPLE register, the assignment to it is free on almost
+ any target, because "a" usually ends up in a real register. Hence
+ the only cost of this expression comes from the PLUS_EXPR, and we
+ can ignore the MODIFY_EXPR.
+ If "a" is not a GIMPLE register, the assignment to "a" will most
+ likely be a real store, so the cost of the MODIFY_EXPR is the cost
+ of moving something into "a", which we compute using the function
+ estimate_move_cost.
+
+ The third case deals with TARGET_EXPRs, for which the semantics are
+ that a temporary is assigned, unless the TARGET_EXPR itself is being
+ assigned to something else. In the latter case we do not need the
+ temporary. E.g. in <modify_expr <var_decl "a"> <target_expr>>, the
+ MODIFY_EXPR is free. */
case INIT_EXPR:
case MODIFY_EXPR:
- x = TREE_OPERAND (x, 0);
- /* FALLTHRU */
+ /* Is the right and side a TARGET_EXPR? */
+ if (TREE_CODE (TREE_OPERAND (x, 1)) == TARGET_EXPR)
+ break;
+ /* ... fall through ... */
+
case TARGET_EXPR:
+ x = TREE_OPERAND (x, 0);
+ /* Is this an assignments to a register? */
+ if (is_gimple_reg (x))
+ break;
+ /* Otherwise it's a store, so fall through to compute the move cost. */
+
case CONSTRUCTOR:
- {
- HOST_WIDE_INT size;
-
- size = int_size_in_bytes (TREE_TYPE (x));
-
- if (size < 0 || size > MOVE_MAX_PIECES * MOVE_RATIO)
- *count += 10;
- else
- *count += ((size + MOVE_MAX_PIECES - 1) / MOVE_MAX_PIECES);
- }
+ *count += estimate_move_cost (TREE_TYPE (x));
break;
- /* Assign cost of 1 to usual operations.
- ??? We may consider mapping RTL costs to this. */
+ /* Assign cost of 1 to usual operations.
+ ??? We may consider mapping RTL costs to this. */
case COND_EXPR:
case PLUS_EXPR:
@@ -1351,6 +1406,7 @@ estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
case CALL_EXPR:
{
tree decl = get_callee_fndecl (x);
+ tree arg;
if (decl && DECL_BUILT_IN_CLASS (decl) == BUILT_IN_NORMAL)
switch (DECL_FUNCTION_CODE (decl))
@@ -1363,7 +1419,21 @@ estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
default:
break;
}
- *count += 10;
+
+ /* Our cost must be kept in sync with cgraph_estimate_size_after_inlining
+ that does use function declaration to figure out the arguments. */
+ if (!decl)
+ {
+ for (arg = TREE_OPERAND (x, 1); arg; arg = TREE_CHAIN (arg))
+ *count += estimate_move_cost (TREE_TYPE (TREE_VALUE (arg)));
+ }
+ else
+ {
+ for (arg = DECL_ARGUMENTS (decl); arg; arg = TREE_CHAIN (arg))
+ *count += estimate_move_cost (TREE_TYPE (arg));
+ }
+
+ *count += PARAM_VALUE (PARAM_INLINE_CALL_COST);
break;
}
default:
@@ -1524,6 +1594,13 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data)
if (! lang_hooks.tree_inlining.start_inlining (fn))
goto egress;
+ /* APPLE LOCAL begin 4113078 */
+ /* If we inline a vector-containing function into one that didn't,
+ mark the outer function as vector-containing. */
+ if (DECL_STRUCT_FUNCTION (edge->callee->decl)->uses_vector)
+ DECL_STRUCT_FUNCTION (edge->caller->decl)->uses_vector = 1;
+ /* APPLE LOCAL end 4113078 */
+
/* Build a block containing code to initialize the arguments, the
actual inline expansion of the body, and a label for the return
statements within the function to jump to. The type of the
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h
index a8e9de6c4c8..467f6bb929f 100644
--- a/gcc/tree-inline.h
+++ b/gcc/tree-inline.h
@@ -29,6 +29,7 @@ bool tree_inlinable_function_p (tree);
tree copy_tree_r (tree *, int *, void *);
void clone_body (tree, tree, void *);
tree save_body (tree, tree *, tree *);
+int estimate_move_cost (tree type);
int estimate_num_insns (tree expr);
/* 0 if we should not perform inlining.
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index c6124e24a16..271c1ff8938 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -54,7 +54,6 @@ Boston, MA 02111-1307, USA. */
Graph. ACM Transactions on Programming Languages and Systems,
13(4):451-490, October 1991. */
-
/* Structure to map a variable VAR to the set of blocks that contain
definitions for VAR. */
struct def_blocks_d
@@ -66,7 +65,7 @@ struct def_blocks_d
Ith block contains a definition of VAR. */
bitmap def_blocks;
- /* Blocks that contain a phi node for VAR. */
+ /* Blocks that contain a PHI node for VAR. */
bitmap phi_blocks;
/* Blocks where VAR is live-on-entry. Similar semantics as
@@ -74,6 +73,7 @@ struct def_blocks_d
bitmap livein_blocks;
};
+
/* Each entry in DEF_BLOCKS contains an element of type STRUCT
DEF_BLOCKS_D, mapping a variable VAR to a bitmap describing all the
basic blocks where VAR is defined (assigned a new value). It also
@@ -87,19 +87,18 @@ static htab_t def_blocks;
state after completing rewriting of a block and its dominator children.
This vector is used in two contexts. The first is rewriting of _DECL
- nodes into SSA_NAMEs. In that context it's elements have the
+ nodes into SSA_NAMEs. In that context its elements have the
following properties:
An SSA_NAME indicates that the current definition of the underlying
variable should be set to the given SSA_NAME.
-
+
A _DECL node indicates that the underlying variable has no current
definition.
-
+
A NULL node is used to mark the last node associated with the
current block.
-
This vector is also used when rewriting an SSA_NAME which has multiple
definition sites into multiple SSA_NAMEs. In that context entries come
in pairs.
@@ -127,8 +126,8 @@ struct mark_def_sites_global_data
sbitmap names_to_rename;
};
-/* Information stored for ssa names. */
+/* Information stored for ssa names. */
struct ssa_name_info
{
/* This field indicates whether or not the variable may need PHI nodes.
@@ -140,31 +139,6 @@ struct ssa_name_info
tree current_def;
};
-/* Local functions. */
-static void rewrite_finalize_block (struct dom_walk_data *, basic_block);
-static void rewrite_initialize_block (struct dom_walk_data *, basic_block);
-static void rewrite_add_phi_arguments (struct dom_walk_data *, basic_block);
-static void mark_def_sites (struct dom_walk_data *walk_data,
- basic_block bb, block_stmt_iterator);
-static void mark_def_sites_initialize_block (struct dom_walk_data *walk_data,
- basic_block bb);
-static void set_def_block (tree, basic_block, bool, bool);
-static void set_livein_block (tree, basic_block);
-static bool prepare_use_operand_for_rename (use_operand_p, size_t *uid_p);
-static bool prepare_def_operand_for_rename (tree def, size_t *uid_p);
-static void insert_phi_nodes (bitmap *, bitmap);
-static void rewrite_stmt (struct dom_walk_data *, basic_block,
- block_stmt_iterator);
-static inline void rewrite_operand (use_operand_p);
-static void insert_phi_nodes_for (tree, bitmap *, VEC(basic_block) **);
-static tree get_reaching_def (tree);
-static hashval_t def_blocks_hash (const void *);
-static int def_blocks_eq (const void *, const void *);
-static void def_blocks_free (void *);
-static int debug_def_blocks_r (void **, void *);
-static inline struct def_blocks_d *get_def_blocks_for (tree);
-static inline struct def_blocks_d *find_def_blocks_for (tree);
-static void htab_statistics (FILE *, htab_t);
/* Use TREE_VISITED to keep track of which statements we want to
rename. When renaming a subset of the variables, not all
@@ -183,6 +157,7 @@ get_ssa_name_ann (tree name)
return SSA_NAME_AUX (name);
}
+
/* Gets phi_state field for VAR. */
static inline enum need_phi_state
@@ -194,6 +169,7 @@ get_phi_state (tree var)
return var_ann (var)->need_phi_state;
}
+
/* Sets phi_state field for VAR to STATE. */
static inline void
@@ -205,6 +181,7 @@ set_phi_state (tree var, enum need_phi_state state)
var_ann (var)->need_phi_state = state;
}
+
/* Return the current definition for VAR. */
static inline tree
@@ -216,6 +193,7 @@ get_current_def (tree var)
return var_ann (var)->current_def;
}
+
/* Sets current definition of VAR to DEF. */
static inline void
@@ -227,6 +205,7 @@ set_current_def (tree var, tree def)
var_ann (var)->current_def = def;
}
+
/* Compute global livein information given the set of blockx where
an object is locally live at the start of the block (LIVEIN)
and the set of blocks where the object is defined (DEF_BLOCKS).
@@ -280,78 +259,154 @@ compute_global_livein (bitmap livein, bitmap def_blocks)
}
-/* Block initialization routine for mark_def_sites. Clear the
- KILLS bitmap at the start of each block. */
+/* Return the set of blocks where variable VAR is defined and the blocks
+ where VAR is live on entry (livein). If no entry is found in
+ DEF_BLOCKS, a new one is created and returned. */
-static void
-mark_def_sites_initialize_block (struct dom_walk_data *walk_data,
- basic_block bb ATTRIBUTE_UNUSED)
+static inline struct def_blocks_d *
+get_def_blocks_for (tree var)
{
- struct mark_def_sites_global_data *gd = walk_data->global_data;
- bitmap kills = gd->kills;
+ struct def_blocks_d db, *db_p;
+ void **slot;
- bitmap_clear (kills);
+ db.var = var;
+ slot = htab_find_slot (def_blocks, (void *) &db, INSERT);
+ if (*slot == NULL)
+ {
+ db_p = xmalloc (sizeof (*db_p));
+ db_p->var = var;
+ db_p->def_blocks = BITMAP_ALLOC (NULL);
+ db_p->phi_blocks = BITMAP_ALLOC (NULL);
+ db_p->livein_blocks = BITMAP_ALLOC (NULL);
+ *slot = (void *) db_p;
+ }
+ else
+ db_p = (struct def_blocks_d *) *slot;
+
+ return db_p;
}
-/* Block initialization routine for mark_def_sites. Clear the
- KILLS bitmap at the start of each block. */
+
+/* Mark block BB as the definition site for variable VAR. PHI_P is true if
+ VAR is defined by a PHI node. IS_UPDATE is true if the caller is
+ updating an existing SSA form. */
static void
-ssa_mark_def_sites_initialize_block (struct dom_walk_data *walk_data,
- basic_block bb)
+set_def_block (tree var, basic_block bb, bool phi_p, bool is_update)
{
- struct mark_def_sites_global_data *gd = walk_data->global_data;
- bitmap kills = gd->kills;
- tree phi, def;
- unsigned def_uid;
+ struct def_blocks_d *db_p;
+ enum need_phi_state state;
- bitmap_clear (kills);
+ if (!is_update && TREE_CODE (var) == SSA_NAME)
+ var = SSA_NAME_VAR (var);
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
- {
- def = PHI_RESULT (phi);
- def_uid = SSA_NAME_VERSION (def);
+ state = get_phi_state (var);
+ db_p = get_def_blocks_for (var);
- if (!TEST_BIT (gd->names_to_rename, def_uid))
- continue;
+ /* Set the bit corresponding to the block where VAR is defined. */
+ bitmap_set_bit (db_p->def_blocks, bb->index);
+ if (phi_p)
+ bitmap_set_bit (db_p->phi_blocks, bb->index);
- set_def_block (def, bb, true, true);
- bitmap_set_bit (kills, def_uid);
- }
+ /* Keep track of whether or not we may need to insert PHI nodes.
+
+ If we are in the UNKNOWN state, then this is the first definition
+ of VAR. Additionally, we have not seen any uses of VAR yet, so
+ we do not need a PHI node for this variable at this time (i.e.,
+ transition to NEED_PHI_STATE_NO).
+
+ If we are in any other state, then we either have multiple definitions
+ of this variable occurring in different blocks or we saw a use of the
+ variable which was not dominated by the block containing the
+ definition(s). In this case we may need a PHI node, so enter
+ state NEED_PHI_STATE_MAYBE. */
+ if (state == NEED_PHI_STATE_UNKNOWN)
+ set_phi_state (var, NEED_PHI_STATE_NO);
+ else
+ set_phi_state (var, NEED_PHI_STATE_MAYBE);
}
-/* Marks ssa names used as arguments of phis at the end of BB. */
+
+/* Mark block BB as having VAR live at the entry to BB. */
static void
-ssa_mark_phi_uses (struct dom_walk_data *walk_data, basic_block bb)
+set_livein_block (tree var, basic_block bb)
{
- struct mark_def_sites_global_data *gd = walk_data->global_data;
- bitmap kills = gd->kills;
- edge e;
- tree phi, use;
- unsigned uid;
- edge_iterator ei;
+ struct def_blocks_d *db_p;
+ enum need_phi_state state = get_phi_state (var);
- FOR_EACH_EDGE (e, ei, bb->succs)
- {
- if (e->dest == EXIT_BLOCK_PTR)
- continue;
+ db_p = get_def_blocks_for (var);
- for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
- {
- use = PHI_ARG_DEF_FROM_EDGE (phi, e);
- if (TREE_CODE (use) != SSA_NAME)
- continue;
+ /* Set the bit corresponding to the block where VAR is live in. */
+ bitmap_set_bit (db_p->livein_blocks, bb->index);
- uid = SSA_NAME_VERSION (use);
+ /* Keep track of whether or not we may need to insert PHI nodes.
- if (TEST_BIT (gd->names_to_rename, uid)
- && !bitmap_bit_p (kills, uid))
- set_livein_block (use, bb);
- }
+ If we reach here in NEED_PHI_STATE_NO, see if this use is dominated
+ by the single block containing the definition(s) of this variable. If
+ it is, then we remain in NEED_PHI_STATE_NO, otherwise we transition to
+ NEED_PHI_STATE_MAYBE. */
+ if (state == NEED_PHI_STATE_NO)
+ {
+ int def_block_index = bitmap_first_set_bit (db_p->def_blocks);
+
+ if (def_block_index == -1
+ || ! dominated_by_p (CDI_DOMINATORS, bb,
+ BASIC_BLOCK (def_block_index)))
+ set_phi_state (var, NEED_PHI_STATE_MAYBE);
}
+ else
+ set_phi_state (var, NEED_PHI_STATE_MAYBE);
+}
+
+
+/* If the use operand pointed to by OP_P needs to be renamed, then strip away
+ any SSA_NAME wrapping the operand, set *UID_P to the underlying variable's
+ uid, and return true. Otherwise return false. If the operand was an
+ SSA_NAME, change it to the stripped name. */
+
+static bool
+prepare_use_operand_for_rename (use_operand_p op_p, size_t *uid_p)
+{
+ tree use = USE_FROM_PTR (op_p);
+ tree var = (TREE_CODE (use) != SSA_NAME) ? use : SSA_NAME_VAR (use);
+ *uid_p = var_ann (var)->uid;
+
+ /* Ignore variables that don't need to be renamed. */
+ if (vars_to_rename && !bitmap_bit_p (vars_to_rename, *uid_p))
+ return false;
+
+ /* The variable needs to be renamed. If this is a use which already
+ has an SSA_NAME, then strip it off.
+
+ By not throwing away SSA_NAMEs on assignments, we avoid a lot of
+ useless churn of SSA_NAMEs without having to overly complicate the
+ renamer. */
+ if (TREE_CODE (use) == SSA_NAME)
+ SET_USE (op_p, var);
+
+ return true;
}
+
+/* If the def variable DEF needs to be renamed, then strip away any SSA_NAME
+ wrapping the operand, set *UID_P to the underlying variable's uid and return
+ true. Otherwise return false. */
+
+static bool
+prepare_def_operand_for_rename (tree def, size_t *uid_p)
+{
+ tree var = (TREE_CODE (def) != SSA_NAME) ? def : SSA_NAME_VAR (def);
+ *uid_p = var_ann (var)->uid;
+
+ /* Ignore variables that don't need to be renamed. */
+ if (vars_to_rename && !bitmap_bit_p (vars_to_rename, *uid_p))
+ return false;
+
+ return true;
+}
+
+
/* Call back for walk_dominator_tree used to collect definition sites
for every variable in the function. For every statement S in block
BB:
@@ -434,179 +489,133 @@ mark_def_sites (struct dom_walk_data *walk_data,
}
-/* Same as mark_def_sites, but works over SSA names. */
+/* Given a set of blocks with variable definitions (DEF_BLOCKS),
+ return a bitmap with all the blocks in the iterated dominance
+ frontier of the blocks in DEF_BLOCKS. DFS contains dominance
+ frontier information as returned by compute_dominance_frontiers.
+
+ The resulting set of blocks are the potential sites where PHI nodes
+ are needed. The caller is responsible from freeing the memory
+ allocated for the return value. */
-static void
-ssa_mark_def_sites (struct dom_walk_data *walk_data,
- basic_block bb,
- block_stmt_iterator bsi)
+static bitmap
+find_idf (bitmap def_blocks, bitmap *dfs)
{
- struct mark_def_sites_global_data *gd = walk_data->global_data;
- bitmap kills = gd->kills;
- size_t uid, def_uid;
- tree stmt, use, def;
- ssa_op_iter iter;
+ bitmap_iterator bi;
+ unsigned bb_index;
+ VEC(basic_block) *work_stack;
+ bitmap phi_insertion_points;
- /* Mark all the blocks that have definitions for each variable in the
- names_to_rename bitmap. */
- stmt = bsi_stmt (bsi);
- get_stmt_operands (stmt);
+ work_stack = VEC_alloc (basic_block, n_basic_blocks);
+ phi_insertion_points = BITMAP_ALLOC (NULL);
- /* If a variable is used before being set, then the variable is live
- across a block boundary, so mark it live-on-entry to BB. */
- FOR_EACH_SSA_TREE_OPERAND (use, stmt, iter, SSA_OP_ALL_USES | SSA_OP_ALL_KILLS)
- {
- uid = SSA_NAME_VERSION (use);
+ /* Seed the work list with all the blocks in DEF_BLOCKS. */
+ EXECUTE_IF_SET_IN_BITMAP (def_blocks, 0, bb_index, bi)
+ VEC_safe_push (basic_block, work_stack, BASIC_BLOCK (bb_index));
- if (TEST_BIT (gd->names_to_rename, uid)
- && !bitmap_bit_p (kills, uid))
- set_livein_block (use, bb);
- }
-
- /* Now process the definition made by this statement. Mark the
- variables in KILLS. */
- FOR_EACH_SSA_TREE_OPERAND (def, stmt, iter, SSA_OP_ALL_DEFS)
+ /* Pop a block off the worklist, add every block that appears in
+ the original block's DF that we have not already processed to
+ the worklist. Iterate until the worklist is empty. Blocks
+ which are added to the worklist are potential sites for
+ PHI nodes. */
+ while (VEC_length (basic_block, work_stack) > 0)
{
- def_uid = SSA_NAME_VERSION (def);
-
- if (TEST_BIT (gd->names_to_rename, def_uid))
+ basic_block bb = VEC_pop (basic_block, work_stack);
+ bb_index = bb->index;
+
+ EXECUTE_IF_AND_COMPL_IN_BITMAP (dfs[bb_index], phi_insertion_points,
+ 0, bb_index, bi)
{
- set_def_block (def, bb, false, true);
- bitmap_set_bit (kills, def_uid);
+ bb = BASIC_BLOCK (bb_index);
+
+ /* Use a safe push because if there is a definition of VAR
+ in every basic block, then WORK_STACK may eventually have
+ more than N_BASIC_BLOCK entries. */
+ VEC_safe_push (basic_block, work_stack, bb);
+ bitmap_set_bit (phi_insertion_points, bb_index);
}
}
-}
-
-/* Mark block BB as the definition site for variable VAR. PHI_P is true if
- VAR is defined by a phi node. SSA_P is true if we are called from
- rewrite_ssa_into_ssa. */
-
-static void
-set_def_block (tree var, basic_block bb, bool phi_p, bool ssa_p)
-{
- struct def_blocks_d *db_p;
- enum need_phi_state state;
-
- if (!ssa_p
- && TREE_CODE (var) == SSA_NAME)
- var = SSA_NAME_VAR (var);
- state = get_phi_state (var);
- db_p = get_def_blocks_for (var);
+ VEC_free (basic_block, work_stack);
- /* Set the bit corresponding to the block where VAR is defined. */
- bitmap_set_bit (db_p->def_blocks, bb->index);
- if (phi_p)
- bitmap_set_bit (db_p->phi_blocks, bb->index);
+ return phi_insertion_points;
+}
- /* Keep track of whether or not we may need to insert phi nodes.
- If we are in the UNKNOWN state, then this is the first definition
- of VAR. Additionally, we have not seen any uses of VAR yet, so
- we do not need a phi node for this variable at this time (i.e.,
- transition to NEED_PHI_STATE_NO).
+/* Return the set of blocks where variable VAR is defined and the blocks
+ where VAR is live on entry (livein). Return NULL, if no entry is
+ found in DEF_BLOCKS. */
- If we are in any other state, then we either have multiple definitions
- of this variable occurring in different blocks or we saw a use of the
- variable which was not dominated by the block containing the
- definition(s). In this case we may need a PHI node, so enter
- state NEED_PHI_STATE_MAYBE. */
- if (state == NEED_PHI_STATE_UNKNOWN)
- set_phi_state (var, NEED_PHI_STATE_NO);
- else
- set_phi_state (var, NEED_PHI_STATE_MAYBE);
+static inline struct def_blocks_d *
+find_def_blocks_for (tree var)
+{
+ struct def_blocks_d dm;
+ dm.var = var;
+ return (struct def_blocks_d *) htab_find (def_blocks, &dm);
}
-/* Mark block BB as having VAR live at the entry to BB. */
+/* Insert PHI nodes for variable VAR using the iterated dominance
+ frontier given in PHI_INSERTION_POINTS. */
static void
-set_livein_block (tree var, basic_block bb)
+insert_phi_nodes_for (tree var, bitmap phi_insertion_points)
{
- struct def_blocks_d *db_p;
- enum need_phi_state state = get_phi_state (var);
+ unsigned bb_index;
+ edge e;
+ tree phi;
+ basic_block bb;
+ bitmap_iterator bi;
+ struct def_blocks_d *def_map;
- db_p = get_def_blocks_for (var);
+ def_map = find_def_blocks_for (var);
- /* Set the bit corresponding to the block where VAR is live in. */
- bitmap_set_bit (db_p->livein_blocks, bb->index);
+ /* Remove the blocks where we already have PHI nodes for VAR. */
+ bitmap_and_compl_into (phi_insertion_points, def_map->phi_blocks);
- /* Keep track of whether or not we may need to insert phi nodes.
+ /* Now compute global livein for this variable. Note this modifies
+ def_map->livein_blocks. */
+ compute_global_livein (def_map->livein_blocks, def_map->def_blocks);
- If we reach here in NEED_PHI_STATE_NO, see if this use is dominated
- by the single block containing the definition(s) of this variable. If
- it is, then we remain in NEED_PHI_STATE_NO, otherwise we transition to
- NEED_PHI_STATE_MAYBE. */
- if (state == NEED_PHI_STATE_NO)
+ /* And insert the PHI nodes. */
+ EXECUTE_IF_AND_IN_BITMAP (phi_insertion_points, def_map->livein_blocks,
+ 0, bb_index, bi)
{
- int def_block_index = bitmap_first_set_bit (db_p->def_blocks);
+ bb = BASIC_BLOCK (bb_index);
+ phi = create_phi_node (var, bb);
- if (def_block_index == -1
- || ! dominated_by_p (CDI_DOMINATORS, bb,
- BASIC_BLOCK (def_block_index)))
- set_phi_state (var, NEED_PHI_STATE_MAYBE);
+ /* If we are rewriting SSA names, add also the PHI arguments. */
+ if (TREE_CODE (var) == SSA_NAME)
+ {
+ edge_iterator ei;
+ FOR_EACH_EDGE (e, ei, bb->preds)
+ add_phi_arg (phi, var, e);
+ }
}
- else
- set_phi_state (var, NEED_PHI_STATE_MAYBE);
}
-/* If the use operand pointed to by OP_P needs to be renamed, then strip away
- any SSA_NAME wrapping the operand, set *UID_P to the underlying variable's
- uid, and return true. Otherwise return false. If the operand was an
- SSA_NAME, change it to the stripped name. */
+/* Helper for insert_phi_nodes. If VAR needs PHI nodes, insert them
+ at the dominance frontier (DFS) of blocks defining VAR. */
-static bool
-prepare_use_operand_for_rename (use_operand_p op_p, size_t *uid_p)
+static inline void
+insert_phi_nodes_1 (tree var, bitmap *dfs)
{
- tree use = USE_FROM_PTR (op_p);
- tree var = (TREE_CODE (use) != SSA_NAME) ? use : SSA_NAME_VAR (use);
- *uid_p = var_ann (var)->uid;
-
- /* Ignore variables that don't need to be renamed. */
- if (vars_to_rename && !bitmap_bit_p (vars_to_rename, *uid_p))
- return false;
-
- /* The variable needs to be renamed. If this is a use which already
- has an SSA_NAME, then strip it off.
-
- By not throwing away SSA_NAMEs on assignments, we avoid a lot of
- useless churn of SSA_NAMEs without having to overly complicate the
- renamer. */
- if (TREE_CODE (use) == SSA_NAME)
- SET_USE (op_p, var);
-
- return true;
-}
+ struct def_blocks_d *def_map;
+ bitmap idf;
-/* If the def variable DEF needs to be renamed, then strip away any SSA_NAME
- wrapping the operand, set *UID_P to the underlying variable's uid and return
- true. Otherwise return false. */
+ def_map = find_def_blocks_for (var);
+ if (def_map == NULL)
+ return;
-static bool
-prepare_def_operand_for_rename (tree def, size_t *uid_p)
-{
- tree var = (TREE_CODE (def) != SSA_NAME) ? def : SSA_NAME_VAR (def);
- *uid_p = var_ann (var)->uid;
+ idf = find_idf (def_map->def_blocks, dfs);
- /* Ignore variables that don't need to be renamed. */
- if (vars_to_rename && !bitmap_bit_p (vars_to_rename, *uid_p))
- return false;
+ if (get_phi_state (var) != NEED_PHI_STATE_NO)
+ insert_phi_nodes_for (var, idf);
- return true;
+ BITMAP_FREE (idf);
}
-/* Helper for insert_phi_nodes. If VAR needs PHI nodes, insert them
- at the dominance frontier (DFS) of blocks defining VAR.
- WORK_STACK is the vector used to implement the worklist of basic
- blocks. */
-
-static inline void
-insert_phi_nodes_1 (tree var, bitmap *dfs, VEC(basic_block) **work_stack)
-{
- if (get_phi_state (var) != NEED_PHI_STATE_NO)
- insert_phi_nodes_for (var, dfs, work_stack);
-}
/* Insert PHI nodes at the dominance frontier of blocks with variable
definitions. DFS contains the dominance frontier information for
@@ -620,15 +629,10 @@ static void
insert_phi_nodes (bitmap *dfs, bitmap names_to_rename)
{
unsigned i;
- VEC(basic_block) *work_stack;
bitmap_iterator bi;
timevar_push (TV_TREE_INSERT_PHI_NODES);
- /* Vector WORK_STACK is a stack of CFG blocks. Each block that contains
- an assignment or PHI node will be pushed to this stack. */
- work_stack = VEC_alloc (basic_block, n_basic_blocks);
-
/* Iterate over all variables in VARS_TO_RENAME. For each variable, add
to the work list all the blocks that have a definition for the
variable. PHI nodes will be added to the dominance frontier blocks of
@@ -636,26 +640,62 @@ insert_phi_nodes (bitmap *dfs, bitmap names_to_rename)
if (names_to_rename)
{
EXECUTE_IF_SET_IN_BITMAP (names_to_rename, 0, i, bi)
- {
- if (ssa_name (i))
- insert_phi_nodes_1 (ssa_name (i), dfs, &work_stack);
- }
+ if (ssa_name (i))
+ insert_phi_nodes_1 (ssa_name (i), dfs);
}
else if (vars_to_rename)
- EXECUTE_IF_SET_IN_BITMAP (vars_to_rename, 0, i, bi)
- {
- insert_phi_nodes_1 (referenced_var (i), dfs, &work_stack);
- }
+ {
+ EXECUTE_IF_SET_IN_BITMAP (vars_to_rename, 0, i, bi)
+ insert_phi_nodes_1 (referenced_var (i), dfs);
+ }
else
- for (i = 0; i < num_referenced_vars; i++)
- insert_phi_nodes_1 (referenced_var (i), dfs, &work_stack);
-
- VEC_free (basic_block, work_stack);
+ {
+ for (i = 0; i < num_referenced_vars; i++)
+ insert_phi_nodes_1 (referenced_var (i), dfs);
+ }
timevar_pop (TV_TREE_INSERT_PHI_NODES);
}
+/* Register DEF (an SSA_NAME) to be a new definition for its underlying
+ variable (SSA_NAME_VAR (DEF)) and push VAR's current reaching definition
+ into the stack pointed by BLOCK_DEFS_P. */
+
+void
+register_new_def (tree def, VEC (tree_on_heap) **block_defs_p)
+{
+ tree var = SSA_NAME_VAR (def);
+ tree currdef;
+
+ /* If this variable is set in a single basic block and all uses are
+ dominated by the set(s) in that single basic block, then there is
+ no reason to record anything for this variable in the block local
+ definition stacks. Doing so just wastes time and memory.
+
+ This is the same test to prune the set of variables which may
+ need PHI nodes. So we just use that information since it's already
+ computed and available for us to use. */
+ if (get_phi_state (var) == NEED_PHI_STATE_NO)
+ {
+ set_current_def (var, def);
+ return;
+ }
+
+ currdef = get_current_def (var);
+
+ /* Push the current reaching definition into *BLOCK_DEFS_P. This stack is
+ later used by the dominator tree callbacks to restore the reaching
+ definitions for all the variables defined in the block after a recursive
+ visit to all its immediately dominated blocks. If there is no current
+ reaching definition, then just record the underlying _DECL node. */
+ VEC_safe_push (tree_on_heap, *block_defs_p, currdef ? currdef : var);
+
+ /* Set the current reaching definition for VAR to be DEF. */
+ set_current_def (var, def);
+}
+
+
/* Perform a depth-first traversal of the dominator tree looking for
variables to rename. BB is the block where to start searching.
Renaming is a five step process:
@@ -702,84 +742,123 @@ rewrite_initialize_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
{
tree result = PHI_RESULT (phi);
-
register_new_def (result, &block_defs_stack);
}
}
-/* Register DEF (an SSA_NAME) to be a new definition for the original
- ssa name VAR and push VAR's current reaching definition
- into the stack pointed by BLOCK_DEFS_P. */
-static void
-ssa_register_new_def (tree var, tree def)
+/* Return the current definition for variable VAR. If none is found,
+ create a new SSA name to act as the zeroth definition for VAR. If VAR
+ is call clobbered and there exists a more recent definition of
+ GLOBAL_VAR, return the definition for GLOBAL_VAR. This means that VAR
+ has been clobbered by a function call since its last assignment. */
+
+static tree
+get_reaching_def (tree var)
{
- tree currdef;
-
- /* If this variable is set in a single basic block and all uses are
- dominated by the set(s) in that single basic block, then there is
- nothing to do. TODO we should not be called at all, and just
- keep the original name. */
- if (get_phi_state (var) == NEED_PHI_STATE_NO)
+ tree default_d, currdef_var, avar;
+
+ /* Lookup the current reaching definition for VAR. */
+ default_d = NULL_TREE;
+ currdef_var = get_current_def (var);
+
+ /* If there is no reaching definition for VAR, create and register a
+ default definition for it (if needed). */
+ if (currdef_var == NULL_TREE)
{
- set_current_def (var, def);
- return;
+ if (TREE_CODE (var) == SSA_NAME)
+ avar = SSA_NAME_VAR (var);
+ else
+ avar = var;
+
+ default_d = default_def (avar);
+ if (default_d == NULL_TREE)
+ {
+ default_d = make_ssa_name (avar, build_empty_stmt ());
+ set_default_def (avar, default_d);
+ }
+ set_current_def (var, default_d);
}
- currdef = get_current_def (var);
+ /* Return the current reaching definition for VAR, or the default
+ definition, if we had to create one. */
+ return (currdef_var) ? currdef_var : default_d;
+}
- /* Push the current reaching definition into *BLOCK_DEFS_P. This stack is
- later used by the dominator tree callbacks to restore the reaching
- definitions for all the variables defined in the block after a recursive
- visit to all its immediately dominated blocks. */
- VEC_safe_push (tree_on_heap, block_defs_stack, currdef);
- VEC_safe_push (tree_on_heap, block_defs_stack, var);
- /* Set the current reaching definition for VAR to be DEF. */
- set_current_def (var, def);
+/* Replace the operand pointed by OP_P with its immediate reaching
+ definition. */
+
+static inline void
+rewrite_operand (use_operand_p op_p)
+{
+ tree var = USE_FROM_PTR (op_p);
+ if (TREE_CODE (var) != SSA_NAME)
+ SET_USE (op_p, get_reaching_def (var));
+ else
+ {
+#if defined ENABLE_CHECKING
+ /* If we get to this point, VAR is an SSA_NAME. If VAR's symbol
+ was marked for renaming, make sure that its reaching
+ definition is VAR itself. Otherwise, something has gone
+ wrong. */
+ tree sym = SSA_NAME_VAR (var);
+ if (bitmap_bit_p (vars_to_rename, var_ann (sym)->uid))
+ gcc_assert (var == get_reaching_def (SSA_NAME_VAR (var)));
+#endif
+ }
}
-/* Ditto, for rewriting ssa names. */
+
+/* SSA Rewriting Step 2. Rewrite every variable used in each statement in
+ the block with its immediate reaching definitions. Update the current
+ definition of a variable when a new real or virtual definition is found. */
static void
-ssa_rewrite_initialize_block (struct dom_walk_data *walk_data, basic_block bb)
+rewrite_stmt (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
+ basic_block bb ATTRIBUTE_UNUSED,
+ block_stmt_iterator si)
{
- tree phi, new_name;
- sbitmap names_to_rename = walk_data->global_data;
- edge e;
- bool abnormal_phi;
- edge_iterator ei;
+ stmt_ann_t ann;
+ tree stmt;
+ use_operand_p use_p;
+ def_operand_p def_p;
+ ssa_op_iter iter;
+
+ stmt = bsi_stmt (si);
+ ann = stmt_ann (stmt);
+
+ /* If mark_def_sites decided that we don't need to rewrite this
+ statement, ignore it. */
+ if (!REWRITE_THIS_STMT (stmt))
+ return;
if (dump_file && (dump_flags & TDF_DETAILS))
- fprintf (dump_file, "\n\nRenaming block #%d\n\n", bb->index);
+ {
+ fprintf (dump_file, "Renaming statement ");
+ print_generic_stmt (dump_file, stmt, TDF_SLIM);
+ fprintf (dump_file, "\n");
+ }
- /* Mark the unwind point for this block. */
- VEC_safe_push (tree_on_heap, block_defs_stack, NULL_TREE);
+ get_stmt_operands (stmt);
- FOR_EACH_EDGE (e, ei, bb->preds)
- if (e->flags & EDGE_ABNORMAL)
- break;
- abnormal_phi = (e != NULL);
+ /* Step 1. Rewrite USES and VUSES in the statement. */
+ FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_ALL_USES | SSA_OP_ALL_KILLS)
+ rewrite_operand (use_p);
- /* Step 1. Register new definitions for every PHI node in the block.
- Conceptually, all the PHI nodes are executed in parallel and each PHI
- node introduces a new version for the associated variable. */
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ /* Step 2. Register the statement's DEF and VDEF operands. */
+ FOR_EACH_SSA_DEF_OPERAND (def_p, stmt, iter, SSA_OP_ALL_DEFS)
{
- tree result = PHI_RESULT (phi);
-
- if (TEST_BIT (names_to_rename, SSA_NAME_VERSION (result)))
- {
- new_name = duplicate_ssa_name (result, phi);
- SET_PHI_RESULT (phi, new_name);
+ if (TREE_CODE (DEF_FROM_PTR (def_p)) != SSA_NAME)
+ SET_DEF (def_p, make_ssa_name (DEF_FROM_PTR (def_p), stmt));
- if (abnormal_phi)
- SSA_NAME_OCCURS_IN_ABNORMAL_PHI (new_name) = 1;
- ssa_register_new_def (result, new_name);
- }
+ /* FIXME: We shouldn't be registering new defs if the variable
+ doesn't need to be renamed. */
+ register_new_def (DEF_FROM_PTR (def_p), &block_defs_stack);
}
}
+
/* SSA Rewriting Step 3. Visit all the successor blocks of BB looking for
PHI nodes. For every PHI node found, add a new argument containing the
current reaching definition for the variable and the edge through which
@@ -812,9 +891,10 @@ rewrite_add_phi_arguments (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
}
}
+
/* Rewrite existing virtual PHI arguments so that they have the correct
reaching definitions. BB is the basic block whose successors contain the
- phi nodes we want to add arguments for. */
+ PHI nodes we want to add arguments for. */
static void
rewrite_virtual_phi_arguments (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
@@ -848,42 +928,10 @@ rewrite_virtual_phi_arguments (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
}
}
-/* Ditto, for ssa name rewriting. */
-
-static void
-ssa_rewrite_phi_arguments (struct dom_walk_data *walk_data, basic_block bb)
-{
- edge e;
- sbitmap names_to_rename = walk_data->global_data;
- use_operand_p op;
- edge_iterator ei;
-
- FOR_EACH_EDGE (e, ei, bb->succs)
- {
- tree phi;
- if (e->dest == EXIT_BLOCK_PTR)
- continue;
+/* Called after visiting basic block BB. Restore CURRDEFS to its
+ original value. */
- for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
- {
- op = PHI_ARG_DEF_PTR_FROM_EDGE (phi, e);
- if (TREE_CODE (USE_FROM_PTR (op)) != SSA_NAME)
- continue;
-
- if (!TEST_BIT (names_to_rename, SSA_NAME_VERSION (USE_FROM_PTR (op))))
- continue;
-
- SET_USE (op, get_reaching_def (USE_FROM_PTR (op)));
- if (e->flags & EDGE_ABNORMAL)
- SSA_NAME_OCCURS_IN_ABNORMAL_PHI (USE_FROM_PTR (op)) = 1;
- }
- }
-}
-
-
-/* Similar to restore_vars_to_original_value, except that it restores
- CURRDEFS to its original value. */
static void
rewrite_finalize_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
basic_block bb ATTRIBUTE_UNUSED)
@@ -916,28 +964,6 @@ rewrite_finalize_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
}
}
-/* Ditto, for rewriting ssa names. */
-
-static void
-ssa_rewrite_finalize_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
- basic_block bb ATTRIBUTE_UNUSED)
-{
-
- /* Step 5. Restore the current reaching definition for each variable
- referenced in the block (in reverse order). */
- while (VEC_length (tree_on_heap, block_defs_stack) > 0)
- {
- tree var = VEC_pop (tree_on_heap, block_defs_stack);
- tree saved_def;
-
- if (var == NULL)
- break;
-
- saved_def = VEC_pop (tree_on_heap, block_defs_stack);
-
- set_current_def (var, saved_def);
- }
-}
/* Dump SSA information to FILE. */
@@ -969,29 +995,6 @@ debug_tree_ssa (void)
}
-/* Dump SSA statistics on FILE. */
-
-void
-dump_tree_ssa_stats (FILE *file)
-{
- fprintf (file, "\nHash table statistics:\n");
-
- fprintf (file, " def_blocks: ");
- htab_statistics (file, def_blocks);
-
- fprintf (file, "\n");
-}
-
-
-/* Dump SSA statistics on stderr. */
-
-void
-debug_tree_ssa_stats (void)
-{
- dump_tree_ssa_stats (stderr);
-}
-
-
/* Dump statistics for the hash table HTAB. */
static void
@@ -1004,288 +1007,26 @@ htab_statistics (FILE *file, htab_t htab)
}
-/* Insert PHI nodes for variable VAR using the dominance frontier
- information given in DFS. WORK_STACK is the vector used to
- implement the worklist of basic blocks. */
-
-static void
-insert_phi_nodes_for (tree var, bitmap *dfs, VEC(basic_block) **work_stack)
-{
- struct def_blocks_d *def_map;
- bitmap phi_insertion_points;
- unsigned bb_index;
- edge e;
- tree phi;
- basic_block bb;
- bitmap_iterator bi;
-
- def_map = find_def_blocks_for (var);
- if (def_map == NULL)
- return;
-
- phi_insertion_points = BITMAP_XMALLOC ();
-
- EXECUTE_IF_SET_IN_BITMAP (def_map->def_blocks, 0, bb_index, bi)
- {
- VEC_safe_push (basic_block, *work_stack, BASIC_BLOCK (bb_index));
- }
-
- /* Pop a block off the worklist, add every block that appears in
- the original block's dfs that we have not already processed to
- the worklist. Iterate until the worklist is empty. Blocks
- which are added to the worklist are potential sites for
- PHI nodes.
-
- The iteration step could be done during PHI insertion just as
- easily. We do it here for historical reasons -- we used to have
- a heuristic which used the potential PHI insertion points to
- determine if fully pruned or semi pruned SSA form was appropriate.
-
- We now always use fully pruned SSA form. */
- while (VEC_length (basic_block, *work_stack) > 0)
- {
- unsigned dfs_index;
- bitmap_iterator bi;
-
- bb = VEC_pop (basic_block, *work_stack);
- bb_index = bb->index;
-
- EXECUTE_IF_AND_COMPL_IN_BITMAP (dfs[bb_index],
- phi_insertion_points,
- 0, dfs_index, bi)
- {
- basic_block bb = BASIC_BLOCK (dfs_index);
-
- /* Use a safe push because if there is a definition of VAR
- in every basic block, then WORK_STACK may eventually have
- more than N_BASIC_BLOCK entries. */
- VEC_safe_push (basic_block, *work_stack, bb);
- bitmap_set_bit (phi_insertion_points, dfs_index);
- }
- }
-
- /* Remove the blocks where we already have the phis. */
- bitmap_and_compl_into (phi_insertion_points, def_map->phi_blocks);
-
- /* Now compute global livein for this variable. Note this modifies
- def_map->livein_blocks. */
- compute_global_livein (def_map->livein_blocks, def_map->def_blocks);
-
- /* And insert the PHI nodes. */
- EXECUTE_IF_AND_IN_BITMAP (phi_insertion_points, def_map->livein_blocks,
- 0, bb_index, bi)
- {
- bb = BASIC_BLOCK (bb_index);
-
- phi = create_phi_node (var, bb);
-
- /* If we are rewriting ssa names, add also the phi arguments. */
- if (TREE_CODE (var) == SSA_NAME)
- {
- edge_iterator ei;
- FOR_EACH_EDGE (e, ei, bb->preds)
- add_phi_arg (phi, var, e);
- }
- }
-
- BITMAP_XFREE (phi_insertion_points);
-}
-
-/* SSA Rewriting Step 2. Rewrite every variable used in each statement in
- the block with its immediate reaching definitions. Update the current
- definition of a variable when a new real or virtual definition is found. */
-
-static void
-rewrite_stmt (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
- basic_block bb ATTRIBUTE_UNUSED,
- block_stmt_iterator si)
-{
- stmt_ann_t ann;
- tree stmt;
- use_operand_p use_p;
- def_operand_p def_p;
- ssa_op_iter iter;
-
- stmt = bsi_stmt (si);
- ann = stmt_ann (stmt);
-
- /* If mark_def_sites decided that we don't need to rewrite this
- statement, ignore it. */
- if (!REWRITE_THIS_STMT (stmt))
- return;
-
- if (dump_file && (dump_flags & TDF_DETAILS))
- {
- fprintf (dump_file, "Renaming statement ");
- print_generic_stmt (dump_file, stmt, TDF_SLIM);
- fprintf (dump_file, "\n");
- }
-
- /* We have just scanned the code for operands. No statement should
- be modified. */
- gcc_assert (!ann->modified);
-
- /* Step 1. Rewrite USES and VUSES in the statement. */
- FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_ALL_USES | SSA_OP_ALL_KILLS)
- rewrite_operand (use_p);
-
- /* Step 2. Register the statement's DEF and VDEF operands. */
- FOR_EACH_SSA_DEF_OPERAND (def_p, stmt, iter, SSA_OP_ALL_DEFS)
- {
- if (TREE_CODE (DEF_FROM_PTR (def_p)) != SSA_NAME)
- SET_DEF (def_p, make_ssa_name (DEF_FROM_PTR (def_p), stmt));
-
- /* FIXME: We shouldn't be registering new defs if the variable
- doesn't need to be renamed. */
- register_new_def (DEF_FROM_PTR (def_p), &block_defs_stack);
- }
-}
-
-
-/* Same as rewrite_stmt, for rewriting ssa names. */
+/* Dump SSA statistics on FILE. */
-static void
-ssa_rewrite_stmt (struct dom_walk_data *walk_data,
- basic_block bb ATTRIBUTE_UNUSED,
- block_stmt_iterator si)
+void
+dump_tree_ssa_stats (FILE *file)
{
- stmt_ann_t ann;
- tree stmt, var;
- ssa_op_iter iter;
- use_operand_p use_p;
- def_operand_p def_p;
- sbitmap names_to_rename = walk_data->global_data;
-
- stmt = bsi_stmt (si);
- ann = stmt_ann (stmt);
-
- if (dump_file && (dump_flags & TDF_DETAILS))
- {
- fprintf (dump_file, "Renaming statement ");
- print_generic_stmt (dump_file, stmt, TDF_SLIM);
- fprintf (dump_file, "\n");
- }
-
- /* We have just scanned the code for operands. No statement should
- be modified. */
- gcc_assert (!ann->modified);
-
- /* Step 1. Rewrite USES and VUSES in the statement. */
- FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_ALL_USES | SSA_OP_ALL_KILLS)
- {
- if (TEST_BIT (names_to_rename, SSA_NAME_VERSION (USE_FROM_PTR (use_p))))
- SET_USE (use_p, get_reaching_def (USE_FROM_PTR (use_p)));
- }
-
- /* Step 2. Register the statement's DEF and VDEF operands. */
- FOR_EACH_SSA_DEF_OPERAND (def_p, stmt, iter, SSA_OP_ALL_DEFS)
- {
- var = DEF_FROM_PTR (def_p);
+ fprintf (file, "\nHash table statistics:\n");
- if (!TEST_BIT (names_to_rename, SSA_NAME_VERSION (var)))
- continue;
+ fprintf (file, " def_blocks: ");
+ htab_statistics (file, def_blocks);
- SET_DEF (def_p, duplicate_ssa_name (var, stmt));
- ssa_register_new_def (var, DEF_FROM_PTR (def_p));
- }
+ fprintf (file, "\n");
}
-/* Replace the operand pointed by OP_P with its immediate reaching
- definition. */
-static inline void
-rewrite_operand (use_operand_p op_p)
-{
- tree var = USE_FROM_PTR (op_p);
- if (TREE_CODE (var) != SSA_NAME)
- SET_USE (op_p, get_reaching_def (var));
- else
- {
-#if defined ENABLE_CHECKING
- /* If we get to this point, VAR is an SSA_NAME. If VAR's symbol
- was marked for renaming, make sure that its reaching
- definition is VAR itself. Otherwise, something has gone
- wrong. */
- tree sym = SSA_NAME_VAR (var);
- if (bitmap_bit_p (vars_to_rename, var_ann (sym)->uid))
- gcc_assert (var == get_reaching_def (SSA_NAME_VAR (var)));
-#endif
- }
-}
-
-/* Register DEF (an SSA_NAME) to be a new definition for its underlying
- variable (SSA_NAME_VAR (DEF)) and push VAR's current reaching definition
- into the stack pointed by BLOCK_DEFS_P. */
+/* Dump SSA statistics on stderr. */
void
-register_new_def (tree def, VEC (tree_on_heap) **block_defs_p)
-{
- tree var = SSA_NAME_VAR (def);
- tree currdef;
-
- /* If this variable is set in a single basic block and all uses are
- dominated by the set(s) in that single basic block, then there is
- no reason to record anything for this variable in the block local
- definition stacks. Doing so just wastes time and memory.
-
- This is the same test to prune the set of variables which may
- need PHI nodes. So we just use that information since it's already
- computed and available for us to use. */
- if (get_phi_state (var) == NEED_PHI_STATE_NO)
- {
- set_current_def (var, def);
- return;
- }
-
- currdef = get_current_def (var);
-
- /* Push the current reaching definition into *BLOCK_DEFS_P. This stack is
- later used by the dominator tree callbacks to restore the reaching
- definitions for all the variables defined in the block after a recursive
- visit to all its immediately dominated blocks. If there is no current
- reaching definition, then just record the underlying _DECL node. */
- VEC_safe_push (tree_on_heap, *block_defs_p, currdef ? currdef : var);
-
- /* Set the current reaching definition for VAR to be DEF. */
- set_current_def (var, def);
-}
-
-/* Return the current definition for variable VAR. If none is found,
- create a new SSA name to act as the zeroth definition for VAR. If VAR
- is call clobbered and there exists a more recent definition of
- GLOBAL_VAR, return the definition for GLOBAL_VAR. This means that VAR
- has been clobbered by a function call since its last assignment. */
-
-static tree
-get_reaching_def (tree var)
+debug_tree_ssa_stats (void)
{
- tree default_d, currdef_var, avar;
-
- /* Lookup the current reaching definition for VAR. */
- default_d = NULL_TREE;
- currdef_var = get_current_def (var);
-
- /* If there is no reaching definition for VAR, create and register a
- default definition for it (if needed). */
- if (currdef_var == NULL_TREE)
- {
- if (TREE_CODE (var) == SSA_NAME)
- avar = SSA_NAME_VAR (var);
- else
- avar = var;
-
- default_d = default_def (avar);
- if (default_d == NULL_TREE)
- {
- default_d = make_ssa_name (avar, build_empty_stmt ());
- set_default_def (avar, default_d);
- }
- set_current_def (var, default_d);
- }
-
- /* Return the current reaching definition for VAR, or the default
- definition, if we had to create one. */
- return (currdef_var) ? currdef_var : default_d;
+ dump_tree_ssa_stats (stderr);
}
@@ -1305,27 +1046,20 @@ def_blocks_eq (const void *p1, const void *p2)
== ((const struct def_blocks_d *)p2)->var;
}
+
/* Free memory allocated by one entry in DEF_BLOCKS. */
static void
def_blocks_free (void *p)
{
struct def_blocks_d *entry = p;
- BITMAP_XFREE (entry->def_blocks);
- BITMAP_XFREE (entry->phi_blocks);
- BITMAP_XFREE (entry->livein_blocks);
+ BITMAP_FREE (entry->def_blocks);
+ BITMAP_FREE (entry->phi_blocks);
+ BITMAP_FREE (entry->livein_blocks);
free (entry);
}
-/* Dump the DEF_BLOCKS hash table on stderr. */
-
-void
-debug_def_blocks (void)
-{
- htab_traverse (def_blocks, debug_def_blocks_r, NULL);
-}
-
/* Callback for htab_traverse to dump the DEF_BLOCKS hash table. */
static int
@@ -1342,46 +1076,15 @@ debug_def_blocks_r (void **slot, void *data ATTRIBUTE_UNUSED)
}
-/* Return the set of blocks where variable VAR is defined and the blocks
- where VAR is live on entry (livein). Return NULL, if no entry is
- found in DEF_BLOCKS. */
+/* Dump the DEF_BLOCKS hash table on stderr. */
-static inline struct def_blocks_d *
-find_def_blocks_for (tree var)
+void
+debug_def_blocks (void)
{
- struct def_blocks_d dm;
- dm.var = var;
- return (struct def_blocks_d *) htab_find (def_blocks, &dm);
+ htab_traverse (def_blocks, debug_def_blocks_r, NULL);
}
-/* Return the set of blocks where variable VAR is defined and the blocks
- where VAR is live on entry (livein). If no entry is found in
- DEF_BLOCKS, a new one is created and returned. */
-
-static inline struct def_blocks_d *
-get_def_blocks_for (tree var)
-{
- struct def_blocks_d db, *db_p;
- void **slot;
-
- db.var = var;
- slot = htab_find_slot (def_blocks, (void *) &db, INSERT);
- if (*slot == NULL)
- {
- db_p = xmalloc (sizeof (*db_p));
- db_p->var = var;
- db_p->def_blocks = BITMAP_XMALLOC ();
- db_p->phi_blocks = BITMAP_XMALLOC ();
- db_p->livein_blocks = BITMAP_XMALLOC ();
- *slot = (void *) db_p;
- }
- else
- db_p = (struct def_blocks_d *) *slot;
-
- return db_p;
-}
-
/* If a variable V in VARS_TO_RENAME is a pointer, the renaming
process will cause us to lose the name memory tags that may have
been associated with the various SSA_NAMEs of V. This means that
@@ -1433,12 +1136,12 @@ invalidate_name_tags (bitmap vars_to_rename)
}
}
-/* Rewrite the actual blocks, statements, and phi arguments, to be in SSA
+
+/* Rewrite the actual blocks, statements, and PHI arguments, to be in SSA
form. FIX_VIRTUAL_PHIS is true if we should only be fixing up virtual
- phi arguments, instead of adding new phi arguments for just added phi
+ PHI arguments, instead of adding new PHI arguments for just added PHI
nodes. */
-
static void
rewrite_blocks (bool fix_virtual_phis)
{
@@ -1477,7 +1180,15 @@ rewrite_blocks (bool fix_virtual_phis)
/* Finalize the dominator walker. */
fini_walk_dominator_tree (&walk_data);
+ /* Debugging dumps. */
+ if (dump_file && (dump_flags & TDF_STATS))
+ {
+ dump_dfa_stats (dump_file);
+ dump_tree_ssa_stats (dump_file);
+ }
+
htab_delete (def_blocks);
+ def_blocks = NULL;
VEC_free (tree_on_heap, block_defs_stack);
block_defs_stack = NULL;
@@ -1485,6 +1196,20 @@ rewrite_blocks (bool fix_virtual_phis)
timevar_pop (TV_TREE_SSA_REWRITE_BLOCKS);
}
+
+/* Block initialization routine for mark_def_sites. Clear the
+ KILLS bitmap at the start of each block. */
+
+static void
+mark_def_sites_initialize_block (struct dom_walk_data *walk_data,
+ basic_block bb ATTRIBUTE_UNUSED)
+{
+ struct mark_def_sites_global_data *gd = walk_data->global_data;
+ bitmap kills = gd->kills;
+ bitmap_clear (kills);
+}
+
+
/* Mark the definition site blocks for each variable, so that we know where
the variable is actually live. */
@@ -1505,7 +1230,6 @@ mark_def_site_blocks (void)
/* Ensure that the dominance information is OK. */
calculate_dominance_info (CDI_DOMINATORS);
-
/* Setup callbacks for the generic dominator tree walker to find and
mark definition sites. */
walk_data.walk_stmts_backward = false;
@@ -1521,7 +1245,7 @@ mark_def_site_blocks (void)
/* Notice that this bitmap is indexed using variable UIDs, so it must be
large enough to accommodate all the variables referenced in the
function, not just the ones we are renaming. */
- mark_def_sites_global_data.kills = BITMAP_XMALLOC ();
+ mark_def_sites_global_data.kills = BITMAP_ALLOC (NULL);
walk_data.global_data = &mark_def_sites_global_data;
/* We do not have any local data. */
@@ -1537,7 +1261,7 @@ mark_def_site_blocks (void)
fini_walk_dominator_tree (&walk_data);
/* We no longer need this bitmap, clear and free it. */
- BITMAP_XFREE (mark_def_sites_global_data.kills);
+ BITMAP_FREE (mark_def_sites_global_data.kills);
}
@@ -1601,7 +1325,7 @@ rewrite_into_ssa (bool all)
can save significant time during PHI insertion for large graphs. */
dfs = (bitmap *) xmalloc (last_basic_block * sizeof (bitmap *));
FOR_EACH_BB (bb)
- dfs[bb->index] = BITMAP_XMALLOC ();
+ dfs[bb->index] = BITMAP_ALLOC (NULL);
/* Compute dominance frontiers. */
compute_dominance_frontiers (dfs);
@@ -1611,24 +1335,44 @@ rewrite_into_ssa (bool all)
rewrite_blocks (false);
- /* Debugging dumps. */
- if (dump_file && (dump_flags & TDF_STATS))
- {
- dump_dfa_stats (dump_file);
- dump_tree_ssa_stats (dump_file);
- }
-
/* Free allocated memory. */
FOR_EACH_BB (bb)
- BITMAP_XFREE (dfs[bb->index]);
+ BITMAP_FREE (dfs[bb->index]);
free (dfs);
vars_to_rename = old_vars_to_rename;
timevar_pop (TV_TREE_SSA_OTHER);
}
-/* Rewrite the def-def chains so that they have the correct reaching
- definitions. */
+
+/* Rewrites all variables into SSA. */
+
+static void
+rewrite_all_into_ssa (void)
+{
+ rewrite_into_ssa (true);
+}
+
+struct tree_opt_pass pass_build_ssa =
+{
+ "ssa", /* name */
+ NULL, /* gate */
+ rewrite_all_into_ssa, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ 0, /* tv_id */
+ PROP_cfg | PROP_referenced_vars, /* properties_required */
+ PROP_ssa, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */
+ 0 /* letter */
+};
+
+
+/* Rewrite the def-def chains of virtual operands so that they have
+ the correct reaching definitions. */
void
rewrite_def_def_chains (void)
@@ -1637,10 +1381,302 @@ rewrite_def_def_chains (void)
calculate_dominance_info (CDI_DOMINATORS);
mark_def_site_blocks ();
rewrite_blocks (true);
+}
+
+
+
+/*---------------------------------------------------------------------------
+ Functions to fix a program in invalid SSA form into valid SSA
+ form. The main entry point here is rewrite_ssa_into_ssa.
+---------------------------------------------------------------------------*/
+
+/* Called after visiting basic block BB. Restore CURRDEFS to its
+ original value. */
+
+static void
+ssa_rewrite_finalize_block (struct dom_walk_data *walk_data ATTRIBUTE_UNUSED,
+ basic_block bb ATTRIBUTE_UNUSED)
+{
+
+ /* Step 5. Restore the current reaching definition for each variable
+ referenced in the block (in reverse order). */
+ while (VEC_length (tree_on_heap, block_defs_stack) > 0)
+ {
+ tree var = VEC_pop (tree_on_heap, block_defs_stack);
+ tree saved_def;
+
+ if (var == NULL)
+ break;
+
+ saved_def = VEC_pop (tree_on_heap, block_defs_stack);
+ set_current_def (var, saved_def);
+ }
+}
+
+
+/* Register DEF (an SSA_NAME) to be a new definition for the original
+ ssa name VAR and push VAR's current reaching definition
+ into the stack pointed by BLOCK_DEFS_P. */
+
+static void
+ssa_register_new_def (tree var, tree def)
+{
+ tree currdef;
+
+ /* If this variable is set in a single basic block and all uses are
+ dominated by the set(s) in that single basic block, then there is
+ nothing to do. TODO we should not be called at all, and just
+ keep the original name. */
+ if (get_phi_state (var) == NEED_PHI_STATE_NO)
+ {
+ set_current_def (var, def);
+ return;
+ }
+
+ currdef = get_current_def (var);
+
+ /* Push the current reaching definition into *BLOCK_DEFS_P. This stack is
+ later used by the dominator tree callbacks to restore the reaching
+ definitions for all the variables defined in the block after a recursive
+ visit to all its immediately dominated blocks. */
+ VEC_safe_push (tree_on_heap, block_defs_stack, currdef);
+ VEC_safe_push (tree_on_heap, block_defs_stack, var);
+
+ /* Set the current reaching definition for VAR to be DEF. */
+ set_current_def (var, def);
+}
+
+
+/* Same as rewrite_stmt, for rewriting ssa names. */
+
+static void
+ssa_rewrite_stmt (struct dom_walk_data *walk_data,
+ basic_block bb ATTRIBUTE_UNUSED,
+ block_stmt_iterator si)
+{
+ stmt_ann_t ann;
+ tree stmt, var;
+ ssa_op_iter iter;
+ use_operand_p use_p;
+ def_operand_p def_p;
+ sbitmap names_to_rename = walk_data->global_data;
+
+ stmt = bsi_stmt (si);
+ ann = stmt_ann (stmt);
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file, "Renaming statement ");
+ print_generic_stmt (dump_file, stmt, TDF_SLIM);
+ fprintf (dump_file, "\n");
+ }
+
+ /* We have just scanned the code for operands. No statement should
+ be modified. */
+ gcc_assert (!ann->modified);
+
+ /* Step 1. Rewrite USES and VUSES in the statement. */
+ FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_ALL_USES | SSA_OP_ALL_KILLS)
+ {
+ if (TEST_BIT (names_to_rename, SSA_NAME_VERSION (USE_FROM_PTR (use_p))))
+ SET_USE (use_p, get_reaching_def (USE_FROM_PTR (use_p)));
+ }
+
+ /* Step 2. Register the statement's DEF and VDEF operands. */
+ FOR_EACH_SSA_DEF_OPERAND (def_p, stmt, iter, SSA_OP_ALL_DEFS)
+ {
+ var = DEF_FROM_PTR (def_p);
+
+ if (!TEST_BIT (names_to_rename, SSA_NAME_VERSION (var)))
+ continue;
+
+ SET_DEF (def_p, duplicate_ssa_name (var, stmt));
+ ssa_register_new_def (var, DEF_FROM_PTR (def_p));
+ }
+}
+
+
+/* Ditto, for ssa name rewriting. */
+
+static void
+ssa_rewrite_phi_arguments (struct dom_walk_data *walk_data, basic_block bb)
+{
+ edge e;
+ sbitmap names_to_rename = walk_data->global_data;
+ use_operand_p op;
+ edge_iterator ei;
+
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ {
+ tree phi;
+
+ if (e->dest == EXIT_BLOCK_PTR)
+ continue;
+
+ for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
+ {
+ op = PHI_ARG_DEF_PTR_FROM_EDGE (phi, e);
+ if (TREE_CODE (USE_FROM_PTR (op)) != SSA_NAME)
+ continue;
+
+ if (!TEST_BIT (names_to_rename, SSA_NAME_VERSION (USE_FROM_PTR (op))))
+ continue;
+
+ SET_USE (op, get_reaching_def (USE_FROM_PTR (op)));
+ if (e->flags & EDGE_ABNORMAL)
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (USE_FROM_PTR (op)) = 1;
+ }
+ }
+}
+
+/* Ditto, for rewriting ssa names. */
+
+static void
+ssa_rewrite_initialize_block (struct dom_walk_data *walk_data, basic_block bb)
+{
+ tree phi, new_name;
+ sbitmap names_to_rename = walk_data->global_data;
+ edge e;
+ bool abnormal_phi;
+ edge_iterator ei;
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "\n\nRenaming block #%d\n\n", bb->index);
+
+ /* Mark the unwind point for this block. */
+ VEC_safe_push (tree_on_heap, block_defs_stack, NULL_TREE);
+ FOR_EACH_EDGE (e, ei, bb->preds)
+ if (e->flags & EDGE_ABNORMAL)
+ break;
+ abnormal_phi = (e != NULL);
+
+ /* Step 1. Register new definitions for every PHI node in the block.
+ Conceptually, all the PHI nodes are executed in parallel and each PHI
+ node introduces a new version for the associated variable. */
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ {
+ tree result = PHI_RESULT (phi);
+
+ if (TEST_BIT (names_to_rename, SSA_NAME_VERSION (result)))
+ {
+ new_name = duplicate_ssa_name (result, phi);
+ SET_PHI_RESULT (phi, new_name);
+
+ if (abnormal_phi)
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (new_name) = 1;
+ ssa_register_new_def (result, new_name);
+ }
+ }
}
+
+
+/* Same as mark_def_sites, but works over SSA names. */
+
+static void
+ssa_mark_def_sites (struct dom_walk_data *walk_data,
+ basic_block bb,
+ block_stmt_iterator bsi)
+{
+ struct mark_def_sites_global_data *gd = walk_data->global_data;
+ bitmap kills = gd->kills;
+ size_t uid, def_uid;
+ tree stmt, use, def;
+ ssa_op_iter iter;
+
+ /* Mark all the blocks that have definitions for each variable in the
+ names_to_rename bitmap. */
+ stmt = bsi_stmt (bsi);
+ get_stmt_operands (stmt);
+
+ /* If a variable is used before being set, then the variable is live
+ across a block boundary, so mark it live-on-entry to BB. */
+ FOR_EACH_SSA_TREE_OPERAND (use, stmt, iter, SSA_OP_ALL_USES | SSA_OP_ALL_KILLS)
+ {
+ uid = SSA_NAME_VERSION (use);
+
+ if (TEST_BIT (gd->names_to_rename, uid)
+ && !bitmap_bit_p (kills, uid))
+ set_livein_block (use, bb);
+ }
+
+ /* Now process the definition made by this statement. Mark the
+ variables in KILLS. */
+ FOR_EACH_SSA_TREE_OPERAND (def, stmt, iter, SSA_OP_ALL_DEFS)
+ {
+ def_uid = SSA_NAME_VERSION (def);
+
+ if (TEST_BIT (gd->names_to_rename, def_uid))
+ {
+ set_def_block (def, bb, false, true);
+ bitmap_set_bit (kills, def_uid);
+ }
+ }
+}
+
+
+/* Block initialization routine for mark_def_sites. Clear the
+ KILLS bitmap at the start of each block. */
+
+static void
+ssa_mark_def_sites_initialize_block (struct dom_walk_data *walk_data,
+ basic_block bb)
+{
+ struct mark_def_sites_global_data *gd = walk_data->global_data;
+ bitmap kills = gd->kills;
+ tree phi, def;
+ unsigned def_uid;
+
+ bitmap_clear (kills);
+
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ {
+ def = PHI_RESULT (phi);
+ def_uid = SSA_NAME_VERSION (def);
+
+ if (!TEST_BIT (gd->names_to_rename, def_uid))
+ continue;
+
+ set_def_block (def, bb, true, true);
+ bitmap_set_bit (kills, def_uid);
+ }
+}
+
+/* Marks ssa names used as arguments of phis at the end of BB. */
+
+static void
+ssa_mark_phi_uses (struct dom_walk_data *walk_data, basic_block bb)
+{
+ struct mark_def_sites_global_data *gd = walk_data->global_data;
+ bitmap kills = gd->kills;
+ edge e;
+ tree phi, use;
+ unsigned uid;
+ edge_iterator ei;
+
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ {
+ if (e->dest == EXIT_BLOCK_PTR)
+ continue;
+
+ for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
+ {
+ use = PHI_ARG_DEF_FROM_EDGE (phi, e);
+ if (TREE_CODE (use) != SSA_NAME)
+ continue;
+
+ uid = SSA_NAME_VERSION (use);
+
+ if (TEST_BIT (gd->names_to_rename, uid)
+ && !bitmap_bit_p (kills, uid))
+ set_livein_block (use, bb);
+ }
+ }
+}
+
+
/* The marked ssa names may have more than one definition;
- add phi nodes and rewrite them to fix this. */
+ add PHI nodes and rewrite them to fix this. */
void
rewrite_ssa_into_ssa (void)
@@ -1669,7 +1705,7 @@ rewrite_ssa_into_ssa (void)
can save significant time during PHI insertion for large graphs. */
dfs = (bitmap *) xmalloc (last_basic_block * sizeof (bitmap *));
FOR_EACH_BB (bb)
- dfs[bb->index] = BITMAP_XMALLOC ();
+ dfs[bb->index] = BITMAP_ALLOC (NULL);
/* Ensure that the dominance information is OK. */
calculate_dominance_info (CDI_DOMINATORS);
@@ -1698,7 +1734,7 @@ rewrite_ssa_into_ssa (void)
set_current_def (ssa_name (i), NULL_TREE);
}
- mark_def_sites_global_data.kills = BITMAP_XMALLOC ();
+ mark_def_sites_global_data.kills = BITMAP_ALLOC (NULL);
mark_def_sites_global_data.names_to_rename = snames_to_rename;
walk_data.global_data = &mark_def_sites_global_data;
@@ -1717,7 +1753,7 @@ rewrite_ssa_into_ssa (void)
fini_walk_dominator_tree (&walk_data);
/* We no longer need this bitmap, clear and free it. */
- BITMAP_XFREE (mark_def_sites_global_data.kills);
+ BITMAP_FREE (mark_def_sites_global_data.kills);
/* Insert PHI nodes at dominance frontiers of definition blocks. */
insert_phi_nodes (dfs, to_rename);
@@ -1773,7 +1809,7 @@ rewrite_ssa_into_ssa (void)
/* Free allocated memory. */
FOR_EACH_BB (bb)
- BITMAP_XFREE (dfs[bb->index]);
+ BITMAP_FREE (dfs[bb->index]);
free (dfs);
htab_delete (def_blocks);
@@ -1789,34 +1825,9 @@ rewrite_ssa_into_ssa (void)
}
#endif
- BITMAP_XFREE (to_rename);
+ BITMAP_FREE (to_rename);
VEC_free (tree_on_heap, block_defs_stack);
block_defs_stack = NULL;
timevar_pop (TV_TREE_SSA_OTHER);
}
-
-/* Rewrites all variables into ssa. */
-
-static void
-rewrite_all_into_ssa (void)
-{
- rewrite_into_ssa (true);
-}
-
-struct tree_opt_pass pass_build_ssa =
-{
- "ssa", /* name */
- NULL, /* gate */
- rewrite_all_into_ssa, /* execute */
- NULL, /* sub */
- NULL, /* next */
- 0, /* static_pass_number */
- 0, /* tv_id */
- PROP_cfg | PROP_referenced_vars, /* properties_required */
- PROP_ssa, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
- TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */
- 0 /* letter */
-};
diff --git a/gcc/tree-loop-linear.c b/gcc/tree-loop-linear.c
index 6c8bafe89c3..b8c6201ff88 100644
--- a/gcc/tree-loop-linear.c
+++ b/gcc/tree-loop-linear.c
@@ -374,6 +374,7 @@ linear_transform_loops (struct loops *loops)
}
free_df ();
scev_reset ();
+ rewrite_into_ssa (false);
rewrite_into_loop_closed_ssa ();
#ifdef ENABLE_CHECKING
verify_loop_closed_ssa ();
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index b1ab217340b..3d43b6e5453 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -411,7 +411,8 @@ get_trampoline_type (void)
/* If we won't be able to guarantee alignment simply via TYPE_ALIGN,
then allocate extra space so that we can do dynamic alignment. */
- if (align > STACK_BOUNDARY)
+ /* APPLE LOCAL STACK_BOUNDARY must be a signed expression on Darwin/x86 */
+ if (align > (unsigned int) STACK_BOUNDARY)
{
size += ((align/BITS_PER_UNIT) - 1) & -(STACK_BOUNDARY/BITS_PER_UNIT);
align = STACK_BOUNDARY;
@@ -1303,8 +1304,15 @@ finalize_nesting_tree_1 (struct nesting_info *root)
out at this time. */
if (root->frame_type)
{
+ /* APPLE LOCAL begin mainline 4137012 */
+ /* In some cases the frame type will trigger the -Wpadded warning.
+ This is not helpful; suppress it. */
+ int save_warn_padded = warn_padded;
+ warn_padded = 0;
layout_type (root->frame_type);
+ warn_padded = save_warn_padded;
layout_decl (root->frame_decl, 0);
+ /* APPLE LOCAL end mainline 4137012 */
}
/* If any parameters were referenced non-locally, then we need to
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c
index 8006a2cdac6..ca204df1985 100644
--- a/gcc/tree-optimize.c
+++ b/gcc/tree-optimize.c
@@ -47,6 +47,8 @@ Boston, MA 02111-1307, USA. */
#include "ggc.h"
#include "cgraph.h"
#include "graph.h"
+/* APPLE LOCAL optimization pragmas 3124235/3420242 */
+#include "opts.h"
/* Global variables used to communicate with passes. */
@@ -347,7 +349,6 @@ init_tree_optimization_passes (void)
p = &pass_all_optimizations.sub;
NEXT_PASS (pass_referenced_vars);
- NEXT_PASS (pass_maybe_create_global_var);
NEXT_PASS (pass_build_ssa);
NEXT_PASS (pass_may_alias);
NEXT_PASS (pass_rename_ssa_copies);
@@ -364,6 +365,10 @@ init_tree_optimization_passes (void)
NEXT_PASS (pass_ch);
NEXT_PASS (pass_profile);
NEXT_PASS (pass_sra);
+ /* FIXME: SRA may generate arbitrary gimple code, exposing new
+ aliased and call-clobbered variables. As mentioned below,
+ pass_may_alias should be a TODO item. */
+ NEXT_PASS (pass_may_alias);
NEXT_PASS (pass_rename_ssa_copies);
NEXT_PASS (pass_dominator);
NEXT_PASS (pass_redundant_phi);
@@ -414,9 +419,18 @@ init_tree_optimization_passes (void)
NEXT_PASS (pass_record_bounds);
NEXT_PASS (pass_linear_transform);
NEXT_PASS (pass_iv_canon);
+ /* APPLE LOCAL begin loops-to-memset */
+ NEXT_PASS (pass_memset);
+ /* APPLE LOCAL end loops-to-memset */
+ /* APPLE LOCAL begin lno */
+ NEXT_PASS (pass_loop_test);
+ NEXT_PASS (pass_mark_maybe_inf_loops);
+ /* APPLE LOCAL end lno */
NEXT_PASS (pass_if_conversion);
NEXT_PASS (pass_vectorize);
NEXT_PASS (pass_complete_unroll);
+ /* APPLE LOCAL lno */
+ NEXT_PASS (pass_loop_prefetch);
NEXT_PASS (pass_iv_optimize);
NEXT_PASS (pass_loop_done);
*p = NULL;
@@ -439,6 +453,14 @@ execute_todo (int properties, unsigned int flags)
rewrite_into_ssa (false);
bitmap_clear (vars_to_rename);
}
+ /* APPLE LOCAL begin lno */
+ if (flags & TODO_write_loop_closed)
+ {
+ rewrite_into_ssa (false);
+ rewrite_into_loop_closed_ssa ();
+ bitmap_clear (vars_to_rename);
+ }
+ /* APPLE LOCAL end lno */
if (flags & TODO_fix_def_def_chains)
{
rewrite_def_def_chains ();
@@ -599,6 +621,12 @@ tree_rest_of_compilation (tree fndecl)
location_t saved_loc;
struct cgraph_node *saved_node = NULL, *node;
+ /* APPLE LOCAL begin optimization pragmas 3124235/3420242 */
+ /* Restore per-function optimization flags to what they were at
+ the time we saw the function definition. */
+ restore_func_cl_pf_opts_mapping (fndecl);
+ /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
+
timevar_push (TV_EXPAND);
gcc_assert (!flag_unit_at_a_time || cgraph_global_info_ready);
@@ -652,15 +680,14 @@ tree_rest_of_compilation (tree fndecl)
/* We are not going to maintain the cgraph edges up to date.
Kill it so it won't confuse us. */
- while (node->callees)
- cgraph_remove_edge (node->callees);
+ cgraph_node_remove_callees (node);
/* Initialize the default bitmap obstack. */
bitmap_obstack_initialize (NULL);
bitmap_obstack_initialize (&reg_obstack); /* FIXME, only at RTL generation*/
- vars_to_rename = BITMAP_XMALLOC ();
+ vars_to_rename = BITMAP_ALLOC (NULL);
/* Perform all tree transforms and optimizations. */
execute_pass_list (all_passes);
@@ -684,8 +711,7 @@ tree_rest_of_compilation (tree fndecl)
{
struct cgraph_edge *e;
- while (node->callees)
- cgraph_remove_edge (node->callees);
+ cgraph_node_remove_callees (node);
node->callees = saved_node->callees;
saved_node->callees = NULL;
update_inlined_to_pointers (node, node);
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index c6aa812bc17..2eaa2713984 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -51,9 +51,7 @@ Boston, MA 02111-1307, USA. */
#define SSANORM_PERFORM_TER 0x1
#define SSANORM_COMBINE_TEMPS 0x2
-#define SSANORM_REMOVE_ALL_PHIS 0x4
-#define SSANORM_COALESCE_PARTITIONS 0x8
-#define SSANORM_USE_COALESCE_LIST 0x10
+#define SSANORM_COALESCE_PARTITIONS 0x4
/* Used to hold all the components required to do SSA PHI elimination.
The node and pred/succ list is a simple linear list of nodes and
@@ -697,10 +695,6 @@ coalesce_ssa_name (var_map map, int flags)
if (num_var_partitions (map) <= 1)
return NULL;
- /* If no preference given, use cheap coalescing of all partitions. */
- if ((flags & (SSANORM_COALESCE_PARTITIONS | SSANORM_USE_COALESCE_LIST)) == 0)
- flags |= SSANORM_COALESCE_PARTITIONS;
-
liveinfo = calculate_live_on_entry (map);
calculate_live_on_exit (liveinfo);
rv = root_var_init (map);
@@ -708,51 +702,48 @@ coalesce_ssa_name (var_map map, int flags)
/* Remove single element variable from the list. */
root_var_compact (rv);
- if (flags & SSANORM_USE_COALESCE_LIST)
+ cl = create_coalesce_list (map);
+
+ /* Add all potential copies via PHI arguments to the list. */
+ FOR_EACH_BB (bb)
{
- cl = create_coalesce_list (map);
-
- /* Add all potential copies via PHI arguments to the list. */
- FOR_EACH_BB (bb)
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
{
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ tree res = PHI_RESULT (phi);
+ int p = var_to_partition (map, res);
+ if (p == NO_PARTITION)
+ continue;
+ for (x = 0; x < (unsigned)PHI_NUM_ARGS (phi); x++)
{
- tree res = PHI_RESULT (phi);
- int p = var_to_partition (map, res);
- if (p == NO_PARTITION)
+ tree arg = PHI_ARG_DEF (phi, x);
+ int p2;
+
+ if (TREE_CODE (arg) != SSA_NAME)
continue;
- for (x = 0; x < (unsigned)PHI_NUM_ARGS (phi); x++)
- {
- tree arg = PHI_ARG_DEF (phi, x);
- int p2;
-
- if (TREE_CODE (arg) != SSA_NAME)
- continue;
- if (SSA_NAME_VAR (res) != SSA_NAME_VAR (arg))
- continue;
- p2 = var_to_partition (map, PHI_ARG_DEF (phi, x));
- if (p2 != NO_PARTITION)
- add_coalesce (cl, p, p2, 1);
- }
+ if (SSA_NAME_VAR (res) != SSA_NAME_VAR (arg))
+ continue;
+ p2 = var_to_partition (map, PHI_ARG_DEF (phi, x));
+ if (p2 != NO_PARTITION)
+ add_coalesce (cl, p, p2, 1);
}
}
+ }
- /* Coalesce all the result decls together. */
- var = NULL_TREE;
- i = 0;
- for (x = 0; x < num_var_partitions (map); x++)
+ /* Coalesce all the result decls together. */
+ var = NULL_TREE;
+ i = 0;
+ for (x = 0; x < num_var_partitions (map); x++)
+ {
+ tree p = partition_to_var (map, x);
+ if (TREE_CODE (SSA_NAME_VAR(p)) == RESULT_DECL)
{
- tree p = partition_to_var (map, x);
- if (TREE_CODE (SSA_NAME_VAR(p)) == RESULT_DECL)
+ if (var == NULL_TREE)
{
- if (var == NULL_TREE)
- {
- var = p;
- i = x;
- }
- else
- add_coalesce (cl, i, x, 1);
+ var = p;
+ i = x;
}
+ else
+ add_coalesce (cl, i, x, 1);
}
}
@@ -833,16 +824,14 @@ coalesce_ssa_name (var_map map, int flags)
dump_var_map (dump_file, map);
/* Coalesce partitions. */
- if (flags & SSANORM_USE_COALESCE_LIST)
- coalesce_tpa_members (rv, graph, map, cl,
- ((dump_flags & TDF_DETAILS) ? dump_file
- : NULL));
+ coalesce_tpa_members (rv, graph, map, cl,
+ ((dump_flags & TDF_DETAILS) ? dump_file
+ : NULL));
-
if (flags & SSANORM_COALESCE_PARTITIONS)
- coalesce_tpa_members (rv, graph, map, NULL,
- ((dump_flags & TDF_DETAILS) ? dump_file
- : NULL));
+ coalesce_tpa_members (rv, graph, map, NULL,
+ ((dump_flags & TDF_DETAILS) ? dump_file
+ : NULL));
if (cl)
delete_coalesce_list (cl);
root_var_delete (rv);
@@ -1260,8 +1249,8 @@ new_temp_expr_table (var_map map)
t->partition_dep_list = xcalloc (num_var_partitions (map) + 1,
sizeof (value_expr_p));
- t->replaceable = BITMAP_XMALLOC ();
- t->partition_in_use = BITMAP_XMALLOC ();
+ t->replaceable = BITMAP_ALLOC (NULL);
+ t->partition_in_use = BITMAP_ALLOC (NULL);
t->saw_replaceable = false;
t->virtual_partition = num_var_partitions (map);
@@ -1293,8 +1282,8 @@ free_temp_expr_table (temp_expr_table_p t)
free (p);
}
- BITMAP_XFREE (t->partition_in_use);
- BITMAP_XFREE (t->replaceable);
+ BITMAP_FREE (t->partition_in_use);
+ BITMAP_FREE (t->replaceable);
free (t->partition_dep_list);
if (t->saw_replaceable)
@@ -2115,7 +2104,7 @@ analyze_edges_for_bb (basic_block bb, FILE *debug_file)
{
VARRAY_EDGE_INIT (edge_leader, 25, "edge_leader");
VARRAY_TREE_INIT (stmt_list, 25, "stmt_list");
- leader_has_match = BITMAP_XMALLOC ();
+ leader_has_match = BITMAP_ALLOC (NULL);
}
else
{
@@ -2261,7 +2250,7 @@ perform_edge_inserts (FILE *dump_file)
/* Clear out any tables which were created. */
edge_leader = NULL;
- BITMAP_XFREE (leader_has_match);
+ BITMAP_FREE (leader_has_match);
if (changed)
{
@@ -2382,9 +2371,7 @@ remove_ssa_form (FILE *dump, var_map map, int flags)
for (phi = phi_nodes (bb); phi; phi = next)
{
next = PHI_CHAIN (phi);
- if ((flags & SSANORM_REMOVE_ALL_PHIS)
- || var_to_partition (map, PHI_RESULT (phi)) != NO_PARTITION)
- remove_phi_node (phi, NULL_TREE, bb);
+ remove_phi_node (phi, NULL_TREE, bb);
}
}
@@ -2492,7 +2479,7 @@ rewrite_out_of_ssa (void)
{
var_map map;
int var_flags = 0;
- int ssa_flags = (SSANORM_REMOVE_ALL_PHIS | SSANORM_USE_COALESCE_LIST);
+ int ssa_flags = 0;
/* If elimination of a PHI requires inserting a copy on a backedge,
then we will have to split the backedge which has numerous
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 6bedfcb94d1..64d49fd183b 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -109,6 +109,10 @@ struct dump_file_info
#define TODO_verify_stmts (1 << 5)
#define TODO_fix_def_def_chains (1 << 6) /* rewrite def-def chains */
#define TODO_cleanup_cfg (1 << 7) /* cleanup the cfg. */
+/* APPLE LOCAL begin lno */
+/* well not exactly, this was 2 in lno, renumbered to mimize diffs */
+#define TODO_write_loop_closed (1 << 8) /* rewrite into loop-closed-ssa */
+/* APPLE LOCAL end lno */
#define TODO_verify_all \
(TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts)
@@ -127,14 +131,24 @@ extern struct tree_opt_pass pass_tail_recursion;
extern struct tree_opt_pass pass_tail_calls;
extern struct tree_opt_pass pass_loop;
extern struct tree_opt_pass pass_loop_init;
+/* APPLE LOCAL lno */
+extern struct tree_opt_pass pass_loop_test;
extern struct tree_opt_pass pass_lim;
+/* APPLE LOCAL begin loops-to-memset */
+extern struct tree_opt_pass pass_memset;
+/* APPLE LOCAL end loops-to-memset */
extern struct tree_opt_pass pass_unswitch;
+/* APPLE LOCAL begin lno */
+extern struct tree_opt_pass pass_mark_maybe_inf_loops;
+/* APPLE LOCAL end lno */
extern struct tree_opt_pass pass_iv_canon;
extern struct tree_opt_pass pass_record_bounds;
extern struct tree_opt_pass pass_if_conversion;
extern struct tree_opt_pass pass_vectorize;
extern struct tree_opt_pass pass_complete_unroll;
extern struct tree_opt_pass pass_iv_optimize;
+/* APPLE LOCAL lno */
+extern struct tree_opt_pass pass_loop_prefetch;
extern struct tree_opt_pass pass_loop_done;
extern struct tree_opt_pass pass_ch;
extern struct tree_opt_pass pass_ccp;
@@ -166,6 +180,5 @@ extern struct tree_opt_pass pass_expand;
extern struct tree_opt_pass pass_rest_of_compilation;
extern struct tree_opt_pass pass_fre;
extern struct tree_opt_pass pass_linear_transform;
-extern struct tree_opt_pass pass_maybe_create_global_var;
#endif /* GCC_TREE_PASS_H */
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index c1c10358f8f..3975b749949 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -1990,7 +1990,9 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
result again. */
bitmap_set_bit (already_instantiated, SSA_NAME_VERSION (chrec));
res = analyze_scalar_evolution (def_loop, chrec);
- res = instantiate_parameters_1 (loop, res, allow_superloop_chrecs, cache);
+ if (res != chrec_dont_know)
+ res = instantiate_parameters_1 (loop, res, allow_superloop_chrecs,
+ cache);
bitmap_clear_bit (already_instantiated, SSA_NAME_VERSION (chrec));
/* Store the correct value to the cache. */
@@ -2000,8 +2002,14 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
case POLYNOMIAL_CHREC:
op0 = instantiate_parameters_1 (loop, CHREC_LEFT (chrec),
allow_superloop_chrecs, cache);
+ if (op0 == chrec_dont_know)
+ return chrec_dont_know;
+
op1 = instantiate_parameters_1 (loop, CHREC_RIGHT (chrec),
allow_superloop_chrecs, cache);
+ if (op1 == chrec_dont_know)
+ return chrec_dont_know;
+
if (CHREC_LEFT (chrec) != op0
|| CHREC_RIGHT (chrec) != op1)
chrec = build_polynomial_chrec (CHREC_VARIABLE (chrec), op0, op1);
@@ -2010,8 +2018,14 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
case PLUS_EXPR:
op0 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 0),
allow_superloop_chrecs, cache);
+ if (op0 == chrec_dont_know)
+ return chrec_dont_know;
+
op1 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 1),
allow_superloop_chrecs, cache);
+ if (op1 == chrec_dont_know)
+ return chrec_dont_know;
+
if (TREE_OPERAND (chrec, 0) != op0
|| TREE_OPERAND (chrec, 1) != op1)
chrec = chrec_fold_plus (TREE_TYPE (chrec), op0, op1);
@@ -2020,8 +2034,14 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
case MINUS_EXPR:
op0 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 0),
allow_superloop_chrecs, cache);
+ if (op0 == chrec_dont_know)
+ return chrec_dont_know;
+
op1 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 1),
allow_superloop_chrecs, cache);
+ if (op1 == chrec_dont_know)
+ return chrec_dont_know;
+
if (TREE_OPERAND (chrec, 0) != op0
|| TREE_OPERAND (chrec, 1) != op1)
chrec = chrec_fold_minus (TREE_TYPE (chrec), op0, op1);
@@ -2030,8 +2050,14 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
case MULT_EXPR:
op0 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 0),
allow_superloop_chrecs, cache);
+ if (op0 == chrec_dont_know)
+ return chrec_dont_know;
+
op1 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 1),
allow_superloop_chrecs, cache);
+ if (op1 == chrec_dont_know)
+ return chrec_dont_know;
+
if (TREE_OPERAND (chrec, 0) != op0
|| TREE_OPERAND (chrec, 1) != op1)
chrec = chrec_fold_multiply (TREE_TYPE (chrec), op0, op1);
@@ -2065,13 +2091,17 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
case 3:
op0 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 0),
allow_superloop_chrecs, cache);
+ if (op0 == chrec_dont_know)
+ return chrec_dont_know;
+
op1 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 1),
allow_superloop_chrecs, cache);
+ if (op1 == chrec_dont_know)
+ return chrec_dont_know;
+
op2 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 2),
allow_superloop_chrecs, cache);
- if (op0 == chrec_dont_know
- || op1 == chrec_dont_know
- || op2 == chrec_dont_know)
+ if (op2 == chrec_dont_know)
return chrec_dont_know;
if (op0 == TREE_OPERAND (chrec, 0)
@@ -2085,10 +2115,12 @@ instantiate_parameters_1 (struct loop *loop, tree chrec,
case 2:
op0 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 0),
allow_superloop_chrecs, cache);
+ if (op0 == chrec_dont_know)
+ return chrec_dont_know;
+
op1 = instantiate_parameters_1 (loop, TREE_OPERAND (chrec, 1),
allow_superloop_chrecs, cache);
- if (op0 == chrec_dont_know
- || op1 == chrec_dont_know)
+ if (op1 == chrec_dont_know)
return chrec_dont_know;
if (op0 == TREE_OPERAND (chrec, 0)
@@ -2466,7 +2498,7 @@ scev_initialize (struct loops *loops)
scalar_evolution_info = htab_create (100, hash_scev_info,
eq_scev_info, del_scev_info);
- already_instantiated = BITMAP_XMALLOC ();
+ already_instantiated = BITMAP_ALLOC (NULL);
initialize_scalar_evolutions_analyzer ();
@@ -2531,7 +2563,8 @@ simple_iv (struct loop *loop, tree stmt, tree op, tree *base, tree *step)
if (TREE_CODE (*step) != INTEGER_CST)
return false;
*base = CHREC_LEFT (ev);
- if (tree_contains_chrecs (*base)
+ /* APPLE LOCAL mainline 4080945 / PR 20742 */
+ if (tree_contains_chrecs (*base, NULL)
|| chrec_contains_symbols_defined_in_loop (*base, loop->num))
return false;
@@ -2561,6 +2594,6 @@ void
scev_finalize (void)
{
htab_delete (scalar_evolution_info);
- BITMAP_XFREE (already_instantiated);
+ BITMAP_FREE (already_instantiated);
}
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 01bf53c0af9..1d47b199746 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1116,6 +1116,12 @@ instantiate_element (struct sra_elt *elt)
DECL_SOURCE_LOCATION (var) = DECL_SOURCE_LOCATION (base);
DECL_ARTIFICIAL (var) = 1;
+ if (TREE_THIS_VOLATILE (elt->type))
+ {
+ TREE_THIS_VOLATILE (var) = 1;
+ TREE_SIDE_EFFECTS (var) = 1;
+ }
+
if (DECL_NAME (base) && !DECL_IGNORED_P (base))
{
char *pretty_name = build_element_name (elt);
@@ -1293,6 +1299,12 @@ decide_block_copy (struct sra_elt *elt)
fputc ('\n', dump_file);
}
+ /* Disable scalarization of sub-elements */
+ for (c = elt->children; c; c = c->sibling)
+ {
+ c->cannot_scalarize = 1;
+ decide_block_copy (c);
+ }
return false;
}
@@ -1634,10 +1646,31 @@ generate_element_init_1 (struct sra_elt *elt, tree init, tree *list_p)
case CONSTRUCTOR:
for (t = CONSTRUCTOR_ELTS (init); t ; t = TREE_CHAIN (t))
{
- sub = lookup_element (elt, TREE_PURPOSE (t), NULL, NO_INSERT);
- if (sub == NULL)
- continue;
- result &= generate_element_init_1 (sub, TREE_VALUE (t), list_p);
+ tree purpose = TREE_PURPOSE (t);
+ tree value = TREE_VALUE (t);
+
+ if (TREE_CODE (purpose) == RANGE_EXPR)
+ {
+ tree lower = TREE_OPERAND (purpose, 0);
+ tree upper = TREE_OPERAND (purpose, 1);
+
+ while (1)
+ {
+ sub = lookup_element (elt, lower, NULL, NO_INSERT);
+ if (sub != NULL)
+ result &= generate_element_init_1 (sub, value, list_p);
+ if (tree_int_cst_equal (lower, upper))
+ break;
+ lower = int_const_binop (PLUS_EXPR, lower,
+ integer_one_node, true);
+ }
+ }
+ else
+ {
+ sub = lookup_element (elt, purpose, NULL, NO_INSERT);
+ if (sub != NULL)
+ result &= generate_element_init_1 (sub, value, list_p);
+ }
}
break;
@@ -2079,10 +2112,10 @@ tree_sra (void)
{
/* Initialize local variables. */
gcc_obstack_init (&sra_obstack);
- sra_candidates = BITMAP_XMALLOC ();
- needs_copy_in = BITMAP_XMALLOC ();
- sra_type_decomp_cache = BITMAP_XMALLOC ();
- sra_type_inst_cache = BITMAP_XMALLOC ();
+ sra_candidates = BITMAP_ALLOC (NULL);
+ needs_copy_in = BITMAP_ALLOC (NULL);
+ sra_type_decomp_cache = BITMAP_ALLOC (NULL);
+ sra_type_inst_cache = BITMAP_ALLOC (NULL);
sra_map = htab_create (101, sra_elt_hash, sra_elt_eq, NULL);
/* Scan. If we find anything, instantiate and scalarize. */
@@ -2096,10 +2129,10 @@ tree_sra (void)
/* Free allocated memory. */
htab_delete (sra_map);
sra_map = NULL;
- BITMAP_XFREE (sra_candidates);
- BITMAP_XFREE (needs_copy_in);
- BITMAP_XFREE (sra_type_decomp_cache);
- BITMAP_XFREE (sra_type_inst_cache);
+ BITMAP_FREE (sra_candidates);
+ BITMAP_FREE (needs_copy_in);
+ BITMAP_FREE (sra_type_decomp_cache);
+ BITMAP_FREE (sra_type_inst_cache);
obstack_free (&sra_obstack, NULL);
}
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 6a95bcd2a11..1adcd833e91 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -43,6 +43,8 @@ Boston, MA 02111-1307, USA. */
#include "convert.h"
#include "params.h"
+/* 'true' after aliases have been computed (see compute_may_aliases). */
+bool aliases_computed_p;
/* Structure to map a variable to its alias set and keep track of the
virtual operands that will be needed to represent it. */
@@ -94,6 +96,9 @@ struct alias_info
/* Number of function calls found in the program. */
size_t num_calls_found;
+ /* Number of const/pure function calls found in the program. */
+ size_t num_pure_const_calls_found;
+
/* Array of counters to keep track of how many times each pointer has
been dereferenced in the program. This is used by the alias grouping
heuristic in compute_flow_insensitive_aliasing. */
@@ -145,7 +150,7 @@ static void compute_points_to_and_addr_escape (struct alias_info *);
static void compute_flow_sensitive_aliasing (struct alias_info *);
static void setup_pointers_and_addressables (struct alias_info *);
static bool collect_points_to_info_r (tree, tree, void *);
-static bool is_escape_site (tree, size_t *);
+static bool is_escape_site (tree, struct alias_info *);
static void add_pointed_to_var (struct alias_info *, tree, tree);
static void create_global_var (void);
static void collect_points_to_info_for (struct alias_info *, tree);
@@ -441,7 +446,7 @@ count_uses_and_derefs (tree ptr, tree stmt, unsigned *num_uses_p,
rhs = stmt;
}
- if (lhs && EXPR_P (lhs))
+ if (lhs && (TREE_CODE (lhs) == TREE_LIST || EXPR_P (lhs)))
{
struct count_ptr_d count;
count.ptr = ptr;
@@ -451,7 +456,7 @@ count_uses_and_derefs (tree ptr, tree stmt, unsigned *num_uses_p,
*num_derefs_p = count.count;
}
- if (rhs && EXPR_P (rhs))
+ if (rhs && (TREE_CODE (rhs) == TREE_LIST || EXPR_P (rhs)))
{
struct count_ptr_d count;
count.ptr = ptr;
@@ -465,80 +470,22 @@ count_uses_and_derefs (tree ptr, tree stmt, unsigned *num_uses_p,
}
-/* Count the number of calls in the function and conditionally
- create GLOBAL_VAR. This is performed before translation
- into SSA (and thus before alias analysis) to avoid compile time
- and memory utilization explosions in functions with many
- of calls and call clobbered variables. */
-
-static void
-count_calls_and_maybe_create_global_var (void)
-{
- struct alias_info ai;
- basic_block bb;
- bool temp;
-
- memset (&ai, 0, sizeof (struct alias_info));
-
- /* First count the number of calls in the IL. */
- FOR_EACH_BB (bb)
- {
- block_stmt_iterator si;
-
- for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
- {
- tree stmt = bsi_stmt (si);
-
- if (get_call_expr_in (stmt) != NULL_TREE)
- ai.num_calls_found++;
- }
- }
-
- /* If there are no call clobbered variables, then maybe_create_global_var
- will always create a GLOBAL_VAR. At this point we do not want that
- behavior. So we turn on one bit in CALL_CLOBBERED_VARs, call
- maybe_create_global_var, then reset the bit to its original state. */
- temp = bitmap_bit_p (call_clobbered_vars, 0);
- bitmap_set_bit (call_clobbered_vars, 0);
- maybe_create_global_var (&ai);
- if (!temp)
- bitmap_clear_bit (call_clobbered_vars, 0);
-}
-
-struct tree_opt_pass pass_maybe_create_global_var =
-{
- "maybe_create_global_var", /* name */
- NULL, /* gate */
- count_calls_and_maybe_create_global_var, /* execute */
- NULL, /* sub */
- NULL, /* next */
- 0, /* static_pass_number */
- TV_TREE_MAY_ALIAS, /* tv_id */
- PROP_cfg, /* properties_required */
- 0, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
- 0, /* todo_flags_finish */
- 0 /* letter */
-};
-
/* Initialize the data structures used for alias analysis. */
static struct alias_info *
init_alias_info (void)
{
struct alias_info *ai;
- static bool aliases_computed_p = false;
ai = xcalloc (1, sizeof (struct alias_info));
ai->ssa_names_visited = sbitmap_alloc (num_ssa_names);
sbitmap_zero (ai->ssa_names_visited);
VARRAY_TREE_INIT (ai->processed_ptrs, 50, "processed_ptrs");
- ai->addresses_needed = BITMAP_XMALLOC ();
+ ai->addresses_needed = BITMAP_ALLOC (NULL);
VARRAY_UINT_INIT (ai->num_references, num_referenced_vars, "num_references");
- ai->written_vars = BITMAP_XMALLOC ();
- ai->dereferenced_ptrs_store = BITMAP_XMALLOC ();
- ai->dereferenced_ptrs_load = BITMAP_XMALLOC ();
+ ai->written_vars = BITMAP_ALLOC (NULL);
+ ai->dereferenced_ptrs_store = BITMAP_ALLOC (NULL);
+ ai->dereferenced_ptrs_load = BITMAP_ALLOC (NULL);
/* If aliases have been computed before, clear existing information. */
if (aliases_computed_p)
@@ -626,7 +573,7 @@ delete_alias_info (struct alias_info *ai)
sbitmap_free (ai->ssa_names_visited);
ai->processed_ptrs = NULL;
- BITMAP_XFREE (ai->addresses_needed);
+ BITMAP_FREE (ai->addresses_needed);
for (i = 0; i < ai->num_addressable_vars; i++)
{
@@ -643,9 +590,9 @@ delete_alias_info (struct alias_info *ai)
free (ai->pointers);
ai->num_references = NULL;
- BITMAP_XFREE (ai->written_vars);
- BITMAP_XFREE (ai->dereferenced_ptrs_store);
- BITMAP_XFREE (ai->dereferenced_ptrs_load);
+ BITMAP_FREE (ai->written_vars);
+ BITMAP_FREE (ai->dereferenced_ptrs_store);
+ BITMAP_FREE (ai->dereferenced_ptrs_load);
free (ai);
}
@@ -695,7 +642,7 @@ compute_points_to_and_addr_escape (struct alias_info *ai)
{
bitmap addr_taken;
tree stmt = bsi_stmt (si);
- bool stmt_escapes_p = is_escape_site (stmt, &ai->num_calls_found);
+ bool stmt_escapes_p = is_escape_site (stmt, ai);
bitmap_iterator bi;
/* Mark all the variables whose address are taken by the
@@ -1116,6 +1063,7 @@ compute_flow_insensitive_aliasing (struct alias_info *ai)
/* Since TAG2 does not have any aliases of its own, add
TAG2 itself to the alias set of TAG1. */
add_may_alias (tag1, tag2);
+ SET_BIT (may_aliases1, var_ann (tag2)->uid);
}
}
}
@@ -1585,22 +1533,56 @@ maybe_create_global_var (struct alias_info *ai)
n_clobbered++;
}
- if (ai->num_calls_found * n_clobbered >= (size_t) GLOBAL_VAR_THRESHOLD)
+ /* If the number of virtual operands that would be needed to
+ model all the call-clobbered variables is larger than
+ GLOBAL_VAR_THRESHOLD, create .GLOBAL_VAR.
+
+ Also create .GLOBAL_VAR if there are no call-clobbered
+ variables and the program contains a mixture of pure/const
+ and regular function calls. This is to avoid the problem
+ described in PR 20115:
+
+ int X;
+ int func_pure (void) { return X; }
+ int func_non_pure (int a) { X += a; }
+ int foo ()
+ {
+ int a = func_pure ();
+ func_non_pure (a);
+ a = func_pure ();
+ return a;
+ }
+
+ Since foo() has no call-clobbered variables, there is
+ no relationship between the calls to func_pure and
+ func_non_pure. Since func_pure has no side-effects, value
+ numbering optimizations elide the second call to func_pure.
+ So, if we have some pure/const and some regular calls in the
+ program we create .GLOBAL_VAR to avoid missing these
+ relations. */
+ if (ai->num_calls_found * n_clobbered >= (size_t) GLOBAL_VAR_THRESHOLD
+ || (n_clobbered == 0
+ && ai->num_calls_found > 0
+ && ai->num_pure_const_calls_found > 0
+ && ai->num_calls_found > ai->num_pure_const_calls_found))
create_global_var ();
}
- /* If the function has calls to clobbering functions and .GLOBAL_VAR has
- been created, make it an alias for all call-clobbered variables. */
- if (global_var)
- EXECUTE_IF_SET_IN_BITMAP (call_clobbered_vars, 0, i, bi)
- {
- tree var = referenced_var (i);
- if (var != global_var)
- {
- add_may_alias (var, global_var);
- bitmap_set_bit (vars_to_rename, var_ann (var)->uid);
- }
- }
+ /* Mark all call-clobbered symbols for renaming. Since the initial
+ rewrite into SSA ignored all call sites, we may need to rename
+ .GLOBAL_VAR and the call-clobbered variables. */
+ EXECUTE_IF_SET_IN_BITMAP (call_clobbered_vars, 0, i, bi)
+ {
+ tree var = referenced_var (i);
+
+ /* If the function has calls to clobbering functions and
+ .GLOBAL_VAR has been created, make it an alias for all
+ call-clobbered variables. */
+ if (global_var && var != global_var)
+ add_may_alias (var, global_var);
+
+ bitmap_set_bit (vars_to_rename, var_ann (var)->uid);
+ }
}
@@ -1761,8 +1743,8 @@ set_pt_malloc (tree ptr)
/* Given two different pointers DEST and ORIG. Merge the points-to
- information in ORIG into DEST. AI is as in
- collect_points_to_info. */
+ information in ORIG into DEST. AI contains all the alias
+ information collected up to this point. */
static void
merge_pointed_to_info (struct alias_info *ai, tree dest, tree orig)
@@ -1907,7 +1889,7 @@ add_pointed_to_expr (struct alias_info *ai, tree ptr, tree expr)
/* If VALUE is of the form &DECL, add DECL to the set of variables
pointed-to by PTR. Otherwise, add VALUE as a pointed-to expression by
- PTR. AI is as in collect_points_to_info. */
+ PTR. AI points to the collected alias information. */
static void
add_pointed_to_var (struct alias_info *ai, tree ptr, tree value)
@@ -2039,16 +2021,18 @@ collect_points_to_info_r (tree var, tree stmt, void *data)
3- STMT is an assignment to a non-local variable, or
4- STMT is a return statement.
- If NUM_CALLS_P is not NULL, the counter is incremented if STMT contains
- a function call. */
+ AI points to the alias information collected so far. */
static bool
-is_escape_site (tree stmt, size_t *num_calls_p)
+is_escape_site (tree stmt, struct alias_info *ai)
{
- if (get_call_expr_in (stmt) != NULL_TREE)
+ tree call = get_call_expr_in (stmt);
+ if (call != NULL_TREE)
{
- if (num_calls_p)
- (*num_calls_p)++;
+ ai->num_calls_found++;
+
+ if (!TREE_SIDE_EFFECTS (call))
+ ai->num_pure_const_calls_found++;
return true;
}
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 995b9439afb..2e3d11288e4 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -1060,9 +1060,7 @@ visit_assignment (tree stmt, tree *output_p)
val = evaluate_stmt (stmt);
/* If the original LHS was a VIEW_CONVERT_EXPR, modify the constant
- value to be a VIEW_CONVERT_EXPR of the old constant value. This is
- valid because a VIEW_CONVERT_EXPR is valid everywhere an operand of
- aggregate type is valid.
+ value to be a VIEW_CONVERT_EXPR of the old constant value.
??? Also, if this was a definition of a bitfield, we need to widen
the constant value into the type of the destination variable. This
@@ -1073,10 +1071,18 @@ visit_assignment (tree stmt, tree *output_p)
if (TREE_CODE (orig_lhs) == VIEW_CONVERT_EXPR
&& val.lattice_val == CONSTANT)
{
- val.const_val = build1 (VIEW_CONVERT_EXPR,
- TREE_TYPE (TREE_OPERAND (orig_lhs, 0)),
- val.const_val);
+ tree w = fold (build1 (VIEW_CONVERT_EXPR,
+ TREE_TYPE (TREE_OPERAND (orig_lhs, 0)),
+ val.const_val));
+
orig_lhs = TREE_OPERAND (orig_lhs, 1);
+ if (w && is_gimple_min_invariant (w))
+ val.const_val = w;
+ else
+ {
+ val.lattice_val = VARYING;
+ val.const_val = NULL;
+ }
}
if (val.lattice_val == CONSTANT
@@ -1285,9 +1291,8 @@ widen_bitfield (tree val, tree field, tree var)
for (i = 0, mask = 0; i < field_size; i++)
mask |= ((HOST_WIDE_INT) 1) << i;
- wide_val = build (BIT_AND_EXPR, TREE_TYPE (var), val,
- fold_convert (TREE_TYPE (var),
- build_int_cst (NULL_TREE, mask)));
+ wide_val = build2 (BIT_AND_EXPR, TREE_TYPE (var), val,
+ build_int_cst (TREE_TYPE (var), mask));
}
else
{
@@ -1297,9 +1302,8 @@ widen_bitfield (tree val, tree field, tree var)
for (i = 0, mask = 0; i < (var_size - field_size); i++)
mask |= ((HOST_WIDE_INT) 1) << (var_size - i - 1);
- wide_val = build (BIT_IOR_EXPR, TREE_TYPE (var), val,
- fold_convert (TREE_TYPE (var),
- build_int_cst (NULL_TREE, mask)));
+ wide_val = build2 (BIT_IOR_EXPR, TREE_TYPE (var), val,
+ build_int_cst (TREE_TYPE (var), mask));
}
return fold (wide_val);
@@ -1961,7 +1965,7 @@ ccp_fold_builtin (tree stmt, tree fn)
}
/* Try to use the dataflow information gathered by the CCP process. */
- visited = BITMAP_XMALLOC ();
+ visited = BITMAP_ALLOC (NULL);
memset (strlen_val, 0, sizeof (strlen_val));
for (i = 0, a = arglist;
@@ -1974,7 +1978,7 @@ ccp_fold_builtin (tree stmt, tree fn)
strlen_val[i] = NULL_TREE;
}
- BITMAP_XFREE (visited);
+ BITMAP_FREE (visited);
result = NULL_TREE;
switch (DECL_FUNCTION_CODE (callee))
@@ -2086,6 +2090,18 @@ fold_stmt (tree *stmt_p)
t = TREE_TYPE (TREE_TYPE (OBJ_TYPE_REF_OBJECT (callee)));
t = lang_hooks.fold_obj_type_ref (callee, t);
+ if (t && TREE_CODE (t) == ADDR_EXPR
+ && TREE_CODE (TREE_OPERAND (t, 0)) == FUNCTION_DECL
+ && cgraph_global_info_ready)
+ {
+ /* If the method has been already finalized as unreachable,
+ avoid any new references to it. */
+ struct cgraph_node *node;
+
+ node = cgraph_node (TREE_OPERAND (t, 0));
+ if (!node->reachable && node->local.finalized)
+ t = NULL_TREE;
+ }
if (t)
{
TREE_OPERAND (rhs, 0) = t;
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index 87f6561415a..30b0ddb23a8 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -708,7 +708,10 @@ eliminate_unnecessary_stmts (void)
{
/* Remove dead PHI nodes. */
remove_dead_phis (bb);
+ }
+ FOR_EACH_BB (bb)
+ {
/* Remove dead statements. */
for (i = bsi_start (bb); ! bsi_end_p (i) ; )
{
@@ -795,6 +798,7 @@ remove_dead_stmt (block_stmt_iterator *i, basic_block bb)
if (is_ctrl_stmt (t))
{
basic_block post_dom_bb;
+
/* The post dominance info has to be up-to-date. */
gcc_assert (dom_computed[CDI_POST_DOMINATORS] == DOM_OK);
/* Get the immediate post dominator of bb. */
@@ -808,9 +812,20 @@ remove_dead_stmt (block_stmt_iterator *i, basic_block bb)
return;
}
- /* Redirect the first edge out of BB to reach POST_DOM_BB. */
- redirect_edge_and_branch (EDGE_SUCC (bb, 0), post_dom_bb);
- PENDING_STMT (EDGE_SUCC (bb, 0)) = NULL;
+ /* If the post dominator block has PHI nodes, we might be unable
+ to compute the right PHI args for them. Since the control
+ statement is unnecessary, all edges can be regarded as
+ equivalent, but we have to get rid of the condition, since it
+ might reference a variable that was determined to be
+ unnecessary and thus removed. */
+ if (phi_nodes (post_dom_bb))
+ post_dom_bb = EDGE_SUCC (bb, 0)->dest;
+ else
+ {
+ /* Redirect the first edge out of BB to reach POST_DOM_BB. */
+ redirect_edge_and_branch (EDGE_SUCC (bb, 0), post_dom_bb);
+ PENDING_STMT (EDGE_SUCC (bb, 0)) = NULL;
+ }
EDGE_SUCC (bb, 0)->probability = REG_BR_PROB_BASE;
EDGE_SUCC (bb, 0)->count = bb->count;
@@ -879,7 +894,7 @@ tree_dce_init (bool aggressive)
control_dependence_map
= xmalloc (last_basic_block * sizeof (bitmap));
for (i = 0; i < last_basic_block; ++i)
- control_dependence_map[i] = BITMAP_XMALLOC ();
+ control_dependence_map[i] = BITMAP_ALLOC (NULL);
last_stmt_necessary = sbitmap_alloc (last_basic_block);
sbitmap_zero (last_stmt_necessary);
@@ -901,7 +916,7 @@ tree_dce_done (bool aggressive)
int i;
for (i = 0; i < last_basic_block; ++i)
- BITMAP_XFREE (control_dependence_map[i]);
+ BITMAP_FREE (control_dependence_map[i]);
free (control_dependence_map);
sbitmap_free (visited_control_parents);
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index ad8bc53718f..7357cd080a6 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -35,6 +35,8 @@ Boston, MA 02111-1307, USA. */
#include "function.h"
#include "diagnostic.h"
#include "timevar.h"
+/* APPLE LOCAL lno */
+#include "cfgloop.h"
#include "tree-dump.h"
#include "tree-flow.h"
#include "domwalk.h"
@@ -181,7 +183,7 @@ static struct opt_stats_d opt_stats;
of the form SSA_NAME COND CONST we create a new vrp_element to record
how the condition affects the possible values SSA_NAME may have.
- Each record contains the condition tested (COND), and the the range of
+ Each record contains the condition tested (COND), and the range of
values the variable may legitimately have if COND is true. Note the
range of values may be a smaller range than COND specifies if we have
recorded other ranges for this variable. Each record also contains the
@@ -367,8 +369,15 @@ static void
tree_ssa_dominator_optimize (void)
{
struct dom_walk_data walk_data;
+ /* APPLE LOCAL lno */
+ struct loops *loops;
unsigned int i;
+ /* APPLE LOCAL begin lno */
+ /* Compute the natural loops. */
+ loops = loop_optimizer_init (NULL);
+ /* APPLE LOCAL end lno */
+
memset (&opt_stats, 0, sizeof (opt_stats));
for (i = 0; i < num_referenced_vars; i++)
@@ -383,8 +392,8 @@ tree_ssa_dominator_optimize (void)
nonzero_vars_stack = VEC_alloc (tree_on_heap, 20);
vrp_variables_stack = VEC_alloc (tree_on_heap, 20);
stmts_to_rescan = VEC_alloc (tree_on_heap, 20);
- nonzero_vars = BITMAP_XMALLOC ();
- need_eh_cleanup = BITMAP_XMALLOC ();
+ nonzero_vars = BITMAP_ALLOC (NULL);
+ need_eh_cleanup = BITMAP_ALLOC (NULL);
/* Setup callbacks for the generic dominator tree walker. */
walk_data.walk_stmts_backward = false;
@@ -481,6 +490,10 @@ tree_ssa_dominator_optimize (void)
}
while (optimize > 1 && cfg_altered);
+ /* APPLE LOCAL begin lno */
+ loop_optimizer_finalize (loops, NULL);
+ /* APPLE LOCAL end lno */
+
/* Debugging dumps. */
if (dump_file && (dump_flags & TDF_STATS))
dump_dominator_optimization_stats (dump_file);
@@ -497,8 +510,8 @@ tree_ssa_dominator_optimize (void)
fini_walk_dominator_tree (&walk_data);
/* Free nonzero_vars. */
- BITMAP_XFREE (nonzero_vars);
- BITMAP_XFREE (need_eh_cleanup);
+ BITMAP_FREE (nonzero_vars);
+ BITMAP_FREE (need_eh_cleanup);
VEC_free (tree_on_heap, block_defs_stack);
VEC_free (tree_on_heap, avail_exprs_stack);
@@ -1398,7 +1411,7 @@ record_cond (tree cond, tree value)
/* Build a new conditional using NEW_CODE, OP0 and OP1 and store
the new conditional into *p, then store a boolean_true_node
- into the the *(p + 1). */
+ into *(p + 1). */
static void
build_and_record_new_cond (enum tree_code new_code, tree op0, tree op1, tree *p)
@@ -1662,8 +1675,11 @@ simplify_rhs_and_lookup_avail_expr (struct dom_walk_data *walk_data,
tree rhs_def_stmt = SSA_NAME_DEF_STMT (TREE_OPERAND (rhs, 0));
/* See if the RHS_DEF_STMT has the same form as our statement. */
+ /* APPLE LOCAL begin lno */
if (TREE_CODE (rhs_def_stmt) == MODIFY_EXPR
- && TREE_CODE (TREE_OPERAND (rhs_def_stmt, 1)) == rhs_code)
+ && TREE_CODE (TREE_OPERAND (rhs_def_stmt, 1)) == rhs_code
+ && loop_containing_stmt (rhs_def_stmt) == loop_containing_stmt (stmt))
+ /* APPLE LOCAL end lno */
{
tree rhs_def_operand;
@@ -1689,7 +1705,11 @@ simplify_rhs_and_lookup_avail_expr (struct dom_walk_data *walk_data,
tree rhs_def_stmt = SSA_NAME_DEF_STMT (TREE_OPERAND (rhs, 0));
/* See if the RHS_DEF_STMT has the same form as our statement. */
- if (TREE_CODE (rhs_def_stmt) == MODIFY_EXPR)
+ /* APPLE LOCAL begin lno */
+ if (TREE_CODE (rhs_def_stmt) == MODIFY_EXPR
+ && TREE_CODE (TREE_OPERAND (rhs_def_stmt, 1)) == rhs_code
+ && loop_containing_stmt (rhs_def_stmt) == loop_containing_stmt (stmt))
+ /* APPLE LOCAL end lno */
{
tree rhs_def_rhs = TREE_OPERAND (rhs_def_stmt, 1);
enum tree_code rhs_def_code = TREE_CODE (rhs_def_rhs);
@@ -3189,16 +3209,19 @@ extract_range_from_cond (tree cond, tree *hi_p, tree *lo_p, int *inverted_p)
tree op1 = TREE_OPERAND (cond, 1);
tree high, low, type;
int inverted;
-
+
+ type = TREE_TYPE (op1);
+
/* Experiments have shown that it's rarely, if ever useful to
record ranges for enumerations. Presumably this is due to
the fact that they're rarely used directly. They are typically
cast into an integer type and used that way. */
- if (TREE_CODE (TREE_TYPE (op1)) != INTEGER_TYPE)
+ if (TREE_CODE (type) != INTEGER_TYPE
+ /* We don't know how to deal with types with variable bounds. */
+ || TREE_CODE (TYPE_MIN_VALUE (type)) != INTEGER_CST
+ || TREE_CODE (TYPE_MAX_VALUE (type)) != INTEGER_CST)
return 0;
- type = TREE_TYPE (op1);
-
switch (TREE_CODE (cond))
{
case EQ_EXPR:
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 625e1d1fa8f..249132d0f61 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -433,7 +433,7 @@ tree_ssa_dse (void)
walk_data.block_local_data_size = sizeof (struct dse_block_local_data);
/* This is the main hash table for the dead store elimination pass. */
- dse_gd.stores = BITMAP_XMALLOC ();
+ dse_gd.stores = BITMAP_ALLOC (NULL);
walk_data.global_data = &dse_gd;
/* Initialize the dominator walker. */
@@ -446,7 +446,7 @@ tree_ssa_dse (void)
fini_walk_dominator_tree (&walk_data);
/* Release the main bitmap. */
- BITMAP_XFREE (dse_gd.stores);
+ BITMAP_FREE (dse_gd.stores);
/* Free dataflow information. It's probably out of date now anyway. */
free_df ();
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index b13894e42fc..813b7e3604f 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -1,5 +1,5 @@
/* Forward propagation of single use variables.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -472,6 +472,233 @@ substitute_single_use_vars (varray_type *cond_worklist,
}
}
+/* APPLE LOCAL begin cast removal. */
+
+/* Return TRUE iff STMT is a MODIFY_EXPR of the form
+ x = (cast) y;
+*/
+static bool cast_conversion_assignment_p (tree stmt)
+{
+ tree lhs, rhs;
+
+ gcc_assert (stmt);
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ return false;
+
+ lhs = TREE_OPERAND (stmt, 0);
+ rhs = TREE_OPERAND (stmt, 1);
+ if ((TREE_CODE (rhs) == NOP_EXPR
+ || TREE_CODE (rhs) == CONVERT_EXPR)
+ && TREE_CODE (TREE_OPERAND (rhs, 0)) == SSA_NAME
+ && TREE_CODE (lhs) == SSA_NAME)
+ return true;
+
+ return false;
+}
+
+/* STMT is a comparision and it uses DEF_STMT.
+ DEF_STMT is a modify expression that applys cast.
+ Return TRUE iff, it is OK to replace use of DEF_STMT by LHS's
+ inner type. If NEW_STMT is not NULL then */
+static bool
+replacable_use_in_cond_expr (tree stmt, tree def_stmt, tree *new_stmt)
+{
+ tree op0, op1, candidate_op, other_op, temp, def_rhs, def_rhs_inner_type;
+
+ gcc_assert (stmt);
+ gcc_assert (def_stmt);
+ gcc_assert (COMPARISON_CLASS_P (stmt));
+ gcc_assert (TREE_CODE (def_stmt) == MODIFY_EXPR);
+
+ candidate_op = NULL_TREE;
+ other_op = NULL_TREE;
+
+ op0 = TREE_OPERAND (stmt, 0);
+ op1 = TREE_OPERAND (stmt, 1);
+
+ if (TREE_CODE (op0) == SSA_NAME
+ && SSA_NAME_DEF_STMT (op0) == def_stmt
+ && is_gimple_min_invariant (op1))
+ {
+ candidate_op = op0;
+ other_op = op1;
+ }
+ else if (TREE_CODE (op1) == SSA_NAME
+ && SSA_NAME_DEF_STMT (op1) == def_stmt
+ && is_gimple_min_invariant (op0))
+ {
+ candidate_op = op1;
+ other_op = op0;
+ }
+ else
+ return false;
+
+ if (!cast_conversion_assignment_p (def_stmt))
+ return false;
+
+ /* What we want to prove is that if we convert CANDIDATE_OP to
+ the type of the object inside the NOP_EXPR that the
+ result is still equivalent to SRC. */
+ def_rhs = TREE_OPERAND (def_stmt, 1);
+ def_rhs_inner_type = TREE_TYPE (TREE_OPERAND (def_rhs, 0));
+ temp = build1 (TREE_CODE (def_rhs), def_rhs_inner_type, other_op);
+ temp = fold (temp);
+ if (is_gimple_val (temp) && tree_int_cst_equal (temp, other_op))
+ {
+ if (new_stmt)
+ *new_stmt = build (TREE_CODE (stmt), TREE_TYPE (stmt),
+ TREE_OPERAND (def_rhs, 0), temp);
+
+ return true;
+ }
+ return false;
+}
+
+/* Return TRUE iff all uses of STMT are candidate for replacement. */
+static bool
+all_uses_are_replacable (tree stmt, bool replace)
+{
+ dataflow_t df;
+ int j, num_uses;
+ bool replacable = true;
+
+ /* Now compute the immediate uses of TEST_VAR. */
+ df = get_immediate_uses (stmt);
+ num_uses = num_immediate_uses (df);
+
+ for (j = 0; j < num_uses && replacable; j++)
+ {
+ tree use = immediate_use (df, j);
+
+ if (replace && dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file, " Removing casts");
+ print_generic_expr (dump_file, use, dump_flags);
+ fprintf (dump_file, "\n");
+ }
+
+ if (TREE_CODE (use) == MODIFY_EXPR)
+ {
+ replacable = cast_conversion_assignment_p (use);
+ if (replace)
+ {
+ /* Before
+
+ STMT: a = (cast) b;
+ USE: c = (undo_cast) a;
+
+ After
+
+ USE: c = b;
+ */
+ tree def_rhs = TREE_OPERAND (stmt, 1);
+ tree def_rhs_inner = TREE_OPERAND (def_rhs, 0);
+ tree use_lhs = TREE_OPERAND (use, 0);
+
+ tree def_rhs_inner_type = TREE_TYPE (def_rhs_inner);
+ tree use_lhs_type = TREE_TYPE (use_lhs);
+
+ if ((TYPE_PRECISION (def_rhs_inner_type)
+ == TYPE_PRECISION (use_lhs_type))
+ && (TYPE_MAIN_VARIANT (def_rhs_inner_type)
+ == TYPE_MAIN_VARIANT (use_lhs_type)))
+ {
+ TREE_OPERAND (use, 1) = TREE_OPERAND (def_rhs, 0);
+ modify_stmt (use);
+ }
+ }
+ }
+ else if (TREE_CODE (use) == COND_EXPR
+ && COMPARISON_CLASS_P (COND_EXPR_COND (use)))
+ {
+ if (replace)
+ {
+ tree new_cond = NULL_TREE;
+ replacable = replacable_use_in_cond_expr (COND_EXPR_COND (use),
+ stmt, &new_cond);
+ if (new_cond)
+ {
+ COND_EXPR_COND (use) = new_cond;
+ modify_stmt (use);
+ }
+ else
+ abort ();
+ }
+ else
+ replacable = replacable_use_in_cond_expr (COND_EXPR_COND (use),
+ stmt, NULL);
+ }
+ else
+ replacable = false;
+ }
+
+ return replacable;
+}
+
+static void
+eliminate_unnecessary_casts (void)
+{
+ basic_block bb;
+ block_stmt_iterator bsi;
+ varray_type worklist;
+
+ /* Memory allocation. */
+ vars = BITMAP_ALLOC (NULL);
+ VARRAY_TREE_INIT (worklist, 10, "worklist");
+ FOR_EACH_BB (bb)
+ {
+ for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
+ {
+ tree stmt = bsi_stmt (bsi);
+
+ /* If stmt is of the form
+ x = (cast) y;
+ then make x candidate. */
+
+ if (cast_conversion_assignment_p (stmt))
+ {
+ tree lhs = TREE_OPERAND (stmt, 0);
+ tree rhs = TREE_OPERAND (stmt, 1);
+ tree rhs_inner = TREE_OPERAND (rhs, 0);
+ tree rhs_type = TREE_TYPE (rhs);
+ tree rhs_inner_type = TREE_TYPE (rhs_inner);
+
+ if ((TYPE_PRECISION (rhs_inner_type) <= TYPE_PRECISION (rhs_type))
+ && (TYPE_UNSIGNED (rhs_inner_type) == TYPE_UNSIGNED (rhs_type)))
+ {
+ bitmap_set_bit (vars, SSA_NAME_VERSION (lhs));
+ VARRAY_PUSH_TREE (worklist, stmt);
+ }
+ }
+ }
+ }
+
+ /* Now compute immidiate uses for candidates. */
+ compute_immediate_uses (TDFA_USE_OPS, need_imm_uses_for);
+ while (VARRAY_ACTIVE_SIZE (worklist) > 0)
+ {
+ tree stmt = VARRAY_TOP_TREE (worklist);
+ VARRAY_POP (worklist);
+
+ if (all_uses_are_replacable (stmt, false /* Do not replace */))
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file,"File name = %s\n", __FILE__);
+ fprintf (dump_file,"Input name = %s\n", main_input_filename);
+ }
+ all_uses_are_replacable (stmt, true /* Replace */);
+ }
+
+ }
+ /* Cleanup */
+ free_df ();
+ BITMAP_FREE (vars);
+}
+
+/* APPLE LOCAL end cast removal. */
+
/* Main entry point for the forward propagation optimizer. */
static void
@@ -480,7 +707,11 @@ tree_ssa_forward_propagate_single_use_vars (void)
basic_block bb;
varray_type vars_worklist, cond_worklist;
- vars = BITMAP_XMALLOC ();
+ /* APPLE LOCAL begin cast removal. */
+ eliminate_unnecessary_casts ();
+ /* APPLE LOCAL end cast removal. */
+
+ vars = BITMAP_ALLOC (NULL);
VARRAY_TREE_INIT (vars_worklist, 10, "VARS worklist");
VARRAY_TREE_INIT (cond_worklist, 10, "COND worklist");
@@ -522,7 +753,7 @@ tree_ssa_forward_propagate_single_use_vars (void)
}
/* All done. Clean up. */
- BITMAP_XFREE (vars);
+ BITMAP_FREE (vars);
}
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 15c8b482082..3add81b9a05 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -1,5 +1,5 @@
/* Liveness for SSA trees.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Andrew MacLeod <amacleod@redhat.com>
This file is part of GCC.
@@ -439,11 +439,11 @@ new_tree_live_info (var_map map)
live->map = map;
live->num_blocks = last_basic_block;
- live->global = BITMAP_XMALLOC ();
+ live->global = BITMAP_ALLOC (NULL);
live->livein = (bitmap *)xmalloc (num_var_partitions (map) * sizeof (bitmap));
for (x = 0; x < num_var_partitions (map); x++)
- live->livein[x] = BITMAP_XMALLOC ();
+ live->livein[x] = BITMAP_ALLOC (NULL);
/* liveout is deferred until it is actually requested. */
live->liveout = NULL;
@@ -460,17 +460,17 @@ delete_tree_live_info (tree_live_info_p live)
if (live->liveout)
{
for (x = live->num_blocks - 1; x >= 0; x--)
- BITMAP_XFREE (live->liveout[x]);
+ BITMAP_FREE (live->liveout[x]);
free (live->liveout);
}
if (live->livein)
{
for (x = num_var_partitions (live->map) - 1; x >= 0; x--)
- BITMAP_XFREE (live->livein[x]);
+ BITMAP_FREE (live->livein[x]);
free (live->livein);
}
if (live->global)
- BITMAP_XFREE (live->global);
+ BITMAP_FREE (live->global);
free (live);
}
@@ -573,7 +573,7 @@ calculate_live_on_entry (var_map map)
edge_iterator ei;
#endif
- saw_def = BITMAP_XMALLOC ();
+ saw_def = BITMAP_ALLOC (NULL);
live = new_tree_live_info (map);
@@ -720,7 +720,7 @@ calculate_live_on_entry (var_map map)
gcc_assert (num <= 0);
#endif
- BITMAP_XFREE (saw_def);
+ BITMAP_FREE (saw_def);
return live;
}
@@ -742,7 +742,7 @@ calculate_live_on_exit (tree_live_info_p liveinfo)
on_exit = (bitmap *)xmalloc (last_basic_block * sizeof (bitmap));
for (x = 0; x < (unsigned)last_basic_block; x++)
- on_exit[x] = BITMAP_XMALLOC ();
+ on_exit[x] = BITMAP_ALLOC (NULL);
/* Set all the live-on-exit bits for uses in PHIs. */
FOR_EACH_BB (bb)
@@ -1309,7 +1309,7 @@ build_tree_conflict_graph (tree_live_info_p liveinfo, tpa_p tpa,
if (tpa_num_trees (tpa) == 0)
return graph;
- live = BITMAP_XMALLOC ();
+ live = BITMAP_ALLOC (NULL);
VARRAY_INT_INIT (partition_link, num_var_partitions (map) + 1, "part_link");
VARRAY_INT_INIT (tpa_nodes, tpa_num_trees (tpa), "tpa nodes");
@@ -1443,7 +1443,7 @@ build_tree_conflict_graph (tree_live_info_p liveinfo, tpa_p tpa,
VARRAY_POP_ALL (tpa_to_clear);
}
- BITMAP_XFREE (live);
+ BITMAP_FREE (live);
return graph;
}
diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c
index e307528b2a8..5de11fcaf4c 100644
--- a/gcc/tree-ssa-loop-ch.c
+++ b/gcc/tree-ssa-loop-ch.c
@@ -131,7 +131,8 @@ copy_loop_headers (void)
basic_block *bbs;
unsigned n_bbs;
- loops = loop_optimizer_init (dump_file);
+ /* APPLE LOCAL lno */
+ loops = tree_loop_optimizer_init (dump_file);
if (!loops)
return;
rewrite_into_loop_closed_ssa ();
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 65a2a5fd48a..770b71b1208 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -38,6 +38,28 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tree-pass.h"
#include "flags.h"
+/* TODO: Support for predicated code motion. I.e.
+
+ while (1)
+ {
+ if (cond)
+ {
+ a = inv;
+ something;
+ }
+ }
+
+ Where COND and INV are is invariants, but evaluating INV may trap or be
+ invalid from some other reason if !COND. This may be transformed to
+
+ if (cond)
+ a = inv;
+ while (1)
+ {
+ if (cond)
+ something;
+ } */
+
/* A type for the list of statements that have to be moved in order to be able
to hoist an invariant computation. */
@@ -227,6 +249,28 @@ movement_possibility (tree stmt)
|| tree_could_trap_p (rhs))
return MOVE_PRESERVE_EXECUTION;
+ if (get_call_expr_in (stmt))
+ {
+ /* While pure or const call is guaranteed to have no side effects, we
+ cannot move it arbitrarily. Consider code like
+
+ char *s = something ();
+
+ while (1)
+ {
+ if (s)
+ t = strlen (s);
+ else
+ t = 0;
+ }
+
+ Here the strlen call cannot be moved out of the loop, even though
+ s is invariant. In addition to possibly creating a call with
+ invalid arguments, moving out a function call that is not executed
+ may cause performance regressions in case the call is costly and
+ not executed at all. */
+ return MOVE_PRESERVE_EXECUTION;
+ }
return MOVE_POSSIBLE;
}
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index 88fa967bf3b..dada5bf657c 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -168,9 +168,6 @@ try_unroll_loop_completely (struct loops *loops ATTRIBUTE_UNUSED,
if (n_unroll)
{
- if (!flag_unroll_loops)
- return false;
-
old_cond = COND_EXPR_COND (cond);
COND_EXPR_COND (cond) = dont_exit;
modify_stmt (cond);
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 40661bea109..796946369d3 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -88,6 +88,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tree-scalar-evolution.h"
#include "cfgloop.h"
#include "params.h"
+#include "langhooks.h"
/* The infinite cost. */
#define INFTY 10000000
@@ -730,8 +731,8 @@ tree_ssa_iv_optimize_init (struct loops *loops, struct ivopts_data *data)
data->version_info_size = 2 * num_ssa_names;
data->version_info = xcalloc (data->version_info_size,
sizeof (struct version_info));
- data->relevant = BITMAP_XMALLOC ();
- data->important_candidates = BITMAP_XMALLOC ();
+ data->relevant = BITMAP_ALLOC (NULL);
+ data->important_candidates = BITMAP_ALLOC (NULL);
data->max_inv_id = 0;
data->niters = htab_create (10, nfe_hash, nfe_eq, free);
@@ -1152,7 +1153,7 @@ record_use (struct ivopts_data *data, tree *use_p, struct iv *iv,
use->iv = iv;
use->stmt = stmt;
use->op_p = use_p;
- use->related_cands = BITMAP_XMALLOC ();
+ use->related_cands = BITMAP_ALLOC (NULL);
/* To avoid showing ssa name in the dumps, if it was not reset by the
caller. */
@@ -1840,6 +1841,22 @@ strip_offset (tree expr, bool inside_addr, unsigned HOST_WIDE_INT *offset)
return fold_convert (orig_type, expr);
}
+/* Returns variant of TYPE that can be used as base for different uses.
+ For integer types, we return unsigned variant of the type, which
+ avoids problems with overflows. For pointer types, we return void *. */
+
+static tree
+generic_type_for (tree type)
+{
+ if (POINTER_TYPE_P (type))
+ return ptr_type_node;
+
+ if (TYPE_UNSIGNED (type))
+ return type;
+
+ return unsigned_type_for (type);
+}
+
/* Adds a candidate BASE + STEP * i. Important field is set to IMPORTANT and
position to POS. If USE is not NULL, the candidate is set as related to
it. If both BASE and STEP are NULL, we add a pseudocandidate for the
@@ -1852,14 +1869,14 @@ add_candidate_1 (struct ivopts_data *data,
{
unsigned i;
struct iv_cand *cand = NULL;
- tree type;
+ tree type, orig_type;
if (base)
{
- type = TREE_TYPE (base);
- if (!TYPE_UNSIGNED (type))
+ orig_type = TREE_TYPE (base);
+ type = generic_type_for (orig_type);
+ if (type != orig_type)
{
- type = unsigned_type_for (type);
base = fold_convert (type, base);
if (step)
step = fold_convert (type, step);
@@ -1980,23 +1997,28 @@ add_candidate (struct ivopts_data *data,
add_candidate_1 (data, base, step, important, IP_END, use, NULL_TREE);
}
+/* Add a standard "0 + 1 * iteration" iv candidate for a
+ type with SIZE bits. */
+
+static void
+add_standard_iv_candidates_for_size (struct ivopts_data *data,
+ unsigned int size)
+{
+ tree type = lang_hooks.types.type_for_size (size, true);
+ add_candidate (data, build_int_cst (type, 0), build_int_cst (type, 1),
+ true, NULL);
+}
+
/* Adds standard iv candidates. */
static void
add_standard_iv_candidates (struct ivopts_data *data)
{
- /* Add 0 + 1 * iteration candidate. */
- add_candidate (data,
- build_int_cst (unsigned_intSI_type_node, 0),
- build_int_cst (unsigned_intSI_type_node, 1),
- true, NULL);
+ add_standard_iv_candidates_for_size (data, INT_TYPE_SIZE);
- /* The same for a long type if it is still fast enough. */
- if (BITS_PER_WORD > 32)
- add_candidate (data,
- build_int_cst (unsigned_intDI_type_node, 0),
- build_int_cst (unsigned_intDI_type_node, 1),
- true, NULL);
+ /* The same for a double-integer type if it is still fast enough. */
+ if (BITS_PER_WORD >= INT_TYPE_SIZE * 2)
+ add_standard_iv_candidates_for_size (data, INT_TYPE_SIZE * 2);
}
@@ -2184,7 +2206,7 @@ record_important_candidates (struct ivopts_data *data)
for (i = 0; i < n_iv_uses (data); i++)
{
use = iv_use (data, i);
- BITMAP_XFREE (use->related_cands);
+ BITMAP_FREE (use->related_cands);
}
}
else
@@ -2260,7 +2282,7 @@ set_use_iv_cost (struct ivopts_data *data,
if (cost == INFTY)
{
- BITMAP_XFREE (depends_on);
+ BITMAP_FREE (depends_on);
return;
}
@@ -2427,7 +2449,8 @@ computation_cost (tree expr)
rtx seq, rslt;
tree type = TREE_TYPE (expr);
unsigned cost;
- int regno = 0;
+ /* Avoid using hard regs in ways which may be unsupported. */
+ int regno = LAST_VIRTUAL_REGISTER + 1;
walk_tree (&expr, prepare_decl_rtl, &regno, NULL);
start_sequence ();
@@ -2827,7 +2850,7 @@ find_depends (tree *expr_p, int *ws ATTRIBUTE_UNUSED, void *data)
return NULL_TREE;
if (!*depends_on)
- *depends_on = BITMAP_XMALLOC ();
+ *depends_on = BITMAP_ALLOC (NULL);
bitmap_set_bit (*depends_on, info->inv_id);
return NULL_TREE;
@@ -3589,7 +3612,7 @@ determine_use_iv_costs (struct ivopts_data *data)
unsigned i, j;
struct iv_use *use;
struct iv_cand *cand;
- bitmap to_clear = BITMAP_XMALLOC ();
+ bitmap to_clear = BITMAP_ALLOC (NULL);
alloc_use_cost_map (data);
@@ -3623,7 +3646,7 @@ determine_use_iv_costs (struct ivopts_data *data)
}
}
- BITMAP_XFREE (to_clear);
+ BITMAP_FREE (to_clear);
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -4134,7 +4157,7 @@ iv_ca_new (struct ivopts_data *data)
nw->bad_uses = 0;
nw->cand_for_use = xcalloc (n_iv_uses (data), sizeof (struct cost_pair *));
nw->n_cand_uses = xcalloc (n_iv_cands (data), sizeof (unsigned));
- nw->cands = BITMAP_XMALLOC ();
+ nw->cands = BITMAP_ALLOC (NULL);
nw->n_cands = 0;
nw->n_regs = 0;
nw->cand_use_cost = 0;
@@ -4152,7 +4175,7 @@ iv_ca_free (struct iv_ca **ivs)
{
free ((*ivs)->cand_for_use);
free ((*ivs)->n_cand_uses);
- BITMAP_XFREE ((*ivs)->cands);
+ BITMAP_FREE ((*ivs)->cands);
free ((*ivs)->n_invariant_uses);
free (*ivs);
*ivs = NULL;
@@ -4877,15 +4900,17 @@ rewrite_use_compare (struct ivopts_data *data,
if (may_eliminate_iv (data, use, cand, &compare, &bound))
{
+ tree var = var_at_stmt (data->current_loop, cand, use->stmt);
+ tree var_type = TREE_TYPE (var);
+
+ bound = fold_convert (var_type, bound);
op = force_gimple_operand (unshare_expr (bound), &stmts,
true, NULL_TREE);
if (stmts)
bsi_insert_before (&bsi, stmts, BSI_SAME_STMT);
- *use->op_p = build2 (compare, boolean_type_node,
- var_at_stmt (data->current_loop,
- cand, use->stmt), op);
+ *use->op_p = build2 (compare, boolean_type_node, var, op);
modify_stmt (use->stmt);
return;
}
@@ -5192,10 +5217,10 @@ free_loop_data (struct ivopts_data *data)
struct iv_use *use = iv_use (data, i);
free (use->iv);
- BITMAP_XFREE (use->related_cands);
+ BITMAP_FREE (use->related_cands);
for (j = 0; j < use->n_map_members; j++)
if (use->cost_map[j].depends_on)
- BITMAP_XFREE (use->cost_map[j].depends_on);
+ BITMAP_FREE (use->cost_map[j].depends_on);
free (use->cost_map);
free (use);
}
@@ -5247,8 +5272,8 @@ tree_ssa_iv_optimize_finalize (struct loops *loops, struct ivopts_data *data)
free_loop_data (data);
free (data->version_info);
- BITMAP_XFREE (data->relevant);
- BITMAP_XFREE (data->important_candidates);
+ BITMAP_FREE (data->relevant);
+ BITMAP_FREE (data->important_candidates);
htab_delete (data->niters);
VARRAY_FREE (decl_rtl_to_reset);
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index 6f745ea6aee..848abbc88d6 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -159,10 +159,10 @@ add_exit_phis_var (tree var, bitmap livein, bitmap exits)
bitmap_clear_bit (livein, def_bb->index);
- def = BITMAP_XMALLOC ();
+ def = BITMAP_ALLOC (NULL);
bitmap_set_bit (def, def_bb->index);
compute_global_livein (livein, def);
- BITMAP_XFREE (def);
+ BITMAP_FREE (def);
EXECUTE_IF_AND_IN_BITMAP (exits, livein, 0, index, bi)
{
@@ -191,7 +191,7 @@ add_exit_phis (bitmap names_to_rename, bitmap *use_blocks, bitmap loop_exits)
static bitmap
get_loops_exits (void)
{
- bitmap exits = BITMAP_XMALLOC ();
+ bitmap exits = BITMAP_ALLOC (NULL);
basic_block bb;
edge e;
edge_iterator ei;
@@ -235,7 +235,7 @@ find_uses_to_rename_use (basic_block bb, tree use, bitmap *use_blocks)
return;
if (!use_blocks[ver])
- use_blocks[ver] = BITMAP_XMALLOC ();
+ use_blocks[ver] = BITMAP_ALLOC (NULL);
bitmap_set_bit (use_blocks[ver], bb->index);
if (!flow_bb_inside_loop_p (def_loop, bb))
@@ -330,10 +330,10 @@ rewrite_into_loop_closed_ssa (void)
add_exit_phis (names_to_rename, use_blocks, loop_exits);
for (i = 0; i < num_ssa_names; i++)
- BITMAP_XFREE (use_blocks[i]);
+ BITMAP_FREE (use_blocks[i]);
free (use_blocks);
- BITMAP_XFREE (loop_exits);
- BITMAP_XFREE (names_to_rename);
+ BITMAP_FREE (loop_exits);
+ BITMAP_FREE (names_to_rename);
/* Do the rewriting. */
rewrite_ssa_into_ssa ();
@@ -618,7 +618,7 @@ tree_duplicate_loop_to_header_edge (struct loop *loop, edge e,
definitions = marked_ssa_names ();
rename_variables (first_new_block, definitions);
unmark_all_for_rewrite ();
- BITMAP_XFREE (definitions);
+ BITMAP_FREE (definitions);
/* For some time we have the identical ssa names as results in multiple phi
nodes. When phi node is resized, it sets SSA_NAME_DEF_STMT of its result
diff --git a/gcc/tree-ssa-loop-memset.c b/gcc/tree-ssa-loop-memset.c
new file mode 100644
index 00000000000..b3dbd154e20
--- /dev/null
+++ b/gcc/tree-ssa-loop-memset.c
@@ -0,0 +1,733 @@
+/* APPLE LOCAL begin loops-to-memset (ENTIRE FILE!) */
+/* Loops to memset.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+ Contributed by Andrew Pinski <apinski@apple.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 "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "ggc.h"
+#include "tree.h"
+#include "rtl.h"
+#include "tm_p.h"
+#include "hard-reg-set.h"
+#include "basic-block.h"
+#include "output.h"
+#include "diagnostic.h"
+#include "tree-flow.h"
+#include "tree-dump.h"
+#include "timevar.h"
+#include "cfgloop.h"
+#include "domwalk.h"
+#include "params.h"
+#include "tree-pass.h"
+#include "flags.h"
+#include "tree-data-ref.h"
+#include "tree-scalar-evolution.h"
+#include "tree-chrec.h"
+#include "tree-vectorizer.h"
+
+static bool memset_debug_stats (struct loop *loop);
+static bool memset_debug_details (struct loop *loop);
+
+/* Function memset_analyze_data_refs.
+
+ Find all the data references in the loop.
+
+ Handle INDIRECT_REFs and one dimensional ARRAY_REFs
+ which base is really an array (not a pointer).
+
+ This is different from vect_analyze_data_refs in tree-vectorizer.c as
+ we handle unaligned data stores and we only handle data stores. */
+
+static bool
+memset_analyze_data_refs (loop_vec_info loop_vinfo)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ int nbbs = loop->num_nodes;
+ block_stmt_iterator si;
+ int j;
+ struct data_reference *dr;
+
+ if (memset_debug_details (NULL))
+ fprintf (dump_file, "\n<<memset_analyze_data_refs>>\n");
+
+ for (j = 0; j < nbbs; j++)
+ {
+ basic_block bb = bbs[j];
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ tree stmt = bsi_stmt (si);
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ v_may_def_optype v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
+ v_must_def_optype v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
+ vuse_optype vuses = STMT_VUSE_OPS (stmt);
+ varray_type *datarefs = NULL;
+ int nvuses, nv_may_defs, nv_must_defs;
+ tree memref = NULL;
+ tree array_base;
+ tree symbl;
+
+ /* Assumption: there exists a data-ref in stmt, if and only if
+ it has vuses/vdefs. */
+
+ if (!vuses && !v_may_defs && !v_must_defs)
+ continue;
+
+ nvuses = NUM_VUSES (vuses);
+ nv_may_defs = NUM_V_MAY_DEFS (v_may_defs);
+ nv_must_defs = NUM_V_MUST_DEFS (v_must_defs);
+
+ if (nvuses && (nv_may_defs || nv_must_defs))
+ {
+ if (memset_debug_details (NULL))
+ {
+ fprintf (dump_file, "unexpected vdefs and vuses in stmt: ");
+ print_generic_expr (dump_file, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ {
+ if (memset_debug_details (NULL))
+ {
+ fprintf (dump_file, "unexpected vops in stmt: ");
+ print_generic_expr (dump_file, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ if (vuses)
+ {
+ if (memset_debug_details (NULL))
+ {
+ fprintf (dump_file, "Memory access in the loop: ");
+ print_generic_expr (dump_file, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+ else /* vdefs */
+ {
+ memref = TREE_OPERAND (stmt, 0);
+ datarefs = &(LOOP_VINFO_DATAREF_WRITES (loop_vinfo));
+ }
+
+ if (TREE_CODE (memref) == INDIRECT_REF)
+ {
+ /* MERGE FIXME */
+ abort ();
+ /* dr = vect_analyze_pointer_ref_access (memref, stmt, false); */
+ if (! dr)
+ return false;
+ symbl = DR_BASE_NAME (dr);
+ }
+ else if (TREE_CODE (memref) == ARRAY_REF)
+ {
+ tree base;
+ array_base = TREE_OPERAND (memref, 0);
+
+ if (TREE_CODE (array_base) == ARRAY_REF)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ {
+ fprintf (dump_file,
+ "not vectorized: multi-dimensional array.");
+ print_generic_expr (dump_file, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ dr = analyze_array (stmt, memref, false);
+
+ /* Find the relevant symbol for aliasing purposes. */
+ base = DR_BASE_NAME (dr);
+ switch (TREE_CODE (base))
+ {
+ case VAR_DECL:
+ symbl = base;
+ break;
+ default:
+ if (memset_debug_stats (loop)
+ || memset_debug_details (loop))
+ {
+ fprintf (dump_file,
+ "not transformed: unhandled struct/class field access ");
+ print_generic_expr (dump_file, stmt, TDF_SLIM);
+ }
+ return false;
+ } /* switch */
+ }
+ else
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ {
+ fprintf (dump_file, "not transformed: unhandled data ref: ");
+ print_generic_expr (dump_file, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ /* Find and record the memtag assigned to this data-ref. */
+ if (TREE_CODE (symbl) == VAR_DECL
+ || (TREE_CODE (symbl) == COMPONENT_REF
+ && TREE_CODE (TREE_OPERAND (symbl, 0)) == VAR_DECL))
+ STMT_VINFO_MEMTAG (stmt_info) = symbl;
+ else if (TREE_CODE (symbl) == SSA_NAME)
+ {
+ tree tag;
+ symbl = SSA_NAME_VAR (symbl);
+ tag = get_var_ann (symbl)->type_mem_tag;
+ if (!tag)
+ {
+ tree ptr = TREE_OPERAND (memref, 0);
+ if (TREE_CODE (ptr) == SSA_NAME)
+ tag = get_var_ann (SSA_NAME_VAR (ptr))->type_mem_tag;
+ }
+ if (!tag)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file, "not vectorized: no memtag for ref.");
+ return false;
+ }
+ STMT_VINFO_MEMTAG (stmt_info) = tag;
+ }
+ else
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ {
+ fprintf (dump_file, "not vectorized: unsupported data-ref: ");
+ print_generic_expr (dump_file, memref, TDF_SLIM);
+ }
+ return false;
+ }
+
+ VARRAY_PUSH_GENERIC_PTR (*datarefs, dr);
+ STMT_VINFO_DATA_REF (stmt_info) = dr;
+ }
+ }
+
+ return true;
+}
+
+/* Function memset_analyze_loop_with_symbolic_num_of_iters.
+
+ In case the number of iterations that LOOP iterates in unknown at compile
+ time, an epilog loop will be generated, and the loop induction variables
+ (IVs) will be "advanced" to the value they are supposed to take just before
+ the epilog loop. Here we check that the access function of the loop IVs
+ and the expression that represents the loop bound are simple enough.
+ These restrictions will be relxed in the future. */
+
+static bool
+memset_analyze_loop_with_symbolic_num_of_iters (tree niters,
+ struct loop *loop)
+{
+ basic_block bb = loop->header;
+ tree phi;
+
+ if (memset_debug_details (NULL))
+ fprintf (dump_file,
+ "\n<<memset_analyze_loop_with_symbolic_num_of_iters>>\n");
+
+ if (chrec_contains_undetermined (niters))
+ {
+ if (memset_debug_details (NULL))
+ fprintf (dump_file, "Infinite number of iterations.");
+ return false;
+ }
+
+ if (!niters)
+ {
+ if (memset_debug_details (NULL))
+ fprintf (dump_file, "niters is NULL pointer.");
+ return false;
+ }
+
+ if (memset_debug_details (NULL))
+ {
+ fprintf (dump_file, "Symbolic number of iterations is ");
+ print_generic_expr (dump_file, niters, TDF_DETAILS);
+ }
+
+ /* Analyze phi functions of the loop header. */
+
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ {
+ tree access_fn = NULL;
+ tree evolution_part;
+
+ if (memset_debug_details (NULL))
+ {
+ fprintf (dump_file, "Analyze phi: ");
+ print_generic_expr (dump_file, phi, TDF_SLIM);
+ }
+
+ /* Skip virtual phi's. The data dependences that are associated with
+ virtual defs/uses (i.e., memory accesses) are analyzed elsewhere. */
+
+ if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
+ {
+ if (memset_debug_details (NULL))
+ fprintf (dump_file, "virtual phi. skip.");
+ continue;
+ }
+
+ /* Analyze the evolution function. */
+
+ access_fn = instantiate_parameters
+ (loop, analyze_scalar_evolution (loop, PHI_RESULT (phi)));
+
+ if (!access_fn)
+ {
+ if (memset_debug_details (NULL))
+ fprintf (dump_file, "No Access function.");
+ return false;
+ }
+
+ if (memset_debug_details (NULL))
+ {
+ fprintf (dump_file, "Access function of PHI: ");
+ print_generic_expr (dump_file, access_fn, TDF_SLIM);
+ }
+
+ evolution_part = evolution_part_in_loop_num (access_fn, loop->num);
+
+ if (evolution_part == NULL_TREE)
+ return false;
+
+ /* FORNOW: We do not transform initial conditions of IVs
+ which evolution functions are a polynomial of degree >= 2. */
+
+ if (tree_is_chrec (evolution_part))
+ return false;
+ }
+
+ return true;
+}
+
+
+/* Function debug_loop_details.
+
+ For memset debug dumps. */
+
+static bool
+memset_debug_details (struct loop *loop)
+{
+ basic_block bb;
+ block_stmt_iterator si;
+ tree node = NULL_TREE;
+
+ if (!dump_file || !(dump_flags & TDF_DETAILS))
+ return false;
+
+ if (!loop)
+ {
+ fprintf (dump_file, "\n");
+ return true;
+ }
+
+ if (!loop->header)
+ return false;
+
+ bb = loop->header;
+
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ node = bsi_stmt (si);
+ if (node && EXPR_P (node) && EXPR_LOCUS (node))
+ break;
+ }
+
+ if (node && EXPR_P (node) && EXPR_LOCUS (node)
+ && EXPR_FILENAME (node) && EXPR_LINENO (node))
+ {
+ fprintf (dump_file, "\nloop at %s:%d: ",
+ EXPR_FILENAME (node), EXPR_LINENO (node));
+ return true;
+ }
+
+ return false;
+}
+
+/* Function debug_loop_stats.
+
+ For vectorization statistics dumps. */
+
+static bool
+memset_debug_stats (struct loop *loop)
+{
+ basic_block bb;
+ block_stmt_iterator si;
+ tree node = NULL_TREE;
+
+ if (!dump_file || !(dump_flags & TDF_STATS))
+ return false;
+
+ if (!loop)
+ {
+ fprintf (dump_file, "\n");
+ return true;
+ }
+
+ if (!loop->header)
+ return false;
+
+ bb = loop->header;
+
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ node = bsi_stmt (si);
+ if (node && EXPR_P (node) && EXPR_LOCUS (node))
+ break;
+ }
+
+ if (node && EXPR_P (node) && EXPR_LOCUS (node)
+ && EXPR_FILENAME (node) && EXPR_LINENO (node))
+ {
+ fprintf (dump_file, "\nloop at %s:%d: ",
+ EXPR_FILENAME (node), EXPR_LINENO (node));
+ return true;
+ }
+
+ return false;
+}
+
+/* Function memset_analyze_loop_form.
+
+ Verify the following restrictions:
+ - it's an inner-most loop
+ - number of BBs = 2 (which are the loop header and the latch)
+ - the loop has a pre-header
+ - the loop has a single entry and exit
+ - the loop exit condition is simple enough, and the number of iterations
+ can be analyzed (a countable loop).
+
+ This differs from vect_analyze_loop_form by we handle non constant
+ interations. */
+
+static loop_vec_info
+memset_analyze_loop_form (struct loop *loop)
+{
+ loop_vec_info loop_vinfo;
+ tree loop_cond;
+ tree number_of_iterations = NULL_TREE;
+
+ if (memset_debug_details (loop))
+ fprintf (dump_file, "\n<<memset_analyze_loop_form>>\n");
+
+ if (loop->level > 1 /* FORNOW: inner-most loop */
+ || loop->num_exits > 1 || loop->num_entries > 1 || loop->num_nodes != 2
+ || !loop->pre_header || !loop->header || !loop->latch)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ {
+ fprintf (dump_file, "not vectorized: bad loop form.\n");
+ if (loop->level > 1)
+ fprintf (dump_file, "nested loop.\n");
+ else if (loop->num_exits > 1 || loop->num_entries > 1)
+ fprintf (dump_file, "multiple entries or exits.\n");
+ else if (loop->num_nodes != 2 || !loop->header || !loop->latch)
+ fprintf (dump_file, "too many BBs in loop.\n");
+ else if (!loop->pre_header)
+ fprintf (dump_file, "no pre-header BB for loop.\n");
+ }
+
+ return NULL;
+ }
+
+ /* We assume that the loop exit condition is at the end of the loop. i.e,
+ that the loop is represented as a do-while (with a proper if-guard
+ before the loop if needed), where the loop header contains all the
+ executable statements, and the latch is empty. */
+ if (!empty_block_p (loop->latch))
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file, "not vectorized: unexpectd loop form.");
+ return NULL;
+ }
+
+ if (empty_block_p (loop->header))
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file, "not transformed: empty loop.");
+ return NULL;
+ }
+
+ loop_cond = vect_get_loop_niters (loop, &number_of_iterations);
+ if (!loop_cond)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file, "not vectorized: complicated exit condition.\n");
+ return NULL;
+ }
+
+ if (!number_of_iterations)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file,
+ "not vectorized: number of iterations cannot be computed.");
+ return NULL;
+ }
+
+ loop_vinfo = new_loop_vec_info (loop);
+ LOOP_VINFO_NITERS (loop_vinfo) = number_of_iterations;
+
+ if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo))
+ {
+ if (memset_debug_details (NULL))
+ fprintf (dump_file, "loop bound unknown.");
+
+ /* Unknown loop bound. */
+ if (!memset_analyze_loop_with_symbolic_num_of_iters (number_of_iterations,
+ loop))
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file, "not transformed: can't determine loop bound.\n");
+ return NULL;
+ }
+ else
+ {
+ /* We need only one loop entry for unknown loop bound support. */
+ if (loop->num_entries != 1 || !loop->pre_header)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file,
+ "not transformed: more than one loop entry.");
+ return NULL;
+ }
+ }
+ }
+ else if (LOOP_VINFO_INT_NITERS (loop_vinfo) == 0)
+ {
+ if (memset_debug_stats (loop) || memset_debug_details (loop))
+ fprintf (dump_file, "not transformed: number of iterations = 0.\n");
+ return NULL;
+ }
+
+ LOOP_VINFO_EXIT_COND (loop_vinfo) = loop_cond;
+
+ return loop_vinfo;
+}
+
+/* Mark all the variables in V_MAY_DEF or V_MUST_DEF operands for STMT for
+ renaming. This becomes necessary when we modify all of a non-scalar. */
+
+static void
+mark_all_v_defs (tree stmt)
+{
+ tree sym;
+ ssa_op_iter iter;
+
+ get_stmt_operands (stmt);
+
+ FOR_EACH_SSA_TREE_OPERAND (sym, stmt, iter, SSA_OP_VIRTUAL_DEFS)
+ {
+ if (TREE_CODE (sym) == SSA_NAME)
+ sym = SSA_NAME_VAR (sym);
+ bitmap_set_bit (vars_to_rename, var_ann (sym)->uid);
+ }
+}
+
+
+/* This is the main entry point for the transformation. */
+void
+tree_ssa_memset (struct loops *loops)
+{
+ unsigned i;
+
+ for (i = 1; i < loops->num; i++)
+ {
+ struct loop *loop = loops->parray[i];
+ loop_vec_info vectorizer_info;
+ varray_type writes;
+ struct data_reference *drw;
+ tree access_chrec;
+ tree noi;
+
+ if (!loop)
+ continue;
+
+ flow_loop_scan (loop, LOOP_ALL);
+ vectorizer_info = memset_analyze_loop_form (loop);
+ if (!vectorizer_info)
+ continue;
+
+ if (!memset_analyze_data_refs (vectorizer_info))
+ {
+ if (memset_debug_details (loop))
+ fprintf (dump_file, "bad data references.");
+ destroy_loop_vec_info (vectorizer_info);
+ continue;
+ }
+
+ writes = LOOP_VINFO_DATAREF_WRITES (vectorizer_info);
+
+ /* TODO: handle more than data write. */
+ if (VARRAY_ACTIVE_SIZE (writes) != 1)
+ {
+ if (memset_debug_details (loop))
+ fprintf (dump_file, "no or more than one store.");
+ destroy_loop_vec_info (vectorizer_info);
+ continue;
+ }
+
+ drw = VARRAY_GENERIC_PTR (writes, 0);
+
+ /* TODO: handle multi-dimension arrays. */
+ if (DR_NUM_DIMENSIONS (drw) != 1)
+ {
+ if (memset_debug_details (loop))
+ fprintf (dump_file, "cannot handle multiple dimension array.");
+ destroy_loop_vec_info (vectorizer_info);
+ continue;
+ }
+
+ if (TREE_CODE (TREE_OPERAND (DR_STMT (drw), 1)) != INTEGER_CST)
+ {
+ if (memset_debug_details (loop))
+ fprintf (dump_file, "non constant store value.");
+ destroy_loop_vec_info (vectorizer_info);
+ continue;
+ }
+
+ /* TODO: handle other than zero values in types
+ where the unit size is greater than one. */
+ if (!integer_zerop (TREE_OPERAND (DR_STMT (drw), 1))
+ && !integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (DR_REF (drw)))))
+ {
+ if (memset_debug_details (loop))
+ fprintf (dump_file, "cannot handle other zero value for types of other than char (for now).");
+ destroy_loop_vec_info (vectorizer_info);
+ continue;
+ }
+
+ access_chrec = DR_ACCESS_FN (drw, 0);
+
+ noi = LOOP_VINFO_NITERS (vectorizer_info);
+
+ /* Build the memset call. */
+ {
+ tree array = DR_BASE_NAME (drw);
+ tree value = TREE_OPERAND (DR_STMT (drw), 1);
+ tree function = implicit_built_in_decls[BUILT_IN_MEMSET];
+ tree args = NULL_TREE;
+ block_stmt_iterator bsi = bsi_last (loop->pre_header);
+ tree array_1 = make_rename_temp (ptr_type_node, NULL);
+ tree temp, stmt, var;
+ tree ni_name;
+
+ stmt = DR_STMT (drw);
+
+ /* Remove the array access stmt. */
+ {
+ block_stmt_iterator access_bsi;
+ /* Mark the MAY_DEF as needed to be renamed. */
+ mark_all_v_defs (stmt);
+ access_bsi = bsi_for_stmt (stmt);
+ bsi_remove (&access_bsi);
+ }
+
+ if (TREE_CODE (TREE_TYPE (array)) == ARRAY_TYPE)
+ {
+ tree type = TREE_TYPE (TREE_TYPE (array));
+ tree base = array;
+
+ while (TREE_CODE (base) == REALPART_EXPR
+ || TREE_CODE (base) == IMAGPART_EXPR
+ || handled_component_p (base))
+ base = TREE_OPERAND (base, 0);
+
+ if (DECL_P (base))
+ TREE_ADDRESSABLE (base) = 1;
+
+ array = build4 (ARRAY_REF, type, array, size_zero_node,
+ NULL_TREE, NULL_TREE);
+ array = build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (array)),
+ array);
+ }
+
+ {
+ tree start = CHREC_LEFT (access_chrec);
+ tree size_mult;
+ tree array_var;
+ start = fold_convert (TREE_TYPE (array), start);
+ size_mult = fold_convert (TREE_TYPE (array),
+ TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (array))));
+ array = fold (build2 (PLUS_EXPR,
+ TREE_TYPE (array),
+ array,
+ fold (build2 (MULT_EXPR,
+ TREE_TYPE (array),
+ start,
+ size_mult))));
+ array_var = create_tmp_var (TREE_TYPE (array), "tmp");
+ add_referenced_tmp_var (array_var);
+ array = force_gimple_operand (array, &stmt, false, array_var);
+
+ if (stmt)
+ bsi_insert_after (&bsi, stmt, BSI_CONTINUE_LINKING);
+ }
+
+ var = create_tmp_var (size_type_node, "tmp");
+ add_referenced_tmp_var (var);
+
+ noi = fold (build2 (MULT_EXPR, TREE_TYPE (noi), noi,
+ fold_convert (TREE_TYPE (noi),
+ TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (array))))));
+
+ stmt = NULL_TREE;
+ ni_name = force_gimple_operand (noi, &stmt, false, var);
+
+ if (stmt)
+ bsi_insert_after (&bsi, stmt, BSI_CONTINUE_LINKING);
+
+ temp = build2 (MODIFY_EXPR, void_type_node, array_1,
+ array);
+
+ bsi_insert_after (&bsi, temp, BSI_CONTINUE_LINKING);
+
+ args = tree_cons (NULL, ni_name, args);
+ args = tree_cons (NULL, fold_convert (integer_type_node, value), args);
+ args = tree_cons (NULL, array_1, args);
+
+ temp = build_function_call_expr (function, args);
+
+ bsi_insert_after (&bsi, temp, BSI_CONTINUE_LINKING);
+ }
+
+ destroy_loop_vec_info (vectorizer_info);
+
+ }
+
+ rewrite_into_ssa (false);
+ if (!bitmap_empty_p (vars_to_rename))
+ {
+ /* The rewrite of ssa names may cause violation of loop closed ssa
+ form invariants. TODO -- avoid these rewrites completely.
+ Information in virtual phi nodes is sufficient for it. */
+ rewrite_into_loop_closed_ssa ();
+ }
+ bitmap_clear (vars_to_rename);
+}
+
+/* APPLE LOCAL end loops-to-memset (ENTIRE FILE!) */
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 21bfce89a2a..25a9082d448 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -1395,3 +1395,86 @@ free_numbers_of_iterations_estimates (struct loops *loops)
free_numbers_of_iterations_estimates_loop (loop);
}
}
+
+
+/* APPLE LOCAL begin lno */
+/*
+
+ Removal of loops in DCE.
+
+*/
+
+/* If we are able to prove that the LOOP always exits, turn off the
+ EDGE_DFS_BACK flag from its latch edge. */
+
+static void
+unmark_surely_finite_loop (struct loop *loop)
+{
+ edge *exits;
+ unsigned i, n_exits;
+ struct tree_niter_desc niter_desc;
+
+ exits = get_loop_exit_edges (loop, &n_exits);
+ for (i = 0; i < n_exits; i++)
+ if (number_of_iterations_exit (loop, exits[i], &niter_desc))
+ {
+ loop_latch_edge (loop)->flags &= ~EDGE_DFS_BACK;
+ return;
+ }
+}
+
+/* Emit special statements preventing removal of possibly infinite loops in
+ CD_DCE to the latches of LOOPS for that we are not able to prove that they
+ iterate just finite number of times. */
+
+void
+mark_maybe_infinite_loops (struct loops *loops)
+{
+ unsigned i;
+ struct loop *loop;
+ basic_block bb;
+ edge e;
+ tree stmt;
+ bool inserted = false;
+ block_stmt_iterator bsi;
+
+ mark_dfs_back_edges ();
+
+ for (i = 1; i < loops->num; i++)
+ {
+ loop = loops->parray[i];
+ if (loop)
+ unmark_surely_finite_loop (loop);
+ }
+
+ FOR_EACH_BB (bb)
+ {
+ edge_iterator ei;
+ FOR_EACH_EDGE (e, ei, bb->succs)
+ if (e->flags & EDGE_DFS_BACK)
+ {
+ stmt = build_function_call_expr (built_in_decls[BUILT_IN_MAYBE_INFINITE_LOOP],
+ NULL);
+
+ if (!(e->flags & EDGE_ABNORMAL))
+ {
+ bsi_insert_on_edge (e, stmt);
+ inserted = true;
+ continue;
+ }
+
+ /* We cannot insert on abnormal edge, so insert to the basic block
+ at its start. */
+ bsi = bsi_last (e->src);
+ if (!bsi_end_p (bsi)
+ && stmt_ends_bb_p (bsi_stmt (bsi)))
+ bsi_insert_before (&bsi, stmt, BSI_NEW_STMT);
+ else
+ bsi_insert_after (&bsi, stmt, BSI_NEW_STMT);
+ }
+ }
+
+ if (inserted)
+ loop_commit_inserts ();
+}
+/* APPLE LOCAL end lno */
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
new file mode 100644
index 00000000000..189186a7419
--- /dev/null
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -0,0 +1,891 @@
+/* APPLE LOCAL file lno */
+/* Array prefetching.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "tree.h"
+#include "rtl.h"
+#include "tm_p.h"
+#include "hard-reg-set.h"
+#include "basic-block.h"
+#include "output.h"
+#include "diagnostic.h"
+#include "tree-flow.h"
+#include "tree-dump.h"
+#include "timevar.h"
+#include "cfgloop.h"
+#include "varray.h"
+#include "expr.h"
+#include "tree-pass.h"
+#include "ggc.h"
+#include "insn-config.h"
+#include "recog.h"
+#include "hashtab.h"
+#include "tree-chrec.h"
+#include "tree-scalar-evolution.h"
+
+/* This pass inserts prefetch instructions to optimize cache usage during
+ accesses to arrays in loops. It processes loops sequentially and:
+
+ 1) Gathers all memory references in the single loop.
+ 2) For each of the references it decides when it is profitable to prefetch
+ it. To do it, we evaluate the reuse among the accesses, and determines
+ two values: PREFETCH_BEFORE (meaning that it only makes sense to do
+ prefetching in the first PREFETCH_BEFORE iterations of the loop) and
+ PREFETCH_MOD (meaning that it only makes sense to prefetch in the
+ iterations of the loop that are zero modulo PREFETCH_MOD). For example
+ (assuming cache line size is 64 bytes, char has size 1 byte and there
+ is no hardware sequential prefetch):
+
+ char *a;
+ for (i = 0; i < max; i++)
+ {
+ a[255] = ...; (0)
+ a[i] = ...; (1)
+ a[i + 64] = ...; (2)
+ a[16*i] = ...; (3)
+ a[187*i] = ...; (4)
+ a[187*i + 50] = ...; (5)
+ }
+
+ (0) obviously has PREFETCH_BEFORE 1
+ (1) has PREFETCH_BEFORE 64, since (2) accesses the same memory
+ location 64 iterations before it, and PREFETCH_MOD 64 (since
+ it hits the same cache line otherwise).
+ (2) has PREFETCH_MOD 64
+ (3) has PREFETCH_MOD 4
+ (4) has PREFETCH_MOD 1. We do not set PREFETCH_BEFORE here, since
+ the cache line accessed by (4) is the same with probability only
+ 7/32.
+ (5) has PREFETCH_MOD 1 as well.
+
+ 3) We determine how much ahead we need to prefetch. The number of
+ iterations needed is time to fetch / time spent in one iteration of
+ the loop. The problem is that we do not know either of these values,
+ so we just make a heuristic guess based on a magic (possibly)
+ target-specific constant and size of the loop.
+
+ 4) Determine which of the references we prefetch. We take into account
+ that there is a maximum number of simultaneous prefetches (provided
+ by machine description). We prefetch as many prefetches as possible
+ while still within this bound (starting with those with lowest
+ prefetch_mod, since they are responsible for most of the cache
+ misses).
+
+ 5) We unroll and peel loops so that we are able to satisfy PREFETCH_MOD
+ and PREFETCH_BEFORE requirements (within some bounds), and to avoid
+ prefetching nonaccessed memory.
+ TODO -- actually implement this.
+
+ 6) We actually emit the prefetch instructions. ??? Perhaps emit the
+ prefetch instructions with guards in cases where 5) was not sufficient
+ to satisfy the constraints?
+
+ Some other TODO:
+ -- write and use more general reuse analysis (that could be also used
+ in other cache aimed loop optimizations)
+ -- make it behave sanely together with the prefetches given by user
+ (now we just ignore them; at the very least we should avoid
+ optimizing loops in that user put his own prefetches)
+ -- we assume cache line size allignment of arrays; this could be
+ improved. */
+
+/* Magic constants follow. These should be replaced by machine specific
+ numbers. */
+
+/* A number that should rouhgly correspond to the number of instructions
+ executed before the prefetch is completed. */
+
+#ifndef PREFETCH_LATENCY
+#define PREFETCH_LATENCY 50
+#endif
+
+/* Number of prefetches that can run at the same time. */
+
+#ifndef SIMULTANEOUS_PREFETCHES
+#define SIMULTANEOUS_PREFETCHES 3
+#endif
+
+/* True if write can be prefetched by a read prefetch. */
+
+#ifndef WRITE_CAN_USE_READ_PREFETCH
+#define WRITE_CAN_USE_READ_PREFETCH 1
+#endif
+
+/* True if read can be prefetched by a write prefetch. */
+
+#ifndef READ_CAN_USE_WRITE_PREFETCH
+#define READ_CAN_USE_WRITE_PREFETCH 0
+#endif
+
+/* Cache line size. Assumed to be a power of two. */
+
+#ifndef PREFETCH_BLOCK
+#define PREFETCH_BLOCK 32
+#endif
+
+/* Do we have a forward hardware sequential prefetching? */
+
+#ifndef HAVE_FORWARD_PREFETCH
+#define HAVE_FORWARD_PREFETCH 0
+#endif
+
+/* Do we have a backward hardware sequential prefetching? */
+
+#ifndef HAVE_BACKWARD_PREFETCH
+#define HAVE_BACKWARD_PREFETCH 0
+#endif
+
+/* In some cases we are only able to determine that there is a certain
+ probability that the two accesses hit the same cache line. In this
+ case, we issue the prefetches for both of them if this probability
+ is less then (1000 - ACCEPTABLE_MISS_RATE) promile. */
+
+#ifndef ACCEPTABLE_MISS_RATE
+#define ACCEPTABLE_MISS_RATE 50
+#endif
+
+#ifndef HAVE_prefetch
+#define HAVE_prefetch 0
+#endif
+
+/* The group of references between that reuse may occur. */
+
+struct mem_ref_group
+{
+ tree base; /* Base of the reference. */
+ HOST_WIDE_INT step; /* Step of the reference. */
+ tree group_iv; /* Induction variable for the group. */
+ bool issue_prefetch_p; /* Is there any prefetch issued in the
+ group? */
+ struct mem_ref *refs; /* References in the group. */
+ struct mem_ref_group *next; /* Next group of references. */
+};
+
+/* Assigned to PREFETCH_BEFORE when all iterations are to be prefetched. */
+
+#define PREFETCH_ALL (~(unsigned HOST_WIDE_INT) 0)
+
+/* The memory reference. */
+
+struct mem_ref
+{
+ HOST_WIDE_INT delta; /* Constant offset of the reference. */
+ bool write_p; /* Is it a write? */
+ struct mem_ref_group *group; /* The group of references it belongs to. */
+ unsigned HOST_WIDE_INT prefetch_mod;
+ /* Prefetch only each PREFETCH_MOD-th
+ iteration. */
+ unsigned HOST_WIDE_INT prefetch_before;
+ /* Prefetch only first PREFETCH_BEFORE
+ iterations. */
+ bool issue_prefetch_p; /* Should we really issue the prefetch? */
+ struct mem_ref *next; /* The next reference in the group. */
+};
+
+/* Dumps information obout reference REF to FILE. */
+
+static void
+dump_mem_ref (FILE *file, struct mem_ref *ref)
+{
+ fprintf (file, "Reference %p:\n", (void *) ref);
+
+ fprintf (file, " group %p (base ", (void *) ref->group);
+ print_generic_expr (file, ref->group->base, TDF_SLIM);
+ fprintf (file, ", step ");
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, ref->group->step);
+ fprintf (file, ")\n");
+
+ fprintf (dump_file, " delta ");
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, ref->delta);
+ fprintf (file, "\n");
+
+ fprintf (file, " %s\n", ref->write_p ? "write" : "read");
+
+ fprintf (file, "\n");
+}
+
+/* Finds a group with BASE and STEP in GROUPS, or creates one if it does not
+ exist. */
+
+static struct mem_ref_group *
+find_or_create_group (struct mem_ref_group **groups, tree base,
+ HOST_WIDE_INT step)
+{
+ for (; *groups; groups = &(*groups)->next)
+ {
+ if ((*groups)->step == step
+ && operand_equal_p ((*groups)->base, base, 0))
+ return *groups;
+ }
+
+ (*groups) = xcalloc (1, sizeof (struct mem_ref_group));
+ (*groups)->base = base;
+ (*groups)->step = step;
+ (*groups)->group_iv = NULL_TREE;
+ (*groups)->refs = NULL;
+ (*groups)->next = NULL;
+
+ return *groups;
+}
+
+/* Records a memory reference in GROUP with offset DELTA and write status
+ WRITE_P. */
+
+static void
+record_ref (struct mem_ref_group *group, HOST_WIDE_INT delta,
+ bool write_p)
+{
+ struct mem_ref **aref;
+
+ for (aref = &group->refs; *aref; aref = &(*aref)->next)
+ {
+ /* It does not have to be possible for write reference to reuse the read
+ prefetch, or vice versa. */
+ if (!WRITE_CAN_USE_READ_PREFETCH
+ && write_p
+ && !(*aref)->write_p)
+ continue;
+ if (!READ_CAN_USE_WRITE_PREFETCH
+ && !write_p
+ && (*aref)->write_p)
+ continue;
+
+ if ((*aref)->delta == delta)
+ return;
+ }
+
+ (*aref) = xcalloc (1, sizeof (struct mem_ref));
+ (*aref)->delta = delta;
+ (*aref)->write_p = write_p;
+ (*aref)->prefetch_before = PREFETCH_ALL;
+ (*aref)->prefetch_mod = 1;
+ (*aref)->issue_prefetch_p = false;
+ (*aref)->group = group;
+ (*aref)->next = NULL;
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ dump_mem_ref (dump_file, *aref);
+}
+
+/* Release memory references in GROUPS. */
+
+static void
+release_mem_refs (struct mem_ref_group *groups)
+{
+ struct mem_ref_group *next_g;
+ struct mem_ref *ref, *next_r;
+
+ for (; groups; groups = next_g)
+ {
+ next_g = groups->next;
+ for (ref = groups->refs; ref; ref = next_r)
+ {
+ next_r = ref->next;
+ free (ref);
+ }
+ free (groups);
+ }
+}
+
+/* A structure used to pass arguments to idx_analyze_ref. */
+
+struct ar_data
+{
+ struct loop *loop; /* Loop of the reference. */
+ tree stmt; /* Statement of the reference. */
+ HOST_WIDE_INT *step; /* Step of the memory reference. */
+ HOST_WIDE_INT *delta; /* Offset of the memory reference. */
+};
+
+/* Analyzes a single INDEX of a memory reference to obtain information
+ described at analyze_ref. Callback for for_each_index. */
+
+static bool
+idx_analyze_ref (tree base, tree *index, void *data)
+{
+ struct ar_data *ar_data = data;
+ tree ibase, step, stepsize;
+ HOST_WIDE_INT istep, idelta = 0, imult = 1;
+
+ if (!simple_iv (ar_data->loop, ar_data->stmt, *index, &ibase, &step))
+ return false;
+
+ if (zero_p (step))
+ istep = 0;
+ else
+ {
+ if (!cst_and_fits_in_hwi (step))
+ return false;
+ istep = int_cst_value (step);
+ }
+
+ if (TREE_CODE (ibase) == PLUS_EXPR
+ && cst_and_fits_in_hwi (TREE_OPERAND (ibase, 1)))
+ {
+ idelta = int_cst_value (TREE_OPERAND (ibase, 1));
+ ibase = TREE_OPERAND (ibase, 0);
+ }
+ if (cst_and_fits_in_hwi (ibase))
+ {
+ idelta += int_cst_value (ibase);
+ ibase = fold_convert (TREE_TYPE (ibase), integer_zero_node);
+ }
+
+ if (base)
+ {
+ stepsize = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (base)));
+ if (!cst_and_fits_in_hwi (stepsize))
+ return false;
+ imult = int_cst_value (stepsize);
+
+ istep *= imult;
+ idelta *= imult;
+ }
+
+ *ar_data->step += istep;
+ *ar_data->delta += idelta;
+ *index = ibase;
+
+ return true;
+}
+
+/* Tries to express REF in shape &BASE + STEP * iter + DELTA, where DELTA and
+ STEP are integer constants and iter is number of iterations of LOOP. The
+ reference occurs in statement STMT. */
+
+static bool
+analyze_ref (struct loop *loop, tree ref, tree *base,
+ HOST_WIDE_INT *step, HOST_WIDE_INT *delta,
+ tree stmt)
+{
+ struct ar_data ar_data;
+ tree off;
+ HOST_WIDE_INT bit_offset;
+
+ *step = 0;
+ *delta = 0;
+
+ /* First strip off the component references. Ignore bitfields. */
+ if (TREE_CODE (ref) == COMPONENT_REF
+ && DECL_NONADDRESSABLE_P (TREE_OPERAND (ref, 1)))
+ ref = TREE_OPERAND (ref, 0);
+
+ for (; TREE_CODE (ref) == COMPONENT_REF; ref = TREE_OPERAND (ref, 0))
+ {
+ off = DECL_FIELD_BIT_OFFSET (TREE_OPERAND (ref, 1));
+ bit_offset = TREE_INT_CST_LOW (off);
+
+ if (bit_offset % BITS_PER_UNIT)
+ abort ();
+
+ *delta += bit_offset / BITS_PER_UNIT;
+ }
+
+ *base = unshare_expr (ref);
+ ar_data.loop = loop;
+ ar_data.stmt = stmt;
+ ar_data.step = step;
+ ar_data.delta = delta;
+ return for_each_index (base, idx_analyze_ref, &ar_data);
+}
+
+/* Record a memory reference REF to the list REFS. The reference occurs in
+ LOOP in statement STMT and it is write if WRITE_P. */
+
+static void
+gather_memory_references_ref (struct loop *loop, struct mem_ref_group **refs,
+ tree ref, bool write_p, tree stmt)
+{
+ tree base;
+ HOST_WIDE_INT step, delta;
+ struct mem_ref_group *agrp;
+
+ if (!analyze_ref (loop, ref, &base, &step, &delta, stmt))
+ return;
+
+ /* Now we know that REF = &BASE + STEP * iter + DELTA, where DELTA and STEP
+ are integer constants. */
+ agrp = find_or_create_group (refs, base, step);
+ record_ref (agrp, delta, write_p);
+}
+
+/* Record the suitable memory references in LOOP. */
+
+static struct mem_ref_group *
+gather_memory_references (struct loop *loop)
+{
+ basic_block *body = get_loop_body_in_dom_order (loop);
+ basic_block bb;
+ unsigned i;
+ block_stmt_iterator bsi;
+ tree stmt, lhs, rhs;
+ struct mem_ref_group *refs = NULL;
+
+ /* Scan the loop body in order, so that the former references precede the
+ later ones. */
+ for (i = 0; i < loop->num_nodes; i++)
+ {
+ bb = body[i];
+ if (bb->loop_father != loop)
+ continue;
+
+ for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
+ {
+ stmt = bsi_stmt (bsi);
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ continue;
+
+ lhs = TREE_OPERAND (stmt, 0);
+ rhs = TREE_OPERAND (stmt, 1);
+
+ if (TREE_CODE_CLASS (TREE_CODE (rhs)) == 'r')
+ gather_memory_references_ref (loop, &refs, rhs, false, stmt);
+ if (TREE_CODE_CLASS (TREE_CODE (lhs)) == 'r')
+ gather_memory_references_ref (loop, &refs, lhs, true, stmt);
+ }
+ }
+ free (body);
+
+ return refs;
+}
+
+/* Prune the prefetch candidate REF using the self-reuse. */
+
+static void
+prune_ref_by_self_reuse (struct mem_ref *ref)
+{
+ HOST_WIDE_INT step = ref->group->step;
+ bool backward = step < 0;
+
+ if (step == 0)
+ {
+ /* Prefetch references to invariant address just once. */
+ ref->prefetch_before = 1;
+ return;
+ }
+
+ if (backward)
+ step = -step;
+
+ if (step > PREFETCH_BLOCK)
+ return;
+
+ if ((backward && HAVE_BACKWARD_PREFETCH)
+ || (!backward && HAVE_FORWARD_PREFETCH))
+ {
+ ref->prefetch_before = 1;
+ return;
+ }
+
+ ref->prefetch_mod = PREFETCH_BLOCK / step;
+}
+
+/* Divides X by BY, rounding down. */
+
+static HOST_WIDE_INT
+ddown (HOST_WIDE_INT x, unsigned HOST_WIDE_INT by)
+{
+ if (by <= 0)
+ abort ();
+
+ if (x >= 0)
+ return x / by;
+ else
+ return (x + by - 1) / by;
+}
+
+/* Prune the prefetch candidate REF using the reuse with BY.
+ If BY_IS_BEFORE is true, BY is before REF in the loop. */
+
+static void
+prune_ref_by_group_reuse (struct mem_ref *ref, struct mem_ref *by,
+ bool by_is_before)
+{
+ HOST_WIDE_INT step = ref->group->step;
+ bool backward = step < 0;
+ HOST_WIDE_INT delta_r = ref->delta, delta_b = by->delta;
+ HOST_WIDE_INT delta = delta_b - delta_r;
+ HOST_WIDE_INT hit_from;
+ unsigned HOST_WIDE_INT prefetch_before, prefetch_block;
+
+ if (delta == 0)
+ {
+ /* If the references has the same address, only prefetch the
+ former. */
+ if (by_is_before)
+ ref->prefetch_before = 0;
+
+ return;
+ }
+
+ if (!step)
+ {
+ /* If the reference addresses are invariant and fall into the
+ same cache line, prefetch just the first one. */
+ if (!by_is_before)
+ return;
+
+ if (ddown (ref->delta, PREFETCH_BLOCK)
+ != ddown (by->delta, PREFETCH_BLOCK))
+ return;
+
+ ref->prefetch_before = 0;
+ return;
+ }
+
+ /* Only prune the reference that is behind in the array. */
+ if (backward)
+ {
+ if (delta > 0)
+ return;
+
+ /* Transform the data so that we may assume that the accesses
+ are forward. */
+ delta = - delta;
+ step = -step;
+ delta_r = PREFETCH_BLOCK - 1 - delta_r;
+ delta_b = PREFETCH_BLOCK - 1 - delta_b;
+ }
+ else
+ {
+ if (delta < 0)
+ return;
+ }
+
+ /* Check whether the two references are likely to hit the same cache
+ line, and how distant the iterations in that it occurs are from
+ each other. */
+
+ if (step <= PREFETCH_BLOCK)
+ {
+ /* The accesses are sure to meet. Let us check when. */
+ hit_from = ddown (delta_b, PREFETCH_BLOCK) * PREFETCH_BLOCK;
+ prefetch_before = (hit_from - delta_r + step - 1) / step;
+
+ if (prefetch_before < ref->prefetch_before)
+ ref->prefetch_before = prefetch_before;
+
+ return;
+ }
+
+ /* A more complicated case. First let us ensure that size of cache line
+ and step are coprime (here we assume that PREFETCH_BLOCK is a power
+ of two. */
+ prefetch_block = PREFETCH_BLOCK;
+ while ((step & 1) == 0
+ && prefetch_block > 1)
+ {
+ step >>= 1;
+ prefetch_block >>= 1;
+ delta >>= 1;
+ }
+
+ /* Now step > prefetch_block, and step and prefetch_block are coprime.
+ Determine the probability that the accesses hit the same cache line. */
+
+ prefetch_before = delta / step;
+ delta %= step;
+ if ((unsigned HOST_WIDE_INT) delta
+ <= (prefetch_block * ACCEPTABLE_MISS_RATE / 1000))
+ {
+ if (prefetch_before < ref->prefetch_before)
+ ref->prefetch_before = prefetch_before;
+
+ return;
+ }
+
+ /* Try also the following iteration. */
+ prefetch_before++;
+ delta = step - delta;
+ if ((unsigned HOST_WIDE_INT) delta
+ <= (prefetch_block * ACCEPTABLE_MISS_RATE / 1000))
+ {
+ if (prefetch_before < ref->prefetch_before)
+ ref->prefetch_before = prefetch_before;
+
+ return;
+ }
+
+ /* The ref probably does not reuse by. */
+ return;
+}
+
+/* Prune the prefetch candidate REF using the reuses with other references
+ in REFS. */
+
+static void
+prune_ref_by_reuse (struct mem_ref *ref, struct mem_ref *refs)
+{
+ struct mem_ref *prune_by;
+ bool before = true;
+
+ prune_ref_by_self_reuse (ref);
+
+ for (prune_by = refs; prune_by; prune_by = prune_by->next)
+ {
+ if (prune_by == ref)
+ {
+ before = false;
+ continue;
+ }
+
+ if (!WRITE_CAN_USE_READ_PREFETCH
+ && ref->write_p
+ && !prune_by->write_p)
+ continue;
+ if (!READ_CAN_USE_WRITE_PREFETCH
+ && !ref->write_p
+ && prune_by->write_p)
+ continue;
+
+ prune_ref_by_group_reuse (ref, prune_by, before);
+ }
+}
+
+/* Prune the prefetch candidates in GROUP using the reuse analysis. */
+
+static void
+prune_group_by_reuse (struct mem_ref_group *group)
+{
+ struct mem_ref *ref_pruned;
+
+ for (ref_pruned = group->refs; ref_pruned; ref_pruned = ref_pruned->next)
+ {
+ prune_ref_by_reuse (ref_pruned, group->refs);
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file, "Reference %p:", (void *) ref_pruned);
+
+ if (ref_pruned->prefetch_before == PREFETCH_ALL
+ && ref_pruned->prefetch_mod == 1)
+ fprintf (dump_file, " no restrictions");
+ else if (ref_pruned->prefetch_before == 0)
+ fprintf (dump_file, " do not prefetch");
+ else if (ref_pruned->prefetch_before <= ref_pruned->prefetch_mod)
+ fprintf (dump_file, " prefetch once");
+ else
+ {
+ if (ref_pruned->prefetch_before != PREFETCH_ALL)
+ {
+ fprintf (dump_file, " prefetch before ");
+ fprintf (dump_file, HOST_WIDE_INT_PRINT_DEC,
+ ref_pruned->prefetch_before);
+ }
+ if (ref_pruned->prefetch_mod != 1)
+ {
+ fprintf (dump_file, " prefetch mod ");
+ fprintf (dump_file, HOST_WIDE_INT_PRINT_DEC,
+ ref_pruned->prefetch_mod);
+ }
+ }
+ fprintf (dump_file, "\n");
+ }
+ }
+}
+
+/* Prune the list of prefetch candidates GROUPS using the reuse analysis. */
+
+static void
+prune_by_reuse (struct mem_ref_group *groups)
+{
+ for (; groups; groups = groups->next)
+ prune_group_by_reuse (groups);
+}
+
+/* Decide which of the prefetch candidates in GROUPS to prefetch.
+ AHEAD is the number of iterations to prefetch ahead (which corresponds
+ to the number of simultaneous instances of one prefetch running at a
+ time). */
+
+static void
+schedule_prefetches (struct mem_ref_group *groups, unsigned ahead)
+{
+ unsigned max_prefetches = SIMULTANEOUS_PREFETCHES / ahead;
+ struct mem_ref *ref;
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Max prefetches to issue: %d.\n", max_prefetches);
+
+ /* For now we just take memory references one by one and issue
+ prefetches for as many as possible. TODO -- select the most
+ profitable prefetches. */
+
+ if (!max_prefetches)
+ return;
+
+ for (; groups; groups = groups->next)
+ for (ref = groups->refs; ref; ref = ref->next)
+ {
+ /* For now do not issue prefetches for only first few of the
+ iterations. */
+ if (ref->prefetch_before != PREFETCH_ALL)
+ continue;
+
+ ref->issue_prefetch_p = true;
+ groups->issue_prefetch_p = true;
+ max_prefetches--;
+
+ if (!max_prefetches)
+ return;
+ }
+}
+
+/* Issue prefetches for the referenc REF into LOOP as decided before.
+ HEAD is the number of iterations to prefetch ahead. */
+
+static void
+issue_prefetch_ref (struct loop *loop, struct mem_ref *ref, unsigned ahead)
+{
+ HOST_WIDE_INT delta;
+ tree addr, stmts, prefetch, params, write_p;
+ block_stmt_iterator bsi;
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Issued prefetch for %p.\n", (void *) ref);
+
+ /* Determine the address to prefetch. */
+ delta = ahead * ref->group->step + ref->delta;
+ addr = ref->group->group_iv;
+ if (delta)
+ addr = build (PLUS_EXPR, ptr_type_node,
+ addr, build_int_cst (ptr_type_node, delta));
+
+ addr = force_gimple_operand (addr, &stmts, false,
+ SSA_NAME_VAR (ref->group->group_iv));
+
+ /* Create the prefetch instruction. */
+ write_p = ref->write_p ? integer_one_node : integer_zero_node;
+ params = tree_cons (NULL_TREE, addr,
+ tree_cons (NULL_TREE, write_p, NULL_TREE));
+
+ prefetch = build_function_call_expr (built_in_decls[BUILT_IN_PREFETCH],
+ params);
+
+ /* And emit all the stuff. We put the prefetch to the loop header, so
+ that it runs early. */
+ bsi = bsi_after_labels (loop->header);
+ if (stmts)
+ bsi_insert_after (&bsi, stmts, BSI_CONTINUE_LINKING);
+ bsi_insert_after (&bsi, prefetch, BSI_NEW_STMT);
+}
+
+/* Issue prefetches for the references in GROUPS into LOOP as decided before.
+ HEAD is the number of iterations to prefetch ahead. */
+
+static void
+issue_prefetches (struct loop *loop, struct mem_ref_group *groups,
+ unsigned ahead)
+{
+ struct mem_ref *ref;
+ tree iv_var, base, step;
+ block_stmt_iterator bsi;
+ bool after;
+
+ for (; groups; groups = groups->next)
+ {
+ if (!groups->issue_prefetch_p)
+ continue;
+
+ /* Create the induction variable for the group. */
+ iv_var = create_tmp_var (ptr_type_node, "prefetchtmp");
+ add_referenced_tmp_var (iv_var);
+ if (TREE_CODE (groups->base) == INDIRECT_REF)
+ base = fold_convert (ptr_type_node, TREE_OPERAND (groups->base, 0));
+ else
+ base = build (ADDR_EXPR, ptr_type_node, groups->base);
+ step = build_int_cst (ptr_type_node, groups->step);
+
+ standard_iv_increment_position (loop, &bsi, &after);
+ create_iv (base, step, iv_var, loop, &bsi, after, &groups->group_iv,
+ NULL);
+
+ for (ref = groups->refs; ref; ref = ref->next)
+ if (ref->issue_prefetch_p)
+ issue_prefetch_ref (loop, ref, ahead);
+ }
+}
+
+/* Issue prefetch instructions for array references in LOOP. */
+
+static void
+loop_prefetch_arrays (struct loop *loop)
+{
+ struct mem_ref_group *refs;
+ unsigned ahead, ninsns;
+
+ /* Step 1: gather the memory references. */
+ refs = gather_memory_references (loop);
+
+ /* Step 2: estimate the reuse effects. */
+ prune_by_reuse (refs);
+
+ /* Step 3: determine the ahead. */
+
+ /* FIXME: We should use not size of the loop, but the average number of
+ instructions executed per iteration of the loop. */
+ ninsns = tree_num_loop_insns (loop);
+ ahead = (PREFETCH_LATENCY + ninsns - 1) / ninsns;
+
+ /* Step 4: what to prefetch? */
+ schedule_prefetches (refs, ahead);
+
+ /* Step 5: unroll and peel the loops. TODO. */
+
+ /* Step 6: issue the prefetches. */
+ issue_prefetches (loop, refs, ahead);
+
+ release_mem_refs (refs);
+}
+
+/* Issue prefetch instructions for array references in LOOPS. */
+
+void
+tree_ssa_prefetch_arrays (struct loops *loops)
+{
+ unsigned i;
+ struct loop *loop;
+
+ if (!HAVE_prefetch)
+ return;
+
+ /* We assume that size of cache line is a power of two, so verify this
+ here. */
+ if (PREFETCH_BLOCK & (PREFETCH_BLOCK - 1))
+ abort ();
+
+ for (i = 1; i < loops->num; i++)
+ {
+ loop = loops->parray[i];
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Processing loop %d:\n", loop->num);
+
+ if (loop)
+ loop_prefetch_arrays (loop);
+
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "\n\n");
+ }
+}
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index e5ec3f37066..4c3d29126fc 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -37,6 +37,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "flags.h"
#include "tree-inline.h"
#include "tree-scalar-evolution.h"
+/* APPLE LOCAL begin lno */
+#include "tree-data-ref.h"
+#include "function.h"
+/* APPLE LOCAL end lno */
/* The loop tree currently optimized. */
@@ -45,7 +49,8 @@ struct loops *current_loops;
/* Initializes the loop structures. DUMP is the file to that the details
about the analysis should be dumped. */
-static struct loops *
+/* APPLE LOCAL lno */
+struct loops *
tree_loop_optimizer_init (FILE *dump)
{
struct loops *loops = loop_optimizer_init (dump);
@@ -193,6 +198,116 @@ struct tree_opt_pass pass_unswitch =
0 /* letter */
};
+/* APPLE LOCAL begin lno */
+/* A pass for testing of loop infrastructure. */
+
+static void
+tree_ssa_loop_test (void)
+{
+ if (!current_loops)
+ return;
+
+ scev_analysis ();
+ analyze_all_data_dependences (current_loops);
+}
+
+static bool
+gate_tree_ssa_loop_test (void)
+{
+ return flag_tree_ssa_loop_test != 0;
+}
+
+struct tree_opt_pass pass_loop_test =
+{
+ "lptest", /* name */
+ gate_tree_ssa_loop_test, /* gate */
+ tree_ssa_loop_test, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ 0, /* tv_id */
+ PROP_cfg, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ 0, /* todo_flags_finish */
+ 0
+};
+
+/* Marks loops that cannot be removed in DCE, since they are possibly
+ infinite. */
+
+static void
+tree_mark_maybe_inf_loops (void)
+{
+ if (!current_loops)
+ return;
+
+ cfun->marked_maybe_inf_loops = 1;
+ mark_maybe_infinite_loops (current_loops);
+}
+
+static bool
+gate_tree_mark_maybe_inf_loops (void)
+{
+ return (flag_tree_dce != 0 && optimize >= 2);
+}
+
+struct tree_opt_pass pass_mark_maybe_inf_loops =
+{
+ "miloops", /* name */
+ gate_tree_mark_maybe_inf_loops, /* gate */
+ tree_mark_maybe_inf_loops, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ TV_MARK_MILOOPS, /* tv_id */
+ PROP_cfg | PROP_ssa, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_dump_func, /* todo_flags_finish */
+ 0
+};
+
+/* APPLE LOCAL end lno */
+
+/* APPLE LOCAL begin loops-to-memset */
+/* Loops to memset pass. */
+
+static void
+tree_ssa_loop_memset (void)
+{
+ if (!current_loops)
+ return;
+
+ tree_ssa_memset (current_loops);
+}
+
+static bool
+gate_tree_ssa_loop_memset (void)
+{
+ return flag_tree_loop_memset != 0;
+}
+
+struct tree_opt_pass pass_memset =
+{
+ "memset", /* name */
+ gate_tree_ssa_loop_memset, /* gate */
+ tree_ssa_loop_memset, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ TV_LIM, /* tv_id */
+ PROP_cfg, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_dump_func, /* todo_flags_finish */
+ 0 /* letter */
+};
+/* APPLE LOCAL end loops-to-memset */
+
/* Loop autovectorization. */
static void
@@ -263,6 +378,42 @@ struct tree_opt_pass pass_linear_transform =
0 /* letter */
};
+/* APPLE LOCAL begin lno */
+/* Prefetching. */
+
+static void
+tree_ssa_loop_prefetch (void)
+{
+ if (!current_loops)
+ return;
+
+ tree_ssa_prefetch_arrays (current_loops);
+}
+
+static bool
+gate_tree_ssa_loop_prefetch (void)
+{
+ return flag_prefetch_loop_arrays != 0;
+}
+
+struct tree_opt_pass pass_loop_prefetch =
+{
+ "prefetch", /* name */
+ gate_tree_ssa_loop_prefetch, /* gate */
+ tree_ssa_loop_prefetch, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ TV_TREE_PREFETCH, /* tv_id */
+ PROP_cfg | PROP_ssa, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_dump_func, /* todo_flags_finish */
+ 0
+};
+/* APPLE LOCAL end lno */
+
/* Canonical induction variable creation pass. */
static void
@@ -340,7 +491,7 @@ tree_complete_unroll (void)
static bool
gate_tree_complete_unroll (void)
{
- return flag_unroll_loops != 0;
+ return flag_peel_loops || flag_unroll_loops;
}
struct tree_opt_pass pass_complete_unroll =
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index 0f279128f9c..13e20961c13 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -1030,6 +1030,32 @@ get_stmt_operands (tree stmt)
}
+/* APPLE LOCAL begin lno */
+/* Returns true if the function call EXPR does not access memory. */
+
+static bool
+function_ignores_memory_p (tree expr)
+{
+ tree fndecl = get_callee_fndecl (expr);
+ enum built_in_function fcode;
+
+ if (!fndecl || !DECL_BUILT_IN (fndecl))
+ return false;
+
+ fcode = DECL_FUNCTION_CODE (fndecl);
+
+ switch (fcode)
+ {
+ case BUILT_IN_PREFETCH:
+ case BUILT_IN_MAYBE_INFINITE_LOOP:
+ return true;
+
+ default:
+ return false;
+ }
+}
+/* APPLE LOCAL end lno */
+
/* Recursively scan the expression pointed by EXPR_P in statement referred to
by INFO. FLAGS is one of the OPF_* constants modifying how to interpret the
operands found. */
@@ -1460,12 +1486,26 @@ get_call_expr_operands (tree stmt, tree expr)
tree op;
int call_flags = call_expr_flags (expr);
- if (!bitmap_empty_p (call_clobbered_vars))
+ /* If aliases have been computed already, add V_MAY_DEF or V_USE
+ operands for all the symbols that have been found to be
+ call-clobbered.
+
+ Note that if aliases have not been computed, the global effects
+ of calls will not be included in the SSA web. This is fine
+ because no optimizer should run before aliases have been
+ computed. By not bothering with virtual operands for CALL_EXPRs
+ we avoid adding superfluous virtual operands, which can be a
+ significant compile time sink (See PR 15855). */
+ if (aliases_computed_p && !bitmap_empty_p (call_clobbered_vars))
{
/* A 'pure' or a 'const' functions never call clobber anything.
A 'noreturn' function might, but since we don't return anyway
there is no point in recording that. */
- if (TREE_SIDE_EFFECTS (expr)
+ /* APPLE LOCAL begin lno */
+ if (function_ignores_memory_p (expr))
+ ;
+ else if (TREE_SIDE_EFFECTS (expr)
+ /* APPLE LOCAL end lno */
&& !(call_flags & (ECF_PURE | ECF_CONST | ECF_NORETURN)))
add_call_clobber_ops (stmt);
else if (!(call_flags & ECF_CONST))
@@ -1496,6 +1536,10 @@ add_stmt_operand (tree *var_p, stmt_ann_t s_ann, int flags)
var_ann_t v_ann;
var = *var_p;
+ /* APPLE LOCAL begin lno */
+ if (!var)
+ return;
+ /* APPLE LOCAL end lno */
STRIP_NOPS (var);
/* If the operand is an ADDR_EXPR, add its operand to the list of
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index a364162ae36..96ab3685252 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -1317,16 +1317,40 @@ create_expression_by_pieces (basic_block block, tree expr, tree stmts)
case tcc_binary:
{
tree_stmt_iterator tsi;
+ tree forced_stmts;
tree genop1, genop2;
tree temp;
+ tree folded;
tree op1 = TREE_OPERAND (expr, 0);
tree op2 = TREE_OPERAND (expr, 1);
genop1 = find_or_generate_expression (block, op1, stmts);
genop2 = find_or_generate_expression (block, op2, stmts);
temp = create_tmp_var (TREE_TYPE (expr), "pretmp");
add_referenced_tmp_var (temp);
- newexpr = fold (build (TREE_CODE (expr), TREE_TYPE (expr),
- genop1, genop2));
+
+ folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr),
+ genop1, genop2));
+ /* APPLE LOCAL begin 4100712 FSF 4.0 branch */
+ newexpr = force_gimple_operand (unshare_expr (folded),
+ &forced_stmts, false, NULL);
+ /* APPLE LOCAL end 4100712 FSF 4.0 branch */
+ if (forced_stmts)
+ {
+ tsi = tsi_start (forced_stmts);
+ for (; !tsi_end_p (tsi); tsi_next (&tsi))
+ {
+ tree stmt = tsi_stmt (tsi);
+ tree forcedname = TREE_OPERAND (stmt, 0);
+ tree forcedexpr = TREE_OPERAND (stmt, 1);
+ tree val = vn_lookup_or_add (forcedexpr, NULL);
+ vn_add (forcedname, val, NULL);
+ bitmap_value_replace_in_set (NEW_SETS (block), forcedname);
+ bitmap_value_replace_in_set (AVAIL_OUT (block), forcedname);
+ }
+
+ tsi = tsi_last (stmts);
+ tsi_link_after (&tsi, forced_stmts, TSI_CONTINUE_LINKING);
+ }
newexpr = build (MODIFY_EXPR, TREE_TYPE (expr),
temp, newexpr);
NECESSARY (newexpr) = 0;
@@ -1341,14 +1365,36 @@ create_expression_by_pieces (basic_block block, tree expr, tree stmts)
case tcc_unary:
{
tree_stmt_iterator tsi;
+ tree forced_stmts = NULL;
tree genop1;
tree temp;
+ tree folded;
tree op1 = TREE_OPERAND (expr, 0);
genop1 = find_or_generate_expression (block, op1, stmts);
temp = create_tmp_var (TREE_TYPE (expr), "pretmp");
add_referenced_tmp_var (temp);
- newexpr = fold (build (TREE_CODE (expr), TREE_TYPE (expr),
- genop1));
+ folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr),
+ genop1));
+ /* APPLE LOCAL begin 4100712 FSF 4.0 branch */
+ newexpr = force_gimple_operand (unshare_expr (folded),
+ &forced_stmts, false, NULL);
+ /* APPLE LOCAL end 4100712 FSF 4.0 branch */
+ if (forced_stmts)
+ {
+ tsi = tsi_start (forced_stmts);
+ for (; !tsi_end_p (tsi); tsi_next (&tsi))
+ {
+ tree stmt = tsi_stmt (tsi);
+ tree forcedname = TREE_OPERAND (stmt, 0);
+ tree forcedexpr = TREE_OPERAND (stmt, 1);
+ tree val = vn_lookup_or_add (forcedexpr, NULL);
+ vn_add (forcedname, val, NULL);
+ bitmap_value_replace_in_set (NEW_SETS (block), forcedname);
+ bitmap_value_replace_in_set (AVAIL_OUT (block), forcedname);
+ }
+ tsi = tsi_last (stmts);
+ tsi_link_after (&tsi, forced_stmts, TSI_CONTINUE_LINKING);
+ }
newexpr = build (MODIFY_EXPR, TREE_TYPE (expr),
temp, newexpr);
name = make_ssa_name (temp, newexpr);
@@ -1653,7 +1699,7 @@ insert_aux (basic_block block)
/* If all edges produce the same value and that value is
an invariant, then the PHI has the same value on all
edges. Note this. */
- else if (all_same && eprime
+ else if (!cant_insert && all_same && eprime
&& is_gimple_min_invariant (eprime)
&& !is_gimple_min_invariant (val))
{
@@ -2170,7 +2216,7 @@ init_pre (bool do_fre)
AVAIL_OUT (bb) = bitmap_set_new ();
}
- need_eh_cleanup = BITMAP_XMALLOC ();
+ need_eh_cleanup = BITMAP_ALLOC (NULL);
}
@@ -2208,7 +2254,7 @@ fini_pre (bool do_fre)
cleanup_tree_cfg ();
}
- BITMAP_XFREE (need_eh_cleanup);
+ BITMAP_FREE (need_eh_cleanup);
/* Wipe out pointers to VALUE_HANDLEs. In the not terribly distant
future we will want them to be persistent though. */
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index de4006d2187..9346d6cf706 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -341,7 +341,7 @@ verify_flow_insensitive_alias_info (void)
{
size_t i;
tree var;
- bitmap visited = BITMAP_XMALLOC ();
+ bitmap visited = BITMAP_ALLOC (NULL);
for (i = 0; i < num_referenced_vars; i++)
{
@@ -384,7 +384,7 @@ verify_flow_insensitive_alias_info (void)
}
}
- BITMAP_XFREE (visited);
+ BITMAP_FREE (visited);
return;
err:
@@ -480,7 +480,7 @@ verify_name_tags (void)
bitmap first, second;
VEC (tree) *name_tag_reps = NULL;
VEC (bitmap) *pt_vars_for_reps = NULL;
- bitmap type_aliases = BITMAP_XMALLOC ();
+ bitmap type_aliases = BITMAP_ALLOC (NULL);
/* First we compute the name tag representatives and their points-to sets. */
for (i = 0; i < num_ssa_names; i++)
@@ -604,7 +604,7 @@ verify_ssa (void)
ssa_op_iter iter;
tree op;
enum dom_state orig_dom_state = dom_computed[CDI_DOMINATORS];
- bitmap names_defined_in_bb = BITMAP_XMALLOC ();
+ bitmap names_defined_in_bb = BITMAP_ALLOC (NULL);
timevar_push (TV_TREE_SSA_VERIFY);
@@ -702,7 +702,7 @@ verify_ssa (void)
else
dom_computed[CDI_DOMINATORS] = orig_dom_state;
- BITMAP_XFREE (names_defined_in_bb);
+ BITMAP_FREE (names_defined_in_bb);
timevar_pop (TV_TREE_SSA_VERIFY);
return;
@@ -717,12 +717,13 @@ void
init_tree_ssa (void)
{
VARRAY_TREE_INIT (referenced_vars, 20, "referenced_vars");
- call_clobbered_vars = BITMAP_XMALLOC ();
- addressable_vars = BITMAP_XMALLOC ();
+ call_clobbered_vars = BITMAP_ALLOC (NULL);
+ addressable_vars = BITMAP_ALLOC (NULL);
init_ssa_operands ();
init_ssanames ();
init_phinodes ();
global_var = NULL_TREE;
+ aliases_computed_p = false;
}
@@ -762,11 +763,12 @@ delete_tree_ssa (void)
fini_ssa_operands ();
global_var = NULL_TREE;
- BITMAP_XFREE (call_clobbered_vars);
+ BITMAP_FREE (call_clobbered_vars);
call_clobbered_vars = NULL;
- BITMAP_XFREE (addressable_vars);
+ BITMAP_FREE (addressable_vars);
addressable_vars = NULL;
modified_noreturn_calls = NULL;
+ aliases_computed_p = false;
}
@@ -776,11 +778,17 @@ delete_tree_ssa (void)
bool
tree_ssa_useless_type_conversion_1 (tree outer_type, tree inner_type)
{
+ if (inner_type == outer_type)
+ return true;
+
+ /* Changes in machine mode are never useless conversions. */
+ if (TYPE_MODE (inner_type) != TYPE_MODE (outer_type))
+ return false;
+
/* If the inner and outer types are effectively the same, then
strip the type conversion and enter the equivalence into
the table. */
- if (inner_type == outer_type
- || (lang_hooks.types_compatible_p (inner_type, outer_type)))
+ if (lang_hooks.types_compatible_p (inner_type, outer_type))
return true;
/* If both types are pointers and the outer type is a (void *), then
@@ -791,7 +799,6 @@ tree_ssa_useless_type_conversion_1 (tree outer_type, tree inner_type)
implement the ABI. */
else if (POINTER_TYPE_P (inner_type)
&& POINTER_TYPE_P (outer_type)
- && TYPE_MODE (inner_type) == TYPE_MODE (outer_type)
&& TYPE_REF_CAN_ALIAS_ALL (inner_type)
== TYPE_REF_CAN_ALIAS_ALL (outer_type)
&& TREE_CODE (TREE_TYPE (outer_type)) == VOID_TYPE)
@@ -801,7 +808,6 @@ tree_ssa_useless_type_conversion_1 (tree outer_type, tree inner_type)
so strip conversions that just switch between them. */
else if (POINTER_TYPE_P (inner_type)
&& POINTER_TYPE_P (outer_type)
- && TYPE_MODE (inner_type) == TYPE_MODE (outer_type)
&& TYPE_REF_CAN_ALIAS_ALL (inner_type)
== TYPE_REF_CAN_ALIAS_ALL (outer_type)
&& lang_hooks.types_compatible_p (TREE_TYPE (inner_type),
@@ -817,7 +823,6 @@ tree_ssa_useless_type_conversion_1 (tree outer_type, tree inner_type)
mean that testing of precision is necessary. */
else if (INTEGRAL_TYPE_P (inner_type)
&& INTEGRAL_TYPE_P (outer_type)
- && TYPE_MODE (inner_type) == TYPE_MODE (outer_type)
&& TYPE_UNSIGNED (inner_type) == TYPE_UNSIGNED (outer_type)
&& TYPE_PRECISION (inner_type) == TYPE_PRECISION (outer_type))
{
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
index db6717cf3ae..38aab0bc295 100644
--- a/gcc/tree-ssanames.c
+++ b/gcc/tree-ssanames.c
@@ -1,5 +1,5 @@
/* Generic routines for manipulating SSA_NAME expressions
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -118,7 +118,7 @@ unmark_all_for_rewrite (void)
bitmap
marked_ssa_names (void)
{
- bitmap ret = BITMAP_XMALLOC ();
+ bitmap ret = BITMAP_ALLOC (NULL);
bitmap_copy (ret, ssa_names_to_rewrite);
@@ -138,7 +138,7 @@ init_ssanames (void)
large. */
VARRAY_PUSH_TREE (ssa_names, NULL_TREE);
free_ssanames = NULL;
- ssa_names_to_rewrite = BITMAP_XMALLOC ();
+ ssa_names_to_rewrite = BITMAP_ALLOC (NULL);
}
/* Finalize management of SSA_NAMEs. */
@@ -146,7 +146,7 @@ init_ssanames (void)
void
fini_ssanames (void)
{
- BITMAP_XFREE (ssa_names_to_rewrite);
+ BITMAP_FREE (ssa_names_to_rewrite);
ggc_free (ssa_names);
ssa_names = NULL;
free_ssanames = NULL;
diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c
new file mode 100644
index 00000000000..81709022553
--- /dev/null
+++ b/gcc/tree-vect-analyze.c
@@ -0,0 +1,2601 @@
+/* Analysis Utilities for Loop Vectorization.
+ Copyright (C) 2003,2004,2005 Free Software Foundation, Inc.
+ Contributed by Dorit Naishlos <dorit@il.ibm.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 "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "errors.h"
+#include "ggc.h"
+#include "tree.h"
+#include "basic-block.h"
+#include "diagnostic.h"
+#include "tree-flow.h"
+#include "tree-dump.h"
+#include "timevar.h"
+#include "cfgloop.h"
+#include "expr.h"
+#include "optabs.h"
+#include "tree-chrec.h"
+#include "tree-data-ref.h"
+#include "tree-scalar-evolution.h"
+#include "tree-vectorizer.h"
+
+/* Main analysis functions. */
+static loop_vec_info vect_analyze_loop_form (struct loop *);
+static bool vect_analyze_data_refs (loop_vec_info);
+static bool vect_mark_stmts_to_be_vectorized (loop_vec_info);
+static bool vect_analyze_scalar_cycles (loop_vec_info);
+static bool vect_analyze_data_ref_accesses (loop_vec_info);
+static bool vect_analyze_data_ref_dependences (loop_vec_info);
+static bool vect_analyze_data_refs_alignment (loop_vec_info);
+static bool vect_compute_data_refs_alignment (loop_vec_info);
+static void vect_enhance_data_refs_alignment (loop_vec_info);
+static bool vect_analyze_operations (loop_vec_info);
+
+/* Utility functions for the analyses. */
+static bool exist_non_indexing_operands_for_use_p (tree, tree);
+static void vect_mark_relevant (varray_type *, tree);
+static bool vect_stmt_relevant_p (tree, loop_vec_info);
+/* APPLE LOCAL loops-to-memset */
+extern tree vect_get_loop_niters (struct loop *, tree *);
+static bool vect_analyze_data_ref_dependence
+ (struct data_reference *, struct data_reference *, loop_vec_info);
+static bool vect_compute_data_ref_alignment (struct data_reference *);
+static bool vect_analyze_data_ref_access (struct data_reference *);
+/* APPLE LOCAL loops-to-memset */
+extern struct data_reference * vect_analyze_pointer_ref_access
+ (tree, tree, bool, tree, tree *, tree *);
+static bool vect_can_advance_ivs_p (loop_vec_info);
+static tree vect_get_ptr_offset (tree, tree, tree *);
+static bool vect_analyze_offset_expr (tree, struct loop *, tree, tree *,
+ tree *, tree *);
+static bool vect_base_addr_differ_p (struct data_reference *,
+ struct data_reference *drb, bool *);
+static tree vect_object_analysis (tree, tree, bool, tree,
+ struct data_reference **, tree *, tree *,
+ tree *, bool *, tree *);
+static tree vect_address_analysis (tree, tree, bool, tree,
+ struct data_reference *, tree *, tree *,
+ tree *, bool *);
+
+
+/* Function vect_get_ptr_offset
+
+ Compute the OFFSET modulo vector-type alignment of pointer REF in bits. */
+
+static tree
+vect_get_ptr_offset (tree ref ATTRIBUTE_UNUSED,
+ tree vectype ATTRIBUTE_UNUSED,
+ tree *offset ATTRIBUTE_UNUSED)
+{
+ /* TODO: Use alignment information. */
+ return NULL_TREE;
+}
+
+
+/* Function vect_analyze_offset_expr
+
+ Given an offset expression EXPR received from get_inner_reference, analyze
+ it and create an expression for INITIAL_OFFSET by substituting the variables
+ of EXPR with initial_condition of the corresponding access_fn in the loop.
+ E.g.,
+ for i
+ for (j = 3; j < N; j++)
+ a[j].b[i][j] = 0;
+
+ For a[j].b[i][j], EXPR will be 'i * C_i + j * C_j + C'. 'i' cannot be
+ substituted, since its access_fn in the inner loop is i. 'j' will be
+ substituted with 3. An INITIAL_OFFSET will be 'i * C_i + C`', where
+ C` = 3 * C_j + C.
+
+ Compute MISALIGN (the misalignment of the data reference initial access from
+ its base) if possible. Misalignment can be calculated only if all the
+ variables can be substituted with constants, or if a variable is multiplied
+ by a multiple of VECTYPE_ALIGNMENT. In the above example, since 'i' cannot
+ be substituted, MISALIGN will be NULL_TREE in case that C_i is not a multiple
+ of VECTYPE_ALIGNMENT, and C` otherwise. (We perform MISALIGN modulo
+ VECTYPE_ALIGNMENT computation in the caller of this function).
+
+ STEP is an evolution of the data reference in this loop in bytes.
+ In the above example, STEP is C_j.
+
+ Return FALSE, if the analysis fails, e.g., there is no access_fn for a
+ variable. In this case, all the outputs (INITIAL_OFFSET, MISALIGN and STEP)
+ are NULL_TREEs. Otherwise, return TRUE.
+
+*/
+
+static bool
+vect_analyze_offset_expr (tree expr,
+ struct loop *loop,
+ tree vectype_alignment,
+ tree *initial_offset,
+ tree *misalign,
+ tree *step)
+{
+ tree oprnd0;
+ tree oprnd1;
+ tree left_offset = ssize_int (0);
+ tree right_offset = ssize_int (0);
+ tree left_misalign = ssize_int (0);
+ tree right_misalign = ssize_int (0);
+ tree left_step = ssize_int (0);
+ tree right_step = ssize_int (0);
+ enum tree_code code;
+ tree init, evolution;
+
+ *step = NULL_TREE;
+ *misalign = NULL_TREE;
+ *initial_offset = NULL_TREE;
+
+ /* Strip conversions that don't narrow the mode. */
+ expr = vect_strip_conversion (expr);
+ if (!expr)
+ return false;
+
+ /* Stop conditions:
+ 1. Constant. */
+ if (TREE_CODE (expr) == INTEGER_CST)
+ {
+ *initial_offset = fold_convert (ssizetype, expr);
+ *misalign = fold_convert (ssizetype, expr);
+ *step = ssize_int (0);
+ return true;
+ }
+
+ /* 2. Variable. Try to substitute with initial_condition of the corresponding
+ access_fn in the current loop. */
+ if (SSA_VAR_P (expr))
+ {
+ tree access_fn = analyze_scalar_evolution (loop, expr);
+
+ if (access_fn == chrec_dont_know)
+ /* No access_fn. */
+ return false;
+
+ init = initial_condition_in_loop_num (access_fn, loop->num);
+ if (init == expr && !expr_invariant_in_loop_p (loop, init))
+ /* Not enough information: may be not loop invariant.
+ E.g., for a[b[i]], we get a[D], where D=b[i]. EXPR is D, its
+ initial_condition is D, but it depends on i - loop's induction
+ variable. */
+ return false;
+
+ evolution = evolution_part_in_loop_num (access_fn, loop->num);
+ if (evolution && TREE_CODE (evolution) != INTEGER_CST)
+ /* Evolution is not constant. */
+ return false;
+
+ if (TREE_CODE (init) == INTEGER_CST)
+ *misalign = fold_convert (ssizetype, init);
+ else
+ /* Not constant, misalignment cannot be calculated. */
+ *misalign = NULL_TREE;
+
+ *initial_offset = fold_convert (ssizetype, init);
+
+ *step = evolution ? fold_convert (ssizetype, evolution) : ssize_int (0);
+ return true;
+ }
+
+ /* Recursive computation. */
+ if (!BINARY_CLASS_P (expr))
+ {
+ /* We expect to get binary expressions (PLUS/MINUS and MULT). */
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Not binary expression ");
+ print_generic_expr (vect_dump, expr, TDF_SLIM);
+ }
+ return false;
+ }
+ oprnd0 = TREE_OPERAND (expr, 0);
+ oprnd1 = TREE_OPERAND (expr, 1);
+
+ if (!vect_analyze_offset_expr (oprnd0, loop, vectype_alignment, &left_offset,
+ &left_misalign, &left_step)
+ || !vect_analyze_offset_expr (oprnd1, loop, vectype_alignment,
+ &right_offset, &right_misalign, &right_step))
+ return false;
+
+ /* The type of the operation: plus, minus or mult. */
+ code = TREE_CODE (expr);
+ switch (code)
+ {
+ case MULT_EXPR:
+ if (TREE_CODE (right_offset) != INTEGER_CST)
+ /* RIGHT_OFFSET can be not constant. For example, for arrays of variable
+ sized types.
+ FORNOW: We don't support such cases. */
+ return false;
+
+ /* Strip conversions that don't narrow the mode. */
+ left_offset = vect_strip_conversion (left_offset);
+ if (!left_offset)
+ return false;
+ /* Misalignment computation. */
+ if (SSA_VAR_P (left_offset))
+ {
+ /* If the left side contains variables that can't be substituted with
+ constants, we check if the right side is a multiple of ALIGNMENT.
+ */
+ if (integer_zerop (size_binop (TRUNC_MOD_EXPR, right_offset,
+ fold_convert (ssizetype, vectype_alignment))))
+ *misalign = ssize_int (0);
+ else
+ /* If the remainder is not zero or the right side isn't constant,
+ we can't compute misalignment. */
+ *misalign = NULL_TREE;
+ }
+ else
+ {
+ /* The left operand was successfully substituted with constant. */
+ if (left_misalign)
+ /* In case of EXPR '(i * C1 + j) * C2', LEFT_MISALIGN is
+ NULL_TREE. */
+ *misalign = size_binop (code, left_misalign, right_misalign);
+ else
+ *misalign = NULL_TREE;
+ }
+
+ /* Step calculation. */
+ /* Multiply the step by the right operand. */
+ *step = size_binop (MULT_EXPR, left_step, right_offset);
+ break;
+
+ case PLUS_EXPR:
+ case MINUS_EXPR:
+ /* Combine the recursive calculations for step and misalignment. */
+ *step = size_binop (code, left_step, right_step);
+
+ if (left_misalign && right_misalign)
+ *misalign = size_binop (code, left_misalign, right_misalign);
+ else
+ *misalign = NULL_TREE;
+
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+
+ /* Compute offset. */
+ *initial_offset = fold_convert (ssizetype,
+ fold (build2 (code, TREE_TYPE (left_offset),
+ left_offset,
+ right_offset)));
+ return true;
+}
+
+
+/* Function vect_analyze_operations.
+
+ Scan the loop stmts and make sure they are all vectorizable. */
+
+static bool
+vect_analyze_operations (loop_vec_info loop_vinfo)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ int nbbs = loop->num_nodes;
+ block_stmt_iterator si;
+ unsigned int vectorization_factor = 0;
+ int i;
+ bool ok;
+ tree scalar_type;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_analyze_operations ===");
+
+ for (i = 0; i < nbbs; i++)
+ {
+ basic_block bb = bbs[i];
+
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ tree stmt = bsi_stmt (si);
+ unsigned int nunits;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ tree vectype;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "==> examining statement: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+
+ gcc_assert (stmt_info);
+
+ /* skip stmts which do not need to be vectorized.
+ this is expected to include:
+ - the COND_EXPR which is the loop exit condition
+ - any LABEL_EXPRs in the loop
+ - computations that are used only for array indexing or loop
+ control */
+
+ if (!STMT_VINFO_RELEVANT_P (stmt_info))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "irrelevant.");
+ continue;
+ }
+
+ if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (stmt))))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump, "not vectorized: vector stmt in loop:");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ if (STMT_VINFO_DATA_REF (stmt_info))
+ scalar_type = TREE_TYPE (DR_REF (STMT_VINFO_DATA_REF (stmt_info)));
+ else if (TREE_CODE (stmt) == MODIFY_EXPR)
+ scalar_type = TREE_TYPE (TREE_OPERAND (stmt, 0));
+ else
+ scalar_type = TREE_TYPE (stmt);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "get vectype for scalar type: ");
+ print_generic_expr (vect_dump, scalar_type, TDF_SLIM);
+ }
+
+ vectype = get_vectype_for_scalar_type (scalar_type);
+ if (!vectype)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump,
+ "not vectorized: unsupported data-type ");
+ print_generic_expr (vect_dump, scalar_type, TDF_SLIM);
+ }
+ return false;
+ }
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "vectype: ");
+ print_generic_expr (vect_dump, vectype, TDF_SLIM);
+ }
+ STMT_VINFO_VECTYPE (stmt_info) = vectype;
+
+ ok = (vectorizable_operation (stmt, NULL, NULL)
+ || vectorizable_assignment (stmt, NULL, NULL)
+ || vectorizable_load (stmt, NULL, NULL)
+ /* APPLE LOCAL AV cond expr. -dpatel */
+ || vectorizable_select (stmt, NULL, NULL)
+ || vectorizable_store (stmt, NULL, NULL));
+
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump, "not vectorized: stmt not supported: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ nunits = GET_MODE_NUNITS (TYPE_MODE (vectype));
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "nunits = %d", nunits);
+
+ if (vectorization_factor)
+ {
+ /* FORNOW: don't allow mixed units.
+ This restriction will be relaxed in the future. */
+ if (nunits != vectorization_factor)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: mixed data-types");
+ return false;
+ }
+ }
+ else
+ vectorization_factor = nunits;
+
+#ifdef ENABLE_CHECKING
+ gcc_assert (GET_MODE_SIZE (TYPE_MODE (scalar_type))
+ * vectorization_factor == UNITS_PER_SIMD_WORD);
+#endif
+ }
+ }
+
+ /* TODO: Analyze cost. Decide if worth while to vectorize. */
+
+ if (vectorization_factor <= 1)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported data-type");
+ return false;
+ }
+ LOOP_VINFO_VECT_FACTOR (loop_vinfo) = vectorization_factor;
+
+ if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
+ && vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump,
+ "vectorization_factor = %d, niters = " HOST_WIDE_INT_PRINT_DEC,
+ vectorization_factor, LOOP_VINFO_INT_NITERS (loop_vinfo));
+
+ if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
+ && LOOP_VINFO_INT_NITERS (loop_vinfo) < vectorization_factor)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: iteration count too small.");
+ return false;
+ }
+
+ if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
+ || LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "epilog loop required.");
+ if (!vect_can_advance_ivs_p (loop_vinfo))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump,
+ "not vectorized: can't create epilog loop 1.");
+ return false;
+ }
+ if (!slpeel_can_duplicate_loop_p (loop, loop->exit_edges[0]))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump,
+ "not vectorized: can't create epilog loop 2.");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+/* Function exist_non_indexing_operands_for_use_p
+
+ USE is one of the uses attached to STMT. Check if USE is
+ used in STMT for anything other than indexing an array. */
+
+static bool
+exist_non_indexing_operands_for_use_p (tree use, tree stmt)
+{
+ tree operand;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+
+ /* USE corresponds to some operand in STMT. If there is no data
+ reference in STMT, then any operand that corresponds to USE
+ is not indexing an array. */
+ if (!STMT_VINFO_DATA_REF (stmt_info))
+ return true;
+
+ /* STMT has a data_ref. FORNOW this means that its of one of
+ the following forms:
+ -1- ARRAY_REF = var
+ -2- var = ARRAY_REF
+ (This should have been verified in analyze_data_refs).
+
+ 'var' in the second case corresponds to a def, not a use,
+ so USE cannot correspond to any operands that are not used
+ for array indexing.
+
+ Therefore, all we need to check is if STMT falls into the
+ first case, and whether var corresponds to USE. */
+
+ if (TREE_CODE (TREE_OPERAND (stmt, 0)) == SSA_NAME)
+ return false;
+
+ operand = TREE_OPERAND (stmt, 1);
+
+ if (TREE_CODE (operand) != SSA_NAME)
+ return false;
+
+ if (operand == use)
+ return true;
+
+ return false;
+}
+
+
+/* Function vect_analyze_scalar_cycles.
+
+ Examine the cross iteration def-use cycles of scalar variables, by
+ analyzing the loop (scalar) PHIs; verify that the cross iteration def-use
+ cycles that they represent do not impede vectorization.
+
+ FORNOW: Reduction as in the following loop, is not supported yet:
+ loop1:
+ for (i=0; i<N; i++)
+ sum += a[i];
+ The cross-iteration cycle corresponding to variable 'sum' will be
+ considered too complicated and will impede vectorization.
+
+ FORNOW: Induction as in the following loop, is not supported yet:
+ loop2:
+ for (i=0; i<N; i++)
+ a[i] = i;
+
+ However, the following loop *is* vectorizable:
+ loop3:
+ for (i=0; i<N; i++)
+ a[i] = b[i];
+
+ In both loops there exists a def-use cycle for the variable i:
+ loop: i_2 = PHI (i_0, i_1)
+ a[i_2] = ...;
+ i_1 = i_2 + 1;
+ GOTO loop;
+
+ The evolution of the above cycle is considered simple enough,
+ however, we also check that the cycle does not need to be
+ vectorized, i.e - we check that the variable that this cycle
+ defines is only used for array indexing or in stmts that do not
+ need to be vectorized. This is not the case in loop2, but it
+ *is* the case in loop3. */
+
+static bool
+vect_analyze_scalar_cycles (loop_vec_info loop_vinfo)
+{
+ tree phi;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block bb = loop->header;
+ tree dummy;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_analyze_scalar_cycles ===");
+
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ {
+ tree access_fn = NULL;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Analyze phi: ");
+ print_generic_expr (vect_dump, phi, TDF_SLIM);
+ }
+
+ /* Skip virtual phi's. The data dependences that are associated with
+ virtual defs/uses (i.e., memory accesses) are analyzed elsewhere. */
+
+ if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "virtual phi. skip.");
+ continue;
+ }
+
+ /* Analyze the evolution function. */
+
+ /* FORNOW: The only scalar cross-iteration cycles that we allow are
+ those of loop induction variables; This property is verified here.
+
+ Furthermore, if that induction variable is used in an operation
+ that needs to be vectorized (i.e, is not solely used to index
+ arrays and check the exit condition) - we do not support its
+ vectorization yet. This property is verified in vect_is_simple_use,
+ during vect_analyze_operations. */
+
+ access_fn = /* instantiate_parameters
+ (loop,*/
+ analyze_scalar_evolution (loop, PHI_RESULT (phi));
+
+ if (!access_fn)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported scalar cycle.");
+ return false;
+ }
+
+ if (vect_print_dump_info (REPORT_DETAILS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump, "Access function of PHI: ");
+ print_generic_expr (vect_dump, access_fn, TDF_SLIM);
+ }
+
+ if (!vect_is_simple_iv_evolution (loop->num, access_fn, &dummy, &dummy))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported scalar cycle.");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+/* Function vect_base_addr_differ_p.
+
+ This is the simplest data dependence test: determines whether the
+ data references A and B access the same array/region. Returns
+ false when the property is not computable at compile time.
+ Otherwise return true, and DIFFER_P will record the result. This
+ utility will not be necessary when alias_sets_conflict_p will be
+ less conservative. */
+
+static bool
+vect_base_addr_differ_p (struct data_reference *dra,
+ struct data_reference *drb,
+ bool *differ_p)
+{
+ tree stmt_a = DR_STMT (dra);
+ stmt_vec_info stmt_info_a = vinfo_for_stmt (stmt_a);
+ tree stmt_b = DR_STMT (drb);
+ stmt_vec_info stmt_info_b = vinfo_for_stmt (stmt_b);
+ tree addr_a = STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info_a);
+ tree addr_b = STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info_b);
+ tree type_a = TREE_TYPE (addr_a);
+ tree type_b = TREE_TYPE (addr_b);
+ HOST_WIDE_INT alias_set_a, alias_set_b;
+
+ gcc_assert (POINTER_TYPE_P (type_a) && POINTER_TYPE_P (type_b));
+
+ /* Both references are ADDR_EXPR, i.e., we have the objects. */
+ if (TREE_CODE (addr_a) == ADDR_EXPR && TREE_CODE (addr_b) == ADDR_EXPR)
+ return array_base_name_differ_p (dra, drb, differ_p);
+
+ alias_set_a = (TREE_CODE (addr_a) == ADDR_EXPR) ?
+ get_alias_set (TREE_OPERAND (addr_a, 0)) : get_alias_set (addr_a);
+ alias_set_b = (TREE_CODE (addr_b) == ADDR_EXPR) ?
+ get_alias_set (TREE_OPERAND (addr_b, 0)) : get_alias_set (addr_b);
+
+ if (!alias_sets_conflict_p (alias_set_a, alias_set_b))
+ {
+ *differ_p = true;
+ return true;
+ }
+
+ /* An instruction writing through a restricted pointer is "independent" of any
+ instruction reading or writing through a different pointer, in the same
+ block/scope. */
+ else if ((TYPE_RESTRICT (type_a) && !DR_IS_READ (dra))
+ || (TYPE_RESTRICT (type_b) && !DR_IS_READ (drb)))
+ {
+ *differ_p = true;
+ return true;
+ }
+ return false;
+}
+
+
+/* APPLE LOCAL begin AV data dependence. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004. */
+/* Function vect_build_dist_vector.
+
+ Build classic dist vector for dependence relation DDR using LOOP's loop
+ nest. Return LOOP's depth in its loop nest. */
+
+static unsigned int
+vect_build_dist_vector (struct loop *loop,
+ struct data_dependence_relation *ddr)
+{
+ struct loop *loop_nest = loop;
+ unsigned int loop_depth = 1;
+
+ /* Find loop nest and loop depth. */
+ while (loop_nest)
+ {
+ if (loop_nest->outer && loop_nest->outer->outer)
+ {
+ loop_nest = loop_nest->outer;
+ loop_depth++;
+ }
+ else
+ break;
+ }
+
+ /* Compute distance vector. */
+ compute_subscript_distance (ddr);
+ build_classic_dist_vector (ddr, loops_num, loop_nest->depth);
+
+ return loop_depth - 1;
+}
+/* APPLE LOCAL end AV data dependence. -dpatel */
+
+/* Function vect_analyze_data_ref_dependence.
+
+ Return TRUE if there (might) exist a dependence between a memory-reference
+ DRA and a memory-reference DRB. */
+
+static bool
+vect_analyze_data_ref_dependence (struct data_reference *dra,
+ struct data_reference *drb,
+ loop_vec_info loop_vinfo)
+{
+ bool differ_p;
+ struct data_dependence_relation *ddr;
+ /* APPLE LOCAL begin AV data dependence. -dpatel */
+ int vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ unsigned int loop_depth = 0;
+ int dist;
+ /* APPLE LOCAL end AV data dependence. -dpatel */
+
+ if (!vect_base_addr_differ_p (dra, drb, &differ_p))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump,
+ "not vectorized: can't determine dependence between: ");
+ print_generic_expr (vect_dump, DR_REF (dra), TDF_SLIM);
+ fprintf (vect_dump, " and ");
+ print_generic_expr (vect_dump, DR_REF (drb), TDF_SLIM);
+ }
+ return true;
+ }
+
+ if (differ_p)
+ return false;
+
+ ddr = initialize_data_dependence_relation (dra, drb);
+ compute_affine_dependence (ddr);
+
+ if (DDR_ARE_DEPENDENT (ddr) == chrec_known)
+ return false;
+
+ /* APPLE LOCAL begin AV data dependence. -dpatel */
+ if (DDR_ARE_DEPENDENT (ddr) == chrec_dont_know)
+ return true;
+
+ loop_depth = vect_build_dist_vector (loop, ddr);
+
+ if (!DDR_DIST_VECT (ddr))
+ return true;
+
+ dist = DDR_DIST_VECT (ddr)[loop_depth];
+
+ /* Same loop iteration. */
+ if (dist == 0)
+ return false;
+
+ if (dist >= vectorization_factor)
+ /* Dependence distance does not create dependence, as far as vectorization
+ is concerned, in this case. */
+ return false;
+ /* APPLE LOCAL end AV data dependence. -dpatel */
+
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump,
+ "not vectorized: possible dependence between data-refs ");
+ print_generic_expr (vect_dump, DR_REF (dra), TDF_SLIM);
+ fprintf (vect_dump, " and ");
+ print_generic_expr (vect_dump, DR_REF (drb), TDF_SLIM);
+ }
+
+ return true;
+}
+
+
+/* Function vect_analyze_data_ref_dependences.
+
+ Examine all the data references in the loop, and make sure there do not
+ exist any data dependences between them.
+
+ TODO: dependences which distance is greater than the vectorization factor
+ can be ignored. */
+
+static bool
+vect_analyze_data_ref_dependences (loop_vec_info loop_vinfo)
+{
+ unsigned int i, j;
+ varray_type loop_write_refs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
+ varray_type loop_read_refs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
+
+ /* Examine store-store (output) dependences. */
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_analyze_dependences ===");
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "compare all store-store pairs.");
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_refs); i++)
+ {
+ for (j = i + 1; j < VARRAY_ACTIVE_SIZE (loop_write_refs); j++)
+ {
+ struct data_reference *dra =
+ VARRAY_GENERIC_PTR (loop_write_refs, i);
+ struct data_reference *drb =
+ VARRAY_GENERIC_PTR (loop_write_refs, j);
+ if (vect_analyze_data_ref_dependence (dra, drb, loop_vinfo))
+ return false;
+ }
+ }
+
+ /* Examine load-store (true/anti) dependences. */
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "compare all load-store pairs.");
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_refs); i++)
+ {
+ for (j = 0; j < VARRAY_ACTIVE_SIZE (loop_write_refs); j++)
+ {
+ struct data_reference *dra = VARRAY_GENERIC_PTR (loop_read_refs, i);
+ struct data_reference *drb =
+ VARRAY_GENERIC_PTR (loop_write_refs, j);
+ if (vect_analyze_data_ref_dependence (dra, drb, loop_vinfo))
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+/* Function vect_compute_data_ref_alignment
+
+ Compute the misalignment of the data reference DR.
+
+ Output:
+ 1. If during the misalignment computation it is found that the data reference
+ cannot be vectorized then false is returned.
+ 2. DR_MISALIGNMENT (DR) is defined.
+
+ FOR NOW: No analysis is actually performed. Misalignment is calculated
+ only for trivial cases. TODO. */
+
+static bool
+vect_compute_data_ref_alignment (struct data_reference *dr)
+{
+ tree stmt = DR_STMT (dr);
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ tree ref = DR_REF (dr);
+ tree vectype;
+ tree base, alignment;
+ bool base_aligned_p;
+ tree misalign;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "vect_compute_data_ref_alignment:");
+
+ /* Initialize misalignment to unknown. */
+ DR_MISALIGNMENT (dr) = -1;
+
+ misalign = STMT_VINFO_VECT_MISALIGNMENT (stmt_info);
+ base_aligned_p = STMT_VINFO_VECT_BASE_ALIGNED_P (stmt_info);
+ base = build_fold_indirect_ref (STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info));
+ vectype = STMT_VINFO_VECTYPE (stmt_info);
+
+ if (!misalign)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Unknown alignment for access: ");
+ print_generic_expr (vect_dump, base, TDF_SLIM);
+ }
+ return true;
+ }
+
+ if (!base_aligned_p)
+ {
+ if (!vect_can_force_dr_alignment_p (base, TYPE_ALIGN (vectype)))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "can't force alignment of ref: ");
+ print_generic_expr (vect_dump, ref, TDF_SLIM);
+ }
+ return true;
+ }
+
+ /* Force the alignment of the decl.
+ NOTE: This is the only change to the code we make during
+ the analysis phase, before deciding to vectorize the loop. */
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "force alignment");
+ DECL_ALIGN (base) = TYPE_ALIGN (vectype);
+ DECL_USER_ALIGN (base) = 1;
+ }
+
+ /* At this point we assume that the base is aligned. */
+ gcc_assert (base_aligned_p
+ || (TREE_CODE (base) == VAR_DECL
+ && DECL_ALIGN (base) >= TYPE_ALIGN (vectype)));
+
+ /* Alignment required, in bytes: */
+ alignment = ssize_int (TYPE_ALIGN (vectype)/BITS_PER_UNIT);
+
+ /* Modulo alignment. */
+ misalign = size_binop (TRUNC_MOD_EXPR, misalign, alignment);
+ if (tree_int_cst_sgn (misalign) < 0)
+ {
+ /* Negative misalignment value. */
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "unexpected misalign value");
+ return false;
+ }
+
+ DR_MISALIGNMENT (dr) = tree_low_cst (misalign, 1);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "misalign = %d bytes", DR_MISALIGNMENT (dr));
+
+ return true;
+}
+
+
+/* Function vect_compute_data_refs_alignment
+
+ Compute the misalignment of data references in the loop.
+ This pass may take place at function granularity instead of at loop
+ granularity.
+
+ FOR NOW: No analysis is actually performed. Misalignment is calculated
+ only for trivial cases. TODO. */
+
+static bool
+vect_compute_data_refs_alignment (loop_vec_info loop_vinfo)
+{
+ varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
+ varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
+ unsigned int i;
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
+ if (!vect_compute_data_ref_alignment (dr))
+ return false;
+ }
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
+ if (!vect_compute_data_ref_alignment (dr))
+ return false;
+ }
+
+ return true;
+}
+
+
+/* Function vect_enhance_data_refs_alignment
+
+ This pass will use loop versioning and loop peeling in order to enhance
+ the alignment of data references in the loop.
+
+ FOR NOW: we assume that whatever versioning/peeling takes place, only the
+ original loop is to be vectorized; Any other loops that are created by
+ the transformations performed in this pass - are not supposed to be
+ vectorized. This restriction will be relaxed. */
+
+static void
+vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo)
+{
+ varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
+ varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
+ unsigned int i;
+
+ /*
+ This pass will require a cost model to guide it whether to apply peeling
+ or versioning or a combination of the two. For example, the scheme that
+ intel uses when given a loop with several memory accesses, is as follows:
+ choose one memory access ('p') which alignment you want to force by doing
+ peeling. Then, either (1) generate a loop in which 'p' is aligned and all
+ other accesses are not necessarily aligned, or (2) use loop versioning to
+ generate one loop in which all accesses are aligned, and another loop in
+ which only 'p' is necessarily aligned.
+
+ ("Automatic Intra-Register Vectorization for the Intel Architecture",
+ Aart J.C. Bik, Milind Girkar, Paul M. Grey and Ximmin Tian, International
+ Journal of Parallel Programming, Vol. 30, No. 2, April 2002.)
+
+ Devising a cost model is the most critical aspect of this work. It will
+ guide us on which access to peel for, whether to use loop versioning, how
+ many versions to create, etc. The cost model will probably consist of
+ generic considerations as well as target specific considerations (on
+ powerpc for example, misaligned stores are more painful than misaligned
+ loads).
+
+ Here is the general steps involved in alignment enhancements:
+
+ -- original loop, before alignment analysis:
+ for (i=0; i<N; i++){
+ x = q[i]; # DR_MISALIGNMENT(q) = unknown
+ p[i] = y; # DR_MISALIGNMENT(p) = unknown
+ }
+
+ -- After vect_compute_data_refs_alignment:
+ for (i=0; i<N; i++){
+ x = q[i]; # DR_MISALIGNMENT(q) = 3
+ p[i] = y; # DR_MISALIGNMENT(p) = unknown
+ }
+
+ -- Possibility 1: we do loop versioning:
+ if (p is aligned) {
+ for (i=0; i<N; i++){ # loop 1A
+ x = q[i]; # DR_MISALIGNMENT(q) = 3
+ p[i] = y; # DR_MISALIGNMENT(p) = 0
+ }
+ }
+ else {
+ for (i=0; i<N; i++){ # loop 1B
+ x = q[i]; # DR_MISALIGNMENT(q) = 3
+ p[i] = y; # DR_MISALIGNMENT(p) = unaligned
+ }
+ }
+
+ -- Possibility 2: we do loop peeling:
+ for (i = 0; i < 3; i++){ # (scalar loop, not to be vectorized).
+ x = q[i];
+ p[i] = y;
+ }
+ for (i = 3; i < N; i++){ # loop 2A
+ x = q[i]; # DR_MISALIGNMENT(q) = 0
+ p[i] = y; # DR_MISALIGNMENT(p) = unknown
+ }
+
+ -- Possibility 3: combination of loop peeling and versioning:
+ for (i = 0; i < 3; i++){ # (scalar loop, not to be vectorized).
+ x = q[i];
+ p[i] = y;
+ }
+ if (p is aligned) {
+ for (i = 3; i<N; i++){ # loop 3A
+ x = q[i]; # DR_MISALIGNMENT(q) = 0
+ p[i] = y; # DR_MISALIGNMENT(p) = 0
+ }
+ }
+ else {
+ for (i = 3; i<N; i++){ # loop 3B
+ x = q[i]; # DR_MISALIGNMENT(q) = 0
+ p[i] = y; # DR_MISALIGNMENT(p) = unaligned
+ }
+ }
+
+ These loops are later passed to loop_transform to be vectorized. The
+ vectorizer will use the alignment information to guide the transformation
+ (whether to generate regular loads/stores, or with special handling for
+ misalignment).
+ */
+
+ /* (1) Peeling to force alignment. */
+
+ /* (1.1) Decide whether to perform peeling, and how many iterations to peel:
+ Considerations:
+ + How many accesses will become aligned due to the peeling
+ - How many accesses will become unaligned due to the peeling,
+ and the cost of misaligned accesses.
+ - The cost of peeling (the extra runtime checks, the increase
+ in code size).
+
+ The scheme we use FORNOW: peel to force the alignment of the first
+ misaligned store in the loop.
+ Rationale: misaligned stores are not yet supported.
+
+ TODO: Use a better cost model. */
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
+ if (!aligned_access_p (dr))
+ {
+ LOOP_VINFO_UNALIGNED_DR (loop_vinfo) = dr;
+ LOOP_DO_PEELING_FOR_ALIGNMENT (loop_vinfo) = true;
+ break;
+ }
+ }
+
+ if (!LOOP_VINFO_UNALIGNED_DR (loop_vinfo))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "Peeling for alignment will not be applied.");
+ return;
+ }
+ else
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "Peeling for alignment will be applied.");
+
+
+ /* (1.2) Update the alignment info according to the peeling factor.
+ If the misalignment of the DR we peel for is M, then the
+ peeling factor is VF - M, and the misalignment of each access DR_i
+ in the loop is DR_MISALIGNMENT (DR_i) + VF - M.
+ If the misalignment of the DR we peel for is unknown, then the
+ misalignment of each access DR_i in the loop is also unknown.
+
+ FORNOW: set the misalignment of the accesses to unknown even
+ if the peeling factor is known at compile time.
+
+ TODO: - if the peeling factor is known at compile time, use that
+ when updating the misalignment info of the loop DRs.
+ - consider accesses that are known to have the same
+ alignment, even if that alignment is unknown. */
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
+ if (dr == LOOP_VINFO_UNALIGNED_DR (loop_vinfo))
+ {
+ DR_MISALIGNMENT (dr) = 0;
+ if (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "Alignment of access forced using peeling.");
+ }
+ else
+ DR_MISALIGNMENT (dr) = -1;
+ }
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
+ if (dr == LOOP_VINFO_UNALIGNED_DR (loop_vinfo))
+ {
+ DR_MISALIGNMENT (dr) = 0;
+ if (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "Alignment of access forced using peeling.");
+ }
+ else
+ DR_MISALIGNMENT (dr) = -1;
+ }
+}
+
+
+/* Function vect_analyze_data_refs_alignment
+
+ Analyze the alignment of the data-references in the loop.
+ FOR NOW: Until support for misliagned accesses is in place, only if all
+ accesses are aligned can the loop be vectorized. This restriction will be
+ relaxed. */
+
+static bool
+vect_analyze_data_refs_alignment (loop_vec_info loop_vinfo)
+{
+ varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
+ varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
+ enum dr_alignment_support supportable_dr_alignment;
+ unsigned int i;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_analyze_data_refs_alignment ===");
+
+
+ /* This pass may take place at function granularity instead of at loop
+ granularity. */
+
+ if (!vect_compute_data_refs_alignment (loop_vinfo))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump,
+ "not vectorized: can't calculate alignment for data ref.");
+ return false;
+ }
+
+
+ /* This pass will decide on using loop versioning and/or loop peeling in
+ order to enhance the alignment of data references in the loop. */
+
+ vect_enhance_data_refs_alignment (loop_vinfo);
+
+
+ /* Finally, check that all the data references in the loop can be
+ handled with respect to their alignment. */
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
+ supportable_dr_alignment = vect_supportable_dr_alignment (dr);
+ if (!supportable_dr_alignment)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported unaligned load.");
+ return false;
+ }
+ if (supportable_dr_alignment != dr_aligned
+ && (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo))))
+ fprintf (vect_dump, "Vectorizing an unaligned access.");
+ }
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
+ supportable_dr_alignment = vect_supportable_dr_alignment (dr);
+ if (!supportable_dr_alignment)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported unaligned store.");
+ return false;
+ }
+ if (supportable_dr_alignment != dr_aligned
+ && (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo))))
+ fprintf (vect_dump, "Vectorizing an unaligned access.");
+ }
+
+ return true;
+}
+
+
+/* Function vect_analyze_data_ref_access.
+
+ Analyze the access pattern of the data-reference DR. For now, a data access
+ has to consecutive to be considered vectorizable. */
+
+static bool
+vect_analyze_data_ref_access (struct data_reference *dr)
+{
+ tree stmt = DR_STMT (dr);
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ tree step = STMT_VINFO_VECT_STEP (stmt_info);
+ tree scalar_type = TREE_TYPE (DR_REF (dr));
+
+ if (!step || tree_int_cst_compare (step, TYPE_SIZE_UNIT (scalar_type)))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "not consecutive access");
+ return false;
+ }
+ return true;
+}
+
+
+/* Function vect_analyze_data_ref_accesses.
+
+ Analyze the access pattern of all the data references in the loop.
+
+ FORNOW: the only access pattern that is considered vectorizable is a
+ simple step 1 (consecutive) access.
+
+ FORNOW: handle only arrays and pointer accesses. */
+
+static bool
+vect_analyze_data_ref_accesses (loop_vec_info loop_vinfo)
+{
+ unsigned int i;
+ varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
+ varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_analyze_data_ref_accesses ===");
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
+ bool ok = vect_analyze_data_ref_access (dr);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: complicated access pattern.");
+ return false;
+ }
+ }
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
+ bool ok = vect_analyze_data_ref_access (dr);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: complicated access pattern.");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+/* Function vect_analyze_pointer_ref_access.
+
+ Input:
+ STMT - a stmt that contains a data-ref.
+ MEMREF - a data-ref in STMT, which is an INDIRECT_REF.
+ ACCESS_FN - the access function of MEMREF.
+
+ Output:
+ If the data-ref access is vectorizable, return a data_reference structure
+ that represents it (DR). Otherwise - return NULL.
+ STEP - the stride of MEMREF in the loop.
+ INIT - the initial condition of MEMREF in the loop.
+*/
+
+/* APPLE LOCAL loops-to-memset */
+struct data_reference *
+vect_analyze_pointer_ref_access (tree memref, tree stmt, bool is_read,
+ tree access_fn, tree *ptr_init, tree *ptr_step)
+{
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree step, init;
+ tree reftype, innertype;
+ tree indx_access_fn;
+ int loopnum = loop->num;
+ struct data_reference *dr;
+
+ if (!vect_is_simple_iv_evolution (loopnum, access_fn, &init, &step))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: pointer access is not simple.");
+ return NULL;
+ }
+
+ STRIP_NOPS (init);
+
+ if (!expr_invariant_in_loop_p (loop, init))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump,
+ "not vectorized: initial condition is not loop invariant.");
+ return NULL;
+ }
+
+ if (TREE_CODE (step) != INTEGER_CST)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump,
+ "not vectorized: non constant step for pointer access.");
+ return NULL;
+ }
+
+ reftype = TREE_TYPE (TREE_OPERAND (memref, 0));
+ if (!POINTER_TYPE_P (reftype))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unexpected pointer access form.");
+ return NULL;
+ }
+
+ if (!POINTER_TYPE_P (TREE_TYPE (init)))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unexpected pointer access form.");
+ return NULL;
+ }
+
+ *ptr_step = fold_convert (ssizetype, step);
+ innertype = TREE_TYPE (reftype);
+
+ if (!COMPLETE_TYPE_P (innertype))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: pointer to incomplete type.");
+ return NULL;
+ }
+ /* Check that STEP is a multiple of type size. */
+ if (!integer_zerop (size_binop (TRUNC_MOD_EXPR, *ptr_step,
+ fold_convert (ssizetype, TYPE_SIZE_UNIT (innertype)))))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: non consecutive access.");
+ return NULL;
+ }
+
+ indx_access_fn =
+ build_polynomial_chrec (loopnum, integer_zero_node, integer_one_node);
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Access function of ptr indx: ");
+ print_generic_expr (vect_dump, indx_access_fn, TDF_SLIM);
+ }
+ dr = init_data_ref (stmt, memref, NULL_TREE, indx_access_fn, is_read);
+ *ptr_init = init;
+ return dr;
+}
+
+
+/* Function vect_address_analysis
+
+ Return the BASE of the address expression EXPR.
+ Also compute the INITIAL_OFFSET from BASE, MISALIGN and STEP.
+
+ Input:
+ EXPR - the address expression that is being analyzed
+ STMT - the statement that contains EXPR or its original memory reference
+ IS_READ - TRUE if STMT reads from EXPR, FALSE if writes to EXPR
+ VECTYPE - the type that defines the alignment (i.e, we compute
+ alignment relative to TYPE_ALIGN(VECTYPE))
+ DR - data_reference struct for the original memory reference
+
+ Output:
+ BASE (returned value) - the base of the data reference EXPR.
+ INITIAL_OFFSET - initial offset of EXPR from BASE (an expression)
+ MISALIGN - offset of EXPR from BASE in bytes (a constant) or NULL_TREE if the
+ computation is impossible
+ STEP - evolution of EXPR in the loop
+ BASE_ALIGNED - indicates if BASE is aligned
+
+ If something unexpected is encountered (an unsupported form of data-ref),
+ then NULL_TREE is returned.
+ */
+
+static tree
+vect_address_analysis (tree expr, tree stmt, bool is_read, tree vectype,
+ struct data_reference *dr, tree *offset, tree *misalign,
+ tree *step, bool *base_aligned)
+{
+ tree oprnd0, oprnd1, base_address, offset_expr, base_addr0, base_addr1;
+ tree address_offset = ssize_int (0), address_misalign = ssize_int (0);
+ tree dummy;
+
+ switch (TREE_CODE (expr))
+ {
+ case PLUS_EXPR:
+ case MINUS_EXPR:
+ /* EXPR is of form {base +/- offset} (or {offset +/- base}). */
+ oprnd0 = TREE_OPERAND (expr, 0);
+ oprnd1 = TREE_OPERAND (expr, 1);
+
+ STRIP_NOPS (oprnd0);
+ STRIP_NOPS (oprnd1);
+
+ /* Recursively try to find the base of the address contained in EXPR.
+ For offset, the returned base will be NULL. */
+ base_addr0 = vect_address_analysis (oprnd0, stmt, is_read, vectype, dr,
+ &address_offset, &address_misalign, step,
+ base_aligned);
+
+ base_addr1 = vect_address_analysis (oprnd1, stmt, is_read, vectype, dr,
+ &address_offset, &address_misalign, step,
+ base_aligned);
+
+ /* We support cases where only one of the operands contains an
+ address. */
+ if ((base_addr0 && base_addr1) || (!base_addr0 && !base_addr1))
+ return NULL_TREE;
+
+ /* To revert STRIP_NOPS. */
+ oprnd0 = TREE_OPERAND (expr, 0);
+ oprnd1 = TREE_OPERAND (expr, 1);
+
+ offset_expr = base_addr0 ?
+ fold_convert (ssizetype, oprnd1) : fold_convert (ssizetype, oprnd0);
+
+ /* EXPR is of form {base +/- offset} (or {offset +/- base}). If offset is
+ a number, we can add it to the misalignment value calculated for base,
+ otherwise, misalignment is NULL. */
+ if (TREE_CODE (offset_expr) == INTEGER_CST && address_misalign)
+ *misalign = size_binop (TREE_CODE (expr), address_misalign,
+ offset_expr);
+ else
+ *misalign = NULL_TREE;
+
+ /* Combine offset (from EXPR {base + offset}) with the offset calculated
+ for base. */
+ *offset = size_binop (TREE_CODE (expr), address_offset, offset_expr);
+ return base_addr0 ? base_addr0 : base_addr1;
+
+ case ADDR_EXPR:
+ base_address = vect_object_analysis (TREE_OPERAND (expr, 0), stmt, is_read,
+ vectype, &dr, offset, misalign, step,
+ base_aligned, &dummy);
+ return base_address;
+
+ case SSA_NAME:
+ if (!POINTER_TYPE_P (TREE_TYPE (expr)))
+ return NULL_TREE;
+
+ if (TYPE_ALIGN (TREE_TYPE (TREE_TYPE (expr))) < TYPE_ALIGN (vectype))
+ {
+ if (vect_get_ptr_offset (expr, vectype, misalign))
+ *base_aligned = true;
+ else
+ *base_aligned = false;
+ }
+ else
+ {
+ *base_aligned = true;
+ *misalign = ssize_int (0);
+ }
+ *offset = ssize_int (0);
+ *step = ssize_int (0);
+ return expr;
+
+ default:
+ return NULL_TREE;
+ }
+}
+
+
+/* Function vect_object_analysis
+
+ Return the BASE of the data reference MEMREF.
+ Also compute the INITIAL_OFFSET from BASE, MISALIGN and STEP.
+ E.g., for EXPR a.b[i] + 4B, BASE is a, and OFFSET is the overall offset
+ 'a.b[i] + 4B' from a (can be an expression), MISALIGN is an OFFSET
+ instantiated with initial_conditions of access_functions of variables,
+ modulo alignment, and STEP is the evolution of the DR_REF in this loop.
+
+ Function get_inner_reference is used for the above in case of ARRAY_REF and
+ COMPONENT_REF.
+
+ The structure of the function is as follows:
+ Part 1:
+ Case 1. For handled_component_p refs
+ 1.1 call get_inner_reference
+ 1.1.1 analyze offset expr received from get_inner_reference
+ 1.2. build data-reference structure for MEMREF
+ (fall through with BASE)
+ Case 2. For declarations
+ 2.1 check alignment
+ 2.2 update DR_BASE_NAME if necessary for alias
+ Case 3. For INDIRECT_REFs
+ 3.1 get the access function
+ 3.2 analyze evolution of MEMREF
+ 3.3 set data-reference structure for MEMREF
+ 3.4 call vect_address_analysis to analyze INIT of the access function
+
+ Part 2:
+ Combine the results of object and address analysis to calculate
+ INITIAL_OFFSET, STEP and misalignment info.
+
+ Input:
+ MEMREF - the memory reference that is being analyzed
+ STMT - the statement that contains MEMREF
+ IS_READ - TRUE if STMT reads from MEMREF, FALSE if writes to MEMREF
+ VECTYPE - the type that defines the alignment (i.e, we compute
+ alignment relative to TYPE_ALIGN(VECTYPE))
+
+ Output:
+ BASE_ADDRESS (returned value) - the base address of the data reference MEMREF
+ E.g, if MEMREF is a.b[k].c[i][j] the returned
+ base is &a.
+ DR - data_reference struct for MEMREF
+ INITIAL_OFFSET - initial offset of MEMREF from BASE (an expression)
+ MISALIGN - offset of MEMREF from BASE in bytes (a constant) or NULL_TREE if
+ the computation is impossible
+ STEP - evolution of the DR_REF in the loop
+ BASE_ALIGNED - indicates if BASE is aligned
+ MEMTAG - memory tag for aliasing purposes
+
+ If something unexpected is encountered (an unsupported form of data-ref),
+ then NULL_TREE is returned. */
+
+static tree
+vect_object_analysis (tree memref, tree stmt, bool is_read,
+ tree vectype, struct data_reference **dr,
+ tree *offset, tree *misalign, tree *step,
+ bool *base_aligned, tree *memtag)
+{
+ tree base = NULL_TREE, base_address = NULL_TREE;
+ tree object_offset = ssize_int (0), object_misalign = ssize_int (0);
+ tree object_step = ssize_int (0), address_step = ssize_int (0);
+ bool object_base_aligned = true, address_base_aligned = true;
+ tree address_offset = ssize_int (0), address_misalign = ssize_int (0);
+ HOST_WIDE_INT pbitsize, pbitpos;
+ tree poffset, bit_pos_in_bytes;
+ enum machine_mode pmode;
+ int punsignedp, pvolatilep;
+ tree ptr_step = ssize_int (0), ptr_init = NULL_TREE;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ struct data_reference *ptr_dr = NULL;
+ tree access_fn, evolution_part, address_to_analyze;
+
+ /* Part 1: */
+ /* Case 1. handled_component_p refs. */
+ if (handled_component_p (memref))
+ {
+ /* 1.1 call get_inner_reference. */
+ /* Find the base and the offset from it. */
+ base = get_inner_reference (memref, &pbitsize, &pbitpos, &poffset,
+ &pmode, &punsignedp, &pvolatilep, false);
+ if (!base)
+ return NULL_TREE;
+
+ /* 1.1.1 analyze offset expr received from get_inner_reference. */
+ if (poffset
+ && !vect_analyze_offset_expr (poffset, loop, TYPE_SIZE_UNIT (vectype),
+ &object_offset, &object_misalign, &object_step))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "failed to compute offset or step for ");
+ print_generic_expr (vect_dump, memref, TDF_SLIM);
+ }
+ return NULL_TREE;
+ }
+
+ /* Add bit position to OFFSET and MISALIGN. */
+
+ bit_pos_in_bytes = ssize_int (pbitpos/BITS_PER_UNIT);
+ /* Check that there is no remainder in bits. */
+ if (pbitpos%BITS_PER_UNIT)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "bit offset alignment.");
+ return NULL_TREE;
+ }
+ object_offset = size_binop (PLUS_EXPR, bit_pos_in_bytes, object_offset);
+ if (object_misalign)
+ object_misalign = size_binop (PLUS_EXPR, object_misalign,
+ bit_pos_in_bytes);
+
+ /* Create data-reference for MEMREF. TODO: handle COMPONENT_REFs. */
+ if (!(*dr))
+ {
+ if (TREE_CODE (memref) == ARRAY_REF)
+ *dr = analyze_array (stmt, memref, is_read);
+ else
+ /* FORNOW. */
+ return NULL_TREE;
+ }
+ memref = base; /* To continue analysis of BASE. */
+ /* fall through */
+ }
+
+ /* Part 1: Case 2. Declarations. */
+ if (DECL_P (memref))
+ {
+ /* We expect to get a decl only if we already have a DR. */
+ if (!(*dr))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "unhandled decl ");
+ print_generic_expr (vect_dump, memref, TDF_SLIM);
+ }
+ return NULL_TREE;
+ }
+
+ /* 2.1 check the alignment. */
+ if (DECL_ALIGN (memref) >= TYPE_ALIGN (vectype))
+ object_base_aligned = true;
+ else
+ object_base_aligned = false;
+
+ /* 2.2 update DR_BASE_NAME if necessary. */
+ if (!DR_BASE_NAME ((*dr)))
+ /* For alias analysis. In case the analysis of INDIRECT_REF brought
+ us to object. */
+ DR_BASE_NAME ((*dr)) = memref;
+
+ base_address = build_fold_addr_expr (memref);
+ *memtag = memref;
+ }
+
+ /* Part 1: Case 3. INDIRECT_REFs. */
+ else if (TREE_CODE (memref) == INDIRECT_REF)
+ {
+ /* 3.1 get the access function. */
+ access_fn = analyze_scalar_evolution (loop, TREE_OPERAND (memref, 0));
+ if (!access_fn)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: complicated pointer access.");
+ return NULL_TREE;
+ }
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Access function of ptr: ");
+ print_generic_expr (vect_dump, access_fn, TDF_SLIM);
+ }
+
+ /* 3.2 analyze evolution of MEMREF. */
+ evolution_part = evolution_part_in_loop_num (access_fn, loop->num);
+ if (evolution_part)
+ {
+ ptr_dr = vect_analyze_pointer_ref_access (memref, stmt, is_read,
+ access_fn, &ptr_init, &ptr_step);
+ if (!(ptr_dr))
+ return NULL_TREE;
+
+ object_step = size_binop (PLUS_EXPR, object_step, ptr_step);
+ address_to_analyze = ptr_init;
+ }
+ else
+ {
+ if (!(*dr))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: ptr is loop invariant.");
+ return NULL_TREE;
+ }
+ /* Since there exists DR for MEMREF, we are analyzing the init of
+ the access function, which not necessary has evolution in the
+ loop. */
+ address_to_analyze = initial_condition_in_loop_num (access_fn,
+ loop->num);
+ }
+
+ /* 3.3 set data-reference structure for MEMREF. */
+ *dr = (*dr) ? *dr : ptr_dr;
+
+ /* 3.4 call vect_address_analysis to analyze INIT of the access
+ function. */
+ base_address = vect_address_analysis (address_to_analyze, stmt, is_read,
+ vectype, *dr, &address_offset, &address_misalign,
+ &address_step, &address_base_aligned);
+ if (!base_address)
+ return NULL_TREE;
+
+ switch (TREE_CODE (base_address))
+ {
+ case SSA_NAME:
+ *memtag = get_var_ann (SSA_NAME_VAR (base_address))->type_mem_tag;
+ if (!(*memtag) && TREE_CODE (TREE_OPERAND (memref, 0)) == SSA_NAME)
+ *memtag = get_var_ann (
+ SSA_NAME_VAR (TREE_OPERAND (memref, 0)))->type_mem_tag;
+ break;
+ case ADDR_EXPR:
+ *memtag = TREE_OPERAND (base_address, 0);
+ break;
+ default:
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump, "not vectorized: no memtag ref: ");
+ print_generic_expr (vect_dump, memref, TDF_SLIM);
+ }
+ return NULL_TREE;
+ }
+ }
+
+ if (!base_address)
+ /* MEMREF cannot be analyzed. */
+ return NULL_TREE;
+
+ /* Part 2: Combine the results of object and address analysis to calculate
+ INITIAL_OFFSET, STEP and misalignment info. */
+ *offset = size_binop (PLUS_EXPR, object_offset, address_offset);
+ if (object_misalign && address_misalign)
+ *misalign = size_binop (PLUS_EXPR, object_misalign, address_misalign);
+ else
+ *misalign = NULL_TREE;
+ *step = size_binop (PLUS_EXPR, object_step, address_step);
+ *base_aligned = object_base_aligned && address_base_aligned;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Results of object analysis for: ");
+ print_generic_expr (vect_dump, memref, TDF_SLIM);
+ fprintf (vect_dump, "\n\tbase_address: ");
+ print_generic_expr (vect_dump, base_address, TDF_SLIM);
+ fprintf (vect_dump, "\n\toffset: ");
+ print_generic_expr (vect_dump, *offset, TDF_SLIM);
+ fprintf (vect_dump, "\n\tstep: ");
+ print_generic_expr (vect_dump, *step, TDF_SLIM);
+ fprintf (vect_dump, "\n\tbase aligned %d\n\tmisalign: ", *base_aligned);
+ print_generic_expr (vect_dump, *misalign, TDF_SLIM);
+ }
+ return base_address;
+}
+
+
+/* Function vect_analyze_data_refs.
+
+ Find all the data references in the loop.
+
+ The general structure of the analysis of data refs in the vectorizer is as
+ follows:
+ 1- vect_analyze_data_refs(loop):
+ Find and analyze all data-refs in the loop:
+ foreach ref
+ base_address = vect_object_analysis(ref)
+ 1.1- vect_object_analysis(ref):
+ Analyze ref, and build a DR (data_referece struct) for it;
+ compute base, initial_offset, step and alignment.
+ Call get_inner_reference for refs handled in this function.
+ Call vect_addr_analysis(addr) to analyze pointer type expressions.
+ Set ref_stmt.base, ref_stmt.initial_offset, ref_stmt.alignment,
+ ref_stmt.memtag and ref_stmt.step accordingly.
+ 2- vect_analyze_dependences(): apply dependence testing using ref_stmt.DR
+ 3- vect_analyze_drs_alignment(): check that ref_stmt.alignment is ok.
+ 4- vect_analyze_drs_access(): check that ref_stmt.step is ok.
+
+ FORNOW: Handle aligned INDIRECT_REFs and ARRAY_REFs
+ which base is really an array (not a pointer) and which alignment
+ can be forced. This restriction will be relaxed. */
+
+static bool
+vect_analyze_data_refs (loop_vec_info loop_vinfo)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ int nbbs = loop->num_nodes;
+ block_stmt_iterator si;
+ int j;
+ struct data_reference *dr;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_analyze_data_refs ===");
+
+ for (j = 0; j < nbbs; j++)
+ {
+ basic_block bb = bbs[j];
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ bool is_read = false;
+ tree stmt = bsi_stmt (si);
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ v_may_def_optype v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
+ v_must_def_optype v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
+ vuse_optype vuses = STMT_VUSE_OPS (stmt);
+ varray_type *datarefs = NULL;
+ int nvuses, nv_may_defs, nv_must_defs;
+ tree memref = NULL;
+ tree scalar_type, vectype;
+ tree base, offset, misalign, step, tag;
+ bool base_aligned;
+
+ /* Assumption: there exists a data-ref in stmt, if and only if
+ it has vuses/vdefs. */
+
+ if (!vuses && !v_may_defs && !v_must_defs)
+ continue;
+
+ nvuses = NUM_VUSES (vuses);
+ nv_may_defs = NUM_V_MAY_DEFS (v_may_defs);
+ nv_must_defs = NUM_V_MUST_DEFS (v_must_defs);
+
+ if (nvuses && (nv_may_defs || nv_must_defs))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "unexpected vdefs and vuses in stmt: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "unexpected vops in stmt: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+
+ if (vuses)
+ {
+ memref = TREE_OPERAND (stmt, 1);
+ datarefs = &(LOOP_VINFO_DATAREF_READS (loop_vinfo));
+ is_read = true;
+ }
+ else /* vdefs */
+ {
+ memref = TREE_OPERAND (stmt, 0);
+ datarefs = &(LOOP_VINFO_DATAREF_WRITES (loop_vinfo));
+ is_read = false;
+ }
+
+ scalar_type = TREE_TYPE (memref);
+ vectype = get_vectype_for_scalar_type (scalar_type);
+ if (!vectype)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "no vectype for stmt: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ fprintf (vect_dump, " scalar_type: ");
+ print_generic_expr (vect_dump, scalar_type, TDF_DETAILS);
+ }
+ /* It is not possible to vectorize this data reference. */
+ return false;
+ }
+ /* Analyze MEMREF. If it is of a supported form, build data_reference
+ struct for it (DR). */
+ dr = NULL;
+ base = vect_object_analysis (memref, stmt, is_read, vectype, &dr,
+ &offset, &misalign, &step,
+ &base_aligned, &tag);
+ if (!base)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ {
+ fprintf (vect_dump, "not vectorized: unhandled data ref: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ return false;
+ }
+ STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info) = base;
+ STMT_VINFO_VECT_INIT_OFFSET (stmt_info) = offset;
+ STMT_VINFO_VECT_STEP (stmt_info) = step;
+ STMT_VINFO_VECT_MISALIGNMENT (stmt_info) = misalign;
+ STMT_VINFO_VECT_BASE_ALIGNED_P (stmt_info) = base_aligned;
+ STMT_VINFO_MEMTAG (stmt_info) = tag;
+ STMT_VINFO_VECTYPE (stmt_info) = vectype;
+ VARRAY_PUSH_GENERIC_PTR (*datarefs, dr);
+ STMT_VINFO_DATA_REF (stmt_info) = dr;
+ }
+ }
+
+ return true;
+}
+
+
+/* Utility functions used by vect_mark_stmts_to_be_vectorized. */
+
+/* Function vect_mark_relevant.
+
+ Mark STMT as "relevant for vectorization" and add it to WORKLIST. */
+
+static void
+vect_mark_relevant (varray_type *worklist, tree stmt)
+{
+ stmt_vec_info stmt_info;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "mark relevant.");
+
+ if (TREE_CODE (stmt) == PHI_NODE)
+ {
+ VARRAY_PUSH_TREE (*worklist, stmt);
+ return;
+ }
+
+ stmt_info = vinfo_for_stmt (stmt);
+
+ if (!stmt_info)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "mark relevant: no stmt info!!.");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ return;
+ }
+
+ if (STMT_VINFO_RELEVANT_P (stmt_info))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "already marked relevant.");
+ return;
+ }
+
+ STMT_VINFO_RELEVANT_P (stmt_info) = 1;
+ VARRAY_PUSH_TREE (*worklist, stmt);
+}
+
+
+/* Function vect_stmt_relevant_p.
+
+ Return true if STMT in loop that is represented by LOOP_VINFO is
+ "relevant for vectorization".
+
+ A stmt is considered "relevant for vectorization" if:
+ - it has uses outside the loop.
+ - it has vdefs (it alters memory).
+ - control stmts in the loop (except for the exit condition).
+
+ CHECKME: what other side effects would the vectorizer allow? */
+
+static bool
+vect_stmt_relevant_p (tree stmt, loop_vec_info loop_vinfo)
+{
+ v_may_def_optype v_may_defs;
+ v_must_def_optype v_must_defs;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ int i;
+ dataflow_t df;
+ int num_uses;
+
+ /* cond stmt other than loop exit cond. */
+ if (is_ctrl_stmt (stmt) && (stmt != LOOP_VINFO_EXIT_COND (loop_vinfo)))
+ return true;
+
+ /* changing memory. */
+ if (TREE_CODE (stmt) != PHI_NODE)
+ {
+ v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
+ v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
+ if (v_may_defs || v_must_defs)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "vec_stmt_relevant_p: stmt has vdefs.");
+ return true;
+ }
+ }
+
+ /* uses outside the loop. */
+ df = get_immediate_uses (stmt);
+ num_uses = num_immediate_uses (df);
+ for (i = 0; i < num_uses; i++)
+ {
+ tree use = immediate_use (df, i);
+ basic_block bb = bb_for_stmt (use);
+ if (!flow_bb_inside_loop_p (loop, bb))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "vec_stmt_relevant_p: used out of loop.");
+ return true;
+ }
+ }
+
+ return false;
+}
+
+
+/* Function vect_mark_stmts_to_be_vectorized.
+
+ Not all stmts in the loop need to be vectorized. For example:
+
+ for i...
+ for j...
+ 1. T0 = i + j
+ 2. T1 = a[T0]
+
+ 3. j = j + 1
+
+ Stmt 1 and 3 do not need to be vectorized, because loop control and
+ addressing of vectorized data-refs are handled differently.
+
+ This pass detects such stmts. */
+
+static bool
+vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
+{
+ varray_type worklist;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ unsigned int nbbs = loop->num_nodes;
+ block_stmt_iterator si;
+ tree stmt;
+ stmt_ann_t ann;
+ unsigned int i;
+ int j;
+ use_optype use_ops;
+ stmt_vec_info stmt_info;
+ basic_block bb;
+ tree phi;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_mark_stmts_to_be_vectorized ===");
+
+ bb = loop->header;
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "init: phi relevant? ");
+ print_generic_expr (vect_dump, phi, TDF_SLIM);
+ }
+
+ if (vect_stmt_relevant_p (phi, loop_vinfo))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "unsupported reduction/induction.");
+ return false;
+ }
+ }
+
+ VARRAY_TREE_INIT (worklist, 64, "work list");
+
+ /* 1. Init worklist. */
+
+ for (i = 0; i < nbbs; i++)
+ {
+ bb = bbs[i];
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ stmt = bsi_stmt (si);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "init: stmt relevant? ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+
+ stmt_info = vinfo_for_stmt (stmt);
+ STMT_VINFO_RELEVANT_P (stmt_info) = 0;
+
+ if (vect_stmt_relevant_p (stmt, loop_vinfo))
+ vect_mark_relevant (&worklist, stmt);
+ }
+ }
+
+
+ /* 2. Process_worklist */
+
+ while (VARRAY_ACTIVE_SIZE (worklist) > 0)
+ {
+ stmt = VARRAY_TOP_TREE (worklist);
+ VARRAY_POP (worklist);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "worklist: examine stmt: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+
+ /* Examine the USES in this statement. Mark all the statements which
+ feed this statement's uses as "relevant", unless the USE is used as
+ an array index. */
+
+ if (TREE_CODE (stmt) == PHI_NODE)
+ {
+ /* follow the def-use chain inside the loop. */
+ for (j = 0; j < PHI_NUM_ARGS (stmt); j++)
+ {
+ tree arg = PHI_ARG_DEF (stmt, j);
+ tree def_stmt = NULL_TREE;
+ basic_block bb;
+ if (!vect_is_simple_use (arg, loop_vinfo, &def_stmt))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported use in stmt.");
+ varray_clear (worklist);
+ return false;
+ }
+ if (!def_stmt)
+ continue;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "worklist: def_stmt: ");
+ print_generic_expr (vect_dump, def_stmt, TDF_SLIM);
+ }
+
+ bb = bb_for_stmt (def_stmt);
+ if (flow_bb_inside_loop_p (loop, bb))
+ vect_mark_relevant (&worklist, def_stmt);
+ }
+ }
+
+ ann = stmt_ann (stmt);
+ use_ops = USE_OPS (ann);
+
+ for (i = 0; i < NUM_USES (use_ops); i++)
+ {
+ tree use = USE_OP (use_ops, i);
+
+ /* We are only interested in uses that need to be vectorized. Uses
+ that are used for address computation are not considered relevant.
+ */
+ if (exist_non_indexing_operands_for_use_p (use, stmt))
+ {
+ tree def_stmt = NULL_TREE;
+ basic_block bb;
+ if (!vect_is_simple_use (use, loop_vinfo, &def_stmt))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
+ LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "not vectorized: unsupported use in stmt.");
+ varray_clear (worklist);
+ return false;
+ }
+
+ if (!def_stmt)
+ continue;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "worklist: examine use %d: ", i);
+ print_generic_expr (vect_dump, use, TDF_SLIM);
+ }
+
+ bb = bb_for_stmt (def_stmt);
+ if (flow_bb_inside_loop_p (loop, bb))
+ vect_mark_relevant (&worklist, def_stmt);
+ }
+ }
+ } /* while worklist */
+
+ varray_clear (worklist);
+ return true;
+}
+
+
+/* Function vect_can_advance_ivs_p
+
+ In case the number of iterations that LOOP iterates in unknown at compile
+ time, an epilog loop will be generated, and the loop induction variables
+ (IVs) will be "advanced" to the value they are supposed to take just before
+ the epilog loop. Here we check that the access function of the loop IVs
+ and the expression that represents the loop bound are simple enough.
+ These restrictions will be relaxed in the future. */
+
+static bool
+vect_can_advance_ivs_p (loop_vec_info loop_vinfo)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block bb = loop->header;
+ tree phi;
+
+ /* Analyze phi functions of the loop header. */
+
+ for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
+ {
+ tree access_fn = NULL;
+ tree evolution_part;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Analyze phi: ");
+ print_generic_expr (vect_dump, phi, TDF_SLIM);
+ }
+
+ /* Skip virtual phi's. The data dependences that are associated with
+ virtual defs/uses (i.e., memory accesses) are analyzed elsewhere. */
+
+ if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "virtual phi. skip.");
+ continue;
+ }
+
+ /* Analyze the evolution function. */
+
+ access_fn = instantiate_parameters
+ (loop, analyze_scalar_evolution (loop, PHI_RESULT (phi)));
+
+ if (!access_fn)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "No Access function.");
+ return false;
+ }
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "Access function of PHI: ");
+ print_generic_expr (vect_dump, access_fn, TDF_SLIM);
+ }
+
+ evolution_part = evolution_part_in_loop_num (access_fn, loop->num);
+
+ if (evolution_part == NULL_TREE)
+ return false;
+
+ /* FORNOW: We do not transform initial conditions of IVs
+ which evolution functions are a polynomial of degree >= 2. */
+
+ if (tree_is_chrec (evolution_part))
+ return false;
+ }
+
+ return true;
+}
+
+
+/* Function vect_get_loop_niters.
+
+ Determine how many iterations the loop is executed.
+ If an expression that represents the number of iterations
+ can be constructed, place it in NUMBER_OF_ITERATIONS.
+ Return the loop exit condition. */
+
+/* APPLE LOCAL loops-to-memset */
+tree
+vect_get_loop_niters (struct loop *loop, tree *number_of_iterations)
+{
+ tree niters;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== get_loop_niters ===");
+
+ niters = number_of_iterations_in_loop (loop);
+
+ if (niters != NULL_TREE
+ && niters != chrec_dont_know)
+ {
+ *number_of_iterations = niters;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "==> get_loop_niters:" );
+ print_generic_expr (vect_dump, *number_of_iterations, TDF_SLIM);
+ }
+ }
+
+ return get_loop_exit_condition (loop);
+}
+
+
+/* Function vect_analyze_loop_form.
+
+ Verify the following restrictions (some may be relaxed in the future):
+ - it's an inner-most loop
+ - number of BBs = 2 (which are the loop header and the latch)
+ - the loop has a pre-header
+ - the loop has a single entry and exit
+ - the loop exit condition is simple enough, and the number of iterations
+ can be analyzed (a countable loop). */
+
+static loop_vec_info
+vect_analyze_loop_form (struct loop *loop)
+{
+ loop_vec_info loop_vinfo;
+ tree loop_cond;
+ tree number_of_iterations = NULL;
+ bool rescan = false;
+ LOC loop_loc;
+
+ loop_loc = find_loop_location (loop);
+
+ if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
+ fprintf (vect_dump, "=== vect_analyze_loop_form ===");
+
+ if (loop->inner)
+ {
+ if (vect_print_dump_info (REPORT_OUTER_LOOPS, loop_loc))
+ fprintf (vect_dump, "not vectorized: nested loop.");
+ return NULL;
+ }
+
+ if (!loop->single_exit
+ || loop->num_nodes != 2
+ || EDGE_COUNT (loop->header->preds) != 2
+ || loop->num_entries != 1)
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ {
+ if (!loop->single_exit)
+ fprintf (vect_dump, "not vectorized: multiple exits.");
+ else if (loop->num_nodes != 2)
+ fprintf (vect_dump, "not vectorized: too many BBs in loop.");
+ else if (EDGE_COUNT (loop->header->preds) != 2)
+ fprintf (vect_dump, "not vectorized: too many incoming edges.");
+ else if (loop->num_entries != 1)
+ fprintf (vect_dump, "not vectorized: too many entries.");
+ }
+
+ return NULL;
+ }
+
+ /* We assume that the loop exit condition is at the end of the loop. i.e,
+ that the loop is represented as a do-while (with a proper if-guard
+ before the loop if needed), where the loop header contains all the
+ executable statements, and the latch is empty. */
+ if (!empty_block_p (loop->latch))
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ fprintf (vect_dump, "not vectorized: unexpectd loop form.");
+ return NULL;
+ }
+
+ /* Make sure we have a preheader basic block. */
+ if (!loop->pre_header || EDGE_COUNT (loop->pre_header->succs) != 1)
+ {
+ edge e = loop_preheader_edge (loop);
+ loop_split_edge_with (e, NULL);
+ if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
+ fprintf (vect_dump, "split preheader edge.");
+ rescan = true;
+ }
+
+ /* Make sure there exists a single-predecessor exit bb: */
+ if (EDGE_COUNT (loop->single_exit->dest->preds) != 1)
+ {
+ edge e = loop->single_exit;
+ if (!(e->flags & EDGE_ABNORMAL))
+ {
+ loop_split_edge_with (e, NULL);
+ if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
+ fprintf (vect_dump, "split exit edge.");
+ rescan = true;
+ }
+ else
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ fprintf (vect_dump, "not vectorized: abnormal loop exit edge.");
+ return NULL;
+ }
+ }
+
+ if (rescan)
+ {
+ flow_loop_scan (loop, LOOP_ALL);
+ /* Flow loop scan does not update loop->single_exit field. */
+ loop->single_exit = loop->exit_edges[0];
+ }
+
+ if (empty_block_p (loop->header))
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ fprintf (vect_dump, "not vectorized: empty loop.");
+ return NULL;
+ }
+
+ loop_cond = vect_get_loop_niters (loop, &number_of_iterations);
+ if (!loop_cond)
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ fprintf (vect_dump, "not vectorized: complicated exit condition.");
+ return NULL;
+ }
+
+ if (!number_of_iterations)
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ fprintf (vect_dump,
+ "not vectorized: number of iterations cannot be computed.");
+ return NULL;
+ }
+
+ if (chrec_contains_undetermined (number_of_iterations))
+ {
+ if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
+ fprintf (vect_dump, "Infinite number of iterations.");
+ return false;
+ }
+
+ loop_vinfo = new_loop_vec_info (loop);
+ LOOP_VINFO_NITERS (loop_vinfo) = number_of_iterations;
+
+ if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
+ {
+ fprintf (vect_dump, "Symbolic number of iterations is ");
+ print_generic_expr (vect_dump, number_of_iterations, TDF_DETAILS);
+ }
+ }
+ else
+ if (LOOP_VINFO_INT_NITERS (loop_vinfo) == 0)
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, loop_loc))
+ fprintf (vect_dump, "not vectorized: number of iterations = 0.");
+ return NULL;
+ }
+
+ LOOP_VINFO_EXIT_COND (loop_vinfo) = loop_cond;
+ LOOP_VINFO_LOC (loop_vinfo) = loop_loc;
+
+ return loop_vinfo;
+}
+
+
+/* Function vect_analyze_loop.
+
+ Apply a set of analyses on LOOP, and create a loop_vec_info struct
+ for it. The different analyses will record information in the
+ loop_vec_info struct. */
+loop_vec_info
+vect_analyze_loop (struct loop *loop)
+{
+ bool ok;
+ loop_vec_info loop_vinfo;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "===== analyze_loop_nest =====");
+
+ /* Check the CFG characteristics of the loop (nesting, entry/exit, etc. */
+
+ loop_vinfo = vect_analyze_loop_form (loop);
+ if (!loop_vinfo)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "bad loop form.");
+ return NULL;
+ }
+
+ /* Find all data references in the loop (which correspond to vdefs/vuses)
+ and analyze their evolution in the loop.
+
+ FORNOW: Handle only simple, array references, which
+ alignment can be forced, and aligned pointer-references. */
+
+ ok = vect_analyze_data_refs (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "bad data references.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+
+ /* Data-flow analysis to detect stmts that do not need to be vectorized. */
+
+ ok = vect_mark_stmts_to_be_vectorized (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "unexpected pattern.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+
+ /* Check that all cross-iteration scalar data-flow cycles are OK.
+ Cross-iteration cycles caused by virtual phis are analyzed separately. */
+
+ ok = vect_analyze_scalar_cycles (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "bad scalar cycle.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+
+ /* APPLE LOCAL begin AV data dependence. -dpatel */
+ /* Analyze operations before data dependence. */
+
+ /* Scan all the operations in the loop and make sure they are
+ vectorizable. */
+
+ ok = vect_analyze_operations (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "bad data access.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+ /* APPLE LOCAL end AV data dependence. */
+
+ /* Analyze data dependences between the data-refs in the loop.
+ FORNOW: fail at the first data dependence that we encounter. */
+
+ ok = vect_analyze_data_ref_dependences (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "bad data dependence.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+
+ /* Analyze the access patterns of the data-refs in the loop (consecutive,
+ complex, etc.). FORNOW: Only handle consecutive access pattern. */
+
+ ok = vect_analyze_data_ref_accesses (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "bad data access.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+
+ /* Analyze the alignment of the data-refs in the loop.
+ FORNOW: Only aligned accesses are handled. */
+
+ ok = vect_analyze_data_refs_alignment (loop_vinfo);
+ if (!ok)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "bad data alignment.");
+ destroy_loop_vec_info (loop_vinfo);
+ return NULL;
+ }
+
+ /* APPLE LOCAL AV data dependence. -dpatel */
+ /* Analyze operations before data dependence. */
+
+ LOOP_VINFO_VECTORIZABLE_P (loop_vinfo) = 1;
+
+ return loop_vinfo;
+}
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
new file mode 100644
index 00000000000..167e64e0d99
--- /dev/null
+++ b/gcc/tree-vect-transform.c
@@ -0,0 +1,1893 @@
+/* Transformation Utilities for Loop Vectorization.
+ Copyright (C) 2003,2004,2005 Free Software Foundation, Inc.
+ Contributed by Dorit Naishlos <dorit@il.ibm.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 "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "tm.h"
+#include "errors.h"
+#include "ggc.h"
+#include "tree.h"
+#include "target.h"
+#include "rtl.h"
+#include "basic-block.h"
+#include "diagnostic.h"
+#include "tree-flow.h"
+#include "tree-dump.h"
+#include "timevar.h"
+#include "cfgloop.h"
+#include "expr.h"
+#include "optabs.h"
+#include "tree-data-ref.h"
+#include "tree-chrec.h"
+#include "tree-scalar-evolution.h"
+#include "tree-vectorizer.h"
+#include "langhooks.h"
+#include "tree-pass.h"
+#include "toplev.h"
+
+/* Utility functions for the code transformation. */
+static bool vect_transform_stmt (tree, block_stmt_iterator *);
+static void vect_align_data_ref (tree);
+static tree vect_create_destination_var (tree, tree);
+static tree vect_create_data_ref_ptr
+ (tree, block_stmt_iterator *, tree, tree *, bool);
+static tree vect_create_index_for_vector_ref (loop_vec_info);
+static tree vect_create_addr_base_for_vector_ref (tree, tree *, tree);
+static tree vect_get_new_vect_var (tree, enum vect_var_kind, const char *);
+static tree vect_get_vec_def_for_operand (tree, tree);
+static tree vect_init_vector (tree, tree);
+static void vect_finish_stmt_generation
+ (tree stmt, tree vec_stmt, block_stmt_iterator *bsi);
+
+/* Utility function dealing with loop peeling (not peeling itself). */
+static void vect_generate_tmps_on_preheader
+ (loop_vec_info, tree *, tree *, tree *);
+static tree vect_build_loop_niters (loop_vec_info);
+static void vect_update_ivs_after_vectorizer (loop_vec_info, tree, edge);
+static tree vect_gen_niters_for_prolog_loop (loop_vec_info, tree);
+static void vect_update_inits_of_dr (struct data_reference *, tree niters);
+static void vect_update_inits_of_drs (loop_vec_info, tree);
+static void vect_do_peeling_for_alignment (loop_vec_info, struct loops *);
+static void vect_do_peeling_for_loop_bound
+ (loop_vec_info, tree *, struct loops *);
+
+
+/* Function vect_get_new_vect_var.
+
+ Returns a name for a new variable. The current naming scheme appends the
+ prefix "vect_" or "vect_p" (depending on the value of VAR_KIND) to
+ the name of vectorizer generated variables, and appends that to NAME if
+ provided. */
+
+static tree
+vect_get_new_vect_var (tree type, enum vect_var_kind var_kind, const char *name)
+{
+ const char *prefix;
+ int prefix_len;
+ tree new_vect_var;
+
+ if (var_kind == vect_simple_var)
+ prefix = "vect_";
+ else
+ prefix = "vect_p";
+
+ prefix_len = strlen (prefix);
+
+ if (name)
+ new_vect_var = create_tmp_var (type, concat (prefix, name, NULL));
+ else
+ new_vect_var = create_tmp_var (type, prefix);
+
+ return new_vect_var;
+}
+
+
+/* Function vect_create_index_for_vector_ref.
+
+ Create (and return) an index variable, along with it's update chain in the
+ loop. This variable will be used to access a memory location in a vector
+ operation.
+
+ Input:
+ LOOP: The loop being vectorized.
+ BSI: The block_stmt_iterator where STMT is. Any new stmts created by this
+ function can be added here, or in the loop pre-header.
+
+ Output:
+ Return an index that will be used to index a vector array. It is expected
+ that a pointer to the first vector will be used as the base address for the
+ indexed reference.
+
+ FORNOW: we are not trying to be efficient, just creating a new index each
+ time from scratch. At this time all vector references could use the same
+ index.
+
+ TODO: create only one index to be used by all vector references. Record
+ the index in the LOOP_VINFO the first time this procedure is called and
+ return it on subsequent calls. The increment of this index must be placed
+ just before the conditional expression that ends the single block loop. */
+
+static tree
+vect_create_index_for_vector_ref (loop_vec_info loop_vinfo)
+{
+ tree init, step;
+ block_stmt_iterator incr_bsi;
+ bool insert_after;
+ tree indx_before_incr, indx_after_incr;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree incr;
+
+ /* It is assumed that the base pointer used for vectorized access contains
+ the address of the first vector. Therefore the index used for vectorized
+ access must be initialized to zero and incremented by 1. */
+
+ init = integer_zero_node;
+ step = integer_one_node;
+
+ standard_iv_increment_position (loop, &incr_bsi, &insert_after);
+ create_iv (init, step, NULL_TREE, loop, &incr_bsi, insert_after,
+ &indx_before_incr, &indx_after_incr);
+ incr = bsi_stmt (incr_bsi);
+ get_stmt_operands (incr);
+ set_stmt_info (stmt_ann (incr), new_stmt_vec_info (incr, loop_vinfo));
+
+ return indx_before_incr;
+}
+
+
+/* Function vect_create_addr_base_for_vector_ref.
+
+ Create an expression that computes the address of the first memory location
+ that will be accessed for a data reference.
+
+ Input:
+ STMT: The statement containing the data reference.
+ NEW_STMT_LIST: Must be initialized to NULL_TREE or a statement list.
+ OFFSET: Optional. If supplied, it is be added to the initial address.
+
+ Output:
+ 1. Return an SSA_NAME whose value is the address of the memory location of
+ the first vector of the data reference.
+ 2. If new_stmt_list is not NULL_TREE after return then the caller must insert
+ these statement(s) which define the returned SSA_NAME.
+
+ FORNOW: We are only handling array accesses with step 1. */
+
+static tree
+vect_create_addr_base_for_vector_ref (tree stmt,
+ tree *new_stmt_list,
+ tree offset)
+{
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
+ tree data_ref_base =
+ unshare_expr (STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info));
+ tree base_name = build_fold_indirect_ref (data_ref_base);
+ tree ref = DR_REF (dr);
+ tree scalar_type = TREE_TYPE (ref);
+ tree scalar_ptr_type = build_pointer_type (scalar_type);
+ tree vec_stmt;
+ tree new_temp;
+ tree addr_base, addr_expr;
+ tree dest, new_stmt;
+ tree base_offset = unshare_expr (STMT_VINFO_VECT_INIT_OFFSET (stmt_info));
+
+ /* Create base_offset */
+ dest = create_tmp_var (TREE_TYPE (base_offset), "base_off");
+ add_referenced_tmp_var (dest);
+ base_offset = force_gimple_operand (base_offset, &new_stmt, false, dest);
+ append_to_statement_list_force (new_stmt, new_stmt_list);
+
+ if (offset)
+ {
+ tree tmp = create_tmp_var (TREE_TYPE (base_offset), "offset");
+ add_referenced_tmp_var (tmp);
+ offset = fold (build2 (MULT_EXPR, TREE_TYPE (offset), offset,
+ STMT_VINFO_VECT_STEP (stmt_info)));
+ base_offset = fold (build2 (PLUS_EXPR, TREE_TYPE (base_offset),
+ base_offset, offset));
+ base_offset = force_gimple_operand (base_offset, &new_stmt, false, tmp);
+ append_to_statement_list_force (new_stmt, new_stmt_list);
+ }
+
+ /* base + base_offset */
+ addr_base = fold (build2 (PLUS_EXPR, TREE_TYPE (data_ref_base), data_ref_base,
+ base_offset));
+
+ /* addr_expr = addr_base */
+ addr_expr = vect_get_new_vect_var (scalar_ptr_type, vect_pointer_var,
+ get_name (base_name));
+ add_referenced_tmp_var (addr_expr);
+ vec_stmt = build2 (MODIFY_EXPR, void_type_node, addr_expr, addr_base);
+ new_temp = make_ssa_name (addr_expr, vec_stmt);
+ TREE_OPERAND (vec_stmt, 0) = new_temp;
+ append_to_statement_list_force (vec_stmt, new_stmt_list);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "created ");
+ print_generic_expr (vect_dump, vec_stmt, TDF_SLIM);
+ }
+ return new_temp;
+}
+
+
+/* Function vect_align_data_ref.
+
+ Handle mislignment of a memory accesses.
+
+ FORNOW: Can't handle misaligned accesses.
+ Make sure that the dataref is aligned. */
+
+static void
+vect_align_data_ref (tree stmt)
+{
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
+
+ /* FORNOW: can't handle misaligned accesses;
+ all accesses expected to be aligned. */
+ gcc_assert (aligned_access_p (dr));
+}
+
+
+/* Function vect_create_data_ref_ptr.
+
+ Create a memory reference expression for vector access, to be used in a
+ vector load/store stmt. The reference is based on a new pointer to vector
+ type (vp).
+
+ Input:
+ 1. STMT: a stmt that references memory. Expected to be of the form
+ MODIFY_EXPR <name, data-ref> or MODIFY_EXPR <data-ref, name>.
+ 2. BSI: block_stmt_iterator where new stmts can be added.
+ 3. OFFSET (optional): an offset to be added to the initial address accessed
+ by the data-ref in STMT.
+ 4. ONLY_INIT: indicate if vp is to be updated in the loop, or remain
+ pointing to the initial address.
+
+ Output:
+ 1. Declare a new ptr to vector_type, and have it point to the base of the
+ data reference (initial addressed accessed by the data reference).
+ For example, for vector of type V8HI, the following code is generated:
+
+ v8hi *vp;
+ vp = (v8hi *)initial_address;
+
+ if OFFSET is not supplied:
+ initial_address = &a[init];
+ if OFFSET is supplied:
+ initial_address = &a[init + OFFSET];
+
+ Return the initial_address in INITIAL_ADDRESS.
+
+ 2. Create a data-reference in the loop based on the new vector pointer vp,
+ and using a new index variable 'idx' as follows:
+
+ vp' = vp + update
+
+ where if ONLY_INIT is true:
+ update = zero
+ and otherwise
+ update = idx + vector_type_size
+
+ Return the pointer vp'.
+
+
+ FORNOW: handle only aligned and consecutive accesses. */
+
+static tree
+vect_create_data_ref_ptr (tree stmt, block_stmt_iterator *bsi, tree offset,
+ tree *initial_address, bool only_init)
+{
+ tree base_name;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ tree vect_ptr_type;
+ tree vect_ptr;
+ tree tag;
+ v_may_def_optype v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
+ v_must_def_optype v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
+ vuse_optype vuses = STMT_VUSE_OPS (stmt);
+ int nvuses, nv_may_defs, nv_must_defs;
+ int i;
+ tree new_temp;
+ tree vec_stmt;
+ tree new_stmt_list = NULL_TREE;
+ tree idx;
+ edge pe = loop_preheader_edge (loop);
+ basic_block new_bb;
+ tree vect_ptr_init;
+ tree vectype_size;
+ tree ptr_update;
+ tree data_ref_ptr;
+ tree type, tmp, size;
+
+ base_name = build_fold_indirect_ref (unshare_expr (
+ STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info)));
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ tree data_ref_base = base_name;
+ fprintf (vect_dump, "create array_ref of type: ");
+ print_generic_expr (vect_dump, vectype, TDF_SLIM);
+ if (TREE_CODE (data_ref_base) == VAR_DECL)
+ fprintf (vect_dump, " vectorizing a one dimensional array ref: ");
+ else if (TREE_CODE (data_ref_base) == ARRAY_REF)
+ fprintf (vect_dump, " vectorizing a multidimensional array ref: ");
+ else if (TREE_CODE (data_ref_base) == COMPONENT_REF)
+ fprintf (vect_dump, " vectorizing a record based array ref: ");
+ else if (TREE_CODE (data_ref_base) == SSA_NAME)
+ fprintf (vect_dump, " vectorizing a pointer ref: ");
+ print_generic_expr (vect_dump, base_name, TDF_SLIM);
+ }
+
+ /** (1) Create the new vector-pointer variable: **/
+
+ vect_ptr_type = build_pointer_type (vectype);
+ vect_ptr = vect_get_new_vect_var (vect_ptr_type, vect_pointer_var,
+ get_name (base_name));
+ add_referenced_tmp_var (vect_ptr);
+
+
+ /** (2) Handle aliasing information of the new vector-pointer: **/
+
+ tag = STMT_VINFO_MEMTAG (stmt_info);
+ gcc_assert (tag);
+ get_var_ann (vect_ptr)->type_mem_tag = tag;
+
+ /* Mark for renaming all aliased variables
+ (i.e, the may-aliases of the type-mem-tag). */
+ nvuses = NUM_VUSES (vuses);
+ nv_may_defs = NUM_V_MAY_DEFS (v_may_defs);
+ nv_must_defs = NUM_V_MUST_DEFS (v_must_defs);
+ for (i = 0; i < nvuses; i++)
+ {
+ tree use = VUSE_OP (vuses, i);
+ if (TREE_CODE (use) == SSA_NAME)
+ bitmap_set_bit (vars_to_rename, var_ann (SSA_NAME_VAR (use))->uid);
+ }
+ for (i = 0; i < nv_may_defs; i++)
+ {
+ tree def = V_MAY_DEF_RESULT (v_may_defs, i);
+ if (TREE_CODE (def) == SSA_NAME)
+ bitmap_set_bit (vars_to_rename, var_ann (SSA_NAME_VAR (def))->uid);
+ }
+ for (i = 0; i < nv_must_defs; i++)
+ {
+ tree def = V_MUST_DEF_RESULT (v_must_defs, i);
+ if (TREE_CODE (def) == SSA_NAME)
+ bitmap_set_bit (vars_to_rename, var_ann (SSA_NAME_VAR (def))->uid);
+ }
+
+
+ /** (3) Calculate the initial address the vector-pointer, and set
+ the vector-pointer to point to it before the loop: **/
+
+ /* Create: (&(base[init_val+offset]) in the loop preheader. */
+ new_temp = vect_create_addr_base_for_vector_ref (stmt, &new_stmt_list,
+ offset);
+ pe = loop_preheader_edge (loop);
+ new_bb = bsi_insert_on_edge_immediate (pe, new_stmt_list);
+ gcc_assert (!new_bb);
+ *initial_address = new_temp;
+
+ /* Create: p = (vectype *) initial_base */
+ vec_stmt = fold_convert (vect_ptr_type, new_temp);
+ vec_stmt = build2 (MODIFY_EXPR, void_type_node, vect_ptr, vec_stmt);
+ new_temp = make_ssa_name (vect_ptr, vec_stmt);
+ TREE_OPERAND (vec_stmt, 0) = new_temp;
+ new_bb = bsi_insert_on_edge_immediate (pe, vec_stmt);
+ gcc_assert (!new_bb);
+ vect_ptr_init = TREE_OPERAND (vec_stmt, 0);
+
+
+ /** (4) Handle the updating of the vector-pointer inside the loop: **/
+
+ if (only_init) /* No update in loop is required. */
+ return vect_ptr_init;
+
+ idx = vect_create_index_for_vector_ref (loop_vinfo);
+
+ /* Create: update = idx * vectype_size */
+ tmp = create_tmp_var (integer_type_node, "update");
+ add_referenced_tmp_var (tmp);
+ size = TYPE_SIZE (vect_ptr_type);
+ type = lang_hooks.types.type_for_size (tree_low_cst (size, 1), 1);
+ ptr_update = create_tmp_var (type, "update");
+ add_referenced_tmp_var (ptr_update);
+ vectype_size = TYPE_SIZE_UNIT (vectype);
+ vec_stmt = build2 (MULT_EXPR, integer_type_node, idx, vectype_size);
+ vec_stmt = build2 (MODIFY_EXPR, void_type_node, tmp, vec_stmt);
+ new_temp = make_ssa_name (tmp, vec_stmt);
+ TREE_OPERAND (vec_stmt, 0) = new_temp;
+ bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
+ vec_stmt = fold_convert (type, new_temp);
+ vec_stmt = build2 (MODIFY_EXPR, void_type_node, ptr_update, vec_stmt);
+ new_temp = make_ssa_name (ptr_update, vec_stmt);
+ TREE_OPERAND (vec_stmt, 0) = new_temp;
+ bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
+
+ /* Create: data_ref_ptr = vect_ptr_init + update */
+ vec_stmt = build2 (PLUS_EXPR, vect_ptr_type, vect_ptr_init, new_temp);
+ vec_stmt = build2 (MODIFY_EXPR, void_type_node, vect_ptr, vec_stmt);
+ new_temp = make_ssa_name (vect_ptr, vec_stmt);
+ TREE_OPERAND (vec_stmt, 0) = new_temp;
+ bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
+ data_ref_ptr = TREE_OPERAND (vec_stmt, 0);
+
+ return data_ref_ptr;
+}
+
+
+/* Function vect_create_destination_var.
+
+ Create a new temporary of type VECTYPE. */
+
+static tree
+vect_create_destination_var (tree scalar_dest, tree vectype)
+{
+ tree vec_dest;
+ const char *new_name;
+
+ gcc_assert (TREE_CODE (scalar_dest) == SSA_NAME);
+
+ new_name = get_name (scalar_dest);
+ if (!new_name)
+ new_name = "var_";
+ vec_dest = vect_get_new_vect_var (vectype, vect_simple_var, new_name);
+ add_referenced_tmp_var (vec_dest);
+
+ return vec_dest;
+}
+
+
+/* Function vect_init_vector.
+
+ Insert a new stmt (INIT_STMT) that initializes a new vector variable with
+ the vector elements of VECTOR_VAR. Return the DEF of INIT_STMT. It will be
+ used in the vectorization of STMT. */
+
+static tree
+vect_init_vector (tree stmt, tree vector_var)
+{
+ stmt_vec_info stmt_vinfo = vinfo_for_stmt (stmt);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree new_var;
+ tree init_stmt;
+ tree vectype = STMT_VINFO_VECTYPE (stmt_vinfo);
+ tree vec_oprnd;
+ edge pe;
+ tree new_temp;
+ basic_block new_bb;
+
+ new_var = vect_get_new_vect_var (vectype, vect_simple_var, "cst_");
+ add_referenced_tmp_var (new_var);
+
+ init_stmt = build2 (MODIFY_EXPR, vectype, new_var, vector_var);
+ new_temp = make_ssa_name (new_var, init_stmt);
+ TREE_OPERAND (init_stmt, 0) = new_temp;
+
+ pe = loop_preheader_edge (loop);
+ new_bb = bsi_insert_on_edge_immediate (pe, init_stmt);
+ gcc_assert (!new_bb);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "created new init_stmt: ");
+ print_generic_expr (vect_dump, init_stmt, TDF_SLIM);
+ }
+
+ vec_oprnd = TREE_OPERAND (init_stmt, 0);
+ return vec_oprnd;
+}
+
+
+/* Function vect_get_vec_def_for_operand.
+
+ OP is an operand in STMT. This function returns a (vector) def that will be
+ used in the vectorized stmt for STMT.
+
+ In the case that OP is an SSA_NAME which is defined in the loop, then
+ STMT_VINFO_VEC_STMT of the defining stmt holds the relevant def.
+
+ In case OP is an invariant or constant, a new stmt that creates a vector def
+ needs to be introduced. */
+
+static tree
+vect_get_vec_def_for_operand (tree op, tree stmt)
+{
+ tree vec_oprnd;
+ tree vec_stmt;
+ tree def_stmt;
+ stmt_vec_info def_stmt_info = NULL;
+ stmt_vec_info stmt_vinfo = vinfo_for_stmt (stmt);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_vinfo);
+ int nunits = GET_MODE_NUNITS (TYPE_MODE (vectype));
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block bb;
+ tree vec_inv;
+ tree t = NULL_TREE;
+ tree def;
+ int i;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "vect_get_vec_def_for_operand: ");
+ print_generic_expr (vect_dump, op, TDF_SLIM);
+ }
+
+ /** ===> Case 1: operand is a constant. **/
+
+ if (TREE_CODE (op) == INTEGER_CST || TREE_CODE (op) == REAL_CST)
+ {
+ /* Create 'vect_cst_ = {cst,cst,...,cst}' */
+
+ tree vec_cst;
+
+ /* Build a tree with vector elements. */
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "Create vector_cst. nunits = %d", nunits);
+
+ for (i = nunits - 1; i >= 0; --i)
+ {
+ t = tree_cons (NULL_TREE, op, t);
+ }
+ vec_cst = build_vector (vectype, t);
+ return vect_init_vector (stmt, vec_cst);
+ }
+
+ gcc_assert (TREE_CODE (op) == SSA_NAME);
+
+ /** ===> Case 2: operand is an SSA_NAME - find the stmt that defines it. **/
+
+ def_stmt = SSA_NAME_DEF_STMT (op);
+ def_stmt_info = vinfo_for_stmt (def_stmt);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "vect_get_vec_def_for_operand: def_stmt: ");
+ print_generic_expr (vect_dump, def_stmt, TDF_SLIM);
+ }
+
+
+ /** ==> Case 2.1: operand is defined inside the loop. **/
+
+ if (def_stmt_info)
+ {
+ /* Get the def from the vectorized stmt. */
+
+ vec_stmt = STMT_VINFO_VEC_STMT (def_stmt_info);
+ gcc_assert (vec_stmt);
+ vec_oprnd = TREE_OPERAND (vec_stmt, 0);
+ return vec_oprnd;
+ }
+
+
+ /** ==> Case 2.2: operand is defined by the loop-header phi-node -
+ it is a reduction/induction. **/
+
+ bb = bb_for_stmt (def_stmt);
+ if (TREE_CODE (def_stmt) == PHI_NODE && flow_bb_inside_loop_p (loop, bb))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "reduction/induction - unsupported.");
+ internal_error ("no support for reduction/induction"); /* FORNOW */
+ }
+
+
+ /** ==> Case 2.3: operand is defined outside the loop -
+ it is a loop invariant. */
+
+ switch (TREE_CODE (def_stmt))
+ {
+ case PHI_NODE:
+ def = PHI_RESULT (def_stmt);
+ break;
+ case MODIFY_EXPR:
+ def = TREE_OPERAND (def_stmt, 0);
+ break;
+ case NOP_EXPR:
+ def = TREE_OPERAND (def_stmt, 0);
+ gcc_assert (IS_EMPTY_STMT (def_stmt));
+ def = op;
+ break;
+ default:
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "unsupported defining stmt: ");
+ print_generic_expr (vect_dump, def_stmt, TDF_SLIM);
+ }
+ internal_error ("unsupported defining stmt");
+ }
+
+ /* Build a tree with vector elements.
+ Create 'vec_inv = {inv,inv,..,inv}' */
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "Create vector_inv.");
+
+ for (i = nunits - 1; i >= 0; --i)
+ {
+ t = tree_cons (NULL_TREE, def, t);
+ }
+
+ vec_inv = build_constructor (vectype, t);
+ return vect_init_vector (stmt, vec_inv);
+}
+
+
+/* Function vect_finish_stmt_generation.
+
+ Insert a new stmt. */
+
+static void
+vect_finish_stmt_generation (tree stmt, tree vec_stmt, block_stmt_iterator *bsi)
+{
+ bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "add new stmt: ");
+ print_generic_expr (vect_dump, vec_stmt, TDF_SLIM);
+ }
+
+#ifdef ENABLE_CHECKING
+ /* Make sure bsi points to the stmt that is being vectorized. */
+ gcc_assert (stmt == bsi_stmt (*bsi));
+#endif
+
+#ifdef USE_MAPPED_LOCATION
+ SET_EXPR_LOCATION (vec_stmt, EXPR_LOCUS (stmt));
+#else
+ SET_EXPR_LOCUS (vec_stmt, EXPR_LOCUS (stmt));
+#endif
+}
+
+
+/* Function vectorizable_assignment.
+
+ Check if STMT performs an assignment (copy) that can be vectorized.
+ If VEC_STMT is also passed, vectorize the STMT: create a vectorized
+ stmt to replace it, put it in VEC_STMT, and insert it at BSI.
+ Return FALSE if not a vectorizable STMT, TRUE otherwise. */
+
+bool
+vectorizable_assignment (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
+{
+ tree vec_dest;
+ tree scalar_dest;
+ tree op;
+ tree vec_oprnd;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ tree new_temp;
+
+ /* Is vectorizable assignment? */
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ return false;
+
+ scalar_dest = TREE_OPERAND (stmt, 0);
+ if (TREE_CODE (scalar_dest) != SSA_NAME)
+ return false;
+
+ op = TREE_OPERAND (stmt, 1);
+ if (!vect_is_simple_use (op, loop_vinfo, NULL))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "use not simple.");
+ return false;
+ }
+
+ if (!vec_stmt) /* transformation not required. */
+ {
+ STMT_VINFO_TYPE (stmt_info) = assignment_vec_info_type;
+ return true;
+ }
+
+ /** Transform. **/
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "transform assignment.");
+
+ /* Handle def. */
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+
+ /* Handle use. */
+ op = TREE_OPERAND (stmt, 1);
+ vec_oprnd = vect_get_vec_def_for_operand (op, stmt);
+
+ /* Arguments are ready. create the new vector stmt. */
+ *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, vec_oprnd);
+ new_temp = make_ssa_name (vec_dest, *vec_stmt);
+ TREE_OPERAND (*vec_stmt, 0) = new_temp;
+ vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
+
+ return true;
+}
+
+
+/* Function vectorizable_operation.
+
+ Check if STMT performs a binary or unary operation that can be vectorized.
+ If VEC_STMT is also passed, vectorize the STMT: create a vectorized
+ stmt to replace it, put it in VEC_STMT, and insert it at BSI.
+ Return FALSE if not a vectorizable STMT, TRUE otherwise. */
+
+bool
+vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
+{
+ tree vec_dest;
+ tree scalar_dest;
+ tree operation;
+ tree op0, op1 = NULL;
+ tree vec_oprnd0, vec_oprnd1=NULL;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ int i;
+ enum tree_code code;
+ enum machine_mode vec_mode;
+ tree new_temp;
+ int op_type;
+ tree op;
+ optab optab;
+
+ /* Is STMT a vectorizable binary/unary operation? */
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ return false;
+
+ if (TREE_CODE (TREE_OPERAND (stmt, 0)) != SSA_NAME)
+ return false;
+
+ operation = TREE_OPERAND (stmt, 1);
+ code = TREE_CODE (operation);
+ optab = optab_for_tree_code (code, vectype);
+
+ /* Support only unary or binary operations. */
+ op_type = TREE_CODE_LENGTH (code);
+ if (op_type != unary_op && op_type != binary_op)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "num. args = %d (not unary/binary op).", op_type);
+ return false;
+ }
+
+ for (i = 0; i < op_type; i++)
+ {
+ op = TREE_OPERAND (operation, i);
+ if (!vect_is_simple_use (op, loop_vinfo, NULL))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "use not simple.");
+ return false;
+ }
+ }
+
+ /* Supportable by target? */
+ if (!optab)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "no optab.");
+ return false;
+ }
+ vec_mode = TYPE_MODE (vectype);
+ if (optab->handlers[(int) vec_mode].insn_code == CODE_FOR_nothing)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "op not supported by target.");
+ return false;
+ }
+
+ if (!vec_stmt) /* transformation not required. */
+ {
+ STMT_VINFO_TYPE (stmt_info) = op_vec_info_type;
+ return true;
+ }
+
+ /** Transform. **/
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "transform binary/unary operation.");
+
+ /* Handle def. */
+ scalar_dest = TREE_OPERAND (stmt, 0);
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+
+ /* Handle uses. */
+ op0 = TREE_OPERAND (operation, 0);
+ vec_oprnd0 = vect_get_vec_def_for_operand (op0, stmt);
+
+ if (op_type == binary_op)
+ {
+ op1 = TREE_OPERAND (operation, 1);
+ vec_oprnd1 = vect_get_vec_def_for_operand (op1, stmt);
+ }
+
+ /* Arguments are ready. create the new vector stmt. */
+
+ if (op_type == binary_op)
+ *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest,
+ build2 (code, vectype, vec_oprnd0, vec_oprnd1));
+ else
+ *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest,
+ build1 (code, vectype, vec_oprnd0));
+ new_temp = make_ssa_name (vec_dest, *vec_stmt);
+ TREE_OPERAND (*vec_stmt, 0) = new_temp;
+ vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
+
+ return true;
+}
+
+
+/* Function vectorizable_store.
+
+ Check if STMT defines a non scalar data-ref (array/pointer/structure) that
+ can be vectorized.
+ If VEC_STMT is also passed, vectorize the STMT: create a vectorized
+ stmt to replace it, put it in VEC_STMT, and insert it at BSI.
+ Return FALSE if not a vectorizable STMT, TRUE otherwise. */
+
+bool
+vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
+{
+ tree scalar_dest;
+ tree data_ref;
+ tree op;
+ tree vec_oprnd1;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ enum machine_mode vec_mode;
+ tree dummy;
+ enum dr_alignment_support alignment_support_cheme;
+
+ /* Is vectorizable store? */
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ return false;
+
+ scalar_dest = TREE_OPERAND (stmt, 0);
+ if (TREE_CODE (scalar_dest) != ARRAY_REF
+ && TREE_CODE (scalar_dest) != INDIRECT_REF)
+ return false;
+
+ op = TREE_OPERAND (stmt, 1);
+ if (!vect_is_simple_use (op, loop_vinfo, NULL))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "use not simple.");
+ return false;
+ }
+
+ vec_mode = TYPE_MODE (vectype);
+ /* FORNOW. In some cases can vectorize even if data-type not supported
+ (e.g. - array initialization with 0). */
+ if (mov_optab->handlers[(int)vec_mode].insn_code == CODE_FOR_nothing)
+ return false;
+
+ if (!STMT_VINFO_DATA_REF (stmt_info))
+ return false;
+
+
+ if (!vec_stmt) /* transformation not required. */
+ {
+ STMT_VINFO_TYPE (stmt_info) = store_vec_info_type;
+ return true;
+ }
+
+ /** Transform. **/
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "transform store");
+
+ alignment_support_cheme = vect_supportable_dr_alignment (dr);
+ gcc_assert (alignment_support_cheme);
+ gcc_assert (alignment_support_cheme = dr_aligned); /* FORNOW */
+
+ /* Handle use - get the vectorized def from the defining stmt. */
+ vec_oprnd1 = vect_get_vec_def_for_operand (op, stmt);
+
+ /* Handle def. */
+ /* FORNOW: make sure the data reference is aligned. */
+ vect_align_data_ref (stmt);
+ data_ref = vect_create_data_ref_ptr (stmt, bsi, NULL_TREE, &dummy, false);
+ data_ref = build_fold_indirect_ref (data_ref);
+
+ /* Arguments are ready. create the new vector stmt. */
+ *vec_stmt = build2 (MODIFY_EXPR, vectype, data_ref, vec_oprnd1);
+ vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
+
+ return true;
+}
+
+
+/* vectorizable_load.
+
+ Check if STMT reads a non scalar data-ref (array/pointer/structure) that
+ can be vectorized.
+ If VEC_STMT is also passed, vectorize the STMT: create a vectorized
+ stmt to replace it, put it in VEC_STMT, and insert it at BSI.
+ Return FALSE if not a vectorizable STMT, TRUE otherwise. */
+
+bool
+vectorizable_load (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
+{
+ tree scalar_dest;
+ tree vec_dest = NULL;
+ tree data_ref = NULL;
+ tree op;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ tree new_temp;
+ int mode;
+ tree init_addr;
+ tree new_stmt;
+ tree dummy;
+ basic_block new_bb;
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ edge pe = loop_preheader_edge (loop);
+ enum dr_alignment_support alignment_support_cheme;
+
+ /* Is vectorizable load? */
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ return false;
+
+ scalar_dest = TREE_OPERAND (stmt, 0);
+ if (TREE_CODE (scalar_dest) != SSA_NAME)
+ return false;
+
+ op = TREE_OPERAND (stmt, 1);
+ if (TREE_CODE (op) != ARRAY_REF && TREE_CODE (op) != INDIRECT_REF)
+ return false;
+
+ if (!STMT_VINFO_DATA_REF (stmt_info))
+ return false;
+
+ mode = (int) TYPE_MODE (vectype);
+
+ /* FORNOW. In some cases can vectorize even if data-type not supported
+ (e.g. - data copies). */
+ if (mov_optab->handlers[mode].insn_code == CODE_FOR_nothing)
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "Aligned load, but unsupported type.");
+ return false;
+ }
+
+ if (!vec_stmt) /* transformation not required. */
+ {
+ STMT_VINFO_TYPE (stmt_info) = load_vec_info_type;
+ return true;
+ }
+
+ /** Transform. **/
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "transform load.");
+
+ alignment_support_cheme = vect_supportable_dr_alignment (dr);
+ gcc_assert (alignment_support_cheme);
+
+ if (alignment_support_cheme == dr_aligned
+ || alignment_support_cheme == dr_unaligned_supported)
+ {
+ /* Create:
+ p = initial_addr;
+ indx = 0;
+ loop {
+ vec_dest = *(p);
+ indx = indx + 1;
+ }
+ */
+
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+ data_ref = vect_create_data_ref_ptr (stmt, bsi, NULL_TREE, &dummy, false);
+ if (aligned_access_p (dr))
+ data_ref = build_fold_indirect_ref (data_ref);
+ else
+ {
+ int mis = DR_MISALIGNMENT (dr);
+ tree tmis = (mis == -1 ? size_zero_node : size_int (mis));
+ tmis = size_binop (MULT_EXPR, tmis, size_int(BITS_PER_UNIT));
+ data_ref = build2 (MISALIGNED_INDIRECT_REF, vectype, data_ref, tmis);
+ }
+ new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, data_ref);
+ new_temp = make_ssa_name (vec_dest, new_stmt);
+ TREE_OPERAND (new_stmt, 0) = new_temp;
+ vect_finish_stmt_generation (stmt, new_stmt, bsi);
+ }
+ else if (alignment_support_cheme == dr_unaligned_software_pipeline)
+ {
+ /* Create:
+ p1 = initial_addr;
+ msq_init = *(floor(p1))
+ p2 = initial_addr + VS - 1;
+ magic = have_builtin ? builtin_result : initial_address;
+ indx = 0;
+ loop {
+ p2' = p2 + indx * vectype_size
+ lsq = *(floor(p2'))
+ vec_dest = realign_load (msq, lsq, magic)
+ indx = indx + 1;
+ msq = lsq;
+ }
+ */
+
+ tree offset;
+ tree magic;
+ tree phi_stmt;
+ tree msq_init;
+ tree msq, lsq;
+ tree dataref_ptr;
+ tree params;
+
+ /* <1> Create msq_init = *(floor(p1)) in the loop preheader */
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+ data_ref = vect_create_data_ref_ptr (stmt, bsi, NULL_TREE,
+ &init_addr, true);
+ data_ref = build1 (ALIGN_INDIRECT_REF, vectype, data_ref);
+ new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, data_ref);
+ new_temp = make_ssa_name (vec_dest, new_stmt);
+ TREE_OPERAND (new_stmt, 0) = new_temp;
+ new_bb = bsi_insert_on_edge_immediate (pe, new_stmt);
+ gcc_assert (!new_bb);
+ msq_init = TREE_OPERAND (new_stmt, 0);
+
+
+ /* <2> Create lsq = *(floor(p2')) in the loop */
+ offset = build_int_cst (integer_type_node,
+ GET_MODE_NUNITS (TYPE_MODE (vectype)));
+ offset = int_const_binop (MINUS_EXPR, offset, integer_one_node, 1);
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+ dataref_ptr = vect_create_data_ref_ptr (stmt, bsi, offset, &dummy, false);
+ data_ref = build1 (ALIGN_INDIRECT_REF, vectype, dataref_ptr);
+ new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, data_ref);
+ new_temp = make_ssa_name (vec_dest, new_stmt);
+ TREE_OPERAND (new_stmt, 0) = new_temp;
+ vect_finish_stmt_generation (stmt, new_stmt, bsi);
+ lsq = TREE_OPERAND (new_stmt, 0);
+
+
+ /* <3> */
+ if (targetm.vectorize.builtin_mask_for_load)
+ {
+ /* Create permutation mask, if required, in loop preheader. */
+ tree builtin_decl;
+ params = build_tree_list (NULL_TREE, init_addr);
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+ builtin_decl = targetm.vectorize.builtin_mask_for_load ();
+ new_stmt = build_function_call_expr (builtin_decl, params);
+ new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, new_stmt);
+ new_temp = make_ssa_name (vec_dest, new_stmt);
+ TREE_OPERAND (new_stmt, 0) = new_temp;
+ new_bb = bsi_insert_on_edge_immediate (pe, new_stmt);
+ gcc_assert (!new_bb);
+ magic = TREE_OPERAND (new_stmt, 0);
+
+ /* Since we have just created a CALL_EXPR, we may need to
+ rename call-clobbered variables. */
+ mark_call_clobbered_vars_to_rename ();
+ }
+ else
+ {
+ /* Use current address instead of init_addr for reduced reg pressure.
+ */
+ magic = dataref_ptr;
+ }
+
+
+ /* <4> Create msq = phi <msq_init, lsq> in loop */
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+ msq = make_ssa_name (vec_dest, NULL_TREE);
+ phi_stmt = create_phi_node (msq, loop->header); /* CHECKME */
+ SSA_NAME_DEF_STMT (msq) = phi_stmt;
+ add_phi_arg (phi_stmt, msq_init, loop_preheader_edge (loop));
+ add_phi_arg (phi_stmt, lsq, loop_latch_edge (loop));
+
+
+ /* <5> Create <vec_dest = realign_load (msq, lsq, magic)> in loop */
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+ new_stmt = build3 (REALIGN_LOAD_EXPR, vectype, msq, lsq, magic);
+ new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, new_stmt);
+ new_temp = make_ssa_name (vec_dest, new_stmt);
+ TREE_OPERAND (new_stmt, 0) = new_temp;
+ vect_finish_stmt_generation (stmt, new_stmt, bsi);
+ }
+ else
+ gcc_unreachable ();
+
+ *vec_stmt = new_stmt;
+ return true;
+}
+
+/* APPLE LOCAL begin AV cond expr. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004. */
+/* Function vect_is_simple_cond.
+
+ Input:
+ LOOP - the loop that is being vectorized.
+ COND - Condition that is checked for simple use.
+
+ Returns whether a COND can be vectorized. Checkes whether
+ condition operands are supportable using vec_is_simple_use. */
+
+static bool
+vect_is_simple_cond (tree cond, loop_vec_info loop_vinfo)
+{
+ tree lhs, rhs;
+
+ if (TREE_CODE_CLASS (TREE_CODE (cond)) != tcc_comparison)
+ return false;
+
+ lhs = TREE_OPERAND (cond, 0);
+ rhs = TREE_OPERAND (cond, 1);
+
+ if (TREE_CODE (lhs) == SSA_NAME)
+ {
+ tree lhs_def_stmt = SSA_NAME_DEF_STMT (lhs);
+ if (!vect_is_simple_use (lhs, loop_vinfo, &lhs_def_stmt))
+ return false;
+ }
+ else if (TREE_CODE (lhs) != INTEGER_CST && TREE_CODE (lhs) != REAL_CST)
+ return false;
+
+ if (TREE_CODE (rhs) == SSA_NAME)
+ {
+ tree rhs_def_stmt = SSA_NAME_DEF_STMT (rhs);
+ if (!vect_is_simple_use (rhs, loop_vinfo, &rhs_def_stmt))
+ return false;
+ }
+ else if (TREE_CODE (rhs) != INTEGER_CST && TREE_CODE (rhs) != REAL_CST)
+ return false;
+
+ return true;
+}
+
+/* vectorizable_select.
+
+ Check if STMT is conditional modify expression that can be vectorized.
+ If VEC_STMT is also passed, vectorize the STMT: create a vectorized
+ stmt using VEC_COND_EXPR to replace it, put it in VEC_STMT, and insert it
+ at BSI.
+
+ Return FALSE if not a vectorizable STMT, TRUE otherwise. */
+
+bool
+vectorizable_select (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
+{
+ tree scalar_dest = NULL_TREE;
+ tree vec_dest = NULL_TREE;
+ tree op = NULL_TREE;
+ tree cond_expr, then_clause, else_clause;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ tree vec_cond_lhs, vec_cond_rhs, vec_then_clause, vec_else_clause;
+ tree vec_compare, vec_cond_expr;
+ tree new_temp;
+ loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
+ enum machine_mode vec_mode;
+
+ if (TREE_CODE (stmt) != MODIFY_EXPR)
+ return false;
+
+ op = TREE_OPERAND (stmt, 1);
+
+ if (TREE_CODE (op) != COND_EXPR)
+ return false;
+
+ cond_expr = TREE_OPERAND (op, 0);
+ then_clause = TREE_OPERAND (op, 1);
+ else_clause = TREE_OPERAND (op, 2);
+
+ if (!vect_is_simple_cond (cond_expr, loop_vinfo))
+ return false;
+
+ if (TREE_CODE (then_clause) == SSA_NAME)
+ {
+ tree then_def_stmt = SSA_NAME_DEF_STMT (then_clause);
+ if (!vect_is_simple_use (then_clause, loop_vinfo, &then_def_stmt))
+ return false;
+ }
+ else if (TREE_CODE (then_clause) != INTEGER_CST
+ && TREE_CODE (then_clause) != REAL_CST)
+ return false;
+
+ if (TREE_CODE (else_clause) == SSA_NAME)
+ {
+ tree else_def_stmt = SSA_NAME_DEF_STMT (else_clause);
+ if (!vect_is_simple_use (else_clause, loop_vinfo, &else_def_stmt))
+ return false;
+ }
+ else if (TREE_CODE (else_clause) != INTEGER_CST
+ && TREE_CODE (else_clause) != REAL_CST)
+ return false;
+
+
+ vec_mode = TYPE_MODE (vectype);
+
+ if (!vec_stmt)
+ {
+ STMT_VINFO_TYPE (stmt_info) = select_vec_info_type;
+ return expand_vec_cond_expr_p (op, vec_mode);
+ }
+
+ /* Transform */
+
+ /* Handle def. */
+ scalar_dest = TREE_OPERAND (stmt, 0);
+ vec_dest = vect_create_destination_var (scalar_dest, vectype);
+
+ /* Handle cond expr. */
+ vec_cond_lhs = vect_get_vec_def_for_operand (TREE_OPERAND (cond_expr, 0), stmt);
+ vec_cond_rhs = vect_get_vec_def_for_operand (TREE_OPERAND (cond_expr, 1), stmt);
+ vec_then_clause = vect_get_vec_def_for_operand (then_clause, stmt);
+ vec_else_clause = vect_get_vec_def_for_operand (else_clause, stmt);
+
+ /* Arguments are ready. create the new vector stmt. */
+ vec_compare = build2 (TREE_CODE (cond_expr), vectype,
+ vec_cond_lhs, vec_cond_rhs);
+ vec_cond_expr = build (VEC_COND_EXPR, vectype,
+ vec_compare, vec_then_clause, vec_else_clause);
+
+ *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, vec_cond_expr);
+ new_temp = make_ssa_name (vec_dest, *vec_stmt);
+ TREE_OPERAND (*vec_stmt, 0) = new_temp;
+ vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
+
+ return true;
+}
+/* APPLE LOCAL end AV cond expr. -dpatel */
+
+
+/* Function vect_transform_stmt.
+
+ Create a vectorized stmt to replace STMT, and insert it at BSI. */
+
+bool
+vect_transform_stmt (tree stmt, block_stmt_iterator *bsi)
+{
+ bool is_store = false;
+ tree vec_stmt = NULL_TREE;
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+ bool done;
+
+ switch (STMT_VINFO_TYPE (stmt_info))
+ {
+ case op_vec_info_type:
+ done = vectorizable_operation (stmt, bsi, &vec_stmt);
+ gcc_assert (done);
+ break;
+
+ case assignment_vec_info_type:
+ done = vectorizable_assignment (stmt, bsi, &vec_stmt);
+ gcc_assert (done);
+ break;
+
+ case load_vec_info_type:
+ done = vectorizable_load (stmt, bsi, &vec_stmt);
+ gcc_assert (done);
+ break;
+
+ case store_vec_info_type:
+ done = vectorizable_store (stmt, bsi, &vec_stmt);
+ gcc_assert (done);
+ is_store = true;
+ break;
+
+/* APPLE LOCAL begin AV cond expr. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004. */
+ case select_vec_info_type:
+ if (!vectorizable_select (stmt, bsi, &vec_stmt))
+ abort ();
+ break;
+/* APPLE LOCAL end AV cond expr. -dpatel */
+
+ default:
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "stmt not supported.");
+ gcc_unreachable ();
+ }
+
+ STMT_VINFO_VEC_STMT (stmt_info) = vec_stmt;
+
+ return is_store;
+}
+
+
+/* This function builds ni_name = number of iterations loop executes
+ on the loop preheader. */
+
+static tree
+vect_build_loop_niters (loop_vec_info loop_vinfo)
+{
+ tree ni_name, stmt, var;
+ edge pe;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree ni = unshare_expr (LOOP_VINFO_NITERS (loop_vinfo));
+
+ var = create_tmp_var (TREE_TYPE (ni), "niters");
+ add_referenced_tmp_var (var);
+ ni_name = force_gimple_operand (ni, &stmt, false, var);
+
+ pe = loop_preheader_edge (loop);
+ if (stmt)
+ {
+ basic_block new_bb = bsi_insert_on_edge_immediate (pe, stmt);
+ gcc_assert (!new_bb);
+ }
+
+ return ni_name;
+}
+
+
+/* This function generates the following statements:
+
+ ni_name = number of iterations loop executes
+ ratio = ni_name / vf
+ ratio_mult_vf_name = ratio * vf
+
+ and places them at the loop preheader edge. */
+
+static void
+vect_generate_tmps_on_preheader (loop_vec_info loop_vinfo,
+ tree *ni_name_ptr,
+ tree *ratio_mult_vf_name_ptr,
+ tree *ratio_name_ptr)
+{
+
+ edge pe;
+ basic_block new_bb;
+ tree stmt, ni_name;
+ tree var;
+ tree ratio_name;
+ tree ratio_mult_vf_name;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree ni = LOOP_VINFO_NITERS (loop_vinfo);
+ int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
+ tree log_vf = build_int_cst (unsigned_type_node, exact_log2 (vf));
+
+ pe = loop_preheader_edge (loop);
+
+ /* Generate temporary variable that contains
+ number of iterations loop executes. */
+
+ ni_name = vect_build_loop_niters (loop_vinfo);
+
+ /* Create: ratio = ni >> log2(vf) */
+
+ var = create_tmp_var (TREE_TYPE (ni), "bnd");
+ add_referenced_tmp_var (var);
+ ratio_name = make_ssa_name (var, NULL_TREE);
+ stmt = build2 (MODIFY_EXPR, void_type_node, ratio_name,
+ build2 (RSHIFT_EXPR, TREE_TYPE (ni_name), ni_name, log_vf));
+ SSA_NAME_DEF_STMT (ratio_name) = stmt;
+
+ pe = loop_preheader_edge (loop);
+ new_bb = bsi_insert_on_edge_immediate (pe, stmt);
+ gcc_assert (!new_bb);
+
+ /* Create: ratio_mult_vf = ratio << log2 (vf). */
+
+ var = create_tmp_var (TREE_TYPE (ni), "ratio_mult_vf");
+ add_referenced_tmp_var (var);
+ ratio_mult_vf_name = make_ssa_name (var, NULL_TREE);
+ stmt = build2 (MODIFY_EXPR, void_type_node, ratio_mult_vf_name,
+ build2 (LSHIFT_EXPR, TREE_TYPE (ratio_name), ratio_name, log_vf));
+ SSA_NAME_DEF_STMT (ratio_mult_vf_name) = stmt;
+
+ pe = loop_preheader_edge (loop);
+ new_bb = bsi_insert_on_edge_immediate (pe, stmt);
+ gcc_assert (!new_bb);
+
+ *ni_name_ptr = ni_name;
+ *ratio_mult_vf_name_ptr = ratio_mult_vf_name;
+ *ratio_name_ptr = ratio_name;
+
+ return;
+}
+
+
+/* Function vect_update_ivs_after_vectorizer.
+
+ "Advance" the induction variables of LOOP to the value they should take
+ after the execution of LOOP. This is currently necessary because the
+ vectorizer does not handle induction variables that are used after the
+ loop. Such a situation occurs when the last iterations of LOOP are
+ peeled, because:
+ 1. We introduced new uses after LOOP for IVs that were not originally used
+ after LOOP: the IVs of LOOP are now used by an epilog loop.
+ 2. LOOP is going to be vectorized; this means that it will iterate N/VF
+ times, whereas the loop IVs should be bumped N times.
+
+ Input:
+ - LOOP - a loop that is going to be vectorized. The last few iterations
+ of LOOP were peeled.
+ - NITERS - the number of iterations that LOOP executes (before it is
+ vectorized). i.e, the number of times the ivs should be bumped.
+ - UPDATE_E - a successor edge of LOOP->exit that is on the (only) path
+ coming out from LOOP on which there are uses of the LOOP ivs
+ (this is the path from LOOP->exit to epilog_loop->preheader).
+
+ The new definitions of the ivs are placed in LOOP->exit.
+ The phi args associated with the edge UPDATE_E in the bb
+ UPDATE_E->dest are updated accordingly.
+
+ Assumption 1: Like the rest of the vectorizer, this function assumes
+ a single loop exit that has a single predecessor.
+
+ Assumption 2: The phi nodes in the LOOP header and in update_bb are
+ organized in the same order.
+
+ Assumption 3: The access function of the ivs is simple enough (see
+ vect_can_advance_ivs_p). This assumption will be relaxed in the future.
+
+ Assumption 4: Exactly one of the successors of LOOP exit-bb is on a path
+ coming out of LOOP on which the ivs of LOOP are used (this is the path
+ that leads to the epilog loop; other paths skip the epilog loop). This
+ path starts with the edge UPDATE_E, and its destination (denoted update_bb)
+ needs to have its phis updated.
+ */
+
+static void
+vect_update_ivs_after_vectorizer (loop_vec_info loop_vinfo, tree niters,
+ edge update_e)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block exit_bb = loop->exit_edges[0]->dest;
+ tree phi, phi1;
+ basic_block update_bb = update_e->dest;
+
+ /* gcc_assert (vect_can_advance_ivs_p (loop_vinfo)); */
+
+ /* Make sure there exists a single-predecessor exit bb: */
+ gcc_assert (EDGE_COUNT (exit_bb->preds) == 1);
+
+ for (phi = phi_nodes (loop->header), phi1 = phi_nodes (update_bb);
+ phi && phi1;
+ phi = PHI_CHAIN (phi), phi1 = PHI_CHAIN (phi1))
+ {
+ tree access_fn = NULL;
+ tree evolution_part;
+ tree init_expr;
+ tree step_expr;
+ tree var, stmt, ni, ni_name;
+ block_stmt_iterator last_bsi;
+
+ /* Skip virtual phi's. */
+ if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "virtual phi. skip.");
+ continue;
+ }
+
+ access_fn = analyze_scalar_evolution (loop, PHI_RESULT (phi));
+ gcc_assert (access_fn);
+ evolution_part =
+ unshare_expr (evolution_part_in_loop_num (access_fn, loop->num));
+ gcc_assert (evolution_part != NULL_TREE);
+
+ /* FORNOW: We do not support IVs whose evolution function is a polynomial
+ of degree >= 2 or exponential. */
+ gcc_assert (!tree_is_chrec (evolution_part));
+
+ step_expr = evolution_part;
+ init_expr = unshare_expr (initial_condition_in_loop_num (access_fn,
+ loop->num));
+
+ ni = build2 (PLUS_EXPR, TREE_TYPE (init_expr),
+ build2 (MULT_EXPR, TREE_TYPE (niters),
+ niters, step_expr), init_expr);
+
+ var = create_tmp_var (TREE_TYPE (init_expr), "tmp");
+ add_referenced_tmp_var (var);
+
+ ni_name = force_gimple_operand (ni, &stmt, false, var);
+
+ /* Insert stmt into exit_bb. */
+ last_bsi = bsi_last (exit_bb);
+ if (stmt)
+ bsi_insert_before (&last_bsi, stmt, BSI_SAME_STMT);
+
+ /* Fix phi expressions in the successor bb. */
+ gcc_assert (PHI_ARG_DEF_FROM_EDGE (phi1, update_e) ==
+ PHI_ARG_DEF_FROM_EDGE (phi, EDGE_SUCC (loop->latch, 0)));
+ SET_PHI_ARG_DEF (phi1, update_e->dest_idx, ni_name);
+ }
+}
+
+
+/* Function vect_do_peeling_for_loop_bound
+
+ Peel the last iterations of the loop represented by LOOP_VINFO.
+ The peeled iterations form a new epilog loop. Given that the loop now
+ iterates NITERS times, the new epilog loop iterates
+ NITERS % VECTORIZATION_FACTOR times.
+
+ The original loop will later be made to iterate
+ NITERS / VECTORIZATION_FACTOR times (this value is placed into RATIO). */
+
+static void
+vect_do_peeling_for_loop_bound (loop_vec_info loop_vinfo, tree *ratio,
+ struct loops *loops)
+{
+
+ tree ni_name, ratio_mult_vf_name;
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ struct loop *new_loop;
+ edge update_e;
+#ifdef ENABLE_CHECKING
+ int loop_num;
+#endif
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_transtorm_for_unknown_loop_bound ===");
+
+ /* Generate the following variables on the preheader of original loop:
+
+ ni_name = number of iteration the original loop executes
+ ratio = ni_name / vf
+ ratio_mult_vf_name = ratio * vf */
+ vect_generate_tmps_on_preheader (loop_vinfo, &ni_name,
+ &ratio_mult_vf_name, ratio);
+
+ /* Update loop info. */
+ loop->pre_header = loop_preheader_edge (loop)->src;
+ loop->pre_header_edges[0] = loop_preheader_edge (loop);
+
+#ifdef ENABLE_CHECKING
+ loop_num = loop->num;
+#endif
+ new_loop = slpeel_tree_peel_loop_to_edge (loop, loops, loop->exit_edges[0],
+ ratio_mult_vf_name, ni_name, false);
+#ifdef ENABLE_CHECKING
+ gcc_assert (new_loop);
+ gcc_assert (loop_num == loop->num);
+ slpeel_verify_cfg_after_peeling (loop, new_loop);
+#endif
+
+ /* A guard that controls whether the new_loop is to be executed or skipped
+ is placed in LOOP->exit. LOOP->exit therefore has two successors - one
+ is the preheader of NEW_LOOP, where the IVs from LOOP are used. The other
+ is a bb after NEW_LOOP, where these IVs are not used. Find the edge that
+ is on the path where the LOOP IVs are used and need to be updated. */
+
+ if (EDGE_PRED (new_loop->pre_header, 0)->src == loop->exit_edges[0]->dest)
+ update_e = EDGE_PRED (new_loop->pre_header, 0);
+ else
+ update_e = EDGE_PRED (new_loop->pre_header, 1);
+
+ /* Update IVs of original loop as if they were advanced
+ by ratio_mult_vf_name steps. */
+ vect_update_ivs_after_vectorizer (loop_vinfo, ratio_mult_vf_name, update_e);
+
+ /* After peeling we have to reset scalar evolution analyzer. */
+ scev_reset ();
+
+ return;
+}
+
+
+/* Function vect_gen_niters_for_prolog_loop
+
+ Set the number of iterations for the loop represented by LOOP_VINFO
+ to the minimum between LOOP_NITERS (the original iteration count of the loop)
+ and the misalignment of DR - the first data reference recorded in
+ LOOP_VINFO_UNALIGNED_DR (LOOP_VINFO). As a result, after the execution of
+ this loop, the data reference DR will refer to an aligned location.
+
+ The following computation is generated:
+
+ compute address misalignment in bytes:
+ addr_mis = addr & (vectype_size - 1)
+
+ prolog_niters = min ( LOOP_NITERS , (VF - addr_mis/elem_size)&(VF-1) )
+
+ (elem_size = element type size; an element is the scalar element
+ whose type is the inner type of the vectype) */
+
+static tree
+vect_gen_niters_for_prolog_loop (loop_vec_info loop_vinfo, tree loop_niters)
+{
+ struct data_reference *dr = LOOP_VINFO_UNALIGNED_DR (loop_vinfo);
+ int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree var, stmt;
+ tree iters, iters_name;
+ edge pe;
+ basic_block new_bb;
+ tree dr_stmt = DR_STMT (dr);
+ stmt_vec_info stmt_info = vinfo_for_stmt (dr_stmt);
+ tree vectype = STMT_VINFO_VECTYPE (stmt_info);
+ int vectype_align = TYPE_ALIGN (vectype) / BITS_PER_UNIT;
+ tree elem_misalign;
+ tree byte_misalign;
+ tree new_stmts = NULL_TREE;
+ tree start_addr =
+ vect_create_addr_base_for_vector_ref (dr_stmt, &new_stmts, NULL_TREE);
+ tree ptr_type = TREE_TYPE (start_addr);
+ tree size = TYPE_SIZE (ptr_type);
+ tree type = lang_hooks.types.type_for_size (tree_low_cst (size, 1), 1);
+ tree vectype_size_minus_1 = build_int_cst (type, vectype_align - 1);
+ tree vf_minus_1 = build_int_cst (unsigned_type_node, vf - 1);
+ tree niters_type = TREE_TYPE (loop_niters);
+ tree elem_size_log =
+ build_int_cst (unsigned_type_node, exact_log2 (vectype_align/vf));
+ tree vf_tree = build_int_cst (unsigned_type_node, vf);
+
+ pe = loop_preheader_edge (loop);
+ new_bb = bsi_insert_on_edge_immediate (pe, new_stmts);
+ gcc_assert (!new_bb);
+
+ /* Create: byte_misalign = addr & (vectype_size - 1) */
+ byte_misalign = build2 (BIT_AND_EXPR, type, start_addr, vectype_size_minus_1);
+
+ /* Create: elem_misalign = byte_misalign / element_size */
+ elem_misalign =
+ build2 (RSHIFT_EXPR, unsigned_type_node, byte_misalign, elem_size_log);
+
+ /* Create: (niters_type) (VF - elem_misalign)&(VF - 1) */
+ iters = build2 (MINUS_EXPR, unsigned_type_node, vf_tree, elem_misalign);
+ iters = build2 (BIT_AND_EXPR, unsigned_type_node, iters, vf_minus_1);
+ iters = fold_convert (niters_type, iters);
+
+ /* Create: prolog_loop_niters = min (iters, loop_niters) */
+ /* If the loop bound is known at compile time we already verified that it is
+ greater than vf; since the misalignment ('iters') is at most vf, there's
+ no need to generate the MIN_EXPR in this case. */
+ if (TREE_CODE (loop_niters) != INTEGER_CST)
+ iters = build2 (MIN_EXPR, niters_type, iters, loop_niters);
+
+ var = create_tmp_var (niters_type, "prolog_loop_niters");
+ add_referenced_tmp_var (var);
+ iters_name = force_gimple_operand (iters, &stmt, false, var);
+
+ /* Insert stmt on loop preheader edge. */
+ pe = loop_preheader_edge (loop);
+ if (stmt)
+ {
+ basic_block new_bb = bsi_insert_on_edge_immediate (pe, stmt);
+ gcc_assert (!new_bb);
+ }
+
+ return iters_name;
+}
+
+
+/* Function vect_update_inits_of_dr
+
+ NITERS iterations were peeled from LOOP. DR represents a data reference
+ in LOOP. This function updates the information recorded in DR to
+ account for the fact that the first NITERS iterations had already been
+ executed. Specifically, it updates the OFFSET field of stmt_info. */
+
+static void
+vect_update_inits_of_dr (struct data_reference *dr, tree niters)
+{
+ stmt_vec_info stmt_info = vinfo_for_stmt (DR_STMT (dr));
+ tree offset = STMT_VINFO_VECT_INIT_OFFSET (stmt_info);
+
+ niters = fold (build2 (MULT_EXPR, TREE_TYPE (niters), niters,
+ STMT_VINFO_VECT_STEP (stmt_info)));
+ offset = fold (build2 (PLUS_EXPR, TREE_TYPE (offset), offset, niters));
+ STMT_VINFO_VECT_INIT_OFFSET (stmt_info) = offset;
+}
+
+
+/* Function vect_update_inits_of_drs
+
+ NITERS iterations were peeled from the loop represented by LOOP_VINFO.
+ This function updates the information recorded for the data references in
+ the loop to account for the fact that the first NITERS iterations had
+ already been executed. Specifically, it updates the initial_condition of the
+ access_function of all the data_references in the loop. */
+
+static void
+vect_update_inits_of_drs (loop_vec_info loop_vinfo, tree niters)
+{
+ unsigned int i;
+ varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
+ varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
+
+ if (vect_dump && (dump_flags & TDF_DETAILS))
+ fprintf (vect_dump, "=== vect_update_inits_of_dr ===");
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
+ vect_update_inits_of_dr (dr, niters);
+ }
+
+ for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
+ {
+ struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
+ vect_update_inits_of_dr (dr, niters);
+ }
+}
+
+
+/* Function vect_do_peeling_for_alignment
+
+ Peel the first 'niters' iterations of the loop represented by LOOP_VINFO.
+ 'niters' is set to the misalignment of one of the data references in the
+ loop, thereby forcing it to refer to an aligned location at the beginning
+ of the execution of this loop. The data reference for which we are
+ peeling is recorded in LOOP_VINFO_UNALIGNED_DR. */
+
+static void
+vect_do_peeling_for_alignment (loop_vec_info loop_vinfo, struct loops *loops)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ tree niters_of_prolog_loop, ni_name;
+ tree n_iters;
+ struct loop *new_loop;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vect_do_peeling_for_alignment ===");
+
+ ni_name = vect_build_loop_niters (loop_vinfo);
+ niters_of_prolog_loop = vect_gen_niters_for_prolog_loop (loop_vinfo, ni_name);
+
+ /* Peel the prolog loop and iterate it niters_of_prolog_loop. */
+ new_loop =
+ slpeel_tree_peel_loop_to_edge (loop, loops, loop_preheader_edge (loop),
+ niters_of_prolog_loop, ni_name, true);
+#ifdef ENABLE_CHECKING
+ gcc_assert (new_loop);
+ slpeel_verify_cfg_after_peeling (new_loop, loop);
+#endif
+
+ /* Update number of times loop executes. */
+ n_iters = LOOP_VINFO_NITERS (loop_vinfo);
+ LOOP_VINFO_NITERS (loop_vinfo) =
+ build2 (MINUS_EXPR, TREE_TYPE (n_iters), n_iters, niters_of_prolog_loop);
+
+ /* Update the init conditions of the access functions of all data refs. */
+ vect_update_inits_of_drs (loop_vinfo, niters_of_prolog_loop);
+
+ /* After peeling we have to reset scalar evolution analyzer. */
+ scev_reset ();
+
+ return;
+}
+
+
+/* Function vect_transform_loop.
+
+ The analysis phase has determined that the loop is vectorizable.
+ Vectorize the loop - created vectorized stmts to replace the scalar
+ stmts in the loop, and update the loop exit condition. */
+
+void
+vect_transform_loop (loop_vec_info loop_vinfo,
+ struct loops *loops ATTRIBUTE_UNUSED)
+{
+ struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ int nbbs = loop->num_nodes;
+ block_stmt_iterator si;
+ int i;
+ tree ratio = NULL;
+ int vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "=== vec_transform_loop ===");
+
+
+ /* Peel the loop if there are data refs with unknown alignment.
+ Only one data ref with unknown store is allowed. */
+
+ if (LOOP_DO_PEELING_FOR_ALIGNMENT (loop_vinfo))
+ vect_do_peeling_for_alignment (loop_vinfo, loops);
+
+ /* If the loop has a symbolic number of iterations 'n' (i.e. it's not a
+ compile time constant), or it is a constant that doesn't divide by the
+ vectorization factor, then an epilog loop needs to be created.
+ We therefore duplicate the loop: the original loop will be vectorized,
+ and will compute the first (n/VF) iterations. The second copy of the loop
+ will remain scalar and will compute the remaining (n%VF) iterations.
+ (VF is the vectorization factor). */
+
+ if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
+ || (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
+ && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0))
+ vect_do_peeling_for_loop_bound (loop_vinfo, &ratio, loops);
+ else
+ ratio = build_int_cst (TREE_TYPE (LOOP_VINFO_NITERS (loop_vinfo)),
+ LOOP_VINFO_INT_NITERS (loop_vinfo) / vectorization_factor);
+
+ /* 1) Make sure the loop header has exactly two entries
+ 2) Make sure we have a preheader basic block. */
+
+ gcc_assert (EDGE_COUNT (loop->header->preds) == 2);
+
+ loop_split_edge_with (loop_preheader_edge (loop), NULL);
+
+
+ /* FORNOW: the vectorizer supports only loops which body consist
+ of one basic block (header + empty latch). When the vectorizer will
+ support more involved loop forms, the order by which the BBs are
+ traversed need to be reconsidered. */
+
+ for (i = 0; i < nbbs; i++)
+ {
+ basic_block bb = bbs[i];
+
+ for (si = bsi_start (bb); !bsi_end_p (si);)
+ {
+ tree stmt = bsi_stmt (si);
+ stmt_vec_info stmt_info;
+ bool is_store;
+
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ {
+ fprintf (vect_dump, "------>vectorizing statement: ");
+ print_generic_expr (vect_dump, stmt, TDF_SLIM);
+ }
+ stmt_info = vinfo_for_stmt (stmt);
+ gcc_assert (stmt_info);
+ if (!STMT_VINFO_RELEVANT_P (stmt_info))
+ {
+ bsi_next (&si);
+ continue;
+ }
+#ifdef ENABLE_CHECKING
+ /* FORNOW: Verify that all stmts operate on the same number of
+ units and no inner unrolling is necessary. */
+ gcc_assert
+ (GET_MODE_NUNITS (TYPE_MODE (STMT_VINFO_VECTYPE (stmt_info)))
+ == vectorization_factor);
+#endif
+ /* -------- vectorize statement ------------ */
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "transform statement.");
+
+ is_store = vect_transform_stmt (stmt, &si);
+ if (is_store)
+ {
+ /* free the attached stmt_vec_info and remove the stmt. */
+ stmt_ann_t ann = stmt_ann (stmt);
+ free (stmt_info);
+ set_stmt_info (ann, NULL);
+ bsi_remove (&si);
+ continue;
+ }
+
+ bsi_next (&si);
+ } /* stmts in BB */
+ } /* BBs in loop */
+
+ slpeel_make_loop_iterate_ntimes (loop, ratio);
+
+ if (vect_print_dump_info (REPORT_VECTORIZED_LOOPS, LOOP_LOC (loop_vinfo)))
+ fprintf (vect_dump, "LOOP VECTORIZED.");
+}
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 1b01ac2a110..577a27fe00a 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -128,7 +128,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ggc.h"
#include "tree.h"
#include "target.h"
-
#include "rtl.h"
#include "basic-block.h"
#include "diagnostic.h"
@@ -146,146 +145,43 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "input.h"
#include "tree-vectorizer.h"
#include "tree-pass.h"
-#include "langhooks.h"
-
/*************************************************************************
Simple Loop Peeling Utilities
*************************************************************************/
-
-/* Entry point for peeling of simple loops.
- Peel the first/last iterations of a loop.
- It can be used outside of the vectorizer for loops that are simple enough
- (see function documentation). In the vectorizer it is used to peel the
- last few iterations when the loop bound is unknown or does not evenly
- divide by the vectorization factor, and to peel the first few iterations
- to force the alignment of data references in the loop. */
-struct loop *slpeel_tree_peel_loop_to_edge
- (struct loop *, struct loops *, edge, tree, tree, bool);
static struct loop *slpeel_tree_duplicate_loop_to_edge_cfg
(struct loop *, struct loops *, edge);
static void slpeel_update_phis_for_duplicate_loop
(struct loop *, struct loop *, bool after);
static void slpeel_update_phi_nodes_for_guard (edge, struct loop *, bool, bool);
-static void slpeel_make_loop_iterate_ntimes (struct loop *, tree);
static edge slpeel_add_loop_guard (basic_block, tree, basic_block, basic_block);
-static bool slpeel_can_duplicate_loop_p (struct loop *, edge);
+
static void allocate_new_names (bitmap);
static void rename_use_op (use_operand_p);
static void rename_def_op (def_operand_p, tree);
static void rename_variables_in_bb (basic_block);
static void free_new_names (bitmap);
static void rename_variables_in_loop (struct loop *);
-#ifdef ENABLE_CHECKING
-static void slpeel_verify_cfg_after_peeling (struct loop *, struct loop *);
-#endif
-static LOC find_loop_location (struct loop *);
-
-
-/*************************************************************************
- Vectorization Utilities.
- *************************************************************************/
-
-/* Main analysis functions. */
-static loop_vec_info vect_analyze_loop (struct loop *);
-static loop_vec_info vect_analyze_loop_form (struct loop *);
-static bool vect_analyze_data_refs (loop_vec_info);
-static bool vect_mark_stmts_to_be_vectorized (loop_vec_info);
-static bool vect_analyze_scalar_cycles (loop_vec_info);
-static bool vect_analyze_data_ref_accesses (loop_vec_info);
-static bool vect_analyze_data_ref_dependence
- (struct data_reference *, struct data_reference *, loop_vec_info);
-static bool vect_analyze_data_ref_dependences (loop_vec_info);
-static bool vect_analyze_data_refs_alignment (loop_vec_info);
-static bool vect_compute_data_refs_alignment (loop_vec_info);
-static bool vect_analyze_operations (loop_vec_info);
-
-/* Main code transformation functions. */
-static void vect_transform_loop (loop_vec_info, struct loops *);
-static bool vect_transform_stmt (tree, block_stmt_iterator *);
-static bool vectorizable_load (tree, block_stmt_iterator *, tree *);
-static bool vectorizable_store (tree, block_stmt_iterator *, tree *);
-static bool vectorizable_operation (tree, block_stmt_iterator *, tree *);
-static bool vectorizable_assignment (tree, block_stmt_iterator *, tree *);
-static enum dr_alignment_support vect_supportable_dr_alignment
- (struct data_reference *);
-static void vect_align_data_ref (tree);
-static void vect_enhance_data_refs_alignment (loop_vec_info);
-
-/* Utility functions for the analyses. */
-static bool vect_is_simple_use (tree , loop_vec_info, tree *);
-static bool exist_non_indexing_operands_for_use_p (tree, tree);
-static bool vect_is_simple_iv_evolution (unsigned, tree, tree *, tree *);
-static void vect_mark_relevant (varray_type *, tree);
-static bool vect_stmt_relevant_p (tree, loop_vec_info);
-static tree vect_get_loop_niters (struct loop *, tree *);
-static bool vect_compute_data_ref_alignment (struct data_reference *);
-static bool vect_analyze_data_ref_access (struct data_reference *);
-static bool vect_can_force_dr_alignment_p (tree, unsigned int);
-static struct data_reference * vect_analyze_pointer_ref_access
- (tree, tree, bool, tree, tree *, tree *);
-static bool vect_can_advance_ivs_p (loop_vec_info);
-static tree vect_get_ptr_offset (tree, tree, tree *);
-static bool vect_analyze_offset_expr (tree, struct loop *, tree, tree *,
- tree *, tree *);
-static tree vect_strip_conversion (tree);
-static bool vect_base_addr_differ_p (struct data_reference *,
- struct data_reference *drb, bool *);
-static tree vect_object_analysis (tree, tree, bool, tree,
- struct data_reference **, tree *, tree *,
- tree *, bool *);
-static tree vect_address_analysis (tree, tree, bool, tree,
- struct data_reference *, tree *, tree *,
- tree *, bool *);
-static tree vect_get_memtag (tree, struct data_reference *);
-
-/* Utility functions for the code transformation. */
-static tree vect_create_destination_var (tree, tree);
-static tree vect_create_data_ref_ptr
- (tree, block_stmt_iterator *, tree, tree *, bool);
-static tree vect_create_index_for_vector_ref (loop_vec_info);
-static tree vect_create_addr_base_for_vector_ref (tree, tree *, tree);
-static tree get_vectype_for_scalar_type (tree);
-static tree vect_get_new_vect_var (tree, enum vect_var_kind, const char *);
-static tree vect_get_vec_def_for_operand (tree, tree);
-static tree vect_init_vector (tree, tree);
-static void vect_finish_stmt_generation
- (tree stmt, tree vec_stmt, block_stmt_iterator *bsi);
-
-/* Utility function dealing with loop peeling (not peeling itself). */
-static void vect_generate_tmps_on_preheader
- (loop_vec_info, tree *, tree *, tree *);
-static tree vect_build_loop_niters (loop_vec_info);
-static void vect_update_ivs_after_vectorizer (loop_vec_info, tree, edge);
-static tree vect_gen_niters_for_prolog_loop (loop_vec_info, tree);
-static void vect_update_inits_of_dr (struct data_reference *, tree niters);
-static void vect_update_inits_of_drs (loop_vec_info, tree);
-static void vect_do_peeling_for_alignment (loop_vec_info, struct loops *);
-static void vect_do_peeling_for_loop_bound
- (loop_vec_info, tree *, struct loops *);
-
-/* Utilities for creation and deletion of vec_info structs. */
-loop_vec_info new_loop_vec_info (struct loop *loop);
-void destroy_loop_vec_info (loop_vec_info);
-stmt_vec_info new_stmt_vec_info (tree, loop_vec_info);
/*************************************************************************
- Vectorization Debug Information.
+ General Vectorization Utilities
*************************************************************************/
-
-/* vect_verbosity_level set to invalid verbosity level to mark that it's
- uninitialized. */
-enum verbosity_levels vect_verbosity_level = MAX_VERBOSITY_LEVEL;
+static void vect_set_dump_settings (void);
+static bool need_imm_uses_for (tree);
/* vect_dump will be set to stderr or dump_file if exist. */
FILE *vect_dump;
-/* Utilities for output formatting. */
-static bool vect_print_dump_info (enum verbosity_levels, LOC);
-static void vect_set_dump_settings (void);
-void vect_set_verbosity_level (const char *);
+/* vect_verbosity_level set to an invalid value
+ to mark that it's uninitialized. */
+enum verbosity_levels vect_verbosity_level = MAX_VERBOSITY_LEVEL;
+/* APPLE LOCAL begin AV data dependence. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004.
+ New variable, loops_num. */
+unsigned int loops_num;
+/* APPLE LOCAL end AV data dependence. -dpatel */
/*************************************************************************
Simple Loop Peeling Utilities
@@ -671,7 +567,7 @@ slpeel_update_phi_nodes_for_guard (edge guard_edge,
Assumption: the exit-condition of LOOP is the last stmt in the loop. */
-static void
+void
slpeel_make_loop_iterate_ntimes (struct loop *loop, tree niters)
{
tree indx_before_incr, indx_after_incr, cond_stmt, cond;
@@ -878,7 +774,7 @@ slpeel_add_loop_guard (basic_block guard_bb, tree cond, basic_block exit_bb,
(5) E is the entry/exit edge of LOOP.
*/
-static bool
+bool
slpeel_can_duplicate_loop_p (struct loop *loop, edge e)
{
edge exit_e = loop->exit_edges [0];
@@ -906,7 +802,7 @@ slpeel_can_duplicate_loop_p (struct loop *loop, edge e)
}
#ifdef ENABLE_CHECKING
-static void
+void
slpeel_verify_cfg_after_peeling (struct loop *first_loop,
struct loop *second_loop)
{
@@ -1132,7 +1028,7 @@ slpeel_tree_peel_loop_to_edge (struct loop *loop, struct loops *loops,
slpeel_make_loop_iterate_ntimes (first_loop, first_niters);
free_new_names (definitions);
- BITMAP_XFREE (definitions);
+ BITMAP_FREE (definitions);
unmark_all_for_rewrite ();
return new_loop;
@@ -1145,7 +1041,7 @@ slpeel_tree_peel_loop_to_edge (struct loop *loop, struct loops *loops,
location is calculated.
Return the loop location if succeed and NULL if not. */
-static LOC
+LOC
find_loop_location (struct loop *loop)
{
tree node = NULL_TREE;
@@ -1241,7 +1137,7 @@ vect_set_dump_settings (void)
For vectorization debug dumps. */
-static bool
+bool
vect_print_dump_info (enum verbosity_levels vl, LOC loc)
{
if (vl > vect_verbosity_level)
@@ -1259,9 +1155,6 @@ vect_print_dump_info (enum verbosity_levels vl, LOC loc)
}
-
-/* Here the proper Vectorizer starts. */
-
/*************************************************************************
Vectorization Utilities.
*************************************************************************/
@@ -1387,25 +1280,11 @@ destroy_loop_vec_info (loop_vec_info loop_vinfo)
}
-/* Function vect_get_ptr_offset
-
- Compute the OFFSET modulo vector-type alignment of pointer REF in bits. */
-
-static tree
-vect_get_ptr_offset (tree ref ATTRIBUTE_UNUSED,
- tree vectype ATTRIBUTE_UNUSED,
- tree *offset ATTRIBUTE_UNUSED)
-{
- /* TODO: Use alignment information. */
- return NULL_TREE;
-}
-
-
/* Function vect_strip_conversions
Strip conversions that don't narrow the mode. */
-static tree
+tree
vect_strip_conversion (tree expr)
{
tree to, ti, oprnd0;
@@ -1427,207 +1306,12 @@ vect_strip_conversion (tree expr)
}
-/* Function vect_analyze_offset_expr
-
- Given an offset expression EXPR received from get_inner_reference, analyze
- it and create an expression for INITIAL_OFFSET by substituting the variables
- of EXPR with initial_condition of the corresponding access_fn in the loop.
- E.g.,
- for i
- for (j = 3; j < N; j++)
- a[j].b[i][j] = 0;
-
- For a[j].b[i][j], EXPR will be 'i * C_i + j * C_j + C'. 'i' cannot be
- substituted, since its access_fn in the inner loop is i. 'j' will be
- substituted with 3. An INITIAL_OFFSET will be 'i * C_i + C`', where
- C` = 3 * C_j + C.
-
- Compute MISALIGN (the misalignment of the data reference initial access from
- its base) if possible. Misalignment can be calculated only if all the
- variables can be substituted with constants, or if a variable is multiplied
- by a multiple of VECTYPE_ALIGNMENT. In the above example, since 'i' cannot
- be substituted, MISALIGN will be NULL_TREE in case that C_i is not a multiple
- of VECTYPE_ALIGNMENT, and C` otherwise. (We perform MISALIGN modulo
- VECTYPE_ALIGNMENT computation in the caller of this function).
-
- STEP is an evolution of the data reference in this loop in bytes.
- In the above example, STEP is C_j.
-
- Return FALSE, if the analysis fails, e.g., there is no access_fn for a
- variable. In this case, all the outputs (INITIAL_OFFSET, MISALIGN and STEP)
- are NULL_TREEs. Otherwise, return TRUE.
-
-*/
-
-static bool
-vect_analyze_offset_expr (tree expr,
- struct loop *loop,
- tree vectype_alignment,
- tree *initial_offset,
- tree *misalign,
- tree *step)
-{
- tree oprnd0;
- tree oprnd1;
- tree left_offset = ssize_int (0);
- tree right_offset = ssize_int (0);
- tree left_misalign = ssize_int (0);
- tree right_misalign = ssize_int (0);
- tree left_step = ssize_int (0);
- tree right_step = ssize_int (0);
- enum tree_code code;
- tree init, evolution;
-
- *step = NULL_TREE;
- *misalign = NULL_TREE;
- *initial_offset = NULL_TREE;
-
- /* Strip conversions that don't narrow the mode. */
- expr = vect_strip_conversion (expr);
- if (!expr)
- return false;
-
- /* Stop conditions:
- 1. Constant. */
- if (TREE_CODE (expr) == INTEGER_CST)
- {
- *initial_offset = fold_convert (ssizetype, expr);
- *misalign = fold_convert (ssizetype, expr);
- *step = ssize_int (0);
- return true;
- }
-
- /* 2. Variable. Try to substitute with initial_condition of the corresponding
- access_fn in the current loop. */
- if (SSA_VAR_P (expr))
- {
- tree access_fn = analyze_scalar_evolution (loop, expr);
-
- if (access_fn == chrec_dont_know)
- /* No access_fn. */
- return false;
-
- init = initial_condition_in_loop_num (access_fn, loop->num);
- if (init == expr && !expr_invariant_in_loop_p (loop, init))
- /* Not enough information: may be not loop invariant.
- E.g., for a[b[i]], we get a[D], where D=b[i]. EXPR is D, its
- initial_condition is D, but it depends on i - loop's induction
- variable. */
- return false;
-
- evolution = evolution_part_in_loop_num (access_fn, loop->num);
- if (evolution && TREE_CODE (evolution) != INTEGER_CST)
- /* Evolution is not constant. */
- return false;
-
- if (TREE_CODE (init) == INTEGER_CST)
- *misalign = fold_convert (ssizetype, init);
- else
- /* Not constant, misalignment cannot be calculated. */
- *misalign = NULL_TREE;
-
- *initial_offset = fold_convert (ssizetype, init);
-
- *step = evolution ? fold_convert (ssizetype, evolution) : ssize_int (0);
- return true;
- }
-
- /* Recursive computation. */
- if (!BINARY_CLASS_P (expr))
- {
- /* We expect to get binary expressions (PLUS/MINUS and MULT). */
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Not binary expression ");
- print_generic_expr (vect_dump, expr, TDF_SLIM);
- }
- return false;
- }
- oprnd0 = TREE_OPERAND (expr, 0);
- oprnd1 = TREE_OPERAND (expr, 1);
-
- if (!vect_analyze_offset_expr (oprnd0, loop, vectype_alignment, &left_offset,
- &left_misalign, &left_step)
- || !vect_analyze_offset_expr (oprnd1, loop, vectype_alignment,
- &right_offset, &right_misalign, &right_step))
- return false;
-
- /* The type of the operation: plus, minus or mult. */
- code = TREE_CODE (expr);
- switch (code)
- {
- case MULT_EXPR:
- if (TREE_CODE (right_offset) != INTEGER_CST)
- /* RIGHT_OFFSET can be not constant. For example, for arrays of variable
- sized types.
- FORNOW: We don't support such cases. */
- return false;
-
- /* Strip conversions that don't narrow the mode. */
- left_offset = vect_strip_conversion (left_offset);
- if (!left_offset)
- return false;
- /* Misalignment computation. */
- if (SSA_VAR_P (left_offset))
- {
- /* If the left side contains variables that can't be substituted with
- constants, we check if the right side is a multiple of ALIGNMENT.
- */
- if (integer_zerop (size_binop (TRUNC_MOD_EXPR, right_offset,
- fold_convert (ssizetype, vectype_alignment))))
- *misalign = ssize_int (0);
- else
- /* If the remainder is not zero or the right side isn't constant,
- we can't compute misalignment. */
- *misalign = NULL_TREE;
- }
- else
- {
- /* The left operand was successfully substituted with constant. */
- if (left_misalign)
- /* In case of EXPR '(i * C1 + j) * C2', LEFT_MISALIGN is
- NULL_TREE. */
- *misalign = size_binop (code, left_misalign, right_misalign);
- else
- *misalign = NULL_TREE;
- }
-
- /* Step calculation. */
- /* Multiply the step by the right operand. */
- *step = size_binop (MULT_EXPR, left_step, right_offset);
- break;
-
- case PLUS_EXPR:
- case MINUS_EXPR:
- /* Combine the recursive calculations for step and misalignment. */
- *step = size_binop (code, left_step, right_step);
-
- if (left_misalign && right_misalign)
- *misalign = size_binop (code, left_misalign, right_misalign);
- else
- *misalign = NULL_TREE;
-
- break;
-
- default:
- gcc_unreachable ();
- }
-
- /* Compute offset. */
- *initial_offset = fold_convert (ssizetype,
- fold (build2 (code, TREE_TYPE (left_offset),
- left_offset,
- right_offset)));
- return true;
-}
-
-
/* Function vect_force_dr_alignment_p.
Returns whether the alignment of a DECL can be forced to be aligned
on ALIGNMENT bit boundary. */
-static bool
+bool
vect_can_force_dr_alignment_p (tree decl, unsigned int alignment)
{
if (TREE_CODE (decl) != VAR_DECL)
@@ -1651,172 +1335,12 @@ vect_can_force_dr_alignment_p (tree decl, unsigned int alignment)
}
-/* Function vect_get_new_vect_var.
-
- Returns a name for a new variable. The current naming scheme appends the
- prefix "vect_" or "vect_p" (depending on the value of VAR_KIND) to
- the name of vectorizer generated variables, and appends that to NAME if
- provided. */
-
-static tree
-vect_get_new_vect_var (tree type, enum vect_var_kind var_kind, const char *name)
-{
- const char *prefix;
- int prefix_len;
- tree new_vect_var;
-
- if (var_kind == vect_simple_var)
- prefix = "vect_";
- else
- prefix = "vect_p";
-
- prefix_len = strlen (prefix);
-
- if (name)
- new_vect_var = create_tmp_var (type, concat (prefix, name, NULL));
- else
- new_vect_var = create_tmp_var (type, prefix);
-
- return new_vect_var;
-}
-
-
-/* Function vect_create_index_for_vector_ref.
-
- Create (and return) an index variable, along with it's update chain in the
- loop. This variable will be used to access a memory location in a vector
- operation.
-
- Input:
- LOOP: The loop being vectorized.
- BSI: The block_stmt_iterator where STMT is. Any new stmts created by this
- function can be added here, or in the loop pre-header.
-
- Output:
- Return an index that will be used to index a vector array. It is expected
- that a pointer to the first vector will be used as the base address for the
- indexed reference.
-
- FORNOW: we are not trying to be efficient, just creating a new index each
- time from scratch. At this time all vector references could use the same
- index.
-
- TODO: create only one index to be used by all vector references. Record
- the index in the LOOP_VINFO the first time this procedure is called and
- return it on subsequent calls. The increment of this index must be placed
- just before the conditional expression that ends the single block loop. */
-
-static tree
-vect_create_index_for_vector_ref (loop_vec_info loop_vinfo)
-{
- tree init, step;
- block_stmt_iterator incr_bsi;
- bool insert_after;
- tree indx_before_incr, indx_after_incr;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree incr;
-
- /* It is assumed that the base pointer used for vectorized access contains
- the address of the first vector. Therefore the index used for vectorized
- access must be initialized to zero and incremented by 1. */
-
- init = integer_zero_node;
- step = integer_one_node;
-
- standard_iv_increment_position (loop, &incr_bsi, &insert_after);
- create_iv (init, step, NULL_TREE, loop, &incr_bsi, insert_after,
- &indx_before_incr, &indx_after_incr);
- incr = bsi_stmt (incr_bsi);
- get_stmt_operands (incr);
- set_stmt_info (stmt_ann (incr), new_stmt_vec_info (incr, loop_vinfo));
-
- return indx_before_incr;
-}
-
-
-/* Function vect_create_addr_base_for_vector_ref.
-
- Create an expression that computes the address of the first memory location
- that will be accessed for a data reference.
-
- Input:
- STMT: The statement containing the data reference.
- NEW_STMT_LIST: Must be initialized to NULL_TREE or a statement list.
- OFFSET: Optional. If supplied, it is be added to the initial address.
-
- Output:
- 1. Return an SSA_NAME whose value is the address of the memory location of
- the first vector of the data reference.
- 2. If new_stmt_list is not NULL_TREE after return then the caller must insert
- these statement(s) which define the returned SSA_NAME.
-
- FORNOW: We are only handling array accesses with step 1. */
-
-static tree
-vect_create_addr_base_for_vector_ref (tree stmt,
- tree *new_stmt_list,
- tree offset)
-{
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
- tree data_ref_base =
- unshare_expr (STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info));
- tree base_name = build_fold_indirect_ref (data_ref_base);
- tree ref = DR_REF (dr);
- tree scalar_type = TREE_TYPE (ref);
- tree scalar_ptr_type = build_pointer_type (scalar_type);
- tree vec_stmt;
- tree new_temp;
- tree addr_base, addr_expr;
- tree dest, new_stmt;
- tree base_offset = unshare_expr (STMT_VINFO_VECT_INIT_OFFSET (stmt_info));
-
- /* Create base_offset */
- dest = create_tmp_var (TREE_TYPE (base_offset), "base_off");
- add_referenced_tmp_var (dest);
- base_offset = force_gimple_operand (base_offset, &new_stmt, false, dest);
- append_to_statement_list_force (new_stmt, new_stmt_list);
-
- if (offset)
- {
- tree tmp = create_tmp_var (TREE_TYPE (base_offset), "offset");
- add_referenced_tmp_var (tmp);
- offset = fold (build2 (MULT_EXPR, TREE_TYPE (offset), offset,
- STMT_VINFO_VECT_STEP (stmt_info)));
- base_offset = fold (build2 (PLUS_EXPR, TREE_TYPE (base_offset),
- base_offset, offset));
- base_offset = force_gimple_operand (base_offset, &new_stmt, false, tmp);
- append_to_statement_list_force (new_stmt, new_stmt_list);
- }
-
- /* base + base_offset */
- addr_base = fold (build2 (PLUS_EXPR, TREE_TYPE (data_ref_base), data_ref_base,
- base_offset));
-
- /* addr_expr = addr_base */
- addr_expr = vect_get_new_vect_var (scalar_ptr_type, vect_pointer_var,
- get_name (base_name));
- add_referenced_tmp_var (addr_expr);
- vec_stmt = build2 (MODIFY_EXPR, void_type_node, addr_expr, addr_base);
- new_temp = make_ssa_name (addr_expr, vec_stmt);
- TREE_OPERAND (vec_stmt, 0) = new_temp;
- append_to_statement_list_force (vec_stmt, new_stmt_list);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "created ");
- print_generic_expr (vect_dump, vec_stmt, TDF_SLIM);
- }
- return new_temp;
-}
-
-
/* Function get_vectype_for_scalar_type.
Returns the vector type corresponding to SCALAR_TYPE as supported
by the target. */
-static tree
+tree
get_vectype_for_scalar_type (tree scalar_type)
{
enum machine_mode inner_mode = TYPE_MODE (scalar_type);
@@ -1861,911 +1385,12 @@ get_vectype_for_scalar_type (tree scalar_type)
}
-/* Function vect_align_data_ref.
-
- Handle mislignment of a memory accesses.
-
- FORNOW: Can't handle misaligned accesses.
- Make sure that the dataref is aligned. */
-
-static void
-vect_align_data_ref (tree stmt)
-{
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
-
- /* FORNOW: can't handle misaligned accesses;
- all accesses expected to be aligned. */
- gcc_assert (aligned_access_p (dr));
-}
-
-
-/* Function vect_create_data_ref_ptr.
-
- Create a memory reference expression for vector access, to be used in a
- vector load/store stmt. The reference is based on a new pointer to vector
- type (vp).
-
- Input:
- 1. STMT: a stmt that references memory. Expected to be of the form
- MODIFY_EXPR <name, data-ref> or MODIFY_EXPR <data-ref, name>.
- 2. BSI: block_stmt_iterator where new stmts can be added.
- 3. OFFSET (optional): an offset to be added to the initial address accessed
- by the data-ref in STMT.
- 4. ONLY_INIT: indicate if vp is to be updated in the loop, or remain
- pointing to the initial address.
-
- Output:
- 1. Declare a new ptr to vector_type, and have it point to the base of the
- data reference (initial addressed accessed by the data reference).
- For example, for vector of type V8HI, the following code is generated:
-
- v8hi *vp;
- vp = (v8hi *)initial_address;
-
- if OFFSET is not supplied:
- initial_address = &a[init];
- if OFFSET is supplied:
- initial_address = &a[init + OFFSET];
-
- Return the initial_address in INITIAL_ADDRESS.
-
- 2. Create a data-reference in the loop based on the new vector pointer vp,
- and using a new index variable 'idx' as follows:
-
- vp' = vp + update
-
- where if ONLY_INIT is true:
- update = zero
- and otherwise
- update = idx + vector_type_size
-
- Return the pointer vp'.
-
-
- FORNOW: handle only aligned and consecutive accesses. */
-
-static tree
-vect_create_data_ref_ptr (tree stmt, block_stmt_iterator *bsi, tree offset,
- tree *initial_address, bool only_init)
-{
- tree base_name;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree vectype = STMT_VINFO_VECTYPE (stmt_info);
- tree vect_ptr_type;
- tree vect_ptr;
- tree tag;
- v_may_def_optype v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
- v_must_def_optype v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
- vuse_optype vuses = STMT_VUSE_OPS (stmt);
- int nvuses, nv_may_defs, nv_must_defs;
- int i;
- tree new_temp;
- tree vec_stmt;
- tree new_stmt_list = NULL_TREE;
- tree idx;
- edge pe = loop_preheader_edge (loop);
- basic_block new_bb;
- tree vect_ptr_init;
- tree vectype_size;
- tree ptr_update;
- tree data_ref_ptr;
- tree type, tmp, size;
-
- base_name = build_fold_indirect_ref (unshare_expr (
- STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info)));
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- tree data_ref_base = base_name;
- fprintf (vect_dump, "create array_ref of type: ");
- print_generic_expr (vect_dump, vectype, TDF_SLIM);
- if (TREE_CODE (data_ref_base) == VAR_DECL)
- fprintf (vect_dump, " vectorizing a one dimensional array ref: ");
- else if (TREE_CODE (data_ref_base) == ARRAY_REF)
- fprintf (vect_dump, " vectorizing a multidimensional array ref: ");
- else if (TREE_CODE (data_ref_base) == COMPONENT_REF)
- fprintf (vect_dump, " vectorizing a record based array ref: ");
- else if (TREE_CODE (data_ref_base) == SSA_NAME)
- fprintf (vect_dump, " vectorizing a pointer ref: ");
- print_generic_expr (vect_dump, base_name, TDF_SLIM);
- }
-
- /** (1) Create the new vector-pointer variable: **/
-
- vect_ptr_type = build_pointer_type (vectype);
- vect_ptr = vect_get_new_vect_var (vect_ptr_type, vect_pointer_var,
- get_name (base_name));
- add_referenced_tmp_var (vect_ptr);
-
-
- /** (2) Handle aliasing information of the new vector-pointer: **/
-
- tag = STMT_VINFO_MEMTAG (stmt_info);
- gcc_assert (tag);
- get_var_ann (vect_ptr)->type_mem_tag = tag;
-
- /* Mark for renaming all aliased variables
- (i.e, the may-aliases of the type-mem-tag). */
- nvuses = NUM_VUSES (vuses);
- nv_may_defs = NUM_V_MAY_DEFS (v_may_defs);
- nv_must_defs = NUM_V_MUST_DEFS (v_must_defs);
- for (i = 0; i < nvuses; i++)
- {
- tree use = VUSE_OP (vuses, i);
- if (TREE_CODE (use) == SSA_NAME)
- bitmap_set_bit (vars_to_rename, var_ann (SSA_NAME_VAR (use))->uid);
- }
- for (i = 0; i < nv_may_defs; i++)
- {
- tree def = V_MAY_DEF_RESULT (v_may_defs, i);
- if (TREE_CODE (def) == SSA_NAME)
- bitmap_set_bit (vars_to_rename, var_ann (SSA_NAME_VAR (def))->uid);
- }
- for (i = 0; i < nv_must_defs; i++)
- {
- tree def = V_MUST_DEF_RESULT (v_must_defs, i);
- if (TREE_CODE (def) == SSA_NAME)
- bitmap_set_bit (vars_to_rename, var_ann (SSA_NAME_VAR (def))->uid);
- }
-
-
- /** (3) Calculate the initial address the vector-pointer, and set
- the vector-pointer to point to it before the loop: **/
-
- /* Create: (&(base[init_val+offset]) in the loop preheader. */
- new_temp = vect_create_addr_base_for_vector_ref (stmt, &new_stmt_list,
- offset);
- pe = loop_preheader_edge (loop);
- new_bb = bsi_insert_on_edge_immediate (pe, new_stmt_list);
- gcc_assert (!new_bb);
- *initial_address = new_temp;
-
- /* Create: p = (vectype *) initial_base */
- vec_stmt = fold_convert (vect_ptr_type, new_temp);
- vec_stmt = build2 (MODIFY_EXPR, void_type_node, vect_ptr, vec_stmt);
- new_temp = make_ssa_name (vect_ptr, vec_stmt);
- TREE_OPERAND (vec_stmt, 0) = new_temp;
- new_bb = bsi_insert_on_edge_immediate (pe, vec_stmt);
- gcc_assert (!new_bb);
- vect_ptr_init = TREE_OPERAND (vec_stmt, 0);
-
-
- /** (4) Handle the updating of the vector-pointer inside the loop: **/
-
- if (only_init) /* No update in loop is required. */
- return vect_ptr_init;
-
- idx = vect_create_index_for_vector_ref (loop_vinfo);
-
- /* Create: update = idx * vectype_size */
- tmp = create_tmp_var (integer_type_node, "update");
- add_referenced_tmp_var (tmp);
- size = TYPE_SIZE (vect_ptr_type);
- type = lang_hooks.types.type_for_size (tree_low_cst (size, 1), 1);
- ptr_update = create_tmp_var (type, "update");
- add_referenced_tmp_var (ptr_update);
- vectype_size = TYPE_SIZE_UNIT (vectype);
- vec_stmt = build2 (MULT_EXPR, integer_type_node, idx, vectype_size);
- vec_stmt = build2 (MODIFY_EXPR, void_type_node, tmp, vec_stmt);
- new_temp = make_ssa_name (tmp, vec_stmt);
- TREE_OPERAND (vec_stmt, 0) = new_temp;
- bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
- vec_stmt = fold_convert (type, new_temp);
- vec_stmt = build2 (MODIFY_EXPR, void_type_node, ptr_update, vec_stmt);
- new_temp = make_ssa_name (ptr_update, vec_stmt);
- TREE_OPERAND (vec_stmt, 0) = new_temp;
- bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
-
- /* Create: data_ref_ptr = vect_ptr_init + update */
- vec_stmt = build2 (PLUS_EXPR, vect_ptr_type, vect_ptr_init, new_temp);
- vec_stmt = build2 (MODIFY_EXPR, void_type_node, vect_ptr, vec_stmt);
- new_temp = make_ssa_name (vect_ptr, vec_stmt);
- TREE_OPERAND (vec_stmt, 0) = new_temp;
- bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
- data_ref_ptr = TREE_OPERAND (vec_stmt, 0);
-
- return data_ref_ptr;
-}
-
-
-/* Function vect_create_destination_var.
-
- Create a new temporary of type VECTYPE. */
-
-static tree
-vect_create_destination_var (tree scalar_dest, tree vectype)
-{
- tree vec_dest;
- const char *new_name;
-
- gcc_assert (TREE_CODE (scalar_dest) == SSA_NAME);
-
- new_name = get_name (scalar_dest);
- if (!new_name)
- new_name = "var_";
- vec_dest = vect_get_new_vect_var (vectype, vect_simple_var, new_name);
- add_referenced_tmp_var (vec_dest);
-
- return vec_dest;
-}
-
-
-/* Function vect_init_vector.
-
- Insert a new stmt (INIT_STMT) that initializes a new vector variable with
- the vector elements of VECTOR_VAR. Return the DEF of INIT_STMT. It will be
- used in the vectorization of STMT. */
-
-static tree
-vect_init_vector (tree stmt, tree vector_var)
-{
- stmt_vec_info stmt_vinfo = vinfo_for_stmt (stmt);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree new_var;
- tree init_stmt;
- tree vectype = STMT_VINFO_VECTYPE (stmt_vinfo);
- tree vec_oprnd;
- edge pe;
- tree new_temp;
- basic_block new_bb;
-
- new_var = vect_get_new_vect_var (vectype, vect_simple_var, "cst_");
- add_referenced_tmp_var (new_var);
-
- init_stmt = build2 (MODIFY_EXPR, vectype, new_var, vector_var);
- new_temp = make_ssa_name (new_var, init_stmt);
- TREE_OPERAND (init_stmt, 0) = new_temp;
-
- pe = loop_preheader_edge (loop);
- new_bb = bsi_insert_on_edge_immediate (pe, init_stmt);
- gcc_assert (!new_bb);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "created new init_stmt: ");
- print_generic_expr (vect_dump, init_stmt, TDF_SLIM);
- }
-
- vec_oprnd = TREE_OPERAND (init_stmt, 0);
- return vec_oprnd;
-}
-
-
-/* Function vect_get_vec_def_for_operand.
-
- OP is an operand in STMT. This function returns a (vector) def that will be
- used in the vectorized stmt for STMT.
-
- In the case that OP is an SSA_NAME which is defined in the loop, then
- STMT_VINFO_VEC_STMT of the defining stmt holds the relevant def.
-
- In case OP is an invariant or constant, a new stmt that creates a vector def
- needs to be introduced. */
-
-static tree
-vect_get_vec_def_for_operand (tree op, tree stmt)
-{
- tree vec_oprnd;
- tree vec_stmt;
- tree def_stmt;
- stmt_vec_info def_stmt_info = NULL;
- stmt_vec_info stmt_vinfo = vinfo_for_stmt (stmt);
- tree vectype = STMT_VINFO_VECTYPE (stmt_vinfo);
- int nunits = GET_MODE_NUNITS (TYPE_MODE (vectype));
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block bb;
- tree vec_inv;
- tree t = NULL_TREE;
- tree def;
- int i;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "vect_get_vec_def_for_operand: ");
- print_generic_expr (vect_dump, op, TDF_SLIM);
- }
-
- /** ===> Case 1: operand is a constant. **/
-
- if (TREE_CODE (op) == INTEGER_CST || TREE_CODE (op) == REAL_CST)
- {
- /* Create 'vect_cst_ = {cst,cst,...,cst}' */
-
- tree vec_cst;
-
- /* Build a tree with vector elements. */
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "Create vector_cst. nunits = %d", nunits);
-
- for (i = nunits - 1; i >= 0; --i)
- {
- t = tree_cons (NULL_TREE, op, t);
- }
- vec_cst = build_vector (vectype, t);
- return vect_init_vector (stmt, vec_cst);
- }
-
- gcc_assert (TREE_CODE (op) == SSA_NAME);
-
- /** ===> Case 2: operand is an SSA_NAME - find the stmt that defines it. **/
-
- def_stmt = SSA_NAME_DEF_STMT (op);
- def_stmt_info = vinfo_for_stmt (def_stmt);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "vect_get_vec_def_for_operand: def_stmt: ");
- print_generic_expr (vect_dump, def_stmt, TDF_SLIM);
- }
-
-
- /** ==> Case 2.1: operand is defined inside the loop. **/
-
- if (def_stmt_info)
- {
- /* Get the def from the vectorized stmt. */
-
- vec_stmt = STMT_VINFO_VEC_STMT (def_stmt_info);
- gcc_assert (vec_stmt);
- vec_oprnd = TREE_OPERAND (vec_stmt, 0);
- return vec_oprnd;
- }
-
-
- /** ==> Case 2.2: operand is defined by the loop-header phi-node -
- it is a reduction/induction. **/
-
- bb = bb_for_stmt (def_stmt);
- if (TREE_CODE (def_stmt) == PHI_NODE && flow_bb_inside_loop_p (loop, bb))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "reduction/induction - unsupported.");
- internal_error ("no support for reduction/induction"); /* FORNOW */
- }
-
-
- /** ==> Case 2.3: operand is defined outside the loop -
- it is a loop invariant. */
-
- switch (TREE_CODE (def_stmt))
- {
- case PHI_NODE:
- def = PHI_RESULT (def_stmt);
- break;
- case MODIFY_EXPR:
- def = TREE_OPERAND (def_stmt, 0);
- break;
- case NOP_EXPR:
- def = TREE_OPERAND (def_stmt, 0);
- gcc_assert (IS_EMPTY_STMT (def_stmt));
- def = op;
- break;
- default:
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "unsupported defining stmt: ");
- print_generic_expr (vect_dump, def_stmt, TDF_SLIM);
- }
- internal_error ("unsupported defining stmt");
- }
-
- /* Build a tree with vector elements.
- Create 'vec_inv = {inv,inv,..,inv}' */
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "Create vector_inv.");
-
- for (i = nunits - 1; i >= 0; --i)
- {
- t = tree_cons (NULL_TREE, def, t);
- }
-
- vec_inv = build_constructor (vectype, t);
- return vect_init_vector (stmt, vec_inv);
-}
-
-
-/* Function vect_finish_stmt_generation.
-
- Insert a new stmt. */
-
-static void
-vect_finish_stmt_generation (tree stmt, tree vec_stmt, block_stmt_iterator *bsi)
-{
- bsi_insert_before (bsi, vec_stmt, BSI_SAME_STMT);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "add new stmt: ");
- print_generic_expr (vect_dump, vec_stmt, TDF_SLIM);
- }
-
-#ifdef ENABLE_CHECKING
- /* Make sure bsi points to the stmt that is being vectorized. */
- gcc_assert (stmt == bsi_stmt (*bsi));
-#endif
-
-#ifdef USE_MAPPED_LOCATION
- SET_EXPR_LOCATION (vec_stmt, EXPR_LOCUS (stmt));
-#else
- SET_EXPR_LOCUS (vec_stmt, EXPR_LOCUS (stmt));
-#endif
-}
-
-
-/* Function vectorizable_assignment.
-
- Check if STMT performs an assignment (copy) that can be vectorized.
- If VEC_STMT is also passed, vectorize the STMT: create a vectorized
- stmt to replace it, put it in VEC_STMT, and insert it at BSI.
- Return FALSE if not a vectorizable STMT, TRUE otherwise. */
-
-static bool
-vectorizable_assignment (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
-{
- tree vec_dest;
- tree scalar_dest;
- tree op;
- tree vec_oprnd;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- tree vectype = STMT_VINFO_VECTYPE (stmt_info);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- tree new_temp;
-
- /* Is vectorizable assignment? */
-
- if (TREE_CODE (stmt) != MODIFY_EXPR)
- return false;
-
- scalar_dest = TREE_OPERAND (stmt, 0);
- if (TREE_CODE (scalar_dest) != SSA_NAME)
- return false;
-
- op = TREE_OPERAND (stmt, 1);
- if (!vect_is_simple_use (op, loop_vinfo, NULL))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "use not simple.");
- return false;
- }
-
- if (!vec_stmt) /* transformation not required. */
- {
- STMT_VINFO_TYPE (stmt_info) = assignment_vec_info_type;
- return true;
- }
-
- /** Transform. **/
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "transform assignment.");
-
- /* Handle def. */
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
-
- /* Handle use. */
- op = TREE_OPERAND (stmt, 1);
- vec_oprnd = vect_get_vec_def_for_operand (op, stmt);
-
- /* Arguments are ready. create the new vector stmt. */
- *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, vec_oprnd);
- new_temp = make_ssa_name (vec_dest, *vec_stmt);
- TREE_OPERAND (*vec_stmt, 0) = new_temp;
- vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
-
- return true;
-}
-
-
-/* Function vectorizable_operation.
-
- Check if STMT performs a binary or unary operation that can be vectorized.
- If VEC_STMT is also passed, vectorize the STMT: create a vectorized
- stmt to replace it, put it in VEC_STMT, and insert it at BSI.
- Return FALSE if not a vectorizable STMT, TRUE otherwise. */
-
-static bool
-vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
-{
- tree vec_dest;
- tree scalar_dest;
- tree operation;
- tree op0, op1 = NULL;
- tree vec_oprnd0, vec_oprnd1=NULL;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- tree vectype = STMT_VINFO_VECTYPE (stmt_info);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- int i;
- enum tree_code code;
- enum machine_mode vec_mode;
- tree new_temp;
- int op_type;
- tree op;
- optab optab;
-
- /* Is STMT a vectorizable binary/unary operation? */
- if (TREE_CODE (stmt) != MODIFY_EXPR)
- return false;
-
- if (TREE_CODE (TREE_OPERAND (stmt, 0)) != SSA_NAME)
- return false;
-
- operation = TREE_OPERAND (stmt, 1);
- code = TREE_CODE (operation);
- optab = optab_for_tree_code (code, vectype);
-
- /* Support only unary or binary operations. */
- op_type = TREE_CODE_LENGTH (code);
- if (op_type != unary_op && op_type != binary_op)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "num. args = %d (not unary/binary op).", op_type);
- return false;
- }
-
- for (i = 0; i < op_type; i++)
- {
- op = TREE_OPERAND (operation, i);
- if (!vect_is_simple_use (op, loop_vinfo, NULL))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "use not simple.");
- return false;
- }
- }
-
- /* Supportable by target? */
- if (!optab)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "no optab.");
- return false;
- }
- vec_mode = TYPE_MODE (vectype);
- if (optab->handlers[(int) vec_mode].insn_code == CODE_FOR_nothing)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "op not supported by target.");
- return false;
- }
-
- if (!vec_stmt) /* transformation not required. */
- {
- STMT_VINFO_TYPE (stmt_info) = op_vec_info_type;
- return true;
- }
-
- /** Transform. **/
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "transform binary/unary operation.");
-
- /* Handle def. */
- scalar_dest = TREE_OPERAND (stmt, 0);
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
-
- /* Handle uses. */
- op0 = TREE_OPERAND (operation, 0);
- vec_oprnd0 = vect_get_vec_def_for_operand (op0, stmt);
-
- if (op_type == binary_op)
- {
- op1 = TREE_OPERAND (operation, 1);
- vec_oprnd1 = vect_get_vec_def_for_operand (op1, stmt);
- }
-
- /* Arguments are ready. create the new vector stmt. */
-
- if (op_type == binary_op)
- *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest,
- build2 (code, vectype, vec_oprnd0, vec_oprnd1));
- else
- *vec_stmt = build2 (MODIFY_EXPR, vectype, vec_dest,
- build1 (code, vectype, vec_oprnd0));
- new_temp = make_ssa_name (vec_dest, *vec_stmt);
- TREE_OPERAND (*vec_stmt, 0) = new_temp;
- vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
-
- return true;
-}
-
-
-/* Function vectorizable_store.
-
- Check if STMT defines a non scalar data-ref (array/pointer/structure) that
- can be vectorized.
- If VEC_STMT is also passed, vectorize the STMT: create a vectorized
- stmt to replace it, put it in VEC_STMT, and insert it at BSI.
- Return FALSE if not a vectorizable STMT, TRUE otherwise. */
-
-static bool
-vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
-{
- tree scalar_dest;
- tree data_ref;
- tree op;
- tree vec_oprnd1;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
- tree vectype = STMT_VINFO_VECTYPE (stmt_info);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- enum machine_mode vec_mode;
- tree dummy;
- enum dr_alignment_support alignment_support_cheme;
-
- /* Is vectorizable store? */
-
- if (TREE_CODE (stmt) != MODIFY_EXPR)
- return false;
-
- scalar_dest = TREE_OPERAND (stmt, 0);
- if (TREE_CODE (scalar_dest) != ARRAY_REF
- && TREE_CODE (scalar_dest) != INDIRECT_REF)
- return false;
-
- op = TREE_OPERAND (stmt, 1);
- if (!vect_is_simple_use (op, loop_vinfo, NULL))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "use not simple.");
- return false;
- }
-
- vec_mode = TYPE_MODE (vectype);
- /* FORNOW. In some cases can vectorize even if data-type not supported
- (e.g. - array initialization with 0). */
- if (mov_optab->handlers[(int)vec_mode].insn_code == CODE_FOR_nothing)
- return false;
-
- if (!STMT_VINFO_DATA_REF (stmt_info))
- return false;
-
-
- if (!vec_stmt) /* transformation not required. */
- {
- STMT_VINFO_TYPE (stmt_info) = store_vec_info_type;
- return true;
- }
-
- /** Transform. **/
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "transform store");
-
- alignment_support_cheme = vect_supportable_dr_alignment (dr);
- gcc_assert (alignment_support_cheme);
- gcc_assert (alignment_support_cheme = dr_aligned); /* FORNOW */
-
- /* Handle use - get the vectorized def from the defining stmt. */
- vec_oprnd1 = vect_get_vec_def_for_operand (op, stmt);
-
- /* Handle def. */
- /* FORNOW: make sure the data reference is aligned. */
- vect_align_data_ref (stmt);
- data_ref = vect_create_data_ref_ptr (stmt, bsi, NULL_TREE, &dummy, false);
- data_ref = build_fold_indirect_ref (data_ref);
-
- /* Arguments are ready. create the new vector stmt. */
- *vec_stmt = build2 (MODIFY_EXPR, vectype, data_ref, vec_oprnd1);
- vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
-
- return true;
-}
-
-
-/* vectorizable_load.
-
- Check if STMT reads a non scalar data-ref (array/pointer/structure) that
- can be vectorized.
- If VEC_STMT is also passed, vectorize the STMT: create a vectorized
- stmt to replace it, put it in VEC_STMT, and insert it at BSI.
- Return FALSE if not a vectorizable STMT, TRUE otherwise. */
-
-static bool
-vectorizable_load (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
-{
- tree scalar_dest;
- tree vec_dest = NULL;
- tree data_ref = NULL;
- tree op;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- struct data_reference *dr = STMT_VINFO_DATA_REF (stmt_info);
- tree vectype = STMT_VINFO_VECTYPE (stmt_info);
- tree new_temp;
- int mode;
- tree init_addr;
- tree new_stmt;
- tree dummy;
- basic_block new_bb;
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- edge pe = loop_preheader_edge (loop);
- enum dr_alignment_support alignment_support_cheme;
-
- /* Is vectorizable load? */
-
- if (TREE_CODE (stmt) != MODIFY_EXPR)
- return false;
-
- scalar_dest = TREE_OPERAND (stmt, 0);
- if (TREE_CODE (scalar_dest) != SSA_NAME)
- return false;
-
- op = TREE_OPERAND (stmt, 1);
- if (TREE_CODE (op) != ARRAY_REF && TREE_CODE (op) != INDIRECT_REF)
- return false;
-
- if (!STMT_VINFO_DATA_REF (stmt_info))
- return false;
-
- mode = (int) TYPE_MODE (vectype);
-
- /* FORNOW. In some cases can vectorize even if data-type not supported
- (e.g. - data copies). */
- if (mov_optab->handlers[mode].insn_code == CODE_FOR_nothing)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "Aligned load, but unsupported type.");
- return false;
- }
-
- if (!vec_stmt) /* transformation not required. */
- {
- STMT_VINFO_TYPE (stmt_info) = load_vec_info_type;
- return true;
- }
-
- /** Transform. **/
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "transform load.");
-
- alignment_support_cheme = vect_supportable_dr_alignment (dr);
- gcc_assert (alignment_support_cheme);
-
- if (alignment_support_cheme == dr_aligned
- || alignment_support_cheme == dr_unaligned_supported)
- {
- /* Create:
- p = initial_addr;
- indx = 0;
- loop {
- vec_dest = *(p);
- indx = indx + 1;
- }
- */
-
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
- data_ref = vect_create_data_ref_ptr (stmt, bsi, NULL_TREE, &dummy, false);
- if (aligned_access_p (dr))
- data_ref = build_fold_indirect_ref (data_ref);
- else
- {
- int mis = DR_MISALIGNMENT (dr);
- tree tmis = (mis == -1 ? size_zero_node : size_int (mis));
- tmis = size_binop (MULT_EXPR, tmis, size_int(BITS_PER_UNIT));
- data_ref = build2 (MISALIGNED_INDIRECT_REF, vectype, data_ref, tmis);
- }
- new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, data_ref);
- new_temp = make_ssa_name (vec_dest, new_stmt);
- TREE_OPERAND (new_stmt, 0) = new_temp;
- vect_finish_stmt_generation (stmt, new_stmt, bsi);
- }
- else if (alignment_support_cheme == dr_unaligned_software_pipeline)
- {
- /* Create:
- p1 = initial_addr;
- msq_init = *(floor(p1))
- p2 = initial_addr + VS - 1;
- magic = have_builtin ? builtin_result : initial_address;
- indx = 0;
- loop {
- p2' = p2 + indx * vectype_size
- lsq = *(floor(p2'))
- vec_dest = realign_load (msq, lsq, magic)
- indx = indx + 1;
- msq = lsq;
- }
- */
-
- tree offset;
- tree magic;
- tree phi_stmt;
- tree msq_init;
- tree msq, lsq;
- tree dataref_ptr;
- tree params;
-
- /* <1> Create msq_init = *(floor(p1)) in the loop preheader */
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
- data_ref = vect_create_data_ref_ptr (stmt, bsi, NULL_TREE,
- &init_addr, true);
- data_ref = build1 (ALIGN_INDIRECT_REF, vectype, data_ref);
- new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, data_ref);
- new_temp = make_ssa_name (vec_dest, new_stmt);
- TREE_OPERAND (new_stmt, 0) = new_temp;
- new_bb = bsi_insert_on_edge_immediate (pe, new_stmt);
- gcc_assert (!new_bb);
- msq_init = TREE_OPERAND (new_stmt, 0);
-
-
- /* <2> Create lsq = *(floor(p2')) in the loop */
- offset = build_int_cst (integer_type_node,
- GET_MODE_NUNITS (TYPE_MODE (vectype)));
- offset = int_const_binop (MINUS_EXPR, offset, integer_one_node, 1);
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
- dataref_ptr = vect_create_data_ref_ptr (stmt, bsi, offset, &dummy, false);
- data_ref = build1 (ALIGN_INDIRECT_REF, vectype, dataref_ptr);
- new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, data_ref);
- new_temp = make_ssa_name (vec_dest, new_stmt);
- TREE_OPERAND (new_stmt, 0) = new_temp;
- vect_finish_stmt_generation (stmt, new_stmt, bsi);
- lsq = TREE_OPERAND (new_stmt, 0);
-
-
- /* <3> */
- if (targetm.vectorize.builtin_mask_for_load)
- {
- /* Create permutation mask, if required, in loop preheader. */
- tree builtin_decl;
- params = build_tree_list (NULL_TREE, init_addr);
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
- builtin_decl = targetm.vectorize.builtin_mask_for_load ();
- new_stmt = build_function_call_expr (builtin_decl, params);
- new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, new_stmt);
- new_temp = make_ssa_name (vec_dest, new_stmt);
- TREE_OPERAND (new_stmt, 0) = new_temp;
- new_bb = bsi_insert_on_edge_immediate (pe, new_stmt);
- gcc_assert (!new_bb);
- magic = TREE_OPERAND (new_stmt, 0);
-
- /* Since we have just created a CALL_EXPR, we may need to
- rename call-clobbered variables. */
- mark_call_clobbered_vars_to_rename ();
- }
- else
- {
- /* Use current address instead of init_addr for reduced reg pressure.
- */
- magic = dataref_ptr;
- }
-
-
- /* <4> Create msq = phi <msq_init, lsq> in loop */
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
- msq = make_ssa_name (vec_dest, NULL_TREE);
- phi_stmt = create_phi_node (msq, loop->header); /* CHECKME */
- SSA_NAME_DEF_STMT (msq) = phi_stmt;
- add_phi_arg (phi_stmt, msq_init, loop_preheader_edge (loop));
- add_phi_arg (phi_stmt, lsq, loop_latch_edge (loop));
-
-
- /* <5> Create <vec_dest = realign_load (msq, lsq, magic)> in loop */
- vec_dest = vect_create_destination_var (scalar_dest, vectype);
- new_stmt = build3 (REALIGN_LOAD_EXPR, vectype, msq, lsq, magic);
- new_stmt = build2 (MODIFY_EXPR, vectype, vec_dest, new_stmt);
- new_temp = make_ssa_name (vec_dest, new_stmt);
- TREE_OPERAND (new_stmt, 0) = new_temp;
- vect_finish_stmt_generation (stmt, new_stmt, bsi);
- }
- else
- gcc_unreachable ();
-
- *vec_stmt = new_stmt;
- return true;
-}
-
-
/* Function vect_supportable_dr_alignment
Return whether the data reference DR is supported with respect to its
alignment. */
-static enum dr_alignment_support
+enum dr_alignment_support
vect_supportable_dr_alignment (struct data_reference *dr)
{
tree vectype = STMT_VINFO_VECTYPE (vinfo_for_stmt (DR_STMT (dr)));
@@ -2793,622 +1418,6 @@ vect_supportable_dr_alignment (struct data_reference *dr)
}
-/* Function vect_transform_stmt.
-
- Create a vectorized stmt to replace STMT, and insert it at BSI. */
-
-static bool
-vect_transform_stmt (tree stmt, block_stmt_iterator *bsi)
-{
- bool is_store = false;
- tree vec_stmt = NULL_TREE;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- bool done;
-
- switch (STMT_VINFO_TYPE (stmt_info))
- {
- case op_vec_info_type:
- done = vectorizable_operation (stmt, bsi, &vec_stmt);
- gcc_assert (done);
- break;
-
- case assignment_vec_info_type:
- done = vectorizable_assignment (stmt, bsi, &vec_stmt);
- gcc_assert (done);
- break;
-
- case load_vec_info_type:
- done = vectorizable_load (stmt, bsi, &vec_stmt);
- gcc_assert (done);
- break;
-
- case store_vec_info_type:
- done = vectorizable_store (stmt, bsi, &vec_stmt);
- gcc_assert (done);
- is_store = true;
- break;
- default:
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "stmt not supported.");
- gcc_unreachable ();
- }
-
- STMT_VINFO_VEC_STMT (stmt_info) = vec_stmt;
-
- return is_store;
-}
-
-
-/* This function builds ni_name = number of iterations loop executes
- on the loop preheader. */
-
-static tree
-vect_build_loop_niters (loop_vec_info loop_vinfo)
-{
- tree ni_name, stmt, var;
- edge pe;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree ni = unshare_expr (LOOP_VINFO_NITERS (loop_vinfo));
-
- var = create_tmp_var (TREE_TYPE (ni), "niters");
- add_referenced_tmp_var (var);
- ni_name = force_gimple_operand (ni, &stmt, false, var);
-
- pe = loop_preheader_edge (loop);
- if (stmt)
- {
- basic_block new_bb = bsi_insert_on_edge_immediate (pe, stmt);
- gcc_assert (!new_bb);
- }
-
- return ni_name;
-}
-
-
-/* This function generates the following statements:
-
- ni_name = number of iterations loop executes
- ratio = ni_name / vf
- ratio_mult_vf_name = ratio * vf
-
- and places them at the loop preheader edge. */
-
-static void
-vect_generate_tmps_on_preheader (loop_vec_info loop_vinfo,
- tree *ni_name_ptr,
- tree *ratio_mult_vf_name_ptr,
- tree *ratio_name_ptr)
-{
-
- edge pe;
- basic_block new_bb;
- tree stmt, ni_name;
- tree var;
- tree ratio_name;
- tree ratio_mult_vf_name;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree ni = LOOP_VINFO_NITERS (loop_vinfo);
- int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
- tree log_vf = build_int_cst (unsigned_type_node, exact_log2 (vf));
-
- pe = loop_preheader_edge (loop);
-
- /* Generate temporary variable that contains
- number of iterations loop executes. */
-
- ni_name = vect_build_loop_niters (loop_vinfo);
-
- /* Create: ratio = ni >> log2(vf) */
-
- var = create_tmp_var (TREE_TYPE (ni), "bnd");
- add_referenced_tmp_var (var);
- ratio_name = make_ssa_name (var, NULL_TREE);
- stmt = build2 (MODIFY_EXPR, void_type_node, ratio_name,
- build2 (RSHIFT_EXPR, TREE_TYPE (ni_name), ni_name, log_vf));
- SSA_NAME_DEF_STMT (ratio_name) = stmt;
-
- pe = loop_preheader_edge (loop);
- new_bb = bsi_insert_on_edge_immediate (pe, stmt);
- gcc_assert (!new_bb);
-
- /* Create: ratio_mult_vf = ratio << log2 (vf). */
-
- var = create_tmp_var (TREE_TYPE (ni), "ratio_mult_vf");
- add_referenced_tmp_var (var);
- ratio_mult_vf_name = make_ssa_name (var, NULL_TREE);
- stmt = build2 (MODIFY_EXPR, void_type_node, ratio_mult_vf_name,
- build2 (LSHIFT_EXPR, TREE_TYPE (ratio_name), ratio_name, log_vf));
- SSA_NAME_DEF_STMT (ratio_mult_vf_name) = stmt;
-
- pe = loop_preheader_edge (loop);
- new_bb = bsi_insert_on_edge_immediate (pe, stmt);
- gcc_assert (!new_bb);
-
- *ni_name_ptr = ni_name;
- *ratio_mult_vf_name_ptr = ratio_mult_vf_name;
- *ratio_name_ptr = ratio_name;
-
- return;
-}
-
-
-/* Function vect_update_ivs_after_vectorizer.
-
- "Advance" the induction variables of LOOP to the value they should take
- after the execution of LOOP. This is currently necessary because the
- vectorizer does not handle induction variables that are used after the
- loop. Such a situation occurs when the last iterations of LOOP are
- peeled, because:
- 1. We introduced new uses after LOOP for IVs that were not originally used
- after LOOP: the IVs of LOOP are now used by an epilog loop.
- 2. LOOP is going to be vectorized; this means that it will iterate N/VF
- times, whereas the loop IVs should be bumped N times.
-
- Input:
- - LOOP - a loop that is going to be vectorized. The last few iterations
- of LOOP were peeled.
- - NITERS - the number of iterations that LOOP executes (before it is
- vectorized). i.e, the number of times the ivs should be bumped.
- - UPDATE_E - a successor edge of LOOP->exit that is on the (only) path
- coming out from LOOP on which there are uses of the LOOP ivs
- (this is the path from LOOP->exit to epilog_loop->preheader).
-
- The new definitions of the ivs are placed in LOOP->exit.
- The phi args associated with the edge UPDATE_E in the bb
- UPDATE_E->dest are updated accordingly.
-
- Assumption 1: Like the rest of the vectorizer, this function assumes
- a single loop exit that has a single predecessor.
-
- Assumption 2: The phi nodes in the LOOP header and in update_bb are
- organized in the same order.
-
- Assumption 3: The access function of the ivs is simple enough (see
- vect_can_advance_ivs_p). This assumption will be relaxed in the future.
-
- Assumption 4: Exactly one of the successors of LOOP exit-bb is on a path
- coming out of LOOP on which the ivs of LOOP are used (this is the path
- that leads to the epilog loop; other paths skip the epilog loop). This
- path starts with the edge UPDATE_E, and its destination (denoted update_bb)
- needs to have its phis updated.
- */
-
-static void
-vect_update_ivs_after_vectorizer (loop_vec_info loop_vinfo, tree niters,
- edge update_e)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block exit_bb = loop->exit_edges[0]->dest;
- tree phi, phi1;
- basic_block update_bb = update_e->dest;
-
- /* gcc_assert (vect_can_advance_ivs_p (loop_vinfo)); */
-
- /* Make sure there exists a single-predecessor exit bb: */
- gcc_assert (EDGE_COUNT (exit_bb->preds) == 1);
-
- for (phi = phi_nodes (loop->header), phi1 = phi_nodes (update_bb);
- phi && phi1;
- phi = PHI_CHAIN (phi), phi1 = PHI_CHAIN (phi1))
- {
- tree access_fn = NULL;
- tree evolution_part;
- tree init_expr;
- tree step_expr;
- tree var, stmt, ni, ni_name;
- block_stmt_iterator last_bsi;
-
- /* Skip virtual phi's. */
- if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "virtual phi. skip.");
- continue;
- }
-
- access_fn = analyze_scalar_evolution (loop, PHI_RESULT (phi));
- gcc_assert (access_fn);
- evolution_part =
- unshare_expr (evolution_part_in_loop_num (access_fn, loop->num));
- gcc_assert (evolution_part != NULL_TREE);
-
- /* FORNOW: We do not support IVs whose evolution function is a polynomial
- of degree >= 2 or exponential. */
- gcc_assert (!tree_is_chrec (evolution_part));
-
- step_expr = evolution_part;
- init_expr = unshare_expr (initial_condition_in_loop_num (access_fn,
- loop->num));
-
- ni = build2 (PLUS_EXPR, TREE_TYPE (init_expr),
- build2 (MULT_EXPR, TREE_TYPE (niters),
- niters, step_expr), init_expr);
-
- var = create_tmp_var (TREE_TYPE (init_expr), "tmp");
- add_referenced_tmp_var (var);
-
- ni_name = force_gimple_operand (ni, &stmt, false, var);
-
- /* Insert stmt into exit_bb. */
- last_bsi = bsi_last (exit_bb);
- if (stmt)
- bsi_insert_before (&last_bsi, stmt, BSI_SAME_STMT);
-
- /* Fix phi expressions in the successor bb. */
- gcc_assert (PHI_ARG_DEF_FROM_EDGE (phi1, update_e) ==
- PHI_ARG_DEF_FROM_EDGE (phi, EDGE_SUCC (loop->latch, 0)));
- SET_PHI_ARG_DEF (phi1, update_e->dest_idx, ni_name);
- }
-}
-
-
-/* Function vect_do_peeling_for_loop_bound
-
- Peel the last iterations of the loop represented by LOOP_VINFO.
- The peeled iterations form a new epilog loop. Given that the loop now
- iterates NITERS times, the new epilog loop iterates
- NITERS % VECTORIZATION_FACTOR times.
-
- The original loop will later be made to iterate
- NITERS / VECTORIZATION_FACTOR times (this value is placed into RATIO). */
-
-static void
-vect_do_peeling_for_loop_bound (loop_vec_info loop_vinfo, tree *ratio,
- struct loops *loops)
-{
-
- tree ni_name, ratio_mult_vf_name;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- struct loop *new_loop;
- edge update_e;
-#ifdef ENABLE_CHECKING
- int loop_num;
-#endif
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_transtorm_for_unknown_loop_bound ===");
-
- /* Generate the following variables on the preheader of original loop:
-
- ni_name = number of iteration the original loop executes
- ratio = ni_name / vf
- ratio_mult_vf_name = ratio * vf */
- vect_generate_tmps_on_preheader (loop_vinfo, &ni_name,
- &ratio_mult_vf_name, ratio);
-
- /* Update loop info. */
- loop->pre_header = loop_preheader_edge (loop)->src;
- loop->pre_header_edges[0] = loop_preheader_edge (loop);
-
-#ifdef ENABLE_CHECKING
- loop_num = loop->num;
-#endif
- new_loop = slpeel_tree_peel_loop_to_edge (loop, loops, loop->exit_edges[0],
- ratio_mult_vf_name, ni_name, false);
-#ifdef ENABLE_CHECKING
- gcc_assert (new_loop);
- gcc_assert (loop_num == loop->num);
- slpeel_verify_cfg_after_peeling (loop, new_loop);
-#endif
-
- /* A guard that controls whether the new_loop is to be executed or skipped
- is placed in LOOP->exit. LOOP->exit therefore has two successors - one
- is the preheader of NEW_LOOP, where the IVs from LOOP are used. The other
- is a bb after NEW_LOOP, where these IVs are not used. Find the edge that
- is on the path where the LOOP IVs are used and need to be updated. */
-
- if (EDGE_PRED (new_loop->pre_header, 0)->src == loop->exit_edges[0]->dest)
- update_e = EDGE_PRED (new_loop->pre_header, 0);
- else
- update_e = EDGE_PRED (new_loop->pre_header, 1);
-
- /* Update IVs of original loop as if they were advanced
- by ratio_mult_vf_name steps. */
- vect_update_ivs_after_vectorizer (loop_vinfo, ratio_mult_vf_name, update_e);
-
- /* After peeling we have to reset scalar evolution analyzer. */
- scev_reset ();
-
- return;
-}
-
-
-/* Function vect_gen_niters_for_prolog_loop
-
- Set the number of iterations for the loop represented by LOOP_VINFO
- to the minimum between LOOP_NITERS (the original iteration count of the loop)
- and the misalignment of DR - the first data reference recorded in
- LOOP_VINFO_UNALIGNED_DR (LOOP_VINFO). As a result, after the execution of
- this loop, the data reference DR will refer to an aligned location.
-
- The following computation is generated:
-
- compute address misalignment in bytes:
- addr_mis = addr & (vectype_size - 1)
-
- prolog_niters = min ( LOOP_NITERS , (VF - addr_mis/elem_size)&(VF-1) )
-
- (elem_size = element type size; an element is the scalar element
- whose type is the inner type of the vectype) */
-
-static tree
-vect_gen_niters_for_prolog_loop (loop_vec_info loop_vinfo, tree loop_niters)
-{
- struct data_reference *dr = LOOP_VINFO_UNALIGNED_DR (loop_vinfo);
- int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree var, stmt;
- tree iters, iters_name;
- edge pe;
- basic_block new_bb;
- tree dr_stmt = DR_STMT (dr);
- stmt_vec_info stmt_info = vinfo_for_stmt (dr_stmt);
- tree vectype = STMT_VINFO_VECTYPE (stmt_info);
- int vectype_align = TYPE_ALIGN (vectype) / BITS_PER_UNIT;
- tree elem_misalign;
- tree byte_misalign;
- tree new_stmts = NULL_TREE;
- tree start_addr =
- vect_create_addr_base_for_vector_ref (dr_stmt, &new_stmts, NULL_TREE);
- tree ptr_type = TREE_TYPE (start_addr);
- tree size = TYPE_SIZE (ptr_type);
- tree type = lang_hooks.types.type_for_size (tree_low_cst (size, 1), 1);
- tree vectype_size_minus_1 = build_int_cst (type, vectype_align - 1);
- tree vf_minus_1 = build_int_cst (unsigned_type_node, vf - 1);
- tree niters_type = TREE_TYPE (loop_niters);
- tree elem_size_log =
- build_int_cst (unsigned_type_node, exact_log2 (vectype_align/vf));
- tree vf_tree = build_int_cst (unsigned_type_node, vf);
-
- pe = loop_preheader_edge (loop);
- new_bb = bsi_insert_on_edge_immediate (pe, new_stmts);
- gcc_assert (!new_bb);
-
- /* Create: byte_misalign = addr & (vectype_size - 1) */
- byte_misalign = build2 (BIT_AND_EXPR, type, start_addr, vectype_size_minus_1);
-
- /* Create: elem_misalign = byte_misalign / element_size */
- elem_misalign =
- build2 (RSHIFT_EXPR, unsigned_type_node, byte_misalign, elem_size_log);
-
- /* Create: (niters_type) (VF - elem_misalign)&(VF - 1) */
- iters = build2 (MINUS_EXPR, unsigned_type_node, vf_tree, elem_misalign);
- iters = build2 (BIT_AND_EXPR, unsigned_type_node, iters, vf_minus_1);
- iters = fold_convert (niters_type, iters);
-
- /* Create: prolog_loop_niters = min (iters, loop_niters) */
- /* If the loop bound is known at compile time we already verified that it is
- greater than vf; since the misalignment ('iters') is at most vf, there's
- no need to generate the MIN_EXPR in this case. */
- if (TREE_CODE (loop_niters) != INTEGER_CST)
- iters = build2 (MIN_EXPR, niters_type, iters, loop_niters);
-
- var = create_tmp_var (niters_type, "prolog_loop_niters");
- add_referenced_tmp_var (var);
- iters_name = force_gimple_operand (iters, &stmt, false, var);
-
- /* Insert stmt on loop preheader edge. */
- pe = loop_preheader_edge (loop);
- if (stmt)
- {
- basic_block new_bb = bsi_insert_on_edge_immediate (pe, stmt);
- gcc_assert (!new_bb);
- }
-
- return iters_name;
-}
-
-
-/* Function vect_update_inits_of_dr
-
- NITERS iterations were peeled from LOOP. DR represents a data reference
- in LOOP. This function updates the information recorded in DR to
- account for the fact that the first NITERS iterations had already been
- executed. Specifically, it updates the OFFSET field of stmt_info. */
-
-static void
-vect_update_inits_of_dr (struct data_reference *dr, tree niters)
-{
- stmt_vec_info stmt_info = vinfo_for_stmt (DR_STMT (dr));
- tree offset = STMT_VINFO_VECT_INIT_OFFSET (stmt_info);
-
- niters = fold (build2 (MULT_EXPR, TREE_TYPE (niters), niters,
- STMT_VINFO_VECT_STEP (stmt_info)));
- offset = fold (build2 (PLUS_EXPR, TREE_TYPE (offset), offset, niters));
- STMT_VINFO_VECT_INIT_OFFSET (stmt_info) = offset;
-}
-
-
-/* Function vect_update_inits_of_drs
-
- NITERS iterations were peeled from the loop represented by LOOP_VINFO.
- This function updates the information recorded for the data references in
- the loop to account for the fact that the first NITERS iterations had
- already been executed. Specifically, it updates the initial_condition of the
- access_function of all the data_references in the loop. */
-
-static void
-vect_update_inits_of_drs (loop_vec_info loop_vinfo, tree niters)
-{
- unsigned int i;
- varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
- varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
-
- if (vect_dump && (dump_flags & TDF_DETAILS))
- fprintf (vect_dump, "=== vect_update_inits_of_dr ===");
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
- vect_update_inits_of_dr (dr, niters);
- }
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
- vect_update_inits_of_dr (dr, niters);
- }
-}
-
-
-/* Function vect_do_peeling_for_alignment
-
- Peel the first 'niters' iterations of the loop represented by LOOP_VINFO.
- 'niters' is set to the misalignment of one of the data references in the
- loop, thereby forcing it to refer to an aligned location at the beginning
- of the execution of this loop. The data reference for which we are
- peeling is recorded in LOOP_VINFO_UNALIGNED_DR. */
-
-static void
-vect_do_peeling_for_alignment (loop_vec_info loop_vinfo, struct loops *loops)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree niters_of_prolog_loop, ni_name;
- tree n_iters;
- struct loop *new_loop;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_do_peeling_for_alignment ===");
-
- ni_name = vect_build_loop_niters (loop_vinfo);
- niters_of_prolog_loop = vect_gen_niters_for_prolog_loop (loop_vinfo, ni_name);
-
- /* Peel the prolog loop and iterate it niters_of_prolog_loop. */
- new_loop =
- slpeel_tree_peel_loop_to_edge (loop, loops, loop_preheader_edge (loop),
- niters_of_prolog_loop, ni_name, true);
-#ifdef ENABLE_CHECKING
- gcc_assert (new_loop);
- slpeel_verify_cfg_after_peeling (new_loop, loop);
-#endif
-
- /* Update number of times loop executes. */
- n_iters = LOOP_VINFO_NITERS (loop_vinfo);
- LOOP_VINFO_NITERS (loop_vinfo) =
- build2 (MINUS_EXPR, TREE_TYPE (n_iters), n_iters, niters_of_prolog_loop);
-
- /* Update the init conditions of the access functions of all data refs. */
- vect_update_inits_of_drs (loop_vinfo, niters_of_prolog_loop);
-
- /* After peeling we have to reset scalar evolution analyzer. */
- scev_reset ();
-
- return;
-}
-
-
-/* Function vect_transform_loop.
-
- The analysis phase has determined that the loop is vectorizable.
- Vectorize the loop - created vectorized stmts to replace the scalar
- stmts in the loop, and update the loop exit condition. */
-
-static void
-vect_transform_loop (loop_vec_info loop_vinfo,
- struct loops *loops ATTRIBUTE_UNUSED)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
- int nbbs = loop->num_nodes;
- block_stmt_iterator si;
- int i;
- tree ratio = NULL;
- int vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vec_transform_loop ===");
-
-
- /* Peel the loop if there are data refs with unknown alignment.
- Only one data ref with unknown store is allowed. */
-
- if (LOOP_DO_PEELING_FOR_ALIGNMENT (loop_vinfo))
- vect_do_peeling_for_alignment (loop_vinfo, loops);
-
- /* If the loop has a symbolic number of iterations 'n' (i.e. it's not a
- compile time constant), or it is a constant that doesn't divide by the
- vectorization factor, then an epilog loop needs to be created.
- We therefore duplicate the loop: the original loop will be vectorized,
- and will compute the first (n/VF) iterations. The second copy of the loop
- will remain scalar and will compute the remaining (n%VF) iterations.
- (VF is the vectorization factor). */
-
- if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- || (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0))
- vect_do_peeling_for_loop_bound (loop_vinfo, &ratio, loops);
- else
- ratio = build_int_cst (TREE_TYPE (LOOP_VINFO_NITERS (loop_vinfo)),
- LOOP_VINFO_INT_NITERS (loop_vinfo) / vectorization_factor);
-
- /* 1) Make sure the loop header has exactly two entries
- 2) Make sure we have a preheader basic block. */
-
- gcc_assert (EDGE_COUNT (loop->header->preds) == 2);
-
- loop_split_edge_with (loop_preheader_edge (loop), NULL);
-
-
- /* FORNOW: the vectorizer supports only loops which body consist
- of one basic block (header + empty latch). When the vectorizer will
- support more involved loop forms, the order by which the BBs are
- traversed need to be reconsidered. */
-
- for (i = 0; i < nbbs; i++)
- {
- basic_block bb = bbs[i];
-
- for (si = bsi_start (bb); !bsi_end_p (si);)
- {
- tree stmt = bsi_stmt (si);
- stmt_vec_info stmt_info;
- bool is_store;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "------>vectorizing statement: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- stmt_info = vinfo_for_stmt (stmt);
- gcc_assert (stmt_info);
- if (!STMT_VINFO_RELEVANT_P (stmt_info))
- {
- bsi_next (&si);
- continue;
- }
-#ifdef ENABLE_CHECKING
- /* FORNOW: Verify that all stmts operate on the same number of
- units and no inner unrolling is necessary. */
- gcc_assert
- (GET_MODE_NUNITS (TYPE_MODE (STMT_VINFO_VECTYPE (stmt_info)))
- == vectorization_factor);
-#endif
- /* -------- vectorize statement ------------ */
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "transform statement.");
-
- is_store = vect_transform_stmt (stmt, &si);
- if (is_store)
- {
- /* free the attached stmt_vec_info and remove the stmt. */
- stmt_ann_t ann = stmt_ann (stmt);
- free (stmt_info);
- set_stmt_info (ann, NULL);
- bsi_remove (&si);
- continue;
- }
-
- bsi_next (&si);
- } /* stmts in BB */
- } /* BBs in loop */
-
- slpeel_make_loop_iterate_ntimes (loop, ratio);
-
- if (vect_print_dump_info (REPORT_VECTORIZED_LOOPS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "LOOP VECTORIZED.");
-}
-
-
/* Function vect_is_simple_use.
Input:
@@ -3422,7 +1431,7 @@ vect_transform_loop (loop_vec_info loop_vinfo,
those that are defined by a previous iteration of the loop (as is the case
in reduction/induction computations). */
-static bool
+bool
vect_is_simple_use (tree operand, loop_vec_info loop_vinfo, tree *def)
{
tree def_stmt;
@@ -3484,248 +1493,12 @@ vect_is_simple_use (tree operand, loop_vec_info loop_vinfo, tree *def)
}
-/* Function vect_analyze_operations.
-
- Scan the loop stmts and make sure they are all vectorizable. */
-
-static bool
-vect_analyze_operations (loop_vec_info loop_vinfo)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
- int nbbs = loop->num_nodes;
- block_stmt_iterator si;
- unsigned int vectorization_factor = 0;
- int i;
- bool ok;
- tree scalar_type;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_analyze_operations ===");
-
- for (i = 0; i < nbbs; i++)
- {
- basic_block bb = bbs[i];
-
- for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
- {
- tree stmt = bsi_stmt (si);
- unsigned int nunits;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- tree vectype;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "==> examining statement: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
-
- gcc_assert (stmt_info);
-
- /* skip stmts which do not need to be vectorized.
- this is expected to include:
- - the COND_EXPR which is the loop exit condition
- - any LABEL_EXPRs in the loop
- - computations that are used only for array indexing or loop
- control */
-
- if (!STMT_VINFO_RELEVANT_P (stmt_info))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "irrelevant.");
- continue;
- }
-
- if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (stmt))))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump, "not vectorized: vector stmt in loop:");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- return false;
- }
-
- if (STMT_VINFO_DATA_REF (stmt_info))
- scalar_type = TREE_TYPE (DR_REF (STMT_VINFO_DATA_REF (stmt_info)));
- else if (TREE_CODE (stmt) == MODIFY_EXPR)
- scalar_type = TREE_TYPE (TREE_OPERAND (stmt, 0));
- else
- scalar_type = TREE_TYPE (stmt);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "get vectype for scalar type: ");
- print_generic_expr (vect_dump, scalar_type, TDF_SLIM);
- }
-
- vectype = get_vectype_for_scalar_type (scalar_type);
- if (!vectype)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump,
- "not vectorized: unsupported data-type ");
- print_generic_expr (vect_dump, scalar_type, TDF_SLIM);
- }
- return false;
- }
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "vectype: ");
- print_generic_expr (vect_dump, vectype, TDF_SLIM);
- }
- STMT_VINFO_VECTYPE (stmt_info) = vectype;
-
- ok = (vectorizable_operation (stmt, NULL, NULL)
- || vectorizable_assignment (stmt, NULL, NULL)
- || vectorizable_load (stmt, NULL, NULL)
- || vectorizable_store (stmt, NULL, NULL));
-
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump, "not vectorized: stmt not supported: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- return false;
- }
-
- nunits = GET_MODE_NUNITS (TYPE_MODE (vectype));
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "nunits = %d", nunits);
-
- if (vectorization_factor)
- {
- /* FORNOW: don't allow mixed units.
- This restriction will be relaxed in the future. */
- if (nunits != vectorization_factor)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: mixed data-types");
- return false;
- }
- }
- else
- vectorization_factor = nunits;
-
-#ifdef ENABLE_CHECKING
- gcc_assert (GET_MODE_SIZE (TYPE_MODE (scalar_type))
- * vectorization_factor == UNITS_PER_SIMD_WORD);
-#endif
- }
- }
-
- /* TODO: Analyze cost. Decide if worth while to vectorize. */
-
- if (vectorization_factor <= 1)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported data-type");
- return false;
- }
- LOOP_VINFO_VECT_FACTOR (loop_vinfo) = vectorization_factor;
-
- if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- && vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump,
- "vectorization_factor = %d, niters = " HOST_WIDE_INT_PRINT_DEC,
- vectorization_factor, LOOP_VINFO_INT_NITERS (loop_vinfo));
-
- if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- && LOOP_VINFO_INT_NITERS (loop_vinfo) < vectorization_factor)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: iteration count too small.");
- return false;
- }
-
- if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- || LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "epilog loop required.");
- if (!vect_can_advance_ivs_p (loop_vinfo))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump,
- "not vectorized: can't create epilog loop 1.");
- return false;
- }
- if (!slpeel_can_duplicate_loop_p (loop, loop->exit_edges[0]))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump,
- "not vectorized: can't create epilog loop 2.");
- return false;
- }
- }
-
- return true;
-}
-
-
-/* Function exist_non_indexing_operands_for_use_p
-
- USE is one of the uses attached to STMT. Check if USE is
- used in STMT for anything other than indexing an array. */
-
-static bool
-exist_non_indexing_operands_for_use_p (tree use, tree stmt)
-{
- tree operand;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
-
- /* USE corresponds to some operand in STMT. If there is no data
- reference in STMT, then any operand that corresponds to USE
- is not indexing an array. */
- if (!STMT_VINFO_DATA_REF (stmt_info))
- return true;
-
- /* STMT has a data_ref. FORNOW this means that its of one of
- the following forms:
- -1- ARRAY_REF = var
- -2- var = ARRAY_REF
- (This should have been verified in analyze_data_refs).
-
- 'var' in the second case corresponds to a def, not a use,
- so USE cannot correspond to any operands that are not used
- for array indexing.
-
- Therefore, all we need to check is if STMT falls into the
- first case, and whether var corresponds to USE. */
-
- if (TREE_CODE (TREE_OPERAND (stmt, 0)) == SSA_NAME)
- return false;
-
- operand = TREE_OPERAND (stmt, 1);
-
- if (TREE_CODE (operand) != SSA_NAME)
- return false;
-
- if (operand == use)
- return true;
-
- return false;
-}
-
-
/* Function vect_is_simple_iv_evolution.
FORNOW: A simple evolution of an induction variables in the loop is
considered a polynomial evolution with constant step. */
-static bool
+bool
vect_is_simple_iv_evolution (unsigned loop_nb, tree access_fn, tree * init,
tree * step)
{
@@ -3770,2010 +1543,6 @@ vect_is_simple_iv_evolution (unsigned loop_nb, tree access_fn, tree * init,
}
-/* Function vect_analyze_scalar_cycles.
-
- Examine the cross iteration def-use cycles of scalar variables, by
- analyzing the loop (scalar) PHIs; verify that the cross iteration def-use
- cycles that they represent do not impede vectorization.
-
- FORNOW: Reduction as in the following loop, is not supported yet:
- loop1:
- for (i=0; i<N; i++)
- sum += a[i];
- The cross-iteration cycle corresponding to variable 'sum' will be
- considered too complicated and will impede vectorization.
-
- FORNOW: Induction as in the following loop, is not supported yet:
- loop2:
- for (i=0; i<N; i++)
- a[i] = i;
-
- However, the following loop *is* vectorizable:
- loop3:
- for (i=0; i<N; i++)
- a[i] = b[i];
-
- In both loops there exists a def-use cycle for the variable i:
- loop: i_2 = PHI (i_0, i_1)
- a[i_2] = ...;
- i_1 = i_2 + 1;
- GOTO loop;
-
- The evolution of the above cycle is considered simple enough,
- however, we also check that the cycle does not need to be
- vectorized, i.e - we check that the variable that this cycle
- defines is only used for array indexing or in stmts that do not
- need to be vectorized. This is not the case in loop2, but it
- *is* the case in loop3. */
-
-static bool
-vect_analyze_scalar_cycles (loop_vec_info loop_vinfo)
-{
- tree phi;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block bb = loop->header;
- tree dummy;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_analyze_scalar_cycles ===");
-
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
- {
- tree access_fn = NULL;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Analyze phi: ");
- print_generic_expr (vect_dump, phi, TDF_SLIM);
- }
-
- /* Skip virtual phi's. The data dependences that are associated with
- virtual defs/uses (i.e., memory accesses) are analyzed elsewhere. */
-
- if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "virtual phi. skip.");
- continue;
- }
-
- /* Analyze the evolution function. */
-
- /* FORNOW: The only scalar cross-iteration cycles that we allow are
- those of loop induction variables; This property is verified here.
-
- Furthermore, if that induction variable is used in an operation
- that needs to be vectorized (i.e, is not solely used to index
- arrays and check the exit condition) - we do not support its
- vectorization yet. This property is verified in vect_is_simple_use,
- during vect_analyze_operations. */
-
- access_fn = /* instantiate_parameters
- (loop,*/
- analyze_scalar_evolution (loop, PHI_RESULT (phi));
-
- if (!access_fn)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported scalar cycle.");
- return false;
- }
-
- if (vect_print_dump_info (REPORT_DETAILS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump, "Access function of PHI: ");
- print_generic_expr (vect_dump, access_fn, TDF_SLIM);
- }
-
- if (!vect_is_simple_iv_evolution (loop->num, access_fn, &dummy, &dummy))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported scalar cycle.");
- return false;
- }
- }
-
- return true;
-}
-
-
-/* Function vect_base_addr_differ_p.
-
- This is the simplest data dependence test: determines whether the
- data references A and B access the same array/region. Returns
- false when the property is not computable at compile time.
- Otherwise return true, and DIFFER_P will record the result. This
- utility will not be necessary when alias_sets_conflict_p will be
- less conservative. */
-
-
-static bool
-vect_base_addr_differ_p (struct data_reference *dra,
- struct data_reference *drb,
- bool *differ_p)
-{
- tree stmt_a = DR_STMT (dra);
- stmt_vec_info stmt_info_a = vinfo_for_stmt (stmt_a);
- tree stmt_b = DR_STMT (drb);
- stmt_vec_info stmt_info_b = vinfo_for_stmt (stmt_b);
- tree addr_a = STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info_a);
- tree addr_b = STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info_b);
- tree type_a = TREE_TYPE (addr_a);
- tree type_b = TREE_TYPE (addr_b);
- HOST_WIDE_INT alias_set_a, alias_set_b;
-
- gcc_assert (POINTER_TYPE_P (type_a) && POINTER_TYPE_P (type_b));
-
- /* Both references are ADDR_EXPR, i.e., we have the objects. */
- if (TREE_CODE (addr_a) == ADDR_EXPR && TREE_CODE (addr_b) == ADDR_EXPR)
- return array_base_name_differ_p (dra, drb, differ_p);
-
- alias_set_a = (TREE_CODE (addr_a) == ADDR_EXPR) ?
- get_alias_set (TREE_OPERAND (addr_a, 0)) : get_alias_set (addr_a);
- alias_set_b = (TREE_CODE (addr_b) == ADDR_EXPR) ?
- get_alias_set (TREE_OPERAND (addr_b, 0)) : get_alias_set (addr_b);
-
- if (!alias_sets_conflict_p (alias_set_a, alias_set_b))
- {
- *differ_p = true;
- return true;
- }
-
- /* An instruction writing through a restricted pointer is "independent" of any
- instruction reading or writing through a different pointer, in the same
- block/scope. */
- else if ((TYPE_RESTRICT (type_a) && !DR_IS_READ (dra))
- || (TYPE_RESTRICT (type_b) && !DR_IS_READ (drb)))
- {
- *differ_p = true;
- return true;
- }
- return false;
-}
-
-
-/* Function vect_analyze_data_ref_dependence.
-
- Return TRUE if there (might) exist a dependence between a memory-reference
- DRA and a memory-reference DRB. */
-
-static bool
-vect_analyze_data_ref_dependence (struct data_reference *dra,
- struct data_reference *drb,
- loop_vec_info loop_vinfo)
-{
- bool differ_p;
- struct data_dependence_relation *ddr;
-
- if (!vect_base_addr_differ_p (dra, drb, &differ_p))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump,
- "not vectorized: can't determine dependence between: ");
- print_generic_expr (vect_dump, DR_REF (dra), TDF_SLIM);
- fprintf (vect_dump, " and ");
- print_generic_expr (vect_dump, DR_REF (drb), TDF_SLIM);
- }
- return true;
- }
-
- if (differ_p)
- return false;
-
- ddr = initialize_data_dependence_relation (dra, drb);
- compute_affine_dependence (ddr);
-
- if (DDR_ARE_DEPENDENT (ddr) == chrec_known)
- return false;
-
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump,
- "not vectorized: possible dependence between data-refs ");
- print_generic_expr (vect_dump, DR_REF (dra), TDF_SLIM);
- fprintf (vect_dump, " and ");
- print_generic_expr (vect_dump, DR_REF (drb), TDF_SLIM);
- }
-
- return true;
-}
-
-
-/* Function vect_analyze_data_ref_dependences.
-
- Examine all the data references in the loop, and make sure there do not
- exist any data dependences between them.
-
- TODO: dependences which distance is greater than the vectorization factor
- can be ignored. */
-
-static bool
-vect_analyze_data_ref_dependences (loop_vec_info loop_vinfo)
-{
- unsigned int i, j;
- varray_type loop_write_refs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
- varray_type loop_read_refs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
-
- /* Examine store-store (output) dependences. */
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_analyze_dependences ===");
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "compare all store-store pairs.");
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_refs); i++)
- {
- for (j = i + 1; j < VARRAY_ACTIVE_SIZE (loop_write_refs); j++)
- {
- struct data_reference *dra =
- VARRAY_GENERIC_PTR (loop_write_refs, i);
- struct data_reference *drb =
- VARRAY_GENERIC_PTR (loop_write_refs, j);
- if (vect_analyze_data_ref_dependence (dra, drb, loop_vinfo))
- return false;
- }
- }
-
- /* Examine load-store (true/anti) dependences. */
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "compare all load-store pairs.");
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_refs); i++)
- {
- for (j = 0; j < VARRAY_ACTIVE_SIZE (loop_write_refs); j++)
- {
- struct data_reference *dra = VARRAY_GENERIC_PTR (loop_read_refs, i);
- struct data_reference *drb =
- VARRAY_GENERIC_PTR (loop_write_refs, j);
- if (vect_analyze_data_ref_dependence (dra, drb, loop_vinfo))
- return false;
- }
- }
-
- return true;
-}
-
-
-/* Function vect_compute_data_ref_alignment
-
- Compute the misalignment of the data reference DR.
-
- Output:
- 1. If during the misalignment computation it is found that the data reference
- cannot be vectorized then false is returned.
- 2. DR_MISALIGNMENT (DR) is defined.
-
- FOR NOW: No analysis is actually performed. Misalignment is calculated
- only for trivial cases. TODO. */
-
-static bool
-vect_compute_data_ref_alignment (struct data_reference *dr)
-{
- tree stmt = DR_STMT (dr);
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- tree ref = DR_REF (dr);
- tree vectype;
- tree base, alignment;
- bool base_aligned_p;
- tree misalign;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "vect_compute_data_ref_alignment:");
-
- /* Initialize misalignment to unknown. */
- DR_MISALIGNMENT (dr) = -1;
-
- misalign = STMT_VINFO_VECT_MISALIGNMENT (stmt_info);
- base_aligned_p = STMT_VINFO_VECT_BASE_ALIGNED_P (stmt_info);
- base = build_fold_indirect_ref (STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info));
- vectype = STMT_VINFO_VECTYPE (stmt_info);
-
- if (!misalign)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Unknown alignment for access: ");
- print_generic_expr (vect_dump, base, TDF_SLIM);
- }
- return true;
- }
-
- if (!base_aligned_p)
- {
- if (!vect_can_force_dr_alignment_p (base, TYPE_ALIGN (vectype)))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "can't force alignment of ref: ");
- print_generic_expr (vect_dump, ref, TDF_SLIM);
- }
- return true;
- }
-
- /* Force the alignment of the decl.
- NOTE: This is the only change to the code we make during
- the analysis phase, before deciding to vectorize the loop. */
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "force alignment");
- DECL_ALIGN (base) = TYPE_ALIGN (vectype);
- DECL_USER_ALIGN (base) = 1;
- }
-
- /* At this point we assume that the base is aligned. */
- gcc_assert (base_aligned_p
- || (TREE_CODE (base) == VAR_DECL
- && DECL_ALIGN (base) >= TYPE_ALIGN (vectype)));
-
- /* Alignment required, in bytes: */
- alignment = ssize_int (TYPE_ALIGN (vectype)/BITS_PER_UNIT);
-
- /* Modulo alignment. */
- misalign = size_binop (TRUNC_MOD_EXPR, misalign, alignment);
- if (tree_int_cst_sgn (misalign) < 0)
- {
- /* Negative misalignment value. */
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "unexpected misalign value");
- return false;
- }
-
- DR_MISALIGNMENT (dr) = tree_low_cst (misalign, 1);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "misalign = %d bytes", DR_MISALIGNMENT (dr));
-
- return true;
-}
-
-
-/* Function vect_compute_data_refs_alignment
-
- Compute the misalignment of data references in the loop.
- This pass may take place at function granularity instead of at loop
- granularity.
-
- FOR NOW: No analysis is actually performed. Misalignment is calculated
- only for trivial cases. TODO. */
-
-static bool
-vect_compute_data_refs_alignment (loop_vec_info loop_vinfo)
-{
- varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
- varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
- unsigned int i;
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
- if (!vect_compute_data_ref_alignment (dr))
- return false;
- }
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
- if (!vect_compute_data_ref_alignment (dr))
- return false;
- }
-
- return true;
-}
-
-
-/* Function vect_enhance_data_refs_alignment
-
- This pass will use loop versioning and loop peeling in order to enhance
- the alignment of data references in the loop.
-
- FOR NOW: we assume that whatever versioning/peeling takes place, only the
- original loop is to be vectorized; Any other loops that are created by
- the transformations performed in this pass - are not supposed to be
- vectorized. This restriction will be relaxed. */
-
-static void
-vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo)
-{
- varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
- varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
- unsigned int i;
-
- /*
- This pass will require a cost model to guide it whether to apply peeling
- or versioning or a combination of the two. For example, the scheme that
- intel uses when given a loop with several memory accesses, is as follows:
- choose one memory access ('p') which alignment you want to force by doing
- peeling. Then, either (1) generate a loop in which 'p' is aligned and all
- other accesses are not necessarily aligned, or (2) use loop versioning to
- generate one loop in which all accesses are aligned, and another loop in
- which only 'p' is necessarily aligned.
-
- ("Automatic Intra-Register Vectorization for the Intel Architecture",
- Aart J.C. Bik, Milind Girkar, Paul M. Grey and Ximmin Tian, International
- Journal of Parallel Programming, Vol. 30, No. 2, April 2002.)
-
- Devising a cost model is the most critical aspect of this work. It will
- guide us on which access to peel for, whether to use loop versioning, how
- many versions to create, etc. The cost model will probably consist of
- generic considerations as well as target specific considerations (on
- powerpc for example, misaligned stores are more painful than misaligned
- loads).
-
- Here is the general steps involved in alignment enhancements:
-
- -- original loop, before alignment analysis:
- for (i=0; i<N; i++){
- x = q[i]; # DR_MISALIGNMENT(q) = unknown
- p[i] = y; # DR_MISALIGNMENT(p) = unknown
- }
-
- -- After vect_compute_data_refs_alignment:
- for (i=0; i<N; i++){
- x = q[i]; # DR_MISALIGNMENT(q) = 3
- p[i] = y; # DR_MISALIGNMENT(p) = unknown
- }
-
- -- Possibility 1: we do loop versioning:
- if (p is aligned) {
- for (i=0; i<N; i++){ # loop 1A
- x = q[i]; # DR_MISALIGNMENT(q) = 3
- p[i] = y; # DR_MISALIGNMENT(p) = 0
- }
- }
- else {
- for (i=0; i<N; i++){ # loop 1B
- x = q[i]; # DR_MISALIGNMENT(q) = 3
- p[i] = y; # DR_MISALIGNMENT(p) = unaligned
- }
- }
-
- -- Possibility 2: we do loop peeling:
- for (i = 0; i < 3; i++){ # (scalar loop, not to be vectorized).
- x = q[i];
- p[i] = y;
- }
- for (i = 3; i < N; i++){ # loop 2A
- x = q[i]; # DR_MISALIGNMENT(q) = 0
- p[i] = y; # DR_MISALIGNMENT(p) = unknown
- }
-
- -- Possibility 3: combination of loop peeling and versioning:
- for (i = 0; i < 3; i++){ # (scalar loop, not to be vectorized).
- x = q[i];
- p[i] = y;
- }
- if (p is aligned) {
- for (i = 3; i<N; i++){ # loop 3A
- x = q[i]; # DR_MISALIGNMENT(q) = 0
- p[i] = y; # DR_MISALIGNMENT(p) = 0
- }
- }
- else {
- for (i = 3; i<N; i++){ # loop 3B
- x = q[i]; # DR_MISALIGNMENT(q) = 0
- p[i] = y; # DR_MISALIGNMENT(p) = unaligned
- }
- }
-
- These loops are later passed to loop_transform to be vectorized. The
- vectorizer will use the alignment information to guide the transformation
- (whether to generate regular loads/stores, or with special handling for
- misalignment).
- */
-
- /* (1) Peeling to force alignment. */
-
- /* (1.1) Decide whether to perform peeling, and how many iterations to peel:
- Considerations:
- + How many accesses will become aligned due to the peeling
- - How many accesses will become unaligned due to the peeling,
- and the cost of misaligned accesses.
- - The cost of peeling (the extra runtime checks, the increase
- in code size).
-
- The scheme we use FORNOW: peel to force the alignment of the first
- misaligned store in the loop.
- Rationale: misaligned stores are not yet supported.
-
- TODO: Use a better cost model. */
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
- if (!aligned_access_p (dr))
- {
- LOOP_VINFO_UNALIGNED_DR (loop_vinfo) = dr;
- LOOP_DO_PEELING_FOR_ALIGNMENT (loop_vinfo) = true;
- break;
- }
- }
-
- if (!LOOP_VINFO_UNALIGNED_DR (loop_vinfo))
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "Peeling for alignment will not be applied.");
- return;
- }
- else
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "Peeling for alignment will be applied.");
-
-
- /* (1.2) Update the alignment info according to the peeling factor.
- If the misalignment of the DR we peel for is M, then the
- peeling factor is VF - M, and the misalignment of each access DR_i
- in the loop is DR_MISALIGNMENT (DR_i) + VF - M.
- If the misalignment of the DR we peel for is unknown, then the
- misalignment of each access DR_i in the loop is also unknown.
-
- FORNOW: set the misalignment of the accesses to unknown even
- if the peeling factor is known at compile time.
-
- TODO: - if the peeling factor is known at compile time, use that
- when updating the misalignment info of the loop DRs.
- - consider accesses that are known to have the same
- alignment, even if that alignment is unknown. */
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
- if (dr == LOOP_VINFO_UNALIGNED_DR (loop_vinfo))
- {
- DR_MISALIGNMENT (dr) = 0;
- if (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "Alignment of access forced using peeling.");
- }
- else
- DR_MISALIGNMENT (dr) = -1;
- }
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
- if (dr == LOOP_VINFO_UNALIGNED_DR (loop_vinfo))
- {
- DR_MISALIGNMENT (dr) = 0;
- if (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "Alignment of access forced using peeling.");
- }
- else
- DR_MISALIGNMENT (dr) = -1;
- }
-}
-
-
-/* Function vect_analyze_data_refs_alignment
-
- Analyze the alignment of the data-references in the loop.
- FOR NOW: Until support for misliagned accesses is in place, only if all
- accesses are aligned can the loop be vectorized. This restriction will be
- relaxed. */
-
-static bool
-vect_analyze_data_refs_alignment (loop_vec_info loop_vinfo)
-{
- varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
- varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
- enum dr_alignment_support supportable_dr_alignment;
- unsigned int i;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_analyze_data_refs_alignment ===");
-
-
- /* This pass may take place at function granularity instead of at loop
- granularity. */
-
- if (!vect_compute_data_refs_alignment (loop_vinfo))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump,
- "not vectorized: can't calculate alignment for data ref.");
- return false;
- }
-
-
- /* This pass will decide on using loop versioning and/or loop peeling in
- order to enhance the alignment of data references in the loop. */
-
- vect_enhance_data_refs_alignment (loop_vinfo);
-
-
- /* Finally, check that all the data references in the loop can be
- handled with respect to their alignment. */
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
- supportable_dr_alignment = vect_supportable_dr_alignment (dr);
- if (!supportable_dr_alignment)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported unaligned load.");
- return false;
- }
- if (supportable_dr_alignment != dr_aligned
- && (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo))))
- fprintf (vect_dump, "Vectorizing an unaligned access.");
- }
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
- supportable_dr_alignment = vect_supportable_dr_alignment (dr);
- if (!supportable_dr_alignment)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported unaligned store.");
- return false;
- }
- if (supportable_dr_alignment != dr_aligned
- && (vect_print_dump_info (REPORT_ALIGNMENT, LOOP_LOC (loop_vinfo))))
- fprintf (vect_dump, "Vectorizing an unaligned access.");
- }
-
- return true;
-}
-
-
-/* Function vect_analyze_data_ref_access.
-
- Analyze the access pattern of the data-reference DR. For now, a data access
- has to consecutive to be considered vectorizable. */
-
-static bool
-vect_analyze_data_ref_access (struct data_reference *dr)
-{
- tree stmt = DR_STMT (dr);
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- tree step = STMT_VINFO_VECT_STEP (stmt_info);
- tree scalar_type = TREE_TYPE (DR_REF (dr));
-
- if (!step || tree_int_cst_compare (step, TYPE_SIZE_UNIT (scalar_type)))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "not consecutive access");
- return false;
- }
- return true;
-}
-
-
-/* Function vect_analyze_data_ref_accesses.
-
- Analyze the access pattern of all the data references in the loop.
-
- FORNOW: the only access pattern that is considered vectorizable is a
- simple step 1 (consecutive) access.
-
- FORNOW: handle only arrays and pointer accesses. */
-
-static bool
-vect_analyze_data_ref_accesses (loop_vec_info loop_vinfo)
-{
- unsigned int i;
- varray_type loop_write_datarefs = LOOP_VINFO_DATAREF_WRITES (loop_vinfo);
- varray_type loop_read_datarefs = LOOP_VINFO_DATAREF_READS (loop_vinfo);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_analyze_data_ref_accesses ===");
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_write_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_write_datarefs, i);
- bool ok = vect_analyze_data_ref_access (dr);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: complicated access pattern.");
- return false;
- }
- }
-
- for (i = 0; i < VARRAY_ACTIVE_SIZE (loop_read_datarefs); i++)
- {
- struct data_reference *dr = VARRAY_GENERIC_PTR (loop_read_datarefs, i);
- bool ok = vect_analyze_data_ref_access (dr);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: complicated access pattern.");
- return false;
- }
- }
-
- return true;
-}
-
-
-/* Function vect_analyze_pointer_ref_access.
-
- Input:
- STMT - a stmt that contains a data-ref.
- MEMREF - a data-ref in STMT, which is an INDIRECT_REF.
- ACCESS_FN - the access function of MEMREF.
-
- Output:
- If the data-ref access is vectorizable, return a data_reference structure
- that represents it (DR). Otherwise - return NULL.
- STEP - the stride of MEMREF in the loop.
- INIT - the initial condition of MEMREF in the loop.
-*/
-
-static struct data_reference *
-vect_analyze_pointer_ref_access (tree memref, tree stmt, bool is_read,
- tree access_fn, tree *ptr_init, tree *ptr_step)
-{
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- tree step, init;
- tree reftype, innertype;
- tree indx_access_fn;
- int loopnum = loop->num;
- struct data_reference *dr;
-
- if (!vect_is_simple_iv_evolution (loopnum, access_fn, &init, &step))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: pointer access is not simple.");
- return NULL;
- }
-
- STRIP_NOPS (init);
-
- if (!expr_invariant_in_loop_p (loop, init))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump,
- "not vectorized: initial condition is not loop invariant.");
- return NULL;
- }
-
- if (TREE_CODE (step) != INTEGER_CST)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump,
- "not vectorized: non constant step for pointer access.");
- return NULL;
- }
-
- reftype = TREE_TYPE (TREE_OPERAND (memref, 0));
- if (TREE_CODE (reftype) != POINTER_TYPE)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unexpected pointer access form.");
- return NULL;
- }
-
- reftype = TREE_TYPE (init);
- if (TREE_CODE (reftype) != POINTER_TYPE)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unexpected pointer access form.");
- return NULL;
- }
-
- *ptr_step = fold_convert (ssizetype, step);
- innertype = TREE_TYPE (reftype);
- /* Check that STEP is a multiple of type size. */
- if (!integer_zerop (size_binop (TRUNC_MOD_EXPR, *ptr_step,
- fold_convert (ssizetype, TYPE_SIZE_UNIT (innertype)))))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: non consecutive access.");
- return NULL;
- }
-
- indx_access_fn =
- build_polynomial_chrec (loopnum, integer_zero_node, integer_one_node);
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Access function of ptr indx: ");
- print_generic_expr (vect_dump, indx_access_fn, TDF_SLIM);
- }
- dr = init_data_ref (stmt, memref, NULL_TREE, indx_access_fn, is_read);
- *ptr_init = init;
- return dr;
-}
-
-
-/* Function vect_get_memtag.
-
- The function returns the relevant variable for memory tag (for aliasing
- purposes). */
-
-static tree
-vect_get_memtag (tree memref, struct data_reference *dr)
-{
- tree symbl, tag;
-
- switch (TREE_CODE (memref))
- {
- case SSA_NAME:
- symbl = SSA_NAME_VAR (memref);
- tag = get_var_ann (symbl)->type_mem_tag;
- if (!tag)
- {
- tree ptr = TREE_OPERAND (DR_REF (dr), 0);
- if (TREE_CODE (ptr) == SSA_NAME)
- tag = get_var_ann (SSA_NAME_VAR (ptr))->type_mem_tag;
- }
- return tag;
-
- case ADDR_EXPR:
- return TREE_OPERAND (memref, 0);
-
- default:
- return NULL_TREE;
- }
-}
-
-
-/* Function vect_address_analysis
-
- Return the BASE of the address expression EXPR.
- Also compute the INITIAL_OFFSET from BASE, MISALIGN and STEP.
-
- Input:
- EXPR - the address expression that is being analyzed
- STMT - the statement that contains EXPR or its original memory reference
- IS_READ - TRUE if STMT reads from EXPR, FALSE if writes to EXPR
- VECTYPE - the type that defines the alignment (i.e, we compute
- alignment relative to TYPE_ALIGN(VECTYPE))
- DR - data_reference struct for the original memory reference
-
- Output:
- BASE (returned value) - the base of the data reference EXPR.
- INITIAL_OFFSET - initial offset of EXPR from BASE (an expression)
- MISALIGN - offset of EXPR from BASE in bytes (a constant) or NULL_TREE if the
- computation is impossible
- STEP - evolution of EXPR in the loop
- BASE_ALIGNED - indicates if BASE is aligned
-
- If something unexpected is encountered (an unsupported form of data-ref),
- then NULL_TREE is returned.
- */
-
-static tree
-vect_address_analysis (tree expr, tree stmt, bool is_read, tree vectype,
- struct data_reference *dr, tree *offset, tree *misalign,
- tree *step, bool *base_aligned)
-{
- tree oprnd0, oprnd1, base_address, offset_expr, base_addr0, base_addr1;
- tree address_offset = ssize_int (0), address_misalign = ssize_int (0);
-
- switch (TREE_CODE (expr))
- {
- case PLUS_EXPR:
- case MINUS_EXPR:
- /* EXPR is of form {base +/- offset} (or {offset +/- base}). */
- oprnd0 = TREE_OPERAND (expr, 0);
- oprnd1 = TREE_OPERAND (expr, 1);
-
- STRIP_NOPS (oprnd0);
- STRIP_NOPS (oprnd1);
-
- /* Recursively try to find the base of the address contained in EXPR.
- For offset, the returned base will be NULL. */
- base_addr0 = vect_address_analysis (oprnd0, stmt, is_read, vectype, dr,
- &address_offset, &address_misalign, step,
- base_aligned);
-
- base_addr1 = vect_address_analysis (oprnd1, stmt, is_read, vectype, dr,
- &address_offset, &address_misalign, step,
- base_aligned);
-
- /* We support cases where only one of the operands contains an
- address. */
- if ((base_addr0 && base_addr1) || (!base_addr0 && !base_addr1))
- return NULL_TREE;
-
- /* To revert STRIP_NOPS. */
- oprnd0 = TREE_OPERAND (expr, 0);
- oprnd1 = TREE_OPERAND (expr, 1);
-
- offset_expr = base_addr0 ?
- fold_convert (ssizetype, oprnd1) : fold_convert (ssizetype, oprnd0);
-
- /* EXPR is of form {base +/- offset} (or {offset +/- base}). If offset is
- a number, we can add it to the misalignment value calculated for base,
- otherwise, misalignment is NULL. */
- if (TREE_CODE (offset_expr) == INTEGER_CST && address_misalign)
- *misalign = size_binop (TREE_CODE (expr), address_misalign,
- offset_expr);
- else
- *misalign = NULL_TREE;
-
- /* Combine offset (from EXPR {base + offset}) with the offset calculated
- for base. */
- *offset = size_binop (TREE_CODE (expr), address_offset, offset_expr);
- return base_addr0 ? base_addr0 : base_addr1;
-
- case ADDR_EXPR:
- base_address = vect_object_analysis (TREE_OPERAND (expr, 0), stmt, is_read,
- vectype, &dr, offset, misalign, step,
- base_aligned);
- return base_address;
-
- case SSA_NAME:
- if (TREE_CODE (TREE_TYPE (expr)) != POINTER_TYPE)
- return NULL_TREE;
-
- if (TYPE_ALIGN (TREE_TYPE (TREE_TYPE (expr))) < TYPE_ALIGN (vectype))
- {
- if (vect_get_ptr_offset (expr, vectype, misalign))
- *base_aligned = true;
- else
- *base_aligned = false;
- }
- else
- {
- *base_aligned = true;
- *misalign = ssize_int (0);
- }
- *offset = ssize_int (0);
- *step = ssize_int (0);
- return expr;
-
- default:
- return NULL_TREE;
- }
-}
-
-
-/* Function vect_object_analysis
-
- Return the BASE of the data reference MEMREF.
- Also compute the INITIAL_OFFSET from BASE, MISALIGN and STEP.
- E.g., for EXPR a.b[i] + 4B, BASE is a, and OFFSET is the overall offset
- 'a.b[i] + 4B' from a (can be an expression), MISALIGN is an OFFSET
- instantiated with initial_conditions of access_functions of variables,
- modulo alignment, and STEP is the evolution of the DR_REF in this loop.
-
- Function get_inner_reference is used for the above in case of ARRAY_REF and
- COMPONENT_REF.
-
- The structure of the function is as follows:
- Part 1:
- Case 1. For handled_component_p refs
- 1.1 call get_inner_reference
- 1.1.1 analyze offset expr received from get_inner_reference
- 1.2. build data-reference structure for MEMREF
- (fall through with BASE)
- Case 2. For declarations
- 2.1 check alignment
- 2.2 update DR_BASE_NAME if necessary for alias
- Case 3. For INDIRECT_REFs
- 3.1 get the access function
- 3.2 analyze evolution of MEMREF
- 3.3 set data-reference structure for MEMREF
- 3.4 call vect_address_analysis to analyze INIT of the access function
-
- Part 2:
- Combine the results of object and address analysis to calculate
- INITIAL_OFFSET, STEP and misalignment info.
-
- Input:
- MEMREF - the memory reference that is being analyzed
- STMT - the statement that contains MEMREF
- IS_READ - TRUE if STMT reads from MEMREF, FALSE if writes to MEMREF
- VECTYPE - the type that defines the alignment (i.e, we compute
- alignment relative to TYPE_ALIGN(VECTYPE))
-
- Output:
- BASE_ADDRESS (returned value) - the base address of the data reference MEMREF
- E.g, if MEMREF is a.b[k].c[i][j] the returned
- base is &a.
- DR - data_reference struct for MEMREF
- INITIAL_OFFSET - initial offset of MEMREF from BASE (an expression)
- MISALIGN - offset of MEMREF from BASE in bytes (a constant) or NULL_TREE if
- the computation is impossible
- STEP - evolution of the DR_REF in the loop
- BASE_ALIGNED - indicates if BASE is aligned
-
- If something unexpected is encountered (an unsupported form of data-ref),
- then NULL_TREE is returned. */
-
-static tree
-vect_object_analysis (tree memref, tree stmt, bool is_read,
- tree vectype, struct data_reference **dr,
- tree *offset, tree *misalign, tree *step,
- bool *base_aligned)
-{
- tree base = NULL_TREE, base_address = NULL_TREE;
- tree object_offset = ssize_int (0), object_misalign = ssize_int (0);
- tree object_step = ssize_int (0), address_step = ssize_int (0);
- bool object_base_aligned = true, address_base_aligned = true;
- tree address_offset = ssize_int (0), address_misalign = ssize_int (0);
- HOST_WIDE_INT pbitsize, pbitpos;
- tree poffset, bit_pos_in_bytes;
- enum machine_mode pmode;
- int punsignedp, pvolatilep;
- tree ptr_step = ssize_int (0), ptr_init = NULL_TREE;
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- struct data_reference *ptr_dr = NULL;
- tree access_fn, evolution_part, address_to_analyze;
-
- /* Part 1: */
- /* Case 1. handled_component_p refs. */
- if (handled_component_p (memref))
- {
- /* 1.1 call get_inner_reference. */
- /* Find the base and the offset from it. */
- base = get_inner_reference (memref, &pbitsize, &pbitpos, &poffset,
- &pmode, &punsignedp, &pvolatilep, false);
- if (!base)
- return NULL_TREE;
-
- /* 1.1.1 analyze offset expr received from get_inner_reference. */
- if (poffset
- && !vect_analyze_offset_expr (poffset, loop, TYPE_SIZE_UNIT (vectype),
- &object_offset, &object_misalign, &object_step))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "failed to compute offset or step for ");
- print_generic_expr (vect_dump, memref, TDF_SLIM);
- }
- return NULL_TREE;
- }
-
- /* Add bit position to OFFSET and MISALIGN. */
-
- bit_pos_in_bytes = ssize_int (pbitpos/BITS_PER_UNIT);
- /* Check that there is no remainder in bits. */
- if (pbitpos%BITS_PER_UNIT)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "bit offset alignment.");
- return NULL_TREE;
- }
- object_offset = size_binop (PLUS_EXPR, bit_pos_in_bytes, object_offset);
- if (object_misalign)
- object_misalign = size_binop (PLUS_EXPR, object_misalign,
- bit_pos_in_bytes);
-
- /* Create data-reference for MEMREF. TODO: handle COMPONENT_REFs. */
- if (!(*dr))
- {
- if (TREE_CODE (memref) == ARRAY_REF)
- *dr = analyze_array (stmt, memref, is_read);
- else
- /* FORNOW. */
- return NULL_TREE;
- }
- memref = base; /* To continue analysis of BASE. */
- /* fall through */
- }
-
- /* Part 1: Case 2. Declarations. */
- if (DECL_P (memref))
- {
- /* We expect to get a decl only if we already have a DR. */
- if (!(*dr))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "unhandled decl ");
- print_generic_expr (vect_dump, memref, TDF_SLIM);
- }
- return NULL_TREE;
- }
-
- /* 2.1 check the alignment. */
- if (DECL_ALIGN (memref) >= TYPE_ALIGN (vectype))
- object_base_aligned = true;
- else
- object_base_aligned = false;
-
- /* 2.2 update DR_BASE_NAME if necessary. */
- if (!DR_BASE_NAME ((*dr)))
- /* For alias analysis. In case the analysis of INDIRECT_REF brought
- us to object. */
- DR_BASE_NAME ((*dr)) = memref;
-
- base_address = build_fold_addr_expr (memref);
- }
-
- /* Part 1: Case 3. INDIRECT_REFs. */
- else if (TREE_CODE (memref) == INDIRECT_REF)
- {
- /* 3.1 get the access function. */
- access_fn = analyze_scalar_evolution (loop, TREE_OPERAND (memref, 0));
- if (!access_fn)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: complicated pointer access.");
- return NULL_TREE;
- }
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Access function of ptr: ");
- print_generic_expr (vect_dump, access_fn, TDF_SLIM);
- }
-
- /* 3.2 analyze evolution of MEMREF. */
- evolution_part = evolution_part_in_loop_num (access_fn, loop->num);
- if (evolution_part)
- {
- ptr_dr = vect_analyze_pointer_ref_access (memref, stmt, is_read,
- access_fn, &ptr_init, &ptr_step);
- if (!(ptr_dr))
- return NULL_TREE;
-
- object_step = size_binop (PLUS_EXPR, object_step, ptr_step);
- address_to_analyze = ptr_init;
- }
- else
- {
- if (!(*dr))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: ptr is loop invariant.");
- return NULL_TREE;
- }
- /* Since there exists DR for MEMREF, we are analyzing the base of
- handled component, which not necessary has evolution in the
- loop. */
- address_to_analyze = TREE_OPERAND (base, 0);
- }
-
- /* 3.3 set data-reference structure for MEMREF. */
- *dr = (*dr) ? *dr : ptr_dr;
-
- /* 3.4 call vect_address_analysis to analyze INIT of the access
- function. */
- base_address = vect_address_analysis (address_to_analyze, stmt, is_read,
- vectype, *dr, &address_offset, &address_misalign,
- &address_step, &address_base_aligned);
- }
-
- if (!base_address)
- /* MEMREF cannot be analyzed. */
- return NULL_TREE;
-
- /* Part 2: Combine the results of object and address analysis to calculate
- INITIAL_OFFSET, STEP and misalignment info. */
- *offset = size_binop (PLUS_EXPR, object_offset, address_offset);
- if (object_misalign && address_misalign)
- *misalign = size_binop (PLUS_EXPR, object_misalign, address_misalign);
- else
- *misalign = NULL_TREE;
- *step = size_binop (PLUS_EXPR, object_step, address_step);
- *base_aligned = object_base_aligned && address_base_aligned;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Results of object analysis for: ");
- print_generic_expr (vect_dump, memref, TDF_SLIM);
- fprintf (vect_dump, "\n\tbase: ");
- print_generic_expr (vect_dump, base, TDF_SLIM);
- fprintf (vect_dump, "\n\toffset: ");
- print_generic_expr (vect_dump, *offset, TDF_SLIM);
- fprintf (vect_dump, "\n\tstep: ");
- print_generic_expr (vect_dump, *step, TDF_SLIM);
- fprintf (vect_dump, "\n\tbase aligned %d\n\tmisalign: ", *base_aligned);
- print_generic_expr (vect_dump, *misalign, TDF_SLIM);
- }
- return base_address;
-}
-
-
-/* Function vect_analyze_data_refs.
-
- Find all the data references in the loop.
-
- The general structure of the analysis of data refs in the vectorizer is as
- follows:
- 1- vect_analyze_data_refs(loop):
- Find and analyze all data-refs in the loop:
- foreach ref
- base_address = vect_object_analysis(ref)
- ref_stmt.memtag = vect_get_memtag(base)
- 1.1- vect_object_analysis(ref):
- Analyze ref, and build a DR (data_referece struct) for it;
- compute base, initial_offset, step and alignment.
- Call get_inner_reference for refs handled in this function.
- Call vect_addr_analysis(addr) to analyze pointer type expressions.
- Set ref_stmt.base, ref_stmt.initial_offset, ref_stmt.alignment, and
- ref_stmt.step accordingly.
- 2- vect_analyze_dependences(): apply dependence testing using ref_stmt.DR
- 3- vect_analyze_drs_alignment(): check that ref_stmt.alignment is ok.
- 4- vect_analyze_drs_access(): check that ref_stmt.step is ok.
-
- FORNOW: Handle aligned INDIRECT_REFs and ARRAY_REFs
- which base is really an array (not a pointer) and which alignment
- can be forced. This restriction will be relaxed. */
-
-static bool
-vect_analyze_data_refs (loop_vec_info loop_vinfo)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
- int nbbs = loop->num_nodes;
- block_stmt_iterator si;
- int j;
- struct data_reference *dr;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_analyze_data_refs ===");
-
- for (j = 0; j < nbbs; j++)
- {
- basic_block bb = bbs[j];
- for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
- {
- bool is_read = false;
- tree stmt = bsi_stmt (si);
- stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- v_may_def_optype v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
- v_must_def_optype v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
- vuse_optype vuses = STMT_VUSE_OPS (stmt);
- varray_type *datarefs = NULL;
- int nvuses, nv_may_defs, nv_must_defs;
- tree memref = NULL;
- tree scalar_type, vectype;
- tree base, offset, misalign, step, tag;
- bool base_aligned;
-
- /* Assumption: there exists a data-ref in stmt, if and only if
- it has vuses/vdefs. */
-
- if (!vuses && !v_may_defs && !v_must_defs)
- continue;
-
- nvuses = NUM_VUSES (vuses);
- nv_may_defs = NUM_V_MAY_DEFS (v_may_defs);
- nv_must_defs = NUM_V_MUST_DEFS (v_must_defs);
-
- if (nvuses && (nv_may_defs || nv_must_defs))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "unexpected vdefs and vuses in stmt: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- return false;
- }
-
- if (TREE_CODE (stmt) != MODIFY_EXPR)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "unexpected vops in stmt: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- return false;
- }
-
- if (vuses)
- {
- memref = TREE_OPERAND (stmt, 1);
- datarefs = &(LOOP_VINFO_DATAREF_READS (loop_vinfo));
- is_read = true;
- }
- else /* vdefs */
- {
- memref = TREE_OPERAND (stmt, 0);
- datarefs = &(LOOP_VINFO_DATAREF_WRITES (loop_vinfo));
- is_read = false;
- }
-
- scalar_type = TREE_TYPE (memref);
- vectype = get_vectype_for_scalar_type (scalar_type);
- if (!vectype)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "no vectype for stmt: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- fprintf (vect_dump, " scalar_type: ");
- print_generic_expr (vect_dump, scalar_type, TDF_DETAILS);
- }
- /* It is not possible to vectorize this data reference. */
- return false;
- }
- /* Analyze MEMREF. If it is of a supported form, build data_reference
- struct for it (DR). */
- dr = NULL;
- base = vect_object_analysis (memref, stmt, is_read, vectype, &dr,
- &offset, &misalign, &step,
- &base_aligned);
- if (!base)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump, "not vectorized: unhandled data ref: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- return false;
- }
- /* Find memtag for aliasing purposes. */
- tag = vect_get_memtag (base, dr);
- if (!tag)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- {
- fprintf (vect_dump, "not vectorized: no memtag ref: ");
- print_generic_expr (vect_dump, memref, TDF_SLIM);
- }
- return false;
- }
- STMT_VINFO_VECT_DR_BASE_ADDRESS (stmt_info) = base;
- STMT_VINFO_VECT_INIT_OFFSET (stmt_info) = offset;
- STMT_VINFO_VECT_STEP (stmt_info) = step;
- STMT_VINFO_VECT_MISALIGNMENT (stmt_info) = misalign;
- STMT_VINFO_VECT_BASE_ALIGNED_P (stmt_info) = base_aligned;
- STMT_VINFO_MEMTAG (stmt_info) = tag;
- STMT_VINFO_VECTYPE (stmt_info) = vectype;
- VARRAY_PUSH_GENERIC_PTR (*datarefs, dr);
- STMT_VINFO_DATA_REF (stmt_info) = dr;
- }
- }
-
- return true;
-}
-
-
-/* Utility functions used by vect_mark_stmts_to_be_vectorized. */
-
-/* Function vect_mark_relevant.
-
- Mark STMT as "relevant for vectorization" and add it to WORKLIST. */
-
-static void
-vect_mark_relevant (varray_type *worklist, tree stmt)
-{
- stmt_vec_info stmt_info;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "mark relevant.");
-
- if (TREE_CODE (stmt) == PHI_NODE)
- {
- VARRAY_PUSH_TREE (*worklist, stmt);
- return;
- }
-
- stmt_info = vinfo_for_stmt (stmt);
-
- if (!stmt_info)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "mark relevant: no stmt info!!.");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
- return;
- }
-
- if (STMT_VINFO_RELEVANT_P (stmt_info))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "already marked relevant.");
- return;
- }
-
- STMT_VINFO_RELEVANT_P (stmt_info) = 1;
- VARRAY_PUSH_TREE (*worklist, stmt);
-}
-
-
-/* Function vect_stmt_relevant_p.
-
- Return true if STMT in loop that is represented by LOOP_VINFO is
- "relevant for vectorization".
-
- A stmt is considered "relevant for vectorization" if:
- - it has uses outside the loop.
- - it has vdefs (it alters memory).
- - control stmts in the loop (except for the exit condition).
-
- CHECKME: what other side effects would the vectorizer allow? */
-
-static bool
-vect_stmt_relevant_p (tree stmt, loop_vec_info loop_vinfo)
-{
- v_may_def_optype v_may_defs;
- v_must_def_optype v_must_defs;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- int i;
- dataflow_t df;
- int num_uses;
-
- /* cond stmt other than loop exit cond. */
- if (is_ctrl_stmt (stmt) && (stmt != LOOP_VINFO_EXIT_COND (loop_vinfo)))
- return true;
-
- /* changing memory. */
- if (TREE_CODE (stmt) != PHI_NODE)
- {
- v_may_defs = STMT_V_MAY_DEF_OPS (stmt);
- v_must_defs = STMT_V_MUST_DEF_OPS (stmt);
- if (v_may_defs || v_must_defs)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "vec_stmt_relevant_p: stmt has vdefs.");
- return true;
- }
- }
-
- /* uses outside the loop. */
- df = get_immediate_uses (stmt);
- num_uses = num_immediate_uses (df);
- for (i = 0; i < num_uses; i++)
- {
- tree use = immediate_use (df, i);
- basic_block bb = bb_for_stmt (use);
- if (!flow_bb_inside_loop_p (loop, bb))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "vec_stmt_relevant_p: used out of loop.");
- return true;
- }
- }
-
- return false;
-}
-
-
-/* Function vect_mark_stmts_to_be_vectorized.
-
- Not all stmts in the loop need to be vectorized. For example:
-
- for i...
- for j...
- 1. T0 = i + j
- 2. T1 = a[T0]
-
- 3. j = j + 1
-
- Stmt 1 and 3 do not need to be vectorized, because loop control and
- addressing of vectorized data-refs are handled differently.
-
- This pass detects such stmts. */
-
-static bool
-vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
-{
- varray_type worklist;
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
- unsigned int nbbs = loop->num_nodes;
- block_stmt_iterator si;
- tree stmt;
- stmt_ann_t ann;
- unsigned int i;
- int j;
- use_optype use_ops;
- stmt_vec_info stmt_info;
- basic_block bb;
- tree phi;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== vect_mark_stmts_to_be_vectorized ===");
-
- bb = loop->header;
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "init: phi relevant? ");
- print_generic_expr (vect_dump, phi, TDF_SLIM);
- }
-
- if (vect_stmt_relevant_p (phi, loop_vinfo))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "unsupported reduction/induction.");
- return false;
- }
- }
-
- VARRAY_TREE_INIT (worklist, 64, "work list");
-
- /* 1. Init worklist. */
-
- for (i = 0; i < nbbs; i++)
- {
- bb = bbs[i];
- for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
- {
- stmt = bsi_stmt (si);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "init: stmt relevant? ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
-
- stmt_info = vinfo_for_stmt (stmt);
- STMT_VINFO_RELEVANT_P (stmt_info) = 0;
-
- if (vect_stmt_relevant_p (stmt, loop_vinfo))
- vect_mark_relevant (&worklist, stmt);
- }
- }
-
-
- /* 2. Process_worklist */
-
- while (VARRAY_ACTIVE_SIZE (worklist) > 0)
- {
- stmt = VARRAY_TOP_TREE (worklist);
- VARRAY_POP (worklist);
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "worklist: examine stmt: ");
- print_generic_expr (vect_dump, stmt, TDF_SLIM);
- }
-
- /* Examine the USES in this statement. Mark all the statements which
- feed this statement's uses as "relevant", unless the USE is used as
- an array index. */
-
- if (TREE_CODE (stmt) == PHI_NODE)
- {
- /* follow the def-use chain inside the loop. */
- for (j = 0; j < PHI_NUM_ARGS (stmt); j++)
- {
- tree arg = PHI_ARG_DEF (stmt, j);
- tree def_stmt = NULL_TREE;
- basic_block bb;
- if (!vect_is_simple_use (arg, loop_vinfo, &def_stmt))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported use in stmt.");
- varray_clear (worklist);
- return false;
- }
- if (!def_stmt)
- continue;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "worklist: def_stmt: ");
- print_generic_expr (vect_dump, def_stmt, TDF_SLIM);
- }
-
- bb = bb_for_stmt (def_stmt);
- if (flow_bb_inside_loop_p (loop, bb))
- vect_mark_relevant (&worklist, def_stmt);
- }
- }
-
- ann = stmt_ann (stmt);
- use_ops = USE_OPS (ann);
-
- for (i = 0; i < NUM_USES (use_ops); i++)
- {
- tree use = USE_OP (use_ops, i);
-
- /* We are only interested in uses that need to be vectorized. Uses
- that are used for address computation are not considered relevant.
- */
- if (exist_non_indexing_operands_for_use_p (use, stmt))
- {
- tree def_stmt = NULL_TREE;
- basic_block bb;
- if (!vect_is_simple_use (use, loop_vinfo, &def_stmt))
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
- LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "not vectorized: unsupported use in stmt.");
- varray_clear (worklist);
- return false;
- }
-
- if (!def_stmt)
- continue;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "worklist: examine use %d: ", i);
- print_generic_expr (vect_dump, use, TDF_SLIM);
- }
-
- bb = bb_for_stmt (def_stmt);
- if (flow_bb_inside_loop_p (loop, bb))
- vect_mark_relevant (&worklist, def_stmt);
- }
- }
- } /* while worklist */
-
- varray_clear (worklist);
- return true;
-}
-
-
-/* Function vect_can_advance_ivs_p
-
- In case the number of iterations that LOOP iterates in unknown at compile
- time, an epilog loop will be generated, and the loop induction variables
- (IVs) will be "advanced" to the value they are supposed to take just before
- the epilog loop. Here we check that the access function of the loop IVs
- and the expression that represents the loop bound are simple enough.
- These restrictions will be relaxed in the future. */
-
-static bool
-vect_can_advance_ivs_p (loop_vec_info loop_vinfo)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
- basic_block bb = loop->header;
- tree phi;
-
- /* Analyze phi functions of the loop header. */
-
- for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
- {
- tree access_fn = NULL;
- tree evolution_part;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Analyze phi: ");
- print_generic_expr (vect_dump, phi, TDF_SLIM);
- }
-
- /* Skip virtual phi's. The data dependences that are associated with
- virtual defs/uses (i.e., memory accesses) are analyzed elsewhere. */
-
- if (!is_gimple_reg (SSA_NAME_VAR (PHI_RESULT (phi))))
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "virtual phi. skip.");
- continue;
- }
-
- /* Analyze the evolution function. */
-
- access_fn = instantiate_parameters
- (loop, analyze_scalar_evolution (loop, PHI_RESULT (phi)));
-
- if (!access_fn)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "No Access function.");
- return false;
- }
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "Access function of PHI: ");
- print_generic_expr (vect_dump, access_fn, TDF_SLIM);
- }
-
- evolution_part = evolution_part_in_loop_num (access_fn, loop->num);
-
- if (evolution_part == NULL_TREE)
- return false;
-
- /* FORNOW: We do not transform initial conditions of IVs
- which evolution functions are a polynomial of degree >= 2. */
-
- if (tree_is_chrec (evolution_part))
- return false;
- }
-
- return true;
-}
-
-
-/* Function vect_get_loop_niters.
-
- Determine how many iterations the loop is executed.
- If an expression that represents the number of iterations
- can be constructed, place it in NUMBER_OF_ITERATIONS.
- Return the loop exit condition. */
-
-static tree
-vect_get_loop_niters (struct loop *loop, tree *number_of_iterations)
-{
- tree niters;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "=== get_loop_niters ===");
-
- niters = number_of_iterations_in_loop (loop);
-
- if (niters != NULL_TREE
- && niters != chrec_dont_know)
- {
- *number_of_iterations = niters;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- {
- fprintf (vect_dump, "==> get_loop_niters:" );
- print_generic_expr (vect_dump, *number_of_iterations, TDF_SLIM);
- }
- }
-
- return get_loop_exit_condition (loop);
-}
-
-
-/* Function vect_analyze_loop_form.
-
- Verify the following restrictions (some may be relaxed in the future):
- - it's an inner-most loop
- - number of BBs = 2 (which are the loop header and the latch)
- - the loop has a pre-header
- - the loop has a single entry and exit
- - the loop exit condition is simple enough, and the number of iterations
- can be analyzed (a countable loop). */
-
-static loop_vec_info
-vect_analyze_loop_form (struct loop *loop)
-{
- loop_vec_info loop_vinfo;
- tree loop_cond;
- tree number_of_iterations = NULL;
- bool rescan = false;
- LOC loop_loc;
-
- loop_loc = find_loop_location (loop);
-
- if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
- fprintf (vect_dump, "=== vect_analyze_loop_form ===");
-
- if (loop->inner)
- {
- if (vect_print_dump_info (REPORT_OUTER_LOOPS, loop_loc))
- fprintf (vect_dump, "not vectorized: nested loop.");
- return NULL;
- }
-
- if (!loop->single_exit
- || loop->num_nodes != 2
- || EDGE_COUNT (loop->header->preds) != 2
- || loop->num_entries != 1)
- {
- if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
- {
- if (!loop->single_exit)
- fprintf (vect_dump, "not vectorized: multiple exits.");
- else if (loop->num_nodes != 2)
- fprintf (vect_dump, "not vectorized: too many BBs in loop.");
- else if (EDGE_COUNT (loop->header->preds) != 2)
- fprintf (vect_dump, "not vectorized: too many incoming edges.");
- else if (loop->num_entries != 1)
- fprintf (vect_dump, "not vectorized: too many entries.");
- }
-
- return NULL;
- }
-
- /* We assume that the loop exit condition is at the end of the loop. i.e,
- that the loop is represented as a do-while (with a proper if-guard
- before the loop if needed), where the loop header contains all the
- executable statements, and the latch is empty. */
- if (!empty_block_p (loop->latch))
- {
- if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
- fprintf (vect_dump, "not vectorized: unexpectd loop form.");
- return NULL;
- }
-
- /* Make sure we have a preheader basic block. */
- if (!loop->pre_header)
- {
- rescan = true;
- loop_split_edge_with (loop_preheader_edge (loop), NULL);
- }
-
- /* Make sure there exists a single-predecessor exit bb: */
- if (EDGE_COUNT (loop->exit_edges[0]->dest->preds) != 1)
- {
- rescan = true;
- loop_split_edge_with (loop->exit_edges[0], NULL);
- }
-
- if (rescan)
- {
- flow_loop_scan (loop, LOOP_ALL);
- /* Flow loop scan does not update loop->single_exit field. */
- loop->single_exit = loop->exit_edges[0];
- }
-
- if (empty_block_p (loop->header))
- {
- if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
- fprintf (vect_dump, "not vectorized: empty loop.");
- return NULL;
- }
-
- loop_cond = vect_get_loop_niters (loop, &number_of_iterations);
- if (!loop_cond)
- {
- if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
- fprintf (vect_dump, "not vectorized: complicated exit condition.");
- return NULL;
- }
-
- if (!number_of_iterations)
- {
- if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
- fprintf (vect_dump,
- "not vectorized: number of iterations cannot be computed.");
- return NULL;
- }
-
- if (chrec_contains_undetermined (number_of_iterations))
- {
- if (vect_print_dump_info (REPORT_BAD_FORM_LOOPS, loop_loc))
- fprintf (vect_dump, "Infinite number of iterations.");
- return false;
- }
-
- loop_vinfo = new_loop_vec_info (loop);
- LOOP_VINFO_NITERS (loop_vinfo) = number_of_iterations;
-
- if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo))
- {
- if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
- {
- fprintf (vect_dump, "Symbolic number of iterations is ");
- print_generic_expr (vect_dump, number_of_iterations, TDF_DETAILS);
- }
- }
- else
- if (LOOP_VINFO_INT_NITERS (loop_vinfo) == 0)
- {
- if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, loop_loc))
- fprintf (vect_dump, "not vectorized: number of iterations = 0.");
- return NULL;
- }
-
- LOOP_VINFO_EXIT_COND (loop_vinfo) = loop_cond;
- LOOP_VINFO_LOC (loop_vinfo) = loop_loc;
-
- return loop_vinfo;
-}
-
-
-/* Function vect_analyze_loop.
-
- Apply a set of analyses on LOOP, and create a loop_vec_info struct
- for it. The different analyses will record information in the
- loop_vec_info struct. */
-
-static loop_vec_info
-vect_analyze_loop (struct loop *loop)
-{
- bool ok;
- loop_vec_info loop_vinfo;
-
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "===== analyze_loop_nest =====");
-
- /* Check the CFG characteristics of the loop (nesting, entry/exit, etc. */
-
- loop_vinfo = vect_analyze_loop_form (loop);
- if (!loop_vinfo)
- {
- if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
- fprintf (vect_dump, "bad loop form.");
- return NULL;
- }
-
- /* Find all data references in the loop (which correspond to vdefs/vuses)
- and analyze their evolution in the loop.
-
- FORNOW: Handle only simple, array references, which
- alignment can be forced, and aligned pointer-references. */
-
- ok = vect_analyze_data_refs (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "bad data references.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- /* Data-flow analysis to detect stmts that do not need to be vectorized. */
-
- ok = vect_mark_stmts_to_be_vectorized (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "unexpected pattern.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- /* Check that all cross-iteration scalar data-flow cycles are OK.
- Cross-iteration cycles caused by virtual phis are analyzed separately. */
-
- ok = vect_analyze_scalar_cycles (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "bad scalar cycle.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- /* Analyze data dependences between the data-refs in the loop.
- FORNOW: fail at the first data dependence that we encounter. */
-
- ok = vect_analyze_data_ref_dependences (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "bad data dependence.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- /* Analyze the access patterns of the data-refs in the loop (consecutive,
- complex, etc.). FORNOW: Only handle consecutive access pattern. */
-
- ok = vect_analyze_data_ref_accesses (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "bad data access.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- /* Analyze the alignment of the data-refs in the loop.
- FORNOW: Only aligned accesses are handled. */
-
- ok = vect_analyze_data_refs_alignment (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "bad data alignment.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- /* Scan all the operations in the loop and make sure they are
- vectorizable. */
-
- ok = vect_analyze_operations (loop_vinfo);
- if (!ok)
- {
- if (vect_print_dump_info (REPORT_DETAILS, LOOP_LOC (loop_vinfo)))
- fprintf (vect_dump, "bad operation or unsupported loop bound.");
- destroy_loop_vec_info (loop_vinfo);
- return NULL;
- }
-
- LOOP_VINFO_VECTORIZABLE_P (loop_vinfo) = 1;
-
- return loop_vinfo;
-}
-
-
/* Function need_imm_uses_for.
Return whether we ought to include information for 'var'
@@ -5794,7 +1563,8 @@ need_imm_uses_for (tree var)
void
vectorize_loops (struct loops *loops)
{
- unsigned int i, loops_num;
+ /* APPLE LOCAL AV data dependence. -dpatel */
+ unsigned int i;
unsigned int num_vectorized_loops = 0;
/* Fix the verbosity level if not defined explicitly by the user. */
@@ -5836,6 +1606,10 @@ vectorize_loops (struct loops *loops)
continue;
vect_transform_loop (loop_vinfo, loops);
+ /* APPLE LOCAL begin 4095567 */
+ /* Now this function uses vectors. */
+ DECL_STRUCT_FUNCTION (current_function_decl)->uses_vector = 1;
+ /* APPLE LOCAL end 4095567 */
num_vectorized_loops++;
}
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 7876cb6d7cb..1d2317130cc 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -138,6 +138,8 @@ enum stmt_vec_info_type {
load_vec_info_type,
store_vec_info_type,
op_vec_info_type,
+ /* APPLE LOCAL AV cond expr. -dpatel */
+ select_vec_info_type,
assignment_vec_info_type
};
@@ -258,17 +260,81 @@ unknown_alignment_for_access_p (struct data_reference *data_ref_info)
/* Perform signed modulo, always returning a non-negative value. */
#define VECT_SMODULO(x,y) ((x) % (y) < 0 ? ((x) % (y) + (y)) : (x) % (y))
+/* vect_dump will be set to stderr or dump_file if exist. */
+extern FILE *vect_dump;
+extern enum verbosity_levels vect_verbosity_level;
/*-----------------------------------------------------------------*/
/* Function prototypes. */
/*-----------------------------------------------------------------*/
-/* Main driver. */
-extern void vectorize_loops (struct loops *);
+/*************************************************************************
+ Simple Loop Peeling Utilities - in tree-vectorizer.c
+ *************************************************************************/
+/* Entry point for peeling of simple loops.
+ Peel the first/last iterations of a loop.
+ It can be used outside of the vectorizer for loops that are simple enough
+ (see function documentation). In the vectorizer it is used to peel the
+ last few iterations when the loop bound is unknown or does not evenly
+ divide by the vectorization factor, and to peel the first few iterations
+ to force the alignment of data references in the loop. */
+extern struct loop *slpeel_tree_peel_loop_to_edge
+ (struct loop *, struct loops *, edge, tree, tree, bool);
+extern void slpeel_make_loop_iterate_ntimes (struct loop *, tree);
+extern bool slpeel_can_duplicate_loop_p (struct loop *, edge);
+#ifdef ENABLE_CHECKING
+extern void slpeel_verify_cfg_after_peeling (struct loop *, struct loop *);
+#endif
+
-/* creation and deletion of loop and stmt info structs. */
+/*************************************************************************
+ General Vectorization Utilities
+ *************************************************************************/
+/** In tree-vectorizer.c **/
+extern tree vect_strip_conversion (tree);
+extern tree get_vectype_for_scalar_type (tree);
+extern bool vect_is_simple_use (tree , loop_vec_info, tree *);
+extern bool vect_is_simple_iv_evolution (unsigned, tree, tree *, tree *);
+extern bool vect_can_force_dr_alignment_p (tree, unsigned int);
+extern enum dr_alignment_support vect_supportable_dr_alignment
+ (struct data_reference *);
+/* Creation and deletion of loop and stmt info structs. */
extern loop_vec_info new_loop_vec_info (struct loop *loop);
extern void destroy_loop_vec_info (loop_vec_info);
extern stmt_vec_info new_stmt_vec_info (tree stmt, loop_vec_info);
+/* Main driver. */
+extern void vectorize_loops (struct loops *);
+
+/* APPLE LOCAL begin loops-to-memset */
+extern struct data_reference * vect_analyze_pointer_ref_access (tree, tree, bool, tree, tree *, tree *);
+extern tree vect_get_loop_niters (struct loop *, tree *);
+/* APPLE LOCAL end loops-to-memset */
+
+/* APPLE LOCAL begin AV data dependence. -dpatel */
+/* Patch is waiting FSF review since mid Sep, 2004.
+ New variable, loops_num. */
+extern unsigned int loops_num;
+
+extern bool vectorizable_select (tree, block_stmt_iterator *, tree *);
+/* APPLE LOCAL end AV data dependence. -dpatel */
+
+/** In tree-vect-analyze.c **/
+/* Driver for analysis stage. */
+extern loop_vec_info vect_analyze_loop (struct loop *);
+
+/** In tree-vect-transform.c **/
+extern bool vectorizable_load (tree, block_stmt_iterator *, tree *);
+extern bool vectorizable_store (tree, block_stmt_iterator *, tree *);
+extern bool vectorizable_operation (tree, block_stmt_iterator *, tree *);
+extern bool vectorizable_assignment (tree, block_stmt_iterator *, tree *);
+/* Driver for transformation stage. */
+extern void vect_transform_loop (loop_vec_info, struct loops *);
+
+/*************************************************************************
+ Vectorization Debug Information - in tree-vectorizer.c
+ *************************************************************************/
+extern bool vect_print_dump_info (enum verbosity_levels, LOC);
+extern void vect_set_verbosity_level (const char *);
+extern LOC find_loop_location (struct loop *);
#endif /* GCC_TREE_VECTORIZER_H */
diff --git a/gcc/tree-vn.c b/gcc/tree-vn.c
index 22affffb063..f6263fd5dc4 100644
--- a/gcc/tree-vn.c
+++ b/gcc/tree-vn.c
@@ -1,5 +1,5 @@
/* Value Numbering routines for tree expressions.
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Daniel Berlin <dan@dberlin.org>, Steven Bosscher
<stevenb@suse.de> and Diego Novillo <dnovillo@redhat.com>
diff --git a/gcc/tree.c b/gcc/tree.c
index 3a0054c507e..5377ef14db7 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -113,7 +113,8 @@ struct type_hash GTY(())
};
/* Initial size of the hash table (rounded to next prime). */
-#define TYPE_HASH_INITIAL_SIZE 1000
+/* APPLE LOCAL fsf candidate */
+#define TYPE_HASH_INITIAL_SIZE 4111
/* Now here is the hash table. When recording a type, it is added to
the slot whose index is the hash code. Note that the hash table is
@@ -243,6 +244,10 @@ tree_size (tree node)
return (sizeof (struct tree_phi_node)
+ (PHI_ARG_CAPACITY (node) - 1) * sizeof (struct phi_arg_d));
+ case TREE_BINFO:
+ return (offsetof (struct tree_binfo, base_binfos)
+ + VEC_embedded_size (tree, BINFO_N_BASE_BINFOS (node)));
+
case TREE_VEC:
return (sizeof (struct tree_vec)
+ (TREE_VEC_LENGTH (node) - 1) * sizeof(char *));
@@ -753,6 +758,10 @@ build_vector (tree type, tree vals)
tree v = make_node (VECTOR_CST);
int over1 = 0, over2 = 0;
tree link;
+ /* APPLE LOCAL begin AltiVec */
+ int max_index, count = 0;
+ tree list = NULL_TREE;
+ /* APPLE LOCAL end AltiVec */
TREE_VECTOR_CST_ELTS (v) = vals;
TREE_TYPE (v) = type;
@@ -762,10 +771,29 @@ build_vector (tree type, tree vals)
{
tree value = TREE_VALUE (link);
+ /* APPLE LOCAL begin AltiVec */
+ value = fold (value);
+ TREE_VALUE (link) = value;
+ count++;
+ list = link;
+ /* APPLE LOCAL end AltiVec */
over1 |= TREE_OVERFLOW (value);
over2 |= TREE_CONSTANT_OVERFLOW (value);
}
+ /* APPLE LOCAL begin AltiVec */
+ max_index = TYPE_VECTOR_SUBPARTS (type);
+ if (count > 0 && count < max_index)
+ {
+ int index;
+ tree expr = TREE_VALUE (list);
+ for (index = count; index < max_index; ++index)
+ list = chainon (list,
+ build_tree_list (NULL_TREE,
+ convert (TREE_TYPE (type), expr)));
+ }
+ /* APPLE LOCAL end AltiVec */
+
TREE_OVERFLOW (v) = over1;
TREE_CONSTANT_OVERFLOW (v) = over2;
@@ -2605,6 +2633,10 @@ build2_stat (enum tree_code code, tree tt, tree arg0, tree arg1 MEM_STAT_DECL)
/* Expressions without side effects may be constant if their
arguments are as well. */
constant = (TREE_CODE_CLASS (code) == tcc_comparison
+ /* APPLE LOCAL begin Altivec */
+ || (targetm.cast_expr_as_vector_init
+ && code == COMPOUND_EXPR)
+ /* APPLE LOCAL end AltiVec */
|| TREE_CODE_CLASS (code) == tcc_binary);
read_only = 1;
side_effects = TREE_SIDE_EFFECTS (t);
@@ -4726,7 +4758,8 @@ get_unwidened (tree op, tree for_type)
&& TYPE_UNSIGNED (type));
tree win = op;
- while (TREE_CODE (op) == NOP_EXPR)
+ while (TREE_CODE (op) == NOP_EXPR
+ || TREE_CODE (op) == CONVERT_EXPR)
{
int bitschange
= TYPE_PRECISION (TREE_TYPE (op))
@@ -4756,7 +4789,9 @@ get_unwidened (tree op, tree for_type)
/* TYPE_UNSIGNED says whether this is a zero-extension.
Let's avoid computing it if it does not affect WIN
and if UNS will not be needed again. */
- if ((uns || TREE_CODE (op) == NOP_EXPR)
+ if ((uns
+ || TREE_CODE (op) == NOP_EXPR
+ || TREE_CODE (op) == CONVERT_EXPR)
&& TYPE_UNSIGNED (TREE_TYPE (op)))
{
uns = 1;
@@ -5965,7 +6000,11 @@ reconstruct_complex_type (tree type, tree bottom)
if (POINTER_TYPE_P (type))
{
inner = reconstruct_complex_type (TREE_TYPE (type), bottom);
- outer = build_pointer_type (inner);
+ /* APPLE LOCAL begin AltiVec */
+ outer = (TREE_CODE (type) == REFERENCE_TYPE
+ ? build_reference_type (inner)
+ : build_pointer_type (inner));
+ /* APPLE LOCAL end AltiVec */
}
else if (TREE_CODE (type) == ARRAY_TYPE)
{
diff --git a/gcc/tree.def b/gcc/tree.def
index 9a7c7e0db3b..2b197fcfccc 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -855,7 +855,8 @@ DEFTREECODE (RESX_EXPR, "resx_expr", tcc_statement, 1)
STRING_CST for the instruction (e.g., "mov x, y"). ASM_OUTPUTS,
ASM_INPUTS, and ASM_CLOBBERS represent the outputs, inputs, and clobbers
for the statement. */
-DEFTREECODE (ASM_EXPR, "asm_expr", tcc_statement, 4)
+/* APPLE LOCAL CW asm blocks. */
+DEFTREECODE (ASM_EXPR, "asm_expr", tcc_statement, 5)
/* Variable references for SSA analysis. New SSA names are created every
time a variable is assigned a new value. The SSA builder uses SSA_NAME
@@ -896,6 +897,11 @@ DEFTREECODE (POLYNOMIAL_CHREC, "polynomial_chrec", tcc_expression, 3)
Use the interface in tree-iterator.h to access this node. */
DEFTREECODE (STATEMENT_LIST, "statement_list", tcc_exceptional, 0)
+/* APPLE LOCAL begin AV vmul_uch --haifa */
+/* Used during vectorization to represent computation idioms. */
+DEFTREECODE (MULT_UCH_EXPR, "mult_uch", '2', 2)
+/* APPLE LOCAL end AV vmul_uch --haifa */
+
/* Value handles. Artificial nodes to represent expressions in
partial redundancy elimination (tree-ssa-pre.c). These nodes are
used for expression canonicalization. If two expressions compute
diff --git a/gcc/tree.h b/gcc/tree.h
index 62e9bb332bb..381e02f8223 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -288,6 +288,8 @@ struct tree_common GTY(())
unsigned lang_flag_5 : 1;
unsigned lang_flag_6 : 1;
unsigned visited : 1;
+ /* APPLE LOCAL "unavailable" attribute (Radar 2809697) --ilr */
+ unsigned unavailable_flag : 1;
};
/* The following table lists the uses of each of the above flags and
@@ -421,6 +423,13 @@ struct tree_common GTY(())
TREE_DEPRECATED in
..._DECL
+ APPLE LOCAL begin "unavailable" attribute (Radar 2809697)
+ unavailable_flag:
+
+ TREE_UNAVAILABLE in
+ ..._DECL
+ APPLE LOCAL end "unavailable" attribute (Radar 2809697)
+
visited:
Used in tree traversals to mark visited nodes.
@@ -1024,6 +1033,12 @@ extern void tree_operand_check_failed (int, enum tree_code,
deprecated feature by __attribute__((deprecated)). */
#define TREE_DEPRECATED(NODE) ((NODE)->common.deprecated_flag)
+/* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) */
+/* Nonzero in a IDENTIFIER_NODE if the use of the name is defined as a
+ unavailable feature by __attribute__((unavailable)). */
+#define TREE_UNAVAILABLE(NODE) ((NODE)->common.unavailable_flag)
+/* APPLE LOCAL end "unavailable" attribute (Radar 2809697) */
+
/* Value of expression is function invariant. A strict subset of
TREE_CONSTANT, such an expression is constant over any one function
invocation, though not across different invocations. May appear in
@@ -1268,6 +1283,8 @@ struct tree_vec GTY(())
#define ASM_OUTPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 1)
#define ASM_INPUTS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 2)
#define ASM_CLOBBERS(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 3)
+/* APPLE LOCAL CW asm blocks */
+#define ASM_USES(NODE) TREE_OPERAND (ASM_EXPR_CHECK (NODE), 4)
/* Nonzero if we want to create an ASM_INPUT instead of an
ASM_OPERAND with no operands. */
#define ASM_INPUT_P(NODE) (TREE_STATIC (NODE))
@@ -2231,6 +2248,15 @@ struct tree_binfo GTY (())
/* Used to indicate that this DECL has weak linkage. */
#define DECL_WEAK(NODE) (DECL_CHECK (NODE)->decl.weak_flag)
+/* APPLE LOCAL handling duplicate decls across files */
+#define DECL_DUPLICATE_DECL(NODE) (DECL_CHECK (NODE)->decl.duplicate_decl)
+
+/* APPLE LOCAL begin CW asm blocks */
+#define DECL_CW_ASM_FUNCTION(NODE) (DECL_CHECK (NODE)->decl.cw_asm_function_flag)
+#define DECL_CW_ASM_NORETURN(NODE) (DECL_CHECK (NODE)->decl.cw_asm_noreturn_flag)
+#define DECL_CW_ASM_FRAME_SIZE(NODE) (DECL_CHECK (NODE)->decl.cw_asm_frame_size)
+/* APPLE LOCAL end CW asm blocks */
+
/* Used in TREE_PUBLIC decls to indicate that copies of this DECL in
multiple translation units should be merged. */
#define DECL_ONE_ONLY(NODE) (DECL_CHECK (NODE)->decl.transparent_union)
@@ -2292,6 +2318,15 @@ struct tree_binfo GTY (())
#define DECL_POINTER_ALIAS_SET_KNOWN_P(NODE) \
(DECL_POINTER_ALIAS_SET (NODE) != - 1)
+/* APPLE LOCAL begin DECL_ESTIMATED_INSNS */
+/* In a FUNCTION_DECL for which DECL_BUILT_IN does not hold, this is
+ the approximate number of statements in this function. There is
+ no need for this number to be exact; it is only used in various
+ heuristics regarding optimization. */
+#define DECL_ESTIMATED_INSNS(NODE) \
+ (FUNCTION_DECL_CHECK (NODE)->decl.u1.i)
+/* APPLE LOCAL end */
+
/* Nonzero for a decl which is at file scope. */
#define DECL_FILE_SCOPE_P(EXP) \
(! DECL_CONTEXT (EXP) \
@@ -2378,11 +2413,19 @@ struct tree_decl GTY(())
unsigned lang_flag_6 : 1;
unsigned lang_flag_7 : 1;
+ /* APPLE LOCAL duplicate decls in multiple files. */
+ unsigned duplicate_decl : 1;
unsigned possibly_inlined : 1;
unsigned preserve_flag: 1;
unsigned gimple_formal_temp : 1;
unsigned debug_expr_is_from : 1;
- /* 12 unused bits. */
+ /* APPLE LOCAL unused bits */
+ /* 9 unused bits. */
+ /* APPLE LOCAL begin CW asm blocks */
+ unsigned cw_asm_function_flag : 1;
+ unsigned cw_asm_noreturn_flag : 1;
+ unsigned int cw_asm_frame_size;
+ /* APPLE LOCAL end CW asm blocks */
union tree_decl_u1 {
/* In a FUNCTION_DECL for which DECL_BUILT_IN holds, this is
@@ -3549,6 +3592,9 @@ extern tree build_fold_indirect_ref (tree);
extern tree fold_indirect_ref (tree);
extern tree constant_boolean_node (int, tree);
extern tree build_low_bits_mask (tree, unsigned);
+extern tree fold_complex_mult_parts (tree, tree, tree, tree, tree);
+extern tree fold_complex_div_parts (tree, tree, tree, tree, tree,
+ enum tree_code);
extern bool tree_swap_operands_p (tree, tree, bool);
extern enum tree_code swap_tree_comparison (enum tree_code);
@@ -3731,7 +3777,8 @@ extern void mark_decl_referenced (tree);
extern void notice_global_symbol (tree);
extern void set_user_assembler_name (tree, const char *);
extern void process_pending_assemble_externals (void);
-extern void process_pending_assemble_output_defs (void);
+extern void finish_aliases_1 (void);
+extern void finish_aliases_2 (void);
/* In stmt.c */
extern void expand_computed_goto (tree);
diff --git a/gcc/treelang/ChangeLog b/gcc/treelang/ChangeLog
index adfae134819..777380ff5e5 100644
--- a/gcc/treelang/ChangeLog
+++ b/gcc/treelang/ChangeLog
@@ -1,3 +1,94 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-03-11 James A. Morrison <phython@gcc.gnu.org>
+
+ Backport recent patches to mainline:
+ 2005-03-06 James A. Morrison <phython@gcc.gnu.org>
+
+ PR other/20326
+ * Make-lang.in (gtreelang, treelang/spec.o): New targets.
+ * spec.c: New file.
+
+ 2005-02-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * treelang.texi: Fix a typo.
+
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * parse.y (function_invocation, variable-ref, make_plus_expression):
+ Pass location to tree_code_get_expression.
+ * treetree.c (tree_code_generate_return): Set EXPR_LOCUS on retval.
+ (tree_code_get_expression): Wrap variable references in NOP_EXPRs and
+ set EXPR_LOCATION on ret1.
+ * treetree.h (tree_code_get_expression): Take the location of the
+ expression as an argument.
+
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * treelang.texi: Treelang does have warnings.
+ * treetree.c (tree_code_create_function_prototype): Don't set
+ TREE_USED and set TREE_PUBLIC, DECL_EXTERNAL, and TREE_STATIC
+ as few times as needed on the function declaration.
+ (tree_code_create_function_initial): Don't set TREE_USED,
+ TREE_ADDRESSABLE, but set TREE_STATIC on the function declaration.
+ (tree_code_create_variable): Don't set TREE_USED on VAR_DECL.
+ (tree_code_get_expression): Set TREE_USED for variable references
+ and function calls.
+
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * parse.y: Do comparisons as the type of the first expression.
+ * treetree.c (tree_code_get_integer_value): Build integer constants
+ with the proper type.
+
+ 2005-02-26 James A. Morrison <phython@gcc.gnu.org>
+
+ * Make-lang.in: Remove commented out code.
+ * lang-specs.h: Always pass -dumpbase to tree1.
+
+ 2005-02-25 James A. Morrrison <phython@gcc.gnu.org>
+
+ * treelang.texi: Remove extra contribution notice.
+ Split up some run-on sentences. Document function parameters
+ as optional. Indicate automatic variables can now be at any scope.
+ Mention literals are only signed if they are preceded by a unary
+ plus or minus. Clarify interoperability with C.
+
+ 2005-02-25 James A. Morrison <phython@gcc.gnu.org>
+
+ * treelang.texi: Fix whitespacing.
+
+2005-02-24 James A. Morrison <phython@gcc.gnu.org>
+
+ PR other/19896
+ * treetree.c (tree_code_create_variable): Initialize DECL_EXTERNAL,
+ TREE_PUBLIC, and TREE_STATIC for var_decl to zero. Don't call
+ rest_of_decl_compilation on static variables.
+ (pushdecl): Put DECL_EXPRs into the current BIND_EXPR for automatic
+ variables.
+
+2005-02-24 James A. Morrison <phython@gcc.gnu.org>
+
+ PR other/19897
+ * parse.y: (function_prototype): Accept EXTERNAL_REFERENCE_STORAGE.
+ Move function parameters check from ...
+ (function): ...Here. Update call to tree_code_create_function_initial.
+ (function_invocation): Use expressions_with_commas_opt instead of
+ expressions_with_commas.
+ (expressions_with_commas_opt): New rule.
+ * treetree.c (tree_code_create_function_prototype): Create PARM_DECLs
+ for function parameters.
+ (tree_code_create_function_initial): Remove PARMS parameter.
+ Don't create PARM_DECLs for function parameters.
+ * treetree.h (tree_code_create_function_initial): Remove PARMS
+ parameter.
+
+2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * parse.y: Update copyright.
+
2005-02-13 James A. Morrison <phython@gcc.gnu.org>
* treetree.c (tree_lang_type_for_mode): Return NULL_TREE for all non
diff --git a/gcc/treelang/Make-lang.in b/gcc/treelang/Make-lang.in
index 5b9073515ed..9c198d7c3dc 100644
--- a/gcc/treelang/Make-lang.in
+++ b/gcc/treelang/Make-lang.in
@@ -33,8 +33,8 @@
#
# It should also provide rules for:
#
-# - making any compiler driver (eg: GCC)
-# - the compiler proper (eg: treelang)
+# - making any compiler driver (eg: gcc)
+# - the compiler proper (eg: tree1)
# - define the names for selecting the language in LANGUAGES.
#
@@ -54,7 +54,9 @@ GCC_EXTRAS = -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include
# GCC_FOR_TREELANG = ./xgcc $(GCC_EXTRAS)
TREE_GENERATED = lex.c parse.c parse.h parse.output
-TREE_EXES = tree1
+# We need to use something other than treelang here because the directory
+# is called treelang
+TREE_EXES = gtreelang
#strict warnings for treelang
treelang-warn = $(STRICT_WARN)
@@ -70,7 +72,7 @@ treelang/lex.o-warn = -Wno-error
treelang TREELANG:treelang.done
-treelang.done: tree1$(exeext)
+treelang.done: gtreelang$(exeext) tree1$(exeext)
$(STAMP) treelang.done
# no preprocessor
@@ -84,6 +86,14 @@ tree1$(exeext): treelang/tree1.o treelang/treetree.o treelang/tree-convert.o \
treelang/lex.o treelang/parse.o \
$(BACKEND) $(LIBS) attribs.o
+# Create the compiler driver treelang.
+gtreelang$(exeext): gcc.o version.o prefix.o intl.o $(EXTRA_GCC_OBJS) \
+ $(LIBDEPS) treelang/spec.o
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ treelang/spec.o \
+ gcc.o version.o prefix.o intl.o $(EXTRA_GCC_OBJS) $(LIBS)
+
+
+
#
# Compiling object files from source files.
@@ -102,6 +112,9 @@ treelang/treetree.o: treelang/treetree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
treelang/tree-convert.o: treelang/tree-convert.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h diagnostic.h $(TREE_H) flags.h toplev.h langhooks.h $(TM_H)
+treelang/spec.o: treelang/spec.c $(CONFIG_H) $(SYSTEM_H) \
+ coretypes.h diagnostic.h $(TREE_H) flags.h toplev.h langhooks.h $(TM_H)
+
treelang/parse.o: treelang/parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) diagnostic.h treelang/treelang.h input.h treelang/treetree.h
@@ -293,7 +306,6 @@ treelang.check: $(TESTSUITEDIR)/site.exp
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
diff --git a/gcc/treelang/lang-specs.h b/gcc/treelang/lang-specs.h
index 1ca9c8cc89b..80ca8c2555b 100644
--- a/gcc/treelang/lang-specs.h
+++ b/gcc/treelang/lang-specs.h
@@ -36,6 +36,7 @@ Boston, MA 02111-1307, USA. */
{"@treelang",
"tree1\
%{!Q:-quiet}\
+ -dumpbase %B \
%{d*}\
%{m*}\
%{a}\
diff --git a/gcc/treelang/parse.y b/gcc/treelang/parse.y
index 665157e82a7..be443625221 100644
--- a/gcc/treelang/parse.y
+++ b/gcc/treelang/parse.y
@@ -3,7 +3,7 @@
---------------------------------------------------------------------
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
@@ -273,6 +273,7 @@ storage typename NAME LEFT_PARENTHESIS parameters_opt RIGHT_PARENTHESIS SEMICOLO
{
case STATIC_STORAGE:
case EXTERNAL_DEFINITION_STORAGE:
+ case EXTERNAL_REFERENCE_STORAGE:
break;
case AUTOMATIC_STORAGE:
@@ -324,6 +325,17 @@ storage typename NAME LEFT_PARENTHESIS parameters_opt RIGHT_PARENTHESIS SEMICOLO
STORAGE_CLASS (prod),
NUMERIC_TYPE (type),
first_parms, tok->tp.tok.location);
+
+#ifdef ENABLE_CHECKING
+ /* Check all the parameters have code. */
+ for (this_parm = PARAMETERS (prod);
+ this_parm;
+ this_parm = this_parm->tp.pro.next)
+ {
+ gcc_assert ((struct prod_token_parm_item*)VARIABLE (this_parm));
+ gcc_assert (((struct prod_token_parm_item*)VARIABLE (this_parm))->tp.pro.code);
+ }
+#endif
}
;
@@ -332,7 +344,6 @@ NAME LEFT_BRACE {
struct prod_token_parm_item *proto;
struct prod_token_parm_item search_prod;
struct prod_token_parm_item* tok;
- struct prod_token_parm_item *this_parm;
tok = $1;
SYMBOL_TABLE_NAME ((&search_prod)) = tok;
search_prod.category = token_category;
@@ -346,20 +357,9 @@ NAME LEFT_BRACE {
gcc_assert (proto->tp.pro.code);
- tree_code_create_function_initial (proto->tp.pro.code, tok->tp.tok.location,
- FIRST_PARMS (current_function));
-
-#ifdef ENABLE_CHECKING
- /* Check all the parameters have code. */
- for (this_parm = PARAMETERS (proto);
- this_parm;
- this_parm = this_parm->tp.pro.next)
- {
- gcc_assert ((struct prod_token_parm_item*)VARIABLE (this_parm));
- gcc_assert (((struct prod_token_parm_item*)VARIABLE (this_parm))->tp.pro.code);
- }
-#endif
+ tree_code_create_function_initial (proto->tp.pro.code, tok->tp.tok.location);
}
+
variable_defs_opt statements_opt RIGHT_BRACE {
struct prod_token_parm_item* tok;
tok = $1;
@@ -591,8 +591,11 @@ INTEGER {
struct prod_token_parm_item *tok = $2;
struct prod_token_parm_item *op1 = $1;
struct prod_token_parm_item *op2 = $3;
+ int type_code = NUMERIC_TYPE (op1);
+ if (!type_code)
+ YYERROR;
$$ = make_plus_expression
- (tok, op1, op2, SIGNED_INT, EXP_EQUALS);
+ (tok, op1, op2, type_code, EXP_EQUALS);
}
|variable_ref ASSIGN expression {
struct prod_token_parm_item *tok = $2;
@@ -610,7 +613,7 @@ INTEGER {
;
function_invocation:
-NAME LEFT_PARENTHESIS expressions_with_commas RIGHT_PARENTHESIS {
+NAME LEFT_PARENTHESIS expressions_with_commas_opt RIGHT_PARENTHESIS {
struct prod_token_parm_item *prod;
struct prod_token_parm_item* tok;
struct prod_token_parm_item search_prod;
@@ -672,11 +675,18 @@ NAME LEFT_PARENTHESIS expressions_with_commas RIGHT_PARENTHESIS {
type = tree_code_get_type (NUMERIC_TYPE (prod));
prod->tp.pro.code = tree_code_get_expression (EXP_FUNCTION_INVOCATION, type,
proto->tp.pro.code, parms,
- NULL);
+ NULL, tok->tp.tok.location);
$$ = prod;
}
;
+expressions_with_commas_opt:
+/* Nil. */ {
+$$ = 0
+}
+|expressions_with_commas { $$ = $1 }
+;
+
expressions_with_commas:
expression {
struct prod_token_parm_item *exp;
@@ -720,8 +730,9 @@ NAME {
OP1 (prod) = $1;
prod->tp.pro.code =
- tree_code_get_expression (EXP_REFERENCE, type,
- symbol_table_entry->tp.pro.code, NULL, NULL);
+ tree_code_get_expression (EXP_REFERENCE, type,
+ symbol_table_entry->tp.pro.code, NULL, NULL,
+ tok->tp.tok.location);
$$ = prod;
}
;
@@ -910,7 +921,8 @@ make_plus_expression (struct prod_token_parm_item* tok,
prod->tp.pro.code = tree_code_get_expression (prod_code, type,
op1->tp.pro.code,
- op2->tp.pro.code, NULL);
+ op2->tp.pro.code, NULL,
+ tok->tp.tok.location);
return prod;
}
diff --git a/gcc/treelang/spec.c b/gcc/treelang/spec.c
new file mode 100644
index 00000000000..9f4a57fbc72
--- /dev/null
+++ b/gcc/treelang/spec.c
@@ -0,0 +1,63 @@
+/* Specific flags and argument handling of the Treelang front-end.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+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.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "system.h"
+#include "gcc.h"
+
+#include "coretypes.h"
+#include "tm.h"
+
+const struct spec_function lang_specific_spec_functions[] = {{0,0}};
+
+void
+lang_specific_driver (int *in_argc, const char *const **in_argv,
+ int *in_added_libraries ATTRIBUTE_UNUSED)
+{
+ int argc = *in_argc, i;
+ const char *const *argv = *in_argv;
+
+ for (i = 1; i < argc; ++i)
+ {
+ if (!strcmp (argv[i], "-fversion")) /* Really --version!! */
+ {
+ printf ("\
+GNU Treelang (GCC %s)\n\
+Copyright (C) 2005 Free Software Foundation, Inc.\n\
+\n\
+GNU Treelang comes with NO WARRANTY, to the extent permitted by law.\n\
+You may redistribute copies of GNU Treelang\n\
+under the terms of the GNU General Public License.\n\
+For more information about these matters, see the file named COPYING\n\
+", version_string);
+ exit (0);
+ }
+ }
+}
+
+/* Called before linking. Returns 0 on success and -1 on failure. */
+int
+lang_specific_pre_link (void) /* Not used for Treelang. */
+{
+ return 0;
+}
+
+/* Number of extra output files that lang_specific_pre_link may generate. */
+int lang_specific_extra_outfiles = 0; /* Not used for Treelang. */
diff --git a/gcc/treelang/treelang.texi b/gcc/treelang/treelang.texi
index 665310ed401..b25e15cc449 100644
--- a/gcc/treelang/treelang.texi
+++ b/gcc/treelang/treelang.texi
@@ -107,8 +107,8 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
@ifset INTERNALS
@ifset USING
This file documents the use and the internals of the GNU Treelang
-(@code{treelang}) compiler. At the moment this manual is not
-incorporated into the main GCC manual as it is too incomplete. It
+(@code{treelang}) compiler. At the moment this manual is not
+incorporated into the main GCC manual as it is incomplete. It
corresponds to the @value{which-treelang} version of @code{treelang}.
@end ifset
@end ifset
@@ -128,12 +128,6 @@ Boston, MA 02111-1307 USA
@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.
-
-This document was written by Tim Josling, based on the GNU C++
-documentation.
-
@setchapternewpage odd
@c @finalout
@titlepage
@@ -174,23 +168,21 @@ Boston, MA 02111-1307, USA@*
@ifset INTERNALS
@ifset USING
-This manual documents how to run, install and maintain @code{treelang},
-as well as its new features and incompatibilities,
-and how to report bugs.
-It corresponds to the @value{which-treelang} version of @code{treelang}.
+This manual documents how to run, install and maintain @code{treelang}.
+It also documents the features and incompatibilities in the @value{which-treelang}
+version of @code{treelang}.
@end ifset
@end ifset
@ifclear INTERNALS
-This manual documents how to run and install @code{treelang},
-as well as its new features and incompatibilities, and how to report
-bugs.
-It corresponds to the @value{which-treelang} version of @code{treelang}.
+This manual documents how to run and install @code{treelang}.
+It also documents the features and incompatibilities in the @value{which-treelang}
+version of @code{treelang}.
@end ifclear
@ifclear USING
-This manual documents how to maintain @code{treelang}, as well as its
-new features and incompatibilities, and how to report bugs. It
-corresponds to the @value{which-treelang} version of @code{treelang}.
+This manual documents how to maintain @code{treelang}.
+It also documents the features and incompatibilities in the @value{which-treelang}
+version of @code{treelang}.
@end ifclear
@end ifnottex
@@ -257,10 +249,10 @@ Reporting Bugs
@cindex credits
Treelang was based on 'toy' by Richard Kenner, and also uses code from
-the GCC core code tree. Tim Josling first created the language and
+the GCC core code tree. Tim Josling first created the language and
documentation, based on the GCC Fortran compiler's documentation
-framework. Treelang was updated to use the TreeSSA infrastructure by James A.
-Morrison.
+framework. Treelang was updated to use the TreeSSA infrastructure by
+James A. Morrison.
@itemize @bullet
@item
@@ -275,7 +267,7 @@ standard C runtime.
@item
It would have been difficult to build treelang without access to Joachim
-Nadler's guide to writing a front end to GCC (written in German). A
+Nadler's guide to writing a front end to GCC (written in German). A
translation of this document into English is available via the
CobolForGCC project or via the documentation links from the GCC home
page @uref{http://gcc.gnu.org}.
@@ -291,9 +283,9 @@ page @uref{http://gcc.gnu.org}.
@cindex beginners
Treelang is a sample language, useful only to help people understand how
-to implement a new language front end to GCC. It is not a useful
+to implement a new language front end to GCC. It is not a useful
language in itself other than as an example or basis for building a new
-language. Therefore only language developers are likely to have an
+language. Therefore only language developers are likely to have an
interest in it.
This manual assumes familiarity with GCC, which you can obtain by using
@@ -325,11 +317,11 @@ replacement for, or alternative to, the 'toy' language, but which is
amenable to inclusion within the GCC source tree.
@code{treelang} is largely a cut down version of C, designed to showcase
-the features of the GCC code generation back end. Only those features
+the features of the GCC code generation back end. Only those features
that are directly supported by the GCC code generation back end are
-implemented. Features are implemented in a manner which is easiest and
-clearest to implement. Not all or even most code generation back end
-features are implemented. The intention is to add features incrementally
+implemented. Features are implemented in a manner which is easiest and
+clearest to implement. Not all or even most code generation back end
+features are implemented. The intention is to add features incrementally
until most features of the GCC back end are implemented in treelang.
The main features missing are structures, arrays and pointers.
@@ -394,8 +386,8 @@ Treelang programs consist of whitespace, comments, keywords and names.
@item
Whitespace consists of the space character, a tab, and the end of line
character. Line terminations are as defined by the
-standard C library. Whitespace is ignored except within comments,
-and where it separates parts of the program. In the example below, A and
+standard C library. Whitespace is ignored except within comments,
+and where it separates parts of the program. In the example below, A and
B are two separate names separated by whitespace.
@smallexample
@@ -404,7 +396,7 @@ A B
@item
Comments consist of @samp{//} followed by any characters up to the end
-of the line. C style comments (/* */) are not supported. For example,
+of the line. C style comments (/* */) are not supported. For example,
the assignment below is followed by a not very helpful comment.
@smallexample
@@ -429,9 +421,9 @@ used to separate parameters in a function prototype or in a function call
@item ;
used to end a statement
@item +
-addition
+addition, or unary plus for signed literals
@item -
-subtraction
+subtraction, or unary minus for signed literals
@item =
assignment
@item ==
@@ -443,7 +435,7 @@ begin 'else' portion of IF statement
@item static
indicate variable is permanent, or function has file scope only
@item automatic
-indicate that variable is allocated for the life of the function
+indicate that variable is allocated for the life of the current scope
@item external_reference
indicate that variable or function is defined in another file
@item external_definition
@@ -463,9 +455,9 @@ used as function type to indicate function returns nothing
@item
Names consist of any letter or "_" followed by any number of letters,
-numbers, or "_". "$" is not allowed in a name. All names must be globally
+numbers, or "_". "$" is not allowed in a name. All names must be globally
unique, i.e. may not be used twice in any context, and must
-not be a keyword. Names and keywords are case sensitive. For example:
+not be a keyword. Names and keywords are case sensitive. For example:
@smallexample
a A _a a_ IF_X
@@ -479,7 +471,7 @@ are all different names.
@chapter Parsing Syntax
@cindex Parsing Syntax
-Declarations are built up from the lexical elements described above. A
+Declarations are built up from the lexical elements described above. A
file may contain one of more declarations.
@itemize @bullet
@@ -514,23 +506,23 @@ This defines the scope, duration and visibility of a function or variable
@enumerate 1
@item
-automatic: This means a variable is allocated at start of function and
-released when the function returns. This can only be used for variables
-within functions. It cannot be used for functions.
+automatic: This means a variable is allocated at start of the current scope and
+released when the current scope is exited. This can only be used for variables
+within functions. It cannot be used for functions.
@item
static: This means a variable is allocated at start of program and
-remains allocated until the program as a whole ends. For a function, it
+remains allocated until the program as a whole ends. For a function, it
means that the function is only visible within the current file.
@item
external_definition: For a variable, which must be defined outside a
-function, it means that the variable is visible from other files. For a
+function, it means that the variable is visible from other files. For a
function, it means that the function is visible from another file.
@item
external_reference: For a variable, which must be defined outside a
-function, it means that the variable is defined in another file. For a
+function, it means that the variable is defined in another file. For a
function, it means that the function is defined in another file.
@end enumerate
@@ -543,16 +535,16 @@ This defines the data type of a variable or the return type of a function.
@enumerate a
@item
-int: The variable is a signed integer. The function returns a signed integer.
+int: The variable is a signed integer. The function returns a signed integer.
@item
-unsigned int: The variable is an unsigned integer. The function returns an unsigned integer.
+unsigned int: The variable is an unsigned integer. The function returns an unsigned integer.
@item
-char: The variable is a signed character. The function returns a signed character.
+char: The variable is a signed character. The function returns a signed character.
@item
-unsigned char: The variable is an unsigned character. The function returns an unsigned character.
+unsigned char: The variable is an unsigned character. The function returns an unsigned character.
@end enumerate
@@ -562,7 +554,7 @@ parameter_list OR parameter [, parameter]...
@item
parameter: variable_declaration ,
-The variable declarations must not have initialisations.
+The variable declarations must not have initializations.
@item
initial: = value
@@ -570,28 +562,30 @@ initial: = value
@item
value: integer_constant
+Values without a unary plus or minus are considered to be unsigned.
@smallexample
-eg 1 +2 -3
+e.g.@: 1 +2 -3
@end smallexample
@item
-function_declaration: name @{variable_declarations statements @}
+function_declaration: name @{ variable_declarations statements @}
A function consists of the function name then the declarations (if any)
and statements (if any) within one pair of braces.
The details of the function arguments come from the function
-prototype. The function prototype must precede the function declaration
+prototype. The function prototype must precede the function declaration
in the file.
@item
statement: if_statement OR expression_statement OR return_statement
@item
-if_statement: if (expression) @{ statements @} else @{ statements @}
+if_statement: if ( expression ) @{ variable_declarations statements @}
+else @{ variable_declarations statements @}
The first lot of statements is executed if the expression is
-nonzero. Otherwise the second lot of statements is executed. Either
+nonzero. Otherwise the second lot of statements is executed. Either
list of statements may be empty, but both sets of braces and the else must be present.
@smallexample
@@ -608,7 +602,7 @@ a=b;
@item
expression_statement: expression;
-The expression is executed and any side effects, such
+The expression is executed, including any side effects.
@item
return_statement: return expression_opt;
@@ -618,18 +612,18 @@ be absent, and if the function is not void the expression must be
present.
@item
-expression: variable OR integer_constant OR expression+expression
-OR expression-expression OR expression==expression OR (expression)
-OR variable=expression OR function_call
+expression: variable OR integer_constant OR expression + expression
+OR expression - expression OR expression == expression OR ( expression )
+OR variable = expression OR function_call
An expression can be a constant or a variable reference or a
-function_call. Expressions can be combined as a sum of two expressions
+function_call. Expressions can be combined as a sum of two expressions
or the difference of two expressions, or an equality test of two
-expresions. An assignment is also an expression. Expresions and operator
+expresions. An assignment is also an expression. Expresions and operator
precedence work as in C.
@item
-function_call: function_name (comma_separated_expressions)
+function_call: function_name ( optional_comma_separated_expressions )
This invokes the function, passing to it the values of the expressions
as actual parameters.
@@ -699,7 +693,7 @@ compiler indicate the problem and the location in the user's source file
where the problem was first noticed. The user can use this information
to locate and fix the problem.
-The compiler stops after the first error. There are no plans to fix
+The compiler stops after the first error. There are no plans to fix
this, ever, as it would vastly complicate the implementation of treelang
to little or no benefit.
@@ -716,8 +710,11 @@ the programmer's intention.)
@cindex warnings
@cindex questionable instructions
@item
-There are no warnings in treelang. A program is either correct or in
-error.
+There are a few warnings in treelang. For example an unused static function
+generate a warnings when -Wunused-function is specified, similarly an unused
+static variable generates a warning when -Wunused-variable are specified.
+The only treelang specific warning is a warning when an expression is in a
+return statement for functions that return void.
@end itemize
@cindex components of treelang
@@ -745,8 +742,8 @@ The @code{treelang} command itself.
The @code{libc} run-time library. This library contains the machine
code needed to support capabilities of the Treelang language that are
not directly provided by the machine code generated by the
-@code{treelang} compilation phase. This is the same library that the
-main c compiler uses (libc).
+@code{treelang} compilation phase. This is the same library that the
+main C compiler uses (libc).
@cindex @code{tree1}, program
@cindex programs, @code{tree1}
@@ -799,8 +796,8 @@ same as @samp{gcc foo.c}, but instead of using the C compiler named
In a GNU Treelang installation, @code{gcc} recognizes Treelang source
files by name just like it does C and C++ source files. It knows to use
the Treelang compiler named @code{tree1}, instead of @code{cc1} or
-@code{cc1plus}, to compile Treelang files. If a file's name ends in
-@code{.tree} then GCC knows that the program is written in treelang. You
+@code{cc1plus}, to compile Treelang files. If a file's name ends in
+@code{.tree} then GCC knows that the program is written in treelang. You
can also manually override the language.
@cindex @code{gcc}, not recognizing Treelang source
@@ -887,7 +884,7 @@ for information on the way different languages are handled
by the GCC compiler (@code{gcc}).
You can use this, combined with the output of the @samp{gcc -v x.tree}
-command to get the options applicable to treelang. Treelang programs
+command to get the options applicable to treelang. Treelang programs
must end with the suffix @samp{.tree}.
@cindex preprocessor
@@ -919,8 +916,8 @@ and everybody else, so you should be able to freely mix treelang and C
(and C++) code, with one proviso.
C promotes small integer types to 'int' when used as function parameters and
-return values. The treelang compiler does not do this, so if you want to interface
-to C, you need to specify the promoted value, not the nominal value.
+return values in non-prototyped functions. Since treelang has no
+non-prototyped functions, the treelang compiler does not do this.
@ifset INTERNALS
@node treelang internals, Open Questions, Other Languages, Top
@@ -936,10 +933,10 @@ to C, you need to specify the promoted value, not the nominal value.
@section treelang files
To create a compiler that integrates into GCC, you need create many
-files. Some of the files are integrated into the main GCC makefile, to
+files. Some of the files are integrated into the main GCC makefile, to
build the various parts of the compiler and to run the test
-suite. Others are incorporated into various GCC programs such as
-GCC.c. Finally you must provide the actual programs comprising your
+suite. Others are incorporated into various GCC programs such as
+@file{gcc.c}. Finally you must provide the actual programs comprising your
compiler.
@cindex files
@@ -949,8 +946,8 @@ The files are:
@enumerate 1
@item
-COPYING. This is the copyright file, assuming you are going to use the
-GNU General Public Licence. You probably need to use the GPL because if
+COPYING. This is the copyright file, assuming you are going to use the
+GNU General Public Licence. You probably need to use the GPL because if
you use the GCC back end your program and the back end are one program,
and the back end is GPLed.
@@ -958,11 +955,11 @@ This need not be present if the language is incorporated into the main
GCC tree, as the main GCC directory has this file.
@item
-COPYING.LIB. This is the copyright file for those parts of your program
+COPYING.LIB. This is the copyright file for those parts of your program
that are not to be covered by the GPL, but are instead to be covered by
-the LGPL (Library or Lesser GPL). This licence may be appropriate for
+the LGPL (Library or Lesser GPL). This licence may be appropriate for
the library routines associated with your compiler. These are the
-routines that are linked with the @emph{output} of the compiler. Using
+routines that are linked with the @emph{output} of the compiler. Using
the LGPL for these programs allows programs written using your compiler
to be closed source. For example LIBC is under the LGPL.
@@ -970,27 +967,27 @@ This need not be present if the language is incorporated into the main
GCC tree, as the main GCC directory has this file.
@item
-ChangeLog. Record all the changes to your compiler. Use the same format
+ChangeLog. Record all the changes to your compiler. Use the same format
as used in treelang as it is supported by an emacs editing mode and is
-part of the FSF coding standard. Normally each directory has its own
-changelog. The FSF standard allows but does not require a meaningful
+part of the FSF coding standard. Normally each directory has its own
+changelog. The FSF standard allows but does not require a meaningful
comment on why the changes were made, above and beyond @emph{why} they
-were made. In the author's opinion it is useful to provide this
+were made. In the author's opinion it is useful to provide this
information.
@item
-treelang.texi. The manual, written in texinfo. Your manual would have a
-different file name. You need not write it in texinfo if you don't want
+treelang.texi. The manual, written in texinfo. Your manual would have a
+different file name. You need not write it in texinfo if you don't want
do, but a lot of GNU software does use texinfo.
@cindex Make-lang.in
@item
-Make-lang.in. This file is part of the make file which in incorporated
+Make-lang.in. This file is part of the make file which in incorporated
with the GCC make file skeleton (Makefile.in in the GCC directory) to
make Makefile, as part of the configuration process.
Makefile in turn is the main instruction to actually build
-everything. The build instructions are held in the main GCC manual and
+everything. The build instructions are held in the main GCC manual and
web site so they are not repeated here.
There are some comments at the top which will help you understand what
@@ -1002,76 +999,77 @@ how much progress you are making), build info and html files from the
texinfo source, run the tests etc.
@item
-README. Just a brief informative text file saying what is in this
+README. Just a brief informative text file saying what is in this
directory.
@cindex config-lang.in
@item
-config-lang.in. This file is read by the configuration progress and must
+config-lang.in. This file is read by the configuration progress and must
be present. You specify the name of your language, the name(s) of the
compiler(s) incouding preprocessors you are going to build, whether any,
usually generated, files should be excluded from diffs (ie when making
-diff files to send in patches). Whether the equate 'stagestuff' is used
+diff files to send in patches). Whether the equate 'stagestuff' is used
is unknown (???).
-@cindex lang-options
+@cindex lang.opt
@item
-lang-options. This file is included into GCC.c, the main GCC driver, and
-tells it what options your language supports. This is only used to
-display help (is this true ???).
+lang.opt. This file is included into @file{gcc.c}, the main GCC driver, and
+tells it what options your language supports. This is also used to
+display help.
-@cindex lang-specs
+@cindex lang-specs.h
@item
-lang-specs. This file is also included in GCC.c. It tells GCC.c when to
-call your programs and what options to send them. The mini-language
-'specs' is documented in the source of GCC.c. Do not attempt to write a
-specs file from scratch - use an existing one as the base and enhance
-it.
+lang-specs.h. This file is also included in @file{gcc.c}. It tells
+@file{gcc.c} when to call your programs and what options to send them. The
+mini-language 'specs' is documented in the source of @file{gcc.c}. Do not
+attempt to write a specs file from scratch - use an existing one as the base
+and enhance it.
@item
-Your texi files. Texinfo can be used to build documentation in HTML,
+Your texi files. Texinfo can be used to build documentation in HTML,
info, dvi and postscript formats. It is a tagged language, is documented
in its own manual, and has its own emacs mode.
@item
-Your programs. The relationships between all the programs are explained
-in the next section. You need to write or use the following programs:
+Your programs. The relationships between all the programs are explained
+in the next section. You need to write or use the following programs:
@itemize @bullet
@item
-lexer. This breaks the input into words and passes these to the
-parser. This is lex.l in treelang, which is passed through flex, a lex
-variant, to produce C code lex.c. Note there is a school of thought that
-says real men hand code their own lexers, however you may prefer to
+lexer. This breaks the input into words and passes these to the
+parser. This is @file{lex.l} in treelang, which is passed through flex, a lex
+variant, to produce C code @file{lex.c}. Note there is a school of thought
+that says real men hand code their own lexers. However, you may prefer to
write far less code and use flex, as was done with treelang.
@item
-parser. This breaks the program into recognizable constructs such as
-expressions, statements etc. This is parse.y in treelang, which is
-passed through bison, which is a yacc variant, to produce C code parse.c.
+parser. This breaks the program into recognizable constructs such as
+expressions, statements etc. This is @file{parse.y} in treelang, which is
+passed through bison, which is a yacc variant, to produce C code
+@file{parse.c}.
@item
-back end interface. This interfaces to the code generation back end. In
-treelang, this is tree1.c which mainly interfaces to toplev.c and
-treetree.c which mainly interfaces to everything else. Many languages
+back end interface. This interfaces to the code generation back end. In
+treelang, this is @file{tree1.c} which mainly interfaces to @file{toplev.c} and
+@file{treetree.c} which mainly interfaces to everything else. Many languages
mix up the back end interface with the parser, as in the C compiler for
-example. It is a matter of taste which way to do it, but with treelang
+example. It is a matter of taste which way to do it, but with treelang
it is separated out to make the back end interface cleaner and easier to
understand.
@item
-header files. For function prototypes and common data items. One point
+header files. For function prototypes and common data items. One point
to note here is that bison can generate a header files with all the
numbers is has assigned to the keywords and symbols, and you can include
-the same header in your lexer. This technique is demonstrated in
+the same header in your lexer. This technique is demonstrated in
treelang.
@item
-compiler main file. GCC comes with a program toplev.c which is a
-perfectly serviceable main program for your compiler. treelang uses
-toplev.c but other languages have been known to replace it with their
-own main program. Again this is a matter of taste and how much code you
+compiler main file. GCC comes with a file @file{toplev.c} which is a
+perfectly serviceable main program for your compiler. GNU Treelang uses
+@file{toplev.c} but other languages have been known to replace it with their
+own main program. Again this is a matter of taste and how much code you
want to write.
@end itemize
@@ -1095,24 +1093,24 @@ want to write.
The GCC compiler consists of a driver, which then executes the various
compiler phases based on the instructions in the specs files.
-Typically a program's language will be identified from its suffix (eg
-.tree) for treelang programs.
+Typically a program's language will be identified from its suffix
+(e.g., @file{.tree}) for treelang programs.
-The driver (gcc.c) will then drive (exec) in turn a preprocessor, the main
-compiler, the assembler and the link editor. Options to GCC allow you to
-override all of this. In the case of treelang programs there is no
+The driver (@file{gcc.c}) will then drive (exec) in turn a preprocessor,
+the main compiler, the assembler and the link editor. Options to GCC allow you
+to override all of this. In the case of treelang programs there is no
preprocessor, and mostly these days the C preprocessor is run within the
main C compiler rather than as a separate process, apparently for reasons of speed.
You will be using the standard assembler and linkage editor so these are
ignored from now on.
-You have to write your own preprocessor if you want one. This is usually
-totally language specific. The main point to be aware of is to ensure
+You have to write your own preprocessor if you want one. This is usually
+totally language specific. The main point to be aware of is to ensure
that you find some way to pass file name and line number information
through to the main compiler so that it can tell the back end this
information and so the debugger can find the right source line for each
-piece of code. That is all there is to say about the preprocessor except
+piece of code. That is all there is to say about the preprocessor except
that the preprocessor will probably not be the slowest part of the
compiler and will probably not use the most memory so don't waste too
much time tuning it until you know you need to do so.
@@ -1120,13 +1118,14 @@ much time tuning it until you know you need to do so.
@node treelang main compiler, , treelang driver, treelang compiler interfaces
@subsection treelang main compiler
-The main compiler for treelang consists of toplev.c from the main GCC
+The main compiler for treelang consists of @file{toplev.c} from the main GCC
compiler, the parser, lexer and back end interface routines, and the
back end routines themselves, of which there are many.
-toplev.c does a lot of work for you and you should almost certainly use it,
+@file{toplev.c} does a lot of work for you and you should almost certainly
+use it.
-Writing this code is the hard part of creating a compiler using GCC. The
+Writing this code is the hard part of creating a compiler using GCC. The
back end interface documentation is incomplete and the interface is
complex.
diff --git a/gcc/treelang/treetree.c b/gcc/treelang/treetree.c
index 546969225d6..aea6e0ba5cb 100644
--- a/gcc/treelang/treetree.c
+++ b/gcc/treelang/treetree.c
@@ -325,6 +325,7 @@ tree_code_create_function_prototype (unsigned char* chars,
tree type_node;
tree fn_type;
tree fn_decl;
+ tree parm_list = NULL_TREE;
/* Build the type. */
id = get_identifier ((const char*)chars);
@@ -351,25 +352,19 @@ tree_code_create_function_prototype (unsigned char* chars,
DECL_CONTEXT (fn_decl) = NULL_TREE;
DECL_SOURCE_LOCATION (fn_decl) = loc;
- TREE_USED (fn_decl) = 1;
-
TREE_PUBLIC (fn_decl) = 0;
DECL_EXTERNAL (fn_decl) = 0;
TREE_STATIC (fn_decl) = 0;
switch (storage_class)
{
case STATIC_STORAGE:
- TREE_PUBLIC (fn_decl) = 0;
break;
case EXTERNAL_DEFINITION_STORAGE:
TREE_PUBLIC (fn_decl) = 1;
- TREE_STATIC (fn_decl) = 0;
- DECL_EXTERNAL (fn_decl) = 0;
break;
case EXTERNAL_REFERENCE_STORAGE:
- TREE_PUBLIC (fn_decl) = 0;
DECL_EXTERNAL (fn_decl) = 1;
break;
@@ -378,6 +373,37 @@ tree_code_create_function_prototype (unsigned char* chars,
gcc_unreachable ();
}
+ /* Make the argument variable decls. */
+ for (parm = parms; parm; parm = parm->tp.par.next)
+ {
+ tree parm_decl = build_decl (PARM_DECL, get_identifier
+ ((const char*) (parm->tp.par.variable_name)),
+ tree_code_get_type (parm->type));
+
+ /* Some languages have different nominal and real types. */
+ DECL_ARG_TYPE (parm_decl) = TREE_TYPE (parm_decl);
+ gcc_assert (DECL_ARG_TYPE (parm_decl));
+ gcc_assert (fn_decl);
+ DECL_CONTEXT (parm_decl) = fn_decl;
+ DECL_SOURCE_LOCATION (parm_decl) = loc;
+ parm_list = chainon (parm_decl, parm_list);
+ }
+
+ /* Back into reverse order as the back end likes them. */
+ parm_list = nreverse (parm_list);
+
+ DECL_ARGUMENTS (fn_decl) = parm_list;
+
+ /* Save the decls for use when the args are referred to. */
+ for (parm = parms; parm_list;
+ parm_list = TREE_CHAIN (parm_list),
+ parm = parm->tp.par.next)
+ {
+ gcc_assert (parm); /* Too few. */
+ *parm->tp.par.where_to_put_var_tree = parm_list;
+ }
+ gcc_assert (!parm); /* Too many. */
+
/* Process declaration of function defined elsewhere. */
rest_of_decl_compilation (fn_decl, 1, 0);
@@ -386,21 +412,16 @@ tree_code_create_function_prototype (unsigned char* chars,
/* Output code for start of function; the decl of the function is in
- PREV_SAVED (as created by tree_code_create_function_prototype),
- the function is at line number LINENO in file FILENAME. The
- parameter details are in the lists PARMS. Returns nothing. */
+ PREV_SAVED (as created by tree_code_create_function_prototype),
+ the function is at line number LINENO in file FILENAME. The
+ parameter details are in the lists PARMS. Returns nothing. */
+
void
tree_code_create_function_initial (tree prev_saved,
- location_t loc,
- struct prod_token_parm_item* parms)
+ location_t loc)
{
tree fn_decl;
- tree param_decl;
- tree parm_decl;
- tree parm_list;
tree resultdecl;
- struct prod_token_parm_item* this_parm;
- struct prod_token_parm_item* parm;
fn_decl = prev_saved;
gcc_assert (fn_decl);
@@ -426,49 +447,11 @@ tree_code_create_function_initial (tree prev_saved,
DECL_SOURCE_LOCATION (resultdecl) = loc;
DECL_RESULT (fn_decl) = resultdecl;
- /* Make the argument variable decls. */
- parm_list = NULL_TREE;
- for (parm = parms; parm; parm = parm->tp.par.next)
- {
- parm_decl = build_decl (PARM_DECL, get_identifier
- ((const char*) (parm->tp.par.variable_name)),
- tree_code_get_type (parm->type));
-
- /* Some languages have different nominal and real types. */
- DECL_ARG_TYPE (parm_decl) = TREE_TYPE (parm_decl);
- gcc_assert (DECL_ARG_TYPE (parm_decl));
- gcc_assert (fn_decl);
- DECL_CONTEXT (parm_decl) = fn_decl;
- DECL_SOURCE_LOCATION (parm_decl) = loc;
- parm_list = chainon (parm_decl, parm_list);
- }
-
- /* Back into reverse order as the back end likes them. */
- parm_list = nreverse (parm_list);
-
- DECL_ARGUMENTS (fn_decl) = parm_list;
-
- /* Save the decls for use when the args are referred to. */
- for (param_decl = DECL_ARGUMENTS (fn_decl),
- this_parm = parms;
- param_decl;
- param_decl = TREE_CHAIN (param_decl),
- this_parm = this_parm->tp.par.next)
- {
- gcc_assert (this_parm); /* Too few. */
- *this_parm->tp.par.where_to_put_var_tree = param_decl;
- }
- gcc_assert (!this_parm); /* Too many. */
-
/* Create a new level at the start of the function. */
pushlevel (0);
- /* Force it to be output, else may be solely inlined. */
- TREE_ADDRESSABLE (fn_decl) = 1;
-
- /* Stop -O3 from deleting it. */
- TREE_USED (fn_decl) = 1;
+ TREE_STATIC (fn_decl) = 1;
}
/* Wrapup a function contained in file FILENAME, ending at line LINENO. */
@@ -552,41 +535,31 @@ tree_code_create_variable (unsigned int storage_class,
DECL_SOURCE_LOCATION (var_decl) = loc;
+ DECL_EXTERNAL (var_decl) = 0;
+ TREE_PUBLIC (var_decl) = 0;
+ TREE_STATIC (var_decl) = 0;
/* Set the storage mode and whether only visible in the same file. */
switch (storage_class)
{
case STATIC_STORAGE:
TREE_STATIC (var_decl) = 1;
- TREE_PUBLIC (var_decl) = 0;
break;
case AUTOMATIC_STORAGE:
- TREE_STATIC (var_decl) = 0;
- TREE_PUBLIC (var_decl) = 0;
break;
case EXTERNAL_DEFINITION_STORAGE:
- TREE_STATIC (var_decl) = 0;
TREE_PUBLIC (var_decl) = 1;
break;
case EXTERNAL_REFERENCE_STORAGE:
DECL_EXTERNAL (var_decl) = 1;
- TREE_PUBLIC (var_decl) = 0;
break;
default:
gcc_unreachable ();
}
- /* This should really only be set if the variable is used. */
- TREE_USED (var_decl) = 1;
-
- /* Expand declaration and initial value if any. */
-
- if (TREE_STATIC (var_decl))
- rest_of_decl_compilation (var_decl, 0, 0);
-
TYPE_NAME (TREE_TYPE (var_decl)) = TYPE_NAME (var_type);
return pushdecl (copy_node (var_decl));
}
@@ -616,6 +589,9 @@ tree_code_generate_return (tree type, tree exp)
TREE_SIDE_EFFECTS (setret) = 1;
TREE_USED (setret) = 1;
setret = build1 (RETURN_EXPR, type, setret);
+ /* Use EXPR_LOCUS so we don't lose any information about the file we
+ are compiling. */
+ SET_EXPR_LOCUS (setret, EXPR_LOCUS (exp));
}
else
setret = build1 (RETURN_EXPR, type, NULL_TREE);
@@ -664,7 +640,8 @@ tree_code_get_integer_value (unsigned char* chars, unsigned int length)
for (ix = start; ix < length; ix++)
val = val * 10 + chars[ix] - (unsigned char)'0';
val = val*negative;
- return build_int_cst_wide (NULL_TREE,
+ return build_int_cst_wide (start == 1 ?
+ integer_type_node : unsigned_type_node,
val & 0xffffffff, (val >> 32) & 0xffffffff);
}
@@ -673,7 +650,8 @@ tree_code_get_integer_value (unsigned char* chars, unsigned int length)
tree
tree_code_get_expression (unsigned int exp_type,
tree type, tree op1, tree op2,
- tree op3 ATTRIBUTE_UNUSED)
+ tree op3 ATTRIBUTE_UNUSED,
+ location_t loc)
{
tree ret1;
int operator;
@@ -711,19 +689,22 @@ tree_code_get_expression (unsigned int exp_type,
/* Reference to a variable. This is dead easy, just return the
decl for the variable. If the TYPE is different than the
- variable type, convert it. */
+ variable type, convert it. However, to keep accurate location
+ information we wrap it in a NOP_EXPR is is easily stripped. */
case EXP_REFERENCE:
gcc_assert (op1);
+ TREE_USED (op1) = 1;
if (type == TREE_TYPE (op1))
- ret1 = op1;
+ ret1 = build1 (NOP_EXPR, type, op1);
else
ret1 = fold (build1 (CONVERT_EXPR, type, op1));
break;
case EXP_FUNCTION_INVOCATION:
- gcc_assert (op1 && op2);
+ gcc_assert (op1);
{
tree fun_ptr;
+ TREE_USED (op1) = 1;
fun_ptr = fold (build1 (ADDR_EXPR,
build_pointer_type (TREE_TYPE (op1)), op1));
ret1 = build3 (CALL_EXPR, type, fun_ptr, nreverse (op2), NULL_TREE);
@@ -734,6 +715,10 @@ tree_code_get_expression (unsigned int exp_type,
gcc_unreachable ();
}
+ /* Declarations already have a location and constants can be shared so they
+ shouldn't a location set on them. */
+ if (! DECL_P (ret1) && ! TREE_CONSTANT (ret1))
+ SET_EXPR_LOCATION (ret1, loc);
return ret1;
}
@@ -1134,6 +1119,12 @@ pushdecl (tree decl)
&& TYPE_NAME (TREE_TYPE (decl)) == 0)
TYPE_NAME (TREE_TYPE (decl)) = DECL_NAME (decl);
+ /* Put automatic variables into the intermediate representation. */
+ if (TREE_CODE (decl) == VAR_DECL && !DECL_EXTERNAL (decl)
+ && !TREE_STATIC (decl) && !TREE_PUBLIC (decl))
+ tree_code_output_expression_statement (build1 (DECL_EXPR, void_type_node,
+ decl),
+ DECL_SOURCE_LOCATION (decl));
return decl;
}
diff --git a/gcc/treelang/treetree.h b/gcc/treelang/treetree.h
index 41ce452b6ab..cb6891ebfdd 100644
--- a/gcc/treelang/treetree.h
+++ b/gcc/treelang/treetree.h
@@ -33,17 +33,17 @@ tree tree_code_add_parameter (tree list, tree proto_exp, tree exp);
tree tree_code_get_integer_value (unsigned char *chars, unsigned int length);
void tree_code_generate_return (tree type, tree exp);
void tree_ggc_storage_always_used (void *m);
-tree tree_code_get_expression (unsigned int exp_type, tree type, tree op1, tree op2, tree op3);
+tree tree_code_get_expression (unsigned int exp_type, tree type, tree op1,
+ tree op2, tree op3, location_t loc);
tree tree_code_get_numeric_type (unsigned int size1, unsigned int sign1);
void tree_code_create_function_initial (tree prev_saved,
- location_t loc,
- struct prod_token_parm_item* parms);
+ location_t loc);
void tree_code_create_function_wrapup (location_t loc);
tree tree_code_create_function_prototype (unsigned char* chars,
unsigned int storage_class,
unsigned int ret_type,
- struct prod_token_parm_item* parms,
- location_t loc);
+ struct prod_token_parm_item* parms,
+ location_t loc);
tree tree_code_create_variable (unsigned int storage_class,
unsigned char* chars,
unsigned int length,
diff --git a/gcc/unwind-dw2-fde-glibc.c b/gcc/unwind-dw2-fde-glibc.c
index 96d7946291a..d4853e07639 100644
--- a/gcc/unwind-dw2-fde-glibc.c
+++ b/gcc/unwind-dw2-fde-glibc.c
@@ -74,6 +74,7 @@ struct unw_eh_callback_data
void *dbase;
void *func;
const fde *ret;
+ int check_cache;
};
struct unw_eh_frame_hdr
@@ -84,6 +85,20 @@ struct unw_eh_frame_hdr
unsigned char table_enc;
};
+#define FRAME_HDR_CACHE_SIZE 8
+
+static struct frame_hdr_cache_element
+{
+ _Unwind_Ptr pc_low;
+ _Unwind_Ptr pc_high;
+ _Unwind_Ptr load_base;
+ const ElfW(Phdr) *p_eh_frame_hdr;
+ const ElfW(Phdr) *p_dynamic;
+ struct frame_hdr_cache_element *link;
+} frame_hdr_cache[FRAME_HDR_CACHE_SIZE];
+
+static struct frame_hdr_cache_element *frame_hdr_cache_head;
+
/* Like base_of_encoded_value, but take the base from a struct
unw_eh_callback_data instead of an _Unwind_Context. */
@@ -123,11 +138,16 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
const struct unw_eh_frame_hdr *hdr;
_Unwind_Ptr eh_frame;
struct object ob;
-
- /* Make sure struct dl_phdr_info is at least as big as we need. */
- if (size < offsetof (struct dl_phdr_info, dlpi_phnum)
- + sizeof (info->dlpi_phnum))
- return -1;
+
+ struct ext_dl_phdr_info
+ {
+ ElfW(Addr) dlpi_addr;
+ const char *dlpi_name;
+ const ElfW(Phdr) *dlpi_phdr;
+ ElfW(Half) dlpi_phnum;
+ unsigned long long int dlpi_adds;
+ unsigned long long int dlpi_subs;
+ };
match = 0;
phdr = info->dlpi_phdr;
@@ -135,6 +155,82 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
p_eh_frame_hdr = NULL;
p_dynamic = NULL;
+ struct frame_hdr_cache_element *prev_cache_entry = NULL,
+ *last_cache_entry = NULL;
+
+ if (data->check_cache && size >= sizeof (struct ext_dl_phdr_info))
+ {
+ static unsigned long long adds = -1ULL, subs;
+ struct ext_dl_phdr_info *einfo = (struct ext_dl_phdr_info *) info;
+
+ /* We use a least recently used cache replacement policy. Also,
+ the most recently used cache entries are placed at the head
+ of the search chain. */
+
+ if (einfo->dlpi_adds == adds && einfo->dlpi_subs == subs)
+ {
+ /* Find data->pc in shared library cache.
+ Set load_base, p_eh_frame_hdr and p_dynamic
+ plus match from the cache and goto
+ "Read .eh_frame_hdr header." below. */
+
+ struct frame_hdr_cache_element *cache_entry;
+
+ for (cache_entry = frame_hdr_cache_head;
+ cache_entry;
+ cache_entry = cache_entry->link)
+ {
+ if (data->pc >= cache_entry->pc_low
+ && data->pc < cache_entry->pc_high)
+ {
+ load_base = cache_entry->load_base;
+ p_eh_frame_hdr = cache_entry->p_eh_frame_hdr;
+ p_dynamic = cache_entry->p_dynamic;
+
+ /* And move the entry we're using to the head. */
+ if (cache_entry != frame_hdr_cache_head)
+ {
+ prev_cache_entry->link = cache_entry->link;
+ cache_entry->link = frame_hdr_cache_head;
+ frame_hdr_cache_head = cache_entry;
+ }
+ goto found;
+ }
+
+ last_cache_entry = cache_entry;
+ /* Exit early if we found an unused entry. */
+ if ((cache_entry->pc_low | cache_entry->pc_high) == 0)
+ break;
+ if (cache_entry->link != NULL)
+ prev_cache_entry = cache_entry;
+ }
+ }
+ else
+ {
+ adds = einfo->dlpi_adds;
+ subs = einfo->dlpi_subs;
+ /* Initialize the cache. Create a chain of cache entries,
+ with the final one terminated by a NULL link. */
+ int i;
+ for (i = 0; i < FRAME_HDR_CACHE_SIZE; i++)
+ {
+ frame_hdr_cache[i].pc_low = 0;
+ frame_hdr_cache[i].pc_high = 0;
+ frame_hdr_cache[i].link = &frame_hdr_cache[i+1];
+ }
+ frame_hdr_cache[i-1].link = NULL;
+ frame_hdr_cache_head = &frame_hdr_cache[0];
+ data->check_cache = 0;
+ }
+ }
+
+ /* Make sure struct dl_phdr_info is at least as big as we need. */
+ if (size < offsetof (struct dl_phdr_info, dlpi_phnum)
+ + sizeof (info->dlpi_phnum))
+ return -1;
+
+ _Unwind_Ptr pc_low = 0, pc_high = 0;
+
/* See if PC falls into one of the loaded segments. Find the eh_frame
segment at the same time. */
for (n = info->dlpi_phnum; --n >= 0; phdr++)
@@ -144,14 +240,40 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
_Unwind_Ptr vaddr = (_Unwind_Ptr)
__RELOC_POINTER (phdr->p_vaddr, load_base);
if (data->pc >= vaddr && data->pc < vaddr + phdr->p_memsz)
- match = 1;
+ {
+ match = 1;
+ pc_low = vaddr;
+ pc_high = vaddr + phdr->p_memsz;
+ }
}
else if (phdr->p_type == PT_GNU_EH_FRAME)
p_eh_frame_hdr = phdr;
else if (phdr->p_type == PT_DYNAMIC)
p_dynamic = phdr;
}
- if (!match || !p_eh_frame_hdr)
+
+ if (!match)
+ return 0;
+
+ if (size >= sizeof (struct ext_dl_phdr_info))
+ {
+ if (last_cache_entry != NULL)
+ {
+ prev_cache_entry->link = last_cache_entry->link;
+ last_cache_entry->link = frame_hdr_cache_head;
+ frame_hdr_cache_head = last_cache_entry;
+ }
+
+ frame_hdr_cache_head->load_base = load_base;
+ frame_hdr_cache_head->p_eh_frame_hdr = p_eh_frame_hdr;
+ frame_hdr_cache_head->p_dynamic = p_dynamic;
+ frame_hdr_cache_head->pc_low = pc_low;
+ frame_hdr_cache_head->pc_high = pc_high;
+ }
+
+ found:
+
+ if (!p_eh_frame_hdr)
return 0;
/* Read .eh_frame_hdr header. */
@@ -289,6 +411,7 @@ _Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)
data.dbase = NULL;
data.func = NULL;
data.ret = NULL;
+ data.check_cache = 1;
if (dl_iterate_phdr (_Unwind_IteratePhdrCallback, &data) < 0)
return NULL;
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index 7c1f7e17a50..0d96977b931 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -255,6 +255,11 @@ insn_prefetch_values_to_profile (rtx insn, histogram_values *values)
address = XEXP (mem, 0);
if (side_effects_p (address))
return false;
+
+ /* APPLE LOCAL begin should be in FSF, and has been submitted. */
+ if (GET_CODE (PATTERN (insn)) == CLOBBER)
+ return false;
+ /* APPLE LOCAL end should be in FSF, and has been submitted. */
if (CONSTANT_P (address))
return false;
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 12ab1b7b01a..ee58a57e322 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -902,7 +902,6 @@ make_decl_rtl (tree decl)
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-
if (TREE_CODE (decl) != FUNCTION_DECL && DECL_REGISTER (decl))
{
reg_number = decode_reg_name (name);
@@ -945,6 +944,7 @@ make_decl_rtl (tree decl)
/* Make this register global, so not usable for anything
else. */
#ifdef ASM_DECLARE_REGISTER_GLOBAL
+ name = IDENTIFIER_POINTER (DECL_NAME (decl));
ASM_DECLARE_REGISTER_GLOBAL (asm_out_file, decl, reg_number, name);
#endif
nregs = hard_regno_nregs[reg_number][DECL_MODE (decl)];
@@ -1236,8 +1236,18 @@ assemble_start_function (tree decl, const char *fnname)
if (flag_reorder_blocks_and_partition)
{
+ /* APPLE LOCAL begin hot/cold partitioning */
+ /* We don't want to print out the label for the cold section here,
+ just fix the alignment. Therefore play games with
+ unlikely_section_label_printed to get this behavior. */
+
+ unlikely_section_label_printed = true;
+ /* APPLE LOCAL end hot/cold partitioning */
unlikely_text_section ();
assemble_align (FUNCTION_BOUNDARY);
+ /* APPLE LOCAL begin hot/cold partitioning */
+ unlikely_section_label_printed = false;
+ /* APPLE LOCAL end hot/cold partitioning */
}
resolve_unique_section (decl, 0, flag_function_sections);
@@ -1576,6 +1586,11 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED,
if (flag_syntax_only)
return;
+ /* APPLE LOCAL begin duplicate decls in multiple files. */
+ if (DECL_DUPLICATE_DECL (decl))
+ return;
+ /* APPLE LOCAL end duplicate decls in multiple files. */
+
app_disable ();
if (! dont_output_data
@@ -1699,6 +1714,27 @@ assemble_variable (tree decl, int top_level ATTRIBUTE_UNUSED,
resolve_unique_section (decl, reloc, flag_data_sections);
variable_section (decl, reloc);
+ /* APPLE LOCAL begin zerofill 20020218 --turly */
+#ifdef ASM_OUTPUT_ZEROFILL
+ /* We need a ZEROFILL COALESCED option! */
+ if (!DECL_COMMON (decl)
+ && ! dont_output_data
+ && ! DECL_ONE_ONLY (decl)
+ && ! DECL_WEAK (decl)
+ && (DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node))
+ {
+ ASM_OUTPUT_ZEROFILL (asm_out_file, name,
+ tree_low_cst (DECL_SIZE_UNIT (decl), 1),
+ floor_log2 (DECL_ALIGN (decl) / BITS_PER_UNIT));
+
+ /********************************/
+ /* NOTE THE EARLY RETURN HERE!! */
+ /********************************/
+ return;
+ }
+#endif
+ /* APPLE LOCAL end zerofill 20020218 --turly */
+
/* dbxout.c needs to know this. */
if (in_text_section () || in_unlikely_text_section ())
DECL_IN_TEXT_SECTION (decl) = 1;
@@ -1883,7 +1919,11 @@ void
mark_decl_referenced (tree decl)
{
if (TREE_CODE (decl) == FUNCTION_DECL)
- cgraph_mark_needed_node (cgraph_node (decl));
+ {
+ /* Extern inline functions don't become needed when referenced. */
+ if (!DECL_EXTERNAL (decl))
+ cgraph_mark_needed_node (cgraph_node (decl));
+ }
else if (TREE_CODE (decl) == VAR_DECL)
cgraph_varpool_mark_needed_node (cgraph_varpool_node (decl));
/* else do nothing - we can get various sorts of CST nodes here,
@@ -2296,8 +2336,19 @@ const_hash_1 (const tree exp)
return real_hash (TREE_REAL_CST_PTR (exp));
case STRING_CST:
- p = TREE_STRING_POINTER (exp);
- len = TREE_STRING_LENGTH (exp);
+ /* APPLE LOCAL begin fwritable strings */
+ if (flag_writable_strings
+ && !darwin_constant_cfstring_p (exp))
+ {
+ p = (char *) &exp;
+ len = sizeof exp;
+ }
+ else
+ {
+ p = TREE_STRING_POINTER (exp);
+ len = TREE_STRING_LENGTH (exp);
+ }
+ /* APPLE LOCAL end fwritable strings */
break;
case COMPLEX_CST:
@@ -2402,6 +2453,13 @@ compare_constant (const tree t1, const tree t2)
return REAL_VALUES_IDENTICAL (TREE_REAL_CST (t1), TREE_REAL_CST (t2));
case STRING_CST:
+ /* APPLE LOCAL begin fwritable strings */
+ if (flag_writable_strings
+ && !darwin_constant_cfstring_p (t1)
+ && !darwin_constant_cfstring_p (t2))
+ return t1 == t2;
+ /* APPLE LOCAL end fwritable strings */
+
if (TYPE_MODE (TREE_TYPE (t1)) != TYPE_MODE (TREE_TYPE (t2)))
return 0;
@@ -2583,7 +2641,12 @@ build_constant_desc (tree exp)
struct constant_descriptor_tree *desc;
desc = ggc_alloc (sizeof (*desc));
- desc->value = copy_constant (exp);
+ /* APPLE LOCAL begin fwritable strings */
+ if (flag_writable_strings && TREE_CODE (exp) == STRING_CST)
+ desc->value = exp;
+ else
+ desc->value = copy_constant (exp);
+ /* APPLE LOCAL end fwritable strings */
/* Propagate marked-ness to copied constant. */
if (flag_mudflap && mf_marked_p (exp))
@@ -2669,9 +2732,11 @@ maybe_output_constant_def_contents (struct constant_descriptor_tree *desc,
/* Already output; don't do it again. */
return;
- /* We can always defer constants as long as the context allows
- doing so. */
- if (defer)
+ /* APPLE LOCAL begin fwritable strings */
+ /* The only constants that cannot safely be deferred, assuming the
+ context allows it, are strings under flag_writable_strings. */
+ if (defer && (TREE_CODE (exp) != STRING_CST || !flag_writable_strings))
+ /* APPLE LOCAL end fwritable strings */
{
/* Increment n_deferred_constants if it exists. It needs to be at
least as large as the number of constants actually referred to
@@ -3468,6 +3533,8 @@ initializer_constant_valid_p (tree value, tree endtype)
{
case CONSTRUCTOR:
if ((TREE_CODE (TREE_TYPE (value)) == UNION_TYPE
+ /* APPLE LOCAL AltiVec */
+ || TREE_CODE (TREE_TYPE (value)) == VECTOR_TYPE
|| TREE_CODE (TREE_TYPE (value)) == RECORD_TYPE)
&& TREE_CONSTANT (value)
&& CONSTRUCTOR_ELTS (value))
@@ -3523,63 +3590,61 @@ initializer_constant_valid_p (tree value, tree endtype)
case CONVERT_EXPR:
case NOP_EXPR:
- /* Allow conversions between pointer types. */
- if (POINTER_TYPE_P (TREE_TYPE (value))
- && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0))))
- return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype);
-
- /* Allow conversions between real types. */
- if (FLOAT_TYPE_P (TREE_TYPE (value))
- && FLOAT_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0))))
- return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype);
-
- /* Allow length-preserving conversions between integer types. */
- if (INTEGRAL_TYPE_P (TREE_TYPE (value))
- && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0)))
- && (TYPE_PRECISION (TREE_TYPE (value))
- == TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (value, 0)))))
- return initializer_constant_valid_p (TREE_OPERAND (value, 0), endtype);
-
- /* Allow conversions between other integer types only if
- explicit value. */
- if (INTEGRAL_TYPE_P (TREE_TYPE (value))
- && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0))))
- {
- tree inner = initializer_constant_valid_p (TREE_OPERAND (value, 0),
- endtype);
- if (inner == null_pointer_node)
- return null_pointer_node;
- break;
- }
+ {
+ tree src;
+ tree src_type;
+ tree dest_type;
+
+ src = TREE_OPERAND (value, 0);
+ src_type = TREE_TYPE (src);
+ dest_type = TREE_TYPE (value);
+
+ /* Allow conversions between pointer types, floating-point
+ types, and offset types. */
+ if ((POINTER_TYPE_P (dest_type) && POINTER_TYPE_P (src_type))
+ || (FLOAT_TYPE_P (dest_type) && FLOAT_TYPE_P (src_type))
+ || (TREE_CODE (dest_type) == OFFSET_TYPE
+ && TREE_CODE (src_type) == OFFSET_TYPE))
+ return initializer_constant_valid_p (src, endtype);
+
+ /* Allow length-preserving conversions between integer types. */
+ if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type)
+ && (TYPE_PRECISION (dest_type) == TYPE_PRECISION (src_type)))
+ return initializer_constant_valid_p (src, endtype);
+
+ /* Allow conversions between other integer types only if
+ explicit value. */
+ if (INTEGRAL_TYPE_P (dest_type) && INTEGRAL_TYPE_P (src_type))
+ {
+ tree inner = initializer_constant_valid_p (src, endtype);
+ if (inner == null_pointer_node)
+ return null_pointer_node;
+ break;
+ }
- /* Allow (int) &foo provided int is as wide as a pointer. */
- if (INTEGRAL_TYPE_P (TREE_TYPE (value))
- && POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0)))
- && (TYPE_PRECISION (TREE_TYPE (value))
- >= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (value, 0)))))
- return initializer_constant_valid_p (TREE_OPERAND (value, 0),
- endtype);
-
- /* Likewise conversions from int to pointers, but also allow
- conversions from 0. */
- if ((POINTER_TYPE_P (TREE_TYPE (value))
- || TREE_CODE (TREE_TYPE (value)) == OFFSET_TYPE)
- && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (value, 0))))
- {
- if (integer_zerop (TREE_OPERAND (value, 0)))
- return null_pointer_node;
- else if (TYPE_PRECISION (TREE_TYPE (value))
- <= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (value, 0))))
- return initializer_constant_valid_p (TREE_OPERAND (value, 0),
- endtype);
- }
+ /* Allow (int) &foo provided int is as wide as a pointer. */
+ if (INTEGRAL_TYPE_P (dest_type) && POINTER_TYPE_P (src_type)
+ && (TYPE_PRECISION (dest_type) >= TYPE_PRECISION (src_type)))
+ return initializer_constant_valid_p (src, endtype);
- /* Allow conversions to struct or union types if the value
- inside is okay. */
- if (TREE_CODE (TREE_TYPE (value)) == RECORD_TYPE
- || TREE_CODE (TREE_TYPE (value)) == UNION_TYPE)
- return initializer_constant_valid_p (TREE_OPERAND (value, 0),
- endtype);
+ /* Likewise conversions from int to pointers, but also allow
+ conversions from 0. */
+ if ((POINTER_TYPE_P (dest_type)
+ || TREE_CODE (dest_type) == OFFSET_TYPE)
+ && INTEGRAL_TYPE_P (src_type))
+ {
+ if (integer_zerop (src))
+ return null_pointer_node;
+ else if (TYPE_PRECISION (dest_type) <= TYPE_PRECISION (src_type))
+ return initializer_constant_valid_p (src, endtype);
+ }
+
+ /* Allow conversions to struct or union types if the value
+ inside is okay. */
+ if (TREE_CODE (dest_type) == RECORD_TYPE
+ || TREE_CODE (dest_type) == UNION_TYPE)
+ return initializer_constant_valid_p (src, endtype);
+ }
break;
case PLUS_EXPR:
@@ -4211,18 +4276,49 @@ mark_weak (tree decl)
SYMBOL_REF_WEAK (XEXP (DECL_RTL (decl), 0)) = 1;
}
+/* APPLE LOCAL begin 4095052 */
+/* We put the NEWDECL on the weak_decls list at some point.
+ Replace it with the OLDDECL. */
+
+static void
+replace_weak (tree newdecl, tree olddecl)
+{
+ if (SUPPORTS_WEAK)
+ {
+ tree wd;
+
+ for (wd = weak_decls; wd; wd = TREE_CHAIN (wd))
+ if (TREE_VALUE (wd) == newdecl)
+ {
+ TREE_VALUE (wd) = olddecl;
+ break;
+ }
+ /* We may not find the entry on the list. If NEWDECL is a
+ weak alias, then we will have already called
+ globalize_decl to remove the entry; in that case, we do
+ not need to do anything. */
+ }
+}
+/* APPLE LOCAL end 4095052 */
+
/* Merge weak status between NEWDECL and OLDDECL. */
void
merge_weak (tree newdecl, tree olddecl)
{
+ /* APPLE LOCAL begin 4095052 */
if (DECL_WEAK (newdecl) == DECL_WEAK (olddecl))
- return;
+ {
+ /* Replace newdecl in weak_decls list. */
+ replace_weak (newdecl, olddecl);
+ return;
+ }
+/* APPLE LOCAL end 4095052 */
if (DECL_WEAK (newdecl))
{
- tree wd;
-
+ /* APPLE LOCAL 4095052 */
+ /* Remove 'wd'. */
/* NEWDECL is weak, but OLDDECL is not. */
/* If we already output the OLDDECL, we're in trouble; we can't
@@ -4241,21 +4337,10 @@ merge_weak (tree newdecl, tree olddecl)
warning ("%Jweak declaration of %qD after first use results "
"in unspecified behavior", newdecl, newdecl);
- if (SUPPORTS_WEAK)
- {
- /* We put the NEWDECL on the weak_decls list at some point.
- Replace it with the OLDDECL. */
- for (wd = weak_decls; wd; wd = TREE_CHAIN (wd))
- if (TREE_VALUE (wd) == newdecl)
- {
- TREE_VALUE (wd) = olddecl;
- break;
- }
- /* We may not find the entry on the list. If NEWDECL is a
- weak alias, then we will have already called
- globalize_decl to remove the entry; in that case, we do
- not need to do anything. */
- }
+ /* APPLE LOCAL begin 4095052 */
+ /* Replace newdecl in weak_decls list. */
+ replace_weak (newdecl, olddecl);
+ /* APPLE LOCAL end 4095052 */
/* Make the OLDDECL weak; it's OLDDECL that we'll be keeping. */
mark_weak (olddecl);
@@ -4355,55 +4440,144 @@ globalize_decl (tree decl)
targetm.asm_out.globalize_label (asm_out_file, name);
}
-/* Some targets do not allow a forward or undefined reference in a
- ASM_OUTPUT_DEF. Thus, a mechanism is needed to defer the output of
- this assembler code. The following struct holds the declaration
- and target for a deferred output define. */
-struct output_def_pair GTY(())
+/* We have to be able to tell cgraph about the needed-ness of the target
+ of an alias. This requires that the decl have been defined. Aliases
+ that preceed their definition have to be queued for later processing. */
+
+struct alias_pair GTY(())
{
tree decl;
tree target;
};
-typedef struct output_def_pair *output_def_pair;
+typedef struct alias_pair *alias_pair;
/* Define gc'd vector type. */
-DEF_VEC_GC_P(output_def_pair);
+DEF_VEC_GC_P(alias_pair);
-/* Vector of output_def_pair pointers. */
-static GTY(()) VEC(output_def_pair) *output_defs;
+static GTY(()) VEC(alias_pair) *alias_pairs;
-#ifdef ASM_OUTPUT_DEF
-/* Output the assembler code for a define (equate) using ASM_OUTPUT_DEF
- or ASM_OUTPUT_DEF_FROM_DECLS. The function defines the symbol whose
- tree node is DECL to have the value of the tree node TARGET. */
+/* Given an assembly name, find the decl it is associated with. At the
+ same time, mark it needed for cgraph. */
+
+static tree
+find_decl_and_mark_needed (tree decl, tree target)
+{
+ struct cgraph_node *fnode = NULL;
+ struct cgraph_varpool_node *vnode = NULL;
+
+ /* C++ thunk emitting code produces aliases late in the game.
+ Avoid confusing cgraph code in that case. */
+ if (!cgraph_global_info_ready)
+ {
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ fnode = cgraph_node_for_asm (target);
+ if (fnode == NULL)
+ vnode = cgraph_varpool_node_for_asm (target);
+ }
+ else
+ {
+ vnode = cgraph_varpool_node_for_asm (target);
+ if (vnode == NULL)
+ fnode = cgraph_node_for_asm (target);
+ }
+ }
+
+ if (fnode)
+ {
+ cgraph_mark_needed_node (fnode);
+ return fnode->decl;
+ }
+ else if (vnode)
+ {
+ cgraph_varpool_mark_needed_node (vnode);
+ return vnode->decl;
+ }
+ else
+ return NULL_TREE;
+}
static void
-assemble_output_def (tree decl ATTRIBUTE_UNUSED, tree target ATTRIBUTE_UNUSED)
+do_assemble_alias (tree decl, tree target)
{
-#ifdef ASM_OUTPUT_DEF_FROM_DECLS
+ TREE_ASM_WRITTEN (decl) = 1;
+ TREE_ASM_WRITTEN (DECL_ASSEMBLER_NAME (decl)) = 1;
+
+#ifdef ASM_OUTPUT_DEF
+ /* Make name accessible from other files, if appropriate. */
+
+ if (TREE_PUBLIC (decl))
+ {
+ globalize_decl (decl);
+ maybe_assemble_visibility (decl);
+ }
+
+# ifdef ASM_OUTPUT_DEF_FROM_DECLS
ASM_OUTPUT_DEF_FROM_DECLS (asm_out_file, decl, target);
-#else
+# else
ASM_OUTPUT_DEF (asm_out_file,
IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)),
IDENTIFIER_POINTER (target));
+# endif
+#elif defined (ASM_OUTPUT_WEAK_ALIAS) || defined (ASM_WEAKEN_DECL)
+ {
+ const char *name;
+ tree *p, t;
+
+ name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+# ifdef ASM_WEAKEN_DECL
+ ASM_WEAKEN_DECL (asm_out_file, decl, name, IDENTIFIER_POINTER (target));
+# else
+ 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);
+ }
#endif
}
-#endif
-/* Process the vector of pending assembler defines. */
+/* First pass of completing pending aliases. Make sure that cgraph knows
+ which symbols will be required. */
void
-process_pending_assemble_output_defs (void)
+finish_aliases_1 (void)
{
-#ifdef ASM_OUTPUT_DEF
unsigned i;
- output_def_pair p;
+ alias_pair p;
+
+ for (i = 0; VEC_iterate (alias_pair, alias_pairs, i, p); i++)
+ {
+ tree target_decl;
+
+ target_decl = find_decl_and_mark_needed (p->decl, p->target);
+ if (target_decl == NULL)
+ error ("%J%qD aliased to undefined symbol %qE",
+ p->decl, p->decl, p->target);
+ else if (DECL_EXTERNAL (target_decl))
+ error ("%J%qD aliased to external symbol %qE",
+ p->decl, p->decl, p->target);
+ }
+}
- for (i = 0; VEC_iterate (output_def_pair, output_defs, i, p); i++)
- assemble_output_def (p->decl, p->target);
+/* Second pass of completing pending aliases. Emit the actual assembly.
+ This happens at the end of compilation and thus it is assured that the
+ target symbol has been emitted. */
- output_defs = NULL;
-#endif
+void
+finish_aliases_2 (void)
+{
+ unsigned i;
+ alias_pair p;
+
+ for (i = 0; VEC_iterate (alias_pair, alias_pairs, i, p); i++)
+ do_assemble_alias (p->decl, p->target);
+
+ alias_pairs = NULL;
}
/* Emit an assembler directive to make the symbol for DECL an alias to
@@ -4412,101 +4586,51 @@ process_pending_assemble_output_defs (void)
void
assemble_alias (tree decl, tree target)
{
- /* We must force creation of DECL_RTL for debug info generation, even though
- we don't use it here. */
- make_decl_rtl (decl);
-
-#ifdef ASM_OUTPUT_DEF
- /* Make name accessible from other files, if appropriate. */
+ tree target_decl;
- if (TREE_PUBLIC (decl))
+#if !defined (ASM_OUTPUT_DEF)
+# if !defined(ASM_OUTPUT_WEAK_ALIAS) && !defined (ASM_WEAKEN_DECL)
+ error ("%Jalias definitions not supported in this configuration", decl);
+ return;
+# else
+ if (!DECL_WEAK (decl))
{
- globalize_decl (decl);
- maybe_assemble_visibility (decl);
+ error ("%Jonly weak aliases are supported in this configuration", decl);
+ return;
}
+# endif
+#endif
- if (TARGET_DEFERRED_OUTPUT_DEFS (decl, target))
- {
- output_def_pair p;
+ /* We must force creation of DECL_RTL for debug info generation, even though
+ we don't use it here. */
+ make_decl_rtl (decl);
+ TREE_USED (decl) = 1;
- p = ggc_alloc (sizeof (struct output_def_pair));
- p->decl = decl;
- p->target = target;
- VEC_safe_push (output_def_pair, output_defs, p);
- }
- else
- assemble_output_def (decl, target);
-#else /* !ASM_OUTPUT_DEF */
-#if defined (ASM_OUTPUT_WEAK_ALIAS) || defined (ASM_WEAKEN_DECL)
- if (DECL_WEAK (decl))
- {
- const char *name;
- tree *p, t;
+ /* A quirk of the initial implementation of aliases required that the user
+ add "extern" to all of them. Which is silly, but now historical. Do
+ note that the symbol is in fact locally defined. */
+ DECL_EXTERNAL (decl) = 0;
- name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
-#ifdef ASM_WEAKEN_DECL
- ASM_WEAKEN_DECL (asm_out_file, decl, name, IDENTIFIER_POINTER (target));
-#else
- 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);
- }
+ /* Allow aliases to aliases. */
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ cgraph_node (decl)->alias = true;
else
- warning ("only weak aliases are supported in this configuration");
-
-#else
- warning ("alias definitions not supported in this configuration; ignored");
-#endif
-#endif
+ cgraph_varpool_node (decl)->alias = true;
- /* Tell cgraph that the aliased symbol is needed. We *could* be more
- specific and tell cgraph about the relationship between the two
- symbols, but given that aliases virtually always exist for a reason,
- it doesn't seem worthwhile. */
- if (flag_unit_at_a_time)
+ /* If the target has already been emitted, we don't have to queue the
+ alias. This saves a tad o memory. */
+ target_decl = find_decl_and_mark_needed (decl, target);
+ if (target_decl && TREE_ASM_WRITTEN (target_decl))
+ do_assemble_alias (decl, target);
+ else
{
- struct cgraph_node *fnode = NULL;
- struct cgraph_varpool_node *vnode = NULL;
-
- if (TREE_CODE (decl) == FUNCTION_DECL)
- {
- fnode = cgraph_node_for_asm (target);
- if (fnode != NULL)
- cgraph_mark_needed_node (fnode);
- else
- {
- vnode = cgraph_varpool_node_for_asm (target);
- if (vnode != NULL)
- cgraph_varpool_mark_needed_node (vnode);
- }
- }
- else
- {
- vnode = cgraph_varpool_node_for_asm (target);
- if (vnode != NULL)
- cgraph_varpool_mark_needed_node (vnode);
- else
- {
- fnode = cgraph_node_for_asm (target);
- if (fnode != NULL)
- cgraph_mark_needed_node (fnode);
- }
- }
+ alias_pair p;
- if (fnode == NULL && vnode == NULL)
- warning ("%qD aliased to undefined symbol %qE", decl, target);
+ p = ggc_alloc (sizeof (struct alias_pair));
+ p->decl = decl;
+ p->target = target;
+ VEC_safe_push (alias_pair, alias_pairs, p);
}
-
- TREE_USED (decl) = 1;
- TREE_ASM_WRITTEN (decl) = 1;
- TREE_ASM_WRITTEN (DECL_ASSEMBLER_NAME (decl)) = 1;
}
/* Emit an assembler directive to set symbol for DECL visibility to
@@ -4839,7 +4963,8 @@ default_select_section (tree decl, int reloc,
readonly = true;
}
else if (TREE_CODE (decl) == STRING_CST)
- readonly = true;
+ /* APPLE LOCAL fwritable strings */
+ readonly = !flag_writable_strings;
else if (! (flag_pic && reloc))
readonly = true;
@@ -4898,6 +5023,10 @@ categorize_decl_for_section (tree decl, int reloc, int shlib)
return SECCAT_TEXT;
else if (TREE_CODE (decl) == STRING_CST)
{
+ /* APPLE LOCAL begin fwritable strings */
+ if (flag_writable_strings)
+ return SECCAT_DATA;
+ /* APPLE LOCAL end fwritable strings */
if (flag_mudflap) /* or !flag_merge_constants */
return SECCAT_RODATA;
else
diff --git a/gcc/version.c b/gcc/version.c
index 483ecdf0362..46b6eb51d1b 100644
--- a/gcc/version.c
+++ b/gcc/version.c
@@ -5,7 +5,19 @@
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[] = "4.0.0 20050215 (experimental)";
+/* APPLE LOCAL begin Apple version */
+/* When updating this string:
+ - For each internal build, increment the build number.
+ - When merging from the FSF, delete any (experimental) or (prerelease).
+ Apple doesn't mark its GCC versions as 'prerelease', because a released
+ compiler will be identical to the last prerelease compiler and it
+ makes no sense to mark released compilers as 'prerelease'.
+ - There are other scripts that search for first word of the string
+ to get version number string. Do not use new line.
+*/
+
+const char version_string[] = "4.0.0 (Apple Computer, Inc. build 5208)";
+/* APPLE LOCAL end Apple version */
/* This is the location of the online document giving instructions for
reporting bugs. If you distribute a modified version of GCC,
@@ -14,4 +26,6 @@ const char version_string[] = "4.0.0 20050215 (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://gcc.gnu.org/bugs.html>";
+/* APPLE LOCAL begin Apple bug-report */
+const char bug_report_url[] = "<URL:http://developer.apple.com/bugreporter>";
+/* APPLE LOCAL end Apple bug-report */
diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c
index 060abe85901..943521cfc0c 100644
--- a/gcc/vmsdbgout.c
+++ b/gcc/vmsdbgout.c
@@ -209,7 +209,8 @@ const struct gcc_debug_hooks vmsdbg_debug_hooks
vmsdbgout_abstract_function,
debug_nothing_rtx, /* label */
debug_nothing_int, /* handle_pch */
- debug_nothing_rtx /* var_location */
+ debug_nothing_rtx, /* var_location */
+ 0 /* start_end_main_source_file */
};
/* Definitions of defaults for assembler-dependent names of various
diff --git a/include/ChangeLog b/include/ChangeLog
index da3aaa2f7c0..bc8220d942e 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2005-02-14 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/19818
diff --git a/include/demangle.h b/include/demangle.h
index b3b8c58c517..83c0d1f3293 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -141,6 +141,8 @@ enum gnu_v3_ctor_kinds {
gnu_v3_complete_object_ctor = 1,
gnu_v3_base_object_ctor,
gnu_v3_complete_object_allocating_ctor
+ /* APPLE LOCAL decloning */
+ , gnu_v3_unified_ctor
};
/* Return non-zero iff NAME is the mangled form of a constructor name
@@ -155,6 +157,8 @@ enum gnu_v3_dtor_kinds {
gnu_v3_deleting_dtor = 1,
gnu_v3_complete_object_dtor,
gnu_v3_base_object_dtor
+ /* APPLE LOCAL decloning */
+ , gnu_v3_unified_dtor
};
/* Return non-zero iff NAME is the mangled form of a destructor name
diff --git a/intl/ChangeLog b/intl/ChangeLog
index e3efd1fb4a8..401dc151473 100644
--- a/intl/ChangeLog
+++ b/intl/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
* aclocal.m4: Regenerate.
diff --git a/libada/ChangeLog b/libada/ChangeLog
index 56cac66709f..284c5ddab4c 100644
--- a/libada/ChangeLog
+++ b/libada/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2004-05-25 Daniel Jacobowitz <drow@false.org>
* Makefile.in: Add .NOEXPORT.
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 5c58eb7ceb8..28c866a2e19 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,45 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/19475
+ * macro.c (create_iso_definition): For < ISO C99, don't
+ pedwarn if there is no whitespace between macro name and its
+ replacement, but the replacement starts with a basic character
+ set character.
+
+2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * configure.ac: Consistently use solaris2.1[0-9]* instead of
+ solaris2.1[0-9].
+ * configure: Regenerate.
+
+2005-03-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/20282
+ PR bootstrap/20305
+ * macro.c (replace_args, cpp_get_token): Copy whole
+ cpp_token_u instead of just cpp_string field from it.
+
+2005-02-28 Devang Patel <dpatel@apple.com>
+
+ * directives.c (do_line): Save sysp early before line table is
+ realloc'ed.
+
+2005-02-20 Zack Weinberg <zack@codesourcery.com>
+
+ PR 18785
+ * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
+ (cpp_host_to_exec_charset): New function.
+ * include/cpplib.h: Declare cpp_host_to_exec_charset.
+
+2005-02-19 Devang Patel <dpatel@apple.com>
+
+ * charset.c (_cpp_convert_input): Check '\r' before inserting
+ '\n' at the end.
+
2005-02-15 Eric Christopher <echristo@redhat.com>
PR preprocessor/19077
@@ -36,7 +78,7 @@
* include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
* include/cpplib.h: Also update copyright years.
-
+
2005-01-03 Geoffrey Keating <geoffk@apple.com>
* files.c (_cpp_find_file): Add files found by search_path_exhausted
@@ -59,7 +101,7 @@
2004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
- PR preprocessor/17610
+ PR preprocessor/17610
* directives.c (do_include_common): Error out if an empty filename
is given for #include (or #include_next or #import).
@@ -82,7 +124,7 @@
* configure: Regenerate.
2004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
* internal.h (struct lexer_state): Add in_deferred_pragma.
* directives.c (struct pragma_entry): Add allow_expansion.
@@ -95,7 +137,7 @@
* include/cpplib.h (cpp_register_pragma): Update prototype.
2004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
* configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
need_64bit_hwint=yes.
@@ -110,7 +152,7 @@
Remove local srcdir path from generated file.
2004-11-04 Zack Weinberg <zack@codesourcery.com>
- Gerald Pfeifer <gerald@pfeifer.com>
+ Gerald Pfeifer <gerald@pfeifer.com>
* internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
as well.
diff --git a/libcpp/ChangeLog.apple-ppc b/libcpp/ChangeLog.apple-ppc
new file mode 100644
index 00000000000..de49124f6ba
--- /dev/null
+++ b/libcpp/ChangeLog.apple-ppc
@@ -0,0 +1,93 @@
+2005-06-15 Geoffrey Keating <geoffk@apple.com>
+
+ * lex.c (warn_about_normalization): Add cast to 'sz'.
+ * macro.c (cpp_get_token): Use cast on 'result' rather than making
+ it non-const.
+ * pch.c (cpp_read_state): Don't mix declarations and code.
+
+2005-06-01 Devang Patel <dpatel@apple.com>
+
+ Radar 4133801
+ * include/cpplib.h (CPP_BINCL, CPP_EINCL): New.
+
+2005-04-21 Devang Patel <dpatel@apple.com>
+
+ Radar 4058553
+ Backport from FSF Mainline.
+ 2005-04-19 Per Bothner <per@bothner.com>
+
+ PR preprocessor/20907
+ * line-map.c (linemap_line_start): Fix bug when we need to increse
+ column_bits but can re-use the current line_map.
+
+2005-03-11 Devang Patel <dpatel@apple.com.
+
+ * diretives.c: Fix white space.
+
+2005-03-06 Devang Patel <dpatel@apple.com>
+
+ * init.c (cpp_read_main_file): Remove Symbol Separation support.
+ * internal.h (cpp_cinfo_state): Remove.
+ (struct cpp_reader): Remove Symbol Separation support.
+ (find_include_cinfo): Remove.
+ * pch.c (count_defs): Remove Symbol Separation support.
+ (write_defs): Same.
+ (cpp_valid_state): Remove warn_invalid_sr use.
+ * directives.c (find_include_cinfo, cpp_symbol_separation_init,
+ cpp_write_symbol_deps, cpp_get_stabs_checksum): Remove.
+
+2005-02-27 Devang Patel <dpatel@apple.com>
+
+ Radar 3982899
+ * directives.c (do_line): Save sysp early before line table is realloc'ed.
+
+2005-02-21 Devang Patel <dpatel@apple.com>
+
+ Radar 4007432
+ * charset.c (_cpp_convert_input): Check '\r' before inserting
+ '\n' at the end.
+
+2005-02-17 Devang Patel <dpatel@apple.com>
+
+ Radar 3958387
+ * libcpp/lex.c (_cpp_get_fresh_line): Check warn_newline_at_eof.
+
+2005-01-04 Anders Bertelrud <anders@apple.com>
+
+ Radar 3871393
+ * include/cpplib.h (struct cpp_dir): Added 'header_map' field.
+
+2005-01-06 Mike Stump <mrs@apple.com>
+
+ Radar 3929334
+ * files.c (pch_open_file): Add indirection for pch files for distcc.
+ (read_from_parent): Add.
+ (write_to_parent): Add.
+ (init_indirect_pipes): Add.
+ (indirect_file): Add.
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ Undo Radar 3909961
+ * libcpp/directivec.c (do_elif): Do not check EOL when -Wextra-tokens is used.
+
+2004-12-10 Devang Patel <dpatel@apple.com>
+
+ Radar 3909961
+ * libcpp/directivec.c (do_elif): Check EOL when -Wextra-tokens is used.
+
+2004-08-03 Stan Shebs <shebs@apple.com>
+
+ Radar 3368707
+ Support for CodeWarrior-style assembly language blocks and
+ functions.
+ * include/cpplib.h (CPP_BOL, CPP_EOL): Define.
+ * internal.h (struct cpp_context): New field bol_p.
+ * lex.c (lex_identifier): Handle special chars in opcodes.
+ (cw_asm_label_follows): New global.
+ (_cpp_lex_direct): Special handling for @-labels,
+ flag end of operands when ';' seen.
+ * macro.c (enter_macro_context): Add bol_p argument and use.
+ (push_ptoken_context): Seed bol_p field.
+ (push_token_context): Ditto.
+ (cpp_get_token): Detect tokens at beginning of line and record.
diff --git a/libcpp/charset.c b/libcpp/charset.c
index 7a88a708e6c..abb5c8d4da4 100644
--- a/libcpp/charset.c
+++ b/libcpp/charset.c
@@ -22,7 +22,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "system.h"
#include "cpplib.h"
#include "internal.h"
-#include "ucnid.h"
+/* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+/* Remove include of ucnid.h */
/* Character set handling for C-family languages.
@@ -81,8 +82,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if HOST_CHARSET == HOST_CHARSET_ASCII
#define SOURCE_CHARSET "UTF-8"
+#define LAST_POSSIBLY_BASIC_SOURCE_CHAR 0x7e
#elif HOST_CHARSET == HOST_CHARSET_EBCDIC
#define SOURCE_CHARSET "UTF-EBCDIC"
+#define LAST_POSSIBLY_BASIC_SOURCE_CHAR 0xFF
#else
#error "Unrecognized basic host character set"
#endif
@@ -714,6 +717,63 @@ _cpp_destroy_iconv (cpp_reader *pfile)
}
}
+/* Utility routine for use by a full compiler. C is a character taken
+ from the *basic* source character set, encoded in the host's
+ execution encoding. Convert it to (the target's) execution
+ encoding, and return that value.
+
+ Issues an internal error if C's representation in the narrow
+ execution character set fails to be a single-byte value (C99
+ 5.2.1p3: "The representation of each member of the source and
+ execution character sets shall fit in a byte.") May also issue an
+ internal error if C fails to be a member of the basic source
+ character set (testing this exactly is too hard, especially when
+ the host character set is EBCDIC). */
+cppchar_t
+cpp_host_to_exec_charset (cpp_reader *pfile, cppchar_t c)
+{
+ uchar sbuf[1];
+ struct _cpp_strbuf tbuf;
+
+ /* This test is merely an approximation, but it suffices to catch
+ the most important thing, which is that we don't get handed a
+ character outside the unibyte range of the host character set. */
+ if (c > LAST_POSSIBLY_BASIC_SOURCE_CHAR)
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "character 0x%lx is not in the basic source character set\n",
+ (unsigned long)c);
+ return 0;
+ }
+
+ /* Being a character in the unibyte range of the host character set,
+ we can safely splat it into a one-byte buffer and trust that that
+ is a well-formed string. */
+ sbuf[0] = c;
+
+ /* This should never need to reallocate, but just in case... */
+ tbuf.asize = 1;
+ tbuf.text = xmalloc (tbuf.asize);
+ tbuf.len = 0;
+
+ if (!APPLY_CONVERSION (pfile->narrow_cset_desc, sbuf, 1, &tbuf))
+ {
+ cpp_errno (pfile, CPP_DL_ICE, "converting to execution character set");
+ return 0;
+ }
+ if (tbuf.len != 1)
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "character 0x%lx is not unibyte in execution character set",
+ (unsigned long)c);
+ return 0;
+ }
+ c = tbuf.text[0];
+ free(tbuf.text);
+ return c;
+}
+
+
/* Utility routine that computes a mask of the form 0000...111... with
WIDTH 1-bits. */
@@ -727,47 +787,133 @@ width_to_mask (size_t width)
return ((size_t) 1 << width) - 1;
}
-
+
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* A large table of unicode character information. */
+enum {
+ /* Valid in a C99 identifier? */
+ C99 = 1,
+ /* Valid in a C99 identifier, but not as the first character? */
+ DIG = 2,
+ /* Valid in a C++ identifier? */
+ CXX = 4,
+ /* NFC representation is not valid in an identifier? */
+ CID = 8,
+ /* Might be valid NFC form? */
+ NFC = 16,
+ /* Might be valid NFKC form? */
+ NKC = 32,
+ /* Certain preceding characters might make it not valid NFC/NKFC form? */
+ CTX = 64
+};
+
+static const struct {
+ /* Bitmap of flags above. */
+ unsigned char flags;
+ /* Combining class of the character. */
+ unsigned char combine;
+ /* Last character in the range described by this entry. */
+ unsigned short end;
+} ucnranges[] = {
+#include "ucnid.h"
+};
/* Returns 1 if C is valid in an identifier, 2 if C is valid except at
the start of an identifier, and 0 if C is not valid in an
identifier. We assume C has already gone through the checks of
- _cpp_valid_ucn. The algorithm is a simple binary search on the
- table defined in cppucnid.h. */
+ _cpp_valid_ucn. Also update NST for C if returning nonzero. The
+ algorithm is a simple binary search on the table defined in
+ ucnid.h. */
static int
-ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c)
+ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
+ struct normalize_state *nst)
{
int mn, mx, md;
- mn = -1;
- mx = ARRAY_SIZE (ucnranges);
- while (mx - mn > 1)
+ if (c > 0xFFFF)
+ return 0;
+
+ mn = 0;
+ mx = ARRAY_SIZE (ucnranges) - 1;
+ while (mx != mn)
{
md = (mn + mx) / 2;
- if (c < ucnranges[md].lo)
+ if (c <= ucnranges[md].end)
mx = md;
- else if (c > ucnranges[md].hi)
- mn = md;
else
- goto found;
+ mn = md + 1;
}
- return 0;
- found:
/* When -pedantic, we require the character to have been listed by
the standard for the current language. Otherwise, we accept the
union of the acceptable sets for C++98 and C99. */
+ if (! (ucnranges[mn].flags & (C99 | CXX)))
+ return 0;
+
if (CPP_PEDANTIC (pfile)
- && ((CPP_OPTION (pfile, c99) && !(ucnranges[md].flags & C99))
+ && ((CPP_OPTION (pfile, c99) && !(ucnranges[mn].flags & C99))
|| (CPP_OPTION (pfile, cplusplus)
- && !(ucnranges[md].flags & CXX))))
+ && !(ucnranges[mn].flags & CXX))))
return 0;
+ /* Update NST. */
+ if (ucnranges[mn].combine != 0 && ucnranges[mn].combine < nst->prev_class)
+ nst->level = normalized_none;
+ else if (ucnranges[mn].flags & CTX)
+ {
+ bool safe;
+ cppchar_t p = nst->previous;
+
+ /* Easy cases from Bengali, Oriya, Tamil, Jannada, and Malayalam. */
+ if (c == 0x09BE)
+ safe = p != 0x09C7; /* Use 09CB instead of 09C7 09BE. */
+ else if (c == 0x0B3E)
+ safe = p != 0x0B47; /* Use 0B4B instead of 0B47 0B3E. */
+ else if (c == 0x0BBE)
+ safe = p != 0x0BC6 && p != 0x0BC7; /* Use 0BCA/0BCB instead. */
+ else if (c == 0x0CC2)
+ safe = p != 0x0CC6; /* Use 0CCA instead of 0CC6 0CC2. */
+ else if (c == 0x0D3E)
+ safe = p != 0x0D46 && p != 0x0D47; /* Use 0D4A/0D4B instead. */
+ /* For Hangul, characters in the range AC00-D7A3 are NFC/NFKC,
+ and are combined algorithmically from a sequence of the form
+ 1100-1112 1161-1175 11A8-11C2
+ (if the third is not present, it is treated as 11A7, which is not
+ really a valid character).
+ Unfortunately, C99 allows (only) the NFC form, but C++ allows
+ only the combining characters. */
+ else if (c >= 0x1161 && c <= 0x1175)
+ safe = p < 0x1100 || p > 0x1112;
+ else if (c >= 0x11A8 && c <= 0x11C2)
+ safe = (p < 0xAC00 || p > 0xD7A3 || (p - 0xAC00) % 28 != 0);
+ else
+ {
+ /* Uh-oh, someone updated ucnid.h without updating this code. */
+ cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
+ safe = true;
+ }
+ if (!safe && c < 0x1161)
+ nst->level = normalized_none;
+ else if (!safe)
+ nst->level = MAX (nst->level, normalized_identifier_C);
+ }
+ else if (ucnranges[mn].flags & NKC)
+ ;
+ else if (ucnranges[mn].flags & NFC)
+ nst->level = MAX (nst->level, normalized_C);
+ else if (ucnranges[mn].flags & CID)
+ nst->level = MAX (nst->level, normalized_identifier_C);
+ else
+ nst->level = normalized_none;
+ nst->previous = c;
+ nst->prev_class = ucnranges[mn].combine;
+
/* In C99, UCN digits may not begin identifiers. */
- if (CPP_OPTION (pfile, c99) && (ucnranges[md].flags & DIG))
+ if (CPP_OPTION (pfile, c99) && (ucnranges[mn].flags & DIG))
return 2;
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
return 1;
}
@@ -781,10 +927,11 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c)
designates a character in the basic source character set, then the
program is ill-formed.
+ APPLE LOCAL begin mainline UCNs 2005-04-17 3892809
*PSTR must be preceded by "\u" or "\U"; it is assumed that the
- buffer end is delimited by a non-hex digit. Returns zero if UCNs
- are not part of the relevant standard, or if the string beginning
- at *PSTR doesn't syntactically match the form 'NNNN' or 'NNNNNNNN'.
+ buffer end is delimited by a non-hex digit. Returns zero if the
+ UCN has not been consumed.
+ APPLE LOCAL end mainline UCNs 2005-04-17 3892809
Otherwise the nonzero value of the UCN, whether valid or invalid,
is returned. Diagnostics are emitted for invalid values. PSTR
@@ -796,7 +943,10 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c)
cppchar_t
_cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
- const uchar *limit, int identifier_pos)
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ const uchar *limit, int identifier_pos,
+ struct normalize_state *nst)
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
{
cppchar_t result, c;
unsigned int length;
@@ -816,8 +966,13 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
else if (str[-1] == 'U')
length = 8;
else
- abort();
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ {
+ cpp_error (pfile, CPP_DL_ICE, "In _cpp_valid_ucn but not a UCN");
+ length = 4;
+ }
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
result = 0;
do
{
@@ -829,10 +984,16 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
}
while (--length && str < limit);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ /* Partial UCNs are not valid in strings, but decompose into
+ multiple tokens in identifiers, so we can't give a helpful
+ error message in that case. */
+ if (length && identifier_pos)
+ return 0;
+
*pstr = str;
if (length)
{
- /* We'll error when we try it out as the start of an identifier. */
cpp_error (pfile, CPP_DL_ERROR,
"incomplete universal character name %.*s",
(int) (str - base), base);
@@ -850,9 +1011,19 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
(int) (str - base), base);
result = 1;
}
+ else if (identifier_pos && result == 0x24
+ && CPP_OPTION (pfile, dollars_in_ident))
+ {
+ if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping)
+ {
+ CPP_OPTION (pfile, warn_dollars) = 0;
+ cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number");
+ }
+ NORMALIZE_STATE_UPDATE_IDNUM (nst);
+ }
else if (identifier_pos)
{
- int validity = ucn_valid_in_identifier (pfile, result);
+ int validity = ucn_valid_in_identifier (pfile, result, nst);
if (validity == 0)
cpp_error (pfile, CPP_DL_ERROR,
@@ -863,6 +1034,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
"universal character %.*s is not valid at the start of an identifier",
(int) (str - base), base);
}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
if (result == 0)
result = 1;
@@ -884,10 +1056,13 @@ convert_ucn (cpp_reader *pfile, const uchar *from, const uchar *limit,
int rval;
struct cset_converter cvt
= wide ? pfile->wide_cset_desc : pfile->narrow_cset_desc;
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
from++; /* Skip u/U. */
- ucn = _cpp_valid_ucn (pfile, &from, limit, 0);
+ ucn = _cpp_valid_ucn (pfile, &from, limit, 0, &nst);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
rval = one_cppchar_to_utf8 (ucn, &bufp, &bytesleft);
if (rval)
{
@@ -1137,7 +1312,8 @@ convert_escape (cpp_reader *pfile, const uchar *from, const uchar *limit,
false for failure. */
bool
cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
- cpp_string *to, bool wide)
+ /* APPLE LOCAL pascal strings */
+ cpp_string *to, bool wide, bool pascal_p)
{
struct _cpp_strbuf tbuf;
const uchar *p, *base, *limit;
@@ -1147,7 +1323,8 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
tbuf.asize = MAX (OUTBUF_BLOCK_SIZE, from->len);
tbuf.text = xmalloc (tbuf.asize);
- tbuf.len = 0;
+ /* APPLE LOCAL pascal strings */
+ tbuf.len = (pascal_p ? 1 : 0); /* Reserve space for Pascal length byte. */
for (i = 0; i < count; i++)
{
@@ -1155,6 +1332,13 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
if (*p == 'L') p++;
p++; /* Skip leading quote. */
limit = from[i].text + from[i].len - 1; /* Skip trailing quote. */
+ /* APPLE LOCAL begin pascal strings */
+ /* Handle narrow literals beginning with "\p..." specially, but only
+ if '-fpascal-strings' has been specified. */
+ if (pascal_p && p[0] == '\\' && p[1] == 'p')
+ p += 2;
+ /* APPLE LOCAL end pascal strings */
+
for (;;)
{
@@ -1174,6 +1358,17 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
p = convert_escape (pfile, p + 1, limit, &tbuf, wide);
}
}
+
+ /* APPLE LOCAL begin pascal strings */
+ /* For Pascal strings, compute the length byte. */
+ if (pascal_p)
+ {
+ *tbuf.text = (unsigned char) (tbuf.len - 1);
+ if (tbuf.len > 256)
+ cpp_error (pfile, CPP_DL_ERROR, "Pascal string is too long");
+ }
+ /* APPLE LOCAL end pascal strings */
+
/* NUL-terminate the 'to' buffer and translate it to a cpp_string
structure. */
emit_numeric_escape (pfile, 0, &tbuf, wide);
@@ -1192,7 +1387,10 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
in a string, but do not perform character set conversion. */
bool
cpp_interpret_string_notranslate (cpp_reader *pfile, const cpp_string *from,
- size_t count, cpp_string *to, bool wide)
+ /* APPLE LOCAL begin pascal strings */
+ size_t count, cpp_string *to, bool wide,
+ bool pascal_p)
+ /* APPLE LOCAL end pascal strings */
{
struct cset_converter save_narrow_cset_desc = pfile->narrow_cset_desc;
bool retval;
@@ -1200,7 +1398,8 @@ cpp_interpret_string_notranslate (cpp_reader *pfile, const cpp_string *from,
pfile->narrow_cset_desc.func = convert_no_conversion;
pfile->narrow_cset_desc.cd = (iconv_t) -1;
- retval = cpp_interpret_string (pfile, from, count, to, wide);
+ /* APPLE LOCAL pascal strings */
+ retval = cpp_interpret_string (pfile, from, count, to, wide, pascal_p);
pfile->narrow_cset_desc = save_narrow_cset_desc;
return retval;
@@ -1248,7 +1447,10 @@ narrow_str_to_charconst (cpp_reader *pfile, cpp_string str,
cpp_error (pfile, CPP_DL_WARNING,
"character constant too long for its type");
}
- else if (i > 1 && CPP_OPTION (pfile, warn_multichar))
+ /* APPLE LOCAL begin -Wfour-char-constants */
+ else if ((i == 4 && CPP_OPTION (pfile, warn_four_char_constants))
+ || (i > 1 && i != 4 && CPP_OPTION (pfile, warn_multichar)))
+ /* APPLE LOCAL end -Wfour-char-constants */
cpp_error (pfile, CPP_DL_WARNING, "multi-character character constant");
/* Multichar constants are of type int and therefore signed. */
@@ -1344,7 +1546,8 @@ cpp_interpret_charconst (cpp_reader *pfile, const cpp_token *token,
cpp_error (pfile, CPP_DL_ERROR, "empty character constant");
return 0;
}
- else if (!cpp_interpret_string (pfile, &token->val.str, 1, &str, wide))
+ /* APPLE LOCAL pascal strings */
+ else if (!cpp_interpret_string (pfile, &token->val.str, 1, &str, wide, false))
return 0;
if (wide)
@@ -1357,7 +1560,62 @@ cpp_interpret_charconst (cpp_reader *pfile, const cpp_token *token,
return result;
}
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+
+/* Convert an identifier denoted by ID and LEN, which might contain
+ UCN escapes, to the source character set, either UTF-8 or
+ UTF-EBCDIC. Assumes that the identifier is actually a valid identifier. */
+cpp_hashnode *
+_cpp_interpret_identifier (cpp_reader *pfile, const uchar *id, size_t len)
+{
+ /* It turns out that a UCN escape always turns into fewer characters
+ than the escape itself, so we can allocate a temporary in advance. */
+ uchar * buf = alloca (len + 1);
+ uchar * bufp = buf;
+ size_t idp;
+
+ for (idp = 0; idp < len; idp++)
+ if (id[idp] != '\\')
+ *bufp++ = id[idp];
+ else
+ {
+ unsigned length = id[idp+1] == 'u' ? 4 : 8;
+ cppchar_t value = 0;
+ size_t bufleft = len - (bufp - buf);
+ int rval;
+
+ idp += 2;
+ while (length && idp < len && ISXDIGIT (id[idp]))
+ {
+ value = (value << 4) + hex_value (id[idp]);
+ idp++;
+ length--;
+ }
+ idp--;
+
+ /* Special case for EBCDIC: if the identifier contains
+ a '$' specified using a UCN, translate it to EBCDIC. */
+ if (value == 0x24)
+ {
+ *bufp++ = '$';
+ continue;
+ }
+
+ rval = one_cppchar_to_utf8 (value, &bufp, &bufleft);
+ if (rval)
+ {
+ errno = rval;
+ cpp_errno (pfile, CPP_DL_ERROR,
+ "converting UCN to source character set");
+ break;
+ }
+ }
+ return CPP_HASHNODE (ht_lookup (pfile->hash_table,
+ buf, bufp - buf, HT_ALLOC));
+}
+
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
/* Convert an input buffer (containing the complete contents of one
source file) from INPUT_CHARSET to the source character set. INPUT
points to the input buffer, SIZE is its allocated size, and LEN is
@@ -1405,7 +1663,15 @@ _cpp_convert_input (cpp_reader *pfile, const char *input_charset,
if (to.len + 4096 < to.asize || to.len >= to.asize)
to.text = xrealloc (to.text, to.len + 1);
- to.text[to.len] = '\n';
+ /* If the file is using old-school Mac line endings (\r only),
+ terminate with another \r, not an \n, so that we do not mistake
+ the \r\n sequence for a single DOS line ending and erroneously
+ issue the "No newline at end of file" diagnostic. */
+ if (to.text[to.len - 1] == '\r')
+ to.text[to.len] = '\r';
+ else
+ to.text[to.len] = '\n';
+
*st_size = to.len;
return to.text;
}
diff --git a/libcpp/configure b/libcpp/configure
index b8c2c5a4cce..41798a61bff 100755
--- a/libcpp/configure
+++ b/libcpp/configure
@@ -7181,12 +7181,14 @@ fi
case $target in
+ # APPLE LOCAL begin 4126124
alpha*-*-* | \
arm*-*-eabi* | \
arm*-*-symbianelf* | \
x86_64-*-* | \
ia64-*-* | \
hppa*64*-*-* | parisc*64*-*-* | \
+ i[34567]86-*-darwin[0-9]* | \
i[34567]86-*-solaris2.1[0-9]* | \
mips*-*-* | \
mmix-*-* | \
@@ -7195,8 +7197,9 @@ case $target in
s390*-*-* | \
sparc64*-*-* | ultrasparc-*-freebsd* | \
sparcv9-*-solaris2* | \
- sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9] | \
+ sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9]* | \
sh[123456789l]*-*-*)
+ # APPLE LOCAL end 4126124
need_64bit_hwint=yes ;;
*)
need_64bit_hwint=no ;;
diff --git a/libcpp/configure.ac b/libcpp/configure.ac
index b268d8d76bc..98b3d9b27c0 100644
--- a/libcpp/configure.ac
+++ b/libcpp/configure.ac
@@ -103,12 +103,14 @@ fi
m4_changequote(,)
case $target in
+ # APPLE LOCAL begin 4126124
alpha*-*-* | \
arm*-*-eabi* | \
arm*-*-symbianelf* | \
x86_64-*-* | \
ia64-*-* | \
hppa*64*-*-* | parisc*64*-*-* | \
+ i[34567]86-*-darwin[0-9]* | \
i[34567]86-*-solaris2.1[0-9]* | \
mips*-*-* | \
mmix-*-* | \
@@ -117,8 +119,9 @@ case $target in
s390*-*-* | \
sparc64*-*-* | ultrasparc-*-freebsd* | \
sparcv9-*-solaris2* | \
- sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9] | \
+ sparc-*-solaris2.[789] | sparc-*-solaris2.1[0-9]* | \
sh[123456789l]*-*-*)
+ # APPLE LOCAL end 4126124
need_64bit_hwint=yes ;;
*)
need_64bit_hwint=no ;;
diff --git a/libcpp/directives.c b/libcpp/directives.c
index 8a6d45ac191..c356beda668 100644
--- a/libcpp/directives.c
+++ b/libcpp/directives.c
@@ -66,12 +66,20 @@ struct pragma_entry
means this directive should be handled even if -fpreprocessed is in
effect (these are the directives with callback hooks).
+ APPLE LOCAL begin pch distcc --mrs
+ IN_I_PCH means that this directive should be handled even if
+ -fpreprocessed is in effect as long as pch_preprocess is also in
+ effect.
+ APPLE LOCAL end pch distcc --mrs
+
EXPAND is set on directives that are always macro-expanded. */
#define COND (1 << 0)
#define IF_COND (1 << 1)
#define INCL (1 << 2)
#define IN_I (1 << 3)
#define EXPAND (1 << 4)
+/* APPLE LOCAL pch distcc --mrs */
+#define IN_I_PCH (1 << 5)
/* Defines one #-directive, including how to handle it. */
typedef void (*directive_handler) (cpp_reader *);
@@ -141,6 +149,8 @@ static void handle_assertion (cpp_reader *, const char *, int);
#define DIRECTIVE_TABLE \
D(define, T_DEFINE = 0, KANDR, IN_I) /* 270554 */ \
D(include, T_INCLUDE, KANDR, INCL | EXPAND) /* 52262 */ \
+/* APPLE LOCAL pch distcc --mrs */ \
+D(include_pch, T_INCLUDE_PCH, KANDR, INCL | IN_I_PCH) \
D(endif, T_ENDIF, KANDR, COND) /* 45855 */ \
D(ifdef, T_IFDEF, KANDR, COND | IF_COND) /* 22000 */ \
D(if, T_IF, KANDR, COND | IF_COND | EXPAND) /* 18162 */ \
@@ -212,7 +222,10 @@ skip_rest_of_line (cpp_reader *pfile)
static void
check_eol (cpp_reader *pfile)
{
- if (! SEEN_EOL () && _cpp_lex_token (pfile)->type != CPP_EOF)
+ /* APPLE LOCAL begin -Wextra-tokens 2001-08-02 --sts */
+ if (! SEEN_EOL () && _cpp_lex_token (pfile)->type != CPP_EOF
+ && CPP_OPTION (pfile, warn_extra_tokens))
+ /* APPLE LOCAL end -Wextra-tokens 2001-08-02 --sts */
cpp_error (pfile, CPP_DL_PEDWARN, "extra tokens at end of #%s directive",
pfile->directive->name);
}
@@ -385,7 +398,11 @@ _cpp_handle_directive (cpp_reader *pfile, int indented)
-fpreprocessed mode only if the # is in column 1. macro.c
puts a space in front of any '#' at the start of a macro. */
if (CPP_OPTION (pfile, preprocessed)
- && (indented || !(dir->flags & IN_I)))
+ /* APPLE LOCAL begin pch distcc --mrs */
+ && (indented || !(dir->flags & IN_I))
+ && ! (CPP_OPTION (pfile, pch_preprocess)
+ && (dir->flags & IN_I_PCH)))
+ /* APPLE LOCAL end pch distcc --mrs */
{
skip = 0;
dir = 0;
@@ -608,7 +625,10 @@ glue_header_name (cpp_reader *pfile)
if (token->flags & PREV_WHITE)
buffer[total_len++] = ' ';
- total_len = (cpp_spell_token (pfile, token, (uchar *) &buffer[total_len])
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ total_len = (cpp_spell_token (pfile, token, (uchar *) &buffer[total_len],
+ true)
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
- (uchar *) buffer);
}
@@ -700,6 +720,14 @@ do_include (cpp_reader *pfile)
do_include_common (pfile, IT_INCLUDE);
}
+/* APPLE LOCAL begin pch distcc --mrs */
+static void
+do_include_pch (cpp_reader *pfile)
+{
+ do_include_common (pfile, IT_INCLUDE_PCH);
+}
+/* APPLE LOCAL end pch distcc --mrs */
+
static void
do_import (cpp_reader *pfile)
{
@@ -775,6 +803,11 @@ do_line (cpp_reader *pfile)
{
const struct line_maps *line_table = pfile->line_table;
const struct line_map *map = &line_table->maps[line_table->used - 1];
+
+ /* skip_rest_of_line() may cause line table to be realloc()ed so note down
+ sysp right now. */
+
+ unsigned char map_sysp = map->sysp;
const cpp_token *token;
const char *new_file = map->to_file;
unsigned long new_lineno;
@@ -802,7 +835,8 @@ do_line (cpp_reader *pfile)
{
cpp_string s = { 0, 0 };
if (cpp_interpret_string_notranslate (pfile, &token->val.str, 1,
- &s, false))
+ /* APPLE LOCAL pascal strings */
+ &s, false, false))
new_file = (const char *)s.text;
check_eol (pfile);
}
@@ -815,7 +849,7 @@ do_line (cpp_reader *pfile)
skip_rest_of_line (pfile);
_cpp_do_file_change (pfile, LC_RENAME, new_file, new_lineno,
- map->sysp);
+ map_sysp);
}
/* Interpret the # 44 "file" [flags] notation, which has slightly
@@ -855,7 +889,8 @@ do_linemarker (cpp_reader *pfile)
{
cpp_string s = { 0, 0 };
if (cpp_interpret_string_notranslate (pfile, &token->val.str,
- 1, &s, false))
+ /* APPLE LOCAL pascal strings */
+ 1, &s, false, false))
new_file = (const char *)s.text;
new_sysp = 0;
@@ -937,7 +972,14 @@ static void
do_warning (cpp_reader *pfile)
{
/* We want #warning diagnostics to be emitted in system headers too. */
- do_diagnostic (pfile, CPP_DL_WARNING_SYSHDR, 1);
+ /* APPLE LOCAL begin handle -Wno-system-headers (2910306) --ilr */
+ /* Unless explicitly suppressed with -Wno-system-headers or
+ -Wno-#warning. */
+ if (!CPP_OPTION (pfile, no_pound_warnings)
+ && (!CPP_IN_SYSTEM_HEADER (pfile)
+ || CPP_OPTION (pfile, warn_system_headers)))
+ do_diagnostic (pfile, CPP_DL_WARNING_SYSHDR, 1);
+ /* APPLE LOCAL end handle -Wno-system-headers (2910306) --ilr */
}
/* Report program identification. */
@@ -1562,7 +1604,10 @@ do_else (cpp_reader *pfile)
ifs->mi_cmacro = 0;
/* Only check EOL if was not originally skipping. */
- if (!ifs->was_skipping && CPP_OPTION (pfile, warn_endif_labels))
+ /* APPLE LOCAL begin -Wextra-tokens */
+ if (!ifs->was_skipping
+ && (CPP_OPTION (pfile, warn_endif_labels) || CPP_OPTION (pfile, warn_extra_tokens)))
+ /* APPLE LOCAL end -Wextra-tokens */
check_eol (pfile);
}
}
@@ -1615,7 +1660,10 @@ do_endif (cpp_reader *pfile)
else
{
/* Only check EOL if was not originally skipping. */
- if (!ifs->was_skipping && CPP_OPTION (pfile, warn_endif_labels))
+ /* APPLE LOCAL begin -Wextra-tokens */
+ if (!ifs->was_skipping
+ && (CPP_OPTION (pfile, warn_endif_labels) || CPP_OPTION (pfile, warn_extra_tokens)))
+ /* APPLE LOCAL end -Wextra-tokens */
check_eol (pfile);
/* If potential control macro, we go back outside again. */
@@ -2002,6 +2050,20 @@ cpp_get_options (cpp_reader *pfile)
return &pfile->opts;
}
+/* APPLE LOCAL begin predictive compilation */
+void
+set_stdin_option (cpp_reader *pfile, int predict_comp_size)
+{
+ if (! CPP_OPTION (pfile, preprocessed))
+ {
+ /* -fpreprocessed -fpredictive-compilation=n: compiler is reading from
+ the processed file in this case. */
+ CPP_OPTION (pfile, predictive_compilation) = true;
+ CPP_OPTION (pfile, predictive_compilation_size) = predict_comp_size;
+ }
+}
+/* APPLE LOCAL end predictive compilation */
+
/* The callbacks structure. */
cpp_callbacks *
cpp_get_callbacks (cpp_reader *pfile)
diff --git a/libcpp/errors.c b/libcpp/errors.c
index 2aa814016a1..98d309a0e6a 100644
--- a/libcpp/errors.c
+++ b/libcpp/errors.c
@@ -28,6 +28,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "cpplib.h"
#include "internal.h"
+/* APPLE LOCAL error-colon */
+static int gcc_error_colon = 0;
static void print_location (cpp_reader *, source_location, unsigned int);
/* Print the logical file location (LINE, COL) in preparation for a
@@ -37,6 +39,23 @@ static void print_location (cpp_reader *, source_location, unsigned int);
static void
print_location (cpp_reader *pfile, source_location line, unsigned int col)
{
+ /* APPLE LOCAL begin error-colon */
+ const char *estr;
+ {
+ static int done = 0;
+ if ( ! done)
+ {
+ done = 1; /* Do this only once. */
+ /* Pretend we saw "-w" on commandline. */
+ if (getenv ("GCC_DASH_W"))
+ CPP_OPTION (pfile, inhibit_warnings) = 1; /* referenced by diagnostic.h:diagnostic_report_warnings() */
+ if (getenv ("GCC_ERROR_COLON"))
+ gcc_error_colon = 1;
+ }
+ }
+ estr = (gcc_error_colon) ? "error:" : "" ;
+ /* APPLE LOCAL end error-colon */
+
if (line == 0)
fprintf (stderr, "%s: ", progname);
else
@@ -55,12 +74,14 @@ print_location (cpp_reader *pfile, source_location line, unsigned int col)
col = 1;
}
+ /* APPLE LOCAL begin error-colon */
if (lin == 0)
- fprintf (stderr, "%s:", map->to_file);
+ fprintf (stderr, "%s:%s", map->to_file, estr);
else if (CPP_OPTION (pfile, show_column) == 0)
- fprintf (stderr, "%s:%u:", map->to_file, lin);
+ fprintf (stderr, "%s:%u:%s", map->to_file, lin, estr);
else
- fprintf (stderr, "%s:%u:%u:", map->to_file, lin, col);
+ fprintf (stderr, "%s:%u:%u:%s", map->to_file, lin, col, estr);
+ /* APPLE LOCAL end error-colon */
fputc (' ', stderr);
}
diff --git a/libcpp/files.c b/libcpp/files.c
index 593e5ebf0c8..0ea5722c02f 100644
--- a/libcpp/files.c
+++ b/libcpp/files.c
@@ -36,7 +36,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
# define FAB_C_VAR 2 /* variable length records (see Starlet fabdef.h) */
# define STAT_SIZE_RELIABLE(ST) ((ST).st_fab_rfm != FAB_C_VAR)
#else
-# define STAT_SIZE_RELIABLE(ST) true
+/* APPLE LOCAL begin predictive compilation */
+# define STAT_SIZE_RELIABLE(ST) (!CPP_OPTION (pfile, predictive_compilation))
+/* APPLE LOCAL end predictive compilation */
#endif
#ifdef __DJGPP__
@@ -177,6 +179,11 @@ static int pchf_save_compare (const void *e1, const void *e2);
static int pchf_compare (const void *d_p, const void *e_p);
static bool check_file_against_entries (cpp_reader *, _cpp_file *, bool);
+/* APPLE LOCAL begin distcc pch indirection --mrs */
+#include <sys/param.h>
+char *indirect_file (char *, const int);
+/* APPLE LOCAL end distcc pch indirection --mrs */
+
/* Given a filename in FILE->PATH, with the empty string interpreted
as <stdin>, open it.
@@ -248,9 +255,11 @@ pch_open_file (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
struct stat st;
bool valid = false;
- /* No PCH on <stdin> or if not requested. */
- if (file->name[0] == '\0' || !pfile->cb.valid_pch)
+ /* APPLE LOCAL begin predictive compilation */
+ /* No PCH on <stdin> or if predictive compilation or if not requested. */
+ if (pfile->is_main_file || file->name[0] == '\0' || !pfile->cb.valid_pch)
return false;
+ /* APPLE LOCAL end predictive compilation */
flen = strlen (path);
len = flen + sizeof (extension);
@@ -258,6 +267,11 @@ pch_open_file (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
memcpy (pchname, path, flen);
memcpy (pchname + flen, extension, sizeof (extension));
+ /* APPLE LOCAL begin distcc pch indirection --mrs */
+ if (! file->main_file)
+ pchname = indirect_file (pchname, 0);
+ /* APPLE LOCAL end distcc pch indirection --mrs */
+
if (stat (pchname, &st) == 0)
{
DIR *pchdir;
@@ -321,11 +335,21 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
if (path)
{
+ /* APPLE LOCAL predictive compilation */
+ bool res_open_file;
file->path = path;
if (pch_open_file (pfile, file, invalid_pch))
return true;
- if (open_file (file))
+ /* APPLE LOCAL begin predictive compilation */
+ /* Temporary path change to force opening stdin */
+ if (pfile->is_main_file)
+ file->path = "";
+ res_open_file = open_file (file);
+ file->path = path;
+
+ if (res_open_file)
+ /* APPLE LOCAL end predictive compilation */
return true;
if (file->err_no != ENOENT)
@@ -542,6 +566,17 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file)
size = file->st.st_size;
}
+ /* APPLE LOCAL begin predictive compilation */
+ else
+ if (CPP_OPTION (pfile, predictive_compilation))
+ {
+ size = CPP_OPTION (pfile, predictive_compilation_size);
+ regular = size >= 0;
+ if (size < 0)
+ size = 8 * 1024;
+ CPP_OPTION(pfile, predictive_compilation_size) = -1;
+ }
+ /* APPLE LOCAL end predictive compilation */
else
/* 8 kilobytes is a sensible starting size. It ought to be bigger
than the kernel pipe buffer, and it's definitely bigger than
@@ -601,8 +636,13 @@ read_file (cpp_reader *pfile, _cpp_file *file)
}
file->dont_read = !read_file_guts (pfile, file);
- close (file->fd);
- file->fd = -1;
+ /* APPLE LOCAL begin predictive compilation */
+ if (file->fd != 0) /* Don't close stdin */
+ {
+ close (file->fd);
+ file->fd = -1;
+ }
+ /* APPLE LOCAL end predictive compilation */
return !file->dont_read;
}
@@ -974,6 +1014,22 @@ new_file_hash_entry (cpp_reader *pfile)
return &pfile->file_hash_entries[pfile->file_hash_entries_used++];
}
+/* APPLE LOCAL begin predictive compilation */
+bool read_from_stdin (cpp_reader *pfile)
+{
+ _cpp_file *file;
+
+ if (pfile->buffer->file->fd != 0)
+ return false;
+
+ file = pfile->main_file;
+ file->dont_read = !read_file_guts (pfile, file);
+ pfile->buffer->next_line = file->buffer;
+ pfile->buffer->rlimit = file->buffer + file->st.st_size;
+ return !file->dont_read;
+}
+/* APPLE LOCAL end predictive compilation */
+
/* Returns TRUE if a file FNAME has ever been successfully opened.
This routine is not intended to correctly handle filenames aliased
by links or redundant . or .. traversals etc. */
@@ -1615,3 +1671,145 @@ check_file_against_entries (cpp_reader *pfile ATTRIBUTE_UNUSED,
return bsearch (&d, pchf->entries, pchf->count, sizeof (struct pchf_entry),
pchf_compare) != NULL;
}
+
+/* APPLE LOCAL begin distcc pch indirection --mrs */
+static const char message_terminator = '\n';
+
+/* Communications routine to communicate with filename translation
+ server for distributed builds. This routine reads data from the
+ server. */
+
+static int
+read_from_parent (int fd, char *buffer, int size)
+{
+ int index = 0;
+ int result;
+
+ if (size <= 0)
+ return 0;
+
+ do {
+ result = read (fd, &buffer[index], size - index);
+
+ if (result <= 0 || index >= size )
+ return 0;
+ else
+ index += result;
+ } while (buffer[index - 1] != message_terminator);
+
+ /* Straighten out the string termination. */
+ buffer[index - 1] = '\0';
+
+ return 1;
+}
+
+/* Communications routine to communicate with filename translation server
+ for distributed builds. This routine writes data to the server. */
+
+static int
+write_to_parent (int fd, const char *message)
+{
+ int result;
+
+ if (message) {
+ const int length = strlen (message);
+ int index = 0;
+
+ while (index < length) {
+ result = write (fd, &message[index], length - index);
+
+ if (result < 0)
+ return 0;
+ else
+ index += result;
+ }
+ }
+
+ result = write (fd, &message_terminator, 1);
+
+ if (result < 0)
+ return 0;
+
+ return 1;
+}
+
+
+/* Initialize the filename translation service. */
+
+static int
+init_indirect_pipes (int *read_fd, int *write_fd)
+{
+ const char *file_indirect_pipes = getenv ("GCC_INDIRECT_FILES");
+ const char *protocol_operation = "VERS";
+ const char *protocol_version = "1";
+ char response[MAXPATHLEN];
+
+ if (!file_indirect_pipes)
+ return -1;
+
+ /* The environment variable indicates that the process that invoked
+ gcc would like to provide a different path for certain files.
+ This is mainly intended to be used with PCH headers and symbol
+ separation files (.cinfo) files under certain circumstances. */
+
+ if (sscanf (file_indirect_pipes, "%d, %d", read_fd, write_fd) != 2)
+ return -1;
+
+ /* Verify the protocol version. */
+ if (write_to_parent (*write_fd, protocol_operation))
+ if (write_to_parent (*write_fd, protocol_version))
+ if (read_from_parent (*read_fd, response, MAXPATHLEN))
+ if (strcmp ("OK", response) == 0)
+ return 1;
+
+ return -1;
+}
+
+/* Redirect file I/O at the direction of a translation server. fname
+ is the filename to transform. OPERATION is:
+
+ 0 for reading
+ 1 for writing
+ 2 for reading and writing */
+
+char *
+indirect_file (char *fname, int operation)
+{
+ static int indirection_initialized;
+ static int read_fd;
+ static int write_fd;
+ const char *operation_identifier = NULL;
+
+ if (!indirection_initialized)
+ indirection_initialized = init_indirect_pipes (&read_fd, &write_fd);
+
+ if (indirection_initialized != 1)
+ return fname;
+
+ switch (operation)
+ {
+ case 0:
+ operation_identifier = "PULL";
+ break;
+ case 1:
+ operation_identifier = "PUSH";
+ break;
+ case 2:
+ operation_identifier = "BOTH";
+ break;
+ default:
+ return fname;
+ }
+
+ if (write_to_parent (write_fd, operation_identifier))
+ if (write_to_parent (write_fd, fname))
+ {
+ char response[MAXPATHLEN];
+
+ if (read_from_parent (read_fd, response, MAXPATHLEN))
+ fname = xstrdup (response);
+ }
+
+ return fname;
+}
+/* APPLE LOCAL end distcc pch indirection --mrs */
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index c3814460705..bd88df4e559 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -129,8 +129,18 @@ struct _cpp_file;
TK(STRING, LITERAL) /* "string" */ \
TK(WSTRING, LITERAL) /* L"string" */ \
TK(OBJC_STRING, LITERAL) /* @"string" - Objective-C */ \
+ /* APPLE LOCAL pascal strings */ \
+ TK(PASCAL_STRING, LITERAL) /* Pascal ("\p...") string */ \
TK(HEADER_NAME, LITERAL) /* <stdio.h> in #include */ \
\
+ /* APPLE LOCAL begin CW asm blocks */ \
+ TK(BOL, LITERAL) /* asm bol */ \
+ TK(EOL, LITERAL) /* asm eol */ \
+ /* APPLE LOCAL end CW asm blocks */ \
+ /* APPLE LOCAL begin 4133801 */ \
+ TK(BINCL, LITERAL) /* File begin */ \
+ TK(EINCL, LITERAL) /* File end */ \
+ /* APPLE LOCAL end 4133801 */ \
TK(COMMENT, LITERAL) /* Only if output comments. */ \
/* SPELL_LITERAL happens to DTRT. */ \
TK(MACRO_ARG, NONE) /* Macro argument. */ \
@@ -236,6 +246,21 @@ typedef CPPCHAR_SIGNED_T cppchar_signed_t;
/* Style of header dependencies to generate. */
enum cpp_deps_style { DEPS_NONE = 0, DEPS_USER, DEPS_SYSTEM };
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* The possible normalization levels, from most restrictive to least. */
+enum cpp_normalize_level {
+ /* In NFKC. */
+ normalized_KC = 0,
+ /* In NFC. */
+ normalized_C,
+ /* In NFC, except for subsequences where being in NFC would make
+ the identifier invalid. */
+ normalized_identifier_C,
+ /* Not normalized at all. */
+ normalized_none
+};
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
+
/* This structure is nested inside struct cpp_reader, and
carries all the options visible to the command line. */
struct cpp_options
@@ -243,6 +268,11 @@ struct cpp_options
/* Characters between tab stops. */
unsigned int tabstop;
+ /* APPLE LOCAL begin predictive compilation */
+ bool predictive_compilation;
+ int predictive_compilation_size;
+ /* APPLE LOCAL end predictive compilation */
+
/* The language we're preprocessing. */
enum c_lang lang;
@@ -301,6 +331,27 @@ struct cpp_options
/* Nonzero means warn if there are any trigraphs. */
unsigned char warn_trigraphs;
+ /* APPLE LOCAL begin -Wextra-tokens 2001-08-02 --sts */
+ /* Nonzero means warn if extra tokens at end of directives. */
+ unsigned char warn_extra_tokens;
+ /* APPLE LOCAL end -Wextra-tokens 2001-08-02 --sts */
+ /* APPLE LOCAL begin -Wnewline-eof 2001-08-23 --sts */
+ /* Nonzero means warn if no newline at end of file. */
+ unsigned char warn_newline_at_eof;
+ /* APPLE LOCAL end -Wnewline-eof 2001-08-23 --sts */
+ /* APPLE LOCAL begin -Wfour-char-constants */
+ /* Warn about four-char literals (e.g., MacOS-style OSTypes: 'APPL'). */
+ unsigned char warn_four_char_constants;
+ /* APPLE LOCAL end -Wfour-char-constants */
+
+ /* APPLE LOCAL begin pascal strings */
+ /* Nonzero means allow "\p...." Pascal string literals, where '\p'
+ is replaced with the length of the remaining string (excluding the
+ terminating NUL). Pascal string literals have type
+ 'const unsigned char *'. */
+ unsigned char pascal_strings;
+ /* APPLE LOCAL end pascal strings */
+
/* Nonzero means warn about multicharacter charconsts. */
unsigned char warn_multichar;
@@ -361,6 +412,11 @@ struct cpp_options
/* Nonzero means handle C++ alternate operator names. */
unsigned char operator_names;
+ /* APPLE LOCAL begin -Wno-#warnings */
+ /* Nonzero means suppress all #warning messages. (Radar 2796309) */
+ int no_pound_warnings;
+ /* APPLE LOCAL end -Wno-#warnings */
+
/* True for traditional preprocessing. */
unsigned char traditional;
@@ -373,12 +429,32 @@ struct cpp_options
/* Holds the name of the input character set. */
const char *input_charset;
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ /* The minimum permitted level of normalization before a warning
+ is generated. */
+ enum cpp_normalize_level warn_normalize;
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
+
/* True to warn about precompiled header files we couldn't use. */
bool warn_invalid_pch;
/* True if dependencies should be restored from a precompiled header. */
bool restore_pch_deps;
+ /* APPLE LOCAL begin Symbol Separation */
+ unsigned char making_pch;
+ unsigned char making_ss;
+ /* True to warn about symbol repositories we couldn't use. */
+ bool warn_invalid_sr;
+ bool use_ss;
+ /* APPLE LOCAL end Symbol Separation */
+
+ /* APPLE LOCAL begin pch distcc --mrs */
+ /* True if PCH should omit from the -E output all lines from PCH files
+ found in PCH files. */
+ unsigned char pch_preprocess;
+ /* APPLE LOCAL end pch distcc --mrs */
+
/* Dependency generation. */
struct
{
@@ -447,6 +523,21 @@ struct cpp_callbacks
int (*valid_pch) (cpp_reader *, const char *, int);
void (*read_pch) (cpp_reader *, const char *, int, const char *);
missing_header_cb missing_header;
+
+ /* APPLE LOCAL begin Symbol Separation */
+ void (*restore_write_symbols) (void);
+ void (*clear_write_symbols) (const char *, unsigned long);
+ void (*start_symbol_repository) (unsigned int, const char *, unsigned long);
+ void (*end_symbol_repository) (unsigned int);
+ int (*is_builtin_identifier) (cpp_hashnode *);
+ /* APPLE LOCAL end Symbol Separation */
+ /* APPLE LOCAL - PCH distcc debugging --mrs */
+ void (*set_working_directory)(const char *);
+ /* APPLE LOCAL begin AltiVec */
+ /* Context-sensitive macro support. Returns macro (if any) that should
+ be expanded. */
+ cpp_hashnode * (*macro_to_expand) (cpp_reader *, const cpp_token *);
+ /* APPLE LOCAL end AltiVec */
};
/* Chain of directories to look for include files in. */
@@ -467,6 +558,13 @@ struct cpp_dir
platforms. A NULL-terminated array of (from, to) pairs. */
const char **name_map;
+ /* APPLE LOCAL begin headermaps 3871393 */
+ /* Arbitrary mapping of include strings to paths of redirected
+ files. Contents are a special data format -- see struct
+ hmap_header_map below. */
+ void *header_map;
+ /* APPLE LOCAL end headermaps 3871393 */
+
/* Routine to construct pathname, given the search path name and the
HEADER we are trying to find, return a constructed pathname to
try and open. If this is NULL, the constructed pathname is as
@@ -504,6 +602,8 @@ extern const char *progname;
#define NODE_WARN (1 << 4) /* Warn if redefined or undefined. */
#define NODE_DISABLED (1 << 5) /* A disabled macro. */
#define NODE_MACRO_ARG (1 << 6) /* Used during #define processing. */
+/* APPLE LOCAL AltiVec */
+#define NODE_CONDITIONAL (1 << 7) /* Conditional macro */
/* Different flavors of hash node. */
enum node_type
@@ -576,6 +676,20 @@ struct cpp_hashnode GTY(())
} GTY ((desc ("CPP_HASHNODE_VALUE_IDX (%1)"))) value;
};
+/* APPLE LOCAL begin Symbol Separation */
+struct cpp_stab_checksum GTY(())
+{
+ unsigned long checksum;
+};
+extern void cpp_write_symbol_deps PARAMS ((struct cpp_reader *));
+extern void cpp_read_stabs_checksum PARAMS ((struct cpp_reader *, int));
+extern unsigned long cpp_get_stabs_checksum PARAMS ((void));
+extern void cpp_calculate_stabs_checksum PARAMS ((const char *));
+extern const char * cpp_symbol_separation_init PARAMS ((struct cpp_reader *, const char *,
+ const char *));
+
+/* APPLE LOCAL end Symbol Separation */
+
/* Call this first to get a handle to pass to other functions.
If you want cpplib to manage its own hashtable, pass in a NULL
@@ -637,7 +751,8 @@ extern unsigned int cpp_errors (cpp_reader *);
extern unsigned int cpp_token_len (const cpp_token *);
extern unsigned char *cpp_token_as_text (cpp_reader *, const cpp_token *);
extern unsigned char *cpp_spell_token (cpp_reader *, const cpp_token *,
- unsigned char *);
+ /* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+ unsigned char *, bool);
extern void cpp_register_pragma (cpp_reader *, const char *, const char *,
void (*) (cpp_reader *), bool);
extern void cpp_handle_deferred_pragma (cpp_reader *, const cpp_string *);
@@ -646,6 +761,10 @@ extern int cpp_avoid_paste (cpp_reader *, const cpp_token *,
extern const cpp_token *cpp_get_token (cpp_reader *);
extern const unsigned char *cpp_macro_definition (cpp_reader *,
const cpp_hashnode *);
+/* APPLE LOCAL begin AltiVec */
+extern const cpp_token *_cpp_peek_token (cpp_reader *, int);
+extern void _cpp_backup_tokens_direct (cpp_reader *, unsigned int);
+/* APPLE LOCAL end AltiVec */
extern void _cpp_backup_tokens (cpp_reader *, unsigned int);
/* Evaluate a CPP_CHAR or CPP_WCHAR token. */
@@ -654,10 +773,15 @@ extern cppchar_t cpp_interpret_charconst (cpp_reader *, const cpp_token *,
/* Evaluate a vector of CPP_STRING or CPP_WSTRING tokens. */
extern bool cpp_interpret_string (cpp_reader *,
const cpp_string *, size_t,
- cpp_string *, bool);
+ /* APPLE LOCAL pascal strings */
+ cpp_string *, bool, bool);
extern bool cpp_interpret_string_notranslate (cpp_reader *,
const cpp_string *, size_t,
- cpp_string *, bool);
+ /* APPLE LOCAL pascal strings */
+ cpp_string *, bool, bool);
+
+/* Convert a host character constant to the execution character set. */
+extern cppchar_t cpp_host_to_exec_charset (cpp_reader *, cppchar_t);
/* Used to register macros and assertions, perhaps from the command line.
The text is the same as the command line argument. */
@@ -743,12 +867,6 @@ cpp_num cpp_num_sign_extend (cpp_num, size_t);
#define CPP_DL_WARNING_P(l) (CPP_DL_EXTRACT (l) >= CPP_DL_WARNING \
&& CPP_DL_EXTRACT (l) <= CPP_DL_PEDWARN)
-/* N.B. The error-message-printer prototypes have not been nicely
- formatted because exgettext needs to see 'msgid' on the same line
- as the name of the function in order to work properly. Only the
- string argument gets a name in an effort to keep the lines from
- getting ridiculously oversized. */
-
/* Output a diagnostic of some kind. */
extern void cpp_error (cpp_reader *, int, const char *msgid, ...)
ATTRIBUTE_PRINTF_3;
@@ -763,6 +881,40 @@ extern void cpp_errno (cpp_reader *, int, const char *msgid);
extern void cpp_error_with_line (cpp_reader *, int, source_location, unsigned,
const char *msgid, ...) ATTRIBUTE_PRINTF_5;
+/* APPLE LOCAL begin headermaps 3871393 */
+#define HMAP_SAME_ENDIANNESS_MAGIC (((((('h' << 8) | 'm') << 8) | 'a') << 8) | 'p')
+#define HMAP_OPPOSITE_ENDIANNESS_MAGIC (((((('p' << 8) | 'a') << 8) | 'm') << 8) | 'h')
+
+#define HMAP_NOT_A_KEY 0x00000000
+
+#if !defined(uint32)
+typedef unsigned short uint16;
+typedef unsigned long uint32;
+#endif
+
+struct hmap_bucket
+{
+ uint32 key; /* Offset (into strings) of key */
+ struct {
+ uint32 prefix; /* Offset (into strings) of value prefix */
+ uint32 suffix; /* Offset (into strings) of value suffix */
+ } value; /* Value (prefix- and suffix-strings) */
+};
+
+struct hmap_header_map
+{
+ uint32 magic; /* Magic word, also indicates byte order */
+ uint16 version; /* Version number -- currently 1 */
+ uint16 _reserved; /* Reserved for future use -- zero for now */
+ uint32 strings_offset; /* Offset to start of string pool */
+ uint32 count; /* Number of entries in the string table */
+ uint32 capacity; /* Number of buckets (always a power of 2) */
+ uint32 max_value_length; /* Length of longest result path (excl. '\0') */
+ struct hmap_bucket buckets[1]; /* Inline array of 'capacity' maptable buckets */
+ /* Strings follow the buckets, at strings_offset. */
+};
+/* APPLE LOCAL end headermaps 3871393 */
+
/* In cpplex.c */
extern int cpp_ideq (const cpp_token *, const char *);
extern void cpp_output_line (cpp_reader *, FILE *);
@@ -803,6 +955,11 @@ extern cpp_buffer *cpp_get_buffer (cpp_reader *);
extern struct _cpp_file *cpp_get_file (cpp_buffer *);
extern cpp_buffer *cpp_get_prev (cpp_buffer *);
+/* APPLE LOCAL begin predictive compilation */
+extern bool read_from_stdin PARAMS ((cpp_reader *));
+extern void set_stdin_option PARAMS ((cpp_reader *, int));
+/* APPLE LOCAL end predictive compilation */
+
/* In cpppch.c */
struct save_macro_data;
extern int cpp_save_state (cpp_reader *, FILE *);
diff --git a/libcpp/init.c b/libcpp/init.c
index 39e50f5a519..3bb61ae1223 100644
--- a/libcpp/init.c
+++ b/libcpp/init.c
@@ -140,6 +140,19 @@ cpp_create_reader (enum c_lang lang, hash_table *table,
pfile = xcalloc (1, sizeof (cpp_reader));
cpp_set_lang (pfile, lang);
+ /* APPLE LOCAL begin -Wextra-tokens 2001-08-01 --sts */
+ /* Suppress warnings about extra tokens after #endif etc. */
+ CPP_OPTION (pfile, warn_extra_tokens) = 0;
+ /* APPLE LOCAL end -Wextra-tokens 2001-08-01 --sts */
+ /* APPLE LOCAL begin -Wnewline-eof 2001-08-23 --sts */
+ /* Suppress warnings about missing newlines at ends of files. */
+ CPP_OPTION (pfile, warn_newline_at_eof) = 0;
+ /* APPLE LOCAL end -Wnewline-eof 2001-08-23 --sts */
+ /* APPLE LOCAL begin -Wfour-char-constants */
+ CPP_OPTION (pfile, warn_four_char_constants) = 1;
+ /* APPLE LOCAL end -Wfour-char-constants */
+ /* APPLE LOCAL pascal strings */
+ CPP_OPTION (pfile, pascal_strings) = 0;
CPP_OPTION (pfile, warn_multichar) = 1;
CPP_OPTION (pfile, discard_comments) = 1;
CPP_OPTION (pfile, discard_comments_in_macro_exp) = 1;
@@ -147,12 +160,18 @@ cpp_create_reader (enum c_lang lang, hash_table *table,
CPP_OPTION (pfile, tabstop) = 8;
CPP_OPTION (pfile, operator_names) = 1;
CPP_OPTION (pfile, warn_trigraphs) = 2;
- CPP_OPTION (pfile, warn_endif_labels) = 1;
- CPP_OPTION (pfile, warn_deprecated) = 1;
+ /* APPLE LOCAL begin -Wextra-tokens */
+ /* Suppress warnings about extra tokens after #endif etc. */
+ CPP_OPTION (pfile, warn_endif_labels) = 0;
+ /* APPLE LOCAL end -Wextra-tokens */
+ /* APPLE LOCAL suppress useful warnings */
+ CPP_OPTION (pfile, warn_deprecated) = 0;
CPP_OPTION (pfile, warn_long_long) = !CPP_OPTION (pfile, c99);
CPP_OPTION (pfile, dollars_in_ident) = 1;
CPP_OPTION (pfile, warn_dollars) = 1;
CPP_OPTION (pfile, warn_variadic_macros) = 1;
+ /* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+ CPP_OPTION (pfile, warn_normalize) = normalized_C;
/* Default CPP arithmetic to something sensible for the host for the
benefit of dumb users like fix-header. */
@@ -459,8 +478,14 @@ cpp_read_main_file (cpp_reader *pfile, const char *fname)
deps_add_default_target (pfile->deps, fname);
}
+ /* APPLE LOCAL begin predictive compilation */
+ pfile->is_main_file = CPP_OPTION (pfile, predictive_compilation);
+ /* APPLE LOCAL end predictive compilation */
pfile->main_file
= _cpp_find_file (pfile, fname, &pfile->no_search_path, false);
+ /* APPLE LOCAL begin predictive compilation */
+ pfile->is_main_file = false;
+ /* APPLE LOCAL end predictive compilation */
if (_cpp_find_failed (pfile->main_file))
return NULL;
diff --git a/libcpp/internal.h b/libcpp/internal.h
index 0ae13d58cb6..9c6951f0501 100644
--- a/libcpp/internal.h
+++ b/libcpp/internal.h
@@ -115,7 +115,8 @@ extern unsigned char *_cpp_unaligned_alloc (cpp_reader *, size_t);
#define BUFF_LIMIT(BUFF) ((BUFF)->limit)
/* #include types. */
-enum include_type {IT_INCLUDE, IT_INCLUDE_NEXT, IT_IMPORT, IT_CMDLINE};
+/* APPLE LOCAL pch distcc --mrs */
+enum include_type {IT_INCLUDE, IT_INCLUDE_PCH, IT_INCLUDE_NEXT, IT_IMPORT, IT_CMDLINE};
union utoken
{
@@ -171,6 +172,11 @@ struct cpp_context
/* True if utoken element is token, else ptoken. */
bool direct_p;
+
+ /* APPLE LOCAL begin CW asm blocks */
+ /* True if this expansion is at the beginning of a line. */
+ bool bol_p;
+ /* APPLE LOCAL end CW asm blocks */
};
struct lexer_state
@@ -341,6 +347,9 @@ struct cpp_reader
struct _cpp_file *all_files;
struct _cpp_file *main_file;
+ /* APPLE LOCAL begin predictive compilation */
+ bool is_main_file;
+ /* APPLE LOCAL end predictive compilation */
/* File and directory hash table. */
struct htab *file_hash;
@@ -472,6 +481,10 @@ extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
/* Macros. */
+/* APPLE LOCAL begin warning in system headers */
+#define CPP_IN_SYSTEM_HEADER(PFILE) ((PFILE)->line_table && (PFILE)->line_table->maps && (PFILE)->line_table->maps->sysp)
+/* APPLE LOCAL end warning in system headers */
+
static inline int cpp_in_system_header (cpp_reader *);
static inline int
cpp_in_system_header (cpp_reader *pfile)
@@ -564,13 +577,43 @@ extern unsigned char *_cpp_copy_replacement_text (const cpp_macro *,
extern size_t _cpp_replacement_text_len (const cpp_macro *);
/* In charset.c. */
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+
+/* The normalization state at this point in the sequence.
+ It starts initialized to all zeros, and at the end
+ 'level' is the normalization level of the sequence. */
+
+struct normalize_state
+{
+ /* The previous character. */
+ cppchar_t previous;
+ /* The combining class of the previous character. */
+ unsigned char prev_class;
+ /* The lowest normalization level so far. */
+ enum cpp_normalize_level level;
+};
+#define INITIAL_NORMALIZE_STATE { 0, 0, normalized_KC }
+#define NORMALIZE_STATE_RESULT(st) ((st)->level)
+
+/* We saw a character that matches ISIDNUM(), update a
+ normalize_state appropriately. */
+#define NORMALIZE_STATE_UPDATE_IDNUM(st) \
+ ((st)->previous = 0, (st)->prev_class = 0)
+
extern cppchar_t _cpp_valid_ucn (cpp_reader *, const unsigned char **,
- const unsigned char *, int);
+ const unsigned char *, int,
+ struct normalize_state *state);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
extern void _cpp_destroy_iconv (cpp_reader *);
extern unsigned char *_cpp_convert_input (cpp_reader *, const char *,
unsigned char *, size_t, size_t,
off_t *);
extern const char *_cpp_default_encoding (void);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+extern cpp_hashnode * _cpp_interpret_identifier (cpp_reader *pfile,
+ const unsigned char *id,
+ size_t len);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
/* Utility routines and macros. */
#define DSC(str) (const unsigned char *)str, sizeof str - 1
diff --git a/libcpp/lex.c b/libcpp/lex.c
index 62a28f81b87..72c974a87e0 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -24,6 +24,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "cpplib.h"
#include "internal.h"
+/* APPLE LOCAL begin CW asm blocks */
+/* A hack that would be better done with a callback or some such. */
+extern enum cw_asm_states { cw_asm_none, cw_asm_decls, cw_asm_asm } cw_asm_state;
+extern int cw_asm_in_operands;
+/* APPLE LOCAL end CW asm blocks */
+
enum spell_type
{
SPELL_OPERATOR = 0,
@@ -53,9 +59,8 @@ static const struct token_spelling token_spellings[N_TTYPES] = { TTYPE_TABLE };
static void add_line_note (cpp_buffer *, const uchar *, unsigned int);
static int skip_line_comment (cpp_reader *);
static void skip_whitespace (cpp_reader *, cppchar_t);
-static cpp_hashnode *lex_identifier (cpp_reader *, const uchar *);
-static void lex_number (cpp_reader *, cpp_string *);
-static bool forms_identifier_p (cpp_reader *, int);
+/* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+/* Delete prototypes for lex_identifier, lex_number, forms_identifier_p */
static void lex_string (cpp_reader *, cpp_token *, const uchar *);
static void save_comment (cpp_reader *, cpp_token *, const uchar *, cppchar_t);
static void create_literal (cpp_reader *, cpp_token *, const uchar *,
@@ -430,10 +435,40 @@ name_p (cpp_reader *pfile, const cpp_string *string)
return 1;
}
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* After parsing an identifier or other sequence, produce a warning about
+ sequences not in NFC/NFKC. */
+static void
+warn_about_normalization (cpp_reader *pfile,
+ const cpp_token *token,
+ const struct normalize_state *s)
+{
+ if (CPP_OPTION (pfile, warn_normalize) < NORMALIZE_STATE_RESULT (s)
+ && !pfile->state.skipping)
+ {
+ /* Make sure that the token is printed using UCNs, even
+ if we'd otherwise happily print UTF-8. */
+ unsigned char *buf = xmalloc (cpp_token_len (token));
+ size_t sz;
+
+ sz = cpp_spell_token (pfile, token, buf, false) - buf;
+ if (NORMALIZE_STATE_RESULT (s) == normalized_C)
+ cpp_error_with_line (pfile, CPP_DL_WARNING, token->src_loc, 0,
+ "`%.*s' is not in NFKC", (int) sz, buf);
+ else
+ cpp_error_with_line (pfile, CPP_DL_WARNING, token->src_loc, 0,
+ "`%.*s' is not in NFC", (int) sz, buf);
+ }
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
+
/* Returns TRUE if the sequence starting at buffer->cur is invalid in
an identifier. FIRST is TRUE if this starts an identifier. */
static bool
-forms_identifier_p (cpp_reader *pfile, int first)
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+forms_identifier_p (cpp_reader *pfile, int first,
+ struct normalize_state *state)
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
{
cpp_buffer *buffer = pfile->buffer;
@@ -453,54 +488,76 @@ forms_identifier_p (cpp_reader *pfile, int first)
}
/* Is this a syntactically valid UCN? */
- if (0 && *buffer->cur == '\\'
+ /* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ if ((CPP_OPTION (pfile, cplusplus) || CPP_OPTION (pfile, c99))
+ && *buffer->cur == '\\'
&& (buffer->cur[1] == 'u' || buffer->cur[1] == 'U'))
{
buffer->cur += 2;
- if (_cpp_valid_ucn (pfile, &buffer->cur, buffer->rlimit, 1 + !first))
+ if (_cpp_valid_ucn (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
+ state))
return true;
buffer->cur -= 2;
}
+ /* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
+
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Allow [.+-] in CW asm opcodes (PowerPC specific). Do this here
+ so we don't have to figure out "bl- 45" vs "bl -45". */
+ if (cw_asm_state >= cw_asm_decls
+ && !cw_asm_in_operands
+ && (*buffer->cur == '.' || *buffer->cur == '+' || *buffer->cur == '-'))
+ {
+ buffer->cur++;
+ return true;
+ }
+ /* APPLE LOCAL end CW asm blocks */
return false;
}
/* Lex an identifier starting at BUFFER->CUR - 1. */
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
static cpp_hashnode *
-lex_identifier (cpp_reader *pfile, const uchar *base)
+lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
+ struct normalize_state *nst)
{
cpp_hashnode *result;
- const uchar *cur, *limit;
+ const uchar *cur;
unsigned int len;
unsigned int hash = HT_HASHSTEP (0, *base);
cur = pfile->buffer->cur;
- for (;;)
+ if (! starts_ucn)
+ while (ISIDNUM (*cur))
+ {
+ hash = HT_HASHSTEP (hash, *cur);
+ cur++;
+ }
+ pfile->buffer->cur = cur;
+ if (starts_ucn || forms_identifier_p (pfile, false, nst))
{
- /* N.B. ISIDNUM does not include $. */
- while (ISIDNUM (*cur))
- {
- hash = HT_HASHSTEP (hash, *cur);
- cur++;
- }
-
- pfile->buffer->cur = cur;
- if (!forms_identifier_p (pfile, false))
- break;
-
- limit = pfile->buffer->cur;
- while (cur < limit)
- {
- hash = HT_HASHSTEP (hash, *cur);
- cur++;
- }
+ /* Slower version for identifiers containing UCNs (or $). */
+ do {
+ while (ISIDNUM (*pfile->buffer->cur))
+ {
+ pfile->buffer->cur++;
+ NORMALIZE_STATE_UPDATE_IDNUM (nst);
+ }
+ } while (forms_identifier_p (pfile, false, nst));
+ result = _cpp_interpret_identifier (pfile, base,
+ pfile->buffer->cur - base);
}
- len = cur - base;
- hash = HT_HASHFINISH (hash, len);
+ else
+ {
+ len = cur - base;
+ hash = HT_HASHFINISH (hash, len);
- result = (cpp_hashnode *)
- ht_lookup_with_hash (pfile->hash_table, base, len, hash, HT_ALLOC);
+ result = (cpp_hashnode *)
+ ht_lookup_with_hash (pfile->hash_table, base, len, hash, HT_ALLOC);
+ }
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
/* Rarely, identifiers require diagnostics when lexed. */
if (__builtin_expect ((result->flags & NODE_DIAGNOSTIC)
&& !pfile->state.skipping, 0))
@@ -524,24 +581,32 @@ lex_identifier (cpp_reader *pfile, const uchar *base)
/* Lex a number to NUMBER starting at BUFFER->CUR - 1. */
static void
-lex_number (cpp_reader *pfile, cpp_string *number)
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+lex_number (cpp_reader *pfile, cpp_string *number,
+ struct normalize_state *nst)
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
{
const uchar *cur;
const uchar *base;
uchar *dest;
base = pfile->buffer->cur - 1;
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
do
{
cur = pfile->buffer->cur;
/* N.B. ISIDNUM does not include $. */
while (ISIDNUM (*cur) || *cur == '.' || VALID_SIGN (*cur, cur[-1]))
- cur++;
+ {
+ cur++;
+ NORMALIZE_STATE_UPDATE_IDNUM (nst);
+ }
pfile->buffer->cur = cur;
}
- while (forms_identifier_p (pfile, false));
+ while (forms_identifier_p (pfile, false, nst));
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
number->len = cur - base;
dest = _cpp_unaligned_alloc (pfile, number->len + 1);
@@ -681,6 +746,47 @@ next_tokenrun (tokenrun *run)
return run->next;
}
+/* APPLE LOCAL begin AltiVec */
+/* Look ahead in the input stream. */
+const cpp_token *
+_cpp_peek_token (cpp_reader *pfile, int index)
+{
+ cpp_context *context = pfile->context;
+ const cpp_token *peektok;
+ int count;
+
+ /* First, scan through any pending cpp_context objects. */
+ while (context->prev)
+ {
+ ptrdiff_t sz = (context->direct_p
+ ? LAST (context).token - FIRST (context).token
+ : LAST (context).ptoken - FIRST (context).ptoken);
+
+ if (index < (int) sz)
+ return (context->direct_p
+ ? FIRST (context).token + index
+ : *(FIRST (context).ptoken + index));
+
+ index -= (int) sz;
+ context = context->prev;
+ }
+
+ /* We will have to read some new tokens after all (and do so
+ without invalidating preceding tokens). */
+ count = index;
+ pfile->keep_tokens++;
+
+ do
+ peektok = _cpp_lex_token (pfile);
+ while (index--);
+
+ _cpp_backup_tokens_direct (pfile, count + 1);
+ pfile->keep_tokens--;
+
+ return peektok;
+}
+/* APPLE LOCAL end AltiVec */
+
/* Allocate a single token that is invalidated at the same time as the
rest of the tokens on the line. Has its line and col set to the
same as the last lexed token, so that diagnostics appear in the
@@ -689,9 +795,34 @@ cpp_token *
_cpp_temp_token (cpp_reader *pfile)
{
cpp_token *old, *result;
+ /* APPLE LOCAL begin AltiVec */
+ ptrdiff_t sz = pfile->cur_run->limit - pfile->cur_token;
+ ptrdiff_t la = (ptrdiff_t) pfile->lookaheads;
+ /* APPLE LOCAL end AltiVec */
old = pfile->cur_token - 1;
- if (pfile->cur_token == pfile->cur_run->limit)
+ /* APPLE LOCAL begin AltiVec */
+ /* Any pre-existing lookaheads must not be clobbered. */
+ if (la)
+ {
+ if (sz <= la)
+ {
+ tokenrun *next = next_tokenrun (pfile->cur_run);
+
+ if (sz < la)
+ memmove (next->base + 1, next->base,
+ (la - sz) * sizeof (cpp_token));
+
+ next->base[0] = pfile->cur_run->limit[-1];
+ }
+
+ if (sz > 1)
+ memmove (pfile->cur_token + 1, pfile->cur_token,
+ MIN (la, sz - 1) * sizeof (cpp_token));
+ }
+
+ if (!sz)
+ /* APPLE LOCAL end AltiVec */
{
pfile->cur_run = next_tokenrun (pfile->cur_run);
pfile->cur_token = pfile->cur_run->base;
@@ -742,6 +873,11 @@ _cpp_lex_token (cpp_reader *pfile)
else
{
result = &pfile->directive_result;
+
+ /* APPLE LOCAL begin CW asm blocks C++ */
+ /* We put this back on the result. */
+ result->flags |= BOL;
+ /* APPLE LOCAL end CW asm blocks C++ */
break;
}
}
@@ -783,6 +919,12 @@ _cpp_get_fresh_line (cpp_reader *pfile)
if (!buffer->need_line)
return true;
+ /* APPLE LOCAL begin predictive compilation */
+ if (CPP_OPTION (pfile, predictive_compilation)
+ && buffer->next_line >= buffer->rlimit)
+ read_from_stdin (pfile);
+ /* APPLE LOCAL end predictive compilation */
+
if (buffer->next_line < buffer->rlimit)
{
_cpp_clean_line (pfile);
@@ -800,9 +942,14 @@ _cpp_get_fresh_line (cpp_reader *pfile)
{
/* Only warn once. */
buffer->next_line = buffer->rlimit;
- cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line,
- CPP_BUF_COLUMN (buffer, buffer->cur),
- "no newline at end of file");
+ /* APPLE LOCAL begin suppress no newline warning. */
+ if ( CPP_OPTION (pfile, warn_newline_at_eof))
+ {
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line,
+ CPP_BUF_COLUMN (buffer, buffer->cur),
+ "no newline at end of file");
+ }
+ /* APPLE LOCAL end suppress no newline warning. */
}
return_at_eof = buffer->return_at_eof;
@@ -821,6 +968,10 @@ _cpp_get_fresh_line (cpp_reader *pfile)
} \
while (0)
+/* APPLE LOCAL begin CW asm blocks */
+static int cw_asm_label_follows;
+/* APPLE LOCAL end CW asm blocks */
+
/* Lex a token into pfile->cur_token, which is also incremented, to
get diagnostics pointing to the correct location.
@@ -897,9 +1048,21 @@ _cpp_lex_direct (cpp_reader *pfile)
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
- result->type = CPP_NUMBER;
- lex_number (pfile, &result->val.str);
- break;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* An '@' in assembly code makes a following digit string into
+ an identifier. */
+ if (cw_asm_label_follows)
+ goto start_ident;
+ /* APPLE LOCAL end CW asm blocks */
+ /* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ {
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+ result->type = CPP_NUMBER;
+ lex_number (pfile, &result->val.str, &nst);
+ warn_about_normalization (pfile, result, &nst);
+ break;
+ }
+ /* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
case 'L':
/* 'L' may introduce wide characters or strings. */
@@ -910,6 +1073,8 @@ _cpp_lex_direct (cpp_reader *pfile)
}
/* Fall through. */
+ /* APPLE LOCAL CW asm blocks */
+ start_ident:
case '_':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
@@ -922,7 +1087,14 @@ _cpp_lex_direct (cpp_reader *pfile)
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
result->type = CPP_NAME;
- result->val.node = lex_identifier (pfile, buffer->cur - 1);
+ /* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ {
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+ result->val.node = lex_identifier (pfile, buffer->cur - 1, false,
+ &nst);
+ warn_about_normalization (pfile, result, &nst);
+ }
+ /* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
/* Convert named operators to their proper types. */
if (result->val.node->flags & NODE_OPERATOR)
@@ -930,6 +1102,10 @@ _cpp_lex_direct (cpp_reader *pfile)
result->flags |= NAMED_OP;
result->type = result->val.node->directive_index;
}
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Got an identifier, reset the CW asm label hack flag. */
+ cw_asm_label_follows = 0;
+ /* APPLE LOCAL end CW asm blocks */
break;
case '\'':
@@ -1067,8 +1243,12 @@ _cpp_lex_direct (cpp_reader *pfile)
result->type = CPP_DOT;
if (ISDIGIT (*buffer->cur))
{
+ /* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
result->type = CPP_NUMBER;
- lex_number (pfile, &result->val.str);
+ lex_number (pfile, &result->val.str, &nst);
+ warn_about_normalization (pfile, result, &nst);
+ /* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
}
else if (*buffer->cur == '.' && buffer->cur[1] == '.')
buffer->cur += 2, result->type = CPP_ELLIPSIS;
@@ -1142,22 +1322,40 @@ _cpp_lex_direct (cpp_reader *pfile)
case ']': result->type = CPP_CLOSE_SQUARE; break;
case '{': result->type = CPP_OPEN_BRACE; break;
case '}': result->type = CPP_CLOSE_BRACE; break;
- case ';': result->type = CPP_SEMICOLON; break;
-
- /* @ is a punctuator in Objective-C. */
- case '@': result->type = CPP_ATSIGN; break;
+ /* APPLE LOCAL begin CW asm blocks */
+ case ';':
+ /* ';' separates instructions in CW asm, so flag that we're no
+ longer seeing operands. */
+ if (cw_asm_state >= cw_asm_decls)
+ cw_asm_in_operands = 0;
+ result->type = CPP_SEMICOLON;
+ break;
+ case '@':
+ /* In CW asm, @ can indicate a label, which may consist of
+ either letters or digits, so set a hack flag for this. (We
+ still want to return the @ as a separate token so that the
+ parser can distinguish labels from opcodes.) */
+ if (cw_asm_state >= cw_asm_decls)
+ cw_asm_label_follows = 1;
+ result->type = CPP_ATSIGN;
+ break;
+ /* APPLE LOCAL end CW asm blocks */
case '$':
case '\\':
{
const uchar *base = --buffer->cur;
+ /* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
- if (forms_identifier_p (pfile, true))
+ if (forms_identifier_p (pfile, true, &nst))
{
result->type = CPP_NAME;
- result->val.node = lex_identifier (pfile, base);
+ result->val.node = lex_identifier (pfile, base, true, &nst);
+ warn_about_normalization (pfile, result, &nst);
break;
}
+ /* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
buffer->cur++;
}
@@ -1180,19 +1378,59 @@ cpp_token_len (const cpp_token *token)
{
default: len = 4; break;
case SPELL_LITERAL: len = token->val.str.len; break;
- case SPELL_IDENT: len = NODE_LEN (token->val.node); break;
+ /* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+ case SPELL_IDENT: len = NODE_LEN (token->val.node) * 10; break;
}
return len;
}
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* Parse UTF-8 out of NAMEP and place a \U escape in BUFFER.
+ Return the number of bytes read out of NAME. (There are always
+ 10 bytes written to BUFFER.) */
+
+static size_t
+utf8_to_ucn (unsigned char *buffer, const unsigned char *name)
+{
+ int j;
+ int ucn_len = 0;
+ int ucn_len_c;
+ unsigned t;
+ unsigned long utf32;
+
+ /* Compute the length of the UTF-8 sequence. */
+ for (t = *name; t & 0x80; t <<= 1)
+ ucn_len++;
+
+ utf32 = *name & (0x7F >> ucn_len);
+ for (ucn_len_c = 1; ucn_len_c < ucn_len; ucn_len_c++)
+ {
+ utf32 = (utf32 << 6) | (*++name & 0x3F);
+
+ /* Ill-formed UTF-8. */
+ if ((*name & ~0x3F) != 0x80)
+ abort ();
+ }
+
+ *buffer++ = '\\';
+ *buffer++ = 'U';
+ for (j = 7; j >= 0; j--)
+ *buffer++ = "0123456789abcdef"[(utf32 >> (4 * j)) & 0xF];
+ return ucn_len;
+}
+
+
/* Write the spelling of a token TOKEN to BUFFER. The buffer must
already contain the enough space to hold the token's spelling.
Returns a pointer to the character after the last character written.
+ FORSTRING is true if this is to be the spelling after translation
+ phase 1 (this is different for UCNs).
FIXME: Would be nice if we didn't need the PFILE argument. */
unsigned char *
cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
- unsigned char *buffer)
+ unsigned char *buffer, bool forstring)
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
{
switch (TOKEN_SPELL (token))
{
@@ -1216,8 +1454,28 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
spell_ident:
case SPELL_IDENT:
- memcpy (buffer, NODE_NAME (token->val.node), NODE_LEN (token->val.node));
- buffer += NODE_LEN (token->val.node);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ if (forstring)
+ {
+ memcpy (buffer, NODE_NAME (token->val.node),
+ NODE_LEN (token->val.node));
+ buffer += NODE_LEN (token->val.node);
+ }
+ else
+ {
+ size_t i;
+ const unsigned char * name = NODE_NAME (token->val.node);
+
+ for (i = 0; i < NODE_LEN (token->val.node); i++)
+ if (name[i] & ~0x7F)
+ {
+ i += utf8_to_ucn (buffer, name + i) - 1;
+ buffer += 10;
+ }
+ else
+ *buffer++ = NODE_NAME (token->val.node)[i];
+ }
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
break;
case SPELL_LITERAL:
@@ -1242,7 +1500,8 @@ cpp_token_as_text (cpp_reader *pfile, const cpp_token *token)
unsigned int len = cpp_token_len (token) + 1;
unsigned char *start = _cpp_unaligned_alloc (pfile, len), *end;
- end = cpp_spell_token (pfile, token, start);
+/* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+ end = cpp_spell_token (pfile, token, start, false);
end[0] = '\0';
return start;
@@ -1286,9 +1545,24 @@ cpp_output_token (const cpp_token *token, FILE *fp)
spell_ident:
case SPELL_IDENT:
- fwrite (NODE_NAME (token->val.node), 1, NODE_LEN (token->val.node), fp);
- break;
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ {
+ size_t i;
+ const unsigned char * name = NODE_NAME (token->val.node);
+
+ for (i = 0; i < NODE_LEN (token->val.node); i++)
+ if (name[i] & ~0x7F)
+ {
+ unsigned char buffer[10];
+ i += utf8_to_ucn (buffer, name + i) - 1;
+ fwrite (buffer, 1, 10, fp);
+ }
+ else
+ fputc (NODE_NAME (token->val.node)[i], fp);
+ }
+ break;
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
case SPELL_LITERAL:
fwrite (token->val.str.text, 1, token->val.str.len, fp);
break;
diff --git a/libcpp/line-map.c b/libcpp/line-map.c
index e6dd48df756..842d40c7882 100644
--- a/libcpp/line-map.c
+++ b/libcpp/line-map.c
@@ -199,6 +199,10 @@ linemap_line_start (struct line_maps *set, unsigned int to_line,
int column_bits;
if (max_column_hint > 100000 || highest > 0xC0000000)
{
+ /* APPLE LOCAL begin 4058553 mainline 2005-04-21 */
+ /* If the column number is ridiculous or we've allocated a huge
+ number of source_locations, give up on column numbers. */
+ /* APPLE LOCAL end 4058553 mainline 2005-04-21 */
max_column_hint = 0;
if (highest >0xF0000000)
return 0;
@@ -211,13 +215,18 @@ linemap_line_start (struct line_maps *set, unsigned int to_line,
column_bits++;
max_column_hint = 1U << column_bits;
}
+ /* APPLE LOCAL begin 4058553 mainline 2005-04-21 */
+ /* Allocate the new line_map. However, if the current map only has a
+ single line we can sometimes just increase its column_bits instead. */
+ /* APPLE LOCAL end 4058553 mainline 2005-04-21 */
if (line_delta < 0
|| last_line != map->to_line
|| SOURCE_COLUMN (map, highest) >= (1U << column_bits))
map = (struct line_map*) linemap_add (set, LC_RENAME, map->sysp,
map->to_file, to_line);
map->column_bits = column_bits;
- r = map->start_location;
+ /* APPLE LOCAL 4058553 mainline 2005-04-21 */
+ r = map->start_location + ((to_line - map->to_line) << column_bits);
}
else
r = highest - SOURCE_COLUMN (map, highest)
diff --git a/libcpp/macro.c b/libcpp/macro.c
index 5e596699e01..9bb60463248 100644
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
@@ -40,7 +40,10 @@ struct macro_arg
/* Macro expansion. */
-static int enter_macro_context (cpp_reader *, cpp_hashnode *);
+/* APPLE LOCAL begin CW asm blocks */
+extern int flag_cw_asm_blocks;
+static int enter_macro_context (cpp_reader *, cpp_hashnode *, int bol_p);
+/* APPLE LOCAL end CW asm blocks */
static int builtin_macro (cpp_reader *, cpp_hashnode *);
static void push_token_context (cpp_reader *, cpp_hashnode *,
const cpp_token *, unsigned int);
@@ -380,13 +383,17 @@ stringify_arg (cpp_reader *pfile, macro_arg *arg)
{
_cpp_buff *buff = _cpp_get_buff (pfile, len);
unsigned char *buf = BUFF_FRONT (buff);
- len = cpp_spell_token (pfile, token, buf) - buf;
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ len = cpp_spell_token (pfile, token, buf, true) - buf;
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
dest = cpp_quote_string (dest, buf, len);
_cpp_release_buff (pfile, buff);
}
else
- dest = cpp_spell_token (pfile, token, dest);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ dest = cpp_spell_token (pfile, token, dest, true);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
if (token->type == CPP_OTHER && token->val.str.text[0] == '\\')
backslash_count++;
else
@@ -422,15 +429,19 @@ paste_tokens (cpp_reader *pfile, const cpp_token **plhs, const cpp_token *rhs)
lhs = *plhs;
len = cpp_token_len (lhs) + cpp_token_len (rhs) + 1;
buf = alloca (len);
- end = cpp_spell_token (pfile, lhs, buf);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ end = cpp_spell_token (pfile, lhs, buf, false);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
/* Avoid comment headers, since they are still processed in stage 3.
It is simpler to insert a space here, rather than modifying the
lexer to ignore comments in some circumstances. Simply returning
false doesn't work, since we want to clear the PASTE_LEFT flag. */
if (lhs->type == CPP_DIV && rhs->type != CPP_EQ)
*end++ = ' ';
- end = cpp_spell_token (pfile, rhs, end);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ end = cpp_spell_token (pfile, rhs, end, false);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
*end = '\n';
cpp_push_buffer (pfile, buf, end - buf, /* from_stage3 */ true);
@@ -714,7 +725,8 @@ funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node)
containing its yet-to-be-rescanned replacement list and return one.
Otherwise, we don't push a context and return zero. */
static int
-enter_macro_context (cpp_reader *pfile, cpp_hashnode *node)
+/* APPLE LOCAL CW asm blocks */
+enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, int bol_p)
{
/* The presence of a macro invalidates a file's controlling macro. */
pfile->mi_valid = false;
@@ -761,6 +773,12 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node)
if (macro->paramc == 0)
push_token_context (pfile, node, macro->exp.tokens, macro->count);
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Mark this context as being at the beginning of a line. */
+ if (bol_p && pfile->context)
+ pfile->context->bol_p = true;
+ /* APPLE LOCAL end CW asm blocks */
+
return 1;
}
@@ -886,7 +904,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, macro_arg
{
cpp_token *token = _cpp_temp_token (pfile);
token->type = (*paste_flag)->type;
- token->val.str = (*paste_flag)->val.str;
+ token->val = (*paste_flag)->val;
if (src->flags & PASTE_LEFT)
token->flags = (*paste_flag)->flags | PASTE_LEFT;
else
@@ -947,6 +965,8 @@ push_ptoken_context (cpp_reader *pfile, cpp_hashnode *macro, _cpp_buff *buff,
context->direct_p = false;
context->macro = macro;
context->buff = buff;
+ /* APPLE LOCAL CW asm blocks */
+ context->bol_p = false;
FIRST (context).ptoken = first;
LAST (context).ptoken = first + count;
}
@@ -961,6 +981,8 @@ push_token_context (cpp_reader *pfile, cpp_hashnode *macro,
context->direct_p = true;
context->macro = macro;
context->buff = NULL;
+ /* APPLE LOCAL CW asm blocks */
+ context->bol_p = false;
FIRST (context).token = first;
LAST (context).token = first + count;
}
@@ -1076,6 +1098,16 @@ cpp_get_token (cpp_reader *pfile)
else
result = *FIRST (context).ptoken++;
+ /* APPLE LOCAL begin CW asm blocks */
+ /* Make the context's bol flag stick to the first token, and
+ only the first. */
+ if (context->bol_p)
+ {
+ ((cpp_token *)result)->flags |= BOL;
+ context->bol_p = false;
+ }
+ /* APPLE LOCAL end CW asm blocks */
+
if (result->flags & PASTE_LEFT)
{
paste_all_tokens (pfile, result);
@@ -1106,7 +1138,15 @@ cpp_get_token (cpp_reader *pfile)
if (!(node->flags & NODE_DISABLED))
{
if (!pfile->state.prevent_expansion
- && enter_macro_context (pfile, node))
+ /* APPLE LOCAL begin AltiVec */
+ /* Conditional macros require that a predicate be
+ evaluated first. */
+ && (!(node->flags & NODE_CONDITIONAL)
+ || (pfile->cb.macro_to_expand
+ && (node = pfile->cb.macro_to_expand (pfile, result))))
+ /* APPLE LOCAL end AltiVec */
+ /* APPLE LOCAL CW asm blocks */
+ && enter_macro_context (pfile, node, (flag_cw_asm_blocks && result->flags & BOL)))
{
if (pfile->state.in_directive)
continue;
@@ -1120,7 +1160,7 @@ cpp_get_token (cpp_reader *pfile)
cpp_token *t = _cpp_temp_token (pfile);
t->type = result->type;
t->flags = result->flags | NO_EXPAND;
- t->val.str = result->val.str;
+ t->val = result->val;
result = t;
}
@@ -1164,26 +1204,34 @@ cpp_scan_nooutput (cpp_reader *pfile)
pfile->state.prevent_expansion--;
}
+/* APPLE LOCAL begin AltiVec */
+/* Step back one or more tokens obtained from the lexer. */
+void
+_cpp_backup_tokens_direct (cpp_reader *pfile, unsigned int count)
+{
+ pfile->lookaheads += count;
+ while (count--)
+ {
+ pfile->cur_token--;
+ if (pfile->cur_token == pfile->cur_run->base
+ /* Possible with -fpreprocessed and no leading #line. */
+ && pfile->cur_run->prev != NULL)
+ {
+ pfile->cur_run = pfile->cur_run->prev;
+ pfile->cur_token = pfile->cur_run->limit;
+ }
+ }
+}
+/* APPLE LOCAL end AltiVec */
+
/* Step back one (or more) tokens. Can only step mack more than 1 if
they are from the lexer, and not from macro expansion. */
void
_cpp_backup_tokens (cpp_reader *pfile, unsigned int count)
{
if (pfile->context->prev == NULL)
- {
- pfile->lookaheads += count;
- while (count--)
- {
- pfile->cur_token--;
- if (pfile->cur_token == pfile->cur_run->base
- /* Possible with -fpreprocessed and no leading #line. */
- && pfile->cur_run->prev != NULL)
- {
- pfile->cur_run = pfile->cur_run->prev;
- pfile->cur_token = pfile->cur_run->limit;
- }
- }
- }
+ /* APPLE LOCAL AltiVec */
+ _cpp_backup_tokens_direct (pfile, count);
else
{
if (count != 1)
@@ -1209,6 +1257,13 @@ warn_of_redefinition (cpp_reader *pfile, const cpp_hashnode *node,
if (node->flags & NODE_WARN)
return true;
+ /* APPLE LOCAL begin AltiVec */
+ /* Redefinitions of conditional (context-sensitive) macros, on
+ the other hand, must be allowed silently. */
+ if (node->flags & NODE_CONDITIONAL)
+ return false;
+ /* APPLE LOCAL end AltiVec */
+
/* Redefinition of a macro is allowed if and only if the old and new
definitions are the same. (6.10.3 paragraph 2). */
macro1 = node->value.macro;
@@ -1430,8 +1485,39 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro)
macro->fun_like = 1;
}
else if (ctoken->type != CPP_EOF && !(ctoken->flags & PREV_WHITE))
- cpp_error (pfile, CPP_DL_PEDWARN,
- "ISO C requires whitespace after the macro name");
+ {
+ /* While ISO C99 requires whitespace before replacement text
+ in a macro definition, ISO C90 with TC1 allows there characters
+ from the basic source character set. */
+ if (CPP_OPTION (pfile, c99))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "ISO C99 requires whitespace after the macro name");
+ else
+ {
+ int warntype = CPP_DL_WARNING;
+ switch (ctoken->type)
+ {
+ case CPP_ATSIGN:
+ case CPP_AT_NAME:
+ case CPP_OBJC_STRING:
+ /* '@' is not in basic character set. */
+ warntype = CPP_DL_PEDWARN;
+ break;
+ case CPP_OTHER:
+ /* Basic character set sans letters, digits and _. */
+ if (strchr ("!\"#%&'()*+,-./:;<=>?[\\]^{|}~",
+ ctoken->val.str.text[0]) == NULL)
+ warntype = CPP_DL_PEDWARN;
+ break;
+ default:
+ /* All other tokens start with a character from basic
+ character set. */
+ break;
+ }
+ cpp_error (pfile, warntype,
+ "missing whitespace after the macro name");
+ }
+ }
if (macro->fun_like)
token = lex_expansion_token (pfile, macro);
@@ -1751,8 +1837,10 @@ cpp_macro_definition (cpp_reader *pfile, const cpp_hashnode *node)
buffer += NODE_LEN (macro->params[token->val.arg_no - 1]);
}
else
- buffer = cpp_spell_token (pfile, token, buffer);
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+ buffer = cpp_spell_token (pfile, token, buffer, false);
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
if (token->flags & PASTE_LEFT)
{
*buffer++ = ' ';
diff --git a/libcpp/makedepend.c b/libcpp/makedepend.c
index f28f9699828..777427d2542 100644
--- a/libcpp/makedepend.c
+++ b/libcpp/makedepend.c
@@ -27,6 +27,13 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "getopt.h"
#include "mkdeps.h"
+/* APPLE LOCAL begin CW asm blocks -sshebs */
+/* Dummies needed because we use them from cpplib, yuck. */
+int flag_cw_asm_blocks;
+int cw_asm_state;
+int cw_asm_in_operands;
+/* APPLE LOCAL end CW asm blocks -sshebs */
+
const char *progname;
const char *vpath;
diff --git a/libcpp/makeucnid.c b/libcpp/makeucnid.c
new file mode 100644
index 00000000000..f87416f1096
--- /dev/null
+++ b/libcpp/makeucnid.c
@@ -0,0 +1,344 @@
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* Make ucnid.h from various sources.
+ Copyright (C) 2005 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Run this program as
+ ./makeucnid ucnid.tab UnicodeData.txt DerivedNormalizationProps.txt \
+ > ucnid.h
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+enum {
+ C99 = 1,
+ CXX = 2,
+ digit = 4,
+ not_NFC = 8,
+ not_NFKC = 16,
+ maybe_not_NFC = 32
+};
+
+static unsigned flags[65536];
+static unsigned short decomp[65536][2];
+static unsigned char combining_value[65536];
+
+/* Die! */
+
+static void
+fail (const char *s)
+{
+ fprintf (stderr, "%s\n", s);
+ exit (1);
+}
+
+/* Read ucnid.tab and set the C99 and CXX flags in header[]. */
+
+static void
+read_ucnid (const char *fname)
+{
+ FILE *f = fopen (fname, "r");
+ unsigned fl = 0;
+
+ if (!f)
+ fail ("opening ucnid.tab");
+ for (;;)
+ {
+ char line[256];
+
+ if (!fgets (line, sizeof (line), f))
+ break;
+ if (strcmp (line, "[C99]\n") == 0)
+ fl = C99;
+ else if (strcmp (line, "[CXX]\n") == 0)
+ fl = CXX;
+ else if (isxdigit (line[0]))
+ {
+ char *l = line;
+ while (*l)
+ {
+ unsigned long start, end;
+ char *endptr;
+ start = strtoul (l, &endptr, 16);
+ if (endptr == l || (*endptr != '-' && ! isspace (*endptr)))
+ fail ("parsing ucnid.tab [1]");
+ l = endptr;
+ if (*l != '-')
+ end = start;
+ else
+ {
+ end = strtoul (l + 1, &endptr, 16);
+ if (end < start)
+ fail ("parsing ucnid.tab, end before start");
+ l = endptr;
+ if (! isspace (*l))
+ fail ("parsing ucnid.tab, junk after range");
+ }
+ while (isspace (*l))
+ l++;
+ if (end > 0xFFFF)
+ fail ("parsing ucnid.tab, end too large");
+ while (start <= end)
+ flags[start++] |= fl;
+ }
+ }
+ }
+ if (ferror (f))
+ fail ("reading ucnid.tab");
+ fclose (f);
+}
+
+/* Read UnicodeData.txt and set the 'digit' flag, and
+ also fill in the 'decomp' table to be the decompositions of
+ characters for which both the character decomposed and all the code
+ points in the decomposition are either C99 or CXX. */
+
+static void
+read_table (char *fname)
+{
+ FILE * f = fopen (fname, "r");
+
+ if (!f)
+ fail ("opening UnicodeData.txt");
+ for (;;)
+ {
+ char line[256];
+ unsigned long codepoint, this_decomp[4];
+ char *l;
+ int i;
+ int decomp_useful;
+
+ if (!fgets (line, sizeof (line), f))
+ break;
+ codepoint = strtoul (line, &l, 16);
+ if (l == line || *l != ';')
+ fail ("parsing UnicodeData.txt, reading code point");
+ if (codepoint > 0xffff || ! (flags[codepoint] & (C99 | CXX)))
+ continue;
+
+ do {
+ l++;
+ } while (*l != ';');
+ /* Category value; things starting with 'N' are numbers of some
+ kind. */
+ if (*++l == 'N')
+ flags[codepoint] |= digit;
+
+ do {
+ l++;
+ } while (*l != ';');
+ /* Canonical combining class; in NFC/NFKC, they must be increasing
+ (or zero). */
+ if (! isdigit (*++l))
+ fail ("parsing UnicodeData.txt, combining class not number");
+ combining_value[codepoint] = strtoul (l, &l, 10);
+ if (*l++ != ';')
+ fail ("parsing UnicodeData.txt, junk after combining class");
+
+ /* Skip over bidi value. */
+ do {
+ l++;
+ } while (*l != ';');
+
+ /* Decomposition mapping. */
+ decomp_useful = flags[codepoint];
+ if (*++l == '<') /* Compatibility mapping. */
+ continue;
+ for (i = 0; i < 4; i++)
+ {
+ if (*l == ';')
+ break;
+ if (!isxdigit (*l))
+ fail ("parsing UnicodeData.txt, decomposition format");
+ this_decomp[i] = strtoul (l, &l, 16);
+ decomp_useful &= flags[this_decomp[i]];
+ while (isspace (*l))
+ l++;
+ }
+ if (i > 2) /* Decomposition too long. */
+ fail ("parsing UnicodeData.txt, decomposition too long");
+ if (decomp_useful)
+ while (--i >= 0)
+ decomp[codepoint][i] = this_decomp[i];
+ }
+ if (ferror (f))
+ fail ("reading UnicodeData.txt");
+ fclose (f);
+}
+
+/* Read DerivedNormalizationProps.txt and set the flags that say whether
+ a character is in NFC, NFKC, or is context-dependent. */
+
+static void
+read_derived (const char *fname)
+{
+ FILE * f = fopen (fname, "r");
+
+ if (!f)
+ fail ("opening DerivedNormalizationProps.txt");
+ for (;;)
+ {
+ char line[256];
+ unsigned long start, end;
+ char *l;
+ bool not_NFC_p, not_NFKC_p, maybe_not_NFC_p;
+
+ if (!fgets (line, sizeof (line), f))
+ break;
+ not_NFC_p = (strstr (line, "; NFC_QC; N") != NULL);
+ not_NFKC_p = (strstr (line, "; NFKC_QC; N") != NULL);
+ maybe_not_NFC_p = (strstr (line, "; NFC_QC; M") != NULL);
+ if (! not_NFC_p && ! not_NFKC_p && ! maybe_not_NFC_p)
+ continue;
+
+ start = strtoul (line, &l, 16);
+ if (l == line)
+ fail ("parsing DerivedNormalizationProps.txt, reading start");
+ if (start > 0xffff)
+ continue;
+ if (*l == '.' && l[1] == '.')
+ end = strtoul (l + 2, &l, 16);
+ else
+ end = start;
+
+ while (start <= end)
+ flags[start++] |= ((not_NFC_p ? not_NFC : 0)
+ | (not_NFKC_p ? not_NFKC : 0)
+ | (maybe_not_NFC_p ? maybe_not_NFC : 0)
+ );
+ }
+ if (ferror (f))
+ fail ("reading DerivedNormalizationProps.txt");
+ fclose (f);
+}
+
+/* Write out the table.
+ The table consists of two words per entry. The first word is the flags
+ for the unicode code points up to and including the second word. */
+
+static void
+write_table (void)
+{
+ unsigned i;
+ unsigned last_flag = flags[0];
+ bool really_safe = decomp[0][0] == 0;
+ unsigned char last_combine = combining_value[0];
+
+ for (i = 1; i <= 65536; i++)
+ if (i == 65536
+ || (flags[i] != last_flag && ((flags[i] | last_flag) & (C99 | CXX)))
+ || really_safe != (decomp[i][0] == 0)
+ || combining_value[i] != last_combine)
+ {
+ printf ("{ %s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
+ last_flag & C99 ? "C99" : " 0",
+ last_flag & digit ? "DIG" : " 0",
+ last_flag & CXX ? "CXX" : " 0",
+ really_safe ? "CID" : " 0",
+ last_flag & not_NFC ? " 0" : "NFC",
+ last_flag & not_NFKC ? " 0" : "NKC",
+ last_flag & maybe_not_NFC ? "CTX" : " 0",
+ combining_value[i - 1],
+ i - 1);
+ last_flag = flags[i];
+ last_combine = combining_value[0];
+ really_safe = decomp[i][0] == 0;
+ }
+}
+
+/* Print out the huge copyright notice. */
+
+static void
+write_copyright (void)
+{
+ static const char copyright[] = "\
+/* Unicode characters and various properties.\n\
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.\n\
+\n\
+ This program is free software; you can redistribute it and/or modify it\n\
+ under the terms of the GNU General Public License as published by the\n\
+ Free Software Foundation; either version 2, or (at your option) any\n\
+ later version.\n\
+\n\
+ This program is distributed in the hope that it will be useful,\n\
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
+ GNU General Public License for more details.\n\
+\n\
+ You should have received a copy of the GNU General Public License\n\
+ along with this program; if not, write to the Free Software\n\
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n\
+\n\
+\n\
+ Copyright (C) 1991-2005 Unicode, Inc. All rights reserved.\n\
+ Distributed under the Terms of Use in\n\
+ http://www.unicode.org/copyright.html.\n\
+\n\
+ Permission is hereby granted, free of charge, to any person\n\
+ obtaining a copy of the Unicode data files and any associated\n\
+ documentation (the \"Data Files\") or Unicode software and any\n\
+ associated documentation (the \"Software\") to deal in the Data Files\n\
+ or Software without restriction, including without limitation the\n\
+ rights to use, copy, modify, merge, publish, distribute, and/or\n\
+ sell copies of the Data Files or Software, and to permit persons to\n\
+ whom the Data Files or Software are furnished to do so, provided\n\
+ that (a) the above copyright notice(s) and this permission notice\n\
+ appear with all copies of the Data Files or Software, (b) both the\n\
+ above copyright notice(s) and this permission notice appear in\n\
+ associated documentation, and (c) there is clear notice in each\n\
+ modified Data File or in the Software as well as in the\n\
+ documentation associated with the Data File(s) or Software that the\n\
+ data or software has been modified.\n\
+\n\
+ THE DATA FILES AND SOFTWARE ARE PROVIDED \"AS IS\", WITHOUT WARRANTY\n\
+ OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\n\
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\
+ NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE\n\
+ COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR\n\
+ ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY\n\
+ DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\n\
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS\n\
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE\n\
+ OF THE DATA FILES OR SOFTWARE.\n\
+\n\
+ Except as contained in this notice, the name of a copyright holder\n\
+ shall not be used in advertising or otherwise to promote the sale,\n\
+ use or other dealings in these Data Files or Software without prior\n\
+ written authorization of the copyright holder. */\n";
+
+ puts (copyright);
+}
+
+/* Main program. */
+
+int
+main(int argc, char ** argv)
+{
+ if (argc != 4)
+ fail ("too few arguments to makeucn");
+ read_ucnid (argv[1]);
+ read_table (argv[2]);
+ read_derived (argv[3]);
+
+ write_copyright ();
+ write_table ();
+ return 0;
+}
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/libcpp/pch.c b/libcpp/pch.c
index 79900c30c36..3114f1590f7 100644
--- a/libcpp/pch.c
+++ b/libcpp/pch.c
@@ -423,7 +423,14 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd)
struct ht_node_list nl = { 0, 0, 0 };
unsigned char *first, *last;
unsigned int i;
-
+ /* APPLE LOCAL begin pch distcc --mrs */
+ int skip_validation;
+
+ /* Skip pch validation if we have just validated it. */
+ skip_validation = CPP_OPTION (r, pch_preprocess)
+ && CPP_OPTION (r, preprocessed);
+ /* APPLE LOCAL end pch distcc --mrs */
+
/* Read in the list of identifiers that must be defined
Check that they are defined in the same way. */
for (;;)
@@ -456,6 +463,11 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd)
if ((size_t)read (fd, namebuf, m.definition_length)
!= m.definition_length)
goto error;
+
+ /* APPLE LOCAL begin pch distcc --mrs */
+ if (skip_validation)
+ continue;
+ /* APPLE LOCAL end pch distcc --mrs */
h = cpp_lookup (r, namebuf, m.name_length);
if (m.flags & NODE_POISONED
@@ -492,6 +504,14 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd)
if ((size_t) read (fd, undeftab, m.definition_length) != m.definition_length)
goto error;
+ /* APPLE LOCAL begin pch distcc --mrs */
+ if (skip_validation)
+ {
+ free (undeftab);
+ return 0;
+ }
+ /* APPLE LOCAL end pch distcc --mrs */
+
/* Collect identifiers from the current hash table. */
nl.n_defs = 0;
nl.asize = 10;
@@ -632,6 +652,12 @@ cpp_read_state (cpp_reader *r, const char *name, FILE *f,
size_t i;
struct lexer_state old_state;
+ /* APPLE LOCAL begin pch distcc --mrs */
+ void (*saved_line_change) PARAMS ((cpp_reader *, const cpp_token *, int));
+
+ saved_line_change = r->cb.line_change;
+ /* APPLE LOCAL end pch distcc --mrs */
+
/* Restore spec_nodes, which will be full of references to the old
hashtable entries and so will now be invalid. */
{
@@ -646,6 +672,8 @@ cpp_read_state (cpp_reader *r, const char *name, FILE *f,
r->state.in_directive = 1;
r->state.prevent_expansion = 1;
r->state.angled_headers = 0;
+ /* APPLE LOCAL pch distcc --mrs */
+ r->cb.line_change = 0;
/* Run through the carefully-saved macros, insert them. */
for (i = 0; i < data->count; i++)
@@ -678,6 +706,8 @@ cpp_read_state (cpp_reader *r, const char *name, FILE *f,
free (data->defns[i]);
}
r->state = old_state;
+ /* APPLE LOCAL pch distcc --mrs */
+ r->cb.line_change = saved_line_change;
_cpp_restore_pragma_names (r, data->saved_pragmas);
diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog
index 86488c52ec6..09ff270241c 100644
--- a/libcpp/po/ChangeLog
+++ b/libcpp/po/ChangeLog
@@ -1,3 +1,33 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-20 Mark Mitchell <mark@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * rw.po: New file.
+
+2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2005-03-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * tr.po: Update.
+ * vi.po: New file.
+
+2005-03-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po: Update.
+
+2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
2004-12-15 Joseph S. Myers <joseph@codesourcery.com>
* fr.po: Update.
diff --git a/libcpp/po/be.po b/libcpp/po/be.po
index 76adf31ef55..c7819ff627b 100644
--- a/libcpp/po/be.po
+++ b/libcpp/po/be.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.1\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -14,114 +14,124 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: charset.c:653
+#: charset.c:655
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr ""
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr ""
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr ""
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr ""
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr ""
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr ""
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr ""
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
-#: charset.c:1127
+#: charset.c:1184
msgid "converting escape sequence to execution character set"
msgstr ""
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
#, fuzzy
msgid "character constant too long for its type"
msgstr "ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта вельмі доўгаÑ"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "мнагаÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "пуÑÑ‚Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr ""
@@ -196,138 +206,143 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: directives.c:673
+#, c-format
+msgid "empty filename in #%s"
+msgstr ""
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr ""
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr ""
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr ""
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr ""
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr ""
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr ""
-#: directives.c:942
+#: directives.c:950
#, fuzzy
msgid "invalid #ident directive"
msgstr "нерÑчаіÑны ініцыÑлізатар"
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: directives.c:1033
+#: directives.c:1041
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr ""
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr ""
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "не магу знайÑці крыніцу %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr ""
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr ""
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr ""
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr ""
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr ""
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr ""
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr ""
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr ""
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr ""
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr ""
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr ""
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr ""
@@ -519,35 +534,35 @@ msgstr ""
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s - гÑта Ð±Ð»Ñ‘Ñ‡Ð½Ð°Ñ Ð¿Ñ€Ñ‹Ð»Ð°Ð´Ð°"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s - вельмі вÑлікі"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr ""
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr ""
@@ -718,87 +733,87 @@ msgstr ""
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr ""
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr ""
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr ""
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr ""
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr ""
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "адмеціна `%s' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
diff --git a/libcpp/po/ca.po b/libcpp/po/ca.po
index 5a53058a1b3..3777eff6fe7 100644
--- a/libcpp/po/ca.po
+++ b/libcpp/po/ca.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3.2\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -19,117 +19,127 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: charset.c:653
+#: charset.c:655
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "la conversió de \"%T\" a \"%T\" és ambigua"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "el significat de \"\\%c\" és diferent en C tradicional"
-#: charset.c:837
+#: charset.c:894
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "universal-character-name incomplet"
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "\"%T::%D\" no és una declaració vàlida"
-#: charset.c:859
+#: charset.c:916
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
-#: charset.c:863
+#: charset.c:920
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
-#: charset.c:896
+#: charset.c:953
#, fuzzy
msgid "converting UCN to source character set"
msgstr "convertint NULL a un tipus que no és apuntador"
-#: charset.c:900
+#: charset.c:957
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "convertint NULL a un tipus que no és apuntador"
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr "el significat de \"\\x\" és diferent en C tradicional"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "es va usar \\x sense dígits hexadecimales a continuació"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "seqüència d'escapi hexadecimal fora de rang"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "seqüència d'escapi octal fora de rang"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr "el significat de \"\\a\" és diferent en C tradicional"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "seqüència d'escapi que no és estàndard ISO, \"\\%c\""
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "seqüència d'escapi \"\\%c\" desconeguda"
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "seqüència d'escapi desconeguda: '\\%03o'"
-#: charset.c:1127
+#: charset.c:1184
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "seqüència d'escapi octal fora de rang"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
msgid "character constant too long for its type"
msgstr "constant de caràcter massa gran pel seu tipus"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "constant de caràcter amb múltiples caràcters"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "constant de caràter buida"
-#: charset.c:1393
+#: charset.c:1450
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "no es pot convertir \"%E\" a \"%T\""
@@ -204,137 +214,142 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>"
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "nom de fitxer buit en #%s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include niat amb massa profunditat"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "#include_next en el fitxer font primari"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "indicador \"%s\" invàlid en la línia de la directiva"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" desprès de #line no és un enter positiu"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "nombre de línia fora de rang"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" no és un nom de fitxer vàlid"
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" desprès de # no és un enter positiu"
-#: directives.c:942
+#: directives.c:950
msgid "invalid #ident directive"
msgstr "directiva #ident invàlida"
-#: directives.c:1030
+#: directives.c:1038
#, 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"
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "ja s'ha desat #pragma %s %s"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr "ja s'ha desat #pragma %s"
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "#pragma una vegada en el fitxer principal"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "directiva #pragma de GCC enverinada invàlida"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "enverinant la macro existent \"%s\""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorat fora del fitxer d'inclusió"
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "no es pot trobar la font %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "el fitxer actual és més vell que %s"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma duu una cadena literal entre parèntesis"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else sense #if"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else després de #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "el condicional va començar aquí"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif sense #if"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif després de #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif sense #if"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "falta \"(\" abans del predicat"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "falta \")\" per a completar la resposta"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "el predicat de la resposta està buidor"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "afirmació sense predicat"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "el predicat deu ser un identificador"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" reafirmat"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "#%s sense acabar"
@@ -527,35 +542,35 @@ msgstr "divisió per zero en #if"
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s és un dispositiu de blocs"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s és massa gran"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s és més curt de l'esperat"
-#: files.c:769
+#: files.c:803
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "no hi ha ruta d'inclusió en la qual es trobi %s"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "Guàrdies múltiples de include poden ser útils per a:\n"
@@ -728,87 +743,87 @@ msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\""
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"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "paràmetre de macro \"%s\" duplicat"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" podria faltar en la llista de paràmetre de macro"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "els paràmetres de macro deuen ser separats per comes"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "falta el nom del paràmetre"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr "els macros variadic anònims es van introduir en C99"
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C no permet macros variadic nomenats"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "falta parèntesi dret en la llista de paràmetres de macro"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requereix espais en blanc després del nom de macro"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "\"#\" no és seguit per un paràmetre de macro"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "\"##\" no pot apareixer en o al final d'una expansió de macro"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" re-definit"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "aquesta és la ubicació de la definició prèvia"
-#: macro.c:1628
+#: macro.c:1632
#, 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"
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "tipus de hash %d invàlid en cpp_macro_definition"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "s'usa l'etiqueta \"%s\" però no està definida"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "\"%s\" utilitzat però mai definit"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
@@ -3658,9 +3673,6 @@ msgstr "\"%s\" podria faltar en la llista de paràmetre de macro"
#~ msgid "escape sequence out of range for its type"
#~ msgstr "seqüència d'escapi fora de rang per a el seu tipus"
-#~ msgid "empty file name in #%s"
-#~ msgstr "nom de fitxer buit en #%s"
-
#~ 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"
diff --git a/libcpp/po/cpplib.pot b/libcpp/po/cpplib.pot
index 9d82e855357..73e58936e66 100644
--- a/libcpp/po/cpplib.pot
+++ b/libcpp/po/cpplib.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-04-20 21:43-0700\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"
@@ -16,113 +16,125 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: charset.c:653
+#: charset.c:655
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr ""
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:760
+#: charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr ""
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
-#: charset.c:849
+#: charset.c:906
#, c-format
msgid "%.*s is not a valid universal character"
msgstr ""
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr ""
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr ""
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr ""
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr ""
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr ""
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr ""
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr ""
-#: charset.c:1127
+#: charset.c:1184
msgid "converting escape sequence to execution character set"
msgstr ""
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306
+#: charset.c:1369
msgid "character constant too long for its type"
msgstr ""
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr ""
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr ""
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr ""
@@ -197,138 +209,144 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: directives.c:673
+#, c-format
+msgid "empty filename in #%s"
+msgstr ""
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr ""
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr ""
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
-#: directives.c:784
+#: directives.c:797
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr ""
-#: directives.c:790
+#: directives.c:803
msgid "line number out of range"
msgstr ""
-#: directives.c:803 directives.c:880
+#: directives.c:816
+#: directives.c:893
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr ""
-#: directives.c:840
+#: directives.c:853
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr ""
-#: directives.c:942
+#: directives.c:955
msgid "invalid #ident directive"
msgstr ""
-#: directives.c:1030
+#: directives.c:1043
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: directives.c:1033
+#: directives.c:1046
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
-#: directives.c:1036
+#: directives.c:1049
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: directives.c:1236
+#: directives.c:1249
msgid "#pragma once in main file"
msgstr ""
-#: directives.c:1259
+#: directives.c:1272
msgid "invalid #pragma GCC poison directive"
msgstr ""
-#: directives.c:1268
+#: directives.c:1281
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: directives.c:1289
+#: directives.c:1302
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: directives.c:1313
+#: directives.c:1326
#, c-format
msgid "cannot find source file %s"
msgstr ""
-#: directives.c:1317
+#: directives.c:1330
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: directives.c:1431
+#: directives.c:1444
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: directives.c:1538
+#: directives.c:1551
msgid "#else without #if"
msgstr ""
-#: directives.c:1543
+#: directives.c:1556
msgid "#else after #else"
msgstr ""
-#: directives.c:1545
-#: directives.c:1578
+#: directives.c:1558
+#: directives.c:1591
msgid "the conditional began here"
msgstr ""
-#: directives.c:1571
+#: directives.c:1584
msgid "#elif without #if"
msgstr ""
-#: directives.c:1576
+#: directives.c:1589
msgid "#elif after #else"
msgstr ""
-#: directives.c:1606
+#: directives.c:1619
msgid "#endif without #if"
msgstr ""
-#: directives.c:1683
+#: directives.c:1696
msgid "missing '(' after predicate"
msgstr ""
-#: directives.c:1698
+#: directives.c:1711
msgid "missing ')' to complete answer"
msgstr ""
-#: directives.c:1718
+#: directives.c:1731
msgid "predicate's answer is empty"
msgstr ""
-#: directives.c:1745
+#: directives.c:1758
msgid "assertion without predicate"
msgstr ""
-#: directives.c:1747
+#: directives.c:1760
msgid "predicate must be an identifier"
msgstr ""
-#: directives.c:1833
+#: directives.c:1846
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: directives.c:2056
+#: directives.c:2069
#, c-format
msgid "unterminated #%s"
msgstr ""
@@ -380,7 +398,8 @@ msgstr ""
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr ""
-#: expr.c:250 expr.c:275
+#: expr.c:250
+#: expr.c:275
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
@@ -436,7 +455,8 @@ msgstr ""
msgid "\"%s\" is not defined"
msgstr ""
-#: expr.c:716 expr.c:745
+#: expr.c:716
+#: expr.c:745
#, c-format
msgid "missing binary operator before token \"%s\""
msgstr ""
@@ -519,35 +539,35 @@ msgstr ""
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr ""
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr ""
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr ""
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr ""
@@ -641,7 +661,8 @@ msgstr ""
msgid "no newline at end of file"
msgstr ""
-#: lex.c:948 traditional.c:162
+#: lex.c:948
+#: traditional.c:162
msgid "unterminated comment"
msgstr ""
@@ -679,7 +700,8 @@ msgstr ""
msgid "macro \"%s\" is not used"
msgstr ""
-#: macro.c:124 macro.c:287
+#: macro.c:124
+#: macro.c:287
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr ""
@@ -711,7 +733,8 @@ msgstr ""
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
-#: macro.c:642 traditional.c:675
+#: macro.c:642
+#: traditional.c:675
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr ""
@@ -721,88 +744,95 @@ msgstr ""
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr ""
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr ""
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr ""
-#: macro.c:1430
-msgid "ISO C requires whitespace after the macro name"
+#: macro.c:1439
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr ""
+
+#: macro.c:1463
+msgid "missing whitespace after the macro name"
msgstr ""
-#: macro.c:1458
+#: macro.c:1493
msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: macro.c:1477
+#: macro.c:1512
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: macro.c:1573
+#: macro.c:1608
#, c-format
msgid "\"%s\" redefined"
msgstr ""
-#: macro.c:1578
+#: macro.c:1613
msgid "this is the location of the previous definition"
msgstr ""
-#: macro.c:1628
+#: macro.c:1663
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: macro.c:1651
+#: macro.c:1686
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: pch.c:83 pch.c:331
-#: pch.c:353 pch.c:359
+#: pch.c:84
+#: pch.c:332
+#: pch.c:354
+#: pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr ""
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
-#: pch.c:532 pch.c:695
+#: pch.c:533
+#: pch.c:696
msgid "while reading precompiled header"
msgstr ""
diff --git a/libcpp/po/da.po b/libcpp/po/da.po
index fc89bc4011e..5fa52ef4a7b 100644
--- a/libcpp/po/da.po
+++ b/libcpp/po/da.po
@@ -128,7 +128,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -136,117 +136,127 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: charset.c:653
+#: charset.c:655
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "konvertering fra NaN til unsigned int"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, fuzzy, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "universelt tegnnavn står for '%c', som er en del af det basale kildekodetegnsæt"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "betydningen af '\\%c' er anderledes i traditionel C"
-#: charset.c:837
+#: charset.c:894
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "ufuldstændigt universelt tegnnavn"
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "'%T::%D' er ikke en gyldig erklærer"
-#: charset.c:859
+#: charset.c:916
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
-#: charset.c:863
+#: charset.c:920
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
-#: charset.c:896
+#: charset.c:953
#, fuzzy
msgid "converting UCN to source character set"
msgstr "konverterer NULL til en ikke-henvisningstype"
-#: charset.c:900
+#: charset.c:957
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "konverterer NULL til en ikke-henvisningstype"
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr "betydningen af '\\x' er anderledes i traditionel C"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "\\x angivet uden efterfølgende hexadecimale cifre"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "den oktale undvigesekvens er uden for det gyldige interval"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr "betydningen af '\\a' er anderledes i traditionel C"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "undvigesekvensen '\\%c' er ikke ISO-standard"
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "ukendt undvigesekvensen '\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "ukendt undvigesekvensen '\\%03o'"
-#: charset.c:1127
+#: charset.c:1184
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "undvigesekvens er uden for det gyldig interval for tegn"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
msgid "character constant too long for its type"
msgstr "tegnkonstanten er for lang for dens type"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "flerbyte-tegnkonstant"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "tom tegnkonstant"
-#: charset.c:1393
+#: charset.c:1450
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "kunne ikke konvertere '%E' til '%T'"
@@ -321,137 +331,142 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s forventer \"FILNAVN\" eller <FILNAVN>"
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "tomt filnavn i #%s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include indlejret for dybt"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "#include_next i den primære kildekodefil"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "ugyldigt flag \"%s\" i linjedirektiv"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" efter #line er ikke et positivt heltal"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "linjenummer er uden for det gyldige interval"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" er ikke et ugyldigt filnavn"
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" efter # er ikke et positivt heltal"
-#: directives.c:942
+#: directives.c:950
msgid "invalid #ident directive"
msgstr "ugyldigt #ident-direktiv"
-#: directives.c:1030
+#: directives.c:1038
#, 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"
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s er allerede registreret"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s er allerede registreret"
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "'#pragma once' i hovedfil"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "ugyldigt #pragma GCC poison-direktiv"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "forgifter eksisterende makro \"%s\""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "'#pragma system_header' ignoreret uden for inkluderingsfil"
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "kan ikke finde kilden %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "aktuel fil er ældre end %s"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma tager en strengkonstant med paranteser omkring"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else uden #if"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else efter #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "betingelsen begyndte her"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif uden #if"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif efter #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif uden #if"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "manglende '(' efter udsagn"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "manglende ')' til at fuldføre svar"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "udsagnets svar et tomt"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "postulat uden udsagn"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "udsagn skal være et kaldenavn"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" genpostuleret"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "uafsluttet #%s"
@@ -644,35 +659,35 @@ msgstr "division med nul i #if"
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s er en blokenhed"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s er for stor"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s er kortere end forventet"
-#: files.c:769
+#: files.c:803
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "der er ingen inkluderingssti at finde %s i"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "Flere inkluderingsvagter kan være nyttige til:\n"
@@ -845,87 +860,87 @@ msgstr "uafsluttet parameterliste ved kald af makroen \"%s\""
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "funktionsagtig makro \"%s\" skal bruges med parametre i traditionel C"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "makroparameternavnet \"%s\" optræder mere end én gang"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" må ikke optræde i makroparameterliste"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "makroparametre skal være komma-adskilte"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "parameternavn mangler"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C99"
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C tillader ikke navngivne makroer med vilkårligt antal parametre"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "manglende ')' i makroparameterliste"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C påkræver mellemrum efter makronavnet"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "'#' efterfølges ikke af en makroparameter"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' må ikke optræde ved nogen af enderne i en makrokrop"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" omdefineret"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "den foregående definition er her"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "makroparameteren \"%s\" ville blive gjort til en streng i traditionel C"
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "ugyldig hashtype %d i cpp_macro_definition"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "etiketten '%s' er benyttet, men ikke defineret"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "'%s' brugt, men aldrig defineret"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
@@ -3784,9 +3799,6 @@ msgstr "\"%s\" må ikke optræde i makroparameterliste"
#~ msgid "escape sequence out of range for its type"
#~ msgstr "undvigesekvensen er uden for det gyldig interval for dens type"
-#~ msgid "empty file name in #%s"
-#~ msgstr "tomt filnavn i #%s"
-
#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file"
#~ msgstr "#import er forældet, brug en #ifndef-indpakning i inkluderingsfilen"
@@ -15686,9 +15698,6 @@ msgstr "\"%s\" må ikke optræde i makroparameterliste"
#~ msgid "invalid #pragma vtable"
#~ 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"
-
#~ msgid "%s at end of saved text"
#~ msgstr "%s ved slutningen af den gemte tekst"
diff --git a/libcpp/po/de.po b/libcpp/po/de.po
index c8660382289..536628f77d4 100644
--- a/libcpp/po/de.po
+++ b/libcpp/po/de.po
@@ -6,123 +6,133 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.4-b20040206\n"
+"Project-Id-Version: cpplib 4.0-b20050226\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
-"PO-Revision-Date: 2004-02-15 12:14+0100\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\n"
+"PO-Revision-Date: 2005-03-26 15:41+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"
-#: charset.c:653
+#: charset.c:655
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "Konvertierung von %s nach %s wird von iconv nicht unterstützt"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr "iconv_open"
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "keine Implementation für iconv, es kann nicht von %s nach %s konvertiert werden"
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "Zeichen 0x%lx ist nicht im regulären Quellzeichensatz\n"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr "Konvertierung in Zeichensatz der Ausführung"
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "Zeichen 0x%lx ist kein Unibyte im Ausführungs-Zeichensatz"
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr "universelle Zeichennamen sind nur in C++ und C99 gültig"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "die Bedeutung von '\\%c' ist in traditionellem C anders"
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "unvollständiger Universal-Zeichenname %.*s"
-#: charset.c:849
+#: charset.c:906
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "»%.*s« ist kein gültiges universelles Zeichen"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "universelles Zeichen %.*s ist nicht gültig in Bezeichner"
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "universelles Zeichen %.*s ist nicht gültig am Anfang eines Bezeichners"
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr "UCN wird in Quellzeichensatz konvertiert"
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr "UCN wird in Ausführungszeichensatz konvertiert"
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr "die Bedeutung von '\\x' ist in traditionellem C anders"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "\\x ohne folgende Hex-Ziffern verwendet"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "Hex-Fluchtsequenz außerhalb des Wertebereiches"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "Oktal-Fluchtsequenz außerhalb des Wertebereiches"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr "die Bedeutung von '\\a' ist in traditionellem C anders"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "nicht-ISO-standardkonforme Fluchtsequenz '\\%c'"
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "unbekannte Fluchtsequenz '\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "unbekannte Fluchtsequenz: '\\%03o'"
-#: charset.c:1127
+#: charset.c:1184
msgid "converting escape sequence to execution character set"
msgstr "Fluchtsequenz wird in Zeichensatz der Ausführung konvertiert"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr "Konvertierung in Zeichensatz der Ausführung"
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
msgid "character constant too long for its type"
msgstr "Zeichenkonstante zu lang für ihren Typ"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "Zeichenkonstante mit mehreren Zeichen"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "Leere Zeichenkonstante"
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr "Fehler beim Konvertieren von %s in %s"
@@ -197,137 +207,142 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>"
#: directives.c:673
+#, c-format
+msgid "empty filename in #%s"
+msgstr "leerer Dateiname in #%s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include ist zu tief geschachtelt"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "#include_next in erster Quelldatei"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "ungültiges Flag »%s« in line-Direktive"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "»%s« hinter #line ist keine positive Ganzzahl"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "Zeilennummer ist außerhalb des Wertebereiches"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "»%s« ist kein gültiger Dateiname"
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "»%s« hinter # ist keine positive Ganzzahl"
-#: directives.c:942
+#: directives.c:950
msgid "invalid #ident directive"
msgstr "ungültige #ident-Direktive"
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
-msgstr "registriere »%s« sowohl als Pragma als auch als Pragma-Namespace"
+msgstr "»%s« wird sowohl als Pragma als auch als Pragma-Namespace registriert"
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s ist bereits registriert"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s ist bereits registriert"
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "#pragma once in Hauptdatei"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "ungültige #pragma GCC Direktive"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "schlechtes existierendes Makro »%s«"
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header außerhalb include-Datei ignoriert"
-#: directives.c:1313
+#: directives.c:1321
#, c-format
msgid "cannot find source file %s"
msgstr "Quelldatei %s kann nicht gefunden werden"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "aktuelle Datei ist älter als %s"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else ohne #if"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else hinter #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "die Bedingung begann hier"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif ohne #if"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif hinter #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif ohne #if"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "fehlendes '(' hinter Prädikat"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "fehlendes ')', um Antwort abzuschließen"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "Prädikatantwort ist leer"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "Behauptung ohne Prädikat"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "Prädikat muss ein Bezeichner sein"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "»%s« wieder behauptet"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "unbeendetes #%s"
@@ -446,9 +461,8 @@ msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken"
#: expr.c:753
-#, fuzzy
msgid "missing expression between '(' and ')'"
-msgstr "ungültiger Ausdruck zwischen '(' und ')'"
+msgstr "fehlender Ausdruck zwischen '(' und ')'"
#: expr.c:756
msgid "#if with no expression"
@@ -460,9 +474,9 @@ msgid "operator '%s' has no right operand"
msgstr "Operator »%s« hat keinen rechten Operanden"
#: expr.c:764
-#, fuzzy, c-format
+#, c-format
msgid "operator '%s' has no left operand"
-msgstr "Operator »%s« hat keinen rechten Operanden"
+msgstr "Operator »%s« hat keinen linken Operanden"
#: expr.c:790
msgid " ':' without preceding '?'"
@@ -519,35 +533,35 @@ msgstr "Division durch null in #if"
msgid "NULL directory in find_file"
msgstr "NULL-Verzeichnis in find_file"
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr "ein oder mehrere PCH-Dateien wurden gefunden, aber sie sind ungültig"
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
-msgstr "verwenden Sie -Winvalid-pch für mehr Informationen"
+msgstr "-Winvalid-pch für mehr Informationen verwenden"
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s ist ein Block-Gerät"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s ist zu groß"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s ist kürzer als erwartet"
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr "kein Include-Pfad, um %s zu finden"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n"
@@ -599,9 +613,9 @@ msgid "trigraph ??%c converted to %c"
msgstr "Trigraph ??%c in %c konvertiert"
#: lex.c:301
-#, fuzzy, c-format
+#, c-format
msgid "trigraph ??%c ignored, use -trigraphs to enable"
-msgstr "Trigraph ??%c ignoriert"
+msgstr "Trigraph ??%c ignoriert, -trigraphs zum Aktivieren verwenden"
#: lex.c:347
msgid "\"/*\" within comment"
@@ -719,87 +733,87 @@ msgstr "unvollendete Argumentliste beim Makroaufruf »%s«"
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"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "doppelter Makroparameter »%s«"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "»%s« darf nicht in Makroparameterliste auftreten"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "Makroparameter müssen mit Komma getrennt sein"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "Parametername fehlt"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr "anonyme variadische Makros wurden in C99 eingeführt"
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr "ISO-C erlaubt keine benannten variadischen Makros"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "fehlendes ')' in Makroparameterliste"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO-C erfordert Whitespace hinter Makroname"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "'#' wird nicht von einem Makroparameter gefolgt"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' kann nicht an den Enden einer Makroexpansion auftreten"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "»%s« redefiniert"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "dies ist die Stelle der vorherigen Definition"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "Makroargument »%s« würde in traditionellem C zum String gewandelt werden"
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr "beim Schreiben des vorkompilierten Headers"
-#: pch.c:466
+#: pch.c:467
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: nicht verwendet, da »%.*s« nicht definiert"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr "%s: nicht verwendet, da »%.*s« als »%s« statt als »%.*s« definiert wurde"
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: nicht verwendet, da »%s« definiert ist"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr "beim Lesen des vorkompilierten Headers"
diff --git a/libcpp/po/el.po b/libcpp/po/el.po
index 8e903e468c3..9b62ae7bf4f 100644
--- a/libcpp/po/el.po
+++ b/libcpp/po/el.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.2\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -14,122 +14,132 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-7\n"
"Content-Transfer-Encoding: 8bit\n"
-#: charset.c:653
+#: charset.c:655
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "U+%04X: åêôüò ïñßùí ÷áñáêôÞñáò"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr ""
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr ""
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr ""
-#: charset.c:996
+#: charset.c:1053
#, fuzzy
msgid "hex escape sequence out of range"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
-#: charset.c:1035
+#: charset.c:1092
#, fuzzy
msgid "octal escape sequence out of range"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
# src/main.c:663
-#: charset.c:1118
+#: charset.c:1175
#, fuzzy, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
# src/main.c:663
-#: charset.c:1121
+#: charset.c:1178
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
-#: charset.c:1127
+#: charset.c:1184
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
#, fuzzy
msgid "character constant too long for its type"
msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-#: charset.c:1252
+#: charset.c:1309
#, fuzzy
msgid "multi-character character constant"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: charset.c:1344
+#: charset.c:1401
#, fuzzy
msgid "empty character constant"
msgstr "êåíü áëöáñéèìçôéêü"
-#: charset.c:1393
+#: charset.c:1450
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
@@ -206,141 +216,146 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr ""
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr ""
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
-#: directives.c:784
+#: directives.c:792
#, fuzzy, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: directives.c:790
+#: directives.c:798
#, fuzzy
msgid "line number out of range"
msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, fuzzy, c-format
msgid "\"%s\" is not a valid filename"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: directives.c:840
+#: directives.c:848
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: directives.c:942
+#: directives.c:950
#, fuzzy
msgid "invalid #ident directive"
msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
-#: directives.c:1036
+#: directives.c:1044
#, fuzzy, c-format
msgid "#pragma %s is already registered"
msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr ""
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr ""
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "áäõíáìßá áíïßãìáôïò õðïäï÷Þò: %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr ""
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else ìåôÜ áðü #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr ""
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr ""
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif ìåôÜ áðü #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr ""
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr ""
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr ""
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr ""
-#: directives.c:1745
+#: directives.c:1753
#, fuzzy
msgid "assertion without predicate"
msgstr "Ç ëåéôïõñãßá äåí åðéôñÝðåôáé"
-#: directives.c:1747
+#: directives.c:1755
#, fuzzy
msgid "predicate must be an identifier"
msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: directives.c:2056
+#: directives.c:2064
#, fuzzy, c-format
msgid "unterminated #%s"
msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
@@ -545,36 +560,36 @@ msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, fuzzy, c-format
msgid "%s is a block device"
msgstr "Äåí Ýìåéíå êáèüëïõ ÷þñïò óôç óõóêåõÞ"
# src/shred.c:1134
-#: files.c:531
+#: files.c:539
#, fuzzy, c-format
msgid "%s is too large"
msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
-#: files.c:566
+#: files.c:574
#, fuzzy, c-format
msgid "%s is shorter than expected"
msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr ""
@@ -752,88 +767,88 @@ msgstr ""
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: macro.c:1258
+#: macro.c:1261
#, fuzzy, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr ""
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr ""
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr ""
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: macro.c:1573
+#: macro.c:1577
#, fuzzy, c-format
msgid "\"%s\" redefined"
msgstr "áüñéóôï"
-#: macro.c:1578
+#: macro.c:1582
#, fuzzy
msgid "this is the location of the previous definition"
msgstr "áõôÞ åßíáé ç èÝóç ôïõ ðñþôïõ ïñéóìïý"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr ""
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
@@ -1661,10 +1676,6 @@ msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí"
#~ msgid "unknown string token %s\n"
#~ msgstr "¶ãíùóôÞ åðéëïãÞ ãéá ôï `s'"
-#, fuzzy
-#~ msgid "empty file name in #%s"
-#~ msgstr "Ìç ïñéóìÝíï üíïìá %s"
-
#~ msgid "invalid option %s"
#~ msgstr "ìç Ýãêõñç åðéëïãÞ %s"
diff --git a/libcpp/po/es.po b/libcpp/po/es.po
index c9a14cb68cc..8bf69bf95e1 100644
--- a/libcpp/po/es.po
+++ b/libcpp/po/es.po
@@ -1,126 +1,136 @@
-# Mensajes en español para cpplib-4.0-b20041128.
-# Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004.
+# Mensajes en español para cpplib-4.0-b20050226.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003, 2004, 2005.
#
msgid ""
msgstr ""
-"Project-Id-Version: cpplib-4.0-b20041128\n"
+"Project-Id-Version: cpplib-4.0-b20050226\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
-"PO-Revision-Date: 2004-12-02 07:57-0600\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\n"
+"PO-Revision-Date: 2005-03-02 09:57-0600\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"
-#: charset.c:653
+#: charset.c:655
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "la conversión de %s a %s no está soportada por iconv"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr "iconv_open"
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "no hay una implementación de iconv, no se puede convertir de %s a %s"
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "el carácter 0x%lx no está en el conjunto básico de caracteres fuente\n"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr "convirtiendo al conjunto de caracteres de ejecución"
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "el carácter 0x%lx no es unibyte en el conjunto de caracteres de ejecución"
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr "los nombres universales de carácter sólo son válidos en C++ y C99"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "el significado de '\\%c' es diferente en C tradicional"
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "nombre universal de carácter %.*s incompleto"
-#: charset.c:849
+#: charset.c:906
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "%.*s no es un carácter universal válido"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "el carácter universal %.*s no es válido en un identificador"
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "el carácter universal %.*s no es válido al inicio de un identificador"
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr "convirtiendo un NUC al conjunto de caracteres fuente"
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr "convirtiendo un NUC al conjunto de caracteres de ejecución"
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr "el significado de '\\x' es diferente en C tradicional"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "se usó \\x sin dígitos hexadecimales a continuación"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "secuencia de escape hexadecimal fuera de rango"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "secuencia de escape octal fuera de rango"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr "el significado de '\\a' es diferente en C tradicional"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "secuencia de escape que no es estándard ISO, '\\%c'"
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "secuencia de escape desconocida, '\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "secuencia de escape desconocida: '\\%03o'"
-#: charset.c:1127
+#: charset.c:1184
msgid "converting escape sequence to execution character set"
msgstr "convirtiendo una secuencia de escape al conjunto de caracteres de ejecución"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr "convirtiendo al conjunto de caracteres de ejecución"
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
msgid "character constant too long for its type"
msgstr "constante de carácter demasiado grande para su tipo"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "constante de carácter con múltiples caracteres"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "constante de carácter vacía"
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr "no se puede convertir %s a %s"
@@ -195,137 +205,142 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s espera \"NOMBRE_ARCHIVO\" ó <NOMBRE_ARCHIVO>"
#: directives.c:673
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nombre de fichero vacío en #%s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include anidado con demasiada profundidad"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "#include_next en fichero primario de código fuente"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "indicador \"%s\" inválido en la línea de la directiva"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" después de #line no es un entero positivo"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "número de línea fuera de rango"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" no es un nombre de fichero válido"
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" después de # no es un entero positivo"
-#: directives.c:942
+#: directives.c:950
msgid "invalid #ident directive"
msgstr "directiva #ident inválida"
-#: directives.c:1030
+#: directives.c:1038
#, 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"
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s ya está registrado"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s ya está registrado"
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "#pragma una vez en el fichero principal"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "directiva #pragma de GCC envenenada inválida"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "envenenando la macro existente \"%s\""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorado fuera del fichero a incluir"
-#: directives.c:1313
+#: directives.c:1321
#, c-format
msgid "cannot find source file %s"
msgstr "no se puede encontrar el fichero fuente %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "el fichero actual es más antiguo que %s"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma lleva una cadena literal entre paréntesis"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else sin #if"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else después de #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "el condicional empezó aquí"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif sin #if"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif después de #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif sin #if"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "falta '(' antes del predicado"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "falta ')' para completar la respuesta"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "el predicado de la respuesta está vacío"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "afirmación sin predicado"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "el predicado debe ser un identificador"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" reafirmado"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "#%s sin terminar"
@@ -516,35 +531,35 @@ msgstr "división por cero en #if"
msgid "NULL directory in find_file"
msgstr "directorio NULL en find_file"
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr "se encontró uno o más ficheros PCH, pero eran inválidos"
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr "use -Winvalid-pch para más información"
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s es un dispositivo de bloques"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s es demasiado grande"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s es más corto de lo esperado"
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr "no hay ruta de inclusión en la cual se pueda buscar %s"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "Guardias múltiples de include pueden ser útiles para:\n"
@@ -716,87 +731,87 @@ msgstr "lista de argumentos sin terminar al invocar la macro \"%s\""
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"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "parámetro de macro \"%s\" duplicado"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" podría faltar en la lista de parámetro de macro"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "los parámetros de macro deben ser separados por comas"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "falta el nombre del parámetro"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr "los macros variadic anónimos se introdujeron en C99"
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C no permite macros variadic nombrados"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "falta paréntesis derecho en la lista de parámetros de macro"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requiere espacios en blanco después del nombre de macro"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "'#' no es seguido por un parámetro de macro"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' no puede aparece en o al final de una expansión de macro"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "se redefinió \"%s\""
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "esta es la ubicación de la definición previa"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
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"
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "tipo de hash %d inválido en cpp_macro_definition"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr "al escribir el encabezado precompilado"
-#: pch.c:466
+#: pch.c:467
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: no se usa porque `%.*s' no está definido"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr "%s: no se usa porque `%.*s' está definido como `%s' no como `%.*s'"
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: no se usa porque `%s' está definido"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr "al leer el encabezado precompilado"
diff --git a/libcpp/po/fr.po b/libcpp/po/fr.po
index dad50c7cab0..ba8f8781f12 100644
--- a/libcpp/po/fr.po
+++ b/libcpp/po/fr.po
@@ -118,7 +118,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU cpplib 4.0-b20041128\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\n"
"PO-Revision-Date: 2004-12-02 20:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -127,114 +127,124 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: charset.c:653
+#: charset.c:655
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "conversion de %s vers %s n'est pas supporté par iconv"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr "iconv_open"
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "pas d'implantation iconv, ne peut convertir de %s vers %s"
-#: charset.c:808
+#: charset.c:743
+#, fuzzy, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "conversion UCN vers le jeu source de caractères"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr "conversion vers un jeu d'exécution de caractères"
+
+#: charset.c:766
+#, fuzzy, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "conversion vers un jeu d'exécution de caractères"
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr "noms de caractère universel sont seulement valides en C++ et C89"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "la signification de « \\%c » est différente en C traditionel"
# FIXME
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "nom de caractère universel incomplet %.*s"
-#: charset.c:849
+#: charset.c:906
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "%.*s n'est pas un caractère universel valide"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "caractère universel %.*s n'est pas valide dans un identificcateur"
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "caractère universel %.*s n'est pas valide au début d'un identificcateur"
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr "conversion UCN vers le jeu source de caractères"
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr "conversion UCN vers le jeu d'exécution de caractères"
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr "la signification de « \\x » est différente en C traditionel"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "\\x utilisé sans être suivi de chiffres en hexdécimal"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "séquence d'échappement hexadécimale hors limite"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "séquence d'échappement octale hors limite"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr "la signification de « \\a » est différente en C traditionel"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "séquence d'échappement « \\%c » non conforme au standard ISO"
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "séquence d'échappement « \\%c » inconnue"
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "séquence d'échappement « \\%03o » inconnue"
-#: charset.c:1127
+#: charset.c:1184
msgid "converting escape sequence to execution character set"
msgstr "conversion d'une séquence d'échappement vers un jeu d'exécution de caractères"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr "conversion vers un jeu d'exécution de caractères"
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
msgid "character constant too long for its type"
msgstr "constante caractère trop longue pour son type"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "constante caractère multi-caractères"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "constante caractère vide"
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr "échec de conversion de %s vers %s"
@@ -309,142 +319,147 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "modes incompatibles dans %s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include imbriqué trop profondément"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "#include_next dans un fichier source primaire"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "fanion « %s » invalide dans la ligne de directive"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "« %s » après #line n'est pas un nombre entier positif"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "numéro de ligne hors limite"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "« %s » n'est pas un nom de fichier valide"
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "« %s » après # n'est pas un nombre entier positif"
-#: directives.c:942
+#: directives.c:950
msgid "invalid #ident directive"
msgstr "directive #ident invalide"
# FIXME
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "enregistrement de \"%s\" à la fois comme une pragma et un espace de nom de pragma"
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "la #pragma %s %s est déjà enregistrée"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr "la #pragma %s est déjà enregistrée"
# FIXME
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "#pragma once utilisée une seule fois dans le fichier principal"
# FIXME
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "la directive GCC #pragma poison est invalide"
# FIXME
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "élimination de la macro existente « %s »"
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorée en dehors du fichier d'inclusion"
-#: directives.c:1313
+#: directives.c:1321
#, c-format
msgid "cannot find source file %s"
msgstr "impossible de trouver le fichier source %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "le fichier courant est plus vieux que %s"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma prend une chaîne entourée de parenthèrese"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else sans #if"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else après #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "la condition débute ici"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif sans #if"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif après #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif sans #if"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "« ( » manquante après le prédicat"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "« ) » manquante pour completer la réponse"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "la réponse du prédicat est vide"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "assertion sans prédicat"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "le prédicat doit être un identificateur"
# FIXME
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "« %s » re-asserti"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "#%s non terminé"
@@ -635,37 +650,37 @@ msgstr "division par zéro dans #if"
msgid "NULL directory in find_file"
msgstr "répertoire NUL dans find_file"
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr "un ou plusieurs fichiers PCH ont été repérés, mais ils étaient invalides"
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr "utiliser -Winvalid-pch pour plus d'informations"
# FIXME
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s est un périphérique de blocs"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s est trop grand"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s est plus petit que prévu"
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr "aucun chemin d'inclusion dans lequel on pourrait repérer %s"
# FIXME
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "De multiples balises pour les inclusions peuvent être utiles pour:\n"
@@ -839,88 +854,88 @@ msgstr "liste d'arguments non terminée invoquant la macro « %s »"
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "la macro « %s » ressemblant à une fonction doit utilisée avec des arguments en C traditionnel"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "paramètre de macro « %s » en double"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "« %s » peut ne pas apparaître parmi les paramètres de macros"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "les paramètres de macro doivent être séparés par des virgules"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "nom de paramètre manquant"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr "les macros anonymes à nombre variable d'arguments ont été introduites avec le C99"
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C ne permet pas les macros nommées à nombre variable d'arguments"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "« ) » manquante dans la liste des paramètres de macros"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requiert un blanc après le nom de la macro"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "« # » n'est pas suivi d'un paramètre de macro"
# FIXME
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "« ## » ne peut apparaître à chacune des fins de l'expansion de macros"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "« %s » redéfini"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "ceci est la localisation d'une précédente définition"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "l'argument macro « %s » serait changé en chaine en C traditionnel"
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "type de hachage %d invalide dans cpp_macro_definition"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr "lors de l'écriture de l'en-tête pré-compilée"
-#: pch.c:466
+#: pch.c:467
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: n'est pas utilisé parce que « %.*s » n'est pas définie"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr "%s: n'est pas utilisé parce que « %.*s » est défini en tant « %s » et non pas « %.*s »"
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: non utilisé parce que « %s » est défini"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr "lors de la lecture de l'en-tête pré-compilée"
@@ -17434,9 +17449,6 @@ msgstr "erreur de syntaxe dans la liste de paramètres macro"
#~ msgid "right hand side of assignment is a mode"
#~ msgstr "côté droit de l'affectation est un mode"
-#~ msgid "incompatible modes in %s"
-#~ msgstr "modes incompatibles dans %s"
-
#~ msgid "bad string length in %s"
#~ msgstr "chaîne de longueur erronée dans %s"
diff --git a/libcpp/po/ja.po b/libcpp/po/ja.po
index 2c40684ee76..ff25219837b 100644
--- a/libcpp/po/ja.po
+++ b/libcpp/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.0\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -16,118 +16,128 @@ msgstr ""
"Content-Type: text/plain; charset=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n"
-#: charset.c:653
+#: charset.c:655
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "NaN ¤«¤éÉä¹ç̵¤·À°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, fuzzy, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "universal-character-name ¤Ï `%c' ¤ò»Ø¼¨¤·¤Þ¤·¤¿¤¬¡¢´ðËÜŪ¤Êʸ»ú½¸¹ç¤Î°ìÉô¤Ç¤¹"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾ `\\U%08x' ¤Ï¼±Ê̻ҤÎÃæ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: charset.c:811
+#: charset.c:868
#, fuzzy, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "'\\%c' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
-#: charset.c:837
+#: charset.c:894
#, fuzzy, c-format
msgid "incomplete universal character name %.*s"
msgstr "̵¸ú¤Ê ¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾"
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "ÉÔŬÀڤʥæ¥Ë¥Ð¡¼¥µ¥ë¥­¥ã¥é¥¯¥¿Ì¾"
-#: charset.c:859
+#: charset.c:916
#, fuzzy, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾ `\\U%08x' ¤Ï¼±Ê̻ҤÎÃæ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: charset.c:863
+#: charset.c:920
#, fuzzy, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾ `\\U%08x' ¤Ï¼±Ê̻ҤÎÃæ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr ""
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr ""
-#: charset.c:972
+#: charset.c:1029
#, fuzzy
msgid "the meaning of '\\x' is different in traditional C"
msgstr "'\\a' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "\\x ¤Ë¡¢¤½¤ì¤Ë³¤¯¤Ï¤º¤Î 16 ¿Ê¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "16 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "8 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
-#: charset.c:1103
+#: charset.c:1160
#, fuzzy
msgid "the meaning of '\\a' is different in traditional C"
msgstr "'\\a' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "Èó ISO ɸ½à¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹, '\\%c'"
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ '\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ '\\%c'"
-#: charset.c:1127
+#: charset.c:1184
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "ʸ»ú¤ËÂФ¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
#, fuzzy
msgid "character constant too long for its type"
msgstr "ʸ»úÄê¿ô¤¬Ä¹¤¹¤®¤Þ¤¹"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "Ê£¿ôʸ»ú¤«¤é¤Ê¤ëʸ»úÄê¿ô"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "¶õ¤Îʸ»úÄê¿ô"
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr ""
@@ -203,138 +213,143 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s ¤Ï \"¥Õ¥¡¥¤¥ë̾\" ¤¢¤ë¤¤¤Ï <¥Õ¥¡¥¤¥ë̾> ¤òɬÍפȤ·¤Þ¤¹"
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "#%s ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤¬¶õ¤Ç¤¹"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include ¤Î¥Í¥¹¥È¤¬¿¼¤¹¤®¤Þ¤¹"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "#include_next ¤¬¼ç¤¿¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤¢¤ê¤Þ¤¹"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "\"%s\" ¤Ï line ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤Ï̵¸ú¤Ê¥Õ¥é¥°¤Ç¤¹"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "#line ¤Î¸å¤í¤Î \"%s\" ¤¬Àµ¤ÎÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "¹ÔÈֹ椬Èϰϳ°¤Ç¤¹"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" ¤ÏÀµ¾ï¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: directives.c:840
+#: directives.c:848
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "#line ¤Î¸å¤í¤Î \"%s\" ¤¬Àµ¤ÎÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: directives.c:942
+#: directives.c:950
#, fuzzy
msgid "invalid #ident directive"
msgstr "̵¸ú¤Ê #ident"
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: directives.c:1033
+#: directives.c:1041
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "¥¯¥é¥¹ `%s' ¤Ï´û¤Ë¸ºß¤·¤Þ¤¹"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "#pragma once ¤¬¥á¥¤¥ó¥Õ¥¡¥¤¥ë¤Ë¤¢¤ê¤Þ¤¹"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "#pragma GCC ±øÀ÷¥Ç¥£¥ì¥¯¥Æ¥£¥ô¤¬Ìµ¸ú¤Ç¤¹"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "´û¸¤Î¥Þ¥¯¥í \"%s' ¤ò±øÀ÷¤·¤Þ¤¹"
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "include ¥Õ¥¡¥¤¥ë³°¤Î #pragma system_header ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "¥½¡¼¥¹ %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ï %s ¤è¤ê¸Å¤¤¤Ç¤¹"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pramga ¤¬³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎó¥ê¥Æ¥é¥ë¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else ¤¬ #else ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "¤½¤Î¾ò·ï¤Ï¤³¤³¤«¤é»Ï¤Þ¤ê¤Þ¤¹"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif ¤¬ #else ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "²ò¤òÊä´°¤¹¤ë ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "½Ò¸ì¤Î²ò¤¬¶õ¤Ç¤¹"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "½Ò¸ì¤Î¤Ê¤¤¥¢¥µ¡¼¥·¥ç¥ó¤Ç¤¹"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "½Ò¸ì¤Ï¼±Ê̻ҤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" ¤¬ºÆ¥¢¥µ¡¼¥È¤µ¤ì¤Þ¤·¤¿"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "½ªÃ¼¤Î¤Ê¤¤ #%s"
@@ -540,35 +555,35 @@ msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s ¤Ï¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¹"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s ¤ÏÂ礭¤¹¤®¤Þ¤¹"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s ¤¬ËÜÍè¤è¤ê¤âû¤¤¤Ç¤¹"
-#: files.c:769
+#: files.c:803
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "%s ¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "¿½Å include ¤«¤é¤ÎÊݸͭ±×¤È¤Ê¤ë¤Ç¤·¤ç¤¦:\n"
@@ -743,87 +758,87 @@ msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤°ú¿ô¥ê¥¹¥È¤¬¥Þ¥¯¥í \"%s\" ¤òµ¯Æ°¤·¤è¤¦¤È¤·¤Þ¤·¤¿"
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "¸Å¤¤ C ¤Ç¤Ï¡¢´Ø¿ôŪ¥Þ¥¯¥í \"%s\" ¤Ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "¥Þ¥¯¥í²¾°ú¿ô \"%s\" ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" ¤Ï¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ë¸½¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "¥Þ¥¯¥í²¾°ú¿ô¤Ï¥«¥ó¥Þ¶èÀڤꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr "̵̾²ÄÊÑ°ú¿ô¥Þ¥¯¥í¤Ï C99 ¤ÇºÎ¤êÆþ¤ì¤é¤ì¤Þ¤·¤¿"
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C ¤Ç¤Ï̾Á°¤Ä¤­²ÄÊÑ°ú¿ô¥Þ¥¯¥í¤òµö¤·¤Þ¤»¤ó"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ç¡¢')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C ¤Ç¤Ï¥Þ¥¯¥í̾¤Î¸å¤í¤Ë¶õÇò¤òÍ׵ᤷ¤Þ¤¹"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' ¤Ï¥Þ¥¯¥íŸ³«¤Îξü¤Ë¤Ï½Ð¸½¤Ç¤­¤Þ¤»¤ó"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "¤³¤³¤¬°ÊÁ°¤ÎÀë¸À¤¬¤¢¤ë°ÌÃ֤Ǥ¹"
-#: macro.c:1628
+#: macro.c:1632
#, fuzzy, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "¥Þ¥¯¥í°ú¿ô \"%s\" ¤Ï -traditional ¤ò¤Ä¤±¤ë¤Èʸ»úÎ󲽤µ¤ì¤¿»ö¤Ç¤·¤ç¤¦"
-#: macro.c:1651
+#: macro.c:1655
#, fuzzy, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "dump_definition ¤Ë ̵¸ú¤Ê¥Ï¥Ã¥·¥å¥¿¥¤¥× %d"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "`%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
@@ -6736,9 +6751,6 @@ msgstr "\"%s\" ¤Ï¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ë¸½¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
#~ msgid "\"%s\" cannot be used as a macro name"
#~ msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-#~ msgid "empty file name in #%s"
-#~ msgstr "#%s ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤¬¶õ¤Ç¤¹"
-
#~ msgid "attempt to push file buffer with contexts stacked"
#~ msgstr "¥¹¥¿¥Ã¥¯¤µ¤ì¤¿¥³¥ó¥Æ¥¯¥¹¥È¤È°ì½ï¤Ë¥Õ¥¡¥¤¥ë¥Ð¥Ã¥Õ¥¡¤ò push ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
@@ -10082,9 +10094,6 @@ msgstr "\"%s\" ¤Ï¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ë¸½¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
#~ msgid "invalid `#pragma implementation'"
#~ msgstr "̵¸ú¤Ê `#pragma implementation'"
-#~ msgid "universal-character-name designates `%c', part of the basic source character set"
-#~ msgstr "universal-character-name ¤Ï `%c' ¤ò»Ø¼¨¤·¤Þ¤·¤¿¤¬¡¢´ðËÜŪ¤Êʸ»ú½¸¹ç¤Î°ìÉô¤Ç¤¹"
-
#~ msgid "%s at end of saved text"
#~ msgstr "ÊݸºÑ¤ß¥Æ¥­¥¹¥È¤ÎËöÈø¤Ç%s"
diff --git a/libcpp/po/nl.po b/libcpp/po/nl.po
index 50ec749537e..734c233aaed 100644
--- a/libcpp/po/nl.po
+++ b/libcpp/po/nl.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.3.2\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -18,119 +18,129 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: charset.c:653
+#: charset.c:655
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
#, fuzzy
msgid "universal character names are only valid in C++ and C99"
msgstr "case-waarde buiten bereik"
-#: charset.c:811
+#: charset.c:868
#, fuzzy, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt wordt"
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "`%s' is geen iterator"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr ""
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr ""
-#: charset.c:972
+#: charset.c:1029
#, fuzzy
msgid "the meaning of '\\x' is different in traditional C"
msgstr "de betekenis van `\\x' varieert naargelang -traditional al dan niet gebruikt wordt"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "\\x gebruikt zonder daaropvolgende hexadecimale cijfers"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "hexadecimale escape sequence buiten bereik"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "octale escape sequence buiten bereik"
-#: charset.c:1103
+#: charset.c:1160
#, fuzzy
msgid "the meaning of '\\a' is different in traditional C"
msgstr "de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt wordt"
-#: charset.c:1110
+#: charset.c:1167
#, fuzzy, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "niet-ANSI-standaard escape sequence `\\%c'"
-#: charset.c:1118
+#: charset.c:1175
#, fuzzy, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "onbekende escape sequence `\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "onbekende escape sequence `\\%c'"
-#: charset.c:1127
+#: charset.c:1184
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "octale escape sequence buiten bereik"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
#, fuzzy
msgid "character constant too long for its type"
msgstr "karakterconstante te lang"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "karakterconstante met meer dan één karakter"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "lege karakterconstante"
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: charset.c:1393
+#: charset.c:1450
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
@@ -208,145 +218,150 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "`#%s' verwacht \"BESTAND\" of <BESTAND>"
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "lege bestandsnaam in `#%s'"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr ""
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr ""
-#: directives.c:737
+#: directives.c:745
#, fuzzy, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "`#line'-commando in slecht formaat"
-#: directives.c:784
+#: directives.c:792
#, fuzzy, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "switch-waarde is geen integer"
-#: directives.c:790
+#: directives.c:798
#, fuzzy
msgid "line number out of range"
msgstr "case-waarde buiten bereik"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, fuzzy, c-format
msgid "\"%s\" is not a valid filename"
msgstr "-fPIC is niet geldig met -mcoff"
-#: directives.c:840
+#: directives.c:848
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "switch-waarde is geen integer"
-#: directives.c:942
+#: directives.c:950
#, fuzzy
msgid "invalid #ident directive"
msgstr "`#line'-commando in slecht formaat"
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: directives.c:1236
+#: directives.c:1244
#, fuzzy
msgid "#pragma once in main file"
msgstr "`#pragma once' is verouderd"
-#: directives.c:1259
+#: directives.c:1267
#, fuzzy
msgid "invalid #pragma GCC poison directive"
msgstr "ongeldig preprocessing-commando"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "[kan %s niet vinden]"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: directives.c:1431
+#: directives.c:1439
#, fuzzy
msgid "_Pragma takes a parenthesized string literal"
msgstr "Onbeëindigde stringconstante"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr ""
-#: directives.c:1543
+#: directives.c:1551
#, fuzzy
msgid "#else after #else"
msgstr "`#else' na `#else'"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr ""
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr ""
-#: directives.c:1576
+#: directives.c:1584
#, fuzzy
msgid "#elif after #else"
msgstr "`#elif' na `#else'"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr ""
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr ""
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr ""
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr ""
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr ""
-#: directives.c:1747
+#: directives.c:1755
#, fuzzy
msgid "predicate must be an identifier"
msgstr "`defined' zonder een naam"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: directives.c:2056
+#: directives.c:2064
#, fuzzy, c-format
msgid "unterminated #%s"
msgstr "niet-beëindigde commentaar"
@@ -558,35 +573,35 @@ msgstr "deling door nul in `#if'"
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr ""
-#: files.c:531
+#: files.c:539
#, fuzzy, c-format
msgid "%s is too large"
msgstr "bestand `%s' is te groot"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr ""
-#: files.c:769
+#: files.c:803
#, fuzzy, c-format
msgid "no include path in which to search for %s"
msgstr "Geen include-pad waarin %s kan gevonden worden"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr ""
@@ -766,93 +781,93 @@ msgstr "niet-beëindigde parameterlijst in `#define'"
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: macro.c:1258
+#: macro.c:1261
#, fuzzy, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "herhaald lid `%s'"
-#: macro.c:1303
+#: macro.c:1306
#, fuzzy, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "ongeldig karakter in naam van macro-parameter"
-#: macro.c:1311
+#: macro.c:1314
#, fuzzy
msgid "macro parameters must be comma-separated"
msgstr "parameter 2 moet een locatie zijn"
-#: macro.c:1328
+#: macro.c:1331
#, fuzzy
msgid "parameter name missing"
msgstr "parameternaam weggelaten"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: macro.c:1350
+#: macro.c:1353
#, fuzzy
msgid "ISO C does not permit named variadic macros"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-#: macro.c:1359
+#: macro.c:1362
#, fuzzy
msgid "missing ')' in macro parameter list"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: macro.c:1458
+#: macro.c:1462
#, fuzzy
msgid "'#' is not followed by a macro parameter"
msgstr "`#' operator wordt niet gevolgd door een naam van een macro-argument"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: macro.c:1573
+#: macro.c:1577
#, fuzzy, c-format
msgid "\"%s\" redefined"
msgstr "`%.*s' opnieuw gedefinieerd"
-#: macro.c:1578
+#: macro.c:1582
#, fuzzy
msgid "this is the location of the previous definition"
msgstr "dit is een eerdere declaratie"
-#: macro.c:1628
+#: macro.c:1632
#, fuzzy, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "macro-argument `%.*s' zou met -traditional string gemaakt worden."
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr ""
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
@@ -3482,10 +3497,6 @@ msgstr "ongeldig karakter in naam van macro-parameter"
#~ msgstr "escape-sequentie buiten bereik voor karakter"
#, fuzzy
-#~ msgid "empty file name in #%s"
-#~ msgstr "lege bestandsnaam in `#%s'"
-
-#, fuzzy
#~ msgid "#pragma once is obsolete"
#~ msgstr "`#pragma once' is verouderd"
diff --git a/libcpp/po/rw.po b/libcpp/po/rw.po
new file mode 100644
index 00000000000..19940f285d8
--- /dev/null
+++ b/libcpp/po/rw.po
@@ -0,0 +1,967 @@
+# Kinyarwanda translations for cpplib package.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the cpplib 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: cpplib 4.0-b20050226\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
+
+#: charset.c:655
+#, fuzzy, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "Ihindurangero Bivuye Kuri OYA ku"
+
+#: charset.c:658
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:666
+#, fuzzy, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "Oya GUHINDURA Bivuye Kuri"
+
+#: charset.c:743
+#, fuzzy, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "Inyuguti ni OYA in i BASIC Inkomoko Inyuguti"
+
+#: charset.c:760 charset.c:1243
+#, fuzzy
+msgid "converting to execution character set"
+msgstr "Guhindura.... Kuri Inyuguti Gushyiraho"
+
+#: charset.c:766
+#, fuzzy, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "Inyuguti ni OYA in Inyuguti Gushyiraho"
+
+#: charset.c:865
+#, fuzzy
+msgid "universal character names are only valid in C++ and C99"
+msgstr "Ky'isi yose Inyuguti Amazina Byemewe in C Na"
+
+#: charset.c:868
+#, fuzzy, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "i Igisobanuro Bya ni in C"
+
+#: charset.c:894
+#, fuzzy, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "Ky'isi yose Inyuguti Izina: S"
+
+#: charset.c:906
+#, fuzzy, c-format
+msgid "%.*s is not a valid universal character"
+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"
+"."
+
+#: charset.c:916
+#, fuzzy, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "Ky'isi yose Inyuguti S ni OYA Byemewe in Ikiranga"
+
+#: charset.c:920
+#, fuzzy, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "Ky'isi yose Inyuguti S ni OYA Byemewe ku i Gutangira Bya Ikiranga"
+
+#: charset.c:953
+#, fuzzy
+msgid "converting UCN to source character set"
+msgstr "Guhindura.... Kuri Inkomoko Inyuguti Gushyiraho"
+
+#: charset.c:957
+#, fuzzy
+msgid "converting UCN to execution character set"
+msgstr "Guhindura.... Kuri Inyuguti Gushyiraho"
+
+#: charset.c:1029
+#, fuzzy
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "i Igisobanuro Bya ni in C"
+
+#: charset.c:1046
+#, fuzzy
+msgid "\\x used with no following hex digits"
+msgstr "\\xNa: Oya"
+
+#: charset.c:1053
+#, fuzzy
+msgid "hex escape sequence out of range"
+msgstr "Inyuma Bya Urutonde"
+
+#: charset.c:1092
+#, fuzzy
+msgid "octal escape sequence out of range"
+msgstr "Inyuma Bya Urutonde"
+
+#: charset.c:1160
+#, fuzzy
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "i Igisobanuro Bya ni in C"
+
+#: charset.c:1167
+#, fuzzy, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "Bisanzwe"
+
+#: charset.c:1175
+#, fuzzy, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "Kitazwi"
+
+#: charset.c:1178
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "Kitazwi"
+
+#: charset.c:1184
+#, fuzzy
+msgid "converting escape sequence to execution character set"
+msgstr "Guhindura.... Kuri Inyuguti Gushyiraho"
+
+#: charset.c:1306 charset.c:1369
+#, fuzzy
+msgid "character constant too long for its type"
+msgstr "Inyuguti kugirango Ubwoko"
+
+#: charset.c:1309
+#, fuzzy
+msgid "multi-character character constant"
+msgstr "Inyuguti Inyuguti"
+
+#: charset.c:1401
+#, fuzzy
+msgid "empty character constant"
+msgstr "ubusa Inyuguti"
+
+#: charset.c:1450
+#, fuzzy, c-format
+msgid "failure to convert %s to %s"
+msgstr "Kuri GUHINDURA Kuri"
+
+#: directives.c:216
+#, fuzzy, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "Birenga ku Impera Bya"
+
+#: directives.c:303
+#, fuzzy, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%sni a Umugereka"
+
+#: directives.c:315
+#, fuzzy
+msgid "suggest not using #elif in traditional C"
+msgstr "OYA ikoresha in C"
+
+#: directives.c:318
+#, fuzzy, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C Na: i hariho marije"
+
+#: directives.c:322
+#, fuzzy, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "Bivuye C Na: hariho marije"
+
+#: directives.c:348
+#, fuzzy
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "a muri Makoro ingingo ni OYA"
+
+#: directives.c:368
+#, fuzzy
+msgid "style of line directive is a GCC extension"
+msgstr "IMISUSIRE Bya Umurongo ni a Umugereka"
+
+#: directives.c:418
+#, fuzzy, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "Sibyo"
+
+#: directives.c:489
+#, fuzzy
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"Nka a Makoro Izina:"
+
+#: directives.c:495
+#, 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"
+
+#: directives.c:498
+#, fuzzy, c-format
+msgid "no macro name given in #%s directive"
+msgstr "Oya Makoro Izina: in"
+
+#: directives.c:501
+#, fuzzy
+msgid "macro names must be identifiers"
+msgstr "Makoro Amazina"
+
+#: directives.c:542
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: directives.c:597
+#, fuzzy
+msgid "missing terminating > character"
+msgstr "Ibuze Inyuguti"
+
+#: directives.c:650
+#, fuzzy, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%sCyangwa"
+
+#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "ubusa Izina ry'idosiye: in"
+
+#: directives.c:681
+#, fuzzy
+msgid "#include nested too deeply"
+msgstr "#Gushyiramo"
+
+#: directives.c:719
+#, fuzzy
+msgid "#include_next in primary source file"
+msgstr "#in Inkomoko IDOSIYE"
+
+#: directives.c:745
+#, fuzzy, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "Sibyo Ibendera in Umurongo"
+
+#: directives.c:792
+#, fuzzy, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\"Nyuma Umurongo ni OYA a Umubare wuzuye"
+
+#: directives.c:798
+#, fuzzy
+msgid "line number out of range"
+msgstr "Umurongo Umubare Inyuma Bya Urutonde"
+
+#: directives.c:811 directives.c:888
+#, fuzzy, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\"ni OYA a Byemewe Izina ry'idosiye:"
+
+#: directives.c:848
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\"Nyuma ni OYA a Umubare wuzuye"
+
+#: directives.c:950
+#, fuzzy
+msgid "invalid #ident directive"
+msgstr "Sibyo"
+
+#: directives.c:1038
+#, fuzzy, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "Nka Byombi a Na a"
+
+#: directives.c:1041
+#, fuzzy, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#ni"
+
+#: directives.c:1044
+#, fuzzy, c-format
+msgid "#pragma %s is already registered"
+msgstr "#ni"
+
+#: directives.c:1244
+#, fuzzy
+msgid "#pragma once in main file"
+msgstr "#Rimwe in IDOSIYE"
+
+#: directives.c:1267
+#, fuzzy
+msgid "invalid #pragma GCC poison directive"
+msgstr "Sibyo"
+
+#: directives.c:1276
+#, fuzzy, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "Makoro"
+
+#: directives.c:1297
+#, fuzzy
+msgid "#pragma system_header ignored outside include file"
+msgstr "#Hanze Gushyiramo IDOSIYE"
+
+#: directives.c:1321
+#, fuzzy, c-format
+msgid "cannot find source file %s"
+msgstr "Gushaka Inkomoko IDOSIYE"
+
+#: directives.c:1325
+#, fuzzy, c-format
+msgid "current file is older than %s"
+msgstr "KIGEZWEHO IDOSIYE ni"
+
+#: directives.c:1439
+#, fuzzy
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "a Ikurikiranyanyuguti"
+
+#: directives.c:1546
+#, fuzzy
+msgid "#else without #if"
+msgstr "#Ikindi NIBA"
+
+#: directives.c:1551
+#, fuzzy
+msgid "#else after #else"
+msgstr "#Ikindi Nyuma Ikindi"
+
+#: directives.c:1553 directives.c:1586
+#, fuzzy
+msgid "the conditional began here"
+msgstr "i"
+
+#: directives.c:1579
+#, fuzzy
+msgid "#elif without #if"
+msgstr "#NIBA"
+
+#: directives.c:1584
+#, fuzzy
+msgid "#elif after #else"
+msgstr "#Nyuma Ikindi"
+
+#: directives.c:1614
+#, fuzzy
+msgid "#endif without #if"
+msgstr "#NIBA"
+
+#: directives.c:1691
+#, fuzzy
+msgid "missing '(' after predicate"
+msgstr "Ibuze Nyuma"
+
+#: directives.c:1706
+#, fuzzy
+msgid "missing ')' to complete answer"
+msgstr "Ibuze Kuri Byuzuye"
+
+#: directives.c:1726
+#, fuzzy
+msgid "predicate's answer is empty"
+msgstr "ni ubusa"
+
+#: directives.c:1753
+msgid "assertion without predicate"
+msgstr ""
+
+#: directives.c:1755
+#, fuzzy
+msgid "predicate must be an identifier"
+msgstr "Ikiranga"
+
+#: directives.c:1841
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2064
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: errors.c:118
+#, fuzzy
+msgid "warning: "
+msgstr "Iburira!"
+
+#: errors.c:120
+#, fuzzy
+msgid "internal error: "
+msgstr "Ikosa ry'imbere"
+
+# starmath/source\smres.src:RID_ERR_IDENT.text
+#: errors.c:122
+#, fuzzy
+msgid "error: "
+msgstr "IKOSA"
+
+#: errors.c:181
+msgid "stdout"
+msgstr ""
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: errors.c:183
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: expr.c:192
+#, fuzzy
+msgid "too many decimal points in number"
+msgstr "NYACUMI Utudomo in Umubare"
+
+#: expr.c:212
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "Sibyo in"
+
+#: expr.c:218
+#, fuzzy
+msgid "use of C99 hexadecimal floating constant"
+msgstr "Gukoresha Bya Bihindagurika"
+
+#: expr.c:227
+#, fuzzy
+msgid "exponent has no digits"
+msgstr "Oya"
+
+#: expr.c:234
+#, fuzzy
+msgid "hexadecimal floating constants require an exponent"
+msgstr "Bihindagurika"
+
+#: expr.c:240
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "Sibyo Ingereka S ku Bihindagurika"
+
+#: expr.c:250 expr.c:275
+#, fuzzy, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C i S Ingereka"
+
+#: expr.c:261
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "Sibyo Ingereka S ku Umubare wuzuye"
+
+#: expr.c:283
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "Gukoresha Bya Umubare wuzuye"
+
+#: expr.c:290
+#, fuzzy
+msgid "imaginary constants are a GCC extension"
+msgstr "NYURABWENGE a Umugereka"
+
+#: expr.c:376
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "Umubare wuzuye ni Binini kugirango Ubwoko"
+
+#: expr.c:388
+#, fuzzy
+msgid "integer constant is so large that it is unsigned"
+msgstr "Umubare wuzuye ni Binini ni Bitashizweho umukono"
+
+#: expr.c:470
+#, fuzzy
+msgid "missing ')' after \"defined\""
+msgstr "Ibuze Nyuma"
+
+#: expr.c:477
+#, fuzzy
+msgid "operator \"defined\" requires an identifier"
+msgstr "Mukoresha Ikiranga"
+
+#: expr.c:485
+#, fuzzy, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\"ni kugirango in C"
+
+#: expr.c:495
+#, fuzzy
+msgid "this use of \"defined\" may not be portable"
+msgstr "iyi Gukoresha Bya Gicurasi OYA"
+
+#: expr.c:534
+#, fuzzy
+msgid "floating constant in preprocessor expression"
+msgstr "Bihindagurika in imvugo"
+
+#: expr.c:540
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "NYURABWENGE Umubare in imvugo"
+
+#: expr.c:585
+#, fuzzy, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\"ni OYA"
+
+#: expr.c:716 expr.c:745
+#, fuzzy, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "Ibuze Nyabibiri Mukoresha Mbere"
+
+#: expr.c:736
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "ni OYA Byemewe in"
+
+#: expr.c:753
+#, fuzzy
+msgid "missing expression between '(' and ')'"
+msgstr "Ibuze imvugo hagati Na"
+
+#: expr.c:756
+#, fuzzy
+msgid "#if with no expression"
+msgstr "#NIBA Na: Oya imvugo"
+
+#: expr.c:759
+#, fuzzy, c-format
+msgid "operator '%s' has no right operand"
+msgstr "Mukoresha Oya Iburyo:"
+
+#: expr.c:764
+#, fuzzy, c-format
+msgid "operator '%s' has no left operand"
+msgstr "Mukoresha Oya Ibumoso:"
+
+#: expr.c:790
+msgid " ':' without preceding '?'"
+msgstr ""
+
+#: expr.c:817
+#, fuzzy
+msgid "unbalanced stack in #if"
+msgstr "in NIBA"
+
+#: expr.c:836
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "Mukoresha"
+
+#: expr.c:928
+#, fuzzy
+msgid "missing ')' in expression"
+msgstr "Ibuze in imvugo"
+
+#: expr.c:949
+#, 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"
+"."
+
+#: expr.c:959
+#, fuzzy
+msgid "integer overflow in preprocessor expression"
+msgstr "Umubare wuzuye Byarenze urugero in imvugo"
+
+#: expr.c:964
+#, fuzzy
+msgid "missing '(' in expression"
+msgstr "Ibuze in imvugo"
+
+#: expr.c:996
+#, fuzzy, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "i Ibumoso: Bya Amahinduka IKIMENYETSO Ryari:"
+
+#: expr.c:1001
+#, fuzzy, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "i Iburyo: Bya Amahinduka IKIMENYETSO Ryari:"
+
+#: expr.c:1260
+#, fuzzy
+msgid "traditional C rejects the unary plus operator"
+msgstr "C i Guteranya Mukoresha"
+
+#: expr.c:1359
+#, fuzzy
+msgid "comma operator in operand of #if"
+msgstr "Akitso Mukoresha in Bya NIBA"
+
+#: expr.c:1491
+#, fuzzy
+msgid "division by zero in #if"
+msgstr "ku Zeru in NIBA"
+
+#: files.c:401
+#, fuzzy
+msgid "NULL directory in find_file"
+msgstr "bushyinguro in"
+
+#: files.c:454
+#, fuzzy
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "Cyangwa Birenzeho Idosiye Byabonetse Sibyo"
+
+#: files.c:457
+#, fuzzy
+msgid "use -Winvalid-pch for more information"
+msgstr "Gukoresha kugirango Birenzeho Ibisobanuro"
+
+#: files.c:522
+#, fuzzy, c-format
+msgid "%s is a block device"
+msgstr "%sni a Funga APAREYE"
+
+#: files.c:539
+#, fuzzy, c-format
+msgid "%s is too large"
+msgstr "%sni Binini"
+
+#: files.c:574
+#, fuzzy, c-format
+msgid "%s is shorter than expected"
+msgstr "%sni Ikitezwe:"
+
+#: files.c:803
+#, fuzzy, c-format
+msgid "no include path in which to search for %s"
+msgstr "Oya Gushyiramo Inzira in Kuri Gushaka kugirango"
+
+#: files.c:1096
+#, fuzzy
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Gushyiramo Gicurasi kugirango"
+
+#: init.c:393
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "Bitashizweho umukono Ubwoko"
+
+#: init.c:397
+#, fuzzy, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "Kinini Bya Intego"
+
+#: init.c:404
+#, fuzzy
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "ku Nka Nka a Intego INT"
+
+#: init.c:407
+#, fuzzy
+msgid "target char is less than 8 bits wide"
+msgstr "Intego INYUGUTI ni Birutwa 8"
+
+#: init.c:411
+#, fuzzy
+msgid "target wchar_t is narrower than target char"
+msgstr "Intego ni Intego INYUGUTI"
+
+#: init.c:415
+#, fuzzy
+msgid "target int is narrower than target char"
+msgstr "Intego INT ni Intego INYUGUTI"
+
+#: init.c:420
+#, fuzzy
+msgid "CPP half-integer narrower than CPP character"
+msgstr "Umubare wuzuye Inyuguti"
+
+#: init.c:424
+#, 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"
+
+#: lex.c:274
+#, fuzzy
+msgid "backslash and newline separated by space"
+msgstr "Na ku Umwanya"
+
+#: lex.c:279
+#, fuzzy
+msgid "backslash-newline at end of file"
+msgstr "ku Impera Bya IDOSIYE"
+
+#: lex.c:294
+#, 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"
+"."
+
+#: lex.c:301
+#, fuzzy, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+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"
+"."
+
+#: lex.c:347
+#, fuzzy
+msgid "\"/*\" within comment"
+msgstr "\"/*\"muri Icyo wongeraho"
+
+#: lex.c:405
+#, fuzzy, c-format
+msgid "%s in preprocessing directive"
+msgstr "%sin"
+
+#: lex.c:414
+#, fuzzy
+msgid "null character(s) ignored"
+msgstr "NTAGIHARI Inyuguti S"
+
+#: lex.c:449
+#, fuzzy
+msgid "'$' in identifier or number"
+msgstr "'$'in Ikiranga Cyangwa Umubare"
+
+#: lex.c:510
+#, fuzzy, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "Kuri Gukoresha"
+
+#: lex.c:518
+#, fuzzy
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "_Kugaragara in i Bya a Makoro"
+
+#: lex.c:614
+#, fuzzy
+msgid "null character(s) preserved in literal"
+msgstr "NTAGIHARI Inyuguti S in"
+
+#: lex.c:805
+#, fuzzy
+msgid "no newline at end of file"
+msgstr "Oya ku Impera Bya IDOSIYE"
+
+#: lex.c:948 traditional.c:162
+#, fuzzy
+msgid "unterminated comment"
+msgstr "Icyo wongeraho"
+
+#: lex.c:959
+#, fuzzy
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C IMISUSIRE Ibisobanuro OYA in"
+
+#: lex.c:961
+#, fuzzy
+msgid "(this will be reported only once per input file)"
+msgstr "(iyi Rimwe Iyinjiza IDOSIYE"
+
+#: lex.c:966
+#, fuzzy
+msgid "multi-line comment"
+msgstr "Umurongo Icyo wongeraho"
+
+#: lex.c:1230
+#, c-format
+msgid "unspellable token %s"
+msgstr ""
+
+#: line-map.c:309
+#, fuzzy, c-format
+msgid "In file included from %s:%u"
+msgstr "IDOSIYE Bivuye"
+
+#: line-map.c:327
+#, fuzzy, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ",Bivuye"
+
+#: macro.c:85
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Makoro ni OYA"
+
+#: macro.c:124 macro.c:287
+#, fuzzy, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "Sibyo in Makoro"
+
+#: macro.c:221
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "OYA Itariki Na Igihe"
+
+#: macro.c:400
+#, fuzzy
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "Sibyo Ikurikiranyanyuguti"
+
+#: macro.c:483
+#, fuzzy, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "Na OYA a Byemewe"
+
+#: macro.c:521
+#, fuzzy
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ingingo Kuri"
+
+#: macro.c:526
+#, fuzzy, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "Makoro ingingo"
+
+#: macro.c:531
+#, fuzzy, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "Makoro ingingo"
+
+#: macro.c:642 traditional.c:675
+#, fuzzy, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "Urutonde Makoro"
+
+#: macro.c:745
+#, fuzzy, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "Umumaro nka Makoro Na: ingingo in C"
+
+#: macro.c:1261
+#, fuzzy, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "Gusubiramo Makoro"
+
+#: macro.c:1306
+#, fuzzy, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\"Gicurasi OYA Kugaragara in Makoro Urutonde"
+
+#: macro.c:1314
+#, fuzzy
+msgid "macro parameters must be comma-separated"
+msgstr "Makoro Ibigenga Akitso"
+
+#: macro.c:1331
+#, fuzzy
+msgid "parameter name missing"
+msgstr "Izina: Ibuze"
+
+#: macro.c:1348
+#, fuzzy
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "Makoro in"
+
+#: macro.c:1353
+#, fuzzy
+msgid "ISO C does not permit named variadic macros"
+msgstr "C OYA Makoro"
+
+#: macro.c:1362
+#, fuzzy
+msgid "missing ')' in macro parameter list"
+msgstr "Ibuze in Makoro Urutonde"
+
+#: macro.c:1434
+#, fuzzy
+msgid "ISO C requires whitespace after the macro name"
+msgstr "C Nyuma i Makoro Izina:"
+
+#: macro.c:1462
+#, fuzzy
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#'ni OYA ku a Makoro"
+
+#: macro.c:1481
+#, fuzzy
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##'Kugaragara ku Impera Bya a Makoro"
+
+#: macro.c:1577
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: macro.c:1582
+#, fuzzy
+msgid "this is the location of the previous definition"
+msgstr "iyi ni i Ahantu Bya i Ibanjirije Insobanuro"
+
+#: macro.c:1632
+#, fuzzy, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "Makoro in C"
+
+#: macro.c:1655
+#, fuzzy, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "Sibyo Ubwoko in"
+
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
+#, fuzzy
+msgid "while writing precompiled header"
+msgstr "Umutwempangano"
+
+#: pch.c:467
+#, fuzzy, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s:OYA OYA"
+
+#: pch.c:479
+#, fuzzy, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s:OYA Nka OYA"
+
+#: pch.c:520
+#, fuzzy, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s:OYA ni"
+
+#: pch.c:533 pch.c:696
+#, fuzzy
+msgid "while reading precompiled header"
+msgstr "Umutwempangano"
+
+#: traditional.c:745
+#, fuzzy, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "Makoro"
+
+#: traditional.c:912
+#, fuzzy
+msgid "syntax error in macro parameter list"
+msgstr "Ikosa in Makoro Urutonde"
diff --git a/libcpp/po/sv.po b/libcpp/po/sv.po
index 139a659636b..d97c511856a 100644
--- a/libcpp/po/sv.po
+++ b/libcpp/po/sv.po
@@ -27,7 +27,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gcc 3.2\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\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"
@@ -35,119 +35,129 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: charset.c:653
+#: charset.c:655
#, fuzzy, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "konveretering från NaN till unsigned int"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr ""
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr ""
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr ""
-#: charset.c:811
+#: charset.c:868
#, fuzzy, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "semantiken för \"\\%c\" varierar med -traditional"
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr ""
-#: charset.c:849
+#: charset.c:906
#, fuzzy, c-format
msgid "%.*s is not a valid universal character"
msgstr "\"%s\" är inte i början av deklarationen"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr ""
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr ""
-#: charset.c:896
+#: charset.c:953
#, fuzzy
msgid "converting UCN to source character set"
msgstr "kan inte konvertera till en pekartyp"
-#: charset.c:900
+#: charset.c:957
#, fuzzy
msgid "converting UCN to execution character set"
msgstr "kan inte konvertera till en pekartyp"
-#: charset.c:972
+#: charset.c:1029
#, fuzzy
msgid "the meaning of '\\x' is different in traditional C"
msgstr "semantiken för \"\\x\" varierar med -traditional"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr ""
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr ""
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr ""
-#: charset.c:1103
+#: charset.c:1160
#, fuzzy
msgid "the meaning of '\\a' is different in traditional C"
msgstr "semantiken för \"\\a\" varierar med -traditional"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "okänd escape-sekvens \"\\%c\""
-#: charset.c:1121
+#: charset.c:1178
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "okänd escape-sekvens \"\\%c\""
-#: charset.c:1127
+#: charset.c:1184
#, fuzzy
msgid "converting escape sequence to execution character set"
msgstr "escape-sekvens ryms ej i ett tecken"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr ""
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
#, fuzzy
msgid "character constant too long for its type"
msgstr "teckenkonstant för lång"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "flerteckens teckenkonstant"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "tom teckenkonstant"
-#: charset.c:1393
+#: charset.c:1450
#, fuzzy, c-format
msgid "failure to convert %s to %s"
msgstr "kunde inte öppna dump-fil \"%s\""
@@ -223,138 +233,143 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
#: directives.c:673
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr "tomt filnamn i #%s"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include nästlad för djupt"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr ""
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "ogiltigt flagga \"%s\" i line-direktiv"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" efter #line är inte ett positivt heltal"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "radnummer utanför möjligt intervall"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" är inte ett giltigt filnamn"
-#: directives.c:840
+#: directives.c:848
#, fuzzy, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" efter #line är inte ett positivt heltal"
-#: directives.c:942
+#: directives.c:950
#, fuzzy
msgid "invalid #ident directive"
msgstr "ogiltig #indent"
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: directives.c:1033
+#: directives.c:1041
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "Klass \"%s\" finns redan"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "#pragma once i huvudfil"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "ogiltigt GCC-direktiv #pragma poison"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "förgiftar existerande makro \"%s\""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: directives.c:1313
+#: directives.c:1321
#, fuzzy, c-format
msgid "cannot find source file %s"
msgstr "kan inte hitta källfil %s"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "aktuell fil är äldre än %s"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#else utan #if"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else efter #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "villkorssatsen började här"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#elif utan #if"
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#elif efter #else"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#endif utan #if"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "saknas '(' efter predikat"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "saknas ')' för att avsluta svaret"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "predikatets svar är tomt"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr ""
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "predikat måste vara en identifierare"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr ""
@@ -560,35 +575,35 @@ msgstr ""
msgid "NULL directory in find_file"
msgstr ""
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr ""
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s är en blockenhet"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s är för stor"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s är kortare än förväntat"
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr ""
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr ""
@@ -763,87 +778,87 @@ msgstr ""
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr ""
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "parameternamn saknas"
-#: macro.c:1345
+#: macro.c:1348
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: macro.c:1350
+#: macro.c:1353
msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr ""
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" omdefinierad"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "detta är platsen för den tidigare definitionen"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr ""
-#: pch.c:466
+#: pch.c:467
#, fuzzy, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "etikett \"%s\" använd men inte definierad"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr ""
-#: pch.c:519
+#: pch.c:520
#, fuzzy, c-format
msgid "%s: not used because `%s' is defined"
msgstr "\"%s\" är använd men inte definierad"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr ""
@@ -2704,9 +2719,6 @@ msgstr "parameternamn saknas i parameterlista"
#~ msgid "unknown string token %s\n"
#~ msgstr "okänt registernamn: %s"
-#~ msgid "empty file name in #%s"
-#~ msgstr "tomt filnamn i #%s"
-
#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file"
#~ msgstr "#import är obsolet, använd #ifndef-omslutning i includefilen"
diff --git a/libcpp/po/tr.po b/libcpp/po/tr.po
index 6d6145adcd4..2eb44ce9211 100644
--- a/libcpp/po/tr.po
+++ b/libcpp/po/tr.po
@@ -1,13 +1,13 @@
# Turkish translations for gcc messages.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, ...,2004.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, ..., 2005.
#
msgid ""
msgstr ""
-"Project-Id-Version: cpplib 4.0-b20041128\n"
+"Project-Id-Version: cpplib 4.0-b20050226\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2004-11-27 19:38+0000\n"
-"PO-Revision-Date: 2004-12-03 11:03+0300\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\n"
+"PO-Revision-Date: 2005-03-03 12:28+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"
@@ -15,113 +15,123 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.0\n"
-#: charset.c:653
+#: charset.c:655
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "%s ile %s arasında dönüşüm iconv tarafından desteklenmiyor"
-#: charset.c:656
+#: charset.c:658
msgid "iconv_open"
msgstr "iconv_open"
-#: charset.c:664
+#: charset.c:666
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "iconv bulunamadığından %s ile %s karakter kümeleri arasında dönüşüm yapılamıyor"
-#: charset.c:808
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "0x%lx karakteri temel kaynak karakter kümesinde değil\n"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr "çalışma karakter kümesine dönüştürülüyor"
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "0x%lx karakteri icra karakter kümesindeki tek baytlık karakterlerden değil"
+
+#: charset.c:865
msgid "universal character names are only valid in C++ and C99"
msgstr "evrensel karakter isimleri sadece C++ ve C99 için geçerlidir"
-#: charset.c:811
+#: charset.c:868
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "`\\%c'nin anlamı geleneksel C'de farklıdır"
-#: charset.c:837
+#: charset.c:894
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "evrensel karakter ismi %.*s tamamlanmamış"
-#: charset.c:849
+#: charset.c:906
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "%.*s geçerli bir evrensel karakter değil"
-#: charset.c:859
+#: charset.c:916
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "evrensel karakter %.*s bir belirteç içinde geçerli değil"
-#: charset.c:863
+#: charset.c:920
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "evrensel karakter %.*s bir belirtecin başında geçerli değil"
-#: charset.c:896
+#: charset.c:953
msgid "converting UCN to source character set"
msgstr "UCN'den kaynak karakter kümesine dönüşüm"
-#: charset.c:900
+#: charset.c:957
msgid "converting UCN to execution character set"
msgstr "UCN'den icra karakter kümesine dönüşüm"
-#: charset.c:972
+#: charset.c:1029
msgid "the meaning of '\\x' is different in traditional C"
msgstr "'\\x'in anlamı geleneksel C'de farklıdır"
-#: charset.c:989
+#: charset.c:1046
msgid "\\x used with no following hex digits"
msgstr "\\x izleyen onaltılık rakamlar olmaksızın kullanılmış"
-#: charset.c:996
+#: charset.c:1053
msgid "hex escape sequence out of range"
msgstr "onaltılık önceleme dizgesi kapsamdışı"
-#: charset.c:1035
+#: charset.c:1092
msgid "octal escape sequence out of range"
msgstr "sekizlik önceleme dizgesi kapsamdışı"
-#: charset.c:1103
+#: charset.c:1160
msgid "the meaning of '\\a' is different in traditional C"
msgstr "`\\a'nın anlamı geleneksel C'de farklıdır"
-#: charset.c:1110
+#: charset.c:1167
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
-#: charset.c:1118
+#: charset.c:1175
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "bilinmeyen önceleme dizgesi '\\%c'"
-#: charset.c:1121
+#: charset.c:1178
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "bilinmeyen önceleme dizgesi: '\\%03o'"
-#: charset.c:1127
+#: charset.c:1184
msgid "converting escape sequence to execution character set"
msgstr "önceleme diziliminden icra karakter kümesine dönüşüm"
-#: charset.c:1186
-msgid "converting to execution character set"
-msgstr "çalışma karakter kümesine dönüştürülüyor"
-
-#: charset.c:1249 charset.c:1312
+#: charset.c:1306 charset.c:1369
msgid "character constant too long for its type"
msgstr "karakter sabiti, türü için çok uzun"
-#: charset.c:1252
+#: charset.c:1309
msgid "multi-character character constant"
msgstr "çoklu-karakter karakter sabiti"
-#: charset.c:1344
+#: charset.c:1401
msgid "empty character constant"
msgstr "karakter sabit boÅŸ"
-#: charset.c:1393
+#: charset.c:1450
#, c-format
msgid "failure to convert %s to %s"
msgstr "`%s' ile `%s' arasında dönüşüm başarısız"
@@ -196,137 +206,142 @@ msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s \"DOSYA\" ya da <DOSYA> gerektirir"
#: directives.c:673
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s ile belirtilen dosya boÅŸ"
+
+#: directives.c:681
msgid "#include nested too deeply"
msgstr "#include iç içeliği çok derin"
-#: directives.c:711
+#: directives.c:719
msgid "#include_next in primary source file"
msgstr "birncil kaynak dosyasında #include_next"
-#: directives.c:737
+#: directives.c:745
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "satır yönergesinde geçersiz \"%s\" seçeneği"
-#: directives.c:784
+#: directives.c:792
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "#line'dan sonraki \"%s\" bir pozitif tamsayı değil"
-#: directives.c:790
+#: directives.c:798
msgid "line number out of range"
msgstr "satır numarası kapsam dışı"
-#: directives.c:803 directives.c:880
+#: directives.c:811 directives.c:888
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" geçerli bir dosya ismi değil"
-#: directives.c:840
+#: directives.c:848
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "#'dan sonraki \"%s\" bir pozitif tamsayı değil"
-#: directives.c:942
+#: directives.c:950
msgid "invalid #ident directive"
msgstr "geçersiz #ident yönergesi"
-#: directives.c:1030
+#: directives.c:1038
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "\"%s\" hem pragma hem de pragma isim alanı olarak kaydediliyor"
-#: directives.c:1033
+#: directives.c:1041
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s zaten kayıtlı"
-#: directives.c:1036
+#: directives.c:1044
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s zaten kayıtlı"
-#: directives.c:1236
+#: directives.c:1244
msgid "#pragma once in main file"
msgstr "main dosyasında '#pragma once'"
-#: directives.c:1259
+#: directives.c:1267
msgid "invalid #pragma GCC poison directive"
msgstr "geçersiz #pragma GCC poison yönergesi"
-#: directives.c:1268
+#: directives.c:1276
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "zehirlenen mevcut makro \"%s\""
-#: directives.c:1289
+#: directives.c:1297
msgid "#pragma system_header ignored outside include file"
msgstr "başlık dosyasının dışındaki '#pragma system_header' yoksayıldı"
-#: directives.c:1313
+#: directives.c:1321
#, c-format
msgid "cannot find source file %s"
msgstr "%s kaynak dosyası bulunamıyor"
-#: directives.c:1317
+#: directives.c:1325
#, c-format
msgid "current file is older than %s"
msgstr "mevcut dosya %s den daha eski"
-#: directives.c:1431
+#: directives.c:1439
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma bir parantezli dizge sabiti alır"
-#: directives.c:1538
+#: directives.c:1546
msgid "#else without #if"
msgstr "#if siz #else"
-#: directives.c:1543
+#: directives.c:1551
msgid "#else after #else"
msgstr "#else den sonra #else"
-#: directives.c:1545 directives.c:1578
+#: directives.c:1553 directives.c:1586
msgid "the conditional began here"
msgstr "koşul başlangıcı burası"
-#: directives.c:1571
+#: directives.c:1579
msgid "#elif without #if"
msgstr "#if siz #elif "
-#: directives.c:1576
+#: directives.c:1584
msgid "#elif after #else"
msgstr "#else den sonra #elif"
-#: directives.c:1606
+#: directives.c:1614
msgid "#endif without #if"
msgstr "#if siz #endif"
-#: directives.c:1683
+#: directives.c:1691
msgid "missing '(' after predicate"
msgstr "dayanaktan sonra '(' eksik"
-#: directives.c:1698
+#: directives.c:1706
msgid "missing ')' to complete answer"
msgstr "yanıtı tamamlayacak ')' eksik"
-#: directives.c:1718
+#: directives.c:1726
msgid "predicate's answer is empty"
msgstr "dayanakların cevabı boş"
-#: directives.c:1745
+#: directives.c:1753
msgid "assertion without predicate"
msgstr "dayanaksız olumlama"
-#: directives.c:1747
+#: directives.c:1755
msgid "predicate must be an identifier"
msgstr "dayanak bir tanımlayıcı olmalı"
-#: directives.c:1833
+#: directives.c:1841
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" tekrar olumlanmış"
-#: directives.c:2056
+#: directives.c:2064
#, c-format
msgid "unterminated #%s"
msgstr "sonlandırılmamış #%s"
@@ -517,35 +532,35 @@ msgstr "#if içinde sıfırla bölme"
msgid "NULL directory in find_file"
msgstr "find_file içinde boş dizin"
-#: files.c:446
+#: files.c:454
msgid "one or more PCH files were found, but they were invalid"
msgstr "bir veya daha fazla PCH dosyası bulundu ama bunlar geçersiz"
-#: files.c:449
+#: files.c:457
msgid "use -Winvalid-pch for more information"
msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
-#: files.c:514
+#: files.c:522
#, c-format
msgid "%s is a block device"
msgstr "%s bir blok aygıtıdır"
-#: files.c:531
+#: files.c:539
#, c-format
msgid "%s is too large"
msgstr "%s çok büyük"
-#: files.c:566
+#: files.c:574
#, c-format
msgid "%s is shorter than expected"
msgstr "%s beklenenden daha kısa"
-#: files.c:769
+#: files.c:803
#, c-format
msgid "no include path in which to search for %s"
msgstr "%s için aranacaklar içinde başlık dosyaları yolu yok"
-#: files.c:1052
+#: files.c:1096
msgid "Multiple include guards may be useful for:\n"
msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
@@ -719,87 +734,87 @@ msgstr "sonlandırılmamış argüman listesi çağıran makro \"%s\""
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"
-#: macro.c:1258
+#: macro.c:1261
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "yinelenmiÅŸ makro parametresi \"%s\""
-#: macro.c:1303
+#: macro.c:1306
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" makro parametre listesinde görünmeyebilir"
-#: macro.c:1311
+#: macro.c:1314
msgid "macro parameters must be comma-separated"
msgstr "makro parametreleri virgüllerle ayrılmış olmalı"
-#: macro.c:1328
+#: macro.c:1331
msgid "parameter name missing"
msgstr "parametre ismi eksik"
-#: macro.c:1345
+#: macro.c:1348
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ı"
-#: macro.c:1350
+#: macro.c:1353
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"
-#: macro.c:1359
+#: macro.c:1362
msgid "missing ')' in macro parameter list"
msgstr "makro parametre listesinde ')' eksik"
-#: macro.c:1430
+#: macro.c:1434
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C makro isminden sonra boÅŸluk gerektirir"
-#: macro.c:1458
+#: macro.c:1462
msgid "'#' is not followed by a macro parameter"
msgstr "'#' iÅŸaretinden sonra bir makro parametresi yok"
-#: macro.c:1477
+#: macro.c:1481
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' bir makronun her iki ucunda da görünemez"
-#: macro.c:1573
+#: macro.c:1577
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" yeniden tanımlanmış"
-#: macro.c:1578
+#: macro.c:1582
msgid "this is the location of the previous definition"
msgstr "burası evvelki tanımın yapıldığı yer"
-#: macro.c:1628
+#: macro.c:1632
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "makro argümanı \"%s\" geleneksel C'de dizgelenmiş olmalıydı"
-#: macro.c:1651
+#: macro.c:1655
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
-#: pch.c:83 pch.c:331 pch.c:353 pch.c:359
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
msgid "while writing precompiled header"
msgstr "önderlemeli başlık yazılırken"
-#: pch.c:466
+#: pch.c:467
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
-#: pch.c:478
+#: pch.c:479
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr "%s: `%.*s' kullanılmadı çünkü `%s' olarak tanımlı, `%.*s' değil"
-#: pch.c:519
+#: pch.c:520
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
-#: pch.c:532 pch.c:695
+#: pch.c:533 pch.c:696
msgid "while reading precompiled header"
msgstr "önderlemeli başlık okunurken"
diff --git a/libcpp/po/vi.po b/libcpp/po/vi.po
new file mode 100644
index 00000000000..6632cff641b
--- /dev/null
+++ b/libcpp/po/vi.po
@@ -0,0 +1,825 @@
+# Vietnamese translation for cpplib-4.0-b20050226.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the cpplib-4.0-b20050226 package.
+# Clytie Siddall <clytie@riverland.net.au>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.0-b20050226\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2005-02-25 23:37+0000\n"
+"PO-Revision-Date: 2005-03-03 22:48+1000\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:655
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv không hỗ trợ chuyển đổi từ %s sang %s"
+
+#: charset.c:658
+msgid "iconv_open"
+msgstr "iconv_open (mở)"
+
+#: charset.c:666
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "chưa thi hành iconv nên không chuyển đổi được từ %s sang %s"
+
+#: charset.c:743
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "ký tự 0x%lx không trong bộ ký tự nguồn cơ bản\n"
+
+#: charset.c:760 charset.c:1243
+msgid "converting to execution character set"
+msgstr "đang chuyển đổi sang bộ ký tự thi hành"
+
+#: charset.c:766
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "ký tự 0x%lx không có dạng đơn byte trong bộ ký tự thi hành"
+
+#: charset.c:865
+msgid "universal character names are only valid in C++ and C99"
+msgstr "tên ký tự chung chỉ là hợp lệ trong ngôn ngữ C++ và C99"
+
+#: charset.c:868
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "'\\%c' có nghÄ©a khác trong ngôn ngữ C truyá»n thống"
+
+#: charset.c:894
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "tên ký tự chung %.*s chưa hoàn thành"
+
+#: charset.c:906
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr " %.*s không là ký tự chung hợp lệ"
+
+#: charset.c:916
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "ký tự chung %.*s không là hợp lệ trong một dấu hiệu nhận diện"
+
+#: charset.c:920
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "ký tự chung %.*s không là hợp lệ tại đầu của dấu hiệu nhận diện"
+
+#: charset.c:953
+msgid "converting UCN to source character set"
+msgstr "đang chuyển đổi UCN sang bộ ký tự nguồn"
+
+#: charset.c:957
+msgid "converting UCN to execution character set"
+msgstr "đang chuyển đổi UCN sang bộ ký tự thi hành"
+
+#: charset.c:1029
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\x' có nghÄ©a khác trong ngôn ngữ C truyá»n thống"
+
+#: charset.c:1046
+msgid "\\x used with no following hex digits"
+msgstr "\\x được sử dụng còn không có số hệ thâp lục phân theo sau"
+
+#: charset.c:1053
+msgid "hex escape sequence out of range"
+msgstr "dãy thoát hệ thập lục phân ở ngoài phạm vi"
+
+#: charset.c:1092
+msgid "octal escape sequence out of range"
+msgstr "dãy thoát bát phân ở ngoài phạm vi"
+
+#: charset.c:1160
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "'\\a' có nghÄ©a khác trong ngôn ngữ C truyá»n thống"
+
+#: charset.c:1167
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "dãy thoát không ISO chuẩn: '\\%c'"
+
+#: charset.c:1175
+#, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "không biết dãy thoát: '\\%c'"
+
+#: charset.c:1178
+#, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "không biết dãy thoát: '\\%03o'"
+
+#: charset.c:1184
+msgid "converting escape sequence to execution character set"
+msgstr "đang chuyển đổi dãy thoát sang bộ ký tự thi hành"
+
+#: charset.c:1306 charset.c:1369
+msgid "character constant too long for its type"
+msgstr "hằng ký tự quá dài cho loại của nó"
+
+#: charset.c:1309
+msgid "multi-character character constant"
+msgstr "hằng ký tự đa ký tự"
+
+#: charset.c:1401
+msgid "empty character constant"
+msgstr "hằng ký tự trống"
+
+#: charset.c:1450
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "không chuyển đổi %s sang %s được"
+
+#: directives.c:216
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "có hiệu bài thêm tại cuối cùng chi thị #%s"
+
+#: directives.c:303
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s là phần mở rộng loại GCC"
+
+#: directives.c:315
+msgid "suggest not using #elif in traditional C"
+msgstr "khuyên không sá»­ dụng #elif trong ngôn ngữ C truyá»n thống"
+
+#: directives.c:318
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "ngôn ngữ C truyá»n thống thì bá» qua #%s vá»›i # được thụt lá»"
+
+#: directives.c:322
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "khuyên sá»­ dụng # được thụt lỠđể ẩn #%s ra ngôn ngữ C truyá»n thống"
+
+#: directives.c:348
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "khi gắn chỉ thị vào đối số macrô thì không thể mạng đi"
+
+#: directives.c:368
+msgid "style of line directive is a GCC extension"
+msgstr "kiểu chỉ thị dòng là phần mở rộng GCC"
+
+#: directives.c:418
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "chỉ thị tiá»n xá»­ lý không hợp lệ #%s"
+
+#: directives.c:489
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "không thể sử dụng \"defined\" (đã định nghĩa) cho tên macrô"
+
+#: directives.c:495
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "không thể sử dụng \"%s\" cho tên macrô vì nó là toán tử trong ngôn ngữ C++"
+
+#: directives.c:498
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "chỉ thị #%s không có tên macrô"
+
+#: directives.c:501
+msgid "macro names must be identifiers"
+msgstr "má»i tên bá»™ đối số phải là dấu hiệu nhận diện"
+
+#: directives.c:542
+#, c-format
+msgid "undefining \"%s\""
+msgstr "đang bỠđịnh nghĩa \"%s\""
+
+#: directives.c:597
+msgid "missing terminating > character"
+msgstr "thiếu ký tự > chấm dứt"
+
+#: directives.c:650
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s ngỠ\"TÊN_TẬP_TIN\" hay <TÊN_TẬP_TIN>"
+
+#: directives.c:673
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s có tên tập tin trống"
+
+#: directives.c:681
+msgid "#include nested too deeply"
+msgstr "#include (bao gồm) lồng nhau quá sâu"
+
+#: directives.c:719
+msgid "#include_next in primary source file"
+msgstr "có #include_next (bao gồm sau) trong tập tin nguồn chính"
+
+#: directives.c:745
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "chỉ thị dòng có cỠkhông hợp lệ \"%s\" "
+
+#: directives.c:792
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" sau #line (dòng) không là số nguyên dương"
+
+#: directives.c:798
+msgid "line number out of range"
+msgstr "số dòng ở ngoài phạm vi"
+
+#: directives.c:811 directives.c:888
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" không là tên tập tin hợp lệ"
+
+#: directives.c:848
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" sau # không là số nguyên dương"
+
+#: directives.c:950
+msgid "invalid #ident directive"
+msgstr "chỉ thị #ident không hợp lệ"
+
+#: directives.c:1038
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "Ä‘ang đăng ký \"%s\" là cả hai lệnh nguồn Ä‘iá»u khiển trình biện dịch (pragma), và bô tên Ä‘á»™c nhất của lệnh nguồn Ä‘iá»u khiển trình biên dịch."
+
+#: directives.c:1041
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "đăng ký #pragma %s %s rồi"
+
+#: directives.c:1044
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "đăng ký #pragma %s rồi"
+
+#: directives.c:1244
+msgid "#pragma once in main file"
+msgstr "#pragma một lần trong tập tin chính"
+
+#: directives.c:1267
+msgid "invalid #pragma GCC poison directive"
+msgstr "chỉ thị vộ hiệu hóa (poison) GCC #pragma không là hợp lệ"
+
+#: directives.c:1276
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "đang vô hiệu hóa macrô tồn tại \"%s\""
+
+#: directives.c:1297
+msgid "#pragma system_header ignored outside include file"
+msgstr "bỠqua system_header (đầu trang hệ thống) #pragma ở ngoài tập tin bao gồm"
+
+#: directives.c:1321
+#, c-format
+msgid "cannot find source file %s"
+msgstr "không tìm thấy được tập tin nguồn %s"
+
+#: directives.c:1325
+#, c-format
+msgid "current file is older than %s"
+msgstr "tập tin hiện có là cũ hơn %s"
+
+#: directives.c:1439
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma nhận một hằng chuỗi có ngoặc"
+
+#: directives.c:1546
+msgid "#else without #if"
+msgstr "#else (không nếu) không có #if (nếu)"
+
+#: directives.c:1551
+msgid "#else after #else"
+msgstr "#else (không nếu) sau #else (không nếu)"
+
+#: directives.c:1553 directives.c:1586
+msgid "the conditional began here"
+msgstr "câu Ä‘iá»u kiện đã bắt đầu ở đây"
+
+#: directives.c:1579
+msgid "#elif without #if"
+msgstr "#elif (nếu không thì nếu) không có #if (nếu)"
+
+#: directives.c:1584
+msgid "#elif after #else"
+msgstr "#elif (nếu không thì nếu) sau #else (nếu không)"
+
+#: directives.c:1614
+msgid "#endif without #if"
+msgstr "#endif (xong nếu) không có #if (nếu)"
+
+#: directives.c:1691
+msgid "missing '(' after predicate"
+msgstr "thiếu '(' sau vị ngữ"
+
+#: directives.c:1706
+msgid "missing ')' to complete answer"
+msgstr "thiếu ')' để xong trả lá»i"
+
+#: directives.c:1726
+msgid "predicate's answer is empty"
+msgstr "vị ngữ có trả lá»i trống"
+
+#: directives.c:1753
+msgid "assertion without predicate"
+msgstr "khẳng định không có vị ngữ"
+
+#: directives.c:1755
+msgid "predicate must be an identifier"
+msgstr "vị ngữ phải là dấu hiệu nhận diện"
+
+#: directives.c:1841
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "đã khẳng định \"%s\" lại"
+
+#: directives.c:2064
+#, c-format
+msgid "unterminated #%s"
+msgstr "chưa chấm dứt #%s"
+
+#: errors.c:118
+msgid "warning: "
+msgstr "cảnh báo: "
+
+#: errors.c:120
+msgid "internal error: "
+msgstr "lỗi nôi bộ: "
+
+#: errors.c:122
+msgid "error: "
+msgstr "lá»—i: "
+
+#: errors.c:181
+msgid "stdout"
+msgstr "thiết bị xuất chuẩn"
+
+#: errors.c:183
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:192
+msgid "too many decimal points in number"
+msgstr "quá nhiá»u dấu thập phân trong số"
+
+#: expr.c:212
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "có số không hợp lệ \"%c\" trong hằng bát phân"
+
+#: expr.c:218
+msgid "use of C99 hexadecimal floating constant"
+msgstr "sử dụng hằng trôi nổi hệ thập lục phân C99"
+
+#: expr.c:227
+msgid "exponent has no digits"
+msgstr "số mũ không co số nào"
+
+#: expr.c:234
+msgid "hexadecimal floating constants require an exponent"
+msgstr "má»i hằng trôi nổi hệ thập lục phân cần đến số mÅ©"
+
+#: expr.c:240
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "hằng trôi nổi có hậu tố không hợp lệ \"%.*s\" "
+
+#: expr.c:250 expr.c:275
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "ngôn ngữ C truyá»n thống không chấp nhận hậu tố \"%.*s\""
+
+#: expr.c:261
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "hằng số nguyên có hậu tố không hợp lệ \"%.*s\""
+
+#: expr.c:283
+msgid "use of C99 long long integer constant"
+msgstr "sử dụng hằng số nguyên dài dài C99"
+
+#: expr.c:290
+msgid "imaginary constants are a GCC extension"
+msgstr "hằng ảo là phần mở rộng GCC"
+
+#: expr.c:376
+msgid "integer constant is too large for its type"
+msgstr "hằng số nguyên quá lớn cho loại ấy"
+
+#: expr.c:388
+msgid "integer constant is so large that it is unsigned"
+msgstr "hằng số nguyên không có dấu dương/âm vì lớn lắm"
+
+#: expr.c:470
+msgid "missing ')' after \"defined\""
+msgstr "thiếu ')' sau \"defined\" (đã định nghĩa)"
+
+#: expr.c:477
+msgid "operator \"defined\" requires an identifier"
+msgstr "toán tử \"defined\" (đã định nghĩa) cần đến dấu hiệu nhận diện"
+
+#: expr.c:485
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" là một hiệu bài thay thế cho \"%s\" trong ngôn ngữ C++)"
+
+#: expr.c:495
+msgid "this use of \"defined\" may not be portable"
+msgstr "có lẽ cách sử dụng \"defined\" (đã định nghĩa) này không có thể mạng đi"
+
+#: expr.c:534
+msgid "floating constant in preprocessor expression"
+msgstr "hằng trôi nổi trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:540
+msgid "imaginary number in preprocessor expression"
+msgstr "số ảo trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:585
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "chưa định nghĩa \"%s\" "
+
+#: expr.c:716 expr.c:745
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "thiếu toán từ nhị phân trước hiệu bài \"%s\""
+
+#: expr.c:736
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "hiệu bài \"%s\" không là hợp lệ trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:753
+msgid "missing expression between '(' and ')'"
+msgstr "thiếu biểu thức giữa '(' và ')'"
+
+#: expr.c:756
+msgid "#if with no expression"
+msgstr "#if (nếu) không có biểu thức"
+
+#: expr.c:759
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "toán tử '%s' không có tác tử bên phải"
+
+#: expr.c:764
+#, c-format
+msgid "operator '%s' has no left operand"
+msgstr "toán tử '%s' không có tác từ bên trái"
+
+#: expr.c:790
+msgid " ':' without preceding '?'"
+msgstr " ':' không có dấu '?' đi trước"
+
+#: expr.c:817
+msgid "unbalanced stack in #if"
+msgstr "đống không cân bằng trong #if (nếu)"
+
+#: expr.c:836
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "toán từ không thể sử dụng được '%u'"
+
+#: expr.c:928
+msgid "missing ')' in expression"
+msgstr "thiếu ')' trong biểu thức"
+
+#: expr.c:949
+msgid "'?' without following ':'"
+msgstr "'?' không có dấu ':' đi sau"
+
+#: expr.c:959
+msgid "integer overflow in preprocessor expression"
+msgstr "số nguyên tràn trong biểu thức tiá»n xá»­ lý"
+
+#: expr.c:964
+msgid "missing '(' in expression"
+msgstr "thiếu '(' trong biểu thức"
+
+#: expr.c:996
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "tác tử bên trái của \"%s\" thi thay đổi dấu dương/âm khi được tăng cấp"
+
+#: expr.c:1001
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "tác tử bên phai của \"%s\" thì thay đổi dấu dương/âm khi đươc tăng cấp"
+
+#: expr.c:1260
+msgid "traditional C rejects the unary plus operator"
+msgstr "ngôn ngữ truyá»n thống C không chấp nhận toán tá»­ cá»™ng chỉ có má»™t tác tá»­"
+
+#: expr.c:1359
+msgid "comma operator in operand of #if"
+msgstr "toán tử dấu phẩy trong tác tử của #if (nếu)"
+
+#: expr.c:1491
+msgid "division by zero in #if"
+msgstr "chia số không trong #if (nếu)"
+
+#: files.c:401
+msgid "NULL directory in find_file"
+msgstr "thÆ° mục TRá»NG trong find_file (tìm tập tin)"
+
+#: files.c:454
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "tìm thấy má»™t hay nhiá»u tập tin PCH, nhÆ°ng không hợp lệ suốt"
+
+#: files.c:457
+msgid "use -Winvalid-pch for more information"
+msgstr "hãy thử lệnh -Winvalid-pch để tìm thấy thông tin thêm"
+
+#: files.c:522
+#, c-format
+msgid "%s is a block device"
+msgstr "%s là một thiết bị khối"
+
+#: files.c:539
+#, c-format
+msgid "%s is too large"
+msgstr "%s là quá lớn"
+
+#: files.c:574
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "ngỠ%s dài hơn"
+
+#: files.c:803
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "khi tìm kiếm %s không có Ä‘Æ°á»ng dẫn bao gồm"
+
+#: files.c:1096
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Có lẽ số nhiá»u Ä‘iá»u bảo vệ bao gồm có ích cho:\n"
+
+#: init.c:393
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t phải là loại không có dấu dương/âm"
+
+#: init.c:397
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "toán thuật của trình tiá»n xá»­ lý có tối Ä‘a sá»± chính xác là %lu bit nhÆ°ng đích cần đến %lu bit"
+
+#: init.c:404
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "toán thuật CPP phải là ít nhất chính xác bằng int (số nguyên) đích"
+
+#: init.c:407
+msgid "target char is less than 8 bits wide"
+msgstr "độ rộng char (ký tự) đích là ít hơn 8 bit"
+
+#: init.c:411
+msgid "target wchar_t is narrower than target char"
+msgstr "độ rộng wchar_t đích là ít hơn char (ký tự) đích"
+
+#: init.c:415
+msgid "target int is narrower than target char"
+msgstr "độ rộng int (số nguyên) đích là ít hơn char (ký tự) đích"
+
+#: init.c:420
+msgid "CPP half-integer narrower than CPP character"
+msgstr "độ rộng nữa số nguyên CPP là ít hơn ký tự CPP"
+
+#: init.c:424
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "Trên máy chủ này, CPP không xử lý được hằng ký tự rộng hơn %lu bit, nhưng đích cần đến %lu bit"
+
+#: lex.c:274
+msgid "backslash and newline separated by space"
+msgstr "xuyệc ngược và ký tự dòng mới phân cách nhau bởi chữ cách"
+
+#: lex.c:279
+msgid "backslash-newline at end of file"
+msgstr "xuyệc ngược - ký tự dòng mới tại kết thức tập tin"
+
+#: lex.c:294
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "đã chuyển đổi chữ ba ??%c thành %c"
+
+#: lex.c:301
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "đã bỠqua chữ ba ??%c nên hãy sư dụng tùy chon -trigraphs để hiệu lực được"
+
+#: lex.c:347
+msgid "\"/*\" within comment"
+msgstr "có \"/*\" ở trong chú thích"
+
+#: lex.c:405
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "có %s trong chỉ thị tiá»n xá»­ lý"
+
+#: lex.c:414
+msgid "null character(s) ignored"
+msgstr "đã bá» qua má»i ký tá»± trống"
+
+#: lex.c:449
+msgid "'$' in identifier or number"
+msgstr "có '$' trong dấu hiệu nhận hiện hay số"
+
+#: lex.c:510
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "đã cố sử dụng \"%s\" bị vô hiệu hóa"
+
+#: lex.c:518
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ chỉ có thể xuất hiện trong phần mở rộng của macrô có đối số biến thiên"
+
+#: lex.c:614
+msgid "null character(s) preserved in literal"
+msgstr "đã giữ ký tự trống trong hằng nguồn"
+
+#: lex.c:805
+msgid "no newline at end of file"
+msgstr "không có ký tự dòng mới tại kêt thức tập tin"
+
+#: lex.c:948 traditional.c:162
+msgid "unterminated comment"
+msgstr "chú thích không chấm dứt"
+
+#: lex.c:959
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "không cho phép chú thích kiểu C++ trong ISO C90"
+
+#: lex.c:961
+msgid "(this will be reported only once per input file)"
+msgstr "(chỉ sẽ thông báo Ä‘iá»u này má»™t lần cho má»—i tập tin nhập)"
+
+#: lex.c:966
+msgid "multi-line comment"
+msgstr "chú thích đa dòng"
+
+#: lex.c:1230
+#, c-format
+msgid "unspellable token %s"
+msgstr "không chính tả được hiệu bài %s"
+
+#: line-map.c:309
+#, c-format
+msgid "In file included from %s:%u"
+msgstr "Trong tập tin được bao gồm từ %s:%u"
+
+#: line-map.c:327
+#, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ""
+",\n"
+" từ %s:%u"
+
+#: macro.c:85
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "không sử dụng macrô \"%s\""
+
+#: macro.c:124 macro.c:287
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "bộ đối số \"%s\" có sẳn không là hợp lệ"
+
+#: macro.c:221
+msgid "could not determine date and time"
+msgstr "không quyết định được ngày và giá»"
+
+#: macro.c:400
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "hằng nguồn chuỗi không hợp lệ nên bỠqua '\\' cuối cùng"
+
+#: macro.c:483
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "khi dán \"%s\" và \"%s\" không nhận hiệu bài tiá»n xá»­ lý hợp lệ"
+
+#: macro.c:521
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 cần đến sử dụng đối số còn lại trong khối"
+
+#: macro.c:526
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "bộ đối số \"%s\" cần đến %u đối số, nhưng chỉ có %u thôi"
+
+#: macro.c:531
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "macrô \"%s\" đã gơi %u đối số, nhưng nhận chỉ %u thôi"
+
+#: macro.c:642 traditional.c:675
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "danh sách đối số không chấm dứt thì gá»i bá»™ đối số \"%s\""
+
+#: macro.c:745
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "phải sá»­ dụng đối số vá»›i bá»™ đối số giống hàm số \"%s\" trong ngôn ngữ C truyá»n thống"
+
+#: macro.c:1261
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "tham số bộ đối số trùng \"%s\""
+
+#: macro.c:1306
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "không cho phép \"%s\" trong danh sách tham số bộ đối số"
+
+#: macro.c:1314
+msgid "macro parameters must be comma-separated"
+msgstr "phải ngăn cách tham số macrô bằng dấu phẩy"
+
+#: macro.c:1331
+msgid "parameter name missing"
+msgstr "thiếu tên tham số"
+
+#: macro.c:1348
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "C99 đã chèn macrô có số đối số biến thiên nặc danh"
+
+#: macro.c:1353
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C không cho phép macrô có số đối số biến thiên có tên"
+
+#: macro.c:1362
+msgid "missing ')' in macro parameter list"
+msgstr "thiếu ')' trong danh sách tham số bộ đối số"
+
+#: macro.c:1434
+msgid "ISO C requires whitespace after the macro name"
+msgstr "ISO C cần đên chữ cách sau tên bộ đối số"
+
+#: macro.c:1462
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' không có tham số macrô đi theo"
+
+#: macro.c:1481
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "không cho phép '##' hoặc trước hoặc sau phần mở rộng macrô"
+
+#: macro.c:1577
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "đã định nghĩa \"%s\" lại"
+
+#: macro.c:1582
+msgid "this is the location of the previous definition"
+msgstr "đây là vị trí của lá»i định nghÄ©a trÆ°á»›c"
+
+#: macro.c:1632
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "trong ngôn ngữ C truyá»n thống thì chuyển đổi đốí số macrô \"%s\" thành chuá»—i"
+
+#: macro.c:1655
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "loại băm không hợp lệ %d trong cpp_macro_definition (lá»i định nghÄ©a macrô)"
+
+#: pch.c:84 pch.c:332 pch.c:354 pch.c:360
+msgid "while writing precompiled header"
+msgstr "trong khi ghi đầu trang đã biên dịch trước"
+
+#: pch.c:467
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "không sử dụng %s vì chưa định nghĩa `%.*s' "
+
+#: pch.c:479
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "không sử dụng %s vì đã định nghĩa `%.*s' là `%s', không phải là `%.*s'"
+
+#: pch.c:520
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "không sử dụng %s vì đã định nghĩa `%s'"
+
+#: pch.c:533 pch.c:696
+msgid "while reading precompiled header"
+msgstr "trong khi Ä‘á»c đầu trang đã biên dịch trÆ°á»›c"
+
+#: traditional.c:745
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "đã phát hiện Ä‘iá»u Ä‘á»™ qui trong khi mở rá»™ng macrô \"%s\""
+
+#: traditional.c:912
+msgid "syntax error in macro parameter list"
+msgstr "gặp lỗi cú pháp trong danh sách tham số macrô"
diff --git a/libcpp/ucnid.h b/libcpp/ucnid.h
index 04c9513c537..39d28e985bd 100644
--- a/libcpp/ucnid.h
+++ b/libcpp/ucnid.h
@@ -1,336 +1,803 @@
-/* Table of UCNs which are valid in identifiers.
- Copyright (C) 2003 Free Software Foundation, Inc.
+/* APPLE LOCAL begin mainline UCNs 2005-04-17 3892809 */
+/* Unicode characters and various properties.
+ Copyright (C) 2003, 2005 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 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.
+ 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-/* Automatically generated from cppucnid.tab, do not edit */
-/* This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
- D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
- the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
- a reproduction of ISO/IEC PDTR 10176. Unfortunately these tables
- are not identical. */
+ Copyright (C) 1991-2005 Unicode, Inc. All rights reserved.
+ Distributed under the Terms of Use in
+ http://www.unicode.org/copyright.html.
-#ifndef LIBCPP_UCNID_H
-#define LIBCPP_UCNID_H
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of the Unicode data files and any associated
+ documentation (the "Data Files") or Unicode software and any
+ associated documentation (the "Software") to deal in the Data Files
+ or Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, and/or
+ sell copies of the Data Files or Software, and to permit persons to
+ whom the Data Files or Software are furnished to do so, provided
+ that (a) the above copyright notice(s) and this permission notice
+ appear with all copies of the Data Files or Software, (b) both the
+ above copyright notice(s) and this permission notice appear in
+ associated documentation, and (c) there is clear notice in each
+ modified Data File or in the Software as well as in the
+ documentation associated with the Data File(s) or Software that the
+ data or software has been modified.
-#define C99 1
-#define CXX 2
-#define DIG 4
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY
+ OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
+ ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
+ DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ OF THE DATA FILES OR SOFTWARE.
-struct ucnrange
-{
- unsigned short lo, hi;
- unsigned short flags;
-};
+ Except as contained in this notice, the name of a copyright holder
+ shall not be used in advertising or otherwise to promote the sale,
+ use or other dealings in these Data Files or Software without prior
+ written authorization of the copyright holder. */
-static const struct ucnrange ucnranges[] = {
- { 0x00aa, 0x00aa, C99 }, /* Latin */
- { 0x00b5, 0x00b5, C99 }, /* Special characters */
- { 0x00b7, 0x00b7, C99 },
- { 0x00ba, 0x00ba, C99 }, /* Latin */
- { 0x00c0, 0x00d6, CXX|C99 },
- { 0x00d8, 0x00f6, CXX|C99 },
- { 0x00f8, 0x01f5, CXX|C99 },
- { 0x01fa, 0x0217, CXX|C99 },
- { 0x0250, 0x02a8, CXX|C99 },
- { 0x02b0, 0x02b8, C99 }, /* Special characters */
- { 0x02bb, 0x02bb, C99 },
- { 0x02bd, 0x02c1, C99 },
- { 0x02d0, 0x02d1, C99 },
- { 0x02e0, 0x02e4, C99 },
- { 0x037a, 0x037a, C99 },
- { 0x0384, 0x0384, CXX }, /* Greek */
- { 0x0386, 0x0386, C99 },
- { 0x0388, 0x038a, CXX|C99 },
- { 0x038c, 0x038c, CXX|C99 },
- { 0x038e, 0x03a1, CXX|C99 },
- { 0x03a3, 0x03ce, CXX|C99 },
- { 0x03d0, 0x03d6, CXX|C99 },
- { 0x03da, 0x03da, CXX|C99 },
- { 0x03dc, 0x03dc, CXX|C99 },
- { 0x03de, 0x03de, CXX|C99 },
- { 0x03e0, 0x03e0, CXX|C99 },
- { 0x03e2, 0x03f3, CXX|C99 },
- { 0x0401, 0x040c, CXX|C99 }, /* Cyrillic */
- { 0x040d, 0x040d, CXX },
- { 0x040e, 0x040e, C99 },
- { 0x040f, 0x044f, CXX|C99 },
- { 0x0451, 0x045c, CXX|C99 },
- { 0x045e, 0x0481, CXX|C99 },
- { 0x0490, 0x04c4, CXX|C99 },
- { 0x04c7, 0x04c8, CXX|C99 },
- { 0x04cb, 0x04cc, CXX|C99 },
- { 0x04d0, 0x04eb, CXX|C99 },
- { 0x04ee, 0x04f5, CXX|C99 },
- { 0x04f8, 0x04f9, CXX|C99 },
- { 0x0531, 0x0556, CXX|C99 }, /* Armenian */
- { 0x0559, 0x0559, C99 }, /* Special characters */
- { 0x0561, 0x0587, CXX|C99 }, /* Armenian */
- { 0x05b0, 0x05b9, C99 }, /* Hebrew */
- { 0x05bb, 0x05bd, C99 },
- { 0x05bf, 0x05bf, C99 },
- { 0x05c1, 0x05c2, C99 },
- { 0x05d0, 0x05ea, CXX|C99 },
- { 0x05f0, 0x05f2, CXX|C99 },
- { 0x05f3, 0x05f4, CXX },
- { 0x0621, 0x063a, CXX|C99 }, /* Arabic */
- { 0x0640, 0x0652, CXX|C99 },
- { 0x0660, 0x0669, C99|DIG }, /* Digits */
- { 0x0670, 0x06b7, CXX|C99 }, /* Arabic */
- { 0x06ba, 0x06be, CXX|C99 },
- { 0x06c0, 0x06ce, CXX|C99 },
- { 0x06d0, 0x06dc, C99 },
- { 0x06e5, 0x06e7, CXX|C99 },
- { 0x06e8, 0x06e8, C99 },
- { 0x06ea, 0x06ed, C99 },
- { 0x06f0, 0x06f9, C99|DIG }, /* Digits */
- { 0x0901, 0x0903, C99 }, /* Devanagari */
- { 0x0905, 0x0939, CXX|C99 },
- { 0x093d, 0x093d, C99 }, /* Special characters */
- { 0x093e, 0x094d, C99 }, /* Devanagari */
- { 0x0950, 0x0952, C99 },
- { 0x0958, 0x0962, CXX|C99 },
- { 0x0963, 0x0963, C99 },
- { 0x0966, 0x096f, C99|DIG }, /* Digits */
- { 0x0981, 0x0983, C99 }, /* Bengali */
- { 0x0985, 0x098c, CXX|C99 },
- { 0x098f, 0x0990, CXX|C99 },
- { 0x0993, 0x09a8, CXX|C99 },
- { 0x09aa, 0x09b0, CXX|C99 },
- { 0x09b2, 0x09b2, CXX|C99 },
- { 0x09b6, 0x09b9, CXX|C99 },
- { 0x09be, 0x09c4, C99 },
- { 0x09c7, 0x09c8, C99 },
- { 0x09cb, 0x09cd, C99 },
- { 0x09dc, 0x09dd, CXX|C99 },
- { 0x09df, 0x09e1, CXX|C99 },
- { 0x09e2, 0x09e3, C99 },
- { 0x09e6, 0x09ef, C99|DIG }, /* Digits */
- { 0x09f0, 0x09f1, CXX|C99 }, /* Bengali */
- { 0x0a02, 0x0a02, C99 }, /* Gurmukhi */
- { 0x0a05, 0x0a0a, CXX|C99 },
- { 0x0a0f, 0x0a10, CXX|C99 },
- { 0x0a13, 0x0a28, CXX|C99 },
- { 0x0a2a, 0x0a30, CXX|C99 },
- { 0x0a32, 0x0a33, CXX|C99 },
- { 0x0a35, 0x0a36, CXX|C99 },
- { 0x0a38, 0x0a39, CXX|C99 },
- { 0x0a3e, 0x0a42, C99 },
- { 0x0a47, 0x0a48, C99 },
- { 0x0a4b, 0x0a4d, C99 },
- { 0x0a59, 0x0a5c, CXX|C99 },
- { 0x0a5e, 0x0a5e, CXX|C99 },
- { 0x0a66, 0x0a6f, C99|DIG }, /* Digits */
- { 0x0a74, 0x0a74, C99 }, /* Gurmukhi */
- { 0x0a81, 0x0a83, C99 }, /* Gujarati */
- { 0x0a85, 0x0a8b, CXX|C99 },
- { 0x0a8d, 0x0a8d, CXX|C99 },
- { 0x0a8f, 0x0a91, CXX|C99 },
- { 0x0a93, 0x0aa8, CXX|C99 },
- { 0x0aaa, 0x0ab0, CXX|C99 },
- { 0x0ab2, 0x0ab3, CXX|C99 },
- { 0x0ab5, 0x0ab9, CXX|C99 },
- { 0x0abd, 0x0ac5, C99 },
- { 0x0ac7, 0x0ac9, C99 },
- { 0x0acb, 0x0acd, C99 },
- { 0x0ad0, 0x0ad0, C99 },
- { 0x0ae0, 0x0ae0, CXX|C99 },
- { 0x0ae6, 0x0aef, C99|DIG }, /* Digits */
- { 0x0b01, 0x0b03, C99 }, /* Oriya */
- { 0x0b05, 0x0b0c, CXX|C99 },
- { 0x0b0f, 0x0b10, CXX|C99 },
- { 0x0b13, 0x0b28, CXX|C99 },
- { 0x0b2a, 0x0b30, CXX|C99 },
- { 0x0b32, 0x0b33, CXX|C99 },
- { 0x0b36, 0x0b39, CXX|C99 },
- { 0x0b3d, 0x0b3d, C99 }, /* Special characters */
- { 0x0b3e, 0x0b43, C99 }, /* Oriya */
- { 0x0b47, 0x0b48, C99 },
- { 0x0b4b, 0x0b4d, C99 },
- { 0x0b5c, 0x0b5d, CXX|C99 },
- { 0x0b5f, 0x0b61, CXX|C99 },
- { 0x0b66, 0x0b6f, C99|DIG }, /* Digits */
- { 0x0b82, 0x0b83, C99 }, /* Tamil */
- { 0x0b85, 0x0b8a, CXX|C99 },
- { 0x0b8e, 0x0b90, CXX|C99 },
- { 0x0b92, 0x0b95, CXX|C99 },
- { 0x0b99, 0x0b9a, CXX|C99 },
- { 0x0b9c, 0x0b9c, CXX|C99 },
- { 0x0b9e, 0x0b9f, CXX|C99 },
- { 0x0ba3, 0x0ba4, CXX|C99 },
- { 0x0ba8, 0x0baa, CXX|C99 },
- { 0x0bae, 0x0bb5, CXX|C99 },
- { 0x0bb7, 0x0bb9, CXX|C99 },
- { 0x0bbe, 0x0bc2, C99 },
- { 0x0bc6, 0x0bc8, C99 },
- { 0x0bca, 0x0bcd, C99 },
- { 0x0be7, 0x0bef, C99|DIG }, /* Digits */
- { 0x0c01, 0x0c03, C99 }, /* Telugu */
- { 0x0c05, 0x0c0c, CXX|C99 },
- { 0x0c0e, 0x0c10, CXX|C99 },
- { 0x0c12, 0x0c28, CXX|C99 },
- { 0x0c2a, 0x0c33, CXX|C99 },
- { 0x0c35, 0x0c39, CXX|C99 },
- { 0x0c3e, 0x0c44, C99 },
- { 0x0c46, 0x0c48, C99 },
- { 0x0c4a, 0x0c4d, C99 },
- { 0x0c60, 0x0c61, CXX|C99 },
- { 0x0c66, 0x0c6f, C99|DIG }, /* Digits */
- { 0x0c82, 0x0c83, C99 }, /* Kannada */
- { 0x0c85, 0x0c8c, CXX|C99 },
- { 0x0c8e, 0x0c90, CXX|C99 },
- { 0x0c92, 0x0ca8, CXX|C99 },
- { 0x0caa, 0x0cb3, CXX|C99 },
- { 0x0cb5, 0x0cb9, CXX|C99 },
- { 0x0cbe, 0x0cc4, C99 },
- { 0x0cc6, 0x0cc8, C99 },
- { 0x0cca, 0x0ccd, C99 },
- { 0x0cde, 0x0cde, C99 },
- { 0x0ce0, 0x0ce1, CXX|C99 },
- { 0x0ce6, 0x0cef, C99|DIG }, /* Digits */
- { 0x0d02, 0x0d03, C99 }, /* Malayalam */
- { 0x0d05, 0x0d0c, CXX|C99 },
- { 0x0d0e, 0x0d10, CXX|C99 },
- { 0x0d12, 0x0d28, CXX|C99 },
- { 0x0d2a, 0x0d39, CXX|C99 },
- { 0x0d3e, 0x0d43, C99 },
- { 0x0d46, 0x0d48, C99 },
- { 0x0d4a, 0x0d4d, C99 },
- { 0x0d60, 0x0d61, CXX|C99 },
- { 0x0d66, 0x0d6f, C99|DIG }, /* Digits */
- { 0x0e01, 0x0e30, CXX|C99 }, /* Thai */
- { 0x0e31, 0x0e31, C99 },
- { 0x0e32, 0x0e33, CXX|C99 },
- { 0x0e34, 0x0e3a, C99 },
- { 0x0e40, 0x0e46, CXX|C99 },
- { 0x0e47, 0x0e49, C99 },
- { 0x0e50, 0x0e59, CXX|C99|DIG }, /* Digits */
- { 0x0e5a, 0x0e5b, CXX|C99 }, /* Thai */
- { 0x0e81, 0x0e82, CXX|C99 }, /* Lao */
- { 0x0e84, 0x0e84, CXX|C99 },
- { 0x0e87, 0x0e88, CXX|C99 },
- { 0x0e8a, 0x0e8a, CXX|C99 },
- { 0x0e8d, 0x0e8d, CXX|C99 },
- { 0x0e94, 0x0e97, CXX|C99 },
- { 0x0e99, 0x0e9f, CXX|C99 },
- { 0x0ea1, 0x0ea3, CXX|C99 },
- { 0x0ea5, 0x0ea5, CXX|C99 },
- { 0x0ea7, 0x0ea7, CXX|C99 },
- { 0x0eaa, 0x0eab, CXX|C99 },
- { 0x0ead, 0x0eae, CXX|C99 },
- { 0x0eaf, 0x0eaf, CXX },
- { 0x0eb0, 0x0eb0, CXX|C99 },
- { 0x0eb1, 0x0eb1, C99 },
- { 0x0eb2, 0x0eb3, CXX|C99 },
- { 0x0eb4, 0x0eb9, C99 },
- { 0x0ebb, 0x0ebc, C99 },
- { 0x0ebd, 0x0ebd, CXX|C99 },
- { 0x0ec0, 0x0ec4, CXX|C99 },
- { 0x0ec6, 0x0ec6, CXX|C99 },
- { 0x0ec8, 0x0ecd, C99 },
- { 0x0ed0, 0x0ed9, C99|DIG }, /* Digits */
- { 0x0edc, 0x0edd, C99 }, /* Lao */
- { 0x0f00, 0x0f00, C99 }, /* Tibetan */
- { 0x0f18, 0x0f19, C99 },
- { 0x0f20, 0x0f33, C99|DIG }, /* Digits */
- { 0x0f35, 0x0f35, C99 }, /* Tibetan */
- { 0x0f37, 0x0f37, C99 },
- { 0x0f39, 0x0f39, C99 },
- { 0x0f3e, 0x0f47, C99 },
- { 0x0f49, 0x0f69, C99 },
- { 0x0f71, 0x0f84, C99 },
- { 0x0f86, 0x0f8b, C99 },
- { 0x0f90, 0x0f95, C99 },
- { 0x0f97, 0x0f97, C99 },
- { 0x0f99, 0x0fad, C99 },
- { 0x0fb1, 0x0fb7, C99 },
- { 0x0fb9, 0x0fb9, C99 },
- { 0x10a0, 0x10c5, CXX|C99 }, /* Georgian */
- { 0x10d0, 0x10f6, CXX|C99 },
- { 0x1100, 0x1159, CXX }, /* Hangul */
- { 0x1161, 0x11a2, CXX },
- { 0x11a8, 0x11f9, CXX },
- { 0x1e00, 0x1e9a, CXX|C99 }, /* Latin */
- { 0x1e9b, 0x1e9b, C99 },
- { 0x1ea0, 0x1ef9, CXX|C99 },
- { 0x1f00, 0x1f15, CXX|C99 }, /* Greek */
- { 0x1f18, 0x1f1d, CXX|C99 },
- { 0x1f20, 0x1f45, CXX|C99 },
- { 0x1f48, 0x1f4d, CXX|C99 },
- { 0x1f50, 0x1f57, CXX|C99 },
- { 0x1f59, 0x1f59, CXX|C99 },
- { 0x1f5b, 0x1f5b, CXX|C99 },
- { 0x1f5d, 0x1f5d, CXX|C99 },
- { 0x1f5f, 0x1f7d, CXX|C99 },
- { 0x1f80, 0x1fb4, CXX|C99 },
- { 0x1fb6, 0x1fbc, CXX|C99 },
- { 0x1fbe, 0x1fbe, C99 }, /* Special characters */
- { 0x1fc2, 0x1fc4, CXX|C99 }, /* Greek */
- { 0x1fc6, 0x1fcc, CXX|C99 },
- { 0x1fd0, 0x1fd3, CXX|C99 },
- { 0x1fd6, 0x1fdb, CXX|C99 },
- { 0x1fe0, 0x1fec, CXX|C99 },
- { 0x1ff2, 0x1ff4, CXX|C99 },
- { 0x1ff6, 0x1ffc, CXX|C99 },
- { 0x203f, 0x2040, C99 }, /* Special characters */
- { 0x207f, 0x207f, C99 }, /* Latin */
- { 0x2102, 0x2102, C99 }, /* Special characters */
- { 0x2107, 0x2107, C99 },
- { 0x210a, 0x2113, C99 },
- { 0x2115, 0x2115, C99 },
- { 0x2118, 0x211d, C99 },
- { 0x2124, 0x2124, C99 },
- { 0x2126, 0x2126, C99 },
- { 0x2128, 0x2128, C99 },
- { 0x212a, 0x2131, C99 },
- { 0x2133, 0x2138, C99 },
- { 0x2160, 0x2182, C99 },
- { 0x3005, 0x3007, C99 },
- { 0x3021, 0x3029, C99 },
- { 0x3041, 0x3093, CXX|C99 }, /* Hiragana */
- { 0x3094, 0x3094, CXX },
- { 0x309b, 0x309c, CXX|C99 },
- { 0x309d, 0x309e, CXX },
- { 0x30a1, 0x30f6, CXX|C99 }, /* Katakana */
- { 0x30f7, 0x30fa, CXX },
- { 0x30fb, 0x30fc, CXX|C99 },
- { 0x30fd, 0x30fe, CXX },
- { 0x3105, 0x312c, CXX|C99 }, /* Bopomofo */
- { 0x4e00, 0x9fa5, CXX|C99 }, /* CJK Unified Ideographs */
- { 0xac00, 0xd7a3, C99 }, /* Hangul */
- { 0xf900, 0xfa2d, CXX }, /* CJK Unified Ideographs */
- { 0xfb1f, 0xfb36, CXX },
- { 0xfb38, 0xfb3c, CXX },
- { 0xfb3e, 0xfb3e, CXX },
- { 0xfb40, 0xfb44, CXX },
- { 0xfb46, 0xfbb1, CXX },
- { 0xfbd3, 0xfd3f, CXX },
- { 0xfd50, 0xfd8f, CXX },
- { 0xfd92, 0xfdc7, CXX },
- { 0xfdf0, 0xfdfb, CXX },
- { 0xfe70, 0xfe72, CXX },
- { 0xfe74, 0xfe74, CXX },
- { 0xfe76, 0xfefc, CXX },
- { 0xff21, 0xff3a, CXX },
- { 0xff41, 0xff5a, CXX },
- { 0xff66, 0xffbe, CXX },
- { 0xffc2, 0xffc7, CXX },
- { 0xffca, 0xffcf, CXX },
- { 0xffd2, 0xffd7, CXX },
- { 0xffda, 0xffdc, CXX },
-};
-
-#endif /* LIBCPP_UCNID_H */
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00a9 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00aa },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b4 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00b5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x00b7 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x00b9 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x00ba },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00bf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x00d6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00d7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x00f6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00f7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0131 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0133 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x013e },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0140 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0148 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0149 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x017e },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x017f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01c3 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x01cc },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01f0 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x01f3 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x01f5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x01f9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0217 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x024f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x02a8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02af },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x02b8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02ba },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02bb },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02bc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02c1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02cf },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x02d1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x02df },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x02e4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0379 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x037a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0383 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0x0384 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x0385 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0386 },
+{ 0| 0| 0|CID| 0| 0| 0, 0, 0x0387 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x038a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x038b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x038c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x038d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03a1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03a2 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03ce },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03cf },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x03d6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03d9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03da },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03db },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03dc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03dd },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03de },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03df },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03e0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x03e1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03ef },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x03f2 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x03f3 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x0400 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x040c },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x040d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x040e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x044f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0450 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x045c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x045d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0481 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x048f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04c4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04c6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04c8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04ca },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04cc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04cf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04eb },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04ed },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04f5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x04f7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x04f9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0530 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0556 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0558 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0559 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0560 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0586 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0587 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05af },
+{ C99| 0| 0|CID|NFC|NKC| 0, 10, 0x05b0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 11, 0x05b1 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 12, 0x05b2 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 13, 0x05b3 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 14, 0x05b4 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 15, 0x05b5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 16, 0x05b6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 17, 0x05b7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 18, 0x05b8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 19, 0x05b9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05ba },
+{ C99| 0| 0|CID|NFC|NKC| 0, 20, 0x05bb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 21, 0x05bc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 22, 0x05bd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05be },
+{ C99| 0| 0|CID|NFC|NKC| 0, 23, 0x05bf },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05c0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 24, 0x05c1 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 25, 0x05c2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05cf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x05ea },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x05ef },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x05f2 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x05f4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0620 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x063a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x063f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x064a },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 27, 0x064b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 28, 0x064c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 29, 0x064d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 30, 0x064e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 31, 0x064f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 32, 0x0650 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 33, 0x0651 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 34, 0x0652 },
+{ 0| 0| 0|CID|NFC|NKC|CTX, 0, 0x065f },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0669 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x066f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0674 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0678 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06b7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06b9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06be },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06bf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06ce },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06cf },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x06d5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06d9 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06da },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06db },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06dc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06e4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x06e6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 230, 0x06e7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06e8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06e9 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x06ea },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06eb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x06ec },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x06ed },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x06ef },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x06f9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0900 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0903 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0904 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0939 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x093c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x094c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x094d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x094f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0950 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0951 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0952 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0957 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x095f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0962 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0963 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0965 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x096f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0980 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0983 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0984 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x098c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x098e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0990 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0992 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09a8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09a9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09b1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09b5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09b9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09bd },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x09be },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09c4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09c6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09c8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09ca },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x09cb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09cc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x09cd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09db },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x09dd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09de },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x09df },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09e1 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x09e3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x09e5 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x09ef },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x09f1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a01 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a02 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a0a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a0e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a12 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a30 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a31 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a32 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a34 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a35 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a36 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a37 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a3d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a42 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a46 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a4a },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0a4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a58 },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a5b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a5c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a5d },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0a5e },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0a6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a73 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a74 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a80 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0a83 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a84 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a8b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a8c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a8d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a8e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0a91 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0a92 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0aa8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0aa9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ab1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ab4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ab9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0abc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac6 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ac9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0aca },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0acc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0acd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0acf },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ad0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0adf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ae0 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ae5 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0aef },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b00 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b03 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b0c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b0e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b12 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b30 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b31 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b35 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b3c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b3d },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0b3e },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b43 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b46 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b4a },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0b4b },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0b4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b5b },
+{ C99| 0|CXX|CID| 0| 0| 0, 0, 0x0b5d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b5e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b61 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0b6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b81 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0b83 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b84 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b8a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b8d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b90 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b91 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b95 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b98 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b9b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0b9d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0b9f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ba2 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ba4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ba7 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0baa },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bad },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0bb5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bb6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0bb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bbd },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0bbe },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0bc9 },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0bcb },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0bcc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0bcd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0be6 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0bef },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c00 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c03 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c0c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c0d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c11 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c34 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c3d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c44 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c45 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c49 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0c4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c5f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c61 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0c6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c81 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0c83 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c84 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c8c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c8d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0c90 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c91 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ca8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ca9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0cb3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cb4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0cb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cbd },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc1 },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0cc2 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc5 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc8 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cc9 },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0cca },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ccc },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0ccd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdd },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0cde },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ce1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ce5 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0cef },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d01 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d03 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d04 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d0c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d0d },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d10 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d11 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d28 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d29 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d3d },
+{ C99| 0| 0|CID|NFC|NKC|CTX, 0, 0x0d3e },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d43 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d45 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d48 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d49 },
+{ C99| 0| 0| 0|NFC|NKC| 0, 0, 0x0d4b },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0d4c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0d4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d5f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0d61 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0d65 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0d6f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e00 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e30 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e31 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e32 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0e33 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e37 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 103, 0x0e38 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 103, 0x0e39 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0e3a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e3f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e46 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0e47 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 107, 0x0e48 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 107, 0x0e49 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e4e },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e4f },
+{ C99|DIG|CXX|CID|NFC|NKC| 0, 0, 0x0e59 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e5b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e80 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e82 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e83 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e84 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e86 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e88 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e89 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e8a },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e8c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e8d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e93 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e97 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0e98 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0e9f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea0 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea4 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea6 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ea7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ea9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eab },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eac },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eae },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eaf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eb0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0eb1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0eb2 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x0eb3 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0eb7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 118, 0x0eb8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 118, 0x0eb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eba },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ebc },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ebd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ebf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ec4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ec5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x0ec6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ec7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0ec8 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0ec9 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 122, 0x0eca },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0ecd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0ecf },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0ed9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0edb },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0edd },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0eff },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f00 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f17 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f18 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f19 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f1f },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x0f33 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f34 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f35 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f36 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 220, 0x0f37 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f38 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 216, 0x0f39 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f3d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f42 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f43 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f47 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f48 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f4c },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f4d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f51 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f52 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f56 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f57 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f5b },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f5c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f68 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f69 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f70 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 129, 0x0f71 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f72 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f73 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 132, 0x0f74 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f76 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0f77 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f78 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x0f79 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7a },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7b },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f7c },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f7f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 130, 0x0f80 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f81 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f82 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f83 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 9, 0x0f84 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f85 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 230, 0x0f86 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f8b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f8f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f92 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f93 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f95 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f96 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f97 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0f98 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0f9c },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0f9d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fa1 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fa2 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fa6 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fa7 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fab },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fac },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fad },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb0 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0fb8 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x0fb9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x109f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x10c5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10cf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x10f6 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10ff },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x1159 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1160 },
+{ 0| 0|CXX|CID|NFC|NKC|CTX, 0, 0x1175 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x11a2 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11a7 },
+{ 0| 0|CXX|CID|NFC|NKC|CTX, 0, 0x11c2 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x11f9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1dff },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1e99 },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x1e9a },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x1e9b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e9f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ef9 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1eff },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f15 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f17 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f1d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f1f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f45 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f47 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f4d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f4f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f57 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f58 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f59 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5a },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f5b },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5c },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f5d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f5e },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f70 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f71 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f72 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f73 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f74 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f75 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f76 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f77 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f78 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f79 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f7a },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f7b },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1f7c },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1f7d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1f7f },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fb4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fb5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fba },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fbb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fbc },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fbd },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x1fbe },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fc1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fc4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fc5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fc8 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fc9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fca },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fcb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fcc },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1fcf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fd2 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fd3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fd5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fda },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fdb },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1fdf },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fe2 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1fe3 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fea },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1feb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1fec },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x1ff1 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ff4 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1ff5 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ff8 },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1ff9 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ffa },
+{ C99| 0|CXX| 0| 0| 0| 0, 0, 0x1ffb },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x1ffc },
+{ 0| 0| 0|CID| 0| 0| 0, 0, 0x203e },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2040 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x207e },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x207f },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2101 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2102 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2106 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2107 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2109 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2113 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2114 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2115 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x2117 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2118 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x211d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2123 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2124 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2125 },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x2126 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2127 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2128 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2129 },
+{ C99| 0| 0|CID| 0| 0| 0, 0, 0x212a },
+{ C99| 0| 0| 0| 0| 0| 0, 0, 0x212b },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x212d },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x212e },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2131 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2132 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2138 },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x215f },
+{ C99|DIG| 0|CID|NFC| 0| 0, 0, 0x217f },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x2182 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3004 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x3006 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3007 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3020 },
+{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3029 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3040 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x3093 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x3094 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x309a },
+{ C99| 0|CXX|CID|NFC| 0| 0, 0, 0x309c },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x309e },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x30a0 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x30f6 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fa },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fc },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x30fe },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x3104 },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x312c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x4dff },
+{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x9fa5 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xabff },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0xd7a3 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xf8ff },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa0d },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa0f },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa10 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa11 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa12 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa14 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa1e },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa1f },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa20 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa21 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa22 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa24 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa26 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfa29 },
+{ 0| 0|CXX| 0| 0| 0| 0, 0, 0xfa2d },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb1e },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb1f },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfb29 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb36 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb37 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb3c },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb3d },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb3e },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb3f },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb41 },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfb42 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb44 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfb45 },
+{ 0| 0|CXX|CID| 0| 0| 0, 0, 0xfb4e },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfbb1 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfbd2 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfd3d },
+{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0xfd3f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfd4f },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfd8f },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfd91 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfdc7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfdef },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfdfb },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xfe6f },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfe72 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe73 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfe74 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe75 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xfefc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xff20 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xff3a },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xff40 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xff5a },
+{ 0| 0| 0|CID|NFC| 0| 0, 0, 0xff65 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffbe },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffc1 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffc7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffc9 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffcf },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffd1 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffd7 },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffd9 },
+{ 0| 0|CXX|CID|NFC| 0| 0, 0, 0xffdc },
+{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffff },
+/* APPLE LOCAL end mainline UCNs 2005-04-17 3892809 */
diff --git a/libcpp/ucnid.pl b/libcpp/ucnid.pl
index eb8bbcac627..fe24c67abdf 100644
--- a/libcpp/ucnid.pl
+++ b/libcpp/ucnid.pl
@@ -1,130 +1,2 @@
-#! /usr/bin/perl -w
-use strict;
-
-# Convert cppucnid.tab to cppucnid.h. We use two arrays of length
-# 65536 to represent the table, since this is nice and simple. The
-# first array holds the tags indicating which ranges are valid in
-# which contexts. The second array holds the language name associated
-# with each element.
-
-our(@tags, @names);
-@tags = ("") x 65536;
-@names = ("") x 65536;
-
-
-# Array mapping tag numbers to standard #defines
-our @stds;
-
-# Current standard and language
-our($curstd, $curlang);
-
-# First block of the file is a template to be saved for later.
-our @template;
-
-while (<>) {
- chomp;
- last if $_ eq '%%';
- push @template, $_;
-};
-
-# Second block of the file is the UCN tables.
-# The format looks like this:
-#
-# [std]
-#
-# ; language
-# xxxx-xxxx xxxx xxxx-xxxx ....
-#
-# with comment lines starting with #.
-
-while (<>) {
- chomp;
- /^#/ and next;
- /^\s*$/ and next;
- /^\[(.+)\]$/ and do {
- $curstd = $1;
- next;
- };
- /^; (.+)$/ and do {
- $curlang = $1;
- next;
- };
-
- process_range(split);
-}
-
-# Print out the template, inserting as requested.
-$\ = "\n";
-for (@template) {
- print("/* Automatically generated from cppucnid.tab, do not edit */"),
- next if $_ eq "[dne]";
- print_table(), next if $_ eq "[table]";
- print;
-}
-
-sub print_table {
- my($lo, $hi);
- my $prevname = "";
-
- for ($lo = 0; $lo <= $#tags; $lo = $hi) {
- $hi = $lo;
- $hi++ while $hi <= $#tags
- && $tags[$hi] eq $tags[$lo]
- && $names[$hi] eq $names[$lo];
-
- # Range from $lo to $hi-1.
- # Don't make entries for ranges that are not valid idchars.
- next if ($tags[$lo] eq "");
- my $tag = $tags[$lo];
- $tag = " ".$tag if $tag =~ /^C99/;
-
- if ($names[$lo] eq $prevname) {
- printf(" { 0x%04x, 0x%04x, %-11s },\n",
- $lo, $hi-1, $tag);
- } else {
- printf(" { 0x%04x, 0x%04x, %-11s }, /* %s */\n",
- $lo, $hi-1, $tag, $names[$lo]);
- }
- $prevname = $names[$lo];
- }
-}
-
-# The line is a list of four-digit hexadecimal numbers or
-# pairs of such numbers. Each is a valid identifier character
-# from the given language, under the given standard.
-sub process_range {
- for my $range (@_) {
- if ($range =~ /^[0-9a-f]{4}$/) {
- my $i = hex($range);
- if ($tags[$i] eq "") {
- $tags[$i] = $curstd;
- } else {
- $tags[$i] = $curstd . "|" . $tags[$i];
- }
- if ($names[$i] ne "" && $names[$i] ne $curlang) {
- warn sprintf ("language overlap: %s/%s at %x (tag %d)",
- $names[$i], $curlang, $i, $tags[$i]);
- next;
- }
- $names[$i] = $curlang;
- } elsif ($range =~ /^ ([0-9a-f]{4}) - ([0-9a-f]{4}) $/x) {
- my ($start, $end) = (hex($1), hex($2));
- my $i;
- for ($i = $start; $i <= $end; $i++) {
- if ($tags[$i] eq "") {
- $tags[$i] = $curstd;
- } else {
- $tags[$i] = $curstd . "|" . $tags[$i];
- }
- if ($names[$i] ne "" && $names[$i] ne $curlang) {
- warn sprintf ("language overlap: %s/%s at %x (tag %d)",
- $names[$i], $curlang, $i, $tags[$i]);
- next;
- }
- $names[$i] = $curlang;
- }
- } else {
- warn "malformed range expression $range";
- }
- }
-}
+/* APPLE LOCAL mainline UCNs 2005-04-17 3892809 */
+/* entire file deleted */
diff --git a/libcpp/ucnid.tab b/libcpp/ucnid.tab
index 7cb16e1e5a4..b710ed710e8 100644
--- a/libcpp/ucnid.tab
+++ b/libcpp/ucnid.tab
@@ -1,47 +1,26 @@
-/* Table of UCNs which are valid in identifiers.
- 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 this program; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-[dne]
-
-/* This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
- D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
- the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
- a reproduction of ISO/IEC PDTR 10176. Unfortunately these tables
- are not identical. */
-
-#ifndef LIBCPP_UCNID_H
-#define LIBCPP_UCNID_H
-
-#define C99 1
-#define CXX 2
-#define DIG 4
-
-struct ucnrange
-{
- unsigned short lo, hi;
- unsigned short flags;
-};
-
-static const struct ucnrange ucnranges[] = {
-[table]
-};
-
-#endif /* LIBCPP_UCNID_H */
-%%
+/* APPLE LOCAL file mainline UCNs 2005-04-17 3892809 */
+; Table of UCNs which are valid in identifiers.
+; Copyright (C) 2003, 2005 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+;
+; This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
+; D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
+; the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
+; a reproduction of ISO/IEC PDTR 10176. Unfortunately these tables
+; are not identical.
[C99]
@@ -141,7 +120,6 @@ ac00-d7a3
0b3d 1fbe 203f-2040 2102 2107 210a-2113 2115 2118-211d 2124 2126 2128
212a-2131 2133-2138 2160-2182 3005-3007 3021-3029
-[C99|DIG]
; Digits
0660-0669 06f0-06f9 0966-096f 09e6-09ef 0a66-0a6f 0ae6-0aef 0b66-0b6f
0be7-0bef 0c66-0c6f 0ce6-0cef 0d66-0d6f 0e50-0e59 0ed0-0ed9 0f20-0f33
@@ -201,16 +179,12 @@ ac00-d7a3
; Malayalam
0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d60-0d61
-# CORRECTION: Exclude 0e50-0e59 from the Thai range and make a fake
-# Digits range for it, to match C99. cppcharset.c knows that C++
-# doesn't distinguish digits from other UCNs valid in identifiers.
; Thai
-0e01-0e30 0e32-0e33 0e40-0e46 0e4f-0e49 0e5a-0e5b
+0e01-0e30 0e32-0e33 0e40-0e46 0e4f-0e5b
; Digits
0e50-0e59
-# CORRECTION: Change 0e0d to 0e8d (typo in standard; see C++ DR 131)
; Lao
0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
0ea7 0eaa-0eab 0ead-0eb0 0eb2 0eb3 0ebd 0ec0-0ec4 0ec6
@@ -224,7 +198,6 @@ ac00-d7a3
; Katakana
30a1-30fe
-# CORRECTION: language spelled "Bopmofo" in C++98.
; Bopomofo
3105-312c
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index be46054b817..9e1f2cc7bca 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,17 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-02-22 Andrew Haley <aph@redhat.com>
+
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
+ odd-numbered register pairs for 64-bit integer types.
+
+2005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
+
+ PR libffi/20104
+ * testsuite/libffi.call/return_ll1.c: New test case.
+
2005-02-11 Janis Johnson <janis187@us.ibm.com>
* testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
diff --git a/libffi/src/powerpc/ffi.c b/libffi/src/powerpc/ffi.c
index c8d188777c8..67d945bd826 100644
--- a/libffi/src/powerpc/ffi.c
+++ b/libffi/src/powerpc/ffi.c
@@ -573,10 +573,14 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
/* 'long long' arguments are passed as two words, but
either both words must fit in registers or both go
on the stack. If they go on the stack, they must
- be 8-byte-aligned. */
+ be 8-byte-aligned.
+
+ Also, only certain register pairs can be used for
+ passing long long int -- specifically (r3,r4), (r5,r6),
+ (r7,r8), (r9,r10).
+ */
if (intarg_count == NUM_GPR_ARG_REGISTERS-1
- || (intarg_count >= NUM_GPR_ARG_REGISTERS
- && intarg_count%2 != 0))
+ || intarg_count%2 != 0)
intarg_count++;
intarg_count += 2;
break;
diff --git a/libffi/testsuite/libffi.call/return_ll1.c b/libffi/testsuite/libffi.call/return_ll1.c
new file mode 100644
index 00000000000..32fdfa122ff
--- /dev/null
+++ b/libffi/testsuite/libffi.call/return_ll1.c
@@ -0,0 +1,42 @@
+/* Area: ffi_call
+ Purpose: Check if long long are passed in the corresponding regs on ppc.
+ Limitations: none.
+ PR: 20104.
+ Originator: <andreast@gcc.gnu.org> 20050222 */
+
+/* { dg-do run } */
+#include "ffitest.h"
+static long long return_ll(int ll0, long long ll1, int ll2)
+{
+ return ll0 + ll1 + ll2;
+}
+
+int main (void)
+{
+ ffi_cif cif;
+ ffi_type *args[MAX_ARGS];
+ void *values[MAX_ARGS];
+ long long rlonglong;
+ long long ll1;
+ unsigned ll0, ll2;
+
+ args[0] = &ffi_type_uint32;
+ args[1] = &ffi_type_sint64;
+ args[2] = &ffi_type_uint32;
+ values[0] = &ll0;
+ values[1] = &ll1;
+ values[2] = &ll2;
+
+ /* Initialize the cif */
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 3,
+ &ffi_type_sint64, args) == FFI_OK);
+
+ ll0 = 11111111;
+ ll1 = 11111111111000LL;
+ ll2 = 11111111;
+
+ ffi_call(&cif, FFI_FN(return_ll), &rlonglong, values);
+ printf("res: %lld, %lld\n", rlonglong, ll0 + ll1 + ll2);
+ /* { dg-output "res: 11111133333222, 11111133333222" } */
+ exit(0);
+}
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index e932ed1bf55..5ba7109e1de 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,170 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/20163
+ * runtime/string.c (compare0): Use fstrlen() to
+ strip trailing blanks from option string.
+
+
+2005-04-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * io/backspace.c (unformatted_backspace): Do not dereference
+ the pointer to the stream.
+
+2005-04-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR libfortran/20766
+ * configure.ac (extra_ldflags_libgfortran): Set for *-darwin* to
+ "-Wl,-single_module".
+ * configure: Regenerate.
+ * Makefile.am (libgfortran_la_LDFLAGS): Add extra_ldflags_libgfortran.
+ * Makefile.in: Regenerate.
+
+2005-04-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20755
+ * write.c (write_float): A G edit descriptor may locally change
+ the scale factor, but it needs to be restored afterwards.
+
+2005-04-03 Dale Ranta <dir@lanl.gov>
+ Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20068
+ PR libfortran/20125
+ PR libfortran/20156
+ PR libfortran/20471
+ * io/backspace.c (unformatted_backspace): Fix error in arithmetic.
+ (st_backspace): When in WRITING mode, we flush and falling back
+ into READING mode. In all cases, correctly position the stream.
+
+2005-03-31 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20660
+ * io/inquire.c (inquire_via_unit): Non-opened units should still be
+ reported by an INQUIRE statement as existing.
+ * io/transfer.c (data_transfer_init): Never accept negative units.
+
+2005-03-29 Dale Ranta <dir@lanl.gov>
+ Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20163
+ * io/open.c (st_open): call library_end() before returning even if
+ an error arises.
+
+2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/19678
+ * list_read.c (next_char, eat_separator, finish_separator, read_real)
+ (namelist_read): Add support for '\r' as well as '\n' as EOL
+ character.
+
+ PR libfortran/19679
+ * list_read.c (read_sf): Add a '\r' in a test to support DOS
+ line-endings when line length is exceeded.
+
+2005-03-25 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/15332
+ * io/format.c (parse_format_list): format node for colon edit
+ descriptor needs a repeat counter set to 1.
+
+2005-02-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+ * Makefile.in, config.h.in: Regenerate.
+
+2005-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/18025
+ * write.c (output_float): Handling the "F0.d" format similarly as
+ commercial compilers.
+
+2005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * Makefile.am: Added new files.
+ * Makefile.in: Regenerate.
+ * configure.ac: add checks for signal.h headers file, as well as
+ following functions: chdir, strerror, getlogin, gethostname, kill,
+ link, symlink, perror, sleep, time.
+ * configure: Regenerate.
+ * intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c,
+ intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c,
+ intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c,
+ intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly
+ implementend g77 intrinsics.
+
+2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20257
+ * open.c (new_unit): set record length to max_offset rather than
+ using a hard-coded limit (which was too low).
+
+2005-03-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20480
+ * write.c (output_float): special check when writing 0.0 with
+ EN and ES formats.
+
+2005-03-11 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20124
+ * write.c (output_float): Adds a nzero_real variable to store
+ the number of leading zeros whatever the format width is. Corrects
+ the rounding of numbers less than 10^(-width). Fixes typo in an
+ error message. Updates copyright years
+
+2005-02-25 Peter O'Gorman <peter@pogma.com>
+ Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR libgfortran/17748
+ * runtime/environ.c: Remove references to environ.
+ Update copyright years.
+ (show_variables): remove GFORTRAN_UNBUFFERED_* and
+ GFORTRAN_NAME_* because they require environ.
+ (pattern_scan): Remove function.
+
+2005-02-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR libfortran/20101
+ * io/write.c (output_float): Added special check for value 0.0 in
+ PE format.
+
+2005-02-27 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * io/write.c (output_float): Fix typo in condition.
+
+2005-02-22 Paul Thomas <paulthomas2@wannado.fr>
+ Bud Davis <bdavis@gfortran.org>
+
+ * io/list_read.c (read_real): Handle separators properly
+ in list directed read.
+
+2005-02-21 Bud Davis <bdavis@gfortran.org>
+
+ PR fortran/20086
+ * io/transfer.c (write_constant_string): accept an 'h' as
+ the start of a hollerith format string.
+
+2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR libfortran/19302
+ * intrinsics/c99_functions.c (nextafterf): Special-case infinite
+ numbers.
+
+2005-02-21 Steven G. Kargl <kargls@comcast.net>
+
+ * io/write.c (output_float): Typo in error meesage.
+
+2005-02-20 Steven G. Kargl <kargls@comcast.net>
+
+ PR 20085
+ * intrinsic/args.c (iargc): Off by 1.
+
+2005-02-19 Steven G. Kargl <kargls@comcast.net>
+
+ * intrinsic/date_and_time.c: Fix conformance problems.
+
2005-02-01 Paul Thomas <paulthomas2@wanadoo.fr>
PR libgfortran/19363
@@ -1325,7 +1492,7 @@
* libgfortan.h,intrinsics/random.c: Made random_seed visible.
* runtime/main.c(init): Call random_seed as part of MAIN init.
-2004-05-13 Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
+2004-05-13 Tobias Schlter <tobias.schlueter@physik.uni-muenchen.de>
* io/format.c: (parse_format_list): No comma is required after
P descriptor.
@@ -1782,7 +1949,7 @@
(calculate_G_format): Rewrite it to eliminate an infinte loop and set
the scale_factor to 0 for F editing.
-2003-05-11 Tobias Schlüter <innenminister@gmx.de>
+2003-05-11 Tobias Schlter <innenminister@gmx.de>
* libgfor.h: Only include stdint.h if it exists.
@@ -1797,11 +1964,11 @@
* libgfor.h (offsetof): Define if nobody else does.
* runtime/memory.c (HEADER_SIZE): Use it.
-2003-05-01 Tobias Schlüter <innenminister@gmx.de>
+2003-05-01 Tobias Schlter <innenminister@gmx.de>
* configure.in: Require autoconf 2.54.
-2003-04-28 Tobias Schlüter <innenminister@gmx.de>
+2003-04-28 Tobias Schlter <innenminister@gmx.de>
Paul Brook <paul@nowt.org>
* intrinsics/reshape_generic.c: Copy the whole element, not just the
@@ -1815,7 +1982,7 @@
* io/format.c (parse_format_list): Allow 'X' without integer
prefix. This is an extension. Interpretation is '1X'.
-2003-04-18 Tobias Schlüter <Tobias.Schlueter@physik.uni-muenchen.de>
+2003-04-18 Tobias Schlter <Tobias.Schlueter@physik.uni-muenchen.de>
* io/format.c (parse_format_list): Allow '0P'.
diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am
index 27b31333ae1..ea5cca0a3a9 100644
--- a/libgfortran/Makefile.am
+++ b/libgfortran/Makefile.am
@@ -7,7 +7,7 @@ ACLOCAL_AMFLAGS = -I ../config
toolexeclib_LTLIBRARIES = libgfortran.la libgfortranbegin.la
-libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm
+libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran)
## This should really go in the compiler lib dir, not the system lib dir.
libgfortranbegin_la_SOURCES = fmain.c
@@ -44,6 +44,7 @@ intrinsics/abort.c \
intrinsics/args.c \
intrinsics/bessel.c \
intrinsics/c99_functions.c \
+intrinsics/chdir.c \
intrinsics/cpu_time.c \
intrinsics/cshift0.c \
intrinsics/date_and_time.c \
@@ -55,23 +56,34 @@ intrinsics/etime.c \
intrinsics/exit.c \
intrinsics/flush.c \
intrinsics/fnum.c \
+intrinsics/gerror.c \
intrinsics/getcwd.c \
+intrinsics/getlog.c \
intrinsics/getXid.c \
+intrinsics/hostnm.c \
+intrinsics/kill.c \
+intrinsics/ierrno.c \
intrinsics/ishftc.c \
+intrinsics/link.c \
intrinsics/mvbits.c \
intrinsics/pack_generic.c \
+intrinsics/perror.c \
intrinsics/size.c \
+intrinsics/sleep.c \
intrinsics/spread_generic.c \
intrinsics/string_intrinsics.c \
intrinsics/system.c \
intrinsics/rand.c \
intrinsics/random.c \
+intrinsics/rename.c \
intrinsics/reshape_generic.c \
intrinsics/reshape_packed.c \
intrinsics/selected_int_kind.f90 \
intrinsics/selected_real_kind.f90 \
intrinsics/stat.c \
+intrinsics/symlnk.c \
intrinsics/system_clock.c \
+intrinsics/time.c \
intrinsics/transpose_generic.c \
intrinsics/umask.c \
intrinsics/unlink.c \
diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in
index 6449b3b5e44..501b82c6b63 100644
--- a/libgfortran/Makefile.in
+++ b/libgfortran/Makefile.in
@@ -128,13 +128,15 @@ am__objects_32 = backspace.lo close.lo endfile.lo format.lo inquire.lo \
list_read.lo lock.lo open.lo read.lo rewind.lo transfer.lo \
unit.lo unix.lo write.lo
am__objects_33 = associated.lo abort.lo args.lo bessel.lo \
- c99_functions.lo cpu_time.lo cshift0.lo date_and_time.lo \
- env.lo erf.lo eoshift0.lo eoshift2.lo etime.lo exit.lo \
- flush.lo fnum.lo getcwd.lo getXid.lo ishftc.lo mvbits.lo \
- pack_generic.lo size.lo spread_generic.lo string_intrinsics.lo \
- system.lo rand.lo random.lo reshape_generic.lo \
- reshape_packed.lo selected_int_kind.lo selected_real_kind.lo \
- stat.lo system_clock.lo transpose_generic.lo umask.lo \
+ c99_functions.lo chdir.lo cpu_time.lo cshift0.lo \
+ date_and_time.lo env.lo erf.lo eoshift0.lo eoshift2.lo \
+ etime.lo exit.lo flush.lo fnum.lo gerror.lo getcwd.lo \
+ getlog.lo getXid.lo hostnm.lo kill.lo ierrno.lo ishftc.lo \
+ link.lo mvbits.lo pack_generic.lo perror.lo size.lo sleep.lo \
+ spread_generic.lo string_intrinsics.lo system.lo rand.lo \
+ random.lo rename.lo reshape_generic.lo reshape_packed.lo \
+ selected_int_kind.lo selected_real_kind.lo stat.lo symlnk.lo \
+ system_clock.lo time.lo transpose_generic.lo umask.lo \
unlink.lo unpack_generic.lo in_pack_generic.lo \
in_unpack_generic.lo normalize.lo
am__objects_34 =
@@ -266,6 +268,7 @@ datadir = @datadir@
enable_shared = @enable_shared@
enable_static = @enable_static@
exec_prefix = @exec_prefix@
+extra_ldflags_libgfortran = @extra_ldflags_libgfortran@
gcc_version = @gcc_version@
gcc_version_full = @gcc_version_full@
gcc_version_trigger = @gcc_version_trigger@
@@ -299,7 +302,7 @@ toolexeclibdir = @toolexeclibdir@
AM_CFLAGS = -std=gnu99
ACLOCAL_AMFLAGS = -I ../config
toolexeclib_LTLIBRARIES = libgfortran.la libgfortranbegin.la
-libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm
+libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lm $(extra_ldflags_libgfortran)
libgfortranbegin_la_SOURCES = fmain.c
libgfortranbegin_la_LDFLAGS = -static
AM_CPPFLAGS = -iquote$(srcdir)/io
@@ -329,6 +332,7 @@ intrinsics/abort.c \
intrinsics/args.c \
intrinsics/bessel.c \
intrinsics/c99_functions.c \
+intrinsics/chdir.c \
intrinsics/cpu_time.c \
intrinsics/cshift0.c \
intrinsics/date_and_time.c \
@@ -340,23 +344,34 @@ intrinsics/etime.c \
intrinsics/exit.c \
intrinsics/flush.c \
intrinsics/fnum.c \
+intrinsics/gerror.c \
intrinsics/getcwd.c \
+intrinsics/getlog.c \
intrinsics/getXid.c \
+intrinsics/hostnm.c \
+intrinsics/kill.c \
+intrinsics/ierrno.c \
intrinsics/ishftc.c \
+intrinsics/link.c \
intrinsics/mvbits.c \
intrinsics/pack_generic.c \
+intrinsics/perror.c \
intrinsics/size.c \
+intrinsics/sleep.c \
intrinsics/spread_generic.c \
intrinsics/string_intrinsics.c \
intrinsics/system.c \
intrinsics/rand.c \
intrinsics/random.c \
+intrinsics/rename.c \
intrinsics/reshape_generic.c \
intrinsics/reshape_packed.c \
intrinsics/selected_int_kind.f90 \
intrinsics/selected_real_kind.f90 \
intrinsics/stat.c \
+intrinsics/symlnk.c \
intrinsics/system_clock.c \
+intrinsics/time.c \
intrinsics/transpose_generic.c \
intrinsics/umask.c \
intrinsics/unlink.c \
@@ -1213,6 +1228,9 @@ bessel.lo: intrinsics/bessel.c
c99_functions.lo: intrinsics/c99_functions.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o c99_functions.lo `test -f 'intrinsics/c99_functions.c' || echo '$(srcdir)/'`intrinsics/c99_functions.c
+chdir.lo: intrinsics/chdir.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o chdir.lo `test -f 'intrinsics/chdir.c' || echo '$(srcdir)/'`intrinsics/chdir.c
+
cpu_time.lo: intrinsics/cpu_time.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cpu_time.lo `test -f 'intrinsics/cpu_time.c' || echo '$(srcdir)/'`intrinsics/cpu_time.c
@@ -1246,24 +1264,48 @@ flush.lo: intrinsics/flush.c
fnum.lo: intrinsics/fnum.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fnum.lo `test -f 'intrinsics/fnum.c' || echo '$(srcdir)/'`intrinsics/fnum.c
+gerror.lo: intrinsics/gerror.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gerror.lo `test -f 'intrinsics/gerror.c' || echo '$(srcdir)/'`intrinsics/gerror.c
+
getcwd.lo: intrinsics/getcwd.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getcwd.lo `test -f 'intrinsics/getcwd.c' || echo '$(srcdir)/'`intrinsics/getcwd.c
+getlog.lo: intrinsics/getlog.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getlog.lo `test -f 'intrinsics/getlog.c' || echo '$(srcdir)/'`intrinsics/getlog.c
+
getXid.lo: intrinsics/getXid.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getXid.lo `test -f 'intrinsics/getXid.c' || echo '$(srcdir)/'`intrinsics/getXid.c
+hostnm.lo: intrinsics/hostnm.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hostnm.lo `test -f 'intrinsics/hostnm.c' || echo '$(srcdir)/'`intrinsics/hostnm.c
+
+kill.lo: intrinsics/kill.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kill.lo `test -f 'intrinsics/kill.c' || echo '$(srcdir)/'`intrinsics/kill.c
+
+ierrno.lo: intrinsics/ierrno.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ierrno.lo `test -f 'intrinsics/ierrno.c' || echo '$(srcdir)/'`intrinsics/ierrno.c
+
ishftc.lo: intrinsics/ishftc.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ishftc.lo `test -f 'intrinsics/ishftc.c' || echo '$(srcdir)/'`intrinsics/ishftc.c
+link.lo: intrinsics/link.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o link.lo `test -f 'intrinsics/link.c' || echo '$(srcdir)/'`intrinsics/link.c
+
mvbits.lo: intrinsics/mvbits.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mvbits.lo `test -f 'intrinsics/mvbits.c' || echo '$(srcdir)/'`intrinsics/mvbits.c
pack_generic.lo: intrinsics/pack_generic.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pack_generic.lo `test -f 'intrinsics/pack_generic.c' || echo '$(srcdir)/'`intrinsics/pack_generic.c
+perror.lo: intrinsics/perror.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o perror.lo `test -f 'intrinsics/perror.c' || echo '$(srcdir)/'`intrinsics/perror.c
+
size.lo: intrinsics/size.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o size.lo `test -f 'intrinsics/size.c' || echo '$(srcdir)/'`intrinsics/size.c
+sleep.lo: intrinsics/sleep.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sleep.lo `test -f 'intrinsics/sleep.c' || echo '$(srcdir)/'`intrinsics/sleep.c
+
spread_generic.lo: intrinsics/spread_generic.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spread_generic.lo `test -f 'intrinsics/spread_generic.c' || echo '$(srcdir)/'`intrinsics/spread_generic.c
@@ -1279,6 +1321,9 @@ rand.lo: intrinsics/rand.c
random.lo: intrinsics/random.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o random.lo `test -f 'intrinsics/random.c' || echo '$(srcdir)/'`intrinsics/random.c
+rename.lo: intrinsics/rename.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rename.lo `test -f 'intrinsics/rename.c' || echo '$(srcdir)/'`intrinsics/rename.c
+
reshape_generic.lo: intrinsics/reshape_generic.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o reshape_generic.lo `test -f 'intrinsics/reshape_generic.c' || echo '$(srcdir)/'`intrinsics/reshape_generic.c
@@ -1288,9 +1333,15 @@ reshape_packed.lo: intrinsics/reshape_packed.c
stat.lo: intrinsics/stat.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat.lo `test -f 'intrinsics/stat.c' || echo '$(srcdir)/'`intrinsics/stat.c
+symlnk.lo: intrinsics/symlnk.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o symlnk.lo `test -f 'intrinsics/symlnk.c' || echo '$(srcdir)/'`intrinsics/symlnk.c
+
system_clock.lo: intrinsics/system_clock.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o system_clock.lo `test -f 'intrinsics/system_clock.c' || echo '$(srcdir)/'`intrinsics/system_clock.c
+time.lo: intrinsics/time.c
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o time.lo `test -f 'intrinsics/time.c' || echo '$(srcdir)/'`intrinsics/time.c
+
transpose_generic.lo: intrinsics/transpose_generic.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o transpose_generic.lo `test -f 'intrinsics/transpose_generic.c' || echo '$(srcdir)/'`intrinsics/transpose_generic.c
diff --git a/libgfortran/aclocal.m4 b/libgfortran/aclocal.m4
index 5d15ebdbc40..81843190595 100644
--- a/libgfortran/aclocal.m4
+++ b/libgfortran/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.9.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
# Free Software Foundation, Inc.
@@ -40,7 +40,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.9.3])])
+ [AM_AUTOMAKE_VERSION([1.9.4])])
# AM_AUX_DIR_EXPAND
diff --git a/libgfortran/config.h.in b/libgfortran/config.h.in
index b858c4ef01b..5c545497ba8 100644
--- a/libgfortran/config.h.in
+++ b/libgfortran/config.h.in
@@ -27,6 +27,9 @@
/* libm includes ceilf */
#undef HAVE_CEILF
+/* Define to 1 if you have the `chdir' function. */
+#undef HAVE_CHDIR
+
/* complex.h exists */
#undef HAVE_COMPLEX_H
@@ -69,6 +72,12 @@
/* libc includes getgid */
#undef HAVE_GETGID
+/* Define to 1 if you have the `gethostname' function. */
+#undef HAVE_GETHOSTNAME
+
+/* Define to 1 if you have the `getlogin' function. */
+#undef HAVE_GETLOGIN
+
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
@@ -111,6 +120,12 @@
/* libm includes jnf */
#undef HAVE_JNF
+/* Define to 1 if you have the `kill' function. */
+#undef HAVE_KILL
+
+/* Define to 1 if you have the `link' function. */
+#undef HAVE_LINK
+
/* libm includes log10f */
#undef HAVE_LOG10F
@@ -135,6 +150,9 @@
/* libm includes nextafterf */
#undef HAVE_NEXTAFTERF
+/* Define to 1 if you have the `perror' function. */
+#undef HAVE_PERROR
+
/* libm includes powf */
#undef HAVE_POWF
@@ -147,12 +165,18 @@
/* libm includes scalbnf */
#undef HAVE_SCALBNF
+/* Define to 1 if you have the <signal.h> header file. */
+#undef HAVE_SIGNAL_H
+
/* libm includes sinf */
#undef HAVE_SINF
/* libm includes sinhf */
#undef HAVE_SINHF
+/* Define to 1 if you have the `sleep' function. */
+#undef HAVE_SLEEP
+
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
@@ -171,6 +195,9 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
@@ -189,6 +216,9 @@
/* Define to 1 if `st_rdev' is member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_RDEV
+/* Define to 1 if you have the `symlink' function. */
+#undef HAVE_SYMLINK
+
/* Define to 1 if you have the <sys/mman.h> header file. */
#undef HAVE_SYS_MMAN_H
@@ -216,6 +246,9 @@
/* libm includes tanhf */
#undef HAVE_TANHF
+/* Define to 1 if you have the `time' function. */
+#undef HAVE_TIME
+
/* Define to 1 if you have the `times' function. */
#undef HAVE_TIMES
diff --git a/libgfortran/configure b/libgfortran/configure
index 0a5c3f1344a..e3b754a647b 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
@@ -308,7 +308,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT multi_basedir gcc_version_trigger gcc_version_full gcc_version toolexecdir toolexeclibdir CC ac_ct_CC EXEEXT OBJEXT CFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB LN_S LIBTOOL enable_shared enable_static FC FCFLAGS LDFLAGS ac_ct_FC CPP CPPFLAGS EGREP MATH_OBJ LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT multi_basedir gcc_version_trigger gcc_version_full gcc_version toolexecdir toolexeclibdir CC ac_ct_CC EXEEXT OBJEXT CFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB LN_S LIBTOOL enable_shared enable_static FC FCFLAGS LDFLAGS ac_ct_FC extra_ldflags_libgfortran CPP CPPFLAGS EGREP MATH_OBJ LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -4612,6 +4612,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
FCFLAGS="$FCFLAGS -Wall -fno-repack-arrays -fno-underscoring"
+# extra LD Flags which are required for targets
+case "${host}" in
+ *-darwin*)
+ # Darwin needs -single_module when linking libgfortran
+ extra_ldflags_libgfortran=-Wl,-single_module
+ ;;
+esac
+
+
# Check whether --enable-largefile or --disable-largefile was given.
if test "${enable_largefile+set}" = set; then
enableval="$enable_largefile"
@@ -6144,7 +6153,8 @@ fi
-for ac_header in stdlib.h stdio.h string.h stddef.h math.h unistd.h
+
+for ac_header in stdlib.h stdio.h string.h stddef.h math.h unistd.h signal.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -7268,6 +7278,228 @@ fi
done
+
+
+
+
+
+
+
+for ac_func in chdir strerror getlogin gethostname kill link symlink perror
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* 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 ();
+/* 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
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+for ac_func in sleep time
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* 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 ();
+/* 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
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
# Check libc for getgid, getpid, getuid
echo "$as_me:$LINENO: checking for getgid in -lc" >&5
echo $ECHO_N "checking for getgid in -lc... $ECHO_C" >&6
@@ -12262,6 +12494,7 @@ s,@FC@,$FC,;t t
s,@FCFLAGS@,$FCFLAGS,;t t
s,@LDFLAGS@,$LDFLAGS,;t t
s,@ac_ct_FC@,$ac_ct_FC,;t t
+s,@extra_ldflags_libgfortran@,$extra_ldflags_libgfortran,;t t
s,@CPP@,$CPP,;t t
s,@CPPFLAGS@,$CPPFLAGS,;t t
s,@EGREP@,$EGREP,;t t
diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
index ab550971988..96547c2e6a4 100644
--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
@@ -140,13 +140,22 @@ FC="$GFORTRAN"
AC_PROG_FC(gfortran)
FCFLAGS="$FCFLAGS -Wall -fno-repack-arrays -fno-underscoring"
+# extra LD Flags which are required for targets
+case "${host}" in
+ *-darwin*)
+ # Darwin needs -single_module when linking libgfortran
+ extra_ldflags_libgfortran=-Wl,-single_module
+ ;;
+esac
+AC_SUBST(extra_ldflags_libgfortran)
+
AC_SYS_LARGEFILE
AC_FUNC_MMAP
AC_TYPE_OFF_T
# check header files
AC_STDC_HEADERS
-AC_HAVE_HEADERS(stdlib.h stdio.h string.h stddef.h math.h unistd.h)
+AC_HAVE_HEADERS(stdlib.h stdio.h string.h stddef.h math.h unistd.h signal.h)
AC_CHECK_HEADERS(time.h sys/params.h sys/time.h sys/times.h sys/resource.h)
AC_CHECK_HEADERS(sys/mman.h sys/types.h sys/stat.h ieeefp.h)
AC_CHECK_HEADER([complex.h],[AC_DEFINE([HAVE_COMPLEX_H], [1], [complex.h exists])])
@@ -160,6 +169,8 @@ AC_CHECK_LIB([m],[csin],[need_math="no"],[need_math="yes"])
# Check for library functions.
AC_CHECK_FUNCS(getrusage times mkstemp strtof snprintf)
+AC_CHECK_FUNCS(chdir strerror getlogin gethostname kill link symlink perror)
+AC_CHECK_FUNCS(sleep time)
# Check libc for getgid, getpid, getuid
AC_CHECK_LIB([c],[getgid],[AC_DEFINE([HAVE_GETGID],[1],[libc includes getgid])])
diff --git a/libgfortran/intrinsics/args.c b/libgfortran/intrinsics/args.c
index e1032d43408..72f1b987c87 100644
--- a/libgfortran/intrinsics/args.c
+++ b/libgfortran/intrinsics/args.c
@@ -1,6 +1,6 @@
/* Implementation of the GETARG and IARGC g77, and
corresponding F2003, intrinsics.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
Contributed by Bud Davis and Janne Blomqvist.
This file is part of the GNU Fortran 95 runtime library (libgfortran).
@@ -78,7 +78,9 @@ getarg_i8 (GFC_INTEGER_8 *pos, char *val, gfc_charlen_type val_len)
}
-/* Return the number of commandline arguments. */
+/* Return the number of commandline arguments. The g77 info page
+ states that iargc does not include the specification of the
+ program name itself. */
extern GFC_INTEGER_4 iargc (void);
export_proto(iargc);
@@ -91,7 +93,7 @@ iargc (void)
get_args (&argc, &argv);
- return argc;
+ return (argc - 1);
}
diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c
index 7dd95918dcd..f7dc9777dd8 100644
--- a/libgfortran/intrinsics/c99_functions.c
+++ b/libgfortran/intrinsics/c99_functions.c
@@ -218,6 +218,8 @@ nextafterf(float x, float y)
return x + y;
if (x == y)
return x;
+ if (!isfinite (x))
+ return x > 0 ? __FLT_MAX__ : - __FLT_MAX__;
/* absx = fabsf (x); */
absx = (x < 0.0) ? -x : x;
diff --git a/libgfortran/intrinsics/chdir.c b/libgfortran/intrinsics/chdir.c
new file mode 100644
index 00000000000..f03a607e867
--- /dev/null
+++ b/libgfortran/intrinsics/chdir.c
@@ -0,0 +1,118 @@
+/* Implementation of the CHDIR intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+/* SUBROUTINE CHDIR(DIR, STATUS)
+ CHARACTER(len=*), INTENT(IN) :: DIR
+ INTEGER, INTENT(OUT), OPTIONAL :: STATUS */
+
+#ifdef HAVE_CHDIR
+extern void chdir_i4_sub (char *, GFC_INTEGER_4 *, gfc_charlen_type);
+iexport_proto(chdir_i4_sub);
+
+void
+chdir_i4_sub (char *dir, GFC_INTEGER_4 *status, gfc_charlen_type dir_len)
+{
+ int val;
+ char *str;
+
+ /* Trim trailing spaces from paths. */
+ while (dir_len > 0 && dir[dir_len - 1] == ' ')
+ dir_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str = gfc_alloca (dir_len + 1);
+ memcpy (str, dir, dir_len);
+ str[dir_len] = '\0';
+
+ val = chdir (str);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(chdir_i4_sub);
+
+extern void chdir_i8_sub (char *, GFC_INTEGER_8 *, gfc_charlen_type);
+iexport_proto(chdir_i8_sub);
+
+void
+chdir_i8_sub (char *dir, GFC_INTEGER_8 *status, gfc_charlen_type dir_len)
+{
+ int val;
+ char *str;
+
+ /* Trim trailing spaces from paths. */
+ while (dir_len > 0 && dir[dir_len - 1] == ' ')
+ dir_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str = gfc_alloca (dir_len + 1);
+ memcpy (str, dir, dir_len);
+ str[dir_len] = '\0';
+
+ val = chdir (str);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(chdir_i8_sub);
+
+extern GFC_INTEGER_4 chdir_i4 (char *, gfc_charlen_type);
+export_proto(chdir_i4);
+
+GFC_INTEGER_4
+chdir_i4 (char *dir, gfc_charlen_type dir_len)
+{
+ GFC_INTEGER_4 val;
+ chdir_i4_sub (dir, &val, dir_len);
+ return val;
+}
+
+extern GFC_INTEGER_8 chdir_i8 (char *, gfc_charlen_type);
+export_proto(chdir_i8);
+
+GFC_INTEGER_8
+chdir_i8 (char *dir, gfc_charlen_type dir_len)
+{
+ GFC_INTEGER_8 val;
+ chdir_i8_sub (dir, &val, dir_len);
+ return val;
+}
+#endif
diff --git a/libgfortran/intrinsics/date_and_time.c b/libgfortran/intrinsics/date_and_time.c
index 5bdb0494d20..2364186a0d7 100644
--- a/libgfortran/intrinsics/date_and_time.c
+++ b/libgfortran/intrinsics/date_and_time.c
@@ -1,5 +1,5 @@
/* Implementation of the DATE_AND_TIME intrinsic.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Steven Bosscher.
This file is part of the GNU Fortran 95 runtime library (libgfortran).
@@ -67,7 +67,7 @@ Boston, MA 02111-1307, USA. */
DATE (optional) shall be scalar and of type default character, and
shall be of length at least 8 in order to contain the complete
- value. It is an INTENT (OUT) argument. Its leftmost 8 characters
+ value. It is an INTENT(OUT) argument. Its leftmost 8 characters
are assigned a value of the form CCYYMMDD, where CC is the century,
YY the year within the century, MM the month within the year, and
DD the day within the month. If there is no date available, they
@@ -75,7 +75,7 @@ Boston, MA 02111-1307, USA. */
TIME (optional) shall be scalar and of type default character, and
shall be of length at least 10 in order to contain the complete
- value. It is an INTENT (OUT) argument. Its leftmost 10 characters
+ value. It is an INTENT(OUT) argument. Its leftmost 10 characters
are assigned a value of the form hhmmss.sss, where hh is the hour
of the day, mm is the minutes of the hour, and ss.sss is the
seconds and milliseconds of the minute. If there is no clock
@@ -83,40 +83,40 @@ Boston, MA 02111-1307, USA. */
ZONE (optional) shall be scalar and of type default character, and
shall be of length at least 5 in order to contain the complete
- value. It is an INTENT (OUT) argument. Its leftmost 5 characters
- are assigned a value of the form ±hhmm, where hh and mm are the
+ value. It is an INTENT(OUT) argument. Its leftmost 5 characters
+ are assigned a value of the form ±hhmm, where hh and mm are the
time difference with respect to Coordinated Universal Time (UTC) in
hours and parts of an hour expressed in minutes, respectively. If
there is no clock available, they are assigned blanks.
VALUES (optional) shall be of type default integer and of rank
- one. It is an INTENT (OUT) argument. Its size shall be at least
+ one. It is an INTENT(OUT) argument. Its size shall be at least
8. The values returned in VALUES are as follows:
- VALUES (1) the year (for example, 2003), or HUGE (0) if there is
+ VALUES(1) the year (for example, 2003), or -HUGE(0) if there is
no date available;
- VALUES (2) the month of the year, or HUGE (0) if there
+ VALUES(2) the month of the year, or -HUGE(0) if there
is no date available;
- VALUES (3) the day of the month, or HUGE (0) if there is no date
+ VALUES(3) the day of the month, or -HUGE(0) if there is no date
available;
- VALUES (4) the time difference with respect to Coordinated
- Universal Time (UTC) in minutes, or HUGE (0) if this information
+ VALUES(4) the time difference with respect to Coordinated
+ Universal Time (UTC) in minutes, or -HUGE(0) if this information
is not available;
- VALUES (5) the hour of the day, in the range of 0 to 23, or HUGE
- (0) if there is no clock;
+ VALUES(5) the hour of the day, in the range of 0 to 23, or
+ -HUGE(0) if there is no clock;
- VALUES (6) the minutes of the hour, in the range 0 to 59, or
- HUGE (0) if there is no clock;
+ VALUES(6) the minutes of the hour, in the range 0 to 59, or
+ -HUGE(0) if there is no clock;
- VALUES (7) the seconds of the minute, in the range 0 to 60, or
- HUGE (0) if there is no clock;
+ VALUES(7) the seconds of the minute, in the range 0 to 60, or
+ -HUGE(0) if there is no clock;
- VALUES (8) the milliseconds of the second, in the range 0 to
- 999, or HUGE (0) if there is no clock.
+ VALUES(8) the milliseconds of the second, in the range 0 to
+ 999, or -HUGE(0) if there is no clock.
NULL pointer represent missing OPTIONAL arguments. All arguments
have INTENT(OUT). Because of the -i8 option, we must implement
@@ -129,125 +129,131 @@ Boston, MA 02111-1307, USA. */
- There is no STDC/POSIX way to get VALUES(8). A GNUish way may
be to use ftime.
*/
+#define DATE_LEN 8
+#define TIME_LEN 10
+#define ZONE_LEN 5
+#define VALUES_SIZE 8
extern void date_and_time (char *, char *, char *, gfc_array_i4 *,
GFC_INTEGER_4, GFC_INTEGER_4, GFC_INTEGER_4);
export_proto(date_and_time);
void
-date_and_time (char *__date,
- char *__time,
- char *__zone,
- gfc_array_i4 *__values,
- GFC_INTEGER_4 __date_len,
- GFC_INTEGER_4 __time_len,
- GFC_INTEGER_4 __zone_len)
+date_and_time (char *__date, char *__time, char *__zone,
+ gfc_array_i4 *__values, GFC_INTEGER_4 __date_len,
+ GFC_INTEGER_4 __time_len, GFC_INTEGER_4 __zone_len)
{
-#define DATE_LEN 8
-#define TIME_LEN 10
-#define ZONE_LEN 5
-#define VALUES_SIZE 8
+ int i;
char date[DATE_LEN + 1];
char timec[TIME_LEN + 1];
char zone[ZONE_LEN + 1];
GFC_INTEGER_4 values[VALUES_SIZE];
#ifndef HAVE_NO_DATE_TIME
- time_t lt = time (NULL);
- struct tm local_time = *localtime (&lt);
- struct tm UTC_time = *gmtime (&lt);
-
- /* All arguments can be derived from VALUES. */
- values[0] = 1900 + local_time.tm_year;
- values[1] = 1 + local_time.tm_mon;
- values[2] = local_time.tm_mday;
- values[3] = (local_time.tm_min - UTC_time.tm_min +
- 60 * (local_time.tm_hour - UTC_time.tm_hour +
+ time_t lt;
+ struct tm local_time;
+ struct tm UTC_time;
+
+ lt = time (NULL);
+
+ if (lt != (time_t) -1)
+ {
+ local_time = *localtime (&lt);
+ UTC_time = *gmtime (&lt);
+
+ /* All arguments can be derived from VALUES. */
+ values[0] = 1900 + local_time.tm_year;
+ values[1] = 1 + local_time.tm_mon;
+ values[2] = local_time.tm_mday;
+ values[3] = (local_time.tm_min - UTC_time.tm_min +
+ 60 * (local_time.tm_hour - UTC_time.tm_hour +
24 * (local_time.tm_yday - UTC_time.tm_yday)));
- values[4] = local_time.tm_hour;
- values[5] = local_time.tm_min;
- values[6] = local_time.tm_sec;
+ values[4] = local_time.tm_hour;
+ values[5] = local_time.tm_min;
+ values[6] = local_time.tm_sec;
+ values[7] = 0;
+
#if HAVE_GETTIMEOFDAY
- {
- struct timeval tp;
+ {
+ struct timeval tp;
# if GETTIMEOFDAY_ONE_ARGUMENT
- if (!gettimeofday (&tp))
+ if (!gettimeofday (&tp))
# else
# if HAVE_STRUCT_TIMEZONE
- struct timezone tzp;
+ struct timezone tzp;
/* Some systems such as HP-UX, do have struct timezone, but
gettimeofday takes void* as the 2nd arg. However, the
effect of passing anything other than a null pointer is
- unspecified on HPUX. Configure checks if gettimeofday
+ unspecified on HP-UX. Configure checks if gettimeofday
actually fails with a non-NULL arg and pretends that
struct timezone is missing if it does fail. */
- if (!gettimeofday (&tp, &tzp))
+ if (!gettimeofday (&tp, &tzp))
# else
- if (!gettimeofday (&tp, (void *) 0))
+ if (!gettimeofday (&tp, (void *) 0))
# endif /* HAVE_STRUCT_TIMEZONE */
# endif /* GETTIMEOFDAY_ONE_ARGUMENT */
values[7] = tp.tv_usec / 1000;
- }
-#else
- values[7] = GFC_INTEGER_4_HUGE;
+ }
#endif /* HAVE_GETTIMEOFDAY */
- if (__date)
- {
#if HAVE_SNPRINTF
- snprintf (date, DATE_LEN + 1, "%04d%02d%02d",
- values[0], values[1], values[2]);
+ if (__date)
+ snprintf (date, DATE_LEN + 1, "%04d%02d%02d",
+ values[0], values[1], values[2]);
+ if (__time)
+ snprintf (timec, TIME_LEN + 1, "%02d%02d%02d.%03d",
+ values[4], values[5], values[6], values[7]);
+
+ if (__zone)
+ snprintf (zone, ZONE_LEN + 1, "%+03d%02d",
+ values[3] / 60, abs (values[3] % 60));
#else
- sprintf (date, "%04d%02d%02d",
- values[0], values[1], values[2]);
-#endif
- }
+ if (__date)
+ sprintf (date, "%04d%02d%02d", values[0], values[1], values[2]);
- if (__time)
- {
-#if HAVE_SNPRINTF
- snprintf (timec, TIME_LEN + 1, "%02d%02d%02d.%03d",
- values[4], values[5], values[6], values[7]);
-#else
- sprintf (timec, "%02d%02d%02d.%03d",
- values[4], values[5], values[6], values[7]);
-#endif
- }
+ if (__time)
+ sprintf (timec, "%02d%02d%02d.%03d",
+ values[4], values[5], values[6], values[7]);
- if (__zone)
- {
-#if HAVE_SNPRINTF
- snprintf (zone, ZONE_LEN + 1, "%+03d%02d",
- values[3] / 60, abs (values[3] % 60));
-#else
- sprintf (zone, "%+03d%02d",
- values[3] / 60, abs (values[3] % 60));
+ if (__zone)
+ sprintf (zone, "%+03d%02d",
+ values[3] / 60, abs (values[3] % 60));
#endif
}
-#else /* if defined HAVE_NO_DATE_TIME */
- /* We really have *nothing* to return, so return blanks and HUGE(0). */
+ else
{
- int i;
-
memset (date, ' ', DATE_LEN);
date[DATE_LEN] = '\0';
memset (timec, ' ', TIME_LEN);
- time[TIME_LEN] = '\0';
+ timec[TIME_LEN] = '\0';
memset (zone, ' ', ZONE_LEN);
zone[ZONE_LEN] = '\0';
for (i = 0; i < VALUES_SIZE; i++)
- values[i] = GFC_INTEGER_4_HUGE;
- }
+ values[i] = - GFC_INTEGER_4_HUGE;
+ }
+#else /* if defined HAVE_NO_DATE_TIME */
+ /* We really have *nothing* to return, so return blanks and HUGE(0). */
+
+ memset (date, ' ', DATE_LEN);
+ date[DATE_LEN] = '\0';
+
+ memset (timec, ' ', TIME_LEN);
+ timec[TIME_LEN] = '\0';
+
+ memset (zone, ' ', ZONE_LEN);
+ zone[ZONE_LEN] = '\0';
+
+ for (i = 0; i < VALUES_SIZE; i++)
+ values[i] = - GFC_INTEGER_4_HUGE;
#endif /* HAVE_NO_DATE_TIME */
/* Copy the values into the arguments. */
if (__values)
{
- int i;
size_t len, delta, elt_size;
elt_size = GFC_DESCRIPTOR_SIZE (__values);
@@ -263,9 +269,7 @@ date_and_time (char *__date,
GFC_INTEGER_4 *vptr4 = __values->data;
for (i = 0; i < VALUES_SIZE; i++, vptr4 += delta)
- {
- *vptr4 = values[i];
- }
+ *vptr4 = values[i];
}
else if (elt_size == 8)
{
@@ -273,8 +277,8 @@ date_and_time (char *__date,
for (i = 0; i < VALUES_SIZE; i++, vptr8 += delta)
{
- if (values[i] == GFC_INTEGER_4_HUGE)
- *vptr8 = GFC_INTEGER_8_HUGE;
+ if (values[i] == - GFC_INTEGER_4_HUGE)
+ *vptr8 = - GFC_INTEGER_8_HUGE;
else
*vptr8 = values[i];
}
@@ -300,8 +304,4 @@ date_and_time (char *__date,
assert (__date_len >= DATE_LEN);
fstrcpy (__date, DATE_LEN, date, DATE_LEN);
}
-#undef DATE_LEN
-#undef TIME_LEN
-#undef ZONE_LEN
-#undef VALUES_SIZE
}
diff --git a/libgfortran/intrinsics/gerror.c b/libgfortran/intrinsics/gerror.c
new file mode 100644
index 00000000000..c106adf22a1
--- /dev/null
+++ b/libgfortran/intrinsics/gerror.c
@@ -0,0 +1,67 @@
+/* Implementation of the GERROR g77 intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+
+/* GERROR (MESSAGE), g77 intrinsic for retrieving the system error
+ message corresponding to the last system error (C errno).
+ CHARACTER(len=*), INTENT(OUT) :: MESSAGE */
+
+#ifdef HAVE_STRERROR
+void PREFIX(gerror) (char *, gfc_charlen_type);
+export_proto_np(PREFIX(gerror));
+
+void
+PREFIX(gerror) (char * msg, gfc_charlen_type msg_len)
+{
+ int p_len;
+ char *p;
+
+ memset (msg, ' ', msg_len); /* Blank the string. */
+
+ p = strerror (errno);
+ if (p == NULL)
+ return;
+
+ p_len = strlen (p);
+ if (msg_len < p_len)
+ memcpy (msg, p, msg_len);
+ else
+ memcpy (msg, p, p_len);
+}
+#endif
diff --git a/libgfortran/intrinsics/getlog.c b/libgfortran/intrinsics/getlog.c
new file mode 100644
index 00000000000..719447561cf
--- /dev/null
+++ b/libgfortran/intrinsics/getlog.c
@@ -0,0 +1,65 @@
+/* Implementation of the GETLOG g77 intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+
+/* GETLOG (LOGIN), g77 intrinsic for retrieving the login name for the
+ process.
+ CHARACTER(len=*), INTENT(OUT) :: LOGIN */
+
+#ifdef HAVE_GETLOGIN
+void PREFIX(getlog) (char *, gfc_charlen_type);
+export_proto_np(PREFIX(getlog));
+
+void
+PREFIX(getlog) (char * login, gfc_charlen_type login_len)
+{
+ int p_len;
+ char *p;
+
+ memset (login, ' ', login_len); /* Blank the string. */
+
+ p = getlogin ();
+ if (p == NULL)
+ return;
+
+ p_len = strlen (p);
+ if (login_len < p_len)
+ memcpy (login, p, login_len);
+ else
+ memcpy (login, p, p_len);
+}
+#endif
diff --git a/libgfortran/intrinsics/hostnm.c b/libgfortran/intrinsics/hostnm.c
new file mode 100644
index 00000000000..856fccf1c8d
--- /dev/null
+++ b/libgfortran/intrinsics/hostnm.c
@@ -0,0 +1,110 @@
+/* Implementation of the HOSTNM intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+#include <string.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include "../io/io.h"
+
+/* SUBROUTINE HOSTNM(NAME, STATUS)
+ CHARACTER(len=*), INTENT(OUT) :: NAME
+ INTEGER, INTENT(OUT), OPTIONAL :: STATUS */
+
+#ifdef HAVE_GETHOSTNAME
+extern void hostnm_i4_sub (char *, GFC_INTEGER_4 *, gfc_charlen_type);
+iexport_proto(hostnm_i4_sub);
+
+void
+hostnm_i4_sub (char *name, GFC_INTEGER_4 *status, gfc_charlen_type name_len)
+{
+ int val, i;
+ char *p;
+
+ memset (name, ' ', name_len);
+ p = gfc_alloca (name_len + 1);
+
+ val = gethostname (p, name_len);
+
+ if (val == 0)
+ {
+ i = -1;
+ while (i < name_len && p[++i] != '\0')
+ name[i] = p[i];
+ }
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(hostnm_i4_sub);
+
+extern void hostnm_i8_sub (char *, GFC_INTEGER_8 *, gfc_charlen_type);
+iexport_proto(hostnm_i8_sub);
+
+void
+hostnm_i8_sub (char *name, GFC_INTEGER_8 *status, gfc_charlen_type name_len)
+{
+ int val, i;
+ char *p;
+
+ memset (name, ' ', name_len);
+ p = gfc_alloca (name_len + 1);
+
+ val = gethostname (p, name_len);
+
+ if (val == 0)
+ {
+ i = -1;
+ while (i < name_len && p[++i] != '\0')
+ name[i] = p[i];
+ }
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(hostnm_i8_sub);
+
+extern GFC_INTEGER_4 hostnm (char *, gfc_charlen_type);
+export_proto(hostnm);
+
+GFC_INTEGER_4
+hostnm (char *name, gfc_charlen_type name_len)
+{
+ GFC_INTEGER_4 val;
+ hostnm_i4_sub (name, &val, name_len);
+ return val;
+}
+#endif
diff --git a/libgfortran/intrinsics/ierrno.c b/libgfortran/intrinsics/ierrno.c
new file mode 100644
index 00000000000..f7cfdffc5ae
--- /dev/null
+++ b/libgfortran/intrinsics/ierrno.c
@@ -0,0 +1,57 @@
+/* Implementation of the IERRNO intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+
+/* INTEGER FUNCTION IERRNO() */
+
+extern GFC_INTEGER_4 ierrno_i4 (void);
+export_proto(ierrno_i4);
+
+GFC_INTEGER_4
+ierrno_i4 (void)
+{
+ return (GFC_INTEGER_4) errno;
+}
+
+extern GFC_INTEGER_8 ierrno_i8 (void);
+export_proto(ierrno_i8);
+
+GFC_INTEGER_8
+ierrno_i8 (void)
+{
+ return (GFC_INTEGER_8) errno;
+}
diff --git a/libgfortran/intrinsics/kill.c b/libgfortran/intrinsics/kill.c
new file mode 100644
index 00000000000..5ffab14a786
--- /dev/null
+++ b/libgfortran/intrinsics/kill.c
@@ -0,0 +1,107 @@
+/* Implementation of the KILL g77 intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
+#endif
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+/* SUBROUTINE KILL(PID, SIGNAL, STATUS)
+ INTEGER, INTENT(IN) :: PID, SIGNAL
+ INTEGER(KIND=1), INTENT(OUT), OPTIONAL :: STATUS
+
+ INTEGER(KIND=1) FUNCTION KILL(PID, SIGNAL)
+ INTEGER, INTENT(IN) :: PID, SIGNAL */
+
+#ifdef HAVE_KILL
+extern void kill_i4_sub (GFC_INTEGER_4 *, GFC_INTEGER_4 *, GFC_INTEGER_4 *);
+iexport_proto(kill_i4_sub);
+
+void
+kill_i4_sub (GFC_INTEGER_4 *pid, GFC_INTEGER_4 *signal,
+ GFC_INTEGER_4 *status)
+{
+ int val;
+
+ val = kill (*pid, *signal);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(kill_i4_sub);
+
+extern void kill_i8_sub (GFC_INTEGER_8 *, GFC_INTEGER_8 *, GFC_INTEGER_8 *);
+iexport_proto(kill_i8_sub);
+
+void
+kill_i8_sub (GFC_INTEGER_8 *pid, GFC_INTEGER_8 *signal,
+ GFC_INTEGER_8 *status)
+{
+ int val;
+
+ val = kill (*pid, *signal);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(kill_i8_sub);
+
+extern GFC_INTEGER_4 kill_i4 (GFC_INTEGER_4 *, GFC_INTEGER_4 *);
+export_proto(kill_i4);
+
+GFC_INTEGER_4
+kill_i4 (GFC_INTEGER_4 *pid, GFC_INTEGER_4 *signal)
+{
+ GFC_INTEGER_4 val;
+ kill_i4_sub (pid, signal, &val);
+ return val;
+}
+
+extern GFC_INTEGER_8 kill_i8 (GFC_INTEGER_8 *, GFC_INTEGER_8 *);
+export_proto(kill_i8);
+
+GFC_INTEGER_8
+kill_i8 (GFC_INTEGER_8 *pid, GFC_INTEGER_8 *signal)
+{
+ GFC_INTEGER_8 val;
+ kill_i8_sub (pid, signal, &val);
+ return val;
+}
+#endif
diff --git a/libgfortran/intrinsics/link.c b/libgfortran/intrinsics/link.c
new file mode 100644
index 00000000000..33cf816b66e
--- /dev/null
+++ b/libgfortran/intrinsics/link.c
@@ -0,0 +1,138 @@
+/* Implementation of the LINK intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+/* SUBROUTINE LINK(PATH1, PATH2, STATUS)
+ CHARACTER(len=*), INTENT(IN) :: PATH1, PATH2
+ INTEGER, INTENT(OUT), OPTIONAL :: STATUS */
+
+#ifdef HAVE_LINK
+extern void link_i4_sub (char *, char *, GFC_INTEGER_4 *, gfc_charlen_type,
+ gfc_charlen_type);
+iexport_proto(link_i4_sub);
+
+void
+link_i4_sub (char *path1, char *path2, GFC_INTEGER_4 *status,
+ gfc_charlen_type path1_len, gfc_charlen_type path2_len)
+{
+ int val;
+ char *str1, *str2;
+
+ /* Trim trailing spaces from paths. */
+ while (path1_len > 0 && path1[path1_len - 1] == ' ')
+ path1_len--;
+ while (path2_len > 0 && path2[path2_len - 1] == ' ')
+ path2_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str1 = gfc_alloca (path1_len + 1);
+ memcpy (str1, path1, path1_len);
+ str1[path1_len] = '\0';
+
+ str2 = gfc_alloca (path2_len + 1);
+ memcpy (str2, path2, path2_len);
+ str2[path2_len] = '\0';
+
+ val = link (str1, str2);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(link_i4_sub);
+
+extern void link_i8_sub (char *, char *, GFC_INTEGER_8 *, gfc_charlen_type,
+ gfc_charlen_type);
+iexport_proto(link_i8_sub);
+
+void
+link_i8_sub (char *path1, char *path2, GFC_INTEGER_8 *status,
+ gfc_charlen_type path1_len, gfc_charlen_type path2_len)
+{
+ int val;
+ char *str1, *str2;
+
+ /* Trim trailing spaces from paths. */
+ while (path1_len > 0 && path1[path1_len - 1] == ' ')
+ path1_len--;
+ while (path2_len > 0 && path2[path2_len - 1] == ' ')
+ path2_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str1 = gfc_alloca (path1_len + 1);
+ memcpy (str1, path1, path1_len);
+ str1[path1_len] = '\0';
+
+ str2 = gfc_alloca (path2_len + 1);
+ memcpy (str2, path2, path2_len);
+ str2[path2_len] = '\0';
+
+ val = link (str1, str2);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(link_i8_sub);
+
+extern GFC_INTEGER_4 link_i4 (char *, char *, gfc_charlen_type,
+ gfc_charlen_type);
+export_proto(link_i4);
+
+GFC_INTEGER_4
+link_i4 (char *path1, char *path2, gfc_charlen_type path1_len,
+ gfc_charlen_type path2_len)
+{
+ GFC_INTEGER_4 val;
+ link_i4_sub (path1, path2, &val, path1_len, path2_len);
+ return val;
+}
+
+extern GFC_INTEGER_8 link_i8 (char *, char *, gfc_charlen_type,
+ gfc_charlen_type);
+export_proto(link_i8);
+
+GFC_INTEGER_8
+link_i8 (char *path1, char *path2, gfc_charlen_type path1_len,
+ gfc_charlen_type path2_len)
+{
+ GFC_INTEGER_8 val;
+ link_i8_sub (path1, path2, &val, path1_len, path2_len);
+ return val;
+}
+#endif
diff --git a/libgfortran/intrinsics/perror.c b/libgfortran/intrinsics/perror.c
new file mode 100644
index 00000000000..c6c08a6279a
--- /dev/null
+++ b/libgfortran/intrinsics/perror.c
@@ -0,0 +1,64 @@
+/* Implementation of the PERROR intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <stdio.h>
+#include <errno.h>
+
+#include "../io/io.h"
+
+
+/* SUBROUTINE PERROR(STRING)
+ CHARACTER(len=*), INTENT(IN) :: STRING */
+
+#ifdef HAVE_PERROR
+extern void perror_sub (char *, gfc_charlen_type);
+iexport_proto(perror_sub);
+
+void
+perror_sub (char *string, gfc_charlen_type string_len)
+{
+ char * str;
+
+ /* Trim trailing spaces from paths. */
+ while (string_len > 0 && string[string_len - 1] == ' ')
+ string_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str = gfc_alloca (string_len + 1);
+ memcpy (str, string, string_len);
+ str[string_len] = '\0';
+
+ perror (str);
+}
+iexport(perror_sub);
+#endif
diff --git a/libgfortran/intrinsics/rename.c b/libgfortran/intrinsics/rename.c
new file mode 100644
index 00000000000..bc54c9bf922
--- /dev/null
+++ b/libgfortran/intrinsics/rename.c
@@ -0,0 +1,132 @@
+/* Implementation of the RENAME intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+/* SUBROUTINE RENAME(PATH1, PATH2, STATUS)
+ CHARACTER(len=*), INTENT(IN) :: PATH1, PATH2
+ INTEGER, INTENT(OUT), OPTIONAL :: STATUS */
+
+extern void rename_i4_sub (char *, char *, GFC_INTEGER_4 *, gfc_charlen_type,
+ gfc_charlen_type);
+iexport_proto(rename_i4_sub);
+
+void
+rename_i4_sub (char *path1, char *path2, GFC_INTEGER_4 *status,
+ gfc_charlen_type path1_len, gfc_charlen_type path2_len)
+{
+ int val;
+ char *str1, *str2;
+
+ /* Trim trailing spaces from paths. */
+ while (path1_len > 0 && path1[path1_len - 1] == ' ')
+ path1_len--;
+ while (path2_len > 0 && path2[path2_len - 1] == ' ')
+ path2_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str1 = gfc_alloca (path1_len + 1);
+ memcpy (str1, path1, path1_len);
+ str1[path1_len] = '\0';
+
+ str2 = gfc_alloca (path2_len + 1);
+ memcpy (str2, path2, path2_len);
+ str2[path2_len] = '\0';
+
+ val = rename (str1, str2);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(rename_i4_sub);
+
+extern void rename_i8_sub (char *, char *, GFC_INTEGER_8 *, gfc_charlen_type,
+ gfc_charlen_type);
+iexport_proto(rename_i8_sub);
+
+void
+rename_i8_sub (char *path1, char *path2, GFC_INTEGER_8 *status,
+ gfc_charlen_type path1_len, gfc_charlen_type path2_len)
+{
+ int val;
+ char *str1, *str2;
+
+ /* Trim trailing spaces from paths. */
+ while (path1_len > 0 && path1[path1_len - 1] == ' ')
+ path1_len--;
+ while (path2_len > 0 && path2[path2_len - 1] == ' ')
+ path2_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str1 = gfc_alloca (path1_len + 1);
+ memcpy (str1, path1, path1_len);
+ str1[path1_len] = '\0';
+
+ str2 = gfc_alloca (path2_len + 1);
+ memcpy (str2, path2, path2_len);
+ str2[path2_len] = '\0';
+
+ val = rename (str1, str2);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(rename_i8_sub);
+
+extern GFC_INTEGER_4 rename_i4 (char *, char *, gfc_charlen_type,
+ gfc_charlen_type);
+export_proto(rename_i4);
+
+GFC_INTEGER_4
+rename_i4 (char *path1, char *path2, gfc_charlen_type path1_len,
+ gfc_charlen_type path2_len)
+{
+ GFC_INTEGER_4 val;
+ rename_i4_sub (path1, path2, &val, path1_len, path2_len);
+ return val;
+}
+
+extern GFC_INTEGER_8 rename_i8 (char *, char *, gfc_charlen_type,
+ gfc_charlen_type);
+export_proto(rename_i8);
+
+GFC_INTEGER_8
+rename_i8 (char *path1, char *path2, gfc_charlen_type path1_len,
+ gfc_charlen_type path2_len)
+{
+ GFC_INTEGER_8 val;
+ rename_i8_sub (path1, path2, &val, path1_len, path2_len);
+ return val;
+}
diff --git a/libgfortran/intrinsics/sleep.c b/libgfortran/intrinsics/sleep.c
new file mode 100644
index 00000000000..d79d8ba7b07
--- /dev/null
+++ b/libgfortran/intrinsics/sleep.c
@@ -0,0 +1,68 @@
+/* Implementation of the SLEEP intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+/* SUBROUTINE SLEEP(SECONDS)
+ INTEGER, INTENT(IN) :: SECONDS
+
+ A choice had to be made if SECONDS is negative. For g77, this is
+ equivalent to SLEEP(0). */
+
+#ifdef HAVE_SLEEP
+extern void sleep_i4_sub (GFC_INTEGER_4 *);
+iexport_proto(sleep_i4_sub);
+
+void
+sleep_i4_sub (GFC_INTEGER_4 *seconds)
+{
+ sleep (*seconds < 0 ? 0 : (unsigned int) *seconds);
+}
+iexport(sleep_i4_sub);
+
+extern void sleep_i8_sub (GFC_INTEGER_8 *);
+iexport_proto(sleep_i8_sub);
+
+void
+sleep_i8_sub (GFC_INTEGER_8 *seconds)
+{
+ sleep (*seconds < 0 ? 0 : (unsigned int) *seconds);
+}
+iexport(sleep_i8_sub);
+#endif
diff --git a/libgfortran/intrinsics/symlnk.c b/libgfortran/intrinsics/symlnk.c
new file mode 100644
index 00000000000..d18fe2f6929
--- /dev/null
+++ b/libgfortran/intrinsics/symlnk.c
@@ -0,0 +1,138 @@
+/* Implementation of the SYMLNK intrinsic.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#include <errno.h>
+
+#include "../io/io.h"
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+/* SUBROUTINE SYMLNK(PATH1, PATH2, STATUS)
+ CHARACTER(len=*), INTENT(IN) :: PATH1, PATH2
+ INTEGER, INTENT(OUT), OPTIONAL :: STATUS */
+
+#ifdef HAVE_SYMLINK
+extern void symlnk_i4_sub (char *, char *, GFC_INTEGER_4 *, gfc_charlen_type,
+ gfc_charlen_type);
+iexport_proto(symlnk_i4_sub);
+
+void
+symlnk_i4_sub (char *path1, char *path2, GFC_INTEGER_4 *status,
+ gfc_charlen_type path1_len, gfc_charlen_type path2_len)
+{
+ int val;
+ char *str1, *str2;
+
+ /* Trim trailing spaces from paths. */
+ while (path1_len > 0 && path1[path1_len - 1] == ' ')
+ path1_len--;
+ while (path2_len > 0 && path2[path2_len - 1] == ' ')
+ path2_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str1 = gfc_alloca (path1_len + 1);
+ memcpy (str1, path1, path1_len);
+ str1[path1_len] = '\0';
+
+ str2 = gfc_alloca (path2_len + 1);
+ memcpy (str2, path2, path2_len);
+ str2[path2_len] = '\0';
+
+ val = symlink (str1, str2);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(symlnk_i4_sub);
+
+extern void symlnk_i8_sub (char *, char *, GFC_INTEGER_8 *, gfc_charlen_type,
+ gfc_charlen_type);
+iexport_proto(symlnk_i8_sub);
+
+void
+symlnk_i8_sub (char *path1, char *path2, GFC_INTEGER_8 *status,
+ gfc_charlen_type path1_len, gfc_charlen_type path2_len)
+{
+ int val;
+ char *str1, *str2;
+
+ /* Trim trailing spaces from paths. */
+ while (path1_len > 0 && path1[path1_len - 1] == ' ')
+ path1_len--;
+ while (path2_len > 0 && path2[path2_len - 1] == ' ')
+ path2_len--;
+
+ /* Make a null terminated copy of the strings. */
+ str1 = gfc_alloca (path1_len + 1);
+ memcpy (str1, path1, path1_len);
+ str1[path1_len] = '\0';
+
+ str2 = gfc_alloca (path2_len + 1);
+ memcpy (str2, path2, path2_len);
+ str2[path2_len] = '\0';
+
+ val = symlink (str1, str2);
+
+ if (status != NULL)
+ *status = (val == 0) ? 0 : errno;
+}
+iexport(symlnk_i8_sub);
+
+extern GFC_INTEGER_4 symlnk_i4 (char *, char *, gfc_charlen_type,
+ gfc_charlen_type);
+export_proto(symlnk_i4);
+
+GFC_INTEGER_4
+symlnk_i4 (char *path1, char *path2, gfc_charlen_type path1_len,
+ gfc_charlen_type path2_len)
+{
+ GFC_INTEGER_4 val;
+ symlnk_i4_sub (path1, path2, &val, path1_len, path2_len);
+ return val;
+}
+
+extern GFC_INTEGER_8 symlnk_i8 (char *, char *, gfc_charlen_type,
+ gfc_charlen_type);
+export_proto(symlnk_i8);
+
+GFC_INTEGER_8
+symlnk_i8 (char *path1, char *path2, gfc_charlen_type path1_len,
+ gfc_charlen_type path2_len)
+{
+ GFC_INTEGER_8 val;
+ symlnk_i8_sub (path1, path2, &val, path1_len, path2_len);
+ return val;
+}
+#endif
diff --git a/libgfortran/intrinsics/time.c b/libgfortran/intrinsics/time.c
new file mode 100644
index 00000000000..e5dd6ffa17a
--- /dev/null
+++ b/libgfortran/intrinsics/time.c
@@ -0,0 +1,72 @@
+/* Implementation of the TIME and TIME8 g77 intrinsics.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Contributed by François-Xavier Coudert <coudert@clipper.ens.fr>
+
+This file is part of the GNU Fortran 95 runtime library (libgfortran).
+
+Libgfortran 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.
+
+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.)
+
+Libgfortran 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 libgfortran; see the file COPYING. If not,
+write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+#include "libgfortran.h"
+
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# ifdef HAVE_TIME_H
+# include <time.h>
+# endif
+# endif
+#endif
+
+#include "../io/io.h"
+
+
+/* INTEGER(KIND=4) FUNCTION TIME() */
+
+#ifdef HAVE_TIME
+extern GFC_INTEGER_4 time_func (void);
+export_proto(time_func);
+
+GFC_INTEGER_4
+time_func (void)
+{
+ return (GFC_INTEGER_4) time (NULL);
+}
+
+/* INTEGER(KIND=8) FUNCTION TIME8() */
+
+extern GFC_INTEGER_8 time8_func (void);
+export_proto(time8_func);
+
+GFC_INTEGER_8
+time8_func (void)
+{
+ return (GFC_INTEGER_8) time (NULL);
+}
+#endif
diff --git a/libgfortran/io/backspace.c b/libgfortran/io/backspace.c
index f8ab01c3488..d4ba3a9baaa 100644
--- a/libgfortran/io/backspace.c
+++ b/libgfortran/io/backspace.c
@@ -28,6 +28,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include "config.h"
+#include <string.h>
#include "libgfortran.h"
#include "io.h"
@@ -101,17 +102,19 @@ formatted_backspace (void)
static void
unformatted_backspace (void)
{
- gfc_offset *p, new;
+ gfc_offset m, new;
int length;
+ char *p;
length = sizeof (gfc_offset);
- p = (gfc_offset *) salloc_r_at (current_unit->s, &length,
- file_position (current_unit->s) - length);
+ p = salloc_r_at (current_unit->s, &length,
+ file_position (current_unit->s) - length);
if (p == NULL)
goto io_error;
- new = file_position (current_unit->s) - *p - length;
+ memcpy (&m, p, sizeof (gfc_offset));
+ new = file_position (current_unit->s) - m - 2*length;
if (sseek (current_unit->s, new) == FAILURE)
goto io_error;
@@ -155,16 +158,23 @@ st_backspace (void)
u->endfile = AT_ENDFILE;
else
{
- if (u->current_record)
- next_record (1);
-
if (file_position (u->s) == 0)
goto done; /* Common special case */
+ if (u->mode == WRITING)
+ {
+ flush (u->s);
+ struncate (u->s);
+ u->mode = READING;
+ }
+
if (u->flags.form == FORM_FORMATTED)
formatted_backspace ();
else
unformatted_backspace ();
+
+ u->endfile = NO_ENDFILE;
+ u->current_record = 0;
}
done:
diff --git a/libgfortran/io/format.c b/libgfortran/io/format.c
index db5e0fe7372..f8d858af7a7 100644
--- a/libgfortran/io/format.c
+++ b/libgfortran/io/format.c
@@ -564,6 +564,7 @@ parse_format_list (void)
case FMT_COLON:
get_fnode (&head, &tail, FMT_COLON);
+ tail->repeat = 1;
goto optional_comma;
case FMT_SLASH:
diff --git a/libgfortran/io/inquire.c b/libgfortran/io/inquire.c
index 28c2f6afbc5..1f0fcac6530 100644
--- a/libgfortran/io/inquire.c
+++ b/libgfortran/io/inquire.c
@@ -46,7 +46,12 @@ inquire_via_unit (gfc_unit * u)
const char *p;
if (ioparm.exist != NULL)
- *ioparm.exist = (u != NULL);
+ {
+ if (ioparm.unit >= 0)
+ *ioparm.exist = 1;
+ else
+ *ioparm.exist = 0;
+ }
if (ioparm.opened != NULL)
*ioparm.opened = (u != NULL);
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h
index 694ca1d7ac5..05c4355ad00 100644
--- a/libgfortran/io/io.h
+++ b/libgfortran/io/io.h
@@ -245,10 +245,11 @@ typedef struct
unit_flags;
-/* The default value of record length is defined here. This value can
- be overriden by the OPEN statement or by an environment variable. */
+/* The default value of record length for preconnected units is defined
+ here. This value can be overriden by an environment variable.
+ Default value is 1 Gb. */
-#define DEFAULT_RECL 10000
+#define DEFAULT_RECL 1073741824
typedef struct gfc_unit
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index eecc11491e3..0a869b9a16e 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -66,12 +66,13 @@ static char value[20];
#define CASE_DIGITS case '0': case '1': case '2': case '3': case '4': \
case '5': case '6': case '7': case '8': case '9'
-#define CASE_SEPARATORS case ' ': case ',': case '/': case '\n': case '\t'
+#define CASE_SEPARATORS case ' ': case ',': case '/': case '\n': case '\t': \
+ case '\r'
/* This macro assumes that we're operating on a variable. */
#define is_separator(c) (c == '/' || c == ',' || c == '\n' || c == ' ' \
- || c == '\t')
+ || c == '\t' || c == '\r')
/* Maximum repeat count. Less than ten times the maximum signed int32. */
@@ -163,7 +164,7 @@ next_char (void)
c = *p;
done:
- at_eol = (c == '\n');
+ at_eol = (c == '\n' || c == '\r');
return c;
}
@@ -230,6 +231,7 @@ eat_separator (void)
break;
case '\n':
+ case '\r':
break;
case '!':
@@ -284,6 +286,7 @@ finish_separator (void)
break;
case '\n':
+ case '\r':
goto restart;
case '!':
@@ -1052,8 +1055,9 @@ read_real (int length)
goto got_repeat;
CASE_SEPARATORS:
- if (c != '\n' && c != ',')
- unget_char (c); /* Real number that is just a digit-string. */
+ if (c != '\n' && c != ',' && c != '\r')
+ unget_char (c);
+
goto done;
default:
@@ -1164,8 +1168,6 @@ read_real (int length)
break;
CASE_SEPARATORS:
- unget_char (c);
- eat_separator ();
goto done;
default:
@@ -1174,6 +1176,8 @@ read_real (int length)
}
done:
+ unget_char (c);
+ eat_separator ();
push_char ('\0');
if (convert_real (value, saved_string, length))
return;
@@ -1485,6 +1489,7 @@ namelist_read (void)
return;
case ' ':
case '\n':
+ case '\r':
case '\t':
break;
case ',':
diff --git a/libgfortran/io/open.c b/libgfortran/io/open.c
index eaeb5a298c0..82a862b7c47 100644
--- a/libgfortran/io/open.c
+++ b/libgfortran/io/open.c
@@ -358,7 +358,7 @@ new_unit (unit_flags * flags)
/* Unspecified recl ends up with a processor dependent value. */
- u->recl = (ioparm.recl_in != 0) ? ioparm.recl_in : DEFAULT_RECL;
+ u->recl = (ioparm.recl_in != 0) ? ioparm.recl_in : g.max_offset;
u->last_record = 0;
u->current_record = 0;
@@ -481,7 +481,10 @@ st_open (void)
flags.position = POSITION_ASIS;
if (ioparm.library_return != LIBRARY_OK)
+ {
+ library_end ();
return;
+ }
u = find_unit (ioparm.unit);
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index a55936f9e6c..4d4832395d9 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -177,7 +177,7 @@ read_sf (int *length)
return NULL;
}
- if (readlen < 1 || *q == '\n')
+ if (readlen < 1 || *q == '\n' || *q == '\r')
{
/* ??? What is this for? */
if (current_unit->unit_number == options.stdin_unit)
@@ -386,7 +386,7 @@ write_constant_string (fnode * f)
for (; length > 0; length--)
{
c = *p++ = *q++;
- if (c == delimiter && c != 'H')
+ if (c == delimiter && c != 'H' && c != 'h')
q++; /* Skip the doubled delimiter. */
}
}
@@ -935,6 +935,12 @@ data_transfer_init (int read_flag)
current_unit = get_unit (read_flag);
if (current_unit == NULL)
{ /* Open the unit with some default flags. */
+ if (ioparm.unit < 0)
+ {
+ generate_error (ERROR_BAD_OPTION, "Bad unit number in OPEN statement");
+ library_end ();
+ return;
+ }
memset (&u_flags, '\0', sizeof (u_flags));
u_flags.access = ACCESS_SEQUENTIAL;
u_flags.action = ACTION_READWRITE;
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index 403b9afe322..d97caec8bc7 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Andy Vaught
This file is part of the GNU Fortran 95 runtime library (libgfortran).
@@ -286,6 +286,8 @@ output_float (fnode *f, double value, int len)
int nzero;
/* Number of digits after the decimal point. */
int nafter;
+ /* Number of zeros after the decimal point, whatever the precision. */
+ int nzero_real;
int leadzero;
int nblanks;
int i;
@@ -295,9 +297,12 @@ output_float (fnode *f, double value, int len)
w = f->u.real.w;
d = f->u.real.d;
+ nzero_real = -1;
+
+
/* We should always know the field width and precision. */
if (d < 0)
- internal_error ("Uspecified precision");
+ internal_error ("Unspecified precision");
/* Use sprintf to print the number in the format +D.DDDDe+ddd
For an N digit exponent, this gives us (32-6)-N digits after the
@@ -359,6 +364,7 @@ output_float (fnode *f, double value, int len)
if (nbefore < 0)
{
nzero = -nbefore;
+ nzero_real = nzero;
if (nzero > d)
nzero = d;
nafter = d - nzero;
@@ -375,7 +381,8 @@ output_float (fnode *f, double value, int len)
case FMT_E:
case FMT_D:
i = g.scale_factor;
- e -= i;
+ if (value != 0.0)
+ e -= i;
if (i < 0)
{
nbefore = 0;
@@ -395,7 +402,7 @@ output_float (fnode *f, double value, int len)
nafter = d;
}
- if (ft = FMT_E)
+ if (ft == FMT_E)
expchar = 'E';
else
expchar = 'D';
@@ -404,7 +411,8 @@ output_float (fnode *f, double value, int len)
case FMT_EN:
/* The exponent must be a multiple of three, with 1-3 digits before
the decimal point. */
- e--;
+ if (value != 0.0)
+ e--;
if (e >= 0)
nbefore = e % 3;
else
@@ -421,7 +429,8 @@ output_float (fnode *f, double value, int len)
break;
case FMT_ES:
- e--;
+ if (value != 0.0)
+ e--;
nbefore = 1;
nzero = 0;
nafter = d;
@@ -435,7 +444,17 @@ output_float (fnode *f, double value, int len)
/* Round the value. */
if (nbefore + nafter == 0)
- ndigits = 0;
+ {
+ ndigits = 0;
+ if (nzero_real == d && digits[0] >= '5')
+ {
+ /* We rounded to zero but shouldn't have */
+ nzero--;
+ nafter = 1;
+ digits[0] = '1';
+ ndigits = 1;
+ }
+ }
else if (nbefore + nafter < ndigits)
{
ndigits = nbefore + nafter;
@@ -518,7 +537,7 @@ output_float (fnode *f, double value, int len)
/* Pick a field size if none was specified. */
if (w <= 0)
- w = nbefore + nzero + nafter + 2;
+ w = nbefore + nzero + nafter + (sign != SIGN_NONE ? 2 : 1);
/* Create the ouput buffer. */
out = write_block (w);
@@ -655,7 +674,7 @@ static void
write_float (fnode *f, const char *source, int len)
{
double n;
- int nb =0, res;
+ int nb =0, res, save_scale_factor;
char * p, fin;
fnode *f2 = NULL;
@@ -704,8 +723,10 @@ write_float (fnode *f, const char *source, int len)
}
else
{
+ save_scale_factor = g.scale_factor;
f2 = calculate_G_format(f, n, len, &nb);
output_float (f2, n, len);
+ g.scale_factor = save_scale_factor;
if (f2 != NULL)
free_mem(f2);
diff --git a/libgfortran/runtime/environ.c b/libgfortran/runtime/environ.c
index ae82f562b75..8d608aefaf5 100644
--- a/libgfortran/runtime/environ.c
+++ b/libgfortran/runtime/environ.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002,2003,2005 Free Software Foundation, Inc.
Contributed by Andy Vaught
This file is part of the GNU Fortran 95 runtime library (libgfortran).
@@ -48,7 +48,6 @@ Boston, MA 02111-1307, USA. */
options_t options = { };
-extern char **environ;
typedef struct variable
{
@@ -464,12 +463,6 @@ static variable variable_table[] = {
{"GFORTRAN_SHOW_LOCUS", 1, &options.locus, init_boolean, show_boolean,
"If TRUE, print filename and line number where runtime errors happen."},
-/* GFORTRAN_NAME_xx (where xx is a unit number) gives the names of files
- * preconnected to those units. */
-
-/* GFORTRAN_UNBUFFERED_xx (where xx is a unit number) gives a boolean that is used
- * to turn off buffering for that unit. */
-
{"GFORTRAN_OPTIONAL_PLUS", 0, &options.optional_plus, init_boolean, show_boolean,
"Print optional plus signs in numbers where permitted. Default FALSE."},
@@ -577,43 +570,9 @@ check_buffered (int n)
}
-/* pattern_scan()-- Given an environment string, check that the name
- * has the same name as the pattern followed by an integer. On a
- * match, a pointer to the value is returned and the integer pointed
- * to by n is updated. Returns NULL on no match. */
-
-static char *
-pattern_scan (char *env, const char *pattern, int *n)
-{
- char *p;
- size_t len;
-
- len = strlen (pattern);
- if (strncasecmp (env, pattern, len) != 0)
- return NULL;
- p = env + len;
-
- if (!isdigit (*p))
- return NULL;
-
- while (isdigit (*p))
- p++;
-
- if (*p != '=')
- return NULL;
-
- *p = '\0';
- *n = atoi (env + len);
- *p++ = '=';
-
- return p;
-}
-
-
void
show_variables (void)
{
- char *p, **e;
variable *v;
int n;
@@ -640,26 +599,6 @@ show_variables (void)
st_printf ("%s\n\n", v->desc);
}
- st_printf ("\nDefault unit names (GFORTRAN_NAME_x):\n");
-
- for (e = environ; *e; e++)
- {
- p = pattern_scan (*e, "GFORTRAN_NAME_", &n);
- if (p == NULL)
- continue;
- st_printf ("GFORTRAN_NAME_%d %s\n", n, p);
- }
-
- st_printf ("\nUnit buffering overrides (GFORTRAN_UNBUFFERED_x):\n");
- for (e = environ; *e; e++)
- {
- p = pattern_scan (*e, "GFORTRAN_UNBUFFERED_", &n);
- if (p == NULL)
- continue;
-
- st_printf ("GFORTRAN_UNBUFFERED_%d = %s\n", n, p);
- }
-
/* System error codes */
st_printf ("\nRuntime error codes:");
diff --git a/libgfortran/runtime/string.c b/libgfortran/runtime/string.c
index 07ed99bab36..07f374eea04 100644
--- a/libgfortran/runtime/string.c
+++ b/libgfortran/runtime/string.c
@@ -41,17 +41,11 @@ static int
compare0 (const char *s1, int s1_len, const char *s2)
{
int i;
+ int len;
- if (strncasecmp (s1, s2, s1_len) != 0)
- return 0;
-
- /* The rest of s1 needs to be blanks for equality. */
-
- for (i = strlen (s2); i < s1_len; i++)
- if (s1[i] != ' ')
- return 0;
-
- return 1;
+ /* Strip trailing blanks from the Fortran string. */
+ len = fstrlen(s1, s1_len);
+ return strncasecmp(s1,s2,len) == 0;
}
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 1d801adf38f..b0da680f27f 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2005-02-13 Jason Merrill <jason@redhat.com>
* cp-demangle.c (__cxa_demangle): Change resolution of ambiguous
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 249641f64b5..4f56a005c0d 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,4297 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-17 Mark Wielaard <mark@klomp.org>
+
+ * java/lang/natRuntime.cc (insertSystemProperties): Set
+ java.class.path to CLASSPATH only when not empty. Fall back to
+ default path "." when java.class.path is empty.
+
+2005-04-16 Anthony Green <green@redhat.com>
+
+ * Makefile.am (gnu-xml.lo, javax-imageio.lo, javax-xml.lo,
+ gnu-java-beans.lo, gtk-awt-peer.lo) : Sort the output of all
+ "find" output in order to work around the libtool bug described in
+ PR libgcj/20693.
+ * Makefile.in: Rebuilt.
+
+2005-04-16 Tom Tromey <tromey@redhat.com>
+
+ * gnu/xml/pipeline/ValidationConsumer.java (Recognizer): Make
+ 'ANY' package-private.
+
+2005-04-15 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (libgij_la_LIBADD): Moved SAX and DOM...
+ (libgcj0_convenience_la_LIBADD): ... here.
+
+2005-04-14 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/natClassLoader.cc (_Jv_FindClass): Use system loader,
+ not boot loader.
+ (_Jv_RegisterInitiatingLoader): Likewise.
+ (_Jv_UnregisterInitiatingLoader): Likewise.
+
+2005-04-13 Mark Wielaard <mark@klomp.org>
+
+ * java/lang/natRuntime.cc (insertSystemProperties): Set
+ java.class.path to CLASSPATH if not already set.
+
+2005-04-13 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * prims.cc (parse_verbose_args): Fix verbose argument parsing.
+
+2005-04-11 Michael Koch <konqueror@gmx.de>
+
+ * javax/imageio/ImageIO.java (ReaderFormatFilter.filter):
+ Fixed wrong casting.
+
+2005-04-06 Andrew Haley <aph@redhat.com>
+
+ * testsuite/libjava.lang/bytearray.java: New file.
+ * testsuite/libjava.lang/bytearray.out: New file.
+ * java/lang/ClassLoader.java (loadClassFromSig): Declare
+ (loadClass): Use it.
+ * java/lang/natClassLoader.cc (loadClassFromSig): New method.
+
+2005-04-06 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (lib_gnu_java_awt_peer_gtk_la_SOURCES): Removed
+ gtk_awt_peer_sources.
+ (lib_gnu_java_awt_peer_gtk_la_LIBADD): Added gtk-awt-peer.lo.
+ (lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES): Likewise.
+ ($(gtk_awt_peer_sources:.java=.lo)): Removed.
+ (gtk-awt-peer.lo): New target.
+
+ * java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal):
+ Updated for name change.
+ (nativeFindClass): New method.
+ (loadClass): Use nativeFindClass.
+ * java/lang/natClassLoader.cc (_Jv_FindClass): Use single-argument
+ form of loadClass.
+ * java/lang/VMClassLoader.java (tried_libraries, lib_control,
+ LIB_FULL, LIB_CACHE, LIB_NEVER): New fields from old
+ VMClassLoader.
+ (initialize): New method.
+ (nativeFindClass): Declare.
+ * gnu/gcj/runtime/natVMClassLoader.cc: Removed.
+ * gnu/gcj/runtime/VMClassLoader.java: Removed.
+ * gnu/gcj/runtime/ExtensionClassLoader.java: Renamed from
+ VMClassLoader.java.
+ (definePackageForNative): Removed.
+ (tried_libraries, LIB_CACHE, LIB_FULL, LIB_NEVER, lib_control):
+ Moved to VMClassLoader.java.
+ * prims.cc (_Jv_CreateJavaVM): Updated for renaming.
+ * Makefile.am (gnu/gcj/runtime/ExtensionClassLoader.h): Renamed.
+ (ordinary_java_source_files): Added ExtensionClassLoader.java,
+ removed VMClassLoader.java.
+ (nat_source_files): Removed natVMClassLoader.cc.
+
+ * java/lang/natRuntime.cc (insertSystemProperties): Set
+ gnu.gcj.runtime.endorsed.dirs.
+ * Makefile.in: Rebuilt.
+ * Makefile.am (ordinary_java_source_files): Added
+ HelperClassLoader.java.
+ (AM_CXXFLAGS): Define GCJ_ENDORSED_DIRS.
+ * gnu/gcj/runtime/VMClassLoader.java (VMClassLoader): Extends
+ HelperClassLoader.
+ (init): Use addDirectoriesFromProperty.
+ * gnu/gcj/runtime/BootClassLoader.java (BootClassLoader): Extends
+ HelperClassLoader. Use addDirectoriesFromProperty. Handle
+ gnu.gcj.runtime.endorsed.dirs.
+ * gnu/gcj/runtime/HelperClassLoader.java: New file.
+
+ * gnu/gcj/runtime/BootClassLoader.java (BootClassLoader): Don't
+ add sax and w3c libraries.
+ * Makefile.am (libgij_la_LIBADD): Added libsax-gcj.la and
+ libw3c-gcj.la.
+ * external/w3c_dom/Makefile.in: Rebuilt.
+ * external/w3c_dom/Makefile.am (libw3c_gcj_la_GCJFLAGS): Include
+ AM_GCJFLAGS.
+ (libw3c_gcj_la_LDFLAGS): New variable.
+ (noinst_LTLIBRARIES): Renamed.
+ * external/sax/Makefile.in: Rebuilt.
+ * external/sax/Makefile.am (libsax_gcj_la_GCJFLAGS): Include
+ AM_GCJFLAGS.
+ (libsax_gcj_la_LDFLAGS): New variable.
+ (noinst_LTLIBRARIES): Renamed.
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (AM_CXXFLAGS): Define TOOLEXECLIBDIR.
+ (libgcj0_convenience_la_SOURCES): Don't include
+ gnu_xml_source_files.
+ (libgcj0_convenience_la_LIBADD): New variable.
+ (libgcj_la_LIBADD): Don't include sax or w3c_dom.
+ (all_java_source_files): javax_imageio_source_files,
+ javax_xml_source_files, and gnu_java_beans_source_files.
+ ($(gnu_xml_source_files:.java=.lo)): Removed target.
+ (gnu-xml.lo): New target.
+ (javax-imageio.lo): Likewise.
+ (javax-xml.lo): Likewise.
+ (gnu-java-beans.lo): Likewise.
+ (gnu_java_beans_source_files): New variable.
+ (javax_imageio_source_files): Likewise.
+ (javax_xml_source_files): Likewise.
+ (javax_source_files): Moved files to other variable.
+ (awt_java_source_files): Likewise.
+ (ordinary_java_source_files): Added BootClassLoader.java.
+ * java/lang/natVMClassLoader.cc (defineClass): Use boot loader,
+ not system class loader.
+ (initBootLoader): New method.
+ (loadClass): Search bootLoader.
+ * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader): Use
+ boot loader, not system class loader.
+ (_Jv_UnregisterInitiatingLoader): Likewise.
+ (_Jv_FindClass): Likewise. Ensure entries in
+ bootstrap_class_list are unique.
+ * java/lang/natClass.cc (getClassLoader): Don't special case
+ system class loader.
+ * java/lang/VMClassLoader.java (bootLoader): New field.
+ (getResource): Use bootLoader.
+ (getResources): Likewise.
+ (initBootLoader): Declare.
+ * gnu/gcj/runtime/BootClassLoader.java: New file.
+ * external/sax/org/xml/sax/helpers/NamespaceSupport.java
+ (EMPTY_ENUMERATION): Now package-private.
+ * external/w3c_com/Makefile.in: Rebuilt.
+ * external/w3c_com/Makefile.am (MULTIBUILDTOP): New variable.
+ (w3c.jar): New target.
+ (classes.stamp): Updated.
+ (toolexeclib_LTLIBRARIES): Renamed from noinst_LTLIBRARIES.
+ Changed name of library.
+ (libw3c_gcj_la_SOURCES): New variable.
+ (libw3c_gcj_la_GCJFLAGS): Likewise.
+ (source_files): Renamed from lib3c_convenience_la_SOURCES.
+ * external/sax/Makefile.in: Rebuilt.
+ * external/sax/Makefile.am (MULTIBUILDTOP): New variable.
+ (sax.jar): New target.
+ (classes.stamp): Updated.
+ (toolexeclib_LTLIBRARIES): Renamed from noinst_LTLIBRARIES.
+ Changed name of library.
+ (libsax_gcj_la_SOURCES): New variable.
+ (libsax_gcj_la_GCJFLAGS): Likewise.
+ (source_files): Renamed from libsax_convenience_la_SOURCES.
+ * prims.cc (_Jv_CreateJavaVM): Initialize the bootstrap class
+ loader.
+ (_Jv_RunMain): Handle case where 'runtime' is NULL at exit.
+
+2005-03-28 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.ac: Revert 2005-03-25's patch. Propagate MULTIlib
+ settings to sub Makefiles.
+ (GCJH, ZIP): Prefix with top_builddir.
+ * configure: Rebuild.
+ * external/w3c_dom/Makefile.am (MULTIBUILDTOP): Don't override.
+ * external/w3c_dom/Makefile.in: Rebuild.
+ * external/sax/Makefile.am (MULTIBUILDTOP): Don't override.
+ * external/sax/Makefile.in: Rebuild.
+
+2005-04-05 Andrew Haley <aph@redhat.com>
+
+ * gnu/gcj/tools/gcj_dbtool/Main.java (Fileset): New class.
+ (Tokenizer): New class.
+ (getFiles): New method.
+ (main): Add "-" argument.
+ Add "-0" argument.
+ Read list of files from stdin when merging map databases.
+ (usage): Add "-" argument.
+ Add "-0" argument.
+ Minor corrections.
+
+2005-04-05 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/20750
+ * Makefile.am (AM_CXXFLAGS): Define JAVA_HOME.
+ * Makefile.in: Regenerate.
+ * configure.ac: Add --with-java-home option.
+ * configure: Regenerate.
+ * external/Makefile.in: Regenerate.
+ * external/sax/Makefile.in: Regenerate.
+ * external/w3c_dom/Makefile.in: Regenerate.
+ * gcj/Makefile.in: Regenerate.
+ * include/Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+ * java/lang/natRuntime.cc (insertSystemProperties): Set java.home
+ to JAVA_HOME macro.
+
+2005-04-04 Steve Pribyl <steve@netfuel.com>
+
+ PR libgcj/20761
+ * configure.ac: Fix fastjar definition for cross builds.
+ * configure: Rebuilt.
+
+2005-04-04 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/ClassLoader.java (loadClass): Resolve class even if
+ it was already found.
+
+2005-04-04 Tom Tromey <tromey@redhat.com>
+
+ * java/net/URL.java (DEFAULT_SEARCH_PATH): Added
+ org.metastatic.jessie.
+
+2005-04-02 Anthony Green <green@redhat.com>
+
+ PR libgcj/20727
+ * java/nio/DirectByteBufferImpl.java: Fix buffer ownership bug.
+
+2005-04-02 Mark Wielaard <mark@klomp.org>
+
+ * javax/naming/directory/BasicAttributes.java (equals): Compare to any
+ Attributes and attribute order doesn't matter.
+ (BasicAttributesEnumeration.where): Initialize to zero.
+ (BasicAttributesEnumeration.nextElement): Update and compare where
+ appropriately (zero based).
+
+2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/20090, PR libgcj/20526
+ * gij.cc (nonstandard_opts_help): New function.
+ (add_option): New function.
+ (main): Support java options. Set java.class.path. Don't set
+ _Jv_Jar_Class_Path.
+ * prims.cc (parse_x_arg): New function.
+ (parse_init_args): Call parse_x_arg for -X and _ options, when
+ ignoreUnrecognized is true.
+ (new _Jv_RunMain): New vm_args variant.
+ (old _Jv_RunMain): Call new vm_args _Jv_RunMain.
+ (_Jv_Jar_Class_Path): Remove variable.
+ * include/java-props.h: Likewise.
+ * include/cni.h (JvRealloc): New function.
+ * include/jvm.h (_Jv_RunMain): Declare vm_args variant.
+ * java/lang/natRuntime.cc (insertSystemProperties): Remove
+ _Jv_Jar_Class_Path logic. Use JV_VERSION and JV_API_VERSION
+ macros.
+ * configure.ac (JV_VERSION): Define.
+ (JV_API_VERSION): Likewise.
+ * configure: Regenerate.
+ * include/config.h.in: Regenerate.
+
+2005-04-01 Mark Anderson <mark@panonet.net>
+
+ * java/lang/natDouble.cc (parseDouble): Handle NaN, Infinity and
+ -Infinity as parameters.
+
+2005-04-01 Michael Koch <konqueror@gmx.de>
+
+ * java/io/PipedInputStream.java
+ (read): Make sure a positive byte value is returned. Revised javadoc.
+ Thanks to Olafur Bragason for reporting these bugs.
+
+2005-04-01 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/util/Timer.java
+ (run): Stop the queue if a task throws an exception.
+
+2005-03-31 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * javax/swing/text/JTextComponent.java (viewToModel): New method.
+
+2005-03-30 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * Makefile.am (gtk_c_source_files): Remove jni/classpath/jcl.c,
+ jni/classpath/jnilink.c, jni/classpath/primlib.c.
+ (lib_gnu_java_awt_peer_gtk_la_SOURCES): jni/classpath/jcl.h,
+ jni/classpath/jnilink.h, jni/classpath/primlib.h.
+ * Makefile.in: Regenerate.
+ * jni/classpath/jcl.h: Remove.
+ * jni/classpath/jcl.c: Likewise.
+ * jni/classpath/jnilink.h: Likewise.
+ * jni/classpath/jnilink.c: Likewise.
+ * jni/classpath/primlib.h: Likewise.
+ * jni/classpath/primlib.c: Likewise.
+
+2005-03-30 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * Makefile.am (classes.stamp): Add gnu/gcj/tools/gcj_dbtool/Main.java
+ to fix a ONESTEP fallout.
+ * Makefile.in: Regenerate.
+
+2005-03-30 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * testsuite/lib/libjava.exp (libjava_init): Use the same target
+ check for Darwin.
+ (libjava_arguments): Likewise.
+
+ * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Likewise.
+ (gcj_jni_test_one): Likewise.
+ (gcj_jni_invocation_compile_c_to_binary): Likewise.
+ Add flags to keep the Darwin linker quiet.
+ (gcj_jni_invocation_test_one): Use the same target check for Darwin.
+ Add -liconv and lgcc_s for Darwin.
+
+2005-03-26 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/dom/DomNode.java (notifyNode): grow listener array as
+ required.
+
+2005-03-13 Michael Koch <konqueror@gmx.de>
+
+ * gnu/xml/aelfred2/XmlParser.java: Fixed typo.
+
+2005-03-11 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/aelfred2/SAXDriver.java: Corrected bug handling URI
+ warnings.
+
+2005-02-27 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/aelfred2/JAXPFactory.java,
+ gnu/xml/aelfred2/SAXDriver.java,
+ gnu/xml/aelfred2/XmlParser.java,
+ gnu/xml/aelfred2/XmlReader.java: Applied GNU Classpath source code
+ formatting conventions. Replaced arrays of Object with struct-like
+ classes for easier maintainability. Made SAXDriver.stringInterning
+ package private to allow access from XmlParser inside the loop without
+ a method call overhead.
+
+2005-03-11 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/aelfred2/SAXDriver.java: Corrected bug handling URI
+ warnings.
+
+2005-03-28 Per Bothner <per@bothner.com>
+
+ * boehm.cc (_Jv_MarkObj): Don't follow null pointer to static field,
+ which can happen if class is JV_STATE_LOADED but not JV_STATE_PREPARED.
+
+2005-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * testsuite/libjava.jni/jni.exp (gcj_jni_invocation_test_one): Add
+ libsocket to the libraries to link for Solaris.
+
+2005-03-24 Anthony Green <green@redhat.com>
+
+ * gnu/gcj/tools/gcj_dbtool/Main.java: Accept libdir argument with
+ -p option.
+ (usage): Add [LIBDIR] to help output.
+ * gnu/gcj/tools/gcj_dbtool/natMain.cc: New file.
+ * Makefile.am (AM_CXXFLAGS): Define
+ LIBGCJ_DEFAULT_DATABASE_PATH_TAIL.
+ (db_pathtail): New macro.
+
+2005-03-23 Sven de Marothy <sven@physto.se>
+
+ PR libgcj/2641, PR libgcj/9854, PR libgcj/14892, PR libgcj/18083,
+ PR libgcj/11085:
+ * java/util/Calendar.java
+ (set): Use starting day of week when one is needed if none is given.
+ * java/text/SimpleDateFormat.java
+ (parse): Handle 1-12 and 1-24 timestamps correctly.
+ * java/util/GregorianCalendar.java
+ (computeTime, computeFields): HOUR should be in 0-11 format.
+ (nonLeniencyCheck): Adjust leniency checking to that fact.
+ (getLinearDay): Should be private.
+
+2005-03-22 Mohan Embar <gnustuff@thisiscool.com>
+ David Daney <ddaney@avtrex.com>
+
+ * gnu/java/net/natPlainSocketImplWin32.cc (read): Handle
+ count == 0 case.
+
+2005-03-22 Mohan Embar <gnustuff@thisiscool.com>
+
+ * Makefile.am ($(db_name)): Add $(EXEEXT) suffix to
+ gcj-dbtool dependency
+ * Makefile.in: Regenerated
+
+2005-03-22 Tom Tromey <tromey@redhat.com>
+
+ * gnu/gcj/tools/gcj_dbtool/Main.java (usage): Fixed output.
+
+2005-03-21 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/VMCompiler.java (static block): Also catch
+ BufferUnderflowException.
+
+2005-03-16 Tom Tromey <tromey@redhat.com>
+
+ * link.cc (ensure_class_linked): Removed #ifdef.
+ (print_class_loaded): Likewise.
+ (wait_for_state): Likewise.
+ * java/lang/Class.h (_Jv_IsInterpretedClass): Always declare.
+ * include/jvm.h (_Jv_IsInterpretedClass): Moved from...
+ * include/java-interp.h: ... here.
+
+2005-03-16 Tom Tromey <tromey@redhat.com>
+
+ * gnu/java/lang/MainThread.java (run): Load main class using
+ system class loader.
+
+2005-03-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgcj/20251
+ * Makefile.am (libjawt_la_LIBADD): Add -L$(here)/.libs.
+ * Makefile.in: Rebuilt.
+
+2005-03-15 David Daney <ddaney@avtrex.com>
+
+ * gnu/java/net/natPlainSocketImplPosix.cc (read_helper): Handle
+ count == 0 case.
+
+2005-03-15 David Daney <ddaney@avtrex.com>
+
+ * java/io/BufferedInputStream.java (available): Use 'in' instead
+ of 'super' for underlying stream access.
+ (close): Ditto.
+ (read(byte[], int, int)): Ditto.
+ (refill): Ditto.
+ (skip): Call skip on underlying stream when possible.
+
+2005-03-14 David Daney <ddaney@avtrex.com>
+
+ * configure.host: Don't use -mxgot for MIPS builds.
+
+2005-03-10 Tom Tromey <tromey@redhat.com>
+
+ * gnu/gcj/tools/gcj_dbtool/Main.java (main): Handle '-p'.
+ (usage): Document '-p'.
+ * Makefile.in: Rebuilt.
+ * Makefile.am (dbexecdir): New variable.
+ (db_name): Likewise.
+ (dbexec_DATA): Likewise.
+ ($(db_name)): New target.
+ (AM_CXXFLAGS): Define LIBGCJ_DEFAULT_DATABASE.
+ * java/lang/natRuntime.cc (insertSystemProperties): Set default
+ system database.
+
+2005-03-10 Chris Burdess <dog@bluezoo.org>
+
+ * gnu/xml/dom/ls/SAXEventSink.java: Ignore element declarations if
+ not currently parsing the DTD.
+
+2005-03-10 Andrew Haley <aph@redhat.com>
+
+ * gnu/java/nio/channels/FileChannelImpl.java (smallTransferFrom):
+ New.
+ (smallTransferTo): New.
+ (transferFrom): Loop around smallTransferFrom, copying pageSize
+ bytes each time.
+ (transferTo): Likewise.
+
+2005-03-09 David Daney <ddaney@avtrex.com>
+
+ PR libgcj/20389
+ Merge BufferedInputStream from GNU Classpath.
+ * java/io/BufferedInputStream.java (marktarget): Field removed.
+ (CHUNKSIZE): Field removed.
+ (bufferSize): New field.
+ (BufferedInputStream): Initialize fields.
+ (close): Invalidate mark and buffer indexes.
+ (mark): Rewritten.
+ (read()): Move mark handling code to refill.
+ (read(byte[], int, int)): Ditto.
+ (skip): Ditto and simplify EOF testing.
+ (refill): Rewritten.
+ * java/io/InputStreamReader.java (refill): Removed mark and reset
+ of internal BufferedInputStream.
+
+2005-03-09 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/natVMClassLoader.cc (defineClass): Reference
+ 'systemClassLoader' field directly.
+ * java/lang/natRuntime.cc (_load): Reference 'systemClassLoader'
+ field directly.
+ * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
+ Reference 'systemClassLoader' field directly.
+ (_Jv_UnregisterInitiatingLoader): Likewise.
+ (_Jv_FindClass): Likewise.
+
+2005-03-09 Tom Tromey <tromey@redhat.com>
+
+ * java/net/URLClassLoader.java (addURLImpl): Reset 'thisString'.
+ (toString): Synchronize.
+
+2005-03-07 Tom Tromey <tromey@redhat.com>
+
+ * gnu/gcj/tools/gcj_dbtool/Main.java (main): Recognize '-f'.
+ (usage): Document '-f'.
+
+2005-02-13 Anthony Green <green@redhat.com>
+
+ * jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_drawable,
+ classpath_jawt_lock, classpath_jawt_unlock): New functions.
+ * jawt.c (_Jv_AWTLock, _Jv_AWTUnlock): New functions.
+ (_Jv_GetDrawingSurface): Set visualID.
+ (_Jv_FreeDrawingSurfaceInfo): Clear visualID.
+ (JAWT_GetAWT): Set Lock and Unlock.
+ * include/jawt_md.h (struct _JAWT_X11DrawingSurfaceInfo): Add visualID.
+ * include/jawt.h (JAWT_VERSION_1_4, JAWT_LOCK_ERROR,
+ JAWT_LOCK_CLIP_CHANGED, JAWT_LOCK_BOUNDS_CHANGED,
+ JAWT_LOCK_SURFACE_CHANGED): New macros.
+ (struct _JAWT): Add Lock and Unlock.
+
+2005-03-07 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/VMCompiler.java (md5Digest): New field.
+ (compileClass): Clone md5Digest instead of looking up a new one.
+
+2005-03-06 Tom Tromey <tromey@redhat.com>
+
+ PR java/20215:
+ * include/jvm.h (_Jv_Linker::find_field_helper): Updated.
+ * link.cc (find_field_helper): Added 'type' argument.
+ (find_field): Updated.
+
+2005-03-06 Roger Sayle <roger@eyesopen.com>
+
+ PR libgcj/20155
+ * Makefile.am (libgcj0_convenience.la): Revert last change.
+ * Makefile.in: Regenerate.
+
+2005-03-05 Roger Sayle <roger@eyesopen.com>
+ Alexandre Oliva <aoliva@redhat.com>
+ Kelley Cook <kcook@gcc.gnu.org>
+
+ PR libgcj/20155
+ * Makefile.am (libgcj0_convenience.la): New rule to create a file
+ of the object files to link to avoid exceeding the command line
+ length limits on some platforms.
+ (clean-local): Clean up objectlist files.
+ * Makefile.in: Regenerate.
+
+2005-03-02 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/20292
+ * testsuite/libjava.jni/jni.exp
+ (gcj_jni_invocation_compile_c_to_binary): Add -I. -I.. to compile
+ flags.
+ (gcj_jni_invocation_test_one): Add -L../.libs to cxx flags.
+
+2005-02-24 David Gilbert <david.gilbert@object-refinery.com>
+
+ * java/awt/font/TextAttribute.java: changed names to lower case;
+ (readResolve): implemented.
+ Added doc comments all over.
+
+2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/16923
+ * jni.cc (JNI_CreateJavaVM): Check JNI version. Cast args to
+ JvVMInitArgs. Pass args to _Jv_CreateJavaVM and check return
+ value. Move argument parsing code to prims.cc.
+ * prims.cc (no_properties): Remove.
+ (_Jv_Compiler_Properties): Initialize to NULL.
+ (_Jv_Properties_Count): Initialize to 0.
+ (parse_verbose_args): New function.
+ (parse_init_args): New function.
+ (_Jv_CreateJavaVM): Call parse_init_args.
+ (_Jv_RunMain): Check return value of _Jv_CreateJavaVM.
+ * gcj/cni.h (JvVMOption): New struct.
+ (JvVMInitArgs): Likewise.
+ (JvCreateJavaVM): Declare vm_args as JvVMInitArgs* rather than
+ void*.
+ * libjava/gcj/javaprims.h (_Jv_VMOption): New struct.
+ (_Jv_VMInitArgs): Likewise.
+ * include/java-props.h (_Jv_Properties_Count): Declare.
+ * java/lang/natRuntime.cc (insertSystemProperties): Use
+ _Jv_Properties_Count in for loop exit condition.
+ * testsuite/libjava.jni/jni.exp
+ (gcj_invocation_compile_c_to_binary): New procedure.
+ (gcj_invocation_test_one): Likewise.
+ (gcj_jni_run): Run JNI invocation API tests.
+ * testsuite/libjava.jni/invocation/PR16923.c,
+ testsuite/libjava.jni/invocation/PR16923.java,
+ testsuite/libjava.jni/invocation/PR16923.out: New test.
+
+2005-02-23 Michael Koch <konqueror@gmx.de>
+
+ * Makefile.am: Added new file gnu/java/nio/ChannelReader.java.
+ * Makefile.in: Regenerated.
+
+2005-02-23 Robert Schuster <thebohemian@gmx.net>
+
+ * gnu/java/nio/ChannelReader: Fixed comments.
+
+2005-02-23 Robert Schuster <thebohemian@gmx.net>
+
+ * java/nio/channels/Channels: Added FIXMEs about
+ stub method implementation.
+ (newReader): Implemented.
+ * gnu/java/nio/ChannelReader: New class.
+
+2005-02-23 Michael Koch <konqueror@gmx.de>
+
+ * java/text/SimpleDateFormat.java:
+ Removed unused import.
+
+2005-02-22 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/20029:
+ * Makefile.am (lib_gnu_java_awt_peer_gtk_la_CFLAGS): Add X_CFLAGS.
+ (lib_gnu_java_awt_peer_gtk_la_LDFLAGS): Add X_LIBS and -lXtst.
+ * Makefile.in: Regenerate.
+ * configure.ac: Check for libXtst.
+ * configure: Regenerate.
+
+2005-02-22 Mark Wielaard <address@bogus.example.com>
+
+ * java/security/AlgorithmParameterGenerator.java (getInstance):
+ Mention provider when throwing NoSuchProviderException.
+ * java/security/AlgorithmParameters.java (getInstance): Likewise.
+ * java/security/KeyFactory.java (getInstance): Likewise.
+ * java/security/KeyStore.java (getInstance): Likewise.
+ * java/security/SecureRandom.java (getInstance): Likewise.
+ * java/security/cert/CertificateFactory.java (getInstance): Likewise.
+
+2005-02-22 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/lang/reflect/Proxy.java,
+ java/net/URL.java,
+ java/security/SecureRandom.java,
+ java/util/Timer.java,
+ java/util/prefs/AbstractPreferences.java:
+ Don't catch java.lang.ThreadDeath.
+
+2005-02-22 David Gilbert <david.gilbert@object-refinery.com>
+
+ * java/awt/font/TransformAttribute.java,
+ (TransformAttribute(AffineTransform)): throw
+ IllegalArgumentException for null transform.
+ (getTransform): return a copy of transform.
+ Added doc comments to all.
+
+2005-02-22 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/io/Externalizable.java,
+ java/io/Serializable.java
+ (serialVersionUID): Removed.
+ * java/rmi/server/RemoteObject.java,
+ java/rmi/server/UID.java
+ (serialVersionUID): Made private.
+ * java/rmi/server/RemoteRef.java,
+ java/rmi/server/ServerRef.java
+ (serialVersionUID): Set proper value.
+ * java/security/interfaces/DSAPrivateKey.java,
+ java/security/interfaces/DSAPublicKey.java,
+ java/security/interfaces/RSAMultiPrimePrivateCrtKey.java,
+ java/security/interfaces/RSAPrivateCrtKey.java,
+ java/security/interfaces/RSAPrivateKey.java,
+ java/security/interfaces/RSAPublicKey.java,
+ javax/crypto/SecretKey.java
+ (serialVersionUID): Added.
+
+2005-02-22 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/Object.h (_JvObjectPrefix): Declare as extern "Java".
+
+2005-02-22 Tom Tromey <tromey@redhat.com>
+
+ PR java/20056:
+ * verify.cc (type::EITHER): New constant.
+ (check_field_constant): Use it.
+ (type::compatible): Handle it.
+
+2005-02-22 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/security/PolicyFile.java,
+ gnu/java/security/pkcs/PKCS7SignedData.java,
+ gnu/java/security/pkcs/SignerInfo.java:
+ Fixed copyright header.
+
+2005-02-22 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/beans/PropertyDescriptor.java
+ (PropertyDescriptor,setReadMethod): Set propertyType.
+
+2005-02-22 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/DirectByteBufferImpl.java
+ (owner): Fixed formatting of javadoc.
+ * java/text/DateFormat.java
+ (getAvailableLocales): Fixed formatting.
+ * java/text/SimpleDateFormat.java:
+ Fixed formatting and import statement order.
+ * java/util/Calendar.java
+ (Calendar): Fixed javadoc to be HTML compliant.
+ * java/util/SimpleTimeZone.java:
+ Fixed javadocs.
+
+2005-02-22 Roman Kennke <roman@ontographics.com>
+
+ * javax/swing/plaf/basic/BasicLookAndFeel.java
+ (initComponentDefaults): Fixed Button left and right margin.
+
+2005-02-22 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * java/awt/Robot.java (waitForIdle): Call invokeAndWait on an
+ empty Runnable.
+
+ PR libgcj/17952:
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java,
+ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+ (getWidth): New method.
+ (getHeight): Likewise.
+ (create): Remove width, height and insets parameters. Move size
+ setup ...
+ (realize_cb): ... here. New function.
+ (connectSignals): Connect realize_cb.
+ (request_frame_extents): Remove FIXME. Move
+ postInsetsChangedEvent lookup ...
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (gtkInit):
+ ... here. Look up GtkWindowPeer getWidth and getHeight methods.
+ * jni/gtk-peer/gtkpeer.h (postInsetsChangedEventID): Declare
+ jmethodID.
+ (windowGetWidthID): Likewise.
+ (windowGetHeightID): Likewise.
+
+2005-02-21 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ PR libgcj/19842
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
+ (button_to_awt_mods): Return BUTTON masks, not BUTTON_DOWN masks.
+
+2005-02-21 Bryce McKinlay <mckinlay@redhat.com>
+
+ Merge serialization from GNU Classpath.
+ * gcj/method.h: Add missing #includes.
+ * java/io/ObjectInputStream.java (readClassDescriptor): Check for
+ primitive class IDs on the stream here...
+ (resolveClass): ...not here.
+ * java/io/ObjectStreamField.java: Use VMObjectStream class calls to set
+ fields.
+ * java/io/VMObjectStreamClass.java (setDoubleNative, setFloatNative,
+ setLongNative, setIntNative, setShortNative, setCharNative,
+ setByteNative, setBooleanNative, setObjectNative): New native methods.
+ * java/io/natVMObjectStreamClass.java (setDoubleNative, setFloatNative,
+ setLongNative, setIntNative, setShortNative, setCharNative,
+ setByteNative, setBooleanNative, setObjectNative): Implement them.
+ * java/io/natObjectInputStream.cc (allocateObject): Add new parameters
+ from Classpath's version. Use _Jv_FromReflectedConstructor(). Call
+ the constructor here.
+ (callConstructor): Removed.
+ (getCallersClassLoader): Removed.
+ * java/lang/reflect/Field.java (setByte, setShort, setInt, setLong,
+ setFloat, setDouble, setChar, setBoolean): Add 'checkFinal' parameter
+ to control whether setting final field values is permitted. Call
+ getAddr() with checkFinal parameter instead of setAddr().
+ * java/lang/reflect/natField.cc (getType): Lookup and resolve field
+ only if not done already.
+ (getAddr): Add checkFinal parameter. Do the final field check only if
+ checkFinal is set.
+ (setAddr): Removed.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ # Fixes bug #11957
+ * java/io/ObjectInputStream.java (resolveClass): Don't check "void"
+ twice.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ Fixes bug #11618.
+ * java/io/ObjectInputStream.java (readClassDescriptor): Handle classes
+ without a super class and us ObjectStreamClass.lookupForClassObject().
+ (resolveClass): Check for primitive types.
+ (lookupClass): Return null when argument is null.
+
+2005-02-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/io/ObjectInputStream.java
+ (readObject): Fix to consume TC_ENDBLOCKDATA after readExternal.
+
+2005-02-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/io/ObjectOutputStream.java
+ (writeObject, callWriteMethod): Replaced reflection with accessing
+ cached info in ObjectStreamClass.
+ (getMethod): Removed.
+ * java/io/ObjectStreamClass.java
+ (findMethod): Added check to make sure the method found has the
+ right modifiers.
+ (cacheMethods): Added writeReplace and writeObject methods.
+ (setFlags): Look at new writeObjectMethod field instead of doing
+ reflection again.
+ (writeReplaceMethod): New field.
+ (writeObjectMethod): New field.
+
+2005-02-21 Guilhem Lavaux <guilhem@kaffe.org>
+ Jeroen Frijters <jeroen@frijters.net>
+
+ * java/io/ObjectInputStream.java
+ (newObject): Changed prototype. Get a constructor reflect object
+ directly.
+ (callConstructor): Removed.
+ (allocateObject): Changed prototype.
+ (readClassDescriptor): Build the constructor reflection directly.
+ (readObject): Invoke newObject using the new prototype.
+
+ * java/io/ObjectStreamClass.java
+ (firstNonSerializableParent): Removed.
+ (firstNonSerializableParentConstructor): Added.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * gnu/java/locale/LocaleInformation_en.java: Extend
+ localPatternChars to "GyMdkHmsSEDFwWahKzYeugAZ".
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/text/SimpleDateFormat.java
+ (SimpleDateFormat(String, DateFormatSymbols)): Throw
+ NullPointerException when formatData is null.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by
+ taking dstSavings into account.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/text/SimpleDateFormat.java,
+ (parse): Set correct DST_OFFSET to the correct value.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/util/SimpleTimeZone.java (checkRule): Throw
+ IllegalArgumentException when month out of range.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/GregorianCalendar.java,
+ (add): Don't set fields directly anymore. Use set()
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/text/SimpleDateFormat.java (CompiledField.toString):
+ Use StringBuffer, not StringBuilder.
+ (toString): Likewise.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/Calendar.java
+ (clear): Dates should clear to local time.
+ * java/util/GregorianCalendar.java
+ (computeTime): Fix priority problem with DAY_OF_WEEK,
+ Handle non-sunday-startig weeks and minimumDaysInFirstWeek.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/Calendar.java
+ (Calendar): Constructor should clear fields.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/text/SimpleDateFormat.java
+ (parse): Tweak handling of 2-year dates
+ * java/util/Calendar.java
+ (clear): Clear fields to correct value.
+ * java/util/GregorianCalendar.java
+ (computeTime): Correct handling of time zones.
+ Correct field minimum values.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/Calendar.java
+ (set) Invalidate all fields on first call to set().
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/GregorianCalendar.java
+ (computeTime): Fixed handling of time zones.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/Calendar.java
+ (clear): Set values to Epoch instead of zero.
+ (set): Set isSet to the relevant field pattern instead of just
+ the field.
+ * java/util/GregorianCalendar.java
+ (getBundle): Removed.
+ (getDayOfYear): Removed.
+ (getFirstDayOfMonth): New private method.
+ (nonLeniencyCheck): New private method.
+ (computeTime): Correct handling of insufficient data.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/Calendar.java: Invalidate ERA field on setting
+ the YEAR.
+ * java/util/SimpleTimeZone.java:
+ (getDaysInMonth): Reimplemented.
+ * java/util/GregorianCalendar.java:
+ (getLinearTime): Removed.
+ (isLeapYear(int,boolean)): Removed.
+ (before(), after()): Removed.
+ (computeTime): Reimplemented.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/Calendar.java: Reformatted.
+ * java/util/GregorianCalendar.java: Reformatted.
+ * java/util/SimpleTimeZone.java: Reformatted.
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/util/GregorianCalendar.java
+ (GregorianCalendar): Update fields in the constructor
+
+2005-02-21 Noa Resare <noa@resare.com>
+
+ * java/util/Calendar.java (explicitDSTOffset): New instance field.
+ (set(int,int)): Set and use new field.
+ (set(int,int,int)): Check new field.
+
+2005-02-21 Noa Resare <address@hidden>
+
+ * java/util/Calendar.java(set):
+ Fix for DST related regression.
+
+2005-02-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/util/Calendar.java
+ (setTimeInMillis): Added call to clear, removed computeFields call.
+ * java/util/Date.java
+ (Date(int,int,int,int,int,int)): Removed workaround for
+ GregorianCalendar bug.
+ * java/util/GregorianCalendar.java
+ (GregorianCalendar): Chained all constructors to a (new)
+ common constructor.
+ (computeTime): Fixed support for lenient month treatment.
+ (getLinearDay): Return long instead of int.
+ (calculateDay): Added fields argument and changed day argument
+ to long.
+
+2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java
+ Lots of documentation updates.
+ (readObject(java.io.ObjectInputStream)): Wraps
+ IllegalArgumentException as specified.
+ (compileFormat(String)): Uses standardChars
+ rather than the local pattern characters.
+ Throws IllegalArgumentException rather than
+ storing a -1 field.
+ (toString()): Extended to include all variables
+ in a better format.
+ (translateLocalizedPattern(String, String, String)):
+ Renamed to better define the use of this method.
+
+2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormat.java:
+ Documented pattern character offset constants and
+ added new ones.
+ (Field): Added new static fields for new pattern chars.
+ * java/text/SimpleDateFormat.java:
+ (CompiledField): Changed name of FieldSizePair class
+ to CompiledField after adding the character as an
+ attribute. Changed fields to private and added
+ accessors to give encapsulation.
+ (CompiledField.CompiledField(int,int,char)): Extended
+ with character field.
+ (CompiledField.getField()): New accessor method.
+ (CompiledField.getSize()): New acceessor method.
+ (CompiledField.getCharacter()): New accessor method.
+ (CompiledField.toString()): Added primarily for debugging.
+ (standardChars): Now uses extended 24 character sequence.
+ (compileFormat(String)): Changed to use CompiledField.
+ (formatWithAttribute(java.util.Date, gnu.java.text.FormatBuffer,
+ java.text.FieldPosition)): Changed to use CompiledField.
+ New handler for RFC 822 timezones added.
+
+2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java:
+ (parse(String, java.text.ParsePosition)):
+ Changed 'E' and 'M' cases to use both
+ short and long names. Extended 'z'
+ case to also handle 'Z', and deal
+ with simple GMT offsets such as +0100.
+ (computeOffset(String)): New private method,
+ which converts a GMT offset specification,
+ such as GMT-0500 to a numeric offset in
+ milliseconds.
+ * java/util/TimeZone.java:
+ (timezones()): Added "CEST", the daylight
+ savings time version of "CET", or Central
+ European Time.
+
+2005-02-21 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ * java/text/SimpleDateFormat.java:
+ (parse): Set the DST offset to 0 when parsing
+ GMT offset timezones.
+
+2005-02-21 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ * java/text/SimpleDateFormat.java:
+ (parse): Use offset to set ZONE_OFFSET
+ rather than the DST_OFFSET, so that
+ GMT offset timezones change the right
+ one.
+
+2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java:
+ (getDateFormatSymbols()): return a copy
+ (setDateFormatSymbols(java.text.DateFormatSymbols)):
+ throw exception on null input
+ (clone()): implemented to clone
+ internal fields
+
+2005-02-21 Sven de Marothy <sven@physto.se>
+
+ * java/text/SimpleDateFormat.java
+ (parse): comparison should be case-insensitive, ignore null
+ strings.
+
+2005-02-21 Robert Schuster <theBohemian@gmx.net>
+
+ * gnu/java/beans/IntrospectionIncubator.java
+ (addMethod) Reverts the patch that ntroduced a regression (see bug
+ https://savannah.gnu.org/bugs/?func=detailitem&item_id=10938).
+
+2005-02-21 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Checkbox.java
+ (next_checkbox_number): New static variable.
+ (generateName): New method.
+ (getUniqueLong): Likewise.
+ * java/awt/Window.java
+ (next_window_number): New static variable.
+ (generateName): New method.
+ (getUniqueLong): Likewise.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/util/jar/JarFile.java (verifyHashes): Check whether ZipEntry
+ exists.
+
+2005-02-21 Andrew Haley <aph@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (nat_source_files): Added natLogger.cc.
+ * java/util/logging/natLogger.cc: New file.
+ * java/util/logging/Logger.java (getCallerStackFrame): Now
+ native.
+
+2005-02-21 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * Makefile.am (all_property_files): Remove left over.
+ (classes.stamp): Add stamp for the ONESTEP build, also known as
+ --enable-libgcj-multifile.
+ * Makefile.in: Regenerated.
+
+2005-02-21 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Button.java,
+ java/awt/Container.java,
+ java/awt/Font.java,
+ java/awt/Frame.java,
+ java/text/CollationElementIterator.java,
+ java/text/RuleBasedCollator.java,
+ java/util/PropertyPermission.java:
+ Fixed formatting issues all over.
+
+2005-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/io/FileDescriptor.java (sync): Add real exception to
+ SyncFailedException.
+
+2005-02-21 Michael Koch <konqueror@gmx.de>
+
+ * java/io/InputStreamReader.java:
+ Fixed @author tag.
+
+2005-02-20 Rutger Ovidius <ovidr@users.sourceforge.net>
+
+ PR libgcj/19728:
+ * gnu/java/security/provider/Gnu.java (Gnu): Add SHA-160 alias.
+
+2005-02-20 Dalibor Topic <robilad@kaffe.org>
+
+ * libraries/javalib/gnu/regexp/RE.java,
+ libraries/javalib/java/io/ObjectInputStream.java,
+ libraries/javalib/java/security/AllPermission.java,
+ libraries/javalib/java/security/BasicPermission.java,
+ libraries/javalib/java/security/Permissions.java,
+ libraries/javalib/java/text/MessageFormat.java:
+ Made 'inner' classes real public static inner classes,
+ and made them final where possible, or removed them
+ where unused.
+
+2005-02-20 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/text/FormatCharacterIterator.java:
+ Removed redundant modifiers.
+
+2005-02-19 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * jni/gtk-peer/gthread-jni.c (throw): Call g_snprintf instead of
+ snprintf.
+
+2005-02-19 Michael Koch <konqueror@gmx.de>
+
+ * Makefile.am: Added new files in gnu/java/beans and
+ java/beans/XMLDecoder.java.
+ * Makefile.in: Regenerated.
+
+2005-02-19 Robert Schuster <thebohemian@gmx.net>
+
+ * gnu/java/beans/decoder/GrowableArrayContext.java: Fixed
+ assignment behavior by using java.lang.reflect.Array.set()
+ directly.
+
+2005-02-19 Dalibor Topic <robilad@kaffe.org>
+
+ * gnu/java/beans/EmptyBeanInfo.java,
+ gnu/java/beans/info/ComponentBeanInfo.java:
+ Removed unused files.
+
+2005-02-19 Robert Schuster <thebohemian@gmx.net>
+
+ * gnu/java/beans/DummyAppletStub.java: Add dummy implementation
+ of AppletStub for java.beans.Beans.instantiate.
+ * gnu/java/beans/DummyAppletContext.java: Add dummy implementation
+ of AppletContext.
+ * java/beans/Beans: Added 1.4 functionality, fixed user documentation
+ to be conformant with Javadoc guidelines.
+ (instantiate): Added two more overloaded variants, reworked user
+ documentation, fixed exception behavior, fixed behavior when
+ deserializing null.
+
+2005-02-19 Mark Wielaard <mark@klomp.org>
+
+ * gnu/java/beans/decoder/DummyHandler.java: Add return statements for
+ failing methods.
+ * gnu/java/beans/decoder/DummyContext.java: Likewise.
+
+2005-02-19 Robert Schuster <theBohemian@gmx.net>
+
+ * gnu/java/beans/decoder/AbstractContext.java,
+ gnu/java/beans/decoder/AbstractCreatableContext.java,
+ gnu/java/beans/decoder/AbstractElementHandler.java,
+ gnu/java/beans/decoder/AbstractObjectContext.java,
+ gnu/java/beans/decoder/ArrayContext.java,
+ gnu/java/beans/decoder/ArrayHandler.java,
+ gnu/java/beans/decoder/AssemblyException.java,
+ gnu/java/beans/decoder/BooleanHandler.java,
+ gnu/java/beans/decoder/ByteHandler.java,
+ gnu/java/beans/decoder/CharHandler.java,
+ gnu/java/beans/decoder/ClassHandler.java,
+ gnu/java/beans/decoder/ConstructorContext.java,
+ gnu/java/beans/decoder/Context.java,
+ gnu/java/beans/decoder/DecoderContext.java,
+ gnu/java/beans/decoder/DefaultExceptionListener.java,
+ gnu/java/beans/decoder/DoubleHandler.java,
+ gnu/java/beans/decoder/DummyContext.java,
+ gnu/java/beans/decoder/DummyHandler.java,
+ gnu/java/beans/decoder/ElementHandler.java,
+ gnu/java/beans/decoder/FloatHandler.java,
+ gnu/java/beans/decoder/GrowableArrayContext.java,
+ gnu/java/beans/decoder/IndexContext.java,
+ gnu/java/beans/decoder/IntHandler.java,
+ gnu/java/beans/decoder/JavaHandler.java,
+ gnu/java/beans/decoder/LongHandler.java,
+ gnu/java/beans/decoder/MethodContext.java,
+ gnu/java/beans/decoder/MethodFinder.java,
+ gnu/java/beans/decoder/NullHandler.java,
+ gnu/java/beans/decoder/ObjectContext.java,
+ gnu/java/beans/decoder/ObjectHandler.java,
+ gnu/java/beans/decoder/PersistenceParser.java,
+ gnu/java/beans/decoder/PropertyContext.java,
+ gnu/java/beans/decoder/ShortHandler.java,
+ gnu/java/beans/decoder/SimpleHandler.java,
+ gnu/java/beans/decoder/StaticMethodContext.java,
+ gnu/java/beans/decoder/StringHandler.java,
+ gnu/java/beans/decoder/VoidHandler.java: New class
+ implementing java.beans.XMLDecoder decoding functionality.
+ * java/beans/XMLDecoder.java: New class.
+
+2005-02-19 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTextField.java
+ (notfiyAction): Added javadoc.
+
+2005-02-19 Sven de Marothy <sven@physto.se>
+
+ * javax/swing/SpinnerDateModel.java: Implemented.
+
+2005-02-19 Michael Koch <konqueror@gmx.de>
+
+ * Makefile.am: Added javax/swing/SpinnerDateModel.java.
+ * Makefile.in: Regenerated.
+
+2005-02-19 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/SelectorImpl.java:
+ Reworked import statements.
+ (register): Removed unused code.
+ * java/nio/channels/Channels.java: Reformatted.
+ * java/nio/charset/Charset.java: Likewise.
+ * java/rmi/server/RemoteObject.java
+ (serialVersionUID): Made private.
+ * java/rmi/server/UID.java
+ (serialVersionUID): Likewise.
+
+2005-02-19 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/net/protocol/ftp/ActiveModeDTP.java,
+ gnu/java/net/protocol/ftp/BlockInputStream.java,
+ gnu/java/net/protocol/ftp/BlockOutputStream.java,
+ gnu/java/net/protocol/ftp/CompressedInputStream.java,
+ gnu/java/net/protocol/ftp/CompressedOutputStream.java,
+ gnu/java/net/protocol/ftp/DTPInputStream.java,
+ gnu/java/net/protocol/ftp/DTP.java,
+ gnu/java/net/protocol/ftp/DTPOutputStream.java,
+ gnu/java/net/protocol/ftp/FTPConnection.java,
+ gnu/java/net/protocol/ftp/FTPException.java,
+ gnu/java/net/protocol/ftp/FTPResponse.java,
+ gnu/java/net/protocol/ftp/FTPURLConnection.java,
+ gnu/java/net/protocol/ftp/Handler.java,
+ gnu/java/net/protocol/ftp/PassiveModeDTP.java,
+ gnu/java/net/protocol/ftp/StreamInputStream.java,
+ gnu/java/net/protocol/ftp/StreamOutputStream.java,
+ gnu/java/net/CRLFInputStream.java,
+ gnu/java/net/CRLFOutputStream.java,
+ gnu/java/net/GetLocalHostAction.java,
+ gnu/java/net/protocol/ftp/package.html: New files.
+ * Makefile.am: Added new files.
+ * Makefile.in: Regenerated.
+
+2005-02-18 Tom Tromey <tromey@redhat.com>
+
+ * link.cc (make_vtable): Remove abstract method check.
+ (append_partial_itable): Likewise.
+
+ PR java/20056:
+ * verify.cc (type::equals): Fixed test.
+ * testsuite/libjava.lang/PR20056.out: New file.
+ * testsuite/libjava.lang/PR20056.java: New file.
+
+2005-02-18 Bryce McKinlay <mckinlay@redhat.com>
+
+ * java/util/LinkedHashMap (addEntry): Call remove() with key argument,
+ not the HashEntry. Reported by Jean-Marie White.
+
+2005-02-18 Tom Tromey <tromey@redhat.com>
+
+ PR java/20056:
+ * include/jvm.h (_Jv_Linker::has_field_p): Declare.
+ * link.cc (has_field_p): New function.
+ * verify.cc (check_field_constant): Added 'putfield' argument.
+ (verify_instructions_0): Updated.
+ (type::equals): New method.
+
+2005-02-18 Anthony Green <green@redhat.com>
+
+ * NEWS: Draft of libgcj NEWS for 4.0.
+
+2005-02-18 Anthony Green <green@redhat.com>
+
+ * java/lang/natRuntime.cc (insertSystemProperties): Normalize x86
+ architecture names to "i386" for compatibility reasons. Win32
+ still uses "x86".
+
+2005-02-18 Anthony Green <green@redhat.com>
+
+ * gij.cc (version): Change year for '--version' to 2005.
+ * gnu/gcj/convert/Convert.java: Ditto.
+ * gnu/java/rmi/rmic/RMIC.java: Ditto.
+ * gnu/java/rmi/registry/RegistryImpl.java: Ditto.
+
+ * gnu/gcj/tools/gcj_dbtool/Main.java: Only show the most
+ recent copyright year in `--version' output.
+
+2005-02-18 Robert Schuster <thebohemian@gmx.net>
+
+ * java/nio/charset/Charset.java (forName): Throws
+ IllegalArgumentException when argument is null
+ and added documentation.
+
+2005-02-17 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ * gnu/java/nio/channels/FileChannelImpl.java (write(ByteBuffer)):
+ Move the position of the source buffer forward.
+
+2005-02-17 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/Class.h (_Jv_GetMethodString): Updated declaration.
+ * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Updated.
+ * java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Updated.
+ * link.cc (_Jv_GetMethodString): Added 'derived' argument.
+ Changed type of second argument. Rewrote.
+ (make_vtable): Use it.
+ (append_partial_itable): Updated.
+ (layout_vtable_methods): Updated.
+
+2005-02-17 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/net/PlainSocketImpl.java
+ (shutdownInput): Added javadoc.
+ (shutdownOutput): Likewise.
+
+2005-02-17 Michael Koch <konqueror@gmx.de>
+
+ * javax/print/attribute/standard/Chromaticity.java,
+ javax/print/attribute/standard/Destination.java,
+ javax/print/attribute/standard/MediaPrintableArea.java,
+ javax/print/attribute/standard/MediaSize.java: New files.
+ * Makefile.am: Added new files.
+ * Makefile.in: Regenerated.
+
+2005-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/net/protocol/http/Cookie.java,
+ gnu/java/net/protocol/http/HTTPConnection.java,
+ gnu/java/net/protocol/http/HTTPDateFormat.java,
+ gnu/java/net/protocol/http/Request.java,
+ gnu/java/nio/PipeImpl.java,
+ gnu/java/rmi/dgc/DGCImpl.java,
+ gnu/java/rmi/server/ConnectionRunnerPool.java,
+ gnu/java/rmi/server/UnicastConnectionManager.java,
+ gnu/java/security/der/DERWriter.java,
+ gnu/java/security/pkcs/SignerInfo.java,
+ gnu/java/security/provider/EncodedKeyFactory.java,
+ gnu/java/security/provider/GnuDHPublicKey.java,
+ gnu/java/security/provider/GnuDSAPrivateKey.java,
+ gnu/java/security/provider/GnuDSAPublicKey.java,
+ gnu/java/security/provider/PKIXCertPathValidatorImpl.java,
+ gnu/java/security/x509/X500DistinguishedName.java,
+ gnu/java/security/x509/X509CRL.java,
+ gnu/java/security/x509/X509CRLEntry.java,
+ gnu/java/security/x509/X509Certificate.java,
+ gnu/java/security/x509/ext/AuthorityKeyIdentifier.java,
+ gnu/java/security/x509/ext/CertificatePolicies.java,
+ gnu/java/security/x509/ext/PolicyConstraint.java,
+ gnu/xml/dom/Consumer.java,
+ gnu/xml/dom/DomCharacterData.java,
+ gnu/xml/dom/DomDocument.java,
+ gnu/xml/dom/DomDocumentBuilder.java,
+ gnu/xml/dom/DomIterator.java,
+ gnu/xml/dom/DomNode.java,
+ gnu/xml/dom/DomXPathExpression.java,
+ gnu/xml/dom/DomXPathResult.java,
+ gnu/xml/dom/JAXPFactory.java,
+ gnu/xml/pipeline/CallFilter.java,
+ gnu/xml/pipeline/DomConsumer.java,
+ gnu/xml/pipeline/LinkFilter.java,
+ gnu/xml/pipeline/NSFilter.java,
+ gnu/xml/pipeline/TeeConsumer.java,
+ gnu/xml/pipeline/ValidationConsumer.java,
+ gnu/xml/pipeline/WellFormednessFilter.java,
+ gnu/xml/pipeline/XIncludeFilter.java,
+ gnu/xml/pipeline/XsltFilter.java,
+ gnu/xml/transform/ApplyImportsNode.java,
+ gnu/xml/transform/Bindings.java,
+ gnu/xml/transform/DocumentFunction.java,
+ gnu/xml/transform/FormatNumberFunction.java,
+ gnu/xml/transform/NodeNumberNode.java,
+ gnu/xml/transform/NumberNode.java,
+ gnu/xml/transform/Stylesheet.java,
+ gnu/xml/transform/SystemPropertyFunction.java,
+ gnu/xml/transform/Template.java,
+ gnu/xml/transform/TemplatesImpl.java,
+ gnu/xml/transform/TransformerImpl.java,
+ gnu/xml/transform/ValueOfNode.java,
+ gnu/xml/transform/XSLURIResolver.java,
+ gnu/xml/util/DoParse.java,
+ gnu/xml/util/Resolver.java,
+ gnu/xml/xpath/Expr.java,
+ gnu/xml/xpath/FunctionCall.java,
+ gnu/xml/xpath/RelationalExpr.java,
+ gnu/xml/xpath/Selector.java,
+ gnu/xml/xpath/XPathParser.java:
+ Reworked import statements, fixed modifier order and some little
+ formatting issues.
+
+2005-02-17 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ * java/nio/ByteBufferImpl.java (compact):
+ Set position and limit even if no bytes were moved.
+
+2005-02-17 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/CharViewBufferImpl.java (compact): Likewise.
+ * java/nio/DirectByteBufferImpl.java (compact): Likewise.
+ * java/nio/DoubleViewBufferImpl.java (compact): Likewise.
+ * java/nio/FloatViewBufferImpl.java (compact): Likewise.
+ * java/nio/IntViewBufferImpl.java (compact): Likewise.
+ * java/nio/LongViewBufferImpl.java (compact): Likewise.
+ * java/nio/MappedByteBufferImpl.java (compact): Likewise.
+ * java/nio/ShortViewBufferImpl.java (compact): Likewise.
+ * java/nio/FloatBufferImpl.java (compact): Set position.
+ * java/nio/CharBufferImpl.java (compact): Likewise.
+ * java/nio/DoubleBufferImpl.java (compact): Likewise.
+ * java/nio/IntBufferImpl.java (compact): Likewise.
+ * java/nio/LongBufferImpl.java (compact): Likewise.
+ * java/nio/ShortBufferImpl.java (compact): Likewise.
+
+2005-02-17 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/nio/ByteBufferImpl.java,
+ java/nio/CharBufferImpl.java,
+ java/nio/DirectByteBufferImpl.java,
+ java/nio/DoubleBufferImpl.java,
+ java/nio/FloatBufferImpl.java,
+ java/nio/IntBufferImpl.java,
+ java/nio/LongBufferImpl.java,
+ java/nio/MappedByteBufferImpl.java,
+ java/nio/ShortBufferImpl.java
+ (compact): Added explicit read-only check and invalidate mark.
+
+2005-02-17 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
+ gnu/java/awt/peer/gtk/GdkFontPeer.java,
+ gnu/java/awt/peer/gtk/GdkGlyphVector.java,
+ gnu/java/awt/peer/gtk/GdkGraphics.java,
+ gnu/java/awt/peer/gtk/GdkGraphics2D.java,
+ gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java,
+ gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+ gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
+ gnu/java/awt/peer/gtk/GdkRobotPeer.java,
+ gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
+ gnu/java/awt/peer/gtk/GdkTextLayout.java,
+ gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java,
+ gnu/java/awt/peer/gtk/GtkChoicePeer.java,
+ gnu/java/awt/peer/gtk/GtkClipboard.java,
+ gnu/java/awt/peer/gtk/GtkComponentPeer.java,
+ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
+ gnu/java/awt/peer/gtk/GtkFontPeer.java,
+ gnu/java/awt/peer/gtk/GtkLabelPeer.java,
+ gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,
+ gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
+ gnu/java/awt/peer/gtk/GtkMenuPeer.java,
+ gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
+ gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
+ gnu/java/awt/peer/gtk/GtkToolkit.java,
+ gnu/java/awt/peer/gtk/GtkWindowPeer.java,
+ java/applet/Applet.java,
+ java/awt/AWTError.java,
+ java/awt/AWTEvent.java,
+ java/awt/AWTEventMulticaster.java,
+ java/awt/AWTException.java,
+ java/awt/AWTKeyStroke.java,
+ java/awt/AWTPermission.java,
+ java/awt/ActiveEvent.java,
+ java/awt/Adjustable.java,
+ java/awt/AlphaComposite.java,
+ java/awt/AttributeValue.java,
+ java/awt/BorderLayout.java,
+ java/awt/BufferCapabilities.java,
+ java/awt/Button.java,
+ java/awt/Canvas.java,
+ java/awt/CheckboxGroup.java,
+ java/awt/CheckboxMenuItem.java,
+ java/awt/Color.java,
+ java/awt/ColorPaintContext.java,
+ java/awt/Component.java,
+ java/awt/ComponentOrientation.java,
+ java/awt/Composite.java,
+ java/awt/CompositeContext.java,
+ java/awt/Container.java,
+ java/awt/ContainerOrderFocusTraversalPolicy.java,
+ java/awt/DefaultFocusTraversalPolicy.java,
+ java/awt/Dialog.java,
+ java/awt/Dimension.java,
+ java/awt/DisplayMode.java,
+ java/awt/EventQueue.java,
+ java/awt/FileDialog.java,
+ java/awt/FontFormatException.java,
+ java/awt/Graphics.java,
+ java/awt/Graphics2D.java,
+ java/awt/GraphicsConfigTemplate.java,
+ java/awt/GraphicsConfiguration.java,
+ java/awt/GraphicsDevice.java,
+ java/awt/GridBagLayout.java,
+ java/awt/GridBagLayoutInfo.java,
+ java/awt/GridLayout.java,
+ java/awt/HeadlessException.java,
+ java/awt/IllegalComponentStateException.java,
+ java/awt/Image.java,
+ java/awt/Insets.java,
+ java/awt/ItemSelectable.java,
+ java/awt/JobAttributes.java,
+ java/awt/KeyEventDispatcher.java,
+ java/awt/KeyEventPostProcessor.java,
+ java/awt/KeyboardFocusManager.java,
+ java/awt/Label.java,
+ java/awt/LayoutManager.java,
+ java/awt/MenuBar.java,
+ java/awt/MenuComponent.java,
+ java/awt/MenuContainer.java,
+ java/awt/PageAttributes.java,
+ java/awt/Paint.java,
+ java/awt/PaintContext.java,
+ java/awt/Panel.java,
+ java/awt/Point.java,
+ java/awt/Polygon.java,
+ java/awt/PrintGraphics.java,
+ java/awt/PrintJob.java,
+ java/awt/Rectangle.java,
+ java/awt/RenderingHints.java,
+ java/awt/Shape.java,
+ java/awt/Stroke.java,
+ java/awt/SystemColor.java,
+ java/awt/Toolkit.java,
+ java/awt/Transparency.java,
+ java/awt/Window.java,
+ java/awt/color/CMMException.java,
+ java/awt/color/ColorSpace.java,
+ java/awt/color/ICC_ColorSpace.java,
+ java/awt/color/ICC_Profile.java,
+ java/awt/color/ProfileDataException.java,
+ java/awt/datatransfer/FlavorTable.java,
+ java/awt/datatransfer/MimeTypeParseException.java,
+ java/awt/datatransfer/Transferable.java,
+ java/awt/datatransfer/UnsupportedFlavorException.java,
+ java/awt/dnd/Autoscroll.java,
+ java/awt/dnd/DnDConstants.java,
+ java/awt/dnd/DragGestureListener.java,
+ java/awt/dnd/DragSourceAdapter.java,
+ java/awt/dnd/DragSourceDropEvent.java,
+ java/awt/dnd/DragSourceListener.java,
+ java/awt/dnd/DragSourceMotionListener.java,
+ java/awt/dnd/DropTargetAdapter.java,
+ java/awt/dnd/DropTargetContext.java,
+ java/awt/dnd/DropTargetListener.java,
+ java/awt/dnd/InvalidDnDOperationException.java,
+ java/awt/dnd/MouseDragGestureRecognizer.java,
+ java/awt/dnd/peer/DropTargetContextPeer.java,
+ java/awt/event/AWTEventListener.java,
+ java/awt/event/AWTEventListenerProxy.java,
+ java/awt/event/ActionEvent.java,
+ java/awt/event/AdjustmentEvent.java,
+ java/awt/event/AdjustmentListener.java,
+ java/awt/event/ComponentAdapter.java,
+ java/awt/event/ComponentEvent.java,
+ java/awt/event/ComponentListener.java,
+ java/awt/event/ContainerAdapter.java,
+ java/awt/event/ContainerEvent.java,
+ java/awt/event/ContainerListener.java,
+ java/awt/event/FocusAdapter.java,
+ java/awt/event/FocusEvent.java,
+ java/awt/event/FocusListener.java,
+ java/awt/event/InputEvent.java,
+ java/awt/event/InputMethodEvent.java,
+ java/awt/event/InputMethodListener.java,
+ java/awt/event/InvocationEvent.java,
+ java/awt/event/ItemEvent.java,
+ java/awt/event/ItemListener.java,
+ java/awt/event/KeyAdapter.java,
+ java/awt/event/KeyEvent.java,
+ java/awt/event/KeyListener.java,
+ java/awt/event/MouseAdapter.java,
+ java/awt/event/MouseEvent.java,
+ java/awt/event/MouseListener.java,
+ java/awt/event/MouseMotionAdapter.java,
+ java/awt/event/MouseMotionListener.java,
+ java/awt/event/MouseWheelEvent.java,
+ java/awt/event/MouseWheelListener.java,
+ java/awt/event/PaintEvent.java,
+ java/awt/event/TextEvent.java,
+ java/awt/event/TextListener.java,
+ java/awt/event/WindowAdapter.java,
+ java/awt/event/WindowEvent.java,
+ java/awt/event/WindowFocusListener.java,
+ java/awt/event/WindowListener.java,
+ java/awt/event/WindowStateListener.java,
+ java/awt/font/TextHitInfo.java,
+ java/awt/geom/CubicCurve2D.java,
+ java/awt/geom/Dimension2D.java,
+ java/awt/geom/Ellipse2D.java,
+ java/awt/geom/IllegalPathStateException.java,
+ java/awt/geom/Line2D.java,
+ java/awt/geom/NoninvertibleTransformException.java,
+ java/awt/geom/PathIterator.java,
+ java/awt/geom/Point2D.java,
+ java/awt/geom/QuadCurve2D.java,
+ java/awt/geom/RectangularShape.java,
+ java/awt/geom/RoundRectangle2D.java,
+ java/awt/im/InputContext.java,
+ java/awt/im/InputMethodHighlight.java,
+ java/awt/im/InputMethodRequests.java,
+ java/awt/im/InputSubset.java,
+ java/awt/im/spi/InputMethod.java,
+ java/awt/im/spi/InputMethodDescriptor.java,
+ java/awt/image/BandCombineOp.java,
+ java/awt/image/BandedSampleModel.java,
+ java/awt/image/ByteLookupTable.java,
+ java/awt/image/ComponentSampleModel.java,
+ java/awt/image/DataBuffer.java,
+ java/awt/image/DataBufferByte.java,
+ java/awt/image/DataBufferDouble.java,
+ java/awt/image/DataBufferFloat.java,
+ java/awt/image/DataBufferInt.java,
+ java/awt/image/DataBufferShort.java,
+ java/awt/image/DataBufferUShort.java,
+ java/awt/image/ImagingOpException.java,
+ java/awt/image/Kernel.java,
+ java/awt/image/LookupTable.java,
+ java/awt/image/MultiPixelPackedSampleModel.java,
+ java/awt/image/PackedColorModel.java,
+ java/awt/image/PixelInterleavedSampleModel.java,
+ java/awt/image/RGBImageFilter.java,
+ java/awt/image/Raster.java,
+ java/awt/image/RasterFormatException.java,
+ java/awt/image/SampleModel.java,
+ java/awt/image/ShortLookupTable.java,
+ java/awt/image/SinglePixelPackedSampleModel.java,
+ java/awt/image/WritableRaster.java,
+ java/awt/print/PrinterAbortException.java,
+ java/awt/print/PrinterException.java,
+ java/awt/print/PrinterIOException.java,
+ java/beans/AppletInitializer.java,
+ java/beans/ExceptionListener.java,
+ java/beans/PropertyChangeEvent.java,
+ java/beans/PropertyChangeListenerProxy.java,
+ java/beans/PropertyChangeSupport.java,
+ java/beans/PropertyDescriptor.java,
+ java/beans/VetoableChangeListenerProxy.java,
+ java/beans/VetoableChangeSupport.java,
+ java/io/BufferedReader.java,
+ java/io/ByteArrayInputStream.java,
+ java/io/ByteArrayOutputStream.java,
+ java/io/CharArrayReader.java,
+ java/io/CharArrayWriter.java,
+ java/io/CharConversionException.java,
+ java/io/DataInput.java,
+ java/io/DataInputStream.java,
+ java/io/DataOutput.java,
+ java/io/DataOutputStream.java,
+ java/io/EOFException.java,
+ java/io/FileInputStream.java,
+ java/io/FileNotFoundException.java,
+ java/io/FileOutputStream.java,
+ java/io/FilenameFilter.java,
+ java/io/FilterInputStream.java,
+ java/io/FilterOutputStream.java,
+ java/io/FilterReader.java,
+ java/io/FilterWriter.java,
+ java/io/IOException.java,
+ java/io/InputStream.java,
+ java/io/InterruptedIOException.java,
+ java/io/LineNumberInputStream.java,
+ java/io/LineNumberReader.java,
+ java/io/ObjectInputStream.java,
+ java/io/ObjectStreamException.java,
+ java/io/OptionalDataException.java,
+ java/io/OutputStream.java,
+ java/io/OutputStreamWriter.java,
+ java/io/PrintStream.java,
+ java/io/PrintWriter.java,
+ java/io/PushbackInputStream.java,
+ java/io/PushbackReader.java,
+ java/io/RandomAccessFile.java,
+ java/io/Reader.java,
+ java/io/SequenceInputStream.java,
+ java/io/Serializable.java,
+ java/io/StreamCorruptedException.java,
+ java/io/StreamTokenizer.java,
+ java/io/StringBufferInputStream.java,
+ java/io/StringWriter.java,
+ java/io/SyncFailedException.java,
+ java/io/UTFDataFormatException.java,
+ java/io/UnsupportedEncodingException.java,
+ java/io/WriteAbortedException.java,
+ java/io/Writer.java,
+ java/lang/AbstractMethodError.java,
+ java/lang/ArithmeticException.java,
+ java/lang/ArrayIndexOutOfBoundsException.java,
+ java/lang/ArrayStoreException.java,
+ java/lang/AssertionError.java,
+ java/lang/Boolean.java,
+ java/lang/Byte.java,
+ java/lang/Class.java,
+ java/lang/ClassCastException.java,
+ java/lang/ClassCircularityError.java,
+ java/lang/ClassLoader.java,
+ java/lang/ClassNotFoundException.java,
+ java/lang/CloneNotSupportedException.java,
+ java/lang/Cloneable.java,
+ java/lang/Comparable.java,
+ java/lang/Compiler.java,
+ java/lang/Double.java,
+ java/lang/Error.java,
+ java/lang/Exception.java,
+ java/lang/ExceptionInInitializerError.java,
+ java/lang/Float.java,
+ java/lang/IllegalAccessError.java,
+ java/lang/IllegalAccessException.java,
+ java/lang/IllegalArgumentException.java,
+ java/lang/IllegalMonitorStateException.java,
+ java/lang/IllegalStateException.java,
+ java/lang/IllegalThreadStateException.java,
+ java/lang/IncompatibleClassChangeError.java,
+ java/lang/IndexOutOfBoundsException.java,
+ java/lang/InheritableThreadLocal.java,
+ java/lang/InstantiationError.java,
+ java/lang/InstantiationException.java,
+ java/lang/Integer.java,
+ java/lang/InternalError.java,
+ java/lang/InterruptedException.java,
+ java/lang/LinkageError.java,
+ java/lang/Long.java,
+ java/lang/NegativeArraySizeException.java,
+ java/lang/NoClassDefFoundError.java,
+ java/lang/NoSuchFieldError.java,
+ java/lang/NoSuchFieldException.java,
+ java/lang/NoSuchMethodError.java,
+ java/lang/NoSuchMethodException.java,
+ java/lang/NullPointerException.java,
+ java/lang/Number.java,
+ java/lang/NumberFormatException.java,
+ java/lang/OutOfMemoryError.java,
+ java/lang/Process.java,
+ java/lang/Runnable.java,
+ java/lang/Runtime.java,
+ java/lang/RuntimeException.java,
+ java/lang/RuntimePermission.java,
+ java/lang/SecurityException.java,
+ java/lang/SecurityManager.java,
+ java/lang/Short.java,
+ java/lang/StackOverflowError.java,
+ java/lang/StackTraceElement.java,
+ java/lang/StringBuffer.java,
+ java/lang/StringIndexOutOfBoundsException.java,
+ java/lang/ThreadDeath.java,
+ java/lang/ThreadGroup.java,
+ java/lang/Throwable.java,
+ java/lang/UnsatisfiedLinkError.java,
+ java/lang/UnsupportedOperationException.java,
+ java/lang/VerifyError.java,
+ java/lang/VirtualMachineError.java,
+ java/lang/reflect/AccessibleObject.java,
+ java/lang/reflect/Array.java,
+ java/lang/reflect/InvocationTargetException.java,
+ java/lang/reflect/Member.java,
+ java/lang/reflect/Modifier.java,
+ java/lang/reflect/Proxy.java,
+ java/lang/reflect/ReflectPermission.java,
+ java/lang/reflect/UndeclaredThrowableException.java,
+ java/math/BigInteger.java,
+ java/net/NetworkInterface.java,
+ java/nio/ByteBufferHelper.java,
+ java/nio/ByteBufferImpl.java,
+ java/nio/DirectByteBufferImpl.java,
+ java/nio/DoubleBufferImpl.java,
+ java/nio/FloatBufferImpl.java,
+ java/nio/IntBufferImpl.java,
+ java/nio/LongBufferImpl.java,
+ java/nio/ShortBufferImpl.java,
+ java/nio/channels/Channel.java,
+ java/nio/channels/IllegalBlockingModeException.java,
+ java/nio/charset/spi/CharsetProvider.java,
+ java/security/AccessControlException.java,
+ java/security/BasicPermission.java,
+ java/security/DigestException.java,
+ java/security/DigestInputStream.java,
+ java/security/DigestOutputStream.java,
+ java/security/GeneralSecurityException.java,
+ java/security/Guard.java,
+ java/security/GuardedObject.java,
+ java/security/InvalidAlgorithmParameterException.java,
+ java/security/InvalidKeyException.java,
+ java/security/InvalidParameterException.java,
+ java/security/Key.java,
+ java/security/KeyException.java,
+ java/security/KeyManagementException.java,
+ java/security/KeyStoreException.java,
+ java/security/MessageDigestSpi.java,
+ java/security/NoSuchAlgorithmException.java,
+ java/security/NoSuchProviderException.java,
+ java/security/Permission.java,
+ java/security/PermissionCollection.java,
+ java/security/Permissions.java,
+ java/security/Principal.java,
+ java/security/PrivateKey.java,
+ java/security/PrivilegedActionException.java,
+ java/security/ProviderException.java,
+ java/security/PublicKey.java,
+ java/security/SecureRandom.java,
+ java/security/SecureRandomSpi.java,
+ java/security/SignatureException.java,
+ java/security/SignatureSpi.java,
+ java/security/SignedObject.java,
+ java/security/Signer.java,
+ java/security/UnrecoverableKeyException.java,
+ java/security/UnresolvedPermission.java,
+ java/security/acl/AclNotFoundException.java,
+ java/security/acl/LastOwnerException.java,
+ java/security/acl/NotOwnerException.java,
+ java/security/cert/CertPath.java,
+ java/security/cert/CertPathBuilderException.java,
+ java/security/cert/CertPathValidatorException.java,
+ java/security/cert/CertStoreException.java,
+ java/text/BreakIterator.java,
+ java/text/ChoiceFormat.java,
+ java/text/CollationElementIterator.java,
+ java/text/CollationKey.java,
+ java/text/Collator.java,
+ java/text/DateFormat.java,
+ java/text/DateFormatSymbols.java,
+ java/text/DecimalFormat.java,
+ java/text/DecimalFormatSymbols.java,
+ java/text/FieldPosition.java,
+ java/text/Format.java,
+ java/text/NumberFormat.java,
+ java/text/ParseException.java,
+ java/text/ParsePosition.java,
+ java/text/StringCharacterIterator.java,
+ java/util/AbstractCollection.java,
+ java/util/AbstractList.java,
+ java/util/AbstractMap.java,
+ java/util/AbstractSequentialList.java,
+ java/util/AbstractSet.java,
+ java/util/ArrayList.java,
+ java/util/Arrays.java,
+ java/util/BitSet.java,
+ java/util/Collection.java,
+ java/util/Collections.java,
+ java/util/Comparator.java,
+ java/util/ConcurrentModificationException.java,
+ java/util/Currency.java,
+ java/util/Date.java,
+ java/util/EmptyStackException.java,
+ java/util/Enumeration.java,
+ java/util/EventListener.java,
+ java/util/EventListenerProxy.java,
+ java/util/EventObject.java,
+ java/util/HashMap.java,
+ java/util/HashSet.java,
+ java/util/Hashtable.java,
+ java/util/IdentityHashMap.java,
+ java/util/Iterator.java,
+ java/util/LinkedHashSet.java,
+ java/util/LinkedList.java,
+ java/util/List.java,
+ java/util/ListIterator.java,
+ java/util/ListResourceBundle.java,
+ java/util/Map.java,
+ java/util/MissingResourceException.java,
+ java/util/NoSuchElementException.java,
+ java/util/Observable.java,
+ java/util/Observer.java,
+ java/util/Properties.java,
+ java/util/PropertyPermissionCollection.java,
+ java/util/RandomAccess.java,
+ java/util/Set.java,
+ java/util/SortedMap.java,
+ java/util/SortedSet.java,
+ java/util/Stack.java,
+ java/util/StringTokenizer.java,
+ java/util/TooManyListenersException.java,
+ java/util/TreeMap.java,
+ java/util/TreeSet.java,
+ java/util/Vector.java,
+ java/util/logging/FileHandler.java,
+ java/util/logging/Level.java,
+ java/util/prefs/BackingStoreException.java,
+ java/util/prefs/InvalidPreferencesFormatException.java,
+ java/util/prefs/Preferences.java,
+ javax/accessibility/Accessible.java,
+ javax/accessibility/AccessibleAction.java,
+ javax/accessibility/AccessibleBundle.java,
+ javax/accessibility/AccessibleComponent.java,
+ javax/accessibility/AccessibleContext.java,
+ javax/accessibility/AccessibleEditableText.java,
+ javax/accessibility/AccessibleExtendedComponent.java,
+ javax/accessibility/AccessibleExtendedTable.java,
+ javax/accessibility/AccessibleHyperlink.java,
+ javax/accessibility/AccessibleHypertext.java,
+ javax/accessibility/AccessibleIcon.java,
+ javax/accessibility/AccessibleKeyBinding.java,
+ javax/accessibility/AccessibleRelation.java,
+ javax/accessibility/AccessibleRelationSet.java,
+ javax/accessibility/AccessibleResourceBundle.java,
+ javax/accessibility/AccessibleRole.java,
+ javax/accessibility/AccessibleSelection.java,
+ javax/accessibility/AccessibleState.java,
+ javax/accessibility/AccessibleStateSet.java,
+ javax/accessibility/AccessibleTable.java,
+ javax/accessibility/AccessibleTableModelChange.java,
+ javax/accessibility/AccessibleText.java,
+ javax/accessibility/AccessibleValue.java,
+ javax/imageio/IIOException.java,
+ javax/imageio/ImageIO.java,
+ javax/imageio/spi/IIOServiceProvider.java,
+ javax/imageio/spi/ImageInputStreamSpi.java,
+ javax/imageio/spi/ImageOutputStreamSpi.java,
+ javax/imageio/spi/ImageReaderWriterSpi.java,
+ javax/imageio/spi/ImageTranscoderSpi.java,
+ javax/imageio/spi/RegisterableService.java,
+ javax/imageio/spi/ServiceRegistry.java,
+ javax/imageio/stream/IIOByteBuffer.java,
+ javax/imageio/stream/ImageInputStream.java,
+ javax/imageio/stream/ImageOutputStream.java,
+ javax/naming/Binding.java,
+ javax/naming/CannotProceedException.java,
+ javax/naming/CompositeName.java,
+ javax/naming/CompoundName.java,
+ javax/naming/LinkException.java,
+ javax/naming/LinkRef.java,
+ javax/naming/NameClassPair.java,
+ javax/naming/Reference.java,
+ javax/naming/ReferralException.java,
+ javax/naming/directory/Attribute.java,
+ javax/naming/directory/AttributeModificationException.java,
+ javax/naming/directory/Attributes.java,
+ javax/naming/directory/DirContext.java,
+ javax/naming/directory/ModificationItem.java,
+ javax/naming/directory/SearchControls.java,
+ javax/naming/directory/SearchResult.java,
+ javax/naming/event/EventContext.java,
+ javax/naming/event/EventDirContext.java,
+ javax/naming/event/NamespaceChangeListener.java,
+ javax/naming/event/NamingExceptionEvent.java,
+ javax/naming/event/NamingListener.java,
+ javax/naming/event/ObjectChangeListener.java,
+ javax/naming/ldap/Control.java,
+ javax/naming/ldap/ExtendedResponse.java,
+ javax/naming/ldap/HasControls.java,
+ javax/naming/ldap/LdapContext.java,
+ javax/naming/ldap/UnsolicitedNotification.java,
+ javax/naming/ldap/UnsolicitedNotificationEvent.java,
+ javax/naming/ldap/UnsolicitedNotificationListener.java,
+ javax/naming/spi/DirectoryManager.java,
+ javax/naming/spi/ResolveResult.java,
+ javax/naming/spi/Resolver.java,
+ javax/security/auth/callback/Callback.java,
+ javax/security/auth/callback/CallbackHandler.java,
+ javax/security/auth/callback/ChoiceCallback.java,
+ javax/security/auth/callback/ConfirmationCallback.java,
+ javax/security/auth/callback/LanguageCallback.java,
+ javax/security/auth/callback/NameCallback.java,
+ javax/security/auth/callback/PasswordCallback.java,
+ javax/security/auth/callback/TextInputCallback.java,
+ javax/security/auth/callback/TextOutputCallback.java,
+ javax/security/auth/callback/UnsupportedCallbackException.java,
+ javax/security/sasl/Sasl.java,
+ javax/security/sasl/SaslServerFactory.java,
+ javax/swing/DefaultBoundedRangeModel.java,
+ javax/swing/JComponent.java,
+ javax/swing/JList.java,
+ javax/swing/JProgressBar.java,
+ javax/swing/JRadioButton.java,
+ javax/swing/JTextArea.java,
+ javax/swing/JTextField.java,
+ javax/swing/JToggleButton.java,
+ javax/swing/JTree.java,
+ javax/swing/SpinnerListModel.java,
+ javax/swing/event/EventListenerList.java,
+ javax/swing/text/JTextComponent.java,
+ javax/swing/text/StringContent.java,
+ javax/swing/text/Utilities.java,
+ javax/swing/undo/UndoManager.java,
+ javax/swing/undo/UndoableEditSupport.java,
+ javax/transaction/HeuristicCommitException.java,
+ javax/transaction/HeuristicMixedException.java,
+ javax/transaction/HeuristicRollbackException.java,
+ javax/transaction/InvalidTransactionException.java,
+ javax/transaction/NotSupportedException.java,
+ javax/transaction/RollbackException.java,
+ javax/transaction/Status.java,
+ javax/transaction/Synchronization.java,
+ javax/transaction/SystemException.java,
+ javax/transaction/Transaction.java,
+ javax/transaction/TransactionManager.java,
+ javax/transaction/TransactionRequiredException.java,
+ javax/transaction/TransactionRolledbackException.java,
+ javax/transaction/UserTransaction.java,
+ javax/transaction/xa/XAException.java,
+ javax/transaction/xa/XAResource.java,
+ javax/transaction/xa/Xid.java,
+ javax/xml/XMLConstants.java,
+ javax/xml/datatype/DatatypeConfigurationException.java,
+ javax/xml/datatype/DatatypeConstants.java,
+ javax/xml/datatype/DatatypeFactory.java,
+ javax/xml/datatype/Duration.java,
+ javax/xml/datatype/XMLGregorianCalendar.java,
+ javax/xml/namespace/NamespaceContext.java,
+ javax/xml/namespace/QName.java,
+ javax/xml/parsers/DocumentBuilder.java,
+ javax/xml/parsers/DocumentBuilderFactory.java,
+ javax/xml/parsers/FactoryConfigurationError.java,
+ javax/xml/parsers/ParserConfigurationException.java,
+ javax/xml/parsers/SAXParser.java,
+ javax/xml/parsers/SAXParserFactory.java,
+ javax/xml/transform/ErrorListener.java,
+ javax/xml/transform/OutputKeys.java,
+ javax/xml/transform/Result.java,
+ javax/xml/transform/Source.java,
+ javax/xml/transform/SourceLocator.java,
+ javax/xml/transform/Templates.java,
+ javax/xml/transform/Transformer.java,
+ javax/xml/transform/TransformerConfigurationException.java,
+ javax/xml/transform/TransformerException.java,
+ javax/xml/transform/TransformerFactory.java,
+ javax/xml/transform/TransformerFactoryConfigurationError.java,
+ javax/xml/transform/URIResolver.java,
+ javax/xml/transform/dom/DOMLocator.java,
+ javax/xml/transform/dom/DOMResult.java,
+ javax/xml/transform/dom/DOMSource.java,
+ javax/xml/transform/sax/SAXResult.java,
+ javax/xml/transform/sax/SAXSource.java,
+ javax/xml/transform/sax/SAXTransformerFactory.java,
+ javax/xml/transform/sax/TemplatesHandler.java,
+ javax/xml/transform/sax/TransformerHandler.java,
+ javax/xml/transform/stream/StreamResult.java,
+ javax/xml/transform/stream/StreamSource.java,
+ javax/xml/validation/Schema.java,
+ javax/xml/validation/SchemaFactory.java,
+ javax/xml/validation/TypeInfoProvider.java,
+ javax/xml/validation/Validator.java,
+ javax/xml/validation/ValidatorHandler.java,
+ javax/xml/xpath/XPathConstants.java,
+ javax/xml/xpath/XPathException.java,
+ javax/xml/xpath/XPathExpression.java,
+ javax/xml/xpath/XPathExpressionException.java,
+ javax/xml/xpath/XPathFactory.java,
+ javax/xml/xpath/XPathFactoryConfigurationException.java,
+ javax/xml/xpath/XPathFunction.java,
+ javax/xml/xpath/XPathFunctionException.java,
+ javax/xml/xpath/XPathFunctionResolver.java:
+ Fixed usage of @author tag, reworked import statements,
+ removed CVS tags, changed the modifier order and fixed
+ HTML usage in javadocs.
+
+2005-02-16 Julian Scheid <julian@sektor37.de>
+
+ * gnu/java/nio/charset/UTF_8.java (decodeLoop): Set inPos to
+ in.position().
+ (encodeLoop): Likewise.
+
+2005-02-16 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (ordinary_java_source_files): Add new files
+ gnu/java/security/ber/BER.java,
+ gnu/java/security/ber/BEREncodingException.java,
+ gnu/java/security/ber/BERReader.java,
+ gnu/java/security/ber/BERValue.java,
+ gnu/java/security/pkcs/PKCS7SignedData.java and
+ gnu/java/security/pkcs/SignerInfo.java.
+ * Makefile.in: Regenerated.
+
+2005-02-16 Casey Marshall <csm@gnu.org>
+
+ * gnu/java/security/provider/GnuDSAPrivateKey.java
+ (encodedKey): new field.
+ (getFormat): return "PKCS#8".
+ (getEncoded): implemented.
+ (toString): check for 'null' values.
+ * gnu/java/security/provider/GnuDSAPublicKey.java
+ (encodedKey): new field.
+ (getFormat): return "X.509".
+ (getEncoded): implemented.
+ (toString): check for 'null' values.
+
+2005-02-16 Michael Koch <konqueror@gmx.de>
+
+ * java/util/jar/JarFile.java: Imports reworked.
+
+2005-02-16 Mark Wielaard <mark@klomp.org>
+
+ * java/util/jar/JarFile.java (verify): Make package private.
+ (signaturesRead): Likewise.
+ (verified): Likewise.
+ (entryCerts): Likewise.
+ (DEBUG): Likewise.
+ (debug): Likewise.
+ (entries): Construct new JarEnumeration with reference to this.
+ (JarEnumeration): Make static.
+ (JarEnumeration.jarfile): New field.
+ (JarEnumeration.nextElement): Use and synchronize on jarfile.
+ Compare verified value to Boolean.TRUE or Boolean.False only
+ when verify is true.
+ (getEntry): Make synchronized. Compare value of verified to
+ Boolean.TRUE.
+ (getInputStream): Construct EntryInputStream with reference to this.
+ (getManifest): Make synchronized.
+ (EntryInputStream): Make static.
+ (EntryInputStream.jarfile): New field.
+ (EntryInputStream.EntryInputStream): Check if manifest exists,
+ before getting attributes.
+ (eof): Synchronize on jarfile.
+
+2005-02-16 Casey Marshall <csm@gnu.org>
+
+ * java/util/jar/JarFile.java (verify): return if the jar is signed
+ with an unsupported algorithm.
+
+2005-02-16 Mark Wielaard <mark@klomp.org>
+
+ * java/util/jar/JarFile.java (EntryInputStream): Add actual
+ InputStream as argument.
+ (getInputStream): Construct a new EntryInputStream with the result of
+ super.getInputStream(entry).
+
+2005-02-16 Casey Marshall <csm@gnu.org>
+
+ Signed JAR file support.
+ * java/net/URLClassLoader.java
+ (JarURLResource.getCertificates): re-read jar entry to ensure
+ certificates are picked up.
+ (findClass): fill in class `signers' field, too.
+ * java/util/jar/JarFile.java (META_INF): new constant.
+ (PKCS7_DSA_SUFFIX): new constant.
+ (PKCS7_RSA_SUFFIX): new constant.
+ (DIGEST_KEY_SUFFIX): new constant.
+ (SF_SUFFIX): new constant.
+ (MD2_OID): new constant.
+ (MD4_OID): new constant.
+ (MD5_OID): new constant.
+ (SHA1_OID): new constant.
+ (DSA_ENCRYPTION_OID): new constant.
+ (RSA_ENCRYPTION_OID): new constant.
+ (signaturesRead): new field.
+ (verified): new field.
+ (entryCerts): new field.
+ (DEBUG): new constant.
+ (debug): new method.
+ (JarEnumeration.nextElement): fill in entry certificates, read
+ signatures if they haven't been read.
+ (getEntry): likewise.
+ (getInputStream): verify stream if it hasn't been verified yet.
+ (readSignatures): new method.
+ (verify): new method.
+ (verifyHashes): new method.
+ (readManifestEntry): new method.
+ (EntryInputStream): new class.
+ * gnu/java/io/Base64InputStream.java (decode): new class
+ method.
+ * gnu/java/security/der/DERReader.java don't make class
+ final.
+ (in): made protected.
+ (encBuf): likewise.
+ (readLength): likewise.
+ * gnu/java/security/ber/BER.java,
+ * gnu/java/security/ber/BEREncodingException.java,
+ * gnu/java/security/ber/BERReader.java,
+ * gnu/java/security/ber/BERValue.java,
+ * gnu/java/security/pkcs/PKCS7SignedData.java,
+ * gnu/java/security/pkcs/SignerInfo.java:
+ new files.
+
+2005-02-16 Tom Tromey <tromey@redhat.com>
+
+ * gnu/gcj/runtime/SharedLibHelper.java (findHelper): Delete
+ copied file on exit.
+
+2005-02-15 Mark Wielaard <mark@klomp.org>
+
+ * java/awt/BasicStroke.java (hashCode): Check for null dash.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GtkArg.java,
+ gnu/java/awt/peer/gtk/GtkArgList.java:
+ Removed.
+
+2005-02-15 Craig Black <craig.black@aonix.com>
+
+ * gnu/java/awt/peer/gtk/GtkCheckboxMenuItem.java
+ (postMenuActionEvent): Implement to notify ItemListeners.
+ * java/awt/CheckboxMenuItem.java
+ (dispatchEventImpl): Update state on ItemEvent.
+ * java/awt/MenuItem.java
+ (processActionEvent): Retarget event source.
+
+2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/awt/color/ClutProfileConverter.java,
+ gnu/java/awt/peer/ClasspathTextLayoutPeer.java,
+ gnu/java/awt/peer/gtk/GdkFontPeer.java,
+ gnu/java/awt/peer/gtk/GdkGlyphVector.java,
+ gnu/java/awt/peer/gtk/GdkGraphics2D.java,
+ gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+ gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
+ gnu/java/awt/peer/gtk/GdkRobotPeer.java,
+ gnu/java/awt/peer/gtk/GdkTextLayout.java,
+ gnu/java/awt/peer/gtk/GtkButtonPeer.java,
+ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
+ gnu/java/awt/peer/gtk/GtkChoicePeer.java,
+ gnu/java/awt/peer/gtk/GtkComponentPeer.java,
+ gnu/java/awt/peer/gtk/GtkContainerPeer.java,
+ gnu/java/awt/peer/gtk/GtkDialogPeer.java,
+ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
+ gnu/java/awt/peer/gtk/GtkFontPeer.java,
+ gnu/java/awt/peer/gtk/GtkFramePeer.java,
+ gnu/java/awt/peer/gtk/GtkLabelPeer.java,
+ gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
+ gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
+ gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
+ gnu/java/awt/peer/gtk/GtkTextComponentPeer.java,
+ gnu/java/awt/peer/gtk/GtkToolkit.java,
+ gnu/java/awt/peer/gtk/GtkWindowPeer.java,
+ javax/swing/JPopupMenu.java,
+ javax/swing/JSpinner.java,
+ javax/swing/SortingFocusTraversalPolicy.java,
+ javax/swing/SwingUtilities.java,
+ javax/swing/plaf/basic/BasicComboBoxEditor.java,
+ javax/swing/plaf/basic/BasicComboBoxRenderer.java,
+ javax/swing/tree/DefaultMutableTreeNode.java:
+ Removed unused imports and expanded starred
+ imports.
+
+2005-02-15 Mark Wielaard <mark@klomp.org>
+
+ * java/awt/AWTKeyStroke.java (getAWTKeyStroke(String)): Throw
+ IllegalArgumentException when the given String is null.
+
+ * javax/swing/KeyStroke.java (getKeyStroke(String)): Return null
+ when given keystoke sequence cannot be parsed.
+
+ * javax/swing/JRootPane.java (setJMenuBar): Remove current menubar
+ if one is installed. Only install the given menubar is not null.
+
+ * javax/swing/JViewport.java (getViewSize): Return an empty
+ Dimension when the view isn't set or preferred component size when
+ no viewSize is set.
+
+ * javax/swing/ViewportLayout.java (preferredLayoutSize): Return an
+ empty Dimension when there is no view set.
+ (minimumLayoutSize): Likewise.
+ (layoutContainer): Don't try to layout when there is no view.
+
+2005-02-15 Anthony Green <green@redhat.com>
+
+ * jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_drawable,
+ classpath_jawt_lock, classpath_jawt_unlock): New functions.
+ * jawt.c (_Jv_JAWT_Lock, _Jv_JAWT_Unlock): New functions.
+ (_Jv_GetDrawingSurface): Set visualID.
+ (_Jv_FreeDrawingSurfaceInfo): Clear visualID.
+ (JAWT_GetAWT): Set Lock and Unlock.
+ * include/jawt_md.h (struct _JAWT_X11DrawingSurfaceInfo): Add visualID.
+ * include/jawt.h (JAWT_VERSION_1_4, JAWT_LOCK_ERROR,
+ JAWT_LOCK_CLIP_CHANGED, JAWT_LOCK_BOUNDS_CHANGED,
+ JAWT_LOCK_SURFACE_CHANGED): New macros.
+ (struct _JAWT): Add Lock and Unlock.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * jawt.c: New file.
+ * include/jawt.h: Likewise.
+ * include/jawt_md.h: Likewise.
+ * include/Makefile.am (tool_include__HEADERS): Add jawt.h and
+ jawt_md.h files.
+ * jni/classpath/classpath_jawt.h: Likewise.
+ * jni/gtk-peer/gtk_jawt.c: Likewise.
+ * Makefile.am: Build libjawt.so.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java:
+ Merged file header with classpath CVS head.
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
+ Merged code formatting with classpath CVS head.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:
+ Removed debug code.
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
+ Handle special JNI strings with 2 '\0' at the end.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
+ Merged file header with classpath CVS head.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
+ Merged code formatting with classpath CVS head.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c (create):
+ Use GTK's built-in file system backend. Use GTK_RESPONSE_ACCEPT.
+ (handle_response): Use GTK_RESPONSE_ACCEPT.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * Makefile.am: Fix library build breakage.
+ * Makefile.in: Regenerate.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTabbedPane.java
+ (Page.setDisplayedMnemonicIndex): Handle empty menmonic.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/tree/DefaultMutableTreeNode.java:
+ Reworked Javadocs all over.
+ (getPathToRoot): Fixed direction of result array initialization.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
+ Fix includes for cairo 0.3.0 snappshot.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
+ Merged file header from classpath CVS HEAD.
+
+2005-02-15 Craig Black <craig.black@aonix.com>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
+ (copyState): Pass a JNI global reference to signal handler.
+ (realize_cb): Use and free JNI global reference.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+ (create): Pass a JNI global reference to signal handler.
+ (selection_changed): Match declaration.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+ (dispose): Do not remove entries from state tables until after widget is
+ destroyed.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Container.javai (paramString):
+ If layoutMgr is null just return result of super.paramString().
+ * java/awt/Scrollbar.java: Reformatted.
+ * java/awt/im/InputContext.java (static):
+ Removed redundant initializations.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/ImageIcon.java,
+ javax/swing/UIManager.java,
+ javax/swing/text/EditorKit.java,
+ javax/swing/text/Segment.java:
+ More whitespace cleanups.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/EmbeddedWindow.java,
+ gnu/java/awt/image/ImageDecoder.java,
+ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
+ java/awt/DefaultKeyboardFocusManager.java,
+ java/awt/Frame.java,
+ java/awt/image/RGBImageFilter.java,
+ javax/swing/AbstractButton.java,
+ javax/swing/ActionMap.java,
+ javax/swing/ComponentInputMap.java,
+ javax/swing/DefaultDesktopManager.java,
+ javax/swing/ImageIcon.java,
+ javax/swing/InputMap.java,
+ javax/swing/JButton.java,
+ javax/swing/JCheckBox.java,
+ javax/swing/JCheckBoxMenuItem.java,
+ javax/swing/JEditorPane.java,
+ javax/swing/JMenu.java,
+ javax/swing/JMenuItem.java,
+ javax/swing/JOptionPane.java,
+ javax/swing/JRootPane.java,
+ javax/swing/JTable.java,
+ javax/swing/MenuSelectionManager.java,
+ javax/swing/RepaintManager.java,
+ javax/swing/ScrollPaneLayout.java,
+ javax/swing/SortingFocusTraversalPolicy.java,
+ javax/swing/UIManager.java,
+ javax/swing/ViewportLayout.java,
+ javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java,
+ javax/swing/plaf/basic/BasicInternalFrameUI.java,
+ javax/swing/plaf/basic/BasicLabelUI.java,
+ javax/swing/plaf/basic/BasicListUI.java,
+ javax/swing/plaf/basic/BasicMenuItemUI.java,
+ javax/swing/plaf/basic/BasicMenuUI.java,
+ javax/swing/plaf/basic/BasicOptionPaneUI.java,
+ javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
+ javax/swing/plaf/basic/BasicRootPaneUI.java,
+ javax/swing/plaf/basic/BasicScrollPaneUI.java,
+ javax/swing/plaf/basic/BasicSplitPaneDivider.java,
+ javax/swing/plaf/basic/BasicTextUI.java,
+ javax/swing/table/TableColumnModel.java,
+ javax/swing/text/AbstractDocument.java,
+ javax/swing/text/EditorKit.java,
+ javax/swing/text/Position.java,
+ javax/swing/text/Segment.java,
+ javax/swing/text/StyledEditorKit.java,
+ javax/swing/text/ViewFactory.java:
+ Cleanup whitespace differences to classpath CVS HEAD.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
+ (finalize): Call finish from here.
+ (produce): Not from here.
+ * Makefile.am (gtk_c_source_files):
+ Remove jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c.
+ * Makefile.in: Regenerate.
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java
+ (cairoSetFont):
+ (cairoDrawGdkTextLayout):
+ (cairoDrawString):
+ (getPeerTextMetrics):
+ (getPeerFontMetrics): Remove.
+ (setFont): Don't call cairoSetFont.
+ (cairoDrawGlyphVector): Accept font peer argument.
+ (drawGlyphVector): Pass font peer to cairoDrawGlyphVector.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
+ (ensure_metrics_cairo):
+ (gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFont):
+ (gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawString):
+ (gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics):
+ (gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics):
+ (metrics_cairo):
+ (metrics_surface): Remove.
+ (gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector):
+ Pass and install font peer.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * Makefile.am: Create "split library" structure.
+ * Makefile.in: Regenerate.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
+ Release GDK lock during upcalls.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Remove.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics):
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics): New methods.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Remove.
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java
+ (getGlyphVector):
+ (getFontMetrics):
+ (getTextMetrics): New native methods.
+ * gnu/java/awt/peer/gtk/GdkFontMetrics.java: Remove native parts.
+ * gnu/java/awt/peer/gtk/GdkGlyphVector.java: Likewise.
+ * Makefile.am: Remove native entries for GdkFontMetrics, GdkGlyphVector.
+ * Makefile.in: Regenerate.
+
+2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/swing/SwingUtilities.java:
+ (getAccessibleAt(java.awt.Component, java.awt.Point)):
+ Implemented and documented.
+ (getAccessibleChild(java.awt.Component, int)): Likewise.
+ (getAccessibleChildrenCount(java.awt.Component)): Likewise.
+ (getAccessibleIndexInParent(java.awt.Component)): Likewise.
+ (getAccessibleStateSet(java.awt.Component)): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/SwingUtilities.java
+ (getFontMetrics): Removed.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Container.java
+ (paramString): Implemented.
+ * javax/swing/AbstractButton.java
+ (paramString): Implemented.
+ * javax/swing/JComponent.java
+ (paramString): Implemented.
+ * javax/swing/JMenu.java
+ (paramString): Implemented.
+ * javax/swing/JMenuBar.java
+ (paramString): Implemented.
+ * javax/swing/JMenuItem.java
+ (paramString): Implemented.
+ * javax/swing/JPopupMenu.java
+ (paramString): Implemented.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JMenu.java
+ (uiClassID): Removed.
+ (JMenu): Set invoker on popup menu.
+ (getUIClassID): Return id directly.
+ (getItemCount): Simply return getMenuComponentCount().
+ Fixed javadoc.
+ (isTopLevelMenu): Simplified.
+ * javax/swing/JMenuItem.java
+ (uiClassID): Removed.
+ (getUIClassID): Return id directly.
+ * javax/swing/JPopupMenu.java
+ (uiClassID): Removed.
+ (JPopupMenu): Always initialize correctly.
+ (getSubElements): Only return components implementing MenuElement
+ interface.
+ (HeavyWeightPopup.hide): Removed.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/image/ReplicateScaleFilter.java
+ (replicatePixels): Made private.
+ * javax/swing/colorchooser/DefaultRGBChooserPanel.java
+ (DefaultRGBChooserPanel): Made package private.
+ * javax/swing/colorchooser/DefaultSwatchChooserPanel.java
+ (RecentSwatchPanel): Likewise.
+ * javax/swing/event/MouseInputAdapter.java: Reformatted.
+ (MouseInputAdapter): Made abstract.
+ * javax/swing/tree/DefaultMutableTreeNode.java
+ (random): Removed.
+ (growTree): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/dnd/DropTarget.java (addDropTargetListener):
+ Clarified comments.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JComponent.java (getComponentGraphics):
+ Removed accidently commited code.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * java/awt/dnd/DropTarget.java
+ (addDropTargetListener): Despite documentation, do not throw.
+ * javax/swing/JComponent.java: Set a default DropTarget.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/AbstractAction.java
+ (ENABLED_PROPERTY): Removed.
+ (setEnabled): Replaced constant with real string.
+ * javax/swing/AbstractButton.java
+ (createActionPropertyChangeListener.propertyChange): Likewise.
+ * javax/swing/JComboBox.java
+ (DEFAULT_MAXIMUM_ROW_COUNT): Made private.
+ (EDITABLE_CHANGED_PROPERTY): Removed.
+ (MAXIMUM_ROW_COUNT_CHANGED_PROPERTY):Likewise.
+ (ENABLED_CHANGED_PROPERTY):Likewise.
+ (RENDERER_CHANGED_PROPERTY):Likewise.
+ (EDITOR_CHANGED_PROPERTY):Likewise.
+ (MODEL_CHANGED_PROPERTY):Likewise.
+ (uiClassID):Likewise.
+ (getUIClassID): Replaced constant with real string.
+ (setModel):Likewise.
+ (setEditable):Likewise.
+ (setMaximumRowCount):Likewise.
+ (setRenderer):Likewise.
+ (setEditor):Likewise.
+ (setEnabled):Likewise.
+ * javax/swing/JLabel.java
+ (DISABLED_ICON_CHANGED_PROPERTY): Removed.
+ (DISPLAYED_MNEMONIC_CHANGED_PROPERTY): Likewise.
+ (DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY): Likewise.
+ (HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY): Likewise.
+ (HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY): Likewise.
+ (ICON_CHANGED_PROPERTY): Likewise.
+ (ICON_TEXT_GAP_CHANGED_PROPERTY): Likewise.
+ (LABEL_FOR_CHANGED_PROPERTY): Likewise.
+ (TEXT_CHANGED_PROPERTY): Likewise.
+ (VERTICAL_ALIGNMENT_CHANGED_PROPERTY): Likewise.
+ (VERTICAL_TEXT_POSITION_CHANGED_PROPERTY): Likewise.
+ (setText): Replaced constant with real string.
+ (setIcon): Likewise.
+ (setDisabledIcon): Likewise.
+ (setDisplayedMnemonic): Likewise.
+ (setIconTextGap): Likewise.
+ (setVerticalAlignment): Likewise.
+ (setHorizontalAlignment): Likewise.
+ (setVerticalTextPosition): Likewise.
+ (setHorizontalTextPosition): Likewise.
+ (setLabelFor): Replaced constant with real string.
+ Fire property change event after property got changed.
+ * javax/swing/JList.java
+ (CELL_RENDERER_PROPERTY_CHANGED): Likewise.
+ (FIXED_CELL_HEIGHT_PROPERTY_CHANGED): Likewise.
+ (FIXED_CELL_WIDTH_PROPERTY_CHANGED): Likewise.
+ (LAYOUT_ORIENTATION_PROPERTY_CHANGED): Likewise.
+ (MODEL_PROPERTY_CHANGED): Likewise.
+ (PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED): Likewise.
+ (SELECTION_BACKGROUND_PROPERTY_CHANGED): Likewise.
+ (SELECTION_FOREGROUND_PROPERTY_CHANGED): Likewise.
+ (SELECTION_MODEL_PROPERTY_CHANGED): Likewise.
+ (setFixedCellWidth): Reimplemented.
+ (setFixedCellHeight): Exit if new value is identical.
+ Replaced constant with real string.
+ (setSelectionBackground): Likewise.
+ (setSelectionForeground): Likewise.
+ (setPrototypeCellValue): Likewise.
+ (setCellRenderer): Replaced constant with real string.
+ (setModel): Likewise.
+ (setSelectionModel): Likewise.
+ * javax/swing/JMenuBar.java
+ (BORDER_PAINTED_CHANGED_PROPERTY): Removed.
+ (MODEL_CHANGED_PROPERTY): Likewise.
+ (MARGIN_CHANGED_PROPERTY): Likewise.
+ (setBorderPainted): Reimplemented.
+ (setMargin): Likewise.
+ (setSelectionModel): Replaced constant with real string.
+ * javax/swing/JPopupMenu.java
+ (LABEL_CHANGED_PROPERTY): Removed.
+ (VISIBLE_CHANGED_PROPERTY): Likewise.
+ (borderPainted): Likewise.
+ (setLabel): Replaced constant with real string.
+ (setVisible): Exit if new value is identical.
+ Replaced constant with real string.
+ * javax/swing/JProgressBar.java
+ (BORDER_PAINTED_CHANGED_PROPERTY): Removed.
+ (ORIENTATION_CHANGED_PROPERTY): Likewise.
+ (STRING_CHANGED_PROPERTY): Likewise.
+ (STRING_PAINTED_CHANGED_PROPERTY): Likewise.
+ (INDETERMINATE_CHANGED_PROPERTY): Likewise.
+ (setOrientation): Replaced constant with real string.
+ (setStringPainted): Likewise.
+ (setString): Likewise.
+ (setBorderPainted): Likewise.
+ (setIndeterminate): Likewise.
+ * javax/swing/JScrollBar.java
+ (BLOCK_INCREMENT_CHANGED_PROPERTY): Removed.
+ (MODEL_CHANGED_PROPERTY): Likewise.
+ (ORIENTATION_CHANGED_PROPERTY): Likewise.
+ (setOrientation): Replaced constant with real string.
+ (setModel): Likewise.
+ (setUnitIncrement): Likewise.
+ (setBlockIncrement): Likewise.
+ * javax/swing/JScrollPane.java
+ (COLUMN_HEADER_CHANGED_PROPERTY): Removed.
+ (COMPONENT_ORIENTATION_CHANGED_PROPERTY): Likewise.
+ (HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY): Likewise.
+ (HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY): Likewise.
+ (LAYOUT_CHANGED_PROPERTY): Likewise.
+ (ROW_HEADER_CHANGED_PROPERTY): Likewise.
+ (VERTICAL_SCROLLBAR_CHANGED_PROPERTY): Likewise.
+ (VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY): Likewise.
+ (VIEWPORT_CHANGED_PROPERTY): Likewise.
+ (VIEWPORT_BORDER_CHANGED_PROPERTY): Likewise.
+ (WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY): Likewise.
+ (setComponentOrientation): Replaced constant with real string.
+ (setColumnHeader): Likewise.
+ (setHorizontalScrollBar): Likewise.
+ (setHorizontalScrollBarPolicy): Likewise.
+ (setRowHeader): Likewise.
+ (setVerticalScrollBar): Likewise.
+ (setVerticalScrollBarPolicy): Likewise.
+ (setWheelScrollingEnabled): Likewise.
+ (setViewport): Likewise.
+ (setViewportBorder): Likewise.
+ * javax/swing/JSlider.java
+ (INVERTED_CHANGED_PROPERTY): Removed.
+ (LABEL_TABLE_CHANGED_PROPERTY): Likewise.
+ (MAJOR_TICK_SPACING_CHANGED_PROPERTY): Likewise.
+ (MINOR_TICK_SPACING_CHANGED_PROPERTY): Likewise.
+ (MODEL_CHANGED_PROPERTY): Likewise.
+ (ORIENTATION_CHANGED_PROPERTY): Likewise.
+ (PAINT_LABELS_CHANGED_PROPERTY): Likewise.
+ (PAINT_TICKS_CHANGED_PROPERTY): Likewise.
+ (setModel): Replaced constant with real string.
+ (setOrientation): Likewise.
+ (setLabelTable): Likewise.
+ (setInverted): Likewise.
+ (setMajorTickSpacing): Likewise.
+ (setMinorTickSpacing): Likewise.
+ (setPaintTicks): Likewise.
+ (setPaintLabels): Likewise.
+ * javax/swing/JTabbedPane.java
+ (MODEL_CHANGED_PROPERTY): Removed.
+ (TAB_PLACEMENT_CHANGED_PROPERTY): Likewise.
+ (TAB_LAYOUT_POLICY_CHANGED_PROPERTY): Likewise.
+ (setModel): Replaced constant with real string.
+ (setTabPlacement): Likewise.
+ (setTabLayoutPolicy): Likewise.
+ * javax/swing/JToolBar.java
+ (ORIENTATION_CHANGED_PROPERTY): Removed.
+ (FLOATABLE_CHANGED_PROPERTY): Likewise.
+ (BORDER_PAINTED_CHANGED_PROPERTY): Likewise.
+ (MARGIN_CHANGED_PROPERTY): Likewise.
+ (ROLLOVER_CHANGED_PROPERTY): Likewise.
+ (setRollover): Replaced constant with real string.
+ (setMargin): Likewise.
+ (setBorderPainted): Likewise.
+ (setFloatable): Likewise.
+ (setOrientation): Likewise.
+ * javax/swing/plaf/basic/BasicComboBoxUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicComboPopup.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicMenuBarUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicProgressBarUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicScrollBarUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicSliderUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicTabbedPaneUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+ * javax/swing/plaf/basic/BasicToolBarUI.java
+ (PropertyChangeHandler.propertyChange): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultButtonModel.java
+ (changeState): Made private.
+ * javax/swing/DefaultDesktopManager.java
+ (setWasIcon): Fixed second argument to be java.lang.Boolean.
+ * javax/swing/JLayeredPane.java
+ (layerToRange): Made private.
+ (incrLayer): Likewise.
+ (decrLayer): Likewise.
+ * javax/swing/JTable.java
+ (dragEnabled): Likewise.
+ (preferredViewportSize): Renamed from preferredScrollableViewportSize.
+ * javax/swing/KeyStroke.java
+ (Keystroke): Made private.
+ * javax/swing/TransferHandler.java
+ (COMMAND_COPY): Likewise.
+ (COMMAND_CUT): Likewise.
+ (COMMAND_PASTE): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTextField.java
+ (postActionEvent): Use text in field when actionCommand is null.
+ (getActionCommand): Removed.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/AbstractSet.java: Removed.
+ * Makefile.am: Removed javax/swing/AbstractSet.java.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Window.java
+ (AccessibleWindow.getAccessibleStateSet): Fixed method name.
+ * java/awt/dnd/DnDConstants.java
+ (DnDConstants): New private constructor.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultCellRenderer.java: Removed.
+ * Makefile.am: Removed javax/swing/DefaultCellRenderer.java.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/AbstractButton.java
+ (fireItemStateChanged): Made protected.
+ (fireActionPerformed): Likewise.
+ (fireStateChanged): Likewise.
+ * javax/swing/DefaultButtonModel.java
+ (fireItemStateChanged): Likewise.
+ (fireActionPerformed): Likewise.
+ (fireStateChanged): Likewise.
+ * javax/swing/JApplet.java
+ (JApplet): Removed.
+ (frameInit): Likewise.
+ (setRootPane): Made protected.
+ (createRootPane): Likewise.
+ * javax/swing/JComponent.java
+ (getClientProperty): Likewise.
+ (putClientProperty): Likewise.
+ * javax/swing/JEditorPane.java
+ (getContentType): Likewise.
+ (setContentType): Likewise.
+ * javax/swing/JFrame.java
+ (setRootPane): Likewise.
+ (createRootPane): Likewise.
+ * javax/swing/JInternalFrame.java
+ (getFocusCycleRootAncestor): Made final. Added @since tag.
+ (isFocusCycleRoot): Likewise.
+ (getWarningString): Made final.
+ * javax/swing/JScrollBar.java
+ (changeListener): Removed.
+ (changeEvent): Likewise.
+ (createChangeListener): Likewise.
+ (fireStateChanged): Likewise.
+ (addChangeListener): Likewise.
+ (removeChangeListener): Likewise.
+ (getChangeListeners): Likewise.
+ * javax/swing/JScrollPane.java
+ (createViewport): Made protected.
+ * javax/swing/JViewport.java
+ (addImpl): Likewise.
+ (setBorder): New method.
+ * javax/swing/JWindow.java
+ (setRootPane): Made protected.
+ (createRootPane): Likewise.
+ * javax/swing/plaf/basic/BasicButtonUI.java
+ (installListeners): Likewise.
+ (uninstallListeners): Likewise.
+ * javax/swing/plaf/basic/BasicProgressBarUI.java
+ (incrementAnimationIndex): Likewise.
+ * javax/swing/plaf/basic/BasicTabbedPaneUI.java
+ (createLayoutManager): Likewise.
+ * javax/swing/table/DefaultTableCellRenderer.java
+ (firePropertyChange): Likewise.
+ * javax/swing/table/JTableHeader.java
+ (AccessibleJTableHeaderEntry.AccessibleJTableHeaderEntry):
+ New constructor.
+ * javax/swing/text/PlainDocument.java
+ (reindex): Made private.
+ * javax/swing/text/PlainView.java
+ (drawLine): Made protected.
+ (getTabSize): Likewise.
+ * javax/swing/text/View.java
+ (setSize): Removed.
+ (preferenceChanged): New method.
+ (getBreakWeight): Likewise.
+ (breakView): Likewise.
+ (getViewIndex): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JScrollPane.java
+ (ScrollBar): Made class protected.
+ * javax/swing/JSpinner.java
+ (JSpinner): Added @since tag.
+ (listenerList): Removed.
+ * javax/swing/JTable.java
+ (setValueAt): New method.
+ (getColumn): Likewise.
+ * javax/swing/JWindow.java
+ (rootPaneCheckingEnabled): Renamed from checking.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/basic/BasicTextUI.java
+ (RootView.modelToView): Made it public and return a java.awt.Shape.
+ Handle null subview.
+ (uninstall): Set textComponent to null when its not possible used
+ anymore.
+ * javax/swing/text/View.java
+ (setParent): Use better argument name.
+ (getContainer): Get parent via getParent().
+ (getViewFactory): Likewise.
+ (getAttributes): Get element via getElement().
+ (getStartOffset): Likewise.
+ (getEndOffset): Likewise.
+ (getResizeWeight): New method.
+ (getMaximumSpan): Likewise.
+ (getMinimumSpan): Likewise.
+ (setSize): Likewise.
+ (getGraphics): Likewise.
+
+2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/awt/Checkbox.java:
+ (AccessibleAWTCheckbox()): Added public constructor
+ to call superclass.
+ * java/awt/Choice.java:
+ (AccessibleAWTChoice): Added class documentation.
+ (AccessibleAWTChoice()): Added public constructor
+ to call superclass.
+ (AccessibleAWTChoice.getAccessibleAction()): Documented.
+ (AccessibleAWTChoice.getAccessibleRole()): Documented,
+ and changed role to COMBO_BOX.
+ (AccessibleAWTChoice.getAccessibleActionCount()): Documented.
+ (AccessibleAWTChoice.getAccessibleActionDescription(int)): Documented.
+ (AccessibleAWTChoice.doAccessibleAction(int)): Documented.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+ Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/LayoutFocusTraversalPolicy.java,
+ javax/swing/SortingFocusTraversalPolicy.java:
+ New classes.
+ * Makefile.am: Added new classes.
+ * Makefike.in: Regenerated.
+
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DebugGraphics.java: Mostly implemented.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/SwingUtilities.java
+ (findFocusOwner): New method.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/DefaultEditorKit.java
+ (read): Added '\n' after each line.
+ * javax/swing/text/PlainView.java
+ (modelToView): Update metrics.
+ (drawLine): Use offsets from element.
+ (paint): Update metrics. Draw all lines.
+
+2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/awt/Checkbox.java:
+ (AccessibleAWTCheckbox): Added class documentation
+ * java/awt/Scrollbar.java:
+ (AccessibleAWTScrollBar): typo corrected and docs added
+ (AccessibleAWTScrollBar.getAccessibleRole()): documented
+ (AccessibleAWTScrollBar.getAccessibleStateSet()): likewise
+ (AccessibleAWTScrollBar.getAccessibleValue()): likewise
+ (AccessibleAWTScrollBar.getCurrentAccessibleValue()): likewise
+ (AccessibleAWTScrollBar.setCurrentAccessibleValue(int)): likewise
+ (AccessibleAWTScrollBar.getMinimumAccessibleValue()): likewise
+ (AccessibleAWTScrollBar.getMaximumAccessibleValue()): likewise
+ (getAccessibleContext()): name of accessible class corrected
+
+2005-02-15 Mark Wielaard <mark@klomp.org>
+
+ * java/awt/BasicStroke.java (hashCode): Implement.
+ (equals): Document.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/print/PrinterJob.java
+ (pageDialog): Throws java.awt.HeadlessException.
+ (printDialog): Likewise.
+
+2005-02-15 Mark Wielaard <mark@klomp.org>
+
+ * jni/gtk-peer/gtkpeer.h (gdk_env): Fix prototype.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTable.java
+ (getValueAt): New method.
+ * javax/swing/table/JTableHeader.java
+ (columnAtPoint): New method.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTextField.java
+ (actions): New field.
+ (static): Initalize actions field.
+ (getActions): New method.
+
+2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/awt/Checkbox.java:
+ (AccessibleAWTCheckbox): name capitalization corrected
+ and serialization UID added.
+ (AccessibleAWTCheckbox.itemStateChanged(java.awt.event.ItemEvent)):
+ documented.
+ (AccessibleAWTCheckbox.getAccessibleAction()): likewise
+ (AccessibleAWTCheckbox.getAccessibleValue()): likewise
+ (AccessibleAWTCheckbox.getAccessibleActionCount()): likewise
+ (AccessibleAWTCheckbox.getAccessibleActionDescription(int)): likewise
+ (AccessibleAWTCheckbox.doAccessibleAction(int)): likewise
+ (AccessibleAWTCheckbox.getCurrentAccessibleValue()): likewise
+ (AccessibleAWTCheckbox.setCurrentAccessibleValue(int)): likewise
+ (AccessibleAWTCheckbox.getMinimumAccessibleValue()): likewise
+ (AccessibleAWTCheckbox.getMaximumAccessibleValue()): likewise
+ (AccessibleAWTCheckbox.getAccessibleRole()): likewise
+ (AccessibleAWTCheckbox.getAccessibleStateSet()): implemented and
+ documented
+ (getAccessibleContext()): name of accessible class corrected
+
+2005-02-15 Sven de Marothy <sven@physto.se>
+
+ * java/awt/geom/doc-files/Area-1.png,
+ java/awt/geom/doc-files/Ellipse-1.png,
+ java/awt/geom/doc-files/GeneralPath-1.png:
+ New files.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (env_union):
+ Use union to avoid type-punning warning.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultListSelectionModel.java
+ (clone): New method.
+
+2005-02-15 Mark Wielaard <mark@klomp.org>
+
+ Reported by Martin Platter <motse@complang.tuwien.ac.at>
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
+ (Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile):
+ Correct method signature of gtkSetFilename.
+
+2005-02-15 Arnaud Vandyck <avdyk@gnu.org>
+
+ * javax/swing/text/StringContent.java: New file.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * Makefile.am: Added javax/swing/text/StringContent.java.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/ClasspathToolkit.java:
+ Import statements reworked.
+ (imageCache): Made it of type java.util.HashMap.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/imageio/stream/MemoryCacheImageInputStream.java:
+ Reworked import statements.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
+ Rewrite uses of extern variable to be function calls.
+ * jni/gtk-peer/gtkpeer.h (gdk_env): Change declaration to
+ function, from extern variable.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+ (gdk_env): Remove variable, add new function.
+ (java_vm): Add new variable.
+ (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Initialize
+ java_vm rather than old gdk_env variable.
+
+2005-02-15 David Gilbert <david.gilbert@object-refinery.com>
+
+ * javax/swing/DefaultListModel.java
+ (add): fire correct event,
+ (addElement): corrected interval indices in event,
+ (clear): corrected upper bound for interval, only fire event if
+ list is not empty,
+ (setSize): fire appropriate event.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * gnu/awt/xlib/XEventLoop.java: Add non-blocking event mode.
+ * gnu/awt/xlib/XToolkit.java: Likewise.
+ * gnu/gcj/xlib/XAnyEvent.java: Likewise.
+ * gnu/gcj/xlib/natXAnyEvent.cc: Likewise.
+ * gnu/java/awt/ClasspathToolkit.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.
+ * java/awt/EventQueue.java (getNextEvent):
+ Adjust event loop to switch to native mode after 100ms.
+ * javax/swing/Timer.java (drainEvents): Reuse Runnable.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+ (Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose):
+ Wake up event thread.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+ (Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue):
+ Adjust event loop to switch to java mode after 100ms.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * jni.cc (_Jv_JNI_RegisterNatives): Re-add sync, which was
+ accidentally removed in last change.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c,
+ gnu/java/awt/peer/gtk/GtkMainThread.java: Removed.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * include/jni.h (_Jv_JNIEnv::bottom_locals): New field.
+ * include/jvm.h (_Jv_FreeJNIEnv): Declare.
+ * java/lang/natThread.cc (finalize_native): Call _Jv_FreeJNIEnv.
+ * jni.cc: Reuse bottom frame between calls, avoid clearing
+ frame when no local references are made.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/UIDefaults.java (UIDefaults):
+ Fixed typo in javadoc (Thanks to Thomas Zander for reporting)
+ Fixed HTML entity and removed a redundant comma.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/DefaultEditorKit.java
+ (deinstall): Removed.
+ (install): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/UIDefaults.java (put): Handle value of null.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Robot.java,
+ java/awt/Scrollbar.java,
+ java/awt/print/PrinterJob.java,
+ javax/swing/JTable.java,
+ javax/swing/text/AbstractDocument.java:
+ Reworked import statements.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JEditorPane.java
+ (read): Implemented.
+ (write): Likewise.
+ * javax/swing/text/DefaultEditorKit.java
+ (page): Renamed from page_url. Made private.
+ (editorKit): Renamed from kit. Made private.
+ (ctype): Removed.
+ (JEditorPane): All constructors reimplemented.
+ (getContentType): Use content type from editor kit.
+ (getEditorKit): Return editorKit.
+ (getEditorKitForContentType):Likewise.
+ (getPage): Return page.
+ (setContentType): Reimplemented.
+ (setEditorKit): Likewise.
+ (setEditorKitForContentType): Removed wrong implementation.
+ (setPage): Implemented.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
+ (nativeSetIconImageFromData): Re-add native implementation.
+
+2005-02-15 David Gilbert <david.gilbert@object-refinery.com>
+
+ * javax/swing/table/DefaultTableModel.java
+ (DefaultTableModel()): Added Javadocs.
+ (DefaultTableModel(int, int)): Fixed implementation.
+ (DefaultTableModel(Vector, int)): Throw IllegalArgumentException
+ for negative rowCount.
+ (DefaultTableModel(Object[], int)): Added Javadocs.
+ (DefaultTableModel(Vector, Vector)): Likewise.
+ (DefaultTableModel(Object[][], Object[])): Likewise.
+ (getDataVector): Likewise.
+ (setDataVector(Vector, Vector)): Likewise.
+ (setDataVector(Object[][], Object[])): Likewise.
+ (newDataAvailable): Likewise.
+ (newRowsAdded): Likewise.
+ (rowsRemoved): Likewise.
+ (setColumnIdentifiers(Vector)): Allow for null argument.
+ (setColumnIdentifiers(Object[])): Added Javadocs.
+ (setNumRows): Likewise.
+ (setRowCount): Adds new rows if necessary, and sends more specific
+ TableModelEvent.
+ (setColumnCount): Allow for null columnIdentifiers.
+ (addColumn(Object)): Added Javadocs.
+ (addColumn(Object, Vector)): Handle null columnData.
+ (addColumn(Object, Object[])): Handle columnData with more or less
+ entries than rows in the table.
+ (addRow(Vector)): Fire appropriate event.
+ (addRow(Object[])): Added Javadocs.
+ (insertRow(int, Vector)): Fire appropriate event.
+ (insertRow(int, Object[])): Added Javadocs.
+ (moveRow): Reimplemented.
+ (removeRow(int)): Fire appropriate event.
+ (getColumnCount): Allow for null columnIdentifiers.
+ (getColumnName): Now returns empty string when column index is too
+ large.
+ (isCellEditable): Added Javadocs.
+ (getValueAt): Likewise.
+ (setValueAt): Fire more specific event.
+ (convertToVector): Added Javadocs.
+ * javax/swing/table/TableModel.java
+ Added Javadocs.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * libgcj.spec.in (lib): Add -l-javax-imageio.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java: Replace direct
+ references to event queue q with method call q().
+ * gnu/java/awt/peer/gtk/GtkDialogPeer.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkFramePeer.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkTextComponentPeer.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkGenericPeer.java: Likewise.
+ (q): New method.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * gnu/java/awt/ClasspathToolkit.java
+ (registerImageIOSpis): New method.
+ * gnu/java/awt/image/ImageDecoder.java
+ (imageDecoder): New constructor using InputStream
+ (startProduction): Handle existing InputStream.
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java
+ (findSimpleIntegerArray): Make public and static.
+ (updateBufferedImage): Set each pixel, in a loop.
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
+ Implement ImageIO SPI classes.
+ (createBufferedImage): Rewrite in terms of SPI classes.
+ * gnu/java/awt/peer/gtk/GtkToolkit.java
+ (registerImageIOSpis): New method.
+ * java/lang/reflect/natMethod.cc
+ (_Jv_CallAnyMethodA): Borrow a patch from aph, applied to trunk,
+ which lets JNI call interface methods properly.
+ * javax/imageio/ImageIO.java
+ (WriterFormatFilter.filter): Fix copy-and-paste typos.
+ (WriterMIMETypeFilter.filter): Likewise.
+ (ImageReaderIterator): Pass extension argument through to SPI.
+ (getReadersByFilter): Likewise.
+ (getWritersByFilter): Likewise.
+ (getImageReadersByFormatName): Likewise.
+ (getImageReadersByMIMEType): Likewise.
+ (getImageReadersBySuffix): Likewise.
+ (getImageWritersByFormatName): Likewise.
+ (getImageWritersByMIMEType): Likewise.
+ (getImageWritersBySuffix): Likewise.
+ (read): Implement.
+ (write): Implement.
+ * javax/imageio/ImageReader.java
+ (progressListeners): Initialize.
+ (setInput): Implement.
+ * javax/imageio/ImageWriter.java
+ (progressListeners): Initialize.
+ (warningListeners): Likewise.
+ (warningLocales): Likewise.
+ (setOutput): Test "isInstance" rather than class equality.
+ * javax/imageio/spi/IIORegistry.java
+ (static): Add reader and writer SPIs.
+ (IIORegistry): Call ClasspathToolkit.registerImageIOSpis.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+ (query_formats): New function.
+ (save_to_stream): Likewise.
+ (Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage): Likewise.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c (mouseWheel):
+ Call XFlush.
+ (keyPress): Likewise.
+ (keyRelease): Likewise.
+
+2005-02-15 Olga Rodimina <rodimina@redhat.com>
+
+ * javax/swing/JTable.java
+ (columnAtPoint): New Method. Implemented.
+ (rowAtPoint): Likewise.
+ (countSelections): Fixed few small count errors.
+ (getSelections): Likewise.
+ (setSelectionMode): Set selection mode for column
+ selection model in addition to row selection model.
+ * javax/swing/plaf/basic/BasicTableUI.java:
+ (getRowForPoint): Removed. Replaced by
+ JTable.rowAtPoint().
+ (getColForPoint): Removed. Replaced by
+ JTable.columnAtPoint().
+ (updateSelection): Updated to call JTable.columnAtPoint
+ and JTable.rowAtPoint.
+ * javax/swing/table/DefaultTableColumnModel.java:
+ (getSelectedColumns): Implemented.
+ (getSelectedColumnCount): Implemented.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * Makefile.am
+ (jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c)
+ (gnu/java/awt/peer/gtk/GtkMainThread.java) : Remove.
+ * Makefile.in: Regenerate.
+ * gnu/awt/xlib/XEventLoop.java: Fix to match thread model.
+ * gnu/awt/xlib/XFramePeer.java: Likewise.
+ * gnu/awt/xlib/XToolkit.java: Likewise.
+ * gnu/gcj/xlib/XAnyEvent.java: Likewise.
+ * gnu/gcj/xlib/natXAnyEvent.cc: Likewise.
+ * gnu/java/awt/ClasspathToolkit.java
+ (nativeQueueEmpty)
+ (wakeNativeQueue)
+ (iterateNativeQueue): New methods.
+ * gnu/java/awt/peer/gtk/GtkMainThread.java: Remove.
+ * gnu/java/awt/peer/gtk/GtkToolkit.java
+ (gtkInit): Absorb from defunct GtkMainThread class.
+ (static): Run gtkInit in static startup block.
+ (GtkToolkit): Remove construction of GtkMainThread and queue.
+ (getSystemEventQueueImpl): Construct queue when requested.
+ (nativeQueueEmpty)
+ (wakeNativeQueue)
+ (iterateNativeQueue): New methods.
+ * java/awt/Component.java (removeNotify): Remove race.
+ * java/awt/EventDispatchThread.java
+ (EventDispatchThread): Don't start on construction.
+ (run): Remove isInterrupted check.
+ * java/awt/EventQueue.java (shutdown): New flag.
+ (isShutdown): New method checking J2SE shutdown condition.
+ (setShutdown): New method.
+ (getNextEvent): Restructure to use ClasspathToolkit.
+ (postEvent): Activate new thread on posting, wake thread on
+ post of possible shutdown condition event.
+ * java/awt/Frame.java
+ (Frame): Call noteFrame in all constructors.
+ (fireDummyEvent): New helper method.
+ (addNotify): Fire a dummy event to wake up queue.
+ (removeNotify): Fire a dummy event to wake up queue.
+ (noteFrame): New method.
+ (weakFrames): New static field.
+ (getFrames): Implement.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c:
+ Remove.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
+ Move everything from GtkMainThread into this file
+ (Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue)
+ (Java_gnu_java_awt_peer_gtk_GtkToolkit_wakeNativeQueue)
+ (Java_gnu_java_awt_peer_gtk_GtkToolkit_nativeQueueEmpty):
+ New functions to implement single-threaded queue semantics.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/metal/MetalLookAndFeel.java
+ (getControlTextFont): New method.
+ (getMenuTextFont): Likewise.
+ (getSubTextFont): Likewise.
+ (getSystemTextFont): Likewise.
+ (getUserTextFont): Likewise.
+ (getWindowTitleFont): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/AbstractDocument.java
+ (documentFilter): New field.
+ (getDocumentFilter): New method.
+ (setDocumentFilter): Likewise.
+ (dump): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTree.java
+ (DynamicUtilTreeNode.hasChildren): Clarify javadoc.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/AbstractDocument.java
+ (AbstractElement.getLength): Fixed off-by-one error.
+ (AbstractElement.children): Made abstract.
+ (AbstractElement.getAllowsChildren): Likewise.
+ (AbstractElement.getElement): Likewise.
+ (AbstractElement.dumpElement): New private method.
+ (AbstractElement.dump): New method.
+ (BranchElememt.getName): Fixed implementation.
+ (BranchElememt.toString): Likewise.
+ (BranchElememt.getElement): Fixed arguments.
+ (LeafElement.getName): Fixed implementation.
+ (LeafElement.toString): Likewise.
+ * javax/swing/text/GapContent.java
+ (GapContent): Put default content into buffer.
+ * javax/swing/text/PlainDocument.java
+ (reindex): Use empty attribute sets instead of null.
+ (createDefaultRoot): Reimplemented.
+ (insertUpdate): Call super method.
+ (removeUpdate): Likewise.
+ (getParagraphElement): Implemented.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/ClasspathToolkit.java
+ (createRobot): Throws java.awt.AWTException.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c:
+ Added '__attribute__((unused))' to all unused method arguments.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultBoundedRangeModel.java
+ (fireValueChanged): Fixed off-by-one error.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * Makefile.am (gtk_c_source_files): Add GdkRobotPeer.c.
+ (gtk_awt_peer_sources): Add GdkScreenGraphicsDevice.java and
+ GdkRobotPeer.java.
+ (lib_gnu_java_awt_peer_gtk_la_CFLAGS): Add X flags.
+ (lib_gnu_java_awt_peer_gtk_la_LDFLAGS): Add XTest flags.
+ * gnu/awt/xlib/XToolkit.java (createRobot): New method.
+ * gnu/java/awt/ClasspathToolkit.java (createRobot): New method.
+ * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+ (getDefaultScreenDevice): Implement.
+ * gnu/java/awt/peer/gtk/GdkRobotPeer.java: New file.
+ * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java: Likewise.
+ * gnu/java/awt/peer/gtk/GtkToolkit.java (createRobot): New method.
+ * java/awt/Robot.java: Implement.
+ * java/awt/peer/RobotPeer.java: Rename parameters.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c: New file.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
+ (awt_keycode_to_keysym): Make non-static.
+ * jni/gtk-peer/gtkpeer.h (AWT_BUTTON1_MASK, AWT_BUTTON2_MASK,
+ AWT_BUTTON3_MASK): Declare constants.
+ (awt_keycode_to_keysym): Declare.
+
+ * Makefile.am (AM_MAKEFLAGS): Set KEYS variable.
+ * testsuite/libjava.mauve/mauve.exp (test_mauve): If KEYS exists
+ and is non-empty pass its value to "make check".
+ (test_mauve_sim): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/imageio/IIOParam.java
+ (setSourceBands): New method.
+ (setSourceSubsampling): Likewise.
+ * javax/imageio/ImageReadParam.java
+ (setDestination): Likewise.
+ (setDestinationBands): Likewise.
+ (setSourceProgressivePasses): Likewise.
+ * javax/imageio/metadata/IIOInvalidTreeException.java
+ (serialVersionUID): New static field.
+ * javax/imageio/metadata/IIOMetadataNode.java
+ (IIOMetadataNode): Don't explicitely implement org.w3c.dom.Node.
+ (parent): Dont initailize with default value explicitely.
+ (Object): Likewise.
+ (removeAttribute): Doesn't throws org.w3c.dom.DOMException.
+ (removeAttributeNode): Likewise.
+ (removeAttributeNS): Likewise.
+ (setAttribute): Likewise.
+ (setAttributeNode): Likewise.
+ (setAttributeNodeNS): Likewise.
+ (setAttributeNS): Likewise.
+ (appendChild): Likewise.
+ (getNodeValue): Likewise.
+ (insertBefore): Likewise.
+ (removeChild): Likewise.
+ (replaceChild): Likewise.
+ (setPrefix): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/LookAndFeel.java
+ (getDesktopPropertyValue): New method.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTree.java
+ (hasChildren): New instance field.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JComponent.java
+ (getToolTipText): New method.
+ (getTitledBorderText): Likewise.
+ (getAccessibleKeyBinding): Likewise.
+ (getVerifyInputWhenFocusTarget): Likewise.
+ (setVerifyInputWhenFocusTarget): Likewise.
+ (verifyInputWhenFocusTarget): New instance field.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultListSelectionModel.java
+ (fireValueChanged): New method.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultBoundedRangeModel.java:
+ Fixed javadocs all over.
+ (fireStateChanged): Simplified.
+ * javax/swing/BoundedRangeModel.java:
+ Reformatted.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JRootPane.java
+ (setMenuBar): Added @deprecated tag.
+ (getMenuBar): Likewise.
+ * javax/swing/JTable.java
+ (sizeColumnsToFit): Likewise.
+
+2005-02-15 Paul Jenner <psj.home@ntlworld.com>
+
+ * javax/swing/ImageIcon.java (setImage): Implemented.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTable.java:
+ Removed unused imports.
+
+2005-02-15 Olga Rodimina <rodimina@redhat.com>
+
+ (prepareRenderer): Get column's index in dataModel instead
+ of column's view index.
+ (getColumnCount): return count of the columns in ColumnModel,
+ not in dataModel.
+ (removeColumn): Implemented.
+ (moveColumm): Likewise.
+ (setRowHeight): throw IllegalArgumentException if height is
+ less then 1.
+ * javax/swing/table/DefaultTableColumnModel.java: Add javadocs.
+ (DefaultTableColumnModel):Add call to createSelectionModel().
+ (addColumn): Fire columnAdded event to registered listeners.
+ (removeColumn): Fire columnRemoved event to registered listeners.
+ (moveColumn): Fire columnMoved event to registered listeners.
+ (setColumnMargin): Fire ColumnMarginChanged event to registered listeners.
+ (getColumnIndex): Changed parameter name.
+ (setColumnSelectionAllowed): Likewise.
+ (fireColumnAdded): Implemented.
+ (fireColumnRemoved): Likewise.
+ (fireColumnMoved): Likewise.
+ (fireColumnMarginChanged): Likewise.
+ (getListeners): Changed parameter name.
+ (propertyChange): Implemented.
+ (valueChanged): Changed parameter name.
+ (createSelectionModel): Implemented.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GtkToolkit.java:
+ Explicitely import used classes.
+ (getLocalGraphicsEnvironment): Simplify.
+ * java/awt/Window.java (Window):
+ Enable code to get the default GraphicsConfiguration.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/metal/DefaultMetalTheme.java
+ (CONTROL_TEXT_FONT): New static field.
+ (MENU_TEXT_FONT): Likewise.
+ (SUB_TEXT_FONT): Likewise.
+ (SYSTEM_TEXT_FONT): Likewise.
+ (USER_TEXT_FONT): Likewise.
+ (WINDOW_TITLE_FONT): Likewise.
+ (getControlTextFont): New method.
+ (getMenuTextFont): Likewise.
+ (getSubTextFont): Likewise.
+ (getSystemTextFont): Likewise.
+ (getUserTextFont): Likewise.
+ (getWindowTitleFont): Likewise.
+ * javax/swing/plaf/metal/MetalTheme.java
+ (BLACK): Initialize with Color.BLACK.
+ (WHITE): Initialize with Color.WHITE.
+ (getInactiveControlTextColor): Return getControlDisabled().
+ (getMenuDisabledForeground): Return getSecondary3().
+ (getControlTextFont): New abstract method.
+ (getMenuTextFont): Likewise.
+ (getSubTextFont): Likewise.
+ (getSystemTextFont): Likewise.
+ (getUserTextFont): Likewise.
+ (getWindowTitleFont): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JFormattedTextField.java
+ (getFocusLostBehavior): Fixed typo in method name.
+ (setFocusLostBehavior): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/TransferHandler.java:
+ Reworked import statements.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/Button.java,
+ java/awt/Canvas.java,
+ java/awt/Checkbox.java,
+ java/awt/CheckboxMenuItem.java,
+ java/awt/Choice.java,
+ java/awt/Dialog.java,
+ java/awt/Frame.java,
+ java/awt/Label.java,
+ java/awt/List.java,
+ java/awt/Menu.java,
+ java/awt/MenuBar.java,
+ java/awt/MenuItem.java,
+ java/awt/PopupMenu.java,
+ java/awt/ScrollPane.java,
+ java/awt/Scrollbar.java,
+ java/awt/TextArea.java,
+ java/awt/Window.java (getAccessibleContext): Clean up comments.
+ Reformat.
+ * java/awt/Button.java,
+ java/awt/Checkbox.java,
+ java/awt/Choice.java,
+ java/awt/Menu.java,
+ java/awt/PopupMenu.java,
+ java/awt/TextArea.java (getAccessibleContext): Only create new
+ accessible once.
+ * java/awt/TextComponent.java (getAccessibleContext): Implement.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Button.java,
+ javax/swing/JApplet.java,
+ javax/swing/JFormattedTextField.java,
+ javax/swing/JWindow.java,
+ javax/swing/JTree.java,
+ javax/swing/plaf/basic/BasicEditorPaneUI.java,
+ javax/swing/plaf/basic/BasicTextPaneUI.java,
+ javax/swing/plaf/basic/BasicTreeUI.java:
+ Reworked import statements.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * Makefile.am: Put javax.imageio into its own library and link it
+ against lib-org-w3c-dom.la to fix bootstrapping.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/TextAction.java
+ (getTextComponent): Simplified. Added Javadoc.
+ (augmentList): Implemented. Added Javadoc.
+ (getFocusedComponent): Added javadoc.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/Scrollbar.java (AccessibleAWTScrollbar,
+ getAccessibleContext): Implement.
+ * java/awt/ScrollPane.java (AccessibleAWTScrollPane,
+ getAccessibleContext): Implement.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/Dialog.java (AccessibleAWTFrame, getAccessibleContext):
+ Implement.
+ * java/awt/Frame.java (AccessibleAWTFrame, getAccessibleContext):
+ Implement.
+ * java/awt/Window.java (getAccessibleContext): Fix comment.
+ Remove extra import.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/Window.java (AccessibleAWTWindow): Implement.
+ (isActive, isFocused, getAccessibleContext): Implement.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/MenuItem.java (getAccessibleContext): Implement.
+ * java/awt/MenuComponent.java (accessibleContext): Make package
+ visible.
+ * java/awt/CheckboxMenuItem.java (getAccessibleContext,
+ AccessibleAWTCheckboxMenuItem): Implement.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/List.java: Implement AccessibleAWTList,
+ AccessibleAWTListChild.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/awt/Choice.java: Add implements declaration for
+ Accessible.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * javax/imageio/metadata/IIOInvalidTreeException.java: Use Node
+ instead of Object.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * javax/imageio/metadata/IIOMetadataNode.java: Add Node to
+ implemented interface list.
+
+2005-02-15 Jerry Quinn <jlquinn@optonline.net>
+
+ * javax/imageio/metadata/IIOMetadataNode.java: Implement.
+ * javax/imageio/metadata/IIOAttr.java: New class.
+ * javax/imageio/metadata/IIONamedNodeMap.java: New class.
+ * javax/imageio/metadata/IIONodeList.java: New class.
+ * Makefile.am: Added new files.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/AbstractAction.java,
+ javax/swing/AbstractCellEditor.java,
+ javax/swing/AbstractListModel.java,
+ javax/swing/DefaultBoundedRangeModel.java,
+ javax/swing/DefaultButtonModel.java,
+ javax/swing/DefaultCellEditor.java,
+ javax/swing/DefaultComboBoxModel.java,
+ javax/swing/DefaultDesktopManager.java,
+ javax/swing/JMenu.java,
+ javax/swing/JSlider.java,
+ javax/swing/KeyStroke.java,
+ javax/swing/OverlayLayout.java,
+ javax/swing/ScrollPaneLayout.java,
+ javax/swing/SizeRequirements.java,
+ javax/swing/ViewportLayout.java:
+ Made serialVersionUID private.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java:
+ Reformatted.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java: More reformatting.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java: Reformatted.
+
+2005-02-15 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/awt/EventDispatchThread.java,
+ java/awt/Toolkit.java:
+ Don't catch java.lang.ThreadDeath.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/PasswordView.java
+ (drawEchoCharacter): Added javadoc.
+ (drawSelectedText): Likewise.
+ (drawUnselectedText): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JRootPane.java
+ (windowDecorationStyle): New field.
+ (setMenuBar): New method.
+ (getMenuBar): Likewise.
+ (getWindowDecorationStyle): Likewise.
+ (setWindowDecorationStyle): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultListSelectionModel.java
+ (leadAnchorNotificationEnabled): Made protected.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/InternalFrameFocusTraversalPolicy.java: New file.
+ * Makefile.am: Added InternalFrameFocusTraversalPolicy.java.
+ * Makefile.in: Regenerated.
+
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JFormattedTextField.java: Implemented.
+ * javax/swing/JWindow.java
+ (JWindow): New constructors.
+ (initWindow): Renamed from initFrame.
+ * javax/swing/UIDefaults.java
+ (ActiveValue): Made interface static.
+ (LazyValue): Likewise.
+ * javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
+ (TitlePaneLayout.TitlePaneLayout): New constructor.
+ * javax/swing/plaf/basic/BasicSliderUI.java
+ (ChangeHandler): Made public.
+ (FocusHandler): Likewise.
+ (PropertyChangeHandler): Likewise.
+ (ScrollListener): Likewise.
+ * javax/swing/plaf/basic/BasicTabbedPaneUI.java
+ (FocusHandler): Likewise.
+ (MouseHandler): Likewise.
+ * javax/swing/plaf/basic/BasicTextPaneUI.java
+ (BasicTextPaneUI): Extend BasicEditorPaneUI.
+ * javax/swing/plaf/basic/BasicToolBarUI.java
+ (BasicToolBarUI): Simplified. Reworked javadoc.
+ (canDock): Simplified. Make public.
+ (DockingListener): Made public.
+ * javax/swing/text/JTextComponent.java
+ (navigationFilter): New field.
+ (getNavigationFilter): New method.
+ (setNavigationFilter): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/metal/MetalTheme.java
+ (getControlTextColor): Return getControlInfo().
+ (getHighlightedTextColor): Return getControlTextColor().
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/basic/BasicButtonListener.java
+ (BasicButtonListener): New constructor.
+ * javax/swing/plaf/basic/BasicButtonUI.java
+ (createButtonListener): Usw new BasicButtonListener constructor.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/imageio/event/package.html,
+ javax/imageio/metadata/package.html: New files.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/image/MemoryImageSource.java: Reformatted.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/tree/TreeCellEditor.java: Refomatted.
+
+2005-02-15 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/awt/color/ICC_Profile.java
+ (finalize): Removed pointless field assignments.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/basic/BasicEditorPaneUI.java: New file.
+ * Makefile.am: Added javax/swing/plaf/basic/BasicEditorPaneUI.java.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/DefaultStyledDocument.java: New file.
+ * Makefile.am: Added javax/swing/text/DefaultStyledDocument.java.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JFileChooser.java
+ (showDialog): Return CANCEL_OPTION for now.
+ (showOpenDialog): Likewise.
+ (showSaveDialog): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JApplet.java
+ (HIDE_ON_CLOSE): Removed.
+ (EXIT_ON_CLOSE): Likewise.
+ (DISPOSE_ON_CLOSE): Likewise.
+ (DO_NOTHING_ON_CLOSE): Likewise.
+ (close_action): Likewise.
+ (getDefaultCloseOperation): Likewise.
+ (setDefaultCloseOperation): Likewise.
+ (processWindowEvent): Likewise.
+ (getPreferredSize): Simplified.
+ * javax/swing/JInternalFrame.java
+ (setDefaultCloseOperation): Fixed throwing exception on wrong argument
+ value.
+ * javax/swing/JWindow.java
+ (HIDE_ON_CLOSE): Removed.
+ (EXIT_ON_CLOSE): Likewise.
+ (DISPOSE_ON_CLOSE): Likewise.
+ (DO_NOTHING_ON_CLOSE): Likewise.
+ (close_action): Likewise.
+ (processKeyEvent): Likewise.
+ (setDefaultCloseOperation): Likewise.
+ (getPreferredSize): Simplified.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTextField.java
+ (getPreferredSize): Re-implemented.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JLabel.java
+ (setDisplayedMnemonic): Use only upper case characters.
+ (setDisplayedMnemonicIndex): Handle index == -1 and fire
+ PropertyChangeEvent after property got set to the new index.
+
+2005-02-15 Robert Schuster <thebohemian@gmx.net>
+
+ * javax/swing/JComboBox.java:
+ (JComboBox): Removed selection of the
+ first item in the model.
+
+2005-02-15 Robert Schuster <thebohemian@gmx.net>
+
+ * javax/swing/JComboBox.java
+ added support for no item being selected
+ (JComboBox): select first or nothing depending on element count
+ (setModel): cleaned up unneeded "this." usage, added more
+ docs, made exception behavior match that of the JDK
+ (setLighWeightPopupEnabled): removed unneeded "this." usage
+ (setEditable): dito
+ (setMaximumRowCount): dito
+ (setRenderer): dito
+ (setPrototypeDisplayValue): dito
+ (getSelectedItem): simplified, added more user doc
+ (setSelectedIndex): corrected exception behavior, added more user doc
+ (getSelectedIndex): fixed hardcoded dependency on DefaultComboBoxModel,
+ added performance warning to user doc
+ (addItem): fixed exception behavior, added user doc
+ (insertItemAt): dito
+ (removeItem): dito
+ (removeItemAt): dito
+ (removeAll): fixed exception behavior, added user doc, added support
+ for model not being instance of DefaultComboBoxModel
+ (getSelectedItemObjects): simplified
+ (getItemCount): fixed dependency on DefaultComboBoxModel
+ (getItemAt): fixed dependency on MutableComboBoxModel
+ * javax/swing/DefaultComboBoxModel.java:
+ (setSelectedItem): updates selected item only if new
+ value is null or known (match JDK behavior)
+ * javax/swing/plaf/basic/BasicComboBoxUI.java:
+ (paintCurrentValue): renders "" if no item is selected
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/plaf/metal/MetalTheme.java,
+ javax/swing/plaf/metal/DefaultMetalTheme.java:
+ New files.
+ * javax/swing/plaf/metal/MetalLookAndFeel.java
+ * Makefile.am: Added the new files.
+ * Makefile.in: Regenerated.
+
+2005-02-15 Olga Rodimina <rodimina@redhat.com>
+
+ * javax/swing/JTable.java
+ (editorComp): New field.
+ (JTable): Initialize local variables and call updateUI
+ (selectionBackground): Make protected.
+ (selectionForeground): Likewise.
+ (initializeLocalVars): Create default editors and renderers,
+ initialize editingColumn, editingRow variables.
+ (createDefaultEditors): New Method.
+ (createDefaultRenderers): Likewise.
+ (createDefaultListSelectionModel): Removed
+ (createDefaultSelectionModel): New Method.
+ (createDefaultTableHeader): Likewise
+ (removeColumn): Likewise.
+ (getEditingColumn): Likewise.
+ (setEditingColumn): Likewise.
+ (getEditingRow): Likewise.
+ (setEditingRow): Likewise.
+ (getEditorComponent): Likewise.
+ (isEditing): Likewise.
+ (setDefaultEditor): Likewise.
+ (addColumnSelectionInterval): Likewise.
+ (addRowSelectionInterval): Likewise.
+ (setColumnSelectionInterval): Likewise.
+ (setRowSelectionInterval): Likewise.
+ (removeColumnSelectionInterval): Likewise.
+ (removeRowSelectionInterval): Likewise.
+ (isColumnSelected): Likewise.
+ (isRowSelected): Likewise.
+ (isCellSelected): Likewise.
+ (selectAll): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTable.java
+ (addColumn): New method.
+ (getColumnClass): Likewise.
+ (getColumnName): Likewise.
+
+2005-02-15 Paul Jenner <psj.home@ntlworld.com>
+
+ * javax/swing/TransferHandler.java
+ (createTransferable): Made protected.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTable.java,
+ javax/swing/plaf/basic/BasicTableHeaderUI.java,
+ javax/swing/plaf/basic/BasicTableUI.java:
+ Use fixed get/setIntercellSpacing() methods.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTable.java
+ (getIntercellSpacing): Fixed typo in method name.
+ (setIntercellSpacing): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/text/JTextComponent.java
+ (focusAccelerator): New variable.
+ (getFocusAccelerator): New method.
+ (setFocusAccelerator): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JComponent.java
+ (setTransferHandler): Made public. Fire property change event.
+ * javax/swing/TransferHandler.java: Implemented.
+ * javax/swing/text/JTextComponent.java
+ (DefaultTransferHandler): New inner class.
+ (defaultTransferHandler): New variable.
+ (copy): New method.
+ (cut): Likewise.
+ (paste): Likewise.
+ (doTransferAction): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTree.java
+ (collapsePath): New method.
+ (collapseRow): Likewise.
+ (expandPath): Likewise.
+ (expandRow): Likewise.
+ (checkExpandParents): Likewise.
+ (doExpandParents): Likewise.
+ (setExpandedState): Likewise.
+ (makeVisible): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JPasswordField.java: Updated javadocs.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JLayeredPane.java
+ (getLayer): Fixed return type, made public.
+ (getPosition): Use new getLayer().
+ (SetPosition): Likewise.
+ (getIndexOf): Likewise.
+ (remove): Likewise.
+ * javax/swing/JInternalFrame.java
+ (getLayer): Use new JLayeredPane.getLayer().
+
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/table/TableColumn.java: Added/fixed javadocs over all.
+ (setHeaderValue): Simplified. Do nothing when old value == new value.
+
+2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics.java (setClip): Protect
+ against null clip region.
+ * gnu/java/awt/peer/gtk/GtkFramePeer.java (create): Call
+ gtkWindowSetResizable.
+ (postConfigureEvent): Only revalidate if frame size has changed.
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java (postConfigureEvent):
+ Only revalidate if frame size has changed.
+ * java/awt/Component.java (reshape): Only repaint and post
+ component events if component is showing.
+ * java/awt/Container.java (addImpl): Only post container event if
+ container is showing.
+ (remove): Likewise.
+ * java/awt/Window.java (setLocationRelativeTo): Implement.
+ (setBoundsCallback): Only post component events if component is
+ showing.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (clearRect):
+ Protect against null graphics structure. Flush gdk event queue.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/imageio/ImageReader.java,
+ javax/imageio/ImageTranscoder.java,
+ javax/imageio/ImageWriter.java,
+ javax/imageio/spi/ImageInputStreamSpi.java,
+ javax/imageio/spi/ImageOutputStreamSpi.java,
+ javax/imageio/spi/ServiceRegistry.java,
+ javax/imageio/stream/ImageInputStream.java,
+ javax/imageio/stream/ImageOutputStream.java: Updated.
+ * javax/imageio/IIOException.java,
+ javax/imageio/IIOImage.java,
+ javax/imageio/IIOParam.java,
+ javax/imageio/IIOParamController.java,
+ javax/imageio/ImageIO.java,
+ javax/imageio/ImageReadParam.java,
+ javax/imageio/ImageTypeSpecifier.java,
+ javax/imageio/ImageWriteParam.java,
+ javax/imageio/spi/IIORegistry.java,
+ javax/imageio/spi/ImageReaderSpi.java,
+ javax/imageio/spi/ImageWriterSpi.java,
+ javax/imageio/stream/FileCacheImageInputStream.java,
+ javax/imageio/stream/FileCacheImageOutputStream.java,
+ javax/imageio/stream/FileImageInputStream.java,
+ javax/imageio/stream/FileImageOutputStream.java,
+ javax/imageio/stream/ImageInputStreamImpl.java,
+ javax/imageio/stream/ImageOutputStreamImpl.java,
+ javax/imageio/stream/MemoryCacheImageInputStream.java,
+ javax/imageio/stream/MemoryCacheImageOutputStream.java,
+ javax/imageio/event/IIOReadProgressListener.java,
+ javax/imageio/event/IIOReadUpdateListener.java,
+ javax/imageio/event/IIOReadWarningListener.java,
+ javax/imageio/event/IIOWriteProgressListener.java,
+ javax/imageio/event/IIOWriteWarningListener.java,
+ javax/imageio/metadata/IIOMetadata.java,
+ javax/imageio/metadata/IIOMetadataController.java,
+ javax/imageio/metadata/IIOMetadataFormat.java,
+ javax/imageio/metadata/IIOInvalidTreeException.java,
+ javax/imageio/metadata/IIOMetadataFormatImpl.java,
+ javax/imageio/metadata/IIOMetadataNode.java: New files.
+ * Makefile.am (javax_source_files): Added new files
+ * Makefile.in: Regenerated.
+
+2005-02-15 Graydon Hoare <graydon@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java:
+ Rework painting into BufferedImages
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
+ Construct BufferedImage with alpha only when alpha is
+ present in colormodel.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
+ Rework painting into client-side jint arrays.
+ * jni/gtk-peer/gtkcairopeer.h:
+ Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/DefaultListCellRenderer.java
+ (serialVersionUID): Made private.
+ (getListCellRendererComponent): Set horizontal alignment.
+ * javax/swing/JLabel.java
+ (setVerticalAlignment): Re-implemented.
+ (setHorizontalAlignment): Do nothing if old value = new value.
+ * javax/swing/JList.java
+ (setCellRenderer): Likewise.
+ (setModel): Re-implemented.
+ (setSelectionModel): Likewise.
+
+2005-02-15 David Gilbert <david.gilbert@object-refinery.com>
+
+ * java/awt/Component.java,
+ java/awt/geom/Rectangle2D.java:
+ Javadoc fixes.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/AbstractListModel.java
+ (fireContentsChanged): Simplified.
+ (fireIntervalAdded): Likewise.
+ (fireIntervalRemoved): Likewise.
+ * javax/swing/DefaultSingleSelectionModel.java:
+ Reformatted.
+ (fireStateChanged): Simplified.
+ * javax/swing/JPopupMenu.java
+ (setSelectionModel): Set property.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/print/Book.java: Reformatted.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/geom/Area.java
+ (QuadSegment.curveArea): Remove unused variables.
+ (CubicSegment.curveArea): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JTree.java
+ (ANCHOR_SELECTION_PATH_PROPERTY): Added @since tag.
+ (LEAD_SELECTION_PATH_PROPERTY): Likewise.
+ (EXPANDS_SELECTED_PATHS_PROPERTY): Likewise.
+ (EXPANDED): New constant.
+ (COLLAPSED): Likewise.
+ (nodeStates): New field.
+ (cellEditor): New method.
+ (cellRenderer): Likewise.
+ (selectionModel): Likewise.
+ (treeModel): Likewise.
+ (scrollPathToVisible): Likewise.
+ (scrollRowToVisible): Likewise.
+ (isCollapsed): Likewise.
+ (isExpanded): Likewise.
+ (clearToggledPaths): Likewise.
+ (getDescendantToggledPaths): Likewise.
+ (hasBeenExpanded): Likewise.
+ (isVisible): Likewise.
+ (isPathEditable): Likewise.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JLayeredPane.java: Reformatted.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/tree/DefaultMutableTreeNode.java:
+ Completely Revised.
+ * javax/swing/tree/MutableTreeNode.java:
+ Reformatted.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JFormattedTextField.java
+ (setDocument): Call setDocument of super class. Don't fire property
+ change event.
+
+2005-02-15 Sven de Marothy <sven@physto.se>
+
+ * java/awt/image/IndexColorModel.java:
+ Add FIXME with respect to alpha handling.
+ (getAlpha): Default to returning opaque pixels.
+ * java/awt/image/MultiPixelPackedSampleModel.java
+ (MultiPixelPackedSampleModel): Corrected parameters, order of
+ bit shifts and masks, stride length off by one.
+
+2005-02-15 Michael Koch <konqueror@gmx.de>
+
+ * javax/swing/JList.java, javax/swing/JTree.java:
+ Added much new methods and fixed much methods setting bound properties.
+
+2005-02-16 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (gnu_xml_source_files): Removed
+ gnu/xml/dom/DomCDATA.java, gnu/xml/dom/DomEx.java,
+ gnu/xml/dom/DomFragment.java, gnu/xml/dom/DomPI.java and
+ gnu/xml/dom/ls/DomLSEx.java. Replaced by adding
+ gnu/xml/dom/DomCDATASection.java, gnu/xml/dom/DomDOMException.java,
+ gnu/xml/dom/DomDocumentFragment.java,
+ gnu/xml/dom/DomProcessingInstruction.java and
+ gnu/xml/dom/ls/DomLSException.java.
+ * Makefile.in: Regenerated.
+
+2005-02-16 Tom Tromey <tromey@redhat.com>
+
+ * gnu/xml/aelfred2/SAXDriver.java: Ensure that null is returned when
+ attribute index is out of bounds.
+
+2005-02-16 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/aelfred2/SAXDriver.java: Corrected implementation of
+ isDeclared methods. Improved performance of isSpecified methods.
+
+2005-02-16 Chris Burdess <dog@gnu.org>
+
+ Fixes bug libgcj/19864
+ * gnu/xml/dom/DomAttr.java,
+ gnu/xml/dom/DomCDATA.java,
+ gnu/xml/dom/DomCDATASection.java,
+ gnu/xml/dom/DomCharacterData.java,
+ gnu/xml/dom/DomDOMException.java,
+ gnu/xml/dom/DomDoctype.java,
+ gnu/xml/dom/DomDocument.java,
+ gnu/xml/dom/DomDocumentConfiguration.java,
+ gnu/xml/dom/DomDocumentFragment.java,
+ gnu/xml/dom/DomElement.java,
+ gnu/xml/dom/DomEx.java,
+ gnu/xml/dom/DomFragment.java,
+ gnu/xml/dom/DomImpl.java,
+ gnu/xml/dom/DomIterator.java,
+ gnu/xml/dom/DomNamedNodeMap.java,
+ gnu/xml/dom/DomNode.java,
+ gnu/xml/dom/DomNsNode.java,
+ gnu/xml/dom/DomPI.java,
+ gnu/xml/dom/DomProcessingInstruction.java,
+ gnu/xml/dom/DomText.java,
+ gnu/xml/dom/DomLSEx.java,
+ gnu/xml/dom/DomLSException.java,
+ gnu/xml/dom/DomLSParser.java,
+ gnu/xml/dom/DomLSSerializer.java: Refactoring of exception and DOM
+ implementation class names to conform to Classpath guidelines. Make
+ DomLSException use JDK 1.4+ exception chaining.
+ * gnu/xml/util/SAXNullTransformerFactory.java,
+ gnu/xml/xpath/Predicate.java: Use constants relative to
+ declaring class or interface.
+
+2005-02-16 Andrew Haley <aph@redhat.com>
+
+ * javax/security/auth/Subject.java (doAsPrivileged): If acc is
+ null, create a new AccessControlContext.
+ * java/security/SecureClassLoader.java (protectionDomainCache):
+ new field.
+ (defineClass): Create a new protection domain and add it to our
+ cache.
+
+ * java/rmi/server/UnicastRemoteObject.java (exportObject): Call
+ addStub() to keep track of the stub we've exported.
+ (unexportObject): Call deleteStub().
+ * java/rmi/server/RemoteObject.java (stubs): New field.
+ (addStub): New method.
+ (deleteStub): New method.
+ (toStub): Rewrite.
+
+ * java/lang/VMCompiler.java (loadSharedLibrary): Pass
+ true to findHelper (tryParents).
+ * gnu/gcj/runtime/SharedLibLoader.java (SharedLibLoader):
+ Likewise.
+ * java/net/URLClassLoader.java (SoURLLoader): Likewise.
+ * gnu/gcj/runtime/SharedLibHelper.java (SharedLibHelper): Pass
+ ProtectionDomain.
+ If tryParents is false, don't scan parent class loaders.
+
+ * java/security/Permissions.java (PermissionsHash.implies):
+ Iterate over the collection and invoke implies() on each
+ element.
+
+2005-02-16 Andrew Haley <aph@redhat.com>
+
+ * gnu/gcj/runtime/PersistentByteMap.java (name, values, fc): new
+ fields.
+ (PersistentByteMap): Set name
+ Magic number changed to 0x67636a64 ("gcjd").
+ (init): Force the map to be prime.
+ (emptyPersistentByteMap): File name was a string, now a File.
+ (addBytes): Share srings between entries.
+ (stringTableSize): New method.
+ (capacity): Scale by load factor.
+ (force): New method.
+ (getFile): New method.
+ (close): New method.
+ (putAll): New method.
+ (ByteWrapper): New class.
+ * gnu/gcj/tools/gcj_dbtool/Main.java (verbose): New field.
+ (main): Guess the average string size as 32, not 64.
+ Copy a database before modifying it, so that we can update a
+ database in a running system.
+ If a database isn't big enough, resize it.
+ "-m": new option: merges databases.
+ "-a": Create a new detabase if it doesn't exist.
+ (usage): Correct, add new option.
+ (addJar): Copy a database before modifying it.
+ (resizeMap): New method.
+
+2005-02-15 David Daney <ddaney@avtrex.com>
+ Bryce McKinlay <mckinlay@redhat.com>
+
+ * prims.cc (_Jv_CreateJavaVM): Add comment about initialization order.
+ * posix-threads.cc (_Jv_InitThreads): Call block_sigchld() here to
+ ensure that GC threads inherit the new signal mask.
+ (block_sigchld): Call JvFail rather than throwing exception if
+ pthread_sigmask() fails.
+
2005-02-15 Mark Wielaard <mark@klomp.org>
* java/util/jar/Attributes.java (Name.CLASS_PATH): Document that
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 03e3450c10e..7f151387edc 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -118,14 +118,33 @@ pkgconfig_DATA = libgcj.pc
jardir = $(datadir)/java
jar_DATA = libgcj-@gcc_version@.jar
+if JAVA_HOME_SET
+JAVA_HOME_DIR = $(JAVA_HOME)
+BOOT_CLASS_PATH_DIR = $(JAVA_HOME)/lib/rt.jar
+else
+JAVA_HOME_DIR = $(prefix)
+BOOT_CLASS_PATH_DIR = $(jardir)/$(jar_DATA)
+endif
+
## FIXME: Using libdir violates GNU coding standards.
secdir = $(libdir)/security
## Where to install default logging property file.
propdir = $(libdir)
+## Where the standard .db file is found.
+dbexecdir = $(libdir)/gcj-@gcc_version@
+## Name of the default .db.
+db_name = classmap.db
+## Compiler specific component of the .db file
+db_pathtail = gcj-@gcc_version@/$(db_name)
+
## For now, only on native systems. FIXME.
if NATIVE
bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool
+
+## It is convenient to actually build and install the default database
+## when gcj-dbtool is available.
+dbexec_DATA = $(db_name)
endif
bin_SCRIPTS = addr2name.awk
@@ -170,8 +189,13 @@ AM_CXXFLAGS = \
-D_GNU_SOURCE \
-DPREFIX="\"$(prefix)\"" \
-DLIBDIR="\"$(libdir)\"" \
- -DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \
- -DJAVA_EXT_DIRS="\"$(jardir)/ext\""
+ -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \
+ -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
+ -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \
+ -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \
+ -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \
+ -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \
+ -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\""
AM_GCJFLAGS = \
@LIBGCJ_JAVAFLAGS@ \
@@ -220,12 +244,18 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
libgcj0_convenience_la_SOURCES = prims.cc jni.cc exception.cc \
link.cc defineclass.cc interpret.cc verify.cc \
$(nat_source_files) $(math_c_source_files) $(java_source_files) \
- $(gnu_xml_source_files) $(built_java_source_files) \
+ $(built_java_source_files) \
$(BOEHMGC_SRC) $(NOGC_SRC) \
$(BACKTRACE_SRC) \
$(POSIX_PLATFORM_SRC) $(WIN32_PLATFORM_SRC) $(ECOS_PLATFORM_SRC) \
$(DARWIN_CRT_SRC) \
$(POSIX_THREAD_SRC) $(WIN32_THREAD_SRC) $(NO_THREAD_SRC)
+libgcj0_convenience_la_LIBADD = \
+ gnu-xml.lo javax-imageio.lo \
+ javax-xml.lo gnu-java-beans.lo \
+ external/sax/libsax-gcj.la \
+ external/w3c_dom/libw3c-gcj.la
+
noinst_LTLIBRARIES = libgcj0_convenience.la
libgcj_la_SOURCES =
@@ -241,15 +271,24 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
libgcj_la_LIBADD = \
- external/sax/libsax_convenience.la \
- external/w3c_dom/libw3c_convenience.la \
libgcj0_convenience.la \
$(LIBFFI) $(ZLIBS) $(GCLIBS) $(propertyo_files)
-libgcj_la_DEPENDENCIES = libgcj-@gcc_version@.jar \
+libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h \
- $(libgcj_la_LIBADD)
+ $(LIBLTDL) $(libgcj_la_LIBADD)
libgcj_la_LINK = $(LIBLINK)
+
+## The .db file. This rule is only used for native builds, so it is
+## safe to invoke gcj-dbtool.
+$(db_name): gcj-dbtool$(EXEEXT)
+## In case it exists already.
+ @rm -f $(db_name)
+## We don't actually care if it fails -- if it does, just make an
+## empty file. This is simpler than trying to discover when mmap is
+## not available.
+ ./gcj-dbtool -n $(db_name) || touch $(db_name)
+
# Gtk/Cairo JNI sources.
if GTK_CAIRO
gtk_cairo_c_source_files = \
@@ -262,12 +301,11 @@ endif
gtk_c_source_files = \
$(gtk_cairo_c_source_files) \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c \
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c \
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
+jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \
@@ -284,7 +322,6 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c \
-jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \
@@ -301,10 +338,7 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
jni/gtk-peer/gthread-jni.c \
jni/gtk-peer/gtk_jawt.c \
-jni/classpath/jcl.c \
-jni/classpath/jnilink.c \
-jni/classpath/native_state.c \
-jni/classpath/primlib.c
+jni/classpath/native_state.c
## Java sources for Gtk peers.
gtk_awt_peer_sources = \
@@ -314,8 +348,11 @@ gnu/java/awt/peer/gtk/GdkFontPeer.java \
gnu/java/awt/peer/gtk/GdkGlyphVector.java \
gnu/java/awt/peer/gtk/GdkGraphics.java \
gnu/java/awt/peer/gtk/GdkGraphics2D.java \
+gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java \
gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \
gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
+gnu/java/awt/peer/gtk/GdkRobotPeer.java \
+gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java \
gnu/java/awt/peer/gtk/GtkButtonPeer.java \
gnu/java/awt/peer/gtk/GtkCanvasPeer.java \
gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java \
@@ -334,7 +371,6 @@ gnu/java/awt/peer/gtk/GtkImage.java \
gnu/java/awt/peer/gtk/GtkImagePainter.java \
gnu/java/awt/peer/gtk/GtkLabelPeer.java \
gnu/java/awt/peer/gtk/GtkListPeer.java \
-gnu/java/awt/peer/gtk/GtkMainThread.java \
gnu/java/awt/peer/gtk/GtkMenuBarPeer.java \
gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java \
gnu/java/awt/peer/gtk/GtkMenuItemPeer.java \
@@ -355,8 +391,6 @@ gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
gtk_jni_headers = $(patsubst %.java,jniinclude/%.h,$(subst /,_,$(gtk_awt_peer_sources)))
-jniinclude/gnu_java_awt_peer_gtk_GdkFontMetrics.h: gnu/java/awt/peer/gtk/GdkFontMetrics.java
-jniinclude/gnu_java_awt_peer_gtk_GdkGlyphVector.h: gnu/java/awt/peer/gtk/GdkGlyphVector.java
jniinclude/gnu_java_awt_peer_gtk_GdkGraphics.h: gnu/java/awt/peer/gtk/GdkGraphics.java
jniinclude/gnu_java_awt_peer_gtk_GdkGraphics2D.h: gnu/java/awt/peer/gtk/GdkGraphics2D.java
jniinclude/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
@@ -380,7 +414,6 @@ jniinclude/gnu_java_awt_peer_gtk_GtkImage.h: gnu/java/awt/peer/gtk/GtkImage.java
jniinclude/gnu_java_awt_peer_gtk_GtkImagePainter.h: gnu/java/awt/peer/gtk/GtkImagePainter.java
jniinclude/gnu_java_awt_peer_gtk_GtkLabelPeer.h: gnu/java/awt/peer/gtk/GtkLabelPeer.java
jniinclude/gnu_java_awt_peer_gtk_GtkListPeer.h: gnu/java/awt/peer/gtk/GtkListPeer.java
-jniinclude/gnu_java_awt_peer_gtk_GtkMainThread.h: gnu/java/awt/peer/gtk/GtkMainThread.java
jniinclude/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
jniinclude/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
jniinclude/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
@@ -405,9 +438,7 @@ $(gtk_jni_headers): %.h:
echo "$(GCJH) -jni -d jniinclude -classpath '' -bootclasspath $(top_builddir) $$input"; \
$(GCJH) -jni -d jniinclude -classpath '' -bootclasspath $(top_builddir) $$input
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkFontMetrics.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkFontPeer.h
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGlyphVector.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGraphics2D.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGraphics.h
@@ -429,7 +460,6 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.lo: $(top_builddir)/jniinclude
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkImagePainter.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkLabelPeer.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkListPeer.h
-jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMainThread.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h
@@ -450,30 +480,27 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo: $(top_builddir)/jniinclude/
$(lib_gnu_java_awt_peer_gtk_la_OBJECTS): $(lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES)
lib_gnu_java_awt_peer_gtk_la_SOURCES = \
-$(gtk_awt_peer_sources) \
$(gtk_c_source_files) \
jni/gtk-peer/gthread-jni.h \
jni/gtk-peer/gtkpeer.h \
-jni/classpath/jcl.h \
-jni/classpath/jnilink.h \
-jni/classpath/native_state.h \
-jni/classpath/primlib.h
+jni/classpath/native_state.h
lib_gnu_java_awt_peer_gtk_la_CFLAGS = \
-Ijniinclude -I$(srcdir)/jni/classpath \
-I$(srcdir)/jni/gtk-peer $(PEDANTIC_CFLAGS) $(GTK_CFLAGS) $(LIBART_CFLAGS) \
- $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS)
+ $(X_CFLAGS) $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS)
lib_gnu_java_awt_peer_gtk_la_GCJFLAGS = $(AM_GCJFLAGS) -fjni
-lib_gnu_java_awt_peer_gtk_la_LIBADD = $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
-lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = $(gtk_jni_headers) libgcj-@gcc_version@.jar libgcj.la libgcj.spec
+lib_gnu_java_awt_peer_gtk_la_LIBADD = gtk-awt-peer.lo $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
+lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = gtk-awt-peer.lo $(gtk_jni_headers) libgcj-$(gcc_version).jar libgcj.la libgcj.spec
## The mysterious backslash in the grep pattern is consumed by make.
lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \
- -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
+ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) $(X_LIBS) -lXtst
lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK)
libjawt_la_SOURCES = jawt.c
libjawt_la_CFLAGS = -I$(srcdir)/jni/classpath $(PEDANTIC_CFLAGS) $(X_CFLAGS)
-libjawt_la_LIBADD = lib-gnu-java-awt-peer-gtk.la
+## See jv_convert_LDADD.
+libjawt_la_LIBADD = -L$(here)/.libs lib-gnu-java-awt-peer-gtk.la
libjawt_la_LDFLAGS = \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
$(LIBGCJ_LD_SYMBOLIC)
@@ -486,6 +513,7 @@ lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-@gcc_version@.jar libgcj.la libgcj.spe
lib_gnu_awt_xlib_la_LIBADD = $(xlib_javao_files)
## We require libstdc++-v3 to be in the same build tree.
lib_gnu_awt_xlib_la_CPPFLAGS = \
+ $(AM_CPPFLAGS) \
-I../libstdc++-v3/include \
-I../libstdc++-v3/include/$(target_noncanonical) \
-I$(srcdir)/../libstdc++-v3/libsupc++
@@ -501,11 +529,14 @@ all_java_source_files = \
$(built_java_source_files) \
$(gtk_awt_peer_sources) \
$(xlib_java_source_files) \
- $(gnu_xml_source_files)
+ $(gnu_xml_source_files) \
+ $(javax_imageio_source_files) \
+ $(javax_xml_source_files) \
+ $(gnu_java_beans_source_files)
all_java_class_files = $(all_java_source_files:.java=.class)
-all_property_files = $(property_files) $(jgss_property_files) \
+all_property_files = $(property_files) \
java/util/logging/logging.properties
## Build property files into the library.
@@ -514,7 +545,7 @@ gnu/regexp/MessagesBundle.properties \
gnu/regexp/MessagesBundle_fr.properties \
org/ietf/jgss/MessagesBundle.properties
-propertyo_files = $(property_files:.properties=.properties.lo)
+propertyo_files = $(property_files:.properties=.properties.lo)
%.properties.lo: %.properties
$(LTGCJCOMPILE) -o $@ -c $< -Wc,--resource,`echo $@ | sed "s/\.lo$$//"`
@@ -523,16 +554,16 @@ if ONESTEP
# Compile all classfiles in one go.
-classes.stamp: $(all_java_source_files)
+classes.stamp: $(all_java_source_files) gnu/gcj/tools/gcj_dbtool/Main.java
@echo Compiling Java sourcefiles...
@: $(call write_entries_to_file,$?,libgcj.sourcelist)
$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(BOOTCLASSPATH) -d $(here) @libgcj.sourcelist
-
+ echo > classes.stamp
# This next rule seems backward, but reflects the fact that 1) all
# classfiles are compiled in one go when classes.stamp is built and 2)
# anything which depends on a particular .class file must wait until
# this file is built.
-$(all_java_class_files): classes.stamp
+$(all_java_class_files) gnu/gcj/tools/gcj_dbtool/Main.class: classes.stamp
else # !ONESTEP
@@ -598,9 +629,6 @@ SUFFIXES = .class .java .h .properties
$(filter-out gnu/gcj/runtime/StackTrace.lo, $(javao_files)) $(xlib_javao_files): %.lo: %.java
$(LTGCJCOMPILE) -o $@ -c $<
-$(gtk_awt_peer_sources:.java=.lo) $(gnu_xml_source_files:.java=.lo): %.lo: %.java
- $(LTGCJCOMPILE) -fjni -o $@ -c $<
-
## A special case. The sibcall optimization can change the number of
## frames on the stack, and StackTrace makes assumptions about this
## number.
@@ -625,6 +653,69 @@ lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPEND
## ################################################################
##
+## Some packages must be built with the binary compatibility ABI. We
+## compile each such package into a .so, broken down more or less by
+## conceptual unit.
+##
+
+## Depend on the sources, even though we are going to compile the
+## classes.
+gnu-xml.lo: $(gnu_xml_source_files)
+## FIXME: this is ugly. We want to make sure the .class files have
+## been built, but we don't want a real dependency on them as this
+## would cause our target to be rebuilt whenever any .java file is
+## touched.
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -fjni -findirect-dispatch -c -o gnu-xml.lo \
+ `find gnu/xml -name '*.class' -print | sort -r`
+
+## Depend on the sources, even though we are going to compile the
+## classes.
+javax-imageio.lo: $(javax_imageio_source_files)
+## FIXME: this is ugly. We want to make sure the .class files have
+## been built, but we don't want a real dependency on them as this
+## would cause our target to be rebuilt whenever any .java file is
+## touched.
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -c -o javax-imageio.lo \
+ `find javax/imageio -name '*.class' -print | sort -r`
+
+## Depend on the sources, even though we are going to compile the
+## classes.
+javax-xml.lo: $(javax_xml_source_files)
+## FIXME: this is ugly. We want to make sure the .class files have
+## been built, but we don't want a real dependency on them as this
+## would cause our target to be rebuilt whenever any .java file is
+## touched.
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -c -o javax-xml.lo \
+ `find javax/xml -name '*.class' -print | sort -r`
+
+## Depend on the sources, even though we are going to compile the
+## classes.
+gnu-java-beans.lo: $(gnu_java_beans_source_files)
+## FIXME: this is ugly. We want to make sure the .class files have
+## been built, but we don't want a real dependency on them as this
+## would cause our target to be rebuilt whenever any .java file is
+## touched.
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -c -o gnu-java-beans.lo \
+ `find gnu/java/beans -name '*.class' -print | sort -r`
+
+## Depend on the sources, even though we are going to compile the
+## classes.
+gtk-awt-peer.lo: $(gtk_awt_peer_sources)
+## FIXME: this is ugly. We want to make sure the .class files have
+## been built, but we don't want a real dependency on them as this
+## would cause our target to be rebuilt whenever any .java file is
+## touched.
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -fjni -c -o gtk-awt-peer.lo \
+ `find gnu/java/awt/peer/gtk -name '*.class' -print | sort -r`
+
+## ################################################################
+
+##
## How to build header files.
##
@@ -649,7 +740,7 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
gnu/java/nio/PipeImpl$$SourceChannelImpl.h \
$(PLATFORM_INNER_NAT_HDRS)
-nat_headers = $(ordinary_nat_headers) $(inner_nat_headers)
+nat_headers = $(ordinary_nat_headers) $(inner_nat_headers) gnu/gcj/tools/gcj_dbtool/Main.h
nat_headers_install = $(ordinary_nat_headers)
xlib_nat_headers = $(xlib_java_source_files:.java=.h)
@@ -741,7 +832,7 @@ java/lang/reflect/Proxy$$ProxyType.h: java/lang/reflect/Proxy.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
'java/lang/reflect/Proxy$$ProxyType'
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class
+gnu/gcj/runtime/ExtensionClassLoader.h: gnu/gcj/runtime/ExtensionClassLoader.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
-friend 'class ::java::lang::ClassLoader;' \
$(basename $<)
@@ -962,7 +1053,8 @@ jv_convert_LDADD = -L$(here)/.libs libgcj.la
## linking this program.
jv_convert_DEPENDENCIES = libgcj.la libgcj.spec
-gcj_dbtool_SOURCES = gnu/gcj/tools/gcj_dbtool/Main.java
+gcj_dbtool_SOURCES = gnu/gcj/tools/gcj_dbtool/Main.java \
+ gnu/gcj/tools/gcj_dbtool/natMain.cc
## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We
## need this because we are explicitly using libtool to link using the
## `.la' file.
@@ -1048,6 +1140,60 @@ gnu/gcj/convert/UnicodeToBytes.java
## hand.
special_java_source_files = java/lang/Class.java java/lang/Object.java
+gnu_java_beans_source_files = \
+gnu/java/beans/decoder/AbstractContext.java \
+gnu/java/beans/decoder/AbstractCreatableObjectContext.java \
+gnu/java/beans/decoder/AbstractElementHandler.java \
+gnu/java/beans/decoder/AbstractObjectContext.java \
+gnu/java/beans/decoder/ArrayContext.java \
+gnu/java/beans/decoder/ArrayHandler.java \
+gnu/java/beans/decoder/AssemblyException.java \
+gnu/java/beans/decoder/BooleanHandler.java \
+gnu/java/beans/decoder/ByteHandler.java \
+gnu/java/beans/decoder/CharHandler.java \
+gnu/java/beans/decoder/ClassHandler.java \
+gnu/java/beans/decoder/ConstructorContext.java \
+gnu/java/beans/decoder/Context.java \
+gnu/java/beans/decoder/DecoderContext.java \
+gnu/java/beans/decoder/DefaultExceptionListener.java \
+gnu/java/beans/decoder/DoubleHandler.java \
+gnu/java/beans/decoder/DummyContext.java \
+gnu/java/beans/decoder/DummyHandler.java \
+gnu/java/beans/decoder/ElementHandler.java \
+gnu/java/beans/decoder/FloatHandler.java \
+gnu/java/beans/decoder/GrowableArrayContext.java \
+gnu/java/beans/decoder/IndexContext.java \
+gnu/java/beans/decoder/IntHandler.java \
+gnu/java/beans/decoder/JavaHandler.java \
+gnu/java/beans/decoder/LongHandler.java \
+gnu/java/beans/decoder/MethodContext.java \
+gnu/java/beans/decoder/MethodFinder.java \
+gnu/java/beans/decoder/NullHandler.java \
+gnu/java/beans/decoder/ObjectContext.java \
+gnu/java/beans/decoder/ObjectHandler.java \
+gnu/java/beans/decoder/PersistenceParser.java \
+gnu/java/beans/decoder/PropertyContext.java \
+gnu/java/beans/decoder/ShortHandler.java \
+gnu/java/beans/decoder/SimpleHandler.java \
+gnu/java/beans/decoder/StaticMethodContext.java \
+gnu/java/beans/decoder/StringHandler.java \
+gnu/java/beans/decoder/VoidHandler.java \
+gnu/java/beans/editors/ColorEditor.java \
+gnu/java/beans/editors/FontEditor.java \
+gnu/java/beans/editors/NativeBooleanEditor.java \
+gnu/java/beans/editors/NativeByteEditor.java \
+gnu/java/beans/editors/NativeDoubleEditor.java \
+gnu/java/beans/editors/NativeFloatEditor.java \
+gnu/java/beans/editors/NativeIntEditor.java \
+gnu/java/beans/editors/NativeLongEditor.java \
+gnu/java/beans/editors/NativeShortEditor.java \
+gnu/java/beans/editors/StringEditor.java \
+gnu/java/beans/BeanInfoEmbryo.java \
+gnu/java/beans/DummyAppletContext.java \
+gnu/java/beans/DummyAppletStub.java \
+gnu/java/beans/ExplicitBeanInfo.java \
+gnu/java/beans/IntrospectionIncubator.java
+
awt_java_source_files = \
gnu/awt/LightweightRedirector.java \
gnu/awt/j2d/AbstractGraphicsState.java \
@@ -1082,21 +1228,6 @@ gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/awt/peer/ClasspathTextLayoutPeer.java \
-gnu/java/beans/editors/ColorEditor.java \
-gnu/java/beans/editors/FontEditor.java \
-gnu/java/beans/editors/NativeBooleanEditor.java \
-gnu/java/beans/editors/NativeByteEditor.java \
-gnu/java/beans/editors/NativeDoubleEditor.java \
-gnu/java/beans/editors/NativeFloatEditor.java \
-gnu/java/beans/editors/NativeIntEditor.java \
-gnu/java/beans/editors/NativeLongEditor.java \
-gnu/java/beans/editors/NativeShortEditor.java \
-gnu/java/beans/editors/StringEditor.java \
-gnu/java/beans/info/ComponentBeanInfo.java \
-gnu/java/beans/BeanInfoEmbryo.java \
-gnu/java/beans/EmptyBeanInfo.java \
-gnu/java/beans/ExplicitBeanInfo.java \
-gnu/java/beans/IntrospectionIncubator.java \
java/applet/Applet.java \
java/applet/AppletStub.java \
java/applet/AppletContext.java \
@@ -1474,6 +1605,7 @@ java/beans/VetoableChangeListenerProxy.java \
java/beans/VetoableChangeSupport.java \
java/beans/Visibility.java \
java/beans/AppletInitializer.java \
+java/beans/XMLDecoder.java \
javax/swing/border/AbstractBorder.java \
javax/swing/border/BevelBorder.java \
javax/swing/border/Border.java \
@@ -1499,6 +1631,7 @@ javax/swing/plaf/basic/BasicComboBoxRenderer.java \
javax/swing/plaf/basic/BasicComboPopup.java \
javax/swing/plaf/basic/BasicDesktopIconUI.java \
javax/swing/plaf/basic/BasicDesktopPaneUI.java \
+javax/swing/plaf/basic/BasicEditorPaneUI.java \
javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \
javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \
@@ -1555,7 +1688,9 @@ javax/swing/plaf/TabbedPaneUI.java \
javax/swing/plaf/TextUI.java \
javax/swing/plaf/TreeUI.java \
javax/swing/plaf/ViewportUI.java \
+javax/swing/plaf/metal/DefaultMetalTheme.java \
javax/swing/plaf/metal/MetalLookAndFeel.java \
+javax/swing/plaf/metal/MetalTheme.java \
javax/swing/plaf/ColorUIResource.java \
javax/swing/plaf/DimensionUIResource.java \
javax/swing/plaf/FontUIResource.java \
@@ -1585,7 +1720,6 @@ javax/swing/plaf/TableUI.java \
javax/swing/plaf/ToolBarUI.java \
javax/swing/plaf/ToolTipUI.java \
javax/swing/AbstractListModel.java \
-javax/swing/AbstractSet.java \
javax/swing/colorchooser/AbstractColorChooserPanel.java \
javax/swing/colorchooser/ColorChooserComponentFactory.java \
javax/swing/colorchooser/ColorSelectionModel.java \
@@ -1615,12 +1749,12 @@ javax/swing/ButtonGroup.java \
javax/swing/ButtonModel.java \
javax/swing/ComponentInputMap.java \
javax/swing/DefaultButtonModel.java \
-javax/swing/DefaultCellRenderer.java \
javax/swing/DefaultListModel.java \
javax/swing/DefaultListSelectionModel.java \
javax/swing/Icon.java \
javax/swing/ImageIcon.java \
javax/swing/InputMap.java \
+javax/swing/InternalFrameFocusTraversalPolicy.java \
javax/swing/JApplet.java \
javax/swing/JButton.java \
javax/swing/JCheckBox.java \
@@ -1649,11 +1783,14 @@ javax/swing/JTree.java \
javax/swing/JViewport.java \
javax/swing/JWindow.java \
javax/swing/KeyStroke.java \
+javax/swing/LayoutFocusTraversalPolicy.java \
javax/swing/ListCellRenderer.java \
javax/swing/ListModel.java \
javax/swing/ListSelectionModel.java \
javax/swing/LookAndFeel.java \
javax/swing/Scrollable.java \
+javax/swing/SortingFocusTraversalPolicy.java \
+javax/swing/SpinnerDateModel.java \
javax/swing/SpinnerListModel.java \
javax/swing/SpinnerModel.java \
javax/swing/SpinnerNumberModel.java \
@@ -1719,6 +1856,7 @@ javax/swing/text/ComponentView.java \
javax/swing/text/DefaultCaret.java \
javax/swing/text/DefaultEditorKit.java \
javax/swing/text/DefaultHighlighter.java \
+javax/swing/text/DefaultStyledDocument.java \
javax/swing/text/Document.java \
javax/swing/text/DocumentFilter.java \
javax/swing/text/EditorKit.java \
@@ -1737,6 +1875,7 @@ javax/swing/text/PlainView.java \
javax/swing/text/Position.java \
javax/swing/text/Segment.java \
javax/swing/text/SimpleAttributeSet.java \
+javax/swing/text/StringContent.java \
javax/swing/text/Style.java \
javax/swing/text/StyleConstants.java \
javax/swing/text/StyleContext.java \
@@ -1931,7 +2070,7 @@ gnu/java/rmi/server/UnicastRemoteStub.java \
gnu/java/rmi/server/UnicastServer.java \
gnu/java/rmi/server/UnicastServerRef.java
-javax_source_files = \
+javax_imageio_source_files = \
javax/imageio/ImageWriteParam.java \
javax/imageio/ImageReader.java \
javax/imageio/ImageWriter.java \
@@ -1977,7 +2116,63 @@ javax/imageio/event/IIOWriteProgressListener.java \
javax/imageio/ImageTranscoder.java \
javax/imageio/ImageTypeSpecifier.java \
javax/imageio/ImageIO.java \
-javax/imageio/IIOImage.java \
+javax/imageio/IIOImage.java
+
+javax_xml_source_files = \
+javax/xml/xpath/XPathConstants.java \
+javax/xml/xpath/XPathFunction.java \
+javax/xml/xpath/XPathVariableResolver.java \
+javax/xml/xpath/XPathExpressionException.java \
+javax/xml/xpath/XPathFunctionResolver.java \
+javax/xml/xpath/XPath.java \
+javax/xml/xpath/XPathFactoryConfigurationException.java \
+javax/xml/xpath/XPathFactory.java \
+javax/xml/xpath/XPathException.java \
+javax/xml/xpath/XPathExpression.java \
+javax/xml/xpath/XPathFunctionException.java \
+javax/xml/validation/ValidatorHandler.java \
+javax/xml/validation/Validator.java \
+javax/xml/validation/TypeInfoProvider.java \
+javax/xml/validation/SchemaFactory.java \
+javax/xml/validation/Schema.java \
+javax/xml/parsers/SAXParserFactory.java \
+javax/xml/parsers/FactoryConfigurationError.java \
+javax/xml/parsers/SAXParser.java \
+javax/xml/parsers/DocumentBuilderFactory.java \
+javax/xml/parsers/ParserConfigurationException.java \
+javax/xml/parsers/DocumentBuilder.java \
+javax/xml/datatype/DatatypeFactory.java \
+javax/xml/datatype/XMLGregorianCalendar.java \
+javax/xml/datatype/Duration.java \
+javax/xml/datatype/DatatypeConfigurationException.java \
+javax/xml/datatype/DatatypeConstants.java \
+javax/xml/XMLConstants.java \
+javax/xml/namespace/NamespaceContext.java \
+javax/xml/namespace/QName.java \
+javax/xml/transform/TransformerException.java \
+javax/xml/transform/TransformerFactoryConfigurationError.java \
+javax/xml/transform/sax/SAXResult.java \
+javax/xml/transform/sax/TransformerHandler.java \
+javax/xml/transform/sax/SAXTransformerFactory.java \
+javax/xml/transform/sax/SAXSource.java \
+javax/xml/transform/sax/TemplatesHandler.java \
+javax/xml/transform/OutputKeys.java \
+javax/xml/transform/stream/StreamResult.java \
+javax/xml/transform/stream/StreamSource.java \
+javax/xml/transform/Source.java \
+javax/xml/transform/SourceLocator.java \
+javax/xml/transform/ErrorListener.java \
+javax/xml/transform/TransformerConfigurationException.java \
+javax/xml/transform/Templates.java \
+javax/xml/transform/Result.java \
+javax/xml/transform/URIResolver.java \
+javax/xml/transform/dom/DOMSource.java \
+javax/xml/transform/dom/DOMLocator.java \
+javax/xml/transform/dom/DOMResult.java \
+javax/xml/transform/Transformer.java \
+javax/xml/transform/TransformerFactory.java
+
+javax_source_files = \
javax/net/VanillaSocketFactory.java \
javax/net/ssl/TrustManagerFactorySpi.java \
javax/net/ssl/SSLKeyException.java \
@@ -2016,6 +2211,10 @@ javax/print/attribute/HashPrintServiceAttributeSet.java \
javax/print/attribute/Attribute.java \
javax/print/attribute/DocAttributeSet.java \
javax/print/attribute/PrintRequestAttributeSet.java \
+javax/print/attribute/standard/Chromaticity.java \
+javax/print/attribute/standard/Destination.java \
+javax/print/attribute/standard/MediaPrintableArea.java \
+javax/print/attribute/standard/MediaSize.java \
javax/print/attribute/standard/NumberOfInterveningJobs.java \
javax/print/attribute/standard/PrinterMakeAndModel.java \
javax/print/attribute/standard/PrinterStateReason.java \
@@ -2212,58 +2411,6 @@ javax/naming/NameClassPair.java \
javax/naming/RefAddr.java \
javax/naming/CompositeName.java \
javax/naming/Name.java \
-javax/xml/xpath/XPathConstants.java \
-javax/xml/xpath/XPathFunction.java \
-javax/xml/xpath/XPathVariableResolver.java \
-javax/xml/xpath/XPathExpressionException.java \
-javax/xml/xpath/XPathFunctionResolver.java \
-javax/xml/xpath/XPath.java \
-javax/xml/xpath/XPathFactoryConfigurationException.java \
-javax/xml/xpath/XPathFactory.java \
-javax/xml/xpath/XPathException.java \
-javax/xml/xpath/XPathExpression.java \
-javax/xml/xpath/XPathFunctionException.java \
-javax/xml/validation/ValidatorHandler.java \
-javax/xml/validation/Validator.java \
-javax/xml/validation/TypeInfoProvider.java \
-javax/xml/validation/SchemaFactory.java \
-javax/xml/validation/Schema.java \
-javax/xml/parsers/SAXParserFactory.java \
-javax/xml/parsers/FactoryConfigurationError.java \
-javax/xml/parsers/SAXParser.java \
-javax/xml/parsers/DocumentBuilderFactory.java \
-javax/xml/parsers/ParserConfigurationException.java \
-javax/xml/parsers/DocumentBuilder.java \
-javax/xml/datatype/DatatypeFactory.java \
-javax/xml/datatype/XMLGregorianCalendar.java \
-javax/xml/datatype/Duration.java \
-javax/xml/datatype/DatatypeConfigurationException.java \
-javax/xml/datatype/DatatypeConstants.java \
-javax/xml/XMLConstants.java \
-javax/xml/namespace/NamespaceContext.java \
-javax/xml/namespace/QName.java \
-javax/xml/transform/TransformerException.java \
-javax/xml/transform/TransformerFactoryConfigurationError.java \
-javax/xml/transform/sax/SAXResult.java \
-javax/xml/transform/sax/TransformerHandler.java \
-javax/xml/transform/sax/SAXTransformerFactory.java \
-javax/xml/transform/sax/SAXSource.java \
-javax/xml/transform/sax/TemplatesHandler.java \
-javax/xml/transform/OutputKeys.java \
-javax/xml/transform/stream/StreamResult.java \
-javax/xml/transform/stream/StreamSource.java \
-javax/xml/transform/Source.java \
-javax/xml/transform/SourceLocator.java \
-javax/xml/transform/ErrorListener.java \
-javax/xml/transform/TransformerConfigurationException.java \
-javax/xml/transform/Templates.java \
-javax/xml/transform/Result.java \
-javax/xml/transform/URIResolver.java \
-javax/xml/transform/dom/DOMSource.java \
-javax/xml/transform/dom/DOMLocator.java \
-javax/xml/transform/dom/DOMResult.java \
-javax/xml/transform/Transformer.java \
-javax/xml/transform/TransformerFactory.java \
javax/security/cert/CertificateNotYetValidException.java \
javax/security/cert/Certificate.java \
javax/security/cert/X509Certificate.java \
@@ -2498,10 +2645,9 @@ gnu/xml/util/Resolver.java \
gnu/xml/util/DoParse.java \
gnu/xml/util/XHTMLWriter.java \
gnu/xml/util/SAXNullTransformerFactory.java \
-gnu/xml/dom/DomCDATA.java \
gnu/xml/dom/DomXPathNSResolver.java \
-gnu/xml/dom/ls/DomLSEx.java \
gnu/xml/dom/ls/FilteredSAXEventSink.java \
+gnu/xml/dom/ls/DomLSException.java \
gnu/xml/dom/ls/DomLSSerializer.java \
gnu/xml/dom/ls/DomLSInput.java \
gnu/xml/dom/ls/DomLSOutput.java \
@@ -2512,14 +2658,14 @@ gnu/xml/dom/ls/WriterOutputStream.java \
gnu/xml/dom/DomElement.java \
gnu/xml/dom/DomNsNode.java \
gnu/xml/dom/DomAttr.java \
-gnu/xml/dom/DomPI.java \
gnu/xml/dom/DTDAttributeTypeInfo.java \
gnu/xml/dom/DomDocumentBuilder.java \
gnu/xml/dom/DTDElementTypeInfo.java \
-gnu/xml/dom/DomEx.java \
gnu/xml/dom/DomDocument.java \
gnu/xml/dom/DomXPathExpression.java \
gnu/xml/dom/DomDocumentConfiguration.java \
+gnu/xml/dom/DomDocumentFragment.java \
+gnu/xml/dom/DomProcessingInstruction.java \
gnu/xml/dom/Consumer.java \
gnu/xml/dom/DomComment.java \
gnu/xml/dom/DomCharacterData.java \
@@ -2539,9 +2685,10 @@ gnu/xml/dom/DomNodeIterator.java \
gnu/xml/dom/DomNotation.java \
gnu/xml/dom/JAXPFactory.java \
gnu/xml/dom/DomIterator.java \
-gnu/xml/dom/DomFragment.java \
gnu/xml/dom/DomEvent.java \
gnu/xml/dom/DomEntity.java \
+gnu/xml/dom/DomCDATASection.java \
+gnu/xml/dom/DomDOMException.java \
gnu/xml/transform/GenerateIdFunction.java \
gnu/xml/transform/FormatNumberFunction.java \
gnu/xml/transform/ValueOfNode.java \
@@ -2864,18 +3011,20 @@ gnu/gcj/RawDataManaged.java \
gnu/gcj/io/DefaultMimeTypes.java \
gnu/gcj/io/MimeTypes.java \
gnu/gcj/io/SimpleSHSStream.java \
+gnu/gcj/runtime/BootClassLoader.java \
+gnu/gcj/runtime/ExtensionClassLoader.java \
gnu/gcj/runtime/FileDeleter.java \
gnu/gcj/runtime/FinalizerThread.java \
+gnu/gcj/runtime/HelperClassLoader.java \
gnu/gcj/runtime/JNIWeakRef.java \
gnu/gcj/runtime/MethodRef.java \
gnu/gcj/runtime/NameFinder.java \
gnu/gcj/runtime/PersistentByteMap.java \
gnu/gcj/runtime/SharedLibHelper.java \
gnu/gcj/runtime/SharedLibLoader.java \
-gnu/gcj/runtime/StackTrace.java \
gnu/gcj/runtime/StringBuffer.java \
+gnu/gcj/runtime/StackTrace.java \
gnu/gcj/runtime/SystemClassLoader.java \
-gnu/gcj/runtime/VMClassLoader.java \
gnu/gcj/util/Debug.java \
gnu/java/io/ASN1ParsingException.java \
gnu/java/io/Base64InputStream.java \
@@ -3027,8 +3176,11 @@ gnu/java/locale/LocaleInformation_zh_SG.java \
gnu/java/locale/LocaleInformation_zh_TW.java \
gnu/java/math/MPN.java \
gnu/java/net/BASE64.java \
+gnu/java/net/CRLFInputStream.java \
+gnu/java/net/CRLFOutputStream.java \
gnu/java/net/DefaultContentHandlerFactory.java \
gnu/java/net/EmptyX509TrustManager.java \
+gnu/java/net/GetLocalHostAction.java \
gnu/java/net/HeaderFieldHelper.java \
gnu/java/net/LineInputStream.java \
gnu/java/net/PlainDatagramSocketImpl.java \
@@ -3039,6 +3191,22 @@ gnu/java/net/protocol/core/CoreInputStream.java \
gnu/java/net/protocol/core/Handler.java \
gnu/java/net/protocol/file/Connection.java \
gnu/java/net/protocol/file/Handler.java \
+gnu/java/net/protocol/ftp/ActiveModeDTP.java \
+gnu/java/net/protocol/ftp/BlockInputStream.java \
+gnu/java/net/protocol/ftp/BlockOutputStream.java \
+gnu/java/net/protocol/ftp/CompressedInputStream.java \
+gnu/java/net/protocol/ftp/CompressedOutputStream.java \
+gnu/java/net/protocol/ftp/DTP.java \
+gnu/java/net/protocol/ftp/DTPInputStream.java \
+gnu/java/net/protocol/ftp/DTPOutputStream.java \
+gnu/java/net/protocol/ftp/FTPConnection.java \
+gnu/java/net/protocol/ftp/FTPException.java \
+gnu/java/net/protocol/ftp/FTPResponse.java \
+gnu/java/net/protocol/ftp/FTPURLConnection.java \
+gnu/java/net/protocol/ftp/Handler.java \
+gnu/java/net/protocol/ftp/PassiveModeDTP.java \
+gnu/java/net/protocol/ftp/StreamInputStream.java \
+gnu/java/net/protocol/ftp/StreamOutputStream.java \
gnu/java/net/protocol/gcjlib/Connection.java \
gnu/java/net/protocol/gcjlib/Handler.java \
gnu/java/net/protocol/http/Authenticator.java \
@@ -3067,6 +3235,7 @@ gnu/java/net/protocol/jar/Connection.java \
gnu/java/net/protocol/jar/Handler.java \
gnu/java/nio/ChannelInputStream.java \
gnu/java/nio/ChannelOutputStream.java \
+gnu/java/nio/ChannelReader.java \
gnu/java/nio/DatagramChannelImpl.java \
gnu/java/nio/DatagramChannelSelectionKey.java \
gnu/java/nio/FileLockImpl.java \
@@ -3102,12 +3271,18 @@ gnu/java/security/PolicyFile.java \
gnu/java/security/action/GetPropertyAction.java \
gnu/java/security/action/GetSecurityPropertyAction.java \
gnu/java/security/action/SetAccessibleAction.java \
+gnu/java/security/ber/BER.java \
+gnu/java/security/ber/BEREncodingException.java \
+gnu/java/security/ber/BERReader.java \
+gnu/java/security/ber/BERValue.java \
gnu/java/security/der/BitString.java \
gnu/java/security/der/DER.java \
gnu/java/security/der/DEREncodingException.java \
gnu/java/security/der/DERReader.java \
gnu/java/security/der/DERValue.java \
gnu/java/security/der/DERWriter.java \
+gnu/java/security/pkcs/PKCS7SignedData.java \
+gnu/java/security/pkcs/SignerInfo.java \
gnu/java/security/provider/CollectionCertStoreImpl.java \
gnu/java/security/provider/DSAKeyFactory.java \
gnu/java/security/provider/DSAKeyPairGenerator.java \
@@ -3610,7 +3785,6 @@ gnu/gcj/runtime/natNameFinder.cc \
gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natStackTrace.cc \
gnu/gcj/runtime/natStringBuffer.cc \
-gnu/gcj/runtime/natVMClassLoader.cc \
gnu/gcj/util/natDebug.cc \
gnu/java/lang/natMainThread.cc \
gnu/java/net/natPlainDatagramSocketImpl.cc \
@@ -3651,6 +3825,7 @@ java/nio/natDirectByteBufferImpl.cc \
java/text/natCollator.cc \
java/util/natResourceBundle.cc \
java/util/natVMTimeZone.cc \
+java/util/logging/natLogger.cc \
java/util/zip/natDeflater.cc \
java/util/zip/natInflater.cc
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index 7b311587cca..424010cf872 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -92,8 +92,9 @@ am__vpath_adj = case $$p in \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" \
- "$(DESTDIR)$(bindir)" "$(DESTDIR)$(jardir)" \
- "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"
+ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" \
+ "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" \
+ "$(DESTDIR)$(toolexecmainlibdir)"
toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
am__dirstamp = $(am__leading_dot)dirstamp
@@ -140,57 +141,13 @@ lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
@XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
am__DEPENDENCIES_1 =
am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST = \
- gnu/java/awt/peer/gtk/GdkTextLayout.java \
- gnu/java/awt/peer/gtk/GdkFontMetrics.java \
- gnu/java/awt/peer/gtk/GdkFontPeer.java \
- gnu/java/awt/peer/gtk/GdkGlyphVector.java \
- gnu/java/awt/peer/gtk/GdkGraphics.java \
- gnu/java/awt/peer/gtk/GdkGraphics2D.java \
- gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \
- gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
- gnu/java/awt/peer/gtk/GtkButtonPeer.java \
- gnu/java/awt/peer/gtk/GtkCanvasPeer.java \
- gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java \
- gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java \
- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java \
- gnu/java/awt/peer/gtk/GtkChoicePeer.java \
- gnu/java/awt/peer/gtk/GtkClipboard.java \
- gnu/java/awt/peer/gtk/GtkComponentPeer.java \
- gnu/java/awt/peer/gtk/GtkContainerPeer.java \
- gnu/java/awt/peer/gtk/GtkDialogPeer.java \
- gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java \
- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java \
- gnu/java/awt/peer/gtk/GtkFramePeer.java \
- gnu/java/awt/peer/gtk/GtkGenericPeer.java \
- gnu/java/awt/peer/gtk/GtkImage.java \
- gnu/java/awt/peer/gtk/GtkImagePainter.java \
- gnu/java/awt/peer/gtk/GtkLabelPeer.java \
- gnu/java/awt/peer/gtk/GtkListPeer.java \
- gnu/java/awt/peer/gtk/GtkMainThread.java \
- gnu/java/awt/peer/gtk/GtkMenuBarPeer.java \
- gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java \
- gnu/java/awt/peer/gtk/GtkMenuItemPeer.java \
- gnu/java/awt/peer/gtk/GtkMenuPeer.java \
- gnu/java/awt/peer/gtk/GtkOffScreenImage.java \
- gnu/java/awt/peer/gtk/GtkPanelPeer.java \
- gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java \
- gnu/java/awt/peer/gtk/GtkScrollPanePeer.java \
- gnu/java/awt/peer/gtk/GtkScrollbarPeer.java \
- gnu/java/awt/peer/gtk/GtkTextAreaPeer.java \
- gnu/java/awt/peer/gtk/GtkTextComponentPeer.java \
- gnu/java/awt/peer/gtk/GtkTextFieldPeer.java \
- gnu/java/awt/peer/gtk/GtkToolkit.java \
- gnu/java/awt/peer/gtk/GtkWindowPeer.java \
- gnu/java/awt/peer/gtk/GThreadMutex.java \
- gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c \
- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c \
- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
+ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \
@@ -207,7 +164,6 @@ am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST = \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c \
- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \
@@ -223,63 +179,16 @@ am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST = \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
jni/gtk-peer/gthread-jni.c jni/gtk-peer/gtk_jawt.c \
- jni/classpath/jcl.c jni/classpath/jnilink.c \
- jni/classpath/native_state.c jni/classpath/primlib.c \
- jni/gtk-peer/gthread-jni.h jni/gtk-peer/gtkpeer.h \
- jni/classpath/jcl.h jni/classpath/jnilink.h \
- jni/classpath/native_state.h jni/classpath/primlib.h
-am__objects_3 = gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo \
- gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo
-@GTK_CAIRO_TRUE@am__objects_4 = jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo
-am__objects_5 = $(am__objects_4) \
+ jni/classpath/native_state.c jni/gtk-peer/gthread-jni.h \
+ jni/gtk-peer/gtkpeer.h jni/classpath/native_state.h
+@GTK_CAIRO_TRUE@am__objects_3 = jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo
+am__objects_4 = $(am__objects_3) \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo \
- jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo \
- jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
+ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.lo \
@@ -296,7 +205,6 @@ am__objects_5 = $(am__objects_4) \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkImagePainter.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.lo \
- jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
@@ -313,12 +221,8 @@ am__objects_5 = $(am__objects_4) \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo \
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo \
- jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo \
- jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo \
- jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo \
- jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo
-am_lib_gnu_java_awt_peer_gtk_la_OBJECTS = $(am__objects_3) \
- $(am__objects_5)
+ jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo
+am_lib_gnu_java_awt_peer_gtk_la_OBJECTS = $(am__objects_4)
lib_gnu_java_awt_peer_gtk_la_OBJECTS = \
$(am_lib_gnu_java_awt_peer_gtk_la_OBJECTS)
@GTK_AWT_TRUE@am_lib_gnu_java_awt_peer_gtk_la_rpath = -rpath \
@@ -329,7 +233,9 @@ am__DEPENDENCIES_2 = gnu/regexp/MessagesBundle.properties.lo \
am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2)
am_libgcj_la_OBJECTS =
libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS)
-libgcj0_convenience_la_LIBADD =
+libgcj0_convenience_la_DEPENDENCIES = gnu-xml.lo javax-imageio.lo \
+ javax-xml.lo gnu-java-beans.lo external/sax/libsax-gcj.la \
+ external/w3c_dom/libw3c-gcj.la
am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
link.cc defineclass.cc interpret.cc verify.cc \
gnu/gcj/natCore.cc gnu/gcj/convert/JIS0208_to_Unicode.cc \
@@ -344,8 +250,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/gcj/runtime/natNameFinder.cc \
gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natStackTrace.cc \
- gnu/gcj/runtime/natStringBuffer.cc \
- gnu/gcj/runtime/natVMClassLoader.cc gnu/gcj/util/natDebug.cc \
+ gnu/gcj/runtime/natStringBuffer.cc gnu/gcj/util/natDebug.cc \
gnu/java/lang/natMainThread.cc \
gnu/java/net/natPlainDatagramSocketImpl.cc \
gnu/java/net/natPlainSocketImpl.cc \
@@ -370,21 +275,22 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
java/net/natInetAddress.cc java/nio/channels/natChannels.cc \
java/nio/natDirectByteBufferImpl.cc java/text/natCollator.cc \
java/util/natResourceBundle.cc java/util/natVMTimeZone.cc \
- java/util/zip/natDeflater.cc java/util/zip/natInflater.cc \
- java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c \
- java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c \
- java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c \
- java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c \
- java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c \
- java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c \
- java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c \
- java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c \
- java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c \
- java/lang/e_remainder.c java/lang/s_floor.c \
- java/lang/w_remainder.c java/lang/e_scalb.c java/lang/s_rint.c \
- java/lang/w_sqrt.c java/lang/e_sqrt.c java/lang/s_scalbn.c \
- java/lang/sf_rint.c java/lang/k_cos.c java/lang/s_sin.c \
- java/lang/sf_fabs.c java/lang/Class.java java/lang/Object.java \
+ java/util/logging/natLogger.cc java/util/zip/natDeflater.cc \
+ java/util/zip/natInflater.cc java/lang/dtoa.c \
+ java/lang/k_rem_pio2.c java/lang/s_tan.c java/lang/e_acos.c \
+ java/lang/k_sin.c java/lang/strtod.c java/lang/e_asin.c \
+ java/lang/k_tan.c java/lang/w_acos.c java/lang/e_atan2.c \
+ java/lang/mprec.c java/lang/w_asin.c java/lang/e_exp.c \
+ java/lang/s_atan.c java/lang/w_atan2.c java/lang/e_fmod.c \
+ java/lang/s_ceil.c java/lang/w_exp.c java/lang/e_log.c \
+ java/lang/s_copysign.c java/lang/w_fmod.c java/lang/e_pow.c \
+ java/lang/s_cos.c java/lang/w_log.c java/lang/e_rem_pio2.c \
+ java/lang/s_fabs.c java/lang/w_pow.c java/lang/e_remainder.c \
+ java/lang/s_floor.c java/lang/w_remainder.c \
+ java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c \
+ java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c \
+ java/lang/k_cos.c java/lang/s_sin.c java/lang/sf_fabs.c \
+ java/lang/Class.java java/lang/Object.java \
java/lang/AbstractMethodError.java \
java/lang/ArithmeticException.java \
java/lang/ArrayIndexOutOfBoundsException.java \
@@ -552,17 +458,19 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/gcj/Core.java gnu/gcj/RawData.java \
gnu/gcj/RawDataManaged.java gnu/gcj/io/DefaultMimeTypes.java \
gnu/gcj/io/MimeTypes.java gnu/gcj/io/SimpleSHSStream.java \
+ gnu/gcj/runtime/BootClassLoader.java \
+ gnu/gcj/runtime/ExtensionClassLoader.java \
gnu/gcj/runtime/FileDeleter.java \
gnu/gcj/runtime/FinalizerThread.java \
+ gnu/gcj/runtime/HelperClassLoader.java \
gnu/gcj/runtime/JNIWeakRef.java gnu/gcj/runtime/MethodRef.java \
gnu/gcj/runtime/NameFinder.java \
gnu/gcj/runtime/PersistentByteMap.java \
gnu/gcj/runtime/SharedLibHelper.java \
gnu/gcj/runtime/SharedLibLoader.java \
- gnu/gcj/runtime/StackTrace.java \
gnu/gcj/runtime/StringBuffer.java \
- gnu/gcj/runtime/SystemClassLoader.java \
- gnu/gcj/runtime/VMClassLoader.java gnu/gcj/util/Debug.java \
+ gnu/gcj/runtime/StackTrace.java \
+ gnu/gcj/runtime/SystemClassLoader.java gnu/gcj/util/Debug.java \
gnu/java/io/ASN1ParsingException.java \
gnu/java/io/Base64InputStream.java \
gnu/java/io/ClassLoaderObjectInputStream.java \
@@ -710,8 +618,11 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/java/locale/LocaleInformation_zh_SG.java \
gnu/java/locale/LocaleInformation_zh_TW.java \
gnu/java/math/MPN.java gnu/java/net/BASE64.java \
+ gnu/java/net/CRLFInputStream.java \
+ gnu/java/net/CRLFOutputStream.java \
gnu/java/net/DefaultContentHandlerFactory.java \
gnu/java/net/EmptyX509TrustManager.java \
+ gnu/java/net/GetLocalHostAction.java \
gnu/java/net/HeaderFieldHelper.java \
gnu/java/net/LineInputStream.java \
gnu/java/net/PlainDatagramSocketImpl.java \
@@ -722,6 +633,22 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/java/net/protocol/core/Handler.java \
gnu/java/net/protocol/file/Connection.java \
gnu/java/net/protocol/file/Handler.java \
+ gnu/java/net/protocol/ftp/ActiveModeDTP.java \
+ gnu/java/net/protocol/ftp/BlockInputStream.java \
+ gnu/java/net/protocol/ftp/BlockOutputStream.java \
+ gnu/java/net/protocol/ftp/CompressedInputStream.java \
+ gnu/java/net/protocol/ftp/CompressedOutputStream.java \
+ gnu/java/net/protocol/ftp/DTP.java \
+ gnu/java/net/protocol/ftp/DTPInputStream.java \
+ gnu/java/net/protocol/ftp/DTPOutputStream.java \
+ gnu/java/net/protocol/ftp/FTPConnection.java \
+ gnu/java/net/protocol/ftp/FTPException.java \
+ gnu/java/net/protocol/ftp/FTPResponse.java \
+ gnu/java/net/protocol/ftp/FTPURLConnection.java \
+ gnu/java/net/protocol/ftp/Handler.java \
+ gnu/java/net/protocol/ftp/PassiveModeDTP.java \
+ gnu/java/net/protocol/ftp/StreamInputStream.java \
+ gnu/java/net/protocol/ftp/StreamOutputStream.java \
gnu/java/net/protocol/gcjlib/Connection.java \
gnu/java/net/protocol/gcjlib/Handler.java \
gnu/java/net/protocol/http/Authenticator.java \
@@ -750,6 +677,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/java/net/protocol/jar/Handler.java \
gnu/java/nio/ChannelInputStream.java \
gnu/java/nio/ChannelOutputStream.java \
+ gnu/java/nio/ChannelReader.java \
gnu/java/nio/DatagramChannelImpl.java \
gnu/java/nio/DatagramChannelSelectionKey.java \
gnu/java/nio/FileLockImpl.java \
@@ -780,12 +708,18 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/java/security/action/GetPropertyAction.java \
gnu/java/security/action/GetSecurityPropertyAction.java \
gnu/java/security/action/SetAccessibleAction.java \
+ gnu/java/security/ber/BER.java \
+ gnu/java/security/ber/BEREncodingException.java \
+ gnu/java/security/ber/BERReader.java \
+ gnu/java/security/ber/BERValue.java \
gnu/java/security/der/BitString.java \
gnu/java/security/der/DER.java \
gnu/java/security/der/DEREncodingException.java \
gnu/java/security/der/DERReader.java \
gnu/java/security/der/DERValue.java \
gnu/java/security/der/DERWriter.java \
+ gnu/java/security/pkcs/PKCS7SignedData.java \
+ gnu/java/security/pkcs/SignerInfo.java \
gnu/java/security/provider/CollectionCertStoreImpl.java \
gnu/java/security/provider/DSAKeyFactory.java \
gnu/java/security/provider/DSAKeyPairGenerator.java \
@@ -1287,21 +1221,6 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/awt/peer/ClasspathTextLayoutPeer.java \
- gnu/java/beans/editors/ColorEditor.java \
- gnu/java/beans/editors/FontEditor.java \
- gnu/java/beans/editors/NativeBooleanEditor.java \
- gnu/java/beans/editors/NativeByteEditor.java \
- gnu/java/beans/editors/NativeDoubleEditor.java \
- gnu/java/beans/editors/NativeFloatEditor.java \
- gnu/java/beans/editors/NativeIntEditor.java \
- gnu/java/beans/editors/NativeLongEditor.java \
- gnu/java/beans/editors/NativeShortEditor.java \
- gnu/java/beans/editors/StringEditor.java \
- gnu/java/beans/info/ComponentBeanInfo.java \
- gnu/java/beans/BeanInfoEmbryo.java \
- gnu/java/beans/EmptyBeanInfo.java \
- gnu/java/beans/ExplicitBeanInfo.java \
- gnu/java/beans/IntrospectionIncubator.java \
java/applet/Applet.java java/applet/AppletStub.java \
java/applet/AppletContext.java java/applet/AudioClip.java \
java/awt/AWTError.java java/awt/AWTEvent.java \
@@ -1597,6 +1516,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
java/beans/VetoableChangeListenerProxy.java \
java/beans/VetoableChangeSupport.java \
java/beans/Visibility.java java/beans/AppletInitializer.java \
+ java/beans/XMLDecoder.java \
javax/swing/border/AbstractBorder.java \
javax/swing/border/BevelBorder.java \
javax/swing/border/Border.java \
@@ -1621,6 +1541,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/plaf/basic/BasicComboPopup.java \
javax/swing/plaf/basic/BasicDesktopIconUI.java \
javax/swing/plaf/basic/BasicDesktopPaneUI.java \
+ javax/swing/plaf/basic/BasicEditorPaneUI.java \
javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \
javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \
@@ -1675,7 +1596,9 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/plaf/TabbedPaneUI.java \
javax/swing/plaf/TextUI.java javax/swing/plaf/TreeUI.java \
javax/swing/plaf/ViewportUI.java \
+ javax/swing/plaf/metal/DefaultMetalTheme.java \
javax/swing/plaf/metal/MetalLookAndFeel.java \
+ javax/swing/plaf/metal/MetalTheme.java \
javax/swing/plaf/ColorUIResource.java \
javax/swing/plaf/DimensionUIResource.java \
javax/swing/plaf/FontUIResource.java \
@@ -1703,7 +1626,6 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/plaf/TableUI.java javax/swing/plaf/ToolBarUI.java \
javax/swing/plaf/ToolTipUI.java \
javax/swing/AbstractListModel.java \
- javax/swing/AbstractSet.java \
javax/swing/colorchooser/AbstractColorChooserPanel.java \
javax/swing/colorchooser/ColorChooserComponentFactory.java \
javax/swing/colorchooser/ColorSelectionModel.java \
@@ -1730,14 +1652,14 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/ButtonGroup.java javax/swing/ButtonModel.java \
javax/swing/ComponentInputMap.java \
javax/swing/DefaultButtonModel.java \
- javax/swing/DefaultCellRenderer.java \
javax/swing/DefaultListModel.java \
javax/swing/DefaultListSelectionModel.java \
javax/swing/Icon.java javax/swing/ImageIcon.java \
- javax/swing/InputMap.java javax/swing/JApplet.java \
- javax/swing/JButton.java javax/swing/JCheckBox.java \
- javax/swing/JComponent.java javax/swing/JDialog.java \
- javax/swing/JEditorPane.java \
+ javax/swing/InputMap.java \
+ javax/swing/InternalFrameFocusTraversalPolicy.java \
+ javax/swing/JApplet.java javax/swing/JButton.java \
+ javax/swing/JCheckBox.java javax/swing/JComponent.java \
+ javax/swing/JDialog.java javax/swing/JEditorPane.java \
javax/swing/JFormattedTextField.java javax/swing/JFrame.java \
javax/swing/JLabel.java javax/swing/JLayeredPane.java \
javax/swing/JList.java javax/swing/JMenuBar.java \
@@ -1749,9 +1671,12 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/JToggleButton.java javax/swing/JToolTip.java \
javax/swing/JTree.java javax/swing/JViewport.java \
javax/swing/JWindow.java javax/swing/KeyStroke.java \
+ javax/swing/LayoutFocusTraversalPolicy.java \
javax/swing/ListCellRenderer.java javax/swing/ListModel.java \
javax/swing/ListSelectionModel.java \
javax/swing/LookAndFeel.java javax/swing/Scrollable.java \
+ javax/swing/SortingFocusTraversalPolicy.java \
+ javax/swing/SpinnerDateModel.java \
javax/swing/SpinnerListModel.java \
javax/swing/SpinnerModel.java \
javax/swing/SpinnerNumberModel.java javax/swing/Spring.java \
@@ -1813,6 +1738,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/text/DefaultCaret.java \
javax/swing/text/DefaultEditorKit.java \
javax/swing/text/DefaultHighlighter.java \
+ javax/swing/text/DefaultStyledDocument.java \
javax/swing/text/Document.java \
javax/swing/text/DocumentFilter.java \
javax/swing/text/EditorKit.java javax/swing/text/Element.java \
@@ -1829,6 +1755,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/swing/text/PlainView.java javax/swing/text/Position.java \
javax/swing/text/Segment.java \
javax/swing/text/SimpleAttributeSet.java \
+ javax/swing/text/StringContent.java \
javax/swing/text/Style.java \
javax/swing/text/StyleConstants.java \
javax/swing/text/StyleContext.java \
@@ -1925,49 +1852,6 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
gnu/gcj/convert/Output_UTF8.java \
gnu/gcj/convert/Output_iconv.java \
gnu/gcj/convert/UnicodeToBytes.java \
- javax/imageio/ImageWriteParam.java \
- javax/imageio/ImageReader.java javax/imageio/ImageWriter.java \
- javax/imageio/IIOException.java \
- javax/imageio/IIOParamController.java \
- javax/imageio/ImageReadParam.java javax/imageio/IIOParam.java \
- javax/imageio/spi/IIORegistry.java \
- javax/imageio/spi/ImageWriterSpi.java \
- javax/imageio/spi/ImageOutputStreamSpi.java \
- javax/imageio/spi/ServiceRegistry.java \
- javax/imageio/spi/ImageTranscoderSpi.java \
- javax/imageio/spi/ImageReaderSpi.java \
- javax/imageio/spi/IIOServiceProvider.java \
- javax/imageio/spi/ImageReaderWriterSpi.java \
- javax/imageio/spi/ImageInputStreamSpi.java \
- javax/imageio/spi/RegisterableService.java \
- javax/imageio/metadata/IIOAttr.java \
- javax/imageio/metadata/IIONamedNodeMap.java \
- javax/imageio/metadata/IIONodeList.java \
- javax/imageio/metadata/IIOMetadataFormatImpl.java \
- javax/imageio/metadata/IIOInvalidTreeException.java \
- javax/imageio/metadata/IIOMetadataFormat.java \
- javax/imageio/metadata/IIOMetadataController.java \
- javax/imageio/metadata/IIOMetadataNode.java \
- javax/imageio/metadata/IIOMetadata.java \
- javax/imageio/stream/FileImageOutputStream.java \
- javax/imageio/stream/ImageInputStream.java \
- javax/imageio/stream/IIOByteBuffer.java \
- javax/imageio/stream/FileCacheImageInputStream.java \
- javax/imageio/stream/ImageInputStreamImpl.java \
- javax/imageio/stream/ImageOutputStreamImpl.java \
- javax/imageio/stream/MemoryCacheImageInputStream.java \
- javax/imageio/stream/FileCacheImageOutputStream.java \
- javax/imageio/stream/ImageOutputStream.java \
- javax/imageio/stream/MemoryCacheImageOutputStream.java \
- javax/imageio/stream/FileImageInputStream.java \
- javax/imageio/event/IIOReadProgressListener.java \
- javax/imageio/event/IIOWriteWarningListener.java \
- javax/imageio/event/IIOReadWarningListener.java \
- javax/imageio/event/IIOReadUpdateListener.java \
- javax/imageio/event/IIOWriteProgressListener.java \
- javax/imageio/ImageTranscoder.java \
- javax/imageio/ImageTypeSpecifier.java \
- javax/imageio/ImageIO.java javax/imageio/IIOImage.java \
javax/net/VanillaSocketFactory.java \
javax/net/ssl/TrustManagerFactorySpi.java \
javax/net/ssl/SSLKeyException.java \
@@ -2004,6 +1888,10 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/print/attribute/Attribute.java \
javax/print/attribute/DocAttributeSet.java \
javax/print/attribute/PrintRequestAttributeSet.java \
+ javax/print/attribute/standard/Chromaticity.java \
+ javax/print/attribute/standard/Destination.java \
+ javax/print/attribute/standard/MediaPrintableArea.java \
+ javax/print/attribute/standard/MediaSize.java \
javax/print/attribute/standard/NumberOfInterveningJobs.java \
javax/print/attribute/standard/PrinterMakeAndModel.java \
javax/print/attribute/standard/PrinterStateReason.java \
@@ -2192,58 +2080,6 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
javax/naming/Reference.java javax/naming/NameParser.java \
javax/naming/NameClassPair.java javax/naming/RefAddr.java \
javax/naming/CompositeName.java javax/naming/Name.java \
- javax/xml/xpath/XPathConstants.java \
- javax/xml/xpath/XPathFunction.java \
- javax/xml/xpath/XPathVariableResolver.java \
- javax/xml/xpath/XPathExpressionException.java \
- javax/xml/xpath/XPathFunctionResolver.java \
- javax/xml/xpath/XPath.java \
- javax/xml/xpath/XPathFactoryConfigurationException.java \
- javax/xml/xpath/XPathFactory.java \
- javax/xml/xpath/XPathException.java \
- javax/xml/xpath/XPathExpression.java \
- javax/xml/xpath/XPathFunctionException.java \
- javax/xml/validation/ValidatorHandler.java \
- javax/xml/validation/Validator.java \
- javax/xml/validation/TypeInfoProvider.java \
- javax/xml/validation/SchemaFactory.java \
- javax/xml/validation/Schema.java \
- javax/xml/parsers/SAXParserFactory.java \
- javax/xml/parsers/FactoryConfigurationError.java \
- javax/xml/parsers/SAXParser.java \
- javax/xml/parsers/DocumentBuilderFactory.java \
- javax/xml/parsers/ParserConfigurationException.java \
- javax/xml/parsers/DocumentBuilder.java \
- javax/xml/datatype/DatatypeFactory.java \
- javax/xml/datatype/XMLGregorianCalendar.java \
- javax/xml/datatype/Duration.java \
- javax/xml/datatype/DatatypeConfigurationException.java \
- javax/xml/datatype/DatatypeConstants.java \
- javax/xml/XMLConstants.java \
- javax/xml/namespace/NamespaceContext.java \
- javax/xml/namespace/QName.java \
- javax/xml/transform/TransformerException.java \
- javax/xml/transform/TransformerFactoryConfigurationError.java \
- javax/xml/transform/sax/SAXResult.java \
- javax/xml/transform/sax/TransformerHandler.java \
- javax/xml/transform/sax/SAXTransformerFactory.java \
- javax/xml/transform/sax/SAXSource.java \
- javax/xml/transform/sax/TemplatesHandler.java \
- javax/xml/transform/OutputKeys.java \
- javax/xml/transform/stream/StreamResult.java \
- javax/xml/transform/stream/StreamSource.java \
- javax/xml/transform/Source.java \
- javax/xml/transform/SourceLocator.java \
- javax/xml/transform/ErrorListener.java \
- javax/xml/transform/TransformerConfigurationException.java \
- javax/xml/transform/Templates.java \
- javax/xml/transform/Result.java \
- javax/xml/transform/URIResolver.java \
- javax/xml/transform/dom/DOMSource.java \
- javax/xml/transform/dom/DOMLocator.java \
- javax/xml/transform/dom/DOMResult.java \
- javax/xml/transform/Transformer.java \
- javax/xml/transform/TransformerFactory.java \
javax/security/cert/CertificateNotYetValidException.java \
javax/security/cert/Certificate.java \
javax/security/cert/X509Certificate.java \
@@ -2380,154 +2216,11 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
org/ietf/jgss/GSSName.java org/ietf/jgss/GSSContext.java \
org/ietf/jgss/Oid.java org/ietf/jgss/GSSCredential.java \
org/ietf/jgss/ChannelBinding.java \
- gnu/xml/xpath/EqualityExpr.java \
- gnu/xml/xpath/NumberFunction.java \
- gnu/xml/xpath/StringLengthFunction.java \
- gnu/xml/xpath/NameFunction.java gnu/xml/xpath/SumFunction.java \
- gnu/xml/xpath/Pattern.java gnu/xml/xpath/StringFunction.java \
- gnu/xml/xpath/NegativeExpr.java gnu/xml/xpath/UnionExpr.java \
- gnu/xml/xpath/SubstringFunction.java gnu/xml/xpath/Expr.java \
- gnu/xml/xpath/XPathFactoryImpl.java \
- gnu/xml/xpath/NormalizeSpaceFunction.java \
- gnu/xml/xpath/Constant.java gnu/xml/xpath/Predicate.java \
- gnu/xml/xpath/Path.java gnu/xml/xpath/OrExpr.java \
- gnu/xml/xpath/LangFunction.java \
- gnu/xml/xpath/StartsWithFunction.java \
- gnu/xml/xpath/SubstringAfterFunction.java \
- gnu/xml/xpath/FloorFunction.java \
- gnu/xml/xpath/NotFunction.java gnu/xml/xpath/Root.java \
- gnu/xml/xpath/PositionFunction.java \
- gnu/xml/xpath/VariableReference.java \
- gnu/xml/xpath/DocumentOrderComparator.java \
- gnu/xml/xpath/LocalNameFunction.java \
- gnu/xml/xpath/NamespaceUriFunction.java \
- gnu/xml/xpath/TranslateFunction.java \
- gnu/xml/xpath/FalseFunction.java gnu/xml/xpath/AndExpr.java \
- gnu/xml/xpath/XPathParser.java \
- gnu/xml/xpath/NamespaceTest.java \
- gnu/xml/xpath/ConcatFunction.java gnu/xml/xpath/NameTest.java \
- gnu/xml/xpath/CountFunction.java gnu/xml/xpath/IdFunction.java \
- gnu/xml/xpath/LastFunction.java \
- gnu/xml/xpath/XPathTokenizer.java gnu/xml/xpath/Steps.java \
- gnu/xml/xpath/TrueFunction.java \
- gnu/xml/xpath/BooleanFunction.java \
- gnu/xml/xpath/ParenthesizedExpr.java \
- gnu/xml/xpath/XPathImpl.java gnu/xml/xpath/Selector.java \
- gnu/xml/xpath/RoundFunction.java \
- gnu/xml/xpath/SubstringBeforeFunction.java \
- gnu/xml/xpath/Function.java gnu/xml/xpath/CeilingFunction.java \
- gnu/xml/xpath/RelationalExpr.java \
- gnu/xml/xpath/FunctionCall.java \
- gnu/xml/xpath/NodeTypeTest.java \
- gnu/xml/xpath/ArithmeticExpr.java gnu/xml/xpath/Test.java \
- gnu/xml/xpath/ContainsFunction.java \
- gnu/xml/pipeline/EventFilter.java \
- gnu/xml/pipeline/NSFilter.java \
- gnu/xml/pipeline/XsltFilter.java \
- gnu/xml/pipeline/ValidationConsumer.java \
- gnu/xml/pipeline/PipelineFactory.java \
- gnu/xml/pipeline/TextConsumer.java \
- gnu/xml/pipeline/LinkFilter.java \
- gnu/xml/pipeline/TeeConsumer.java \
- gnu/xml/pipeline/DomConsumer.java \
- gnu/xml/pipeline/EventConsumer.java \
- gnu/xml/pipeline/WellFormednessFilter.java \
- gnu/xml/pipeline/XIncludeFilter.java \
- gnu/xml/pipeline/CallFilter.java \
- gnu/xml/aelfred2/XmlParser.java \
- gnu/xml/aelfred2/XmlReader.java \
- gnu/xml/aelfred2/JAXPFactory.java \
- gnu/xml/aelfred2/ContentHandler2.java \
- gnu/xml/aelfred2/SAXDriver.java gnu/xml/util/XCat.java \
- gnu/xml/util/DomParser.java gnu/xml/util/XMLWriter.java \
- gnu/xml/util/Resolver.java gnu/xml/util/DoParse.java \
- gnu/xml/util/XHTMLWriter.java \
- gnu/xml/util/SAXNullTransformerFactory.java \
- gnu/xml/dom/DomCDATA.java gnu/xml/dom/DomXPathNSResolver.java \
- gnu/xml/dom/ls/DomLSEx.java \
- gnu/xml/dom/ls/FilteredSAXEventSink.java \
- gnu/xml/dom/ls/DomLSSerializer.java \
- gnu/xml/dom/ls/DomLSInput.java gnu/xml/dom/ls/DomLSOutput.java \
- gnu/xml/dom/ls/SAXEventSink.java \
- gnu/xml/dom/ls/DomLSParser.java \
- gnu/xml/dom/ls/ReaderInputStream.java \
- gnu/xml/dom/ls/WriterOutputStream.java \
- gnu/xml/dom/DomElement.java gnu/xml/dom/DomNsNode.java \
- gnu/xml/dom/DomAttr.java gnu/xml/dom/DomPI.java \
- gnu/xml/dom/DTDAttributeTypeInfo.java \
- gnu/xml/dom/DomDocumentBuilder.java \
- gnu/xml/dom/DTDElementTypeInfo.java gnu/xml/dom/DomEx.java \
- gnu/xml/dom/DomDocument.java \
- gnu/xml/dom/DomXPathExpression.java \
- gnu/xml/dom/DomDocumentConfiguration.java \
- gnu/xml/dom/Consumer.java gnu/xml/dom/DomComment.java \
- gnu/xml/dom/DomCharacterData.java gnu/xml/dom/DomExtern.java \
- gnu/xml/dom/DomEntityReference.java \
- gnu/xml/dom/DomNamedNodeMap.java \
- gnu/xml/dom/ImplementationList.java \
- gnu/xml/dom/ImplementationSource.java gnu/xml/dom/DomImpl.java \
- gnu/xml/dom/DomDoctype.java gnu/xml/dom/DomNode.java \
- gnu/xml/dom/DomXPathResult.java \
- gnu/xml/dom/DomDocumentBuilderFactory.java \
- gnu/xml/dom/DomText.java gnu/xml/dom/DomNSResolverContext.java \
- gnu/xml/dom/DomNodeIterator.java gnu/xml/dom/DomNotation.java \
- gnu/xml/dom/JAXPFactory.java gnu/xml/dom/DomIterator.java \
- gnu/xml/dom/DomFragment.java gnu/xml/dom/DomEvent.java \
- gnu/xml/dom/DomEntity.java \
- gnu/xml/transform/GenerateIdFunction.java \
- gnu/xml/transform/FormatNumberFunction.java \
- gnu/xml/transform/ValueOfNode.java \
- gnu/xml/transform/ApplyImportsNode.java \
- gnu/xml/transform/WithParam.java \
- gnu/xml/transform/DocumentFunction.java \
- gnu/xml/transform/SAXSerializer.java \
- gnu/xml/transform/FunctionAvailableFunction.java \
- gnu/xml/transform/ElementAvailableFunction.java \
- gnu/xml/transform/IfNode.java \
- gnu/xml/transform/ApplyTemplatesNode.java \
- gnu/xml/transform/SortKey.java gnu/xml/transform/Key.java \
- gnu/xml/transform/ElementNode.java \
- gnu/xml/transform/CurrentFunction.java \
- gnu/xml/transform/XSLComparator.java \
- gnu/xml/transform/CallTemplateNode.java \
- gnu/xml/transform/TemplatesImpl.java \
- gnu/xml/transform/ChooseNode.java \
- gnu/xml/transform/NumberNode.java \
- gnu/xml/transform/CopyOfNode.java \
- gnu/xml/transform/ParameterNode.java \
- gnu/xml/transform/TransformerFactoryImpl.java \
- gnu/xml/transform/TextNode.java \
- gnu/xml/transform/CopyNode.java \
- gnu/xml/transform/SystemPropertyFunction.java \
- gnu/xml/transform/Stylesheet.java \
- gnu/xml/transform/ProcessingInstructionNode.java \
- gnu/xml/transform/UnparsedEntityUriFunction.java \
- gnu/xml/transform/URIResolverEntityResolver.java \
- gnu/xml/transform/ErrorListenerErrorHandler.java \
- gnu/xml/transform/Bindings.java \
- gnu/xml/transform/AttributeSet.java \
- gnu/xml/transform/Template.java \
- gnu/xml/transform/MessageNode.java \
- gnu/xml/transform/LiteralNode.java \
- gnu/xml/transform/StreamSerializer.java \
- gnu/xml/transform/XSLURIResolver.java \
- gnu/xml/transform/AttributeNode.java \
- gnu/xml/transform/CommentNode.java \
- gnu/xml/transform/ForEachNode.java \
- gnu/xml/transform/KeyFunction.java \
- gnu/xml/transform/TransformerImpl.java \
- gnu/xml/transform/WhenNode.java \
- gnu/xml/transform/NodeNumberNode.java \
- gnu/xml/transform/OtherwiseNode.java \
- gnu/xml/transform/AbstractNumberNode.java \
- gnu/xml/transform/TemplateNode.java \
- gnu/xml/transform/TransformerOutputProperties.java \
- gnu/xml/transform/DOMSourceLocator.java \
java/lang/ConcreteProcess.java \
gnu/classpath/Configuration.java boehm.cc nogc.cc \
sysdep/dwarf2-backtrace.cc posix.cc win32.cc darwin.cc \
posix-threads.cc win32-threads.cc no-threads.cc
-am__objects_6 = gnu/gcj/natCore.lo \
+am__objects_5 = gnu/gcj/natCore.lo \
gnu/gcj/convert/JIS0208_to_Unicode.lo \
gnu/gcj/convert/JIS0212_to_Unicode.lo \
gnu/gcj/convert/Unicode_to_JIS.lo gnu/gcj/convert/natIconv.lo \
@@ -2540,8 +2233,7 @@ am__objects_6 = gnu/gcj/natCore.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 gnu/gcj/util/natDebug.lo \
+ gnu/gcj/runtime/natStringBuffer.lo gnu/gcj/util/natDebug.lo \
gnu/java/lang/natMainThread.lo \
gnu/java/net/natPlainDatagramSocketImpl.lo \
gnu/java/net/natPlainSocketImpl.lo \
@@ -2566,8 +2258,9 @@ am__objects_6 = gnu/gcj/natCore.lo \
java/net/natInetAddress.lo java/nio/channels/natChannels.lo \
java/nio/natDirectByteBufferImpl.lo java/text/natCollator.lo \
java/util/natResourceBundle.lo java/util/natVMTimeZone.lo \
- java/util/zip/natDeflater.lo java/util/zip/natInflater.lo
-am__objects_7 = java/lang/dtoa.lo java/lang/k_rem_pio2.lo \
+ java/util/logging/natLogger.lo java/util/zip/natDeflater.lo \
+ java/util/zip/natInflater.lo
+am__objects_6 = java/lang/dtoa.lo java/lang/k_rem_pio2.lo \
java/lang/s_tan.lo java/lang/e_acos.lo java/lang/k_sin.lo \
java/lang/strtod.lo java/lang/e_asin.lo java/lang/k_tan.lo \
java/lang/w_acos.lo java/lang/e_atan2.lo java/lang/mprec.lo \
@@ -2581,8 +2274,8 @@ am__objects_7 = java/lang/dtoa.lo java/lang/k_rem_pio2.lo \
java/lang/e_scalb.lo java/lang/s_rint.lo java/lang/w_sqrt.lo \
java/lang/e_sqrt.lo java/lang/s_scalbn.lo java/lang/sf_rint.lo \
java/lang/k_cos.lo java/lang/s_sin.lo java/lang/sf_fabs.lo
-am__objects_8 = java/lang/Class.lo java/lang/Object.lo
-am__objects_9 = java/lang/AbstractMethodError.lo \
+am__objects_7 = java/lang/Class.lo java/lang/Object.lo
+am__objects_8 = java/lang/AbstractMethodError.lo \
java/lang/ArithmeticException.lo \
java/lang/ArrayIndexOutOfBoundsException.lo \
java/lang/ArrayStoreException.lo java/lang/AssertionError.lo \
@@ -2730,7 +2423,7 @@ am__objects_9 = java/lang/AbstractMethodError.lo \
java/util/prefs/PreferencesFactory.lo \
java/util/regex/Matcher.lo java/util/regex/Pattern.lo \
java/util/regex/PatternSyntaxException.lo
-am__objects_10 = java/rmi/activation/Activatable.lo \
+am__objects_9 = java/rmi/activation/Activatable.lo \
java/rmi/activation/ActivateFailedException.lo \
java/rmi/activation/ActivationDesc.lo \
java/rmi/activation/ActivationException.lo \
@@ -2808,7 +2501,7 @@ am__objects_10 = java/rmi/activation/Activatable.lo \
gnu/java/rmi/server/UnicastRemoteStub.lo \
gnu/java/rmi/server/UnicastServer.lo \
gnu/java/rmi/server/UnicastServerRef.lo
-am__objects_11 = gnu/awt/LightweightRedirector.lo \
+am__objects_10 = gnu/awt/LightweightRedirector.lo \
gnu/awt/j2d/AbstractGraphicsState.lo \
gnu/awt/j2d/DirectRasterGraphics.lo \
gnu/awt/j2d/Graphics2DImpl.lo \
@@ -2839,30 +2532,16 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
gnu/java/awt/peer/GLightweightPeer.lo \
gnu/java/awt/peer/ClasspathFontPeer.lo \
gnu/java/awt/peer/ClasspathTextLayoutPeer.lo \
- gnu/java/beans/editors/ColorEditor.lo \
- gnu/java/beans/editors/FontEditor.lo \
- gnu/java/beans/editors/NativeBooleanEditor.lo \
- gnu/java/beans/editors/NativeByteEditor.lo \
- gnu/java/beans/editors/NativeDoubleEditor.lo \
- gnu/java/beans/editors/NativeFloatEditor.lo \
- gnu/java/beans/editors/NativeIntEditor.lo \
- gnu/java/beans/editors/NativeLongEditor.lo \
- gnu/java/beans/editors/NativeShortEditor.lo \
- gnu/java/beans/editors/StringEditor.lo \
- gnu/java/beans/info/ComponentBeanInfo.lo \
- gnu/java/beans/BeanInfoEmbryo.lo \
- gnu/java/beans/EmptyBeanInfo.lo \
- gnu/java/beans/ExplicitBeanInfo.lo \
- gnu/java/beans/IntrospectionIncubator.lo java/applet/Applet.lo \
- java/applet/AppletStub.lo java/applet/AppletContext.lo \
- java/applet/AudioClip.lo java/awt/AWTError.lo \
- java/awt/AWTEvent.lo java/awt/AWTEventMulticaster.lo \
- java/awt/AWTException.lo java/awt/AWTPermission.lo \
- java/awt/ActiveEvent.lo java/awt/Adjustable.lo \
- java/awt/BorderLayout.lo java/awt/Button.lo java/awt/Canvas.lo \
- java/awt/CardLayout.lo java/awt/Checkbox.lo \
- java/awt/CheckboxGroup.lo java/awt/CheckboxMenuItem.lo \
- java/awt/Choice.lo java/awt/Color.lo java/awt/Component.lo \
+ java/applet/Applet.lo java/applet/AppletStub.lo \
+ java/applet/AppletContext.lo java/applet/AudioClip.lo \
+ java/awt/AWTError.lo java/awt/AWTEvent.lo \
+ java/awt/AWTEventMulticaster.lo java/awt/AWTException.lo \
+ java/awt/AWTPermission.lo java/awt/ActiveEvent.lo \
+ java/awt/Adjustable.lo java/awt/BorderLayout.lo \
+ java/awt/Button.lo java/awt/Canvas.lo java/awt/CardLayout.lo \
+ java/awt/Checkbox.lo java/awt/CheckboxGroup.lo \
+ java/awt/CheckboxMenuItem.lo java/awt/Choice.lo \
+ java/awt/Color.lo java/awt/Component.lo \
java/awt/ComponentOrientation.lo java/awt/Container.lo \
java/awt/Cursor.lo java/awt/Dialog.lo java/awt/Dimension.lo \
java/awt/Event.lo java/awt/EventDispatchThread.lo \
@@ -3123,7 +2802,7 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
java/beans/VetoableChangeListener.lo \
java/beans/VetoableChangeListenerProxy.lo \
java/beans/VetoableChangeSupport.lo java/beans/Visibility.lo \
- java/beans/AppletInitializer.lo \
+ java/beans/AppletInitializer.lo java/beans/XMLDecoder.lo \
javax/swing/border/AbstractBorder.lo \
javax/swing/border/BevelBorder.lo javax/swing/border/Border.lo \
javax/swing/border/CompoundBorder.lo \
@@ -3146,6 +2825,7 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/plaf/basic/BasicComboPopup.lo \
javax/swing/plaf/basic/BasicDesktopIconUI.lo \
javax/swing/plaf/basic/BasicDesktopPaneUI.lo \
+ javax/swing/plaf/basic/BasicEditorPaneUI.lo \
javax/swing/plaf/basic/BasicFormattedTextFieldUI.lo \
javax/swing/plaf/basic/BasicGraphicsUtils.lo \
javax/swing/plaf/basic/BasicInternalFrameTitlePane.lo \
@@ -3196,7 +2876,9 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/plaf/PanelUI.lo javax/swing/plaf/ScrollPaneUI.lo \
javax/swing/plaf/TabbedPaneUI.lo javax/swing/plaf/TextUI.lo \
javax/swing/plaf/TreeUI.lo javax/swing/plaf/ViewportUI.lo \
+ javax/swing/plaf/metal/DefaultMetalTheme.lo \
javax/swing/plaf/metal/MetalLookAndFeel.lo \
+ javax/swing/plaf/metal/MetalTheme.lo \
javax/swing/plaf/ColorUIResource.lo \
javax/swing/plaf/DimensionUIResource.lo \
javax/swing/plaf/FontUIResource.lo \
@@ -3219,7 +2901,7 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/plaf/SpinnerUI.lo javax/swing/plaf/SplitPaneUI.lo \
javax/swing/plaf/TableHeaderUI.lo javax/swing/plaf/TableUI.lo \
javax/swing/plaf/ToolBarUI.lo javax/swing/plaf/ToolTipUI.lo \
- javax/swing/AbstractListModel.lo javax/swing/AbstractSet.lo \
+ javax/swing/AbstractListModel.lo \
javax/swing/colorchooser/AbstractColorChooserPanel.lo \
javax/swing/colorchooser/ColorChooserComponentFactory.lo \
javax/swing/colorchooser/ColorSelectionModel.lo \
@@ -3246,10 +2928,10 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/ButtonGroup.lo javax/swing/ButtonModel.lo \
javax/swing/ComponentInputMap.lo \
javax/swing/DefaultButtonModel.lo \
- javax/swing/DefaultCellRenderer.lo \
javax/swing/DefaultListModel.lo \
javax/swing/DefaultListSelectionModel.lo javax/swing/Icon.lo \
javax/swing/ImageIcon.lo javax/swing/InputMap.lo \
+ javax/swing/InternalFrameFocusTraversalPolicy.lo \
javax/swing/JApplet.lo javax/swing/JButton.lo \
javax/swing/JCheckBox.lo javax/swing/JComponent.lo \
javax/swing/JDialog.lo javax/swing/JEditorPane.lo \
@@ -3264,15 +2946,18 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/JToggleButton.lo javax/swing/JToolTip.lo \
javax/swing/JTree.lo javax/swing/JViewport.lo \
javax/swing/JWindow.lo javax/swing/KeyStroke.lo \
+ javax/swing/LayoutFocusTraversalPolicy.lo \
javax/swing/ListCellRenderer.lo javax/swing/ListModel.lo \
javax/swing/ListSelectionModel.lo javax/swing/LookAndFeel.lo \
- javax/swing/Scrollable.lo javax/swing/SpinnerListModel.lo \
- javax/swing/SpinnerModel.lo javax/swing/SpinnerNumberModel.lo \
- javax/swing/Spring.lo javax/swing/SpringLayout.lo \
- javax/swing/SwingConstants.lo javax/swing/SwingUtilities.lo \
- javax/swing/Timer.lo javax/swing/ToolTipManager.lo \
- javax/swing/TransferHandler.lo javax/swing/UIDefaults.lo \
- javax/swing/UIManager.lo \
+ javax/swing/Scrollable.lo \
+ javax/swing/SortingFocusTraversalPolicy.lo \
+ javax/swing/SpinnerDateModel.lo \
+ javax/swing/SpinnerListModel.lo javax/swing/SpinnerModel.lo \
+ javax/swing/SpinnerNumberModel.lo javax/swing/Spring.lo \
+ javax/swing/SpringLayout.lo javax/swing/SwingConstants.lo \
+ javax/swing/SwingUtilities.lo javax/swing/Timer.lo \
+ javax/swing/ToolTipManager.lo javax/swing/TransferHandler.lo \
+ javax/swing/UIDefaults.lo javax/swing/UIManager.lo \
javax/swing/UnsupportedLookAndFeelException.lo \
javax/swing/event/AncestorEvent.lo \
javax/swing/event/AncestorListener.lo \
@@ -3324,6 +3009,7 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/text/DefaultCaret.lo \
javax/swing/text/DefaultEditorKit.lo \
javax/swing/text/DefaultHighlighter.lo \
+ javax/swing/text/DefaultStyledDocument.lo \
javax/swing/text/Document.lo \
javax/swing/text/DocumentFilter.lo \
javax/swing/text/EditorKit.lo javax/swing/text/Element.lo \
@@ -3338,7 +3024,8 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/text/PlainView.lo javax/swing/text/Position.lo \
javax/swing/text/Segment.lo \
javax/swing/text/SimpleAttributeSet.lo \
- javax/swing/text/Style.lo javax/swing/text/StyleConstants.lo \
+ javax/swing/text/StringContent.lo javax/swing/text/Style.lo \
+ javax/swing/text/StyleConstants.lo \
javax/swing/text/StyleContext.lo \
javax/swing/text/StyledDocument.lo \
javax/swing/text/StyledEditorKit.lo \
@@ -3406,7 +3093,7 @@ am__objects_11 = gnu/awt/LightweightRedirector.lo \
javax/swing/ProgressMonitorInputStream.lo \
javax/swing/RepaintManager.lo javax/swing/ScrollPaneLayout.lo \
javax/swing/ViewportLayout.lo
-am__objects_12 = gnu/gcj/convert/BytesToUnicode.lo \
+am__objects_11 = gnu/gcj/convert/BytesToUnicode.lo \
gnu/gcj/convert/Convert.lo gnu/gcj/convert/Input_8859_1.lo \
gnu/gcj/convert/Input_ASCII.lo gnu/gcj/convert/Input_EUCJIS.lo \
gnu/gcj/convert/Input_JavaSrc.lo gnu/gcj/convert/Input_SJIS.lo \
@@ -3422,49 +3109,7 @@ am__objects_12 = gnu/gcj/convert/BytesToUnicode.lo \
gnu/gcj/convert/Output_UnicodeLittleUnmarked.lo \
gnu/gcj/convert/Output_UTF8.lo gnu/gcj/convert/Output_iconv.lo \
gnu/gcj/convert/UnicodeToBytes.lo
-am__objects_13 = javax/imageio/ImageWriteParam.lo \
- javax/imageio/ImageReader.lo javax/imageio/ImageWriter.lo \
- javax/imageio/IIOException.lo \
- javax/imageio/IIOParamController.lo \
- javax/imageio/ImageReadParam.lo javax/imageio/IIOParam.lo \
- javax/imageio/spi/IIORegistry.lo \
- javax/imageio/spi/ImageWriterSpi.lo \
- javax/imageio/spi/ImageOutputStreamSpi.lo \
- javax/imageio/spi/ServiceRegistry.lo \
- javax/imageio/spi/ImageTranscoderSpi.lo \
- javax/imageio/spi/ImageReaderSpi.lo \
- javax/imageio/spi/IIOServiceProvider.lo \
- javax/imageio/spi/ImageReaderWriterSpi.lo \
- javax/imageio/spi/ImageInputStreamSpi.lo \
- javax/imageio/spi/RegisterableService.lo \
- javax/imageio/metadata/IIOAttr.lo \
- javax/imageio/metadata/IIONamedNodeMap.lo \
- javax/imageio/metadata/IIONodeList.lo \
- javax/imageio/metadata/IIOMetadataFormatImpl.lo \
- javax/imageio/metadata/IIOInvalidTreeException.lo \
- javax/imageio/metadata/IIOMetadataFormat.lo \
- javax/imageio/metadata/IIOMetadataController.lo \
- javax/imageio/metadata/IIOMetadataNode.lo \
- javax/imageio/metadata/IIOMetadata.lo \
- javax/imageio/stream/FileImageOutputStream.lo \
- javax/imageio/stream/ImageInputStream.lo \
- javax/imageio/stream/IIOByteBuffer.lo \
- javax/imageio/stream/FileCacheImageInputStream.lo \
- javax/imageio/stream/ImageInputStreamImpl.lo \
- javax/imageio/stream/ImageOutputStreamImpl.lo \
- javax/imageio/stream/MemoryCacheImageInputStream.lo \
- javax/imageio/stream/FileCacheImageOutputStream.lo \
- javax/imageio/stream/ImageOutputStream.lo \
- javax/imageio/stream/MemoryCacheImageOutputStream.lo \
- javax/imageio/stream/FileImageInputStream.lo \
- javax/imageio/event/IIOReadProgressListener.lo \
- javax/imageio/event/IIOWriteWarningListener.lo \
- javax/imageio/event/IIOReadWarningListener.lo \
- javax/imageio/event/IIOReadUpdateListener.lo \
- javax/imageio/event/IIOWriteProgressListener.lo \
- javax/imageio/ImageTranscoder.lo \
- javax/imageio/ImageTypeSpecifier.lo javax/imageio/ImageIO.lo \
- javax/imageio/IIOImage.lo javax/net/VanillaSocketFactory.lo \
+am__objects_12 = javax/net/VanillaSocketFactory.lo \
javax/net/ssl/TrustManagerFactorySpi.lo \
javax/net/ssl/SSLKeyException.lo javax/net/ssl/TrustManager.lo \
javax/net/ssl/SSLServerSocket.lo \
@@ -3497,6 +3142,10 @@ am__objects_13 = javax/imageio/ImageWriteParam.lo \
javax/print/attribute/Attribute.lo \
javax/print/attribute/DocAttributeSet.lo \
javax/print/attribute/PrintRequestAttributeSet.lo \
+ javax/print/attribute/standard/Chromaticity.lo \
+ javax/print/attribute/standard/Destination.lo \
+ javax/print/attribute/standard/MediaPrintableArea.lo \
+ javax/print/attribute/standard/MediaSize.lo \
javax/print/attribute/standard/NumberOfInterveningJobs.lo \
javax/print/attribute/standard/PrinterMakeAndModel.lo \
javax/print/attribute/standard/PrinterStateReason.lo \
@@ -3680,57 +3329,6 @@ am__objects_13 = javax/imageio/ImageWriteParam.lo \
javax/naming/Reference.lo javax/naming/NameParser.lo \
javax/naming/NameClassPair.lo javax/naming/RefAddr.lo \
javax/naming/CompositeName.lo javax/naming/Name.lo \
- javax/xml/xpath/XPathConstants.lo \
- javax/xml/xpath/XPathFunction.lo \
- javax/xml/xpath/XPathVariableResolver.lo \
- javax/xml/xpath/XPathExpressionException.lo \
- javax/xml/xpath/XPathFunctionResolver.lo \
- javax/xml/xpath/XPath.lo \
- javax/xml/xpath/XPathFactoryConfigurationException.lo \
- javax/xml/xpath/XPathFactory.lo \
- javax/xml/xpath/XPathException.lo \
- javax/xml/xpath/XPathExpression.lo \
- javax/xml/xpath/XPathFunctionException.lo \
- javax/xml/validation/ValidatorHandler.lo \
- javax/xml/validation/Validator.lo \
- javax/xml/validation/TypeInfoProvider.lo \
- javax/xml/validation/SchemaFactory.lo \
- javax/xml/validation/Schema.lo \
- javax/xml/parsers/SAXParserFactory.lo \
- javax/xml/parsers/FactoryConfigurationError.lo \
- javax/xml/parsers/SAXParser.lo \
- javax/xml/parsers/DocumentBuilderFactory.lo \
- javax/xml/parsers/ParserConfigurationException.lo \
- javax/xml/parsers/DocumentBuilder.lo \
- javax/xml/datatype/DatatypeFactory.lo \
- javax/xml/datatype/XMLGregorianCalendar.lo \
- javax/xml/datatype/Duration.lo \
- javax/xml/datatype/DatatypeConfigurationException.lo \
- javax/xml/datatype/DatatypeConstants.lo \
- javax/xml/XMLConstants.lo \
- javax/xml/namespace/NamespaceContext.lo \
- javax/xml/namespace/QName.lo \
- javax/xml/transform/TransformerException.lo \
- javax/xml/transform/TransformerFactoryConfigurationError.lo \
- javax/xml/transform/sax/SAXResult.lo \
- javax/xml/transform/sax/TransformerHandler.lo \
- javax/xml/transform/sax/SAXTransformerFactory.lo \
- javax/xml/transform/sax/SAXSource.lo \
- javax/xml/transform/sax/TemplatesHandler.lo \
- javax/xml/transform/OutputKeys.lo \
- javax/xml/transform/stream/StreamResult.lo \
- javax/xml/transform/stream/StreamSource.lo \
- javax/xml/transform/Source.lo \
- javax/xml/transform/SourceLocator.lo \
- javax/xml/transform/ErrorListener.lo \
- javax/xml/transform/TransformerConfigurationException.lo \
- javax/xml/transform/Templates.lo javax/xml/transform/Result.lo \
- javax/xml/transform/URIResolver.lo \
- javax/xml/transform/dom/DOMSource.lo \
- javax/xml/transform/dom/DOMLocator.lo \
- javax/xml/transform/dom/DOMResult.lo \
- javax/xml/transform/Transformer.lo \
- javax/xml/transform/TransformerFactory.lo \
javax/security/cert/CertificateNotYetValidException.lo \
javax/security/cert/Certificate.lo \
javax/security/cert/X509Certificate.lo \
@@ -3857,25 +3455,28 @@ am__objects_13 = javax/imageio/ImageWriteParam.lo \
javax/crypto/ExemptionMechanismException.lo \
javax/crypto/ExemptionMechanismSpi.lo \
javax/crypto/EncryptedPrivateKeyInfo.lo javax/crypto/Mac.lo
-am__objects_14 = org/ietf/jgss/GSSManager.lo \
+am__objects_13 = org/ietf/jgss/GSSManager.lo \
org/ietf/jgss/GSSException.lo org/ietf/jgss/MessageProp.lo \
org/ietf/jgss/GSSName.lo org/ietf/jgss/GSSContext.lo \
org/ietf/jgss/Oid.lo org/ietf/jgss/GSSCredential.lo \
org/ietf/jgss/ChannelBinding.lo
-am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \
+am__objects_14 = $(am__objects_8) gnu/classpath/ServiceFactory.lo \
gnu/classpath/ServiceProviderLoadingAction.lo gnu/gcj/Core.lo \
gnu/gcj/RawData.lo gnu/gcj/RawDataManaged.lo \
gnu/gcj/io/DefaultMimeTypes.lo gnu/gcj/io/MimeTypes.lo \
- gnu/gcj/io/SimpleSHSStream.lo gnu/gcj/runtime/FileDeleter.lo \
+ gnu/gcj/io/SimpleSHSStream.lo \
+ gnu/gcj/runtime/BootClassLoader.lo \
+ gnu/gcj/runtime/ExtensionClassLoader.lo \
+ gnu/gcj/runtime/FileDeleter.lo \
gnu/gcj/runtime/FinalizerThread.lo \
+ gnu/gcj/runtime/HelperClassLoader.lo \
gnu/gcj/runtime/JNIWeakRef.lo gnu/gcj/runtime/MethodRef.lo \
gnu/gcj/runtime/NameFinder.lo \
gnu/gcj/runtime/PersistentByteMap.lo \
gnu/gcj/runtime/SharedLibHelper.lo \
gnu/gcj/runtime/SharedLibLoader.lo \
- gnu/gcj/runtime/StackTrace.lo gnu/gcj/runtime/StringBuffer.lo \
- gnu/gcj/runtime/SystemClassLoader.lo \
- gnu/gcj/runtime/VMClassLoader.lo gnu/gcj/util/Debug.lo \
+ gnu/gcj/runtime/StringBuffer.lo gnu/gcj/runtime/StackTrace.lo \
+ gnu/gcj/runtime/SystemClassLoader.lo gnu/gcj/util/Debug.lo \
gnu/java/io/ASN1ParsingException.lo \
gnu/java/io/Base64InputStream.lo \
gnu/java/io/ClassLoaderObjectInputStream.lo \
@@ -4022,8 +3623,11 @@ am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \
gnu/java/locale/LocaleInformation_zh_SG.lo \
gnu/java/locale/LocaleInformation_zh_TW.lo \
gnu/java/math/MPN.lo gnu/java/net/BASE64.lo \
+ gnu/java/net/CRLFInputStream.lo \
+ gnu/java/net/CRLFOutputStream.lo \
gnu/java/net/DefaultContentHandlerFactory.lo \
gnu/java/net/EmptyX509TrustManager.lo \
+ gnu/java/net/GetLocalHostAction.lo \
gnu/java/net/HeaderFieldHelper.lo \
gnu/java/net/LineInputStream.lo \
gnu/java/net/PlainDatagramSocketImpl.lo \
@@ -4033,6 +3637,22 @@ am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \
gnu/java/net/protocol/core/Handler.lo \
gnu/java/net/protocol/file/Connection.lo \
gnu/java/net/protocol/file/Handler.lo \
+ gnu/java/net/protocol/ftp/ActiveModeDTP.lo \
+ gnu/java/net/protocol/ftp/BlockInputStream.lo \
+ gnu/java/net/protocol/ftp/BlockOutputStream.lo \
+ gnu/java/net/protocol/ftp/CompressedInputStream.lo \
+ gnu/java/net/protocol/ftp/CompressedOutputStream.lo \
+ gnu/java/net/protocol/ftp/DTP.lo \
+ gnu/java/net/protocol/ftp/DTPInputStream.lo \
+ gnu/java/net/protocol/ftp/DTPOutputStream.lo \
+ gnu/java/net/protocol/ftp/FTPConnection.lo \
+ gnu/java/net/protocol/ftp/FTPException.lo \
+ gnu/java/net/protocol/ftp/FTPResponse.lo \
+ gnu/java/net/protocol/ftp/FTPURLConnection.lo \
+ gnu/java/net/protocol/ftp/Handler.lo \
+ gnu/java/net/protocol/ftp/PassiveModeDTP.lo \
+ gnu/java/net/protocol/ftp/StreamInputStream.lo \
+ gnu/java/net/protocol/ftp/StreamOutputStream.lo \
gnu/java/net/protocol/gcjlib/Connection.lo \
gnu/java/net/protocol/gcjlib/Handler.lo \
gnu/java/net/protocol/http/Authenticator.lo \
@@ -4061,6 +3681,7 @@ am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \
gnu/java/net/protocol/jar/Handler.lo \
gnu/java/nio/ChannelInputStream.lo \
gnu/java/nio/ChannelOutputStream.lo \
+ gnu/java/nio/ChannelReader.lo \
gnu/java/nio/DatagramChannelImpl.lo \
gnu/java/nio/DatagramChannelSelectionKey.lo \
gnu/java/nio/FileLockImpl.lo \
@@ -4089,12 +3710,18 @@ am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \
gnu/java/security/action/GetPropertyAction.lo \
gnu/java/security/action/GetSecurityPropertyAction.lo \
gnu/java/security/action/SetAccessibleAction.lo \
+ gnu/java/security/ber/BER.lo \
+ gnu/java/security/ber/BEREncodingException.lo \
+ gnu/java/security/ber/BERReader.lo \
+ gnu/java/security/ber/BERValue.lo \
gnu/java/security/der/BitString.lo \
gnu/java/security/der/DER.lo \
gnu/java/security/der/DEREncodingException.lo \
gnu/java/security/der/DERReader.lo \
gnu/java/security/der/DERValue.lo \
gnu/java/security/der/DERWriter.lo \
+ gnu/java/security/pkcs/PKCS7SignedData.lo \
+ gnu/java/security/pkcs/SignerInfo.lo \
gnu/java/security/provider/CollectionCertStoreImpl.lo \
gnu/java/security/provider/DSAKeyFactory.lo \
gnu/java/security/provider/DSAKeyPairGenerator.lo \
@@ -4445,157 +4072,29 @@ am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \
java/util/zip/ZipConstants.lo java/util/zip/ZipEntry.lo \
java/util/zip/ZipException.lo java/util/zip/ZipFile.lo \
java/util/zip/ZipInputStream.lo \
- java/util/zip/ZipOutputStream.lo $(am__objects_10) \
- $(am__objects_11) $(am__objects_12) $(am__objects_13) \
- $(am__objects_14)
-am__objects_16 = $(am__objects_8) $(am__objects_15)
-am__objects_17 = gnu/xml/xpath/EqualityExpr.lo \
- gnu/xml/xpath/NumberFunction.lo \
- gnu/xml/xpath/StringLengthFunction.lo \
- gnu/xml/xpath/NameFunction.lo gnu/xml/xpath/SumFunction.lo \
- gnu/xml/xpath/Pattern.lo gnu/xml/xpath/StringFunction.lo \
- gnu/xml/xpath/NegativeExpr.lo gnu/xml/xpath/UnionExpr.lo \
- gnu/xml/xpath/SubstringFunction.lo gnu/xml/xpath/Expr.lo \
- gnu/xml/xpath/XPathFactoryImpl.lo \
- gnu/xml/xpath/NormalizeSpaceFunction.lo \
- gnu/xml/xpath/Constant.lo gnu/xml/xpath/Predicate.lo \
- gnu/xml/xpath/Path.lo gnu/xml/xpath/OrExpr.lo \
- gnu/xml/xpath/LangFunction.lo \
- gnu/xml/xpath/StartsWithFunction.lo \
- gnu/xml/xpath/SubstringAfterFunction.lo \
- gnu/xml/xpath/FloorFunction.lo gnu/xml/xpath/NotFunction.lo \
- gnu/xml/xpath/Root.lo gnu/xml/xpath/PositionFunction.lo \
- gnu/xml/xpath/VariableReference.lo \
- gnu/xml/xpath/DocumentOrderComparator.lo \
- gnu/xml/xpath/LocalNameFunction.lo \
- gnu/xml/xpath/NamespaceUriFunction.lo \
- gnu/xml/xpath/TranslateFunction.lo \
- gnu/xml/xpath/FalseFunction.lo gnu/xml/xpath/AndExpr.lo \
- gnu/xml/xpath/XPathParser.lo gnu/xml/xpath/NamespaceTest.lo \
- gnu/xml/xpath/ConcatFunction.lo gnu/xml/xpath/NameTest.lo \
- gnu/xml/xpath/CountFunction.lo gnu/xml/xpath/IdFunction.lo \
- gnu/xml/xpath/LastFunction.lo gnu/xml/xpath/XPathTokenizer.lo \
- gnu/xml/xpath/Steps.lo gnu/xml/xpath/TrueFunction.lo \
- gnu/xml/xpath/BooleanFunction.lo \
- gnu/xml/xpath/ParenthesizedExpr.lo gnu/xml/xpath/XPathImpl.lo \
- gnu/xml/xpath/Selector.lo gnu/xml/xpath/RoundFunction.lo \
- gnu/xml/xpath/SubstringBeforeFunction.lo \
- gnu/xml/xpath/Function.lo gnu/xml/xpath/CeilingFunction.lo \
- gnu/xml/xpath/RelationalExpr.lo gnu/xml/xpath/FunctionCall.lo \
- gnu/xml/xpath/NodeTypeTest.lo gnu/xml/xpath/ArithmeticExpr.lo \
- gnu/xml/xpath/Test.lo gnu/xml/xpath/ContainsFunction.lo \
- gnu/xml/pipeline/EventFilter.lo gnu/xml/pipeline/NSFilter.lo \
- gnu/xml/pipeline/XsltFilter.lo \
- gnu/xml/pipeline/ValidationConsumer.lo \
- gnu/xml/pipeline/PipelineFactory.lo \
- gnu/xml/pipeline/TextConsumer.lo \
- gnu/xml/pipeline/LinkFilter.lo gnu/xml/pipeline/TeeConsumer.lo \
- gnu/xml/pipeline/DomConsumer.lo \
- gnu/xml/pipeline/EventConsumer.lo \
- gnu/xml/pipeline/WellFormednessFilter.lo \
- gnu/xml/pipeline/XIncludeFilter.lo \
- gnu/xml/pipeline/CallFilter.lo gnu/xml/aelfred2/XmlParser.lo \
- gnu/xml/aelfred2/XmlReader.lo gnu/xml/aelfred2/JAXPFactory.lo \
- gnu/xml/aelfred2/ContentHandler2.lo \
- gnu/xml/aelfred2/SAXDriver.lo gnu/xml/util/XCat.lo \
- gnu/xml/util/DomParser.lo gnu/xml/util/XMLWriter.lo \
- gnu/xml/util/Resolver.lo gnu/xml/util/DoParse.lo \
- gnu/xml/util/XHTMLWriter.lo \
- gnu/xml/util/SAXNullTransformerFactory.lo \
- gnu/xml/dom/DomCDATA.lo gnu/xml/dom/DomXPathNSResolver.lo \
- gnu/xml/dom/ls/DomLSEx.lo \
- gnu/xml/dom/ls/FilteredSAXEventSink.lo \
- gnu/xml/dom/ls/DomLSSerializer.lo gnu/xml/dom/ls/DomLSInput.lo \
- gnu/xml/dom/ls/DomLSOutput.lo gnu/xml/dom/ls/SAXEventSink.lo \
- gnu/xml/dom/ls/DomLSParser.lo \
- gnu/xml/dom/ls/ReaderInputStream.lo \
- gnu/xml/dom/ls/WriterOutputStream.lo gnu/xml/dom/DomElement.lo \
- gnu/xml/dom/DomNsNode.lo gnu/xml/dom/DomAttr.lo \
- gnu/xml/dom/DomPI.lo gnu/xml/dom/DTDAttributeTypeInfo.lo \
- gnu/xml/dom/DomDocumentBuilder.lo \
- gnu/xml/dom/DTDElementTypeInfo.lo gnu/xml/dom/DomEx.lo \
- gnu/xml/dom/DomDocument.lo gnu/xml/dom/DomXPathExpression.lo \
- gnu/xml/dom/DomDocumentConfiguration.lo \
- gnu/xml/dom/Consumer.lo gnu/xml/dom/DomComment.lo \
- gnu/xml/dom/DomCharacterData.lo gnu/xml/dom/DomExtern.lo \
- gnu/xml/dom/DomEntityReference.lo \
- gnu/xml/dom/DomNamedNodeMap.lo \
- gnu/xml/dom/ImplementationList.lo \
- gnu/xml/dom/ImplementationSource.lo gnu/xml/dom/DomImpl.lo \
- gnu/xml/dom/DomDoctype.lo gnu/xml/dom/DomNode.lo \
- gnu/xml/dom/DomXPathResult.lo \
- gnu/xml/dom/DomDocumentBuilderFactory.lo \
- gnu/xml/dom/DomText.lo gnu/xml/dom/DomNSResolverContext.lo \
- gnu/xml/dom/DomNodeIterator.lo gnu/xml/dom/DomNotation.lo \
- gnu/xml/dom/JAXPFactory.lo gnu/xml/dom/DomIterator.lo \
- gnu/xml/dom/DomFragment.lo gnu/xml/dom/DomEvent.lo \
- gnu/xml/dom/DomEntity.lo \
- gnu/xml/transform/GenerateIdFunction.lo \
- gnu/xml/transform/FormatNumberFunction.lo \
- gnu/xml/transform/ValueOfNode.lo \
- gnu/xml/transform/ApplyImportsNode.lo \
- gnu/xml/transform/WithParam.lo \
- gnu/xml/transform/DocumentFunction.lo \
- gnu/xml/transform/SAXSerializer.lo \
- gnu/xml/transform/FunctionAvailableFunction.lo \
- gnu/xml/transform/ElementAvailableFunction.lo \
- gnu/xml/transform/IfNode.lo \
- gnu/xml/transform/ApplyTemplatesNode.lo \
- gnu/xml/transform/SortKey.lo gnu/xml/transform/Key.lo \
- gnu/xml/transform/ElementNode.lo \
- gnu/xml/transform/CurrentFunction.lo \
- gnu/xml/transform/XSLComparator.lo \
- gnu/xml/transform/CallTemplateNode.lo \
- gnu/xml/transform/TemplatesImpl.lo \
- gnu/xml/transform/ChooseNode.lo \
- gnu/xml/transform/NumberNode.lo \
- gnu/xml/transform/CopyOfNode.lo \
- gnu/xml/transform/ParameterNode.lo \
- gnu/xml/transform/TransformerFactoryImpl.lo \
- gnu/xml/transform/TextNode.lo gnu/xml/transform/CopyNode.lo \
- gnu/xml/transform/SystemPropertyFunction.lo \
- gnu/xml/transform/Stylesheet.lo \
- gnu/xml/transform/ProcessingInstructionNode.lo \
- gnu/xml/transform/UnparsedEntityUriFunction.lo \
- gnu/xml/transform/URIResolverEntityResolver.lo \
- gnu/xml/transform/ErrorListenerErrorHandler.lo \
- gnu/xml/transform/Bindings.lo \
- gnu/xml/transform/AttributeSet.lo \
- gnu/xml/transform/Template.lo gnu/xml/transform/MessageNode.lo \
- gnu/xml/transform/LiteralNode.lo \
- gnu/xml/transform/StreamSerializer.lo \
- gnu/xml/transform/XSLURIResolver.lo \
- gnu/xml/transform/AttributeNode.lo \
- gnu/xml/transform/CommentNode.lo \
- gnu/xml/transform/ForEachNode.lo \
- gnu/xml/transform/KeyFunction.lo \
- gnu/xml/transform/TransformerImpl.lo \
- gnu/xml/transform/WhenNode.lo \
- gnu/xml/transform/NodeNumberNode.lo \
- gnu/xml/transform/OtherwiseNode.lo \
- gnu/xml/transform/AbstractNumberNode.lo \
- gnu/xml/transform/TemplateNode.lo \
- gnu/xml/transform/TransformerOutputProperties.lo \
- gnu/xml/transform/DOMSourceLocator.lo
-am__objects_18 = java/lang/ConcreteProcess.lo \
+ java/util/zip/ZipOutputStream.lo $(am__objects_9) \
+ $(am__objects_10) $(am__objects_11) $(am__objects_12) \
+ $(am__objects_13)
+am__objects_15 = $(am__objects_7) $(am__objects_14)
+am__objects_16 = java/lang/ConcreteProcess.lo \
gnu/classpath/Configuration.lo
-@USING_BOEHMGC_TRUE@am__objects_19 = boehm.lo
-@USING_NOGC_TRUE@am__objects_20 = nogc.lo
-@SUPPLY_BACKTRACE_TRUE@am__objects_21 = sysdep/dwarf2-backtrace.lo
-@USING_POSIX_PLATFORM_TRUE@am__objects_22 = posix.lo
-@USING_WIN32_PLATFORM_TRUE@am__objects_23 = win32.lo
-@USING_ECOS_PLATFORM_TRUE@am__objects_24 = posix.lo
-@USING_DARWIN_CRT_TRUE@am__objects_25 = darwin.lo
-@USING_POSIX_THREADS_TRUE@am__objects_26 = posix-threads.lo
-@USING_WIN32_THREADS_TRUE@am__objects_27 = win32-threads.lo
-@USING_NO_THREADS_TRUE@am__objects_28 = no-threads.lo
+@USING_BOEHMGC_TRUE@am__objects_17 = boehm.lo
+@USING_NOGC_TRUE@am__objects_18 = nogc.lo
+@SUPPLY_BACKTRACE_TRUE@am__objects_19 = sysdep/dwarf2-backtrace.lo
+@USING_POSIX_PLATFORM_TRUE@am__objects_20 = posix.lo
+@USING_WIN32_PLATFORM_TRUE@am__objects_21 = win32.lo
+@USING_ECOS_PLATFORM_TRUE@am__objects_22 = posix.lo
+@USING_DARWIN_CRT_TRUE@am__objects_23 = darwin.lo
+@USING_POSIX_THREADS_TRUE@am__objects_24 = posix-threads.lo
+@USING_WIN32_THREADS_TRUE@am__objects_25 = win32-threads.lo
+@USING_NO_THREADS_TRUE@am__objects_26 = no-threads.lo
am_libgcj0_convenience_la_OBJECTS = prims.lo jni.lo exception.lo \
- link.lo defineclass.lo interpret.lo verify.lo $(am__objects_6) \
- $(am__objects_7) $(am__objects_16) $(am__objects_17) \
- $(am__objects_18) $(am__objects_19) $(am__objects_20) \
- $(am__objects_21) $(am__objects_22) $(am__objects_23) \
- $(am__objects_24) $(am__objects_25) $(am__objects_26) \
- $(am__objects_27) $(am__objects_28)
+ link.lo defineclass.lo interpret.lo verify.lo $(am__objects_5) \
+ $(am__objects_6) $(am__objects_15) $(am__objects_16) \
+ $(am__objects_17) $(am__objects_18) $(am__objects_19) \
+ $(am__objects_20) $(am__objects_21) $(am__objects_22) \
+ $(am__objects_23) $(am__objects_24) $(am__objects_25) \
+ $(am__objects_26)
libgcj0_convenience_la_OBJECTS = $(am_libgcj0_convenience_la_OBJECTS)
am_libgij_la_OBJECTS = gij.lo
libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
@@ -4605,7 +4104,8 @@ libjawt_la_OBJECTS = $(am_libjawt_la_OBJECTS)
@GTK_AWT_TRUE@am_libjawt_la_rpath = -rpath $(toolexeclibdir)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT)
+am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT) \
+ gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT)
gcj_dbtool_OBJECTS = $(am_gcj_dbtool_OBJECTS)
am__gen_from_JIS_SOURCES_DIST = gnu/gcj/convert/gen-from-JIS.c \
gnu/gcj/convert/make-trie.c
@@ -4666,10 +4166,12 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
+dbexecDATA_INSTALL = $(INSTALL_DATA)
jarDATA_INSTALL = $(INSTALL_DATA)
pkgconfigDATA_INSTALL = $(INSTALL_DATA)
toolexecmainlibDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(jar_DATA) $(pkgconfig_DATA) $(toolexecmainlib_DATA)
+DATA = $(dbexec_DATA) $(jar_DATA) $(pkgconfig_DATA) \
+ $(toolexecmainlib_DATA)
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = @DIRLTDL@ gcj include external testsuite
@@ -4703,7 +4205,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -4748,6 +4249,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
@@ -4954,8 +4458,16 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libgcj.pc
jardir = $(datadir)/java
jar_DATA = libgcj-@gcc_version@.jar
+@JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix)
+@JAVA_HOME_SET_TRUE@JAVA_HOME_DIR = $(JAVA_HOME)
+@JAVA_HOME_SET_FALSE@BOOT_CLASS_PATH_DIR = $(jardir)/$(jar_DATA)
+@JAVA_HOME_SET_TRUE@BOOT_CLASS_PATH_DIR = $(JAVA_HOME)/lib/rt.jar
secdir = $(libdir)/security
propdir = $(libdir)
+dbexecdir = $(libdir)/gcj-@gcc_version@
+db_name = classmap.db
+db_pathtail = gcj-@gcc_version@/$(db_name)
+@NATIVE_TRUE@dbexec_DATA = $(db_name)
bin_SCRIPTS = addr2name.awk
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
@@ -4975,8 +4487,13 @@ AM_CXXFLAGS = \
-D_GNU_SOURCE \
-DPREFIX="\"$(prefix)\"" \
-DLIBDIR="\"$(libdir)\"" \
- -DBOOT_CLASS_PATH="\"$(jardir)/$(jar_DATA)\"" \
- -DJAVA_EXT_DIRS="\"$(jardir)/ext\""
+ -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \
+ -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
+ -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \
+ -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \
+ -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \
+ -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \
+ -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\""
AM_GCJFLAGS = \
@LIBGCJ_JAVAFLAGS@ \
@@ -5008,13 +4525,19 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
libgcj0_convenience_la_SOURCES = prims.cc jni.cc exception.cc \
link.cc defineclass.cc interpret.cc verify.cc \
$(nat_source_files) $(math_c_source_files) $(java_source_files) \
- $(gnu_xml_source_files) $(built_java_source_files) \
+ $(built_java_source_files) \
$(BOEHMGC_SRC) $(NOGC_SRC) \
$(BACKTRACE_SRC) \
$(POSIX_PLATFORM_SRC) $(WIN32_PLATFORM_SRC) $(ECOS_PLATFORM_SRC) \
$(DARWIN_CRT_SRC) \
$(POSIX_THREAD_SRC) $(WIN32_THREAD_SRC) $(NO_THREAD_SRC)
+libgcj0_convenience_la_LIBADD = \
+ gnu-xml.lo javax-imageio.lo \
+ javax-xml.lo gnu-java-beans.lo \
+ external/sax/libsax-gcj.la \
+ external/w3c_dom/libw3c-gcj.la
+
noinst_LTLIBRARIES = libgcj0_convenience.la
libgcj_la_SOURCES =
nat_files = $(nat_source_files:.cc=.lo)
@@ -5027,14 +4550,12 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
libgcj_la_LIBADD = \
- external/sax/libsax_convenience.la \
- external/w3c_dom/libw3c_convenience.la \
libgcj0_convenience.la \
$(LIBFFI) $(ZLIBS) $(GCLIBS) $(propertyo_files)
-libgcj_la_DEPENDENCIES = libgcj-@gcc_version@.jar \
+libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h \
- $(libgcj_la_LIBADD)
+ $(LIBLTDL) $(libgcj_la_LIBADD)
libgcj_la_LINK = $(LIBLINK)
@GTK_CAIRO_FALSE@gtk_cairo_c_source_files =
@@ -5046,12 +4567,11 @@ libgcj_la_LINK = $(LIBLINK)
gtk_c_source_files = \
$(gtk_cairo_c_source_files) \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c \
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c \
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
+jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \
@@ -5068,7 +4588,6 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c \
-jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \
@@ -5085,10 +4604,7 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
jni/gtk-peer/gthread-jni.c \
jni/gtk-peer/gtk_jawt.c \
-jni/classpath/jcl.c \
-jni/classpath/jnilink.c \
-jni/classpath/native_state.c \
-jni/classpath/primlib.c
+jni/classpath/native_state.c
gtk_awt_peer_sources = \
gnu/java/awt/peer/gtk/GdkTextLayout.java \
@@ -5097,8 +4613,11 @@ gnu/java/awt/peer/gtk/GdkFontPeer.java \
gnu/java/awt/peer/gtk/GdkGlyphVector.java \
gnu/java/awt/peer/gtk/GdkGraphics.java \
gnu/java/awt/peer/gtk/GdkGraphics2D.java \
+gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java \
gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java \
gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
+gnu/java/awt/peer/gtk/GdkRobotPeer.java \
+gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java \
gnu/java/awt/peer/gtk/GtkButtonPeer.java \
gnu/java/awt/peer/gtk/GtkCanvasPeer.java \
gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java \
@@ -5117,7 +4636,6 @@ gnu/java/awt/peer/gtk/GtkImage.java \
gnu/java/awt/peer/gtk/GtkImagePainter.java \
gnu/java/awt/peer/gtk/GtkLabelPeer.java \
gnu/java/awt/peer/gtk/GtkListPeer.java \
-gnu/java/awt/peer/gtk/GtkMainThread.java \
gnu/java/awt/peer/gtk/GtkMenuBarPeer.java \
gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java \
gnu/java/awt/peer/gtk/GtkMenuItemPeer.java \
@@ -5137,30 +4655,26 @@ gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
gtk_jni_headers = $(patsubst %.java,jniinclude/%.h,$(subst /,_,$(gtk_awt_peer_sources)))
lib_gnu_java_awt_peer_gtk_la_SOURCES = \
-$(gtk_awt_peer_sources) \
$(gtk_c_source_files) \
jni/gtk-peer/gthread-jni.h \
jni/gtk-peer/gtkpeer.h \
-jni/classpath/jcl.h \
-jni/classpath/jnilink.h \
-jni/classpath/native_state.h \
-jni/classpath/primlib.h
+jni/classpath/native_state.h
lib_gnu_java_awt_peer_gtk_la_CFLAGS = \
-Ijniinclude -I$(srcdir)/jni/classpath \
-I$(srcdir)/jni/gtk-peer $(PEDANTIC_CFLAGS) $(GTK_CFLAGS) $(LIBART_CFLAGS) \
- $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS)
+ $(X_CFLAGS) $(CAIRO_CFLAGS) $(PANGOFT2_CFLAGS)
lib_gnu_java_awt_peer_gtk_la_GCJFLAGS = $(AM_GCJFLAGS) -fjni
-lib_gnu_java_awt_peer_gtk_la_LIBADD = $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
-lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = $(gtk_jni_headers) libgcj-@gcc_version@.jar libgcj.la libgcj.spec
+lib_gnu_java_awt_peer_gtk_la_LIBADD = gtk-awt-peer.lo $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
+lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = gtk-awt-peer.lo $(gtk_jni_headers) libgcj-$(gcc_version).jar libgcj.la libgcj.spec
lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \
- -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
+ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) $(X_LIBS) -lXtst
lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK)
libjawt_la_SOURCES = jawt.c
libjawt_la_CFLAGS = -I$(srcdir)/jni/classpath $(PEDANTIC_CFLAGS) $(X_CFLAGS)
-libjawt_la_LIBADD = lib-gnu-java-awt-peer-gtk.la
+libjawt_la_LIBADD = -L$(here)/.libs lib-gnu-java-awt-peer-gtk.la
libjawt_la_LDFLAGS = \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
$(LIBGCJ_LD_SYMBOLIC)
@@ -5173,6 +4687,7 @@ lib_gnu_awt_xlib_la_SOURCES = \
lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-@gcc_version@.jar libgcj.la libgcj.spec
lib_gnu_awt_xlib_la_LIBADD = $(xlib_javao_files)
lib_gnu_awt_xlib_la_CPPFLAGS = \
+ $(AM_CPPFLAGS) \
-I../libstdc++-v3/include \
-I../libstdc++-v3/include/$(target_noncanonical) \
-I$(srcdir)/../libstdc++-v3/libsupc++
@@ -5188,10 +4703,13 @@ all_java_source_files = \
$(built_java_source_files) \
$(gtk_awt_peer_sources) \
$(xlib_java_source_files) \
- $(gnu_xml_source_files)
+ $(gnu_xml_source_files) \
+ $(javax_imageio_source_files) \
+ $(javax_xml_source_files) \
+ $(gnu_java_beans_source_files)
all_java_class_files = $(all_java_source_files:.java=.class)
-all_property_files = $(property_files) $(jgss_property_files) \
+all_property_files = $(property_files) \
java/util/logging/logging.properties
property_files = \
@@ -5199,7 +4717,7 @@ gnu/regexp/MessagesBundle.properties \
gnu/regexp/MessagesBundle_fr.properties \
org/ietf/jgss/MessagesBundle.properties
-propertyo_files = $(property_files:.properties=.properties.lo)
+propertyo_files = $(property_files:.properties=.properties.lo)
CLEANFILES = libgcj-@gcc_version@.jar classes.stamp
SUFFIXES = .class .java .h .properties
ordinary_nat_headers = \
@@ -5219,7 +4737,7 @@ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
gnu/java/nio/PipeImpl$$SourceChannelImpl.h \
$(PLATFORM_INNER_NAT_HDRS)
-nat_headers = $(ordinary_nat_headers) $(inner_nat_headers)
+nat_headers = $(ordinary_nat_headers) $(inner_nat_headers) gnu/gcj/tools/gcj_dbtool/Main.h
nat_headers_install = $(ordinary_nat_headers)
xlib_nat_headers = $(xlib_java_source_files:.java=.h)
extra_headers = java/lang/Object.h java/lang/Class.h
@@ -5240,7 +4758,9 @@ jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
jv_convert_LINK = $(GCJLINK)
jv_convert_LDADD = -L$(here)/.libs libgcj.la
jv_convert_DEPENDENCIES = libgcj.la libgcj.spec
-gcj_dbtool_SOURCES = gnu/gcj/tools/gcj_dbtool/Main.java
+gcj_dbtool_SOURCES = gnu/gcj/tools/gcj_dbtool/Main.java \
+ gnu/gcj/tools/gcj_dbtool/natMain.cc
+
gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
@@ -5290,6 +4810,60 @@ gnu/gcj/convert/Output_iconv.java \
gnu/gcj/convert/UnicodeToBytes.java
special_java_source_files = java/lang/Class.java java/lang/Object.java
+gnu_java_beans_source_files = \
+gnu/java/beans/decoder/AbstractContext.java \
+gnu/java/beans/decoder/AbstractCreatableObjectContext.java \
+gnu/java/beans/decoder/AbstractElementHandler.java \
+gnu/java/beans/decoder/AbstractObjectContext.java \
+gnu/java/beans/decoder/ArrayContext.java \
+gnu/java/beans/decoder/ArrayHandler.java \
+gnu/java/beans/decoder/AssemblyException.java \
+gnu/java/beans/decoder/BooleanHandler.java \
+gnu/java/beans/decoder/ByteHandler.java \
+gnu/java/beans/decoder/CharHandler.java \
+gnu/java/beans/decoder/ClassHandler.java \
+gnu/java/beans/decoder/ConstructorContext.java \
+gnu/java/beans/decoder/Context.java \
+gnu/java/beans/decoder/DecoderContext.java \
+gnu/java/beans/decoder/DefaultExceptionListener.java \
+gnu/java/beans/decoder/DoubleHandler.java \
+gnu/java/beans/decoder/DummyContext.java \
+gnu/java/beans/decoder/DummyHandler.java \
+gnu/java/beans/decoder/ElementHandler.java \
+gnu/java/beans/decoder/FloatHandler.java \
+gnu/java/beans/decoder/GrowableArrayContext.java \
+gnu/java/beans/decoder/IndexContext.java \
+gnu/java/beans/decoder/IntHandler.java \
+gnu/java/beans/decoder/JavaHandler.java \
+gnu/java/beans/decoder/LongHandler.java \
+gnu/java/beans/decoder/MethodContext.java \
+gnu/java/beans/decoder/MethodFinder.java \
+gnu/java/beans/decoder/NullHandler.java \
+gnu/java/beans/decoder/ObjectContext.java \
+gnu/java/beans/decoder/ObjectHandler.java \
+gnu/java/beans/decoder/PersistenceParser.java \
+gnu/java/beans/decoder/PropertyContext.java \
+gnu/java/beans/decoder/ShortHandler.java \
+gnu/java/beans/decoder/SimpleHandler.java \
+gnu/java/beans/decoder/StaticMethodContext.java \
+gnu/java/beans/decoder/StringHandler.java \
+gnu/java/beans/decoder/VoidHandler.java \
+gnu/java/beans/editors/ColorEditor.java \
+gnu/java/beans/editors/FontEditor.java \
+gnu/java/beans/editors/NativeBooleanEditor.java \
+gnu/java/beans/editors/NativeByteEditor.java \
+gnu/java/beans/editors/NativeDoubleEditor.java \
+gnu/java/beans/editors/NativeFloatEditor.java \
+gnu/java/beans/editors/NativeIntEditor.java \
+gnu/java/beans/editors/NativeLongEditor.java \
+gnu/java/beans/editors/NativeShortEditor.java \
+gnu/java/beans/editors/StringEditor.java \
+gnu/java/beans/BeanInfoEmbryo.java \
+gnu/java/beans/DummyAppletContext.java \
+gnu/java/beans/DummyAppletStub.java \
+gnu/java/beans/ExplicitBeanInfo.java \
+gnu/java/beans/IntrospectionIncubator.java
+
awt_java_source_files = \
gnu/awt/LightweightRedirector.java \
gnu/awt/j2d/AbstractGraphicsState.java \
@@ -5324,21 +4898,6 @@ gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/awt/peer/ClasspathTextLayoutPeer.java \
-gnu/java/beans/editors/ColorEditor.java \
-gnu/java/beans/editors/FontEditor.java \
-gnu/java/beans/editors/NativeBooleanEditor.java \
-gnu/java/beans/editors/NativeByteEditor.java \
-gnu/java/beans/editors/NativeDoubleEditor.java \
-gnu/java/beans/editors/NativeFloatEditor.java \
-gnu/java/beans/editors/NativeIntEditor.java \
-gnu/java/beans/editors/NativeLongEditor.java \
-gnu/java/beans/editors/NativeShortEditor.java \
-gnu/java/beans/editors/StringEditor.java \
-gnu/java/beans/info/ComponentBeanInfo.java \
-gnu/java/beans/BeanInfoEmbryo.java \
-gnu/java/beans/EmptyBeanInfo.java \
-gnu/java/beans/ExplicitBeanInfo.java \
-gnu/java/beans/IntrospectionIncubator.java \
java/applet/Applet.java \
java/applet/AppletStub.java \
java/applet/AppletContext.java \
@@ -5716,6 +5275,7 @@ java/beans/VetoableChangeListenerProxy.java \
java/beans/VetoableChangeSupport.java \
java/beans/Visibility.java \
java/beans/AppletInitializer.java \
+java/beans/XMLDecoder.java \
javax/swing/border/AbstractBorder.java \
javax/swing/border/BevelBorder.java \
javax/swing/border/Border.java \
@@ -5741,6 +5301,7 @@ javax/swing/plaf/basic/BasicComboBoxRenderer.java \
javax/swing/plaf/basic/BasicComboPopup.java \
javax/swing/plaf/basic/BasicDesktopIconUI.java \
javax/swing/plaf/basic/BasicDesktopPaneUI.java \
+javax/swing/plaf/basic/BasicEditorPaneUI.java \
javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \
javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \
@@ -5797,7 +5358,9 @@ javax/swing/plaf/TabbedPaneUI.java \
javax/swing/plaf/TextUI.java \
javax/swing/plaf/TreeUI.java \
javax/swing/plaf/ViewportUI.java \
+javax/swing/plaf/metal/DefaultMetalTheme.java \
javax/swing/plaf/metal/MetalLookAndFeel.java \
+javax/swing/plaf/metal/MetalTheme.java \
javax/swing/plaf/ColorUIResource.java \
javax/swing/plaf/DimensionUIResource.java \
javax/swing/plaf/FontUIResource.java \
@@ -5827,7 +5390,6 @@ javax/swing/plaf/TableUI.java \
javax/swing/plaf/ToolBarUI.java \
javax/swing/plaf/ToolTipUI.java \
javax/swing/AbstractListModel.java \
-javax/swing/AbstractSet.java \
javax/swing/colorchooser/AbstractColorChooserPanel.java \
javax/swing/colorchooser/ColorChooserComponentFactory.java \
javax/swing/colorchooser/ColorSelectionModel.java \
@@ -5857,12 +5419,12 @@ javax/swing/ButtonGroup.java \
javax/swing/ButtonModel.java \
javax/swing/ComponentInputMap.java \
javax/swing/DefaultButtonModel.java \
-javax/swing/DefaultCellRenderer.java \
javax/swing/DefaultListModel.java \
javax/swing/DefaultListSelectionModel.java \
javax/swing/Icon.java \
javax/swing/ImageIcon.java \
javax/swing/InputMap.java \
+javax/swing/InternalFrameFocusTraversalPolicy.java \
javax/swing/JApplet.java \
javax/swing/JButton.java \
javax/swing/JCheckBox.java \
@@ -5891,11 +5453,14 @@ javax/swing/JTree.java \
javax/swing/JViewport.java \
javax/swing/JWindow.java \
javax/swing/KeyStroke.java \
+javax/swing/LayoutFocusTraversalPolicy.java \
javax/swing/ListCellRenderer.java \
javax/swing/ListModel.java \
javax/swing/ListSelectionModel.java \
javax/swing/LookAndFeel.java \
javax/swing/Scrollable.java \
+javax/swing/SortingFocusTraversalPolicy.java \
+javax/swing/SpinnerDateModel.java \
javax/swing/SpinnerListModel.java \
javax/swing/SpinnerModel.java \
javax/swing/SpinnerNumberModel.java \
@@ -5961,6 +5526,7 @@ javax/swing/text/ComponentView.java \
javax/swing/text/DefaultCaret.java \
javax/swing/text/DefaultEditorKit.java \
javax/swing/text/DefaultHighlighter.java \
+javax/swing/text/DefaultStyledDocument.java \
javax/swing/text/Document.java \
javax/swing/text/DocumentFilter.java \
javax/swing/text/EditorKit.java \
@@ -5979,6 +5545,7 @@ javax/swing/text/PlainView.java \
javax/swing/text/Position.java \
javax/swing/text/Segment.java \
javax/swing/text/SimpleAttributeSet.java \
+javax/swing/text/StringContent.java \
javax/swing/text/Style.java \
javax/swing/text/StyleConstants.java \
javax/swing/text/StyleContext.java \
@@ -6173,7 +5740,7 @@ gnu/java/rmi/server/UnicastRemoteStub.java \
gnu/java/rmi/server/UnicastServer.java \
gnu/java/rmi/server/UnicastServerRef.java
-javax_source_files = \
+javax_imageio_source_files = \
javax/imageio/ImageWriteParam.java \
javax/imageio/ImageReader.java \
javax/imageio/ImageWriter.java \
@@ -6219,7 +5786,63 @@ javax/imageio/event/IIOWriteProgressListener.java \
javax/imageio/ImageTranscoder.java \
javax/imageio/ImageTypeSpecifier.java \
javax/imageio/ImageIO.java \
-javax/imageio/IIOImage.java \
+javax/imageio/IIOImage.java
+
+javax_xml_source_files = \
+javax/xml/xpath/XPathConstants.java \
+javax/xml/xpath/XPathFunction.java \
+javax/xml/xpath/XPathVariableResolver.java \
+javax/xml/xpath/XPathExpressionException.java \
+javax/xml/xpath/XPathFunctionResolver.java \
+javax/xml/xpath/XPath.java \
+javax/xml/xpath/XPathFactoryConfigurationException.java \
+javax/xml/xpath/XPathFactory.java \
+javax/xml/xpath/XPathException.java \
+javax/xml/xpath/XPathExpression.java \
+javax/xml/xpath/XPathFunctionException.java \
+javax/xml/validation/ValidatorHandler.java \
+javax/xml/validation/Validator.java \
+javax/xml/validation/TypeInfoProvider.java \
+javax/xml/validation/SchemaFactory.java \
+javax/xml/validation/Schema.java \
+javax/xml/parsers/SAXParserFactory.java \
+javax/xml/parsers/FactoryConfigurationError.java \
+javax/xml/parsers/SAXParser.java \
+javax/xml/parsers/DocumentBuilderFactory.java \
+javax/xml/parsers/ParserConfigurationException.java \
+javax/xml/parsers/DocumentBuilder.java \
+javax/xml/datatype/DatatypeFactory.java \
+javax/xml/datatype/XMLGregorianCalendar.java \
+javax/xml/datatype/Duration.java \
+javax/xml/datatype/DatatypeConfigurationException.java \
+javax/xml/datatype/DatatypeConstants.java \
+javax/xml/XMLConstants.java \
+javax/xml/namespace/NamespaceContext.java \
+javax/xml/namespace/QName.java \
+javax/xml/transform/TransformerException.java \
+javax/xml/transform/TransformerFactoryConfigurationError.java \
+javax/xml/transform/sax/SAXResult.java \
+javax/xml/transform/sax/TransformerHandler.java \
+javax/xml/transform/sax/SAXTransformerFactory.java \
+javax/xml/transform/sax/SAXSource.java \
+javax/xml/transform/sax/TemplatesHandler.java \
+javax/xml/transform/OutputKeys.java \
+javax/xml/transform/stream/StreamResult.java \
+javax/xml/transform/stream/StreamSource.java \
+javax/xml/transform/Source.java \
+javax/xml/transform/SourceLocator.java \
+javax/xml/transform/ErrorListener.java \
+javax/xml/transform/TransformerConfigurationException.java \
+javax/xml/transform/Templates.java \
+javax/xml/transform/Result.java \
+javax/xml/transform/URIResolver.java \
+javax/xml/transform/dom/DOMSource.java \
+javax/xml/transform/dom/DOMLocator.java \
+javax/xml/transform/dom/DOMResult.java \
+javax/xml/transform/Transformer.java \
+javax/xml/transform/TransformerFactory.java
+
+javax_source_files = \
javax/net/VanillaSocketFactory.java \
javax/net/ssl/TrustManagerFactorySpi.java \
javax/net/ssl/SSLKeyException.java \
@@ -6258,6 +5881,10 @@ javax/print/attribute/HashPrintServiceAttributeSet.java \
javax/print/attribute/Attribute.java \
javax/print/attribute/DocAttributeSet.java \
javax/print/attribute/PrintRequestAttributeSet.java \
+javax/print/attribute/standard/Chromaticity.java \
+javax/print/attribute/standard/Destination.java \
+javax/print/attribute/standard/MediaPrintableArea.java \
+javax/print/attribute/standard/MediaSize.java \
javax/print/attribute/standard/NumberOfInterveningJobs.java \
javax/print/attribute/standard/PrinterMakeAndModel.java \
javax/print/attribute/standard/PrinterStateReason.java \
@@ -6454,58 +6081,6 @@ javax/naming/NameClassPair.java \
javax/naming/RefAddr.java \
javax/naming/CompositeName.java \
javax/naming/Name.java \
-javax/xml/xpath/XPathConstants.java \
-javax/xml/xpath/XPathFunction.java \
-javax/xml/xpath/XPathVariableResolver.java \
-javax/xml/xpath/XPathExpressionException.java \
-javax/xml/xpath/XPathFunctionResolver.java \
-javax/xml/xpath/XPath.java \
-javax/xml/xpath/XPathFactoryConfigurationException.java \
-javax/xml/xpath/XPathFactory.java \
-javax/xml/xpath/XPathException.java \
-javax/xml/xpath/XPathExpression.java \
-javax/xml/xpath/XPathFunctionException.java \
-javax/xml/validation/ValidatorHandler.java \
-javax/xml/validation/Validator.java \
-javax/xml/validation/TypeInfoProvider.java \
-javax/xml/validation/SchemaFactory.java \
-javax/xml/validation/Schema.java \
-javax/xml/parsers/SAXParserFactory.java \
-javax/xml/parsers/FactoryConfigurationError.java \
-javax/xml/parsers/SAXParser.java \
-javax/xml/parsers/DocumentBuilderFactory.java \
-javax/xml/parsers/ParserConfigurationException.java \
-javax/xml/parsers/DocumentBuilder.java \
-javax/xml/datatype/DatatypeFactory.java \
-javax/xml/datatype/XMLGregorianCalendar.java \
-javax/xml/datatype/Duration.java \
-javax/xml/datatype/DatatypeConfigurationException.java \
-javax/xml/datatype/DatatypeConstants.java \
-javax/xml/XMLConstants.java \
-javax/xml/namespace/NamespaceContext.java \
-javax/xml/namespace/QName.java \
-javax/xml/transform/TransformerException.java \
-javax/xml/transform/TransformerFactoryConfigurationError.java \
-javax/xml/transform/sax/SAXResult.java \
-javax/xml/transform/sax/TransformerHandler.java \
-javax/xml/transform/sax/SAXTransformerFactory.java \
-javax/xml/transform/sax/SAXSource.java \
-javax/xml/transform/sax/TemplatesHandler.java \
-javax/xml/transform/OutputKeys.java \
-javax/xml/transform/stream/StreamResult.java \
-javax/xml/transform/stream/StreamSource.java \
-javax/xml/transform/Source.java \
-javax/xml/transform/SourceLocator.java \
-javax/xml/transform/ErrorListener.java \
-javax/xml/transform/TransformerConfigurationException.java \
-javax/xml/transform/Templates.java \
-javax/xml/transform/Result.java \
-javax/xml/transform/URIResolver.java \
-javax/xml/transform/dom/DOMSource.java \
-javax/xml/transform/dom/DOMLocator.java \
-javax/xml/transform/dom/DOMResult.java \
-javax/xml/transform/Transformer.java \
-javax/xml/transform/TransformerFactory.java \
javax/security/cert/CertificateNotYetValidException.java \
javax/security/cert/Certificate.java \
javax/security/cert/X509Certificate.java \
@@ -6740,10 +6315,9 @@ gnu/xml/util/Resolver.java \
gnu/xml/util/DoParse.java \
gnu/xml/util/XHTMLWriter.java \
gnu/xml/util/SAXNullTransformerFactory.java \
-gnu/xml/dom/DomCDATA.java \
gnu/xml/dom/DomXPathNSResolver.java \
-gnu/xml/dom/ls/DomLSEx.java \
gnu/xml/dom/ls/FilteredSAXEventSink.java \
+gnu/xml/dom/ls/DomLSException.java \
gnu/xml/dom/ls/DomLSSerializer.java \
gnu/xml/dom/ls/DomLSInput.java \
gnu/xml/dom/ls/DomLSOutput.java \
@@ -6754,14 +6328,14 @@ gnu/xml/dom/ls/WriterOutputStream.java \
gnu/xml/dom/DomElement.java \
gnu/xml/dom/DomNsNode.java \
gnu/xml/dom/DomAttr.java \
-gnu/xml/dom/DomPI.java \
gnu/xml/dom/DTDAttributeTypeInfo.java \
gnu/xml/dom/DomDocumentBuilder.java \
gnu/xml/dom/DTDElementTypeInfo.java \
-gnu/xml/dom/DomEx.java \
gnu/xml/dom/DomDocument.java \
gnu/xml/dom/DomXPathExpression.java \
gnu/xml/dom/DomDocumentConfiguration.java \
+gnu/xml/dom/DomDocumentFragment.java \
+gnu/xml/dom/DomProcessingInstruction.java \
gnu/xml/dom/Consumer.java \
gnu/xml/dom/DomComment.java \
gnu/xml/dom/DomCharacterData.java \
@@ -6781,9 +6355,10 @@ gnu/xml/dom/DomNodeIterator.java \
gnu/xml/dom/DomNotation.java \
gnu/xml/dom/JAXPFactory.java \
gnu/xml/dom/DomIterator.java \
-gnu/xml/dom/DomFragment.java \
gnu/xml/dom/DomEvent.java \
gnu/xml/dom/DomEntity.java \
+gnu/xml/dom/DomCDATASection.java \
+gnu/xml/dom/DomDOMException.java \
gnu/xml/transform/GenerateIdFunction.java \
gnu/xml/transform/FormatNumberFunction.java \
gnu/xml/transform/ValueOfNode.java \
@@ -7095,18 +6670,20 @@ gnu/gcj/RawDataManaged.java \
gnu/gcj/io/DefaultMimeTypes.java \
gnu/gcj/io/MimeTypes.java \
gnu/gcj/io/SimpleSHSStream.java \
+gnu/gcj/runtime/BootClassLoader.java \
+gnu/gcj/runtime/ExtensionClassLoader.java \
gnu/gcj/runtime/FileDeleter.java \
gnu/gcj/runtime/FinalizerThread.java \
+gnu/gcj/runtime/HelperClassLoader.java \
gnu/gcj/runtime/JNIWeakRef.java \
gnu/gcj/runtime/MethodRef.java \
gnu/gcj/runtime/NameFinder.java \
gnu/gcj/runtime/PersistentByteMap.java \
gnu/gcj/runtime/SharedLibHelper.java \
gnu/gcj/runtime/SharedLibLoader.java \
-gnu/gcj/runtime/StackTrace.java \
gnu/gcj/runtime/StringBuffer.java \
+gnu/gcj/runtime/StackTrace.java \
gnu/gcj/runtime/SystemClassLoader.java \
-gnu/gcj/runtime/VMClassLoader.java \
gnu/gcj/util/Debug.java \
gnu/java/io/ASN1ParsingException.java \
gnu/java/io/Base64InputStream.java \
@@ -7258,8 +6835,11 @@ gnu/java/locale/LocaleInformation_zh_SG.java \
gnu/java/locale/LocaleInformation_zh_TW.java \
gnu/java/math/MPN.java \
gnu/java/net/BASE64.java \
+gnu/java/net/CRLFInputStream.java \
+gnu/java/net/CRLFOutputStream.java \
gnu/java/net/DefaultContentHandlerFactory.java \
gnu/java/net/EmptyX509TrustManager.java \
+gnu/java/net/GetLocalHostAction.java \
gnu/java/net/HeaderFieldHelper.java \
gnu/java/net/LineInputStream.java \
gnu/java/net/PlainDatagramSocketImpl.java \
@@ -7270,6 +6850,22 @@ gnu/java/net/protocol/core/CoreInputStream.java \
gnu/java/net/protocol/core/Handler.java \
gnu/java/net/protocol/file/Connection.java \
gnu/java/net/protocol/file/Handler.java \
+gnu/java/net/protocol/ftp/ActiveModeDTP.java \
+gnu/java/net/protocol/ftp/BlockInputStream.java \
+gnu/java/net/protocol/ftp/BlockOutputStream.java \
+gnu/java/net/protocol/ftp/CompressedInputStream.java \
+gnu/java/net/protocol/ftp/CompressedOutputStream.java \
+gnu/java/net/protocol/ftp/DTP.java \
+gnu/java/net/protocol/ftp/DTPInputStream.java \
+gnu/java/net/protocol/ftp/DTPOutputStream.java \
+gnu/java/net/protocol/ftp/FTPConnection.java \
+gnu/java/net/protocol/ftp/FTPException.java \
+gnu/java/net/protocol/ftp/FTPResponse.java \
+gnu/java/net/protocol/ftp/FTPURLConnection.java \
+gnu/java/net/protocol/ftp/Handler.java \
+gnu/java/net/protocol/ftp/PassiveModeDTP.java \
+gnu/java/net/protocol/ftp/StreamInputStream.java \
+gnu/java/net/protocol/ftp/StreamOutputStream.java \
gnu/java/net/protocol/gcjlib/Connection.java \
gnu/java/net/protocol/gcjlib/Handler.java \
gnu/java/net/protocol/http/Authenticator.java \
@@ -7298,6 +6894,7 @@ gnu/java/net/protocol/jar/Connection.java \
gnu/java/net/protocol/jar/Handler.java \
gnu/java/nio/ChannelInputStream.java \
gnu/java/nio/ChannelOutputStream.java \
+gnu/java/nio/ChannelReader.java \
gnu/java/nio/DatagramChannelImpl.java \
gnu/java/nio/DatagramChannelSelectionKey.java \
gnu/java/nio/FileLockImpl.java \
@@ -7333,12 +6930,18 @@ gnu/java/security/PolicyFile.java \
gnu/java/security/action/GetPropertyAction.java \
gnu/java/security/action/GetSecurityPropertyAction.java \
gnu/java/security/action/SetAccessibleAction.java \
+gnu/java/security/ber/BER.java \
+gnu/java/security/ber/BEREncodingException.java \
+gnu/java/security/ber/BERReader.java \
+gnu/java/security/ber/BERValue.java \
gnu/java/security/der/BitString.java \
gnu/java/security/der/DER.java \
gnu/java/security/der/DEREncodingException.java \
gnu/java/security/der/DERReader.java \
gnu/java/security/der/DERValue.java \
gnu/java/security/der/DERWriter.java \
+gnu/java/security/pkcs/PKCS7SignedData.java \
+gnu/java/security/pkcs/SignerInfo.java \
gnu/java/security/provider/CollectionCertStoreImpl.java \
gnu/java/security/provider/DSAKeyFactory.java \
gnu/java/security/provider/DSAKeyPairGenerator.java \
@@ -7836,7 +7439,6 @@ gnu/gcj/runtime/natNameFinder.cc \
gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natStackTrace.cc \
gnu/gcj/runtime/natStringBuffer.cc \
-gnu/gcj/runtime/natVMClassLoader.cc \
gnu/gcj/util/natDebug.cc \
gnu/java/lang/natMainThread.cc \
gnu/java/net/natPlainDatagramSocketImpl.cc \
@@ -7877,6 +7479,7 @@ java/nio/natDirectByteBufferImpl.cc \
java/text/natCollator.cc \
java/util/natResourceBundle.cc \
java/util/natVMTimeZone.cc \
+java/util/logging/natLogger.cc \
java/util/zip/natDeflater.cc \
java/util/zip/natInflater.cc
@@ -8213,141 +7816,6 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXImage.lo: \
gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo: \
gnu/gcj/xlib/$(am__dirstamp) \
gnu/gcj/xlib/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/$(am__dirstamp):
- @$(mkdir_p) gnu/java/awt/peer/gtk
- @: > gnu/java/awt/peer/gtk/$(am__dirstamp)
-gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/java/awt/peer/gtk/$(DEPDIR)
- @: > gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo: \
- gnu/java/awt/peer/gtk/$(am__dirstamp) \
- gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
jni/gtk-peer/$(am__dirstamp):
@$(mkdir_p) jni/gtk-peer
@: > jni/gtk-peer/$(am__dirstamp)
@@ -8360,15 +7828,9 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics2D.lo
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
-jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo: \
- jni/gtk-peer/$(am__dirstamp) \
- jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
-jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo: \
- jni/gtk-peer/$(am__dirstamp) \
- jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
@@ -8378,6 +7840,9 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphicsEnvir
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
+jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo: \
+ jni/gtk-peer/$(am__dirstamp) \
+ jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
@@ -8426,9 +7891,6 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkLabelPeer.lo:
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
-jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo: \
- jni/gtk-peer/$(am__dirstamp) \
- jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo: \
jni/gtk-peer/$(am__dirstamp) \
jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
@@ -8483,18 +7945,9 @@ jni/classpath/$(am__dirstamp):
jni/classpath/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) jni/classpath/$(DEPDIR)
@: > jni/classpath/$(DEPDIR)/$(am__dirstamp)
-jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo: \
- jni/classpath/$(am__dirstamp) \
- jni/classpath/$(DEPDIR)/$(am__dirstamp)
-jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo: \
- jni/classpath/$(am__dirstamp) \
- jni/classpath/$(DEPDIR)/$(am__dirstamp)
jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo: \
jni/classpath/$(am__dirstamp) \
jni/classpath/$(DEPDIR)/$(am__dirstamp)
-jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo: \
- jni/classpath/$(am__dirstamp) \
- jni/classpath/$(DEPDIR)/$(am__dirstamp)
lib-gnu-java-awt-peer-gtk.la: $(lib_gnu_java_awt_peer_gtk_la_OBJECTS) $(lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES)
$(lib_gnu_java_awt_peer_gtk_la_LINK) $(am_lib_gnu_java_awt_peer_gtk_la_rpath) $(lib_gnu_java_awt_peer_gtk_la_LDFLAGS) $(lib_gnu_java_awt_peer_gtk_la_OBJECTS) $(lib_gnu_java_awt_peer_gtk_la_LIBADD) $(LIBS)
gnu/gcj/$(am__dirstamp):
@@ -8557,8 +8010,6 @@ gnu/gcj/runtime/natStackTrace.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/natStringBuffer.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
-gnu/gcj/runtime/natVMClassLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
- gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/util/$(am__dirstamp):
@$(mkdir_p) gnu/gcj/util
@: > gnu/gcj/util/$(am__dirstamp)
@@ -8733,6 +8184,14 @@ java/util/natResourceBundle.lo: java/util/$(am__dirstamp) \
java/util/$(DEPDIR)/$(am__dirstamp)
java/util/natVMTimeZone.lo: java/util/$(am__dirstamp) \
java/util/$(DEPDIR)/$(am__dirstamp)
+java/util/logging/$(am__dirstamp):
+ @$(mkdir_p) java/util/logging
+ @: > java/util/logging/$(am__dirstamp)
+java/util/logging/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) java/util/logging/$(DEPDIR)
+ @: > java/util/logging/$(DEPDIR)/$(am__dirstamp)
+java/util/logging/natLogger.lo: java/util/logging/$(am__dirstamp) \
+ java/util/logging/$(DEPDIR)/$(am__dirstamp)
java/util/zip/$(am__dirstamp):
@$(mkdir_p) java/util/zip
@: > java/util/zip/$(am__dirstamp)
@@ -9261,12 +8720,6 @@ java/util/VMTimeZone.lo: java/util/$(am__dirstamp) \
java/util/$(DEPDIR)/$(am__dirstamp)
java/util/WeakHashMap.lo: java/util/$(am__dirstamp) \
java/util/$(DEPDIR)/$(am__dirstamp)
-java/util/logging/$(am__dirstamp):
- @$(mkdir_p) java/util/logging
- @: > java/util/logging/$(am__dirstamp)
-java/util/logging/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) java/util/logging/$(DEPDIR)
- @: > java/util/logging/$(DEPDIR)/$(am__dirstamp)
java/util/logging/ConsoleHandler.lo: \
java/util/logging/$(am__dirstamp) \
java/util/logging/$(DEPDIR)/$(am__dirstamp)
@@ -9369,10 +8822,17 @@ gnu/gcj/io/MimeTypes.lo: gnu/gcj/io/$(am__dirstamp) \
gnu/gcj/io/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/io/SimpleSHSStream.lo: gnu/gcj/io/$(am__dirstamp) \
gnu/gcj/io/$(DEPDIR)/$(am__dirstamp)
+gnu/gcj/runtime/BootClassLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
+ gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
+gnu/gcj/runtime/ExtensionClassLoader.lo: \
+ gnu/gcj/runtime/$(am__dirstamp) \
+ gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/FileDeleter.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/FinalizerThread.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
+gnu/gcj/runtime/HelperClassLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
+ gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/JNIWeakRef.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/MethodRef.lo: gnu/gcj/runtime/$(am__dirstamp) \
@@ -9385,13 +8845,11 @@ gnu/gcj/runtime/SharedLibHelper.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/SharedLibLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
-gnu/gcj/runtime/StackTrace.lo: gnu/gcj/runtime/$(am__dirstamp) \
- gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/runtime/StringBuffer.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
-gnu/gcj/runtime/SystemClassLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
+gnu/gcj/runtime/StackTrace.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
-gnu/gcj/runtime/VMClassLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
+gnu/gcj/runtime/SystemClassLoader.lo: gnu/gcj/runtime/$(am__dirstamp) \
gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/util/Debug.lo: gnu/gcj/util/$(am__dirstamp) \
gnu/gcj/util/$(DEPDIR)/$(am__dirstamp)
@@ -9855,11 +9313,17 @@ gnu/java/math/MPN.lo: gnu/java/math/$(am__dirstamp) \
gnu/java/math/$(DEPDIR)/$(am__dirstamp)
gnu/java/net/BASE64.lo: gnu/java/net/$(am__dirstamp) \
gnu/java/net/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/CRLFInputStream.lo: gnu/java/net/$(am__dirstamp) \
+ gnu/java/net/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/CRLFOutputStream.lo: gnu/java/net/$(am__dirstamp) \
+ gnu/java/net/$(DEPDIR)/$(am__dirstamp)
gnu/java/net/DefaultContentHandlerFactory.lo: \
gnu/java/net/$(am__dirstamp) \
gnu/java/net/$(DEPDIR)/$(am__dirstamp)
gnu/java/net/EmptyX509TrustManager.lo: gnu/java/net/$(am__dirstamp) \
gnu/java/net/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/GetLocalHostAction.lo: gnu/java/net/$(am__dirstamp) \
+ gnu/java/net/$(DEPDIR)/$(am__dirstamp)
gnu/java/net/HeaderFieldHelper.lo: gnu/java/net/$(am__dirstamp) \
gnu/java/net/$(DEPDIR)/$(am__dirstamp)
gnu/java/net/LineInputStream.lo: gnu/java/net/$(am__dirstamp) \
@@ -9891,6 +9355,60 @@ gnu/java/net/protocol/file/Connection.lo: \
gnu/java/net/protocol/file/Handler.lo: \
gnu/java/net/protocol/file/$(am__dirstamp) \
gnu/java/net/protocol/file/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/$(am__dirstamp):
+ @$(mkdir_p) gnu/java/net/protocol/ftp
+ @: > gnu/java/net/protocol/ftp/$(am__dirstamp)
+gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) gnu/java/net/protocol/ftp/$(DEPDIR)
+ @: > gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/ActiveModeDTP.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/BlockInputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/BlockOutputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/CompressedInputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/CompressedOutputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/DTP.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/DTPInputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/DTPOutputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/FTPConnection.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/FTPException.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/FTPResponse.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/FTPURLConnection.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/Handler.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/PassiveModeDTP.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/StreamInputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+gnu/java/net/protocol/ftp/StreamOutputStream.lo: \
+ gnu/java/net/protocol/ftp/$(am__dirstamp) \
+ gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
gnu/java/net/protocol/gcjlib/$(am__dirstamp):
@$(mkdir_p) gnu/java/net/protocol/gcjlib
@: > gnu/java/net/protocol/gcjlib/$(am__dirstamp)
@@ -9997,6 +9515,8 @@ gnu/java/nio/ChannelInputStream.lo: gnu/java/nio/$(am__dirstamp) \
gnu/java/nio/$(DEPDIR)/$(am__dirstamp)
gnu/java/nio/ChannelOutputStream.lo: gnu/java/nio/$(am__dirstamp) \
gnu/java/nio/$(DEPDIR)/$(am__dirstamp)
+gnu/java/nio/ChannelReader.lo: gnu/java/nio/$(am__dirstamp) \
+ gnu/java/nio/$(DEPDIR)/$(am__dirstamp)
gnu/java/nio/DatagramChannelImpl.lo: gnu/java/nio/$(am__dirstamp) \
gnu/java/nio/$(DEPDIR)/$(am__dirstamp)
gnu/java/nio/DatagramChannelSelectionKey.lo: \
@@ -10099,6 +9619,23 @@ gnu/java/security/action/GetSecurityPropertyAction.lo: \
gnu/java/security/action/SetAccessibleAction.lo: \
gnu/java/security/action/$(am__dirstamp) \
gnu/java/security/action/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/ber/$(am__dirstamp):
+ @$(mkdir_p) gnu/java/security/ber
+ @: > gnu/java/security/ber/$(am__dirstamp)
+gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) gnu/java/security/ber/$(DEPDIR)
+ @: > gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/ber/BER.lo: gnu/java/security/ber/$(am__dirstamp) \
+ gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/ber/BEREncodingException.lo: \
+ gnu/java/security/ber/$(am__dirstamp) \
+ gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/ber/BERReader.lo: \
+ gnu/java/security/ber/$(am__dirstamp) \
+ gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/ber/BERValue.lo: \
+ gnu/java/security/ber/$(am__dirstamp) \
+ gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp)
gnu/java/security/der/$(am__dirstamp):
@$(mkdir_p) gnu/java/security/der
@: > gnu/java/security/der/$(am__dirstamp)
@@ -10122,6 +9659,18 @@ gnu/java/security/der/DERValue.lo: \
gnu/java/security/der/DERWriter.lo: \
gnu/java/security/der/$(am__dirstamp) \
gnu/java/security/der/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/pkcs/$(am__dirstamp):
+ @$(mkdir_p) gnu/java/security/pkcs
+ @: > gnu/java/security/pkcs/$(am__dirstamp)
+gnu/java/security/pkcs/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) gnu/java/security/pkcs/$(DEPDIR)
+ @: > gnu/java/security/pkcs/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/pkcs/PKCS7SignedData.lo: \
+ gnu/java/security/pkcs/$(am__dirstamp) \
+ gnu/java/security/pkcs/$(DEPDIR)/$(am__dirstamp)
+gnu/java/security/pkcs/SignerInfo.lo: \
+ gnu/java/security/pkcs/$(am__dirstamp) \
+ gnu/java/security/pkcs/$(DEPDIR)/$(am__dirstamp)
gnu/java/security/provider/$(am__dirstamp):
@$(mkdir_p) gnu/java/security/provider
@: > gnu/java/security/provider/$(am__dirstamp)
@@ -11747,66 +11296,6 @@ gnu/java/awt/peer/ClasspathFontPeer.lo: \
gnu/java/awt/peer/ClasspathTextLayoutPeer.lo: \
gnu/java/awt/peer/$(am__dirstamp) \
gnu/java/awt/peer/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/$(am__dirstamp):
- @$(mkdir_p) gnu/java/beans/editors
- @: > gnu/java/beans/editors/$(am__dirstamp)
-gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/java/beans/editors/$(DEPDIR)
- @: > gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/ColorEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/FontEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeBooleanEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeByteEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeDoubleEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeFloatEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeIntEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeLongEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/NativeShortEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/editors/StringEditor.lo: \
- gnu/java/beans/editors/$(am__dirstamp) \
- gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/info/$(am__dirstamp):
- @$(mkdir_p) gnu/java/beans/info
- @: > gnu/java/beans/info/$(am__dirstamp)
-gnu/java/beans/info/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/java/beans/info/$(DEPDIR)
- @: > gnu/java/beans/info/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/info/ComponentBeanInfo.lo: \
- gnu/java/beans/info/$(am__dirstamp) \
- gnu/java/beans/info/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/$(am__dirstamp):
- @$(mkdir_p) gnu/java/beans
- @: > gnu/java/beans/$(am__dirstamp)
-gnu/java/beans/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/java/beans/$(DEPDIR)
- @: > gnu/java/beans/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/BeanInfoEmbryo.lo: gnu/java/beans/$(am__dirstamp) \
- gnu/java/beans/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/EmptyBeanInfo.lo: gnu/java/beans/$(am__dirstamp) \
- gnu/java/beans/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/ExplicitBeanInfo.lo: gnu/java/beans/$(am__dirstamp) \
- gnu/java/beans/$(DEPDIR)/$(am__dirstamp)
-gnu/java/beans/IntrospectionIncubator.lo: \
- gnu/java/beans/$(am__dirstamp) \
- gnu/java/beans/$(DEPDIR)/$(am__dirstamp)
java/applet/$(am__dirstamp):
@$(mkdir_p) java/applet
@: > java/applet/$(am__dirstamp)
@@ -12723,6 +12212,8 @@ java/beans/Visibility.lo: java/beans/$(am__dirstamp) \
java/beans/$(DEPDIR)/$(am__dirstamp)
java/beans/AppletInitializer.lo: java/beans/$(am__dirstamp) \
java/beans/$(DEPDIR)/$(am__dirstamp)
+java/beans/XMLDecoder.lo: java/beans/$(am__dirstamp) \
+ java/beans/$(DEPDIR)/$(am__dirstamp)
javax/swing/border/$(am__dirstamp):
@$(mkdir_p) javax/swing/border
@: > javax/swing/border/$(am__dirstamp)
@@ -12807,6 +12298,9 @@ javax/swing/plaf/basic/BasicDesktopIconUI.lo: \
javax/swing/plaf/basic/BasicDesktopPaneUI.lo: \
javax/swing/plaf/basic/$(am__dirstamp) \
javax/swing/plaf/basic/$(DEPDIR)/$(am__dirstamp)
+javax/swing/plaf/basic/BasicEditorPaneUI.lo: \
+ javax/swing/plaf/basic/$(am__dirstamp) \
+ javax/swing/plaf/basic/$(DEPDIR)/$(am__dirstamp)
javax/swing/plaf/basic/BasicFormattedTextFieldUI.lo: \
javax/swing/plaf/basic/$(am__dirstamp) \
javax/swing/plaf/basic/$(DEPDIR)/$(am__dirstamp)
@@ -12975,9 +12469,15 @@ javax/swing/plaf/metal/$(am__dirstamp):
javax/swing/plaf/metal/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) javax/swing/plaf/metal/$(DEPDIR)
@: > javax/swing/plaf/metal/$(DEPDIR)/$(am__dirstamp)
+javax/swing/plaf/metal/DefaultMetalTheme.lo: \
+ javax/swing/plaf/metal/$(am__dirstamp) \
+ javax/swing/plaf/metal/$(DEPDIR)/$(am__dirstamp)
javax/swing/plaf/metal/MetalLookAndFeel.lo: \
javax/swing/plaf/metal/$(am__dirstamp) \
javax/swing/plaf/metal/$(DEPDIR)/$(am__dirstamp)
+javax/swing/plaf/metal/MetalTheme.lo: \
+ javax/swing/plaf/metal/$(am__dirstamp) \
+ javax/swing/plaf/metal/$(DEPDIR)/$(am__dirstamp)
javax/swing/plaf/ColorUIResource.lo: javax/swing/plaf/$(am__dirstamp) \
javax/swing/plaf/$(DEPDIR)/$(am__dirstamp)
javax/swing/plaf/DimensionUIResource.lo: \
@@ -13041,8 +12541,6 @@ javax/swing/plaf/ToolTipUI.lo: javax/swing/plaf/$(am__dirstamp) \
javax/swing/plaf/$(DEPDIR)/$(am__dirstamp)
javax/swing/AbstractListModel.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
-javax/swing/AbstractSet.lo: javax/swing/$(am__dirstamp) \
- javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/colorchooser/$(am__dirstamp):
@$(mkdir_p) javax/swing/colorchooser
@: > javax/swing/colorchooser/$(am__dirstamp)
@@ -13137,8 +12635,6 @@ javax/swing/ComponentInputMap.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/DefaultButtonModel.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
-javax/swing/DefaultCellRenderer.lo: javax/swing/$(am__dirstamp) \
- javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/DefaultListModel.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/DefaultListSelectionModel.lo: javax/swing/$(am__dirstamp) \
@@ -13149,6 +12645,9 @@ javax/swing/ImageIcon.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/InputMap.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
+javax/swing/InternalFrameFocusTraversalPolicy.lo: \
+ javax/swing/$(am__dirstamp) \
+ javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/JApplet.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/JButton.lo: javax/swing/$(am__dirstamp) \
@@ -13205,6 +12704,9 @@ javax/swing/JWindow.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/KeyStroke.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
+javax/swing/LayoutFocusTraversalPolicy.lo: \
+ javax/swing/$(am__dirstamp) \
+ javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/ListCellRenderer.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/ListModel.lo: javax/swing/$(am__dirstamp) \
@@ -13215,6 +12717,11 @@ javax/swing/LookAndFeel.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/Scrollable.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
+javax/swing/SortingFocusTraversalPolicy.lo: \
+ javax/swing/$(am__dirstamp) \
+ javax/swing/$(DEPDIR)/$(am__dirstamp)
+javax/swing/SpinnerDateModel.lo: javax/swing/$(am__dirstamp) \
+ javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/SpinnerListModel.lo: javax/swing/$(am__dirstamp) \
javax/swing/$(DEPDIR)/$(am__dirstamp)
javax/swing/SpinnerModel.lo: javax/swing/$(am__dirstamp) \
@@ -13396,6 +12903,9 @@ javax/swing/text/DefaultEditorKit.lo: \
javax/swing/text/DefaultHighlighter.lo: \
javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
+javax/swing/text/DefaultStyledDocument.lo: \
+ javax/swing/text/$(am__dirstamp) \
+ javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/Document.lo: javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/DocumentFilter.lo: javax/swing/text/$(am__dirstamp) \
@@ -13436,6 +12946,8 @@ javax/swing/text/Segment.lo: javax/swing/text/$(am__dirstamp) \
javax/swing/text/SimpleAttributeSet.lo: \
javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
+javax/swing/text/StringContent.lo: javax/swing/text/$(am__dirstamp) \
+ javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/Style.lo: javax/swing/text/$(am__dirstamp) \
javax/swing/text/$(DEPDIR)/$(am__dirstamp)
javax/swing/text/StyleConstants.lo: javax/swing/text/$(am__dirstamp) \
@@ -13710,162 +13222,6 @@ gnu/gcj/convert/Output_iconv.lo: gnu/gcj/convert/$(am__dirstamp) \
gnu/gcj/convert/$(DEPDIR)/$(am__dirstamp)
gnu/gcj/convert/UnicodeToBytes.lo: gnu/gcj/convert/$(am__dirstamp) \
gnu/gcj/convert/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/$(am__dirstamp):
- @$(mkdir_p) javax/imageio
- @: > javax/imageio/$(am__dirstamp)
-javax/imageio/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/$(DEPDIR)
- @: > javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageWriteParam.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageReader.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageWriter.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/IIOException.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/IIOParamController.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageReadParam.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/IIOParam.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/spi
- @: > javax/imageio/spi/$(am__dirstamp)
-javax/imageio/spi/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/spi/$(DEPDIR)
- @: > javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/IIORegistry.lo: javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ImageWriterSpi.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ImageOutputStreamSpi.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ServiceRegistry.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ImageTranscoderSpi.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ImageReaderSpi.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/IIOServiceProvider.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ImageReaderWriterSpi.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/ImageInputStreamSpi.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/spi/RegisterableService.lo: \
- javax/imageio/spi/$(am__dirstamp) \
- javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/metadata
- @: > javax/imageio/metadata/$(am__dirstamp)
-javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/metadata/$(DEPDIR)
- @: > javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOAttr.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIONamedNodeMap.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIONodeList.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOMetadataFormatImpl.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOInvalidTreeException.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOMetadataFormat.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOMetadataController.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOMetadataNode.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/metadata/IIOMetadata.lo: \
- javax/imageio/metadata/$(am__dirstamp) \
- javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/stream
- @: > javax/imageio/stream/$(am__dirstamp)
-javax/imageio/stream/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/stream/$(DEPDIR)
- @: > javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/FileImageOutputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/ImageInputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/IIOByteBuffer.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/FileCacheImageInputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/ImageInputStreamImpl.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/ImageOutputStreamImpl.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/MemoryCacheImageInputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/FileCacheImageOutputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/ImageOutputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/MemoryCacheImageOutputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/stream/FileImageInputStream.lo: \
- javax/imageio/stream/$(am__dirstamp) \
- javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/event/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/event
- @: > javax/imageio/event/$(am__dirstamp)
-javax/imageio/event/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/imageio/event/$(DEPDIR)
- @: > javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/event/IIOReadProgressListener.lo: \
- javax/imageio/event/$(am__dirstamp) \
- javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/event/IIOWriteWarningListener.lo: \
- javax/imageio/event/$(am__dirstamp) \
- javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/event/IIOReadWarningListener.lo: \
- javax/imageio/event/$(am__dirstamp) \
- javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/event/IIOReadUpdateListener.lo: \
- javax/imageio/event/$(am__dirstamp) \
- javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/event/IIOWriteProgressListener.lo: \
- javax/imageio/event/$(am__dirstamp) \
- javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageTranscoder.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageTypeSpecifier.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/ImageIO.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
-javax/imageio/IIOImage.lo: javax/imageio/$(am__dirstamp) \
- javax/imageio/$(DEPDIR)/$(am__dirstamp)
javax/net/$(am__dirstamp):
@$(mkdir_p) javax/net
@: > javax/net/$(am__dirstamp)
@@ -13979,6 +13335,18 @@ javax/print/attribute/standard/$(am__dirstamp):
javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) javax/print/attribute/standard/$(DEPDIR)
@: > javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp)
+javax/print/attribute/standard/Chromaticity.lo: \
+ javax/print/attribute/standard/$(am__dirstamp) \
+ javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp)
+javax/print/attribute/standard/Destination.lo: \
+ javax/print/attribute/standard/$(am__dirstamp) \
+ javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp)
+javax/print/attribute/standard/MediaPrintableArea.lo: \
+ javax/print/attribute/standard/$(am__dirstamp) \
+ javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp)
+javax/print/attribute/standard/MediaSize.lo: \
+ javax/print/attribute/standard/$(am__dirstamp) \
+ javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp)
javax/print/attribute/standard/NumberOfInterveningJobs.lo: \
javax/print/attribute/standard/$(am__dirstamp) \
javax/print/attribute/standard/$(DEPDIR)/$(am__dirstamp)
@@ -14551,208 +13919,6 @@ javax/naming/CompositeName.lo: javax/naming/$(am__dirstamp) \
javax/naming/$(DEPDIR)/$(am__dirstamp)
javax/naming/Name.lo: javax/naming/$(am__dirstamp) \
javax/naming/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/$(am__dirstamp):
- @$(mkdir_p) javax/xml/xpath
- @: > javax/xml/xpath/$(am__dirstamp)
-javax/xml/xpath/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/xpath/$(DEPDIR)
- @: > javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathConstants.lo: javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathFunction.lo: javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathVariableResolver.lo: \
- javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathExpressionException.lo: \
- javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathFunctionResolver.lo: \
- javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPath.lo: javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathFactoryConfigurationException.lo: \
- javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathFactory.lo: javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathException.lo: javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathExpression.lo: javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/xpath/XPathFunctionException.lo: \
- javax/xml/xpath/$(am__dirstamp) \
- javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-javax/xml/validation/$(am__dirstamp):
- @$(mkdir_p) javax/xml/validation
- @: > javax/xml/validation/$(am__dirstamp)
-javax/xml/validation/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/validation/$(DEPDIR)
- @: > javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
-javax/xml/validation/ValidatorHandler.lo: \
- javax/xml/validation/$(am__dirstamp) \
- javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
-javax/xml/validation/Validator.lo: \
- javax/xml/validation/$(am__dirstamp) \
- javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
-javax/xml/validation/TypeInfoProvider.lo: \
- javax/xml/validation/$(am__dirstamp) \
- javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
-javax/xml/validation/SchemaFactory.lo: \
- javax/xml/validation/$(am__dirstamp) \
- javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
-javax/xml/validation/Schema.lo: javax/xml/validation/$(am__dirstamp) \
- javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/$(am__dirstamp):
- @$(mkdir_p) javax/xml/parsers
- @: > javax/xml/parsers/$(am__dirstamp)
-javax/xml/parsers/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/parsers/$(DEPDIR)
- @: > javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/SAXParserFactory.lo: \
- javax/xml/parsers/$(am__dirstamp) \
- javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/FactoryConfigurationError.lo: \
- javax/xml/parsers/$(am__dirstamp) \
- javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/SAXParser.lo: javax/xml/parsers/$(am__dirstamp) \
- javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/DocumentBuilderFactory.lo: \
- javax/xml/parsers/$(am__dirstamp) \
- javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/ParserConfigurationException.lo: \
- javax/xml/parsers/$(am__dirstamp) \
- javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/parsers/DocumentBuilder.lo: \
- javax/xml/parsers/$(am__dirstamp) \
- javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
-javax/xml/datatype/$(am__dirstamp):
- @$(mkdir_p) javax/xml/datatype
- @: > javax/xml/datatype/$(am__dirstamp)
-javax/xml/datatype/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/datatype/$(DEPDIR)
- @: > javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
-javax/xml/datatype/DatatypeFactory.lo: \
- javax/xml/datatype/$(am__dirstamp) \
- javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
-javax/xml/datatype/XMLGregorianCalendar.lo: \
- javax/xml/datatype/$(am__dirstamp) \
- javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
-javax/xml/datatype/Duration.lo: javax/xml/datatype/$(am__dirstamp) \
- javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
-javax/xml/datatype/DatatypeConfigurationException.lo: \
- javax/xml/datatype/$(am__dirstamp) \
- javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
-javax/xml/datatype/DatatypeConstants.lo: \
- javax/xml/datatype/$(am__dirstamp) \
- javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
-javax/xml/$(am__dirstamp):
- @$(mkdir_p) javax/xml
- @: > javax/xml/$(am__dirstamp)
-javax/xml/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/$(DEPDIR)
- @: > javax/xml/$(DEPDIR)/$(am__dirstamp)
-javax/xml/XMLConstants.lo: javax/xml/$(am__dirstamp) \
- javax/xml/$(DEPDIR)/$(am__dirstamp)
-javax/xml/namespace/$(am__dirstamp):
- @$(mkdir_p) javax/xml/namespace
- @: > javax/xml/namespace/$(am__dirstamp)
-javax/xml/namespace/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/namespace/$(DEPDIR)
- @: > javax/xml/namespace/$(DEPDIR)/$(am__dirstamp)
-javax/xml/namespace/NamespaceContext.lo: \
- javax/xml/namespace/$(am__dirstamp) \
- javax/xml/namespace/$(DEPDIR)/$(am__dirstamp)
-javax/xml/namespace/QName.lo: javax/xml/namespace/$(am__dirstamp) \
- javax/xml/namespace/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform
- @: > javax/xml/transform/$(am__dirstamp)
-javax/xml/transform/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/$(DEPDIR)
- @: > javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/TransformerException.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/TransformerFactoryConfigurationError.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/sax/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/sax
- @: > javax/xml/transform/sax/$(am__dirstamp)
-javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/sax/$(DEPDIR)
- @: > javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/sax/SAXResult.lo: \
- javax/xml/transform/sax/$(am__dirstamp) \
- javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/sax/TransformerHandler.lo: \
- javax/xml/transform/sax/$(am__dirstamp) \
- javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/sax/SAXTransformerFactory.lo: \
- javax/xml/transform/sax/$(am__dirstamp) \
- javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/sax/SAXSource.lo: \
- javax/xml/transform/sax/$(am__dirstamp) \
- javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/sax/TemplatesHandler.lo: \
- javax/xml/transform/sax/$(am__dirstamp) \
- javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/OutputKeys.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/stream/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/stream
- @: > javax/xml/transform/stream/$(am__dirstamp)
-javax/xml/transform/stream/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/stream/$(DEPDIR)
- @: > javax/xml/transform/stream/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/stream/StreamResult.lo: \
- javax/xml/transform/stream/$(am__dirstamp) \
- javax/xml/transform/stream/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/stream/StreamSource.lo: \
- javax/xml/transform/stream/$(am__dirstamp) \
- javax/xml/transform/stream/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/Source.lo: javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/SourceLocator.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/ErrorListener.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/TransformerConfigurationException.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/Templates.lo: javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/Result.lo: javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/URIResolver.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/dom/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/dom
- @: > javax/xml/transform/dom/$(am__dirstamp)
-javax/xml/transform/dom/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) javax/xml/transform/dom/$(DEPDIR)
- @: > javax/xml/transform/dom/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/dom/DOMSource.lo: \
- javax/xml/transform/dom/$(am__dirstamp) \
- javax/xml/transform/dom/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/dom/DOMLocator.lo: \
- javax/xml/transform/dom/$(am__dirstamp) \
- javax/xml/transform/dom/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/dom/DOMResult.lo: \
- javax/xml/transform/dom/$(am__dirstamp) \
- javax/xml/transform/dom/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/Transformer.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
-javax/xml/transform/TransformerFactory.lo: \
- javax/xml/transform/$(am__dirstamp) \
- javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
javax/security/cert/$(am__dirstamp):
@$(mkdir_p) javax/security/cert
@: > javax/security/cert/$(am__dirstamp)
@@ -15239,426 +14405,6 @@ org/ietf/jgss/GSSCredential.lo: org/ietf/jgss/$(am__dirstamp) \
org/ietf/jgss/$(DEPDIR)/$(am__dirstamp)
org/ietf/jgss/ChannelBinding.lo: org/ietf/jgss/$(am__dirstamp) \
org/ietf/jgss/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/xpath
- @: > gnu/xml/xpath/$(am__dirstamp)
-gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/xpath/$(DEPDIR)
- @: > gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/EqualityExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NumberFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/StringLengthFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NameFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/SumFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Pattern.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/StringFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NegativeExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/UnionExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/SubstringFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Expr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/XPathFactoryImpl.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NormalizeSpaceFunction.lo: \
- gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Constant.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Predicate.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Path.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/OrExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/LangFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/StartsWithFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/SubstringAfterFunction.lo: \
- gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/FloorFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NotFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Root.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/PositionFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/VariableReference.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/DocumentOrderComparator.lo: \
- gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/LocalNameFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NamespaceUriFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/TranslateFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/FalseFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/AndExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/XPathParser.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NamespaceTest.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/ConcatFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NameTest.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/CountFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/IdFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/LastFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/XPathTokenizer.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Steps.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/TrueFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/BooleanFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/ParenthesizedExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/XPathImpl.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Selector.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/RoundFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/SubstringBeforeFunction.lo: \
- gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Function.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/CeilingFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/RelationalExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/FunctionCall.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/NodeTypeTest.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/ArithmeticExpr.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/Test.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/xpath/ContainsFunction.lo: gnu/xml/xpath/$(am__dirstamp) \
- gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/pipeline
- @: > gnu/xml/pipeline/$(am__dirstamp)
-gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/pipeline/$(DEPDIR)
- @: > gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/EventFilter.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/NSFilter.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/XsltFilter.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/ValidationConsumer.lo: \
- gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/PipelineFactory.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/TextConsumer.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/LinkFilter.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/TeeConsumer.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/DomConsumer.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/EventConsumer.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/WellFormednessFilter.lo: \
- gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/XIncludeFilter.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/pipeline/CallFilter.lo: gnu/xml/pipeline/$(am__dirstamp) \
- gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/aelfred2/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/aelfred2
- @: > gnu/xml/aelfred2/$(am__dirstamp)
-gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/aelfred2/$(DEPDIR)
- @: > gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/aelfred2/XmlParser.lo: gnu/xml/aelfred2/$(am__dirstamp) \
- gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/aelfred2/XmlReader.lo: gnu/xml/aelfred2/$(am__dirstamp) \
- gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/aelfred2/JAXPFactory.lo: gnu/xml/aelfred2/$(am__dirstamp) \
- gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/aelfred2/ContentHandler2.lo: gnu/xml/aelfred2/$(am__dirstamp) \
- gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/aelfred2/SAXDriver.lo: gnu/xml/aelfred2/$(am__dirstamp) \
- gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/util
- @: > gnu/xml/util/$(am__dirstamp)
-gnu/xml/util/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/util/$(DEPDIR)
- @: > gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/XCat.lo: gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/DomParser.lo: gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/XMLWriter.lo: gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/Resolver.lo: gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/DoParse.lo: gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/XHTMLWriter.lo: gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/util/SAXNullTransformerFactory.lo: \
- gnu/xml/util/$(am__dirstamp) \
- gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/dom
- @: > gnu/xml/dom/$(am__dirstamp)
-gnu/xml/dom/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/dom/$(DEPDIR)
- @: > gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomCDATA.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomXPathNSResolver.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/dom/ls
- @: > gnu/xml/dom/ls/$(am__dirstamp)
-gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/dom/ls/$(DEPDIR)
- @: > gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/DomLSEx.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/FilteredSAXEventSink.lo: \
- gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/DomLSSerializer.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/DomLSInput.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/DomLSOutput.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/SAXEventSink.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/DomLSParser.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/ReaderInputStream.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ls/WriterOutputStream.lo: gnu/xml/dom/ls/$(am__dirstamp) \
- gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomElement.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomNsNode.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomAttr.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomPI.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DTDAttributeTypeInfo.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomDocumentBuilder.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DTDElementTypeInfo.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomEx.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomDocument.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomXPathExpression.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomDocumentConfiguration.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/Consumer.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomComment.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomCharacterData.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomExtern.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomEntityReference.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomNamedNodeMap.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ImplementationList.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/ImplementationSource.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomImpl.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomDoctype.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomNode.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomXPathResult.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomDocumentBuilderFactory.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomText.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomNSResolverContext.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomNodeIterator.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomNotation.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/JAXPFactory.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomIterator.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomFragment.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomEvent.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/dom/DomEntity.lo: gnu/xml/dom/$(am__dirstamp) \
- gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/transform
- @: > gnu/xml/transform/$(am__dirstamp)
-gnu/xml/transform/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) gnu/xml/transform/$(DEPDIR)
- @: > gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/GenerateIdFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/FormatNumberFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ValueOfNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ApplyImportsNode.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/WithParam.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/DocumentFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/SAXSerializer.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/FunctionAvailableFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ElementAvailableFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/IfNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ApplyTemplatesNode.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/SortKey.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/Key.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ElementNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/CurrentFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/XSLComparator.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/CallTemplateNode.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/TemplatesImpl.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ChooseNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/NumberNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/CopyOfNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ParameterNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/TransformerFactoryImpl.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/TextNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/CopyNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/SystemPropertyFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/Stylesheet.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ProcessingInstructionNode.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/UnparsedEntityUriFunction.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/URIResolverEntityResolver.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ErrorListenerErrorHandler.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/Bindings.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/AttributeSet.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/Template.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/MessageNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/LiteralNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/StreamSerializer.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/XSLURIResolver.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/AttributeNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/CommentNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/ForEachNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/KeyFunction.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/TransformerImpl.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/WhenNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/NodeNumberNode.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/OtherwiseNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/AbstractNumberNode.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/TemplateNode.lo: gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/TransformerOutputProperties.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
-gnu/xml/transform/DOMSourceLocator.lo: \
- gnu/xml/transform/$(am__dirstamp) \
- gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
java/lang/ConcreteProcess.lo: java/lang/$(am__dirstamp) \
java/lang/$(DEPDIR)/$(am__dirstamp)
gnu/classpath/Configuration.lo: gnu/classpath/$(am__dirstamp) \
@@ -15721,6 +14467,9 @@ gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp):
gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT): \
gnu/gcj/tools/gcj_dbtool/$(am__dirstamp) \
gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp)
+gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT): \
+ gnu/gcj/tools/gcj_dbtool/$(am__dirstamp) \
+ gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/$(am__dirstamp)
gcj-dbtool$(EXEEXT): $(gcj_dbtool_OBJECTS) $(gcj_dbtool_DEPENDENCIES)
@rm -f gcj-dbtool$(EXEEXT)
$(gcj_dbtool_LINK) $(gcj_dbtool_LDFLAGS) $(gcj_dbtool_OBJECTS) $(gcj_dbtool_LDADD) $(LIBS)
@@ -15884,10 +14633,16 @@ mostlyclean-compile:
-rm -f gnu/gcj/io/shs.lo
-rm -f gnu/gcj/natCore.$(OBJEXT)
-rm -f gnu/gcj/natCore.lo
+ -rm -f gnu/gcj/runtime/BootClassLoader.$(OBJEXT)
+ -rm -f gnu/gcj/runtime/BootClassLoader.lo
+ -rm -f gnu/gcj/runtime/ExtensionClassLoader.$(OBJEXT)
+ -rm -f gnu/gcj/runtime/ExtensionClassLoader.lo
-rm -f gnu/gcj/runtime/FileDeleter.$(OBJEXT)
-rm -f gnu/gcj/runtime/FileDeleter.lo
-rm -f gnu/gcj/runtime/FinalizerThread.$(OBJEXT)
-rm -f gnu/gcj/runtime/FinalizerThread.lo
+ -rm -f gnu/gcj/runtime/HelperClassLoader.$(OBJEXT)
+ -rm -f gnu/gcj/runtime/HelperClassLoader.lo
-rm -f gnu/gcj/runtime/JNIWeakRef.$(OBJEXT)
-rm -f gnu/gcj/runtime/JNIWeakRef.lo
-rm -f gnu/gcj/runtime/MethodRef.$(OBJEXT)
@@ -15906,8 +14661,6 @@ mostlyclean-compile:
-rm -f gnu/gcj/runtime/StringBuffer.lo
-rm -f gnu/gcj/runtime/SystemClassLoader.$(OBJEXT)
-rm -f gnu/gcj/runtime/SystemClassLoader.lo
- -rm -f gnu/gcj/runtime/VMClassLoader.$(OBJEXT)
- -rm -f gnu/gcj/runtime/VMClassLoader.lo
-rm -f gnu/gcj/runtime/natFinalizerThread.$(OBJEXT)
-rm -f gnu/gcj/runtime/natFinalizerThread.lo
-rm -f gnu/gcj/runtime/natNameFinder.$(OBJEXT)
@@ -15918,9 +14671,8 @@ mostlyclean-compile:
-rm -f gnu/gcj/runtime/natStackTrace.lo
-rm -f gnu/gcj/runtime/natStringBuffer.$(OBJEXT)
-rm -f gnu/gcj/runtime/natStringBuffer.lo
- -rm -f gnu/gcj/runtime/natVMClassLoader.$(OBJEXT)
- -rm -f gnu/gcj/runtime/natVMClassLoader.lo
-rm -f gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT)
+ -rm -f gnu/gcj/tools/gcj_dbtool/natMain.$(OBJEXT)
-rm -f gnu/gcj/util/Debug.$(OBJEXT)
-rm -f gnu/gcj/util/Debug.lo
-rm -f gnu/gcj/util/natDebug.$(OBJEXT)
@@ -16065,122 +14817,6 @@ mostlyclean-compile:
-rm -f gnu/java/awt/peer/EmbeddedWindowPeer.lo
-rm -f gnu/java/awt/peer/GLightweightPeer.$(OBJEXT)
-rm -f gnu/java/awt/peer/GLightweightPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.$(OBJEXT)
- -rm -f gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo
- -rm -f gnu/java/beans/BeanInfoEmbryo.$(OBJEXT)
- -rm -f gnu/java/beans/BeanInfoEmbryo.lo
- -rm -f gnu/java/beans/EmptyBeanInfo.$(OBJEXT)
- -rm -f gnu/java/beans/EmptyBeanInfo.lo
- -rm -f gnu/java/beans/ExplicitBeanInfo.$(OBJEXT)
- -rm -f gnu/java/beans/ExplicitBeanInfo.lo
- -rm -f gnu/java/beans/IntrospectionIncubator.$(OBJEXT)
- -rm -f gnu/java/beans/IntrospectionIncubator.lo
- -rm -f gnu/java/beans/editors/ColorEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/ColorEditor.lo
- -rm -f gnu/java/beans/editors/FontEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/FontEditor.lo
- -rm -f gnu/java/beans/editors/NativeBooleanEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeBooleanEditor.lo
- -rm -f gnu/java/beans/editors/NativeByteEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeByteEditor.lo
- -rm -f gnu/java/beans/editors/NativeDoubleEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeDoubleEditor.lo
- -rm -f gnu/java/beans/editors/NativeFloatEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeFloatEditor.lo
- -rm -f gnu/java/beans/editors/NativeIntEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeIntEditor.lo
- -rm -f gnu/java/beans/editors/NativeLongEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeLongEditor.lo
- -rm -f gnu/java/beans/editors/NativeShortEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/NativeShortEditor.lo
- -rm -f gnu/java/beans/editors/StringEditor.$(OBJEXT)
- -rm -f gnu/java/beans/editors/StringEditor.lo
- -rm -f gnu/java/beans/info/ComponentBeanInfo.$(OBJEXT)
- -rm -f gnu/java/beans/info/ComponentBeanInfo.lo
-rm -f gnu/java/io/ASN1ParsingException.$(OBJEXT)
-rm -f gnu/java/io/ASN1ParsingException.lo
-rm -f gnu/java/io/Base64InputStream.$(OBJEXT)
@@ -16483,10 +15119,16 @@ mostlyclean-compile:
-rm -f gnu/java/math/MPN.lo
-rm -f gnu/java/net/BASE64.$(OBJEXT)
-rm -f gnu/java/net/BASE64.lo
+ -rm -f gnu/java/net/CRLFInputStream.$(OBJEXT)
+ -rm -f gnu/java/net/CRLFInputStream.lo
+ -rm -f gnu/java/net/CRLFOutputStream.$(OBJEXT)
+ -rm -f gnu/java/net/CRLFOutputStream.lo
-rm -f gnu/java/net/DefaultContentHandlerFactory.$(OBJEXT)
-rm -f gnu/java/net/DefaultContentHandlerFactory.lo
-rm -f gnu/java/net/EmptyX509TrustManager.$(OBJEXT)
-rm -f gnu/java/net/EmptyX509TrustManager.lo
+ -rm -f gnu/java/net/GetLocalHostAction.$(OBJEXT)
+ -rm -f gnu/java/net/GetLocalHostAction.lo
-rm -f gnu/java/net/HeaderFieldHelper.$(OBJEXT)
-rm -f gnu/java/net/HeaderFieldHelper.lo
-rm -f gnu/java/net/LineInputStream.$(OBJEXT)
@@ -16513,6 +15155,38 @@ mostlyclean-compile:
-rm -f gnu/java/net/protocol/file/Connection.lo
-rm -f gnu/java/net/protocol/file/Handler.$(OBJEXT)
-rm -f gnu/java/net/protocol/file/Handler.lo
+ -rm -f gnu/java/net/protocol/ftp/ActiveModeDTP.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/ActiveModeDTP.lo
+ -rm -f gnu/java/net/protocol/ftp/BlockInputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/BlockInputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/BlockOutputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/BlockOutputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/CompressedInputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/CompressedInputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/CompressedOutputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/CompressedOutputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/DTP.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/DTP.lo
+ -rm -f gnu/java/net/protocol/ftp/DTPInputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/DTPInputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/DTPOutputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/DTPOutputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/FTPConnection.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/FTPConnection.lo
+ -rm -f gnu/java/net/protocol/ftp/FTPException.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/FTPException.lo
+ -rm -f gnu/java/net/protocol/ftp/FTPResponse.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/FTPResponse.lo
+ -rm -f gnu/java/net/protocol/ftp/FTPURLConnection.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/FTPURLConnection.lo
+ -rm -f gnu/java/net/protocol/ftp/Handler.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/Handler.lo
+ -rm -f gnu/java/net/protocol/ftp/PassiveModeDTP.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/PassiveModeDTP.lo
+ -rm -f gnu/java/net/protocol/ftp/StreamInputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/StreamInputStream.lo
+ -rm -f gnu/java/net/protocol/ftp/StreamOutputStream.$(OBJEXT)
+ -rm -f gnu/java/net/protocol/ftp/StreamOutputStream.lo
-rm -f gnu/java/net/protocol/gcjlib/Connection.$(OBJEXT)
-rm -f gnu/java/net/protocol/gcjlib/Connection.lo
-rm -f gnu/java/net/protocol/gcjlib/Handler.$(OBJEXT)
@@ -16569,6 +15243,8 @@ mostlyclean-compile:
-rm -f gnu/java/nio/ChannelInputStream.lo
-rm -f gnu/java/nio/ChannelOutputStream.$(OBJEXT)
-rm -f gnu/java/nio/ChannelOutputStream.lo
+ -rm -f gnu/java/nio/ChannelReader.$(OBJEXT)
+ -rm -f gnu/java/nio/ChannelReader.lo
-rm -f gnu/java/nio/DatagramChannelImpl.$(OBJEXT)
-rm -f gnu/java/nio/DatagramChannelImpl.lo
-rm -f gnu/java/nio/DatagramChannelSelectionKey.$(OBJEXT)
@@ -16709,6 +15385,14 @@ mostlyclean-compile:
-rm -f gnu/java/security/action/GetSecurityPropertyAction.lo
-rm -f gnu/java/security/action/SetAccessibleAction.$(OBJEXT)
-rm -f gnu/java/security/action/SetAccessibleAction.lo
+ -rm -f gnu/java/security/ber/BER.$(OBJEXT)
+ -rm -f gnu/java/security/ber/BER.lo
+ -rm -f gnu/java/security/ber/BEREncodingException.$(OBJEXT)
+ -rm -f gnu/java/security/ber/BEREncodingException.lo
+ -rm -f gnu/java/security/ber/BERReader.$(OBJEXT)
+ -rm -f gnu/java/security/ber/BERReader.lo
+ -rm -f gnu/java/security/ber/BERValue.$(OBJEXT)
+ -rm -f gnu/java/security/ber/BERValue.lo
-rm -f gnu/java/security/der/BitString.$(OBJEXT)
-rm -f gnu/java/security/der/BitString.lo
-rm -f gnu/java/security/der/DER.$(OBJEXT)
@@ -16721,6 +15405,10 @@ mostlyclean-compile:
-rm -f gnu/java/security/der/DERValue.lo
-rm -f gnu/java/security/der/DERWriter.$(OBJEXT)
-rm -f gnu/java/security/der/DERWriter.lo
+ -rm -f gnu/java/security/pkcs/PKCS7SignedData.$(OBJEXT)
+ -rm -f gnu/java/security/pkcs/PKCS7SignedData.lo
+ -rm -f gnu/java/security/pkcs/SignerInfo.$(OBJEXT)
+ -rm -f gnu/java/security/pkcs/SignerInfo.lo
-rm -f gnu/java/security/provider/CollectionCertStoreImpl.$(OBJEXT)
-rm -f gnu/java/security/provider/CollectionCertStoreImpl.lo
-rm -f gnu/java/security/provider/DSAKeyFactory.$(OBJEXT)
@@ -16905,354 +15593,6 @@ mostlyclean-compile:
-rm -f gnu/regexp/RETokenWordBoundary.lo
-rm -f gnu/regexp/UncheckedRE.$(OBJEXT)
-rm -f gnu/regexp/UncheckedRE.lo
- -rm -f gnu/xml/aelfred2/ContentHandler2.$(OBJEXT)
- -rm -f gnu/xml/aelfred2/ContentHandler2.lo
- -rm -f gnu/xml/aelfred2/JAXPFactory.$(OBJEXT)
- -rm -f gnu/xml/aelfred2/JAXPFactory.lo
- -rm -f gnu/xml/aelfred2/SAXDriver.$(OBJEXT)
- -rm -f gnu/xml/aelfred2/SAXDriver.lo
- -rm -f gnu/xml/aelfred2/XmlParser.$(OBJEXT)
- -rm -f gnu/xml/aelfred2/XmlParser.lo
- -rm -f gnu/xml/aelfred2/XmlReader.$(OBJEXT)
- -rm -f gnu/xml/aelfred2/XmlReader.lo
- -rm -f gnu/xml/dom/Consumer.$(OBJEXT)
- -rm -f gnu/xml/dom/Consumer.lo
- -rm -f gnu/xml/dom/DTDAttributeTypeInfo.$(OBJEXT)
- -rm -f gnu/xml/dom/DTDAttributeTypeInfo.lo
- -rm -f gnu/xml/dom/DTDElementTypeInfo.$(OBJEXT)
- -rm -f gnu/xml/dom/DTDElementTypeInfo.lo
- -rm -f gnu/xml/dom/DomAttr.$(OBJEXT)
- -rm -f gnu/xml/dom/DomAttr.lo
- -rm -f gnu/xml/dom/DomCDATA.$(OBJEXT)
- -rm -f gnu/xml/dom/DomCDATA.lo
- -rm -f gnu/xml/dom/DomCharacterData.$(OBJEXT)
- -rm -f gnu/xml/dom/DomCharacterData.lo
- -rm -f gnu/xml/dom/DomComment.$(OBJEXT)
- -rm -f gnu/xml/dom/DomComment.lo
- -rm -f gnu/xml/dom/DomDoctype.$(OBJEXT)
- -rm -f gnu/xml/dom/DomDoctype.lo
- -rm -f gnu/xml/dom/DomDocument.$(OBJEXT)
- -rm -f gnu/xml/dom/DomDocument.lo
- -rm -f gnu/xml/dom/DomDocumentBuilder.$(OBJEXT)
- -rm -f gnu/xml/dom/DomDocumentBuilder.lo
- -rm -f gnu/xml/dom/DomDocumentBuilderFactory.$(OBJEXT)
- -rm -f gnu/xml/dom/DomDocumentBuilderFactory.lo
- -rm -f gnu/xml/dom/DomDocumentConfiguration.$(OBJEXT)
- -rm -f gnu/xml/dom/DomDocumentConfiguration.lo
- -rm -f gnu/xml/dom/DomElement.$(OBJEXT)
- -rm -f gnu/xml/dom/DomElement.lo
- -rm -f gnu/xml/dom/DomEntity.$(OBJEXT)
- -rm -f gnu/xml/dom/DomEntity.lo
- -rm -f gnu/xml/dom/DomEntityReference.$(OBJEXT)
- -rm -f gnu/xml/dom/DomEntityReference.lo
- -rm -f gnu/xml/dom/DomEvent.$(OBJEXT)
- -rm -f gnu/xml/dom/DomEvent.lo
- -rm -f gnu/xml/dom/DomEx.$(OBJEXT)
- -rm -f gnu/xml/dom/DomEx.lo
- -rm -f gnu/xml/dom/DomExtern.$(OBJEXT)
- -rm -f gnu/xml/dom/DomExtern.lo
- -rm -f gnu/xml/dom/DomFragment.$(OBJEXT)
- -rm -f gnu/xml/dom/DomFragment.lo
- -rm -f gnu/xml/dom/DomImpl.$(OBJEXT)
- -rm -f gnu/xml/dom/DomImpl.lo
- -rm -f gnu/xml/dom/DomIterator.$(OBJEXT)
- -rm -f gnu/xml/dom/DomIterator.lo
- -rm -f gnu/xml/dom/DomNSResolverContext.$(OBJEXT)
- -rm -f gnu/xml/dom/DomNSResolverContext.lo
- -rm -f gnu/xml/dom/DomNamedNodeMap.$(OBJEXT)
- -rm -f gnu/xml/dom/DomNamedNodeMap.lo
- -rm -f gnu/xml/dom/DomNode.$(OBJEXT)
- -rm -f gnu/xml/dom/DomNode.lo
- -rm -f gnu/xml/dom/DomNodeIterator.$(OBJEXT)
- -rm -f gnu/xml/dom/DomNodeIterator.lo
- -rm -f gnu/xml/dom/DomNotation.$(OBJEXT)
- -rm -f gnu/xml/dom/DomNotation.lo
- -rm -f gnu/xml/dom/DomNsNode.$(OBJEXT)
- -rm -f gnu/xml/dom/DomNsNode.lo
- -rm -f gnu/xml/dom/DomPI.$(OBJEXT)
- -rm -f gnu/xml/dom/DomPI.lo
- -rm -f gnu/xml/dom/DomText.$(OBJEXT)
- -rm -f gnu/xml/dom/DomText.lo
- -rm -f gnu/xml/dom/DomXPathExpression.$(OBJEXT)
- -rm -f gnu/xml/dom/DomXPathExpression.lo
- -rm -f gnu/xml/dom/DomXPathNSResolver.$(OBJEXT)
- -rm -f gnu/xml/dom/DomXPathNSResolver.lo
- -rm -f gnu/xml/dom/DomXPathResult.$(OBJEXT)
- -rm -f gnu/xml/dom/DomXPathResult.lo
- -rm -f gnu/xml/dom/ImplementationList.$(OBJEXT)
- -rm -f gnu/xml/dom/ImplementationList.lo
- -rm -f gnu/xml/dom/ImplementationSource.$(OBJEXT)
- -rm -f gnu/xml/dom/ImplementationSource.lo
- -rm -f gnu/xml/dom/JAXPFactory.$(OBJEXT)
- -rm -f gnu/xml/dom/JAXPFactory.lo
- -rm -f gnu/xml/dom/ls/DomLSEx.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/DomLSEx.lo
- -rm -f gnu/xml/dom/ls/DomLSInput.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/DomLSInput.lo
- -rm -f gnu/xml/dom/ls/DomLSOutput.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/DomLSOutput.lo
- -rm -f gnu/xml/dom/ls/DomLSParser.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/DomLSParser.lo
- -rm -f gnu/xml/dom/ls/DomLSSerializer.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/DomLSSerializer.lo
- -rm -f gnu/xml/dom/ls/FilteredSAXEventSink.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/FilteredSAXEventSink.lo
- -rm -f gnu/xml/dom/ls/ReaderInputStream.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/ReaderInputStream.lo
- -rm -f gnu/xml/dom/ls/SAXEventSink.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/SAXEventSink.lo
- -rm -f gnu/xml/dom/ls/WriterOutputStream.$(OBJEXT)
- -rm -f gnu/xml/dom/ls/WriterOutputStream.lo
- -rm -f gnu/xml/pipeline/CallFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/CallFilter.lo
- -rm -f gnu/xml/pipeline/DomConsumer.$(OBJEXT)
- -rm -f gnu/xml/pipeline/DomConsumer.lo
- -rm -f gnu/xml/pipeline/EventConsumer.$(OBJEXT)
- -rm -f gnu/xml/pipeline/EventConsumer.lo
- -rm -f gnu/xml/pipeline/EventFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/EventFilter.lo
- -rm -f gnu/xml/pipeline/LinkFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/LinkFilter.lo
- -rm -f gnu/xml/pipeline/NSFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/NSFilter.lo
- -rm -f gnu/xml/pipeline/PipelineFactory.$(OBJEXT)
- -rm -f gnu/xml/pipeline/PipelineFactory.lo
- -rm -f gnu/xml/pipeline/TeeConsumer.$(OBJEXT)
- -rm -f gnu/xml/pipeline/TeeConsumer.lo
- -rm -f gnu/xml/pipeline/TextConsumer.$(OBJEXT)
- -rm -f gnu/xml/pipeline/TextConsumer.lo
- -rm -f gnu/xml/pipeline/ValidationConsumer.$(OBJEXT)
- -rm -f gnu/xml/pipeline/ValidationConsumer.lo
- -rm -f gnu/xml/pipeline/WellFormednessFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/WellFormednessFilter.lo
- -rm -f gnu/xml/pipeline/XIncludeFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/XIncludeFilter.lo
- -rm -f gnu/xml/pipeline/XsltFilter.$(OBJEXT)
- -rm -f gnu/xml/pipeline/XsltFilter.lo
- -rm -f gnu/xml/transform/AbstractNumberNode.$(OBJEXT)
- -rm -f gnu/xml/transform/AbstractNumberNode.lo
- -rm -f gnu/xml/transform/ApplyImportsNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ApplyImportsNode.lo
- -rm -f gnu/xml/transform/ApplyTemplatesNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ApplyTemplatesNode.lo
- -rm -f gnu/xml/transform/AttributeNode.$(OBJEXT)
- -rm -f gnu/xml/transform/AttributeNode.lo
- -rm -f gnu/xml/transform/AttributeSet.$(OBJEXT)
- -rm -f gnu/xml/transform/AttributeSet.lo
- -rm -f gnu/xml/transform/Bindings.$(OBJEXT)
- -rm -f gnu/xml/transform/Bindings.lo
- -rm -f gnu/xml/transform/CallTemplateNode.$(OBJEXT)
- -rm -f gnu/xml/transform/CallTemplateNode.lo
- -rm -f gnu/xml/transform/ChooseNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ChooseNode.lo
- -rm -f gnu/xml/transform/CommentNode.$(OBJEXT)
- -rm -f gnu/xml/transform/CommentNode.lo
- -rm -f gnu/xml/transform/CopyNode.$(OBJEXT)
- -rm -f gnu/xml/transform/CopyNode.lo
- -rm -f gnu/xml/transform/CopyOfNode.$(OBJEXT)
- -rm -f gnu/xml/transform/CopyOfNode.lo
- -rm -f gnu/xml/transform/CurrentFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/CurrentFunction.lo
- -rm -f gnu/xml/transform/DOMSourceLocator.$(OBJEXT)
- -rm -f gnu/xml/transform/DOMSourceLocator.lo
- -rm -f gnu/xml/transform/DocumentFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/DocumentFunction.lo
- -rm -f gnu/xml/transform/ElementAvailableFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/ElementAvailableFunction.lo
- -rm -f gnu/xml/transform/ElementNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ElementNode.lo
- -rm -f gnu/xml/transform/ErrorListenerErrorHandler.$(OBJEXT)
- -rm -f gnu/xml/transform/ErrorListenerErrorHandler.lo
- -rm -f gnu/xml/transform/ForEachNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ForEachNode.lo
- -rm -f gnu/xml/transform/FormatNumberFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/FormatNumberFunction.lo
- -rm -f gnu/xml/transform/FunctionAvailableFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/FunctionAvailableFunction.lo
- -rm -f gnu/xml/transform/GenerateIdFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/GenerateIdFunction.lo
- -rm -f gnu/xml/transform/IfNode.$(OBJEXT)
- -rm -f gnu/xml/transform/IfNode.lo
- -rm -f gnu/xml/transform/Key.$(OBJEXT)
- -rm -f gnu/xml/transform/Key.lo
- -rm -f gnu/xml/transform/KeyFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/KeyFunction.lo
- -rm -f gnu/xml/transform/LiteralNode.$(OBJEXT)
- -rm -f gnu/xml/transform/LiteralNode.lo
- -rm -f gnu/xml/transform/MessageNode.$(OBJEXT)
- -rm -f gnu/xml/transform/MessageNode.lo
- -rm -f gnu/xml/transform/NodeNumberNode.$(OBJEXT)
- -rm -f gnu/xml/transform/NodeNumberNode.lo
- -rm -f gnu/xml/transform/NumberNode.$(OBJEXT)
- -rm -f gnu/xml/transform/NumberNode.lo
- -rm -f gnu/xml/transform/OtherwiseNode.$(OBJEXT)
- -rm -f gnu/xml/transform/OtherwiseNode.lo
- -rm -f gnu/xml/transform/ParameterNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ParameterNode.lo
- -rm -f gnu/xml/transform/ProcessingInstructionNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ProcessingInstructionNode.lo
- -rm -f gnu/xml/transform/SAXSerializer.$(OBJEXT)
- -rm -f gnu/xml/transform/SAXSerializer.lo
- -rm -f gnu/xml/transform/SortKey.$(OBJEXT)
- -rm -f gnu/xml/transform/SortKey.lo
- -rm -f gnu/xml/transform/StreamSerializer.$(OBJEXT)
- -rm -f gnu/xml/transform/StreamSerializer.lo
- -rm -f gnu/xml/transform/Stylesheet.$(OBJEXT)
- -rm -f gnu/xml/transform/Stylesheet.lo
- -rm -f gnu/xml/transform/SystemPropertyFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/SystemPropertyFunction.lo
- -rm -f gnu/xml/transform/Template.$(OBJEXT)
- -rm -f gnu/xml/transform/Template.lo
- -rm -f gnu/xml/transform/TemplateNode.$(OBJEXT)
- -rm -f gnu/xml/transform/TemplateNode.lo
- -rm -f gnu/xml/transform/TemplatesImpl.$(OBJEXT)
- -rm -f gnu/xml/transform/TemplatesImpl.lo
- -rm -f gnu/xml/transform/TextNode.$(OBJEXT)
- -rm -f gnu/xml/transform/TextNode.lo
- -rm -f gnu/xml/transform/TransformerFactoryImpl.$(OBJEXT)
- -rm -f gnu/xml/transform/TransformerFactoryImpl.lo
- -rm -f gnu/xml/transform/TransformerImpl.$(OBJEXT)
- -rm -f gnu/xml/transform/TransformerImpl.lo
- -rm -f gnu/xml/transform/TransformerOutputProperties.$(OBJEXT)
- -rm -f gnu/xml/transform/TransformerOutputProperties.lo
- -rm -f gnu/xml/transform/URIResolverEntityResolver.$(OBJEXT)
- -rm -f gnu/xml/transform/URIResolverEntityResolver.lo
- -rm -f gnu/xml/transform/UnparsedEntityUriFunction.$(OBJEXT)
- -rm -f gnu/xml/transform/UnparsedEntityUriFunction.lo
- -rm -f gnu/xml/transform/ValueOfNode.$(OBJEXT)
- -rm -f gnu/xml/transform/ValueOfNode.lo
- -rm -f gnu/xml/transform/WhenNode.$(OBJEXT)
- -rm -f gnu/xml/transform/WhenNode.lo
- -rm -f gnu/xml/transform/WithParam.$(OBJEXT)
- -rm -f gnu/xml/transform/WithParam.lo
- -rm -f gnu/xml/transform/XSLComparator.$(OBJEXT)
- -rm -f gnu/xml/transform/XSLComparator.lo
- -rm -f gnu/xml/transform/XSLURIResolver.$(OBJEXT)
- -rm -f gnu/xml/transform/XSLURIResolver.lo
- -rm -f gnu/xml/util/DoParse.$(OBJEXT)
- -rm -f gnu/xml/util/DoParse.lo
- -rm -f gnu/xml/util/DomParser.$(OBJEXT)
- -rm -f gnu/xml/util/DomParser.lo
- -rm -f gnu/xml/util/Resolver.$(OBJEXT)
- -rm -f gnu/xml/util/Resolver.lo
- -rm -f gnu/xml/util/SAXNullTransformerFactory.$(OBJEXT)
- -rm -f gnu/xml/util/SAXNullTransformerFactory.lo
- -rm -f gnu/xml/util/XCat.$(OBJEXT)
- -rm -f gnu/xml/util/XCat.lo
- -rm -f gnu/xml/util/XHTMLWriter.$(OBJEXT)
- -rm -f gnu/xml/util/XHTMLWriter.lo
- -rm -f gnu/xml/util/XMLWriter.$(OBJEXT)
- -rm -f gnu/xml/util/XMLWriter.lo
- -rm -f gnu/xml/xpath/AndExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/AndExpr.lo
- -rm -f gnu/xml/xpath/ArithmeticExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/ArithmeticExpr.lo
- -rm -f gnu/xml/xpath/BooleanFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/BooleanFunction.lo
- -rm -f gnu/xml/xpath/CeilingFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/CeilingFunction.lo
- -rm -f gnu/xml/xpath/ConcatFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/ConcatFunction.lo
- -rm -f gnu/xml/xpath/Constant.$(OBJEXT)
- -rm -f gnu/xml/xpath/Constant.lo
- -rm -f gnu/xml/xpath/ContainsFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/ContainsFunction.lo
- -rm -f gnu/xml/xpath/CountFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/CountFunction.lo
- -rm -f gnu/xml/xpath/DocumentOrderComparator.$(OBJEXT)
- -rm -f gnu/xml/xpath/DocumentOrderComparator.lo
- -rm -f gnu/xml/xpath/EqualityExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/EqualityExpr.lo
- -rm -f gnu/xml/xpath/Expr.$(OBJEXT)
- -rm -f gnu/xml/xpath/Expr.lo
- -rm -f gnu/xml/xpath/FalseFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/FalseFunction.lo
- -rm -f gnu/xml/xpath/FloorFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/FloorFunction.lo
- -rm -f gnu/xml/xpath/Function.$(OBJEXT)
- -rm -f gnu/xml/xpath/Function.lo
- -rm -f gnu/xml/xpath/FunctionCall.$(OBJEXT)
- -rm -f gnu/xml/xpath/FunctionCall.lo
- -rm -f gnu/xml/xpath/IdFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/IdFunction.lo
- -rm -f gnu/xml/xpath/LangFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/LangFunction.lo
- -rm -f gnu/xml/xpath/LastFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/LastFunction.lo
- -rm -f gnu/xml/xpath/LocalNameFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/LocalNameFunction.lo
- -rm -f gnu/xml/xpath/NameFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/NameFunction.lo
- -rm -f gnu/xml/xpath/NameTest.$(OBJEXT)
- -rm -f gnu/xml/xpath/NameTest.lo
- -rm -f gnu/xml/xpath/NamespaceTest.$(OBJEXT)
- -rm -f gnu/xml/xpath/NamespaceTest.lo
- -rm -f gnu/xml/xpath/NamespaceUriFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/NamespaceUriFunction.lo
- -rm -f gnu/xml/xpath/NegativeExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/NegativeExpr.lo
- -rm -f gnu/xml/xpath/NodeTypeTest.$(OBJEXT)
- -rm -f gnu/xml/xpath/NodeTypeTest.lo
- -rm -f gnu/xml/xpath/NormalizeSpaceFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/NormalizeSpaceFunction.lo
- -rm -f gnu/xml/xpath/NotFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/NotFunction.lo
- -rm -f gnu/xml/xpath/NumberFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/NumberFunction.lo
- -rm -f gnu/xml/xpath/OrExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/OrExpr.lo
- -rm -f gnu/xml/xpath/ParenthesizedExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/ParenthesizedExpr.lo
- -rm -f gnu/xml/xpath/Path.$(OBJEXT)
- -rm -f gnu/xml/xpath/Path.lo
- -rm -f gnu/xml/xpath/Pattern.$(OBJEXT)
- -rm -f gnu/xml/xpath/Pattern.lo
- -rm -f gnu/xml/xpath/PositionFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/PositionFunction.lo
- -rm -f gnu/xml/xpath/Predicate.$(OBJEXT)
- -rm -f gnu/xml/xpath/Predicate.lo
- -rm -f gnu/xml/xpath/RelationalExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/RelationalExpr.lo
- -rm -f gnu/xml/xpath/Root.$(OBJEXT)
- -rm -f gnu/xml/xpath/Root.lo
- -rm -f gnu/xml/xpath/RoundFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/RoundFunction.lo
- -rm -f gnu/xml/xpath/Selector.$(OBJEXT)
- -rm -f gnu/xml/xpath/Selector.lo
- -rm -f gnu/xml/xpath/StartsWithFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/StartsWithFunction.lo
- -rm -f gnu/xml/xpath/Steps.$(OBJEXT)
- -rm -f gnu/xml/xpath/Steps.lo
- -rm -f gnu/xml/xpath/StringFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/StringFunction.lo
- -rm -f gnu/xml/xpath/StringLengthFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/StringLengthFunction.lo
- -rm -f gnu/xml/xpath/SubstringAfterFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/SubstringAfterFunction.lo
- -rm -f gnu/xml/xpath/SubstringBeforeFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/SubstringBeforeFunction.lo
- -rm -f gnu/xml/xpath/SubstringFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/SubstringFunction.lo
- -rm -f gnu/xml/xpath/SumFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/SumFunction.lo
- -rm -f gnu/xml/xpath/Test.$(OBJEXT)
- -rm -f gnu/xml/xpath/Test.lo
- -rm -f gnu/xml/xpath/TranslateFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/TranslateFunction.lo
- -rm -f gnu/xml/xpath/TrueFunction.$(OBJEXT)
- -rm -f gnu/xml/xpath/TrueFunction.lo
- -rm -f gnu/xml/xpath/UnionExpr.$(OBJEXT)
- -rm -f gnu/xml/xpath/UnionExpr.lo
- -rm -f gnu/xml/xpath/VariableReference.$(OBJEXT)
- -rm -f gnu/xml/xpath/VariableReference.lo
- -rm -f gnu/xml/xpath/XPathFactoryImpl.$(OBJEXT)
- -rm -f gnu/xml/xpath/XPathFactoryImpl.lo
- -rm -f gnu/xml/xpath/XPathImpl.$(OBJEXT)
- -rm -f gnu/xml/xpath/XPathImpl.lo
- -rm -f gnu/xml/xpath/XPathParser.$(OBJEXT)
- -rm -f gnu/xml/xpath/XPathParser.lo
- -rm -f gnu/xml/xpath/XPathTokenizer.$(OBJEXT)
- -rm -f gnu/xml/xpath/XPathTokenizer.lo
-rm -f java/applet/Applet.$(OBJEXT)
-rm -f java/applet/Applet.lo
-rm -f java/applet/AppletContext.$(OBJEXT)
@@ -17971,6 +16311,8 @@ mostlyclean-compile:
-rm -f java/beans/VetoableChangeSupport.lo
-rm -f java/beans/Visibility.$(OBJEXT)
-rm -f java/beans/Visibility.lo
+ -rm -f java/beans/XMLDecoder.$(OBJEXT)
+ -rm -f java/beans/XMLDecoder.lo
-rm -f java/beans/beancontext/BeanContext.$(OBJEXT)
-rm -f java/beans/beancontext/BeanContext.lo
-rm -f java/beans/beancontext/BeanContextChild.$(OBJEXT)
@@ -19445,6 +17787,8 @@ mostlyclean-compile:
-rm -f java/util/logging/StreamHandler.lo
-rm -f java/util/logging/XMLFormatter.$(OBJEXT)
-rm -f java/util/logging/XMLFormatter.lo
+ -rm -f java/util/logging/natLogger.$(OBJEXT)
+ -rm -f java/util/logging/natLogger.lo
-rm -f java/util/natResourceBundle.$(OBJEXT)
-rm -f java/util/natResourceBundle.lo
-rm -f java/util/natVMTimeZone.$(OBJEXT)
@@ -19639,98 +17983,6 @@ mostlyclean-compile:
-rm -f javax/crypto/spec/RC5ParameterSpec.lo
-rm -f javax/crypto/spec/SecretKeySpec.$(OBJEXT)
-rm -f javax/crypto/spec/SecretKeySpec.lo
- -rm -f javax/imageio/IIOException.$(OBJEXT)
- -rm -f javax/imageio/IIOException.lo
- -rm -f javax/imageio/IIOImage.$(OBJEXT)
- -rm -f javax/imageio/IIOImage.lo
- -rm -f javax/imageio/IIOParam.$(OBJEXT)
- -rm -f javax/imageio/IIOParam.lo
- -rm -f javax/imageio/IIOParamController.$(OBJEXT)
- -rm -f javax/imageio/IIOParamController.lo
- -rm -f javax/imageio/ImageIO.$(OBJEXT)
- -rm -f javax/imageio/ImageIO.lo
- -rm -f javax/imageio/ImageReadParam.$(OBJEXT)
- -rm -f javax/imageio/ImageReadParam.lo
- -rm -f javax/imageio/ImageReader.$(OBJEXT)
- -rm -f javax/imageio/ImageReader.lo
- -rm -f javax/imageio/ImageTranscoder.$(OBJEXT)
- -rm -f javax/imageio/ImageTranscoder.lo
- -rm -f javax/imageio/ImageTypeSpecifier.$(OBJEXT)
- -rm -f javax/imageio/ImageTypeSpecifier.lo
- -rm -f javax/imageio/ImageWriteParam.$(OBJEXT)
- -rm -f javax/imageio/ImageWriteParam.lo
- -rm -f javax/imageio/ImageWriter.$(OBJEXT)
- -rm -f javax/imageio/ImageWriter.lo
- -rm -f javax/imageio/event/IIOReadProgressListener.$(OBJEXT)
- -rm -f javax/imageio/event/IIOReadProgressListener.lo
- -rm -f javax/imageio/event/IIOReadUpdateListener.$(OBJEXT)
- -rm -f javax/imageio/event/IIOReadUpdateListener.lo
- -rm -f javax/imageio/event/IIOReadWarningListener.$(OBJEXT)
- -rm -f javax/imageio/event/IIOReadWarningListener.lo
- -rm -f javax/imageio/event/IIOWriteProgressListener.$(OBJEXT)
- -rm -f javax/imageio/event/IIOWriteProgressListener.lo
- -rm -f javax/imageio/event/IIOWriteWarningListener.$(OBJEXT)
- -rm -f javax/imageio/event/IIOWriteWarningListener.lo
- -rm -f javax/imageio/metadata/IIOAttr.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOAttr.lo
- -rm -f javax/imageio/metadata/IIOInvalidTreeException.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOInvalidTreeException.lo
- -rm -f javax/imageio/metadata/IIOMetadata.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOMetadata.lo
- -rm -f javax/imageio/metadata/IIOMetadataController.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOMetadataController.lo
- -rm -f javax/imageio/metadata/IIOMetadataFormat.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOMetadataFormat.lo
- -rm -f javax/imageio/metadata/IIOMetadataFormatImpl.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOMetadataFormatImpl.lo
- -rm -f javax/imageio/metadata/IIOMetadataNode.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIOMetadataNode.lo
- -rm -f javax/imageio/metadata/IIONamedNodeMap.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIONamedNodeMap.lo
- -rm -f javax/imageio/metadata/IIONodeList.$(OBJEXT)
- -rm -f javax/imageio/metadata/IIONodeList.lo
- -rm -f javax/imageio/spi/IIORegistry.$(OBJEXT)
- -rm -f javax/imageio/spi/IIORegistry.lo
- -rm -f javax/imageio/spi/IIOServiceProvider.$(OBJEXT)
- -rm -f javax/imageio/spi/IIOServiceProvider.lo
- -rm -f javax/imageio/spi/ImageInputStreamSpi.$(OBJEXT)
- -rm -f javax/imageio/spi/ImageInputStreamSpi.lo
- -rm -f javax/imageio/spi/ImageOutputStreamSpi.$(OBJEXT)
- -rm -f javax/imageio/spi/ImageOutputStreamSpi.lo
- -rm -f javax/imageio/spi/ImageReaderSpi.$(OBJEXT)
- -rm -f javax/imageio/spi/ImageReaderSpi.lo
- -rm -f javax/imageio/spi/ImageReaderWriterSpi.$(OBJEXT)
- -rm -f javax/imageio/spi/ImageReaderWriterSpi.lo
- -rm -f javax/imageio/spi/ImageTranscoderSpi.$(OBJEXT)
- -rm -f javax/imageio/spi/ImageTranscoderSpi.lo
- -rm -f javax/imageio/spi/ImageWriterSpi.$(OBJEXT)
- -rm -f javax/imageio/spi/ImageWriterSpi.lo
- -rm -f javax/imageio/spi/RegisterableService.$(OBJEXT)
- -rm -f javax/imageio/spi/RegisterableService.lo
- -rm -f javax/imageio/spi/ServiceRegistry.$(OBJEXT)
- -rm -f javax/imageio/spi/ServiceRegistry.lo
- -rm -f javax/imageio/stream/FileCacheImageInputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/FileCacheImageInputStream.lo
- -rm -f javax/imageio/stream/FileCacheImageOutputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/FileCacheImageOutputStream.lo
- -rm -f javax/imageio/stream/FileImageInputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/FileImageInputStream.lo
- -rm -f javax/imageio/stream/FileImageOutputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/FileImageOutputStream.lo
- -rm -f javax/imageio/stream/IIOByteBuffer.$(OBJEXT)
- -rm -f javax/imageio/stream/IIOByteBuffer.lo
- -rm -f javax/imageio/stream/ImageInputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/ImageInputStream.lo
- -rm -f javax/imageio/stream/ImageInputStreamImpl.$(OBJEXT)
- -rm -f javax/imageio/stream/ImageInputStreamImpl.lo
- -rm -f javax/imageio/stream/ImageOutputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/ImageOutputStream.lo
- -rm -f javax/imageio/stream/ImageOutputStreamImpl.$(OBJEXT)
- -rm -f javax/imageio/stream/ImageOutputStreamImpl.lo
- -rm -f javax/imageio/stream/MemoryCacheImageInputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/MemoryCacheImageInputStream.lo
- -rm -f javax/imageio/stream/MemoryCacheImageOutputStream.$(OBJEXT)
- -rm -f javax/imageio/stream/MemoryCacheImageOutputStream.lo
-rm -f javax/naming/AuthenticationException.$(OBJEXT)
-rm -f javax/naming/AuthenticationException.lo
-rm -f javax/naming/AuthenticationNotSupportedException.$(OBJEXT)
@@ -20057,6 +18309,8 @@ mostlyclean-compile:
-rm -f javax/print/attribute/URISyntax.lo
-rm -f javax/print/attribute/UnmodifiableSetException.$(OBJEXT)
-rm -f javax/print/attribute/UnmodifiableSetException.lo
+ -rm -f javax/print/attribute/standard/Chromaticity.$(OBJEXT)
+ -rm -f javax/print/attribute/standard/Chromaticity.lo
-rm -f javax/print/attribute/standard/ColorSupported.$(OBJEXT)
-rm -f javax/print/attribute/standard/ColorSupported.lo
-rm -f javax/print/attribute/standard/Compression.$(OBJEXT)
@@ -20071,6 +18325,8 @@ mostlyclean-compile:
-rm -f javax/print/attribute/standard/DateTimeAtCreation.lo
-rm -f javax/print/attribute/standard/DateTimeAtProcessing.$(OBJEXT)
-rm -f javax/print/attribute/standard/DateTimeAtProcessing.lo
+ -rm -f javax/print/attribute/standard/Destination.$(OBJEXT)
+ -rm -f javax/print/attribute/standard/Destination.lo
-rm -f javax/print/attribute/standard/DocumentName.$(OBJEXT)
-rm -f javax/print/attribute/standard/DocumentName.lo
-rm -f javax/print/attribute/standard/Fidelity.$(OBJEXT)
@@ -20117,6 +18373,10 @@ mostlyclean-compile:
-rm -f javax/print/attribute/standard/JobStateReasons.lo
-rm -f javax/print/attribute/standard/Media.$(OBJEXT)
-rm -f javax/print/attribute/standard/Media.lo
+ -rm -f javax/print/attribute/standard/MediaPrintableArea.$(OBJEXT)
+ -rm -f javax/print/attribute/standard/MediaPrintableArea.lo
+ -rm -f javax/print/attribute/standard/MediaSize.$(OBJEXT)
+ -rm -f javax/print/attribute/standard/MediaSize.lo
-rm -f javax/print/attribute/standard/MediaSizeName.$(OBJEXT)
-rm -f javax/print/attribute/standard/MediaSizeName.lo
-rm -f javax/print/attribute/standard/MultipleDocumentHandling.$(OBJEXT)
@@ -20331,8 +18591,6 @@ mostlyclean-compile:
-rm -f javax/swing/AbstractCellEditor.lo
-rm -f javax/swing/AbstractListModel.$(OBJEXT)
-rm -f javax/swing/AbstractListModel.lo
- -rm -f javax/swing/AbstractSet.$(OBJEXT)
- -rm -f javax/swing/AbstractSet.lo
-rm -f javax/swing/AbstractSpinnerModel.$(OBJEXT)
-rm -f javax/swing/AbstractSpinnerModel.lo
-rm -f javax/swing/Action.$(OBJEXT)
@@ -20369,8 +18627,6 @@ mostlyclean-compile:
-rm -f javax/swing/DefaultButtonModel.lo
-rm -f javax/swing/DefaultCellEditor.$(OBJEXT)
-rm -f javax/swing/DefaultCellEditor.lo
- -rm -f javax/swing/DefaultCellRenderer.$(OBJEXT)
- -rm -f javax/swing/DefaultCellRenderer.lo
-rm -f javax/swing/DefaultComboBoxModel.$(OBJEXT)
-rm -f javax/swing/DefaultComboBoxModel.lo
-rm -f javax/swing/DefaultDesktopManager.$(OBJEXT)
@@ -20399,6 +18655,8 @@ mostlyclean-compile:
-rm -f javax/swing/InputMap.lo
-rm -f javax/swing/InputVerifier.$(OBJEXT)
-rm -f javax/swing/InputVerifier.lo
+ -rm -f javax/swing/InternalFrameFocusTraversalPolicy.$(OBJEXT)
+ -rm -f javax/swing/InternalFrameFocusTraversalPolicy.lo
-rm -f javax/swing/JApplet.$(OBJEXT)
-rm -f javax/swing/JApplet.lo
-rm -f javax/swing/JButton.$(OBJEXT)
@@ -20491,6 +18749,8 @@ mostlyclean-compile:
-rm -f javax/swing/JWindow.lo
-rm -f javax/swing/KeyStroke.$(OBJEXT)
-rm -f javax/swing/KeyStroke.lo
+ -rm -f javax/swing/LayoutFocusTraversalPolicy.$(OBJEXT)
+ -rm -f javax/swing/LayoutFocusTraversalPolicy.lo
-rm -f javax/swing/ListCellRenderer.$(OBJEXT)
-rm -f javax/swing/ListCellRenderer.lo
-rm -f javax/swing/ListModel.$(OBJEXT)
@@ -20533,6 +18793,10 @@ mostlyclean-compile:
-rm -f javax/swing/SizeRequirements.lo
-rm -f javax/swing/SizeSequence.$(OBJEXT)
-rm -f javax/swing/SizeSequence.lo
+ -rm -f javax/swing/SortingFocusTraversalPolicy.$(OBJEXT)
+ -rm -f javax/swing/SortingFocusTraversalPolicy.lo
+ -rm -f javax/swing/SpinnerDateModel.$(OBJEXT)
+ -rm -f javax/swing/SpinnerDateModel.lo
-rm -f javax/swing/SpinnerListModel.$(OBJEXT)
-rm -f javax/swing/SpinnerListModel.lo
-rm -f javax/swing/SpinnerModel.$(OBJEXT)
@@ -20799,6 +19063,8 @@ mostlyclean-compile:
-rm -f javax/swing/plaf/basic/BasicDesktopIconUI.lo
-rm -f javax/swing/plaf/basic/BasicDesktopPaneUI.$(OBJEXT)
-rm -f javax/swing/plaf/basic/BasicDesktopPaneUI.lo
+ -rm -f javax/swing/plaf/basic/BasicEditorPaneUI.$(OBJEXT)
+ -rm -f javax/swing/plaf/basic/BasicEditorPaneUI.lo
-rm -f javax/swing/plaf/basic/BasicFormattedTextFieldUI.$(OBJEXT)
-rm -f javax/swing/plaf/basic/BasicFormattedTextFieldUI.lo
-rm -f javax/swing/plaf/basic/BasicGraphicsUtils.$(OBJEXT)
@@ -20881,8 +19147,12 @@ mostlyclean-compile:
-rm -f javax/swing/plaf/basic/BasicViewportUI.lo
-rm -f javax/swing/plaf/basic/ComboPopup.$(OBJEXT)
-rm -f javax/swing/plaf/basic/ComboPopup.lo
+ -rm -f javax/swing/plaf/metal/DefaultMetalTheme.$(OBJEXT)
+ -rm -f javax/swing/plaf/metal/DefaultMetalTheme.lo
-rm -f javax/swing/plaf/metal/MetalLookAndFeel.$(OBJEXT)
-rm -f javax/swing/plaf/metal/MetalLookAndFeel.lo
+ -rm -f javax/swing/plaf/metal/MetalTheme.$(OBJEXT)
+ -rm -f javax/swing/plaf/metal/MetalTheme.lo
-rm -f javax/swing/table/AbstractTableModel.$(OBJEXT)
-rm -f javax/swing/table/AbstractTableModel.lo
-rm -f javax/swing/table/DefaultTableCellRenderer.$(OBJEXT)
@@ -20919,6 +19189,8 @@ mostlyclean-compile:
-rm -f javax/swing/text/DefaultEditorKit.lo
-rm -f javax/swing/text/DefaultHighlighter.$(OBJEXT)
-rm -f javax/swing/text/DefaultHighlighter.lo
+ -rm -f javax/swing/text/DefaultStyledDocument.$(OBJEXT)
+ -rm -f javax/swing/text/DefaultStyledDocument.lo
-rm -f javax/swing/text/Document.$(OBJEXT)
-rm -f javax/swing/text/Document.lo
-rm -f javax/swing/text/DocumentFilter.$(OBJEXT)
@@ -20955,6 +19227,8 @@ mostlyclean-compile:
-rm -f javax/swing/text/Segment.lo
-rm -f javax/swing/text/SimpleAttributeSet.$(OBJEXT)
-rm -f javax/swing/text/SimpleAttributeSet.lo
+ -rm -f javax/swing/text/StringContent.$(OBJEXT)
+ -rm -f javax/swing/text/StringContent.lo
-rm -f javax/swing/text/Style.$(OBJEXT)
-rm -f javax/swing/text/Style.lo
-rm -f javax/swing/text/StyleConstants.$(OBJEXT)
@@ -21071,126 +19345,12 @@ mostlyclean-compile:
-rm -f javax/transaction/xa/XAResource.lo
-rm -f javax/transaction/xa/Xid.$(OBJEXT)
-rm -f javax/transaction/xa/Xid.lo
- -rm -f javax/xml/XMLConstants.$(OBJEXT)
- -rm -f javax/xml/XMLConstants.lo
- -rm -f javax/xml/datatype/DatatypeConfigurationException.$(OBJEXT)
- -rm -f javax/xml/datatype/DatatypeConfigurationException.lo
- -rm -f javax/xml/datatype/DatatypeConstants.$(OBJEXT)
- -rm -f javax/xml/datatype/DatatypeConstants.lo
- -rm -f javax/xml/datatype/DatatypeFactory.$(OBJEXT)
- -rm -f javax/xml/datatype/DatatypeFactory.lo
- -rm -f javax/xml/datatype/Duration.$(OBJEXT)
- -rm -f javax/xml/datatype/Duration.lo
- -rm -f javax/xml/datatype/XMLGregorianCalendar.$(OBJEXT)
- -rm -f javax/xml/datatype/XMLGregorianCalendar.lo
- -rm -f javax/xml/namespace/NamespaceContext.$(OBJEXT)
- -rm -f javax/xml/namespace/NamespaceContext.lo
- -rm -f javax/xml/namespace/QName.$(OBJEXT)
- -rm -f javax/xml/namespace/QName.lo
- -rm -f javax/xml/parsers/DocumentBuilder.$(OBJEXT)
- -rm -f javax/xml/parsers/DocumentBuilder.lo
- -rm -f javax/xml/parsers/DocumentBuilderFactory.$(OBJEXT)
- -rm -f javax/xml/parsers/DocumentBuilderFactory.lo
- -rm -f javax/xml/parsers/FactoryConfigurationError.$(OBJEXT)
- -rm -f javax/xml/parsers/FactoryConfigurationError.lo
- -rm -f javax/xml/parsers/ParserConfigurationException.$(OBJEXT)
- -rm -f javax/xml/parsers/ParserConfigurationException.lo
- -rm -f javax/xml/parsers/SAXParser.$(OBJEXT)
- -rm -f javax/xml/parsers/SAXParser.lo
- -rm -f javax/xml/parsers/SAXParserFactory.$(OBJEXT)
- -rm -f javax/xml/parsers/SAXParserFactory.lo
- -rm -f javax/xml/transform/ErrorListener.$(OBJEXT)
- -rm -f javax/xml/transform/ErrorListener.lo
- -rm -f javax/xml/transform/OutputKeys.$(OBJEXT)
- -rm -f javax/xml/transform/OutputKeys.lo
- -rm -f javax/xml/transform/Result.$(OBJEXT)
- -rm -f javax/xml/transform/Result.lo
- -rm -f javax/xml/transform/Source.$(OBJEXT)
- -rm -f javax/xml/transform/Source.lo
- -rm -f javax/xml/transform/SourceLocator.$(OBJEXT)
- -rm -f javax/xml/transform/SourceLocator.lo
- -rm -f javax/xml/transform/Templates.$(OBJEXT)
- -rm -f javax/xml/transform/Templates.lo
- -rm -f javax/xml/transform/Transformer.$(OBJEXT)
- -rm -f javax/xml/transform/Transformer.lo
- -rm -f javax/xml/transform/TransformerConfigurationException.$(OBJEXT)
- -rm -f javax/xml/transform/TransformerConfigurationException.lo
- -rm -f javax/xml/transform/TransformerException.$(OBJEXT)
- -rm -f javax/xml/transform/TransformerException.lo
- -rm -f javax/xml/transform/TransformerFactory.$(OBJEXT)
- -rm -f javax/xml/transform/TransformerFactory.lo
- -rm -f javax/xml/transform/TransformerFactoryConfigurationError.$(OBJEXT)
- -rm -f javax/xml/transform/TransformerFactoryConfigurationError.lo
- -rm -f javax/xml/transform/URIResolver.$(OBJEXT)
- -rm -f javax/xml/transform/URIResolver.lo
- -rm -f javax/xml/transform/dom/DOMLocator.$(OBJEXT)
- -rm -f javax/xml/transform/dom/DOMLocator.lo
- -rm -f javax/xml/transform/dom/DOMResult.$(OBJEXT)
- -rm -f javax/xml/transform/dom/DOMResult.lo
- -rm -f javax/xml/transform/dom/DOMSource.$(OBJEXT)
- -rm -f javax/xml/transform/dom/DOMSource.lo
- -rm -f javax/xml/transform/sax/SAXResult.$(OBJEXT)
- -rm -f javax/xml/transform/sax/SAXResult.lo
- -rm -f javax/xml/transform/sax/SAXSource.$(OBJEXT)
- -rm -f javax/xml/transform/sax/SAXSource.lo
- -rm -f javax/xml/transform/sax/SAXTransformerFactory.$(OBJEXT)
- -rm -f javax/xml/transform/sax/SAXTransformerFactory.lo
- -rm -f javax/xml/transform/sax/TemplatesHandler.$(OBJEXT)
- -rm -f javax/xml/transform/sax/TemplatesHandler.lo
- -rm -f javax/xml/transform/sax/TransformerHandler.$(OBJEXT)
- -rm -f javax/xml/transform/sax/TransformerHandler.lo
- -rm -f javax/xml/transform/stream/StreamResult.$(OBJEXT)
- -rm -f javax/xml/transform/stream/StreamResult.lo
- -rm -f javax/xml/transform/stream/StreamSource.$(OBJEXT)
- -rm -f javax/xml/transform/stream/StreamSource.lo
- -rm -f javax/xml/validation/Schema.$(OBJEXT)
- -rm -f javax/xml/validation/Schema.lo
- -rm -f javax/xml/validation/SchemaFactory.$(OBJEXT)
- -rm -f javax/xml/validation/SchemaFactory.lo
- -rm -f javax/xml/validation/TypeInfoProvider.$(OBJEXT)
- -rm -f javax/xml/validation/TypeInfoProvider.lo
- -rm -f javax/xml/validation/Validator.$(OBJEXT)
- -rm -f javax/xml/validation/Validator.lo
- -rm -f javax/xml/validation/ValidatorHandler.$(OBJEXT)
- -rm -f javax/xml/validation/ValidatorHandler.lo
- -rm -f javax/xml/xpath/XPath.$(OBJEXT)
- -rm -f javax/xml/xpath/XPath.lo
- -rm -f javax/xml/xpath/XPathConstants.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathConstants.lo
- -rm -f javax/xml/xpath/XPathException.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathException.lo
- -rm -f javax/xml/xpath/XPathExpression.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathExpression.lo
- -rm -f javax/xml/xpath/XPathExpressionException.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathExpressionException.lo
- -rm -f javax/xml/xpath/XPathFactory.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathFactory.lo
- -rm -f javax/xml/xpath/XPathFactoryConfigurationException.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathFactoryConfigurationException.lo
- -rm -f javax/xml/xpath/XPathFunction.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathFunction.lo
- -rm -f javax/xml/xpath/XPathFunctionException.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathFunctionException.lo
- -rm -f javax/xml/xpath/XPathFunctionResolver.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathFunctionResolver.lo
- -rm -f javax/xml/xpath/XPathVariableResolver.$(OBJEXT)
- -rm -f javax/xml/xpath/XPathVariableResolver.lo
- -rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.$(OBJEXT)
- -rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo
- -rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.$(OBJEXT)
- -rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo
-rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.$(OBJEXT)
-rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo
- -rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.$(OBJEXT)
- -rm -f jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo
- -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.$(OBJEXT)
- -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo
- -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.$(OBJEXT)
- -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics2D.$(OBJEXT)
@@ -21199,6 +19359,8 @@ mostlyclean-compile:
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo
+ -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.$(OBJEXT)
+ -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.$(OBJEXT)
@@ -21233,8 +19395,6 @@ mostlyclean-compile:
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkLabelPeer.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.lo
- -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.$(OBJEXT)
- -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.$(OBJEXT)
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo
-rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuComponentPeer.$(OBJEXT)
@@ -21364,8 +19524,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/io/$(DEPDIR)/SimpleSHSStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/io/$(DEPDIR)/natSimpleSHSStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/io/$(DEPDIR)/shs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/BootClassLoader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/ExtensionClassLoader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/FileDeleter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/FinalizerThread.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/HelperClassLoader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/JNIWeakRef.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/MethodRef.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/NameFinder.Plo@am__quote@
@@ -21375,14 +19538,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/StackTrace.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/StringBuffer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/SystemClassLoader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/VMClassLoader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natFinalizerThread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natNameFinder.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natSharedLibLoader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natStackTrace.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natStringBuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/natVMClassLoader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/Main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/tools/gcj_dbtool/$(DEPDIR)/natMain.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/util/$(DEPDIR)/Debug.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/util/$(DEPDIR)/natDebug.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/xlib/$(DEPDIR)/Clip.Plo@am__quote@
@@ -21455,64 +19617,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/$(DEPDIR)/ClasspathTextLayoutPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/$(DEPDIR)/EmbeddedWindowPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/$(DEPDIR)/GLightweightPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/$(DEPDIR)/BeanInfoEmbryo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/$(DEPDIR)/EmptyBeanInfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/$(DEPDIR)/ExplicitBeanInfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/$(DEPDIR)/IntrospectionIncubator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/ColorEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/FontEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeBooleanEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeByteEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeDoubleEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeFloatEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeIntEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeLongEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/NativeShortEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/editors/$(DEPDIR)/StringEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/beans/info/$(DEPDIR)/ComponentBeanInfo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/io/$(DEPDIR)/ASN1ParsingException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/io/$(DEPDIR)/Base64InputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/io/$(DEPDIR)/ClassLoaderObjectInputStream.Plo@am__quote@
@@ -21664,8 +19768,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/locale/$(DEPDIR)/LocaleInformation_zh_TW.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/math/$(DEPDIR)/MPN.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/BASE64.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/CRLFInputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/CRLFOutputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/DefaultContentHandlerFactory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/EmptyX509TrustManager.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/GetLocalHostAction.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/HeaderFieldHelper.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/LineInputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/$(DEPDIR)/PlainDatagramSocketImpl.Plo@am__quote@
@@ -21679,6 +19786,22 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/core/$(DEPDIR)/natCoreInputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/file/$(DEPDIR)/Connection.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/file/$(DEPDIR)/Handler.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/ActiveModeDTP.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/BlockInputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/BlockOutputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/CompressedInputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/CompressedOutputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/DTP.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/DTPInputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/DTPOutputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/FTPConnection.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/FTPException.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/FTPResponse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/FTPURLConnection.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/Handler.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/PassiveModeDTP.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/StreamInputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/ftp/$(DEPDIR)/StreamOutputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/gcjlib/$(DEPDIR)/Connection.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/gcjlib/$(DEPDIR)/Handler.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/http/$(DEPDIR)/Authenticator.Plo@am__quote@
@@ -21707,6 +19830,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/net/protocol/jar/$(DEPDIR)/Handler.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/ChannelInputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/ChannelOutputStream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/ChannelReader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/DatagramChannelImpl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/DatagramChannelSelectionKey.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/$(DEPDIR)/FileLockImpl.Plo@am__quote@
@@ -21777,12 +19901,18 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/action/$(DEPDIR)/GetPropertyAction.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/action/$(DEPDIR)/GetSecurityPropertyAction.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/action/$(DEPDIR)/SetAccessibleAction.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/ber/$(DEPDIR)/BER.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/ber/$(DEPDIR)/BEREncodingException.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/ber/$(DEPDIR)/BERReader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/ber/$(DEPDIR)/BERValue.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/der/$(DEPDIR)/BitString.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/der/$(DEPDIR)/DER.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/der/$(DEPDIR)/DEREncodingException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/der/$(DEPDIR)/DERReader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/der/$(DEPDIR)/DERValue.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/der/$(DEPDIR)/DERWriter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/pkcs/$(DEPDIR)/PKCS7SignedData.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/pkcs/$(DEPDIR)/SignerInfo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/provider/$(DEPDIR)/CollectionCertStoreImpl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/provider/$(DEPDIR)/DSAKeyFactory.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/provider/$(DEPDIR)/DSAKeyPairGenerator.Plo@am__quote@
@@ -21875,180 +20005,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@gnu/regexp/$(DEPDIR)/RETokenStart.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/regexp/$(DEPDIR)/RETokenWordBoundary.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@gnu/regexp/$(DEPDIR)/UncheckedRE.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/aelfred2/$(DEPDIR)/ContentHandler2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/aelfred2/$(DEPDIR)/JAXPFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/aelfred2/$(DEPDIR)/SAXDriver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/aelfred2/$(DEPDIR)/XmlParser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/aelfred2/$(DEPDIR)/XmlReader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/Consumer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DTDAttributeTypeInfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DTDElementTypeInfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomAttr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomCDATA.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomCharacterData.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomComment.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomDoctype.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomDocument.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomDocumentBuilder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomDocumentBuilderFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomDocumentConfiguration.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomEntity.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomEntityReference.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomEx.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomExtern.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomFragment.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomIterator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomNSResolverContext.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomNamedNodeMap.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomNodeIterator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomNotation.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomNsNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomPI.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomText.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomXPathExpression.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomXPathNSResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/DomXPathResult.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/ImplementationList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/ImplementationSource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/$(DEPDIR)/JAXPFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/DomLSEx.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/DomLSInput.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/DomLSOutput.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/DomLSParser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/DomLSSerializer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/FilteredSAXEventSink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/ReaderInputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/SAXEventSink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/dom/ls/$(DEPDIR)/WriterOutputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/CallFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/DomConsumer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/EventConsumer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/EventFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/LinkFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/NSFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/PipelineFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/TeeConsumer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/TextConsumer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/ValidationConsumer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/WellFormednessFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/XIncludeFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/pipeline/$(DEPDIR)/XsltFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/AbstractNumberNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ApplyImportsNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ApplyTemplatesNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/AttributeNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/AttributeSet.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/Bindings.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/CallTemplateNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ChooseNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/CommentNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/CopyNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/CopyOfNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/CurrentFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/DOMSourceLocator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/DocumentFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ElementAvailableFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ElementNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ErrorListenerErrorHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ForEachNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/FormatNumberFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/FunctionAvailableFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/GenerateIdFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/IfNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/Key.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/KeyFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/LiteralNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/MessageNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/NodeNumberNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/NumberNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/OtherwiseNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ParameterNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ProcessingInstructionNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/SAXSerializer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/SortKey.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/StreamSerializer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/Stylesheet.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/SystemPropertyFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/Template.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/TemplateNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/TemplatesImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/TextNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/TransformerFactoryImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/TransformerImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/TransformerOutputProperties.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/URIResolverEntityResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/UnparsedEntityUriFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/ValueOfNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/WhenNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/WithParam.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/XSLComparator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/transform/$(DEPDIR)/XSLURIResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/DoParse.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/DomParser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/Resolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/SAXNullTransformerFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/XCat.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/XHTMLWriter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/util/$(DEPDIR)/XMLWriter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/AndExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/ArithmeticExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/BooleanFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/CeilingFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/ConcatFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Constant.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/ContainsFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/CountFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/DocumentOrderComparator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/EqualityExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Expr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/FalseFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/FloorFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Function.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/FunctionCall.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/IdFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/LangFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/LastFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/LocalNameFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NameFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NameTest.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NamespaceTest.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NamespaceUriFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NegativeExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NodeTypeTest.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NormalizeSpaceFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NotFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/NumberFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/OrExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/ParenthesizedExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Path.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Pattern.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/PositionFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Predicate.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/RelationalExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Root.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/RoundFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Selector.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/StartsWithFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Steps.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/StringFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/StringLengthFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/SubstringAfterFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/SubstringBeforeFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/SubstringFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/SumFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/Test.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/TranslateFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/TrueFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/UnionExpr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/VariableReference.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/XPathFactoryImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/XPathImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/XPathParser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@gnu/xml/xpath/$(DEPDIR)/XPathTokenizer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/applet/$(DEPDIR)/Applet.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/applet/$(DEPDIR)/AppletContext.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/applet/$(DEPDIR)/AppletStub.Plo@am__quote@
@@ -22408,6 +20364,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@java/beans/$(DEPDIR)/VetoableChangeListenerProxy.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/beans/$(DEPDIR)/VetoableChangeSupport.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/beans/$(DEPDIR)/Visibility.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@java/beans/$(DEPDIR)/XMLDecoder.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/beans/beancontext/$(DEPDIR)/BeanContext.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/beans/beancontext/$(DEPDIR)/BeanContextChild.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/beans/beancontext/$(DEPDIR)/BeanContextChildComponentProxy.Plo@am__quote@
@@ -23147,6 +21104,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@java/util/logging/$(DEPDIR)/SocketHandler.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/util/logging/$(DEPDIR)/StreamHandler.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/util/logging/$(DEPDIR)/XMLFormatter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@java/util/logging/$(DEPDIR)/natLogger.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/util/prefs/$(DEPDIR)/AbstractPreferences.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/util/prefs/$(DEPDIR)/BackingStoreException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/util/prefs/$(DEPDIR)/InvalidPreferencesFormatException.Plo@am__quote@
@@ -23242,52 +21200,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/crypto/spec/$(DEPDIR)/RC2ParameterSpec.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/crypto/spec/$(DEPDIR)/RC5ParameterSpec.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/crypto/spec/$(DEPDIR)/SecretKeySpec.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/IIOException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/IIOImage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/IIOParam.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/IIOParamController.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageIO.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageReadParam.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageReader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageTranscoder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageTypeSpecifier.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageWriteParam.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/$(DEPDIR)/ImageWriter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/event/$(DEPDIR)/IIOReadProgressListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/event/$(DEPDIR)/IIOReadUpdateListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/event/$(DEPDIR)/IIOReadWarningListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/event/$(DEPDIR)/IIOWriteProgressListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/event/$(DEPDIR)/IIOWriteWarningListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOAttr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOInvalidTreeException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOMetadata.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOMetadataController.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOMetadataFormat.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOMetadataFormatImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIOMetadataNode.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIONamedNodeMap.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/metadata/$(DEPDIR)/IIONodeList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/IIORegistry.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/IIOServiceProvider.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ImageInputStreamSpi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ImageOutputStreamSpi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ImageReaderSpi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ImageReaderWriterSpi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ImageTranscoderSpi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ImageWriterSpi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/RegisterableService.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/spi/$(DEPDIR)/ServiceRegistry.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/FileCacheImageInputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/FileCacheImageOutputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/FileImageInputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/FileImageOutputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/IIOByteBuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/ImageInputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/ImageInputStreamImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/ImageOutputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/ImageOutputStreamImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/MemoryCacheImageInputStream.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/imageio/stream/$(DEPDIR)/MemoryCacheImageOutputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/naming/$(DEPDIR)/AuthenticationException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/naming/$(DEPDIR)/AuthenticationNotSupportedException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/naming/$(DEPDIR)/BinaryRefAddr.Plo@am__quote@
@@ -23451,6 +21363,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/$(DEPDIR)/TextSyntax.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/$(DEPDIR)/URISyntax.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/$(DEPDIR)/UnmodifiableSetException.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Chromaticity.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/ColorSupported.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Compression.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Copies.Plo@am__quote@
@@ -23458,6 +21371,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/DateTimeAtCompleted.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/DateTimeAtCreation.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/DateTimeAtProcessing.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Destination.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/DocumentName.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Fidelity.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Finishings.Plo@am__quote@
@@ -23481,6 +21395,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/JobStateReason.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/JobStateReasons.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/Media.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/MediaPrintableArea.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/MediaSize.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/MediaSizeName.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/MultipleDocumentHandling.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/print/attribute/standard/$(DEPDIR)/NumberOfDocuments.Plo@am__quote@
@@ -23588,7 +21504,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/AbstractButton.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/AbstractCellEditor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/AbstractListModel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/AbstractSet.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/AbstractSpinnerModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/Action.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/ActionMap.Plo@am__quote@
@@ -23607,7 +21522,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultBoundedRangeModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultButtonModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultCellEditor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultCellRenderer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultComboBoxModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultDesktopManager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/DefaultFocusManager.Plo@am__quote@
@@ -23622,6 +21536,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/ImageIcon.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/InputMap.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/InputVerifier.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/InternalFrameFocusTraversalPolicy.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/JApplet.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/JButton.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/JCheckBox.Plo@am__quote@
@@ -23668,6 +21583,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/JViewport.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/JWindow.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/KeyStroke.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/LayoutFocusTraversalPolicy.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/ListCellRenderer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/ListModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/ListSelectionModel.Plo@am__quote@
@@ -23689,6 +21605,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SingleSelectionModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SizeRequirements.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SizeSequence.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SortingFocusTraversalPolicy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SpinnerDateModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SpinnerListModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SpinnerModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/$(DEPDIR)/SpinnerNumberModel.Plo@am__quote@
@@ -23822,6 +21740,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicComboPopup.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicDesktopIconUI.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicDesktopPaneUI.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicEditorPaneUI.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicFormattedTextFieldUI.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicGraphicsUtils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicIconFactory.Plo@am__quote@
@@ -23863,7 +21782,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicTreeUI.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/BasicViewportUI.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/basic/$(DEPDIR)/ComboPopup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/metal/$(DEPDIR)/DefaultMetalTheme.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/metal/$(DEPDIR)/MetalLookAndFeel.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/plaf/metal/$(DEPDIR)/MetalTheme.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/table/$(DEPDIR)/AbstractTableModel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/table/$(DEPDIR)/DefaultTableCellRenderer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/table/$(DEPDIR)/DefaultTableColumnModel.Plo@am__quote@
@@ -23882,6 +21803,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DefaultCaret.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DefaultEditorKit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DefaultHighlighter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DefaultStyledDocument.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/Document.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/DocumentFilter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/EditorKit.Plo@am__quote@
@@ -23900,6 +21822,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/Position.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/Segment.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/SimpleAttributeSet.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/StringContent.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/Style.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/StyleConstants.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/swing/text/$(DEPDIR)/StyleContext.Plo@am__quote@
@@ -23958,70 +21881,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@javax/transaction/xa/$(DEPDIR)/XAException.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/transaction/xa/$(DEPDIR)/XAResource.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@javax/transaction/xa/$(DEPDIR)/Xid.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/$(DEPDIR)/XMLConstants.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/datatype/$(DEPDIR)/DatatypeConfigurationException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/datatype/$(DEPDIR)/DatatypeConstants.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/datatype/$(DEPDIR)/DatatypeFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/datatype/$(DEPDIR)/Duration.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/datatype/$(DEPDIR)/XMLGregorianCalendar.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/namespace/$(DEPDIR)/NamespaceContext.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/namespace/$(DEPDIR)/QName.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/parsers/$(DEPDIR)/DocumentBuilder.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/parsers/$(DEPDIR)/DocumentBuilderFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/parsers/$(DEPDIR)/FactoryConfigurationError.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/parsers/$(DEPDIR)/ParserConfigurationException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/parsers/$(DEPDIR)/SAXParser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/parsers/$(DEPDIR)/SAXParserFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/ErrorListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/OutputKeys.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/Result.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/Source.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/SourceLocator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/Templates.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/Transformer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/TransformerConfigurationException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/TransformerException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/TransformerFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/TransformerFactoryConfigurationError.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/$(DEPDIR)/URIResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/dom/$(DEPDIR)/DOMLocator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/dom/$(DEPDIR)/DOMResult.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/dom/$(DEPDIR)/DOMSource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/sax/$(DEPDIR)/SAXResult.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/sax/$(DEPDIR)/SAXSource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/sax/$(DEPDIR)/SAXTransformerFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/sax/$(DEPDIR)/TemplatesHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/sax/$(DEPDIR)/TransformerHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/stream/$(DEPDIR)/StreamResult.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/transform/stream/$(DEPDIR)/StreamSource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/validation/$(DEPDIR)/Schema.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/validation/$(DEPDIR)/SchemaFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/validation/$(DEPDIR)/TypeInfoProvider.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/validation/$(DEPDIR)/Validator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/validation/$(DEPDIR)/ValidatorHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPath.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathConstants.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathExpression.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathExpressionException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathFactoryConfigurationException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathFunction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathFunctionException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathFunctionResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@javax/xml/xpath/$(DEPDIR)/XPathVariableResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jnilink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-native_state.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-primlib.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics2D.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkCanvasPeer.Plo@am__quote@
@@ -24039,7 +21906,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkImagePainter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkLabelPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuComponentPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuItemPeer.Plo@am__quote@
@@ -24103,13 +21969,6 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkTextLayout.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
-jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c; \
-@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c' object='jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontMetrics.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
-
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c; \
@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.Tpo"; exit 1; fi
@@ -24117,13 +21976,6 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkFontPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
-jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c; \
-@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c' object='jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGlyphVector.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
-
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c; \
@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkGraphics.Tpo"; exit 1; fi
@@ -24145,6 +21997,13 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
+@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c; \
+@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c' object='jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GdkRobotPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
+
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c; \
@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkButtonPeer.Tpo"; exit 1; fi
@@ -24257,13 +22116,6 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.lo:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkListPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
-jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c; \
-@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c' object='jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMainThread.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
-
jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo `test -f 'jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c' || echo '$(srcdir)/'`jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c; \
@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkMenuBarPeer.Tpo"; exit 1; fi
@@ -24376,20 +22228,6 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo: jni/gtk-peer/gtk_jawt.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo `test -f 'jni/gtk-peer/gtk_jawt.c' || echo '$(srcdir)/'`jni/gtk-peer/gtk_jawt.c
-jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo: jni/classpath/jcl.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo -MD -MP -MF "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo" -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo `test -f 'jni/classpath/jcl.c' || echo '$(srcdir)/'`jni/classpath/jcl.c; \
-@am__fastdepCC_TRUE@ then mv -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo" "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Plo"; else rm -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/classpath/jcl.c' object='jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo `test -f 'jni/classpath/jcl.c' || echo '$(srcdir)/'`jni/classpath/jcl.c
-
-jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo: jni/classpath/jnilink.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo -MD -MP -MF "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jnilink.Tpo" -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo `test -f 'jni/classpath/jnilink.c' || echo '$(srcdir)/'`jni/classpath/jnilink.c; \
-@am__fastdepCC_TRUE@ then mv -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jnilink.Tpo" "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jnilink.Plo"; else rm -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jnilink.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/classpath/jnilink.c' object='jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo `test -f 'jni/classpath/jnilink.c' || echo '$(srcdir)/'`jni/classpath/jnilink.c
-
jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo: jni/classpath/native_state.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo -MD -MP -MF "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-native_state.Tpo" -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo `test -f 'jni/classpath/native_state.c' || echo '$(srcdir)/'`jni/classpath/native_state.c; \
@am__fastdepCC_TRUE@ then mv -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-native_state.Tpo" "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-native_state.Plo"; else rm -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-native_state.Tpo"; exit 1; fi
@@ -24397,13 +22235,6 @@ jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo: jni/classpath/native
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo `test -f 'jni/classpath/native_state.c' || echo '$(srcdir)/'`jni/classpath/native_state.c
-jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo: jni/classpath/primlib.c
-@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo -MD -MP -MF "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-primlib.Tpo" -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo `test -f 'jni/classpath/primlib.c' || echo '$(srcdir)/'`jni/classpath/primlib.c; \
-@am__fastdepCC_TRUE@ then mv -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-primlib.Tpo" "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-primlib.Plo"; else rm -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-primlib.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/classpath/primlib.c' object='jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo `test -f 'jni/classpath/primlib.c' || echo '$(srcdir)/'`jni/classpath/primlib.c
-
libjawt_la-jawt.lo: jawt.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjawt_la_CFLAGS) $(CFLAGS) -MT libjawt_la-jawt.lo -MD -MP -MF "$(DEPDIR)/libjawt_la-jawt.Tpo" -c -o libjawt_la-jawt.lo `test -f 'jawt.c' || echo '$(srcdir)/'`jawt.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libjawt_la-jawt.Tpo" "$(DEPDIR)/libjawt_la-jawt.Plo"; else rm -f "$(DEPDIR)/libjawt_la-jawt.Tpo"; exit 1; fi
@@ -24599,307 +22430,6 @@ gnu/gcj/xlib/lib_gnu_awt_xlib_la-natXUnmapEvent.lo: gnu/gcj/xlib/natXUnmapEvent.
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(LTGCJCOMPILE) -c -o $@ $<
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo: gnu/java/awt/peer/gtk/GdkTextLayout.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo `test -f 'gnu/java/awt/peer/gtk/GdkTextLayout.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkTextLayout.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkTextLayout.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo `test -f 'gnu/java/awt/peer/gtk/GdkTextLayout.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkTextLayout.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo: gnu/java/awt/peer/gtk/GdkFontMetrics.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo `test -f 'gnu/java/awt/peer/gtk/GdkFontMetrics.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkFontMetrics.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkFontMetrics.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo `test -f 'gnu/java/awt/peer/gtk/GdkFontMetrics.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkFontMetrics.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo: gnu/java/awt/peer/gtk/GdkFontPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo `test -f 'gnu/java/awt/peer/gtk/GdkFontPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkFontPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkFontPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo `test -f 'gnu/java/awt/peer/gtk/GdkFontPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkFontPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo: gnu/java/awt/peer/gtk/GdkGlyphVector.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo `test -f 'gnu/java/awt/peer/gtk/GdkGlyphVector.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGlyphVector.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkGlyphVector.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGlyphVector.lo `test -f 'gnu/java/awt/peer/gtk/GdkGlyphVector.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGlyphVector.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo: gnu/java/awt/peer/gtk/GdkGraphics.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo `test -f 'gnu/java/awt/peer/gtk/GdkGraphics.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGraphics.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkGraphics.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics.lo `test -f 'gnu/java/awt/peer/gtk/GdkGraphics.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGraphics.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo: gnu/java/awt/peer/gtk/GdkGraphics2D.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo `test -f 'gnu/java/awt/peer/gtk/GdkGraphics2D.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGraphics2D.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkGraphics2D.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphics2D.lo `test -f 'gnu/java/awt/peer/gtk/GdkGraphics2D.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGraphics2D.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo: gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo `test -f 'gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkGraphicsEnvironment.lo `test -f 'gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo: gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo `test -f 'gnu/java/awt/peer/gtk/GdkPixbufDecoder.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkPixbufDecoder.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GdkPixbufDecoder.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkPixbufDecoder.lo `test -f 'gnu/java/awt/peer/gtk/GdkPixbufDecoder.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo: gnu/java/awt/peer/gtk/GtkButtonPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkButtonPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkButtonPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkButtonPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkButtonPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkButtonPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkButtonPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo: gnu/java/awt/peer/gtk/GtkCanvasPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCanvasPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCanvasPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkCanvasPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCanvasPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCanvasPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCanvasPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo: gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxGroupPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo: gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxMenuItemPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo: gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCheckboxPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCheckboxPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkCheckboxPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkCheckboxPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkCheckboxPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo: gnu/java/awt/peer/gtk/GtkChoicePeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkChoicePeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkChoicePeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkChoicePeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkChoicePeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkChoicePeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkChoicePeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo: gnu/java/awt/peer/gtk/GtkClipboard.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo `test -f 'gnu/java/awt/peer/gtk/GtkClipboard.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkClipboard.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkClipboard.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkClipboard.lo `test -f 'gnu/java/awt/peer/gtk/GtkClipboard.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkClipboard.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo: gnu/java/awt/peer/gtk/GtkComponentPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkComponentPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkComponentPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkComponentPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkComponentPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkComponentPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkComponentPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo: gnu/java/awt/peer/gtk/GtkContainerPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkContainerPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkContainerPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkContainerPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkContainerPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkContainerPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkContainerPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo: gnu/java/awt/peer/gtk/GtkDialogPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkDialogPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkDialogPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkDialogPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkDialogPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkDialogPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkDialogPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo: gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkEmbeddedWindowPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo: gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkFileDialogPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkFileDialogPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkFileDialogPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFileDialogPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkFileDialogPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo: gnu/java/awt/peer/gtk/GtkFramePeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkFramePeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkFramePeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkFramePeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkFramePeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkFramePeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkFramePeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo: gnu/java/awt/peer/gtk/GtkGenericPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkGenericPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkGenericPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkGenericPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkGenericPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkGenericPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkGenericPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo: gnu/java/awt/peer/gtk/GtkImage.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImage.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo `test -f 'gnu/java/awt/peer/gtk/GtkImage.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkImage.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImage.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImage.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImage.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkImage.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImage.lo `test -f 'gnu/java/awt/peer/gtk/GtkImage.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkImage.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo: gnu/java/awt/peer/gtk/GtkImagePainter.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo `test -f 'gnu/java/awt/peer/gtk/GtkImagePainter.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkImagePainter.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkImagePainter.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkImagePainter.lo `test -f 'gnu/java/awt/peer/gtk/GtkImagePainter.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkImagePainter.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo: gnu/java/awt/peer/gtk/GtkLabelPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkLabelPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkLabelPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkLabelPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkLabelPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkLabelPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkLabelPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo: gnu/java/awt/peer/gtk/GtkListPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkListPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkListPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkListPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkListPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkListPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkListPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo: gnu/java/awt/peer/gtk/GtkMainThread.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo `test -f 'gnu/java/awt/peer/gtk/GtkMainThread.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMainThread.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkMainThread.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMainThread.lo `test -f 'gnu/java/awt/peer/gtk/GtkMainThread.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMainThread.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo: gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuBarPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuBarPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkMenuBarPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuBarPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuBarPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo: gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuComponentPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo: gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuItemPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuItemPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkMenuItemPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuItemPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuItemPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo: gnu/java/awt/peer/gtk/GtkMenuPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkMenuPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkMenuPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkMenuPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkMenuPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo: gnu/java/awt/peer/gtk/GtkOffScreenImage.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo `test -f 'gnu/java/awt/peer/gtk/GtkOffScreenImage.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkOffScreenImage.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkOffScreenImage.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkOffScreenImage.lo `test -f 'gnu/java/awt/peer/gtk/GtkOffScreenImage.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkOffScreenImage.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo: gnu/java/awt/peer/gtk/GtkPanelPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkPanelPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkPanelPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkPanelPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPanelPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkPanelPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkPanelPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo: gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkPopupMenuPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo: gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkScrollPanePeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkScrollPanePeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkScrollPanePeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollPanePeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkScrollPanePeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo: gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkScrollbarPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkScrollbarPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkScrollbarPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkScrollbarPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkScrollbarPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo: gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkTextAreaPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkTextAreaPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkTextAreaPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextAreaPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkTextAreaPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo: gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkTextComponentPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkTextComponentPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkTextComponentPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextComponentPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkTextComponentPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo: gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkTextFieldPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkTextFieldPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkTextFieldPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkTextFieldPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkTextFieldPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo: gnu/java/awt/peer/gtk/GtkToolkit.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo `test -f 'gnu/java/awt/peer/gtk/GtkToolkit.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkToolkit.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkToolkit.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkToolkit.lo `test -f 'gnu/java/awt/peer/gtk/GtkToolkit.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkToolkit.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo: gnu/java/awt/peer/gtk/GtkWindowPeer.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkWindowPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkWindowPeer.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GtkWindowPeer.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GtkWindowPeer.lo `test -f 'gnu/java/awt/peer/gtk/GtkWindowPeer.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GtkWindowPeer.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo: gnu/java/awt/peer/gtk/GThreadMutex.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo `test -f 'gnu/java/awt/peer/gtk/GThreadMutex.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GThreadMutex.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GThreadMutex.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadMutex.lo `test -f 'gnu/java/awt/peer/gtk/GThreadMutex.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GThreadMutex.java
-
-gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo: gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
-@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -MT gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo -MD -MP -MF "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.Tpo" -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo `test -f 'gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java; \
-@am__fastdepGCJ_TRUE@ then mv -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.Tpo" "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.Plo"; else rm -f "gnu/java/awt/peer/gtk/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java' object='gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(lib_gnu_java_awt_peer_gtk_la_GCJFLAGS) $(GCJFLAGS) -c -o gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GThreadNativeMethodRunner.lo `test -f 'gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java' || echo '$(srcdir)/'`gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
-
mostlyclean-libtool:
-rm -f *.lo
@@ -24919,10 +22449,6 @@ clean-libtool:
-rm -rf gnu/java/awt/color/.libs gnu/java/awt/color/_libs
-rm -rf gnu/java/awt/image/.libs gnu/java/awt/image/_libs
-rm -rf gnu/java/awt/peer/.libs gnu/java/awt/peer/_libs
- -rm -rf gnu/java/awt/peer/gtk/.libs gnu/java/awt/peer/gtk/_libs
- -rm -rf gnu/java/beans/.libs gnu/java/beans/_libs
- -rm -rf gnu/java/beans/editors/.libs gnu/java/beans/editors/_libs
- -rm -rf gnu/java/beans/info/.libs gnu/java/beans/info/_libs
-rm -rf gnu/java/io/.libs gnu/java/io/_libs
-rm -rf gnu/java/lang/.libs gnu/java/lang/_libs
-rm -rf gnu/java/lang/reflect/.libs gnu/java/lang/reflect/_libs
@@ -24931,6 +22457,7 @@ clean-libtool:
-rm -rf gnu/java/net/.libs gnu/java/net/_libs
-rm -rf gnu/java/net/protocol/core/.libs gnu/java/net/protocol/core/_libs
-rm -rf gnu/java/net/protocol/file/.libs gnu/java/net/protocol/file/_libs
+ -rm -rf gnu/java/net/protocol/ftp/.libs gnu/java/net/protocol/ftp/_libs
-rm -rf gnu/java/net/protocol/gcjlib/.libs gnu/java/net/protocol/gcjlib/_libs
-rm -rf gnu/java/net/protocol/http/.libs gnu/java/net/protocol/http/_libs
-rm -rf gnu/java/net/protocol/http/event/.libs gnu/java/net/protocol/http/event/_libs
@@ -24945,7 +22472,9 @@ clean-libtool:
-rm -rf gnu/java/rmi/server/.libs gnu/java/rmi/server/_libs
-rm -rf gnu/java/security/.libs gnu/java/security/_libs
-rm -rf gnu/java/security/action/.libs gnu/java/security/action/_libs
+ -rm -rf gnu/java/security/ber/.libs gnu/java/security/ber/_libs
-rm -rf gnu/java/security/der/.libs gnu/java/security/der/_libs
+ -rm -rf gnu/java/security/pkcs/.libs gnu/java/security/pkcs/_libs
-rm -rf gnu/java/security/provider/.libs gnu/java/security/provider/_libs
-rm -rf gnu/java/security/util/.libs gnu/java/security/util/_libs
-rm -rf gnu/java/security/x509/.libs gnu/java/security/x509/_libs
@@ -24954,13 +22483,6 @@ clean-libtool:
-rm -rf gnu/java/util/.libs gnu/java/util/_libs
-rm -rf gnu/java/util/prefs/.libs gnu/java/util/prefs/_libs
-rm -rf gnu/regexp/.libs gnu/regexp/_libs
- -rm -rf gnu/xml/aelfred2/.libs gnu/xml/aelfred2/_libs
- -rm -rf gnu/xml/dom/.libs gnu/xml/dom/_libs
- -rm -rf gnu/xml/dom/ls/.libs gnu/xml/dom/ls/_libs
- -rm -rf gnu/xml/pipeline/.libs gnu/xml/pipeline/_libs
- -rm -rf gnu/xml/transform/.libs gnu/xml/transform/_libs
- -rm -rf gnu/xml/util/.libs gnu/xml/util/_libs
- -rm -rf gnu/xml/xpath/.libs gnu/xml/xpath/_libs
-rm -rf java/applet/.libs java/applet/_libs
-rm -rf java/awt/.libs java/awt/_libs
-rm -rf java/awt/color/.libs java/awt/color/_libs
@@ -25011,11 +22533,6 @@ clean-libtool:
-rm -rf javax/crypto/.libs javax/crypto/_libs
-rm -rf javax/crypto/interfaces/.libs javax/crypto/interfaces/_libs
-rm -rf javax/crypto/spec/.libs javax/crypto/spec/_libs
- -rm -rf javax/imageio/.libs javax/imageio/_libs
- -rm -rf javax/imageio/event/.libs javax/imageio/event/_libs
- -rm -rf javax/imageio/metadata/.libs javax/imageio/metadata/_libs
- -rm -rf javax/imageio/spi/.libs javax/imageio/spi/_libs
- -rm -rf javax/imageio/stream/.libs javax/imageio/stream/_libs
-rm -rf javax/naming/.libs javax/naming/_libs
-rm -rf javax/naming/directory/.libs javax/naming/directory/_libs
-rm -rf javax/naming/event/.libs javax/naming/event/_libs
@@ -25051,16 +22568,6 @@ clean-libtool:
-rm -rf javax/swing/undo/.libs javax/swing/undo/_libs
-rm -rf javax/transaction/.libs javax/transaction/_libs
-rm -rf javax/transaction/xa/.libs javax/transaction/xa/_libs
- -rm -rf javax/xml/.libs javax/xml/_libs
- -rm -rf javax/xml/datatype/.libs javax/xml/datatype/_libs
- -rm -rf javax/xml/namespace/.libs javax/xml/namespace/_libs
- -rm -rf javax/xml/parsers/.libs javax/xml/parsers/_libs
- -rm -rf javax/xml/transform/.libs javax/xml/transform/_libs
- -rm -rf javax/xml/transform/dom/.libs javax/xml/transform/dom/_libs
- -rm -rf javax/xml/transform/sax/.libs javax/xml/transform/sax/_libs
- -rm -rf javax/xml/transform/stream/.libs javax/xml/transform/stream/_libs
- -rm -rf javax/xml/validation/.libs javax/xml/validation/_libs
- -rm -rf javax/xml/xpath/.libs javax/xml/xpath/_libs
-rm -rf jni/classpath/.libs jni/classpath/_libs
-rm -rf jni/gtk-peer/.libs jni/gtk-peer/_libs
-rm -rf org/ietf/jgss/.libs org/ietf/jgss/_libs
@@ -25069,6 +22576,23 @@ clean-libtool:
distclean-libtool:
-rm -f libtool
uninstall-info-am:
+install-dbexecDATA: $(dbexec_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(dbexecdir)" || $(mkdir_p) "$(DESTDIR)$(dbexecdir)"
+ @list='$(dbexec_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(dbexecDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(dbexecdir)/$$f'"; \
+ $(dbexecDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(dbexecdir)/$$f"; \
+ done
+
+uninstall-dbexecDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dbexec_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(dbexecdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(dbexecdir)/$$f"; \
+ done
install-jarDATA: $(jar_DATA)
@$(NORMAL_INSTALL)
test -z "$(jardir)" || $(mkdir_p) "$(DESTDIR)$(jardir)"
@@ -25388,7 +22912,7 @@ check: check-recursive
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA)
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \
+ for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbexecdir)" "$(DESTDIR)$(jardir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(toolexecmainlibdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive
@@ -25442,14 +22966,6 @@ distclean-generic:
-rm -f gnu/java/awt/image/$(am__dirstamp)
-rm -f gnu/java/awt/peer/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/awt/peer/$(am__dirstamp)
- -rm -f gnu/java/awt/peer/gtk/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/java/awt/peer/gtk/$(am__dirstamp)
- -rm -f gnu/java/beans/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/java/beans/$(am__dirstamp)
- -rm -f gnu/java/beans/editors/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/java/beans/editors/$(am__dirstamp)
- -rm -f gnu/java/beans/info/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/java/beans/info/$(am__dirstamp)
-rm -f gnu/java/io/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/io/$(am__dirstamp)
-rm -f gnu/java/lang/$(DEPDIR)/$(am__dirstamp)
@@ -25466,6 +22982,8 @@ distclean-generic:
-rm -f gnu/java/net/protocol/core/$(am__dirstamp)
-rm -f gnu/java/net/protocol/file/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/net/protocol/file/$(am__dirstamp)
+ -rm -f gnu/java/net/protocol/ftp/$(DEPDIR)/$(am__dirstamp)
+ -rm -f gnu/java/net/protocol/ftp/$(am__dirstamp)
-rm -f gnu/java/net/protocol/gcjlib/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/net/protocol/gcjlib/$(am__dirstamp)
-rm -f gnu/java/net/protocol/http/$(DEPDIR)/$(am__dirstamp)
@@ -25494,8 +23012,12 @@ distclean-generic:
-rm -f gnu/java/security/$(am__dirstamp)
-rm -f gnu/java/security/action/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/security/action/$(am__dirstamp)
+ -rm -f gnu/java/security/ber/$(DEPDIR)/$(am__dirstamp)
+ -rm -f gnu/java/security/ber/$(am__dirstamp)
-rm -f gnu/java/security/der/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/security/der/$(am__dirstamp)
+ -rm -f gnu/java/security/pkcs/$(DEPDIR)/$(am__dirstamp)
+ -rm -f gnu/java/security/pkcs/$(am__dirstamp)
-rm -f gnu/java/security/provider/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/java/security/provider/$(am__dirstamp)
-rm -f gnu/java/security/util/$(DEPDIR)/$(am__dirstamp)
@@ -25512,20 +23034,6 @@ distclean-generic:
-rm -f gnu/java/util/prefs/$(am__dirstamp)
-rm -f gnu/regexp/$(DEPDIR)/$(am__dirstamp)
-rm -f gnu/regexp/$(am__dirstamp)
- -rm -f gnu/xml/aelfred2/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/aelfred2/$(am__dirstamp)
- -rm -f gnu/xml/dom/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/dom/$(am__dirstamp)
- -rm -f gnu/xml/dom/ls/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/dom/ls/$(am__dirstamp)
- -rm -f gnu/xml/pipeline/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/pipeline/$(am__dirstamp)
- -rm -f gnu/xml/transform/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/transform/$(am__dirstamp)
- -rm -f gnu/xml/util/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/util/$(am__dirstamp)
- -rm -f gnu/xml/xpath/$(DEPDIR)/$(am__dirstamp)
- -rm -f gnu/xml/xpath/$(am__dirstamp)
-rm -f java/applet/$(DEPDIR)/$(am__dirstamp)
-rm -f java/applet/$(am__dirstamp)
-rm -f java/awt/$(DEPDIR)/$(am__dirstamp)
@@ -25626,16 +23134,6 @@ distclean-generic:
-rm -f javax/crypto/interfaces/$(am__dirstamp)
-rm -f javax/crypto/spec/$(DEPDIR)/$(am__dirstamp)
-rm -f javax/crypto/spec/$(am__dirstamp)
- -rm -f javax/imageio/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/imageio/$(am__dirstamp)
- -rm -f javax/imageio/event/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/imageio/event/$(am__dirstamp)
- -rm -f javax/imageio/metadata/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/imageio/metadata/$(am__dirstamp)
- -rm -f javax/imageio/spi/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/imageio/spi/$(am__dirstamp)
- -rm -f javax/imageio/stream/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/imageio/stream/$(am__dirstamp)
-rm -f javax/naming/$(DEPDIR)/$(am__dirstamp)
-rm -f javax/naming/$(am__dirstamp)
-rm -f javax/naming/directory/$(DEPDIR)/$(am__dirstamp)
@@ -25706,26 +23204,6 @@ distclean-generic:
-rm -f javax/transaction/$(am__dirstamp)
-rm -f javax/transaction/xa/$(DEPDIR)/$(am__dirstamp)
-rm -f javax/transaction/xa/$(am__dirstamp)
- -rm -f javax/xml/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/$(am__dirstamp)
- -rm -f javax/xml/datatype/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/datatype/$(am__dirstamp)
- -rm -f javax/xml/namespace/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/namespace/$(am__dirstamp)
- -rm -f javax/xml/parsers/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/parsers/$(am__dirstamp)
- -rm -f javax/xml/transform/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/transform/$(am__dirstamp)
- -rm -f javax/xml/transform/dom/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/transform/dom/$(am__dirstamp)
- -rm -f javax/xml/transform/sax/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/transform/sax/$(am__dirstamp)
- -rm -f javax/xml/transform/stream/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/transform/stream/$(am__dirstamp)
- -rm -f javax/xml/validation/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/validation/$(am__dirstamp)
- -rm -f javax/xml/xpath/$(DEPDIR)/$(am__dirstamp)
- -rm -f javax/xml/xpath/$(am__dirstamp)
-rm -f jni/classpath/$(DEPDIR)/$(am__dirstamp)
-rm -f jni/classpath/$(am__dirstamp)
-rm -f jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
@@ -25746,7 +23224,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/awt/peer/gtk/$(DEPDIR) gnu/java/beans/$(DEPDIR) gnu/java/beans/editors/$(DEPDIR) gnu/java/beans/info/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/regexp/$(DEPDIR) gnu/xml/aelfred2/$(DEPDIR) gnu/xml/dom/$(DEPDIR) gnu/xml/dom/ls/$(DEPDIR) gnu/xml/pipeline/$(DEPDIR) gnu/xml/transform/$(DEPDIR) gnu/xml/util/$(DEPDIR) gnu/xml/xpath/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/imageio/$(DEPDIR) javax/imageio/event/$(DEPDIR) javax/imageio/metadata/$(DEPDIR) javax/imageio/spi/$(DEPDIR) javax/imageio/stream/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) javax/xml/$(DEPDIR) javax/xml/datatype/$(DEPDIR) javax/xml/namespace/$(DEPDIR) javax/xml/parsers/$(DEPDIR) javax/xml/transform/$(DEPDIR) javax/xml/transform/dom/$(DEPDIR) javax/xml/transform/sax/$(DEPDIR) javax/xml/transform/stream/$(DEPDIR) javax/xml/validation/$(DEPDIR) javax/xml/xpath/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/ftp/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/ber/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/pkcs/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/regexp/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-local distclean-tags
@@ -25765,7 +23243,8 @@ install-data-am: install-data-local install-jarDATA \
install-pkgconfigDATA
install-exec-am: install-binPROGRAMS install-binSCRIPTS \
- install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA
+ install-dbexecDATA install-toolexeclibLTLIBRARIES \
+ install-toolexecmainlibDATA
install-info: install-info-recursive
@@ -25776,7 +23255,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/awt/peer/gtk/$(DEPDIR) gnu/java/beans/$(DEPDIR) gnu/java/beans/editors/$(DEPDIR) gnu/java/beans/info/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/regexp/$(DEPDIR) gnu/xml/aelfred2/$(DEPDIR) gnu/xml/dom/$(DEPDIR) gnu/xml/dom/ls/$(DEPDIR) gnu/xml/pipeline/$(DEPDIR) gnu/xml/transform/$(DEPDIR) gnu/xml/util/$(DEPDIR) gnu/xml/xpath/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/imageio/$(DEPDIR) javax/imageio/event/$(DEPDIR) javax/imageio/metadata/$(DEPDIR) javax/imageio/spi/$(DEPDIR) javax/imageio/stream/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) javax/xml/$(DEPDIR) javax/xml/datatype/$(DEPDIR) javax/xml/namespace/$(DEPDIR) javax/xml/parsers/$(DEPDIR) javax/xml/transform/$(DEPDIR) javax/xml/transform/dom/$(DEPDIR) javax/xml/transform/sax/$(DEPDIR) javax/xml/transform/stream/$(DEPDIR) javax/xml/validation/$(DEPDIR) javax/xml/xpath/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) gnu/awt/$(DEPDIR) gnu/awt/j2d/$(DEPDIR) gnu/awt/xlib/$(DEPDIR) gnu/classpath/$(DEPDIR) gnu/gcj/$(DEPDIR) gnu/gcj/convert/$(DEPDIR) gnu/gcj/io/$(DEPDIR) gnu/gcj/runtime/$(DEPDIR) gnu/gcj/tools/gcj_dbtool/$(DEPDIR) gnu/gcj/util/$(DEPDIR) gnu/gcj/xlib/$(DEPDIR) gnu/java/awt/$(DEPDIR) gnu/java/awt/color/$(DEPDIR) gnu/java/awt/image/$(DEPDIR) gnu/java/awt/peer/$(DEPDIR) gnu/java/io/$(DEPDIR) gnu/java/lang/$(DEPDIR) gnu/java/lang/reflect/$(DEPDIR) gnu/java/locale/$(DEPDIR) gnu/java/math/$(DEPDIR) gnu/java/net/$(DEPDIR) gnu/java/net/protocol/core/$(DEPDIR) gnu/java/net/protocol/file/$(DEPDIR) gnu/java/net/protocol/ftp/$(DEPDIR) gnu/java/net/protocol/gcjlib/$(DEPDIR) gnu/java/net/protocol/http/$(DEPDIR) gnu/java/net/protocol/http/event/$(DEPDIR) gnu/java/net/protocol/jar/$(DEPDIR) gnu/java/nio/$(DEPDIR) gnu/java/nio/channels/$(DEPDIR) gnu/java/nio/charset/$(DEPDIR) gnu/java/rmi/$(DEPDIR) gnu/java/rmi/dgc/$(DEPDIR) gnu/java/rmi/registry/$(DEPDIR) gnu/java/rmi/rmic/$(DEPDIR) gnu/java/rmi/server/$(DEPDIR) gnu/java/security/$(DEPDIR) gnu/java/security/action/$(DEPDIR) gnu/java/security/ber/$(DEPDIR) gnu/java/security/der/$(DEPDIR) gnu/java/security/pkcs/$(DEPDIR) gnu/java/security/provider/$(DEPDIR) gnu/java/security/util/$(DEPDIR) gnu/java/security/x509/$(DEPDIR) gnu/java/security/x509/ext/$(DEPDIR) gnu/java/text/$(DEPDIR) gnu/java/util/$(DEPDIR) gnu/java/util/prefs/$(DEPDIR) gnu/regexp/$(DEPDIR) java/applet/$(DEPDIR) java/awt/$(DEPDIR) java/awt/color/$(DEPDIR) java/awt/datatransfer/$(DEPDIR) java/awt/dnd/$(DEPDIR) java/awt/dnd/peer/$(DEPDIR) java/awt/event/$(DEPDIR) java/awt/font/$(DEPDIR) java/awt/geom/$(DEPDIR) java/awt/im/$(DEPDIR) java/awt/im/spi/$(DEPDIR) java/awt/image/$(DEPDIR) java/awt/image/renderable/$(DEPDIR) java/awt/peer/$(DEPDIR) java/awt/print/$(DEPDIR) java/beans/$(DEPDIR) java/beans/beancontext/$(DEPDIR) java/io/$(DEPDIR) java/lang/$(DEPDIR) java/lang/ref/$(DEPDIR) java/lang/reflect/$(DEPDIR) java/math/$(DEPDIR) java/net/$(DEPDIR) java/nio/$(DEPDIR) java/nio/channels/$(DEPDIR) java/nio/channels/spi/$(DEPDIR) java/nio/charset/$(DEPDIR) java/nio/charset/spi/$(DEPDIR) java/rmi/$(DEPDIR) java/rmi/activation/$(DEPDIR) java/rmi/dgc/$(DEPDIR) java/rmi/registry/$(DEPDIR) java/rmi/server/$(DEPDIR) java/security/$(DEPDIR) java/security/acl/$(DEPDIR) java/security/cert/$(DEPDIR) java/security/interfaces/$(DEPDIR) java/security/spec/$(DEPDIR) java/sql/$(DEPDIR) java/text/$(DEPDIR) java/util/$(DEPDIR) java/util/jar/$(DEPDIR) java/util/logging/$(DEPDIR) java/util/prefs/$(DEPDIR) java/util/regex/$(DEPDIR) java/util/zip/$(DEPDIR) javax/accessibility/$(DEPDIR) javax/crypto/$(DEPDIR) javax/crypto/interfaces/$(DEPDIR) javax/crypto/spec/$(DEPDIR) javax/naming/$(DEPDIR) javax/naming/directory/$(DEPDIR) javax/naming/event/$(DEPDIR) javax/naming/ldap/$(DEPDIR) javax/naming/spi/$(DEPDIR) javax/net/$(DEPDIR) javax/net/ssl/$(DEPDIR) javax/print/$(DEPDIR) javax/print/attribute/$(DEPDIR) javax/print/attribute/standard/$(DEPDIR) javax/print/event/$(DEPDIR) javax/security/auth/$(DEPDIR) javax/security/auth/callback/$(DEPDIR) javax/security/auth/login/$(DEPDIR) javax/security/auth/spi/$(DEPDIR) javax/security/auth/x500/$(DEPDIR) javax/security/cert/$(DEPDIR) javax/security/sasl/$(DEPDIR) javax/sql/$(DEPDIR) javax/swing/$(DEPDIR) javax/swing/border/$(DEPDIR) javax/swing/colorchooser/$(DEPDIR) javax/swing/event/$(DEPDIR) javax/swing/filechooser/$(DEPDIR) javax/swing/plaf/$(DEPDIR) javax/swing/plaf/basic/$(DEPDIR) javax/swing/plaf/metal/$(DEPDIR) javax/swing/table/$(DEPDIR) javax/swing/text/$(DEPDIR) javax/swing/text/html/$(DEPDIR) javax/swing/text/html/parser/$(DEPDIR) javax/swing/tree/$(DEPDIR) javax/swing/undo/$(DEPDIR) javax/transaction/$(DEPDIR) javax/transaction/xa/$(DEPDIR) jni/classpath/$(DEPDIR) jni/gtk-peer/$(DEPDIR) org/ietf/jgss/$(DEPDIR) sysdep/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -25794,8 +23273,9 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
- uninstall-info-am uninstall-jarDATA uninstall-pkgconfigDATA \
- uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
+ uninstall-dbexecDATA uninstall-info-am uninstall-jarDATA \
+ uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES \
+ uninstall-toolexecmainlibDATA
uninstall-info: uninstall-info-recursive
@@ -25809,9 +23289,10 @@ uninstall-info: uninstall-info-recursive
distclean-recursive distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-binPROGRAMS install-binSCRIPTS \
- install-data install-data-am install-data-local install-exec \
- install-exec-am install-info install-info-am install-jarDATA \
- install-man install-pkgconfigDATA install-strip \
+ install-data install-data-am install-data-local \
+ install-dbexecDATA install-exec install-exec-am install-info \
+ install-info-am install-jarDATA install-man \
+ install-pkgconfigDATA install-strip \
install-toolexeclibLTLIBRARIES install-toolexecmainlibDATA \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic \
@@ -25819,13 +23300,15 @@ uninstall-info: uninstall-info-recursive
mostlyclean-generic mostlyclean-libtool mostlyclean-local \
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-binSCRIPTS uninstall-info-am uninstall-jarDATA \
- uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES \
- uninstall-toolexecmainlibDATA
+ uninstall-binSCRIPTS uninstall-dbexecDATA uninstall-info-am \
+ uninstall-jarDATA uninstall-pkgconfigDATA \
+ uninstall-toolexeclibLTLIBRARIES uninstall-toolexecmainlibDATA
+
+$(db_name): gcj-dbtool$(EXEEXT)
+ @rm -f $(db_name)
+ ./gcj-dbtool -n $(db_name) || touch $(db_name)
-jniinclude/gnu_java_awt_peer_gtk_GdkFontMetrics.h: gnu/java/awt/peer/gtk/GdkFontMetrics.java
-jniinclude/gnu_java_awt_peer_gtk_GdkGlyphVector.h: gnu/java/awt/peer/gtk/GdkGlyphVector.java
jniinclude/gnu_java_awt_peer_gtk_GdkGraphics.h: gnu/java/awt/peer/gtk/GdkGraphics.java
jniinclude/gnu_java_awt_peer_gtk_GdkGraphics2D.h: gnu/java/awt/peer/gtk/GdkGraphics2D.java
jniinclude/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
@@ -25849,7 +23332,6 @@ jniinclude/gnu_java_awt_peer_gtk_GtkImage.h: gnu/java/awt/peer/gtk/GtkImage.java
jniinclude/gnu_java_awt_peer_gtk_GtkImagePainter.h: gnu/java/awt/peer/gtk/GtkImagePainter.java
jniinclude/gnu_java_awt_peer_gtk_GtkLabelPeer.h: gnu/java/awt/peer/gtk/GtkLabelPeer.java
jniinclude/gnu_java_awt_peer_gtk_GtkListPeer.h: gnu/java/awt/peer/gtk/GtkListPeer.java
-jniinclude/gnu_java_awt_peer_gtk_GtkMainThread.h: gnu/java/awt/peer/gtk/GtkMainThread.java
jniinclude/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
jniinclude/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
jniinclude/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
@@ -25874,9 +23356,7 @@ $(gtk_jni_headers): %.h:
echo "$(GCJH) -jni -d jniinclude -classpath '' -bootclasspath $(top_builddir) $$input"; \
$(GCJH) -jni -d jniinclude -classpath '' -bootclasspath $(top_builddir) $$input
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkFontMetrics.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkFontPeer.h
-jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGlyphVector.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGraphics2D.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GdkGraphics.h
@@ -25898,7 +23378,6 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.lo: $(top_builddir)/jniinclude
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkImagePainter.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkLabelPeer.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkListPeer.h
-jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMainThread.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo: $(top_builddir)/jniinclude/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h
@@ -25920,16 +23399,16 @@ $(lib_gnu_java_awt_peer_gtk_la_OBJECTS): $(lib_gnu_java_awt_peer_gtk_la_DEPENDEN
# Compile all classfiles in one go.
-@ONESTEP_TRUE@classes.stamp: $(all_java_source_files)
+@ONESTEP_TRUE@classes.stamp: $(all_java_source_files) gnu/gcj/tools/gcj_dbtool/Main.java
@ONESTEP_TRUE@ @echo Compiling Java sourcefiles...
@ONESTEP_TRUE@ @: $(call write_entries_to_file,$?,libgcj.sourcelist)
@ONESTEP_TRUE@ $(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(BOOTCLASSPATH) -d $(here) @libgcj.sourcelist
-
+@ONESTEP_TRUE@ echo > classes.stamp
# This next rule seems backward, but reflects the fact that 1) all
# classfiles are compiled in one go when classes.stamp is built and 2)
# anything which depends on a particular .class file must wait until
# this file is built.
-@ONESTEP_TRUE@$(all_java_class_files): classes.stamp
+@ONESTEP_TRUE@$(all_java_class_files) gnu/gcj/tools/gcj_dbtool/Main.class: classes.stamp
# Compile each classfile individually.
@@ -25976,9 +23455,6 @@ clean-nat:
$(filter-out gnu/gcj/runtime/StackTrace.lo, $(javao_files)) $(xlib_javao_files): %.lo: %.java
$(LTGCJCOMPILE) -o $@ -c $<
-$(gtk_awt_peer_sources:.java=.lo) $(gnu_xml_source_files:.java=.lo): %.lo: %.java
- $(LTGCJCOMPILE) -fjni -o $@ -c $<
-
gnu/gcj/runtime/StackTrace.lo: gnu/gcj/runtime/StackTrace.java
$(LTGCJCOMPILE) -fno-optimize-sibling-calls -o $@ -c $<
@@ -25995,6 +23471,31 @@ lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPEND
$(lib_gnu_awt_xlib_la_LINK) -objectlist lib_gnu_awt_xlib.objectlist \
-rpath $(toolexeclibdir) $(lib_gnu_awt_xlib_la_LDFLAGS) $(LIBS)
+gnu-xml.lo: $(gnu_xml_source_files)
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -fjni -findirect-dispatch -c -o gnu-xml.lo \
+ `find gnu/xml -name '*.class' -print | sort -r`
+
+javax-imageio.lo: $(javax_imageio_source_files)
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -c -o javax-imageio.lo \
+ `find javax/imageio -name '*.class' -print | sort -r`
+
+javax-xml.lo: $(javax_xml_source_files)
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -c -o javax-xml.lo \
+ `find javax/xml -name '*.class' -print | sort -r`
+
+gnu-java-beans.lo: $(gnu_java_beans_source_files)
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -c -o gnu-java-beans.lo \
+ `find gnu/java/beans -name '*.class' -print | sort -r`
+
+gtk-awt-peer.lo: $(gtk_awt_peer_sources)
+ $(MAKE) classes.stamp
+ $(LTGCJCOMPILE) -findirect-dispatch -fjni -c -o gtk-awt-peer.lo \
+ `find gnu/java/awt/peer/gtk -name '*.class' -print | sort -r`
+
%.h: %.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) $(basename $<)
@@ -26085,7 +23586,7 @@ java/lang/reflect/Proxy$$ProxyType.h: java/lang/reflect/Proxy.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
'java/lang/reflect/Proxy$$ProxyType'
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class
+gnu/gcj/runtime/ExtensionClassLoader.h: gnu/gcj/runtime/ExtensionClassLoader.class
$(GCJH) -classpath '' -bootclasspath $(top_builddir) \
-friend 'class ::java::lang::ClassLoader;' \
$(basename $<)
diff --git a/libjava/NEWS b/libjava/NEWS
index 8c9b3b745d1..24fd4567716 100644
--- a/libjava/NEWS
+++ b/libjava/NEWS
@@ -1,3 +1,211 @@
+*** Changes in GCC 4.0:
+
+* Character encoders and decoders have been added for: iso-8859-6
+(arabic), iso-8859-7 (greek), iso-8859-8 (hebrew), iso-8859-9
+(latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
+ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
+UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little
+Endian).
+
+* Lots of Calendar bug fixes.
+
+* The http url protocol handler has been replaced with a full HTTP/1.1
+version from GNU inetlib.
+
+* A new ftp url protocol handler has been added also from GNU inetlib.
+
+* java.beans has been updated to 1.4 including support for XMLEncoder
+and XMLDecoder.
+
+* Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2)
+and org.w3c.dom (DOM Level 3) interfaces. It is possible to switch
+between different implementations AElfred2, GNU DOM, GNU XSL, libxmlj
+SAX, libxmlj DOM and libxmlj XSL by setting different system
+properties. Also provided is a preliminary XPath 1.0
+implementation. The libxmlj versions are build around libxml2 and
+libxslt and have to be enabled during build time by the --enable-xmlj
+configure flag. The current support is equal to the last released GNU
+JAXP 1.3 release. These packages will be maintained as part of the GNU
+Classpath core classes in the future. For more information,
+conformance results and documentation on selecting different
+implementations see doc/README.jaxp.
+
+* Much fuller collection documentation.
+
+* libgcj can now load service providers that are described via
+META-INF/services/* resources in extension JARs. This is useful for
+implementing the various APIs that are supposed to be extensible via
+custom plugins. For details, please see the documentation of
+gnu.classpath.ServiceFactory.
+
+* GNU Classpath's JAR implementation now has preliminary support for
+signed entries, for so called "signed JAR" file support. Signed JAR
+files are one of the key security features of managed runtimes, and
+allows code to run privileged given unforgeable proofs of identity.
+
+* A much improved version of X.509 certificates has been added,
+including a robust certificate path checking algorithm. Also included
+is an implementation of the RSA signature scheme.
+
+* New javax.crypto, javax.crypto.interfaces, javax.crypto.spec,
+javax.net, javax.net.ssl, javax.security.auth,
+javax.security.auth.callback, javax.security.auth.login,
+javax.security.auth.x500, javax.security.sasl and org.ietf.jgss
+packages are now officially part of GNU Classpath. Extra crypto
+algorithms can be obtained from the GNU Crypto project, a full TLS
+implementation is provided by the Jessie project.
+http://www.gnu.org/software/gnu-crypto/
+http://www.nongnu.org/jessie/
+
+* java.security.AccessController has been implemented.
+
+* The default java.lang.SecurityManager now uses AccessController.
+
+* Lookahead support for regular expressions.
+
+* java.util.regexp implementation through gnu.regexp wrappers.
+
+* Serialization object stream fixes for multiple ClassLoader scenarios.
+
+* java.net.URL now uses application classloader to load
+URLStreamHandlers and reuses URLStreamHandlers when URL is reset (but
+protocol isn't changed).
+
+* java.io.File.deleteOnExit() implementation.
+
+* java.io is now implemented by delegating most tasks directly to
+java.nio.
+
+* Reworked/Optimized implementations of java.nio.Buffer and subclasses.
+
+* BufferedReader speed improvements.
+
+* Multiple java.net.InetAdress fixes and java.rmi fixes.
+
+* ServerSocket.accept() now restarts listening when system call
+interrupted.
+
+* java.net.URI implementation.
+
+* New javax.print, javax.print.attribute[.standard] and
+javax.print.event packages and classes.
+
+* java.text multiple new features and bug fixes (only 2 out of the
+1000+ java.text Mauve tests now fail).
+
+* java.text attributed iterators support.
+
+* Improved useabilty of java.text implementation for several
+applications.
+
+* More AWT accessible support.
+
+* AWT gtk+ peers component layout, dialog placement, keyboard focus
+handling and text positioning have been improved.
+
+* ImageIO interfaces are more complete.
+
+* JList, JTable and JTree have been hugely improved.
+
+* java.awt.Robot support with GdkRobot in the gtk+ awt peers. Needs
+XTest Extension (libXtst) XServer support.
+
+* Full java.awt.color implementation, with all standard ICC profiles,
+except for PhotoYCC color space.
+
+* java.awt.image support updated to 1.4.
+
+* Big-endian (PowerPC) fixes for native awt GTK+ peers.
+
+* Better AWT focus management fro GTK+ peers.
+
+* Much faster and better fonts support (for both gdk Graphics and cairo
+Graphics2D)
+
+* AWT Choice fixes for hidden components.
+
+* More javax.imageio support.
+
+* Better AWT Help MenuBar support.
+
+* Swing TabbedPane, ColorChooser and ComboBox improvements.
+
+* Start of JTree functionality.
+
+* javax.swing.Spring and SpringLayout support.
+
+* Added pluggable look and feel support for BasicTextFieldUI and
+BasicToolBarSeparatorUI.
+
+* java.swing.text support for (Default and Layered) Highlighter,
+FieldView, PlainView, TabExpander and TabableView added.
+
+* Start of JTable and JTree implementation.
+
+* Internal Swing frames work.
+
+* JMenu and JPopupMenu work.
+
+* New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
+
+* java.awt.image LookupTables and kernel support.
+
+* Improved java.awt.image.BufferedImage support.
+
+* AWT 1.0 event model support.
+
+* Frame.setIconImage() support.
+
+* AWT GDKGraphics scaling.
+
+* New configure flag --enable-gtk-cairo to build Graphics2D
+implementation build on cairo and pangoft2. Enabled at runtime by
+defining the system property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
+
+* javax.swing.JSpinner implemented.
+
+* java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D
+implemented.
+
+* JColorChooser, JComboBox and JTextField implemented, including
+example uses in GNU Classpath Examples swing Demo.
+
+* Better (non-black) default AWT System colors.
+
+* AWT lists use GTK treeviews.
+
+* Proper AWT focus management has been implemented.
+
+* Swing menus and scrollpanes are beginning to work.
+
+* Swing splitpanes, dialogs and internal frames were added.
+
+* Swing repainting / double buffering was redone.
+
+* Font management and Pango DPI conversion fixes.
+
+* A lot of AWT imaging and event bugs have been picked out.
+
+* More of javax.swing.text has been implemented.
+
+* javax.swing.Timer has been reimplemented.
+
+* The gnu.java.awt.EmbeddedWindow class has been improved, and now
+supports embedding AWT windows in other top-level X windows. This
+functionality is required by gcjwebplugin.
+
+* New javax.imageio, javax.imageio.event and javax.imageio.spi packages
+and classes.
+
+* Working implementation of javax.swing.undo.
+
+* java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and
+quadratic equations; implementation adapted from the GNU Scientific
+Library.
+
+* Lots of java.awt and gtk+ peer improvements. Also more Swing work.
+Start of EmbeddedWindow support.
+
*** Changes in GCC 3.4:
* Compiling a .jar file will now cause non-.class entries to be automatically
diff --git a/libjava/boehm.cc b/libjava/boehm.cc
index d2902326e81..f9910faf8cd 100644
--- a/libjava/boehm.cc
+++ b/libjava/boehm.cc
@@ -189,9 +189,11 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void *env)
// mark also the value pointed to. We check for isResolved
// since marking can happen before memory is allocated for
// static members.
- if (JvFieldIsRef (field) && field->isResolved())
+ // Note that field->u.addr may be null if the class c is
+ // JV_STATE_LOADED but not JV_STATE_PREPARED (initialized).
+ if (JvFieldIsRef (field) && p && field->isResolved())
{
- jobject val = *(jobject*) field->u.addr;
+ jobject val = *(jobject*) p;
p = (GC_PTR) val;
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c);
}
diff --git a/libjava/configure b/libjava/configure
index a243d6c9521..4a4eba2a2a0 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcj_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC INCLTDL LIBLTDL DIRLTDL LIBTOOL CXXCPP CPPFLAGS GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs COMPPATH TESTSUBDIR_TRUE TESTSUBDIR_FALSE ONESTEP_TRUE ONESTEP_FALSE LIBGCJDEBUG INTERPRETER LIBFFI LIBFFIINCS PLATFORM_INNER_NAT_HDRS CPP EGREP USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_ECOS_PLATFORM_TRUE USING_ECOS_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE GTK_AWT_TRUE GTK_AWT_FALSE GTK_CAIRO_TRUE GTK_CAIRO_FALSE PKG_CONFIG CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE gcc_version_trigger gcc_version_full gcc_version tool_include_dir LIBICONV LTLIBICONV GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS SUPPLY_BACKTRACE_TRUE SUPPLY_BACKTRACE_FALSE GCJH ZIP CLASSPATH_SEPARATOR ac_ct_GCJ ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION gxx_include_dir libstdcxx_incdir ALLOCA PERL BACKTRACESPEC SYSDEP_SOURCES here LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcj_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC INCLTDL LIBLTDL DIRLTDL LIBTOOL CXXCPP CPPFLAGS GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ONESTEP_TRUE ONESTEP_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME LIBGCJDEBUG INTERPRETER LIBFFI LIBFFIINCS PLATFORM_INNER_NAT_HDRS CPP EGREP USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_ECOS_PLATFORM_TRUE USING_ECOS_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE GTK_AWT_TRUE GTK_AWT_FALSE GTK_CAIRO_TRUE GTK_CAIRO_FALSE PKG_CONFIG CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE gcc_version_trigger gcc_version_full gcc_version tool_include_dir LIBICONV LTLIBICONV GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS SUPPLY_BACKTRACE_TRUE SUPPLY_BACKTRACE_FALSE GCJH ZIP CLASSPATH_SEPARATOR ac_ct_GCJ ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION gxx_include_dir libstdcxx_incdir ALLOCA PERL BACKTRACESPEC SYSDEP_SOURCES here LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -889,6 +889,8 @@ Optional Packages:
--with-newlib configure with newlib
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-pic try to use only PIC/non-PIC objects default=use both
+ --with-java-home=DIRECTORY
+ value of java.home system property
--with-win32-nlsapi=ansi or unicows or unicode
native MinGW libgcj Win32 OS API (default is ansi)
--without-libffi don't use libffi
@@ -4743,7 +4745,7 @@ 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 4746 "configure"' > conftest.$ac_ext
+ echo '#line 4748 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5581,13 +5583,6 @@ fi
subdirs="$subdirs libltdl"
-if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
- COMPPATH=.
-else
- COMPPATH=..
-fi
-
-
# The -no-testsuite modules omit the test subdir.
@@ -5671,6 +5666,26 @@ else
fi
+
+# Check whether --with-java-home or --without-java-home was given.
+if test "${with_java_home+set}" = set; then
+ withval="$with_java_home"
+ JAVA_HOME="${withval}"
+else
+ JAVA_HOME=""
+fi;
+
+
+if test ! -z "$JAVA_HOME"; then
+ JAVA_HOME_SET_TRUE=
+ JAVA_HOME_SET_FALSE='#'
+else
+ JAVA_HOME_SET_TRUE='#'
+ JAVA_HOME_SET_FALSE=
+fi
+
+
+
# What is the native OS API for MinGW?
# Check whether --with-win32-nlsapi or --without-win32-nlsapi was given.
@@ -5774,7 +5789,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 5777 "configure"
+#line 5792 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -13104,6 +13119,85 @@ echo "$as_me: error: Library requirements (libart-2.0 >= 2.1) not met; consider
+
+ # We require the XTest Extension to support java.awt.Robot.
+ echo "$as_me:$LINENO: checking for XTestQueryExtension in -lXtst" >&5
+echo $ECHO_N "checking for XTestQueryExtension in -lXtst... $ECHO_C" >&6
+if test "${ac_cv_lib_Xtst_XTestQueryExtension+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lXtst ${X_LIBS} $LIBS"
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char XTestQueryExtension ();
+int
+main ()
+{
+XTestQueryExtension ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_Xtst_XTestQueryExtension=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_Xtst_XTestQueryExtension=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_Xtst_XTestQueryExtension" >&5
+echo "${ECHO_T}$ac_cv_lib_Xtst_XTestQueryExtension" >&6
+if test $ac_cv_lib_Xtst_XTestQueryExtension = yes; then
+ true
+else
+ { { echo "$as_me:$LINENO: error: libXtst not found, required by java.awt.Robot" >&5
+echo "$as_me: error: libXtst not found, required by java.awt.Robot" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
fi
# On Solaris, and maybe other architectures, the Boehm collector
@@ -13199,7 +13293,7 @@ NATIVE=yes
# Which gcj do we use?
which_gcj=default
-built_gcc_dir="`cd ${builddotdot}/../../gcc && ${PWDCMD-pwd}`"
+built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
if test -n "${with_cross_host}"; then
# We are being configured with a cross compiler. We can't
# use ac_exeext, because that is for the target platform.
@@ -13238,8 +13332,8 @@ fi
case "${which_gcj}" in
built)
GCJ="$built_gcc_dir/gcj -B`${PWDCMD-pwd}`/ -B$built_gcc_dir/"
- GCJH='$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh'
- ZIP='$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
+ GCJH='$(top_builddir)/$(MULTIBUILDTOP)../../$(host_subdir)/gcc/gcjh'
+ ZIP='$(top_builddir)/$(MULTIBUILDTOP)../../$(host_subdir)/fastjar/fastjar'
;;
cross)
if test "x${with_newlib}" = "xyes"; then
@@ -13249,14 +13343,14 @@ case "${which_gcj}" in
else
GCJ="${target_noncanonical}-gcj -B`${PWDCMD-pwd}`/"
fi
- ZIP=jar
+ ZIP='$(target_noncanonical)-fastjar'
GCJH='$(target_noncanonical)-gcjh'
;;
path)
GCJ="gcj -B`${PWDCMD-pwd}`/"
## In this case, gcj is found outside the build tree. However, zip is
## found in the build tree.
- ZIP='$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
+ ZIP='$(top_builddir)/$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
GCJH=gcjh
;;
esac
@@ -13754,6 +13848,17 @@ _ACEOF
+cat >>confdefs.h <<\_ACEOF
+#define JV_VERSION "1.4.2"
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define JV_API_VERSION "1.4"
+_ACEOF
+
+
+
case "${with_gxx_include_dir}" in
yes)
{ { echo "$as_me:$LINENO: error: --with-gxx-include-dir=[dir] requires a directory" >&5
@@ -15792,6 +15897,13 @@ echo "$as_me: error: conditional \"ONESTEP\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${JAVA_HOME_SET_TRUE}" && test -z "${JAVA_HOME_SET_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"JAVA_HOME_SET\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"JAVA_HOME_SET\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${USING_WIN32_PLATFORM_TRUE}" && test -z "${USING_WIN32_PLATFORM_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"USING_WIN32_PLATFORM\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -16563,11 +16675,13 @@ s,@GCJDEPMODE@,$GCJDEPMODE,;t t
s,@am__fastdepGCJ_TRUE@,$am__fastdepGCJ_TRUE,;t t
s,@am__fastdepGCJ_FALSE@,$am__fastdepGCJ_FALSE,;t t
s,@subdirs@,$subdirs,;t t
-s,@COMPPATH@,$COMPPATH,;t t
s,@TESTSUBDIR_TRUE@,$TESTSUBDIR_TRUE,;t t
s,@TESTSUBDIR_FALSE@,$TESTSUBDIR_FALSE,;t t
s,@ONESTEP_TRUE@,$ONESTEP_TRUE,;t t
s,@ONESTEP_FALSE@,$ONESTEP_FALSE,;t t
+s,@JAVA_HOME_SET_TRUE@,$JAVA_HOME_SET_TRUE,;t t
+s,@JAVA_HOME_SET_FALSE@,$JAVA_HOME_SET_FALSE,;t t
+s,@JAVA_HOME@,$JAVA_HOME,;t t
s,@LIBGCJDEBUG@,$LIBGCJDEBUG,;t t
s,@INTERPRETER@,$INTERPRETER,;t t
s,@LIBFFI@,$LIBFFI,;t t
@@ -17498,6 +17612,12 @@ case " $CONFIG_FILES " in
ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
;;
esac
+for ac_multi_file in $CONFIG_FILES; do
+ case $ac_multi_file in
+ */Makefile)
+ grep "^MULTI[^ ]* =" Makefile >> "$ac_multi_file" ;;
+ esac
+done
;;
esac
done
diff --git a/libjava/configure.ac b/libjava/configure.ac
index d2f1c1058fa..55de5d6384a 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -162,13 +162,6 @@ AM_PROG_GCJ
AM_PROG_CC_C_O
AC_CONFIG_SUBDIRS(libltdl)
-if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
- COMPPATH=.
-else
- COMPPATH=..
-fi
-AC_SUBST(COMPPATH)
-
# The -no-testsuite modules omit the test subdir.
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
@@ -218,6 +211,13 @@ AC_ARG_ENABLE(libgcj-multifile,
esac],[enable_libgcj_multifile=no])
AM_CONDITIONAL(ONESTEP, test "$enable_libgcj_multifile" = yes)
+AC_ARG_WITH(java-home,
+ AS_HELP_STRING([--with-java-home=DIRECTORY],
+ [value of java.home system property]),
+ [JAVA_HOME="${withval}"], [JAVA_HOME=""])
+AM_CONDITIONAL(JAVA_HOME_SET, test ! -z "$JAVA_HOME")
+AC_SUBST(JAVA_HOME)
+
# What is the native OS API for MinGW?
AC_ARG_WITH(win32-nlsapi,
AS_HELP_STRING([--with-win32-nlsapi=ansi or unicows or unicode],
@@ -1014,6 +1014,11 @@ else
PKG_CHECK_MODULES(LIBART, libart-2.0 >= 2.1)
AC_SUBST(LIBART_CFLAGS)
AC_SUBST(LIBART_LIBS)
+
+ # We require the XTest Extension to support java.awt.Robot.
+ AC_CHECK_LIB([Xtst], [XTestQueryExtension], [true],
+ [AC_MSG_ERROR([libXtst not found, required by java.awt.Robot])],
+ [${X_LIBS}])
fi
# On Solaris, and maybe other architectures, the Boehm collector
@@ -1034,7 +1039,7 @@ NATIVE=yes
# Which gcj do we use?
which_gcj=default
-built_gcc_dir="`cd ${builddotdot}/../../gcc && ${PWDCMD-pwd}`"
+built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
if test -n "${with_cross_host}"; then
# We are being configured with a cross compiler. We can't
# use ac_exeext, because that is for the target platform.
@@ -1073,8 +1078,8 @@ fi
case "${which_gcj}" in
built)
GCJ="$built_gcc_dir/gcj -B`${PWDCMD-pwd}`/ -B$built_gcc_dir/"
- GCJH='$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh'
- ZIP='$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
+ GCJH='$(top_builddir)/$(MULTIBUILDTOP)../../$(host_subdir)/gcc/gcjh'
+ ZIP='$(top_builddir)/$(MULTIBUILDTOP)../../$(host_subdir)/fastjar/fastjar'
;;
cross)
if test "x${with_newlib}" = "xyes"; then
@@ -1084,14 +1089,14 @@ case "${which_gcj}" in
else
GCJ="${target_noncanonical}-gcj -B`${PWDCMD-pwd}`/"
fi
- ZIP=jar
+ ZIP='$(target_noncanonical)-fastjar'
GCJH='$(target_noncanonical)-gcjh'
;;
path)
GCJ="gcj -B`${PWDCMD-pwd}`/"
## In this case, gcj is found outside the build tree. However, zip is
## found in the build tree.
- ZIP='$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
+ ZIP='$(top_builddir)/$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
GCJH=gcjh
;;
esac
@@ -1202,6 +1207,9 @@ GCJVERSION=$gcjversion
AC_SUBST(GCJVERSION)
AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
+AC_DEFINE(JV_VERSION, "1.4.2", [Compatibility version string])
+AC_DEFINE(JV_API_VERSION, "1.4", [API compatibility version string])
+
TL_AC_GXX_INCLUDE_DIR
# We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
@@ -1405,6 +1413,12 @@ case " $CONFIG_FILES " in
ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
;;
esac
+for ac_multi_file in $CONFIG_FILES; do
+ case $ac_multi_file in
+ */Makefile)
+ grep "^MULTI[[^ ]]* =" Makefile >> "$ac_multi_file" ;;
+ esac
+done
],
srcdir=${srcdir}
host=${host}
diff --git a/libjava/configure.host b/libjava/configure.host
index e1eaa1bab1e..583b4e2e015 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -227,7 +227,6 @@ EOF
mips*-*-linux* )
sysdeps_dir=mips
can_unwind_signal=yes
- libgcj_flags="${libgcj_flags} -mxgot"
DIVIDESPEC=-fno-use-divide-subroutine
case "${host}" in
mipsel*-linux* | mipsisa32el*-linux*)
diff --git a/libjava/external/Makefile.in b/libjava/external/Makefile.in
index a35f042c098..370bfd07edd 100644
--- a/libjava/external/Makefile.in
+++ b/libjava/external/Makefile.in
@@ -87,7 +87,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -132,6 +131,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
diff --git a/libjava/external/sax/Makefile.am b/libjava/external/sax/Makefile.am
index d2d6ec9d087..cb91fcd94ae 100644
--- a/libjava/external/sax/Makefile.am
+++ b/libjava/external/sax/Makefile.am
@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = foreign subdir-objects
## The compiler with whatever flags we want for both -c and -C
## compiles.
-GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fbootclasspath=$(BOOTCLASSPATH)
+GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=$(BOOTCLASSPATH)
BOOTCLASSPATH = $(here)'$(CLASSPATH_SEPARATOR)'$(srcdir)'$(CLASSPATH_SEPARATOR)'$(top_srcdir)'$(CLASSPATH_SEPARATOR)'$(top_builddir)
@@ -17,18 +17,24 @@ AM_GCJFLAGS = \
BUILT_SOURCES = classes.stamp
-classes.stamp: $(libsax_convenience_la_SOURCES)
+sax.jar: classes.stamp
+ find org -name '*.class' -print | $(ZIP) -cfME@ $@
+
+classes.stamp: $(source_files)
here=`pwd`; cd $(srcdir); \
- $(GCJ_WITH_FLAGS) -C -d $$here $(libsax_convenience_la_SOURCES)
+ $(GCJ_WITH_FLAGS) -C -d $$here $(source_files)
echo > classes.stamp
mostlyclean-local:
-find . -name '*.class' | xargs rm
- -rm classes.stamp
+ -rm classes.stamp sax.jar
+
+noinst_LTLIBRARIES = libsax-gcj.la
-noinst_LTLIBRARIES = libsax_convenience.la
+libsax_gcj_la_SOURCES = sax.jar
+libsax_gcj_la_GCJFLAGS = -findirect-dispatch $(AM_GCJFLAGS)
-libsax_convenience_la_SOURCES = \
+source_files = \
org/xml/sax/SAXNotSupportedException.java \
org/xml/sax/helpers/NamespaceSupport.java \
org/xml/sax/helpers/AttributesImpl.java \
diff --git a/libjava/external/sax/Makefile.in b/libjava/external/sax/Makefile.in
index a4b95da0d61..829fe6717db 100644
--- a/libjava/external/sax/Makefile.in
+++ b/libjava/external/sax/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-SOURCES = $(libsax_convenience_la_SOURCES)
+SOURCES = $(libsax_gcj_la_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -60,37 +60,9 @@ CONFIG_HEADER = $(top_builddir)/include/config.h \
$(top_builddir)/gcj/libgcj-config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
-libsax_convenience_la_LIBADD =
-am__dirstamp = $(am__leading_dot)dirstamp
-am_libsax_convenience_la_OBJECTS = \
- org/xml/sax/SAXNotSupportedException.lo \
- org/xml/sax/helpers/NamespaceSupport.lo \
- org/xml/sax/helpers/AttributesImpl.lo \
- org/xml/sax/helpers/LocatorImpl.lo \
- org/xml/sax/helpers/DefaultHandler.lo \
- org/xml/sax/helpers/AttributeListImpl.lo \
- org/xml/sax/helpers/ParserFactory.lo \
- org/xml/sax/helpers/NewInstance.lo \
- org/xml/sax/helpers/XMLFilterImpl.lo \
- org/xml/sax/helpers/ParserAdapter.lo \
- org/xml/sax/helpers/XMLReaderAdapter.lo \
- org/xml/sax/helpers/XMLReaderFactory.lo \
- org/xml/sax/HandlerBase.lo org/xml/sax/SAXException.lo \
- org/xml/sax/ContentHandler.lo \
- org/xml/sax/SAXNotRecognizedException.lo \
- org/xml/sax/ErrorHandler.lo org/xml/sax/AttributeList.lo \
- org/xml/sax/Locator.lo org/xml/sax/Attributes.lo \
- org/xml/sax/SAXParseException.lo org/xml/sax/XMLFilter.lo \
- org/xml/sax/EntityResolver.lo org/xml/sax/XMLReader.lo \
- org/xml/sax/ext/Locator2.lo org/xml/sax/ext/LexicalHandler.lo \
- org/xml/sax/ext/Attributes2Impl.lo \
- org/xml/sax/ext/DeclHandler.lo org/xml/sax/ext/Attributes2.lo \
- org/xml/sax/ext/EntityResolver2.lo \
- org/xml/sax/ext/Locator2Impl.lo \
- org/xml/sax/ext/DefaultHandler2.lo org/xml/sax/InputSource.lo \
- org/xml/sax/DocumentHandler.lo org/xml/sax/DTDHandler.lo \
- org/xml/sax/Parser.lo
-libsax_convenience_la_OBJECTS = $(am_libsax_convenience_la_OBJECTS)
+libsax_gcj_la_LIBADD =
+am_libsax_gcj_la_OBJECTS = libsax_gcj_la-sax.lo
+libsax_gcj_la_OBJECTS = $(am_libsax_gcj_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_builddir)/gcj
depcomp = $(SHELL) $(top_srcdir)/../depcomp
am__depfiles_maybe = depfiles
@@ -100,8 +72,8 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \
GCJLD = $(GCJ)
GCJLINK = $(LIBTOOL) --mode=link $(GCJLD) $(AM_GCJFLAGS) $(GCJFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libsax_convenience_la_SOURCES)
-DIST_SOURCES = $(libsax_convenience_la_SOURCES)
+SOURCES = $(libsax_gcj_la_SOURCES)
+DIST_SOURCES = $(libsax_gcj_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -124,7 +96,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -169,6 +140,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
@@ -327,7 +301,7 @@ toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign subdir-objects
-GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fbootclasspath=$(BOOTCLASSPATH)
+GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=$(BOOTCLASSPATH)
BOOTCLASSPATH = $(here)'$(CLASSPATH_SEPARATOR)'$(srcdir)'$(CLASSPATH_SEPARATOR)'$(top_srcdir)'$(CLASSPATH_SEPARATOR)'$(top_builddir)
AM_GCJFLAGS = \
-B$(top_builddir) \
@@ -337,8 +311,10 @@ AM_GCJFLAGS = \
-Wno-deprecated
BUILT_SOURCES = classes.stamp
-noinst_LTLIBRARIES = libsax_convenience.la
-libsax_convenience_la_SOURCES = \
+noinst_LTLIBRARIES = libsax-gcj.la
+libsax_gcj_la_SOURCES = sax.jar
+libsax_gcj_la_GCJFLAGS = -findirect-dispatch $(AM_GCJFLAGS)
+source_files = \
org/xml/sax/SAXNotSupportedException.java \
org/xml/sax/helpers/NamespaceSupport.java \
org/xml/sax/helpers/AttributesImpl.java \
@@ -380,7 +356,7 @@ all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .java .lo .o .obj
+.SUFFIXES: .jar .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -419,226 +395,18 @@ clean-noinstLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-org/xml/sax/$(am__dirstamp):
- @$(mkdir_p) org/xml/sax
- @: > org/xml/sax/$(am__dirstamp)
-org/xml/sax/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/xml/sax/$(DEPDIR)
- @: > org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/SAXNotSupportedException.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/$(am__dirstamp):
- @$(mkdir_p) org/xml/sax/helpers
- @: > org/xml/sax/helpers/$(am__dirstamp)
-org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/xml/sax/helpers/$(DEPDIR)
- @: > org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/NamespaceSupport.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/AttributesImpl.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/LocatorImpl.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/DefaultHandler.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/AttributeListImpl.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/ParserFactory.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/NewInstance.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/XMLFilterImpl.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/ParserAdapter.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/XMLReaderAdapter.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/helpers/XMLReaderFactory.lo: \
- org/xml/sax/helpers/$(am__dirstamp) \
- org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/HandlerBase.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/SAXException.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ContentHandler.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/SAXNotRecognizedException.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ErrorHandler.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/AttributeList.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/Locator.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/Attributes.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/SAXParseException.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/XMLFilter.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/EntityResolver.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/XMLReader.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/$(am__dirstamp):
- @$(mkdir_p) org/xml/sax/ext
- @: > org/xml/sax/ext/$(am__dirstamp)
-org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/xml/sax/ext/$(DEPDIR)
- @: > org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/Locator2.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/LexicalHandler.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/Attributes2Impl.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/DeclHandler.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/Attributes2.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/EntityResolver2.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/Locator2Impl.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/ext/DefaultHandler2.lo: org/xml/sax/ext/$(am__dirstamp) \
- org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/InputSource.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/DocumentHandler.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/DTDHandler.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-org/xml/sax/Parser.lo: org/xml/sax/$(am__dirstamp) \
- org/xml/sax/$(DEPDIR)/$(am__dirstamp)
-libsax_convenience.la: $(libsax_convenience_la_OBJECTS) $(libsax_convenience_la_DEPENDENCIES)
- $(GCJLINK) $(libsax_convenience_la_LDFLAGS) $(libsax_convenience_la_OBJECTS) $(libsax_convenience_la_LIBADD) $(LIBS)
+libsax-gcj.la: $(libsax_gcj_la_OBJECTS) $(libsax_gcj_la_DEPENDENCIES)
+ $(GCJLINK) $(libsax_gcj_la_LDFLAGS) $(libsax_gcj_la_OBJECTS) $(libsax_gcj_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
- -rm -f org/xml/sax/AttributeList.$(OBJEXT)
- -rm -f org/xml/sax/AttributeList.lo
- -rm -f org/xml/sax/Attributes.$(OBJEXT)
- -rm -f org/xml/sax/Attributes.lo
- -rm -f org/xml/sax/ContentHandler.$(OBJEXT)
- -rm -f org/xml/sax/ContentHandler.lo
- -rm -f org/xml/sax/DTDHandler.$(OBJEXT)
- -rm -f org/xml/sax/DTDHandler.lo
- -rm -f org/xml/sax/DocumentHandler.$(OBJEXT)
- -rm -f org/xml/sax/DocumentHandler.lo
- -rm -f org/xml/sax/EntityResolver.$(OBJEXT)
- -rm -f org/xml/sax/EntityResolver.lo
- -rm -f org/xml/sax/ErrorHandler.$(OBJEXT)
- -rm -f org/xml/sax/ErrorHandler.lo
- -rm -f org/xml/sax/HandlerBase.$(OBJEXT)
- -rm -f org/xml/sax/HandlerBase.lo
- -rm -f org/xml/sax/InputSource.$(OBJEXT)
- -rm -f org/xml/sax/InputSource.lo
- -rm -f org/xml/sax/Locator.$(OBJEXT)
- -rm -f org/xml/sax/Locator.lo
- -rm -f org/xml/sax/Parser.$(OBJEXT)
- -rm -f org/xml/sax/Parser.lo
- -rm -f org/xml/sax/SAXException.$(OBJEXT)
- -rm -f org/xml/sax/SAXException.lo
- -rm -f org/xml/sax/SAXNotRecognizedException.$(OBJEXT)
- -rm -f org/xml/sax/SAXNotRecognizedException.lo
- -rm -f org/xml/sax/SAXNotSupportedException.$(OBJEXT)
- -rm -f org/xml/sax/SAXNotSupportedException.lo
- -rm -f org/xml/sax/SAXParseException.$(OBJEXT)
- -rm -f org/xml/sax/SAXParseException.lo
- -rm -f org/xml/sax/XMLFilter.$(OBJEXT)
- -rm -f org/xml/sax/XMLFilter.lo
- -rm -f org/xml/sax/XMLReader.$(OBJEXT)
- -rm -f org/xml/sax/XMLReader.lo
- -rm -f org/xml/sax/ext/Attributes2.$(OBJEXT)
- -rm -f org/xml/sax/ext/Attributes2.lo
- -rm -f org/xml/sax/ext/Attributes2Impl.$(OBJEXT)
- -rm -f org/xml/sax/ext/Attributes2Impl.lo
- -rm -f org/xml/sax/ext/DeclHandler.$(OBJEXT)
- -rm -f org/xml/sax/ext/DeclHandler.lo
- -rm -f org/xml/sax/ext/DefaultHandler2.$(OBJEXT)
- -rm -f org/xml/sax/ext/DefaultHandler2.lo
- -rm -f org/xml/sax/ext/EntityResolver2.$(OBJEXT)
- -rm -f org/xml/sax/ext/EntityResolver2.lo
- -rm -f org/xml/sax/ext/LexicalHandler.$(OBJEXT)
- -rm -f org/xml/sax/ext/LexicalHandler.lo
- -rm -f org/xml/sax/ext/Locator2.$(OBJEXT)
- -rm -f org/xml/sax/ext/Locator2.lo
- -rm -f org/xml/sax/ext/Locator2Impl.$(OBJEXT)
- -rm -f org/xml/sax/ext/Locator2Impl.lo
- -rm -f org/xml/sax/helpers/AttributeListImpl.$(OBJEXT)
- -rm -f org/xml/sax/helpers/AttributeListImpl.lo
- -rm -f org/xml/sax/helpers/AttributesImpl.$(OBJEXT)
- -rm -f org/xml/sax/helpers/AttributesImpl.lo
- -rm -f org/xml/sax/helpers/DefaultHandler.$(OBJEXT)
- -rm -f org/xml/sax/helpers/DefaultHandler.lo
- -rm -f org/xml/sax/helpers/LocatorImpl.$(OBJEXT)
- -rm -f org/xml/sax/helpers/LocatorImpl.lo
- -rm -f org/xml/sax/helpers/NamespaceSupport.$(OBJEXT)
- -rm -f org/xml/sax/helpers/NamespaceSupport.lo
- -rm -f org/xml/sax/helpers/NewInstance.$(OBJEXT)
- -rm -f org/xml/sax/helpers/NewInstance.lo
- -rm -f org/xml/sax/helpers/ParserAdapter.$(OBJEXT)
- -rm -f org/xml/sax/helpers/ParserAdapter.lo
- -rm -f org/xml/sax/helpers/ParserFactory.$(OBJEXT)
- -rm -f org/xml/sax/helpers/ParserFactory.lo
- -rm -f org/xml/sax/helpers/XMLFilterImpl.$(OBJEXT)
- -rm -f org/xml/sax/helpers/XMLFilterImpl.lo
- -rm -f org/xml/sax/helpers/XMLReaderAdapter.$(OBJEXT)
- -rm -f org/xml/sax/helpers/XMLReaderAdapter.lo
- -rm -f org/xml/sax/helpers/XMLReaderFactory.$(OBJEXT)
- -rm -f org/xml/sax/helpers/XMLReaderFactory.lo
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/AttributeList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/Attributes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/ContentHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/DTDHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/DocumentHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/EntityResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/ErrorHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/HandlerBase.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/InputSource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/Locator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/Parser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/SAXException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/SAXNotRecognizedException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/SAXNotSupportedException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/SAXParseException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/XMLFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/$(DEPDIR)/XMLReader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/Attributes2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/Attributes2Impl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/DeclHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/DefaultHandler2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/EntityResolver2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/LexicalHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/Locator2.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/ext/$(DEPDIR)/Locator2Impl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/AttributeListImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/AttributesImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/DefaultHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/LocatorImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/NamespaceSupport.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/NewInstance.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/ParserAdapter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/ParserFactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/XMLFilterImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/XMLReaderAdapter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/xml/sax/helpers/$(DEPDIR)/XMLReaderFactory.Plo@am__quote@
-
-.java.o:
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsax_gcj_la-sax.Plo@am__quote@
+
+.jar.o:
@am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
@am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@@ -646,7 +414,7 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ $<
-.java.obj:
+.jar.obj:
@am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \
@am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@@ -654,7 +422,7 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-.java.lo:
+.jar.lo:
@am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
@am__fastdepGCJ_TRUE@ if $(LTGCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi
@@ -662,14 +430,18 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(LTGCJCOMPILE) -c -o $@ $<
+libsax_gcj_la-sax.lo: sax.jar
+@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(libsax_gcj_la_GCJFLAGS) $(GCJFLAGS) -MT libsax_gcj_la-sax.lo -MD -MP -MF "$(DEPDIR)/libsax_gcj_la-sax.Tpo" -c -o libsax_gcj_la-sax.lo `test -f 'sax.jar' || echo '$(srcdir)/'`sax.jar; \
+@am__fastdepGCJ_TRUE@ then mv -f "$(DEPDIR)/libsax_gcj_la-sax.Tpo" "$(DEPDIR)/libsax_gcj_la-sax.Plo"; else rm -f "$(DEPDIR)/libsax_gcj_la-sax.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='sax.jar' object='libsax_gcj_la-sax.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(libsax_gcj_la_GCJFLAGS) $(GCJFLAGS) -c -o libsax_gcj_la-sax.lo `test -f 'sax.jar' || echo '$(srcdir)/'`sax.jar
+
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
- -rm -rf org/xml/sax/.libs org/xml/sax/_libs
- -rm -rf org/xml/sax/ext/.libs org/xml/sax/ext/_libs
- -rm -rf org/xml/sax/helpers/.libs org/xml/sax/helpers/_libs
distclean-libtool:
-rm -f libtool
@@ -776,12 +548,6 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -rm -f org/xml/sax/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/xml/sax/$(am__dirstamp)
- -rm -f org/xml/sax/ext/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/xml/sax/ext/$(am__dirstamp)
- -rm -f org/xml/sax/helpers/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/xml/sax/helpers/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -793,7 +559,7 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
- -rm -rf org/xml/sax/$(DEPDIR) org/xml/sax/ext/$(DEPDIR) org/xml/sax/helpers/$(DEPDIR)
+ -rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
@@ -819,7 +585,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf org/xml/sax/$(DEPDIR) org/xml/sax/ext/$(DEPDIR) org/xml/sax/helpers/$(DEPDIR)
+ -rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -851,14 +617,17 @@ uninstall-am: uninstall-info-am
uninstall-am uninstall-info-am
-classes.stamp: $(libsax_convenience_la_SOURCES)
+sax.jar: classes.stamp
+ find org -name '*.class' -print | $(ZIP) -cfME@ $@
+
+classes.stamp: $(source_files)
here=`pwd`; cd $(srcdir); \
- $(GCJ_WITH_FLAGS) -C -d $$here $(libsax_convenience_la_SOURCES)
+ $(GCJ_WITH_FLAGS) -C -d $$here $(source_files)
echo > classes.stamp
mostlyclean-local:
-find . -name '*.class' | xargs rm
- -rm classes.stamp
+ -rm classes.stamp sax.jar
# 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/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java b/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java
index 01e11faf83e..5eb9e7c1ff5 100644
--- a/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java
+++ b/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java
@@ -2,7 +2,7 @@
// http://www.saxproject.org
// Written by David Megginson
// This class is in the Public Domain. NO WARRANTY!
-// $Id: NamespaceSupport.java,v 1.1 2004/12/23 22:38:42 mark Exp $
+// $Id: NamespaceSupport.java,v 1.2 2005/03/24 00:04:07 tromey Exp $
package org.xml.sax.helpers;
@@ -113,7 +113,8 @@ public class NamespaceSupport
/**
* An empty enumeration.
*/
- private final static Enumeration EMPTY_ENUMERATION =
+ // GCJ LOCAL: work around gcj bug by making this package-private
+ final static Enumeration EMPTY_ENUMERATION =
new Vector().elements();
diff --git a/libjava/external/w3c_dom/Makefile.am b/libjava/external/w3c_dom/Makefile.am
index 37ba5746a48..434ac7425d9 100644
--- a/libjava/external/w3c_dom/Makefile.am
+++ b/libjava/external/w3c_dom/Makefile.am
@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = foreign subdir-objects
## The compiler with whatever flags we want for both -c and -C
## compiles.
-GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fbootclasspath=$(BOOTCLASSPATH)
+GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=$(BOOTCLASSPATH)
BOOTCLASSPATH = $(here)'$(CLASSPATH_SEPARATOR)'$(srcdir)'$(CLASSPATH_SEPARATOR)'$(top_srcdir)'$(CLASSPATH_SEPARATOR)'$(top_builddir)
@@ -17,18 +17,24 @@ AM_GCJFLAGS = \
BUILT_SOURCES = classes.stamp
-classes.stamp: $(libw3c_convenience_la_SOURCES)
+w3c.jar: classes.stamp
+ find org -name '*.class' -print | $(ZIP) -cfME@ $@
+
+classes.stamp: $(source_files)
here=`pwd`; cd $(srcdir); \
- $(GCJ_WITH_FLAGS) -C -d $$here $(libw3c_convenience_la_SOURCES)
+ $(GCJ_WITH_FLAGS) -C -d $$here $(source_files)
echo > classes.stamp
mostlyclean-local:
-find . -name '*.class' | xargs rm
- -rm classes.stamp
+ -rm classes.stamp w3c.jar
+
+noinst_LTLIBRARIES = libw3c-gcj.la
-noinst_LTLIBRARIES = libw3c_convenience.la
+libw3c_gcj_la_SOURCES = w3c.jar
+libw3c_gcj_la_GCJFLAGS = -findirect-dispatch $(AM_GCJFLAGS)
-libw3c_convenience_la_SOURCES = \
+source_files = \
org/w3c/dom/xpath/XPathNamespace.java \
org/w3c/dom/xpath/XPathResult.java \
org/w3c/dom/xpath/XPathException.java \
diff --git a/libjava/external/w3c_dom/Makefile.in b/libjava/external/w3c_dom/Makefile.in
index 56842d9b5df..8e80b299f00 100644
--- a/libjava/external/w3c_dom/Makefile.in
+++ b/libjava/external/w3c_dom/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-SOURCES = $(libw3c_convenience_la_SOURCES)
+SOURCES = $(libw3c_gcj_la_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -60,131 +60,9 @@ CONFIG_HEADER = $(top_builddir)/include/config.h \
$(top_builddir)/gcj/libgcj-config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
-libw3c_convenience_la_LIBADD =
-am__dirstamp = $(am__leading_dot)dirstamp
-am_libw3c_convenience_la_OBJECTS = \
- org/w3c/dom/xpath/XPathNamespace.lo \
- org/w3c/dom/xpath/XPathResult.lo \
- org/w3c/dom/xpath/XPathException.lo \
- org/w3c/dom/xpath/XPathExpression.lo \
- org/w3c/dom/xpath/XPathNSResolver.lo \
- org/w3c/dom/xpath/XPathEvaluator.lo \
- org/w3c/dom/DOMException.lo org/w3c/dom/Comment.lo \
- org/w3c/dom/stylesheets/DocumentStyle.lo \
- org/w3c/dom/stylesheets/MediaList.lo \
- org/w3c/dom/stylesheets/LinkStyle.lo \
- org/w3c/dom/stylesheets/StyleSheet.lo \
- org/w3c/dom/stylesheets/StyleSheetList.lo org/w3c/dom/Attr.lo \
- org/w3c/dom/Notation.lo org/w3c/dom/TypeInfo.lo \
- org/w3c/dom/html2/HTMLIsIndexElement.lo \
- org/w3c/dom/html2/HTMLTableColElement.lo \
- org/w3c/dom/html2/HTMLLinkElement.lo \
- org/w3c/dom/html2/HTMLTitleElement.lo \
- org/w3c/dom/html2/HTMLBRElement.lo \
- org/w3c/dom/html2/HTMLHeadElement.lo \
- org/w3c/dom/html2/HTMLHtmlElement.lo \
- org/w3c/dom/html2/HTMLScriptElement.lo \
- org/w3c/dom/html2/HTMLTableRowElement.lo \
- org/w3c/dom/html2/HTMLOptionsCollection.lo \
- org/w3c/dom/html2/HTMLTableCellElement.lo \
- org/w3c/dom/html2/HTMLDListElement.lo \
- org/w3c/dom/html2/HTMLFieldSetElement.lo \
- org/w3c/dom/html2/HTMLImageElement.lo \
- org/w3c/dom/html2/HTMLHRElement.lo \
- org/w3c/dom/html2/HTMLModElement.lo \
- org/w3c/dom/html2/HTMLHeadingElement.lo \
- org/w3c/dom/html2/HTMLTableElement.lo \
- org/w3c/dom/html2/HTMLAreaElement.lo \
- org/w3c/dom/html2/HTMLOptGroupElement.lo \
- org/w3c/dom/html2/HTMLIFrameElement.lo \
- org/w3c/dom/html2/HTMLDirectoryElement.lo \
- org/w3c/dom/html2/HTMLParamElement.lo \
- org/w3c/dom/html2/HTMLLegendElement.lo \
- org/w3c/dom/html2/HTMLFrameElement.lo \
- org/w3c/dom/html2/HTMLFormElement.lo \
- org/w3c/dom/html2/HTMLStyleElement.lo \
- org/w3c/dom/html2/HTMLFrameSetElement.lo \
- org/w3c/dom/html2/HTMLCollection.lo \
- org/w3c/dom/html2/HTMLAnchorElement.lo \
- org/w3c/dom/html2/HTMLLabelElement.lo \
- org/w3c/dom/html2/HTMLBodyElement.lo \
- org/w3c/dom/html2/HTMLOptionElement.lo \
- org/w3c/dom/html2/HTMLTableSectionElement.lo \
- org/w3c/dom/html2/HTMLAppletElement.lo \
- org/w3c/dom/html2/HTMLSelectElement.lo \
- org/w3c/dom/html2/HTMLMetaElement.lo \
- org/w3c/dom/html2/HTMLMenuElement.lo \
- org/w3c/dom/html2/HTMLDivElement.lo \
- org/w3c/dom/html2/HTMLLIElement.lo \
- org/w3c/dom/html2/HTMLFontElement.lo \
- org/w3c/dom/html2/HTMLOListElement.lo \
- org/w3c/dom/html2/HTMLBaseFontElement.lo \
- org/w3c/dom/html2/HTMLElement.lo \
- org/w3c/dom/html2/HTMLTableCaptionElement.lo \
- org/w3c/dom/html2/HTMLTextAreaElement.lo \
- org/w3c/dom/html2/HTMLPreElement.lo \
- org/w3c/dom/html2/HTMLObjectElement.lo \
- org/w3c/dom/html2/HTMLBaseElement.lo \
- org/w3c/dom/html2/HTMLUListElement.lo \
- org/w3c/dom/html2/HTMLMapElement.lo \
- org/w3c/dom/html2/HTMLParagraphElement.lo \
- org/w3c/dom/html2/HTMLButtonElement.lo \
- org/w3c/dom/html2/HTMLQuoteElement.lo \
- org/w3c/dom/html2/HTMLInputElement.lo \
- org/w3c/dom/html2/HTMLDocument.lo org/w3c/dom/ls/LSParser.lo \
- org/w3c/dom/ls/LSSerializerFilter.lo \
- org/w3c/dom/ls/LSLoadEvent.lo \
- org/w3c/dom/ls/DOMImplementationLS.lo \
- org/w3c/dom/ls/LSException.lo org/w3c/dom/ls/LSSerializer.lo \
- org/w3c/dom/ls/LSResourceResolver.lo \
- org/w3c/dom/ls/LSOutput.lo org/w3c/dom/ls/LSInput.lo \
- org/w3c/dom/ls/LSProgressEvent.lo \
- org/w3c/dom/ls/LSParserFilter.lo org/w3c/dom/DOMLocator.lo \
- org/w3c/dom/DOMStringList.lo org/w3c/dom/DocumentFragment.lo \
- org/w3c/dom/events/MutationEvent.lo \
- org/w3c/dom/events/UIEvent.lo \
- org/w3c/dom/events/EventListener.lo \
- org/w3c/dom/events/Event.lo org/w3c/dom/events/MouseEvent.lo \
- org/w3c/dom/events/EventTarget.lo \
- org/w3c/dom/events/DocumentEvent.lo \
- org/w3c/dom/events/EventException.lo \
- org/w3c/dom/EntityReference.lo org/w3c/dom/DOMErrorHandler.lo \
- org/w3c/dom/views/AbstractView.lo \
- org/w3c/dom/views/DocumentView.lo org/w3c/dom/DOMError.lo \
- org/w3c/dom/bootstrap/DOMImplementationRegistry.lo \
- org/w3c/dom/traversal/TreeWalker.lo \
- org/w3c/dom/traversal/NodeFilter.lo \
- org/w3c/dom/traversal/DocumentTraversal.lo \
- org/w3c/dom/traversal/NodeIterator.lo \
- org/w3c/dom/CharacterData.lo org/w3c/dom/DOMConfiguration.lo \
- org/w3c/dom/css/CSSRule.lo org/w3c/dom/css/Rect.lo \
- org/w3c/dom/css/CSSStyleSheet.lo \
- org/w3c/dom/css/CSSFontFaceRule.lo \
- org/w3c/dom/css/CSSPrimitiveValue.lo \
- org/w3c/dom/css/CSSRuleList.lo org/w3c/dom/css/ViewCSS.lo \
- org/w3c/dom/css/CSSStyleRule.lo \
- org/w3c/dom/css/CSSUnknownRule.lo org/w3c/dom/css/RGBColor.lo \
- org/w3c/dom/css/ElementCSSInlineStyle.lo \
- org/w3c/dom/css/CSSMediaRule.lo \
- org/w3c/dom/css/CSS2Properties.lo org/w3c/dom/css/CSSValue.lo \
- org/w3c/dom/css/CSSStyleDeclaration.lo \
- org/w3c/dom/css/DOMImplementationCSS.lo \
- org/w3c/dom/css/CSSCharsetRule.lo org/w3c/dom/css/Counter.lo \
- org/w3c/dom/css/CSSPageRule.lo org/w3c/dom/css/DocumentCSS.lo \
- org/w3c/dom/css/CSSValueList.lo \
- org/w3c/dom/css/CSSImportRule.lo org/w3c/dom/NameList.lo \
- org/w3c/dom/Element.lo org/w3c/dom/Document.lo \
- org/w3c/dom/ranges/Range.lo \
- org/w3c/dom/ranges/RangeException.lo \
- org/w3c/dom/ranges/DocumentRange.lo \
- org/w3c/dom/DOMImplementationList.lo org/w3c/dom/Entity.lo \
- org/w3c/dom/UserDataHandler.lo \
- org/w3c/dom/DOMImplementation.lo org/w3c/dom/CDATASection.lo \
- org/w3c/dom/ProcessingInstruction.lo org/w3c/dom/Node.lo \
- org/w3c/dom/NamedNodeMap.lo org/w3c/dom/NodeList.lo \
- org/w3c/dom/Text.lo org/w3c/dom/DocumentType.lo \
- org/w3c/dom/DOMImplementationSource.lo
-libw3c_convenience_la_OBJECTS = $(am_libw3c_convenience_la_OBJECTS)
+libw3c_gcj_la_LIBADD =
+am_libw3c_gcj_la_OBJECTS = libw3c_gcj_la-w3c.lo
+libw3c_gcj_la_OBJECTS = $(am_libw3c_gcj_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_builddir)/gcj
depcomp = $(SHELL) $(top_srcdir)/../depcomp
am__depfiles_maybe = depfiles
@@ -194,8 +72,8 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \
GCJLD = $(GCJ)
GCJLINK = $(LIBTOOL) --mode=link $(GCJLD) $(AM_GCJFLAGS) $(GCJFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libw3c_convenience_la_SOURCES)
-DIST_SOURCES = $(libw3c_convenience_la_SOURCES)
+SOURCES = $(libw3c_gcj_la_SOURCES)
+DIST_SOURCES = $(libw3c_gcj_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -218,7 +96,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -263,6 +140,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
@@ -421,7 +301,7 @@ toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign subdir-objects
-GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fbootclasspath=$(BOOTCLASSPATH)
+GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=$(BOOTCLASSPATH)
BOOTCLASSPATH = $(here)'$(CLASSPATH_SEPARATOR)'$(srcdir)'$(CLASSPATH_SEPARATOR)'$(top_srcdir)'$(CLASSPATH_SEPARATOR)'$(top_builddir)
AM_GCJFLAGS = \
-B$(top_builddir) \
@@ -431,8 +311,10 @@ AM_GCJFLAGS = \
-Wno-deprecated
BUILT_SOURCES = classes.stamp
-noinst_LTLIBRARIES = libw3c_convenience.la
-libw3c_convenience_la_SOURCES = \
+noinst_LTLIBRARIES = libw3c-gcj.la
+libw3c_gcj_la_SOURCES = w3c.jar
+libw3c_gcj_la_GCJFLAGS = -findirect-dispatch $(AM_GCJFLAGS)
+source_files = \
org/w3c/dom/xpath/XPathNamespace.java \
org/w3c/dom/xpath/XPathResult.java \
org/w3c/dom/xpath/XPathException.java \
@@ -584,7 +466,7 @@ all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .java .lo .o .obj
+.SUFFIXES: .jar .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -623,888 +505,18 @@ clean-noinstLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-org/w3c/dom/xpath/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/xpath
- @: > org/w3c/dom/xpath/$(am__dirstamp)
-org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/xpath/$(DEPDIR)
- @: > org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/xpath/XPathNamespace.lo: \
- org/w3c/dom/xpath/$(am__dirstamp) \
- org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/xpath/XPathResult.lo: org/w3c/dom/xpath/$(am__dirstamp) \
- org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/xpath/XPathException.lo: \
- org/w3c/dom/xpath/$(am__dirstamp) \
- org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/xpath/XPathExpression.lo: \
- org/w3c/dom/xpath/$(am__dirstamp) \
- org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/xpath/XPathNSResolver.lo: \
- org/w3c/dom/xpath/$(am__dirstamp) \
- org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/xpath/XPathEvaluator.lo: \
- org/w3c/dom/xpath/$(am__dirstamp) \
- org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom
- @: > org/w3c/dom/$(am__dirstamp)
-org/w3c/dom/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/$(DEPDIR)
- @: > org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMException.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Comment.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/stylesheets/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/stylesheets
- @: > org/w3c/dom/stylesheets/$(am__dirstamp)
-org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/stylesheets/$(DEPDIR)
- @: > org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/stylesheets/DocumentStyle.lo: \
- org/w3c/dom/stylesheets/$(am__dirstamp) \
- org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/stylesheets/MediaList.lo: \
- org/w3c/dom/stylesheets/$(am__dirstamp) \
- org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/stylesheets/LinkStyle.lo: \
- org/w3c/dom/stylesheets/$(am__dirstamp) \
- org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/stylesheets/StyleSheet.lo: \
- org/w3c/dom/stylesheets/$(am__dirstamp) \
- org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/stylesheets/StyleSheetList.lo: \
- org/w3c/dom/stylesheets/$(am__dirstamp) \
- org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Attr.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Notation.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/TypeInfo.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/html2
- @: > org/w3c/dom/html2/$(am__dirstamp)
-org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/html2/$(DEPDIR)
- @: > org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLIsIndexElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTableColElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLLinkElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTitleElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLBRElement.lo: org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLHeadElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLHtmlElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLScriptElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTableRowElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLOptionsCollection.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTableCellElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLDListElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLFieldSetElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLImageElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLHRElement.lo: org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLModElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLHeadingElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTableElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLAreaElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLOptGroupElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLIFrameElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLDirectoryElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLParamElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLLegendElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLFrameElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLFormElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLStyleElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLFrameSetElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLCollection.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLAnchorElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLLabelElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLBodyElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLOptionElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTableSectionElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLAppletElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLSelectElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLMetaElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLMenuElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLDivElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLLIElement.lo: org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLFontElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLOListElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLBaseFontElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLElement.lo: org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTableCaptionElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLTextAreaElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLPreElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLObjectElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLBaseElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLUListElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLMapElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLParagraphElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLButtonElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLQuoteElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLInputElement.lo: \
- org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/html2/HTMLDocument.lo: org/w3c/dom/html2/$(am__dirstamp) \
- org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/ls
- @: > org/w3c/dom/ls/$(am__dirstamp)
-org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/ls/$(DEPDIR)
- @: > org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSParser.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSSerializerFilter.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSLoadEvent.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/DOMImplementationLS.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSException.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSSerializer.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSResourceResolver.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSOutput.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSInput.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSProgressEvent.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ls/LSParserFilter.lo: org/w3c/dom/ls/$(am__dirstamp) \
- org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMLocator.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMStringList.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DocumentFragment.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/events
- @: > org/w3c/dom/events/$(am__dirstamp)
-org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/events/$(DEPDIR)
- @: > org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/MutationEvent.lo: \
- org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/UIEvent.lo: org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/EventListener.lo: \
- org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/Event.lo: org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/MouseEvent.lo: org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/EventTarget.lo: org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/DocumentEvent.lo: \
- org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/events/EventException.lo: \
- org/w3c/dom/events/$(am__dirstamp) \
- org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/EntityReference.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMErrorHandler.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/views/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/views
- @: > org/w3c/dom/views/$(am__dirstamp)
-org/w3c/dom/views/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/views/$(DEPDIR)
- @: > org/w3c/dom/views/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/views/AbstractView.lo: org/w3c/dom/views/$(am__dirstamp) \
- org/w3c/dom/views/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/views/DocumentView.lo: org/w3c/dom/views/$(am__dirstamp) \
- org/w3c/dom/views/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMError.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/bootstrap/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/bootstrap
- @: > org/w3c/dom/bootstrap/$(am__dirstamp)
-org/w3c/dom/bootstrap/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/bootstrap/$(DEPDIR)
- @: > org/w3c/dom/bootstrap/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/bootstrap/DOMImplementationRegistry.lo: \
- org/w3c/dom/bootstrap/$(am__dirstamp) \
- org/w3c/dom/bootstrap/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/traversal/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/traversal
- @: > org/w3c/dom/traversal/$(am__dirstamp)
-org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/traversal/$(DEPDIR)
- @: > org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/traversal/TreeWalker.lo: \
- org/w3c/dom/traversal/$(am__dirstamp) \
- org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/traversal/NodeFilter.lo: \
- org/w3c/dom/traversal/$(am__dirstamp) \
- org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/traversal/DocumentTraversal.lo: \
- org/w3c/dom/traversal/$(am__dirstamp) \
- org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/traversal/NodeIterator.lo: \
- org/w3c/dom/traversal/$(am__dirstamp) \
- org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/CharacterData.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMConfiguration.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/css
- @: > org/w3c/dom/css/$(am__dirstamp)
-org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/css/$(DEPDIR)
- @: > org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/Rect.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSStyleSheet.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSFontFaceRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSPrimitiveValue.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSRuleList.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/ViewCSS.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSStyleRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSUnknownRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/RGBColor.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/ElementCSSInlineStyle.lo: \
- org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSMediaRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSS2Properties.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSValue.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSStyleDeclaration.lo: \
- org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/DOMImplementationCSS.lo: \
- org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSCharsetRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/Counter.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSPageRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/DocumentCSS.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSValueList.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/css/CSSImportRule.lo: org/w3c/dom/css/$(am__dirstamp) \
- org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/NameList.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Element.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Document.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ranges/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/ranges
- @: > org/w3c/dom/ranges/$(am__dirstamp)
-org/w3c/dom/ranges/$(DEPDIR)/$(am__dirstamp):
- @$(mkdir_p) org/w3c/dom/ranges/$(DEPDIR)
- @: > org/w3c/dom/ranges/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ranges/Range.lo: org/w3c/dom/ranges/$(am__dirstamp) \
- org/w3c/dom/ranges/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ranges/RangeException.lo: \
- org/w3c/dom/ranges/$(am__dirstamp) \
- org/w3c/dom/ranges/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ranges/DocumentRange.lo: \
- org/w3c/dom/ranges/$(am__dirstamp) \
- org/w3c/dom/ranges/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMImplementationList.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Entity.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/UserDataHandler.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMImplementation.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/CDATASection.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/ProcessingInstruction.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Node.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/NamedNodeMap.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/NodeList.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/Text.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DocumentType.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-org/w3c/dom/DOMImplementationSource.lo: org/w3c/dom/$(am__dirstamp) \
- org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
-libw3c_convenience.la: $(libw3c_convenience_la_OBJECTS) $(libw3c_convenience_la_DEPENDENCIES)
- $(GCJLINK) $(libw3c_convenience_la_LDFLAGS) $(libw3c_convenience_la_OBJECTS) $(libw3c_convenience_la_LIBADD) $(LIBS)
+libw3c-gcj.la: $(libw3c_gcj_la_OBJECTS) $(libw3c_gcj_la_DEPENDENCIES)
+ $(GCJLINK) $(libw3c_gcj_la_LDFLAGS) $(libw3c_gcj_la_OBJECTS) $(libw3c_gcj_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
- -rm -f org/w3c/dom/Attr.$(OBJEXT)
- -rm -f org/w3c/dom/Attr.lo
- -rm -f org/w3c/dom/CDATASection.$(OBJEXT)
- -rm -f org/w3c/dom/CDATASection.lo
- -rm -f org/w3c/dom/CharacterData.$(OBJEXT)
- -rm -f org/w3c/dom/CharacterData.lo
- -rm -f org/w3c/dom/Comment.$(OBJEXT)
- -rm -f org/w3c/dom/Comment.lo
- -rm -f org/w3c/dom/DOMConfiguration.$(OBJEXT)
- -rm -f org/w3c/dom/DOMConfiguration.lo
- -rm -f org/w3c/dom/DOMError.$(OBJEXT)
- -rm -f org/w3c/dom/DOMError.lo
- -rm -f org/w3c/dom/DOMErrorHandler.$(OBJEXT)
- -rm -f org/w3c/dom/DOMErrorHandler.lo
- -rm -f org/w3c/dom/DOMException.$(OBJEXT)
- -rm -f org/w3c/dom/DOMException.lo
- -rm -f org/w3c/dom/DOMImplementation.$(OBJEXT)
- -rm -f org/w3c/dom/DOMImplementation.lo
- -rm -f org/w3c/dom/DOMImplementationList.$(OBJEXT)
- -rm -f org/w3c/dom/DOMImplementationList.lo
- -rm -f org/w3c/dom/DOMImplementationSource.$(OBJEXT)
- -rm -f org/w3c/dom/DOMImplementationSource.lo
- -rm -f org/w3c/dom/DOMLocator.$(OBJEXT)
- -rm -f org/w3c/dom/DOMLocator.lo
- -rm -f org/w3c/dom/DOMStringList.$(OBJEXT)
- -rm -f org/w3c/dom/DOMStringList.lo
- -rm -f org/w3c/dom/Document.$(OBJEXT)
- -rm -f org/w3c/dom/Document.lo
- -rm -f org/w3c/dom/DocumentFragment.$(OBJEXT)
- -rm -f org/w3c/dom/DocumentFragment.lo
- -rm -f org/w3c/dom/DocumentType.$(OBJEXT)
- -rm -f org/w3c/dom/DocumentType.lo
- -rm -f org/w3c/dom/Element.$(OBJEXT)
- -rm -f org/w3c/dom/Element.lo
- -rm -f org/w3c/dom/Entity.$(OBJEXT)
- -rm -f org/w3c/dom/Entity.lo
- -rm -f org/w3c/dom/EntityReference.$(OBJEXT)
- -rm -f org/w3c/dom/EntityReference.lo
- -rm -f org/w3c/dom/NameList.$(OBJEXT)
- -rm -f org/w3c/dom/NameList.lo
- -rm -f org/w3c/dom/NamedNodeMap.$(OBJEXT)
- -rm -f org/w3c/dom/NamedNodeMap.lo
- -rm -f org/w3c/dom/Node.$(OBJEXT)
- -rm -f org/w3c/dom/Node.lo
- -rm -f org/w3c/dom/NodeList.$(OBJEXT)
- -rm -f org/w3c/dom/NodeList.lo
- -rm -f org/w3c/dom/Notation.$(OBJEXT)
- -rm -f org/w3c/dom/Notation.lo
- -rm -f org/w3c/dom/ProcessingInstruction.$(OBJEXT)
- -rm -f org/w3c/dom/ProcessingInstruction.lo
- -rm -f org/w3c/dom/Text.$(OBJEXT)
- -rm -f org/w3c/dom/Text.lo
- -rm -f org/w3c/dom/TypeInfo.$(OBJEXT)
- -rm -f org/w3c/dom/TypeInfo.lo
- -rm -f org/w3c/dom/UserDataHandler.$(OBJEXT)
- -rm -f org/w3c/dom/UserDataHandler.lo
- -rm -f org/w3c/dom/bootstrap/DOMImplementationRegistry.$(OBJEXT)
- -rm -f org/w3c/dom/bootstrap/DOMImplementationRegistry.lo
- -rm -f org/w3c/dom/css/CSS2Properties.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSS2Properties.lo
- -rm -f org/w3c/dom/css/CSSCharsetRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSCharsetRule.lo
- -rm -f org/w3c/dom/css/CSSFontFaceRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSFontFaceRule.lo
- -rm -f org/w3c/dom/css/CSSImportRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSImportRule.lo
- -rm -f org/w3c/dom/css/CSSMediaRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSMediaRule.lo
- -rm -f org/w3c/dom/css/CSSPageRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSPageRule.lo
- -rm -f org/w3c/dom/css/CSSPrimitiveValue.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSPrimitiveValue.lo
- -rm -f org/w3c/dom/css/CSSRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSRule.lo
- -rm -f org/w3c/dom/css/CSSRuleList.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSRuleList.lo
- -rm -f org/w3c/dom/css/CSSStyleDeclaration.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSStyleDeclaration.lo
- -rm -f org/w3c/dom/css/CSSStyleRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSStyleRule.lo
- -rm -f org/w3c/dom/css/CSSStyleSheet.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSStyleSheet.lo
- -rm -f org/w3c/dom/css/CSSUnknownRule.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSUnknownRule.lo
- -rm -f org/w3c/dom/css/CSSValue.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSValue.lo
- -rm -f org/w3c/dom/css/CSSValueList.$(OBJEXT)
- -rm -f org/w3c/dom/css/CSSValueList.lo
- -rm -f org/w3c/dom/css/Counter.$(OBJEXT)
- -rm -f org/w3c/dom/css/Counter.lo
- -rm -f org/w3c/dom/css/DOMImplementationCSS.$(OBJEXT)
- -rm -f org/w3c/dom/css/DOMImplementationCSS.lo
- -rm -f org/w3c/dom/css/DocumentCSS.$(OBJEXT)
- -rm -f org/w3c/dom/css/DocumentCSS.lo
- -rm -f org/w3c/dom/css/ElementCSSInlineStyle.$(OBJEXT)
- -rm -f org/w3c/dom/css/ElementCSSInlineStyle.lo
- -rm -f org/w3c/dom/css/RGBColor.$(OBJEXT)
- -rm -f org/w3c/dom/css/RGBColor.lo
- -rm -f org/w3c/dom/css/Rect.$(OBJEXT)
- -rm -f org/w3c/dom/css/Rect.lo
- -rm -f org/w3c/dom/css/ViewCSS.$(OBJEXT)
- -rm -f org/w3c/dom/css/ViewCSS.lo
- -rm -f org/w3c/dom/events/DocumentEvent.$(OBJEXT)
- -rm -f org/w3c/dom/events/DocumentEvent.lo
- -rm -f org/w3c/dom/events/Event.$(OBJEXT)
- -rm -f org/w3c/dom/events/Event.lo
- -rm -f org/w3c/dom/events/EventException.$(OBJEXT)
- -rm -f org/w3c/dom/events/EventException.lo
- -rm -f org/w3c/dom/events/EventListener.$(OBJEXT)
- -rm -f org/w3c/dom/events/EventListener.lo
- -rm -f org/w3c/dom/events/EventTarget.$(OBJEXT)
- -rm -f org/w3c/dom/events/EventTarget.lo
- -rm -f org/w3c/dom/events/MouseEvent.$(OBJEXT)
- -rm -f org/w3c/dom/events/MouseEvent.lo
- -rm -f org/w3c/dom/events/MutationEvent.$(OBJEXT)
- -rm -f org/w3c/dom/events/MutationEvent.lo
- -rm -f org/w3c/dom/events/UIEvent.$(OBJEXT)
- -rm -f org/w3c/dom/events/UIEvent.lo
- -rm -f org/w3c/dom/html2/HTMLAnchorElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLAnchorElement.lo
- -rm -f org/w3c/dom/html2/HTMLAppletElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLAppletElement.lo
- -rm -f org/w3c/dom/html2/HTMLAreaElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLAreaElement.lo
- -rm -f org/w3c/dom/html2/HTMLBRElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLBRElement.lo
- -rm -f org/w3c/dom/html2/HTMLBaseElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLBaseElement.lo
- -rm -f org/w3c/dom/html2/HTMLBaseFontElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLBaseFontElement.lo
- -rm -f org/w3c/dom/html2/HTMLBodyElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLBodyElement.lo
- -rm -f org/w3c/dom/html2/HTMLButtonElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLButtonElement.lo
- -rm -f org/w3c/dom/html2/HTMLCollection.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLCollection.lo
- -rm -f org/w3c/dom/html2/HTMLDListElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLDListElement.lo
- -rm -f org/w3c/dom/html2/HTMLDirectoryElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLDirectoryElement.lo
- -rm -f org/w3c/dom/html2/HTMLDivElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLDivElement.lo
- -rm -f org/w3c/dom/html2/HTMLDocument.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLDocument.lo
- -rm -f org/w3c/dom/html2/HTMLElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLElement.lo
- -rm -f org/w3c/dom/html2/HTMLFieldSetElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLFieldSetElement.lo
- -rm -f org/w3c/dom/html2/HTMLFontElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLFontElement.lo
- -rm -f org/w3c/dom/html2/HTMLFormElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLFormElement.lo
- -rm -f org/w3c/dom/html2/HTMLFrameElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLFrameElement.lo
- -rm -f org/w3c/dom/html2/HTMLFrameSetElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLFrameSetElement.lo
- -rm -f org/w3c/dom/html2/HTMLHRElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLHRElement.lo
- -rm -f org/w3c/dom/html2/HTMLHeadElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLHeadElement.lo
- -rm -f org/w3c/dom/html2/HTMLHeadingElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLHeadingElement.lo
- -rm -f org/w3c/dom/html2/HTMLHtmlElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLHtmlElement.lo
- -rm -f org/w3c/dom/html2/HTMLIFrameElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLIFrameElement.lo
- -rm -f org/w3c/dom/html2/HTMLImageElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLImageElement.lo
- -rm -f org/w3c/dom/html2/HTMLInputElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLInputElement.lo
- -rm -f org/w3c/dom/html2/HTMLIsIndexElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLIsIndexElement.lo
- -rm -f org/w3c/dom/html2/HTMLLIElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLLIElement.lo
- -rm -f org/w3c/dom/html2/HTMLLabelElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLLabelElement.lo
- -rm -f org/w3c/dom/html2/HTMLLegendElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLLegendElement.lo
- -rm -f org/w3c/dom/html2/HTMLLinkElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLLinkElement.lo
- -rm -f org/w3c/dom/html2/HTMLMapElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLMapElement.lo
- -rm -f org/w3c/dom/html2/HTMLMenuElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLMenuElement.lo
- -rm -f org/w3c/dom/html2/HTMLMetaElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLMetaElement.lo
- -rm -f org/w3c/dom/html2/HTMLModElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLModElement.lo
- -rm -f org/w3c/dom/html2/HTMLOListElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLOListElement.lo
- -rm -f org/w3c/dom/html2/HTMLObjectElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLObjectElement.lo
- -rm -f org/w3c/dom/html2/HTMLOptGroupElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLOptGroupElement.lo
- -rm -f org/w3c/dom/html2/HTMLOptionElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLOptionElement.lo
- -rm -f org/w3c/dom/html2/HTMLOptionsCollection.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLOptionsCollection.lo
- -rm -f org/w3c/dom/html2/HTMLParagraphElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLParagraphElement.lo
- -rm -f org/w3c/dom/html2/HTMLParamElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLParamElement.lo
- -rm -f org/w3c/dom/html2/HTMLPreElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLPreElement.lo
- -rm -f org/w3c/dom/html2/HTMLQuoteElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLQuoteElement.lo
- -rm -f org/w3c/dom/html2/HTMLScriptElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLScriptElement.lo
- -rm -f org/w3c/dom/html2/HTMLSelectElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLSelectElement.lo
- -rm -f org/w3c/dom/html2/HTMLStyleElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLStyleElement.lo
- -rm -f org/w3c/dom/html2/HTMLTableCaptionElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTableCaptionElement.lo
- -rm -f org/w3c/dom/html2/HTMLTableCellElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTableCellElement.lo
- -rm -f org/w3c/dom/html2/HTMLTableColElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTableColElement.lo
- -rm -f org/w3c/dom/html2/HTMLTableElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTableElement.lo
- -rm -f org/w3c/dom/html2/HTMLTableRowElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTableRowElement.lo
- -rm -f org/w3c/dom/html2/HTMLTableSectionElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTableSectionElement.lo
- -rm -f org/w3c/dom/html2/HTMLTextAreaElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTextAreaElement.lo
- -rm -f org/w3c/dom/html2/HTMLTitleElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLTitleElement.lo
- -rm -f org/w3c/dom/html2/HTMLUListElement.$(OBJEXT)
- -rm -f org/w3c/dom/html2/HTMLUListElement.lo
- -rm -f org/w3c/dom/ls/DOMImplementationLS.$(OBJEXT)
- -rm -f org/w3c/dom/ls/DOMImplementationLS.lo
- -rm -f org/w3c/dom/ls/LSException.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSException.lo
- -rm -f org/w3c/dom/ls/LSInput.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSInput.lo
- -rm -f org/w3c/dom/ls/LSLoadEvent.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSLoadEvent.lo
- -rm -f org/w3c/dom/ls/LSOutput.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSOutput.lo
- -rm -f org/w3c/dom/ls/LSParser.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSParser.lo
- -rm -f org/w3c/dom/ls/LSParserFilter.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSParserFilter.lo
- -rm -f org/w3c/dom/ls/LSProgressEvent.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSProgressEvent.lo
- -rm -f org/w3c/dom/ls/LSResourceResolver.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSResourceResolver.lo
- -rm -f org/w3c/dom/ls/LSSerializer.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSSerializer.lo
- -rm -f org/w3c/dom/ls/LSSerializerFilter.$(OBJEXT)
- -rm -f org/w3c/dom/ls/LSSerializerFilter.lo
- -rm -f org/w3c/dom/ranges/DocumentRange.$(OBJEXT)
- -rm -f org/w3c/dom/ranges/DocumentRange.lo
- -rm -f org/w3c/dom/ranges/Range.$(OBJEXT)
- -rm -f org/w3c/dom/ranges/Range.lo
- -rm -f org/w3c/dom/ranges/RangeException.$(OBJEXT)
- -rm -f org/w3c/dom/ranges/RangeException.lo
- -rm -f org/w3c/dom/stylesheets/DocumentStyle.$(OBJEXT)
- -rm -f org/w3c/dom/stylesheets/DocumentStyle.lo
- -rm -f org/w3c/dom/stylesheets/LinkStyle.$(OBJEXT)
- -rm -f org/w3c/dom/stylesheets/LinkStyle.lo
- -rm -f org/w3c/dom/stylesheets/MediaList.$(OBJEXT)
- -rm -f org/w3c/dom/stylesheets/MediaList.lo
- -rm -f org/w3c/dom/stylesheets/StyleSheet.$(OBJEXT)
- -rm -f org/w3c/dom/stylesheets/StyleSheet.lo
- -rm -f org/w3c/dom/stylesheets/StyleSheetList.$(OBJEXT)
- -rm -f org/w3c/dom/stylesheets/StyleSheetList.lo
- -rm -f org/w3c/dom/traversal/DocumentTraversal.$(OBJEXT)
- -rm -f org/w3c/dom/traversal/DocumentTraversal.lo
- -rm -f org/w3c/dom/traversal/NodeFilter.$(OBJEXT)
- -rm -f org/w3c/dom/traversal/NodeFilter.lo
- -rm -f org/w3c/dom/traversal/NodeIterator.$(OBJEXT)
- -rm -f org/w3c/dom/traversal/NodeIterator.lo
- -rm -f org/w3c/dom/traversal/TreeWalker.$(OBJEXT)
- -rm -f org/w3c/dom/traversal/TreeWalker.lo
- -rm -f org/w3c/dom/views/AbstractView.$(OBJEXT)
- -rm -f org/w3c/dom/views/AbstractView.lo
- -rm -f org/w3c/dom/views/DocumentView.$(OBJEXT)
- -rm -f org/w3c/dom/views/DocumentView.lo
- -rm -f org/w3c/dom/xpath/XPathEvaluator.$(OBJEXT)
- -rm -f org/w3c/dom/xpath/XPathEvaluator.lo
- -rm -f org/w3c/dom/xpath/XPathException.$(OBJEXT)
- -rm -f org/w3c/dom/xpath/XPathException.lo
- -rm -f org/w3c/dom/xpath/XPathExpression.$(OBJEXT)
- -rm -f org/w3c/dom/xpath/XPathExpression.lo
- -rm -f org/w3c/dom/xpath/XPathNSResolver.$(OBJEXT)
- -rm -f org/w3c/dom/xpath/XPathNSResolver.lo
- -rm -f org/w3c/dom/xpath/XPathNamespace.$(OBJEXT)
- -rm -f org/w3c/dom/xpath/XPathNamespace.lo
- -rm -f org/w3c/dom/xpath/XPathResult.$(OBJEXT)
- -rm -f org/w3c/dom/xpath/XPathResult.lo
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Attr.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/CDATASection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/CharacterData.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Comment.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMConfiguration.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMError.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMErrorHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMImplementation.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMImplementationList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMImplementationSource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMLocator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DOMStringList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Document.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DocumentFragment.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/DocumentType.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Element.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Entity.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/EntityReference.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/NameList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/NamedNodeMap.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Node.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/NodeList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Notation.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/ProcessingInstruction.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/Text.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/TypeInfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/$(DEPDIR)/UserDataHandler.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/bootstrap/$(DEPDIR)/DOMImplementationRegistry.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSS2Properties.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSCharsetRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSFontFaceRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSImportRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSMediaRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSPageRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSPrimitiveValue.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSRuleList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSStyleDeclaration.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSStyleRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSStyleSheet.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSUnknownRule.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSValue.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/CSSValueList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/Counter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/DOMImplementationCSS.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/DocumentCSS.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/ElementCSSInlineStyle.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/RGBColor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/Rect.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/css/$(DEPDIR)/ViewCSS.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/DocumentEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/Event.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/EventException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/EventListener.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/EventTarget.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/MouseEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/MutationEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/events/$(DEPDIR)/UIEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLAnchorElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLAppletElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLAreaElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLBRElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLBaseElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLBaseFontElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLBodyElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLButtonElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLCollection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLDListElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLDirectoryElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLDivElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLDocument.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLFieldSetElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLFontElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLFormElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLFrameElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLFrameSetElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLHRElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLHeadElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLHeadingElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLHtmlElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLIFrameElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLImageElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLInputElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLIsIndexElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLLIElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLLabelElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLLegendElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLLinkElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLMapElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLMenuElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLMetaElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLModElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLOListElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLObjectElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLOptGroupElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLOptionElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLOptionsCollection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLParagraphElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLParamElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLPreElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLQuoteElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLScriptElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLSelectElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLStyleElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTableCaptionElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTableCellElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTableColElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTableElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTableRowElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTableSectionElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTextAreaElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLTitleElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/html2/$(DEPDIR)/HTMLUListElement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/DOMImplementationLS.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSInput.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSLoadEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSOutput.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSParser.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSParserFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSProgressEvent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSResourceResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSSerializer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ls/$(DEPDIR)/LSSerializerFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ranges/$(DEPDIR)/DocumentRange.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ranges/$(DEPDIR)/Range.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/ranges/$(DEPDIR)/RangeException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/stylesheets/$(DEPDIR)/DocumentStyle.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/stylesheets/$(DEPDIR)/LinkStyle.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/stylesheets/$(DEPDIR)/MediaList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/stylesheets/$(DEPDIR)/StyleSheet.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/stylesheets/$(DEPDIR)/StyleSheetList.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/traversal/$(DEPDIR)/DocumentTraversal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/traversal/$(DEPDIR)/NodeFilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/traversal/$(DEPDIR)/NodeIterator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/traversal/$(DEPDIR)/TreeWalker.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/views/$(DEPDIR)/AbstractView.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/views/$(DEPDIR)/DocumentView.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/xpath/$(DEPDIR)/XPathEvaluator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/xpath/$(DEPDIR)/XPathException.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/xpath/$(DEPDIR)/XPathExpression.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/xpath/$(DEPDIR)/XPathNSResolver.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/xpath/$(DEPDIR)/XPathNamespace.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@org/w3c/dom/xpath/$(DEPDIR)/XPathResult.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw3c_gcj_la-w3c.Plo@am__quote@
-.java.o:
+.jar.o:
@am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
@am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@@ -1512,7 +524,7 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ $<
-.java.obj:
+.jar.obj:
@am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \
@am__fastdepGCJ_TRUE@ if $(GCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@@ -1520,7 +532,7 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-.java.lo:
+.jar.lo:
@am__fastdepGCJ_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
@am__fastdepGCJ_TRUE@ if $(LTGCJCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepGCJ_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi
@@ -1528,22 +540,18 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepGCJ_FALSE@ $(LTGCJCOMPILE) -c -o $@ $<
+libw3c_gcj_la-w3c.lo: w3c.jar
+@am__fastdepGCJ_TRUE@ if $(LIBTOOL) --mode=compile $(GCJ) $(libw3c_gcj_la_GCJFLAGS) $(GCJFLAGS) -MT libw3c_gcj_la-w3c.lo -MD -MP -MF "$(DEPDIR)/libw3c_gcj_la-w3c.Tpo" -c -o libw3c_gcj_la-w3c.lo `test -f 'w3c.jar' || echo '$(srcdir)/'`w3c.jar; \
+@am__fastdepGCJ_TRUE@ then mv -f "$(DEPDIR)/libw3c_gcj_la-w3c.Tpo" "$(DEPDIR)/libw3c_gcj_la-w3c.Plo"; else rm -f "$(DEPDIR)/libw3c_gcj_la-w3c.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='w3c.jar' object='libw3c_gcj_la-w3c.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepGCJ_FALSE@ $(LIBTOOL) --mode=compile $(GCJ) $(libw3c_gcj_la_GCJFLAGS) $(GCJFLAGS) -c -o libw3c_gcj_la-w3c.lo `test -f 'w3c.jar' || echo '$(srcdir)/'`w3c.jar
+
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
- -rm -rf org/w3c/dom/.libs org/w3c/dom/_libs
- -rm -rf org/w3c/dom/bootstrap/.libs org/w3c/dom/bootstrap/_libs
- -rm -rf org/w3c/dom/css/.libs org/w3c/dom/css/_libs
- -rm -rf org/w3c/dom/events/.libs org/w3c/dom/events/_libs
- -rm -rf org/w3c/dom/html2/.libs org/w3c/dom/html2/_libs
- -rm -rf org/w3c/dom/ls/.libs org/w3c/dom/ls/_libs
- -rm -rf org/w3c/dom/ranges/.libs org/w3c/dom/ranges/_libs
- -rm -rf org/w3c/dom/stylesheets/.libs org/w3c/dom/stylesheets/_libs
- -rm -rf org/w3c/dom/traversal/.libs org/w3c/dom/traversal/_libs
- -rm -rf org/w3c/dom/views/.libs org/w3c/dom/views/_libs
- -rm -rf org/w3c/dom/xpath/.libs org/w3c/dom/xpath/_libs
distclean-libtool:
-rm -f libtool
@@ -1650,28 +658,6 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -rm -f org/w3c/dom/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/$(am__dirstamp)
- -rm -f org/w3c/dom/bootstrap/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/bootstrap/$(am__dirstamp)
- -rm -f org/w3c/dom/css/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/css/$(am__dirstamp)
- -rm -f org/w3c/dom/events/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/events/$(am__dirstamp)
- -rm -f org/w3c/dom/html2/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/html2/$(am__dirstamp)
- -rm -f org/w3c/dom/ls/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/ls/$(am__dirstamp)
- -rm -f org/w3c/dom/ranges/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/ranges/$(am__dirstamp)
- -rm -f org/w3c/dom/stylesheets/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/stylesheets/$(am__dirstamp)
- -rm -f org/w3c/dom/traversal/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/traversal/$(am__dirstamp)
- -rm -f org/w3c/dom/views/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/views/$(am__dirstamp)
- -rm -f org/w3c/dom/xpath/$(DEPDIR)/$(am__dirstamp)
- -rm -f org/w3c/dom/xpath/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -1683,7 +669,7 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
- -rm -rf org/w3c/dom/$(DEPDIR) org/w3c/dom/bootstrap/$(DEPDIR) org/w3c/dom/css/$(DEPDIR) org/w3c/dom/events/$(DEPDIR) org/w3c/dom/html2/$(DEPDIR) org/w3c/dom/ls/$(DEPDIR) org/w3c/dom/ranges/$(DEPDIR) org/w3c/dom/stylesheets/$(DEPDIR) org/w3c/dom/traversal/$(DEPDIR) org/w3c/dom/views/$(DEPDIR) org/w3c/dom/xpath/$(DEPDIR)
+ -rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
@@ -1709,7 +695,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf org/w3c/dom/$(DEPDIR) org/w3c/dom/bootstrap/$(DEPDIR) org/w3c/dom/css/$(DEPDIR) org/w3c/dom/events/$(DEPDIR) org/w3c/dom/html2/$(DEPDIR) org/w3c/dom/ls/$(DEPDIR) org/w3c/dom/ranges/$(DEPDIR) org/w3c/dom/stylesheets/$(DEPDIR) org/w3c/dom/traversal/$(DEPDIR) org/w3c/dom/views/$(DEPDIR) org/w3c/dom/xpath/$(DEPDIR)
+ -rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -1741,14 +727,17 @@ uninstall-am: uninstall-info-am
uninstall-am uninstall-info-am
-classes.stamp: $(libw3c_convenience_la_SOURCES)
+w3c.jar: classes.stamp
+ find org -name '*.class' -print | $(ZIP) -cfME@ $@
+
+classes.stamp: $(source_files)
here=`pwd`; cd $(srcdir); \
- $(GCJ_WITH_FLAGS) -C -d $$here $(libw3c_convenience_la_SOURCES)
+ $(GCJ_WITH_FLAGS) -C -d $$here $(source_files)
echo > classes.stamp
mostlyclean-local:
-find . -name '*.class' | xargs rm
- -rm classes.stamp
+ -rm classes.stamp w3c.jar
# 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/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index dc528b02c46..590b42f9560 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -92,7 +92,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -137,6 +136,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
diff --git a/libjava/gcj/cni.h b/libjava/gcj/cni.h
index ee39738d228..b94260b8465 100644
--- a/libjava/gcj/cni.h
+++ b/libjava/gcj/cni.h
@@ -17,6 +17,7 @@ details. */
#include <java/lang/Class.h>
#include <gcj/array.h>
+#include <gcj/javaprims.h>
#include <string.h>
@@ -107,14 +108,23 @@ JvMalloc (jsize size)
return _Jv_Malloc (size);
}
+extern inline void *
+JvRealloc (void *ptr, jsize size)
+{
+ return _Jv_Realloc (ptr, size);
+}
+
extern inline void
JvFree (void *ptr)
{
return _Jv_Free (ptr);
}
+typedef struct _Jv_VMOption JvVMOption;
+typedef struct _Jv_VMInitArgs JvVMInitArgs;
+
extern inline jint
-JvCreateJavaVM (void* vm_args)
+JvCreateJavaVM (JvVMInitArgs* vm_args)
{
return _Jv_CreateJavaVM (vm_args);
}
diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h
index 53c26fe1a8e..e972f7ba518 100644
--- a/libjava/gcj/javaprims.h
+++ b/libjava/gcj/javaprims.h
@@ -487,7 +487,30 @@ extern "C" jsize _Jv_GetStringUTFLength (jstring);
extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
extern "C" jint _Jv_hashUtf8String (char*, int);
-extern jint _Jv_CreateJavaVM (void* /*vm_args*/);
+struct _Jv_VMOption
+{
+ // a VM initialization option
+ char* optionString;
+ // extra information associated with this option
+ void* extraInfo;
+};
+
+struct _Jv_VMInitArgs
+{
+ // for compatibility with JavaVMInitArgs
+ jint version;
+
+ // number of VM initialization options
+ jint nOptions;
+
+ // an array of VM initialization options
+ struct _Jv_VMOption* options;
+
+ // true if the option parser should ignore unrecognized options
+ jboolean ignoreUnrecognized;
+};
+
+extern jint _Jv_CreateJavaVM (struct _Jv_VMInitArgs*);
void
_Jv_ThreadRun (java::lang::Thread* thread);
diff --git a/libjava/gcj/method.h b/libjava/gcj/method.h
index d4246e41ef8..f97f865f920 100644
--- a/libjava/gcj/method.h
+++ b/libjava/gcj/method.h
@@ -12,6 +12,8 @@ details. */
#define __GCJ_METHOD_H__
#include <java/lang/Class.h>
+#include <java/lang/reflect/Constructor.h>
+#include <java/lang/reflect/Method.h>
extern inline jmethodID
_Jv_FromReflectedMethod (java::lang::reflect::Method *method)
diff --git a/libjava/gij.cc b/libjava/gij.cc
index 64457857a13..6eee6b5a40a 100644
--- a/libjava/gij.cc
+++ b/libjava/gij.cc
@@ -1,26 +1,20 @@
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
+/* Copyright (C) 1999-2005 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. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
+ 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 <gcj/cni.h>
-#include <java-props.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <java/lang/System.h>
-#include <java/util/Properties.h>
-
static void
help ()
{
@@ -46,105 +40,262 @@ help ()
static void
version ()
{
+ printf ("java version " JV_VERSION "\n");
printf ("gij (GNU libgcj) version %s\n\n", __VERSION__);
- printf ("Copyright (C) 2002 Free Software Foundation, Inc.\n");
+ printf ("Copyright (C) 2005 Free Software Foundation, Inc.\n");
printf ("This is free software; see the source for copying conditions. There is NO\n");
printf ("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n");
}
+static void
+nonstandard_opts_help ()
+{
+ printf (" -Xms<size> set initial heap size\n");
+ printf (" -Xmx<size> set maximum heap size\n");
+ exit (0);
+}
+
+static void
+add_option (JvVMInitArgs& vm_args, char const* option, void const* extra)
+{
+ vm_args.options =
+ (JvVMOption*) JvRealloc (vm_args.options,
+ (vm_args.nOptions + 1) * sizeof (JvVMOption));
+
+ vm_args.options[vm_args.nOptions].optionString = const_cast<char*> (option);
+ vm_args.options[vm_args.nOptions].extraInfo = const_cast<void*> (extra);
+ ++vm_args.nOptions;
+}
+
int
-main (int argc, const char **argv)
+main (int argc, char const** argv)
{
- /* We rearrange ARGV so that all the -D options appear near the
- beginning. */
- int last_D_option = 0;
+ JvVMInitArgs vm_args;
bool jar_mode = false;
+ vm_args.options = NULL;
+ vm_args.nOptions = 0;
+ vm_args.ignoreUnrecognized = true;
+
+ // Command-line options always override the CLASSPATH environment
+ // variable.
+ char *classpath = getenv("CLASSPATH");
+
+ if (classpath)
+ {
+ char* darg = (char*) JvMalloc (strlen (classpath)
+ + sizeof ("-Djava.class.path="));
+ sprintf (darg, "-Djava.class.path=%s", classpath);
+ add_option (vm_args, darg, NULL);
+ }
+
+ // Handle arguments to the java command. Store in vm_args arguments
+ // handled by the invocation API.
int i;
for (i = 1; i < argc; ++i)
{
- const char *arg = argv[i];
+ char* arg = const_cast<char*> (argv[i]);
- /* A non-option stops processing. */
+ // A non-option stops processing.
if (arg[0] != '-')
break;
- /* A "--" stops processing. */
+
+ // A "--" stops processing.
if (! strcmp (arg, "--"))
{
++i;
break;
}
- if (! strncmp (arg, "-D", 2))
- {
- argv[last_D_option++] = arg + 2;
- continue;
- }
-
- if (! strcmp (arg, "-jar"))
- {
- jar_mode = true;
- continue;
- }
-
- /* Allow both single or double hyphen for all remaining
- options. */
+ // Allow both single or double hyphen for all options.
if (arg[1] == '-')
++arg;
- if (! strcmp (arg, "-help") || ! strcmp (arg, "-?"))
- help ();
- else if (! strcmp (arg, "-version"))
- {
- version ();
- exit (0);
- }
- else if (! strcmp (arg, "-showversion"))
- version ();
- /* FIXME: use getopt and avoid the ugliness here.
- We at least need to handle the argument in a better way. */
- else if (! strncmp (arg, "-ms=", 4))
- _Jv_SetInitialHeapSize (arg + 4);
- else if (! strcmp (arg, "-ms"))
- {
- if (i >= argc - 1)
- {
+ // Ignore JIT options
+ if (! strcmp (arg, "-client"))
+ continue;
+ else if (! strcmp (arg, "-server"))
+ continue;
+ else if (! strcmp (arg, "-hotspot"))
+ continue;
+ else if (! strcmp (arg, "-jrockit"))
+ continue;
+ // Ignore JVM Tool Interface options
+ else if (! strncmp (arg, "-agentlib:", sizeof ("-agentlib:") - 1))
+ continue;
+ else if (! strncmp (arg, "-agentpath:", sizeof ("-agentpath:") - 1))
+ continue;
+ else if (! strcmp (arg, "-classpath") || ! strcmp (arg, "-cp"))
+ {
+ if (i >= argc - 1)
+ {
no_arg:
fprintf (stderr, "gij: option requires an argument -- `%s'\n",
argv[i]);
fprintf (stderr, "Try `gij --help' for more information.\n");
exit (1);
- }
- _Jv_SetInitialHeapSize (argv[++i]);
+ }
+
+ // Sun seems to translate the -classpath option into
+ // -Djava.class.path because if both -classpath and
+ // -Djava.class.path are specified on the java command line,
+ // the last one always wins.
+ char* darg = (char*) JvMalloc (strlen (argv[++i])
+ + sizeof ("-Djava.class.path="));
+ sprintf (darg, "-Djava.class.path=%s", argv[i]);
+ add_option (vm_args, darg, NULL);
+ }
+ else if (! strcmp (arg, "-debug"))
+ {
+ char* xarg = strdup ("-Xdebug");
+ add_option (vm_args, xarg, NULL);
+ }
+ else if (! strncmp (arg, "-D", sizeof ("-D") - 1))
+ add_option (vm_args, arg, NULL);
+ // Ignore 32/64-bit JIT options
+ else if (! strcmp (arg, "-d32") || ! strcmp (arg, "-d64"))
+ continue;
+ else if (! strcmp (arg, "-enableassertions") || ! strcmp (arg, "-ea"))
+ {
+ if (i >= argc - 1)
+ goto no_arg;
+ // FIXME: hook up assertion support
+ ++i;
+ continue;
+ }
+ else if (! strcmp (arg, "-disableassertions") || ! strcmp (arg, "-da"))
+ {
+ if (i >= argc - 1)
+ goto no_arg;
+ // FIXME
+ ++i;
+ continue;
+ }
+ else if (! strcmp (arg, "-enablesystemassertions")
+ || ! strcmp (arg, "-esa"))
+ {
+ // FIXME: hook up system assertion support
+ continue;
+ }
+ else if (! strcmp (arg, "-disablesystemassertions")
+ || ! strcmp (arg, "-dsa"))
+ {
+ // FIXME
+ continue;
+ }
+ else if (! strcmp (arg, "-jar"))
+ {
+ jar_mode = true;
+ continue;
+ }
+ // Ignore java.lang.instrument option
+ else if (! strncmp (arg, "-javaagent:", sizeof ("-javaagent:") - 1))
+ continue;
+ else if (! strcmp (arg, "-noclassgc"))
+ {
+ char* xarg = strdup ("-Xnoclassgc");
+ add_option (vm_args, xarg, NULL);
+ }
+ // -ms=n
+ else if (! strncmp (arg, "-ms=", sizeof ("-ms=") - 1))
+ {
+ arg[1] = 'X';
+ arg[2] = 'm';
+ arg[3] = 's';
+ add_option (vm_args, arg, NULL);
+ }
+ // -ms n
+ else if (! strcmp (arg, "-ms"))
+ {
+ if (i >= argc - 1)
+ goto no_arg;
+
+ char* xarg = (char*) JvMalloc (strlen (argv[++i])
+ + sizeof ("-Xms"));
+ sprintf (xarg, "-Xms%s", argv[i]);
+ add_option (vm_args, xarg, NULL);
+ }
+ // -msn
+ else if (! strncmp (arg, "-ms", sizeof ("-ms") - 1))
+ {
+ char* xarg = (char*) JvMalloc (strlen (arg) + sizeof ("X"));
+ sprintf (xarg, "-Xms%s", arg + sizeof ("-Xms") - 1);
+ add_option (vm_args, xarg, NULL);
}
- else if (! strncmp (arg, "-mx=", 4))
- _Jv_SetMaximumHeapSize (arg + 4);
+ // -mx=n
+ else if (! strncmp (arg, "-mx=", sizeof ("-mx=") - 1))
+ {
+ arg[1] = 'X';
+ arg[2] = 'm';
+ arg[3] = 'x';
+ add_option (vm_args, arg, NULL);
+ }
+ // -mx n
else if (! strcmp (arg, "-mx"))
{
if (i >= argc - 1)
- goto no_arg;
- _Jv_SetMaximumHeapSize (argv[++i]);
+ goto no_arg;
+
+ char* xarg = (char*) JvMalloc (strlen (argv[++i])
+ + sizeof ("-Xmx"));
+ sprintf (xarg, "-Xmx%s", argv[i]);
+ add_option (vm_args, xarg, NULL);
+ }
+ // -mxn
+ else if (! strncmp (arg, "-mx", sizeof ("-mx") - 1))
+ {
+ char* xarg = (char*) JvMalloc (strlen (arg) + sizeof ("X"));
+ sprintf (xarg, "-Xmx%s", arg + sizeof ("-Xmx") - 1);
+ add_option (vm_args, xarg, NULL);
}
- else if (! strcmp (arg, "-cp") || ! strcmp (arg, "-classpath"))
+ // -ss=n
+ else if (! strncmp (arg, "-ss=", sizeof ("-ss=") - 1))
+ {
+ arg[1] = 'X';
+ arg[2] = 's';
+ arg[3] = 's';
+ add_option (vm_args, arg, NULL);
+ }
+ // -ss n
+ else if (! strcmp (arg, "-ss"))
{
if (i >= argc - 1)
- goto no_arg;
- // We set _Jv_Jar_Class_Path. If the user specified `-jar'
- // then the jar code will override this. This is the
- // correct behavior.
- _Jv_Jar_Class_Path = argv[++i];
+ goto no_arg;
+
+ char* xarg = (char*) JvMalloc (strlen (argv[++i])
+ + sizeof ("-Xss"));
+ sprintf (xarg, "-Xss%s", argv[i]);
+ add_option (vm_args, xarg, NULL);
}
- else if (! strcmp (arg, "-verbose") || ! strcmp (arg, "-verbose:class"))
- gcj::verbose_class_flag = true;
- else if (arg[1] == 'X')
+ // -ssn
+ else if (! strncmp (arg, "-ss", sizeof ("-ss") - 1))
{
- if (arg[2] == '\0')
- {
- printf ("gij: currently no -X options are recognized\n");
- exit (0);
- }
- /* Ignore other -X options. */
+ char* xarg = (char*) JvMalloc (strlen (arg) + sizeof ("X"));
+ sprintf (xarg, "-Xss%s", arg + sizeof ("-Xss") - 1);
+ add_option (vm_args, xarg, NULL);
}
+ // This handles all the option variants that begin with
+ // -verbose.
+ else if (! strncmp (arg, "-verbose", 8))
+ add_option (vm_args, arg, NULL);
+ else if (! strcmp (arg, "-version"))
+ {
+ version ();
+ exit (0);
+ }
+ else if (! strcmp (arg, "-fullversion"))
+ {
+ printf ("java full version \"gcj-" JV_VERSION "\"\n");
+ exit (0);
+ }
+ else if (! strcmp (arg, "-showversion"))
+ version ();
+ else if (! strcmp (arg, "-help") || ! strcmp (arg, "-?"))
+ help ();
+ else if (! strcmp (arg, "-X"))
+ nonstandard_opts_help ();
+ else if (! strncmp (arg, "-X", 2))
+ add_option (vm_args, arg, NULL);
else
{
fprintf (stderr, "gij: unrecognized option -- `%s'\n", argv[i]);
@@ -153,9 +304,6 @@ main (int argc, const char **argv)
}
}
- argv[last_D_option] = NULL;
- _Jv_Compiler_Properties = argv;
-
if (argc - i < 1)
{
fprintf (stderr, "Usage: gij [OPTION] ... CLASS [ARGS] ...\n");
@@ -166,5 +314,16 @@ main (int argc, const char **argv)
exit (1);
}
- _Jv_RunMain (NULL, argv[i], argc - i, argv + i, jar_mode);
+ // -jar mode overrides all other modes of specifying class path:
+ // -CLASSPATH, -Djava.class.path, -classpath and -cp.
+ if (jar_mode)
+ {
+ char* darg = (char*) JvMalloc (strlen (argv[i])
+ + sizeof ("-Djava.class.path="));
+ sprintf (darg, "-Djava.class.path=%s", argv[i]);
+ add_option (vm_args, darg, NULL);
+ }
+
+ _Jv_RunMain (&vm_args, NULL, argv[i], argc - i,
+ (char const**) (argv + i), jar_mode);
}
diff --git a/libjava/gnu/awt/xlib/XEventLoop.java b/libjava/gnu/awt/xlib/XEventLoop.java
index 66878185b51..8f7828770e8 100644
--- a/libjava/gnu/awt/xlib/XEventLoop.java
+++ b/libjava/gnu/awt/xlib/XEventLoop.java
@@ -21,12 +21,11 @@ import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.util.Vector;
-public class XEventLoop implements Runnable
+public class XEventLoop
{
Display display;
EventQueue queue;
XAnyEvent anyEvent;
- Thread eventLoopThread;
LightweightRedirector lightweightRedirector = new LightweightRedirector();
@@ -36,44 +35,40 @@ public class XEventLoop implements Runnable
this.queue = queue;
anyEvent = new XAnyEvent(display);
- eventLoopThread = new Thread(this, "AWT thread for XEventLoop");
- eventLoopThread.start();
}
- public void run()
+ void interrupt()
{
- while (true)
- postNextEvent();
+ anyEvent.interrupt();
}
- void postNextEvent()
+ void postNextEvent(boolean block)
{
- AWTEvent evt = getNextEvent();
- queue.postEvent(evt);
+ AWTEvent evt = getNextEvent(block);
+ if (evt != null)
+ queue.postEvent(evt);
}
/** get next event. Will block until events become available. */
- public AWTEvent getNextEvent()
+ public AWTEvent getNextEvent(boolean block)
{
// ASSERT:
if (isIdle())
throw new Error("should not be idle");
AWTEvent event = null;
- while (event == null)
+ if (loadNextEvent(block))
{
- loadNextEvent();
- event = createEvent();
- }
-
- event = lightweightRedirector.redirect(event);
-
+ event = createEvent();
+ event = lightweightRedirector.redirect(event);
+ }
return event;
}
- void loadNextEvent()
+ boolean loadNextEvent(boolean block)
{
+ boolean gotEvent = false;
try
{
setIdle(true);
@@ -100,7 +95,7 @@ public class XEventLoop implements Runnable
of events. */
//display.flush(); // implicit?
- anyEvent.loadNext();
+ gotEvent = anyEvent.loadNext(block);
}
catch (RuntimeException re)
{
@@ -110,6 +105,7 @@ public class XEventLoop implements Runnable
{
setIdle(false);
}
+ return gotEvent;
}
/**
diff --git a/libjava/gnu/awt/xlib/XFramePeer.java b/libjava/gnu/awt/xlib/XFramePeer.java
index ec159078aba..f3c655ecf80 100644
--- a/libjava/gnu/awt/xlib/XFramePeer.java
+++ b/libjava/gnu/awt/xlib/XFramePeer.java
@@ -78,7 +78,7 @@ public class XFramePeer extends XCanvasPeer implements FramePeer
bounds. */
public void setBounds(int x, int y, int width, int height)
{
- if (Thread.currentThread() == getXToolkit().eventLoop.eventLoopThread)
+ if (EventQueue.isDispatchThread())
return;
super.setBounds(x, y, width, height);
diff --git a/libjava/gnu/awt/xlib/XToolkit.java b/libjava/gnu/awt/xlib/XToolkit.java
index a1d2440eef5..1e937c23867 100644
--- a/libjava/gnu/awt/xlib/XToolkit.java
+++ b/libjava/gnu/awt/xlib/XToolkit.java
@@ -438,5 +438,29 @@ public class XToolkit extends ClasspathToolkit
{
throw new java.lang.UnsupportedOperationException ();
}
-
+
+ public RobotPeer createRobot (GraphicsDevice screen) throws AWTException
+ {
+ throw new java.lang.UnsupportedOperationException ();
+ }
+
+ boolean interrupted;
+
+ public boolean nativeQueueEmpty()
+ {
+ return eventLoop.isIdle();
+ }
+
+ public void wakeNativeQueue()
+ {
+ interrupted = true;
+ eventLoop.interrupt();
+ }
+
+ public void iterateNativeQueue(java.awt.EventQueue locked, boolean block)
+ {
+ interrupted = false;
+ while (!interrupted)
+ eventLoop.postNextEvent(block);
+ };
}
diff --git a/libjava/gnu/gcj/convert/Convert.java b/libjava/gnu/gcj/convert/Convert.java
index 3b2add6ef42..5d4a314d609 100644
--- a/libjava/gnu/gcj/convert/Convert.java
+++ b/libjava/gnu/gcj/convert/Convert.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2002 Free Software Foundation
+/* Copyright (C) 1999, 2002, 2005 Free Software Foundation
This file is part of libgcj.
@@ -45,7 +45,7 @@ public class Convert
+ ") "
+ System.getProperty("java.vm.version"));
System.out.println();
- System.out.println("Copyright (C) 2002 Free Software Foundation, Inc.");
+ System.out.println("Copyright (C) 2005 Free Software Foundation, Inc.");
System.out.println("This is free software; see the source for copying conditions. There is NO");
System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
System.exit(0);
diff --git a/libjava/gnu/gcj/runtime/BootClassLoader.java b/libjava/gnu/gcj/runtime/BootClassLoader.java
new file mode 100644
index 00000000000..d2091720a4f
--- /dev/null
+++ b/libjava/gnu/gcj/runtime/BootClassLoader.java
@@ -0,0 +1,71 @@
+/* Copyright (C) 2005 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. */
+
+package gnu.gcj.runtime;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Enumeration;
+
+/**
+ * This is a helper for the bootstrap class loader. It is a
+ * URLClassLoader so that we can read a class path and re-use all the
+ * existing code for finding classes, extracting them from jars, etc.
+ * However, it is never called the way that an ordinary ClassLoader is
+ * called. For instance, loadClass() is never used.
+ */
+public final class BootClassLoader extends HelperClassLoader
+{
+ BootClassLoader(String libdir)
+ {
+ addDirectoriesFromProperty("java.endorsed.dirs");
+ addDirectoriesFromProperty("gnu.gcj.runtime.endorsed.dirs");
+
+ try
+ {
+ // Add core:/ to the end so any resources compiled into this
+ // executable may be found.
+ addURL(new URL("core", "", -1, "/"));
+ }
+ catch (java.net.MalformedURLException x)
+ {
+ // This should never happen.
+ throw new RuntimeException(x);
+ }
+ }
+
+ public Class bootLoadClass(String name)
+ throws ClassNotFoundException
+ {
+ Class c = findLoadedClass(name);
+ if (c == null)
+ {
+ try
+ {
+ // We could hack URLClassLoader to make this more
+ // efficient, if it mattered.
+ c = findClass(name);
+ }
+ catch (ClassNotFoundException _)
+ {
+ c = null;
+ }
+ }
+ return c;
+ }
+
+ public URL bootGetResource(String name)
+ {
+ return findResource(name);
+ }
+
+ public Enumeration bootGetResources(String name) throws IOException
+ {
+ return findResources(name);
+ }
+}
diff --git a/libjava/gnu/gcj/runtime/ExtensionClassLoader.java b/libjava/gnu/gcj/runtime/ExtensionClassLoader.java
new file mode 100644
index 00000000000..690143a437a
--- /dev/null
+++ b/libjava/gnu/gcj/runtime/ExtensionClassLoader.java
@@ -0,0 +1,40 @@
+/* Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 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. */
+
+/* Author: Kresten Krab Thorup <krab@gnu.org> */
+
+package gnu.gcj.runtime;
+
+import java.net.URL;
+
+// The extension loader for libgcj. Class loader bootstrap is a bit
+// tricky, see prims.cc and SystemClassLoader for some details.
+public final class ExtensionClassLoader extends HelperClassLoader
+{
+ private ExtensionClassLoader ()
+ {
+ }
+
+ private void init()
+ {
+ addDirectoriesFromProperty("java.ext.dirs");
+ }
+
+ // This can be package-private because we only call it from native
+ // code during startup.
+ static void initialize ()
+ {
+ instance.init();
+ system_instance.init();
+ }
+
+ // The only ExtensionClassLoader that can exist.
+ static ExtensionClassLoader instance = new ExtensionClassLoader();
+ // The system class loader.
+ static SystemClassLoader system_instance = new SystemClassLoader(instance);
+}
diff --git a/libjava/gnu/gcj/runtime/HelperClassLoader.java b/libjava/gnu/gcj/runtime/HelperClassLoader.java
new file mode 100644
index 00000000000..9b81b522ffa
--- /dev/null
+++ b/libjava/gnu/gcj/runtime/HelperClassLoader.java
@@ -0,0 +1,67 @@
+/* Copyright (C) 2005 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. */
+
+package gnu.gcj.runtime;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.StringTokenizer;
+
+/**
+ * This is a URLClassLoader that has an extra helper method for
+ * handling things like java.ext.dirs.
+ */
+class HelperClassLoader extends URLClassLoader
+{
+ HelperClassLoader()
+ {
+ super(new URL[0]);
+ }
+
+ /**
+ * This is a helper method that adds all the jar and zip files from
+ * a given list of paths to this class loader. The paths are taken
+ * from a system property whose name is provided as an argument.
+ */
+ final void addDirectoriesFromProperty(String propName)
+ {
+ StringTokenizer st
+ = new StringTokenizer (System.getProperty (propName, ""),
+ File.pathSeparator);
+ try
+ {
+ while (st.hasMoreElements ())
+ {
+ String dirname = st.nextToken ();
+ File dir = new File (dirname);
+ if (dir.exists ())
+ {
+ if (! dirname.endsWith (File.separator))
+ dirname = dirname + File.separator;
+ String files[] = dir.list (new FilenameFilter ()
+ {
+ public boolean accept (File dir, String name)
+ {
+ return name.endsWith (".jar") || name.endsWith (".zip");
+ }
+ });
+ for (int i = files.length - 1; i >= 0; i--)
+ addURL(new URL("file", "", -1, dirname + files[i]));
+ }
+ }
+ }
+ catch (java.net.MalformedURLException x)
+ {
+ // This should never happen.
+ throw new RuntimeException(x);
+ }
+ }
+}
diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap.java b/libjava/gnu/gcj/runtime/PersistentByteMap.java
index 230d7858576..a20f5b8ab2b 100644
--- a/libjava/gnu/gcj/runtime/PersistentByteMap.java
+++ b/libjava/gnu/gcj/runtime/PersistentByteMap.java
@@ -39,10 +39,6 @@ USAGE:
BUGS/FEATURES:
remove() isn't written yet.
- we can't change the capacity of a PersistentByteMap.
-
- 0x12345678 is a bad choice for the magic number.
-
capacity is fixed once the map has been created.
We use linear probing to resolve collisions. It might be
@@ -51,11 +47,7 @@ BUGS/FEATURES:
table is half full there are only on average 1.5 probes for a
successful search and 2.5 probes for an unsuccessful one.
- We don't use unique strings. This wastes space.
-
- capacity should probably be prime, but we don't check that.
-
- we don't do any locking at all: adding to a PersistentByteMap
+ We don't do any locking at all: adding to a PersistentByteMap
at runtime is possible, but it requires filesystem locks
around get(), put(), and remove().
*/
@@ -67,6 +59,7 @@ import java.nio.*;
import java.nio.channels.*;
import java.util.*;
import java.security.MessageDigest;
+import java.math.BigInteger;
public class PersistentByteMap
{
@@ -94,12 +87,18 @@ public class PersistentByteMap
private long length; // the length of the underlying file
+ private final File name; // The name of the underlying file
+
static private final int UNUSED_ENTRY = -1;
static public final int KEYS = 0;
static public final int VALUES = 1;
static public final int ENTRIES = 2;
+ private HashMap values; // A map of strings in the string table.
+
+ FileChannel fc; // The underlying file channel.
+
static final public class AccessMode
{
private final FileChannel.MapMode mapMode;
@@ -108,10 +107,12 @@ public class PersistentByteMap
{
READ_ONLY = new AccessMode(FileChannel.MapMode.READ_ONLY);
READ_WRITE = new AccessMode(FileChannel.MapMode.READ_WRITE);
+ PRIVATE = new AccessMode(FileChannel.MapMode.PRIVATE);
}
public static final AccessMode READ_ONLY;
public static final AccessMode READ_WRITE;
+ public static final AccessMode PRIVATE;
private AccessMode(FileChannel.MapMode mode)
{
@@ -119,8 +120,9 @@ public class PersistentByteMap
}
}
- private PersistentByteMap()
+ private PersistentByteMap(File name)
{
+ this.name = name;
}
public PersistentByteMap(String filename, AccessMode mode)
@@ -132,7 +134,7 @@ public class PersistentByteMap
public PersistentByteMap(File f, AccessMode mode)
throws IOException
{
- FileChannel fc;
+ name = f;
if (mode == AccessMode.READ_ONLY)
{
@@ -149,7 +151,7 @@ public class PersistentByteMap
buf = fc.map(mode.mapMode, 0, length);
int magic = getWord (MAGIC);
- if (magic != 0x12345678)
+ if (magic != 0x67636a64) /* "gcjd" */
throw new IllegalArgumentException(f.getName());
table_base = getWord (TABLE_BASE);
@@ -167,8 +169,27 @@ public class PersistentByteMap
{
f.createNewFile();
RandomAccessFile raf = new RandomAccessFile(f, "rw");
-
- this.capacity = capacity;
+
+ {
+ // The user has explicitly provided a size for the table.
+ // We're going to make that size prime. This isn't
+ // strictly necessary but it can't hurt.
+ //
+ // We expand the size by 3/2 because the hash table is
+ // intolerably slow when more than 2/3 full.
+
+ BigInteger size = new BigInteger(Integer.toString(capacity * 3/2));
+ BigInteger two = BigInteger.ONE.add(BigInteger.ONE);
+
+ if (size.getLowestSetBit() != 0) // A hard way to say isEven()
+ size = size.add(BigInteger.ONE);
+
+ while (! size.isProbablePrime(10))
+ size = size.add(two);
+
+ this.capacity = capacity = size.intValue();
+ }
+
table_base = 64;
string_base = table_base + capacity * TABLE_ENTRY_SIZE;
string_size = 0;
@@ -183,13 +204,13 @@ public class PersistentByteMap
for (long i = 0; i < totalFileSize; i+= 4096)
raf.write(_4k);
- FileChannel fc = raf.getChannel();
+ fc = raf.getChannel();
buf = fc.map(FileChannel.MapMode.READ_WRITE, 0, raf.length());
for (int i = 0; i < capacity; i++)
putKeyPos(UNUSED_ENTRY, i);
- putWord(0x12345678, MAGIC);
+ putWord(0x67636a64, MAGIC);
putWord(0x01, VERSION);
putWord(capacity, CAPACITY);
putWord(table_base, TABLE_BASE);
@@ -197,15 +218,17 @@ public class PersistentByteMap
putWord(file_size, FILE_SIZE);
putWord(elements, ELEMENTS);
buf.force();
+
+ length = fc.size();
+ string_size = 0;
}
- static public PersistentByteMap emptyPersistentByteMap(String filename,
- int capacity, int strtabSize)
+ static public PersistentByteMap
+ emptyPersistentByteMap(File name, int capacity, int strtabSize)
throws IOException
{
- File f = new File(filename);
- PersistentByteMap m = new PersistentByteMap();
- m.init(m, f, capacity, strtabSize);
+ PersistentByteMap m = new PersistentByteMap(name);
+ m.init(m, name, capacity, strtabSize);
return m;
}
@@ -313,9 +336,7 @@ public class PersistentByteMap
{
int hashIndex = hash(digest);
- // With the the table 2/3 full there will be on average 2 probes
- // for a successful search and 5 probes for an unsuccessful one.
- if (elements >= capacity * 2/3)
+ if (elements >= capacity())
throw new IllegalAccessException("Table Full: " + elements);
do
@@ -336,7 +357,7 @@ public class PersistentByteMap
int newValue = addBytes((byte[])value);
putValuePos(newValue, hashIndex);
return;
- }
+ }
hashIndex++;
hashIndex %= capacity;
@@ -347,6 +368,33 @@ public class PersistentByteMap
private int addBytes (byte[] data)
throws IllegalAccessException
{
+ if (data.length > 16)
+ {
+ // Keep track of long strings in the hope that we will be able
+ // to re-use them.
+ if (values == null)
+ {
+ values = new HashMap();
+
+ for (int i = 0; i < capacity; i++)
+ if (getKeyPos(i) != UNUSED_ENTRY)
+ {
+ int pos = getValuePos(i);
+ ByteWrapper bytes = new ByteWrapper(getBytes(pos));
+ values.put(bytes, new Integer(pos));
+ }
+ }
+
+ {
+ Object result = values.get(new ByteWrapper(data));
+ if (result != null)
+ {
+ // We already have this value in the string table
+ return ((Integer)result).intValue();
+ }
+ }
+ }
+
if (data.length + INT_SIZE >= this.length)
throw new IllegalAccessException("String table Full");
@@ -363,6 +411,9 @@ public class PersistentByteMap
file_size = extent;
putWord (string_size, STRING_SIZE);
putWord (file_size, FILE_SIZE);
+
+ if (data.length > 16)
+ values.put(new ByteWrapper(data), new Integer(top - string_base));
return top - string_base;
}
@@ -377,11 +428,68 @@ public class PersistentByteMap
return elements;
}
+ public int stringTableSize()
+ {
+ return string_size;
+ }
+
public int capacity()
{
- return capacity;
+ // With the the table 2/3 full there will be on average 2 probes
+ // for a successful search and 5 probes for an unsuccessful one.
+ return capacity * 2/3;
}
+ public void force()
+ {
+ buf.force();
+ }
+
+ public File getFile()
+ {
+ return name;
+ }
+
+ // Close the map. Once this has been done, the map can no longer be
+ // used.
+ public void close()
+ {
+ force();
+ fc.close();
+ }
+
+ public void
+ putAll(PersistentByteMap t)
+ throws IllegalAccessException
+ {
+ // We can use a fast copy if the size of a map has not changed.
+ if (this.elements == 0 && t.capacity == this.capacity
+ && t.length == this.length)
+ {
+ this.buf.position(0);
+ t.buf.position(0);
+ this.buf.put(t.buf);
+ this.table_base = t.table_base;
+ this.string_base = t.string_base;
+ this.string_size = t.string_size;
+ this.file_size = t.file_size;
+ this.elements = t.elements;
+ if (t.values != null)
+ this.values = (HashMap)t.values.clone();
+ return;
+ }
+
+ // Otherwise do it the hard way.
+ Iterator iterator = t.iterator(PersistentByteMap.ENTRIES);
+ while (iterator.hasNext())
+ {
+ PersistentByteMap.MapEntry entry
+ = (PersistentByteMap.MapEntry)iterator.next();
+ this.put((byte[])entry.getKey(), (byte[])entry.getValue());
+ }
+ }
+
+
private final class HashIterator implements Iterator
{
/** Current index in the physical hash table. */
@@ -481,4 +589,31 @@ public class PersistentByteMap
return bucket;
}
}
+
+ // A wrapper class for a byte array that allows collections to be
+ // made.
+ private final class ByteWrapper
+ {
+ final byte[] bytes;
+ final int hash;
+
+ public ByteWrapper (byte[] bytes)
+ {
+ int sum = 0;
+ this.bytes = bytes;
+ for (int i = 0; i < bytes.length; i++)
+ sum += bytes[i];
+ hash = sum;
+ }
+
+ public int hashCode()
+ {
+ return hash;
+ }
+
+ public boolean equals(Object obj)
+ {
+ return Arrays.equals(bytes, ((ByteWrapper)obj).bytes);
+ }
+ }
}
diff --git a/libjava/gnu/gcj/runtime/SharedLibHelper.java b/libjava/gnu/gcj/runtime/SharedLibHelper.java
index a0bfe68b83c..bdf7c0453ae 100644
--- a/libjava/gnu/gcj/runtime/SharedLibHelper.java
+++ b/libjava/gnu/gcj/runtime/SharedLibHelper.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2003, 2004 Free Software Foundation
+/* Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -28,13 +28,15 @@ public class SharedLibHelper
* @parem flags passed to dlopen
*/
SharedLibHelper(String libname, ClassLoader parent, CodeSource source,
- int flags)
+ ProtectionDomain domain, int flags)
{
// FIXME: ask security manager first.
loader = parent;
baseName = libname;
- domain = new ProtectionDomain(source,
- Policy.getPolicy().getPermissions(source));
+ if (domain == null)
+ domain = new ProtectionDomain(source,
+ Policy.getPolicy().getPermissions(source));
+ this.domain = domain;
this.flags = flags;
}
@@ -65,7 +67,16 @@ public class SharedLibHelper
}
public static SharedLibHelper findHelper (ClassLoader loader, String libname,
- CodeSource source)
+ CodeSource source,
+ boolean tryParents)
+ {
+ return findHelper (loader, libname, source, null, tryParents);
+ }
+
+ public static SharedLibHelper findHelper (ClassLoader loader, String libname,
+ CodeSource source,
+ ProtectionDomain domain,
+ boolean tryParents)
{
synchronized (map)
{
@@ -95,7 +106,7 @@ public class SharedLibHelper
return result;
l = l.getParent();
}
- while (l != null);
+ while (tryParents && l != null);
}
}
}
@@ -109,6 +120,7 @@ public class SharedLibHelper
".so", new File ("/tmp"));
File src = new File(libname);
copyFile (src, copy);
+ copy.deleteOnExit();
libname = copy.getPath();
}
catch (IOException e)
@@ -116,7 +128,7 @@ public class SharedLibHelper
return null;
}
}
- result = new SharedLibHelper(libname, loader, source, 0);
+ result = new SharedLibHelper(libname, loader, source, domain, 0);
s.add(new WeakReference(result));
return result;
}
diff --git a/libjava/gnu/gcj/runtime/SharedLibLoader.java b/libjava/gnu/gcj/runtime/SharedLibLoader.java
index 1f80bbc8289..b8e6a57de53 100644
--- a/libjava/gnu/gcj/runtime/SharedLibLoader.java
+++ b/libjava/gnu/gcj/runtime/SharedLibLoader.java
@@ -39,7 +39,7 @@ public class SharedLibLoader extends ClassLoader
url = null;
}
helper = SharedLibHelper.findHelper(this, libname,
- new CodeSource(url, null));
+ new CodeSource(url, null), true);
}
/** Load a shared library, and asociate a ClassLoader with it.
diff --git a/libjava/gnu/gcj/runtime/VMClassLoader.java b/libjava/gnu/gcj/runtime/VMClassLoader.java
deleted file mode 100644
index 1ded892a06d..00000000000
--- a/libjava/gnu/gcj/runtime/VMClassLoader.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 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. */
-
-/* Author: Kresten Krab Thorup <krab@gnu.org> */
-
-package gnu.gcj.runtime;
-
-import java.io.*;
-import java.util.StringTokenizer;
-import java.util.HashSet;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-// Despite its name, this class is really the extension loader for
-// libgcj. Class loader bootstrap is a bit tricky, see prims.cc and
-// SystemClassLoader for some details.
-public final class VMClassLoader extends URLClassLoader
-{
- private VMClassLoader ()
- {
- super (new URL[0]);
- String p
- = System.getProperty ("gnu.gcj.runtime.VMClassLoader.library_control",
- "");
- if ("never".equals(p))
- lib_control = LIB_NEVER;
- else if ("cache".equals(p))
- lib_control = LIB_CACHE;
- else if ("full".equals(p))
- lib_control = LIB_FULL;
- else
- lib_control = LIB_CACHE;
- }
-
- private void init()
- {
- // Add the contents of the extensions directories.
- StringTokenizer st
- = new StringTokenizer (System.getProperty ("java.ext.dirs"),
- File.pathSeparator);
-
- try
- {
- while (st.hasMoreElements ())
- {
- String dirname = st.nextToken ();
- File dir = new File (dirname);
- if (dir.exists ())
- {
- if (! dirname.endsWith (File.separator))
- dirname = dirname + File.separator;
- String files[]
- = dir.list (new FilenameFilter ()
- {
- public boolean accept (File dir, String name)
- {
- return (name.endsWith (".jar")
- || name.endsWith (".zip"));
- }
- });
- for (int i = files.length - 1; i >= 0; i--)
- addURL(new URL("file", "", -1, dirname + files[i]));
- }
- }
-
- // Add core:/ to the end so any resources compiled into this
- // executable may be found.
- addURL(new URL("core", "", -1, "/"));
- }
- catch (java.net.MalformedURLException x)
- {
- // This should never happen.
- throw new RuntimeException(x);
- }
- }
-
- /** This is overridden to search the internal hash table, which
- * will only search existing linked-in classes. This will make
- * the default implementation of loadClass (in ClassLoader) work right.
- * The implementation of this method is in
- * gnu/gcj/runtime/natVMClassLoader.cc.
- */
- protected native Class findClass(String name)
- throws java.lang.ClassNotFoundException;
-
- // This can be package-private because we only call it from native
- // code during startup.
- static void initialize ()
- {
- instance.init();
- system_instance.init();
- }
-
- // Define a package for something loaded natively.
- void definePackageForNative(String className)
- {
- int lastDot = className.lastIndexOf('.');
- if (lastDot != -1)
- {
- String packageName = className.substring(0, lastDot);
- if (getPackage(packageName) == null)
- {
- // FIXME: this assumes we're defining the core, which
- // isn't necessarily so. We could detect this and set up
- // appropriately. We could also look at a manifest file
- // compiled into the .so.
- definePackage(packageName, "Java Platform API Specification",
- "GNU", "1.4", "gcj", "GNU",
- null, // FIXME: gcj version.
- null);
- }
- }
- }
-
- // This keeps track of shared libraries we've already tried to load.
- private HashSet tried_libraries = new HashSet();
-
- // Holds one of the LIB_* constants; used to determine how shared
- // library loads are done.
- private int lib_control;
-
- // The only VMClassLoader that can exist.
- static VMClassLoader instance = new VMClassLoader();
- // The system class loader.
- static SystemClassLoader system_instance = new SystemClassLoader(instance);
-
- private static final int LIB_FULL = 0;
- private static final int LIB_CACHE = 1;
- private static final int LIB_NEVER = 2;
-}
diff --git a/libjava/gnu/gcj/runtime/natVMClassLoader.cc b/libjava/gnu/gcj/runtime/natVMClassLoader.cc
deleted file mode 100644
index 7f2ee34eb32..00000000000
--- a/libjava/gnu/gcj/runtime/natVMClassLoader.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// Native code for VMClassLoader
-
-/* Copyright (C) 2002, 2003, 2005 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>
-#include <jvm.h>
-
-#include <gnu/gcj/runtime/VMClassLoader.h>
-#include <java/lang/Class.h>
-#include <java/lang/StringBuffer.h>
-#include <java/net/URLClassLoader.h>
-#include <java/lang/Runtime.h>
-#include <java/util/HashSet.h>
-
-jclass
-gnu::gcj::runtime::VMClassLoader::findClass (jstring name)
-{
- _Jv_Utf8Const *name_u = _Jv_makeUtf8Const (name);
- jclass klass = _Jv_FindClassInCache (name_u);
-
- if (! klass && lib_control != LIB_NEVER)
- {
- // Turn `gnu.pkg.quux' into `lib-gnu-pkg-quux'. Then search for
- // a module named (eg, on Linux) `lib-gnu-pkg-quux.so', followed
- // by `lib-gnu-pkg.so' and `lib-gnu.so'. If loading one of
- // these causes the class to appear in the cache, then use it.
- java::lang::StringBuffer *sb = new java::lang::StringBuffer (JvNewStringLatin1("lib-"));
- // Skip inner classes
- jstring cn;
- jint ci = name->indexOf('$');
- if (ci == -1)
- cn = name;
- else
- cn = name->substring (0, ci);
- jstring so_base_name = (sb->append (cn)->toString ())->replace ('.', '-');
-
- using namespace ::java::lang;
- Runtime *rt = Runtime::getRuntime();
-
- // Compare against `3' because that is the length of "lib".
- while (! klass && so_base_name && so_base_name->length() > 3)
- {
- if (lib_control == LIB_CACHE)
- {
- // If we've already tried this name, we're done.
- if (tried_libraries->contains(so_base_name))
- break;
- tried_libraries->add(so_base_name);
- }
-
- jboolean loaded = rt->loadLibraryInternal (so_base_name);
-
- jint nd = so_base_name->lastIndexOf ('-');
- if (nd == -1)
- so_base_name = NULL;
- else
- so_base_name = so_base_name->substring (0, nd);
-
- if (loaded)
- klass = _Jv_FindClassInCache (name_u);
- }
- }
-
- // Either define the package, or try loading using the interpreter.
- if (klass)
- definePackageForNative(name);
- else
- klass = java::net::URLClassLoader::findClass (name);
-
- return klass;
-}
diff --git a/libjava/gnu/gcj/tools/gcj_dbtool/Main.java b/libjava/gnu/gcj/tools/gcj_dbtool/Main.java
index b9bea0e09fa..58e9720f5fb 100644
--- a/libjava/gnu/gcj/tools/gcj_dbtool/Main.java
+++ b/libjava/gnu/gcj/tools/gcj_dbtool/Main.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation
+/* Copyright (C) 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -11,16 +11,33 @@ package gnu.gcj.tools.gcj_dbtool;
import gnu.gcj.runtime.PersistentByteMap;
import java.io.*;
+import java.nio.channels.*;
import java.util.*;
import java.util.jar.*;
import java.security.MessageDigest;
-import java.math.BigInteger;
public class Main
{
+ static private boolean verbose = false;
+
public static void main (String[] s)
{
+ boolean fileListFromStdin = false;
+ char filenameSeparator = ' ';
+
insist (s.length >= 1);
+
+ if (s[0].equals("-") ||
+ s[0].equals("-0"))
+ {
+ if (s[0].equals("-0"))
+ filenameSeparator = (char)0;
+ fileListFromStdin = true;
+ String[] newArgs = new String[s.length - 1];
+ System.arraycopy(s, 1, newArgs, 0, s.length - 1);
+ s = newArgs;
+ }
+
if (s[0].equals("-v") || s[0].equals("--version"))
{
insist (s.length == 1);
@@ -29,7 +46,7 @@ public class Main
+ ") "
+ System.getProperty("java.vm.version"));
System.out.println();
- System.out.println("Copyright 2004 Free Software Foundation, Inc.");
+ System.out.println("Copyright 2005 Free Software Foundation, Inc.");
System.out.println("This is free software; see the source for copying conditions. There is NO");
System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
return;
@@ -42,26 +59,14 @@ public class Main
if (s[0].equals("-n"))
{
+ // Create a new database.
insist (s.length >= 2 && s.length <= 3);
int capacity = 32749;
if (s.length == 3)
- {
- // The user has explicitly provided a size for the table.
- // We're going to make that size prime. This isn't
- // strictly necessary but it can't hurt.
-
- BigInteger size = new BigInteger(s[2], 10);
- BigInteger two = BigInteger.ONE.add(BigInteger.ONE);
-
- if (size.getLowestSetBit() != 0) // A hard way to say isEven()
- size = size.add(BigInteger.ONE);
-
- while (! size.isProbablePrime(10))
- size = size.add(two);
-
- capacity = size.intValue();
+ {
+ capacity = Integer.parseInt(s[2]);
if (capacity <= 2)
{
@@ -73,7 +78,8 @@ public class Main
try
{
PersistentByteMap b
- = PersistentByteMap.emptyPersistentByteMap (s[1], capacity, capacity*64);
+ = PersistentByteMap.emptyPersistentByteMap(new File(s[1]),
+ capacity, capacity*32);
}
catch (Exception e)
{
@@ -84,20 +90,28 @@ public class Main
return;
}
- if (s[0].equals("-a"))
+ if (s[0].equals("-a") || s[0].equals("-f"))
{
+ // Add a jar file to a database, creating it if necessary.
+ // Copies the database, adds the jar file to the copy, and
+ // then renames the new database over the old.
try
{
insist (s.length == 4);
- File jar = new File(s[2]);
- PersistentByteMap b
- = new PersistentByteMap(new File(s[1]),
- PersistentByteMap.AccessMode.READ_WRITE);
+ File database = new File(s[1]);
+ database = database.getAbsoluteFile();
+ File jar = new File(s[2]);
+ PersistentByteMap map;
+ if (database.isFile())
+ map = new PersistentByteMap(database,
+ PersistentByteMap.AccessMode.READ_ONLY);
+ else
+ map = PersistentByteMap.emptyPersistentByteMap(database,
+ 100, 100*32);
File soFile = new File(s[3]);
- if (! soFile.isFile())
+ if (! s[0].equals("-f") && ! soFile.isFile())
throw new IllegalArgumentException(s[3] + " is not a file");
-
- addJar(jar, b, soFile);
+ map = addJar(jar, map, soFile);
}
catch (Exception e)
{
@@ -110,6 +124,7 @@ public class Main
if (s[0].equals("-t"))
{
+ // Test
try
{
insist (s.length == 2);
@@ -142,8 +157,69 @@ public class Main
return;
}
+ if (s[0].equals("-m"))
+ {
+ // Merge databases.
+ insist (s.length >= 3
+ || fileListFromStdin && s.length == 2);
+ try
+ {
+ File database = new File(s[1]);
+ database = database.getAbsoluteFile();
+ File temp = File.createTempFile(database.getName(), "",
+ database.getParentFile());
+
+ int newSize = 0;
+ int newStringTableSize = 0;
+ Fileset files = getFiles(s, 2, fileListFromStdin,
+ filenameSeparator);
+ PersistentByteMap[] sourceMaps
+ = new PersistentByteMap[files.size()];
+
+ // Scan all the input files, calculating worst case string
+ // table and hash table use.
+ {
+ Iterator it = files.iterator();
+ int i = 0;
+ while (it.hasNext())
+ {
+ PersistentByteMap b
+ = new PersistentByteMap((File)it.next(),
+ PersistentByteMap.AccessMode.READ_ONLY);
+ newSize += b.size();
+ newStringTableSize += b.stringTableSize();
+ sourceMaps[i++] = b;
+ }
+ }
+
+ newSize *= 1.5; // Scaling the new size by 1.5 results in
+ // fewer collisions.
+ PersistentByteMap map
+ = PersistentByteMap.emptyPersistentByteMap
+ (temp, newSize, newStringTableSize);
+
+ for (int i = 0; i < sourceMaps.length; i++)
+ {
+ if (verbose)
+ System.err.println("adding " + sourceMaps[i].size()
+ + " elements from "
+ + sourceMaps[i].getFile());
+ map.putAll(sourceMaps[i]);
+ }
+ map.close();
+ temp.renameTo(database);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ System.exit(3);
+ }
+ return;
+ }
+
if (s[0].equals("-l"))
{
+ // List a database.
insist (s.length == 2);
try
{
@@ -180,6 +256,7 @@ public class Main
if (s[0].equals("-d"))
{
+ // For testing only: fill the byte map with random data.
insist (s.length == 2);
try
{
@@ -203,11 +280,29 @@ public class Main
}
return;
}
-
+
+ if (s[0].equals("-p"))
+ {
+ insist (s.length == 1 || s.length == 2);
+ String result;
+
+ if (s.length == 1)
+ result = System.getProperty("gnu.gcj.precompiled.db.path", "");
+ else
+ result = (s[1]
+ + (s[1].endsWith(File.separator) ? "" : File.separator)
+ + getDbPathTail ());
+
+ System.out.println (result);
+ return;
+ }
+
usage(System.err);
System.exit(1);
}
+ private static native String getDbPathTail ();
+
private static void insist(boolean ok)
{
if (! ok)
@@ -225,20 +320,55 @@ public class Main
+ " Usage: \n"
+ " gcj-dbtool -n file.gcjdb [size] - Create a new gcj map database\n"
+ " gcj-dbtool -a file.gcjdb file.jar file.so\n"
- + " - Add the contents of file.jar to the database\n"
+ + " - Add the contents of file.jar to a gcj map database\n"
+ + " gcj-dbtool -f file.gcjdb file.jar file.so\n"
+ + " - Add the contents of file.jar to a gcj map database\n"
+ " gcj-dbtool -t file.gcjdb - Test a gcj map database\n"
- + " gcj-dbtool -l file.gcjdb - List a gcj map database\n");
+ + " gcj-dbtool -l file.gcjdb - List a gcj map database\n"
+ + " gcj-dbtool [-][-0] -m dest.gcjdb [source.gcjdb]...\n"
+ + " - Merge gcj map databases into dest\n"
+ + " Replaces dest\n"
+ + " To add to dest, include dest in the list of sources\n"
+ + " If the first arg is -, read the list from stdin\n"
+ + " If the first arg is -0, filenames separated by nul\n"
+ + " gcj-dbtool -p [LIBDIR] - Print default database name"
+ );
}
-
- private static void addJar(File f, PersistentByteMap b, File soFile)
- throws Exception
+ // Add a jar to a map. This copies the map first and returns a
+ // different map that contains the data. The original map is
+ // closed.
+
+ private static PersistentByteMap
+ addJar(File f, PersistentByteMap b, File soFile)
+ throws Exception
{
MessageDigest md = MessageDigest.getInstance("MD5");
JarFile jar = new JarFile (f);
+
+ int count = 0;
+ {
+ Enumeration entries = jar.entries();
+ while (entries.hasMoreElements())
+ {
+ JarEntry classfile = (JarEntry)entries.nextElement();
+ if (classfile.getName().endsWith(".class"))
+ count++;
+ }
+ }
+
+ if (verbose)
+ System.err.println("adding " + count + " elements from "
+ + f + " to " + b.getFile());
+
+ // Maybe resize the destination map. We're allowing plenty of
+ // extra space by using a loadFactor of 2.
+ b = resizeMap(b, (b.size() + count) * 2, true);
+
Enumeration entries = jar.entries();
+ byte[] soFileName = soFile.getCanonicalPath().getBytes("UTF-8");
while (entries.hasMoreElements())
{
JarEntry classfile = (JarEntry)entries.nextElement();
@@ -259,12 +389,41 @@ public class Main
+ classfile.getName());
pos += len;
}
- b.put(md.digest(data),
- soFile.getCanonicalPath().getBytes());
+ b.put(md.digest(data), soFileName);
}
- }
+ }
+ return b;
}
+ // Resize a map by creating a new one with the same data and
+ // renaming it. If close is true, close the original map.
+
+ static PersistentByteMap resizeMap(PersistentByteMap m, int newCapacity, boolean close)
+ throws IOException, IllegalAccessException
+ {
+ newCapacity = Math.max(m.capacity(), newCapacity);
+ File name = m.getFile();
+ File copy = File.createTempFile(name.getName(), "", name.getParentFile());
+ try
+ {
+ PersistentByteMap dest
+ = PersistentByteMap.emptyPersistentByteMap
+ (copy, newCapacity, newCapacity*32);
+ dest.putAll(m);
+ dest.force();
+ if (close)
+ m.close();
+ copy.renameTo(name);
+ return dest;
+ }
+ catch (Exception e)
+ {
+ copy.delete();
+ }
+ return null;
+ }
+
+
static String bytesToString(byte[] b)
{
StringBuffer hexBytes = new StringBuffer();
@@ -273,5 +432,104 @@ public class Main
hexBytes.append(Integer.toHexString(b[i] & 0xff));
return hexBytes.toString();
}
+
+
+ // Return a Fileset, either from a String array or from System.in,
+ // depending on fileListFromStdin.
+ private static final Fileset getFiles(String[] s, int startPos,
+ boolean fileListFromStdin,
+ char separator)
+ {
+ if (fileListFromStdin)
+ return new Fileset(System.in, separator);
+ else
+ return new Fileset(s, startPos, s.length);
+ }
+}
+
+// Parse a stream into tokens. The separator can be any char, and
+// space is equivalent to any whitepace character.
+class Tokenizer
+{
+ final Reader r;
+ final char separator;
+
+ Tokenizer(Reader r, char separator)
+ {
+ this.r = r;
+ this.separator = separator;
+ }
+
+ boolean isSeparator(int c)
+ {
+ if (Character.isWhitespace(separator))
+ return Character.isWhitespace((char)c);
+ else
+ return c == separator;
+ }
+
+ // Parse a token from the input stream. Return the empty string
+ // when the stream is exhausted.
+ String nextToken ()
+ {
+ StringBuffer buf = new StringBuffer();
+ int c;
+ try
+ {
+ while ((c = r.read()) != -1)
+ {
+ if (! isSeparator(c))
+ {
+ buf.append((char)c);
+ break;
+ }
+ }
+ while ((c = r.read()) != -1)
+ {
+ if (isSeparator(c))
+ break;
+ else
+ buf.append((char)c);
+ }
+ }
+ catch (java.io.IOException e)
+ {
+ }
+ return buf.toString();
+ }
+}
+
+// A Fileset is a container for a set of files; it can be created
+// either from a string array or from an input stream, given a
+// separator character.
+class Fileset
+{
+ LinkedHashSet files = new LinkedHashSet();
+
+ Fileset (String[] s, int start, int end)
+ {
+ for (int i = start; i < end; i++)
+ {
+ files.add(new File(s[i]));
+ }
+ }
+
+ Fileset (InputStream is, char separator)
+ {
+ Reader r = new BufferedReader(new InputStreamReader(is));
+ Tokenizer st = new Tokenizer(r, separator);
+ String name;
+ while (! "".equals(name = st.nextToken()))
+ files.add(new File(name));
+ }
+
+ Iterator iterator()
+ {
+ return files.iterator();
+ }
+
+ int size()
+ {
+ return files.size();
+ }
}
-
diff --git a/libjava/gnu/gcj/tools/gcj_dbtool/natMain.cc b/libjava/gnu/gcj/tools/gcj_dbtool/natMain.cc
new file mode 100644
index 00000000000..52ba0d7d13c
--- /dev/null
+++ b/libjava/gnu/gcj/tools/gcj_dbtool/natMain.cc
@@ -0,0 +1,24 @@
+// natMain -- gcj-dbtool native code.
+
+/* Copyright (C) 2005 Free Software Foundation
+
+ This file is part of gcj-dbtool.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+/* Author: Anthony Green <green@redhat.com>. */
+
+#include <config.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <gnu/gcj/tools/gcj_dbtool/Main.h>
+
+java::lang::String *
+gnu::gcj::tools::gcj_dbtool::Main::getDbPathTail ()
+{
+ return JvNewStringLatin1 (LIBGCJ_DEFAULT_DATABASE_PATH_TAIL);
+}
diff --git a/libjava/gnu/gcj/xlib/XAnyEvent.java b/libjava/gnu/gcj/xlib/XAnyEvent.java
index 061d6137b17..bce3a6150ee 100644
--- a/libjava/gnu/gcj/xlib/XAnyEvent.java
+++ b/libjava/gnu/gcj/xlib/XAnyEvent.java
@@ -70,7 +70,8 @@ public final class XAnyEvent
/**
* Load next event into the event structure.
*/
- public native void loadNext();
+ public native boolean loadNext(boolean block);
+ public native void interrupt();
public native int getType();
public native void setType(int type);
@@ -86,6 +87,7 @@ public final class XAnyEvent
public native void send(Window destination, boolean propagate,
long mask);
+ RawData pipefds;
RawData structure;
Display display;
diff --git a/libjava/gnu/gcj/xlib/natXAnyEvent.cc b/libjava/gnu/gcj/xlib/natXAnyEvent.cc
index 439f204b373..0bef563ed2d 100644
--- a/libjava/gnu/gcj/xlib/natXAnyEvent.cc
+++ b/libjava/gnu/gcj/xlib/natXAnyEvent.cc
@@ -6,6 +6,12 @@ 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 <gcj/javaprims.h>
+#include <jvm.h>
+
#include <X11/Xlib.h>
#include <gcj/cni.h>
@@ -22,24 +28,72 @@ details. */
#include <gnu/gcj/xlib/XExposeEvent.h>
#include <gnu/gcj/xlib/XException.h>
+#include <unistd.h>
+#include <posix.h>
+
void gnu::gcj::xlib::XAnyEvent::init()
{
::XEvent* event = new ::XEvent;
+ int *pipes = new int[2];
+ pipe(pipes);
structure = reinterpret_cast<gnu::gcj::RawData*>(event);
+ pipefds = reinterpret_cast<gnu::gcj::RawData*>(pipes);
}
void gnu::gcj::xlib::XAnyEvent::finalize()
{
delete structure;
+ int *pipe = reinterpret_cast<int *>(pipefds);
+ close(pipe[0]);
+ close(pipe[1]);
+ delete [] pipefds;
+ pipefds = 0;
structure = 0;
}
-void gnu::gcj::xlib::XAnyEvent::loadNext()
+jboolean gnu::gcj::xlib::XAnyEvent::loadNext(jboolean block)
{
::Display* dpy = (::Display*) display->display;
::XEvent* evt = (::XEvent*) structure;
- XNextEvent(dpy, evt);
- // What does XNextEvent return?
+
+ if (XPending(dpy))
+ {
+ XNextEvent(dpy, evt);
+ return true;
+ }
+
+ if (!block)
+ return false;
+
+ int *pipe = reinterpret_cast<int *>(pipefds);
+ int xfd = XConnectionNumber(dpy);
+ int pipefd = pipe[0];
+ int n = (xfd > pipefd ? xfd : pipefd) + 1;
+ fd_set rfds;
+ FD_ZERO(&rfds);
+ FD_SET(xfd, &rfds);
+ FD_SET(pipefd, &rfds);
+ int sel = _Jv_select (n, &rfds, NULL, NULL, NULL);
+ if (sel > 0)
+ {
+ if (FD_ISSET(xfd, &rfds))
+ {
+ XNextEvent(dpy, evt);
+ return true;
+ }
+ if (FD_ISSET(pipefd, &rfds))
+ {
+ char c;
+ read(pipefd, &c, 1);
+ }
+ }
+ return false;
+}
+
+void gnu::gcj::xlib::XAnyEvent::interrupt()
+{
+ int *pipe = reinterpret_cast<int *>(pipefds);
+ write(pipe[1], "W", 1);
}
jint gnu::gcj::xlib::XAnyEvent::getType()
diff --git a/libjava/gnu/java/awt/ClasspathToolkit.java b/libjava/gnu/java/awt/ClasspathToolkit.java
index de97c4a0edf..72302e11c30 100644
--- a/libjava/gnu/java/awt/ClasspathToolkit.java
+++ b/libjava/gnu/java/awt/ClasspathToolkit.java
@@ -41,16 +41,20 @@ package gnu.java.awt;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.java.awt.peer.ClasspathTextLayoutPeer;
-import java.awt.Image;
+import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.DisplayMode;
+import java.awt.EventQueue;
import java.awt.Font;
import java.awt.FontMetrics;
+import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
+import java.awt.Image;
import java.awt.Toolkit;
import java.awt.font.FontRenderContext;
import java.awt.image.ColorModel;
import java.awt.image.ImageProducer;
+import java.awt.peer.RobotPeer;
import java.io.File;
import java.io.InputStream;
import java.net.MalformedURLException;
@@ -90,7 +94,7 @@ public abstract class ClasspathToolkit
* #getImage(java.net.URL)}. For images that were loaded via a path
* to an image file, the map contains a key with a file URL.
*/
- private Map imageCache;
+ private HashMap imageCache;
/**
@@ -169,7 +173,6 @@ public abstract class ClasspathToolkit
* this font peer should have, such as size, weight, family name, or
* transformation.
*/
-
public abstract ClasspathFontPeer getClasspathFontPeer (String name, Map attrs);
public abstract ClasspathTextLayoutPeer
@@ -184,7 +187,6 @@ public abstract class ClasspathToolkit
* implement {@link java.awt.font.OpenType} or
* {@link java.awt.font.MultipleMaster}.
*/
-
public Font getFont (String name, Map attrs)
{
return new Font (name, attrs);
@@ -350,6 +352,9 @@ public abstract class ClasspathToolkit
return null;
}
+ public abstract RobotPeer createRobot (GraphicsDevice screen)
+ throws AWTException;
+
/**
* Used to register ImageIO SPIs provided by the toolkit.
*/
@@ -357,4 +362,8 @@ public abstract class ClasspathToolkit
public void registerImageIOSpis(IIORegistry reg)
{
}
+
+ public abstract boolean nativeQueueEmpty();
+ public abstract void wakeNativeQueue();
+ public abstract void iterateNativeQueue(EventQueue locked, boolean block);
}
diff --git a/libjava/gnu/java/awt/EmbeddedWindow.java b/libjava/gnu/java/awt/EmbeddedWindow.java
index 08bc02755ea..c3cfac48b19 100644
--- a/libjava/gnu/java/awt/EmbeddedWindow.java
+++ b/libjava/gnu/java/awt/EmbeddedWindow.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.java.awt;
-import gnu.classpath.Configuration;
import gnu.java.awt.peer.EmbeddedWindowPeer;
import gnu.java.security.action.SetAccessibleAction;
diff --git a/libjava/gnu/java/awt/color/ClutProfileConverter.java b/libjava/gnu/java/awt/color/ClutProfileConverter.java
index d33a6887eec..5b06f48eed8 100644
--- a/libjava/gnu/java/awt/color/ClutProfileConverter.java
+++ b/libjava/gnu/java/awt/color/ClutProfileConverter.java
@@ -38,7 +38,6 @@
package gnu.java.awt.color;
-import java.awt.color.ColorSpace;
import java.awt.color.ICC_Profile;
diff --git a/libjava/gnu/java/awt/image/ImageDecoder.java b/libjava/gnu/java/awt/image/ImageDecoder.java
index 233dfb1b28d..d279d567467 100644
--- a/libjava/gnu/java/awt/image/ImageDecoder.java
+++ b/libjava/gnu/java/awt/image/ImageDecoder.java
@@ -74,6 +74,11 @@ public abstract class ImageDecoder implements ImageProducer
this.url = url;
}
+ public ImageDecoder (InputStream is)
+ {
+ this.input = is;
+ }
+
public ImageDecoder (byte[] imagedata, int imageoffset, int imagelength)
{
data = imagedata;
@@ -99,7 +104,7 @@ public abstract class ImageDecoder implements ImageProducer
public void startProduction (ImageConsumer ic)
{
if (!isConsumer(ic))
- addConsumer (ic);
+ addConsumer(ic);
Vector list = (Vector) consumers.clone ();
try
@@ -108,17 +113,30 @@ public abstract class ImageDecoder implements ImageProducer
// ImageDecoder constructors so that exceptions cause
// imageComplete to be called with an appropriate error
// status.
- if (url != null)
- input = url.openStream();
- else
- {
- if (filename != null)
- input = new FileInputStream (filename);
- else
- input = new ByteArrayInputStream (data, offset, length);
- }
-
- produce (list, input);
+ if (input == null)
+ {
+ try
+ {
+ if (url != null)
+ input = url.openStream();
+ else
+ {
+ if (filename != null)
+ input = new FileInputStream (filename);
+ else
+ input = new ByteArrayInputStream (data, offset, length);
+ }
+ produce (list, input);
+ }
+ finally
+ {
+ input = null;
+ }
+ }
+ else
+ {
+ produce (list, input);
+ }
}
catch (Exception e)
{
diff --git a/libjava/gnu/java/awt/peer/ClasspathTextLayoutPeer.java b/libjava/gnu/java/awt/peer/ClasspathTextLayoutPeer.java
index 143412caf99..07b4b3eb403 100644
--- a/libjava/gnu/java/awt/peer/ClasspathTextLayoutPeer.java
+++ b/libjava/gnu/java/awt/peer/ClasspathTextLayoutPeer.java
@@ -38,19 +38,12 @@ exception statement from your version. */
package gnu.java.awt.peer;
-import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.font.TextHitInfo;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
-import java.text.CharacterIterator;
-import java.text.AttributedCharacterIterator;
-import java.text.AttributedString;
-import java.util.Map;
-import java.awt.font.TextAttribute;
-
/**
* @author Graydon Hoare
diff --git a/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java b/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
index a4cb35a4fff..753c7cd46f1 100644
--- a/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
+++ b/libjava/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java
@@ -3,7 +3,7 @@
--portable-native-sync option.
This is used by gthread-jni.c
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,10 +40,11 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.java.awt.peer.gtk;
+
import java.lang.ref.WeakReference;
-import java.util.Set;
import java.util.Collections;
import java.util.HashSet;
+import java.util.Set;
/** Implements pthread_create(), under glib's gthread abstraction, for use
with GNU Classpath's --portable-native-sync option. This is used in
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.java b/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.java
index 3cd2f9a1cd2..e871587a4a9 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkFontMetrics.java
@@ -63,8 +63,6 @@ public class GdkFontMetrics extends FontMetrics
static final int TEXT_METRICS_X_ADVANCE = 4;
static final int TEXT_METRICS_Y_ADVANCE = 5;
- static native void getPeerFontMetrics(GdkFontPeer peer, double [] metrics);
- static native void getPeerTextMetrics(GdkFontPeer peer, String str, double [] metrics);
public GdkFontMetrics (Font font)
{
@@ -77,12 +75,7 @@ public class GdkFontMetrics extends FontMetrics
font_metrics = new int[5];
double [] hires = new double[5];
-
- if (GtkToolkit.useGraphics2D ())
- GdkGraphics2D.getPeerFontMetrics(peer, hires);
- else
- getPeerFontMetrics (peer, hires);
-
+ peer.getFontMetrics (hires);
for (int i = 0; i < 5; ++i)
font_metrics[i] = (int) hires[i];
}
@@ -90,10 +83,7 @@ public class GdkFontMetrics extends FontMetrics
public int stringWidth (String str)
{
double [] hires = new double[6];
- if (GtkToolkit.useGraphics2D())
- GdkGraphics2D.getPeerTextMetrics(peer, str, hires);
- else
- getPeerTextMetrics(peer, str, hires);
+ peer.getTextMetrics(str, hires);
return (int) hires [TEXT_METRICS_WIDTH];
}
@@ -115,7 +105,6 @@ public class GdkFontMetrics extends FontMetrics
public int getLeading ()
{
return 1;
-// return metrics[ASCENT] + metrics[DESCENT];
}
public int getAscent ()
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.java b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.java
index ee051451026..d130c117560 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.java
@@ -1,5 +1,5 @@
/* GdkFontPeer.java -- Implements FontPeer with GTK+
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,24 +37,25 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.peer.FontPeer;
-import java.awt.*;
-import java.awt.geom.*;
-import java.awt.font.*;
+
+import gnu.classpath.Configuration;
+import gnu.java.awt.peer.ClasspathFontPeer;
+
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.font.FontRenderContext;
+import java.awt.font.GlyphVector;
+import java.awt.font.LineMetrics;
+import java.awt.geom.Rectangle2D;
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
-import java.util.MissingResourceException;
-import java.text.CharacterIterator;
-import java.text.AttributedCharacterIterator;
-import java.text.StringCharacterIterator;
-import gnu.classpath.Configuration;
-import gnu.java.awt.peer.ClasspathFontPeer;
public class GdkFontPeer extends ClasspathFontPeer
{
-
- native static void initStaticState ();
+ static native void initStaticState();
private final int native_state = GtkGenericPeer.getUniqueInteger ();
private static ResourceBundle bundle;
@@ -81,6 +82,9 @@ public class GdkFontPeer extends ClasspathFontPeer
private native void dispose ();
private native void setFont (String family, int style, int size, boolean useGraphics2D);
+ native void getFontMetrics(double [] metrics);
+ native void getTextMetrics(String str, double [] metrics);
+
protected void finalize ()
{
if (GtkToolkit.useGraphics2D ())
@@ -158,26 +162,33 @@ public class GdkFontPeer extends ClasspathFontPeer
public boolean canDisplay (Font font, char c)
{
- throw new UnsupportedOperationException ();
+ // FIXME: inquire with pango
+ return true;
}
public int canDisplayUpTo (Font font, CharacterIterator i, int start, int limit)
{
- throw new UnsupportedOperationException ();
+ // FIXME: inquire with pango
+ return -1;
}
+
+ private native GdkGlyphVector getGlyphVector(String txt,
+ Font f,
+ FontRenderContext ctx);
public GlyphVector createGlyphVector (Font font,
FontRenderContext ctx,
CharacterIterator i)
{
- return new GdkGlyphVector(font, this, ctx, buildString (i));
+ return getGlyphVector(buildString (i), font, ctx);
}
public GlyphVector createGlyphVector (Font font,
FontRenderContext ctx,
int[] glyphCodes)
{
- return new GdkGlyphVector (font, this, ctx, glyphCodes);
+ return null;
+ // return new GdkGlyphVector (font, this, ctx, glyphCodes);
}
public byte getBaselineFor (Font font, char c)
@@ -259,7 +270,8 @@ public class GdkFontPeer extends ClasspathFontPeer
public Rectangle2D getStringBounds (Font font, CharacterIterator ci,
int begin, int limit, FontRenderContext frc)
{
- throw new UnsupportedOperationException ();
+ GdkGlyphVector gv = getGlyphVector(buildString (ci, begin, limit), font, frc);
+ return gv.getVisualBounds();
}
public boolean hasUniformLineMetrics (Font font)
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGlyphVector.java b/libjava/gnu/java/awt/peer/gtk/GdkGlyphVector.java
index c37de5274ac..29d38b5e3f4 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGlyphVector.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGlyphVector.java
@@ -1,5 +1,5 @@
/* GdkGlyphVector.java -- Glyph vector object
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,15 +38,13 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import gnu.classpath.Configuration;
-
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
+import java.awt.font.GlyphJustificationInfo;
import java.awt.font.GlyphMetrics;
import java.awt.font.GlyphVector;
-import java.awt.font.GlyphJustificationInfo;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
@@ -54,36 +52,57 @@ import java.awt.geom.Rectangle2D;
public class GdkGlyphVector extends GlyphVector
{
- static
+ /* We use a simple representation for glyph vectors here. Glyph i
+ * consumes 8 doubles:
+ *
+ * logical x: extents[ 10*i ]
+ * logical y: extents[ 10*i + 1 ]
+ * logical width: extents[ 10*i + 2 ]
+ * logical height: extents[ 10*i + 3 ]
+ *
+ * visual x: extents[ 10*i + 4 ]
+ * visual y: extents[ 10*i + 5 ]
+ * visual width: extents[ 10*i + 6 ]
+ * visual height: extents[ 10*i + 7 ]
+ *
+ * origin pos x: extents[ 10*i + 8 ]
+ * origin pos y: extents[ 10*i + 9 ]
+ *
+ * as well as one int, code[i], representing the glyph code in the font.
+ */
+
+ double [] extents;
+ int [] codes;
+
+ Font font;
+ FontRenderContext fontRenderContext;
+
+ Rectangle2D allLogical;
+ Rectangle2D allVisual;
+
+ public GdkGlyphVector(double[] extents, int[] codes, Font font, FontRenderContext frc)
{
- if (Configuration.INIT_LOAD_LIBRARY)
+ this.extents = extents;
+ this.codes = codes;
+ this.font = font;
+ this.fontRenderContext = frc;
+
+ allLogical = new Rectangle2D.Double();
+ allVisual = new Rectangle2D.Double();
+
+ for (int i = 0; i < codes.length; ++i)
{
- System.loadLibrary("gtkpeer");
+ allLogical.add (new Rectangle2D.Double(extents[10*i ] + extents[10*i + 8],
+ extents[10*i + 1] + extents[10*i + 9],
+ extents[10*i + 2],
+ extents[10*i + 3]));
+
+ allVisual.add (new Rectangle2D.Double(extents[10*i + 4] + extents[10*i + 8],
+ extents[10*i + 5] + extents[10*i + 9],
+ extents[10*i + 6],
+ extents[10*i + 7]));
}
-
- if (GtkToolkit.useGraphics2D ())
- initStaticState ();
}
- native static void initStaticState ();
- private final int native_state = GtkGenericPeer.getUniqueInteger ();
-
- private Font font;
- private FontRenderContext ctx;
-
- private native void initState (GdkFontPeer peer, FontRenderContext ctx);
- private native void setChars (String s);
- private native void setGlyphCodes (int codes[]);
- private native void dispose ();
- private native int glyphCode (int idx);
- private native int numGlyphs ();
- private native int glyphCharIndex (int idx);
- private native double[] allLogicalExtents ();
- private native double[] allInkExtents ();
- private native double[] glyphLogicalExtents (int idx);
- private native double[] glyphInkExtents (int idx);
- private native boolean glyphIsHorizontal (int idx);
- private native boolean isEqual (GdkGlyphVector ggv);
-
/*
geometric notes:
@@ -108,26 +127,14 @@ public class GdkGlyphVector extends GlyphVector
*/
-
- public GdkGlyphVector (Font f, GdkFontPeer peer, FontRenderContext c, String s)
- {
- font = f;
- ctx = c;
- initState (peer, ctx);
- setChars (s);
- }
-
- public GdkGlyphVector (Font f, GdkFontPeer peer, FontRenderContext c, int codes[])
+ public double[] getExtents()
{
- font = f;
- ctx = c;
- initState (peer, ctx);
- setGlyphCodes (codes);
+ return extents;
}
- protected void finalize ()
+ public int[] getCodes()
{
- dispose ();
+ return codes;
}
public Font getFont ()
@@ -137,12 +144,15 @@ public class GdkGlyphVector extends GlyphVector
public FontRenderContext getFontRenderContext ()
{
- return ctx;
+ return fontRenderContext;
}
public int getGlyphCharIndex (int glyphIndex)
{
- return glyphCharIndex (glyphIndex);
+ // FIXME: currently pango does not provide glyph-by-glyph
+ // reverse mapping information, so we assume a broken 1:1
+ // glyph model here. This is plainly wrong.
+ return glyphIndex;
}
public int[] getGlyphCharIndices (int beginGlyphIndex,
@@ -154,50 +164,44 @@ public class GdkGlyphVector extends GlyphVector
ix = new int[numEntries];
for (int i = 0; i < numEntries; i++)
- ix[i] = glyphCharIndex (beginGlyphIndex + i);
+ ix[i] = getGlyphCharIndex (beginGlyphIndex + i);
return ix;
}
public int getGlyphCode (int glyphIndex)
{
- return glyphCode (glyphIndex);
+ return codes[glyphIndex];
}
public int[] getGlyphCodes (int beginGlyphIndex, int numEntries,
int[] codeReturn)
{
- int ix[] = codeReturn;
- if (ix == null)
- ix = new int[numEntries];
+ if (codeReturn == null)
+ codeReturn = new int[numEntries];
- for (int i = 0; i < numEntries; i++)
- ix[i] = glyphCode (beginGlyphIndex + i);
- return ix;
+ System.arraycopy(codes, beginGlyphIndex, codeReturn, 0, numEntries);
+ return codeReturn;
}
- public Shape getGlyphLogicalBounds (int glyphIndex)
+ public Shape getGlyphLogicalBounds (int i)
{
- double extents[] = glyphLogicalExtents (glyphIndex);
- return new Rectangle2D.Double (extents[0], extents[1],
- extents[2], extents[3]);
+ return new Rectangle2D.Double (extents[8*i], extents[8*i + 1],
+ extents[8*i + 2], extents[8*i + 3]);
}
- public GlyphMetrics getGlyphMetrics (int glyphIndex)
+ public GlyphMetrics getGlyphMetrics (int i)
{
- double extents[] = glyphLogicalExtents (glyphIndex);
- Rectangle2D log_bounds = new Rectangle2D.Double (extents[0], extents[1],
- extents[2], extents[3]);
-
- extents = glyphInkExtents (glyphIndex);
- Rectangle2D ink_bounds = new Rectangle2D.Double (extents[0], extents[1],
- extents[2], extents[3]);
-
- boolean is_horizontal = glyphIsHorizontal (glyphIndex);
-
- return new GlyphMetrics (is_horizontal,
- (float)(log_bounds.getWidth() + log_bounds.getX()),
- (float)(log_bounds.getHeight() + log_bounds.getY()),
- ink_bounds, GlyphMetrics.STANDARD);
+ // FIXME: pango does not yield vertical layout information at the
+ // moment.
+
+ boolean is_horizontal = true;
+ double advanceX = extents[8*i + 2]; // "logical width" == advanceX
+ double advanceY = 0;
+
+ return new GlyphMetrics (is_horizontal,
+ (float) advanceX, (float) advanceY,
+ (Rectangle2D) getGlyphVisualBounds(i),
+ GlyphMetrics.STANDARD);
}
public Shape getGlyphOutline (int glyphIndex)
@@ -210,20 +214,18 @@ public class GdkGlyphVector extends GlyphVector
throw new UnsupportedOperationException ();
}
- public Rectangle getGlyphPixelBounds (int glyphIndex,
+ public Rectangle getGlyphPixelBounds (int i,
FontRenderContext renderFRC,
float x, float y)
{
- double extents[] = glyphInkExtents(glyphIndex);
- return new Rectangle ((int)x, (int)y, (int)extents[2], (int)extents[3]);
+ return new Rectangle((int) x, (int) y,
+ (int) extents[8*i + 6], (int) extents[8*i + 7]);
}
- public Point2D getGlyphPosition (int glyphIndex)
+ public Point2D getGlyphPosition (int i)
{
- float[] ret = new float[2 * (glyphIndex + 1)];
- getGlyphPositions (0, glyphIndex + 1, ret);
- return new Point2D.Float (ret[2 * glyphIndex],
- ret[2 * glyphIndex + 1]);
+ return new Point2D.Double (extents[10*i + 8],
+ extents[10*i + 9]);
}
public float[] getGlyphPositions (int beginGlyphIndex,
@@ -234,35 +236,25 @@ public class GdkGlyphVector extends GlyphVector
if (fx == null)
fx = new float[numEntries * 2];
-
- float x = 0.0f;
- float y = 0.0f;
for (int i = 0; i < numEntries; ++i)
{
- boolean is_horizontal = glyphIsHorizontal (beginGlyphIndex + i);
- double log_extents[] = glyphLogicalExtents (beginGlyphIndex + i);
- fx[2*i] = x + (float)log_extents[0]; // x offset
- fx[2*i + 1] = y + (float)log_extents[1]; // y offset
- if (is_horizontal)
- x += (float)log_extents[2]; // x advance ("logical width") in pango-ese
- else
- y += (float)log_extents[3]; // y advance ("logical height") in pango-ese
+ fx[2*i ] = (float) extents[10*i + 8];
+ fx[2*i + 1] = (float) extents[10*i + 9];
}
return fx;
}
public AffineTransform getGlyphTransform (int glyphIndex)
{
- // glyphs don't have independent transforms in these simple glyph
+ // Glyphs don't have independent transforms in these simple glyph
// vectors; docs specify null is an ok return here.
return null;
}
- public Shape getGlyphVisualBounds (int glyphIndex)
+ public Shape getGlyphVisualBounds (int i)
{
- double extents[] = glyphInkExtents (glyphIndex);
- return new Rectangle2D.Double (extents[0], extents[1],
- extents[2], extents[3]);
+ return new Rectangle2D.Double(extents[8*i + 4], extents[8*i + 5],
+ extents[8*i + 6], extents[8*i + 7]);
}
public int getLayoutFlags ()
@@ -272,14 +264,12 @@ public class GdkGlyphVector extends GlyphVector
public Rectangle2D getLogicalBounds ()
{
- double extents[] = allLogicalExtents ();
- return new Rectangle2D.Double (extents[0], extents[1],
- extents[2], extents[3]);
+ return allLogical;
}
public int getNumGlyphs ()
{
- return numGlyphs ();
+ return codes.length;
}
public Shape getOutline ()
@@ -290,26 +280,28 @@ public class GdkGlyphVector extends GlyphVector
public Rectangle getPixelBounds (FontRenderContext renderFRC,
float x, float y)
{
- double extents[] = allInkExtents();
- return new Rectangle ((int)x, (int)y,
- (int)extents[2], (int)extents[3]);
+ return new Rectangle((int)x,
+ (int)y,
+ (int) allVisual.getWidth(),
+ (int) allVisual.getHeight());
}
public Rectangle2D getVisualBounds ()
{
- double extents[] = allInkExtents();
- return new Rectangle2D.Double (extents[0], extents[1],
- extents[2], extents[3]);
+ return allVisual;
}
public void performDefaultLayout ()
{
}
- public void setGlyphPosition (int glyphIndex, Point2D newPos)
+ public void setGlyphPosition (int i, Point2D newPos)
{
- // should we be ok twiddling pango's structure here?
- throw new UnsupportedOperationException ();
+ extents[8*i ] = newPos.getX();
+ extents[8*i + 1] = newPos.getY();
+
+ extents[8*i + 4] = newPos.getX();
+ extents[8*i + 5] = newPos.getY();
}
public void setGlyphTransform (int glyphIndex,
@@ -327,8 +319,31 @@ public class GdkGlyphVector extends GlyphVector
if (! (gv instanceof GdkGlyphVector))
return false;
- GdkGlyphVector ggv = (GdkGlyphVector)gv;
- return isEqual(ggv);
+ GdkGlyphVector ggv = (GdkGlyphVector) gv;
+
+ if ((ggv.codes.length != this.codes.length)
+ || (ggv.extents.length != this.extents.length))
+ return false;
+
+ if ((ggv.font == null && this.font != null)
+ || (ggv.font != null && this.font == null)
+ || (!ggv.font.equals(this.font)))
+ return false;
+
+ if ((ggv.fontRenderContext == null && this.fontRenderContext != null)
+ || (ggv.fontRenderContext != null && this.fontRenderContext == null)
+ || (!ggv.fontRenderContext.equals(this.fontRenderContext)))
+ return false;
+
+ for (int i = 0; i < ggv.codes.length; ++i)
+ if (ggv.codes[i] != this.codes[i])
+ return false;
+
+ for (int i = 0; i < ggv.extents.length; ++i)
+ if (ggv.extents[i] != this.extents[i])
+ return false;
+
+ return true;
}
public GlyphJustificationInfo getGlyphJustificationInfo(int idx)
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphics.java b/libjava/gnu/java/awt/peer/gtk/GdkGraphics.java
index 5aacf5296c6..7361b291c94 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGraphics.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphics.java
@@ -1,5 +1,5 @@
/* GdkGraphics.java
- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -108,7 +108,7 @@ public class GdkGraphics extends Graphics
native void connectSignals (GtkComponentPeer component);
- public native void clearRect (int x, int y, int width, int height);
+ public native void clearRect(int x, int y, int width, int height);
public void clipRect (int x, int y, int width, int height)
{
@@ -119,15 +119,15 @@ public class GdkGraphics extends Graphics
setClipRectangle (clip.x, clip.y, clip.width, clip.height);
}
- native public void copyArea (int x, int y, int width, int height,
- int dx, int dy);
+ public native void copyArea(int x, int y, int width, int height,
+ int dx, int dy);
public Graphics create ()
{
return new GdkGraphics (this);
}
- native public void dispose ();
+ public native void dispose();
native void copyPixmap (Graphics g, int x, int y, int width, int height);
native void copyAndScalePixmap (Graphics g, boolean flip_x, boolean flip_y,
@@ -316,22 +316,22 @@ public class GdkGraphics extends Graphics
SystemColor.window, observer);
}
- native public void drawLine (int x1, int y1, int x2, int y2);
+ public native void drawLine(int x1, int y1, int x2, int y2);
- native public void drawArc (int x, int y, int width, int height,
- int startAngle, int arcAngle);
- native public void fillArc (int x, int y, int width, int height,
- int startAngle, int arcAngle);
- native public void drawOval(int x, int y, int width, int height);
- native public void fillOval(int x, int y, int width, int height);
+ public native void drawArc(int x, int y, int width, int height,
+ int startAngle, int arcAngle);
+ public native void fillArc(int x, int y, int width, int height,
+ int startAngle, int arcAngle);
+ public native void drawOval(int x, int y, int width, int height);
+ public native void fillOval(int x, int y, int width, int height);
- native public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
- native public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints);
+ public native void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
+ public native void fillPolygon(int[] xPoints, int[] yPoints, int nPoints);
- native public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints);
+ public native void drawPolyline(int[] xPoints, int[] yPoints, int nPoints);
- native public void drawRect(int x, int y, int width, int height);
- native public void fillRect (int x, int y, int width, int height);
+ public native void drawRect(int x, int y, int width, int height);
+ public native void fillRect(int x, int y, int width, int height);
GdkFontPeer getFontPeer()
{
@@ -426,7 +426,8 @@ public class GdkGraphics extends Graphics
public void setClip (int x, int y, int width, int height)
{
- if (component != null && ! component.isRealized ())
+ if ((component != null && ! component.isRealized ())
+ || clip == null)
return;
clip.x = x;
@@ -447,7 +448,7 @@ public class GdkGraphics extends Graphics
setClip (clip.getBounds ());
}
- native private void setFGColor (int red, int green, int blue);
+ private native void setFGColor(int red, int green, int blue);
public void setColor (Color c)
{
@@ -489,7 +490,7 @@ public class GdkGraphics extends Graphics
color.getBlue () ^ xorColor.getBlue ());
}
- native public void translateNative (int x, int y);
+ public native void translateNative(int x, int y);
public void translate (int x, int y)
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java b/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
index 82de03d5aec..513c75c094a 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
@@ -1,5 +1,5 @@
-/* GdkGraphics2D.java
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* GdkGraphics2D.java --
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,6 @@ package gnu.java.awt.peer.gtk;
import gnu.classpath.Configuration;
import gnu.java.awt.ClasspathToolkit;
-import gnu.java.awt.peer.ClasspathFontPeer;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
@@ -60,17 +59,15 @@ import java.awt.Shape;
import java.awt.Stroke;
import java.awt.TexturePaint;
import java.awt.Toolkit;
-import java.awt.color.ColorSpace;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
-import java.awt.font.GlyphJustificationInfo;
+import java.awt.geom.AffineTransform;
import java.awt.geom.Arc2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
-import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
@@ -78,16 +75,17 @@ import java.awt.image.ColorModel;
import java.awt.image.CropImageFilter;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferInt;
+import java.awt.image.DirectColorModel;
import java.awt.image.FilteredImageSource;
-import java.awt.image.ImageConsumer;
import java.awt.image.ImageObserver;
import java.awt.image.ImagingOpException;
-import java.awt.image.SampleModel;
+import java.awt.image.MultiPixelPackedSampleModel;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
+import java.awt.image.SampleModel;
import java.awt.image.WritableRaster;
-import java.awt.image.renderable.RenderableImage;
import java.awt.image.renderable.RenderContext;
+import java.awt.image.renderable.RenderableImage;
import java.text.AttributedCharacterIterator;
import java.util.HashMap;
import java.util.Map;
@@ -95,7 +93,6 @@ import java.util.Stack;
public class GdkGraphics2D extends Graphics2D
{
-
//////////////////////////////////////
////// State Management Methods //////
//////////////////////////////////////
@@ -103,14 +100,14 @@ public class GdkGraphics2D extends Graphics2D
static
{
if (Configuration.INIT_LOAD_LIBRARY)
- {
- System.loadLibrary("gtkpeer");
- }
+ System.loadLibrary("gtkpeer");
- if (GtkToolkit.useGraphics2D ())
- initStaticState ();
+ if (GtkToolkit.useGraphics2D())
+ initStaticState();
}
- native static void initStaticState ();
+
+ static native void initStaticState();
+
private final int native_state = GtkGenericPeer.getUniqueInteger();
private Paint paint;
@@ -120,247 +117,256 @@ public class GdkGraphics2D extends Graphics2D
private Shape clip;
private AffineTransform transform;
private GtkComponentPeer component;
- private Font font;
+ private Font font;
private RenderingHints hints;
private BufferedImage bimage;
-
+ private boolean pixelConversionRequired;
+ private int[] pixelBuffer;
private Composite comp;
-
private Stack stateStack;
-
- native private void initState (GtkComponentPeer component);
- native private void initState (int width, int height);
- native private void copyState (GdkGraphics2D g);
- native public void dispose ();
- native private int[] getImagePixels();
- native private void cairoSurfaceSetFilter(int filter);
- native void connectSignals (GtkComponentPeer component);
- public void finalize ()
+ private native void initState(GtkComponentPeer component);
+ private native void initState(int width, int height);
+ private native void initState(int[] pixes, int width, int height);
+ private native void copyState(GdkGraphics2D g);
+ public native void dispose();
+ private native void cairoSurfaceSetFilter(int filter);
+ native void connectSignals(GtkComponentPeer component);
+
+ public void finalize()
{
dispose();
}
- public Graphics create ()
+ public Graphics create()
{
- return new GdkGraphics2D (this);
+ return new GdkGraphics2D(this);
}
- public Graphics create (int x, int y, int width, int height)
+ public Graphics create(int x, int y, int width, int height)
{
- return new GdkGraphics2D (width, height);
+ return new GdkGraphics2D(width, height);
}
- GdkGraphics2D (GdkGraphics2D g)
+ GdkGraphics2D(GdkGraphics2D g)
{
paint = g.paint;
stroke = g.stroke;
- setRenderingHints (g.hints);
+ setRenderingHints(g.hints);
if (g.fg.getAlpha() != -1)
- fg = new Color (g.fg.getRed (), g.fg.getGreen (),
- g.fg.getBlue (), g.fg.getAlpha ());
- else
- fg = new Color (g.fg.getRGB ());
+ fg = new Color(g.fg.getRed(), g.fg.getGreen(), g.fg.getBlue(),
+ g.fg.getAlpha());
+ else
+ fg = new Color(g.fg.getRGB());
if (g.bg.getAlpha() != -1)
- bg = new Color(g.bg.getRed (), g.bg.getGreen (),
- g.bg.getBlue (), g.bg.getAlpha ());
+ bg = new Color(g.bg.getRed(), g.bg.getGreen(), g.bg.getBlue(),
+ g.bg.getAlpha());
else
- bg = new Color (g.bg.getRGB ());
+ bg = new Color(g.bg.getRGB());
if (g.clip == null)
clip = null;
else
- clip = new Rectangle (g.getClipBounds ());
+ clip = new Rectangle(g.getClipBounds());
if (g.transform == null)
- transform = new AffineTransform ();
+ transform = new AffineTransform();
else
- transform = new AffineTransform (g.transform);
+ transform = new AffineTransform(g.transform);
font = g.font;
component = g.component;
- copyState (g);
-
- setColor (fg);
- setBackground (bg);
- setPaint (paint);
- setStroke (stroke);
- setTransform (transform);
- setClip (clip);
+ copyState(g);
+
+ setColor(fg);
+ setBackground(bg);
+ setPaint(paint);
+ setStroke(stroke);
+ setTransform(transform);
+ setClip(clip);
stateStack = new Stack();
}
- GdkGraphics2D (int width, int height)
+ GdkGraphics2D(int width, int height)
{
- initState (width, height);
+ initState(width, height);
setColor(Color.black);
- setBackground (Color.black);
- setPaint (getColor());
- setFont (new Font("SansSerif", Font.PLAIN, 12));
- setTransform (new AffineTransform ());
- setStroke (new BasicStroke ());
- setRenderingHints (getDefaultHints());
+ setBackground(Color.black);
+ setPaint(getColor());
+ setFont(new Font("SansSerif", Font.PLAIN, 12));
+ setTransform(new AffineTransform());
+ setStroke(new BasicStroke());
+ setRenderingHints(getDefaultHints());
stateStack = new Stack();
}
- GdkGraphics2D (GtkComponentPeer component)
+ GdkGraphics2D(GtkComponentPeer component)
{
this.component = component;
-
- setFont (new Font("SansSerif", Font.PLAIN, 12));
-
- if (component.isRealized ())
- initComponentGraphics2D ();
+
+ if (component.isRealized())
+ initComponentGraphics2D();
else
- connectSignals (component);
+ connectSignals(component);
}
- void initComponentGraphics2D ()
+ void initComponentGraphics2D()
{
- initState (component);
+ initState(component);
- setColor (component.awtComponent.getForeground ());
- setBackground (component.awtComponent.getBackground ());
- setPaint (getColor());
- setTransform (new AffineTransform ());
- setStroke (new BasicStroke ());
- setRenderingHints (getDefaultHints());
+ setColor(component.awtComponent.getForeground());
+ setBackground(component.awtComponent.getBackground());
+ setPaint(getColor());
+ setTransform(new AffineTransform());
+ setStroke(new BasicStroke());
+ setRenderingHints(getDefaultHints());
+ setFont(new Font("SansSerif", Font.PLAIN, 12));
- stateStack = new Stack ();
+ stateStack = new Stack();
}
- GdkGraphics2D (BufferedImage bimage)
+ GdkGraphics2D(BufferedImage bimage)
{
-
- this.bimage = bimage;
- initState (bimage.getWidth(), bimage.getHeight());
+ this.bimage = bimage;
+ this.pixelBuffer = findSimpleIntegerArray(bimage.getColorModel(),
+ bimage.getRaster());
+ if (this.pixelBuffer == null)
+ {
+ this.pixelBuffer = new int[bimage.getRaster().getWidth() * bimage.getRaster()
+ .getHeight()];
+ this.pixelConversionRequired = true;
+ }
+ else
+ {
+ this.pixelConversionRequired = false;
+ }
+
+ initState(this.pixelBuffer, bimage.getWidth(), bimage.getHeight());
setColor(Color.black);
- setBackground (Color.black);
- setPaint (getColor());
- setFont (new Font("SansSerif", Font.PLAIN, 12));
- setTransform (new AffineTransform ());
- setStroke (new BasicStroke ());
- setRenderingHints (getDefaultHints());
+ setBackground(Color.black);
+ setPaint(getColor());
+ setFont(new Font("SansSerif", Font.PLAIN, 12));
+ setTransform(new AffineTransform());
+ setStroke(new BasicStroke());
+ setRenderingHints(getDefaultHints());
stateStack = new Stack();
-
+
// draw current buffered image to the pixmap associated
- // with it.
-
- drawImage (bimage, new AffineTransform (1,0,0,1,0,0), bg, null);
+ // with it, if the image is not equal to our paint buffer.
+ if (pixelConversionRequired)
+ drawImage(bimage, new AffineTransform(1, 0, 0, 1, 0, 0), bg, null);
}
-
////////////////////////////////////
////// Native Drawing Methods //////
////////////////////////////////////
// GDK drawing methods
- private native void gdkDrawDrawable (GdkGraphics2D other, int x, int y);
+ private native void gdkDrawDrawable(GdkGraphics2D other, int x, int y);
// drawing utility methods
- private native void drawPixels (int pixels[], int w, int h, int stride, double i2u[]);
- private native void setTexturePixels (int pixels[], int w, int h, int stride);
- private native void setGradient (double x1, double y1,
- double x2, double y2,
- int r1, int g1, int b1, int a1,
- int r2, int g2, int b2, int a2,
- boolean cyclic);
+ private native void drawPixels(int[] pixels, int w, int h, int stride,
+ double[] i2u);
+ private native void setTexturePixels(int[] pixels, int w, int h, int stride);
+ private native void setGradient(double x1, double y1, double x2, double y2,
+ int r1, int g1, int b1, int a1, int r2,
+ int g2, int b2, int a2, boolean cyclic);
// simple passthroughs to cairo
- private native void cairoSave ();
- private native void cairoRestore ();
- private native void cairoSetMatrix (double m[]);
- private native void cairoSetOperator (int cairoOperator);
- private native void cairoSetRGBColor (double red, double green, double blue);
- private native void cairoSetAlpha (double alpha);
- private native void cairoSetFillRule (int cairoFillRule);
- private native void cairoSetLineWidth (double width);
- private native void cairoSetLineCap (int cairoLineCap);
- private native void cairoSetLineJoin (int cairoLineJoin);
- private native void cairoSetDash (double dashes[], int ndash, double offset);
- private native void cairoSetMiterLimit (double limit);
- private native void cairoNewPath ();
- private native void cairoMoveTo (double x, double y);
- private native void cairoLineTo (double x, double y);
- private native void cairoCurveTo (double x1, double y1,
- double x2, double y2,
- double x3, double y3);
- private native void cairoRelMoveTo (double dx, double dy);
- private native void cairoRelLineTo (double dx, double dy);
- private native void cairoRelCurveTo (double dx1, double dy1,
- double dx2, double dy2,
- double dx3, double dy3);
- private native void cairoRectangle (double x, double y,
- double width, double height);
- private native void cairoClosePath ();
- private native void cairoStroke ();
- private native void cairoFill ();
- private native void cairoClip ();
-
+ private native void cairoSave();
+ private native void cairoRestore();
+ private native void cairoSetMatrix(double[] m);
+ private native void cairoSetOperator(int cairoOperator);
+ private native void cairoSetRGBColor(double red, double green, double blue);
+ private native void cairoSetAlpha(double alpha);
+ private native void cairoSetFillRule(int cairoFillRule);
+ private native void cairoSetLineWidth(double width);
+ private native void cairoSetLineCap(int cairoLineCap);
+ private native void cairoSetLineJoin(int cairoLineJoin);
+ private native void cairoSetDash(double[] dashes, int ndash, double offset);
+
+ private native void cairoSetMiterLimit(double limit);
+ private native void cairoNewPath();
+ private native void cairoMoveTo(double x, double y);
+ private native void cairoLineTo(double x, double y);
+ private native void cairoCurveTo(double x1, double y1, double x2, double y2,
+ double x3, double y3);
+ private native void cairoRelMoveTo(double dx, double dy);
+ private native void cairoRelLineTo(double dx, double dy);
+ private native void cairoRelCurveTo(double dx1, double dy1, double dx2,
+ double dy2, double dx3, double dy3);
+ private native void cairoRectangle(double x, double y, double width,
+ double height);
+ private native void cairoClosePath();
+ private native void cairoStroke();
+ private native void cairoFill();
+ private native void cairoClip();
/////////////////////////////////////////////
////// General Drawing Support Methods //////
/////////////////////////////////////////////
- private class DrawState
- {
- private Paint paint;
- private Stroke stroke;
- private Color fg;
- private Color bg;
- private Shape clip;
- private AffineTransform transform;
- private Font font;
- private Composite comp;
- DrawState (GdkGraphics2D g)
- {
- this.paint = g.paint;
- this.stroke = g.stroke;
- this.fg = g.fg;
- this.bg = g.bg;
- this.clip = g.clip;
- if (g.transform != null)
- this.transform = (AffineTransform) g.transform.clone();
- this.font = g.font;
- this.comp = g.comp;
- }
- public void restore(GdkGraphics2D g)
- {
- g.paint = this.paint;
- g.stroke = this.stroke;
- g.fg = this.fg;
- g.bg = this.bg;
- g.clip = this.clip;
- g.transform = this.transform;
- g.font = this.font;
- g.comp = this.comp;
- }
- }
-
- private void stateSave ()
+ private class DrawState
+ {
+ private Paint paint;
+ private Stroke stroke;
+ private Color fg;
+ private Color bg;
+ private Shape clip;
+ private AffineTransform transform;
+ private Font font;
+ private Composite comp;
+
+ DrawState(GdkGraphics2D g)
{
- stateStack.push (new DrawState (this));
- cairoSave ();
+ this.paint = g.paint;
+ this.stroke = g.stroke;
+ this.fg = g.fg;
+ this.bg = g.bg;
+ this.clip = g.clip;
+ if (g.transform != null)
+ this.transform = (AffineTransform) g.transform.clone();
+ this.font = g.font;
+ this.comp = g.comp;
}
- private void stateRestore ()
+ public void restore(GdkGraphics2D g)
{
- ((DrawState)(stateStack.pop ())).restore (this);
- cairoRestore ();
+ g.paint = this.paint;
+ g.stroke = this.stroke;
+ g.fg = this.fg;
+ g.bg = this.bg;
+ g.clip = this.clip;
+ g.transform = this.transform;
+ g.font = this.font;
+ g.comp = this.comp;
}
+ }
+
+ private void stateSave()
+ {
+ stateStack.push(new DrawState(this));
+ cairoSave();
+ }
+
+ private void stateRestore()
+ {
+ ((DrawState) (stateStack.pop())).restore(this);
+ cairoRestore();
+ }
// Some operations (drawing rather than filling) require that their
// coords be shifted to land on 0.5-pixel boundaries, in order to land on
// "middle of pixel" coordinates and light up complete pixels.
-
private boolean shiftDrawCalls = false;
- private final double shifted(double coord, boolean doShift)
+
+ private double shifted(double coord, boolean doShift)
{
if (doShift)
return Math.floor(coord) + 0.5;
@@ -368,410 +374,381 @@ public class GdkGraphics2D extends Graphics2D
return coord;
}
- private final void walkPath(PathIterator p, boolean doShift)
+ private void walkPath(PathIterator p, boolean doShift)
{
double x = 0;
double y = 0;
- double coords[] = new double[6];
+ double[] coords = new double[6];
- cairoSetFillRule (p.getWindingRule ());
- for ( ; ! p.isDone (); p.next())
+ cairoSetFillRule(p.getWindingRule());
+ for (; ! p.isDone(); p.next())
{
- int seg = p.currentSegment (coords);
- switch(seg)
- {
-
- case PathIterator.SEG_MOVETO:
- x = shifted(coords[0], doShift);
- y = shifted(coords[1], doShift);
- cairoMoveTo (x, y);
- break;
-
- case PathIterator.SEG_LINETO:
- x = shifted(coords[0], doShift);
- y = shifted(coords[1], doShift);
- cairoLineTo (x, y);
- break;
-
- case PathIterator.SEG_QUADTO:
-
- // splitting a quadratic bezier into a cubic:
- // see: http://pfaedit.sourceforge.net/bezier.html
-
- double x1 = x + (2.0/3.0) * (shifted(coords[0], doShift) - x);
- double y1 = y + (2.0/3.0) * (shifted(coords[1], doShift) - y);
-
- double x2 = x1 + (1.0/3.0) * (shifted(coords[2], doShift) - x);
- double y2 = y1 + (1.0/3.0) * (shifted(coords[3], doShift) - y);
-
- x = shifted(coords[2], doShift);
- y = shifted(coords[3], doShift);
- cairoCurveTo (x1, y1,
- x2, y2,
- x, y);
- break;
-
- case PathIterator.SEG_CUBICTO:
- x = shifted(coords[4], doShift);
- y = shifted(coords[5], doShift);
- cairoCurveTo (shifted(coords[0], doShift), shifted(coords[1], doShift),
- shifted(coords[2], doShift), shifted(coords[3], doShift),
- x, y);
- break;
-
- case PathIterator.SEG_CLOSE:
- cairoClosePath ();
- break;
- }
- }
- }
-
-
- private final Map getDefaultHints()
- {
- HashMap defaultHints = new HashMap ();
-
- defaultHints.put (RenderingHints.KEY_TEXT_ANTIALIASING,
- RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
-
- defaultHints.put (RenderingHints.KEY_STROKE_CONTROL,
- RenderingHints.VALUE_STROKE_DEFAULT);
-
- defaultHints.put (RenderingHints.KEY_FRACTIONALMETRICS,
- RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
-
- defaultHints.put (RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_OFF);
-
- defaultHints.put (RenderingHints.KEY_RENDERING,
- RenderingHints.VALUE_RENDER_DEFAULT);
-
- return defaultHints;
-
+ int seg = p.currentSegment(coords);
+ switch (seg)
+ {
+ case PathIterator.SEG_MOVETO:
+ x = shifted(coords[0], doShift);
+ y = shifted(coords[1], doShift);
+ cairoMoveTo(x, y);
+ break;
+ case PathIterator.SEG_LINETO:
+ x = shifted(coords[0], doShift);
+ y = shifted(coords[1], doShift);
+ cairoLineTo(x, y);
+ break;
+ case PathIterator.SEG_QUADTO:
+ // splitting a quadratic bezier into a cubic:
+ // see: http://pfaedit.sourceforge.net/bezier.html
+ double x1 = x + (2.0 / 3.0) * (shifted(coords[0], doShift) - x);
+ double y1 = y + (2.0 / 3.0) * (shifted(coords[1], doShift) - y);
+
+ double x2 = x1 + (1.0 / 3.0) * (shifted(coords[2], doShift) - x);
+ double y2 = y1 + (1.0 / 3.0) * (shifted(coords[3], doShift) - y);
+
+ x = shifted(coords[2], doShift);
+ y = shifted(coords[3], doShift);
+ cairoCurveTo(x1, y1, x2, y2, x, y);
+ break;
+ case PathIterator.SEG_CUBICTO:
+ x = shifted(coords[4], doShift);
+ y = shifted(coords[5], doShift);
+ cairoCurveTo(shifted(coords[0], doShift),
+ shifted(coords[1], doShift),
+ shifted(coords[2], doShift),
+ shifted(coords[3], doShift), x, y);
+ break;
+ case PathIterator.SEG_CLOSE:
+ cairoClosePath();
+ break;
+ }
+ }
}
- private final void updateBufferedImage()
+ private Map getDefaultHints()
{
- int[] pixels = getImagePixels();
- updateImagePixels(pixels);
- }
+ HashMap defaultHints = new HashMap();
-
- private final boolean isBufferedImageGraphics ()
- {
- return bimage != null;
+ defaultHints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
+ RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+
+ defaultHints.put(RenderingHints.KEY_STROKE_CONTROL,
+ RenderingHints.VALUE_STROKE_DEFAULT);
+
+ defaultHints.put(RenderingHints.KEY_FRACTIONALMETRICS,
+ RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
+
+ defaultHints.put(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_OFF);
+
+ defaultHints.put(RenderingHints.KEY_RENDERING,
+ RenderingHints.VALUE_RENDER_DEFAULT);
+
+ return defaultHints;
}
-
- private final void updateImagePixels (int[] pixels)
+
+ public static int[] findSimpleIntegerArray (ColorModel cm, Raster raster)
{
+ if (cm == null || raster == null)
+ return null;
- // This function can only be used if
- // this graphics object is used to draw into
- // buffered image
-
- if (! isBufferedImageGraphics ())
- return;
+ if (! cm.getColorSpace().isCS_sRGB())
+ return null;
- WritableRaster raster = bimage.getRaster();
- DataBuffer db = raster.getDataBuffer ();
+ if (! (cm instanceof DirectColorModel))
+ return null;
- // update pixels in the bufferedImage
+ DirectColorModel dcm = (DirectColorModel) cm;
- if (raster.getSampleModel ().getDataType () == DataBuffer.TYPE_INT
- && db instanceof DataBufferInt
- && db.getNumBanks () == 1)
- {
+ if (dcm.getRedMask() != 0x00FF0000 || dcm.getGreenMask() != 0x0000FF00
+ || dcm.getBlueMask() != 0x000000FF)
+ return null;
- // single bank, ARGB-ints buffer in sRGB space
- DataBufferInt dbi = (DataBufferInt) raster.getDataBuffer ();
+ if (! (raster instanceof WritableRaster))
+ return null;
- for (int i=0; i < pixels.length; i++)
- dbi.setElem(i, pixels[i]);
-
- }
- else
- {
- bimage.getRaster().setPixels (0, 0, raster.getWidth (),
- raster.getHeight (), pixels);
- }
- }
+ if (raster.getSampleModel().getDataType() != DataBuffer.TYPE_INT)
+ return null;
+
+ if (! (raster.getDataBuffer() instanceof DataBufferInt))
+ return null;
+ DataBufferInt db = (DataBufferInt) raster.getDataBuffer();
- private final boolean drawImage(Image img,
- AffineTransform xform,
- Color bgcolor,
- ImageObserver obs)
+ if (db.getNumBanks() != 1)
+ return null;
+
+ // Finally, we have determined that this is a single bank, [A]RGB-int
+ // buffer in sRGB space. It's worth checking all this, because it means
+ // that cairo can paint directly into the data buffer, which is very
+ // fast compared to all the normal copying and converting.
+
+ return db.getData();
+ }
+
+ private void updateBufferedImage()
{
+ if (bimage != null && pixelConversionRequired)
+ {
+ int height = bimage.getHeight();
+ int width = bimage.getWidth();
+ for (int y = 0; y < height; ++y)
+ for (int x = 0; x < width; ++x)
+ bimage.setRGB(x, y, pixelBuffer[y*width+height]);
+ }
+ }
+ private boolean drawImage(Image img, AffineTransform xform,
+ Color bgcolor, ImageObserver obs)
+ {
if (img == null)
return false;
- if (img instanceof GtkOffScreenImage &&
- img.getGraphics () instanceof GdkGraphics2D &&
- (xform == null
- || xform.getType () == AffineTransform.TYPE_IDENTITY
- || xform.getType () == AffineTransform.TYPE_TRANSLATION)
- )
+ if (img instanceof GtkOffScreenImage
+ && img.getGraphics() instanceof GdkGraphics2D
+ && (xform == null || xform.getType() == AffineTransform.TYPE_IDENTITY
+ || xform.getType() == AffineTransform.TYPE_TRANSLATION))
{
- // we are being asked to flush a double buffer from Gdk
- GdkGraphics2D g2 = (GdkGraphics2D) img.getGraphics ();
- gdkDrawDrawable (g2, (int)xform.getTranslateX(), (int)xform.getTranslateY());
-
- if (isBufferedImageGraphics ())
- updateBufferedImage();
-
- return true;
+ // we are being asked to flush a double buffer from Gdk
+ GdkGraphics2D g2 = (GdkGraphics2D) img.getGraphics();
+ gdkDrawDrawable(g2, (int) xform.getTranslateX(),
+ (int) xform.getTranslateY());
+
+ updateBufferedImage();
+
+ return true;
}
else
- {
-
- // In this case, xform is an AffineTransform that transforms bounding
- // box of the specified image from image space to user space. However
- // when we pass this transform to cairo, cairo will use this transform
- // to map "user coordinates" to "pixel" coordinates, which is the
- // other way around. Therefore to get the "user -> pixel" transform
- // that cairo wants from "image -> user" transform that we currently
- // have, we will need to invert the transformation matrix.
-
- AffineTransform invertedXform = new AffineTransform();
-
- try
- {
- invertedXform = xform.createInverse();
- if (img instanceof BufferedImage)
- {
- // draw an image which has actually been loaded
- // into memory fully
-
- BufferedImage b = (BufferedImage) img;
- return drawRaster (b.getColorModel (),
- b.getData (),
- invertedXform,
- bgcolor);
- }
- else
- {
- return this.drawImage(GdkPixbufDecoder.createBufferedImage(img.getSource()),
- xform, bgcolor,obs);
- }
- }
- catch (NoninvertibleTransformException e)
- {
- throw new ImagingOpException("Unable to invert transform "
- + xform.toString());
- }
+ {
+ // In this case, xform is an AffineTransform that transforms bounding
+ // box of the specified image from image space to user space. However
+ // when we pass this transform to cairo, cairo will use this transform
+ // to map "user coordinates" to "pixel" coordinates, which is the
+ // other way around. Therefore to get the "user -> pixel" transform
+ // that cairo wants from "image -> user" transform that we currently
+ // have, we will need to invert the transformation matrix.
+ AffineTransform invertedXform = new AffineTransform();
+
+ try
+ {
+ invertedXform = xform.createInverse();
+ if (img instanceof BufferedImage)
+ {
+ // draw an image which has actually been loaded
+ // into memory fully
+ BufferedImage b = (BufferedImage) img;
+ return drawRaster(b.getColorModel(), b.getData(),
+ invertedXform, bgcolor);
+ }
+ else
+ return this.drawImage(GdkPixbufDecoder.createBufferedImage(img
+ .getSource()),
+ xform, bgcolor, obs);
+ }
+ catch (NoninvertibleTransformException e)
+ {
+ throw new ImagingOpException("Unable to invert transform "
+ + xform.toString());
+ }
}
}
-
//////////////////////////////////////////////////
////// Implementation of Graphics2D Methods //////
//////////////////////////////////////////////////
- public void draw (Shape s)
+ public void draw(Shape s)
{
-
- if (stroke != null &&
- !(stroke instanceof BasicStroke))
+ if (stroke != null && ! (stroke instanceof BasicStroke))
{
- fill (stroke.createStrokedShape (s));
- return;
+ fill(stroke.createStrokedShape(s));
+ return;
}
- cairoNewPath ();
-
+ cairoNewPath();
+
if (s instanceof Rectangle2D)
{
- Rectangle2D r = (Rectangle2D)s;
- cairoRectangle (shifted(r.getX (), shiftDrawCalls),
- shifted(r.getY (), shiftDrawCalls),
- r.getWidth (), r.getHeight ());
+ Rectangle2D r = (Rectangle2D) s;
+ cairoRectangle(shifted(r.getX(), shiftDrawCalls),
+ shifted(r.getY(), shiftDrawCalls), r.getWidth(),
+ r.getHeight());
}
- else
- walkPath (s.getPathIterator (null), shiftDrawCalls);
- cairoStroke ();
-
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ else
+ walkPath(s.getPathIterator(null), shiftDrawCalls);
+ cairoStroke();
+
+ updateBufferedImage();
}
- public void fill (Shape s)
+ public void fill(Shape s)
{
- cairoNewPath ();
+ cairoNewPath();
if (s instanceof Rectangle2D)
{
- Rectangle2D r = (Rectangle2D)s;
- cairoRectangle (r.getX (), r.getY (), r.getWidth (), r.getHeight ());
+ Rectangle2D r = (Rectangle2D) s;
+ cairoRectangle(r.getX(), r.getY(), r.getWidth(), r.getHeight());
}
- else
- walkPath (s.getPathIterator (null), false);
- cairoFill ();
-
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ else
+ walkPath(s.getPathIterator(null), false);
+ cairoFill();
+
+ updateBufferedImage();
}
- public void clip (Shape s)
+ public void clip(Shape s)
{
- // update it
+ // update it
+ if (clip == null || s == null)
+ clip = s;
+ else if (s instanceof Rectangle2D && clip instanceof Rectangle2D)
+ {
+ Rectangle2D r = (Rectangle2D) s;
+ Rectangle2D curr = (Rectangle2D) clip;
+ clip = curr.createIntersection(r);
+ }
+ else
+ throw new UnsupportedOperationException();
- if (clip == null || s == null)
- clip = s;
- else if (s instanceof Rectangle2D
- && clip instanceof Rectangle2D)
+ // draw it
+ if (clip != null)
+ {
+ cairoNewPath();
+ if (clip instanceof Rectangle2D)
{
- Rectangle2D r = (Rectangle2D)s;
- Rectangle2D curr = (Rectangle2D)clip;
- clip = curr.createIntersection (r);
+ Rectangle2D r = (Rectangle2D) clip;
+ cairoRectangle(r.getX(), r.getY(), r.getWidth(), r.getHeight());
}
- else
- throw new UnsupportedOperationException ();
+ else
+ walkPath(clip.getPathIterator(null), false);
- // draw it
- if (clip != null)
- {
- cairoNewPath ();
- if (clip instanceof Rectangle2D)
- {
- Rectangle2D r = (Rectangle2D)clip;
- cairoRectangle (r.getX (), r.getY (),
- r.getWidth (), r.getHeight ());
- }
- else
- walkPath (clip.getPathIterator (null), false);
- // cairoClosePath ();
- cairoClip ();
- }
+ // cairoClosePath ();
+ cairoClip();
+ }
}
- public Paint getPaint ()
+ public Paint getPaint()
{
return paint;
}
- public AffineTransform getTransform ()
+ public AffineTransform getTransform()
{
- return (AffineTransform) transform.clone ();
+ return (AffineTransform) transform.clone();
}
- public void setPaint (Paint p)
+ public void setPaint(Paint p)
{
if (paint == null)
- return;
-
+ return;
+
paint = p;
if (paint instanceof Color)
{
- setColor ((Color) paint);
+ setColor((Color) paint);
}
else if (paint instanceof TexturePaint)
{
- TexturePaint tp = (TexturePaint) paint;
- BufferedImage img = tp.getImage ();
-
- // map the image to the anchor rectangle
+ TexturePaint tp = (TexturePaint) paint;
+ BufferedImage img = tp.getImage();
- int width = (int) tp.getAnchorRect ().getWidth ();
- int height = (int) tp.getAnchorRect ().getHeight ();
-
- double scaleX = width / (double) img.getWidth ();
- double scaleY = width / (double) img.getHeight ();
-
- AffineTransform at = new AffineTransform (scaleX, 0, 0, scaleY, 0, 0);
- AffineTransformOp op = new AffineTransformOp (at, getRenderingHints());
- BufferedImage texture = op.filter(img, null);
- int pixels[] = texture.getRGB (0, 0, width, height, null, 0, width);
- setTexturePixels (pixels, width, height, width);
+ // map the image to the anchor rectangle
+ int width = (int) tp.getAnchorRect().getWidth();
+ int height = (int) tp.getAnchorRect().getHeight();
+
+ double scaleX = width / (double) img.getWidth();
+ double scaleY = width / (double) img.getHeight();
+ AffineTransform at = new AffineTransform(scaleX, 0, 0, scaleY, 0, 0);
+ AffineTransformOp op = new AffineTransformOp(at, getRenderingHints());
+ BufferedImage texture = op.filter(img, null);
+ int[] pixels = texture.getRGB(0, 0, width, height, null, 0, width);
+ setTexturePixels(pixels, width, height, width);
}
else if (paint instanceof GradientPaint)
{
- GradientPaint gp = (GradientPaint) paint;
- Point2D p1 = gp.getPoint1 ();
- Point2D p2 = gp.getPoint2 ();
- Color c1 = gp.getColor1 ();
- Color c2 = gp.getColor2 ();
- setGradient (p1.getX (), p1.getY (),
- p2.getX (), p2.getY (),
- c1.getRed (), c1.getGreen (),
- c1.getBlue (), c1.getAlpha (),
- c2.getRed (), c2.getGreen (),
- c2.getBlue (), c2.getAlpha (),
- gp.isCyclic ());
+ GradientPaint gp = (GradientPaint) paint;
+ Point2D p1 = gp.getPoint1();
+ Point2D p2 = gp.getPoint2();
+ Color c1 = gp.getColor1();
+ Color c2 = gp.getColor2();
+ setGradient(p1.getX(), p1.getY(), p2.getX(), p2.getY(), c1.getRed(),
+ c1.getGreen(), c1.getBlue(), c1.getAlpha(), c2.getRed(),
+ c2.getGreen(), c2.getBlue(), c2.getAlpha(), gp.isCyclic());
}
else
- throw new java.lang.UnsupportedOperationException ();
+ throw new java.lang.UnsupportedOperationException();
}
- public void setTransform (AffineTransform tx)
+ public void setTransform(AffineTransform tx)
{
transform = tx;
if (transform != null)
{
- double m[] = new double[6];
- transform.getMatrix (m);
- cairoSetMatrix (m);
+ double[] m = new double[6];
+ transform.getMatrix(m);
+ cairoSetMatrix(m);
}
}
- public void transform (AffineTransform tx)
+ public void transform(AffineTransform tx)
{
if (transform == null)
- transform = new AffineTransform (tx);
+ transform = new AffineTransform(tx);
else
- transform.concatenate (tx);
- setTransform (transform);
+ transform.concatenate(tx);
+ setTransform(transform);
if (clip != null)
{
- // FIXME: this should actuall try to transform the shape
- // rather than degrade to bounds.
- Rectangle2D r = clip.getBounds2D();
- double[] coords = new double[] { r.getX(), r.getY(),
- r.getX() + r.getWidth(),
- r.getY() + r.getHeight() };
- try
- {
- tx.createInverse().transform(coords, 0, coords, 0, 2);
- r.setRect(coords[0], coords[1],
- coords[2] - coords[0],
- coords[3] - coords[1]);
- clip = r;
- }
- catch (java.awt.geom.NoninvertibleTransformException e)
- {
- }
+ // FIXME: this should actuall try to transform the shape
+ // rather than degrade to bounds.
+ Rectangle2D r = clip.getBounds2D();
+ double[] coords = new double[]
+ {
+ r.getX(), r.getY(), r.getX() + r.getWidth(),
+ r.getY() + r.getHeight()
+ };
+ try
+ {
+ tx.createInverse().transform(coords, 0, coords, 0, 2);
+ r.setRect(coords[0], coords[1], coords[2] - coords[0],
+ coords[3] - coords[1]);
+ clip = r;
+ }
+ catch (java.awt.geom.NoninvertibleTransformException e)
+ {
+ }
}
}
public void rotate(double theta)
{
- transform (AffineTransform.getRotateInstance (theta));
+ transform(AffineTransform.getRotateInstance(theta));
}
public void rotate(double theta, double x, double y)
{
- transform (AffineTransform.getRotateInstance (theta, x, y));
+ transform(AffineTransform.getRotateInstance(theta, x, y));
}
public void scale(double sx, double sy)
{
- transform (AffineTransform.getScaleInstance (sx, sy));
+ transform(AffineTransform.getScaleInstance(sx, sy));
}
- public void translate (double tx, double ty)
+ public void translate(double tx, double ty)
{
- transform (AffineTransform.getTranslateInstance (tx, ty));
+ transform(AffineTransform.getTranslateInstance(tx, ty));
}
- public void translate (int x, int y)
+ public void translate(int x, int y)
{
- translate ((double) x, (double) y);
+ translate((double) x, (double) y);
}
public void shear(double shearX, double shearY)
{
- transform (AffineTransform.getShearInstance (shearX, shearY));
+ transform(AffineTransform.getShearInstance(shearX, shearY));
}
public Stroke getStroke()
@@ -779,173 +756,165 @@ public class GdkGraphics2D extends Graphics2D
return stroke;
}
- public void setStroke (Stroke st)
+ public void setStroke(Stroke st)
{
stroke = st;
if (stroke instanceof BasicStroke)
{
- BasicStroke bs = (BasicStroke) stroke;
- cairoSetLineCap (bs.getEndCap());
- cairoSetLineWidth (bs.getLineWidth());
- cairoSetLineJoin (bs.getLineJoin());
- cairoSetMiterLimit (bs.getMiterLimit());
- float dashes[] = bs.getDashArray();
- if (dashes != null)
- {
- double double_dashes[] = new double[dashes.length];
- for (int i = 0; i < dashes.length; i++)
- double_dashes[i] = dashes[i];
- cairoSetDash (double_dashes, double_dashes.length,
- (double) bs.getDashPhase ());
- }
+ BasicStroke bs = (BasicStroke) stroke;
+ cairoSetLineCap(bs.getEndCap());
+ cairoSetLineWidth(bs.getLineWidth());
+ cairoSetLineJoin(bs.getLineJoin());
+ cairoSetMiterLimit(bs.getMiterLimit());
+ float[] dashes = bs.getDashArray();
+ if (dashes != null)
+ {
+ double[] double_dashes = new double[dashes.length];
+ for (int i = 0; i < dashes.length; i++)
+ double_dashes[i] = dashes[i];
+ cairoSetDash(double_dashes, double_dashes.length,
+ (double) bs.getDashPhase());
+ }
}
}
-
////////////////////////////////////////////////
////// Implementation of Graphics Methods //////
////////////////////////////////////////////////
- public void setPaintMode ()
- {
- setComposite (java.awt.AlphaComposite.SrcOver);
+ public void setPaintMode()
+ {
+ setComposite(java.awt.AlphaComposite.SrcOver);
}
- public void setXORMode (Color c)
- {
- setComposite (new gnu.java.awt.BitwiseXORComposite(c));
+ public void setXORMode(Color c)
+ {
+ setComposite(new gnu.java.awt.BitwiseXORComposite(c));
}
- public void setColor (Color c)
+ public void setColor(Color c)
{
if (c == null)
c = Color.BLACK;
-
+
fg = c;
paint = c;
- cairoSetRGBColor (fg.getRed() / 255.0,
- fg.getGreen() / 255.0,
- fg.getBlue() / 255.0);
- cairoSetAlpha ((fg.getAlpha() & 255) / 255.0);
+ cairoSetRGBColor(fg.getRed() / 255.0, fg.getGreen() / 255.0,
+ fg.getBlue() / 255.0);
+ cairoSetAlpha((fg.getAlpha() & 255) / 255.0);
}
- public Color getColor ()
+ public Color getColor()
{
return fg;
}
- public void clipRect (int x, int y, int width, int height)
+ public void clipRect(int x, int y, int width, int height)
{
- clip (new Rectangle (x, y, width, height));
+ clip(new Rectangle(x, y, width, height));
}
- public Shape getClip ()
+ public Shape getClip()
{
- return getClipInDevSpace ();
+ return clip.getBounds2D(); //getClipInDevSpace();
}
- public Rectangle getClipBounds ()
+ public Rectangle getClipBounds()
{
if (clip == null)
return null;
else
- return clip.getBounds ();
+ return clip.getBounds();
}
- protected Rectangle2D getClipInDevSpace ()
+ protected Rectangle2D getClipInDevSpace()
{
- Rectangle2D uclip = clip.getBounds2D ();
+ Rectangle2D uclip = clip.getBounds2D();
if (transform == null)
return uclip;
else
{
- Point2D pos = transform.transform (new Point2D.Double(uclip.getX (),
- uclip.getY ()),
- (Point2D)null);
- Point2D extent = transform.deltaTransform (new Point2D.Double(uclip.getWidth (),
- uclip.getHeight ()),
- (Point2D)null);
- return new Rectangle2D.Double (pos.getX (), pos.getY (),
- extent.getX (), extent.getY ());
+ Point2D pos = transform.transform(new Point2D.Double(uclip.getX(),
+ uclip.getY()),
+ (Point2D) null);
+ Point2D extent = transform.deltaTransform(new Point2D.Double(uclip
+ .getWidth(),
+ uclip
+ .getHeight()),
+ (Point2D) null);
+ return new Rectangle2D.Double(pos.getX(), pos.getY(), extent.getX(),
+ extent.getY());
}
}
- public void setClip (int x, int y, int width, int height)
+ public void setClip(int x, int y, int width, int height)
{
- setClip(new Rectangle2D.Double ((double)x, (double)y,
- (double)width, (double)height));
+ setClip(new Rectangle2D.Double((double) x, (double) y, (double) width,
+ (double) height));
}
-
- public void setClip (Shape s)
+
+ public void setClip(Shape s)
{
clip = s;
if (s != null)
{
- cairoNewPath ();
- if (s instanceof Rectangle2D)
- {
- Rectangle2D r = (Rectangle2D)s;
- cairoRectangle (r.getX (), r.getY (),
- r.getWidth (), r.getHeight ());
- }
- else
- walkPath (s.getPathIterator (null), false);
- // cairoClosePath ();
- cairoClip ();
+ cairoNewPath();
+ if (s instanceof Rectangle2D)
+ {
+ Rectangle2D r = (Rectangle2D) s;
+ cairoRectangle(r.getX(), r.getY(), r.getWidth(), r.getHeight());
+ }
+ else
+ walkPath(s.getPathIterator(null), false);
+
+ // cairoClosePath ();
+ cairoClip();
}
}
-
+
private static BasicStroke draw3DRectStroke = new BasicStroke();
- public void draw3DRect(int x, int y, int width,
- int height, boolean raised)
+ public void draw3DRect(int x, int y, int width, int height, boolean raised)
{
Stroke tmp = stroke;
setStroke(draw3DRectStroke);
super.draw3DRect(x, y, width, height, raised);
- setStroke(tmp);
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ setStroke(tmp);
+ updateBufferedImage();
}
- public void fill3DRect(int x, int y, int width,
- int height, boolean raised)
+ public void fill3DRect(int x, int y, int width, int height, boolean raised)
{
Stroke tmp = stroke;
setStroke(draw3DRectStroke);
super.fill3DRect(x, y, width, height, raised);
- setStroke(tmp);
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ setStroke(tmp);
+ updateBufferedImage();
}
-
- public void drawRect (int x, int y, int width, int height)
+ public void drawRect(int x, int y, int width, int height)
{
- draw(new Rectangle (x, y, width, height));
+ draw(new Rectangle(x, y, width, height));
}
- public void fillRect (int x, int y, int width, int height)
+ public void fillRect(int x, int y, int width, int height)
{
- cairoNewPath ();
- cairoRectangle (x, y, width, height);
- cairoFill ();
+ cairoNewPath();
+ cairoRectangle(x, y, width, height);
+ cairoFill();
}
- public void clearRect (int x, int y, int width, int height)
+ public void clearRect(int x, int y, int width, int height)
{
- cairoSetRGBColor (bg.getRed() / 255.0,
- bg.getGreen() / 255.0,
- bg.getBlue() / 255.0);
- cairoSetAlpha (1.0);
- cairoNewPath ();
- cairoRectangle (x, y, width, height);
- cairoFill ();
- setColor (fg);
-
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ cairoSetRGBColor(bg.getRed() / 255.0, bg.getGreen() / 255.0,
+ bg.getBlue() / 255.0);
+ cairoSetAlpha(1.0);
+ cairoNewPath();
+ cairoRectangle(x, y, width, height);
+ cairoFill();
+ setColor(fg);
+ updateBufferedImage();
}
public void setBackground(Color c)
@@ -958,181 +927,172 @@ public class GdkGraphics2D extends Graphics2D
return bg;
}
- private final void doPolygon(int[] xPoints, int[] yPoints, int nPoints,
- boolean close, boolean fill)
- {
+ private void doPolygon(int[] xPoints, int[] yPoints, int nPoints,
+ boolean close, boolean fill)
+ {
if (nPoints < 1)
return;
- GeneralPath gp = new GeneralPath (PathIterator.WIND_EVEN_ODD);
- gp.moveTo ((float)xPoints[0], (float)yPoints[0]);
+ GeneralPath gp = new GeneralPath(PathIterator.WIND_EVEN_ODD);
+ gp.moveTo((float) xPoints[0], (float) yPoints[0]);
for (int i = 1; i < nPoints; i++)
- gp.lineTo ((float)xPoints[i], (float)yPoints[i]);
-
+ gp.lineTo((float) xPoints[i], (float) yPoints[i]);
+
if (close)
- gp.closePath ();
+ gp.closePath();
Shape sh = gp;
- if (fill == false &&
- stroke != null &&
- !(stroke instanceof BasicStroke))
+ if (fill == false && stroke != null && ! (stroke instanceof BasicStroke))
{
- sh = stroke.createStrokedShape (gp);
- fill = true;
+ sh = stroke.createStrokedShape(gp);
+ fill = true;
}
-
- if (fill)
- fill (sh);
- else
- draw (sh);
+
+ if (fill)
+ fill(sh);
+ else
+ draw(sh);
}
- public void drawLine (int x1, int y1, int x2, int y2)
+ public void drawLine(int x1, int y1, int x2, int y2)
{
- int xp[] = new int[2];
- int yp[] = new int[2];
+ int[] xp = new int[2];
+ int[] yp = new int[2];
xp[0] = x1;
xp[1] = x2;
yp[0] = y1;
yp[1] = y2;
-
- doPolygon (xp, yp, 2, false, false);
+
+ doPolygon(xp, yp, 2, false, false);
}
public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
{
- doPolygon (xPoints, yPoints, nPoints, true, true);
+ doPolygon(xPoints, yPoints, nPoints, true, true);
}
-
+
public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
- {
- doPolygon (xPoints, yPoints, nPoints, true, false);
+ {
+ doPolygon(xPoints, yPoints, nPoints, true, false);
}
public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
{
- doPolygon (xPoints, yPoints, nPoints, false, false);
+ doPolygon(xPoints, yPoints, nPoints, false, false);
}
- private final boolean drawRaster (ColorModel cm, Raster r,
- AffineTransform imageToUser,
- Color bgcolor)
+ private boolean drawRaster(ColorModel cm, Raster r,
+ AffineTransform imageToUser, Color bgcolor)
{
if (r == null)
return false;
- SampleModel sm = r.getSampleModel ();
- DataBuffer db = r.getDataBuffer ();
+ SampleModel sm = r.getSampleModel();
+ DataBuffer db = r.getDataBuffer();
if (db == null || sm == null)
return false;
if (cm == null)
- cm = ColorModel.getRGBdefault ();
+ cm = ColorModel.getRGBdefault();
double[] i2u = new double[6];
if (imageToUser != null)
imageToUser.getMatrix(i2u);
else
{
- i2u[0] = 1; i2u[1] = 0;
- i2u[2] = 0; i2u[3] = 1;
- i2u[4] = 0; i2u[5] = 0;
+ i2u[0] = 1;
+ i2u[1] = 0;
+ i2u[2] = 0;
+ i2u[3] = 1;
+ i2u[4] = 0;
+ i2u[5] = 0;
}
- int pixels[] = null;
+ int[] pixels = findSimpleIntegerArray(cm, r);
- if (sm.getDataType () == DataBuffer.TYPE_INT &&
- db instanceof DataBufferInt &&
- db.getNumBanks () == 1)
+ if (pixels == null)
{
- // single bank, ARGB-ints buffer in sRGB space
- DataBufferInt dbi = (DataBufferInt)db;
- pixels = dbi.getData ();
+ // FIXME: I don't think this code will work correctly with a non-RGB
+ // MultiPixelPackedSampleModel. Although this entire method should
+ // probably be rewritten to better utilize Cairo's different supported
+ // data formats.
+ if (sm instanceof MultiPixelPackedSampleModel)
+ {
+ pixels = r.getPixels(0, 0, r.getWidth(), r.getHeight(), pixels);
+ for (int i = 0; i < pixels.length; i++)
+ pixels[i] = cm.getRGB(pixels[i]);
+ }
+ else
+ {
+ pixels = new int[r.getWidth() * r.getHeight()];
+ for (int i = 0; i < pixels.length; i++)
+ pixels[i] = cm.getRGB(db.getElem(i));
+ }
}
- else
- pixels = r.getPixels (0, 0, r.getWidth (), r.getHeight (), pixels);
-
- ColorSpace cs = cm.getColorSpace ();
- if (cs != null &&
- cs.getType () != ColorSpace.CS_sRGB)
+
+ // Change all transparent pixels in the image to the specified bgcolor,
+ // or (if there's no alpha) fill in an alpha channel so that it paints
+ // correctly.
+ if (cm.hasAlpha())
{
- int pixels2[] = new int[pixels.length];
- for (int i = 0; i < pixels2.length; i++)
- pixels2[i] = cm.getRGB (pixels[i]);
- pixels = pixels2;
+ if (bgcolor != null && cm.hasAlpha())
+ for (int i = 0; i < pixels.length; i++)
+ {
+ if (cm.getAlpha(pixels[i]) == 0)
+ pixels[i] = bgcolor.getRGB();
+ }
}
-
- // change all transparent pixels in the image to the
- // specified bgcolor
-
- if (bgcolor != null)
- {
- for (int i = 0; i < pixels.length; i++)
- {
- if (cm.getAlpha (pixels[i]) == 0)
- pixels[i] = bgcolor.getRGB ();
- }
- }
-
- drawPixels (pixels, r.getWidth (), r.getHeight (), r.getWidth (), i2u);
-
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ else
+ for (int i = 0; i < pixels.length; i++)
+ pixels[i] |= 0xFF000000;
+
+ drawPixels(pixels, r.getWidth(), r.getHeight(), r.getWidth(), i2u);
+
+ updateBufferedImage();
return true;
}
- public void drawRenderedImage(RenderedImage image,
- AffineTransform xform)
+ public void drawRenderedImage(RenderedImage image, AffineTransform xform)
{
- drawRaster (image.getColorModel(), image.getData(), xform, bg);
+ drawRaster(image.getColorModel(), image.getData(), xform, bg);
}
-
- public void drawRenderableImage(RenderableImage image,
- AffineTransform xform)
+
+ public void drawRenderableImage(RenderableImage image, AffineTransform xform)
{
- drawRenderedImage (image.createRendering (new RenderContext (xform)), xform);
+ drawRenderedImage(image.createRendering(new RenderContext(xform)), xform);
}
-
- public boolean drawImage(Image img,
- AffineTransform xform,
- ImageObserver obs)
+
+ public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
{
- return drawImage(img, xform, bg, obs);
+ return drawImage(img, xform, bg, obs);
}
- public void drawImage(BufferedImage image,
- BufferedImageOp op,
- int x,
- int y)
+ public void drawImage(BufferedImage image, BufferedImageOp op, int x, int y)
{
Image filtered = op.filter(image, null);
- drawImage(filtered, new AffineTransform(1f,0f,0f,1f,x,y), bg, null);
+ drawImage(filtered, new AffineTransform(1f, 0f, 0f, 1f, x, y), bg, null);
}
- public boolean drawImage (Image img, int x, int y,
- ImageObserver observer)
+ public boolean drawImage(Image img, int x, int y, ImageObserver observer)
{
- return drawImage(img, new AffineTransform(1f,0f,0f,1f,x,y), bg, observer);
+ return drawImage(img, new AffineTransform(1f, 0f, 0f, 1f, x, y), bg,
+ observer);
}
-
///////////////////////////////////////////////
////// Unimplemented Stubs and Overloads //////
///////////////////////////////////////////////
-
-
- public boolean hit(Rectangle rect, Shape text,
- boolean onStroke)
+ public boolean hit(Rectangle rect, Shape text, boolean onStroke)
{
- throw new java.lang.UnsupportedOperationException ();
+ throw new java.lang.UnsupportedOperationException();
}
public GraphicsConfiguration getDeviceConfiguration()
{
- throw new java.lang.UnsupportedOperationException ();
+ throw new java.lang.UnsupportedOperationException();
}
public void setComposite(Composite comp)
@@ -1141,87 +1101,81 @@ public class GdkGraphics2D extends Graphics2D
if (comp instanceof AlphaComposite)
{
- AlphaComposite a = (AlphaComposite) comp;
- cairoSetOperator(a.getRule());
- Color c = getColor();
- setColor(new Color(c.getRed(),
- c.getGreen(),
- c.getBlue(),
- (int) (a.getAlpha() * ((float) c.getAlpha()))));
+ AlphaComposite a = (AlphaComposite) comp;
+ cairoSetOperator(a.getRule());
+ Color c = getColor();
+ setColor(new Color(c.getRed(), c.getGreen(), c.getBlue(),
+ (int) (a.getAlpha() * ((float) c.getAlpha()))));
}
else
- throw new java.lang.UnsupportedOperationException ();
+ throw new java.lang.UnsupportedOperationException();
}
- public void setRenderingHint(RenderingHints.Key hintKey,
- Object hintValue)
+ public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
{
- hints.put (hintKey, hintValue);
-
+ hints.put(hintKey, hintValue);
+
if (hintKey.equals(RenderingHints.KEY_INTERPOLATION)
- || hintKey.equals(RenderingHints.KEY_ALPHA_INTERPOLATION))
+ || hintKey.equals(RenderingHints.KEY_ALPHA_INTERPOLATION))
{
-
- if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR))
- cairoSurfaceSetFilter(0);
-
- else if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_BILINEAR))
- cairoSurfaceSetFilter(1);
-
- else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED))
- cairoSurfaceSetFilter(2);
-
- else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY))
- cairoSurfaceSetFilter(3);
-
- else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT))
- cairoSurfaceSetFilter(4);
-
+ if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR))
+ cairoSurfaceSetFilter(0);
+
+ else if (hintValue.equals(RenderingHints.VALUE_INTERPOLATION_BILINEAR))
+ cairoSurfaceSetFilter(1);
+
+ else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED))
+ cairoSurfaceSetFilter(2);
+
+ else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY))
+ cairoSurfaceSetFilter(3);
+
+ else if (hintValue.equals(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT))
+ cairoSurfaceSetFilter(4);
}
- shiftDrawCalls = hints.containsValue (RenderingHints.VALUE_STROKE_NORMALIZE)
- || hints.containsValue (RenderingHints.VALUE_STROKE_DEFAULT);
-
+ shiftDrawCalls = hints.containsValue(RenderingHints.VALUE_STROKE_NORMALIZE)
+ || hints.containsValue(RenderingHints.VALUE_STROKE_DEFAULT);
}
public Object getRenderingHint(RenderingHints.Key hintKey)
{
- return hints.get (hintKey);
+ return hints.get(hintKey);
}
-
+
public void setRenderingHints(Map hints)
{
- this.hints = new RenderingHints (getDefaultHints ());
- this.hints.add (new RenderingHints (hints));
-
- if (hints.containsKey(RenderingHints.KEY_INTERPOLATION))
+ this.hints = new RenderingHints(getDefaultHints());
+ this.hints.add(new RenderingHints(hints));
+
+ if (hints.containsKey(RenderingHints.KEY_INTERPOLATION))
+ {
+ if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR))
+ cairoSurfaceSetFilter(0);
+
+ else if (hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR))
+ cairoSurfaceSetFilter(1);
+ }
+
+ if (hints.containsKey(RenderingHints.KEY_ALPHA_INTERPOLATION))
{
- if(hints.containsValue(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR))
- cairoSurfaceSetFilter(0);
-
- else if(hints.containsValue(RenderingHints.VALUE_INTERPOLATION_BILINEAR))
- cairoSurfaceSetFilter(1);
+ if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED))
+ cairoSurfaceSetFilter(2);
+
+ else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY))
+ cairoSurfaceSetFilter(3);
+
+ else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT))
+ cairoSurfaceSetFilter(4);
}
-
- if (hints.containsKey(RenderingHints.KEY_ALPHA_INTERPOLATION))
- {
- if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED))
- cairoSurfaceSetFilter(2);
-
- else if (hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY))
- cairoSurfaceSetFilter(3);
-
- else if(hints.containsValue(RenderingHints.VALUE_ALPHA_INTERPOLATION_DEFAULT))
- cairoSurfaceSetFilter(4);
- }
-
- shiftDrawCalls = hints.containsValue (RenderingHints.VALUE_STROKE_NORMALIZE)
- || hints.containsValue (RenderingHints.VALUE_STROKE_DEFAULT);
+
+ shiftDrawCalls = hints.containsValue(RenderingHints.VALUE_STROKE_NORMALIZE)
+ || hints.containsValue(RenderingHints.VALUE_STROKE_DEFAULT);
}
public void addRenderingHints(Map hints)
{
- this.hints.add (new RenderingHints (hints));
+ this.hints.add(new RenderingHints(hints));
}
public RenderingHints getRenderingHints()
@@ -1237,70 +1191,62 @@ public class GdkGraphics2D extends Graphics2D
return comp;
}
- public FontRenderContext getFontRenderContext ()
+ public FontRenderContext getFontRenderContext()
{
- return new FontRenderContext (transform, true, true);
+ return new FontRenderContext(transform, true, true);
}
- public void copyArea (int x, int y, int width, int height, int dx, int dy)
+ public void copyArea(int x, int y, int width, int height, int dx, int dy)
{
- throw new java.lang.UnsupportedOperationException ();
+ throw new java.lang.UnsupportedOperationException();
}
- public void drawArc (int x, int y, int width, int height,
- int startAngle, int arcAngle)
+ public void drawArc(int x, int y, int width, int height, int startAngle,
+ int arcAngle)
{
- draw (new Arc2D.Double((double)x, (double)y,
- (double)width, (double)height,
- (double)startAngle, (double)arcAngle,
- Arc2D.OPEN));
+ draw(new Arc2D.Double((double) x, (double) y, (double) width,
+ (double) height, (double) startAngle,
+ (double) arcAngle, Arc2D.OPEN));
}
- public boolean drawImage (Image img, int x, int y, Color bgcolor,
- ImageObserver observer)
+ public boolean drawImage(Image img, int x, int y, Color bgcolor,
+ ImageObserver observer)
{
- return drawImage (img, x, y, img.getWidth (observer),
- img.getHeight (observer), bgcolor, observer);
+ return drawImage(img, x, y, img.getWidth(observer),
+ img.getHeight(observer), bgcolor, observer);
}
- public boolean drawImage (Image img, int x, int y, int width, int height,
- Color bgcolor, ImageObserver observer)
+ public boolean drawImage(Image img, int x, int y, int width, int height,
+ Color bgcolor, ImageObserver observer)
{
-
- double scaleX = width / (double) img.getWidth (observer);
- double scaleY = height / (double) img.getHeight (observer);
-
- return drawImage (img,
- new AffineTransform(scaleX, 0f, 0f, scaleY, x, y),
- bgcolor,
- observer);
+ double scaleX = width / (double) img.getWidth(observer);
+ double scaleY = height / (double) img.getHeight(observer);
+ return drawImage(img, new AffineTransform(scaleX, 0f, 0f, scaleY, x, y),
+ bgcolor, observer);
}
- public boolean drawImage (Image img, int x, int y, int width, int height,
- ImageObserver observer)
+ public boolean drawImage(Image img, int x, int y, int width, int height,
+ ImageObserver observer)
{
-
- return drawImage (img, x, y, width, height, bg, observer);
-
+ return drawImage(img, x, y, width, height, bg, observer);
}
- public boolean drawImage (Image img, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- Color bgcolor, ImageObserver observer)
+ public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,
+ int sx1, int sy1, int sx2, int sy2, Color bgcolor,
+ ImageObserver observer)
{
-
if (img == null)
return false;
- Image subImage;
-
+ Image subImage;
+
int sourceWidth = sx2 - sx1;
- int sourceHeight = sy2 - sy1;
-
+ int sourceHeight = sy2 - sy1;
+
int destWidth = dx2 - dx1;
int destHeight = dy2 - dy1;
-
+
double scaleX = destWidth / (double) sourceWidth;
double scaleY = destHeight / (double) sourceHeight;
@@ -1309,48 +1255,42 @@ public class GdkGraphics2D extends Graphics2D
if (img instanceof BufferedImage)
{
-
- BufferedImage b = (BufferedImage) img;
- subImage = b.getSubimage(sx1,sy1,sx2,sy2);
- }
- else
+ BufferedImage b = (BufferedImage) img;
+ subImage = b.getSubimage(sx1, sy1, sx2, sy2);
+ }
+ else
{
-
- // FIXME: This code currently doesn't work. Null Pointer
- // exception is thrown in this case. This happens
- // because img.getSource() always returns null, since source gets
- // never initialized when it is created with the help of
- // createImage(int width, int height).
-
- CropImageFilter filter = new CropImageFilter(sx1,sx2,sx2,sy2);
- FilteredImageSource src = new FilteredImageSource(img.getSource(),
- filter);
-
- subImage = Toolkit.getDefaultToolkit().createImage(src);
+ // FIXME: This code currently doesn't work. Null Pointer
+ // exception is thrown in this case. This happens
+ // because img.getSource() always returns null, since source gets
+ // never initialized when it is created with the help of
+ // createImage(int width, int height).
+ CropImageFilter filter = new CropImageFilter(sx1, sx2, sx2, sy2);
+ FilteredImageSource src = new FilteredImageSource(img.getSource(),
+ filter);
+
+ subImage = Toolkit.getDefaultToolkit().createImage(src);
}
- return drawImage(subImage, new AffineTransform(scaleX, 0, 0,
- scaleY, dx1, dy1),
- bgcolor,
- observer);
+ return drawImage(subImage,
+ new AffineTransform(scaleX, 0, 0, scaleY, dx1, dy1),
+ bgcolor, observer);
}
- public boolean drawImage (Image img, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- ImageObserver observer)
+ public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,
+ int sx1, int sy1, int sx2, int sy2,
+ ImageObserver observer)
{
-
- return drawImage (img, dx1, dy1, dx2, dy2,
- sx1, sy1, sx2, sy2, bg, observer);
+ return drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bg, observer);
}
public void drawOval(int x, int y, int width, int height)
{
- drawArc (x, y, width, height, 0, 360);
+ drawArc(x, y, width, height, 0, 360);
}
- public void drawRoundRect(int x, int y, int width, int height,
- int arcWidth, int arcHeight)
+ public void drawRoundRect(int x, int y, int width, int height, int arcWidth,
+ int arcHeight)
{
if (arcWidth > width)
arcWidth = width;
@@ -1360,93 +1300,89 @@ public class GdkGraphics2D extends Graphics2D
int xx = x + width - arcWidth;
int yy = y + height - arcHeight;
- drawArc (x, y, arcWidth, arcHeight, 90, 90);
- drawArc (xx, y, arcWidth, arcHeight, 0, 90);
- drawArc (xx, yy, arcWidth, arcHeight, 270, 90);
- drawArc (x, yy, arcWidth, arcHeight, 180, 90);
+ drawArc(x, y, arcWidth, arcHeight, 90, 90);
+ drawArc(xx, y, arcWidth, arcHeight, 0, 90);
+ drawArc(xx, yy, arcWidth, arcHeight, 270, 90);
+ drawArc(x, yy, arcWidth, arcHeight, 180, 90);
int y1 = y + arcHeight / 2;
int y2 = y + height - arcHeight / 2;
- drawLine (x, y1, x, y2);
- drawLine (x + width, y1, x + width, y2);
+ drawLine(x, y1, x, y2);
+ drawLine(x + width, y1, x + width, y2);
int x1 = x + arcWidth / 2;
int x2 = x + width - arcWidth / 2;
- drawLine (x1, y, x2, y);
- drawLine (x1, y + height, x2, y + height);
+ drawLine(x1, y, x2, y);
+ drawLine(x1, y + height, x2, y + height);
}
// these are the most accelerated painting paths
- native void cairoDrawGdkGlyphVector (GdkFontPeer f, GdkGlyphVector gv, float x, float y);
- native void cairoDrawGdkTextLayout (GdkFontPeer f, GdkTextLayout gl, float x, float y);
- native void cairoDrawString (GdkFontPeer f, String str, float x, float y);
+ native void cairoDrawGlyphVector(GdkFontPeer font,
+ float x, float y, int n,
+ int[] codes, float[] positions);
- GdkFontPeer getFontPeer()
- {
- return (GdkFontPeer) getFont().getPeer();
- }
+ native void cairoDrawGdkTextLayout(GdkTextLayout gl,
+ float x, float y);
- public void drawGdkGlyphVector(GdkGlyphVector gv, float x, float y)
+ GdkFontPeer getFontPeer()
{
- cairoDrawGdkGlyphVector(getFontPeer(), gv, x, y);
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ return (GdkFontPeer) getFont().getPeer();
}
public void drawGdkTextLayout(GdkTextLayout gl, float x, float y)
{
- cairoDrawGdkTextLayout(getFontPeer(), gl, x, y);
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ cairoDrawGdkTextLayout (gl, x, y);
+ updateBufferedImage ();
}
- public void drawString (String str, float x, float y)
+ public void drawString(String str, float x, float y)
{
- cairoDrawString(getFontPeer(), str, x, y);
- if (isBufferedImageGraphics ())
- updateBufferedImage();
+ drawGlyphVector(getFont().createGlyphVector(null, str), x, y);
+ updateBufferedImage ();
}
- public void drawString (String str, int x, int y)
+ public void drawString(String str, int x, int y)
{
- drawString (str, (float)x, (float)y);
+ drawString (str, (float) x, (float) y);
}
- public void drawString (AttributedCharacterIterator ci, int x, int y)
+ public void drawString(AttributedCharacterIterator ci, int x, int y)
{
- drawString (ci, (float)x, (float)y);
+ drawString (ci, (float) x, (float) y);
}
- public void drawGlyphVector (GlyphVector gv, float x, float y)
+ public void drawGlyphVector(GlyphVector gv, float x, float y)
{
- if (gv instanceof GdkGlyphVector)
- drawGdkGlyphVector((GdkGlyphVector)gv, x, y);
- else
- throw new java.lang.UnsupportedOperationException ();
+ int n = gv.getNumGlyphs ();
+ int[] codes = gv.getGlyphCodes (0, n, null);
+ float[] positions = gv.getGlyphPositions (0, n, null);
+
+ setFont (gv.getFont ());
+ cairoDrawGlyphVector (getFontPeer(), x, y, n, codes, positions);
+ updateBufferedImage ();
}
- public void drawString (AttributedCharacterIterator ci, float x, float y)
+ public void drawString(AttributedCharacterIterator ci, float x, float y)
{
- GlyphVector gv = font.createGlyphVector (getFontRenderContext(), ci);
- drawGlyphVector (gv, x, y);
+ GlyphVector gv = getFont().createGlyphVector(getFontRenderContext(), ci);
+ drawGlyphVector(gv, x, y);
}
- public void fillArc (int x, int y, int width, int height,
- int startAngle, int arcAngle)
+ public void fillArc(int x, int y, int width, int height, int startAngle,
+ int arcAngle)
{
- fill (new Arc2D.Double((double)x, (double)y,
- (double)width, (double)height,
- (double)startAngle, (double)arcAngle,
- Arc2D.OPEN));
+ fill(new Arc2D.Double((double) x, (double) y, (double) width,
+ (double) height, (double) startAngle,
+ (double) arcAngle, Arc2D.OPEN));
}
public void fillOval(int x, int y, int width, int height)
{
- fillArc (x, y, width, height, 0, 360);
+ fillArc(x, y, width, height, 0, 360);
}
- public void fillRoundRect (int x, int y, int width, int height,
- int arcWidth, int arcHeight)
+ public void fillRoundRect(int x, int y, int width, int height, int arcWidth,
+ int arcHeight)
{
if (arcWidth > width)
arcWidth = width;
@@ -1456,17 +1392,19 @@ public class GdkGraphics2D extends Graphics2D
int xx = x + width - arcWidth;
int yy = y + height - arcHeight;
- fillArc (x, y, arcWidth, arcHeight, 90, 90);
- fillArc (xx, y, arcWidth, arcHeight, 0, 90);
- fillArc (xx, yy, arcWidth, arcHeight, 270, 90);
- fillArc (x, yy, arcWidth, arcHeight, 180, 90);
+ fillArc(x, y, arcWidth, arcHeight, 90, 90);
+ fillArc(xx, y, arcWidth, arcHeight, 0, 90);
+ fillArc(xx, yy, arcWidth, arcHeight, 270, 90);
+ fillArc(x, yy, arcWidth, arcHeight, 180, 90);
- fillRect (x, y + arcHeight / 2, width, height - arcHeight + 1);
- fillRect (x + arcWidth / 2, y, width - arcWidth + 1, height);
+ fillRect(x, y + arcHeight / 2, width, height - arcHeight + 1);
+ fillRect(x + arcWidth / 2, y, width - arcWidth + 1, height);
}
- public Font getFont ()
+ public Font getFont()
{
+ if (font == null)
+ return new Font("SansSerif", Font.PLAIN, 12);
return font;
}
@@ -1475,38 +1413,34 @@ public class GdkGraphics2D extends Graphics2D
// GtkFontMetrics into the drawing kit and ask cairo ourselves.
static native void releasePeerGraphicsResource(GdkFontPeer f);
- static native void getPeerTextMetrics (GdkFontPeer f, String str, double [] metrics);
- static native void getPeerFontMetrics (GdkFontPeer f, double [] metrics);
- public FontMetrics getFontMetrics ()
+ public FontMetrics getFontMetrics()
{
- // the reason we go via the toolkit here is to try to get
- // a cached object. the toolkit keeps such a cache.
- return Toolkit.getDefaultToolkit ().getFontMetrics (font);
+ return getFontMetrics(getFont());
}
- public FontMetrics getFontMetrics (Font f)
+ public FontMetrics getFontMetrics(Font f)
{
// the reason we go via the toolkit here is to try to get
// a cached object. the toolkit keeps such a cache.
- return Toolkit.getDefaultToolkit ().getFontMetrics (f);
+ return Toolkit.getDefaultToolkit().getFontMetrics(f);
}
- public void setFont (Font f)
+ public void setFont(Font f)
{
if (f.getPeer() instanceof GdkFontPeer)
font = f;
else
font =
- ((ClasspathToolkit)(Toolkit.getDefaultToolkit ()))
- .getFont (f.getName(), f.getAttributes ());
+ ((ClasspathToolkit)(Toolkit.getDefaultToolkit()))
+ .getFont(f.getName(), f.getAttributes());
}
-
+
public String toString()
{
- return getClass ().getName () +
- "[font=" + font.toString () +
- ",color=" + fg.toString () + "]";
+ return (getClass().getName()
+ + "[font=" + getFont().toString()
+ + ",color=" + fg.toString()
+ + "]");
}
-
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java
new file mode 100644
index 00000000000..c485db228ba
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java
@@ -0,0 +1,138 @@
+/* GdkGraphicsConfiguration.java -- describes characteristics of graphics
+ Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation
+
+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.awt.peer.gtk;
+
+import java.awt.BufferCapabilities;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsDevice;
+import java.awt.ImageCapabilities;
+import java.awt.Rectangle;
+
+import java.awt.geom.AffineTransform;
+
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+import java.awt.image.VolatileImage;
+
+public class GdkGraphicsConfiguration
+ extends GraphicsConfiguration
+{
+ GdkScreenGraphicsDevice gdkScreenGraphicsDevice;
+ ColorModel cm;
+ Rectangle bounds;
+
+ public GtkToolkit getToolkit()
+ {
+ return gdkScreenGraphicsDevice.getToolkit();
+ }
+
+ public GdkGraphicsConfiguration(GdkScreenGraphicsDevice dev)
+ {
+ this.gdkScreenGraphicsDevice = dev;
+ cm = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB).getColorModel();
+ bounds = getToolkit().getBounds();
+ }
+
+ public GraphicsDevice getDevice()
+ {
+ return gdkScreenGraphicsDevice;
+ }
+
+ public BufferedImage createCompatibleImage(int w, int h)
+ {
+ return new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
+ }
+
+ public BufferedImage createCompatibleImage(int w, int h,
+ int transparency)
+ {
+ return createCompatibleImage(w, h);
+ }
+
+ public VolatileImage createCompatibleVolatileImage(int w, int h)
+ {
+ throw new java.lang.UnsupportedOperationException ();
+ }
+
+ public VolatileImage createCompatibleVolatileImage(int w, int h,
+ ImageCapabilities caps)
+ throws java.awt.AWTException
+ {
+ throw new java.lang.UnsupportedOperationException ();
+ }
+
+ public ColorModel getColorModel()
+ {
+ return cm;
+ }
+
+ public ColorModel getColorModel(int transparency)
+ {
+ return getColorModel();
+ }
+
+ public AffineTransform getDefaultTransform()
+ {
+ // FIXME: extract the GDK DPI information here.
+ return new AffineTransform();
+ }
+
+ public AffineTransform getNormalizingTransform()
+ {
+ // FIXME: extract the GDK DPI information here.
+ return new AffineTransform();
+ }
+
+ public Rectangle getBounds()
+ {
+ return bounds;
+ }
+
+ public BufferCapabilities getBufferCapabilities()
+ {
+ return new BufferCapabilities(getImageCapabilities(),
+ getImageCapabilities(),
+ BufferCapabilities.FlipContents.UNDEFINED);
+ }
+
+ public ImageCapabilities getImageCapabilities()
+ {
+ return new ImageCapabilities(false);
+ }
+
+}
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
index 45e0c21c0f2..3f7b87f45cc 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
@@ -1,5 +1,5 @@
/* GdkGraphicsEnvironment.java -- information about the graphics environment
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,34 +42,46 @@ import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
-import java.awt.Rectangle;
-import java.awt.Shape;
+import java.awt.HeadlessException;
import java.awt.image.BufferedImage;
import java.util.Locale;
public class GdkGraphicsEnvironment extends GraphicsEnvironment
{
- public GdkGraphicsEnvironment ()
+ GtkToolkit gtkToolkit;
+
+ public GtkToolkit getToolkit()
+ {
+ return gtkToolkit;
+ }
+
+ public GdkGraphicsEnvironment (GtkToolkit tk)
{
super();
+ gtkToolkit = tk;
}
public GraphicsDevice[] getScreenDevices ()
{
- throw new java.lang.UnsupportedOperationException ();
+ // FIXME: Support multiple screens, since GDK can.
+ return new GraphicsDevice[] { new GdkScreenGraphicsDevice (this) };
}
public GraphicsDevice getDefaultScreenDevice ()
{
- throw new java.lang.UnsupportedOperationException ();
+ if (GraphicsEnvironment.isHeadless ())
+ throw new HeadlessException ();
+
+ return new GdkScreenGraphicsDevice (this);
}
public Graphics2D createGraphics (BufferedImage image)
{
return new GdkGraphics2D (image);
}
- native private int nativeGetNumFontFamilies ();
- native private void nativeGetFontFamilies (String[] family_names);
+
+ private native int nativeGetNumFontFamilies();
+ private native void nativeGetFontFamilies(String[] family_names);
public Font[] getAllFonts ()
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
index a7b93e5b9ad..ee6c38f3c3a 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
@@ -1,5 +1,5 @@
/* GdkPixbufDecoder.java -- Image data decoding object
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,14 +45,31 @@ import java.awt.image.ColorModel;
import java.awt.image.DirectColorModel;
import java.awt.image.ImageConsumer;
import java.awt.image.ImageProducer;
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
+import java.awt.image.Raster;
+import java.awt.image.RenderedImage;
+import java.io.DataOutput;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Locale;
import java.util.Vector;
+import javax.imageio.IIOImage;
+import javax.imageio.ImageReadParam;
+import javax.imageio.ImageReader;
+import javax.imageio.ImageTypeSpecifier;
+import javax.imageio.ImageWriteParam;
+import javax.imageio.ImageWriter;
+import javax.imageio.metadata.IIOMetadata;
+import javax.imageio.spi.IIORegistry;
+import javax.imageio.spi.ImageReaderSpi;
+import javax.imageio.spi.ImageWriterSpi;
+import javax.imageio.stream.ImageInputStream;
+import javax.imageio.stream.ImageOutputStream;
+
public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
{
static
@@ -63,22 +80,30 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
}
initStaticState ();
}
- native static void initStaticState ();
+
+ static native void initStaticState();
private final int native_state = GtkGenericPeer.getUniqueInteger ();
+ private boolean initialized = false;
// the current set of ImageConsumers for this decoder
Vector curr;
// interface to GdkPixbuf
native void initState ();
- native void pumpBytes (byte bytes[], int len);
+ native void pumpBytes (byte[] bytes, int len);
native void finish ();
+ static native void streamImage(int[] bytes, String format, int width, int height, boolean hasAlpha, DataOutput sink);
// gdk-pixbuf provids data in RGBA format
static final ColorModel cm = new DirectColorModel (32, 0xff000000,
0x00ff0000,
0x0000ff00,
0x000000ff);
+ public GdkPixbufDecoder (InputStream in)
+ {
+ super (in);
+ }
+
public GdkPixbufDecoder (String filename)
{
super (filename);
@@ -150,24 +175,349 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
curr = null;
}
- // remaining helper class and static method is a convenience for the Gtk
- // peers, for loading a BufferedImage in off a disk file. one would think
- // this ought to be fairly straightforward, but it does not appear
- // anywhere else I can find.
+ public void finalize()
+ {
+ finish();
+ }
+
+
+ public static class ImageFormatSpec
+ {
+ public String name;
+ public boolean writable = false;
+ public ArrayList mimeTypes = new ArrayList();
+ public ArrayList extensions = new ArrayList();
+
+ public ImageFormatSpec(String name, boolean writable)
+ {
+ this.name = name;
+ this.writable = writable;
+ }
+
+ public synchronized void addMimeType(String m)
+ {
+ mimeTypes.add(m);
+ }
+
+ public synchronized void addExtension(String e)
+ {
+ extensions.add(e);
+ }
+ }
+
+ static ArrayList imageFormatSpecs;
+
+ public static ImageFormatSpec registerFormat(String name, boolean writable)
+ {
+ ImageFormatSpec ifs = new ImageFormatSpec(name, writable);
+ synchronized(GdkPixbufDecoder.class)
+ {
+ if (imageFormatSpecs == null)
+ imageFormatSpecs = new ArrayList();
+ imageFormatSpecs.add(ifs);
+ }
+ return ifs;
+ }
+
+ static String[] getFormatNames(boolean writable)
+ {
+ ArrayList names = new ArrayList();
+ synchronized (imageFormatSpecs)
+ {
+ Iterator i = imageFormatSpecs.iterator();
+ while (i.hasNext())
+ {
+ ImageFormatSpec ifs = (ImageFormatSpec) i.next();
+ if (writable && !ifs.writable)
+ continue;
+ names.add(ifs.name);
+
+ /*
+ * In order to make the filtering code work, we need to register
+ * this type under every "format name" likely to be used as a synonym.
+ * This generally means "all the extensions people might use".
+ */
+
+ Iterator j = ifs.extensions.iterator();
+ while (j.hasNext())
+ names.add((String) j.next());
+ }
+ }
+ Object[] objs = names.toArray();
+ String[] strings = new String[objs.length];
+ for (int i = 0; i < objs.length; ++i)
+ strings[i] = (String) objs[i];
+ return strings;
+ }
+
+ static String[] getFormatExtensions(boolean writable)
+ {
+ ArrayList extensions = new ArrayList();
+ synchronized (imageFormatSpecs)
+ {
+ Iterator i = imageFormatSpecs.iterator();
+ while (i.hasNext())
+ {
+ ImageFormatSpec ifs = (ImageFormatSpec) i.next();
+ if (writable && !ifs.writable)
+ continue;
+ Iterator j = ifs.extensions.iterator();
+ while (j.hasNext())
+ extensions.add((String) j.next());
+ }
+ }
+ Object[] objs = extensions.toArray();
+ String[] strings = new String[objs.length];
+ for (int i = 0; i < objs.length; ++i)
+ strings[i] = (String) objs[i];
+ return strings;
+ }
+
+ static String[] getFormatMimeTypes(boolean writable)
+ {
+ ArrayList mimeTypes = new ArrayList();
+ synchronized (imageFormatSpecs)
+ {
+ Iterator i = imageFormatSpecs.iterator();
+ while (i.hasNext())
+ {
+ ImageFormatSpec ifs = (ImageFormatSpec) i.next();
+ if (writable && !ifs.writable)
+ continue;
+ Iterator j = ifs.mimeTypes.iterator();
+ while (j.hasNext())
+ mimeTypes.add((String) j.next());
+ }
+ }
+ Object[] objs = mimeTypes.toArray();
+ String[] strings = new String[objs.length];
+ for (int i = 0; i < objs.length; ++i)
+ strings[i] = (String) objs[i];
+ return strings;
+ }
+
+
+ static String findFormatName(Object ext, boolean needWritable)
+ {
+ if (ext == null)
+ throw new IllegalArgumentException("extension is null");
+
+ if (!(ext instanceof String))
+ throw new IllegalArgumentException("extension is not a string");
+
+ String str = (String) ext;
+
+ Iterator i = imageFormatSpecs.iterator();
+ while (i.hasNext())
+ {
+ ImageFormatSpec ifs = (ImageFormatSpec) i.next();
+
+ if (needWritable && !ifs.writable)
+ continue;
+
+ if (ifs.name.equals(str))
+ return str;
+
+ Iterator j = ifs.extensions.iterator();
+ while (j.hasNext())
+ {
+ String extension = (String)j.next();
+ if (extension.equals(str))
+ return ifs.name;
+ }
+
+ j = ifs.mimeTypes.iterator();
+ while (j.hasNext())
+ {
+ String mimeType = (String)j.next();
+ if (mimeType.equals(str))
+ return ifs.name;
+ }
+ }
+ throw new IllegalArgumentException("unknown extension '" + str + "'");
+ }
+
+ private static GdkPixbufReaderSpi readerSpi;
+ private static GdkPixbufWriterSpi writerSpi;
+
+ public static synchronized GdkPixbufReaderSpi getReaderSpi()
+ {
+ if (readerSpi == null)
+ readerSpi = new GdkPixbufReaderSpi();
+ return readerSpi;
+ }
+
+ public static synchronized GdkPixbufWriterSpi getWriterSpi()
+ {
+ if (writerSpi == null)
+ writerSpi = new GdkPixbufWriterSpi();
+ return writerSpi;
+ }
+
+ public static void registerSpis(IIORegistry reg)
+ {
+ reg.registerServiceProvider(getReaderSpi(), ImageReaderSpi.class);
+ reg.registerServiceProvider(getWriterSpi(), ImageWriterSpi.class);
+ }
- private static class BufferedImageBuilder implements ImageConsumer
+ public static class GdkPixbufWriterSpi extends ImageWriterSpi
{
+ public GdkPixbufWriterSpi()
+ {
+ super("GdkPixbuf", "2.x",
+ GdkPixbufDecoder.getFormatNames(true),
+ GdkPixbufDecoder.getFormatExtensions(true),
+ GdkPixbufDecoder.getFormatMimeTypes(true),
+ "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufWriter",
+ new Class[] { ImageOutputStream.class },
+ new String[] { "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufReaderSpi" },
+ false, null, null, null, null,
+ false, null, null, null, null);
+ }
+
+ public boolean canEncodeImage(ImageTypeSpecifier ts)
+ {
+ return true;
+ }
+
+ public ImageWriter createWriterInstance(Object ext)
+ {
+ return new GdkPixbufWriter(this, ext);
+ }
+
+ public String getDescription(java.util.Locale loc)
+ {
+ return "GdkPixbuf Writer SPI";
+ }
+
+ }
+
+ public static class GdkPixbufReaderSpi extends ImageReaderSpi
+ {
+ public GdkPixbufReaderSpi()
+ {
+ super("GdkPixbuf", "2.x",
+ GdkPixbufDecoder.getFormatNames(false),
+ GdkPixbufDecoder.getFormatExtensions(false),
+ GdkPixbufDecoder.getFormatMimeTypes(false),
+ "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufReader",
+ new Class[] { ImageInputStream.class },
+ new String[] { "gnu.java.awt.peer.gtk.GdkPixbufDecoder$GdkPixbufWriterSpi" },
+ false, null, null, null, null,
+ false, null, null, null, null);
+ }
+
+ public boolean canDecodeInput(Object obj)
+ {
+ return true;
+ }
+
+ public ImageReader createReaderInstance(Object ext)
+ {
+ return new GdkPixbufReader(this, ext);
+ }
+
+ public String getDescription(Locale loc)
+ {
+ return "GdkPixbuf Reader SPI";
+ }
+ }
+
+ private static class GdkPixbufWriter
+ extends ImageWriter
+ {
+ String ext;
+ public GdkPixbufWriter(GdkPixbufWriterSpi ownerSpi, Object ext)
+ {
+ super(ownerSpi);
+ this.ext = findFormatName(ext, true);
+ }
+
+ public IIOMetadata convertImageMetadata (IIOMetadata inData,
+ ImageTypeSpecifier imageType,
+ ImageWriteParam param)
+ {
+ return null;
+ }
+
+ public IIOMetadata convertStreamMetadata (IIOMetadata inData,
+ ImageWriteParam param)
+ {
+ return null;
+ }
+
+ public IIOMetadata getDefaultImageMetadata (ImageTypeSpecifier imageType,
+ ImageWriteParam param)
+ {
+ return null;
+ }
+
+ public IIOMetadata getDefaultStreamMetadata (ImageWriteParam param)
+ {
+ return null;
+ }
+
+ public void write (IIOMetadata streamMetadata, IIOImage i, ImageWriteParam param)
+ throws IOException
+ {
+ RenderedImage image = i.getRenderedImage();
+ Raster ras = image.getData();
+ int width = ras.getWidth();
+ int height = ras.getHeight();
+ ColorModel model = image.getColorModel();
+ int[] pixels = GdkGraphics2D.findSimpleIntegerArray (image.getColorModel(), ras);
+
+ if (pixels == null)
+ {
+ BufferedImage img = new BufferedImage(width, height,
+ (model != null && model.hasAlpha() ?
+ BufferedImage.TYPE_INT_ARGB
+ : BufferedImage.TYPE_INT_RGB));
+ int[] pix = new int[4];
+ for (int y = 0; y < height; ++y)
+ for (int x = 0; x < width; ++x)
+ img.setRGB(x, y, model.getRGB(ras.getPixel(x, y, pix)));
+ pixels = GdkGraphics2D.findSimpleIntegerArray (img.getColorModel(),
+ img.getRaster());
+ model = img.getColorModel();
+ }
+
+ processImageStarted(1);
+ streamImage(pixels, this.ext, width, height, model.hasAlpha(),
+ (DataOutput) this.getOutput());
+ processImageComplete();
+ }
+ }
+
+ private static class GdkPixbufReader
+ extends ImageReader
+ implements ImageConsumer
+ {
+ // ImageConsumer parts
+ GdkPixbufDecoder dec;
BufferedImage bufferedImage;
ColorModel defaultModel;
+ int width;
+ int height;
+ String ext;
+
+ public GdkPixbufReader(GdkPixbufReaderSpi ownerSpi, Object ext)
+ {
+ super(ownerSpi);
+ this.ext = findFormatName(ext, false);
+ }
- public BufferedImage getBufferedImage()
+ public GdkPixbufReader(GdkPixbufReaderSpi ownerSpi, Object ext, GdkPixbufDecoder d)
{
- return bufferedImage;
+ this(ownerSpi, ext);
+ dec = d;
}
- public void setDimensions(int width, int height)
+ public void setDimensions(int w, int h)
{
- bufferedImage = new BufferedImage (width, height, BufferedImage.TYPE_INT_ARGB);
+ processImageStarted(1);
+ width = w;
+ height = h;
}
public void setProperties(Hashtable props) {}
@@ -189,65 +539,137 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
ColorModel model, int[] pixels,
int offset, int scansize)
{
- if (bufferedImage != null)
+ if (model == null)
+ model = defaultModel;
+
+ if (bufferedImage == null)
{
+ bufferedImage = new BufferedImage (width, height, (model != null && model.hasAlpha() ?
+ BufferedImage.TYPE_INT_ARGB
+ : BufferedImage.TYPE_INT_RGB));
+ }
- if (model == null)
- model = defaultModel;
-
- int pixels2[];
- if (model != null)
- {
- pixels2 = new int[pixels.length];
- for (int yy = 0; yy < h; yy++)
- for (int xx = 0; xx < w; xx++)
- {
- int i = yy * scansize + xx;
- pixels2[i] = model.getRGB (pixels[i]);
- }
- }
- else
- pixels2 = pixels;
-
- bufferedImage.setRGB (x, y, w, h, pixels2, offset, scansize);
+ int pixels2[];
+ if (model != null)
+ {
+ pixels2 = new int[pixels.length];
+ for (int yy = 0; yy < h; yy++)
+ for (int xx = 0; xx < w; xx++)
+ {
+ int i = yy * scansize + xx;
+ pixels2[i] = model.getRGB (pixels[i]);
+ }
}
+ else
+ pixels2 = pixels;
+
+ bufferedImage.setRGB (x, y, w, h, pixels2, offset, scansize);
+ processImageProgress(y / (height == 0 ? 1 : height));
+ }
+
+ public void imageComplete(int status)
+ {
+ processImageComplete();
+ }
+
+ public BufferedImage getBufferedImage()
+ {
+ if (bufferedImage == null && dec != null)
+ dec.startProduction (this);
+ return bufferedImage;
+ }
+
+ // ImageReader parts
+
+ public int getNumImages(boolean allowSearch)
+ throws IOException
+ {
+ return 1;
+ }
+
+ public IIOMetadata getImageMetadata(int i)
+ {
+ return null;
+ }
+
+ public IIOMetadata getStreamMetadata()
+ throws IOException
+ {
+ return null;
}
- public void imageComplete(int status) {}
+ public Iterator getImageTypes(int imageIndex)
+ throws IOException
+ {
+ BufferedImage img = getBufferedImage();
+ Vector vec = new Vector();
+ vec.add(new ImageTypeSpecifier(img));
+ return vec.iterator();
+ }
+
+ public int getHeight(int imageIndex)
+ throws IOException
+ {
+ return getBufferedImage().getHeight();
+ }
+
+ public int getWidth(int imageIndex)
+ throws IOException
+ {
+ return getBufferedImage().getWidth();
+ }
+
+ public void setInput(Object input,
+ boolean seekForwardOnly,
+ boolean ignoreMetadata)
+ {
+ super.setInput(input, seekForwardOnly, ignoreMetadata);
+ dec = new GdkPixbufDecoder((InputStream) getInput());
+ }
+
+ public BufferedImage read(int imageIndex, ImageReadParam param)
+ throws IOException
+ {
+ return getBufferedImage ();
+ }
}
+ // remaining helper class and static method is a convenience for the Gtk
+ // peers, for loading a BufferedImage in off a disk file without going
+ // through the whole imageio system.
+
public static BufferedImage createBufferedImage (String filename)
{
- BufferedImageBuilder bb = new BufferedImageBuilder ();
- GdkPixbufDecoder dec = new GdkPixbufDecoder (filename);
- dec.startProduction (bb);
- return bb.getBufferedImage ();
+ GdkPixbufReader r = new GdkPixbufReader (getReaderSpi(),
+ "png", // reader auto-detects, doesn't matter
+ new GdkPixbufDecoder (filename));
+ return r.getBufferedImage ();
}
public static BufferedImage createBufferedImage (URL u)
{
- BufferedImageBuilder bb = new BufferedImageBuilder ();
- GdkPixbufDecoder dec = new GdkPixbufDecoder (u);
- dec.startProduction (bb);
- return bb.getBufferedImage ();
+ GdkPixbufReader r = new GdkPixbufReader (getReaderSpi(),
+ "png", // reader auto-detects, doesn't matter
+ new GdkPixbufDecoder (u));
+ return r.getBufferedImage ();
}
public static BufferedImage createBufferedImage (byte[] imagedata, int imageoffset,
int imagelength)
{
- BufferedImageBuilder bb = new BufferedImageBuilder ();
- GdkPixbufDecoder dec = new GdkPixbufDecoder (imagedata, imageoffset, imagelength);
- dec.startProduction (bb);
- return bb.getBufferedImage ();
+ GdkPixbufReader r = new GdkPixbufReader (getReaderSpi(),
+ "png", // reader auto-detects, doesn't matter
+ new GdkPixbufDecoder (imagedata,
+ imageoffset,
+ imagelength));
+ return r.getBufferedImage ();
}
public static BufferedImage createBufferedImage (ImageProducer producer)
{
- BufferedImageBuilder bb = new BufferedImageBuilder ();
- producer.startProduction(bb);
- return bb.getBufferedImage ();
+ GdkPixbufReader r = new GdkPixbufReader (getReaderSpi(), "png" /* ignored */, null);
+ producer.startProduction(r);
+ return r.getBufferedImage ();
}
-
-
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.java b/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.java
new file mode 100644
index 00000000000..054e7332293
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.java
@@ -0,0 +1,94 @@
+/* GdkRobot.java -- an XTest implementation of RobotPeer
+ Copyright (C) 2004, 2005 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.awt.peer.gtk;
+
+import java.awt.AWTException;
+import java.awt.GraphicsDevice;
+import java.awt.Rectangle;
+import java.awt.image.ColorModel;
+import java.awt.image.DirectColorModel;
+import java.awt.peer.RobotPeer;
+
+/**
+ * Implements the RobotPeer interface using the XTest extension.
+ *
+ * @author Thomas Fitzsimmons
+ */
+public class GdkRobotPeer implements RobotPeer
+{
+ // gdk-pixbuf provides data in RGBA format
+ static final ColorModel cm = new DirectColorModel (32, 0xff000000,
+ 0x00ff0000,
+ 0x0000ff00,
+ 0x000000ff);
+
+ public GdkRobotPeer (GraphicsDevice screen) throws AWTException
+ {
+ // FIXME: make use of screen parameter when GraphicsDevice is
+ // implemented.
+ if (!initXTest ())
+ throw new AWTException ("XTest extension not supported");
+ }
+
+ native boolean initXTest ();
+
+ // RobotPeer methods
+ public native void mouseMove (int x, int y);
+ public native void mousePress (int buttons);
+ public native void mouseRelease (int buttons);
+ public native void mouseWheel (int wheelAmt);
+ public native void keyPress (int keycode);
+ public native void keyRelease (int keycode);
+ native int[] nativeGetRGBPixels (int x, int y, int width, int height);
+
+ public int getRGBPixel (int x, int y)
+ {
+ return cm.getRGB (nativeGetRGBPixels (x, y, 1, 1)[0]);
+ }
+
+ public int[] getRGBPixels (Rectangle r)
+ {
+ int[] gdk_pixels = nativeGetRGBPixels (r.x, r.y, r.width, r.height);
+ int[] pixels = new int[r.width * r.height];
+
+ for (int i = 0; i < r.width * r.height; i++)
+ pixels[i] = cm.getRGB (gdk_pixels[i]);
+
+ return pixels;
+ }
+}
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
new file mode 100644
index 00000000000..bd7b46ab8b9
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
@@ -0,0 +1,82 @@
+/* GdkScreenGraphicsDevice.java -- information about a screen device
+ Copyright (C) 2004, 2005 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.awt.peer.gtk;
+
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsDevice;
+
+public class GdkScreenGraphicsDevice extends GraphicsDevice
+{
+ GdkGraphicsEnvironment env;
+
+ public GtkToolkit getToolkit()
+ {
+ return env.getToolkit();
+ }
+
+ public GdkScreenGraphicsDevice (GdkGraphicsEnvironment e)
+ {
+ super ();
+ env = e;
+ }
+
+ public int getType ()
+ {
+ return GraphicsDevice.TYPE_RASTER_SCREEN;
+ }
+
+ public String getIDstring ()
+ {
+ // FIXME: query X for this string
+ return "default GDK device ID string";
+ }
+
+ public GraphicsConfiguration[] getConfigurations ()
+ {
+ // FIXME: query X for the list of possible configurations
+ return new GraphicsConfiguration [] { new GdkGraphicsConfiguration(this) };
+ }
+
+ public GraphicsConfiguration getDefaultConfiguration ()
+ {
+
+ // FIXME: query X for default configuration
+ return new GdkGraphicsConfiguration(this);
+ }
+}
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkTextLayout.java b/libjava/gnu/java/awt/peer/gtk/GdkTextLayout.java
index 26cfc16f0da..1a456d12a3c 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkTextLayout.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkTextLayout.java
@@ -1,5 +1,5 @@
/* GdkTextLayout.java
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,25 +38,24 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
+import gnu.classpath.Configuration;
+import gnu.java.awt.peer.ClasspathTextLayoutPeer;
+
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphMetrics;
import java.awt.font.GlyphVector;
+import java.awt.font.TextAttribute;
import java.awt.font.TextHitInfo;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.Rectangle2D;
-import java.text.CharacterIterator;
import java.text.AttributedCharacterIterator;
import java.text.AttributedString;
-import java.util.Map;
-import java.awt.font.TextAttribute;
-
-import gnu.classpath.Configuration;
-import gnu.java.awt.peer.ClasspathTextLayoutPeer;
+import java.text.CharacterIterator;
/**
* This is an implementation of the text layout peer interface which
@@ -83,7 +82,7 @@ public class GdkTextLayout
private native void indexToPos(int idx, double[] pos);
private native void initState ();
private native void dispose ();
- native static void initStaticState ();
+ static native void initStaticState();
private final int native_state = GtkGenericPeer.getUniqueInteger ();
protected void finalize ()
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java
index 9fba828b74b..1ef992f02df 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java
@@ -41,7 +41,6 @@ package gnu.java.awt.peer.gtk;
import java.awt.AWTEvent;
import java.awt.Button;
import java.awt.Component;
-import java.awt.Font;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
index adb7008ca3f..83aa98981fd 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
@@ -1,5 +1,5 @@
/* GtkCheckboxMenuItemPeer.java -- Implements CheckboxMenuItemPeer with GTK+
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,8 +39,9 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
import java.awt.CheckboxMenuItem;
+import java.awt.ItemSelectable;
+import java.awt.event.ItemEvent;
import java.awt.peer.CheckboxMenuItemPeer;
-import java.awt.peer.MenuItemPeer;
public class GtkCheckboxMenuItemPeer extends GtkMenuItemPeer
implements CheckboxMenuItemPeer
@@ -53,5 +54,16 @@ public class GtkCheckboxMenuItemPeer extends GtkMenuItemPeer
setState (menu.getState ());
}
- native public void setState (boolean t);
+ public native void setState(boolean t);
+
+ protected void postMenuActionEvent ()
+ {
+ CheckboxMenuItem item = (CheckboxMenuItem)awtWidget;
+ q().postEvent (new ItemEvent ((ItemSelectable)awtWidget,
+ ItemEvent.ITEM_STATE_CHANGED,
+ item.getActionCommand(),
+ item.getState() ? ItemEvent.DESELECTED : ItemEvent.SELECTED));
+
+ super.postMenuActionEvent();
+ }
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
index a6fd1bac183..4af88f5332c 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
@@ -40,8 +40,6 @@ package gnu.java.awt.peer.gtk;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
-import java.awt.Component;
-import java.awt.Font;
import java.awt.peer.CheckboxPeer;
public class GtkCheckboxPeer extends GtkComponentPeer
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.java b/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.java
index 05464143dcf..43e48328da3 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkChoicePeer.java
@@ -1,5 +1,5 @@
/* GtkChoicePeer.java -- Implements ChoicePeer with GTK
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.AWTEvent;
import java.awt.Choice;
import java.awt.event.ItemEvent;
import java.awt.peer.ChoicePeer;
@@ -73,7 +72,7 @@ public class GtkChoicePeer extends GtkComponentPeer
native void nativeRemove (int index);
native void nativeRemoveAll ();
- native public void select (int position);
+ public native void select (int position);
public void add (String item, int index)
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkClipboard.java b/libjava/gnu/java/awt/peer/gtk/GtkClipboard.java
index ecc4c5cf7a1..b9cc1613b78 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkClipboard.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkClipboard.java
@@ -1,5 +1,5 @@
/* GtkClipboard.java
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ public class GtkClipboard extends Clipboard
/* the number of milliseconds that we'll wait around for the
owner of the GDK_SELECTION_PRIMARY selection to convert
the requested data */
- final static int SELECTION_RECEIVED_TIMEOUT = 5000;
+ static final int SELECTION_RECEIVED_TIMEOUT = 5000;
/* We currently only support transferring of text between applications */
static String selection;
@@ -165,6 +165,6 @@ public class GtkClipboard extends Clipboard
}
native void initNativeState();
- native static void requestStringConversion();
- native static void selectionGet();
+ static native void requestStringConversion();
+ static native void selectionGet();
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java
index 31d59ce19b0..2625f56a008 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java
@@ -1,5 +1,5 @@
/* GtkComponentPeer.java -- Implements ComponentPeer with GTK
- Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,14 +47,12 @@ import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
-import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Insets;
import java.awt.ItemSelectable;
-import java.awt.KeyboardFocusManager;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
@@ -83,7 +81,7 @@ public class GtkComponentPeer extends GtkGenericPeer
knows if a parent is disabled. In that case Component.isEnabled
may return true, but our isEnabled will always return false */
native boolean isEnabled ();
- native static boolean modalHasGrab ();
+ static native boolean modalHasGrab();
native int[] gtkWidgetGetForeground ();
native int[] gtkWidgetGetBackground ();
@@ -386,7 +384,7 @@ public class GtkComponentPeer extends GtkGenericPeer
if (x == 0 && y == 0 && width == 0 && height == 0)
return;
- q.postEvent (new PaintEvent (awtComponent, PaintEvent.UPDATE,
+ q().postEvent (new PaintEvent (awtComponent, PaintEvent.UPDATE,
new Rectangle (x, y, width, height)));
}
@@ -508,14 +506,14 @@ public class GtkComponentPeer extends GtkGenericPeer
protected void postMouseEvent(int id, long when, int mods, int x, int y,
int clickCount, boolean popupTrigger)
{
- q.postEvent(new MouseEvent(awtComponent, id, when, mods, x, y,
+ q().postEvent(new MouseEvent(awtComponent, id, when, mods, x, y,
clickCount, popupTrigger));
}
protected void postExposeEvent (int x, int y, int width, int height)
{
if (!isInRepaint)
- q.postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT,
+ q().postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT,
new Rectangle (x, y, width, height)));
}
@@ -535,23 +533,23 @@ public class GtkComponentPeer extends GtkGenericPeer
{
synchronized (q)
{
- q.postEvent (keyEvent);
- q.postEvent (new KeyEvent (awtComponent, KeyEvent.KEY_TYPED, when, mods,
+ q().postEvent (keyEvent);
+ q().postEvent (new KeyEvent (awtComponent, KeyEvent.KEY_TYPED, when, mods,
KeyEvent.VK_UNDEFINED, keyChar, keyLocation));
}
}
else
- q.postEvent (keyEvent);
+ q().postEvent (keyEvent);
}
protected void postFocusEvent (int id, boolean temporary)
{
- q.postEvent (new FocusEvent (awtComponent, id, temporary));
+ q().postEvent (new FocusEvent (awtComponent, id, temporary));
}
protected void postItemEvent (Object item, int stateChange)
{
- q.postEvent (new ItemEvent ((ItemSelectable)awtComponent,
+ q().postEvent (new ItemEvent ((ItemSelectable)awtComponent,
ItemEvent.ITEM_STATE_CHANGED,
item, stateChange));
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java
index 7fddd56619f..61551835ec7 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.AWTEvent;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
@@ -46,7 +45,6 @@ import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Window;
-import java.awt.event.PaintEvent;
import java.awt.peer.ComponentPeer;
import java.awt.peer.ContainerPeer;
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java
index af22a2723ef..9bf234404d1 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkDialogPeer.java
@@ -38,8 +38,6 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.AWTEvent;
-import java.awt.Component;
import java.awt.Dialog;
import java.awt.Graphics;
import java.awt.Rectangle;
@@ -76,7 +74,7 @@ public class GtkDialogPeer extends GtkWindowPeer
protected void postExposeEvent (int x, int y, int width, int height)
{
if (!isInRepaint)
- q.postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT,
+ q().postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT,
new Rectangle (x + insets.left,
y + insets.top,
width, height)));
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
index 19925568e87..4281b49cc65 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
@@ -1,5 +1,5 @@
/* GtkFileDialogPeer.java -- Implements FileDialogPeer with GTK
- Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,12 +38,10 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.AWTEvent;
import java.awt.Dialog;
import java.awt.FileDialog;
import java.awt.Graphics;
import java.awt.Window;
-import java.awt.event.WindowEvent;
import java.awt.peer.FileDialogPeer;
import java.io.File;
import java.io.FilenameFilter;
@@ -59,11 +57,12 @@ public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer
native void create (GtkContainerPeer parent);
native void connectSignals ();
native void nativeSetFile (String file);
- native public String nativeGetDirectory();
- native public void nativeSetDirectory(String directory);
+ public native String nativeGetDirectory();
+ public native void nativeSetDirectory(String directory);
native void nativeSetFilenameFilter (FilenameFilter filter);
- public void create() {
+ public void create()
+ {
create((GtkContainerPeer) awtComponent.getParent().getPeer());
FileDialog fd = (FileDialog) awtComponent;
@@ -114,7 +113,7 @@ public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer
// GtkFileChooser requires absolute filenames. If the given filename
// is not absolute, let's construct it based on current directory.
- currentFile = fileName;
+ currentFile = fileName;
if (fileName.indexOf(FS) == 0)
{
nativeSetFile (fileName);
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java
index 605d738a199..e0f070368c5 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkFontPeer.java
@@ -1,5 +1,5 @@
/* GtkFontPeer.java -- Implements FontPeer with GTK+
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,6 @@ import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.font.LineMetrics;
import java.awt.geom.Rectangle2D;
-import java.awt.peer.FontPeer;
import java.text.CharacterIterator;
import java.util.Locale;
import java.util.MissingResourceException;
@@ -68,7 +67,7 @@ public class GtkFontPeer extends ClasspathFontPeer
}
}
- final private String Xname;
+ private final String Xname;
public GtkFontPeer (String name, int style)
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java b/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java
index c0c1437b656..b22a25e8869 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.java
@@ -38,11 +38,8 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.Component;
-import java.awt.Container;
import java.awt.Frame;
import java.awt.Graphics;
-import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MenuBar;
import java.awt.Rectangle;
@@ -165,7 +162,7 @@ public class GtkFramePeer extends GtkWindowPeer
setMenuBar (frame.getMenuBar ());
setTitle (frame.getTitle ());
- setResizable (frame.isResizable ());
+ gtkWindowSetResizable (frame.isResizable ());
setIconImage(frame.getIconImage());
}
@@ -237,9 +234,9 @@ public class GtkFramePeer extends GtkWindowPeer
frame_y,
frame_width,
frame_height);
- }
- awtComponent.validate();
+ awtComponent.validate();
+ }
}
protected void postMouseEvent(int id, long when, int mods, int x, int y,
@@ -253,7 +250,7 @@ public class GtkFramePeer extends GtkWindowPeer
protected void postExposeEvent (int x, int y, int width, int height)
{
if (!isInRepaint)
- q.postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT,
+ q().postEvent (new PaintEvent (awtComponent, PaintEvent.PAINT,
new Rectangle (x + insets.left,
y + insets.top,
width, height)));
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.java
index 657e830bf2e..f161526f647 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
import java.awt.EventQueue;
+import java.awt.Toolkit;
import java.awt.event.ActionEvent;
public class GtkGenericPeer
@@ -57,6 +58,11 @@ public class GtkGenericPeer
// Dispose of our native state.
public native void dispose ();
+ static EventQueue q ()
+ {
+ return Toolkit.getDefaultToolkit ().getSystemEventQueue ();
+ }
+
protected GtkGenericPeer (Object awtWidget)
{
this.awtWidget = awtWidget;
@@ -70,7 +76,7 @@ public class GtkGenericPeer
protected void postActionEvent (String command, int mods)
{
- q.postEvent (new ActionEvent (awtWidget, ActionEvent.ACTION_PERFORMED,
+ q().postEvent (new ActionEvent (awtWidget, ActionEvent.ACTION_PERFORMED,
command, mods));
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java
index 25473d78ea2..02251632b1a 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkLabelPeer.java
@@ -1,5 +1,5 @@
/* GtkLabelPeer.java -- Implements LabelPeer with GTK
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,8 +38,6 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.Component;
-import java.awt.Font;
import java.awt.Label;
import java.awt.peer.LabelPeer;
@@ -50,7 +48,7 @@ public class GtkLabelPeer extends GtkComponentPeer
native void gtkWidgetModifyFont (String name, int style, int size);
native void nativeSetAlignment (float alignment);
- native public void setText (String text);
+ public native void setText(String text);
native void setNativeBounds (int x, int y, int width, int height);
void create ()
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMainThread.java b/libjava/gnu/java/awt/peer/gtk/GtkMainThread.java
deleted file mode 100644
index 4cbe190731c..00000000000
--- a/libjava/gnu/java/awt/peer/gtk/GtkMainThread.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/* GtkMainThread.java -- Runs gtk_main()
- Copyright (C) 1998, 1999 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.awt.peer.gtk;
-
-public class GtkMainThread extends GtkGenericPeer implements Runnable
-{
- private static Thread mainThread = null;
- private static Object mainThreadLock = new Object();
-
- // Whether the gtk+ subsystem has been initialized.
- private boolean gtkInitCalled = false;
-
- /**
- * Call gtk_init. It is very important that this happen before any other
- * gtk calls.
- *
- * @param portableNativeSync 1 if the Java property
- * gnu.classpath.awt.gtk.portable.native.sync is set to "true". 0 if it is
- * set to "false". -1 if unset.
- */
- static native void gtkInit(int portableNativeSync);
- native void gtkMain();
-
- public GtkMainThread()
- {
- super (null);
- synchronized (mainThreadLock)
- {
- if (mainThread != null)
- throw new IllegalStateException();
- mainThread = new Thread(this, "GtkMain");
- }
-
- synchronized (this)
- {
- mainThread.start();
-
- while (!gtkInitCalled)
- {
- try
- {
- wait();
- }
- catch (InterruptedException e) { }
- }
- }
- }
-
- public void run()
- {
- /* Pass the value of the gnu.classpath.awt.gtk.portable.native.sync system
- * property to C. */
- int portableNativeSync;
- String portNatSyncProp =
- System.getProperty("gnu.classpath.awt.gtk.portable.native.sync");
-
- if (portNatSyncProp == null)
- portableNativeSync = -1; // unset
- else if (Boolean.valueOf(portNatSyncProp).booleanValue())
- portableNativeSync = 1; // true
- else
- portableNativeSync = 0; // false
-
- synchronized (this)
- {
- gtkInit(portableNativeSync);
- gtkInitCalled = true;
- notifyAll();
- }
- gtkMain();
- }
-}
-
-
-
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
index 90ad0c01b59..4b547f56afb 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
@@ -1,5 +1,5 @@
/* GtkMenuBarPeer.java -- Implements MenuBarPeer with GTK+
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -76,5 +76,5 @@ public class GtkMenuBarPeer extends GtkMenuComponentPeer
// nativeSetHelpMenu((MenuPeer) menu.getPeer());
}
- native public void delMenu (int index);
+ public native void delMenu(int index);
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
index dd061ed37b8..cd7ca8ac79b 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
@@ -38,8 +38,6 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.Font;
-import java.awt.MenuComponent;
import java.awt.peer.MenuComponentPeer;
public class GtkMenuComponentPeer extends GtkGenericPeer
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
index 81da90df012..f85648ee89c 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
@@ -1,5 +1,5 @@
/* GtkMenuItemPeer.java -- Implements MenuItemPeer with GTK+
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,11 +40,9 @@ package gnu.java.awt.peer.gtk;
import java.awt.Font;
import java.awt.Menu;
-import java.awt.MenuComponent;
import java.awt.MenuBar;
+import java.awt.MenuComponent;
import java.awt.MenuItem;
-import java.awt.peer.MenuBarPeer;
-import java.awt.peer.MenuComponentPeer;
import java.awt.peer.MenuItemPeer;
import java.awt.peer.MenuPeer;
@@ -111,9 +109,9 @@ public class GtkMenuItemPeer extends GtkMenuComponentPeer
setEnabled (true);
}
- native public void setEnabled (boolean b);
+ public native void setEnabled(boolean b);
- native public void setLabel (String label);
+ public native void setLabel(String label);
protected void postMenuActionEvent ()
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.java
index dc170b1cf12..971a349d26e 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.java
@@ -1,5 +1,5 @@
/* GtkMenuPeer.java -- Implements MenuPeer with GTK+
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,8 +43,8 @@ import java.awt.Menu;
import java.awt.MenuContainer;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
-import java.awt.peer.MenuPeer;
import java.awt.peer.MenuItemPeer;
+import java.awt.peer.MenuPeer;
public class GtkMenuPeer extends GtkMenuItemPeer
implements MenuPeer
@@ -99,5 +99,5 @@ public class GtkMenuPeer extends GtkMenuItemPeer
addItem (item, key, shiftModifier);
}
- native public void delItem (int index);
+ public native void delItem(int index);
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java b/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
index 233bed75a9b..ae337a0714f 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
@@ -1,5 +1,5 @@
/* GtkScrollPanePeer.java -- Implements ScrollPanePeer with GTK
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,6 @@ package gnu.java.awt.peer.gtk;
import java.awt.Adjustable;
import java.awt.Dimension;
import java.awt.ScrollPane;
-import java.awt.peer.ComponentPeer;
import java.awt.peer.ScrollPanePeer;
public class GtkScrollPanePeer extends GtkContainerPeer
@@ -84,9 +83,9 @@ public class GtkScrollPanePeer extends GtkContainerPeer
setPolicy (((ScrollPane) awtComponent).getScrollbarDisplayPolicy ());
}
- native public int getHScrollbarHeight ();
- native public int getVScrollbarWidth ();
- native public void setScrollPosition (int x, int y);
+ public native int getHScrollbarHeight();
+ public native int getVScrollbarWidth();
+ public native void setScrollPosition(int x, int y);
public Dimension getPreferredSize ()
{
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
index ef4289633c4..065bab12e1d 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
@@ -1,5 +1,5 @@
/* GtkScrollbarPeer.java -- Implements ScrollbarPeer with GTK+
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -67,13 +67,13 @@ public class GtkScrollbarPeer extends GtkComponentPeer
super (s);
}
- native public void setLineIncrement (int amount);
- native public void setPageIncrement (int amount);
- native public void setValues (int value, int visible, int min, int max);
+ public native void setLineIncrement(int amount);
+ public native void setPageIncrement(int amount);
+ public native void setValues(int value, int visible, int min, int max);
protected void postAdjustmentEvent (int type, int value)
{
- q.postEvent (new AdjustmentEvent ((Adjustable)awtComponent,
+ q().postEvent (new AdjustmentEvent ((Adjustable)awtComponent,
AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED,
type, value));
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
index 8893e36e838..3051ecfcfa8 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
@@ -38,11 +38,8 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
-import java.awt.AWTEvent;
-import java.awt.Component;
import java.awt.Rectangle;
import java.awt.TextComponent;
-import java.awt.event.KeyEvent;
import java.awt.event.TextEvent;
import java.awt.peer.TextComponentPeer;
@@ -85,6 +82,6 @@ public class GtkTextComponentPeer extends GtkComponentPeer
protected void postTextEvent ()
{
- q.postEvent (new TextEvent (awtComponent, TextEvent.TEXT_VALUE_CHANGED));
+ q().postEvent (new TextEvent (awtComponent, TextEvent.TEXT_VALUE_CHANGED));
}
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java
index def22e9874e..58987ee2a22 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.java
@@ -1,5 +1,5 @@
/* GtkToolkit.java -- Implements an AWT Toolkit using GTK for peers
- Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,14 +44,12 @@ import gnu.java.awt.EmbeddedWindowSupport;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.java.awt.peer.ClasspathTextLayoutPeer;
import gnu.java.awt.peer.EmbeddedWindowPeer;
-import gnu.java.awt.peer.gtk.GdkPixbufDecoder;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.peer.DragSourceContextPeer;
import java.awt.font.FontRenderContext;
-import java.awt.font.TextAttribute;
import java.awt.im.InputMethodHighlight;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
@@ -59,16 +57,19 @@ import java.awt.image.ImageConsumer;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.awt.peer.*;
+import java.io.InputStream;
import java.net.URL;
import java.text.AttributedString;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.MissingResourceException;
import java.util.Properties;
+import javax.imageio.spi.IIORegistry;
+
/* This class uses a deprecated method java.awt.peer.ComponentPeer.getPeer().
This merits comment. We are basically calling Sun's bluff on this one.
We think Sun has deprecated it simply to discourage its use as it is
@@ -86,9 +87,8 @@ import java.util.Properties;
public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
implements EmbeddedWindowSupport
{
- GtkMainThread main;
Hashtable containers = new Hashtable();
- static EventQueue q = new EventQueue();
+ static EventQueue q;
static Clipboard systemClipboard;
static boolean useGraphics2dSet;
static boolean useGraphics2d;
@@ -103,21 +103,34 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
return useGraphics2d;
}
+ static native void gtkInit(int portableNativeSync);
+
static
{
if (Configuration.INIT_LOAD_LIBRARY)
System.loadLibrary("gtkpeer");
+
+ int portableNativeSync;
+ String portNatSyncProp =
+ System.getProperty("gnu.classpath.awt.gtk.portable.native.sync");
+
+ if (portNatSyncProp == null)
+ portableNativeSync = -1; // unset
+ else if (Boolean.valueOf(portNatSyncProp).booleanValue())
+ portableNativeSync = 1; // true
+ else
+ portableNativeSync = 0; // false
+
+ gtkInit(portableNativeSync);
}
public GtkToolkit ()
{
- main = new GtkMainThread ();
systemClipboard = new GtkClipboard ();
- GtkGenericPeer.enableQueue (q);
}
-
- native public void beep ();
- native private void getScreenSizeDimensions (int[] xy);
+
+ public native void beep();
+ private native void getScreenSizeDimensions(int[] xy);
public int checkImage (Image image, int width, int height,
ImageObserver observer)
@@ -313,7 +326,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
"SansSerif" });
}
- private class LRUCache extends java.util.LinkedHashMap
+ private class LRUCache extends LinkedHashMap
{
int max_entries;
public LRUCache(int max)
@@ -333,15 +346,18 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
public FontMetrics getFontMetrics (Font font)
{
- if (metricsCache.containsKey(font))
- return (FontMetrics) metricsCache.get(font);
- else
+ synchronized (metricsCache)
+ {
+ if (metricsCache.containsKey(font))
+ return (FontMetrics) metricsCache.get(font);
+ }
+
+ FontMetrics m = new GdkFontMetrics (font);
+ synchronized (metricsCache)
{
- FontMetrics m;
- m = new GdkFontMetrics (font);
metricsCache.put(font, m);
- return m;
- }
+ }
+ return m;
}
public Image getImage (String filename)
@@ -373,9 +389,10 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
return null;
}
- native public int getScreenResolution();
+ public native int getScreenResolution();
- public Dimension getScreenSize () {
+ public Dimension getScreenSize ()
+ {
int dim[] = new int[2];
getScreenSizeDimensions(dim);
return new Dimension(dim[0], dim[1]);
@@ -414,7 +431,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
return false;
}
- native public void sync ();
+ public native void sync();
protected void setComponentState (Component c, GtkComponentPeer cp)
{
@@ -594,6 +611,14 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
protected EventQueue getSystemEventQueueImpl()
{
+ synchronized (GtkToolkit.class)
+ {
+ if (q == null)
+ {
+ q = new EventQueue();
+ GtkGenericPeer.enableQueue (q);
+ }
+ }
return q;
}
@@ -609,19 +634,37 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
throw new Error("not implemented");
}
+ public Rectangle getBounds()
+ {
+ int[] dims = new int[2];
+ getScreenSizeDimensions(dims);
+ return new Rectangle(0, 0, dims[0], dims[1]);
+ }
+
// ClasspathToolkit methods
public GraphicsEnvironment getLocalGraphicsEnvironment()
{
- GraphicsEnvironment ge;
- ge = new GdkGraphicsEnvironment ();
- return ge;
+ return new GdkGraphicsEnvironment(this);
+ }
+
+ public Font createFont(int format, InputStream stream)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public RobotPeer createRobot (GraphicsDevice screen) throws AWTException
+ {
+ return new GdkRobotPeer (screen);
}
- public Font createFont(int format, java.io.InputStream stream)
+ public void registerImageIOSpis(IIORegistry reg)
{
- throw new java.lang.UnsupportedOperationException ();
+ GdkPixbufDecoder.registerSpis(reg);
}
+ public native boolean nativeQueueEmpty();
+ public native void wakeNativeQueue();
+ public native void iterateNativeQueue(EventQueue locked, boolean block);
} // class GtkToolkit
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java
index c61eecd5aa5..eabe59140a6 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.java
@@ -1,5 +1,5 @@
/* GtkWindowPeer.java -- Implements WindowPeer with GTK
- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,6 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
import java.awt.Component;
-import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.WindowEvent;
@@ -48,14 +47,14 @@ import java.awt.peer.WindowPeer;
public class GtkWindowPeer extends GtkContainerPeer
implements WindowPeer
{
- static protected final int GDK_WINDOW_TYPE_HINT_NORMAL = 0;
- static protected final int GDK_WINDOW_TYPE_HINT_DIALOG = 1;
- static protected final int GDK_WINDOW_TYPE_HINT_MENU = 2;
- static protected final int GDK_WINDOW_TYPE_HINT_TOOLBAR = 3;
- static protected final int GDK_WINDOW_TYPE_HINT_SPLASHSCREEN = 4;
- static protected final int GDK_WINDOW_TYPE_HINT_UTILITY = 5;
- static protected final int GDK_WINDOW_TYPE_HINT_DOCK = 6;
- static protected final int GDK_WINDOW_TYPE_HINT_DESKTOP = 7;
+ protected static final int GDK_WINDOW_TYPE_HINT_NORMAL = 0;
+ protected static final int GDK_WINDOW_TYPE_HINT_DIALOG = 1;
+ protected static final int GDK_WINDOW_TYPE_HINT_MENU = 2;
+ protected static final int GDK_WINDOW_TYPE_HINT_TOOLBAR = 3;
+ protected static final int GDK_WINDOW_TYPE_HINT_SPLASHSCREEN = 4;
+ protected static final int GDK_WINDOW_TYPE_HINT_UTILITY = 5;
+ protected static final int GDK_WINDOW_TYPE_HINT_DOCK = 6;
+ protected static final int GDK_WINDOW_TYPE_HINT_DESKTOP = 7;
private boolean hasBeenShown = false;
private int oldState = Frame.NORMAL;
@@ -64,30 +63,27 @@ public class GtkWindowPeer extends GtkContainerPeer
native void gtkWindowSetResizable (boolean resizable);
native void gtkWindowSetModal (boolean modal);
- native void create (int type, boolean decorated,
- int width, int height,
- GtkWindowPeer parent,
- int[] insets);
+ int getWidth ()
+ {
+ return awtComponent.getWidth();
+ }
+
+ int getHeight ()
+ {
+ return awtComponent.getHeight();
+ }
+
+ native void create (int type, boolean decorated, GtkWindowPeer parent);
void create (int type, boolean decorated)
{
GtkWindowPeer parent_peer = null;
Component parent = awtComponent.getParent();
- int[] insets = new int [] { 0, 0, 0, 0 };
if (parent != null)
parent_peer = (GtkWindowPeer) awtComponent.getParent().getPeer();
- create (type, decorated,
- awtComponent.getWidth(),
- awtComponent.getHeight(),
- parent_peer,
- insets);
-
- this.insets.top = insets [0];
- this.insets.left = insets [1];
- this.insets.bottom = insets [2];
- this.insets.right = insets [3];
+ create (type, decorated, parent_peer);
}
void create ()
@@ -113,8 +109,8 @@ public class GtkWindowPeer extends GtkContainerPeer
super (window);
}
- native public void toBack ();
- native public void toFront ();
+ public native void toBack();
+ public native void toFront();
native void nativeSetBounds (int x, int y, int width, int height);
@@ -166,10 +162,12 @@ public class GtkWindowPeer extends GtkContainerPeer
|| frame_y != awtComponent.getY()
|| frame_width != awtComponent.getWidth()
|| frame_height != awtComponent.getHeight())
- setBoundsCallback ((Window) awtComponent,
- frame_x, frame_y, frame_width, frame_height);
+ {
+ setBoundsCallback ((Window) awtComponent,
+ frame_x, frame_y, frame_width, frame_height);
- awtComponent.validate();
+ awtComponent.validate();
+ }
}
native void nativeSetVisible (boolean b);
@@ -192,7 +190,7 @@ public class GtkWindowPeer extends GtkContainerPeer
// Post a WINDOW_OPENED event the first time this window is shown.
if (!hasBeenShown)
{
- q.postEvent (new WindowEvent ((Window) awtComponent, id,
+ q().postEvent (new WindowEvent ((Window) awtComponent, id,
opposite));
hasBeenShown = true;
}
@@ -201,12 +199,12 @@ public class GtkWindowPeer extends GtkContainerPeer
{
if (oldState != newState)
{
- q.postEvent (new WindowEvent ((Window) awtComponent, id, opposite,
+ q().postEvent (new WindowEvent ((Window) awtComponent, id, opposite,
oldState, newState));
oldState = newState;
}
}
else
- q.postEvent (new WindowEvent ((Window) awtComponent, id, opposite));
+ q().postEvent (new WindowEvent ((Window) awtComponent, id, opposite));
}
}
diff --git a/libjava/gnu/java/beans/DummyAppletContext.java b/libjava/gnu/java/beans/DummyAppletContext.java
new file mode 100644
index 00000000000..e10a9074f77
--- /dev/null
+++ b/libjava/gnu/java/beans/DummyAppletContext.java
@@ -0,0 +1,200 @@
+/* gnu.java.beans.DummyAppletContext
+ Copyright (C) 2004, 2005 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.beans;
+
+import java.applet.Applet;
+import java.applet.AppletContext;
+import java.applet.AudioClip;
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+
+/** A placeholder <code>AppletContext</code> implementation that does nothing.
+ *
+ * <p>This is the default implementation for GNU Classpath and is used for <code>Applet</code>
+ * beans being created with {@link java.beans.Beans.instantiate}.</p>
+ *
+ * <p>It has no functionality in order to allow it to be used without any dependencies
+ * (e.g. sound, network access, ...).</p>
+ *
+ * @author Robert Schuster
+ */
+class DummyAppletContext implements AppletContext
+{
+ private static final Enumeration EMPTY_ENUMERATION = Collections.enumeration(Collections.EMPTY_SET);
+ private static final AudioClip DUMMY_CLIP = new DummyAudioClip();
+
+ DummyAppletContext()
+ {
+ }
+
+ /** Implementation is VM neutral and returns a dummy {@link AudioClip} instance
+ * for every URL that returns a non-<code>null</code> object on
+ * <code>URL.openConnection()</code>.
+ *
+ * @see java.applet.AppletContext#getAudioClip(java.net.URL)
+ *
+ * FIXME: When Java Sound API (javax.sound) is included in Classpath or URL is able to handle
+ * sampled sound this should be adjusted.
+ */
+ public AudioClip getAudioClip(URL url)
+ {
+ try
+ {
+ return (url.openConnection() != null ? DUMMY_CLIP : null);
+ }
+ catch (IOException ioe)
+ {
+ return null;
+ }
+ }
+
+ /** Loads the <code>Image</code> instance by delegating to
+ * {@link java.awt.Toolkit.createImage(URL) }.
+ *
+ * @see java.applet.AppletContext#getImage(java.net.URL)
+ * @see java.awt.Toolkit#createImage(java.net.URL)
+ */
+ public Image getImage(URL url)
+ {
+ return Toolkit.getDefaultToolkit().createImage(url);
+ }
+
+ /** Returns <code>null</code> for every argument.
+ *
+ * @see java.applet.AppletContext#getApplet(java.lang.String)
+ */
+ public Applet getApplet(String name)
+ {
+ return null;
+ }
+
+ /** Returns always an empty <code>Enumeration</code>.
+ *
+ * @see java.applet.AppletContext#getApplets()
+ */
+ public Enumeration getApplets()
+ {
+ return EMPTY_ENUMERATION;
+ }
+
+ /** Does nothing.
+ *
+ * @see java.applet.AppletContext#showDocument(java.net.URL)
+ */
+ public void showDocument(URL url)
+ {
+ }
+
+ /** Does nothing.
+ *
+ * @see java.applet.AppletContext#showDocument(java.net.URL, java.lang.String)
+ */
+ public void showDocument(URL url, String target)
+ {
+ }
+
+ /** Does nothing.
+ *
+ * @see java.applet.AppletContext#showStatus(java.lang.String)
+ */
+ public void showStatus(String message)
+ {
+ }
+
+ /** Does nothing.
+ *
+ * @see java.applet.AppletContext#setStream(java.lang.String, java.io.InputStream)
+ */
+ public void setStream(String key, InputStream stream)
+ throws IOException
+ {
+ throw new IOException("Dummy implementation imposes zero InputStream associations.");
+ }
+
+ /** Returns <code>null</code> for every argument.
+ *
+ * @see java.applet.AppletContext#getStream(java.lang.String)
+ */
+ public InputStream getStream(String key)
+ {
+ return null;
+ }
+
+ /** Returns always an empty iterator.
+ *
+ * @see java.applet.AppletContext#getStreamKeys()
+ */
+ public Iterator getStreamKeys()
+ {
+ return Collections.EMPTY_SET.iterator();
+ }
+
+ /** Dummy <code>AudioClip</code> implementation that does nothing but
+ * preventing <code>NullPointerException</code>S being thrown in programs
+ * that expect a valid <code>AudioClip</code> instance to be returned by
+ * their Applet.
+ *
+ * @author Robert Schuster
+ */
+ static class DummyAudioClip implements AudioClip
+ {
+ public void play()
+ {
+ }
+
+ public void stop()
+ {
+ }
+
+ public void loop()
+ {
+ }
+
+ public String toString()
+ {
+ return "DummyAudioClip never plays anything - implement javax.sound and make us happy :)";
+ }
+ }
+}
diff --git a/libjava/gnu/java/beans/DummyAppletStub.java b/libjava/gnu/java/beans/DummyAppletStub.java
new file mode 100644
index 00000000000..ff99e98d9c1
--- /dev/null
+++ b/libjava/gnu/java/beans/DummyAppletStub.java
@@ -0,0 +1,115 @@
+/* gnu.java.beans.DummyAppletStub
+ Copyright (C) 2004, 2005 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.beans;
+
+import java.applet.AppletContext;
+import java.applet.AppletStub;
+import java.net.URL;
+
+/** Placeholder implementation of <code>AppletStub</code> providing no functionality.
+ * <p>This class is used for <code>Applet</code> being created with
+ * {@link java.beans.Bean.instantiate}.</p>
+ *
+ * @author Robert Schuster
+ */
+public class DummyAppletStub implements AppletStub
+{
+ private URL documentBase;
+ private URL codeBase;
+ private DummyAppletContext context;
+
+ public DummyAppletStub(URL newCodeBase, URL newDocumentBase)
+ {
+ codeBase = newCodeBase;
+ documentBase = newDocumentBase;
+
+ context = new DummyAppletContext();
+ }
+
+ /** Returns always <code>true</code>.
+ *
+ * @see java.applet.AppletStub#isActive()
+ */
+ public boolean isActive()
+ {
+ return true;
+ }
+
+ /**
+ * @see java.applet.AppletStub#getDocumentBase()
+ */
+ public URL getDocumentBase()
+ {
+ return documentBase;
+ }
+
+ /**
+ * @see java.applet.AppletStub#getCodeBase()
+ */
+ public URL getCodeBase()
+ {
+ return codeBase;
+ }
+
+ /** Implementation returns <code>null</code> for every parameter name.
+ *
+ * @see java.applet.AppletStub#getParameter(java.lang.String)
+ */
+ public String getParameter(String name)
+ {
+ return null;
+ }
+
+ /** Returns a non-functional context instance.
+ *
+ * @see java.applet.AppletStub#getAppletContext()
+ */
+ public AppletContext getAppletContext()
+ {
+ return context;
+ }
+
+ /** Does nothing.
+ *
+ * @see java.applet.AppletStub#appletResize(int, int)
+ */
+ public void appletResize(int width, int height)
+ {
+ }
+}
diff --git a/libjava/gnu/java/beans/EmptyBeanInfo.java b/libjava/gnu/java/beans/EmptyBeanInfo.java
deleted file mode 100644
index 97cdf0a0eb5..00000000000
--- a/libjava/gnu/java/beans/EmptyBeanInfo.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/* gnu.java.beans.EmptyBeanInfo
- Copyright (C) 1998 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.beans;
-
-import java.beans.*;
-
-/**
- ** EmptyBeanInfo is a BeanInfo that discloses no
- ** information about the Bean and does not allow
- ** Introspection. The Introspector uses instances of this
- ** class to create empty BeanInfos, but it could also be
- ** used as a base class for BeanInfos that do not allow
- ** Introspection and provide only a little bit of
- ** information.<P>
- **
- ** @author John Keiser
- ** @version 1.1.0, 30 Jul 1998
- ** @see gnu.java.beans.ExplicitBeanInfo
- ** @see java.beans.BeanInfo
- **/
-
-public class EmptyBeanInfo extends ExplicitBeanInfo {
- /** Create a new EmptyBeanInfo. **/
- public EmptyBeanInfo(Class beanClass) {
- super(new BeanDescriptor(beanClass,null),
- new BeanInfo[0],
- new PropertyDescriptor[0],
- -1,
- new EventSetDescriptor[0],
- -1,
- new MethodDescriptor[0],
- null);
- }
-}
diff --git a/libjava/gnu/java/beans/IntrospectionIncubator.java b/libjava/gnu/java/beans/IntrospectionIncubator.java
index ac08f7ae5cd..21bf984d24c 100644
--- a/libjava/gnu/java/beans/IntrospectionIncubator.java
+++ b/libjava/gnu/java/beans/IntrospectionIncubator.java
@@ -99,8 +99,7 @@ public class IntrospectionIncubator {
* @param method The method instance to examine.
*/
public void addMethod(Method method) {
- if(Modifier.isPublic(method.getModifiers()) &&
- !Modifier.isStatic(method.getModifiers())) {
+ if(Modifier.isPublic(method.getModifiers())) {
String name = ClassHelper.getTruncatedName(method.getName());
Class retType = method.getReturnType();
Class[] params = method.getParameterTypes();
diff --git a/libjava/gnu/java/beans/info/ComponentBeanInfo.java b/libjava/gnu/java/beans/info/ComponentBeanInfo.java
deleted file mode 100644
index 877a18d65d2..00000000000
--- a/libjava/gnu/java/beans/info/ComponentBeanInfo.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* gnu.java.beans.info.ComponentBeanInfo
- Copyright (C) 1998 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.beans.info;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.beans.SimpleBeanInfo;
-
-/** BeanInfo class for java.awt.Component.
- ** This provides a few properties, but that's
- ** it.
- ** @author John Keiser
- ** @version 1.1.0, Aug 1 1998
- **/
-public class ComponentBeanInfo extends SimpleBeanInfo {
- static PropertyDescriptor[] properties;
- static {
- try {
- properties = new PropertyDescriptor[6];
- properties[0] = new PropertyDescriptor("name",java.awt.Component.class);
- properties[1] = new PropertyDescriptor("background",java.awt.Component.class);
- properties[2] = new PropertyDescriptor("foreground",java.awt.Component.class);
- properties[3] = new PropertyDescriptor("font",java.awt.Component.class);
- properties[4] = new PropertyDescriptor("enabled",java.awt.Component.class);
- properties[5] = new PropertyDescriptor("visible",java.awt.Component.class);
- } catch(IntrospectionException E) {
- properties = null;
- throw new UnknownError("Could not introspect some java.awt.Component properties.");
- }
- }
- public ComponentBeanInfo() {
- super();
- }
-
- public PropertyDescriptor[] getPropertyDescriptors() {
- return properties;
- }
-}
-
diff --git a/libjava/gnu/java/io/Base64InputStream.java b/libjava/gnu/java/io/Base64InputStream.java
index 3780e952837..617e8315102 100644
--- a/libjava/gnu/java/io/Base64InputStream.java
+++ b/libjava/gnu/java/io/Base64InputStream.java
@@ -1,5 +1,5 @@
/* Base64InputStream.java -- base-64 input stream.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.io;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -90,6 +92,30 @@ public class Base64InputStream extends FilterInputStream
eof = false;
}
+ // Class method.
+ // ------------------------------------------------------------------------
+
+ /**
+ * Decode a single Base-64 string to a byte array.
+ *
+ * @param base64 The Base-64 encoded data.
+ * @return The decoded bytes.
+ * @throws IOException If the given data do not compose a valid Base-64
+ * sequence.
+ */
+ public static byte[] decode(String base64) throws IOException
+ {
+ Base64InputStream in =
+ new Base64InputStream(new ByteArrayInputStream(base64.getBytes()));
+ ByteArrayOutputStream out =
+ new ByteArrayOutputStream((int) (base64.length() / 0.666));
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = in.read(buf)) != -1)
+ out.write(buf, 0, len);
+ return out.toByteArray();
+ }
+
// Instance methods.
// ------------------------------------------------------------------------
diff --git a/libjava/gnu/java/lang/MainThread.java b/libjava/gnu/java/lang/MainThread.java
index 14a00ca8d9b..d7cf2363625 100644
--- a/libjava/gnu/java/lang/MainThread.java
+++ b/libjava/gnu/java/lang/MainThread.java
@@ -1,5 +1,5 @@
/* gnu.java.lang.MainThread
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -91,7 +91,8 @@ final class MainThread extends Thread
{
try
{
- klass = Class.forName(klass_name);
+ klass = Class.forName(klass_name, true,
+ ClassLoader.getSystemClassLoader());
}
catch (ClassNotFoundException x)
{
diff --git a/libjava/gnu/java/locale/LocaleInformation_en.java b/libjava/gnu/java/locale/LocaleInformation_en.java
index aa35091a526..df258095c1b 100644
--- a/libjava/gnu/java/locale/LocaleInformation_en.java
+++ b/libjava/gnu/java/locale/LocaleInformation_en.java
@@ -159,7 +159,7 @@ public class LocaleInformation_en extends ListResourceBundle
{ "shortWeekdays", shortWeekdays },
{ "ampms", ampms },
{ "eras", eras },
- { "localPatternChars", "GyMdkHmsSEDFwWahKz" },
+ { "localPatternChars", "GyMdkHmsSEDFwWahKzYeugAZ" },
{ "zoneStrings", zoneStrings },
{ "shortDateFormat", "M/d/yy" }, // Java's Y2K bug.
diff --git a/libjava/gnu/java/net/CRLFInputStream.java b/libjava/gnu/java/net/CRLFInputStream.java
new file mode 100644
index 00000000000..706c23447be
--- /dev/null
+++ b/libjava/gnu/java/net/CRLFInputStream.java
@@ -0,0 +1,205 @@
+/* CRLFInputStream.java --
+ Copyright (C) 2002, 2003, 2004 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.net;
+
+import java.io.FilterInputStream;
+import java.io.InputStream;
+import java.io.IOException;
+
+/**
+ * An input stream that filters out CR/LF pairs into LFs.
+ *
+ * @author Chris Burdess (dog@gnu.org)
+ */
+public class CRLFInputStream
+ extends FilterInputStream
+{
+ /**
+ * The CR octet.
+ */
+ public static final int CR = 13;
+
+ /**
+ * The LF octet.
+ */
+ public static final int LF = 10;
+
+ /**
+ * Buffer.
+ */
+ protected int buf = -1;
+
+ /**
+ * Buffer at time of mark.
+ */
+ protected int markBuf = -1;
+
+ /**
+ * Constructs a CR/LF input stream connected to the specified input
+ * stream.
+ */
+ public CRLFInputStream(InputStream in)
+ {
+ super(in);
+ }
+
+ /**
+ * Reads the next byte of data from this input stream.
+ * Returns -1 if the end of the stream has been reached.
+ * @exception IOException if an I/O error occurs
+ */
+ public int read()
+ throws IOException
+ {
+ int c;
+ if (buf != -1)
+ {
+ c = buf;
+ buf = -1;
+ return c;
+ }
+ else
+ {
+ c = super.read();
+ if (c == CR)
+ {
+ buf = super.read();
+ if (buf == LF)
+ {
+ c = buf;
+ buf = -1;
+ }
+ }
+ }
+ return c;
+ }
+
+ /**
+ * Reads up to b.length bytes of data from this input stream into
+ * an array of bytes.
+ * Returns -1 if the end of the stream has been reached.
+ * @exception IOException if an I/O error occurs
+ */
+ public int read(byte[] b)
+ throws IOException
+ {
+ return read(b, 0, b.length);
+ }
+
+ /**
+ * Reads up to len bytes of data from this input stream into an
+ * array of bytes, starting at the specified offset.
+ * Returns -1 if the end of the stream has been reached.
+ * @exception IOException if an I/O error occurs
+ */
+ public int read(byte[] b, int off, int len)
+ throws IOException
+ {
+ int shift = 0;
+ if (buf != -1)
+ {
+ // Push buf onto start of byte array
+ b[off] = (byte) buf;
+ off++;
+ len--;
+ buf = -1;
+ shift++;
+ }
+ int l = super.read(b, off, len);
+ l = removeCRLF(b, off - shift, l);
+ return l;
+ }
+
+ /**
+ * Indicates whether this stream supports the mark and reset methods.
+ */
+ public boolean markSupported()
+ {
+ return in.markSupported();
+ }
+
+ /**
+ * Marks the current position in this stream.
+ */
+ public void mark(int readlimit)
+ {
+ in.mark(readlimit);
+ markBuf = buf;
+ }
+
+ /**
+ * Repositions this stream to the position at the time the mark method was
+ * called.
+ */
+ public void reset()
+ throws IOException
+ {
+ in.reset();
+ buf = markBuf;
+ }
+
+ private int removeCRLF(byte[] b, int off, int len)
+ {
+ int end = off + len;
+ for (int i = off; i < end; i++)
+ {
+ if (b[i] == CR)
+ {
+ if (i + 1 == end)
+ {
+ // This is the last byte, impossible to determine whether CRLF
+ buf = CR;
+ len--;
+ }
+ else if (b[i + 1] == LF)
+ {
+ // Shift left
+ end--;
+ for (int j = i; j < end; j++)
+ {
+ b[j] = b[j + 1];
+ }
+ len--;
+ end = off + len;
+ }
+ }
+ }
+ return len;
+ }
+}
diff --git a/libjava/gnu/java/net/CRLFOutputStream.java b/libjava/gnu/java/net/CRLFOutputStream.java
new file mode 100644
index 00000000000..665a02b62d0
--- /dev/null
+++ b/libjava/gnu/java/net/CRLFOutputStream.java
@@ -0,0 +1,183 @@
+/* CRLFOutputStream.java --
+ Copyright (C) 2002, 2003, 2004 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.net;
+
+import java.io.FilterOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+
+/**
+ * An output stream that filters LFs into CR/LF pairs.
+ *
+ * @author Chris Burdess (dog@gnu.org)
+ */
+public class CRLFOutputStream
+ extends FilterOutputStream
+{
+ static final String US_ASCII = "US-ASCII";
+
+ /**
+ * The CR octet.
+ */
+ public static final int CR = 13;
+
+ /**
+ * The LF octet.
+ */
+ public static final int LF = 10;
+
+ /**
+ * The CR/LF pair.
+ */
+ public static final byte[] CRLF = { CR, LF };
+
+ /**
+ * The last byte read.
+ */
+ protected int last;
+
+ /**
+ * Constructs a CR/LF output stream connected to the specified output stream.
+ */
+ public CRLFOutputStream(OutputStream out)
+ {
+ super(out);
+ last = -1;
+ }
+
+ /**
+ * Writes a character to the underlying stream.
+ * @exception IOException if an I/O error occurred
+ */
+ public void write(int ch) throws IOException
+ {
+ if (ch == CR)
+ {
+ out.write(CRLF);
+ }
+ else if (ch == LF)
+ {
+ if (last != CR)
+ {
+ out.write(CRLF);
+ }
+ }
+ else
+ {
+ out.write(ch);
+ }
+ last = ch;
+ }
+
+ /**
+ * Writes a byte array to the underlying stream.
+ * @exception IOException if an I/O error occurred
+ */
+ public void write(byte[] b)
+ throws IOException
+ {
+ write(b, 0, b.length);
+ }
+
+ /**
+ * Writes a portion of a byte array to the underlying stream.
+ * @exception IOException if an I/O error occurred
+ */
+ public void write(byte[] b, int off, int len)
+ throws IOException
+ {
+ int d = off;
+ len += off;
+ for (int i = off; i < len; i++)
+ {
+ switch (b[i])
+ {
+ case CR:
+ out.write (b, d, i - d);
+ out.write (CRLF, 0, 2);
+ d = i + 1;
+ break;
+ case LF:
+ if (last != CR)
+ {
+ out.write (b, d, i - d);
+ out.write (CRLF, 0, 2);
+ }
+ d = i + 1;
+ break;
+ }
+ last = b[i];
+ }
+ if (len - d > 0)
+ {
+ out.write (b, d, len - d);
+ }
+ }
+
+ /**
+ * Writes the specified ASCII string to the underlying stream.
+ * @exception IOException if an I/O error occurred
+ */
+ public void write(String text)
+ throws IOException
+ {
+ try
+ {
+ byte[] bytes = text.getBytes(US_ASCII);
+ write(bytes, 0, bytes.length);
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ throw new IOException("The US-ASCII encoding is not supported " +
+ "on this system");
+ }
+ }
+
+ /**
+ * Writes a newline to the underlying stream.
+ * @exception IOException if an I/O error occurred
+ */
+ public void writeln()
+ throws IOException
+ {
+ out.write(CRLF, 0, 2);
+ }
+}
+
diff --git a/libjava/gnu/java/net/GetLocalHostAction.java b/libjava/gnu/java/net/GetLocalHostAction.java
new file mode 100644
index 00000000000..36d17d9df45
--- /dev/null
+++ b/libjava/gnu/java/net/GetLocalHostAction.java
@@ -0,0 +1,65 @@
+/* GetLocalHostAction.java --
+ Copyright (C) 2003, 2004 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.net;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.security.PrivilegedAction;
+
+/**
+ * Privileged action to retrieve the local host InetAddress.
+ *
+ * @author Chris Burdess (dog@gnu.org)
+ */
+public class GetLocalHostAction
+ implements PrivilegedAction
+{
+ public Object run()
+ {
+ try
+ {
+ return InetAddress.getLocalHost();
+ }
+ catch (UnknownHostException e)
+ {
+ return null;
+ }
+ }
+}
+
diff --git a/libjava/gnu/java/net/PlainSocketImpl.java b/libjava/gnu/java/net/PlainSocketImpl.java
index 4301a485cf3..f7e6cb89052 100644
--- a/libjava/gnu/java/net/PlainSocketImpl.java
+++ b/libjava/gnu/java/net/PlainSocketImpl.java
@@ -1,5 +1,5 @@
/* PlainSocketImpl.java -- Default socket implementation
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -200,8 +200,20 @@ public final class PlainSocketImpl extends SocketImpl
*/
public native Object getOption(int optID) throws SocketException;
+ /**
+ * Flushes the input stream and closes it. If you read from the input stream
+ * after calling this method a <code>IOException</code> will be thrown.
+ *
+ * @throws IOException if an error occurs
+ */
public native void shutdownInput() throws IOException;
+ /**
+ * Flushes the output stream and closes it. If you write to the output stream
+ * after calling this method a <code>IOException</code> will be thrown.
+ *
+ * @throws IOException if an error occurs
+ */
public native void shutdownOutput() throws IOException;
/**
diff --git a/libjava/gnu/java/net/natPlainSocketImplPosix.cc b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
index 46b56bb6efb..9348378d30f 100644
--- a/libjava/gnu/java/net/natPlainSocketImplPosix.cc
+++ b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
@@ -405,6 +405,11 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint
static jint
read_helper (jint native_fd, jint timeout, jbyte *bytes, jint count)
{
+ // If zero bytes were requested, short circuit so that recv
+ // doesn't signal EOF.
+ if (count == 0)
+ return 0;
+
// Do timeouts via select.
if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{
diff --git a/libjava/gnu/java/net/natPlainSocketImplWin32.cc b/libjava/gnu/java/net/natPlainSocketImplWin32.cc
index c4a54a90c3a..81cf6328078 100644
--- a/libjava/gnu/java/net/natPlainSocketImplWin32.cc
+++ b/libjava/gnu/java/net/natPlainSocketImplWin32.cc
@@ -491,6 +491,11 @@ jint
gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer,
jint offset, jint count)
{
+ // If zero bytes were requested, short circuit so that recv
+ // doesn't signal EOF.
+ if (count == 0)
+ return 0;
+
if (! buffer)
throw new ::java::lang::NullPointerException;
diff --git a/libjava/gnu/java/net/protocol/http/Cookie.java b/libjava/gnu/java/net/protocol/http/Cookie.java
index fc4fde4f0dd..452ca0f7ad1 100644
--- a/libjava/gnu/java/net/protocol/http/Cookie.java
+++ b/libjava/gnu/java/net/protocol/http/Cookie.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
-import java.text.ParseException;
import java.util.Date;
/**
diff --git a/libjava/gnu/java/net/protocol/http/HTTPConnection.java b/libjava/gnu/java/net/protocol/http/HTTPConnection.java
index 00cb7036c75..a3f14b51012 100644
--- a/libjava/gnu/java/net/protocol/http/HTTPConnection.java
+++ b/libjava/gnu/java/net/protocol/http/HTTPConnection.java
@@ -54,12 +54,10 @@ import java.net.InetSocketAddress;
import java.net.Socket;
import java.security.GeneralSecurityException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import javax.net.SocketFactory;
import javax.net.ssl.HandshakeCompletedListener;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
diff --git a/libjava/gnu/java/net/protocol/http/HTTPDateFormat.java b/libjava/gnu/java/net/protocol/http/HTTPDateFormat.java
index 22ef05631e9..0137596aa74 100644
--- a/libjava/gnu/java/net/protocol/http/HTTPDateFormat.java
+++ b/libjava/gnu/java/net/protocol/http/HTTPDateFormat.java
@@ -38,9 +38,15 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
-import java.io.PrintStream;
-import java.text.*;
-import java.util.*;
+import java.text.DateFormat;
+import java.text.DecimalFormat;
+import java.text.FieldPosition;
+import java.text.NumberFormat;
+import java.text.ParsePosition;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
/**
* HTTP date formatter and parser.
diff --git a/libjava/gnu/java/net/protocol/http/Request.java b/libjava/gnu/java/net/protocol/http/Request.java
index 123e889c065..62a1a535a12 100644
--- a/libjava/gnu/java/net/protocol/http/Request.java
+++ b/libjava/gnu/java/net/protocol/http/Request.java
@@ -46,7 +46,6 @@ import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ProtocolException;
-import java.net.Socket;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
diff --git a/libjava/gnu/java/nio/ChannelReader.java b/libjava/gnu/java/nio/ChannelReader.java
new file mode 100644
index 00000000000..11e66a77ebb
--- /dev/null
+++ b/libjava/gnu/java/nio/ChannelReader.java
@@ -0,0 +1,211 @@
+/* ChannelReader.java --
+ Copyright (C) 2005 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.io.IOException;
+import java.io.Reader;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.CodingErrorAction;
+
+/**
+ * A Reader implementation that works using a ReadableByteChannel and a
+ * CharsetDecoder.
+ *
+ * <p>
+ * This is a bridge between NIO <-> IO character decoding.
+ * </p>
+ *
+ * @author Robert Schuster
+ */
+public class ChannelReader extends Reader
+{
+
+ private static final int DEFAULT_BUFFER_CAP = 8192;
+
+ private ReadableByteChannel channel;
+
+ private CharsetDecoder decoder;
+
+ private ByteBuffer byteBuffer;
+
+ private CharBuffer charBuffer;
+
+ public ChannelReader(ReadableByteChannel channel, CharsetDecoder decoder,
+ int minBufferCap)
+ {
+ this.channel = channel;
+ this.decoder = decoder;
+
+ // JDK reports errors, so we do the same.
+ decoder.onMalformedInput(CodingErrorAction.REPORT);
+ decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
+ decoder.reset();
+
+ int size = (minBufferCap == -1) ? DEFAULT_BUFFER_CAP : minBufferCap;
+
+ // Allocates the buffers and prepares them for reading, because that is the
+ // first operation being done on them.
+ byteBuffer = ByteBuffer.allocate(size);
+ byteBuffer.flip();
+ charBuffer = CharBuffer.allocate((int) (size * decoder.averageCharsPerByte()));
+ }
+
+ public int read(char[] buf, int offset, int count) throws IOException
+ {
+ // I declared channel being null meaning that the reader is closed.
+ if (!channel.isOpen())
+ throw new IOException("Reader was already closed.");
+
+ // I declared decoder being null meaning that there is no more data to read
+ // and convert.
+ if (decoder == null)
+ return -1;
+
+ // Stores the amount of character being read. It -1 so that if no conversion
+ // occured the caller will see this as an 'end of file'.
+ int sum = -1;
+
+ // Copies any characters which may be left from the last invocation into the
+ // destination array.
+ if (charBuffer.remaining() > 0)
+ {
+ sum = Math.min(count, charBuffer.remaining());
+ charBuffer.get(buf, offset, sum);
+
+ // Updates the control variables according to the latest copy operation.
+ offset += sum;
+ count -= sum;
+ }
+
+ // Copies the character which have not been put in the destination array to
+ // the beginning. If data is actually copied count will be 0. If no data is
+ // copied count is >0 and we can now convert some more characters.
+ charBuffer.compact();
+
+ int converted = 0;
+ boolean last = false;
+
+ while (count != 0)
+ {
+ // Tries to convert some bytes (Which will intentionally fail in the
+ // first place because we have not read any bytes yet.)
+ CoderResult result = decoder.decode(byteBuffer, charBuffer, last);
+ if (result.isMalformed() || result.isUnmappable())
+ {
+ // JDK throws exception when bytes are malformed for sure.
+ // FIXME: Unsure what happens when a character is simply
+ // unmappable.
+ result.throwException();
+ }
+
+ // Marks that we should end this loop regardless whether the caller
+ // wants more chars or not, when this was the last conversion.
+ if (last)
+ {
+ decoder = null;
+ }
+ else if (result.isUnderflow())
+ {
+ // We need more bytes to do the conversion.
+
+ // Copies the not yet converted bytes to the beginning making it
+ // being able to receive more bytes.
+ byteBuffer.compact();
+
+ // Reads in another bunch of bytes for being converted.
+ if (channel.read(byteBuffer) == -1)
+ {
+ // If there is no more data available in the channel we mark
+ // that state for the final character conversion run which is
+ // done in the next loop iteration.
+ last = true;
+ }
+
+ // Prepares the byteBuffer for the next character conversion run.
+ byteBuffer.flip();
+ }
+
+ // Prepares the charBuffer for being drained.
+ charBuffer.flip();
+
+ converted = Math.min(count, charBuffer.remaining());
+ charBuffer.get(buf, offset, converted);
+
+ // Copies characters which have not yet being copied into the char-Array
+ // to the beginning making it possible to read them later (If data is
+ // really copied here, then the caller has received enough characters so
+ // far.).
+ charBuffer.compact();
+
+ // Updates the control variables according to the latest copy operation.
+ offset += converted;
+ count -= converted;
+
+ // Updates the amount of transferred characters.
+ sum += converted;
+
+ if (decoder == null)
+ {
+ break;
+ }
+
+ // Now that more characters have been transfered we let the loop decide
+ // what to do next.
+ }
+
+ // Makes the charBuffer ready for reading on the next invocation.
+ charBuffer.flip();
+
+ return sum;
+ }
+
+ public void close() throws IOException
+ {
+ channel.close();
+
+ // Makes sure all intermediate data is released by the decoder.
+ if (decoder != null)
+ decoder.reset();
+ }
+
+}
diff --git a/libjava/gnu/java/nio/PipeImpl.java b/libjava/gnu/java/nio/PipeImpl.java
index df79e17fd2b..ca374c52ff1 100644
--- a/libjava/gnu/java/nio/PipeImpl.java
+++ b/libjava/gnu/java/nio/PipeImpl.java
@@ -1,5 +1,5 @@
/* PipeImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -79,7 +79,8 @@ class PipeImpl extends Pipe
return read (srcs, 0, srcs.length);
}
- public synchronized final long read (ByteBuffer[] srcs, int offset, int len)
+ public final synchronized long read (ByteBuffer[] srcs, int offset,
+ int len)
throws IOException
{
if (offset < 0
@@ -138,7 +139,7 @@ class PipeImpl extends Pipe
return write (srcs, 0, srcs.length);
}
- public synchronized final long write (ByteBuffer[] srcs, int offset, int len)
+ public final synchronized long write (ByteBuffer[] srcs, int offset, int len)
throws IOException
{
if (offset < 0
diff --git a/libjava/gnu/java/nio/SelectorImpl.java b/libjava/gnu/java/nio/SelectorImpl.java
index 62d06624616..f64c86d1f54 100644
--- a/libjava/gnu/java/nio/SelectorImpl.java
+++ b/libjava/gnu/java/nio/SelectorImpl.java
@@ -1,5 +1,5 @@
/* SelectorImpl.java --
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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.io.IOException;
@@ -49,11 +50,9 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
-import gnu.classpath.Configuration;
public class SelectorImpl extends AbstractSelector
{
-
private Set keys;
private Set selected;
@@ -375,24 +374,13 @@ public class SelectorImpl extends AbstractSelector
SelectionKeyImpl result;
if (ch instanceof SocketChannelImpl)
- {
- SocketChannelImpl sc = (SocketChannelImpl) ch;
- result = new SocketChannelSelectionKey (ch, this);
- }
+ result = new SocketChannelSelectionKey (ch, this);
else if (ch instanceof DatagramChannelImpl)
- {
- DatagramChannelImpl dc = (DatagramChannelImpl) ch;
- result = new DatagramChannelSelectionKey (ch, this);
- }
+ result = new DatagramChannelSelectionKey (ch, this);
else if (ch instanceof ServerSocketChannelImpl)
- {
- ServerSocketChannelImpl ssc = (ServerSocketChannelImpl) ch;
- result = new ServerSocketChannelSelectionKey (ch, this);
- }
+ result = new ServerSocketChannelSelectionKey (ch, this);
else
- {
- throw new InternalError ("No known channel type");
- }
+ throw new InternalError ("No known channel type");
synchronized (keys)
{
diff --git a/libjava/gnu/java/nio/channels/FileChannelImpl.java b/libjava/gnu/java/nio/channels/FileChannelImpl.java
index 678e10f2349..e5b02e9fdb3 100644
--- a/libjava/gnu/java/nio/channels/FileChannelImpl.java
+++ b/libjava/gnu/java/nio/channels/FileChannelImpl.java
@@ -1,5 +1,5 @@
/* FileChannelImpl.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -192,6 +192,7 @@ public final class FileChannelImpl extends FileChannel
{
byte[] buffer = src.array();
write(buffer, src.arrayOffset() + src.position(), len);
+ src.position(src.position() + len);
}
else
{
@@ -281,7 +282,30 @@ public final class FileChannelImpl extends FileChannel
throw new ClosedChannelException ();
}
- public long transferTo (long position, long count, WritableByteChannel target)
+ // like transferTo, but with a count of less than 2Gbytes
+ private int smallTransferTo (long position, int count,
+ WritableByteChannel target)
+ throws IOException
+ {
+ ByteBuffer buffer;
+ try
+ {
+ // Try to use a mapped buffer if we can. If this fails for
+ // any reason we'll fall back to using a ByteBuffer.
+ buffer = map (MapMode.READ_ONLY, position, count);
+ }
+ catch (IOException e)
+ {
+ buffer = ByteBuffer.allocate (count);
+ read (buffer, position);
+ buffer.flip();
+ }
+
+ return target.write (buffer);
+ }
+
+ public long transferTo (long position, long count,
+ WritableByteChannel target)
throws IOException
{
if (position < 0
@@ -294,14 +318,57 @@ public final class FileChannelImpl extends FileChannel
if ((mode & READ) == 0)
throw new NonReadableChannelException ();
- // XXX: count needs to be casted from long to int. Dataloss ?
- ByteBuffer buffer = ByteBuffer.allocate ((int) count);
- read (buffer, position);
- buffer.flip();
- return target.write (buffer);
+ final int pageSize = 65536;
+ long total = 0;
+
+ while (count > 0)
+ {
+ int transferred
+ = smallTransferTo (position, (int)Math.min (count, pageSize),
+ target);
+ if (transferred < 0)
+ break;
+ total += transferred;
+ position += transferred;
+ count -= transferred;
+ }
+
+ return total;
}
- public long transferFrom (ReadableByteChannel src, long position, long count)
+ // like transferFrom, but with a count of less than 2Gbytes
+ private int smallTransferFrom (ReadableByteChannel src, long position,
+ int count)
+ throws IOException
+ {
+ ByteBuffer buffer = null;
+
+ if (src instanceof FileChannel)
+ {
+ try
+ {
+ // Try to use a mapped buffer if we can. If this fails
+ // for any reason we'll fall back to using a ByteBuffer.
+ buffer = ((FileChannel)src).map (MapMode.READ_ONLY, position,
+ count);
+ }
+ catch (IOException e)
+ {
+ }
+ }
+
+ if (buffer == null)
+ {
+ buffer = ByteBuffer.allocate ((int) count);
+ src.read (buffer);
+ buffer.flip();
+ }
+
+ return write (buffer, position);
+ }
+
+ public long transferFrom (ReadableByteChannel src, long position,
+ long count)
throws IOException
{
if (position < 0
@@ -314,11 +381,21 @@ public final class FileChannelImpl extends FileChannel
if ((mode & WRITE) == 0)
throw new NonWritableChannelException ();
- // XXX: count needs to be casted from long to int. Dataloss ?
- ByteBuffer buffer = ByteBuffer.allocate ((int) count);
- src.read (buffer);
- buffer.flip();
- return write (buffer, position);
+ final int pageSize = 65536;
+ long total = 0;
+
+ while (count > 0)
+ {
+ int transferred = smallTransferFrom (src, position,
+ (int)Math.min (count, pageSize));
+ if (transferred < 0)
+ break;
+ total += transferred;
+ position += transferred;
+ count -= transferred;
+ }
+
+ return total;
}
public FileLock tryLock (long position, long size, boolean shared)
diff --git a/libjava/gnu/java/nio/charset/UTF_8.java b/libjava/gnu/java/nio/charset/UTF_8.java
index c2714363949..87df6442360 100644
--- a/libjava/gnu/java/nio/charset/UTF_8.java
+++ b/libjava/gnu/java/nio/charset/UTF_8.java
@@ -101,7 +101,7 @@ final class UTF_8 extends Charset
protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out)
{
// TODO: Optimize this in the case in.hasArray() / out.hasArray()
- int inPos = 0;
+ int inPos = in.position();
try
{
while (in.hasRemaining ())
@@ -196,7 +196,7 @@ final class UTF_8 extends Charset
protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out)
{
- int inPos = 0;
+ int inPos = in.position();
try
{
// TODO: Optimize this in the case in.hasArray() / out.hasArray()
diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl.java b/libjava/gnu/java/rmi/dgc/DGCImpl.java
index 4216b6466ba..483ac54f192 100644
--- a/libjava/gnu/java/rmi/dgc/DGCImpl.java
+++ b/libjava/gnu/java/rmi/dgc/DGCImpl.java
@@ -42,7 +42,6 @@ import java.rmi.dgc.Lease;
import java.rmi.dgc.VMID;
import java.rmi.server.ObjID;
import java.rmi.RemoteException;
-import java.rmi.server.UnicastRemoteObject;
import java.rmi.server.RMISocketFactory;
import gnu.java.rmi.server.UnicastServerRef;
diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl.java b/libjava/gnu/java/rmi/registry/RegistryImpl.java
index 007d5a97de9..43033c4b8ad 100644
--- a/libjava/gnu/java/rmi/registry/RegistryImpl.java
+++ b/libjava/gnu/java/rmi/registry/RegistryImpl.java
@@ -1,5 +1,6 @@
/*
- Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005
+ Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -109,7 +110,7 @@ public static void version() {
+ System.getProperty("java.vm.name")
+ ") "
+ System.getProperty("java.vm.version"));
- System.out.println("Copyright 2002 Free Software Foundation, Inc.");
+ System.out.println("Copyright 2005 Free Software Foundation, Inc.");
System.out.println("This is free software; see the source for copying conditions. There is NO");
System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
System.exit(0);
diff --git a/libjava/gnu/java/rmi/rmic/RMIC.java b/libjava/gnu/java/rmi/rmic/RMIC.java
index e81c0fb780b..0976cd279b2 100644
--- a/libjava/gnu/java/rmi/rmic/RMIC.java
+++ b/libjava/gnu/java/rmi/rmic/RMIC.java
@@ -1,5 +1,5 @@
/* RMIC.java --
- Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004
+ Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -978,7 +978,7 @@ public class RMIC
System.out.println("rmic (" + System.getProperty("java.vm.name")
+ ") " + System.getProperty("java.vm.version"));
System.out.println();
- System.out.println("Copyright 2002 Free Software Foundation, Inc.");
+ System.out.println("Copyright 2005 Free Software Foundation, Inc.");
System.out.println("This is free software; see the source for copying conditions. There is NO");
System.out.println("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
System.exit(0);
diff --git a/libjava/gnu/java/rmi/server/ConnectionRunnerPool.java b/libjava/gnu/java/rmi/server/ConnectionRunnerPool.java
index 5f5da8ca941..b917315cbb4 100644
--- a/libjava/gnu/java/rmi/server/ConnectionRunnerPool.java
+++ b/libjava/gnu/java/rmi/server/ConnectionRunnerPool.java
@@ -1,5 +1,5 @@
/* gnu.java.rmi.server.ConnectionRunnerPool
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -118,7 +118,7 @@ class ConnectionRunnerPool
max_size = size;
}
- private synchronized static ConnectionRunner getConnectionRunner()
+ private static synchronized ConnectionRunner getConnectionRunner()
{
if(freelist.size() == 0){
if(size < max_size){
diff --git a/libjava/gnu/java/rmi/server/UnicastConnectionManager.java b/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
index cf08a08ab5b..ef01c8264e5 100644
--- a/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
+++ b/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
@@ -55,7 +55,6 @@ import java.rmi.server.RMIServerSocketFactory;
import java.rmi.server.RMIClientSocketFactory;
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
-import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
diff --git a/libjava/gnu/java/security/PolicyFile.java b/libjava/gnu/java/security/PolicyFile.java
index d5c14dc7a17..c939dda47c4 100644
--- a/libjava/gnu/java/security/PolicyFile.java
+++ b/libjava/gnu/java/security/PolicyFile.java
@@ -1,18 +1,20 @@
-/* PolicyFile.java -- policy file reader.
- Copyright (C) 2004 Free Software Foundation, Inc.
+/* PolicyFile.java -- policy file reader
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
-This program is free software; you can redistribute it and/or modify
+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.
-This program is distributed in the hope that it will be useful, but
+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 this program; see the file COPYING. If not, write to the
+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.
@@ -33,7 +35,6 @@ 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.security;
import java.io.File;
@@ -143,7 +144,8 @@ public final class PolicyFile extends Policy
// -------------------------------------------------------------------------
private static final boolean DEBUG = true;
- private static void debug(String msg)
+ // Package-private to avoid a trampoline.
+ static void debug(String msg)
{
System.err.print(">> PolicyFile: ");
System.err.println(msg);
diff --git a/libjava/gnu/java/security/der/DERReader.java b/libjava/gnu/java/security/der/DERReader.java
index 7d7174d6d46..688b509eb2c 100644
--- a/libjava/gnu/java/security/der/DERReader.java
+++ b/libjava/gnu/java/security/der/DERReader.java
@@ -62,15 +62,15 @@ import gnu.java.security.OID;
*
* @author Casey Marshall (csm@gnu.org)
*/
-public final class DERReader implements DER
+public class DERReader implements DER
{
// Fields.
// ------------------------------------------------------------------------
- private InputStream in;
+ protected InputStream in;
- private final ByteArrayOutputStream encBuf;
+ protected final ByteArrayOutputStream encBuf;
// Constructor.
// ------------------------------------------------------------------------
@@ -185,6 +185,26 @@ public final class DERReader implements DER
return value;
}
+ protected int readLength() throws IOException
+ {
+ int i = in.read();
+ if (i == -1)
+ throw new EOFException();
+ encBuf.write(i);
+ if ((i & ~0x7F) == 0)
+ {
+ return i;
+ }
+ else if (i < 0xFF)
+ {
+ byte[] octets = new byte[i & 0x7F];
+ in.read(octets);
+ encBuf.write(octets);
+ return new BigInteger(1, octets).intValue();
+ }
+ throw new DEREncodingException();
+ }
+
// Own methods.
// ------------------------------------------------------------------------
@@ -236,26 +256,6 @@ public final class DERReader implements DER
}
}
- private int readLength() throws IOException
- {
- int i = in.read();
- if (i == -1)
- throw new EOFException();
- encBuf.write(i);
- if ((i & ~0x7F) == 0)
- {
- return i;
- }
- else if (i < 0xFF)
- {
- byte[] octets = new byte[i & 0x7F];
- in.read(octets);
- encBuf.write(octets);
- return new BigInteger(1, octets).intValue();
- }
- throw new DEREncodingException();
- }
-
private static String makeString(int tag, byte[] value)
throws IOException
{
diff --git a/libjava/gnu/java/security/der/DERWriter.java b/libjava/gnu/java/security/der/DERWriter.java
index 8bf80b5fc76..5568b69bbad 100644
--- a/libjava/gnu/java/security/der/DERWriter.java
+++ b/libjava/gnu/java/security/der/DERWriter.java
@@ -1,5 +1,5 @@
/* DERWriter.java -- write Java types in DER format.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,6 @@ import java.math.BigInteger;
import java.text.SimpleDateFormat;
-import java.util.BitSet;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
diff --git a/libjava/gnu/java/security/provider/EncodedKeyFactory.java b/libjava/gnu/java/security/provider/EncodedKeyFactory.java
index e308d443fc6..7dc5ee9337b 100644
--- a/libjava/gnu/java/security/provider/EncodedKeyFactory.java
+++ b/libjava/gnu/java/security/provider/EncodedKeyFactory.java
@@ -38,6 +38,11 @@ exception statement from your version. */
package gnu.java.security.provider;
+import gnu.java.security.OID;
+import gnu.java.security.der.BitString;
+import gnu.java.security.der.DERReader;
+import gnu.java.security.der.DERValue;
+
import java.io.IOException;
import java.math.BigInteger;
@@ -45,15 +50,12 @@ import java.math.BigInteger;
import java.security.AlgorithmParameters;
import java.security.InvalidKeyException;
import java.security.Key;
-import java.security.KeyFactory;
import java.security.KeyFactorySpi;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.DSAParameterSpec;
-import java.security.spec.DSAPrivateKeySpec;
-import java.security.spec.DSAPublicKeySpec;
import java.security.spec.InvalidParameterSpecException;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
@@ -64,12 +66,6 @@ import java.security.spec.X509EncodedKeySpec;
import javax.crypto.spec.DHParameterSpec;
-import gnu.java.security.OID;
-import gnu.java.security.der.BitString;
-import gnu.java.security.der.DER;
-import gnu.java.security.der.DERReader;
-import gnu.java.security.der.DERValue;
-
/**
* A factory for keys encoded in either the X.509 format (for public
* keys) or the PKCS#8 format (for private keys).
diff --git a/libjava/gnu/java/security/provider/Gnu.java b/libjava/gnu/java/security/provider/Gnu.java
index 02f509dc2d5..34f86d8bad0 100644
--- a/libjava/gnu/java/security/provider/Gnu.java
+++ b/libjava/gnu/java/security/provider/Gnu.java
@@ -1,5 +1,5 @@
/* Gnu.java --- Gnu provider main class
- Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -129,6 +129,7 @@ public final class Gnu extends Provider
// Format "Alias", "Actual Name"
put("Alg.Alias.MessageDigest.SHA1", "SHA");
put("Alg.Alias.MessageDigest.SHA-1", "SHA");
+ put("Alg.Alias.MessageDigest.SHA-160", "SHA");
// Algorithm Parameters
put("AlgorithmParameters.DSA",
diff --git a/libjava/gnu/java/security/provider/GnuDHPublicKey.java b/libjava/gnu/java/security/provider/GnuDHPublicKey.java
index a650761dc8f..fbf9d9f8633 100644
--- a/libjava/gnu/java/security/provider/GnuDHPublicKey.java
+++ b/libjava/gnu/java/security/provider/GnuDHPublicKey.java
@@ -49,7 +49,6 @@ import gnu.java.security.OID;
import gnu.java.security.der.BitString;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERValue;
-import gnu.java.security.der.DERWriter;
public class GnuDHPublicKey implements DHPublicKey
{
diff --git a/libjava/gnu/java/security/provider/GnuDSAPrivateKey.java b/libjava/gnu/java/security/provider/GnuDSAPrivateKey.java
index 4eceb0074da..72fe38784d5 100644
--- a/libjava/gnu/java/security/provider/GnuDSAPrivateKey.java
+++ b/libjava/gnu/java/security/provider/GnuDSAPrivateKey.java
@@ -1,5 +1,5 @@
/* GnuDSAPrivateKey.java --- Gnu DSA Private Key
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999,2003,2004 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,19 +38,31 @@ exception statement from your version. */
package gnu.java.security.provider;
+import gnu.java.security.OID;
+import gnu.java.security.der.DER;
+import gnu.java.security.der.DERValue;
+import gnu.java.security.der.DERWriter;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
import java.math.BigInteger;
+
import java.security.interfaces.DSAPrivateKey;
import java.security.interfaces.DSAParams;
import java.security.spec.DSAParameterSpec;
+import java.util.ArrayList;
+
public class GnuDSAPrivateKey implements DSAPrivateKey
{
+ private byte[] encodedKey;
BigInteger x;
BigInteger p;
BigInteger q;
BigInteger g;
- public GnuDSAPrivateKey(BigInteger x, BigInteger p, BigInteger q, BigInteger g )
+ public GnuDSAPrivateKey(BigInteger x, BigInteger p, BigInteger q, BigInteger g )
{
this.x = x;
this.p = p;
@@ -65,12 +77,56 @@ public class GnuDSAPrivateKey implements DSAPrivateKey
public String getFormat()
{
- return null;
+ return "PKCS#8";
}
+ /**
+ * Encodes this key as a <code>PrivateKeyInfo</code>, as described in
+ * PKCS #8. The ASN.1 specification for this structure is:
+ *
+ * <blockquote><pre>
+ * PrivateKeyInfo ::= SEQUENCE {
+ * version Version,
+ * privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ * privateKey PrivateKey,
+ * attributes [0] IMPLICIT Attributes OPTIONAL }
+ *
+ * Version ::= INTEGER
+ *
+ * PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ *
+ * PrivateKey ::= OCTET STRING
+ *
+ * Attributes ::= SET OF Attribute
+ * </pre></blockquote>
+ *
+ * <p>DSA private keys (in Classpath at least) have no attributes.
+ */
public byte[] getEncoded()
{
- return null;
+ if (encodedKey != null)
+ return (byte[]) encodedKey.clone();
+ try
+ {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ArrayList pki = new ArrayList(3);
+ pki.add(new DERValue(DER.INTEGER, BigInteger.ZERO));
+ ArrayList algId = new ArrayList(2);
+ algId.add(new DERValue(DER.OBJECT_IDENTIFIER,
+ new OID("1.2.840.10040.4.1")));
+ ArrayList algParams = new ArrayList(3);
+ algParams.add(new DERValue(DER.INTEGER, p));
+ algParams.add(new DERValue(DER.INTEGER, q));
+ algParams.add(new DERValue(DER.INTEGER, g));
+ algId.add(new DERValue(DER.CONSTRUCTED|DER.SEQUENCE, algParams));
+ pki.add(new DERValue(DER.OCTET_STRING, x.toByteArray()));
+ DERWriter.write(out, new DERValue(DER.CONSTRUCTED|DER.SEQUENCE, pki));
+ return (byte[]) (encodedKey = out.toByteArray()).clone();
+ }
+ catch (IOException ioe)
+ {
+ return null;
+ }
}
public DSAParams getParams()
@@ -85,7 +141,10 @@ public class GnuDSAPrivateKey implements DSAPrivateKey
public String toString()
{
- return "GnuDSAPrivateKey: x=" + x.toString(16) + " p=" + p.toString(16)
- + " q=" + q.toString(16) + " g=" + g.toString(16);
+ return "GnuDSAPrivateKey: x="
+ + (x != null ? x.toString(16) : "null") + " p="
+ + (p != null ? p.toString(16) : "null") + " q="
+ + (q != null ? q.toString(16) : "null") + " g="
+ + (g != null ? g.toString(16) : "null");
}
}
diff --git a/libjava/gnu/java/security/provider/GnuDSAPublicKey.java b/libjava/gnu/java/security/provider/GnuDSAPublicKey.java
index 91d6b561c7f..9ec827d41ae 100644
--- a/libjava/gnu/java/security/provider/GnuDSAPublicKey.java
+++ b/libjava/gnu/java/security/provider/GnuDSAPublicKey.java
@@ -1,5 +1,5 @@
/* GnuDSAPublicKey.java --- Gnu DSA Public Key
- Copyright (C) 1999,2003 Free Software Foundation, Inc.
+ Copyright (C) 1999,2003,2004 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,19 +38,32 @@ exception statement from your version. */
package gnu.java.security.provider;
+import gnu.java.security.OID;
+import gnu.java.security.der.BitString;
+import gnu.java.security.der.DER;
+import gnu.java.security.der.DERValue;
+import gnu.java.security.der.DERWriter;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
import java.math.BigInteger;
+
import java.security.interfaces.DSAPublicKey;
import java.security.interfaces.DSAParams;
import java.security.spec.DSAParameterSpec;
+import java.util.ArrayList;
+
public class GnuDSAPublicKey implements DSAPublicKey
{
+ private byte[] encodedKey;
BigInteger y;
BigInteger p;
BigInteger q;
BigInteger g;
- public GnuDSAPublicKey(BigInteger y, BigInteger p, BigInteger q, BigInteger g )
+ public GnuDSAPublicKey(BigInteger y, BigInteger p, BigInteger q, BigInteger g )
{
this.y = y;
this.p = p;
@@ -65,16 +78,49 @@ public class GnuDSAPublicKey implements DSAPublicKey
public String getFormat()
{
- return null;
+ return "X.509";
}
+ /**
+ * The encoded form of DSA public keys is:
+ *
+ * <blockquote><pre>
+ * SubjectPublicKeyInfo ::= SEQUENCE {
+ * algorithm AlgorithmIdentifier,
+ * subjectPublicKey BIT STRING }
+ * </pre></blockquote>
+ */
public byte[] getEncoded()
{
- return null;
+ if (encodedKey != null)
+ return (byte[]) encodedKey.clone();
+ try
+ {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ArrayList spki = new ArrayList(2);
+ ArrayList alg = new ArrayList(2);
+ alg.add(new DERValue(DER.OBJECT_IDENTIFIER,
+ new OID("1.2.840.113549.1.1.1")));
+ ArrayList params = new ArrayList(3);
+ params.add(new DERValue(DER.INTEGER, p));
+ params.add(new DERValue(DER.INTEGER, q));
+ params.add(new DERValue(DER.INTEGER, g));
+ alg.add(new DERValue(DER.CONSTRUCTED|DER.SEQUENCE, params));
+ spki.add(new DERValue(DER.CONSTRUCTED|DER.SEQUENCE, alg));
+ spki.add(new DERValue(DER.BIT_STRING, new BitString(y.toByteArray())));
+ DERWriter.write(out, new DERValue(DER.CONSTRUCTED|DER.SEQUENCE, spki));
+ return (byte[]) (encodedKey = out.toByteArray()).clone();
+ }
+ catch (IOException ioe)
+ {
+ return null;
+ }
}
public DSAParams getParams()
{
+ if (p == null || q == null || g == null)
+ return null;
return (DSAParams)(new DSAParameterSpec(p,q,g));
}
@@ -85,7 +131,10 @@ public class GnuDSAPublicKey implements DSAPublicKey
public String toString()
{
- return "GnuDSAPublicKey: y=" + y.toString(16) + " p=" + p.toString(16)
- + " q=" + q.toString(16) + " g=" + g.toString(16);
+ return
+ "GnuDSAPublicKey: y=" + (y != null ? y.toString(16) : "(null)") +
+ " p=" + (p != null ? p.toString(16) : "(null)") +
+ " q=" + (q != null ? q.toString(16) : "(null)") +
+ " g=" + (g != null ? g.toString(16) : "(null)");
}
}
diff --git a/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.java b/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.java
index 7d1d857a049..7bba5021338 100644
--- a/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.java
+++ b/libjava/gnu/java/security/provider/PKIXCertPathValidatorImpl.java
@@ -38,18 +38,40 @@ exception statement from your version. */
package gnu.java.security.provider;
+import gnu.java.security.OID;
+import gnu.java.security.x509.GnuPKIExtension;
+import gnu.java.security.x509.PolicyNodeImpl;
+import gnu.java.security.x509.X509CertSelectorImpl;
+import gnu.java.security.x509.X509CRLSelectorImpl;
+import gnu.java.security.x509.ext.BasicConstraints;
+import gnu.java.security.x509.ext.CertificatePolicies;
+import gnu.java.security.x509.ext.Extension;
+import gnu.java.security.x509.ext.KeyUsage;
+import gnu.java.security.x509.ext.PolicyConstraint;
+
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
-import java.security.Principal;
import java.security.PublicKey;
-import java.security.cert.*;
-
+import java.security.cert.CertificateException;
+import java.security.cert.CertPath;
+import java.security.cert.CertPathParameters;
+import java.security.cert.CertPathValidatorException;
+import java.security.cert.CertPathValidatorResult;
+import java.security.cert.CertPathValidatorSpi;
+import java.security.cert.CertStore;
+import java.security.cert.CertStoreException;
+import java.security.cert.CRL;
+import java.security.cert.PKIXCertPathChecker;
+import java.security.cert.PKIXCertPathValidatorResult;
+import java.security.cert.PKIXParameters;
+import java.security.cert.TrustAnchor;
+import java.security.cert.X509Certificate;
+import java.security.cert.X509CRL;
import java.security.interfaces.DSAParams;
import java.security.interfaces.DSAPublicKey;
-import java.security.spec.DSAParameterSpec;
import java.util.Arrays;
import java.util.Collection;
@@ -61,13 +83,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Set;
-import gnu.java.security.x509.GnuPKIExtension;
-import gnu.java.security.x509.PolicyNodeImpl;
-import gnu.java.security.x509.X509CertSelectorImpl;
-import gnu.java.security.x509.X509CRLSelectorImpl;
-import gnu.java.security.x509.ext.*;
-import gnu.java.security.OID;
-
/**
* An implementation of the Public Key Infrastructure's X.509
* certificate path validation algorithm.
diff --git a/libjava/gnu/java/security/x509/X500DistinguishedName.java b/libjava/gnu/java/security/x509/X500DistinguishedName.java
index 64e320bef82..daf76a22dfa 100644
--- a/libjava/gnu/java/security/x509/X500DistinguishedName.java
+++ b/libjava/gnu/java/security/x509/X500DistinguishedName.java
@@ -55,7 +55,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.TreeMap;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
diff --git a/libjava/gnu/java/security/x509/X509CRL.java b/libjava/gnu/java/security/x509/X509CRL.java
index adaa003f3cb..33263af4325 100644
--- a/libjava/gnu/java/security/x509/X509CRL.java
+++ b/libjava/gnu/java/security/x509/X509CRL.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.java.security.x509;
-import gnu.java.io.ASN1ParsingException;
import gnu.java.security.OID;
import gnu.java.security.der.BitString;
import gnu.java.security.der.DER;
diff --git a/libjava/gnu/java/security/x509/X509CRLEntry.java b/libjava/gnu/java/security/x509/X509CRLEntry.java
index 252737c0eaa..da161153c62 100644
--- a/libjava/gnu/java/security/x509/X509CRLEntry.java
+++ b/libjava/gnu/java/security/x509/X509CRLEntry.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.java.security.x509;
-import java.io.InputStream;
import java.io.IOException;
import java.math.BigInteger;
diff --git a/libjava/gnu/java/security/x509/X509Certificate.java b/libjava/gnu/java/security/x509/X509Certificate.java
index 25a56d4a8ef..721439ef238 100644
--- a/libjava/gnu/java/security/x509/X509Certificate.java
+++ b/libjava/gnu/java/security/x509/X509Certificate.java
@@ -38,18 +38,14 @@ exception statement from your version. */
package gnu.java.security.x509;
-import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.IOException;
-import java.io.ObjectStreamException;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringWriter;
import java.math.BigInteger;
-import java.net.InetAddress;
-
import java.security.AlgorithmParameters;
import java.security.InvalidKeyException;
import java.security.KeyFactory;
@@ -79,7 +75,6 @@ import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
diff --git a/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.java b/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.java
index 6f4e00b3f07..5441521990b 100644
--- a/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.java
+++ b/libjava/gnu/java/security/x509/ext/AuthorityKeyIdentifier.java
@@ -40,7 +40,6 @@ package gnu.java.security.x509.ext;
import java.io.IOException;
import java.math.BigInteger;
-import java.util.List;
import gnu.java.security.OID;
import gnu.java.security.der.DER;
diff --git a/libjava/gnu/java/security/x509/ext/CertificatePolicies.java b/libjava/gnu/java/security/x509/ext/CertificatePolicies.java
index 206fa7efaf6..9c14dc96ef7 100644
--- a/libjava/gnu/java/security/x509/ext/CertificatePolicies.java
+++ b/libjava/gnu/java/security/x509/ext/CertificatePolicies.java
@@ -39,7 +39,6 @@ exception statement from your version. */
package gnu.java.security.x509.ext;
import java.io.IOException;
-import java.math.BigInteger;
import java.security.cert.PolicyQualifierInfo;
import java.util.ArrayList;
diff --git a/libjava/gnu/java/security/x509/ext/PolicyConstraint.java b/libjava/gnu/java/security/x509/ext/PolicyConstraint.java
index 0949b5000ae..e33f960b30b 100644
--- a/libjava/gnu/java/security/x509/ext/PolicyConstraint.java
+++ b/libjava/gnu/java/security/x509/ext/PolicyConstraint.java
@@ -42,10 +42,8 @@ import java.io.IOException;
import java.math.BigInteger;
import gnu.java.security.OID;
-import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
import gnu.java.security.der.DERValue;
-import gnu.java.security.x509.Util;
public class PolicyConstraint extends Extension.Value
{
diff --git a/libjava/gnu/java/text/FormatCharacterIterator.java b/libjava/gnu/java/text/FormatCharacterIterator.java
index 116198bdc13..942641a0818 100644
--- a/libjava/gnu/java/text/FormatCharacterIterator.java
+++ b/libjava/gnu/java/text/FormatCharacterIterator.java
@@ -1,6 +1,6 @@
/* FormatCharacter.java -- Implementation of AttributedCharacterIterator for
formatters.
- Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -494,13 +494,13 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
mergeAttributes(new HashMap[] { null, attributes }, new int[] { range_start, range_end });
}
- final private void debug(String s)
+ private void debug(String s)
{
if (Configuration.DEBUG)
System.out.println(s);
}
- final private void dumpTable()
+ private void dumpTable()
{
int start_range = 0;
diff --git a/libjava/gnu/regexp/RE.java b/libjava/gnu/regexp/RE.java
index d782975e9af..a01de58f1bb 100644
--- a/libjava/gnu/regexp/RE.java
+++ b/libjava/gnu/regexp/RE.java
@@ -43,15 +43,6 @@ import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.Vector;
-class IntPair implements Serializable {
- public int first, second;
-}
-
-class CharUnit implements Serializable {
- public char ch;
- public boolean bk;
-}
-
/**
* RE provides the user interface for compiling and matching regular
* expressions.
@@ -119,6 +110,16 @@ class CharUnit implements Serializable {
*/
public class RE extends REToken {
+
+ private static final class IntPair implements Serializable {
+ public int first, second;
+ }
+
+ private static final class CharUnit implements Serializable {
+ public char ch;
+ public boolean bk;
+ }
+
// This String will be returned by getVersion()
private static final String VERSION = "1.1.5-dev";
diff --git a/libjava/gnu/xml/aelfred2/JAXPFactory.java b/libjava/gnu/xml/aelfred2/JAXPFactory.java
index 006dc1302e3..ff585a82aa6 100644
--- a/libjava/gnu/xml/aelfred2/JAXPFactory.java
+++ b/libjava/gnu/xml/aelfred2/JAXPFactory.java
@@ -60,137 +60,172 @@ import javax.xml.parsers.SAXParserFactory;
*
* @author David Brownell
*/
-public final class JAXPFactory extends SAXParserFactory
+public final class JAXPFactory
+ extends SAXParserFactory
{
- private Hashtable flags = new Hashtable ();
-
- /**
- * Constructs a factory which normally returns a non-validating
- * parser.
- */
- public JAXPFactory () { }
-
- public SAXParser newSAXParser ()
+
+ private Hashtable flags = new Hashtable();
+
+ /**
+ * Constructs a factory which normally returns a non-validating
+ * parser.
+ */
+ public JAXPFactory()
+ {
+ }
+
+ public SAXParser newSAXParser()
throws ParserConfigurationException, SAXException
+ {
+ JaxpParser jaxp = new JaxpParser();
+ Enumeration e = flags.keys();
+ XMLReader parser = jaxp.getXMLReader();
+
+ parser.setFeature(SAXDriver.FEATURE + "namespaces",
+ isNamespaceAware());
+ parser.setFeature(SAXDriver.FEATURE + "validation",
+ isValidating());
+ // that makes SAX2 feature flags trump JAXP
+
+ while (e.hasMoreElements())
+ {
+ String uri = (String) e.nextElement();
+ Boolean value = (Boolean) flags.get(uri);
+ parser.setFeature(uri, value.booleanValue());
+ }
+
+ return jaxp;
+ }
+
+ // yes, this "feature transfer" mechanism doesn't play well
+
+ public void setFeature(String name, boolean value)
+ throws ParserConfigurationException, SAXNotRecognizedException,
+ SAXNotSupportedException
+ {
+ try
+ {
+ // force "early" detection of errors where possible
+ // (flags can't necessarily be set before parsing)
+ new JaxpParser().getXMLReader().setFeature(name, value);
+
+ flags.put(name, new Boolean(value));
+ }
+ catch (SAXNotRecognizedException e)
+ {
+ throw new SAXNotRecognizedException(name);
+ }
+ catch (SAXNotSupportedException e)
+ {
+ throw new SAXNotSupportedException(name);
+ }
+ catch (Exception e)
+ {
+ throw new ParserConfigurationException(e.getClass().getName()
+ + ": "
+ + e.getMessage());
+ }
+ }
+
+ public boolean getFeature(String name)
+ throws ParserConfigurationException, SAXNotRecognizedException,
+ SAXNotSupportedException
+ {
+ Boolean value = (Boolean) flags.get(name);
+
+ if (value != null)
+ {
+ return value.booleanValue();
+ }
+ else
+ {
+ try
+ {
+ return new JaxpParser().getXMLReader().getFeature(name);
+ }
+ catch (SAXNotRecognizedException e)
+ {
+ throw new SAXNotRecognizedException(name);
+ }
+ catch (SAXNotSupportedException e)
+ {
+ throw new SAXNotSupportedException(name);
+ }
+ catch (SAXException e)
+ {
+ throw new ParserConfigurationException(e.getClass().getName()
+ + ": "
+ + e.getMessage());
+ }
+ }
+ }
+
+ private static class JaxpParser
+ extends SAXParser
+ {
+
+ private XmlReader ae2 = new XmlReader();
+ private XMLReaderAdapter parser = null;
+
+ JaxpParser()
{
- JaxpParser jaxp = new JaxpParser ();
- Enumeration e = flags.keys ();
- XMLReader parser = jaxp.getXMLReader ();
-
- parser.setFeature (
- SAXDriver.FEATURE + "namespaces",
- isNamespaceAware ());
- parser.setFeature (
- SAXDriver.FEATURE + "validation",
- isValidating ());
- // that makes SAX2 feature flags trump JAXP
-
- while (e.hasMoreElements ()) {
- String uri = (String) e.nextElement ();
- Boolean value = (Boolean) flags.get (uri);
- parser.setFeature (uri, value.booleanValue ());
- }
-
- return jaxp;
}
- // yes, this "feature transfer" mechanism doesn't play well
+ public void setProperty(String id, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ ae2.setProperty(id, value);
+ }
- public void setFeature (String name, boolean value)
- throws
- ParserConfigurationException,
- SAXNotRecognizedException,
- SAXNotSupportedException
+ public Object getProperty(String id)
+ throws SAXNotRecognizedException, SAXNotSupportedException
{
- try {
- // force "early" detection of errors where possible
- // (flags can't necessarily be set before parsing)
- new JaxpParser ().getXMLReader ().setFeature (name, value);
-
- flags.put (name, new Boolean (value));
- } catch (SAXNotRecognizedException e) {
- throw new SAXNotRecognizedException (name);
- } catch (SAXNotSupportedException e) {
- throw new SAXNotSupportedException (name);
- } catch (Exception e) {
- throw new ParserConfigurationException (
- e.getClass ().getName ()
- + ": "
- + e.getMessage ());
- }
+ return ae2.getProperty(id);
}
- public boolean getFeature (String name)
- throws
- ParserConfigurationException,
- SAXNotRecognizedException,
- SAXNotSupportedException
+ public Parser getParser()
+ throws SAXException
{
- Boolean value = (Boolean) flags.get (name);
-
- if (value != null)
- return value.booleanValue ();
- else
- try {
- return new JaxpParser ().getXMLReader ().getFeature (name);
- } catch (SAXNotRecognizedException e) {
- throw new SAXNotRecognizedException (name);
- } catch (SAXNotSupportedException e) {
- throw new SAXNotSupportedException (name);
- } catch (SAXException e) {
- throw new ParserConfigurationException (
- e.getClass ().getName ()
- + ": "
- + e.getMessage ());
- }
+ if (parser == null)
+ {
+ parser = new XMLReaderAdapter(ae2);
+ }
+ return parser;
}
- private static class JaxpParser extends SAXParser
+ public XMLReader getXMLReader ()
+ throws SAXException
{
- private XmlReader ae2 = new XmlReader ();
- private XMLReaderAdapter parser = null;
-
- JaxpParser () { }
-
- public void setProperty (String id, Object value)
- throws SAXNotRecognizedException, SAXNotSupportedException
- { ae2.setProperty (id, value); }
-
- public Object getProperty (String id)
- throws SAXNotRecognizedException, SAXNotSupportedException
- { return ae2.getProperty (id); }
-
- public Parser getParser ()
- throws SAXException
- {
- if (parser == null)
- parser = new XMLReaderAdapter (ae2);
- return parser;
- }
-
- public XMLReader getXMLReader ()
- throws SAXException
- { return ae2; }
-
- public boolean isNamespaceAware ()
- {
- try {
- return ae2.getFeature (SAXDriver.FEATURE + "namespaces");
- } catch (Exception e) {
- throw new Error ();
- }
- }
-
- public boolean isValidating ()
- {
- try {
- return ae2.getFeature (SAXDriver.FEATURE + "validation");
- } catch (Exception e) {
- throw new Error ();
- }
- }
-
- // TODO isXIncludeAware()
-
+ return ae2;
}
+
+ public boolean isNamespaceAware()
+ {
+ try
+ {
+ return ae2.getFeature(SAXDriver.FEATURE + "namespaces");
+ }
+ catch (Exception e)
+ {
+ throw new Error();
+ }
+ }
+
+ public boolean isValidating()
+ {
+ try
+ {
+ return ae2.getFeature(SAXDriver.FEATURE + "validation");
+ }
+ catch (Exception e)
+ {
+ throw new Error();
+ }
+ }
+
+ // TODO isXIncludeAware()
+
+ }
+
}
+
diff --git a/libjava/gnu/xml/aelfred2/SAXDriver.java b/libjava/gnu/xml/aelfred2/SAXDriver.java
index 4912f279464..003a73620a8 100644
--- a/libjava/gnu/xml/aelfred2/SAXDriver.java
+++ b/libjava/gnu/xml/aelfred2/SAXDriver.java
@@ -60,15 +60,11 @@ import java.net.URL;
import java.util.Locale;
import java.util.Stack;
-// maintaining 1.1 compatibility for now ... more portable, PJava, etc
-// Iterator, Hashmap and ArrayList ought to be faster
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
-import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
-import java.util.Vector;
import org.xml.sax.*;
import org.xml.sax.ext.*;
@@ -133,1253 +129,1494 @@ import org.xml.sax.helpers.NamespaceSupport;
* @see org.xml.sax.Parser
*/
final public class SAXDriver
- implements Locator, Attributes2, XMLReader, Parser, AttributeList
+ implements Locator, Attributes2, XMLReader, Parser, AttributeList
{
- private final DefaultHandler2 base = new DefaultHandler2 ();
- private XmlParser parser;
-
- private EntityResolver entityResolver = base;
- private EntityResolver2 resolver2 = null;
- private ContentHandler contentHandler = base;
- private DTDHandler dtdHandler = base;
- private ErrorHandler errorHandler = base;
- private DeclHandler declHandler = base;
- private LexicalHandler lexicalHandler = base;
-
- private String elementName;
- private Stack entityStack;
-
- // one vector (of object/struct): faster, smaller
- private List attributesList = Collections.synchronizedList(new ArrayList());
- private boolean attributeSpecified [] = new boolean[10];
- private boolean attributeDeclared [] = new boolean[10];
-
- private boolean namespaces = true;
- private boolean xmlNames = false;
- private boolean extGE = true;
- private boolean extPE = true;
- private boolean resolveAll = true;
- private boolean useResolver2 = true;
- private boolean stringInterning = true;
-
- private int attributeCount;
- private boolean attributes;
- private String nsTemp [];
- private NamespaceSupport prefixStack;
+ private final DefaultHandler2 base = new DefaultHandler2();
+ private XmlParser parser;
+
+ private EntityResolver entityResolver = base;
+ private EntityResolver2 resolver2 = null;
+ private ContentHandler contentHandler = base;
+ private DTDHandler dtdHandler = base;
+ private ErrorHandler errorHandler = base;
+ private DeclHandler declHandler = base;
+ private LexicalHandler lexicalHandler = base;
+
+ private String elementName;
+ private Stack entityStack;
+
+ // one vector (of object/struct): faster, smaller
+ private List attributesList;
+
+ private boolean namespaces = true;
+ private boolean xmlNames = false;
+ private boolean extGE = true;
+ private boolean extPE = true;
+ private boolean resolveAll = true;
+ private boolean useResolver2 = true;
+
+ // package private to allow (read-only) access in XmlParser
+ boolean stringInterning = true;
+
+ private int attributeCount;
+ private boolean attributes;
+ private String[] nsTemp;
+ private NamespaceSupport prefixStack;
+
+ //
+ // Constructor.
+ //
+
+ /**
+ * Constructs a SAX Parser.
+ */
+ public SAXDriver()
+ {
+ reset();
+ }
- //
- // Constructor.
- //
+ private void reset()
+ {
+ elementName = null;
+ entityStack = new Stack();
+ attributesList = Collections.synchronizedList(new ArrayList());
+ attributeCount = 0;
+ attributes = false;
+ nsTemp = new String[3];
+ prefixStack = null;
+ }
- /** Constructs a SAX Parser. */
- public SAXDriver ()
- {
- reset ();
- }
- private void reset ()
- {
- elementName = null;
- entityStack = new Stack ();
- attributesList = Collections.synchronizedList(new ArrayList());
- attributeSpecified = new boolean[10];
- attributeDeclared = new boolean[10];
- attributeCount = 0;
- attributes = false;
- nsTemp = new String[3];
- prefixStack = null;
- }
+ //
+ // Implementation of org.xml.sax.Parser.
+ //
+ /**
+ * <b>SAX1</b>: Sets the locale used for diagnostics; currently,
+ * only locales using the English language are supported.
+ * @param locale The locale for which diagnostics will be generated
+ */
+ public void setLocale(Locale locale)
+ throws SAXException
+ {
+ if ("en".equals(locale.getLanguage()))
+ {
+ return;
+ }
+ throw new SAXException ("AElfred2 only supports English locales.");
+ }
- //
- // Implementation of org.xml.sax.Parser.
- //
+ /**
+ * <b>SAX2</b>: Returns the object used when resolving external
+ * entities during parsing (both general and parameter entities).
+ */
+ public EntityResolver getEntityResolver()
+ {
+ return (entityResolver == base) ? null : entityResolver;
+ }
- /**
- * <b>SAX1</b>: Sets the locale used for diagnostics; currently,
- * only locales using the English language are supported.
- * @param locale The locale for which diagnostics will be generated
- */
- public void setLocale (Locale locale)
- throws SAXException
- {
- if ("en".equals (locale.getLanguage ()))
- return ;
+ /**
+ * <b>SAX1, SAX2</b>: Set the entity resolver for this parser.
+ * @param handler The object to receive entity events.
+ */
+ public void setEntityResolver(EntityResolver resolver)
+ {
+ if (resolver instanceof EntityResolver2)
+ {
+ resolver2 = (EntityResolver2) resolver;
+ }
+ else
+ {
+ resolver2 = null;
+ }
+ if (resolver == null)
+ {
+ resolver = base;
+ }
+ entityResolver = resolver;
+ }
- throw new SAXException ("AElfred2 only supports English locales.");
- }
+ /**
+ * <b>SAX2</b>: Returns the object used to process declarations related
+ * to notations and unparsed entities.
+ */
+ public DTDHandler getDTDHandler()
+ {
+ return (dtdHandler == base) ? null : dtdHandler;
+ }
+ /**
+ * <b>SAX1, SAX2</b>: Set the DTD handler for this parser.
+ * @param handler The object to receive DTD events.
+ */
+ public void setDTDHandler(DTDHandler handler)
+ {
+ if (handler == null)
+ {
+ handler = base;
+ }
+ this.dtdHandler = handler;
+ }
- /**
- * <b>SAX2</b>: Returns the object used when resolving external
- * entities during parsing (both general and parameter entities).
- */
- public EntityResolver getEntityResolver ()
- {
- return (entityResolver == base) ? null : entityResolver;
- }
- /**
- * <b>SAX1, SAX2</b>: Set the entity resolver for this parser.
- * @param handler The object to receive entity events.
- */
- public void setEntityResolver (EntityResolver resolver)
- {
- if (resolver instanceof EntityResolver2)
- resolver2 = (EntityResolver2) resolver;
- else
- resolver2 = null;
- if (resolver == null)
- resolver = base;
- entityResolver = resolver;
- }
+ /**
+ * <b>SAX1</b>: Set the document handler for this parser. If a
+ * content handler was set, this document handler will supplant it.
+ * The parser is set to report all XML 1.0 names rather than to
+ * filter out "xmlns" attributes (the "namespace-prefixes" feature
+ * is set to true).
+ *
+ * @deprecated SAX2 programs should use the XMLReader interface
+ * and a ContentHandler.
+ *
+ * @param handler The object to receive document events.
+ */
+ public void setDocumentHandler(DocumentHandler handler)
+ {
+ contentHandler = new Adapter(handler);
+ xmlNames = true;
+ }
+ /**
+ * <b>SAX2</b>: Returns the object used to report the logical
+ * content of an XML document.
+ */
+ public ContentHandler getContentHandler()
+ {
+ return (contentHandler == base) ? null : contentHandler;
+ }
- /**
- * <b>SAX2</b>: Returns the object used to process declarations related
- * to notations and unparsed entities.
- */
- public DTDHandler getDTDHandler ()
- {
- return (dtdHandler == base) ? null : dtdHandler;
- }
+ /**
+ * <b>SAX2</b>: Assigns the object used to report the logical
+ * content of an XML document. If a document handler was set,
+ * this content handler will supplant it (but XML 1.0 style name
+ * reporting may remain enabled).
+ */
+ public void setContentHandler(ContentHandler handler)
+ {
+ if (handler == null)
+ {
+ handler = base;
+ }
+ contentHandler = handler;
+ }
- /**
- * <b>SAX1, SAX2</b>: Set the DTD handler for this parser.
- * @param handler The object to receive DTD events.
- */
- public void setDTDHandler (DTDHandler handler)
- {
- if (handler == null)
- handler = base;
- this.dtdHandler = handler;
- }
+ /**
+ * <b>SAX1, SAX2</b>: Set the error handler for this parser.
+ * @param handler The object to receive error events.
+ */
+ public void setErrorHandler(ErrorHandler handler)
+ {
+ if (handler == null)
+ {
+ handler = base;
+ }
+ this.errorHandler = handler;
+ }
+ /**
+ * <b>SAX2</b>: Returns the object used to receive callbacks for XML
+ * errors of all levels (fatal, nonfatal, warning); this is never null;
+ */
+ public ErrorHandler getErrorHandler()
+ {
+ return (errorHandler == base) ? null : errorHandler;
+ }
- /**
- * <b>SAX1</b>: Set the document handler for this parser. If a
- * content handler was set, this document handler will supplant it.
- * The parser is set to report all XML 1.0 names rather than to
- * filter out "xmlns" attributes (the "namespace-prefixes" feature
- * is set to true).
- *
- * @deprecated SAX2 programs should use the XMLReader interface
- * and a ContentHandler.
- *
- * @param handler The object to receive document events.
- */
- public void setDocumentHandler (DocumentHandler handler)
- {
- contentHandler = new Adapter (handler);
- xmlNames = true;
- }
+ /**
+ * <b>SAX1, SAX2</b>: Auxiliary API to parse an XML document, used mostly
+ * when no URI is available.
+ * If you want anything useful to happen, you should set
+ * at least one type of handler.
+ * @param source The XML input source. Don't set 'encoding' unless
+ * you know for a fact that it's correct.
+ * @see #setEntityResolver
+ * @see #setDTDHandler
+ * @see #setContentHandler
+ * @see #setErrorHandler
+ * @exception SAXException The handlers may throw any SAXException,
+ * and the parser normally throws SAXParseException objects.
+ * @exception IOException IOExceptions are normally through through
+ * the parser if there are problems reading the source document.
+ */
+ public void parse(InputSource source)
+ throws SAXException, IOException
+ {
+ synchronized (base)
+ {
+ parser = new XmlParser();
+ if (namespaces)
+ {
+ prefixStack = new NamespaceSupport();
+ }
+ else if (!xmlNames)
+ {
+ throw new IllegalStateException();
+ }
+ parser.setHandler(this);
+
+ try
+ {
+ Reader r = source.getCharacterStream();
+ InputStream in = source.getByteStream();
+
+ parser.doParse(source.getSystemId(),
+ source.getPublicId(),
+ r,
+ in,
+ source.getEncoding());
+ }
+ catch (SAXException e)
+ {
+ throw e;
+ }
+ catch (IOException e)
+ {
+ throw e;
+ }
+ catch (RuntimeException e)
+ {
+ throw e;
+ }
+ catch (Exception e)
+ {
+ throw new SAXParseException(e.getMessage(), this, e);
+ }
+ finally
+ {
+ contentHandler.endDocument();
+ reset();
+ }
+ }
+ }
- /**
- * <b>SAX2</b>: Returns the object used to report the logical
- * content of an XML document.
- */
- public ContentHandler getContentHandler ()
- {
- return contentHandler == base ? null : contentHandler;
- }
+ /**
+ * <b>SAX1, SAX2</b>: Preferred API to parse an XML document, using a
+ * system identifier (URI).
+ */
+ public void parse(String systemId)
+ throws SAXException, IOException
+ {
+ parse(new InputSource(systemId));
+ }
- /**
- * <b>SAX2</b>: Assigns the object used to report the logical
- * content of an XML document. If a document handler was set,
- * this content handler will supplant it (but XML 1.0 style name
- * reporting may remain enabled).
- */
- public void setContentHandler (ContentHandler handler)
- {
- if (handler == null)
- handler = base;
- contentHandler = handler;
- }
+ //
+ // Implementation of SAX2 "XMLReader" interface
+ //
+ static final String FEATURE = "http://xml.org/sax/features/";
+ static final String PROPERTY = "http://xml.org/sax/properties/";
+
+ /**
+ * <b>SAX2</b>: Tells the value of the specified feature flag.
+ *
+ * @exception SAXNotRecognizedException thrown if the feature flag
+ * is neither built in, nor yet assigned.
+ */
+ public boolean getFeature(String featureId)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if ((FEATURE + "validation").equals(featureId))
+ {
+ return false;
+ }
- /**
- * <b>SAX1, SAX2</b>: Set the error handler for this parser.
- * @param handler The object to receive error events.
- */
- public void setErrorHandler (ErrorHandler handler)
- {
- if (handler == null)
- handler = base;
- this.errorHandler = handler;
- }
+ // external entities (both types) are optionally included
+ if ((FEATURE + "external-general-entities").equals(featureId))
+ {
+ return extGE;
+ }
+ if ((FEATURE + "external-parameter-entities").equals(featureId))
+ {
+ return extPE;
+ }
+
+ // element/attribute names are as written in document; no mangling
+ if ((FEATURE + "namespace-prefixes").equals(featureId))
+ {
+ return xmlNames;
+ }
- /**
- * <b>SAX2</b>: Returns the object used to receive callbacks for XML
- * errors of all levels (fatal, nonfatal, warning); this is never null;
- */
- public ErrorHandler getErrorHandler ()
- { return errorHandler == base ? null : errorHandler; }
-
-
- /**
- * <b>SAX1, SAX2</b>: Auxiliary API to parse an XML document, used mostly
- * when no URI is available.
- * If you want anything useful to happen, you should set
- * at least one type of handler.
- * @param source The XML input source. Don't set 'encoding' unless
- * you know for a fact that it's correct.
- * @see #setEntityResolver
- * @see #setDTDHandler
- * @see #setContentHandler
- * @see #setErrorHandler
- * @exception SAXException The handlers may throw any SAXException,
- * and the parser normally throws SAXParseException objects.
- * @exception IOException IOExceptions are normally through through
- * the parser if there are problems reading the source document.
- */
- public void parse (InputSource source)
- throws SAXException, IOException
- {
- synchronized (base) {
- parser = new XmlParser ();
- if (namespaces)
- prefixStack = new NamespaceSupport ();
- else if (!xmlNames)
- throw new IllegalStateException ();
- parser.setHandler (this);
-
- try {
-
- Reader r = source.getCharacterStream();
- InputStream in = source.getByteStream();
-
-
- parser.doParse (source.getSystemId (),
- source.getPublicId (),
- r,
- in,
- source.getEncoding ());
- } catch (SAXException e) {
- throw e;
- } catch (IOException e) {
- throw e;
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new SAXParseException (e.getMessage (), this, e);
- } finally {
- contentHandler.endDocument ();
- reset();
- }
- }
- }
+ // report element/attribute namespaces?
+ if ((FEATURE + "namespaces").equals(featureId))
+ {
+ return namespaces;
+ }
+ // all PEs and GEs are reported
+ if ((FEATURE + "lexical-handler/parameter-entities").equals(featureId))
+ {
+ return true;
+ }
- /**
- * <b>SAX1, SAX2</b>: Preferred API to parse an XML document, using a
- * system identifier (URI).
- */
- public void parse (String systemId)
- throws SAXException, IOException
- {
- parse (new InputSource (systemId));
- }
+ // default is true
+ if ((FEATURE + "string-interning").equals(featureId))
+ {
+ return stringInterning;
+ }
+
+ // EXTENSIONS 1.1
+
+ // always returns isSpecified info
+ if ((FEATURE + "use-attributes2").equals(featureId))
+ {
+ return true;
+ }
+
+ // meaningful between startDocument/endDocument
+ if ((FEATURE + "is-standalone").equals(featureId))
+ {
+ if (parser == null)
+ {
+ throw new SAXNotSupportedException(featureId);
+ }
+ return parser.isStandalone();
+ }
- //
- // Implementation of SAX2 "XMLReader" interface
- //
- static final String FEATURE = "http://xml.org/sax/features/";
- static final String PROPERTY = "http://xml.org/sax/properties/";
-
- /**
- * <b>SAX2</b>: Tells the value of the specified feature flag.
- *
- * @exception SAXNotRecognizedException thrown if the feature flag
- * is neither built in, nor yet assigned.
- */
- public boolean getFeature (String featureId)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if ((FEATURE + "validation").equals (featureId))
- return false;
-
- // external entities (both types) are optionally included
- if ((FEATURE + "external-general-entities").equals (featureId))
- return extGE;
- if ((FEATURE + "external-parameter-entities") .equals (featureId))
- return extPE;
-
- // element/attribute names are as written in document; no mangling
- if ((FEATURE + "namespace-prefixes").equals (featureId))
- return xmlNames;
-
- // report element/attribute namespaces?
- if ((FEATURE + "namespaces").equals (featureId))
- return namespaces;
-
- // all PEs and GEs are reported
- if ((FEATURE + "lexical-handler/parameter-entities").equals (featureId))
- return true;
-
- // default is true
- if ((FEATURE + "string-interning").equals (featureId))
- return stringInterning;
-
- // EXTENSIONS 1.1
-
- // always returns isSpecified info
- if ((FEATURE + "use-attributes2").equals (featureId))
- return true;
-
- // meaningful between startDocument/endDocument
- if ((FEATURE + "is-standalone").equals (featureId)) {
- if (parser == null)
- throw new SAXNotSupportedException (featureId);
- return parser.isStandalone ();
- }
-
- // optionally don't absolutize URIs in declarations
- if ((FEATURE + "resolve-dtd-uris").equals (featureId))
- return resolveAll;
-
- // optionally use resolver2 interface methods, if possible
- if ((FEATURE + "use-entity-resolver2").equals (featureId))
- return useResolver2;
-
- throw new SAXNotRecognizedException (featureId);
- }
+ // optionally don't absolutize URIs in declarations
+ if ((FEATURE + "resolve-dtd-uris").equals(featureId))
+ {
+ return resolveAll;
+ }
- // package private
- DeclHandler getDeclHandler () { return declHandler; }
+ // optionally use resolver2 interface methods, if possible
+ if ((FEATURE + "use-entity-resolver2").equals(featureId))
+ {
+ return useResolver2;
+ }
+
+ throw new SAXNotRecognizedException(featureId);
+ }
- // package private
- boolean resolveURIs () { return resolveAll; }
+ // package private
+ DeclHandler getDeclHandler()
+ {
+ return declHandler;
+ }
- /**
- * <b>SAX2</b>: Returns the specified property.
- *
- * @exception SAXNotRecognizedException thrown if the property value
- * is neither built in, nor yet stored.
- */
- public Object getProperty (String propertyId)
+ // package private
+ boolean resolveURIs()
+ {
+ return resolveAll;
+ }
+
+ /**
+ * <b>SAX2</b>: Returns the specified property.
+ *
+ * @exception SAXNotRecognizedException thrown if the property value
+ * is neither built in, nor yet stored.
+ */
+ public Object getProperty(String propertyId)
throws SAXNotRecognizedException
- {
- if ((PROPERTY + "declaration-handler").equals (propertyId))
- return declHandler == base ? null : declHandler;
-
- if ((PROPERTY + "lexical-handler").equals (propertyId))
- return lexicalHandler == base ? null : lexicalHandler;
-
- // unknown properties
- throw new SAXNotRecognizedException (propertyId);
- }
+ {
+ if ((PROPERTY + "declaration-handler").equals(propertyId))
+ {
+ return (declHandler == base) ? null : declHandler;
+ }
- /**
- * <b>SAX2</b>: Sets the state of feature flags in this parser. Some
- * built-in feature flags are mutable.
- */
- public void setFeature (String featureId, boolean value)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- boolean state;
-
- // Features with a defined value, we just change it if we can.
- state = getFeature (featureId);
-
- if (state == value)
- return;
- if (parser != null)
- throw new SAXNotSupportedException ("not while parsing");
-
- if ((FEATURE + "namespace-prefixes").equals (featureId)) {
- // in this implementation, this only affects xmlns reporting
- xmlNames = value;
- // forcibly prevent illegal parser state
- if (!xmlNames)
- namespaces = true;
- return;
- }
-
- if ((FEATURE + "namespaces").equals (featureId)) {
- namespaces = value;
- // forcibly prevent illegal parser state
- if (!namespaces)
- xmlNames = true;
- return;
- }
-
- if ((FEATURE + "external-general-entities").equals (featureId)) {
- extGE = value;
- return;
- }
- if ((FEATURE + "external-parameter-entities") .equals (featureId)) {
- extPE = value;
- return;
- }
- if ((FEATURE + "resolve-dtd-uris").equals (featureId)) {
- resolveAll = value;
- return;
- }
-
- if ((FEATURE + "use-entity-resolver2").equals (featureId)) {
- useResolver2 = value;
- return;
- }
-
- throw new SAXNotRecognizedException (featureId);
- }
+ if ((PROPERTY + "lexical-handler").equals(propertyId))
+ {
+ return (lexicalHandler == base) ? null : lexicalHandler;
+ }
+
+ // unknown properties
+ throw new SAXNotRecognizedException(propertyId);
+ }
- /**
- * <b>SAX2</b>: Assigns the specified property. Like SAX1 handlers,
- * these may be changed at any time.
- */
- public void setProperty (String propertyId, Object value)
+ /**
+ * <b>SAX2</b>: Sets the state of feature flags in this parser. Some
+ * built-in feature flags are mutable.
+ */
+ public void setFeature(String featureId, boolean value)
throws SAXNotRecognizedException, SAXNotSupportedException
- {
- // see if the property is recognized
- getProperty (propertyId);
-
- // Properties with a defined value, we just change it if we can.
-
- if ((PROPERTY + "declaration-handler").equals (propertyId)) {
- if (value == null)
- declHandler = base;
- else if (! (value instanceof DeclHandler))
- throw new SAXNotSupportedException (propertyId);
- else
- declHandler = (DeclHandler) value;
- return ;
- }
-
- if ((PROPERTY + "lexical-handler").equals (propertyId)) {
- if (value == null)
- lexicalHandler = base;
- else if (! (value instanceof LexicalHandler))
- throw new SAXNotSupportedException (propertyId);
- else
- lexicalHandler = (LexicalHandler) value;
- return ;
- }
-
- throw new SAXNotSupportedException (propertyId);
- }
+ {
+ boolean state;
+
+ // Features with a defined value, we just change it if we can.
+ state = getFeature (featureId);
+
+ if (state == value)
+ {
+ return;
+ }
+ if (parser != null)
+ {
+ throw new SAXNotSupportedException("not while parsing");
+ }
+
+ if ((FEATURE + "namespace-prefixes").equals(featureId))
+ {
+ // in this implementation, this only affects xmlns reporting
+ xmlNames = value;
+ // forcibly prevent illegal parser state
+ if (!xmlNames)
+ {
+ namespaces = true;
+ }
+ return;
+ }
+ if ((FEATURE + "namespaces").equals(featureId))
+ {
+ namespaces = value;
+ // forcibly prevent illegal parser state
+ if (!namespaces)
+ {
+ xmlNames = true;
+ }
+ return;
+ }
- //
- // This is where the driver receives XmlParser callbacks and translates
- // them into SAX callbacks. Some more callbacks have been added for
- // SAX2 support.
- //
+ if ((FEATURE + "external-general-entities").equals(featureId))
+ {
+ extGE = value;
+ return;
+ }
+ if ((FEATURE + "external-parameter-entities").equals(featureId))
+ {
+ extPE = value;
+ return;
+ }
+ if ((FEATURE + "resolve-dtd-uris").equals(featureId))
+ {
+ resolveAll = value;
+ return;
+ }
+
+ if ((FEATURE + "use-entity-resolver2").equals(featureId))
+ {
+ useResolver2 = value;
+ return;
+ }
+
+ throw new SAXNotRecognizedException(featureId);
+ }
- void startDocument ()
+ /**
+ * <b>SAX2</b>: Assigns the specified property. Like SAX1 handlers,
+ * these may be changed at any time.
+ */
+ public void setProperty(String propertyId, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ // see if the property is recognized
+ getProperty(propertyId);
+
+ // Properties with a defined value, we just change it if we can.
+
+ if ((PROPERTY + "declaration-handler").equals(propertyId))
+ {
+ if (value == null)
+ {
+ declHandler = base;
+ }
+ else if (!(value instanceof DeclHandler))
+ {
+ throw new SAXNotSupportedException(propertyId);
+ }
+ else
+ {
+ declHandler = (DeclHandler) value;
+ }
+ return ;
+ }
+
+ if ((PROPERTY + "lexical-handler").equals(propertyId))
+ {
+ if (value == null)
+ {
+ lexicalHandler = base;
+ }
+ else if (!(value instanceof LexicalHandler))
+ {
+ throw new SAXNotSupportedException(propertyId);
+ }
+ else
+ {
+ lexicalHandler = (LexicalHandler) value;
+ }
+ return;
+ }
+
+ throw new SAXNotSupportedException(propertyId);
+ }
+
+ //
+ // This is where the driver receives XmlParser callbacks and translates
+ // them into SAX callbacks. Some more callbacks have been added for
+ // SAX2 support.
+ //
+
+ void startDocument()
throws SAXException
- {
- contentHandler.setDocumentLocator (this);
- contentHandler.startDocument ();
- attributesList.clear ();
- }
+ {
+ contentHandler.setDocumentLocator(this);
+ contentHandler.startDocument();
+ attributesList.clear();
+ }
- void xmlDecl(String version,
- String encoding,
- boolean standalone,
- String inputEncoding)
- throws SAXException
- {
- if (contentHandler instanceof ContentHandler2)
- {
- ((ContentHandler2) contentHandler).xmlDecl(version,
- encoding,
- standalone,
- inputEncoding);
- }
- }
+ void xmlDecl(String version,
+ String encoding,
+ boolean standalone,
+ String inputEncoding)
+ throws SAXException
+ {
+ if (contentHandler instanceof ContentHandler2)
+ {
+ ((ContentHandler2) contentHandler).xmlDecl(version,
+ encoding,
+ standalone,
+ inputEncoding);
+ }
+ }
- void skippedEntity (String name)
+ void skippedEntity(String name)
throws SAXException
- { contentHandler.skippedEntity (name); }
+ {
+ contentHandler.skippedEntity(name);
+ }
- InputSource getExternalSubset (String name, String baseURI)
+ InputSource getExternalSubset(String name, String baseURI)
throws SAXException, IOException
- {
- if (resolver2 == null || !useResolver2 || !extPE)
- return null;
- return resolver2.getExternalSubset (name, baseURI);
- }
+ {
+ if (resolver2 == null || !useResolver2 || !extPE)
+ {
+ return null;
+ }
+ return resolver2.getExternalSubset(name, baseURI);
+ }
- InputSource resolveEntity (boolean isPE, String name,
- InputSource in, String baseURI)
+ InputSource resolveEntity(boolean isPE, String name,
+ InputSource in, String baseURI)
throws SAXException, IOException
- {
- InputSource source;
-
- // external entities might be skipped
- if (isPE && !extPE)
- return null;
- if (!isPE && !extGE)
- return null;
-
- // ... or not
- lexicalHandler.startEntity (name);
- if (resolver2 != null && useResolver2) {
- source = resolver2.resolveEntity (name, in.getPublicId (),
- baseURI, in.getSystemId ());
- if (source == null) {
- in.setSystemId (absolutize (baseURI,
- in.getSystemId (), false));
- source = in;
- }
- } else {
- in.setSystemId (absolutize (baseURI, in.getSystemId (), false));
- source = entityResolver.resolveEntity (in.getPublicId (),
- in.getSystemId ());
- if (source == null)
- source = in;
- }
- startExternalEntity (name, source.getSystemId (), true);
- return source;
- }
+ {
+ InputSource source;
+
+ // external entities might be skipped
+ if (isPE && !extPE)
+ {
+ return null;
+ }
+ if (!isPE && !extGE)
+ {
+ return null;
+ }
+
+ // ... or not
+ lexicalHandler.startEntity(name);
+ if (resolver2 != null && useResolver2)
+ {
+ source = resolver2.resolveEntity(name, in.getPublicId(),
+ baseURI, in.getSystemId());
+ if (source == null)
+ {
+ in.setSystemId(absolutize(baseURI,
+ in.getSystemId(), false));
+ source = in;
+ }
+ }
+ else
+ {
+ in.setSystemId(absolutize(baseURI, in.getSystemId(), false));
+ source = entityResolver.resolveEntity(in.getPublicId(),
+ in.getSystemId());
+ if (source == null)
+ {
+ source = in;
+ }
+ }
+ startExternalEntity(name, source.getSystemId(), true);
+ return source;
+ }
- // absolutize a system ID relative to the specified base URI
- // (temporarily) package-visible for external entity decls
- String absolutize (String baseURI, String systemId, boolean nice)
+ // absolutize a system ID relative to the specified base URI
+ // (temporarily) package-visible for external entity decls
+ String absolutize(String baseURI, String systemId, boolean nice)
throws MalformedURLException, SAXException
- {
- // FIXME normalize system IDs -- when?
- // - Convert to UTF-8
- // - Map reserved and non-ASCII characters to %HH
-
- try {
- if (baseURI == null) {
- warn ("No base URI; hope this SYSTEM id is absolute: "
- + systemId);
- return new URL (systemId).toString ();
- } else
- return new URL (new URL (baseURI), systemId).toString ();
-
- } catch (MalformedURLException e) {
-
- // Let unknown URI schemes pass through unless we need
- // the JVM to map them to i/o streams for us...
- if (!nice)
- throw e;
-
- // sometimes sysids for notations or unparsed entities
- // aren't really URIs...
- warn ("Can't absolutize SYSTEM id: " + e.getMessage ());
- return systemId;
- }
- }
+ {
+ // FIXME normalize system IDs -- when?
+ // - Convert to UTF-8
+ // - Map reserved and non-ASCII characters to %HH
+
+ try
+ {
+ if (baseURI == null)
+ {
+ if (XmlParser.uriWarnings)
+ {
+ warn ("No base URI; hope this SYSTEM id is absolute: "
+ + systemId);
+ }
+ return new URL(systemId).toString();
+ }
+ else
+ {
+ return new URL(new URL(baseURI), systemId).toString();
+ }
+ }
+ catch (MalformedURLException e)
+ {
+ // Let unknown URI schemes pass through unless we need
+ // the JVM to map them to i/o streams for us...
+ if (!nice)
+ {
+ throw e;
+ }
+
+ // sometimes sysids for notations or unparsed entities
+ // aren't really URIs...
+ warn("Can't absolutize SYSTEM id: " + e.getMessage());
+ return systemId;
+ }
+ }
- void startExternalEntity (String name, String systemId,
- boolean stackOnly)
+ void startExternalEntity(String name, String systemId, boolean stackOnly)
throws SAXException
- {
- // The following warning was deleted because the application has the
- // option of not setting systemId. Sun's JAXP or Xerces seems to
- // ignore this case.
- /*
- if (systemId == null)
- warn ("URI was not reported to parser for entity " + name);
- */
- if (!stackOnly) // spliced [dtd] needs startEntity
- lexicalHandler.startEntity (name);
- entityStack.push (systemId);
- }
+ {
+ // The following warning was deleted because the application has the
+ // option of not setting systemId. Sun's JAXP or Xerces seems to
+ // ignore this case.
+ /*
+ if (systemId == null)
+ warn ("URI was not reported to parser for entity " + name);
+ */
+ if (!stackOnly) // spliced [dtd] needs startEntity
+ {
+ lexicalHandler.startEntity(name);
+ }
+ entityStack.push(systemId);
+ }
- void endExternalEntity (String name)
+ void endExternalEntity(String name)
throws SAXException
- {
- if (!"[document]".equals (name))
- lexicalHandler.endEntity (name);
- entityStack.pop ();
- }
+ {
+ if (!"[document]".equals(name))
+ {
+ lexicalHandler.endEntity(name);
+ }
+ entityStack.pop();
+ }
- void startInternalEntity (String name)
+ void startInternalEntity(String name)
throws SAXException
- {
- lexicalHandler.startEntity (name);
- }
+ {
+ lexicalHandler.startEntity(name);
+ }
- void endInternalEntity (String name)
+ void endInternalEntity(String name)
throws SAXException
- {
- lexicalHandler.endEntity (name);
- }
+ {
+ lexicalHandler.endEntity(name);
+ }
- void doctypeDecl (String name, String publicId, String systemId)
+ void doctypeDecl(String name, String publicId, String systemId)
throws SAXException
- {
- lexicalHandler.startDTD (name, publicId, systemId);
-
- // ... the "name" is a declaration and should be given
- // to the DeclHandler (but sax2 doesn't).
-
- // the IDs for the external subset are lexical details,
- // as are the contents of the internal subset; but sax2
- // doesn't provide the internal subset "pre-parse"
- }
-
- void notationDecl (String name, String ids [])
+ {
+ lexicalHandler.startDTD(name, publicId, systemId);
+
+ // ... the "name" is a declaration and should be given
+ // to the DeclHandler (but sax2 doesn't).
+
+ // the IDs for the external subset are lexical details,
+ // as are the contents of the internal subset; but sax2
+ // doesn't provide the internal subset "pre-parse"
+ }
+
+ void notationDecl(String name, String publicId, String systemId,
+ String baseUri)
throws SAXException
- {
- try {
- dtdHandler.notationDecl (name, ids [0],
- (resolveAll && ids [1] != null)
- ? absolutize (ids [2], ids [1], true)
- : ids [1]);
- } catch (IOException e) {
- // "can't happen"
- throw new SAXParseException (e.getMessage (), this, e);
- }
- }
+ {
+ try
+ {
+ dtdHandler.notationDecl(name, publicId,
+ (resolveAll && systemId != null)
+ ? absolutize(baseUri, systemId, true)
+ : systemId);
+ }
+ catch (IOException e)
+ {
+ // "can't happen"
+ throw new SAXParseException(e.getMessage(), this, e);
+ }
+ }
- void unparsedEntityDecl (String name, String ids [], String notation)
+ void unparsedEntityDecl(String name, String publicId, String systemId,
+ String baseUri, String notation)
throws SAXException
- {
- try {
- dtdHandler.unparsedEntityDecl (name, ids [0],
- resolveAll
- ? absolutize (ids [2], ids [1], true)
- : ids [1],
- notation);
- } catch (IOException e) {
- // "can't happen"
- throw new SAXParseException (e.getMessage (), this, e);
- }
- }
+ {
+ try
+ {
+ dtdHandler.unparsedEntityDecl(name, publicId,
+ resolveAll
+ ? absolutize(baseUri, systemId, true)
+ : systemId,
+ notation);
+ }
+ catch (IOException e)
+ {
+ // "can't happen"
+ throw new SAXParseException(e.getMessage(), this, e);
+ }
+ }
- void endDoctype ()
+ void endDoctype()
throws SAXException
- {
- lexicalHandler.endDTD ();
- }
+ {
+ lexicalHandler.endDTD();
+ }
- private void declarePrefix (String prefix, String uri)
+ private void declarePrefix(String prefix, String uri)
throws SAXException
- {
- int index = uri.indexOf (':');
-
- // many versions of nwalsh docbook stylesheets
- // have bogus URLs; so this can't be an error...
- if (index < 1 && uri.length () != 0)
- warn ("relative URI for namespace: " + uri);
-
- // FIXME: char [0] must be ascii alpha; chars [1..index]
- // must be ascii alphanumeric or in "+-." [RFC 2396]
-
- //Namespace Constraints
- //name for xml prefix must be http://www.w3.org/XML/1998/namespace
- boolean prefixEquality = prefix.equals("xml");
- boolean uriEquality = uri.equals("http://www.w3.org/XML/1998/namespace");
- if ((prefixEquality || uriEquality) && !(prefixEquality && uriEquality))
- fatal ("xml is by definition bound to the namespace name " +
- "http://www.w3.org/XML/1998/namespace");
-
- //xmlns prefix declaration is illegal but xml prefix declaration is llegal...
- if (prefixEquality && uriEquality)
- return;
-
- //name for xmlns prefix must be http://www.w3.org/2000/xmlns/
- prefixEquality = prefix.equals("xmlns");
- uriEquality = uri.equals("http://www.w3.org/2000/xmlns/");
- if ((prefixEquality || uriEquality) && !(prefixEquality && uriEquality))
- fatal("http://www.w3.org/2000/xmlns/ is by definition bound" +
- " to prefix xmlns");
-
- //even if the uri is http://www.w3.org/2000/xmlns/ it is illegal to declare it
- if (prefixEquality && uriEquality)
- fatal ("declaring the xmlns prefix is illegal");
-
- uri = uri.intern ();
- prefixStack.declarePrefix (prefix, uri);
- contentHandler.startPrefixMapping (prefix, uri);
- }
+ {
+ int index = uri.indexOf(':');
+
+ // many versions of nwalsh docbook stylesheets
+ // have bogus URLs; so this can't be an error...
+ if (index < 1 && uri.length() != 0)
+ {
+ warn("relative URI for namespace: " + uri);
+ }
- void attribute (String qname, String value, boolean isSpecified)
- throws SAXException
- {
- if (!attributes) {
- attributes = true;
- if (namespaces)
- prefixStack.pushContext ();
- }
-
- // process namespace decls immediately;
- // then maybe forget this as an attribute
- if (namespaces) {
- int index;
-
- // default NS declaration?
- if (getFeature (FEATURE + "string-interning")) {
- if ("xmlns" == qname) {
- declarePrefix ("", value);
- if (!xmlNames)
- return;
- }
- // NS prefix declaration?
- else if ((index = qname.indexOf (':')) == 5
- && qname.startsWith ("xmlns")) {
- String prefix = qname.substring (6);
-
- if (prefix.equals(""))
- fatal ("missing prefix in namespace declaration attribute");
- if (value.length () == 0) {
- verror ("missing URI in namespace declaration attribute: "
- + qname);
- } else
- declarePrefix (prefix, value);
- if (!xmlNames)
- return;
- }
- } else {
- if ("xmlns".equals(qname)) {
- declarePrefix ("", value);
- if (!xmlNames)
- return;
- }
- // NS prefix declaration?
- else if ((index = qname.indexOf (':')) == 5
- && qname.startsWith ("xmlns")) {
- String prefix = qname.substring (6);
-
- if (value.length () == 0) {
- verror ("missing URI in namespace decl attribute: "
- + qname);
- } else
- declarePrefix (prefix, value);
- if (!xmlNames)
- return;
- }
+ // FIXME: char [0] must be ascii alpha; chars [1..index]
+ // must be ascii alphanumeric or in "+-." [RFC 2396]
+
+ //Namespace Constraints
+ //name for xml prefix must be http://www.w3.org/XML/1998/namespace
+ boolean prefixEquality = prefix.equals("xml");
+ boolean uriEquality = uri.equals("http://www.w3.org/XML/1998/namespace");
+ if ((prefixEquality || uriEquality) && !(prefixEquality && uriEquality))
+ {
+ fatal("xml is by definition bound to the namespace name " +
+ "http://www.w3.org/XML/1998/namespace");
+ }
+
+ //xmlns prefix declaration is illegal but xml prefix declaration is llegal...
+ if (prefixEquality && uriEquality)
+ {
+ return;
+ }
+
+ //name for xmlns prefix must be http://www.w3.org/2000/xmlns/
+ prefixEquality = prefix.equals("xmlns");
+ uriEquality = uri.equals("http://www.w3.org/2000/xmlns/");
+ if ((prefixEquality || uriEquality) && !(prefixEquality && uriEquality))
+ {
+ fatal("http://www.w3.org/2000/xmlns/ is by definition bound" +
+ " to prefix xmlns");
}
+
+ //even if the uri is http://www.w3.org/2000/xmlns/
+ // it is illegal to declare it
+ if (prefixEquality && uriEquality)
+ {
+ fatal ("declaring the xmlns prefix is illegal");
+ }
+
+ uri = uri.intern();
+ prefixStack.declarePrefix(prefix, uri);
+ contentHandler.startPrefixMapping(prefix, uri);
}
- // remember this attribute ...
-
- if (attributeCount == attributeSpecified.length) { // grow array?
- boolean temp [] = new boolean [attributeSpecified.length + 5];
- System.arraycopy (attributeSpecified, 0, temp, 0, attributeCount);
- attributeSpecified = temp;
- }
- attributeSpecified [attributeCount] = isSpecified;
- attributeCount++;
-
- // attribute type comes from querying parser's DTD records
- attributesList.add(new Attribute(qname, value));
-
- }
-
- void startElement (String elname)
+ void attribute(String qname, String value, boolean isSpecified)
throws SAXException
- {
- ContentHandler handler = contentHandler;
-
- //
- // NOTE: this implementation of namespace support adds something
- // like six percent to parsing CPU time, in a large (~50 MB)
- // document that doesn't use namespaces at all. (Measured by PC
- // sampling, with a bug where endElement processing was omitted.)
- // [Measurement referred to older implementation, older JVM ...]
- //
- // It ought to become notably faster in such cases. Most
- // costs are the prefix stack calling Hashtable.get() (2%),
- // String.hashCode() (1.5%) and about 1.3% each for pushing
- // the context, and two chunks of name processing.
- //
-
- if (!attributes) {
- if (namespaces)
- prefixStack.pushContext ();
- } else if (namespaces) {
-
- // now we can patch up namespace refs; we saw all the
- // declarations, so now we'll do the Right Thing
- Iterator itt = attributesList.iterator ();
- while(itt.hasNext())
- {
- Attribute attribute = (Attribute) itt.next();
- String qname = attribute.name;
- int index;
-
- // default NS declaration?
- if (getFeature (FEATURE + "string-interning")) {
- if ("xmlns" == qname)
- continue;
- } else {
- if ("xmlns".equals(qname))
- continue;
- }
- //Illegal in the new Namespaces Draft
- //should it be only in 1.1 docs??
- if (qname.equals (":"))
- fatal ("namespace names consisting of a single colon " +
- "character are invalid");
- index = qname.indexOf (':');
-
- // NS prefix declaration?
- if (index == 5 && qname.startsWith ("xmlns"))
- continue;
-
- // it's not a NS decl; patch namespace info items
- if (prefixStack.processName (qname, nsTemp, true) == null)
- fatal ("undeclared attribute prefix in: " + qname);
- else {
- attribute.nameSpace = nsTemp[0];
- attribute.localName = nsTemp[1];
- }
- }
- }
-
- // save element name so attribute callbacks work
- elementName = elname;
- if (namespaces) {
- if (prefixStack.processName (elname, nsTemp, false) == null) {
- fatal ("undeclared element prefix in: " + elname);
- nsTemp [0] = nsTemp [1] = "";
- }
- handler.startElement (nsTemp [0], nsTemp [1], elname, this);
- } else
- handler.startElement ("", "", elname, this);
- // elementName = null;
-
- // elements with no attributes are pretty common!
- if (attributes) {
- attributesList.clear();
- attributeCount = 0;
- attributes = false;
- }
- }
-
- void endElement (String elname)
+ {
+ if (!attributes)
+ {
+ attributes = true;
+ if (namespaces)
+ {
+ prefixStack.pushContext();
+ }
+ }
+
+ // process namespace decls immediately;
+ // then maybe forget this as an attribute
+ if (namespaces)
+ {
+ int index;
+
+ // default NS declaration?
+ if (stringInterning)
+ {
+ if ("xmlns" == qname)
+ {
+ declarePrefix("", value);
+ if (!xmlNames)
+ {
+ return;
+ }
+ }
+ // NS prefix declaration?
+ else if ((index = qname.indexOf(':')) == 5
+ && qname.startsWith("xmlns"))
+ {
+ String prefix = qname.substring(6);
+
+ if (prefix.equals(""))
+ {
+ fatal("missing prefix " +
+ "in namespace declaration attribute");
+ }
+ if (value.length() == 0)
+ {
+ verror("missing URI in namespace declaration attribute: "
+ + qname);
+ }
+ else
+ {
+ declarePrefix(prefix, value);
+ }
+ if (!xmlNames)
+ {
+ return;
+ }
+ }
+ }
+ else
+ {
+ if ("xmlns".equals(qname))
+ {
+ declarePrefix("", value);
+ if (!xmlNames)
+ {
+ return;
+ }
+ }
+ // NS prefix declaration?
+ else if ((index = qname.indexOf(':')) == 5
+ && qname.startsWith("xmlns"))
+ {
+ String prefix = qname.substring(6);
+
+ if (value.length() == 0)
+ {
+ verror("missing URI in namespace decl attribute: "
+ + qname);
+ }
+ else
+ {
+ declarePrefix(prefix, value);
+ }
+ if (!xmlNames)
+ {
+ return;
+ }
+ }
+ }
+ }
+ // remember this attribute ...
+ attributeCount++;
+
+ // attribute type comes from querying parser's DTD records
+ attributesList.add(new Attribute(qname, value, isSpecified));
+
+ }
+
+ void startElement(String elname)
throws SAXException
- {
- ContentHandler handler = contentHandler;
-
- if (!namespaces) {
- handler.endElement ("", "", elname);
- return;
- }
- prefixStack.processName (elname, nsTemp, false);
- handler.endElement (nsTemp [0], nsTemp [1], elname);
+ {
+ ContentHandler handler = contentHandler;
- Enumeration prefixes = prefixStack.getDeclaredPrefixes ();
+ //
+ // NOTE: this implementation of namespace support adds something
+ // like six percent to parsing CPU time, in a large (~50 MB)
+ // document that doesn't use namespaces at all. (Measured by PC
+ // sampling, with a bug where endElement processing was omitted.)
+ // [Measurement referred to older implementation, older JVM ...]
+ //
+ // It ought to become notably faster in such cases. Most
+ // costs are the prefix stack calling Hashtable.get() (2%),
+ // String.hashCode() (1.5%) and about 1.3% each for pushing
+ // the context, and two chunks of name processing.
+ //
+
+ if (!attributes)
+ {
+ if (namespaces)
+ {
+ prefixStack.pushContext();
+ }
+ }
+ else if (namespaces)
+ {
+
+ // now we can patch up namespace refs; we saw all the
+ // declarations, so now we'll do the Right Thing
+ Iterator itt = attributesList.iterator();
+ while (itt.hasNext())
+ {
+ Attribute attribute = (Attribute) itt.next();
+ String qname = attribute.name;
+ int index;
+
+ // default NS declaration?
+ if (stringInterning)
+ {
+ if ("xmlns" == qname)
+ {
+ continue;
+ }
+ }
+ else
+ {
+ if ("xmlns".equals(qname))
+ {
+ continue;
+ }
+ }
+ //Illegal in the new Namespaces Draft
+ //should it be only in 1.1 docs??
+ if (qname.equals (":"))
+ {
+ fatal("namespace names consisting of a single colon " +
+ "character are invalid");
+ }
+ index = qname.indexOf(':');
+
+ // NS prefix declaration?
+ if (index == 5 && qname.startsWith("xmlns"))
+ {
+ continue;
+ }
+
+ // it's not a NS decl; patch namespace info items
+ if (prefixStack.processName(qname, nsTemp, true) == null)
+ {
+ fatal("undeclared attribute prefix in: " + qname);
+ }
+ else
+ {
+ attribute.nameSpace = nsTemp[0];
+ attribute.localName = nsTemp[1];
+ }
+ }
+ }
+
+ // save element name so attribute callbacks work
+ elementName = elname;
+ if (namespaces)
+ {
+ if (prefixStack.processName(elname, nsTemp, false) == null)
+ {
+ fatal("undeclared element prefix in: " + elname);
+ nsTemp[0] = nsTemp[1] = "";
+ }
+ handler.startElement(nsTemp[0], nsTemp[1], elname, this);
+ }
+ else
+ {
+ handler.startElement("", "", elname, this);
+ }
+ // elementName = null;
+
+ // elements with no attributes are pretty common!
+ if (attributes)
+ {
+ attributesList.clear();
+ attributeCount = 0;
+ attributes = false;
+ }
+ }
+
+ void endElement(String elname)
+ throws SAXException
+ {
+ ContentHandler handler = contentHandler;
- while (prefixes.hasMoreElements ())
- handler.endPrefixMapping ((String) prefixes.nextElement ());
- prefixStack.popContext ();
- }
+ if (!namespaces)
+ {
+ handler.endElement("", "", elname);
+ return;
+ }
+ prefixStack.processName(elname, nsTemp, false);
+ handler.endElement(nsTemp[0], nsTemp[1], elname);
+
+ Enumeration prefixes = prefixStack.getDeclaredPrefixes();
+
+ while (prefixes.hasMoreElements())
+ {
+ handler.endPrefixMapping((String) prefixes.nextElement());
+ }
+ prefixStack.popContext();
+ }
- void startCDATA ()
+ void startCDATA()
throws SAXException
- {
- lexicalHandler.startCDATA ();
- }
+ {
+ lexicalHandler.startCDATA();
+ }
- void charData (char ch[], int start, int length)
+ void charData(char[] ch, int start, int length)
throws SAXException
- {
- contentHandler.characters (ch, start, length);
- }
+ {
+ contentHandler.characters(ch, start, length);
+ }
- void endCDATA ()
+ void endCDATA()
throws SAXException
- {
- lexicalHandler.endCDATA ();
- }
+ {
+ lexicalHandler.endCDATA();
+ }
- void ignorableWhitespace (char ch[], int start, int length)
+ void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException
- {
- contentHandler.ignorableWhitespace (ch, start, length);
- }
+ {
+ contentHandler.ignorableWhitespace(ch, start, length);
+ }
- void processingInstruction (String target, String data)
+ void processingInstruction(String target, String data)
throws SAXException
- {
- contentHandler.processingInstruction (target, data);
- }
+ {
+ contentHandler.processingInstruction(target, data);
+ }
- void comment (char ch[], int start, int length)
+ void comment(char[] ch, int start, int length)
throws SAXException
- {
- if (lexicalHandler != base)
- lexicalHandler.comment (ch, start, length);
- }
+ {
+ if (lexicalHandler != base)
+ {
+ lexicalHandler.comment(ch, start, length);
+ }
+ }
- void fatal (String message)
+ void fatal(String message)
throws SAXException
- {
- SAXParseException fatal;
-
- fatal = new SAXParseException (message, this);
- errorHandler.fatalError (fatal);
+ {
+ SAXParseException fatal;
+
+ fatal = new SAXParseException(message, this);
+ errorHandler.fatalError(fatal);
- // Even if the application can continue ... we can't!
- throw fatal;
- }
+ // Even if the application can continue ... we can't!
+ throw fatal;
+ }
- // We can safely report a few validity errors that
- // make layered SAX2 DTD validation more conformant
- void verror (String message)
+ // We can safely report a few validity errors that
+ // make layered SAX2 DTD validation more conformant
+ void verror(String message)
throws SAXException
- {
- SAXParseException err;
-
- err = new SAXParseException (message, this);
- errorHandler.error (err);
- }
-
- void warn (String message)
+ {
+ SAXParseException err;
+
+ err = new SAXParseException(message, this);
+ errorHandler.error(err);
+ }
+
+ void warn(String message)
throws SAXException
- {
- SAXParseException err;
-
- err = new SAXParseException (message, this);
- errorHandler.warning (err);
- }
+ {
+ SAXParseException err;
+
+ err = new SAXParseException(message, this);
+ errorHandler.warning(err);
+ }
+ //
+ // Implementation of org.xml.sax.Attributes.
+ //
+
+ /**
+ * <b>SAX1 AttributeList, SAX2 Attributes</b> method
+ * (don't invoke on parser);
+ */
+ public int getLength()
+ {
+ return attributesList.size();
+ }
- //
- // Implementation of org.xml.sax.Attributes.
- //
+ /**
+ * <b>SAX2 Attributes</b> method (don't invoke on parser);
+ */
+ public String getURI(int index)
+ {
+ if (index < 0 || index >= attributesList.size())
+ {
+ return null;
+ }
+ return ((Attribute) attributesList.get(index)).nameSpace;
+ }
- /**
- * <b>SAX1 AttributeList, SAX2 Attributes</b> method
- * (don't invoke on parser);
- */
- public int getLength ()
- {
- return attributesList.size ();
- }
+ /**
+ * <b>SAX2 Attributes</b> method (don't invoke on parser);
+ */
+ public String getLocalName(int index)
+ {
+ if (index < 0 || index >= attributesList.size())
+ {
+ return null;
+ }
+ Attribute attr = (Attribute) attributesList.get(index);
+ // FIXME attr.localName is sometimes null, why?
+ if (namespaces && attr.localName == null)
+ {
+ // XXX fix this here for now
+ int ci = attr.name.indexOf(':');
+ attr.localName = (ci == -1) ? attr.name :
+ attr.name.substring(ci + 1);
+ }
+ return (attr.localName == null) ? "" : attr.localName;
+ }
- /**
- * <b>SAX2 Attributes</b> method (don't invoke on parser);
- */
- public String getURI (int index)
- {
- return ((Attribute) attributesList.get (index)).nameSpace;
- }
+ /**
+ * <b>SAX2 Attributes</b> method (don't invoke on parser);
+ */
+ public String getQName(int index)
+ {
+ if (index < 0 || index >= attributesList.size())
+ {
+ return null;
+ }
+ Attribute attr = (Attribute) attributesList.get(index);
+ return (attr.name == null) ? "" : attr.name;
+ }
- /**
- * <b>SAX2 Attributes</b> method (don't invoke on parser);
- */
- public String getLocalName (int index)
- {
- Attribute attr = (Attribute) attributesList.get (index);
- // FIXME attr.localName is sometimes null, why?
- if (namespaces && attr.localName == null)
- {
- // XXX fix this here for now
- int ci = attr.name.indexOf(':');
- attr.localName = (ci == -1) ? attr.name :
- attr.name.substring(ci + 1);
- }
- return attr.localName;
- }
+ /**
+ * <b>SAX1 AttributeList</b> method (don't invoke on parser);
+ */
+ public String getName(int index)
+ {
+ return getQName(index);
+ }
- /**
- * <b>SAX2 Attributes</b> method (don't invoke on parser);
- */
- public String getQName (int i)
- {
- return ((Attribute) attributesList.get (i)).name;
- }
+ /**
+ * <b>SAX1 AttributeList, SAX2 Attributes</b> method
+ * (don't invoke on parser);
+ */
+ public String getType(int index)
+ {
+ if (index < 0 || index >= attributesList.size())
+ {
+ return null;
+ }
+ String type = parser.getAttributeType(elementName, getQName(index));
+ if (type == null)
+ {
+ return "CDATA";
+ }
+ // ... use DeclHandler.attributeDecl to see enumerations
+ if (type == "ENUMERATION")
+ {
+ return "NMTOKEN";
+ }
+ return type;
+ }
- /**
- * <b>SAX1 AttributeList</b> method (don't invoke on parser);
- */
- public String getName (int i)
- {
- return ((Attribute) attributesList.get (i)).name;
- }
+ /**
+ * <b>SAX1 AttributeList, SAX2 Attributes</b> method
+ * (don't invoke on parser);
+ */
+ public String getValue(int index)
+ {
+ if (index < 0 || index >= attributesList.size())
+ {
+ return null;
+ }
+ return ((Attribute) attributesList.get(index)).value;
+ }
- /**
- * <b>SAX1 AttributeList, SAX2 Attributes</b> method
- * (don't invoke on parser);
- */
- public String getType (int i)
+ /**
+ * <b>SAX2 Attributes</b> method (don't invoke on parser);
+ */
+ public int getIndex(String uri, String local)
{
- String type = parser.getAttributeType (elementName, getQName (i));
- if (type == null)
- return "CDATA";
- // ... use DeclHandler.attributeDecl to see enumerations
- if (type == "ENUMERATION")
- return "NMTOKEN";
- return type;
- }
+ int length = getLength();
+
+ for (int i = 0; i < length; i++)
+ {
+ if (!getURI(i).equals(uri))
+ {
+ continue;
+ }
+ if (getLocalName(i).equals(local))
+ {
+ return i;
+ }
+ }
+ return -1;
+ }
+ /**
+ * <b>SAX2 Attributes</b> method (don't invoke on parser);
+ */
+ public int getIndex(String xmlName)
+ {
+ int length = getLength();
+
+ for (int i = 0; i < length; i++)
+ {
+ if (getQName(i).equals(xmlName))
+ {
+ return i;
+ }
+ }
+ return -1;
+ }
- /**
- * <b>SAX1 AttributeList, SAX2 Attributes</b> method
- * (don't invoke on parser);
- */
- public String getValue (int i)
- {
- return ((Attribute) attributesList.get (i)).value;
- }
+ /**
+ * <b>SAX2 Attributes</b> method (don't invoke on parser);
+ */
+ public String getType(String uri, String local)
+ {
+ int index = getIndex(uri, local);
+
+ if (index < 0)
+ {
+ return null;
+ }
+ return getType(index);
+ }
+ /**
+ * <b>SAX1 AttributeList, SAX2 Attributes</b> method
+ * (don't invoke on parser);
+ */
+ public String getType(String xmlName)
+ {
+ int index = getIndex(xmlName);
+
+ if (index < 0)
+ {
+ return null;
+ }
+ return getType(index);
+ }
- /**
- * <b>SAX2 Attributes</b> method (don't invoke on parser);
- */
- public int getIndex (String uri, String local)
- {
- int length = getLength ();
-
- for (int i = 0; i < length; i++) {
- if (!getURI (i).equals (uri))
- continue;
- if (getLocalName (i).equals (local))
- return i;
- }
- return -1;
- }
+ /**
+ * <b>SAX Attributes</b> method (don't invoke on parser);
+ */
+ public String getValue(String uri, String local)
+ {
+ int index = getIndex(uri, local);
+
+ if (index < 0)
+ {
+ return null;
+ }
+ return getValue(index);
+ }
+ /**
+ * <b>SAX1 AttributeList, SAX2 Attributes</b> method
+ * (don't invoke on parser);
+ */
+ public String getValue(String xmlName)
+ {
+ int index = getIndex(xmlName);
+
+ if (index < 0)
+ {
+ return null;
+ }
+ return getValue(index);
+ }
- /**
- * <b>SAX2 Attributes</b> method (don't invoke on parser);
- */
- public int getIndex (String xmlName)
- {
- int length = getLength ();
+ //
+ // Implementation of org.xml.sax.ext.Attributes2
+ //
+
+ /** @return false unless the attribute was declared in the DTD.
+ * @throws java.lang.ArrayIndexOutOfBoundsException
+ * When the supplied index does not identify an attribute.
+ */
+ public boolean isDeclared(int index)
+ {
+ if (index < 0 || index >= attributeCount)
+ {
+ throw new ArrayIndexOutOfBoundsException();
+ }
+ String type = parser.getAttributeType(elementName, getQName(index));
+ return (type != null);
+ }
- for (int i = 0; i < length; i++) {
- if (getQName (i).equals (xmlName))
- return i;
- }
- return -1;
- }
+ /** @return false unless the attribute was declared in the DTD.
+ * @throws java.lang.IllegalArgumentException
+ * When the supplied names do not identify an attribute.
+ */
+ public boolean isDeclared(String qName)
+ {
+ int index = getIndex(qName);
+ if (index < 0)
+ {
+ throw new IllegalArgumentException();
+ }
+ String type = parser.getAttributeType(elementName, qName);
+ return (type != null);
+ }
+ /** @return false unless the attribute was declared in the DTD.
+ * @throws java.lang.IllegalArgumentException
+ * When the supplied names do not identify an attribute.
+ */
+ public boolean isDeclared(String uri, String localName)
+ {
+ int index = getIndex(uri, localName);
+ return isDeclared(index);
+ }
- /**
- * <b>SAX2 Attributes</b> method (don't invoke on parser);
- */
- public String getType (String uri, String local)
- {
- int index = getIndex (uri, local);
+ /**
+ * <b>SAX-ext Attributes2</b> method (don't invoke on parser);
+ */
+ public boolean isSpecified(int index)
+ {
+ return ((Attribute) attributesList.get(index)).specified;
+ }
- if (index < 0)
- return null;
- return getType (index);
- }
+ /**
+ * <b>SAX-ext Attributes2</b> method (don't invoke on parser);
+ */
+ public boolean isSpecified(String uri, String local)
+ {
+ int index = getIndex (uri, local);
+ return isSpecified(index);
+ }
+ /**
+ * <b>SAX-ext Attributes2</b> method (don't invoke on parser);
+ */
+ public boolean isSpecified(String xmlName)
+ {
+ int index = getIndex (xmlName);
+ return isSpecified(index);
+ }
- /**
- * <b>SAX1 AttributeList, SAX2 Attributes</b> method
- * (don't invoke on parser);
- */
- public String getType (String xmlName)
- {
- int index = getIndex (xmlName);
+ //
+ // Implementation of org.xml.sax.Locator.
+ //
- if (index < 0)
- return null;
- return getType (index);
- }
+ /**
+ * <b>SAX Locator</b> method (don't invoke on parser);
+ */
+ public String getPublicId()
+ {
+ return null; // FIXME track public IDs too
+ }
+ /**
+ * <b>SAX Locator</b> method (don't invoke on parser);
+ */
+ public String getSystemId()
+ {
+ if (entityStack.empty())
+ {
+ return null;
+ }
+ else
+ {
+ return (String) entityStack.peek();
+ }
+ }
- /**
- * <b>SAX Attributes</b> method (don't invoke on parser);
- */
- public String getValue (String uri, String local)
- {
- int index = getIndex (uri, local);
+ /**
+ * <b>SAX Locator</b> method (don't invoke on parser);
+ */
+ public int getLineNumber()
+ {
+ return parser.getLineNumber();
+ }
- if (index < 0)
- return null;
- return getValue (index);
- }
+ /**
+ * <b>SAX Locator</b> method (don't invoke on parser);
+ */
+ public int getColumnNumber()
+ {
+ return parser.getColumnNumber();
+ }
+ // adapter between SAX2 content handler and SAX1 document handler callbacks
+ private static class Adapter
+ implements ContentHandler
+ {
+
+ private DocumentHandler docHandler;
- /**
- * <b>SAX1 AttributeList, SAX2 Attributes</b> method
- * (don't invoke on parser);
- */
- public String getValue (String xmlName)
+ Adapter(DocumentHandler dh)
{
- int index = getIndex (xmlName);
-
- if (index < 0)
- return null;
- return getValue (index);
+ docHandler = dh;
}
-
- //
- // Implementation of org.xml.sax.ext.Attributes2
- //
-
-
- /** @return false unless the attribute was declared in the DTD.
- * @throws java.lang.ArrayIndexOutOfBoundsException
- * When the supplied index does not identify an attribute.
- */
- public boolean isDeclared (int index)
+ public void setDocumentLocator(Locator l)
{
- if (index < 0 || index >= attributeCount)
- throw new ArrayIndexOutOfBoundsException ();
- return attributeDeclared [index];
+ docHandler.setDocumentLocator(l);
}
-
- /** @return false unless the attribute was declared in the DTD.
- * @throws java.lang.IllegalArgumentException
- * When the supplied names do not identify an attribute.
- */
- public boolean isDeclared (java.lang.String qName)
+
+ public void startDocument()
+ throws SAXException
{
- int index = getIndex (qName);
- if (index < 0)
- throw new IllegalArgumentException ();
- return attributeDeclared [index];
+ docHandler.startDocument();
}
-
- /** @return false unless the attribute was declared in the DTD.
- * @throws java.lang.IllegalArgumentException
- * When the supplied names do not identify an attribute.
- */
- public boolean isDeclared (java.lang.String uri, java.lang.String localName)
+
+ public void processingInstruction(String target, String data)
+ throws SAXException
{
- int index = getIndex (uri, localName);
- if (index < 0)
- throw new IllegalArgumentException ();
- return attributeDeclared [index];
+ docHandler.processingInstruction(target, data);
}
-
-
- /**
- * <b>SAX-ext Attributes2</b> method (don't invoke on parser);
- */
- public boolean isSpecified (int index)
+
+ public void startPrefixMapping(String prefix, String uri)
{
- if (index < 0 || index >= attributeCount)
- throw new ArrayIndexOutOfBoundsException ();
- return attributeSpecified [index];
+ /* ignored */
}
- /**
- * <b>SAX-ext Attributes2</b> method (don't invoke on parser);
- */
- public boolean isSpecified (String uri, String local)
+ public void startElement(String namespace,
+ String local,
+ String name,
+ Attributes attrs)
+ throws SAXException
{
- int index = getIndex (uri, local);
-
- if (index < 0)
- throw new IllegalArgumentException ();
- return attributeSpecified [index];
+ docHandler.startElement(name, (AttributeList) attrs);
}
- /**
- * <b>SAX-ext Attributes2</b> method (don't invoke on parser);
- */
- public boolean isSpecified (String xmlName)
+ public void characters(char[] buf, int offset, int len)
+ throws SAXException
{
- int index = getIndex (xmlName);
-
- if (index < 0)
- throw new IllegalArgumentException ();
- return attributeSpecified [index];
+ docHandler.characters(buf, offset, len);
}
-
- //
- // Implementation of org.xml.sax.Locator.
- //
-
- /**
- * <b>SAX Locator</b> method (don't invoke on parser);
- */
- public String getPublicId ()
+ public void ignorableWhitespace(char[] buf, int offset, int len)
+ throws SAXException
{
- return null; // FIXME track public IDs too
+ docHandler.ignorableWhitespace(buf, offset, len);
}
- /**
- * <b>SAX Locator</b> method (don't invoke on parser);
- */
- public String getSystemId ()
+ public void skippedEntity(String name)
{
- if (entityStack.empty ())
- return null;
- else
- return (String) entityStack.peek ();
+ /* ignored */
}
- /**
- * <b>SAX Locator</b> method (don't invoke on parser);
- */
- public int getLineNumber ()
+ public void endElement(String u, String l, String name)
+ throws SAXException
{
- return parser.getLineNumber ();
+ docHandler.endElement(name);
}
- /**
- * <b>SAX Locator</b> method (don't invoke on parser);
- */
- public int getColumnNumber ()
+ public void endPrefixMapping(String prefix)
{
- return parser.getColumnNumber ();
+ /* ignored */
}
- // adapter between SAX2 content handler and SAX1 document handler callbacks
- private static class Adapter implements ContentHandler
+ public void endDocument()
+ throws SAXException
{
- private DocumentHandler docHandler;
-
- Adapter (DocumentHandler dh)
- { docHandler = dh; }
-
-
- public void setDocumentLocator (Locator l)
- { docHandler.setDocumentLocator (l); }
-
- public void startDocument () throws SAXException
- { docHandler.startDocument (); }
-
- public void processingInstruction (String target, String data)
- throws SAXException
- { docHandler.processingInstruction (target, data); }
-
- public void startPrefixMapping (String prefix, String uri)
- { /* ignored */ }
-
- public void startElement (
- String namespace,
- String local,
- String name,
- Attributes attrs
- ) throws SAXException
- { docHandler.startElement (name, (AttributeList) attrs); }
-
- public void characters (char buf [], int offset, int len)
- throws SAXException
- { docHandler.characters (buf, offset, len); }
-
- public void ignorableWhitespace (char buf [], int offset, int len)
- throws SAXException
- { docHandler.ignorableWhitespace (buf, offset, len); }
-
- public void skippedEntity (String name)
- { /* ignored */ }
-
- public void endElement (String u, String l, String name)
- throws SAXException
- { docHandler.endElement (name); }
-
- public void endPrefixMapping (String prefix)
- { /* ignored */ }
-
- public void endDocument () throws SAXException
- { docHandler.endDocument (); }
+ docHandler.endDocument();
}
-}
-
-class Attribute
-{
+ }
+ private static class Attribute
+ {
+
String name;
String value;
String nameSpace;
String localName;
-
- Attribute(String name, String value)
+ boolean specified;
+
+ Attribute(String name, String value, boolean specified)
{
- this.name = name;
- this.value = value;
- this.nameSpace = "";
+ this.name = name;
+ this.value = value;
+ this.nameSpace = "";
+ this.specified = specified;
}
-}
+
+ }
+}
diff --git a/libjava/gnu/xml/aelfred2/XmlParser.java b/libjava/gnu/xml/aelfred2/XmlParser.java
index f4abf222993..e6f55e38c5b 100644
--- a/libjava/gnu/xml/aelfred2/XmlParser.java
+++ b/libjava/gnu/xml/aelfred2/XmlParser.java
@@ -53,6 +53,8 @@ Partly derived from code which carried the following notice:
package gnu.xml.aelfred2;
+import gnu.java.security.action.GetPropertyAction;
+
import java.io.BufferedInputStream;
import java.io.CharConversionException;
import java.io.EOFException;
@@ -63,12 +65,11 @@ import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
+import java.security.AccessController;
-// maintaining 1.1 compatibility for now ...
-// Iterator and Hashmap ought to be faster
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Stack;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.LinkedList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -86,1511 +87,1838 @@ import org.xml.sax.SAXException;
*/
final class XmlParser
{
- // avoid slow per-character readCh()
- private final static boolean USE_CHEATS = true;
-
-
- //////////////////////////////////////////////////////////////////////
- // Constructors.
- ////////////////////////////////////////////////////////////////////////
-
-
- /**
- * Construct a new parser with no associated handler.
- * @see #setHandler
- * @see #parse
- */
- // package private
- XmlParser ()
- {
- }
+ // avoid slow per-character readCh()
+ private final static boolean USE_CHEATS = true;
- /**
- * Set the handler that will receive parsing events.
- * @param handler The handler to receive callback events.
- * @see #parse
- */
- // package private
- void setHandler (SAXDriver handler)
- {
- this.handler = handler;
- }
-
-
- /**
- * Parse an XML document from the character stream, byte stream, or URI
- * that you provide (in that order of preference). Any URI that you
- * supply will become the base URI for resolving relative URI, and may
- * be used to acquire a reader or byte stream.
- *
- * <p> Only one thread at a time may use this parser; since it is
- * private to this package, post-parse cleanup is done by the caller,
- * which MUST NOT REUSE the parser (just null it).
- *
- * @param systemId Absolute URI of the document; should never be null,
- * but may be so iff a reader <em>or</em> a stream is provided.
- * @param publicId The public identifier of the document, or null.
- * @param reader A character stream; must be null if stream isn't.
- * @param stream A byte input stream; must be null if reader isn't.
- * @param encoding The suggested encoding, or null if unknown.
- * @exception java.lang.Exception Basically SAXException or IOException
- */
- // package private
- void doParse (
- String systemId,
- String publicId,
- Reader reader,
- InputStream stream,
- String encoding
- ) throws Exception
- {
- if (handler == null)
- throw new IllegalStateException ("no callback handler");
-
- initializeVariables ();
-
- // predeclare the built-in entities here (replacement texts)
- // we don't need to intern(), since we're guaranteed literals
- // are always (globally) interned.
- setInternalEntity ("amp", "&#38;");
- setInternalEntity ("lt", "&#60;");
- setInternalEntity ("gt", "&#62;");
- setInternalEntity ("apos", "&#39;");
- setInternalEntity ("quot", "&#34;");
-
- try {
- // pushURL first to ensure locator is correct in startDocument
- // ... it might report an IO or encoding exception.
- handler.startDocument ();
- pushURL (false, "[document]",
- // default baseURI: null
- new String [] { publicId, systemId, null},
- reader, stream, encoding, false);
-
- parseDocument ();
- } catch (EOFException e){
- //empty input
- error("empty document, with no root element.");
- }finally {
- if (reader != null)
- try { reader.close ();
- } catch (IOException e) { /* ignore */ }
- if (stream != null)
- try { stream.close ();
- } catch (IOException e) { /* ignore */ }
- if (is != null)
- try { is.close ();
- } catch (IOException e) { /* ignore */ }
- if (reader != null)
- try {
- reader.close ();
- } catch (IOException e) { /* ignore */
- }
- scratch = null;
- }
- }
-
-
- ////////////////////////////////////////////////////////////////////////
- // Constants.
- ////////////////////////////////////////////////////////////////////////
-
- //
- // Constants for element content type.
- //
-
- /**
- * Constant: an element has not been declared.
- * @see #getElementContentType
- */
- public final static int CONTENT_UNDECLARED = 0;
-
- /**
- * Constant: the element has a content model of ANY.
- * @see #getElementContentType
- */
- public final static int CONTENT_ANY = 1;
-
- /**
- * Constant: the element has declared content of EMPTY.
- * @see #getElementContentType
- */
- public final static int CONTENT_EMPTY = 2;
-
- /**
- * Constant: the element has mixed content.
- * @see #getElementContentType
- */
- public final static int CONTENT_MIXED = 3;
-
- /**
- * Constant: the element has element content.
- * @see #getElementContentType
- */
- public final static int CONTENT_ELEMENTS = 4;
-
-
- //
- // Constants for the entity type.
- //
-
- /**
- * Constant: the entity has not been declared.
- * @see #getEntityType
- */
- public final static int ENTITY_UNDECLARED = 0;
-
- /**
- * Constant: the entity is internal.
- * @see #getEntityType
- */
- public final static int ENTITY_INTERNAL = 1;
-
- /**
- * Constant: the entity is external, non-parsable data.
- * @see #getEntityType
- */
- public final static int ENTITY_NDATA = 2;
-
- /**
- * Constant: the entity is external XML data.
- * @see #getEntityType
- */
- public final static int ENTITY_TEXT = 3;
-
-
- //
- // Attribute type constants are interned literal strings.
- //
-
- //
- // Constants for supported encodings. "external" is just a flag.
- //
- private final static int ENCODING_EXTERNAL = 0;
- private final static int ENCODING_UTF_8 = 1;
- private final static int ENCODING_ISO_8859_1 = 2;
- private final static int ENCODING_UCS_2_12 = 3;
- private final static int ENCODING_UCS_2_21 = 4;
- private final static int ENCODING_UCS_4_1234 = 5;
- private final static int ENCODING_UCS_4_4321 = 6;
- private final static int ENCODING_UCS_4_2143 = 7;
- private final static int ENCODING_UCS_4_3412 = 8;
- private final static int ENCODING_ASCII = 9;
-
-
- //
- // Constants for attribute default value.
- //
-
- /**
- * Constant: the attribute is not declared.
- * @see #getAttributeDefaultValueType
- */
- public final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30;
-
- /**
- * Constant: the attribute has a literal default value specified.
- * @see #getAttributeDefaultValueType
- * @see #getAttributeDefaultValue
- */
- public final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31;
-
- /**
- * Constant: the attribute was declared #IMPLIED.
- * @see #getAttributeDefaultValueType
- */
- public final static int ATTRIBUTE_DEFAULT_IMPLIED = 32;
-
- /**
- * Constant: the attribute was declared #REQUIRED.
- * @see #getAttributeDefaultValueType
- */
- public final static int ATTRIBUTE_DEFAULT_REQUIRED = 33;
-
- /**
- * Constant: the attribute was declared #FIXED.
- * @see #getAttributeDefaultValueType
- * @see #getAttributeDefaultValue
- */
- public final static int ATTRIBUTE_DEFAULT_FIXED = 34;
-
-
- //
- // Constants for input.
- //
- private final static int INPUT_NONE = 0;
- private final static int INPUT_INTERNAL = 1;
- private final static int INPUT_STREAM = 3;
- private final static int INPUT_READER = 5;
-
-
- //
- // Flags for reading literals.
- //
- // expand general entity refs (attribute values in dtd and content)
- private final static int LIT_ENTITY_REF = 2;
- // normalize this value (space chars) (attributes, public ids)
- private final static int LIT_NORMALIZE = 4;
- // literal is an attribute value
- private final static int LIT_ATTRIBUTE = 8;
- // don't expand parameter entities
- private final static int LIT_DISABLE_PE = 16;
- // don't expand [or parse] character refs
- private final static int LIT_DISABLE_CREF = 32;
- // don't parse general entity refs
- private final static int LIT_DISABLE_EREF = 64;
- // literal is a public ID value
- private final static int LIT_PUBID = 256;
-
-
- //
- // Flags affecting PE handling in DTDs (if expandPE is true).
- // PEs expand with space padding, except inside literals.
- //
- private final static int CONTEXT_NORMAL = 0;
- private final static int CONTEXT_LITERAL = 1;
+ ////////////////////////////////////////////////////////////////////////
+ // Constants.
+ ////////////////////////////////////////////////////////////////////////
+
+ //
+ // Constants for element content type.
+ //
+
+ /**
+ * Constant: an element has not been declared.
+ * @see #getElementContentType
+ */
+ public final static int CONTENT_UNDECLARED = 0;
+
+ /**
+ * Constant: the element has a content model of ANY.
+ * @see #getElementContentType
+ */
+ public final static int CONTENT_ANY = 1;
+
+ /**
+ * Constant: the element has declared content of EMPTY.
+ * @see #getElementContentType
+ */
+ public final static int CONTENT_EMPTY = 2;
+
+ /**
+ * Constant: the element has mixed content.
+ * @see #getElementContentType
+ */
+ public final static int CONTENT_MIXED = 3;
+
+ /**
+ * Constant: the element has element content.
+ * @see #getElementContentType
+ */
+ public final static int CONTENT_ELEMENTS = 4;
+
+
+ //
+ // Constants for the entity type.
+ //
+
+ /**
+ * Constant: the entity has not been declared.
+ * @see #getEntityType
+ */
+ public final static int ENTITY_UNDECLARED = 0;
+
+ /**
+ * Constant: the entity is internal.
+ * @see #getEntityType
+ */
+ public final static int ENTITY_INTERNAL = 1;
+
+ /**
+ * Constant: the entity is external, non-parsable data.
+ * @see #getEntityType
+ */
+ public final static int ENTITY_NDATA = 2;
+
+ /**
+ * Constant: the entity is external XML data.
+ * @see #getEntityType
+ */
+ public final static int ENTITY_TEXT = 3;
+
+ //
+ // Attribute type constants are interned literal strings.
+ //
+
+ //
+ // Constants for supported encodings. "external" is just a flag.
+ //
+ private final static int ENCODING_EXTERNAL = 0;
+ private final static int ENCODING_UTF_8 = 1;
+ private final static int ENCODING_ISO_8859_1 = 2;
+ private final static int ENCODING_UCS_2_12 = 3;
+ private final static int ENCODING_UCS_2_21 = 4;
+ private final static int ENCODING_UCS_4_1234 = 5;
+ private final static int ENCODING_UCS_4_4321 = 6;
+ private final static int ENCODING_UCS_4_2143 = 7;
+ private final static int ENCODING_UCS_4_3412 = 8;
+ private final static int ENCODING_ASCII = 9;
+
+ //
+ // Constants for attribute default value.
+ //
+
+ /**
+ * Constant: the attribute is not declared.
+ * @see #getAttributeDefaultValueType
+ */
+ public final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30;
+
+ /**
+ * Constant: the attribute has a literal default value specified.
+ * @see #getAttributeDefaultValueType
+ * @see #getAttributeDefaultValue
+ */
+ public final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31;
+
+ /**
+ * Constant: the attribute was declared #IMPLIED.
+ * @see #getAttributeDefaultValueType
+ */
+ public final static int ATTRIBUTE_DEFAULT_IMPLIED = 32;
+
+ /**
+ * Constant: the attribute was declared #REQUIRED.
+ * @see #getAttributeDefaultValueType
+ */
+ public final static int ATTRIBUTE_DEFAULT_REQUIRED = 33;
+
+ /**
+ * Constant: the attribute was declared #FIXED.
+ * @see #getAttributeDefaultValueType
+ * @see #getAttributeDefaultValue
+ */
+ public final static int ATTRIBUTE_DEFAULT_FIXED = 34;
+
+ //
+ // Constants for input.
+ //
+ private final static int INPUT_NONE = 0;
+ private final static int INPUT_INTERNAL = 1;
+ private final static int INPUT_STREAM = 3;
+ private final static int INPUT_READER = 5;
+
+ //
+ // Flags for reading literals.
+ //
+ // expand general entity refs (attribute values in dtd and content)
+ private final static int LIT_ENTITY_REF = 2;
+ // normalize this value (space chars) (attributes, public ids)
+ private final static int LIT_NORMALIZE = 4;
+ // literal is an attribute value
+ private final static int LIT_ATTRIBUTE = 8;
+ // don't expand parameter entities
+ private final static int LIT_DISABLE_PE = 16;
+ // don't expand [or parse] character refs
+ private final static int LIT_DISABLE_CREF = 32;
+ // don't parse general entity refs
+ private final static int LIT_DISABLE_EREF = 64;
+ // literal is a public ID value
+ private final static int LIT_PUBID = 256;
+
+ //
+ // Flags affecting PE handling in DTDs (if expandPE is true).
+ // PEs expand with space padding, except inside literals.
+ //
+ private final static int CONTEXT_NORMAL = 0;
+ private final static int CONTEXT_LITERAL = 1;
+
+ // Emit warnings for relative URIs with no base URI.
+ static boolean uriWarnings;
+ static
+ {
+ String key = "gnu.xml.aelfred2.XmlParser.uriWarnings";
+ GetPropertyAction a = new GetPropertyAction(key);
+ uriWarnings = "true".equals(AccessController.doPrivileged(a));
+ }
+
+ //
+ // The current XML handler interface.
+ //
+ private SAXDriver handler;
+
+ //
+ // I/O information.
+ //
+ private Reader reader; // current reader
+ private InputStream is; // current input stream
+ private int line; // current line number
+ private int column; // current column number
+ private int sourceType; // type of input source
+ private LinkedList inputStack; // stack of input soruces
+ private URLConnection externalEntity; // current external entity
+ private int encoding; // current character encoding
+ private int currentByteCount; // bytes read from current source
+ private InputSource scratch; // temporary
+
+ //
+ // Buffers for decoded but unparsed character input.
+ //
+ private char[] readBuffer;
+ private int readBufferPos;
+ private int readBufferLength;
+ private int readBufferOverflow; // overflow from last data chunk.
+
+ //
+ // Buffer for undecoded raw byte input.
+ //
+ private final static int READ_BUFFER_MAX = 16384;
+ private byte[] rawReadBuffer;
+
+
+ //
+ // Buffer for attribute values, char refs, DTD stuff.
+ //
+ private static int DATA_BUFFER_INITIAL = 4096;
+ private char[] dataBuffer;
+ private int dataBufferPos;
+
+ //
+ // Buffer for parsed names.
+ //
+ private static int NAME_BUFFER_INITIAL = 1024;
+ private char[] nameBuffer;
+ private int nameBufferPos;
+
+ //
+ // Save any standalone flag
+ //
+ private boolean docIsStandalone;
+
+ //
+ // Hashtables for DTD information on elements, entities, and notations.
+ // Populated until we start ignoring decls (because of skipping a PE)
+ //
+ private HashMap elementInfo;
+ private HashMap entityInfo;
+ private HashMap notationInfo;
+ private boolean skippedPE;
+
+ //
+ // Element type currently in force.
+ //
+ private String currentElement;
+ private int currentElementContent;
+
+ //
+ // Stack of entity names, to detect recursion.
+ //
+ private LinkedList entityStack;
+
+ //
+ // PE expansion is enabled in most chunks of the DTD, not all.
+ // When it's enabled, literals are treated differently.
+ //
+ private boolean inLiteral;
+ private boolean expandPE;
+ private boolean peIsError;
+
+ //
+ // can't report entity expansion inside two constructs:
+ // - attribute expansions (internal entities only)
+ // - markup declarations (parameter entities only)
+ //
+ private boolean doReport;
+
+ //
+ // Symbol table, for caching interned names.
+ //
+ // These show up wherever XML names or nmtokens are used: naming elements,
+ // attributes, PIs, notations, entities, and enumerated attribute values.
+ //
+ // NOTE: This hashtable doesn't grow. The default size is intended to be
+ // rather large for most documents. Example: one snapshot of the DocBook
+ // XML 4.1 DTD used only about 350 such names. As a rule, only pathological
+ // documents (ones that don't reuse names) should ever see much collision.
+ //
+ // Be sure that SYMBOL_TABLE_LENGTH always stays prime, for best hashing.
+ // "2039" keeps the hash table size at about two memory pages on typical
+ // 32 bit hardware.
+ //
+ private final static int SYMBOL_TABLE_LENGTH = 2039;
+
+ private Object[][] symbolTable;
+
+ //
+ // Hash table of attributes found in current start tag.
+ //
+ private String[] tagAttributes;
+ private int tagAttributePos;
+
+ //
+ // Utility flag: have we noticed a CR while reading the last
+ // data chunk? If so, we will have to go back and normalise
+ // CR or CR/LF line ends.
+ //
+ private boolean sawCR;
+
+ //
+ // Utility flag: are we in CDATA? If so, whitespace isn't ignorable.
+ //
+ private boolean inCDATA;
+
+ //
+ // Xml version.
+ //
+ private static final int XML_10 = 0;
+ private static final int XML_11 = 1;
+ private int xmlVersion = XML_10;
+
+ //////////////////////////////////////////////////////////////////////
+ // Constructors.
+ ////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Construct a new parser with no associated handler.
+ * @see #setHandler
+ * @see #parse
+ */
+ // package private
+ XmlParser()
+ {
+ }
+ /**
+ * Set the handler that will receive parsing events.
+ * @param handler The handler to receive callback events.
+ * @see #parse
+ */
+ // package private
+ void setHandler(SAXDriver handler)
+ {
+ this.handler = handler;
+ }
- //////////////////////////////////////////////////////////////////////
- // Error reporting.
- //////////////////////////////////////////////////////////////////////
+ /**
+ * Parse an XML document from the character stream, byte stream, or URI
+ * that you provide (in that order of preference). Any URI that you
+ * supply will become the base URI for resolving relative URI, and may
+ * be used to acquire a reader or byte stream.
+ *
+ * <p> Only one thread at a time may use this parser; since it is
+ * private to this package, post-parse cleanup is done by the caller,
+ * which MUST NOT REUSE the parser (just null it).
+ *
+ * @param systemId Absolute URI of the document; should never be null,
+ * but may be so iff a reader <em>or</em> a stream is provided.
+ * @param publicId The public identifier of the document, or null.
+ * @param reader A character stream; must be null if stream isn't.
+ * @param stream A byte input stream; must be null if reader isn't.
+ * @param encoding The suggested encoding, or null if unknown.
+ * @exception java.lang.Exception Basically SAXException or IOException
+ */
+ // package private
+ void doParse(String systemId, String publicId, Reader reader,
+ InputStream stream, String encoding)
+ throws Exception
+ {
+ if (handler == null)
+ {
+ throw new IllegalStateException("no callback handler");
+ }
+ initializeVariables();
+
+ // predeclare the built-in entities here (replacement texts)
+ // we don't need to intern(), since we're guaranteed literals
+ // are always (globally) interned.
+ setInternalEntity("amp", "&#38;");
+ setInternalEntity("lt", "&#60;");
+ setInternalEntity("gt", "&#62;");
+ setInternalEntity("apos", "&#39;");
+ setInternalEntity("quot", "&#34;");
+
+ try
+ {
+ // pushURL first to ensure locator is correct in startDocument
+ // ... it might report an IO or encoding exception.
+ handler.startDocument();
+ pushURL(false, "[document]",
+ // default baseURI: null
+ new ExternalIdentifiers(publicId, systemId, null),
+ reader, stream, encoding, false);
+
+ parseDocument();
+ }
+ catch (EOFException e)
+ {
+ //empty input
+ error("empty document, with no root element.");
+ }
+ finally
+ {
+ if (reader != null)
+ {
+ try
+ {
+ reader.close();
+ }
+ catch (IOException e)
+ {
+ /* ignore */
+ }
+ }
+ if (stream != null)
+ {
+ try
+ {
+ stream.close();
+ }
+ catch (IOException e)
+ {
+ /* ignore */
+ }
+ }
+ if (is != null)
+ {
+ try
+ {
+ is.close();
+ }
+ catch (IOException e)
+ {
+ /* ignore */
+ }
+ }
+ scratch = null;
+ }
+ }
- /**
- * Report an error.
- * @param message The error message.
- * @param textFound The text that caused the error (or null).
- * @see SAXDriver#error
- * @see #line
- */
- private void error (String message, String textFound, String textExpected)
+ //////////////////////////////////////////////////////////////////////
+ // Error reporting.
+ //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Report an error.
+ * @param message The error message.
+ * @param textFound The text that caused the error (or null).
+ * @see SAXDriver#error
+ * @see #line
+ */
+ private void error(String message, String textFound, String textExpected)
throws SAXException
- {
- if (textFound != null) {
- message = message + " (found \"" + textFound + "\")";
- }
- if (textExpected != null) {
- message = message + " (expected \"" + textExpected + "\")";
- }
- handler.fatal (message);
-
- // "can't happen"
- throw new SAXException (message);
- }
-
+ {
+ if (textFound != null)
+ {
+ message = message + " (found \"" + textFound + "\")";
+ }
+ if (textExpected != null)
+ {
+ message = message + " (expected \"" + textExpected + "\")";
+ }
+ handler.fatal(message);
+
+ // "can't happen"
+ throw new SAXException(message);
+ }
- /**
- * Report a serious error.
- * @param message The error message.
- * @param textFound The text that caused the error (or null).
- */
- private void error (String message, char textFound, String textExpected)
+ /**
+ * Report a serious error.
+ * @param message The error message.
+ * @param textFound The text that caused the error (or null).
+ */
+ private void error(String message, char textFound, String textExpected)
throws SAXException
- {
- error (message, new Character (textFound).toString (), textExpected);
- }
+ {
+ error(message, new Character(textFound).toString(), textExpected);
+ }
- /** Report typical case fatal errors. */
- private void error (String message)
+ /**
+ * Report typical case fatal errors.
+ */
+ private void error(String message)
throws SAXException
- {
- handler.fatal (message);
- }
-
-
- //////////////////////////////////////////////////////////////////////
- // Major syntactic productions.
- //////////////////////////////////////////////////////////////////////
+ {
+ handler.fatal(message);
+ }
+ //////////////////////////////////////////////////////////////////////
+ // Major syntactic productions.
+ //////////////////////////////////////////////////////////////////////
- /**
- * Parse an XML document.
- * <pre>
- * [1] document ::= prolog element Misc*
- * </pre>
- * <p>This is the top-level parsing function for a single XML
- * document. As a minimum, a well-formed document must have
- * a document element, and a valid document must have a prolog
- * (one with doctype) as well.
- */
- private void parseDocument ()
+ /**
+ * Parse an XML document.
+ * <pre>
+ * [1] document ::= prolog element Misc*
+ * </pre>
+ * <p>This is the top-level parsing function for a single XML
+ * document. As a minimum, a well-formed document must have
+ * a document element, and a valid document must have a prolog
+ * (one with doctype) as well.
+ */
+ private void parseDocument()
throws Exception
- {
- try { // added by MHK
- boolean sawDTD = parseProlog ();
- require ('<');
- parseElement (!sawDTD);
- } catch (EOFException ee) { // added by MHK
- error("premature end of file", "[EOF]", null);
- }
-
- try {
- parseMisc (); //skip all white, PIs, and comments
- char c = readCh (); //if this doesn't throw an exception...
- error ("unexpected characters after document end", c, null);
- } catch (EOFException e) {
- return;
- }
- }
-
- static final char startDelimComment [] = { '<', '!', '-', '-' };
- static final char endDelimComment [] = { '-', '-' };
+ {
+ try
+ { // added by MHK
+ boolean sawDTD = parseProlog();
+ require('<');
+ parseElement(!sawDTD);
+ }
+ catch (EOFException ee)
+ { // added by MHK
+ error("premature end of file", "[EOF]", null);
+ }
+
+ try
+ {
+ parseMisc(); //skip all white, PIs, and comments
+ char c = readCh(); //if this doesn't throw an exception...
+ error("unexpected characters after document end", c, null);
+ }
+ catch (EOFException e)
+ {
+ return;
+ }
+ }
+
+ static final char[] startDelimComment = { '<', '!', '-', '-' };
+ static final char[] endDelimComment = { '-', '-' };
- /**
- * Skip a comment.
- * <pre>
- * [15] Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* "-->"
- * </pre>
- * <p> (The <code>&lt;!--</code> has already been read.)
- */
- private void parseComment ()
+ /**
+ * Skip a comment.
+ * <pre>
+ * [15] Comment ::= '&lt;!--' ((Char - '-') | ('-' (Char - '-')))* "-->"
+ * </pre>
+ * <p> (The <code>&lt;!--</code> has already been read.)
+ */
+ private void parseComment()
throws Exception
- {
- char c;
- boolean saved = expandPE;
-
- expandPE = false;
- parseUntil (endDelimComment);
- require ('>');
- expandPE = saved;
- handler.comment (dataBuffer, 0, dataBufferPos);
- dataBufferPos = 0;
- }
+ {
+ char c;
+ boolean saved = expandPE;
+
+ expandPE = false;
+ parseUntil(endDelimComment);
+ require('>');
+ expandPE = saved;
+ handler.comment(dataBuffer, 0, dataBufferPos);
+ dataBufferPos = 0;
+ }
+
+ static final char[] startDelimPI = { '<', '?' };
+ static final char[] endDelimPI = { '?', '>' };
- static final char startDelimPI [] = { '<', '?' };
- static final char endDelimPI [] = { '?', '>' };
-
- /**
- * Parse a processing instruction and do a call-back.
- * <pre>
- * [16] PI ::= '&lt;?' PITarget
- * (S (Char* - (Char* '?&gt;' Char*)))?
- * '?&gt;'
- * [17] PITarget ::= Name - ( ('X'|'x') ('M'|m') ('L'|l') )
- * </pre>
- * <p> (The <code>&lt;?</code> has already been read.)
- */
- private void parsePI ()
+ /**
+ * Parse a processing instruction and do a call-back.
+ * <pre>
+ * [16] PI ::= '&lt;?' PITarget
+ * (S (Char* - (Char* '?&gt;' Char*)))?
+ * '?&gt;'
+ * [17] PITarget ::= Name - ( ('X'|'x') ('M'|m') ('L'|l') )
+ * </pre>
+ * <p> (The <code>&lt;?</code> has already been read.)
+ */
+ private void parsePI()
throws SAXException, IOException
- {
- String name;
- boolean saved = expandPE;
-
- expandPE = false;
- name = readNmtoken (true);
- //NE08
- if (name.indexOf(':') >= 0)
- error ("Illegal character(':') in processing instruction name ", name, null);
- if ("xml".equalsIgnoreCase (name))
- error ("Illegal processing instruction target", name, null);
- if (!tryRead (endDelimPI)) {
- requireWhitespace ();
- parseUntil (endDelimPI);
- }
- expandPE = saved;
- handler.processingInstruction (name, dataBufferToString ());
- }
-
-
- static final char endDelimCDATA [] = { ']', ']', '>' };
+ {
+ String name;
+ boolean saved = expandPE;
+
+ expandPE = false;
+ name = readNmtoken(true);
+ //NE08
+ if (name.indexOf(':') >= 0)
+ {
+ error("Illegal character(':') in processing instruction name ",
+ name, null);
+ }
+ if ("xml".equalsIgnoreCase(name))
+ {
+ error("Illegal processing instruction target", name, null);
+ }
+ if (!tryRead(endDelimPI))
+ {
+ requireWhitespace();
+ parseUntil(endDelimPI);
+ }
+ expandPE = saved;
+ handler.processingInstruction(name, dataBufferToString());
+ }
+
+ static final char[] endDelimCDATA = { ']', ']', '>' };
- private boolean isDirtyCurrentElement;
+ private boolean isDirtyCurrentElement;
- /**
- * Parse a CDATA section.
- * <pre>
- * [18] CDSect ::= CDStart CData CDEnd
- * [19] CDStart ::= '&lt;![CDATA['
- * [20] CData ::= (Char* - (Char* ']]&gt;' Char*))
- * [21] CDEnd ::= ']]&gt;'
- * </pre>
- * <p> (The '&lt;![CDATA[' has already been read.)
- */
- private void parseCDSect ()
+ /**
+ * Parse a CDATA section.
+ * <pre>
+ * [18] CDSect ::= CDStart CData CDEnd
+ * [19] CDStart ::= '&lt;![CDATA['
+ * [20] CData ::= (Char* - (Char* ']]&gt;' Char*))
+ * [21] CDEnd ::= ']]&gt;'
+ * </pre>
+ * <p> (The '&lt;![CDATA[' has already been read.)
+ */
+ private void parseCDSect()
throws Exception
- {
- parseUntil (endDelimCDATA);
- dataBufferFlush ();
- }
-
+ {
+ parseUntil(endDelimCDATA);
+ dataBufferFlush();
+ }
- /**
- * Parse the prolog of an XML document.
- * <pre>
- * [22] prolog ::= XMLDecl? Misc* (Doctypedecl Misc*)?
- * </pre>
- * <p>We do not look for the XML declaration here, because it was
- * handled by pushURL ().
- * @see pushURL
- * @return true if a DTD was read.
- */
- private boolean parseProlog ()
+ /**
+ * Parse the prolog of an XML document.
+ * <pre>
+ * [22] prolog ::= XMLDecl? Misc* (Doctypedecl Misc*)?
+ * </pre>
+ * <p>We do not look for the XML declaration here, because it was
+ * handled by pushURL ().
+ * @see pushURL
+ * @return true if a DTD was read.
+ */
+ private boolean parseProlog()
throws Exception
- {
- parseMisc ();
-
- if (tryRead ("<!DOCTYPE")) {
- parseDoctypedecl ();
- parseMisc ();
- return true;
- }
- return false;
- }
+ {
+ parseMisc();
- private void checkLegalVersion (String version)
- throws SAXException
- {
- int len = version.length ();
- for (int i = 0; i < len; i++) {
- char c = version.charAt (i);
- if ('0' <= c && c <= '9')
- continue;
- if (c == '_' || c == '.' || c == ':' || c == '-')
- continue;
- if ('a' <= c && c <= 'z')
- continue;
- if ('A' <= c && c <= 'Z')
- continue;
- error ("illegal character in version", version, "1.0");
- }
- }
+ if (tryRead("<!DOCTYPE"))
+ {
+ parseDoctypedecl();
+ parseMisc();
+ return true;
+ }
+ return false;
+ }
+ private void checkLegalVersion(String version)
+ throws SAXException
+ {
+ int len = version.length();
+ for (int i = 0; i < len; i++)
+ {
+ char c = version.charAt(i);
+ if ('0' <= c && c <= '9')
+ {
+ continue;
+ }
+ if (c == '_' || c == '.' || c == ':' || c == '-')
+ {
+ continue;
+ }
+ if ('a' <= c && c <= 'z')
+ {
+ continue;
+ }
+ if ('A' <= c && c <= 'Z')
+ {
+ continue;
+ }
+ error ("illegal character in version", version, "1.0");
+ }
+ }
- /**
- * Parse the XML declaration.
- * <pre>
- * [23] XMLDecl ::= '&lt;?xml' VersionInfo EncodingDecl? SDDecl? S? '?&gt;'
- * [24] VersionInfo ::= S 'version' Eq
- * ("'" VersionNum "'" | '"' VersionNum '"' )
- * [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')*
- * [32] SDDecl ::= S 'standalone' Eq
- * ( "'"" ('yes' | 'no') "'"" | '"' ("yes" | "no") '"' )
- * [80] EncodingDecl ::= S 'encoding' Eq
- * ( "'" EncName "'" | "'" EncName "'" )
- * [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
- * </pre>
- * <p> (The <code>&lt;?xml</code> and whitespace have already been read.)
- * @return the encoding in the declaration, uppercased; or null
- * @see #parseTextDecl
- * @see #setupDecoding
- */
- private String parseXMLDecl (boolean ignoreEncoding)
+ /**
+ * Parse the XML declaration.
+ * <pre>
+ * [23] XMLDecl ::= '&lt;?xml' VersionInfo EncodingDecl? SDDecl? S? '?&gt;'
+ * [24] VersionInfo ::= S 'version' Eq
+ * ("'" VersionNum "'" | '"' VersionNum '"' )
+ * [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')*
+ * [32] SDDecl ::= S 'standalone' Eq
+ * ( "'"" ('yes' | 'no') "'"" | '"' ("yes" | "no") '"' )
+ * [80] EncodingDecl ::= S 'encoding' Eq
+ * ( "'" EncName "'" | "'" EncName "'" )
+ * [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
+ * </pre>
+ * <p> (The <code>&lt;?xml</code> and whitespace have already been read.)
+ * @return the encoding in the declaration, uppercased; or null
+ * @see #parseTextDecl
+ * @see #setupDecoding
+ */
+ private String parseXMLDecl(boolean ignoreEncoding)
throws SAXException, IOException
- {
- String version;
- String encodingName = null;
- String standalone = null;
- int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
- String inputEncoding = null;
+ {
+ String version;
+ String encodingName = null;
+ String standalone = null;
+ int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
+ String inputEncoding = null;
- switch (this.encoding)
+ switch (this.encoding)
+ {
+ case ENCODING_EXTERNAL:
+ case ENCODING_UTF_8:
+ inputEncoding = "UTF-8";
+ break;
+ case ENCODING_ISO_8859_1:
+ inputEncoding = "ISO-8859-1";
+ break;
+ case ENCODING_UCS_2_12:
+ inputEncoding = "UTF-16BE";
+ break;
+ case ENCODING_UCS_2_21:
+ inputEncoding = "UTF-16LE";
+ break;
+ }
+
+ // Read the version.
+ require("version");
+ parseEq();
+ checkLegalVersion(version = readLiteral(flags));
+ if (!version.equals("1.0"))
+ {
+ if (version.equals("1.1"))
{
- case ENCODING_EXTERNAL:
- case ENCODING_UTF_8:
- inputEncoding = "UTF-8";
- break;
- case ENCODING_ISO_8859_1:
- inputEncoding = "ISO-8859-1";
- break;
- case ENCODING_UCS_2_12:
- inputEncoding = "UTF-16BE";
- break;
- case ENCODING_UCS_2_21:
- inputEncoding = "UTF-16LE";
- break;
+ handler.warn("expected XML version 1.0, not: " + version);
+ xmlVersion = XML_11;
+ }
+ else
+ {
+ error("illegal XML version", version, "1.0 or 1.1");
}
+ }
+ else
+ {
+ xmlVersion = XML_10;
+ }
+ // Try reading an encoding declaration.
+ boolean white = tryWhitespace();
+
+ if (tryRead("encoding"))
+ {
+ if (!white)
+ {
+ error("whitespace required before 'encoding='");
+ }
+ parseEq();
+ encodingName = readLiteral(flags);
+ if (!ignoreEncoding)
+ {
+ setupDecoding(encodingName);
+ }
+ }
+
+ // Try reading a standalone declaration
+ if (encodingName != null)
+ {
+ white = tryWhitespace();
+ }
+ if (tryRead("standalone"))
+ {
+ if (!white)
+ {
+ error("whitespace required before 'standalone='");
+ }
+ parseEq();
+ standalone = readLiteral(flags);
+ if ("yes".equals(standalone))
+ {
+ docIsStandalone = true;
+ }
+ else if (!"no".equals(standalone))
+ {
+ error("standalone flag must be 'yes' or 'no'");
+ }
+ }
- // Read the version.
- require ("version");
- parseEq ();
- checkLegalVersion (version = readLiteral (flags));
- if (!version.equals ("1.0")){
- if(version.equals ("1.1")){
- handler.warn ("expected XML version 1.0, not: " + version);
- xmlVersion = XML_11;
- }else {
- error("illegal XML version", version, "1.0 or 1.1");
- }
- }
- else
- xmlVersion = XML_10;
- // Try reading an encoding declaration.
- boolean white = tryWhitespace ();
-
- if (tryRead ("encoding")) {
- if (!white)
- error ("whitespace required before 'encoding='");
- parseEq ();
- encodingName = readLiteral (flags);
- if (!ignoreEncoding)
- setupDecoding (encodingName);
- }
-
- // Try reading a standalone declaration
- if (encodingName != null)
- white = tryWhitespace ();
- if (tryRead ("standalone")) {
- if (!white)
- error ("whitespace required before 'standalone='");
- parseEq ();
- standalone = readLiteral (flags);
- if ("yes".equals (standalone))
- docIsStandalone = true;
- else if (!"no".equals (standalone))
- error ("standalone flag must be 'yes' or 'no'");
- }
-
- skipWhitespace ();
- require ("?>");
-
- if (inputEncoding == null)
- {
- inputEncoding = encodingName;
- }
- handler.xmlDecl(version, encodingName, "yes".equals(standalone),
- inputEncoding);
-
- return encodingName;
- }
+ skipWhitespace();
+ require("?>");
+ if (inputEncoding == null)
+ {
+ inputEncoding = encodingName;
+ }
+ handler.xmlDecl(version, encodingName, docIsStandalone,
+ inputEncoding);
+
+ return encodingName;
+ }
- /**
- * Parse a text declaration.
- * <pre>
- * [79] TextDecl ::= '&lt;?xml' VersionInfo? EncodingDecl S? '?&gt;'
- * [80] EncodingDecl ::= S 'encoding' Eq
- * ( '"' EncName '"' | "'" EncName "'" )
- * [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
- * </pre>
- * <p> (The <code>&lt;?xml</code>' and whitespace have already been read.)
- * @return the encoding in the declaration, uppercased; or null
- * @see #parseXMLDecl
- * @see #setupDecoding
- */
- private String parseTextDecl (boolean ignoreEncoding)
+ /**
+ * Parse a text declaration.
+ * <pre>
+ * [79] TextDecl ::= '&lt;?xml' VersionInfo? EncodingDecl S? '?&gt;'
+ * [80] EncodingDecl ::= S 'encoding' Eq
+ * ( '"' EncName '"' | "'" EncName "'" )
+ * [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
+ * </pre>
+ * <p> (The <code>&lt;?xml</code>' and whitespace have already been read.)
+ * @return the encoding in the declaration, uppercased; or null
+ * @see #parseXMLDecl
+ * @see #setupDecoding
+ */
+ private String parseTextDecl(boolean ignoreEncoding)
throws SAXException, IOException
- {
- String encodingName = null;
- int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
-
- // Read an optional version.
- if (tryRead ("version")) {
- String version;
- parseEq ();
- checkLegalVersion (version = readLiteral (flags));
-
- if (version.equals ("1.1")){
- if (xmlVersion == XML_10){
- error ("external subset has later version number.", "1.0", version);
- }
- handler.warn ("expected XML version 1.0, not: " + version);
- xmlVersion = XML_11;
- }else if(!version.equals ("1.0")) {
- error("illegal XML version", version, "1.0 or 1.1");
- }
- requireWhitespace ();
- }
-
-
- // Read the encoding.
- require ("encoding");
- parseEq ();
- encodingName = readLiteral (flags);
- if (!ignoreEncoding)
- setupDecoding (encodingName);
-
- skipWhitespace ();
- require ("?>");
-
- return encodingName;
- }
-
+ {
+ String encodingName = null;
+ int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
+
+ // Read an optional version.
+ if (tryRead ("version"))
+ {
+ String version;
+ parseEq();
+ checkLegalVersion(version = readLiteral(flags));
+
+ if (version.equals("1.1"))
+ {
+ if (xmlVersion == XML_10)
+ {
+ error("external subset has later version number.", "1.0",
+ version);
+ }
+ handler.warn("expected XML version 1.0, not: " + version);
+ xmlVersion = XML_11;
+ }
+ else if (!version.equals("1.0"))
+ {
+ error("illegal XML version", version, "1.0 or 1.1");
+ }
+ requireWhitespace();
+ }
+
+ // Read the encoding.
+ require("encoding");
+ parseEq();
+ encodingName = readLiteral(flags);
+ if (!ignoreEncoding)
+ {
+ setupDecoding(encodingName);
+ }
+ skipWhitespace();
+ require("?>");
+
+ return encodingName;
+ }
- /**
- * Sets up internal state so that we can decode an entity using the
- * specified encoding. This is used when we start to read an entity
- * and we have been given knowledge of its encoding before we start to
- * read any data (e.g. from a SAX input source or from a MIME type).
- *
- * <p> It is also used after autodetection, at which point only very
- * limited adjustments to the encoding may be used (switching between
- * related builtin decoders).
- *
- * @param encodingName The name of the encoding specified by the user.
- * @exception IOException if the encoding isn't supported either
- * internally to this parser, or by the hosting JVM.
- * @see #parseXMLDecl
- * @see #parseTextDecl
+ /**
+ * Sets up internal state so that we can decode an entity using the
+ * specified encoding. This is used when we start to read an entity
+ * and we have been given knowledge of its encoding before we start to
+ * read any data (e.g. from a SAX input source or from a MIME type).
+ *
+ * <p> It is also used after autodetection, at which point only very
+ * limited adjustments to the encoding may be used (switching between
+ * related builtin decoders).
+ *
+ * @param encodingName The name of the encoding specified by the user.
+ * @exception IOException if the encoding isn't supported either
+ * internally to this parser, or by the hosting JVM.
+ * @see #parseXMLDecl
+ * @see #parseTextDecl
*/
- private void setupDecoding (String encodingName)
+ private void setupDecoding(String encodingName)
throws SAXException, IOException
- {
- encodingName = encodingName.toUpperCase ();
-
- // ENCODING_EXTERNAL indicates an encoding that wasn't
- // autodetected ... we can use builtin decoders, or
- // ones from the JVM (InputStreamReader).
-
- // Otherwise we can only tweak what was autodetected, and
- // only for single byte (ASCII derived) builtin encodings.
-
- // ASCII-derived encodings
- if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL) {
- if (encodingName.equals ("ISO-8859-1")
- || encodingName.equals ("8859_1")
- || encodingName.equals ("ISO8859_1")
- ) {
- encoding = ENCODING_ISO_8859_1;
- return;
- } else if (encodingName.equals ("US-ASCII")
- || encodingName.equals ("ASCII")) {
- encoding = ENCODING_ASCII;
- return;
- } else if (encodingName.equals ("UTF-8")
- || encodingName.equals ("UTF8")) {
- encoding = ENCODING_UTF_8;
- return;
- } else if (encoding != ENCODING_EXTERNAL) {
- // used to start with a new reader ...
- throw new UnsupportedEncodingException (encodingName);
- }
- // else fallthrough ...
- // it's ASCII-ish and something other than a builtin
- }
-
- // Unicode and such
- if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21) {
- if (!(encodingName.equals ("ISO-10646-UCS-2")
- || encodingName.equals ("UTF-16")
- || encodingName.equals ("UTF-16BE")
- || encodingName.equals ("UTF-16LE")))
- error ("unsupported Unicode encoding",
- encodingName,
- "UTF-16");
- return;
- }
-
- // four byte encodings
- if (encoding == ENCODING_UCS_4_1234
- || encoding == ENCODING_UCS_4_4321
- || encoding == ENCODING_UCS_4_2143
- || encoding == ENCODING_UCS_4_3412) {
- // Strictly: "UCS-4" == "UTF-32BE"; also, "UTF-32LE" exists
- if (!encodingName.equals ("ISO-10646-UCS-4"))
- error ("unsupported 32-bit encoding",
- encodingName,
- "ISO-10646-UCS-4");
- return;
- }
-
- // assert encoding == ENCODING_EXTERNAL
- // if (encoding != ENCODING_EXTERNAL)
- // throw new RuntimeException ("encoding = " + encoding);
-
- if (encodingName.equals ("UTF-16BE")) {
- encoding = ENCODING_UCS_2_12;
- return;
- }
- if (encodingName.equals ("UTF-16LE")) {
- encoding = ENCODING_UCS_2_21;
- return;
- }
-
- // We couldn't use the builtin decoders at all. But we can try to
- // create a reader, since we haven't messed up buffering. Tweak
- // the encoding name if necessary.
-
- if (encodingName.equals ("UTF-16")
- || encodingName.equals ("ISO-10646-UCS-2"))
- encodingName = "Unicode";
- // Ignoring all the EBCDIC aliases here
-
- reader = new InputStreamReader (is, encodingName);
- sourceType = INPUT_READER;
- }
-
-
- /**
- * Parse miscellaneous markup outside the document element and DOCTYPE
- * declaration.
- * <pre>
- * [27] Misc ::= Comment | PI | S
- * </pre>
- */
- private void parseMisc ()
+ {
+ encodingName = encodingName.toUpperCase();
+
+ // ENCODING_EXTERNAL indicates an encoding that wasn't
+ // autodetected ... we can use builtin decoders, or
+ // ones from the JVM (InputStreamReader).
+
+ // Otherwise we can only tweak what was autodetected, and
+ // only for single byte (ASCII derived) builtin encodings.
+
+ // ASCII-derived encodings
+ if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL)
+ {
+ if (encodingName.equals("ISO-8859-1")
+ || encodingName.equals("8859_1")
+ || encodingName.equals("ISO8859_1"))
+ {
+ encoding = ENCODING_ISO_8859_1;
+ return;
+ }
+ else if (encodingName.equals("US-ASCII")
+ || encodingName.equals("ASCII"))
+ {
+ encoding = ENCODING_ASCII;
+ return;
+ }
+ else if (encodingName.equals("UTF-8")
+ || encodingName.equals("UTF8"))
+ {
+ encoding = ENCODING_UTF_8;
+ return;
+ }
+ else if (encoding != ENCODING_EXTERNAL)
+ {
+ // used to start with a new reader ...
+ throw new UnsupportedEncodingException(encodingName);
+ }
+ // else fallthrough ...
+ // it's ASCII-ish and something other than a builtin
+ }
+
+ // Unicode and such
+ if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21)
+ {
+ if (!(encodingName.equals("ISO-10646-UCS-2")
+ || encodingName.equals("UTF-16")
+ || encodingName.equals("UTF-16BE")
+ || encodingName.equals("UTF-16LE")))
+ {
+ error("unsupported Unicode encoding", encodingName, "UTF-16");
+ }
+ return;
+ }
+
+ // four byte encodings
+ if (encoding == ENCODING_UCS_4_1234
+ || encoding == ENCODING_UCS_4_4321
+ || encoding == ENCODING_UCS_4_2143
+ || encoding == ENCODING_UCS_4_3412)
+ {
+ // Strictly: "UCS-4" == "UTF-32BE"; also, "UTF-32LE" exists
+ if (!encodingName.equals("ISO-10646-UCS-4"))
+ {
+ error("unsupported 32-bit encoding", encodingName,
+ "ISO-10646-UCS-4");
+ }
+ return;
+ }
+
+ // assert encoding == ENCODING_EXTERNAL
+ // if (encoding != ENCODING_EXTERNAL)
+ // throw new RuntimeException ("encoding = " + encoding);
+
+ if (encodingName.equals("UTF-16BE"))
+ {
+ encoding = ENCODING_UCS_2_12;
+ return;
+ }
+ if (encodingName.equals("UTF-16LE"))
+ {
+ encoding = ENCODING_UCS_2_21;
+ return;
+ }
+
+ // We couldn't use the builtin decoders at all. But we can try to
+ // create a reader, since we haven't messed up buffering. Tweak
+ // the encoding name if necessary.
+
+ if (encodingName.equals("UTF-16")
+ || encodingName.equals("ISO-10646-UCS-2"))
+ {
+ encodingName = "Unicode";
+ }
+ // Ignoring all the EBCDIC aliases here
+
+ reader = new InputStreamReader(is, encodingName);
+ sourceType = INPUT_READER;
+ }
+
+ /**
+ * Parse miscellaneous markup outside the document element and DOCTYPE
+ * declaration.
+ * <pre>
+ * [27] Misc ::= Comment | PI | S
+ * </pre>
+ */
+ private void parseMisc()
throws Exception
- {
- while (true) {
- skipWhitespace ();
- if (tryRead (startDelimPI)) {
- parsePI ();
- } else if (tryRead (startDelimComment)) {
- parseComment ();
- } else {
- return;
- }
- }
- }
-
+ {
+ while (true)
+ {
+ skipWhitespace();
+ if (tryRead(startDelimPI))
+ {
+ parsePI();
+ }
+ else if (tryRead(startDelimComment))
+ {
+ parseComment();
+ }
+ else
+ {
+ return;
+ }
+ }
+ }
- /**
- * Parse a document type declaration.
- * <pre>
- * [28] doctypedecl ::= '&lt;!DOCTYPE' S Name (S ExternalID)? S?
- * ('[' (markupdecl | PEReference | S)* ']' S?)? '&gt;'
- * </pre>
- * <p> (The <code>&lt;!DOCTYPE</code> has already been read.)
- */
- private void parseDoctypedecl ()
+ /**
+ * Parse a document type declaration.
+ * <pre>
+ * [28] doctypedecl ::= '&lt;!DOCTYPE' S Name (S ExternalID)? S?
+ * ('[' (markupdecl | PEReference | S)* ']' S?)? '&gt;'
+ * </pre>
+ * <p> (The <code>&lt;!DOCTYPE</code> has already been read.)
+ */
+ private void parseDoctypedecl()
throws Exception
- {
- String rootName, ids[];
-
- // Read the document type name.
- requireWhitespace ();
- rootName = readNmtoken (true);
-
- // Read the External subset's IDs
- skipWhitespace ();
- ids = readExternalIds (false, true);
-
- // report (a) declaration of name, (b) lexical info (ids)
- handler.doctypeDecl (rootName, ids [0], ids [1]);
-
- // Internal subset is parsed first, if present
- skipWhitespace ();
- if (tryRead ('[')) {
-
- // loop until the subset ends
- while (true) {
- doReport = expandPE = true;
- skipWhitespace ();
- doReport = expandPE = false;
- if (tryRead (']')) {
- break; // end of subset
- } else {
- // WFC, PEs in internal subset (only between decls)
- peIsError = expandPE = true;
- parseMarkupdecl ();
- peIsError = expandPE = false;
- }
- }
- }
- skipWhitespace ();
- require ('>');
-
- // Read the external subset, if any
- InputSource subset;
-
- if (ids [1] == null)
- subset = handler.getExternalSubset (rootName,
- handler.getSystemId ());
- else
- subset = null;
- if (ids [1] != null || subset != null) {
- pushString (null, ">");
-
- // NOTE: [dtd] is so we say what SAX2 expects,
- // though it's misleading (subset, not entire dtd)
- if (ids [1] != null)
- pushURL (true, "[dtd]", ids, null, null, null, true);
- else {
- handler.warn ("modifying document by adding external subset");
- pushURL (true, "[dtd]",
- new String [] { subset.getPublicId (),
- subset.getSystemId (), null },
- subset.getCharacterStream (),
- subset.getByteStream (),
- subset.getEncoding (),
- false);
- }
-
- // Loop until we end up back at '>'
- while (true) {
- doReport = expandPE = true;
- skipWhitespace ();
- doReport = expandPE = false;
- if (tryRead ('>')) {
- break;
- } else {
- expandPE = true;
- parseMarkupdecl ();
- expandPE = false;
- }
- }
-
- // the ">" string isn't popped yet
- if (inputStack.size () != 1)
- error ("external subset has unmatched '>'");
- }
-
- // done dtd
- handler.endDoctype ();
- expandPE = false;
- doReport = true;
- }
+ {
+ String rootName;
+ ExternalIdentifiers ids;
+ // Read the document type name.
+ requireWhitespace();
+ rootName = readNmtoken(true);
- /**
- * Parse a markup declaration in the internal or external DTD subset.
- * <pre>
- * [29] markupdecl ::= elementdecl | Attlistdecl | EntityDecl
- * | NotationDecl | PI | Comment
- * [30] extSubsetDecl ::= (markupdecl | conditionalSect
- * | PEReference | S) *
- * </pre>
- * <p> Reading toplevel PE references is handled as a lexical issue
- * by the caller, as is whitespace.
- */
- private void parseMarkupdecl ()
+ // Read the External subset's IDs
+ skipWhitespace();
+ ids = readExternalIds(false, true);
+
+ // report (a) declaration of name, (b) lexical info (ids)
+ handler.doctypeDecl(rootName, ids.publicId, ids.systemId);
+
+ // Internal subset is parsed first, if present
+ skipWhitespace();
+ if (tryRead('['))
+ {
+
+ // loop until the subset ends
+ while (true)
+ {
+ doReport = expandPE = true;
+ skipWhitespace();
+ doReport = expandPE = false;
+ if (tryRead(']'))
+ {
+ break; // end of subset
+ }
+ else
+ {
+ // WFC, PEs in internal subset (only between decls)
+ peIsError = expandPE = true;
+ parseMarkupdecl();
+ peIsError = expandPE = false;
+ }
+ }
+ }
+ skipWhitespace();
+ require('>');
+
+ // Read the external subset, if any
+ InputSource subset;
+
+ if (ids.systemId == null)
+ {
+ subset = handler.getExternalSubset(rootName,
+ handler.getSystemId());
+ }
+ else
+ {
+ subset = null;
+ }
+ if (ids.systemId != null || subset != null)
+ {
+ pushString(null, ">");
+
+ // NOTE: [dtd] is so we say what SAX2 expects,
+ // though it's misleading (subset, not entire dtd)
+ if (ids.systemId != null)
+ {
+ pushURL(true, "[dtd]", ids, null, null, null, true);
+ }
+ else
+ {
+ handler.warn("modifying document by adding external subset");
+ pushURL(true, "[dtd]",
+ new ExternalIdentifiers(subset.getPublicId(),
+ subset.getSystemId(),
+ null),
+ subset.getCharacterStream(),
+ subset.getByteStream(),
+ subset.getEncoding(),
+ false);
+ }
+
+ // Loop until we end up back at '>'
+ while (true)
+ {
+ doReport = expandPE = true;
+ skipWhitespace();
+ doReport = expandPE = false;
+ if (tryRead('>'))
+ {
+ break;
+ }
+ else
+ {
+ expandPE = true;
+ parseMarkupdecl();
+ expandPE = false;
+ }
+ }
+
+ // the ">" string isn't popped yet
+ if (inputStack.size() != 1)
+ {
+ error("external subset has unmatched '>'");
+ }
+ }
+
+ // done dtd
+ handler.endDoctype();
+ expandPE = false;
+ doReport = true;
+ }
+
+ /**
+ * Parse a markup declaration in the internal or external DTD subset.
+ * <pre>
+ * [29] markupdecl ::= elementdecl | Attlistdecl | EntityDecl
+ * | NotationDecl | PI | Comment
+ * [30] extSubsetDecl ::= (markupdecl | conditionalSect
+ * | PEReference | S) *
+ * </pre>
+ * <p> Reading toplevel PE references is handled as a lexical issue
+ * by the caller, as is whitespace.
+ */
+ private void parseMarkupdecl()
throws Exception
- {
- char saved [] = null;
- boolean savedPE = expandPE;
-
- // prevent "<%foo;" and ensures saved entity is right
- require ('<');
- unread ('<');
- expandPE = false;
-
- if (tryRead ("<!ELEMENT")) {
- saved = readBuffer;
- expandPE = savedPE;
- parseElementDecl ();
- } else if (tryRead ("<!ATTLIST")) {
- saved = readBuffer;
- expandPE = savedPE;
- parseAttlistDecl ();
- } else if (tryRead ("<!ENTITY")) {
- saved = readBuffer;
- expandPE = savedPE;
- parseEntityDecl ();
- } else if (tryRead ("<!NOTATION")) {
- saved = readBuffer;
- expandPE = savedPE;
- parseNotationDecl ();
- } else if (tryRead (startDelimPI)) {
- saved = readBuffer;
- expandPE = savedPE;
- parsePI ();
- } else if (tryRead (startDelimComment)) {
- saved = readBuffer;
- expandPE = savedPE;
- parseComment ();
- } else if (tryRead ("<![")) {
- saved = readBuffer;
- expandPE = savedPE;
- if (inputStack.size () > 0)
- parseConditionalSect (saved);
- else
- error ("conditional sections illegal in internal subset");
- } else {
- error ("expected markup declaration");
- }
-
- // VC: Proper Decl/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Declaration/PE nesting");
- }
+ {
+ char[] saved = null;
+ boolean savedPE = expandPE;
+ // prevent "<%foo;" and ensures saved entity is right
+ require('<');
+ unread('<');
+ expandPE = false;
+
+ if (tryRead("<!ELEMENT"))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ parseElementDecl();
+ }
+ else if (tryRead("<!ATTLIST"))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ parseAttlistDecl();
+ }
+ else if (tryRead("<!ENTITY"))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ parseEntityDecl();
+ }
+ else if (tryRead("<!NOTATION"))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ parseNotationDecl();
+ }
+ else if (tryRead(startDelimPI))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ parsePI();
+ }
+ else if (tryRead(startDelimComment))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ parseComment();
+ }
+ else if (tryRead("<!["))
+ {
+ saved = readBuffer;
+ expandPE = savedPE;
+ if (inputStack.size() > 0)
+ {
+ parseConditionalSect(saved);
+ }
+ else
+ {
+ error("conditional sections illegal in internal subset");
+ }
+ }
+ else
+ {
+ error("expected markup declaration");
+ }
- /**
- * Parse an element, with its tags.
- * <pre>
- * [39] element ::= EmptyElementTag | STag content ETag
- * [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;'
- * [44] EmptyElementTag ::= '&lt;' Name (S Attribute)* S? '/&gt;'
- * </pre>
- * <p> (The '&lt;' has already been read.)
- * <p>NOTE: this method actually chains onto parseContent (), if necessary,
- * and parseContent () will take care of calling parseETag ().
- */
- private void parseElement (boolean maybeGetSubset)
+ // VC: Proper Decl/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Declaration/PE nesting");
+ }
+ }
+
+ /**
+ * Parse an element, with its tags.
+ * <pre>
+ * [39] element ::= EmptyElementTag | STag content ETag
+ * [40] STag ::= '&lt;' Name (S Attribute)* S? '&gt;'
+ * [44] EmptyElementTag ::= '&lt;' Name (S Attribute)* S? '/&gt;'
+ * </pre>
+ * <p> (The '&lt;' has already been read.)
+ * <p>NOTE: this method actually chains onto parseContent (), if necessary,
+ * and parseContent () will take care of calling parseETag ().
+ */
+ private void parseElement(boolean maybeGetSubset)
throws Exception
- {
- String gi;
- char c;
- int oldElementContent = currentElementContent;
- String oldElement = currentElement;
- Object element [];
-
- // This is the (global) counter for the
- // array of specified attributes.
- tagAttributePos = 0;
-
- // Read the element type name.
- gi = readNmtoken (true);
-
- // If we saw no DTD, and this is the document root element,
- // let the application modify the input stream by providing one.
- if (maybeGetSubset) {
- InputSource subset = handler.getExternalSubset (gi,
- handler.getSystemId ());
- if (subset != null) {
- String publicId = subset.getPublicId ();
- String systemId = subset.getSystemId ();
-
- handler.warn ("modifying document by adding DTD");
- handler.doctypeDecl (gi, publicId, systemId);
- pushString (null, ">");
-
- // NOTE: [dtd] is so we say what SAX2 expects,
- // though it's misleading (subset, not entire dtd)
- pushURL (true, "[dtd]",
- new String [] { publicId, systemId, null },
- subset.getCharacterStream (),
- subset.getByteStream (),
- subset.getEncoding (),
- false);
-
- // Loop until we end up back at '>'
- while (true) {
- doReport = expandPE = true;
- skipWhitespace ();
- doReport = expandPE = false;
- if (tryRead ('>')) {
- break;
- } else {
- expandPE = true;
- parseMarkupdecl ();
- expandPE = false;
- }
- }
-
- // the ">" string isn't popped yet
- if (inputStack.size () != 1)
- error ("external subset has unmatched '>'");
-
- handler.endDoctype ();
- }
- }
-
- // Determine the current content type.
- currentElement = gi;
- element = (Object []) elementInfo.get (gi);
- currentElementContent = getContentType (element, CONTENT_ANY);
-
- // Read the attributes, if any.
- // After this loop, "c" is the closing delimiter.
- boolean white = tryWhitespace ();
- c = readCh ();
- while (c != '/' && c != '>') {
- unread (c);
- if (!white)
- error ("need whitespace between attributes");
- parseAttribute (gi);
- white = tryWhitespace ();
- c = readCh ();
- }
-
- // Supply any defaulted attributes.
- Enumeration atts = declaredAttributes (element);
- if (atts != null) {
- String aname;
+ {
+ String gi;
+ char c;
+ int oldElementContent = currentElementContent;
+ String oldElement = currentElement;
+ ElementDecl element;
+
+ // This is the (global) counter for the
+ // array of specified attributes.
+ tagAttributePos = 0;
+
+ // Read the element type name.
+ gi = readNmtoken(true);
+
+ // If we saw no DTD, and this is the document root element,
+ // let the application modify the input stream by providing one.
+ if (maybeGetSubset)
+ {
+ InputSource subset = handler.getExternalSubset(gi,
+ handler.getSystemId());
+ if (subset != null)
+ {
+ String publicId = subset.getPublicId();
+ String systemId = subset.getSystemId();
+
+ handler.warn("modifying document by adding DTD");
+ handler.doctypeDecl(gi, publicId, systemId);
+ pushString(null, ">");
+
+ // NOTE: [dtd] is so we say what SAX2 expects,
+ // though it's misleading (subset, not entire dtd)
+ pushURL(true, "[dtd]",
+ new ExternalIdentifiers(publicId, systemId, null),
+ subset.getCharacterStream(),
+ subset.getByteStream(),
+ subset.getEncoding(),
+ false);
+
+ // Loop until we end up back at '>'
+ while (true)
+ {
+ doReport = expandPE = true;
+ skipWhitespace();
+ doReport = expandPE = false;
+ if (tryRead('>'))
+ {
+ break;
+ }
+ else
+ {
+ expandPE = true;
+ parseMarkupdecl();
+ expandPE = false;
+ }
+ }
+
+ // the ">" string isn't popped yet
+ if (inputStack.size() != 1)
+ {
+ error("external subset has unmatched '>'");
+ }
+
+ handler.endDoctype();
+ }
+ }
+
+ // Determine the current content type.
+ currentElement = gi;
+ element = (ElementDecl) elementInfo.get(gi);
+ currentElementContent = getContentType(element, CONTENT_ANY);
+
+ // Read the attributes, if any.
+ // After this loop, "c" is the closing delimiter.
+ boolean white = tryWhitespace();
+ c = readCh();
+ while (c != '/' && c != '>')
+ {
+ unread(c);
+ if (!white)
+ {
+ error("need whitespace between attributes");
+ }
+ parseAttribute(gi);
+ white = tryWhitespace();
+ c = readCh();
+ }
+
+ // Supply any defaulted attributes.
+ Iterator atts = declaredAttributes(element);
+ if (atts != null)
+ {
+ String aname;
loop:
- while (atts.hasMoreElements ()) {
- aname = (String) atts.nextElement ();
- // See if it was specified.
- for (int i = 0; i < tagAttributePos; i++) {
- if (tagAttributes [i] == aname) {
- continue loop;
- }
- }
- // ... or has a default
- String value = getAttributeDefaultValue (gi, aname);
-
- if (value == null)
- continue;
- handler.attribute (aname, value, false);
- }
- }
-
- // Figure out if this is a start tag
- // or an empty element, and dispatch an
- // event accordingly.
- switch (c) {
- case '>':
- handler.startElement (gi);
- parseContent ();
- break;
- case '/':
- require ('>');
- handler.startElement (gi);
- handler.endElement (gi);
- break;
- }
-
- // Restore the previous state.
- currentElement = oldElement;
- currentElementContent = oldElementContent;
- }
+ while (atts.hasNext())
+ {
+ aname = (String) atts.next();
+ // See if it was specified.
+ for (int i = 0; i < tagAttributePos; i++)
+ {
+ if (tagAttributes[i] == aname)
+ {
+ continue loop;
+ }
+ }
+ // ... or has a default
+ String value = getAttributeDefaultValue(gi, aname);
+
+ if (value == null)
+ {
+ continue;
+ }
+ handler.attribute(aname, value, false);
+ }
+ }
+ // Figure out if this is a start tag
+ // or an empty element, and dispatch an
+ // event accordingly.
+ switch (c)
+ {
+ case '>':
+ handler.startElement(gi);
+ parseContent();
+ break;
+ case '/':
+ require('>');
+ handler.startElement(gi);
+ handler.endElement(gi);
+ break;
+ }
- /**
- * Parse an attribute assignment.
- * <pre>
- * [41] Attribute ::= Name Eq AttValue
- * </pre>
- * @param name The name of the attribute's element.
- * @see SAXDriver#attribute
- */
- private void parseAttribute (String name)
- throws Exception
- {
- String aname;
- String type;
- String value;
- int flags = LIT_ATTRIBUTE | LIT_ENTITY_REF;
-
- // Read the attribute name.
- aname = readNmtoken (true);
- type = getAttributeType (name, aname);
-
- // Parse '='
- parseEq ();
-
- // Read the value, normalizing whitespace
- // unless it is CDATA.
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- if (type == "CDATA" || type == null) {
- value = readLiteral (flags);
- } else {
- value = readLiteral (flags | LIT_NORMALIZE);
- }
- } else {
- if (type.equals("CDATA") || type == null) {
- value = readLiteral (flags);
- } else {
- value = readLiteral (flags | LIT_NORMALIZE);
- }
+ // Restore the previous state.
+ currentElement = oldElement;
+ currentElementContent = oldElementContent;
}
+
+ /**
+ * Parse an attribute assignment.
+ * <pre>
+ * [41] Attribute ::= Name Eq AttValue
+ * </pre>
+ * @param name The name of the attribute's element.
+ * @see SAXDriver#attribute
+ */
+ private void parseAttribute(String name)
+ throws Exception
+ {
+ String aname;
+ String type;
+ String value;
+ int flags = LIT_ATTRIBUTE | LIT_ENTITY_REF;
+
+ // Read the attribute name.
+ aname = readNmtoken(true);
+ type = getAttributeType(name, aname);
+
+ // Parse '='
+ parseEq();
+
+ // Read the value, normalizing whitespace
+ // unless it is CDATA.
+ if (handler.stringInterning)
+ {
+ if (type == "CDATA" || type == null)
+ {
+ value = readLiteral(flags);
+ }
+ else
+ {
+ value = readLiteral(flags | LIT_NORMALIZE);
+ }
+ }
+ else
+ {
+ if (type.equals("CDATA") || type == null)
+ {
+ value = readLiteral(flags);
+ }
+ else
+ {
+ value = readLiteral(flags | LIT_NORMALIZE);
+ }
+ }
- // WFC: no duplicate attributes
- for (int i = 0; i < tagAttributePos; i++)
- if (aname.equals (tagAttributes [i]))
- error ("duplicate attribute", aname, null);
-
- // Inform the handler about the
- // attribute.
- handler.attribute (aname, value, true);
- dataBufferPos = 0;
-
- // Note that the attribute has been
- // specified.
- if (tagAttributePos == tagAttributes.length) {
- String newAttrib[] = new String [tagAttributes.length * 2];
- System.arraycopy (tagAttributes, 0, newAttrib, 0, tagAttributePos);
- tagAttributes = newAttrib;
- }
- tagAttributes [tagAttributePos++] = aname;
- }
+ // WFC: no duplicate attributes
+ for (int i = 0; i < tagAttributePos; i++)
+ {
+ if (aname.equals(tagAttributes [i]))
+ {
+ error("duplicate attribute", aname, null);
+ }
+ }
+ // Inform the handler about the
+ // attribute.
+ handler.attribute(aname, value, true);
+ dataBufferPos = 0;
+
+ // Note that the attribute has been
+ // specified.
+ if (tagAttributePos == tagAttributes.length)
+ {
+ String newAttrib[] = new String[tagAttributes.length * 2];
+ System.arraycopy(tagAttributes, 0, newAttrib, 0, tagAttributePos);
+ tagAttributes = newAttrib;
+ }
+ tagAttributes[tagAttributePos++] = aname;
+ }
- /**
- * Parse an equals sign surrounded by optional whitespace.
- * <pre>
- * [25] Eq ::= S? '=' S?
- * </pre>
- */
- private void parseEq ()
+ /**
+ * Parse an equals sign surrounded by optional whitespace.
+ * <pre>
+ * [25] Eq ::= S? '=' S?
+ * </pre>
+ */
+ private void parseEq()
throws SAXException, IOException
- {
- skipWhitespace ();
- require ('=');
- skipWhitespace ();
- }
-
+ {
+ skipWhitespace();
+ require('=');
+ skipWhitespace();
+ }
- /**
- * Parse an end tag.
- * <pre>
- * [42] ETag ::= '</' Name S? '>'
- * </pre>
- * <p>NOTE: parseContent () chains to here, we already read the
- * "&lt;/".
- */
- private void parseETag ()
+ /**
+ * Parse an end tag.
+ * <pre>
+ * [42] ETag ::= '</' Name S? '>'
+ * </pre>
+ * <p>NOTE: parseContent () chains to here, we already read the
+ * "&lt;/".
+ */
+ private void parseETag()
throws Exception
- {
- require (currentElement);
- skipWhitespace ();
- require ('>');
- handler.endElement (currentElement);
- // not re-reporting any SAXException re bogus end tags,
- // even though that diagnostic might be clearer ...
- }
-
-
- /**
- * Parse the content of an element.
- * <pre>
- * [43] content ::= (element | CharData | Reference
- * | CDSect | PI | Comment)*
- * [67] Reference ::= EntityRef | CharRef
- * </pre>
- * <p> NOTE: consumes ETtag.
- */
- private void parseContent ()
+ {
+ require(currentElement);
+ skipWhitespace();
+ require('>');
+ handler.endElement(currentElement);
+ // not re-reporting any SAXException re bogus end tags,
+ // even though that diagnostic might be clearer ...
+ }
+
+ /**
+ * Parse the content of an element.
+ * <pre>
+ * [43] content ::= (element | CharData | Reference
+ * | CDSect | PI | Comment)*
+ * [67] Reference ::= EntityRef | CharRef
+ * </pre>
+ * <p> NOTE: consumes ETtag.
+ */
+ private void parseContent()
throws Exception
- {
- char c;
-
- while (true) {
- // consume characters (or ignorable whitspace) until delimiter
- parseCharData ();
-
- // Handle delimiters
- c = readCh ();
- switch (c) {
-
- case '&': // Found "&"
- c = readCh ();
- if (c == '#') {
- parseCharRef ();
- } else {
- unread (c);
- parseEntityRef (true);
- }
- isDirtyCurrentElement = true;
- break;
-
- case '<': // Found "<"
- dataBufferFlush ();
- c = readCh ();
- switch (c) {
- case '!': // Found "<!"
- c = readCh ();
- switch (c) {
- case '-': // Found "<!-"
- require ('-');
- isDirtyCurrentElement = false;
- parseComment ();
- break;
- case '[': // Found "<!["
- isDirtyCurrentElement = false;
- require ("CDATA[");
- handler.startCDATA ();
- inCDATA = true;
- parseCDSect ();
- inCDATA = false;
- handler.endCDATA ();
- break;
- default:
- error ("expected comment or CDATA section", c, null);
- break;
- }
- break;
-
- case '?': // Found "<?"
- isDirtyCurrentElement = false;
- parsePI ();
- break;
-
- case '/': // Found "</"
- isDirtyCurrentElement = false;
- parseETag ();
- return;
-
- default: // Found "<" followed by something else
- isDirtyCurrentElement = false;
- unread (c);
- parseElement (false);
- break;
- }
- }
- }
-
- }
-
-
- /**
- * Parse an element type declaration.
- * <pre>
- * [45] elementdecl ::= '&lt;!ELEMENT' S Name S contentspec S? '&gt;'
- * </pre>
- * <p> NOTE: the '&lt;!ELEMENT' has already been read.
- */
- private void parseElementDecl ()
+ {
+ char c;
+
+ while (true)
+ {
+ // consume characters (or ignorable whitspace) until delimiter
+ parseCharData();
+
+ // Handle delimiters
+ c = readCh();
+ switch (c)
+ {
+ case '&': // Found "&"
+ c = readCh();
+ if (c == '#')
+ {
+ parseCharRef();
+ }
+ else
+ {
+ unread(c);
+ parseEntityRef(true);
+ }
+ isDirtyCurrentElement = true;
+ break;
+
+ case '<': // Found "<"
+ dataBufferFlush();
+ c = readCh();
+ switch (c)
+ {
+ case '!': // Found "<!"
+ c = readCh();
+ switch (c)
+ {
+ case '-': // Found "<!-"
+ require('-');
+ isDirtyCurrentElement = false;
+ parseComment();
+ break;
+ case '[': // Found "<!["
+ isDirtyCurrentElement = false;
+ require("CDATA[");
+ handler.startCDATA();
+ inCDATA = true;
+ parseCDSect();
+ inCDATA = false;
+ handler.endCDATA();
+ break;
+ default:
+ error("expected comment or CDATA section", c, null);
+ break;
+ }
+ break;
+
+ case '?': // Found "<?"
+ isDirtyCurrentElement = false;
+ parsePI();
+ break;
+
+ case '/': // Found "</"
+ isDirtyCurrentElement = false;
+ parseETag();
+ return;
+
+ default: // Found "<" followed by something else
+ isDirtyCurrentElement = false;
+ unread(c);
+ parseElement(false);
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Parse an element type declaration.
+ * <pre>
+ * [45] elementdecl ::= '&lt;!ELEMENT' S Name S contentspec S? '&gt;'
+ * </pre>
+ * <p> NOTE: the '&lt;!ELEMENT' has already been read.
+ */
+ private void parseElementDecl()
throws Exception
- {
- String name;
-
- requireWhitespace ();
- // Read the element type name.
- name = readNmtoken (true);
-
- requireWhitespace ();
- // Read the content model.
- parseContentspec (name);
-
- skipWhitespace ();
- require ('>');
- }
-
+ {
+ String name;
+
+ requireWhitespace();
+ // Read the element type name.
+ name = readNmtoken(true);
- /**
- * Content specification.
- * <pre>
- * [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | elements
- * </pre>
- */
- private void parseContentspec (String name)
- throws Exception
- {
-// FIXME: move elementDecl() into setElement(), pass EMTPY/ANY ...
- if (tryRead ("EMPTY")) {
- setElement (name, CONTENT_EMPTY, null, null);
- if (!skippedPE)
- handler.getDeclHandler ().elementDecl (name, "EMPTY");
- return;
- } else if (tryRead ("ANY")) {
- setElement (name, CONTENT_ANY, null, null);
- if (!skippedPE)
- handler.getDeclHandler ().elementDecl (name, "ANY");
- return;
- } else {
- String model;
- char saved [];
-
- require ('(');
- saved = readBuffer;
- dataBufferAppend ('(');
- skipWhitespace ();
- if (tryRead ("#PCDATA")) {
- dataBufferAppend ("#PCDATA");
- parseMixed (saved);
- model = dataBufferToString ();
- setElement (name, CONTENT_MIXED, model, null);
- } else {
- parseElements (saved);
- model = dataBufferToString ();
- setElement (name, CONTENT_ELEMENTS, model, null);
- }
- if (!skippedPE)
- handler.getDeclHandler ().elementDecl (name, model);
- }
- }
+ requireWhitespace();
+ // Read the content model.
+ parseContentspec(name);
+
+ skipWhitespace();
+ require('>');
+ }
- /**
- * Parse an element-content model.
- * <pre>
- * [47] elements ::= (choice | seq) ('?' | '*' | '+')?
- * [49] choice ::= '(' S? cp (S? '|' S? cp)+ S? ')'
- * [50] seq ::= '(' S? cp (S? ',' S? cp)* S? ')'
- * </pre>
- *
- * <p> NOTE: the opening '(' and S have already been read.
- *
- * @param saved Buffer for entity that should have the terminal ')'
- */
- private void parseElements (char saved [])
+ /**
+ * Content specification.
+ * <pre>
+ * [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | elements
+ * </pre>
+ */
+ private void parseContentspec(String name)
throws Exception
- {
- char c;
- char sep;
-
- // Parse the first content particle
- skipWhitespace ();
- parseCp ();
-
- // Check for end or for a separator.
- skipWhitespace ();
- c = readCh ();
- switch (c) {
- case ')':
- // VC: Proper Group/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Group/PE nesting");
-
- dataBufferAppend (')');
- c = readCh ();
- switch (c) {
- case '*':
- case '+':
- case '?':
- dataBufferAppend (c);
- break;
- default:
- unread (c);
- }
- return;
- case ',': // Register the separator.
- case '|':
- sep = c;
- dataBufferAppend (c);
- break;
- default:
- error ("bad separator in content model", c, null);
- return;
- }
-
- // Parse the rest of the content model.
- while (true) {
- skipWhitespace ();
- parseCp ();
- skipWhitespace ();
- c = readCh ();
- if (c == ')') {
- // VC: Proper Group/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Group/PE nesting");
-
- dataBufferAppend (')');
- break;
- } else if (c != sep) {
- error ("bad separator in content model", c, null);
- return;
- } else {
- dataBufferAppend (c);
- }
- }
-
- // Check for the occurrence indicator.
- c = readCh ();
- switch (c) {
- case '?':
- case '*':
- case '+':
- dataBufferAppend (c);
- return;
- default:
- unread (c);
- return;
- }
- }
-
-
- /**
- * Parse a content particle.
- * <pre>
- * [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
- * </pre>
- */
- private void parseCp ()
+ {
+ // FIXME: move elementDecl() into setElement(), pass EMTPY/ANY ...
+ if (tryRead("EMPTY"))
+ {
+ setElement(name, CONTENT_EMPTY, null, null);
+ if (!skippedPE)
+ {
+ handler.getDeclHandler().elementDecl(name, "EMPTY");
+ }
+ return;
+ }
+ else if (tryRead("ANY"))
+ {
+ setElement(name, CONTENT_ANY, null, null);
+ if (!skippedPE)
+ {
+ handler.getDeclHandler().elementDecl(name, "ANY");
+ }
+ return;
+ }
+ else
+ {
+ String model;
+ char[] saved;
+
+ require('(');
+ saved = readBuffer;
+ dataBufferAppend('(');
+ skipWhitespace();
+ if (tryRead("#PCDATA"))
+ {
+ dataBufferAppend("#PCDATA");
+ parseMixed(saved);
+ model = dataBufferToString();
+ setElement(name, CONTENT_MIXED, model, null);
+ }
+ else
+ {
+ parseElements(saved);
+ model = dataBufferToString();
+ setElement(name, CONTENT_ELEMENTS, model, null);
+ }
+ if (!skippedPE)
+ {
+ handler.getDeclHandler().elementDecl(name, model);
+ }
+ }
+ }
+
+ /**
+ * Parse an element-content model.
+ * <pre>
+ * [47] elements ::= (choice | seq) ('?' | '*' | '+')?
+ * [49] choice ::= '(' S? cp (S? '|' S? cp)+ S? ')'
+ * [50] seq ::= '(' S? cp (S? ',' S? cp)* S? ')'
+ * </pre>
+ *
+ * <p> NOTE: the opening '(' and S have already been read.
+ *
+ * @param saved Buffer for entity that should have the terminal ')'
+ */
+ private void parseElements(char[] saved)
throws Exception
- {
- if (tryRead ('(')) {
- dataBufferAppend ('(');
- parseElements (readBuffer);
- } else {
- dataBufferAppend (readNmtoken (true));
- char c = readCh ();
- switch (c) {
- case '?':
- case '*':
- case '+':
- dataBufferAppend (c);
- break;
- default:
- unread (c);
- break;
- }
- }
- }
-
-
- /**
- * Parse mixed content.
- * <pre>
- * [51] Mixed ::= '(' S? ( '#PCDATA' (S? '|' S? Name)*) S? ')*'
- * | '(' S? ('#PCDATA') S? ')'
- * </pre>
- *
- * @param saved Buffer for entity that should have the terminal ')'
- */
- private void parseMixed (char saved [])
+ {
+ char c;
+ char sep;
+
+ // Parse the first content particle
+ skipWhitespace();
+ parseCp();
+
+ // Check for end or for a separator.
+ skipWhitespace();
+ c = readCh();
+ switch (c)
+ {
+ case ')':
+ // VC: Proper Group/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Group/PE nesting");
+ }
+
+ dataBufferAppend(')');
+ c = readCh();
+ switch (c)
+ {
+ case '*':
+ case '+':
+ case '?':
+ dataBufferAppend(c);
+ break;
+ default:
+ unread(c);
+ }
+ return;
+ case ',': // Register the separator.
+ case '|':
+ sep = c;
+ dataBufferAppend(c);
+ break;
+ default:
+ error("bad separator in content model", c, null);
+ return;
+ }
+
+ // Parse the rest of the content model.
+ while (true)
+ {
+ skipWhitespace();
+ parseCp();
+ skipWhitespace();
+ c = readCh();
+ if (c == ')')
+ {
+ // VC: Proper Group/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Group/PE nesting");
+ }
+
+ dataBufferAppend(')');
+ break;
+ }
+ else if (c != sep)
+ {
+ error("bad separator in content model", c, null);
+ return;
+ }
+ else
+ {
+ dataBufferAppend(c);
+ }
+ }
+
+ // Check for the occurrence indicator.
+ c = readCh();
+ switch (c)
+ {
+ case '?':
+ case '*':
+ case '+':
+ dataBufferAppend(c);
+ return;
+ default:
+ unread(c);
+ return;
+ }
+ }
+
+ /**
+ * Parse a content particle.
+ * <pre>
+ * [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
+ * </pre>
+ */
+ private void parseCp()
throws Exception
- {
- // Check for PCDATA alone.
- skipWhitespace ();
- if (tryRead (')')) {
- // VC: Proper Group/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Group/PE nesting");
-
- dataBufferAppend (")*");
- tryRead ('*');
- return;
- }
-
- // Parse mixed content.
- skipWhitespace ();
- while (!tryRead (")")) {
- require ('|');
- dataBufferAppend ('|');
- skipWhitespace ();
- dataBufferAppend (readNmtoken (true));
- skipWhitespace ();
- }
-
- // VC: Proper Group/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Group/PE nesting");
-
- require ('*');
- dataBufferAppend (")*");
- }
-
+ {
+ if (tryRead('('))
+ {
+ dataBufferAppend('(');
+ parseElements(readBuffer);
+ }
+ else
+ {
+ dataBufferAppend(readNmtoken(true));
+ char c = readCh();
+ switch (c)
+ {
+ case '?':
+ case '*':
+ case '+':
+ dataBufferAppend(c);
+ break;
+ default:
+ unread(c);
+ break;
+ }
+ }
+ }
- /**
- * Parse an attribute list declaration.
- * <pre>
- * [52] AttlistDecl ::= '&lt;!ATTLIST' S Name AttDef* S? '&gt;'
- * </pre>
- * <p>NOTE: the '&lt;!ATTLIST' has already been read.
- */
- private void parseAttlistDecl ()
+ /**
+ * Parse mixed content.
+ * <pre>
+ * [51] Mixed ::= '(' S? ( '#PCDATA' (S? '|' S? Name)*) S? ')*'
+ * | '(' S? ('#PCDATA') S? ')'
+ * </pre>
+ *
+ * @param saved Buffer for entity that should have the terminal ')'
+ */
+ private void parseMixed(char[] saved)
throws Exception
- {
- String elementName;
-
- requireWhitespace ();
- elementName = readNmtoken (true);
- boolean white = tryWhitespace ();
- while (!tryRead ('>')) {
- if (!white)
- error ("whitespace required before attribute definition");
- parseAttDef (elementName);
- white = tryWhitespace ();
- }
- }
-
-
- /**
- * Parse a single attribute definition.
- * <pre>
- * [53] AttDef ::= S Name S AttType S DefaultDecl
- * </pre>
- */
- private void parseAttDef (String elementName)
+ {
+ // Check for PCDATA alone.
+ skipWhitespace();
+ if (tryRead(')'))
+ {
+ // VC: Proper Group/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Group/PE nesting");
+ }
+
+ dataBufferAppend(")*");
+ tryRead('*');
+ return;
+ }
+
+ // Parse mixed content.
+ skipWhitespace();
+ while (!tryRead(")"))
+ {
+ require('|');
+ dataBufferAppend('|');
+ skipWhitespace();
+ dataBufferAppend(readNmtoken(true));
+ skipWhitespace();
+ }
+
+ // VC: Proper Group/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Group/PE nesting");
+ }
+
+ require('*');
+ dataBufferAppend(")*");
+ }
+
+ /**
+ * Parse an attribute list declaration.
+ * <pre>
+ * [52] AttlistDecl ::= '&lt;!ATTLIST' S Name AttDef* S? '&gt;'
+ * </pre>
+ * <p>NOTE: the '&lt;!ATTLIST' has already been read.
+ */
+ private void parseAttlistDecl()
throws Exception
- {
- String name;
- String type;
- String enumer = null;
-
- // Read the attribute name.
- name = readNmtoken (true);
-
- // Read the attribute type.
- requireWhitespace ();
- type = readAttType ();
-
- // Get the string of enumerated values if necessary.
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- if ("ENUMERATION" == type || "NOTATION" == type)
- enumer = dataBufferToString ();
- } else {
- if ("ENUMERATION".equals(type) || "NOTATION".equals(type))
- enumer = dataBufferToString ();
+ {
+ String elementName;
+
+ requireWhitespace();
+ elementName = readNmtoken(true);
+ boolean white = tryWhitespace();
+ while (!tryRead('>'))
+ {
+ if (!white)
+ {
+ error("whitespace required before attribute definition");
+ }
+ parseAttDef(elementName);
+ white = tryWhitespace();
+ }
}
+
+ /**
+ * Parse a single attribute definition.
+ * <pre>
+ * [53] AttDef ::= S Name S AttType S DefaultDecl
+ * </pre>
+ */
+ private void parseAttDef(String elementName)
+ throws Exception
+ {
+ String name;
+ String type;
+ String enumer = null;
+
+ // Read the attribute name.
+ name = readNmtoken(true);
- // Read the default value.
- requireWhitespace ();
- parseDefault (elementName, name, type, enumer);
- }
+ // Read the attribute type.
+ requireWhitespace();
+ type = readAttType();
+ // Get the string of enumerated values if necessary.
+ if (handler.stringInterning)
+ {
+ if ("ENUMERATION" == type || "NOTATION" == type)
+ {
+ enumer = dataBufferToString();
+ }
+ }
+ else
+ {
+ if ("ENUMERATION".equals(type) || "NOTATION".equals(type))
+ {
+ enumer = dataBufferToString();
+ }
+ }
+
+ // Read the default value.
+ requireWhitespace();
+ parseDefault(elementName, name, type, enumer);
+ }
/**
* Parse the attribute type.
@@ -1598,229 +1926,284 @@ loop:
* [54] AttType ::= StringType | TokenizedType | EnumeratedType
* [55] StringType ::= 'CDATA'
* [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY'
- * | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'
+ * | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'
* [57] EnumeratedType ::= NotationType | Enumeration
* </pre>
*/
- private String readAttType ()
+ private String readAttType()
throws Exception
{
- if (tryRead ('(')) {
- parseEnumeration (false);
- return "ENUMERATION";
- } else {
- String typeString = readNmtoken (true);
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- if ("NOTATION" == typeString) {
- parseNotationType ();
- return typeString;
- } else if ("CDATA" == typeString
- || "ID" == typeString
- || "IDREF" == typeString
- || "IDREFS" == typeString
- || "ENTITY" == typeString
- || "ENTITIES" == typeString
- || "NMTOKEN" == typeString
- || "NMTOKENS" == typeString)
- return typeString;
- } else {
- if ("NOTATION".equals(typeString)) {
- parseNotationType ();
- return typeString;
- } else if ("CDATA".equals(typeString)
- || "ID".equals(typeString)
- || "IDREF".equals(typeString)
- || "IDREFS".equals(typeString)
- || "ENTITY".equals(typeString)
- || "ENTITIES".equals(typeString)
- || "NMTOKEN".equals(typeString)
- || "NMTOKENS".equals(typeString))
- return typeString;
- }
- error ("illegal attribute type", typeString, null);
- return null;
- }
+ if (tryRead('('))
+ {
+ parseEnumeration(false);
+ return "ENUMERATION";
+ }
+ else
+ {
+ String typeString = readNmtoken(true);
+ if (handler.stringInterning)
+ {
+ if ("NOTATION" == typeString)
+ {
+ parseNotationType();
+ return typeString;
+ }
+ else if ("CDATA" == typeString
+ || "ID" == typeString
+ || "IDREF" == typeString
+ || "IDREFS" == typeString
+ || "ENTITY" == typeString
+ || "ENTITIES" == typeString
+ || "NMTOKEN" == typeString
+ || "NMTOKENS" == typeString)
+ {
+ return typeString;
+ }
+ }
+ else
+ {
+ if ("NOTATION".equals(typeString))
+ {
+ parseNotationType();
+ return typeString;
+ }
+ else if ("CDATA".equals(typeString)
+ || "ID".equals(typeString)
+ || "IDREF".equals(typeString)
+ || "IDREFS".equals(typeString)
+ || "ENTITY".equals(typeString)
+ || "ENTITIES".equals(typeString)
+ || "NMTOKEN".equals(typeString)
+ || "NMTOKENS".equals(typeString))
+ {
+ return typeString;
+ }
+ }
+ error("illegal attribute type", typeString, null);
+ return null;
+ }
}
-
- /**
- * Parse an enumeration.
- * <pre>
- * [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'
- * </pre>
- * <p>NOTE: the '(' has already been read.
- */
- private void parseEnumeration (boolean isNames)
+ /**
+ * Parse an enumeration.
+ * <pre>
+ * [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'
+ * </pre>
+ * <p>NOTE: the '(' has already been read.
+ */
+ private void parseEnumeration(boolean isNames)
throws Exception
- {
- dataBufferAppend ('(');
-
- // Read the first token.
- skipWhitespace ();
- dataBufferAppend (readNmtoken (isNames));
- // Read the remaining tokens.
- skipWhitespace ();
- while (!tryRead (')')) {
- require ('|');
- dataBufferAppend ('|');
- skipWhitespace ();
- dataBufferAppend (readNmtoken (isNames));
- skipWhitespace ();
- }
- dataBufferAppend (')');
- }
-
+ {
+ dataBufferAppend('(');
+
+ // Read the first token.
+ skipWhitespace();
+ dataBufferAppend(readNmtoken(isNames));
+ // Read the remaining tokens.
+ skipWhitespace();
+ while (!tryRead(')'))
+ {
+ require('|');
+ dataBufferAppend('|');
+ skipWhitespace();
+ dataBufferAppend(readNmtoken (isNames));
+ skipWhitespace();
+ }
+ dataBufferAppend(')');
+ }
- /**
- * Parse a notation type for an attribute.
- * <pre>
- * [58] NotationType ::= 'NOTATION' S '(' S? NameNtoks
- * (S? '|' S? name)* S? ')'
- * </pre>
- * <p>NOTE: the 'NOTATION' has already been read
- */
- private void parseNotationType ()
+ /**
+ * Parse a notation type for an attribute.
+ * <pre>
+ * [58] NotationType ::= 'NOTATION' S '(' S? NameNtoks
+ * (S? '|' S? name)* S? ')'
+ * </pre>
+ * <p>NOTE: the 'NOTATION' has already been read
+ */
+ private void parseNotationType()
throws Exception
- {
- requireWhitespace ();
- require ('(');
-
- parseEnumeration (true);
- }
-
-
- /**
- * Parse the default value for an attribute.
- * <pre>
- * [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
- * | (('#FIXED' S)? AttValue)
- * </pre>
- */
- private void parseDefault (
- String elementName,
- String name,
- String type,
- String enumer
- ) throws Exception
- {
- int valueType = ATTRIBUTE_DEFAULT_SPECIFIED;
- String value = null;
- int flags = LIT_ATTRIBUTE;
- boolean saved = expandPE;
- String defaultType = null;
-
- // LIT_ATTRIBUTE forces '<' checks now (ASAP) and turns whitespace
- // chars to spaces (doesn't matter when that's done if it doesn't
- // interfere with char refs expanding to whitespace).
-
- if (!skippedPE) {
- flags |= LIT_ENTITY_REF;
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- if ("CDATA" != type)
- flags |= LIT_NORMALIZE;
- } else {
- if (!"CDATA".equals(type))
- flags |= LIT_NORMALIZE;
- }
- }
-
- expandPE = false;
- if (tryRead ('#')) {
- if (tryRead ("FIXED")) {
- defaultType = "#FIXED";
- valueType = ATTRIBUTE_DEFAULT_FIXED;
- requireWhitespace ();
- value = readLiteral (flags);
- } else if (tryRead ("REQUIRED")) {
- defaultType = "#REQUIRED";
- valueType = ATTRIBUTE_DEFAULT_REQUIRED;
- } else if (tryRead ("IMPLIED")) {
- defaultType = "#IMPLIED";
- valueType = ATTRIBUTE_DEFAULT_IMPLIED;
- } else {
- error ("illegal keyword for attribute default value");
- }
- } else
- value = readLiteral (flags);
- expandPE = saved;
- setAttribute (elementName, name, type, enumer, value, valueType);
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- if ("ENUMERATION" == type)
- type = enumer;
- else if ("NOTATION" == type)
- type = "NOTATION " + enumer;
- } else {
- if ("ENUMERATION".equals(type))
- type = enumer;
- else if ("NOTATION".equals(type))
- type = "NOTATION " + enumer;
+ {
+ requireWhitespace();
+ require('(');
+
+ parseEnumeration(true);
}
- if (!skippedPE) handler.getDeclHandler ()
- .attributeDecl (elementName, name, type, defaultType, value);
- }
-
- /**
- * Parse a conditional section.
- * <pre>
- * [61] conditionalSect ::= includeSect || ignoreSect
- * [62] includeSect ::= '&lt;![' S? 'INCLUDE' S? '['
- * extSubsetDecl ']]&gt;'
- * [63] ignoreSect ::= '&lt;![' S? 'IGNORE' S? '['
- * ignoreSectContents* ']]&gt;'
- * [64] ignoreSectContents ::= Ignore
- * ('&lt;![' ignoreSectContents* ']]&gt;' Ignore )*
- * [65] Ignore ::= Char* - (Char* ( '&lt;![' | ']]&gt;') Char* )
- * </pre>
- * <p> NOTE: the '&gt;![' has already been read.
- */
- private void parseConditionalSect (char saved [])
+ /**
+ * Parse the default value for an attribute.
+ * <pre>
+ * [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
+ * | (('#FIXED' S)? AttValue)
+ * </pre>
+ */
+ private void parseDefault(String elementName, String name,
+ String type, String enumer)
throws Exception
- {
- skipWhitespace ();
- if (tryRead ("INCLUDE")) {
- skipWhitespace ();
- require ('[');
- // VC: Proper Conditional Section/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Conditional Section/PE nesting");
- skipWhitespace ();
- while (!tryRead ("]]>")) {
- parseMarkupdecl ();
- skipWhitespace ();
- }
- } else if (tryRead ("IGNORE")) {
- skipWhitespace ();
- require ('[');
- // VC: Proper Conditional Section/PE Nesting
- if (readBuffer != saved)
- handler.verror ("Illegal Conditional Section/PE nesting");
- int nesting = 1;
- char c;
- expandPE = false;
- for (int nest = 1; nest > 0;) {
- c = readCh ();
- switch (c) {
- case '<':
- if (tryRead ("![")) {
- nest++;
- }
- case ']':
- if (tryRead ("]>")) {
- nest--;
- }
- }
- }
- expandPE = true;
- } else {
- error ("conditional section must begin with INCLUDE or IGNORE");
- }
- }
-
- private void parseCharRef ()
+ {
+ int valueType = ATTRIBUTE_DEFAULT_SPECIFIED;
+ String value = null;
+ int flags = LIT_ATTRIBUTE;
+ boolean saved = expandPE;
+ String defaultType = null;
+
+ // LIT_ATTRIBUTE forces '<' checks now (ASAP) and turns whitespace
+ // chars to spaces (doesn't matter when that's done if it doesn't
+ // interfere with char refs expanding to whitespace).
+
+ if (!skippedPE)
+ {
+ flags |= LIT_ENTITY_REF;
+ if (handler.stringInterning)
+ {
+ if ("CDATA" != type)
+ {
+ flags |= LIT_NORMALIZE;
+ }
+ }
+ else
+ {
+ if (!"CDATA".equals(type))
+ {
+ flags |= LIT_NORMALIZE;
+ }
+ }
+ }
+
+ expandPE = false;
+ if (tryRead('#'))
+ {
+ if (tryRead("FIXED"))
+ {
+ defaultType = "#FIXED";
+ valueType = ATTRIBUTE_DEFAULT_FIXED;
+ requireWhitespace();
+ value = readLiteral(flags);
+ }
+ else if (tryRead("REQUIRED"))
+ {
+ defaultType = "#REQUIRED";
+ valueType = ATTRIBUTE_DEFAULT_REQUIRED;
+ }
+ else if (tryRead("IMPLIED"))
+ {
+ defaultType = "#IMPLIED";
+ valueType = ATTRIBUTE_DEFAULT_IMPLIED;
+ }
+ else
+ {
+ error("illegal keyword for attribute default value");
+ }
+ }
+ else
+ {
+ value = readLiteral(flags);
+ }
+ expandPE = saved;
+ setAttribute(elementName, name, type, enumer, value, valueType);
+ if (handler.stringInterning)
+ {
+ if ("ENUMERATION" == type)
+ {
+ type = enumer;
+ }
+ else if ("NOTATION" == type)
+ {
+ type = "NOTATION " + enumer;
+ }
+ }
+ else
+ {
+ if ("ENUMERATION".equals(type))
+ {
+ type = enumer;
+ }
+ else if ("NOTATION".equals(type))
+ {
+ type = "NOTATION " + enumer;
+ }
+ }
+ if (!skippedPE)
+ {
+ handler.getDeclHandler().attributeDecl(elementName, name, type,
+ defaultType, value);
+ }
+ }
+
+ /**
+ * Parse a conditional section.
+ * <pre>
+ * [61] conditionalSect ::= includeSect || ignoreSect
+ * [62] includeSect ::= '&lt;![' S? 'INCLUDE' S? '['
+ * extSubsetDecl ']]&gt;'
+ * [63] ignoreSect ::= '&lt;![' S? 'IGNORE' S? '['
+ * ignoreSectContents* ']]&gt;'
+ * [64] ignoreSectContents ::= Ignore
+ * ('&lt;![' ignoreSectContents* ']]&gt;' Ignore )*
+ * [65] Ignore ::= Char* - (Char* ( '&lt;![' | ']]&gt;') Char* )
+ * </pre>
+ * <p> NOTE: the '&gt;![' has already been read.
+ */
+ private void parseConditionalSect(char[] saved)
+ throws Exception
+ {
+ skipWhitespace();
+ if (tryRead("INCLUDE"))
+ {
+ skipWhitespace();
+ require('[');
+ // VC: Proper Conditional Section/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Conditional Section/PE nesting");
+ }
+ skipWhitespace();
+ while (!tryRead("]]>"))
+ {
+ parseMarkupdecl();
+ skipWhitespace();
+ }
+ }
+ else if (tryRead("IGNORE"))
+ {
+ skipWhitespace();
+ require('[');
+ // VC: Proper Conditional Section/PE Nesting
+ if (readBuffer != saved)
+ {
+ handler.verror("Illegal Conditional Section/PE nesting");
+ }
+ int nesting = 1;
+ char c;
+ expandPE = false;
+ for (int nest = 1; nest > 0; )
+ {
+ c = readCh();
+ switch (c)
+ {
+ case '<':
+ if (tryRead("!["))
+ {
+ nest++;
+ }
+ case ']':
+ if (tryRead("]>"))
+ {
+ nest--;
+ }
+ }
+ }
+ expandPE = true;
+ }
+ else
+ {
+ error("conditional section must begin with INCLUDE or IGNORE");
+ }
+ }
+
+ private void parseCharRef()
throws SAXException, IOException
{
- parseCharRef (true /* do flushDataBuffer by default */);
+ parseCharRef(true /* do flushDataBuffer by default */);
}
/**
@@ -1830,1485 +2213,1717 @@ loop:
* </pre>
* <p>NOTE: the '&#' has already been read.
*/
- private void tryReadCharRef ()
- throws SAXException, IOException
+ private void tryReadCharRef()
+ throws SAXException, IOException
{
- int value = 0;
- char c;
-
- if (tryRead ('x')) {
+ int value = 0;
+ char c;
+
+ if (tryRead('x'))
+ {
loop1:
- while (true) {
- c = readCh ();
- int n;
- switch (c) {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- n = c - '0';
- break;
- case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
- n = (c - 'a') + 10;
- break;
- case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
- n = (c - 'A') + 10;
- break;
- case ';':
- break loop1;
- default:
- error ("illegal character in character reference", c, null);
- break loop1;
- }
- value *= 16;
- value += n;
- }
- } else {
+ while (true)
+ {
+ c = readCh();
+ if (c == ';')
+ {
+ break loop1;
+ }
+ else
+ {
+ int n = Character.digit(c, 16);
+ if (n == -1)
+ {
+ error("illegal character in character reference", c, null);
+ break loop1;
+ }
+ value *= 16;
+ value += n;
+ }
+ }
+ }
+ else
+ {
loop2:
- while (true) {
- c = readCh ();
- switch (c) {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- value *= 10;
- value += c - '0';
- break;
- case ';':
- break loop2;
- default:
- error ("illegal character in character reference", c, null);
- break loop2;
- }
- }
- }
-
- // check for character refs being legal XML
- if ((value < 0x0020
- && ! (value == '\n' || value == '\t' || value == '\r'))
- || (value >= 0xD800 && value <= 0xDFFF)
- || value == 0xFFFE || value == 0xFFFF
- || value > 0x0010ffff)
- error ("illegal XML character reference U+"
- + Integer.toHexString (value));
-
- // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
- // (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
- if (value > 0x0010ffff) {
- // too big for surrogate
- error ("character reference " + value + " is too large for UTF-16",
- new Integer (value).toString (), null);
- }
-
+ while (true)
+ {
+ c = readCh();
+ if (c == ';')
+ {
+ break loop2;
+ }
+ else
+ {
+ int n = Character.digit(c, 10);
+ if (n == -1)
+ {
+ error("illegal character in character reference", c, null);
+ break loop2;
+ }
+ value *= 10;
+ value += n;
+ }
+ }
+ }
+
+ // check for character refs being legal XML
+ if ((value < 0x0020
+ && ! (value == '\n' || value == '\t' || value == '\r'))
+ || (value >= 0xD800 && value <= 0xDFFF)
+ || value == 0xFFFE || value == 0xFFFF
+ || value > 0x0010ffff)
+ {
+ error("illegal XML character reference U+"
+ + Integer.toHexString(value));
+ }
+
+ // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
+ // (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
+ if (value > 0x0010ffff)
+ {
+ // too big for surrogate
+ error("character reference " + value + " is too large for UTF-16",
+ new Integer(value).toString(), null);
+ }
+
}
- /**
- * Read and interpret a character reference.
- * <pre>
- * [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
- * </pre>
- * <p>NOTE: the '&#' has already been read.
- */
- private void parseCharRef (boolean doFlush)
+ /**
+ * Read and interpret a character reference.
+ * <pre>
+ * [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
+ * </pre>
+ * <p>NOTE: the '&#' has already been read.
+ */
+ private void parseCharRef(boolean doFlush)
throws SAXException, IOException
- {
- int value = 0;
- char c;
-
- if (tryRead ('x')) {
+ {
+ int value = 0;
+ char c;
+
+ if (tryRead('x'))
+ {
loop1:
- while (true) {
- c = readCh ();
- int n;
- switch (c) {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- n = c - '0';
- break;
- case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
- n = (c - 'a') + 10;
- break;
- case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
- n = (c - 'A') + 10;
- break;
- case ';':
- break loop1;
- default:
- error ("illegal character in character reference", c, null);
- break loop1;
- }
- value *= 16;
- value += n;
- }
- } else {
+ while (true)
+ {
+ c = readCh();
+ if (c == ';')
+ {
+ break loop1;
+ }
+ else
+ {
+ int n = Character.digit(c, 16);
+ if (n == -1)
+ {
+ error("illegal character in character reference", c, null);
+ break loop1;
+ }
+ value *= 16;
+ value += n;
+ }
+ }
+ }
+ else
+ {
loop2:
- while (true) {
- c = readCh ();
- switch (c) {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- value *= 10;
- value += c - '0';
- break;
- case ';':
- break loop2;
- default:
- error ("illegal character in character reference", c, null);
- break loop2;
- }
- }
- }
-
- // check for character refs being legal XML
- if ((value < 0x0020
- && ! (value == '\n' || value == '\t' || value == '\r'))
- || (value >= 0xD800 && value <= 0xDFFF)
- || value == 0xFFFE || value == 0xFFFF
- || value > 0x0010ffff)
- error ("illegal XML character reference U+"
- + Integer.toHexString (value));
-
- // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
- // (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
- if (value <= 0x0000ffff) {
- // no surrogates needed
- dataBufferAppend ((char) value);
- } else if (value <= 0x0010ffff) {
- value -= 0x10000;
- // > 16 bits, surrogate needed
- dataBufferAppend ((char) (0xd800 | (value >> 10)));
- dataBufferAppend ((char) (0xdc00 | (value & 0x0003ff)));
- } else {
- // too big for surrogate
- error ("character reference " + value + " is too large for UTF-16",
- new Integer (value).toString (), null);
- }
- if (doFlush) dataBufferFlush ();
- }
-
-
- /**
- * Parse and expand an entity reference.
- * <pre>
- * [68] EntityRef ::= '&' Name ';'
- * </pre>
- * <p>NOTE: the '&amp;' has already been read.
- * @param externalAllowed External entities are allowed here.
- */
- private void parseEntityRef (boolean externalAllowed)
+ while (true)
+ {
+ c = readCh();
+ if (c == ';')
+ {
+ break loop2;
+ }
+ else
+ {
+ int n = Character.digit(c, 10);
+ if (n == -1)
+ {
+ error("illegal character in character reference", c, null);
+ break loop2;
+ }
+ value *= 10;
+ value += c - '0';
+ }
+ }
+ }
+
+ // check for character refs being legal XML
+ if ((value < 0x0020
+ && ! (value == '\n' || value == '\t' || value == '\r'))
+ || (value >= 0xD800 && value <= 0xDFFF)
+ || value == 0xFFFE || value == 0xFFFF
+ || value > 0x0010ffff)
+ {
+ error("illegal XML character reference U+"
+ + Integer.toHexString(value));
+ }
+
+ // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz
+ // (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz:
+ if (value <= 0x0000ffff)
+ {
+ // no surrogates needed
+ dataBufferAppend((char) value);
+ }
+ else if (value <= 0x0010ffff)
+ {
+ value -= 0x10000;
+ // > 16 bits, surrogate needed
+ dataBufferAppend((char) (0xd800 | (value >> 10)));
+ dataBufferAppend((char) (0xdc00 | (value & 0x0003ff)));
+ }
+ else
+ {
+ // too big for surrogate
+ error("character reference " + value + " is too large for UTF-16",
+ new Integer(value).toString(), null);
+ }
+ if (doFlush)
+ {
+ dataBufferFlush();
+ }
+ }
+
+ /**
+ * Parse and expand an entity reference.
+ * <pre>
+ * [68] EntityRef ::= '&' Name ';'
+ * </pre>
+ * <p>NOTE: the '&amp;' has already been read.
+ * @param externalAllowed External entities are allowed here.
+ */
+ private void parseEntityRef(boolean externalAllowed)
throws SAXException, IOException
- {
- String name;
-
- name = readNmtoken (true);
- require (';');
- switch (getEntityType (name)) {
- case ENTITY_UNDECLARED:
- // NOTE: XML REC describes amazingly convoluted handling for
- // this case. Nothing as meaningful as being a WFness error
- // unless the processor might _legitimately_ not have seen a
- // declaration ... which is what this implements.
- String message;
-
- message = "reference to undeclared general entity " + name;
- if (skippedPE && !docIsStandalone) {
- handler.verror (message);
- // we don't know this entity, and it might be external...
- if (externalAllowed)
- handler.skippedEntity (name);
- } else
- error (message);
- break;
- case ENTITY_INTERNAL:
- pushString (name, getEntityValue (name));
-
- //workaround for possible input pop before marking
- //the buffer reading position
- char t = readCh ();
- unread (t);
- int bufferPosMark = readBufferPos;
-
- int end = readBufferPos + getEntityValue (name).length();
- for(int k = readBufferPos; k < end; k++){
- t = readCh ();
- if (t == '&'){
- t = readCh ();
- if (t == '#'){
- //try to match a character ref
- tryReadCharRef ();
-
- //everything has been read
- if (readBufferPos >= end)
- break;
- k = readBufferPos;
- continue;
- }
- else if (Character.isLetter(t)){
- //looks like an entity ref
- unread (t);
- readNmtoken (true);
- require (';');
-
- //everything has been read
- if (readBufferPos >= end)
- break;
- k = readBufferPos;
- continue;
- }
- error(" malformed entity reference");
- }
-
+ {
+ String name;
+
+ name = readNmtoken(true);
+ require(';');
+ switch (getEntityType(name))
+ {
+ case ENTITY_UNDECLARED:
+ // NOTE: XML REC describes amazingly convoluted handling for
+ // this case. Nothing as meaningful as being a WFness error
+ // unless the processor might _legitimately_ not have seen a
+ // declaration ... which is what this implements.
+ String message;
+
+ message = "reference to undeclared general entity " + name;
+ if (skippedPE && !docIsStandalone)
+ {
+ handler.verror(message);
+ // we don't know this entity, and it might be external...
+ if (externalAllowed)
+ {
+ handler.skippedEntity(name);
+ }
+ }
+ else
+ {
+ error(message);
+ }
+ break;
+ case ENTITY_INTERNAL:
+ pushString(name, getEntityValue(name));
+
+ //workaround for possible input pop before marking
+ //the buffer reading position
+ char t = readCh();
+ unread(t);
+ int bufferPosMark = readBufferPos;
+
+ int end = readBufferPos + getEntityValue(name).length();
+ for (int k = readBufferPos; k < end; k++)
+ {
+ t = readCh();
+ if (t == '&')
+ {
+ t = readCh();
+ if (t == '#')
+ {
+ //try to match a character ref
+ tryReadCharRef();
+
+ //everything has been read
+ if (readBufferPos >= end)
+ {
+ break;
+ }
+ k = readBufferPos;
+ continue;
+ }
+ else if (Character.isLetter(t))
+ {
+ //looks like an entity ref
+ unread(t);
+ readNmtoken(true);
+ require(';');
+
+ //everything has been read
+ if (readBufferPos >= end)
+ {
+ break;
+ }
+ k = readBufferPos;
+ continue;
+ }
+ error(" malformed entity reference");
+ }
+
}
- readBufferPos = bufferPosMark;
- break;
- case ENTITY_TEXT:
- if (externalAllowed) {
- pushURL (false, name, getEntityIds (name),
- null, null, null, true);
- } else {
- error ("reference to external entity in attribute value.",
- name, null);
- }
- break;
- case ENTITY_NDATA:
- if (externalAllowed) {
- error ("unparsed entity reference in content", name, null);
- } else {
- error ("reference to external entity in attribute value.",
- name, null);
- }
- break;
- default:
- throw new RuntimeException ();
- }
- }
-
-
- /**
- * Parse and expand a parameter entity reference.
- * <pre>
- * [69] PEReference ::= '%' Name ';'
- * </pre>
- * <p>NOTE: the '%' has already been read.
- */
- private void parsePEReference ()
+ readBufferPos = bufferPosMark;
+ break;
+ case ENTITY_TEXT:
+ if (externalAllowed)
+ {
+ pushURL(false, name, getEntityIds(name),
+ null, null, null, true);
+ }
+ else
+ {
+ error("reference to external entity in attribute value.",
+ name, null);
+ }
+ break;
+ case ENTITY_NDATA:
+ if (externalAllowed)
+ {
+ error("unparsed entity reference in content", name, null);
+ }
+ else
+ {
+ error("reference to external entity in attribute value.",
+ name, null);
+ }
+ break;
+ default:
+ throw new RuntimeException();
+ }
+ }
+
+ /**
+ * Parse and expand a parameter entity reference.
+ * <pre>
+ * [69] PEReference ::= '%' Name ';'
+ * </pre>
+ * <p>NOTE: the '%' has already been read.
+ */
+ private void parsePEReference()
throws SAXException, IOException
- {
- String name;
-
- name = "%" + readNmtoken (true);
- require (';');
- switch (getEntityType (name)) {
- case ENTITY_UNDECLARED:
- // VC: Entity Declared
- handler.verror ("reference to undeclared parameter entity " + name);
-
- // we should disable handling of all subsequent declarations
- // unless this is a standalone document (info discarded)
- break;
- case ENTITY_INTERNAL:
- if (inLiteral)
- pushString (name, getEntityValue (name));
- else
- pushString (name, ' ' + getEntityValue (name) + ' ');
- break;
- case ENTITY_TEXT:
- if (!inLiteral)
- pushString (null, " ");
- pushURL (true, name, getEntityIds (name), null, null, null, true);
- if (!inLiteral)
- pushString (null, " ");
- break;
- }
- }
-
- /**
- * Parse an entity declaration.
- * <pre>
- * [70] EntityDecl ::= GEDecl | PEDecl
- * [71] GEDecl ::= '&lt;!ENTITY' S Name S EntityDef S? '&gt;'
- * [72] PEDecl ::= '&lt;!ENTITY' S '%' S Name S PEDef S? '&gt;'
- * [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)
- * [74] PEDef ::= EntityValue | ExternalID
- * [75] ExternalID ::= 'SYSTEM' S SystemLiteral
- * | 'PUBLIC' S PubidLiteral S SystemLiteral
- * [76] NDataDecl ::= S 'NDATA' S Name
- * </pre>
- * <p>NOTE: the '&lt;!ENTITY' has already been read.
- */
- private void parseEntityDecl ()
+ {
+ String name;
+
+ name = "%" + readNmtoken(true);
+ require(';');
+ switch (getEntityType(name))
+ {
+ case ENTITY_UNDECLARED:
+ // VC: Entity Declared
+ handler.verror("reference to undeclared parameter entity " + name);
+
+ // we should disable handling of all subsequent declarations
+ // unless this is a standalone document (info discarded)
+ break;
+ case ENTITY_INTERNAL:
+ if (inLiteral)
+ {
+ pushString(name, getEntityValue(name));
+ }
+ else
+ {
+ pushString(name, ' ' + getEntityValue(name) + ' ');
+ }
+ break;
+ case ENTITY_TEXT:
+ if (!inLiteral)
+ {
+ pushString(null, " ");
+ }
+ pushURL(true, name, getEntityIds(name), null, null, null, true);
+ if (!inLiteral)
+ {
+ pushString(null, " ");
+ }
+ break;
+ }
+ }
+
+ /**
+ * Parse an entity declaration.
+ * <pre>
+ * [70] EntityDecl ::= GEDecl | PEDecl
+ * [71] GEDecl ::= '&lt;!ENTITY' S Name S EntityDef S? '&gt;'
+ * [72] PEDecl ::= '&lt;!ENTITY' S '%' S Name S PEDef S? '&gt;'
+ * [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)
+ * [74] PEDef ::= EntityValue | ExternalID
+ * [75] ExternalID ::= 'SYSTEM' S SystemLiteral
+ * | 'PUBLIC' S PubidLiteral S SystemLiteral
+ * [76] NDataDecl ::= S 'NDATA' S Name
+ * </pre>
+ * <p>NOTE: the '&lt;!ENTITY' has already been read.
+ */
+ private void parseEntityDecl()
throws Exception
- {
- boolean peFlag = false;
- int flags = 0;
-
- // Check for a parameter entity.
- expandPE = false;
- requireWhitespace ();
- if (tryRead ('%')) {
- peFlag = true;
- requireWhitespace ();
- }
- expandPE = true;
-
- // Read the entity name, and prepend
- // '%' if necessary.
- String name = readNmtoken (true);
- //NE08
- if (name.indexOf(':') >= 0)
- error ("Illegal character(':') in entity name ", name, null);
- if (peFlag) {
- name = "%" + name;
- }
-
- // Read the entity value.
- requireWhitespace ();
- char c = readCh ();
- unread (c);
- if (c == '"' || c == '\'') {
- // Internal entity ... replacement text has expanded refs
- // to characters and PEs, but not to general entities
- String value = readLiteral (flags);
- setInternalEntity (name, value);
- } else {
- // Read the external IDs
- String ids [] = readExternalIds (false, false);
-
- // Check for NDATA declaration.
- boolean white = tryWhitespace ();
- if (!peFlag && tryRead ("NDATA")) {
- if (!white)
- error ("whitespace required before NDATA");
- requireWhitespace ();
- String notationName = readNmtoken (true);
- if (!skippedPE) {
- setExternalEntity (name, ENTITY_NDATA, ids, notationName);
- handler.unparsedEntityDecl (name, ids, notationName);
- }
- } else if (!skippedPE) {
- setExternalEntity (name, ENTITY_TEXT, ids, null);
- handler.getDeclHandler ()
- .externalEntityDecl (name, ids [0],
- handler.resolveURIs ()
- // FIXME: ASSUMES not skipped
- // "false" forces error on bad URI
- ? handler.absolutize (ids [2], ids [1], false)
- : ids [1]);
- }
- }
-
- // Finish the declaration.
- skipWhitespace ();
- require ('>');
- }
+ {
+ boolean peFlag = false;
+ int flags = 0;
+
+ // Check for a parameter entity.
+ expandPE = false;
+ requireWhitespace();
+ if (tryRead('%'))
+ {
+ peFlag = true;
+ requireWhitespace();
+ }
+ expandPE = true;
+
+ // Read the entity name, and prepend
+ // '%' if necessary.
+ String name = readNmtoken(true);
+ //NE08
+ if (name.indexOf(':') >= 0)
+ {
+ error("Illegal character(':') in entity name ", name, null);
+ }
+ if (peFlag)
+ {
+ name = "%" + name;
+ }
+ // Read the entity value.
+ requireWhitespace();
+ char c = readCh();
+ unread (c);
+ if (c == '"' || c == '\'')
+ {
+ // Internal entity ... replacement text has expanded refs
+ // to characters and PEs, but not to general entities
+ String value = readLiteral(flags);
+ setInternalEntity(name, value);
+ }
+ else
+ {
+ // Read the external IDs
+ ExternalIdentifiers ids = readExternalIds(false, false);
+
+ // Check for NDATA declaration.
+ boolean white = tryWhitespace();
+ if (!peFlag && tryRead("NDATA"))
+ {
+ if (!white)
+ {
+ error("whitespace required before NDATA");
+ }
+ requireWhitespace();
+ String notationName = readNmtoken(true);
+ if (!skippedPE)
+ {
+ setExternalEntity(name, ENTITY_NDATA, ids, notationName);
+ handler.unparsedEntityDecl(name, ids.publicId, ids.systemId,
+ ids.baseUri, notationName);
+ }
+ }
+ else if (!skippedPE)
+ {
+ setExternalEntity(name, ENTITY_TEXT, ids, null);
+ handler.getDeclHandler()
+ .externalEntityDecl(name, ids.publicId,
+ handler.resolveURIs()
+ // FIXME: ASSUMES not skipped
+ // "false" forces error on bad URI
+ ? handler.absolutize(ids.baseUri,
+ ids.systemId,
+ false)
+ : ids.systemId);
+ }
+ }
+
+ // Finish the declaration.
+ skipWhitespace();
+ require('>');
+ }
- /**
- * Parse a notation declaration.
- * <pre>
- * [82] NotationDecl ::= '&lt;!NOTATION' S Name S
- * (ExternalID | PublicID) S? '&gt;'
- * [83] PublicID ::= 'PUBLIC' S PubidLiteral
- * </pre>
- * <P>NOTE: the '&lt;!NOTATION' has already been read.
- */
- private void parseNotationDecl ()
+ /**
+ * Parse a notation declaration.
+ * <pre>
+ * [82] NotationDecl ::= '&lt;!NOTATION' S Name S
+ * (ExternalID | PublicID) S? '&gt;'
+ * [83] PublicID ::= 'PUBLIC' S PubidLiteral
+ * </pre>
+ * <P>NOTE: the '&lt;!NOTATION' has already been read.
+ */
+ private void parseNotationDecl()
throws Exception
- {
- String nname, ids[];
-
-
- requireWhitespace ();
- nname = readNmtoken (true);
- //NE08
- if (nname.indexOf(':') >= 0)
- error ("Illegal character(':') in notation name ", nname, null);
- requireWhitespace ();
-
- // Read the external identifiers.
- ids = readExternalIds (true, false);
-
- // Register the notation.
- setNotation (nname, ids);
-
- skipWhitespace ();
- require ('>');
- }
+ {
+ String nname;
+ ExternalIdentifiers ids;
+
+ requireWhitespace();
+ nname = readNmtoken(true);
+ //NE08
+ if (nname.indexOf(':') >= 0)
+ {
+ error("Illegal character(':') in notation name ", nname, null);
+ }
+ requireWhitespace();
+ // Read the external identifiers.
+ ids = readExternalIds(true, false);
- /**
- * Parse character data.
- * <pre>
- * [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)
- * </pre>
- */
- private void parseCharData ()
+ // Register the notation.
+ setNotation(nname, ids);
+
+ skipWhitespace();
+ require('>');
+ }
+
+ /**
+ * Parse character data.
+ * <pre>
+ * [14] CharData ::= [^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)
+ * </pre>
+ */
+ private void parseCharData()
throws Exception
- {
- char c;
- int state = 0;
- boolean pureWhite = false;
-
- // assert (dataBufferPos == 0);
-
- // are we expecting pure whitespace? it might be dirty...
- if ((currentElementContent == CONTENT_ELEMENTS) && !isDirtyCurrentElement)
- pureWhite = true;
+ {
+ char c;
+ int state = 0;
+ boolean pureWhite = false;
- // always report right out of readBuffer
- // to minimize (pointless) buffer copies
- while (true) {
- int lineAugment = 0;
- int columnAugment = 0;
- int i;
+ // assert (dataBufferPos == 0);
+
+ // are we expecting pure whitespace? it might be dirty...
+ if ((currentElementContent == CONTENT_ELEMENTS) && !isDirtyCurrentElement)
+ {
+ pureWhite = true;
+ }
+ // always report right out of readBuffer
+ // to minimize (pointless) buffer copies
+ while (true)
+ {
+ int lineAugment = 0;
+ int columnAugment = 0;
+ int i;
+
loop:
- for (i = readBufferPos; i < readBufferLength; i++) {
- switch (c = readBuffer [i]) {
- case '\n':
- lineAugment++;
- columnAugment = 0;
- // pureWhite unmodified
- break;
- case '\r': // should not happen!!
- case '\t':
- case ' ':
- // pureWhite unmodified
- columnAugment++;
- break;
- case '&':
- case '<':
- columnAugment++;
- // pureWhite unmodified
- // CLEAN end of text sequence
- state = 1;
- break loop;
- case ']':
- // that's not a whitespace char, and
- // can not terminate pure whitespace either
- pureWhite = false;
- if ((i + 2) < readBufferLength) {
- if (readBuffer [i + 1] == ']'
- && readBuffer [i + 2] == '>') {
- // ERROR end of text sequence
- state = 2;
- break loop;
- }
- } else {
- // FIXME missing two end-of-buffer cases
- }
- columnAugment++;
- break;
- default:
- if ((c < 0x0020 || c > 0xFFFD)
- || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
- && xmlVersion == XML_11))
- error ("illegal XML character U+"
- + Integer.toHexString (c));
- // that's not a whitespace char
- pureWhite = false;
- columnAugment++;
- }
- }
-
- // report text thus far
- if (lineAugment > 0) {
- line += lineAugment;
- column = columnAugment;
- } else {
- column += columnAugment;
- }
-
- // report characters/whitspace
- int length = i - readBufferPos;
-
- if (length != 0) {
- if (pureWhite)
- handler.ignorableWhitespace (readBuffer,
- readBufferPos, length);
- else
- handler.charData (readBuffer, readBufferPos, length);
- readBufferPos = i;
- }
-
- if (state != 0)
- break;
-
- // fill next buffer from this entity, or
- // pop stack and continue with previous entity
- unread (readCh ());
- }
- if (!pureWhite)
- isDirtyCurrentElement = true;
- // finish, maybe with error
- if (state != 1) // finish, no error
- error ("character data may not contain ']]>'");
- }
-
-
- //////////////////////////////////////////////////////////////////////
- // High-level reading and scanning methods.
- //////////////////////////////////////////////////////////////////////
-
- /**
- * Require whitespace characters.
- */
- private void requireWhitespace ()
+ for (i = readBufferPos; i < readBufferLength; i++)
+ {
+ switch (c = readBuffer[i])
+ {
+ case '\n':
+ lineAugment++;
+ columnAugment = 0;
+ // pureWhite unmodified
+ break;
+ case '\r': // should not happen!!
+ case '\t':
+ case ' ':
+ // pureWhite unmodified
+ columnAugment++;
+ break;
+ case '&':
+ case '<':
+ columnAugment++;
+ // pureWhite unmodified
+ // CLEAN end of text sequence
+ state = 1;
+ break loop;
+ case ']':
+ // that's not a whitespace char, and
+ // can not terminate pure whitespace either
+ pureWhite = false;
+ if ((i + 2) < readBufferLength)
+ {
+ if (readBuffer [i + 1] == ']'
+ && readBuffer [i + 2] == '>')
+ {
+ // ERROR end of text sequence
+ state = 2;
+ break loop;
+ }
+ }
+ else
+ {
+ // FIXME missing two end-of-buffer cases
+ }
+ columnAugment++;
+ break;
+ default:
+ if ((c < 0x0020 || c > 0xFFFD)
+ || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
+ && xmlVersion == XML_11))
+ {
+ error("illegal XML character U+"
+ + Integer.toHexString(c));
+ }
+ // that's not a whitespace char
+ pureWhite = false;
+ columnAugment++;
+ }
+ }
+
+ // report text thus far
+ if (lineAugment > 0)
+ {
+ line += lineAugment;
+ column = columnAugment;
+ }
+ else
+ {
+ column += columnAugment;
+ }
+
+ // report characters/whitspace
+ int length = i - readBufferPos;
+
+ if (length != 0)
+ {
+ if (pureWhite)
+ {
+ handler.ignorableWhitespace(readBuffer,
+ readBufferPos, length);
+ }
+ else
+ {
+ handler.charData(readBuffer, readBufferPos, length);
+ }
+ readBufferPos = i;
+ }
+
+ if (state != 0)
+ {
+ break;
+ }
+
+ // fill next buffer from this entity, or
+ // pop stack and continue with previous entity
+ unread(readCh());
+ }
+ if (!pureWhite)
+ {
+ isDirtyCurrentElement = true;
+ }
+ // finish, maybe with error
+ if (state != 1) // finish, no error
+ {
+ error("character data may not contain ']]>'");
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // High-level reading and scanning methods.
+ //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Require whitespace characters.
+ */
+ private void requireWhitespace()
throws SAXException, IOException
- {
- char c = readCh ();
- if (isWhitespace (c)) {
- skipWhitespace ();
- } else {
- error ("whitespace required", c, null);
- }
- }
-
+ {
+ char c = readCh();
+ if (isWhitespace(c))
+ {
+ skipWhitespace();
+ }
+ else
+ {
+ error("whitespace required", c, null);
+ }
+ }
- /**
- * Skip whitespace characters.
- * <pre>
- * [3] S ::= (#x20 | #x9 | #xd | #xa)+
- * </pre>
- */
- private void skipWhitespace ()
+ /**
+ * Skip whitespace characters.
+ * <pre>
+ * [3] S ::= (#x20 | #x9 | #xd | #xa)+
+ * </pre>
+ */
+ private void skipWhitespace()
throws SAXException, IOException
- {
- // Start with a little cheat. Most of
- // the time, the white space will fall
- // within the current read buffer; if
- // not, then fall through.
- if (USE_CHEATS) {
- int lineAugment = 0;
- int columnAugment = 0;
-
+ {
+ // Start with a little cheat. Most of
+ // the time, the white space will fall
+ // within the current read buffer; if
+ // not, then fall through.
+ if (USE_CHEATS)
+ {
+ int lineAugment = 0;
+ int columnAugment = 0;
+
loop:
- for (int i = readBufferPos; i < readBufferLength; i++) {
- switch (readBuffer [i]) {
- case ' ':
- case '\t':
- case '\r':
- columnAugment++;
- break;
- case '\n':
- lineAugment++;
- columnAugment = 0;
- break;
- case '%':
- if (expandPE)
- break loop;
- // else fall through...
- default:
- readBufferPos = i;
- if (lineAugment > 0) {
- line += lineAugment;
- column = columnAugment;
- } else {
- column += columnAugment;
- }
- return;
- }
- }
- }
-
- // OK, do it the slow way.
- char c = readCh ();
- while (isWhitespace (c)) {
- c = readCh ();
- }
- unread (c);
- }
-
-
- /**
- * Read a name or (when parsing an enumeration) name token.
- * <pre>
- * [5] Name ::= (Letter | '_' | ':') (NameChar)*
- * [7] Nmtoken ::= (NameChar)+
- * </pre>
- */
- private String readNmtoken (boolean isName)
+ for (int i = readBufferPos; i < readBufferLength; i++)
+ {
+ switch (readBuffer[i])
+ {
+ case ' ':
+ case '\t':
+ case '\r':
+ columnAugment++;
+ break;
+ case '\n':
+ lineAugment++;
+ columnAugment = 0;
+ break;
+ case '%':
+ if (expandPE)
+ {
+ break loop;
+ }
+ // else fall through...
+ default:
+ readBufferPos = i;
+ if (lineAugment > 0)
+ {
+ line += lineAugment;
+ column = columnAugment;
+ }
+ else
+ {
+ column += columnAugment;
+ }
+ return;
+ }
+ }
+ }
+
+ // OK, do it the slow way.
+ char c = readCh ();
+ while (isWhitespace(c))
+ {
+ c = readCh();
+ }
+ unread(c);
+ }
+
+ /**
+ * Read a name or (when parsing an enumeration) name token.
+ * <pre>
+ * [5] Name ::= (Letter | '_' | ':') (NameChar)*
+ * [7] Nmtoken ::= (NameChar)+
+ * </pre>
+ */
+ private String readNmtoken(boolean isName)
throws SAXException, IOException
- {
- char c;
-
- if (USE_CHEATS) {
-loop:
- for (int i = readBufferPos; i < readBufferLength; i++) {
- c = readBuffer [i];
- switch (c) {
- case '%':
- if (expandPE)
- break loop;
- // else fall through...
-
- // What may legitimately come AFTER a name/nmtoken?
- case '<': case '>': case '&':
- case ',': case '|': case '*': case '+': case '?':
- case ')':
- case '=':
- case '\'': case '"':
- case '[':
- case ' ': case '\t': case '\r': case '\n':
- case ';':
- case '/':
- int start = readBufferPos;
- if (i == start)
- error ("name expected", readBuffer [i], null);
- readBufferPos = i;
- return intern (readBuffer, start, i - start);
-
- default:
-// FIXME ... per IBM's OASIS test submission, these:
-// ? U+06dd
-// Combining U+309B
- //these switches are kind of ugly but at least we won't
- //have to go over the whole lits for each char
- if (isName && i == readBufferPos){
- char c2 = (char) (c & 0x00f0);
- switch (c & 0xff00){
- //starting with 01
- case 0x0100:
- switch (c2){
- case 0x0030:
- if (c == 0x0132 || c == 0x0133 || c == 0x013f)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x0040:
- if (c == 0x0140 || c == 0x0149)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x00c0:
- if (c == 0x01c4 || c == 0x01cc)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x00f0:
- if (c == 0x01f1 || c == 0x01f3)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x00b0:
- if (c == 0x01f1 || c == 0x01f3)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- default:
- if (c == 0x017f)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- }
-
- break;
- //starting with 11
- case 0x1100:
- switch (c2){
- case 0x0000:
- if (c == 0x1104 || c == 0x1108 ||
- c == 0x110a || c == 0x110d)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x0030:
- if (c == 0x113b || c == 0x113f)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x0040:
- if (c == 0x1141 || c == 0x114d
- || c == 0x114f )
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x0050:
- if (c == 0x1151 || c == 0x1156)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x0060:
- if (c == 0x1162 || c == 0x1164
- || c == 0x1166 || c == 0x116b
- || c == 0x116f)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- case 0x00b0:
- if (c == 0x11b6 || c == 0x11b9
- || c == 0x11bb || c == 0x116f)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- break;
- default:
- if (c == 0x1174 || c == 0x119f
- || c == 0x11ac || c == 0x11c3
- || c == 0x11f1)
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- }
- break;
- default:
- if (c == 0x0e46 || c == 0x1011
- || c == 0x212f || c == 0x0587
- || c == 0x0230 )
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- }
- }
- // punt on exact tests from Appendix A; approximate
- // them using the Unicode ID start/part rules
- if (i == readBufferPos && isName) {
- if (!Character.isUnicodeIdentifierStart (c)
- && c != ':' && c != '_')
- error ("Not a name start character, U+"
- + Integer.toHexString (c));
- } else if (!Character.isUnicodeIdentifierPart (c)
- && c != '-' && c != ':' && c != '_' && c != '.'
- && !isExtender (c))
- error ("Not a name character, U+"
- + Integer.toHexString (c));
- }
- }
- }
-
- nameBufferPos = 0;
-
- // Read the first character.
+ {
+ char c;
+
+ if (USE_CHEATS)
+ {
loop:
- while (true) {
- c = readCh ();
- switch (c) {
- case '%':
- case '<': case '>': case '&':
- case ',': case '|': case '*': case '+': case '?':
- case ')':
- case '=':
- case '\'': case '"':
- case '[':
- case ' ': case '\t': case '\n': case '\r':
- case ';':
- case '/':
- unread (c);
- if (nameBufferPos == 0) {
- error ("name expected");
- }
- // punt on exact tests from Appendix A, but approximate them
- if (isName
- && !Character.isUnicodeIdentifierStart (
- nameBuffer [0])
- && ":_".indexOf (nameBuffer [0]) == -1)
- error ("Not a name start character, U+"
- + Integer.toHexString (nameBuffer [0]));
- String s = intern (nameBuffer, 0, nameBufferPos);
- nameBufferPos = 0;
- return s;
- default:
- // punt on exact tests from Appendix A, but approximate them
-
- if ((nameBufferPos != 0 || !isName)
- && !Character.isUnicodeIdentifierPart (c)
- && ":-_.".indexOf (c) == -1
- && !isExtender (c))
- error ("Not a name character, U+"
- + Integer.toHexString (c));
- if (nameBufferPos >= nameBuffer.length)
- nameBuffer =
- (char[]) extendArray (nameBuffer,
- nameBuffer.length, nameBufferPos);
- nameBuffer [nameBufferPos++] = c;
- }
- }
- }
-
- private static boolean isExtender (char c)
- {
- // [88] Extender ::= ...
- return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387
- || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005
- || (c >= 0x3031 && c <= 0x3035)
- || (c >= 0x309d && c <= 0x309e)
- || (c >= 0x30fc && c <= 0x30fe);
- }
+ for (int i = readBufferPos; i < readBufferLength; i++)
+ {
+ c = readBuffer[i];
+ switch (c)
+ {
+ case '%':
+ if (expandPE)
+ {
+ break loop;
+ }
+ // else fall through...
+
+ // What may legitimately come AFTER a name/nmtoken?
+ case '<': case '>': case '&':
+ case ',': case '|': case '*': case '+': case '?':
+ case ')':
+ case '=':
+ case '\'': case '"':
+ case '[':
+ case ' ': case '\t': case '\r': case '\n':
+ case ';':
+ case '/':
+ int start = readBufferPos;
+ if (i == start)
+ {
+ error("name expected", readBuffer[i], null);
+ }
+ readBufferPos = i;
+ return intern(readBuffer, start, i - start);
+
+ default:
+ // FIXME ... per IBM's OASIS test submission, these:
+ // ? U+06dd
+ // Combining U+309B
+ //these switches are kind of ugly but at least we won't
+ //have to go over the whole lits for each char
+ if (isName && i == readBufferPos)
+ {
+ char c2 = (char) (c & 0x00f0);
+ switch (c & 0xff00)
+ {
+ //starting with 01
+ case 0x0100:
+ switch (c2)
+ {
+ case 0x0030:
+ if (c == 0x0132 || c == 0x0133 || c == 0x013f)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x0040:
+ if (c == 0x0140 || c == 0x0149)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x00c0:
+ if (c == 0x01c4 || c == 0x01cc)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x00f0:
+ if (c == 0x01f1 || c == 0x01f3)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x00b0:
+ if (c == 0x01f1 || c == 0x01f3)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ default:
+ if (c == 0x017f)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ }
+
+ break;
+ //starting with 11
+ case 0x1100:
+ switch (c2)
+ {
+ case 0x0000:
+ if (c == 0x1104 || c == 0x1108 ||
+ c == 0x110a || c == 0x110d)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x0030:
+ if (c == 0x113b || c == 0x113f)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x0040:
+ if (c == 0x1141 || c == 0x114d
+ || c == 0x114f )
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x0050:
+ if (c == 0x1151 || c == 0x1156)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x0060:
+ if (c == 0x1162 || c == 0x1164
+ || c == 0x1166 || c == 0x116b
+ || c == 0x116f)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ case 0x00b0:
+ if (c == 0x11b6 || c == 0x11b9
+ || c == 0x11bb || c == 0x116f)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ break;
+ default:
+ if (c == 0x1174 || c == 0x119f
+ || c == 0x11ac || c == 0x11c3
+ || c == 0x11f1)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ }
+ break;
+ default:
+ if (c == 0x0e46 || c == 0x1011
+ || c == 0x212f || c == 0x0587
+ || c == 0x0230 )
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ }
+ }
+ // punt on exact tests from Appendix A; approximate
+ // them using the Unicode ID start/part rules
+ if (i == readBufferPos && isName)
+ {
+ if (!Character.isUnicodeIdentifierStart(c)
+ && c != ':' && c != '_')
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(c));
+ }
+ }
+ else if (!Character.isUnicodeIdentifierPart(c)
+ && c != '-' && c != ':' && c != '_' && c != '.'
+ && !isExtender(c))
+ {
+ error("Not a name character, U+"
+ + Integer.toHexString(c));
+ }
+ }
+ }
+ }
+
+ nameBufferPos = 0;
+ // Read the first character.
+loop:
+ while (true)
+ {
+ c = readCh();
+ switch (c)
+ {
+ case '%':
+ case '<': case '>': case '&':
+ case ',': case '|': case '*': case '+': case '?':
+ case ')':
+ case '=':
+ case '\'': case '"':
+ case '[':
+ case ' ': case '\t': case '\n': case '\r':
+ case ';':
+ case '/':
+ unread(c);
+ if (nameBufferPos == 0)
+ {
+ error ("name expected");
+ }
+ // punt on exact tests from Appendix A, but approximate them
+ if (isName
+ && !Character.isUnicodeIdentifierStart(nameBuffer[0])
+ && ":_".indexOf(nameBuffer[0]) == -1)
+ {
+ error("Not a name start character, U+"
+ + Integer.toHexString(nameBuffer[0]));
+ }
+ String s = intern(nameBuffer, 0, nameBufferPos);
+ nameBufferPos = 0;
+ return s;
+ default:
+ // punt on exact tests from Appendix A, but approximate them
+
+ if ((nameBufferPos != 0 || !isName)
+ && !Character.isUnicodeIdentifierPart(c)
+ && ":-_.".indexOf(c) == -1
+ && !isExtender(c))
+ {
+ error("Not a name character, U+"
+ + Integer.toHexString(c));
+ }
+ if (nameBufferPos >= nameBuffer.length)
+ {
+ nameBuffer =
+ (char[]) extendArray(nameBuffer,
+ nameBuffer.length, nameBufferPos);
+ }
+ nameBuffer[nameBufferPos++] = c;
+ }
+ }
+ }
+
+ private static boolean isExtender(char c)
+ {
+ // [88] Extender ::= ...
+ return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387
+ || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005
+ || (c >= 0x3031 && c <= 0x3035)
+ || (c >= 0x309d && c <= 0x309e)
+ || (c >= 0x30fc && c <= 0x30fe);
+ }
- /**
- * Read a literal. With matching single or double quotes as
- * delimiters (and not embedded!) this is used to parse:
- * <pre>
- * [9] EntityValue ::= ... ([^%&amp;] | PEReference | Reference)* ...
- * [10] AttValue ::= ... ([^<&] | Reference)* ...
- * [11] SystemLiteral ::= ... (URLchar - "'")* ...
- * [12] PubidLiteral ::= ... (PubidChar - "'")* ...
- * </pre>
- * as well as the quoted strings in XML and text declarations
- * (for version, encoding, and standalone) which have their
- * own constraints.
- */
- private String readLiteral (int flags)
+ /**
+ * Read a literal. With matching single or double quotes as
+ * delimiters (and not embedded!) this is used to parse:
+ * <pre>
+ * [9] EntityValue ::= ... ([^%&amp;] | PEReference | Reference)* ...
+ * [10] AttValue ::= ... ([^<&] | Reference)* ...
+ * [11] SystemLiteral ::= ... (URLchar - "'")* ...
+ * [12] PubidLiteral ::= ... (PubidChar - "'")* ...
+ * </pre>
+ * as well as the quoted strings in XML and text declarations
+ * (for version, encoding, and standalone) which have their
+ * own constraints.
+ */
+ private String readLiteral(int flags)
throws SAXException, IOException
- {
- char delim, c;
- int startLine = line;
- boolean saved = expandPE;
- boolean savedReport = doReport;
-
- // Find the first delimiter.
- delim = readCh ();
- if (delim != '"' && delim != '\'') {
- error ("expected '\"' or \"'\"", delim, null);
- return null;
- }
- inLiteral = true;
- if ((flags & LIT_DISABLE_PE) != 0)
- expandPE = false;
- doReport = false;
-
- // Each level of input source has its own buffer; remember
- // ours, so we won't read the ending delimiter from any
- // other input source, regardless of entity processing.
- char ourBuf [] = readBuffer;
-
- // Read the literal.
- try {
- c = readCh ();
- boolean ampRead = false;
+ {
+ char delim, c;
+ int startLine = line;
+ boolean saved = expandPE;
+ boolean savedReport = doReport;
+
+ // Find the first delimiter.
+ delim = readCh();
+ if (delim != '"' && delim != '\'')
+ {
+ error("expected '\"' or \"'\"", delim, null);
+ return null;
+ }
+ inLiteral = true;
+ if ((flags & LIT_DISABLE_PE) != 0)
+ {
+ expandPE = false;
+ }
+ doReport = false;
+
+ // Each level of input source has its own buffer; remember
+ // ours, so we won't read the ending delimiter from any
+ // other input source, regardless of entity processing.
+ char[] ourBuf = readBuffer;
+
+ // Read the literal.
+ try
+ {
+ c = readCh();
+ boolean ampRead = false;
loop:
- while (! (c == delim && readBuffer == ourBuf)) {
- switch (c) {
- // attributes and public ids are normalized
- // in almost the same ways
- case '\n':
- case '\r':
- if ((flags & (LIT_ATTRIBUTE | LIT_PUBID)) != 0)
- c = ' ';
- break;
- case '\t':
- if ((flags & LIT_ATTRIBUTE) != 0)
- c = ' ';
- break;
- case '&':
- c = readCh ();
- // Char refs are expanded immediately, except for
- // all the cases where it's deferred.
- if (c == '#') {
- if ((flags & LIT_DISABLE_CREF) != 0) {
- dataBufferAppend ('&');
- break;
- }
- parseCharRef (false /* Do not do flushDataBuffer */);
-
- // exotic WFness risk: this is an entity literal,
- // dataBuffer [dataBufferPos - 1] == '&', and
- // following chars are a _partial_ entity/char ref
-
- // It looks like an entity ref ...
- } else {
- unread (c);
- // Expand it?
- if ((flags & LIT_ENTITY_REF) > 0) {
- parseEntityRef (false);
- if (String.valueOf (readBuffer).equals("&#38;"))
- ampRead = true;
+ while (! (c == delim && readBuffer == ourBuf))
+ {
+ switch (c)
+ {
+ // attributes and public ids are normalized
+ // in almost the same ways
+ case '\n':
+ case '\r':
+ if ((flags & (LIT_ATTRIBUTE | LIT_PUBID)) != 0)
+ {
+ c = ' ';
+ }
+ break;
+ case '\t':
+ if ((flags & LIT_ATTRIBUTE) != 0)
+ {
+ c = ' ';
+ }
+ break;
+ case '&':
+ c = readCh();
+ // Char refs are expanded immediately, except for
+ // all the cases where it's deferred.
+ if (c == '#')
+ {
+ if ((flags & LIT_DISABLE_CREF) != 0)
+ {
+ dataBufferAppend('&');
+ break;
+ }
+ parseCharRef(false /* Do not do flushDataBuffer */);
+
+ // exotic WFness risk: this is an entity literal,
+ // dataBuffer [dataBufferPos - 1] == '&', and
+ // following chars are a _partial_ entity/char ref
+
+ // It looks like an entity ref ...
+ }
+ else
+ {
+ unread(c);
+ // Expand it?
+ if ((flags & LIT_ENTITY_REF) > 0)
+ {
+ parseEntityRef(false);
+ if (String.valueOf(readBuffer).equals("&#38;"))
+ {
+ ampRead = true;
+ }
//Is it just data?
- } else if ((flags & LIT_DISABLE_EREF) != 0) {
- dataBufferAppend ('&');
-
- // OK, it will be an entity ref -- expanded later.
- } else {
- String name = readNmtoken (true);
- require (';');
- dataBufferAppend ('&');
- dataBufferAppend (name);
- dataBufferAppend (';');
- }
- }
- c = readCh ();
- continue loop;
-
- case '<':
- // and why? Perhaps so "&foo;" expands the same
- // inside and outside an attribute?
- if ((flags & LIT_ATTRIBUTE) != 0)
- error ("attribute values may not contain '<'");
- break;
-
- // We don't worry about case '%' and PE refs, readCh does.
-
- default:
- break;
- }
- dataBufferAppend (c);
- c = readCh ();
- }
- } catch (EOFException e) {
- error ("end of input while looking for delimiter (started on line "
- + startLine + ')', null, new Character (delim).toString ());
- }
- inLiteral = false;
- expandPE = saved;
- doReport = savedReport;
-
- // Normalise whitespace if necessary.
- if ((flags & LIT_NORMALIZE) > 0) {
- dataBufferNormalize ();
- }
-
- // Return the value.
- return dataBufferToString ();
- }
-
-
- /**
- * Try reading external identifiers.
- * A system identifier is not required for notations.
- * @param inNotation Are we parsing a notation decl?
- * @param isSubset Parsing external subset decl (may be omitted)?
- * @return A three-member String array containing the identifiers,
- * or nulls. Order: public, system, baseURI.
- */
- private String[] readExternalIds (boolean inNotation, boolean isSubset)
+ }
+ else if ((flags & LIT_DISABLE_EREF) != 0)
+ {
+ dataBufferAppend('&');
+
+ // OK, it will be an entity ref -- expanded later.
+ }
+ else
+ {
+ String name = readNmtoken(true);
+ require(';');
+ dataBufferAppend('&');
+ dataBufferAppend(name);
+ dataBufferAppend(';');
+ }
+ }
+ c = readCh();
+ continue loop;
+
+ case '<':
+ // and why? Perhaps so "&foo;" expands the same
+ // inside and outside an attribute?
+ if ((flags & LIT_ATTRIBUTE) != 0)
+ {
+ error("attribute values may not contain '<'");
+ }
+ break;
+
+ // We don't worry about case '%' and PE refs, readCh does.
+
+ default:
+ break;
+ }
+ dataBufferAppend(c);
+ c = readCh();
+ }
+ }
+ catch (EOFException e)
+ {
+ error("end of input while looking for delimiter (started on line "
+ + startLine + ')', null, new Character(delim).toString());
+ }
+ inLiteral = false;
+ expandPE = saved;
+ doReport = savedReport;
+
+ // Normalise whitespace if necessary.
+ if ((flags & LIT_NORMALIZE) > 0)
+ {
+ dataBufferNormalize();
+ }
+
+ // Return the value.
+ return dataBufferToString();
+ }
+
+ /**
+ * Try reading external identifiers.
+ * A system identifier is not required for notations.
+ * @param inNotation Are we parsing a notation decl?
+ * @param isSubset Parsing external subset decl (may be omitted)?
+ * @return A three-member String array containing the identifiers,
+ * or nulls. Order: public, system, baseURI.
+ */
+ private ExternalIdentifiers readExternalIds(boolean inNotation,
+ boolean isSubset)
throws Exception
- {
- char c;
- String ids[] = new String [3];
- int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
-
- if (tryRead ("PUBLIC")) {
- requireWhitespace ();
- ids [0] = readLiteral (LIT_NORMALIZE | LIT_PUBID | flags);
- if (inNotation) {
- skipWhitespace ();
- c = readCh ();
- unread (c);
- if (c == '"' || c == '\'') {
- ids [1] = readLiteral (flags);
- }
- } else {
- requireWhitespace ();
- ids [1] = readLiteral (flags);
- }
-
- for (int i = 0; i < ids [0].length (); i++) {
- c = ids [0].charAt (i);
- if (c >= 'a' && c <= 'z')
- continue;
- if (c >= 'A' && c <= 'Z')
- continue;
- if (" \r\n0123456789-' ()+,./:=?;!*#@$_%".indexOf (c) != -1)
- continue;
- error ("illegal PUBLIC id character U+"
- + Integer.toHexString (c));
- }
- } else if (tryRead ("SYSTEM")) {
- requireWhitespace ();
- ids [1] = readLiteral (flags);
- } else if (!isSubset)
- error ("missing SYSTEM or PUBLIC keyword");
-
- if (ids [1] != null) {
- if (ids [1].indexOf ('#') != -1)
- handler.verror ("SYSTEM id has a URI fragment: " + ids [1]);
- ids [2] = handler.getSystemId ();
- if (ids [2] == null)
- handler.warn ("No base URI; hope URI is absolute: "
- + ids [1]);
- }
-
- return ids;
- }
-
-
- /**
- * Test if a character is whitespace.
- * <pre>
- * [3] S ::= (#x20 | #x9 | #xd | #xa)+
- * </pre>
- * @param c The character to test.
- * @return true if the character is whitespace.
- */
- private final boolean isWhitespace (char c)
- {
- if (c > 0x20)
- return false;
- if (c == 0x20 || c == 0x0a || c == 0x09 || c == 0x0d)
- return true;
- return false; // illegal ...
- }
-
-
- //////////////////////////////////////////////////////////////////////
- // Utility routines.
- //////////////////////////////////////////////////////////////////////
-
-
- /**
- * Add a character to the data buffer.
- */
- private void dataBufferAppend (char c)
- {
- // Expand buffer if necessary.
- if (dataBufferPos >= dataBuffer.length)
- dataBuffer =
- (char[]) extendArray (dataBuffer,
- dataBuffer.length, dataBufferPos);
- dataBuffer [dataBufferPos++] = c;
- }
-
-
- /**
- * Add a string to the data buffer.
- */
- private void dataBufferAppend (String s)
- {
- dataBufferAppend (s.toCharArray (), 0, s.length ());
- }
-
+ {
+ char c;
+ ExternalIdentifiers ids = new ExternalIdentifiers();
+ int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
+
+ if (tryRead("PUBLIC"))
+ {
+ requireWhitespace();
+ ids.publicId = readLiteral(LIT_NORMALIZE | LIT_PUBID | flags);
+ if (inNotation)
+ {
+ skipWhitespace();
+ c = readCh();
+ unread(c);
+ if (c == '"' || c == '\'')
+ {
+ ids.systemId = readLiteral(flags);
+ }
+ }
+ else
+ {
+ requireWhitespace();
+ ids.systemId = readLiteral(flags);
+ }
+
+ for (int i = 0; i < ids.publicId.length(); i++)
+ {
+ c = ids.publicId.charAt(i);
+ if (c >= 'a' && c <= 'z')
+ {
+ continue;
+ }
+ if (c >= 'A' && c <= 'Z')
+ {
+ continue;
+ }
+ if (" \r\n0123456789-' ()+,./:=?;!*#@$_%".indexOf(c) != -1)
+ {
+ continue;
+ }
+ error("illegal PUBLIC id character U+"
+ + Integer.toHexString(c));
+ }
+ }
+ else if (tryRead("SYSTEM"))
+ {
+ requireWhitespace();
+ ids.systemId = readLiteral(flags);
+ }
+ else if (!isSubset)
+ {
+ error("missing SYSTEM or PUBLIC keyword");
+ }
+
+ if (ids.systemId != null)
+ {
+ if (ids.systemId.indexOf('#') != -1)
+ {
+ handler.verror("SYSTEM id has an URI fragment: " + ids.systemId);
+ }
+ ids.baseUri = handler.getSystemId();
+ if (ids.baseUri == null && uriWarnings)
+ {
+ handler.warn("No base URI; hope URI is absolute: "
+ + ids.systemId);
+ }
+ }
+
+ return ids;
+ }
- /**
- * Append (part of) a character array to the data buffer.
- */
- private void dataBufferAppend (char ch[], int start, int length)
- {
- dataBuffer = (char[])
- extendArray (dataBuffer, dataBuffer.length,
- dataBufferPos + length);
+ /**
+ * Test if a character is whitespace.
+ * <pre>
+ * [3] S ::= (#x20 | #x9 | #xd | #xa)+
+ * </pre>
+ * @param c The character to test.
+ * @return true if the character is whitespace.
+ */
+ private final boolean isWhitespace(char c)
+ {
+ if (c > 0x20)
+ {
+ return false;
+ }
+ if (c == 0x20 || c == 0x0a || c == 0x09 || c == 0x0d)
+ {
+ return true;
+ }
+ return false; // illegal ...
+ }
- System.arraycopy (ch, start, dataBuffer, dataBufferPos, length);
- dataBufferPos += length;
- }
+ //////////////////////////////////////////////////////////////////////
+ // Utility routines.
+ //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Add a character to the data buffer.
+ */
+ private void dataBufferAppend(char c)
+ {
+ // Expand buffer if necessary.
+ if (dataBufferPos >= dataBuffer.length)
+ {
+ dataBuffer = (char[]) extendArray(dataBuffer,
+ dataBuffer.length, dataBufferPos);
+ }
+ dataBuffer[dataBufferPos++] = c;
+ }
+ /**
+ * Add a string to the data buffer.
+ */
+ private void dataBufferAppend(String s)
+ {
+ dataBufferAppend(s.toCharArray(), 0, s.length());
+ }
- /**
- * Normalise space characters in the data buffer.
- */
- private void dataBufferNormalize ()
- {
- int i = 0;
- int j = 0;
- int end = dataBufferPos;
-
- // Skip spaces at the start.
- while (j < end && dataBuffer [j] == ' ') {
- j++;
- }
-
- // Skip whitespace at the end.
- while (end > j && dataBuffer [end - 1] == ' ') {
- end --;
- }
-
- // Start copying to the left.
- while (j < end) {
-
- char c = dataBuffer [j++];
-
- // Normalise all other spaces to
- // a single space.
- if (c == ' ') {
- while (j < end && dataBuffer [j++] == ' ')
- continue;
- dataBuffer [i++] = ' ';
- dataBuffer [i++] = dataBuffer [j - 1];
- } else {
- dataBuffer [i++] = c;
- }
- }
-
- // The new length is <= the old one.
- dataBufferPos = i;
- }
+ /**
+ * Append (part of) a character array to the data buffer.
+ */
+ private void dataBufferAppend(char[] ch, int start, int length)
+ {
+ dataBuffer = (char[]) extendArray(dataBuffer, dataBuffer.length,
+ dataBufferPos + length);
+
+ System.arraycopy(ch, start, dataBuffer, dataBufferPos, length);
+ dataBufferPos += length;
+ }
+ /**
+ * Normalise space characters in the data buffer.
+ */
+ private void dataBufferNormalize()
+ {
+ int i = 0;
+ int j = 0;
+ int end = dataBufferPos;
+
+ // Skip spaces at the start.
+ while (j < end && dataBuffer[j] == ' ')
+ {
+ j++;
+ }
+
+ // Skip whitespace at the end.
+ while (end > j && dataBuffer[end - 1] == ' ')
+ {
+ end --;
+ }
- /**
- * Convert the data buffer to a string.
- */
- private String dataBufferToString ()
- {
- String s = new String (dataBuffer, 0, dataBufferPos);
- dataBufferPos = 0;
- return s;
- }
+ // Start copying to the left.
+ while (j < end)
+ {
+
+ char c = dataBuffer[j++];
+
+ // Normalise all other spaces to
+ // a single space.
+ if (c == ' ')
+ {
+ while (j < end && dataBuffer[j++] == ' ')
+ {
+ continue;
+ }
+ dataBuffer[i++] = ' ';
+ dataBuffer[i++] = dataBuffer[j - 1];
+ }
+ else
+ {
+ dataBuffer[i++] = c;
+ }
+ }
+
+ // The new length is <= the old one.
+ dataBufferPos = i;
+ }
+ /**
+ * Convert the data buffer to a string.
+ */
+ private String dataBufferToString()
+ {
+ String s = new String(dataBuffer, 0, dataBufferPos);
+ dataBufferPos = 0;
+ return s;
+ }
- /**
- * Flush the contents of the data buffer to the handler, as
- * appropriate, and reset the buffer for new input.
- */
- private void dataBufferFlush ()
+ /**
+ * Flush the contents of the data buffer to the handler, as
+ * appropriate, and reset the buffer for new input.
+ */
+ private void dataBufferFlush()
throws SAXException
- {
- if (currentElementContent == CONTENT_ELEMENTS
- && dataBufferPos > 0
- && !inCDATA
- ) {
- // We can't just trust the buffer to be whitespace, there
- // are (error) cases when it isn't
- for (int i = 0; i < dataBufferPos; i++) {
- if (!isWhitespace (dataBuffer [i])) {
- handler.charData (dataBuffer, 0, dataBufferPos);
- dataBufferPos = 0;
- }
- }
- if (dataBufferPos > 0) {
- handler.ignorableWhitespace (dataBuffer, 0, dataBufferPos);
- dataBufferPos = 0;
- }
- } else if (dataBufferPos > 0) {
- handler.charData (dataBuffer, 0, dataBufferPos);
- dataBufferPos = 0;
- }
- }
-
+ {
+ if (currentElementContent == CONTENT_ELEMENTS
+ && dataBufferPos > 0
+ && !inCDATA)
+ {
+ // We can't just trust the buffer to be whitespace, there
+ // are (error) cases when it isn't
+ for (int i = 0; i < dataBufferPos; i++)
+ {
+ if (!isWhitespace(dataBuffer[i]))
+ {
+ handler.charData(dataBuffer, 0, dataBufferPos);
+ dataBufferPos = 0;
+ }
+ }
+ if (dataBufferPos > 0)
+ {
+ handler.ignorableWhitespace(dataBuffer, 0, dataBufferPos);
+ dataBufferPos = 0;
+ }
+ }
+ else if (dataBufferPos > 0)
+ {
+ handler.charData(dataBuffer, 0, dataBufferPos);
+ dataBufferPos = 0;
+ }
+ }
- /**
- * Require a string to appear, or throw an exception.
- * <p><em>Precondition:</em> Entity expansion is not required.
- * <p><em>Precondition:</em> data buffer has no characters that
- * will get sent to the application.
- */
- private void require (String delim)
+ /**
+ * Require a string to appear, or throw an exception.
+ * <p><em>Precondition:</em> Entity expansion is not required.
+ * <p><em>Precondition:</em> data buffer has no characters that
+ * will get sent to the application.
+ */
+ private void require(String delim)
throws SAXException, IOException
- {
- int length = delim.length ();
- char ch [];
-
- if (length < dataBuffer.length) {
- ch = dataBuffer;
- delim.getChars (0, length, ch, 0);
- } else
- ch = delim.toCharArray ();
-
- if (USE_CHEATS
- && length <= (readBufferLength - readBufferPos)) {
- int offset = readBufferPos;
-
- for (int i = 0; i < length; i++, offset++)
- if (ch [i] != readBuffer [offset])
- error ("required string", null, delim);
- readBufferPos = offset;
-
- } else {
- for (int i = 0; i < length; i++)
- require (ch [i]);
- }
- }
-
+ {
+ int length = delim.length();
+ char[] ch;
+
+ if (length < dataBuffer.length)
+ {
+ ch = dataBuffer;
+ delim.getChars(0, length, ch, 0);
+ }
+ else
+ {
+ ch = delim.toCharArray();
+ }
+
+ if (USE_CHEATS && length <= (readBufferLength - readBufferPos))
+ {
+ int offset = readBufferPos;
+
+ for (int i = 0; i < length; i++, offset++)
+ {
+ if (ch[i] != readBuffer[offset])
+ {
+ error ("required string", null, delim);
+ }
+ }
+ readBufferPos = offset;
+
+ }
+ else
+ {
+ for (int i = 0; i < length; i++)
+ {
+ require(ch[i]);
+ }
+ }
+ }
- /**
- * Require a character to appear, or throw an exception.
- */
- private void require (char delim)
+ /**
+ * Require a character to appear, or throw an exception.
+ */
+ private void require(char delim)
throws SAXException, IOException
- {
- char c = readCh ();
-
- if (c != delim) {
- error ("required character", c, new Character (delim).toString ());
- }
- }
-
-
- /**
- * Create an interned string from a character array.
- * &AElig;lfred uses this method to create an interned version
- * of all names and name tokens, so that it can test equality
- * with <code>==</code> instead of <code>String.equals ()</code>.
- *
- * <p>This is much more efficient than constructing a non-interned
- * string first, and then interning it.
- *
- * @param ch an array of characters for building the string.
- * @param start the starting position in the array.
- * @param length the number of characters to place in the string.
- * @return an interned string.
- * @see #intern (String)
- * @see java.lang.String#intern
- */
- public String intern (char ch[], int start, int length)
- {
- int index = 0;
- int hash = 0;
- Object bucket [];
-
- // Generate a hash code. This is a widely used string hash,
- // often attributed to Brian Kernighan.
- for (int i = start; i < start + length; i++)
- hash = 31 * hash + ch [i];
- hash = (hash & 0x7fffffff) % SYMBOL_TABLE_LENGTH;
-
- // Get the bucket -- consists of {array,String} pairs
- if ((bucket = symbolTable [hash]) == null) {
- // first string in this bucket
- bucket = new Object [8];
-
- // Search for a matching tuple, and
- // return the string if we find one.
- } else {
- while (index < bucket.length) {
- char chFound [] = (char []) bucket [index];
-
- // Stop when we hit an empty entry.
- if (chFound == null)
- break;
-
- // If they're the same length, check for a match.
- if (chFound.length == length) {
- for (int i = 0; i < chFound.length; i++) {
- // continue search on failure
- if (ch [start + i] != chFound [i]) {
- break;
- } else if (i == length - 1) {
- // That's it, we have a match!
- return (String) bucket [index + 1];
- }
- }
- }
- index += 2;
- }
- // Not found -- we'll have to add it.
-
- // Do we have to grow the bucket?
- bucket = (Object []) extendArray (bucket, bucket.length, index);
- }
- symbolTable [hash] = bucket;
-
- // OK, add it to the end of the bucket -- "local" interning.
- // Intern "globally" to let applications share interning benefits.
- // That is, "!=" and "==" work on our strings, not just equals().
- String s = new String (ch, start, length).intern ();
- bucket [index] = s.toCharArray ();
- bucket [index + 1] = s;
- return s;
- }
-
- /**
- * Ensure the capacity of an array, allocating a new one if
- * necessary. Usually extends only for name hash collisions.
- */
- private Object extendArray (Object array, int currentSize, int requiredSize)
- {
- if (requiredSize < currentSize) {
- return array;
- } else {
- Object newArray = null;
- int newSize = currentSize * 2;
-
- if (newSize <= requiredSize)
- newSize = requiredSize + 1;
-
- if (array instanceof char[])
- newArray = new char [newSize];
- else if (array instanceof Object[])
- newArray = new Object [newSize];
- else
- throw new RuntimeException ();
-
- System.arraycopy (array, 0, newArray, 0, currentSize);
- return newArray;
- }
- }
-
-
- //////////////////////////////////////////////////////////////////////
- // XML query routines.
- //////////////////////////////////////////////////////////////////////
-
-
- boolean isStandalone () { return docIsStandalone; }
-
-
- //
- // Elements
- //
-
- private int getContentType (Object element [], int defaultType)
- {
- int retval;
-
- if (element == null)
- return defaultType;
- retval = ((Integer) element [0]).intValue ();
- if (retval == CONTENT_UNDECLARED)
- retval = defaultType;
- return retval;
- }
-
-
- /**
- * Look up the content type of an element.
- * @param name The element type name.
- * @return An integer constant representing the content type.
- * @see #CONTENT_UNDECLARED
- * @see #CONTENT_ANY
- * @see #CONTENT_EMPTY
- * @see #CONTENT_MIXED
- * @see #CONTENT_ELEMENTS
- */
- public int getElementContentType (String name)
- {
- Object element [] = (Object []) elementInfo.get (name);
- return getContentType (element, CONTENT_UNDECLARED);
- }
-
-
- /**
- * Register an element.
- * Array format:
- * [0] element type name
- * [1] content model (mixed, elements only)
- * [2] attribute hash table
- */
- private void setElement (
- String name,
- int contentType,
- String contentModel,
- Hashtable attributes
- ) throws SAXException
- {
- if (skippedPE)
- return;
-
- Object element [] = (Object []) elementInfo.get (name);
-
- // first <!ELEMENT ...> or <!ATTLIST ...> for this type?
- if (element == null) {
- element = new Object [3];
- element [0] = new Integer (contentType);
- element [1] = contentModel;
- element [2] = attributes;
- elementInfo.put (name, element);
- return;
- }
-
- // <!ELEMENT ...> declaration?
- if (contentType != CONTENT_UNDECLARED) {
- // ... following an associated <!ATTLIST ...>
- if (((Integer) element [0]).intValue () == CONTENT_UNDECLARED) {
- element [0] = new Integer (contentType);
- element [1] = contentModel;
- } else
- // VC: Unique Element Type Declaration
- handler.verror ("multiple declarations for element type: "
- + name);
- }
-
- // first <!ATTLIST ...>, before <!ELEMENT ...> ?
- else if (attributes != null)
- element [2] = attributes;
- }
-
-
- /**
- * Look up the attribute hash table for an element.
- * The hash table is the second item in the element array.
- */
- private Hashtable getElementAttributes (String name)
- {
- Object element[] = (Object[]) elementInfo.get (name);
- if (element == null)
- return null;
- else
- return (Hashtable) element [2];
- }
-
-
-
- //
- // Attributes
- //
+ {
+ char c = readCh();
+
+ if (c != delim)
+ {
+ error("required character", c, new Character(delim).toString());
+ }
+ }
+
+ /**
+ * Create an interned string from a character array.
+ * &AElig;lfred uses this method to create an interned version
+ * of all names and name tokens, so that it can test equality
+ * with <code>==</code> instead of <code>String.equals ()</code>.
+ *
+ * <p>This is much more efficient than constructing a non-interned
+ * string first, and then interning it.
+ *
+ * @param ch an array of characters for building the string.
+ * @param start the starting position in the array.
+ * @param length the number of characters to place in the string.
+ * @return an interned string.
+ * @see #intern (String)
+ * @see java.lang.String#intern
+ */
+ public String intern(char[] ch, int start, int length)
+ {
+ int index = 0;
+ int hash = 0;
+ Object[] bucket;
+
+ // Generate a hash code. This is a widely used string hash,
+ // often attributed to Brian Kernighan.
+ for (int i = start; i < start + length; i++)
+ {
+ hash = 31 * hash + ch[i];
+ }
+ hash = (hash & 0x7fffffff) % SYMBOL_TABLE_LENGTH;
+
+ // Get the bucket -- consists of {array,String} pairs
+ if ((bucket = symbolTable[hash]) == null)
+ {
+ // first string in this bucket
+ bucket = new Object[8];
+
+ // Search for a matching tuple, and
+ // return the string if we find one.
+ }
+ else
+ {
+ while (index < bucket.length)
+ {
+ char[] chFound = (char[]) bucket[index];
+
+ // Stop when we hit an empty entry.
+ if (chFound == null)
+ {
+ break;
+ }
+
+ // If they're the same length, check for a match.
+ if (chFound.length == length)
+ {
+ for (int i = 0; i < chFound.length; i++)
+ {
+ // continue search on failure
+ if (ch[start + i] != chFound[i])
+ {
+ break;
+ }
+ else if (i == length - 1)
+ {
+ // That's it, we have a match!
+ return (String) bucket[index + 1];
+ }
+ }
+ }
+ index += 2;
+ }
+ // Not found -- we'll have to add it.
+
+ // Do we have to grow the bucket?
+ bucket = (Object[]) extendArray(bucket, bucket.length, index);
+ }
+ symbolTable[hash] = bucket;
+
+ // OK, add it to the end of the bucket -- "local" interning.
+ // Intern "globally" to let applications share interning benefits.
+ // That is, "!=" and "==" work on our strings, not just equals().
+ String s = new String(ch, start, length).intern();
+ bucket[index] = s.toCharArray();
+ bucket[index + 1] = s;
+ return s;
+ }
- /**
- * Get the declared attributes for an element type.
- * @param elname The name of the element type.
- * @return An Enumeration of all the attributes declared for
- * a specific element type. The results will be valid only
- * after the DTD (if any) has been parsed.
- * @see #getAttributeType
- * @see #getAttributeEnumeration
- * @see #getAttributeDefaultValueType
- * @see #getAttributeDefaultValue
- * @see #getAttributeExpandedValue
- */
- private Enumeration declaredAttributes (Object element [])
- {
- Hashtable attlist;
+ /**
+ * Ensure the capacity of an array, allocating a new one if
+ * necessary. Usually extends only for name hash collisions.
+ */
+ private Object extendArray(Object array, int currentSize, int requiredSize)
+ {
+ if (requiredSize < currentSize)
+ {
+ return array;
+ }
+ else
+ {
+ Object newArray = null;
+ int newSize = currentSize * 2;
+
+ if (newSize <= requiredSize)
+ {
+ newSize = requiredSize + 1;
+ }
+
+ if (array instanceof char[])
+ {
+ newArray = new char[newSize];
+ }
+ else if (array instanceof Object[])
+ {
+ newArray = new Object[newSize];
+ }
+ else
+ {
+ throw new RuntimeException();
+ }
+
+ System.arraycopy(array, 0, newArray, 0, currentSize);
+ return newArray;
+ }
+ }
- if (element == null)
- return null;
- if ((attlist = (Hashtable) element [2]) == null)
- return null;
- return attlist.keys ();
- }
+ //////////////////////////////////////////////////////////////////////
+ // XML query routines.
+ //////////////////////////////////////////////////////////////////////
+
+ boolean isStandalone()
+ {
+ return docIsStandalone;
+ }
+
+ //
+ // Elements
+ //
+
+ private int getContentType(ElementDecl element, int defaultType)
+ {
+ int retval;
+
+ if (element == null)
+ {
+ return defaultType;
+ }
+ retval = element.contentType;
+ if (retval == CONTENT_UNDECLARED)
+ {
+ retval = defaultType;
+ }
+ return retval;
+ }
- /**
- * Get the declared attributes for an element type.
- * @param elname The name of the element type.
- * @return An Enumeration of all the attributes declared for
- * a specific element type. The results will be valid only
- * after the DTD (if any) has been parsed.
- * @see #getAttributeType
- * @see #getAttributeEnumeration
- * @see #getAttributeDefaultValueType
- * @see #getAttributeDefaultValue
- * @see #getAttributeExpandedValue
- */
- public Enumeration declaredAttributes (String elname)
- {
- return declaredAttributes ((Object []) elementInfo.get (elname));
- }
+ /**
+ * Look up the content type of an element.
+ * @param name The element type name.
+ * @return An integer constant representing the content type.
+ * @see #CONTENT_UNDECLARED
+ * @see #CONTENT_ANY
+ * @see #CONTENT_EMPTY
+ * @see #CONTENT_MIXED
+ * @see #CONTENT_ELEMENTS
+ */
+ public int getElementContentType(String name)
+ {
+ ElementDecl element = (ElementDecl) elementInfo.get(name);
+ return getContentType(element, CONTENT_UNDECLARED);
+ }
+
+ /**
+ * Register an element.
+ * Array format:
+ * [0] element type name
+ * [1] content model (mixed, elements only)
+ * [2] attribute hash table
+ */
+ private void setElement(String name, int contentType,
+ String contentModel, HashMap attributes)
+ throws SAXException
+ {
+ if (skippedPE)
+ {
+ return;
+ }
+ ElementDecl element = (ElementDecl) elementInfo.get(name);
+
+ // first <!ELEMENT ...> or <!ATTLIST ...> for this type?
+ if (element == null)
+ {
+ element = new ElementDecl();
+ element.contentType = contentType;
+ element.contentModel = contentModel;
+ element.attributes = attributes;
+ elementInfo.put(name, element);
+ return;
+ }
+
+ // <!ELEMENT ...> declaration?
+ if (contentType != CONTENT_UNDECLARED)
+ {
+ // ... following an associated <!ATTLIST ...>
+ if (element.contentType == CONTENT_UNDECLARED)
+ {
+ element.contentType = contentType;
+ element.contentModel = contentModel;
+ }
+ else
+ {
+ // VC: Unique Element Type Declaration
+ handler.verror("multiple declarations for element type: "
+ + name);
+ }
+ }
+
+ // first <!ATTLIST ...>, before <!ELEMENT ...> ?
+ else if (attributes != null)
+ {
+ element.attributes = attributes;
+ }
+ }
+
+ /**
+ * Look up the attribute hash table for an element.
+ * The hash table is the second item in the element array.
+ */
+ private HashMap getElementAttributes(String name)
+ {
+ ElementDecl element = (ElementDecl) elementInfo.get(name);
+ return (element == null) ? null : element.attributes;
+ }
- /**
- * Retrieve the declared type of an attribute.
- * @param name The name of the associated element.
- * @param aname The name of the attribute.
- * @return An interend string denoting the type, or null
- * indicating an undeclared attribute.
- */
- public String getAttributeType (String name, String aname)
- {
- Object attribute[] = getAttribute (name, aname);
- if (attribute == null) {
- return null;
- } else {
- return (String) attribute [0];
- }
- }
+ //
+ // Attributes
+ //
+
+ /**
+ * Get the declared attributes for an element type.
+ * @param elname The name of the element type.
+ * @return An iterator over all the attributes declared for
+ * a specific element type. The results will be valid only
+ * after the DTD (if any) has been parsed.
+ * @see #getAttributeType
+ * @see #getAttributeEnumeration
+ * @see #getAttributeDefaultValueType
+ * @see #getAttributeDefaultValue
+ * @see #getAttributeExpandedValue
+ */
+ private Iterator declaredAttributes(ElementDecl element)
+ {
+ HashMap attlist;
+
+ if (element == null)
+ {
+ return null;
+ }
+ if ((attlist = element.attributes) == null)
+ {
+ return null;
+ }
+ return attlist.keySet().iterator();
+ }
+ /**
+ * Get the declared attributes for an element type.
+ * @param elname The name of the element type.
+ * @return An iterator over all the attributes declared for
+ * a specific element type. The results will be valid only
+ * after the DTD (if any) has been parsed.
+ * @see #getAttributeType
+ * @see #getAttributeEnumeration
+ * @see #getAttributeDefaultValueType
+ * @see #getAttributeDefaultValue
+ * @see #getAttributeExpandedValue
+ */
+ public Iterator declaredAttributes(String elname)
+ {
+ return declaredAttributes((ElementDecl) elementInfo.get(elname));
+ }
- /**
- * Retrieve the allowed values for an enumerated attribute type.
- * @param name The name of the associated element.
- * @param aname The name of the attribute.
- * @return A string containing the token list.
- */
- public String getAttributeEnumeration (String name, String aname)
- {
- Object attribute[] = getAttribute (name, aname);
- if (attribute == null) {
- return null;
- } else {
- // assert: attribute [0] is "ENUMERATION" or "NOTATION"
- return (String) attribute [3];
- }
- }
+ /**
+ * Retrieve the declared type of an attribute.
+ * @param name The name of the associated element.
+ * @param aname The name of the attribute.
+ * @return An interend string denoting the type, or null
+ * indicating an undeclared attribute.
+ */
+ public String getAttributeType(String name, String aname)
+ {
+ AttributeDecl attribute = getAttribute(name, aname);
+ return (attribute == null) ? null : attribute.type;
+ }
+ /**
+ * Retrieve the allowed values for an enumerated attribute type.
+ * @param name The name of the associated element.
+ * @param aname The name of the attribute.
+ * @return A string containing the token list.
+ */
+ public String getAttributeEnumeration(String name, String aname)
+ {
+ AttributeDecl attribute = getAttribute(name, aname);
+ // assert: attribute.enumeration is "ENUMERATION" or "NOTATION"
+ return (attribute == null) ? null : attribute.enumeration;
+ }
- /**
- * Retrieve the default value of a declared attribute.
- * @param name The name of the associated element.
- * @param aname The name of the attribute.
- * @return The default value, or null if the attribute was
- * #IMPLIED or simply undeclared and unspecified.
- * @see #getAttributeExpandedValue
- */
- public String getAttributeDefaultValue (String name, String aname)
- {
- Object attribute[] = getAttribute (name, aname);
- if (attribute == null) {
- return null;
- } else {
- return (String) attribute [1];
- }
- }
+ /**
+ * Retrieve the default value of a declared attribute.
+ * @param name The name of the associated element.
+ * @param aname The name of the attribute.
+ * @return The default value, or null if the attribute was
+ * #IMPLIED or simply undeclared and unspecified.
+ * @see #getAttributeExpandedValue
+ */
+ public String getAttributeDefaultValue(String name, String aname)
+ {
+ AttributeDecl attribute = getAttribute(name, aname);
+ return (attribute == null) ? null : attribute.value;
+ }
/*
@@ -3325,1789 +3940,1896 @@ loop:
* @param name The name of the associated element.
* @param aname The name of the attribute.
* @return The expanded default value, or null if the attribute was
- * #IMPLIED or simply undeclared
+ * #IMPLIED or simply undeclared
* @see #getAttributeDefaultValue
public String getAttributeExpandedValue (String name, String aname)
throws Exception
{
- Object attribute[] = getAttribute (name, aname);
-
- if (attribute == null) {
- return null;
- } else if (attribute [4] == null && attribute [1] != null) {
- // we MUST use the same buf for both quotes else the literal
- // can't be properly terminated
- char buf [] = new char [1];
- int flags = LIT_ENTITY_REF | LIT_ATTRIBUTE;
- String type = getAttributeType (name, aname);
-
- if (type != "CDATA" && type != null)
- flags |= LIT_NORMALIZE;
- buf [0] = '"';
- pushCharArray (null, buf, 0, 1);
- pushString (null, (String) attribute [1]);
- pushCharArray (null, buf, 0, 1);
- attribute [4] = readLiteral (flags);
- }
- return (String) attribute [4];
+ AttributeDecl attribute = getAttribute (name, aname);
+
+ if (attribute == null) {
+ return null;
+ } else if (attribute.defaultValue == null && attribute.value != null) {
+ // we MUST use the same buf for both quotes else the literal
+ // can't be properly terminated
+ char buf [] = new char [1];
+ int flags = LIT_ENTITY_REF | LIT_ATTRIBUTE;
+ String type = getAttributeType (name, aname);
+
+ if (type != "CDATA" && type != null)
+ flags |= LIT_NORMALIZE;
+ buf [0] = '"';
+ pushCharArray (null, buf, 0, 1);
+ pushString (null, attribute.value);
+ pushCharArray (null, buf, 0, 1);
+ attribute.defaultValue = readLiteral (flags);
+ }
+ return attribute.defaultValue;
}
*/
- /**
- * Retrieve the default value mode of a declared attribute.
- * @see #ATTRIBUTE_DEFAULT_SPECIFIED
- * @see #ATTRIBUTE_DEFAULT_IMPLIED
- * @see #ATTRIBUTE_DEFAULT_REQUIRED
- * @see #ATTRIBUTE_DEFAULT_FIXED
- */
- public int getAttributeDefaultValueType (String name, String aname)
- {
- Object attribute[] = getAttribute (name, aname);
- if (attribute == null) {
- return ATTRIBUTE_DEFAULT_UNDECLARED;
- } else {
- return ((Integer) attribute [2]).intValue ();
- }
- }
-
-
- /**
- * Register an attribute declaration for later retrieval.
- * Format:
- * - String type
- * - String default value
- * - int value type
- * - enumeration
- * - processed default value
- */
- private void setAttribute (String elName, String name, String type,
- String enumeration,
- String value, int valueType)
+ /**
+ * Retrieve the default value mode of a declared attribute.
+ * @see #ATTRIBUTE_DEFAULT_SPECIFIED
+ * @see #ATTRIBUTE_DEFAULT_IMPLIED
+ * @see #ATTRIBUTE_DEFAULT_REQUIRED
+ * @see #ATTRIBUTE_DEFAULT_FIXED
+ */
+ public int getAttributeDefaultValueType(String name, String aname)
+ {
+ AttributeDecl attribute = getAttribute(name, aname);
+ return (attribute == null) ? ATTRIBUTE_DEFAULT_UNDECLARED :
+ attribute.valueType;
+ }
+
+ /**
+ * Register an attribute declaration for later retrieval.
+ * Format:
+ * - String type
+ * - String default value
+ * - int value type
+ * - enumeration
+ * - processed default value
+ */
+ private void setAttribute(String elName, String name, String type,
+ String enumeration, String value, int valueType)
throws Exception
- {
- Hashtable attlist;
-
- if (skippedPE)
- return;
-
- // Create a new hashtable if necessary.
- attlist = getElementAttributes (elName);
- if (attlist == null)
- attlist = new Hashtable ();
-
- // ignore multiple attribute declarations!
- if (attlist.get (name) != null) {
- // warn ...
- return;
- } else {
- Object attribute [] = new Object [5];
- attribute [0] = type;
- attribute [1] = value;
- attribute [2] = new Integer (valueType);
- attribute [3] = enumeration;
- attribute [4] = null;
- attlist.put (name, attribute);
-
- // save; but don't overwrite any existing <!ELEMENT ...>
- setElement (elName, CONTENT_UNDECLARED, null, attlist);
- }
- }
-
-
- /**
- * Retrieve the array representing an attribute declaration.
- */
- private Object[] getAttribute (String elName, String name)
- {
- Hashtable attlist;
-
- attlist = getElementAttributes (elName);
- if (attlist == null)
- return null;
- return (Object[]) attlist.get (name);
- }
-
+ {
+ HashMap attlist;
+
+ if (skippedPE)
+ {
+ return;
+ }
+
+ // Create a new hashtable if necessary.
+ attlist = getElementAttributes(elName);
+ if (attlist == null)
+ {
+ attlist = new HashMap();
+ }
+
+ // ignore multiple attribute declarations!
+ if (attlist.get(name) != null)
+ {
+ // warn ...
+ return;
+ }
+ else
+ {
+ AttributeDecl attribute = new AttributeDecl();
+ attribute.type = type;
+ attribute.value = value;
+ attribute.valueType = valueType;
+ attribute.enumeration = enumeration;
+ attlist.put(name, attribute);
+
+ // save; but don't overwrite any existing <!ELEMENT ...>
+ setElement(elName, CONTENT_UNDECLARED, null, attlist);
+ }
+ }
- //
- // Entities
- //
+ /**
+ * Retrieve the attribute declaration for the given element name and name.
+ */
+ private AttributeDecl getAttribute(String elName, String name)
+ {
+ HashMap attlist = getElementAttributes(elName);
+ return (attlist == null) ? null : (AttributeDecl) attlist.get(name);
+ }
- /**
- * Find the type of an entity.
- * @returns An integer constant representing the entity type.
- * @see #ENTITY_UNDECLARED
- * @see #ENTITY_INTERNAL
- * @see #ENTITY_NDATA
- * @see #ENTITY_TEXT
- */
- public int getEntityType (String ename)
- {
- Object entity[] = (Object[]) entityInfo.get (ename);
- if (entity == null) {
- return ENTITY_UNDECLARED;
- } else {
- return ((Integer) entity [0]).intValue ();
- }
- }
+ //
+ // Entities
+ //
+
+ /**
+ * Find the type of an entity.
+ * @returns An integer constant representing the entity type.
+ * @see #ENTITY_UNDECLARED
+ * @see #ENTITY_INTERNAL
+ * @see #ENTITY_NDATA
+ * @see #ENTITY_TEXT
+ */
+ public int getEntityType(String ename)
+ {
+ EntityInfo entity = (EntityInfo) entityInfo.get(ename);
+ return (entity == null) ? ENTITY_UNDECLARED : entity.type;
+ }
+ /**
+ * Return an external entity's identifiers.
+ * @param ename The name of the external entity.
+ * @return The entity's public identifier, system identifier, and base URI.
+ * Null if the entity was not declared as an external entity.
+ * @see #getEntityType
+ */
+ public ExternalIdentifiers getEntityIds(String ename)
+ {
+ EntityInfo entity = (EntityInfo) entityInfo.get(ename);
+ return (entity == null) ? null : entity.ids;
+ }
- /**
- * Return an external entity's identifier array.
- * @param ename The name of the external entity.
- * @return Three element array containing (in order) the entity's
- * public identifier, system identifier, and base URI. Null if
- * the entity was not declared as an external entity.
- * @see #getEntityType
- */
- public String [] getEntityIds (String ename)
- {
- Object entity[] = (Object[]) entityInfo.get (ename);
- if (entity == null) {
- return null;
- } else {
- return (String []) entity [1];
- }
- }
+ /**
+ * Return an internal entity's replacement text.
+ * @param ename The name of the internal entity.
+ * @return The entity's replacement text, or null if
+ * the entity was not declared as an internal entity.
+ * @see #getEntityType
+ */
+ public String getEntityValue(String ename)
+ {
+ EntityInfo entity = (EntityInfo) entityInfo.get(ename);
+ return (entity == null) ? null : entity.value;
+ }
+ /**
+ * Register an entity declaration for later retrieval.
+ */
+ private void setInternalEntity(String eName, String value)
+ throws SAXException
+ {
+ if (skippedPE)
+ {
+ return;
+ }
- /**
- * Return an internal entity's replacement text.
- * @param ename The name of the internal entity.
- * @return The entity's replacement text, or null if
- * the entity was not declared as an internal entity.
- * @see #getEntityType
- */
- public String getEntityValue (String ename)
- {
- Object entity[] = (Object[]) entityInfo.get (ename);
- if (entity == null) {
- return null;
- } else {
- return (String) entity [3];
- }
- }
+ if (entityInfo.get(eName) == null)
+ {
+ EntityInfo entity = new EntityInfo();
+ entity.type = ENTITY_INTERNAL;
+ entity.value = value;
+ entityInfo.put(eName, entity);
+ }
+ if (handler.stringInterning)
+ {
+ if ("lt" == eName || "gt" == eName || "quot" == eName
+ || "apos" == eName || "amp" == eName)
+ {
+ return;
+ }
+ }
+ else
+ {
+ if ("lt".equals(eName) || "gt".equals(eName) || "quot".equals(eName)
+ || "apos".equals(eName) || "amp".equals(eName))
+ {
+ return;
+ }
+ }
+ handler.getDeclHandler().internalEntityDecl(eName, value);
+ }
+ /**
+ * Register an external entity declaration for later retrieval.
+ */
+ private void setExternalEntity(String eName, int eClass,
+ ExternalIdentifiers ids, String nName)
+ {
+ if (entityInfo.get(eName) == null)
+ {
+ EntityInfo entity = new EntityInfo();
+ entity.type = eClass;
+ entity.ids = ids;
+ entity.notationName = nName;
+ entityInfo.put(eName, entity);
+ }
+ }
- /**
- * Register an entity declaration for later retrieval.
- */
- private void setInternalEntity (String eName, String value)
+ //
+ // Notations.
+ //
+
+ /**
+ * Report a notation declaration, checking for duplicates.
+ */
+ private void setNotation(String nname, ExternalIdentifiers ids)
throws SAXException
- {
- if (skippedPE)
- return;
-
- if (entityInfo.get (eName) == null) {
- Object entity[] = new Object [5];
- entity [0] = new Integer (ENTITY_INTERNAL);
-// FIXME: shrink!! [2] useless
- entity [3] = value;
- entityInfo.put (eName, entity);
- }
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- if ("lt" == eName || "gt" == eName || "quot" == eName
- || "apos" == eName || "amp" == eName)
- return;
- } else {
- if ("lt".equals(eName) || "gt".equals(eName) || "quot".equals(eName)
- || "apos".equals(eName) || "amp".equals(eName))
- return;
+ {
+ if (skippedPE)
+ {
+ return;
+ }
+
+ handler.notationDecl(nname, ids.publicId, ids.systemId, ids.baseUri);
+ if (notationInfo.get(nname) == null)
+ {
+ notationInfo.put(nname, nname);
+ }
+ else
+ {
+ // VC: Unique Notation Name
+ handler.verror("Duplicate notation name decl: " + nname);
+ }
+ }
+
+ //
+ // Location.
+ //
+
+ /**
+ * Return the current line number.
+ */
+ public int getLineNumber()
+ {
+ return line;
}
- handler.getDeclHandler ()
- .internalEntityDecl (eName, value);
- }
+ /**
+ * Return the current column number.
+ */
+ public int getColumnNumber()
+ {
+ return column;
+ }
- /**
- * Register an external entity declaration for later retrieval.
- */
- private void setExternalEntity (String eName, int eClass,
- String ids [], String nName)
- {
- if (entityInfo.get (eName) == null) {
- Object entity[] = new Object [5];
- entity [0] = new Integer (eClass);
- entity [1] = ids;
-// FIXME: shrink!! [2] no longer used, [4] irrelevant given [0]
- entity [4] = nName;
- entityInfo.put (eName, entity);
- }
- }
+ //////////////////////////////////////////////////////////////////////
+ // High-level I/O.
+ //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Read a single character from the readBuffer.
+ * <p>The readDataChunk () method maintains the buffer.
+ * <p>If we hit the end of an entity, try to pop the stack and
+ * keep going.
+ * <p> (This approach doesn't really enforce XML's rules about
+ * entity boundaries, but this is not currently a validating
+ * parser).
+ * <p>This routine also attempts to keep track of the current
+ * position in external entities, but it's not entirely accurate.
+ * @return The next available input character.
+ * @see #unread (char)
+ * @see #readDataChunk
+ * @see #readBuffer
+ * @see #line
+ * @return The next character from the current input source.
+ */
+ private char readCh()
+ throws SAXException, IOException
+ {
+ // As long as there's nothing in the
+ // read buffer, try reading more data
+ // (for an external entity) or popping
+ // the entity stack (for either).
+ while (readBufferPos >= readBufferLength)
+ {
+ switch (sourceType)
+ {
+ case INPUT_READER:
+ case INPUT_STREAM:
+ readDataChunk();
+ while (readBufferLength < 1)
+ {
+ popInput();
+ if (readBufferLength < 1)
+ {
+ readDataChunk();
+ }
+ }
+ break;
+
+ default:
+
+ popInput();
+ break;
+ }
+ }
+
+ char c = readBuffer[readBufferPos++];
+
+ if (c == '\n')
+ {
+ line++;
+ column = 0;
+ }
+ else
+ {
+ if (c == '<')
+ {
+ /* the most common return to parseContent () ... NOP */
+ }
+ else if (((c < 0x0020 && (c != '\t') && (c != '\r')) || c > 0xFFFD)
+ || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
+ && xmlVersion == XML_11))
+ {
+ error("illegal XML character U+" + Integer.toHexString(c));
+ }
+ // If we're in the DTD and in a context where PEs get expanded,
+ // do so ... 1/14/2000 errata identify those contexts. There
+ // are also spots in the internal subset where PE refs are fatal
+ // errors, hence yet another flag.
+ else if (c == '%' && expandPE)
+ {
+ if (peIsError)
+ {
+ error("PE reference within decl in internal subset.");
+ }
+ parsePEReference();
+ return readCh();
+ }
+ column++;
+ }
- //
- // Notations.
- //
+ return c;
+ }
- /**
- * Report a notation declaration, checking for duplicates.
- */
- private void setNotation (String nname, String ids [])
+ /**
+ * Push a single character back onto the current input stream.
+ * <p>This method usually pushes the character back onto
+ * the readBuffer.
+ * <p>I don't think that this would ever be called with
+ * readBufferPos = 0, because the methods always reads a character
+ * before unreading it, but just in case, I've added a boundary
+ * condition.
+ * @param c The character to push back.
+ * @see #readCh
+ * @see #unread (char[])
+ * @see #readBuffer
+ */
+ private void unread(char c)
throws SAXException
- {
- if (skippedPE)
- return;
-
- handler.notationDecl (nname, ids);
- if (notationInfo.get (nname) == null)
- notationInfo.put (nname, nname);
- else
- // VC: Unique Notation Name
- handler.verror ("Duplicate notation name decl: " + nname);
- }
-
-
- //
- // Location.
- //
-
-
- /**
- * Return the current line number.
- */
- public int getLineNumber ()
- {
- return line;
- }
-
-
- /**
- * Return the current column number.
- */
- public int getColumnNumber ()
- {
- return column;
- }
+ {
+ // Normal condition.
+ if (c == '\n')
+ {
+ line--;
+ column = -1;
+ }
+ if (readBufferPos > 0)
+ {
+ readBuffer[--readBufferPos] = c;
+ }
+ else
+ {
+ pushString(null, new Character(c).toString());
+ }
+ }
+ /**
+ * Push a char array back onto the current input stream.
+ * <p>NOTE: you must <em>never</em> push back characters that you
+ * haven't actually read: use pushString () instead.
+ * @see #readCh
+ * @see #unread (char)
+ * @see #readBuffer
+ * @see #pushString
+ */
+ private void unread(char[] ch, int length)
+ throws SAXException
+ {
+ for (int i = 0; i < length; i++)
+ {
+ if (ch[i] == '\n')
+ {
+ line--;
+ column = -1;
+ }
+ }
+ if (length < readBufferPos)
+ {
+ readBufferPos -= length;
+ }
+ else
+ {
+ pushCharArray(null, ch, 0, length);
+ }
+ }
- //////////////////////////////////////////////////////////////////////
- // High-level I/O.
- //////////////////////////////////////////////////////////////////////
-
-
- /**
- * Read a single character from the readBuffer.
- * <p>The readDataChunk () method maintains the buffer.
- * <p>If we hit the end of an entity, try to pop the stack and
- * keep going.
- * <p> (This approach doesn't really enforce XML's rules about
- * entity boundaries, but this is not currently a validating
- * parser).
- * <p>This routine also attempts to keep track of the current
- * position in external entities, but it's not entirely accurate.
- * @return The next available input character.
- * @see #unread (char)
- * @see #readDataChunk
- * @see #readBuffer
- * @see #line
- * @return The next character from the current input source.
- */
- private char readCh ()
+ /**
+ * Push, or skip, a new external input source.
+ * The source will be some kind of parsed entity, such as a PE
+ * (including the external DTD subset) or content for the body.
+ *
+ * @param url The java.net.URL object for the entity.
+ * @see SAXDriver#resolveEntity
+ * @see #pushString
+ * @see #sourceType
+ * @see #pushInput
+ * @see #detectEncoding
+ * @see #sourceType
+ * @see #readBuffer
+ */
+ private void pushURL(boolean isPE,
+ String ename,
+ ExternalIdentifiers ids,
+ Reader reader,
+ InputStream stream,
+ String encoding,
+ boolean doResolve)
throws SAXException, IOException
- {
- // As long as there's nothing in the
- // read buffer, try reading more data
- // (for an external entity) or popping
- // the entity stack (for either).
- while (readBufferPos >= readBufferLength) {
- switch (sourceType) {
- case INPUT_READER:
- case INPUT_STREAM:
- readDataChunk ();
- while (readBufferLength < 1) {
- popInput ();
- if (readBufferLength < 1) {
- readDataChunk ();
- }
- }
- break;
-
- default:
-
- popInput ();
- break;
- }
- }
-
- char c = readBuffer [readBufferPos++];
-
- if (c == '\n') {
- line++;
- column = 0;
- } else {
- if (c == '<') {
- /* the most common return to parseContent () ... NOP */
- } else if (((c < 0x0020 && (c != '\t') && (c != '\r')) || c > 0xFFFD)
- || ((c >= 0x007f) && (c <= 0x009f) && (c != 0x0085)
- && xmlVersion == XML_11))
- error ("illegal XML character U+"
- + Integer.toHexString (c));
-
- // If we're in the DTD and in a context where PEs get expanded,
- // do so ... 1/14/2000 errata identify those contexts. There
- // are also spots in the internal subset where PE refs are fatal
- // errors, hence yet another flag.
- else if (c == '%' && expandPE) {
- if (peIsError)
- error ("PE reference within decl in internal subset.");
- parsePEReference ();
- return readCh ();
- }
- column++;
- }
-
- return c;
- }
+ {
+ boolean ignoreEncoding;
+ String systemId;
+ InputSource source;
+ if (!isPE)
+ {
+ dataBufferFlush();
+ }
- /**
- * Push a single character back onto the current input stream.
- * <p>This method usually pushes the character back onto
- * the readBuffer.
- * <p>I don't think that this would ever be called with
- * readBufferPos = 0, because the methods always reads a character
- * before unreading it, but just in case, I've added a boundary
- * condition.
- * @param c The character to push back.
- * @see #readCh
- * @see #unread (char[])
- * @see #readBuffer
- */
- private void unread (char c)
- throws SAXException
- {
- // Normal condition.
- if (c == '\n') {
- line--;
- column = -1;
- }
- if (readBufferPos > 0) {
- readBuffer [--readBufferPos] = c;
- } else {
- pushString (null, new Character (c).toString ());
- }
- }
+ scratch.setPublicId(ids.publicId);
+ scratch.setSystemId(ids.systemId);
+
+ // See if we should skip or substitute the entity.
+ // If we're not skipping, resolving reports startEntity()
+ // and updates the (handler's) stack of URIs.
+ if (doResolve)
+ {
+ // assert (stream == null && reader == null && encoding == null)
+ source = handler.resolveEntity(isPE, ename, scratch, ids.baseUri);
+ if (source == null)
+ {
+ handler.warn("skipping entity: " + ename);
+ handler.skippedEntity(ename);
+ if (isPE)
+ {
+ skippedPE = true;
+ }
+ return;
+ }
+ // we might be using alternate IDs/encoding
+ systemId = source.getSystemId();
+ // The following warning and setting systemId was deleted bcause
+ // the application has the option of not setting systemId
+ // provided that it has set the characte/byte stream.
+ /*
+ if (systemId == null) {
+ handler.warn ("missing system ID, using " + ids.systemId);
+ systemId = ids.systemId;
+ }
+ */
+ }
+ else
+ {
+ // "[document]", or "[dtd]" via getExternalSubset()
+ scratch.setCharacterStream(reader);
+ scratch.setByteStream(stream);
+ scratch.setEncoding(encoding);
+ source = scratch;
+ systemId = ids.systemId;
+ if (handler.stringInterning)
+ {
+ handler.startExternalEntity(ename, systemId,
+ "[document]" == ename);
+ }
+ else
+ {
+ handler.startExternalEntity(ename, systemId,
+ "[document]".equals(ename));
+ }
+ }
- /**
- * Push a char array back onto the current input stream.
- * <p>NOTE: you must <em>never</em> push back characters that you
- * haven't actually read: use pushString () instead.
- * @see #readCh
- * @see #unread (char)
- * @see #readBuffer
- * @see #pushString
- */
- private void unread (char ch[], int length)
- throws SAXException
- {
- for (int i = 0; i < length; i++) {
- if (ch [i] == '\n') {
- line--;
- column = -1;
- }
- }
- if (length < readBufferPos) {
- readBufferPos -= length;
- } else {
- pushCharArray (null, ch, 0, length);
- }
- }
+ // we may have been given I/O streams directly
+ if (source.getCharacterStream() != null)
+ {
+ if (source.getByteStream() != null)
+ error("InputSource has two streams!");
+ reader = source.getCharacterStream();
+ }
+ else if (source.getByteStream() != null)
+ {
+ encoding = source.getEncoding();
+ if (encoding == null)
+ {
+ stream = source.getByteStream();
+ }
+ else
+ {
+ try
+ {
+ reader = new InputStreamReader(source.getByteStream(),
+ encoding);
+ }
+ catch (IOException e)
+ {
+ stream = source.getByteStream();
+ }
+ }
+ }
+ else if (systemId == null)
+ {
+ error("InputSource has no URI!");
+ }
+ scratch.setCharacterStream(null);
+ scratch.setByteStream(null);
+ scratch.setEncoding(null);
+
+ // Push the existing status.
+ pushInput(ename);
+
+ // Create a new read buffer.
+ // (Note the four-character margin)
+ readBuffer = new char[READ_BUFFER_MAX + 4];
+ readBufferPos = 0;
+ readBufferLength = 0;
+ readBufferOverflow = -1;
+ is = null;
+ line = 1;
+ column = 0;
+ currentByteCount = 0;
+
+ // If there's an explicit character stream, just
+ // ignore encoding declarations.
+ if (reader != null)
+ {
+ sourceType = INPUT_READER;
+ this.reader = reader;
+ tryEncodingDecl(true);
+ return;
+ }
+
+ // Else we handle the conversion, and need to ensure
+ // it's done right.
+ sourceType = INPUT_STREAM;
+ if (stream != null)
+ {
+ is = stream;
+ }
+ else
+ {
+ // We have to open our own stream to the URL.
+ URL url = new URL(systemId);
+
+ externalEntity = url.openConnection();
+ externalEntity.connect();
+ is = externalEntity.getInputStream();
+ }
+
+ // If we get to here, there must be
+ // an InputStream available.
+ if (!is.markSupported())
+ {
+ is = new BufferedInputStream(is);
+ }
+ // Get any external encoding label.
+ if (encoding == null && externalEntity != null)
+ {
+ // External labels can be untrustworthy; filesystems in
+ // particular often have the wrong default for content
+ // that wasn't locally originated. Those we autodetect.
+ if (!"file".equals(externalEntity.getURL().getProtocol()))
+ {
+ int temp;
+
+ // application/xml;charset=something;otherAttr=...
+ // ... with many variants on 'something'
+ encoding = externalEntity.getContentType();
+
+ // MHK code (fix for Saxon 5.5.1/007):
+ // protect against encoding==null
+ if (encoding == null)
+ {
+ temp = -1;
+ }
+ else
+ {
+ temp = encoding.indexOf("charset");
+ }
+
+ // RFC 2376 sez MIME text defaults to ASCII, but since the
+ // JDK will create a MIME type out of thin air, we always
+ // autodetect when there's no explicit charset attribute.
+ if (temp < 0)
+ {
+ encoding = null; // autodetect
+ }
+ else
+ {
+ // only this one attribute
+ if ((temp = encoding.indexOf(';')) > 0)
+ {
+ encoding = encoding.substring(0, temp);
+ }
+
+ if ((temp = encoding.indexOf('=', temp + 7)) > 0)
+ {
+ encoding = encoding.substring(temp + 1);
+
+ // attributes can have comment fields (RFC 822)
+ if ((temp = encoding.indexOf('(')) > 0)
+ {
+ encoding = encoding.substring(0, temp);
+ }
+ // ... and values may be quoted
+ if ((temp = encoding.indexOf('"')) > 0)
+ {
+ encoding =
+ encoding.substring(temp + 1,
+ encoding.indexOf('"', temp + 2));
+ }
+ encoding.trim();
+ }
+ else
+ {
+ handler.warn("ignoring illegal MIME attribute: "
+ + encoding);
+ encoding = null;
+ }
+ }
+ }
+ }
+
+ // if we got an external encoding label, use it ...
+ if (encoding != null)
+ {
+ this.encoding = ENCODING_EXTERNAL;
+ setupDecoding(encoding);
+ ignoreEncoding = true;
+
+ // ... else autodetect from first bytes.
+ }
+ else
+ {
+ detectEncoding();
+ ignoreEncoding = false;
+ }
- /**
- * Push, or skip, a new external input source.
- * The source will be some kind of parsed entity, such as a PE
- * (including the external DTD subset) or content for the body.
- *
- * @param url The java.net.URL object for the entity.
- * @see SAXDriver#resolveEntity
- * @see #pushString
- * @see #sourceType
- * @see #pushInput
- * @see #detectEncoding
- * @see #sourceType
- * @see #readBuffer
- */
- private void pushURL (
- boolean isPE,
- String ename,
- String ids [], // public, system, baseURI
- Reader reader,
- InputStream stream,
- String encoding,
- boolean doResolve
- ) throws SAXException, IOException
- {
- boolean ignoreEncoding;
- String systemId;
- InputSource source;
-
- if (!isPE)
- dataBufferFlush ();
-
- scratch.setPublicId (ids [0]);
- scratch.setSystemId (ids [1]);
-
- // See if we should skip or substitute the entity.
- // If we're not skipping, resolving reports startEntity()
- // and updates the (handler's) stack of URIs.
- if (doResolve) {
- // assert (stream == null && reader == null && encoding == null)
- source = handler.resolveEntity (isPE, ename, scratch, ids [2]);
- if (source == null) {
- handler.warn ("skipping entity: " + ename);
- handler.skippedEntity (ename);
- if (isPE)
- skippedPE = true;
- return;
- }
-
- // we might be using alternate IDs/encoding
- systemId = source.getSystemId ();
- // The following warning and setting systemId was deleted bcause
- // the application has the option of not setting systemId
- // provided that it has set the characte/byte stream.
- /*
- if (systemId == null) {
- handler.warn ("missing system ID, using " + ids [1]);
- systemId = ids [1];
- }
- */
- } else {
- // "[document]", or "[dtd]" via getExternalSubset()
- scratch.setCharacterStream (reader);
- scratch.setByteStream (stream);
- scratch.setEncoding (encoding);
- source = scratch;
- systemId = ids [1];
- if (handler.getFeature (SAXDriver.FEATURE + "string-interning")) {
- handler.startExternalEntity (ename, systemId,
- "[document]" == ename);
- } else {
- handler.startExternalEntity (ename, systemId,
- "[document]".equals(ename));
- }
- }
-
- // we may have been given I/O streams directly
- if (source.getCharacterStream () != null) {
- if (source.getByteStream () != null)
- error ("InputSource has two streams!");
- reader = source.getCharacterStream ();
- } else if (source.getByteStream () != null) {
- encoding = source.getEncoding ();
- if (encoding == null)
- stream = source.getByteStream ();
- else try {
- reader = new InputStreamReader (
- source.getByteStream (),
- encoding);
- } catch (IOException e) {
- stream = source.getByteStream ();
- }
- } else if (systemId == null)
- error ("InputSource has no URI!");
- scratch.setCharacterStream (null);
- scratch.setByteStream (null);
- scratch.setEncoding (null);
-
- // Push the existing status.
- pushInput (ename);
-
- // Create a new read buffer.
- // (Note the four-character margin)
- readBuffer = new char [READ_BUFFER_MAX + 4];
- readBufferPos = 0;
- readBufferLength = 0;
- readBufferOverflow = -1;
- is = null;
- line = 1;
- column = 0;
- currentByteCount = 0;
-
- // If there's an explicit character stream, just
- // ignore encoding declarations.
- if (reader != null) {
- sourceType = INPUT_READER;
- this.reader = reader;
- tryEncodingDecl (true);
- return;
- }
-
- // Else we handle the conversion, and need to ensure
- // it's done right.
- sourceType = INPUT_STREAM;
- if (stream != null) {
- is = stream;
- } else {
- // We have to open our own stream to the URL.
- URL url = new URL (systemId);
-
- externalEntity = url.openConnection ();
- externalEntity.connect ();
- is = externalEntity.getInputStream ();
- }
-
- // If we get to here, there must be
- // an InputStream available.
- if (!is.markSupported ()) {
- is = new BufferedInputStream (is);
- }
-
- // Get any external encoding label.
- if (encoding == null && externalEntity != null) {
- // External labels can be untrustworthy; filesystems in
- // particular often have the wrong default for content
- // that wasn't locally originated. Those we autodetect.
- if (!"file".equals (externalEntity.getURL ().getProtocol ())) {
- int temp;
-
- // application/xml;charset=something;otherAttr=...
- // ... with many variants on 'something'
- encoding = externalEntity.getContentType ();
-
- // MHK code (fix for Saxon 5.5.1/007):
- // protect against encoding==null
- if (encoding==null) {
- temp = -1;
- } else {
- temp = encoding.indexOf ("charset");
- }
-
- // RFC 2376 sez MIME text defaults to ASCII, but since the
- // JDK will create a MIME type out of thin air, we always
- // autodetect when there's no explicit charset attribute.
- if (temp < 0)
- encoding = null; // autodetect
- else {
- // only this one attribute
- if ((temp = encoding.indexOf (';')) > 0)
- encoding = encoding.substring (0, temp);
-
- if ((temp = encoding.indexOf ('=', temp + 7)) > 0) {
- encoding = encoding.substring (temp + 1);
-
- // attributes can have comment fields (RFC 822)
- if ((temp = encoding.indexOf ('(')) > 0)
- encoding = encoding.substring (0, temp);
- // ... and values may be quoted
- if ((temp = encoding.indexOf ('"')) > 0)
- encoding = encoding.substring (temp + 1,
- encoding.indexOf ('"', temp + 2));
- encoding.trim ();
- } else {
- handler.warn ("ignoring illegal MIME attribute: "
- + encoding);
- encoding = null;
- }
- }
- }
- }
-
- // if we got an external encoding label, use it ...
- if (encoding != null) {
- this.encoding = ENCODING_EXTERNAL;
- setupDecoding (encoding);
- ignoreEncoding = true;
-
- // ... else autodetect from first bytes.
- } else {
- detectEncoding ();
- ignoreEncoding = false;
- }
-
- // Read any XML or text declaration.
- // If we autodetected, it may tell us the "real" encoding.
- try {
- tryEncodingDecl (ignoreEncoding);
- } catch (UnsupportedEncodingException x) {
- encoding = x.getMessage ();
-
- // if we don't handle the declared encoding,
- // try letting a JVM InputStreamReader do it
- try {
- if (sourceType != INPUT_STREAM)
- throw x;
-
- is.reset ();
- readBufferPos = 0;
- readBufferLength = 0;
- readBufferOverflow = -1;
- line = 1;
- currentByteCount = column = 0;
-
- sourceType = INPUT_READER;
- this.reader = new InputStreamReader (is, encoding);
- is = null;
-
- tryEncodingDecl (true);
-
- } catch (IOException e) {
- error ("unsupported text encoding",
- encoding,
- null);
- }
- }
- }
+ // Read any XML or text declaration.
+ // If we autodetected, it may tell us the "real" encoding.
+ try
+ {
+ tryEncodingDecl(ignoreEncoding);
+ }
+ catch (UnsupportedEncodingException x)
+ {
+ encoding = x.getMessage();
+ // if we don't handle the declared encoding,
+ // try letting a JVM InputStreamReader do it
+ try
+ {
+ if (sourceType != INPUT_STREAM)
+ {
+ throw x;
+ }
+
+ is.reset();
+ readBufferPos = 0;
+ readBufferLength = 0;
+ readBufferOverflow = -1;
+ line = 1;
+ currentByteCount = column = 0;
+
+ sourceType = INPUT_READER;
+ this.reader = new InputStreamReader(is, encoding);
+ is = null;
+
+ tryEncodingDecl(true);
+
+ }
+ catch (IOException e)
+ {
+ error("unsupported text encoding",
+ encoding,
+ null);
+ }
+ }
+ }
- /**
- * Check for an encoding declaration. This is the second part of the
- * XML encoding autodetection algorithm, relying on detectEncoding to
- * get to the point that this part can read any encoding declaration
- * in the document (using only US-ASCII characters).
- *
- * <p> Because this part starts to fill parser buffers with this data,
- * it's tricky to setup a reader so that Java's built-in decoders can be
- * used for the character encodings that aren't built in to this parser
- * (such as EUC-JP, KOI8-R, Big5, etc).
- *
- * @return any encoding in the declaration, uppercased; or null
- * @see detectEncoding
- */
- private String tryEncodingDecl (boolean ignoreEncoding)
+ /**
+ * Check for an encoding declaration. This is the second part of the
+ * XML encoding autodetection algorithm, relying on detectEncoding to
+ * get to the point that this part can read any encoding declaration
+ * in the document (using only US-ASCII characters).
+ *
+ * <p> Because this part starts to fill parser buffers with this data,
+ * it's tricky to setup a reader so that Java's built-in decoders can be
+ * used for the character encodings that aren't built in to this parser
+ * (such as EUC-JP, KOI8-R, Big5, etc).
+ *
+ * @return any encoding in the declaration, uppercased; or null
+ * @see detectEncoding
+ */
+ private String tryEncodingDecl(boolean ignoreEncoding)
throws SAXException, IOException
- {
- // Read the XML/text declaration.
- if (tryRead ("<?xml")) {
- if (tryWhitespace ()) {
- if (inputStack.size () > 0) {
- return parseTextDecl (ignoreEncoding);
- } else {
- return parseXMLDecl (ignoreEncoding);
- }
- } else {
- // <?xml-stylesheet ...?> or similar
- unread ('l');
- unread ('m');
- unread ('x');
- unread ('?');
- unread ('<');
- }
- }
- return null;
- }
-
+ {
+ // Read the XML/text declaration.
+ if (tryRead("<?xml"))
+ {
+ if (tryWhitespace())
+ {
+ if (inputStack.size() > 0)
+ {
+ return parseTextDecl(ignoreEncoding);
+ }
+ else
+ {
+ return parseXMLDecl(ignoreEncoding);
+ }
+ }
+ else
+ {
+ // <?xml-stylesheet ...?> or similar
+ unread('l');
+ unread('m');
+ unread('x');
+ unread('?');
+ unread('<');
+ }
+ }
+ return null;
+ }
- /**
- * Attempt to detect the encoding of an entity.
- * <p>The trick here (as suggested in the XML standard) is that
- * any entity not in UTF-8, or in UCS-2 with a byte-order mark,
- * <b>must</b> begin with an XML declaration or an encoding
- * declaration; we simply have to look for "&lt;?xml" in various
- * encodings.
- * <p>This method has no way to distinguish among 8-bit encodings.
- * Instead, it sets up for UTF-8, then (possibly) revises its assumption
- * later in setupDecoding (). Any ASCII-derived 8-bit encoding
- * should work, but most will be rejected later by setupDecoding ().
- * @see #tryEncoding (byte[], byte, byte, byte, byte)
- * @see #tryEncoding (byte[], byte, byte)
- * @see #setupDecoding
- */
- private void detectEncoding ()
+ /**
+ * Attempt to detect the encoding of an entity.
+ * <p>The trick here (as suggested in the XML standard) is that
+ * any entity not in UTF-8, or in UCS-2 with a byte-order mark,
+ * <b>must</b> begin with an XML declaration or an encoding
+ * declaration; we simply have to look for "&lt;?xml" in various
+ * encodings.
+ * <p>This method has no way to distinguish among 8-bit encodings.
+ * Instead, it sets up for UTF-8, then (possibly) revises its assumption
+ * later in setupDecoding (). Any ASCII-derived 8-bit encoding
+ * should work, but most will be rejected later by setupDecoding ().
+ * @see #tryEncoding (byte[], byte, byte, byte, byte)
+ * @see #tryEncoding (byte[], byte, byte)
+ * @see #setupDecoding
+ */
+ private void detectEncoding()
throws SAXException, IOException
- {
- byte signature[] = new byte [4];
-
- // Read the first four bytes for
- // autodetection.
- is.mark (4);
- is.read (signature);
- is.reset ();
-
- //
- // FIRST: four byte encodings (who uses these?)
- //
- if (tryEncoding (signature, (byte) 0x00, (byte) 0x00,
- (byte) 0x00, (byte) 0x3c)) {
- // UCS-4 must begin with "<?xml"
- // 0x00 0x00 0x00 0x3c: UCS-4, big-endian (1234)
- // "UTF-32BE"
- encoding = ENCODING_UCS_4_1234;
-
- } else if (tryEncoding (signature, (byte) 0x3c, (byte) 0x00,
- (byte) 0x00, (byte) 0x00)) {
- // 0x3c 0x00 0x00 0x00: UCS-4, little-endian (4321)
- // "UTF-32LE"
- encoding = ENCODING_UCS_4_4321;
-
- } else if (tryEncoding (signature, (byte) 0x00, (byte) 0x00,
- (byte) 0x3c, (byte) 0x00)) {
- // 0x00 0x00 0x3c 0x00: UCS-4, unusual (2143)
- encoding = ENCODING_UCS_4_2143;
-
- } else if (tryEncoding (signature, (byte) 0x00, (byte) 0x3c,
- (byte) 0x00, (byte) 0x00)) {
- // 0x00 0x3c 0x00 0x00: UCS-4, unusual (3421)
- encoding = ENCODING_UCS_4_3412;
-
- // 00 00 fe ff UCS_4_1234 (with BOM)
- // ff fe 00 00 UCS_4_4321 (with BOM)
- }
-
- //
- // SECOND: two byte encodings
- // note ... with 1/14/2000 errata the XML spec identifies some
- // more "broken UTF-16" autodetection cases, with no XML decl,
- // which we don't handle here (that's legal too).
- //
- else if (tryEncoding (signature, (byte) 0xfe, (byte) 0xff)) {
- // UCS-2 with a byte-order marker. (UTF-16)
- // 0xfe 0xff: UCS-2, big-endian (12)
- encoding = ENCODING_UCS_2_12;
- is.read (); is.read ();
-
- } else if (tryEncoding (signature, (byte) 0xff, (byte) 0xfe)) {
- // UCS-2 with a byte-order marker. (UTF-16)
- // 0xff 0xfe: UCS-2, little-endian (21)
- encoding = ENCODING_UCS_2_21;
- is.read (); is.read ();
-
- } else if (tryEncoding (signature, (byte) 0x00, (byte) 0x3c,
- (byte) 0x00, (byte) 0x3f)) {
- // UTF-16BE (otherwise, malformed UTF-16)
- // 0x00 0x3c 0x00 0x3f: UCS-2, big-endian, no byte-order mark
- encoding = ENCODING_UCS_2_12;
- error ("no byte-order mark for UCS-2 entity");
-
- } else if (tryEncoding (signature, (byte) 0x3c, (byte) 0x00,
- (byte) 0x3f, (byte) 0x00)) {
- // UTF-16LE (otherwise, malformed UTF-16)
- // 0x3c 0x00 0x3f 0x00: UCS-2, little-endian, no byte-order mark
- encoding = ENCODING_UCS_2_21;
- error ("no byte-order mark for UCS-2 entity");
- }
-
- //
- // THIRD: ASCII-derived encodings, fixed and variable lengths
- //
- else if (tryEncoding (signature, (byte) 0x3c, (byte) 0x3f,
- (byte) 0x78, (byte) 0x6d)) {
- // ASCII derived
- // 0x3c 0x3f 0x78 0x6d: UTF-8 or other 8-bit markup (read ENCODING)
- encoding = ENCODING_UTF_8;
- prefetchASCIIEncodingDecl ();
-
- } else if (signature [0] == (byte) 0xef
- && signature [1] == (byte) 0xbb
- && signature [2] == (byte) 0xbf) {
- // 0xef 0xbb 0xbf: UTF-8 BOM (not part of document text)
- // this un-needed notion slipped into XML 2nd ed through a
- // "non-normative" erratum; now required by MSFT and UDDI,
- // and E22 made it normative.
- encoding = ENCODING_UTF_8;
- is.read (); is.read (); is.read ();
-
- } else {
- // 4c 6f a7 94 ... we don't understand EBCDIC flavors
- // ... but we COULD at least kick in some fixed code page
-
- // (default) UTF-8 without encoding/XML declaration
- encoding = ENCODING_UTF_8;
- }
- }
-
+ {
+ byte[] signature = new byte[4];
- /**
- * Check for a four-byte signature.
- * <p>Utility routine for detectEncoding ().
- * <p>Always looks for some part of "<?XML" in a specific encoding.
- * @param sig The first four bytes read.
- * @param b1 The first byte of the signature
- * @param b2 The second byte of the signature
- * @param b3 The third byte of the signature
- * @param b4 The fourth byte of the signature
- * @see #detectEncoding
- */
- private static boolean tryEncoding (
- byte sig[], byte b1, byte b2, byte b3, byte b4)
- {
- return (sig [0] == b1 && sig [1] == b2
- && sig [2] == b3 && sig [3] == b4);
- }
+ // Read the first four bytes for
+ // autodetection.
+ is.mark(4);
+ is.read(signature);
+ is.reset();
+ //
+ // FIRST: four byte encodings (who uses these?)
+ //
+ if (tryEncoding(signature, (byte) 0x00, (byte) 0x00,
+ (byte) 0x00, (byte) 0x3c))
+ {
+ // UCS-4 must begin with "<?xml"
+ // 0x00 0x00 0x00 0x3c: UCS-4, big-endian (1234)
+ // "UTF-32BE"
+ encoding = ENCODING_UCS_4_1234;
+ }
+ else if (tryEncoding(signature, (byte) 0x3c, (byte) 0x00,
+ (byte) 0x00, (byte) 0x00))
+ {
+ // 0x3c 0x00 0x00 0x00: UCS-4, little-endian (4321)
+ // "UTF-32LE"
+ encoding = ENCODING_UCS_4_4321;
+ }
+ else if (tryEncoding(signature, (byte) 0x00, (byte) 0x00,
+ (byte) 0x3c, (byte) 0x00))
+ {
+ // 0x00 0x00 0x3c 0x00: UCS-4, unusual (2143)
+ encoding = ENCODING_UCS_4_2143;
+ }
+ else if (tryEncoding(signature, (byte) 0x00, (byte) 0x3c,
+ (byte) 0x00, (byte) 0x00))
+ {
+ // 0x00 0x3c 0x00 0x00: UCS-4, unusual (3421)
+ encoding = ENCODING_UCS_4_3412;
+
+ // 00 00 fe ff UCS_4_1234 (with BOM)
+ // ff fe 00 00 UCS_4_4321 (with BOM)
+ }
- /**
- * Check for a two-byte signature.
- * <p>Looks for a UCS-2 byte-order mark.
- * <p>Utility routine for detectEncoding ().
- * @param sig The first four bytes read.
- * @param b1 The first byte of the signature
- * @param b2 The second byte of the signature
- * @see #detectEncoding
- */
- private static boolean tryEncoding (byte sig[], byte b1, byte b2)
- {
- return ((sig [0] == b1) && (sig [1] == b2));
- }
+ //
+ // SECOND: two byte encodings
+ // note ... with 1/14/2000 errata the XML spec identifies some
+ // more "broken UTF-16" autodetection cases, with no XML decl,
+ // which we don't handle here (that's legal too).
+ //
+ else if (tryEncoding(signature, (byte) 0xfe, (byte) 0xff))
+ {
+ // UCS-2 with a byte-order marker. (UTF-16)
+ // 0xfe 0xff: UCS-2, big-endian (12)
+ encoding = ENCODING_UCS_2_12;
+ is.read(); is.read();
+ }
+ else if (tryEncoding(signature, (byte) 0xff, (byte) 0xfe))
+ {
+ // UCS-2 with a byte-order marker. (UTF-16)
+ // 0xff 0xfe: UCS-2, little-endian (21)
+ encoding = ENCODING_UCS_2_21;
+ is.read(); is.read();
+ }
+ else if (tryEncoding(signature, (byte) 0x00, (byte) 0x3c,
+ (byte) 0x00, (byte) 0x3f))
+ {
+ // UTF-16BE (otherwise, malformed UTF-16)
+ // 0x00 0x3c 0x00 0x3f: UCS-2, big-endian, no byte-order mark
+ encoding = ENCODING_UCS_2_12;
+ error("no byte-order mark for UCS-2 entity");
+ }
+ else if (tryEncoding(signature, (byte) 0x3c, (byte) 0x00,
+ (byte) 0x3f, (byte) 0x00))
+ {
+ // UTF-16LE (otherwise, malformed UTF-16)
+ // 0x3c 0x00 0x3f 0x00: UCS-2, little-endian, no byte-order mark
+ encoding = ENCODING_UCS_2_21;
+ error("no byte-order mark for UCS-2 entity");
+ }
+ //
+ // THIRD: ASCII-derived encodings, fixed and variable lengths
+ //
+ else if (tryEncoding(signature, (byte) 0x3c, (byte) 0x3f,
+ (byte) 0x78, (byte) 0x6d))
+ {
+ // ASCII derived
+ // 0x3c 0x3f 0x78 0x6d: UTF-8 or other 8-bit markup (read ENCODING)
+ encoding = ENCODING_UTF_8;
+ prefetchASCIIEncodingDecl();
+ }
+ else if (signature[0] == (byte) 0xef
+ && signature[1] == (byte) 0xbb
+ && signature[2] == (byte) 0xbf)
+ {
+ // 0xef 0xbb 0xbf: UTF-8 BOM (not part of document text)
+ // this un-needed notion slipped into XML 2nd ed through a
+ // "non-normative" erratum; now required by MSFT and UDDI,
+ // and E22 made it normative.
+ encoding = ENCODING_UTF_8;
+ is.read(); is.read(); is.read();
+ }
+ else
+ {
+ // 4c 6f a7 94 ... we don't understand EBCDIC flavors
+ // ... but we COULD at least kick in some fixed code page
+
+ // (default) UTF-8 without encoding/XML declaration
+ encoding = ENCODING_UTF_8;
+ }
+ }
- /**
- * This method pushes a string back onto input.
- * <p>It is useful either as the expansion of an internal entity,
- * or for backtracking during the parse.
- * <p>Call pushCharArray () to do the actual work.
- * @param s The string to push back onto input.
- * @see #pushCharArray
- */
- private void pushString (String ename, String s)
- throws SAXException
- {
- char ch[] = s.toCharArray ();
- pushCharArray (ename, ch, 0, ch.length);
- }
+ /**
+ * Check for a four-byte signature.
+ * <p>Utility routine for detectEncoding ().
+ * <p>Always looks for some part of "<?XML" in a specific encoding.
+ * @param sig The first four bytes read.
+ * @param b1 The first byte of the signature
+ * @param b2 The second byte of the signature
+ * @param b3 The third byte of the signature
+ * @param b4 The fourth byte of the signature
+ * @see #detectEncoding
+ */
+ private static boolean tryEncoding(byte[] sig, byte b1, byte b2,
+ byte b3, byte b4)
+ {
+ return (sig[0] == b1 && sig[1] == b2
+ && sig[2] == b3 && sig[3] == b4);
+ }
+ /**
+ * Check for a two-byte signature.
+ * <p>Looks for a UCS-2 byte-order mark.
+ * <p>Utility routine for detectEncoding ().
+ * @param sig The first four bytes read.
+ * @param b1 The first byte of the signature
+ * @param b2 The second byte of the signature
+ * @see #detectEncoding
+ */
+ private static boolean tryEncoding(byte[] sig, byte b1, byte b2)
+ {
+ return ((sig[0] == b1) && (sig[1] == b2));
+ }
- /**
- * Push a new internal input source.
- * <p>This method is useful for expanding an internal entity,
- * or for unreading a string of characters. It creates a new
- * readBuffer containing the characters in the array, instead
- * of characters converted from an input byte stream.
- * @param ch The char array to push.
- * @see #pushString
- * @see #pushURL
- * @see #readBuffer
- * @see #sourceType
- * @see #pushInput
- */
- private void pushCharArray (String ename, char ch[], int start, int length)
+ /**
+ * This method pushes a string back onto input.
+ * <p>It is useful either as the expansion of an internal entity,
+ * or for backtracking during the parse.
+ * <p>Call pushCharArray () to do the actual work.
+ * @param s The string to push back onto input.
+ * @see #pushCharArray
+ */
+ private void pushString(String ename, String s)
throws SAXException
- {
- // Push the existing status
- pushInput (ename);
- if (ename != null && doReport) {
- dataBufferFlush ();
- handler.startInternalEntity (ename);
- }
- sourceType = INPUT_INTERNAL;
- readBuffer = ch;
- readBufferPos = start;
- readBufferLength = length;
- readBufferOverflow = -1;
- }
-
+ {
+ char[] ch = s.toCharArray();
+ pushCharArray(ename, ch, 0, ch.length);
+ }
- /**
- * Save the current input source onto the stack.
- * <p>This method saves all of the global variables associated with
- * the current input source, so that they can be restored when a new
- * input source has finished. It also tests for entity recursion.
- * <p>The method saves the following global variables onto a stack
- * using a fixed-length array:
- * <ol>
- * <li>sourceType
- * <li>externalEntity
- * <li>readBuffer
- * <li>readBufferPos
- * <li>readBufferLength
- * <li>line
- * <li>encoding
- * </ol>
- * @param ename The name of the entity (if any) causing the new input.
- * @see #popInput
- * @see #sourceType
- * @see #externalEntity
- * @see #readBuffer
- * @see #readBufferPos
- * @see #readBufferLength
- * @see #line
- * @see #encoding
- */
- private void pushInput (String ename)
+ /**
+ * Push a new internal input source.
+ * <p>This method is useful for expanding an internal entity,
+ * or for unreading a string of characters. It creates a new
+ * readBuffer containing the characters in the array, instead
+ * of characters converted from an input byte stream.
+ * @param ch The char array to push.
+ * @see #pushString
+ * @see #pushURL
+ * @see #readBuffer
+ * @see #sourceType
+ * @see #pushInput
+ */
+ private void pushCharArray(String ename, char[] ch, int start, int length)
throws SAXException
- {
- // Check for entity recursion.
- if (ename != null) {
- Enumeration entities = entityStack.elements ();
- while (entities.hasMoreElements ()) {
- String e = (String) entities.nextElement ();
- if (e != null && e == ename) {
- error ("recursive reference to entity", ename, null);
- }
- }
- }
- entityStack.push (ename);
-
- // Don't bother if there is no current input.
- if (sourceType == INPUT_NONE) {
- return;
- }
-
- // Set up a snapshot of the current
- // input source.
- Object input[] = new Object [12];
-
- input [0] = new Integer (sourceType);
- input [1] = externalEntity;
- input [2] = readBuffer;
- input [3] = new Integer (readBufferPos);
- input [4] = new Integer (readBufferLength);
- input [5] = new Integer (line);
- input [6] = new Integer (encoding);
- input [7] = new Integer (readBufferOverflow);
- input [8] = is;
- input [9] = new Integer (currentByteCount);
- input [10] = new Integer (column);
- input [11] = reader;
-
- // Push it onto the stack.
- inputStack.push (input);
- }
+ {
+ // Push the existing status
+ pushInput(ename);
+ if (ename != null && doReport)
+ {
+ dataBufferFlush();
+ handler.startInternalEntity(ename);
+ }
+ sourceType = INPUT_INTERNAL;
+ readBuffer = ch;
+ readBufferPos = start;
+ readBufferLength = length;
+ readBufferOverflow = -1;
+ }
+ /**
+ * Save the current input source onto the stack.
+ * <p>This method saves all of the global variables associated with
+ * the current input source, so that they can be restored when a new
+ * input source has finished. It also tests for entity recursion.
+ * <p>The method saves the following global variables onto a stack
+ * using a fixed-length array:
+ * <ol>
+ * <li>sourceType
+ * <li>externalEntity
+ * <li>readBuffer
+ * <li>readBufferPos
+ * <li>readBufferLength
+ * <li>line
+ * <li>encoding
+ * </ol>
+ * @param ename The name of the entity (if any) causing the new input.
+ * @see #popInput
+ * @see #sourceType
+ * @see #externalEntity
+ * @see #readBuffer
+ * @see #readBufferPos
+ * @see #readBufferLength
+ * @see #line
+ * @see #encoding
+ */
+ private void pushInput(String ename)
+ throws SAXException
+ {
+ // Check for entity recursion.
+ if (ename != null)
+ {
+ Iterator entities = entityStack.iterator();
+ while (entities.hasNext())
+ {
+ String e = (String) entities.next();
+ if (e != null && e == ename)
+ {
+ error("recursive reference to entity", ename, null);
+ }
+ }
+ }
+ entityStack.addLast(ename);
+
+ // Don't bother if there is no current input.
+ if (sourceType == INPUT_NONE)
+ {
+ return;
+ }
+
+ // Set up a snapshot of the current
+ // input source.
+ Input input = new Input();
+
+ input.sourceType = sourceType;
+ input.externalEntity = externalEntity;
+ input.readBuffer = readBuffer;
+ input.readBufferPos = readBufferPos;
+ input.readBufferLength = readBufferLength;
+ input.line = line;
+ input.encoding = encoding;
+ input.readBufferOverflow = readBufferOverflow;
+ input.is = is;
+ input.currentByteCount = currentByteCount;
+ input.column = column;
+ input.reader = reader;
+
+ // Push it onto the stack.
+ inputStack.addLast(input);
+ }
- /**
- * Restore a previous input source.
- * <p>This method restores all of the global variables associated with
- * the current input source.
- * @exception java.io.EOFException
- * If there are no more entries on the input stack.
- * @see #pushInput
- * @see #sourceType
- * @see #externalEntity
- * @see #readBuffer
- * @see #readBufferPos
- * @see #readBufferLength
- * @see #line
- * @see #encoding
- */
- private void popInput ()
+ /**
+ * Restore a previous input source.
+ * <p>This method restores all of the global variables associated with
+ * the current input source.
+ * @exception java.io.EOFException
+ * If there are no more entries on the input stack.
+ * @see #pushInput
+ * @see #sourceType
+ * @see #externalEntity
+ * @see #readBuffer
+ * @see #readBufferPos
+ * @see #readBufferLength
+ * @see #line
+ * @see #encoding
+ */
+ private void popInput()
throws SAXException, IOException
- {
- String ename = (String) entityStack.pop ();
-
- if (ename != null && doReport)
- dataBufferFlush ();
- switch (sourceType) {
- case INPUT_STREAM:
- handler.endExternalEntity (ename);
- is.close ();
- break;
- case INPUT_READER:
- handler.endExternalEntity (ename);
- reader.close ();
- break;
- case INPUT_INTERNAL:
- if (ename != null && doReport)
- handler.endInternalEntity (ename);
- break;
- }
-
- // Throw an EOFException if there
- // is nothing else to pop.
- if (inputStack.isEmpty ()) {
- throw new EOFException ("no more input");
- }
-
- Object input [] = (Object[]) inputStack.pop ();
-
- sourceType = ((Integer) input [0]).intValue ();
- externalEntity = (URLConnection) input [1];
- readBuffer = (char[]) input [2];
- readBufferPos = ((Integer) input [3]).intValue ();
- readBufferLength = ((Integer) input [4]).intValue ();
- line = ((Integer) input [5]).intValue ();
- encoding = ((Integer) input [6]).intValue ();
- readBufferOverflow = ((Integer) input [7]).intValue ();
- is = (InputStream) input [8];
- currentByteCount = ((Integer) input [9]).intValue ();
- column = ((Integer) input [10]).intValue ();
- reader = (Reader) input [11];
- }
-
+ {
+ String ename = (String) entityStack.removeLast();
- /**
- * Return true if we can read the expected character.
- * <p>Note that the character will be removed from the input stream
- * on success, but will be put back on failure. Do not attempt to
- * read the character again if the method succeeds.
- * @param delim The character that should appear next. For a
- * insensitive match, you must supply this in upper-case.
- * @return true if the character was successfully read, or false if
- * it was not.
- * @see #tryRead (String)
- */
- private boolean tryRead (char delim)
- throws SAXException, IOException
- {
- char c;
-
- // Read the character
- c = readCh ();
-
- // Test for a match, and push the character
- // back if the match fails.
- if (c == delim) {
- return true;
- } else {
- unread (c);
- return false;
- }
- }
+ if (ename != null && doReport)
+ {
+ dataBufferFlush();
+ }
+ switch (sourceType)
+ {
+ case INPUT_STREAM:
+ handler.endExternalEntity(ename);
+ is.close();
+ break;
+ case INPUT_READER:
+ handler.endExternalEntity(ename);
+ reader.close();
+ break;
+ case INPUT_INTERNAL:
+ if (ename != null && doReport)
+ {
+ handler.endInternalEntity(ename);
+ }
+ break;
+ }
+ // Throw an EOFException if there
+ // is nothing else to pop.
+ if (inputStack.isEmpty())
+ {
+ throw new EOFException("no more input");
+ }
- /**
- * Return true if we can read the expected string.
- * <p>This is simply a convenience method.
- * <p>Note that the string will be removed from the input stream
- * on success, but will be put back on failure. Do not attempt to
- * read the string again if the method succeeds.
- * <p>This method will push back a character rather than an
- * array whenever possible (probably the majority of cases).
- * @param delim The string that should appear next.
- * @return true if the string was successfully read, or false if
- * it was not.
- * @see #tryRead (char)
- */
- private boolean tryRead (String delim)
+ Input input = (Input) inputStack.removeLast();
+
+ sourceType = input.sourceType;
+ externalEntity = input.externalEntity;
+ readBuffer = input.readBuffer;
+ readBufferPos = input.readBufferPos;
+ readBufferLength = input.readBufferLength;
+ line = input.line;
+ encoding = input.encoding;
+ readBufferOverflow = input.readBufferOverflow;
+ is = input.is;
+ currentByteCount = input.currentByteCount;
+ column = input.column;
+ reader = input.reader;
+ }
+
+ /**
+ * Return true if we can read the expected character.
+ * <p>Note that the character will be removed from the input stream
+ * on success, but will be put back on failure. Do not attempt to
+ * read the character again if the method succeeds.
+ * @param delim The character that should appear next. For a
+ * insensitive match, you must supply this in upper-case.
+ * @return true if the character was successfully read, or false if
+ * it was not.
+ * @see #tryRead (String)
+ */
+ private boolean tryRead(char delim)
throws SAXException, IOException
- {
- return tryRead (delim.toCharArray ());
- }
+ {
+ char c;
+
+ // Read the character
+ c = readCh();
+
+ // Test for a match, and push the character
+ // back if the match fails.
+ if (c == delim)
+ {
+ return true;
+ }
+ else
+ {
+ unread(c);
+ return false;
+ }
+ }
- private boolean tryRead (char ch [])
+ /**
+ * Return true if we can read the expected string.
+ * <p>This is simply a convenience method.
+ * <p>Note that the string will be removed from the input stream
+ * on success, but will be put back on failure. Do not attempt to
+ * read the string again if the method succeeds.
+ * <p>This method will push back a character rather than an
+ * array whenever possible (probably the majority of cases).
+ * @param delim The string that should appear next.
+ * @return true if the string was successfully read, or false if
+ * it was not.
+ * @see #tryRead (char)
+ */
+ private boolean tryRead(String delim)
throws SAXException, IOException
- {
- char c;
-
- // Compare the input, character-
- // by character.
-
- for (int i = 0; i < ch.length; i++) {
- c = readCh ();
- if (c != ch [i]) {
- unread (c);
- if (i != 0) {
- unread (ch, i);
- }
- return false;
- }
- }
- return true;
- }
-
-
+ {
+ return tryRead(delim.toCharArray());
+ }
- /**
- * Return true if we can read some whitespace.
- * <p>This is simply a convenience method.
- * <p>This method will push back a character rather than an
- * array whenever possible (probably the majority of cases).
- * @return true if whitespace was found.
- */
- private boolean tryWhitespace ()
+ private boolean tryRead(char[] ch)
throws SAXException, IOException
- {
- char c;
- c = readCh ();
- if (isWhitespace (c)) {
- skipWhitespace ();
- return true;
- } else {
- unread (c);
- return false;
- }
- }
+ {
+ char c;
+ // Compare the input, character-
+ // by character.
+
+ for (int i = 0; i < ch.length; i++)
+ {
+ c = readCh();
+ if (c != ch[i])
+ {
+ unread(c);
+ if (i != 0)
+ {
+ unread(ch, i);
+ }
+ return false;
+ }
+ }
+ return true;
+ }
- /**
- * Read all data until we find the specified string.
- * This is useful for scanning CDATA sections and PIs.
- * <p>This is inefficient right now, since it calls tryRead ()
- * for every character.
- * @param delim The string delimiter
- * @see #tryRead (String, boolean)
- * @see #readCh
- */
- private void parseUntil (String delim)
+ /**
+ * Return true if we can read some whitespace.
+ * <p>This is simply a convenience method.
+ * <p>This method will push back a character rather than an
+ * array whenever possible (probably the majority of cases).
+ * @return true if whitespace was found.
+ */
+ private boolean tryWhitespace()
throws SAXException, IOException
- {
- parseUntil (delim.toCharArray ());
- }
-
- private void parseUntil (char delim [])
+ {
+ char c;
+ c = readCh();
+ if (isWhitespace(c))
+ {
+ skipWhitespace();
+ return true;
+ }
+ else
+ {
+ unread(c);
+ return false;
+ }
+ }
+
+ /**
+ * Read all data until we find the specified string.
+ * This is useful for scanning CDATA sections and PIs.
+ * <p>This is inefficient right now, since it calls tryRead ()
+ * for every character.
+ * @param delim The string delimiter
+ * @see #tryRead (String, boolean)
+ * @see #readCh
+ */
+ private void parseUntil(String delim)
throws SAXException, IOException
- {
- char c;
- int startLine = line;
-
- try {
- while (!tryRead (delim)) {
- c = readCh ();
- dataBufferAppend (c);
- }
- } catch (EOFException e) {
- error ("end of input while looking for delimiter "
- + "(started on line " + startLine
- + ')', null, new String (delim));
- }
- }
-
-
- //////////////////////////////////////////////////////////////////////
- // Low-level I/O.
- //////////////////////////////////////////////////////////////////////
+ {
+ parseUntil(delim.toCharArray());
+ }
+ private void parseUntil(char[] delim)
+ throws SAXException, IOException
+ {
+ char c;
+ int startLine = line;
+
+ try
+ {
+ while (!tryRead(delim))
+ {
+ c = readCh();
+ dataBufferAppend(c);
+ }
+ }
+ catch (EOFException e)
+ {
+ error("end of input while looking for delimiter "
+ + "(started on line " + startLine
+ + ')', null, new String(delim));
+ }
+ }
- /**
- * Prefetch US-ASCII XML/text decl from input stream into read buffer.
- * Doesn't buffer more than absolutely needed, so that when an encoding
- * decl says we need to create an InputStreamReader, we can discard our
- * buffer and reset(). Caller knows the first chars of the decl exist
- * in the input stream.
- */
- private void prefetchASCIIEncodingDecl ()
+ //////////////////////////////////////////////////////////////////////
+ // Low-level I/O.
+ //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Prefetch US-ASCII XML/text decl from input stream into read buffer.
+ * Doesn't buffer more than absolutely needed, so that when an encoding
+ * decl says we need to create an InputStreamReader, we can discard our
+ * buffer and reset(). Caller knows the first chars of the decl exist
+ * in the input stream.
+ */
+ private void prefetchASCIIEncodingDecl()
throws SAXException, IOException
- {
- int ch;
- readBufferPos = readBufferLength = 0;
-
- is.mark (readBuffer.length);
- while (true) {
- ch = is.read ();
- readBuffer [readBufferLength++] = (char) ch;
- switch (ch) {
- case (int) '>':
- return;
- case -1:
- error ("file ends before end of XML or encoding declaration.",
- null, "?>");
- }
- if (readBuffer.length == readBufferLength)
- error ("unfinished XML or encoding declaration");
- }
- }
+ {
+ int ch;
+ readBufferPos = readBufferLength = 0;
+
+ is.mark(readBuffer.length);
+ while (true)
+ {
+ ch = is.read();
+ readBuffer[readBufferLength++] = (char) ch;
+ switch (ch)
+ {
+ case (int) '>':
+ return;
+ case -1:
+ error("file ends before end of XML or encoding declaration.",
+ null, "?>");
+ }
+ if (readBuffer.length == readBufferLength)
+ {
+ error("unfinished XML or encoding declaration");
+ }
+ }
+ }
- /**
- * Read a chunk of data from an external input source.
- * <p>This is simply a front-end that fills the rawReadBuffer
- * with bytes, then calls the appropriate encoding handler.
- * @see #encoding
- * @see #rawReadBuffer
- * @see #readBuffer
- * @see #filterCR
- * @see #copyUtf8ReadBuffer
- * @see #copyIso8859_1ReadBuffer
- * @see #copyUcs_2ReadBuffer
- * @see #copyUcs_4ReadBuffer
- */
- private void readDataChunk ()
+ /**
+ * Read a chunk of data from an external input source.
+ * <p>This is simply a front-end that fills the rawReadBuffer
+ * with bytes, then calls the appropriate encoding handler.
+ * @see #encoding
+ * @see #rawReadBuffer
+ * @see #readBuffer
+ * @see #filterCR
+ * @see #copyUtf8ReadBuffer
+ * @see #copyIso8859_1ReadBuffer
+ * @see #copyUcs_2ReadBuffer
+ * @see #copyUcs_4ReadBuffer
+ */
+ private void readDataChunk()
throws SAXException, IOException
- {
- int count;
-
- // See if we have any overflow (filterCR sets for CR at end)
- if (readBufferOverflow > -1) {
- readBuffer [0] = (char) readBufferOverflow;
- readBufferOverflow = -1;
- readBufferPos = 1;
- sawCR = true;
- } else {
- readBufferPos = 0;
- sawCR = false;
- }
-
- // input from a character stream.
- if (sourceType == INPUT_READER) {
- count = reader.read (readBuffer,
- readBufferPos, READ_BUFFER_MAX - readBufferPos);
- if (count < 0)
- readBufferLength = readBufferPos;
- else
- readBufferLength = readBufferPos + count;
- if (readBufferLength > 0)
- filterCR (count >= 0);
- sawCR = false;
- return;
- }
-
- // Read as many bytes as possible into the raw buffer.
- count = is.read (rawReadBuffer, 0, READ_BUFFER_MAX);
-
- // Dispatch to an encoding-specific reader method to populate
- // the readBuffer. In most parser speed profiles, these routines
- // show up at the top of the CPU usage chart.
- if (count > 0) {
- switch (encoding) {
- // one byte builtins
- case ENCODING_ASCII:
- copyIso8859_1ReadBuffer (count, (char) 0x0080);
- break;
- case ENCODING_UTF_8:
- copyUtf8ReadBuffer (count);
- break;
- case ENCODING_ISO_8859_1:
- copyIso8859_1ReadBuffer (count, (char) 0);
- break;
-
- // two byte builtins
- case ENCODING_UCS_2_12:
- copyUcs2ReadBuffer (count, 8, 0);
- break;
- case ENCODING_UCS_2_21:
- copyUcs2ReadBuffer (count, 0, 8);
- break;
-
- // four byte builtins
- case ENCODING_UCS_4_1234:
- copyUcs4ReadBuffer (count, 24, 16, 8, 0);
- break;
- case ENCODING_UCS_4_4321:
- copyUcs4ReadBuffer (count, 0, 8, 16, 24);
- break;
- case ENCODING_UCS_4_2143:
- copyUcs4ReadBuffer (count, 16, 24, 0, 8);
- break;
- case ENCODING_UCS_4_3412:
- copyUcs4ReadBuffer (count, 8, 0, 24, 16);
- break;
- }
- } else
- readBufferLength = readBufferPos;
-
- readBufferPos = 0;
-
- // Filter out all carriage returns if we've seen any
- // (including any saved from a previous read)
- if (sawCR) {
- filterCR (count >= 0);
- sawCR = false;
-
- // must actively report EOF, lest some CRs get lost.
- if (readBufferLength == 0 && count >= 0)
- readDataChunk ();
- }
-
- if (count > 0)
- currentByteCount += count;
- }
+ {
+ int count;
+
+ // See if we have any overflow (filterCR sets for CR at end)
+ if (readBufferOverflow > -1)
+ {
+ readBuffer[0] = (char) readBufferOverflow;
+ readBufferOverflow = -1;
+ readBufferPos = 1;
+ sawCR = true;
+ }
+ else
+ {
+ readBufferPos = 0;
+ sawCR = false;
+ }
+ // input from a character stream.
+ if (sourceType == INPUT_READER)
+ {
+ count = reader.read(readBuffer,
+ readBufferPos, READ_BUFFER_MAX - readBufferPos);
+ if (count < 0)
+ {
+ readBufferLength = readBufferPos;
+ }
+ else
+ {
+ readBufferLength = readBufferPos + count;
+ }
+ if (readBufferLength > 0)
+ {
+ filterCR(count >= 0);
+ }
+ sawCR = false;
+ return;
+ }
+
+ // Read as many bytes as possible into the raw buffer.
+ count = is.read(rawReadBuffer, 0, READ_BUFFER_MAX);
+
+ // Dispatch to an encoding-specific reader method to populate
+ // the readBuffer. In most parser speed profiles, these routines
+ // show up at the top of the CPU usage chart.
+ if (count > 0)
+ {
+ switch (encoding)
+ {
+ // one byte builtins
+ case ENCODING_ASCII:
+ copyIso8859_1ReadBuffer(count, (char) 0x0080);
+ break;
+ case ENCODING_UTF_8:
+ copyUtf8ReadBuffer(count);
+ break;
+ case ENCODING_ISO_8859_1:
+ copyIso8859_1ReadBuffer(count, (char) 0);
+ break;
- /**
- * Filter carriage returns in the read buffer.
- * CRLF becomes LF; CR becomes LF.
- * @param moreData true iff more data might come from the same source
- * @see #readDataChunk
- * @see #readBuffer
- * @see #readBufferOverflow
- */
- private void filterCR (boolean moreData)
- {
- int i, j;
+ // two byte builtins
+ case ENCODING_UCS_2_12:
+ copyUcs2ReadBuffer(count, 8, 0);
+ break;
+ case ENCODING_UCS_2_21:
+ copyUcs2ReadBuffer(count, 0, 8);
+ break;
+
+ // four byte builtins
+ case ENCODING_UCS_4_1234:
+ copyUcs4ReadBuffer(count, 24, 16, 8, 0);
+ break;
+ case ENCODING_UCS_4_4321:
+ copyUcs4ReadBuffer(count, 0, 8, 16, 24);
+ break;
+ case ENCODING_UCS_4_2143:
+ copyUcs4ReadBuffer(count, 16, 24, 0, 8);
+ break;
+ case ENCODING_UCS_4_3412:
+ copyUcs4ReadBuffer(count, 8, 0, 24, 16);
+ break;
+ }
+ }
+ else
+ {
+ readBufferLength = readBufferPos;
+ }
- readBufferOverflow = -1;
+ readBufferPos = 0;
+
+ // Filter out all carriage returns if we've seen any
+ // (including any saved from a previous read)
+ if (sawCR)
+ {
+ filterCR(count >= 0);
+ sawCR = false;
+
+ // must actively report EOF, lest some CRs get lost.
+ if (readBufferLength == 0 && count >= 0)
+ {
+ readDataChunk();
+ }
+ }
+
+ if (count > 0)
+ {
+ currentByteCount += count;
+ }
+ }
+
+ /**
+ * Filter carriage returns in the read buffer.
+ * CRLF becomes LF; CR becomes LF.
+ * @param moreData true iff more data might come from the same source
+ * @see #readDataChunk
+ * @see #readBuffer
+ * @see #readBufferOverflow
+ */
+ private void filterCR(boolean moreData)
+ {
+ int i, j;
+ readBufferOverflow = -1;
+
loop:
- for (i = j = readBufferPos; j < readBufferLength; i++, j++) {
- switch (readBuffer [j]) {
- case '\r':
- if (j == readBufferLength - 1) {
- if (moreData) {
- readBufferOverflow = '\r';
- readBufferLength--;
- } else // CR at end of buffer
- readBuffer [i++] = '\n';
- break loop;
- } else if (readBuffer [j + 1] == '\n') {
- j++;
- }
- readBuffer [i] = '\n';
- break;
-
- case '\n':
- default:
- readBuffer [i] = readBuffer [j];
- break;
- }
- }
- readBufferLength = i;
- }
+ for (i = j = readBufferPos; j < readBufferLength; i++, j++)
+ {
+ switch (readBuffer[j])
+ {
+ case '\r':
+ if (j == readBufferLength - 1)
+ {
+ if (moreData)
+ {
+ readBufferOverflow = '\r';
+ readBufferLength--;
+ }
+ else // CR at end of buffer
+ {
+ readBuffer[i++] = '\n';
+ }
+ break loop;
+ }
+ else if (readBuffer[j + 1] == '\n')
+ {
+ j++;
+ }
+ readBuffer[i] = '\n';
+ break;
- /**
- * Convert a buffer of UTF-8-encoded bytes into UTF-16 characters.
- * <p>When readDataChunk () calls this method, the raw bytes are in
- * rawReadBuffer, and the final characters will appear in
- * readBuffer.
- * <p>Note that as of Unicode 3.1, good practice became a requirement,
- * so that each Unicode character has exactly one UTF-8 representation.
- * @param count The number of bytes to convert.
- * @see #readDataChunk
- * @see #rawReadBuffer
- * @see #readBuffer
- * @see #getNextUtf8Byte
- */
- private void copyUtf8ReadBuffer (int count)
+ case '\n':
+ default:
+ readBuffer[i] = readBuffer[j];
+ break;
+ }
+ }
+ readBufferLength = i;
+ }
+
+ /**
+ * Convert a buffer of UTF-8-encoded bytes into UTF-16 characters.
+ * <p>When readDataChunk () calls this method, the raw bytes are in
+ * rawReadBuffer, and the final characters will appear in
+ * readBuffer.
+ * <p>Note that as of Unicode 3.1, good practice became a requirement,
+ * so that each Unicode character has exactly one UTF-8 representation.
+ * @param count The number of bytes to convert.
+ * @see #readDataChunk
+ * @see #rawReadBuffer
+ * @see #readBuffer
+ * @see #getNextUtf8Byte
+ */
+ private void copyUtf8ReadBuffer(int count)
throws SAXException, IOException
- {
- int i = 0;
- int j = readBufferPos;
- int b1;
- char c = 0;
-
- /*
- // check once, so the runtime won't (if it's smart enough)
- if (count < 0 || count > rawReadBuffer.length)
- throw new ArrayIndexOutOfBoundsException (Integer.toString (count));
- */
-
- while (i < count) {
- b1 = rawReadBuffer [i++];
-
- // Determine whether we are dealing
- // with a one-, two-, three-, or four-
- // byte sequence.
- if (b1 < 0) {
- if ((b1 & 0xe0) == 0xc0) {
- // 2-byte sequence: 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx
- c = (char) (((b1 & 0x1f) << 6)
- | getNextUtf8Byte (i++, count));
- if (c < 0x0080)
- encodingError ("Illegal two byte UTF-8 sequence",
- c, 0);
- //Sec 2.11
- // [1] the two-character sequence #xD #xA
- // [2] the two-character sequence #xD #x85
- if ((c == 0x0085 || c == 0x000a) && sawCR)
- continue;
-
- // Sec 2.11
- // [3] the single character #x85
-
- if(c == 0x0085 && xmlVersion == XML_11)
- readBuffer[j++] = '\r';
- } else if ((b1 & 0xf0) == 0xe0) {
- // 3-byte sequence:
- // zzzzyyyyyyxxxxxx = 1110zzzz 10yyyyyy 10xxxxxx
- // most CJKV characters
- c = (char) (((b1 & 0x0f) << 12) |
- (getNextUtf8Byte (i++, count) << 6) |
- getNextUtf8Byte (i++, count));
- //sec 2.11
- //[4] the single character #x2028
- if(c == 0x2028 && xmlVersion == XML_11){
- readBuffer[j++] = '\r';
- sawCR = true;
- continue;
- }
- if (c < 0x0800 || (c >= 0xd800 && c <= 0xdfff))
- encodingError ("Illegal three byte UTF-8 sequence",
- c, 0);
- } else if ((b1 & 0xf8) == 0xf0) {
- // 4-byte sequence: 11101110wwwwzzzzyy + 110111yyyyxxxxxx
- // = 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx
- // (uuuuu = wwww + 1)
- // "Surrogate Pairs" ... from the "Astral Planes"
- // Unicode 3.1 assigned the first characters there
- int iso646 = b1 & 07;
- iso646 = (iso646 << 6) + getNextUtf8Byte (i++, count);
- iso646 = (iso646 << 6) + getNextUtf8Byte (i++, count);
- iso646 = (iso646 << 6) + getNextUtf8Byte (i++, count);
-
- if (iso646 <= 0xffff) {
- encodingError ("Illegal four byte UTF-8 sequence",
- iso646, 0);
- } else {
- if (iso646 > 0x0010ffff)
- encodingError (
- "UTF-8 value out of range for Unicode",
- iso646, 0);
- iso646 -= 0x010000;
- readBuffer [j++] = (char) (0xd800 | (iso646 >> 10));
- readBuffer [j++] = (char) (0xdc00 | (iso646 & 0x03ff));
- continue;
- }
- } else {
- // The five and six byte encodings aren't supported;
- // they exceed the Unicode (and XML) range.
- encodingError (
- "unsupported five or six byte UTF-8 sequence",
- 0xff & b1, i);
- // NOTREACHED
- c = 0;
- }
- } else {
- // 1-byte sequence: 000000000xxxxxxx = 0xxxxxxx
- // (US-ASCII character, "common" case, one branch to here)
- c = (char) b1;
- }
- readBuffer [j++] = c;
- if (c == '\r')
- sawCR = true;
- }
- // How many characters have we read?
- readBufferLength = j;
- }
+ {
+ int i = 0;
+ int j = readBufferPos;
+ int b1;
+ char c = 0;
+
+ /*
+ // check once, so the runtime won't (if it's smart enough)
+ if (count < 0 || count > rawReadBuffer.length)
+ throw new ArrayIndexOutOfBoundsException (Integer.toString (count));
+ */
+ while (i < count)
+ {
+ b1 = rawReadBuffer[i++];
- /**
- * Return the next byte value in a UTF-8 sequence.
- * If it is not possible to get a byte from the current
- * entity, throw an exception.
- * @param pos The current position in the rawReadBuffer.
- * @param count The number of bytes in the rawReadBuffer
- * @return The significant six bits of a non-initial byte in
- * a UTF-8 sequence.
- * @exception EOFException If the sequence is incomplete.
- */
- private int getNextUtf8Byte (int pos, int count)
+ // Determine whether we are dealing
+ // with a one-, two-, three-, or four-
+ // byte sequence.
+ if (b1 < 0)
+ {
+ if ((b1 & 0xe0) == 0xc0)
+ {
+ // 2-byte sequence: 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx
+ c = (char) (((b1 & 0x1f) << 6)
+ | getNextUtf8Byte(i++, count));
+ if (c < 0x0080)
+ {
+ encodingError("Illegal two byte UTF-8 sequence",
+ c, 0);
+ }
+
+ //Sec 2.11
+ // [1] the two-character sequence #xD #xA
+ // [2] the two-character sequence #xD #x85
+ if ((c == 0x0085 || c == 0x000a) && sawCR)
+ {
+ continue;
+ }
+
+ // Sec 2.11
+ // [3] the single character #x85
+
+ if (c == 0x0085 && xmlVersion == XML_11)
+ {
+ readBuffer[j++] = '\r';
+ }
+ }
+ else if ((b1 & 0xf0) == 0xe0)
+ {
+ // 3-byte sequence:
+ // zzzzyyyyyyxxxxxx = 1110zzzz 10yyyyyy 10xxxxxx
+ // most CJKV characters
+ c = (char) (((b1 & 0x0f) << 12) |
+ (getNextUtf8Byte(i++, count) << 6) |
+ getNextUtf8Byte(i++, count));
+ //sec 2.11
+ //[4] the single character #x2028
+ if (c == 0x2028 && xmlVersion == XML_11)
+ {
+ readBuffer[j++] = '\r';
+ sawCR = true;
+ continue;
+ }
+ if (c < 0x0800 || (c >= 0xd800 && c <= 0xdfff))
+ {
+ encodingError("Illegal three byte UTF-8 sequence",
+ c, 0);
+ }
+ }
+ else if ((b1 & 0xf8) == 0xf0)
+ {
+ // 4-byte sequence: 11101110wwwwzzzzyy + 110111yyyyxxxxxx
+ // = 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx
+ // (uuuuu = wwww + 1)
+ // "Surrogate Pairs" ... from the "Astral Planes"
+ // Unicode 3.1 assigned the first characters there
+ int iso646 = b1 & 07;
+ iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count);
+ iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count);
+ iso646 = (iso646 << 6) + getNextUtf8Byte(i++, count);
+
+ if (iso646 <= 0xffff)
+ {
+ encodingError("Illegal four byte UTF-8 sequence",
+ iso646, 0);
+ }
+ else
+ {
+ if (iso646 > 0x0010ffff)
+ {
+ encodingError("UTF-8 value out of range for Unicode",
+ iso646, 0);
+ }
+ iso646 -= 0x010000;
+ readBuffer[j++] = (char) (0xd800 | (iso646 >> 10));
+ readBuffer[j++] = (char) (0xdc00 | (iso646 & 0x03ff));
+ continue;
+ }
+ }
+ else
+ {
+ // The five and six byte encodings aren't supported;
+ // they exceed the Unicode (and XML) range.
+ encodingError("unsupported five or six byte UTF-8 sequence",
+ 0xff & b1, i);
+ // NOTREACHED
+ c = 0;
+ }
+ }
+ else
+ {
+ // 1-byte sequence: 000000000xxxxxxx = 0xxxxxxx
+ // (US-ASCII character, "common" case, one branch to here)
+ c = (char) b1;
+ }
+ readBuffer[j++] = c;
+ if (c == '\r')
+ {
+ sawCR = true;
+ }
+ }
+ // How many characters have we read?
+ readBufferLength = j;
+ }
+
+ /**
+ * Return the next byte value in a UTF-8 sequence.
+ * If it is not possible to get a byte from the current
+ * entity, throw an exception.
+ * @param pos The current position in the rawReadBuffer.
+ * @param count The number of bytes in the rawReadBuffer
+ * @return The significant six bits of a non-initial byte in
+ * a UTF-8 sequence.
+ * @exception EOFException If the sequence is incomplete.
+ */
+ private int getNextUtf8Byte(int pos, int count)
throws SAXException, IOException
- {
- int val;
-
- // Take a character from the buffer
- // or from the actual input stream.
- if (pos < count) {
- val = rawReadBuffer [pos];
- } else {
- val = is.read ();
- if (val == -1) {
- encodingError ("unfinished multi-byte UTF-8 sequence at EOF",
- -1, pos);
- }
- }
-
- // Check for the correct bits at the start.
- if ((val & 0xc0) != 0x80) {
- encodingError ("bad continuation of multi-byte UTF-8 sequence",
- val, pos + 1);
- }
-
- // Return the significant bits.
- return (val & 0x3f);
- }
+ {
+ int val;
+
+ // Take a character from the buffer
+ // or from the actual input stream.
+ if (pos < count)
+ {
+ val = rawReadBuffer[pos];
+ }
+ else
+ {
+ val = is.read();
+ if (val == -1)
+ {
+ encodingError("unfinished multi-byte UTF-8 sequence at EOF",
+ -1, pos);
+ }
+ }
+ // Check for the correct bits at the start.
+ if ((val & 0xc0) != 0x80)
+ {
+ encodingError("bad continuation of multi-byte UTF-8 sequence",
+ val, pos + 1);
+ }
- /**
- * Convert a buffer of US-ASCII or ISO-8859-1-encoded bytes into
- * UTF-16 characters.
- *
- * <p>When readDataChunk () calls this method, the raw bytes are in
- * rawReadBuffer, and the final characters will appear in
- * readBuffer.
- *
- * @param count The number of bytes to convert.
- * @param mask For ASCII conversion, 0x7f; else, 0xff.
- * @see #readDataChunk
- * @see #rawReadBuffer
- * @see #readBuffer
- */
- private void copyIso8859_1ReadBuffer (int count, char mask)
- throws IOException
- {
- int i, j;
- for (i = 0, j = readBufferPos; i < count; i++, j++) {
- char c = (char) (rawReadBuffer [i] & 0xff);
- if ((c & mask) != 0)
- throw new CharConversionException ("non-ASCII character U+"
- + Integer.toHexString (c));
- if (c == 0x0085 && xmlVersion == XML_11)
- c = '\r';
- readBuffer [j] = c;
- if (c == '\r') {
- sawCR = true;
- }
- }
- readBufferLength = j;
- }
+ // Return the significant bits.
+ return (val & 0x3f);
+ }
+ /**
+ * Convert a buffer of US-ASCII or ISO-8859-1-encoded bytes into
+ * UTF-16 characters.
+ *
+ * <p>When readDataChunk () calls this method, the raw bytes are in
+ * rawReadBuffer, and the final characters will appear in
+ * readBuffer.
+ *
+ * @param count The number of bytes to convert.
+ * @param mask For ASCII conversion, 0x7f; else, 0xff.
+ * @see #readDataChunk
+ * @see #rawReadBuffer
+ * @see #readBuffer
+ */
+ private void copyIso8859_1ReadBuffer(int count, char mask)
+ throws IOException
+ {
+ int i, j;
+ for (i = 0, j = readBufferPos; i < count; i++, j++)
+ {
+ char c = (char) (rawReadBuffer[i] & 0xff);
+ if ((c & mask) != 0)
+ {
+ throw new CharConversionException("non-ASCII character U+"
+ + Integer.toHexString(c));
+ }
+ if (c == 0x0085 && xmlVersion == XML_11)
+ {
+ c = '\r';
+ }
+ readBuffer[j] = c;
+ if (c == '\r')
+ {
+ sawCR = true;
+ }
+ }
+ readBufferLength = j;
+ }
- /**
- * Convert a buffer of UCS-2-encoded bytes into UTF-16 characters
- * (as used in Java string manipulation).
- *
- * <p>When readDataChunk () calls this method, the raw bytes are in
- * rawReadBuffer, and the final characters will appear in
- * readBuffer.
- * @param count The number of bytes to convert.
- * @param shift1 The number of bits to shift byte 1.
- * @param shift2 The number of bits to shift byte 2
- * @see #readDataChunk
- * @see #rawReadBuffer
- * @see #readBuffer
- */
- private void copyUcs2ReadBuffer (int count, int shift1, int shift2)
+ /**
+ * Convert a buffer of UCS-2-encoded bytes into UTF-16 characters
+ * (as used in Java string manipulation).
+ *
+ * <p>When readDataChunk () calls this method, the raw bytes are in
+ * rawReadBuffer, and the final characters will appear in
+ * readBuffer.
+ * @param count The number of bytes to convert.
+ * @param shift1 The number of bits to shift byte 1.
+ * @param shift2 The number of bits to shift byte 2
+ * @see #readDataChunk
+ * @see #rawReadBuffer
+ * @see #readBuffer
+ */
+ private void copyUcs2ReadBuffer(int count, int shift1, int shift2)
throws SAXException
- {
- int j = readBufferPos;
-
- if (count > 0 && (count % 2) != 0) {
- encodingError ("odd number of bytes in UCS-2 encoding", -1, count);
- }
- // The loops are faster with less internal brancing; hence two
- if (shift1 == 0) { // "UTF-16-LE"
- for (int i = 0; i < count; i += 2) {
- char c = (char) (rawReadBuffer [i + 1] << 8);
- c |= 0xff & rawReadBuffer [i];
- readBuffer [j++] = c;
- if (c == '\r')
- sawCR = true;
- }
- } else { // "UTF-16-BE"
- for (int i = 0; i < count; i += 2) {
- char c = (char) (rawReadBuffer [i] << 8);
- c |= 0xff & rawReadBuffer [i + 1];
- readBuffer [j++] = c;
- if (c == '\r')
- sawCR = true;
- }
- }
- readBufferLength = j;
- }
-
+ {
+ int j = readBufferPos;
+
+ if (count > 0 && (count % 2) != 0)
+ {
+ encodingError("odd number of bytes in UCS-2 encoding", -1, count);
+ }
+ // The loops are faster with less internal brancing; hence two
+ if (shift1 == 0)
+ { // "UTF-16-LE"
+ for (int i = 0; i < count; i += 2)
+ {
+ char c = (char) (rawReadBuffer[i + 1] << 8);
+ c |= 0xff & rawReadBuffer[i];
+ readBuffer[j++] = c;
+ if (c == '\r')
+ {
+ sawCR = true;
+ }
+ }
+ }
+ else
+ { // "UTF-16-BE"
+ for (int i = 0; i < count; i += 2)
+ {
+ char c = (char) (rawReadBuffer[i] << 8);
+ c |= 0xff & rawReadBuffer[i + 1];
+ readBuffer[j++] = c;
+ if (c == '\r')
+ {
+ sawCR = true;
+ }
+ }
+ }
+ readBufferLength = j;
+ }
- /**
- * Convert a buffer of UCS-4-encoded bytes into UTF-16 characters.
- *
- * <p>When readDataChunk () calls this method, the raw bytes are in
- * rawReadBuffer, and the final characters will appear in
- * readBuffer.
- * <p>Java has Unicode chars, and this routine uses surrogate pairs
- * for ISO-10646 values between 0x00010000 and 0x000fffff. An
- * exception is thrown if the ISO-10646 character has no Unicode
- * representation.
- *
- * @param count The number of bytes to convert.
- * @param shift1 The number of bits to shift byte 1.
- * @param shift2 The number of bits to shift byte 2
- * @param shift3 The number of bits to shift byte 2
- * @param shift4 The number of bits to shift byte 2
- * @see #readDataChunk
- * @see #rawReadBuffer
- * @see #readBuffer
- */
- private void copyUcs4ReadBuffer (int count, int shift1, int shift2,
- int shift3, int shift4)
+ /**
+ * Convert a buffer of UCS-4-encoded bytes into UTF-16 characters.
+ *
+ * <p>When readDataChunk () calls this method, the raw bytes are in
+ * rawReadBuffer, and the final characters will appear in
+ * readBuffer.
+ * <p>Java has Unicode chars, and this routine uses surrogate pairs
+ * for ISO-10646 values between 0x00010000 and 0x000fffff. An
+ * exception is thrown if the ISO-10646 character has no Unicode
+ * representation.
+ *
+ * @param count The number of bytes to convert.
+ * @param shift1 The number of bits to shift byte 1.
+ * @param shift2 The number of bits to shift byte 2
+ * @param shift3 The number of bits to shift byte 2
+ * @param shift4 The number of bits to shift byte 2
+ * @see #readDataChunk
+ * @see #rawReadBuffer
+ * @see #readBuffer
+ */
+ private void copyUcs4ReadBuffer(int count, int shift1, int shift2,
+ int shift3, int shift4)
throws SAXException
- {
- int j = readBufferPos;
-
- if (count > 0 && (count % 4) != 0) {
- encodingError (
- "number of bytes in UCS-4 encoding not divisible by 4",
- -1, count);
- }
- for (int i = 0; i < count; i += 4) {
- int value = (((rawReadBuffer [i] & 0xff) << shift1) |
- ((rawReadBuffer [i + 1] & 0xff) << shift2) |
- ((rawReadBuffer [i + 2] & 0xff) << shift3) |
- ((rawReadBuffer [i + 3] & 0xff) << shift4));
- if (value < 0x0000ffff) {
- readBuffer [j++] = (char) value;
- if (value == (int) '\r') {
- sawCR = true;
- }
- } else if (value < 0x0010ffff) {
- value -= 0x010000;
- readBuffer [j++] = (char) (0xd8 | ((value >> 10) & 0x03ff));
- readBuffer [j++] = (char) (0xdc | (value & 0x03ff));
- } else {
- encodingError ("UCS-4 value out of range for Unicode",
- value, i);
- }
- }
- readBufferLength = j;
- }
-
+ {
+ int j = readBufferPos;
+
+ if (count > 0 && (count % 4) != 0)
+ {
+ encodingError("number of bytes in UCS-4 encoding " +
+ "not divisible by 4",
+ -1, count);
+ }
+ for (int i = 0; i < count; i += 4)
+ {
+ int value = (((rawReadBuffer [i] & 0xff) << shift1) |
+ ((rawReadBuffer [i + 1] & 0xff) << shift2) |
+ ((rawReadBuffer [i + 2] & 0xff) << shift3) |
+ ((rawReadBuffer [i + 3] & 0xff) << shift4));
+ if (value < 0x0000ffff)
+ {
+ readBuffer [j++] = (char) value;
+ if (value == (int) '\r')
+ {
+ sawCR = true;
+ }
+ }
+ else if (value < 0x0010ffff)
+ {
+ value -= 0x010000;
+ readBuffer[j++] = (char) (0xd8 | ((value >> 10) & 0x03ff));
+ readBuffer[j++] = (char) (0xdc | (value & 0x03ff));
+ }
+ else
+ {
+ encodingError("UCS-4 value out of range for Unicode",
+ value, i);
+ }
+ }
+ readBufferLength = j;
+ }
- /**
- * Report a character encoding error.
- */
- private void encodingError (String message, int value, int offset)
+ /**
+ * Report a character encoding error.
+ */
+ private void encodingError(String message, int value, int offset)
throws SAXException
- {
- if (value != -1)
- message = message + " (character code: 0x" +
- Integer.toHexString (value) + ')';
- error (message);
- }
+ {
+ if (value != -1)
+ {
+ message = message + " (character code: 0x" +
+ Integer.toHexString(value) + ')';
+ error(message);
+ }
+ }
+
+ //////////////////////////////////////////////////////////////////////
+ // Local Variables.
+ //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Re-initialize the variables for each parse.
+ */
+ private void initializeVariables()
+ {
+ // First line
+ line = 1;
+ column = 0;
+
+ // Set up the buffers for data and names
+ dataBufferPos = 0;
+ dataBuffer = new char[DATA_BUFFER_INITIAL];
+ nameBufferPos = 0;
+ nameBuffer = new char[NAME_BUFFER_INITIAL];
+
+ // Set up the DTD hash tables
+ elementInfo = new HashMap();
+ entityInfo = new HashMap();
+ notationInfo = new HashMap();
+ skippedPE = false;
+
+ // Set up the variables for the current
+ // element context.
+ currentElement = null;
+ currentElementContent = CONTENT_UNDECLARED;
+
+ // Set up the input variables
+ sourceType = INPUT_NONE;
+ inputStack = new LinkedList();
+ entityStack = new LinkedList();
+ externalEntity = null;
+ tagAttributePos = 0;
+ tagAttributes = new String[100];
+ rawReadBuffer = new byte[READ_BUFFER_MAX];
+ readBufferOverflow = -1;
+
+ scratch = new InputSource();
+
+ inLiteral = false;
+ expandPE = false;
+ peIsError = false;
+
+ doReport = false;
+
+ inCDATA = false;
+
+ symbolTable = new Object[SYMBOL_TABLE_LENGTH][];
+ }
+ static class ExternalIdentifiers
+ {
- //////////////////////////////////////////////////////////////////////
- // Local Variables.
- //////////////////////////////////////////////////////////////////////
+ String publicId;
+ String systemId;
+ String baseUri;
- /**
- * Re-initialize the variables for each parse.
- */
- private void initializeVariables ()
+ ExternalIdentifiers()
{
- // First line
- line = 1;
- column = 0;
-
- // Set up the buffers for data and names
- dataBufferPos = 0;
- dataBuffer = new char [DATA_BUFFER_INITIAL];
- nameBufferPos = 0;
- nameBuffer = new char [NAME_BUFFER_INITIAL];
-
- // Set up the DTD hash tables
- elementInfo = new Hashtable ();
- entityInfo = new Hashtable ();
- notationInfo = new Hashtable ();
- skippedPE = false;
-
- // Set up the variables for the current
- // element context.
- currentElement = null;
- currentElementContent = CONTENT_UNDECLARED;
-
- // Set up the input variables
- sourceType = INPUT_NONE;
- inputStack = new Stack ();
- entityStack = new Stack ();
- externalEntity = null;
- tagAttributePos = 0;
- tagAttributes = new String [100];
- rawReadBuffer = new byte [READ_BUFFER_MAX];
- readBufferOverflow = -1;
-
- scratch = new InputSource ();
-
- inLiteral = false;
- expandPE = false;
- peIsError = false;
-
- doReport = false;
-
- inCDATA = false;
-
- symbolTable = new Object [SYMBOL_TABLE_LENGTH][];
}
+ ExternalIdentifiers(String publicId, String systemId, String baseUri)
+ {
+ this.publicId = publicId;
+ this.systemId = systemId;
+ this.baseUri = baseUri;
+ }
+
+ }
- //
- // The current XML handler interface.
- //
- private SAXDriver handler;
-
- //
- // I/O information.
- //
- private Reader reader; // current reader
- private InputStream is; // current input stream
- private int line; // current line number
- private int column; // current column number
- private int sourceType; // type of input source
- private Stack inputStack; // stack of input soruces
- private URLConnection externalEntity; // current external entity
- private int encoding; // current character encoding
- private int currentByteCount; // bytes read from current source
- private InputSource scratch; // temporary
-
- //
- // Buffers for decoded but unparsed character input.
- //
- private char readBuffer [];
- private int readBufferPos;
- private int readBufferLength;
- private int readBufferOverflow; // overflow from last data chunk.
-
-
- //
- // Buffer for undecoded raw byte input.
- //
- private final static int READ_BUFFER_MAX = 16384;
- private byte rawReadBuffer [];
-
-
- //
- // Buffer for attribute values, char refs, DTD stuff.
- //
- private static int DATA_BUFFER_INITIAL = 4096;
- private char dataBuffer [];
- private int dataBufferPos;
-
- //
- // Buffer for parsed names.
- //
- private static int NAME_BUFFER_INITIAL = 1024;
- private char nameBuffer [];
- private int nameBufferPos;
-
- //
- // Save any standalone flag
- //
- private boolean docIsStandalone;
-
- //
- // Hashtables for DTD information on elements, entities, and notations.
- // Populated until we start ignoring decls (because of skipping a PE)
- //
- private Hashtable elementInfo;
- private Hashtable entityInfo;
- private Hashtable notationInfo;
- private boolean skippedPE;
-
-
- //
- // Element type currently in force.
- //
- private String currentElement;
- private int currentElementContent;
-
- //
- // Stack of entity names, to detect recursion.
- //
- private Stack entityStack;
-
- //
- // PE expansion is enabled in most chunks of the DTD, not all.
- // When it's enabled, literals are treated differently.
- //
- private boolean inLiteral;
- private boolean expandPE;
- private boolean peIsError;
-
- //
- // can't report entity expansion inside two constructs:
- // - attribute expansions (internal entities only)
- // - markup declarations (parameter entities only)
- //
- private boolean doReport;
-
- //
- // Symbol table, for caching interned names.
- //
- // These show up wherever XML names or nmtokens are used: naming elements,
- // attributes, PIs, notations, entities, and enumerated attribute values.
- //
- // NOTE: This hashtable doesn't grow. The default size is intended to be
- // rather large for most documents. Example: one snapshot of the DocBook
- // XML 4.1 DTD used only about 350 such names. As a rule, only pathological
- // documents (ones that don't reuse names) should ever see much collision.
- //
- // Be sure that SYMBOL_TABLE_LENGTH always stays prime, for best hashing.
- // "2039" keeps the hash table size at about two memory pages on typical
- // 32 bit hardware.
- //
- private final static int SYMBOL_TABLE_LENGTH = 2039;
+ static class EntityInfo
+ {
- private Object symbolTable [][];
+ int type;
+ ExternalIdentifiers ids;
+ String value;
+ String notationName;
+
+ }
- //
- // Hash table of attributes found in current start tag.
- //
- private String tagAttributes [];
- private int tagAttributePos;
+ static class AttributeDecl
+ {
+
+ String type;
+ String value;
+ int valueType;
+ String enumeration;
+ String defaultValue;
- //
- // Utility flag: have we noticed a CR while reading the last
- // data chunk? If so, we will have to go back and normalise
- // CR or CR/LF line ends.
- //
- private boolean sawCR;
+ }
- //
- // Utility flag: are we in CDATA? If so, whitespace isn't ignorable.
- //
- private boolean inCDATA;
+ static class ElementDecl
+ {
- //
- // Xml version.
- //
- private static final int XML_10 = 0;
- private static final int XML_11 = 1;
- private int xmlVersion = XML_10;
+ int contentType;
+ String contentModel;
+ HashMap attributes;
+
+ }
+
+ static class Input
+ {
+
+ int sourceType;
+ URLConnection externalEntity;
+ char[] readBuffer;
+ int readBufferPos;
+ int readBufferLength;
+ int line;
+ int encoding;
+ int readBufferOverflow;
+ InputStream is;
+ int currentByteCount;
+ int column;
+ Reader reader;
+
+ }
+
}
+
diff --git a/libjava/gnu/xml/aelfred2/XmlReader.java b/libjava/gnu/xml/aelfred2/XmlReader.java
index 96c9c723fb6..dacf8b103d1 100644
--- a/libjava/gnu/xml/aelfred2/XmlReader.java
+++ b/libjava/gnu/xml/aelfred2/XmlReader.java
@@ -70,246 +70,305 @@ import gnu.xml.pipeline.ValidationConsumer;
*
* @author David Brownell
*/
-public final class XmlReader implements XMLReader
+public final class XmlReader
+ implements XMLReader
{
- private SAXDriver aelfred2 = new SAXDriver ();
- private EventFilter filter = new EventFilter ();
- private boolean isValidating;
- private boolean active;
-
- /** Constructs a SAX Parser. */
- public XmlReader ()
- { }
-
- /**
- * Constructs a SAX Parser, optionally treating validity errors
- * as if they were fatal errors.
- */
- public XmlReader (boolean invalidIsFatal)
- {
- if (invalidIsFatal)
- setErrorHandler (new DefaultHandler2 () {
- public void error (SAXParseException e)
- throws SAXException
- { throw e; }
- });
- }
-
- /**
- * <b>SAX2</b>: Returns the object used to report the logical
- * content of an XML document.
- */
- public ContentHandler getContentHandler ()
- { return filter.getContentHandler (); }
-
- /**
- * <b>SAX2</b>: Assigns the object used to report the logical
- * content of an XML document.
- * @exception IllegalStateException if called mid-parse
- */
- public void setContentHandler (ContentHandler handler)
+ static class FatalErrorHandler
+ extends DefaultHandler2
+ {
+
+ public void error(SAXParseException e)
+ throws SAXException
{
- if (active)
- throw new IllegalStateException ("already parsing");
- filter.setContentHandler (handler);
+ throw e;
}
-
- /**
- * <b>SAX2</b>: Returns the object used to process declarations related
- * to notations and unparsed entities.
- */
- public DTDHandler getDTDHandler ()
- { return filter.getDTDHandler (); }
-
- /**
- * <b>SAX1</b> Assigns DTD handler
- * @exception IllegalStateException if called mid-parse
- */
- public void setDTDHandler (DTDHandler handler)
- {
- if (active)
- throw new IllegalStateException ("already parsing");
- filter.setDTDHandler (handler);
- }
-
- /**
- * <b>SAX2</b>: Returns the object used when resolving external
- * entities during parsing (both general and parameter entities).
- */
- public EntityResolver getEntityResolver ()
- { return aelfred2.getEntityResolver (); }
-
- /** <b>SAX1</b> Assigns parser's entity resolver */
- public void setEntityResolver (EntityResolver handler)
- { aelfred2.setEntityResolver (handler); }
-
- /**
- * <b>SAX2</b>: Returns the object used to receive callbacks for XML
- * errors of all levels (fatal, nonfatal, warning); this is never null;
- */
- public ErrorHandler getErrorHandler ()
- { return aelfred2.getErrorHandler (); }
-
- /**
- * <b>SAX1</b> Assigns error handler
- * @exception IllegalStateException if called mid-parse
- */
- public void setErrorHandler (ErrorHandler handler)
- {
- if (active)
- throw new IllegalStateException ("already parsing");
- aelfred2.setErrorHandler (handler);
- }
-
- /**
- * <b>SAX2</b>: Assigns the specified property.
- * @exception IllegalStateException if called mid-parse
- */
- public void setProperty (String propertyId, Object value)
+
+ }
+
+ private SAXDriver aelfred2 = new SAXDriver();
+ private EventFilter filter = new EventFilter();
+ private boolean isValidating;
+ private boolean active;
+
+ /**
+ * Constructs a SAX Parser.
+ */
+ public XmlReader()
+ {
+ }
+
+ /**
+ * Constructs a SAX Parser, optionally treating validity errors
+ * as if they were fatal errors.
+ */
+ public XmlReader(boolean invalidIsFatal)
+ {
+ if (invalidIsFatal)
+ {
+ setErrorHandler(new FatalErrorHandler());
+ }
+ }
+
+ /**
+ * <b>SAX2</b>: Returns the object used to report the logical
+ * content of an XML document.
+ */
+ public ContentHandler getContentHandler()
+ {
+ return filter.getContentHandler();
+ }
+
+ /**
+ * <b>SAX2</b>: Assigns the object used to report the logical
+ * content of an XML document.
+ * @exception IllegalStateException if called mid-parse
+ */
+ public void setContentHandler(ContentHandler handler)
+ {
+ if (active)
+ {
+ throw new IllegalStateException("already parsing");
+ }
+ filter.setContentHandler(handler);
+ }
+
+ /**
+ * <b>SAX2</b>: Returns the object used to process declarations related
+ * to notations and unparsed entities.
+ */
+ public DTDHandler getDTDHandler()
+ {
+ return filter.getDTDHandler();
+ }
+
+ /**
+ * <b>SAX1</b> Assigns DTD handler
+ * @exception IllegalStateException if called mid-parse
+ */
+ public void setDTDHandler(DTDHandler handler)
+ {
+ if (active)
+ {
+ throw new IllegalStateException("already parsing");
+ }
+ filter.setDTDHandler(handler);
+ }
+
+ /**
+ * <b>SAX2</b>: Returns the object used when resolving external
+ * entities during parsing (both general and parameter entities).
+ */
+ public EntityResolver getEntityResolver()
+ {
+ return aelfred2.getEntityResolver();
+ }
+
+ /**
+ * <b>SAX1</b> Assigns parser's entity resolver
+ */
+ public void setEntityResolver(EntityResolver handler)
+ {
+ aelfred2.setEntityResolver(handler);
+ }
+
+ /**
+ * <b>SAX2</b>: Returns the object used to receive callbacks for XML
+ * errors of all levels (fatal, nonfatal, warning); this is never null;
+ */
+ public ErrorHandler getErrorHandler()
+ {
+ return aelfred2.getErrorHandler();
+ }
+
+ /**
+ * <b>SAX1</b> Assigns error handler
+ * @exception IllegalStateException if called mid-parse
+ */
+ public void setErrorHandler(ErrorHandler handler)
+ {
+ if (active)
+ {
+ throw new IllegalStateException("already parsing");
+ }
+ aelfred2.setErrorHandler(handler);
+ }
+
+ /**
+ * <b>SAX2</b>: Assigns the specified property.
+ * @exception IllegalStateException if called mid-parse
+ */
+ public void setProperty(String propertyId, Object value)
throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (active)
- throw new IllegalStateException ("already parsing");
- if (getProperty (propertyId) != value)
- filter.setProperty (propertyId, value);
- }
-
- /**
- * <b>SAX2</b>: Returns the specified property.
- */
- public Object getProperty (String propertyId)
+ {
+ if (active)
+ {
+ throw new IllegalStateException("already parsing");
+ }
+ if (getProperty(propertyId) != value)
+ {
+ filter.setProperty(propertyId, value);
+ }
+ }
+
+ /**
+ * <b>SAX2</b>: Returns the specified property.
+ */
+ public Object getProperty(String propertyId)
throws SAXNotRecognizedException
- {
- if ((SAXDriver.PROPERTY + "declaration-handler")
- .equals (propertyId)
- || (SAXDriver.PROPERTY + "lexical-handler")
- .equals (propertyId))
- return filter.getProperty (propertyId);
- throw new SAXNotRecognizedException (propertyId);
- }
-
- private void forceValidating ()
+ {
+ if ((SAXDriver.PROPERTY + "declaration-handler").equals(propertyId)
+ || (SAXDriver.PROPERTY + "lexical-handler").equals(propertyId))
+ {
+ return filter.getProperty(propertyId);
+ }
+ throw new SAXNotRecognizedException(propertyId);
+ }
+
+ private void forceValidating()
throws SAXNotRecognizedException, SAXNotSupportedException
- {
- aelfred2.setFeature (
- SAXDriver.FEATURE + "namespace-prefixes",
- true);
- aelfred2.setFeature (
- SAXDriver.FEATURE + "external-general-entities",
- true);
- aelfred2.setFeature (
- SAXDriver.FEATURE + "external-parameter-entities",
- true);
- }
-
- /**
- * <b>SAX2</b>: Sets the state of features supported in this parser.
- * Note that this parser requires reporting of namespace prefixes when
- * validating.
- */
- public void setFeature (String featureId, boolean state)
+ {
+ aelfred2.setFeature(SAXDriver.FEATURE + "namespace-prefixes",
+ true);
+ aelfred2.setFeature(SAXDriver.FEATURE + "external-general-entities",
+ true);
+ aelfred2.setFeature(SAXDriver.FEATURE + "external-parameter-entities",
+ true);
+ }
+
+ /**
+ * <b>SAX2</b>: Sets the state of features supported in this parser.
+ * Note that this parser requires reporting of namespace prefixes when
+ * validating.
+ */
+ public void setFeature(String featureId, boolean state)
throws SAXNotRecognizedException, SAXNotSupportedException
- {
- boolean value = getFeature (featureId);
-
- if (state == value)
- return;
-
- if ((SAXDriver.FEATURE + "validation").equals (featureId)) {
- if (active)
- throw new SAXNotSupportedException ("already parsing");
- if (state)
- forceValidating ();
- isValidating = state;
- } else
- aelfred2.setFeature (featureId, state);
- }
-
- /**
- * <b>SAX2</b>: Tells whether this parser supports the specified feature.
- * At this time, this directly parallels the underlying SAXDriver,
- * except that validation is optionally supported.
- *
- * @see SAXDriver
- */
- public boolean getFeature (String featureId)
+ {
+ boolean value = getFeature(featureId);
+
+ if (state == value)
+ {
+ return;
+ }
+
+ if ((SAXDriver.FEATURE + "validation").equals(featureId))
+ {
+ if (active)
+ {
+ throw new SAXNotSupportedException("already parsing");
+ }
+ if (state)
+ {
+ forceValidating();
+ }
+ isValidating = state;
+ }
+ else
+ {
+ aelfred2.setFeature(featureId, state);
+ }
+ }
+
+ /**
+ * <b>SAX2</b>: Tells whether this parser supports the specified feature.
+ * At this time, this directly parallels the underlying SAXDriver,
+ * except that validation is optionally supported.
+ *
+ * @see SAXDriver
+ */
+ public boolean getFeature(String featureId)
throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if ((SAXDriver.FEATURE + "validation").equals (featureId))
- return isValidating;
-
- return aelfred2.getFeature (featureId);
- }
-
- /**
- * <b>SAX1</b>: Sets the locale used for diagnostics; currently,
- * only locales using the English language are supported.
- * @param locale The locale for which diagnostics will be generated
- */
- public void setLocale (Locale locale)
+ {
+ if ((SAXDriver.FEATURE + "validation").equals(featureId))
+ {
+ return isValidating;
+ }
+
+ return aelfred2.getFeature(featureId);
+ }
+
+ /**
+ * <b>SAX1</b>: Sets the locale used for diagnostics; currently,
+ * only locales using the English language are supported.
+ * @param locale The locale for which diagnostics will be generated
+ */
+ public void setLocale(Locale locale)
throws SAXException
- { aelfred2.setLocale (locale); }
+ {
+ aelfred2.setLocale(locale);
+ }
- /**
- * <b>SAX1</b>: Preferred API to parse an XML document, using a
- * system identifier (URI).
+ /**
+ * <b>SAX1</b>: Preferred API to parse an XML document, using a
+ * system identifier (URI).
*/
- public void parse (String systemId)
+ public void parse(String systemId)
throws SAXException, IOException
- {
- parse (new InputSource (systemId));
- }
-
- /**
- * <b>SAX1</b>: Underlying API to parse an XML document, used
- * directly when no URI is available. When this is invoked,
- * and the parser is set to validate, some features will be
- * automatically reset to appropriate values: for reporting
- * namespace prefixes, and incorporating external entities.
- *
- * @param source The XML input source.
- *
- * @exception IllegalStateException if called mid-parse
- * @exception SAXException The handlers may throw any SAXException,
- * and the parser normally throws SAXParseException objects.
- * @exception IOException IOExceptions are normally through through
- * the parser if there are problems reading the source document.
- */
- public void parse (InputSource source)
+ {
+ parse(new InputSource(systemId));
+ }
+
+ /**
+ * <b>SAX1</b>: Underlying API to parse an XML document, used
+ * directly when no URI is available. When this is invoked,
+ * and the parser is set to validate, some features will be
+ * automatically reset to appropriate values: for reporting
+ * namespace prefixes, and incorporating external entities.
+ *
+ * @param source The XML input source.
+ *
+ * @exception IllegalStateException if called mid-parse
+ * @exception SAXException The handlers may throw any SAXException,
+ * and the parser normally throws SAXParseException objects.
+ * @exception IOException IOExceptions are normally through through
+ * the parser if there are problems reading the source document.
+ */
+ public void parse(InputSource source)
throws SAXException, IOException
- {
- EventFilter next;
- boolean nsdecls;
-
- synchronized (aelfred2) {
- if (active)
- throw new IllegalStateException ("already parsing");
- active = true;
- }
-
- // set up the output pipeline
- if (isValidating) {
- forceValidating ();
- next = new ValidationConsumer (filter);
- } else
- next = filter;
-
- // connect pipeline and error handler
- // don't let _this_ call to bind() affect xmlns* attributes
- nsdecls = aelfred2.getFeature (
- SAXDriver.FEATURE + "namespace-prefixes");
- EventFilter.bind (aelfred2, next);
- if (!nsdecls)
- aelfred2.setFeature (
- SAXDriver.FEATURE + "namespace-prefixes",
- false);
-
- // parse, clean up
- try {
- aelfred2.parse (source);
- } finally {
- active = false;
- }
- }
+ {
+ EventFilter next;
+ boolean nsdecls;
+
+ synchronized (aelfred2)
+ {
+ if (active)
+ {
+ throw new IllegalStateException("already parsing");
+ }
+ active = true;
+ }
+
+ // set up the output pipeline
+ if (isValidating)
+ {
+ forceValidating();
+ next = new ValidationConsumer(filter);
+ }
+ else
+ {
+ next = filter;
+ }
+
+ // connect pipeline and error handler
+ // don't let _this_ call to bind() affect xmlns* attributes
+ nsdecls = aelfred2.getFeature(SAXDriver.FEATURE + "namespace-prefixes");
+ EventFilter.bind(aelfred2, next);
+ if (!nsdecls)
+ {
+ aelfred2.setFeature(SAXDriver.FEATURE + "namespace-prefixes",
+ false);
+ }
+
+ // parse, clean up
+ try
+ {
+ aelfred2.parse(source);
+ }
+ finally
+ {
+ active = false;
+ }
+ }
+
}
+
diff --git a/libjava/gnu/xml/dom/Consumer.java b/libjava/gnu/xml/dom/Consumer.java
index 1aad5be9273..426b1e5da62 100644
--- a/libjava/gnu/xml/dom/Consumer.java
+++ b/libjava/gnu/xml/dom/Consumer.java
@@ -38,16 +38,11 @@ exception statement from your version. */
package gnu.xml.dom;
-import java.io.IOException;
-
-import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
-import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
import org.xml.sax.Attributes;
-import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.ext.Attributes2;
diff --git a/libjava/gnu/xml/dom/DomAttr.java b/libjava/gnu/xml/dom/DomAttr.java
index 2890430e315..555902e3ea3 100644
--- a/libjava/gnu/xml/dom/DomAttr.java
+++ b/libjava/gnu/xml/dom/DomAttr.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package gnu.xml.dom;
import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.TypeInfo;
@@ -194,7 +195,7 @@ public class DomAttr
{
if (readonly)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
if (value == null)
{
@@ -284,11 +285,11 @@ public class DomAttr
{
if (parent != null)
{
- throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR);
}
if (!(e instanceof DomElement))
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR);
}
parent = (DomElement) e;
depth = parent.depth + 1;
diff --git a/libjava/gnu/xml/dom/DomCDATA.java b/libjava/gnu/xml/dom/DomCDATASection.java
index f6f471c68f2..4b4dcb571e5 100644
--- a/libjava/gnu/xml/dom/DomCDATA.java
+++ b/libjava/gnu/xml/dom/DomCDATASection.java
@@ -1,4 +1,4 @@
-/* DomCDATA.java --
+/* DomCDATASection.java --
Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,7 +54,7 @@ import org.w3c.dom.CDATASection;
* @author David Brownell
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
-public class DomCDATA
+public class DomCDATASection
extends DomText
implements CDATASection
{
@@ -68,12 +68,12 @@ public class DomCDATA
* similarly used in a "Sub-DOM" style layer.
*
*/
- protected DomCDATA(DomDocument owner, String value)
+ protected DomCDATASection(DomDocument owner, String value)
{
super(CDATA_SECTION_NODE, owner, value);
}
- protected DomCDATA(DomDocument owner, char buf [], int off, int len)
+ protected DomCDATASection(DomDocument owner, char buf [], int off, int len)
{
super(CDATA_SECTION_NODE, owner, buf, off, len);
}
@@ -84,7 +84,7 @@ public class DomCDATA
*/
final public String getNodeName()
{
- return "#cdata-section";
+ return "#cdata-section";
}
}
diff --git a/libjava/gnu/xml/dom/DomCharacterData.java b/libjava/gnu/xml/dom/DomCharacterData.java
index 48ccb82d638..e5cc231891d 100644
--- a/libjava/gnu/xml/dom/DomCharacterData.java
+++ b/libjava/gnu/xml/dom/DomCharacterData.java
@@ -38,8 +38,7 @@ exception statement from your version. */
package gnu.xml.dom;
import org.w3c.dom.CharacterData;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
+import org.w3c.dom.DOMException;
import org.w3c.dom.events.MutationEvent;
@@ -82,7 +81,7 @@ public abstract class DomCharacterData
{
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
String value = text + arg;
mutating(value);
@@ -98,12 +97,12 @@ public abstract class DomCharacterData
{
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
char[] raw = text.toCharArray();
if (offset < 0 || count < 0 || offset > raw.length)
{
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
if ((offset + count) > raw.length)
{
@@ -125,7 +124,7 @@ public abstract class DomCharacterData
}
catch (IndexOutOfBoundsException x)
{
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
}
@@ -164,7 +163,7 @@ public abstract class DomCharacterData
{
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
char[] raw = text.toCharArray();
char[] tmp = arg.toCharArray ();
@@ -182,7 +181,7 @@ public abstract class DomCharacterData
}
catch (IndexOutOfBoundsException x)
{
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
}
@@ -195,14 +194,14 @@ public abstract class DomCharacterData
{
if (readonly)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
char[] raw = text.toCharArray();
// deleteData
if (offset < 0 || count < 0 || offset > raw.length)
{
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
if ((offset + count) > raw.length)
{
@@ -228,7 +227,7 @@ public abstract class DomCharacterData
}
catch (IndexOutOfBoundsException x)
{
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
}
@@ -241,7 +240,7 @@ public abstract class DomCharacterData
{
if (isReadonly())
{
- throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
if (value == null)
{
@@ -276,7 +275,7 @@ public abstract class DomCharacterData
{
return text.substring(offset);
}
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
}
diff --git a/libjava/gnu/xml/dom/DomEx.java b/libjava/gnu/xml/dom/DomDOMException.java
index aacac968932..a56814cffed 100644
--- a/libjava/gnu/xml/dom/DomEx.java
+++ b/libjava/gnu/xml/dom/DomDOMException.java
@@ -1,4 +1,4 @@
-/* DomEx.java --
+/* DomDOMException.java --
Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import org.w3c.dom.Node;
*
* @author David Brownell
*/
-public class DomEx
+public class DomDOMException
extends DOMException
{
@@ -67,7 +67,7 @@ public class DomEx
* Constructs an exception, with the diagnostic message
* corresponding to the specified code.
*/
- public DomEx(short code)
+ public DomDOMException(short code)
{
super(code, diagnostic(code));
}
@@ -77,7 +77,7 @@ public class DomEx
* corresponding to the specified code and additional
* information as provided.
*/
- public DomEx(short code, String data, Node node, int value)
+ public DomDOMException(short code, String data, Node node, int value)
{
super(code, diagnostic(code));
this.data = data;
diff --git a/libjava/gnu/xml/dom/DomDoctype.java b/libjava/gnu/xml/dom/DomDoctype.java
index 35fb613e55a..8c760a5317f 100644
--- a/libjava/gnu/xml/dom/DomDoctype.java
+++ b/libjava/gnu/xml/dom/DomDoctype.java
@@ -39,6 +39,7 @@ package gnu.xml.dom;
import java.util.HashMap;
import org.w3c.dom.DocumentType;
+import org.w3c.dom.DOMException;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Entity;
import org.w3c.dom.NamedNodeMap;
@@ -194,7 +195,7 @@ public class DomDoctype
}
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
getEntities();
@@ -250,7 +251,7 @@ public class DomDoctype
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
getNotations();
diff --git a/libjava/gnu/xml/dom/DomDocument.java b/libjava/gnu/xml/dom/DomDocument.java
index 10693ae1d58..d8ccc9d821c 100644
--- a/libjava/gnu/xml/dom/DomDocument.java
+++ b/libjava/gnu/xml/dom/DomDocument.java
@@ -54,7 +54,6 @@ import org.w3c.dom.Entity;
import org.w3c.dom.EntityReference;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.w3c.dom.Notation;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
@@ -292,16 +291,16 @@ public class DomDocument
if (newChild.getNodeType() == ELEMENT_NODE
&& getDocumentElement() != null)
{
- throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR,
- "document element already present: " +
- getDocumentElement(), newChild, 0);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR,
+ "document element already present: " +
+ getDocumentElement(), newChild, 0);
}
if (newChild.getNodeType() == DOCUMENT_TYPE_NODE
&& getDoctype() != null)
{
- throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR,
- "document type already present: " +
- getDoctype(), newChild, 0);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR,
+ "document type already present: " +
+ getDoctype(), newChild, 0);
}
}
@@ -376,12 +375,12 @@ public class DomDocument
{
if (name == null)
{
- throw new DomEx (DomEx.NAMESPACE_ERR, name, null, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR, name, null, 0);
}
int len = name.length();
if (len == 0)
{
- throw new DomEx (DomEx.NAMESPACE_ERR, name, null, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR, name, null, 0);
}
// dog: rewritten to use the rules for XML 1.0 and 1.1
@@ -407,7 +406,8 @@ public class DomDocument
(c < 0xfdf0 || c > 0xfffd) &&
(c < 0x10000 || c > 0xeffff))
{
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR, name, null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR,
+ name, null, c);
}
}
else
@@ -425,14 +425,16 @@ public class DomDocument
(c >= 0x20dd && c <= 0x20e0))
{
// Compatibility area and Unicode 2.0 exclusions
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR, name, null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR,
+ name, null, c);
}
break;
default:
if (c != ':' && c != '_' && (c < 0x02bb || c > 0x02c1) &&
c != 0x0559 && c != 0x06e5 && c != 0x06e6)
{
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR, name, null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR,
+ name, null, c);
}
}
}
@@ -464,7 +466,8 @@ public class DomDocument
(c < 0x0300 || c > 0x036f) &&
(c < 0x203f || c > 0x2040))
{
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR, name, null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR, name,
+ null, c);
}
}
else
@@ -487,7 +490,8 @@ public class DomDocument
(c >= 0x20dd && c <= 0x20e0))
{
// Compatibility area and Unicode 2.0 exclusions
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR, name, null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR,
+ name, null, c);
}
break;
default:
@@ -495,7 +499,8 @@ public class DomDocument
c != 0x0387 && (c < 0x02bb || c > 0x02c1) &&
c != 0x0559 && c != 0x06e5 && c != 0x06e6 && c != 0x00b7)
{
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR, name, null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR,
+ name, null, c);
}
}
}
@@ -517,7 +522,8 @@ public class DomDocument
if (index == 0 || index == (len - 1) ||
name.lastIndexOf(':') != index)
{
- throw new DomEx(DomEx.NAMESPACE_ERR, name, null, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ name, null, 0);
}
}
}
@@ -552,8 +558,8 @@ public class DomDocument
continue;
}
}
- throw new DomEx(DomEx.INVALID_CHARACTER_ERR,
- new String(buf, off, len), null, c);
+ throw new DomDOMException(DOMException.INVALID_CHARACTER_ERR,
+ new String(buf, off, len), null, c);
}
}
@@ -602,22 +608,23 @@ public class DomDocument
if (namespaceURI != null
&& !XMLConstants.XML_NS_URI.equals(namespaceURI))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "xml namespace is always " +
- XMLConstants.XML_NS_URI, this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xml namespace is always " +
+ XMLConstants.XML_NS_URI, this, 0);
}
namespaceURI = XMLConstants.XML_NS_URI;
}
else if (XMLConstants.XMLNS_ATTRIBUTE.equals(name) ||
name.startsWith("xmlns:"))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "xmlns is reserved", this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xmlns is reserved", this, 0);
}
else if (namespaceURI == null && name.indexOf(':') != -1)
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "prefixed name '" + name + "' needs a URI", this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "prefixed name '" + name +
+ "' needs a URI", this, 0);
}
Element element = new DomElement(this, namespaceURI, name);
@@ -660,7 +667,7 @@ public class DomDocument
*/
public DocumentFragment createDocumentFragment()
{
- return new DomFragment(this);
+ return new DomDocumentFragment(this);
}
/**
@@ -711,7 +718,7 @@ public class DomDocument
{
checkChar(value, "1.1".equals(version));
}
- return new DomCDATA(this, value);
+ return new DomCDATASection(this, value);
}
/**
@@ -723,7 +730,7 @@ public class DomDocument
{
checkChar(buf, off, len, "1.1".equals(version));
}
- return new DomCDATA(this, buf, off, len);
+ return new DomCDATASection(this, buf, off, len);
}
/**
@@ -739,12 +746,13 @@ public class DomDocument
checkName(target, xml11);
if ("xml".equalsIgnoreCase(target))
{
- throw new DomEx(DomEx.SYNTAX_ERR,
- "illegal PI target name", this, 0);
+ throw new DomDOMException(DOMException.SYNTAX_ERR,
+ "illegal PI target name",
+ this, 0);
}
checkChar(data, xml11);
}
- return new DomPI(this, target, data);
+ return new DomProcessingInstruction(this, target, data);
}
/**
@@ -796,9 +804,10 @@ public class DomDocument
}
else if (!XMLConstants.XML_NS_URI.equals(namespaceURI))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "xml namespace is always " +
- XMLConstants.XML_NS_URI, this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xml namespace is always " +
+ XMLConstants.XML_NS_URI,
+ this, 0);
}
}
else if (XMLConstants.XMLNS_ATTRIBUTE.equals(name) ||
@@ -810,14 +819,15 @@ public class DomDocument
}
else if (!XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "xmlns namespace must be " +
- XMLConstants.XMLNS_ATTRIBUTE_NS_URI, this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xmlns namespace must be " +
+ XMLConstants.XMLNS_ATTRIBUTE_NS_URI,
+ this, 0);
}
}
else if (namespaceURI == null && name.indexOf(':') != -1)
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
"prefixed name needs a URI: " + name, this, 0);
}
return new DomAttr(this, namespaceURI, name);
@@ -913,7 +923,7 @@ public class DomDocument
dst = createEntityReference(src.getNodeName());
break;
case DOCUMENT_FRAGMENT_NODE:
- dst = new DomFragment(this);
+ dst = new DomDocumentFragment(this);
if (deep)
{
for (Node ctx = src.getFirstChild(); ctx != null;
@@ -988,7 +998,7 @@ public class DomDocument
// FALLTHROUGH
// can't import unrecognized or nonstandard nodes
default:
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR, null, src, 0);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, null, src, 0);
}
// FIXME cleanup a bit -- for deep copies, copy those
@@ -1083,7 +1093,7 @@ public class DomDocument
}
else
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
}
@@ -1149,10 +1159,10 @@ public class DomDocument
{
case DOCUMENT_NODE:
case DOCUMENT_TYPE_NODE:
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
case ENTITY_NODE:
case NOTATION_NODE:
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
if (source instanceof DomNode)
{
@@ -1284,11 +1294,12 @@ public class DomDocument
DomNsNode src = (DomNsNode) n;
if (src == null)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR);
}
if (src.owner != this)
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR, null, src, 0);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR,
+ null, src, 0);
}
boolean xml11 = "1.1".equals(version);
checkName(qualifiedName, xml11);
@@ -1305,7 +1316,7 @@ public class DomDocument
if (XMLConstants.XML_NS_PREFIX.equals(prefix) &&
!XMLConstants.XML_NS_URI.equals(namespaceURI))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
"xml namespace must be " +
XMLConstants.XML_NS_URI, src, 0);
}
@@ -1314,14 +1325,14 @@ public class DomDocument
XMLConstants.XMLNS_ATTRIBUTE.equals(qualifiedName)) &&
!XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
"xmlns namespace must be " +
XMLConstants.XMLNS_ATTRIBUTE_NS_URI, src, 0);
}
if (XMLConstants.XML_NS_URI.equals(namespaceURI) &&
!XMLConstants.XML_NS_PREFIX.equals(prefix))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
"xml namespace must be " +
XMLConstants.XML_NS_URI, src, 0);
}
@@ -1330,7 +1341,7 @@ public class DomDocument
!(XMLConstants.XMLNS_ATTRIBUTE.equals(prefix) ||
XMLConstants.XMLNS_ATTRIBUTE.equals(qualifiedName)))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
"xmlns namespace must be " +
XMLConstants.XMLNS_ATTRIBUTE_NS_URI, src, 0);
}
@@ -1343,7 +1354,7 @@ public class DomDocument
// DOMElementNameChanged or DOMAttributeNameChanged
return src;
}
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR, null, n, 0);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, null, n, 0);
}
// -- XPathEvaluator --
diff --git a/libjava/gnu/xml/dom/DomDocumentBuilder.java b/libjava/gnu/xml/dom/DomDocumentBuilder.java
index 16ea2ae5dba..d321653ed73 100644
--- a/libjava/gnu/xml/dom/DomDocumentBuilder.java
+++ b/libjava/gnu/xml/dom/DomDocumentBuilder.java
@@ -40,7 +40,6 @@ package gnu.xml.dom;
import java.io.InputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.DOMImplementation;
diff --git a/libjava/gnu/xml/dom/DomDocumentConfiguration.java b/libjava/gnu/xml/dom/DomDocumentConfiguration.java
index eebee09bba6..38d6e6d7bb3 100644
--- a/libjava/gnu/xml/dom/DomDocumentConfiguration.java
+++ b/libjava/gnu/xml/dom/DomDocumentConfiguration.java
@@ -99,8 +99,8 @@ class DomDocumentConfiguration
}
catch (ClassCastException e)
{
- throw new DomEx(DomEx.TYPE_MISMATCH_ERR,
- value.getClass().getName(), null, 0);
+ throw new DomDOMException(DOMException.TYPE_MISMATCH_ERR,
+ value.getClass().getName(), null, 0);
}
}
else if ("namespace-declarations".equals(name))
@@ -140,7 +140,8 @@ class DomDocumentConfiguration
}
else
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR, name, null, 0);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR,
+ name, null, 0);
}
}
@@ -197,7 +198,7 @@ class DomDocumentConfiguration
namespaceDeclarations == true &&
comments == true) ? Boolean.TRUE : Boolean.FALSE;
}
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR, name, null, 0);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR, name, null, 0);
}
public boolean canSetParameter(String name, Object value)
diff --git a/libjava/gnu/xml/dom/DomFragment.java b/libjava/gnu/xml/dom/DomDocumentFragment.java
index 44763a956c0..f54b2a7ebce 100644
--- a/libjava/gnu/xml/dom/DomFragment.java
+++ b/libjava/gnu/xml/dom/DomDocumentFragment.java
@@ -1,4 +1,4 @@
-/* DomFragment.java --
+/* DomDocumentFragment.java --
Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import org.w3c.dom.DocumentFragment;
* @author David Brownell
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
-public class DomFragment
+public class DomDocumentFragment
extends DomNode
implements DocumentFragment
{
@@ -58,7 +58,7 @@ public class DomFragment
* its createDocumentFragment functionality, or through a subclass which
* is similarly used in a "Sub-DOM" style layer.
*/
- protected DomFragment(DomDocument owner)
+ protected DomDocumentFragment(DomDocument owner)
{
super(DOCUMENT_FRAGMENT_NODE, owner);
}
diff --git a/libjava/gnu/xml/dom/DomElement.java b/libjava/gnu/xml/dom/DomElement.java
index fb04638af12..535608343f9 100644
--- a/libjava/gnu/xml/dom/DomElement.java
+++ b/libjava/gnu/xml/dom/DomElement.java
@@ -42,6 +42,7 @@ import java.util.Set;
import javax.xml.XMLConstants;
import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -262,7 +263,7 @@ public class DomElement
if (("xmlns".equals (aname) || aname.startsWith ("xmlns:"))
&& !XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals (uri))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
"setting xmlns attribute to illegal value", this, 0);
}
@@ -318,9 +319,9 @@ public class DomElement
{
attributes.removeNamedItem(name);
}
- catch (DomEx e)
+ catch (DomDOMException e)
{
- if (e.code != DomEx.NOT_FOUND_ERR)
+ if (e.code != DOMException.NOT_FOUND_ERR)
{
throw e;
}
@@ -340,7 +341,7 @@ public class DomElement
{
if (attributes == null)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR, null, node, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR, null, node, 0);
}
return (Attr) attributes.removeNamedItem(node.getNodeName());
}
@@ -358,7 +359,7 @@ public class DomElement
{
if (attributes == null)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR, localPart, null, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR, localPart, null, 0);
}
attributes.removeNamedItemNS (namespace, localPart);
}
@@ -487,11 +488,11 @@ public class DomElement
{
if (readonly)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
if (attr == null || attr.getOwnerElement() != this)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR);
}
if (isId)
{
diff --git a/libjava/gnu/xml/dom/DomImpl.java b/libjava/gnu/xml/dom/DomImpl.java
index 1a16de32593..feb7ea703cc 100644
--- a/libjava/gnu/xml/dom/DomImpl.java
+++ b/libjava/gnu/xml/dom/DomImpl.java
@@ -207,7 +207,8 @@ public class DomImpl
root = doc.createElementNS(namespaceURI, rootName);
if (rootName.startsWith("xmlns:"))
{
- throw new DomEx(DomEx.NAMESPACE_ERR, "xmlns is reserved", null, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xmlns is reserved", null, 0);
}
}
// Bleech -- L2 seemingly _requires_ omission of xmlns attributes.
diff --git a/libjava/gnu/xml/dom/DomIterator.java b/libjava/gnu/xml/dom/DomIterator.java
index 3dfd9640334..bb1f2cff2af 100644
--- a/libjava/gnu/xml/dom/DomIterator.java
+++ b/libjava/gnu/xml/dom/DomIterator.java
@@ -37,8 +37,7 @@ exception statement from your version. */
package gnu.xml.dom;
-import java.util.Vector;
-
+import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
@@ -76,7 +75,7 @@ public final class DomIterator
{
if (!root.isSupported("MutationEvents", "2.0"))
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR,
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR,
"Iterator needs mutation events", root, 0);
}
@@ -154,7 +153,7 @@ public final class DomIterator
{
if (done)
{
- throw new DomEx(DomEx.INVALID_STATE_ERR);
+ throw new DomDOMException(DOMException.INVALID_STATE_ERR);
}
right = true;
return walk(true);
@@ -171,7 +170,7 @@ public final class DomIterator
{
if (done)
{
- throw new DomEx(DomEx.INVALID_STATE_ERR);
+ throw new DomDOMException(DOMException.INVALID_STATE_ERR);
}
Node previous = reference;
right = false;
diff --git a/libjava/gnu/xml/dom/DomNamedNodeMap.java b/libjava/gnu/xml/dom/DomNamedNodeMap.java
index af7594249be..2b1106e64c0 100644
--- a/libjava/gnu/xml/dom/DomNamedNodeMap.java
+++ b/libjava/gnu/xml/dom/DomNamedNodeMap.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package gnu.xml.dom;
+import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -166,24 +167,24 @@ public class DomNamedNodeMap
{
if (readonly)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
DomNode node = (DomNode) arg;
if (node.owner != owner.owner)
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR);
}
if (node.nodeType != type)
{
- throw new DomEx(DomEx.HIERARCHY_REQUEST_ERR);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR);
}
if (node.nodeType == Node.ATTRIBUTE_NODE)
{
DomNode element = node.parent;
if (element != null && element != owner)
{
- throw new DomEx(DomEx.INUSE_ATTRIBUTE_ERR);
+ throw new DomDOMException(DOMException.INUSE_ATTRIBUTE_ERR);
}
node.parent = owner;
node.depth = owner.depth + 1;
@@ -302,7 +303,7 @@ public class DomNamedNodeMap
{
if (readonly)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
// report attribute REMOVAL event?
@@ -369,7 +370,7 @@ public class DomNamedNodeMap
return ctx;
}
}
- throw new DomEx(DomEx.NOT_FOUND_ERR);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR);
}
String getDefaultValue(String name)
diff --git a/libjava/gnu/xml/dom/DomNode.java b/libjava/gnu/xml/dom/DomNode.java
index 3858fe8bbb9..f763adf995a 100644
--- a/libjava/gnu/xml/dom/DomNode.java
+++ b/libjava/gnu/xml/dom/DomNode.java
@@ -40,7 +40,6 @@ package gnu.xml.dom;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import javax.xml.XMLConstants;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
@@ -58,7 +57,6 @@ import org.w3c.dom.events.EventTarget;
import org.w3c.dom.events.MutationEvent;
import org.w3c.dom.traversal.NodeFilter;
import org.w3c.dom.traversal.NodeIterator;
-import org.w3c.dom.traversal.TreeWalker;
/**
* <p> "Node", "EventTarget", and "DocumentEvent" implementation.
@@ -308,15 +306,16 @@ public abstract class DomNode
{
if (readonly && !owner.building)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR,
- null, this, 0);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+ null, this, 0);
}
for (DomNode ctx = this; ctx != null; ctx = ctx.parent)
{
if (child == ctx)
{
- throw new DomEx(DomEx.HIERARCHY_REQUEST_ERR,
- "can't make ancestor into a child", this, 0);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR,
+ "can't make ancestor into a child",
+ this, 0);
}
}
@@ -330,8 +329,8 @@ public abstract class DomNode
// new in DOM L2, this case -- patch it up later, in reparent()
if (!(childNodeType == DOCUMENT_TYPE_NODE && childOwner == null))
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR,
- null, child, 0);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR,
+ null, child, 0);
}
}
@@ -376,10 +375,12 @@ public abstract class DomNode
}
if (owner.checkingWellformedness)
{
- throw new DomEx(DomEx.HIERARCHY_REQUEST_ERR,
- "can't append " + nodeTypeToString(childNodeType) +
- " to node of type " + nodeTypeToString(nodeType),
- this, 0);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR,
+ "can't append " +
+ nodeTypeToString(childNodeType) +
+ " to node of type " +
+ nodeTypeToString(nodeType),
+ this, 0);
}
}
@@ -578,8 +579,8 @@ public abstract class DomNode
}
catch (ClassCastException e)
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR,
- null, newChild, 0);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR,
+ null, newChild, 0);
}
}
@@ -630,12 +631,14 @@ public abstract class DomNode
checkMisc(child);
if (ref == null || ref.parent != this)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR, null, ref, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR,
+ null, ref, 0);
}
if (ref == child)
{
- throw new DomEx(DomEx.HIERARCHY_REQUEST_ERR,
- "can't insert node before itself", ref, 0);
+ throw new DomDOMException(DOMException.HIERARCHY_REQUEST_ERR,
+ "can't insert node before itself",
+ ref, 0);
}
if (child.parent != null)
@@ -672,8 +675,8 @@ public abstract class DomNode
}
catch (ClassCastException e)
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR,
- null, newChild, 0);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR,
+ null, newChild, 0);
}
}
@@ -721,7 +724,8 @@ public abstract class DomNode
}
if (ref == null || ref.parent != this)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR, null, ref, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR,
+ null, ref, 0);
}
if (reportMutations)
@@ -784,7 +788,8 @@ public abstract class DomNode
checkMisc(child);
if (ref == null || ref.parent != this)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR, null, ref, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR,
+ null, ref, 0);
}
if (reportMutations)
@@ -837,8 +842,8 @@ public abstract class DomNode
}
catch (ClassCastException e)
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR,
- null, newChild, 0);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR,
+ null, newChild, 0);
}
}
@@ -860,12 +865,13 @@ public abstract class DomNode
if (ref == null || ref.parent != this)
{
- throw new DomEx(DomEx.NOT_FOUND_ERR, null, ref, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR,
+ null, ref, 0);
}
if (readonly && !owner.building)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR,
- null, this, 0);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+ null, this, 0);
}
for (DomNode child = first; child != null; child = child.next)
@@ -909,13 +915,13 @@ public abstract class DomNode
return ref;
}
}
- throw new DomEx(DomEx.NOT_FOUND_ERR,
- "that's no child of mine", refChild, 0);
+ throw new DomDOMException(DOMException.NOT_FOUND_ERR,
+ "that's no child of mine", refChild, 0);
}
catch (ClassCastException e)
{
- throw new DomEx(DomEx.WRONG_DOCUMENT_ERR,
- null, refChild, 0);
+ throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR,
+ null, refChild, 0);
}
}
@@ -1446,8 +1452,8 @@ public abstract class DomNode
// mouse events
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR,
- eventType, null, 0);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR,
+ eventType, null, 0);
}
/**
@@ -1680,13 +1686,16 @@ public abstract class DomNode
{
continue;
}
- if (count < notificationSet.length)
+ if (count >= notificationSet.length)
{
- notificationSet[count++] = rec;
+ // very simple growth algorithm
+ int len = Math.max(notificationSet.length, 1);
+ ListenerRecord[] tmp = new ListenerRecord[len * 2];
+ System.arraycopy(notificationSet, 0, tmp, 0,
+ notificationSet.length);
+ notificationSet = tmp;
}
- else
- // XXX fire up some cheap growth algorithm
- throw new RuntimeException("Event notification set size exceeded");
+ notificationSet[count++] = rec;
}
// Notify just those listeners
diff --git a/libjava/gnu/xml/dom/DomNsNode.java b/libjava/gnu/xml/dom/DomNsNode.java
index ea41fff6b8c..15b2fb54228 100644
--- a/libjava/gnu/xml/dom/DomNsNode.java
+++ b/libjava/gnu/xml/dom/DomNsNode.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package gnu.xml.dom;
import javax.xml.XMLConstants;
+import org.w3c.dom.DOMException;
/**
* <p> Abstract implemention of namespace support. This facilitates
@@ -135,7 +136,7 @@ public abstract class DomNsNode
{
if (readonly)
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
if (prefix == null)
@@ -145,40 +146,42 @@ public abstract class DomNsNode
}
else if (namespace == null)
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "can't set prefix, node has no namespace URI",
- this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "can't set prefix, node has no namespace URI",
+ this, 0);
}
DomDocument.checkName(prefix, "1.1".equals(owner.getXmlVersion()));
if (prefix.indexOf (':') != -1)
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "illegal prefix " + prefix, this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "illegal prefix " + prefix, this, 0);
}
if (XMLConstants.XML_NS_PREFIX.equals(prefix)
&& !XMLConstants.XML_NS_URI.equals(namespace))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "xml namespace is always " +
- XMLConstants.XML_NS_URI, this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xml namespace is always " +
+ XMLConstants.XML_NS_URI, this, 0);
}
if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
{
if (namespace != null || getNodeType() != ATTRIBUTE_NODE)
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "xmlns attribute prefix is reserved", this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "xmlns attribute prefix is reserved",
+ this, 0);
}
}
else if (getNodeType () == ATTRIBUTE_NODE
&& (XMLConstants.XMLNS_ATTRIBUTE.equals(name) ||
name.startsWith("xmlns:")))
{
- throw new DomEx(DomEx.NAMESPACE_ERR,
- "namespace declarations can't change names", this, 0);
+ throw new DomDOMException(DOMException.NAMESPACE_ERR,
+ "namespace declarations can't change names",
+ this, 0);
}
this.prefix = prefix.intern();
diff --git a/libjava/gnu/xml/dom/DomPI.java b/libjava/gnu/xml/dom/DomProcessingInstruction.java
index dedf375153c..9697f33f77a 100644
--- a/libjava/gnu/xml/dom/DomPI.java
+++ b/libjava/gnu/xml/dom/DomProcessingInstruction.java
@@ -1,4 +1,4 @@
-/* DomPI.java --
+/* DomProcessingInstruction.java --
Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,6 +37,7 @@ exception statement from your version. */
package gnu.xml.dom;
+import org.w3c.dom.DOMException;
import org.w3c.dom.ProcessingInstruction;
/**
@@ -57,7 +58,7 @@ import org.w3c.dom.ProcessingInstruction;
* @author David Brownell
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
-public class DomPI
+public class DomProcessingInstruction
extends DomNode
implements ProcessingInstruction
{
@@ -73,7 +74,8 @@ public class DomPI
* part of its createProcessingInstruction functionality, or through
* a subclass which is similarly used in a "Sub-DOM" style layer.
*/
- protected DomPI(DomDocument owner, String target, String data)
+ protected DomProcessingInstruction(DomDocument owner,
+ String target, String data)
{
super(PROCESSING_INSTRUCTION_NODE, owner);
this.target = target;
@@ -136,7 +138,7 @@ public class DomPI
{
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
this.data = data;
}
diff --git a/libjava/gnu/xml/dom/DomText.java b/libjava/gnu/xml/dom/DomText.java
index d714655e61d..dc2d50a8eb7 100644
--- a/libjava/gnu/xml/dom/DomText.java
+++ b/libjava/gnu/xml/dom/DomText.java
@@ -102,7 +102,7 @@ public class DomText
{
if (isReadonly())
{
- throw new DomEx(DomEx.NO_MODIFICATION_ALLOWED_ERR);
+ throw new DomDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
try
{
@@ -134,7 +134,7 @@ public class DomText
}
catch (IndexOutOfBoundsException x)
{
- throw new DomEx(DomEx.INDEX_SIZE_ERR);
+ throw new DomDOMException(DOMException.INDEX_SIZE_ERR);
}
}
diff --git a/libjava/gnu/xml/dom/DomXPathExpression.java b/libjava/gnu/xml/dom/DomXPathExpression.java
index d92670d7eff..c22f29413ee 100644
--- a/libjava/gnu/xml/dom/DomXPathExpression.java
+++ b/libjava/gnu/xml/dom/DomXPathExpression.java
@@ -37,7 +37,6 @@ exception statement from your version. */
package gnu.xml.dom;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
diff --git a/libjava/gnu/xml/dom/DomXPathResult.java b/libjava/gnu/xml/dom/DomXPathResult.java
index 1cc49d8f733..5c57e25e204 100644
--- a/libjava/gnu/xml/dom/DomXPathResult.java
+++ b/libjava/gnu/xml/dom/DomXPathResult.java
@@ -39,10 +39,8 @@ package gnu.xml.dom;
import java.util.Collection;
import java.util.Iterator;
-import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.xpath.XPathException;
-import org.w3c.dom.xpath.XPathNSResolver;
import org.w3c.dom.xpath.XPathResult;
/**
diff --git a/libjava/gnu/xml/dom/JAXPFactory.java b/libjava/gnu/xml/dom/JAXPFactory.java
index 42712081094..3602ef6b9ab 100644
--- a/libjava/gnu/xml/dom/JAXPFactory.java
+++ b/libjava/gnu/xml/dom/JAXPFactory.java
@@ -40,7 +40,6 @@ package gnu.xml.dom;
import java.io.IOException;
import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
import org.w3c.dom.DOMImplementation;
import org.xml.sax.EntityResolver;
diff --git a/libjava/gnu/xml/dom/ls/DomLSEx.java b/libjava/gnu/xml/dom/ls/DomLSException.java
index 5bf1595363f..6701b3e499f 100644
--- a/libjava/gnu/xml/dom/ls/DomLSEx.java
+++ b/libjava/gnu/xml/dom/ls/DomLSException.java
@@ -1,4 +1,4 @@
-/* DomLSEx.java --
+/* DomLSException.java --
Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,8 +37,6 @@ exception statement from your version. */
package gnu.xml.dom.ls;
-import java.io.PrintStream;
-import java.io.PrintWriter;
import org.w3c.dom.ls.LSException;
/**
@@ -46,30 +44,14 @@ import org.w3c.dom.ls.LSException;
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
-public class DomLSEx
+public class DomLSException
extends LSException
{
- private final Exception cause2;
-
- public DomLSEx(short type, Exception cause)
+ public DomLSException(short type, Exception cause)
{
- super(type, cause.getMessage());
- cause2 = cause;
+ super(type, (cause == null) ? null : cause.getMessage());
+ initCause(cause);
}
- public void printStackTrace(PrintStream out)
- {
- super.printStackTrace(out);
- out.print("caused by ");
- cause2.printStackTrace(out);
- }
-
- public void printStackTrace(PrintWriter out)
- {
- super.printStackTrace(out);
- out.print("caused by ");
- cause2.printStackTrace(out);
- }
-
}
diff --git a/libjava/gnu/xml/dom/ls/DomLSParser.java b/libjava/gnu/xml/dom/ls/DomLSParser.java
index b050b99a1a2..489777fc913 100644
--- a/libjava/gnu/xml/dom/ls/DomLSParser.java
+++ b/libjava/gnu/xml/dom/ls/DomLSParser.java
@@ -65,7 +65,7 @@ import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
import gnu.xml.dom.DomDocument;
-import gnu.xml.dom.DomEx;
+import gnu.xml.dom.DomDOMException;
/**
* Parser implementation for GNU DOM.
@@ -117,7 +117,7 @@ public class DomLSParser
async = false;
break;
default:
- throw new DomEx(DOMException.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
// TODO schemaType
this.schemaType = schemaType;
@@ -307,13 +307,13 @@ public class DomLSParser
{
reader = null;
eventSink = null;
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
catch (IOException e)
{
reader = null;
eventSink = null;
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
// return document
Document ret = eventSink.doc;
@@ -341,11 +341,11 @@ public class DomLSParser
}
catch (ParserConfigurationException e)
{
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
catch (SAXException e)
{
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
}
return reader;
@@ -371,11 +371,11 @@ public class DomLSParser
}
catch (SAXException e)
{
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
catch (IOException e)
{
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
}
if (source == null)
@@ -403,7 +403,7 @@ public class DomLSParser
}
catch (IOException e)
{
- throw new DomLSEx(LSException.PARSE_ERR, e);
+ throw new DomLSException(LSException.PARSE_ERR, e);
}
}
return source;
@@ -457,7 +457,7 @@ public class DomLSParser
}
else
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
// invalidate reader, a new one will be created
reader = null;
@@ -509,7 +509,7 @@ public class DomLSParser
}
else
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
}
diff --git a/libjava/gnu/xml/dom/ls/DomLSSerializer.java b/libjava/gnu/xml/dom/ls/DomLSSerializer.java
index 91a01c96e0e..ec27c5de65b 100644
--- a/libjava/gnu/xml/dom/ls/DomLSSerializer.java
+++ b/libjava/gnu/xml/dom/ls/DomLSSerializer.java
@@ -58,7 +58,7 @@ import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSSerializer;
import org.w3c.dom.ls.LSSerializerFilter;
import org.w3c.dom.traversal.NodeFilter;
-import gnu.xml.dom.DomEx;
+import gnu.xml.dom.DomDOMException;
import gnu.xml.transform.StreamSerializer;
/**
@@ -147,7 +147,7 @@ public class DomLSSerializer
}
catch (IOException e)
{
- throw new DomLSEx(LSException.SERIALIZE_ERR, e);
+ throw new DomLSException(LSException.SERIALIZE_ERR, e);
}
}
@@ -302,7 +302,7 @@ public class DomLSSerializer
}
else
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
}
@@ -319,7 +319,7 @@ public class DomLSSerializer
}
else
{
- throw new DomEx(DomEx.NOT_SUPPORTED_ERR);
+ throw new DomDOMException(DOMException.NOT_SUPPORTED_ERR);
}
}
diff --git a/libjava/gnu/xml/dom/ls/SAXEventSink.java b/libjava/gnu/xml/dom/ls/SAXEventSink.java
index 24f6cccf5b8..60b99d49305 100644
--- a/libjava/gnu/xml/dom/ls/SAXEventSink.java
+++ b/libjava/gnu/xml/dom/ls/SAXEventSink.java
@@ -486,6 +486,13 @@ class SAXEventSink
{
return;
}
+ // Ignore fake element declarations generated by ValidationConsumer.
+ // If an element is not really declared in the DTD it will not be
+ // declared in the document model.
+ if (!(ctx instanceof DomDoctype))
+ {
+ return;
+ }
DomDoctype doctype = (DomDoctype) ctx;
doctype.elementDecl(name, model);
}
diff --git a/libjava/gnu/xml/pipeline/CallFilter.java b/libjava/gnu/xml/pipeline/CallFilter.java
index 0d8585991df..da1a2e9c102 100644
--- a/libjava/gnu/xml/pipeline/CallFilter.java
+++ b/libjava/gnu/xml/pipeline/CallFilter.java
@@ -37,11 +37,18 @@ exception statement from your version. */
package gnu.xml.pipeline;
-import java.io.*;
-import java.net.*;
-
-import org.xml.sax.*;
-import org.xml.sax.ext.*;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.net.URL;
+import java.net.URLConnection;
+import java.io.Writer;
+
+import org.xml.sax.DTDHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import gnu.xml.util.Resolver;
diff --git a/libjava/gnu/xml/pipeline/DomConsumer.java b/libjava/gnu/xml/pipeline/DomConsumer.java
index 17fdeeb3453..e3136093c50 100644
--- a/libjava/gnu/xml/pipeline/DomConsumer.java
+++ b/libjava/gnu/xml/pipeline/DomConsumer.java
@@ -37,17 +37,30 @@ exception statement from your version. */
package gnu.xml.pipeline;
-import java.util.Hashtable;
+import gnu.xml.aelfred2.ContentHandler2;
+import gnu.xml.util.DomParser;
-import org.w3c.dom.*;
-import org.xml.sax.*;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXParseException;
import org.xml.sax.ext.DeclHandler;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.helpers.AttributesImpl;
-
-import gnu.xml.aelfred2.ContentHandler2;
-import gnu.xml.util.DomParser;
-
+import org.w3c.dom.Attr;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.CharacterData;
+import org.w3c.dom.Document;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Element;
+import org.w3c.dom.EntityReference;
+import org.w3c.dom.Node;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
/**
* This consumer builds a DOM Document from its input, acting either as a
diff --git a/libjava/gnu/xml/pipeline/LinkFilter.java b/libjava/gnu/xml/pipeline/LinkFilter.java
index 28a45017046..465103b2251 100644
--- a/libjava/gnu/xml/pipeline/LinkFilter.java
+++ b/libjava/gnu/xml/pipeline/LinkFilter.java
@@ -43,7 +43,6 @@ import java.util.Enumeration;
import java.util.Vector;
import org.xml.sax.Attributes;
-import org.xml.sax.Locator;
import org.xml.sax.SAXException;
diff --git a/libjava/gnu/xml/pipeline/NSFilter.java b/libjava/gnu/xml/pipeline/NSFilter.java
index 9e8a6436503..63e167361c1 100644
--- a/libjava/gnu/xml/pipeline/NSFilter.java
+++ b/libjava/gnu/xml/pipeline/NSFilter.java
@@ -37,16 +37,17 @@ exception statement from your version. */
package gnu.xml.pipeline;
-import java.util.EmptyStackException;
import java.util.Enumeration;
import java.util.Stack;
-import org.xml.sax.*;
-import org.xml.sax.ext.*;
+import org.xml.sax.Attributes;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.AttributesImpl;
import org.xml.sax.helpers.NamespaceSupport;
-
/**
* This filter ensures that element and attribute names are properly prefixed,
* and that such prefixes are declared. Such data is critical for operations
diff --git a/libjava/gnu/xml/pipeline/TeeConsumer.java b/libjava/gnu/xml/pipeline/TeeConsumer.java
index 6d3227eda11..922e79cf29f 100644
--- a/libjava/gnu/xml/pipeline/TeeConsumer.java
+++ b/libjava/gnu/xml/pipeline/TeeConsumer.java
@@ -37,11 +37,15 @@ exception statement from your version. */
package gnu.xml.pipeline;
-import java.io.IOException;
-import org.xml.sax.*;
-import org.xml.sax.ext.*;
-//import gnu.xml.util;
-
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.ext.DeclHandler;
+import org.xml.sax.ext.LexicalHandler;
/**
* Fans its events out to two other consumers, a "tee" filter stage in an
diff --git a/libjava/gnu/xml/pipeline/ValidationConsumer.java b/libjava/gnu/xml/pipeline/ValidationConsumer.java
index e73c0ffe21c..9053b484c02 100644
--- a/libjava/gnu/xml/pipeline/ValidationConsumer.java
+++ b/libjava/gnu/xml/pipeline/ValidationConsumer.java
@@ -1,5 +1,5 @@
/* ValidationConsumer.java --
- Copyright (C) 1999,2000,2001 Free Software Foundation, Inc.
+ Copyright (C) 1999,2000,2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,8 +37,9 @@ exception statement from your version. */
package gnu.xml.pipeline;
-import java.io.*;
-
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
import java.util.EmptyStackException;
import java.util.Enumeration;
import java.util.Hashtable;
@@ -46,11 +47,16 @@ import java.util.Stack;
import java.util.StringTokenizer;
import java.util.Vector;
-import org.xml.sax.*;
-import org.xml.sax.ext.*;
+import org.xml.sax.Attributes;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
-
/**
* This class checks SAX2 events to report validity errors; it works as
* both a filter and a terminus on an event pipeline. It relies on the
@@ -1317,7 +1323,8 @@ public final class ValidationConsumer extends EventFilter
// Content model validation
//
- static private final Recognizer ANY = new Recognizer (null);
+ // GCJ LOCAL: package private to work around gcj bug.
+ static final Recognizer ANY = new Recognizer (null);
// Base class defines the calls used to validate content,
diff --git a/libjava/gnu/xml/pipeline/WellFormednessFilter.java b/libjava/gnu/xml/pipeline/WellFormednessFilter.java
index 3047ae3567f..4f3f200c007 100644
--- a/libjava/gnu/xml/pipeline/WellFormednessFilter.java
+++ b/libjava/gnu/xml/pipeline/WellFormednessFilter.java
@@ -40,10 +40,11 @@ package gnu.xml.pipeline;
import java.util.EmptyStackException;
import java.util.Stack;
-import gnu.xml.aelfred2.SAXDriver;
-import org.xml.sax.*;
-import org.xml.sax.ext.*;
-
+import org.xml.sax.Attributes;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
/**
* This filter reports fatal exceptions in the case of event streams that
diff --git a/libjava/gnu/xml/pipeline/XIncludeFilter.java b/libjava/gnu/xml/pipeline/XIncludeFilter.java
index efa05d942f9..042cadda613 100644
--- a/libjava/gnu/xml/pipeline/XIncludeFilter.java
+++ b/libjava/gnu/xml/pipeline/XIncludeFilter.java
@@ -42,7 +42,6 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
-import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Stack;
import java.util.Vector;
diff --git a/libjava/gnu/xml/pipeline/XsltFilter.java b/libjava/gnu/xml/pipeline/XsltFilter.java
index b1bebbe98a5..9f77f9937bf 100644
--- a/libjava/gnu/xml/pipeline/XsltFilter.java
+++ b/libjava/gnu/xml/pipeline/XsltFilter.java
@@ -44,7 +44,6 @@ import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.StreamSource;
-import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.ext.LexicalHandler;
diff --git a/libjava/gnu/xml/transform/ApplyImportsNode.java b/libjava/gnu/xml/transform/ApplyImportsNode.java
index 2b286550484..39d9dea9af6 100644
--- a/libjava/gnu/xml/transform/ApplyImportsNode.java
+++ b/libjava/gnu/xml/transform/ApplyImportsNode.java
@@ -37,15 +37,9 @@ exception statement from your version. */
package gnu.xml.transform;
-import java.util.Collection;
-import java.util.Iterator;
-import java.text.DecimalFormat;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
-import org.w3c.dom.Document;
import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-import gnu.xml.xpath.Expr;
/**
* A template node representing an XSLT <code>apply-imports</code> instruction.
diff --git a/libjava/gnu/xml/transform/Bindings.java b/libjava/gnu/xml/transform/Bindings.java
index f898a7288b0..75a8a165138 100644
--- a/libjava/gnu/xml/transform/Bindings.java
+++ b/libjava/gnu/xml/transform/Bindings.java
@@ -45,12 +45,8 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import javax.xml.namespace.QName;
-import javax.xml.transform.TransformerException;
import javax.xml.xpath.XPathVariableResolver;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Node;
-import gnu.xml.xpath.Expr;
/**
* The set of variable bindings in effect for a stylesheet.
diff --git a/libjava/gnu/xml/transform/DocumentFunction.java b/libjava/gnu/xml/transform/DocumentFunction.java
index 03f22b4ced2..78862dc9e57 100644
--- a/libjava/gnu/xml/transform/DocumentFunction.java
+++ b/libjava/gnu/xml/transform/DocumentFunction.java
@@ -37,22 +37,16 @@ exception statement from your version. */
package gnu.xml.transform;
-import java.io.InputStream;
-import java.io.IOException;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
-import javax.xml.transform.ErrorListener;
import javax.xml.transform.TransformerException;
-import javax.xml.transform.URIResolver;
import javax.xml.transform.dom.DOMSource;
import javax.xml.xpath.XPathFunction;
import javax.xml.xpath.XPathFunctionException;
-import org.w3c.dom.Document;
import org.w3c.dom.Node;
import gnu.xml.xpath.Constant;
import gnu.xml.xpath.Expr;
diff --git a/libjava/gnu/xml/transform/FormatNumberFunction.java b/libjava/gnu/xml/transform/FormatNumberFunction.java
index 73c5af43a2b..393cb99ffea 100644
--- a/libjava/gnu/xml/transform/FormatNumberFunction.java
+++ b/libjava/gnu/xml/transform/FormatNumberFunction.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.xml.transform;
import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
diff --git a/libjava/gnu/xml/transform/NodeNumberNode.java b/libjava/gnu/xml/transform/NodeNumberNode.java
index 76f8d7eea3d..aae86c6f2a3 100644
--- a/libjava/gnu/xml/transform/NodeNumberNode.java
+++ b/libjava/gnu/xml/transform/NodeNumberNode.java
@@ -43,13 +43,10 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.xml.transform.TransformerException;
-import org.w3c.dom.Document;
import org.w3c.dom.Node;
import gnu.xml.xpath.Expr;
-import gnu.xml.xpath.NodeTypeTest;
import gnu.xml.xpath.Pattern;
import gnu.xml.xpath.Selector;
-import gnu.xml.xpath.Test;
import gnu.xml.xpath.UnionExpr;
/**
diff --git a/libjava/gnu/xml/transform/NumberNode.java b/libjava/gnu/xml/transform/NumberNode.java
index 0970ac9733d..b01b983dff1 100644
--- a/libjava/gnu/xml/transform/NumberNode.java
+++ b/libjava/gnu/xml/transform/NumberNode.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.xml.transform;
import javax.xml.transform.TransformerException;
-import org.w3c.dom.Document;
import org.w3c.dom.Node;
import gnu.xml.xpath.Expr;
diff --git a/libjava/gnu/xml/transform/Stylesheet.java b/libjava/gnu/xml/transform/Stylesheet.java
index 80f5781e2fd..6250fd542ef 100644
--- a/libjava/gnu/xml/transform/Stylesheet.java
+++ b/libjava/gnu/xml/transform/Stylesheet.java
@@ -58,7 +58,6 @@ import javax.xml.namespace.QName;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
-import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFunction;
import javax.xml.xpath.XPathFunctionResolver;
import javax.xml.xpath.XPathExpressionException;
@@ -68,7 +67,6 @@ import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.w3c.dom.UserDataHandler;
import gnu.xml.xpath.Expr;
diff --git a/libjava/gnu/xml/transform/SystemPropertyFunction.java b/libjava/gnu/xml/transform/SystemPropertyFunction.java
index 3d95d21d585..03518e9cb89 100644
--- a/libjava/gnu/xml/transform/SystemPropertyFunction.java
+++ b/libjava/gnu/xml/transform/SystemPropertyFunction.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.xml.transform;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.xpath.XPathFunction;
diff --git a/libjava/gnu/xml/transform/Template.java b/libjava/gnu/xml/transform/Template.java
index 6aaa4c1c69f..0e7c67a7e52 100644
--- a/libjava/gnu/xml/transform/Template.java
+++ b/libjava/gnu/xml/transform/Template.java
@@ -39,9 +39,7 @@ package gnu.xml.transform;
import java.io.PrintStream;
import javax.xml.namespace.QName;
-import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
-import javax.xml.xpath.XPathExpressionException;
import org.w3c.dom.Node;
import gnu.xml.xpath.Expr;
import gnu.xml.xpath.NameTest;
diff --git a/libjava/gnu/xml/transform/TemplatesImpl.java b/libjava/gnu/xml/transform/TemplatesImpl.java
index a7403e9ee2c..173fb036fb8 100644
--- a/libjava/gnu/xml/transform/TemplatesImpl.java
+++ b/libjava/gnu/xml/transform/TemplatesImpl.java
@@ -38,12 +38,9 @@ exception statement from your version. */
package gnu.xml.transform;
import java.util.Properties;
-import javax.xml.transform.ErrorListener;
-import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.URIResolver;
/**
* GNU precompiled stylesheet implementation.
diff --git a/libjava/gnu/xml/transform/TransformerImpl.java b/libjava/gnu/xml/transform/TransformerImpl.java
index fb4632e3f38..c0af0fca440 100644
--- a/libjava/gnu/xml/transform/TransformerImpl.java
+++ b/libjava/gnu/xml/transform/TransformerImpl.java
@@ -48,9 +48,6 @@ import java.net.UnknownServiceException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
import java.util.Properties;
import javax.xml.transform.ErrorListener;
import javax.xml.transform.OutputKeys;
@@ -67,7 +64,6 @@ import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
import org.xml.sax.ContentHandler;
@@ -76,8 +72,6 @@ import org.xml.sax.ext.LexicalHandler;
import gnu.xml.dom.DomDoctype;
import gnu.xml.dom.DomDocument;
import gnu.xml.dom.ls.WriterOutputStream;
-import gnu.xml.xpath.Expr;
-import gnu.xml.xpath.Root;
/**
* The transformation process for a given stylesheet.
diff --git a/libjava/gnu/xml/transform/ValueOfNode.java b/libjava/gnu/xml/transform/ValueOfNode.java
index 6027052e9e1..9eb2fde5d3a 100644
--- a/libjava/gnu/xml/transform/ValueOfNode.java
+++ b/libjava/gnu/xml/transform/ValueOfNode.java
@@ -37,9 +37,6 @@ exception statement from your version. */
package gnu.xml.transform;
-import java.util.Collection;
-import java.util.Iterator;
-import java.text.DecimalFormat;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Document;
diff --git a/libjava/gnu/xml/transform/XSLURIResolver.java b/libjava/gnu/xml/transform/XSLURIResolver.java
index 2603cdd831f..f0f417202fb 100644
--- a/libjava/gnu/xml/transform/XSLURIResolver.java
+++ b/libjava/gnu/xml/transform/XSLURIResolver.java
@@ -41,7 +41,6 @@ import java.io.File;
import java.io.InputStream;
import java.io.IOException;
import java.io.Reader;
-import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
diff --git a/libjava/gnu/xml/util/DoParse.java b/libjava/gnu/xml/util/DoParse.java
index 23721de7657..6f255c80453 100644
--- a/libjava/gnu/xml/util/DoParse.java
+++ b/libjava/gnu/xml/util/DoParse.java
@@ -37,28 +37,22 @@ exception statement from your version. */
package gnu.xml.util;
-import java.io.*;
+import java.io.IOException;
-import org.xml.sax.*;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
-import org.xml.sax.ext.*;
-// import gnu.xml.pipeline.*;
-// Added imports directly to fix a GCJ problem.
-import gnu.xml.pipeline.CallFilter;
-import gnu.xml.pipeline.DomConsumer;
import gnu.xml.pipeline.EventConsumer;
import gnu.xml.pipeline.EventFilter;
-import gnu.xml.pipeline.LinkFilter;
import gnu.xml.pipeline.NSFilter;
import gnu.xml.pipeline.PipelineFactory;
import gnu.xml.pipeline.TeeConsumer;
-import gnu.xml.pipeline.TextConsumer;
import gnu.xml.pipeline.ValidationConsumer;
import gnu.xml.pipeline.WellFormednessFilter;
-import gnu.xml.pipeline.XIncludeFilter;
-import gnu.xml.pipeline.XsltFilter;
-
/**
* This class provides a driver which may be invoked from the command line
diff --git a/libjava/gnu/xml/util/Resolver.java b/libjava/gnu/xml/util/Resolver.java
index 4ca078774ec..97256c3c861 100644
--- a/libjava/gnu/xml/util/Resolver.java
+++ b/libjava/gnu/xml/util/Resolver.java
@@ -37,13 +37,13 @@ exception statement from your version. */
package gnu.xml.util;
-import java.io.*;
-
+import java.io.File;
+import java.io.IOException;
import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.xml.sax.*;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
/**
* Utility implementation of a SAX resolver, which can be used to improve
diff --git a/libjava/gnu/xml/util/SAXNullTransformerFactory.java b/libjava/gnu/xml/util/SAXNullTransformerFactory.java
index 3b199f6dc0d..ef03d42fc38 100644
--- a/libjava/gnu/xml/util/SAXNullTransformerFactory.java
+++ b/libjava/gnu/xml/util/SAXNullTransformerFactory.java
@@ -635,7 +635,8 @@ public class SAXNullTransformerFactory extends SAXTransformerFactory
// preserve original namespace prefixes
try
{
- producer.setFeature(handler.FEATURE_URI + "namespace-prefixes",
+ producer.setFeature(EventFilter.FEATURE_URI +
+ "namespace-prefixes",
true);
}
catch (Exception e)
@@ -646,7 +647,7 @@ public class SAXNullTransformerFactory extends SAXTransformerFactory
// arrange the output
handler.setResult (out);
- handler.bind (producer, handler);
+ EventFilter.bind (producer, handler);
// then parse ... single element pipeline
producer.parse (input);
diff --git a/libjava/gnu/xml/xpath/Expr.java b/libjava/gnu/xml/xpath/Expr.java
index 6a933c8c598..fcfae52addc 100644
--- a/libjava/gnu/xml/xpath/Expr.java
+++ b/libjava/gnu/xml/xpath/Expr.java
@@ -58,9 +58,7 @@ import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
diff --git a/libjava/gnu/xml/xpath/FunctionCall.java b/libjava/gnu/xml/xpath/FunctionCall.java
index 2c77b586903..35eacb51678 100644
--- a/libjava/gnu/xml/xpath/FunctionCall.java
+++ b/libjava/gnu/xml/xpath/FunctionCall.java
@@ -38,7 +38,6 @@ exception statement from your version. */
package gnu.xml.xpath;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.List;
import javax.xml.namespace.QName;
diff --git a/libjava/gnu/xml/xpath/Predicate.java b/libjava/gnu/xml/xpath/Predicate.java
index 81e1755fbda..a857c16bbf1 100644
--- a/libjava/gnu/xml/xpath/Predicate.java
+++ b/libjava/gnu/xml/xpath/Predicate.java
@@ -63,7 +63,7 @@ class Predicate
// Same as [position() = x]
return ((Double) ret).intValue() == pos;
}
- return expr._boolean(node, expr.evaluate(node, pos, len));
+ return Expr._boolean(node, expr.evaluate(node, pos, len));
}
public Test clone(Object context)
diff --git a/libjava/gnu/xml/xpath/RelationalExpr.java b/libjava/gnu/xml/xpath/RelationalExpr.java
index e039cc1c600..fcdc932ab38 100644
--- a/libjava/gnu/xml/xpath/RelationalExpr.java
+++ b/libjava/gnu/xml/xpath/RelationalExpr.java
@@ -37,7 +37,6 @@ exception statement from your version. */
package gnu.xml.xpath;
-import java.util.Collection;
import org.w3c.dom.Node;
/**
diff --git a/libjava/gnu/xml/xpath/Selector.java b/libjava/gnu/xml/xpath/Selector.java
index 5431cbe1fdd..5fd45b9117a 100644
--- a/libjava/gnu/xml/xpath/Selector.java
+++ b/libjava/gnu/xml/xpath/Selector.java
@@ -39,7 +39,6 @@ package gnu.xml.xpath;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@@ -48,7 +47,6 @@ import javax.xml.XMLConstants;
import org.w3c.dom.Attr;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* A single component of a location path.
diff --git a/libjava/gnu/xml/xpath/XPathParser.java b/libjava/gnu/xml/xpath/XPathParser.java
index 973919bae69..188cfb5bf66 100644
--- a/libjava/gnu/xml/xpath/XPathParser.java
+++ b/libjava/gnu/xml/xpath/XPathParser.java
@@ -43,7 +43,6 @@ package gnu.xml.xpath;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.xpath.XPathFunctionResolver;
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index 4c05fcedf5e..9d139f0cf56 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -91,7 +91,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -136,6 +135,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in
index 8722869e280..04f8be0b7ff 100644
--- a/libjava/include/config.h.in
+++ b/libjava/include/config.h.in
@@ -364,6 +364,9 @@
/* Define if you want a bytecode interpreter. */
#undef INTERPRETER
+/* API compatibility version string */
+#undef JV_API_VERSION
+
/* Define if hash synchronization is in use */
#undef JV_HASH_SYNCHRONIZATION
@@ -373,6 +376,9 @@
/* Indicate that linker is not able to 8-byte align static data */
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS
+/* Compatibility version string */
+#undef JV_VERSION
+
/* Define if we want to use debug calls into the garbage collector. */
#undef LIBGCJ_GC_DEBUG
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index 4126c2f44cd..535ac15ce9b 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -1,6 +1,6 @@
// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*-
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -27,12 +27,6 @@ extern "C" {
#include <ffi.h>
}
-extern inline jboolean
-_Jv_IsInterpretedClass (jclass c)
-{
- return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
-}
-
struct _Jv_ResolvedMethod;
void _Jv_InitInterpreter ();
diff --git a/libjava/include/java-props.h b/libjava/include/java-props.h
index 9be30996ebc..43020006e2a 100644
--- a/libjava/include/java-props.h
+++ b/libjava/include/java-props.h
@@ -21,9 +21,7 @@ typedef struct
// Set to NULL-terminated list of properties set at compile time.
extern const char **_Jv_Compiler_Properties;
-
-// The JAR file to add to the beginning of java.class.path.
-extern const char *_Jv_Jar_Class_Path;
+extern int _Jv_Properties_Count;
// Properties taken from the user's environment.
extern property_pair *_Jv_Environment_Properties;
diff --git a/libjava/include/jawt.h b/libjava/include/jawt.h
index 52cde838e69..fdff9356a11 100644
--- a/libjava/include/jawt.h
+++ b/libjava/include/jawt.h
@@ -50,8 +50,12 @@ extern "C"
#endif
#define JAWT_VERSION_1_3 0x10003
+#define JAWT_VERSION_1_4 0x10004
#define JAWT_LOCK_ERROR 0x1
+#define JAWT_LOCK_CLIP_CHANGED 0x2
+#define JAWT_LOCK_BOUNDS_CHANGED 0x4
+#define JAWT_LOCK_SURFACE_CHANGED 0x8
struct _JAWT_DrawingSurfaceInfo
{
@@ -77,6 +81,8 @@ struct _JAWT
jint version;
struct _JAWT_DrawingSurface* (JNICALL* GetDrawingSurface) (JNIEnv*, jobject);
void (JNICALL* FreeDrawingSurface) (struct _JAWT_DrawingSurface*);
+ void (JNICALL *Lock) (JNIEnv*);
+ void (JNICALL *Unlock) (JNIEnv*);
};
typedef struct _JAWT_DrawingSurfaceInfo JAWT_DrawingSurfaceInfo;
diff --git a/libjava/include/jawt_md.h b/libjava/include/jawt_md.h
index 94abb57863b..9e74ec1cc7c 100644
--- a/libjava/include/jawt_md.h
+++ b/libjava/include/jawt_md.h
@@ -52,6 +52,7 @@ struct _JAWT_X11DrawingSurfaceInfo
{
Display* display;
Drawable drawable;
+ VisualID visualID;
};
typedef struct _JAWT_X11DrawingSurfaceInfo JAWT_X11DrawingSurfaceInfo;
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index cf4d7d640d0..e7d1ce23326 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -250,7 +250,8 @@ namespace gcj
class _Jv_Linker
{
private:
- static _Jv_Field *find_field_helper(jclass, _Jv_Utf8Const *, jclass *);
+ static _Jv_Field *find_field_helper(jclass, _Jv_Utf8Const *, _Jv_Utf8Const *,
+ jclass *);
static _Jv_Field *find_field(jclass, jclass, _Jv_Utf8Const *,
_Jv_Utf8Const *);
static void prepare_constant_time_tables(jclass);
@@ -278,6 +279,7 @@ private:
public:
+ static bool has_field_p (jclass, _Jv_Utf8Const *);
static void print_class_loaded (jclass);
static void resolve_class_ref (jclass, jclass *);
static void wait_for_state(jclass, int);
@@ -372,6 +374,9 @@ extern "C" void JvRunMain (jclass klass, int argc, const char **argv);
void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
bool is_jar);
+void _Jv_RunMain (struct _Jv_VMInitArgs *vm_args, jclass klass,
+ const char *name, int argc, const char **argv, bool is_jar);
+
// Delayed until after _Jv_AllocBytes is declared.
//
// Note that we allocate this as unscanned memory -- the vtables
@@ -525,6 +530,9 @@ void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *);
/* Free a JNIEnv. */
void _Jv_FreeJNIEnv (_Jv_JNIEnv *);
+/* Free a JNIEnv. */
+void _Jv_FreeJNIEnv (_Jv_JNIEnv *);
+
struct _Jv_JavaVM;
_Jv_JavaVM *_Jv_GetJavaVM ();
@@ -581,4 +589,13 @@ _Jv_CheckABIVersion (unsigned long value)
|| value == (GCJ_VERSION + GCJ_BINARYCOMPAT_ADDITION));
}
+// It makes the source cleaner if we simply always define this
+// function. If the interpreter is not built, it will never return
+// 'true'.
+extern inline jboolean
+_Jv_IsInterpretedClass (jclass c)
+{
+ return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
+}
+
#endif /* __JAVA_JVM_H__ */
diff --git a/libjava/java/applet/Applet.java b/libjava/java/applet/Applet.java
index a7609d9ab63..3adc5ce0a4b 100644
--- a/libjava/java/applet/Applet.java
+++ b/libjava/java/applet/Applet.java
@@ -1,5 +1,5 @@
/* Applet.java -- Java base applet class
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -63,8 +63,8 @@ import javax.accessibility.AccessibleStateSet;
* are init, stop, and destroy for control purposes, and getAppletInfo and
* getParameterInfo for descriptive purposes.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
@@ -477,7 +477,7 @@ public class Applet extends Panel
* This class provides accessibility support for Applets, and is the
* runtime type returned by {@link #getAccessibleContext()}.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
*/
protected class AccessibleApplet extends AccessibleAWTPanel
diff --git a/libjava/java/awt/AWTError.java b/libjava/java/awt/AWTError.java
index 1c253cb41a6..e92bc01e67c 100644
--- a/libjava/java/awt/AWTError.java
+++ b/libjava/java/awt/AWTError.java
@@ -1,5 +1,5 @@
/* AWTError.java -- A serious AWT error occurred.
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt;
* This error is thrown when a critical Abstract Window Toolkit (AWT) error
* occurs.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class AWTError extends Error
diff --git a/libjava/java/awt/AWTEvent.java b/libjava/java/awt/AWTEvent.java
index 675c27f9511..faa6dac25ef 100644
--- a/libjava/java/awt/AWTEvent.java
+++ b/libjava/java/awt/AWTEvent.java
@@ -50,8 +50,8 @@ import java.util.EventObject;
* listeners. Event masks are appropriately set when registering on
* components.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/AWTEventMulticaster.java b/libjava/java/awt/AWTEventMulticaster.java
index b26d1f35d05..943ffacfad3 100644
--- a/libjava/java/awt/AWTEventMulticaster.java
+++ b/libjava/java/awt/AWTEventMulticaster.java
@@ -107,8 +107,8 @@ import java.util.EventListener;
* new listener is then chained to the old.
*
* @author Bryce McKinlay
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/AWTException.java b/libjava/java/awt/AWTException.java
index e4ab6c9961f..49462a460e1 100644
--- a/libjava/java/awt/AWTException.java
+++ b/libjava/java/awt/AWTException.java
@@ -1,5 +1,5 @@
/* AWTException.java -- Generic AWT exception
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt;
* This is a generic exception that indicates an exception occurred in the
* Abstract Window Toolkit (AWT) system.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class AWTException extends Exception
diff --git a/libjava/java/awt/AWTKeyStroke.java b/libjava/java/awt/AWTKeyStroke.java
index 53e64b7fb1b..977b3848d6d 100644
--- a/libjava/java/awt/AWTKeyStroke.java
+++ b/libjava/java/awt/AWTKeyStroke.java
@@ -1,5 +1,5 @@
/* AWTKeyStroke.java -- an immutable key stroke
- Copyright (C) 2002, 2004 Free Software Foundation
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation
This file is part of GNU Classpath.
@@ -63,7 +63,7 @@ import java.util.StringTokenizer;
* instances of a subclass, using reflection, provided the subclass has a
* no-arg constructor (of any accessibility).
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see #getAWTKeyStroke(char)
* @since 1.4
* @status updated to 1.4
@@ -393,15 +393,16 @@ public class AWTKeyStroke implements Serializable
* </code>
*
* @param s the string to parse
+ * @throws IllegalArgumentException if s is null or cannot be parsed
* @return the specified keystroke
- * @throws NullPointerException if s is null
- * @throws IllegalArgumentException if s cannot be parsed
*/
public static AWTKeyStroke getAWTKeyStroke(String s)
{
+ if (s == null)
+ throw new IllegalArgumentException("null argument");
StringTokenizer t = new StringTokenizer(s, " ");
if (! t.hasMoreTokens())
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException("no tokens '" + s + "'");
int modifiers = 0;
boolean released = false;
String token = null;
@@ -432,7 +433,8 @@ public class AWTKeyStroke implements Serializable
KeyEvent.VK_UNDEFINED, modifiers,
false);
}
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException("Invalid 'typed' argument '"
+ + s + "'");
}
else if ("pressed".equals(token))
{
@@ -453,8 +455,11 @@ public class AWTKeyStroke implements Serializable
while (t.hasMoreTokens());
// Now token contains the VK name we must parse.
Integer code = (Integer) vktable.get(token);
- if (code == null || t.hasMoreTokens())
- throw new IllegalArgumentException();
+ if (code == null)
+ throw new IllegalArgumentException("Unknown token '" + token
+ + "' in '" + s + "'");
+ if (t.hasMoreTokens())
+ throw new IllegalArgumentException("Too many tokens: " + s);
return getAWTKeyStroke(KeyEvent.CHAR_UNDEFINED, code.intValue(),
modifiers, released);
}
diff --git a/libjava/java/awt/AWTPermission.java b/libjava/java/awt/AWTPermission.java
index b5ba63d58d0..fc4ae08d55e 100644
--- a/libjava/java/awt/AWTPermission.java
+++ b/libjava/java/awt/AWTPermission.java
@@ -82,7 +82,7 @@ import java.security.BasicPermission;
* <td>malicious code could masquerade as a trusted program</td></tr>
* </table>
*
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/ActiveEvent.java b/libjava/java/awt/ActiveEvent.java
index d43fef16df1..5710b38c470 100644
--- a/libjava/java/awt/ActiveEvent.java
+++ b/libjava/java/awt/ActiveEvent.java
@@ -47,7 +47,7 @@ package java.awt;
* untrusted code. For example, system code should use an ActiveEvent to
* invoke user code securely.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/Adjustable.java b/libjava/java/awt/Adjustable.java
index 815c77ca936..053ddd1c1e3 100644
--- a/libjava/java/awt/Adjustable.java
+++ b/libjava/java/awt/Adjustable.java
@@ -1,5 +1,5 @@
/* Adjustable.java -- Objects with a numeric adjustment scale
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.awt.event.AdjustmentListener;
* This interface is for objects that take a numeric value that can be
* adjusted within a bounded range. For example, a scroll bar.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/AlphaComposite.java b/libjava/java/awt/AlphaComposite.java
index f0795a96010..3c7744ba51e 100644
--- a/libjava/java/awt/AlphaComposite.java
+++ b/libjava/java/awt/AlphaComposite.java
@@ -1,5 +1,5 @@
/* AlphaComposite.java -- provides a context for performing alpha compositing
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.Map;
/**
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Composite
* @see CompositeContext
* @since 1.3
diff --git a/libjava/java/awt/AttributeValue.java b/libjava/java/awt/AttributeValue.java
index f692c012f9f..10efab18375 100644
--- a/libjava/java/awt/AttributeValue.java
+++ b/libjava/java/awt/AttributeValue.java
@@ -1,5 +1,5 @@
/* AttributeValue.java -- parent of type-safe enums of attributes
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt;
* <code>equals</code>, <code>toString</code>, and <code>hashCode</code>, so
* that you don't have to (although hashCode is commonly overridden).
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
class AttributeValue
{
diff --git a/libjava/java/awt/BasicStroke.java b/libjava/java/awt/BasicStroke.java
index e302a0ebc9f..b1772548ac2 100644
--- a/libjava/java/awt/BasicStroke.java
+++ b/libjava/java/awt/BasicStroke.java
@@ -1,5 +1,5 @@
/* BasicStroke.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,6 +48,7 @@ public class BasicStroke implements Stroke
public static final int JOIN_MITER = 0;
public static final int JOIN_ROUND = 1;
public static final int JOIN_BEVEL = 2;
+
public static final int CAP_BUTT = 0;
public static final int CAP_ROUND = 1;
public static final int CAP_SQUARE = 2;
@@ -208,11 +209,34 @@ public class BasicStroke implements Stroke
return phase;
}
+ /**
+ * Returns the hash code for this object. The hash is calculated by
+ * xoring the hash, cap, join, limit, dash array and phase values
+ * (converted to <code>int</code> first with
+ * <code>Float.floatToIntBits()</code> if the value is a
+ * <code>float</code>).
+ */
public int hashCode()
{
- throw new Error("not implemented");
+ int hash = Float.floatToIntBits(width);
+ hash ^= cap;
+ hash ^= join;
+ hash ^= Float.floatToIntBits(limit);
+
+ if (dash != null)
+ for (int i = 0; i < dash.length; i++)
+ hash ^= Float.floatToIntBits(dash[i]);
+
+ hash ^= Float.floatToIntBits(phase);
+
+ return hash;
}
+ /**
+ * Returns true if the given Object is an instance of BasicStroke
+ * and the width, cap, join, limit, dash array and phase are all
+ * equal.
+ */
public boolean equals(Object o)
{
if (! (o instanceof BasicStroke))
diff --git a/libjava/java/awt/BorderLayout.java b/libjava/java/awt/BorderLayout.java
index a023cbb059b..7a955d38139 100644
--- a/libjava/java/awt/BorderLayout.java
+++ b/libjava/java/awt/BorderLayout.java
@@ -1,5 +1,5 @@
/* BorderLayout.java -- A layout manager class
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.awt;
* in certain sectors of the parent container.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public class BorderLayout implements LayoutManager2, java.io.Serializable
{
diff --git a/libjava/java/awt/BufferCapabilities.java b/libjava/java/awt/BufferCapabilities.java
index 871529e6e93..9f91711e18a 100644
--- a/libjava/java/awt/BufferCapabilities.java
+++ b/libjava/java/awt/BufferCapabilities.java
@@ -1,5 +1,5 @@
/* BufferCapabilities.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* Needs documentation...
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see BufferStrategy#getCapabilities()
* @see GraphicsConfiguration#getCapabilities()
* @since 1.4
diff --git a/libjava/java/awt/Button.java b/libjava/java/awt/Button.java
index 86cb37cac90..eb0fe3b7a20 100644
--- a/libjava/java/awt/Button.java
+++ b/libjava/java/awt/Button.java
@@ -1,5 +1,5 @@
/* Button.java -- AWT button widget
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,6 @@ import java.util.EventListener;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleAction;
import javax.accessibility.AccessibleContext;
-import javax.accessibility.AccessibleRelation;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleValue;
@@ -55,7 +54,7 @@ import javax.accessibility.AccessibleValue;
* This class provides a button widget for the AWT.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class Button extends Component
implements java.io.Serializable, Accessible
@@ -97,7 +96,10 @@ private transient ActionListener action_listeners;
protected class AccessibleAWTButton extends AccessibleAWTComponent
implements AccessibleAction, AccessibleValue
{
- protected AccessibleAWTButton() { }
+ protected AccessibleAWTButton()
+ {
+ // Do nothing here.
+ }
/* (non-Javadoc)
* @see javax.accessibility.AccessibleAction#getAccessibleActionCount()
@@ -429,9 +431,18 @@ paramString()
+ getWidth () + "x" + getHeight () + ",label=" + getLabel ();
}
+/**
+ * Gets the AccessibleContext associated with this <code>Button</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
public AccessibleContext getAccessibleContext()
{
- return new AccessibleAWTButton();
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTButton();
+ return accessibleContext;
}
/**
diff --git a/libjava/java/awt/Canvas.java b/libjava/java/awt/Canvas.java
index d177c9b7d7a..e223d9eae77 100644
--- a/libjava/java/awt/Canvas.java
+++ b/libjava/java/awt/Canvas.java
@@ -54,8 +54,8 @@ import javax.accessibility.AccessibleRole;
* full-scale custom components.
*
* @author Original author unknown
- * @author Tom Tromey <tromey@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Tom Tromey (tromey@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.0
*/
@@ -174,10 +174,7 @@ public class Canvas
{
/* Create the context if this is the first request */
if (accessibleContext == null)
- {
- /* Create the context */
- accessibleContext = new AccessibleAWTCanvas();
- }
+ accessibleContext = new AccessibleAWTCanvas();
return accessibleContext;
}
diff --git a/libjava/java/awt/Checkbox.java b/libjava/java/awt/Checkbox.java
index 04ace46cabe..2a8b62afd05 100644
--- a/libjava/java/awt/Checkbox.java
+++ b/libjava/java/awt/Checkbox.java
@@ -1,5 +1,5 @@
/* Checkbox.java -- An AWT checkbox widget
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,6 +48,7 @@ import javax.accessibility.AccessibleAction;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
/**
@@ -55,7 +56,7 @@ import javax.accessibility.AccessibleValue;
* or more Checkboxes can be grouped by a CheckboxGroup.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
*/
public class Checkbox extends Component
implements ItemSelectable, Accessible, Serializable
@@ -94,13 +95,42 @@ private boolean state;
// The list of listeners for this object.
private transient ItemListener item_listeners;
-protected class AccessibleAWTCheckBox
+ /*
+ * The number used to generate the name returned by getName.
+ */
+ private static transient long next_checkbox_number;
+
+/**
+ * This class provides accessibility support for the
+ * checkbox.
+ *
+ * @author Jerry Quinn (jlquinn@optonline.net)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ */
+protected class AccessibleAWTCheckbox
extends AccessibleAWTComponent
implements ItemListener, AccessibleAction, AccessibleValue
{
-
+ /**
+ * Serialization constant to match JDK 1.5
+ */
+ private static final long serialVersionUID = 7881579233144754107L;
+
+ /**
+ * Default constructor which simply calls the
+ * super class for generic component accessibility
+ * handling.
+ */
+ public AccessibleAWTCheckbox()
+ {
+ super();
+ }
- /* (non-Javadoc)
+ /**
+ * Captures changes to the state of the checkbox and
+ * fires appropriate accessible property change events.
+ *
+ * @param event the event fired.
* @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
*/
public void itemStateChanged(ItemEvent event)
@@ -110,58 +140,121 @@ protected class AccessibleAWTCheckBox
state ? AccessibleState.CHECKED : null);
}
+ /**
+ * Returns an implementation of the <code>AccessibleAction</code>
+ * interface for this accessible object. In this case, the
+ * current instance is simply returned (with a more appropriate
+ * type), as it also implements the accessible action as well as
+ * the context.
+ *
+ * @return the accessible action associated with this context.
+ * @see javax.accessibility.AccessibleAction
+ */
public AccessibleAction getAccessibleAction()
{
return this;
}
+ /**
+ * Returns an implementation of the <code>AccessibleValue</code>
+ * interface for this accessible object. In this case, the
+ * current instance is simply returned (with a more appropriate
+ * type), as it also implements the accessible value as well as
+ * the context.
+ *
+ * @return the accessible value associated with this context.
+ * @see javax.accessibility.AccessibleValue
+ */
public AccessibleValue getAccessibleValue()
{
return this;
}
- /* (non-Javadoc)
+ /*
+ * The following methods are implemented in the JDK (up to
+ * 1.5) as stubs. We do likewise here.
+ */
+
+ /**
+ * Returns the number of actions associated with this accessible
+ * object. This default implementation returns 0.
+ *
+ * @return the number of accessible actions available.
* @see javax.accessibility.AccessibleAction#getAccessibleActionCount()
*/
public int getAccessibleActionCount()
{
- // 1.4.1 does this
+ // 1.4.1 and 1.5 do this
return 0;
}
- /* (non-Javadoc)
+ /**
+ * Returns a description of the action with the supplied id.
+ * This default implementation always returns null.
+ *
+ * @param i the id of the action whose description should be
+ * retrieved.
+ * @return a <code>String</code> describing the action.
* @see javax.accessibility.AccessibleAction#getAccessibleActionDescription(int)
*/
public String getAccessibleActionDescription(int i)
{
+ // 1.5 does this
return null;
}
- /* (non-Javadoc)
+ /**
+ * Executes the action with the specified id. This
+ * default implementation simply returns false.
+ *
+ * @param i the id of the action to perform.
+ * @return true if the action was performed.
* @see javax.accessibility.AccessibleAction#doAccessibleAction(int)
*/
public boolean doAccessibleAction(int i)
{
+ // 1.5 does this
return false;
}
- /* (non-Javadoc)
+ /**
+ * Returns the current value of this accessible object.
+ * If no value has been set, null is returned. This
+ * default implementation always returns null, regardless.
+ *
+ * @return the numeric value of this object, or null if
+ * no value has been set.
* @see javax.accessibility.AccessibleValue#getCurrentAccessibleValue()
*/
public Number getCurrentAccessibleValue()
{
+ // 1.5 does this
return null;
}
- /* (non-Javadoc)
+ /**
+ * Sets the current value of this accessible object
+ * to that supplied. In this default implementation,
+ * the value is never set and the method always returns
+ * false.
+ *
+ * @param number the new accessible value.
+ * @return true if the value was set.
* @see javax.accessibility.AccessibleValue#setCurrentAccessibleValue(java.lang.Number)
*/
public boolean setCurrentAccessibleValue(Number number)
{
+ // 1.5 does this
return false;
}
- /* (non-Javadoc)
+ /**
+ * Returns the minimum acceptable accessible value used
+ * by this object, or null if no minimum value exists.
+ * This default implementation always returns null.
+ *
+ * @return the minimum acceptable accessible value, or null
+ * if there is no minimum.
* @see javax.accessibility.AccessibleValue#getMinimumAccessibleValue()
*/
public Number getMinimumAccessibleValue()
@@ -169,7 +262,13 @@ protected class AccessibleAWTCheckBox
return null;
}
- /* (non-Javadoc)
+ /**
+ * Returns the maximum acceptable accessible value used
+ * by this object, or null if no maximum value exists.
+ * This default implementation always returns null.
+ *
+ * @return the maximum acceptable accessible value, or null
+ * if there is no maximum.
* @see javax.accessibility.AccessibleValue#getMaximumAccessibleValue()
*/
public Number getMaximumAccessibleValue()
@@ -177,11 +276,35 @@ protected class AccessibleAWTCheckBox
return null;
}
+ /**
+ * Returns the role of this accessible object.
+ *
+ * @return the instance of <code>AccessibleRole</code>,
+ * which describes this object.
+ * @see javax.accessibility.AccessibleRole
+ */
public AccessibleRole getAccessibleRole()
{
return AccessibleRole.CHECK_BOX;
}
+ /**
+ * Returns the state set of this accessible object.
+ *
+ * @return a set of <code>AccessibleState</code>s
+ * which represent the current state of the
+ * accessible object.
+ * @see javax.accessibility.AccessibleState
+ * @see javax.accessibility.AccessibleStateSet
+ */
+ public AccessibleStateSet getAccessibleStateSet()
+ {
+ AccessibleStateSet set = super.getAccessibleStateSet();
+ if (state)
+ set.add(AccessibleState.CHECKED);
+ return set;
+ }
+
}
/*************************************************************************/
@@ -490,11 +613,36 @@ paramString()
+ "," + super.paramString());
}
+/**
+ * Gets the AccessibleContext associated with this <code>Checkbox</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
public AccessibleContext getAccessibleContext()
{
- AccessibleAWTCheckBox ac = new AccessibleAWTCheckBox();
- addItemListener(ac);
- return ac;
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ {
+ AccessibleAWTCheckbox ac = new AccessibleAWTCheckbox();
+ accessibleContext = ac;
+ addItemListener(ac);
+ }
+ return accessibleContext;
}
-} // class Checkbox
+ /**
+ * Generate a unique name for this checkbox.
+ *
+ * @return A unique name for this checkbox.
+ */
+ String generateName()
+ {
+ return "checkbox" + getUniqueLong();
+ }
+
+ private static synchronized long getUniqueLong()
+ {
+ return next_checkbox_number++;
+ }
+}
diff --git a/libjava/java/awt/CheckboxGroup.java b/libjava/java/awt/CheckboxGroup.java
index 52af1903a9c..d5d22688ee3 100644
--- a/libjava/java/awt/CheckboxGroup.java
+++ b/libjava/java/awt/CheckboxGroup.java
@@ -1,5 +1,5 @@
/* CheckboxGroup.java -- A grouping class for checkboxes.
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.awt;
* one checkbox in the group can be selected at any one time.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
*/
public class CheckboxGroup implements java.io.Serializable
{
diff --git a/libjava/java/awt/CheckboxMenuItem.java b/libjava/java/awt/CheckboxMenuItem.java
index ab4cb60f03c..d5e4ef511fe 100644
--- a/libjava/java/awt/CheckboxMenuItem.java
+++ b/libjava/java/awt/CheckboxMenuItem.java
@@ -1,5 +1,5 @@
/* CheckboxMenuItem.java -- A menu option with a checkbox on it.
- Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,14 +43,20 @@ import java.awt.event.ItemListener;
import java.awt.peer.CheckboxMenuItemPeer;
import java.util.EventListener;
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleAction;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleValue;
+
/**
* This class implements a menu item that has a checkbox on it indicating
* the selected state of some option.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
*/
-public class CheckboxMenuItem extends MenuItem implements ItemSelectable
+public class CheckboxMenuItem extends MenuItem
+ implements ItemSelectable, Accessible
{
/*
@@ -268,6 +274,14 @@ processItemEvent(ItemEvent event)
void
dispatchEventImpl(AWTEvent e)
{
+ if (e instanceof ItemEvent)
+ {
+ synchronized (this)
+ {
+ state = (((ItemEvent) e).getStateChange() == ItemEvent.SELECTED);
+ }
+ }
+
if (e.id <= ItemEvent.ITEM_LAST
&& e.id >= ItemEvent.ITEM_FIRST
&& (item_listeners != null
@@ -315,5 +329,27 @@ paramString()
{
return (ItemListener[]) getListeners (ItemListener.class);
}
+
+
+ protected class AccessibleAWTCheckboxMenuItem extends AccessibleAWTMenuItem
+ implements AccessibleAction, AccessibleValue
+ {
+ // I think the base class provides the necessary implementation
+ }
+
+ /**
+ * Gets the AccessibleContext associated with this <code>CheckboxMenuItem</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTCheckboxMenuItem();
+ return accessibleContext;
+ }
+
} // class CheckboxMenuItem
diff --git a/libjava/java/awt/Choice.java b/libjava/java/awt/Choice.java
index 89e91ca78b8..c6a532a5b37 100644
--- a/libjava/java/awt/Choice.java
+++ b/libjava/java/awt/Choice.java
@@ -45,6 +45,7 @@ import java.io.Serializable;
import java.util.EventListener;
import java.util.Vector;
+import javax.accessibility.Accessible;
import javax.accessibility.AccessibleAction;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
@@ -54,7 +55,8 @@ import javax.accessibility.AccessibleRole;
*
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
-public class Choice extends Component implements ItemSelectable, Serializable
+public class Choice extends Component
+ implements ItemSelectable, Serializable, Accessible
{
/*
@@ -83,23 +85,65 @@ private int selectedIndex = -1;
// Listener chain
private ItemListener item_listeners;
+/**
+ * This class provides accessibility support for the
+ * combo box.
+ *
+ * @author Jerry Quinn (jlquinn@optonline.net)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ */
protected class AccessibleAWTChoice
- extends Component.AccessibleAWTComponent
- implements AccessibleAction
+ extends AccessibleAWTComponent
+ implements AccessibleAction
{
+
+ /**
+ * Serialization constant to match JDK 1.5
+ */
+ private static final long serialVersionUID = 7175603582428509322L;
+
+ /**
+ * Default constructor which simply calls the
+ * super class for generic component accessibility
+ * handling.
+ */
+ public AccessibleAWTChoice()
+ {
+ super();
+ }
+
+ /**
+ * Returns an implementation of the <code>AccessibleAction</code>
+ * interface for this accessible object. In this case, the
+ * current instance is simply returned (with a more appropriate
+ * type), as it also implements the accessible action as well as
+ * the context.
+ *
+ * @return the accessible action associated with this context.
+ * @see javax.accessibility.AccessibleAction
+ */
public AccessibleAction getAccessibleAction()
{
return this;
}
- // FIXME: I think this is right, but should be checked by someone who
- // knows better.
+ /**
+ * Returns the role of this accessible object.
+ *
+ * @return the instance of <code>AccessibleRole</code>,
+ * which describes this object.
+ * @see javax.accessibility.AccessibleRole
+ */
public AccessibleRole getAccessibleRole()
{
- return AccessibleRole.POPUP_MENU;
+ return AccessibleRole.COMBO_BOX;
}
- /* (non-Javadoc)
+ /**
+ * Returns the number of actions associated with this accessible
+ * object. In this case, it is the number of choices available.
+ *
+ * @return the number of choices available.
* @see javax.accessibility.AccessibleAction#getAccessibleActionCount()
*/
public int getAccessibleActionCount()
@@ -107,7 +151,14 @@ private ItemListener item_listeners;
return pItems.size();
}
- /* (non-Javadoc)
+ /**
+ * Returns a description of the action with the supplied id.
+ * In this case, it is the text used in displaying the particular
+ * choice on-screen.
+ *
+ * @param i the id of the choice whose description should be
+ * retrieved.
+ * @return the <code>String</code> used to describe the choice.
* @see javax.accessibility.AccessibleAction#getAccessibleActionDescription(int)
*/
public String getAccessibleActionDescription(int i)
@@ -115,7 +166,13 @@ private ItemListener item_listeners;
return (String) pItems.get(i);
}
- /* (non-Javadoc)
+ /**
+ * Executes the action with the specified id. In this case,
+ * calling this method provides the same behaviour as would
+ * choosing a choice from the list in a visual manner.
+ *
+ * @param i the id of the choice to select.
+ * @return true if a valid choice was specified.
* @see javax.accessibility.AccessibleAction#doAccessibleAction(int)
*/
public boolean doAccessibleAction(int i)
@@ -564,8 +621,17 @@ paramString()
return (ItemListener[]) getListeners (ItemListener.class);
}
+ /**
+ * Gets the AccessibleContext associated with this <code>Choice</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
public AccessibleContext getAccessibleContext()
{
- return new AccessibleAWTChoice();
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTChoice();
+ return accessibleContext;
}
} // class Choice
diff --git a/libjava/java/awt/Color.java b/libjava/java/awt/Color.java
index c32438521be..c00aa9da038 100644
--- a/libjava/java/awt/Color.java
+++ b/libjava/java/awt/Color.java
@@ -1,5 +1,5 @@
/* Color.java -- represents a color in Java
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ import java.io.Serializable;
* <a href="http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html">
* http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html</a>.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ColorSpace
* @see AlphaComposite
* @since 1.0
diff --git a/libjava/java/awt/ColorPaintContext.java b/libjava/java/awt/ColorPaintContext.java
index 9fdfe61962d..3e3bac48280 100644
--- a/libjava/java/awt/ColorPaintContext.java
+++ b/libjava/java/awt/ColorPaintContext.java
@@ -1,5 +1,5 @@
/* ColorPaintContext.java -- context for painting solid colors
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.image.Raster;
* a raster scan with the given color. However, it is not yet completely
* implemented.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
class ColorPaintContext implements PaintContext
{
diff --git a/libjava/java/awt/Component.java b/libjava/java/awt/Component.java
index cb47f777acb..847a31da4b6 100644
--- a/libjava/java/awt/Component.java
+++ b/libjava/java/awt/Component.java
@@ -140,7 +140,7 @@ import javax.accessibility.AccessibleStateSet;
* present but commented out.
*
* @author original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status still missing 1.4 support
*/
@@ -1080,7 +1080,7 @@ public abstract class Component
*
* @return the locale for this component
* @throws IllegalComponentStateException if it has no locale or parent
- * @see setLocale(Locale)
+ * @see #setLocale(Locale)
* @since 1.1
*/
public Locale getLocale()
@@ -1362,7 +1362,7 @@ public abstract class Component
peer.setBounds (x, y, width, height);
// Erase old bounds and repaint new bounds for lightweights.
- if (isLightweight())
+ if (isLightweight() && isShowing ())
{
boolean shouldRepaintParent = false;
boolean shouldRepaintSelf = false;
@@ -1386,13 +1386,16 @@ public abstract class Component
repaint();
}
- if (oldx != x || oldy != y)
+ // Only post event if this component is visible and has changed size.
+ if (isShowing ()
+ && (oldx != x || oldy != y))
{
ComponentEvent ce = new ComponentEvent(this,
ComponentEvent.COMPONENT_MOVED);
getToolkit().getSystemEventQueue().postEvent(ce);
}
- if (oldwidth != width || oldheight != height)
+ if (isShowing ()
+ && (oldwidth != width || oldheight != height))
{
ComponentEvent ce = new ComponentEvent(this,
ComponentEvent.COMPONENT_RESIZED);
@@ -1955,7 +1958,7 @@ public abstract class Component
* @see Graphics#drawImage(Image, int, int, ImageObserver)
* @see Graphics#drawImage(Image, int, int, int, int, Color, ImageObserver)
* @see Graphics#drawImage(Image, int, int, int, int, ImageObserver)
- * @see ImageObserver#update(Image, int, int, int, int, int)
+ * @see ImageObserver#imageUpdate(Image, int, int, int, int, int)
*/
public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h)
{
@@ -2097,7 +2100,7 @@ public abstract class Component
* @param observer the observer to notify of image loading progress
* @return the image observer flags indicating the status of the load
* @see #prepareImage(Image, int, int, ImageObserver)
- * @see #Toolkit#checkImage(Image, int, int, ImageObserver)
+ * @see Toolkit#checkImage(Image, int, int, ImageObserver)
* @throws NullPointerException if image is null
*/
public int checkImage(Image image, ImageObserver observer)
@@ -2115,7 +2118,7 @@ public abstract class Component
* @param observer the observer to notify of image loading progress
* @return the image observer flags indicating the status of the load
* @see #prepareImage(Image, int, int, ImageObserver)
- * @see #Toolkit#checkImage(Image, int, int, ImageObserver)
+ * @see Toolkit#checkImage(Image, int, int, ImageObserver)
*/
public int checkImage(Image image, int width, int height,
ImageObserver observer)
@@ -2134,7 +2137,7 @@ public abstract class Component
* @param ignoreRepaint the new setting for ignoring repaint events
* @see #getIgnoreRepaint()
* @see BufferStrategy
- * @see GraphicsDevice.setFullScreenWindow(Window)
+ * @see GraphicsDevice#setFullScreenWindow(Window)
* @since 1.4
*/
public void setIgnoreRepaint(boolean ignoreRepaint)
@@ -2250,9 +2253,9 @@ public abstract class Component
* calls {@link #postEvent}.
*
* @param e the event to deliver
- * @deprecated use {@link #dispatchEvent(AWTEvent)} instead
+ * @deprecated use {@link #dispatchEvent (AWTEvent)} instead
*/
- public void deliverEvent(Event e)
+ public void deliverEvent (Event e)
{
postEvent (e);
}
@@ -2284,7 +2287,7 @@ public abstract class Component
* @return true if the event was handled, false otherwise
* @deprecated use {@link #dispatchEvent(AWTEvent)} instead
*/
- public boolean postEvent(Event e)
+ public boolean postEvent (Event e)
{
boolean handled = handleEvent (e);
@@ -3178,8 +3181,8 @@ public abstract class Component
* AWT 1.0 event handler.
*
* This method calls one of the event-specific handler methods. For
- * example for key events, either {@link #keyDown (Event evt, int
- * key)} or {@link keyUp (Event evt, int key)} is called. A derived
+ * example for key events, either {@link #keyDown(Event,int)}
+ * or {@link #keyUp(Event,int)} is called. A derived
* component can override one of these event-specific methods if it
* only needs to handle certain event types. Otherwise it can
* override handleEvent itself and handle any event.
@@ -3188,7 +3191,7 @@ public abstract class Component
* @return true if the event was handled, false otherwise
* @deprecated use {@link #processEvent(AWTEvent)} instead
*/
- public boolean handleEvent(Event evt)
+ public boolean handleEvent (Event evt)
{
switch (evt.id)
{
@@ -3405,9 +3408,15 @@ public abstract class Component
*/
public void removeNotify()
{
- if (peer != null)
- peer.dispose();
+ // We null our peer field before disposing of it, such that if we're
+ // not the event dispatch thread and the dispatch thread is awoken by
+ // the dispose call, there will be no race checking the peer's null
+ // status.
+
+ ComponentPeer tmp = peer;
peer = null;
+ if (tmp != null)
+ tmp.dispose();
}
/**
@@ -3469,8 +3478,8 @@ public abstract class Component
* Specify whether this component can receive focus. This method also
* sets the {@link #isFocusTraversableOverridden} field to 1, which
* appears to be the undocumented way {@link
- * DefaultFocusTraversalPolicy#accept()} determines whether to respect
- * the {@link #isFocusable()} method of the component.
+ * DefaultFocusTraversalPolicy#accept(Component)} determines whether to
+ * respect the {@link #isFocusable()} method of the component.
*
* @param focusable the new focusable status
* @since 1.4
@@ -3484,10 +3493,10 @@ public abstract class Component
/**
* Sets the focus traversal keys for one of the three focus
- * traversal directions supported by Components: {@link
- * #KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS}, {@link
- * #KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS}, or {@link
- * #KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS}. Normally, the
+ * traversal directions supported by Components:
+ * {@link #KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS},
+ * {@link #KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS}, or
+ * {@link #KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS}. Normally, the
* default values should match the operating system's native
* choices. To disable a given traversal, use
* <code>Collections.EMPTY_SET</code>. The event dispatcher will
@@ -3716,7 +3725,7 @@ public abstract class Component
* receives a FOCUS_GAINED event.
*
* The behaviour of this method is platform-dependent.
- * {@link #requestFocusInWindow} should be used instead.
+ * {@link #requestFocusInWindow()} should be used instead.
*
* @see #requestFocusInWindow ()
* @see FocusEvent
@@ -3791,7 +3800,7 @@ public abstract class Component
* receives a FOCUS_GAINED event.
*
* The behaviour of this method is platform-dependent.
- * {@link #requestFocusInWindow} should be used instead.
+ * {@link #requestFocusInWindow()} should be used instead.
*
* If the return value is false, the request is guaranteed to fail.
* If the return value is true, the request will succeed unless it
@@ -3855,10 +3864,10 @@ public abstract class Component
currentFocusOwner));
}
else
- eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary));
+ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary));
+ }
}
}
- }
else
// FIXME: need to add a focus listener to our top-level
// ancestor, so that we can post this event when it becomes
@@ -3973,10 +3982,10 @@ public abstract class Component
currentFocusOwner));
}
else
- eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary));
+ eq.postEvent (new FocusEvent(this, FocusEvent.FOCUS_GAINED, temporary));
+ }
}
}
- }
else
return false;
}
@@ -4069,8 +4078,8 @@ public abstract class Component
* However, if this is a Window, the default focus owner in the
* window in the current focus cycle is focused instead.
*
- * @see #requestFocus ()
- * @see #isFocusCycleRoot ()
+ * @see #requestFocus()
+ * @see #isFocusCycleRoot(Container)
* @since 1.4
*/
public void transferFocusUpCycle ()
@@ -4940,7 +4949,7 @@ p * <li>the set of backward traversal keys
/**
* This class provides accessibility support for subclasses of container.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4
*/
@@ -5468,7 +5477,7 @@ p * <li>the set of backward traversal keys
/**
* Converts component changes into property changes.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4
*/
@@ -5525,7 +5534,7 @@ p * <li>the set of backward traversal keys
/**
* Converts focus changes into property changes.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4
*/
@@ -5565,7 +5574,7 @@ p * <li>the set of backward traversal keys
/**
* This class provides support for blitting offscreen surfaces.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @XXX Shell class, to allow compilation. This needs documentation and
* correct implementation.
@@ -5601,7 +5610,7 @@ p * <li>the set of backward traversal keys
* This class provides support for flipping component buffers. It is only
* designed for use by Canvas and Window.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @XXX Shell class, to allow compilation. This needs documentation and
* correct implementation.
diff --git a/libjava/java/awt/ComponentOrientation.java b/libjava/java/awt/ComponentOrientation.java
index 02cf5967ff2..8897470da48 100644
--- a/libjava/java/awt/ComponentOrientation.java
+++ b/libjava/java/awt/ComponentOrientation.java
@@ -67,7 +67,7 @@ import java.util.ResourceBundle;
* of isHorizontal() and isLeftToRight() rather than comparing objects with
* ==, especially since more constants may be added in the future.
*
- * @author Bryce McKinlay <bryce@albatross.co.nz>
+ * @author Bryce McKinlay (bryce@albatross.co.nz)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/Composite.java b/libjava/java/awt/Composite.java
index de873981652..c636921cc69 100644
--- a/libjava/java/awt/Composite.java
+++ b/libjava/java/awt/Composite.java
@@ -1,5 +1,5 @@
/* Composite.java -- graphics formed from composite layers
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import java.awt.image.ColorModel;
* check on custom objects, <code>readDisplayPixels</code>, to prevent leaking
* restricted information graphically.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AlphaComposite
* @see CompositeContext
* @see Graphics2D#setComposite(Composite)
diff --git a/libjava/java/awt/CompositeContext.java b/libjava/java/awt/CompositeContext.java
index dc3448b114b..301e7cff995 100644
--- a/libjava/java/awt/CompositeContext.java
+++ b/libjava/java/awt/CompositeContext.java
@@ -1,5 +1,5 @@
/* Composite.java -- the context for compositing graphics layers
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.awt.image.WritableRaster;
* This interface provides an optimized environment for compositing graphics.
* Several such contexts may exist for a given <code>Composite</code> object.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Composite
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/java/awt/Container.java b/libjava/java/awt/Container.java
index 6c835d23d8e..cd7fec02ecb 100644
--- a/libjava/java/awt/Container.java
+++ b/libjava/java/awt/Container.java
@@ -1,5 +1,5 @@
/* Container.java -- parent container class in AWT
- Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation
+ Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation
This file is part of GNU Classpath.
@@ -67,7 +67,7 @@ import javax.swing.SwingUtilities;
* list or bottom of the stacking order.
*
* @author original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*
* @since 1.0
*
@@ -387,11 +387,14 @@ public class Container extends Component
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);
+ if (isShowing ())
+ {
+ // Post event to notify of adding the component.
+ ContainerEvent ce = new ContainerEvent(this,
+ ContainerEvent.COMPONENT_ADDED,
+ comp);
+ getToolkit().getSystemEventQueue().postEvent(ce);
+ }
}
}
@@ -419,11 +422,14 @@ public class Container extends Component
r.parent = null;
- // Post event to notify of adding the container.
- ContainerEvent ce = new ContainerEvent(this,
- ContainerEvent.COMPONENT_REMOVED,
- r);
- getToolkit().getSystemEventQueue().postEvent(ce);
+ if (isShowing ())
+ {
+ // Post event to notify of removing the component.
+ ContainerEvent ce = new ContainerEvent(this,
+ ContainerEvent.COMPONENT_REMOVED,
+ r);
+ getToolkit().getSystemEventQueue().postEvent(ce);
+ }
}
}
@@ -1046,11 +1052,14 @@ public class Container extends Component
*/
protected String paramString()
{
- String param = super.paramString();
- if (layoutMgr != null)
- param = param + ",layout=" + layoutMgr.getClass().getName();
+ if (layoutMgr == null)
+ return super.paramString();
- return param;
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",layout=");
+ sb.append(layoutMgr.getClass().getName());
+ return sb.toString();
}
/**
@@ -1677,32 +1686,48 @@ public class Container extends Component
static class GfxPaintVisitor extends GfxVisitor
{
- public void visit(Component c, Graphics gfx) { c.paint(gfx); }
public static final GfxVisitor INSTANCE = new GfxPaintVisitor();
+
+ public void visit(Component c, Graphics gfx)
+ {
+ c.paint(gfx);
+ }
}
static class GfxPrintVisitor extends GfxVisitor
{
- public void visit(Component c, Graphics gfx) { c.print(gfx); }
public static final GfxVisitor INSTANCE = new GfxPrintVisitor();
+
+ public void visit(Component c, Graphics gfx)
+ {
+ c.print(gfx);
+ }
}
static class GfxPaintAllVisitor extends GfxVisitor
{
- public void visit(Component c, Graphics gfx) { c.paintAll(gfx); }
public static final GfxVisitor INSTANCE = new GfxPaintAllVisitor();
+
+ public void visit(Component c, Graphics gfx)
+ {
+ c.paintAll(gfx);
+ }
}
static class GfxPrintAllVisitor extends GfxVisitor
{
- public void visit(Component c, Graphics gfx) { c.printAll(gfx); }
public static final GfxVisitor INSTANCE = new GfxPrintAllVisitor();
+
+ public void visit(Component c, Graphics gfx)
+ {
+ c.printAll(gfx);
+ }
}
/**
* This class provides accessibility support for subclasses of container.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*
* @since 1.3
*/
@@ -1791,7 +1816,7 @@ public class Container extends Component
* This class fires a <code>PropertyChange</code> listener, if registered,
* when children are added or removed from the enclosing accessible object.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*
* @since 1.3
*/
diff --git a/libjava/java/awt/ContainerOrderFocusTraversalPolicy.java b/libjava/java/awt/ContainerOrderFocusTraversalPolicy.java
index fa7ab4ad69a..91153e69935 100644
--- a/libjava/java/awt/ContainerOrderFocusTraversalPolicy.java
+++ b/libjava/java/awt/ContainerOrderFocusTraversalPolicy.java
@@ -1,5 +1,5 @@
/* ContainerOrderFocusTraversalPolicy.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import java.io.Serializable;
* can override these acceptance criteria by overriding accept.
*
* @author Michael Koch
- * @author Thomas Fitzsimmons <fitzsim@redhat.com>
+ * @author Thomas Fitzsimmons (fitzsim@redhat.com)
* @since 1.4
*/
public class ContainerOrderFocusTraversalPolicy extends FocusTraversalPolicy
diff --git a/libjava/java/awt/DefaultFocusTraversalPolicy.java b/libjava/java/awt/DefaultFocusTraversalPolicy.java
index f49f386a19c..f9bd647a0fe 100644
--- a/libjava/java/awt/DefaultFocusTraversalPolicy.java
+++ b/libjava/java/awt/DefaultFocusTraversalPolicy.java
@@ -1,5 +1,5 @@
/* DefaultFocusTraversalPolicy.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,7 +55,7 @@ package java.awt;
* A Component's focusability is independent of the focusability of
* its peer.
*
- * @author Thomas Fitzsimmons <fitzsim@redhat.com>
+ * @author Thomas Fitzsimmons (fitzsim@redhat.com)
* @since 1.4
*/
public class DefaultFocusTraversalPolicy
diff --git a/libjava/java/awt/DefaultKeyboardFocusManager.java b/libjava/java/awt/DefaultKeyboardFocusManager.java
index 800b01d4639..9c94d8a220b 100644
--- a/libjava/java/awt/DefaultKeyboardFocusManager.java
+++ b/libjava/java/awt/DefaultKeyboardFocusManager.java
@@ -226,7 +226,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager
Component focusOwner = getGlobalPermanentFocusOwner ();
if (focusOwner != null)
- processKeyEvent (focusOwner, (KeyEvent) e);
+ processKeyEvent (focusOwner, (KeyEvent) e);
if (e.isConsumed ())
return true;
diff --git a/libjava/java/awt/Dialog.java b/libjava/java/awt/Dialog.java
index 6bfb80c8563..8248df3c70d 100644
--- a/libjava/java/awt/Dialog.java
+++ b/libjava/java/awt/Dialog.java
@@ -1,5 +1,5 @@
/* Dialog.java -- An AWT dialog box
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,11 +40,16 @@ package java.awt;
import java.awt.peer.DialogPeer;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
/**
* A dialog box widget class.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@redhat.com)
*/
public class Dialog extends Window
{
@@ -511,5 +516,38 @@ paramString()
this.undecorated = undecorated;
}
+
+ protected class AccessibleAWTDialog extends AccessibleAWTWindow
+ {
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.DIALOG;
+ }
+
+ public AccessibleStateSet getAccessibleState()
+ {
+ AccessibleStateSet states = super.getAccessibleStateSet();
+ if (isResizable())
+ states.add(AccessibleState.RESIZABLE);
+ if (isModal())
+ states.add(AccessibleState.MODAL);
+ return states;
+ }
+ }
+
+ /**
+ * Gets the AccessibleContext associated with this <code>Dialog</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTDialog();
+ return accessibleContext;
+ }
+
} // class Dialog
diff --git a/libjava/java/awt/Dimension.java b/libjava/java/awt/Dimension.java
index 282291d7ca7..270e04e70d1 100644
--- a/libjava/java/awt/Dimension.java
+++ b/libjava/java/awt/Dimension.java
@@ -53,9 +53,9 @@ import java.io.Serializable;
* manner, it is your own fault when you get invalid results. Also, this
* class is not threadsafe.
*
- * @author Per Bothner <bothner@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Component
* @see LayoutManager
* @since 1.0
diff --git a/libjava/java/awt/DisplayMode.java b/libjava/java/awt/DisplayMode.java
index 533ab5ef482..a9fac604d0e 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, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.awt;
* device configuration. They are device dependent, and may not always be
* available.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see GraphicsDevice
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/awt/EventDispatchThread.java b/libjava/java/awt/EventDispatchThread.java
index 0803ff675c8..d55f0f5ea45 100644
--- a/libjava/java/awt/EventDispatchThread.java
+++ b/libjava/java/awt/EventDispatchThread.java
@@ -53,7 +53,6 @@ class EventDispatchThread extends Thread
setName("AWT-EventQueue-" + ++dispatchThreadNum);
this.queue = queue;
setPriority(NORM_PRIORITY + 1);
- start();
}
public void run()
@@ -63,11 +62,6 @@ class EventDispatchThread extends Thread
try
{
AWTEvent evt = queue.getNextEvent();
- if (isInterrupted ())
- {
- // We are interrupted when we should finish executing
- return;
- }
KeyboardFocusManager manager;
manager = KeyboardFocusManager.getCurrentKeyboardFocusManager ();
@@ -80,6 +74,11 @@ class EventDispatchThread extends Thread
if (!manager.dispatchEvent (evt))
queue.dispatchEvent(evt);
}
+ catch (ThreadDeath death)
+ {
+ // If someone wants to kill us, let them.
+ return;
+ }
catch (InterruptedException ie)
{
// We are interrupted when we should finish executing
diff --git a/libjava/java/awt/EventQueue.java b/libjava/java/awt/EventQueue.java
index fd1c8062d71..a2356cc6393 100644
--- a/libjava/java/awt/EventQueue.java
+++ b/libjava/java/awt/EventQueue.java
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
+/* EventQueue.java --
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation
This file is part of GNU Classpath.
@@ -37,9 +38,12 @@ exception statement from your version. */
package java.awt;
+import gnu.java.awt.ClasspathToolkit;
+
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.InvocationEvent;
+import java.awt.event.WindowEvent;
import java.lang.reflect.InvocationTargetException;
import java.util.EmptyStackException;
@@ -71,6 +75,35 @@ public class EventQueue
private long lastWhen = System.currentTimeMillis();
private EventDispatchThread dispatchThread = new EventDispatchThread(this);
+ private boolean shutdown = false;
+
+ private long lastNativeQueueAccess = 0;
+ private long humanLatencyThreshold = 100;
+
+ synchronized void setShutdown (boolean b)
+ {
+ shutdown = b;
+ }
+
+ synchronized boolean isShutdown ()
+ {
+ if (shutdown)
+ return true;
+
+ // This is the exact self-shutdown condition specified in J2SE:
+ // http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/AWTThreadIssues.html
+
+ if (peekEvent() == null
+ && ((ClasspathToolkit) Toolkit.getDefaultToolkit()).nativeQueueEmpty())
+ {
+ Frame[] frames = Frame.getFrames();
+ for (int i = 0; i < frames.length; ++i)
+ if (frames[i].isDisplayable())
+ return false;
+ return true;
+ }
+ return false;
+ }
/**
* Initializes a new instance of <code>EventQueue</code>.
@@ -93,9 +126,51 @@ public class EventQueue
{
if (next != null)
return next.getNextEvent();
+
+ ClasspathToolkit tk = ((ClasspathToolkit) Toolkit.getDefaultToolkit());
+ long curr = System.currentTimeMillis();
+
+ if (! tk.nativeQueueEmpty() &&
+ (curr - lastNativeQueueAccess > humanLatencyThreshold))
+ {
+ tk.iterateNativeQueue(this, false);
+ lastNativeQueueAccess = curr;
+ }
while (next_in == next_out)
- wait();
+ {
+ // Only the EventDispatchThread associated with the top of the stack is
+ // allowed to get events from the native source; everyone else just
+ // waits on the head of the queue.
+
+ if (isDispatchThread())
+ {
+ // We are not allowed to return null from this method, yet it
+ // is possible that we actually have run out of native events
+ // in the enclosing while() loop, and none of the native events
+ // happened to cause AWT events. We therefore ought to check
+ // the isShutdown() condition here, before risking a "native
+ // wait". If we check it before entering this function we may
+ // wait forever for events after the shutdown condition has
+ // arisen.
+
+ if (isShutdown())
+ throw new InterruptedException();
+
+ tk.iterateNativeQueue(this, true);
+ lastNativeQueueAccess = System.currentTimeMillis();
+ }
+ else
+ {
+ try
+ {
+ wait();
+ }
+ catch (InterruptedException ie)
+ {
+ }
+ }
+ }
AWTEvent res = queue[next_out];
@@ -215,6 +290,22 @@ public class EventQueue
next_out = 0;
next_in = oldQueue.length;
}
+
+ if (dispatchThread == null || !dispatchThread.isAlive())
+ {
+ dispatchThread = new EventDispatchThread(this);
+ dispatchThread.start();
+ }
+
+ // Window events might represent the closing of a window, which
+ // might cause the end of the dispatch thread's life, so we'll wake
+ // it up here to give it a chance to check for shutdown.
+
+ if (!isDispatchThread()
+ || (evt.getID() == WindowEvent.WINDOW_CLOSED)
+ || (evt.getID() == WindowEvent.WINDOW_CLOSING))
+ ((ClasspathToolkit) Toolkit.getDefaultToolkit()).wakeNativeQueue();
+
notify();
}
@@ -386,9 +477,10 @@ public class EventQueue
next_in = 0;
next_out = 0;
- // Tell our EventDispatchThread that it can end execution
- dispatchThread.interrupt ();
+ ((ClasspathToolkit) Toolkit.getDefaultToolkit()).wakeNativeQueue();
+ setShutdown(true);
dispatchThread = null;
+ this.notifyAll();
}
}
}
diff --git a/libjava/java/awt/FileDialog.java b/libjava/java/awt/FileDialog.java
index e345018550a..3e22d02e53d 100644
--- a/libjava/java/awt/FileDialog.java
+++ b/libjava/java/awt/FileDialog.java
@@ -1,5 +1,5 @@
/* FileDialog.java -- A filename selection dialog box
- Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.io.Serializable;
* This class implements a file selection dialog box widget.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
*/
public class FileDialog extends Dialog implements Serializable
{
diff --git a/libjava/java/awt/Font.java b/libjava/java/awt/Font.java
index 4b2ad5a4f9f..c43297759ca 100644
--- a/libjava/java/awt/Font.java
+++ b/libjava/java/awt/Font.java
@@ -1,5 +1,5 @@
/* Font.java -- Font object
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -247,7 +247,10 @@ private static final long serialVersionUID = -4206021311591459213L;
{
tokenval = Integer.parseInt(token);
}
- catch(NumberFormatException e) { ; }
+ catch(NumberFormatException e)
+ {
+ // Ignored.
+ }
if (tokenval != 0)
size = tokenval;
diff --git a/libjava/java/awt/FontFormatException.java b/libjava/java/awt/FontFormatException.java
index 4ab53bbe834..2971e1de892 100644
--- a/libjava/java/awt/FontFormatException.java
+++ b/libjava/java/awt/FontFormatException.java
@@ -1,5 +1,5 @@
/* FontFormatException.java -- the specified font is bad
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* Thrown when a specified font is bad.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Font
* @since 1.3
* @status updated to 1.4
diff --git a/libjava/java/awt/Frame.java b/libjava/java/awt/Frame.java
index 80d2c99ae4d..d180984ab9d 100644
--- a/libjava/java/awt/Frame.java
+++ b/libjava/java/awt/Frame.java
@@ -1,5 +1,5 @@
/* Frame.java -- AWT toplevel window
- Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,8 +39,16 @@ exception statement from your version. */
package java.awt;
import java.awt.peer.FramePeer;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.Vector;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
/**
* This class is a top-level window with a title bar and window
* decorations.
@@ -196,7 +204,7 @@ private String title = "";
*/
private boolean undecorated = false;
-/*
+ /*
* The number used to generate the name returned by getName.
*/
private static transient long next_frame_number;
@@ -209,6 +217,7 @@ public
Frame()
{
this("");
+ noteFrame(this);
}
/**
@@ -224,6 +233,7 @@ Frame(String title)
this.title = title;
// Top-level frames are initially invisible.
visible = false;
+ noteFrame(this);
}
public
@@ -231,6 +241,7 @@ Frame(GraphicsConfiguration gc)
{
super(gc);
visible = false;
+ noteFrame(this);
}
public
@@ -239,6 +250,7 @@ Frame(String title, GraphicsConfiguration gc)
super(gc);
setTitle(title);
visible = false;
+ noteFrame(this);
}
/**
@@ -391,6 +403,17 @@ remove(MenuComponent menu)
/**
* Notifies this frame that it should create its native peer.
*/
+private static void fireDummyEvent()
+{
+ EventQueue.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ // Do nothing here.
+ }
+ });
+}
+
public void
addNotify()
{
@@ -398,6 +421,12 @@ addNotify()
menuBar.addNotify();
if (peer == null)
peer = getToolkit ().createFrame (this);
+
+ // We now know there's a Frame (us) with a live peer, so we can start the
+ // fundamental queue and dispatch thread, by inserting a dummy event.
+ if (parent != null && parent.isDisplayable())
+ fireDummyEvent();
+
super.addNotify();
}
@@ -406,15 +435,21 @@ public void removeNotify()
if (menuBar != null)
menuBar.removeNotify();
super.removeNotify();
+
+ // By now we've been disconnected from the peer, and the peer set to
+ // null. This is formally the same as saying "we just became
+ // un-displayable", so we wake up the event queue with a dummy event to
+ // see if it's time to shut down.
+ fireDummyEvent();
}
-/**
- * Returns a debugging string describing this window.
- *
- * @return A debugging string describing this window.
- */
+ /**
+ * Returns a debugging string describing this window.
+ *
+ * @return A debugging string describing this window.
+ */
protected String paramString ()
-{
+ {
String title = getTitle ();
String resizable = "";
@@ -442,15 +477,43 @@ public void removeNotify()
}
return super.paramString () + ",title=" + title + resizable + state;
+ }
+
+private static ArrayList weakFrames = new ArrayList();
+
+private static void noteFrame(Frame f)
+{
+ weakFrames.add(new WeakReference(f));
}
-public static Frame[]
-getFrames()
+public static Frame[] getFrames()
{
- //Frame[] array = new Frames[frames.size()];
- //return frames.toArray(array);
- String msg = "FIXME: can't be implemented without weak references";
- throw new UnsupportedOperationException(msg);
+ int n = 0;
+ synchronized (weakFrames)
+ {
+ Iterator i = weakFrames.iterator();
+ while (i.hasNext())
+ {
+ WeakReference wr = (WeakReference) i.next();
+ if (wr.get() != null)
+ ++n;
+ }
+ if (n == 0)
+ return new Frame[0];
+ else
+ {
+ Frame[] frames = new Frame[n];
+ n = 0;
+ i = weakFrames.iterator();
+ while (i.hasNext())
+ {
+ WeakReference wr = (WeakReference) i.next();
+ if (wr.get() != null)
+ frames[n++] = (Frame) wr.get();
+ }
+ return frames;
+ }
+ }
}
public void setState (int state)
@@ -549,4 +612,37 @@ getFrames()
{
return next_frame_number++;
}
+
+ protected class AccessibleAWTFrame extends AccessibleAWTWindow
+ {
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.FRAME;
+ }
+
+ public AccessibleStateSet getAccessibleState()
+ {
+ AccessibleStateSet states = super.getAccessibleStateSet();
+ if (isResizable())
+ states.add(AccessibleState.RESIZABLE);
+ if ((state & ICONIFIED) != 0)
+ states.add(AccessibleState.ICONIFIED);
+ return states;
+ }
+ }
+
+ /**
+ * Gets the AccessibleContext associated with this <code>Frame</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTFrame();
+ return accessibleContext;
+ }
+
}
diff --git a/libjava/java/awt/Graphics.java b/libjava/java/awt/Graphics.java
index 8dc703c3274..c1dfbda2a36 100644
--- a/libjava/java/awt/Graphics.java
+++ b/libjava/java/awt/Graphics.java
@@ -1,5 +1,5 @@
/* Graphics.java -- Abstract Java drawing class
- Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.text.AttributedCharacterIterator;
* devices such as the screen or printers.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public abstract class Graphics
{
diff --git a/libjava/java/awt/Graphics2D.java b/libjava/java/awt/Graphics2D.java
index e16c2d8fbef..c845c4c1d3b 100644
--- a/libjava/java/awt/Graphics2D.java
+++ b/libjava/java/awt/Graphics2D.java
@@ -49,7 +49,7 @@ import java.text.AttributedCharacterIterator;
import java.util.Map;
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public abstract class Graphics2D extends Graphics
{
diff --git a/libjava/java/awt/GraphicsConfigTemplate.java b/libjava/java/awt/GraphicsConfigTemplate.java
index 52da16799b7..76cf8b690a4 100644
--- a/libjava/java/awt/GraphicsConfigTemplate.java
+++ b/libjava/java/awt/GraphicsConfigTemplate.java
@@ -1,5 +1,5 @@
/* GraphicsConfigTemplate.java -- a template for selecting configurations
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.io.Serializable;
* one based on various requirements. The resulting configuration has had
* all non-default attributes set as required to meet or exceed the request.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see GraphicsConfiguration
* @see GraphicsDevice
* @since 1.2
diff --git a/libjava/java/awt/GraphicsConfiguration.java b/libjava/java/awt/GraphicsConfiguration.java
index c7d0ed4ac8a..97f687e92e6 100644
--- a/libjava/java/awt/GraphicsConfiguration.java
+++ b/libjava/java/awt/GraphicsConfiguration.java
@@ -53,7 +53,7 @@ import java.awt.image.VolatileImage;
* configuration will have a non-zero relative coordinate system in such
* a case.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Window
* @see Frame
* @see GraphicsEnvironment
diff --git a/libjava/java/awt/GraphicsDevice.java b/libjava/java/awt/GraphicsDevice.java
index 27d3cd67ca0..c01723356b3 100644
--- a/libjava/java/awt/GraphicsDevice.java
+++ b/libjava/java/awt/GraphicsDevice.java
@@ -1,5 +1,5 @@
/* GraphicsDevice.java -- information about a graphics device
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt;
* each device. Also, this allows you to create virtual devices which operate
* over a multi-screen environment.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see GraphicsEnvironment
* @see GraphicsConfiguration
* @since 1.3
diff --git a/libjava/java/awt/GridBagLayout.java b/libjava/java/awt/GridBagLayout.java
index 85fdfb56eaa..0ee996ce715 100644
--- a/libjava/java/awt/GridBagLayout.java
+++ b/libjava/java/awt/GridBagLayout.java
@@ -1,5 +1,5 @@
/* GridBagLayout - Layout manager for components according to GridBagConstraints
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,8 +44,8 @@ import java.util.HashMap;
import java.util.Hashtable;
/**
- * @author Michael Koch <konqueror@gmx.de>
- * @author Jeroen Frijters <jeroen@frijters.net>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Jeroen Frijters (jeroen@frijters.net)
*/
public class GridBagLayout
implements Serializable, LayoutManager2
diff --git a/libjava/java/awt/GridBagLayoutInfo.java b/libjava/java/awt/GridBagLayoutInfo.java
index 6bd7f6787a8..bb919b5570a 100644
--- a/libjava/java/awt/GridBagLayoutInfo.java
+++ b/libjava/java/awt/GridBagLayoutInfo.java
@@ -1,5 +1,5 @@
/* GridBagLayoutInfo -
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
import java.io.Serializable;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
*/
class GridBagLayoutInfo implements Serializable
{
diff --git a/libjava/java/awt/GridLayout.java b/libjava/java/awt/GridLayout.java
index a9e9eac6629..95980e6ca0b 100644
--- a/libjava/java/awt/GridLayout.java
+++ b/libjava/java/awt/GridLayout.java
@@ -52,7 +52,7 @@ import java.io.Serializable;
* horizontal and vertical gaps; these are used as spacing between
* cells.
*
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
public class GridLayout implements LayoutManager, Serializable
diff --git a/libjava/java/awt/HeadlessException.java b/libjava/java/awt/HeadlessException.java
index 4e7ef337f23..e88279aecea 100644
--- a/libjava/java/awt/HeadlessException.java
+++ b/libjava/java/awt/HeadlessException.java
@@ -1,5 +1,5 @@
/* HeadlessException.java -- operation not possible in headless environment
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt;
* This exception is thrown when code dependent on a keyboard, mouse, or
* display is executed in a headless environment.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/IllegalComponentStateException.java b/libjava/java/awt/IllegalComponentStateException.java
index 413ed33a4f9..daa9d17dfde 100644
--- a/libjava/java/awt/IllegalComponentStateException.java
+++ b/libjava/java/awt/IllegalComponentStateException.java
@@ -1,5 +1,5 @@
/* IllegalComponentStateException.java -- bad component state
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt;
* This exception is thrown when the requested operation failed because
* a component was not in the proper state.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class IllegalComponentStateException extends IllegalStateException
diff --git a/libjava/java/awt/Image.java b/libjava/java/awt/Image.java
index 37617719b01..39ab0687301 100644
--- a/libjava/java/awt/Image.java
+++ b/libjava/java/awt/Image.java
@@ -1,5 +1,5 @@
/* Image.java -- superclass for images
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.image.ReplicateScaleFilter;
/**
* This is the abstract superclass of all image objects in Java.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/Insets.java b/libjava/java/awt/Insets.java
index 573005a7689..e818629a0f1 100644
--- a/libjava/java/awt/Insets.java
+++ b/libjava/java/awt/Insets.java
@@ -1,5 +1,5 @@
/* Insets.java -- information about a container border
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,8 +43,8 @@ import java.io.Serializable;
/**
* This class represents the "margin" or space around a container.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status
*/
public class Insets implements Cloneable, Serializable
diff --git a/libjava/java/awt/ItemSelectable.java b/libjava/java/awt/ItemSelectable.java
index ddf77aeb10a..74129fdda98 100644
--- a/libjava/java/awt/ItemSelectable.java
+++ b/libjava/java/awt/ItemSelectable.java
@@ -1,5 +1,5 @@
/* ItemSelectable.java -- items that can be selected
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.awt.event.ItemListener;
* This interface is for objects that can have one or more items selected.
* For example, radio buttons.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/JobAttributes.java b/libjava/java/awt/JobAttributes.java
index b64234dda5f..fc4240d316c 100644
--- a/libjava/java/awt/JobAttributes.java
+++ b/libjava/java/awt/JobAttributes.java
@@ -1,5 +1,5 @@
/* JobAttributes.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* Needs documentation...
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4, lacks documentation
*/
diff --git a/libjava/java/awt/KeyEventDispatcher.java b/libjava/java/awt/KeyEventDispatcher.java
index 95aad8030d1..f9020e74bd3 100644
--- a/libjava/java/awt/KeyEventDispatcher.java
+++ b/libjava/java/awt/KeyEventDispatcher.java
@@ -1,5 +1,5 @@
/* KeyEventDispatcher.java -- dispatches key events
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import java.awt.event.KeyEvent;
* dispatched by other dispatchers. Therefore, it is unnecessary for the user
* to register the focus manager as a dispatcher.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see KeyboardFocusManager#addKeyEventDispatcher(KeyEventDispatcher)
* @see KeyboardFocusManager#removeKeyEventDispatcher(KeyEventDispatcher)
* @since 1.4
diff --git a/libjava/java/awt/KeyEventPostProcessor.java b/libjava/java/awt/KeyEventPostProcessor.java
index 5069aaf510c..0bf6fe650b7 100644
--- a/libjava/java/awt/KeyEventPostProcessor.java
+++ b/libjava/java/awt/KeyEventPostProcessor.java
@@ -1,5 +1,5 @@
/* KeyEventPostProcessor.java -- performs actions after a key event dispatch
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import java.awt.event.KeyEvent;
* post-processed elsewhere. Therefore, it is unnecessary for the user
* to register the focus manager as a dispatcher.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see KeyboardFocusManager#addKeyEventPostProcessor(KeyEventPostProcessor)
* @see KeyboardFocusManager#removeKeyEventPostProcessor(KeyEventPostProcessor)
* @since 1.4
diff --git a/libjava/java/awt/KeyboardFocusManager.java b/libjava/java/awt/KeyboardFocusManager.java
index 6fa56d8a88e..6ea213e3a78 100644
--- a/libjava/java/awt/KeyboardFocusManager.java
+++ b/libjava/java/awt/KeyboardFocusManager.java
@@ -109,9 +109,9 @@ import java.util.Set;
* applies recursively to any child components of such a window,
* which define no traversal keys of their own.
*
- * @author Eric Blake <ebb9@email.byu.edu>
- * @author Thomas Fitzsimmons <fitzsim@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Thomas Fitzsimmons (fitzsim@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.4
*/
public abstract class KeyboardFocusManager
diff --git a/libjava/java/awt/Label.java b/libjava/java/awt/Label.java
index 189bc10a756..e1a43c8d189 100644
--- a/libjava/java/awt/Label.java
+++ b/libjava/java/awt/Label.java
@@ -1,5 +1,5 @@
/* Label.java -- Java label widget
- Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,8 +49,8 @@ import javax.accessibility.AccessibleRole;
* be edited by the user.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
public class Label extends Component implements Accessible
{
@@ -306,10 +306,7 @@ public AccessibleContext getAccessibleContext()
{
/* Create the context if this is the first request */
if (accessibleContext == null)
- {
- /* Create the context */
- accessibleContext = new AccessibleAWTLabel();
- }
+ accessibleContext = new AccessibleAWTLabel();
return accessibleContext;
}
diff --git a/libjava/java/awt/LayoutManager.java b/libjava/java/awt/LayoutManager.java
index 1231c3eb62f..62d5b9f6d84 100644
--- a/libjava/java/awt/LayoutManager.java
+++ b/libjava/java/awt/LayoutManager.java
@@ -1,5 +1,5 @@
/* LayoutManager.java -- lay out elements in a Container
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* This interface is for laying out containers in a particular sequence.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Container
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/awt/List.java b/libjava/java/awt/List.java
index 8fbbc07720e..e10cbaeeebf 100644
--- a/libjava/java/awt/List.java
+++ b/libjava/java/awt/List.java
@@ -47,6 +47,11 @@ import java.util.EventListener;
import java.util.Vector;
import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.accessibility.AccessibleSelection;
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
/**
* Class that implements a listbox widget
@@ -106,6 +111,7 @@ private ItemListener item_listeners;
// The list of ActionListeners for this object.
private ActionListener action_listeners;
+
/*************************************************************************/
/*
@@ -1076,4 +1082,182 @@ paramString()
{
return (ItemListener[]) getListeners (ItemListener.class);
}
+
+ // Accessibility internal class
+ protected class AccessibleAWTList extends AccessibleAWTComponent
+ implements AccessibleSelection, ItemListener, ActionListener
+ {
+ protected class AccessibleAWTListChild extends AccessibleAWTComponent
+ implements Accessible
+ {
+ private int index;
+ private List parent;
+
+ public AccessibleAWTListChild(List parent, int indexInParent)
+ {
+ this.parent = parent;
+ index = indexInParent;
+ if (parent == null)
+ index = -1;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.Accessible#getAccessibleContext()
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ return this;
+ }
+
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.LIST_ITEM;
+ }
+
+ public AccessibleStateSet getAccessibleStateSet()
+ {
+ AccessibleStateSet states = super.getAccessibleStateSet();
+ if (parent.isIndexSelected(index))
+ states.add(AccessibleState.SELECTED);
+ return states;
+ }
+
+ public int getAccessibleIndexInParent()
+ {
+ return index;
+ }
+
+ }
+
+ public AccessibleAWTList()
+ {
+ addItemListener(this);
+ addActionListener(this);
+ }
+
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.LIST;
+ }
+
+ public AccessibleStateSet getAccessibleStateSet()
+ {
+ AccessibleStateSet states = super.getAccessibleStateSet();
+ states.add(AccessibleState.SELECTABLE);
+ if (isMultipleMode())
+ states.add(AccessibleState.MULTISELECTABLE);
+ return states;
+ }
+
+ public int getAccessibleChildrenCount()
+ {
+ return getItemCount();
+ }
+
+ public Accessible getAccessibleChild(int i)
+ {
+ if (i >= getItemCount())
+ return null;
+ return new AccessibleAWTListChild(List.this, i);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#getAccessibleSelectionCount()
+ */
+ public int getAccessibleSelectionCount()
+ {
+ return getSelectedIndexes().length;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#getAccessibleSelection()
+ */
+ public AccessibleSelection getAccessibleSelection()
+ {
+ return this;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#getAccessibleSelection(int)
+ */
+ public Accessible getAccessibleSelection(int i)
+ {
+ int[] items = getSelectedIndexes();
+ if (i >= items.length)
+ return null;
+ return new AccessibleAWTListChild(List.this, items[i]);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#isAccessibleChildSelected(int)
+ */
+ public boolean isAccessibleChildSelected(int i)
+ {
+ return isIndexSelected(i);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#addAccessibleSelection(int)
+ */
+ public void addAccessibleSelection(int i)
+ {
+ select(i);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#removeAccessibleSelection(int)
+ */
+ public void removeAccessibleSelection(int i)
+ {
+ deselect(i);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#clearAccessibleSelection()
+ */
+ public void clearAccessibleSelection()
+ {
+ for (int i = 0; i < getItemCount(); i++)
+ deselect(i);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.accessibility.AccessibleSelection#selectAllAccessibleSelection()
+ */
+ public void selectAllAccessibleSelection()
+ {
+ if (isMultipleMode())
+ for (int i = 0; i < getItemCount(); i++)
+ select(i);
+ }
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)
+ */
+ public void itemStateChanged(ItemEvent event)
+ {
+ }
+
+ /* (non-Javadoc)
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+ */
+ public void actionPerformed(ActionEvent event)
+ {
+ }
+
+ }
+
+ /**
+ * Gets the AccessibleContext associated with this <code>List</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTList();
+ return accessibleContext;
+ }
} // class List
diff --git a/libjava/java/awt/Menu.java b/libjava/java/awt/Menu.java
index 35798a066df..3cc9cc301ae 100644
--- a/libjava/java/awt/Menu.java
+++ b/libjava/java/awt/Menu.java
@@ -451,12 +451,18 @@ paramString()
}
}
- /* (non-Javadoc)
- * @see java.awt.MenuComponent#getAccessibleContext()
+ /**
+ * Gets the AccessibleContext associated with this <code>Menu</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
*/
public AccessibleContext getAccessibleContext()
{
- return new AccessibleAWTMenu();
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTMenu();
+ return accessibleContext;
}
} // class Menu
diff --git a/libjava/java/awt/MenuBar.java b/libjava/java/awt/MenuBar.java
index 6a97fa95685..ce5256fece7 100644
--- a/libjava/java/awt/MenuBar.java
+++ b/libjava/java/awt/MenuBar.java
@@ -1,5 +1,5 @@
/* MenuBar.java -- An AWT menu bar class
- Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,8 +53,8 @@ import javax.accessibility.AccessibleRole;
* This class implements a menu bar in the AWT system.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Tom Tromey (tromey@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
public class MenuBar extends MenuComponent
implements MenuContainer, Serializable, Accessible
@@ -381,17 +381,14 @@ public AccessibleContext getAccessibleContext()
{
/* Create the context if this is the first request */
if (accessibleContext == null)
- {
- /* Create the context */
- accessibleContext = new AccessibleAWTMenuBar();
- }
+ accessibleContext = new AccessibleAWTMenuBar();
return accessibleContext;
}
/**
* This class provides accessibility support for AWT menu bars.
*
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
protected class AccessibleAWTMenuBar
extends AccessibleAWTMenuComponent
diff --git a/libjava/java/awt/MenuComponent.java b/libjava/java/awt/MenuComponent.java
index 78adfaea6e3..f5677feeb96 100644
--- a/libjava/java/awt/MenuComponent.java
+++ b/libjava/java/awt/MenuComponent.java
@@ -1,5 +1,5 @@
/* MenuComponent.java -- Superclass of all AWT menu components
- Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,7 +55,7 @@ import javax.accessibility.AccessibleStateSet;
* This is the superclass of all menu AWT widgets.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
public abstract class MenuComponent implements Serializable
{
@@ -130,7 +130,7 @@ private static final long serialVersionUID = -4536902356223894379L;
* @see #getAccessibleContext()
* @serial the accessibility information for this component.
*/
- private AccessibleContext accessibleContext;
+ AccessibleContext accessibleContext;
/**
* Was the name of the component set? This value defaults
@@ -465,7 +465,7 @@ public AccessibleContext getAccessibleContext()
* This class provides a base for the accessibility support of menu
* components.
*
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
protected abstract class AccessibleAWTMenuComponent
extends AccessibleContext
diff --git a/libjava/java/awt/MenuContainer.java b/libjava/java/awt/MenuContainer.java
index dd8b3412e2b..08d1cb09c6f 100644
--- a/libjava/java/awt/MenuContainer.java
+++ b/libjava/java/awt/MenuContainer.java
@@ -1,5 +1,5 @@
/* MenuContainer.java -- container for menu items
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* This interface is a container for menu components.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/MenuItem.java b/libjava/java/awt/MenuItem.java
index a58774240ff..56082d36a9a 100644
--- a/libjava/java/awt/MenuItem.java
+++ b/libjava/java/awt/MenuItem.java
@@ -47,6 +47,7 @@ import java.util.EventListener;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleAction;
+import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleValue;
@@ -562,7 +563,10 @@ protected void
processActionEvent(ActionEvent event)
{
if (action_listeners != null)
- action_listeners.actionPerformed(event);
+ {
+ event.setSource(this);
+ action_listeners.actionPerformed(event);
+ }
}
/*************************************************************************/
@@ -579,7 +583,18 @@ paramString()
",actionCommand=" + actionCommand + "," + super.paramString());
}
-// Accessibility API not yet implemented.
-// public AccessibleContext getAccessibleContext()
+/**
+ * Gets the AccessibleContext associated with this <code>MenuItem</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+public AccessibleContext getAccessibleContext()
+{
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTMenuItem();
+ return accessibleContext;
+}
} // class MenuItem
diff --git a/libjava/java/awt/PageAttributes.java b/libjava/java/awt/PageAttributes.java
index 2501aa3eeaf..c94f857dc79 100644
--- a/libjava/java/awt/PageAttributes.java
+++ b/libjava/java/awt/PageAttributes.java
@@ -1,5 +1,5 @@
/* PageAttributes.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.Locale;
/**
* Missing Documentation
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4, but missing documentation
*/
diff --git a/libjava/java/awt/Paint.java b/libjava/java/awt/Paint.java
index 94c30c0ff5d..fa136ec3fba 100644
--- a/libjava/java/awt/Paint.java
+++ b/libjava/java/awt/Paint.java
@@ -48,7 +48,7 @@ import java.awt.image.ColorModel;
* of the graphics object. Instances must be immutable, because the graphics
* object does not clone them.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see PaintContext
* @see Color
* @see GradientPaint
diff --git a/libjava/java/awt/PaintContext.java b/libjava/java/awt/PaintContext.java
index fa26061f0ea..29003798d69 100644
--- a/libjava/java/awt/PaintContext.java
+++ b/libjava/java/awt/PaintContext.java
@@ -42,7 +42,7 @@ import java.awt.image.ColorModel;
import java.awt.image.Raster;
/**
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see Paint
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/awt/Panel.java b/libjava/java/awt/Panel.java
index 1ba9fbd246e..628e53e97a1 100644
--- a/libjava/java/awt/Panel.java
+++ b/libjava/java/awt/Panel.java
@@ -1,5 +1,5 @@
/* Panel.java -- Simple container object
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -127,7 +127,7 @@ public class Panel extends Container implements Accessible
* This class provides accessibility support for Panels, and is the
* runtime type returned by {@link #getAccessibleContext()}.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
*/
protected class AccessibleAWTPanel extends AccessibleAWTContainer
diff --git a/libjava/java/awt/Point.java b/libjava/java/awt/Point.java
index 3731b4134ee..48f5e33651d 100644
--- a/libjava/java/awt/Point.java
+++ b/libjava/java/awt/Point.java
@@ -50,9 +50,9 @@ import java.io.Serializable;
* manner, it is your own fault when you get invalid results. Also, this
* class is not threadsafe.
*
- * @author Per Bothner <bothner@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/Polygon.java b/libjava/java/awt/Polygon.java
index 4b89bd669f2..4b1eda85ce9 100644
--- a/libjava/java/awt/Polygon.java
+++ b/libjava/java/awt/Polygon.java
@@ -1,5 +1,5 @@
/* Polygon.java -- class representing a polygon
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,8 +57,8 @@ import java.io.Serializable;
* ArrayIndexOutOfBoundsException, or invalid results. Also, this class is
* not threadsafe.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/PopupMenu.java b/libjava/java/awt/PopupMenu.java
index 75082029186..92840dfa075 100644
--- a/libjava/java/awt/PopupMenu.java
+++ b/libjava/java/awt/PopupMenu.java
@@ -151,9 +151,18 @@ show(Component component, int x, int y)
}
+ /**
+ * Gets the AccessibleContext associated with this <code>PopupMenu</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
public AccessibleContext getAccessibleContext()
{
- return new AccessibleAWTPopupMenu();
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTPopupMenu();
+ return accessibleContext;
}
} // class PopupMenu
diff --git a/libjava/java/awt/PrintGraphics.java b/libjava/java/awt/PrintGraphics.java
index 4a65fcec510..ae664044d9b 100644
--- a/libjava/java/awt/PrintGraphics.java
+++ b/libjava/java/awt/PrintGraphics.java
@@ -1,5 +1,5 @@
/* PrintGraphics.java -- a print graphics context
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* This interface allows the originating print job to be obtained.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/PrintJob.java b/libjava/java/awt/PrintJob.java
index 9cf95f21495..7bf4534c7fc 100644
--- a/libjava/java/awt/PrintJob.java
+++ b/libjava/java/awt/PrintJob.java
@@ -1,5 +1,5 @@
/* PrintJob.java -- A print job class
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt;
/**
* This abstract class represents a print job.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Toolkit#getPrintJob(Frame, String, Properties)
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/awt/Rectangle.java b/libjava/java/awt/Rectangle.java
index 66190960a12..df7cbbe6dee 100644
--- a/libjava/java/awt/Rectangle.java
+++ b/libjava/java/awt/Rectangle.java
@@ -57,9 +57,9 @@ import java.io.Serializable;
* ArrayIndexOutOfBoundsException, or invalid results. Also, this class is
* not threadsafe.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/RenderingHints.java b/libjava/java/awt/RenderingHints.java
index a1ccdff3097..86e0eb6f0ee 100644
--- a/libjava/java/awt/RenderingHints.java
+++ b/libjava/java/awt/RenderingHints.java
@@ -51,8 +51,8 @@ import java.util.Set;
* items are hints only, they may be ignored by a particular
* {@link java.awt.Graphics2D} implementation.
*
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
public class RenderingHints implements Map, Cloneable
{
diff --git a/libjava/java/awt/Robot.java b/libjava/java/awt/Robot.java
index f633fc0b354..23b6f810442 100644
--- a/libjava/java/awt/Robot.java
+++ b/libjava/java/awt/Robot.java
@@ -1,5 +1,5 @@
-/* Robot.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+/* Robot.java -- a native input event generator
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,112 +38,386 @@ exception statement from your version. */
package java.awt;
+import gnu.java.awt.ClasspathToolkit;
+
+import java.lang.reflect.InvocationTargetException;
+import java.awt.event.InputEvent;
import java.awt.image.BufferedImage;
+import java.awt.peer.RobotPeer;
/**
+ * The Robot class is used to simulate user interaction with graphical
+ * programs. It can generate native windowing system input events and
+ * retrieve image data from the current screen. Robot is used to test
+ * the AWT and Swing library implementations; it can also be used to
+ * create self-running demo programs.
+ *
+ * Since Robot generates native windowing system events, rather than
+ * simply inserting {@link AWTEvents} on the AWT event queue, its use
+ * is not restricted to Java programs. It can be used to
+ * programatically drive any graphical application.
+ *
+ * This implementation requires an X server that supports the XTest
+ * extension.
+ *
+ * @author Thomas Fitzsimmons (fitzsim@redhat.com)
+ *
* @since 1.3
*/
-/** STUB CLASS ONLY */
public class Robot
{
- private GraphicsDevice screen;
private boolean waitForIdle;
private int autoDelay;
-
+ private RobotPeer peer;
+
/**
- * Creates a <code>Robot</code> object.
- *
- * @exception AWTException If GraphicsEnvironment.isHeadless() returns true.
- * @exception SecurityException If createRobot permission is not granted.
+ * Construct a Robot object that operates on the default screen.
+ *
+ * @exception AWTException if GraphicsEnvironment.isHeadless()
+ * returns true or if the X server does not support the XTest
+ * extension
+ * @exception SecurityException if createRobot permission is not
+ * granted
*/
- public Robot() throws AWTException
+ public Robot () throws AWTException
{
- throw new Error("not implemented");
+ if (GraphicsEnvironment.isHeadless ())
+ throw new AWTException ("Robot: headless graphics environment");
+
+ SecurityManager sm = System.getSecurityManager ();
+ if (sm != null)
+ sm.checkPermission (new AWTPermission ("createRobot"));
+
+ ClasspathToolkit tk = (ClasspathToolkit) Toolkit.getDefaultToolkit ();
+
+ // createRobot will throw AWTException if XTest is not supported.
+ peer = tk.createRobot (GraphicsEnvironment.getLocalGraphicsEnvironment ()
+ .getDefaultScreenDevice ());
}
/**
- * Creates a <code>Robot</code> object.
- *
- * @exception AWTException If GraphicsEnvironment.isHeadless() returns true.
- * @exception IllegalArgumentException If <code>screen</code> is not a screen
- * GraphicsDevice.
- * @exception SecurityException If createRobot permission is not granted.
+ * Construct a Robot object that operates on the specified screen.
+ *
+ * @exception AWTException if GraphicsEnvironment.isHeadless()
+ * returns true or if the X server does not support the XTest
+ * extension
+ * @exception IllegalArgumentException if screen is not a screen
+ * GraphicsDevice
+ * @exception SecurityException if createRobot permission is not
+ * granted
*/
- public Robot(GraphicsDevice screen) throws AWTException
+ public Robot (GraphicsDevice screen) throws AWTException
{
- this();
- this.screen = screen;
+ if (GraphicsEnvironment.isHeadless ())
+ throw new AWTException ("Robot: headless graphics environment");
+
+ if (screen.getType () != GraphicsDevice.TYPE_RASTER_SCREEN)
+ throw new IllegalArgumentException ("Robot: graphics"
+ + " device is not a screen");
+
+ SecurityManager sm = System.getSecurityManager ();
+ if (sm != null)
+ sm.checkPermission (new AWTPermission ("createRobot"));
+
+ ClasspathToolkit tk = (ClasspathToolkit) Toolkit.getDefaultToolkit ();
+
+ // createRobot will throw AWTException if XTest is not supported.
+ peer = tk.createRobot (screen);
}
+ /**
+ * Move the mouse pointer to absolute coordinates (x, y).
+ *
+ * @param x the destination x coordinate
+ * @param y the destination y coordinate
+ */
public void mouseMove(int x, int y)
{
+ peer.mouseMove (x, y);
+
+ if (waitForIdle)
+ waitForIdle ();
+
+ if (autoDelay > 0)
+ delay (autoDelay);
}
- public void mousePress(int buttons)
+ /**
+ * Press one or more mouse buttons.
+ *
+ * @param buttons the buttons to press; a bitmask of one or more of
+ * these {@link InputEvent} fields:
+ *
+ * <ul>
+ * <li>BUTTON1_MASK</li>
+ * <li>BUTTON2_MASK</li>
+ * <li>BUTTON3_MASK</li>
+ * </ul>
+ *
+ * @exception IllegalArgumentException if the button mask is invalid
+ */
+ public void mousePress (int buttons)
{
+ if ((buttons & InputEvent.BUTTON1_MASK) == 0
+ && (buttons & InputEvent.BUTTON2_MASK) == 0
+ && (buttons & InputEvent.BUTTON3_MASK) == 0)
+ throw new IllegalArgumentException ("Robot: mousePress:"
+ + " invalid button mask");
+
+ peer.mousePress (buttons);
+
+ if (waitForIdle)
+ waitForIdle ();
+
+ if (autoDelay > 0)
+ delay (autoDelay);
}
+ /**
+ * Release one or more mouse buttons.
+ *
+ * @param buttons the buttons to release; a bitmask of one or more
+ * of these {@link InputEvent} fields:
+ *
+ * <ul>
+ * <li>BUTTON1_MASK</li>
+ * <li>BUTTON2_MASK</li>
+ * <li>BUTTON3_MASK</li>
+ * </ul>
+ *
+ * @exception IllegalArgumentException if the button mask is invalid
+ */
public void mouseRelease(int buttons)
{
+ if ((buttons & InputEvent.BUTTON1_MASK) == 0
+ && (buttons & InputEvent.BUTTON2_MASK) == 0
+ && (buttons & InputEvent.BUTTON3_MASK) == 0)
+ throw new IllegalArgumentException ("Robot: mouseRelease:"
+ + " invalid button mask");
+
+ peer.mouseRelease (buttons);
+
+ if (waitForIdle)
+ waitForIdle ();
+
+ if (autoDelay > 0)
+ delay (autoDelay);
}
- public void mouseWheel(int wheelAmt)
+ /**
+ * Rotate the mouse scroll wheel.
+ *
+ * @param wheelAmt number of steps to rotate mouse wheel. negative
+ * to rotate wheel up (away from the user), positive to rotate wheel
+ * down (toward the user).
+ *
+ * @since 1.4
+ */
+ public void mouseWheel (int wheelAmt)
{
+ peer.mouseWheel (wheelAmt);
+
+ if (waitForIdle)
+ waitForIdle ();
+
+ if (autoDelay > 0)
+ delay (autoDelay);
}
- public void keyPress(int keycode)
+ /**
+ * Press a key.
+ *
+ * @param keycode key to press, a {@link KeyEvent} VK_ constant
+ *
+ * @exception IllegalArgumentException if keycode is not a valid key
+ */
+ public void keyPress (int keycode)
{
+ peer.keyPress (keycode);
+
+ if (waitForIdle)
+ waitForIdle ();
+
+ if (autoDelay > 0)
+ delay (autoDelay);
}
- public void keyRelease(int keycode)
+ /**
+ * Release a key.
+ *
+ * @param keycode key to release, a {@link KeyEvent} VK_ constant
+ *
+ * @exception IllegalArgumentException if keycode is not a valid key
+ */
+ public void keyRelease (int keycode)
{
+ peer.keyRelease (keycode);
+
+ if (waitForIdle)
+ waitForIdle ();
+
+ if (autoDelay > 0)
+ delay (autoDelay);
}
-
- public Color getPixelColor(int x, int y)
+
+ /**
+ * Return the color of the pixel at the given screen coordinates.
+ *
+ * @param x the x coordinate of the pixel
+ * @param y the y coordinate of the pixel
+ *
+ * @return the Color of the pixel at screen coodinates <code>(x, y)</code>
+ */
+ public Color getPixelColor (int x, int y)
{
- return null;
+ return new Color (peer.getRGBPixel (x, y));
}
- public BufferedImage createScreenCapture(Rectangle screen)
+ /**
+ * Create an image containing pixels read from the screen. The
+ * image does not include the mouse pointer.
+ *
+ * @param screenRect the rectangle of pixels to capture, in screen
+ * coordinates
+ *
+ * @return a BufferedImage containing the requested pixels
+ *
+ * @exception IllegalArgumentException if requested width and height
+ * are not both greater than zero
+ * @exception SecurityException if readDisplayPixels permission is
+ * not granted
+ */
+ public BufferedImage createScreenCapture (Rectangle screenRect)
{
- return null;
+ if (screenRect.width <= 0)
+ throw new IllegalArgumentException ("Robot: capture width is <= 0");
+
+ if (screenRect.height <= 0)
+ throw new IllegalArgumentException ("Robot: capture height is <= 0");
+
+ SecurityManager sm = System.getSecurityManager ();
+ if (sm != null)
+ sm.checkPermission (new AWTPermission ("readDisplayPixels"));
+
+ int[] pixels = peer.getRGBPixels (screenRect);
+
+ BufferedImage bufferedImage =
+ new BufferedImage (screenRect.width, screenRect.height,
+ BufferedImage.TYPE_INT_ARGB);
+
+ bufferedImage.setRGB (0, 0, screenRect.width, screenRect.height,
+ pixels, 0, screenRect.width);
+
+ return bufferedImage;
}
-
- public boolean isAutoWaitForIdle()
+
+ /**
+ * Check if this Robot automatically calls {@link waitForIdle} after
+ * generating an event.
+ *
+ * @return true if waitForIdle is automatically called
+ */
+ public boolean isAutoWaitForIdle ()
{
return waitForIdle;
}
-
- public void setAutoWaitForIdle(boolean value)
+
+ /**
+ * Set whether or not this Robot automatically calls {@link
+ * waitForIdle} after generating an event.
+ *
+ * @param isOn true if waitForIdle should be called automatically
+ */
+ public void setAutoWaitForIdle (boolean isOn)
{
- waitForIdle = value;
+ waitForIdle = isOn;
}
-
- public int getAutoDelay()
+
+ /**
+ * Retrieve the length of time this Robot sleeps after generating an
+ * event.
+ *
+ * @return the length of time in milliseconds
+ */
+ public int getAutoDelay ()
{
return autoDelay;
}
-
- public void setAutoDelay(int ms)
+
+ /**
+ * Set the length of time this Robot sleeps after generating an
+ * event.
+ *
+ * @param ms the length of time in milliseconds
+ *
+ * @exception IllegalArgumentException if ms is not between 0 and
+ * 60,000 milliseconds inclusive
+ */
+ public void setAutoDelay (int ms)
{
- if (ms < 0 || ms > 60000)
- throw new IllegalArgumentException();
-
+ if (ms <= 0 || ms >= 60000)
+ throw new IllegalArgumentException ("Robot: delay length out-of-bounds");
+
autoDelay = ms;
}
- public void delay(int ms)
+ /**
+ * Sleep for a specified length of time.
+ *
+ * @param ms the length of time in milliseconds
+ *
+ * @exception IllegalArgumentException if ms is not between 0 and
+ * 60,000 milliseconds inclusive
+ */
+ public void delay (int ms)
{
if (ms < 0 || ms > 60000)
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException ("Robot: delay length out-of-bounds");
+
+ try
+ {
+ Thread.sleep (ms);
+ }
+ catch (InterruptedException e)
+ {
+ System.err.println ("Robot: delay interrupted");
+ }
}
- public void waitForIdle()
+ /**
+ * Wait until all events currently on the event queue have been
+ * dispatched.
+ */
+ public void waitForIdle ()
{
+ if (EventQueue.isDispatchThread ())
+ throw new IllegalThreadStateException ("Robot: waitForIdle called from "
+ + "the event dispatch thread");
+
+ EventQueue q = Toolkit.getDefaultToolkit ().getSystemEventQueue ();
+ try
+ {
+ q.invokeAndWait (new Runnable () { public void run () { } });
+ }
+ catch (InterruptedException e)
+ {
+ System.err.println ("Robot: waitForIdle interrupted");
+ }
+ catch (InvocationTargetException e)
+ {
+ System.err.println ("Robot: waitForIdle cannot invoke target");
+ }
}
- public String toString()
+ /**
+ * Return a string representation of this Robot.
+ *
+ * @return a string representation
+ */
+ public String toString ()
{
- return "unimplemented";
+ return getClass ().getName ()
+ + "[ autoDelay = " + autoDelay + ", autoWaitForIdle = "
+ + waitForIdle + " ]";
}
-} // class Robot
+}
diff --git a/libjava/java/awt/ScrollPane.java b/libjava/java/awt/ScrollPane.java
index abd5514d8e3..c38feb339c5 100644
--- a/libjava/java/awt/ScrollPane.java
+++ b/libjava/java/awt/ScrollPane.java
@@ -43,6 +43,8 @@ import java.awt.peer.ComponentPeer;
import java.awt.peer.ScrollPanePeer;
import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
/**
* This widget provides a scrollable region that allows a single
@@ -587,5 +589,27 @@ paramString()
{
wheelScrollingEnabled = enable;
}
+
+ protected class AccessibleAWTScrollPane extends AccessibleAWTContainer
+ {
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.SCROLL_PANE;
+ }
+ }
+
+ /**
+ * Gets the AccessibleContext associated with this <code>ScrollPane</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTScrollPane();
+ return accessibleContext;
+ }
} // class ScrollPane
diff --git a/libjava/java/awt/Scrollbar.java b/libjava/java/awt/Scrollbar.java
index 7cc97153796..9141ea53e6d 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, 2003, 2004
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,694 +45,603 @@ import java.awt.peer.ScrollbarPeer;
import java.util.EventListener;
import javax.accessibility.Accessible;
-
-/**
- * This class implements a scrollbar widget.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
- */
-public class Scrollbar extends Component implements Accessible,
- Adjustable
-{
-
-// FIXME: Serialization readObject/writeObject
-
-/*
- * Static Variables
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+import javax.accessibility.AccessibleValue;
+
+/**
+ * This class implements a scrollbar widget.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
+public class Scrollbar extends Component implements Accessible, Adjustable
+{
+ // FIXME: Serialization readObject/writeObject
-/**
- * Constant indicating that a scrollbar is horizontal.
- */
-public static final int HORIZONTAL = 0;
-
-/**
- * Constant indicating that a scrollbar is vertical.
- */
-public static final int VERTICAL = 1;
+ /**
+ * Constant indicating that a scrollbar is horizontal.
+ */
+ public static final int HORIZONTAL = 0;
-// Serialization Constant
-private static final long serialVersionUID = 8451667562882310543L;
+ /**
+ * Constant indicating that a scrollbar is vertical.
+ */
+ public static final int VERTICAL = 1;
-/*************************************************************************/
+ /**
+ * Serialization Constant.
+ */
+ private static final long serialVersionUID = 8451667562882310543L;
-/**
- * @serial The amount by which the value of the scrollbar is changed
- * when incrementing in line mode.
- */
-private int lineIncrement;
+ /**
+ * @serial The amount by which the value of the scrollbar is changed
+ * when incrementing in line mode.
+ */
+ private int lineIncrement;
-/**
- * @serial The amount by which the value of the scrollbar is changed
- * when incrementing in page mode.
- */
-private int pageIncrement;
+ /**
+ * @serial The amount by which the value of the scrollbar is changed
+ * when incrementing in page mode.
+ */
+ private int pageIncrement;
-/**
- * @serial The maximum value for this scrollbar
- */
-private int maximum;
+ /**
+ * @serial The maximum value for this scrollbar
+ */
+ private int maximum;
-/**
- * @serial The minimum value for this scrollbar
- */
-private int minimum;
+ /**
+ * @serial The minimum value for this scrollbar
+ */
+ private int minimum;
-/**
- * @serial The orientation of this scrollbar, which will be either
- * the <code>HORIZONTAL</code> or <code>VERTICAL</code> constant
- * from this class.
- */
-private int orientation;
+ /**
+ * @serial The orientation of this scrollbar, which will be either
+ * the <code>HORIZONTAL</code> or <code>VERTICAL</code> constant
+ * from this class.
+ */
+ private int orientation;
-/**
- * @serial The current value of this scrollbar.
- */
-private int value;
+ /**
+ * @serial The current value of this scrollbar.
+ */
+ private int value;
-/**
- * @serial The width of the scrollbar's thumb, which is relative
- * to the minimum and maximum value of the scrollbar.
- */
-private int visibleAmount;
+ /**
+ * @serial The width of the scrollbar's thumb, which is relative
+ * to the minimum and maximum value of the scrollbar.
+ */
+ private int visibleAmount;
-// List of AdjustmentListener's.
-private AdjustmentListener adjustment_listeners;
+ /**
+ * List of AdjustmentListener's.
+ */
+ private AdjustmentListener adjustment_listeners;
-private transient boolean valueIsAdjusting = false;
+ /**
+ * true if the scrollbar is adjusting, false otherwise.
+ */
+ private transient boolean valueIsAdjusting = false;
- /*
+ /**
* The number used to generate the name returned by getName.
*/
private static transient long next_scrollbar_number;
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
- * Initializes a new instance of <code>Scrollbar</code> with a
- * vertical orientation and default values for all other parameters.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
- */
-public
-Scrollbar()
-{
- this(VERTICAL);
-}
-
-/*************************************************************************/
-
-/**
- * Initializes a new instance of <code>Scrollbar</code> with the
- * specified orientation and default values for all other parameters.
- * The orientation must be either the constant <code>HORIZONTAL</code> or
- * <code>VERTICAL</code> from this class. An incorrect value will throw
- * an exception.
- *
- * @param orientation The orientation of this scrollbar.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
- * @exception IllegalArgumentException If the orientation value is not valid.
- */
-public
-Scrollbar(int orientation) throws IllegalArgumentException
-{
- this(orientation, 0, 10, 0, 100);
-}
-
-/*************************************************************************/
-
-/**
- * Initializes a new instance of <code>Scrollbar</code> with the
- * specified parameters. The orientation must be either the constant
- * <code>HORIZONTAL</code> or <code>VERTICAL</code>. An incorrect value
- * will throw an exception. Inconsistent values for other parameters
- * are silently corrected to valid values.
- *
- * @param orientation The orientation of this scrollbar.
- * @param value The initial value of the scrollbar.
- * @param visibleAmount The width of the scrollbar thumb.
- * @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);
-
- this.orientation = orientation;
-
- setValues(value, visibleAmount, minimum, maximum);
-
- // Default is 1 according to online docs.
- lineIncrement = 1;
-
- // Default is 10 according to javadocs.
- pageIncrement = 10;
-}
-
-/*************************************************************************/
-
-/*
- * Instance Methods
- */
-
-/**
- * Returns the orientation constant for this object.
- *
- * @return The orientation constant for this object.
- */
-public int
-getOrientation()
-{
- return(orientation);
-}
-
-/*************************************************************************/
-
-/**
- * Sets the orientation of this scrollbar to the specified value. This
- * value must be either the constant <code>HORIZONTAL</code> or
- * <code>VERTICAL</code> from this class or an exception will be thrown.
- *
- * @param orientation The new orientation value.
- *
- * @exception IllegalArgumentException If the orientation value is not valid.
- */
-public void
-setOrientation(int orientation)
-{
- if ((orientation != HORIZONTAL) && (orientation != VERTICAL))
- throw new IllegalArgumentException("Bad orientation value: "
- + orientation);
-
- // FIXME: Communicate to peer? Or must this be called before peer creation?
- this.orientation = orientation;
-}
-
-/*************************************************************************/
-
-/**
- * Returns the current value for this scrollbar.
- *
- * @return The current value for this scrollbar.
- */
-public int
-getValue()
-{
- return(value);
-}
-
-/*************************************************************************/
-
-/**
- * Sets the current value for this scrollbar to the specified value.
- * If this is inconsistent with the minimum and maximum values for this
- * scrollbar, the value is silently adjusted.
- *
- * @param value The new value for this scrollbar.
- */
-public void
-setValue(int value)
-{
- setValues(value, visibleAmount, minimum, maximum);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the maximum value for this scrollbar.
- *
- * @return The maximum value for this scrollbar.
- */
-public int
-getMaximum()
-{
- return(maximum);
-}
-
-/*************************************************************************/
-
-/**
- * Sets the maximum value for this scrollbar to the specified value.
- * If the value is less than the current minimum value, it is silent
- * set to equal the minimum value.
- *
- * @param maximum The new maximum value for this scrollbar.
- */
-public void
-setMaximum(int maximum)
-{
- setValues(value, visibleAmount, minimum, maximum);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the minimum value for this scrollbar.
- *
- * @return The minimum value for this scrollbar.
- */
-public int
-getMinimum()
-{
- return(minimum);
-}
-
-/*************************************************************************/
-
-/**
- * Sets the minimum value for this scrollbar to the specified value. If
- * this is not consistent with the current value and maximum, it is
- * silently adjusted to be consistent.
- *
- * @param minimum The new minimum value for this scrollbar.
- */
-public void
-setMinimum(int minimum)
-{
- setValues(value, visibleAmount, minimum, maximum);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the width of the scrollbar's thumb, in units relative to the
- * maximum and minimum value of the scrollbar.
- *
- * @return The width of the scrollbar's thumb.
- */
-public int
-getVisibleAmount()
-{
- return getVisible ();
-}
-
-/*************************************************************************/
-
-/**
- * Returns the width of the scrollbar's thumb, in units relative to the
- * maximum and minimum value of the scrollbar.
- *
- * @return The width of the scrollbar's thumb.
- *
- * @deprecated This method is deprecated in favor of
- * <code>getVisibleAmount()</code>.
- */
-public int
-getVisible()
-{
- return visibleAmount;
-}
-
-/*************************************************************************/
-
-/**
- * Sets the width of the scrollbar's thumb, in units relative to the
- * maximum and minimum value of the scrollbar.
- *
- * @param visibleAmount The new visible amount value of the scrollbar.
- */
-public void
-setVisibleAmount(int visibleAmount)
-{
- setValues(value, visibleAmount, minimum, maximum);
-}
-
-/*************************************************************************/
-
-/**
- * Sets the current value, visible amount, minimum, and maximum for this
- * scrollbar. These values are adjusted to be internally consistent
- * if necessary.
- *
- * @param value The new value for this scrollbar.
- * @param visibleAmount The new visible amount for this scrollbar.
- * @param minimum The new minimum value for this scrollbar.
- * @param maximum The new maximum value for this scrollbar.
- */
-public synchronized void
-setValues(int value, int visibleAmount, int minimum, int maximum)
-{
- if (maximum < minimum)
- maximum = minimum;
-
- if (value < minimum)
- value = minimum;
-
- if (value > maximum)
- value = maximum;
-
- if (visibleAmount > maximum - minimum)
- visibleAmount = maximum - minimum;
-
- ScrollbarPeer peer = (ScrollbarPeer) getPeer ();
- if (peer != null
- && (this.value != value || this.visibleAmount != visibleAmount
- || this.minimum != minimum || this.maximum != maximum))
- peer.setValues(value, visibleAmount, minimum, maximum);
-
- this.value = value;
- this.visibleAmount = visibleAmount;
- this.minimum = minimum;
- this.maximum = maximum;
-
- int range = maximum - minimum;
- if (lineIncrement > range)
- {
- if (range == 0)
- lineIncrement = 1;
- else
- lineIncrement = range;
-
- if (peer != null)
- peer.setLineIncrement(lineIncrement);
- }
-
- if (pageIncrement > range)
- {
- if (range == 0)
- pageIncrement = 1;
- else
- pageIncrement = range;
-
- if (peer != null)
- peer.setPageIncrement(pageIncrement);
- }
-}
-
-/*************************************************************************/
+ /**
+ * Initializes a new instance of <code>Scrollbar</code> with a
+ * vertical orientation and default values for all other parameters.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
+ */
+ public Scrollbar()
+ {
+ this(VERTICAL);
+ }
-/**
- * Returns the value added or subtracted when the user activates the scrollbar
- * scroll by a "unit" amount.
- *
- * @return The unit increment value.
- */
-public int
-getUnitIncrement()
-{
- return getLineIncrement ();
-}
+ /**
+ * Initializes a new instance of <code>Scrollbar</code> with the
+ * specified orientation and default values for all other parameters.
+ * The orientation must be either the constant <code>HORIZONTAL</code> or
+ * <code>VERTICAL</code> from this class. An incorrect value will throw
+ * an exception.
+ *
+ * @param orientation The orientation of this scrollbar.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
+ * @exception IllegalArgumentException If the orientation value is not valid.
+ */
+ public Scrollbar(int orientation) throws IllegalArgumentException
+ {
+ this(orientation, 0, 10, 0, 100);
+ }
-/*************************************************************************/
+ /**
+ * Initializes a new instance of <code>Scrollbar</code> with the
+ * specified parameters. The orientation must be either the constant
+ * <code>HORIZONTAL</code> or <code>VERTICAL</code>. An incorrect value
+ * will throw an exception. Inconsistent values for other parameters
+ * are silently corrected to valid values.
+ *
+ * @param orientation The orientation of this scrollbar.
+ * @param value The initial value of the scrollbar.
+ * @param visibleAmount The width of the scrollbar thumb.
+ * @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();
-/**
- * Returns the value added or subtracted when the user selects the scrollbar
- * scroll by a "unit" amount control.
- *
- * @return The unit increment value.
- *
- * @deprecated This method is deprecated in favor of
- * <code>getUnitIncrement()</code>.
- */
-public int
-getLineIncrement()
-{
- return lineIncrement;
-}
+ if ((orientation != HORIZONTAL) && (orientation != VERTICAL))
+ throw new IllegalArgumentException("Bad orientation value: "
+ + orientation);
-/*************************************************************************/
+ this.orientation = orientation;
-/**
- * Sets the value added or subtracted to the scrollbar value when the
- * user selects the scroll by a "unit" amount control.
- *
- * @param unitIncrement The new unit increment amount.
- */
-public synchronized void
-setUnitIncrement(int unitIncrement)
-{
- setLineIncrement (unitIncrement);
-}
+ setValues(value, visibleAmount, minimum, maximum);
-/*************************************************************************/
+ // Default is 1 according to online docs.
+ lineIncrement = 1;
-/**
- * Sets the value added or subtracted to the scrollbar value when the
- * user selects the scroll by a "unit" amount control.
- *
- * @param lineIncrement The new unit increment amount.
- *
- * @deprecated This method is deprecated in favor of
- * <code>setUnitIncrement()</code>.
- */
-public void
-setLineIncrement(int lineIncrement)
-{
- if (lineIncrement < 0)
- throw new IllegalArgumentException ("Unit increment less than zero.");
+ // Default is 10 according to javadocs.
+ pageIncrement = 10;
+ }
- int range = maximum - minimum;
- if (lineIncrement > range)
- {
- if (range == 0)
- lineIncrement = 1;
- else
- lineIncrement = range;
- }
+ /**
+ * Returns the orientation constant for this object.
+ *
+ * @return The orientation constant for this object.
+ */
+ public int getOrientation()
+ {
+ return orientation;
+ }
- if (lineIncrement == this.lineIncrement)
- return;
+ /**
+ * Sets the orientation of this scrollbar to the specified value. This
+ * value must be either the constant <code>HORIZONTAL</code> or
+ * <code>VERTICAL</code> from this class or an exception will be thrown.
+ *
+ * @param orientation The new orientation value.
+ *
+ * @exception IllegalArgumentException If the orientation value is not valid.
+ */
+ public void setOrientation(int orientation)
+ {
+ if ((orientation != HORIZONTAL) && (orientation != VERTICAL))
+ throw new IllegalArgumentException("Bad orientation value: "
+ + orientation);
- this.lineIncrement = lineIncrement;
+ // FIXME: Communicate to peer? Or must this be called before peer creation?
+ this.orientation = orientation;
+ }
- ScrollbarPeer peer = (ScrollbarPeer) getPeer ();
- if (peer != null)
- peer.setLineIncrement (this.lineIncrement);
-}
+ /**
+ * Returns the current value for this scrollbar.
+ *
+ * @return The current value for this scrollbar.
+ */
+ public int getValue()
+ {
+ return value;
+ }
-/*************************************************************************/
+ /**
+ * Sets the current value for this scrollbar to the specified value.
+ * If this is inconsistent with the minimum and maximum values for this
+ * scrollbar, the value is silently adjusted.
+ *
+ * @param value The new value for this scrollbar.
+ */
+ public void setValue(int value)
+ {
+ setValues(value, visibleAmount, minimum, maximum);
+ }
-/**
- * Returns the value added or subtracted when the user activates the scrollbar
- * scroll by a "block" amount.
- *
- * @return The block increment value.
- */
-public int
-getBlockIncrement()
-{
- return getPageIncrement ();
-}
+ /**
+ * Returns the maximum value for this scrollbar.
+ *
+ * @return The maximum value for this scrollbar.
+ */
+ public int getMaximum()
+ {
+ return maximum;
+ }
-/*************************************************************************/
+ /**
+ * Sets the maximum value for this scrollbar to the specified value.
+ * If the value is less than the current minimum value, it is silent
+ * set to equal the minimum value.
+ *
+ * @param maximum The new maximum value for this scrollbar.
+ */
+ public void setMaximum(int maximum)
+ {
+ setValues(value, visibleAmount, minimum, maximum);
+ }
-/**
- * Returns the value added or subtracted when the user selects the scrollbar
- * scroll by a "block" amount control.
- *
- * @return The block increment value.
- *
- * @deprecated This method is deprecated in favor of
- * <code>getBlockIncrement()</code>.
- */
-public int
-getPageIncrement()
-{
- return pageIncrement;
-}
+ /**
+ * Returns the minimum value for this scrollbar.
+ *
+ * @return The minimum value for this scrollbar.
+ */
+ public int getMinimum()
+ {
+ return minimum;
+ }
-/*************************************************************************/
+ /**
+ * Sets the minimum value for this scrollbar to the specified value. If
+ * this is not consistent with the current value and maximum, it is
+ * silently adjusted to be consistent.
+ *
+ * @param minimum The new minimum value for this scrollbar.
+ */
+ public void setMinimum(int minimum)
+ {
+ setValues(value, visibleAmount, minimum, maximum);
+ }
-/**
- * Sets the value added or subtracted to the scrollbar value when the
- * user selects the scroll by a "block" amount control.
- *
- * @param blockIncrement The new block increment amount.
- */
-public synchronized void
-setBlockIncrement(int blockIncrement)
-{
- setPageIncrement (blockIncrement);
-}
+ /**
+ * Returns the width of the scrollbar's thumb, in units relative to the
+ * maximum and minimum value of the scrollbar.
+ *
+ * @return The width of the scrollbar's thumb.
+ */
+ public int getVisibleAmount()
+ {
+ return getVisible();
+ }
-/*************************************************************************/
+ /**
+ * Returns the width of the scrollbar's thumb, in units relative to the
+ * maximum and minimum value of the scrollbar.
+ *
+ * @return The width of the scrollbar's thumb.
+ *
+ * @deprecated This method is deprecated in favor of
+ * <code>getVisibleAmount()</code>.
+ */
+ public int getVisible()
+ {
+ return visibleAmount;
+ }
-/**
- * Sets the value added or subtracted to the scrollbar value when the
- * user selects the scroll by a "block" amount control.
- *
- * @param pageIncrement The new block increment amount.
- *
- * @deprecated This method is deprecated in favor of
- * <code>setBlockIncrement()</code>.
- */
-public void
-setPageIncrement(int pageIncrement)
-{
- if (pageIncrement < 0)
- throw new IllegalArgumentException ("Block increment less than zero.");
+ /**
+ * Sets the width of the scrollbar's thumb, in units relative to the
+ * maximum and minimum value of the scrollbar.
+ *
+ * @param visibleAmount The new visible amount value of the scrollbar.
+ */
+ public void setVisibleAmount(int visibleAmount)
+ {
+ setValues(value, visibleAmount, minimum, maximum);
+ }
- int range = maximum - minimum;
- if (pageIncrement > range)
- {
- if (range == 0)
- pageIncrement = 1;
- else
- pageIncrement = range;
- }
+ /**
+ * Sets the current value, visible amount, minimum, and maximum for this
+ * scrollbar. These values are adjusted to be internally consistent
+ * if necessary.
+ *
+ * @param value The new value for this scrollbar.
+ * @param visibleAmount The new visible amount for this scrollbar.
+ * @param minimum The new minimum value for this scrollbar.
+ * @param maximum The new maximum value for this scrollbar.
+ */
+ public synchronized void setValues(int value, int visibleAmount,
+ int minimum, int maximum)
+ {
+ if (maximum < minimum)
+ maximum = minimum;
+
+ if (value < minimum)
+ value = minimum;
+
+ if (value > maximum)
+ value = maximum;
+
+ if (visibleAmount > maximum - minimum)
+ visibleAmount = maximum - minimum;
+
+ ScrollbarPeer peer = (ScrollbarPeer) getPeer();
+ if (peer != null
+ && (this.value != value || this.visibleAmount != visibleAmount
+ || this.minimum != minimum || this.maximum != maximum))
+ peer.setValues(value, visibleAmount, minimum, maximum);
+
+ this.value = value;
+ this.visibleAmount = visibleAmount;
+ this.minimum = minimum;
+ this.maximum = maximum;
+
+ int range = maximum - minimum;
+ if (lineIncrement > range)
+ {
+ if (range == 0)
+ lineIncrement = 1;
+ else
+ lineIncrement = range;
+
+ if (peer != null)
+ peer.setLineIncrement(lineIncrement);
+ }
+
+ if (pageIncrement > range)
+ {
+ if (range == 0)
+ pageIncrement = 1;
+ else
+ pageIncrement = range;
+
+ if (peer != null)
+ peer.setPageIncrement(pageIncrement);
+ }
+ }
- if (pageIncrement == this.pageIncrement)
- return;
+ /**
+ * Returns the value added or subtracted when the user activates the scrollbar
+ * scroll by a "unit" amount.
+ *
+ * @return The unit increment value.
+ */
+ public int getUnitIncrement()
+ {
+ return getLineIncrement();
+ }
- this.pageIncrement = pageIncrement;
+ /**
+ * Returns the value added or subtracted when the user selects the scrollbar
+ * scroll by a "unit" amount control.
+ *
+ * @return The unit increment value.
+ *
+ * @deprecated This method is deprecated in favor of
+ * <code>getUnitIncrement()</code>.
+ */
+ public int getLineIncrement()
+ {
+ return lineIncrement;
+ }
- ScrollbarPeer peer = (ScrollbarPeer) getPeer ();
- if (peer != null)
- peer.setPageIncrement (this.pageIncrement);
-}
+ /**
+ * Sets the value added or subtracted to the scrollbar value when the
+ * user selects the scroll by a "unit" amount control.
+ *
+ * @param unitIncrement The new unit increment amount.
+ */
+ public synchronized void setUnitIncrement(int unitIncrement)
+ {
+ setLineIncrement(unitIncrement);
+ }
-/*************************************************************************/
+ /**
+ * Sets the value added or subtracted to the scrollbar value when the
+ * user selects the scroll by a "unit" amount control.
+ *
+ * @param lineIncrement The new unit increment amount.
+ *
+ * @deprecated This method is deprecated in favor of
+ * <code>setUnitIncrement()</code>.
+ */
+ public void setLineIncrement(int lineIncrement)
+ {
+ if (lineIncrement < 0)
+ throw new IllegalArgumentException("Unit increment less than zero.");
+
+ int range = maximum - minimum;
+ if (lineIncrement > range)
+ {
+ if (range == 0)
+ lineIncrement = 1;
+ else
+ lineIncrement = range;
+ }
+
+ if (lineIncrement == this.lineIncrement)
+ return;
+
+ this.lineIncrement = lineIncrement;
+
+ ScrollbarPeer peer = (ScrollbarPeer) getPeer();
+ if (peer != null)
+ peer.setLineIncrement(this.lineIncrement);
+ }
-/**
- * Notifies this object to create its native peer.
- */
-public synchronized void
-addNotify()
-{
- if (peer == null)
- peer = getToolkit ().createScrollbar (this);
- super.addNotify ();
-}
+ /**
+ * Returns the value added or subtracted when the user activates the scrollbar
+ * scroll by a "block" amount.
+ *
+ * @return The block increment value.
+ */
+ public int getBlockIncrement()
+ {
+ return getPageIncrement();
+ }
-/*************************************************************************/
+ /**
+ * Returns the value added or subtracted when the user selects the scrollbar
+ * scroll by a "block" amount control.
+ *
+ * @return The block increment value.
+ *
+ * @deprecated This method is deprecated in favor of
+ * <code>getBlockIncrement()</code>.
+ */
+ public int getPageIncrement()
+ {
+ return pageIncrement;
+ }
-/**
- * Adds a new adjustment listener to the list of registered listeners
- * for this object.
- *
- * @param listener The listener to add.
- */
-public synchronized void
-addAdjustmentListener(AdjustmentListener listener)
-{
- adjustment_listeners = AWTEventMulticaster.add(adjustment_listeners, listener);
- enableEvents(AWTEvent.ADJUSTMENT_EVENT_MASK);
-}
+ /**
+ * Sets the value added or subtracted to the scrollbar value when the
+ * user selects the scroll by a "block" amount control.
+ *
+ * @param blockIncrement The new block increment amount.
+ */
+ public synchronized void setBlockIncrement(int blockIncrement)
+ {
+ setPageIncrement(blockIncrement);
+ }
-/*************************************************************************/
+ /**
+ * Sets the value added or subtracted to the scrollbar value when the
+ * user selects the scroll by a "block" amount control.
+ *
+ * @param pageIncrement The new block increment amount.
+ *
+ * @deprecated This method is deprecated in favor of
+ * <code>setBlockIncrement()</code>.
+ */
+ public void setPageIncrement(int pageIncrement)
+ {
+ if (pageIncrement < 0)
+ throw new IllegalArgumentException("Block increment less than zero.");
+
+ int range = maximum - minimum;
+ if (pageIncrement > range)
+ {
+ if (range == 0)
+ pageIncrement = 1;
+ else
+ pageIncrement = range;
+ }
+
+ if (pageIncrement == this.pageIncrement)
+ return;
+
+ this.pageIncrement = pageIncrement;
+
+ ScrollbarPeer peer = (ScrollbarPeer) getPeer();
+ if (peer != null)
+ peer.setPageIncrement(this.pageIncrement);
+ }
-/**
- * Removes the specified listener from the list of registered listeners
- * for this object.
- *
- * @param listener The listener to remove.
- */
-public synchronized void
-removeAdjustmentListener(AdjustmentListener listener)
-{
- adjustment_listeners = AWTEventMulticaster.remove(adjustment_listeners,
- listener);
-}
+ /**
+ * Notifies this object to create its native peer.
+ */
+ public synchronized void addNotify()
+ {
+ if (peer == null)
+ peer = getToolkit().createScrollbar(this);
+ super.addNotify();
+ }
-/*************************************************************************/
+ /**
+ * Adds a new adjustment listener to the list of registered listeners
+ * for this object.
+ *
+ * @param listener The listener to add.
+ */
+ public synchronized void addAdjustmentListener(AdjustmentListener listener)
+ {
+ adjustment_listeners = AWTEventMulticaster.add(adjustment_listeners,
+ listener);
+ enableEvents(AWTEvent.ADJUSTMENT_EVENT_MASK);
+ }
-/**
- * Processes events for this scrollbar. It does this by calling
- * <code>processAdjustmentEvent()</code> if the event is an instance of
- * <code>AdjustmentEvent</code>, otherwise it calls the superclass to
- * process the event.
- *
- * @param event The event to process.
- */
-protected void
-processEvent(AWTEvent event)
-{
- if (event instanceof AdjustmentEvent)
- processAdjustmentEvent((AdjustmentEvent)event);
- else
- super.processEvent(event);
-}
+ /**
+ * Removes the specified listener from the list of registered listeners
+ * for this object.
+ *
+ * @param listener The listener to remove.
+ */
+ public synchronized void removeAdjustmentListener(AdjustmentListener listener)
+ {
+ adjustment_listeners = AWTEventMulticaster.remove(adjustment_listeners,
+ listener);
+ }
-/*************************************************************************/
+ /**
+ * Processes events for this scrollbar. It does this by calling
+ * <code>processAdjustmentEvent()</code> if the event is an instance of
+ * <code>AdjustmentEvent</code>, otherwise it calls the superclass to
+ * process the event.
+ *
+ * @param event The event to process.
+ */
+ protected void processEvent(AWTEvent event)
+ {
+ if (event instanceof AdjustmentEvent)
+ processAdjustmentEvent((AdjustmentEvent) event);
+ else
+ super.processEvent(event);
+ }
-/**
- * Processes adjustment events for this object by dispatching them to
- * any registered listeners. Note that this method will only be called
- * if adjustment events are enabled. This will happen automatically if
- * any listeners are registered. Otherwise, it can be enabled by a
- * call to <code>enableEvents()</code>.
- *
- * @param event The event to process.
- */
-protected void
-processAdjustmentEvent(AdjustmentEvent event)
-{
- value = event.getValue();
- if (adjustment_listeners != null)
- adjustment_listeners.adjustmentValueChanged(event);
-}
+ /**
+ * Processes adjustment events for this object by dispatching them to
+ * any registered listeners. Note that this method will only be called
+ * if adjustment events are enabled. This will happen automatically if
+ * any listeners are registered. Otherwise, it can be enabled by a
+ * call to <code>enableEvents()</code>.
+ *
+ * @param event The event to process.
+ */
+ protected void processAdjustmentEvent(AdjustmentEvent event)
+ {
+ value = event.getValue();
+ if (adjustment_listeners != null)
+ adjustment_listeners.adjustmentValueChanged(event);
+ }
-void
-dispatchEventImpl(AWTEvent e)
-{
- if (e.id <= AdjustmentEvent.ADJUSTMENT_LAST
+ void dispatchEventImpl(AWTEvent e)
+ {
+ if (e.id <= AdjustmentEvent.ADJUSTMENT_LAST
&& e.id >= AdjustmentEvent.ADJUSTMENT_FIRST
&& (adjustment_listeners != null
|| (eventMask & AWTEvent.ADJUSTMENT_EVENT_MASK) != 0))
- processEvent(e);
- else
- super.dispatchEventImpl(e);
-}
-
-/*************************************************************************/
+ processEvent(e);
+ else
+ super.dispatchEventImpl(e);
+ }
-/**
- * Returns a debugging string for this object.
- *
- * @return A debugging string for this object.
- */
-protected String
-paramString()
-{
- return("value=" + getValue() + ",visibleAmount=" +
- getVisibleAmount() + ",minimum=" + getMinimum()
- + ",maximum=" + getMaximum()
- + ",pageIncrement=" + pageIncrement
- + ",lineIncrement=" + lineIncrement
- + ",orientation=" + (orientation == HORIZONTAL
- ? "HORIZONTAL" : "VERTICAL")
- + super.paramString());
-}
+ /**
+ * Returns a debugging string for this object.
+ *
+ * @return A debugging string for this object.
+ */
+ protected String paramString()
+ {
+ return ("value=" + getValue() + ",visibleAmount=" + getVisibleAmount()
+ + ",minimum=" + getMinimum() + ",maximum=" + getMaximum()
+ + ",pageIncrement=" + pageIncrement + ",lineIncrement="
+ + lineIncrement + ",orientation="
+ + (orientation == HORIZONTAL ? "HORIZONTAL" : "VERTICAL")
+ + super.paramString());
+ }
/**
* Returns an array of all the objects currently registered as FooListeners
- * upon this <code>Scrollbar</code>. FooListeners are registered using the
+ * upon this <code>Scrollbar</code>. FooListeners are registered using the
* addFooListener method.
*
* @exception ClassCastException If listenerType doesn't specify a class or
* interface that implements java.util.EventListener.
*/
- public EventListener[] getListeners (Class listenerType)
+ public EventListener[] getListeners(Class listenerType)
{
if (listenerType == AdjustmentListener.class)
- return AWTEventMulticaster.getListeners (adjustment_listeners,
- listenerType);
+ return AWTEventMulticaster.getListeners(adjustment_listeners,
+ listenerType);
- return super.getListeners (listenerType);
+ return super.getListeners(listenerType);
}
/**
* Returns an array of all registered adjustment listeners.
*/
- public AdjustmentListener[] getAdjustmentListeners ()
+ public AdjustmentListener[] getAdjustmentListeners()
{
- return (AdjustmentListener[]) getListeners (AdjustmentListener.class);
+ return (AdjustmentListener[]) getListeners(AdjustmentListener.class);
}
/**
@@ -740,7 +649,7 @@ paramString()
*
* @since 1.4
*/
- public boolean getValueIsAdjusting ()
+ public boolean getValueIsAdjusting()
{
return valueIsAdjusting;
}
@@ -750,7 +659,7 @@ paramString()
*
* @since 1.4
*/
- public void setValueIsAdjusting (boolean valueIsAdjusting)
+ public void setValueIsAdjusting(boolean valueIsAdjusting)
{
this.valueIsAdjusting = valueIsAdjusting;
}
@@ -760,14 +669,157 @@ paramString()
*
* @return A unique name for this scroll bar.
*/
- String generateName ()
+ String generateName()
{
- return "scrollbar" + getUniqueLong ();
+ return "scrollbar" + getUniqueLong();
}
- private static synchronized long getUniqueLong ()
+ private static synchronized long getUniqueLong()
{
return next_scrollbar_number++;
}
-} // class Scrollbar
+ /**
+ * This class provides accessibility support for the
+ * scrollbar.
+ *
+ * @author Jerry Quinn (jlquinn@optonline.net)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ */
+ protected class AccessibleAWTScrollBar extends AccessibleAWTComponent
+ implements AccessibleValue
+ {
+ /**
+ * Serialization constant to match JDK 1.5
+ */
+ private static final long serialVersionUID = -344337268523697807L;
+
+ /**
+ * Returns the role of this accessible object.
+ *
+ * @return the instance of <code>AccessibleRole</code>,
+ * which describes this object.
+ *
+ * @see javax.accessibility.AccessibleRole
+ */
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.SCROLL_BAR;
+ }
+
+ /**
+ * Returns the state set of this accessible object.
+ *
+ * @return a set of <code>AccessibleState</code>s which
+ * represent the current state of the accessible object.
+ *
+ * @see javax.accessibility.AccessibleState
+ * @see javax.accessibility.AccessibleStateSet
+ */
+ public AccessibleStateSet getAccessibleStateSet()
+ {
+ AccessibleStateSet states = super.getAccessibleStateSet();
+ if (getOrientation() == HORIZONTAL)
+ states.add(AccessibleState.HORIZONTAL);
+ else
+ states.add(AccessibleState.VERTICAL);
+ if (getValueIsAdjusting())
+ states.add(AccessibleState.BUSY);
+ return states;
+ }
+
+ /**
+ * Returns an implementation of the <code>AccessibleValue</code>
+ * interface for this accessible object. In this case, the
+ * current instance is simply returned (with a more appropriate
+ * type), as it also implements the accessible value as well as
+ * the context.
+ *
+ * @return the accessible value associated with this context.
+ *
+ * @see javax.accessibility.AccessibleValue
+ */
+ public AccessibleValue getAccessibleValue()
+ {
+ return this;
+ }
+
+ /**
+ * Returns the current value of this accessible object.
+ * In this case, this is the same as the value for
+ * the scrollbar, wrapped in an <code>Integer</code>
+ * object.
+ *
+ * @return the numeric value of this scrollbar.
+ *
+ * @see javax.accessibility.AccessibleValue#getCurrentAccessibleValue()
+ */
+ public Number getCurrentAccessibleValue()
+ {
+ return new Integer(getValue());
+ }
+
+ /**
+ * Sets the current value of this accessible object
+ * to that supplied. In this case, the value of the
+ * scrollbar is set, and this method always returns
+ * true.
+ *
+ * @param number the new accessible value.
+ *
+ * @return true if the value was set.
+ *
+ * @see javax.accessibility.AccessibleValue#setCurrentAccessibleValue(java.lang.Number)
+ */
+ public boolean setCurrentAccessibleValue(Number number)
+ {
+ setValue(number.intValue());
+ return true;
+ }
+
+ /**
+ * Returns the minimum acceptable accessible value used
+ * by this object. In this case, this is the same as
+ * the minimum value of the scrollbar, wrapped in an
+ * object.
+ *
+ * @return the minimum value of this scrollbar.
+ *
+ * @see javax.accessibility.AccessibleValue#getMinimumAccessibleValue()
+ */
+ public Number getMinimumAccessibleValue()
+ {
+ return new Integer(getMinimum());
+ }
+
+ /**
+ * Returns the maximum acceptable accessible value used
+ * by this object. In this case, this is the same as
+ * the maximum value of the scrollbar, wrapped in an
+ * object.
+ *
+ * @return the maximum value of this scrollbar.
+ *
+ * @see javax.accessibility.AccessibleValue#getMaximumAccessibleValue()
+ */
+ public Number getMaximumAccessibleValue()
+ {
+ return new Integer(getMaximum());
+ }
+ }
+
+ /**
+ * Gets the AccessibleContext associated with this <code>Scrollbar</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTScrollBar();
+
+ return accessibleContext;
+ }
+}
diff --git a/libjava/java/awt/Shape.java b/libjava/java/awt/Shape.java
index 47c97192a17..1a0852b8d12 100644
--- a/libjava/java/awt/Shape.java
+++ b/libjava/java/awt/Shape.java
@@ -1,5 +1,5 @@
/* Shape.java -- the classic Object-Oriented shape interface
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,7 +54,7 @@ import java.awt.geom.Rectangle2D;
* Unclosed shapes are considered as implicitly closed when performing
* <code>contains</code> or <code>intersects</code>.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see PathIterator
* @see AffineTransform
* @see java.awt.geom.FlatteningPathIterator
diff --git a/libjava/java/awt/Stroke.java b/libjava/java/awt/Stroke.java
index 8b9b7fc777f..1fe1568a4fc 100644
--- a/libjava/java/awt/Stroke.java
+++ b/libjava/java/awt/Stroke.java
@@ -1,5 +1,5 @@
/* Stroke.java -- a stroked outline of a shape
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.awt;
* Strokes must be immutable, because the graphics object does not clone
* them.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see BasicStroke
* @see Graphics2D#setStroke(Stroke)
* @since 1.1
diff --git a/libjava/java/awt/SystemColor.java b/libjava/java/awt/SystemColor.java
index 3428fba3cc5..90aa577037b 100644
--- a/libjava/java/awt/SystemColor.java
+++ b/libjava/java/awt/SystemColor.java
@@ -1,5 +1,5 @@
/* SystemColor.java -- access dynamic system color values
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,8 +52,8 @@ import java.io.Serializable;
* track the actual color of instances in this class. This means that equals
* may give surprising results; you are better off relying on getRGB.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/TextArea.java b/libjava/java/awt/TextArea.java
index 9efc7754a20..dda45f34478 100644
--- a/libjava/java/awt/TextArea.java
+++ b/libjava/java/awt/TextArea.java
@@ -613,8 +613,17 @@ public class TextArea extends TextComponent implements java.io.Serializable
}
}
+ /**
+ * Gets the AccessibleContext associated with this <code>TextArea</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
public AccessibleContext getAccessibleContext()
{
- return new AccessibleAWTTextArea();
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTTextArea();
+ return accessibleContext;
}
}
diff --git a/libjava/java/awt/TextComponent.java b/libjava/java/awt/TextComponent.java
index 8f9f875acf3..4c384391adf 100644
--- a/libjava/java/awt/TextComponent.java
+++ b/libjava/java/awt/TextComponent.java
@@ -46,6 +46,7 @@ import java.text.BreakIterator;
import java.util.EventListener;
import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleState;
import javax.accessibility.AccessibleStateSet;
@@ -690,6 +691,21 @@ paramString()
return (TextListener[]) getListeners (TextListener.class);
}
+ /**
+ * Gets the AccessibleContext associated with this <code>TextComponent</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTTextComponent();
+ return accessibleContext;
+ }
+
+
/*******************************/
// Provide AccessibleAWTTextComponent access to several peer functions that
// aren't publicly exposed.
diff --git a/libjava/java/awt/Toolkit.java b/libjava/java/awt/Toolkit.java
index 504572a2d5b..c7f2de95620 100644
--- a/libjava/java/awt/Toolkit.java
+++ b/libjava/java/awt/Toolkit.java
@@ -1,5 +1,5 @@
/* Toolkit.java -- AWT Toolkit superclass
- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -91,7 +91,7 @@ import java.util.Properties;
* toolkit <code>gnu.java.awt.peer.gtk.GtkToolkit</code> is used. This
* toolkit creates its peers using the GTK+ toolkit.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
*/
public abstract class Toolkit
{
@@ -526,6 +526,10 @@ public abstract class Toolkit
toolkit = (Toolkit) obj;
return toolkit;
}
+ catch (ThreadDeath death)
+ {
+ throw death;
+ }
catch (Throwable t)
{
AWTError e = new AWTError("Cannot load AWT toolkit: " + toolkit_name);
diff --git a/libjava/java/awt/Transparency.java b/libjava/java/awt/Transparency.java
index fc01f583955..9636458ff2e 100644
--- a/libjava/java/awt/Transparency.java
+++ b/libjava/java/awt/Transparency.java
@@ -40,7 +40,7 @@ package java.awt;
/**
* A common transparency mode for layering graphics.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/Window.java b/libjava/java/awt/Window.java
index d084bb4350b..0a39d20b1ff 100644
--- a/libjava/java/awt/Window.java
+++ b/libjava/java/awt/Window.java
@@ -56,12 +56,15 @@ import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
/**
* This class represents a top-level window with no decorations.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class Window extends Container implements Accessible
{
@@ -84,11 +87,31 @@ public class Window extends Container implements Accessible
private transient WindowFocusListener windowFocusListener;
private transient WindowStateListener windowStateListener;
private transient GraphicsConfiguration graphicsConfiguration;
- private transient AccessibleContext accessibleContext;
private transient boolean shown;
private transient Component windowFocusOwner;
+
+ /*
+ * The number used to generate the name returned by getName.
+ */
+ private static transient long next_window_number;
+
+ protected class AccessibleAWTWindow extends AccessibleAWTContainer
+ {
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.WINDOW;
+ }
+
+ public AccessibleStateSet getAccessibleStateSet()
+ {
+ AccessibleStateSet states = super.getAccessibleStateSet();
+ if (isActive())
+ states.add(AccessibleState.ACTIVE);
+ return states;
+ }
+ }
/**
* This (package access) constructor is used by subclasses that want
@@ -200,12 +223,11 @@ public class Window extends Container implements Accessible
&& gc.getDevice().getType() != GraphicsDevice.TYPE_RASTER_SCREEN)
throw new IllegalArgumentException ("gc must be from a screen device");
- // FIXME: until we implement this, it just causes AWT to crash.
-// if (gc == null)
-// graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment()
-// .getDefaultScreenDevice()
-// .getDefaultConfiguration();
-// else
+ if (gc == null)
+ graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment()
+ .getDefaultScreenDevice()
+ .getDefaultConfiguration();
+ else
graphicsConfiguration = gc;
}
@@ -672,8 +694,34 @@ public class Window extends Container implements Accessible
}
}
}
+
+ /**
+ * Identifies if this window is active. The active window is a Frame or
+ * Dialog that has focus or owns the active window.
+ *
+ * @return true if active, else false.
+ * @since 1.4
+ */
+ public boolean isActive()
+ {
+ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager ();
+ return manager.getActiveWindow() == this;
+ }
/**
+ * Identifies if this window is focused. A window is focused if it is the
+ * focus owner or it contains the focus owner.
+ *
+ * @return true if focused, else false.
+ * @since 1.4
+ */
+ public boolean isFocused()
+ {
+ KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager ();
+ return manager.getFocusedWindow() == this;
+ }
+
+ /**
* Returns the child window that has focus if this window is active.
* This method returns <code>null</code> if this window is not active
* or no children have focus.
@@ -731,6 +779,22 @@ public class Window extends Container implements Accessible
return super.isShowing();
}
+ public void setLocationRelativeTo (Component c)
+ {
+ if (c == null || !c.isShowing ())
+ {
+ int x = 0;
+ int y = 0;
+
+ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment ();
+ Point center = ge.getCenterPoint ();
+ x = center.x - (width / 2);
+ y = center.y - (height / 2);
+ setLocation (x, y);
+ }
+ // FIXME: handle case where component is non-null.
+ }
+
/**
* @since 1.2
*
@@ -754,11 +818,18 @@ public class Window extends Container implements Accessible
applyResourceBundle(rb);
}
+ /**
+ * Gets the AccessibleContext associated with this <code>Window</code>.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
public AccessibleContext getAccessibleContext()
{
- // FIXME
- //return null;
- throw new Error ("Not implemented");
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleAWTWindow();
+ return accessibleContext;
}
/**
@@ -866,17 +937,32 @@ public class Window extends Container implements Accessible
this.y = y;
width = w;
height = h;
- if (resized)
+ if (resized && isShowing ())
{
ComponentEvent ce =
new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED);
getToolkit().getSystemEventQueue().postEvent(ce);
}
- if (moved)
+ if (moved && isShowing ())
{
ComponentEvent ce =
new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED);
getToolkit().getSystemEventQueue().postEvent(ce);
}
}
+
+ /**
+ * Generate a unique name for this window.
+ *
+ * @return A unique name for this window.
+ */
+ String generateName()
+ {
+ return "win" + getUniqueLong();
+ }
+
+ private static synchronized long getUniqueLong()
+ {
+ return next_window_number++;
+ }
}
diff --git a/libjava/java/awt/color/CMMException.java b/libjava/java/awt/color/CMMException.java
index a0948ef27eb..04ef3e2c849 100644
--- a/libjava/java/awt/color/CMMException.java
+++ b/libjava/java/awt/color/CMMException.java
@@ -1,5 +1,5 @@
/* CMMException.java -- error in the native CMM
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt.color;
/**
* Thrown when there is an error in the native CMM.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
public class CMMException extends RuntimeException
diff --git a/libjava/java/awt/color/ColorSpace.java b/libjava/java/awt/color/ColorSpace.java
index 905bf9cd769..dd7121ec0bf 100644
--- a/libjava/java/awt/color/ColorSpace.java
+++ b/libjava/java/awt/color/ColorSpace.java
@@ -43,7 +43,7 @@ import java.io.Serializable;
/**
* NEEDS DOCUMENTATION
*
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
* @since 1.2
*/
public abstract class ColorSpace implements Serializable
diff --git a/libjava/java/awt/color/ICC_ColorSpace.java b/libjava/java/awt/color/ICC_ColorSpace.java
index 5cc526adb7a..d6771cd52d2 100644
--- a/libjava/java/awt/color/ICC_ColorSpace.java
+++ b/libjava/java/awt/color/ICC_ColorSpace.java
@@ -76,7 +76,7 @@ import java.io.ObjectInputStream;
* guaranteed to have transforms from the PCS to device space.
*
* @author Sven de Marothy
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
* @since 1.2
*/
public class ICC_ColorSpace extends ColorSpace
diff --git a/libjava/java/awt/color/ICC_Profile.java b/libjava/java/awt/color/ICC_Profile.java
index 79aa886ec49..791ea9f6cf1 100644
--- a/libjava/java/awt/color/ICC_Profile.java
+++ b/libjava/java/awt/color/ICC_Profile.java
@@ -79,7 +79,7 @@ import java.util.Hashtable;
* (available at www.color.org)
*
* @author Sven de Marothy
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
* @since 1.2
*/
public class ICC_Profile implements Serializable
@@ -316,8 +316,6 @@ public class ICC_Profile implements Serializable
*/
protected void finalize()
{
- header = null;
- tagTable = null;
}
/**
diff --git a/libjava/java/awt/color/ProfileDataException.java b/libjava/java/awt/color/ProfileDataException.java
index 89f47a207e1..53b6d28bc3a 100644
--- a/libjava/java/awt/color/ProfileDataException.java
+++ b/libjava/java/awt/color/ProfileDataException.java
@@ -1,5 +1,5 @@
/* ProfileDataException.java -- error in processing an ICC_Profile
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.color;
* Thrown when there is an error accessing or processing an
* <code>ICC_Profile</code>.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
public class ProfileDataException extends RuntimeException
diff --git a/libjava/java/awt/datatransfer/FlavorTable.java b/libjava/java/awt/datatransfer/FlavorTable.java
index 3822cdec60b..1275d924ac3 100644
--- a/libjava/java/awt/datatransfer/FlavorTable.java
+++ b/libjava/java/awt/datatransfer/FlavorTable.java
@@ -1,5 +1,5 @@
/* FlavorTable.java -- A relaxed mapping between flavors
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.List;
* native can map to multiple flavors, and any flavor can map to multiple
* natives; although the mappings are usually symmetric.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/datatransfer/MimeTypeParseException.java b/libjava/java/awt/datatransfer/MimeTypeParseException.java
index 42aecac0528..85331c2b447 100644
--- a/libjava/java/awt/datatransfer/MimeTypeParseException.java
+++ b/libjava/java/awt/datatransfer/MimeTypeParseException.java
@@ -1,5 +1,5 @@
/* MimeTypeParseException.java -- thrown when MIME string couldn't be parsed
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt.datatransfer;
/**
* MIME string couldn't be parsed correctly.
*
- * @author Mark Wielaard <mark@klomp.org>
+ * @author Mark Wielaard (mark@klomp.org)
* @status updated to 1.4
*/
public class MimeTypeParseException extends Exception
diff --git a/libjava/java/awt/datatransfer/Transferable.java b/libjava/java/awt/datatransfer/Transferable.java
index 2b499314306..8fa56e82d80 100644
--- a/libjava/java/awt/datatransfer/Transferable.java
+++ b/libjava/java/awt/datatransfer/Transferable.java
@@ -1,5 +1,5 @@
/* Transferable.java -- Data transfer source
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.io.IOException;
/**
* This interface is implemented by classes that can transfer data.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/datatransfer/UnsupportedFlavorException.java b/libjava/java/awt/datatransfer/UnsupportedFlavorException.java
index 620452be6f8..57ea8568ff3 100644
--- a/libjava/java/awt/datatransfer/UnsupportedFlavorException.java
+++ b/libjava/java/awt/datatransfer/UnsupportedFlavorException.java
@@ -1,5 +1,5 @@
/* UnsupportedFlavorException.java -- ata flavor is not valid
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt.datatransfer;
/**
* The data flavor requested is not supported for the transfer data.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Transferable#getTransferData(DataFlavor)
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/dnd/Autoscroll.java b/libjava/java/awt/dnd/Autoscroll.java
index ae868c077b3..054bba898f3 100644
--- a/libjava/java/awt/dnd/Autoscroll.java
+++ b/libjava/java/awt/dnd/Autoscroll.java
@@ -1,5 +1,5 @@
/* Autoscroll.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.Point;
* subject of the operation on a region of a scrollable GUI control that
* is not currently visible to the user.
*
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/dnd/DnDConstants.java b/libjava/java/awt/dnd/DnDConstants.java
index 3e78121a57a..e00b0003c2e 100644
--- a/libjava/java/awt/dnd/DnDConstants.java
+++ b/libjava/java/awt/dnd/DnDConstants.java
@@ -1,5 +1,5 @@
/* DnDConstants.java -- constants for drag-and-drop operations
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.dnd;
* This class contains various constants used in drag-and-drop operations.
* Why it is not an interface is beyond me.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
@@ -69,4 +69,9 @@ public final class DnDConstants
/** A synonym for {@link #ACTION_LINK}. */
public static final int ACTION_REFERENCE = ACTION_LINK;
-} // class DnDConstants
+
+ private DnDConstants()
+ {
+ // Do nothing here.
+ }
+}
diff --git a/libjava/java/awt/dnd/DragGestureListener.java b/libjava/java/awt/dnd/DragGestureListener.java
index 2673d0d5d1f..f8c7ab47466 100644
--- a/libjava/java/awt/dnd/DragGestureListener.java
+++ b/libjava/java/awt/dnd/DragGestureListener.java
@@ -1,5 +1,5 @@
/* DragGestureListener.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This is a listener for starting a drag-and-drop gesture. Upon receiving
* notification, the implementor then starts the drag operation.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see DragGestureRecognizer
* @see DragGestureEvent
* @see DragSource
diff --git a/libjava/java/awt/dnd/DragSourceAdapter.java b/libjava/java/awt/dnd/DragSourceAdapter.java
index 2b2e15541fd..8d65188f846 100644
--- a/libjava/java/awt/dnd/DragSourceAdapter.java
+++ b/libjava/java/awt/dnd/DragSourceAdapter.java
@@ -1,5 +1,5 @@
/* DragSourceAdapter.java -- drag-and-drop listener adapter
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.awt.dnd;
* a subset of these interfaces to extend this class and override only the
* desired methods.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see DragSourceEvent
* @see DragSourceListener
* @see DragSourceMotionListener
diff --git a/libjava/java/awt/dnd/DragSourceDropEvent.java b/libjava/java/awt/dnd/DragSourceDropEvent.java
index a645814f160..876b73d14dc 100644
--- a/libjava/java/awt/dnd/DragSourceDropEvent.java
+++ b/libjava/java/awt/dnd/DragSourceDropEvent.java
@@ -1,5 +1,5 @@
/* DragSourceDragEvent.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.awt.dnd;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
* @since 1.2
*
* Written using JDK 1.4.1 Online API
diff --git a/libjava/java/awt/dnd/DragSourceListener.java b/libjava/java/awt/dnd/DragSourceListener.java
index 2022a32ac76..c4a7bf2103f 100644
--- a/libjava/java/awt/dnd/DragSourceListener.java
+++ b/libjava/java/awt/dnd/DragSourceListener.java
@@ -1,5 +1,5 @@
/* DragSourceListener.java -- listen to events during the drag
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.util.EventListener;
* also use a <code>DragSourceAdapter</code> to filter the events you are
* interested in.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/dnd/DragSourceMotionListener.java b/libjava/java/awt/dnd/DragSourceMotionListener.java
index 38d025c3a06..d2568454486 100644
--- a/libjava/java/awt/dnd/DragSourceMotionListener.java
+++ b/libjava/java/awt/dnd/DragSourceMotionListener.java
@@ -1,5 +1,5 @@
/* DragSourceMotionListener.java -- tracks motion in the drag source
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.EventListener;
* event occurs. You can also use a <code>DragSourceAdapter</code> to filter
* the events you are interested in.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see DragSourceDragEvent
* @see DragSource
* @see DragSourceListener
diff --git a/libjava/java/awt/dnd/DropTarget.java b/libjava/java/awt/dnd/DropTarget.java
index 7379ca71c0d..2a8b79d8415 100644
--- a/libjava/java/awt/dnd/DropTarget.java
+++ b/libjava/java/awt/dnd/DropTarget.java
@@ -205,15 +205,14 @@ public class DropTarget
/**
* Adds a new <code>DropTargetListener</code>.
*
- * @exception TooManyListenersException If there is already a
- * <code>DropTargetListener</code>.
+ * @exception TooManyListenersException Sun's JDK does not, despite
+ * documentation, throw this exception here when you install an additional
+ * <code>DropTargetListener</code>. So to be compatible, we do the same
+ * thing.
*/
public void addDropTargetListener (DropTargetListener dtl)
throws TooManyListenersException
{
- if (dtl != null)
- throw new TooManyListenersException ();
-
dropTargetListener = dtl;
}
diff --git a/libjava/java/awt/dnd/DropTargetAdapter.java b/libjava/java/awt/dnd/DropTargetAdapter.java
index 4ece882121b..a9a81ac56d5 100644
--- a/libjava/java/awt/dnd/DropTargetAdapter.java
+++ b/libjava/java/awt/dnd/DropTargetAdapter.java
@@ -1,5 +1,5 @@
/* DragSourceAdapter.java -- drag-and-drop listener adapter
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.awt.dnd;
* a subset of these interfaces to extend this class and override only the
* desired methods.
*
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/dnd/DropTargetContext.java b/libjava/java/awt/dnd/DropTargetContext.java
index d61785545c9..0b3ba75b4b6 100644
--- a/libjava/java/awt/dnd/DropTargetContext.java
+++ b/libjava/java/awt/dnd/DropTargetContext.java
@@ -47,7 +47,7 @@ import java.util.Arrays;
import java.util.List;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
* @since 1.2
*/
public class DropTargetContext implements Serializable
diff --git a/libjava/java/awt/dnd/DropTargetListener.java b/libjava/java/awt/dnd/DropTargetListener.java
index 8025ff23920..1eda1e34822 100644
--- a/libjava/java/awt/dnd/DropTargetListener.java
+++ b/libjava/java/awt/dnd/DropTargetListener.java
@@ -1,5 +1,5 @@
/* DropTargetListener.java -- listen to events during the drop
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.awt.dnd;
import java.util.EventListener;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/dnd/InvalidDnDOperationException.java b/libjava/java/awt/dnd/InvalidDnDOperationException.java
index 927ab140627..d02c69b80d5 100644
--- a/libjava/java/awt/dnd/InvalidDnDOperationException.java
+++ b/libjava/java/awt/dnd/InvalidDnDOperationException.java
@@ -1,5 +1,5 @@
/* InvalidDnDOperationException.java -- thrown when drag-and-drop fails
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.awt.dnd;
* requested operation, usually because the underlying DnD system is in the
* wrong state.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/dnd/MouseDragGestureRecognizer.java b/libjava/java/awt/dnd/MouseDragGestureRecognizer.java
index 6b21b43c598..52e19b17476 100644
--- a/libjava/java/awt/dnd/MouseDragGestureRecognizer.java
+++ b/libjava/java/awt/dnd/MouseDragGestureRecognizer.java
@@ -1,5 +1,5 @@
/* MouseDragGestureRecognizer.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
*/
public abstract class MouseDragGestureRecognizer
extends DragGestureRecognizer
diff --git a/libjava/java/awt/dnd/peer/DropTargetContextPeer.java b/libjava/java/awt/dnd/peer/DropTargetContextPeer.java
index a2e3ba2189f..6c3816f00ac 100644
--- a/libjava/java/awt/dnd/peer/DropTargetContextPeer.java
+++ b/libjava/java/awt/dnd/peer/DropTargetContextPeer.java
@@ -1,5 +1,5 @@
/* DropTargetContextPeer.java -- interface for drag-and-drop peers
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import java.awt.dnd.InvalidDnDOperationException;
* with an associated <code>DropTarget</code> and visible geometry is first
* intersected by a logical cursor.
*
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
*/
public interface DropTargetContextPeer
{
diff --git a/libjava/java/awt/event/AWTEventListener.java b/libjava/java/awt/event/AWTEventListener.java
index b735ce1197b..b9ce7dc6690 100644
--- a/libjava/java/awt/event/AWTEventListener.java
+++ b/libjava/java/awt/event/AWTEventListener.java
@@ -1,5 +1,5 @@
/* AWTEventListener.java -- listen for all events in the AWT system
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.util.EventListener;
* system. In general, this should not be used except for classes like
* javax.accessibility or by event recorders.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see AWTEvent
* @see Toolkit#addAWTEventListener(AWTEventListener, long)
* @see Toolkit#removeAWTEventListener(AWTEventListener)
diff --git a/libjava/java/awt/event/AWTEventListenerProxy.java b/libjava/java/awt/event/AWTEventListenerProxy.java
index 7572e701a65..fef8ae70c5a 100644
--- a/libjava/java/awt/event/AWTEventListenerProxy.java
+++ b/libjava/java/awt/event/AWTEventListenerProxy.java
@@ -1,5 +1,5 @@
/* AWTEventListenerProxy.java -- wrapper/filter for AWTEventListener
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.EventListenerProxy;
* This class allows adding an AWTEventListener which only pays attention to
* a specific event mask.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Toolkit
* @see EventListenerProxy
* @since 1.4
diff --git a/libjava/java/awt/event/ActionEvent.java b/libjava/java/awt/event/ActionEvent.java
index 97f98070416..2b9763ee96d 100644
--- a/libjava/java/awt/event/ActionEvent.java
+++ b/libjava/java/awt/event/ActionEvent.java
@@ -1,5 +1,5 @@
/* ActionEvent.java -- an action has been triggered
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.awt.EventQueue;
* This event is generated when an action on a component (such as a
* button press) occurs.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ActionListener
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/awt/event/AdjustmentEvent.java b/libjava/java/awt/event/AdjustmentEvent.java
index 623dab5eaed..f7c7ae48e7c 100644
--- a/libjava/java/awt/event/AdjustmentEvent.java
+++ b/libjava/java/awt/event/AdjustmentEvent.java
@@ -1,5 +1,5 @@
/* AdjustmentEvent.java -- an adjustable value was changed
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.awt.Adjustable;
* This class represents an event that is generated when an adjustable
* value is changed.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Adjustable
* @see AdjustmentListener
* @since 1.1
diff --git a/libjava/java/awt/event/AdjustmentListener.java b/libjava/java/awt/event/AdjustmentListener.java
index 050528b00c9..d07663c5448 100644
--- a/libjava/java/awt/event/AdjustmentListener.java
+++ b/libjava/java/awt/event/AdjustmentListener.java
@@ -1,5 +1,5 @@
/* AdjustmentListener.java -- listen for adjustment events
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.EventListener;
/**
* Interface for classes that listen for adjustment events.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/event/ComponentAdapter.java b/libjava/java/awt/event/ComponentAdapter.java
index a8d6044fa2e..6ef78478405 100644
--- a/libjava/java/awt/event/ComponentAdapter.java
+++ b/libjava/java/awt/event/ComponentAdapter.java
@@ -1,5 +1,5 @@
/* ComponentAdapter.java -- convenience class for writing component listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.event;
* implementing only a subset of the <code>ComponentListener</code>
* interface to extend this class and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ComponentEvent
* @see ComponentListener
* @since 1.1
diff --git a/libjava/java/awt/event/ComponentEvent.java b/libjava/java/awt/event/ComponentEvent.java
index 0f208151d3c..08f0df7936f 100644
--- a/libjava/java/awt/event/ComponentEvent.java
+++ b/libjava/java/awt/event/ComponentEvent.java
@@ -1,5 +1,5 @@
/* ComponentEvent.java -- notification of events for components
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.awt.Component;
* is also the superclass for other events on components, but
* ComponentListeners ignore such subclasses.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ComponentAdapter
* @see ComponentListener
* @since 1.1
diff --git a/libjava/java/awt/event/ComponentListener.java b/libjava/java/awt/event/ComponentListener.java
index fbfc3335cf9..7f601740b31 100644
--- a/libjava/java/awt/event/ComponentListener.java
+++ b/libjava/java/awt/event/ComponentListener.java
@@ -1,5 +1,5 @@
/* ComponentListener.java -- receive all events for a component
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.util.EventListener;
* handles them internally, taking all appropriate actions. To watch a subset
* of these events, use a ComponentAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ComponentAdapter
* @see ComponentEvent
* @since 1.1
diff --git a/libjava/java/awt/event/ContainerAdapter.java b/libjava/java/awt/event/ContainerAdapter.java
index b4c97be47b0..bad475ecf04 100644
--- a/libjava/java/awt/event/ContainerAdapter.java
+++ b/libjava/java/awt/event/ContainerAdapter.java
@@ -1,5 +1,5 @@
/* ContainerAdapter.java -- convenience class for writing container listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.event;
* implementing only a subset of the <code>ContainerListener</code>
* interface to extend this class and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ContainerEvent
* @see ContainerListener
* @since 1.1
diff --git a/libjava/java/awt/event/ContainerEvent.java b/libjava/java/awt/event/ContainerEvent.java
index fe087d2e507..08c55faf63c 100644
--- a/libjava/java/awt/event/ContainerEvent.java
+++ b/libjava/java/awt/event/ContainerEvent.java
@@ -1,5 +1,5 @@
/* ContainerEvent.java -- components added/removed from a container
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.Container;
* container. Applications do not ordinarily need to handle these events
* since the AWT system handles them internally.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ContainerAdapter
* @see ContainerListener
* @since 1.1
diff --git a/libjava/java/awt/event/ContainerListener.java b/libjava/java/awt/event/ContainerListener.java
index a937e1550aa..2ad00f0b58d 100644
--- a/libjava/java/awt/event/ContainerListener.java
+++ b/libjava/java/awt/event/ContainerListener.java
@@ -1,5 +1,5 @@
/* ContainerListener.java -- listen for container events
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.util.EventListener;
* listens for and processes these events. To watch a subset of these events,
* use a ContainerAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ContainerAdapter
* @see ContainerEvent
* @since 1.1
diff --git a/libjava/java/awt/event/FocusAdapter.java b/libjava/java/awt/event/FocusAdapter.java
index 721878efccb..471c7f25c0a 100644
--- a/libjava/java/awt/event/FocusAdapter.java
+++ b/libjava/java/awt/event/FocusAdapter.java
@@ -1,5 +1,5 @@
/* FocusAdapter.java -- convenience class for writing focus listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.event;
* implementing only a subset of the <code>FocusListener</code> interface to
* extend this class and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see FocusEvent
* @see FocusListener
* @since 1.1
diff --git a/libjava/java/awt/event/FocusEvent.java b/libjava/java/awt/event/FocusEvent.java
index 9f2b98f762a..3bca6a7d49e 100644
--- a/libjava/java/awt/event/FocusEvent.java
+++ b/libjava/java/awt/event/FocusEvent.java
@@ -1,5 +1,5 @@
/* FocusEvent.java -- generated for a focus change
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.Component;
* during a sroll then returned, and permanent changes, such as when the user
* TABs through focusable components.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see FocusAdapter
* @see FocusListener
* @since 1.1
diff --git a/libjava/java/awt/event/FocusListener.java b/libjava/java/awt/event/FocusListener.java
index e372843cb2a..d8ef5a81e28 100644
--- a/libjava/java/awt/event/FocusListener.java
+++ b/libjava/java/awt/event/FocusListener.java
@@ -1,5 +1,5 @@
/* FocusListener.java -- listen for focus changes
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.EventListener;
* keyboard focus for a component. To watch a subset of these events, use a
* FocusAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see FocusAdapter
* @see FocusEvent
* @since 1.1
diff --git a/libjava/java/awt/event/InputEvent.java b/libjava/java/awt/event/InputEvent.java
index b2a1e3114ec..cd59afc299c 100644
--- a/libjava/java/awt/event/InputEvent.java
+++ b/libjava/java/awt/event/InputEvent.java
@@ -1,5 +1,5 @@
/* InputEvent.java -- common superclass of component input events
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import java.awt.Component;
* passed to listeners before the component, so that listeners can consume
* the event before it does its default behavior.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see KeyEvent
* @see KeyAdapter
* @see MouseEvent
diff --git a/libjava/java/awt/event/InputMethodEvent.java b/libjava/java/awt/event/InputMethodEvent.java
index 880025b0a9f..98dc4263341 100644
--- a/libjava/java/awt/event/InputMethodEvent.java
+++ b/libjava/java/awt/event/InputMethodEvent.java
@@ -1,5 +1,5 @@
/* InputMethodEvent.java -- events from a text input method
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import java.text.AttributedCharacterIterator;
/**
* This class is for event generated by change in a text input method.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see InputMethodListener
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/java/awt/event/InputMethodListener.java b/libjava/java/awt/event/InputMethodListener.java
index bf09ed89336..08de16f7d3c 100644
--- a/libjava/java/awt/event/InputMethodListener.java
+++ b/libjava/java/awt/event/InputMethodListener.java
@@ -1,5 +1,5 @@
/* InputMethodListener.java -- listen for input method events
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.EventListener;
* method. For a text component to use input methods, it must also install
* an InputMethodRequests handler.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see InputMethodEvent
* @see InputMethodRequests
* @since 1.2
diff --git a/libjava/java/awt/event/InvocationEvent.java b/libjava/java/awt/event/InvocationEvent.java
index fb58595c793..27546c010ec 100644
--- a/libjava/java/awt/event/InvocationEvent.java
+++ b/libjava/java/awt/event/InvocationEvent.java
@@ -1,5 +1,5 @@
/* InvocationEvent.java -- call a runnable when dispatched
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.awt.EventQueue;
* <code>invokeAndWait</code>, so client code can use this fact to avoid
* writing special-casing AWTEventListener objects.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ActiveEvent
* @see EventQueue#invokeLater(Runnable)
* @see EventQueue#invokeAndWait(Runnable)
diff --git a/libjava/java/awt/event/ItemEvent.java b/libjava/java/awt/event/ItemEvent.java
index 43784a86504..f9c3ee2fcf4 100644
--- a/libjava/java/awt/event/ItemEvent.java
+++ b/libjava/java/awt/event/ItemEvent.java
@@ -1,5 +1,5 @@
/* ItemEvent.java -- event for item state changes
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.ItemSelectable;
* abstraction that distills a large number of individual mouse or keyboard
* events into a simpler "item selected" and "item deselected" events.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ItemSelectable
* @see ItemListener
* @since 1.1
diff --git a/libjava/java/awt/event/ItemListener.java b/libjava/java/awt/event/ItemListener.java
index 5c67357851b..cc8f8c79204 100644
--- a/libjava/java/awt/event/ItemListener.java
+++ b/libjava/java/awt/event/ItemListener.java
@@ -1,5 +1,5 @@
/* ItemListener.java -- listen for item events
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to receive events when an
* item's selection state changes.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ItemSelectable
* @see ItemEvent
* @since 1.1
diff --git a/libjava/java/awt/event/KeyAdapter.java b/libjava/java/awt/event/KeyAdapter.java
index c60fd52e245..d27786c4347 100644
--- a/libjava/java/awt/event/KeyAdapter.java
+++ b/libjava/java/awt/event/KeyAdapter.java
@@ -1,5 +1,5 @@
/* KeyAdapter.java -- convenience class for writing key listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.event;
* a subset of the <code>KeyListener</code> interface to extend this class
* and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see KeyEvent
* @see KeyListener
* @since 1.1
diff --git a/libjava/java/awt/event/KeyEvent.java b/libjava/java/awt/event/KeyEvent.java
index 7212c0c9791..cef05ae6241 100644
--- a/libjava/java/awt/event/KeyEvent.java
+++ b/libjava/java/awt/event/KeyEvent.java
@@ -1,5 +1,5 @@
/* KeyEvent.java -- event for key presses
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -70,8 +70,8 @@ import java.io.ObjectInputStream;
* as VK_ALL_CANDIDATES in place of ALT+VK_CONVERT. Do not rely on the value
* of the VK_* constants, except for VK_ENTER, VK_BACK_SPACE, and VK_TAB.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see KeyAdapter
* @see KeyListener
* @since 1.1
diff --git a/libjava/java/awt/event/KeyListener.java b/libjava/java/awt/event/KeyListener.java
index 7443eedd8fb..d46edf4f48f 100644
--- a/libjava/java/awt/event/KeyListener.java
+++ b/libjava/java/awt/event/KeyListener.java
@@ -1,5 +1,5 @@
/* KeyListener.java -- listen for keyboard presses
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to receive keyboard events. To
* watch a subset of these events, use a KeyAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see KeyAdapter
* @see KeyEvent
* @since 1.1
diff --git a/libjava/java/awt/event/MouseAdapter.java b/libjava/java/awt/event/MouseAdapter.java
index 2518d365576..5c8cbd0d51a 100644
--- a/libjava/java/awt/event/MouseAdapter.java
+++ b/libjava/java/awt/event/MouseAdapter.java
@@ -1,5 +1,5 @@
/* MouseAdapter.java -- convenience class for writing mouse listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.event;
* a subset of the <code>MouseListener</code> interface to extend this class
* and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see MouseEvent
* @see MouseListener
* @since 1.1
diff --git a/libjava/java/awt/event/MouseEvent.java b/libjava/java/awt/event/MouseEvent.java
index 7f3e014a2ea..6e43183dd05 100644
--- a/libjava/java/awt/event/MouseEvent.java
+++ b/libjava/java/awt/event/MouseEvent.java
@@ -1,5 +1,5 @@
/* MouseEvent.java -- a mouse event
- Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -63,8 +63,8 @@ import java.io.ObjectInputStream;
* virtual device, some platforms may clip the path to fit in the bounds of
* the component.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see MouseAdapter
* @see MouseListener
* @see MouseMotionAdapter
diff --git a/libjava/java/awt/event/MouseListener.java b/libjava/java/awt/event/MouseListener.java
index 6162b089769..8b60ef70447 100644
--- a/libjava/java/awt/event/MouseListener.java
+++ b/libjava/java/awt/event/MouseListener.java
@@ -1,5 +1,5 @@
/* MouseListener.java -- listen for mouse clicks and crossing component edges
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.EventListener;
* use MouseWheelListener. To watch a subset of these events, use a
* MouseAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see MouseAdapter
* @see MouseEvent
* @since 1.1
diff --git a/libjava/java/awt/event/MouseMotionAdapter.java b/libjava/java/awt/event/MouseMotionAdapter.java
index cc7498820c7..0500cc5f58a 100644
--- a/libjava/java/awt/event/MouseMotionAdapter.java
+++ b/libjava/java/awt/event/MouseMotionAdapter.java
@@ -1,5 +1,5 @@
/* MouseMotionAdapter.java -- convenience class for mouse motion listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.event;
* implementing only a subset of the <code>MouseMotionListener</code>
* interface to extend this class and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see MouseEvent
* @see MouseMotionListener
* @since 1.1
diff --git a/libjava/java/awt/event/MouseMotionListener.java b/libjava/java/awt/event/MouseMotionListener.java
index 16ced33c1f4..1a003eaca80 100644
--- a/libjava/java/awt/event/MouseMotionListener.java
+++ b/libjava/java/awt/event/MouseMotionListener.java
@@ -1,5 +1,5 @@
/* MouseMotionListener.java -- listen to mouse motion events
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.util.EventListener;
* track other mouse events, use MouseListener or MouseWheelListener. To
* watch a subset of these events, use a MouseMotionAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see MouseMotionAdapter
* @see MouseEvent
* @since 1.1
diff --git a/libjava/java/awt/event/MouseWheelEvent.java b/libjava/java/awt/event/MouseWheelEvent.java
index 88d31a5467a..c16705759e7 100644
--- a/libjava/java/awt/event/MouseWheelEvent.java
+++ b/libjava/java/awt/event/MouseWheelEvent.java
@@ -1,5 +1,5 @@
/* MouseWheelEvent.java -- a mouse wheel event
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import java.awt.Component;
* "blocks" (pages at a time). The initial setting is taken from the platform,
* although the user can adjust the setting at any time.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see MouseWheelListener
* @see ScrollPane
* @see ScrollPane#setWheelScrollingEnabled(boolean)
diff --git a/libjava/java/awt/event/MouseWheelListener.java b/libjava/java/awt/event/MouseWheelListener.java
index 15cbd0370f1..cfb5528f4f8 100644
--- a/libjava/java/awt/event/MouseWheelListener.java
+++ b/libjava/java/awt/event/MouseWheelListener.java
@@ -1,5 +1,5 @@
/* MouseWheelListener.java -- listen for mouse wheel events
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to receive mouse wheel events. For
* other events, use MouseListener or MouseMotionListener.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see MouseWheelEvent
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/awt/event/PaintEvent.java b/libjava/java/awt/event/PaintEvent.java
index 107c6b390b6..c11e2b65fa4 100644
--- a/libjava/java/awt/event/PaintEvent.java
+++ b/libjava/java/awt/event/PaintEvent.java
@@ -1,5 +1,5 @@
/* PaintEvent.java -- an area of the screen needs to be repainted
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.awt.Rectangle;
* This event is not meant for users, but exists to allow proper serialization
* behavior in the EventQueue with user-accessible events.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/event/TextEvent.java b/libjava/java/awt/event/TextEvent.java
index 58d9ab6086f..7cf44b4c0d6 100644
--- a/libjava/java/awt/event/TextEvent.java
+++ b/libjava/java/awt/event/TextEvent.java
@@ -1,5 +1,5 @@
/* TextEvent.java -- event for text changes
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.awt.AWTEvent;
* abstraction that distills a large number of individual mouse or keyboard
* events into a simpler "text changed" event.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see TextComponent
* @see TextListener
* @since 1.1
diff --git a/libjava/java/awt/event/TextListener.java b/libjava/java/awt/event/TextListener.java
index efdd103d509..f764783510c 100644
--- a/libjava/java/awt/event/TextListener.java
+++ b/libjava/java/awt/event/TextListener.java
@@ -1,5 +1,5 @@
/* TextListener.java -- listen for text changes
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to be notified when text changes
* in a component.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see TextEvent
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/awt/event/WindowAdapter.java b/libjava/java/awt/event/WindowAdapter.java
index 5dea18c3e8f..39292862d29 100644
--- a/libjava/java/awt/event/WindowAdapter.java
+++ b/libjava/java/awt/event/WindowAdapter.java
@@ -1,5 +1,5 @@
/* WindowAdapter.java -- convenience class for writing window listeners
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.awt.event;
* interested in listening to only a subset of any <code>WindowEvent</code>
* actions to extend this class and override only the desired methods.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see ComponentEvent
* @see ComponentListener
* @since 1.1
diff --git a/libjava/java/awt/event/WindowEvent.java b/libjava/java/awt/event/WindowEvent.java
index 6e40d5165b8..68a8c25d08b 100644
--- a/libjava/java/awt/event/WindowEvent.java
+++ b/libjava/java/awt/event/WindowEvent.java
@@ -1,5 +1,5 @@
/* WindowEvent.java -- window change event
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.awt.Window;
* like maximization, and WindowFocusListeners deal with focus switching to
* or from a window.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see WindowAdapter
* @see WindowListener
* @see WindowFocusListener
diff --git a/libjava/java/awt/event/WindowFocusListener.java b/libjava/java/awt/event/WindowFocusListener.java
index de684fbfce1..42034b7c7ab 100644
--- a/libjava/java/awt/event/WindowFocusListener.java
+++ b/libjava/java/awt/event/WindowFocusListener.java
@@ -1,5 +1,5 @@
/* WindowFocusListener.java -- listens for window focus events
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to monitor events for window
* focus changes. To watch a subset of these events, use a WindowAdapter.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see WindowAdapter
* @see WindowEvent
* @since 1.4
diff --git a/libjava/java/awt/event/WindowListener.java b/libjava/java/awt/event/WindowListener.java
index ab22c8fb826..8bbcabaf64d 100644
--- a/libjava/java/awt/event/WindowListener.java
+++ b/libjava/java/awt/event/WindowListener.java
@@ -1,5 +1,5 @@
/* WindowListener.java -- listens for window events
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to monitor events for window
* changes. To watch a subset of these events, use a WindowAdapter.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see WindowAdapter
* @see WindowEvent
* @since 1.1
diff --git a/libjava/java/awt/event/WindowStateListener.java b/libjava/java/awt/event/WindowStateListener.java
index 2d870a8dd9f..dcf4496c796 100644
--- a/libjava/java/awt/event/WindowStateListener.java
+++ b/libjava/java/awt/event/WindowStateListener.java
@@ -1,5 +1,5 @@
/* WindowStateListener.java -- listens for window state changes
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.EventListener;
* This interface is for classes that wish to monitor events for window
* state changes.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see WindowAdapter
* @see WindowEvent
* @since 1.4
diff --git a/libjava/java/awt/font/TextAttribute.java b/libjava/java/awt/font/TextAttribute.java
index 7d5444677a9..e63d2955e56 100644
--- a/libjava/java/awt/font/TextAttribute.java
+++ b/libjava/java/awt/font/TextAttribute.java
@@ -1,5 +1,5 @@
/* TextAttribute.java --
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,83 +41,269 @@ package java.awt.font;
import java.io.InvalidObjectException;
import java.text.AttributedCharacterIterator;
+/**
+ * Attributes (and associated values) that can be used to define an
+ * {@link java.text.AttributedString}.
+ */
public final class TextAttribute extends AttributedCharacterIterator.Attribute
{
private static final long serialVersionUID = 7744112784117861702L;
+ /** A key for the background paint attribute. */
public static final TextAttribute BACKGROUND =
- new TextAttribute ("BACKGROUND");
+ new TextAttribute("background");
+
+ /** A key for the BIDI_EMBEDDING attribute. */
public static final TextAttribute BIDI_EMBEDDING =
- new TextAttribute ("BIDI_EMBEDDING");
+ new TextAttribute("bidi_embedding");
+
+ /** A key for the CHAR_REPLACEMENT attribute. */
public static final TextAttribute CHAR_REPLACEMENT =
- new TextAttribute ("CHAR_REPLACEMENT");
- public static final TextAttribute FAMILY = new TextAttribute ("FAMILY");
- public static final TextAttribute FONT = new TextAttribute ("FONT");
- public static final TextAttribute FOREGROUND =
- new TextAttribute ("FOREGROUND");
+ new TextAttribute("char_replacement");
+
+ /** A key for the FAMILY attribute. */
+ public static final TextAttribute FAMILY = new TextAttribute("family");
+
+ /** A key for the font attribute. */
+ public static final TextAttribute FONT = new TextAttribute("font");
+
+ /** A key for the foreground paint attribute. */
+ public static final TextAttribute FOREGROUND =
+ new TextAttribute("foreground");
+
+ /** A key for the INPUT_METHOD_HIGHLIGHT attribute. */
public static final TextAttribute INPUT_METHOD_HIGHLIGHT =
- new TextAttribute ("INPUT_METHOD_HIGHLIGHT");
+ new TextAttribute("input method highlight");
+
+ /** A key for the INPUT_METHOD_UNDERLINE attribute. */
public static final TextAttribute INPUT_METHOD_UNDERLINE =
- new TextAttribute ("INPUT_METHOD_UNDERLINE");
+ new TextAttribute("input method underline");
+
+ /** A key for the text justification attribute. */
public static final TextAttribute JUSTIFICATION =
- new TextAttribute ("JUSTIFICATION");
- public static final Float JUSTIFICATION_FULL = new Float (1.0);
- public static final Float JUSTIFICATION_NONE = new Float (0.0);
+ new TextAttribute("justification");
+
+ /**
+ * A value that can be used with the {@link #JUSTIFICATION} attribute to
+ * indicate full justification of the text.
+ */
+ public static final Float JUSTIFICATION_FULL = new Float(1.0);
+
+ /**
+ * A value that can be used with the {@link #JUSTIFICATION} attribute to
+ * indicate no justification of the text.
+ */
+ public static final Float JUSTIFICATION_NONE = new Float(0.0);
+
+ /** A key for the NUMERIC_SHAPING attribute. */
public static final TextAttribute NUMERIC_SHAPING =
- new TextAttribute ("NUMERIC_SHAPING");
- public static final TextAttribute POSTURE = new TextAttribute ("POSTURE");
- public static final Float POSTURE_OBLIQUE = new Float (0.2);
- public static final Float POSTURE_REGULAR = new Float (0.0);
+ new TextAttribute("numeric_shaping");
+
+ /** A key for the POSTURE attribute. */
+ public static final TextAttribute POSTURE = new TextAttribute("posture");
+
+ /** A value that can be used with the {@link #POSTURE} attribute. */
+ public static final Float POSTURE_OBLIQUE = new Float(0.2);
+
+ /** A value that can be used with the {@link #POSTURE} attribute. */
+ public static final Float POSTURE_REGULAR = new Float(0.0);
+
+ /** A key for the RUN_DIRECTION attribute. */
public static final TextAttribute RUN_DIRECTION =
- new TextAttribute ("RUN_DIRECTION");
- public static final Boolean RUN_DIRECTION_LTR = Boolean.TRUE;
- public static final Boolean RUN_DIRECTION_RTL = Boolean.FALSE;
- public static final TextAttribute SIZE = new TextAttribute ("SIZE");
+ new TextAttribute("run_direction");
+
+ /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */
+ public static final Boolean RUN_DIRECTION_LTR = Boolean.FALSE;
+
+ /** A value that can be used with the {@link #RUN_DIRECTION} attribute. */
+ public static final Boolean RUN_DIRECTION_RTL = Boolean.TRUE;
+
+ /** A key for the text size attribute. */
+ public static final TextAttribute SIZE = new TextAttribute("size");
+
+ /** A key for the STRIKETHROUGH attribute. */
public static final TextAttribute STRIKETHROUGH =
- new TextAttribute ("STRIKETHROUGH");
+ new TextAttribute("strikethrough");
+
+ /** A value that can be used with the {@link #STRIKETHROUGH} attribute. */
public static final Boolean STRIKETHROUGH_ON = Boolean.TRUE;
+
+ /** A key for the SUPERSCRIPT attribute. */
public static final TextAttribute SUPERSCRIPT =
- new TextAttribute ("SUPERSCRIPT");
- public static final Integer SUPERSCRIPT_SUB = new Integer (-1);
- public static final Integer SUPERSCRIPT_SUPER = new Integer (1);
+ new TextAttribute("superscript");
+
+ /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */
+ public static final Integer SUPERSCRIPT_SUB = new Integer(-1);
+
+ /** A value that can be used with the {@link #SUPERSCRIPT} attribute. */
+ public static final Integer SUPERSCRIPT_SUPER = new Integer(1);
+
+ /** A key for the SWAP_COLORS attribute. */
public static final TextAttribute SWAP_COLORS =
- new TextAttribute ("SWAP_COLORS");
+ new TextAttribute("swap_colors");
+
+ /** A value that can be used with the {@link #SWAP_COLORS} attribute. */
public static final Boolean SWAP_COLORS_ON = Boolean.TRUE;
- public static final TextAttribute TRANSFORM = new TextAttribute ("TRANSFORM");
- public static final TextAttribute UNDERLINE = new TextAttribute ("UNDERLINE");
- public static final Integer UNDERLINE_LOW_DASHED = new Integer (0);
- public static final Integer UNDERLINE_LOW_DOTTED = new Integer (0);
- public static final Integer UNDERLINE_LOW_GRAY = new Integer (0);
- public static final Integer UNDERLINE_LOW_ONE_PIXEL = new Integer (0);
- public static final Integer UNDERLINE_LOW_TWO_PIXEL = new Integer (0);
- public static final Integer UNDERLINE_ON = new Integer (0);
- public static final TextAttribute WEIGHT = new TextAttribute ("WEIGHT");
- public static final Float WEIGHT_BOLD = new Float (2.0);
- public static final Float WEIGHT_DEMIBOLD = new Float (1.75);
- public static final Float WEIGHT_DEMILIGHT = new Float (0.875);
- public static final Float WEIGHT_EXTRA_LIGHT = new Float (0.5);
- public static final Float WEIGHT_EXTRABOLD = new Float (2.5);
- public static final Float WEIGHT_HEAVY = new Float (2.25);
- public static final Float WEIGHT_LIGHT = new Float (0.75);
- public static final Float WEIGHT_MEDIUM = new Float (1.5);
- public static final Float WEIGHT_REGULAR = new Float (1.0);
- public static final Float WEIGHT_SEMIBOLD = new Float (1.25);
- public static final Float WEIGHT_ULTRABOLD = new Float (2.75);
- public static final TextAttribute WIDTH = new TextAttribute ("");
- public static final Float WIDTH_CONDENSED = new Float (0.75);
- public static final Float WIDTH_EXTENDED = new Float (1.5);
- public static final Float WIDTH_REGULAR = new Float (1.0);
- public static final Float WIDTH_SEMI_CONDENSED = new Float (0.875);
- public static final Float WIDTH_SEMI_EXTENDED = new Float (1.25);
-
- protected TextAttribute (String name)
+
+ /** A key for the TRANFORM attribute. */
+ public static final TextAttribute TRANSFORM = new TextAttribute("transform");
+
+ /** A key for the UNDERLINE attribute. */
+ public static final TextAttribute UNDERLINE = new TextAttribute("underline");
+
+ /** A value that can be used with the {@link #UNDERLINE} attribute. */
+ public static final Integer UNDERLINE_LOW_DASHED = new Integer(5);
+
+ /** A value that can be used with the {@link #UNDERLINE} attribute. */
+ public static final Integer UNDERLINE_LOW_DOTTED = new Integer(3);
+
+ /** A value that can be used with the {@link #UNDERLINE} attribute. */
+ public static final Integer UNDERLINE_LOW_GRAY = new Integer(4);
+
+ /** A value that can be used with the {@link #UNDERLINE} attribute. */
+ public static final Integer UNDERLINE_LOW_ONE_PIXEL = new Integer(1);
+
+ /** A value that can be used with the {@link #UNDERLINE} attribute. */
+ public static final Integer UNDERLINE_LOW_TWO_PIXEL = new Integer(2);
+
+ /** A value that can be used with the {@link #UNDERLINE} attribute. */
+ public static final Integer UNDERLINE_ON = new Integer(0);
+
+ /** A key for the WEIGHT attribute. */
+ public static final TextAttribute WEIGHT = new TextAttribute("weight");
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_BOLD = new Float(2.0);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_DEMIBOLD = new Float(1.75);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_DEMILIGHT = new Float(0.875);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_EXTRA_LIGHT = new Float(0.5);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_EXTRABOLD = new Float(2.5);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_HEAVY = new Float(2.25);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_LIGHT = new Float(0.75);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_MEDIUM = new Float(1.5);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_REGULAR = new Float(1.0);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_SEMIBOLD = new Float(1.25);
+
+ /** A value that can be used with the {@link #WEIGHT} attribute. */
+ public static final Float WEIGHT_ULTRABOLD = new Float(2.75);
+
+ /** A key for the WIDTH attribute. */
+ public static final TextAttribute WIDTH = new TextAttribute("width");
+
+ /** A value that can be used with the {@link #WIDTH} attribute. */
+ public static final Float WIDTH_CONDENSED = new Float(0.75);
+
+ /** A value that can be used with the {@link #WIDTH} attribute. */
+ public static final Float WIDTH_EXTENDED = new Float(1.5);
+
+ /** A value that can be used with the {@link #WIDTH} attribute. */
+ public static final Float WIDTH_REGULAR = new Float(1.0);
+
+ /** A value that can be used with the {@link #WIDTH} attribute. */
+ public static final Float WIDTH_SEMI_CONDENSED = new Float(0.875);
+
+ /** A value that can be used with the {@link #WIDTH} attribute. */
+ public static final Float WIDTH_SEMI_EXTENDED = new Float(1.25);
+
+ /**
+ * Creates a new attribute.
+ *
+ * @param name the name.
+ */
+ protected TextAttribute(String name)
{
- super (name);
+ super(name);
}
- protected Object readResolve ()
+ /**
+ * After deserialization, this method ensures that only one instance of
+ * each attribute is used.
+ *
+ * @return The (single) attribute instance.
+ *
+ * @throws InvalidObjectException if the attribute is not recognised.
+ */
+ protected Object readResolve()
throws InvalidObjectException
{
- throw new Error ("not implemented");
+ if (this.getName().equals("background"))
+ return BACKGROUND;
+
+ if (this.getName().equals("bidi_embedding"))
+ return BIDI_EMBEDDING;
+
+ if (this.getName().equals("char_replacement"))
+ return CHAR_REPLACEMENT;
+
+ if (this.getName().equals("family"))
+ return FAMILY;
+
+ if (this.getName().equals("font"))
+ return FONT;
+
+ if (this.getName().equals("foreground"))
+ return FOREGROUND;
+
+ if (this.getName().equals("input method highlight"))
+ return INPUT_METHOD_HIGHLIGHT;
+
+ if (this.getName().equals("input method underline"))
+ return INPUT_METHOD_UNDERLINE;
+
+ if (this.getName().equals("justification"))
+ return JUSTIFICATION;
+
+ if (this.getName().equals("numeric_shaping"))
+ return NUMERIC_SHAPING;
+
+ if (this.getName().equals("posture"))
+ return POSTURE;
+
+ if (this.getName().equals("run_direction"))
+ return RUN_DIRECTION;
+
+ if (this.getName().equals("size"))
+ return SIZE;
+
+ if (this.getName().equals("strikethrough"))
+ return STRIKETHROUGH;
+
+ if (this.getName().equals("superscript"))
+ return SUPERSCRIPT;
+
+ if (this.getName().equals("swap_colors"))
+ return SWAP_COLORS;
+
+ if (this.getName().equals("transform"))
+ return TRANSFORM;
+
+ if (this.getName().equals("underline"))
+ return UNDERLINE;
+
+ if (this.getName().equals("weight"))
+ return WEIGHT;
+
+ if (this.getName().equals("width"))
+ return WIDTH;
+
+ throw new InvalidObjectException("Can't resolve Attribute: " + getName());
}
}
diff --git a/libjava/java/awt/font/TextHitInfo.java b/libjava/java/awt/font/TextHitInfo.java
index daeb7c689b3..2629ad2a54d 100644
--- a/libjava/java/awt/font/TextHitInfo.java
+++ b/libjava/java/awt/font/TextHitInfo.java
@@ -1,5 +1,5 @@
/* TextHitInfo.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.awt.font;
/**
- * @author John Leuner <jewel@debian.org>
+ * @author John Leuner (jewel@debian.org)
*/
public final class TextHitInfo
{
diff --git a/libjava/java/awt/font/TransformAttribute.java b/libjava/java/awt/font/TransformAttribute.java
index b2417041961..3bb3c3cf1c3 100644
--- a/libjava/java/awt/font/TransformAttribute.java
+++ b/libjava/java/awt/font/TransformAttribute.java
@@ -1,5 +1,5 @@
-/* TransformAttribute.java
- Copyright (C) 2003 Free Software Foundation, Inc.
+/* TransformAttribute.java --
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,6 +42,13 @@ import java.awt.geom.AffineTransform;
import java.io.Serializable;
/**
+ * This class provides a mechanism for using an {@link AffineTransform} as
+ * an <i>immutable</i> attribute (for example, in the
+ * {@link java.text.AttributedString} class). Any transform passed to
+ * this class is copied before being stored, and any transform handed out
+ * by this class is a copy of the stored transform. In this way, it is
+ * not possible to modify the stored transform.
+ *
* @author Michael Koch
*/
public final class TransformAttribute implements Serializable
@@ -50,20 +57,40 @@ public final class TransformAttribute implements Serializable
private AffineTransform affineTransform;
+ /**
+ * Creates a new attribute that contains a copy of the given transform.
+ *
+ * @param transform the transform (<code>null</code> not permitted).
+ *
+ * @throws IllegalArgumentException if <code>transform</code> is
+ * <code>null</code>.
+ */
public TransformAttribute (AffineTransform transform)
{
- if (transform != null)
+ if (transform == null)
{
- this.affineTransform = new AffineTransform (transform);
+ throw new IllegalArgumentException("Null 'transform' not permitted.");
}
+ this.affineTransform = new AffineTransform (transform);
}
+ /**
+ * Returns a copy of the transform contained by this attribute.
+ *
+ * @return A copy of the transform.
+ */
public AffineTransform getTransform ()
{
- return affineTransform;
+ return (AffineTransform) affineTransform.clone();
}
/**
+ * Returns <code>true</code> if the transform contained by this attribute is
+ * an identity transform, and <code>false</code> otherwise.
+ *
+ * @return <code>true</code> if the transform contained by this attribute is
+ * an identity transform, and <code>false</code> otherwise.
+ *
* @since 1.4
*/
public boolean isIdentity ()
diff --git a/libjava/java/awt/geom/Area.java b/libjava/java/awt/geom/Area.java
index 9b1b9d3b109..68f905f08f4 100644
--- a/libjava/java/awt/geom/Area.java
+++ b/libjava/java/awt/geom/Area.java
@@ -2631,11 +2631,9 @@ public class Area implements Shape, Cloneable
double P = (y2 - 2 * y1 + y0);
double Q = 2 * (y1 - y0);
- double R = y0;
double A = (x2 - 2 * x1 + x0);
double B = 2 * (x1 - x0);
- double C = x0;
double area = (B * P - A * Q) / 3.0;
return (area);
@@ -2937,12 +2935,10 @@ public class Area implements Shape, Cloneable
double P = y3 - 3 * y2 + 3 * y1 - y0;
double Q = 3 * (y2 + y0 - 2 * y1);
double R = 3 * (y1 - y0);
- double S = y0;
double A = x3 - 3 * x2 + 3 * x1 - x0;
double B = 3 * (x2 + x0 - 2 * x1);
double C = 3 * (x1 - x0);
- double D = x0;
double area = (B * P - A * Q) / 5.0 + (C * P - A * R) / 2.0
+ (C * Q - B * R) / 3.0;
diff --git a/libjava/java/awt/geom/CubicCurve2D.java b/libjava/java/awt/geom/CubicCurve2D.java
index 20373061d18..1c500b00b5e 100644
--- a/libjava/java/awt/geom/CubicCurve2D.java
+++ b/libjava/java/awt/geom/CubicCurve2D.java
@@ -642,11 +642,11 @@ public abstract class CubicCurve2D implements Shape, Cloneable
* @see #solveCubic(double[], double[])
* @see QuadCurve2D#solveQuadratic(double[],double[])
*
- * @author <a href="mailto:bjg@network-theory.com">Brian Gough</a>
+ * @author Brian Gough (bjg@network-theory.com)
* (original C implementation in the <a href=
* "http://www.gnu.org/software/gsl/">GNU Scientific Library</a>)
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
* (adaptation to Java)
*/
public static int solveCubic(double[] eqn)
@@ -689,11 +689,11 @@ public abstract class CubicCurve2D implements Shape, Cloneable
* result of -1 indicates that the equation is constant (i.e.,
* always or never zero).
*
- * @author <a href="mailto:bjg@network-theory.com">Brian Gough</a>
+ * @author Brain Gouph (bjg@network-theory.com)
* (original C implementation in the <a href=
* "http://www.gnu.org/software/gsl/">GNU Scientific Library</a>)
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
* (adaptation to Java)
*/
public static int solveCubic(double[] eqn, double[] res)
diff --git a/libjava/java/awt/geom/Dimension2D.java b/libjava/java/awt/geom/Dimension2D.java
index dbbdf6b25b3..8654c745ec0 100644
--- a/libjava/java/awt/geom/Dimension2D.java
+++ b/libjava/java/awt/geom/Dimension2D.java
@@ -42,8 +42,8 @@ package java.awt.geom;
* This stores a dimension in 2-dimensional space - a width (along the x-axis)
* and height (along the y-axis). The storage is left to subclasses.
*
- * @author Per Bothner <bothner@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/geom/Ellipse2D.java b/libjava/java/awt/geom/Ellipse2D.java
index bd64adf1e3a..85ba1d1e9a5 100644
--- a/libjava/java/awt/geom/Ellipse2D.java
+++ b/libjava/java/awt/geom/Ellipse2D.java
@@ -46,10 +46,10 @@ package java.awt.geom;
* The ellipse is defined by it's bounding box (shown in red),
* and is defined by the implicit curve:<BR>
* <blockquote>(<i>x</i>/<i>a</i>)<sup>2</sup> +
- * (<i>y</i>/<i>b</i>)<sup>2</sup> = 1<BR><BR>
+ * (<i>y</i>/<i>b</i>)<sup>2</sup> = 1<BR><BR></blockquote>
*
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
*
* @since 1.2
*/
diff --git a/libjava/java/awt/geom/IllegalPathStateException.java b/libjava/java/awt/geom/IllegalPathStateException.java
index f0e388aac55..3aa432df14c 100644
--- a/libjava/java/awt/geom/IllegalPathStateException.java
+++ b/libjava/java/awt/geom/IllegalPathStateException.java
@@ -41,7 +41,7 @@ package java.awt.geom;
* Thrown when an operation on a path is in an illegal state, such as appending
* a segment to a <code>GeneralPath</code> without an initial moveto.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see GeneralPath
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/geom/Line2D.java b/libjava/java/awt/geom/Line2D.java
index 05eedcde4b2..3b64f455727 100644
--- a/libjava/java/awt/geom/Line2D.java
+++ b/libjava/java/awt/geom/Line2D.java
@@ -46,8 +46,8 @@ import java.util.NoSuchElementException;
* Remember, on-screen graphics have increasing x from left-to-right, and
* increasing y from top-to-bottom. The storage is left to subclasses.
*
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @author David Gilbert
* @since 1.2
* @status updated to 1.4
@@ -867,7 +867,7 @@ public abstract class Line2D implements Shape, Cloneable
/**
* This class defines a point in <code>double</code> precision.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
@@ -1017,7 +1017,7 @@ public abstract class Line2D implements Shape, Cloneable
/**
* This class defines a point in <code>float</code> precision.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/geom/NoninvertibleTransformException.java b/libjava/java/awt/geom/NoninvertibleTransformException.java
index 40b2c180298..0fa36674d4e 100644
--- a/libjava/java/awt/geom/NoninvertibleTransformException.java
+++ b/libjava/java/awt/geom/NoninvertibleTransformException.java
@@ -42,7 +42,7 @@ package java.awt.geom;
* <code>AffineTransform</code>, but the transform is in a non-invertible
* state.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see AffineTransform
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/geom/PathIterator.java b/libjava/java/awt/geom/PathIterator.java
index 8076b5c8353..6d38911b732 100644
--- a/libjava/java/awt/geom/PathIterator.java
+++ b/libjava/java/awt/geom/PathIterator.java
@@ -44,8 +44,8 @@ package java.awt.geom;
* MOVETO directive, and can close a circular path back to the previos
* MOVETO via the CLOSE directive.
*
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see java.awt.Shape
* @see java.awt.Stroke
* @see FlatteningPathIterator
diff --git a/libjava/java/awt/geom/Point2D.java b/libjava/java/awt/geom/Point2D.java
index d27505fa41d..e334ac7806b 100644
--- a/libjava/java/awt/geom/Point2D.java
+++ b/libjava/java/awt/geom/Point2D.java
@@ -229,7 +229,7 @@ public abstract class Point2D implements Cloneable
/**
* This class defines a point in <code>double</code> precision.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
@@ -307,7 +307,7 @@ public abstract class Point2D implements Cloneable
/**
* This class defines a point in <code>float</code> precision.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/geom/QuadCurve2D.java b/libjava/java/awt/geom/QuadCurve2D.java
index 0376d5a01af..db7c2abf2ec 100644
--- a/libjava/java/awt/geom/QuadCurve2D.java
+++ b/libjava/java/awt/geom/QuadCurve2D.java
@@ -41,7 +41,6 @@ import java.awt.Rectangle;
import java.awt.Shape;
import java.util.NoSuchElementException;
-
/**
* A two-dimensional curve that is parameterized with a quadratic
* function.
@@ -563,11 +562,11 @@ public abstract class QuadCurve2D implements Shape, Cloneable
* result of -1 indicates that the equation is constant (i.e.,
* always or never zero).
*
- * @author <a href="mailto:bjg@network-theory.com">Brian Gough</a>
+ * @author Brain Gouph (bjg@network-theory.com)
* (original C implementation in the <a href=
* "http://www.gnu.org/software/gsl/">GNU Scientific Library</a>)
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
* (adaptation to Java)
*/
public static int solveQuadratic(double[] eqn)
@@ -608,11 +607,11 @@ public abstract class QuadCurve2D implements Shape, Cloneable
* result of -1 indicates that the equation is constant (i.e.,
* always or never zero).
*
- * @author <a href="mailto:bjg@network-theory.com">Brian Gough</a>
+ * @author Brian Gouph (bjg@network-theory.com)
* (original C implementation in the <a href=
* "http://www.gnu.org/software/gsl/">GNU Scientific Library</a>)
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
* (adaptation to Java)
*/
public static int solveQuadratic(double[] eqn, double[] res)
diff --git a/libjava/java/awt/geom/Rectangle2D.java b/libjava/java/awt/geom/Rectangle2D.java
index bd1a37c6e09..d8217fecdb5 100644
--- a/libjava/java/awt/geom/Rectangle2D.java
+++ b/libjava/java/awt/geom/Rectangle2D.java
@@ -1,5 +1,5 @@
/* Rectangle2D.java -- generic rectangles in 2-D space
- Copyright (C) 2000, 2001, 2002 Free Software Foundation
+ Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation
This file is part of GNU Classpath.
@@ -57,30 +57,30 @@ import java.util.NoSuchElementException;
public abstract class Rectangle2D extends RectangularShape
{
/**
- * The point lies left of the rectangle (p.x < r.x).
+ * The point lies left of the rectangle (p.x &lt; r.x).
*
- * @see #outcode()
+ * @see #outcode(double, double)
*/
public static final int OUT_LEFT = 1;
/**
- * The point lies above the rectangle (p.y < r.y).
+ * The point lies above the rectangle (p.y &lt; r.y).
*
- * @see #outcode()
+ * @see #outcode(double, double)
*/
public static final int OUT_TOP = 2;
/**
* The point lies right of the rectangle (p.x &gt; r.maxX).
*
- * @see #outcode()
+ * @see #outcode(double, double)
*/
public static final int OUT_RIGHT = 4;
/**
* The point lies below of the rectangle (p.y &gt; r.maxY).
*
- * @see #outcode()
+ * @see #outcode(double, double)
*/
public static final int OUT_BOTTOM = 8;
diff --git a/libjava/java/awt/geom/RectangularShape.java b/libjava/java/awt/geom/RectangularShape.java
index 78e393eafcb..8679d2e32d5 100644
--- a/libjava/java/awt/geom/RectangularShape.java
+++ b/libjava/java/awt/geom/RectangularShape.java
@@ -46,8 +46,8 @@ import java.awt.Shape;
* subclasses which represent geometric objects inside a rectangular frame.
* This does not specify any geometry except for the bounding box.
*
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @see Arc2D
* @see Ellipse2D
diff --git a/libjava/java/awt/geom/RoundRectangle2D.java b/libjava/java/awt/geom/RoundRectangle2D.java
index 3f004ed6bbc..b9af7efc7ee 100644
--- a/libjava/java/awt/geom/RoundRectangle2D.java
+++ b/libjava/java/awt/geom/RoundRectangle2D.java
@@ -41,7 +41,7 @@ import java.util.NoSuchElementException;
/** This class implements a rectangle with rounded corners.
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @date December 3, 2000
*/
public abstract class RoundRectangle2D extends RectangularShape
diff --git a/libjava/java/awt/im/InputContext.java b/libjava/java/awt/im/InputContext.java
index 04e70e313f5..03fbd361026 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, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -74,7 +74,7 @@ import java.util.Locale;
* one entry per line in UTF-8 encoding, each class in the jar that implements
* java.awt.im.spi.InputMethodDescriptor.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Component#getInputContext()
* @see Component#enableInputMethods(boolean)
* @since 1.2
@@ -102,8 +102,8 @@ public class InputContext
while (e.hasMoreElements())
{
URL url = (URL) e.nextElement();
- BufferedReader in = null;
- String line = null;
+ BufferedReader in;
+ String line;
try
{
in = new BufferedReader
diff --git a/libjava/java/awt/im/InputMethodHighlight.java b/libjava/java/awt/im/InputMethodHighlight.java
index 2946d259b91..92867624aaf 100644
--- a/libjava/java/awt/im/InputMethodHighlight.java
+++ b/libjava/java/awt/im/InputMethodHighlight.java
@@ -1,5 +1,5 @@
/* InputMethodHighlight.java -- highlights the current text selection
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import java.util.Map;
* AttributedCharacterIterators, and may be wrapped in Annotations to separate
* text segments.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AttributedCharacterIterators
* @see Annotation
* @since 1.2
diff --git a/libjava/java/awt/im/InputMethodRequests.java b/libjava/java/awt/im/InputMethodRequests.java
index 88253ed6237..d39efcb9400 100644
--- a/libjava/java/awt/im/InputMethodRequests.java
+++ b/libjava/java/awt/im/InputMethodRequests.java
@@ -1,5 +1,5 @@
/* InputMethodRequests.java -- handles text insertion via input methods
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,7 +51,7 @@ import java.text.AttributedCharacterIterator.Attribute;
* usually below the main text window, until it is committed into place at
* the insertion point, overwriting any selected text</li></ul>
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Component#getInputMethodRequests()
* @see InputMethodListener
* @since 1.2
diff --git a/libjava/java/awt/im/InputSubset.java b/libjava/java/awt/im/InputSubset.java
index fd03269a891..78c2164ffab 100644
--- a/libjava/java/awt/im/InputSubset.java
+++ b/libjava/java/awt/im/InputSubset.java
@@ -1,5 +1,5 @@
/* InputSubset.java -- subsets of Unicode important in text input
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.im;
* These constants encompass several Unicode blocks, or portions thereof, for
* simplification over {@link Character.UnicodeBlock}.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/im/spi/InputMethod.java b/libjava/java/awt/im/spi/InputMethod.java
index 0e981efb87f..18f7a7b17a3 100644
--- a/libjava/java/awt/im/spi/InputMethod.java
+++ b/libjava/java/awt/im/spi/InputMethod.java
@@ -1,5 +1,5 @@
/* InputMethod.java -- defines an interface for complex text input
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,7 +51,7 @@ import java.util.Locale;
* <p>These contexts can be loaded by the input method framework, using
* {@link InputContext#selectInputMethod(Locale)}.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/im/spi/InputMethodDescriptor.java b/libjava/java/awt/im/spi/InputMethodDescriptor.java
index 9ba97744aef..57a1fda48ba 100644
--- a/libjava/java/awt/im/spi/InputMethodDescriptor.java
+++ b/libjava/java/awt/im/spi/InputMethodDescriptor.java
@@ -1,5 +1,5 @@
/* InputMethodDescriptor.java -- enables loading and use of an input method
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.Locale;
* This interface provides information about an InputMethod before it is
* loaded.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.3
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/image/BandCombineOp.java b/libjava/java/awt/image/BandCombineOp.java
index 48c61c57026..4c921ede9ae 100644
--- a/libjava/java/awt/image/BandCombineOp.java
+++ b/libjava/java/awt/image/BandCombineOp.java
@@ -53,7 +53,7 @@ import java.awt.geom.Rectangle2D;
* for the destination. Therefore the destination Raster must contain the
* same number of bands as the number of rows in the filter matrix.
*
- * @author Jerry Quinn <jlquinn@optonline.net>
+ * @author Jerry Quinn (jlquinn@optonline.net)
*/
public class BandCombineOp implements RasterOp
{
diff --git a/libjava/java/awt/image/BandedSampleModel.java b/libjava/java/awt/image/BandedSampleModel.java
index 93252d9cce6..68a4466eea2 100644
--- a/libjava/java/awt/image/BandedSampleModel.java
+++ b/libjava/java/awt/image/BandedSampleModel.java
@@ -41,7 +41,7 @@ package java.awt.image;
* multiple pixels in a single unit. Pixels have 2^n bits and 2^k pixels fit
* per data element.
*
- * @author Jerry Quinn <jlquinn@optonline.net>
+ * @author Jerry Quinn (jlquinn@optonline.net)
*/
public final class BandedSampleModel extends ComponentSampleModel
{
diff --git a/libjava/java/awt/image/ByteLookupTable.java b/libjava/java/awt/image/ByteLookupTable.java
index f0221915a71..8bea284e9d3 100644
--- a/libjava/java/awt/image/ByteLookupTable.java
+++ b/libjava/java/awt/image/ByteLookupTable.java
@@ -1,5 +1,5 @@
/* ByteLookupTable.java -- Java class for a pixel translation table.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.image;
* Alpha, R, G, and B. When doing translation, the offset is subtracted from
* the pixel values to allow a subset of an array to be used.
*
- * @author <a href="mailto:jlquinn@optonline.net">Jerry Quinn</a>
+ * @author Jerry Quinn (jlquinn@optonline.net)
* @version 1.0
*/
public class ByteLookupTable extends LookupTable
diff --git a/libjava/java/awt/image/ComponentSampleModel.java b/libjava/java/awt/image/ComponentSampleModel.java
index 0665f406793..86161e0ae39 100644
--- a/libjava/java/awt/image/ComponentSampleModel.java
+++ b/libjava/java/awt/image/ComponentSampleModel.java
@@ -56,7 +56,7 @@ import gnu.java.awt.Buffers;
* is controlled by bandOffset, pixelStride, and scanlineStride, which means
* that any combination of interleavings is supported.
*
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public class ComponentSampleModel extends SampleModel
{
diff --git a/libjava/java/awt/image/DataBuffer.java b/libjava/java/awt/image/DataBuffer.java
index b921953ec28..6f0215b10e1 100644
--- a/libjava/java/awt/image/DataBuffer.java
+++ b/libjava/java/awt/image/DataBuffer.java
@@ -41,7 +41,7 @@ package java.awt.image;
* of one or more banks. A bank is a continuous region of data
* elements.
*
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public abstract class DataBuffer
{
diff --git a/libjava/java/awt/image/DataBufferByte.java b/libjava/java/awt/image/DataBufferByte.java
index c56be6b31dd..a306ede6fd6 100644
--- a/libjava/java/awt/image/DataBufferByte.java
+++ b/libjava/java/awt/image/DataBufferByte.java
@@ -47,7 +47,7 @@ package java.awt.image;
code is a maintenance nightmare. */
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public final class DataBufferByte extends DataBuffer
{
diff --git a/libjava/java/awt/image/DataBufferDouble.java b/libjava/java/awt/image/DataBufferDouble.java
index 305cb00b2ff..c6d1e100d35 100644
--- a/libjava/java/awt/image/DataBufferDouble.java
+++ b/libjava/java/awt/image/DataBufferDouble.java
@@ -49,8 +49,8 @@ package java.awt.image;
/**
* @since 1.4
*
- * @author <a href="mailto:rolfwr@ii.uib.no">Rolf W. Rasmussen</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public final class DataBufferDouble
extends DataBuffer
diff --git a/libjava/java/awt/image/DataBufferFloat.java b/libjava/java/awt/image/DataBufferFloat.java
index 9673eddb458..6b47e2be005 100644
--- a/libjava/java/awt/image/DataBufferFloat.java
+++ b/libjava/java/awt/image/DataBufferFloat.java
@@ -47,8 +47,8 @@ package java.awt.image;
code is a maintenance nightmare. */
/**
- * @author <a href="mailto:rolfwr@ii.uib.no">Rolf W. Rasmussen</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public final class DataBufferFloat
extends DataBuffer
diff --git a/libjava/java/awt/image/DataBufferInt.java b/libjava/java/awt/image/DataBufferInt.java
index c5f08530d2b..c90f9558811 100644
--- a/libjava/java/awt/image/DataBufferInt.java
+++ b/libjava/java/awt/image/DataBufferInt.java
@@ -47,7 +47,7 @@ package java.awt.image;
code is a maintenance nightmare. */
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public final class DataBufferInt extends DataBuffer
{
diff --git a/libjava/java/awt/image/DataBufferShort.java b/libjava/java/awt/image/DataBufferShort.java
index 7a095c4e38e..a8d8cb5ef64 100644
--- a/libjava/java/awt/image/DataBufferShort.java
+++ b/libjava/java/awt/image/DataBufferShort.java
@@ -48,7 +48,7 @@ package java.awt.image;
code is a maintenance nightmare. */
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public final class DataBufferShort extends DataBuffer
{
diff --git a/libjava/java/awt/image/DataBufferUShort.java b/libjava/java/awt/image/DataBufferUShort.java
index 6efe73d83ab..7466d857956 100644
--- a/libjava/java/awt/image/DataBufferUShort.java
+++ b/libjava/java/awt/image/DataBufferUShort.java
@@ -48,7 +48,7 @@ package java.awt.image;
code is a maintenance nightmare. */
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public final class DataBufferUShort extends DataBuffer
{
diff --git a/libjava/java/awt/image/ImagingOpException.java b/libjava/java/awt/image/ImagingOpException.java
index 51bf02b281c..0018dc47cc3 100644
--- a/libjava/java/awt/image/ImagingOpException.java
+++ b/libjava/java/awt/image/ImagingOpException.java
@@ -1,5 +1,5 @@
/* ImagingOpException.java -- indicates an imaging filter failure
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.image;
* This exception is thrown when <code>BufferedImageOp</code> or
* <code>RasterOp</code> filters cannot process an image.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see BufferedImageOp
* @see RasterOp
* @status updated to 1.4
diff --git a/libjava/java/awt/image/IndexColorModel.java b/libjava/java/awt/image/IndexColorModel.java
index 6791589032e..e4ccc542903 100644
--- a/libjava/java/awt/image/IndexColorModel.java
+++ b/libjava/java/awt/image/IndexColorModel.java
@@ -125,7 +125,9 @@ public class IndexColorModel extends ColorModel
public IndexColorModel(int bits, int size, byte[] reds, byte[] greens,
byte[] blues, byte[] alphas)
{
- super (bits);
+ // FIXME: This super() constructor should not be used since it can give
+ // the wrong value for hasAlpha() which is final and cannot be overloaded
+ super(bits);
map_size = size;
opaque = (alphas == null);
@@ -416,10 +418,10 @@ public class IndexColorModel extends ColorModel
*/
public final int getAlpha (int pixel)
{
- if (pixel < map_size)
- return (int) ((generateMask (3) & rgb[pixel]) >> (3 * pixel_bits));
-
- return 0;
+ if (opaque || pixel >= map_size)
+ return 255;
+
+ return (int) ((generateMask (3) & rgb[pixel]) >> (3 * pixel_bits));
}
/**
diff --git a/libjava/java/awt/image/Kernel.java b/libjava/java/awt/image/Kernel.java
index 4898f9ed82b..2bc82ee74c6 100644
--- a/libjava/java/awt/image/Kernel.java
+++ b/libjava/java/awt/image/Kernel.java
@@ -1,5 +1,5 @@
/* Kernel.java -- Java class for an image processing kernel
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.awt.image;
* convolution filters among other purposes. It stores an array of float
* values representing a 2-dimensional array in row-major order.
*
- * @author <a href="mailto:jlquinn@optonline.net">Jerry Quinn</a>
+ * @author Jerry Quinn (jlquinn@optonline.net)
* @version 1.0
*/
public class Kernel implements Cloneable
diff --git a/libjava/java/awt/image/LookupTable.java b/libjava/java/awt/image/LookupTable.java
index eb89795c2c8..497cdb6e089 100644
--- a/libjava/java/awt/image/LookupTable.java
+++ b/libjava/java/awt/image/LookupTable.java
@@ -1,5 +1,5 @@
/* LookupTable.java -- Java class for a pixel translation table.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.awt.image;
* @see ByteLookupTable
* @see ShortLookupTable
*
- * @author <a href="mailto:jlquinn@optonline.net">Jerry Quinn</a>
+ * @author Jerry Quinn (jlquinn@optonline.net)
* @version 1.0
*/
public abstract class LookupTable
diff --git a/libjava/java/awt/image/MemoryImageSource.java b/libjava/java/awt/image/MemoryImageSource.java
index 07e42cf077d..6b43d00c37b 100644
--- a/libjava/java/awt/image/MemoryImageSource.java
+++ b/libjava/java/awt/image/MemoryImageSource.java
@@ -1,4 +1,4 @@
-/* MemoryImageSource.java -- Java class for providing image data
+/* MemoryImageSource.java -- Java class for providing image data
Copyright (C) 1999, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,335 +41,333 @@ package java.awt.image;
import java.util.Hashtable;
import java.util.Vector;
-public class MemoryImageSource implements ImageProducer
+public class MemoryImageSource implements ImageProducer
{
- private boolean animated = false;
- private boolean fullbuffers = false;
- private int pixeli[], width, height, offset, scansize;
- private byte pixelb[];
- private ColorModel cm;
- private Hashtable props = new Hashtable();
- private Vector consumers = new Vector();
-
- /**
- * Construct an image producer that reads image data from a byte
- * array.
- *
- * @param w width of image
- * @param h height of image
- * @param cm the color model used to represent pixel values
- * @param pix a byte array of pixel values
- * @param off the offset into the array at which the first pixel is stored
- * @param scan the number of array elements that represents a single pixel row
- */
- public MemoryImageSource(int w, int h, ColorModel cm,
- byte pix[], int off, int scan)
- {
- this ( w, h, cm, pix, off, scan, null );
- }
- /**
- Constructs an ImageProducer from memory
- */
- public MemoryImageSource( int w, int h, ColorModel cm,
- byte pix[], int off, int scan,
- Hashtable props)
- {
- width = w;
- height = h;
- this.cm = cm;
- offset = off;
- scansize = scan;
- this.props = props;
- int max = (( scansize > width ) ? scansize : width );
- pixelb = pix;
- }
- /**
- * Construct an image producer that reads image data from an
- * integer array.
- *
- * @param w width of image
- * @param h height of image
- * @param cm the color model used to represent pixel values
- * @param pix an integer array of pixel values
- * @param off the offset into the array at which the first pixel is stored
- * @param scan the number of array elements that represents a single pixel row
- */
- public MemoryImageSource(int w, int h, ColorModel cm,
- int pix[], int off, int scan)
- {
- this ( w, h, cm, pix, off, scan, null );
- }
-
- /**
- Constructs an ImageProducer from memory
- */
- public MemoryImageSource(int w, int h, ColorModel cm,
- int pix[], int off, int scan,
- Hashtable props)
- {
- width = w;
- height = h;
- this.cm = cm;
- offset = off;
- scansize = scan;
- this.props = props;
- int max = (( scansize > width ) ? scansize : width );
- pixeli = pix;
- }
- /**
- Constructs an ImageProducer from memory using the default RGB ColorModel
- */
- public MemoryImageSource(int w, int h,
- int pix[], int off, int scan,
- Hashtable props)
- {
- this ( w, h, ColorModel.getRGBdefault(), pix, off, scan, props);
- }
-
- /**
- Constructs an ImageProducer from memory using the default RGB ColorModel
- */
- public MemoryImageSource(int w, int h,
- int pix[], int off, int scan)
- {
- this ( w, h, ColorModel.getRGBdefault(), pix, off, scan, null);
- }
-
- /**
- * Used to register an <code>ImageConsumer</code> with this
- * <code>ImageProducer</code>.
- */
- public synchronized void addConsumer(ImageConsumer ic) {
- if (consumers.contains(ic))
- return;
-
- consumers.addElement(ic);
- }
-
- /**
- * Used to determine if the given <code>ImageConsumer</code> is
- * already registered with this <code>ImageProducer</code>.
- */
- public synchronized boolean isConsumer(ImageConsumer ic) {
- if (consumers.contains(ic))
- return true;
- return false;
- }
-
- /**
- * Used to remove an <code>ImageConsumer</code> from the list of
- * registered consumers for this <code>ImageProducer</code>.
- */
- public synchronized void removeConsumer(ImageConsumer ic) {
- consumers.removeElement(ic);
- }
-
- /**
- * Used to register an <code>ImageConsumer</code> with this
- * <code>ImageProducer</code> and then immediately start
- * reconstruction of the image data to be delivered to all
- * registered consumers.
- */
- public void startProduction(ImageConsumer ic) {
- if (!(consumers.contains(ic))) {
- consumers.addElement(ic);
- }
-
+ private boolean animated = false;
+ private boolean fullbuffers = false;
+ private int[] pixeli;
+ private int width;
+ private int height;
+ private int offset;
+ private int scansize;
+ private byte[] pixelb;
+ private ColorModel cm;
+ private Hashtable props = new Hashtable();
+ private Vector consumers = new Vector();
+
+ /**
+ * Construct an image producer that reads image data from a byte
+ * array.
+ *
+ * @param w width of image
+ * @param h height of image
+ * @param cm the color model used to represent pixel values
+ * @param pix a byte array of pixel values
+ * @param off the offset into the array at which the first pixel is stored
+ * @param scan the number of array elements that represents a single pixel row
+ */
+ public MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off,
+ int scan)
+ {
+ this(w, h, cm, pix, off, scan, null);
+ }
+
+ /**
+ * Constructs an ImageProducer from memory
+ */
+ public MemoryImageSource(int w, int h, ColorModel cm, byte[] pix, int off,
+ int scan, Hashtable props)
+ {
+ width = w;
+ height = h;
+ this.cm = cm;
+ offset = off;
+ scansize = scan;
+ this.props = props;
+ int max = ((scansize > width) ? scansize : width);
+ pixelb = pix;
+ }
+
+ /**
+ * Construct an image producer that reads image data from an
+ * integer array.
+ *
+ * @param w width of image
+ * @param h height of image
+ * @param cm the color model used to represent pixel values
+ * @param pix an integer array of pixel values
+ * @param off the offset into the array at which the first pixel is stored
+ * @param scan the number of array elements that represents a single pixel row
+ */
+ public MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off,
+ int scan)
+ {
+ this(w, h, cm, pix, off, scan, null);
+ }
+
+ /**
+ Constructs an ImageProducer from memory
+ */
+ public MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off,
+ int scan, Hashtable props)
+ {
+ width = w;
+ height = h;
+ this.cm = cm;
+ offset = off;
+ scansize = scan;
+ this.props = props;
+ int max = ((scansize > width) ? scansize : width);
+ pixeli = pix;
+ }
+
+ /**
+ * Constructs an ImageProducer from memory using the default RGB ColorModel
+ */
+ public MemoryImageSource(int w, int h, int[] pix, int off, int scan,
+ Hashtable props)
+ {
+ this(w, h, ColorModel.getRGBdefault(), pix, off, scan, props);
+ }
+
+ /**
+ * Constructs an ImageProducer from memory using the default RGB ColorModel
+ */
+ public MemoryImageSource(int w, int h, int[] pix, int off, int scan)
+ {
+ this(w, h, ColorModel.getRGBdefault(), pix, off, scan, null);
+ }
+
+ /**
+ * Used to register an <code>ImageConsumer</code> with this
+ * <code>ImageProducer</code>.
+ */
+ public synchronized void addConsumer(ImageConsumer ic)
+ {
+ if (consumers.contains(ic))
+ return;
+
+ consumers.addElement(ic);
+ }
+
+ /**
+ * Used to determine if the given <code>ImageConsumer</code> is
+ * already registered with this <code>ImageProducer</code>.
+ */
+ public synchronized boolean isConsumer(ImageConsumer ic)
+ {
+ if (consumers.contains(ic))
+ return true;
+ return false;
+ }
+
+ /**
+ * Used to remove an <code>ImageConsumer</code> from the list of
+ * registered consumers for this <code>ImageProducer</code>.
+ */
+ public synchronized void removeConsumer(ImageConsumer ic)
+ {
+ consumers.removeElement(ic);
+ }
+
+ /**
+ * Used to register an <code>ImageConsumer</code> with this
+ * <code>ImageProducer</code> and then immediately start
+ * reconstruction of the image data to be delivered to all
+ * registered consumers.
+ */
+ public void startProduction(ImageConsumer ic)
+ {
+ if (! (consumers.contains(ic)))
+ consumers.addElement(ic);
+
+ Vector list = (Vector) consumers.clone();
+ for (int i = 0; i < list.size(); i++)
+ {
+ ic = (ImageConsumer) list.elementAt(i);
+ sendPicture(ic);
+ if (animated)
+ ic.imageComplete(ImageConsumer.SINGLEFRAME);
+ else
+ ic.imageComplete(ImageConsumer.STATICIMAGEDONE);
+ }
+ }
+
+ /**
+ * Used to register an <code>ImageConsumer</code> with this
+ * <code>ImageProducer</code> and then request that this producer
+ * resend the image data in the order top-down, left-right.
+ */
+ public void requestTopDownLeftRightResend(ImageConsumer ic)
+ {
+ startProduction(ic);
+ }
+
+ /**
+ * Changes a flag to indicate whether this MemoryImageSource supports
+ * animations.
+ *
+ * @param animated A flag indicating whether this class supports animations
+ */
+ public synchronized void setAnimated(boolean animated)
+ {
+ this.animated = animated;
+ }
+
+ /**
+ * A flag to indicate whether or not to send full buffer updates when
+ * sending animation. If this flag is set then full buffers are sent
+ * in the newPixels methods instead of just regions.
+ *
+ * @param fullbuffers - a flag indicating whether to send the full buffers
+ */
+ public synchronized void setFullBufferUpdates(boolean fullbuffers)
+ {
+ this.fullbuffers = fullbuffers;
+ }
+
+ /**
+ * Send an animation frame to the image consumers.
+ */
+ public void newPixels()
+ {
+ if (animated == true)
+ {
+ ImageConsumer ic;
Vector list = (Vector) consumers.clone();
- for(int i = 0; i < list.size(); i++) {
+ for (int i = 0; i < list.size(); i++)
+ {
ic = (ImageConsumer) list.elementAt(i);
- sendPicture( ic );
- if (animated)
- ic.imageComplete( ImageConsumer.SINGLEFRAME );
- else
- ic.imageComplete( ImageConsumer.STATICIMAGEDONE );
- }
- }
-
- /**
- * Used to register an <code>ImageConsumer</code> with this
- * <code>ImageProducer</code> and then request that this producer
- * resend the image data in the order top-down, left-right.
- */
- public void requestTopDownLeftRightResend(ImageConsumer ic) {
- startProduction ( ic );
- }
-
-
- /**
- Changes a flag to indicate whether this MemoryImageSource supports
- animations.
-
- @param animated A flag indicating whether this class supports animations
- */
- public synchronized void setAnimated(boolean animated)
- {
- this.animated = animated;
- }
-
-
- /**
- A flag to indicate whether or not to send full buffer updates when
- sending animation. If this flag is set then full buffers are sent
- in the newPixels methods instead of just regions.
-
- @param fullbuffers - a flag indicating whether to send the full buffers
- */
- public synchronized void setFullBufferUpdates(boolean fullbuffers)
- {
- this.fullbuffers = fullbuffers;
- }
-
- /**
- Send an animation frame to the image consumers.
- */
- public void newPixels()
- {
- if( animated == true ) {
- ImageConsumer ic;
- Vector list = (Vector) consumers.clone();
- for(int i = 0; i < list.size(); i++) {
- ic = (ImageConsumer) list.elementAt(i);
- sendPicture( ic );
- ic.imageComplete( ImageConsumer.SINGLEFRAME );
- }
- }
- }
-
-
- private void sendPicture ( ImageConsumer ic )
- {
- ic.setHints( ImageConsumer.TOPDOWNLEFTRIGHT );
- if( props != null ) {
- ic.setProperties( props );
- }
- ic.setDimensions(width, height);
- ic.setColorModel(cm);
- if( pixeli != null ) {
- ic.setPixels( 0, 0, width, height, cm, pixeli, offset, scansize );
- } else {
- ic.setPixels( 0, 0, width, height, cm, pixelb, offset, scansize );
- }
- }
-
- /**
- Send an animation frame to the image consumers containing the specified
- pixels unless setFullBufferUpdates is set.
- */
- public synchronized void newPixels(int x,
- int y,
- int w,
- int h)
- {
- if( animated == true )
- {
- if( fullbuffers ) {
- newPixels();
- } else {
- ImageConsumer ic;
- Vector list = (Vector) consumers.clone();
- for(int i = 0; i < list.size(); i++) {
- ic = (ImageConsumer) list.elementAt(i);
- ic.setHints( ImageConsumer.TOPDOWNLEFTRIGHT );
- if( props != null ) {
- ic.setProperties( props );
- }
- if( pixeli != null ) {
- int[] pixelbuf = new int[w * h];
- for (int row = y; row < y + h; row++)
- System.arraycopy(pixeli, row * scansize + x + offset, pixelbuf, 0, w * h);
- ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w );
- } else {
- byte[] pixelbuf = new byte[w * h];
- for (int row = y; row < y + h; row++)
- System.arraycopy(pixelb, row * scansize + x + offset, pixelbuf, 0, w * h);
-
- ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w );
- }
- ic.imageComplete( ImageConsumer.SINGLEFRAME );
- }
- }
- }
- }
-
-
-
- /**
- Send an animation frame to the image consumers containing the specified
- pixels unless setFullBufferUpdates is set.
-
- If framenotify is set then a notification is sent when the frame
- is sent otherwise no status is sent.
- */
- public synchronized void newPixels(int x,
- int y,
- int w,
- int h,
- boolean framenotify)
- {
- if( animated == true )
- {
- if( fullbuffers ) {
- newPixels();
- } else {
- ImageConsumer ic;
- Vector list = (Vector) consumers.clone();
- for(int i = 0; i < list.size(); i++) {
- ic = (ImageConsumer) list.elementAt(i);
- ic.setHints( ImageConsumer.TOPDOWNLEFTRIGHT );
- if( props != null ) {
- ic.setProperties( props );
- }
- if( pixeli != null ) {
- int[] pixelbuf = new int[w * h];
- for (int row = y; row < y + h; row++)
- System.arraycopy(pixeli, row * scansize + x + offset, pixelbuf, 0, w * h);
- ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w );
- } else {
- byte[] pixelbuf = new byte[w * h];
- for (int row = y; row < y + h; row++)
- System.arraycopy(pixelb, row * scansize + x + offset, pixelbuf, 0, w * h);
- ic.setPixels( x, y, w, h, cm, pixelbuf, 0, w );
- }
- if( framenotify == true )
- ic.imageComplete( ImageConsumer.SINGLEFRAME );
- }
- }
- }
- }
-
- public synchronized void newPixels(byte newpix[],
- ColorModel newmodel,
- int offset,
- int scansize)
-
- {
- pixeli = null;
- pixelb = newpix;
- cm = newmodel;
- this.offset = offset;
- this.scansize = scansize;
- if( animated == true )
- {
- newPixels();
- }
- }
-
- public synchronized void newPixels(int newpix[],
- ColorModel newmodel,
- int offset,
- int scansize)
-
- {
- pixelb = null;
- pixeli = newpix;
- cm = newmodel;
- this.offset = offset;
- this.scansize = scansize;
- if( animated == true )
- {
- newPixels();
- }
- }
-
+ sendPicture(ic);
+ ic.imageComplete(ImageConsumer.SINGLEFRAME);
+ }
+ }
+ }
+
+ private void sendPicture(ImageConsumer ic)
+ {
+ ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT);
+ if (props != null)
+ ic.setProperties(props);
+ ic.setDimensions(width, height);
+ ic.setColorModel(cm);
+ if (pixeli != null)
+ ic.setPixels(0, 0, width, height, cm, pixeli, offset, scansize);
+ else
+ ic.setPixels(0, 0, width, height, cm, pixelb, offset, scansize);
+ }
+
+ /**
+ * Send an animation frame to the image consumers containing the specified
+ * pixels unless setFullBufferUpdates is set.
+ */
+ public synchronized void newPixels(int x, int y, int w, int h)
+ {
+ if (animated == true)
+ {
+ if (fullbuffers)
+ newPixels();
+ else
+ {
+ ImageConsumer ic;
+ Vector list = (Vector) consumers.clone();
+ for (int i = 0; i < list.size(); i++)
+ {
+ ic = (ImageConsumer) list.elementAt(i);
+ ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT);
+ if (props != null)
+ ic.setProperties(props);
+ if (pixeli != null)
+ {
+ int[] pixelbuf = new int[w * h];
+ for (int row = y; row < y + h; row++)
+ System.arraycopy(pixeli, row * scansize + x + offset,
+ pixelbuf, 0, w * h);
+ ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w);
+ }
+ else
+ {
+ byte[] pixelbuf = new byte[w * h];
+ for (int row = y; row < y + h; row++)
+ System.arraycopy(pixelb, row * scansize + x + offset,
+ pixelbuf, 0, w * h);
+
+ ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w);
+ }
+ ic.imageComplete(ImageConsumer.SINGLEFRAME);
+ }
+ }
+ }
+ }
+
+ /**
+ * Send an animation frame to the image consumers containing the specified
+ * pixels unless setFullBufferUpdates is set.
+ *
+ * If framenotify is set then a notification is sent when the frame
+ * is sent otherwise no status is sent.
+ */
+ public synchronized void newPixels(int x, int y, int w, int h,
+ boolean framenotify)
+ {
+ if (animated == true)
+ {
+ if (fullbuffers)
+ newPixels();
+ else
+ {
+ ImageConsumer ic;
+ Vector list = (Vector) consumers.clone();
+ for (int i = 0; i < list.size(); i++)
+ {
+ ic = (ImageConsumer) list.elementAt(i);
+ ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT);
+ if (props != null)
+ ic.setProperties(props);
+ if (pixeli != null)
+ {
+ int[] pixelbuf = new int[w * h];
+ for (int row = y; row < y + h; row++)
+ System.arraycopy(pixeli, row * scansize + x + offset,
+ pixelbuf, 0, w * h);
+ ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w);
+ }
+ else
+ {
+ byte[] pixelbuf = new byte[w * h];
+ for (int row = y; row < y + h; row++)
+ System.arraycopy(pixelb, row * scansize + x + offset,
+ pixelbuf, 0, w * h);
+ ic.setPixels(x, y, w, h, cm, pixelbuf, 0, w);
+ }
+ if (framenotify == true)
+ ic.imageComplete(ImageConsumer.SINGLEFRAME);
+ }
+ }
+ }
+ }
+
+ public synchronized void newPixels(byte[] newpix, ColorModel newmodel,
+ int offset, int scansize)
+ {
+ pixeli = null;
+ pixelb = newpix;
+ cm = newmodel;
+ this.offset = offset;
+ this.scansize = scansize;
+ if (animated == true)
+ newPixels();
+ }
+
+ public synchronized void newPixels(int[] newpix, ColorModel newmodel,
+ int offset, int scansize)
+ {
+ pixelb = null;
+ pixeli = newpix;
+ cm = newmodel;
+ this.offset = offset;
+ this.scansize = scansize;
+ if (animated == true)
+ newPixels();
+ }
}
diff --git a/libjava/java/awt/image/MultiPixelPackedSampleModel.java b/libjava/java/awt/image/MultiPixelPackedSampleModel.java
index 0525d37bd42..ab971c0e675 100644
--- a/libjava/java/awt/image/MultiPixelPackedSampleModel.java
+++ b/libjava/java/awt/image/MultiPixelPackedSampleModel.java
@@ -43,7 +43,7 @@ import gnu.java.awt.Buffers;
* multiple pixels in a single unit. Pixels have 2^n bits and 2^k pixels fit
* per data element.
*
- * @author Jerry Quinn <jlquinn@optonline.net>
+ * @author Jerry Quinn (jlquinn@optonline.net)
*/
public class MultiPixelPackedSampleModel extends SampleModel
{
@@ -59,7 +59,7 @@ public class MultiPixelPackedSampleModel extends SampleModel
public MultiPixelPackedSampleModel(int dataType, int w, int h,
int numberOfBits)
{
- this(dataType, w, h, 0, numberOfBits, 0);
+ this(dataType, w, h, numberOfBits, 0, 0);
}
public MultiPixelPackedSampleModel(int dataType, int w, int h,
@@ -101,7 +101,7 @@ public class MultiPixelPackedSampleModel extends SampleModel
// Compute scan line large enough for w pixels.
if (scanlineStride == 0)
- scanlineStride = ((dataBitOffset + w * numberOfBits) / elemBits) + 1;
+ scanlineStride = ((dataBitOffset + w * numberOfBits) / elemBits);
this.scanlineStride = scanlineStride;
@@ -112,8 +112,9 @@ public class MultiPixelPackedSampleModel extends SampleModel
bitOffsets = new int[numElems];
for (int i=0; i < numElems; i++)
{
- bitOffsets[i] = numberOfBits * i;
- bitMasks[i] = ((1 << numberOfBits) - 1) << bitOffsets[i];
+ bitOffsets[numElems - i- 1] = numberOfBits * i;
+ bitMasks[numElems - i - 1] = ((1 << numberOfBits) - 1) <<
+ bitOffsets[numElems - i - 1];
}
}
diff --git a/libjava/java/awt/image/PackedColorModel.java b/libjava/java/awt/image/PackedColorModel.java
index 1f18cf68eb1..457dded93db 100644
--- a/libjava/java/awt/image/PackedColorModel.java
+++ b/libjava/java/awt/image/PackedColorModel.java
@@ -43,7 +43,7 @@ import java.awt.Point;
import java.awt.color.ColorSpace;
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public abstract class PackedColorModel extends ColorModel
{
diff --git a/libjava/java/awt/image/PixelInterleavedSampleModel.java b/libjava/java/awt/image/PixelInterleavedSampleModel.java
index d17a68d9ae3..1c0408cd15b 100644
--- a/libjava/java/awt/image/PixelInterleavedSampleModel.java
+++ b/libjava/java/awt/image/PixelInterleavedSampleModel.java
@@ -1,5 +1,5 @@
/* PixelInterleavedSampleModel.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.awt.image;
*
* @since 1.2
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class PixelInterleavedSampleModel
extends ComponentSampleModel
diff --git a/libjava/java/awt/image/RGBImageFilter.java b/libjava/java/awt/image/RGBImageFilter.java
index 0fd977eab67..ca88d70e360 100644
--- a/libjava/java/awt/image/RGBImageFilter.java
+++ b/libjava/java/awt/image/RGBImageFilter.java
@@ -1,5 +1,5 @@
/* RGBImageFilter.java -- Java class for filtering Pixels by RGB values
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.image;
* A filter designed to filter images in the default RGBColorModel regardless of
* the ImageProducer's ColorModel.
*
- * @author Mark Benvenuto <mcb54@columbia.edu>
+ * @author Mark Benvenuto (mcb54@columbia.edu)
*/
public abstract class RGBImageFilter extends ImageFilter
{
@@ -83,7 +83,7 @@ public abstract class RGBImageFilter extends ImageFilter
}
else {
consumer.setColorModel(ColorModel.getRGBdefault());
- }
+ }
}
/**
diff --git a/libjava/java/awt/image/Raster.java b/libjava/java/awt/image/Raster.java
index 0fad4ba0acb..c3cb07fb219 100644
--- a/libjava/java/awt/image/Raster.java
+++ b/libjava/java/awt/image/Raster.java
@@ -41,7 +41,7 @@ import java.awt.Point;
import java.awt.Rectangle;
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public class Raster
{
diff --git a/libjava/java/awt/image/RasterFormatException.java b/libjava/java/awt/image/RasterFormatException.java
index 3a29877476b..4cfc5b5dc88 100644
--- a/libjava/java/awt/image/RasterFormatException.java
+++ b/libjava/java/awt/image/RasterFormatException.java
@@ -1,5 +1,5 @@
/* RasterFormatException.java -- indicates invalid layout in Raster
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.image;
* This exception is thrown when there is invalid layout information in
* <code>Raster</code>
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Raster
* @status updated to 1.4
*/
diff --git a/libjava/java/awt/image/ReplicateScaleFilter.java b/libjava/java/awt/image/ReplicateScaleFilter.java
index a572da7c3bd..091909d5bea 100644
--- a/libjava/java/awt/image/ReplicateScaleFilter.java
+++ b/libjava/java/awt/image/ReplicateScaleFilter.java
@@ -201,10 +201,10 @@ public class ReplicateScaleFilter extends ImageFilter
model, destPixels, 0, destScansize);
}
- protected byte[] replicatePixels(int srcx, int srcy, int srcw, int srch,
- ColorModel model, byte[] srcPixels,
- int srcOffset, int srcScansize,
- double rx, double ry, int destScansize)
+ private byte[] replicatePixels(int srcx, int srcy, int srcw, int srch,
+ ColorModel model, byte[] srcPixels,
+ int srcOffset, int srcScansize,
+ double rx, double ry, int destScansize)
{
byte[] destPixels =
new byte[(int) Math.ceil(srcw/rx) * (int) Math.ceil(srch/ry)];
@@ -221,10 +221,10 @@ public class ReplicateScaleFilter extends ImageFilter
return destPixels;
}
- protected int[] replicatePixels(int srcx, int srcy, int srcw, int srch,
- ColorModel model, int[] srcPixels,
- int srcOffset, int srcScansize,
- double rx, double ry, int destScansize)
+ private int[] replicatePixels(int srcx, int srcy, int srcw, int srch,
+ ColorModel model, int[] srcPixels,
+ int srcOffset, int srcScansize,
+ double rx, double ry, int destScansize)
{
int[] destPixels =
new int[(int) Math.ceil(srcw/rx) * (int) Math.ceil(srch/ry)];
diff --git a/libjava/java/awt/image/SampleModel.java b/libjava/java/awt/image/SampleModel.java
index 4e3b38b9922..b0d12c0ead0 100644
--- a/libjava/java/awt/image/SampleModel.java
+++ b/libjava/java/awt/image/SampleModel.java
@@ -37,7 +37,7 @@ exception statement from your version. */
package java.awt.image;
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public abstract class SampleModel
{
diff --git a/libjava/java/awt/image/ShortLookupTable.java b/libjava/java/awt/image/ShortLookupTable.java
index 36beb1df540..c57abeba795 100644
--- a/libjava/java/awt/image/ShortLookupTable.java
+++ b/libjava/java/awt/image/ShortLookupTable.java
@@ -1,5 +1,5 @@
/* ShortLookupTable.java -- Java class for a pixel translation table.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.awt.image;
* Alpha, R, G, and B. When doing translation, the offset is subtracted from
* the pixel values to allow a subset of an array to be used.
*
- * @author <a href="mailto:jlquinn@optonline.net">Jerry Quinn</a>
+ * @author Jerry Quinn (jlquinn@optonline.net)
* @version 1.0
*/
public class ShortLookupTable extends LookupTable
diff --git a/libjava/java/awt/image/SinglePixelPackedSampleModel.java b/libjava/java/awt/image/SinglePixelPackedSampleModel.java
index 94a9537318e..32789fc6350 100644
--- a/libjava/java/awt/image/SinglePixelPackedSampleModel.java
+++ b/libjava/java/awt/image/SinglePixelPackedSampleModel.java
@@ -40,7 +40,7 @@ import gnu.java.awt.BitMaskExtent;
import gnu.java.awt.Buffers;
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public class SinglePixelPackedSampleModel extends SampleModel
{
diff --git a/libjava/java/awt/image/WritableRaster.java b/libjava/java/awt/image/WritableRaster.java
index f735001e915..de3648af5f3 100644
--- a/libjava/java/awt/image/WritableRaster.java
+++ b/libjava/java/awt/image/WritableRaster.java
@@ -41,7 +41,7 @@ import java.awt.Point;
import java.awt.Rectangle;
/**
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
+ * @author Rolf W. Rasmussen (rolfwr@ii.uib.no)
*/
public class WritableRaster extends Raster
{
diff --git a/libjava/java/awt/peer/RobotPeer.java b/libjava/java/awt/peer/RobotPeer.java
index 2daa14d5e11..a187fc0217d 100644
--- a/libjava/java/awt/peer/RobotPeer.java
+++ b/libjava/java/awt/peer/RobotPeer.java
@@ -43,12 +43,12 @@ import java.awt.Rectangle;
public interface RobotPeer
{
void mouseMove (int x, int y);
- void mousePress (int x);
- void mouseRelease (int x);
- void mouseWheel (int x);
- void keyPress (int x);
- void keyRelease (int x);
+ void mousePress (int buttons);
+ void mouseRelease (int buttons);
+ void mouseWheel (int wheelAmt);
+ void keyPress (int keycode);
+ void keyRelease (int keycode);
int getRGBPixel (int x, int y);
- int[] getRGBPixels (Rectangle r);
+ int[] getRGBPixels (Rectangle screen);
} // interface RobotPeer
diff --git a/libjava/java/awt/print/Book.java b/libjava/java/awt/print/Book.java
index 9bdd7d6fd34..41f360beca0 100644
--- a/libjava/java/awt/print/Book.java
+++ b/libjava/java/awt/print/Book.java
@@ -1,5 +1,5 @@
/* Book.java -- A mixed group of pages to print.
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,146 +41,119 @@ package java.awt.print;
import java.util.Vector;
/**
- * This class allows documents to be created with different paper types,
- * page formatters, and painters.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public class Book implements Pageable
-{
-
-/*
- * Instance Variables
- */
-
-// Painter objects for the book
-Vector printables = new Vector();
-
-// Page formats for the book
-Vector page_formats = new Vector();
-
-/*************************************************************************/
-
-/*
- * Constructors
+ * This class allows documents to be created with different paper types,
+ * page formatters, and painters.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
*/
-
-/**
- * Initializes a new instance of <code>Book</code> that is empty.
- */
-public
-Book()
-{
- ;
-}
-
-/*************************************************************************/
-
-/**
- * Returns the number of pages in this book.
- *
- * @return The number of pages in this book.
- */
-public int
-getNumberOfPages()
-{
- return(printables.size());
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the <code>PageFormat</code> object for the
- * specified page.
- *
- * @param page_number The number of the page to get information for, where
- * page numbers start at 0.
- *
- * @return The <code>PageFormat</code> object for the specified page.
- *
- * @exception IndexOutOfBoundsException If the page number is not valid.
- */
-public PageFormat
-getPageFormat(int page_number)
-{
- return((PageFormat)page_formats.elementAt(page_number));
-}
-
-/*************************************************************************/
-
-/**
- * This method returns the <code>Printable</code> object for the
- * specified page.
- *
- * @param page_number The number of the page to get information for, where
- * page numbers start at 0.
- *
- * @return The <code>Printable</code> object for the specified page.
- *
- * @exception IndexOutOfBoundsException If the page number is not valid.
- */
-public Printable
-getPrintable(int page_number)
-{
- return((Printable)printables.elementAt(page_number));
-}
-
-/*************************************************************************/
-
-/**
- * This method appends a page to the end of the book.
- *
- * @param printable The <code>Printable</code> for this page.
- * @param page_format The <code>PageFormat</code> for this page.
- *
- * @exception NullPointerException If either argument is <code>null</code>.
- */
-public void
-append(Printable printable, PageFormat page_format)
-{
- append(printable, page_format, 1);
-}
-
-/*************************************************************************/
-
-/**
- * This method appends the specified number of pages to the end of the book.
- * Each one will be associated with the specified <code>Printable</code>
- * and <code>PageFormat</code>.
- *
- * @param printable The <code>Printable</code> for this page.
- * @param page_format The <code>PageFormat</code> for this page.
- * @param num_pages The number of pages to append.
- *
- * @exception NullPointerException If any argument is <code>null</code>.
- */
-public void
-append(Printable printable, PageFormat page_format, int num_pages)
-{
- for (int i = 0; i < num_pages; i++)
- {
- printables.addElement(printable);
- page_formats.addElement(page_format);
- }
-}
-
-/*************************************************************************/
-
-/**
- * This method changes the <code>Printable</code> and <code>PageFormat</code>
- * for the specified page. The page must already exist or an exception
- * will be thrown.
- *
- * @param page_num The page number to alter.
- * @param printable The new <code>Printable</code> for the page.
- * @param page_format The new <code>PageFormat</code> for the page.
- *
- * @throws IndexOutOfBoundsException If the specified page does not exist.
- */
-public void
-setPage(int page_num, Printable printable, PageFormat page_format)
+public class Book implements Pageable
{
- printables.setElementAt(printable, page_num);
- page_formats.setElementAt(page_format, page_num);
-}
+ /**
+ * Painter objects for the book.
+ */
+ Vector printables = new Vector();
+
+ /**
+ * Page formats for the book.
+ */
+ Vector page_formats = new Vector();
+
+ /**
+ * Initializes a new instance of <code>Book</code> that is empty.
+ */
+ public Book()
+ {
+ }
+
+ /**
+ * Returns the number of pages in this book.
+ *
+ * @return The number of pages in this book.
+ */
+ public int getNumberOfPages()
+ {
+ return printables.size();
+ }
+
+ /**
+ * This method returns the <code>PageFormat</code> object for the
+ * specified page.
+ *
+ * @param page_number The number of the page to get information for, where
+ * page numbers start at 0.
+ *
+ * @return The <code>PageFormat</code> object for the specified page.
+ *
+ * @exception IndexOutOfBoundsException If the page number is not valid.
+ */
+ public PageFormat getPageFormat(int page_number)
+ {
+ return (PageFormat) page_formats.elementAt(page_number);
+ }
+
+ /**
+ * This method returns the <code>Printable</code> object for the
+ * specified page.
+ *
+ * @param page_number The number of the page to get information for, where
+ * page numbers start at 0.
+ *
+ * @return The <code>Printable</code> object for the specified page.
+ *
+ * @exception IndexOutOfBoundsException If the page number is not valid.
+ */
+ public Printable getPrintable(int page_number)
+ {
+ return (Printable) printables.elementAt(page_number);
+ }
+
+ /**
+ * This method appends a page to the end of the book.
+ *
+ * @param printable The <code>Printable</code> for this page.
+ * @param page_format The <code>PageFormat</code> for this page.
+ *
+ * @exception NullPointerException If either argument is <code>null</code>.
+ */
+ public void append(Printable printable, PageFormat page_format)
+ {
+ append(printable, page_format, 1);
+ }
+
+ /**
+ * This method appends the specified number of pages to the end of the book.
+ * Each one will be associated with the specified <code>Printable</code>
+ * and <code>PageFormat</code>.
+ *
+ * @param printable The <code>Printable</code> for this page.
+ * @param page_format The <code>PageFormat</code> for this page.
+ * @param num_pages The number of pages to append.
+ *
+ * @exception NullPointerException If any argument is <code>null</code>.
+ */
+ public void append(Printable printable, PageFormat page_format, int num_pages)
+ {
+ for (int i = 0; i < num_pages; i++)
+ {
+ printables.addElement(printable);
+ page_formats.addElement(page_format);
+ }
+ }
+
+ /**
+ * This method changes the <code>Printable</code> and <code>PageFormat</code>
+ * for the specified page. The page must already exist or an exception
+ * will be thrown.
+ *
+ * @param page_num The page number to alter.
+ * @param printable The new <code>Printable</code> for the page.
+ * @param page_format The new <code>PageFormat</code> for the page.
+ *
+ * @throws IndexOutOfBoundsException If the specified page does not exist.
+ */
+ public void setPage(int page_num, Printable printable, PageFormat page_format)
+ {
+ printables.setElementAt(printable, page_num);
+ page_formats.setElementAt(page_format, page_num);
+ }
}
diff --git a/libjava/java/awt/print/PrinterAbortException.java b/libjava/java/awt/print/PrinterAbortException.java
index 133fdfe116d..5507a4f6ef8 100644
--- a/libjava/java/awt/print/PrinterAbortException.java
+++ b/libjava/java/awt/print/PrinterAbortException.java
@@ -1,5 +1,5 @@
/* PrinterAbortException.java -- Indicates the print job was aborted
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.print;
* This exception is thrown when the print job is aborted, either by the
* user or by the application.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class PrinterAbortException extends PrinterException
diff --git a/libjava/java/awt/print/PrinterException.java b/libjava/java/awt/print/PrinterException.java
index 9476d935674..e27fdbff4ab 100644
--- a/libjava/java/awt/print/PrinterException.java
+++ b/libjava/java/awt/print/PrinterException.java
@@ -1,5 +1,5 @@
/* PrinterException.java -- generic problem in the printing subsystem
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.awt.print;
* This is the generic toplevel exception for printing errors. Subclasses
* provide more detailed descriptions of the problem.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class PrinterException extends Exception
diff --git a/libjava/java/awt/print/PrinterIOException.java b/libjava/java/awt/print/PrinterIOException.java
index 31f6381dc0d..e64ff4e6f7b 100644
--- a/libjava/java/awt/print/PrinterIOException.java
+++ b/libjava/java/awt/print/PrinterIOException.java
@@ -1,5 +1,5 @@
/* PrinterIOException.java -- The print job encountered an I/O error
- Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,8 +44,8 @@ import java.io.IOException;
* This exception is thrown when the print job encounters an I/O problem
* of some kind.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
public class PrinterIOException extends PrinterException
diff --git a/libjava/java/awt/print/PrinterJob.java b/libjava/java/awt/print/PrinterJob.java
index 8998aa0ff89..bc5cfcd5a1b 100644
--- a/libjava/java/awt/print/PrinterJob.java
+++ b/libjava/java/awt/print/PrinterJob.java
@@ -1,5 +1,5 @@
/* PrinterJob.java -- This job is the printer control class
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,10 +38,9 @@ exception statement from your version. */
package java.awt.print;
-import javax.print.DocFlavor;
+import java.awt.HeadlessException;
+
import javax.print.PrintService;
-import javax.print.PrintServiceLookup;
-//import javax.print.StreamPrintServiceFactory;
import javax.print.attribute.PrintRequestAttributeSet;
/**
@@ -61,7 +60,7 @@ public abstract class PrinterJob
*/
public static PrinterJob getPrinterJob()
{
- // FIXME: Need to fix this to load a default implementation instance.
+ // FIXME: Need to fix this to load a default implementation instance.
return null;
}
@@ -149,7 +148,8 @@ public abstract class PrinterJob
*
* @return The modified <code>PageFormat</code>.
*/
- public abstract PageFormat pageDialog(PageFormat page_format);
+ public abstract PageFormat pageDialog(PageFormat page_format)
+ throws HeadlessException;
/**
* Prints the pages.
@@ -169,7 +169,8 @@ public abstract class PrinterJob
* @return <code>false</code> if the user cancels the dialog box,
* <code>true</code> otherwise.
*/
- public abstract boolean printDialog();
+ public abstract boolean printDialog()
+ throws HeadlessException;
/**
* Displays a dialog box to the user which allows the print job
@@ -178,7 +179,8 @@ public abstract class PrinterJob
* @return <code>false</code> if the user cancels the dialog box,
* <code>true</code> otherwise.
*/
- public abstract boolean printDialog(PrintRequestAttributeSet attributes);
+ public abstract boolean printDialog(PrintRequestAttributeSet attributes)
+ throws HeadlessException;
/**
* This sets the pages that are to be printed.
diff --git a/libjava/java/beans/AppletInitializer.java b/libjava/java/beans/AppletInitializer.java
index 48c37b38061..0b20c86fefd 100644
--- a/libjava/java/beans/AppletInitializer.java
+++ b/libjava/java/beans/AppletInitializer.java
@@ -1,5 +1,5 @@
/* java.beans.AppletInitializer
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.beans.beancontext.BeanContext;
* Bean that is also an Applet. It is used by
* <code>Beans.instantiate()</code>.
*
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @since 1.2
*/
public interface AppletInitializer
diff --git a/libjava/java/beans/Beans.java b/libjava/java/beans/Beans.java
index 762e4d597ca..30f6642bbc3 100644
--- a/libjava/java/beans/Beans.java
+++ b/libjava/java/beans/Beans.java
@@ -1,5 +1,5 @@
/* java.beans.Beans
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,23 +35,26 @@ 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.beans;
+import gnu.java.beans.DummyAppletStub;
import gnu.java.io.ClassLoaderObjectInputStream;
import java.applet.Applet;
+import java.beans.beancontext.BeanContext;
import java.io.IOException;
-import java.io.InputStream;
import java.io.ObjectInputStream;
+import java.net.URL;
/**
* <code>Beans</code> provides some helper methods that allow the basic
* operations of Bean-ness.
*
* @author John Keiser
+ * @author Robert Schuster
+ *
* @since 1.1
- * @version 1.1.0, 29 Jul 1998
+ * @status updated to 1.4
*
*/
public class Beans
@@ -66,196 +69,300 @@ public class Beans
*/
public Beans()
{
- // Do nothing here.
+ // Does intentionally nothing here.
}
- /**
- * Allows you to instantiate a Bean. This method takes
- * a ClassLoader from which to read the Bean and the
- * name of the Bean.<P>
- *
- * The Bean name should be a dotted name, like a class.
- * It can represent several things. Beans will search
- * for the Bean using the name like this:<P>
- * <OL>
- * <LI>Searches for a serialized instance of the Bean
- * using getResource(), mangling the Bean name by
- * replacing the dots with slashes and appending .ser
- * (for example, gnu.beans.BlahDeBlah would cause
- * Beans to search for gnu/beans/BlahDeBlah.ser using
- * getResource()).</LI>
- * <LI>Searches for the Bean class using the beanName,
- * and then instantiates it with the no-arg constructor.
- * At that point, if it is an Applet, it provides it
- * with AppletContext and AppletStub, and then calls
- * init().</LI>
- * </OL>
- *
- * @param cl the ClassLoader to use, or <CODE>null</CODE>
- * to use the default ClassLoader.
- * @param beanName the name of the Bean.
- *
- * @return the Bean.
- *
- * @XXX
- */
- public static Object instantiate (ClassLoader cl, String beanName)
- throws IOException, ClassNotFoundException
- {
- Object bean;
- InputStream serStream;
-
- if (cl == null)
- {
- serStream = ClassLoader.getSystemResourceAsStream
- (beanName.replace ('.','/')+".ser");
- }
- else
- {
- serStream = cl.getResourceAsStream (beanName.replace ('.', '/')
- + ".ser");
- }
-
- if (serStream != null)
- {
- if(cl == null)
- {
- ObjectInputStream ois = new ObjectInputStream(serStream);
- bean = ois.readObject();
- }
- else
- {
- ClassLoaderObjectInputStream ois =
- new ClassLoaderObjectInputStream (serStream, cl);
+ /** Creates a bean.
+ * <p>This is a convenience method that calls <code>instantiate(cl, beanName, null, null)</code>.</p>
+ *
+ * @see instantiate(ClassLoader, String, BeanContext, AppletInitializer)
+ * @param cl ClassLoader to be used or <code>null</code> for the system classloader.
+ * @param beanName Name of a serialized bean or class name.
+ * @return A newly created bean.
+ * @throws IOException If access of an IO resource failed.
+ * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class.
+ */
+ public static Object instantiate(ClassLoader cl, String beanName)
+ throws IOException, ClassNotFoundException
+ {
+ return instantiate(cl, beanName, null, null);
+ }
+
+ /** Creates a bean.
+ *
+ * <p>This is a convenience method that calls <code>instantiate(cl, beanName, beanContext, null)</code>.</p>
+ *
+ * @see instantiate(ClassLoader, String, BeanContext, AppletInitializer)
+ * @param cl ClassLoader to be used or <code>null</code> for the system classloader.
+ * @param beanName Name of a serialized bean or class name.
+ * @param beanContext Context to which the newly created Bean should be added.
+ * @return A newly created bean.
+ * @throws IOException If access of an IO resource failed.
+ * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class.
+ */
+ public static Object instantiate(
+ ClassLoader cl,
+ String beanName,
+ BeanContext beanContext)
+ throws IOException, ClassNotFoundException
+ {
+ return instantiate(cl, beanName, beanContext, null);
+ }
+
+ /** Instantiates a bean according to Beans 1.0.
+ *
+ * <p>In Beans 1.0 the instantiation scheme is as follows:</p>
+ * <p>The name should be dot-separated (e.g "place.for.beans.myBean") and indicate either a
+ * serialized object or a class name. In the first case all dots in the name are replaced with
+ * slashes ('/') and ".ser" is appended ("place.for.beans.myBean" becomes "place/for/beans/myBean.ser").
+ * The bean is then loaded as an application or system resource depending on whether a
+ * <code>ClassLoader</code> was provided.</p>
+ *
+ * <p>If no such resource exists or if it contains no bean the name is interpreted as a class name of
+ * which an instance is then created.</p>
+ *
+ * <p>If a <code>BeanContext</code> instance is available the created bean is added to it.</p>
+ *
+ * <p>If the created Bean is an <code>Applet</code> or subclass and an <code>AppletInitializer</code>
+ * instance is available the applet is initialized and afterwards activated using the initializer. Additionally
+ * every instantiated <code>Applet</code> bean is initialized using the {@link Applet.init} method.
+ * Furthermore every applet gets a default <code>AppletStub</code>. The <code>Applet</code>'s
+ * document base is the location of the ".ser" file if it was deserialized or the location of its class
+ * file if it was instantiated.</p>
+ *
+ * <p>A <code>ClassNotFoundException</code> is not only thrown when a class name was unknown
+ * but even when the class has public no-argument constructor
+ * (<code>IllegalAccessException</code> is wrapped) or an exception is thrown while
+ * invoking such a constructor (causing exception is wrapped).</p>
+ *
+ * @param cl ClassLoader to be used or <code>null</code> for the system classloader.
+ * @param beanName Name of a serialized bean or class name.
+ * @param beanContext Context to which the newly created Bean should be added.
+ * @param initializer The AppletInitializer which is used for initializing <code>Applet</code> beans.
+ * @return A newly created bean.
+ * @throws IOException If access of an IO resource failed.
+ * @throws ClassNotFoundException If the class name is not known or does not lead to a proper bean class.
+ */
+ public static Object instantiate(
+ ClassLoader cl,
+ String beanName,
+ BeanContext beanContext,
+ AppletInitializer initializer)
+ throws IOException, ClassNotFoundException
+ {
+ Object bean = null;
+ URL beanLocation = null;
+ URL classLocation = null;
+
+ // Converts bean name into a resource name (eg. "a.b.c" -> "a/b/c").
+ String resourceName = beanName.replace('.', '/');
+
+ /* Tries to get an input stream of the Bean, reading it as a system resource
+ * if no ClassLoader is present or as an application resource if a classloader
+ * is given.
+ */
+ beanLocation =
+ (cl == null)
+ ? ClassLoader.getSystemResource(resourceName + ".ser")
+ : cl.getResource(resourceName + ".ser");
+
+ // Reads the serialized Bean from the returned URL.
+ if (beanLocation != null)
+ {
+ // Deserializes the bean instance.
+ ObjectInputStream ois =
+ (cl == null)
+ ? new ObjectInputStream(beanLocation.openStream())
+ : new ClassLoaderObjectInputStream(
+ beanLocation.openStream(),
+ cl);
+
bean = ois.readObject();
- }
- }
- else if(cl == null)
- {
- Class beanClass = Class.forName(beanName);
- try
- {
- bean = beanClass.newInstance();
- }
- catch(IllegalAccessException E)
- {
- bean = null;
- }
- catch(InstantiationException E)
- {
- bean = null;
- }
- }
- else
- {
- Class beanClass = cl.loadClass(beanName);
- try
- {
- bean = beanClass.newInstance();
- }
- catch(IllegalAccessException E)
- {
- bean = null;
- }
- catch(InstantiationException E)
- {
- bean = null;
- }
- }
-
- if(bean instanceof Applet)
- {
- Applet a = (Applet)bean;
- //a.setAppletContext(???);
- //a.setStub(???);
- if(serStream == null)
- {
- a.init();
- }
- }
-
- return bean;
- }
- /**
- * Get the Bean as a different class type.
- * This should be used instead of casting to get a new
- * type view of a Bean, because in the future there may
- * be new types of Bean, even Beans spanning multiple
- * Objects.
- *
- * @param bean the Bean to cast.
- * @param newClass the Class to cast it to.
- *
- * @return the Bean as a new view, or if the operation
- * could not be performed, the Bean itself.
- */
- public static Object getInstanceOf(Object bean, Class newClass)
- {
- return bean;
- }
+ /* Implementation note: The result of ObjectInputStream.readObject()
+ * may have been null at this point (its a valid value to deserialize)
+ * and we explicitly want to try instantiation in such a case
+ * (this is important for compatibility).
+ */
+ }
- /**
- * Determine whether the Bean can be cast to a different
- * class type.
- * This should be used instead of instanceof to determine
- * a Bean's castability, because in the future there may
- * be new types of Bean, even Beans spanning multiple
- * Objects.
- *
- * @param bean the Bean to cast.
- * @param newBeanClass the Class to cast it to.
- *
- * @return whether the Bean can be cast to the class type
- * in question.
- */
- public static boolean isInstanceOf(Object bean, Class newBeanClass)
- {
- return newBeanClass.isInstance(bean);
- }
+ // Instantiates the Bean using reflective instantiation if it has not been created yet.
+ if (bean == null)
+ {
+ // Makes sure that the deserialization was NOT done.
+ beanLocation = null;
- /**
- * Find out whether the GUI is available to use.
- * Defaults to true.
- *
- * @return whether the GUI is available to use.
- */
- public static boolean isGuiAvailable()
- {
- return guiAvailable;
- }
+ Class beanClass;
+ if (cl == null)
+ {
+ beanClass = Class.forName(beanName);
+ classLocation =
+ ClassLoader.getSystemResource(resourceName + ".class");
+ }
+ else
+ {
+ beanClass = cl.loadClass(beanName);
+ classLocation = cl.getResource(resourceName + ".class");
+ }
- /**
- * Find out whether it is design time. Design time means
- * we are in a RAD tool.
- * Defaults to false.
- *
- * @return whether it is design time.
- */
- public static boolean isDesignTime()
- {
- return designTime;
- }
+ // Instantiates and optionally registers the new bean.
+ try
+ {
+ bean = beanClass.newInstance();
+ }
+ catch(Exception e) {
+ /* Wraps all kinds of Exceptions in a ClassNotFoundException (this behavior
+ * matches with official >= 1.5, this was different for <=1.4)
+ */
+ throw new ClassNotFoundException(null, e);
+ }
+ }
- /**
- * Set whether the GUI is available to use.
- * @param guiAvailable whether the GUI is available to use.
- */
- public static void setGuiAvailable(boolean guiAvailable)
- throws SecurityException
- {
- Beans.guiAvailable = guiAvailable;
- }
+ /* Applet beans are treated in the following way:
+ * - all AppletS get a default AppletStub
+ * - all AppletS are initialized using the AppletInitializer instance (if it is available)
+ * - as every other Bean Applets are added to a BeanContext if one is available
+ * - each instantiated Applet is initialized using Applet.init() (this is not done for deserialized ones)
+ * - finally AppletS get activated using the AppletInitializerS activate-Method
+ *
+ * The order of operations is important for compatibility.
+ */
+ Applet applet = null;
+ if (bean instanceof Applet)
+ {
+ // Makes a second instanceof call unneccessary (instanceof is expensive).
+ applet = (Applet) bean;
+
+ /* The AppletStub's code and document base is set as follows:
+ * The code base is always the URL from where the class data originated
+ * (without the package name).
+ * If the Applet was deserialized the document base is the location of
+ * the serialized instance (usually the ".ser" file) otherwise its the URL
+ * from where the class data originated (usually the absolute directory
+ * location of the ".class" file).
+ */
+ applet.setStub(
+ new DummyAppletStub(
+ applet
+ .getClass()
+ .getProtectionDomain()
+ .getCodeSource()
+ .getLocation(),
+ (beanLocation == null) ? classLocation : beanLocation));
+
+ // Runs the Applet's initialization using an AppletInitializer.
+ if (initializer != null)
+ {
+ initializer.initialize(applet, beanContext);
+ }
+ }
+
+ // Adds the new bean to its BeanContext.
+ if (beanContext != null)
+ {
+ beanContext.add(bean);
+ }
+
+ if (applet != null)
+ {
+
+ // Initializes an instantiated (not deserialized) Applet using its own method.
+ if (beanLocation == null)
+ {
+ applet.init();
+ }
+
+ // Runs the Applet's activation using an AppletInitializer.
+ if (initializer != null)
+ {
+ initializer.activate(applet);
+ }
+ }
+
+ return bean;
+ }
+
+ /**
+ * Returns the Bean as a different class type.
+ * This should be used instead of casting to get a new
+ * type view of a Bean, because in the future there may
+ * be new types of Bean, even Beans spanning multiple
+ * Objects.
+ *
+ * @param bean the Bean to cast.
+ * @param newClass the Class to cast it to.
+ *
+ * @return the Bean as a new view, or if the operation
+ * could not be performed, the Bean itself.
+ */
+ public static Object getInstanceOf(Object bean, Class newClass)
+ {
+ return bean;
+ }
+
+ /**
+ * Determines whether the Bean can be cast to a different
+ * class type.
+ * This should be used instead of instanceof to determine
+ * a Bean's castability, because in the future there may
+ * be new types of Bean, even Beans spanning multiple
+ * Objects.
+ *
+ * @param bean the Bean to cast.
+ * @param newClass the Class to cast it to.
+ *
+ * @return whether the Bean can be cast to the class type
+ * in question.
+ */
+ public static boolean isInstanceOf(Object bean, Class newBeanClass)
+ {
+ return newBeanClass.isInstance(bean);
+ }
+
+ /**
+ * Returns whether the GUI is available to use.
+ * <p>Defaults to true.</p>
+ *
+ * @return whether the GUI is available to use.
+ */
+ public static boolean isGuiAvailable()
+ {
+ return guiAvailable;
+ }
+
+ /**
+ * Returns whether it is design time. Design time means
+ * we are in a RAD tool.
+ * <p>Defaults to false.</p>
+ *
+ * @return whether it is design time.
+ */
+ public static boolean isDesignTime()
+ {
+ return designTime;
+ }
+
+ /**
+ * Sets whether the GUI is available to use.
+ *
+ * @param guiAvailable whether the GUI is available to use.
+ */
+ public static void setGuiAvailable(boolean guiAvailable)
+ throws SecurityException
+ {
+ Beans.guiAvailable = guiAvailable;
+ }
+
+ /**
+ * Sets whether it is design time. Design time means we
+ * are in a RAD tool.
+ *
+ * @param designTime whether it is design time.
+ */
+ public static void setDesignTime(boolean designTime)
+ throws SecurityException
+ {
+ Beans.designTime = designTime;
+ }
- /**
- * Set whether it is design time. Design time means we
- * are in a RAD tool.
- *
- * @param designTime whether it is design time.
- */
- public static void setDesignTime(boolean designTime)
- throws SecurityException
- {
- Beans.designTime = designTime;
- }
}
diff --git a/libjava/java/beans/ExceptionListener.java b/libjava/java/beans/ExceptionListener.java
index 09f7d1a8a2e..01f952f8597 100644
--- a/libjava/java/beans/ExceptionListener.java
+++ b/libjava/java/beans/ExceptionListener.java
@@ -1,5 +1,5 @@
/* ExceptionListener.java -- listen for recoverable internal exceptions
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.beans;
* This interface allows a class to monitor internal exceptions, to try to
* recover from them.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/beans/PropertyChangeEvent.java b/libjava/java/beans/PropertyChangeEvent.java
index 418f92f8bb8..75e17b18be1 100644
--- a/libjava/java/beans/PropertyChangeEvent.java
+++ b/libjava/java/beans/PropertyChangeEvent.java
@@ -1,5 +1,5 @@
/* PropertyChangeEvent.java -- describes a change in a property
- Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,7 +55,7 @@ import java.util.EventObject;
* information.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status udpated to 1.4
*/
diff --git a/libjava/java/beans/PropertyChangeListenerProxy.java b/libjava/java/beans/PropertyChangeListenerProxy.java
index 6e707038d06..3a04de2db5a 100644
--- a/libjava/java/beans/PropertyChangeListenerProxy.java
+++ b/libjava/java/beans/PropertyChangeListenerProxy.java
@@ -1,5 +1,5 @@
/* PropertyChangeListenerProxy.java -- adds a name to a property listener
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.EventListenerProxy;
* associating a name with the listener. This can be used to filter the
* changes that one is interested in.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status udpated to 1.4
*/
diff --git a/libjava/java/beans/PropertyChangeSupport.java b/libjava/java/beans/PropertyChangeSupport.java
index 4796a17f13e..76932bccda3 100644
--- a/libjava/java/beans/PropertyChangeSupport.java
+++ b/libjava/java/beans/PropertyChangeSupport.java
@@ -1,5 +1,5 @@
/* PropertyChangeSupport.java -- support to manage property change listeners
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import java.util.Vector;
* is thread-safe.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/beans/PropertyDescriptor.java b/libjava/java/beans/PropertyDescriptor.java
index b62440a2e47..57ed4f8cadf 100644
--- a/libjava/java/beans/PropertyDescriptor.java
+++ b/libjava/java/beans/PropertyDescriptor.java
@@ -1,5 +1,5 @@
/* java.beans.PropertyDescriptor
- Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import java.lang.reflect.Method;
** </OL>
**
** @author John Keiser
- ** @author Robert Schuster <thebohemian@gmx.net>
+ ** @author Robert Schuster (thebohemian@gmx.net)
** @since 1.1
** @status updated to 1.4
**/
@@ -126,7 +126,7 @@ public class PropertyDescriptor extends FeatureDescriptor
}
// finally check the methods compatibility
- checkMethods(getMethod, setMethod);
+ propertyType = checkMethods(getMethod, setMethod);
}
/** Create a new PropertyDescriptor by introspection.
@@ -178,7 +178,7 @@ public class PropertyDescriptor extends FeatureDescriptor
"Cannot find a setter method called " + setMethodName);
}
- checkMethods(getMethod, setMethod);
+ propertyType = checkMethods(getMethod, setMethod);
}
/** Create a new PropertyDescriptor using explicit Methods.
@@ -205,17 +205,7 @@ public class PropertyDescriptor extends FeatureDescriptor
setName(name);
getMethod = readMethod;
setMethod = writeMethod;
-
- if (getMethod != null)
- {
- this.propertyType = getMethod.getReturnType();
- }
- else if (setMethod != null)
- {
- this.propertyType = setMethod.getParameterTypes()[0];
- }
-
- checkMethods(getMethod, setMethod);
+ propertyType = checkMethods(getMethod, setMethod);
}
/** Get the property type.
@@ -250,7 +240,7 @@ public class PropertyDescriptor extends FeatureDescriptor
*/
public void setReadMethod(Method readMethod) throws IntrospectionException
{
- checkMethods(readMethod, setMethod);
+ propertyType = checkMethods(readMethod, setMethod);
getMethod = readMethod;
}
@@ -448,7 +438,7 @@ public class PropertyDescriptor extends FeatureDescriptor
* <li>the property type and the read method's return type must be assignable from the
* write method's argument type</li>
* <li>the write method may not exist</li>
- * <ul>
+ * </ul>
* While checking the methods a common new property type is calculated. If the method
* succeeds this property type is returned.<br/>
* <br/>
diff --git a/libjava/java/beans/VetoableChangeListenerProxy.java b/libjava/java/beans/VetoableChangeListenerProxy.java
index f9d79958705..d5007317bd5 100644
--- a/libjava/java/beans/VetoableChangeListenerProxy.java
+++ b/libjava/java/beans/VetoableChangeListenerProxy.java
@@ -1,5 +1,5 @@
/* VetoableChangeListenerProxy.java -- adds a name to a vetoable listener
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.EventListenerProxy;
* associating a name with the listener. This can be used to filter the
* changes that one is interested in.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status udpated to 1.4
*/
diff --git a/libjava/java/beans/VetoableChangeSupport.java b/libjava/java/beans/VetoableChangeSupport.java
index bbac648dbd2..f1dbc50a778 100644
--- a/libjava/java/beans/VetoableChangeSupport.java
+++ b/libjava/java/beans/VetoableChangeSupport.java
@@ -1,5 +1,5 @@
/* VetoableChangeSupport.java -- support to manage vetoable change listeners
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import java.util.Vector;
* is thread-safe.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/beans/XMLDecoder.java b/libjava/java/beans/XMLDecoder.java
new file mode 100644
index 00000000000..87703352248
--- /dev/null
+++ b/libjava/java/beans/XMLDecoder.java
@@ -0,0 +1,307 @@
+/* java.beans.XMLDecoder --
+ Copyright (C) 2004, 2005 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.beans;
+
+import gnu.java.beans.decoder.DefaultExceptionListener;
+import gnu.java.beans.decoder.PersistenceParser;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * The XMLDecoder reads XML data that is structured according to
+ * <a href="http://java.sun.com/products/jfc/tsc/articles/persistence3/javabeans.dtd">this</a> DTD
+ * and creates objects according to the content. Usually such data is generated using the
+ * {@link XMLEncoder} class.
+ * <p>
+ * An example XML document might look like this:
+ * <code>
+ * &lt;java&gt;
+ * &lt;string&gt;Hello World&lt;/string&gt;
+ * &lt;int&gt;200&lt;/int&gt;
+ * &lt;/java&gt;
+ * </code>
+ * <p>To read the <code>String</code> and the <code>Integer</code> instance the following can be used (assume
+ * the XML data can be obtained from the InputStream):</p>
+ * <code>
+ * XMLDecoder decoder = new XMLDecoder(inputStreamContainingXMLData);
+ * String message = (String) decoder.readObject();
+ * Integer number = (Integer) decoder.readObject();
+ * </code>
+ * <p>Besides this basic functionality the <code>XMLDecoder</code> has some more features that might come
+ * handy in certain situations:</p>
+ * <p>An owner object can be set using the <code>setOwner</code> method which can then be accessed when
+ * decoding. This feature is only useful if the XML data is aware of the owner object. Such data may
+ * look like this (assume that the owner object is a JFrame instance):</p>
+ * <code>
+ * &lt;java&gt;
+ * &lt;void method="getOwner"&gt;
+ * &lt;void method="setVisible"&gt;
+ * &lt;boolean&gt;true&lt;boolean&gt;
+ * &lt;/void&gt;
+ * &lt;/void&gt;
+ * &lt;/java&gt;
+ * </code>
+ * This accesses the <code>JFrame</code> and makes it visible using the <code>setVisible</code> method.
+ * <p>Please note that changing the owner <b>after</b> the having read the first object has no effect,
+ * because all object have been decoded then.</p>
+ * <p>If the <code>XMLDecoder</code> is created with no {@link ExceptionListener} instance a default one
+ * is used that prints an error message to <code>System.err</code> whenever a recoverable exception
+ * is thrown. Recovarable exceptions occur when the XML data cannot be interpreted correctly (e.g
+ * unknown classes or methods, invocation on null, ...). In general be very careful when the
+ * <code>XMLDecoder</code> provoked such exceptions because the resulting object(s) may be in an
+ * undesirable state.</p>
+ * <p>Note that changing the ExceptionListener instance after <code>readObject</code> has been called
+ * once has no effect because the decoding is completed then.</p>
+ * <p>At last one can provide a specific <code>ClassLoader</code> which is then used when <code>Class</code>
+ * objects are accessed. See {@link java.lang.Class#forName(String, boolean, ClassLoader)} for details
+ * on this.</p>
+ * <p>Note: If the <code>InputStream</code> instance given to any of the constructors is <code>null</code>
+ * the resulting <code>XMLDecoder</code> will be silently (without any exception) useless. Each call
+ * to <code>readObject</code> will return <code>null</code> and never throws an
+ * <code>ArrayIndexOutOfBoundsException</code>.</p>
+ *
+ * @author Robert Schuster
+ * @since 1.4
+ * @status updated to 1.5
+ */
+public class XMLDecoder
+{
+ private Object owner;
+
+ private ExceptionListener exceptionListener;
+
+ private InputStream inputStream;
+
+ private boolean isStreamClosed;
+
+ private ClassLoader classLoader;
+
+ private Iterator iterator;
+
+ /** Creates a XMLDecoder instance that parses the XML data of the given input stream.
+ * Using this constructor no special ClassLoader, a default ExceptionListener
+ * and no owner object is used.
+ *
+ * @param in InputStream to read XML data from.
+ */
+ public XMLDecoder(InputStream in)
+ {
+ this(in, null);
+ }
+
+ /** Creates a XMLDecoder instance that parses the XML data of the given input stream.
+ * Using this constructor no special ClassLoader and a default ExceptionListener
+ * is used.
+ *
+ * @param in InputStream to read XML data from.
+ * @param owner Owner object which can be accessed and modified while parsing.
+ */
+ public XMLDecoder(InputStream in, Object owner)
+ {
+ this(in, owner, null);
+ }
+
+ /** Creates a XMLDecoder instance that parses the XML data of the given input stream.
+ * If the ExceptionListener argument is null a default implementation is used.
+ *
+ * @param in InputStream to read XML data from.
+ * @param owner Owner object which can be accessed and modified while parsing.
+ * @param exceptionListener ExceptionListener instance to which exception notifications are send.
+ */
+ public XMLDecoder(
+ InputStream in,
+ Object owner,
+ ExceptionListener exceptionListener)
+ {
+ this(
+ in,
+ owner,
+ exceptionListener,
+ Thread.currentThread().getContextClassLoader());
+ }
+
+ /** Creates a XMLDecoder instance that parses the XML data of the given input stream.
+ * If the ExceptionListener argument is null a default implementation is used.
+ *
+ * @param in InputStream to read XML data from.
+ * @param owner Owner object which can be accessed and modified while parsing.
+ * @param exceptionListener ExceptionListener instance to which exception notifications are send.
+ * @param cl ClassLoader instance that is used for calls to <code>Class.forName(String, boolean, ClassLoader)</code>
+ * @since 1.5
+ */
+ public XMLDecoder(
+ InputStream in,
+ Object owner,
+ ExceptionListener listener,
+ ClassLoader cl)
+ {
+ // initially here was a check for the validity of the InputStream argument but some
+ // great engineers decided that this API should silently discard this and behave rather
+ // odd: readObject will always return null ...
+ inputStream = in;
+
+ setExceptionListener(listener);
+
+ // validity of this object is checked in Class.forName() and therefore may be null
+ classLoader = cl;
+
+ this.owner = owner;
+ }
+
+ /** Closes the stream associated with this decoder. This should be done after having read all
+ * decoded objects.
+ * <p>See the description of the {@link #readObject()} for the effect caused by <code>close</code>.</p>
+ */
+ public void close()
+ {
+ if (isStreamClosed)
+ {
+ return;
+ }
+
+ try
+ {
+ inputStream.close();
+ isStreamClosed = true;
+ }
+ catch (IOException e)
+ {
+ // bad style forced by original API design ...
+ }
+ }
+
+ /** Returns the ExceptionListener instance associated with this decoder.
+ * <p>See the description of {@link XMLDecoder} class for more information on the ExceptionListener.</p>
+ *
+ * @return Current ExceptionListener of the decoder.
+ */
+ public ExceptionListener getExceptionListener()
+ {
+ return exceptionListener;
+ }
+
+ /** Returns the owner object of the decoder. This method is usually called
+ * from within the parsed XML data.
+ * <p>See the description of {@link XMLDecoder} class for more information on the owner object.</p>
+ *
+ * @return The owner object of this decoder.
+ */
+ public Object getOwner()
+ {
+ return owner;
+ }
+
+ /** Returns the next available decoded object.
+ * <p>Note that the actual decoding takes place when the method is called for the first time.</p>
+ * <p>If the <code>close</code> method was already called a <code>NoSuchElementException</code>
+ * is thrown.</p>
+ * <p>If the InputStream instance used in the constructors was <code>null</code> this method
+ * will always return <code>null</code> itself.</p>
+ *
+ * @return The next object in a sequence decoded from XML data.
+ * @throws ArrayIndexOutOfBoundsException When no more objects are available.
+ */
+ public Object readObject() throws ArrayIndexOutOfBoundsException
+ {
+ // note: the RI does it this way ...
+ if(inputStream == null) {
+ return null;
+ }
+
+ // note: the original API documentation says nothing on what to do
+ // when the stream was closed before readObject is called but it actually
+ // throws a NoSuchElementException - this behaviour is imitated here
+ if (isStreamClosed)
+ {
+ throw new NoSuchElementException("Cannot read any objects - XMLDecoder was already closed.");
+ }
+
+ // creates the PersistenceParser (doing the parsing and decoding) and returns its
+ // Iterator on first invocation
+ if (iterator == null)
+ {
+ iterator =
+ new PersistenceParser(
+ inputStream,
+ exceptionListener,
+ classLoader,
+ this)
+ .iterator();
+ }
+
+ // note: done according to the official documentation
+ if (!iterator.hasNext())
+ {
+ throw new ArrayIndexOutOfBoundsException("No more objects available from this XMLDecoder.");
+ }
+
+ // returns just the next object if there was no problem
+ return iterator.next();
+ }
+
+ /** Sets the ExceptionListener instance to which notifications of exceptions are send
+ * while parsing the XML data.
+ * <p>See the description of {@link XMLDecoder} class for more information on the ExceptionListener.</p>
+ *
+ * @param listener
+ */
+ public void setExceptionListener(ExceptionListener listener)
+ {
+ // uses a default implementation when null
+ if (listener == null)
+ {
+ listener = new DefaultExceptionListener();
+ }
+ exceptionListener = listener;
+ }
+
+ /** Sets the owner object which can be accessed from the parsed XML data.
+ * <p>See the description of {@link XMLDecoder} class for more information on the owner object.</p>
+ *
+ * @param newOwner
+ */
+ public void setOwner(Object newOwner)
+ {
+ owner = newOwner;
+ }
+
+}
diff --git a/libjava/java/io/BufferedInputStream.java b/libjava/java/io/BufferedInputStream.java
index 5343f0762b6..ce166b337f4 100644
--- a/libjava/java/io/BufferedInputStream.java
+++ b/libjava/java/io/BufferedInputStream.java
@@ -65,6 +65,7 @@ package java.io;
*/
public class BufferedInputStream extends FilterInputStream
{
+
/**
* This is the default buffer size
*/
@@ -103,17 +104,11 @@ public class BufferedInputStream extends FilterInputStream
protected int marklimit;
/**
- * This is the maximum size we have to allocate for the mark buffer.
- * This number may be huge (Integer.MAX_VALUE). The class will continue
- * to allocate new chunks (specified by <code>CHUNKSIZE</code>) until the
- * the size specified by this field is achieved.
- */
- private int marktarget = 0;
-
- /**
- * This is the number of bytes to allocate to reach marktarget.
+ * This is the initial buffer size. When the buffer is grown because
+ * of marking requirements, it will be grown by bufferSize increments.
+ * The underlying stream will be read in chunks of bufferSize.
*/
- static final private int CHUNKSIZE = 1024;
+ private final int bufferSize;
/**
* This method initializes a new <code>BufferedInputStream</code> that will
@@ -143,6 +138,9 @@ public class BufferedInputStream extends FilterInputStream
if (size <= 0)
throw new IllegalArgumentException();
buf = new byte[size];
+ // initialize pos & count to bufferSize, to prevent refill from
+ // allocating a new buffer (if the caller starts out by calling mark()).
+ pos = count = bufferSize = size;
}
/**
@@ -160,7 +158,7 @@ public class BufferedInputStream extends FilterInputStream
*/
public synchronized int available() throws IOException
{
- return count - pos + super.available();
+ return count - pos + in.available();
}
/**
@@ -173,7 +171,9 @@ public class BufferedInputStream extends FilterInputStream
{
// Free up the array memory.
buf = null;
- super.close();
+ pos = count = 0;
+ markpos = -1;
+ in.close();
}
/**
@@ -196,9 +196,7 @@ public class BufferedInputStream extends FilterInputStream
*/
public synchronized void mark(int readlimit)
{
- marktarget = marklimit = readlimit;
- if (marklimit > CHUNKSIZE)
- marklimit = CHUNKSIZE;
+ marklimit = readlimit;
markpos = pos;
}
@@ -231,9 +229,6 @@ public class BufferedInputStream extends FilterInputStream
if (pos >= count && !refill())
return -1; // EOF
- if (markpos >= 0 && pos - markpos > marktarget)
- markpos = -1;
-
return buf[pos++] & 0xFF;
}
@@ -278,10 +273,7 @@ public class BufferedInputStream extends FilterInputStream
off += totalBytesRead;
len -= totalBytesRead;
- if (markpos >= 0 && pos - markpos > marktarget)
- markpos = -1;
-
- while (len > 0 && super.available() > 0 && refill())
+ while (len > 0 && in.available() > 0 && refill())
{
int remain = Math.min(count - pos, len);
System.arraycopy(buf, pos, b, off, remain);
@@ -289,9 +281,6 @@ public class BufferedInputStream extends FilterInputStream
off += remain;
len -= remain;
totalBytesRead += remain;
-
- if (markpos >= 0 && pos - markpos > marktarget)
- markpos = -1;
}
return totalBytesRead;
@@ -338,23 +327,28 @@ public class BufferedInputStream extends FilterInputStream
while (n > 0L)
{
- if (pos >= count && !refill())
- if (n < origN)
- break;
- else
- return 0; // No bytes were read before EOF.
+ if (pos >= count)
+ {
+ if (markpos == -1)
+ {
+ // Buffer is empty and no mark is set, skip on the
+ // underlying stream.
+ n -= in.skip(n);
+ break;
+ }
+ else if (!refill())
+ break;
+ }
int numread = (int) Math.min((long) (count - pos), n);
pos += numread;
n -= numread;
-
- if (markpos >= 0 && pos - markpos > marktarget)
- markpos = -1;
}
return origN - n;
}
+ // GCJ LOCAL: package-private for use by InputStreamReader
/**
* Called to refill the buffer (when count is equal to pos).
*
@@ -366,39 +360,31 @@ public class BufferedInputStream extends FilterInputStream
if (buf == null)
throw new IOException("Stream closed.");
- if (markpos < 0)
- count = pos = 0;
- else if (markpos > 0)
+ if (markpos == -1 || count - markpos >= marklimit)
{
- // Shift the marked bytes (if any) to the beginning of the array
- // but don't grow it. This saves space in case a reset is done
- // before we reach the max capacity of this array.
- System.arraycopy(buf, markpos, buf, 0, count - markpos);
- count -= markpos;
- pos -= markpos;
- markpos = 0;
+ markpos = -1;
+ pos = count = 0;
}
- else if (count >= buf.length && count < marktarget) // BTW, markpos == 0
+ else
{
- // Need to grow the buffer now to have room for marklimit bytes.
- // Note that the new buffer is one greater than marklimit.
- // This is so that there will be one byte past marklimit to be read
- // before having to call refill again, thus allowing marklimit to be
- // invalidated. That way refill doesn't have to check marklimit.
- marklimit += CHUNKSIZE;
- if (marklimit >= marktarget)
- marklimit = marktarget;
- byte[] newbuf = new byte[marklimit + 1];
- System.arraycopy(buf, 0, newbuf, 0, count);
+ byte[] newbuf = buf;
+ if (markpos < bufferSize)
+ {
+ newbuf = new byte[count - markpos + bufferSize];
+ }
+ System.arraycopy(buf, markpos, newbuf, 0, count - markpos);
buf = newbuf;
+ count -= markpos;
+ pos -= markpos;
+ markpos = 0;
}
- int numread = super.read(buf, count, buf.length - count);
+ int numread = in.read(buf, count, bufferSize);
- if (numread < 0) // EOF
+ if (numread <= 0) // EOF
return false;
count += numread;
- return numread > 0;
+ return true;
}
}
diff --git a/libjava/java/io/BufferedReader.java b/libjava/java/io/BufferedReader.java
index 19074703938..ab597884828 100644
--- a/libjava/java/io/BufferedReader.java
+++ b/libjava/java/io/BufferedReader.java
@@ -1,5 +1,5 @@
/* BufferedReader.java
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,8 +55,8 @@ package java.io;
* of remembering any number of input chars, to the limits of
* system memory or the size of <code>Integer.MAX_VALUE</code>
*
- * @author Per Bothner <bothner@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
*/
public class BufferedReader extends Reader
{
diff --git a/libjava/java/io/ByteArrayInputStream.java b/libjava/java/io/ByteArrayInputStream.java
index 45a09a77b5d..906e71a0d94 100644
--- a/libjava/java/io/ByteArrayInputStream.java
+++ b/libjava/java/io/ByteArrayInputStream.java
@@ -1,5 +1,5 @@
/* ByteArrayInputStream.java -- Read an array as a stream
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.io;
/**
* This class permits an array of bytes to be read as an input stream.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
public class ByteArrayInputStream extends InputStream
diff --git a/libjava/java/io/ByteArrayOutputStream.java b/libjava/java/io/ByteArrayOutputStream.java
index 2e89cf5ee0a..095debefa7b 100644
--- a/libjava/java/io/ByteArrayOutputStream.java
+++ b/libjava/java/io/ByteArrayOutputStream.java
@@ -1,5 +1,5 @@
/* BufferedReader.java
- Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ package java.io;
* multibyte character encodings.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @date September 24, 1998
*/
public class ByteArrayOutputStream extends OutputStream
diff --git a/libjava/java/io/CharArrayReader.java b/libjava/java/io/CharArrayReader.java
index 9d5382bef1e..d0d5a28399c 100644
--- a/libjava/java/io/CharArrayReader.java
+++ b/libjava/java/io/CharArrayReader.java
@@ -1,5 +1,5 @@
/* CharArrayReader.java -- Read an array of characters as a stream
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.io;
* This class permits an array of chars to be read as an input stream.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class CharArrayReader extends Reader
{
diff --git a/libjava/java/io/CharArrayWriter.java b/libjava/java/io/CharArrayWriter.java
index 7453996c346..4593f15c784 100644
--- a/libjava/java/io/CharArrayWriter.java
+++ b/libjava/java/io/CharArrayWriter.java
@@ -1,5 +1,5 @@
/* CharArrayWriter.java -- Write chars to a buffer
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -60,7 +60,7 @@ package java.io;
* <p>
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class CharArrayWriter extends Writer
{
diff --git a/libjava/java/io/CharConversionException.java b/libjava/java/io/CharConversionException.java
index 0cb83d2d020..6f2afb53f7b 100644
--- a/libjava/java/io/CharConversionException.java
+++ b/libjava/java/io/CharConversionException.java
@@ -1,5 +1,5 @@
/* CharConversionException.java -- Character conversion exceptions
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.io;
* an attempted character conversion.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/io/DataInput.java b/libjava/java/io/DataInput.java
index 52cd246110d..0aa172b17a0 100644
--- a/libjava/java/io/DataInput.java
+++ b/libjava/java/io/DataInput.java
@@ -1,5 +1,5 @@
/* DataInput.java -- Interface for reading data from a stream
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.io;
* into Java primitive types.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public interface DataInput
{
diff --git a/libjava/java/io/DataInputStream.java b/libjava/java/io/DataInputStream.java
index d6068828c89..9cdbc695506 100644
--- a/libjava/java/io/DataInputStream.java
+++ b/libjava/java/io/DataInputStream.java
@@ -50,8 +50,8 @@ package java.io;
*
* @see DataInput
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @date October 20, 1998.
*/
public class DataInputStream extends FilterInputStream implements DataInput
diff --git a/libjava/java/io/DataOutput.java b/libjava/java/io/DataOutput.java
index e07eb628969..70fb7d48c69 100644
--- a/libjava/java/io/DataOutput.java
+++ b/libjava/java/io/DataOutput.java
@@ -1,5 +1,5 @@
/* DataOutput.java -- Interface for writing data from a stream
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ package java.io;
* by classes implementing the <code>DataInput</code> interface.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*
* @see DataInput
*/
diff --git a/libjava/java/io/DataOutputStream.java b/libjava/java/io/DataOutputStream.java
index ab2db95df99..9a2d172ac46 100644
--- a/libjava/java/io/DataOutputStream.java
+++ b/libjava/java/io/DataOutputStream.java
@@ -1,5 +1,5 @@
/* DataOutputStream.java -- Writes primitive Java datatypes to streams
- Copyright (C) 1998, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,8 +51,8 @@ package java.io;
*
* @see DataInputStream
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class DataOutputStream extends FilterOutputStream implements DataOutput
{
diff --git a/libjava/java/io/EOFException.java b/libjava/java/io/EOFException.java
index d129cd69249..2ec28c6c8ee 100644
--- a/libjava/java/io/EOFException.java
+++ b/libjava/java/io/EOFException.java
@@ -1,5 +1,5 @@
/* EOFException.java -- unexpected end of file exception
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.io;
* thus throw this exception.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class EOFException extends IOException
diff --git a/libjava/java/io/Externalizable.java b/libjava/java/io/Externalizable.java
index 09080a05831..71304e24abf 100644
--- a/libjava/java/io/Externalizable.java
+++ b/libjava/java/io/Externalizable.java
@@ -60,8 +60,6 @@ package java.io;
*/
public interface Externalizable extends Serializable
{
- long serialVersionUID = -282491828744381764L;
-
/**
* This method restores an object's state by reading in the instance data
* for the object from the passed in stream. Note that this stream is not
diff --git a/libjava/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java
index e3c1a18bd9f..1e44a60bb99 100644
--- a/libjava/java/io/FileDescriptor.java
+++ b/libjava/java/io/FileDescriptor.java
@@ -120,7 +120,7 @@ public final class FileDescriptor
if (ex instanceof SyncFailedException)
throw (SyncFailedException) ex;
else
- throw new SyncFailedException(ex.getMessage());
+ throw new SyncFailedException(ex.toString());
}
}
}
diff --git a/libjava/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java
index 908c00a19b9..17aaf799be0 100644
--- a/libjava/java/io/FileInputStream.java
+++ b/libjava/java/io/FileInputStream.java
@@ -1,5 +1,5 @@
/* FileInputStream.java -- An input stream that reads from disk files.
- Copyright (C) 1998, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,8 +51,8 @@ import java.nio.channels.FileChannel;
/**
* This class is a stream that reads its bytes from a file.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class FileInputStream extends InputStream
{
diff --git a/libjava/java/io/FileNotFoundException.java b/libjava/java/io/FileNotFoundException.java
index 7877aba150d..66809f5e7bb 100644
--- a/libjava/java/io/FileNotFoundException.java
+++ b/libjava/java/io/FileNotFoundException.java
@@ -1,5 +1,5 @@
/* FileNotFoundException.java -- the requested file could not be found
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,8 +43,8 @@ package java.io;
* does not exist, or is inaccessible for some other reason (such as writing
* a read-only file).
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class FileNotFoundException extends IOException
diff --git a/libjava/java/io/FileOutputStream.java b/libjava/java/io/FileOutputStream.java
index 1702ffe8f54..34b06cbf151 100644
--- a/libjava/java/io/FileOutputStream.java
+++ b/libjava/java/io/FileOutputStream.java
@@ -1,5 +1,5 @@
/* FileOutputStream.java -- Writes to a file on disk.
- Copyright (C) 1998, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,8 +51,8 @@ import java.nio.channels.FileChannel;
* This classes allows a stream of data to be written to a disk file or
* any open <code>FileDescriptor</code>.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class FileOutputStream extends OutputStream
{
diff --git a/libjava/java/io/FilenameFilter.java b/libjava/java/io/FilenameFilter.java
index e3b004d5499..dad3ccf28af 100644
--- a/libjava/java/io/FilenameFilter.java
+++ b/libjava/java/io/FilenameFilter.java
@@ -1,5 +1,5 @@
/* FilenameFilter.java -- Filter a list of filenames
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ package java.io;
* or should not be included in the file listing.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*
* @see File#listFiles(java.io.FilenameFilter)
* @see java.awt.FileDialog#setFilenameFilter(java.io.FilenameFilter)
diff --git a/libjava/java/io/FilterInputStream.java b/libjava/java/io/FilterInputStream.java
index c81259bd25b..477521aa816 100644
--- a/libjava/java/io/FilterInputStream.java
+++ b/libjava/java/io/FilterInputStream.java
@@ -1,5 +1,5 @@
/* FilterInputStream.java -- Base class for classes that filter input
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -65,7 +65,7 @@ package java.io;
* <code>InputStream read(byte[])</code> method.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class FilterInputStream extends InputStream
{
diff --git a/libjava/java/io/FilterOutputStream.java b/libjava/java/io/FilterOutputStream.java
index 2144213f0e1..98db4ac12c9 100644
--- a/libjava/java/io/FilterOutputStream.java
+++ b/libjava/java/io/FilterOutputStream.java
@@ -1,5 +1,5 @@
/* FilterOutputStream.java -- Parent class for output streams that filter
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ package java.io;
* underlying stream. Subclasses provide actual filtering.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class FilterOutputStream extends OutputStream
{
diff --git a/libjava/java/io/FilterReader.java b/libjava/java/io/FilterReader.java
index caf102b082a..4cc6940c518 100644
--- a/libjava/java/io/FilterReader.java
+++ b/libjava/java/io/FilterReader.java
@@ -1,5 +1,5 @@
/* FilterReader.java -- Base class for char stream classes that filter input
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,7 +59,7 @@ package java.io;
* <code>Reader} read(yte[])</code> method.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public abstract class FilterReader extends Reader
{
diff --git a/libjava/java/io/FilterWriter.java b/libjava/java/io/FilterWriter.java
index a717092d859..5a8ede572db 100644
--- a/libjava/java/io/FilterWriter.java
+++ b/libjava/java/io/FilterWriter.java
@@ -1,5 +1,5 @@
/* FilterWriter.java -- Parent class for output streams that filter
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ package java.io;
* underlying stream. Subclasses provide actual filtering.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public abstract class FilterWriter extends Writer
{
diff --git a/libjava/java/io/IOException.java b/libjava/java/io/IOException.java
index 8baf593c9c2..f1e3848da4a 100644
--- a/libjava/java/io/IOException.java
+++ b/libjava/java/io/IOException.java
@@ -1,5 +1,5 @@
/* IOException.java -- Generic input/output exception
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.io;
* detailed indication of what happened.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class IOException extends Exception
diff --git a/libjava/java/io/InputStream.java b/libjava/java/io/InputStream.java
index 610ccf1f177..1d942446711 100644
--- a/libjava/java/io/InputStream.java
+++ b/libjava/java/io/InputStream.java
@@ -1,5 +1,5 @@
/* InputStream.java -- Base class for input
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.io;
* or network connection.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public abstract class InputStream
{
diff --git a/libjava/java/io/InputStreamReader.java b/libjava/java/io/InputStreamReader.java
index 3ebbb4ec9e4..b3f65368ce3 100644
--- a/libjava/java/io/InputStreamReader.java
+++ b/libjava/java/io/InputStreamReader.java
@@ -1,5 +1,5 @@
/* InputStreamReader.java -- Reader than transforms bytes to chars
- Copyright (C) 1998, 1999, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -82,7 +82,7 @@ import gnu.gcj.convert.*;
* @see InputStream
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @date April 22, 1998.
*/
public class InputStreamReader extends Reader
@@ -282,11 +282,9 @@ public class InputStreamReader extends Reader
{
// We have knowledge of the internals of BufferedInputStream
// here. Eww.
- in.mark (0);
// BufferedInputStream.refill() can only be called when
// `pos>=count'.
boolean r = in.pos < in.count || in.refill ();
- in.reset ();
if (! r)
return -1;
converter.setInput(in.buf, in.pos, in.count);
diff --git a/libjava/java/io/InterruptedIOException.java b/libjava/java/io/InterruptedIOException.java
index 321c2697b43..614fb3b8947 100644
--- a/libjava/java/io/InterruptedIOException.java
+++ b/libjava/java/io/InterruptedIOException.java
@@ -1,5 +1,5 @@
/* InterruptedIOException.java -- an I/O operation was interrupted
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,8 +43,8 @@ package java.io;
* for some reason. The field bytesTransferred will contain the number of
* bytes that were read/written prior to the interruption.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
* @see Thread#interrupt()
* @status updated to 1.4
*/
diff --git a/libjava/java/io/LineNumberInputStream.java b/libjava/java/io/LineNumberInputStream.java
index ee0ce2c799e..ae6292e9284 100644
--- a/libjava/java/io/LineNumberInputStream.java
+++ b/libjava/java/io/LineNumberInputStream.java
@@ -1,5 +1,5 @@
/* LineNumberInputStream.java -- An input stream which counts line numbers
- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -67,7 +67,7 @@ package java.io;
* compatibility only and should not be used in new applications.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class LineNumberInputStream extends FilterInputStream
{
diff --git a/libjava/java/io/LineNumberReader.java b/libjava/java/io/LineNumberReader.java
index b3cb5826930..0a4797bd6c1 100644
--- a/libjava/java/io/LineNumberReader.java
+++ b/libjava/java/io/LineNumberReader.java
@@ -1,5 +1,5 @@
/* LineNumberReader.java -- A character input stream which counts line numbers
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,9 +52,9 @@ package java.io;
* read from the stream does not end in a line termination sequence, it
* will not be counted as a line.
*
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Guilhem Lavaux <guilhem@kaffe.org>
+ * @author Guilhem Lavaux (guilhem@kaffe.org)
* @date December 28, 2003.
*/
/* Written using "Java Class Libraries", 2nd edition, plus online
diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java
index 0c79d332700..2cfe4c99419 100644
--- a/libjava/java/io/ObjectInputStream.java
+++ b/libjava/java/io/ObjectInputStream.java
@@ -1,5 +1,6 @@
/* ObjectInputStream.java -- Class used to read serialized objects
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
+ Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,13 +43,14 @@ import gnu.classpath.Configuration;
import gnu.java.io.ObjectIdentityWrapper;
import java.lang.reflect.Array;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy;
-import java.security.PrivilegedAction;
import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.Hashtable;
import java.util.Vector;
@@ -121,15 +123,6 @@ public class ObjectInputStream extends InputStream
*/
public final Object readObject() throws ClassNotFoundException, IOException
{
- if (callersClassLoader == null)
- {
- callersClassLoader = getCallersClassLoader ();
- if (Configuration.DEBUG && dump)
- {
- dumpElementln ("CallersClassLoader = " + callersClassLoader);
- }
- }
-
if (this.useSubclassMethod)
return readObjectOverride();
@@ -271,7 +264,7 @@ public class ObjectInputStream extends InputStream
readArrayElements(array, componentType);
if(dump)
for (int i = 0, len = Array.getLength(array); i < len; i++)
- dumpElementln(" ELEMENT[" + i + "]=" + Array.get(array, i));
+ dumpElementln(" ELEMENT[" + i + "]=" + Array.get(array, i));
ret_val = processResolution(null, array, handle);
break;
}
@@ -301,13 +294,18 @@ public class ObjectInputStream extends InputStream
obj.readExternal(this);
if (read_from_blocks)
- setBlockDataMode(oldmode);
+ {
+ setBlockDataMode(oldmode);
+ if (!oldmode)
+ if (this.realInputStream.readByte() != TC_ENDBLOCKDATA)
+ throw new IOException("No end of block data seen for class with readExternal (ObjectInputStream) method.");
+ }
ret_val = processResolution(osc, obj, handle);
break;
} // end if (osc.realClassIsExternalizable)
- Object obj = newObject(clazz, osc.firstNonSerializableParent);
+ Object obj = newObject(clazz, osc.firstNonSerializableParentConstructor);
int handle = assignNewHandle(obj);
Object prevObject = this.currentObject;
@@ -398,8 +396,6 @@ public class ObjectInputStream extends InputStream
setBlockDataMode(old_mode);
this.isDeserializing = was_deserializing;
-
- depth -= 2;
depth -= 2;
@@ -505,7 +501,8 @@ public class ObjectInputStream extends InputStream
flags, fields);
assignNewHandle(osc);
- ClassLoader currentLoader = currentLoader();
+ if (callersClassLoader == null)
+ callersClassLoader = currentLoader();
for (int i = 0; i < field_count; i++)
{
@@ -526,12 +523,40 @@ public class ObjectInputStream extends InputStream
class_name = String.valueOf(type_code);
fields[i] =
- new ObjectStreamField(field_name, class_name, currentLoader);
+ new ObjectStreamField(field_name, class_name, callersClassLoader);
}
/* Now that fields have been read we may resolve the class
* (and read annotation if needed). */
- Class clazz = resolveClass(osc);
+ Class clazz;
+ try
+ {
+ clazz = resolveClass(osc);
+ }
+ catch (ClassNotFoundException cnfe)
+ {
+ // Maybe it was an primitive class?
+ if (name.equals("void"))
+ clazz = Void.TYPE;
+ else if (name.equals("boolean"))
+ clazz = Boolean.TYPE;
+ else if (name.equals("byte"))
+ clazz = Byte.TYPE;
+ else if (name.equals("short"))
+ clazz = Short.TYPE;
+ else if (name.equals("char"))
+ clazz = Character.TYPE;
+ else if (name.equals("int"))
+ clazz = Integer.TYPE;
+ else if (name.equals("long"))
+ clazz = Long.TYPE;
+ else if (name.equals("float"))
+ clazz = Float.TYPE;
+ else if (name.equals("double"))
+ clazz = Double.TYPE;
+ else
+ throw cnfe;
+ }
boolean oldmode = setBlockDataMode(true);
osc.setClass(clazz, lookupClass(clazz.getSuperclass()));
@@ -541,16 +566,45 @@ public class ObjectInputStream extends InputStream
// 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()))
+ // Maybe it is a primitive class, those don't have a super class,
+ // or Object itself. Otherwise we can keep getting the superclass
+ // till we hit the Object class, or some other non-serializable class.
+
+ if (first_nonserial == null)
+ first_nonserial = clazz;
+ else
+ while (Serializable.class.isAssignableFrom(first_nonserial)
+ || Modifier.isAbstract(first_nonserial.getModifiers()))
first_nonserial = first_nonserial.getSuperclass();
- osc.firstNonSerializableParent = first_nonserial;
+ final Class local_constructor_class = first_nonserial;
+
+ osc.firstNonSerializableParentConstructor =
+ (Constructor)AccessController.doPrivileged(new PrivilegedAction()
+ {
+ public Object run()
+ {
+ try
+ {
+ Constructor c = local_constructor_class.
+ getDeclaredConstructor(new Class[0]);
+ if (Modifier.isPrivate(c.getModifiers()))
+ return null;
+ return c;
+ }
+ catch (NoSuchMethodException e)
+ {
+ // error will be reported later, in newObject()
+ return null;
+ }
+ }
+ });
+
osc.realClassIsSerializable = Serializable.class.isAssignableFrom(clazz);
osc.realClassIsExternalizable = Externalizable.class.isAssignableFrom(clazz);
ObjectStreamField[] stream_fields = osc.fields;
- ObjectStreamField[] real_fields = ObjectStreamClass.lookup(clazz).fields;
+ ObjectStreamField[] real_fields = ObjectStreamClass.lookupForClassObject(clazz).fields;
ObjectStreamField[] fieldmapping = new ObjectStreamField[2 * Math.max(stream_fields.length, real_fields.length)];
int stream_idx = 0;
@@ -716,6 +770,15 @@ public class ObjectInputStream extends InputStream
protected Class resolveClass(ObjectStreamClass osc)
throws ClassNotFoundException, IOException
{
+ if (callersClassLoader == null)
+ {
+ callersClassLoader = currentLoader ();
+ if (Configuration.DEBUG && dump)
+ {
+ dumpElementln ("CallersClassLoader = " + callersClassLoader);
+ }
+ }
+
return Class.forName(osc.getName(), true, callersClassLoader);
}
@@ -749,8 +812,10 @@ public class ObjectInputStream extends InputStream
*/
private ObjectStreamClass lookupClass(Class clazz)
{
- ObjectStreamClass oclazz;
+ if (clazz == null)
+ return null;
+ ObjectStreamClass oclazz;
oclazz = (ObjectStreamClass)classLookupTable.get(clazz);
if (oclazz == null)
return ObjectStreamClass.lookup(clazz);
@@ -1766,14 +1831,14 @@ public class ObjectInputStream extends InputStream
// returns a new instance of REAL_CLASS that has been constructed
// only to the level of CONSTRUCTOR_CLASS (a super class of REAL_CLASS)
- private Object newObject (Class real_class, Class constructor_class)
- throws ClassNotFoundException
+ private Object newObject (Class real_class, Constructor constructor)
+ throws ClassNotFoundException, IOException
{
+ if (constructor == null)
+ throw new InvalidClassException("Missing accessible no-arg base class constructor for " + real_class.getName());
try
{
- Object obj = allocateObject (real_class);
- callConstructor (constructor_class, obj);
- return obj;
+ return allocateObject(real_class, constructor.getDeclaringClass(), constructor);
}
catch (InstantiationException e)
{
@@ -1808,10 +1873,7 @@ public class ObjectInputStream extends InputStream
* @param sm SecurityManager instance which should be called.
* @return The current class loader in the calling stack.
*/
-
private static native ClassLoader currentClassLoader (SecurityManager sm);
-
- private native ClassLoader getCallersClassLoader();
private void callReadMethod (Method readObject, Class klass, Object obj)
throws ClassNotFoundException, IOException
@@ -1844,11 +1906,9 @@ public class ObjectInputStream extends InputStream
prereadFields = null;
}
- private native Object allocateObject (Class clazz)
+ private native Object allocateObject(Class clazz, Class constr_clazz, Constructor constructor)
throws InstantiationException;
- private native void callConstructor (Class clazz, Object obj);
-
private static final int BUFFER_SIZE = 1024;
private DataInputStream realInputStream;
@@ -1870,15 +1930,14 @@ public class ObjectInputStream extends InputStream
private Hashtable classLookupTable;
private GetField prereadFields;
- private static boolean dump = false && Configuration.DEBUG;
-
private ClassLoader callersClassLoader;
+ private static boolean dump;
// The nesting depth for debugging output
private int depth = 0;
private void dumpElement (String msg)
- {
+ {
System.out.print(msg);
}
@@ -1897,24 +1956,24 @@ public class ObjectInputStream extends InputStream
System.loadLibrary ("javaio");
}
}
-}
-
-
-// used to keep a prioritized list of object validators
-class ValidatorAndPriority implements Comparable
-{
- int priority;
- ObjectInputValidation validator;
-
- ValidatorAndPriority (ObjectInputValidation validator, int priority)
- {
- this.priority = priority;
- this.validator = validator;
- }
- public int compareTo (Object o)
+ // used to keep a prioritized list of object validators
+ private static final class ValidatorAndPriority implements Comparable
{
- ValidatorAndPriority vap = (ValidatorAndPriority)o;
- return this.priority - vap.priority;
+ int priority;
+ ObjectInputValidation validator;
+
+ ValidatorAndPriority (ObjectInputValidation validator, int priority)
+ {
+ this.priority = priority;
+ this.validator = validator;
+ }
+
+ public int compareTo (Object o)
+ {
+ ValidatorAndPriority vap = (ValidatorAndPriority)o;
+ return this.priority - vap.priority;
+ }
}
}
+
diff --git a/libjava/java/io/ObjectOutputStream.java b/libjava/java/io/ObjectOutputStream.java
index 3482225232a..55763eeddfe 100644
--- a/libjava/java/io/ObjectOutputStream.java
+++ b/libjava/java/io/ObjectOutputStream.java
@@ -250,6 +250,11 @@ public class ObjectOutputStream extends OutputStream
break;
}
+ Class clazz = obj.getClass();
+ ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject(clazz);
+ if (osc == null)
+ throw new NotSerializableException(clazz.getName());
+
if ((replacementEnabled || obj instanceof Serializable)
&& ! replaceDone)
{
@@ -257,19 +262,11 @@ public class ObjectOutputStream extends OutputStream
if (obj instanceof Serializable)
{
- Method m = null;
try
{
- Class classArgs[] = {};
- m = getMethod(obj.getClass(), "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)
- {
+ Method m = osc.writeReplaceMethod;
+ if (m != null)
+ obj = m.invoke(obj, new Object[0]);
}
catch (IllegalAccessException ignore)
{
@@ -294,11 +291,6 @@ public class ObjectOutputStream extends OutputStream
break;
}
- Class clazz = obj.getClass();
- ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject(clazz);
- if (osc == null)
- throw new NotSerializableException(clazz.getName());
-
if (clazz.isArray ())
{
realOutput.writeByte(TC_ARRAY);
@@ -347,8 +339,8 @@ public class ObjectOutputStream extends OutputStream
fieldsAlreadyWritten = false;
if (currentObjectStreamClass.hasWriteMethod())
{
- if (dump)
- dumpElementln ("WRITE METHOD CALLED FOR: " + obj);
+ if (dump)
+ dumpElementln ("WRITE METHOD CALLED FOR: " + obj);
setBlockDataMode(true);
callWriteMethod(obj, currentObjectStreamClass);
setBlockDataMode(false);
@@ -358,10 +350,10 @@ public class ObjectOutputStream extends OutputStream
}
else
{
- if (dump)
- dumpElementln ("WRITE FIELDS CALLED FOR: " + obj);
- writeFields(obj, currentObjectStreamClass);
- }
+ if (dump)
+ dumpElementln ("WRITE FIELDS CALLED FOR: " + obj);
+ writeFields(obj, currentObjectStreamClass);
+ }
}
this.currentObject = prevObject;
@@ -1261,18 +1253,11 @@ public class ObjectOutputStream extends OutputStream
private void callWriteMethod(Object obj, ObjectStreamClass osc)
throws IOException
{
- Class klass = osc.forClass();
currentPutField = null;
try
{
- Class classArgs[] = {ObjectOutputStream.class};
- Method m = getMethod(klass, "writeObject", classArgs);
- Object args[] = {this};
- m.invoke(obj, args);
- }
- catch (NoSuchMethodException nsme)
- {
- // Nothing.
+ Object args[] = {this};
+ osc.writeObjectMethod.invoke(obj, args);
}
catch (InvocationTargetException x)
{
@@ -1285,7 +1270,8 @@ public class ObjectOutputStream extends OutputStream
IOException ioe
= new IOException("Exception thrown from writeObject() on " +
- klass + ": " + exception.getClass().getName());
+ osc.forClass().getName() + ": " +
+ exception.getClass().getName());
ioe.initCause(exception);
throw ioe;
}
@@ -1293,7 +1279,8 @@ public class ObjectOutputStream extends OutputStream
{
IOException ioe
= new IOException("Failure invoking writeObject() on " +
- klass + ": " + x.getClass().getName());
+ osc.forClass().getName() + ": " +
+ x.getClass().getName());
ioe.initCause(x);
throw ioe;
}
@@ -1535,15 +1522,6 @@ public class ObjectOutputStream extends OutputStream
}
}
- private Method getMethod (Class klass, String name, Class[] args)
- throws java.lang.NoSuchMethodException
- {
- final Method m = klass.getDeclaredMethod(name, args);
- setAccessible.setMember(m);
- AccessController.doPrivileged(setAccessible);
- return m;
- }
-
private void dumpElementln (String msg)
{
for (int i = 0; i < depth; i++)
diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java
index d133afc08f9..a5f6ea0be5e 100644
--- a/libjava/java/io/ObjectStreamClass.java
+++ b/libjava/java/io/ObjectStreamClass.java
@@ -452,27 +452,33 @@ public class ObjectStreamClass implements Serializable
}
private Method findMethod(Method[] methods, String name, Class[] params,
- Class returnType)
+ Class returnType, boolean mustBePrivate)
{
outer:
- for(int i = 0; i < methods.length; i++)
+ for (int i = 0; i < methods.length; i++)
{
- if(methods[i].getName().equals(name) &&
- methods[i].getReturnType() == returnType)
+ final Method m = methods[i];
+ int mods = m.getModifiers();
+ if (Modifier.isStatic(mods)
+ || (mustBePrivate && !Modifier.isPrivate(mods)))
+ {
+ continue;
+ }
+
+ if (m.getName().equals(name)
+ && m.getReturnType() == returnType)
{
- Class[] mp = methods[i].getParameterTypes();
- if(mp.length == params.length)
+ Class[] mp = m.getParameterTypes();
+ if (mp.length == params.length)
{
- for(int j = 0; j < mp.length; j++)
+ for (int j = 0; j < mp.length; j++)
{
- if(mp[j] != params[j])
+ if (mp[j] != params[j])
{
continue outer;
}
}
- final Method m = methods[i];
- SetAccessibleAction setAccessible = new SetAccessibleAction(m);
- AccessController.doPrivileged(setAccessible);
+ AccessController.doPrivileged(new SetAccessibleAction(m));
return m;
}
}
@@ -485,9 +491,14 @@ outer:
Method[] methods = forClass().getDeclaredMethods();
readObjectMethod = findMethod(methods, "readObject",
new Class[] { ObjectInputStream.class },
- Void.TYPE);
+ Void.TYPE, true);
+ writeObjectMethod = findMethod(methods, "writeObject",
+ new Class[] { ObjectOutputStream.class },
+ Void.TYPE, true);
readResolveMethod = findMethod(methods, "readResolve",
- new Class[0], Object.class);
+ new Class[0], Object.class, false);
+ writeReplaceMethod = findMethod(methods, "writeReplace",
+ new Class[0], Object.class, false);
}
private ObjectStreamClass(Class cl)
@@ -517,20 +528,8 @@ outer:
// only set this bit if CL is NOT Externalizable
flags |= ObjectStreamConstants.SC_SERIALIZABLE;
- try
- {
- Method writeMethod = cl.getDeclaredMethod("writeObject",
- writeMethodArgTypes);
- int modifiers = writeMethod.getModifiers();
-
- if (writeMethod.getReturnType() == Void.TYPE
- && Modifier.isPrivate(modifiers)
- && !Modifier.isStatic(modifiers))
- flags |= ObjectStreamConstants.SC_WRITE_METHOD;
- }
- catch(NoSuchMethodException oh_well)
- {
- }
+ if (writeObjectMethod != null)
+ flags |= ObjectStreamConstants.SC_WRITE_METHOD;
}
@@ -851,11 +850,11 @@ outer:
{
return (Externalizable)constructor.newInstance(null);
}
- catch(Throwable t)
+ catch(Exception x)
{
throw (InvalidClassException)
new InvalidClassException(clazz.getName(),
- "Unable to instantiate").initCause(t);
+ "Unable to instantiate").initCause(x);
}
}
@@ -884,10 +883,12 @@ outer:
Method readObjectMethod;
Method readResolveMethod;
+ Method writeReplaceMethod;
+ Method writeObjectMethod;
boolean realClassIsSerializable;
boolean realClassIsExternalizable;
ObjectStreamField[] fieldMapping;
- Class firstNonSerializableParent;
+ Constructor firstNonSerializableParentConstructor;
private Constructor constructor; // default constructor for Externalizable
boolean isProxyClass = false;
@@ -896,34 +897,33 @@ outer:
// but it will avoid showing up as a discrepancy when comparing SUIDs.
private static final long serialVersionUID = -6120832682080437368L;
-}
-
-// interfaces are compared only by name
-class InterfaceComparator implements Comparator
-{
- public int compare(Object o1, Object o2)
+ // interfaces are compared only by name
+ private static final class InterfaceComparator implements Comparator
{
- return ((Class) o1).getName().compareTo(((Class) o2).getName());
+ public int compare(Object o1, Object o2)
+ {
+ return ((Class) o1).getName().compareTo(((Class) o2).getName());
+ }
}
-}
-// Members (Methods and Constructors) are compared first by name,
-// conflicts are resolved by comparing type signatures
-class MemberComparator implements Comparator
-{
- public int compare(Object o1, Object o2)
+ // Members (Methods and Constructors) are compared first by name,
+ // conflicts are resolved by comparing type signatures
+ private static final class MemberComparator implements Comparator
{
- Member m1 = (Member) o1;
- Member m2 = (Member) o2;
+ public int compare(Object o1, Object o2)
+ {
+ Member m1 = (Member) o1;
+ Member m2 = (Member) o2;
- int comp = m1.getName().compareTo(m2.getName());
+ int comp = m1.getName().compareTo(m2.getName());
- if (comp == 0)
- return TypeSignature.getEncodingOfMember(m1).
- compareTo(TypeSignature.getEncodingOfMember(m2));
- else
- return comp;
+ if (comp == 0)
+ return TypeSignature.getEncodingOfMember(m1).
+ compareTo(TypeSignature.getEncodingOfMember(m2));
+ else
+ return comp;
+ }
}
}
diff --git a/libjava/java/io/ObjectStreamException.java b/libjava/java/io/ObjectStreamException.java
index da1ca46e662..fa2c78021c2 100644
--- a/libjava/java/io/ObjectStreamException.java
+++ b/libjava/java/io/ObjectStreamException.java
@@ -1,5 +1,5 @@
/* ObjectStreamException.java -- Superclass of all serialization exceptions
- Copyright (C) 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.io;
* indications of the precise failure.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/io/ObjectStreamField.java b/libjava/java/io/ObjectStreamField.java
index 93a121cd762..8c1a5db7b59 100644
--- a/libjava/java/io/ObjectStreamField.java
+++ b/libjava/java/io/ObjectStreamField.java
@@ -367,109 +367,46 @@ public class ObjectStreamField implements Comparable
final void setBooleanField(Object obj, boolean val)
{
- try
- {
- field.setBoolean(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setBooleanNative(field, obj, val);
}
final void setByteField(Object obj, byte val)
{
- try
- {
- field.setByte(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setByteNative(field, obj, val);
}
final void setCharField(Object obj, char val)
{
- try
- {
- field.setChar(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setCharNative(field, obj, val);
}
final void setShortField(Object obj, short val)
{
- try
- {
- field.setShort(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setShortNative(field, obj, val);
}
final void setIntField(Object obj, int val)
{
- try
- {
- field.setInt(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setIntNative(field, obj, val);
}
final void setLongField(Object obj, long val)
{
- try
- {
- field.setLong(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setLongNative(field, obj, val);
}
final void setFloatField(Object obj, float val)
{
- try
- {
- field.setFloat(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setFloatNative(field, obj, val);
}
final void setDoubleField(Object obj, double val)
{
- try
- {
- field.setDouble(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setDoubleNative(field, obj, val);
}
final void setObjectField(Object obj, Object val)
{
- try
- {
- field.set(obj, val);
- }
- catch(IllegalAccessException x)
- {
- throw new InternalError(x.getMessage());
- }
+ VMObjectStreamClass.setObjectNative(field, obj, val);
}
}
diff --git a/libjava/java/io/OptionalDataException.java b/libjava/java/io/OptionalDataException.java
index 919c2bf0f4d..858302c0486 100644
--- a/libjava/java/io/OptionalDataException.java
+++ b/libjava/java/io/OptionalDataException.java
@@ -1,5 +1,5 @@
/* OptionalDataException.java -- indicates unexpected data in serialized stream
- Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ package java.io;
* </ul>
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/io/OutputStream.java b/libjava/java/io/OutputStream.java
index cee98644b0f..2b1a90a7508 100644
--- a/libjava/java/io/OutputStream.java
+++ b/libjava/java/io/OutputStream.java
@@ -1,5 +1,5 @@
/* OutputStream.java -- Base class for byte output streams
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.io;
* destination such as a file on disk or network connection.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public abstract class OutputStream
{
diff --git a/libjava/java/io/OutputStreamWriter.java b/libjava/java/io/OutputStreamWriter.java
index a07470a7291..07050415aba 100644
--- a/libjava/java/io/OutputStreamWriter.java
+++ b/libjava/java/io/OutputStreamWriter.java
@@ -1,5 +1,5 @@
/* OutputStreamWriter.java -- Writer that converts chars to bytes
- Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -70,7 +70,7 @@ import gnu.gcj.convert.UnicodeToBytes;
* </ul>
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @date April 17, 1998.
*/
public class OutputStreamWriter extends Writer
diff --git a/libjava/java/io/PipedInputStream.java b/libjava/java/io/PipedInputStream.java
index 906ef10fa9f..d424587889a 100644
--- a/libjava/java/io/PipedInputStream.java
+++ b/libjava/java/io/PipedInputStream.java
@@ -1,5 +1,5 @@
/* PipedInputStream.java -- Read portion of piped streams.
- Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -226,18 +226,17 @@ public class PipedInputStream extends InputStream
}
/**
- * This method reads bytes from the stream into a caller supplied buffer.
- * It starts storing bytes at position <code>offset</code> into the
- * buffer and
- * reads a maximum of <code>len</code> bytes. Note that this method
- * can actually
- * read fewer than <code>len</code> bytes. The actual number of bytes
- * read is
- * returned. A -1 is returned to indicated that no bytes can be read
+ * This method reads one byte from the stream.
+ * -1 is returned to indicated that no bytes can be read
* because the end of the stream was reached. If the stream is already
* closed, a -1 will again be returned to indicate the end of the stream.
- * <p>
- * This method will block if no byte is available to be read.
+ *
+ * <p>This method will block if no byte is available to be read.</p>
+ *
+ * @return the value of the read byte value, or -1 of the end of the stream
+ * was reached
+ *
+ * @throws IOException if an error occured
*/
public int read() throws IOException
{
@@ -248,7 +247,7 @@ public class PipedInputStream extends InputStream
// if this method is never called.
int r = read(read_buf, 0, 1);
- return r != -1 ? read_buf[0] : -1;
+ return r != -1 ? (read_buf[0] & 0xff) : -1;
}
/**
diff --git a/libjava/java/io/PrintStream.java b/libjava/java/io/PrintStream.java
index 3526473a4fd..02a126b000f 100644
--- a/libjava/java/io/PrintStream.java
+++ b/libjava/java/io/PrintStream.java
@@ -1,5 +1,5 @@
/* PrintStream.java -- OutputStream for printing output
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,8 +55,8 @@ import gnu.gcj.convert.UnicodeToBytes;
* <p>
* This class converts char's into byte's using the system default encoding.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class PrintStream extends FilterOutputStream
{
diff --git a/libjava/java/io/PrintWriter.java b/libjava/java/io/PrintWriter.java
index 376b3c44e7b..e03f2f85a87 100644
--- a/libjava/java/io/PrintWriter.java
+++ b/libjava/java/io/PrintWriter.java
@@ -54,8 +54,8 @@ package java.io;
* class which also auto-flushes when it encounters a newline character
* in the chars written).
*
- * @author Per Bothner <bothner@cygnus.com>
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @date April 17, 1998.
*/
public class PrintWriter extends Writer
diff --git a/libjava/java/io/PushbackInputStream.java b/libjava/java/io/PushbackInputStream.java
index c07714ec61c..aedd7eb65ee 100644
--- a/libjava/java/io/PushbackInputStream.java
+++ b/libjava/java/io/PushbackInputStream.java
@@ -1,5 +1,5 @@
/* PushbackInputStream.java -- An input stream that can unread bytes
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ package java.io;
* <p>
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class PushbackInputStream extends FilterInputStream
{
diff --git a/libjava/java/io/PushbackReader.java b/libjava/java/io/PushbackReader.java
index cc2473a6c34..05f343ed9aa 100644
--- a/libjava/java/io/PushbackReader.java
+++ b/libjava/java/io/PushbackReader.java
@@ -1,5 +1,5 @@
/* PushbackReader.java -- An character stream that can unread chars
- Copyright (C) 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ package java.io;
* by the creator of the stream.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class PushbackReader extends FilterReader
{
diff --git a/libjava/java/io/RandomAccessFile.java b/libjava/java/io/RandomAccessFile.java
index 2b1e08599e8..c23ca3adf2e 100644
--- a/libjava/java/io/RandomAccessFile.java
+++ b/libjava/java/io/RandomAccessFile.java
@@ -1,5 +1,5 @@
/* RandomAccessFile.java -- Class supporting random file I/O
- Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,8 +55,8 @@ import java.nio.channels.FileChannel;
* <code>DataInput</code> and <code>DataOutput</code> interfaces to allow
* the reading and writing of Java primitives.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class RandomAccessFile implements DataOutput, DataInput
{
diff --git a/libjava/java/io/Reader.java b/libjava/java/io/Reader.java
index 18481ac697b..bb4494b431a 100644
--- a/libjava/java/io/Reader.java
+++ b/libjava/java/io/Reader.java
@@ -49,7 +49,7 @@ package java.io;
* methods to read characters from a particular input source such as a file
* or network connection.
*
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @date April 21, 1998.
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
diff --git a/libjava/java/io/SequenceInputStream.java b/libjava/java/io/SequenceInputStream.java
index e7b2f494c2a..a46b11d56aa 100644
--- a/libjava/java/io/SequenceInputStream.java
+++ b/libjava/java/io/SequenceInputStream.java
@@ -1,5 +1,5 @@
/* SequenceInputStream.java -- Reads multiple input streams in sequence
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ import java.util.Enumeration;
* to completion, all subordinate streams are closed.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class SequenceInputStream extends InputStream
{
diff --git a/libjava/java/io/Serializable.java b/libjava/java/io/Serializable.java
index b6c47c4ccbd..1ca6638c874 100644
--- a/libjava/java/io/Serializable.java
+++ b/libjava/java/io/Serializable.java
@@ -1,5 +1,5 @@
/* Serializable.java -- Interface to indicate a class may be serialized
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,9 +47,8 @@ package java.io;
* the implementing class may be serialized.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public interface Serializable
{
- long serialVersionUID = 1196656838076753133L;
} // interface Serializable
diff --git a/libjava/java/io/StreamCorruptedException.java b/libjava/java/io/StreamCorruptedException.java
index 004047fb654..86002cbe8a6 100644
--- a/libjava/java/io/StreamCorruptedException.java
+++ b/libjava/java/io/StreamCorruptedException.java
@@ -1,5 +1,5 @@
/* StreamCorruptedException.java -- Error in stream during serialization
- Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.io;
* read from a stream during de-serialization.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/io/StreamTokenizer.java b/libjava/java/io/StreamTokenizer.java
index dd6acb3fd36..b5bd38f2d78 100644
--- a/libjava/java/io/StreamTokenizer.java
+++ b/libjava/java/io/StreamTokenizer.java
@@ -42,7 +42,7 @@ package java.io;
* million-zillion flags that can be set to control the parsing, as
* described under the various method headings.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @date October 25, 1998.
*/
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
diff --git a/libjava/java/io/StringBufferInputStream.java b/libjava/java/io/StringBufferInputStream.java
index 96dc4a382f3..4ed9a9f7190 100644
--- a/libjava/java/io/StringBufferInputStream.java
+++ b/libjava/java/io/StringBufferInputStream.java
@@ -1,5 +1,5 @@
/* StringBufferInputStream.java -- Read an String as a stream
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -65,7 +65,7 @@ package java.io;
* @deprecated
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
*/
public class StringBufferInputStream extends InputStream
{
diff --git a/libjava/java/io/StringWriter.java b/libjava/java/io/StringWriter.java
index c5aab8d157c..7b6e14193cd 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, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.io;
* can then be used to retrieve a <code>String</code>.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public class StringWriter extends Writer
{
diff --git a/libjava/java/io/SyncFailedException.java b/libjava/java/io/SyncFailedException.java
index a896ffb5e43..5563268ffd5 100644
--- a/libjava/java/io/SyncFailedException.java
+++ b/libjava/java/io/SyncFailedException.java
@@ -1,5 +1,5 @@
/* SyncFailedException.java -- a file sync failed
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.io;
* Thrown when a file synchronization fails.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see FileDescriptor#sync()
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/io/UTFDataFormatException.java b/libjava/java/io/UTFDataFormatException.java
index a38e25179f5..d4f2df253e4 100644
--- a/libjava/java/io/UTFDataFormatException.java
+++ b/libjava/java/io/UTFDataFormatException.java
@@ -1,5 +1,5 @@
/* UTFDataFormatException.java -- thrown on bad format in UTF data
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.io;
* to indicate that the data read is invalid.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see DataInput
* @see DataInputStream#readUTF(DataInput)
* @status updated to 1.4
diff --git a/libjava/java/io/UnsupportedEncodingException.java b/libjava/java/io/UnsupportedEncodingException.java
index 8ee686bde03..5159fb2b246 100644
--- a/libjava/java/io/UnsupportedEncodingException.java
+++ b/libjava/java/io/UnsupportedEncodingException.java
@@ -1,5 +1,5 @@
/* UnsupportedEncodingException.java -- the requested encoding isn't supported
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.io;
* not supported.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/io/VMObjectStreamClass.java b/libjava/java/io/VMObjectStreamClass.java
index fd4023e402b..d21de72a130 100644
--- a/libjava/java/io/VMObjectStreamClass.java
+++ b/libjava/java/io/VMObjectStreamClass.java
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.io;
-import java.lang.reflect.Method;
+import java.lang.reflect.Field;
final class VMObjectStreamClass
{
@@ -47,4 +47,94 @@ final class VMObjectStreamClass
* (a.k.a. <clinit>).
*/
static native boolean hasClassInitializer (Class clazz);
+
+ /**
+ * Sets the value of the specified "double" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setDoubleNative(Field field, Object obj, double val);
+
+ /**
+ * Sets the value of the specified "float" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setFloatNative(Field field, Object obj, float val);
+
+ /**
+ * Sets the value of the specified "long" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setLongNative(Field field, Object obj, long val);
+
+ /**
+ * Sets the value of the specified "int" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setIntNative(Field field, Object obj, int val);
+
+ /**
+ * Sets the value of the specified "short" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setShortNative(Field field, Object obj, short val);
+
+ /**
+ * Sets the value of the specified "char" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setCharNative(Field field, Object obj, char val);
+
+ /**
+ * Sets the value of the specified "byte" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setByteNative(Field field, Object obj, byte val);
+
+ /**
+ * Sets the value of the specified "boolean" field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setBooleanNative(Field field, Object obj, boolean val);
+
+ /**
+ * Sets the value of the specified object field, allowing final values
+ * to be assigned.
+ *
+ * @param field Field to set the value.
+ * @param obj Instance which will have its field set.
+ * @param val Value to put in the field.
+ */
+ static native void setObjectNative(Field field, Object obj, Object val);
}
diff --git a/libjava/java/io/WriteAbortedException.java b/libjava/java/io/WriteAbortedException.java
index 7b683854d3d..a7787805f30 100644
--- a/libjava/java/io/WriteAbortedException.java
+++ b/libjava/java/io/WriteAbortedException.java
@@ -1,5 +1,5 @@
/* WriteAbortedException.java -- wraps an exception thrown while writing
- Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.io;
* objects are discarded.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/io/Writer.java b/libjava/java/io/Writer.java
index 49b6315231e..4a69030a5e2 100644
--- a/libjava/java/io/Writer.java
+++ b/libjava/java/io/Writer.java
@@ -1,5 +1,5 @@
/* Writer.java -- Base class for character output streams
- Copyright (C) 1998, 1999, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,7 +51,7 @@ package java.io;
* destination such as a file on disk or network connection.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
*/
public abstract class Writer
{
diff --git a/libjava/java/io/natObjectInputStream.cc b/libjava/java/io/natObjectInputStream.cc
index 9da4910aa06..0e0d5a719cc 100644
--- a/libjava/java/io/natObjectInputStream.cc
+++ b/libjava/java/io/natObjectInputStream.cc
@@ -12,6 +12,7 @@ details. */
#include <gcj/cni.h>
#include <jvm.h>
+#include <gcj/method.h>
#include <java/io/ObjectInputStream$GetField.h>
#include <java/io/ObjectInputStream.h>
@@ -21,6 +22,8 @@ details. */
#include <java/lang/reflect/Method.h>
#include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <java/lang/SecurityManager.h>
+#include <java/lang/reflect/Constructor.h>
+#include <java/lang/reflect/Method.h>
#ifdef DEBUG
#include <java/lang/System.h>
@@ -28,7 +31,8 @@ details. */
#endif
jobject
-java::io::ObjectInputStream::allocateObject (jclass klass)
+java::io::ObjectInputStream::allocateObject (jclass klass, jclass,
+ ::java::lang::reflect::Constructor *ctr)
{
jobject obj = NULL;
using namespace java::lang::reflect;
@@ -41,21 +45,15 @@ java::io::ObjectInputStream::allocateObject (jclass klass)
else
{
obj = _Jv_AllocObject (klass);
- }
+ }
}
catch (jthrowable t)
{
return NULL;
}
- return obj;
-}
-
+ jmethodID meth = _Jv_FromReflectedConstructor (ctr);
-void
-java::io::ObjectInputStream::callConstructor (jclass klass, jobject obj)
-{
- jstring init_name = JvNewStringLatin1 ("<init>");
// This is a bit inefficient, and a bit of a hack, since we don't
// actually use the Method and since what is returned isn't
// technically a Method. We can't use Method.invoke as it looks up
@@ -63,36 +61,12 @@ java::io::ObjectInputStream::callConstructor (jclass klass, jobject obj)
JArray<jclass> *arg_types
= (JArray<jclass> *) JvNewObjectArray (0, &java::lang::Class::class$,
NULL);
- java::lang::reflect::Method *m = klass->getPrivateMethod (init_name,
- arg_types);
+
// We lie about this being a constructor. If we put `true' here
// then _Jv_CallAnyMethodA would try to allocate the object for us.
- jmethodID meth = (jmethodID) ((char *) (klass->methods)
- + m->offset);
_Jv_CallAnyMethodA (obj, JvPrimClass (void), meth, false, arg_types, NULL);
-}
-java::lang::ClassLoader*
-java::io::ObjectInputStream::getCallersClassLoader ()
-{
- java::lang::ClassLoader *loader = NULL;
- gnu::gcj::runtime::StackTrace *t
- = new gnu::gcj::runtime::StackTrace(4);
- java::lang::Class *klass = NULL;
- try
- {
- for (int i = 2; !klass; i++)
- {
- klass = t->classAt (i);
- }
- loader = klass->getClassLoaderInternal();
- }
- catch (::java::lang::ArrayIndexOutOfBoundsException *e)
- {
- // FIXME: RuntimeError
- }
-
- return loader;
+ return obj;
}
java::lang::ClassLoader*
diff --git a/libjava/java/io/natVMObjectStreamClass.cc b/libjava/java/io/natVMObjectStreamClass.cc
index b7a056c457f..847b540f0be 100644
--- a/libjava/java/io/natVMObjectStreamClass.cc
+++ b/libjava/java/io/natVMObjectStreamClass.cc
@@ -13,11 +13,75 @@ details. */
#include <java/io/VMObjectStreamClass.h>
#include <java/lang/Class.h>
+#include <java/lang/reflect/Field.h>
+
+using namespace java::lang::reflect;
jboolean
java::io::VMObjectStreamClass::hasClassInitializer (jclass klass)
{
+ if (klass->isPrimitive())
+ return false;
_Jv_Method *meth = _Jv_GetMethodLocal(klass, gcj::clinit_name,
gcj::void_signature);
return (meth != NULL);
}
+
+void
+java::io::VMObjectStreamClass::setDoubleNative (Field *f, jobject obj,
+ jdouble val)
+{
+ f->setDouble (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setFloatNative (Field *f, jobject obj,
+ jfloat val)
+{
+ f->setFloat (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setLongNative (Field *f, jobject obj, jlong val)
+{
+ f->setLong (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setIntNative (Field *f, jobject obj, jint val)
+{
+ f->setInt (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setShortNative (Field *f, jobject obj,
+ jshort val)
+{
+ f->setShort (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setCharNative (Field *f, jobject obj, jchar val)
+{
+ f->setChar (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setByteNative (Field *f, jobject obj, jbyte val)
+{
+ f->setByte (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setBooleanNative (Field *f, jobject obj,
+ jboolean val)
+{
+ f->setBoolean (NULL, obj, val, false);
+}
+
+void
+java::io::VMObjectStreamClass::setObjectNative (Field *f, jobject obj,
+ jobject val)
+{
+ f->set (NULL, obj, val, f->getType(), false);
+}
diff --git a/libjava/java/lang/AbstractMethodError.java b/libjava/java/lang/AbstractMethodError.java
index df961864a67..8fd20d3c0cf 100644
--- a/libjava/java/lang/AbstractMethodError.java
+++ b/libjava/java/lang/AbstractMethodError.java
@@ -1,5 +1,5 @@
/* AbstractMethodError.java -- thrown if an abstract method is invoked
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.lang;
* reflecting on methods.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class AbstractMethodError extends IncompatibleClassChangeError
diff --git a/libjava/java/lang/ArithmeticException.java b/libjava/java/lang/ArithmeticException.java
index de79b096ab3..7fb9c1cc4d6 100644
--- a/libjava/java/lang/ArithmeticException.java
+++ b/libjava/java/lang/ArithmeticException.java
@@ -1,6 +1,6 @@
/* ArithmeticException.java -- exception thrown to indicate conditions
like divide by zero.
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class ArithmeticException extends RuntimeException
diff --git a/libjava/java/lang/ArrayIndexOutOfBoundsException.java b/libjava/java/lang/ArrayIndexOutOfBoundsException.java
index 1a6db8daf04..abc6d1d607f 100644
--- a/libjava/java/lang/ArrayIndexOutOfBoundsException.java
+++ b/libjava/java/lang/ArrayIndexOutOfBoundsException.java
@@ -1,6 +1,6 @@
/* ArrayIndexOutOfBoundsException.java -- exception thrown when accessing
an illegal index.
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException
diff --git a/libjava/java/lang/ArrayStoreException.java b/libjava/java/lang/ArrayStoreException.java
index 3fa714d2ef4..00a084ec115 100644
--- a/libjava/java/lang/ArrayStoreException.java
+++ b/libjava/java/lang/ArrayStoreException.java
@@ -1,6 +1,6 @@
/* ArrayStoreException.java -- exception thrown to when trying to store an
object into an array of a different type.
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class ArrayStoreException extends RuntimeException
diff --git a/libjava/java/lang/AssertionError.java b/libjava/java/lang/AssertionError.java
index 2bbf81cac97..8851be1d30f 100644
--- a/libjava/java/lang/AssertionError.java
+++ b/libjava/java/lang/AssertionError.java
@@ -1,5 +1,5 @@
/* AssertionError.java -- indication of a failed assertion
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.lang;
* the string <code>"" + <em>expression</em></code>. This extends Error,
* because you usually do not want to inadvertently trap an assertion failure.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Boolean.java b/libjava/java/lang/Boolean.java
index 3c09a1505c1..a30b669df1a 100644
--- a/libjava/java/lang/Boolean.java
+++ b/libjava/java/lang/Boolean.java
@@ -1,5 +1,5 @@
/* Boolean.java -- object wrapper for boolean
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.io.Serializable;
* <code>boolean</code> values.
*
* @author Paul Fisher
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Byte.java b/libjava/java/lang/Byte.java
index 641c5cc8ee1..e59ac598aed 100644
--- a/libjava/java/lang/Byte.java
+++ b/libjava/java/lang/Byte.java
@@ -1,5 +1,5 @@
/* Byte.java -- object wrapper for byte
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* @author Paul Fisher
* @author John Keiser
* @author Per Bothner
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index 34ff5df634d..98ebcc13d38 100644
--- a/libjava/java/lang/Class.h
+++ b/libjava/java/lang/Class.h
@@ -228,14 +228,15 @@ void _Jv_InitNewClassFields (jclass klass);
// Friend functions and classes in prims.cc
void _Jv_InitPrimClass (jclass, char *, char, int);
-jstring _Jv_GetMethodString (jclass, _Jv_Utf8Const *);
+jstring _Jv_GetMethodString (jclass, _Jv_Method *, jclass = NULL);
jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass,
jint flags);
jclass _Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader);
-#ifdef INTERPRETER
jboolean _Jv_IsInterpretedClass (jclass);
+
+#ifdef INTERPRETER
void _Jv_InitField (jobject, jclass, int);
class _Jv_ClassReader;
@@ -454,7 +455,7 @@ private:
// in prims.cc
friend void ::_Jv_InitPrimClass (jclass, char *, char, int);
- friend jstring (::_Jv_GetMethodString) (jclass, _Jv_Utf8Const *);
+ friend jstring (::_Jv_GetMethodString) (jclass, _Jv_Method *, jclass);
friend jboolean (::_Jv_CheckAccess) (jclass self_klass, jclass other_klass,
jint flags);
@@ -466,8 +467,9 @@ private:
friend jclass (::_Jv_GetArrayClass) (jclass klass,
java::lang::ClassLoader *loader);
-#ifdef INTERPRETER
friend jboolean (::_Jv_IsInterpretedClass) (jclass);
+
+#ifdef INTERPRETER
friend void ::_Jv_InitField (jobject, jclass, int);
friend class ::_Jv_ClassReader;
diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java
index 6a65482f637..bf11861985d 100644
--- a/libjava/java/lang/Class.java
+++ b/libjava/java/lang/Class.java
@@ -71,8 +71,8 @@ import java.util.HashSet;
* see {@link ObjectStreamClass}.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Tom Tromey (tromey@cygnus.com)
* @since 1.0
* @see ClassLoader
*/
diff --git a/libjava/java/lang/ClassCastException.java b/libjava/java/lang/ClassCastException.java
index b552b23fbdb..49c5262222d 100644
--- a/libjava/java/lang/ClassCastException.java
+++ b/libjava/java/lang/ClassCastException.java
@@ -1,5 +1,5 @@
/* ClassCastException.java -- exception thrown on bad cast
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class ClassCastException extends RuntimeException
diff --git a/libjava/java/lang/ClassCircularityError.java b/libjava/java/lang/ClassCircularityError.java
index 8016eadb868..fb93327eb1d 100644
--- a/libjava/java/lang/ClassCircularityError.java
+++ b/libjava/java/lang/ClassCircularityError.java
@@ -1,5 +1,5 @@
/* ClassCircularityError.java -- thrown when linking circular classes
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* incompatible versions of class files, as the compiler normally catches this.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class ClassCircularityError extends LinkageError
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java
index 46e523c6834..a4ac1e1b301 100644
--- a/libjava/java/lang/ClassLoader.java
+++ b/libjava/java/lang/ClassLoader.java
@@ -109,7 +109,7 @@ import java.util.Map;
*
* @author John Keiser
* @author Mark Wielaard
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Class
* @since 1.0
* @status still missing 1.4 functionality
@@ -260,6 +260,9 @@ public abstract class ClassLoader
return loadClass(name, false);
}
+ private native Class loadClassFromSig(String name)
+ throws ClassNotFoundException;
+
/**
* Load a class using this ClassLoader or its parent, possibly resolving
* it as well using <code>resolveClass()</code>. It first tries to find
@@ -283,30 +286,37 @@ public abstract class ClassLoader
protected synchronized Class loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
- // Have we already loaded this class?
- Class c = findLoadedClass(name);
- if (c != null)
- return c;
-
- // Can the class be loaded by a parent?
- try
+ // Arrays are handled specially.
+ Class c;
+ if (name.charAt(0) == '[')
+ c = loadClassFromSig(name);
+ else
{
- if (parent == null)
+ // Have we already loaded this class?
+ c = findLoadedClass(name);
+ if (c == null)
{
- c = VMClassLoader.loadClass(name, resolve);
- if (c != null)
- return c;
+ // Can the class be loaded by a parent?
+ try
+ {
+ if (parent == null)
+ {
+ c = VMClassLoader.loadClass(name, resolve);
+ if (c != null)
+ return c;
+ }
+ else
+ {
+ return parent.loadClass(name, resolve);
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ }
+ // Still not found, we have to do it ourself.
+ c = findClass(name);
}
- else
- {
- return parent.loadClass(name, resolve);
- }
- }
- catch (ClassNotFoundException e)
- {
}
- // Still not found, we have to do it ourself.
- c = findClass(name);
if (resolve)
resolveClass(c);
return c;
diff --git a/libjava/java/lang/ClassNotFoundException.java b/libjava/java/lang/ClassNotFoundException.java
index cb546602e56..cfa03f59647 100644
--- a/libjava/java/lang/ClassNotFoundException.java
+++ b/libjava/java/lang/ClassNotFoundException.java
@@ -1,5 +1,5 @@
/* ClassNotFoundException.java -- thrown when class definition cannot be found
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* cannot be found. This exception is often chained from another Throwable.
*
* @author Brian Jones
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Class#forName(String)
* @see ClassLoader#findSystemClass(String)
* @see ClassLoader#loadClass(String, boolean)
diff --git a/libjava/java/lang/CloneNotSupportedException.java b/libjava/java/lang/CloneNotSupportedException.java
index e13112ac350..488e9154c3a 100644
--- a/libjava/java/lang/CloneNotSupportedException.java
+++ b/libjava/java/lang/CloneNotSupportedException.java
@@ -1,5 +1,5 @@
/* CloneNotSupportedException.java -- thrown when an object cannot be cloned
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -60,8 +60,8 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Cloneable
* @see Object#clone()
* @status updated to 1.4
diff --git a/libjava/java/lang/Cloneable.java b/libjava/java/lang/Cloneable.java
index 64c7faf4863..0a8243ea21f 100644
--- a/libjava/java/lang/Cloneable.java
+++ b/libjava/java/lang/Cloneable.java
@@ -1,5 +1,5 @@
/* Cloneable.java -- Interface for marking objects cloneable by Object.clone()
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -65,8 +65,8 @@ package java.lang;
* <code>CloneNotSupportedException</code>.
*
* @author Paul Fisher
- * @author Eric Blake <ebb9@email.byu.edu>
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Warren Levy (warrenl@cygnus.com)
* @see Object#clone()
* @see CloneNotSupportedException
* @since 1.0
diff --git a/libjava/java/lang/Comparable.java b/libjava/java/lang/Comparable.java
index bfe72dbcb11..4ffec6056ca 100644
--- a/libjava/java/lang/Comparable.java
+++ b/libjava/java/lang/Comparable.java
@@ -1,5 +1,5 @@
/* Comparable.java -- Interface for comparaing objects to obtain an ordering
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ package java.lang;
* classes.
*
* @author Geoff Berry
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see java.util.Comparator
* @see java.util.Collections#sort(java.util.List)
* @see java.util.Arrays#sort(Object[])
diff --git a/libjava/java/lang/Compiler.java b/libjava/java/lang/Compiler.java
index 858f63ee993..1179f79faff 100644
--- a/libjava/java/lang/Compiler.java
+++ b/libjava/java/lang/Compiler.java
@@ -1,5 +1,5 @@
/* Compiler.java -- placeholder for Java-to-native runtime compilers
- Copyright (C) 1998, 1999, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ package java.lang;
*
* <p>Note that a VM might not have implemented any of this.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see System#getProperty(String)
* @see System#getProperty(String, String)
* @see System#loadLibrary(String)
diff --git a/libjava/java/lang/Double.java b/libjava/java/lang/Double.java
index be393b6b4b9..81985f04e05 100644
--- a/libjava/java/lang/Double.java
+++ b/libjava/java/lang/Double.java
@@ -1,5 +1,5 @@
/* Double.java -- object wrapper for double
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,8 +48,8 @@ import gnu.classpath.Configuration;
* related to doubles.
*
* @author Paul Fisher
- * @author Andrew Haley <aph@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Andrew Haley (aph@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Error.java b/libjava/java/lang/Error.java
index 8bb42dc887c..fc1d6227861 100644
--- a/libjava/java/lang/Error.java
+++ b/libjava/java/lang/Error.java
@@ -1,5 +1,5 @@
/* Error.java -- Indication of fatal abnormal conditions
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,8 +49,8 @@ package java.lang;
* executing the method.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Exception.java b/libjava/java/lang/Exception.java
index edf5de228c8..68a7dcb2d2b 100644
--- a/libjava/java/lang/Exception.java
+++ b/libjava/java/lang/Exception.java
@@ -1,6 +1,6 @@
/* Exception.java -- generic exception thrown to indicate an exceptional
condition has occurred.
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,8 +47,8 @@ package java.lang;
* mouse movements, keyboard clicking, etc.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
public class Exception extends Throwable
diff --git a/libjava/java/lang/ExceptionInInitializerError.java b/libjava/java/lang/ExceptionInInitializerError.java
index d04bdc010d7..966a9f3acee 100644
--- a/libjava/java/lang/ExceptionInInitializerError.java
+++ b/libjava/java/lang/ExceptionInInitializerError.java
@@ -1,6 +1,6 @@
/* ExceptionInInitializerError.java -- thrown when class initialization fails
with an uncaught exception
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,8 +48,8 @@ package java.lang;
* is initialized as part of another action.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Float.java b/libjava/java/lang/Float.java
index d59912168da..0fa3547a77b 100644
--- a/libjava/java/lang/Float.java
+++ b/libjava/java/lang/Float.java
@@ -1,5 +1,5 @@
/* Float.java -- object wrapper for float
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,8 +47,8 @@ package java.lang;
* related to floats.
*
* @author Paul Fisher
- * @author Andrew Haley <aph@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Andrew Haley (aph@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/IllegalAccessError.java b/libjava/java/lang/IllegalAccessError.java
index a5c384e77fe..a45efd1633b 100644
--- a/libjava/java/lang/IllegalAccessError.java
+++ b/libjava/java/lang/IllegalAccessError.java
@@ -1,5 +1,5 @@
/* IllegalAccessError.java -- thrown when linking to an inaccessible member
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.lang;
* application.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class IllegalAccessError extends IncompatibleClassChangeError
diff --git a/libjava/java/lang/IllegalAccessException.java b/libjava/java/lang/IllegalAccessException.java
index f6fc8f67e91..f1ac3b0a32e 100644
--- a/libjava/java/lang/IllegalAccessException.java
+++ b/libjava/java/lang/IllegalAccessException.java
@@ -1,6 +1,6 @@
/* IllegalAccessException.java -- thrown on attempt to reflect on
inaccessible data
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.lang;
* variable that belongs to a class in another package is bad.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see Class#newInstance()
* @see Field#set(Object, Object)
* @see Field#setBoolean(Object, boolean)
diff --git a/libjava/java/lang/IllegalArgumentException.java b/libjava/java/lang/IllegalArgumentException.java
index deb6735c899..d0120135ca1 100644
--- a/libjava/java/lang/IllegalArgumentException.java
+++ b/libjava/java/lang/IllegalArgumentException.java
@@ -1,6 +1,6 @@
/* IllegalArgumentException.java -- thrown when a method is passed an
illegal or inappropriate argument
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class IllegalArgumentException extends RuntimeException
diff --git a/libjava/java/lang/IllegalMonitorStateException.java b/libjava/java/lang/IllegalMonitorStateException.java
index 08e1ba7a1ea..7461942ccd7 100644
--- a/libjava/java/lang/IllegalMonitorStateException.java
+++ b/libjava/java/lang/IllegalMonitorStateException.java
@@ -1,6 +1,6 @@
/* IllegalMonitorStateException.java -- thrown when trying to wait or
notify a monitor that is not owned
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class IllegalMonitorStateException extends RuntimeException
diff --git a/libjava/java/lang/IllegalStateException.java b/libjava/java/lang/IllegalStateException.java
index 16dcf1a80c8..f39ea539cc1 100644
--- a/libjava/java/lang/IllegalStateException.java
+++ b/libjava/java/lang/IllegalStateException.java
@@ -1,6 +1,6 @@
/* IllegalStateException.java -- thrown when invoking a method at
an illegal or inappropriate time
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/IllegalThreadStateException.java b/libjava/java/lang/IllegalThreadStateException.java
index bcc188e1a66..d7e0a2ba49b 100644
--- a/libjava/java/lang/IllegalThreadStateException.java
+++ b/libjava/java/lang/IllegalThreadStateException.java
@@ -1,6 +1,6 @@
/* IllegalThreadStateException.java -- thrown when trying to manipulate a
Thread when it is not in an appropriate state
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.lang;
* two methods are deprecated, this exception is likely very rare.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class IllegalThreadStateException extends IllegalArgumentException
diff --git a/libjava/java/lang/IncompatibleClassChangeError.java b/libjava/java/lang/IncompatibleClassChangeError.java
index 7f569fdc36d..7885a2542e6 100644
--- a/libjava/java/lang/IncompatibleClassChangeError.java
+++ b/libjava/java/lang/IncompatibleClassChangeError.java
@@ -1,5 +1,5 @@
/* IncompatibleClassChangeError.java -- thrown for binary incompatible classes
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* incompatible way.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class IncompatibleClassChangeError extends LinkageError
diff --git a/libjava/java/lang/IndexOutOfBoundsException.java b/libjava/java/lang/IndexOutOfBoundsException.java
index 336f87219a3..4886f01da9d 100644
--- a/libjava/java/lang/IndexOutOfBoundsException.java
+++ b/libjava/java/lang/IndexOutOfBoundsException.java
@@ -1,5 +1,5 @@
/* IndexOutOfBoundsException.java -- thrown for an invalid index
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.lang;
* which would be out of bounds.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class IndexOutOfBoundsException extends RuntimeException
diff --git a/libjava/java/lang/InheritableThreadLocal.java b/libjava/java/lang/InheritableThreadLocal.java
index 5dfbe9a6230..43810f80e87 100644
--- a/libjava/java/lang/InheritableThreadLocal.java
+++ b/libjava/java/lang/InheritableThreadLocal.java
@@ -1,5 +1,5 @@
/* InheritableThreadLocal -- a ThreadLocal which inherits values across threads
- Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,8 +55,8 @@ import java.util.WeakHashMap;
* is in transferring items like User ID or Transaction ID across threads
* automatically.
*
- * @author Mark Wielaard <mark@klomp.org>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Mark Wielaard (mark@klomp.org)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see ThreadLocal
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/java/lang/InstantiationError.java b/libjava/java/lang/InstantiationError.java
index 54aa7b36609..3d2750ce8a3 100644
--- a/libjava/java/lang/InstantiationError.java
+++ b/libjava/java/lang/InstantiationError.java
@@ -1,5 +1,5 @@
/* InstantiationError.java -- thrown when the linker cannot create an instance
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.lang;
* with the previously compiled application.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class InstantiationError extends IncompatibleClassChangeError
diff --git a/libjava/java/lang/InstantiationException.java b/libjava/java/lang/InstantiationException.java
index 511481418c4..4aa4bd077ca 100644
--- a/libjava/java/lang/InstantiationException.java
+++ b/libjava/java/lang/InstantiationException.java
@@ -1,6 +1,6 @@
/* InstantiationException.java -- thrown when reflection cannot create an
instance
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* non-instantiable class (an interface or abstract class).
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see Class#newInstance()
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/Integer.java b/libjava/java/lang/Integer.java
index 9c8329dbd83..eddaea2292a 100644
--- a/libjava/java/lang/Integer.java
+++ b/libjava/java/lang/Integer.java
@@ -1,5 +1,5 @@
/* Integer.java -- object wrapper for int
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* @author Paul Fisher
* @author John Keiser
* @author Warren Levy
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/InternalError.java b/libjava/java/lang/InternalError.java
index d85aed11817..d612d092fa2 100644
--- a/libjava/java/lang/InternalError.java
+++ b/libjava/java/lang/InternalError.java
@@ -1,5 +1,5 @@
/* InternalError.java -- thrown when the VM encounters an internal error
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* occurred in the Java Virtual Machine.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class InternalError extends VirtualMachineError
diff --git a/libjava/java/lang/InterruptedException.java b/libjava/java/lang/InterruptedException.java
index 2ee7867f610..58951abc46d 100644
--- a/libjava/java/lang/InterruptedException.java
+++ b/libjava/java/lang/InterruptedException.java
@@ -1,5 +1,5 @@
/* InterruptedException.java -- thrown when a thread is interrupted
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* <code>interrupt</code> method of class <code>Thread</code>.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see Object#wait()
* @see Object#wait(long)
* @see Object#wait(long, int)
diff --git a/libjava/java/lang/LinkageError.java b/libjava/java/lang/LinkageError.java
index 020fe0a9a7c..ead768f3756 100644
--- a/libjava/java/lang/LinkageError.java
+++ b/libjava/java/lang/LinkageError.java
@@ -1,6 +1,6 @@
/* LinkageError.java -- thrown when classes valid at separate compile times
cannot be linked to each other
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.lang;
* linked to one another.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class LinkageError extends Error
diff --git a/libjava/java/lang/Long.java b/libjava/java/lang/Long.java
index 012cc9c93e7..e93786d2571 100644
--- a/libjava/java/lang/Long.java
+++ b/libjava/java/lang/Long.java
@@ -1,5 +1,5 @@
/* Long.java -- object wrapper for long
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* @author Paul Fisher
* @author John Keiser
* @author Warren Levy
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/NegativeArraySizeException.java b/libjava/java/lang/NegativeArraySizeException.java
index ee73a97d5aa..695ee0e6e4a 100644
--- a/libjava/java/lang/NegativeArraySizeException.java
+++ b/libjava/java/lang/NegativeArraySizeException.java
@@ -1,6 +1,6 @@
/* NegativeArraySizeException.java -- thrown on attempt to create array
with a negative size
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* </pre>
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class NegativeArraySizeException extends RuntimeException
diff --git a/libjava/java/lang/NoClassDefFoundError.java b/libjava/java/lang/NoClassDefFoundError.java
index 5ca69bcaaa2..8fbdb29909c 100644
--- a/libjava/java/lang/NoClassDefFoundError.java
+++ b/libjava/java/lang/NoClassDefFoundError.java
@@ -1,5 +1,5 @@
/* NoClassDefFoundError.java -- thrown when a ClassLoader cannot find a class
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.lang;
* class was compiled, but now that definition cannot be found.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class NoClassDefFoundError extends LinkageError
diff --git a/libjava/java/lang/NoSuchFieldError.java b/libjava/java/lang/NoSuchFieldError.java
index 0a197b0c4bd..965dfd6603d 100644
--- a/libjava/java/lang/NoSuchFieldError.java
+++ b/libjava/java/lang/NoSuchFieldError.java
@@ -1,5 +1,5 @@
/* NoSuchFieldError.java -- thrown when the linker does not find a field
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.lang;
* using binary incompatible class versions.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class NoSuchFieldError extends IncompatibleClassChangeError
diff --git a/libjava/java/lang/NoSuchFieldException.java b/libjava/java/lang/NoSuchFieldException.java
index ee721ebef21..30beeefcd25 100644
--- a/libjava/java/lang/NoSuchFieldException.java
+++ b/libjava/java/lang/NoSuchFieldException.java
@@ -1,5 +1,5 @@
/* NoSuchFieldException.java -- thrown when reflecting a non-existant field
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* caused by a variety of reflection methods, when looking up a field by name.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/NoSuchMethodError.java b/libjava/java/lang/NoSuchMethodError.java
index dced018cfe3..494f7a2713e 100644
--- a/libjava/java/lang/NoSuchMethodError.java
+++ b/libjava/java/lang/NoSuchMethodError.java
@@ -1,5 +1,5 @@
/* NoSuchMethodError.java -- thrown when the linker does not find a method
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.lang;
* using binary incompatible class versions.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class NoSuchMethodError extends IncompatibleClassChangeError
diff --git a/libjava/java/lang/NoSuchMethodException.java b/libjava/java/lang/NoSuchMethodException.java
index cba69203f7b..fa3e06e4f73 100644
--- a/libjava/java/lang/NoSuchMethodException.java
+++ b/libjava/java/lang/NoSuchMethodException.java
@@ -1,5 +1,5 @@
/* NoSuchMethodException.java -- thrown when reflecting a non-existant method
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* caused by a variety of reflection methods, when looking up a method by name.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class NoSuchMethodException extends Exception
diff --git a/libjava/java/lang/NullPointerException.java b/libjava/java/lang/NullPointerException.java
index bab20719373..c55341cfd3c 100644
--- a/libjava/java/lang/NullPointerException.java
+++ b/libjava/java/lang/NullPointerException.java
@@ -1,5 +1,5 @@
/* NullPointerException.java -- thrown when using null instead of an object
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ package java.lang;
* <code>null</code> is an inappropriate parameter to a method.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class NullPointerException extends RuntimeException
diff --git a/libjava/java/lang/Number.java b/libjava/java/lang/Number.java
index 54bb1f763e5..70d0fe8543c 100644
--- a/libjava/java/lang/Number.java
+++ b/libjava/java/lang/Number.java
@@ -1,5 +1,5 @@
/* Number.java =- abstract superclass of numeric objects
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,7 +51,7 @@ import java.io.Serializable;
* @author Paul Fisher
* @author John Keiser
* @author Warren Levy
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/NumberFormatException.java b/libjava/java/lang/NumberFormatException.java
index d076cc83da9..478036ffc6c 100644
--- a/libjava/java/lang/NumberFormatException.java
+++ b/libjava/java/lang/NumberFormatException.java
@@ -1,5 +1,5 @@
/* NumberFormatException.java -- thrown when parsing a bad string as a number
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* has the wrong format.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class NumberFormatException extends IllegalArgumentException
diff --git a/libjava/java/lang/Object.h b/libjava/java/lang/Object.h
index 0842e0b291c..bf68a72399b 100644
--- a/libjava/java/lang/Object.h
+++ b/libjava/java/lang/Object.h
@@ -1,6 +1,6 @@
// Object.h - Header file for java.lang.Object. -*- c++ -*-
-/* Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -15,6 +15,8 @@ details. */
#include <gcj/javaprims.h>
+extern "Java"
+{
// This class is mainly here as a kludge to get G++ to allocate two
// extra entries in each vtable.
struct _JvObjectPrefix
@@ -27,6 +29,7 @@ protected:
virtual void nacd_2 (void) {}; // Actually the GC bitmap marking descriptor.
# endif
};
+}
// Forward declarations for friends of java::lang::Object
void _Jv_MonitorEnter (jobject obj);
diff --git a/libjava/java/lang/OutOfMemoryError.java b/libjava/java/lang/OutOfMemoryError.java
index b56b8f4242e..105aae5c2e9 100644
--- a/libjava/java/lang/OutOfMemoryError.java
+++ b/libjava/java/lang/OutOfMemoryError.java
@@ -1,5 +1,5 @@
/* OutOfMemoryError.java -- thrown when a memory allocation fails
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* by the garbage collector.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class OutOfMemoryError extends VirtualMachineError
diff --git a/libjava/java/lang/Process.java b/libjava/java/lang/Process.java
index b87bd8068b5..e8c52760dfe 100644
--- a/libjava/java/lang/Process.java
+++ b/libjava/java/lang/Process.java
@@ -1,5 +1,5 @@
/* Process.java - Represent spawned system process
- Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ import java.io.OutputStream;
* owns this object.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see Runtime#exec(String[], String[], File)
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/lang/Runnable.java b/libjava/java/lang/Runnable.java
index fd817b0e4a1..ee8d6842cef 100644
--- a/libjava/java/lang/Runnable.java
+++ b/libjava/java/lang/Runnable.java
@@ -1,5 +1,5 @@
/* Runnable -- interface for a method tied to an Object; often for Threads
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.lang;
* override run.
*
* @author Paul Fisher
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see Thread
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/lang/Runtime.java b/libjava/java/lang/Runtime.java
index aaeb93eda2d..1094720404d 100644
--- a/libjava/java/lang/Runtime.java
+++ b/libjava/java/lang/Runtime.java
@@ -52,8 +52,8 @@ import java.util.StringTokenizer;
* Runtime represents the Virtual Machine.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
- * @status still missing 1.4 functionality
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Jeroen Frijters
*/
// No idea why this class isn't final, since you can't build a subclass!
public class Runtime
diff --git a/libjava/java/lang/RuntimeException.java b/libjava/java/lang/RuntimeException.java
index 8fc9fb10aab..6e63ed3fd13 100644
--- a/libjava/java/lang/RuntimeException.java
+++ b/libjava/java/lang/RuntimeException.java
@@ -1,5 +1,5 @@
/* RuntimeException.java -- root of all unchecked exceptions
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,8 +45,8 @@ package java.lang;
* in their throws clause.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
public class RuntimeException extends Exception
diff --git a/libjava/java/lang/RuntimePermission.java b/libjava/java/lang/RuntimePermission.java
index b6adf383804..f4b46f68fb4 100644
--- a/libjava/java/lang/RuntimePermission.java
+++ b/libjava/java/lang/RuntimePermission.java
@@ -1,5 +1,5 @@
/* RuntimePermission.java -- permission for a secure runtime action
- Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -166,7 +166,7 @@ import java.security.BasicPermission;
* </table>
*
* @author Brian Jones
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see BasicPermission
* @see Permission
* @see SecurityManager
diff --git a/libjava/java/lang/SecurityException.java b/libjava/java/lang/SecurityException.java
index 5fbdb4ae222..91b015a895e 100644
--- a/libjava/java/lang/SecurityException.java
+++ b/libjava/java/lang/SecurityException.java
@@ -1,5 +1,5 @@
/* SecurityException.java -- thrown to indicate a security violation
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* deemed unsafe by the current security policies.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see SecurityManager
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/SecurityManager.java b/libjava/java/lang/SecurityManager.java
index 972b312d943..c9ed4be0b3f 100644
--- a/libjava/java/lang/SecurityManager.java
+++ b/libjava/java/lang/SecurityManager.java
@@ -1,5 +1,5 @@
/* SecurityManager.java -- security checks for privileged actions
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -101,7 +101,7 @@ import java.util.PropertyPermission;
* subclassing this class.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see ClassLoader
* @see SecurityException
* @see #checkTopLevelWindow(Object)
diff --git a/libjava/java/lang/Short.java b/libjava/java/lang/Short.java
index 1a82e3edf36..1220f608acd 100644
--- a/libjava/java/lang/Short.java
+++ b/libjava/java/lang/Short.java
@@ -1,5 +1,5 @@
/* Short.java -- object wrapper for short
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.lang;
*
* @author Paul Fisher
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/StackOverflowError.java b/libjava/java/lang/StackOverflowError.java
index 8e8ed8d92b0..dc4c8ccf446 100644
--- a/libjava/java/lang/StackOverflowError.java
+++ b/libjava/java/lang/StackOverflowError.java
@@ -1,5 +1,5 @@
/* StackOverflowError.java -- thrown when the stack depth is exceeded
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* overflow occurs. This often occurs when a method enters infinit recursion.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class StackOverflowError extends VirtualMachineError
diff --git a/libjava/java/lang/StackTraceElement.java b/libjava/java/lang/StackTraceElement.java
index 4495186e175..262d58228ee 100644
--- a/libjava/java/lang/StackTraceElement.java
+++ b/libjava/java/lang/StackTraceElement.java
@@ -1,5 +1,5 @@
/* StackTraceElement.java -- One function call or call stack element
- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,8 +46,8 @@ import java.io.Serializable;
* the fully qualified class name, the method name and whether this method
* is native, if this information is known.
*
- * @author Mark Wielaard <mark@klomp.org>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Mark Wielaard (mark@klomp.org)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java
index 4f04de265ca..eac1d5ae3ed 100644
--- a/libjava/java/lang/StringBuffer.java
+++ b/libjava/java/lang/StringBuffer.java
@@ -1,5 +1,5 @@
/* StringBuffer.java -- Growable strings
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -67,7 +67,7 @@ import java.io.Serializable;
* @author Paul Fisher
* @author John Keiser
* @author Tom Tromey
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see String
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/lang/StringIndexOutOfBoundsException.java b/libjava/java/lang/StringIndexOutOfBoundsException.java
index 9a935ee8c44..ea0df6890e9 100644
--- a/libjava/java/lang/StringIndexOutOfBoundsException.java
+++ b/libjava/java/lang/StringIndexOutOfBoundsException.java
@@ -1,6 +1,6 @@
/* StringIndexOutOfBoundsException.java -- thrown to indicate attempt to
exceed string bounds
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.lang;
* which would be out of bounds.
*
* @author Brian Jones
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class StringIndexOutOfBoundsException extends IndexOutOfBoundsException
diff --git a/libjava/java/lang/ThreadDeath.java b/libjava/java/lang/ThreadDeath.java
index 3ba4cf899ec..29c452e30b8 100644
--- a/libjava/java/lang/ThreadDeath.java
+++ b/libjava/java/lang/ThreadDeath.java
@@ -1,5 +1,5 @@
/* ThreadDeath.java - special exception registering Thread death
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.lang;
* deprecated Thread.stop() method.
*
* @author John Keiser
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see Thread#stop()
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/ThreadGroup.java b/libjava/java/lang/ThreadGroup.java
index 89aff3f0249..0464767bf17 100644
--- a/libjava/java/lang/ThreadGroup.java
+++ b/libjava/java/lang/ThreadGroup.java
@@ -1,5 +1,5 @@
/* ThreadGroup -- a group of Threads
- Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.Vector;
* @author John Keiser
* @author Tom Tromey
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Thread
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/lang/Throwable.java b/libjava/java/lang/Throwable.java
index e082548300b..ad5157823f5 100644
--- a/libjava/java/lang/Throwable.java
+++ b/libjava/java/lang/Throwable.java
@@ -1,5 +1,5 @@
/* java.lang.Throwable -- Root class for all Exceptions and Errors
- Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -98,7 +98,7 @@ import java.io.Serializable;
* @author John Keiser
* @author Mark Wielaard
* @author Tom Tromey
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.0
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/UnsatisfiedLinkError.java b/libjava/java/lang/UnsatisfiedLinkError.java
index 95c0b5333a4..ab4095644a7 100644
--- a/libjava/java/lang/UnsatisfiedLinkError.java
+++ b/libjava/java/lang/UnsatisfiedLinkError.java
@@ -1,5 +1,5 @@
/* UnsatisfiedLinkError.java -- thrown when a native method cannot be loaded
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* cannot be found by the Java Virtual Machine.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see Runtime
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/UnsupportedOperationException.java b/libjava/java/lang/UnsupportedOperationException.java
index 6c00bef4342..efbb844b337 100644
--- a/libjava/java/lang/UnsupportedOperationException.java
+++ b/libjava/java/lang/UnsupportedOperationException.java
@@ -1,6 +1,6 @@
/* UnsupportedOperationException.java -- thrown when an operation is not
supported
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* This exception is thrown by an object when an operation is
* requested of it that it does not support.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/VMClassLoader.java b/libjava/java/lang/VMClassLoader.java
index e21bb649542..c48fc709991 100644
--- a/libjava/java/lang/VMClassLoader.java
+++ b/libjava/java/lang/VMClassLoader.java
@@ -51,8 +51,10 @@ import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.StringTokenizer;
+import gnu.gcj.runtime.BootClassLoader;
/**
* java.lang.VMClassLoader is a package-private helper for VMs to implement
@@ -82,6 +84,21 @@ final class VMClassLoader
static final HashMap definedPackages = new HashMap();
+ // This is a helper for handling java.endorsed.dirs. It is null
+ // until we've initialized the system, at which point it is created.
+ static BootClassLoader bootLoader;
+
+ // This keeps track of shared libraries we've already tried to load.
+ private static HashSet tried_libraries;
+
+ // Holds one of the LIB_* constants; used to determine how shared
+ // library loads are done.
+ private static int lib_control;
+
+ private static final int LIB_FULL = 0;
+ private static final int LIB_CACHE = 1;
+ private static final int LIB_NEVER = 2;
+
/**
* Helper to define a class using a string of bytes. This assumes that
* the security checks have already been performed, if necessary.
@@ -153,6 +170,8 @@ final class VMClassLoader
*/
static URL getResource(String name)
{
+ if (bootLoader != null)
+ return bootLoader.bootGetResource(name);
return null;
}
@@ -168,6 +187,8 @@ final class VMClassLoader
*/
static Enumeration getResources(String name) throws IOException
{
+ if (bootLoader != null)
+ return bootLoader.bootGetResources(name);
return EmptyEnumeration.getInstance();
}
@@ -287,6 +308,32 @@ final class VMClassLoader
static native ClassLoader getSystemClassLoaderInternal();
+ static native void initBootLoader(String libdir);
+
+ static void initialize(String libdir)
+ {
+ initBootLoader(libdir);
+
+ String p
+ = System.getProperty ("gnu.gcj.runtime.VMClassLoader.library_control",
+ "");
+ if ("never".equals(p))
+ lib_control = LIB_NEVER;
+ else if ("cache".equals(p))
+ lib_control = LIB_CACHE;
+ else if ("full".equals(p))
+ lib_control = LIB_FULL;
+ else
+ lib_control = LIB_CACHE;
+
+ tried_libraries = new HashSet();
+ }
+
+ /**
+ * Possibly load a .so and search it for classes.
+ */
+ static native Class nativeFindClass(String name);
+
static ClassLoader getSystemClassLoader()
{
// This method is called as the initialization of systemClassLoader,
@@ -304,14 +351,13 @@ final class VMClassLoader
default_sys
= (ClassLoader) c.newInstance(new Object[] { default_sys });
}
- catch (Exception e)
+ catch (Exception ex)
{
- System.err.println("Requested system classloader "
- + loader + " failed, using "
- + "gnu.gcj.runtime.VMClassLoader");
- e.printStackTrace();
+ throw new Error("Failed to load requested system classloader "
+ + loader, ex);
}
}
+
return default_sys;
}
}
diff --git a/libjava/java/lang/VMCompiler.java b/libjava/java/lang/VMCompiler.java
index 3eb4491ecec..6961a31d905 100644
--- a/libjava/java/lang/VMCompiler.java
+++ b/libjava/java/lang/VMCompiler.java
@@ -79,6 +79,24 @@ final class VMCompiler
private static Vector precompiledMapFiles;
+ // We create a single MD5 engine and then clone it whenever we want
+ // a new one. This is simpler than trying to find a new one each
+ // time, and it avoids potential deadlocks due to class loader
+ // oddities.
+ private static final MessageDigest md5Digest;
+
+ static
+ {
+ try
+ {
+ md5Digest = MessageDigest.getInstance("MD5");
+ }
+ catch (NoSuchAlgorithmException _)
+ {
+ md5Digest = null;
+ }
+ }
+
static
{
gcjJitCompiler = System.getProperty("gnu.gcj.jit.compiler");
@@ -123,6 +141,10 @@ final class VMCompiler
catch (java.io.IOException _)
{
}
+ catch (java.nio.BufferUnderflowException _)
+ {
+ // Invalid map file.
+ }
}
}
}
@@ -142,7 +164,8 @@ final class VMCompiler
{
Class c = null;
SharedLibHelper helper
- = SharedLibHelper.findHelper (loader, fileName, domain.getCodeSource());
+ = SharedLibHelper.findHelper (loader, fileName, domain.getCodeSource(),
+ domain, false);
c = helper.findClass (className);
if (c != null)
{
@@ -174,11 +197,18 @@ final class VMCompiler
try
{
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = (MessageDigest) md5Digest.clone();
digest = md.digest(data);
}
- catch (NoSuchAlgorithmException _)
+ catch (CloneNotSupportedException _)
+ {
+ // Can't happen.
+ return null;
+ }
+ catch (NullPointerException _)
{
+ // If md5Digest==null -- but really this should never happen
+ // either, since the MD5 digest is in libgcj.
return null;
}
diff --git a/libjava/java/lang/VerifyError.java b/libjava/java/lang/VerifyError.java
index 3926530f9f3..c5ae8dd83ea 100644
--- a/libjava/java/lang/VerifyError.java
+++ b/libjava/java/lang/VerifyError.java
@@ -1,5 +1,5 @@
/* VerifyError.java -- thrown when a class fails verification
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.lang;
* internal inconsistency in a class file as detected by the "verifier."
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public class VerifyError extends LinkageError
diff --git a/libjava/java/lang/VirtualMachineError.java b/libjava/java/lang/VirtualMachineError.java
index b6f0758e862..161e4e647b3 100644
--- a/libjava/java/lang/VirtualMachineError.java
+++ b/libjava/java/lang/VirtualMachineError.java
@@ -1,5 +1,5 @@
/* VirtualMachineError.java -- thrown when the Virtual Machine has a problem
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.lang;
* it does not have the resources needed for it to continue execution.
*
* @author Brian Jones
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @status updated to 1.4
*/
public abstract class VirtualMachineError extends Error
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 0e9c26c7b4f..f29f6674764 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -1,6 +1,6 @@
// natClass.cc - Implementation of java.lang.Class native methods.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation
This file is part of libgcj.
@@ -973,13 +973,13 @@ _Jv_LookupInterfaceMethod (jclass klass, _Jv_Utf8Const *name,
if (Modifier::isStatic(meth->accflags))
throw new java::lang::IncompatibleClassChangeError
- (_Jv_GetMethodString (klass, meth->name));
+ (_Jv_GetMethodString (klass, meth));
if (Modifier::isAbstract(meth->accflags))
throw new java::lang::AbstractMethodError
- (_Jv_GetMethodString (klass, meth->name));
+ (_Jv_GetMethodString (klass, meth));
if (! Modifier::isPublic(meth->accflags))
throw new java::lang::IllegalAccessError
- (_Jv_GetMethodString (klass, meth->name));
+ (_Jv_GetMethodString (klass, meth));
_Jv_AddMethodToCache (klass, meth);
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index 17b2a883386..d308c2e0009 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -26,7 +26,6 @@ details. */
#include <java/lang/Character.h>
#include <java/lang/Thread.h>
#include <java/lang/ClassLoader.h>
-#include <gnu/gcj/runtime/VMClassLoader.h>
#include <java/lang/InternalError.h>
#include <java/lang/IllegalAccessError.h>
#include <java/lang/LinkageError.h>
@@ -43,6 +42,7 @@ details. */
#include <java/io/Serializable.h>
#include <java/lang/Cloneable.h>
#include <java/util/HashMap.h>
+#include <gnu/gcj/runtime/BootClassLoader.h>
// Size of local hash table.
#define HASH_LEN 1013
@@ -65,6 +65,17 @@ static int bootstrap_index;
+jclass
+java::lang::ClassLoader::loadClassFromSig(jstring name)
+{
+ int len = _Jv_GetStringUTFLength (name);
+ char sig[len + 1];
+ _Jv_GetStringUTFRegion (name, 0, name->length(), sig);
+ return _Jv_FindClassFromSignature(sig, this);
+}
+
+
+
// This tries to find a class in our built-in cache. This cache is
// used only for classes which are linked in to the executable or
// loaded via dlopen().
@@ -106,7 +117,7 @@ void
_Jv_RegisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
{
if (! loader)
- loader = java::lang::ClassLoader::getSystemClassLoader();
+ loader = java::lang::ClassLoader::systemClassLoader;
loader->loadedClasses->put(klass->name->toString(), klass);
}
@@ -116,7 +127,7 @@ void
_Jv_UnregisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
{
if (! loader)
- loader = java::lang::ClassLoader::getSystemClassLoader();
+ loader = java::lang::ClassLoader::systemClassLoader;
loader->loadedClasses->remove(klass->name->toString());
}
@@ -211,36 +222,40 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
// See if the class was already loaded by this loader. This handles
// initiating loader checks, as we register classes with their
// initiating loaders.
- java::lang::ClassLoader *sys
- = java::lang::ClassLoader::getSystemClassLoader ();
+
+ // Note: this is incorrect, but compatible with older GCJ usage.
+ java::lang::ClassLoader *boot = java::lang::ClassLoader::systemClassLoader;
java::lang::ClassLoader *real = loader;
if (! real)
- real = sys;
+ real = boot;
jstring sname = name->toString();
// We might still be bootstrapping the VM, in which case there
- // won't be a system class loader yet.
+ // won't be a bootstrap class loader yet.
jclass klass = real ? real->findLoadedClass (sname) : NULL;
if (! klass)
{
if (loader)
{
- // Load using a user-defined loader, jvmspec 5.3.2
- klass = loader->loadClass(sname, false);
+ // Load using a user-defined loader, jvmspec 5.3.2.
+ // Note that we explicitly must call the single-argument form.
+ klass = loader->loadClass(sname);
// If "loader" delegated the loadClass operation to another
// loader, explicitly register that it is also an initiating
// loader of the given class.
- java::lang::ClassLoader *delegate = (loader == sys
+ java::lang::ClassLoader *delegate = (loader == boot
? NULL
: loader);
if (klass && klass->getClassLoaderInternal () != delegate)
_Jv_RegisterInitiatingLoader (klass, loader);
}
- else if (sys)
+ else if (boot)
{
// Load using the bootstrap loader jvmspec 5.3.1.
- klass = sys->loadClass (sname, false);
+ // klass = java::lang::VMClassLoader::loadClass (sname, false);
+ // Note again that we're actually using the system loader here.
+ klass = boot->loadClass (sname);
// Register that we're an initiating loader.
if (klass)
@@ -251,15 +266,30 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
// Not even a bootstrap loader, try the built-in cache.
klass = _Jv_FindClassInCache (name);
- if (bootstrap_index == BOOTSTRAP_CLASS_LIST_SIZE)
- abort ();
- bootstrap_class_list[bootstrap_index++] = klass;
+ if (klass)
+ {
+ bool found = false;
+ for (int i = 0; i < bootstrap_index; ++i)
+ {
+ if (bootstrap_class_list[i] == klass)
+ {
+ found = true;
+ break;
+ }
+ }
+ if (! found)
+ {
+ if (bootstrap_index == BOOTSTRAP_CLASS_LIST_SIZE)
+ abort ();
+ bootstrap_class_list[bootstrap_index++] = klass;
+ }
+ }
}
}
else
{
- // we need classes to be in the hash while
- // we're loading, so that they can refer to themselves.
+ // We need classes to be in the hash while we're loading, so
+ // that they can refer to themselves.
_Jv_Linker::wait_for_state (klass, JV_STATE_LOADED);
}
diff --git a/libjava/java/lang/natDouble.cc b/libjava/java/lang/natDouble.cc
index dfec5967a9b..72fe5fbe1c6 100644
--- a/libjava/java/lang/natDouble.cc
+++ b/libjava/java/lang/natDouble.cc
@@ -1,6 +1,6 @@
// natDouble.cc - Implementation of java.lang.Double native methods.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation
This file is part of libgcj.
@@ -167,11 +167,15 @@ java::lang::Double::parseDouble(jstring str)
length--;
// The String could end with a f/F/d/D which is valid but we don't need.
+ bool saw_trailer = false;
if (length > 0)
{
jchar last = str->charAt(length-1);
if (last == 'f' || last == 'F' || last == 'd' || last == 'D')
- length--;
+ {
+ length--;
+ saw_trailer = true;
+ }
}
jsize start = 0;
@@ -186,6 +190,17 @@ java::lang::Double::parseDouble(jstring str)
jsize blength = _Jv_GetStringUTFRegion (str, start, length, data);
data[blength] = 0;
+ if (! saw_trailer)
+ {
+ if (! strcmp (data, "NaN") || ! strcmp (data, "+NaN")
+ || ! strcmp (data, "-NaN"))
+ return NaN;
+ else if (! strcmp (data, "Infinity") || ! strcmp (data, "+Infinity"))
+ return POSITIVE_INFINITY;
+ else if (! strcmp (data, "-Infinity"))
+ return NEGATIVE_INFINITY;
+ }
+
struct _Jv_reent reent;
memset (&reent, 0, sizeof reent);
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index 0f3b7987af4..b9bc46f1b0a 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -163,7 +163,7 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
if (do_search)
{
- ClassLoader *sys = ClassLoader::getSystemClassLoader();
+ ClassLoader *sys = ClassLoader::systemClassLoader;
ClassLoader *look = NULL;
gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(10);
try
@@ -391,8 +391,8 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
// (introduced in 1.2), and earlier versioning properties. Some
// programs rely on seeing values that they expect, so we claim to
// be a 1.4-ish VM for their sake.
- SET ("java.version", "1.4.2");
- SET ("java.runtime.version", "1.4.2");
+ SET ("java.version", JV_VERSION);
+ SET ("java.runtime.version", JV_VERSION);
SET ("java.vendor", "Free Software Foundation, Inc.");
SET ("java.vendor.url", "http://gcc.gnu.org/java/");
SET ("java.class.version", "46.0");
@@ -402,7 +402,7 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
SET ("java.vm.version", __VERSION__);
SET ("java.vm.vendor", "Free Software Foundation, Inc.");
SET ("java.vm.name", "GNU libgcj");
- SET ("java.specification.version", "1.4");
+ SET ("java.specification.version", JV_API_VERSION);
SET ("java.specification.name", "Java(tm) Platform API Specification");
SET ("java.specification.vendor", "Sun Microsystems Inc.");
@@ -420,7 +420,7 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
// part we do this because most people specify only --prefix and
// nothing else when installing gcj. Plus, people are free to
// redefine `java.home' with `-D' if necessary.
- SET ("java.home", PREFIX);
+ SET ("java.home", JAVA_HOME);
SET ("gnu.classpath.home", PREFIX);
// This is set to $(libdir) because we use this to find .security
// files at runtime.
@@ -436,8 +436,18 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
if (! uname (&u))
{
SET ("os.name", u.sysname);
- SET ("os.arch", u.machine);
SET ("os.version", u.release);
+
+ // Normalize x86 architecture names to "i386" (except on Windows, which
+ // is handled in win32.cc).
+ if (u.machine[0] == 'i'
+ && u.machine[1] != 0
+ && u.machine[2] == '8'
+ && u.machine[3] == '6'
+ && u.machine[4] == 0)
+ SET ("os.arch", "i386");
+ else
+ SET ("os.arch", u.machine);
}
else
{
@@ -540,14 +550,22 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
// The java extensions directory.
SET ("java.ext.dirs", JAVA_EXT_DIRS);
+ // The endorsed directories that libgcj knows about by default.
+ // This is a way to get other jars into the boot class loader
+ // without overriding java.endorsed.dirs.
+ SET ("gnu.gcj.runtime.endorsed.dirs", GCJ_ENDORSED_DIRS);
+
// The path to libgcj's boot classes
SET ("sun.boot.class.path", BOOT_CLASS_PATH);
+ // If there is a default system database, set it.
+ SET ("gnu.gcj.precompiled.db.path", LIBGCJ_DEFAULT_DATABASE);
+
// Set some properties according to whatever was compiled in with
// `-D'. Important: after this point, the only properties that
// should be set are those which either the user cannot meaningfully
// override, or which augment whatever value the user has provided.
- for (int i = 0; _Jv_Compiler_Properties[i]; ++i)
+ for (int i = 0; i < _Jv_Properties_Count; ++i)
{
const char *s, *p;
// Find the `='.
@@ -573,30 +591,6 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
}
#endif
- if (_Jv_Jar_Class_Path)
- newprops->put(JvNewStringLatin1 ("java.class.path"),
- JvNewStringLatin1 (_Jv_Jar_Class_Path));
- else
- {
- // FIXME: find libgcj.zip and append its path?
- char *classpath = ::getenv("CLASSPATH");
- jstring cp = newprops->getProperty (JvNewStringLatin1("java.class.path"));
- java::lang::StringBuffer *sb = new java::lang::StringBuffer ();
-
- if (classpath)
- {
- sb->append (JvNewStringLatin1 (classpath));
- sb->append (_Jv_platform_path_separator);
- }
- if (cp != NULL)
- sb->append (cp);
- else
- sb->append ((jchar) '.');
-
- newprops->put(JvNewStringLatin1 ("java.class.path"),
- sb->toString ());
- }
-
// The name used to invoke this process (argv[0] in C).
SET ("gnu.gcj.progname", _Jv_GetSafeArg (0));
@@ -621,6 +615,25 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
// LD_LIBRARY_PATH, etc.
SET ("java.library.path", "");
}
+
+ // If java.class.path is still not set then set it according to the
+ // CLASSPATH environment variable if given. See gij.cc main () and
+ // prims.cc _Jv_CreateJavaVM () for all the ways this could have
+ // been set much earlier.
+ // If CLASSPATH isn't set or if the path is empty fall back to "."
+ path = newprops->getProperty(JvNewStringLatin1("java.class.path"));
+ if (!path)
+ {
+ char *classpath = getenv("CLASSPATH");
+ if (classpath && classpath[0] != 0)
+ {
+ path = JvNewStringLatin1 (classpath);
+ newprops->put(JvNewStringLatin1 ("java.class.path"), path);
+ }
+ }
+
+ if (!path || path->length() == 0)
+ SET ("java.class.path", ".");
}
java::lang::Process *
diff --git a/libjava/java/lang/natVMClassLoader.cc b/libjava/java/lang/natVMClassLoader.cc
index 1da79497154..182b8d72743 100644
--- a/libjava/java/lang/natVMClassLoader.cc
+++ b/libjava/java/lang/natVMClassLoader.cc
@@ -23,13 +23,17 @@ details. */
#include <java/lang/VMClassLoader.h>
#include <java/lang/VMCompiler.h>
-#include <gnu/gcj/runtime/VMClassLoader.h>
+#include <gnu/gcj/runtime/ExtensionClassLoader.h>
#include <gnu/gcj/runtime/SystemClassLoader.h>
+#include <gnu/gcj/runtime/BootClassLoader.h>
#include <java/lang/ClassLoader.h>
#include <java/lang/Class.h>
#include <java/lang/Throwable.h>
#include <java/security/ProtectionDomain.h>
#include <java/lang/ClassFormatError.h>
+#include <java/lang/StringBuffer.h>
+#include <java/lang/Runtime.h>
+#include <java/util/HashSet.h>
void
java::lang::VMClassLoader::resolveClass (jclass klass)
@@ -66,9 +70,9 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
// until we're done loading.
JvSynchronize sync (klass);
- // Record the defining loader. For the system class loader, we
- // record NULL.
- if (loader != java::lang::ClassLoader::getSystemClassLoader())
+ // Record the defining loader. For the bootstrap class loader,
+ // we record NULL.
+ if (loader != bootLoader)
klass->loader = loader;
if (name != 0)
@@ -109,8 +113,8 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
java::lang::ClassLoader *
java::lang::VMClassLoader::getSystemClassLoaderInternal()
{
- _Jv_InitClass (&gnu::gcj::runtime::VMClassLoader::class$);
- return gnu::gcj::runtime::VMClassLoader::system_instance;
+ _Jv_InitClass (&gnu::gcj::runtime::ExtensionClassLoader::class$);
+ return gnu::gcj::runtime::ExtensionClassLoader::system_instance;
}
jclass
@@ -119,14 +123,93 @@ java::lang::VMClassLoader::getPrimitiveClass (jchar type)
char sig[2];
sig[0] = (char) type;
sig[1] = '\0';
+ // Note: this cannot return NULL, since the input is always correct.
return _Jv_FindClassFromSignature (sig, NULL);
}
+void
+java::lang::VMClassLoader::initBootLoader(jstring libdir)
+{
+ bootLoader = new gnu::gcj::runtime::BootClassLoader(libdir);
+}
+
+jclass
+java::lang::VMClassLoader::nativeFindClass (jstring name)
+{
+ jclass klass = NULL;
+
+ if (lib_control != LIB_NEVER)
+ {
+ // Turn `gnu.pkg.quux' into `lib-gnu-pkg-quux'. Then search for
+ // a module named (eg, on Linux) `lib-gnu-pkg-quux.so', followed
+ // by `lib-gnu-pkg.so' and `lib-gnu.so'. If loading one of
+ // these causes the class to appear in the cache, then use it.
+ java::lang::StringBuffer *sb
+ = new java::lang::StringBuffer (JvNewStringLatin1("lib-"));
+ // Skip inner classes
+ jstring cn;
+ jint ci = name->indexOf('$');
+ if (ci == -1)
+ cn = name;
+ else
+ cn = name->substring (0, ci);
+ jstring so_base_name
+ = (sb->append (cn)->toString ())->replace ('.', '-');
+
+ using namespace ::java::lang;
+ Runtime *rt = Runtime::getRuntime();
+
+ _Jv_Utf8Const *name_u = NULL;
+
+ // Compare against `3' because that is the length of "lib".
+ while (! klass && so_base_name && so_base_name->length() > 3)
+ {
+ if (lib_control == LIB_CACHE)
+ {
+ // If we've already tried this name, we're done.
+ if (tried_libraries->contains(so_base_name))
+ break;
+ tried_libraries->add(so_base_name);
+ }
+
+ jboolean loaded = rt->loadLibraryInternal (so_base_name);
+
+ jint nd = so_base_name->lastIndexOf ('-');
+ if (nd == -1)
+ so_base_name = NULL;
+ else
+ so_base_name = so_base_name->substring (0, nd);
+
+ if (loaded)
+ {
+ if (name_u == NULL)
+ name_u = _Jv_makeUtf8Const (name);
+ klass = _Jv_FindClassInCache (name_u);
+ }
+ }
+ }
+
+ if (klass)
+ definePackageForNative(name);
+
+ return klass;
+}
+
jclass
java::lang::VMClassLoader::loadClass(jstring name, jboolean resolve)
{
- _Jv_Utf8Const *utf = _Jv_makeUtf8Const (name);
- jclass klass = _Jv_FindClassInCache (utf);
+ // We try the boot loader first, so that the endorsed directory
+ // overrides compiled-in classes.
+ jclass klass = NULL;
+ if (bootLoader)
+ klass = bootLoader->bootLoadClass(name);
+ if (! klass)
+ {
+ _Jv_Utf8Const *utf = _Jv_makeUtf8Const (name);
+ klass = _Jv_FindClassInCache (utf);
+ }
+ if (! klass)
+ klass = nativeFindClass(name);
if (klass)
{
// We never want to return a class without its supers linked.
diff --git a/libjava/java/lang/reflect/AccessibleObject.java b/libjava/java/lang/reflect/AccessibleObject.java
index 5b5b5f6ff52..d50f3de9dec 100644
--- a/libjava/java/lang/reflect/AccessibleObject.java
+++ b/libjava/java/lang/reflect/AccessibleObject.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.AccessibleObject
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,8 +46,8 @@ package java.lang.reflect;
* to mess with this, don't try. Fortunately, there are adequate
* security checks before you can set a reflection object as accessible.
*
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Field
* @see Constructor
* @see Method
diff --git a/libjava/java/lang/reflect/Array.java b/libjava/java/lang/reflect/Array.java
index 11b0d97e9da..5df6dbd0e8d 100644
--- a/libjava/java/lang/reflect/Array.java
+++ b/libjava/java/lang/reflect/Array.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.Array - manipulate arrays by reflection
- Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -63,8 +63,8 @@ import gnu.classpath.Configuration;
* worse if you do this and use the generic set() function.
*
* @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Per Bothner (bothner@cygnus.com)
* @see java.lang.Boolean#TYPE
* @see java.lang.Byte#TYPE
* @see java.lang.Short#TYPE
diff --git a/libjava/java/lang/reflect/Field.java b/libjava/java/lang/reflect/Field.java
index b54a103d9bc..cb852cf2fb2 100644
--- a/libjava/java/lang/reflect/Field.java
+++ b/libjava/java/lang/reflect/Field.java
@@ -23,6 +23,9 @@ public final class Field extends AccessibleObject implements Member
// Offset in bytes from the start of declaringClass's fields array.
private int offset;
+ // The Class (or primitive TYPE) of this field.
+ private Class type;
+
// This is instantiated by Class sometimes, but it uses C++ and
// avoids the Java protection check.
Field ()
@@ -136,76 +139,79 @@ public final class Field extends AccessibleObject implements Member
public void setByte (Object obj, byte b)
throws IllegalArgumentException, IllegalAccessException
{
- setByte(null, obj, b);
+ setByte(null, obj, b, true);
}
public void setShort (Object obj, short s)
throws IllegalArgumentException, IllegalAccessException
{
- setShort(null, obj, s);
+ setShort(null, obj, s, true);
}
public void setInt (Object obj, int i)
throws IllegalArgumentException, IllegalAccessException
{
- setInt(null, obj, i);
+ setInt(null, obj, i, true);
}
public void setLong (Object obj, long l)
throws IllegalArgumentException, IllegalAccessException
{
- setLong(null, obj, l);
+ setLong(null, obj, l, true);
}
public void setFloat (Object obj, float f)
throws IllegalArgumentException, IllegalAccessException
{
- setFloat(null, obj, f);
+ setFloat(null, obj, f, true);
}
public void setDouble (Object obj, double d)
throws IllegalArgumentException, IllegalAccessException
{
- setDouble(null, obj, d);
+ setDouble(null, obj, d, true);
}
public void setChar (Object obj, char c)
throws IllegalArgumentException, IllegalAccessException
{
- setChar(null, obj, c);
+ setChar(null, obj, c, true);
}
public void setBoolean (Object obj, boolean b)
throws IllegalArgumentException, IllegalAccessException
{
- setBoolean(null, obj, b);
+ setBoolean(null, obj, b, true);
}
- private native void setByte (Class caller, Object obj, byte b)
+ native void setByte (Class caller, Object obj, byte b, boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setShort (Class caller, Object obj, short s)
+ native void setShort (Class caller, Object obj, short s, boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setInt (Class caller, Object obj, int i)
+ native void setInt (Class caller, Object obj, int i, boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setLong (Class caller, Object obj, long l)
+ native void setLong (Class caller, Object obj, long l, boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setFloat (Class caller, Object obj, float f)
+ native void setFloat (Class caller, Object obj, float f, boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setDouble (Class caller, Object obj, double d)
+ native void setDouble (Class caller, Object obj, double d,
+ boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setChar (Class caller, Object obj, char c)
+ native void setChar (Class caller, Object obj, char c, boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void setBoolean (Class caller, Object obj, boolean b)
+ native void setBoolean (Class caller, Object obj, boolean b,
+ boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
- private native void set (Class caller, Object obj, Object val, Class type)
+ native void set (Class caller, Object obj, Object val, Class type,
+ boolean checkFinal)
throws IllegalArgumentException, IllegalAccessException;
public void set (Object object, Object value)
@@ -219,23 +225,23 @@ public final class Field extends AccessibleObject implements Member
{
Class type = getType();
if (! type.isPrimitive())
- set(caller, object, value, type);
+ set(caller, object, value, type, true);
else if (value instanceof Byte)
- setByte(caller, object, ((Byte) value).byteValue());
+ setByte(caller, object, ((Byte) value).byteValue(), true);
else if (value instanceof Short)
- setShort (caller, object, ((Short) value).shortValue());
+ setShort (caller, object, ((Short) value).shortValue(), true);
else if (value instanceof Integer)
- setInt(caller, object, ((Integer) value).intValue());
+ setInt(caller, object, ((Integer) value).intValue(), true);
else if (value instanceof Long)
- setLong(caller, object, ((Long) value).longValue());
+ setLong(caller, object, ((Long) value).longValue(), true);
else if (value instanceof Float)
- setFloat(caller, object, ((Float) value).floatValue());
+ setFloat(caller, object, ((Float) value).floatValue(), true);
else if (value instanceof Double)
- setDouble(caller, object, ((Double) value).doubleValue());
+ setDouble(caller, object, ((Double) value).doubleValue(), true);
else if (value instanceof Character)
- setChar(caller, object, ((Character) value).charValue());
+ setChar(caller, object, ((Character) value).charValue(), true);
else if (value instanceof Boolean)
- setBoolean(caller, object, ((Boolean) value).booleanValue());
+ setBoolean(caller, object, ((Boolean) value).booleanValue(), true);
else
throw new IllegalArgumentException();
}
diff --git a/libjava/java/lang/reflect/InvocationTargetException.java b/libjava/java/lang/reflect/InvocationTargetException.java
index 904cc631324..2593921a3e6 100644
--- a/libjava/java/lang/reflect/InvocationTargetException.java
+++ b/libjava/java/lang/reflect/InvocationTargetException.java
@@ -1,5 +1,5 @@
/* InvocationTargetException.java -- Wrapper exception for reflection
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,8 +45,8 @@ package java.lang.reflect;
* exceptions, but <code>getTargetException()</code> still works.
*
* @author John Keiser
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Method#invoke(Object,Object[])
* @see Constructor#newInstance(Object[])
* @since 1.1
diff --git a/libjava/java/lang/reflect/Member.java b/libjava/java/lang/reflect/Member.java
index 983d45230ec..ef980d8726d 100644
--- a/libjava/java/lang/reflect/Member.java
+++ b/libjava/java/lang/reflect/Member.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.Member - common query methods in reflection
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,8 +44,8 @@ package java.lang.reflect;
* class, name or modifiers of the member with this interface.
*
* @author John Keiser
- * @author Per Bothner <bothner@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Per Bothner (bothner@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Class
* @see Field
* @see Method
diff --git a/libjava/java/lang/reflect/Modifier.java b/libjava/java/lang/reflect/Modifier.java
index 8171a88feb5..3b3baa6722e 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, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,8 +50,8 @@ package java.lang.reflect;
* Sun does it, but I'm willing to bet money that it is.
*
* @author John Keiser
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Member#getModifiers()
* @see Method#getModifiers()
* @see Field#getModifiers()
diff --git a/libjava/java/lang/reflect/Proxy.java b/libjava/java/lang/reflect/Proxy.java
index 8aee02fb47f..3f13254fdc3 100644
--- a/libjava/java/lang/reflect/Proxy.java
+++ b/libjava/java/lang/reflect/Proxy.java
@@ -1,5 +1,5 @@
/* Proxy.java -- build a proxy class that implements reflected interfaces
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -459,7 +459,7 @@ public class Proxy implements Serializable
* Helper class for mapping unique ClassLoader and interface combinations
* to proxy classes.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class ProxyType
{
@@ -565,7 +565,7 @@ public class Proxy implements Serializable
* without worrying about return type, declaring class, or throws clause,
* and which reduces the maximally common throws clause between two methods
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class ProxySignature
{
@@ -718,7 +718,7 @@ public class Proxy implements Serializable
* A flat representation of all data needed to generate bytecode/instantiate
* a proxy class. This is basically a struct.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class ProxyData
{
@@ -871,7 +871,7 @@ public class Proxy implements Serializable
* this code is not loaded in memory if the VM has a native
* implementation instead.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class ClassFactory
{
@@ -1347,7 +1347,7 @@ public class Proxy implements Serializable
return clazz;
}
- catch (Throwable e)
+ catch (Exception e)
{
// assert false;
throw (Error) new InternalError("Unexpected: " + e).initCause(e);
diff --git a/libjava/java/lang/reflect/ReflectPermission.java b/libjava/java/lang/reflect/ReflectPermission.java
index 400ca25afcc..26fd0fc4a7c 100644
--- a/libjava/java/lang/reflect/ReflectPermission.java
+++ b/libjava/java/lang/reflect/ReflectPermission.java
@@ -1,5 +1,5 @@
/* ReflectPermission.java - named permission for reflaction
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,8 +66,8 @@ import java.security.BasicPermission;
* </tr>
* </table>
*
- * @author Tom Tromey <tromey@redhat.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@redhat.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/lang/reflect/UndeclaredThrowableException.java b/libjava/java/lang/reflect/UndeclaredThrowableException.java
index d9596922beb..2e26e598859 100644
--- a/libjava/java/lang/reflect/UndeclaredThrowableException.java
+++ b/libjava/java/lang/reflect/UndeclaredThrowableException.java
@@ -1,6 +1,6 @@
/* UndeclaredThrowableException.java -- wraps an undeclared checked exception
thrown by a Proxy invocation handler
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ package java.lang.reflect;
* exception, never {@link Error} or {@link RuntimeException},
* which are unchecked.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Proxy
* @see InvocationHandler
* @since 1.3
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc
index 7eb032227ab..9a8107b795d 100644
--- a/libjava/java/lang/reflect/natField.cc
+++ b/libjava/java/lang/reflect/natField.cc
@@ -45,14 +45,19 @@ java::lang::reflect::Field::getName ()
jclass
java::lang::reflect::Field::getType ()
{
- jfieldID fld = _Jv_FromReflectedField (this);
- JvSynchronize sync (declaringClass);
- _Jv_Linker::resolve_field (fld, declaringClass->getClassLoaderInternal ());
- return fld->type;
+ if (type == NULL)
+ {
+ jfieldID fld = _Jv_FromReflectedField (this);
+ JvSynchronize sync (declaringClass);
+ _Jv_Linker::resolve_field (fld, declaringClass->getClassLoaderInternal ());
+ type = fld->type;
+ }
+ return type;
}
static void*
-getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
+getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj,
+ jboolean checkFinal)
{
// FIXME: we know CALLER is NULL here. At one point we planned to
// have the compiler insert the caller as a hidden argument in some
@@ -63,6 +68,12 @@ getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
jfieldID fld = _Jv_FromReflectedField (field);
_Jv_ushort flags = fld->getModifiers();
+
+ // Setting a final field is usually not allowed.
+ if (checkFinal
+ && field->getModifiers() & java::lang::reflect::Modifier::FINAL)
+ throw new java::lang::IllegalAccessException(JvNewStringUTF
+ ("Field is final"));
// Check accessibility, if required.
if (! (Modifier::isPublic (flags) || field->isAccessible()))
@@ -180,56 +191,56 @@ getDouble (jclass cls, void* addr)
jboolean
java::lang::reflect::Field::getBoolean (jclass caller, jobject obj)
{
- return ::getBoolean (this->getType(), getAddr (this, caller, obj));
+ return ::getBoolean (this->getType(), getAddr (this, caller, obj, false));
}
jchar
java::lang::reflect::Field::getChar (jclass caller, jobject obj)
{
- return ::getChar (this->getType(), getAddr (this, caller, obj));
+ return ::getChar (this->getType(), getAddr (this, caller, obj, false));
}
jbyte
java::lang::reflect::Field::getByte (jclass caller, jobject obj)
{
- return ::getByte (this->getType(), getAddr (this, caller, obj));
+ return ::getByte (this->getType(), getAddr (this, caller, obj, false));
}
jshort
java::lang::reflect::Field::getShort (jclass caller, jobject obj)
{
- return ::getShort (this->getType(), getAddr (this, caller, obj));
+ return ::getShort (this->getType(), getAddr (this, caller, obj, false));
}
jint
java::lang::reflect::Field::getInt (jclass caller, jobject obj)
{
- return ::getInt (this->getType(), getAddr (this, caller, obj));
+ return ::getInt (this->getType(), getAddr (this, caller, obj, false));
}
jlong
java::lang::reflect::Field::getLong (jclass caller, jobject obj)
{
- return ::getLong (this->getType(), getAddr (this, caller, obj));
+ return ::getLong (this->getType(), getAddr (this, caller, obj, false));
}
jfloat
java::lang::reflect::Field::getFloat (jclass caller, jobject obj)
{
- return ::getFloat (this->getType(), getAddr (this, caller, obj));
+ return ::getFloat (this->getType(), getAddr (this, caller, obj, false));
}
jdouble
java::lang::reflect::Field::getDouble (jclass caller, jobject obj)
{
- return ::getDouble (this->getType(), getAddr (this, caller, obj));
+ return ::getDouble (this->getType(), getAddr (this, caller, obj, false));
}
jobject
java::lang::reflect::Field::get (jclass caller, jobject obj)
{
jclass type = this->getType();
- void* addr = getAddr (this, caller, obj);
+ void* addr = getAddr (this, caller, obj, false);
if (! type->isPrimitive ())
return * (jobject*) addr;
if (type == JvPrimClass (double))
@@ -257,16 +268,6 @@ java::lang::reflect::Field::get (jclass caller, jobject obj)
throw new java::lang::IllegalArgumentException;
}
-static void*
-setAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
-{
- void *addr = getAddr(field, caller, obj);
- if (!field->isAccessible()
- && field->getModifiers() & java::lang::reflect::Modifier::FINAL)
- throw new java::lang::IllegalAccessException();
- return addr;
-}
-
static void
setBoolean (jclass type, void *addr, jboolean value)
{
@@ -378,57 +379,66 @@ setDouble (jclass type, void *addr, jdouble value)
}
void
-java::lang::reflect::Field::setBoolean (jclass caller, jobject obj, jboolean b)
+java::lang::reflect::Field::setBoolean (jclass caller, jobject obj, jboolean b,
+ jboolean checkFinal)
{
- ::setBoolean (this->getType(), setAddr (this, caller, obj), b);
+ ::setBoolean (this->getType(), getAddr (this, caller, obj, checkFinal), b);
}
void
-java::lang::reflect::Field::setChar (jclass caller, jobject obj, jchar c)
+java::lang::reflect::Field::setChar (jclass caller, jobject obj, jchar c,
+ jboolean checkFinal)
{
- ::setChar (this->getType(), setAddr (this, caller, obj), c);
+ ::setChar (this->getType(), getAddr (this, caller, obj, checkFinal), c);
}
void
-java::lang::reflect::Field::setByte (jclass caller, jobject obj, jbyte b)
+java::lang::reflect::Field::setByte (jclass caller, jobject obj, jbyte b,
+ jboolean checkFinal)
{
- ::setByte (this->getType(), setAddr (this, caller, obj), b);
+ ::setByte (this->getType(), getAddr (this, caller, obj, checkFinal), b);
}
void
-java::lang::reflect::Field::setShort (jclass caller, jobject obj, jshort s)
+java::lang::reflect::Field::setShort (jclass caller, jobject obj, jshort s,
+ jboolean checkFinal)
{
- ::setShort (this->getType(), setAddr (this, caller, obj), s);
+ ::setShort (this->getType(), getAddr (this, caller, obj, checkFinal), s);
}
void
-java::lang::reflect::Field::setInt (jclass caller, jobject obj, jint i)
+java::lang::reflect::Field::setInt (jclass caller, jobject obj, jint i,
+ jboolean checkFinal)
{
- ::setInt (this->getType(), setAddr (this, caller, obj), i);
+ ::setInt (this->getType(), getAddr (this, caller, obj, checkFinal), i);
}
void
-java::lang::reflect::Field::setLong (jclass caller, jobject obj, jlong l)
+java::lang::reflect::Field::setLong (jclass caller, jobject obj, jlong l,
+ jboolean checkFinal)
{
- ::setLong (this->getType(), setAddr (this, caller, obj), l);
+ ::setLong (this->getType(), getAddr (this, caller, obj, checkFinal), l);
}
+
void
-java::lang::reflect::Field::setFloat (jclass caller, jobject obj, jfloat f)
+java::lang::reflect::Field::setFloat (jclass caller, jobject obj, jfloat f,
+ jboolean checkFinal)
{
- ::setFloat (this->getType(), setAddr (this, caller, obj), f);
+ ::setFloat (this->getType(), getAddr (this, caller, obj, checkFinal), f);
}
void
-java::lang::reflect::Field::setDouble (jclass caller, jobject obj, jdouble d)
+java::lang::reflect::Field::setDouble (jclass caller, jobject obj, jdouble d,
+ jboolean checkFinal)
{
- ::setDouble (this->getType(), setAddr (this, caller, obj), d);
+ ::setDouble (this->getType(), getAddr (this, caller, obj, checkFinal), d);
}
void
java::lang::reflect::Field::set (jclass caller, jobject object, jobject value,
- jclass type)
+ jclass type, jboolean checkFinal)
{
- void* addr = setAddr (this, caller, object);
+ void* addr = getAddr (this, caller, object, checkFinal);
if (value != NULL && ! _Jv_IsInstanceOf (value, type))
throw new java::lang::IllegalArgumentException;
* (jobject*) addr = value;
diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc
index b4b3a7a9b06..27c26e19ac7 100644
--- a/libjava/java/lang/reflect/natMethod.cc
+++ b/libjava/java/lang/reflect/natMethod.cc
@@ -1,6 +1,6 @@
// natMethod.cc - Native code for Method class.
-/* Copyright (C) 1998, 1999, 2000, 2001 , 2002, 2003, 2004 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001 , 2002, 2003, 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -496,7 +496,7 @@ _Jv_CallAnyMethodA (jobject obj,
|| concrete_meth->ncode == NULL
|| Modifier::isAbstract(concrete_meth->accflags))
throw new java::lang::IncompatibleClassChangeError
- (_Jv_GetMethodString (vtable->clas, meth->name));
+ (_Jv_GetMethodString (vtable->clas, meth));
ncode = concrete_meth->ncode;
}
else
diff --git a/libjava/java/math/BigInteger.java b/libjava/java/math/BigInteger.java
index 3a822aa81c6..df948a3ecce 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, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,10 +50,10 @@ import java.util.Random;
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998) and
* "Applied Cryptography, Second Edition" by Bruce Schneier (Wiley, 1996).
*
- * Based primarily on IntNum.java BitOps.java by Per Bothner <per@bothner.com>
+ * Based primarily on IntNum.java BitOps.java by Per Bothner (per@bothner.com)
* (found in Kawa 1.6.62).
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @date December 20, 1999.
* @status believed complete and correct.
*/
diff --git a/libjava/java/net/NetworkInterface.java b/libjava/java/net/NetworkInterface.java
index dea4e3b444b..2b4da7392e6 100644
--- a/libjava/java/net/NetworkInterface.java
+++ b/libjava/java/net/NetworkInterface.java
@@ -1,5 +1,5 @@
/* NetworkInterface.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -212,7 +212,7 @@ public final class NetworkInterface
*
* @param obj The object to compare with
*
- * @return <code>true</code> if equal, <code>false<code> otherwise
+ * @return <code>true</code> if equal, <code>false</code> otherwise
*/
public boolean equals(Object obj)
{
diff --git a/libjava/java/net/URL.java b/libjava/java/net/URL.java
index 96f97991280..576e2d3e55f 100644
--- a/libjava/java/net/URL.java
+++ b/libjava/java/net/URL.java
@@ -1,5 +1,5 @@
/* URL.java -- Uniform Resource Locator Class
- Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -125,7 +125,7 @@ import java.util.StringTokenizer;
public final class URL implements Serializable
{
private static final String DEFAULT_SEARCH_PATH =
- "gnu.java.net.protocol|gnu.inet";
+ "org.metastatic.jessie|gnu.java.net.protocol|gnu.inet";
// Cached System ClassLoader
private static ClassLoader systemClassLoader;
@@ -918,6 +918,10 @@ public final class URL implements Serializable
Class c = Class.forName(clsName, true, systemClassLoader);
ph = (URLStreamHandler) c.newInstance();
}
+ catch (ThreadDeath death)
+ {
+ throw death;
+ }
catch (Throwable t) { /* ignored */ }
}
while (ph == null && pkgPrefix.hasMoreTokens());
diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java
index 0ee2e748a3d..9593e7d0fb0 100644
--- a/libjava/java/net/URLClassLoader.java
+++ b/libjava/java/net/URLClassLoader.java
@@ -332,7 +332,7 @@ public class URLClassLoader extends SecureClassLoader
Manifest manifest;
Attributes attributes;
String classPathString;
-
+
if ((manifest = jarfile.getManifest()) != null
&& (attributes = manifest.getMainAttributes()) != null
&& ((classPathString
@@ -422,7 +422,11 @@ public class URLClassLoader extends SecureClassLoader
Certificate[] getCertificates()
{
- return entry.getCertificates();
+ // We have to get the entry from the jar file again, because the
+ // certificates will not be available until the entire entry has
+ // been read.
+ return ((JarEntry) ((JarURLLoader) loader).jarfile.getEntry(name))
+ .getCertificates();
}
URL getURL()
@@ -543,7 +547,7 @@ public class URLClassLoader extends SecureClassLoader
{
super(classloader, url, overrideURL);
helper = SharedLibHelper.findHelper(classloader, url.getFile(),
- noCertCodeSource);
+ noCertCodeSource, true);
}
Class getClass(String className)
@@ -795,6 +799,9 @@ public class URLClassLoader extends SecureClassLoader
if (newUrl == null)
return; // Silently ignore...
+ // Reset the toString() value.
+ thisString = null;
+
// Check global cache to see if there're already url loader
// for this url.
URLLoader loader = (URLLoader) urlloaders.get(newUrl);
@@ -977,9 +984,10 @@ public class URLClassLoader extends SecureClassLoader
// And finally construct the class!
SecurityManager sm = System.getSecurityManager();
+ Class result = null;
if (sm != null && securityContext != null)
{
- return (Class)AccessController.doPrivileged
+ result = (Class)AccessController.doPrivileged
(new PrivilegedAction()
{
public Object run()
@@ -991,7 +999,10 @@ public class URLClassLoader extends SecureClassLoader
}, securityContext);
}
else
- return defineClass(className, classData, 0, classData.length, source);
+ result = defineClass(className, classData, 0, classData.length, source);
+
+ super.setSigners(result, resource.getCertificates());
+ return result;
}
catch (IOException ioe)
{
@@ -1012,25 +1023,28 @@ public class URLClassLoader extends SecureClassLoader
*/
public String toString()
{
- if (thisString == null)
+ synchronized (urlloaders)
{
- StringBuffer sb = new StringBuffer();
- sb.append(this.getClass().getName());
- sb.append("{urls=[" );
- URL[] thisURLs = getURLs();
- for (int i = 0; i < thisURLs.length; i++)
+ if (thisString == null)
{
- sb.append(thisURLs[i]);
- if (i < thisURLs.length - 1)
- sb.append(',');
+ StringBuffer sb = new StringBuffer();
+ sb.append(this.getClass().getName());
+ sb.append("{urls=[" );
+ URL[] thisURLs = getURLs();
+ for (int i = 0; i < thisURLs.length; i++)
+ {
+ sb.append(thisURLs[i]);
+ if (i < thisURLs.length - 1)
+ sb.append(',');
+ }
+ sb.append(']');
+ sb.append(", parent=");
+ sb.append(getParent());
+ sb.append('}');
+ thisString = sb.toString();
}
- sb.append(']');
- sb.append(", parent=");
- sb.append(getParent());
- sb.append('}');
- thisString = sb.toString();
+ return thisString;
}
- return thisString;
}
/**
diff --git a/libjava/java/nio/ByteBufferHelper.java b/libjava/java/nio/ByteBufferHelper.java
index cbc1f110a6f..799d41c2a04 100644
--- a/libjava/java/nio/ByteBufferHelper.java
+++ b/libjava/java/nio/ByteBufferHelper.java
@@ -1,5 +1,5 @@
/* ByteBufferImpl.java --
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.nio;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
*/
final class ByteBufferHelper
{
diff --git a/libjava/java/nio/ByteBufferImpl.java b/libjava/java/nio/ByteBufferImpl.java
index 7734dbf12cd..d9f24627de0 100644
--- a/libjava/java/nio/ByteBufferImpl.java
+++ b/libjava/java/nio/ByteBufferImpl.java
@@ -1,5 +1,5 @@
/* ByteBufferImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -112,6 +112,8 @@ final class ByteBufferImpl extends ByteBuffer
public ByteBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int pos = position();
if (pos > 0)
{
@@ -120,6 +122,11 @@ final class ByteBufferImpl extends ByteBuffer
position(count);
limit(capacity());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
@@ -178,7 +185,7 @@ final class ByteBufferImpl extends ByteBuffer
}
/**
- * Absolute put method. Writes <code>value</value> to position
+ * Absolute put method. Writes <code>value</code> to position
* <code>index</code> in the buffer.
*
* @exception IndexOutOfBoundsException If index is negative or not smaller
diff --git a/libjava/java/nio/CharBufferImpl.java b/libjava/java/nio/CharBufferImpl.java
index 2ca44d94459..f9babe8287b 100644
--- a/libjava/java/nio/CharBufferImpl.java
+++ b/libjava/java/nio/CharBufferImpl.java
@@ -87,6 +87,8 @@ final class CharBufferImpl extends CharBuffer
public CharBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int copied = 0;
while (remaining () > 0)
@@ -96,6 +98,7 @@ final class CharBufferImpl extends CharBuffer
}
position (copied);
+ limit(capacity());
return this;
}
diff --git a/libjava/java/nio/CharViewBufferImpl.java b/libjava/java/nio/CharViewBufferImpl.java
index 2701983ead5..25a2cf7972a 100644
--- a/libjava/java/nio/CharViewBufferImpl.java
+++ b/libjava/java/nio/CharViewBufferImpl.java
@@ -122,6 +122,11 @@ class CharViewBufferImpl extends CharBuffer
position (count);
limit (capacity ());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/DirectByteBufferImpl.java b/libjava/java/nio/DirectByteBufferImpl.java
index c272bacbf72..a0599c722a9 100644
--- a/libjava/java/nio/DirectByteBufferImpl.java
+++ b/libjava/java/nio/DirectByteBufferImpl.java
@@ -42,21 +42,22 @@ import gnu.gcj.RawData;
abstract class DirectByteBufferImpl extends ByteBuffer
{
- /** The owner is used to keep alive the object that actually owns the
- * memory. There are three possibilities:
- * 1) owner == this: We allocated the memory and we should free it,
- * but *only* in finalize (if we've been sliced
- * other objects will also have access to the
- * memory).
- * 2) owner == null: The byte buffer was created thru
- * JNI.NewDirectByteBuffer. The JNI code is
- * responsible for freeing the memory.
- * 3) owner == some other object: The other object allocated the
- * memory and should free it.
- */
+ /**
+ * The owner is used to keep alive the object that actually owns the
+ * memory. There are three possibilities:
+ * 1) owner == this: We allocated the memory and we should free it,
+ * but *only* in finalize (if we've been sliced
+ * other objects will also have access to the
+ * memory).
+ * 2) owner == null: The byte buffer was created thru
+ * JNI.NewDirectByteBuffer. The JNI code is
+ * responsible for freeing the memory.
+ * 3) owner == some other object: The other object allocated the
+ * memory and should free it.
+ */
private final Object owner;
- final static class ReadOnly extends DirectByteBufferImpl
+ static final class ReadOnly extends DirectByteBufferImpl
{
ReadOnly(Object owner, RawData address,
int capacity, int limit,
@@ -81,7 +82,7 @@ abstract class DirectByteBufferImpl extends ByteBuffer
}
}
- final static class ReadWrite extends DirectByteBufferImpl
+ static final class ReadWrite extends DirectByteBufferImpl
{
ReadWrite(int capacity)
{
@@ -116,7 +117,7 @@ abstract class DirectByteBufferImpl extends ByteBuffer
DirectByteBufferImpl(RawData address, int capacity)
{
super(capacity, capacity, 0, -1);
- this.owner = this;
+ this.owner = null;
this.address = address;
}
@@ -197,6 +198,8 @@ abstract class DirectByteBufferImpl extends ByteBuffer
public ByteBuffer compact()
{
+ checkIfReadOnly();
+ mark = -1;
int pos = position();
if (pos > 0)
{
@@ -205,6 +208,11 @@ abstract class DirectByteBufferImpl extends ByteBuffer
position(count);
limit(capacity());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/DoubleBufferImpl.java b/libjava/java/nio/DoubleBufferImpl.java
index 504ee8d61b0..bad883c7d6c 100644
--- a/libjava/java/nio/DoubleBufferImpl.java
+++ b/libjava/java/nio/DoubleBufferImpl.java
@@ -1,5 +1,5 @@
/* DoubleBufferImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,8 @@ final class DoubleBufferImpl extends DoubleBuffer
public DoubleBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int copied = 0;
while (remaining () > 0)
@@ -89,6 +91,7 @@ final class DoubleBufferImpl extends DoubleBuffer
}
position (copied);
+ limit(capacity());
return this;
}
@@ -146,7 +149,7 @@ final class DoubleBufferImpl extends DoubleBuffer
}
/**
- * Absolute put method. Writes <code>value</value> to position
+ * Absolute put method. Writes <code>value</code> to position
* <code>index</code> in the buffer.
*
* @exception IndexOutOfBoundsException If index is negative or not smaller
diff --git a/libjava/java/nio/DoubleViewBufferImpl.java b/libjava/java/nio/DoubleViewBufferImpl.java
index 276e2757045..d47c96463f4 100644
--- a/libjava/java/nio/DoubleViewBufferImpl.java
+++ b/libjava/java/nio/DoubleViewBufferImpl.java
@@ -120,6 +120,11 @@ final class DoubleViewBufferImpl extends DoubleBuffer
position (count);
limit (capacity ());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/FloatBufferImpl.java b/libjava/java/nio/FloatBufferImpl.java
index a9eb7c1de8a..6f552cfabe3 100644
--- a/libjava/java/nio/FloatBufferImpl.java
+++ b/libjava/java/nio/FloatBufferImpl.java
@@ -1,5 +1,5 @@
/* FloatBufferImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,8 @@ final class FloatBufferImpl extends FloatBuffer
public FloatBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int copied = 0;
while (remaining () > 0)
@@ -89,6 +91,7 @@ final class FloatBufferImpl extends FloatBuffer
}
position (copied);
+ limit(capacity());
return this;
}
@@ -146,7 +149,7 @@ final class FloatBufferImpl extends FloatBuffer
}
/**
- * Absolute put method. Writes <code>value</value> to position
+ * Absolute put method. Writes <code>value</code> to position
* <code>index</code> in the buffer.
*
* @exception IndexOutOfBoundsException If index is negative or not smaller
diff --git a/libjava/java/nio/FloatViewBufferImpl.java b/libjava/java/nio/FloatViewBufferImpl.java
index 3dd0736fb49..5d074b5bed3 100644
--- a/libjava/java/nio/FloatViewBufferImpl.java
+++ b/libjava/java/nio/FloatViewBufferImpl.java
@@ -120,6 +120,11 @@ final class FloatViewBufferImpl extends FloatBuffer
position (count);
limit (capacity ());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/IntBufferImpl.java b/libjava/java/nio/IntBufferImpl.java
index f68dd92fa04..6b22d40fb21 100644
--- a/libjava/java/nio/IntBufferImpl.java
+++ b/libjava/java/nio/IntBufferImpl.java
@@ -1,5 +1,5 @@
/* IntBufferImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,8 @@ final class IntBufferImpl extends IntBuffer
public IntBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int copied = 0;
while (remaining () > 0)
@@ -89,6 +91,7 @@ final class IntBufferImpl extends IntBuffer
}
position (copied);
+ limit(capacity());
return this;
}
@@ -146,7 +149,7 @@ final class IntBufferImpl extends IntBuffer
}
/**
- * Absolute put method. Writes <code>value</value> to position
+ * Absolute put method. Writes <code>value</code> to position
* <code>index</code> in the buffer.
*
* @exception IndexOutOfBoundsException If index is negative or not smaller
diff --git a/libjava/java/nio/IntViewBufferImpl.java b/libjava/java/nio/IntViewBufferImpl.java
index ff8b27be1a4..77b04a8c3c0 100644
--- a/libjava/java/nio/IntViewBufferImpl.java
+++ b/libjava/java/nio/IntViewBufferImpl.java
@@ -120,6 +120,11 @@ final class IntViewBufferImpl extends IntBuffer
position (count);
limit (capacity ());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/LongBufferImpl.java b/libjava/java/nio/LongBufferImpl.java
index df720eec62c..e82f7749cd5 100644
--- a/libjava/java/nio/LongBufferImpl.java
+++ b/libjava/java/nio/LongBufferImpl.java
@@ -1,5 +1,5 @@
/* LongBufferImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,8 @@ final class LongBufferImpl extends LongBuffer
public LongBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int copied = 0;
while (remaining () > 0)
@@ -89,6 +91,7 @@ final class LongBufferImpl extends LongBuffer
}
position (copied);
+ limit(capacity());
return this;
}
@@ -146,7 +149,7 @@ final class LongBufferImpl extends LongBuffer
}
/**
- * Absolute put method. Writes <code>value</value> to position
+ * Absolute put method. Writes <code>value</code> to position
* <code>index</code> in the buffer.
*
* @exception IndexOutOfBoundsException If index is negative or not smaller
diff --git a/libjava/java/nio/LongViewBufferImpl.java b/libjava/java/nio/LongViewBufferImpl.java
index bfa64d0ad9a..e2054757871 100644
--- a/libjava/java/nio/LongViewBufferImpl.java
+++ b/libjava/java/nio/LongViewBufferImpl.java
@@ -120,6 +120,11 @@ final class LongViewBufferImpl extends LongBuffer
position (count);
limit (capacity ());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/MappedByteBufferImpl.java b/libjava/java/nio/MappedByteBufferImpl.java
index 63e0225bc51..fdb64c5bb0f 100644
--- a/libjava/java/nio/MappedByteBufferImpl.java
+++ b/libjava/java/nio/MappedByteBufferImpl.java
@@ -117,6 +117,8 @@ final class MappedByteBufferImpl extends MappedByteBuffer
public ByteBuffer compact()
{
+ checkIfReadOnly();
+ mark = -1;
int pos = position();
if (pos > 0)
{
@@ -126,6 +128,11 @@ final class MappedByteBufferImpl extends MappedByteBuffer
position(count);
limit(capacity());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/ShortBufferImpl.java b/libjava/java/nio/ShortBufferImpl.java
index 28f6efbd804..05424322b27 100644
--- a/libjava/java/nio/ShortBufferImpl.java
+++ b/libjava/java/nio/ShortBufferImpl.java
@@ -1,5 +1,5 @@
/* ShortBufferImpl.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,8 @@ final class ShortBufferImpl extends ShortBuffer
public ShortBuffer compact ()
{
+ checkIfReadOnly();
+ mark = -1;
int copied = 0;
while (remaining () > 0)
@@ -89,6 +91,7 @@ final class ShortBufferImpl extends ShortBuffer
}
position (copied);
+ limit(capacity());
return this;
}
@@ -146,7 +149,7 @@ final class ShortBufferImpl extends ShortBuffer
}
/**
- * Absolute put method. Writes <code>value</value> to position
+ * Absolute put method. Writes <code>value</code> to position
* <code>index</code> in the buffer.
*
* @exception IndexOutOfBoundsException If index is negative or not smaller
diff --git a/libjava/java/nio/ShortViewBufferImpl.java b/libjava/java/nio/ShortViewBufferImpl.java
index acd6c233d07..f884ed54244 100644
--- a/libjava/java/nio/ShortViewBufferImpl.java
+++ b/libjava/java/nio/ShortViewBufferImpl.java
@@ -120,6 +120,11 @@ final class ShortViewBufferImpl extends ShortBuffer
position (count);
limit (capacity ());
}
+ else
+ {
+ position(limit());
+ limit(capacity());
+ }
return this;
}
diff --git a/libjava/java/nio/channels/Channel.java b/libjava/java/nio/channels/Channel.java
index 8e73f87f88f..5912695d053 100644
--- a/libjava/java/nio/channels/Channel.java
+++ b/libjava/java/nio/channels/Channel.java
@@ -1,5 +1,5 @@
/* Channel.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ public interface Channel
* Tells whether this channel is open or not
*
* @return <code>true</code>if channel is open,
- * </code>false</code> otherwise
+ * <code>false</code> otherwise
*/
boolean isOpen();
diff --git a/libjava/java/nio/channels/Channels.java b/libjava/java/nio/channels/Channels.java
index 3e5316efbe8..1da5d13193e 100644
--- a/libjava/java/nio/channels/Channels.java
+++ b/libjava/java/nio/channels/Channels.java
@@ -1,5 +1,5 @@
/* Channels.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,10 +35,12 @@ 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 gnu.java.nio.ChannelInputStream;
import gnu.java.nio.ChannelOutputStream;
+import gnu.java.nio.ChannelReader;
import gnu.java.nio.InputStreamChannel;
import gnu.java.nio.OutputStreamChannel;
import gnu.java.nio.channels.FileChannelImpl;
@@ -62,7 +64,10 @@ public final class Channels
/**
* This class isn't intended to be instantiated.
*/
- private Channels() {}
+ private Channels()
+ {
+ // Do nothing here.
+ }
/**
* Constructs a stream that reads bytes from the given channel.
@@ -111,7 +116,7 @@ public final class Channels
public static Reader newReader(ReadableByteChannel ch, CharsetDecoder dec,
int minBufferCap)
{
- throw new Error("not implemented");
+ return new ChannelReader(ch, dec, minBufferCap);
}
/**
@@ -133,6 +138,7 @@ public final class Channels
public static Writer newWriter(WritableByteChannel ch, CharsetEncoder enc,
int minBufferCap)
{
+ // FIXME: implement java.nio.channels.Channel.newWriter(WritableByteChannel, CharsetEncoder, int)
throw new Error("not implemented");
}
diff --git a/libjava/java/nio/channels/IllegalBlockingModeException.java b/libjava/java/nio/channels/IllegalBlockingModeException.java
index 5b70c1f5814..e6a3a2c29df 100644
--- a/libjava/java/nio/channels/IllegalBlockingModeException.java
+++ b/libjava/java/nio/channels/IllegalBlockingModeException.java
@@ -1,5 +1,5 @@
/* IllegalBlockingModeException.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ package java.nio.channels;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
* @since 1.4
*
* Written using JDK 1.4.1 Online API from Sun
diff --git a/libjava/java/nio/charset/Charset.java b/libjava/java/nio/charset/Charset.java
index 5bb78f63ca9..c7672c1c3df 100644
--- a/libjava/java/nio/charset/Charset.java
+++ b/libjava/java/nio/charset/Charset.java
@@ -117,9 +117,24 @@ public abstract class Charset implements Comparable
{
return charsetForName (charsetName) != null;
}
-
+
+ /**
+ * Returns the Charset instance for the charset of the given name.
+ *
+ * @param charsetName
+ * @return
+ * @throws UnsupportedCharsetException if this VM does not support
+ * the charset of the given name.
+ * @throws IllegalCharsetNameException if the given charset name is
+ * legal.
+ * @throws IllegalArgumentException if <code>charsetName</code> is null.
+ */
public static Charset forName (String charsetName)
{
+ // Throws IllegalArgumentException as the JDK does.
+ if(charsetName == null)
+ throw new IllegalArgumentException("Charset name must not be null.");
+
Charset cs = charsetForName (charsetName);
if (cs == null)
throw new UnsupportedCharsetException (charsetName);
@@ -132,19 +147,19 @@ public abstract class Charset implements Comparable
* Retrieves a charset for the given charset name.
*
* @return A charset object for the charset with the specified name, or
- * <code>null</code> if no such charset exists.
+ * <code>null</code> if no such charset exists.
*
* @throws IllegalCharsetNameException if the name is illegal
*/
- private static Charset charsetForName (String charsetName)
+ private static Charset charsetForName(String charsetName)
{
checkName (charsetName);
return provider ().charsetForName (charsetName);
}
- public static SortedMap availableCharsets ()
+ public static SortedMap availableCharsets()
{
- TreeMap charsets = new TreeMap (String.CASE_INSENSITIVE_ORDER);
+ TreeMap charsets = new TreeMap(String.CASE_INSENSITIVE_ORDER);
for (Iterator i = provider ().charsets (); i.hasNext (); )
{
@@ -152,15 +167,15 @@ public abstract class Charset implements Comparable
charsets.put (cs.name (), cs);
}
- return Collections.unmodifiableSortedMap (charsets);
+ return Collections.unmodifiableSortedMap(charsets);
}
// XXX: we need to support multiple providers, reading them from
// java.nio.charset.spi.CharsetProvider in the resource directory
// META-INF/services
- private static CharsetProvider provider ()
+ private static CharsetProvider provider()
{
- return Provider.provider ();
+ return Provider.provider();
}
public final String name ()
diff --git a/libjava/java/nio/charset/spi/CharsetProvider.java b/libjava/java/nio/charset/spi/CharsetProvider.java
index 1af7a8ef314..3cbc14b991c 100644
--- a/libjava/java/nio/charset/spi/CharsetProvider.java
+++ b/libjava/java/nio/charset/spi/CharsetProvider.java
@@ -52,7 +52,7 @@ import java.util.Iterator;
* ignored, and '#' starts comments. Duplicates are ignored. The
* implementations must be accessible to the classloader that requests them.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Charset
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/rmi/server/RemoteObject.java b/libjava/java/rmi/server/RemoteObject.java
index 1bc7648c8fc..6dca07f8e1a 100644
--- a/libjava/java/rmi/server/RemoteObject.java
+++ b/libjava/java/rmi/server/RemoteObject.java
@@ -45,14 +45,17 @@ import java.lang.reflect.Constructor;
import java.rmi.NoSuchObjectException;
import java.rmi.Remote;
import java.rmi.UnmarshalException;
+import java.util.WeakHashMap;
public abstract class RemoteObject
implements Remote, Serializable {
-public static final long serialVersionUID = -3215090123894869218l;
+private static final long serialVersionUID = -3215090123894869218l;
protected transient RemoteRef ref;
+private static final WeakHashMap stubs = new WeakHashMap();
+
protected RemoteObject() {
this(null);
}
@@ -65,21 +68,24 @@ public RemoteRef getRef() {
return (ref);
}
+synchronized static void addStub(Remote obj, Remote stub)
+{
+ stubs.put(obj, stub);
+}
+
+synchronized static void deleteStub(Remote obj)
+{
+ stubs.remove(obj);
+}
+
public static Remote toStub(Remote obj) throws NoSuchObjectException
{
- Class cls = obj.getClass();
- String classname = cls.getName();
- ClassLoader cl = cls.getClassLoader();
- try
- {
- Class scls = cl.loadClass(classname + "_Stub");
- // JDK 1.2 stubs
- Class[] stubprototype = new Class[] { RemoteRef.class };
- Constructor con = scls.getConstructor(stubprototype);
- return (Remote)(con.newInstance(new Object[]{obj}));
- }
- catch (Exception e) {}
- throw new NoSuchObjectException(obj.getClass().getName());
+ Remote stub = (Remote)stubs.get(obj);
+
+ if (stub == null)
+ throw new NoSuchObjectException(obj.getClass().getName());
+
+ return stub;
}
public int hashCode() {
diff --git a/libjava/java/rmi/server/RemoteRef.java b/libjava/java/rmi/server/RemoteRef.java
index a3f22c27a66..89cee1256b2 100644
--- a/libjava/java/rmi/server/RemoteRef.java
+++ b/libjava/java/rmi/server/RemoteRef.java
@@ -46,7 +46,7 @@ import java.rmi.RemoteException;
public interface RemoteRef extends Externalizable
{
- long serialVersionUID = 0;
+ long serialVersionUID = 3632638527362204081L;
String packagePrefix = "gnu.java.rmi.server";
diff --git a/libjava/java/rmi/server/ServerRef.java b/libjava/java/rmi/server/ServerRef.java
index a6e986750ba..906b1269889 100644
--- a/libjava/java/rmi/server/ServerRef.java
+++ b/libjava/java/rmi/server/ServerRef.java
@@ -43,7 +43,7 @@ import java.rmi.RemoteException;
public interface ServerRef extends RemoteRef
{
- long serialVersionUID = 0;
+ long serialVersionUID = -4557750989390278438L;
RemoteStub exportObject(Remote obj, Object data) throws RemoteException;
diff --git a/libjava/java/rmi/server/UID.java b/libjava/java/rmi/server/UID.java
index c6fd30e463a..d472e69c995 100644
--- a/libjava/java/rmi/server/UID.java
+++ b/libjava/java/rmi/server/UID.java
@@ -45,7 +45,7 @@ import java.io.Serializable;
public final class UID implements Serializable
{
-public static final long serialVersionUID = 1086053664494604050L;
+private static final long serialVersionUID = 1086053664494604050L;
private static final Object lock = UID.class;
private static long baseTime = System.currentTimeMillis();
diff --git a/libjava/java/rmi/server/UnicastRemoteObject.java b/libjava/java/rmi/server/UnicastRemoteObject.java
index 6e8fb253820..ed296f03341 100644
--- a/libjava/java/rmi/server/UnicastRemoteObject.java
+++ b/libjava/java/rmi/server/UnicastRemoteObject.java
@@ -98,7 +98,9 @@ public static RemoteStub exportObject(Remote obj) throws RemoteException {
{
sref = new UnicastServerRef(new ObjID (), port, ssf);
}
- return (sref.exportObject (obj));
+ Remote stub = sref.exportObject (obj);
+ addStub(obj, stub);
+ return stub;
}
/**
@@ -116,12 +118,15 @@ public static RemoteStub exportObject(Remote obj) throws RemoteException {
{
if (obj instanceof RemoteObject)
{
+ deleteStub(obj);
UnicastServerRef sref = (UnicastServerRef)((RemoteObject)obj).getRef();
return sref.unexportObject(obj, force);
}
else
- //FIX ME
- ;
+ {
+ //FIX ME
+ ;
+ }
return true;
}
diff --git a/libjava/java/security/AccessControlException.java b/libjava/java/security/AccessControlException.java
index ff8b5a93fb3..d7b1f2926a4 100644
--- a/libjava/java/security/AccessControlException.java
+++ b/libjava/java/security/AccessControlException.java
@@ -1,5 +1,5 @@
/* AccessControlException.java -- Permission is denied
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.security;
* an attempt to perform an operation. This often keeps track of the
* permission that was not granted.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see AccessController
* @status updated to 1.4
*/
diff --git a/libjava/java/security/AlgorithmParameterGenerator.java b/libjava/java/security/AlgorithmParameterGenerator.java
index cf245da5a62..ed2f344010b 100644
--- a/libjava/java/security/AlgorithmParameterGenerator.java
+++ b/libjava/java/security/AlgorithmParameterGenerator.java
@@ -174,7 +174,7 @@ public class AlgorithmParameterGenerator
Provider p = Security.getProvider(provider);
if (p == null)
- throw new NoSuchProviderException();
+ throw new NoSuchProviderException(provider);
return getInstance(algorithm, p);
}
diff --git a/libjava/java/security/AlgorithmParameters.java b/libjava/java/security/AlgorithmParameters.java
index afeb843a97e..8ccd40a317c 100644
--- a/libjava/java/security/AlgorithmParameters.java
+++ b/libjava/java/security/AlgorithmParameters.java
@@ -178,7 +178,7 @@ public class AlgorithmParameters
Provider p = Security.getProvider(provider);
if (p == null)
- throw new NoSuchProviderException();
+ throw new NoSuchProviderException(provider);
return getInstance(algorithm, p);
}
diff --git a/libjava/java/security/AllPermission.java b/libjava/java/security/AllPermission.java
index 32d0b45f57c..e7f316917c2 100644
--- a/libjava/java/security/AllPermission.java
+++ b/libjava/java/security/AllPermission.java
@@ -1,5 +1,5 @@
/* AllPermission.java -- Permission to do anything
- Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -135,64 +135,64 @@ public final class AllPermission extends Permission
{
return new AllPermissionCollection();
}
-} // class AllPermission
-
-/**
- * Implements AllPermission.newPermissionCollection, and obeys serialization
- * of JDK.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-final class AllPermissionCollection extends PermissionCollection
-{
- /**
- * Compatible with JDK 1.1+.
- */
- private static final long serialVersionUID = -4023755556366636806L;
-
- /**
- * Whether an AllPermission has been added to the collection.
- *
- * @serial if all permission is in the collection yet
- */
- private boolean all_allowed;
-
- /**
- * Add an AllPermission.
- *
- * @param perm the permission to add
- * @throws IllegalArgumentException if perm is not an AllPermission
- * @throws SecurityException if the collection is read-only
- */
- public void add(Permission perm)
- {
- if (isReadOnly())
- throw new SecurityException();
- if (! (perm instanceof AllPermission))
- throw new IllegalArgumentException();
- all_allowed = true;
- }
-
- /**
- * Returns true if this collection implies a permission.
- *
- * @param perm the permission to check
- * @return true if this collection contains an AllPermission
- */
- public boolean implies(Permission perm)
- {
- return all_allowed;
- }
/**
- * Returns an enumeration of the elements in the collection.
+ * Implements AllPermission.newPermissionCollection, and obeys serialization
+ * of JDK.
*
- * @return the elements in the collection
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
- public Enumeration elements()
+ private static final class AllPermissionCollection extends PermissionCollection
{
- return all_allowed
- ? Collections.enumeration(Collections.singleton(new AllPermission()))
- : EmptyEnumeration.getInstance();
- }
-} // class AllPermissionCollection
+ /**
+ * Compatible with JDK 1.1+.
+ */
+ private static final long serialVersionUID = -4023755556366636806L;
+
+ /**
+ * Whether an AllPermission has been added to the collection.
+ *
+ * @serial if all permission is in the collection yet
+ */
+ private boolean all_allowed;
+
+ /**
+ * Add an AllPermission.
+ *
+ * @param perm the permission to add
+ * @throws IllegalArgumentException if perm is not an AllPermission
+ * @throws SecurityException if the collection is read-only
+ */
+ public void add(Permission perm)
+ {
+ if (isReadOnly())
+ throw new SecurityException();
+ if (! (perm instanceof AllPermission))
+ throw new IllegalArgumentException();
+ all_allowed = true;
+ }
+
+ /**
+ * Returns true if this collection implies a permission.
+ *
+ * @param perm the permission to check
+ * @return true if this collection contains an AllPermission
+ */
+ public boolean implies(Permission perm)
+ {
+ return all_allowed;
+ }
+
+ /**
+ * Returns an enumeration of the elements in the collection.
+ *
+ * @return the elements in the collection
+ */
+ public Enumeration elements()
+ {
+ return all_allowed
+ ? Collections.enumeration(Collections.singleton(new AllPermission()))
+ : EmptyEnumeration.getInstance();
+ }
+ } // class AllPermissionCollection
+} // class AllPermission
diff --git a/libjava/java/security/BasicPermission.java b/libjava/java/security/BasicPermission.java
index fef0b87a8ad..741f2b02464 100644
--- a/libjava/java/security/BasicPermission.java
+++ b/libjava/java/security/BasicPermission.java
@@ -1,5 +1,5 @@
/* BasicPermission.java -- implements a simple named permission
- Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -58,8 +58,8 @@ import java.util.Hashtable;
* <p>This class ignores the action list. Subclasses can choose to implement
* actions on top of this class if desired.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Permission
* @see Permissions
* @see PermissionCollection
@@ -72,8 +72,9 @@ import java.util.Hashtable;
* @since 1.1
* @status updated to 1.4
*/
-public abstract class BasicPermission extends Permission
+public abstract class BasicPermission extends java.security.Permission
implements Serializable
+ // FIXME extends with fully qualified classname as workaround for gcj 3.3.
{
/**
* Compatible with JDK 1.1+.
@@ -197,111 +198,111 @@ public abstract class BasicPermission extends Permission
{
return new BasicPermissionCollection(getClass());
}
-} // class BasicPermission
-/**
- * Implements AllPermission.newPermissionCollection, and obeys serialization
- * of JDK.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-final class BasicPermissionCollection extends PermissionCollection
-{
/**
- * Compatible with JDK 1.1+.
- */
- private static final long serialVersionUID = 739301742472979399L;
-
- /**
- * The permissions in the collection.
+ * Implements AllPermission.newPermissionCollection, and obeys serialization
+ * of JDK.
*
- * @serial a hash mapping name to permissions, all of type permClass
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
- private final Hashtable permissions = new Hashtable();
+ private static final class BasicPermissionCollection extends PermissionCollection
+ {
+ /**
+ * Compatible with JDK 1.1+.
+ */
+ private static final long serialVersionUID = 739301742472979399L;
- /**
- * If "*" is in the collection.
- *
- * @serial true if a permission named "*" is in the collection
- */
- private boolean all_allowed;
+ /**
+ * The permissions in the collection.
+ *
+ * @serial a hash mapping name to permissions, all of type permClass
+ */
+ private final Hashtable permissions = new Hashtable();
- /**
- * The runtime class which all entries in the table must belong to.
- *
- * @serial the limiting subclass of this collection
- */
- private final Class permClass;
+ /**
+ * If "*" is in the collection.
+ *
+ * @serial true if a permission named "*" is in the collection
+ */
+ private boolean all_allowed;
- /**
- * Construct a collection over the given runtime class.
- *
- * @param c the class
- */
- BasicPermissionCollection(Class c)
- {
- permClass = c;
- }
+ /**
+ * The runtime class which all entries in the table must belong to.
+ *
+ * @serial the limiting subclass of this collection
+ */
+ private final Class permClass;
- /**
- * Add a Permission. It must be of the same type as the permission which
- * created this collection.
- *
- * @param perm the permission to add
- * @throws IllegalArgumentException if perm is not the correct type
- * @throws SecurityException if the collection is read-only
- */
- public void add(Permission perm)
- {
- if (isReadOnly())
- throw new SecurityException("readonly");
- if (! permClass.isInstance(perm))
- throw new IllegalArgumentException("Expecting instance of " + permClass);
- BasicPermission bp = (BasicPermission) perm;
- String name = bp.getName();
- if (name.equals("*"))
- all_allowed = true;
- permissions.put(name, bp);
- }
+ /**
+ * Construct a collection over the given runtime class.
+ *
+ * @param c the class
+ */
+ BasicPermissionCollection(Class c)
+ {
+ permClass = c;
+ }
- /**
- * Returns true if this collection implies the given permission.
- *
- * @param permission the permission to check
- * @return true if it is implied by this
- */
- public boolean implies(Permission permission)
- {
- if (! permClass.isInstance(permission))
- return false;
- if (all_allowed)
- return true;
- BasicPermission toImply = (BasicPermission) permission;
- String name = toImply.getName();
- if (name.equals("*"))
- return false;
- int prefixLength = name.length();
- if (name.endsWith("*"))
- prefixLength -= 2;
+ /**
+ * Add a Permission. It must be of the same type as the permission which
+ * created this collection.
+ *
+ * @param perm the permission to add
+ * @throws IllegalArgumentException if perm is not the correct type
+ * @throws SecurityException if the collection is read-only
+ */
+ public void add(Permission perm)
+ {
+ if (isReadOnly())
+ throw new SecurityException("readonly");
+ if (! permClass.isInstance(perm))
+ throw new IllegalArgumentException("Expecting instance of " + permClass);
+ BasicPermission bp = (BasicPermission) perm;
+ String name = bp.getName();
+ if (name.equals("*"))
+ all_allowed = true;
+ permissions.put(name, bp);
+ }
- while (true)
- {
- if (permissions.get(name) != null)
- return true;
- prefixLength = name.lastIndexOf('.', prefixLength);
- if (prefixLength < 0)
- return false;
- name = name.substring(0, prefixLength + 1) + '*';
- }
- }
+ /**
+ * Returns true if this collection implies the given permission.
+ *
+ * @param permission the permission to check
+ * @return true if it is implied by this
+ */
+ public boolean implies(Permission permission)
+ {
+ if (! permClass.isInstance(permission))
+ return false;
+ if (all_allowed)
+ return true;
+ BasicPermission toImply = (BasicPermission) permission;
+ String name = toImply.getName();
+ if (name.equals("*"))
+ return false;
+ int prefixLength = name.length();
+ if (name.endsWith("*"))
+ prefixLength -= 2;
- /**
- * Enumerate over the collection.
- *
- * @return an enumeration of the collection contents
- */
- public Enumeration elements()
- {
- return permissions.elements();
- }
-} // class BasicPermissionCollection
+ while (true)
+ {
+ if (permissions.get(name) != null)
+ return true;
+ prefixLength = name.lastIndexOf('.', prefixLength);
+ if (prefixLength < 0)
+ return false;
+ name = name.substring(0, prefixLength + 1) + '*';
+ }
+ }
+
+ /**
+ * Enumerate over the collection.
+ *
+ * @return an enumeration of the collection contents
+ */
+ public Enumeration elements()
+ {
+ return permissions.elements();
+ }
+ } // class BasicPermissionCollection
+} // class BasicPermission
diff --git a/libjava/java/security/DigestException.java b/libjava/java/security/DigestException.java
index f5c8d627de6..bc672420207 100644
--- a/libjava/java/security/DigestException.java
+++ b/libjava/java/security/DigestException.java
@@ -1,5 +1,5 @@
/* DigestException.java -- A generic message digest exception
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception indicates that a generic message digest exception has
* occurred.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class DigestException extends GeneralSecurityException
diff --git a/libjava/java/security/DigestInputStream.java b/libjava/java/security/DigestInputStream.java
index 2ca9d1b3956..e8d2b63fdfc 100644
--- a/libjava/java/security/DigestInputStream.java
+++ b/libjava/java/security/DigestInputStream.java
@@ -1,5 +1,5 @@
/* DigestInputStream.java --- An Input stream tied to a message digest
- Copyright (C) 1999, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import java.io.InputStream;
* in the message digest.
*
* @version 0.0
- * @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
*/
public class DigestInputStream extends FilterInputStream
{
diff --git a/libjava/java/security/DigestOutputStream.java b/libjava/java/security/DigestOutputStream.java
index caf059bf40e..d95533c97cc 100644
--- a/libjava/java/security/DigestOutputStream.java
+++ b/libjava/java/security/DigestOutputStream.java
@@ -1,5 +1,5 @@
/* DigestOutputStream.java --- An output stream tied to a message digest
- Copyright (C) 1999, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import java.io.OutputStream;
* message digest.
*
* @version 0.0
- * @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
*/
public class DigestOutputStream extends FilterOutputStream
{
diff --git a/libjava/java/security/GeneralSecurityException.java b/libjava/java/security/GeneralSecurityException.java
index d1db3c5d6fb..8a26e85cd50 100644
--- a/libjava/java/security/GeneralSecurityException.java
+++ b/libjava/java/security/GeneralSecurityException.java
@@ -1,5 +1,5 @@
/* GeneralSecurityException.java -- Common superclass of security exceptions
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.security;
* (<code>RuntimeException</code>), and <code>InvalidParamterException</code>
* (<code>IllegalArgumentException</code>).
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class GeneralSecurityException extends Exception
diff --git a/libjava/java/security/Guard.java b/libjava/java/security/Guard.java
index 2654ba70c04..8a2ab0f0f5f 100644
--- a/libjava/java/security/Guard.java
+++ b/libjava/java/security/Guard.java
@@ -1,5 +1,5 @@
/* Guard.java -- Check access to a guarded object
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This interface specifies a mechanism for querying whether or not
* access is allowed to a guarded object.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see GuardedObject
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/security/GuardedObject.java b/libjava/java/security/GuardedObject.java
index a4cdf74bd3e..5aeaf91e385 100644
--- a/libjava/java/security/GuardedObject.java
+++ b/libjava/java/security/GuardedObject.java
@@ -1,5 +1,5 @@
/* GuardedObject.java -- An object protected by a Guard
- Copyright (C) 1998, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import java.io.Serializable;
* <code>Guard</code>. If the <code>Guard</code> disallows access, an
* exception will be thrown.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.1
* @status updated to 1.4
*/
diff --git a/libjava/java/security/InvalidAlgorithmParameterException.java b/libjava/java/security/InvalidAlgorithmParameterException.java
index 40f953079be..5b2ada1bfb9 100644
--- a/libjava/java/security/InvalidAlgorithmParameterException.java
+++ b/libjava/java/security/InvalidAlgorithmParameterException.java
@@ -1,6 +1,6 @@
/* InvalidAlgorithmParameterException.java -- an invalid parameter to a
security algorithm
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
/**
* Thrown for an invalid security algorithm parameter.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/security/InvalidKeyException.java b/libjava/java/security/InvalidKeyException.java
index 373e8625a68..ce6b8e5cd54 100644
--- a/libjava/java/security/InvalidKeyException.java
+++ b/libjava/java/security/InvalidKeyException.java
@@ -40,7 +40,7 @@ package java.security;
/**
* Thrown for an invalid key.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class InvalidKeyException extends KeyException
diff --git a/libjava/java/security/InvalidParameterException.java b/libjava/java/security/InvalidParameterException.java
index 220899197fa..f54d819de81 100644
--- a/libjava/java/security/InvalidParameterException.java
+++ b/libjava/java/security/InvalidParameterException.java
@@ -41,7 +41,7 @@ package java.security;
* Thrown when an invalid parameter is passed to a method of the JCA/JCE
* engine classes.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @status updated to 1.4
*/
public class InvalidParameterException extends IllegalArgumentException
diff --git a/libjava/java/security/Key.java b/libjava/java/security/Key.java
index 195e50bb527..5e74be9da9a 100644
--- a/libjava/java/security/Key.java
+++ b/libjava/java/security/Key.java
@@ -1,5 +1,5 @@
/* Key.java -- A abstract representation of a digital key
- Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import java.io.Serializable;
* keys may be serialized. Keys are generally obtained through key generators,
* including {@link KeyFactory}.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see PublicKey
* @see PrivateKey
* @see KeyPair
diff --git a/libjava/java/security/KeyException.java b/libjava/java/security/KeyException.java
index 3b7d3886e15..8d69a569318 100644
--- a/libjava/java/security/KeyException.java
+++ b/libjava/java/security/KeyException.java
@@ -1,5 +1,5 @@
/* KeyException.java -- Thrown when there is a problem with a key
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package java.security;
/**
* This exception is thrown when there is a problem with a key.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Key
* @status updated to 1.4
*/
diff --git a/libjava/java/security/KeyFactory.java b/libjava/java/security/KeyFactory.java
index 27171f50966..02709f4c8f3 100644
--- a/libjava/java/security/KeyFactory.java
+++ b/libjava/java/security/KeyFactory.java
@@ -163,7 +163,7 @@ public class KeyFactory
Provider p = Security.getProvider(provider);
if (p == null)
- throw new NoSuchProviderException();
+ throw new NoSuchProviderException(provider);
return getInstance(algorithm, p);
}
diff --git a/libjava/java/security/KeyManagementException.java b/libjava/java/security/KeyManagementException.java
index 52c2786294f..ca642ba3422 100644
--- a/libjava/java/security/KeyManagementException.java
+++ b/libjava/java/security/KeyManagementException.java
@@ -1,5 +1,5 @@
/* KeyManagementException.java -- an exception in key management
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception is thrown whenever a problem related to the management of
* security keys is encountered.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Key
* @status updated to 1.4
*/
diff --git a/libjava/java/security/KeyStore.java b/libjava/java/security/KeyStore.java
index 99aaed3f123..f1e874786f5 100644
--- a/libjava/java/security/KeyStore.java
+++ b/libjava/java/security/KeyStore.java
@@ -164,7 +164,7 @@ public class KeyStore
Provider p = Security.getProvider(provider);
if (p == null)
- throw new NoSuchProviderException();
+ throw new NoSuchProviderException(provider);
return getInstance(type, p);
}
diff --git a/libjava/java/security/KeyStoreException.java b/libjava/java/security/KeyStoreException.java
index 369587a5984..8f45a555c52 100644
--- a/libjava/java/security/KeyStoreException.java
+++ b/libjava/java/security/KeyStoreException.java
@@ -1,5 +1,5 @@
/* KeyStoreException.java -- Indicates a problem with the key store
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package java.security;
/**
* Indicates a problem with the key store.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/security/MessageDigestSpi.java b/libjava/java/security/MessageDigestSpi.java
index f2447f17d86..036392ea928 100644
--- a/libjava/java/security/MessageDigestSpi.java
+++ b/libjava/java/security/MessageDigestSpi.java
@@ -1,5 +1,5 @@
/* MessageDigestSpi.java --- The message digest service provider interface.
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ package java.security;
@version 0.0
- @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ @author Mark Benvenuto (ivymccough@worldnet.att.net)
*/
public abstract class MessageDigestSpi
{
diff --git a/libjava/java/security/NoSuchAlgorithmException.java b/libjava/java/security/NoSuchAlgorithmException.java
index 31e00537a50..7d167dd0e8f 100644
--- a/libjava/java/security/NoSuchAlgorithmException.java
+++ b/libjava/java/security/NoSuchAlgorithmException.java
@@ -1,5 +1,5 @@
/* NoSuchAlgorithmException.java -- an algorithm was not available
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception is thrown when the requested security algorithm is
* not available
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class NoSuchAlgorithmException extends GeneralSecurityException
diff --git a/libjava/java/security/NoSuchProviderException.java b/libjava/java/security/NoSuchProviderException.java
index 546b2dc6190..e676046aefd 100644
--- a/libjava/java/security/NoSuchProviderException.java
+++ b/libjava/java/security/NoSuchProviderException.java
@@ -1,5 +1,5 @@
/* NoSuchProviderException.java -- thrown when a provider is not found
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception is thrown when the requested security provider is
* not available.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class NoSuchProviderException extends GeneralSecurityException
diff --git a/libjava/java/security/Permission.java b/libjava/java/security/Permission.java
index 58702da2c0c..4310500ca45 100644
--- a/libjava/java/security/Permission.java
+++ b/libjava/java/security/Permission.java
@@ -1,5 +1,5 @@
/* Permission.java -- The superclass for all permission objects
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ import java.io.Serializable;
* <p><code>Permission</code>'s must be immutable - do not change their
* state after creation.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Permissions
* @see PermissionCollection
* @since 1.1
diff --git a/libjava/java/security/PermissionCollection.java b/libjava/java/security/PermissionCollection.java
index 703767ed9a9..337a8fca937 100644
--- a/libjava/java/security/PermissionCollection.java
+++ b/libjava/java/security/PermissionCollection.java
@@ -1,5 +1,5 @@
/* PermissionCollection.java -- A collection of permission objects
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -67,8 +67,8 @@ import java.util.Enumeration;
* in any type of collection unless it overrides that method to create its
* own collection type.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Permission
* @see Permissions
* @since 1.1
diff --git a/libjava/java/security/Permissions.java b/libjava/java/security/Permissions.java
index d44341c947a..b603dedcf86 100644
--- a/libjava/java/security/Permissions.java
+++ b/libjava/java/security/Permissions.java
@@ -1,5 +1,5 @@
/* Permissions.java -- a collection of permission collections
- Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,8 +53,8 @@ import java.util.NoSuchElementException;
* collection type which stores its permissions in a hash table will be
* used.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.1
*/
public final class Permissions extends PermissionCollection
@@ -188,58 +188,67 @@ public final class Permissions extends PermissionCollection
}
};
}
-} // class Permissions
-
-/**
- * Implements the permission collection for all permissions without one of
- * their own, and obeys serialization of JDK.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-class PermissionsHash extends PermissionCollection
-{
- /**
- * Compatible with JDK 1.1+.
- */
- private static final long serialVersionUID = -8491988220802933440L;
-
- /**
- * Hashtable where we store permissions.
- *
- * @serial the stored permissions, both as key and value
- */
- private final Hashtable perms = new Hashtable();
-
- /**
- * Add a permission. We don't need to check for read-only, as this
- * collection is never exposed outside of Permissions, which has already
- * done that check.
- *
- * @param perm the permission to add
- */
- public void add(Permission perm)
- {
- perms.put(perm, perm);
- }
-
- /**
- * Returns true if perm is in the collection.
- *
- * @param perm the permission to check
- * @return true if it is implied
- */
- public boolean implies(Permission perm)
- {
- return perms.get(perm) != null;
- }
/**
- * Return the elements.
+ * Implements the permission collection for all permissions without one of
+ * their own, and obeys serialization of JDK.
*
- * @return the elements
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
- public Enumeration elements()
+ private static final class PermissionsHash extends PermissionCollection
{
- return perms.elements();
- }
+ /**
+ * Compatible with JDK 1.1+.
+ */
+ private static final long serialVersionUID = -8491988220802933440L;
+
+ /**
+ * Hashtable where we store permissions.
+ *
+ * @serial the stored permissions, both as key and value
+ */
+ private final Hashtable perms = new Hashtable();
+
+ /**
+ * Add a permission. We don't need to check for read-only, as this
+ * collection is never exposed outside of Permissions, which has already
+ * done that check.
+ *
+ * @param perm the permission to add
+ */
+ public void add(Permission perm)
+ {
+ perms.put(perm, perm);
+ }
+
+ /**
+ * Returns true if perm is in the collection.
+ *
+ * @param perm the permission to check
+ * @return true if it is implied
+ */
+ // FIXME: Should this method be synchronized?
+ public boolean implies(Permission perm)
+ {
+ Enumeration elements = elements();
+
+ while (elements.hasMoreElements())
+ {
+ Permission p = (Permission)elements.nextElement();
+ if (p.implies(perm))
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Return the elements.
+ *
+ * @return the elements
+ */
+ public Enumeration elements()
+ {
+ return perms.elements();
+ }
+ } // class PermissionsHash
} // class Permissions
diff --git a/libjava/java/security/Principal.java b/libjava/java/security/Principal.java
index 2ac69b2c563..69990b8f8a7 100644
--- a/libjava/java/security/Principal.java
+++ b/libjava/java/security/Principal.java
@@ -1,5 +1,5 @@
/* Principal.java -- A security entity
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.security;
* This interface models an entity (such as a user or a certificate authority)
* for the purposes of applying the Java security model.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see X509Certificate
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/security/PrivateKey.java b/libjava/java/security/PrivateKey.java
index 40b97f58b9a..c4a628c4279 100644
--- a/libjava/java/security/PrivateKey.java
+++ b/libjava/java/security/PrivateKey.java
@@ -1,5 +1,5 @@
/* PrivateKey.java -- tagging interface for all private keys
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.security;
* This interface specified no methods. In simply provides a common
* super-interface for all algorithm specific private key values.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Key
* @see PublicKey
* @see Certificate
diff --git a/libjava/java/security/PrivilegedActionException.java b/libjava/java/security/PrivilegedActionException.java
index 633a872cfe5..d699abd8766 100644
--- a/libjava/java/security/PrivilegedActionException.java
+++ b/libjava/java/security/PrivilegedActionException.java
@@ -1,5 +1,5 @@
/* PrivilegedActionException.java -- wrap an exception in a privileged action
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,8 +43,8 @@ package java.security;
* <code>AccessController.doPrivileged()</code> method. It wraps the
* actual exception thrown in the privileged code.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see PrivilegedExceptionAction
* @see AccessController#doPrivileged(PrivilegedExceptionAction)
* @see AccessController#doPrivileged(PrivilegedExceptionAction, AccessControlContext)
diff --git a/libjava/java/security/ProviderException.java b/libjava/java/security/ProviderException.java
index eac3eb064c8..5b0e86e9b8e 100644
--- a/libjava/java/security/ProviderException.java
+++ b/libjava/java/security/ProviderException.java
@@ -1,5 +1,5 @@
/* ProviderException.java -- Generic security provider runtime exception
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception indicates that a runtime problem was encounterd with
* a security provider.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class ProviderException extends RuntimeException
diff --git a/libjava/java/security/PublicKey.java b/libjava/java/security/PublicKey.java
index 81ab764615f..f2a331e6862 100644
--- a/libjava/java/security/PublicKey.java
+++ b/libjava/java/security/PublicKey.java
@@ -1,5 +1,5 @@
/* PublicKey.java -- tagging interface for all public keys
- Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This interface specified no methods. In simply provides a common
* super-interface for all algorithm specific public key values.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Key
* @see PrivateKey
* @see Certificate
diff --git a/libjava/java/security/SecureClassLoader.java b/libjava/java/security/SecureClassLoader.java
index 7546edc85e5..89b5e4effce 100644
--- a/libjava/java/security/SecureClassLoader.java
+++ b/libjava/java/security/SecureClassLoader.java
@@ -48,6 +48,8 @@ package java.security;
*/
public class SecureClassLoader extends ClassLoader
{
+ java.util.WeakHashMap protectionDomainCache = new java.util.WeakHashMap();
+
protected SecureClassLoader(ClassLoader parent)
{
super(parent);
@@ -80,11 +82,29 @@ public class SecureClassLoader extends ClassLoader
protected final Class defineClass(String name, byte[] b, int off, int len,
CodeSource cs)
{
- // FIXME: Need to cache ProtectionDomains according to 1.3 docs.
if (cs != null)
{
- ProtectionDomain protectionDomain
- = new ProtectionDomain(cs, getPermissions(cs), this, null);
+ ProtectionDomain protectionDomain;
+
+ synchronized (protectionDomainCache)
+ {
+ protectionDomain = (ProtectionDomain)protectionDomainCache.get(cs);
+ }
+
+ if (protectionDomain == null)
+ {
+ protectionDomain
+ = new ProtectionDomain(cs, getPermissions(cs), this, null);
+ synchronized (protectionDomainCache)
+ {
+ ProtectionDomain domain
+ = (ProtectionDomain)protectionDomainCache.get(cs);
+ if (domain == null)
+ protectionDomainCache.put(cs, protectionDomain);
+ else
+ protectionDomain = domain;
+ }
+ }
return super.defineClass(name, b, off, len, protectionDomain);
}
else
diff --git a/libjava/java/security/SecureRandom.java b/libjava/java/security/SecureRandom.java
index 5e410c0405c..5d200383843 100644
--- a/libjava/java/security/SecureRandom.java
+++ b/libjava/java/security/SecureRandom.java
@@ -1,5 +1,5 @@
/* SecureRandom.java --- Secure Random class implementation
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import java.util.Random;
* keys and initialization vectors to the generation of random padding
* bytes.
*
- * @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
* @author Casey Marshall
*/
public class SecureRandom extends Random
@@ -112,6 +112,10 @@ public class SecureRandom extends Random
provider = p[i];
return;
}
+ catch (ThreadDeath death)
+ {
+ throw death;
+ }
catch (Throwable t)
{
// Ignore.
@@ -214,7 +218,7 @@ public class SecureRandom extends Random
Provider p = Security.getProvider(provider);
if (p == null)
- throw new NoSuchProviderException();
+ throw new NoSuchProviderException(provider);
return getInstance(algorithm, p);
}
diff --git a/libjava/java/security/SecureRandomSpi.java b/libjava/java/security/SecureRandomSpi.java
index 6831173688f..5218a985899 100644
--- a/libjava/java/security/SecureRandomSpi.java
+++ b/libjava/java/security/SecureRandomSpi.java
@@ -1,5 +1,5 @@
/* SecureRandomSpi.java --- Secure Random Service Provider Interface
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.io.Serializable;
@since JDK 1.2
- @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ @author Mark Benvenuto (ivymccough@worldnet.att.net)
*/
public abstract class SecureRandomSpi implements Serializable
{
diff --git a/libjava/java/security/SignatureException.java b/libjava/java/security/SignatureException.java
index 8762b0683cc..daccdf09cf7 100644
--- a/libjava/java/security/SignatureException.java
+++ b/libjava/java/security/SignatureException.java
@@ -1,5 +1,5 @@
/* SignatureException.java -- Generic error in signature
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception is thrown when a problem is encountered with a
* digital signature.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class SignatureException extends GeneralSecurityException
diff --git a/libjava/java/security/SignatureSpi.java b/libjava/java/security/SignatureSpi.java
index 3b6bdbc99ab..3dd3e4f4952 100644
--- a/libjava/java/security/SignatureSpi.java
+++ b/libjava/java/security/SignatureSpi.java
@@ -49,7 +49,7 @@ import java.security.spec.AlgorithmParameterSpec;
* cryptographic service provider who wishes to supply the implementation of a
* particular signature algorithm.
*
- * @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
* @since 1.2
* @see Signature
*/
diff --git a/libjava/java/security/SignedObject.java b/libjava/java/security/SignedObject.java
index 0d9f733e70d..f7ef0d5cb44 100644
--- a/libjava/java/security/SignedObject.java
+++ b/libjava/java/security/SignedObject.java
@@ -123,7 +123,7 @@ import java.io.Serializable;
* of signatures, resembling a chain of authorization and delegation.</li>
* </ul>
*
- * @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
* @since 1.2
* @see Signature
*/
diff --git a/libjava/java/security/Signer.java b/libjava/java/security/Signer.java
index 425933a8cea..a9e20d42cab 100644
--- a/libjava/java/security/Signer.java
+++ b/libjava/java/security/Signer.java
@@ -45,7 +45,7 @@ package java.security;
* issue that should be handled by subclasses as appropriate to their intended
* use.</p>
*
- * @author Mark Benvenuto <ivymccough@worldnet.att.net>
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
* @deprecated This class is no longer used. Its functionality has been replaced
* by <code>java.security.KeyStore</code>, the <code>java.security.cert</code>
* package, and <code>java.security.Principal</code>.
diff --git a/libjava/java/security/UnrecoverableKeyException.java b/libjava/java/security/UnrecoverableKeyException.java
index 3e93153ad7d..9708625a636 100644
--- a/libjava/java/security/UnrecoverableKeyException.java
+++ b/libjava/java/security/UnrecoverableKeyException.java
@@ -1,5 +1,5 @@
/* UnrecoverableKeyException.java -- Cannot recover a key from the key store
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security;
* This exception is thrown when a key cannot be recovered from the key
* store.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/java/security/UnresolvedPermission.java b/libjava/java/security/UnresolvedPermission.java
index c96bce0cc14..c1f6f049360 100644
--- a/libjava/java/security/UnresolvedPermission.java
+++ b/libjava/java/security/UnresolvedPermission.java
@@ -1,5 +1,5 @@
/* UnresolvedPermission.java -- Placeholder for unresolved permissions
- Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -207,7 +207,7 @@ public final class UnresolvedPermission extends Permission
* Implements the permission collection for unresolved permissions, and
* obeys serialization of JDK.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
class UnresolvedPermissionCollection extends PermissionCollection
{
diff --git a/libjava/java/security/acl/AclNotFoundException.java b/libjava/java/security/acl/AclNotFoundException.java
index a843fac1761..4462ffc3493 100644
--- a/libjava/java/security/acl/AclNotFoundException.java
+++ b/libjava/java/security/acl/AclNotFoundException.java
@@ -1,5 +1,5 @@
/* AclNotFoundException.java -- thrown when an ACL is not found
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security.acl;
* This exception is thrown when a requested access control list (ACL) is
* not found.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class AclNotFoundException extends Exception
diff --git a/libjava/java/security/acl/LastOwnerException.java b/libjava/java/security/acl/LastOwnerException.java
index be2815192fb..13e13907988 100644
--- a/libjava/java/security/acl/LastOwnerException.java
+++ b/libjava/java/security/acl/LastOwnerException.java
@@ -1,5 +1,5 @@
/* LastOwnerException.java -- User attempted to delete last ACL owner
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package java.security.acl;
* This exception is thrown when an attempt is made to delete the last owner
* of an access control list (ACL)
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @see Owner#deleteOwner(java.security.Principal, java.security.Principal)
* @status updated to 1.4
*/
diff --git a/libjava/java/security/acl/NotOwnerException.java b/libjava/java/security/acl/NotOwnerException.java
index 8b2739d9cc4..7c3a6c431a7 100644
--- a/libjava/java/security/acl/NotOwnerException.java
+++ b/libjava/java/security/acl/NotOwnerException.java
@@ -1,5 +1,5 @@
/* NotOwnerException.java -- Attempt to modify an unowned ACL
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.security.acl;
* the caller to be the owner of the access control list (ACL) when the caller
* is in fact not the owner of the ACL.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
* @status updated to 1.4
*/
public class NotOwnerException extends Exception
diff --git a/libjava/java/security/cert/CertPath.java b/libjava/java/security/cert/CertPath.java
index 53f42e752de..c57bd313bc1 100644
--- a/libjava/java/security/cert/CertPath.java
+++ b/libjava/java/security/cert/CertPath.java
@@ -1,5 +1,5 @@
/* CertPath.java -- a sequence of certificates
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,7 +54,7 @@ import java.util.List;
* the path is consolidated into a {@link CertPathRep}, which preserves the
* data regardless of the underlying implementation of the path.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
@@ -63,7 +63,7 @@ public abstract class CertPath implements Serializable
/**
* The serialized representation of a path.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
protected static class CertPathRep implements Serializable
{
diff --git a/libjava/java/security/cert/CertPathBuilderException.java b/libjava/java/security/cert/CertPathBuilderException.java
index 7cfdb79e536..2db7d337c98 100644
--- a/libjava/java/security/cert/CertPathBuilderException.java
+++ b/libjava/java/security/cert/CertPathBuilderException.java
@@ -1,6 +1,6 @@
/* CertPathBuilderException.java -- wraps an exception during certificate
path building
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import java.security.GeneralSecurityException;
* Indicates a problem while using a <code>CertPathBuilder</code>, wrapping
* the lower exception. This class is not thread-safe.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see CertPathBuilder
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/security/cert/CertPathValidatorException.java b/libjava/java/security/cert/CertPathValidatorException.java
index e7b40b8d3d6..9c7ad03c925 100644
--- a/libjava/java/security/cert/CertPathValidatorException.java
+++ b/libjava/java/security/cert/CertPathValidatorException.java
@@ -1,6 +1,6 @@
/* CertPathValidatorException.java -- wraps an exception during validation
of a CertPath
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.security.GeneralSecurityException;
* it can store the path an index in that path that caused the problem. This
* class is not thread-safe.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see CertPathValidator
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/security/cert/CertStoreException.java b/libjava/java/security/cert/CertStoreException.java
index 7d7bd148e9a..d157b1dc950 100644
--- a/libjava/java/security/cert/CertStoreException.java
+++ b/libjava/java/security/cert/CertStoreException.java
@@ -1,5 +1,5 @@
/* CertStoreException.java -- wraps an exception during certificate storage
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import java.security.GeneralSecurityException;
* <code>CertStore</code>, wrapping the lower exception. This class is not
* thread-safe.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see CertStore
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/security/cert/CertificateFactory.java b/libjava/java/security/cert/CertificateFactory.java
index 31664401aea..6a9231703e4 100644
--- a/libjava/java/security/cert/CertificateFactory.java
+++ b/libjava/java/security/cert/CertificateFactory.java
@@ -138,7 +138,7 @@ public class CertificateFactory
{
Provider p = Security.getProvider(provider);
if( p == null)
- throw new NoSuchProviderException();
+ throw new NoSuchProviderException(provider);
return getInstance(type, p);
}
diff --git a/libjava/java/security/interfaces/DSAPrivateKey.java b/libjava/java/security/interfaces/DSAPrivateKey.java
index 4e6f13ddbe5..223db91e806 100644
--- a/libjava/java/security/interfaces/DSAPrivateKey.java
+++ b/libjava/java/security/interfaces/DSAPrivateKey.java
@@ -50,6 +50,11 @@ import java.security.PrivateKey;
public interface DSAPrivateKey extends DSAKey, PrivateKey
{
/**
+ * The version identifier used for serialization.
+ */
+ long serialVersionUID = 7776497482533790279L;
+
+ /**
* This method returns the value of the DSA private key
*/
BigInteger getX();
diff --git a/libjava/java/security/interfaces/DSAPublicKey.java b/libjava/java/security/interfaces/DSAPublicKey.java
index aec1c606dcd..3f8d211d295 100644
--- a/libjava/java/security/interfaces/DSAPublicKey.java
+++ b/libjava/java/security/interfaces/DSAPublicKey.java
@@ -50,6 +50,11 @@ import java.security.PublicKey;
public interface DSAPublicKey extends DSAKey, PublicKey
{
/**
+ * The version identifier used for serialization.
+ */
+ long serialVersionUID = 1234526332779022332L;
+
+ /**
* This method returns the value of the DSA public key
*/
BigInteger getY();
diff --git a/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java b/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java
index 7e115fabcd1..68a5e448877 100644
--- a/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java
+++ b/libjava/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java
@@ -54,6 +54,7 @@ public interface RSAMultiPrimePrivateCrtKey extends RSAPrivateKey
{
// Constants
// --------------------------------------------------------------------------
+ long serialVersionUID = 618058533534628008L;
// Methods
// --------------------------------------------------------------------------
diff --git a/libjava/java/security/interfaces/RSAPrivateCrtKey.java b/libjava/java/security/interfaces/RSAPrivateCrtKey.java
index 8af1bb9168e..1fb2881ed50 100644
--- a/libjava/java/security/interfaces/RSAPrivateCrtKey.java
+++ b/libjava/java/security/interfaces/RSAPrivateCrtKey.java
@@ -49,6 +49,8 @@ import java.math.BigInteger;
*/
public interface RSAPrivateCrtKey extends RSAPrivateKey
{
+ long serialVersionUID = -5682214253527700368L;
+
/**
* Returns the public exponent for this key
*
diff --git a/libjava/java/security/interfaces/RSAPrivateKey.java b/libjava/java/security/interfaces/RSAPrivateKey.java
index d287d67327a..b4e34292340 100644
--- a/libjava/java/security/interfaces/RSAPrivateKey.java
+++ b/libjava/java/security/interfaces/RSAPrivateKey.java
@@ -49,6 +49,8 @@ import java.security.PrivateKey;
*/
public interface RSAPrivateKey extends PrivateKey, RSAKey
{
+ long serialVersionUID = 5187144804936595022L;
+
/**
* Returns the private exponent value for this key
*
diff --git a/libjava/java/security/interfaces/RSAPublicKey.java b/libjava/java/security/interfaces/RSAPublicKey.java
index 22d64b1bb7a..9847ae9d257 100644
--- a/libjava/java/security/interfaces/RSAPublicKey.java
+++ b/libjava/java/security/interfaces/RSAPublicKey.java
@@ -49,6 +49,8 @@ import java.security.PublicKey;
*/
public interface RSAPublicKey extends PublicKey, RSAKey
{
+ long serialVersionUID = -8727434096241101194L;
+
/**
* Returns the public exponent value for this key
*
diff --git a/libjava/java/text/BreakIterator.java b/libjava/java/text/BreakIterator.java
index a79db8c5f23..7fbc16b5849 100644
--- a/libjava/java/text/BreakIterator.java
+++ b/libjava/java/text/BreakIterator.java
@@ -1,5 +1,5 @@
/* BreakIterator.java -- Breaks text into elements
- Copyright (C) 1998, 1999, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ import java.util.ResourceBundle;
* class will be valid upon creation. That is, their methods will
* not cause exceptions if called before you call setText().
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
* @date March 19, 1999
*/
diff --git a/libjava/java/text/ChoiceFormat.java b/libjava/java/text/ChoiceFormat.java
index ff3c9f667d9..3c390278b88 100644
--- a/libjava/java/text/ChoiceFormat.java
+++ b/libjava/java/text/ChoiceFormat.java
@@ -1,5 +1,5 @@
/* ChoiceFormat.java -- Format over a range of numbers
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -71,7 +71,7 @@ formats = { "file", "files" }</pre>
* array must be sorted in ascending order and the format string array
* must be the same length as the terminator array.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
* @date March 9, 1999
*/
diff --git a/libjava/java/text/CollationElementIterator.java b/libjava/java/text/CollationElementIterator.java
index 91f341f55b2..481b286c479 100644
--- a/libjava/java/text/CollationElementIterator.java
+++ b/libjava/java/text/CollationElementIterator.java
@@ -53,9 +53,9 @@ import java.util.ArrayList;
* <code>getCollationElementIterator</code> method on
* <code>RuleBasedCollator</code>.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Guilhem Lavaux <guilhem.lavaux@free.fr>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Guilhem Lavaux (guilhem.lavaux@free.fr)
*/
public final class CollationElementIterator
{
@@ -369,8 +369,9 @@ public final class CollationElementIterator
idx_idx += idxToMove;
idxToMove = 0;
}
- } else
- idx_idx += prefix.key.length();
+ }
+ else
+ idx_idx += prefix.key.length();
}
}
diff --git a/libjava/java/text/CollationKey.java b/libjava/java/text/CollationKey.java
index 4e6aca2635d..1fa380f3595 100644
--- a/libjava/java/text/CollationKey.java
+++ b/libjava/java/text/CollationKey.java
@@ -1,5 +1,5 @@
/* CollationKey.java -- Precomputed collation value
- Copyright (C) 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,8 +59,8 @@ package java.text;
* <code>CollationKey</code> is created by calling the
* <code>getCollationKey</code> method on an instance of <code>Collator</code>.
*
- * @author Aaron M. Renn <arenn@urbanophile.com>
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Tom Tromey (tromey@cygnus.com)
* @date March 25, 1999
*/
public final class CollationKey implements Comparable
diff --git a/libjava/java/text/Collator.java b/libjava/java/text/Collator.java
index 6464d137041..4e634e1c137 100644
--- a/libjava/java/text/Collator.java
+++ b/libjava/java/text/Collator.java
@@ -1,5 +1,5 @@
/* Collator.java -- Perform locale dependent String comparisons.
- Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -64,7 +64,7 @@ import java.util.ResourceBundle;
* are described in detail in the documentation for the methods and values
* that are related to them.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
* @date March 18, 1999
*/
diff --git a/libjava/java/text/DateFormat.java b/libjava/java/text/DateFormat.java
index 6fe4461b030..1571672dc43 100644
--- a/libjava/java/text/DateFormat.java
+++ b/libjava/java/text/DateFormat.java
@@ -1,5 +1,5 @@
/* DateFormat.java -- Class for formatting/parsing date/times
- Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.ResourceBundle;
import java.util.TimeZone;
/**
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @date October 25, 1998.
*/
/* Written using "Java Class Libraries", 2nd edition, plus online
@@ -70,29 +70,221 @@ public abstract class DateFormat extends Format implements Cloneable
/* These constants need to have these exact values. They
* correspond to index positions within the localPatternChars
- * string for a given locale. For example, the US locale uses
- * the string "GyMdkHmsSEDFwWahKz", where 'G' is the character
- * for era, 'y' for year, and so on down to 'z' for time zone.
+ * string for a given locale. Each locale may specify its
+ * own character for a particular field, but the position
+ * of these characters must correspond to an appropriate field
+ * number (as listed below), in order for their meaning to
+ * be determined. For example, the US locale uses
+ * the string "GyMdkHmsSEDFwWahKzYeugAZ", where 'G' is the character
+ * for era, 'y' for year, and so on down to 'Z' for time zone.
*/
+ /**
+ * Represents the position of the era
+ * pattern character in the array of
+ * localized pattern characters.
+ * For example, 'AD' is an era used
+ * in the Gregorian calendar system.
+ * In the U.S. locale, this is 'G'.
+ */
public static final int ERA_FIELD = 0;
+ /**
+ * Represents the position of the year
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'y'.
+ */
public static final int YEAR_FIELD = 1;
+ /**
+ * Represents the position of the month
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'M'.
+ */
public static final int MONTH_FIELD = 2;
+ /**
+ * Represents the position of the date
+ * or day of the month pattern character
+ * in the array of localized pattern
+ * characters. In the U.S. locale,
+ * this is 'd'.
+ */
public static final int DATE_FIELD = 3;
+ /**
+ * Represents the position of the 24
+ * hour pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'k'.
+ * This field numbers hours from 1 to 24.
+ */
public static final int HOUR_OF_DAY1_FIELD = 4;
+ /**
+ * Represents the position of the 24
+ * hour pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'H'.
+ * This field numbers hours from 0 to 23.
+ */
public static final int HOUR_OF_DAY0_FIELD = 5;
+ /**
+ * Represents the position of the minute
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'm'.
+ */
public static final int MINUTE_FIELD = 6;
+ /**
+ * Represents the position of the second
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 's'.
+ */
public static final int SECOND_FIELD = 7;
+ /**
+ * Represents the position of the millisecond
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'S'.
+ */
public static final int MILLISECOND_FIELD = 8;
+ /**
+ * Represents the position of the day of the
+ * week pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'E'.
+ */
public static final int DAY_OF_WEEK_FIELD = 9;
+ /**
+ * Represents the position of the day of the
+ * year pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'D'.
+ */
public static final int DAY_OF_YEAR_FIELD = 10;
+ /**
+ * Represents the position of the day of the
+ * week in the month pattern character in the
+ * array of localized pattern characters.
+ * In the U.S. locale, this is 'F'.
+ */
public static final int DAY_OF_WEEK_IN_MONTH_FIELD = 11;
+ /**
+ * Represents the position of the week of the
+ * year pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'w'.
+ */
public static final int WEEK_OF_YEAR_FIELD = 12;
+ /**
+ * Represents the position of the week of the
+ * month pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'W'.
+ */
public static final int WEEK_OF_MONTH_FIELD = 13;
+ /**
+ * Represents the position of the am/pm
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'a'.
+ */
public static final int AM_PM_FIELD = 14;
+ /**
+ * Represents the position of the 12
+ * hour pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'h'.
+ * This field numbers hours from 1 to 12.
+ */
public static final int HOUR1_FIELD = 15;
+ /**
+ * Represents the position of the 12
+ * hour pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'K'.
+ * This field numbers hours from 0 to 11.
+ */
public static final int HOUR0_FIELD = 16;
+ /**
+ * Represents the position of the generic
+ * timezone pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'z'.
+ */
public static final int TIMEZONE_FIELD = 17;
-
+ /**
+ * Represents the position of the ISO year
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'Y'.
+ * This is a GNU extension in accordance with
+ * the CLDR data used. This value may
+ * differ from the normal year value.
+ */
+ public static final int ISO_YEAR_FIELD = 18;
+ /**
+ * Represents the position of the localized
+ * day of the week pattern character in the
+ * array of localized pattern characters.
+ * In the U.S. locale, this is 'e'.
+ * This is a GNU extension in accordance with
+ * the CLDR data used. This value only
+ * differs from the day of the week with
+ * numeric formatting, in which case the
+ * locale's first day of the week is used.
+ */
+ public static final int LOCALIZED_DAY_OF_WEEK_FIELD = 19;
+ /**
+ * Represents the position of the extended year
+ * pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'u'.
+ * This is a GNU extension in accordance with
+ * the CLDR data used. This value modifies
+ * the year value, so as to incorporate the era.
+ * For example, in the Gregorian calendar system,
+ * the extended year is negative instead of being
+ * marked as BC.
+ */
+ public static final int EXTENDED_YEAR_FIELD = 20;
+ /**
+ * Represents the position of the modified Julian
+ * day pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'g'.
+ * This is a GNU extension in accordance with
+ * the CLDR data used. This value differs
+ * from the standard Julian day in that days
+ * are marked from midnight onwards rather than
+ * noon, and the local time zone affects the value.
+ * In simple terms, it can be thought of as all
+ * the date fields represented as a single number.
+ */
+ public static final int MODIFIED_JULIAN_DAY_FIELD = 21;
+ /**
+ * Represents the position of the millisecond
+ * in the day pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'A'.
+ * This is a GNU extension in accordance with
+ * the CLDR data used. This value represents
+ * all the time fields (excluding the time zone)
+ * numerically, giving the number of milliseconds
+ * into the day (e.g. 10 in the morning would
+ * be 10 * 60 * 60 * 1000). Any daylight savings
+ * offset also affects this value.
+ */
+ public static final int MILLISECOND_IN_DAY_FIELD = 22;
+ /**
+ * Represents the position of the RFC822
+ * timezone pattern character in the array of
+ * localized pattern characters.
+ * In the U.S. locale, this is 'Z'.
+ * This is a GNU extension in accordance with
+ * the CLDR data used. The value is the offset
+ * of the current time from GMT e.g. -0500 would
+ * be five hours prior to GMT.
+ */
+ public static final int RFC822_TIMEZONE_FIELD = 23;
public static class Field extends Format.Field
{
@@ -136,14 +328,28 @@ public abstract class DateFormat extends Format implements Cloneable
= new Field("hour0", Calendar.HOUR);
public static final DateFormat.Field TIME_ZONE
= new Field("timezone", Calendar.ZONE_OFFSET);
-
+ public static final DateFormat.Field ISO_YEAR
+ = new Field("iso year", Calendar.YEAR);
+ public static final DateFormat.Field LOCALIZED_DAY_OF_WEEK
+ = new Field("localized day of week", Calendar.DAY_OF_WEEK);
+ public static final DateFormat.Field EXTENDED_YEAR
+ = new Field("extended year", Calendar.YEAR);
+ public static final DateFormat.Field MODIFIED_JULIAN_DAY
+ = new Field("julian day", -1);
+ public static final DateFormat.Field MILLISECOND_IN_DAY
+ = new Field("millisecond in day", -1);
+ public static final DateFormat.Field RFC822_TIME_ZONE
+ = new Field("rfc822 timezone", Calendar.ZONE_OFFSET);
+
static final DateFormat.Field[] allFields =
{
ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY1,
HOUR_OF_DAY0, MINUTE, SECOND, MILLISECOND,
DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH,
WEEK_OF_YEAR, WEEK_OF_MONTH, AM_PM, HOUR1, HOUR0,
- TIME_ZONE
+ TIME_ZONE, ISO_YEAR, LOCALIZED_DAY_OF_WEEK,
+ EXTENDED_YEAR, MODIFIED_JULIAN_DAY, MILLISECOND_IN_DAY,
+ RFC822_TIME_ZONE
};
// For deserialization
@@ -288,7 +494,7 @@ public abstract class DateFormat extends Format implements Cloneable
* This method returns a list of available locales supported by this
* class.
*/
- public static Locale[] getAvailableLocales ()
+ public static Locale[] getAvailableLocales()
{
// FIXME
Locale[] l = new Locale[1];
diff --git a/libjava/java/text/DateFormatSymbols.java b/libjava/java/text/DateFormatSymbols.java
index b9b71ba36a7..9555cfb67bc 100644
--- a/libjava/java/text/DateFormatSymbols.java
+++ b/libjava/java/text/DateFormatSymbols.java
@@ -1,5 +1,5 @@
/* DateFormatSymbols.java -- Format over a range of numbers
- Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.ResourceBundle;
/**
* This class acts as container for locale specific date/time formatting
* information such as the days of the week and the months of the year.
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @date October 24, 1998.
*/
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3.
diff --git a/libjava/java/text/DecimalFormat.java b/libjava/java/text/DecimalFormat.java
index 8b2c25cd3c3..a085875a1ae 100644
--- a/libjava/java/text/DecimalFormat.java
+++ b/libjava/java/text/DecimalFormat.java
@@ -49,7 +49,8 @@ import java.util.HashMap;
import java.util.Locale;
/**
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @date March 4, 1999
*/
/* Written using "Java Class Libraries", 2nd edition, plus online
diff --git a/libjava/java/text/DecimalFormatSymbols.java b/libjava/java/text/DecimalFormatSymbols.java
index 7a4e56e9a42..72a132e002a 100644
--- a/libjava/java/text/DecimalFormatSymbols.java
+++ b/libjava/java/text/DecimalFormatSymbols.java
@@ -52,7 +52,7 @@ import java.util.ResourceBundle;
* normally handled automatically, but an application can override
* values as desired using this class.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
* @date February 24, 1999
*/
diff --git a/libjava/java/text/FieldPosition.java b/libjava/java/text/FieldPosition.java
index 47cf7a146f4..6dd3a626705 100644
--- a/libjava/java/text/FieldPosition.java
+++ b/libjava/java/text/FieldPosition.java
@@ -1,5 +1,5 @@
/* FieldPosition.java -- Keeps track of field positions while formatting
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.text;
* typically define constant values for the field identifiers.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
*/
public class FieldPosition
{
diff --git a/libjava/java/text/Format.java b/libjava/java/text/Format.java
index 2c75578243c..970c7ce631f 100644
--- a/libjava/java/text/Format.java
+++ b/libjava/java/text/Format.java
@@ -1,5 +1,5 @@
/* Format.java -- Abstract superclass for formatting/parsing strings.
- Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import java.io.Serializable;
* available locales in the current runtime environment.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
*/
public abstract class Format implements Serializable, Cloneable
{
diff --git a/libjava/java/text/MessageFormat.java b/libjava/java/text/MessageFormat.java
index 6a031bc7254..6c1b0508bda 100644
--- a/libjava/java/text/MessageFormat.java
+++ b/libjava/java/text/MessageFormat.java
@@ -46,107 +46,107 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Vector;
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Jorge Aliss <jaliss@hotmail.com>
- * @date March 3, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status: Believed complete and correct to 1.2, except serialization.
- * and parsing.
- */
-final class MessageFormatElement
+public class MessageFormat extends Format
{
- // Argument number.
- int argNumber;
- // Formatter to be used. This is the format set by setFormat.
- Format setFormat;
- // Formatter to be used based on the type.
- Format format;
-
- // Argument will be checked to make sure it is an instance of this
- // class.
- Class formatClass;
-
- // Formatter type.
- String type;
- // Formatter style.
- String style;
-
- // Text to follow this element.
- String trailer;
-
- // Recompute the locale-based formatter.
- void setLocale (Locale loc)
+ /**
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Jorge Aliss (jaliss@hotmail.com)
+ * @date March 3, 1999
+ */
+ /* Written using "Java Class Libraries", 2nd edition, plus online
+ * API docs for JDK 1.2 from http://www.javasoft.com.
+ * Status: Believed complete and correct to 1.2, except serialization.
+ * and parsing.
+ */
+ private static final class MessageFormatElement
{
- if (type == null)
- ;
- else if (type.equals("number"))
- {
- formatClass = java.lang.Number.class;
-
- if (style == null)
- format = NumberFormat.getInstance(loc);
- else if (style.equals("currency"))
- format = NumberFormat.getCurrencyInstance(loc);
- else if (style.equals("percent"))
- format = NumberFormat.getPercentInstance(loc);
- else if (style.equals("integer"))
- {
- NumberFormat nf = NumberFormat.getNumberInstance(loc);
- nf.setMaximumFractionDigits(0);
- nf.setGroupingUsed(false);
- format = nf;
- }
- else
- {
- format = NumberFormat.getNumberInstance(loc);
- DecimalFormat df = (DecimalFormat) format;
- df.applyPattern(style);
- }
- }
- else if (type.equals("time") || type.equals("date"))
- {
- formatClass = java.util.Date.class;
-
- int val = DateFormat.DEFAULT;
- if (style == null)
- ;
- else if (style.equals("short"))
- val = DateFormat.SHORT;
- else if (style.equals("medium"))
- val = DateFormat.MEDIUM;
- else if (style.equals("long"))
- val = DateFormat.LONG;
- else if (style.equals("full"))
- val = DateFormat.FULL;
-
- if (type.equals("time"))
- format = DateFormat.getTimeInstance(val, loc);
- else
- format = DateFormat.getDateInstance(val, loc);
-
- if (style != null && val == DateFormat.DEFAULT)
- {
- SimpleDateFormat sdf = (SimpleDateFormat) format;
- sdf.applyPattern(style);
- }
- }
- else if (type.equals("choice"))
- {
- formatClass = java.lang.Number.class;
-
- if (style == null)
- throw new
- IllegalArgumentException ("style required for choice format");
- format = new ChoiceFormat (style);
- }
+ // Argument number.
+ int argNumber;
+ // Formatter to be used. This is the format set by setFormat.
+ Format setFormat;
+ // Formatter to be used based on the type.
+ Format format;
+
+ // Argument will be checked to make sure it is an instance of this
+ // class.
+ Class formatClass;
+
+ // Formatter type.
+ String type;
+ // Formatter style.
+ String style;
+
+ // Text to follow this element.
+ String trailer;
+
+ // Recompute the locale-based formatter.
+ void setLocale (Locale loc)
+ {
+ if (type == null)
+ ;
+ else if (type.equals("number"))
+ {
+ formatClass = java.lang.Number.class;
+
+ if (style == null)
+ format = NumberFormat.getInstance(loc);
+ else if (style.equals("currency"))
+ format = NumberFormat.getCurrencyInstance(loc);
+ else if (style.equals("percent"))
+ format = NumberFormat.getPercentInstance(loc);
+ else if (style.equals("integer"))
+ {
+ NumberFormat nf = NumberFormat.getNumberInstance(loc);
+ nf.setMaximumFractionDigits(0);
+ nf.setGroupingUsed(false);
+ format = nf;
+ }
+ else
+ {
+ format = NumberFormat.getNumberInstance(loc);
+ DecimalFormat df = (DecimalFormat) format;
+ df.applyPattern(style);
+ }
+ }
+ else if (type.equals("time") || type.equals("date"))
+ {
+ formatClass = java.util.Date.class;
+
+ int val = DateFormat.DEFAULT;
+ if (style == null)
+ ;
+ else if (style.equals("short"))
+ val = DateFormat.SHORT;
+ else if (style.equals("medium"))
+ val = DateFormat.MEDIUM;
+ else if (style.equals("long"))
+ val = DateFormat.LONG;
+ else if (style.equals("full"))
+ val = DateFormat.FULL;
+
+ if (type.equals("time"))
+ format = DateFormat.getTimeInstance(val, loc);
+ else
+ format = DateFormat.getDateInstance(val, loc);
+
+ if (style != null && val == DateFormat.DEFAULT)
+ {
+ SimpleDateFormat sdf = (SimpleDateFormat) format;
+ sdf.applyPattern(style);
+ }
+ }
+ else if (type.equals("choice"))
+ {
+ formatClass = java.lang.Number.class;
+
+ if (style == null)
+ throw new
+ IllegalArgumentException ("style required for choice format");
+ format = new ChoiceFormat (style);
+ }
+ }
}
-}
-public class MessageFormat extends Format
-{
private static final long serialVersionUID = 6479157306784022952L;
public static class Field extends Format.Field
diff --git a/libjava/java/text/NumberFormat.java b/libjava/java/text/NumberFormat.java
index 368292686bc..4fc98b15c54 100644
--- a/libjava/java/text/NumberFormat.java
+++ b/libjava/java/text/NumberFormat.java
@@ -59,7 +59,7 @@ import java.util.ResourceBundle;
* static factory methods in this class such as
* <code>getCurrencyInstance</code>.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @author Aaron M. Renn (arenn@urbanophile.com)
* @date March 4, 1999
*/
diff --git a/libjava/java/text/ParseException.java b/libjava/java/text/ParseException.java
index 20e828e18a7..13229c8c89a 100644
--- a/libjava/java/text/ParseException.java
+++ b/libjava/java/text/ParseException.java
@@ -1,5 +1,5 @@
/* ParseException.java -- an error occurred while parsing
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.text;
* This exception is thrown when an unexpected error occurs during parsing.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
* @see Format
* @see FieldPosition
* @status updated to 1.4
diff --git a/libjava/java/text/ParsePosition.java b/libjava/java/text/ParsePosition.java
index c6dffed8f59..91fa44fccf4 100644
--- a/libjava/java/text/ParsePosition.java
+++ b/libjava/java/text/ParsePosition.java
@@ -1,5 +1,5 @@
/* ParsePosition.java -- Keep track of position while parsing.
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package java.text;
* operations.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Per Bothner <bothner@cygnus.com>
+ * @author Per Bothner (bothner@cygnus.com)
*/
public class ParsePosition
{
diff --git a/libjava/java/text/RuleBasedCollator.java b/libjava/java/text/RuleBasedCollator.java
index c2cff5a0c8c..afb766ff8ae 100644
--- a/libjava/java/text/RuleBasedCollator.java
+++ b/libjava/java/text/RuleBasedCollator.java
@@ -1,5 +1,5 @@
/* RuleBasedCollator.java -- Concrete Collator Class
- Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -435,56 +435,57 @@ main_parse_loop:
continue;
}
- switch (c) {
- case '!':
- throw new ParseException
- ("Modifier '!' is not yet supported by Classpath", i+base_offset);
- case '<':
- type = CollationSorter.GREATERP;
- break;
- case ';':
- type = CollationSorter.GREATERS;
- break;
- case ',':
- type = CollationSorter.GREATERT;
- break;
- case '=':
- type = CollationSorter.EQUAL;
- break;
- case '\'':
- eatingChars = !eatingChars;
- doubleQuote = true;
- break;
- case '@':
- if (ignoreChars)
- throw new ParseException
- ("comparison list has not yet been started. You may only use"
- + "(<,;=&)", i+base_offset);
- // Inverse the order of secondaries from now on.
- nextIsModifier = true;
- type = CollationSorter.INVERSE_SECONDARY;
- break;
- case '&':
- type = CollationSorter.RESET;
- if (stop_on_reset)
- break main_parse_loop;
- break;
- default:
- if (operator < 0)
- throw new ParseException
- ("operator missing at " + (i+base_offset), i+base_offset);
- if (!eatingChars &&
- ((c >= 0x21 && c <= 0x2F)
- || (c >= 0x3A && c <= 0x40)
- || (c >= 0x5B && c <= 0x60)
- || (c >= 0x7B && c <= 0x7E)))
+ switch (c)
+ {
+ case '!':
throw new ParseException
- ("unquoted punctuation character '"+c+"'", i+base_offset);
-
- //type = ignoreChars ? CollationSorter.IGNORE : -1;
- sb.append(c);
- break;
- }
+ ("Modifier '!' is not yet supported by Classpath", i + base_offset);
+ case '<':
+ type = CollationSorter.GREATERP;
+ break;
+ case ';':
+ type = CollationSorter.GREATERS;
+ break;
+ case ',':
+ type = CollationSorter.GREATERT;
+ break;
+ case '=':
+ type = CollationSorter.EQUAL;
+ break;
+ case '\'':
+ eatingChars = !eatingChars;
+ doubleQuote = true;
+ break;
+ case '@':
+ if (ignoreChars)
+ throw new ParseException
+ ("comparison list has not yet been started. You may only use"
+ + "(<,;=&)", i + base_offset);
+ // Inverse the order of secondaries from now on.
+ nextIsModifier = true;
+ type = CollationSorter.INVERSE_SECONDARY;
+ break;
+ case '&':
+ type = CollationSorter.RESET;
+ if (stop_on_reset)
+ break main_parse_loop;
+ break;
+ default:
+ if (operator < 0)
+ throw new ParseException
+ ("operator missing at " + (i + base_offset), i + base_offset);
+ if (! eatingChars
+ && ((c >= 0x21 && c <= 0x2F)
+ || (c >= 0x3A && c <= 0x40)
+ || (c >= 0x5B && c <= 0x60)
+ || (c >= 0x7B && c <= 0x7E)))
+ throw new ParseException
+ ("unquoted punctuation character '" + c + "'", i + base_offset);
+
+ //type = ignoreChars ? CollationSorter.IGNORE : -1;
+ sb.append(c);
+ break;
+ }
if (type < 0)
continue;
diff --git a/libjava/java/text/SimpleDateFormat.java b/libjava/java/text/SimpleDateFormat.java
index 35083eb887e..190b4d624f4 100644
--- a/libjava/java/text/SimpleDateFormat.java
+++ b/libjava/java/text/SimpleDateFormat.java
@@ -1,6 +1,6 @@
/* SimpleDateFormat.java -- A class for parsing/formating simple
date constructs
- Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,6 +46,7 @@ import gnu.java.text.FormatCharacterIterator;
import gnu.java.text.StringFormatBuffer;
import java.io.IOException;
+import java.io.InvalidObjectException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.Calendar;
@@ -53,8 +54,9 @@ import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.Locale;
-import java.util.SimpleTimeZone;
import java.util.TimeZone;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* SimpleDateFormat provides convenient methods for parsing and formatting
@@ -62,34 +64,190 @@ import java.util.TimeZone;
*/
public class SimpleDateFormat extends DateFormat
{
- /** A pair class used by SimpleDateFormat as a compiled representation
- * of a format string.
+ /**
+ * This class is used by <code>SimpleDateFormat</code> as a
+ * compiled representation of a format string. The field
+ * ID, size, and character used are stored for each sequence
+ * of pattern characters.
*/
- private class FieldSizePair
+ private class CompiledField
{
- public int field;
- public int size;
+ /**
+ * The ID of the field within the local pattern characters,
+ */
+ private int field;
+
+ /**
+ * The size of the character sequence.
+ */
+ private int size;
+
+ /**
+ * The character used.
+ */
+ private char character;
- /** Constructs a pair with the given field and size values */
- public FieldSizePair(int f, int s) {
+ /**
+ * Constructs a compiled field using the
+ * the given field ID, size and character
+ * values.
+ *
+ * @param f the field ID.
+ * @param s the size of the field.
+ * @param c the character used.
+ */
+ public CompiledField(int f, int s, char c)
+ {
field = f;
size = s;
+ character = c;
+ }
+
+ /**
+ * Retrieves the ID of the field relative to
+ * the local pattern characters.
+ */
+ public int getField()
+ {
+ return field;
+ }
+
+ /**
+ * Retrieves the size of the character sequence.
+ */
+ public int getSize()
+ {
+ return size;
+ }
+
+ /**
+ * Retrieves the character used in the sequence.
+ */
+ public char getCharacter()
+ {
+ return character;
+ }
+
+ /**
+ * Returns a <code>String</code> representation
+ * of the compiled field, primarily for debugging
+ * purposes.
+ *
+ * @return a <code>String</code> representation.
+ */
+ public String toString()
+ {
+ StringBuffer builder;
+
+ builder = new StringBuffer(getClass().getName());
+ builder.append("[field=");
+ builder.append(field);
+ builder.append(", size=");
+ builder.append(size);
+ builder.append(", character=");
+ builder.append(character);
+ builder.append("]");
+
+ return builder.toString();
}
}
+ /**
+ * A list of <code>CompiledField</code>s,
+ * representing the compiled version of the pattern.
+ *
+ * @see CompiledField
+ * @serial Ignored.
+ */
private transient ArrayList tokens;
- private DateFormatSymbols formatData; // formatData
+
+ /**
+ * The localised data used in formatting,
+ * such as the day and month names in the local
+ * language, and the localized pattern characters.
+ *
+ * @see DateFormatSymbols
+ * @serial The localisation data. May not be null.
+ */
+ private DateFormatSymbols formatData;
+
+ /**
+ * The date representing the start of the century
+ * used for interpreting two digit years. For
+ * example, 24/10/2004 would cause two digit
+ * years to be interpreted as representing
+ * the years between 2004 and 2104.
+ *
+ * @see get2DigitYearStart()
+ * @see set2DigitYearStart(java.util.Date)
+ * @see Date
+ * @serial The start date of the century for parsing two digit years.
+ * May not be null.
+ */
private Date defaultCenturyStart;
+
+ /**
+ * The year at which interpretation of two
+ * digit years starts.
+ *
+ * @see get2DigitYearStart()
+ * @see set2DigitYearStart(java.util.Date)
+ * @serial Ignored.
+ */
private transient int defaultCentury;
+
+ /**
+ * The non-localized pattern string. This
+ * only ever contains the pattern characters
+ * stored in standardChars. Localized patterns
+ * are translated to this form.
+ *
+ * @see applyPattern(String)
+ * @see applyLocalizedPattern(String)
+ * @see toPattern()
+ * @see toLocalizedPattern()
+ * @serial The non-localized pattern string. May not be null.
+ */
private String pattern;
+
+ /**
+ * The version of serialized data used by this class.
+ * Version 0 only includes the pattern and formatting
+ * data. Version 1 adds the start date for interpreting
+ * two digit years.
+ *
+ * @serial This specifies the version of the data being serialized.
+ * Version 0 (or no version) specifies just <code>pattern</code>
+ * and <code>formatData</code>. Version 1 adds
+ * the <code>defaultCenturyStart</code>. This implementation
+ * always writes out version 1 data.
+ */
private int serialVersionOnStream = 1; // 0 indicates JDK1.1.3 or earlier
+
+ /**
+ * For compatability.
+ */
private static final long serialVersionUID = 4774881970558875024L;
- // This string is specified in the JCL. We set it here rather than
- // do a DateFormatSymbols(Locale.US).getLocalPatternChars() since
- // someone could theoretically change those values (though unlikely).
- private static final String standardChars = "GyMdkHmsSEDFwWahKzZ";
+ // This string is specified in the root of the CLDR. We set it here
+ // rather than doing a DateFormatSymbols(Locale.US).getLocalPatternChars()
+ // since someone could theoretically change those values (though unlikely).
+ private static final String standardChars = "GyMdkHmsSEDFwWahKzYeugAZ";
+ /**
+ * Reads the serialized version of this object.
+ * If the serialized data is only version 0,
+ * then the date for the start of the century
+ * for interpreting two digit years is computed.
+ * The pattern is parsed and compiled following the process
+ * of reading in the serialized data.
+ *
+ * @param stream the object stream to read the data from.
+ * @throws IOException if an I/O error occurs.
+ * @throws ClassNotFoundException if the class of the serialized data
+ * could not be found.
+ * @throws InvalidObjectException if the pattern is invalid.
+ */
private void readObject(ObjectInputStream stream)
throws IOException, ClassNotFoundException
{
@@ -105,9 +263,25 @@ public class SimpleDateFormat extends DateFormat
// Set up items normally taken care of by the constructor.
tokens = new ArrayList();
- compileFormat(pattern);
+ try
+ {
+ compileFormat(pattern);
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new InvalidObjectException("The stream pattern was invalid.");
+ }
}
+ /**
+ * Compiles the supplied non-localized pattern into a form
+ * from which formatting and parsing can be performed.
+ * This also detects errors in the pattern, which will
+ * be raised on later use of the compiled data.
+ *
+ * @param pattern the non-localized pattern to compile.
+ * @throws IllegalArgumentException if the pattern is invalid.
+ */
private void compileFormat(String pattern)
{
// Any alphabetical characters are treated as pattern characters
@@ -116,24 +290,25 @@ public class SimpleDateFormat extends DateFormat
char thisChar;
int pos;
int field;
- FieldSizePair current = null;
+ CompiledField current = null;
for (int i=0; i<pattern.length(); i++) {
thisChar = pattern.charAt(i);
- field = formatData.getLocalPatternChars().indexOf(thisChar);
+ field = standardChars.indexOf(thisChar);
if (field == -1) {
current = null;
if ((thisChar >= 'A' && thisChar <= 'Z')
|| (thisChar >= 'a' && thisChar <= 'z')) {
- // Not a valid letter
- tokens.add(new FieldSizePair(-1,0));
+ // Not a valid letter
+ throw new IllegalArgumentException("Invalid letter " + thisChar +
+ "encountered at character " + i
+ + ".");
} else if (thisChar == '\'') {
// Quoted text section; skip to next single quote
pos = pattern.indexOf('\'',i+1);
if (pos == -1) {
- // This ought to be an exception, but spec does not
- // let us throw one.
- tokens.add(new FieldSizePair(-1,0));
+ throw new IllegalArgumentException("Quotes starting at character "
+ + i + " not closed.");
}
if ((pos+1 < pattern.length()) && (pattern.charAt(pos+1) == '\'')) {
tokens.add(pattern.substring(i+1,pos+1));
@@ -150,20 +325,38 @@ public class SimpleDateFormat extends DateFormat
if ((current != null) && (field == current.field)) {
current.size++;
} else {
- current = new FieldSizePair(field,1);
+ current = new CompiledField(field,1,thisChar);
tokens.add(current);
}
}
}
}
+ /**
+ * Returns a string representation of this
+ * class.
+ *
+ * @return a string representation of the <code>SimpleDateFormat</code>
+ * instance.
+ */
public String toString()
{
- StringBuffer output = new StringBuffer();
- Iterator i = tokens.iterator();
- while (i.hasNext()) {
- output.append(i.next().toString());
- }
+ StringBuffer output = new StringBuffer(getClass().getName());
+ output.append("[tokens=");
+ output.append(tokens);
+ output.append(", formatData=");
+ output.append(formatData);
+ output.append(", defaultCenturyStart=");
+ output.append(defaultCenturyStart);
+ output.append(", defaultCentury=");
+ output.append(defaultCentury);
+ output.append(", pattern=");
+ output.append(pattern);
+ output.append(", serialVersionOnStream=");
+ output.append(serialVersionOnStream);
+ output.append(", standardChars=");
+ output.append(standardChars);
+ output.append("]");
return output.toString();
}
@@ -194,8 +387,12 @@ public class SimpleDateFormat extends DateFormat
}
/**
- * Creates a date formatter using the specified pattern, with the default
- * DateFormatSymbols for the default locale.
+ * Creates a date formatter using the specified non-localized pattern,
+ * with the default DateFormatSymbols for the default locale.
+ *
+ * @param pattern the pattern to use.
+ * @throws NullPointerException if the pattern is null.
+ * @throws IllegalArgumentException if the pattern is invalid.
*/
public SimpleDateFormat(String pattern)
{
@@ -203,8 +400,13 @@ public class SimpleDateFormat extends DateFormat
}
/**
- * Creates a date formatter using the specified pattern, with the default
- * DateFormatSymbols for the given locale.
+ * Creates a date formatter using the specified non-localized pattern,
+ * with the default DateFormatSymbols for the given locale.
+ *
+ * @param pattern the non-localized pattern to use.
+ * @param locale the locale to use for the formatting symbols.
+ * @throws NullPointerException if the pattern is null.
+ * @throws IllegalArgumentException if the pattern is invalid.
*/
public SimpleDateFormat(String pattern, Locale locale)
{
@@ -222,8 +424,14 @@ public class SimpleDateFormat extends DateFormat
}
/**
- * Creates a date formatter using the specified pattern. The
- * specified DateFormatSymbols will be used when formatting.
+ * Creates a date formatter using the specified non-localized
+ * pattern. The specified DateFormatSymbols will be used when
+ * formatting.
+ *
+ * @param pattern the non-localized pattern to use.
+ * @param formatData the formatting symbols to use.
+ * @throws NullPointerException if the pattern or formatData is null.
+ * @throws IllegalArgumentException if the pattern is invalid.
*/
public SimpleDateFormat(String pattern, DateFormatSymbols formatData)
{
@@ -231,6 +439,8 @@ public class SimpleDateFormat extends DateFormat
calendar = new GregorianCalendar();
computeCenturyStart ();
tokens = new ArrayList();
+ if (formatData == null)
+ throw new NullPointerException("formatData");
this.formatData = formatData;
compileFormat(pattern);
this.pattern = pattern;
@@ -240,9 +450,6 @@ public class SimpleDateFormat extends DateFormat
numberFormat.setMaximumFractionDigits (0);
}
- // What is the difference between localized and unlocalized? The
- // docs don't say.
-
/**
* This method returns a string with the formatting pattern being used
* by this object. This string is unlocalized.
@@ -263,7 +470,7 @@ public class SimpleDateFormat extends DateFormat
public String toLocalizedPattern()
{
String localChars = formatData.getLocalPatternChars();
- return applyLocalizedPattern (pattern, standardChars, localChars);
+ return translateLocalizedPattern(pattern, standardChars, localChars);
}
/**
@@ -271,6 +478,8 @@ public class SimpleDateFormat extends DateFormat
* object. This string is not localized.
*
* @param pattern The new format pattern.
+ * @throws NullPointerException if the pattern is null.
+ * @throws IllegalArgumentException if the pattern is invalid.
*/
public void applyPattern(String pattern)
{
@@ -284,16 +493,34 @@ public class SimpleDateFormat extends DateFormat
* object. This string is localized.
*
* @param pattern The new format pattern.
+ * @throws NullPointerException if the pattern is null.
+ * @throws IllegalArgumentException if the pattern is invalid.
*/
public void applyLocalizedPattern(String pattern)
{
String localChars = formatData.getLocalPatternChars();
- pattern = applyLocalizedPattern (pattern, localChars, standardChars);
+ pattern = translateLocalizedPattern(pattern, localChars, standardChars);
applyPattern(pattern);
}
- private String applyLocalizedPattern(String pattern,
- String oldChars, String newChars)
+ /**
+ * Translates either from or to a localized variant of the pattern
+ * string. For example, in the German locale, 't' (for 'tag') is
+ * used instead of 'd' (for 'date'). This method translates
+ * a localized pattern (such as 'ttt') to a non-localized pattern
+ * (such as 'ddd'), or vice versa. Non-localized patterns use
+ * a standard set of characters, which match those of the U.S. English
+ * locale.
+ *
+ * @param pattern the pattern to translate.
+ * @param oldChars the old set of characters (used in the pattern).
+ * @param newChars the new set of characters (which will be used in the
+ * pattern).
+ * @return a version of the pattern using the characters in
+ * <code>newChars</code>.
+ */
+ private String translateLocalizedPattern(String pattern,
+ String oldChars, String newChars)
{
int len = pattern.length();
StringBuffer buf = new StringBuffer(len);
@@ -341,14 +568,14 @@ public class SimpleDateFormat extends DateFormat
}
/**
- * This method returns the format symbol information used for parsing
- * and formatting dates.
+ * This method returns a copy of the format symbol information used
+ * for parsing and formatting dates.
*
- * @return The date format symbols.
+ * @return a copy of the date format symbols.
*/
public DateFormatSymbols getDateFormatSymbols()
{
- return formatData;
+ return (DateFormatSymbols) formatData.clone();
}
/**
@@ -356,9 +583,15 @@ public class SimpleDateFormat extends DateFormat
* and formatting dates.
*
* @param formatData The date format symbols.
+ * @throws NullPointerException if <code>formatData</code> is null.
*/
public void setDateFormatSymbols(DateFormatSymbols formatData)
{
+ if (formatData == null)
+ {
+ throw new
+ NullPointerException("The supplied format data was null.");
+ }
this.formatData = formatData;
}
@@ -431,12 +664,12 @@ public class SimpleDateFormat extends DateFormat
while (iter.hasNext())
{
Object o = iter.next();
- if (o instanceof FieldSizePair)
+ if (o instanceof CompiledField)
{
- FieldSizePair p = (FieldSizePair) o;
+ CompiledField cf = (CompiledField) o;
int beginIndex = buffer.length();
- switch (p.field)
+ switch (cf.getField())
{
case ERA_FIELD:
buffer.append (formatData.eras[calendar.get (Calendar.ERA)], DateFormat.Field.ERA);
@@ -445,75 +678,75 @@ public class SimpleDateFormat extends DateFormat
// If we have two digits, then we truncate. Otherwise, we
// use the size of the pattern, and zero pad.
buffer.setDefaultAttribute (DateFormat.Field.YEAR);
- if (p.size == 2)
+ if (cf.getSize() == 2)
{
temp = String.valueOf (calendar.get (Calendar.YEAR));
buffer.append (temp.substring (temp.length() - 2));
}
else
- withLeadingZeros (calendar.get (Calendar.YEAR), p.size, buffer);
+ withLeadingZeros (calendar.get (Calendar.YEAR), cf.getSize(), buffer);
break;
case MONTH_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.MONTH);
- if (p.size < 3)
- withLeadingZeros (calendar.get (Calendar.MONTH) + 1, p.size, buffer);
- else if (p.size < 4)
+ if (cf.getSize() < 3)
+ withLeadingZeros (calendar.get (Calendar.MONTH) + 1, cf.getSize(), buffer);
+ else if (cf.getSize() < 4)
buffer.append (formatData.shortMonths[calendar.get (Calendar.MONTH)]);
else
buffer.append (formatData.months[calendar.get (Calendar.MONTH)]);
break;
case DATE_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_MONTH);
- withLeadingZeros (calendar.get (Calendar.DATE), p.size, buffer);
+ withLeadingZeros (calendar.get (Calendar.DATE), cf.getSize(), buffer);
break;
case HOUR_OF_DAY1_FIELD: // 1-24
buffer.setDefaultAttribute(DateFormat.Field.HOUR_OF_DAY1);
withLeadingZeros ( ((calendar.get (Calendar.HOUR_OF_DAY) + 23) % 24) + 1,
- p.size, buffer);
+ cf.getSize(), buffer);
break;
case HOUR_OF_DAY0_FIELD: // 0-23
buffer.setDefaultAttribute (DateFormat.Field.HOUR_OF_DAY0);
- withLeadingZeros (calendar.get (Calendar.HOUR_OF_DAY), p.size, buffer);
+ withLeadingZeros (calendar.get (Calendar.HOUR_OF_DAY), cf.getSize(), buffer);
break;
case MINUTE_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.MINUTE);
withLeadingZeros (calendar.get (Calendar.MINUTE),
- p.size, buffer);
+ cf.getSize(), buffer);
break;
case SECOND_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.SECOND);
withLeadingZeros(calendar.get (Calendar.SECOND),
- p.size, buffer);
+ cf.getSize(), buffer);
break;
case MILLISECOND_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.MILLISECOND);
- withLeadingZeros (calendar.get (Calendar.MILLISECOND), p.size, buffer);
+ withLeadingZeros (calendar.get (Calendar.MILLISECOND), cf.getSize(), buffer);
break;
case DAY_OF_WEEK_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_WEEK);
- if (p.size < 4)
+ if (cf.getSize() < 4)
buffer.append (formatData.shortWeekdays[calendar.get (Calendar.DAY_OF_WEEK)]);
else
buffer.append (formatData.weekdays[calendar.get (Calendar.DAY_OF_WEEK)]);
break;
case DAY_OF_YEAR_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_YEAR);
- withLeadingZeros (calendar.get (Calendar.DAY_OF_YEAR), p.size, buffer);
+ withLeadingZeros (calendar.get (Calendar.DAY_OF_YEAR), cf.getSize(), buffer);
break;
case DAY_OF_WEEK_IN_MONTH_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.DAY_OF_WEEK_IN_MONTH);
withLeadingZeros (calendar.get (Calendar.DAY_OF_WEEK_IN_MONTH),
- p.size, buffer);
+ cf.getSize(), buffer);
break;
case WEEK_OF_YEAR_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.WEEK_OF_YEAR);
withLeadingZeros (calendar.get (Calendar.WEEK_OF_YEAR),
- p.size, buffer);
+ cf.getSize(), buffer);
break;
case WEEK_OF_MONTH_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.WEEK_OF_MONTH);
withLeadingZeros (calendar.get (Calendar.WEEK_OF_MONTH),
- p.size, buffer);
+ cf.getSize(), buffer);
break;
case AM_PM_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.AM_PM);
@@ -521,25 +754,39 @@ public class SimpleDateFormat extends DateFormat
break;
case HOUR1_FIELD: // 1-12
buffer.setDefaultAttribute (DateFormat.Field.HOUR1);
- withLeadingZeros (((calendar.get (Calendar.HOUR) + 11) % 12) + 1, p.size, buffer);
+ withLeadingZeros (((calendar.get (Calendar.HOUR) + 11) % 12) + 1,
+ cf.getSize(), buffer);
break;
case HOUR0_FIELD: // 0-11
buffer.setDefaultAttribute (DateFormat.Field.HOUR0);
- withLeadingZeros (calendar.get (Calendar.HOUR), p.size, buffer);
+ withLeadingZeros (calendar.get (Calendar.HOUR), cf.getSize(), buffer);
break;
case TIMEZONE_FIELD:
buffer.setDefaultAttribute (DateFormat.Field.TIME_ZONE);
TimeZone zone = calendar.getTimeZone();
boolean isDST = calendar.get (Calendar.DST_OFFSET) != 0;
// FIXME: XXX: This should be a localized time zone.
- String zoneID = zone.getDisplayName (isDST, p.size > 3 ? TimeZone.LONG : TimeZone.SHORT);
+ String zoneID = zone.getDisplayName
+ (isDST, cf.getSize() > 3 ? TimeZone.LONG : TimeZone.SHORT);
buffer.append (zoneID);
break;
+ case RFC822_TIMEZONE_FIELD:
+ buffer.setDefaultAttribute(DateFormat.Field.RFC822_TIME_ZONE);
+ int pureMinutes = (calendar.get(Calendar.ZONE_OFFSET) +
+ calendar.get(Calendar.DST_OFFSET)) / (1000 * 60);
+ String sign = (pureMinutes < 0) ? "-" : "+";
+ int hours = pureMinutes / 60;
+ int minutes = pureMinutes % 60;
+ buffer.append(sign);
+ withLeadingZeros(hours, 2, buffer);
+ withLeadingZeros(minutes, 2, buffer);
+ break;
default:
- throw new IllegalArgumentException ("Illegal pattern character " + p.field);
+ throw new IllegalArgumentException ("Illegal pattern character " +
+ cf.getCharacter());
}
if (pos != null && (buffer.getDefaultAttribute() == pos.getFieldAttribute()
- || p.field == pos.getField()))
+ || cf.getField() == pos.getField()))
{
pos.setBeginIndex(beginIndex);
pos.setEndIndex(buffer.length());
@@ -614,232 +861,277 @@ public class SimpleDateFormat extends DateFormat
boolean saw_timezone = false;
int quote_start = -1;
boolean is2DigitYear = false;
- for (; fmt_index < fmt_max; ++fmt_index)
+ try
{
- char ch = pattern.charAt(fmt_index);
- if (ch == '\'')
+ for (; fmt_index < fmt_max; ++fmt_index)
{
- int index = pos.getIndex();
- if (fmt_index < fmt_max - 1
- && pattern.charAt(fmt_index + 1) == '\'')
+ char ch = pattern.charAt(fmt_index);
+ if (ch == '\'')
+ {
+ int index = pos.getIndex();
+ if (fmt_index < fmt_max - 1
+ && pattern.charAt(fmt_index + 1) == '\'')
+ {
+ if (! expect (dateStr, pos, ch))
+ return null;
+ ++fmt_index;
+ }
+ else
+ quote_start = quote_start < 0 ? fmt_index : -1;
+ continue;
+ }
+
+ if (quote_start != -1
+ || ((ch < 'a' || ch > 'z')
+ && (ch < 'A' || ch > 'Z')))
{
if (! expect (dateStr, pos, ch))
return null;
- ++fmt_index;
+ continue;
}
- else
- quote_start = quote_start < 0 ? fmt_index : -1;
- continue;
- }
-
- if (quote_start != -1
- || ((ch < 'a' || ch > 'z')
- && (ch < 'A' || ch > 'Z')))
- {
- if (! expect (dateStr, pos, ch))
- return null;
- continue;
- }
-
- // We've arrived at a potential pattern character in the
- // pattern.
- int first = fmt_index;
- while (++fmt_index < fmt_max && pattern.charAt(fmt_index) == ch)
- ;
- int fmt_count = fmt_index - first;
-
- // We might need to limit the number of digits to parse in
- // some cases. We look to the next pattern character to
- // decide.
- boolean limit_digits = false;
- if (fmt_index < fmt_max
- && standardChars.indexOf(pattern.charAt(fmt_index)) >= 0)
- limit_digits = true;
- --fmt_index;
-
- // We can handle most fields automatically: most either are
- // numeric or are looked up in a string vector. In some cases
- // we need an offset. When numeric, `offset' is added to the
- // resulting value. When doing a string lookup, offset is the
- // initial index into the string array.
- int calendar_field;
- boolean is_numeric = true;
- String[] match = null;
- int offset = 0;
- boolean maybe2DigitYear = false;
- switch (ch)
- {
- case 'd':
- calendar_field = Calendar.DATE;
- break;
- case 'D':
- calendar_field = Calendar.DAY_OF_YEAR;
- break;
- case 'F':
- calendar_field = Calendar.DAY_OF_WEEK_IN_MONTH;
- break;
- case 'E':
- is_numeric = false;
- offset = 1;
- calendar_field = Calendar.DAY_OF_WEEK;
- match = (fmt_count <= 3
- ? formatData.getShortWeekdays()
- : formatData.getWeekdays());
- break;
- case 'w':
- calendar_field = Calendar.WEEK_OF_YEAR;
- break;
- case 'W':
- calendar_field = Calendar.WEEK_OF_MONTH;
- break;
- case 'M':
- calendar_field = Calendar.MONTH;
- if (fmt_count <= 2)
- offset = -1;
- else
+
+ // We've arrived at a potential pattern character in the
+ // pattern.
+ int fmt_count = 1;
+ while (++fmt_index < fmt_max && pattern.charAt(fmt_index) == ch)
{
- is_numeric = false;
- match = (fmt_count <= 3
- ? formatData.getShortMonths()
- : formatData.getMonths());
+ ++fmt_count;
}
- break;
- case 'y':
- calendar_field = Calendar.YEAR;
- if (fmt_count <= 2)
- maybe2DigitYear = true;
- break;
- case 'K':
- calendar_field = Calendar.HOUR;
- break;
- case 'h':
- calendar_field = Calendar.HOUR;
- break;
- case 'H':
- calendar_field = Calendar.HOUR_OF_DAY;
- break;
- case 'k':
- calendar_field = Calendar.HOUR_OF_DAY;
- break;
- case 'm':
- calendar_field = Calendar.MINUTE;
- break;
- case 's':
- calendar_field = Calendar.SECOND;
- break;
- case 'S':
- calendar_field = Calendar.MILLISECOND;
- break;
- case 'a':
- is_numeric = false;
- calendar_field = Calendar.AM_PM;
- match = formatData.getAmPmStrings();
- break;
- case 'z':
- // We need a special case for the timezone, because it
- // uses a different data structure than the other cases.
- is_numeric = false;
- calendar_field = Calendar.DST_OFFSET;
- String[][] zoneStrings = formatData.getZoneStrings();
- int zoneCount = zoneStrings.length;
- int index = pos.getIndex();
- boolean found_zone = false;
- for (int j = 0; j < zoneCount; j++)
+
+ // We might need to limit the number of digits to parse in
+ // some cases. We look to the next pattern character to
+ // decide.
+ boolean limit_digits = false;
+ if (fmt_index < fmt_max
+ && standardChars.indexOf(pattern.charAt(fmt_index)) >= 0)
+ limit_digits = true;
+ --fmt_index;
+
+ // We can handle most fields automatically: most either are
+ // numeric or are looked up in a string vector. In some cases
+ // we need an offset. When numeric, `offset' is added to the
+ // resulting value. When doing a string lookup, offset is the
+ // initial index into the string array.
+ int calendar_field;
+ boolean is_numeric = true;
+ int offset = 0;
+ boolean maybe2DigitYear = false;
+ boolean oneBasedHour = false;
+ boolean oneBasedHourOfDay = false;
+ Integer simpleOffset;
+ String[] set1 = null;
+ String[] set2 = null;
+ switch (ch)
{
- String[] strings = zoneStrings[j];
- int k;
- for (k = 1; k < strings.length; ++k)
+ case 'd':
+ calendar_field = Calendar.DATE;
+ break;
+ case 'D':
+ calendar_field = Calendar.DAY_OF_YEAR;
+ break;
+ case 'F':
+ calendar_field = Calendar.DAY_OF_WEEK_IN_MONTH;
+ break;
+ case 'E':
+ is_numeric = false;
+ offset = 1;
+ calendar_field = Calendar.DAY_OF_WEEK;
+ set1 = formatData.getWeekdays();
+ set2 = formatData.getShortWeekdays();
+ break;
+ case 'w':
+ calendar_field = Calendar.WEEK_OF_YEAR;
+ break;
+ case 'W':
+ calendar_field = Calendar.WEEK_OF_MONTH;
+ break;
+ case 'M':
+ calendar_field = Calendar.MONTH;
+ if (fmt_count <= 2)
+ offset = -1;
+ else
{
- if (dateStr.startsWith(strings[k], index))
- break;
+ is_numeric = false;
+ set1 = formatData.getMonths();
+ set2 = formatData.getShortMonths();
}
- if (k != strings.length)
+ break;
+ case 'y':
+ calendar_field = Calendar.YEAR;
+ if (fmt_count <= 2)
+ maybe2DigitYear = true;
+ break;
+ case 'K':
+ calendar_field = Calendar.HOUR;
+ break;
+ case 'h':
+ calendar_field = Calendar.HOUR;
+ oneBasedHour = true;
+ break;
+ case 'H':
+ calendar_field = Calendar.HOUR_OF_DAY;
+ break;
+ case 'k':
+ calendar_field = Calendar.HOUR_OF_DAY;
+ oneBasedHourOfDay = true;
+ break;
+ case 'm':
+ calendar_field = Calendar.MINUTE;
+ break;
+ case 's':
+ calendar_field = Calendar.SECOND;
+ break;
+ case 'S':
+ calendar_field = Calendar.MILLISECOND;
+ break;
+ case 'a':
+ is_numeric = false;
+ calendar_field = Calendar.AM_PM;
+ set1 = formatData.getAmPmStrings();
+ break;
+ case 'z':
+ case 'Z':
+ // We need a special case for the timezone, because it
+ // uses a different data structure than the other cases.
+ is_numeric = false;
+ calendar_field = Calendar.ZONE_OFFSET;
+ String[][] zoneStrings = formatData.getZoneStrings();
+ int zoneCount = zoneStrings.length;
+ int index = pos.getIndex();
+ boolean found_zone = false;
+ simpleOffset = computeOffset(dateStr.substring(index));
+ if (simpleOffset != null)
{
found_zone = true;
saw_timezone = true;
- TimeZone tz = TimeZone.getTimeZone (strings[0]);
- calendar.set (Calendar.ZONE_OFFSET, tz.getRawOffset ());
- offset = 0;
- if (k > 2 && tz instanceof SimpleTimeZone)
+ calendar.set(Calendar.DST_OFFSET, 0);
+ offset = simpleOffset.intValue();
+ }
+ else
+ {
+ for (int j = 0; j < zoneCount; j++)
{
- SimpleTimeZone stz = (SimpleTimeZone) tz;
- offset = stz.getDSTSavings ();
+ String[] strings = zoneStrings[j];
+ int k;
+ for (k = 0; k < strings.length; ++k)
+ {
+ if (dateStr.startsWith(strings[k], index))
+ break;
+ }
+ if (k != strings.length)
+ {
+ found_zone = true;
+ saw_timezone = true;
+ TimeZone tz = TimeZone.getTimeZone (strings[0]);
+ // Check if it's a DST zone or ordinary
+ if(k == 3 || k == 4)
+ calendar.set (Calendar.DST_OFFSET, tz.getDSTSavings());
+ else
+ calendar.set (Calendar.DST_OFFSET, 0);
+ offset = tz.getRawOffset ();
+ pos.setIndex(index + strings[k].length());
+ break;
+ }
}
- pos.setIndex(index + strings[k].length());
- break;
}
- }
- if (! found_zone)
- {
+ if (! found_zone)
+ {
+ pos.setErrorIndex(pos.getIndex());
+ return null;
+ }
+ break;
+ default:
pos.setErrorIndex(pos.getIndex());
return null;
}
- break;
- default:
- pos.setErrorIndex(pos.getIndex());
- return null;
- }
-
- // Compute the value we should assign to the field.
- int value;
- int index = -1;
- if (is_numeric)
- {
- numberFormat.setMinimumIntegerDigits(fmt_count);
- if (limit_digits)
- numberFormat.setMaximumIntegerDigits(fmt_count);
- if (maybe2DigitYear)
- index = pos.getIndex();
- Number n = numberFormat.parse(dateStr, pos);
- if (pos == null || ! (n instanceof Long))
- return null;
- value = n.intValue() + offset;
- }
- else if (match != null)
- {
- index = pos.getIndex();
- int i;
- for (i = offset; i < match.length; ++i)
+
+ // Compute the value we should assign to the field.
+ int value;
+ int index = -1;
+ if (is_numeric)
{
- if (dateStr.startsWith(match[i], index))
- break;
+ numberFormat.setMinimumIntegerDigits(fmt_count);
+ if (limit_digits)
+ numberFormat.setMaximumIntegerDigits(fmt_count);
+ if (maybe2DigitYear)
+ index = pos.getIndex();
+ Number n = numberFormat.parse(dateStr, pos);
+ if (pos == null || ! (n instanceof Long))
+ return null;
+ value = n.intValue() + offset;
}
- if (i == match.length)
+ else if (set1 != null)
{
- pos.setErrorIndex(index);
- return null;
+ index = pos.getIndex();
+ int i;
+ boolean found = false;
+ for (i = offset; i < set1.length; ++i)
+ {
+ if (set1[i] != null)
+ if (dateStr.toUpperCase().startsWith(set1[i].toUpperCase(),
+ index))
+ {
+ found = true;
+ pos.setIndex(index + set1[i].length());
+ break;
+ }
+ }
+ if (!found && set2 != null)
+ {
+ for (i = offset; i < set2.length; ++i)
+ {
+ if (set2[i] != null)
+ if (dateStr.toUpperCase().startsWith(set2[i].toUpperCase(),
+ index))
+ {
+ found = true;
+ pos.setIndex(index + set2[i].length());
+ break;
+ }
+ }
+ }
+ if (!found)
+ {
+ pos.setErrorIndex(index);
+ return null;
+ }
+ value = i;
}
- pos.setIndex(index + match[i].length());
- value = i;
- }
- else
- value = offset;
+ else
+ value = offset;
- if (maybe2DigitYear)
- {
- // Parse into default century if the numeric year string has
- // exactly 2 digits.
- int digit_count = pos.getIndex() - index;
- if (digit_count == 2)
- is2DigitYear = true;
- }
+ if (maybe2DigitYear)
+ {
+ // Parse into default century if the numeric year string has
+ // exactly 2 digits.
+ int digit_count = pos.getIndex() - index;
+ if (digit_count == 2)
+ {
+ is2DigitYear = true;
+ value += defaultCentury;
+ }
+ }
+
+ // Calendar uses 0-based hours.
+ // I.e. 00:00 AM is midnight, not 12 AM or 24:00
+ if (oneBasedHour && value == 12)
+ value = 0;
- // Assign the value and move on.
- calendar.set(calendar_field, value);
- }
+ if (oneBasedHourOfDay && value == 24)
+ value = 0;
+
+ // Assign the value and move on.
+ calendar.set(calendar_field, value);
+ }
- if (is2DigitYear)
- {
- // Apply the 80-20 heuristic to dermine the full year based on
- // defaultCenturyStart.
- int year = defaultCentury + calendar.get(Calendar.YEAR);
- calendar.set(Calendar.YEAR, year);
- if (calendar.getTime().compareTo(defaultCenturyStart) < 0)
- calendar.set(Calendar.YEAR, year + 100);
- }
-
- try
- {
+ if (is2DigitYear)
+ {
+ // Apply the 80-20 heuristic to dermine the full year based on
+ // defaultCenturyStart.
+ int year = calendar.get(Calendar.YEAR);
+ if (calendar.getTime().compareTo(defaultCenturyStart) < 0)
+ calendar.set(Calendar.YEAR, year + 100);
+ }
if (! saw_timezone)
{
// Use the real rules to determine whether or not this
@@ -854,6 +1146,69 @@ public class SimpleDateFormat extends DateFormat
pos.setErrorIndex(pos.getIndex());
return null;
}
+ }
+
+ /**
+ * <p>
+ * Computes the time zone offset in milliseconds
+ * relative to GMT, based on the supplied
+ * <code>String</code> representation.
+ * </p>
+ * <p>
+ * The supplied <code>String</code> must be a three
+ * or four digit signed number, with an optional 'GMT'
+ * prefix. The first one or two digits represents the hours,
+ * while the last two represent the minutes. The
+ * two sets of digits can optionally be separated by
+ * ':'. The mandatory sign prefix (either '+' or '-')
+ * indicates the direction of the offset from GMT.
+ * </p>
+ * <p>
+ * For example, 'GMT+0200' specifies 2 hours after
+ * GMT, while '-05:00' specifies 5 hours prior to
+ * GMT. The special case of 'GMT' alone can be used
+ * to represent the offset, 0.
+ * </p>
+ * <p>
+ * If the <code>String</code> can not be parsed,
+ * the result will be null. The resulting offset
+ * is wrapped in an <code>Integer</code> object, in
+ * order to allow such failure to be represented.
+ * </p>
+ *
+ * @param zoneString a string in the form
+ * (GMT)? sign hours : minutes
+ * where sign = '+' or '-', hours
+ * is a one or two digits representing
+ * a number between 0 and 23, and
+ * minutes is two digits representing
+ * a number between 0 and 59.
+ * @return the parsed offset, or null if parsing
+ * failed.
+ */
+ private Integer computeOffset(String zoneString)
+ {
+ Pattern pattern =
+ Pattern.compile("(GMT)?([+-])([012])?([0-9]):?([0-9]{2})");
+ Matcher matcher = pattern.matcher(zoneString);
+ if (matcher.matches())
+ {
+ int sign = matcher.group(2).equals("+") ? 1 : -1;
+ int hour = (Integer.parseInt(matcher.group(3)) * 10)
+ + Integer.parseInt(matcher.group(4));
+ int minutes = Integer.parseInt(matcher.group(5));
+
+ if (hour > 23)
+ return null;
+
+ int offset = sign * ((hour * 60) + minutes) * 60000;
+ return new Integer(offset);
+ }
+ else if (zoneString.startsWith("GMT"))
+ {
+ return new Integer(0);
+ }
+ return null;
}
// Compute the start of the current century as defined by
@@ -864,4 +1219,19 @@ public class SimpleDateFormat extends DateFormat
calendar.set(Calendar.YEAR, year - 80);
set2DigitYearStart(calendar.getTime());
}
+
+ /**
+ * Returns a copy of this instance of
+ * <code>SimpleDateFormat</code>. The copy contains
+ * clones of the formatting symbols and the 2-digit
+ * year century start date.
+ */
+ public Object clone()
+ {
+ SimpleDateFormat clone = (SimpleDateFormat) super.clone();
+ clone.setDateFormatSymbols((DateFormatSymbols) formatData.clone());
+ clone.set2DigitYearStart((Date) defaultCenturyStart.clone());
+ return clone;
+ }
+
}
diff --git a/libjava/java/text/StringCharacterIterator.java b/libjava/java/text/StringCharacterIterator.java
index 44bac6b74a3..82df7c44992 100644
--- a/libjava/java/text/StringCharacterIterator.java
+++ b/libjava/java/text/StringCharacterIterator.java
@@ -1,5 +1,5 @@
/* StringCharacterIterator.java -- Iterate over a character range in a string
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.text;
* the index to be set.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
*/
public final class StringCharacterIterator implements CharacterIterator
{
diff --git a/libjava/java/util/AbstractCollection.java b/libjava/java/util/AbstractCollection.java
index a98f41efbea..567380c1a9d 100644
--- a/libjava/java/util/AbstractCollection.java
+++ b/libjava/java/util/AbstractCollection.java
@@ -1,5 +1,5 @@
/* AbstractCollection.java -- Abstract implementation of most of Collection
- Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ import java.lang.reflect.Array;
*
* @author Original author unknown
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see AbstractSet
* @see AbstractList
diff --git a/libjava/java/util/AbstractList.java b/libjava/java/util/AbstractList.java
index 15cb5814ab8..37288a7bb9e 100644
--- a/libjava/java/util/AbstractList.java
+++ b/libjava/java/util/AbstractList.java
@@ -1,5 +1,5 @@
/* AbstractList.java -- Abstract implementation of most of List
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,7 +59,7 @@ package java.util;
*
* @author Original author unknown
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see List
* @see AbstractSequentialList
@@ -751,476 +751,475 @@ while (i.hasNext())
return new SubList(this, fromIndex, toIndex);
}
-} // class AbstractList
-
-
-/**
- * This class follows the implementation requirements set forth in
- * {@link AbstractList#subList(int, int)}. It matches Sun's implementation
- * by using a non-public top-level class in the same package.
- *
- * @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-class SubList extends AbstractList
-{
- // Package visible, for use by iterator.
- /** The original list. */
- final AbstractList backingList;
- /** The index of the first element of the sublist. */
- final int offset;
- /** The size of the sublist. */
- int size;
-
- /**
- * Construct the sublist.
- *
- * @param backing the list this comes from
- * @param fromIndex the lower bound, inclusive
- * @param toIndex the upper bound, exclusive
- */
- SubList(AbstractList backing, int fromIndex, int toIndex)
- {
- backingList = backing;
- modCount = backing.modCount;
- offset = fromIndex;
- size = toIndex - fromIndex;
- }
-
- /**
- * This method checks the two modCount fields to ensure that there has
- * not been a concurrent modification, returning if all is okay.
- *
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- */
- // This can be inlined. Package visible, for use by iterator.
- void checkMod()
- {
- if (modCount != backingList.modCount)
- throw new ConcurrentModificationException();
- }
-
- /**
- * This method checks that a value is between 0 and size (inclusive). If
- * it is not, an exception is thrown.
- *
- * @param index the value to check
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
- */
- // This will get inlined, since it is private.
- private void checkBoundsInclusive(int index)
- {
- if (index < 0 || index > size)
- throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
- + size);
- }
-
- /**
- * This method checks that a value is between 0 (inclusive) and size
- * (exclusive). If it is not, an exception is thrown.
- *
- * @param index the value to check
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
- */
- // This will get inlined, since it is private.
- private void checkBoundsExclusive(int index)
- {
- if (index < 0 || index >= size)
- throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
- + size);
- }
-
- /**
- * Specified by AbstractList.subList to return the private field size.
- *
- * @return the sublist size
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- */
- public int size()
- {
- checkMod();
- return size;
- }
-
- /**
- * Specified by AbstractList.subList to delegate to the backing list.
- *
- * @param index the location to modify
- * @param o the new value
- * @return the old value
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws UnsupportedOperationException if the backing list does not
- * support the set operation
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
- * @throws ClassCastException if o cannot be added to the backing list due
- * to its type
- * @throws IllegalArgumentException if o cannot be added to the backing list
- * for some other reason
- */
- public Object set(int index, Object o)
- {
- checkMod();
- checkBoundsExclusive(index);
- return backingList.set(index + offset, o);
- }
-
- /**
- * Specified by AbstractList.subList to delegate to the backing list.
- *
- * @param index the location to get from
- * @return the object at that location
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
- */
- public Object get(int index)
- {
- checkMod();
- checkBoundsExclusive(index);
- return backingList.get(index + offset);
- }
-
- /**
- * Specified by AbstractList.subList to delegate to the backing list.
- *
- * @param index the index to insert at
- * @param o the object to add
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
- * @throws UnsupportedOperationException if the backing list does not
- * support the add operation.
- * @throws ClassCastException if o cannot be added to the backing list due
- * to its type.
- * @throws IllegalArgumentException if o cannot be added to the backing
- * list for some other reason.
- */
- public void add(int index, Object o)
- {
- checkMod();
- checkBoundsInclusive(index);
- backingList.add(index + offset, o);
- size++;
- modCount = backingList.modCount;
- }
-
- /**
- * Specified by AbstractList.subList to delegate to the backing list.
- *
- * @param index the index to remove
- * @return the removed object
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
- * @throws UnsupportedOperationException if the backing list does not
- * support the remove operation
- */
- public Object remove(int index)
- {
- checkMod();
- checkBoundsExclusive(index);
- Object o = backingList.remove(index + offset);
- size--;
- modCount = backingList.modCount;
- return o;
- }
-
- /**
- * Specified by AbstractList.subList to delegate to the backing list.
- * This does no bounds checking, as it assumes it will only be called
- * by trusted code like clear() which has already checked the bounds.
- *
- * @param fromIndex the lower bound, inclusive
- * @param toIndex the upper bound, exclusive
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws UnsupportedOperationException if the backing list does
- * not support removing elements.
- */
- protected void removeRange(int fromIndex, int toIndex)
- {
- checkMod();
-
- backingList.removeRange(offset + fromIndex, offset + toIndex);
- size -= toIndex - fromIndex;
- modCount = backingList.modCount;
- }
-
- /**
- * Specified by AbstractList.subList to delegate to the backing list.
- *
- * @param index the location to insert at
- * @param c the collection to insert
- * @return true if this list was modified, in other words, c is non-empty
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
- * @throws UnsupportedOperationException if this list does not support the
- * addAll operation
- * @throws ClassCastException if some element of c cannot be added to this
- * list due to its type
- * @throws IllegalArgumentException if some element of c cannot be added
- * to this list for some other reason
- * @throws NullPointerException if the specified collection is null
- */
- public boolean addAll(int index, Collection c)
- {
- checkMod();
- checkBoundsInclusive(index);
- int csize = c.size();
- boolean result = backingList.addAll(offset + index, c);
- size += csize;
- modCount = backingList.modCount;
- return result;
- }
-
- /**
- * Specified by AbstractList.subList to return addAll(size, c).
- *
- * @param c the collection to insert
- * @return true if this list was modified, in other words, c is non-empty
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws UnsupportedOperationException if this list does not support the
- * addAll operation
- * @throws ClassCastException if some element of c cannot be added to this
- * list due to its type
- * @throws IllegalArgumentException if some element of c cannot be added
- * to this list for some other reason
- * @throws NullPointerException if the specified collection is null
- */
- public boolean addAll(Collection c)
- {
- return addAll(size, c);
- }
-
- /**
- * Specified by AbstractList.subList to return listIterator().
- *
- * @return an iterator over the sublist
- */
- public Iterator iterator()
- {
- return listIterator();
- }
-
/**
- * Specified by AbstractList.subList to return a wrapper around the
- * backing list's iterator.
+ * This class follows the implementation requirements set forth in
+ * {@link AbstractList#subList(int, int)}. It matches Sun's implementation
+ * by using a non-public top-level class in the same package.
*
- * @param index the start location of the iterator
- * @return a list iterator over the sublist
- * @throws ConcurrentModificationException if the backing list has been
- * modified externally to this sublist
- * @throws IndexOutOfBoundsException if the value is out of range
+ * @author Original author unknown
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
- public ListIterator listIterator(final int index)
+ private static class SubList extends AbstractList
{
- checkMod();
- checkBoundsInclusive(index);
-
- return new ListIterator()
+ // Package visible, for use by iterator.
+ /** The original list. */
+ final AbstractList backingList;
+ /** The index of the first element of the sublist. */
+ final int offset;
+ /** The size of the sublist. */
+ int size;
+
+ /**
+ * Construct the sublist.
+ *
+ * @param backing the list this comes from
+ * @param fromIndex the lower bound, inclusive
+ * @param toIndex the upper bound, exclusive
+ */
+ SubList(AbstractList backing, int fromIndex, int toIndex)
{
- private final ListIterator i = backingList.listIterator(index + offset);
- private int position = index;
-
- /**
- * Tests to see if there are any more objects to
- * return.
- *
- * @return True if the end of the list has not yet been
- * reached.
- * @throws ConcurrentModificationException if the
- * list has been modified elsewhere.
- */
- public boolean hasNext()
- {
- checkMod();
- return position < size;
- }
-
- /**
- * Tests to see if there are objects prior to the
- * current position in the list.
- *
- * @return True if objects exist prior to the current
- * position of the iterator.
- * @throws ConcurrentModificationException if the
- * list has been modified elsewhere.
- */
- public boolean hasPrevious()
- {
- checkMod();
- return position > 0;
- }
-
- /**
- * Retrieves the next object from the list.
- *
- * @return The next object.
- * @throws NoSuchElementException if there are no
- * more objects to retrieve.
- * @throws ConcurrentModificationException if the
- * list has been modified elsewhere.
- */
- public Object next()
- {
- if (position == size)
- throw new NoSuchElementException();
- position++;
- return i.next();
- }
-
- /**
- * Retrieves the previous object from the list.
- *
- * @return The next object.
- * @throws NoSuchElementException if there are no
- * previous objects to retrieve.
- * @throws ConcurrentModificationException if the
- * list has been modified elsewhere.
- */
- public Object previous()
- {
- if (position == 0)
- throw new NoSuchElementException();
- position--;
- return i.previous();
- }
-
- /**
- * Returns the index of the next element in the
- * list, which will be retrieved by <code>next()</code>
- *
- * @return The index of the next element.
- * @throws ConcurrentModificationException if the
- * list has been modified elsewhere.
- */
- public int nextIndex()
- {
- return i.nextIndex() - offset;
- }
-
- /**
- * Returns the index of the previous element in the
- * list, which will be retrieved by <code>previous()</code>
- *
- * @return The index of the previous element.
- * @throws ConcurrentModificationException if the
- * list has been modified elsewhere.
- */
- public int previousIndex()
- {
- return i.previousIndex() - offset;
- }
-
- /**
- * Removes the last object retrieved by <code>next()</code>
- * from the list, if the list supports object removal.
- *
- * @throws IllegalStateException if the iterator is positioned
- * before the start of the list or the last object has already
- * been removed.
- * @throws UnsupportedOperationException if the list does
- * not support removing elements.
- */
- public void remove()
- {
- i.remove();
- size--;
- position = nextIndex();
- modCount = backingList.modCount;
- }
-
-
- /**
- * Replaces the last object retrieved by <code>next()</code>
- * or <code>previous</code> with o, if the list supports object
- * replacement and an add or remove operation has not already
- * been performed.
- *
- * @throws IllegalStateException if the iterator is positioned
- * before the start of the list or the last object has already
- * been removed.
- * @throws UnsupportedOperationException if the list doesn't support
- * the addition or removal of elements.
- * @throws ClassCastException if the type of o is not a valid type
- * for this list.
- * @throws IllegalArgumentException if something else related to o
- * prevents its addition.
- * @throws ConcurrentModificationException if the list
- * has been modified elsewhere.
- */
- public void set(Object o)
- {
- i.set(o);
- }
+ backingList = backing;
+ modCount = backing.modCount;
+ offset = fromIndex;
+ size = toIndex - fromIndex;
+ }
+
+ /**
+ * This method checks the two modCount fields to ensure that there has
+ * not been a concurrent modification, returning if all is okay.
+ *
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ */
+ // This can be inlined. Package visible, for use by iterator.
+ void checkMod()
+ {
+ if (modCount != backingList.modCount)
+ throw new ConcurrentModificationException();
+ }
+
+ /**
+ * This method checks that a value is between 0 and size (inclusive). If
+ * it is not, an exception is thrown.
+ *
+ * @param index the value to check
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
+ */
+ // This will get inlined, since it is private.
+ private void checkBoundsInclusive(int index)
+ {
+ if (index < 0 || index > size)
+ throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+ + size);
+ }
+
+ /**
+ * This method checks that a value is between 0 (inclusive) and size
+ * (exclusive). If it is not, an exception is thrown.
+ *
+ * @param index the value to check
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+ */
+ // This will get inlined, since it is private.
+ private void checkBoundsExclusive(int index)
+ {
+ if (index < 0 || index >= size)
+ throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+ + size);
+ }
+
+ /**
+ * Specified by AbstractList.subList to return the private field size.
+ *
+ * @return the sublist size
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ */
+ public int size()
+ {
+ checkMod();
+ return size;
+ }
+
+ /**
+ * Specified by AbstractList.subList to delegate to the backing list.
+ *
+ * @param index the location to modify
+ * @param o the new value
+ * @return the old value
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws UnsupportedOperationException if the backing list does not
+ * support the set operation
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+ * @throws ClassCastException if o cannot be added to the backing list due
+ * to its type
+ * @throws IllegalArgumentException if o cannot be added to the backing list
+ * for some other reason
+ */
+ public Object set(int index, Object o)
+ {
+ checkMod();
+ checkBoundsExclusive(index);
+ return backingList.set(index + offset, o);
+ }
+
+ /**
+ * Specified by AbstractList.subList to delegate to the backing list.
+ *
+ * @param index the location to get from
+ * @return the object at that location
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+ */
+ public Object get(int index)
+ {
+ checkMod();
+ checkBoundsExclusive(index);
+ return backingList.get(index + offset);
+ }
+
+ /**
+ * Specified by AbstractList.subList to delegate to the backing list.
+ *
+ * @param index the index to insert at
+ * @param o the object to add
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
+ * @throws UnsupportedOperationException if the backing list does not
+ * support the add operation.
+ * @throws ClassCastException if o cannot be added to the backing list due
+ * to its type.
+ * @throws IllegalArgumentException if o cannot be added to the backing
+ * list for some other reason.
+ */
+ public void add(int index, Object o)
+ {
+ checkMod();
+ checkBoundsInclusive(index);
+ backingList.add(index + offset, o);
+ size++;
+ modCount = backingList.modCount;
+ }
+
+ /**
+ * Specified by AbstractList.subList to delegate to the backing list.
+ *
+ * @param index the index to remove
+ * @return the removed object
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+ * @throws UnsupportedOperationException if the backing list does not
+ * support the remove operation
+ */
+ public Object remove(int index)
+ {
+ checkMod();
+ checkBoundsExclusive(index);
+ Object o = backingList.remove(index + offset);
+ size--;
+ modCount = backingList.modCount;
+ return o;
+ }
+
+ /**
+ * Specified by AbstractList.subList to delegate to the backing list.
+ * This does no bounds checking, as it assumes it will only be called
+ * by trusted code like clear() which has already checked the bounds.
+ *
+ * @param fromIndex the lower bound, inclusive
+ * @param toIndex the upper bound, exclusive
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws UnsupportedOperationException if the backing list does
+ * not support removing elements.
+ */
+ protected void removeRange(int fromIndex, int toIndex)
+ {
+ checkMod();
+
+ backingList.removeRange(offset + fromIndex, offset + toIndex);
+ size -= toIndex - fromIndex;
+ modCount = backingList.modCount;
+ }
+
+ /**
+ * Specified by AbstractList.subList to delegate to the backing list.
+ *
+ * @param index the location to insert at
+ * @param c the collection to insert
+ * @return true if this list was modified, in other words, c is non-empty
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
+ * @throws UnsupportedOperationException if this list does not support the
+ * addAll operation
+ * @throws ClassCastException if some element of c cannot be added to this
+ * list due to its type
+ * @throws IllegalArgumentException if some element of c cannot be added
+ * to this list for some other reason
+ * @throws NullPointerException if the specified collection is null
+ */
+ public boolean addAll(int index, Collection c)
+ {
+ checkMod();
+ checkBoundsInclusive(index);
+ int csize = c.size();
+ boolean result = backingList.addAll(offset + index, c);
+ size += csize;
+ modCount = backingList.modCount;
+ return result;
+ }
+
+ /**
+ * Specified by AbstractList.subList to return addAll(size, c).
+ *
+ * @param c the collection to insert
+ * @return true if this list was modified, in other words, c is non-empty
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws UnsupportedOperationException if this list does not support the
+ * addAll operation
+ * @throws ClassCastException if some element of c cannot be added to this
+ * list due to its type
+ * @throws IllegalArgumentException if some element of c cannot be added
+ * to this list for some other reason
+ * @throws NullPointerException if the specified collection is null
+ */
+ public boolean addAll(Collection c)
+ {
+ return addAll(size, c);
+ }
+
+ /**
+ * Specified by AbstractList.subList to return listIterator().
+ *
+ * @return an iterator over the sublist
+ */
+ public Iterator iterator()
+ {
+ return listIterator();
+ }
+
+ /**
+ * Specified by AbstractList.subList to return a wrapper around the
+ * backing list's iterator.
+ *
+ * @param index the start location of the iterator
+ * @return a list iterator over the sublist
+ * @throws ConcurrentModificationException if the backing list has been
+ * modified externally to this sublist
+ * @throws IndexOutOfBoundsException if the value is out of range
+ */
+ public ListIterator listIterator(final int index)
+ {
+ checkMod();
+ checkBoundsInclusive(index);
- /**
- * Adds the supplied object before the element that would be returned
- * by a call to <code>next()</code>, if the list supports addition.
- *
- * @param o The object to add to the list.
- * @throws UnsupportedOperationException if the list doesn't support
- * the addition of new elements.
- * @throws ClassCastException if the type of o is not a valid type
- * for this list.
- * @throws IllegalArgumentException if something else related to o
- * prevents its addition.
- * @throws ConcurrentModificationException if the list
- * has been modified elsewhere.
- */
- public void add(Object o)
+ return new ListIterator()
{
- i.add(o);
- size++;
- position++;
- modCount = backingList.modCount;
- }
-
- // Here is the reason why the various modCount fields are mostly
- // ignored in this wrapper listIterator.
- // If the backing listIterator is failfast, then the following holds:
- // Using any other method on this list will call a corresponding
- // method on the backing list *after* the backing listIterator
- // is created, which will in turn cause a ConcurrentModException
- // when this listIterator comes to use the backing one. So it is
- // implicitly failfast.
- // If the backing listIterator is NOT failfast, then the whole of
- // this list isn't failfast, because the modCount field of the
- // backing list is not valid. It would still be *possible* to
- // make the iterator failfast wrt modifications of the sublist
- // only, but somewhat pointless when the list can be changed under
- // us.
- // Either way, no explicit handling of modCount is needed.
- // However modCount = backingList.modCount must be executed in add
- // and remove, and size must also be updated in these two methods,
- // since they do not go through the corresponding methods of the subList.
- };
- }
-} // class SubList
+ private final ListIterator i = backingList.listIterator(index + offset);
+ private int position = index;
+
+ /**
+ * Tests to see if there are any more objects to
+ * return.
+ *
+ * @return True if the end of the list has not yet been
+ * reached.
+ * @throws ConcurrentModificationException if the
+ * list has been modified elsewhere.
+ */
+ public boolean hasNext()
+ {
+ checkMod();
+ return position < size;
+ }
+
+ /**
+ * Tests to see if there are objects prior to the
+ * current position in the list.
+ *
+ * @return True if objects exist prior to the current
+ * position of the iterator.
+ * @throws ConcurrentModificationException if the
+ * list has been modified elsewhere.
+ */
+ public boolean hasPrevious()
+ {
+ checkMod();
+ return position > 0;
+ }
+
+ /**
+ * Retrieves the next object from the list.
+ *
+ * @return The next object.
+ * @throws NoSuchElementException if there are no
+ * more objects to retrieve.
+ * @throws ConcurrentModificationException if the
+ * list has been modified elsewhere.
+ */
+ public Object next()
+ {
+ if (position == size)
+ throw new NoSuchElementException();
+ position++;
+ return i.next();
+ }
+
+ /**
+ * Retrieves the previous object from the list.
+ *
+ * @return The next object.
+ * @throws NoSuchElementException if there are no
+ * previous objects to retrieve.
+ * @throws ConcurrentModificationException if the
+ * list has been modified elsewhere.
+ */
+ public Object previous()
+ {
+ if (position == 0)
+ throw new NoSuchElementException();
+ position--;
+ return i.previous();
+ }
+
+ /**
+ * Returns the index of the next element in the
+ * list, which will be retrieved by <code>next()</code>
+ *
+ * @return The index of the next element.
+ * @throws ConcurrentModificationException if the
+ * list has been modified elsewhere.
+ */
+ public int nextIndex()
+ {
+ return i.nextIndex() - offset;
+ }
+
+ /**
+ * Returns the index of the previous element in the
+ * list, which will be retrieved by <code>previous()</code>
+ *
+ * @return The index of the previous element.
+ * @throws ConcurrentModificationException if the
+ * list has been modified elsewhere.
+ */
+ public int previousIndex()
+ {
+ return i.previousIndex() - offset;
+ }
+
+ /**
+ * Removes the last object retrieved by <code>next()</code>
+ * from the list, if the list supports object removal.
+ *
+ * @throws IllegalStateException if the iterator is positioned
+ * before the start of the list or the last object has already
+ * been removed.
+ * @throws UnsupportedOperationException if the list does
+ * not support removing elements.
+ */
+ public void remove()
+ {
+ i.remove();
+ size--;
+ position = nextIndex();
+ modCount = backingList.modCount;
+ }
+
+
+ /**
+ * Replaces the last object retrieved by <code>next()</code>
+ * or <code>previous</code> with o, if the list supports object
+ * replacement and an add or remove operation has not already
+ * been performed.
+ *
+ * @throws IllegalStateException if the iterator is positioned
+ * before the start of the list or the last object has already
+ * been removed.
+ * @throws UnsupportedOperationException if the list doesn't support
+ * the addition or removal of elements.
+ * @throws ClassCastException if the type of o is not a valid type
+ * for this list.
+ * @throws IllegalArgumentException if something else related to o
+ * prevents its addition.
+ * @throws ConcurrentModificationException if the list
+ * has been modified elsewhere.
+ */
+ public void set(Object o)
+ {
+ i.set(o);
+ }
+
+ /**
+ * Adds the supplied object before the element that would be returned
+ * by a call to <code>next()</code>, if the list supports addition.
+ *
+ * @param o The object to add to the list.
+ * @throws UnsupportedOperationException if the list doesn't support
+ * the addition of new elements.
+ * @throws ClassCastException if the type of o is not a valid type
+ * for this list.
+ * @throws IllegalArgumentException if something else related to o
+ * prevents its addition.
+ * @throws ConcurrentModificationException if the list
+ * has been modified elsewhere.
+ */
+ public void add(Object o)
+ {
+ i.add(o);
+ size++;
+ position++;
+ modCount = backingList.modCount;
+ }
+
+ // Here is the reason why the various modCount fields are mostly
+ // ignored in this wrapper listIterator.
+ // If the backing listIterator is failfast, then the following holds:
+ // Using any other method on this list will call a corresponding
+ // method on the backing list *after* the backing listIterator
+ // is created, which will in turn cause a ConcurrentModException
+ // when this listIterator comes to use the backing one. So it is
+ // implicitly failfast.
+ // If the backing listIterator is NOT failfast, then the whole of
+ // this list isn't failfast, because the modCount field of the
+ // backing list is not valid. It would still be *possible* to
+ // make the iterator failfast wrt modifications of the sublist
+ // only, but somewhat pointless when the list can be changed under
+ // us.
+ // Either way, no explicit handling of modCount is needed.
+ // However modCount = backingList.modCount must be executed in add
+ // and remove, and size must also be updated in these two methods,
+ // since they do not go through the corresponding methods of the subList.
+ };
+ }
+ } // class SubList
-/**
- * This class is a RandomAccess version of SubList, as required by
- * {@link AbstractList#subList(int, int)}.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-final class RandomAccessSubList extends SubList
- implements RandomAccess
-{
/**
- * Construct the sublist.
+ * This class is a RandomAccess version of SubList, as required by
+ * {@link AbstractList#subList(int, int)}.
*
- * @param backing the list this comes from
- * @param fromIndex the lower bound, inclusive
- * @param toIndex the upper bound, exclusive
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
- RandomAccessSubList(AbstractList backing, int fromIndex, int toIndex)
+ private static final class RandomAccessSubList extends SubList
+ implements RandomAccess
{
- super(backing, fromIndex, toIndex);
- }
-} // class RandomAccessSubList
+ /**
+ * Construct the sublist.
+ *
+ * @param backing the list this comes from
+ * @param fromIndex the lower bound, inclusive
+ * @param toIndex the upper bound, exclusive
+ */
+ RandomAccessSubList(AbstractList backing, int fromIndex, int toIndex)
+ {
+ super(backing, fromIndex, toIndex);
+ }
+ } // class RandomAccessSubList
+
+} // class AbstractList
diff --git a/libjava/java/util/AbstractMap.java b/libjava/java/util/AbstractMap.java
index d27e93b65d1..81093f8e374 100644
--- a/libjava/java/util/AbstractMap.java
+++ b/libjava/java/util/AbstractMap.java
@@ -1,5 +1,5 @@
/* AbstractMap.java -- Abstract implementation of most of Map
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ package java.util;
*
* @author Original author unknown
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Map
* @see Collection
* @see HashMap
@@ -622,7 +622,7 @@ public abstract class AbstractMap implements Map
* life much easier.
*
* @author Jon Zeppieri
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
// XXX - FIXME Use fully qualified implements as gcj 3.1 workaround.
// Bug still exists in 3.4.1
diff --git a/libjava/java/util/AbstractSequentialList.java b/libjava/java/util/AbstractSequentialList.java
index 0e5d59fceec..f942e578ba1 100644
--- a/libjava/java/util/AbstractSequentialList.java
+++ b/libjava/java/util/AbstractSequentialList.java
@@ -1,5 +1,5 @@
/* AbstractSequentialList.java -- List implementation for sequential access
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ package java.util;
*
* @author Original author unknown
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see List
* @see AbstractList
diff --git a/libjava/java/util/AbstractSet.java b/libjava/java/util/AbstractSet.java
index ce266283ebe..dcab1c9d3ea 100644
--- a/libjava/java/util/AbstractSet.java
+++ b/libjava/java/util/AbstractSet.java
@@ -1,5 +1,5 @@
/* AbstractSet.java -- Abstract implementation of most of Set
- Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package java.util;
* the requirements placed on them by the Set interface.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see AbstractCollection
* @see Set
diff --git a/libjava/java/util/ArrayList.java b/libjava/java/util/ArrayList.java
index e39e4e0171b..2479efdf8b9 100644
--- a/libjava/java/util/ArrayList.java
+++ b/libjava/java/util/ArrayList.java
@@ -1,6 +1,6 @@
/* ArrayList.java -- JDK1.2's answer to Vector; this is an array-backed
implementation of the List interface
- Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -72,7 +72,7 @@ import java.lang.reflect.Array;
*
* @author Jon A. Zeppieri
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see List
* @see LinkedList
diff --git a/libjava/java/util/Arrays.java b/libjava/java/util/Arrays.java
index f2337aee6dc..f3f15e6ec2b 100644
--- a/libjava/java/util/Arrays.java
+++ b/libjava/java/util/Arrays.java
@@ -1,5 +1,5 @@
/* Arrays.java -- Utility class with methods to operate on arrays
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,7 +59,7 @@ import java.lang.reflect.Array;
*
* @author Original author unknown
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Comparable
* @see Comparator
* @since 1.2
@@ -935,7 +935,7 @@ public class Arrays
// sort
- // Thanks to Paul Fisher <rao@gnu.org> for finding this quicksort algorithm
+ // Thanks to Paul Fisher (rao@gnu.org) for finding this quicksort algorithm
// as specified by Sun and porting it to Java. The algorithm is an optimised
// quicksort, as described in Jon L. Bentley and M. Douglas McIlroy's
// "Engineering a Sort Function", Software-Practice and Experience, Vol.
@@ -2358,7 +2358,7 @@ public class Arrays
* Sun's choice for Serialization purposes. Element addition and removal
* is prohibited, but values can be modified.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
private static final class ArrayList extends AbstractList
diff --git a/libjava/java/util/BitSet.java b/libjava/java/util/BitSet.java
index d152ba1d96b..cf7a83ed083 100644
--- a/libjava/java/util/BitSet.java
+++ b/libjava/java/util/BitSet.java
@@ -1,5 +1,5 @@
/* BitSet.java -- A vector of bits.
- Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,8 +61,8 @@ import java.io.Serializable;
* undefined.
*
* @author Jochen Hoenicke
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status updated to 1.4
*/
public class BitSet implements Cloneable, Serializable
diff --git a/libjava/java/util/Calendar.java b/libjava/java/util/Calendar.java
index 1f0b27a56e8..7faaeee43bc 100644
--- a/libjava/java/util/Calendar.java
+++ b/libjava/java/util/Calendar.java
@@ -1,5 +1,5 @@
/* Calendar.java --
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,7 +51,7 @@ import java.lang.reflect.InvocationTargetException;
* integer fields which represent <code>YEAR</code>,
* <code>MONTH</code>, <code>DAY</code>, etc. The <code>Date</code>
* object represents a time in milliseconds since the Epoch. <br>
- *
+ *
* This class is locale sensitive. To get the Object matching the
* current locale you can use <code>getInstance</code>. You can even provide
* a locale or a timezone. <code>getInstance</code> returns currently
@@ -78,13 +78,13 @@ import java.lang.reflect.InvocationTargetException;
* and for the first line all fields are set, that line is used to
* compute the day. <br>
*
- *
+ *
<pre>month + day_of_month
month + week_of_month + day_of_week
month + day_of_week_of_month + day_of_week
day_of_year
day_of_week + week_of_year</pre>
- *
+ *
* The hour_of_day-field takes precedence over the ampm and
* hour_of_ampm fields. <br>
*
@@ -92,7 +92,7 @@ day_of_week + week_of_year</pre>
*
* To convert a calendar to a human readable form and vice versa, use
* the <code>java.text.DateFormat</code> class. <br>
- *
+ *
* Other useful things you can do with an calendar, is
* <code>roll</code>ing fields (that means increase/decrease a
* specific field by one, propagating overflows), or
@@ -101,7 +101,7 @@ day_of_week + week_of_year</pre>
* @see Date
* @see GregorianCalendar
* @see TimeZone
- * @see java.text.DateFormat
+ * @see java.text.DateFormat
*/
public abstract class Calendar implements Serializable, Cloneable
{
@@ -109,43 +109,52 @@ public abstract class Calendar implements Serializable, Cloneable
* Constant representing the era time field.
*/
public static final int ERA = 0;
+
/**
* Constant representing the year time field.
*/
public static final int YEAR = 1;
+
/**
* Constant representing the month time field. This field
* should contain one of the JANUARY,...,DECEMBER constants below.
*/
public static final int MONTH = 2;
+
/**
* Constant representing the week of the year field.
* @see #setFirstDayOfWeek(int)
*/
public static final int WEEK_OF_YEAR = 3;
+
/**
* Constant representing the week of the month time field.
* @see #setFirstDayOfWeek(int)
*/
public static final int WEEK_OF_MONTH = 4;
+
/**
* Constant representing the day time field, synonym for DAY_OF_MONTH.
*/
public static final int DATE = 5;
+
/**
* Constant representing the day time field.
*/
public static final int DAY_OF_MONTH = 5;
+
/**
* Constant representing the day of year time field. This is
* 1 for the first day in month.
*/
public static final int DAY_OF_YEAR = 6;
+
/**
* Constant representing the day of week time field. This field
* should contain one of the SUNDAY,...,SATURDAY constants below.
*/
public static final int DAY_OF_WEEK = 7;
+
/**
* Constant representing the day-of-week-in-month field. For
* instance this field contains 2 for the second thursday in a
@@ -153,42 +162,51 @@ public abstract class Calendar implements Serializable, Cloneable
* from the end of the month.
*/
public static final int DAY_OF_WEEK_IN_MONTH = 8;
+
/**
* Constant representing the part of the day for 12-hour clock. This
* should be one of AM or PM.
*/
public static final int AM_PM = 9;
+
/**
* Constant representing the hour time field for 12-hour clock.
*/
public static final int HOUR = 10;
+
/**
* Constant representing the hour of day time field for 24-hour clock.
*/
public static final int HOUR_OF_DAY = 11;
+
/**
* Constant representing the minute of hour time field.
*/
public static final int MINUTE = 12;
+
/**
* Constant representing the second time field.
*/
public static final int SECOND = 13;
+
/**
* Constant representing the millisecond time field.
*/
public static final int MILLISECOND = 14;
+
/**
* Constant representing the time zone offset time field for the
* time given in the other fields. It is measured in
- * milliseconds. The default is the offset of the time zone.
+ * milliseconds. The default is the offset of the time zone.
*/
public static final int ZONE_OFFSET = 15;
+
/**
* Constant representing the daylight saving time offset in
- * milliseconds. The default is the value given by the time zone.
+ * milliseconds. The default is the value given by the time zone.
*/
public static final int DST_OFFSET = 16;
+
/**
* Number of time fields.
*/
@@ -198,26 +216,32 @@ public abstract class Calendar implements Serializable, Cloneable
* Constant representing Sunday.
*/
public static final int SUNDAY = 1;
+
/**
* Constant representing Monday.
*/
public static final int MONDAY = 2;
+
/**
* Constant representing Tuesday.
*/
public static final int TUESDAY = 3;
+
/**
* Constant representing Wednesday.
*/
public static final int WEDNESDAY = 4;
+
/**
* Constant representing Thursday.
*/
public static final int THURSDAY = 5;
+
/**
* Constant representing Friday.
*/
public static final int FRIDAY = 6;
+
/**
* Constant representing Saturday.
*/
@@ -227,50 +251,62 @@ public abstract class Calendar implements Serializable, Cloneable
* Constant representing January.
*/
public static final int JANUARY = 0;
+
/**
* Constant representing February.
*/
public static final int FEBRUARY = 1;
+
/**
* Constant representing March.
*/
public static final int MARCH = 2;
+
/**
* Constant representing April.
*/
public static final int APRIL = 3;
+
/**
* Constant representing May.
*/
public static final int MAY = 4;
+
/**
* Constant representing June.
*/
public static final int JUNE = 5;
+
/**
* Constant representing July.
*/
public static final int JULY = 6;
+
/**
* Constant representing August.
*/
public static final int AUGUST = 7;
+
/**
* Constant representing September.
*/
public static final int SEPTEMBER = 8;
+
/**
* Constant representing October.
*/
public static final int OCTOBER = 9;
+
/**
* Constant representing November.
*/
public static final int NOVEMBER = 10;
+
/**
* Constant representing December.
*/
public static final int DECEMBER = 11;
+
/**
* Constant representing Undecimber. This is an artificial name useful
* for lunar calendars.
@@ -281,6 +317,7 @@ public abstract class Calendar implements Serializable, Cloneable
* Useful constant for 12-hour clock.
*/
public static final int AM = 0;
+
/**
* Useful constant for 12-hour clock.
*/
@@ -292,21 +329,25 @@ public abstract class Calendar implements Serializable, Cloneable
* @serial
*/
protected int[] fields = new int[FIELD_COUNT];
+
/**
* The flags which tell if the fields above have a value.
* @serial
*/
protected boolean[] isSet = new boolean[FIELD_COUNT];
+
/**
* The time in milliseconds since the epoch.
* @serial
*/
protected long time;
+
/**
* Tells if the above field has a valid value.
* @serial
*/
protected boolean isTimeSet;
+
/**
* Tells if the fields have a valid value. This superseeds the isSet
* array.
@@ -332,7 +373,7 @@ public abstract class Calendar implements Serializable, Cloneable
/**
* Sets what the first day of week is. This is used for
- * WEEK_OF_MONTH and WEEK_OF_YEAR fields.
+ * WEEK_OF_MONTH and WEEK_OF_YEAR fields.
* @serial
*/
private int firstDayOfWeek;
@@ -347,13 +388,20 @@ public abstract class Calendar implements Serializable, Cloneable
private int minimalDaysInFirstWeek;
/**
- * The version of the serialized data on the stream.
+ * Is set to true if DST_OFFSET is explicitly set. In that case
+ * it's value overrides the value computed from the current
+ * time and the timezone.
+ */
+ private boolean explicitDSTOffset = false;
+
+ /**
+ * The version of the serialized data on the stream.
* <dl><dt>0 or not present</dt>
* <dd> JDK 1.1.5 or later.</dd>
- * <dl><dt>1</dt>
+ * <dt>1</dt>
* <dd>JDK 1.1.6 or later. This always writes a correct `time' value
* on the stream, as well as the other fields, to be compatible with
- * earlier versions</dd>
+ * earlier versions</dd></dl>
* @since JDK1.1.6
* @serial
*/
@@ -371,14 +419,14 @@ public abstract class Calendar implements Serializable, Cloneable
private static final String bundleName = "gnu.java.locale.Calendar";
/**
- * get resource bundle:
+ * get resource bundle:
* The resources should be loaded via this method only. Iff an application
- * uses this method, the resourcebundle is required.
+ * uses this method, the resourcebundle is required.
*/
- private static ResourceBundle getBundle(Locale locale)
+ private static ResourceBundle getBundle(Locale locale)
{
return ResourceBundle.getBundle(bundleName, locale,
- ClassLoader.getSystemClassLoader());
+ ClassLoader.getSystemClassLoader());
}
/**
@@ -404,8 +452,9 @@ public abstract class Calendar implements Serializable, Cloneable
ResourceBundle rb = getBundle(locale);
firstDayOfWeek = ((Integer) rb.getObject("firstDayOfWeek")).intValue();
- minimalDaysInFirstWeek =
- ((Integer) rb.getObject("minimalDaysInFirstWeek")).intValue();
+ minimalDaysInFirstWeek = ((Integer) rb.getObject("minimalDaysInFirstWeek"))
+ .intValue();
+ clear();
}
/**
@@ -437,15 +486,17 @@ public abstract class Calendar implements Serializable, Cloneable
return getInstance(TimeZone.getDefault(), locale);
}
- /**
+ /**
* Cache of locale->calendar-class mappings. This avoids having to do a ResourceBundle
- * lookup for every getInstance call.
+ * lookup for every getInstance call.
*/
private static HashMap cache = new HashMap();
/** Preset argument types for calendar-class constructor lookup. */
- private static Class[] ctorArgTypes
- = new Class[] {TimeZone.class, Locale.class};
+ private static Class[] ctorArgTypes = new Class[]
+ {
+ TimeZone.class, Locale.class
+ };
/**
* Creates a calendar representing the actual time, using the given
@@ -473,7 +524,7 @@ public abstract class Calendar implements Serializable, Cloneable
}
}
- // GregorianCalendar is by far the most common case. Optimize by
+ // GregorianCalendar is by far the most common case. Optimize by
// avoiding reflection.
if (calendarClass == GregorianCalendar.class)
return new GregorianCalendar(zone, locale);
@@ -481,7 +532,7 @@ public abstract class Calendar implements Serializable, Cloneable
if (Calendar.class.isAssignableFrom(calendarClass))
{
Constructor ctor = calendarClass.getConstructor(ctorArgTypes);
- return (Calendar) ctor.newInstance(new Object[] {zone, locale});
+ return (Calendar) ctor.newInstance(new Object[] { zone, locale });
}
}
catch (ClassNotFoundException ex)
@@ -504,9 +555,9 @@ public abstract class Calendar implements Serializable, Cloneable
{
exception = ex;
}
-
- throw new RuntimeException("Error instantiating calendar for locale " +
- locale, exception);
+
+ throw new RuntimeException("Error instantiating calendar for locale "
+ + locale, exception);
}
/**
@@ -530,7 +581,7 @@ public abstract class Calendar implements Serializable, Cloneable
* Converts the milliseconds since the epoch UTC
* (<code>time</code>) to time fields
* (<code>fields</code>). Override this method if you write your
- * own Calendar.
+ * own Calendar.
*/
protected abstract void computeFields();
@@ -541,7 +592,7 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public final Date getTime()
{
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
return new Date(time);
}
@@ -562,7 +613,7 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public long getTimeInMillis()
{
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
return time;
}
@@ -575,9 +626,9 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public void setTimeInMillis(long time)
{
+ clear();
this.time = time;
isTimeSet = true;
- computeFields();
}
/**
@@ -593,14 +644,14 @@ public abstract class Calendar implements Serializable, Cloneable
public int get(int field)
{
// If the requested field is invalid, force all fields to be recomputed.
- if (!isSet[field])
+ if (! isSet[field])
areFieldsSet = false;
complete();
return fields[field];
}
/**
- * Gets the value of the specified field. This method doesn't
+ * Gets the value of the specified field. This method doesn't
* recompute the fields, if they are invalid.
* @param field the time field. One of the time field constants.
* @return the value of the specified field, undefined if
@@ -626,21 +677,78 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public void set(int field, int value)
{
+ if (isTimeSet)
+ for (int i = 0; i < FIELD_COUNT; i++)
+ isSet[i] = false;
isTimeSet = false;
fields[field] = value;
isSet[field] = true;
+
+ // The five valid date patterns, in order of priority
+ // 1 YEAR + MONTH + DAY_OF_MONTH
+ // 2 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
+ // 3 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
+ // 4 YEAR + DAY_OF_YEAR
+ // 5 YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
switch (field)
{
- case YEAR:
- case MONTH:
- case DATE:
+ case MONTH: // pattern 1,2 or 3
+ isSet[DAY_OF_YEAR] = false;
+ isSet[WEEK_OF_YEAR] = false;
+ break;
+ case DAY_OF_MONTH: // pattern 1
+ isSet[YEAR] = true;
+ isSet[MONTH] = true;
+ isSet[WEEK_OF_MONTH] = true;
+ isSet[DAY_OF_WEEK] = false;
+ isSet[DAY_OF_WEEK_IN_MONTH] = false;
+ isSet[DAY_OF_YEAR] = false;
+ isSet[WEEK_OF_YEAR] = false;
+ break;
+ case WEEK_OF_MONTH: // pattern 2
+ if (! isSet[DAY_OF_WEEK])
+ fields[DAY_OF_WEEK] = getFirstDayOfWeek();
+ isSet[YEAR] = true;
+ isSet[MONTH] = true;
+ isSet[DAY_OF_WEEK] = true;
+ isSet[DAY_OF_MONTH] = false;
+ isSet[DAY_OF_WEEK_IN_MONTH] = false;
+ isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
+ break;
+ case DAY_OF_WEEK_IN_MONTH: // pattern 3
+ if (! isSet[DAY_OF_WEEK])
+ fields[DAY_OF_WEEK] = getFirstDayOfWeek();
+ isSet[YEAR] = true;
+ isSet[MONTH] = true;
+ isSet[DAY_OF_WEEK] = true;
isSet[DAY_OF_YEAR] = false;
+ isSet[DAY_OF_MONTH] = false;
+ isSet[WEEK_OF_MONTH] = false;
+ isSet[WEEK_OF_YEAR] = false;
+ break;
+ case DAY_OF_YEAR: // pattern 4
+ isSet[YEAR] = true;
+ isSet[MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
+ isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
+ isSet[WEEK_OF_YEAR] = false;
+ isSet[DAY_OF_WEEK_IN_MONTH] = false;
+ break;
+ case WEEK_OF_YEAR: // pattern 5
+ if (! isSet[DAY_OF_WEEK])
+ fields[DAY_OF_WEEK] = getFirstDayOfWeek();
+ isSet[YEAR] = true;
+ isSet[DAY_OF_WEEK] = true;
+ isSet[MONTH] = false;
+ isSet[DAY_OF_MONTH] = false;
+ isSet[WEEK_OF_MONTH] = false;
+ isSet[DAY_OF_YEAR] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
break;
case AM_PM:
+ isSet[HOUR] = true;
isSet[HOUR_OF_DAY] = false;
break;
case HOUR_OF_DAY:
@@ -648,12 +756,15 @@ public abstract class Calendar implements Serializable, Cloneable
isSet[HOUR] = false;
break;
case HOUR:
+ isSet[AM_PM] = true;
isSet[HOUR_OF_DAY] = false;
break;
+ case DST_OFFSET:
+ explicitDSTOffset = true;
}
// May have crossed over a DST boundary.
- if (field != DST_OFFSET && field != ZONE_OFFSET)
+ if (! explicitDSTOffset && (field != DST_OFFSET && field != ZONE_OFFSET))
isSet[DST_OFFSET] = false;
}
@@ -675,8 +786,10 @@ public abstract class Calendar implements Serializable, Cloneable
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
+ isSet[ERA] = false;
- isSet[DST_OFFSET] = false; // May have crossed a DST boundary.
+ if (! explicitDSTOffset)
+ isSet[DST_OFFSET] = false; // May have crossed a DST boundary.
}
/**
@@ -706,8 +819,8 @@ public abstract class Calendar implements Serializable, Cloneable
* @param minute the minute.
* @param second the second.
*/
- public final void set(int year, int month, int date,
- int hour, int minute, int second)
+ public final void set(int year, int month, int date, int hour, int minute,
+ int second)
{
set(year, month, date, hour, minute);
fields[SECOND] = second;
@@ -721,11 +834,15 @@ public abstract class Calendar implements Serializable, Cloneable
{
isTimeSet = false;
areFieldsSet = false;
+ int zoneOffs = zone.getRawOffset();
+ int[] tempFields =
+ {
+ 1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
+ 0, 0, zoneOffs, 0
+ };
+ fields = tempFields;
for (int i = 0; i < FIELD_COUNT; i++)
- {
- isSet[i] = false;
- fields[i] = 0;
- }
+ isSet[i] = false;
}
/**
@@ -737,10 +854,15 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public final void clear(int field)
{
+ int[] tempFields =
+ {
+ 1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
+ 0, 0, zone.getRawOffset(), 0
+ };
isTimeSet = false;
areFieldsSet = false;
isSet[field] = false;
- fields[field] = 0;
+ fields[field] = tempFields[field];
}
/**
@@ -757,18 +879,18 @@ public abstract class Calendar implements Serializable, Cloneable
/**
* Fills any unset fields in the time field list
- * @return true if the specified field has a value.
+ * @return true if the specified field has a value.
*/
protected void complete()
{
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
- if (!areFieldsSet)
+ if (! areFieldsSet)
computeFields();
}
/**
- * Compares the given calendar with this.
+ * Compares the given calendar with this.
* @param o the object to that we should compare.
* @return true, if the given object is a calendar, that represents
* the same time (but doesn't necessary have the same fields).
@@ -776,12 +898,12 @@ public abstract class Calendar implements Serializable, Cloneable
public boolean equals(Object o)
{
return (o instanceof Calendar)
- && getTimeInMillis() == ((Calendar) o).getTimeInMillis();
+ && getTimeInMillis() == ((Calendar) o).getTimeInMillis();
}
/**
* Returns a hash code for this calendar.
- * @return a hash code, which fullfits the general contract of
+ * @return a hash code, which fullfits the general contract of
* <code>hashCode()</code>
*/
public int hashCode()
@@ -791,7 +913,7 @@ public abstract class Calendar implements Serializable, Cloneable
}
/**
- * Compares the given calendar with this.
+ * Compares the given calendar with this.
* @param o the object to that we should compare.
* @return true, if the given object is a calendar, and this calendar
* represents a smaller time than the calendar o.
@@ -804,7 +926,7 @@ public abstract class Calendar implements Serializable, Cloneable
}
/**
- * Compares the given calendar with this.
+ * Compares the given calendar with this.
* @param o the object to that we should compare.
* @return true, if the given object is a calendar, and this calendar
* represents a bigger time than the calendar o.
@@ -831,11 +953,11 @@ public abstract class Calendar implements Serializable, Cloneable
/**
* Rolls the specified time field up or down. This means add one
* to the specified field, but don't change the other fields. If
- * the maximum for this field is reached, start over with the
+ * the maximum for this field is reached, start over with the
* minimum value. <br>
*
* <strong>Note:</strong> There may be situation, where the other
- * fields must be changed, e.g rolling the month on May, 31.
+ * fields must be changed, e.g rolling the month on May, 31.
* The date June, 31 is automatically converted to July, 1.
* @param field the time field. One of the time field constants.
* @param up the direction, true for up, false for down.
@@ -854,7 +976,7 @@ public abstract class Calendar implements Serializable, Cloneable
*
* @param field the time field. One of the time field constants.
* @param amount the amount to roll by, positive for rolling up,
- * negative for rolling down.
+ * negative for rolling down.
* @throws ArrayIndexOutOfBoundsException if the field is outside
* the valid range. The value of field must be >= 0 and
* <= <code>FIELD_COUNT</code>.
@@ -874,7 +996,6 @@ public abstract class Calendar implements Serializable, Cloneable
}
}
-
/**
* Sets the time zone to the specified value.
* @param zone the new time zone
@@ -918,7 +1039,7 @@ public abstract class Calendar implements Serializable, Cloneable
/**
* Sets what the first day of week is. This is used for
- * WEEK_OF_MONTH and WEEK_OF_YEAR fields.
+ * WEEK_OF_MONTH and WEEK_OF_YEAR fields.
* @param value the first day of week. One of SUNDAY to SATURDAY.
*/
public void setFirstDayOfWeek(int value)
@@ -928,7 +1049,7 @@ public abstract class Calendar implements Serializable, Cloneable
/**
* Gets what the first day of week is. This is used for
- * WEEK_OF_MONTH and WEEK_OF_YEAR fields.
+ * WEEK_OF_MONTH and WEEK_OF_YEAR fields.
* @return the first day of week. One of SUNDAY to SATURDAY.
*/
public int getFirstDayOfWeek()
@@ -972,7 +1093,6 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public abstract int getMaximum(int field);
-
/**
* Gets the greatest minimum value that is allowed for the specified field.
* @param field the time field. One of the time field constants.
@@ -984,7 +1104,7 @@ public abstract class Calendar implements Serializable, Cloneable
* Gets the smallest maximum value that is allowed for the
* specified field. For example this is 28 for DAY_OF_MONTH.
* @param field the time field. One of the time field constants.
- * @return the least maximum value.
+ * @return the least maximum value.
*/
public abstract int getLeastMaximum(int field);
@@ -1000,16 +1120,15 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public int getActualMinimum(int field)
{
- Calendar tmp = (Calendar)clone(); // To avoid restoring state
+ Calendar tmp = (Calendar) clone(); // To avoid restoring state
int min = tmp.getGreatestMinimum(field);
int end = tmp.getMinimum(field);
tmp.set(field, min);
for (; min > end; min--)
{
- tmp.add(field, -1); // Try to get smaller
+ tmp.add(field, -1); // Try to get smaller
if (tmp.get(field) != min - 1)
- break; // Done if not successful
-
+ break; // Done if not successful
}
return min;
}
@@ -1018,7 +1137,7 @@ public abstract class Calendar implements Serializable, Cloneable
* Gets the actual maximum value that is allowed for the specified field.
* This value is dependent on the values of the other fields.
* @param field the time field. One of the time field constants.
- * @return the actual maximum value.
+ * @return the actual maximum value.
* @throws ArrayIndexOutOfBoundsException if the field is outside
* the valid range. The value of field must be >= 0 and
* <= <code>FIELD_COUNT</code>.
@@ -1026,7 +1145,7 @@ public abstract class Calendar implements Serializable, Cloneable
*/
public int getActualMaximum(int field)
{
- Calendar tmp = (Calendar)clone(); // To avoid restoring state
+ Calendar tmp = (Calendar) clone(); // To avoid restoring state
int max = tmp.getLeastMaximum(field);
int end = tmp.getMaximum(field);
tmp.set(field, max);
@@ -1048,7 +1167,7 @@ public abstract class Calendar implements Serializable, Cloneable
{
Calendar cal = (Calendar) super.clone();
cal.fields = (int[]) fields.clone();
- cal.isSet = (boolean[])isSet.clone();
+ cal.isSet = (boolean[]) isSet.clone();
return cal;
}
catch (CloneNotSupportedException ex)
@@ -1057,16 +1176,19 @@ public abstract class Calendar implements Serializable, Cloneable
}
}
- private static final String[] fieldNames = {
- ",ERA=", ",YEAR=", ",MONTH=",
- ",WEEK_OF_YEAR=", ",WEEK_OF_MONTH=",
- ",DAY_OF_MONTH=", ",DAY_OF_YEAR=", ",DAY_OF_WEEK=",
- ",DAY_OF_WEEK_IN_MONTH=",
- ",AM_PM=", ",HOUR=", ",HOUR_OF_DAY=",
- ",MINUTE=", ",SECOND=", ",MILLISECOND=",
- ",ZONE_OFFSET=", ",DST_OFFSET="
- };
-
+ private static final String[] fieldNames =
+ {
+ ",ERA=", ",YEAR=", ",MONTH=",
+ ",WEEK_OF_YEAR=",
+ ",WEEK_OF_MONTH=",
+ ",DAY_OF_MONTH=",
+ ",DAY_OF_YEAR=", ",DAY_OF_WEEK=",
+ ",DAY_OF_WEEK_IN_MONTH=",
+ ",AM_PM=", ",HOUR=",
+ ",HOUR_OF_DAY=", ",MINUTE=",
+ ",SECOND=", ",MILLISECOND=",
+ ",ZONE_OFFSET=", ",DST_OFFSET="
+ };
/**
* Returns a string representation of this object. It is mainly
@@ -1109,7 +1231,7 @@ public abstract class Calendar implements Serializable, Cloneable
* says, that it could be omitted. */
private void writeObject(ObjectOutputStream stream) throws IOException
{
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
stream.defaultWriteObject();
}
@@ -1121,7 +1243,7 @@ public abstract class Calendar implements Serializable, Cloneable
throws IOException, ClassNotFoundException
{
stream.defaultReadObject();
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
if (serialVersionOnStream > 1)
@@ -1130,7 +1252,6 @@ public abstract class Calendar implements Serializable, Cloneable
// Sun wants to remove all fields from the stream someday
// and will then increase the serialVersion number again.
// We prepare to be compatible.
-
fields = new int[FIELD_COUNT];
isSet = new boolean[FIELD_COUNT];
areFieldsSet = false;
diff --git a/libjava/java/util/Collection.java b/libjava/java/util/Collection.java
index be500b20086..910a893c35a 100644
--- a/libjava/java/util/Collection.java
+++ b/libjava/java/util/Collection.java
@@ -1,5 +1,5 @@
/* Collection.java -- Interface that represents a collection of objects
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ package java.util;
* copy of the argument using its own implementation).
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see List
* @see Set
* @see Map
diff --git a/libjava/java/util/Collections.java b/libjava/java/util/Collections.java
index 6da84296e7e..e25fbc36493 100644
--- a/libjava/java/util/Collections.java
+++ b/libjava/java/util/Collections.java
@@ -1,5 +1,5 @@
/* Collections.java -- Utility class with methods to operate on collections
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ import java.io.Serializable;
* modify the set.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see Set
* @see List
@@ -112,7 +112,7 @@ public class Collections
* The implementation of {@link #EMPTY_SET}. This class name is required
* for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class EmptySet extends AbstractSet
implements Serializable
@@ -266,7 +266,7 @@ public class Collections
* The implementation of {@link #EMPTY_LIST}. This class name is required
* for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class EmptyList extends AbstractList
implements Serializable, RandomAccess
@@ -444,7 +444,7 @@ public class Collections
* The implementation of {@link #EMPTY_MAP}. This class name is required
* for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class EmptyMap extends AbstractMap
implements Serializable
@@ -958,7 +958,7 @@ public class Collections
* The implementation of {@link #nCopies(int, Object)}. This class name
* is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class CopiesList extends AbstractList
implements Serializable, RandomAccess
@@ -1169,7 +1169,7 @@ public class Collections
* The implementation of {@link #reverseOrder()}. This class name
* is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class ReverseComparator
implements Comparator, Serializable
@@ -1384,7 +1384,7 @@ public class Collections
* The implementation of {@link #singleton(Object)}. This class name
* is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SingletonSet extends AbstractSet
implements Serializable
@@ -1558,7 +1558,7 @@ public class Collections
* The implementation of {@link #singletonList(Object)}. This class name
* is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SingletonList extends AbstractList
implements Serializable, RandomAccess
@@ -1734,7 +1734,7 @@ public class Collections
* The implementation of {@link #singletonMap(Object)}. This class name
* is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SingletonMap extends AbstractMap
implements Serializable
@@ -1999,7 +1999,7 @@ public class Collections
* Package visible, so that collections such as the one for
* Hashtable.values() can specify which object to synchronize on.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
static class SynchronizedCollection
implements Collection, Serializable
@@ -2332,7 +2332,7 @@ public class Collections
* synchronized classes. These iterators must "sync" on the same object
* as the collection they iterate over.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class SynchronizedIterator implements Iterator
{
@@ -2451,7 +2451,7 @@ public class Collections
* serializability. Package visible, so that lists such as Vector.subList()
* can specify which object to synchronize on.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
static class SynchronizedList extends SynchronizedCollection
implements List
@@ -2757,7 +2757,7 @@ public class Collections
* lists. This class name is required for compatibility with Sun's JDK
* serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SynchronizedRandomAccessList
extends SynchronizedList implements RandomAccess
@@ -2822,7 +2822,7 @@ public class Collections
* The implementation of {@link SynchronizedList#listIterator()}. This
* iterator must "sync" on the same object as the list it iterates over.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SynchronizedListIterator
extends SynchronizedIterator implements ListIterator
@@ -2997,7 +2997,7 @@ public class Collections
* The implementation of {@link #synchronizedMap(Map)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class SynchronizedMap implements Map, Serializable
{
@@ -3527,7 +3527,7 @@ public class Collections
* Package visible, so that sets such as Hashtable.keySet()
* can specify which object to synchronize on.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
static class SynchronizedSet extends SynchronizedCollection
implements Set
@@ -3631,7 +3631,7 @@ public class Collections
* The implementation of {@link #synchronizedSortedMap(SortedMap)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SynchronizedSortedMap extends SynchronizedMap
implements SortedMap
@@ -3827,7 +3827,7 @@ public class Collections
* The implementation of {@link #synchronizedSortedSet(SortedSet)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class SynchronizedSortedSet extends SynchronizedSet
implements SortedSet
@@ -4019,7 +4019,7 @@ public class Collections
* The implementation of {@link #unmodifiableCollection(Collection)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableCollection
implements Collection, Serializable
@@ -4250,7 +4250,7 @@ public class Collections
* The implementation of the various iterator methods in the
* unmodifiable classes.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableIterator implements Iterator
{
@@ -4336,7 +4336,7 @@ public class Collections
* lists. This class name is required for compatibility with Sun's JDK
* serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableList extends UnmodifiableCollection
implements List
@@ -4554,7 +4554,7 @@ public class Collections
* lists. This class name is required for compatibility with Sun's JDK
* serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class UnmodifiableRandomAccessList
extends UnmodifiableList implements RandomAccess
@@ -4578,7 +4578,7 @@ public class Collections
/**
* The implementation of {@link UnmodifiableList#listIterator()}.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class UnmodifiableListIterator
extends UnmodifiableIterator implements ListIterator
@@ -4702,7 +4702,7 @@ public class Collections
* The implementation of {@link #unmodifiableMap(Map)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableMap implements Map, Serializable
{
@@ -4811,7 +4811,7 @@ public class Collections
* The implementation of {@link UnmodifiableMap#entrySet()}. This class
* name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class UnmodifiableEntrySet extends UnmodifiableSet
implements Serializable
@@ -5100,7 +5100,7 @@ public class Collections
* The implementation of {@link #unmodifiableSet(Set)}. This class
* name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableSet extends UnmodifiableCollection
implements Set
@@ -5169,7 +5169,7 @@ public class Collections
* The implementation of {@link #unmodifiableSortedMap(SortedMap)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableSortedMap extends UnmodifiableMap
implements SortedMap
@@ -5342,7 +5342,7 @@ public class Collections
* The implementation of {@link #synchronizedSortedMap(SortedMap)}. This
* class name is required for compatibility with Sun's JDK serializability.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static class UnmodifiableSortedSet extends UnmodifiableSet
implements SortedSet
diff --git a/libjava/java/util/Comparator.java b/libjava/java/util/Comparator.java
index adf6fd01d74..d536520cb47 100644
--- a/libjava/java/util/Comparator.java
+++ b/libjava/java/util/Comparator.java
@@ -1,5 +1,5 @@
/* Comparator.java -- Interface for objects that specify an ordering
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -60,7 +60,7 @@ package java.util;
* Serializable.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Comparable
* @see TreeMap
* @see TreeSet
@@ -84,7 +84,7 @@ public interface Comparator
* <li>if compare(a, b) &lt; 0 and compare(b, c) &lt; 0 then compare(a, c)
* &lt; 0</li>
* <li>if compare(a, b) == 0 then compare(a, c) and compare(b, c) must
- * have the same sign</li
+ * have the same sign</li>
* </ul>
* To be consistent with equals, the following additional constraint is
* in place:
diff --git a/libjava/java/util/ConcurrentModificationException.java b/libjava/java/util/ConcurrentModificationException.java
index 9e22267d36b..9492eb97628 100644
--- a/libjava/java/util/ConcurrentModificationException.java
+++ b/libjava/java/util/ConcurrentModificationException.java
@@ -1,5 +1,5 @@
/* ConcurrentModificationException.java -- Data structure concurrently modified
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,8 +52,8 @@ package java.util;
* this condition is referred to as fail-fast. Notice that this can occur
* even in single-threaded designs, if you call methods out of order.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see Iterator
* @see ListIterator
diff --git a/libjava/java/util/Currency.java b/libjava/java/util/Currency.java
index 98a599e65cf..ffe593dfcc4 100644
--- a/libjava/java/util/Currency.java
+++ b/libjava/java/util/Currency.java
@@ -1,5 +1,5 @@
/* Currency.java -- Representation of a currency
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,10 +49,10 @@ import java.text.NumberFormat;
* a constructor.
*
* @see java.util.Locale
- * @author Guilhem Lavaux <guilhem.lavaux@free.fr>
- * @author Dalibor Topic <robilad@kaffe.org>
- * @author Bryce McKinlay <mckinlay@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Guilhem Lavaux (guilhem.lavaux@free.fr)
+ * @author Dalibor Topic (robilad@kaffe.org)
+ * @author Bryce McKinlay (mckinlay@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.4
*/
public final class Currency
diff --git a/libjava/java/util/Date.java b/libjava/java/util/Date.java
index 4a96ff03d5a..3d8f2a69d9d 100644
--- a/libjava/java/util/Date.java
+++ b/libjava/java/util/Date.java
@@ -1,5 +1,5 @@
/* java.util.Date
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -685,6 +685,7 @@ public class Date
* <p>
* A sequence of consecutive alphabetic characters is recognised as a word,
* and interpreted as follows, in a case-insentive fashion:
+ * <ul>
* <li>
* The characters 'AM' or 'PM' restrict the hour value to a value between 0
* and 12. In the latter case, 12 is added to the hour value before storage.
diff --git a/libjava/java/util/EmptyStackException.java b/libjava/java/util/EmptyStackException.java
index 3236fbf6788..90109513e93 100644
--- a/libjava/java/util/EmptyStackException.java
+++ b/libjava/java/util/EmptyStackException.java
@@ -1,5 +1,5 @@
/* EmptyStackException.java -- Attempt to pop from an empty stack
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,8 +47,8 @@ package java.util;
* This exception is thrown by the Stack class when an attempt is made to pop
* or otherwise access elements from an empty stack.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Stack
* @since 1.0
* @status updated to 1.4
diff --git a/libjava/java/util/Enumeration.java b/libjava/java/util/Enumeration.java
index 1b23cfc5c8d..ebd75427ddf 100644
--- a/libjava/java/util/Enumeration.java
+++ b/libjava/java/util/Enumeration.java
@@ -1,5 +1,5 @@
/* Enumeration.java -- Interface for enumerating lists of objects
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,8 +52,8 @@ package java.util;
* the new collections classes, for use with legacy APIs that require them, can
* be obtained by the enumeration method in class Collections.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Iterator
* @see Hashtable
* @see Vector
diff --git a/libjava/java/util/EventListener.java b/libjava/java/util/EventListener.java
index f8443314bde..32dc563af2a 100644
--- a/libjava/java/util/EventListener.java
+++ b/libjava/java/util/EventListener.java
@@ -1,5 +1,5 @@
/* EventListener.java -- tagging interface for all event listeners
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package java.util;
* <code>Listener</code> and all method described by the subinterface
* take as argument an subclass of <code>EventObject</code>.
*
- * @author Tom Tromey <tromey@cygnus.com>
+ * @author Tom Tromey (tromey@cygnus.com)
* @see EventObject
* @status updated to 1.4
*/
diff --git a/libjava/java/util/EventListenerProxy.java b/libjava/java/util/EventListenerProxy.java
index 2955f455f73..484e1f2b449 100644
--- a/libjava/java/util/EventListenerProxy.java
+++ b/libjava/java/util/EventListenerProxy.java
@@ -1,5 +1,5 @@
/* EventListenerProxy.java -- abstract wrapper for event listeners
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package java.util;
* a new one. Subclasses are expected to add methods to set and retrieve
* any attached properties.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/util/EventObject.java b/libjava/java/util/EventObject.java
index 3ccb6ecd29a..f6fbd8a47b2 100644
--- a/libjava/java/util/EventObject.java
+++ b/libjava/java/util/EventObject.java
@@ -1,5 +1,5 @@
/* EventObject.java -- represents an event on an object
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.io.Serializable;
/**
* Represents Events fired by Objects.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see EventListener
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/util/GregorianCalendar.java b/libjava/java/util/GregorianCalendar.java
index d99a9f2c612..d036cd620e8 100644
--- a/libjava/java/util/GregorianCalendar.java
+++ b/libjava/java/util/GregorianCalendar.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.util;
+
/**
* <p>
* This class represents the Gregorian calendar, that is used in most
@@ -46,7 +47,7 @@ package java.util;
* for dates smaller than the date of the change to the Gregorian calendar.
* The Gregorian calendar differs from the Julian calendar by a different
* leap year rule (no leap year every 100 years, except if year is divisible
- * by 400).
+ * by 400).
* </p>
* <p>
* This change date is different from country to country, and can be changed with
@@ -136,7 +137,7 @@ public class GregorianCalendar extends Calendar
* Constant representing the era BC (Before Christ).
*/
public static final int BC = 0;
-
+
/**
* Constant representing the era AD (Anno Domini).
*/
@@ -164,43 +165,46 @@ public class GregorianCalendar extends Calendar
private static final String bundleName = "gnu.java.locale.Calendar";
/**
- * Retrieves the resource bundle. The resources should be loaded
- * via this method only. Iff an application uses this method, the
- * resourcebundle is required.
+ * Days in the epoch. Relative Jan 1, year '0' which is not a leap year.
+ * (although there is no year zero, this does not matter.)
+ * This is consistent with the formula:
+ * = (year-1)*365L + ((year-1) >> 2)
+ *
+ * Plus the gregorian correction:
+ * Math.floor((year-1) / 400.) - Math.floor((year-1) / 100.);
+ * For a correct julian date, the correction is -2 instead.
*
- * @param locale the locale in use for this calendar.
- * @return A resource bundle for the calendar for the specified locale.
+ * The gregorian cutover in 1582 was 10 days, so by calculating the
+ * correction from year zero, we have 15 non-leap days (even centuries)
+ * minus 3 leap days (year 400,800,1200) = 12. Subtracting two corrects
+ * this to the correct number 10.
*/
- private static ResourceBundle getBundle(Locale locale)
- {
- return ResourceBundle.getBundle(bundleName, locale,
- ClassLoader.getSystemClassLoader());
- }
+ private static final int EPOCH_DAYS = 719162;
/**
* Constructs a new GregorianCalender representing the current
- * time, using the default time zone and the default locale.
+ * time, using the default time zone and the default locale.
*/
public GregorianCalendar()
{
this(TimeZone.getDefault(), Locale.getDefault());
}
-
+
/**
* Constructs a new GregorianCalender representing the current
- * time, using the specified time zone and the default locale.
- *
+ * time, using the specified time zone and the default locale.
+ *
* @param zone a time zone.
*/
public GregorianCalendar(TimeZone zone)
{
this(zone, Locale.getDefault());
}
-
+
/**
* Constructs a new GregorianCalender representing the current
* time, using the default time zone and the specified locale.
- *
+ *
* @param locale a locale.
*/
public GregorianCalendar(Locale locale)
@@ -212,15 +216,30 @@ public class GregorianCalendar extends Calendar
* Constructs a new GregorianCalender representing the current
* time with the given time zone and the given locale.
*
- * @param zone a time zone.
- * @param locale a locale.
+ * @param zone a time zone.
+ * @param locale a locale.
*/
public GregorianCalendar(TimeZone zone, Locale locale)
{
+ this(zone, locale, false);
+ setTimeInMillis(System.currentTimeMillis());
+ complete();
+ }
+
+ /**
+ * Common constructor that all constructors should call.
+ * @param zone a time zone.
+ * @param locale a locale.
+ * @param unused unused parameter to make the signature differ from
+ * the public constructor (TimeZone, Locale).
+ */
+ private GregorianCalendar(TimeZone zone, Locale locale, boolean unused)
+ {
super(zone, locale);
- ResourceBundle rb = getBundle(locale);
+ ResourceBundle rb = ResourceBundle.getBundle(bundleName, locale,
+ ClassLoader
+ .getSystemClassLoader());
gregorianCutover = ((Date) rb.getObject("gregorianCutOver")).getTime();
- setTimeInMillis(System.currentTimeMillis());
}
/**
@@ -232,7 +251,7 @@ public class GregorianCalendar extends Calendar
*/
public GregorianCalendar(int year, int month, int day)
{
- super();
+ this(TimeZone.getDefault(), Locale.getDefault(), false);
set(year, month, day);
}
@@ -248,7 +267,7 @@ public class GregorianCalendar extends Calendar
*/
public GregorianCalendar(int year, int month, int day, int hour, int minute)
{
- super();
+ this(TimeZone.getDefault(), Locale.getDefault(), false);
set(year, month, day, hour, minute);
}
@@ -256,7 +275,6 @@ public class GregorianCalendar extends Calendar
* Constructs a new GregorianCalendar representing midnight on the
* given date with the default time zone and locale.
*
- *
* @param year corresponds to the YEAR time field.
* @param month corresponds to the MONTH time field.
* @param day corresponds to the DAY time field.
@@ -264,10 +282,10 @@ public class GregorianCalendar extends Calendar
* @param minute corresponds to the MINUTE time field.
* @param second corresponds to the SECOND time field.
*/
- public GregorianCalendar(int year, int month, int day,
- int hour, int minute, int second)
+ public GregorianCalendar(int year, int month, int day, int hour, int minute,
+ int second)
{
- super();
+ this(TimeZone.getDefault(), Locale.getDefault(), false);
set(year, month, day, hour, minute, second);
}
@@ -308,71 +326,23 @@ public class GregorianCalendar extends Calendar
* </p>
*
* @param year a year (use a negative value for BC).
- * @return true, if the given year is a leap year, false otherwise.
+ * @return true, if the given year is a leap year, false otherwise.
*/
public boolean isLeapYear(int year)
{
+ // Only years divisible by 4 can be leap years
if ((year & 3) != 0)
- // Only years divisible by 4 can be leap years
return false;
- // compute the linear day of the 29. February of that year.
- // The 13 is the number of days, that were omitted in the Gregorian
- // Calender until the epoch.
- int julianDay = (((year-1) * (365*4+1)) >> 2) + (31+29 -
- (((1970-1) * (365*4+1)) / 4 + 1 - 13));
-
- // If that day is smaller than the gregorianChange the julian
- // rule applies: This is a leap year since it is divisible by 4.
- if (julianDay * (24 * 60 * 60 * 1000L) < gregorianCutover)
+ // Is the leap-day a Julian date? Then it's a leap year
+ if (! isGregorian(year, 31 + 29 - 1))
return true;
+ // Apply gregorian rules otherwise
return ((year % 100) != 0 || (year % 400) == 0);
}
/**
- * Get the linear time in milliseconds since the epoch. If you
- * specify a nonpositive year it is interpreted as BC as
- * following: 0 is 1 BC, -1 is 2 BC and so on. The date is
- * interpreted as gregorian if the change occurred before that date.
- *
- * @param year the year of the date.
- * @param dayOfYear the day of year of the date; 1 based.
- * @param millis the millisecond in that day.
- * @return the days since the epoch, may be negative.
- */
- private long getLinearTime(int year, int dayOfYear, int millis)
- {
- // The 13 is the number of days, that were omitted in the Gregorian
- // Calendar until the epoch.
- // We shift right by 2 instead of dividing by 4, to get correct
- // results for negative years (and this is even more efficient).
- int julianDay = ((year * (365 * 4 + 1)) >> 2) + dayOfYear -
- ((1970 * (365 * 4 + 1)) / 4 + 1 - 13);
- long time = julianDay * (24 * 60 * 60 * 1000L) + millis;
-
- if (time >= gregorianCutover)
- {
- // subtract the days that are missing in gregorian calendar
- // with respect to julian calendar.
- //
- // Okay, here we rely on the fact that the gregorian
- // calendar was introduced in the AD era. This doesn't work
- // with negative years.
- //
- // The additional leap year factor accounts for the fact that
- // a leap day is not seen on Jan 1 of the leap year.
- // And on and after the leap day, the leap day has already been
- // included in dayOfYear.
- int gregOffset = (year / 400) - (year / 100) + 2;
- if (isLeapYear (year, true))
- --gregOffset;
- time += gregOffset * (24 * 60 * 60 * 1000L);
- }
- return time;
- }
-
- /**
* Retrieves the day of the week corresponding to the specified
* day of the specified year.
*
@@ -382,8 +352,8 @@ public class GregorianCalendar extends Calendar
*/
private int getWeekDay(int year, int dayOfYear)
{
- int day =
- (int) (getLinearTime(year, dayOfYear, 0) / (24 * 60 * 60 * 1000L));
+ boolean greg = isGregorian(year, dayOfYear);
+ int day = (int) getLinearDay(year, dayOfYear, greg);
// The epoch was a thursday.
int weekday = (day + THURSDAY) % 7;
@@ -393,234 +363,363 @@ public class GregorianCalendar extends Calendar
}
/**
- * <p>
- * Calculate the dayOfYear from the fields array.
- * The relativeDays is used, to account for weeks that begin before
- * the Gregorian change and end after it.
- * </p>
- * <p>
- * We return two values. The first is used to determine, if we
- * should use the Gregorian calendar or the Julian calendar, in order
- * to handle the change year. The second is a relative day after the given
- * day. This is necessary for week calculation in the year in
- * which the Gregorian change occurs.
- * </p>
- *
- * @param year the year, negative for BC.
- * @return an array of two integer values, the first containing a reference
- * day in the current year, the second a relative count since this reference
- * day.
+ * Returns the day of the week for the first day of a given month (0..11)
*/
- private int[] getDayOfYear(int year)
+ private int getFirstDayOfMonth(int year, int month)
{
- if (isSet[MONTH])
- {
- int dayOfYear;
- if (fields[MONTH] > FEBRUARY)
- {
+ int[] dayCount = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
- // The months after February are regular:
- // 9 is an offset found by try and error.
- dayOfYear = (fields[MONTH] * (31 + 30 + 31 + 30 + 31) - 9) / 5;
- if (isLeapYear(year))
- dayOfYear++;
- }
- else
- dayOfYear = 31 * fields[MONTH];
+ if (month > 11)
+ {
+ year += (month / 12);
+ month = month % 12;
+ }
- if (isSet[DAY_OF_MONTH])
+ if (month < 0)
+ {
+ year += (int) month / 12;
+ month = month % 12;
+ if (month < 0)
{
- return new int[]
- {
- dayOfYear + fields[DAY_OF_MONTH], 0};
+ month += 12;
+ year--;
}
- if (isSet[WEEK_OF_MONTH] && isSet[DAY_OF_WEEK])
- {
- // the weekday of the first day in that month is:
- int weekday = getWeekDay(year, ++dayOfYear);
+ }
- return new int[]
- {
- dayOfYear,
- // the day of week in the first week
- // (weeks starting on sunday) is:
- fields[DAY_OF_WEEK] - weekday +
- // Now jump to the right week and correct the possible
- // error made by assuming sunday is the first week day.
- 7 * (fields[WEEK_OF_MONTH]
- + (fields[DAY_OF_WEEK] < getFirstDayOfWeek()? 0 : -1)
- + (weekday < getFirstDayOfWeek()? -1 : 0))};
- }
- if (isSet[DAY_OF_WEEK] && isSet[DAY_OF_WEEK_IN_MONTH])
- {
- // the weekday of the first day in that month is:
- int weekday = getWeekDay(year, ++dayOfYear);
- return new int[] {
- dayOfYear,
- fields[DAY_OF_WEEK] - weekday +
- 7 * (fields[DAY_OF_WEEK_IN_MONTH]
- + (fields[DAY_OF_WEEK] < weekday ? 0 : -1))};
- }
+ int dayOfYear = dayCount[month] + 1;
+ if (month > 1)
+ if (isLeapYear(year))
+ dayOfYear++;
+
+ boolean greg = isGregorian(year, dayOfYear);
+ int day = (int) getLinearDay(year, dayOfYear, greg);
+
+ // The epoch was a thursday.
+ int weekday = (day + THURSDAY) % 7;
+ if (weekday <= 0)
+ weekday += 7;
+ return weekday;
+ }
+
+ /**
+ * Takes a year, and a (zero based) day of year and determines
+ * if it is gregorian or not.
+ */
+ private boolean isGregorian(int year, int dayOfYear)
+ {
+ int relativeDay = (year - 1) * 365 + ((year - 1) >> 2) + dayOfYear
+ - EPOCH_DAYS; // gregorian days from 1 to epoch.
+ int gregFactor = (int) Math.floor((double) (year - 1) / 400.)
+ - (int) Math.floor((double) (year - 1) / 100.);
+
+ return ((relativeDay + gregFactor) * 60L * 60L * 24L * 1000L >= gregorianCutover);
+ }
+
+ /**
+ * Check set fields for validity, without leniency.
+ *
+ * @throws IllegalArgumentException if a field is invalid
+ */
+ private void nonLeniencyCheck() throws IllegalArgumentException
+ {
+ int[] month_days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+ int year = fields[YEAR];
+ int month = fields[MONTH];
+ int leap = isLeapYear(year) ? 1 : 0;
+
+ if (isSet[ERA] && fields[ERA] != AD && fields[ERA] != BC)
+ throw new IllegalArgumentException("Illegal ERA.");
+ if (isSet[YEAR] && fields[YEAR] < 1)
+ throw new IllegalArgumentException("Illegal YEAR.");
+ if (isSet[MONTH] && (month < 0 || month > 11))
+ throw new IllegalArgumentException("Illegal MONTH.");
+ if (isSet[WEEK_OF_YEAR])
+ {
+ int daysInYear = 365 + leap;
+ daysInYear += (getFirstDayOfMonth(year, 0) - 1); // pad first week
+ int last = getFirstDayOfMonth(year, 11) + 4;
+ if (last > 7)
+ last -= 7;
+ daysInYear += 7 - last;
+ int weeks = daysInYear / 7;
+ if (fields[WEEK_OF_YEAR] < 1 || fields[WEEK_OF_YEAR] > weeks)
+ throw new IllegalArgumentException("Illegal WEEK_OF_YEAR.");
}
- // MONTH + something did not succeed.
- if (isSet[DAY_OF_YEAR])
+ if (isSet[WEEK_OF_MONTH])
{
- return new int[] {0, fields[DAY_OF_YEAR]};
+ int weeks = (month == 1 && leap == 0) ? 4 : 5;
+ if (fields[WEEK_OF_MONTH] < 1 || fields[WEEK_OF_MONTH] > weeks)
+ throw new IllegalArgumentException("Illegal WEEK_OF_MONTH.");
}
-
- if (isSet[DAY_OF_WEEK] && isSet[WEEK_OF_YEAR])
+
+ if (isSet[DAY_OF_MONTH])
+ if (fields[DAY_OF_MONTH] < 1
+ || fields[DAY_OF_MONTH] > month_days[month]
+ + ((month == 1) ? leap : 0))
+ throw new IllegalArgumentException("Illegal DAY_OF_MONTH.");
+
+ if (isSet[DAY_OF_YEAR]
+ && (fields[DAY_OF_YEAR] < 1 || fields[DAY_OF_YEAR] > 365 + leap))
+ throw new IllegalArgumentException("Illegal DAY_OF_YEAR.");
+
+ if (isSet[DAY_OF_WEEK]
+ && (fields[DAY_OF_WEEK] < 1 || fields[DAY_OF_WEEK] > 7))
+ throw new IllegalArgumentException("Illegal DAY_OF_WEEK.");
+
+ if (isSet[DAY_OF_WEEK_IN_MONTH])
{
- int dayOfYear = getMinimalDaysInFirstWeek();
- // the weekday of the day, that begins the first week
- // in that year is:
- int weekday = getWeekDay(year, dayOfYear);
-
- return new int[] {
- dayOfYear,
- // the day of week in the first week
- // (weeks starting on sunday) is:
- fields[DAY_OF_WEEK] - weekday
- // Now jump to the right week and correct the possible
- // error made by assuming sunday is the first week day.
- + 7 * (fields[WEEK_OF_YEAR]
- + (fields[DAY_OF_WEEK] < getFirstDayOfWeek()? 0 : -1)
- + (weekday < getFirstDayOfWeek()? -1 : 0))};
+ int weeks = (month == 1 && leap == 0) ? 4 : 5;
+ if (fields[DAY_OF_WEEK_IN_MONTH] < -weeks
+ || fields[DAY_OF_WEEK_IN_MONTH] > weeks)
+ throw new IllegalArgumentException("Illegal DAY_OF_WEEK_IN_MONTH.");
}
- // As last resort return Jan, 1st.
- return new int[] {1, 0};
+ if (isSet[AM_PM] && fields[AM_PM] != AM && fields[AM_PM] != PM)
+ throw new IllegalArgumentException("Illegal AM_PM.");
+ if (isSet[HOUR] && (fields[HOUR] < 0 || fields[HOUR] > 11))
+ throw new IllegalArgumentException("Illegal HOUR.");
+ if (isSet[HOUR_OF_DAY]
+ && (fields[HOUR_OF_DAY] < 0 || fields[HOUR_OF_DAY] > 23))
+ throw new IllegalArgumentException("Illegal HOUR_OF_DAY.");
+ if (isSet[MINUTE] && (fields[MINUTE] < 0 || fields[MINUTE] > 59))
+ throw new IllegalArgumentException("Illegal MINUTE.");
+ if (isSet[SECOND] && (fields[SECOND] < 0 || fields[SECOND] > 59))
+ throw new IllegalArgumentException("Illegal SECOND.");
+ if (isSet[MILLISECOND]
+ && (fields[MILLISECOND] < 0 || fields[MILLISECOND] > 999))
+ throw new IllegalArgumentException("Illegal MILLISECOND.");
+ if (isSet[ZONE_OFFSET]
+ && (fields[ZONE_OFFSET] < -12 * 60 * 60 * 1000L
+ || fields[ZONE_OFFSET] > 12 * 60 * 60 * 1000L))
+ throw new IllegalArgumentException("Illegal ZONE_OFFSET.");
+ if (isSet[DST_OFFSET]
+ && (fields[DST_OFFSET] < -12 * 60 * 60 * 1000L
+ || fields[DST_OFFSET] > 12 * 60 * 60 * 1000L))
+ throw new IllegalArgumentException("Illegal DST_OFFSET.");
}
/**
* Converts the time field values (<code>fields</code>) to
- * milliseconds since the epoch UTC (<code>time</code>).
+ * milliseconds since the epoch UTC (<code>time</code>).
*
* @throws IllegalArgumentException if any calendar fields
* are invalid.
*/
protected synchronized void computeTime()
{
- int era = isSet[ERA] ? fields[ERA] : AD;
- int year = isSet[YEAR] ? fields[YEAR] : 1970;
- if (era == BC)
- year = 1 - year;
+ int millisInDay = 0;
+ int era = fields[ERA];
+ int year = fields[YEAR];
+ int month = fields[MONTH];
+ int day = fields[DAY_OF_MONTH];
+
+ int minute = fields[MINUTE];
+ int second = fields[SECOND];
+ int millis = fields[MILLISECOND];
+ int[] month_days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+ int[] dayCount = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
+ int hour = 0;
- int[] daysOfYear = getDayOfYear(year);
+ if (! isLenient())
+ nonLeniencyCheck();
- int hour = 0;
- if (isSet[HOUR_OF_DAY])
- hour = fields[HOUR_OF_DAY];
- else if (isSet[HOUR])
+ if (! isSet[MONTH] && (! isSet[DAY_OF_WEEK] || isSet[WEEK_OF_YEAR]))
{
- hour = fields[HOUR];
- if (isSet[AM_PM] && fields[AM_PM] == PM)
- if (hour != 12) /* not Noon */
- hour += 12;
- /* Fix the problem of the status of 12:00 AM (midnight). */
- if (isSet[AM_PM] && fields[AM_PM] == AM && hour == 12)
- hour = 0;
+ // 5: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
+ if (isSet[WEEK_OF_YEAR])
+ {
+ int first = getFirstDayOfMonth(year, 0);
+ int offs = 1;
+ int daysInFirstWeek = getFirstDayOfWeek() - first;
+ if (daysInFirstWeek <= 0)
+ daysInFirstWeek += 7;
+
+ if (daysInFirstWeek < getMinimalDaysInFirstWeek())
+ offs += daysInFirstWeek;
+ else
+ offs -= 7 - daysInFirstWeek;
+ month = 0;
+ day = offs + 7 * (fields[WEEK_OF_YEAR] - 1);
+ offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek();
+
+ if (offs < 0)
+ offs += 7;
+ day += offs;
+ }
+ else
+ {
+ // 4: YEAR + DAY_OF_YEAR
+ month = 0;
+ day = fields[DAY_OF_YEAR];
+ }
}
+ else
+ {
+ if (isSet[DAY_OF_WEEK])
+ {
+ int first = getFirstDayOfMonth(year, month);
+
+ // 3: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
+ if (isSet[DAY_OF_WEEK_IN_MONTH])
+ {
+ if (fields[DAY_OF_WEEK_IN_MONTH] < 0)
+ {
+ month++;
+ first = getFirstDayOfMonth(year, month);
+ day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH]);
+ }
+ else
+ day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH] - 1);
+
+ int offs = fields[DAY_OF_WEEK] - first;
+ if (offs < 0)
+ offs += 7;
+ day += offs;
+ }
+ else
+ { // 2: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
+ int offs = 1;
+ int daysInFirstWeek = getFirstDayOfWeek() - first;
+ if (daysInFirstWeek <= 0)
+ daysInFirstWeek += 7;
+
+ if (daysInFirstWeek < getMinimalDaysInFirstWeek())
+ offs += daysInFirstWeek;
+ else
+ offs -= 7 - daysInFirstWeek;
+
+ day = offs + 7 * (fields[WEEK_OF_MONTH] - 1);
+ offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek();
+ if (offs <= 0)
+ offs += 7;
+ day += offs;
+ }
+ }
- int minute = isSet[MINUTE] ? fields[MINUTE] : 0;
- int second = isSet[SECOND] ? fields[SECOND] : 0;
- int millis = isSet[MILLISECOND] ? fields[MILLISECOND] : 0;
- int millisInDay;
+ // 1: YEAR + MONTH + DAY_OF_MONTH
+ }
+ if (era == BC && year > 0)
+ year = 1 - year;
- if (isLenient())
+ // rest of code assumes day/month/year set
+ // should negative BC years be AD?
+ // get the hour (but no check for validity)
+ if (isSet[HOUR])
{
- // prevent overflow
- long allMillis = (((hour * 60L) + minute) * 60L + second) * 1000L
- + millis;
- daysOfYear[1] += allMillis / (24 * 60 * 60 * 1000L);
- millisInDay = (int) (allMillis % (24 * 60 * 60 * 1000L));
+ hour = fields[HOUR];
+ if (fields[AM_PM] == PM)
+ hour += 12;
}
else
+ hour = fields[HOUR_OF_DAY];
+
+ // Read the era,year,month,day fields and convert as appropriate.
+ // Calculate number of milliseconds into the day
+ // This takes care of both h, m, s, ms over/underflows.
+ long allMillis = (((hour * 60L) + minute) * 60L + second) * 1000L + millis;
+ day += allMillis / (24 * 60 * 60 * 1000L);
+ millisInDay = (int) (allMillis % (24 * 60 * 60 * 1000L));
+
+ if (month < 0)
+ {
+ year += (int) month / 12;
+ month = month % 12;
+ if (month < 0)
+ {
+ month += 12;
+ year--;
+ }
+ }
+ if (month > 11)
{
- if (hour < 0 || hour >= 24 || minute < 0 || minute > 59
- || second < 0 || second > 59 || millis < 0 || millis >= 1000)
- throw new IllegalArgumentException();
- millisInDay = (((hour * 60) + minute) * 60 + second) * 1000 + millis;
+ year += (month / 12);
+ month = month % 12;
}
- time = getLinearTime(year, daysOfYear[0], millisInDay);
- // Add the relative days after calculating the linear time, to
- // get right behaviour when jumping over the gregorianCutover.
- time += daysOfYear[1] * (24 * 60 * 60 * 1000L);
+ month_days[1] = isLeapYear(year) ? 29 : 28;
+ while (day <= 0)
+ {
+ if (month == 0)
+ {
+ year--;
+ month_days[1] = isLeapYear(year) ? 29 : 28;
+ }
+ month = (month + 11) % 12;
+ day += month_days[month];
+ }
+ while (day > month_days[month])
+ {
+ day -= (month_days[month]);
+ month = (month + 1) % 12;
+ if (month == 0)
+ {
+ year++;
+ month_days[1] = isLeapYear(year) ? 29 : 28;
+ }
+ }
- TimeZone zone = getTimeZone();
- int rawOffset = isSet[ZONE_OFFSET]
- ? fields[ZONE_OFFSET] : zone.getRawOffset();
-
- int dayOfYear = daysOfYear[0] + daysOfYear[1];
- // This formula isn't right, so check for month as a quick fix.
- // It doesn't compensate for leap years and puts day 30 in month 1
- // instead of month 0.
- int month = isSet[MONTH]
- ? fields[MONTH] : (dayOfYear * 5 + 3) / (31 + 30 + 31 + 30 + 31);
- // This formula isn't right, so check for day as a quick fix. It
- // doesn't compensate for leap years, either.
- int day = isSet[DAY_OF_MONTH] ? fields[DAY_OF_MONTH]
- : (6 + (dayOfYear * 5 + 3) % (31 + 30 + 31 + 30 + 31)) / 5;
- int weekday = ((int) (time / (24 * 60 * 60 * 1000L)) + THURSDAY) % 7;
+ // ok, by here we have valid day,month,year,era and millisinday
+ int dayOfYear = dayCount[month] + day - 1; // (day starts on 1)
+ if (isLeapYear(year) && month > 1)
+ dayOfYear++;
+
+ int relativeDay = (year - 1) * 365 + ((year - 1) >> 2) + dayOfYear
+ - EPOCH_DAYS; // gregorian days from 1 to epoch.
+ int gregFactor = (int) Math.floor((double) (year - 1) / 400.)
+ - (int) Math.floor((double) (year - 1) / 100.);
+
+ if ((relativeDay + gregFactor) * 60L * 60L * 24L * 1000L >= gregorianCutover)
+ relativeDay += gregFactor;
+ else
+ relativeDay -= 2;
+
+ time = relativeDay * (24 * 60 * 60 * 1000L) + millisInDay;
+
+ // the epoch was a Thursday.
+ int weekday = (int) (relativeDay + THURSDAY) % 7;
if (weekday <= 0)
weekday += 7;
- int dstOffset = isSet[DST_OFFSET]
- ? fields[DST_OFFSET] : (zone.getOffset((year < 0) ? BC : AD,
- (year < 0) ? 1 - year : year,
- month, day, weekday, millisInDay)
- - zone.getRawOffset());
- time -= rawOffset + dstOffset;
- isTimeSet = true;
- }
+ fields[DAY_OF_WEEK] = weekday;
- /**
- * <p>
- * Determines if the given year is a leap year.
- * </p>
- * <p>
- * To specify a year in the BC era, use a negative value calculated
- * as 1 - y, where y is the required year in BC. So, 1 BC is 0,
- * 2 BC is -1, 3 BC is -2, etc.
- * </p>
- *
- * @param year a year (use a negative value for BC).
- * @param gregorian if true, use the gregorian leap year rule.
- * @return true, if the given year is a leap year, false otherwise.
- */
- private boolean isLeapYear(int year, boolean gregorian)
- {
- if ((year & 3) != 0)
- // Only years divisible by 4 can be leap years
- return false;
+ // Time zone corrections.
+ TimeZone zone = getTimeZone();
+ int rawOffset = isSet[ZONE_OFFSET] ? fields[ZONE_OFFSET]
+ : zone.getRawOffset();
- if (!gregorian)
- return true;
+ int dstOffset = isSet[DST_OFFSET] ? fields[DST_OFFSET]
+ : (zone.getOffset((year < 0) ? BC : AD,
+ (year < 0) ? 1 - year
+ : year,
+ month, day, weekday,
+ millisInDay)
+ - zone.getRawOffset());
- // We rely on AD area here.
- return ((year % 100) != 0 || (year % 400) == 0);
+ time -= rawOffset + dstOffset;
+
+ isTimeSet = true;
}
/**
* Get the linear day in days since the epoch, using the
* Julian or Gregorian calendar as specified. If you specify a
* nonpositive year it is interpreted as BC as following: 0 is 1
- * BC, -1 is 2 BC and so on.
+ * BC, -1 is 2 BC and so on.
*
* @param year the year of the date.
* @param dayOfYear the day of year of the date; 1 based.
* @param gregorian <code>true</code>, if we should use the Gregorian rules.
* @return the days since the epoch, may be negative.
*/
- private int getLinearDay(int year, int dayOfYear, boolean gregorian)
+ private long getLinearDay(int year, int dayOfYear, boolean gregorian)
{
// The 13 is the number of days, that were omitted in the Gregorian
// Calender until the epoch.
// We shift right by 2 instead of dividing by 4, to get correct
// results for negative years (and this is even more efficient).
- int julianDay = ((year * (365 * 4 + 1)) >> 2) + dayOfYear -
- ((1970 * (365 * 4 + 1)) / 4 + 1 - 13);
+ long julianDay = (year - 1) * 365L + ((year - 1) >> 2) + (dayOfYear - 1)
+ - EPOCH_DAYS; // gregorian days from 1 to epoch.
if (gregorian)
{
@@ -633,11 +732,13 @@ public class GregorianCalendar extends Calendar
//
// The additional leap year factor accounts for the fact that
// a leap day is not seen on Jan 1 of the leap year.
- int gregOffset = (year / 400) - (year / 100) + 2;
- if (isLeapYear (year, true) && dayOfYear < 31 + 29)
- --gregOffset;
- julianDay += gregOffset;
+ int gregOffset = (int) Math.floor((double) (year - 1) / 400.)
+ - (int) Math.floor((double) (year - 1) / 100.);
+
+ return julianDay + gregOffset;
}
+ else
+ julianDay -= 2;
return julianDay;
}
@@ -646,26 +747,27 @@ public class GregorianCalendar extends Calendar
* day_of_year, day_of_month, day_of_week, and writes the result
* into the fields array.
*
- * @param day the linear day.
+ * @param day the linear day.
* @param gregorian true, if we should use Gregorian rules.
*/
- private void calculateDay(int day, boolean gregorian)
+ private void calculateDay(int[] fields, long day, boolean gregorian)
{
- // the epoch is a Thursday.
- int weekday = (day + THURSDAY) % 7;
+ // the epoch was a Thursday.
+ int weekday = (int) (day + THURSDAY) % 7;
if (weekday <= 0)
weekday += 7;
fields[DAY_OF_WEEK] = weekday;
// get a first approximation of the year. This may be one
// year too big.
- int year = 1970 + (gregorian
- ? ((day - 100) * 400) / (365 * 400 + 100 - 4 + 1)
- : ((day - 100) * 4) / (365 * 4 + 1));
+ int year = 1970
+ + (int) (gregorian
+ ? ((day - 100L) * 400L) / (365L * 400L + 100L - 4L
+ + 1L) : ((day - 100L) * 4L) / (365L * 4L + 1L));
if (day >= 0)
year++;
- int firstDayOfYear = getLinearDay(year, 1, gregorian);
+ long firstDayOfYear = getLinearDay(year, 1, gregorian);
// Now look in which year day really lies.
if (day < firstDayOfYear)
@@ -674,9 +776,9 @@ public class GregorianCalendar extends Calendar
firstDayOfYear = getLinearDay(year, 1, gregorian);
}
- day -= firstDayOfYear - 1; // day of year, one based.
+ day -= firstDayOfYear - 1; // day of year, one based.
- fields[DAY_OF_YEAR] = day;
+ fields[DAY_OF_YEAR] = (int) day;
if (year <= 0)
{
fields[ERA] = BC;
@@ -688,16 +790,16 @@ public class GregorianCalendar extends Calendar
fields[YEAR] = year;
}
- int leapday = isLeapYear(year, gregorian) ? 1 : 0;
+ int leapday = isLeapYear(year) ? 1 : 0;
if (day <= 31 + 28 + leapday)
{
- fields[MONTH] = day / 32; // 31->JANUARY, 32->FEBRUARY
- fields[DAY_OF_MONTH] = day - 31 * fields[MONTH];
+ fields[MONTH] = (int) day / 32; // 31->JANUARY, 32->FEBRUARY
+ fields[DAY_OF_MONTH] = (int) day - 31 * fields[MONTH];
}
else
{
// A few more magic formulas
- int scaledDay = (day - leapday) * 5 + 8;
+ int scaledDay = ((int) day - leapday) * 5 + 8;
fields[MONTH] = scaledDay / (31 + 30 + 31 + 30 + 31);
fields[DAY_OF_MONTH] = (scaledDay % (31 + 30 + 31 + 30 + 31)) / 5 + 1;
}
@@ -716,25 +818,26 @@ public class GregorianCalendar extends Calendar
fields[ZONE_OFFSET] = zone.getRawOffset();
long localTime = time + fields[ZONE_OFFSET];
- int day = (int) (localTime / (24 * 60 * 60 * 1000L));
+ long day = localTime / (24 * 60 * 60 * 1000L);
int millisInDay = (int) (localTime % (24 * 60 * 60 * 1000L));
+
if (millisInDay < 0)
{
millisInDay += (24 * 60 * 60 * 1000);
day--;
}
- calculateDay(day, gregorian);
- fields[DST_OFFSET] =
- zone.getOffset(fields[ERA], fields[YEAR], fields[MONTH],
- fields[DAY_OF_MONTH], fields[DAY_OF_WEEK],
- millisInDay) - fields[ZONE_OFFSET];
+ calculateDay(fields, day, gregorian);
+ fields[DST_OFFSET] = zone.getOffset(fields[ERA], fields[YEAR],
+ fields[MONTH], fields[DAY_OF_MONTH],
+ fields[DAY_OF_WEEK], millisInDay)
+ - fields[ZONE_OFFSET];
millisInDay += fields[DST_OFFSET];
if (millisInDay >= 24 * 60 * 60 * 1000)
{
millisInDay -= 24 * 60 * 60 * 1000;
- calculateDay(++day, gregorian);
+ calculateDay(fields, ++day, gregorian);
}
fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7;
@@ -749,17 +852,16 @@ public class GregorianCalendar extends Calendar
// Do the Correction: getMinimalDaysInFirstWeek() is always in the
// first week.
int minDays = getMinimalDaysInFirstWeek();
- int firstWeekday =
- (7 + getWeekDay(fields[YEAR], minDays) - getFirstDayOfWeek()) % 7;
+ int firstWeekday = (7 + getWeekDay(fields[YEAR], minDays)
+ - getFirstDayOfWeek()) % 7;
if (minDays - firstWeekday < 1)
weekOfYear++;
fields[WEEK_OF_YEAR] = weekOfYear;
-
int hourOfDay = millisInDay / (60 * 60 * 1000);
fields[AM_PM] = (hourOfDay < 12) ? AM : PM;
int hour = hourOfDay % 12;
- fields[HOUR] = (hour == 0) ? 12 : hour;
+ fields[HOUR] = hour;
fields[HOUR_OF_DAY] = hourOfDay;
millisInDay %= (60 * 60 * 1000);
fields[MINUTE] = millisInDay / (60 * 1000);
@@ -767,14 +869,7 @@ public class GregorianCalendar extends Calendar
fields[SECOND] = millisInDay / (1000);
fields[MILLISECOND] = millisInDay % 1000;
-
- areFieldsSet = isSet[ERA] = isSet[YEAR] = isSet[MONTH] =
- isSet[WEEK_OF_YEAR] = isSet[WEEK_OF_MONTH] =
- isSet[DAY_OF_MONTH] = isSet[DAY_OF_YEAR] = isSet[DAY_OF_WEEK] =
- isSet[DAY_OF_WEEK_IN_MONTH] = isSet[AM_PM] = isSet[HOUR] =
- isSet[HOUR_OF_DAY] = isSet[MINUTE] = isSet[SECOND] =
- isSet[MILLISECOND] = isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true;
-
+ areFieldsSet = isSet[ERA] = isSet[YEAR] = isSet[MONTH] = isSet[WEEK_OF_YEAR] = isSet[WEEK_OF_MONTH] = isSet[DAY_OF_MONTH] = isSet[DAY_OF_YEAR] = isSet[DAY_OF_WEEK] = isSet[DAY_OF_WEEK_IN_MONTH] = isSet[AM_PM] = isSet[HOUR] = isSet[HOUR_OF_DAY] = isSet[MINUTE] = isSet[SECOND] = isSet[MILLISECOND] = isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true;
}
/**
@@ -782,7 +877,7 @@ public class GregorianCalendar extends Calendar
* equivalent to this if it is also a <code>GregorianCalendar</code>
* with the same time since the epoch under the same conditions
* (same change date and same time zone).
- *
+ *
* @param o the object to that we should compare.
* @return true, if the given object is a calendar, that represents
* the same time (but doesn't necessarily have the same fields).
@@ -794,48 +889,20 @@ public class GregorianCalendar extends Calendar
*/
public boolean equals(Object o)
{
- if (!(o instanceof GregorianCalendar))
+ if (! (o instanceof GregorianCalendar))
return false;
GregorianCalendar cal = (GregorianCalendar) o;
return (cal.getTimeInMillis() == getTimeInMillis());
}
-// /**
-// * Compares the given calender with this.
-// * @param o the object to that we should compare.
-// * @return true, if the given object is a calendar, and this calendar
-// * represents a smaller time than the calender o.
-// */
-// public boolean before(Object o) {
-// if (!(o instanceof GregorianCalendar))
-// return false;
-
-// GregorianCalendar cal = (GregorianCalendar) o;
-// return (cal.getTimeInMillis() < getTimeInMillis());
-// }
-
-// /**
-// * Compares the given calender with this.
-// * @param o the object to that we should compare.
-// * @return true, if the given object is a calendar, and this calendar
-// * represents a bigger time than the calender o.
-// */
-// public boolean after(Object o) {
-// if (!(o instanceof GregorianCalendar))
-// return false;
-
-// GregorianCalendar cal = (GregorianCalendar) o;
-// return (cal.getTimeInMillis() > getTimeInMillis());
-// }
-
/**
* Adds the specified amount of time to the given time field. The
* amount may be negative to subtract the time. If the field overflows
* it does what you expect: Jan, 25 + 10 Days is Feb, 4.
* @param field one of the time field constants.
* @param amount the amount of time to add.
- * @exception IllegalArgumentException if <code>field</code> is
+ * @exception IllegalArgumentException if <code>field</code> is
* <code>ZONE_OFFSET</code>, <code>DST_OFFSET</code>, or invalid; or
* if <code>amount</code> contains an out-of-range value and the calendar
* is not in lenient mode.
@@ -859,18 +926,16 @@ public class GregorianCalendar extends Calendar
fields[MONTH] += 12;
fields[YEAR]--;
}
- isTimeSet = false;
int maxDay = getActualMaximum(DAY_OF_MONTH);
if (fields[DAY_OF_MONTH] > maxDay)
- {
- fields[DAY_OF_MONTH] = maxDay;
- isTimeSet = false;
- }
+ fields[DAY_OF_MONTH] = maxDay;
+ set(YEAR, fields[YEAR]);
+ set(MONTH, fields[MONTH]);
break;
case DAY_OF_MONTH:
case DAY_OF_YEAR:
case DAY_OF_WEEK:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount * (24 * 60 * 60 * 1000L);
areFieldsSet = false;
@@ -878,59 +943,57 @@ public class GregorianCalendar extends Calendar
case WEEK_OF_YEAR:
case WEEK_OF_MONTH:
case DAY_OF_WEEK_IN_MONTH:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount * (7 * 24 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
case AM_PM:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount * (12 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
case HOUR:
case HOUR_OF_DAY:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount * (60 * 60 * 1000L);
areFieldsSet = false;
break;
case MINUTE:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount * (60 * 1000L);
areFieldsSet = false;
break;
case SECOND:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount * (1000L);
areFieldsSet = false;
break;
case MILLISECOND:
- if (!isTimeSet)
+ if (! isTimeSet)
computeTime();
time += amount;
areFieldsSet = false;
break;
case ZONE_OFFSET:
- case DST_OFFSET:
- default:
+ case DST_OFFSET:default:
throw new IllegalArgumentException("Invalid or unknown field");
}
}
-
/**
* Rolls the specified time field up or down. This means add one
* to the specified field, but don't change the other fields. If
- * the maximum for this field is reached, start over with the
- * minimum value.
+ * the maximum for this field is reached, start over with the
+ * minimum value.
*
* <strong>Note:</strong> There may be situation, where the other
- * fields must be changed, e.g rolling the month on May, 31.
- * The date June, 31 is automatically converted to July, 1.
+ * fields must be changed, e.g rolling the month on May, 31.
+ * The date June, 31 is automatically converted to July, 1.
* This requires lenient settings.
*
* @param field the time field. One of the time field constants.
@@ -972,7 +1035,6 @@ public class GregorianCalendar extends Calendar
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
-
case DAY_OF_MONTH:
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
@@ -981,7 +1043,6 @@ public class GregorianCalendar extends Calendar
isSet[WEEK_OF_YEAR] = false;
time += delta * (24 * 60 * 60 * 1000L);
break;
-
case WEEK_OF_MONTH:
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
@@ -1013,7 +1074,6 @@ public class GregorianCalendar extends Calendar
isSet[DAY_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
-
case AM_PM:
isSet[HOUR_OF_DAY] = false;
time += delta * (12 * 60 * 60 * 1000L);
@@ -1027,7 +1087,6 @@ public class GregorianCalendar extends Calendar
isSet[AM_PM] = false;
time += delta * (60 * 60 * 1000L);
break;
-
case MINUTE:
time += delta * (60 * 1000L);
break;
@@ -1047,7 +1106,7 @@ public class GregorianCalendar extends Calendar
* with the minimum value and vice versa for negative amounts.
*
* <strong>Note:</strong> There may be situation, where the other
- * fields must be changed, e.g rolling the month on May, 31.
+ * fields must be changed, e.g rolling the month on May, 31.
* The date June, 31 is automatically corrected to June, 30.
*
* @param field the time field. One of the time field constants.
@@ -1084,16 +1143,23 @@ public class GregorianCalendar extends Calendar
/**
* The minimum values for the calendar fields.
*/
- private static final int[] minimums =
- { BC, 1, 0, 0, 1, 1, 1, SUNDAY, 1,
- AM, 1, 0, 1, 1, 1, -(12*60*60*1000), 0 };
+ private static final int[] minimums =
+ {
+ BC, 1, 0, 0, 1, 1, 1, SUNDAY, 1, AM,
+ 1, 0, 0, 0, 0, -(12 * 60 * 60 * 1000),
+ 0
+ };
/**
* The maximum values for the calendar fields.
*/
- private static final int[] maximums =
- { AD, 5000000, 11, 53, 5, 31, 366, SATURDAY, 5,
- PM, 12, 23, 59, 59, 999, +(12*60*60*1000), (12*60*60*1000) };
+ private static final int[] maximums =
+ {
+ AD, 5000000, 11, 53, 5, 31, 366,
+ SATURDAY, 5, PM, 12, 23, 59, 59, 999,
+ +(12 * 60 * 60 * 1000),
+ (12 * 60 * 60 * 1000)
+ };
/**
* Gets the smallest value that is allowed for the specified field.
@@ -1117,7 +1183,6 @@ public class GregorianCalendar extends Calendar
return maximums[field];
}
-
/**
* Gets the greatest minimum value that is allowed for the specified field.
* This is the largest value returned by the <code>getActualMinimum(int)</code>
@@ -1142,7 +1207,7 @@ public class GregorianCalendar extends Calendar
* 28 days).
*
* @param field the time field. One of the time field constants.
- * @return the least maximum value.
+ * @return the least maximum value.
* @see #getActualMaximum(int)
* @since 1.2
*/
@@ -1182,7 +1247,7 @@ public class GregorianCalendar extends Calendar
int min = getMinimalDaysInFirstWeek();
if (min == 0)
return 1;
- if (!areFieldsSet || !isSet[ERA] || !isSet[YEAR])
+ if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
@@ -1203,45 +1268,46 @@ public class GregorianCalendar extends Calendar
* 29, rather than 28.
*
* @param field the time field. One of the time field constants.
- * @return the actual maximum value.
+ * @return the actual maximum value.
*/
public int getActualMaximum(int field)
{
switch (field)
{
case WEEK_OF_YEAR:
- {
- if (!areFieldsSet || !isSet[ERA] || !isSet[YEAR])
+ {
+ if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
+
// This is wrong for the year that contains the gregorian change.
// I.e it gives the weeks in the julian year or in the gregorian
// year in that case.
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
int lastDay = isLeapYear(year) ? 366 : 365;
int weekday = getWeekDay(year, lastDay);
- int week = (lastDay + 6
- - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
+ int week = (lastDay + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
int minimalDays = getMinimalDaysInFirstWeek();
int firstWeekday = getWeekDay(year, minimalDays);
- /*
+ /*
* Is there a set of days at the beginning of the year, before the
* first day of the week, equal to or greater than the minimum number
* of days required in the first week?
*/
if (minimalDays - (7 + firstWeekday - getFirstDayOfWeek()) % 7 < 1)
return week + 1; /* Add week 1: firstWeekday through to firstDayOfWeek */
- }
- case DAY_OF_MONTH:
- {
- if (!areFieldsSet || !isSet[MONTH])
+ }
+ case DAY_OF_MONTH:
+ {
+ if (! areFieldsSet || ! isSet[MONTH])
complete();
int month = fields[MONTH];
+
// If you change this, you should also change
// SimpleTimeZone.getDaysInMonth();
if (month == FEBRUARY)
{
- if (!isSet[YEAR] || !isSet[ERA])
+ if (! isSet[YEAR] || ! isSet[ERA])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
return isLeapYear(year) ? 29 : 28;
@@ -1250,33 +1316,31 @@ public class GregorianCalendar extends Calendar
return 31 - (month & 1);
else
return 30 + (month & 1);
- }
+ }
case DAY_OF_YEAR:
- {
- if (!areFieldsSet || !isSet[ERA] || !isSet[YEAR])
+ {
+ if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
return isLeapYear(year) ? 366 : 365;
- }
+ }
case DAY_OF_WEEK_IN_MONTH:
- {
+ {
// This is wrong for the month that contains the gregorian change.
int daysInMonth = getActualMaximum(DAY_OF_MONTH);
+
// That's black magic, I know
return (daysInMonth - (fields[DAY_OF_MONTH] - 1) % 7 + 6) / 7;
- }
+ }
case WEEK_OF_MONTH:
- {
+ {
int daysInMonth = getActualMaximum(DAY_OF_MONTH);
int weekday = (daysInMonth - fields[DAY_OF_MONTH]
- + fields[DAY_OF_WEEK] - SUNDAY) % 7 + SUNDAY;
- return (daysInMonth + 6
- - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
- }
+ + fields[DAY_OF_WEEK] - SUNDAY) % 7 + SUNDAY;
+ return (daysInMonth + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
+ }
default:
return maximums[field];
}
}
-
-
}
diff --git a/libjava/java/util/HashMap.java b/libjava/java/util/HashMap.java
index fe4c8b06022..5265daf7a85 100644
--- a/libjava/java/util/HashMap.java
+++ b/libjava/java/util/HashMap.java
@@ -1,6 +1,6 @@
/* HashMap.java -- a class providing a basic hashtable data structure,
mapping Object --> Object
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -85,7 +85,7 @@ import java.io.Serializable;
* @author Jon Zeppieri
* @author Jochen Hoenicke
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Object#hashCode()
* @see Collection
* @see Map
@@ -160,7 +160,7 @@ public class HashMap extends AbstractMap
* Class to represent an entry in the hash table. Holds a single key-value
* pair. Package visible for use by subclass.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
static class HashEntry extends AbstractMap.BasicMapEntry
{
diff --git a/libjava/java/util/HashSet.java b/libjava/java/util/HashSet.java
index caad3ad16e7..4b6d1270406 100644
--- a/libjava/java/util/HashSet.java
+++ b/libjava/java/util/HashSet.java
@@ -1,5 +1,5 @@
/* HashSet.java -- a class providing a HashMap-backed Set
- Copyright (C) 1998, 1999, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ import java.io.Serializable;
* non-deterministic behavior.
*
* @author Jon Zeppieri
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see Set
* @see TreeSet
diff --git a/libjava/java/util/Hashtable.java b/libjava/java/util/Hashtable.java
index 3f5ae4c18c7..8d6e81fc7ef 100644
--- a/libjava/java/util/Hashtable.java
+++ b/libjava/java/util/Hashtable.java
@@ -1,6 +1,6 @@
/* Hashtable.java -- a class providing a basic hashtable data structure,
mapping Object --> Object
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -91,7 +91,7 @@ import java.io.Serializable;
* @author Jon Zeppieri
* @author Warren Levy
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see HashMap
* @see TreeMap
* @see IdentityHashMap
diff --git a/libjava/java/util/IdentityHashMap.java b/libjava/java/util/IdentityHashMap.java
index 5b2e9967c70..54f4aca81e2 100644
--- a/libjava/java/util/IdentityHashMap.java
+++ b/libjava/java/util/IdentityHashMap.java
@@ -1,6 +1,6 @@
/* IdentityHashMap.java -- a class providing a hashtable data structure,
mapping Object --> Object, which uses object identity for hashing.
- Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -78,8 +78,8 @@ import java.io.Serializable;
* iterator, and in the case of the entrySet, the Map.Entry, to
* fail with a {@link ConcurrentModificationException}.
*
- * @author Tom Tromey <tromey@redhat.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@redhat.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see System#identityHashCode(Object)
* @see Collection
* @see Map
@@ -676,8 +676,8 @@ public class IdentityHashMap extends AbstractMap
* creates the appropriate Map.Entry object with the correct fail-fast
* semantics and identity comparisons.
*
- * @author Tom Tromey <tromey@redhat.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Tom Tromey (tromey@redhat.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private class IdentityIterator implements Iterator
{
@@ -769,7 +769,7 @@ public class IdentityHashMap extends AbstractMap
* the general contract of Map.Entry, and is probably unsuitable for
* comparison to normal maps; but it works among other IdentityHashMaps.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private final class IdentityEntry implements Map.Entry
{
diff --git a/libjava/java/util/Iterator.java b/libjava/java/util/Iterator.java
index 1c55a35e582..0d8441a172c 100644
--- a/libjava/java/util/Iterator.java
+++ b/libjava/java/util/Iterator.java
@@ -1,5 +1,5 @@
/* Iterator.java -- Interface for iterating over collections
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package java.util;
* have the remove method and had less conveniently named methods.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see ListIterator
* @see Enumeration
diff --git a/libjava/java/util/LinkedHashMap.java b/libjava/java/util/LinkedHashMap.java
index 0a8484bae88..f58cf3fe70e 100644
--- a/libjava/java/util/LinkedHashMap.java
+++ b/libjava/java/util/LinkedHashMap.java
@@ -412,7 +412,7 @@ public class LinkedHashMap extends HashMap
e.next = buckets[idx];
buckets[idx] = e;
if (callRemove && removeEldestEntry(root))
- remove(root);
+ remove(root.key);
}
/**
diff --git a/libjava/java/util/LinkedHashSet.java b/libjava/java/util/LinkedHashSet.java
index 4641e52b64a..567602818d3 100644
--- a/libjava/java/util/LinkedHashSet.java
+++ b/libjava/java/util/LinkedHashSet.java
@@ -1,6 +1,6 @@
/* LinkedHashSet.java -- a set backed by a LinkedHashMap, for linked
list traversal.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -78,7 +78,7 @@ import java.io.Serializable;
* {@link ConcurrentModificationException} rather than exhibit
* non-deterministic behavior.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Object#hashCode()
* @see Collection
* @see Set
diff --git a/libjava/java/util/LinkedList.java b/libjava/java/util/LinkedList.java
index 4789a387ad5..b2bfda42e2a 100644
--- a/libjava/java/util/LinkedList.java
+++ b/libjava/java/util/LinkedList.java
@@ -1,5 +1,5 @@
/* LinkedList.java -- Linked list implementation of the List interface
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -63,7 +63,7 @@ import java.lang.reflect.Array;
*
* @author Original author unknown
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see List
* @see ArrayList
* @see Vector
@@ -750,7 +750,7 @@ public class LinkedList extends AbstractSequentialList
* position in the list and the two list entries it is between.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private final class LinkedListItr implements ListIterator
{
diff --git a/libjava/java/util/List.java b/libjava/java/util/List.java
index 0f7f409dae6..6d3df8593be 100644
--- a/libjava/java/util/List.java
+++ b/libjava/java/util/List.java
@@ -1,5 +1,5 @@
/* List.java -- An ordered collection which allows indexed access
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ package java.util;
* hashCode or equals.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see Set
* @see ArrayList
diff --git a/libjava/java/util/ListIterator.java b/libjava/java/util/ListIterator.java
index 6d53469ec99..c957e3f217a 100644
--- a/libjava/java/util/ListIterator.java
+++ b/libjava/java/util/ListIterator.java
@@ -1,5 +1,5 @@
/* ListIterator.java -- Extended Iterator for iterating over ordered lists
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,7 +51,7 @@ package java.util;
* or <code>previous</code>.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see List
* @see Iterator
diff --git a/libjava/java/util/ListResourceBundle.java b/libjava/java/util/ListResourceBundle.java
index b7b32c212f9..3c7336eaffd 100644
--- a/libjava/java/util/ListResourceBundle.java
+++ b/libjava/java/util/ListResourceBundle.java
@@ -1,5 +1,5 @@
/* ListResourceBundle -- a resource bundle build around a list
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -72,7 +72,7 @@ package java.util;
}</pre>
*
* @author Jochen Hoenicke
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Locale
* @see PropertyResourceBundle
* @since 1.1
diff --git a/libjava/java/util/Map.java b/libjava/java/util/Map.java
index 093e13d215d..3298d8ea28c 100644
--- a/libjava/java/util/Map.java
+++ b/libjava/java/util/Map.java
@@ -1,6 +1,6 @@
/* Map.java: interface Map -- An object that maps keys to values
interface Map.Entry -- an Entry in a Map
- Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -68,7 +68,7 @@ package java.util;
* normally fail with a non-empty argument.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see HashMap
* @see TreeMap
* @see Hashtable
@@ -267,7 +267,7 @@ public interface Map
* for undefined behavior.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Map
* @see Map#entrySet()
* @since 1.2
diff --git a/libjava/java/util/MissingResourceException.java b/libjava/java/util/MissingResourceException.java
index 47525e55bfa..1bfed625247 100644
--- a/libjava/java/util/MissingResourceException.java
+++ b/libjava/java/util/MissingResourceException.java
@@ -1,5 +1,5 @@
/* MissingResourceException.java -- thrown for a missing resource
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.util;
* This exception is thrown when a resource is missing.
*
* @author Jochen Hoenicke
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see ResourceBundle
* @since 1.1
* @status updated to 1.4
diff --git a/libjava/java/util/NoSuchElementException.java b/libjava/java/util/NoSuchElementException.java
index a040e901be7..d0c53a0a808 100644
--- a/libjava/java/util/NoSuchElementException.java
+++ b/libjava/java/util/NoSuchElementException.java
@@ -1,5 +1,5 @@
/* NoSuchElementException.java -- Attempt to access element that does not exist
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,8 +51,8 @@ package java.util;
* thrown by Vector and Stack when attempting to access the first or last
* element of an empty collection.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Enumeration
* @see Iterator
* @see ListIterator
diff --git a/libjava/java/util/Observable.java b/libjava/java/util/Observable.java
index 7616f5160f8..4fd9919e4c0 100644
--- a/libjava/java/util/Observable.java
+++ b/libjava/java/util/Observable.java
@@ -1,5 +1,5 @@
/* Observable.java -- an object to be observed
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,8 +47,8 @@ package java.util;
* Note that the <code>notifyObservers()</code> method of this class is
* unrelated to the <code>notify()</code> of Object.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Observer
* @status updated to 1.4
*/
diff --git a/libjava/java/util/Observer.java b/libjava/java/util/Observer.java
index 884a263888f..88d1e4d80d4 100644
--- a/libjava/java/util/Observer.java
+++ b/libjava/java/util/Observer.java
@@ -1,5 +1,5 @@
/* Observer.java -- an object that will be informed of changes in an Observable
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ package java.util;
* Interface that is implemented when a class wants to be informed of changes
* in Observable objects.
*
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see Observable
* @status updated to 1.4
*/
diff --git a/libjava/java/util/Properties.java b/libjava/java/util/Properties.java
index eac90e490fb..5e351056c70 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, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -86,7 +86,7 @@ s16=1,3</pre>
* a single <code>u</code> for any character which cannot be represented.
*
* @author Jochen Hoenicke
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see PropertyResourceBundle
* @status updated to 1.4
*/
diff --git a/libjava/java/util/PropertyPermission.java b/libjava/java/util/PropertyPermission.java
index ec2ca7abab6..7b2667a39dd 100644
--- a/libjava/java/util/PropertyPermission.java
+++ b/libjava/java/util/PropertyPermission.java
@@ -1,5 +1,5 @@
/* PropertyPermission.java -- permission to get and set System properties
- Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -154,17 +154,18 @@ public final class PropertyPermission extends BasicPermission
actions = WRITE;
else if ("read,write".equals(str) || "write,read".equals(str))
actions = READ | WRITE;
- else {
- String lstr = str.toLowerCase();
- if ("read".equals(lstr))
- actions = READ;
- else if ("write".equals(lstr))
- actions = WRITE;
- else if ("read,write".equals(lstr) || "write,read".equals(lstr))
- actions = READ | WRITE;
- else
- throw new IllegalArgumentException("illegal action " + str);
- }
+ else
+ {
+ String lstr = str.toLowerCase();
+ if ("read".equals(lstr))
+ actions = READ;
+ else if ("write".equals(lstr))
+ actions = WRITE;
+ else if ("read,write".equals(lstr) || "write,read".equals(lstr))
+ actions = READ | WRITE;
+ else
+ throw new IllegalArgumentException("illegal action " + str);
+ }
}
/**
diff --git a/libjava/java/util/PropertyPermissionCollection.java b/libjava/java/util/PropertyPermissionCollection.java
index 5c799238f3f..6a14c9bd740 100644
--- a/libjava/java/util/PropertyPermissionCollection.java
+++ b/libjava/java/util/PropertyPermissionCollection.java
@@ -1,5 +1,5 @@
/* PropertyPermissionCollection.java -- a collection of PropertyPermissions
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import java.security.PermissionCollection;
* PropertyPermissions, and correctly implements <code>implies</code>. It
* is synchronized, as specified in the superclass.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @status an undocumented class, but this matches Sun's serialization
*/
class PropertyPermissionCollection extends PermissionCollection
diff --git a/libjava/java/util/RandomAccess.java b/libjava/java/util/RandomAccess.java
index 151ceac08aa..a38b6a5f48c 100644
--- a/libjava/java/util/RandomAccess.java
+++ b/libjava/java/util/RandomAccess.java
@@ -1,6 +1,6 @@
/* RandomAccess.java -- A tagging interface that lists can use to tailor
operations to the correct algorithm
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ package java.util;
* <br>runs faster than this loop:<br>
* <code>for (Iterator i = list.iterator(); i.hasNext(); ) i.next();</code>
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see List
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/util/Set.java b/libjava/java/util/Set.java
index eb4df3ef299..58736d81544 100644
--- a/libjava/java/util/Set.java
+++ b/libjava/java/util/Set.java
@@ -1,5 +1,5 @@
/* Set.java -- A collection that prohibits duplicates
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ package java.util;
* allowed to be an element of itself, without risking undefined behavior.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see List
* @see SortedSet
diff --git a/libjava/java/util/SimpleTimeZone.java b/libjava/java/util/SimpleTimeZone.java
index 7d0e2019861..4da1847a29c 100644
--- a/libjava/java/util/SimpleTimeZone.java
+++ b/libjava/java/util/SimpleTimeZone.java
@@ -1,5 +1,5 @@
/* java.util.SimpleTimeZone
- Copyright (C) 1998, 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,6 +38,7 @@ exception statement from your version. */
package java.util;
+
/**
* This class represents a simple time zone offset and handles
* daylight savings. It can only handle one daylight savings rule, so
@@ -49,14 +50,14 @@ package java.util;
* lying in the AD era.
*
* @see Calendar
- * @see GregorianCalender
+ * @see GregorianCalender
* @author Jochen Hoenicke
*/
public class SimpleTimeZone extends TimeZone
{
/**
* The raw time zone offset in milliseconds to GMT, ignoring
- * daylight savings.
+ * daylight savings.
* @serial
*/
private int rawOffset;
@@ -77,16 +78,15 @@ public class SimpleTimeZone extends TimeZone
private int dstSavings = 60 * 60 * 1000;
/**
- * The first year, in which daylight savings rules applies.
+ * The first year, in which daylight savings rules applies.
* @serial
*/
private int startYear;
-
private static final int DOM_MODE = 1;
private static final int DOW_IN_MONTH_MODE = 2;
private static final int DOW_GE_DOM_MODE = 3;
private static final int DOW_LE_DOM_MODE = 4;
-
+
/**
* The mode of the start rule. This takes one of the following values:
* <dl>
@@ -119,7 +119,7 @@ public class SimpleTimeZone extends TimeZone
/**
* The month in which daylight savings start. This is one of the
- * constants Calendar.JANUARY, ..., Calendar.DECEMBER.
+ * constants Calendar.JANUARY, ..., Calendar.DECEMBER.
* @serial
*/
private int startMonth;
@@ -128,21 +128,21 @@ public class SimpleTimeZone extends TimeZone
* This variable can have different meanings. See startMode for details
* @see #startMode;
* @serial
- */
+ */
private int startDay;
-
+
/**
- * This variable specifies the day of week the change takes place. If
+ * This variable specifies the day of week the change takes place. If
* startMode == DOM_MODE, this is undefined.
* @serial
* @see #startMode;
- */
+ */
private int startDayOfWeek;
-
+
/**
* This variable specifies the time of change to daylight savings.
* This time is given in milliseconds after midnight local
- * standard time.
+ * standard time.
* @serial
*/
private int startTime;
@@ -157,9 +157,9 @@ public class SimpleTimeZone extends TimeZone
/**
* The month in which daylight savings ends. This is one of the
- * constants Calendar.JANUARY, ..., Calendar.DECEMBER.
+ * constants Calendar.JANUARY, ..., Calendar.DECEMBER.
* @serial
- */
+ */
private int endMonth;
/**
@@ -167,7 +167,7 @@ public class SimpleTimeZone extends TimeZone
* It can take the same values as startMode.
* @serial
* @see #startMode
- */
+ */
private int endMode;
/**
@@ -176,19 +176,19 @@ public class SimpleTimeZone extends TimeZone
* @see #startMode;
*/
private int endDay;
-
+
/**
- * This variable specifies the day of week the change takes place. If
+ * This variable specifies the day of week the change takes place. If
* endMode == DOM_MODE, this is undefined.
* @serial
* @see #startMode;
*/
private int endDayOfWeek;
-
+
/**
* This variable specifies the time of change back to standard time.
* This time is given in milliseconds after midnight local
- * standard time.
+ * standard time.
* @serial
*/
private int endTime;
@@ -210,8 +210,11 @@ public class SimpleTimeZone extends TimeZone
* @serial
*/
private byte[] monthLength = monthArr;
- private static final byte[] monthArr =
- {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
+ private static final byte[] monthArr =
+ {
+ 31, 28, 31, 30, 31, 30, 31, 31, 30,
+ 31, 30, 31
+ };
/**
* The version of the serialized data on the stream.
@@ -225,6 +228,7 @@ public class SimpleTimeZone extends TimeZone
* startMode, endMode and dstSavings. And there is a optional section
* as described in writeObject.
* </dd>
+ * </dl>
*
* XXX - JDK 1.2 Beta 4 docu states 1.1.4, but my 1.1.5 has the old
* version.
@@ -232,10 +236,9 @@ public class SimpleTimeZone extends TimeZone
* When streaming out this class it is always written in the latest
* version.
* @serial
- * @since JDK1.1.4
+ * @since JDK1.1.4
*/
private int serialVersionOnStream = 2;
-
private static final long serialVersionUID = -403250971215465050L;
/**
@@ -257,9 +260,9 @@ public class SimpleTimeZone extends TimeZone
/**
* Create a <code>SimpleTimeZone</code> with the given time offset
- * from GMT and without daylight savings.
+ * from GMT and without daylight savings.
* @param rawOffset the time offset from GMT in milliseconds.
- * @param id The identifier of this time zone.
+ * @param id The identifier of this time zone.
*/
public SimpleTimeZone(int rawOffset, String id)
{
@@ -273,7 +276,7 @@ public class SimpleTimeZone extends TimeZone
* Create a <code>SimpleTimeZone</code> with the given time offset
* from GMT and with daylight savings. The start/end parameters
* can have different meaning (replace WEEKDAY with a real day of
- * week). Only the first two meanings were supported by earlier
+ * week). Only the first two meanings were supported by earlier
* versions of jdk.
*
* <dl>
@@ -296,12 +299,12 @@ public class SimpleTimeZone extends TimeZone
* must make sure that this day lies in the same month. </dd>
* </dl>
*
- * If you give a non existing month, a day that is zero, or too big,
+ * If you give a non existing month, a day that is zero, or too big,
* or a dayOfWeek that is too big, the result is undefined.
*
* The start rule must have a different month than the end rule.
* This restriction shouldn't hurt for all possible time zones.
- *
+ *
* @param rawOffset The time offset from GMT in milliseconds.
* @param id The identifier of this time zone.
* @param startMonth The start month of daylight savings; use the
@@ -312,29 +315,26 @@ public class SimpleTimeZone extends TimeZone
* @param startTime A time in millis in standard time.
* @param endMonth The end month of daylight savings; use the
* constants in Calendar.
- * @param endday A day in month or a day of week number, as
+ * @param endday A day in month or a day of week number, as
* described above.
* @param endDayOfWeek The end rule day of week; see above.
* @param endTime A time in millis in standard time.
* @throws IllegalArgumentException if parameters are invalid or out of
* range.
*/
- public SimpleTimeZone(int rawOffset, String id,
- int startMonth, int startDayOfWeekInMonth,
- int startDayOfWeek, int startTime,
- int endMonth, int endDayOfWeekInMonth,
- int endDayOfWeek, int endTime)
+ public SimpleTimeZone(int rawOffset, String id, int startMonth,
+ int startDayOfWeekInMonth, int startDayOfWeek,
+ int startTime, int endMonth, int endDayOfWeekInMonth,
+ int endDayOfWeek, int endTime)
{
this.rawOffset = rawOffset;
setID(id);
useDaylight = true;
- setStartRule(startMonth, startDayOfWeekInMonth,
- startDayOfWeek, startTime);
+ setStartRule(startMonth, startDayOfWeekInMonth, startDayOfWeek, startTime);
setEndRule(endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime);
if (startMonth == endMonth)
- throw new IllegalArgumentException
- ("startMonth and endMonth must be different");
+ throw new IllegalArgumentException("startMonth and endMonth must be different");
this.startYear = 0;
}
@@ -347,15 +347,13 @@ public class SimpleTimeZone extends TimeZone
* time in milliseconds. This must be positive.
* @since 1.2
*/
- public SimpleTimeZone(int rawOffset, String id,
- int startMonth, int startDayOfWeekInMonth,
- int startDayOfWeek, int startTime,
- int endMonth, int endDayOfWeekInMonth,
- int endDayOfWeek, int endTime, int dstSavings)
+ public SimpleTimeZone(int rawOffset, String id, int startMonth,
+ int startDayOfWeekInMonth, int startDayOfWeek,
+ int startTime, int endMonth, int endDayOfWeekInMonth,
+ int endDayOfWeek, int endTime, int dstSavings)
{
- this(rawOffset, id,
- startMonth, startDayOfWeekInMonth, startDayOfWeek, startTime,
- endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime);
+ this(rawOffset, id, startMonth, startDayOfWeekInMonth, startDayOfWeek,
+ startTime, endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime);
this.dstSavings = dstSavings;
}
@@ -376,12 +374,11 @@ public class SimpleTimeZone extends TimeZone
* range.
* @since 1.4
*/
- public SimpleTimeZone(int rawOffset, String id,
- int startMonth, int startDayOfWeekInMonth,
- int startDayOfWeek, int startTime, int startTimeMode,
- int endMonth, int endDayOfWeekInMonth,
- int endDayOfWeek, int endTime, int endTimeMode,
- int dstSavings)
+ public SimpleTimeZone(int rawOffset, String id, int startMonth,
+ int startDayOfWeekInMonth, int startDayOfWeek,
+ int startTime, int startTimeMode, int endMonth,
+ int endDayOfWeekInMonth, int endDayOfWeek,
+ int endTime, int endTimeMode, int dstSavings)
{
this.rawOffset = rawOffset;
setID(id);
@@ -394,12 +391,10 @@ public class SimpleTimeZone extends TimeZone
this.startTimeMode = startTimeMode;
this.endTimeMode = endTimeMode;
- setStartRule(startMonth, startDayOfWeekInMonth,
- startDayOfWeek, startTime);
+ setStartRule(startMonth, startDayOfWeekInMonth, startDayOfWeek, startTime);
setEndRule(endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime);
if (startMonth == endMonth)
- throw new IllegalArgumentException
- ("startMonth and endMonth must be different");
+ throw new IllegalArgumentException("startMonth and endMonth must be different");
this.startYear = 0;
this.dstSavings = dstSavings;
@@ -432,6 +427,7 @@ public class SimpleTimeZone extends TimeZone
{
if (month < 0 || month > 11)
throw new IllegalArgumentException("month out of range");
+
int daysInMonth = getDaysInMonth(month, 1);
if (dayOfWeek == 0)
{
@@ -460,7 +456,6 @@ public class SimpleTimeZone extends TimeZone
}
}
-
/**
* Sets the daylight savings start rule. You must also set the
* end rule with <code>setEndRule</code> or the result of
@@ -514,14 +509,16 @@ public class SimpleTimeZone extends TimeZone
* @since 1.2
* @see SimpleTimeZone
*/
- public void setStartRule(int month, int day, int dayOfWeek, int time, boolean after)
+ public void setStartRule(int month, int day, int dayOfWeek, int time,
+ boolean after)
{
// FIXME: XXX: Validate that checkRule and offset processing work with on
// or before mode.
this.startDay = after ? Math.abs(day) : -Math.abs(day);
this.startDayOfWeek = after ? Math.abs(dayOfWeek) : -Math.abs(dayOfWeek);
- this.startMode = (dayOfWeek != 0) ? (after ? DOW_GE_DOM_MODE : DOW_LE_DOM_MODE)
- : checkRule(month, day, dayOfWeek);
+ this.startMode = (dayOfWeek != 0)
+ ? (after ? DOW_GE_DOM_MODE : DOW_LE_DOM_MODE)
+ : checkRule(month, day, dayOfWeek);
this.startDay = Math.abs(this.startDay);
this.startDayOfWeek = Math.abs(this.startDayOfWeek);
@@ -591,7 +588,7 @@ public class SimpleTimeZone extends TimeZone
*
* Note that this API isn't incredibly well specified. It appears that the
* after flag must override the parameters, since normally, the day and
- * dayofweek can select this. I.e., if day &lt; 0 and dayOfWeek &lt; 0, on or
+ * dayofweek can select this. I.e., if day < 0 and dayOfWeek < 0, on or
* before mode is chosen. But if after == true, this implementation
* overrides the signs of the other arguments. And if dayOfWeek == 0, it
* falls back to the behavior in the other APIs. I guess this should be
@@ -606,14 +603,16 @@ public class SimpleTimeZone extends TimeZone
* @since 1.2
* @see #setStartRule
*/
- public void setEndRule(int month, int day, int dayOfWeek, int time, boolean after)
+ public void setEndRule(int month, int day, int dayOfWeek, int time,
+ boolean after)
{
// FIXME: XXX: Validate that checkRule and offset processing work with on
// or before mode.
this.endDay = after ? Math.abs(day) : -Math.abs(day);
this.endDayOfWeek = after ? Math.abs(dayOfWeek) : -Math.abs(dayOfWeek);
- this.endMode = (dayOfWeek != 0) ? (after ? DOW_GE_DOM_MODE : DOW_LE_DOM_MODE)
- : checkRule(month, day, dayOfWeek);
+ this.endMode = (dayOfWeek != 0)
+ ? (after ? DOW_GE_DOM_MODE : DOW_LE_DOM_MODE)
+ : checkRule(month, day, dayOfWeek);
this.endDay = Math.abs(this.endDay);
this.endDayOfWeek = Math.abs(endDayOfWeek);
@@ -648,7 +647,7 @@ public class SimpleTimeZone extends TimeZone
}
/**
- * Gets the time zone offset, for current date, modified in case of
+ * Gets the time zone offset, for current date, modified in case of
* daylight savings. This is the offset to add to UTC to get the local
* time.
*
@@ -674,8 +673,8 @@ public class SimpleTimeZone extends TimeZone
* @return the time zone offset in milliseconds.
* @throws IllegalArgumentException if arguments are incorrect.
*/
- public int getOffset(int era, int year, int month,
- int day, int dayOfWeek, int millis)
+ public int getOffset(int era, int year, int month, int day, int dayOfWeek,
+ int millis)
{
int daysInMonth = getDaysInMonth(month, year);
if (day < 1 || day > daysInMonth)
@@ -683,7 +682,7 @@ public class SimpleTimeZone extends TimeZone
if (dayOfWeek < Calendar.SUNDAY || dayOfWeek > Calendar.SATURDAY)
throw new IllegalArgumentException("dayOfWeek out of range");
if (month < Calendar.JANUARY || month > Calendar.DECEMBER)
- throw new IllegalArgumentException("month out of range");
+ throw new IllegalArgumentException("month out of range:" + month);
// This method is called by Calendar, so we mustn't use that class.
int daylightSavings = 0;
@@ -691,27 +690,22 @@ public class SimpleTimeZone extends TimeZone
{
// This does only work for Gregorian calendars :-(
// This is mainly because setStartYear doesn't take an era.
-
- boolean afterStart = !isBefore(year, month, day, dayOfWeek, millis,
- startMode, startMonth,
- startDay, startDayOfWeek, startTime);
+ boolean afterStart = ! isBefore(year, month, day, dayOfWeek, millis,
+ startMode, startMonth, startDay,
+ startDayOfWeek, startTime);
boolean beforeEnd = isBefore(year, month, day, dayOfWeek,
millis + dstSavings,
- endMode, endMonth,
- endDay, endDayOfWeek, endTime);
+ endMode, endMonth, endDay, endDayOfWeek,
+ endTime);
if (startMonth < endMonth)
- {
- // use daylight savings, if the date is after the start of
- // savings, and before the end of savings.
- daylightSavings = afterStart && beforeEnd ? dstSavings : 0;
- }
+ // use daylight savings, if the date is after the start of
+ // savings, and before the end of savings.
+ daylightSavings = afterStart && beforeEnd ? dstSavings : 0;
else
- {
- // use daylight savings, if the date is before the end of
- // savings, or after the start of savings.
- daylightSavings = beforeEnd || afterStart ? dstSavings : 0;
- }
+ // use daylight savings, if the date is before the end of
+ // savings, or after the start of savings.
+ daylightSavings = beforeEnd || afterStart ? dstSavings : 0;
}
return rawOffset + daylightSavings;
}
@@ -740,7 +734,7 @@ public class SimpleTimeZone extends TimeZone
* milliseconds with respect to standard time. Typically this
* is one hour, but for some time zones this may be half an our.
* @return the daylight savings offset in milliseconds.
- *
+ *
* @since 1.2
*/
public int getDSTSavings()
@@ -760,7 +754,7 @@ public class SimpleTimeZone extends TimeZone
{
if (dstSavings <= 0)
throw new IllegalArgumentException("illegal value for dstSavings");
-
+
this.dstSavings = dstSavings;
}
@@ -774,23 +768,28 @@ public class SimpleTimeZone extends TimeZone
}
/**
- * Returns the number of days in the given month. It does always
- * use the Gregorian leap year rule.
+ * Returns the number of days in the given month.
+ * Uses gregorian rules prior to 1582 (The default and earliest cutover)
* @param month The month, zero based; use one of the Calendar constants.
* @param year The year.
*/
private int getDaysInMonth(int month, int year)
{
- // Most of this is copied from GregorianCalendar.getActualMaximum()
if (month == Calendar.FEBRUARY)
{
- return ((year & 3) == 0 && (year % 100 != 0 || year % 400 == 0))
- ? 29 : 28;
+ if ((year & 3) != 0)
+ return 28;
+
+ // Assume default Gregorian cutover,
+ // all years prior to this must be Julian
+ if (year < 1582)
+ return 29;
+
+ // Gregorian rules
+ return ((year % 100) != 0 || (year % 400) == 0) ? 29 : 28;
}
- else if (month < Calendar.AUGUST)
- return 31 - (month & 1);
else
- return 30 + (month & 1);
+ return monthArr[month];
}
/**
@@ -804,23 +803,19 @@ public class SimpleTimeZone extends TimeZone
* @param mode the change mode; same semantic as startMode.
* @param month the change month; same semantic as startMonth.
* @param day the change day; same semantic as startDay.
- * @param dayOfWeek the change day of week;
+ * @param dayOfWeek the change day of week;
* @param millis the change time in millis since midnight standard time.
* same semantic as startDayOfWeek.
* @return true, if cal is before the change, false if cal is on
* or after the change.
*/
- private boolean isBefore(int calYear,
- int calMonth, int calDayOfMonth, int calDayOfWeek,
- int calMillis, int mode, int month,
- int day, int dayOfWeek, int millis)
+ private boolean isBefore(int calYear, int calMonth, int calDayOfMonth,
+ int calDayOfWeek, int calMillis, int mode,
+ int month, int day, int dayOfWeek, int millis)
{
-
// This method is called by Calendar, so we mustn't use that class.
// We have to do all calculations by hand.
-
// check the months:
-
// XXX - this is not correct:
// for the DOW_GE_DOM and DOW_LE_DOM modes the change date may
// be in a different month.
@@ -835,7 +830,7 @@ public class SimpleTimeZone extends TimeZone
return calDayOfMonth < day;
break;
case DOW_IN_MONTH_MODE:
- {
+ {
// This computes the day of month of the day of type
// "dayOfWeek" that lies in the same (sunday based) week as cal.
calDayOfMonth += (dayOfWeek - calDayOfWeek);
@@ -844,7 +839,6 @@ public class SimpleTimeZone extends TimeZone
// after dividing by 7). If we count from the end of the
// month, we get want a -7 based number counting the days from
// the end:
-
if (day < 0)
calDayOfMonth -= getDaysInMonth(calMonth, calYear) + 7;
else
@@ -857,9 +851,9 @@ public class SimpleTimeZone extends TimeZone
// 20 21 22 23 24 25 26 -23-22-21-20-19-18-17
// 27 28 29 30 31 32 33 -16-15-14-13-12-11-10
// 34 35 36 -9 -8 -7
-
// Now we calculate the day of week in month:
int week = calDayOfMonth / 7;
+
// day > 0 day < 0
// S M T W T F S S M T W T F S
// 1 1 1 1 1 1 -5 -5 -4 -4 -4 -4
@@ -867,7 +861,6 @@ public class SimpleTimeZone extends TimeZone
// 2 3 3 3 3 3 3 -3 -3 -3 -2 -2 -2 -2
// 3 4 4 4 4 4 4 -2 -2 -2 -1 -1 -1 -1
// 4 5 5 -1 -1 -1
-
if (week != day)
return week < day;
@@ -876,26 +869,25 @@ public class SimpleTimeZone extends TimeZone
// daylight savings starts/ends on the given day.
break;
- }
-
+ }
case DOW_LE_DOM_MODE:
// The greatest sunday before or equal December, 12
// is the same as smallest sunday after or equal December, 6.
day = Math.abs(day) - 6;
-
case DOW_GE_DOM_MODE:
-
// Calculate the day of month of the day of type
// "dayOfWeek" that lies before (or on) the given date.
- calDayOfMonth -= (calDayOfWeek < dayOfWeek ? 7 : 0)
- + calDayOfWeek - dayOfWeek;
+ calDayOfMonth -= (calDayOfWeek < dayOfWeek ? 7 : 0) + calDayOfWeek
+ - dayOfWeek;
if (calDayOfMonth < day)
return true;
if (calDayOfWeek != dayOfWeek || calDayOfMonth >= day + 7)
return false;
+
// now we have the same day
break;
}
+
// the millis decides:
return (calMillis < millis);
}
@@ -914,40 +906,35 @@ public class SimpleTimeZone extends TimeZone
/**
* Generates the hashCode for the SimpleDateFormat object. It is
* the rawOffset, possibly, if useDaylightSavings is true, xored
- * with startYear, startMonth, startDayOfWeekInMonth, ..., endTime.
+ * with startYear, startMonth, startDayOfWeekInMonth, ..., endTime.
*/
public synchronized int hashCode()
{
- return rawOffset ^
- (useDaylight ?
- startMonth ^ startDay ^ startDayOfWeek ^ startTime
- ^ endMonth ^ endDay ^ endDayOfWeek ^ endTime : 0);
+ return rawOffset
+ ^ (useDaylight
+ ? startMonth ^ startDay ^ startDayOfWeek ^ startTime ^ endMonth
+ ^ endDay ^ endDayOfWeek ^ endTime : 0);
}
public synchronized boolean equals(Object o)
{
if (this == o)
return true;
- if (!(o instanceof SimpleTimeZone))
+ if (! (o instanceof SimpleTimeZone))
return false;
SimpleTimeZone zone = (SimpleTimeZone) o;
- if (zone.hashCode() != hashCode()
- || !getID().equals(zone.getID())
- || rawOffset != zone.rawOffset || useDaylight != zone.useDaylight)
+ if (zone.hashCode() != hashCode() || ! getID().equals(zone.getID())
+ || rawOffset != zone.rawOffset || useDaylight != zone.useDaylight)
return false;
- if (!useDaylight)
+ if (! useDaylight)
return true;
- return (startYear == zone.startYear
- && startMonth == zone.startMonth
- && startDay == zone.startDay
- && startDayOfWeek == zone.startDayOfWeek
- && startTime == zone.startTime
- && startTimeMode == zone.startTimeMode
- && endMonth == zone.endMonth
- && endDay == zone.endDay
- && endDayOfWeek == zone.endDayOfWeek
- && endTime == zone.endTime
- && endTimeMode == zone.endTimeMode);
+ return (startYear == zone.startYear && startMonth == zone.startMonth
+ && startDay == zone.startDay
+ && startDayOfWeek == zone.startDayOfWeek
+ && startTime == zone.startTime
+ && startTimeMode == zone.startTimeMode && endMonth == zone.endMonth
+ && endDay == zone.endDay && endDayOfWeek == zone.endDayOfWeek
+ && endTime == zone.endTime && endTimeMode == zone.endTimeMode);
}
/**
@@ -962,25 +949,21 @@ public class SimpleTimeZone extends TimeZone
{
if (this == other)
return true;
- if (!(other instanceof SimpleTimeZone))
+ if (! (other instanceof SimpleTimeZone))
return false;
SimpleTimeZone zone = (SimpleTimeZone) other;
- if (zone.hashCode() != hashCode()
- || rawOffset != zone.rawOffset || useDaylight != zone.useDaylight)
+ if (zone.hashCode() != hashCode() || rawOffset != zone.rawOffset
+ || useDaylight != zone.useDaylight)
return false;
- if (!useDaylight)
+ if (! useDaylight)
return true;
- return (startYear == zone.startYear
- && startMonth == zone.startMonth
- && startDay == zone.startDay
- && startDayOfWeek == zone.startDayOfWeek
- && startTime == zone.startTime
- && startTimeMode == zone.startTimeMode
- && endMonth == zone.endMonth
- && endDay == zone.endDay
- && endDayOfWeek == zone.endDayOfWeek
- && endTime == zone.endTime
- && endTimeMode == zone.endTimeMode);
+ return (startYear == zone.startYear && startMonth == zone.startMonth
+ && startDay == zone.startDay
+ && startDayOfWeek == zone.startDayOfWeek
+ && startTime == zone.startTime
+ && startTimeMode == zone.startTimeMode && endMonth == zone.endMonth
+ && endDay == zone.endDay && endDayOfWeek == zone.endDayOfWeek
+ && endTime == zone.endTime && endTimeMode == zone.endTimeMode);
}
/**
@@ -991,26 +974,17 @@ public class SimpleTimeZone extends TimeZone
{
// the test for useDaylight is an incompatibility to jdk1.2, but
// I think this shouldn't hurt.
- return getClass().getName() + "["
- + "id=" + getID()
- + ",offset=" + rawOffset
- + ",dstSavings=" + dstSavings
- + ",useDaylight=" + useDaylight
- + (useDaylight ?
- ",startYear=" + startYear
- + ",startMode=" + startMode
- + ",startMonth=" + startMonth
- + ",startDay=" + startDay
- + ",startDayOfWeek=" + startDayOfWeek
- + ",startTime=" + startTime
- + ",startTimeMode=" + startTimeMode
- + ",endMode=" + endMode
- + ",endMonth=" + endMonth
- + ",endDay=" + endDay
- + ",endDayOfWeek=" + endDayOfWeek
- + ",endTime=" + endTime
- + ",endTimeMode=" + endTimeMode
- : "") + "]";
+ return getClass().getName() + "[" + "id=" + getID() + ",offset="
+ + rawOffset + ",dstSavings=" + dstSavings + ",useDaylight="
+ + useDaylight
+ + (useDaylight
+ ? ",startYear=" + startYear + ",startMode=" + startMode
+ + ",startMonth=" + startMonth + ",startDay=" + startDay
+ + ",startDayOfWeek=" + startDayOfWeek + ",startTime="
+ + startTime + ",startTimeMode=" + startTimeMode + ",endMode="
+ + endMode + ",endMonth=" + endMonth + ",endDay=" + endDay
+ + ",endDayOfWeek=" + endDayOfWeek + ",endTime=" + endTime
+ + ",endTimeMode=" + endTimeMode : "") + "]";
}
/**
@@ -1029,7 +1003,8 @@ public class SimpleTimeZone extends TimeZone
startMode = DOW_IN_MONTH_MODE;
startTimeMode = WALL_TIME;
endTimeMode = WALL_TIME;
- serialVersionOnStream = 2; }
+ serialVersionOnStream = 2;
+ }
else
{
int length = input.readInt();
@@ -1054,29 +1029,31 @@ public class SimpleTimeZone extends TimeZone
* <code>start/endDay(OfWeek)</code>-Fields are written in the
* DOW_IN_MONTH_MODE rule, since this was the only supported rule
* in 1.1.
- *
+ *
* In the optional section, we write first the length of an byte
* array as int and afterwards the byte array itself. The byte
* array contains in this release four elements, namely the real
* startDay, startDayOfWeek endDay, endDayOfWeek in that Order.
* These fields are needed, because for compatibility reasons only
* approximative values are written to the required section, as
- * described above.
+ * described above.
*/
private void writeObject(java.io.ObjectOutputStream output)
throws java.io.IOException
{
byte[] byteArray = new byte[]
- {
- (byte) startDay, (byte) startDayOfWeek,
- (byte) endDay, (byte) endDayOfWeek};
+ {
+ (byte) startDay, (byte) startDayOfWeek, (byte) endDay,
+ (byte) endDayOfWeek
+ };
/* calculate the approximation for JDK 1.1 */
switch (startMode)
{
case DOM_MODE:
- startDayOfWeek = Calendar.SUNDAY; // random day of week
- // fall through
+ startDayOfWeek = Calendar.SUNDAY; // random day of week
+
+ // fall through
case DOW_GE_DOM_MODE:
case DOW_LE_DOM_MODE:
startDay = (startDay + 6) / 7;
@@ -1085,7 +1062,8 @@ public class SimpleTimeZone extends TimeZone
{
case DOM_MODE:
endDayOfWeek = Calendar.SUNDAY;
- // fall through
+
+ // fall through
case DOW_GE_DOM_MODE:
case DOW_LE_DOM_MODE:
endDay = (endDay + 6) / 7;
diff --git a/libjava/java/util/SortedMap.java b/libjava/java/util/SortedMap.java
index 1d2d5a3cc46..f19809a5e3d 100644
--- a/libjava/java/util/SortedMap.java
+++ b/libjava/java/util/SortedMap.java
@@ -1,5 +1,5 @@
/* SortedMap.java -- A map that makes guarantees about the order of its keys
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ package java.util;
* Unfortunately, the Java language does not provide a way to enforce this.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Map
* @see TreeMap
* @see SortedSet
diff --git a/libjava/java/util/SortedSet.java b/libjava/java/util/SortedSet.java
index 8cdbe878f63..17537b70c70 100644
--- a/libjava/java/util/SortedSet.java
+++ b/libjava/java/util/SortedSet.java
@@ -1,6 +1,6 @@
/* SortedSet.java -- A set that makes guarantees about the order of its
elements
- Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -63,7 +63,7 @@ package java.util;
* enforce this.
*
* @author Original author unknown
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Set
* @see TreeSet
* @see SortedMap
diff --git a/libjava/java/util/Stack.java b/libjava/java/util/Stack.java
index 00e32e5b710..e256eb653b3 100644
--- a/libjava/java/util/Stack.java
+++ b/libjava/java/util/Stack.java
@@ -1,6 +1,6 @@
/* Stack.java - Class that provides a Last In First Out (LIFO)
datatype, known more commonly as a Stack
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,8 +50,8 @@ package java.util;
* methods for stack manipulation (push, pop, peek). You can also seek for
* the 1-based position of an element on the stack.
*
- * @author Warren Levy <warrenl@cygnus.com>
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see List
* @see AbstractList
* @see LinkedList
diff --git a/libjava/java/util/StringTokenizer.java b/libjava/java/util/StringTokenizer.java
index 472d8951e5d..90f97dba516 100644
--- a/libjava/java/util/StringTokenizer.java
+++ b/libjava/java/util/StringTokenizer.java
@@ -1,5 +1,5 @@
/* StringTokenizer -- breaks a String into tokens
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,7 +54,7 @@ package java.util;
* single character.
*
* @author Jochen Hoenicke
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see java.io.StreamTokenizer
* @status updated to 1.4
*/
diff --git a/libjava/java/util/TimeZone.java b/libjava/java/util/TimeZone.java
index 0685e604600..7c811795790 100644
--- a/libjava/java/util/TimeZone.java
+++ b/libjava/java/util/TimeZone.java
@@ -447,6 +447,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600,
Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600);
timezones0.put("CET", tz);
+ timezones0.put("CEST", tz);
timezones0.put("ECT", tz);
timezones0.put("MET", tz);
timezones0.put("Africa/Ceuta", tz);
diff --git a/libjava/java/util/Timer.java b/libjava/java/util/Timer.java
index e4eb246a1db..364d5314a97 100644
--- a/libjava/java/util/Timer.java
+++ b/libjava/java/util/Timer.java
@@ -343,9 +343,16 @@ public class Timer
{
task.run();
}
+ catch (ThreadDeath death)
+ {
+ // If an exception escapes, the Timer becomes invalid.
+ queue.stop();
+ throw death;
+ }
catch (Throwable t)
- {
- /* ignore all errors */
+ {
+ // If an exception escapes, the Timer becomes invalid.
+ queue.stop();
}
}
diff --git a/libjava/java/util/TooManyListenersException.java b/libjava/java/util/TooManyListenersException.java
index 883bdbc7086..dfe326b9aae 100644
--- a/libjava/java/util/TooManyListenersException.java
+++ b/libjava/java/util/TooManyListenersException.java
@@ -1,6 +1,6 @@
/* TooManyListenersException.java -- thrown when a unicast event can't accept
another Listener
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package java.util;
* single event listener.
*
* @author Jochen Hoenicke
- * @author Warren Levy <warrenl@cygnus.com>
+ * @author Warren Levy (warrenl@cygnus.com)
* @see EventListener
* @see EventObject
* @since 1.1
diff --git a/libjava/java/util/TreeMap.java b/libjava/java/util/TreeMap.java
index 440536845d7..fd5c12206ee 100644
--- a/libjava/java/util/TreeMap.java
+++ b/libjava/java/util/TreeMap.java
@@ -1,6 +1,6 @@
/* TreeMap.java -- a class providing a basic Red-Black Tree data structure,
mapping Object --> Object
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -78,7 +78,7 @@ import java.io.Serializable;
*
* @author Jon Zeppieri
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Map
* @see HashMap
* @see Hashtable
@@ -160,7 +160,7 @@ public class TreeMap extends AbstractMap
* Class to represent an entry in the tree. Holds a single key-value pair,
* plus pointers to parent and child nodes.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private static final class Node extends AbstractMap.BasicMapEntry
{
@@ -1382,7 +1382,7 @@ public class TreeMap extends AbstractMap
* Iterate over TreeMap's entries. This implementation is parameterized
* to give a sequential view of keys, values, or entries.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private final class TreeIterator implements Iterator
{
@@ -1490,7 +1490,7 @@ public class TreeMap extends AbstractMap
* map, and throws {@link IllegalArgumentException} for attempts to
* access beyond that range.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
*/
private final class SubMap extends AbstractMap implements SortedMap
{
diff --git a/libjava/java/util/TreeSet.java b/libjava/java/util/TreeSet.java
index f38357082d3..78504c51e8e 100644
--- a/libjava/java/util/TreeSet.java
+++ b/libjava/java/util/TreeSet.java
@@ -1,5 +1,5 @@
/* TreeSet.java -- a class providing a TreeMap-backed SortedSet
- Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -67,7 +67,7 @@ import java.io.Serializable;
*
* @author Jon Zeppieri
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see Set
* @see HashSet
diff --git a/libjava/java/util/Vector.java b/libjava/java/util/Vector.java
index 06eab1e9002..13a12b4cc82 100644
--- a/libjava/java/util/Vector.java
+++ b/libjava/java/util/Vector.java
@@ -1,5 +1,5 @@
/* Vector.java -- Class that provides growable arrays.
- Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -72,7 +72,7 @@ import java.lang.reflect.Array;
*
* @author Scott G. Miller
* @author Bryce McKinlay
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Collection
* @see List
* @see ArrayList
diff --git a/libjava/java/util/jar/JarFile.java b/libjava/java/util/jar/JarFile.java
index 070b3375d19..cb2cbf4900c 100644
--- a/libjava/java/util/jar/JarFile.java
+++ b/libjava/java/util/jar/JarFile.java
@@ -35,13 +35,38 @@ 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.util.jar;
+import gnu.java.io.Base64InputStream;
+import gnu.java.security.OID;
+import gnu.java.security.pkcs.PKCS7SignedData;
+import gnu.java.security.pkcs.SignerInfo;
+
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.Signature;
+import java.security.SignatureException;
+import java.security.cert.CRLException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
@@ -52,11 +77,11 @@ import java.util.zip.ZipFile;
* Note that this class is not a subclass of java.io.File but a subclass of
* java.util.zip.ZipFile and you can only read JarFiles with it (although
* there are constructors that take a File object).
- * <p>
- * XXX - verification of Manifest signatures is not yet implemented.
*
* @since 1.2
* @author Mark Wielaard (mark@klomp.org)
+ * @author Casey Marshall (csm@gnu.org) wrote the certificate and entry
+ * verification code.
*/
public class JarFile extends ZipFile
{
@@ -65,6 +90,29 @@ public class JarFile extends ZipFile
/** The name of the manifest entry: META-INF/MANIFEST.MF */
public static final String MANIFEST_NAME = "META-INF/MANIFEST.MF";
+ /** The META-INF directory entry. */
+ private static final String META_INF = "META-INF/";
+
+ /** The suffix for PKCS7 DSA signature entries. */
+ private static final String PKCS7_DSA_SUFFIX = ".DSA";
+
+ /** The suffix for PKCS7 RSA signature entries. */
+ private static final String PKCS7_RSA_SUFFIX = ".RSA";
+
+ /** The suffix for digest attributes. */
+ private static final String DIGEST_KEY_SUFFIX = "-Digest";
+
+ /** The suffix for signature files. */
+ private static final String SF_SUFFIX = ".SF";
+
+ // Signature OIDs.
+ private static final OID MD2_OID = new OID("1.2.840.113549.2.2");
+ private static final OID MD4_OID = new OID("1.2.840.113549.2.4");
+ private static final OID MD5_OID = new OID("1.2.840.113549.2.5");
+ private static final OID SHA1_OID = new OID("1.3.14.3.2.26");
+ private static final OID DSA_ENCRYPTION_OID = new OID("1.2.840.10040.4.1");
+ private static final OID RSA_ENCRYPTION_OID = new OID("1.2.840.113549.1.1.1");
+
/**
* The manifest of this file, if any, otherwise null.
* Read when first needed.
@@ -72,11 +120,34 @@ public class JarFile extends ZipFile
private Manifest manifest;
/** Whether to verify the manifest and all entries. */
- private boolean verify;
+ boolean verify;
/** Whether the has already been loaded. */
private boolean manifestRead = false;
+ /** Whether the signature files have been loaded. */
+ boolean signaturesRead = false;
+
+ /**
+ * A map between entry names and booleans, signaling whether or
+ * not that entry has been verified.
+ * Only be accessed with lock on this JarFile*/
+ HashMap verified = new HashMap();
+
+ /**
+ * A mapping from entry name to certificates, if any.
+ * Only accessed with lock on this JarFile.
+ */
+ HashMap entryCerts;
+
+ static boolean DEBUG = false;
+ static void debug(Object msg)
+ {
+ System.err.print(JarFile.class.getName());
+ System.err.print(" >>> ");
+ System.err.println(msg);
+ }
+
// Constructors
/**
@@ -235,22 +306,23 @@ public class JarFile extends ZipFile
*/
public Enumeration entries() throws IllegalStateException
{
- return new JarEnumeration(super.entries());
+ return new JarEnumeration(super.entries(), this);
}
/**
* Wraps a given Zip Entries Enumeration. For every zip entry a
* JarEntry is created and the corresponding Attributes are looked up.
- * XXX - Should also look up the certificates.
*/
- private class JarEnumeration implements Enumeration
+ private static class JarEnumeration implements Enumeration
{
private final Enumeration entries;
+ private final JarFile jarfile;
- JarEnumeration(Enumeration e)
+ JarEnumeration(Enumeration e, JarFile f)
{
entries = e;
+ jarfile = f;
}
public boolean hasMoreElements()
@@ -265,7 +337,7 @@ public class JarFile extends ZipFile
Manifest manifest;
try
{
- manifest = getManifest();
+ manifest = jarfile.getManifest();
}
catch (IOException ioe)
{
@@ -276,7 +348,36 @@ public class JarFile extends ZipFile
{
jar.attr = manifest.getAttributes(jar.getName());
}
- // XXX jar.certs
+
+ synchronized(jarfile)
+ {
+ if (!jarfile.signaturesRead)
+ try
+ {
+ jarfile.readSignatures();
+ }
+ catch (IOException ioe)
+ {
+ if (JarFile.DEBUG)
+ {
+ JarFile.debug(ioe);
+ ioe.printStackTrace();
+ }
+ jarfile.signaturesRead = true; // fudge it.
+ }
+
+ // Include the certificates only if we have asserted that the
+ // signatures are valid. This means the certificates will not be
+ // available if the entry hasn't been read yet.
+ if (jarfile.entryCerts != null
+ && jarfile.verified.get(zip.getName()) == Boolean.TRUE)
+ {
+ Set certs = (Set) jarfile.entryCerts.get(jar.getName());
+ if (certs != null)
+ jar.certs = (Certificate[])
+ certs.toArray(new Certificate[certs.size()]);
+ }
+ }
return jar;
}
}
@@ -286,7 +387,7 @@ public class JarFile extends ZipFile
* It actually returns a JarEntry not a zipEntry
* @param name XXX
*/
- public ZipEntry getEntry(String name)
+ public synchronized ZipEntry getEntry(String name)
{
ZipEntry entry = super.getEntry(name);
if (entry != null)
@@ -305,7 +406,33 @@ public class JarFile extends ZipFile
if (manifest != null)
{
jarEntry.attr = manifest.getAttributes(name);
- // XXX jarEntry.certs
+ }
+
+ if (!signaturesRead)
+ try
+ {
+ readSignatures();
+ }
+ catch (IOException ioe)
+ {
+ if (DEBUG)
+ {
+ debug(ioe);
+ ioe.printStackTrace();
+ }
+ signaturesRead = true;
+ }
+ // See the comments in the JarEnumeration for why we do this
+ // check.
+ if (DEBUG)
+ debug("entryCerts=" + entryCerts + " verified " + name
+ + " ? " + verified.get(name));
+ if (entryCerts != null && verified.get(name) == Boolean.TRUE)
+ {
+ Set certs = (Set) entryCerts.get(name);
+ if (certs != null)
+ jarEntry.certs = (Certificate[])
+ certs.toArray(new Certificate[certs.size()]);
}
return jarEntry;
}
@@ -313,15 +440,32 @@ public class JarFile extends ZipFile
}
/**
- * XXX should verify the inputstream
- * @param entry XXX
+ * Returns an input stream for the given entry. If configured to
+ * verify entries, the input stream returned will verify them while
+ * the stream is read, but only on the first time.
+ *
+ * @param entry The entry to get the input stream for.
* @exception ZipException XXX
* @exception IOException XXX
*/
public synchronized InputStream getInputStream(ZipEntry entry) throws
ZipException, IOException
{
- return super.getInputStream(entry); // XXX verify
+ // If we haven't verified the hash, do it now.
+ if (!verified.containsKey(entry.getName()) && verify)
+ {
+ if (DEBUG)
+ debug("reading and verifying " + entry);
+ return new EntryInputStream(entry, super.getInputStream(entry), this);
+ }
+ else
+ {
+ if (DEBUG)
+ debug("reading already verified entry " + entry);
+ if (verify && verified.get(entry.getName()) == Boolean.FALSE)
+ throw new ZipException("digest for " + entry + " is invalid");
+ return super.getInputStream(entry);
+ }
}
/**
@@ -342,11 +486,573 @@ public class JarFile extends ZipFile
* Returns the manifest for this JarFile or null when the JarFile does not
* contain a manifest file.
*/
- public Manifest getManifest() throws IOException
+ public synchronized Manifest getManifest() throws IOException
{
if (!manifestRead)
manifest = readManifest();
return manifest;
}
+
+ // Only called with lock on this JarFile.
+ private void readSignatures() throws IOException
+ {
+ Map pkcs7Dsa = new HashMap();
+ Map pkcs7Rsa = new HashMap();
+ Map sigFiles = new HashMap();
+
+ // Phase 1: Read all signature files. These contain the user
+ // certificates as well as the signatures themselves.
+ for (Enumeration e = super.entries(); e.hasMoreElements(); )
+ {
+ ZipEntry ze = (ZipEntry) e.nextElement();
+ String name = ze.getName();
+ if (name.startsWith(META_INF))
+ {
+ String alias = name.substring(META_INF.length());
+ if (alias.lastIndexOf('.') >= 0)
+ alias = alias.substring(0, alias.lastIndexOf('.'));
+
+ if (name.endsWith(PKCS7_DSA_SUFFIX) || name.endsWith(PKCS7_RSA_SUFFIX))
+ {
+ if (DEBUG)
+ debug("reading PKCS7 info from " + name + ", alias=" + alias);
+ PKCS7SignedData sig = null;
+ try
+ {
+ sig = new PKCS7SignedData(super.getInputStream(ze));
+ }
+ catch (CertificateException ce)
+ {
+ IOException ioe = new IOException("certificate parsing error");
+ ioe.initCause(ce);
+ throw ioe;
+ }
+ catch (CRLException crle)
+ {
+ IOException ioe = new IOException("CRL parsing error");
+ ioe.initCause(crle);
+ throw ioe;
+ }
+ if (name.endsWith(PKCS7_DSA_SUFFIX))
+ pkcs7Dsa.put(alias, sig);
+ else if (name.endsWith(PKCS7_RSA_SUFFIX))
+ pkcs7Rsa.put(alias, sig);
+ }
+ else if (name.endsWith(SF_SUFFIX))
+ {
+ if (DEBUG)
+ debug("reading signature file for " + alias + ": " + name);
+ Manifest sf = new Manifest(super.getInputStream(ze));
+ sigFiles.put(alias, sf);
+ if (DEBUG)
+ debug("result: " + sf);
+ }
+ }
+ }
+
+ // Phase 2: verify the signatures on any signature files.
+ Set validCerts = new HashSet();
+ Map entryCerts = new HashMap();
+ for (Iterator it = sigFiles.entrySet().iterator(); it.hasNext(); )
+ {
+ int valid = 0;
+ Map.Entry e = (Map.Entry) it.next();
+ String alias = (String) e.getKey();
+
+ PKCS7SignedData sig = (PKCS7SignedData) pkcs7Dsa.get(alias);
+ if (sig != null)
+ {
+ Certificate[] certs = sig.getCertificates();
+ Set signerInfos = sig.getSignerInfos();
+ for (Iterator it2 = signerInfos.iterator(); it2.hasNext(); )
+ verify(certs, (SignerInfo) it2.next(), alias, validCerts);
+ }
+
+ sig = (PKCS7SignedData) pkcs7Rsa.get(alias);
+ if (sig != null)
+ {
+ Certificate[] certs = sig.getCertificates();
+ Set signerInfos = sig.getSignerInfos();
+ for (Iterator it2 = signerInfos.iterator(); it2.hasNext(); )
+ verify(certs, (SignerInfo) it2.next(), alias, validCerts);
+ }
+
+ // It isn't a signature for anything. Punt it.
+ if (validCerts.isEmpty())
+ {
+ it.remove();
+ continue;
+ }
+
+ entryCerts.put(e.getValue(), new HashSet(validCerts));
+ validCerts.clear();
+ }
+
+ // Phase 3: verify the signature file signatures against the manifest,
+ // mapping the entry name to the target certificates.
+ this.entryCerts = new HashMap();
+ for (Iterator it = entryCerts.entrySet().iterator(); it.hasNext(); )
+ {
+ Map.Entry e = (Map.Entry) it.next();
+ Manifest sigfile = (Manifest) e.getKey();
+ Map entries = sigfile.getEntries();
+ Set certificates = (Set) e.getValue();
+
+ for (Iterator it2 = entries.entrySet().iterator(); it2.hasNext(); )
+ {
+ Map.Entry e2 = (Map.Entry) it2.next();
+ String entryname = String.valueOf(e2.getKey());
+ Attributes attr = (Attributes) e2.getValue();
+ if (verifyHashes(entryname, attr))
+ {
+ if (DEBUG)
+ debug("entry " + entryname + " has certificates " + certificates);
+ Set s = (Set) this.entryCerts.get(entryname);
+ if (s != null)
+ s.addAll(certificates);
+ else
+ this.entryCerts.put(entryname, new HashSet(certificates));
+ }
+ }
+ }
+
+ signaturesRead = true;
+ }
+
+ /**
+ * Tell if the given signer info is over the given alias's signature file,
+ * given one of the certificates specified.
+ */
+ private void verify(Certificate[] certs, SignerInfo signerInfo,
+ String alias, Set validCerts)
+ {
+ Signature sig = null;
+ try
+ {
+ OID alg = signerInfo.getDigestEncryptionAlgorithmId();
+ if (alg.equals(DSA_ENCRYPTION_OID))
+ {
+ if (!signerInfo.getDigestAlgorithmId().equals(SHA1_OID))
+ return;
+ sig = Signature.getInstance("SHA1withDSA");
+ }
+ else if (alg.equals(RSA_ENCRYPTION_OID))
+ {
+ OID hash = signerInfo.getDigestAlgorithmId();
+ if (hash.equals(MD2_OID))
+ sig = Signature.getInstance("md2WithRsaEncryption");
+ else if (hash.equals(MD4_OID))
+ sig = Signature.getInstance("md4WithRsaEncryption");
+ else if (hash.equals(MD5_OID))
+ sig = Signature.getInstance("md5WithRsaEncryption");
+ else if (hash.equals(SHA1_OID))
+ sig = Signature.getInstance("sha1WithRsaEncryption");
+ else
+ return;
+ }
+ else
+ {
+ if (DEBUG)
+ debug("unsupported signature algorithm: " + alg);
+ return;
+ }
+ }
+ catch (NoSuchAlgorithmException nsae)
+ {
+ if (DEBUG)
+ {
+ debug(nsae);
+ nsae.printStackTrace();
+ }
+ return;
+ }
+ ZipEntry sigFileEntry = super.getEntry(META_INF + alias + SF_SUFFIX);
+ if (sigFileEntry == null)
+ return;
+ for (int i = 0; i < certs.length; i++)
+ {
+ if (!(certs[i] instanceof X509Certificate))
+ continue;
+ X509Certificate cert = (X509Certificate) certs[i];
+ if (!cert.getIssuerX500Principal().equals(signerInfo.getIssuer()) ||
+ !cert.getSerialNumber().equals(signerInfo.getSerialNumber()))
+ continue;
+ try
+ {
+ sig.initVerify(cert.getPublicKey());
+ InputStream in = super.getInputStream(sigFileEntry);
+ if (in == null)
+ continue;
+ byte[] buf = new byte[1024];
+ int len = 0;
+ while ((len = in.read(buf)) != -1)
+ sig.update(buf, 0, len);
+ if (sig.verify(signerInfo.getEncryptedDigest()))
+ {
+ if (DEBUG)
+ debug("signature for " + cert.getSubjectDN() + " is good");
+ validCerts.add(cert);
+ }
+ }
+ catch (IOException ioe)
+ {
+ continue;
+ }
+ catch (InvalidKeyException ike)
+ {
+ continue;
+ }
+ catch (SignatureException se)
+ {
+ continue;
+ }
+ }
+ }
+
+ /**
+ * Verifies that the digest(s) in a signature file were, in fact, made
+ * over the manifest entry for ENTRY.
+ *
+ * @param entry The entry name.
+ * @param attr The attributes from the signature file to verify.
+ */
+ private boolean verifyHashes(String entry, Attributes attr)
+ {
+ int verified = 0;
+
+ // The bytes for ENTRY's manifest entry, which are signed in the
+ // signature file.
+ byte[] entryBytes = null;
+ try
+ {
+ ZipEntry e = super.getEntry(entry);
+ if (e == null)
+ {
+ if (DEBUG)
+ debug("verifyHashes: no entry '" + entry + "'");
+ return false;
+ }
+ entryBytes = readManifestEntry(e);
+ }
+ catch (IOException ioe)
+ {
+ if (DEBUG)
+ {
+ debug(ioe);
+ ioe.printStackTrace();
+ }
+ return false;
+ }
+
+ for (Iterator it = attr.entrySet().iterator(); it.hasNext(); )
+ {
+ Map.Entry e = (Map.Entry) it.next();
+ String key = String.valueOf(e.getKey());
+ if (!key.endsWith(DIGEST_KEY_SUFFIX))
+ continue;
+ String alg = key.substring(0, key.length() - DIGEST_KEY_SUFFIX.length());
+ try
+ {
+ byte[] hash = Base64InputStream.decode((String) e.getValue());
+ MessageDigest md = MessageDigest.getInstance(alg);
+ md.update(entryBytes);
+ byte[] hash2 = md.digest();
+ if (DEBUG)
+ debug("verifying SF entry " + entry + " alg: " + md.getAlgorithm()
+ + " expect=" + new java.math.BigInteger(hash).toString(16)
+ + " comp=" + new java.math.BigInteger(hash2).toString(16));
+ if (!Arrays.equals(hash, hash2))
+ return false;
+ verified++;
+ }
+ catch (IOException ioe)
+ {
+ if (DEBUG)
+ {
+ debug(ioe);
+ ioe.printStackTrace();
+ }
+ return false;
+ }
+ catch (NoSuchAlgorithmException nsae)
+ {
+ if (DEBUG)
+ {
+ debug(nsae);
+ nsae.printStackTrace();
+ }
+ return false;
+ }
+ }
+
+ // We have to find at least one valid digest.
+ return verified > 0;
+ }
+
+ /**
+ * Read the raw bytes that comprise a manifest entry. We can't use the
+ * Manifest object itself, because that loses information (such as line
+ * endings, and order of entries).
+ */
+ private byte[] readManifestEntry(ZipEntry entry) throws IOException
+ {
+ InputStream in = super.getInputStream(super.getEntry(MANIFEST_NAME));
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ byte[] target = ("Name: " + entry.getName()).getBytes();
+ int t = 0, c, prev = -1, state = 0, l = -1;
+
+ while ((c = in.read()) != -1)
+ {
+// if (DEBUG)
+// debug("read "
+// + (c == '\n' ? "\\n" : (c == '\r' ? "\\r" : String.valueOf((char) c)))
+// + " state=" + state + " prev="
+// + (prev == '\n' ? "\\n" : (prev == '\r' ? "\\r" : String.valueOf((char) prev)))
+// + " t=" + t + (t < target.length ? (" target[t]=" + (char) target[t]) : "")
+// + " l=" + l);
+ switch (state)
+ {
+
+ // Step 1: read until we find the "target" bytes: the start
+ // of the entry we need to read.
+ case 0:
+ if (((byte) c) != target[t])
+ t = 0;
+ else
+ {
+ t++;
+ if (t == target.length)
+ {
+ out.write(target);
+ state = 1;
+ }
+ }
+ break;
+
+ // Step 2: assert that there is a newline character after
+ // the "target" bytes.
+ case 1:
+ if (c != '\n' && c != '\r')
+ {
+ out.reset();
+ t = 0;
+ state = 0;
+ }
+ else
+ {
+ out.write(c);
+ state = 2;
+ }
+ break;
+
+ // Step 3: read this whole entry, until we reach an empty
+ // line.
+ case 2:
+ if (c == '\n')
+ {
+ out.write(c);
+ // NL always terminates a line.
+ if (l == 0 || (l == 1 && prev == '\r'))
+ return out.toByteArray();
+ l = 0;
+ }
+ else
+ {
+ // Here we see a blank line terminated by a CR,
+ // followed by the next entry. Technically, `c' should
+ // always be 'N' at this point.
+ if (l == 1 && prev == '\r')
+ return out.toByteArray();
+ out.write(c);
+ l++;
+ }
+ prev = c;
+ break;
+
+ default:
+ throw new RuntimeException("this statement should be unreachable");
+ }
+ }
+
+ // The last entry, with a single CR terminating the line.
+ if (state == 2 && prev == '\r' && l == 0)
+ return out.toByteArray();
+
+ // We should not reach this point, we didn't find the entry (or, possibly,
+ // it is the last entry and is malformed).
+ throw new IOException("could not find " + entry + " in manifest");
+ }
+
+ /**
+ * A utility class that verifies jar entries as they are read.
+ */
+ private static class EntryInputStream extends FilterInputStream
+ {
+ private final JarFile jarfile;
+ private final long length;
+ private long pos;
+ private final ZipEntry entry;
+ private final byte[][] hashes;
+ private final MessageDigest[] md;
+ private boolean checked;
+
+ EntryInputStream(final ZipEntry entry,
+ final InputStream in,
+ final JarFile jar)
+ throws IOException
+ {
+ super(in);
+ this.entry = entry;
+ this.jarfile = jar;
+
+ length = entry.getSize();
+ pos = 0;
+ checked = false;
+
+ Attributes attr;
+ Manifest manifest = jarfile.getManifest();
+ if (manifest != null)
+ attr = manifest.getAttributes(entry.getName());
+ else
+ attr = null;
+ if (DEBUG)
+ debug("verifying entry " + entry + " attr=" + attr);
+ if (attr == null)
+ {
+ hashes = new byte[0][];
+ md = new MessageDigest[0];
+ }
+ else
+ {
+ List hashes = new LinkedList();
+ List md = new LinkedList();
+ for (Iterator it = attr.entrySet().iterator(); it.hasNext(); )
+ {
+ Map.Entry e = (Map.Entry) it.next();
+ String key = String.valueOf(e.getKey());
+ if (key == null)
+ continue;
+ if (!key.endsWith(DIGEST_KEY_SUFFIX))
+ continue;
+ hashes.add(Base64InputStream.decode((String) e.getValue()));
+ try
+ {
+ md.add(MessageDigest.getInstance
+ (key.substring(0, key.length() - DIGEST_KEY_SUFFIX.length())));
+ }
+ catch (NoSuchAlgorithmException nsae)
+ {
+ IOException ioe = new IOException("no such message digest: " + key);
+ ioe.initCause(nsae);
+ throw ioe;
+ }
+ }
+ if (DEBUG)
+ debug("digests=" + md);
+ this.hashes = (byte[][]) hashes.toArray(new byte[hashes.size()][]);
+ this.md = (MessageDigest[]) md.toArray(new MessageDigest[md.size()]);
+ }
+ }
+
+ public boolean markSupported()
+ {
+ return false;
+ }
+
+ public void mark(int readLimit)
+ {
+ }
+
+ public void reset()
+ {
+ }
+
+ public int read() throws IOException
+ {
+ int b = super.read();
+ if (b == -1)
+ {
+ eof();
+ return -1;
+ }
+ for (int i = 0; i < md.length; i++)
+ md[i].update((byte) b);
+ pos++;
+ if (length > 0 && pos >= length)
+ eof();
+ return b;
+ }
+
+ public int read(byte[] buf, int off, int len) throws IOException
+ {
+ int count = super.read(buf, off, (int) Math.min(len, (length != 0
+ ? length - pos
+ : Integer.MAX_VALUE)));
+ if (count == -1 || (length > 0 && pos >= length))
+ {
+ eof();
+ return -1;
+ }
+ for (int i = 0; i < md.length; i++)
+ md[i].update(buf, off, count);
+ pos += count;
+ if (length != 0 && pos >= length)
+ eof();
+ return count;
+ }
+
+ public int read(byte[] buf) throws IOException
+ {
+ return read(buf, 0, buf.length);
+ }
+
+ public long skip(long bytes) throws IOException
+ {
+ byte[] b = new byte[1024];
+ long amount = 0;
+ while (amount < bytes)
+ {
+ int l = read(b, 0, (int) Math.min(b.length, bytes - amount));
+ if (l == -1)
+ break;
+ amount += l;
+ }
+ return amount;
+ }
+
+ private void eof() throws IOException
+ {
+ if (checked)
+ return;
+ checked = true;
+ for (int i = 0; i < md.length; i++)
+ {
+ byte[] hash = md[i].digest();
+ if (DEBUG)
+ debug("verifying " + md[i].getAlgorithm() + " expect="
+ + new java.math.BigInteger(hashes[i]).toString(16)
+ + " comp=" + new java.math.BigInteger(hash).toString(16));
+ if (!Arrays.equals(hash, hashes[i]))
+ {
+ synchronized(jarfile)
+ {
+ if (DEBUG)
+ debug(entry + " could NOT be verified");
+ jarfile.verified.put(entry.getName(), Boolean.FALSE);
+ }
+ return;
+ // XXX ??? what do we do here?
+ // throw new ZipException("message digest mismatch");
+ }
+ }
+
+ synchronized(jarfile)
+ {
+ if (DEBUG)
+ debug(entry + " has been VERIFIED");
+ jarfile.verified.put(entry.getName(), Boolean.TRUE);
+ }
+ }
+ }
}
diff --git a/libjava/java/util/logging/FileHandler.java b/libjava/java/util/logging/FileHandler.java
index 6bbc23c0a9c..ae8eb865ae3 100644
--- a/libjava/java/util/logging/FileHandler.java
+++ b/libjava/java/util/logging/FileHandler.java
@@ -1,5 +1,5 @@
/* FileHandler.java -- a class for publishing log messages to log files
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -403,7 +403,7 @@ public class FileHandler
* the system property <code>"user.home"</code>, <code>"%g"</code>
* by the value of <code>generation</code>, <code>"%u"</code> by the
* value of <code>uniqueNumber</code>, and <code>"%%"</code> by a
- * single percent character. If <code>pattern<code> does
+ * single percent character. If <code>pattern</code> does
* <em>not</em> contain the sequence <code>"%g"</code>,
* the value of <code>generation</code> will be appended to
* the result.
diff --git a/libjava/java/util/logging/Level.java b/libjava/java/util/logging/Level.java
index b121437dd93..5c3c22bf906 100644
--- a/libjava/java/util/logging/Level.java
+++ b/libjava/java/util/logging/Level.java
@@ -1,5 +1,5 @@
/* Level.java -- a class for indicating logging levels
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.ResourceBundle;
* purposes, however, applications can sub-class Level in order to define
* custom logging levels.
*
- * @author Sascha Brawer <brawer@acm.org>
+ * @author Sascha Brawer (brawer@acm.org)
*/
public class Level implements Serializable
{
diff --git a/libjava/java/util/logging/Logger.java b/libjava/java/util/logging/Logger.java
index 99c9be9a311..29635558598 100644
--- a/libjava/java/util/logging/Logger.java
+++ b/libjava/java/util/logging/Logger.java
@@ -1,5 +1,5 @@
/* Logger.java -- a class for logging messages
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -1169,17 +1169,5 @@ public class Logger
* That should be the initial caller of a logging method.
* @return caller of the initial looging method
*/
- private StackTraceElement getCallerStackFrame()
- {
- Throwable t = new Throwable();
- StackTraceElement[] stackTrace = t.getStackTrace();
- int index = 0;
- // skip to stackentries until this class
- while(!stackTrace[index].getClassName().equals(getClass().getName())){index++;}
- // skip the stackentries of this class
- while(stackTrace[index].getClassName().equals(getClass().getName())){index++;}
-
- return stackTrace[index];
- }
-
+ private native StackTraceElement getCallerStackFrame();
}
diff --git a/libjava/java/util/logging/natLogger.cc b/libjava/java/util/logging/natLogger.cc
new file mode 100644
index 00000000000..15d1ab70efd
--- /dev/null
+++ b/libjava/java/util/logging/natLogger.cc
@@ -0,0 +1,55 @@
+// natLogger.cc - Native part of Logger class.
+
+/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
+
+ This Logger is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the Logger "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+#include <platform.h>
+
+#include <string.h>
+
+#pragma implementation "Logger.h"
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+
+#include <java/lang/Object.h>
+#include <java/lang/Class.h>
+#include <java/util/logging/Logger.h>
+#include <java/lang/StackTraceElement.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
+
+java::lang::StackTraceElement*
+java::util::logging::Logger::getCallerStackFrame ()
+{
+ gnu::gcj::runtime::StackTrace *t
+ = new gnu::gcj::runtime::StackTrace(4);
+ java::lang::Class *klass = NULL;
+ int i = 2;
+ try
+ {
+ // skip until this class
+ while ((klass = t->classAt (i)) != getClass())
+ i++;
+ // skip the stackentries of this class
+ while ((klass = t->classAt (i)) == getClass() || klass == NULL)
+ i++;
+ }
+ catch (::java::lang::ArrayIndexOutOfBoundsException *e)
+ {
+ // FIXME: RuntimeError
+ }
+
+ java::lang::StackTraceElement *e
+ = new java::lang::StackTraceElement
+ (JvNewStringUTF (""), 0,
+ klass->getName(), t->methodAt(i), false);
+
+ return e;
+}
diff --git a/libjava/java/util/prefs/AbstractPreferences.java b/libjava/java/util/prefs/AbstractPreferences.java
index 69f4426e6d3..159a887c831 100644
--- a/libjava/java/util/prefs/AbstractPreferences.java
+++ b/libjava/java/util/prefs/AbstractPreferences.java
@@ -550,6 +550,8 @@ public abstract class AbstractPreferences extends Preferences {
String value;
try {
value = getSpi(key);
+ } catch (ThreadDeath death) {
+ throw death;
} catch (Throwable t) {
value = null;
}
diff --git a/libjava/java/util/prefs/BackingStoreException.java b/libjava/java/util/prefs/BackingStoreException.java
index 2607142d0e8..850825155d9 100644
--- a/libjava/java/util/prefs/BackingStoreException.java
+++ b/libjava/java/util/prefs/BackingStoreException.java
@@ -1,6 +1,6 @@
/* BackingStoreException.java - chained exception thrown when backing store
fails
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import java.io.ObjectOutputStream;
* <p>Note that although this class inherits the Serializable interface, an
* attempt to serialize will fail with a <code>NotSerializableException</code>.
*
- * @author Mark Wielaard <mark@klomp.org>
+ * @author Mark Wielaard (mark@klomp.org)
* @since 1.4
* @status updated to 1.4
*/
diff --git a/libjava/java/util/prefs/InvalidPreferencesFormatException.java b/libjava/java/util/prefs/InvalidPreferencesFormatException.java
index 05996315261..220e1420c52 100644
--- a/libjava/java/util/prefs/InvalidPreferencesFormatException.java
+++ b/libjava/java/util/prefs/InvalidPreferencesFormatException.java
@@ -1,6 +1,6 @@
/* InvalidPreferencesFormatException - indicates reading prefs from stream
failed
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,8 +49,9 @@ import java.io.ObjectOutputStream;
*
* <p>Note that although this class inherits the Serializable interface, an
* attempt to serialize will fail with a <code>NotSerializableException</code>.
+ * </p>
*
- * @author Mark Wielaard <mark@klomp.org>
+ * @author Mark Wielaard (mark@klomp.org)
* @see Preferences
* @since 1.4
* @status updated to 1.4
diff --git a/libjava/java/util/prefs/Preferences.java b/libjava/java/util/prefs/Preferences.java
index c0f0231951f..4186c805a0c 100644
--- a/libjava/java/util/prefs/Preferences.java
+++ b/libjava/java/util/prefs/Preferences.java
@@ -1,5 +1,5 @@
/* Preferences -- Preference node containing key value entries and subnodes
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -234,7 +234,7 @@ public abstract class Preferences {
* The package node name of the object is determined by dropping the
* class name of the object of the fully quallified class name and
* replacing all '.' to '/' in the package name. If the class of the
- * object has no package then the package node name is "<unnamed>".
+ * object has no package then the package node name is "&lt;unnamed&gt;".
* The returened node is <code>systemRoot().node(packageNodeName)</code>.
*
* @param o Object whose default system preference node is requested
@@ -253,7 +253,7 @@ public abstract class Preferences {
* The package node name of the object is determined by dropping the
* class name of the object of the fully quallified class name and
* replacing all '.' to '/' in the package name. If the class of the
- * object has no package then the package node name is "<unnamed>".
+ * object has no package then the package node name is "&lt;unnamed&gt;".
* The returened node is <code>userRoot().node(packageNodeName)</code>.
*
* @param o Object whose default user preference node is requested
diff --git a/libjava/javax/accessibility/Accessible.java b/libjava/javax/accessibility/Accessible.java
index 1c407a682f5..e26cf850cb9 100644
--- a/libjava/javax/accessibility/Accessible.java
+++ b/libjava/javax/accessibility/Accessible.java
@@ -1,5 +1,5 @@
/* Accessible.java -- primary Java accessibility interface
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package javax.accessibility;
* for the Accessibility API which must be implemented by all user
* interface components.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleAction.java b/libjava/javax/accessibility/AccessibleAction.java
index b05883aa98c..b65fb96a4e4 100644
--- a/libjava/javax/accessibility/AccessibleAction.java
+++ b/libjava/javax/accessibility/AccessibleAction.java
@@ -1,5 +1,5 @@
/* AccessibleAction.java -- aids in accessibly performing actions
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleAction()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleAction()
diff --git a/libjava/javax/accessibility/AccessibleBundle.java b/libjava/javax/accessibility/AccessibleBundle.java
index 11b9cb38efa..de806709615 100644
--- a/libjava/javax/accessibility/AccessibleBundle.java
+++ b/libjava/javax/accessibility/AccessibleBundle.java
@@ -1,5 +1,5 @@
/* AccessibleBundle.java -- base class for accessibility "enumerations"
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.Locale;
* objects are strongly typed; to make up for the lack of true enums in Java.
* Display should be locale dependent.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleRole
* @see AccessibleState
* @since 1.2
diff --git a/libjava/javax/accessibility/AccessibleComponent.java b/libjava/javax/accessibility/AccessibleComponent.java
index 7634eb5ba93..e57d84a2f55 100644
--- a/libjava/javax/accessibility/AccessibleComponent.java
+++ b/libjava/javax/accessibility/AccessibleComponent.java
@@ -1,5 +1,5 @@
/* AccessibleComponent.java -- aids in accessibly rendering Java components
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -56,7 +56,7 @@ import java.awt.event.FocusListener;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleComponent()
diff --git a/libjava/javax/accessibility/AccessibleContext.java b/libjava/javax/accessibility/AccessibleContext.java
index 18679d4a4f5..582bd28e926 100644
--- a/libjava/javax/accessibility/AccessibleContext.java
+++ b/libjava/javax/accessibility/AccessibleContext.java
@@ -55,7 +55,7 @@ import java.util.Locale;
* <li>{@link AccessibleValue} - the object represents a numerical value</li>
* </ul>
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleEditableText.java b/libjava/javax/accessibility/AccessibleEditableText.java
index e1ffb617a2f..ae1ef23f8cc 100644
--- a/libjava/javax/accessibility/AccessibleEditableText.java
+++ b/libjava/javax/accessibility/AccessibleEditableText.java
@@ -1,5 +1,5 @@
/* AccessibleEditableText.java -- aids in accessibly for editable text
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import javax.swing.text.AttributeSet;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleText()
diff --git a/libjava/javax/accessibility/AccessibleExtendedComponent.java b/libjava/javax/accessibility/AccessibleExtendedComponent.java
index d57de19745f..230c73972df 100644
--- a/libjava/javax/accessibility/AccessibleExtendedComponent.java
+++ b/libjava/javax/accessibility/AccessibleExtendedComponent.java
@@ -1,5 +1,5 @@
/* AccessibleExtendedComponent.java -- aids in extended component access
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleComponent()</code> method
* should return an instance of this interface only when it is supported.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleComponent()
diff --git a/libjava/javax/accessibility/AccessibleExtendedTable.java b/libjava/javax/accessibility/AccessibleExtendedTable.java
index 627b0242825..f7c237db6b4 100644
--- a/libjava/javax/accessibility/AccessibleExtendedTable.java
+++ b/libjava/javax/accessibility/AccessibleExtendedTable.java
@@ -1,5 +1,5 @@
/* AccessibleExtendedTable.java -- aids in extended table access
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleTable()</code> method
* should return an instance of this interface only when it is supported.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleTable()
diff --git a/libjava/javax/accessibility/AccessibleHyperlink.java b/libjava/javax/accessibility/AccessibleHyperlink.java
index 0503f2a14ef..663f30af017 100644
--- a/libjava/javax/accessibility/AccessibleHyperlink.java
+++ b/libjava/javax/accessibility/AccessibleHyperlink.java
@@ -1,5 +1,5 @@
/* AccessibleHyperlink.java -- aids in accessibly navigating hypertext
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.accessibility;
/**
* This object encapsulates actions associated with navigating hypertext.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleText
diff --git a/libjava/javax/accessibility/AccessibleHypertext.java b/libjava/javax/accessibility/AccessibleHypertext.java
index ae0d150bd02..b10fb9af115 100644
--- a/libjava/javax/accessibility/AccessibleHypertext.java
+++ b/libjava/javax/accessibility/AccessibleHypertext.java
@@ -1,5 +1,5 @@
/* AccessibleHypertext.java -- aids in accessibly rendering hypertext
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleText()</code> method
* should return an instance of this interface only when it is supported.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleText
diff --git a/libjava/javax/accessibility/AccessibleIcon.java b/libjava/javax/accessibility/AccessibleIcon.java
index c13b14009b9..b1e5dde41f5 100644
--- a/libjava/javax/accessibility/AccessibleIcon.java
+++ b/libjava/javax/accessibility/AccessibleIcon.java
@@ -1,5 +1,5 @@
/* AccessibleIcon.java -- aids in accessibly rendering icons
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleIcon()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleIcon()
diff --git a/libjava/javax/accessibility/AccessibleKeyBinding.java b/libjava/javax/accessibility/AccessibleKeyBinding.java
index 777f8b734d6..16d7e36e594 100644
--- a/libjava/javax/accessibility/AccessibleKeyBinding.java
+++ b/libjava/javax/accessibility/AccessibleKeyBinding.java
@@ -1,5 +1,5 @@
/* AccessibleKeyBinding.java -- aids in using keyboard navigation
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package javax.accessibility;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleKeyBinding()
diff --git a/libjava/javax/accessibility/AccessibleRelation.java b/libjava/javax/accessibility/AccessibleRelation.java
index 68f1f646a59..d77a90a3d36 100644
--- a/libjava/javax/accessibility/AccessibleRelation.java
+++ b/libjava/javax/accessibility/AccessibleRelation.java
@@ -44,7 +44,7 @@ package javax.accessibility;
* supports localized strings. If the constants of this class are not
* adequate, new ones may be added in a similar matter.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleRelationSet.java b/libjava/javax/accessibility/AccessibleRelationSet.java
index 27dc58da3c3..767aa0647bb 100644
--- a/libjava/javax/accessibility/AccessibleRelationSet.java
+++ b/libjava/javax/accessibility/AccessibleRelationSet.java
@@ -43,7 +43,7 @@ import java.util.Vector;
* Describes all relations of an accessible object. For example, an object
* by labeled by one object and control another.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleRelation
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/javax/accessibility/AccessibleResourceBundle.java b/libjava/javax/accessibility/AccessibleResourceBundle.java
index 01c2bcfdf98..b34dd73b09f 100644
--- a/libjava/javax/accessibility/AccessibleResourceBundle.java
+++ b/libjava/javax/accessibility/AccessibleResourceBundle.java
@@ -1,5 +1,5 @@
/* AccessibleResourceBundle.java -- deprecated class
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.ListResourceBundle;
* This class is deprecated. It once was used for localizing accessibility
* strings, and was never meant for external use anyway.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleBundle.toDisplayString(String, Locale)
* @since 1.2
* @deprecated this class is no longer used
diff --git a/libjava/javax/accessibility/AccessibleRole.java b/libjava/javax/accessibility/AccessibleRole.java
index 86bfa6d382d..34f75602b14 100644
--- a/libjava/javax/accessibility/AccessibleRole.java
+++ b/libjava/javax/accessibility/AccessibleRole.java
@@ -43,7 +43,7 @@ package javax.accessibility;
* the constants of this class are not adequate, new ones may be added in a
* similar matter, while avoiding a public constructor.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleSelection.java b/libjava/javax/accessibility/AccessibleSelection.java
index d1e8c7c2a46..ad52ebc7365 100644
--- a/libjava/javax/accessibility/AccessibleSelection.java
+++ b/libjava/javax/accessibility/AccessibleSelection.java
@@ -1,5 +1,5 @@
/* AccessibleSelection.java -- aids in accessibly selecting components
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleSelection()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleSelection()
diff --git a/libjava/javax/accessibility/AccessibleState.java b/libjava/javax/accessibility/AccessibleState.java
index 24005ae9a6e..74e5d08a0f4 100644
--- a/libjava/javax/accessibility/AccessibleState.java
+++ b/libjava/javax/accessibility/AccessibleState.java
@@ -44,7 +44,7 @@ package javax.accessibility;
* localized strings. If the constants of this class are not adequate, new
* ones may be added in a similar matter, while avoiding a public constructor.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleStateSet.java b/libjava/javax/accessibility/AccessibleStateSet.java
index e1b112abf79..06218f3f95b 100644
--- a/libjava/javax/accessibility/AccessibleStateSet.java
+++ b/libjava/javax/accessibility/AccessibleStateSet.java
@@ -43,7 +43,7 @@ import java.util.Vector;
* Describes all elements of an accessible object's state. For example, an
* object may be enabled and have focus.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleState
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/javax/accessibility/AccessibleTable.java b/libjava/javax/accessibility/AccessibleTable.java
index 4fd58c5a237..c008f455ed1 100644
--- a/libjava/javax/accessibility/AccessibleTable.java
+++ b/libjava/javax/accessibility/AccessibleTable.java
@@ -1,5 +1,5 @@
/* AccessibleTable.java -- aids in accessibly manipulating tables
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package javax.accessibility;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleTable()
diff --git a/libjava/javax/accessibility/AccessibleTableModelChange.java b/libjava/javax/accessibility/AccessibleTableModelChange.java
index 9cff7bfa749..0001a612a33 100644
--- a/libjava/javax/accessibility/AccessibleTableModelChange.java
+++ b/libjava/javax/accessibility/AccessibleTableModelChange.java
@@ -1,5 +1,5 @@
/* AccessibleTableModelChange.java -- describes change to an accessible table
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package javax.accessibility;
* the implementations of this interface to update their state after a
* change to a table.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleTable()
diff --git a/libjava/javax/accessibility/AccessibleText.java b/libjava/javax/accessibility/AccessibleText.java
index 7c3d9a9ccd6..cffabe4545d 100644
--- a/libjava/javax/accessibility/AccessibleText.java
+++ b/libjava/javax/accessibility/AccessibleText.java
@@ -1,5 +1,5 @@
/* AccessibleText.java -- aids in accessibly manipulating text
- Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import javax.swing.text.AttributeSet;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleText()
diff --git a/libjava/javax/accessibility/AccessibleValue.java b/libjava/javax/accessibility/AccessibleValue.java
index 69da5c8a4eb..a58e9ed1d57 100644
--- a/libjava/javax/accessibility/AccessibleValue.java
+++ b/libjava/javax/accessibility/AccessibleValue.java
@@ -1,5 +1,5 @@
/* AccessibleValue.java -- aids in accessibly controlling values
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleValue()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleValue()
diff --git a/libjava/javax/crypto/SecretKey.java b/libjava/javax/crypto/SecretKey.java
index ce7057e7092..3865db4a6d1 100644
--- a/libjava/javax/crypto/SecretKey.java
+++ b/libjava/javax/crypto/SecretKey.java
@@ -61,4 +61,5 @@ import java.security.Key;
*/
public interface SecretKey extends Key
{
+ long serialVersionUID = -4795878709595146952L;
}
diff --git a/libjava/javax/imageio/IIOException.java b/libjava/javax/imageio/IIOException.java
index 5b743963a95..490c8c555c9 100644
--- a/libjava/javax/imageio/IIOException.java
+++ b/libjava/javax/imageio/IIOException.java
@@ -1,5 +1,5 @@
/* IIOException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ import java.io.IOException;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
*/
public class IIOException extends IOException
{
diff --git a/libjava/javax/imageio/ImageIO.java b/libjava/javax/imageio/ImageIO.java
index 3d74ae0745d..c93ff738dac 100644
--- a/libjava/javax/imageio/ImageIO.java
+++ b/libjava/javax/imageio/ImageIO.java
@@ -1,5 +1,5 @@
/* ImageIO.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,15 +38,15 @@ exception statement from your version. */
package javax.imageio;
-import java.awt.image.RenderedImage;
import java.awt.image.BufferedImage;
-import java.net.URL;
+import java.awt.image.RenderedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.InputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -55,8 +55,8 @@ import javax.imageio.spi.IIORegistry;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.spi.ImageWriterSpi;
import javax.imageio.spi.ServiceRegistry;
-import javax.imageio.stream.ImageOutputStream;
import javax.imageio.stream.ImageInputStream;
+import javax.imageio.stream.ImageOutputStream;
import javax.imageio.stream.MemoryCacheImageInputStream;
import javax.imageio.stream.MemoryCacheImageOutputStream;
@@ -80,7 +80,7 @@ public final class ImageIO
{
if (provider instanceof ImageReaderSpi)
{
- ImageWriterSpi spi = (ImageWriterSpi) provider;
+ ImageReaderSpi spi = (ImageReaderSpi) provider;
String[] formatNames = spi.getFormatNames();
for (int i = formatNames.length - 1; i >= 0; --i)
diff --git a/libjava/javax/imageio/spi/IIOServiceProvider.java b/libjava/javax/imageio/spi/IIOServiceProvider.java
index bd0a449331c..a0d8b79bc54 100644
--- a/libjava/javax/imageio/spi/IIOServiceProvider.java
+++ b/libjava/javax/imageio/spi/IIOServiceProvider.java
@@ -1,5 +1,5 @@
/* IIOServiceProvider.java -- General service provider for image I/O.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import java.util.Locale;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class IIOServiceProvider
implements RegisterableService
diff --git a/libjava/javax/imageio/spi/ImageInputStreamSpi.java b/libjava/javax/imageio/spi/ImageInputStreamSpi.java
index 6e33d1d392c..8679ed1f4d7 100644
--- a/libjava/javax/imageio/spi/ImageInputStreamSpi.java
+++ b/libjava/javax/imageio/spi/ImageInputStreamSpi.java
@@ -1,5 +1,5 @@
/* ImageInputStreamSpi.java -- Service provider for image input streams.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import javax.imageio.stream.ImageInputStream;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageInputStreamSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/ImageOutputStreamSpi.java b/libjava/javax/imageio/spi/ImageOutputStreamSpi.java
index 935aa7c6799..43781aa1112 100644
--- a/libjava/javax/imageio/spi/ImageOutputStreamSpi.java
+++ b/libjava/javax/imageio/spi/ImageOutputStreamSpi.java
@@ -1,5 +1,5 @@
/* ImageOutputStreamSpi.java -- Service provider for image output streams.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import javax.imageio.stream.ImageOutputStream;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageOutputStreamSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/ImageReaderWriterSpi.java b/libjava/javax/imageio/spi/ImageReaderWriterSpi.java
index 74dbb3859bb..9821adf88af 100644
--- a/libjava/javax/imageio/spi/ImageReaderWriterSpi.java
+++ b/libjava/javax/imageio/spi/ImageReaderWriterSpi.java
@@ -1,5 +1,5 @@
/* ImageReaderWriterSpi.java -- Superclass for image reader and writer spis.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.imageio.spi;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageReaderWriterSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/ImageTranscoderSpi.java b/libjava/javax/imageio/spi/ImageTranscoderSpi.java
index 85ca77d4639..d3a4d89b08e 100644
--- a/libjava/javax/imageio/spi/ImageTranscoderSpi.java
+++ b/libjava/javax/imageio/spi/ImageTranscoderSpi.java
@@ -1,5 +1,5 @@
/* ImageTranscoderSpi.java -- Factory for image metadata transcoders.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import javax.imageio.ImageTranscoder;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageTranscoderSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/RegisterableService.java b/libjava/javax/imageio/spi/RegisterableService.java
index 40cb05f81ac..2afee80ab30 100644
--- a/libjava/javax/imageio/spi/RegisterableService.java
+++ b/libjava/javax/imageio/spi/RegisterableService.java
@@ -1,5 +1,5 @@
/* RegisterableService.java -- An interface for service providers.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.imageio.spi;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public interface RegisterableService
{
diff --git a/libjava/javax/imageio/spi/ServiceRegistry.java b/libjava/javax/imageio/spi/ServiceRegistry.java
index 3d7134ed53f..a08ea69e8ee 100644
--- a/libjava/javax/imageio/spi/ServiceRegistry.java
+++ b/libjava/javax/imageio/spi/ServiceRegistry.java
@@ -1,5 +1,5 @@
/* ServiceRegistry.java -- A simple registry for service providers.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,8 +57,8 @@ import java.util.Set;
*
* @since 1.4
*
- * @author <a href="mailto:konqueror@gmx.de">Michael Koch</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class ServiceRegistry
{
@@ -941,8 +941,8 @@ public class ServiceRegistry
*
* @since 1.4
*
- * @author <a href="mailto:konqueror@gmx.de">Michael Koch</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public static interface Filter
{
diff --git a/libjava/javax/imageio/stream/IIOByteBuffer.java b/libjava/javax/imageio/stream/IIOByteBuffer.java
index c9e230f5f79..e303255b3d3 100644
--- a/libjava/javax/imageio/stream/IIOByteBuffer.java
+++ b/libjava/javax/imageio/stream/IIOByteBuffer.java
@@ -1,5 +1,5 @@
/* IIOByteBuffer.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package javax.imageio.stream;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class IIOByteBuffer
{
diff --git a/libjava/javax/imageio/stream/ImageInputStream.java b/libjava/javax/imageio/stream/ImageInputStream.java
index 39296a711c6..c75939e9418 100644
--- a/libjava/javax/imageio/stream/ImageInputStream.java
+++ b/libjava/javax/imageio/stream/ImageInputStream.java
@@ -1,5 +1,5 @@
/* ImageInputStream.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import java.nio.ByteOrder;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public interface ImageInputStream
extends DataInput
diff --git a/libjava/javax/imageio/stream/ImageOutputStream.java b/libjava/javax/imageio/stream/ImageOutputStream.java
index f53feab717c..b00b37ff9b7 100644
--- a/libjava/javax/imageio/stream/ImageOutputStream.java
+++ b/libjava/javax/imageio/stream/ImageOutputStream.java
@@ -1,5 +1,5 @@
/* ImageOutputStream.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.io.IOException;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public interface ImageOutputStream
extends ImageInputStream, DataOutput
diff --git a/libjava/javax/naming/Binding.java b/libjava/javax/naming/Binding.java
index 45f0d13ea5f..066d84ecd5e 100644
--- a/libjava/javax/naming/Binding.java
+++ b/libjava/javax/naming/Binding.java
@@ -1,5 +1,5 @@
/* Binding.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.naming;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class Binding extends NameClassPair
diff --git a/libjava/javax/naming/CannotProceedException.java b/libjava/javax/naming/CannotProceedException.java
index 0fe382b73aa..db457729c8d 100644
--- a/libjava/javax/naming/CannotProceedException.java
+++ b/libjava/javax/naming/CannotProceedException.java
@@ -1,5 +1,5 @@
/* CannotProceedException.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming;
import java.util.Hashtable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/CompositeName.java b/libjava/javax/naming/CompositeName.java
index e3559a911cf..cd77723ea1f 100644
--- a/libjava/javax/naming/CompositeName.java
+++ b/libjava/javax/naming/CompositeName.java
@@ -1,5 +1,5 @@
/* CompositeName.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.NoSuchElementException;
import java.util.Vector;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*
* FIXME: must write readObject and writeObject to conform to
diff --git a/libjava/javax/naming/CompoundName.java b/libjava/javax/naming/CompoundName.java
index 17f2aab7ea7..2299715877e 100644
--- a/libjava/javax/naming/CompoundName.java
+++ b/libjava/javax/naming/CompoundName.java
@@ -1,5 +1,5 @@
/* CompoundName.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.Properties;
import java.util.Vector;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*
* FIXME: must write readObject and writeObject to conform to
diff --git a/libjava/javax/naming/LinkException.java b/libjava/javax/naming/LinkException.java
index 2b0524d91eb..29179ff5226 100644
--- a/libjava/javax/naming/LinkException.java
+++ b/libjava/javax/naming/LinkException.java
@@ -1,5 +1,5 @@
/* LinkException.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.naming;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/LinkRef.java b/libjava/javax/naming/LinkRef.java
index 53597d38fc7..313574f1685 100644
--- a/libjava/javax/naming/LinkRef.java
+++ b/libjava/javax/naming/LinkRef.java
@@ -1,5 +1,5 @@
/* LinkRef.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.naming;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class LinkRef extends Reference
diff --git a/libjava/javax/naming/NameClassPair.java b/libjava/javax/naming/NameClassPair.java
index 2f115598641..bc90f224e25 100644
--- a/libjava/javax/naming/NameClassPair.java
+++ b/libjava/javax/naming/NameClassPair.java
@@ -1,5 +1,5 @@
/* NameClassPair.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming;
import java.io.Serializable;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class NameClassPair implements Serializable
diff --git a/libjava/javax/naming/Reference.java b/libjava/javax/naming/Reference.java
index 7309ebd293f..4b06f4ab910 100644
--- a/libjava/javax/naming/Reference.java
+++ b/libjava/javax/naming/Reference.java
@@ -1,5 +1,5 @@
/* Reference.java --
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.Enumeration;
import java.util.Vector;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class Reference implements Cloneable, Serializable
diff --git a/libjava/javax/naming/ReferralException.java b/libjava/javax/naming/ReferralException.java
index 63e83030cd5..430a38d4da5 100644
--- a/libjava/javax/naming/ReferralException.java
+++ b/libjava/javax/naming/ReferralException.java
@@ -1,5 +1,5 @@
/* ReferralException.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming;
import java.util.Hashtable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/directory/Attribute.java b/libjava/javax/naming/directory/Attribute.java
index f812f166284..e46a563b806 100644
--- a/libjava/javax/naming/directory/Attribute.java
+++ b/libjava/javax/naming/directory/Attribute.java
@@ -1,5 +1,5 @@
/* Attribute.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
public interface Attribute extends Cloneable, Serializable
diff --git a/libjava/javax/naming/directory/AttributeModificationException.java b/libjava/javax/naming/directory/AttributeModificationException.java
index 0012458007b..a1bffba76d3 100644
--- a/libjava/javax/naming/directory/AttributeModificationException.java
+++ b/libjava/javax/naming/directory/AttributeModificationException.java
@@ -1,5 +1,5 @@
/* AttributeModificationException.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/directory/Attributes.java b/libjava/javax/naming/directory/Attributes.java
index b0ee5cdc45e..34bb8c09940 100644
--- a/libjava/javax/naming/directory/Attributes.java
+++ b/libjava/javax/naming/directory/Attributes.java
@@ -1,5 +1,5 @@
/* Attributes.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.io.Serializable;
import javax.naming.NamingEnumeration;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/directory/BasicAttributes.java b/libjava/javax/naming/directory/BasicAttributes.java
index 9a9a80019a4..b20072424bc 100644
--- a/libjava/javax/naming/directory/BasicAttributes.java
+++ b/libjava/javax/naming/directory/BasicAttributes.java
@@ -1,5 +1,5 @@
/* BasicAttributes.java --
- Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -83,19 +83,27 @@ public class BasicAttributes implements Attributes
return ba;
}
+ /**
+ * Returns true if and only if the given Object is an instance of
+ * Attributes, the given attributes both do or don't ignore case for
+ * IDs and the collection of attributes is the same.
+ */
public boolean equals (Object obj)
{
- if (! (obj instanceof BasicAttributes))
+ if (! (obj instanceof Attributes))
return false;
- BasicAttributes b = (BasicAttributes) obj;
- if (ignoreCase != b.ignoreCase
- || attributes.size () != b.attributes.size ())
+
+ Attributes bs = (Attributes) obj;
+ if (ignoreCase != bs.isCaseIgnored()
+ || attributes.size () != bs.size ())
return false;
- // Does order matter?
- for (int i = 0; i < attributes.size (); ++i)
+ NamingEnumeration bas = bs.getAll();
+ while (bas.hasMoreElements())
{
- if (! attributes.get (i).equals (b.attributes.get (i)))
+ Attribute a = (Attribute) bas.nextElement();
+ Attribute b = get(a.getID ());
+ if (! a.equals(b))
return false;
}
@@ -191,7 +199,7 @@ public class BasicAttributes implements Attributes
// Used when enumerating.
private class BasicAttributesEnumeration implements NamingEnumeration
{
- int where = -1;
+ int where = 0;
boolean id;
public BasicAttributesEnumeration (boolean id)
@@ -220,10 +228,10 @@ public class BasicAttributes implements Attributes
public Object nextElement () throws NoSuchElementException
{
- if (where + 1 >= attributes.size ())
+ if (where >= attributes.size ())
throw new NoSuchElementException ("no more elements");
- ++where;
Attribute at = (Attribute) attributes.get (where);
+ ++where;
return id ? (Object) at.getID () : (Object) at;
}
}
diff --git a/libjava/javax/naming/directory/DirContext.java b/libjava/javax/naming/directory/DirContext.java
index c7c821683e5..a42908b8011 100644
--- a/libjava/javax/naming/directory/DirContext.java
+++ b/libjava/javax/naming/directory/DirContext.java
@@ -1,5 +1,5 @@
/* DirContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 13, 2001
*/
diff --git a/libjava/javax/naming/directory/ModificationItem.java b/libjava/javax/naming/directory/ModificationItem.java
index 6b9127df8f0..e5530aa1147 100644
--- a/libjava/javax/naming/directory/ModificationItem.java
+++ b/libjava/javax/naming/directory/ModificationItem.java
@@ -1,5 +1,5 @@
/* ModificationItem.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 13, 2001
*/
diff --git a/libjava/javax/naming/directory/SearchControls.java b/libjava/javax/naming/directory/SearchControls.java
index 0bccb357f94..5e630807a63 100644
--- a/libjava/javax/naming/directory/SearchControls.java
+++ b/libjava/javax/naming/directory/SearchControls.java
@@ -1,5 +1,5 @@
/* SearchControls.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
diff --git a/libjava/javax/naming/directory/SearchResult.java b/libjava/javax/naming/directory/SearchResult.java
index eb4c182e21a..793a28d47d6 100644
--- a/libjava/javax/naming/directory/SearchResult.java
+++ b/libjava/javax/naming/directory/SearchResult.java
@@ -1,5 +1,5 @@
/* SearchResult.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import javax.naming.Binding;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 13, 2001
*/
diff --git a/libjava/javax/naming/event/EventContext.java b/libjava/javax/naming/event/EventContext.java
index 81626e1c853..365d73a0624 100644
--- a/libjava/javax/naming/event/EventContext.java
+++ b/libjava/javax/naming/event/EventContext.java
@@ -1,5 +1,5 @@
/* EventContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import javax.naming.Name;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/event/EventDirContext.java b/libjava/javax/naming/event/EventDirContext.java
index 5d89e6b8bb2..288ecb171ac 100644
--- a/libjava/javax/naming/event/EventDirContext.java
+++ b/libjava/javax/naming/event/EventDirContext.java
@@ -1,5 +1,5 @@
/* EventDirContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import javax.naming.directory.SearchControls;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
public interface EventDirContext extends EventContext, DirContext
diff --git a/libjava/javax/naming/event/NamespaceChangeListener.java b/libjava/javax/naming/event/NamespaceChangeListener.java
index f9163b8fa59..7952d7193db 100644
--- a/libjava/javax/naming/event/NamespaceChangeListener.java
+++ b/libjava/javax/naming/event/NamespaceChangeListener.java
@@ -1,5 +1,5 @@
/* NamespaceChangeListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.naming.event;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/event/NamingExceptionEvent.java b/libjava/javax/naming/event/NamingExceptionEvent.java
index 17b71d92963..8fb4255a689 100644
--- a/libjava/javax/naming/event/NamingExceptionEvent.java
+++ b/libjava/javax/naming/event/NamingExceptionEvent.java
@@ -1,5 +1,5 @@
/* NamingExceptionEvent.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.EventObject;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
diff --git a/libjava/javax/naming/event/NamingListener.java b/libjava/javax/naming/event/NamingListener.java
index d75dd5b9316..bc820dcb094 100644
--- a/libjava/javax/naming/event/NamingListener.java
+++ b/libjava/javax/naming/event/NamingListener.java
@@ -1,5 +1,5 @@
/* NamingListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.event;
import java.util.EventListener;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/event/ObjectChangeListener.java b/libjava/javax/naming/event/ObjectChangeListener.java
index cda1052a70a..0a2b19d1a03 100644
--- a/libjava/javax/naming/event/ObjectChangeListener.java
+++ b/libjava/javax/naming/event/ObjectChangeListener.java
@@ -1,5 +1,5 @@
/* ObjectChangeListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.naming.event;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/Control.java b/libjava/javax/naming/ldap/Control.java
index 20ccafebe5e..03de2159ba9 100644
--- a/libjava/javax/naming/ldap/Control.java
+++ b/libjava/javax/naming/ldap/Control.java
@@ -1,5 +1,5 @@
/* Control.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/ExtendedResponse.java b/libjava/javax/naming/ldap/ExtendedResponse.java
index 4815ad9ab22..66251284812 100644
--- a/libjava/javax/naming/ldap/ExtendedResponse.java
+++ b/libjava/javax/naming/ldap/ExtendedResponse.java
@@ -1,5 +1,5 @@
/* ExtendedResponse.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/HasControls.java b/libjava/javax/naming/ldap/HasControls.java
index 079afa3a95f..6153e5451c6 100644
--- a/libjava/javax/naming/ldap/HasControls.java
+++ b/libjava/javax/naming/ldap/HasControls.java
@@ -1,5 +1,5 @@
/* HasControls.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/LdapContext.java b/libjava/javax/naming/ldap/LdapContext.java
index db7bf254a71..7f554a61845 100644
--- a/libjava/javax/naming/ldap/LdapContext.java
+++ b/libjava/javax/naming/ldap/LdapContext.java
@@ -1,5 +1,5 @@
/* LdapContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.naming.NamingException;
import javax.naming.directory.DirContext;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/UnsolicitedNotification.java b/libjava/javax/naming/ldap/UnsolicitedNotification.java
index 6c37eb807b5..5a97227b1e9 100644
--- a/libjava/javax/naming/ldap/UnsolicitedNotification.java
+++ b/libjava/javax/naming/ldap/UnsolicitedNotification.java
@@ -1,5 +1,5 @@
/* UnsolicitedNotification.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java b/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
index 4d5161c3093..bade7e1c39c 100644
--- a/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
+++ b/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
@@ -1,5 +1,5 @@
/* UnsolicitedNotificationEvent.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import java.util.EventObject;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
public class UnsolicitedNotificationEvent extends EventObject
diff --git a/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java b/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java
index d540d9675db..e5b15c566c6 100644
--- a/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java
+++ b/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java
@@ -1,5 +1,5 @@
/* UnsolicitedNotificationListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import javax.naming.event.NamingListener;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/spi/DirectoryManager.java b/libjava/javax/naming/spi/DirectoryManager.java
index c43a28d2dfe..a98b05df803 100644
--- a/libjava/javax/naming/spi/DirectoryManager.java
+++ b/libjava/javax/naming/spi/DirectoryManager.java
@@ -1,5 +1,5 @@
/* DirectoryManager.java --
- Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,7 +54,7 @@ import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date June 25, 2001
*/
public class DirectoryManager extends NamingManager
diff --git a/libjava/javax/naming/spi/ResolveResult.java b/libjava/javax/naming/spi/ResolveResult.java
index 25dd8494e70..d9c637629a6 100644
--- a/libjava/javax/naming/spi/ResolveResult.java
+++ b/libjava/javax/naming/spi/ResolveResult.java
@@ -1,5 +1,5 @@
/* ResolveResult.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import javax.naming.InvalidNameException;
import javax.naming.Name;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
diff --git a/libjava/javax/naming/spi/Resolver.java b/libjava/javax/naming/spi/Resolver.java
index 68ec5d69233..0f7f3868e55 100644
--- a/libjava/javax/naming/spi/Resolver.java
+++ b/libjava/javax/naming/spi/Resolver.java
@@ -1,5 +1,5 @@
/* Resolver.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.naming.Name;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/print/attribute/standard/Chromaticity.java b/libjava/javax/print/attribute/standard/Chromaticity.java
new file mode 100644
index 00000000000..306cc38c8a1
--- /dev/null
+++ b/libjava/javax/print/attribute/standard/Chromaticity.java
@@ -0,0 +1,86 @@
+/* Chromaticity.java --
+ Copyright (C) 2005 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 javax.print.attribute.standard;
+
+import javax.print.attribute.DocAttribute;
+import javax.print.attribute.EnumSyntax;
+import javax.print.attribute.PrintJobAttribute;
+import javax.print.attribute.PrintRequestAttribute;
+
+/**
+ * @author Michael Koch (konqueror@gmx.de)
+ */
+public final class Chromaticity extends EnumSyntax
+ implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
+{
+ private static final long serialVersionUID = 4660543931355214012L;
+
+ public static final Chromaticity MONOCHROME = new Chromaticity(0);
+ public static final Chromaticity COLOR = new Chromaticity(1);
+
+ /**
+ * Creates a <code>Chromaticity</code> object.
+ *
+ * @param value the enum value
+ */
+ protected Chromaticity(int value)
+ {
+ super(value);
+ }
+
+ /**
+ * Returns category of this class.
+ *
+ * @return the class <code>Sides</code> itself
+ */
+ public Class getCategory()
+ {
+ return Chromaticity.class;
+ }
+
+ /**
+ * Returns the name of this attribute.
+ *
+ * @return the name
+ */
+ public String getName()
+ {
+ return "chromaticity";
+ }
+}
diff --git a/libjava/javax/print/attribute/standard/Destination.java b/libjava/javax/print/attribute/standard/Destination.java
new file mode 100644
index 00000000000..6d723ccb916
--- /dev/null
+++ b/libjava/javax/print/attribute/standard/Destination.java
@@ -0,0 +1,82 @@
+/* Destination.java --
+ Copyright (C) 2004, 2005 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 javax.print.attribute.standard;
+
+import java.net.URI;
+
+import javax.print.attribute.PrintJobAttribute;
+import javax.print.attribute.PrintRequestAttribute;
+import javax.print.attribute.URISyntax;
+
+/**
+ * @author Michael Koch (konqueror@gmx.de)
+ */
+public final class Destination extends URISyntax
+ implements PrintJobAttribute, PrintRequestAttribute
+{
+ private static final long serialVersionUID = 6776739171700415321L;
+
+ /**
+ * Constructs a <code>Destination</code> object.
+ */
+ public Destination(URI uri)
+ {
+ super(uri);
+ }
+
+ /**
+ * Returns category of this class.
+ *
+ * @return the class <code>Destination</code> itself
+ */
+ public Class getCategory()
+ {
+ return Destination.class;
+ }
+
+ /**
+ * Returns name of this class.
+ *
+ * @return the string "printer-uri"
+ */
+ public String getName()
+ {
+ return "destination";
+ }
+}
diff --git a/libjava/javax/print/attribute/standard/MediaPrintableArea.java b/libjava/javax/print/attribute/standard/MediaPrintableArea.java
new file mode 100644
index 00000000000..cc1a07e1322
--- /dev/null
+++ b/libjava/javax/print/attribute/standard/MediaPrintableArea.java
@@ -0,0 +1,146 @@
+/* MediaPrintableArea.java --
+ Copyright (C) 2005 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 javax.print.attribute.standard;
+
+import javax.print.attribute.DocAttribute;
+import javax.print.attribute.PrintJobAttribute;
+import javax.print.attribute.PrintRequestAttribute;
+
+/**
+ * @author Michael Koch (konqueror@gmx.de)
+ */
+public final class MediaPrintableArea
+ implements DocAttribute, PrintJobAttribute, PrintRequestAttribute
+{
+ private static final long serialVersionUID = -1597171464050795793L;
+
+ public static final int INCH = 25400;
+ public static final int MM = 1000;
+
+ private float x;
+ private float y;
+ private float width;
+ private float height;
+
+ /**
+ * Creates a new <code>MediaPrintableArea</code> object.
+ *
+ * @throws IllegalArgumentException if x i&lt; 0 or y i&lt; 0 or w i&lt;= 0
+ * or h i&lt;= 0 or units i&lt; 1
+ */
+ public MediaPrintableArea(float x, float y, float w, float h, int units)
+ {
+ if (x < 0.0f || y < 0.0f || w <= 0.0f || h <= 0.0f)
+ throw new IllegalArgumentException();
+
+ this.x = x;
+ this.y = y;
+ this.width = w;
+ this.height = h;
+ }
+
+ /**
+ * Creates a new <code>MediaPrintableArea</code> object.
+ *
+ * @throws IllegalArgumentException if x i&lt; 0 or y i&lt; 0 or w i&lt;= 0
+ * or h i&lt;= 0 or units i&lt; 1
+ */
+ public MediaPrintableArea(int x, int y, int w, int h, int units)
+ {
+ if (x < 0 || y < 0 || w <= 0 || h <= 0)
+ throw new IllegalArgumentException();
+
+ this.x = x;
+ this.y = y;
+ this.width = w;
+ this.height = h;
+ }
+
+ /**
+ * Returns category of this class.
+ *
+ * @return the class <code>MediaPrintableArea</code> itself
+ */
+ public Class getCategory()
+ {
+ return MediaPrintableArea.class;
+ }
+
+ /**
+ * Returns name of this class.
+ *
+ * @return the string "media-printable-area"
+ */
+ public String getName()
+ {
+ return "media-printable-area";
+ }
+
+ public float getHeight(int units)
+ {
+ if (units < 1)
+ throw new IllegalArgumentException();
+
+ return height * units;
+ }
+
+ public float getWidth(int units)
+ {
+ if (units < 1)
+ throw new IllegalArgumentException();
+
+ return width * units;
+ }
+
+ public float getX(int units)
+ {
+ if (units < 1)
+ throw new IllegalArgumentException();
+
+ return x * units;
+ }
+
+ public float getY(int units)
+ {
+ if (units < 1)
+ throw new IllegalArgumentException();
+
+ return y * units;
+ }
+}
diff --git a/libjava/javax/print/attribute/standard/MediaSize.java b/libjava/javax/print/attribute/standard/MediaSize.java
new file mode 100644
index 00000000000..35a6d3e9414
--- /dev/null
+++ b/libjava/javax/print/attribute/standard/MediaSize.java
@@ -0,0 +1,114 @@
+/* MediaSize.java --
+ Copyright (C) 2005 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 javax.print.attribute.standard;
+
+import java.util.ArrayList;
+
+import javax.print.attribute.Attribute;
+import javax.print.attribute.Size2DSyntax;
+
+public class MediaSize extends Size2DSyntax
+ implements Attribute
+{
+ private static final long serialVersionUID = -1967958664615414771L;
+
+ private static ArrayList mediaCache = new ArrayList();
+
+ private MediaSizeName media;
+
+ public MediaSize(float x, float y, int units)
+ {
+ super(x, y, units);
+ }
+
+ public MediaSize(float x, float y, int units, MediaSizeName media)
+ {
+ super(x, y, units);
+ this.media = media;
+ }
+
+ public MediaSize(int x, int y, int units)
+ {
+ super(x, y, units);
+ }
+
+ public MediaSize(int x, int y, int units, MediaSizeName media)
+ {
+ super(x, y, units);
+ this.media = media;
+ }
+
+ /**
+ * Returns category of this class.
+ *
+ * @return the class <code>MediaSize</code> itself
+ */
+ public Class getCategory()
+ {
+ return MediaSize.class;
+ }
+
+ public static MediaSize getMediaSizeForName(MediaSizeName media)
+ {
+ for (int i = 0; i < mediaCache.size(); i++)
+ {
+ MediaSize size = (MediaSize) mediaCache.get(i);
+
+ if (size.getMediaSizeName().equals(media))
+ return size;
+ }
+
+ return null;
+ }
+
+ public MediaSizeName getMediaSizeName()
+ {
+ return media;
+ }
+
+ /**
+ * Returns name of this class.
+ *
+ * @return the string "media-size"
+ */
+ public String getName()
+ {
+ return "media-size";
+ }
+}
diff --git a/libjava/javax/security/auth/Subject.java b/libjava/javax/security/auth/Subject.java
index 5391acec825..37baecc8aed 100644
--- a/libjava/javax/security/auth/Subject.java
+++ b/libjava/javax/security/auth/Subject.java
@@ -235,7 +235,7 @@ public final class Subject implements Serializable
*/
public static Object doAsPrivileged (final Subject subject,
final PrivilegedExceptionAction action,
- final AccessControlContext acc)
+ AccessControlContext acc)
throws PrivilegedActionException
{
final SecurityManager sm = System.getSecurityManager();
@@ -243,6 +243,8 @@ public final class Subject implements Serializable
{
sm.checkPermission (new AuthPermission ("doAsPrivileged"));
}
+ if (acc == null)
+ acc = new AccessControlContext (new java.security.ProtectionDomain[0]);
AccessControlContext context =
new AccessControlContext (acc, new SubjectDomainCombiner (subject));
return AccessController.doPrivileged (action, context);
diff --git a/libjava/javax/security/auth/callback/Callback.java b/libjava/javax/security/auth/callback/Callback.java
index 655ad3348ba..71932cb0f13 100644
--- a/libjava/javax/security/auth/callback/Callback.java
+++ b/libjava/javax/security/auth/callback/Callback.java
@@ -59,7 +59,6 @@ package javax.security.auth.callback;
* @see PasswordCallback
* @see TextInputCallback
* @see TextOutputCallback
- * @version $Revision: 1.1 $
*/
public interface Callback {
}
diff --git a/libjava/javax/security/auth/callback/CallbackHandler.java b/libjava/javax/security/auth/callback/CallbackHandler.java
index 289999c5ee1..ed1195a89e3 100644
--- a/libjava/javax/security/auth/callback/CallbackHandler.java
+++ b/libjava/javax/security/auth/callback/CallbackHandler.java
@@ -80,7 +80,6 @@ import java.io.IOException;
* <p>All default handler implementations must provide a public zero-argument
* constructor.</p>
*
- * @version $Revision: 1.1 $
*/
public interface CallbackHandler
{
diff --git a/libjava/javax/security/auth/callback/ChoiceCallback.java b/libjava/javax/security/auth/callback/ChoiceCallback.java
index 44b5ffcba5e..8fd038edf70 100644
--- a/libjava/javax/security/auth/callback/ChoiceCallback.java
+++ b/libjava/javax/security/auth/callback/ChoiceCallback.java
@@ -47,7 +47,6 @@ import java.io.Serializable;
* selected choice(s).
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class ChoiceCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/ConfirmationCallback.java b/libjava/javax/security/auth/callback/ConfirmationCallback.java
index 8abd393f52c..aa912189fb2 100644
--- a/libjava/javax/security/auth/callback/ConfirmationCallback.java
+++ b/libjava/javax/security/auth/callback/ConfirmationCallback.java
@@ -47,7 +47,6 @@ import java.io.Serializable;
* similar confirmations.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class ConfirmationCallback implements Callback, Serializable
{
@@ -254,7 +253,7 @@ public class ConfirmationCallback implements Callback, Serializable
* NO, CANCEL or OK).
* @throws IllegalArgumentException if <code>prompt</code> is <code>null</code>,
* if <code>prompt</code> has a length of <code>0</code>, if
- * <code>messageType</code> is not either <ode>INFORMATION</code>,
+ * <code>messageType</code> is not either <code>INFORMATION</code>,
* <code>WARNING</code>, or <code>ERROR</code>, if <code>optionType</code> is
* not either <code>YES_NO_OPTION</code>, <code>YES_NO_CANCEL_OPTION</code>,
* or <code>OK_CANCEL_OPTION</code>, or if <code>defaultOption</code> does
@@ -289,7 +288,7 @@ public class ConfirmationCallback implements Callback, Serializable
* <code>options</code> array.
* @throws IllegalArgumentException if <code>prompt</code> is <code>null</code>,
* if <code>prompt</code> has a length of <code>0</code>, if
- * <code>messageType</code> is not either <ode>INFORMATION</code>,
+ * <code>messageType</code> is not either <code>INFORMATION</code>,
* <code>WARNING</code>, or <code>ERROR</code>, if <code>options</code> is
* <code>null</code>, if <code>options</code> has a length of <code>0</code>,
* if any element from <code>options</code> is <code>null</code>, if any
diff --git a/libjava/javax/security/auth/callback/LanguageCallback.java b/libjava/javax/security/auth/callback/LanguageCallback.java
index 71910632b48..b53149adcb3 100644
--- a/libjava/javax/security/auth/callback/LanguageCallback.java
+++ b/libjava/javax/security/auth/callback/LanguageCallback.java
@@ -47,7 +47,6 @@ import java.util.Locale;
* the {@link Locale} used for localizing text.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class LanguageCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/NameCallback.java b/libjava/javax/security/auth/callback/NameCallback.java
index c98edfdbea9..094349e19a0 100644
--- a/libjava/javax/security/auth/callback/NameCallback.java
+++ b/libjava/javax/security/auth/callback/NameCallback.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
* name information.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class NameCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/PasswordCallback.java b/libjava/javax/security/auth/callback/PasswordCallback.java
index 5620bc5cd79..7e5f9cb7cab 100644
--- a/libjava/javax/security/auth/callback/PasswordCallback.java
+++ b/libjava/javax/security/auth/callback/PasswordCallback.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
* password information.
*
* @see CallbackHandler,
- * @version $Revision: 1.1 $
*/
public class PasswordCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/TextInputCallback.java b/libjava/javax/security/auth/callback/TextInputCallback.java
index 55c1aa2534d..01b544cb24b 100644
--- a/libjava/javax/security/auth/callback/TextInputCallback.java
+++ b/libjava/javax/security/auth/callback/TextInputCallback.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
* generic text information.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class TextInputCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/TextOutputCallback.java b/libjava/javax/security/auth/callback/TextOutputCallback.java
index 380a5ef60f0..47202bcaa72 100644
--- a/libjava/javax/security/auth/callback/TextOutputCallback.java
+++ b/libjava/javax/security/auth/callback/TextOutputCallback.java
@@ -47,7 +47,6 @@ import java.io.Serializable;
* error messages.</p>
*
* @see CallbackHandler
- * @version $Revision: 1.2 $
*/
public class TextOutputCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/UnsupportedCallbackException.java b/libjava/javax/security/auth/callback/UnsupportedCallbackException.java
index 215942c40b5..167a5e23671 100644
--- a/libjava/javax/security/auth/callback/UnsupportedCallbackException.java
+++ b/libjava/javax/security/auth/callback/UnsupportedCallbackException.java
@@ -42,7 +42,6 @@ package javax.security.auth.callback;
* Signals that a {@link CallbackHandler} does not recognize a particular
* {@link Callback}.
*
- * @version $Revision: 1.1 $
*/
public class UnsupportedCallbackException extends Exception
{
diff --git a/libjava/javax/security/sasl/Sasl.java b/libjava/javax/security/sasl/Sasl.java
index 334aac602ba..257198b0e45 100644
--- a/libjava/javax/security/sasl/Sasl.java
+++ b/libjava/javax/security/sasl/Sasl.java
@@ -1,5 +1,5 @@
/* Sasl.java --
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -221,7 +221,7 @@ public class Sasl
* breaking into future sessions. The property contains <code>"true"</code>
* if mechanisms that implement forward secrecy between sessions are
* required; <code>"false"</code> if such mechanisms are not required. The
- * default is <code>"false"</code>.</p>
+ * default is <code>"false"</code>.
*
* <p>The value of this constant is <code>"javax.security.sasl.policy.forward"</code>.
* </p>
@@ -233,7 +233,6 @@ public class Sasl
* credentials are required. The property contains <code>"true"</code> if
* mechanisms that pass client credentials are required; <code>"false"</code>
* if such mechanisms are not required. The default is <code>"false"</code>.
- * </p>
*
* <p>The value of this constant is <code>"javax.security.sasl.policy.credentials"</code>.
* </p>
@@ -280,7 +279,7 @@ public class Sasl
// -------------------------------------------------------------------------
/**
- * <p>Creates a {@link SaslClient} for the specified mechanism.</p>
+ * Creates a {@link SaslClient} for the specified mechanism.
*
* <p>This method uses the JCA Security Provider Framework, described in the
* "Java Cryptography Architecture API Specification &amp; Reference", for
@@ -490,7 +489,7 @@ public class Sasl
}
/**
- * <p>Creates a {@link SaslServer} for the specified mechanism.</p>
+ * Creates a {@link SaslServer} for the specified mechanism.
*
* <p>This method uses the JCA Security Provider Framework, described in the
* "Java Cryptography Architecture API Specification &amp; Reference", for
@@ -521,7 +520,7 @@ public class Sasl
*
* <pre>
* SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory
- * </pre></p>
+ * </pre>
*
* <p>See the "Java Cryptography Architecture API Specification &amp;
* Reference" for information about how to install and configure security
diff --git a/libjava/javax/security/sasl/SaslServerFactory.java b/libjava/javax/security/sasl/SaslServerFactory.java
index 1299634d8b5..d2f279190fa 100644
--- a/libjava/javax/security/sasl/SaslServerFactory.java
+++ b/libjava/javax/security/sasl/SaslServerFactory.java
@@ -48,8 +48,8 @@ import javax.security.auth.callback.CallbackHandler;
* simultaneous requests. It must also have a public constructor that accepts
* no arguments.</p>
*
- * This interface is not normally accessed directly by a server, which will use
- * the {@link Sasl} static methods to create a {@link SaslServer} instance
+ * <p>This interface is not normally accessed directly by a server, which will
+ * use the {@link Sasl} static methods to create a {@link SaslServer} instance
* instead. However, a particular environment may provide and install a new or
* different <code>SaslServerFactory</code>.</p>
*
diff --git a/libjava/javax/swing/AbstractAction.java b/libjava/javax/swing/AbstractAction.java
index 4f0af1c9dd4..c0ddf44ffa5 100644
--- a/libjava/javax/swing/AbstractAction.java
+++ b/libjava/javax/swing/AbstractAction.java
@@ -1,5 +1,5 @@
/* AbstractAction.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,15 +55,13 @@ import javax.swing.event.SwingPropertyChangeSupport;
public abstract class AbstractAction
implements Action, Cloneable, Serializable
{
- static final long serialVersionUID = -6803159439231523484L;
+ private static final long serialVersionUID = -6803159439231523484L;
/**
* enabled
*/
protected boolean enabled = true;
- public static final String ENABLED_PROPERTY = "enabled";
-
/**
* changeSupport
*/
@@ -193,7 +191,7 @@ public abstract class AbstractAction
if (enabled != this.enabled)
{
this.enabled = enabled;
- firePropertyChange(ENABLED_PROPERTY, !this.enabled, this.enabled);
+ firePropertyChange("enabled", !this.enabled, this.enabled);
}
}
diff --git a/libjava/javax/swing/AbstractButton.java b/libjava/javax/swing/AbstractButton.java
index adb3af40823..1232a4ab4fd 100644
--- a/libjava/javax/swing/AbstractButton.java
+++ b/libjava/javax/swing/AbstractButton.java
@@ -661,7 +661,7 @@ public abstract class AbstractButton extends JComponent
*
* @param e The event signifying that the button's model changed state
*/
- public void fireItemStateChanged(ItemEvent e)
+ protected void fireItemStateChanged(ItemEvent e)
{
e.setSource(this);
ItemListener[] listeners = getItemListeners();
@@ -676,7 +676,7 @@ public abstract class AbstractButton extends JComponent
*
* @param e The event signifying that the button's model was clicked
*/
- public void fireActionPerformed(ActionEvent e)
+ protected void fireActionPerformed(ActionEvent e)
{
e.setSource(this);
ActionListener[] listeners = getActionListeners();
@@ -689,7 +689,7 @@ public abstract class AbstractButton extends JComponent
* Calls {@link ChangeEvent.stateChanged} on each {@link ChangeListener}
* in the button's listener list.
*/
- public void fireStateChanged()
+ protected void fireStateChanged()
{
ChangeListener[] listeners = getChangeListeners();
@@ -740,10 +740,10 @@ public abstract class AbstractButton extends JComponent
if (old != mne)
{
- getModel().setMnemonic(mne);
+ getModel().setMnemonic(mne);
if (text != null && ! text.equals(""))
- {
+ {
// Since lower case char = upper case char for
// mnemonic, we will convert both text and mnemonic
// to upper case before checking if mnemonic character occurs
@@ -753,9 +753,9 @@ public abstract class AbstractButton extends JComponent
setDisplayedMnemonicIndex(upperCaseText.indexOf(upperCaseMne));
}
- firePropertyChange(MNEMONIC_CHANGED_PROPERTY, old, mne);
- revalidate();
- repaint();
+ firePropertyChange(MNEMONIC_CHANGED_PROPERTY, old, mne);
+ revalidate();
+ repaint();
}
}
@@ -806,7 +806,7 @@ public abstract class AbstractButton extends JComponent
public void setRolloverEnabled(boolean r)
{
if (rollOverEnabled != r)
- {
+ {
rollOverEnabled = r;
firePropertyChange(ROLLOVER_ENABLED_CHANGED_PROPERTY, !r, r);
revalidate();
@@ -1450,7 +1450,7 @@ public abstract class AbstractButton extends JComponent
// Set actionCommand to button's text by default if it is not specified
if (actionCommand != null)
- setActionCommand((String)(a.getValue(Action.ACTION_COMMAND_KEY)));
+ setActionCommand((String)(a.getValue(Action.ACTION_COMMAND_KEY)));
else
setActionCommand(getText());
}
@@ -1509,7 +1509,7 @@ public abstract class AbstractButton extends JComponent
public void propertyChange(PropertyChangeEvent e)
{
Action act = (Action) (e.getSource());
- if (e.getPropertyName().equals(AbstractAction.ENABLED_PROPERTY))
+ if (e.getPropertyName().equals("enabled"))
setEnabled(act.isEnabled());
else if (e.getPropertyName().equals(Action.NAME))
setText((String)(act.getValue(Action.NAME)));
@@ -1847,7 +1847,39 @@ public abstract class AbstractButton extends JComponent
*/
protected String paramString()
{
- return "AbstractButton";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",defaultIcon=");
+ if (getIcon() != null)
+ sb.append(getIcon());
+ sb.append(",disabledIcon=");
+ if (getDisabledIcon() != null)
+ sb.append(getDisabledIcon());
+ sb.append(",disabledSelectedIcon=");
+ if (getDisabledSelectedIcon() != null)
+ sb.append(getDisabledSelectedIcon());
+ sb.append(",margin=");
+ if (getMargin() != null)
+ sb.append(getMargin());
+ sb.append(",paintBorder=").append(isBorderPainted());
+ sb.append(",paintFocus=").append(isFocusPainted());
+ sb.append(",pressedIcon=");
+ if (getPressedIcon() != null)
+ sb.append(getPressedIcon());
+ sb.append(",rolloverEnabled=").append(isRolloverEnabled());
+ sb.append(",rolloverIcon=");
+ if (getRolloverIcon() != null)
+ sb.append(getRolloverIcon());
+ sb.append(",rolloverSelected=");
+ if (getRolloverSelectedIcon() != null)
+ sb.append(getRolloverSelectedIcon());
+ sb.append(",selectedIcon=");
+ if (getSelectedIcon() != null)
+ sb.append(getSelectedIcon());
+ sb.append(",text=");
+ if (getText() != null)
+ sb.append(getText());
+ return sb.toString();
}
/**
diff --git a/libjava/javax/swing/AbstractCellEditor.java b/libjava/javax/swing/AbstractCellEditor.java
index 196e2e2696c..7cc57516a1c 100644
--- a/libjava/javax/swing/AbstractCellEditor.java
+++ b/libjava/javax/swing/AbstractCellEditor.java
@@ -53,7 +53,7 @@ import javax.swing.event.EventListenerList;
public abstract class AbstractCellEditor
implements CellEditor, Serializable
{
- static final long serialVersionUID = -1048006551406220959L;
+ private static final long serialVersionUID = -1048006551406220959L;
/**
* listenerList
diff --git a/libjava/javax/swing/AbstractListModel.java b/libjava/javax/swing/AbstractListModel.java
index 9fe1bcbee2f..a380b2a2eda 100644
--- a/libjava/javax/swing/AbstractListModel.java
+++ b/libjava/javax/swing/AbstractListModel.java
@@ -54,7 +54,7 @@ import javax.swing.event.ListDataListener;
*/
public abstract class AbstractListModel implements ListModel, Serializable
{
- static final long serialVersionUID = -3285184064379168730L;
+ private static final long serialVersionUID = -3285184064379168730L;
/** List of ListDataListeners called for each change to the list. */
protected EventListenerList listenerList;
@@ -100,25 +100,12 @@ public abstract class AbstractListModel implements ListModel, Serializable
protected void fireContentsChanged(Object source, int startIndex,
int endIndex)
{
- // Variables
- ListDataEvent event;
- ListDataListener[] listeners;
- ListDataListener listener;
- int index;
-
- // Create Event
- event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED,
- startIndex, endIndex);
-
- // Get Listeners
- listeners = getListDataListeners();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = (ListDataListener) listeners[index];
- listener.contentsChanged(event);
- }
+ ListDataEvent event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED,
+ startIndex, endIndex);
+ ListDataListener[] listeners = getListDataListeners();
+
+ for (int index = 0; index < listeners.length; index++)
+ listeners[index].contentsChanged(event);
}
/**
@@ -134,25 +121,13 @@ public abstract class AbstractListModel implements ListModel, Serializable
*/
protected void fireIntervalAdded(Object source, int startIndex, int endIndex)
{
- // Variables
- ListDataEvent event;
- ListDataListener[] listeners;
- ListDataListener listener;
- int index;
-
- // Create Event
- event = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED,
- startIndex, endIndex);
-
- // Get Listeners
- listeners = getListDataListeners();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = listeners[index];
- listener.intervalAdded(event);
- }
+ ListDataEvent event =
+ new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED,
+ startIndex, endIndex);
+ ListDataListener[] listeners = getListDataListeners();
+
+ for (int index = 0; index < listeners.length; index++)
+ listeners[index].intervalAdded(event);
}
/**
@@ -169,25 +144,13 @@ public abstract class AbstractListModel implements ListModel, Serializable
protected void fireIntervalRemoved(Object source, int startIndex,
int endIndex)
{
- // Variables
- ListDataEvent event;
- ListDataListener[] listeners;
- ListDataListener listener;
- int index;
-
- // Create Event
- event = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED,
- startIndex, endIndex);
-
- // Get Listeners
- listeners = getListDataListeners();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = listeners[index];
- listener.intervalRemoved(event);
- }
+ ListDataEvent event =
+ new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED,
+ startIndex, endIndex);
+ ListDataListener[] listeners = getListDataListeners();
+
+ for (int index = 0; index < listeners.length; index++)
+ listeners[index].intervalRemoved(event);
}
/**
diff --git a/libjava/javax/swing/AbstractSet.java b/libjava/javax/swing/AbstractSet.java
deleted file mode 100644
index 01bb58fd883..00000000000
--- a/libjava/javax/swing/AbstractSet.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* AbstractSet.java --
- Copyright (C) 2002, 2004 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 javax.swing;
-
-import java.util.AbstractCollection;
-import java.util.Collection;
-import java.util.Set;
-
-/**
- * Empty
- *
- * @author Ronald Veldema (rveldema@cs.vu.nl)
- */
-public abstract class AbstractSet extends AbstractCollection implements Set
-{
- boolean contained(Object []a1, Object b)
- {
- for (int i=0;i<a1.length;i++)
- {
- if (a1[i] == b)
- return true;
- }
- return false;
- }
-
- public boolean equals(Object o)
- {
- if (! (o instanceof AbstractSet))
- return false;
- AbstractSet s = (AbstractSet) o;
-
- if (s == this)
- return true;
-
- if (s.size() != size())
- return false;
-
- Object[] a1 = s.toArray();
- Object[] a2 = toArray();
-
- for (int i=0;i<a1.length;i++)
- {
- if (! contained(a2, a1[i]))
- return false;
- }
- return true;
- }
-
- public int hashCode()
- {
- int hash = 0;
- Object[] a1 = toArray();
-
- if (a1 == null)
- return 0;
-
- for (int i=0; i<a1.length; i++)
- {
- hash += a1[i].hashCode();
- }
- return hash;
- }
-
- public boolean removeAll(Collection c)
- {
- return false;
- }
-}
diff --git a/libjava/javax/swing/ActionMap.java b/libjava/javax/swing/ActionMap.java
index 645252f5b26..26d1d6fa989 100644
--- a/libjava/javax/swing/ActionMap.java
+++ b/libjava/javax/swing/ActionMap.java
@@ -49,7 +49,7 @@ import java.util.Set;
/**
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
* @author Michael Koch
*/
public class ActionMap
@@ -57,30 +57,30 @@ public class ActionMap
{
private static final long serialVersionUID = -6277518704513986346L;
- /**
- * actionMap
- */
- private Map actionMap = new HashMap();
+ /**
+ * actionMap
+ */
+ private Map actionMap = new HashMap();
- /**
- * parent
- */
+ /**
+ * parent
+ */
private ActionMap parent;
- /**
+ /**
* Creates a new <code>ActionMap</code> instance.
- */
+ */
public ActionMap()
{
}
- /**
+ /**
* Returns an action associated with an object.
*
* @param key the key of the enty
*
* @return the action associated with key, may be null
- */
+ */
public Action get(Object key)
{
Object result = actionMap.get(key);
@@ -88,123 +88,123 @@ public class ActionMap
if (result == null && parent != null)
result = parent.get(key);
- return (Action) result;
+ return (Action) result;
}
- /**
+ /**
* Puts a new <code>Action</code> into the <code>ActionMap</code>.
* If action is null an existing entry will be removed.
*
* @param key the key for the entry
* @param action the action.
- */
+ */
public void put(Object key, Action action)
{
if (action == null)
- actionMap.remove(key);
+ actionMap.remove(key);
else
- actionMap.put(key, action);
+ actionMap.put(key, action);
}
- /**
+ /**
* Remove an entry from the <code>ActionMap</code>.
*
* @param key the key of the entry to remove
- */
+ */
public void remove(Object key)
{
- actionMap.remove(key);
+ actionMap.remove(key);
}
- /**
+ /**
* Returns the parent of this <code>ActionMap</code>.
*
* @return the parent, may be null.
- */
+ */
public ActionMap getParent()
{
- return parent;
+ return parent;
}
- /**
+ /**
* Sets a parent for this <code>ActionMap</code>.
*
* @param parentMap the new parent
- */
+ */
public void setParent(ActionMap parentMap)
{
- parent = parentMap;
+ parent = parentMap;
}
- /**
+ /**
* Returns the number of entries in this <code>ActionMap</code>.
*
* @return the number of entries
- */
+ */
public int size()
{
- return actionMap.size();
+ return actionMap.size();
}
- /**
+ /**
* Clears the <code>ActionMap</code>.
- */
+ */
public void clear()
{
- actionMap.clear();
+ actionMap.clear();
}
- /**
+ /**
* Returns all keys of entries in this <code>ActionMap</code>.
*
* @return an array of keys
- */
+ */
public Object[] keys()
{
return actionMap.keySet().toArray();
}
- /**
+ /**
* Returns all keys of entries in this <code>ActionMap</code>
* and all its parents.
*
* @return an array of keys
- */
+ */
public Object[] allKeys()
{
Set set = new HashSet();
if (parent != null)
- set.addAll(Arrays.asList(parent.allKeys()));
+ set.addAll(Arrays.asList(parent.allKeys()));
set.addAll(actionMap.keySet());
return set.toArray();
}
- /**
- * writeObject
+ /**
+ * writeObject
*
* @param stream the stream to write to
*
* @exception IOException If an error occurs
- */
+ */
private void writeObject(ObjectOutputStream stream)
throws IOException
{
- // TODO
+ // TODO
}
- /**
- * readObject
+ /**
+ * readObject
*
* @param stream the stream to read from
*
* @exception ClassNotFoundException If the serialized class cannot be found
* @exception IOException If an error occurs
- */
+ */
private void readObject(ObjectInputStream stream)
throws ClassNotFoundException, IOException
{
- // TODO
+ // TODO
}
}
diff --git a/libjava/javax/swing/BoundedRangeModel.java b/libjava/javax/swing/BoundedRangeModel.java
index 907e7045dc1..92cf69df816 100644
--- a/libjava/javax/swing/BoundedRangeModel.java
+++ b/libjava/javax/swing/BoundedRangeModel.java
@@ -35,103 +35,134 @@ 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 javax.swing;
import javax.swing.event.ChangeListener;
/**
- * BoundedRangeModel
- * @author Andrew Selkirk
- * @version 1.0
+ * @author Andrew Selkirk
*/
-public interface BoundedRangeModel {
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * getValue
- * @returns int
- */
- int getValue();
-
- /**
- * setValue
- * @param value TODO
- */
- void setValue(int value);
-
- /**
- * getMinimum
- * @returns int
- */
- int getMinimum();
-
- /**
- * setMinimum
- * @param minimum TODO
- */
- void setMinimum(int minimum);
-
- /**
- * getMaximum
- * @returns int
- */
- int getMaximum();
-
- /**
- * setMaximum
- * @param maximum TODO
- */
- void setMaximum(int maximum);
-
- /**
- * getValueIsAdjusting
- * @returns boolean
- */
- boolean getValueIsAdjusting();
-
- /**
- * setValueIsAdjusting
- * @param adjusting TODO
- */
- void setValueIsAdjusting(boolean adjusting);
-
- /**
- * getExtent
- * @returns int
- */
- int getExtent();
-
- /**
- * setExtent
- * @param extent TODO
- */
- void setExtent(int extent);
-
- /**
- * setRangeProperties
- * @param value TODO
- * @param extent TODO
- * @param min TODO
- * @param max TODO
- * @param adjusting TODO
- */
- void setRangeProperties(int value, int extent, int min,
- int max, boolean adjusting);
-
- /**
- * addChangeListener
- * @param listener TODO
- */
- void addChangeListener(ChangeListener listener);
-
- /**
- * removeChangeListener
- * @param listener TODO
- */
- void removeChangeListener(ChangeListener listener);
-
-
-} // BoundedRangeModel
+public interface BoundedRangeModel
+{
+ /**
+ * getValue
+ *
+ * @return int
+ *
+ * @see #setValue(int)
+ */
+ int getValue();
+
+ /**
+ * setValue
+ *
+ * @param value the value
+ *
+ * @see #getValue()
+ */
+ void setValue(int value);
+
+ /**
+ * getMinimum
+ *
+ * @return int
+ *
+ * @see #setMinimum(int)
+ */
+ int getMinimum();
+
+ /**
+ * setMinimum
+ *
+ * @param minimum the minimum value
+ *
+ * @see #getMinimum()
+ */
+ void setMinimum(int minimum);
+
+ /**
+ * getMaximum
+ *
+ * @return int
+ *
+ * @see #setMaximum(int)
+ */
+ int getMaximum();
+
+ /**
+ * setMaximum
+ *
+ * @param maximum the maximum value
+ *
+ * @see #getMaximum()
+ */
+ void setMaximum(int maximum);
+
+ /**
+ * Returns the value of the <code>valueIsAdjusting</code> property.
+ *
+ * @return <code>true</code> if value is adjusting,
+ * otherwise <code>false</code>
+ *
+ * @see setValueIsAdjusting(boolean)
+ */
+ boolean getValueIsAdjusting();
+
+ /**
+ * setValueIsAdjusting
+ *
+ * @param adjusting <code>true</code> if adjusting,
+ * <code>false</code> otherwise
+ *
+ * @see #getValueIsAdjusting()
+ */
+ void setValueIsAdjusting(boolean adjusting);
+
+ /**
+ * Returns the current extent.
+ *
+ * @return the extent
+ *
+ * @see #setExtent(int)
+ */
+ int getExtent();
+
+ /**
+ * setExtent
+ *
+ * @param extent the extent
+ *
+ * @see #getExtent()
+ */
+ void setExtent(int extent);
+
+ /**
+ * setRangeProperties
+ * @param value the value
+ * @param extent the extent
+ * @param minnimum the minimum value
+ * @param maximum the maximum value
+ * @param adjusting TODO
+ */
+ void setRangeProperties(int value, int extent, int minimum, int maximum,
+ boolean adjusting);
+
+ /**
+ * Adds a <code>ChangeListener</code> to this object.
+ *
+ * @param listener the listener to add
+ *
+ * @see #removeChangeListener(javax.swing.event.ChangeListener)
+ */
+ void addChangeListener(ChangeListener listener);
+
+ /**
+ * Removes a <code>ChangeListener</code> from this object.
+ *
+ * @param listener the listener to remove
+ *
+ * @see #addChangeListener(javax.swing.event.ChangeListener)
+ */
+ void removeChangeListener(ChangeListener listener);
+}
diff --git a/libjava/javax/swing/ComponentInputMap.java b/libjava/javax/swing/ComponentInputMap.java
index 84110c5f0f2..1c85892f56a 100644
--- a/libjava/javax/swing/ComponentInputMap.java
+++ b/libjava/javax/swing/ComponentInputMap.java
@@ -39,17 +39,17 @@ package javax.swing;
/**
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
* @author Michael Koch
*/
public class ComponentInputMap extends InputMap
{
- /**
+ /**
* The component to notify.
- */
- private JComponent component;
+ */
+ private JComponent component;
- /**
+ /**
* Creates <code>ComponentInputMap</code> object that notifies the given
* component about changes to it.
*
diff --git a/libjava/javax/swing/DebugGraphics.java b/libjava/javax/swing/DebugGraphics.java
index 6aa80adf5af..074d4511477 100644
--- a/libjava/javax/swing/DebugGraphics.java
+++ b/libjava/javax/swing/DebugGraphics.java
@@ -1,5 +1,5 @@
/* DebugGraphics.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -56,6 +56,30 @@ import java.text.AttributedCharacterIterator;
*/
public class DebugGraphics extends Graphics
{
+ /**
+ * LOG_OPTION
+ */
+ public static final int LOG_OPTION = 1;
+
+ /**
+ * FLASH_OPTION
+ */
+ public static final int FLASH_OPTION = 2;
+
+ /**
+ * BUFFERED_OPTION
+ */
+ public static final int BUFFERED_OPTION = 4;
+
+ /**
+ * NONE_OPTION
+ */
+ public static final int NONE_OPTION = -1;
+
+ static Color debugFlashColor = Color.RED;
+ static int debugFlashCount = 10;
+ static int debugFlashTime = 1000;
+ static PrintStream debugLogStream = System.out;
/**
* graphics
@@ -63,6 +87,11 @@ public class DebugGraphics extends Graphics
Graphics graphics;
/**
+ * color
+ */
+ Color color = Color.BLACK;
+
+ /**
* buffer
*/
Image buffer;
@@ -88,26 +117,6 @@ public class DebugGraphics extends Graphics
int yOffset;
/**
- * LOG_OPTION
- */
- public static final int LOG_OPTION = 1;
-
- /**
- * FLASH_OPTION
- */
- public static final int FLASH_OPTION = 2;
-
- /**
- * BUFFERED_OPTION
- */
- public static final int BUFFERED_OPTION = 4;
-
- /**
- * NONE_OPTION
- */
- public static final int NONE_OPTION = -1;
-
- /**
* Creates a <code>DebugGraphics</code> object.
*/
public DebugGraphics()
@@ -116,55 +125,62 @@ public class DebugGraphics extends Graphics
}
/**
- * Constructor DebugGraphics
- * @param graphics TODO
+ * Creates a <code>DebugGraphics</code> object.
+ *
+ * @param graphics The <code>Graphics</code> object to wrap
* @param component TODO
*/
public DebugGraphics(Graphics graphics, JComponent component)
{
- // TODO
+ this.graphics = graphics;
+ // FIXME: What shall we do with component ?
}
/**
- * Constructor DebugGraphics
- * @param graphics TODO
+ * Creates a <code>DebugGraphics</code> object.
+ *
+ * @param graphics The <code>Graphics</code> object to wrap
*/
public DebugGraphics(Graphics graphics)
{
- // TODO
+ this.graphics = graphics;
}
/**
- * setColor
- * @param value0 TODO
+ * Sets the color to draw stuff with.
+ *
+ * @param color The color
*/
public void setColor(Color color)
{
- // TODO
+ this.color = color;
}
/**
- * create
+ * Creates a overrides <code>Graphics.create</code> to create a
+ * <code>DebugGraphics</code> object.
*
- * @return Graphics
+ * @return a new <code>DebugGraphics</code> object.
*/
public Graphics create()
{
- return null; // TODO
+ return new DebugGraphics(graphics.create());
}
/**
- * create
+ * Creates a overrides <code>Graphics.create</code> to create a
+ * <code>DebugGraphics</code> object.
*
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
- * @returns Graphics
+ * @param x the x coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
+ *
+ * @return a new <code>DebugGraphics</code> object.
*/
- public Graphics create(int valx, int y, int w, int h)
+ public Graphics create(int x, int y, int width, int height)
{
- return null; // TODO
+ return new DebugGraphics(graphics.create(x, y, width, height));
}
/**
@@ -174,7 +190,7 @@ public class DebugGraphics extends Graphics
*/
public static Color flashColor()
{
- return null; // TODO
+ return debugFlashColor;
}
/**
@@ -184,7 +200,7 @@ public class DebugGraphics extends Graphics
*/
public static void setFlashColor(Color color)
{
- // TODO
+ debugFlashColor = color;
}
/**
@@ -194,7 +210,7 @@ public class DebugGraphics extends Graphics
*/
public static int flashTime()
{
- return 0; // TODO
+ return debugFlashTime;
}
/**
@@ -204,16 +220,17 @@ public class DebugGraphics extends Graphics
*/
public static void setFlashTime(int time)
{
- // TODO
+ debugFlashTime = time;
}
/**
* flashCount
- * @returns int
+ *
+ * @return The number of flashes
*/
public static int flashCount()
{
- return 0; // TODO
+ return debugFlashCount;
}
/**
@@ -223,7 +240,7 @@ public class DebugGraphics extends Graphics
*/
public static void setFlashCount(int count)
{
- // TODO
+ debugFlashCount = count;
}
/**
@@ -233,7 +250,7 @@ public class DebugGraphics extends Graphics
*/
public static PrintStream logStream()
{
- return null; // TODO
+ return debugLogStream;
}
/**
@@ -243,16 +260,17 @@ public class DebugGraphics extends Graphics
*/
public static void setLogStream(PrintStream stream)
{
- // TODO
+ debugLogStream = stream;
}
/**
* getFont
- * @returns Font
+ *
+ * @return The font
*/
public Font getFont()
{
- return null; // TODO
+ return graphics.getFont();
}
/**
@@ -262,46 +280,50 @@ public class DebugGraphics extends Graphics
*/
public void setFont(Font font)
{
- // TODO
+ graphics.setFont(font);
}
/**
- * getColor
- * @returns Color
+ * Returns the color used for drawing.
+ *
+ * @return The color.
*/
public Color getColor()
{
- return null; // TODO
+ return color;
}
/**
- * getFontMetrics
- * @returns FontMetrics
+ * Returns the font metrics of the current font.
+ *
+ * @return a <code>FontMetrics</code> object
*/
public FontMetrics getFontMetrics()
{
- return null; // TODO
+ return graphics.getFontMetrics();
}
/**
- * getFontMetrics
- * @param font TODO
- * @returns FontMetrics
+ * Returns the font metrics for a given font.
+ *
+ * @param font the font to get the metrics for
+ *
+ * @return a <code>FontMetrics</code> object
*/
public FontMetrics getFontMetrics(Font font)
{
- return null; // TODO
+ return graphics.getFontMetrics(font);
}
/**
* translate
*
- * @param x TODO
- * @param y TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
public void translate(int x, int y)
{
- // TODO
+ graphics.translate(x, y);
}
/**
@@ -309,237 +331,291 @@ public class DebugGraphics extends Graphics
*/
public void setPaintMode()
{
- // TODO
+ graphics.setPaintMode();
}
/**
* setXORMode
*
- * @param color TODO
+ * @param color the color
*/
public void setXORMode(Color color)
{
- // TODO
+ graphics.setXORMode(color);
}
/**
* getClipBounds
- * @returns Rectangle
+ *
+ * @return Rectangle
*/
public Rectangle getClipBounds()
{
- return null; // TODO
+ return graphics.getClipBounds();
}
/**
- * clipRect
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
- * @param value3 TODO
+ * Intersects the current clip region with the given region.
+ *
+ * @param x The x-position of the region
+ * @param y The y-position of the region
+ * @param width The width of the region
+ * @param height The height of the region
*/
- public void clipRect(int value0, int value1, int value2, int value3)
+ public void clipRect(int x, int y, int width, int height)
{
- // TODO
+ graphics.clipRect(x, y, width, height);
}
/**
- * setClip
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * Sets the clipping region.
+ *
+ * @param x The x-position of the region
+ * @param y The y-position of the region
+ * @param width The width of the region
+ * @param height The height of the region
*/
- public void setClip(int x, int y, int w, int h)
+ public void setClip(int x, int y, int width, int height)
{
- // TODO
+ graphics.setClip(x, y, width, height);
}
/**
- * getClip
- * @returns Shape
+ * Returns the current clipping region.
+ *
+ * @return Shape
*/
public Shape getClip()
{
- return null; // TODO
+ return graphics.getClip();
}
/**
- * setClip
- * @param shape TODO
+ * Sets the current clipping region
+ *
+ * @param shape The clippin region
*/
public void setClip(Shape shape)
{
- // TODO
+ graphics.setClip(shape);
}
+ private void sleep(int milliseconds)
+ {
+ try
+ {
+ Thread.sleep(milliseconds);
+ }
+ catch (InterruptedException e)
+ {
+ // Ignore this.
+ }
+ }
+
/**
- * drawRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param valh TODO
+ * Draws a rectangle.
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
*/
- public void drawRect(int x, int y, int w, int h)
+ public void drawRect(int x, int y, int width, int height)
{
- // TODO
- } // drawRect()
+ for (int index = 0; index < (debugFlashCount - 1); ++index)
+ {
+ graphics.setColor(color);
+ graphics.drawRect(x, y, width, height);
+ sleep(debugFlashTime);
+
+ graphics.setColor(debugFlashColor);
+ graphics.drawRect(x, y, width, height);
+ sleep(debugFlashTime);
+ }
+
+ graphics.setColor(color);
+ graphics.drawRect(x, y, width, height);
+ }
/**
- * fillRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * Draws a filled rectangle.
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
*/
- public void fillRect(int x, int y, int w, int h)
+ public void fillRect(int x, int y, int width, int height)
{
- // TODO
- } // fillRect()
+ for (int index = 0; index < (debugFlashCount - 1); ++index)
+ {
+ graphics.setColor(color);
+ graphics.fillRect(x, y, width, height);
+ sleep(debugFlashTime);
+
+ graphics.setColor(debugFlashColor);
+ graphics.fillRect(x, y, width, height);
+ sleep(debugFlashTime);
+ }
+
+ graphics.setColor(color);
+ graphics.fillRect(x, y, width, height);
+ }
/**
* clearRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
*/
- public void clearRect(int x, int y, int w, int h)
+ public void clearRect(int x, int y, int width, int height)
{
- // TODO
+ graphics.clearRect(x, y, width, height);
}
/**
* drawRoundRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param arcWidth TODO
* @param arcHeight TODO
*/
- public void drawRoundRect(int x, int y, int w, int h, int arcWidth,
- int arcHeight)
+ public void drawRoundRect(int x, int y, int width, int height,
+ int arcWidth, int arcHeight)
{
- // TODO
+ graphics.drawRoundRect(x, y, width, height, arcWidth, arcHeight);
}
/**
* fillRoundRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param arcWidth TODO
* @param arcHeight TODO
*/
- public void fillRoundRect(int x, int y, int w, int h, int arcWidth,
- int arcHeight)
+ public void fillRoundRect(int x, int y, int width, int height,
+ int arcWidth, int arcHeight)
{
- // TODO
+ graphics.fillRoundRect(x, y, width, height, arcWidth, arcHeight);
}
/**
* drawLine
- * @param x1 TODO
- * @param y1 TODO
- * @param x2 TODO
- * @param y2 TODO
+ *
+ * @param x1 The x-position of the start
+ * @param y1 The y-position of the start
+ * @param x2 The x-position of the end
+ * @param y2 The y-position of the end
*/
public void drawLine(int x1, int y1, int x2, int y2)
{
- // TODO
+ graphics.drawLine(x1, y1, x2, y2);
}
/**
* draw3DRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param raised TODO
*/
- public void draw3DRect(int x, int y, int w, int h, boolean raised)
+ public void draw3DRect(int x, int y, int width, int height, boolean raised)
{
- // TODO
+ graphics.draw3DRect(x, y, width, height, raised);
}
/**
* fill3DRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param raised TODO
*/
- public void fill3DRect(int x, int y, int w, int h, boolean raised)
+ public void fill3DRect(int x, int y, int width, int height, boolean raised)
{
- // TODO
+ graphics.fill3DRect(x, y, width, height, raised);
}
/**
* drawOval
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x the x coordinate
+ * @param y the y coordiante
+ * @param width the width
+ * @param height the height
*/
- public void drawOval(int x, int y, int w, int h)
+ public void drawOval(int x, int y, int width, int height)
{
- // TODO
+ graphics.drawOval(x, y, width, height);
}
/**
* fillOval
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x the x coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
*/
- public void fillOval(int x, int y, int w, int h)
+ public void fillOval(int x, int y, int width, int height)
{
- // TODO
+ graphics.fillOval(x, y, width, height);
}
/**
* drawArc
*
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
* @param startAngle TODO
* @param arcAngle TODO
*/
- public void drawArc(int x, int y, int w, int h, int startAngle, int arcAngle)
+ public void drawArc(int x, int y, int width, int height,
+ int startAngle, int arcAngle)
{
- // TODO
+ graphics.drawArc(x, y, width, height, startAngle, arcAngle);
}
/**
* fillArc
*
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * @param x the coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
* @param startAngle TODO
* @param arcAngle TODO
*/
- public void fillArc(int x, int y, int w, int h, int startAngle, int arcAngle)
+ public void fillArc(int x, int y, int width, int height,
+ int startAngle, int arcAngle)
{
- // TODO
+ graphics.fillArc(x, y, width, height, startAngle, arcAngle);
}
/**
* drawPolyline
+ *
* @param xpoints TODO
* @param ypoints TODO
* @param npoints TODO
*/
public void drawPolyline(int[] xpoints, int[] ypoints, int npoints)
{
- // TODO
+ graphics.drawPolyline(xpoints, ypoints, npoints);
}
/**
@@ -551,7 +627,7 @@ public class DebugGraphics extends Graphics
*/
public void drawPolygon(int[] xpoints, int[] ypoints, int npoints)
{
- // TODO
+ graphics.drawPolygon(xpoints, ypoints, npoints);
}
/**
@@ -563,31 +639,32 @@ public class DebugGraphics extends Graphics
*/
public void fillPolygon(int[] xpoints, int[] ypoints, int npoints)
{
- // TODO
+ graphics.fillPolygon(xpoints, ypoints, npoints);
}
/**
* drawString
*
- * @param string TODO
- * @param x TODO
- * @param y TODO
+ * @param string the string
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
- public void drawString(String string, int s, int y)
+ public void drawString(String string, int x, int y)
{
- // TODO
+ graphics.drawString(string, x, y);
}
/**
* drawString
*
* @param iterator TODO
- * @param x TODO
- * @param y TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
- public void drawString(AttributedCharacterIterator iterator, int x, int y)
+ public void drawString(AttributedCharacterIterator iterator,
+ int x, int y)
{
- // TODO
+ graphics.drawString(iterator, x, y);
}
/**
@@ -596,86 +673,111 @@ public class DebugGraphics extends Graphics
* @param data TODO
* @param offset TODO
* @param length TODO
- * @param x TODO
- * @param y TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
- public void drawBytes(byte[] data, int offset, int length, int x, int y)
+ public void drawBytes(byte[] data, int offset, int length,
+ int x, int y)
{
- // TODO
+ graphics.drawBytes(data, offset, length, x, y);
}
/**
* drawChars
- * @param data TODO
- * @param offset TODO
- * @param length TODO
- * @param value3 TODO
- * @param value4 TODO
+ *
+ * @param data array of characters to draw
+ * @param offset offset in array
+ * @param length number of characters in array to draw
+ * @param x x-position
+ * @param y y-position
*/
- public void drawChars(char[] data, int offset, int value2, int x, int y)
+ public void drawChars(char[] data, int offset, int length,
+ int x, int y)
{
- // TODO
- } // drawChars()
+ for (int index = 0; index < (debugFlashCount - 1); ++index)
+ {
+ graphics.setColor(color);
+ graphics.drawChars(data, offset, length, x, y);
+ sleep(debugFlashTime);
+
+ graphics.setColor(debugFlashColor);
+ graphics.drawChars(data, offset, length, x, y);
+ sleep(debugFlashTime);
+ }
+
+ graphics.setColor(color);
+ graphics.drawChars(data, offset, length, x, y);
+ }
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param observer TODO
- * @returns boolean
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param observer The image observer
+ * @return boolean
*/
- public boolean drawImage(Image image, int x, int y, ImageObserver observer)
+ public boolean drawImage(Image image, int x, int y,
+ ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, observer);
}
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
- * @param observer TODO
- * @returns boolean
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param width The width of the area to draw the image
+ * @param height The height of the area to draw the image
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int x, int y, int w, int h,
- ImageObserver observer)
+ public boolean drawImage(Image image, int x, int y, int width,
+ int height, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, width, height, observer);
}
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param background TODO
- * @param observer TODO
- * @returns boolean
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param background The color for the background in the opaque regions
+ * of the image
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int x, int y, Color background,
- ImageObserver observer)
+ public boolean drawImage(Image image, int x, int y,
+ Color background, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, background, observer);
}
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
- * @param background TODO
- * @param observer TODO
- * @returns boolean
- */
- public boolean drawImage(Image image, int x, int y, int w, int h,
- Color background, ImageObserver observer)
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param width The width of the area to draw the image
+ * @param height The height of the area to draw the image
+ * @param background The color for the background in the opaque regions
+ * of the image
+ * @param observer The image observer
+ *
+ * @return boolean
+ */
+ public boolean drawImage(Image image, int x, int y, int width, int height,
+ Color background, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, width, height, background, observer);
}
/**
@@ -690,14 +792,15 @@ public class DebugGraphics extends Graphics
* @param sy1 TODO
* @param sx2 TODO
* @param sy2 TODO
- * @param observer TODO
- * @returns boolean
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- ImageObserver observer)
+ public boolean drawImage(Image image, int dx1, int dy1,
+ int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
+ ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);
}
/**
@@ -712,15 +815,17 @@ public class DebugGraphics extends Graphics
* @param sy1 TODO
* @param sx2 TODO
* @param sy2 TODO
- * @param background TODO
- * @param observer TODO
- * @returns boolean
+ * @param background The color for the background in the opaque regions
+ * of the image
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- Color background, ImageObserver observer)
+ public boolean drawImage(Image image, int dx1, int dy1,
+ int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
+ Color background, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, background, observer);
}
/**
@@ -733,9 +838,10 @@ public class DebugGraphics extends Graphics
* @param destx The x position of the destination area
* @param desty The y posiiton of the destination area
*/
- public void copyArea(int x, int y, int w, int h, int destx, int desty)
+ public void copyArea(int x, int y, int width, int height,
+ int destx, int desty)
{
- // TODO
+ graphics.copyArea(x, y, width, height, destx, desty);
}
/**
@@ -743,7 +849,8 @@ public class DebugGraphics extends Graphics
*/
public void dispose()
{
- // TODO
+ graphics.dispose();
+ graphics = null;
}
/**
@@ -757,22 +864,13 @@ public class DebugGraphics extends Graphics
}
/**
- * toShortString
- * @returns String
- */
- String toShortString()
- {
- return null; // TODO
- } // toShortString()
-
- /**
* setDebugOptions
*
* @param options the debug options
*/
public void setDebugOptions(int options)
{
- // TODO
+ debugOptions = options;
}
/**
@@ -782,6 +880,6 @@ public class DebugGraphics extends Graphics
*/
public int getDebugOptions()
{
- return 0; // TODO
+ return debugOptions;
}
}
diff --git a/libjava/javax/swing/DefaultBoundedRangeModel.java b/libjava/javax/swing/DefaultBoundedRangeModel.java
index 9a2d974cbaa..9c1962379a8 100644
--- a/libjava/javax/swing/DefaultBoundedRangeModel.java
+++ b/libjava/javax/swing/DefaultBoundedRangeModel.java
@@ -1,6 +1,6 @@
/* DefaultBoundedRangeModel.java -- Default implementation
of BoundedRangeModel.
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,10 +47,10 @@ import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
- * A default implementation of BoundedRangeModel.
+ * A default implementation of <code>BoundedRangeModel</code>.
*
- * @author <a href="mailto:aselkirk@sympatico.ca">Andrew Selkirk</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Andrew Selkirk (aselkirk@sympatico.ca)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class DefaultBoundedRangeModel
implements BoundedRangeModel, Serializable
@@ -59,7 +59,7 @@ public class DefaultBoundedRangeModel
* The identifier of this class in object serialization. Verified
* using the serialver tool of Sun J2SE 1.4.1_01.
*/
- static final long serialVersionUID = 5034068491295259790L;
+ private static final long serialVersionUID = 5034068491295259790L;
/**
@@ -67,7 +67,7 @@ public class DefaultBoundedRangeModel
* when the state of this range model has changed.
*
* <p>The event object is created on demand, the first time it
- * is actually needed.
+ * is actually needed.</p>
*
* @see #fireStateChanged()
*/
@@ -155,7 +155,7 @@ public class DefaultBoundedRangeModel
* @param maximum the initial maximal value of the range model.
*
* @throws IllegalArgumentException if the following condition is
- * not satisfied: <code>minimum <= value <= value + extent <=
+ * not satisfied: <code>minimum &lt;= value &lt;= value + extent &lt;=
* maximum</code>.
*/
public DefaultBoundedRangeModel(int value, int extent, int minimum,
@@ -176,6 +176,8 @@ public class DefaultBoundedRangeModel
/**
* Returns a string with all relevant properties of this range
* model.
+ *
+ * @return a string representing the object
*/
public String toString()
{
@@ -193,6 +195,8 @@ public class DefaultBoundedRangeModel
* Returns the current value of this bounded range model. In a
* scroll bar visualization of a {@link BoundedRangeModel}, the
* <code>value</code> is displayed as the position of the thumb.
+ *
+ * @return the value
*/
public int getValue()
{
@@ -206,6 +210,8 @@ public class DefaultBoundedRangeModel
* <code>value</code> is displayed as the position of the thumb;
* changing the <code>value</code> of a scroll bar's model
* thus moves the thumb to a different position.
+ *
+ * @param value the value
*/
public void setValue(int value)
{
@@ -226,6 +232,8 @@ public class DefaultBoundedRangeModel
* a number greater than or equal to zero. In a scroll bar
* visualization of a {@link BoundedRangeModel}, the
* <code>extent</code> is displayed as the size of the thumb.
+ *
+ * @return the extent
*/
public int getExtent()
{
@@ -282,6 +290,8 @@ public class DefaultBoundedRangeModel
/**
* Returns the current maximal value of this bounded range model.
+ *
+ * @return the maximum
*/
public int getMaximum()
{
@@ -313,7 +323,7 @@ public class DefaultBoundedRangeModel
* around; when the mouse is relased, they set the property to
* <code>false</code> and post a final {@link ChangeEvent}.
*
- * @returns <code>true</code> if the value will change soon again;
+ * @return <code>true</code> if the value will change soon again;
* <code>false</code> if the value will probably not change soon.
*/
public boolean getValueIsAdjusting()
@@ -344,7 +354,7 @@ public class DefaultBoundedRangeModel
/**
- * setRangeProperties
+ * Sets all properties.
*
* @param value the new value of the range model. In a scroll bar
* visualization of a {@link BoundedRangeModel}, the
@@ -422,16 +432,13 @@ public class DefaultBoundedRangeModel
*/
protected void fireStateChanged()
{
- Object[] listeners;
-
- listeners = listenerList.getListenerList();
- for (int i = listeners.length - 2; i >= 0; i -= 2)
- if (listeners[i] == ChangeListener.class)
- {
- if (changeEvent == null)
- changeEvent = new ChangeEvent(this);
- ((ChangeListener) listeners[i + 1]).stateChanged(changeEvent);
- }
+ ChangeListener[] listeners = getChangeListeners();
+
+ if (changeEvent == null)
+ changeEvent = new ChangeEvent(this);
+
+ for (int i = listeners.length - 1; i >= 0; --i)
+ listeners[i].stateChanged(changeEvent);
}
diff --git a/libjava/javax/swing/DefaultButtonModel.java b/libjava/javax/swing/DefaultButtonModel.java
index 543428a931d..0473f53bc21 100644
--- a/libjava/javax/swing/DefaultButtonModel.java
+++ b/libjava/javax/swing/DefaultButtonModel.java
@@ -71,7 +71,7 @@ import javax.swing.event.EventListenerList;
public class DefaultButtonModel implements ButtonModel, Serializable
{
/** DOCUMENT ME! */
- static final long serialVersionUID = -5342609566534980231L;
+ private static final long serialVersionUID = -5342609566534980231L;
/**
* Indicates that the button is <em>partially</em> committed to being
@@ -272,7 +272,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
*
* @param e The ItemEvent to fire
*/
- public void fireItemStateChanged(ItemEvent e)
+ protected void fireItemStateChanged(ItemEvent e)
{
ItemListener[] ll = getItemListeners();
@@ -288,7 +288,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
*
* @param e The ActionEvent to fire
*/
- public void fireActionPerformed(ActionEvent e)
+ protected void fireActionPerformed(ActionEvent e)
{
ActionListener[] ll = getActionListeners();
@@ -301,7 +301,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* has occurred. This happens in response to the any change to a property
* of the model.
*/
- public void fireStateChanged()
+ protected void fireStateChanged()
{
ChangeListener[] ll = getChangeListeners();
@@ -315,7 +315,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param stateflag DOCUMENT ME!
* @param b DOCUMENT ME!
*/
- protected void changeState(int stateflag, boolean b)
+ private void changeState(int stateflag, boolean b)
{
int oldstate = stateMask;
int newstate;
diff --git a/libjava/javax/swing/DefaultCellEditor.java b/libjava/javax/swing/DefaultCellEditor.java
index 1dd17b43555..26bf708be2d 100644
--- a/libjava/javax/swing/DefaultCellEditor.java
+++ b/libjava/javax/swing/DefaultCellEditor.java
@@ -58,7 +58,7 @@ public class DefaultCellEditor
extends AbstractCellEditor
implements TableCellEditor, TreeCellEditor
{
- static final long serialVersionUID = 3564035141373880027L;
+ private static final long serialVersionUID = 3564035141373880027L;
/**
* EditorDelegate
diff --git a/libjava/javax/swing/DefaultComboBoxModel.java b/libjava/javax/swing/DefaultComboBoxModel.java
index a5546f2954a..c2ece643551 100644
--- a/libjava/javax/swing/DefaultComboBoxModel.java
+++ b/libjava/javax/swing/DefaultComboBoxModel.java
@@ -50,12 +50,13 @@ import java.util.Vector;
*
* @author Andrew Selkirk
* @author Olga Rodimina
+ * @author Robert Schuster
* @version 1.0
*/
public class DefaultComboBoxModel extends AbstractListModel
implements MutableComboBoxModel, Serializable
{
- static final long serialVersionUID = 6698657703676921904L;
+ private static final long serialVersionUID = 6698657703676921904L;
/**
* List containing items in the combo box
@@ -182,13 +183,23 @@ public class DefaultComboBoxModel extends AbstractListModel
* ListDataEvent to all registered ListDataListeners of the JComboBox. The
* start and end index of the event is set to -1 to indicate combo box's
* selection has changed, and not its contents.
+ *
+ * <p>If the given object is not contained in the combo box list then nothing
+ * happens.</p>
*
* @param object item to select in the JComboBox
*/
public void setSelectedItem(Object object)
{
- selectedItem = object;
- fireContentsChanged(this, -1, -1);
+
+ /* Updates the selected item only if the given object
+ * is null or in the list (this is how the JDK behaves).
+ */
+ if(object == null || list.contains(object)) {
+ selectedItem = object;
+ fireContentsChanged(this, -1, -1);
+ }
+
}
/**
diff --git a/libjava/javax/swing/DefaultDesktopManager.java b/libjava/javax/swing/DefaultDesktopManager.java
index 4928c5dc9f4..a0dd5e2d1a1 100644
--- a/libjava/javax/swing/DefaultDesktopManager.java
+++ b/libjava/javax/swing/DefaultDesktopManager.java
@@ -1,5 +1,5 @@
/* DefaultDesktopManager.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing;
import java.awt.Component;
@@ -56,7 +57,7 @@ import javax.swing.JInternalFrame.JDesktopIcon;
public class DefaultDesktopManager implements DesktopManager, Serializable
{
/** DOCUMENT ME! */
- static final long serialVersionUID = 4657624909838017887L;
+ private static final long serialVersionUID = 4657624909838017887L;
/** The property change event fired when the wasIcon property changes. */
static final String WAS_ICON_ONCE_PROPERTY = "wasIconOnce";
@@ -80,7 +81,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
private transient Container pane;
/**
- * An array of Rectangles that holds the bounds of the JDesktopIcons in the
+ * An array of Rectangles that holds the bounds of the JDesktopIcons in the
* JDesktopPane when looking for where to place a new icon.
*/
private transient Rectangle[] iconRects;
@@ -90,7 +91,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
*/
public DefaultDesktopManager()
{
- } // DefaultDesktopManager()
+ }
/**
* This method is not normally called since the user will typically add the
@@ -111,7 +112,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
c.remove(frame.getDesktopIcon());
c.add(frame);
frame.setVisible(true);
- } // openFrame()
+ }
/**
* This method removes the JInternalFrame and JDesktopIcon (if one is
@@ -132,7 +133,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
c.remove(frame);
c.repaint();
}
- } // closeFrame()
+ }
/**
* This method resizes the JInternalFrame to match its parent's bounds.
@@ -171,7 +172,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
// Do nothing.
}
}
- } // maximizeFrame()
+ }
/**
* This method restores the JInternalFrame's bounds to what they were
@@ -200,7 +201,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
setBoundsForFrame(frame, normalBounds.x, normalBounds.y,
normalBounds.width, normalBounds.height);
- } // minimizeFrame()
+ }
/**
* This method removes the JInternalFrame from its parent and adds its
@@ -231,7 +232,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
{
Rectangle r = getBoundsForIconOf(frame);
icon.setBounds(r);
- setWasIcon(frame, true);
+ setWasIcon(frame, Boolean.TRUE);
}
if (c != null)
@@ -243,7 +244,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
c.remove(frame);
}
- } // iconifyFrame()
+ }
/**
* This method removes the JInternalFrame's JDesktopIcon representation and
@@ -279,7 +280,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
c.invalidate();
- } // deiconifyFrame()
+ }
/**
* This method activates the JInternalFrame by moving it to the front and
@@ -305,7 +306,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
frame.toFront();
- } // activateFrame()
+ }
/**
* This method is called when the JInternalFrame loses focus.
@@ -330,7 +331,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
{
}
}
- } // deactivateFrame()
+ }
/**
* This method is called to indicate that the DesktopManager should prepare
@@ -354,7 +355,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
currentDragMode = JDesktopPane.LIVE_DRAG_MODE;
else
currentDragMode = ((JDesktopPane) pane).getDragMode();
- } // beginDraggingFrame()
+ }
/**
* This method is called to drag the JInternalFrame to a new location.
@@ -378,7 +379,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
setBoundsForFrame((JInternalFrame) component, newX, newY, b.width,
b.height);
}
- } // dragFrame()
+ }
/**
* This method indicates that the dragging is done. Any state information
@@ -396,7 +397,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
dragCache = null;
}
component.repaint();
- } // endDraggingFrame()
+ }
/**
* This method is called to indicate that the given JComponent will be
@@ -417,7 +418,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
currentDragMode = JDesktopPane.LIVE_DRAG_MODE;
else
currentDragMode = ((JDesktopPane) pane).getDragMode();
- } // beginResizingFrame()
+ }
/**
* This method resizes the give JComponent.
@@ -440,7 +441,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
else
setBoundsForFrame(component, dragCache.x, dragCache.y, dragCache.width,
dragCache.height);
- } // resizeFrame()
+ }
/**
* This method is called to indicate that the given JComponent has finished
@@ -459,7 +460,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
dragCache = null;
}
component.repaint();
- } // endResizingFrame()
+ }
/**
* This method calls setBounds with the given parameters and repaints the
@@ -482,7 +483,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
component.getParent().repaint();
else
component.repaint();
- } // setBoundsForFrame()
+ }
/**
* This is a helper method that removes the JDesktopIcon of the given
@@ -496,7 +497,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
Container c = icon.getParent();
if (c != null && icon != null)
c.remove(icon);
- } // removeIconFor()
+ }
/**
* This method is called by iconifyFrame to determine the bounds of the
@@ -570,7 +571,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
return ideal;
- } // getBoundsForIconOf()
+ }
/**
* This method sets the bounds of the JInternalFrame right before the
@@ -582,7 +583,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
protected void setPreviousBounds(JInternalFrame frame, Rectangle rect)
{
frame.setNormalBounds(rect);
- } // setPreviousBounds()
+ }
/**
* This method returns the normal bounds of the JInternalFrame from before
@@ -595,7 +596,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
protected Rectangle getPreviousBounds(JInternalFrame frame)
{
return frame.getNormalBounds();
- } // getPreviousBounds()
+ }
/**
* This method sets the value to true if the given JInternalFrame has been
@@ -605,10 +606,10 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
* @param value True if the JInternalFrame has been iconized and the bounds
* of the JDesktopIcon are valid.
*/
- protected void setWasIcon(JInternalFrame frame, boolean value)
+ protected void setWasIcon(JInternalFrame frame, Boolean value)
{
- frame.setWasIcon(value, WAS_ICON_ONCE_PROPERTY);
- } // setWasIcon()
+ frame.setWasIcon(value.booleanValue(), WAS_ICON_ONCE_PROPERTY);
+ }
/**
* This method returns true if the given JInternalFrame has been iconized
@@ -622,5 +623,5 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
protected boolean wasIcon(JInternalFrame frame)
{
return frame.getWasIcon();
- } // wasIcon()
-} // DefaultDesktopManager
+ }
+}
diff --git a/libjava/javax/swing/DefaultListCellRenderer.java b/libjava/javax/swing/DefaultListCellRenderer.java
index 4c4cee3c2bb..91b8a8a2edd 100644
--- a/libjava/javax/swing/DefaultListCellRenderer.java
+++ b/libjava/javax/swing/DefaultListCellRenderer.java
@@ -52,10 +52,10 @@ import javax.swing.border.EmptyBorder;
* @author Andrew Selkirk
* @version 1.0
*/
-public class DefaultListCellRenderer extends JLabel implements ListCellRenderer,
- Serializable
+public class DefaultListCellRenderer extends JLabel
+ implements ListCellRenderer, Serializable
{
- static final long serialVersionUID = 7708947179685189462L;
+ private static final long serialVersionUID = 7708947179685189462L;
public static class UIResource extends DefaultListCellRenderer
implements javax.swing.plaf.UIResource
@@ -89,6 +89,7 @@ public class DefaultListCellRenderer extends JLabel implements ListCellRenderer,
String s = value.toString();
setText(s);
setOpaque(true);
+ setHorizontalAlignment(LEFT);
if (isSelected)
{
diff --git a/libjava/javax/swing/DefaultListModel.java b/libjava/javax/swing/DefaultListModel.java
index 53dd20cbc10..c3704dbea9e 100644
--- a/libjava/javax/swing/DefaultListModel.java
+++ b/libjava/javax/swing/DefaultListModel.java
@@ -1,5 +1,5 @@
/* DefaultListModel.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -198,7 +198,7 @@ public class DefaultListModel extends AbstractListModel
public void add(int index, Object element)
{
elements.add(index, element);
- fireContentsChanged(this, index, index);
+ fireIntervalAdded(this, index, index);
}
/**
@@ -209,8 +209,9 @@ public class DefaultListModel extends AbstractListModel
*/
public void addElement(Object element)
{
+ int s = elements.size();
elements.add(element);
- fireIntervalAdded(this, elements.size(), elements.size());
+ fireIntervalAdded(this, s, s);
}
/**
@@ -266,8 +267,12 @@ public class DefaultListModel extends AbstractListModel
*/
public void clear()
{
- elements.clear();
- fireIntervalRemoved(this, 0, elements.size());
+ int s = elements.size();
+ if (s > 0)
+ {
+ elements.clear();
+ fireIntervalRemoved(this, 0, s - 1);
+ }
}
/**
@@ -341,7 +346,16 @@ public class DefaultListModel extends AbstractListModel
*/
public void setSize(int size)
{
+ int oldSize = elements.size();
elements.setSize(size);
+ if (oldSize < size)
+ {
+ fireIntervalAdded(this, oldSize, size - 1);
+ }
+ else if (oldSize > size)
+ {
+ this.fireIntervalRemoved(this, size, oldSize - 1);
+ }
}
/**
diff --git a/libjava/javax/swing/DefaultListSelectionModel.java b/libjava/javax/swing/DefaultListSelectionModel.java
index d5801c7dde0..ccae2804c3d 100644
--- a/libjava/javax/swing/DefaultListSelectionModel.java
+++ b/libjava/javax/swing/DefaultListSelectionModel.java
@@ -118,7 +118,7 @@ public class DefaultListSelectionModel implements Cloneable,
* @see #isLeadAnchorNotificationEnabled
* @see #setLeadAnchorNotificationEnabled
*/
- boolean leadAnchorNotificationEnabled = true;
+ protected boolean leadAnchorNotificationEnabled = true;
/**
@@ -520,6 +520,18 @@ public class DefaultListSelectionModel implements Cloneable,
*
* @param firstIndex The low index of the changed range
* @param lastIndex The high index of the changed range
+ */
+ protected void fireValueChanged(int firstIndex, int lastIndex)
+ {
+ fireValueChanged(firstIndex, lastIndex, getValueIsAdjusting());
+ }
+
+ /**
+ * Fires a {@link ListSelectionEvent} to all the listeners of type {@link
+ * ListSelectionListener} registered with this selection model.
+ *
+ * @param firstIndex The low index of the changed range
+ * @param lastIndex The high index of the changed range
* @param isAdjusting Whether this change is part of a seqence of adjustments
* made to the selection, such as during interactive scrolling
*/
@@ -588,4 +600,21 @@ public class DefaultListSelectionModel implements Cloneable,
{
return (ListSelectionListener[]) getListeners(ListSelectionListener.class);
}
+
+ /**
+ * Returns a clone of this object.
+ * <code>listenerList</code> don't gets duplicated.
+ *
+ * @return the cloned object
+ *
+ * @throws CloneNotSupportedException if an error occurs
+ */
+ public Object clone()
+ throws CloneNotSupportedException
+ {
+ DefaultListSelectionModel model =
+ (DefaultListSelectionModel) super.clone();
+ model.sel = (BitSet) sel.clone();
+ return model;
+ }
}
diff --git a/libjava/javax/swing/DefaultSingleSelectionModel.java b/libjava/javax/swing/DefaultSingleSelectionModel.java
index 0b1371ed9e1..63611f4a09a 100644
--- a/libjava/javax/swing/DefaultSingleSelectionModel.java
+++ b/libjava/javax/swing/DefaultSingleSelectionModel.java
@@ -47,23 +47,23 @@ import javax.swing.event.EventListenerList;
/**
* DefaultSingleSelectionModel
- * @author Andrew Selkirk
- * @version 1.0
+ *
+ * @author Andrew Selkirk
*/
public class DefaultSingleSelectionModel
implements SingleSelectionModel, Serializable
{
- static final long serialVersionUID = 3676229404753786004L;
+ private static final long serialVersionUID = 3676229404753786004L;
/**
* changeEvent
*/
- protected transient ChangeEvent changeEvent = new ChangeEvent (this);
+ protected transient ChangeEvent changeEvent = new ChangeEvent(this);
/**
* listenerList
*/
- protected EventListenerList listenerList= new EventListenerList ();
+ protected EventListenerList listenerList = new EventListenerList();
/**
* index
@@ -73,15 +73,16 @@ public class DefaultSingleSelectionModel
/**
* Constructor DefaultSingleSelectionModel
*/
- public DefaultSingleSelectionModel ()
+ public DefaultSingleSelectionModel()
{
+ // Do nothing.
}
/**
* getSelectedIndex
* @return int
*/
- public int getSelectedIndex ()
+ public int getSelectedIndex()
{
return index;
}
@@ -90,34 +91,28 @@ public class DefaultSingleSelectionModel
* setSelectedIndex
* @param index TODO
*/
- public void setSelectedIndex (int index)
+ public void setSelectedIndex(int index)
{
- // Set Data
this.index = index;
-
- // Notify Listeners
- fireStateChanged ();
+ fireStateChanged();
}
/**
* clearSelection
*/
- public void clearSelection ()
+ public void clearSelection()
{
- // Set Data
index = -1;
-
- // Notify Listeners
- fireStateChanged ();
+ fireStateChanged();
}
/**
* isSelected
* @return boolean
*/
- public boolean isSelected ()
+ public boolean isSelected()
{
- return (index != -1);
+ return index != -1;
}
/**
@@ -125,9 +120,9 @@ public class DefaultSingleSelectionModel
*
* @param listener the listener to add
*/
- public void addChangeListener (ChangeListener listener)
+ public void addChangeListener(ChangeListener listener)
{
- listenerList.add (ChangeListener.class, listener);
+ listenerList.add(ChangeListener.class, listener);
}
/**
@@ -135,30 +130,20 @@ public class DefaultSingleSelectionModel
*
* @param listener the listener to remove
*/
- public void removeChangeListener (ChangeListener listener)
+ public void removeChangeListener(ChangeListener listener)
{
- listenerList.remove (ChangeListener.class, listener);
+ listenerList.remove(ChangeListener.class, listener);
}
/**
* fireStateChanged
*/
- protected void fireStateChanged ()
+ protected void fireStateChanged()
{
- // Variables
- ChangeListener listener;
- ChangeListener[] listeners;
- int index;
-
- // Get Listeners
- listeners = getChangeListeners ();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = listeners [index];
- listener.stateChanged (changeEvent);
- }
+ ChangeListener[] listeners = getChangeListeners();
+
+ for (int i = 0; i < listeners.length; i++)
+ listeners[i].stateChanged(changeEvent);
}
/**
@@ -170,9 +155,9 @@ public class DefaultSingleSelectionModel
*
* @since 1.3
*/
- public EventListener[] getListeners (Class listenerClass)
+ public EventListener[] getListeners(Class listenerClass)
{
- return listenerList.getListeners (listenerClass);
+ return listenerList.getListeners(listenerClass);
}
/**
@@ -180,8 +165,8 @@ public class DefaultSingleSelectionModel
*
* @since 1.4
*/
- public ChangeListener[] getChangeListeners ()
+ public ChangeListener[] getChangeListeners()
{
- return (ChangeListener[]) getListeners (ChangeListener.class);
+ return (ChangeListener[]) getListeners(ChangeListener.class);
}
}
diff --git a/libjava/javax/swing/ImageIcon.java b/libjava/javax/swing/ImageIcon.java
index c0e8e0d3117..36bd088ff6b 100644
--- a/libjava/javax/swing/ImageIcon.java
+++ b/libjava/javax/swing/ImageIcon.java
@@ -1,4 +1,4 @@
-/* ImageIcon.java --
+/* ImageIcon.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ public class ImageIcon
public ImageIcon()
{
}
-
+
public ImageIcon(String file)
{
this(file, file);
@@ -98,12 +98,12 @@ public class ImageIcon
this.image = Toolkit.getDefaultToolkit().createImage(image.getSource());
this.description = description;
}
-
+
public ImageObserver getImageObserver()
{
return observer;
}
-
+
public void setImageObserver(ImageObserver newObserver)
{
observer = newObserver;
@@ -114,6 +114,11 @@ public class ImageIcon
return image;
}
+ public void setImage(Image image)
+ {
+ this.image = Toolkit.getDefaultToolkit().createImage(image.getSource());
+ }
+
public String getDescription()
{
return description;
diff --git a/libjava/javax/swing/InputMap.java b/libjava/javax/swing/InputMap.java
index 3f0bc3f47e6..53be5b1b1d7 100644
--- a/libjava/javax/swing/InputMap.java
+++ b/libjava/javax/swing/InputMap.java
@@ -49,7 +49,7 @@ import java.util.Set;
/**
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
* @author Michael Koch
*
* @since 1.3
@@ -59,31 +59,31 @@ public class InputMap
{
private static final long serialVersionUID = -5429059542008604257L;
- /**
- * inputMap
- */
- private Map inputMap = new HashMap();
+ /**
+ * inputMap
+ */
+ private Map inputMap = new HashMap();
- /**
- * parent
- */
+ /**
+ * parent
+ */
private InputMap parent;
- /**
+ /**
* Creates a new <code>InputMap</code> instance.
- */
+ */
public InputMap()
{
- // TODO
+ // TODO
}
- /**
+ /**
* Returns the binding for keystroke.
*
* @param key the key of the enty
*
* @return the binding associated with keystroke may be null
- */
+ */
public Object get(KeyStroke keystroke)
{
Object result = inputMap.get(keystroke);
@@ -93,121 +93,121 @@ public class InputMap
return result;
}
- /**
+ /**
* Puts a new entry into the <code>InputMap</code>.
* If actionMapKey is null an existing entry will be removed.
*
* @param keystroke the keystroke for the entry
* @param actionMapKey the action.
- */
+ */
public void put(KeyStroke keystroke, Object actionMapKey)
{
if (actionMapKey == null)
- inputMap.remove(keystroke);
+ inputMap.remove(keystroke);
else
- inputMap.put(keystroke, actionMapKey);
+ inputMap.put(keystroke, actionMapKey);
}
- /**
+ /**
* Remove an entry from the <code>InputMap</code>.
*
* @param key the key of the entry to remove
- */
+ */
public void remove(KeyStroke keystroke)
{
- inputMap.remove(keystroke);
+ inputMap.remove(keystroke);
}
- /**
+ /**
* Returns the parent of this <code>InputMap</code>.
*
* @return the parent, may be null.
- */
+ */
public InputMap getParent()
{
- return parent;
+ return parent;
}
- /**
+ /**
* Sets a parent for this <code>InputMap</code>.
*
* @param parentMap the new parent
- */
+ */
public void setParent(InputMap parentMap)
{
- parent = parentMap;
+ parent = parentMap;
}
- /**
+ /**
* Returns the number of entries in this <code>InputMap</code>.
*
* @return the number of entries
- */
+ */
public int size()
{
- return inputMap.size();
+ return inputMap.size();
}
- /**
+ /**
* Clears the <code>InputMap</code>.
- */
+ */
public void clear()
{
- inputMap.clear();
+ inputMap.clear();
}
- /**
+ /**
* Returns all keys of entries in this <code>InputMap</code>.
*
* @return an array of keys
- */
+ */
public KeyStroke[] keys()
{
KeyStroke[] array = new KeyStroke[size()];
return (KeyStroke[]) inputMap.keySet().toArray(array);
}
- /**
+ /**
* Returns all keys of entries in this <code>InputMap</code>
* and all its parents.
*
* @return an array of keys
- */
+ */
public KeyStroke[] allKeys()
{
Set set = new HashSet();
if (parent != null)
- set.addAll(Arrays.asList(parent.allKeys()));
+ set.addAll(Arrays.asList(parent.allKeys()));
set.addAll(inputMap.keySet());
KeyStroke[] array = new KeyStroke[size()];
return (KeyStroke[]) set.toArray(array);
}
- /**
- * writeObject
+ /**
+ * writeObject
*
* @param stream the stream to write to
*
* @exception IOException If an error occurs
- */
+ */
private void writeObject(ObjectOutputStream stream) throws IOException
{
- // TODO
+ // TODO
}
- /**
- * readObject
+ /**
+ * readObject
*
* @param stream the stream to read from
*
* @exception ClassNotFoundException If the serialized class cannot be found
* @exception IOException If an error occurs
- */
+ */
private void readObject(ObjectInputStream stream)
throws ClassNotFoundException, IOException
{
- // TODO
+ // TODO
}
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkArg.java b/libjava/javax/swing/InternalFrameFocusTraversalPolicy.java
index 0491856849c..0ac70144628 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkArg.java
+++ b/libjava/javax/swing/InternalFrameFocusTraversalPolicy.java
@@ -1,5 +1,5 @@
-/* GtkArg.java
- Copyright (C) 1999 Free Software Foundation, Inc.
+/* InternalFrameFocusTraversalPolicy.java --
+ Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -36,26 +36,20 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
-package gnu.java.awt.peer.gtk;
+package javax.swing;
-public class GtkArg
-{
- String name;
- Object value;
-
- public GtkArg (String name, Object value)
- {
- this.name = name;
- this.value = value;
- }
+import java.awt.Component;
+import java.awt.FocusTraversalPolicy;
- public String getName ()
- {
- return name;
- }
-
- public Object getValue ()
+/**
+ * @author Michael Koch
+ *
+ * @since 1.4
+ */
+public abstract class InternalFrameFocusTraversalPolicy extends FocusTraversalPolicy
+{
+ public Component getInitialComponent(JInternalFrame frame)
{
- return value;
+ return getDefaultComponent(frame);
}
}
diff --git a/libjava/javax/swing/JApplet.java b/libjava/javax/swing/JApplet.java
index 42d7426abcf..8446e27b1d9 100644
--- a/libjava/javax/swing/JApplet.java
+++ b/libjava/javax/swing/JApplet.java
@@ -1,5 +1,5 @@
/* JApplet.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,6 @@ import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.LayoutManager;
import java.awt.event.KeyEvent;
-import java.awt.event.WindowEvent;
import javax.accessibility.AccessibleContext;
@@ -55,38 +54,18 @@ public class JApplet extends Applet
{
private static final long serialVersionUID = 7269359214497372587L;
- public static final int HIDE_ON_CLOSE = 0;
- public static final int EXIT_ON_CLOSE = 1;
- public static final int DISPOSE_ON_CLOSE = 2;
- public static final int DO_NOTHING_ON_CLOSE = 3;
-
- private int close_action = EXIT_ON_CLOSE;
-
protected JRootPane rootPane;
protected boolean rootPaneCheckingEnabled;
public JApplet()
{
- frameInit();
- }
-
- public JApplet(String title)
- {
- frameInit();
- }
-
- protected void frameInit()
- {
super.setLayout(new BorderLayout(1, 1));
getRootPane(); // will do set/create
}
public Dimension getPreferredSize()
{
- Dimension d = super.getPreferredSize();
- System.out.println("JFrame.getPrefSize(): " + d + " , comp="
- + getComponentCount() + ", layout=" + getLayout());
- return d;
+ return super.getPreferredSize();
}
public void setLayout(LayoutManager manager)
@@ -111,7 +90,7 @@ public class JApplet extends Applet
return rootPane;
}
- public void setRootPane(JRootPane root)
+ protected void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
@@ -120,7 +99,7 @@ public class JApplet extends Applet
add(rootPane, BorderLayout.CENTER);
}
- public JRootPane createRootPane()
+ protected JRootPane createRootPane()
{
return new JRootPane();
}
@@ -155,11 +134,6 @@ public class JApplet extends Applet
return null;
}
- int getDefaultCloseOperation()
- {
- return close_action;
- }
-
public JMenuBar getJMenuBar()
{
return getRootPane().getJMenuBar();
@@ -179,56 +153,12 @@ public class JApplet extends Applet
{
super.processKeyEvent(e);
}
-
- protected void processWindowEvent(WindowEvent e)
- {
- // System.out.println("PROCESS_WIN_EV-1: " + e);
- // super.processWindowEvent(e);
- // System.out.println("PROCESS_WIN_EV-2: " + e);
- switch (e.getID())
- {
- case WindowEvent.WINDOW_CLOSING:
- {
- switch (close_action)
- {
- case EXIT_ON_CLOSE:
- {
- System.out.println("user requested exit on close");
- System.exit(1);
- break;
- }
- case DISPOSE_ON_CLOSE:
- {
- System.out.println("user requested dispose on close");
- //dispose();
- break;
- }
- case HIDE_ON_CLOSE:
- case DO_NOTHING_ON_CLOSE:
- break;
- }
- break;
- }
- case WindowEvent.WINDOW_CLOSED:
- case WindowEvent.WINDOW_OPENED:
- case WindowEvent.WINDOW_ICONIFIED:
- case WindowEvent.WINDOW_DEICONIFIED:
- case WindowEvent.WINDOW_ACTIVATED:
- case WindowEvent.WINDOW_DEACTIVATED:
- break;
- }
- }
-
+
public void remove(Component comp)
{
getContentPane().remove(comp);
}
- void setDefaultCloseOperation(int operation)
- {
- close_action = operation;
- }
-
protected boolean isRootPaneCheckingEnabled()
{
return rootPaneCheckingEnabled;
diff --git a/libjava/javax/swing/JButton.java b/libjava/javax/swing/JButton.java
index 13e3d571634..dea37811a7f 100644
--- a/libjava/javax/swing/JButton.java
+++ b/libjava/javax/swing/JButton.java
@@ -53,90 +53,90 @@ public class JButton extends AbstractButton
private static final long serialVersionUID = -1907255238954382202L;
boolean def;
boolean is_def;
-
- public JButton()
- {
- this(null, null);
- }
-
- public JButton(Action a)
- {
- this();
- setAction(a);
- }
-
- public JButton(Icon icon)
- {
- this(null, icon);
- }
-
- public JButton(String text)
- {
- this(text, null);
- }
-
- public JButton(String text, Icon icon)
- {
- super(text, icon);
- }
-
- public Object[] getSelectedObjects()
- {
- return null;
- }
-
- protected void configurePropertiesFromAction(Action a)
- {
- //Factory method which sets the AbstractButton's properties according to values from the Action instance.
- super.configurePropertiesFromAction(a);
- }
-
- public AccessibleContext getAccessibleContext()
- {
- //Gets the AccessibleContext associated with this JButton.
- return null;
- }
-
- public String getUIClassID()
- {
+
+ public JButton()
+ {
+ this(null, null);
+ }
+
+ public JButton(Action a)
+ {
+ this();
+ setAction(a);
+ }
+
+ public JButton(Icon icon)
+ {
+ this(null, icon);
+ }
+
+ public JButton(String text)
+ {
+ this(text, null);
+ }
+
+ public JButton(String text, Icon icon)
+ {
+ super(text, icon);
+ }
+
+ public Object[] getSelectedObjects()
+ {
+ return null;
+ }
+
+ protected void configurePropertiesFromAction(Action a)
+ {
+ //Factory method which sets the AbstractButton's properties according to values from the Action instance.
+ super.configurePropertiesFromAction(a);
+ }
+
+ public AccessibleContext getAccessibleContext()
+ {
+ //Gets the AccessibleContext associated with this JButton.
+ return null;
+ }
+
+ public String getUIClassID()
+ {
//Returns a string that specifies the name of the L&F class that renders this component.
- return "ButtonUI";
- }
-
- public boolean isDefaultButton()
- {
- //Returns whether or not this button is the default button on the RootPane.
- return is_def;
- }
-
- public boolean isDefaultCapable()
- {
- //Returns whether or not this button is capable of being the default button on the RootPane.
- return def;
- }
-
- protected String paramString()
- {
- return "JButton";
- }
-
+ return "ButtonUI";
+ }
+
+ public boolean isDefaultButton()
+ {
+ //Returns whether or not this button is the default button on the RootPane.
+ return is_def;
+ }
+
+ public boolean isDefaultCapable()
+ {
+ //Returns whether or not this button is capable of being the default button on the RootPane.
+ return def;
+ }
+
+ protected String paramString()
+ {
+ return "JButton";
+ }
+
/**
* Overrides JComponent.removeNotify to check if this button is currently
* set as the default button on the RootPane, and if so, sets the RootPane's
* default button to null to ensure the RootPane doesn't hold onto an invalid
* button reference.
*/
- public void removeNotify()
- {
- }
-
- public void setDefaultCapable(boolean defaultCapable)
+ public void removeNotify()
+ {
+ }
+
+ public void setDefaultCapable(boolean defaultCapable)
{
def = defaultCapable;
}
-
- public void updateUI()
- {
+
+ public void updateUI()
+ {
setUI((ButtonUI) UIManager.getUI(this));
- }
+ }
}
diff --git a/libjava/javax/swing/JCheckBox.java b/libjava/javax/swing/JCheckBox.java
index 36cd0715c70..a8506e5f822 100644
--- a/libjava/javax/swing/JCheckBox.java
+++ b/libjava/javax/swing/JCheckBox.java
@@ -60,20 +60,20 @@ public class JCheckBox extends JToggleButton
contentAreaFilled = false;
}
- public JCheckBox()
- {
+ public JCheckBox()
+ {
super();
init();
- }
+ }
public JCheckBox(Action action)
- {
+ {
super(action);
init();
- }
+ }
- public JCheckBox(Icon icon)
- {
+ public JCheckBox(Icon icon)
+ {
super(icon);
init();
}
@@ -82,10 +82,10 @@ public class JCheckBox extends JToggleButton
{
super(icon, selected);
init();
- }
+ }
- public JCheckBox(String text)
- {
+ public JCheckBox(String text)
+ {
super(text);
init();
}
@@ -94,41 +94,41 @@ public class JCheckBox extends JToggleButton
{
super(text, selected);
init();
- }
+ }
- public JCheckBox(String text, Icon icon)
- {
- super(text, icon);
+ public JCheckBox(String text, Icon icon)
+ {
+ super(text, icon);
init();
- }
+ }
public JCheckBox(String text, Icon icon, boolean selected)
{
super(text, icon, selected);
init();
}
-
+
/**
* Gets the AccessibleContext associated with this JCheckBox.
*/
- public AccessibleContext getAccessibleContext()
- {
- return null;
- }
+ public AccessibleContext getAccessibleContext()
+ {
+ return null;
+ }
/**
* Returns a string that specifies the name of the Look and Feel class
* that renders this component.
*/
- public String getUIClassID()
- {
- return "CheckBoxUI";
- }
+ public String getUIClassID()
+ {
+ return "CheckBoxUI";
+ }
- protected String paramString()
- {
- return "JCheckBox";
- }
+ protected String paramString()
+ {
+ return "JCheckBox";
+ }
public boolean isBorderPaintedFlat()
{
diff --git a/libjava/javax/swing/JCheckBoxMenuItem.java b/libjava/javax/swing/JCheckBoxMenuItem.java
index 76377b618fc..090c3c2044a 100644
--- a/libjava/javax/swing/JCheckBoxMenuItem.java
+++ b/libjava/javax/swing/JCheckBoxMenuItem.java
@@ -206,7 +206,7 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
* This method overrides JComponent.requestFocus with an empty
* implementation, since JCheckBoxMenuItems should not
* receve focus in general.
- */
+ */
public void requestFocus()
{
// Should do nothing here
diff --git a/libjava/javax/swing/JComboBox.java b/libjava/javax/swing/JComboBox.java
index 86f20b099eb..4e2a88110fc 100644
--- a/libjava/javax/swing/JComboBox.java
+++ b/libjava/javax/swing/JComboBox.java
@@ -1,5 +1,5 @@
/* JComboBox.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -60,7 +60,6 @@ import javax.swing.event.ListDataListener;
import javax.swing.event.PopupMenuListener;
import javax.swing.plaf.ComboBoxUI;
-
/**
* JComboBox. JComboBox is a container, that keeps track of elements added to
* it by the user. JComboBox allows user to select any item in its list and
@@ -69,12 +68,14 @@ import javax.swing.plaf.ComboBoxUI;
*
* @author Andrew Selkirk
* @author Olga Rodimina
+ * @author Robert Schuster
*/
public class JComboBox extends JComponent implements ItemSelectable,
ListDataListener,
ActionListener,
Accessible
{
+
private static final long serialVersionUID = 5654585963292734470L;
/**
@@ -91,43 +92,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
* Maximum number of rows that should be visible by default in the
* JComboBox's popup
*/
- public static final int DEFAULT_MAXIMUM_ROW_COUNT = 8;
-
- /**
- * Fired in a PropertyChangeEvent when the 'editable' property changes.
- */
- public static final String EDITABLE_CHANGED_PROPERTY = "editable";
-
- /**
- * Fired in a PropertyChangeEvent when the 'maximumRowCount' property
- * changes.
- */
- public static final String MAXIMUM_ROW_COUNT_CHANGED_PROPERTY = "maximumRowCount";
-
- /**
- * Fired in a PropertyChangeEvent when the 'enabled' property changes.
- */
- public static final String ENABLED_CHANGED_PROPERTY = "enabled";
-
- /**
- * Fired in a PropertyChangeEvent when the 'renderer' property changes.
- */
- public static final String RENDERER_CHANGED_PROPERTY = "renderer";
-
- /**
- * Fired in a PropertyChangeEvent when the 'editor' property changes.
- */
- public static final String EDITOR_CHANGED_PROPERTY = "editor";
-
- /**
- * Fired in a PropertyChangeEvent when the 'dataModel' property changes.
- */
- public static final String MODEL_CHANGED_PROPERTY = "dataModel";
-
- /**
- * name for the UI delegate for this combo box.
- */
- private static final String uiClassID = "ComboBoxUI";
+ private static final int DEFAULT_MAXIMUM_ROW_COUNT = 8;
/**
* dataModel used by JComboBox to keep track of its list data and currently
@@ -143,7 +108,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
protected ListCellRenderer renderer;
/**
- * editor that is responsible for editting an object in a combo box list
+ * Editor that is responsible for editing an object in a combo box list.
*/
protected ComboBoxEditor editor;
@@ -191,8 +156,9 @@ public class JComboBox extends JComponent implements ItemSelectable,
private Object prototypeDisplayValue;
/**
- * Constructs JComboBox object with specified data model for it. The first
- * item in the specified data model is selected by default.
+ * Constructs JComboBox object with specified data model for it.
+ * <p>Note that the JComboBox will not change the value that
+ * is preselected by your ComboBoxModel implementation.</p>
*
* @param model Data model that will be used by this JComboBox to keep track
* of its list of items.
@@ -205,10 +171,6 @@ public class JComboBox extends JComponent implements ItemSelectable,
setModel(model);
setActionCommand("comboBoxChanged");
- // by default set selected item to the first element in the combo box
- if (getItemCount() != 0)
- setSelectedItem(getItemAt(0));
-
lightWeightPopupEnabled = true;
isEditable = false;
@@ -300,7 +262,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public String getUIClassID()
{
- return uiClassID;
+ return "ComboBoxUI";
}
/**
@@ -322,21 +284,29 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setModel(ComboBoxModel newDataModel)
{
- if (this.dataModel == newDataModel)
- return;
- if (this.dataModel != null)
- // remove all listeners currently registered with the model.
- dataModel.removeListDataListener(this);
+ // dataModel is null if it this method is called from inside the constructors.
+ if(dataModel != null) {
+ // Prevents unneccessary updates.
+ if (dataModel == newDataModel)
+ return;
- ComboBoxModel oldDataModel = this.dataModel;
- this.dataModel = newDataModel;
+ // Removes itself (as DataListener) from the to-be-replaced model.
+ dataModel.removeListDataListener(this);
+ }
+
+ /* Adds itself as a DataListener to the new model.
+ * It is intentioned that this operation will fail with a NullPointerException if the
+ * caller delivered a null argument.
+ */
+ newDataModel.addListDataListener(this);
- if (this.dataModel != null)
- // register all listeners with the new data model
- dataModel.addListDataListener(this);
+ // Stores old data model for event notification.
+ ComboBoxModel oldDataModel = dataModel;
+ dataModel = newDataModel;
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldDataModel, this.dataModel);
+ // Notifies the listeners of the model change.
+ firePropertyChange("model", oldDataModel, dataModel);
}
/**
@@ -351,8 +321,8 @@ public class JComboBox extends JComponent implements ItemSelectable,
/**
* This method sets JComboBox's popup to be either lightweight or
- * heavyweight. If 'enabled' is true then lightweight popup is used and
- * heavyweight otherwise. By default lightweight popup is used to display
+ * heavyweight. If 'enabled' is true then lightweight popup is used and
+ * heavyweight otherwise. By default lightweight popup is used to display
* this JComboBox's elements.
*
* @param enabled indicates if lightweight popup or heavyweight popup should
@@ -360,7 +330,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setLightWeightPopupEnabled(boolean enabled)
{
- this.lightWeightPopupEnabled = enabled;
+ lightWeightPopupEnabled = enabled;
}
/**
@@ -388,10 +358,10 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setEditable(boolean editable)
{
- if (this.isEditable != editable)
+ if (isEditable != editable)
{
- this.isEditable = editable;
- firePropertyChange(EDITABLE_CHANGED_PROPERTY, ! isEditable, isEditable);
+ isEditable = editable;
+ firePropertyChange("editable", ! isEditable, isEditable);
}
}
@@ -407,10 +377,10 @@ public class JComboBox extends JComponent implements ItemSelectable,
{
if (maximumRowCount != rowCount)
{
- int oldMaximumRowCount = this.maximumRowCount;
- this.maximumRowCount = rowCount;
- firePropertyChange(MAXIMUM_ROW_COUNT_CHANGED_PROPERTY,
- oldMaximumRowCount, this.maximumRowCount);
+ int oldMaximumRowCount = maximumRowCount;
+ maximumRowCount = rowCount;
+ firePropertyChange("maximumRowCount",
+ oldMaximumRowCount, maximumRowCount);
}
}
@@ -437,12 +407,12 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setRenderer(ListCellRenderer aRenderer)
{
- if (this.renderer != aRenderer)
+ if (renderer != aRenderer)
{
- ListCellRenderer oldRenderer = this.renderer;
- this.renderer = aRenderer;
- firePropertyChange(RENDERER_CHANGED_PROPERTY, oldRenderer,
- this.renderer);
+ ListCellRenderer oldRenderer = renderer;
+ renderer = aRenderer;
+ firePropertyChange("renderer", oldRenderer,
+ renderer);
}
}
@@ -477,11 +447,11 @@ public class JComboBox extends JComponent implements ItemSelectable,
if (editor != null)
editor.addActionListener(this);
- firePropertyChange(EDITOR_CHANGED_PROPERTY, oldEditor, editor);
+ firePropertyChange("editor", oldEditor, editor);
}
/**
- * Returns editor component that is responsible for displaying/editting
+ * Returns editor component that is responsible for displaying/editing
* selected item in the combo box.
*
* @return ComboBoxEditor
@@ -503,45 +473,76 @@ public class JComboBox extends JComponent implements ItemSelectable,
/**
* Returns currently selected item in the combo box.
+ * The result may be <code>null</code> to indicate that nothing is
+ * currently selected.
*
* @return element that is currently selected in this combo box.
*/
public Object getSelectedItem()
{
- Object item = dataModel.getSelectedItem();
-
- if (item == null && getItemCount() != 0)
- item = getItemAt(0);
-
- return item;
+ return dataModel.getSelectedItem();
}
/**
- * Forces JComboBox to select component located in the given index in the
+ * Forces JComboBox to select component located in the given index in the
* combo box.
+ * <p>If the index is below -1 or exceeds the upper bound an
+ * <code>IllegalArgumentException</code> is thrown.<p/>
+ * <p>If the index is -1 then no item gets selected.</p>
*
* @param index index specifying location of the component that should be
* selected.
*/
public void setSelectedIndex(int index)
{
- // FIXME: if index == -1 then nothing should be selected
- setSelectedItem(dataModel.getElementAt(index));
+ if(index < -1 || index >= dataModel.getSize()) {
+ // Fails because index is out of bounds.
+ throw new IllegalArgumentException("illegal index: " + index);
+ } else {
+ /* Selects the item at the given index or clears the selection if the
+ * index value is -1.
+ */
+ setSelectedItem((index == -1) ? null : dataModel.getElementAt(index));
+ }
}
/**
* Returns index of the item that is currently selected in the combo box.
* If no item is currently selected, then -1 is returned.
+ *
+ * <p>Note: For performance reasons you should minimize invocation of this
+ * method. If the data model is not an instance of
+ * <code>DefaultComboBoxModel</code> the complexity is O(n) where
+ * n is the number of elements in the combo box.</p>
*
- * @return int index specifying location of the currently selected item in
+ * @return int Index specifying location of the currently selected item in
* the combo box or -1 if nothing is selected in the combo box.
*/
public int getSelectedIndex()
{
Object selectedItem = getSelectedItem();
- if (selectedItem != null && (dataModel instanceof DefaultComboBoxModel))
- return ((DefaultComboBoxModel) dataModel).getIndexOf(selectedItem);
+
+ if (selectedItem != null) {
+
+ if(dataModel instanceof DefaultComboBoxModel) {
+ // Uses special method of DefaultComboBoxModel to retrieve the index.
+ return ((DefaultComboBoxModel) dataModel).getIndexOf(selectedItem);
+ } else {
+ // Iterates over all items to retrieve the index.
+ int size = dataModel.getSize();
+
+ for(int i=0; i < size; i++) {
+ Object o = dataModel.getElementAt(i);
+
+ // XXX: Is special handling of ComparableS neccessary?
+ if((selectedItem != null) ? selectedItem.equals(o) : o == null) {
+ return i;
+ }
+ }
+ }
+ }
+ // returns that no item is currently selected
return -1;
}
@@ -550,60 +551,104 @@ public class JComboBox extends JComponent implements ItemSelectable,
return prototypeDisplayValue;
}
- public void setPrototypeDisplayValue(Object prototypeDisplayValue)
+ public void setPrototypeDisplayValue(Object newPrototypeDisplayValue)
{
- this.prototypeDisplayValue = prototypeDisplayValue;
+ prototypeDisplayValue = newPrototypeDisplayValue;
}
/**
* This method adds given element to this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param element element to add
*/
public void addItem(Object element)
{
- ((MutableComboBoxModel) dataModel).addElement(element);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).addElement(element);
+ } else {
+ throw new RuntimeException("Unable to add the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
- * Inserts given element at the specified index to this JComboBox
+ * Inserts given element at the specified index to this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param element element to insert
* @param index position where to insert the element
*/
public void insertItemAt(Object element, int index)
{
- ((MutableComboBoxModel) dataModel).insertElementAt(element, index);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).insertElementAt(element, index);
+ } else {
+ throw new RuntimeException("Unable to insert the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
* This method removes given element from this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param element element to remove
*/
public void removeItem(Object element)
{
- ((MutableComboBoxModel) dataModel).removeElement(element);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).removeElement(element);
+ } else {
+ throw new RuntimeException("Unable to remove the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
* This method remove element location in the specified index in the
* JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param index index specifying position of the element to remove
*/
public void removeItemAt(int index)
{
- ((MutableComboBoxModel) dataModel).removeElementAt(index);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).removeElementAt(index);
+ } else {
+ throw new RuntimeException("Unable to remove the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
* This method removes all elements from this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
+ *
*/
public void removeAllItems()
{
- if (dataModel instanceof DefaultComboBoxModel)
- ((DefaultComboBoxModel) dataModel).removeAllElements();
+ if (dataModel instanceof DefaultComboBoxModel) {
+ // Uses special method if we have a DefaultComboBoxModel.
+ ((DefaultComboBoxModel) dataModel).removeAllElements();
+ } else if(dataModel instanceof MutableComboBoxModel){
+ // Iterates over all items and removes each.
+ MutableComboBoxModel mcbm = (MutableComboBoxModel) dataModel;
+
+ /* We intentionally remove the items backwards to support
+ * models which shift their content to the beginning (e.g.
+ * linked lists)
+ */
+ for(int i=mcbm.getSize()-1; i >= 0; i--) {
+ mcbm.removeElementAt(i);
+ }
+
+ } else {
+ throw new RuntimeException("Unable to remove the items because the data model it is not an instance of MutableComboBoxModel.");
+ }
+
}
/**
@@ -801,8 +846,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public Object[] getSelectedObjects()
{
- Object selectedObject = getSelectedItem();
- return new Object[] { selectedObject };
+ return new Object[] { getSelectedItem() };
}
/**
@@ -887,8 +931,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
if (enabled != oldEnabled)
{
super.setEnabled(enabled);
- firePropertyChange(ENABLED_CHANGED_PROPERTY, oldEnabled,
- (boolean) enabled);
+ firePropertyChange("enabled", oldEnabled, enabled);
}
}
@@ -951,7 +994,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public int getItemCount()
{
- return ((DefaultComboBoxModel) dataModel).getSize();
+ return dataModel.getSize();
}
/**
@@ -963,7 +1006,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public Object getItemAt(int index)
{
- return ((MutableComboBoxModel) dataModel).getElementAt(index);
+ return dataModel.getElementAt(index);
}
/**
diff --git a/libjava/javax/swing/JComponent.java b/libjava/javax/swing/JComponent.java
index c22c2b2e702..ad7603cf76a 100644
--- a/libjava/javax/swing/JComponent.java
+++ b/libjava/javax/swing/JComponent.java
@@ -1,5 +1,5 @@
/* JComponent.java -- Every component in swing inherits from this class.
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,6 +50,7 @@ import java.awt.Image;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
+import java.awt.dnd.DropTarget;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerEvent;
@@ -72,6 +73,7 @@ import java.util.Locale;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleKeyBinding;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.swing.border.Border;
@@ -133,6 +135,9 @@ public abstract class JComponent extends Container implements Serializable
public String getAccessibleDescription() { return null; }
public AccessibleRole getAccessibleRole() { return null; }
protected String getBorderTitle(Border value0) { return null; }
+ public String getToolTipText() { return null; }
+ public String getTitledBorderText() { return null; }
+ public AccessibleKeyBinding getAccessibleKeyBinding() { return null; }
}
/**
@@ -323,6 +328,8 @@ public abstract class JComponent extends Container implements Serializable
private InputMap inputMap_whenAncestorOfFocused;
private InputMap inputMap_whenInFocusedWindow;
private ActionMap actionMap;
+ /** @since 1.3 */
+ private boolean verifyInputWhenFocusTarget;
private InputVerifier inputVerifier;
private TransferHandler transferHandler;
@@ -389,6 +396,7 @@ public abstract class JComponent extends Container implements Serializable
{
super();
super.setLayout(new FlowLayout());
+ setDropTarget(new DropTarget());
defaultLocale = Locale.getDefault();
debugGraphicsOptions = DebugGraphics.NONE_OPTION;
}
@@ -421,7 +429,7 @@ public abstract class JComponent extends Container implements Serializable
* @see #getClientProperties
* @see #putClientProperty
*/
- public Object getClientProperty(Object key)
+ public final Object getClientProperty(Object key)
{
return getClientProperties().get(key);
}
@@ -438,7 +446,7 @@ public abstract class JComponent extends Container implements Serializable
* @see #getClientProperties
* @see #getClientProperty
*/
- public void putClientProperty(Object key, Object value)
+ public final void putClientProperty(Object key, Object value)
{
getClientProperties().put(key, value);
}
@@ -1295,7 +1303,7 @@ public abstract class JComponent extends Container implements Serializable
}
/**
- * Return <code>true<code> if you wish this component to manage its own
+ * Return <code>true</code> if you wish this component to manage its own
* focus. In particular: if you want this component to be sent
* <code>TAB</code> and <code>SHIFT+TAB</code> key events, and to not
* have its children considered as focus transfer targets. If
@@ -1533,7 +1541,23 @@ public abstract class JComponent extends Container implements Serializable
*/
protected String paramString()
{
- return "JComponent";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",alignmentX=").append(getAlignmentX());
+ sb.append(",alignmentY=").append(getAlignmentY());
+ sb.append(",border=");
+ if (getBorder() != null)
+ sb.append(getBorder());
+ sb.append(",maximumSize=");
+ if (getMaximumSize() != null)
+ sb.append(getMaximumSize());
+ sb.append(",minimumSize=");
+ if (getMinimumSize() != null)
+ sb.append(getMinimumSize());
+ sb.append(",preferredSize=");
+ if (getPreferredSize() != null)
+ sb.append(getPreferredSize());
+ return sb.toString();
}
/**
@@ -2092,9 +2116,14 @@ public abstract class JComponent extends Container implements Serializable
* @see ComponentUI#getTransferHandler
*/
- void setTransferHandler (TransferHandler newHandler)
+ public void setTransferHandler(TransferHandler newHandler)
{
+ if (transferHandler == newHandler)
+ return;
+
+ TransferHandler oldHandler = transferHandler;
transferHandler = newHandler;
+ firePropertyChange("transferHandler", oldHandler, newHandler);
}
/**
@@ -2225,4 +2254,26 @@ public abstract class JComponent extends Container implements Serializable
inputVerifier = verifier;
firePropertyChange("inputVerifier", oldVerifier, verifier);
}
+
+ /**
+ * @since 1.3
+ */
+ public boolean getVerifyInputWhenFocusTarget()
+ {
+ return verifyInputWhenFocusTarget;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
+ {
+ if (this.verifyInputWhenFocusTarget == verifyInputWhenFocusTarget)
+ return;
+
+ this.verifyInputWhenFocusTarget = verifyInputWhenFocusTarget;
+ firePropertyChange("verifyInputWhenFocusTarget",
+ ! verifyInputWhenFocusTarget,
+ verifyInputWhenFocusTarget);
+ }
}
diff --git a/libjava/javax/swing/JEditorPane.java b/libjava/javax/swing/JEditorPane.java
index 3b66c2bcb4e..8361b20371b 100644
--- a/libjava/javax/swing/JEditorPane.java
+++ b/libjava/javax/swing/JEditorPane.java
@@ -1,5 +1,5 @@
/* JEditorPane.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,6 +47,7 @@ import java.net.URL;
import javax.accessibility.AccessibleContext;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
+import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultEditorKit;
import javax.swing.text.EditorKit;
import javax.swing.text.JTextComponent;
@@ -56,29 +57,31 @@ public class JEditorPane extends JTextComponent
{
private static final long serialVersionUID = 3140472492599046285L;
- URL page_url;
- EditorKit kit;
- String ctype = "text/plain";
+ private URL page;
+ private EditorKit editorKit;
+
boolean focus_root;
boolean manages_focus;
public JEditorPane()
{
+ setEditorKit(createDefaultEditorKit());
}
public JEditorPane(String url) throws IOException
{
- setPage(url);
+ this(new URL(url));
}
public JEditorPane(String type, String text)
{
- ctype = text;
+ setEditorKit(createEditorKitForContentType(type));
setText(text);
}
public JEditorPane(URL url) throws IOException
{
+ this();
setPage(url);
}
@@ -110,14 +113,14 @@ public class JEditorPane extends JTextComponent
return null;
}
- public String getContentType()
+ public final String getContentType()
{
- return ctype;
+ return getEditorKit().getContentType();
}
public EditorKit getEditorKit()
{
- return kit;
+ return editorKit;
}
public static String getEditorKitClassNameForContentType(String type)
@@ -127,7 +130,7 @@ public class JEditorPane extends JTextComponent
public EditorKit getEditorKitForContentType(String type)
{
- return kit;
+ return editorKit;
}
/**
@@ -150,7 +153,7 @@ public class JEditorPane extends JTextComponent
public URL getPage()
{
- return page_url;
+ return page;
}
protected InputStream getStream(URL page)
@@ -216,7 +219,7 @@ public class JEditorPane extends JTextComponent
}
/**
- * Establishes the default bindings of type to classname.
+ * Establishes the default bindings of type to classname.
*/
public static void registerEditorKitForContentType(String type,
String classname,
@@ -240,24 +243,43 @@ public class JEditorPane extends JTextComponent
{
}
- public void setContentType(String type)
- {
- ctype = type;
- invalidate();
- repaint();
- }
-
- public void setEditorKit(EditorKit kit)
- {
- this.kit = kit;
+ public final void setContentType(String type)
+ {
+ if (editorKit != null
+ && editorKit.getContentType().equals(type))
+ return;
+
+ EditorKit kit = getEditorKitForContentType(type);
+
+ if (kit != null)
+ setEditorKit(kit);
+ }
+
+ public void setEditorKit(EditorKit newValue)
+ {
+ if (editorKit == newValue)
+ return;
+
+ if (editorKit != null)
+ editorKit.deinstall(this);
+
+ EditorKit oldValue = editorKit;
+ editorKit = newValue;
+
+ if (editorKit != null)
+ {
+ editorKit.install(this);
+ setDocument(editorKit.createDefaultDocument());
+ }
+
+ firePropertyChange("editorKit", oldValue, newValue);
invalidate();
repaint();
}
public void setEditorKitForContentType(String type, EditorKit k)
{
- ctype = type;
- setEditorKit(k);
+ // FIXME: editorKitCache.put(type, kit);
}
/**
@@ -265,6 +287,7 @@ public class JEditorPane extends JTextComponent
*/
public void setPage(String url) throws IOException
{
+ setPage(new URL(url));
}
/**
@@ -272,6 +295,18 @@ public class JEditorPane extends JTextComponent
*/
public void setPage(URL page) throws IOException
{
+ if (page == null)
+ throw new IOException("invalid url");
+
+ try
+ {
+ this.page = page;
+ getEditorKit().read(page.openStream(), getDocument(), 0);
+ }
+ catch (BadLocationException e)
+ {
+ // Ignored. '0' is always a valid offset.
+ }
}
public void setText(String t)
diff --git a/libjava/javax/swing/JFileChooser.java b/libjava/javax/swing/JFileChooser.java
index f653c708bd9..9b937178901 100644
--- a/libjava/javax/swing/JFileChooser.java
+++ b/libjava/javax/swing/JFileChooser.java
@@ -522,7 +522,7 @@ public class JFileChooser extends JComponent implements Accessible {
* @returns int
*/
public int showOpenDialog(Component parent) {
- return 0; // TODO
+ return CANCEL_OPTION; // TODO
} // showOpenDialog()
/**
@@ -531,7 +531,7 @@ public class JFileChooser extends JComponent implements Accessible {
* @returns int
*/
public int showSaveDialog(Component parent) {
- return 0; // TODO
+ return CANCEL_OPTION; // TODO
} // showSaveDialog()
/**
@@ -541,7 +541,7 @@ public class JFileChooser extends JComponent implements Accessible {
* @returns int
*/
public int showDialog(Component parent, String approveButtonText) {
- return 0; // TODO
+ return CANCEL_OPTION; // TODO
} // showDialog()
/**
diff --git a/libjava/javax/swing/JFormattedTextField.java b/libjava/javax/swing/JFormattedTextField.java
index eaf53555ba1..f544aec117f 100644
--- a/libjava/javax/swing/JFormattedTextField.java
+++ b/libjava/javax/swing/JFormattedTextField.java
@@ -59,6 +59,8 @@ public class JFormattedTextField extends JTextField
{
private static final long serialVersionUID = -5193212041738979680L;
+ private JFormattedTextField textField;
+
public AbstractFormatter ()
{
//Do nothing here.
@@ -72,7 +74,7 @@ public class JFormattedTextField extends JTextField
protected Action[] getActions ()
{
- throw new InternalError ("not implemented");
+ return textField.getActions();
}
protected DocumentFilter getDocumentFilter ()
@@ -82,32 +84,35 @@ public class JFormattedTextField extends JTextField
protected JFormattedTextField getFormattedTextField ()
{
- throw new InternalError ("not implemented");
+ return textField;
}
protected NavigationFilter getNavigationFilter ()
{
- throw new InternalError ("not implemented");
+ return textField.getNavigationFilter();
}
- public void install (JFormattedTextField ftf)
+ public void install(JFormattedTextField textField)
{
- throw new InternalError ("not implemented");
+ if (this.textField != null)
+ uninstall();
+
+ this.textField = textField;
}
public void uninstall ()
{
- throw new InternalError ("not implemented");
+ this.textField = null;
}
protected void invalidEdit ()
{
- throw new InternalError ("not implemented");
+ textField.invalidEdit();
}
protected void setEditValid (boolean valid)
{
- throw new InternalError ("not implemented");
+ textField.editValid = valid;
}
public abstract Object stringToValue (String text)
@@ -127,16 +132,34 @@ public class JFormattedTextField extends JTextField
public abstract AbstractFormatter getFormatter (JFormattedTextField tf);
}
+ static class FormatterFactoryWrapper extends AbstractFormatterFactory
+ {
+ AbstractFormatter formatter;
+
+ public FormatterFactoryWrapper(AbstractFormatter formatter)
+ {
+ this.formatter = formatter;
+ }
+
+ public AbstractFormatter getFormatter(JFormattedTextField tf)
+ {
+ return formatter;
+ }
+ }
+
public static final int COMMIT = 0;
public static final int COMMIT_OR_REVERT = 1;
public static final int REVERT = 2;
public static final int PERSIST = 3;
private Object value;
+ private int focusLostBehavior = COMMIT_OR_REVERT;
+ private AbstractFormatterFactory formatterFactory;
+ private boolean editValid = true;
public JFormattedTextField ()
{
- this((AbstractFormatterFactory) null);
+ this((AbstractFormatterFactory) null, null);
}
public JFormattedTextField (Format format)
@@ -146,7 +169,7 @@ public class JFormattedTextField extends JTextField
public JFormattedTextField (AbstractFormatter formatter)
{
- throw new InternalError ("not implemented");
+ this(new FormatterFactoryWrapper(formatter), null);
}
public JFormattedTextField (AbstractFormatterFactory factory)
@@ -156,7 +179,8 @@ public class JFormattedTextField extends JTextField
public JFormattedTextField (AbstractFormatterFactory factory, Object value)
{
- throw new InternalError ("not implemented");
+ this.formatterFactory = factory;
+ this.value = value;
}
public JFormattedTextField (Object value)
@@ -175,19 +199,22 @@ public class JFormattedTextField extends JTextField
throw new InternalError ("not implemented");
}
- public int getFocusLostBehaviour ()
+ public int getFocusLostBehavior()
{
- throw new InternalError ("not implemented");
+ return focusLostBehavior;
}
public AbstractFormatter getFormatter ()
{
- throw new InternalError ("not implemented");
+ if (formatterFactory == null)
+ return null;
+
+ return formatterFactory.getFormatter(this);
}
public AbstractFormatterFactory getFormatterFactory ()
{
- throw new InternalError ("not implemented");
+ return formatterFactory;
}
public String getUIClassID ()
@@ -202,12 +229,12 @@ public class JFormattedTextField extends JTextField
protected void invalidEdit ()
{
- throw new InternalError ("not implemented");
+ UIManager.getLookAndFeel().provideErrorFeedback(this);
}
public boolean isEditValid ()
{
- throw new InternalError ("not implemented");
+ return editValid;
}
protected void processFocusEvent (FocusEvent evt)
@@ -215,34 +242,58 @@ public class JFormattedTextField extends JTextField
throw new InternalError ("not implemented");
}
- public void setDocument(Document newdoc)
+ public void setDocument(Document newDocument)
{
- Document document = getDocument();
+ Document oldDocument = getDocument();
- if (document == newdoc)
+ if (oldDocument == newDocument)
return;
- setDocument(newdoc);
- firePropertyChange("document", document, newdoc);
+ super.setDocument(newDocument);
}
- public void setLostFocusBehavior (int behavior)
+ public void setFocusLostBehavior(int behavior)
{
- throw new InternalError ("not implemented");
+ if (behavior != COMMIT
+ && behavior != COMMIT_OR_REVERT
+ && behavior != PERSIST
+ && behavior != REVERT)
+ throw new IllegalArgumentException("invalid behavior");
+
+ this.focusLostBehavior = behavior;
}
protected void setFormatter (AbstractFormatter formatter)
{
- throw new InternalError ("not implemented");
+ AbstractFormatter oldFormatter = null;
+
+ if (formatterFactory != null)
+ oldFormatter = formatterFactory.getFormatter(this);
+
+ if (oldFormatter == formatter)
+ return;
+
+ setFormatterFactory(new FormatterFactoryWrapper(formatter));
+ firePropertyChange("formatter", oldFormatter, formatter);
}
public void setFormatterFactory (AbstractFormatterFactory factory)
{
- throw new InternalError ("not implemented");
+ if (formatterFactory == factory)
+ return;
+
+ AbstractFormatterFactory oldFactory = formatterFactory;
+ formatterFactory = factory;
+ firePropertyChange("formatterFactory", oldFactory, factory);
}
public void setValue (Object newValue)
{
+ if (value == newValue)
+ return;
+
+ Object oldValue = value;
value = newValue;
+ firePropertyChange("value", oldValue, newValue);
}
}
diff --git a/libjava/javax/swing/JFrame.java b/libjava/javax/swing/JFrame.java
index aa641caa3c4..c450d0f50e7 100644
--- a/libjava/javax/swing/JFrame.java
+++ b/libjava/javax/swing/JFrame.java
@@ -1,5 +1,5 @@
/* JFrame.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -123,7 +123,7 @@ public class JFrame extends Frame
return rootPane;
}
- public void setRootPane(JRootPane root)
+ protected void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
@@ -132,7 +132,7 @@ public class JFrame extends Frame
add(rootPane, BorderLayout.CENTER);
}
- public JRootPane createRootPane()
+ protected JRootPane createRootPane()
{
return new JRootPane();
}
diff --git a/libjava/javax/swing/JInternalFrame.java b/libjava/javax/swing/JInternalFrame.java
index ead61f218fa..dba15460c48 100644
--- a/libjava/javax/swing/JInternalFrame.java
+++ b/libjava/javax/swing/JInternalFrame.java
@@ -1,5 +1,5 @@
-/* JInternalFrame.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* JInternalFrame.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -780,9 +780,11 @@ public class JInternalFrame extends JComponent implements Accessible,
* This method returns null because this must always be the root of a focus
* traversal.
*
- * @return null.
+ * @return always null
+ *
+ * @since 1.4
*/
- public Container getFocusCycleRootAncestor()
+ public final Container getFocusCycleRootAncestor()
{
// as defined.
return null;
@@ -860,7 +862,7 @@ public class JInternalFrame extends JComponent implements Accessible,
{
JDesktopPane pane = getDesktopPane();
if (pane != null)
- return pane.getLayer(this).intValue();
+ return pane.getLayer(this);
return -1;
}
@@ -968,7 +970,7 @@ public class JInternalFrame extends JComponent implements Accessible,
*
* @return null.
*/
- public String getWarningString()
+ public final String getWarningString()
{
// as defined.
return null;
@@ -1019,9 +1021,11 @@ public class JInternalFrame extends JComponent implements Accessible,
/**
* This must always return true.
*
- * @return True
+ * @return always true
+ *
+ * @since 1.4
*/
- public boolean isFocusCycleRoot()
+ public final boolean isFocusCycleRoot()
{
return true;
}
@@ -1272,8 +1276,9 @@ public class JInternalFrame extends JComponent implements Accessible,
*/
public void setDefaultCloseOperation(int operation)
{
- if (operation != DO_NOTHING_ON_CLOSE || operation != HIDE_ON_CLOSE
- || operation != DISPOSE_ON_CLOSE)
+ if (operation != DO_NOTHING_ON_CLOSE
+ && operation != HIDE_ON_CLOSE
+ && operation != DISPOSE_ON_CLOSE)
throw new Error("Close operation must be one of DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE");
defaultCloseOperation = operation;
}
diff --git a/libjava/javax/swing/JLabel.java b/libjava/javax/swing/JLabel.java
index b3d7225b1e4..c01d8110d9b 100644
--- a/libjava/javax/swing/JLabel.java
+++ b/libjava/javax/swing/JLabel.java
@@ -1,5 +1,5 @@
/* JLabel.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -92,59 +92,6 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
private transient int iconTextGap = 4;
/**
- * Fired in a PropertyChangeEvent when the "disabledIcon" property changes.
- */
- public static final String DISABLED_ICON_CHANGED_PROPERTY = "disabledIcon";
-
- /**
- * Fired in a PropertyChangeEvent when the "displayedMnemonic" property
- * changes.
- */
- public static final String DISPLAYED_MNEMONIC_CHANGED_PROPERTY = "displayedMnemonic";
-
- /**
- * Fired in a PropertyChangeEvent when the "displayedMnemonicIndex" property
- * changes.
- */
- public static final String DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY = "displayedMnemonicIndex";
-
- /**
- * Fired in a PropertyChangeEvent when the "horizontalAlignment" property
- * changes.
- */
- public static final String HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY = "horizontalAlignment";
-
- /**
- * Fired in a PropertyChangeEvent when the "horizontalTextPosition" property
- * changes.
- */
- public static final String HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY = "horizontalTextPosition";
-
- /** Fired in a PropertyChangeEvent when the "icon" property changes. */
- public static final String ICON_CHANGED_PROPERTY = "icon";
-
- /** Fired in a PropertyChangeEvent when the "iconTextGap" property changes. */
- public static final String ICON_TEXT_GAP_CHANGED_PROPERTY = "iconTextGap";
-
- /** Fired in a PropertyChangeEvent when the "labelFor" property changes. */
- public static final String LABEL_FOR_CHANGED_PROPERTY = "labelFor";
-
- /** Fired in a PropertyChangeEvent when the "text" property changes. */
- public static final String TEXT_CHANGED_PROPERTY = "text";
-
- /**
- * Fired in a PropertyChangeEvent when the "verticalAlignment" property
- * changes.
- */
- public static final String VERTICAL_ALIGNMENT_CHANGED_PROPERTY = "verticalAlignment";
-
- /**
- * Fired in a PropertyChangeEvent when the "verticalTextPosition" property
- * changes.
- */
- public static final String VERTICAL_TEXT_POSITION_CHANGED_PROPERTY = "verticalTextPosition";
-
- /**
* Creates a new horizontally and vertically centered JLabel object with no
* text and no icon.
*/
@@ -289,7 +236,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
String oldText = text;
text = newText;
- firePropertyChange(TEXT_CHANGED_PROPERTY, oldText, newText);
+ firePropertyChange("text", oldText, newText);
if (text != null && text.length() <= displayedMnemonicIndex)
setDisplayedMnemonicIndex(text.length() - 1);
@@ -319,7 +266,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
Icon oldIcon = icon;
icon = newIcon;
- firePropertyChange(ICON_CHANGED_PROPERTY, oldIcon, newIcon);
+ firePropertyChange("icon", oldIcon, newIcon);
}
}
@@ -352,7 +299,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
Icon oldIcon = disabledIcon;
disabledIcon = newIcon;
- firePropertyChange(DISABLED_ICON_CHANGED_PROPERTY, oldIcon, newIcon);
+ firePropertyChange("disabledIcon", oldIcon, newIcon);
}
}
@@ -367,12 +314,12 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
if (displayedMnemonic != mnemonic)
{
- firePropertyChange(DISPLAYED_MNEMONIC_CHANGED_PROPERTY,
+ firePropertyChange("displayedMnemonic",
displayedMnemonic, mnemonic);
displayedMnemonic = mnemonic;
if (text != null)
- setDisplayedMnemonicIndex(text.indexOf(mnemonic));
+ setDisplayedMnemonicIndex(text.toUpperCase().indexOf(mnemonic));
}
}
@@ -385,7 +332,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
public void setDisplayedMnemonic(char mnemonic)
{
- setDisplayedMnemonic((int) mnemonic);
+ setDisplayedMnemonic((int) Character.toUpperCase(mnemonic));
}
/**
@@ -399,7 +346,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
}
/**
- * This method sets which character in the text will be the underlined
+ * This method sets which character in the text will be the underlined
* character. If the given index is -1, then this indicates that there is
* no mnemonic. If the index is less than -1 or if the index is equal to
* the length, this method will throw an IllegalArgumentException.
@@ -410,19 +357,22 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
* length.
*/
public void setDisplayedMnemonicIndex(int newIndex)
- throws IllegalArgumentException
+ throws IllegalArgumentException
{
if (newIndex < -1 || (text != null && newIndex >= text.length()))
throw new IllegalArgumentException();
- if (text == null || text.charAt(newIndex) != displayedMnemonic)
+ if (newIndex == -1
+ || text == null
+ || text.charAt(newIndex) != displayedMnemonic)
newIndex = -1;
if (newIndex != displayedMnemonicIndex)
{
- firePropertyChange(DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY,
- displayedMnemonicIndex, newIndex);
+ int oldIndex = displayedMnemonicIndex;
displayedMnemonicIndex = newIndex;
+ firePropertyChange("displayedMnemonicIndex",
+ oldIndex, newIndex);
}
}
@@ -498,7 +448,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
if (iconTextGap != newGap)
{
- firePropertyChange(ICON_TEXT_GAP_CHANGED_PROPERTY, iconTextGap, newGap);
+ firePropertyChange("iconTextGap", iconTextGap, newGap);
iconTextGap = newGap;
}
}
@@ -523,13 +473,12 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
public void setVerticalAlignment(int alignment)
{
- if (alignment != verticalAlignment)
- {
- int oldAlignment = verticalAlignment;
- verticalAlignment = checkVerticalKey(alignment, "verticalAlignment");
- firePropertyChange(VERTICAL_ALIGNMENT_CHANGED_PROPERTY, oldAlignment,
- verticalAlignment);
- }
+ if (alignment == verticalAlignment)
+ return;
+
+ int oldAlignment = verticalAlignment;
+ verticalAlignment = checkVerticalKey(alignment, "verticalAlignment");
+ firePropertyChange("verticalAlignment", oldAlignment, verticalAlignment);
}
/**
@@ -550,9 +499,12 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
public void setHorizontalAlignment(int alignment)
{
+ if (horizontalAlignment == alignment)
+ return;
+
int oldAlignment = horizontalAlignment;
horizontalAlignment = checkHorizontalKey(alignment, "horizontalAlignment");
- firePropertyChange(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, oldAlignment,
+ firePropertyChange("horizontalAlignment", oldAlignment,
horizontalAlignment);
}
@@ -580,7 +532,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
int oldPos = verticalTextPosition;
verticalTextPosition = checkVerticalKey(textPosition,
"verticalTextPosition");
- firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, oldPos,
+ firePropertyChange("verticalTextPosition", oldPos,
verticalTextPosition);
}
}
@@ -609,7 +561,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
int oldPos = horizontalTextPosition;
horizontalTextPosition = checkHorizontalKey(textPosition,
"horizontalTextPosition");
- firePropertyChange(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, oldPos,
+ firePropertyChange("horizontalTextPosition", oldPos,
horizontalTextPosition);
}
}
@@ -665,8 +617,9 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
if (c != labelFor)
{
- firePropertyChange(LABEL_FOR_CHANGED_PROPERTY, labelFor, c);
+ Component oldLabelFor = labelFor;
labelFor = c;
+ firePropertyChange("labelFor", oldLabelFor, labelFor);
}
}
diff --git a/libjava/javax/swing/JLayeredPane.java b/libjava/javax/swing/JLayeredPane.java
index a200f289258..cdafd8b869f 100644
--- a/libjava/javax/swing/JLayeredPane.java
+++ b/libjava/javax/swing/JLayeredPane.java
@@ -89,7 +89,7 @@ import javax.accessibility.Accessible;
* <p><b>Note:</b> the layer numbering order is the <em>reverse</em> of the
* component indexing and position order</p>
*
- * @author Graydon Hoare <graydon@redhat.com>
+ * @author Graydon Hoare (graydon@redhat.com)
*/
public class JLayeredPane extends JComponent implements Accessible
{
@@ -122,12 +122,11 @@ public class JLayeredPane extends JComponent implements Accessible
* @return the layer the component is currently assigned to, in this container.
* @throws IllegalArgumentException if the component is not a child of this container.
*/
-
- protected Integer getLayer (Component c)
+ public int getLayer(Component c)
{
if (! componentToLayer.containsKey (c))
throw new IllegalArgumentException ();
- return (Integer) componentToLayer.get (c);
+ return ((Integer) componentToLayer.get(c)).intValue();
}
/**
@@ -144,8 +143,7 @@ public class JLayeredPane extends JComponent implements Accessible
* @throws IllegalArgumentException if layer does not refer to an active layer
* in this container.
*/
-
- protected int[] layerToRange (Integer layer)
+ private int[] layerToRange (Integer layer)
{
int[] ret = new int[2];
ret[1] = getComponents ().length;
@@ -175,8 +173,7 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number to increment.
* @see #incrLayer()
*/
-
- protected void incrLayer(Integer layer)
+ private void incrLayer(Integer layer)
{
int sz = 1;
if (layers.containsKey (layer))
@@ -190,8 +187,7 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number to decrement.
* @see #decrLayer()
*/
-
- protected void decrLayer(Integer layer)
+ private void decrLayer(Integer layer)
{
int sz = 0;
if (layers.containsKey (layer))
@@ -206,7 +202,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @return the least layer number.
* @see #lowestLayer()
*/
-
public int highestLayer()
{
if (layers.size() == 0)
@@ -221,7 +216,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @return the least layer number.
* @see #highestLayer()
*/
-
public int lowestLayer()
{
if (layers.size() == 0)
@@ -240,7 +234,6 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #moveToBack()
*/
-
public void moveToFront(Component c)
{
setPosition (c, 0);
@@ -260,7 +253,6 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #moveToFront()
*/
-
public void moveToBack(Component c)
{
setPosition (c, -1);
@@ -276,11 +268,10 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #setPosition()
*/
-
public int getPosition(Component c)
{
- Integer layer = getLayer (c);
- int[] range = layerToRange (layer);
+ int layer = getLayer (c);
+ int[] range = layerToRange(new Integer(layer));
int top = range[0];
int bot = range[1];
Component[] comps = getComponents ();
@@ -304,33 +295,32 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #getPosition()
*/
-
public void setPosition(Component c, int position)
{
- Integer layer = getLayer (c);
- int[] range = layerToRange (layer);
+ int layer = getLayer (c);
+ int[] range = layerToRange(new Integer(layer));
if (range[0] == range[1])
- throw new IllegalArgumentException ();
+ throw new IllegalArgumentException ();
int top = range[0];
int bot = range[1];
if (position == -1)
- position = (bot - top) - 1;
+ position = (bot - top) - 1;
int targ = Math.min(top + position, bot-1);
int curr = -1;
Component[] comps = getComponents();
for (int i = top; i < bot; ++i)
- {
+ {
if (comps[i] == c)
{
curr = i;
break;
}
- }
+ }
if (curr == -1)
- // should have found it
- throw new IllegalArgumentException ();
+ // should have found it
+ throw new IllegalArgumentException();
super.swapComponents (curr, targ);
revalidate();
@@ -345,7 +335,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer to return components from.
* @return the components in the layer.
*/
-
public Component[] getComponentsInLayer(int layer)
{
int[] range = layerToRange (getObjectForLayer (layer));
@@ -369,7 +358,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer count components in.
* @return the number of components in the layer.
*/
-
public int getComponentCountInLayer(int layer)
{
int[] range = layerToRange (getObjectForLayer (layer));
@@ -383,7 +371,6 @@ public class JLayeredPane extends JComponent implements Accessible
* Return a hashtable mapping child components of this container to
* Integer objects representing the component's layer assignments.
*/
-
protected Hashtable getComponentToLayer()
{
return componentToLayer;
@@ -400,11 +387,10 @@ public class JLayeredPane extends JComponent implements Accessible
* @throws IllegalArgumentException if the component is not a child of
* this container.
*/
-
public int getIndexOf(Component c)
{
- Integer layer = getLayer (c);
- int[] range = layerToRange (layer);
+ int layer = getLayer (c);
+ int[] range = layerToRange(new Integer(layer));
Component[] comps = getComponents();
for (int i = range[0]; i < range[1]; ++i)
{
@@ -423,7 +409,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number as an int.
* @return the layer number as an Integer, possibly shared.
*/
-
protected Integer getObjectForLayer(int layer)
{
switch (layer)
@@ -462,7 +447,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param position the position in the layer at which to insert a component.
* @return the index at which to insert the component.
*/
-
protected int insertIndexForLayer(int layer, int position)
{
@@ -488,12 +472,11 @@ public class JLayeredPane extends JComponent implements Accessible
*
* @param index the index of the child component to remove.
*/
-
public void remove (int index)
{
Component c = getComponent (index);
- Integer layer = getLayer (c);
- decrLayer (layer);
+ int layer = getLayer (c);
+ decrLayer (new Integer(layer));
componentToLayer.remove (c);
super.remove (index);
revalidate();
@@ -506,7 +489,6 @@ public class JLayeredPane extends JComponent implements Accessible
*
* @param comp the child to remove.
*/
-
public void remove (Component comp)
{
remove (getIndexOf (comp));
@@ -523,7 +505,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param c the component to set the layer property for.
* @param layer the layer number to assign to the component.
*/
-
public void setLayer(Component c, int layer)
{
componentToLayer.put (c, getObjectForLayer (layer));
@@ -536,7 +517,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number to assign to the component.
* @param position the position number to assign to the component.
*/
-
public void setLayer(Component c,
int layer,
int position)
@@ -558,7 +538,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layerConstraint an integer specifying the layer to add the component to.
* @param index an ignored parameter, for compatibility.
*/
-
protected void addImpl(Component comp, Object layerConstraint, int index)
{
Integer layer;
diff --git a/libjava/javax/swing/JList.java b/libjava/javax/swing/JList.java
index d88a4db599c..adb72892450 100644
--- a/libjava/javax/swing/JList.java
+++ b/libjava/javax/swing/JList.java
@@ -1,5 +1,5 @@
/* JList.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -129,34 +129,6 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public static final int HORIZONTAL_WRAP = 2;
- /** Fired in a PropertyChangeEvent when the "cellRenderer" property changes. */
- public static final String CELL_RENDERER_PROPERTY_CHANGED = "cellRenderer";
-
- /** Fired in a PropertyChangeEvent when the "fixedCellHeight" property changes. */
- public static final String FIXED_CELL_HEIGHT_PROPERTY_CHANGED = "fixedCellHeight";
-
- /** Fired in a PropertyChangeEvent when the "fixedCellWidth" property changes. */
- public static final String FIXED_CELL_WIDTH_PROPERTY_CHANGED = "fixedCellWidth";
-
- /** Fired in a PropertyChangeEvent when the "layoutOrientation" property changes. */
- public static final String LAYOUT_ORIENTATION_PROPERTY_CHANGED = "layoutOrientation";
-
- /** Fired in a PropertyChangeEvent when the "model" property changes. */
- public static final String MODEL_PROPERTY_CHANGED = "model";
-
- /** Fired in a PropertyChangeEvent when the "prototypeCellValue" property changes. */
- public static final String PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED = "prototypeCellValue";
-
- /** Fired in a PropertyChangeEvent when the "selectionBackground" property changes. */
- public static final String SELECTION_BACKGROUND_PROPERTY_CHANGED = "selectionBackground";
-
- /** Fired in a PropertyChangeEvent when the "selectionForeground" property changes. */
- public static final String SELECTION_FOREGROUND_PROPERTY_CHANGED = "selectionForeground";
-
- /** Fired in a PropertyChangeEvent when the "selectionModel" property changes. */
- public static final String SELECTION_MODEL_PROPERTY_CHANGED = "selectionModel";
-
-
/**
* This property indicates whether "drag and drop" functions are enabled
* on the list.
@@ -187,7 +159,6 @@ public class JList extends JComponent implements Accessible, Scrollable
* is one of the integer constants {@link #VERTICAL}, {@link
* #VERTICAL_WRAP}, or {@link #HORIZONTAL_WRAP}.
*/
-
int layoutOrientation;
/** This property holds the data elements displayed by the list. */
@@ -250,12 +221,10 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
int visibleRowCount;
-
-
/**
* Fire a {@link ListSelectionEvent} to all the registered ListSelectionListeners.
*/
- void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
+ protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
{
ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting);
ListSelectionListener listeners[] = getListSelectionListeners();
@@ -265,7 +234,6 @@ public class JList extends JComponent implements Accessible, Scrollable
}
}
-
/**
* This private listener propagates {@link ListSelectionEvent} events
* from the list's "selectionModel" property to the list's {@link
@@ -365,12 +333,22 @@ public class JList extends JComponent implements Accessible, Scrollable
listListener = new ListListener();
setModel(new DefaultListModel());
- setSelectionModel(new DefaultListSelectionModel());
+ setSelectionModel(createSelectionModel());
updateUI();
}
/**
+ * Creates the default <code>ListSelectionModel</code>.
+ *
+ * @return the <code>ListSelectionModel</code>
+ */
+ protected ListSelectionModel createSelectionModel()
+ {
+ return new DefaultListSelectionModel();
+ }
+
+ /**
* Gets the value of the {@link #fixedCellHeight} property. This property
* may be <code>-1</code> to indicate that no cell height has been
* set. This property is also set implicitly when the
@@ -399,9 +377,12 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setFixedCellHeight(int h)
{
+ if (fixedCellHeight == h)
+ return;
+
int old = fixedCellHeight;
fixedCellHeight = h;
- firePropertyChange(FIXED_CELL_WIDTH_PROPERTY_CHANGED, old, h);
+ firePropertyChange("fixedCellWidth", old, h);
}
@@ -428,17 +409,19 @@ public class JList extends JComponent implements Accessible, Scrollable
* #prototypeCellValue} property is set, but setting it explicitly
* overrides the width computed from {@link #prototypeCellValue}.
*
- * @see #getFixedCellWidth
+ * @see #getFixedCellHeight
* @see #getPrototypeCellValue
*/
- public void setFixedCellWidth(int h)
+ public void setFixedCellWidth(int w)
{
- int old = fixedCellHeight;
- fixedCellHeight = h;
- firePropertyChange(FIXED_CELL_HEIGHT_PROPERTY_CHANGED, old, h);
+ if (fixedCellWidth == w)
+ return;
+
+ int old = fixedCellWidth;
+ fixedCellWidth = w;
+ firePropertyChange("fixedCellWidth", old, w);
}
-
/**
* Gets the value of the {@link #visibleRowCount} property.
*
@@ -501,6 +484,11 @@ public class JList extends JComponent implements Accessible, Scrollable
return (ListSelectionListener[]) getListeners(ListSelectionListener.class);
}
+ public int getSelectionMode()
+ {
+ return selectionModel.getSelectionMode();
+ }
+
/**
* Sets the list's "selectionMode" property, which simply mirrors the
* same property on the list's {@link #selectionModel} property. This
@@ -723,9 +711,12 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setSelectionBackground(Color c)
{
+ if (selectionBackground == c)
+ return;
+
Color old = selectionBackground;
selectionBackground = c;
- firePropertyChange(SELECTION_BACKGROUND_PROPERTY_CHANGED, old, c);
+ firePropertyChange("selectionBackground", old, c);
repaint();
}
@@ -746,9 +737,12 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setSelectionForeground(Color c)
{
+ if (selectionForeground == c)
+ return;
+
Color old = selectionForeground;
selectionForeground = c;
- firePropertyChange(SELECTION_FOREGROUND_PROPERTY_CHANGED, old, c);
+ firePropertyChange("selectionForeground", old, c);
}
/**
@@ -850,13 +844,16 @@ public class JList extends JComponent implements Accessible, Scrollable
/**
* Sets the value of the {@link #celLRenderer} property.
*
- * @param cellRenderer The new property value
+ * @param renderer The new property value
*/
- public void setCellRenderer(ListCellRenderer cr)
+ public void setCellRenderer(ListCellRenderer renderer)
{
+ if (cellRenderer == renderer)
+ return;
+
ListCellRenderer old = cellRenderer;
- cellRenderer = cr;
- firePropertyChange(CELL_RENDERER_PROPERTY_CHANGED, old, cr);
+ cellRenderer = renderer;
+ firePropertyChange("cellRenderer", old, renderer);
revalidate();
repaint();
}
@@ -878,15 +875,21 @@ public class JList extends JComponent implements Accessible, Scrollable
*
* @param model The new property value
*/
- public void setModel(ListModel m)
+ public void setModel(ListModel model)
{
- ListModel old = model;
- if (old != null)
- old.removeListDataListener(listListener);
- model = m;
- if (model != null)
- model.addListDataListener(listListener);
- firePropertyChange(MODEL_PROPERTY_CHANGED, old, m);
+ if (this.model == model)
+ return;
+
+ if (this.model != null)
+ this.model.removeListDataListener(listListener);
+
+ ListModel old = this.model;
+ this.model = model;
+
+ if (this.model != null)
+ this.model.addListDataListener(listListener);
+
+ firePropertyChange("model", old, model);
revalidate();
repaint();
}
@@ -902,17 +905,23 @@ public class JList extends JComponent implements Accessible, Scrollable
* {@link #listListener} is unsubscribed from the existing selection
* model, if it exists, and re-subscribed to the new selection model.
*
- * @param l The new property value
+ * @param model The new property value
*/
- public void setSelectionModel(ListSelectionModel l)
+ public void setSelectionModel(ListSelectionModel model)
{
+ if (selectionModel == model)
+ return;
+
+ if (selectionModel != null)
+ selectionModel.removeListSelectionListener(listListener);
+
ListSelectionModel old = selectionModel;
- if (old != null)
- old.removeListSelectionListener(listListener);
- selectionModel = l;
+ selectionModel = model;
+
if (selectionModel != null)
selectionModel.addListSelectionListener(listListener);
- firePropertyChange(SELECTION_MODEL_PROPERTY_CHANGED, old, l);
+
+ firePropertyChange("selectionModel", old, model);
revalidate();
repaint();
}
@@ -992,6 +1001,9 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setPrototypeCellValue(Object obj)
{
+ if (prototypeCellValue == obj)
+ return;
+
Object old = prototypeCellValue;
Component comp = getCellRenderer()
.getListCellRendererComponent(this, obj, 0, false, false);
@@ -999,7 +1011,7 @@ public class JList extends JComponent implements Accessible, Scrollable
fixedCellWidth = d.width;
fixedCellHeight = d.height;
prototypeCellValue = obj;
- firePropertyChange(PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED, old, obj);
+ firePropertyChange("prototypeCellValue", old, obj);
}
public AccessibleContext getAccessibleContext()
@@ -1196,4 +1208,119 @@ public class JList extends JComponent implements Accessible, Scrollable
{
return false;
}
+
+ public int getAnchorSelectionIndex()
+ {
+ return selectionModel.getAnchorSelectionIndex();
+ }
+
+ public int getLeadSelectionIndex()
+ {
+ return selectionModel.getLeadSelectionIndex();
+ }
+
+ public int getMinSelectionIndex()
+ {
+ return selectionModel.getMaxSelectionIndex();
+ }
+
+ public int getMaxSelectionIndex()
+ {
+ return selectionModel.getMaxSelectionIndex();
+ }
+
+ public void clearSelection()
+ {
+ selectionModel.clearSelection();
+ }
+
+ public void setSelectionInterval(int anchor, int lead)
+ {
+ selectionModel.setSelectionInterval(anchor, lead);
+ }
+
+ public void addSelectionInterval(int anchor, int lead)
+ {
+ selectionModel.addSelectionInterval(anchor, lead);
+ }
+
+ public void removeSelectionInterval(int index0, int index1)
+ {
+ selectionModel.removeSelectionInterval(index0, index1);
+ }
+
+ /**
+ * Returns the value of the <code>valueIsAdjusting</code> property.
+ *
+ * @return the value
+ */
+ public boolean getValueIsAdjusting()
+ {
+ return valueIsAdjusting;
+ }
+
+ /**
+ * Sets the <code>valueIsAdjusting</code> property.
+ *
+ * @param isAdjusting the new value
+ */
+ public void setValueIsAdjusting(boolean isAdjusting)
+ {
+ valueIsAdjusting = isAdjusting;
+ }
+
+ /**
+ * Return the value of the <code>dragEnabled</code> property.
+ *
+ * @return the value
+ *
+ * @since 1.4
+ */
+ public boolean getDragEnabled()
+ {
+ return dragEnabled;
+ }
+
+ /**
+ * Set the <code>dragEnabled</code> property.
+ *
+ * @param enabled new value
+ *
+ * @since 1.4
+ */
+ public void setDragEnabled(boolean enabled)
+ {
+ dragEnabled = enabled;
+ }
+
+ /**
+ * Returns the layout orientation.
+ *
+ * @return the orientation, one of <code>JList.VERTICAL</code>,
+ * <code>JList.VERTICAL_WRAP</code> and <code>JList.HORIZONTAL_WRAP</code>
+ *
+ * @since 1.4
+ */
+ public int getLayoutOrientation()
+ {
+ return layoutOrientation;
+ }
+
+ /**
+ * Sets the layout orientation.
+ *
+ * @param orientation the orientation to set, one of <code>JList.VERTICAL</code>,
+ * <code>JList.VERTICAL_WRAP</code> and <code>JList.HORIZONTAL_WRAP</code>
+ *
+ * @since 1.4
+ */
+ public void setLayoutOrientation(int orientation)
+ {
+ if (layoutOrientation == orientation)
+ return;
+
+ int old = layoutOrientation;
+ layoutOrientation = orientation;
+ firePropertyChange("layoutOrientation", old, orientation);
+ }
}
diff --git a/libjava/javax/swing/JMenu.java b/libjava/javax/swing/JMenu.java
index 812c26bed01..d9ad317a7ef 100644
--- a/libjava/javax/swing/JMenu.java
+++ b/libjava/javax/swing/JMenu.java
@@ -1,5 +1,5 @@
/* JMenu.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,11 +59,9 @@ import javax.swing.event.MenuListener;
import javax.swing.plaf.MenuItemUI;
/**
- * <p>
* This class represents a menu that can be added to a menu bar or
* can be a submenu in some other menu. When JMenu is selected it
* displays JPopupMenu containing its menu items.
- * </p>
*
* <p>
* JMenu's fires MenuEvents when this menu's selection changes. If this menu
@@ -71,14 +69,10 @@ import javax.swing.plaf.MenuItemUI;
* deselected or cancelled, then fireMenuDeselectedEvent() or
* fireMenuCancelledEvent() is invoked, respectivelly.
* </p>
- *
*/
public class JMenu extends JMenuItem implements Accessible, MenuElement
{
- static final long serialVersionUID = 4227225638931828014L;
-
- /** name for the UI delegate for this menu. */
- private static final String uiClassID = "MenuUI";
+ private static final long serialVersionUID = 4227225638931828014L;
/** A Popup menu associated with this menu, which pops up when menu is selected */
private JPopupMenu popupMenu = new JPopupMenu();
@@ -107,30 +101,32 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
}
/**
- * Creates a new JMenu with the spicified label
+ * Creates a new <code>JMenu</code> with the specified label.
*
* @param text label for this menu
*/
public JMenu(String text)
{
super(text);
+ popupMenu.setInvoker(this);
}
/**
- * Creates a new JMenu object
+ * Creates a new <code>JMenu</code> object.
*
- * @param action Action that is used to create menu item tha will be
+ * @param action Action that is used to create menu item tha will be
* added to the menu.
*/
public JMenu(Action action)
{
super(action);
createActionChangeListener(this);
+ popupMenu.setInvoker(this);
}
/**
- * Creates a new JMenu with specified label and an option
- * for this menu to be tear-off menu
+ * Creates a new <code>JMenu</code> with specified label and an option
+ * for this menu to be tear-off menu.
*
* @param text label for this menu
* @param tearoff true if this menu should be tear-off and false otherwise
@@ -273,7 +269,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
throw new IllegalArgumentException("index less than zero");
popupMenu.insert(item, index);
-
return item;
}
@@ -312,7 +307,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
public String getUIClassID()
{
- return uiClassID;
+ return "MenuUI";
}
/**
@@ -347,7 +342,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
// display popup associated with this menu
if (selected)
{
- super.setArmed(true);
+ super.setArmed(true);
super.setSelected(true);
// FIXME: The popup menu should be shown on the screen after certain
@@ -355,7 +350,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
// this amount of seconds. 'delay' property is 0 by default.
if (this.isShowing())
{
- fireMenuSelected();
+ fireMenuSelected();
int x = 0;
int y = 0;
@@ -388,8 +383,8 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
/**
* Checks if PopupMenu associated with this menu is visible
*
- * @return true if the popup associated with this menu is currently visible on the screen and
- * false otherwise.
+ * @return true if the popup associated with this menu is currently visible
+ * on the screen and false otherwise.
*/
public boolean isPopupMenuVisible()
{
@@ -528,15 +523,15 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
}
/**
- * Returns number of items in the menu
+ * Returns number of items in the menu including separators.
*
* @return number of items in the menu
+ *
+ * @see #getMenuComponentCount()
*/
public int getItemCount()
{
- // returns the number of items on
- // the menu, including separators.
- return getComponents().length;
+ return getMenuComponentCount();
}
/**
@@ -592,10 +587,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
public boolean isTopLevelMenu()
{
- if (getParent() instanceof JMenuBar)
- return true;
- else
- return false;
+ return getParent() instanceof JMenuBar;
}
/**
@@ -790,7 +782,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
protected String paramString()
{
- return "JMenu";
+ return super.paramString();
}
public AccessibleContext getAccessibleContext()
diff --git a/libjava/javax/swing/JMenuBar.java b/libjava/javax/swing/JMenuBar.java
index 904ba3b69a3..e14c2627073 100644
--- a/libjava/javax/swing/JMenuBar.java
+++ b/libjava/javax/swing/JMenuBar.java
@@ -1,5 +1,5 @@
-/* JMenuBar.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* JMenuBar.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,6 @@ import javax.accessibility.AccessibleContext;
import javax.swing.plaf.MenuBarUI;
/**
- * <p>
* JMenuBar is a container for menu's. For a menu bar to be seen on the
* screen, at least one menu should be added to it. Just like adding
* components to container, one can use add() to add menu's to the menu bar.
@@ -57,18 +56,9 @@ import javax.swing.plaf.MenuBarUI;
* The JMenuBar uses selectionModel to keep track of selected menu index.
* JMenuBar's selectionModel will fire ChangeEvents to its registered
* listeners when the selected index changes.
- * </p>
*/
public class JMenuBar extends JComponent implements Accessible, MenuElement
{
- /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */
- public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
-
- /** Fired in a PropertyChangeEvent when the "model" changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /** Fired in a PropertyChangeEvent when the "margin" changes. */
- public static final String MARGIN_CHANGED_PROPERTY = "margin";
private static final long serialVersionUID = -8191026883931977036L;
/** JMenuBar's model. It keeps track of selected menu's index */
@@ -294,7 +284,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
* This method does nothing by default. This method is need for the
* MenuElement interface to be implemented.
*
- * @param isIncluded true if menuBar is included in the selection
+ * @param isIncluded true if menuBar is included in the selection
* and false otherwise
*/
public void menuSelectionChanged(boolean isIncluded)
@@ -303,7 +293,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
}
/**
- * Paints border of the menu bar, if its borderPainted property is set to
+ * Paints border of the menu bar, if its borderPainted property is set to
* true.
*
* @param g The graphics context with which to paint the border
@@ -323,7 +313,13 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
protected String paramString()
{
- return "JMenuBar";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",margin=");
+ if (getMargin() != null)
+ sb.append(getMargin());
+ sb.append(",paintBorder=").append(isBorderPainted());
+ return sb.toString();
}
/**
@@ -374,11 +370,11 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void setBorderPainted(boolean b)
{
- boolean old = borderPainted;
- borderPainted = b;
- if (b != old)
+ if (b != borderPainted)
{
- firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, old, b);
+ boolean old = borderPainted;
+ borderPainted = b;
+ firePropertyChange("borderPainted", old, b);
revalidate();
repaint();
}
@@ -404,14 +400,12 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void setMargin(Insets m)
{
- if (m.equals(this.margin))
+ if (m != margin)
{
- Insets oldMargin = this.margin;
- this.margin = m;
- firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, margin);
+ Insets oldMargin = margin;
+ margin = m;
+ firePropertyChange("margin", oldMargin, margin);
}
-
- this.margin = m;
}
/**
@@ -434,15 +428,11 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void setSelectionModel(SingleSelectionModel model)
{
- selectionModel = model;
if (selectionModel != model)
{
SingleSelectionModel oldModel = selectionModel;
-
selectionModel = model;
-
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel,
- this.selectionModel);
+ firePropertyChange("model", oldModel, selectionModel);
}
}
diff --git a/libjava/javax/swing/JMenuItem.java b/libjava/javax/swing/JMenuItem.java
index 0aaf0c790e2..0ea38e0f7ba 100644
--- a/libjava/javax/swing/JMenuItem.java
+++ b/libjava/javax/swing/JMenuItem.java
@@ -1,5 +1,5 @@
/* JMenuItem.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -60,9 +60,7 @@ import javax.swing.event.MenuKeyEvent;
import javax.swing.event.MenuKeyListener;
import javax.swing.plaf.MenuItemUI;
-
/**
- * <p>
* JMenuItem represents element in the menu. It inherits most of
* its functionality from AbstractButton, however its behavior somewhat
* varies from it. JMenuItem fire different kinds of events.
@@ -71,16 +69,12 @@ import javax.swing.plaf.MenuItemUI;
* fired when menu item is selected. In addition to this events menuItem also
* fire MenuDragMouseEvent and MenuKeyEvents when mouse is dragged over
* the menu item or associated key with menu item is invoked respectively.
- * </p>
*/
public class JMenuItem extends AbstractButton implements Accessible,
MenuElement
{
private static final long serialVersionUID = -1681004643499461044L;
- /** name for the UI delegate for this menuItem. */
- private static final String uiClassID = "MenuItemUI";
-
/** Combination of keyboard keys that can be used to activate this menu item */
private KeyStroke accelerator;
@@ -212,7 +206,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
public String getUIClassID()
{
- return uiClassID;
+ return "MenuItemUI";
}
/**
@@ -325,11 +319,11 @@ public class JMenuItem extends AbstractButton implements Accessible,
break;
case MouseEvent.MOUSE_ENTERED:
if (isRolloverEnabled())
- model.setRollover(true);
+ model.setRollover(true);
break;
case MouseEvent.MOUSE_EXITED:
if (isRolloverEnabled())
- model.setRollover(false);
+ model.setRollover(false);
// for JMenu last element on the path is its popupMenu.
// JMenu shouldn't me disarmed.
@@ -532,14 +526,14 @@ public class JMenuItem extends AbstractButton implements Accessible,
Component parent = this.getParent();
if (changed)
{
- model.setArmed(true);
+ model.setArmed(true);
if (parent != null && parent instanceof JPopupMenu)
((JPopupMenu) parent).setSelected(this);
}
else
{
- model.setArmed(false);
+ model.setArmed(false);
if (parent != null && parent instanceof JPopupMenu)
((JPopupMenu) parent).getSelectionModel().clearSelection();
@@ -551,7 +545,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*
* @return $MenuElement[]$ Returns array of sub-components for this menu
* item. By default menuItem doesn't have any subcomponents and so
- * empty array is returned instead.
+ * empty array is returned instead.
*/
public MenuElement[] getSubElements()
{
@@ -644,7 +638,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
protected String paramString()
{
- return "JMenuItem";
+ return super.paramString();
}
public AccessibleContext getAccessibleContext()
diff --git a/libjava/javax/swing/JOptionPane.java b/libjava/javax/swing/JOptionPane.java
index 26236822cec..0a00729b5cc 100644
--- a/libjava/javax/swing/JOptionPane.java
+++ b/libjava/javax/swing/JOptionPane.java
@@ -64,7 +64,7 @@ public class JOptionPane extends JComponent implements Accessible
{
/** DOCUMENT ME! */
private static final long serialVersionUID = 686071432213084821L;
-
+
/**
* Creates a new AccessibleJOptionPane object.
*/
@@ -85,7 +85,7 @@ public class JOptionPane extends JComponent implements Accessible
/** DOCUMENT ME! */
private static final long serialVersionUID = 5231143276678566796L;
-
+
/** The value returned when cancel option is selected. */
public static final int CANCEL_OPTION = 2;
diff --git a/libjava/javax/swing/JPasswordField.java b/libjava/javax/swing/JPasswordField.java
index 133c99ac310..449aa82cd2c 100644
--- a/libjava/javax/swing/JPasswordField.java
+++ b/libjava/javax/swing/JPasswordField.java
@@ -47,9 +47,10 @@ import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
/**
- * JPasswordField
- * @author Andrew Selkirk
- * @version 1.0
+ * class JPasswordField
+ *
+ * @author Andrew Selkirk
+ * @version 1.0
*/
public class JPasswordField extends JTextField
{
@@ -69,6 +70,7 @@ public class JPasswordField extends JTextField
/**
* getAccessibleRole
+ *
* @return AccessibleRole
*/
public AccessibleRole getAccessibleRole()
@@ -83,7 +85,7 @@ public class JPasswordField extends JTextField
private char echoChar = 0;
/**
- * Constructor JPasswordField
+ * Creates a <code>JPasswordField</code> object.
*/
public JPasswordField()
{
@@ -240,7 +242,7 @@ public class JPasswordField extends JTextField
*/
public char[] getPassword()
{
- return null; // TODO
+ return new char[0]; // TODO
}
/**
diff --git a/libjava/javax/swing/JPopupMenu.java b/libjava/javax/swing/JPopupMenu.java
index 76f63621d7e..00998b81a6f 100644
--- a/libjava/javax/swing/JPopupMenu.java
+++ b/libjava/javax/swing/JPopupMenu.java
@@ -1,5 +1,5 @@
-/* JPopupMenu.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* JPopupMenu.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,6 @@ package javax.swing;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
-import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.Panel;
@@ -53,6 +52,7 @@ import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.util.ArrayList;
import java.util.EventListener;
import javax.accessibility.Accessible;
@@ -92,12 +92,6 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
{
private static final long serialVersionUID = -8336996630009646009L;
- /** name for the UI delegate for this menuItem. */
- private static final String uiClassID = "PopupMenuUI";
-
- /** Fire a PropertyChangeEvent when the "borderPainted" property changes. */
- public static final String LABEL_CHANGED_PROPERTY = "label";
-
/* indicates if popup's menu border should be painted*/
private boolean borderPainted = true;
@@ -142,19 +136,12 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
/* Field indicating if popup menu is visible or not */
private boolean visible = false;
- /* Bound Property indicating visibility of the popup menu*/
- public static final String VISIBLE_CHANGED_PROPERTY = "visible";
-
/**
* Creates a new JPopupMenu object.
*/
public JPopupMenu()
{
- updateUI();
-
- lightWeightPopupEnabled = DefaultLightWeightPopupEnabled;
- selectionModel = new DefaultSingleSelectionModel();
- super.setVisible(false);
+ this(null);
}
/**
@@ -164,7 +151,11 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
public JPopupMenu(String label)
{
+ lightWeightPopupEnabled = getDefaultLightWeightPopupEnabled();
setLabel(label);
+ setSelectionModel(new DefaultSingleSelectionModel());
+ super.setVisible(false);
+ updateUI();
}
private void readObject(ObjectInputStream stream)
@@ -177,12 +168,12 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
}
/**
- * Adds given menu item to the popup menu
- *
- * @param item menu item to add to the popup menu
- *
- * @return menu item that was added to the popup menu
- */
+ * Adds given menu item to the popup menu
+ *
+ * @param item menu item to add to the popup menu
+ *
+ * @return menu item that was added to the popup menu
+ */
public JMenuItem add(JMenuItem item)
{
this.insert(item, -1);
@@ -291,18 +282,6 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
}
/**
- * Paints popup menu's border if borderPainted is true
- *
- * @param graphics graphics context used to paint this popup's menu border.
- */
- protected void borderPainted(Graphics graphics)
- {
- if (borderPainted)
- getBorder().paintBorder(this, graphics, 0, 0, getSize(null).width,
- getSize(null).height);
- }
-
- /**
* Returns flag indicating if newly created JPopupMenu will use
* heavyweight or lightweight container to display its menu items
*
@@ -386,10 +365,7 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
public void setSelectionModel(SingleSelectionModel model)
{
- if (selectionModel != model)
- {
- SingleSelectionModel oldModel = this.selectionModel;
- }
+ selectionModel = model;
}
/**
@@ -452,7 +428,7 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
/**
* Sets label for this popup menu. This method fires PropertyChangeEvent
* when the label property is changed. Please note that most
- * of the Look & Feel will ignore this property.
+ * of the Look &amp; Feel will ignore this property.
*
* @param label label for this popup menu
*/
@@ -461,8 +437,8 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
if (label != this.label)
{
String oldLabel = this.label;
- this.label = label;
- firePropertyChange(LABEL_CHANGED_PROPERTY, oldLabel, label);
+ this.label = label;
+ firePropertyChange("label", oldLabel, label);
}
}
@@ -574,11 +550,14 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
public void setVisible(boolean visible)
{
+ if (visible == isVisible())
+ return;
+
boolean old = isVisible();
this.visible = visible;
if (old != isVisible())
{
- firePropertyChange(VISIBLE_CHANGED_PROPERTY, old, (boolean) isVisible());
+ firePropertyChange("visible", old, isVisible());
if (visible)
{
firePopupMenuWillBecomeVisible();
@@ -619,11 +598,11 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
{
// Subtract insets of the top-level container if popup menu's
// top-left corner is inside it.
- Insets insets = rootContainer.getInsets();
- popup.show(popupLocation.x - insets.left,
- popupLocation.y - insets.top, size.width,
- size.height);
- }
+ Insets insets = rootContainer.getInsets();
+ popup.show(popupLocation.x - insets.left,
+ popupLocation.y - insets.top, size.width,
+ size.height);
+ }
}
else
{
@@ -791,7 +770,17 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
protected String paramString()
{
- return "JPopupMenu";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",label=");
+ if (getLabel() != null)
+ sb.append(getLabel());
+ sb.append(",lightWeightPopupEnabled=").append(isLightWeightPopupEnabled());
+ sb.append(",margin=");
+ if (getMargin() != null)
+ sb.append(margin);
+ sb.append(",paintBorder=").append(isBorderPainted());
+ return sb.toString();
}
/**
@@ -839,19 +828,22 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
}
/**
- * Return subcomonents of this popup menu.
+ * Return subcomonents of this popup menu. This method returns only
+ * components that implement the <code>MenuElement</code> interface.
*
- * @return Array containing menuItem's of belonging to this popup menu.
+ * @return array of menu items belonging to this popup menu
*/
public MenuElement[] getSubElements()
{
Component[] items = getComponents();
- MenuElement[] subElements = new MenuElement[items.length];
+ ArrayList subElements = new ArrayList();
for (int i = 0; i < items.length; i++)
- subElements[i] = (MenuElement) items[i];
+ if (items[i] instanceof MenuElement)
+ subElements.add(items[i]);
- return subElements;
+ return (MenuElement[])
+ subElements.toArray(new MenuElement[subElements.size()]);
}
/**
@@ -1038,14 +1030,6 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
this.setBounds(x, y, width, height);
this.show();
}
-
- /**
- * Hides JWindow with menu item's from the screen.
- */
- public void hide()
- {
- super.hide();
- }
}
/**
diff --git a/libjava/javax/swing/JProgressBar.java b/libjava/javax/swing/JProgressBar.java
index 3c4084724f2..105f7c49073 100644
--- a/libjava/javax/swing/JProgressBar.java
+++ b/libjava/javax/swing/JProgressBar.java
@@ -1,5 +1,5 @@
/* JProgressBar.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing;
import java.awt.Graphics;
@@ -48,21 +49,18 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.ProgressBarUI;
-
/**
- * <p>
* The ProgressBar is a widget that displays in two modes. In
* determinate mode, it displays fills a percentage of its bar
* based on its current value. In indeterminate mode, it creates
* box and bounces it between its bounds.
- * </p>
*
* <p>
* JProgressBars have the following properties:
* </p>
*
* <table>
- * <tr><th> Property </td><th> Stored in </td><th> Bound? </td></tr>
+ * <tr><th> Property </th><th> Stored in </th><th> Bound? </th></tr>
* <tr><td> borderPainted </td><td> progressBar </td><td> yes </td></tr>
* <tr><td> changeListeners </td><td> progressBar </td><td> no </td></tr>
* <tr><td> indeterminate </td><td> progressBar </td><td> yes </td></tr>
@@ -171,21 +169,6 @@ public class JProgressBar extends JComponent implements SwingConstants,
private static final long serialVersionUID = 1980046021813598781L;
- /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */
- public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
-
- /** Fired in a PropertyChangeEvent when the "orientation" property changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the "string" property changes. */
- public static final String STRING_CHANGED_PROPERTY = "string";
-
- /** Fired in a PropertyChangeEvent when the "stringPainted" property changes. */
- public static final String STRING_PAINTED_CHANGED_PROPERTY = "stringPainted";
-
- /** Fired in a PropertyChangeEvent when the "indeterminate" property changes. */
- public static final String INDETERMINATE_CHANGED_PROPERTY = "indeterminate";
-
/** Whether the ProgressBar is determinate. */
private transient boolean indeterminate = false;
@@ -331,7 +314,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
int oldOrientation = this.orientation;
this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ firePropertyChange("orientation", oldOrientation,
this.orientation);
}
}
@@ -357,7 +340,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
boolean oldPainted = paintString;
paintString = painted;
- firePropertyChange(STRING_PAINTED_CHANGED_PROPERTY, oldPainted,
+ firePropertyChange("stringPainted", oldPainted,
paintString);
}
}
@@ -394,7 +377,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
String oldString = progressString;
progressString = string;
- firePropertyChange(STRING_CHANGED_PROPERTY, oldString, progressString);
+ firePropertyChange("string", oldString, progressString);
}
}
@@ -435,7 +418,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
boolean oldPainted = paintBorder;
paintBorder = painted;
- firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, oldPainted,
+ firePropertyChange("borderPainted", oldPainted,
paintBorder);
}
}
@@ -641,7 +624,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
boolean olddeter = indeterminate;
indeterminate = newValue;
- firePropertyChange(INDETERMINATE_CHANGED_PROPERTY, olddeter,
+ firePropertyChange("indeterminate", olddeter,
indeterminate);
}
}
diff --git a/libjava/javax/swing/JRadioButton.java b/libjava/javax/swing/JRadioButton.java
index fc06d15a114..da8c8395a24 100644
--- a/libjava/javax/swing/JRadioButton.java
+++ b/libjava/javax/swing/JRadioButton.java
@@ -1,5 +1,5 @@
/* JRadioButton.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,9 +59,9 @@ import javax.swing.plaf.ButtonUI;
* within the same panel, possibly with an appropriate border to denote
* the connection between the components.
*
- * @author Michael Koch <konqueror@gmx.de>
- * @author Graydon Hoare <graydon@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Graydon Hoare (graydon@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see JToggleButton
* @see ButtonGroup
* @since 1.2
diff --git a/libjava/javax/swing/JRootPane.java b/libjava/javax/swing/JRootPane.java
index 4f067c9aab9..145750758a4 100644
--- a/libjava/javax/swing/JRootPane.java
+++ b/libjava/javax/swing/JRootPane.java
@@ -100,7 +100,7 @@ public class JRootPane extends JComponent
protected RootLayout()
{
}
-
+
/**
* DOCUMENT ME!
*
@@ -230,8 +230,8 @@ public class JRootPane extends JComponent
{
glassPane.setBounds(0, 0, containerSize.width,
containerSize.height);
- contentPane.setBounds(0, 0, containerSize.width,
- containerSize.height);
+ contentPane.setBounds(0, 0, containerSize.width,
+ containerSize.height);
}
layeredPane.setSize(containerSize.width, containerSize.height);
@@ -333,6 +333,11 @@ public class JRootPane extends JComponent
protected Container contentPane;
protected JButton defaultButton;
+
+ /**
+ * @since 1.4
+ */
+ private int windowDecorationStyle = NONE;
/**
* DOCUMENT ME!
@@ -341,8 +346,20 @@ public class JRootPane extends JComponent
*/
public void setJMenuBar(JMenuBar m)
{
+ JLayeredPane jlPane = getLayeredPane();
+ if (menuBar != null)
+ jlPane.remove(menuBar);
menuBar = m;
- getLayeredPane().add(menuBar, JLayeredPane.FRAME_CONTENT_LAYER);
+ if (menuBar != null)
+ jlPane.add(menuBar, JLayeredPane.FRAME_CONTENT_LAYER);
+ }
+
+ /**
+ * @deprecated Replaced by <code>setJMenuBar()</code>
+ */
+ public void setMenuBar(JMenuBar m)
+ {
+ setJMenuBar(m);
}
/**
@@ -356,6 +373,14 @@ public class JRootPane extends JComponent
}
/**
+ * @deprecated Replaced by <code>getJMenuBar()</code>
+ */
+ public JMenuBar getMenuBar()
+ {
+ return getJMenuBar();
+ }
+
+ /**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
@@ -569,4 +594,32 @@ public class JRootPane extends JComponent
defaultButton = newButton;
firePropertyChange("defaultButton", oldButton, newButton);
}
+
+ /**
+ * @since 1.4
+ */
+ public int getWindowDecorationStyle()
+ {
+ return windowDecorationStyle;
+ }
+
+ /**
+ * @since 1.4
+ */
+ public void setWindowDecorationStyle(int style)
+ {
+ if (style != NONE
+ && style != FRAME
+ && style != INFORMATION_DIALOG
+ && style != ERROR_DIALOG
+ && style != COLOR_CHOOSER_DIALOG
+ && style != FILE_CHOOSER_DIALOG
+ && style != QUESTION_DIALOG
+ && style != WARNING_DIALOG)
+ throw new IllegalArgumentException("invalid style");
+
+ int oldStyle = windowDecorationStyle;
+ windowDecorationStyle = style;
+ firePropertyChange("windowDecorationStyle", oldStyle, style);
+ }
}
diff --git a/libjava/javax/swing/JScrollBar.java b/libjava/javax/swing/JScrollBar.java
index b755c6f2a99..0ed7679e77f 100644
--- a/libjava/javax/swing/JScrollBar.java
+++ b/libjava/javax/swing/JScrollBar.java
@@ -1,5 +1,5 @@
/* JScrollBar.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing;
import java.awt.Adjustable;
@@ -47,11 +48,8 @@ import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import javax.swing.plaf.ScrollBarUI;
-
/**
* The JScrollBar. Two buttons control how the values that the
* scroll bar can take. You can also drag the thumb or click the track
@@ -154,18 +152,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
private static final long serialVersionUID = -8195169869225066566L;
- /** Fired in a PropertyChangeEvent when the "blockIncrement" changes. */
- public static final String BLOCK_INCREMENT_CHANGED_PROPERTY = "blockIncrement";
-
- /** Fired in a PropertyChangeEvent when the "model" changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /** Fired in a PropertyChangeEvent when the "orientation" changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the "unitIncrement" changes. */
- public static final String UNIT_INCREMENT_CHANGED_PROPERTY = "unitIncrement";
-
/** How much the thumb moves when moving in a block. */
protected int blockIncrement = 10;
@@ -178,12 +164,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
/** How much the thumb moves when moving in a unit. */
protected int unitIncrement = 1;
- /** The ChangeListener that listens to the model. */
- private transient ChangeListener changeListener;
-
- /** The ChangeEvent that's fired. */
- private transient ChangeEvent changeEvent;
-
/**
* Creates a new horizontal JScrollBar object with a minimum
* of 0, a maxmium of 100, a value of 0 and an extent of 10.
@@ -223,8 +203,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
throw new IllegalArgumentException(orientation
+ " is not a legal orientation");
this.orientation = orientation;
- changeListener = createChangeListener();
- model.addChangeListener(changeListener);
updateUI();
}
@@ -297,7 +275,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
int oldOrientation = this.orientation;
this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ firePropertyChange("orientation", oldOrientation,
this.orientation);
}
}
@@ -325,9 +303,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
BoundedRangeModel oldModel = model;
model = newModel;
- oldModel.removeChangeListener(changeListener);
- model.addChangeListener(changeListener);
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, model);
+ firePropertyChange("model", oldModel, model);
}
}
@@ -356,7 +332,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
int oldInc = this.unitIncrement;
this.unitIncrement = unitIncrement;
- firePropertyChange(UNIT_INCREMENT_CHANGED_PROPERTY, oldInc,
+ firePropertyChange("unitIncrement", oldInc,
this.unitIncrement);
}
}
@@ -386,7 +362,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
int oldInc = this.blockIncrement;
this.blockIncrement = blockIncrement;
- firePropertyChange(BLOCK_INCREMENT_CHANGED_PROPERTY, oldInc,
+ firePropertyChange("blockIncrement", oldInc,
this.blockIncrement);
}
}
@@ -558,70 +534,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
}
/**
- * This method creates a new ChangeListener.
- *
- * @return A new ChangeListener.
- */
- private ChangeListener createChangeListener()
- {
- return new ChangeListener()
- {
- public void stateChanged(ChangeEvent e)
- {
- fireStateChanged();
- }
- };
- }
-
- /**
- * This method is called whenever the model fires a ChangeEvent. It should
- * propagate the ChangeEvent to its listeners with a new ChangeEvent that
- * identifies the scroll bar as the source.
- */
- private void fireStateChanged()
- {
- Object[] changeListeners = listenerList.getListenerList();
- if (changeEvent == null)
- changeEvent = new ChangeEvent(this);
- for (int i = changeListeners.length - 2; i >= 0; i -= 2)
- {
- if (changeListeners[i] == ChangeListener.class)
- ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent);
- }
- }
-
- /**
- * This method adds a ChangeListener to the scroll bar.
- *
- * @param listener The listener to add.
- */
- public void addChangeListener(ChangeListener listener)
- {
- listenerList.add(ChangeListener.class, listener);
- }
-
- /**
- * This method removes a ChangeListener from the scroll bar.
- *
- * @param listener The listener to remove.
- */
- public void removeChangeListener(ChangeListener listener)
- {
- listenerList.remove(ChangeListener.class, listener);
- }
-
- /**
- * This method returns an array of all ChangeListeners listening to this
- * scroll bar.
- *
- * @return An array of ChangeListeners listening to this scroll bar.
- */
- public ChangeListener[] getChangeListeners()
- {
- return (ChangeListener[]) listenerList.getListeners(ChangeListener.class);
- }
-
- /**
* This method adds an AdjustmentListener to the scroll bar.
*
* @param listener The listener to add.
diff --git a/libjava/javax/swing/JScrollPane.java b/libjava/javax/swing/JScrollPane.java
index 01131b7268e..dfe5a76b196 100644
--- a/libjava/javax/swing/JScrollPane.java
+++ b/libjava/javax/swing/JScrollPane.java
@@ -1,5 +1,5 @@
/* JScrollPane.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -99,18 +99,6 @@ public class JScrollPane
boolean wheelScrollingEnabled;
ChangeListener scrollListener;
- public static final String COLUMN_HEADER_CHANGED_PROPERTY = "columnHeader";
- public static final String COMPONENT_ORIENTATION_CHANGED_PROPERTY = "componentOrientation";
- public static final String HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY = "horizontalScrollBar";
- public static final String HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY = "horizontalScrollBarPolicy";
- public static final String LAYOUT_CHANGED_PROPERTY = "layout";
- public static final String ROW_HEADER_CHANGED_PROPERTY = "rowHeader";
- public static final String VERTICAL_SCROLLBAR_CHANGED_PROPERTY = "verticalScrollBar";
- public static final String VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY = "verticalScrollBarPolicy";
- public static final String VIEWPORT_CHANGED_PROPERTY = "viewport";
- public static final String VIEWPORT_BORDER_CHANGED_PROPERTY = "viewportBorder";
- public static final String WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY = "wheelScrollingEnabled";
-
public JViewport getColumnHeader()
{
return columnHeader;
@@ -247,17 +235,20 @@ public class JScrollPane
{
ComponentOrientation old = super.getComponentOrientation();
super.setComponentOrientation(co);
- firePropertyChange(COMPONENT_ORIENTATION_CHANGED_PROPERTY, old, co);
+ firePropertyChange("componentOrientation", old, co);
sync();
}
public void setColumnHeader(JViewport h)
{
+ if (columnHeader == h)
+ return;
+
JViewport old = columnHeader;
removeNonNull(old);
columnHeader = h;
addNonNull(h);
- firePropertyChange(COLUMN_HEADER_CHANGED_PROPERTY, old, h);
+ firePropertyChange("columnHeader", old, h);
sync();
}
@@ -327,11 +318,14 @@ public class JScrollPane
public void setHorizontalScrollBar(JScrollBar h)
{
+ if (horizontalScrollBar == h)
+ return;
+
JScrollBar old = horizontalScrollBar;
removeNonNull(old);
horizontalScrollBar = h;
addNonNull(h);
- firePropertyChange(HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY, old, h);
+ firePropertyChange("horizontalScrollBar", old, h);
sync();
if (old != null)
@@ -349,14 +343,18 @@ public class JScrollPane
}
public void setHorizontalScrollBarPolicy(int h)
- {
+ {
+ if (horizontalScrollBarPolicy == h)
+ return;
+
if (h != HORIZONTAL_SCROLLBAR_AS_NEEDED
&& h != HORIZONTAL_SCROLLBAR_NEVER
&& h != HORIZONTAL_SCROLLBAR_ALWAYS)
throw new IllegalArgumentException("unknown horizontal scrollbar policy");
+
int old = horizontalScrollBarPolicy;
horizontalScrollBarPolicy = h;
- firePropertyChange(HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY, old, h);
+ firePropertyChange("horizontalScrollBarPolicy", old, h);
sync();
}
@@ -366,17 +364,20 @@ public class JScrollPane
ScrollPaneLayout tmp = (ScrollPaneLayout) l;
super.setLayout(l);
tmp.syncWithScrollPane(this);
- firePropertyChange(LAYOUT_CHANGED_PROPERTY, old, l);
+ firePropertyChange("layout", old, l);
sync();
}
public void setRowHeader(JViewport v)
{
+ if (rowHeader == v)
+ return;
+
JViewport old = rowHeader;
removeNonNull(old);
rowHeader = v;
addNonNull(v);
- firePropertyChange(ROW_HEADER_CHANGED_PROPERTY, old, v);
+ firePropertyChange("rowHeader", old, v);
sync();
}
@@ -390,11 +391,14 @@ public class JScrollPane
public void setVerticalScrollBar(JScrollBar v)
{
+ if (verticalScrollBar == v)
+ return;
+
JScrollBar old = verticalScrollBar;
removeNonNull(old);
verticalScrollBar = v;
addNonNull(v);
- firePropertyChange(VERTICAL_SCROLLBAR_CHANGED_PROPERTY, old, v);
+ firePropertyChange("verticalScrollBar", old, v);
sync();
if (old != null)
@@ -413,26 +417,36 @@ public class JScrollPane
public void setVerticalScrollBarPolicy(int v)
{
+ if (verticalScrollBarPolicy == v)
+ return;
+
if (v != VERTICAL_SCROLLBAR_AS_NEEDED
&& v != VERTICAL_SCROLLBAR_NEVER
&& v != VERTICAL_SCROLLBAR_ALWAYS)
throw new IllegalArgumentException("unknown vertical scrollbar policy");
+
int old = verticalScrollBarPolicy;
verticalScrollBarPolicy = v;
- firePropertyChange(VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY, old, v);
+ firePropertyChange("verticalScrollBarPolicy", old, v);
sync();
}
public void setWheelScrollingEnabled(boolean b)
{
+ if (wheelScrollingEnabled == b)
+ return;
+
boolean old = wheelScrollingEnabled;
wheelScrollingEnabled = b;
- firePropertyChange(WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY, old, b);
+ firePropertyChange("wheelScrollingEnabled", old, b);
sync();
}
public void setViewport(JViewport v)
{
+ if (viewport == v)
+ return;
+
JViewport old = viewport;
removeNonNull(old);
if (old != null)
@@ -443,15 +457,18 @@ public class JScrollPane
addNonNull(v);
revalidate();
repaint();
- firePropertyChange(VIEWPORT_CHANGED_PROPERTY, old, v);
+ firePropertyChange("viewport", old, v);
sync();
}
public void setViewportBorder(Border b)
{
+ if (viewportBorder == b)
+ return;
+
Border old = viewportBorder;
viewportBorder = b;
- firePropertyChange(VIEWPORT_BORDER_CHANGED_PROPERTY, old, b);
+ firePropertyChange("viewportBorder", old, b);
sync();
}
@@ -588,7 +605,7 @@ public class JScrollPane
return new ScrollBar(SwingConstants.VERTICAL);
}
- public JViewport createViewport()
+ protected JViewport createViewport()
{
return new JViewport();
}
@@ -624,7 +641,7 @@ public class JScrollPane
super.setUI(ui);
}
- class ScrollBar
+ protected class ScrollBar
extends JScrollBar
implements UIResource
{
@@ -660,8 +677,5 @@ public class JScrollPane
direction);
}
}
-
-
}
-
}
diff --git a/libjava/javax/swing/JSlider.java b/libjava/javax/swing/JSlider.java
index 0bc013cb128..cfe7880df65 100644
--- a/libjava/javax/swing/JSlider.java
+++ b/libjava/javax/swing/JSlider.java
@@ -1,5 +1,5 @@
/* JSlider.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing;
import java.awt.Dimension;
@@ -54,14 +55,11 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.SliderUI;
-
/**
- * <p>
* The JSlider is a Swing component that allows selection of a value within a
* range by adjusting a thumb in a track. The values for the minimum,
* maximum, extent and value are stored in a {@link
* DefaultBoundedRangeModel}.
- * </p>
*
* <p>
* JSliders have the following properties:
@@ -114,7 +112,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
MenuContainer, Serializable
{
/** DOCUMENT ME! */
- static final long serialVersionUID = -1441275936141218479L;
+ private static final long serialVersionUID = -1441275936141218479L;
/**
* DOCUMENT ME!
@@ -206,36 +204,6 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
}
}
- /** Fired in a PropertyChangeEvent when the "inverted" property changes. */
- public static final String INVERTED_CHANGED_PROPERTY = "inverted";
-
- /** Fired in a PropertyChangeEvent when the "labelTable" property changes. */
- public static final String LABEL_TABLE_CHANGED_PROPERTY = "labelTable";
-
- /**
- * Fired in a PropertyChangeEvent when the "majorTickSpacing" property
- * changes.
- */
- public static final String MAJOR_TICK_SPACING_CHANGED_PROPERTY = "majorTickSpacing";
-
- /**
- * Fired in a PropertyChangeEvent when the "minorTickSpacing" property
- * changes.
- */
- public static final String MINOR_TICK_SPACING_CHANGED_PROPERTY = "minorTickSpacing";
-
- /** Fired in a PropertyChangeEvent when the "model" property changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /** Fired in a PropertyChangeEvent when the "orientation" property changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the "paintLabels" property changes. */
- public static final String PAINT_LABELS_CHANGED_PROPERTY = "paintLabels";
-
- /** Fired in a PropertyChangeEvent when the "paintTicks" property changes. */
- public static final String PAINT_TICKS_CHANGED_PROPERTY = "paintTicks";
-
/** Whether or not this slider paints its ticks. */
private transient boolean paintTicks = false;
@@ -515,7 +483,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
sliderModel = model;
oldModel.removeChangeListener(changeListener);
sliderModel.addChangeListener(changeListener);
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, sliderModel);
+ firePropertyChange("model", oldModel, sliderModel);
}
}
@@ -624,7 +592,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
int oldOrientation = this.orientation;
this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ firePropertyChange("orientation", oldOrientation,
this.orientation);
}
}
@@ -650,7 +618,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
Dictionary oldTable = labelTable;
labelTable = table;
- firePropertyChange(LABEL_TABLE_CHANGED_PROPERTY, oldTable, labelTable);
+ firePropertyChange("labelTable", oldTable, labelTable);
}
}
@@ -751,7 +719,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
boolean oldInverted = isInverted;
isInverted = inverted;
- firePropertyChange(INVERTED_CHANGED_PROPERTY, oldInverted, isInverted);
+ firePropertyChange("inverted", oldInverted, isInverted);
}
}
@@ -777,7 +745,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
int oldSpacing = majorTickSpacing;
majorTickSpacing = spacing;
- firePropertyChange(MAJOR_TICK_SPACING_CHANGED_PROPERTY, oldSpacing,
+ firePropertyChange("majorTickSpacing", oldSpacing,
majorTickSpacing);
}
}
@@ -804,7 +772,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
int oldSpacing = minorTickSpacing;
minorTickSpacing = spacing;
- firePropertyChange(MINOR_TICK_SPACING_CHANGED_PROPERTY, oldSpacing,
+ firePropertyChange("minorTickSpacing", oldSpacing,
minorTickSpacing);
}
}
@@ -864,8 +832,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
boolean oldPaintTicks = paintTicks;
paintTicks = paint;
- firePropertyChange(PAINT_TICKS_CHANGED_PROPERTY, oldPaintTicks,
- paintTicks);
+ firePropertyChange("paintTicks", oldPaintTicks, paintTicks);
}
}
@@ -910,8 +877,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
boolean oldPaintLabels = paintLabels;
paintLabels = paint;
- firePropertyChange(PAINT_LABELS_CHANGED_PROPERTY, oldPaintLabels,
- paintLabels);
+ firePropertyChange("paintLabels", oldPaintLabels, paintLabels);
}
}
diff --git a/libjava/javax/swing/JSpinner.java b/libjava/javax/swing/JSpinner.java
index 271c5119f22..fbf2bbf5fcc 100644
--- a/libjava/javax/swing/JSpinner.java
+++ b/libjava/javax/swing/JSpinner.java
@@ -1,5 +1,5 @@
/* JSpinner.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,6 @@ import java.text.ParseException;
import javax.swing.border.EtchedBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-import javax.swing.event.EventListenerList;
import javax.swing.plaf.SpinnerUI;
@@ -59,7 +58,8 @@ import javax.swing.plaf.SpinnerUI;
* way to manipulate the value.
*
* @author Ka-Hing Cheung
- * @version 1.0
+ *
+ * @since 1.4
*/
public class JSpinner extends JComponent
{
@@ -286,9 +286,6 @@ public class JSpinner extends JComponent
private JComponent editor;
/** DOCUMENT ME! */
- private EventListenerList listenerList = new EventListenerList();
-
- /** DOCUMENT ME! */
private ChangeListener listener = new ChangeListener()
{
public void stateChanged(ChangeEvent evt)
diff --git a/libjava/javax/swing/JTabbedPane.java b/libjava/javax/swing/JTabbedPane.java
index 25733df4a79..748ee214050 100644
--- a/libjava/javax/swing/JTabbedPane.java
+++ b/libjava/javax/swing/JTabbedPane.java
@@ -1,5 +1,5 @@
/* JTabbedPane.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -56,10 +56,8 @@ import javax.swing.plaf.TabbedPaneUI;
import javax.swing.plaf.UIResource;
/**
- * <p>
* This is a container for components. One component is displayed at a time.
* Users can switch between components by clicking on tabs.
- * </p>
*
* <p>
* Tabs can be oriented in several ways. They can be above, below, left and
@@ -520,32 +518,18 @@ public class JTabbedPane extends JComponent implements Serializable,
* or equal to title.length.
*/
public void setDisplayedMnemonicIndex(int index)
- throws IllegalArgumentException
+ throws IllegalArgumentException
{
if (index < -1 || title != null && index >= title.length())
throw new IllegalArgumentException();
- if (title == null || title.charAt(index) != mnemonicKey)
+ if (title == null || mnemonicKey == 0 || title.charAt(index) != mnemonicKey)
index = -1;
underlinedChar = index;
}
}
- /** Fired in a PropertyChangeEvent when the "model" property changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /**
- * Fired in a PropertyChangeEvent when the "tabPlacement" property changes.
- */
- public static final String TAB_PLACEMENT_CHANGED_PROPERTY = "tabPlacement";
-
- /**
- * Fired in a PropertyChangeEvent when the "tabLayoutPolicy" property
- * changes.
- */
- public static final String TAB_LAYOUT_POLICY_CHANGED_PROPERTY = "tabLayoutPolicy";
-
/** The changeEvent used to fire changes to listeners. */
protected ChangeEvent changeEvent;
@@ -739,7 +723,7 @@ public class JTabbedPane extends JComponent implements Serializable,
this.model.removeChangeListener(changeListener);
this.model = model;
this.model.addChangeListener(changeListener);
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, this.model);
+ firePropertyChange("model", oldModel, this.model);
}
}
@@ -770,8 +754,7 @@ public class JTabbedPane extends JComponent implements Serializable,
{
int oldPlacement = this.tabPlacement;
this.tabPlacement = tabPlacement;
- firePropertyChange(TAB_PLACEMENT_CHANGED_PROPERTY, oldPlacement,
- this.tabPlacement);
+ firePropertyChange("tabPlacement", oldPlacement, this.tabPlacement);
}
}
@@ -802,8 +785,7 @@ public class JTabbedPane extends JComponent implements Serializable,
{
int oldPolicy = layoutPolicy;
layoutPolicy = tabLayoutPolicy;
- firePropertyChange(TAB_LAYOUT_POLICY_CHANGED_PROPERTY, oldPolicy,
- layoutPolicy);
+ firePropertyChange("tabLayoutPolicy", oldPolicy, layoutPolicy);
}
}
diff --git a/libjava/javax/swing/JTable.java b/libjava/javax/swing/JTable.java
index ae2c4af5fb5..ca38aa0ba09 100644
--- a/libjava/javax/swing/JTable.java
+++ b/libjava/javax/swing/JTable.java
@@ -1,5 +1,5 @@
/* JTable.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,9 +41,10 @@ package javax.swing;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.Point;
import java.awt.Rectangle;
-import java.util.Vector;
import java.util.Hashtable;
+import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
@@ -113,14 +114,35 @@ public class JTable extends JComponent
/**
* A table mapping {@link java.lang.Class} objects to
* {@link TableCellEditor} objects. This table is consulted by the
- *
+ * FIXME
*/
protected Hashtable defaultEditorsByColumnClass;
+
+ /**
+ * A table mapping {@link java.lang.Class} objects to
+ * {@link TableCellEditor} objects. This table is consulted by the
+ * FIXME
+ */
protected Hashtable defaultRenderersByColumnClass;
+
+ /**
+ * The column that is edited, -1 if the table is not edited currently.
+ */
protected int editingColumn;
+
+ /**
+ * The row that is edited, -1 if the table is not edited currently.
+ */
protected int editingRow;
/**
+ * The component that is used for editing.
+ * <code>null</code> if the table is not editing currently.
+ *
+ */
+ protected transient Component editorComp;
+
+ /**
* Whether or not the table should automatically compute a matching
* {@link TableColumnModel} and assign it to the {@link #columnModel}
* property when the {@link #dataModel} property is changed.
@@ -163,8 +185,8 @@ public class JTable extends JComponent
*
* @see #setRowMargin()
* @see #getRowHeight()
- * @see #getInterCellSpacing()
- * @see #setInterCellSpacing()
+ * @see #getIntercellSpacing()
+ * @see #setIntercellSpacing()
* @see TableColumnModel#getColumnMargin()
* @see TableColumnModel#setColumnMargin()
*/
@@ -257,7 +279,7 @@ public class JTable extends JComponent
* @see #setDragEnabled()
* @see #getDragEnabled()
*/
- protected boolean dragEnabled;
+ private boolean dragEnabled;
/**
* The color to paint the grid lines of the table, when either {@link
@@ -275,7 +297,7 @@ public class JTable extends JComponent
* @see #setPreferredScrollableViewportSize()
* @see #getPreferredScrollableViewportSize()
*/
- protected Dimension preferredScrollableViewportSize;
+ protected Dimension preferredViewportSize;
/**
* The color to paint the background of selected cells. Fires a property
@@ -285,7 +307,7 @@ public class JTable extends JComponent
* @see #setSelectionBackground()
* @see #getSelectionBackground()
*/
- Color selectionBackground;
+ protected Color selectionBackground;
/**
* The name carried in property change events when the {@link
@@ -301,7 +323,7 @@ public class JTable extends JComponent
* @see #setSelectionForeground()
* @see #getSelectionForeground()
*/
- Color selectionForeground;
+ protected Color selectionForeground;
/**
* The name carried in property change events when the
@@ -386,11 +408,17 @@ public class JTable extends JComponent
public JTable (TableModel dm, TableColumnModel cm, ListSelectionModel sm)
{
this.dataModel = dm == null ? createDefaultDataModel() : dm;
- setSelectionModel(sm == null ? createDefaultListSelectionModel() : sm);
+ setSelectionModel(sm == null ? createDefaultSelectionModel() : sm);
this.columnModel = cm;
+ initializeLocalVars();
+ updateUI();
+ }
+
+ protected void initializeLocalVars()
+ {
this.autoCreateColumnsFromModel = false;
- if (cm == null)
+ if (columnModel == null)
{
this.autoCreateColumnsFromModel = true;
createColumnsFromModel();
@@ -398,7 +426,10 @@ public class JTable extends JComponent
this.columnModel.addColumnModelListener(this);
this.defaultRenderersByColumnClass = new Hashtable();
+ createDefaultRenderers();
+
this.defaultEditorsByColumnClass = new Hashtable();
+ createDefaultEditors();
this.autoResizeMode = AUTO_RESIZE_ALL_COLUMNS;
this.rowHeight = 16;
@@ -407,12 +438,13 @@ public class JTable extends JComponent
// this.accessibleContext = new AccessibleJTable();
this.cellEditor = null;
this.dragEnabled = false;
- this.preferredScrollableViewportSize = new Dimension(450,400);
+ this.preferredViewportSize = new Dimension(450,400);
this.showHorizontalLines = true;
this.showVerticalLines = true;
- setInterCellSpacing(new Dimension(1,1));
- setTableHeader(new JTableHeader(columnModel));
- updateUI();
+ this.editingColumn = -1;
+ this.editingRow = -1;
+ setIntercellSpacing(new Dimension(1,1));
+ setTableHeader(createDefaultTableHeader());
}
/**
@@ -426,6 +458,27 @@ public class JTable extends JComponent
this(new DefaultTableModel(data, columnNames));
}
+ public void addColumn(TableColumn column)
+ {
+ if (column.getHeaderValue() == null)
+ {
+ String name = getColumnName(column.getModelIndex());
+ column.setHeaderValue(name);
+ }
+
+ columnModel.addColumn(column);
+ }
+
+ protected void createDefaultEditors()
+ {
+ //FIXME: Create the editor object.
+ }
+
+ protected void createDefaultRenderers()
+ {
+ //FIXME: Create the renderer object.
+ }
+
/**
* @deprecated 1.0.2, replaced by <code>new JScrollPane(JTable)</code>
*/
@@ -433,7 +486,7 @@ public class JTable extends JComponent
{
return new JScrollPane(table);
}
-
+
protected TableColumnModel createDefaultColumnModel()
{
return new DefaultTableColumnModel();
@@ -444,11 +497,16 @@ public class JTable extends JComponent
return new DefaultTableModel();
}
- protected ListSelectionModel createDefaultListSelectionModel()
+ protected ListSelectionModel createDefaultSelectionModel()
{
return new DefaultListSelectionModel();
}
+ protected JTableHeader createDefaultTableHeader()
+ {
+ return new JTableHeader(columnModel);
+ }
+
private void createColumnsFromModel()
{
if (dataModel == null)
@@ -514,6 +572,58 @@ public class JTable extends JComponent
repaint();
}
+ /**
+ * Returns index of the column that contains specified point
+ * or -1 if this table doesn't contain this point.
+ *
+ * @param point point to identify the column
+ * @return index of the column that contains specified point or
+ * -1 if this table doesn't contain this point.
+ */
+ public int columnAtPoint(Point point)
+ {
+ int x0 = getLocation().x;
+ int ncols = getColumnCount();
+ Dimension gap = getIntercellSpacing();
+ TableColumnModel cols = getColumnModel();
+ int x = point.x;
+
+ for (int i = 0; i < ncols; ++i)
+ {
+ int width = cols.getColumn(i).getWidth() + (gap == null ? 0 : gap.width);
+ if (0 <= x && x < width)
+ return i;
+ x -= width;
+ }
+
+ return -1;
+ }
+
+ /**
+ * Returns index of the row that contains specified point or
+ * -1 if this table doesn't contain this point.
+ *
+ * @param point point to identify the row
+ * @return index of the row that contains specified point or
+ * -1 if this table doesn't contain this point.
+ */
+ public int rowAtPoint(Point point)
+ {
+ int y0 = getLocation().y;
+ int nrows = getRowCount();
+ Dimension gap = getIntercellSpacing();
+ int height = getRowHeight() + (gap == null ? 0 : gap.height);
+ int y = point.y;
+
+ for (int i = 0; i < nrows; ++i)
+ {
+ if (0 <= y && y < height)
+ return i;
+ y -= height;
+ }
+
+ return -1;
+ }
/**
* Calculate the visible rectangle for a particular row and column. The
@@ -656,6 +766,7 @@ public class JTable extends JComponent
return (TableCellEditor) defaultEditorsByColumnClass.get(columnClass);
else
{
+ // FIXME: We have at least an editor for Object.class in our defaults.
TableCellEditor r = new DefaultCellEditor(new JTextField());
defaultEditorsByColumnClass.put(columnClass, r);
return r;
@@ -729,7 +840,7 @@ public class JTable extends JComponent
return renderer.getTableCellRendererComponent(this,
dataModel.getValueAt(row,
- convertColumnIndexToView(column)),
+ convertColumnIndexToModel(column)),
isSelected,
false, // hasFocus
row, column);
@@ -808,13 +919,13 @@ public class JTable extends JComponent
/**
* Get the value of the {@link #columnCount} property by
- * delegation to the @{link #dataModel} field.
+ * delegation to the @{link #columnModel} field.
*
* @return The current value of the columnCount property
*/
public int getColumnCount()
{
- return dataModel.getColumnCount();
+ return columnModel.getColumnCount();
}
/**
@@ -863,11 +974,11 @@ public class JTable extends JComponent
break;
case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
- sum = hi - lo;
+ sum = hi - lo + 1;
break;
case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
- for (int i = lo; i < hi; ++i)
+ for (int i = lo; i <= hi; ++i)
if (lsm.isSelectedIndex(i))
++sum;
break;
@@ -894,12 +1005,12 @@ public class JTable extends JComponent
break;
case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
- for (int i = lo; i < hi; ++i)
+ for (int i = lo; i <= hi; ++i)
ret[j++] = i;
break;
case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
- for (int i = lo; i < hi; ++i)
+ for (int i = lo; i <= hi; ++i)
if (lsm.isSelectedIndex(i))
ret[j++] = i;
break;
@@ -1003,23 +1114,23 @@ public class JTable extends JComponent
}
/**
- * Get the value of the {@link #interCellSpacing} property.
+ * Get the value of the {@link #intercellSpacing} property.
*
* @return The current value of the property
*/
- public Dimension getInterCellSpacing()
+ public Dimension getIntercellSpacing()
{
return new Dimension(columnModel.getColumnMargin(), rowMargin);
}
/**
- * Get the value of the {@link #preferredScrollableViewportSize} property.
+ * Get the value of the {@link #preferredViewportSize} property.
*
* @return The current value of the property
*/
public Dimension getPreferredScrollableViewportSize()
{
- return preferredScrollableViewportSize;
+ return preferredViewportSize;
}
/**
@@ -1073,6 +1184,27 @@ public class JTable extends JComponent
}
/**
+ * Removes specified column from displayable columns of this table.
+ *
+ * @param column column to removed
+ */
+ public void removeColumn(TableColumn column)
+ {
+ columnModel.removeColumn(column);
+ }
+
+ /**
+ * Moves column at the specified index to new given location.
+ *
+ * @param column index of the column to move
+ * @param targetColumn index specifying new location of the column
+ */
+ public void moveColumn(int column,int targetColumn)
+ {
+ columnModel.moveColumn(column, targetColumn);
+ }
+
+ /**
* Set the value of the {@link #autoCreateColumnsFromModel} property.
*
* @param a The new value of the autoCreateColumnsFromModel property
@@ -1101,6 +1233,9 @@ public class JTable extends JComponent
*/
public void setRowHeight(int r)
{
+ if (rowHeight < 1)
+ throw new IllegalArgumentException();
+
rowHeight = r;
revalidate();
repaint();
@@ -1246,13 +1381,16 @@ public class JTable extends JComponent
/**
* Set the value of the {@link #selectionMode} property by
- * delegation to the {@link #selectionModel} field.
+ * delegation to the {@link #selectionModel} field. The same selection
+ * mode is set for row and column selection models.
*
* @param s The new value of the property
*/
public void setSelectionMode(int s)
- {
- selectionModel.setSelectionMode(s);
+ {
+ selectionModel.setSelectionMode(s);
+ columnModel.getSelectionModel().setSelectionMode(s);
+
repaint();
}
@@ -1297,11 +1435,11 @@ public class JTable extends JComponent
}
/**
- * Set the value of the {@link #interCellSpacing} property.
+ * Set the value of the {@link #intercellSpacing} property.
*
- * @param i The new value of the interCellSpacing property
+ * @param i The new value of the intercellSpacing property
*/
- public void setInterCellSpacing(Dimension i)
+ public void setIntercellSpacing(Dimension i)
{
rowMargin = i.height;
columnModel.setColumnMargin(i.width);
@@ -1309,13 +1447,13 @@ public class JTable extends JComponent
}
/**
- * Set the value of the {@link #preferredScrollableViewportSize} property.
+ * Set the value of the {@link #preferredViewportSize} property.
*
- * @param p The new value of the preferredScrollableViewportSize property
+ * @param p The new value of the preferredViewportSize property
*/
public void setPreferredScrollableViewportSize(Dimension p)
{
- preferredScrollableViewportSize = p;
+ preferredViewportSize = p;
revalidate();
repaint();
}
@@ -1551,11 +1689,17 @@ public class JTable extends JComponent
}
}
+ /**
+ * @deprecated Replaced by <code>doLayout()</code>
+ */
public void sizeColumnsToFit(boolean lastColumnOnly)
{
doLayout();
}
+ /**
+ * Obsolete since JDK 1.4. Please use <code>doLayout()</code>.
+ */
public void sizeColumnsToFit(int resizingColumn)
{
doLayout();
@@ -1593,4 +1737,141 @@ public class JTable extends JComponent
repaint();
}
+ public Class getColumnClass(int column)
+ {
+ return dataModel.getColumnClass(column);
+ }
+
+ public String getColumnName(int column)
+ {
+ return dataModel.getColumnName(column);
+ }
+
+ public int getEditingColumn()
+ {
+ return editingColumn;
+ }
+
+ public void setEditingColumn(int column)
+ {
+ editingColumn = column;
+ }
+
+ public int getEditingRow()
+ {
+ return editingRow;
+ }
+
+ public void setEditingRow(int column)
+ {
+ editingRow = column;
+ }
+
+ public Component getEditorComponent()
+ {
+ return editorComp;
+ }
+
+ public boolean isEditing()
+ {
+ return editorComp != null;
+ }
+
+ public void setDefaultEditor(Class columnClass, TableCellEditor editor)
+ {
+ if (editor != null)
+ defaultEditorsByColumnClass.put(columnClass, editor);
+ else
+ defaultEditorsByColumnClass.remove(columnClass);
+ }
+
+ public void addColumnSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getColumnCount()-1)
+ || index1 < 0 || index1 > (getColumnCount()-1)))
+ throw new IllegalArgumentException("Column index out of range.");
+
+ getColumnModel().getSelectionModel().addSelectionInterval(index0, index1);
+ }
+
+ public void addRowSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getRowCount()-1)
+ || index1 < 0 || index1 > (getRowCount()-1)))
+ throw new IllegalArgumentException("Row index out of range.");
+
+ getSelectionModel().addSelectionInterval(index0, index1);
+ }
+
+ public void setColumnSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getColumnCount()-1)
+ || index1 < 0 || index1 > (getColumnCount()-1)))
+ throw new IllegalArgumentException("Column index out of range.");
+
+ getColumnModel().getSelectionModel().setSelectionInterval(index0, index1);
+ }
+
+ public void setRowSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getRowCount()-1)
+ || index1 < 0 || index1 > (getRowCount()-1)))
+ throw new IllegalArgumentException("Row index out of range.");
+
+ getSelectionModel().setSelectionInterval(index0, index1);
+ }
+
+ public void removeColumnSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getColumnCount()-1)
+ || index1 < 0 || index1 > (getColumnCount()-1)))
+ throw new IllegalArgumentException("Column index out of range.");
+
+ getColumnModel().getSelectionModel().removeSelectionInterval(index0, index1);
+ }
+
+ public void removeRowSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getRowCount()-1)
+ || index1 < 0 || index1 > (getRowCount()-1)))
+ throw new IllegalArgumentException("Row index out of range.");
+
+ getSelectionModel().removeSelectionInterval(index0, index1);
+ }
+
+ public boolean isColumnSelected(int column)
+ {
+ return getColumnModel().getSelectionModel().isSelectedIndex(column);
+ }
+
+ public boolean isRowSelected(int row)
+ {
+ return getSelectionModel().isSelectedIndex(row);
+ }
+
+ public boolean isCellSelected(int row, int column)
+ {
+ return isRowSelected(row) && isColumnSelected(column);
+ }
+
+ public void selectAll()
+ {
+ setColumnSelectionInterval(0, getColumnCount() - 1);
+ setRowSelectionInterval(0, getRowCount() - 1);
+ }
+
+ public Object getValueAt(int row, int column)
+ {
+ return dataModel.getValueAt(row, convertColumnIndexToModel(column));
+ }
+
+ public void setValueAt(Object value, int row, int column)
+ {
+ dataModel.setValueAt(value, row, convertColumnIndexToModel(column));
+ }
+
+ public TableColumn getColumn(Object identifier)
+ {
+ return columnModel.getColumn(columnModel.getColumnIndex(identifier));
+ }
}
diff --git a/libjava/javax/swing/JTextArea.java b/libjava/javax/swing/JTextArea.java
index 2561775286b..3510e6dead6 100644
--- a/libjava/javax/swing/JTextArea.java
+++ b/libjava/javax/swing/JTextArea.java
@@ -1,5 +1,5 @@
/* JTextArea.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -74,8 +74,8 @@ import javax.swing.text.PlainDocument;
* are used in calculating the preferred size of the scroll pane's
* view port.
*
- * @author Michael Koch <konqueror@gmx.de>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see java.awt.TextArea
* @see javax.swing.JTextComponent
* @see javax.swing.JTextField
diff --git a/libjava/javax/swing/JTextField.java b/libjava/javax/swing/JTextField.java
index 5fe104b5093..409e2a5970f 100644
--- a/libjava/javax/swing/JTextField.java
+++ b/libjava/javax/swing/JTextField.java
@@ -1,5 +1,5 @@
/* JTextField.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing;
import java.awt.Dimension;
@@ -49,7 +50,7 @@ import javax.accessibility.AccessibleStateSet;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import javax.swing.text.PlainDocument;
-
+import javax.swing.text.TextAction;
public class JTextField extends JTextComponent
implements SwingConstants
@@ -80,12 +81,29 @@ public class JTextField extends JTextComponent
private static final long serialVersionUID = 353853209832607592L;
+ private static final Action[] actions;
+
+ /**
+ * Name of the action that gets sent when the content of the text field
+ * gets accepted.
+ */
public static final String notifyAction = "notify-field-accept";
+ static
+ {
+ actions = new Action[1];
+ actions[0] = new TextAction(notifyAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextField textField = (JTextField) event.getSource();
+ textField.fireActionPerformed();
+ }
+ };
+ }
+
private int columns;
-
private int align;
-
private int scrollOffset;
/** @since 1.3 */
@@ -272,19 +290,10 @@ public class JTextField extends JTextComponent
public Dimension getPreferredSize()
{
- Dimension size;
- FontMetrics fm = getFontMetrics(getFont());
- int fontHeight = fm.getMaxAscent() + fm.getMaxDescent();
- int columnWidth = fm.charWidth('m');
-
+ Dimension size = super.getPreferredSize();
+
if (columns != 0)
- {
- size = new Dimension(columns * columnWidth + 4, fontHeight + 4);
- }
- else
- {
- size = new Dimension(10, 10);
- }
+ size.width = columns * getColumnWidth();
return size;
}
@@ -309,9 +318,15 @@ public class JTextField extends JTextComponent
scrollOffset = offset;
}
+ public Action[] getActions()
+ {
+ return TextAction.augmentList(super.getActions(), actions);
+ }
+
public void postActionEvent()
{
- ActionEvent event = new ActionEvent(this, 0, actionCommand);
+ String command = actionCommand != null ? actionCommand : getText();
+ ActionEvent event = new ActionEvent(this, 0, command);
ActionListener[] listeners = getActionListeners();
for (int index = 0; index < listeners.length; ++index)
@@ -358,17 +373,9 @@ public class JTextField extends JTextComponent
/**
* @since 1.3
*/
- public String getActionCommand()
- {
- return actionCommand;
- }
-
- /**
- * @since 1.3
- */
public void setActionCommand(String command)
{
- this.actionCommand = command;
+ actionCommand = command;
}
/**
diff --git a/libjava/javax/swing/JToggleButton.java b/libjava/javax/swing/JToggleButton.java
index 8a38d48d3aa..41eab07b53c 100644
--- a/libjava/javax/swing/JToggleButton.java
+++ b/libjava/javax/swing/JToggleButton.java
@@ -1,5 +1,5 @@
/* JToggleButton.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,16 +53,15 @@ import javax.swing.plaf.ButtonUI;
* for the implementations of radio buttons (<code>JRadioButton</code>)
* and check boxes (<code>JCheckBox</code>).
*
- * @author Michael Koch <konqueror@gmx.de>
- * @author Graydon Hoare <graydon@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Graydon Hoare (graydon@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see JRadioButton
* @see JCheckBox
* @since 1.2
*/
public class JToggleButton extends AbstractButton implements Accessible
{
-
/**
* This class provides accessibility support for the toggle button.
*/
diff --git a/libjava/javax/swing/JToolBar.java b/libjava/javax/swing/JToolBar.java
index db8bb569e9f..55f4c155f80 100644
--- a/libjava/javax/swing/JToolBar.java
+++ b/libjava/javax/swing/JToolBar.java
@@ -1,5 +1,5 @@
/* JToolBar.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -100,7 +100,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
}
}
- /**
+ /**
* This is the private JToolBar layout manager.
*/
private class DefaultToolBarLayout implements LayoutManager
@@ -110,7 +110,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
*
* @param name The name of the component added.
* @param comp The component that was added.
- */
+ */
public void addLayoutComponent(String name, Component comp)
{
// Do nothing.
@@ -142,7 +142,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
Dimension tdims = c.getSize();
int start = 0;
Dimension pref;
-
+
if (getOrientation() == SwingUtilities.HORIZONTAL)
{
start += insets.left;
@@ -194,14 +194,14 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
return preferredLayoutSize(parent);
}
- /**
+ /**
* This method returns the preferred size of the given container given the
* child components.
*
* @param parent The container to measure.
*
* @return The preferred size of the given container.
- */
+ */
public Dimension preferredLayoutSize(Container parent)
{
int orientation = getOrientation();
@@ -259,23 +259,23 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
return new Dimension(w, h);
}
- /**
+ /**
* This method is called when the given component is removed from the
* container.
*
* @param comp The component removed.
- */
+ */
public void removeLayoutComponent(Component comp)
{
// Do nothing.
}
}
- /**
+ /**
* This is an extension of JSeparator used in toolbars. Unlike JSeparator,
* nothing is painted for this Separator, it is only blank space that
* separates components.
- */
+ */
public static class Separator extends JSeparator
{
/** DOCUMENT ME! */
@@ -299,70 +299,70 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
setPreferredSize(size);
} // Separator()
- /**
+ /**
* This method returns the String ID of the UI class of Separator.
*
* @return The UI class' String ID.
- */
+ */
public String getUIClassID()
{
return "ToolBarSeparatorUI";
- } // getUIClassID()
+ } // getUIClassID()
- /**
+ /**
* This method returns the preferred size of the Separator.
*
* @return The preferred size of the Separator.
- */
+ */
public Dimension getPreferredSize()
{
return super.getPreferredSize();
- } // getPreferredSize()
+ } // getPreferredSize()
- /**
+ /**
* This method returns the maximum size of the Separator.
*
* @return The maximum size of the Separator.
- */
+ */
public Dimension getMaximumSize()
{
return super.getPreferredSize();
- } // getMaximumSize()
+ } // getMaximumSize()
- /**
+ /**
* This method returns the minimum size of the Separator.
*
* @return The minimum size of the Separator.
- */
+ */
public Dimension getMinimumSize()
{
return super.getPreferredSize();
- } // getMinimumSize()
+ } // getMinimumSize()
- /**
+ /**
* This method returns the size of the Separator.
*
* @return The size of the Separator.
- */
+ */
public Dimension getSeparatorSize()
{
return super.getPreferredSize();
- } // getSeparatorSize()
+ } // getSeparatorSize()
- /**
+ /**
* This method sets the size of the Separator.
*
* @param size The new size of the Separator.
- */
+ */
public void setSeparatorSize(Dimension size)
{
setPreferredSize(size);
- } // setSeparatorSize()
- } // Separator
+ } // setSeparatorSize()
+ } // Separator
/** DOCUMENT ME! */
- private static final long serialVersionUID = -1269915519555129643L;
-
+ private static final long serialVersionUID = -1269915519555129643L;
+
/** Whether the JToolBar paints its border. */
private transient boolean paintBorder = true;
@@ -376,150 +376,135 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
private transient boolean rollover;
/** The orientation of the JToolBar. */
- private int orientation = HORIZONTAL;
+ private int orientation = HORIZONTAL;
- /** Fired in a PropertyChangeEvent when the orientation property changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the floatable property changes. */
- public static final String FLOATABLE_CHANGED_PROPERTY = "floatable";
-
- /** Fired in a PropertyChangeEvent when the borderPainted property changes. */
- public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
-
- /** Fired in a PropertyChangeEvent when the margin property changes. */
- public static final String MARGIN_CHANGED_PROPERTY = "margin";
-
- /** Fired in a PropertyChangeEvent when the rollover property changes. */
- public static final String ROLLOVER_CHANGED_PROPERTY = "rollover";
-
- /**
+ /**
* This method creates a new JToolBar object with horizontal orientation
* and no name.
- */
+ */
public JToolBar()
{
this(null, HORIZONTAL);
- } // JToolBar()
+ } // JToolBar()
- /**
+ /**
* This method creates a new JToolBar with the given orientation and no
* name.
*
- * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
- */
+ * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
+ */
public JToolBar(int orientation)
{
- this(null, orientation);
- } // JToolBar()
+ this(null, orientation);
+ } // JToolBar()
- /**
+ /**
* This method creates a new JToolBar object with the given name and
* horizontal orientation.
*
- * @param name Name assigned to undocked tool bar.
- */
+ * @param name Name assigned to undocked tool bar.
+ */
public JToolBar(String name)
{
- this(name, HORIZONTAL);
- } // JToolBar()
+ this(name, HORIZONTAL);
+ } // JToolBar()
- /**
+ /**
* This method creates a new JToolBar object with the given name and
* orientation.
*
- * @param name Name assigned to undocked tool bar.
- * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
- */
+ * @param name Name assigned to undocked tool bar.
+ * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
+ */
public JToolBar(String name, int orientation)
{
- setName(name);
+ setName(name);
setOrientation(orientation);
setLayout(new DefaultToolBarLayout());
revalidate();
- updateUI();
- } // JToolBar()
+ updateUI();
+ } // JToolBar()
- /**
+ /**
* This method adds a new JButton that performs the given Action to the
* JToolBar.
*
* @param action The Action to add to the JToolBar.
*
* @return The JButton that wraps the Action.
- */
+ */
public JButton add(Action action)
{
JButton b = createActionComponent(action);
add(b);
return b;
- } // add()
+ } // add()
- /**
+ /**
* This method paints the border if the borderPainted property is true.
*
* @param graphics The graphics object to paint with.
- */
+ */
protected void paintBorder(Graphics graphics)
{
if (paintBorder && isFloatable())
super.paintBorder(graphics);
- } // paintBorder()
+ } // paintBorder()
- /**
+ /**
* This method returns the UI class used to paint this JToolBar.
*
* @return The UI class for this JToolBar.
- */
+ */
public ToolBarUI getUI()
{
- return (ToolBarUI) ui;
- } // getUI()
+ return (ToolBarUI) ui;
+ } // getUI()
- /**
+ /**
* This method sets the UI used with the JToolBar.
*
* @param ui The UI used with the JToolBar.
- */
+ */
public void setUI(ToolBarUI ui)
{
- super.setUI(ui);
- } // setUI()
+ super.setUI(ui);
+ } // setUI()
- /**
+ /**
* This method resets the UI used to the Look and Feel defaults.
- */
+ */
public void updateUI()
{
- setUI((ToolBarUI)UIManager.getUI(this));
+ setUI((ToolBarUI) UIManager.getUI(this));
revalidate();
repaint();
- } // updateUI()
+ } // updateUI()
- /**
+ /**
* This method returns the String identifier for the UI class to the used
* with the JToolBar.
*
* @return The String identifier for the UI class.
- */
+ */
public String getUIClassID()
{
return "ToolBarUI";
- } // getUIClassID()
+ } // getUIClassID()
- /**
+ /**
* This method sets the rollover property for the JToolBar. In rollover
* mode, JButtons inside the JToolBar will only display their borders when
* the mouse is moving over them.
*
* @param b The new rollover property.
- */
+ */
public void setRollover(boolean b)
{
if (b != rollover)
{
rollover = b;
- firePropertyChange(ROLLOVER_CHANGED_PROPERTY, ! rollover, rollover);
+ firePropertyChange("rollover", ! rollover, rollover);
revalidate();
repaint();
}
@@ -553,37 +538,37 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
return i;
return -1;
- } // getComponentIndex()
+ } // getComponentIndex()
- /**
+ /**
* This method returns the component at the given index.
*
* @param index The index of the component.
*
* @return The component at the given index.
- */
+ */
public Component getComponentAtIndex(int index)
{
return getComponent(index);
- } // getComponentAtIndex()
+ } // getComponentAtIndex()
- /**
+ /**
* This method returns the margin property.
*
* @return The margin property.
- */
+ */
public Insets getMargin()
{
return margin;
- } // getMargin()
+ } // getMargin()
- /**
+ /**
* This method sets the margin property. The margin property determines the
* extra space between the children components of the JToolBar and the
* border.
*
* @param margin The margin property.
- */
+ */
public void setMargin(Insets margin)
{
if ((this.margin != null && margin == null)
@@ -595,142 +580,141 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
{
Insets oldMargin = this.margin;
this.margin = margin;
- firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, this.margin);
+ firePropertyChange("margin", oldMargin, this.margin);
revalidate();
repaint();
}
- } // setMargin()
+ } // setMargin()
- /**
+ /**
* This method returns the borderPainted property.
*
* @return The borderPainted property.
- */
+ */
public boolean isBorderPainted()
{
return paintBorder;
- } // isBorderPainted()
+ } // isBorderPainted()
- /**
+ /**
* This method sets the borderPainted property. If set to false, the border
* will not be painted.
*
* @param painted Whether the border will be painted.
- */
+ */
public void setBorderPainted(boolean painted)
{
if (painted != paintBorder)
{
paintBorder = painted;
- firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, ! paintBorder,
+ firePropertyChange("borderPainted", ! paintBorder,
paintBorder);
repaint();
}
- } // setBorderPainted()
+ } // setBorderPainted()
- /**
+ /**
* This method returns the floatable property.
*
* @return The floatable property.
- */
+ */
public boolean isFloatable()
{
return floatable;
- } // isFloatable()
+ } // isFloatable()
- /**
+ /**
* This method sets the floatable property. If set to false, the JToolBar
* cannot be dragged.
*
* @param floatable Whether the JToolBar can be dragged.
- */
+ */
public void setFloatable(boolean floatable)
{
if (floatable != this.floatable)
{
this.floatable = floatable;
- firePropertyChange(FLOATABLE_CHANGED_PROPERTY, ! floatable, floatable);
+ firePropertyChange("floatable", ! floatable, floatable);
}
- } // setFloatable()
+ } // setFloatable()
- /**
+ /**
* This method returns the orientation of the JToolBar.
*
* @return The orientation of the JToolBar.
- */
+ */
public int getOrientation()
{
return orientation;
- } // getOrientation()
+ } // getOrientation()
- /**
+ /**
* This method sets the layout manager to be used with the JToolBar.
*
* @param mgr The Layout Manager used with the JToolBar.
- */
+ */
public void setLayout(LayoutManager mgr)
{
- super.setLayout(mgr);
+ super.setLayout(mgr);
revalidate();
repaint();
- } // setLayout()
+ } // setLayout()
- /**
+ /**
* This method sets the orientation property for JToolBar.
*
* @param orientation The new orientation for JToolBar.
*
* @throws IllegalArgumentException If the orientation is not HORIZONTAL or
* VERTICAL.
- */
+ */
public void setOrientation(int orientation)
{
- if (orientation != HORIZONTAL && orientation != VERTICAL)
+ if (orientation != HORIZONTAL && orientation != VERTICAL)
throw new IllegalArgumentException(orientation
+ " is not a legal orientation");
- if (orientation != this.orientation)
- {
- int oldOrientation = this.orientation;
- this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
- this.orientation);
+ if (orientation != this.orientation)
+ {
+ int oldOrientation = this.orientation;
+ this.orientation = orientation;
+ firePropertyChange("orientation", oldOrientation, this.orientation);
revalidate();
repaint();
- }
- } // setOrientation()
+ }
+ } // setOrientation()
- /**
+ /**
* This method adds a Separator of default size to the JToolBar.
- */
+ */
public void addSeparator()
{
add(new Separator());
- } // addSeparator()
+ } // addSeparator()
- /**
+ /**
* This method adds a Separator with the given size to the JToolBar.
*
* @param size The size of the Separator.
- */
+ */
public void addSeparator(Dimension size)
{
add(new Separator(size));
- } // addSeparator()
+ } // addSeparator()
- /**
+ /**
* This method is used to create JButtons which can be added to the JToolBar
* for the given action.
*
* @param action The action to create a JButton for.
*
* @return The JButton created from the action.
- */
+ */
protected JButton createActionComponent(Action action)
{
return new JButton(action);
- } // createActionComponent()
+ } // createActionComponent()
- /**
+ /**
* This method creates a pre-configured PropertyChangeListener which updates
* the control as changes are made to the Action. However, this is no
* longer the recommended way of adding Actions to Containers. As such,
@@ -739,36 +723,36 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
* @param button The JButton to configure a PropertyChangeListener for.
*
* @return null.
- */
+ */
protected PropertyChangeListener createActionChangeListener(JButton button)
{
// XXX: As specified, this returns null. But seems kind of strange, usually deprecated methods don't just return null, verify!
return null;
- } // createActionChangeListener()
+ } // createActionChangeListener()
- /**
+ /**
* This method overrides Container's addImpl method. If a JButton is added,
* it is disabled.
*
* @param component The Component to add.
* @param constraints The Constraints placed on the component.
* @param index The index to place the Component at.
- */
+ */
protected void addImpl(Component component, Object constraints, int index)
{
// XXX: Sun says disable button but test cases show otherwise.
super.addImpl(component, constraints, index);
} // addImpl()
- /**
+ /**
* This method returns a String description of the JToolBar.
*
* @return A String description of the JToolBar.
- */
+ */
protected String paramString()
{
return "JToolBar";
- } // paramString()
+ } // paramString()
/**
* getAccessibleContext
@@ -779,7 +763,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
{
if (accessibleContext == null)
accessibleContext = new AccessibleJToolBar();
-
+
return accessibleContext;
}
}
diff --git a/libjava/javax/swing/JTree.java b/libjava/javax/swing/JTree.java
index 8d52257c536..170fd3014b2 100644
--- a/libjava/javax/swing/JTree.java
+++ b/libjava/javax/swing/JTree.java
@@ -1,5 +1,5 @@
/* JTree.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,10 +53,10 @@ import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.plaf.TreeUI;
-import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.TreeCellEditor;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreeModel;
@@ -70,14 +70,11 @@ public class JTree extends JComponent
{
private static final long serialVersionUID = 7559816092864483649L;
- public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath";
public static final String CELL_EDITOR_PROPERTY = "cellEditor";
public static final String CELL_RENDERER_PROPERTY = "cellRenderer";
public static final String EDITABLE_PROPERTY = "editable";
- public static final String EXPANDS_SELECTED_PATHS_PROPERTY = "expandsSelectedPaths";
public static final String INVOKES_STOP_CELL_EDITING_PROPERTY = "invokesStopCellEditing";
public static final String LARGE_MODEL_PROPERTY = "largeModel";
- public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath";
public static final String ROOT_VISIBLE_PROPERTY = "rootVisible";
public static final String ROW_HEIGHT_PROPERTY = "rowHeight";
public static final String SCROLLS_ON_EXPAND_PROPERTY = "scrollsOnExpand";
@@ -87,18 +84,40 @@ public class JTree extends JComponent
public static final String TREE_MODEL_PROPERTY = "model";
public static final String VISIBLE_ROW_COUNT_PROPERTY = "visibleRowCount";
- protected TreeCellEditor cellEditor;
- protected TreeCellRenderer cellRenderer;
+ /** @since 1.3 */
+ public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath";
+ /** @since 1.3 */
+ public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath";
+ /** @since 1.3 */
+ public static final String EXPANDS_SELECTED_PATHS_PROPERTY = "expandsSelectedPaths";
+
+ private static final Object EXPANDED = new Object();
+ private static final Object COLLAPSED = new Object();
+
+ private boolean dragEnabled;
+ private boolean expandsSelectedPaths;
+ private TreePath anchorSelectionPath;
+ private TreePath leadSelectionPath;
+
+ /*
+ * This contains the state of all nodes in the tree. Al/ entries map the
+ * TreePath of a note to to its state. Valid states are EXPANDED and
+ * COLLAPSED. Nodes not in this Hashtable are assumed state COLLAPSED.
+ */
+ private Hashtable nodeStates;
+
+ protected transient TreeCellEditor cellEditor;
+ protected transient TreeCellRenderer cellRenderer;
protected boolean editable;
protected boolean invokesStopCellEditing;
protected boolean largeModel;
protected boolean rootVisible;
protected int rowHeight;
protected boolean scrollsOnExpand;
- protected TreeSelectionModel selectionModel;
+ protected transient TreeSelectionModel selectionModel;
protected boolean showsRootHandles;
protected int toggleClickCount;
- protected TreeModel treeModel;
+ protected transient TreeModel treeModel;
protected int visibleRowCount;
/**
@@ -178,6 +197,13 @@ public class JTree extends JComponent
{
protected Object childValue;
protected boolean loadedChildren;
+
+ /**
+ * Currently not set or used by this class.
+ * It might be set and used in later versions of this class.
+ */
+ protected boolean hasChildren;
+
public DynamicUtilTreeNode(Object value,
Object children)
{
@@ -247,6 +273,39 @@ public class JTree extends JComponent
}
}
+ public int getRowForPath(TreePath path)
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getRowForPath(this, path);
+
+ return -1;
+ }
+
+ public TreePath getPathForRow(int row)
+ {
+ TreeUI ui = getUI();
+ return ui != null ? ui.getPathForRow(this, row) : null;
+ }
+
+ protected TreePath[] getPathBetweenRows(int index0, int index1)
+ {
+ TreeUI ui = getUI();
+
+ if (ui == null)
+ return null;
+
+ int minIndex = Math.min(index0, index1);
+ int maxIndex = Math.max(index0, index1);
+ TreePath[] paths = new TreePath[maxIndex - minIndex + 1];
+
+ for (int i = minIndex; i <= maxIndex; ++i)
+ paths[i - minIndex] = ui.getPathForRow(this, i);
+
+ return paths;
+ }
+
/**
* Creates a new <code>TreeModel</code> object.
*
@@ -511,13 +570,18 @@ public class JTree extends JComponent
}
/**
- * Sets the model to use in <code>JTree</object>.
+ * Sets the model to use in <code>JTree</code>.
*
* @param model the <code>TreeModel</code> to use
*/
public void setModel(TreeModel model)
{
+ if (treeModel == model)
+ return;
+
+ TreeModel oldValue = treeModel;
treeModel = model;
+ firePropertyChange(TREE_MODEL_PROPERTY, oldValue, model);
}
/**
@@ -544,7 +608,7 @@ public class JTree extends JComponent
boolean oldValue = editable;
editable = flag;
- firePropertyChange("editable", oldValue, editable);
+ firePropertyChange(EDITABLE_PROPERTY, oldValue, editable);
}
/**
@@ -560,7 +624,12 @@ public class JTree extends JComponent
public void setRootVisible(boolean flag)
{
+ if (rootVisible == flag)
+ return;
+
+ boolean oldValue = rootVisible;
rootVisible = flag;
+ firePropertyChange(ROOT_VISIBLE_PROPERTY, oldValue, flag);
}
public boolean getShowsRootHandles()
@@ -570,7 +639,12 @@ public class JTree extends JComponent
public void setShowsRootHandles(boolean flag)
{
+ if (showsRootHandles == flag)
+ return;
+
+ boolean oldValue = showsRootHandles;
showsRootHandles = flag;
+ firePropertyChange(SHOWS_ROOT_HANDLES_PROPERTY, oldValue, flag);
}
public TreeCellEditor getCellEditor()
@@ -580,7 +654,12 @@ public class JTree extends JComponent
public void setCellEditor(TreeCellEditor editor)
{
+ if (cellEditor == editor)
+ return;
+
+ TreeCellEditor oldValue = cellEditor;
cellEditor = editor;
+ firePropertyChange(CELL_EDITOR_PROPERTY, oldValue, editor);
}
public TreeCellRenderer getCellRenderer()
@@ -590,7 +669,12 @@ public class JTree extends JComponent
public void setCellRenderer(TreeCellRenderer newRenderer)
{
+ if (cellRenderer == newRenderer)
+ return;
+
+ TreeCellRenderer oldValue = cellRenderer;
cellRenderer = newRenderer;
+ firePropertyChange(CELL_RENDERER_PROPERTY, oldValue, newRenderer);
}
public TreeSelectionModel getSelectionModel()
@@ -600,7 +684,12 @@ public class JTree extends JComponent
public void setSelectionModel(TreeSelectionModel model)
{
+ if (selectionModel == model)
+ return;
+
+ TreeSelectionModel oldValue = selectionModel;
selectionModel = model;
+ firePropertyChange(SELECTION_MODEL_PROPERTY, oldValue, model);
}
public int getVisibleRowCount()
@@ -610,7 +699,12 @@ public class JTree extends JComponent
public void setVisibleRowCount(int rows)
{
+ if (visibleRowCount == rows)
+ return;
+
+ int oldValue = visibleRowCount;
visibleRowCount = rows;
+ firePropertyChange(VISIBLE_ROW_COUNT_PROPERTY, oldValue, rows);
}
public boolean isLargeModel()
@@ -620,7 +714,12 @@ public class JTree extends JComponent
public void setLargeModel(boolean large)
{
+ if (largeModel == large)
+ return;
+
+ boolean oldValue = largeModel;
largeModel = large;
+ firePropertyChange(LARGE_MODEL_PROPERTY, oldValue, large);
}
public int getRowHeight()
@@ -630,7 +729,17 @@ public class JTree extends JComponent
public void setRowHeight(int height)
{
+ if (rowHeight == height)
+ return;
+
+ int oldValue = rowHeight;
rowHeight = height;
+ firePropertyChange(ROW_HEIGHT_PROPERTY, oldValue, height);
+ }
+
+ public boolean isFixedRowHeight()
+ {
+ return rowHeight > 0;
}
public boolean getInvokesStopCellEditing()
@@ -640,7 +749,12 @@ public class JTree extends JComponent
public void setInvokesStopCellEditing(boolean invoke)
{
+ if (invokesStopCellEditing == invoke)
+ return;
+
+ boolean oldValue = invokesStopCellEditing;
invokesStopCellEditing = invoke;
+ firePropertyChange(INVOKES_STOP_CELL_EDITING_PROPERTY, oldValue, invoke);
}
/**
@@ -656,9 +770,32 @@ public class JTree extends JComponent
*/
public void setToggleClickCount(int count)
{
+ if (toggleClickCount == count)
+ return;
+
+ int oldValue = toggleClickCount;
toggleClickCount = count;
+ firePropertyChange(TOGGLE_CLICK_COUNT_PROPERTY, oldValue, count);
+ }
+
+ public void scrollPathToVisible(TreePath path)
+ {
+ if (path == null)
+ return;
+
+ Rectangle rect = getPathBounds(path);
+
+ if (rect == null)
+ return;
+
+ scrollRectToVisible(rect);
}
+ public void scrollRowToVisible(int row)
+ {
+ scrollPathToVisible(getPathForRow(row));
+ }
+
public boolean getScrollsOnExpand()
{
return scrollsOnExpand;
@@ -666,6 +803,590 @@ public class JTree extends JComponent
public void setScrollsOnExpand(boolean scroll)
{
+ if (scrollsOnExpand == scroll)
+ return;
+
+ boolean oldValue = scrollsOnExpand;
scrollsOnExpand = scroll;
+ firePropertyChange(SCROLLS_ON_EXPAND_PROPERTY, oldValue, scroll);
+ }
+
+ public void setSelectionPath(TreePath path)
+ {
+ selectionModel.setSelectionPath(path);
+ }
+
+ public void setSelectionPaths(TreePath[] paths)
+ {
+ selectionModel.setSelectionPaths(paths);
+ }
+
+ public void setSelectionRow(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ selectionModel.setSelectionPath(path);
+ }
+
+ public void setSelectionRows(int[] rows)
+ {
+ // Make sure we have an UI so getPathForRow() does not return null.
+ if (rows == null || getUI() == null)
+ return;
+
+ TreePath[] paths = new TreePath[rows.length];
+
+ for (int i = rows.length - 1; i >= 0; --i)
+ paths[i] = getPathForRow(rows[i]);
+
+ setSelectionPaths(paths);
+ }
+
+ public void setSelectionInterval(int index0, int index1)
+ {
+ TreePath[] paths = getPathBetweenRows(index0, index1);
+
+ if (paths != null)
+ setSelectionPaths(paths);
+ }
+
+ public void addSelectionPath(TreePath path)
+ {
+ selectionModel.addSelectionPath(path);
+ }
+
+ public void addSelectionPaths(TreePath[] paths)
+ {
+ selectionModel.addSelectionPaths(paths);
+ }
+
+ public void addSelectionRow(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ selectionModel.addSelectionPath(path);
+ }
+
+ public void addSelectionRows(int[] rows)
+ {
+ // Make sure we have an UI so getPathForRow() does not return null.
+ if (rows == null || getUI() == null)
+ return;
+
+ TreePath[] paths = new TreePath[rows.length];
+
+ for (int i = rows.length - 1; i >= 0; --i)
+ paths[i] = getPathForRow(rows[i]);
+
+ addSelectionPaths(paths);
+ }
+
+ public void addSelectionInterval(int index0, int index1)
+ {
+ TreePath[] paths = getPathBetweenRows(index0, index1);
+
+ if (paths != null)
+ addSelectionPaths(paths);
+ }
+
+ public void removeSelectionPath(TreePath path)
+ {
+ selectionModel.removeSelectionPath(path);
+ }
+
+ public void removeSelectionPaths(TreePath[] paths)
+ {
+ selectionModel.removeSelectionPaths(paths);
+ }
+
+ public void removeSelectionRow(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ selectionModel.removeSelectionPath(path);
+ }
+
+ public void removeSelectionRows(int[] rows)
+ {
+ // Make sure we have an UI so getPathForRow() does not return null.
+ if (rows == null || getUI() == null)
+ return;
+
+ TreePath[] paths = new TreePath[rows.length];
+
+ for (int i = rows.length - 1; i >= 0; --i)
+ paths[i] = getPathForRow(rows[i]);
+
+ removeSelectionPaths(paths);
+ }
+
+ public void removeSelectionInterval(int index0, int index1)
+ {
+ TreePath[] paths = getPathBetweenRows(index0, index1);
+
+ if (paths != null)
+ removeSelectionPaths(paths);
+ }
+
+ public void clearSelection()
+ {
+ selectionModel.clearSelection();
+ }
+
+ public TreePath getLeadSelectionPath()
+ {
+ return leadSelectionPath;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setLeadSelectionPath(TreePath path)
+ {
+ if (leadSelectionPath == path)
+ return;
+
+ TreePath oldValue = leadSelectionPath;
+ leadSelectionPath = path;
+ firePropertyChange(LEAD_SELECTION_PATH_PROPERTY, oldValue, path);
+ }
+
+ /**
+ * @since 1.3
+ */
+ public TreePath getAnchorSelectionPath()
+ {
+ return anchorSelectionPath;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setAnchorSelectionPath(TreePath path)
+ {
+ if (anchorSelectionPath == path)
+ return;
+
+ TreePath oldValue = anchorSelectionPath;
+ anchorSelectionPath = path;
+ firePropertyChange(ANCHOR_SELECTION_PATH_PROPERTY, oldValue, path);
+ }
+
+ public int getLeadSelectionRow()
+ {
+ return selectionModel.getLeadSelectionRow();
+ }
+
+ public int getMaxSelectionRow()
+ {
+ return selectionModel.getMaxSelectionRow();
+ }
+
+ public int getMinSelectionRow()
+ {
+ return selectionModel.getMinSelectionRow();
+ }
+
+ public int getSelectionCount()
+ {
+ return selectionModel.getSelectionCount();
+ }
+
+ public TreePath getSelectionPath()
+ {
+ return selectionModel.getSelectionPath();
+ }
+
+ public TreePath[] getSelectionPaths()
+ {
+ return selectionModel.getSelectionPaths();
+ }
+
+ public int[] getSelectionRows()
+ {
+ return selectionModel.getSelectionRows();
+ }
+
+ public boolean isPathSelected(TreePath path)
+ {
+ return selectionModel.isPathSelected(path);
+ }
+
+ public boolean isRowSelected(int row)
+ {
+ return selectionModel.isRowSelected(row);
+ }
+
+ public boolean isSelectionEmpty()
+ {
+ return selectionModel.isSelectionEmpty();
+ }
+
+ /**
+ * Return the value of the <code>dragEnabled</code> property.
+ *
+ * @return the value
+ *
+ * @since 1.4
+ */
+ public boolean getDragEnabled()
+ {
+ return dragEnabled;
+ }
+
+ /**
+ * Set the <code>dragEnabled</code> property.
+ *
+ * @param enabled new value
+ *
+ * @since 1.4
+ */
+ public void setDragEnabled(boolean enabled)
+ {
+ dragEnabled = enabled;
+ }
+
+ public int getRowCount()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getRowCount(this);
+
+ return 0;
+ }
+
+ public void collapsePath(TreePath path)
+ {
+ setExpandedState(path, false);
+ }
+
+ public void collapseRow(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ collapsePath(path);
+ }
+
+ public void expandPath(TreePath path)
+ {
+ // Don't expand if last path component is a leaf node.
+ if ((path == null)
+ || (treeModel.isLeaf(path.getLastPathComponent())))
+ return;
+
+ setExpandedState(path, true);
+ }
+
+ public void expandRow(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ expandPath(path);
+ }
+
+ public boolean isCollapsed(TreePath path)
+ {
+ return ! isExpanded(path);
+ }
+
+ public boolean isCollapsed(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return false;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ return isCollapsed(path);
+
+ return false;
+ }
+
+ public boolean isExpanded(TreePath path)
+ {
+ if (path == null)
+ return false;
+
+ Object state = nodeStates.get(path);
+
+ if ((state == null) || (state != EXPANDED))
+ return false;
+
+ TreePath parent = path.getParentPath();
+
+ if (parent != null)
+ return isExpanded(parent);
+
+ return true;
+ }
+
+ public boolean isExpanded(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return false;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ return isExpanded(path);
+
+ return false;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public boolean getExpandsSelectedPaths()
+ {
+ return expandsSelectedPaths;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setExpandsSelectedPaths(boolean flag)
+ {
+ if (expandsSelectedPaths == flag)
+ return;
+
+ boolean oldValue = expandsSelectedPaths;
+ expandsSelectedPaths = flag;
+ firePropertyChange(EXPANDS_SELECTED_PATHS_PROPERTY, oldValue, flag);
+ }
+
+ public Rectangle getPathBounds(TreePath path)
+ {
+ TreeUI ui = getUI();
+
+ if (ui == null)
+ return null;
+
+ return ui.getPathBounds(this, path);
+ }
+
+ public Rectangle getRowBounds(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ return getPathBounds(path);
+
+ return null;
+ }
+
+ public boolean isEditing()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.isEditing(this);
+
+ return false;
+ }
+
+ public boolean stopEditing()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.stopEditing(this);
+
+ return false;
+ }
+
+ public void cancelEditing()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ ui.cancelEditing(this);
+ }
+
+ public void startEditingAtPath(TreePath path)
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ ui.startEditingAtPath(this, path);
+ }
+
+ public TreePath getEditingPath()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getEditingPath(this);
+
+ return null;
+ }
+
+ public TreePath getPathForLocation(int x, int y)
+ {
+ TreePath path = getClosestPathForLocation(x, y);
+
+ if (path != null)
+ {
+ Rectangle rect = getPathBounds(path);
+
+ if ((rect != null) && rect.contains(x, y))
+ return path;
+ }
+
+ return null;
+ }
+
+ public int getRowForLocation(int x, int y)
+ {
+ TreePath path = getPathForLocation(x, y);
+
+ if (path != null)
+ return getRowForPath(path);
+
+ return -1;
+ }
+
+ public TreePath getClosestPathForLocation(int x, int y)
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getClosestPathForLocation(this, x, y);
+
+ return null;
+ }
+
+ public int getClosestRowForLocation(int x, int y)
+ {
+ TreePath path = getClosestPathForLocation(x, y);
+
+ if (path != null)
+ return getRowForPath(path);
+
+ return -1;
+ }
+
+ public Object getLastSelectedPathComponent()
+ {
+ TreePath path = getSelectionPath();
+
+ if (path != null)
+ return path.getLastPathComponent();
+
+ return null;
+ }
+
+ private void checkExpandParents(TreePath path)
+ throws ExpandVetoException
+ {
+ TreePath parent = path.getParentPath();
+
+ if (parent != null)
+ checkExpandParents(parent);
+
+ fireTreeWillExpand(path);
+ }
+
+ private void doExpandParents(TreePath path, boolean state)
+ {
+ TreePath parent = path.getParentPath();
+
+ if (isExpanded(parent))
+ return;
+
+ if (parent != null)
+ doExpandParents(parent, false);
+
+ nodeStates.put(path, state ? EXPANDED : COLLAPSED);
+ }
+
+ protected void setExpandedState(TreePath path, boolean state)
+ {
+ if (path == null)
+ return;
+
+ TreePath parent = path.getParentPath();
+
+ try
+ {
+ while (parent != null)
+ checkExpandParents(parent);
+ }
+ catch (ExpandVetoException e)
+ {
+ // Expansion vetoed.
+ return;
+ }
+
+ doExpandParents(path, state);
+ }
+
+ protected void clearToggledPaths()
+ {
+ nodeStates.clear();
+ }
+
+ protected Enumeration getDescendantToggledPaths(TreePath parent)
+ {
+ if (parent == null)
+ return null;
+
+ Enumeration nodes = nodeStates.keys();
+ Vector result = new Vector();
+
+ while (nodes.hasMoreElements())
+ {
+ TreePath path = (TreePath) nodes.nextElement();
+
+ if (path.isDescendant(parent))
+ result.addElement(path);
+ }
+
+ return result.elements();
+ }
+
+ public boolean hasBeenExpanded(TreePath path)
+ {
+ if (path == null)
+ return false;
+
+ return nodeStates.get(path) != null;
+ }
+
+ public boolean isVisible(TreePath path)
+ {
+ if (path == null)
+ return false;
+
+ TreePath parent = path.getParentPath();
+
+ if (parent == null)
+ return true; // Is root node.
+
+ return isExpanded(parent);
+ }
+
+ public void makeVisible(TreePath path)
+ {
+ if (path == null)
+ return;
+
+ expandPath(path.getParentPath());
+ }
+
+ public boolean isPathEditable(TreePath path)
+ {
+ return isEditable();
}
}
diff --git a/libjava/javax/swing/JViewport.java b/libjava/javax/swing/JViewport.java
index 9b26c8b21af..657f192fd04 100644
--- a/libjava/javax/swing/JViewport.java
+++ b/libjava/javax/swing/JViewport.java
@@ -1,5 +1,5 @@
/* JViewport.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,6 +45,7 @@ import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
+import javax.swing.border.Border;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.ViewportUI;
@@ -157,12 +158,23 @@ public class JViewport extends JComponent
fireStateChanged();
}
+ /**
+ * Returns the viewSize when set, or the preferred size of the set
+ * Component view. If no viewSize and no Component view is set an
+ * empty Dimension is returned.
+ */
public Dimension getViewSize()
{
if (isViewSizeSet)
return viewSize;
else
- return getView().getSize();
+ {
+ Component view = getView();
+ if (view != null)
+ return view.getPreferredSize();
+ else
+ return new Dimension();
+ }
}
@@ -281,7 +293,7 @@ public class JViewport extends JComponent
fireStateChanged();
}
- public void addImpl(Component comp, Object constraints, int index)
+ protected void addImpl(Component comp, Object constraints, int index)
{
if (getComponentCount() > 0)
remove(getComponents()[0]);
@@ -374,4 +386,10 @@ public class JViewport extends JComponent
{
super.setUI(ui);
}
+
+ public final void setBorder(Border border)
+ {
+ if (border != null)
+ throw new IllegalArgumentException();
+ }
}
diff --git a/libjava/javax/swing/JWindow.java b/libjava/javax/swing/JWindow.java
index 3601b694105..94efa3aa795 100644
--- a/libjava/javax/swing/JWindow.java
+++ b/libjava/javax/swing/JWindow.java
@@ -1,5 +1,5 @@
/* JWindow.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,10 +44,10 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
+import java.awt.GraphicsConfiguration;
import java.awt.LayoutManager;
import java.awt.Window;
import java.awt.event.KeyEvent;
-import java.awt.event.WindowEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
@@ -62,180 +62,144 @@ public class JWindow extends Window implements Accessible, RootPaneContainer
{
private static final long serialVersionUID = 5420698392125238833L;
- public static final int HIDE_ON_CLOSE = 0;
- public static final int EXIT_ON_CLOSE = 1;
- public static final int DISPOSE_ON_CLOSE = 2;
- public static final int DO_NOTHING_ON_CLOSE = 3;
-
- protected AccessibleContext accessibleContext;
-
- private int close_action = EXIT_ON_CLOSE;
-
-
- /***************************************************
- *
- *
- * constructors
- *
- *
- *************/
-
- public JWindow()
- {
- super(SwingUtilities.getOwnerFrame());
- }
-
- // huuu ?
- public JWindow(Frame f)
- {
- super(f);
- }
-
- /***************************************************
- *
- *
- * methods, this part is shared with JDialog, JFrame
- *
- *
- *************/
+ protected JRootPane rootPane;
+ protected boolean rootPaneCheckingEnabled;
+ protected AccessibleContext accessibleContext;
+ public JWindow()
+ {
+ super(SwingUtilities.getOwnerFrame());
+ windowInit();
+ }
+
+ public JWindow(GraphicsConfiguration gc)
+ {
+ super(SwingUtilities.getOwnerFrame(), gc);
+ windowInit();
+ }
- private boolean checking;
- protected JRootPane rootPane;
-
-
- protected void frameInit()
- {
- super.setLayout(new BorderLayout(1, 1));
- getRootPane(); // will do set/create
- }
-
+ public JWindow(Frame owner)
+ {
+ super(owner);
+ windowInit();
+ }
+
+ public JWindow(Window owner)
+ {
+ super(owner);
+ windowInit();
+ }
+
+ public JWindow(Window owner, GraphicsConfiguration gc)
+ {
+ super(owner, gc);
+ windowInit();
+ }
+
+ protected void windowInit()
+ {
+ super.setLayout(new BorderLayout(1, 1));
+ getRootPane(); // will do set/create
+ }
+
public Dimension getPreferredSize()
{
- Dimension d = super.getPreferredSize();
- return d;
+ return super.getPreferredSize();
}
- public void setLayout(LayoutManager manager)
- { super.setLayout(manager); }
+ public void setLayout(LayoutManager manager)
+ {
+ super.setLayout(manager);
+ }
- public void setLayeredPane(JLayeredPane layeredPane)
- { getRootPane().setLayeredPane(layeredPane); }
-
- public JLayeredPane getLayeredPane()
- { return getRootPane().getLayeredPane(); }
-
- public JRootPane getRootPane()
- {
- if (rootPane == null)
- setRootPane(createRootPane());
- return rootPane;
- }
-
- public void setRootPane(JRootPane root)
- {
- if (rootPane != null)
- remove(rootPane);
-
- rootPane = root;
- add(rootPane, BorderLayout.CENTER);
- }
-
- public JRootPane createRootPane()
- { return new JRootPane(); }
-
- public Container getContentPane()
- { return getRootPane().getContentPane(); }
-
- public void setContentPane(Container contentPane)
- { getRootPane().setContentPane(contentPane); }
-
- public Component getGlassPane()
- { return getRootPane().getGlassPane(); }
-
- public void setGlassPane(Component glassPane)
- { getRootPane().setGlassPane(glassPane); }
+ public void setLayeredPane(JLayeredPane layeredPane)
+ {
+ getRootPane().setLayeredPane(layeredPane);
+ }
-
- protected void addImpl(Component comp, Object constraints, int index)
- { super.addImpl(comp, constraints, index); }
+ public JLayeredPane getLayeredPane()
+ {
+ return getRootPane().getLayeredPane();
+ }
+
+ public JRootPane getRootPane()
+ {
+ if (rootPane == null)
+ setRootPane(createRootPane());
+ return rootPane;
+ }
+ protected void setRootPane(JRootPane root)
+ {
+ if (rootPane != null)
+ remove(rootPane);
- public void remove(Component comp)
- { getContentPane().remove(comp); }
-
- protected boolean isRootPaneCheckingEnabled()
- { return checking; }
+ rootPane = root;
+ add(rootPane, BorderLayout.CENTER);
+ }
+ protected JRootPane createRootPane()
+ {
+ return new JRootPane();
+ }
- protected void setRootPaneCheckingEnabled(boolean enabled)
- { checking = enabled; }
+ public Container getContentPane()
+ {
+ return getRootPane().getContentPane();
+ }
+ public void setContentPane(Container contentPane)
+ {
+ getRootPane().setContentPane(contentPane);
+ }
- public void update(Graphics g)
- { paint(g); }
+ public Component getGlassPane()
+ {
+ return getRootPane().getGlassPane();
+ }
- protected void processKeyEvent(KeyEvent e)
- { super.processKeyEvent(e); }
+ public void setGlassPane(Component glassPane)
+ {
+ getRootPane().setGlassPane(glassPane);
+ }
- /////////////////////////////////////////////////////////////////////////////////
-
- public AccessibleContext getAccessibleContext()
- { return null; }
-
- int getDefaultCloseOperation()
- { return close_action; }
-
- protected String paramString()
- { return "JWindow"; }
-
-
- protected void processWindowEvent(WindowEvent e)
- {
- // System.out.println("PROCESS_WIN_EV-1: " + e);
- super.processWindowEvent(e);
- // System.out.println("PROCESS_WIN_EV-2: " + e);
- switch (e.getID())
- {
- case WindowEvent.WINDOW_CLOSING:
- {
- switch(close_action)
- {
- case EXIT_ON_CLOSE:
- {
- System.out.println("user requested exit on close");
- System.exit(1);
- break;
- }
- case DISPOSE_ON_CLOSE:
- {
- System.out.println("user requested dispose on close");
- dispose();
- break;
- }
- case HIDE_ON_CLOSE:
- {
- setVisible(false);
- break;
- }
- case DO_NOTHING_ON_CLOSE:
- break;
- }
- break;
- }
-
- case WindowEvent.WINDOW_CLOSED:
- case WindowEvent.WINDOW_OPENED:
- case WindowEvent.WINDOW_ICONIFIED:
- case WindowEvent.WINDOW_DEICONIFIED:
- case WindowEvent.WINDOW_ACTIVATED:
- case WindowEvent.WINDOW_DEACTIVATED:
- break;
- }
- }
-
-
- void setDefaultCloseOperation(int operation)
- { close_action = operation; }
+ protected void addImpl(Component comp, Object constraints, int index)
+ {
+ super.addImpl(comp, constraints, index);
+ }
+
+ public void remove(Component comp)
+ {
+ getContentPane().remove(comp);
+ }
+ protected boolean isRootPaneCheckingEnabled()
+ {
+ return rootPaneCheckingEnabled;
+ }
+
+ protected void setRootPaneCheckingEnabled(boolean enabled)
+ {
+ rootPaneCheckingEnabled = enabled;
+ }
+
+ public void update(Graphics g)
+ {
+ paint(g);
+ }
+
+ protected void processKeyEvent(KeyEvent e)
+ {
+ super.processKeyEvent(e);
+ }
+
+ public AccessibleContext getAccessibleContext()
+ {
+ return null;
+ }
+
+ protected String paramString()
+ {
+ return "JWindow";
+ }
}
diff --git a/libjava/javax/swing/KeyStroke.java b/libjava/javax/swing/KeyStroke.java
index afdbae8300a..239c8dd1f84 100644
--- a/libjava/javax/swing/KeyStroke.java
+++ b/libjava/javax/swing/KeyStroke.java
@@ -1,5 +1,5 @@
/* KeyStroke.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing;
import java.awt.AWTKeyStroke;
@@ -45,12 +46,15 @@ public class KeyStroke
extends AWTKeyStroke
implements Serializable
{
- static final long serialVersionUID = -9060180771037902530L;
- private KeyStroke() {
+ private static final long serialVersionUID = -9060180771037902530L;
+
+ // Called by java.awt.AWTKeyStroke.registerSubclass via reflection.
+ private KeyStroke()
+ {
}
- protected KeyStroke(char keyChar, int keyCode, int modifiers,
- boolean onKeyRelease)
+ private KeyStroke(char keyChar, int keyCode, int modifiers,
+ boolean onKeyRelease)
{
super(keyChar, keyCode, modifiers, onKeyRelease);
}
@@ -92,9 +96,22 @@ public class KeyStroke
return (KeyStroke) getAWTKeyStroke(keyCode, modifiers);
}
+ /**
+ * Returns the KeyStroke according to <code>getAWTKeyStroke()</code>.
+ * But it returns null instead of throwing
+ * <code>IllegalArugmentException</code> when
+ * the keystoke sequence cannot be parsed from the given string.
+ */
public static KeyStroke getKeyStroke(String str)
{
- return (KeyStroke) getAWTKeyStroke(str);
+ try
+ {
+ return (KeyStroke) getAWTKeyStroke(str);
+ }
+ catch (IllegalArgumentException iae)
+ {
+ return null;
+ }
}
public static KeyStroke getKeyStrokeForEvent(KeyEvent event)
diff --git a/libjava/javax/swing/DefaultCellRenderer.java b/libjava/javax/swing/LayoutFocusTraversalPolicy.java
index fca2f1d70c9..ab47a3c9f4f 100644
--- a/libjava/javax/swing/DefaultCellRenderer.java
+++ b/libjava/javax/swing/LayoutFocusTraversalPolicy.java
@@ -1,5 +1,5 @@
-/* DefaultCellRenderer.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* LayoutFocusTraversalPolicy.java --
+ Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,40 +35,53 @@ 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 javax.swing;
-// this is what SUN basically told us to do so:
-// no icon though as that's not implemented yet....
+package javax.swing;
import java.awt.Component;
+import java.io.Serializable;
+import java.util.Comparator;
-public class DefaultCellRenderer extends JLabel implements ListCellRenderer
+/**
+ * @author Graydon Hoare
+ * @author Michael Koch
+ *
+ * @since 1.4
+ */
+public class LayoutFocusTraversalPolicy
+ extends SortingFocusTraversalPolicy
+ implements Serializable
{
- public Component getListCellRendererComponent(JList list,
- Object value,
- int index,
- boolean isSelected,
- boolean cellHasFocus)
+ private static class LayoutComparator
+ implements Comparator
+ {
+ public LayoutComparator()
{
- String s = value.toString();
- setText(s);
-
- // System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + s);
-
+ // Do nothing here.
+ }
+
+ public int compare(Object o1, Object o2)
+ {
+ Component comp1 = (Component) o1;
+ Component comp2 = (Component) o2;
- if (isSelected)
- {
- setBackground(list.getSelectionBackground());
- setForeground(list.getSelectionForeground());
- }
- else
- {
- setBackground(list.getBackground());
- setForeground(list.getForeground());
- }
+ int x1 = comp1.getX();
+ int y1 = comp1.getY();
+ int x2 = comp2.getX();
+ int y2 = comp2.getY();
+
+ if (x1 == x2 && y1 == y2)
+ return 0;
+
+ if ((y1 < y2) || ((y1 == y2) && (x1 < x2)))
+ return -1;
- setEnabled(list.isEnabled());
- setFont(list.getFont());
- return this;
+ return 1;
}
+ }
+
+ public LayoutFocusTraversalPolicy()
+ {
+ super(new LayoutComparator());
+ }
}
diff --git a/libjava/javax/swing/LookAndFeel.java b/libjava/javax/swing/LookAndFeel.java
index 3a56a114943..a2508386d5e 100644
--- a/libjava/javax/swing/LookAndFeel.java
+++ b/libjava/javax/swing/LookAndFeel.java
@@ -58,6 +58,12 @@ public abstract class LookAndFeel
public abstract String getDescription();
+ public static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue)
+ {
+ Object value = Toolkit.getDefaultToolkit().getDesktopProperty(systemPropertyName);
+ return value != null ? value : fallbackValue;
+ }
+
public abstract String getID();
public abstract String getName();
diff --git a/libjava/javax/swing/MenuSelectionManager.java b/libjava/javax/swing/MenuSelectionManager.java
index 2e93c01e934..f78e21467b2 100644
--- a/libjava/javax/swing/MenuSelectionManager.java
+++ b/libjava/javax/swing/MenuSelectionManager.java
@@ -271,10 +271,10 @@ public class MenuSelectionManager
MenuElement[] subComponents = ((MenuElement) mouseOverMenuComp)
.getSubElements();
- for (int i = 0; i < subComponents.length; i++)
- {
- subComponents[i].processMouseEvent(event, path, manager);
- }
+ for (int i = 0; i < subComponents.length; i++)
+ {
+ subComponents[i].processMouseEvent(event, path, manager);
+ }
*/
}
}
diff --git a/libjava/javax/swing/OverlayLayout.java b/libjava/javax/swing/OverlayLayout.java
index 1e1d4aeff0d..706ffe2a2f6 100644
--- a/libjava/javax/swing/OverlayLayout.java
+++ b/libjava/javax/swing/OverlayLayout.java
@@ -51,7 +51,7 @@ import java.io.Serializable;
public class OverlayLayout
implements LayoutManager2, Serializable
{
- static final long serialVersionUID = 18082829169631543L;
+ private static final long serialVersionUID = 18082829169631543L;
//-------------------------------------------------------------
// Variables --------------------------------------------------
diff --git a/libjava/javax/swing/RepaintManager.java b/libjava/javax/swing/RepaintManager.java
index 1c9208e7a3b..c29ba787e37 100644
--- a/libjava/javax/swing/RepaintManager.java
+++ b/libjava/javax/swing/RepaintManager.java
@@ -263,7 +263,7 @@ public class RepaintManager
&& ancestor instanceof JComponent
&& ((JComponent) ancestor).isValidateRoot())
component = (JComponent) ancestor;
-
+
if (invalidComponents.contains(component))
return;
diff --git a/libjava/javax/swing/ScrollPaneLayout.java b/libjava/javax/swing/ScrollPaneLayout.java
index 0da8f18e549..a0461b4d037 100644
--- a/libjava/javax/swing/ScrollPaneLayout.java
+++ b/libjava/javax/swing/ScrollPaneLayout.java
@@ -57,7 +57,7 @@ import javax.swing.border.Border;
public class ScrollPaneLayout
implements LayoutManager, ScrollPaneConstants, Serializable
{
- static final long serialVersionUID = -4480022884523193743L;
+ private static final long serialVersionUID = -4480022884523193743L;
public static class UIResource extends ScrollPaneLayout
implements javax.swing.plaf.UIResource {
@@ -240,7 +240,7 @@ public class ScrollPaneLayout
if (viewportBorder != null)
{
- viewportInsets = viewportBorder.getBorderInsets(parent);
+ viewportInsets = viewportBorder.getBorderInsets(parent);
if (viewportInsets != null)
viewportInsetsSize.setSize(viewportInsets.left + viewportInsets.right,
viewportInsets.top + viewportInsets.bottom);
@@ -311,19 +311,19 @@ public class ScrollPaneLayout
if (viewportBorder != null)
{
- viewportInsets = viewportBorder.getBorderInsets(parent);
+ viewportInsets = viewportBorder.getBorderInsets(parent);
if (viewportInsets != null)
viewportInsetsSize.setSize(viewportInsets.left + viewportInsets.right,
viewportInsets.top + viewportInsets.bottom);
}
-
+
if (insets != null)
insetsSize.setSize(insets.left + insets.right,
insets.top + insets.bottom);
maybeSetMinimumSize(colHead, columnHeaderSize);
maybeSetMinimumSize(rowHead, rowHeaderSize);
-
+
if (vsbPolicy != VERTICAL_SCROLLBAR_NEVER)
maybeSetMinimumSize(vsb, verticalScrollBarSize);
@@ -420,7 +420,7 @@ public class ScrollPaneLayout
if (!showVsb)
x3 = x4;
-
+
if (!showHsb)
y3 = y4;
@@ -438,7 +438,7 @@ public class ScrollPaneLayout
if (showVsb)
{
vsb.setVisible(true);
- vsb.setBounds(new Rectangle(x3, y2, x4-x3, y3-y2));
+ vsb.setBounds(new Rectangle(x3, y2, x4-x3, y3-y2));
}
else if (vsb != null)
vsb.setVisible(false);
@@ -446,7 +446,7 @@ public class ScrollPaneLayout
if (showHsb)
{
hsb.setVisible(true);
- hsb.setBounds(new Rectangle(x2, y3, x3-x2, y4-y3));
+ hsb.setBounds(new Rectangle(x2, y3, x3-x2, y4-y3));
}
else if (hsb != null)
hsb.setVisible(false);
diff --git a/libjava/javax/swing/SizeRequirements.java b/libjava/javax/swing/SizeRequirements.java
index eb641fbd1c7..dd34d9cd97b 100644
--- a/libjava/javax/swing/SizeRequirements.java
+++ b/libjava/javax/swing/SizeRequirements.java
@@ -47,7 +47,7 @@ import java.io.Serializable;
*/
public class SizeRequirements implements Serializable
{
- static final long serialVersionUID = 9217749429906736553L;
+ private static final long serialVersionUID = 9217749429906736553L;
//-------------------------------------------------------------
// Variables --------------------------------------------------
diff --git a/libjava/javax/swing/SortingFocusTraversalPolicy.java b/libjava/javax/swing/SortingFocusTraversalPolicy.java
new file mode 100644
index 00000000000..07a4e656145
--- /dev/null
+++ b/libjava/javax/swing/SortingFocusTraversalPolicy.java
@@ -0,0 +1,333 @@
+/* SortingFocusTraversalPolicy.java --
+ Copyright (C) 2005 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 javax.swing;
+
+import java.awt.Component;
+import java.awt.Container;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.TreeSet;
+
+/**
+ * @author Graydon Hoare
+ * @author Michael Koch
+ *
+ * @since 1.4
+ */
+public class SortingFocusTraversalPolicy
+ extends InternalFrameFocusTraversalPolicy
+{
+ /**
+ * The comparator used to sort elements in the focus traversal cycle
+ * managed by this class.
+ */
+ Comparator comparator;
+
+ /**
+ * <p>Whether or not to perform an "implicit DownCycle" when selecting
+ * successor components within a focus cycle.</p>
+ *
+ * <p>When this is true, requesting the "next" component following a
+ * component which is a focus cycle root (and, necessarily, a container)
+ * will enter the focus cycle root of that container, and return its
+ * default focus.</p>
+ *
+ * <p>When this property is false, requesting the "next" component will
+ * simply advance within the containing focus cycle, subject to the
+ * {@link #comparator} order and the {@link #accept} judgment.</p>
+ *
+ * @see #getNextFocusableComponent
+ */
+ boolean implicitDownCycleTraversal = true;
+
+ /**
+ * Creates a new <code>SortingFocusTraversalPolicy</code> with no
+ * comparator set.
+ */
+ protected SortingFocusTraversalPolicy()
+ {
+ // Do nothing here.
+ }
+
+ /**
+ * Creates a new <code>SortingFocusTraversalPolicy</code> with the given
+ * comparator set.
+ *
+ * @param the comparator to set
+ */
+ public SortingFocusTraversalPolicy(Comparator comparator)
+ {
+ this.comparator = comparator;
+ }
+
+ /**
+ * Decide whether a component is an acceptable focus owner.
+ *
+ * @param comp The component which is a candidate for focus ownership.
+ *
+ * @return true if the component is focusable, displayable, visible, and
+ * enabled; otherwise false
+ */
+ protected boolean accept(Component comp)
+ {
+ return (comp.isVisible()
+ && comp.isDisplayable()
+ && comp.isEnabled()
+ && comp.isFocusable());
+ }
+
+ /**
+ * Get the current value of the {@link #comparator} property.
+ *
+ * @return the current value of the property
+ *
+ * @see #setComparator
+ */
+ protected Comparator getComparator()
+ {
+ return comparator;
+ }
+
+ /**
+ * Set the current value of the {@link #comparator} property.
+ *
+ * @param comparator the new value of the property
+ *
+ * @see #getComparator
+ */
+ protected void setComparator(Comparator comparator)
+ {
+ this.comparator = comparator;
+ }
+
+ private TreeSet getSortedCycle(Container root, TreeSet set)
+ {
+ if (set == null)
+ set = (getComparator() == null
+ ? new TreeSet()
+ : new TreeSet(getComparator()));
+
+ if (root != null)
+ {
+ Component[] comps = root.getComponents();
+ for (int i = 0; i < comps.length; ++i)
+ {
+ Component c = comps[i];
+ if (accept(c))
+ set.add(c);
+ if (c instanceof Container)
+ getSortedCycle((Container) c, set);
+ }
+ }
+ return set;
+ }
+
+ /**
+ * Return the component which follows the specified component in this
+ * focus cycle, relative to the order imposed by {@link
+ * #comparator}. Candidate components are only considered if they are
+ * accepted by the {@link #accept} method.
+ *
+ * If {@link #getImplicitDownCycleTraversal} is <code>true</code> and the
+ * <code>comp</code> is a focus cycle root, an "implicit DownCycle"
+ * occurs and the method returns the
+ * <code>getDefaultComponent(comp)</code>.
+ *
+ * @param root the focus cycle root to search for a successor within
+ * @param comp the component to search for the successor of
+ *
+ * @return the component following the specified component under
+ * the specified root, or null if no such component is found
+ *
+ * @throws IllegalArgumentException if either argument is null, or
+ * if the root is not a focus cycle root of the component
+ */
+ public Component getComponentAfter(Container root,
+ Component comp)
+ {
+ if (comp == null || root == null || !comp.isFocusCycleRoot(root))
+ throw new IllegalArgumentException();
+
+ if (getImplicitDownCycleTraversal()
+ && comp instanceof Container
+ && ((Container)comp).isFocusCycleRoot())
+ {
+ return getDefaultComponent((Container) comp);
+ }
+
+ TreeSet set = getSortedCycle(root, null);
+ Iterator i = set.iterator();
+ while (i.hasNext())
+ {
+ Component c = (Component) i.next();
+ if (c != null && c.equals(comp))
+ {
+ if (i.hasNext())
+ return (Component) i.next();
+ break;
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Return the component which precedes the specified component in this
+ * focus cycle, relative to the order imposed by {@link
+ * #comparator}. Candidate components are only considered if they are
+ * accepted by the {@link #accept} method.
+ *
+ * @param root the focus cycle root to search for a predecessor within
+ * @param comp the component to search for the predecessor of
+ *
+ * @return the component preceding the specified component under the
+ * specified root, or null if no such component is found
+ *
+ * @throws IllegalArgumentException if either argument is null, or
+ * if the root is not a focus cycle root of the component
+ */
+ public Component getComponentBefore(Container root,
+ Component comp)
+ {
+ if (comp == null || root == null || !comp.isFocusCycleRoot(root))
+ throw new IllegalArgumentException();
+ TreeSet set = getSortedCycle(root, null);
+ Iterator i = set.iterator();
+ Component prev = null;
+ while (i.hasNext())
+ {
+ Component c = (Component) i.next();
+ if (c != null && c.equals(comp))
+ break;
+ prev = c;
+ }
+ return prev;
+ }
+
+ /**
+ * Return the default component of <code>root</code>, which is by default
+ * the same as the first component, returned by {@link
+ * #getFirstComponent}.
+ *
+ * @param root the focus cycle root to return the default component of
+ *
+ * @return the default focus component for <code>root</code>
+ *
+ * @throws IllegalArgumentException if root is null
+ */
+ public Component getDefaultComponent(Container root)
+ {
+ return getFirstComponent(root);
+ }
+
+ /**
+ * Return the first focusable component of the focus cycle root
+ * <code>comp</code> under the ordering imposed by the {@link
+ * #comparator} property. Candidate components are only considered if
+ * they are accepted by the {@link #accept} method.
+ *
+ * @param root the focus cycle root to search for the first component of
+ *
+ * @return the first component under <code>root</code>, or null if
+ * no components are found.
+ *
+ * @throws IllegalArgumentException if root is null
+ */
+ public Component getFirstComponent(Container root)
+ {
+ if (root == null)
+ throw new IllegalArgumentException();
+ TreeSet set = getSortedCycle(root, null);
+ Iterator i = set.iterator();
+ if (i.hasNext())
+ return (Component) i.next();
+ return null;
+ }
+
+ /**
+ * Return the last focusable component of the focus cycle root
+ * <code>comp</code> under the ordering imposed by the {@link
+ * #comparator} property. Candidate components are only considered if
+ * they are accepted by the {@link #accept} method.
+ *
+ * @param root the focus cycle root to search for the last component of
+ *
+ * @return the last component under <code>root</code>, or null if
+ * no components are found.
+ *
+ * @throws IllegalArgumentException if root is null
+ */
+ public Component getLastComponent(Container root)
+ {
+ if (root == null)
+ throw new IllegalArgumentException();
+ TreeSet set = getSortedCycle(root, null);
+ Iterator i = set.iterator();
+ Component last = null;
+ while (i.hasNext())
+ last = (Component) i.next();
+ return last;
+ }
+
+ /**
+ * Return the current value of the {@link implicitDownCycleTraversal}
+ * property.
+ *
+ * @return the current value of the property
+ *
+ * @see setImplicitDownCycleTraversal
+ */
+ public boolean getImplicitDownCycleTraversal()
+ {
+ return implicitDownCycleTraversal;
+ }
+
+ /**
+ * Set the current value of the {@link implicitDownCycleTraversal}
+ * property.
+ *
+ * @param down the new value of the property
+ *
+ * @see getImplicitDownCycleTraversal
+ */
+ public void setImplicitDownCycleTraversal(boolean down)
+ {
+ implicitDownCycleTraversal = down;
+ }
+}
diff --git a/libjava/javax/swing/SpinnerDateModel.java b/libjava/javax/swing/SpinnerDateModel.java
new file mode 100644
index 00000000000..53bf9ec0c35
--- /dev/null
+++ b/libjava/javax/swing/SpinnerDateModel.java
@@ -0,0 +1,237 @@
+/* SpinnerDateModel.java --
+ Copyright (C) 2002, 2004 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 javax.swing;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * SpinnerDateModel
+ *
+ * Implements a SpinnerModel for dates, rotating a calendar field such as
+ * month, year, day, week, hour, minute.
+ *
+ * @author Sven de Marothy
+ * @version 0.1 (first implementation)
+ */
+public class SpinnerDateModel extends AbstractSpinnerModel
+ implements Serializable
+{
+ private Calendar date;
+ private Comparable start;
+ private Comparable end;
+ private int calendarField;
+
+ /**
+ * For compatability with Sun's JDK
+ * FIXME: what's the number? And which fields should be serialized?
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Constructs a SpinnerDateModel using the current date,
+ * no start or end limit, and Calendar.DAY_OF_MONTH as the calendar field.
+ */
+ public SpinnerDateModel()
+ {
+ this(new Date(), null, null, Calendar.DAY_OF_MONTH);
+ }
+
+ /**
+ * Constructs a SpinnerDateModel which spins a given calendar field,
+ * using a given date and start and end date limits.
+ * @param value - the initial Date value
+ * @param start - start limit, as a Date object, or <code>null</code>
+ * for no lower limit.
+ * @param end - end limit, or <code>null</code> for no upper limit.
+ * @param calendarField - the <code>Calendar</code> field to spin,
+ * (Calendar.ZONE_OFFSET and Calendar.DST_OFFSET are invalid)
+ */
+ public SpinnerDateModel(Date value, Comparable start, Comparable end,
+ int calendarField)
+ {
+ date = Calendar.getInstance();
+ date.setTime(value);
+ this.start = start;
+ this.end = end;
+ setCalendarField(calendarField);
+ }
+
+ /**
+ * Returns the value of the Calendar field to spin.
+ */
+ public int getCalendarField()
+ {
+ return calendarField;
+ }
+
+ /**
+ * Returns the current date in the sequence.
+ * @return a <code>Date</code> object.
+ */
+ public Date getDate()
+ {
+ return date.getTime();
+ }
+
+ /**
+ * Returns the starting limit of the SpinnerModel.
+ * @return a Date object, or <code>null</code> if there is no limit.
+ */
+ public Comparable getStart()
+ {
+ return start;
+ }
+
+ /**
+ * Returns the end limit of the SpinnerModel.
+ * @return a Date object, or <code>null</code> if there is no limit.
+ */
+ public Comparable getEnd()
+ {
+ return end;
+ }
+
+ /**
+ * Returns the current date in the sequence,
+ * this method returns the same as <code>getDate()</code>.
+ * @return a <code>Date</code> object.
+ */
+ public Object getValue()
+ {
+ return date.getTime();
+ }
+
+ /**
+ * Returns the next date in the sequence, or <code>null</code> if the
+ * next date is equal to or past the end limit.
+ * @return a Date object, or <code>null</code>.
+ */
+ public Object getNextValue()
+ {
+ Calendar nextCal = Calendar.getInstance();
+ nextCal.setTime(date.getTime());
+ nextCal.roll(calendarField, true);
+ Date nextDate = nextCal.getTime();
+ if (end != null)
+ if (end.compareTo(nextDate) < 0)
+ return null;
+ return nextDate;
+ }
+
+ /**
+ * Returns the previous date in the sequence, or <code>null</code> if the
+ * next date is equal to or past the end limit.
+ * @return a Date object, or <code>null</code>.
+ */
+ public Object getPreviousValue()
+ {
+ Calendar prevCal = Calendar.getInstance();
+ prevCal.setTime(date.getTime());
+ prevCal.roll(calendarField, false);
+ Date prevDate = prevCal.getTime();
+ if (end != null)
+ if (end.compareTo(prevDate) > 0)
+ return null;
+ return prevDate;
+ }
+
+ /**
+ * Sets the date field to change. It must be a valid Calendar field,
+ * excluding Calendar.ZONE_OFFSET and Calendar.DST_OFFSET.
+ * @param calendarField - the calendar field to set.
+ */
+ public void setCalendarField(int calendarField)
+ {
+ if (calendarField < 0 || calendarField >= Calendar.FIELD_COUNT
+ || calendarField == Calendar.ZONE_OFFSET
+ || calendarField == Calendar.DST_OFFSET)
+ throw new IllegalArgumentException("Illegal calendarField");
+
+ if (this.calendarField != calendarField)
+ {
+ this.calendarField = calendarField;
+ fireStateChanged();
+ }
+ }
+
+ /**
+ * Sets the starting date limit for the sequence.
+ *
+ * @param start - a Date object of the limit date,
+ * or <code>null</code> for no limit.
+ */
+ public void setStart(Comparable start)
+ {
+ if (this.start != start)
+ {
+ this.start = start;
+ fireStateChanged();
+ }
+ }
+
+ /**
+ * Sets the end date limit for the sequence.
+ *
+ * @param end - a Date object of the limit date,
+ * or <code>null</code> for no limit.
+ */
+ public void setEnd(Comparable end)
+ {
+ if (this.end != end)
+ {
+ this.end = end;
+ fireStateChanged();
+ }
+ }
+
+ /**
+ * Sets the current date in the sequence.
+ *
+ * @param value - a Date object.
+ */
+ public void setValue(Object value)
+ {
+ if (! (value instanceof Date) || value == null)
+ throw new IllegalArgumentException("Value not a date.");
+ date.setTime((Date) value);
+ fireStateChanged();
+ }
+}
diff --git a/libjava/javax/swing/SpinnerListModel.java b/libjava/javax/swing/SpinnerListModel.java
index 4da26146906..9b2667182f2 100644
--- a/libjava/javax/swing/SpinnerListModel.java
+++ b/libjava/javax/swing/SpinnerListModel.java
@@ -1,5 +1,5 @@
/* SpinnerListModel.java -- A spinner model backed by a list or an array.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,7 +59,7 @@ import java.util.List;
* is changed via <code>setList()</code> or when the current value is
* set directly using <code>setValue()</code>.
*
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see SpinnerModel
* @see AbstractSpinnerModel
* @see JSpinner
diff --git a/libjava/javax/swing/SwingUtilities.java b/libjava/javax/swing/SwingUtilities.java
index feacf4fca22..8e987425fc4 100644
--- a/libjava/javax/swing/SwingUtilities.java
+++ b/libjava/javax/swing/SwingUtilities.java
@@ -1,5 +1,5 @@
/* SwingUtilities.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,15 +42,14 @@ import java.applet.Applet;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Container;
-import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Insets;
+import java.awt.KeyboardFocusManager;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Shape;
-import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
@@ -58,6 +57,8 @@ import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.lang.reflect.InvocationTargetException;
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleStateSet;
import javax.swing.plaf.ActionMapUIResource;
import javax.swing.plaf.InputMapUIResource;
@@ -67,8 +68,10 @@ import javax.swing.plaf.InputMapUIResource;
* regions which need painting.
*
* @author Graydon Hoare (graydon@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
-public class SwingUtilities implements SwingConstants
+public class SwingUtilities
+ implements SwingConstants
{
/**
* This frame should be used as parent for JWindow or JDialog
@@ -129,6 +132,152 @@ public class SwingUtilities implements SwingConstants
}
/**
+ * Returns the focus owner or <code>null</code> if <code>comp</code> is not
+ * the focus owner or a parent of it.
+ *
+ * @param comp the focus owner or a parent of it
+ *
+ * @return the focus owner, or <code>null</code>
+ *
+ * @deprecated 1.4 Replaced by
+ * <code>KeyboardFocusManager.getFocusOwner()</code>.
+ */
+ public static Component findFocusOwner(Component comp)
+ {
+ // Get real focus owner.
+ Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager()
+ .getFocusOwner();
+
+ // Check if comp is the focus owner or a parent of it.
+ Component tmp = focusOwner;
+
+ while (tmp != null)
+ {
+ if (tmp == comp)
+ return focusOwner;
+
+ tmp = tmp.getParent();
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the <code>Accessible</code> child of the specified component
+ * which appears at the supplied <code>Point</code>. If there is no
+ * child located at that particular pair of co-ordinates, null is returned
+ * instead.
+ *
+ * @param c the component whose children may be found at the specified
+ * point.
+ * @param p the point at which to look for the existence of children
+ * of the specified component.
+ * @return the <code>Accessible</code> child at the point, <code>p</code>,
+ * or null if there is no child at this point.
+ * @see javax.accessibility.AccessibleComponent#getAccessibleAt
+ */
+ public static Accessible getAccessibleAt(Component c, Point p)
+ {
+ return c.getAccessibleContext().getAccessibleComponent().getAccessibleAt(p);
+ }
+
+ /**
+ * <p>
+ * Returns the <code>Accessible</code> child of the specified component
+ * that has the supplied index within the parent component. The indexing
+ * of the children is zero-based, making the first child have an index of
+ * 0.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose child should be returned.
+ * @param i the index of the child within the parent component.
+ * @return the <code>Accessible</code> child at index <code>i</code>
+ * in the component, <code>c</code>.
+ * @see javax.accessibility.AccessibleContext#getAccessibleChild
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleChild
+ */
+ public static Accessible getAccessibleChild(Component c, int i)
+ {
+ return c.getAccessibleContext().getAccessibleChild(i);
+ }
+
+ /**
+ * <p>
+ * Returns the number of <code>Accessible</code> children within
+ * the supplied component.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose children should be counted.
+ * @return the number of children belonging to the component,
+ * <code>c</code>.
+ * @see javax.accessibility.AccessibleContext#getAccessibleChildrenCount
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleChildrenCount
+ */
+ public static int getAccessibleChildrenCount(Component c)
+ {
+ return c.getAccessibleContext().getAccessibleChildrenCount();
+ }
+
+ /**
+ * <p>
+ * Returns the zero-based index of the specified component
+ * within its parent. If the component doesn't have a parent,
+ * -1 is returned.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose parental index should be found.
+ * @return the index of the component within its parent, or -1
+ * if the component doesn't have a parent.
+ * @see javax.accessibility.AccessibleContext#getAccessibleIndexInParent
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleIndexInParent
+ */
+ public static int getAccessibleIndexInParent(Component c)
+ {
+ return c.getAccessibleContext().getAccessibleIndexInParent();
+ }
+
+ /**
+ * <p>
+ * Returns a set of <code>AccessibleState</code>s, which represent
+ * the state of the supplied component.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose accessible state should be retrieved.
+ * @return a set of <code>AccessibleState</code> objects, which represent
+ * the state of the supplied component.
+ * @see javax.accessibility.AccessibleContext#getAccessibleStateSet
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleStateSet
+ */
+ public static AccessibleStateSet getAccessibleStateSet(Component c)
+ {
+ return c.getAccessibleContext().getAccessibleStateSet();
+ }
+
+ /**
* Calculates the bounds of a component in the component's own coordinate
* space. The result has the same height and width as the component's
* bounds, but its location is set to (0,0).
@@ -144,22 +293,6 @@ public class SwingUtilities implements SwingConstants
}
/**
- * Returns the font metrics object for a given font. The metrics can be
- * used to calculate crude bounding boxes and positioning information,
- * for laying out components with textual elements.
- *
- * @param font The font to get metrics for
- *
- * @return The font's metrics
- *
- * @see java.awt.font.GlyphMetrics
- */
- public static FontMetrics getFontMetrics(Font font)
- {
- return Toolkit.getDefaultToolkit().getFontMetrics(font);
- }
-
- /**
* If <code>comp</code> is a RootPaneContainer, return its JRootPane.
* Otherwise call <code>getAncestorOfClass(JRootPane.class, a)</code>.
*
diff --git a/libjava/javax/swing/Timer.java b/libjava/javax/swing/Timer.java
index afdf4f32d58..0906b8d93bb 100644
--- a/libjava/javax/swing/Timer.java
+++ b/libjava/javax/swing/Timer.java
@@ -72,6 +72,14 @@ public class Timer implements Serializable
/** DOCUMENT ME! */
private Waker waker;
+ private Runnable drainer = new Runnable()
+ {
+ public void run()
+ {
+ drainEvents();
+ }
+ };
+
/**
* DOCUMENT ME!
*/
@@ -81,14 +89,7 @@ public class Timer implements Serializable
{
queue++;
if (queue == 1)
- SwingUtilities.invokeLater(new Runnable()
- {
- public void run()
- {
- drainEvents();
- }
- });
-
+ SwingUtilities.invokeLater(drainer);
}
}
diff --git a/libjava/javax/swing/TransferHandler.java b/libjava/javax/swing/TransferHandler.java
index 16b5016b3af..9d6fa4e3f7c 100644
--- a/libjava/javax/swing/TransferHandler.java
+++ b/libjava/javax/swing/TransferHandler.java
@@ -35,44 +35,119 @@ 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 javax.swing;
-import java.io.Serializable;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
-import java.awt.datatransfer.*;
+import java.io.Serializable;
public class TransferHandler implements Serializable
{
+ static class TransferAction extends AbstractAction
+ {
+ private String command;
+
+ public TransferAction(String command)
+ {
+ this.command = command;
+ }
+
+ public void actionPerformed(ActionEvent event)
+ {
+ JComponent component = (JComponent) event.getSource();
+ TransferHandler transferHandler = component.getTransferHandler();
+ Clipboard clipboard = getClipboard(component);
+
+ if (command.equals(COMMAND_COPY))
+ transferHandler.exportToClipboard(component, clipboard, COPY);
+ else if (command.equals(COMMAND_CUT))
+ transferHandler.exportToClipboard(component, clipboard, MOVE);
+ else if (command.equals(COMMAND_PASTE))
+ {
+ Transferable transferable = clipboard.getContents(null);
+
+ if (transferable != null)
+ transferHandler.importData(component, transferable);
+ }
+ }
+
+ private static Clipboard getClipboard(JComponent component)
+ {
+ SecurityManager sm = System.getSecurityManager();
+
+ if (sm != null)
+ {
+ try
+ {
+ sm.checkSystemClipboardAccess();
+
+ // We may access system clipboard.
+ return component.getToolkit().getSystemClipboard();
+ }
+ catch (SecurityException e)
+ {
+ // We may not access system clipboard.
+ }
+ }
+
+ // Create VM-local clipboard if non exists yet.
+ if (clipboard == null)
+ clipboard = new Clipboard("Clipboard");
+
+ return clipboard;
+ }
+ }
+
private static final long serialVersionUID = -7908749299918704233L;
+ private static final String COMMAND_COPY = "copy";
+ private static final String COMMAND_CUT = "cut";
+ private static final String COMMAND_PASTE = "paste";
+
public static final int NONE = 0;
public static final int COPY = 1;
public static final int MOVE = 2;
public static final int COPY_OR_MOVE = 3;
- static Action getCopyAction ()
+ private static Action copyAction = new TransferAction(COMMAND_COPY);
+ private static Action cutAction = new TransferAction(COMMAND_CUT);
+ private static Action pasteAction = new TransferAction(COMMAND_PASTE);
+
+ /**
+ * Clipboard if system clipboard may not be used.
+ */
+ private static Clipboard clipboard;
+
+ private int sourceActions;
+ private Icon visualRepresentation;
+
+ public static Action getCopyAction()
{
- return null;
+ return copyAction;
}
- static Action getCutAction ()
+ public static Action getCutAction()
{
- return null;
+ return cutAction;
}
- static Action getPasteAction ()
+ public static Action getPasteAction()
{
- return null;
+ return pasteAction;
}
-
protected TransferHandler()
{
- // Do nothing here.
+ this.sourceActions = NONE;
}
public TransferHandler(String property)
{
+ this.sourceActions = property != null ? COPY : NONE;
}
public boolean canImport (JComponent c, DataFlavor[] flavors)
@@ -80,7 +155,7 @@ public class TransferHandler implements Serializable
return false;
}
- public Transferable createTransferable(JComponent c)
+ protected Transferable createTransferable(JComponent c)
{
return null;
}
@@ -99,17 +174,16 @@ public class TransferHandler implements Serializable
public int getSourceActions (JComponent c)
{
- return 0;
+ return sourceActions;
}
public Icon getVisualRepresentation (Transferable t)
{
- return null;
+ return visualRepresentation;
}
public boolean importData (JComponent c, Transferable t)
{
return false;
}
-
}
diff --git a/libjava/javax/swing/UIDefaults.java b/libjava/javax/swing/UIDefaults.java
index c32cebd5a81..a2deae4978d 100644
--- a/libjava/javax/swing/UIDefaults.java
+++ b/libjava/javax/swing/UIDefaults.java
@@ -1,5 +1,5 @@
/* UIDefaults.java -- database for all settings and interface bindings.
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,8 +57,8 @@ import javax.swing.plaf.ComponentUI;
/**
* UIDefaults is a database where all settings and interface bindings are
- * stored into. An PLAF implementation fills one of these (see for example
- * plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -> new BasicButtonUI().
+ * stored into. A PLAF implementation fills one of these (see for example
+ * plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -&gt; new BasicButtonUI().
*
* @author Ronald Veldema (rveldema@cs.vu.nl)
*/
@@ -68,7 +68,7 @@ public class UIDefaults extends Hashtable
private Locale defaultLocale;
private PropertyChangeSupport propertyChangeSupport;
- public interface ActiveValue
+ public static interface ActiveValue
{
Object createValue(UIDefaults table);
}
@@ -92,7 +92,7 @@ public class UIDefaults extends Hashtable
}
}
- public interface LazyValue
+ public static interface LazyValue
{
Object createValue(UIDefaults table);
}
@@ -110,9 +110,9 @@ public class UIDefaults extends Hashtable
try
{
return Class
- .forName (className)
- .getConstructor (new Class[] {})
- .newInstance (new Object[] {});
+ .forName(className)
+ .getConstructor(new Class[] {})
+ .newInstance(new Object[] {});
}
catch (Exception e)
{
@@ -145,54 +145,54 @@ public class UIDefaults extends Hashtable
};
}
- public ProxyLazyValue (String c, Object[] os)
+ public ProxyLazyValue(String c, Object[] os)
{
final String className = c;
final Object[] objs = os;
final Class[] clss = new Class[objs.length];
for (int i = 0; i < objs.length; ++i)
{
- clss[i] = objs[i].getClass ();
+ clss[i] = objs[i].getClass();
}
- inner = new LazyValue ()
+ inner = new LazyValue()
{
- public Object createValue (UIDefaults table)
+ public Object createValue(UIDefaults table)
{
try
{
return Class
- .forName (className)
- .getConstructor (clss)
- .newInstance (objs);
- }
+ .forName(className)
+ .getConstructor(clss)
+ .newInstance(objs);
+ }
catch (Exception e)
- {
+ {
return null;
}
}
};
}
- public ProxyLazyValue (String c, String m, Object[] os)
+ public ProxyLazyValue(String c, String m, Object[] os)
{
final String className = c;
final String methodName = m;
final Object[] objs = os;
final Class[] clss = new Class[objs.length];
for (int i = 0; i < objs.length; ++i)
- {
- clss[i] = objs[i].getClass ();
- }
- inner = new LazyValue ()
+ {
+ clss[i] = objs[i].getClass();
+ }
+ inner = new LazyValue()
{
- public Object createValue(UIDefaults table)
- {
+ public Object createValue(UIDefaults table)
+ {
try
{
return Class
- .forName (className)
- .getMethod (methodName, clss)
- .invoke (null, objs);
+ .forName(className)
+ .getMethod(methodName, clss)
+ .invoke(null, objs);
}
catch (Exception e)
{
@@ -202,9 +202,9 @@ public class UIDefaults extends Hashtable
};
}
- public Object createValue (UIDefaults table)
+ public Object createValue(UIDefaults table)
{
- return inner.createValue (table);
+ return inner.createValue(table);
}
}
@@ -212,46 +212,46 @@ public class UIDefaults extends Hashtable
public UIDefaults()
{
- bundles = new LinkedList ();
- defaultLocale = Locale.getDefault ();
+ bundles = new LinkedList();
+ defaultLocale = Locale.getDefault();
propertyChangeSupport = new PropertyChangeSupport(this);
}
public UIDefaults(Object[] entries)
{
this();
-
- for (int i = 0; (2*i+1) < entries.length; ++i)
- put (entries[2*i], entries[2*i+1]);
- }
+
+ for (int i = 0; (2 * i + 1) < entries.length; ++i)
+ put(entries[2 * i], entries[2 * i + 1]);
+ }
public Object get(Object key)
{
- return this.get (key, getDefaultLocale ());
+ return this.get(key, getDefaultLocale());
}
- public Object get (Object key, Locale loc)
+ public Object get(Object key, Locale loc)
{
Object obj = null;
- if (super.containsKey (key))
+ if (super.containsKey(key))
{
- obj = super.get (key);
+ obj = super.get(key);
}
else if (key instanceof String)
{
String keyString = (String) key;
- ListIterator i = bundles.listIterator (0);
- while (i.hasNext ())
- {
- String bundle_name = (String) i.next ();
+ ListIterator i = bundles.listIterator(0);
+ while (i.hasNext())
+ {
+ String bundle_name = (String) i.next();
ResourceBundle res =
- ResourceBundle.getBundle (bundle_name, loc);
+ ResourceBundle.getBundle(bundle_name, loc);
if (res != null)
{
try
{
- obj = res.getObject (keyString);
+ obj = res.getObject(keyString);
break;
}
catch (MissingResourceException me)
@@ -271,14 +271,14 @@ public class UIDefaults extends Hashtable
if (obj instanceof LazyValue)
{
- Object resolved = ((LazyValue)obj).createValue (this);
- super.remove (key);
- super.put (key, resolved);
+ Object resolved = ((LazyValue) obj).createValue(this);
+ super.remove(key);
+ super.put(key, resolved);
return resolved;
}
else if (obj instanceof ActiveValue)
{
- return ((ActiveValue)obj).createValue (this);
+ return ((ActiveValue) obj).createValue(this);
}
return obj;
@@ -286,19 +286,23 @@ public class UIDefaults extends Hashtable
public Object put(Object key, Object value)
{
- Object old = super.put (key, value);
+ Object old;
+ if (value != null)
+ old = super.put(key, value);
+ else
+ old = super.remove(key);
if (key instanceof String && old != value)
- firePropertyChange ((String) key, old, value);
+ firePropertyChange((String) key, old, value);
return old;
}
public void putDefaults(Object[] entries)
{
- for (int i = 0; (2*i+1) < entries.length; ++i)
+ for (int i = 0; (2 * i + 1) < entries.length; ++i)
{
- super.put (entries[2*i], entries[2*i+1]);
+ super.put(entries[2 * i], entries[2 * i + 1]);
}
- firePropertyChange ("UIDefaults", null, null);
+ firePropertyChange("UIDefaults", null, null);
}
public Font getFont(Object key)
@@ -454,20 +458,20 @@ public class UIDefaults extends Hashtable
{
getUIError ("failed to locate createUI method on " + cls.toString ());
return null;
- }
+ }
try
- {
+ {
return (ComponentUI) factory.invoke (null, new Object[] { target });
- }
+ }
catch (java.lang.reflect.InvocationTargetException ite)
- {
+ {
getUIError ("InvocationTargetException ("+ ite.getTargetException()
+") calling createUI(...) on " + cls.toString ());
return null;
- }
+ }
catch (Exception e)
- {
+ {
getUIError ("exception calling createUI(...) on " + cls.toString ());
return null;
}
@@ -496,12 +500,12 @@ public class UIDefaults extends Hashtable
public void addResourceBundle(String name)
{
- bundles.addFirst (name);
+ bundles.addFirst(name);
}
public void removeResourceBundle(String name)
{
- bundles.remove (name);
+ bundles.remove(name);
}
public void setDefaultLocale(Locale loc)
diff --git a/libjava/javax/swing/UIManager.java b/libjava/javax/swing/UIManager.java
index 9722129ab7c..dfc6a82ac46 100644
--- a/libjava/javax/swing/UIManager.java
+++ b/libjava/javax/swing/UIManager.java
@@ -1,5 +1,5 @@
/* UIManager.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -94,7 +94,7 @@ public class UIManager implements Serializable
*
* @param listener the listener to add
*/
- public static void addPropertyChangeListener (PropertyChangeListener listener)
+ public static void addPropertyChangeListener(PropertyChangeListener listener)
{
// FIXME
}
@@ -104,7 +104,7 @@ public class UIManager implements Serializable
*
* @param listener the listener to remove
*/
- public static void removePropertyChangeListener (PropertyChangeListener listener)
+ public static void removePropertyChangeListener(PropertyChangeListener listener)
{
// FIXME
}
@@ -116,7 +116,7 @@ public class UIManager implements Serializable
*
* @since 1.4
*/
- public static PropertyChangeListener[] getPropertyChangeListeners ()
+ public static PropertyChangeListener[] getPropertyChangeListeners()
{
// FIXME
throw new Error ("Not implemented");
diff --git a/libjava/javax/swing/ViewportLayout.java b/libjava/javax/swing/ViewportLayout.java
index 4738baccd1a..3abf31da385 100644
--- a/libjava/javax/swing/ViewportLayout.java
+++ b/libjava/javax/swing/ViewportLayout.java
@@ -52,7 +52,7 @@ import java.io.Serializable;
*/
public class ViewportLayout implements LayoutManager, Serializable
{
- static final long serialVersionUID = -788225906076097229L;
+ private static final long serialVersionUID = -788225906076097229L;
public ViewportLayout()
{
@@ -63,17 +63,25 @@ public class ViewportLayout implements LayoutManager, Serializable
public void removeLayoutComponent(Component c)
{
}
+
public Dimension preferredLayoutSize(Container parent)
{
JViewport vp = (JViewport)parent;
Component view = vp.getView();
+ if (view != null)
return view.getPreferredSize();
+ else
+ return new Dimension();
}
+
public Dimension minimumLayoutSize(Container parent)
{
JViewport vp = (JViewport)parent;
Component view = vp.getView();
- return view.getMinimumSize();
+ if (view != null)
+ return view.getMinimumSize();
+ else
+ return new Dimension();
}
/**
@@ -113,6 +121,9 @@ public class ViewportLayout implements LayoutManager, Serializable
JViewport port = (JViewport) parent;
Component view = port.getView();
+ if (view == null)
+ return;
+
// These dimensions and positions are in *view space*. Do not mix
// variables in here from port space (eg. parent.getBounds()). This
// function should be entirely in view space, because the methods on
diff --git a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java
index 6002854c01d..9f85164041b 100644
--- a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java
+++ b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java
@@ -1,5 +1,5 @@
/* DefaultRGHChooserPanel.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import javax.swing.event.ChangeListener;
* This is the default RGB panel for the JColorChooser. The color is selected
* using three sliders that represent the RGB values.
*/
-public class DefaultRGBChooserPanel extends AbstractColorChooserPanel
+class DefaultRGBChooserPanel extends AbstractColorChooserPanel
{
/**
* This class handles the slider value changes for all three sliders.
diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
index 7e5a4eff0c5..20a72f438a8 100644
--- a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
+++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
@@ -1,5 +1,5 @@
/* DefaultSwatchChooserPanel.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -432,7 +432,7 @@ class DefaultSwatchChooserPanel extends AbstractColorChooserPanel
/**
* This class is the recent swatch panel. It holds recently selected colors.
*/
- public static class RecentSwatchPanel extends SwatchPanel
+ static class RecentSwatchPanel extends SwatchPanel
{
/** The array for storing recently stored colors. */
Color[] colors;
diff --git a/libjava/javax/swing/event/EventListenerList.java b/libjava/javax/swing/event/EventListenerList.java
index e7294afcef4..226cac17916 100644
--- a/libjava/javax/swing/event/EventListenerList.java
+++ b/libjava/javax/swing/event/EventListenerList.java
@@ -1,5 +1,5 @@
/* EventListenerList.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -84,8 +84,8 @@ import java.util.EventListener;
* }
* }</pre></blockquote>
*
- * @author <a href="mailto:aselkirk@sympatico.ca">Andrew Selkirk</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Andrew Selkirk (aselkirk@sympatico.ca)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class EventListenerList
implements Serializable
diff --git a/libjava/javax/swing/event/MouseInputAdapter.java b/libjava/javax/swing/event/MouseInputAdapter.java
index 23caed0a8d9..b94b5f8d995 100644
--- a/libjava/javax/swing/event/MouseInputAdapter.java
+++ b/libjava/javax/swing/event/MouseInputAdapter.java
@@ -1,5 +1,5 @@
/* MouseInputAdapter.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,72 +44,76 @@ import java.awt.event.MouseEvent;
* MouseInputAdapter
* @author Andrew Selkirk
*/
-public class MouseInputAdapter extends Object
- implements MouseInputListener {
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor MouseInputAdapter
- */
- public MouseInputAdapter() {
- } // MouseInputAdapter()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Mouse clicked
- * @param event Mouse event
- */
- public void mouseClicked(MouseEvent event) {
- } // mouseClicked()
-
- /**
- * Mouse dragged
- * @param event Mouse event
- */
- public void mouseDragged(MouseEvent event) {
- } // mouseDragged()
-
- /**
- * Mouse entered
- * @param event Mouse event
- */
- public void mouseEntered(MouseEvent event) {
- } // mouseEntered()
-
- /**
- * Mouse exited
- * @param event Mouse event
- */
- public void mouseExited(MouseEvent event) {
- } // mouseExited()
-
- /**
- * Mouse moved
- * @param event Mouse event
- */
- public void mouseMoved(MouseEvent event) {
- } // mouseMoved()
-
- /**
- * Mouse pressed
- * @param event Mouse event
- */
- public void mousePressed(MouseEvent event) {
- } // mousePressed()
-
- /**
- * Mouse released
- * @param event Mouse event
- */
- public void mouseReleased(MouseEvent event) {
- } // mouseReleased()
-
-
-} // MouseInputAdapterEvent
+public abstract class MouseInputAdapter implements MouseInputListener
+{
+ /**
+ * Constructor MouseInputAdapter
+ */
+ public MouseInputAdapter()
+ {
+ // Do nothing here.
+ }
+
+ /**
+ * Mouse clicked
+ * @param event Mouse event
+ */
+ public void mouseClicked(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse dragged
+ * @param event Mouse event
+ */
+ public void mouseDragged(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse entered
+ * @param event Mouse event
+ */
+ public void mouseEntered(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse exited
+ * @param event Mouse event
+ */
+ public void mouseExited(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse moved
+ * @param event Mouse event
+ */
+ public void mouseMoved(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse pressed
+ * @param event Mouse event
+ */
+ public void mousePressed(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse released
+ * @param event Mouse event
+ */
+ public void mouseReleased(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+}
diff --git a/libjava/javax/swing/plaf/basic/BasicButtonListener.java b/libjava/javax/swing/plaf/basic/BasicButtonListener.java
index 2b4be67697c..48451c2373a 100644
--- a/libjava/javax/swing/plaf/basic/BasicButtonListener.java
+++ b/libjava/javax/swing/plaf/basic/BasicButtonListener.java
@@ -1,4 +1,4 @@
-/* BasicButtonListener.java
+/* BasicButtonListener.java --
Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing.plaf.basic;
import java.awt.event.ActionEvent;
@@ -58,12 +59,19 @@ public class BasicButtonListener
implements MouseListener, MouseMotionListener, FocusListener,
ChangeListener, PropertyChangeListener
{
+ public BasicButtonListener(AbstractButton b)
+ {
+ // Do nothing here.
+ }
+
public void propertyChange(PropertyChangeEvent e)
{
}
+
protected void checkOpacity(AbstractButton b)
{
}
+
public void focusGained(FocusEvent e)
{
if (e.getSource() instanceof AbstractButton)
@@ -86,6 +94,7 @@ public class BasicButtonListener
button.repaint();
}
}
+
public void installKeyboardActions(JComponent c)
{
c.getActionMap().put("pressed",
@@ -114,20 +123,25 @@ public class BasicButtonListener
}
});
}
+
public void uninstallKeyboardActions(JComponent c)
{
c.getActionMap().put("pressed", null);
c.getActionMap().put("released", null);
}
+
public void stateChanged(ChangeEvent e)
{
}
+
public void mouseMoved(MouseEvent e)
{
}
+
public void mouseDragged(MouseEvent e)
{
}
+
public void mouseClicked(MouseEvent e)
{
}
@@ -152,7 +166,6 @@ public class BasicButtonListener
}
}
-
/**
* Accept a mouse release event and set the button's
* "pressed" property to <code>true</code>, if the model
@@ -175,7 +188,6 @@ public class BasicButtonListener
}
}
-
/**
* Accept a mouse enter event and set the button's "rollover" property to
* <code>true</code>, if the button's "rolloverEnabled" property is
diff --git a/libjava/javax/swing/plaf/basic/BasicButtonUI.java b/libjava/javax/swing/plaf/basic/BasicButtonUI.java
index ed04d281254..ed352e76794 100644
--- a/libjava/javax/swing/plaf/basic/BasicButtonUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicButtonUI.java
@@ -1,5 +1,5 @@
-/* BasicButtonUI.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* BasicButtonUI.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing.plaf.basic;
import java.awt.Color;
@@ -133,10 +134,10 @@ public class BasicButtonUI extends ButtonUI
protected BasicButtonListener createButtonListener(AbstractButton b)
{
- return new BasicButtonListener();
+ return new BasicButtonListener(b);
}
- public void installListeners(AbstractButton b)
+ protected void installListeners(AbstractButton b)
{
listener = createButtonListener(b);
b.addChangeListener(listener);
@@ -146,7 +147,7 @@ public class BasicButtonUI extends ButtonUI
b.addMouseMotionListener(listener);
}
- public void uninstallListeners(AbstractButton b)
+ protected void uninstallListeners(AbstractButton b)
{
b.removeChangeListener(listener);
b.removePropertyChangeListener(listener);
diff --git a/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
index a0cf5a43fec..5d7bbcd2c33 100644
--- a/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
@@ -98,7 +98,7 @@ public class BasicCheckBoxMenuItemUI extends BasicMenuItemUI
*/
public void processMouseEvent(JMenuItem item, MouseEvent e,
MenuElement[] path,
- MenuSelectionManager manager)
+ MenuSelectionManager manager)
{
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java
index b306af71d1d..a55e13c954c 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java
@@ -46,7 +46,6 @@ import java.awt.event.FocusListener;
import javax.swing.ComboBoxEditor;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
-import javax.swing.plaf.UIResource;
/**
* This is a component that is responsible for displaying/editting selected
diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java
index 5dc0f489e20..9f61e0d18e2 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java
@@ -50,7 +50,6 @@ import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
-import javax.swing.plaf.UIResource;
/**
* This class is renderer for the combo box.
diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java b/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java
index 3ba13a2a1e1..9044ed76c86 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java
@@ -1,5 +1,5 @@
/* BasicComboBoxUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,7 @@ import javax.swing.plaf.ComponentUI;
* UI Delegate for JComboBox
*
* @author Olga Rodimina
+ * @author Robert Schuster
*/
public class BasicComboBoxUI extends ComboBoxUI
{
@@ -783,22 +784,25 @@ public class BasicComboBoxUI extends ComboBoxUI
{
Object currentValue = comboBox.getSelectedItem();
boolean isPressed = arrowButton.getModel().isPressed();
- if (currentValue != null)
- {
- Component comp = comboBox.getRenderer()
+
+ /* Gets the component to be drawn for the current value.
+ * If there is currently no selected item we will take an empty
+ * String as replacement.
+ */
+ Component comp = comboBox.getRenderer()
.getListCellRendererComponent(listBox,
- currentValue,
+ (currentValue != null ? currentValue : ""),
-1,
isPressed,
hasFocus);
- if (! comboBox.isEnabled())
+ if (! comboBox.isEnabled())
comp.setEnabled(false);
- g.translate(borderInsets.left, borderInsets.top);
+ g.translate(borderInsets.left, borderInsets.top);
comp.setBounds(0, 0, bounds.width, bounds.height);
comp.paint(g);
g.translate(-borderInsets.left, -borderInsets.top);
- }
+
comboBox.revalidate();
}
else
@@ -1142,7 +1146,7 @@ public class BasicComboBoxUI extends ComboBoxUI
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JComboBox.ENABLED_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("enabled"))
{
arrowButton.setEnabled(comboBox.isEnabled());
@@ -1150,7 +1154,7 @@ public class BasicComboBoxUI extends ComboBoxUI
comboBox.getEditor().getEditorComponent().setEnabled(comboBox
.isEnabled());
}
- else if (e.getPropertyName().equals(JComboBox.EDITABLE_CHANGED_PROPERTY))
+ else if (e.getPropertyName().equals("editable"))
{
if (comboBox.isEditable())
{
@@ -1166,7 +1170,7 @@ public class BasicComboBoxUI extends ComboBoxUI
comboBox.revalidate();
comboBox.repaint();
}
- else if (e.getPropertyName().equals(JComboBox.MODEL_CHANGED_PROPERTY))
+ else if (e.getPropertyName().equals("dataModel"))
{
// remove ListDataListener from old model and add it to new model
ComboBoxModel oldModel = (ComboBoxModel) e.getOldValue();
diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup.java b/libjava/javax/swing/plaf/basic/BasicComboPopup.java
index bec7f058f9d..2acc21fa7d4 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboPopup.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboPopup.java
@@ -1,5 +1,5 @@
/* BasicComboPopup.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -938,13 +938,13 @@ public class BasicComboPopup extends JPopupMenu implements ComboPopup
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JComboBox.RENDERER_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("renderer"))
{
list.setCellRenderer((ListCellRenderer) e.getNewValue());
revalidate();
repaint();
}
- if (e.getPropertyName().equals(JComboBox.MODEL_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("dataModel"))
{
list.setModel((ComboBoxModel) e.getNewValue());
revalidate();
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkArgList.java b/libjava/javax/swing/plaf/basic/BasicEditorPaneUI.java
index 28cea93db4a..18cacab1149 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkArgList.java
+++ b/libjava/javax/swing/plaf/basic/BasicEditorPaneUI.java
@@ -1,5 +1,5 @@
-/* GtkArgList.java
- Copyright (C) 1999 Free Software Foundation, Inc.
+/* BasicEditorPaneUI.java --
+ Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -36,40 +36,33 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
-package gnu.java.awt.peer.gtk;
-import java.util.Vector;
+package javax.swing.plaf.basic;
-public class GtkArgList extends Vector
-{
- void add (GtkArg arg)
- {
- addElement (arg);
- }
+import javax.swing.JComponent;
+import javax.swing.plaf.ComponentUI;
+import javax.swing.text.Element;
+import javax.swing.text.PlainView;
+import javax.swing.text.View;
- void add (String name, boolean value)
- {
- addElement (new GtkArg (name, Boolean.valueOf(value)));
- }
-
- void add (String name, int value)
+public class BasicEditorPaneUI extends BasicTextUI
+{
+ public static ComponentUI createUI(JComponent comp)
{
- addElement (new GtkArg (name, new Integer (value)));
+ return new BasicEditorPaneUI();
}
- void add (String name, float value)
+ public BasicEditorPaneUI()
{
- addElement (new GtkArg (name, new Float (value)));
+ // Do nothing here.
}
- void add (String name, Object value)
+ public View create(Element elem)
{
- addElement (new GtkArg (name, value));
+ return new PlainView(elem);
}
- synchronized void setArgs (GtkComponentPeer cp)
+ protected String getPropertyPrefix()
{
- for (int i = 0; i < elementCount; i++)
- cp.set ((GtkArg)elementData[i]);
+ return "EditorPane";
}
}
-
diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
index 36bb4ec2e93..fd2832a4073 100644
--- a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
+++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
@@ -288,6 +288,14 @@ public class BasicInternalFrameTitlePane extends JComponent
protected class TitlePaneLayout implements LayoutManager
{
/**
+ * Creates a new <code>TitlePaneLayout</code> object.
+ */
+ public TitlePaneLayout()
+ {
+ // Do nothing.
+ }
+
+ /**
* This method is called when adding a Component to the Container.
*
* @param name The name to reference the added Component by.
diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java
index 990a3e3f9e0..594bb7ecf93 100644
--- a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java
@@ -821,7 +821,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
if (e instanceof MouseEvent)
{
MouseEvent me = SwingUtilities.convertMouseEvent(frame.getRootPane()
- .getGlassPane(),
+ .getGlassPane(),
(MouseEvent) e,
frame.getRootPane()
.getGlassPane());
@@ -1105,7 +1105,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
installDefaults();
installListeners();
- installComponents();
+ installComponents();
installKeyboardActions();
frame.setOpaque(true);
@@ -1122,7 +1122,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
public void uninstallUI(JComponent c)
{
uninstallKeyboardActions();
- uninstallComponents();
+ uninstallComponents();
uninstallListeners();
uninstallDefaults();
diff --git a/libjava/javax/swing/plaf/basic/BasicLabelUI.java b/libjava/javax/swing/plaf/basic/BasicLabelUI.java
index 46d012ddd58..b278f1f593b 100644
--- a/libjava/javax/swing/plaf/basic/BasicLabelUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicLabelUI.java
@@ -176,12 +176,12 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener
if (icon != null)
icon.paintIcon(b, g, ir.x, ir.y);
if (text != null && ! text.equals(""))
- {
- if (b.isEnabled())
- paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent());
- else
- paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent());
- }
+ {
+ if (b.isEnabled())
+ paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent());
+ else
+ paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent());
+ }
g.setFont(saved_font);
}
diff --git a/libjava/javax/swing/plaf/basic/BasicListUI.java b/libjava/javax/swing/plaf/basic/BasicListUI.java
index 50bbb819f62..b39421798fa 100644
--- a/libjava/javax/swing/plaf/basic/BasicListUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicListUI.java
@@ -686,7 +686,7 @@ public class BasicListUI extends ListUI
{
Rectangle bounds = getCellBounds(list, row, row);
if (bounds.intersects(clip))
- paintCell(g, row, bounds, render, model, sel, lead);
+ paintCell(g, row, bounds, render, model, sel, lead);
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
index 40bf972f25e..4a0f6d75728 100644
--- a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
+++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
@@ -255,7 +255,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"Button.foreground", new ColorUIResource(Color.black),
"Button.highlight", new ColorUIResource(Color.white),
"Button.light", new ColorUIResource(Color.lightGray.brighter()),
- "Button.margin", new InsetsUIResource(2, 14, 2, 14),
+ "Button.margin", new InsetsUIResource(2, 2, 2, 2),
"Button.shadow", new ColorUIResource(Color.gray),
"Button.textIconGap", new Integer(4),
"Button.textShiftOffset", new Integer(0),
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java b/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java
index a1920fb5e31..bed2d051cc3 100644
--- a/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java
@@ -1,5 +1,5 @@
/* BasicMenuBarUI.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -294,9 +294,9 @@ public class BasicMenuBarUI extends MenuBarUI
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JMenuBar.BORDER_PAINTED_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("borderPainted"))
menuBar.repaint();
- if (e.getPropertyName().equals(JMenuBar.MARGIN_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("margin"))
menuBar.repaint();
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java
index da3f5598d05..ff48a74f074 100644
--- a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java
@@ -619,9 +619,9 @@ public class BasicMenuItemUI extends MenuItemUI
textRect.y
+ fm.getAscent());
else
- BasicGraphicsUtils.drawString(g, text, 0, textRect.x,
- textRect.y + fm.getAscent());
- }
+ BasicGraphicsUtils.drawString(g, text, 0, textRect.x,
+ textRect.y + fm.getAscent());
+ }
}
/**
@@ -760,7 +760,7 @@ public class BasicMenuItemUI extends MenuItemUI
FontMetrics fm = g.getFontMetrics(acceleratorFont);
if (menuItem.isEnabled())
- g.setColor(acceleratorForeground);
+ g.setColor(acceleratorForeground);
else
// FIXME: should fix this to use 'disabledForeground', but its
// default value in BasicLookAndFeel is null.
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI.java b/libjava/javax/swing/plaf/basic/BasicMenuUI.java
index 98af9546a4b..7cd16f9e75e 100644
--- a/libjava/javax/swing/plaf/basic/BasicMenuUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicMenuUI.java
@@ -299,7 +299,7 @@ public class BasicMenuUI extends BasicMenuItemUI
if (i) if this menu is a submenu in some other menu
(ii) or if this menu is in a menu bar and some other menu in a menu bar was just
selected. (If nothing was selected, menu should be pressed before
- it will be selected)
+ it will be selected)
*/
JMenu menu = (JMenu) menuItem;
if (! menu.isTopLevelMenu()
@@ -328,15 +328,15 @@ public class BasicMenuUI extends BasicMenuItemUI
MenuSelectionManager manager = MenuSelectionManager.defaultManager();
JMenu menu = (JMenu) menuItem;
manager.processMouseEvent(e);
-
+
// Menu should be displayed when the menu is pressed only if
// it is top-level menu
if (menu.isTopLevelMenu())
{
if (menu.getPopupMenu().isVisible())
- // If menu is visible and menu button was pressed..
- // then need to cancel the menu
- manager.clearSelectedPath();
+ // If menu is visible and menu button was pressed..
+ // then need to cancel the menu
+ manager.clearSelectedPath();
else
{
// Display the menu
diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java
index 609fd11ab8a..7d5e0149388 100644
--- a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java
@@ -847,17 +847,17 @@ public class BasicOptionPaneUI extends OptionPaneUI
addIcon(messageArea);
JPanel rightSide = new JPanel()
- {
- public Dimension getPreferredSize()
- {
+ {
+ public Dimension getPreferredSize()
+ {
int w = Math.max(optionPane.getSize().width, minimumWidth);
- Insets i = optionPane.getInsets();
- Dimension orig = super.getPreferredSize();
- Dimension value = new Dimension(w - i.left - i.right - iconSize,
- orig.height);
- return value;
- }
- };
+ Insets i = optionPane.getInsets();
+ Dimension orig = super.getPreferredSize();
+ Dimension value = new Dimension(w - i.left - i.right - iconSize,
+ orig.height);
+ return value;
+ }
+ };
rightSide.setLayout(new GridBagLayout());
GridBagConstraints con = createConstraints();
diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java b/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java
index 9398ab86c1b..1feb2c4ce45 100644
--- a/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java
@@ -1,5 +1,5 @@
/* BasicProgressBarUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -103,7 +103,7 @@ public class BasicProgressBarUI extends ProgressBarUI
{
// Only need to listen for indeterminate changes.
// All other things are done on a repaint.
- if (e.getPropertyName().equals(JProgressBar.INDETERMINATE_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("inderterminate"))
if (((Boolean) e.getNewValue()).booleanValue())
startAnimationTimer();
else
@@ -467,7 +467,7 @@ public class BasicProgressBarUI extends ProgressBarUI
/**
* This method increments the animation index.
*/
- public void incrementAnimationIndex()
+ protected void incrementAnimationIndex()
{
animationIndex++;
//numFrames is like string length, it should be named numFrames or something
diff --git a/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
index 3b17f3608d0..55cfdc033e5 100644
--- a/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
@@ -66,11 +66,11 @@ public class BasicRadioButtonMenuItemUI extends BasicMenuItemUI
/**
* Factory method to create a BasicRadioButtonMenuItemUI for the given {@link
* JComponent}, which should be a JRadioButtonMenuItem.
- *
+ *
* @param b The {@link JComponent} a UI is being created for.
- *
+ *
* @return A BasicRadioButtonMenuItemUI for the {@link JComponent}.
- */
+ */
public static ComponentUI createUI(JComponent b)
{
return new BasicRadioButtonMenuItemUI();
@@ -96,7 +96,7 @@ public class BasicRadioButtonMenuItemUI extends BasicMenuItemUI
*/
public void processMouseEvent(JMenuItem item, MouseEvent e,
MenuElement[] path,
- MenuSelectionManager manager)
+ MenuSelectionManager manager)
{
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java b/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java
index 110200e58ab..4923b90b265 100644
--- a/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java
@@ -49,17 +49,17 @@ import javax.swing.plaf.RootPaneUI;
public class BasicRootPaneUI extends RootPaneUI
implements PropertyChangeListener
{
- public static ComponentUI createUI(JComponent x)
- {
- return new BasicRootPaneUI();
- }
+ public static ComponentUI createUI(JComponent x)
+ {
+ return new BasicRootPaneUI();
+ }
- public void installUI(JComponent c)
- {
- c.setOpaque(true);
+ public void installUI(JComponent c)
+ {
+ c.setOpaque(true);
c.setBackground(UIManager.getColor("control"));
- super.installUI(c);
- }
+ super.installUI(c);
+ }
public void propertyChange(PropertyChangeEvent event)
{
diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java b/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java
index 446726e8bf8..36939b21da0 100644
--- a/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java
@@ -1,5 +1,5 @@
/* BasicScrollBarUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -142,13 +142,13 @@ public class BasicScrollBarUI extends ScrollBarUI implements LayoutManager,
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JScrollBar.MODEL_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("model"))
{
((BoundedRangeModel) e.getOldValue()).removeChangeListener(modelListener);
scrollbar.getModel().addChangeListener(modelListener);
getThumbBounds();
}
- else if (e.getPropertyName().equals(JScrollBar.ORIENTATION_CHANGED_PROPERTY))
+ else if (e.getPropertyName().equals("orientation"))
{
incrButton.removeMouseListener(buttonListener);
decrButton.removeMouseListener(buttonListener);
diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java
index 4d70412479a..b4618b2f7bf 100644
--- a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java
@@ -53,11 +53,11 @@ import javax.swing.plaf.ScrollPaneUI;
public class BasicScrollPaneUI extends ScrollPaneUI
implements ScrollPaneConstants
{
-
- public static ComponentUI createUI(final JComponent c)
- {
- return new BasicScrollPaneUI();
- }
+
+ public static ComponentUI createUI(final JComponent c)
+ {
+ return new BasicScrollPaneUI();
+ }
protected void installDefaults(JScrollPane p)
{
@@ -77,9 +77,9 @@ public class BasicScrollPaneUI extends ScrollPaneUI
p.setBorder(null);
}
- public void installUI(final JComponent c)
- {
- super.installUI(c);
+ public void installUI(final JComponent c)
+ {
+ super.installUI(c);
this.installDefaults((JScrollPane)c);
}
@@ -87,29 +87,29 @@ public class BasicScrollPaneUI extends ScrollPaneUI
{
super.uninstallUI(c);
this.uninstallDefaults((JScrollPane)c);
- }
-
+ }
+
- public Dimension getMinimumSize(JComponent c)
- {
- JScrollPane p = (JScrollPane ) c;
- ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
- return sl.minimumLayoutSize(c);
- }
-
- public Dimension getPreferredSize(JComponent c)
- {
- JScrollPane p = (JScrollPane ) c;
- ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
- return sl.preferredLayoutSize(c);
- }
-
-
- public void paint(Graphics g, JComponent c)
- {
- // do nothing; the normal painting-of-children algorithm, along with
- // ScrollPaneLayout, does all the relevant work.
- }
+ public Dimension getMinimumSize(JComponent c)
+ {
+ JScrollPane p = (JScrollPane ) c;
+ ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
+ return sl.minimumLayoutSize(c);
+ }
+
+ public Dimension getPreferredSize(JComponent c)
+ {
+ JScrollPane p = (JScrollPane ) c;
+ ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
+ return sl.preferredLayoutSize(c);
+ }
+
+
+ public void paint(Graphics g, JComponent c)
+ {
+ // do nothing; the normal painting-of-children algorithm, along with
+ // ScrollPaneLayout, does all the relevant work.
+ }
}
diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI.java b/libjava/javax/swing/plaf/basic/BasicSliderUI.java
index 648e332639b..a08acc9bdad 100644
--- a/libjava/javax/swing/plaf/basic/BasicSliderUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicSliderUI.java
@@ -1,5 +1,5 @@
/* BasicSliderUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -139,7 +139,7 @@ public class BasicSliderUI extends SliderUI
/**
* Helper class that listens to the {@link JSlider}'s model for changes.
*/
- protected class ChangeHandler implements ChangeListener
+ public class ChangeHandler implements ChangeListener
{
/**
* Called when the slider's model has been altered. The UI delegate should
@@ -182,7 +182,7 @@ public class BasicSliderUI extends SliderUI
/**
* Helper class that listens for focus events.
*/
- protected class FocusHandler implements FocusListener
+ public class FocusHandler implements FocusListener
{
/**
* Called when the {@link JSlider} has gained focus. It should repaint
@@ -211,7 +211,7 @@ public class BasicSliderUI extends SliderUI
* Helper class that listens for changes to the properties of the {@link
* JSlider}.
*/
- protected class PropertyChangeHandler implements PropertyChangeListener
+ public class PropertyChangeHandler implements PropertyChangeListener
{
/**
* Called when one of the properties change. The UI should recalculate any
@@ -222,15 +222,15 @@ public class BasicSliderUI extends SliderUI
public void propertyChange(PropertyChangeEvent e)
{
// Check for orientation changes.
- if (e.getPropertyName().equals(JSlider.ORIENTATION_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("orientation"))
recalculateIfOrientationChanged();
- else if (e.getPropertyName().equals(JSlider.MODEL_CHANGED_PROPERTY))
- {
- BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue();
- oldModel.removeChangeListener(changeListener);
- slider.getModel().addChangeListener(changeListener);
- calculateThumbLocation();
- }
+ else if (e.getPropertyName().equals("model"))
+ {
+ BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue();
+ oldModel.removeChangeListener(changeListener);
+ slider.getModel().addChangeListener(changeListener);
+ calculateThumbLocation();
+ }
// elif the componentOrientation changes (this is a bound property,
// just undocumented) we change leftToRightCache. In Sun's
@@ -247,7 +247,7 @@ public class BasicSliderUI extends SliderUI
* for listening to the timer and moving the thumb in the proper direction
* every interval.
*/
- protected class ScrollListener implements ActionListener
+ public class ScrollListener implements ActionListener
{
/** Indicates which direction the thumb should scroll. */
private transient int direction;
@@ -346,15 +346,15 @@ public class BasicSliderUI extends SliderUI
currentMouseX = e.getX();
currentMouseY = e.getY();
if (slider.getValueIsAdjusting())
- {
- int value;
- if (slider.getOrientation() == JSlider.HORIZONTAL)
- value = valueForXPosition(currentMouseX) - offset;
- else
- value = valueForYPosition(currentMouseY) - offset;
-
- slider.setValue(value);
- }
+ {
+ int value;
+ if (slider.getOrientation() == JSlider.HORIZONTAL)
+ value = valueForXPosition(currentMouseX) - offset;
+ else
+ value = valueForYPosition(currentMouseY) - offset;
+
+ slider.setValue(value);
+ }
}
/**
@@ -391,7 +391,7 @@ public class BasicSliderUI extends SliderUI
value = findClosestTick(value);
// If the thumb is hit, then we don't need to set the timers to move it.
- if (!thumbRect.contains(e.getPoint()))
+ if (! thumbRect.contains(e.getPoint()))
{
// The mouse has hit some other part of the slider.
// The value moves no matter where in the slider you hit.
@@ -403,8 +403,8 @@ public class BasicSliderUI extends SliderUI
else
{
slider.setValueIsAdjusting(true);
- offset = value - slider.getValue();
- }
+ offset = value - slider.getValue();
+ }
}
/**
@@ -419,11 +419,11 @@ public class BasicSliderUI extends SliderUI
currentMouseY = e.getY();
if (slider.getValueIsAdjusting())
- {
- slider.setValueIsAdjusting(false);
- if (slider.getSnapToTicks())
- slider.setValue(findClosestTick(slider.getValue()));
- }
+ {
+ slider.setValueIsAdjusting(false);
+ if (slider.getSnapToTicks())
+ slider.setValue(findClosestTick(slider.getValue()));
+ }
if (scrollTimer != null)
scrollTimer.stop();
}
@@ -862,22 +862,22 @@ public class BasicSliderUI extends SliderUI
public Dimension getPreferredHorizontalSize()
{
Insets insets = slider.getInsets();
-
+
// The width should cover all the labels (which are usually the
// deciding factor of the width)
int width = getWidthOfWidestLabel() * (slider.getLabelTable() == null ? 0
: slider.getLabelTable()
.size());
-
+
// If there are not enough labels.
// This number is pretty much arbitrary, but it looks nice.
if (width < 200)
width = 200;
-
+
// We can only draw inside of the focusRectangle, so we have to
// pad it with insets.
width += insets.left + insets.right + focusInsets.left + focusInsets.right;
-
+
// Height is determined by the thumb, the ticks and the labels.
int height = thumbHeight;
@@ -887,10 +887,10 @@ public class BasicSliderUI extends SliderUI
if (slider.getPaintLabels())
height += getHeightOfTallestLabel();
-
+
height += insets.top + insets.bottom + focusInsets.top
+ focusInsets.bottom;
-
+
return new Dimension(width, height);
}
@@ -903,19 +903,19 @@ public class BasicSliderUI extends SliderUI
public Dimension getPreferredVerticalSize()
{
Insets insets = slider.getInsets();
-
+
int height = getHeightOfTallestLabel() * (slider.getLabelTable() == null
? 0 : slider.getLabelTable()
.size());
-
+
if (height < 200)
height = 200;
-
+
height += insets.top + insets.bottom + focusInsets.top
+ focusInsets.bottom;
int width = thumbHeight;
-
+
if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0
|| slider.getMinorTickSpacing() > 0)
width += tickHeight;
@@ -924,7 +924,7 @@ public class BasicSliderUI extends SliderUI
width += getWidthOfWidestLabel();
width += insets.left + insets.right + focusInsets.left + focusInsets.right;
-
+
return new Dimension(width, height);
}
@@ -960,7 +960,7 @@ public class BasicSliderUI extends SliderUI
* @return The dimensions of the preferred size.
*/
public Dimension getPreferredSize(JComponent c)
- {
+ {
if (slider.getOrientation() == JSlider.HORIZONTAL)
return getPreferredHorizontalSize();
else
@@ -1000,22 +1000,22 @@ public class BasicSliderUI extends SliderUI
else
return getPreferredVerticalSize();
}
-
+
/**
* This method calculates all the sizes of the rectangles by delegating to
* the helper methods calculateXXXRect.
*/
- protected void calculateGeometry()
- {
- calculateFocusRect();
- calculateContentRect();
- calculateThumbSize();
- calculateTrackBuffer();
- calculateTrackRect();
- calculateTickRect();
- calculateLabelRect();
- calculateThumbLocation();
- }
+ protected void calculateGeometry()
+ {
+ calculateFocusRect();
+ calculateContentRect();
+ calculateThumbSize();
+ calculateTrackBuffer();
+ calculateTrackRect();
+ calculateTickRect();
+ calculateLabelRect();
+ calculateThumbLocation();
+ }
/**
* This method calculates the size and position of the focusRect. This
@@ -1412,7 +1412,7 @@ public class BasicSliderUI extends SliderUI
leftToRightCache = slider.getComponentOrientation() != ComponentOrientation.RIGHT_TO_LEFT;
// FIXME: This next line is only here because the above line is here.
calculateThumbLocation();
-
+
if (slider.getPaintTrack())
paintTrack(g);
if (slider.getPaintTicks())
@@ -1573,8 +1573,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.x;
double increment = (max == min) ? 0
- : majorSpace * (double) tickRect.width / (max
- - min);
+ : majorSpace * (double) tickRect.width / (max
+ - min);
if (drawInverted())
{
loc += tickRect.width;
@@ -1590,8 +1590,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.height + tickRect.y;
double increment = (max == min) ? 0
- : -majorSpace * (double) tickRect.height / (max
- - min);
+ : -majorSpace * (double) tickRect.height / (max
+ - min);
if (drawInverted())
{
loc = tickRect.y;
@@ -1610,8 +1610,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.x;
double increment = (max == min) ? 0
- : minorSpace * (double) tickRect.width / (max
- - min);
+ : minorSpace * (double) tickRect.width / (max
+ - min);
if (drawInverted())
{
loc += tickRect.width;
@@ -1627,8 +1627,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.height + tickRect.y;
double increment = (max == min) ? 0
- : -minorSpace * (double) tickRect.height / (max
- - min);
+ : -minorSpace * (double) tickRect.height / (max
+ - min);
if (drawInverted())
{
loc = tickRect.y;
@@ -1800,13 +1800,13 @@ public class BasicSliderUI extends SliderUI
Dimension dim = label.getPreferredSize();
int w = (int) dim.getWidth();
int h = (int) dim.getHeight();
-
+
int max = slider.getMaximum();
int min = slider.getMinimum();
if (value > max || value < min)
return;
-
+
// value
// |
// ------------
@@ -2027,7 +2027,7 @@ public class BasicSliderUI extends SliderUI
protected void scrollDueToClickInTrack(int dir)
{
scrollTimer.stop();
-
+
scrollListener.setDirection(dir);
scrollListener.setScrollByBlock(true);
diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java
index 1ee1bb6d993..987f86bdb1b 100644
--- a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java
+++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java
@@ -160,6 +160,7 @@ public class BasicSplitPaneDivider extends Container
*/
private transient int currentDividerLocation = 1;
+ /** DOCUMENT ME! */
private transient Border tmpBorder = new Border()
{
public Insets getBorderInsets(Component c)
diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java
index 7073086aae5..a533f0820aa 100644
--- a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java
@@ -1,5 +1,5 @@
-/* BasicTabbedPaneUI.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* BasicTabbedPaneUI.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing.plaf.basic;
import java.awt.Color;
@@ -75,7 +76,6 @@ import javax.swing.plaf.TabbedPaneUI;
import javax.swing.plaf.UIResource;
import javax.swing.text.View;
-
/**
* This is the Basic Look and Feel's UI delegate for JTabbedPane.
*/
@@ -84,7 +84,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
/**
* A helper class that handles focus.
*/
- protected class FocusHandler extends FocusAdapter
+ public class FocusHandler extends FocusAdapter
{
/**
* This method is called when the component gains focus.
@@ -112,7 +112,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
* sets the index appropriately. In SCROLL_TAB_MODE, this class also
* handles the mouse clicks on the scrolling buttons.
*/
- protected class MouseHandler extends MouseAdapter
+ public class MouseHandler extends MouseAdapter
{
/**
* This method is called when the mouse is pressed. The index cannot
@@ -184,13 +184,13 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JTabbedPane.TAB_LAYOUT_POLICY_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("tabLayoutPolicy"))
{
layoutManager = createLayoutManager();
tabPane.setLayout(layoutManager);
}
- else if (e.getPropertyName().equals(JTabbedPane.TAB_PLACEMENT_CHANGED_PROPERTY)
+ else if (e.getPropertyName().equals("tabPlacement")
&& tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT)
{
incrButton = createIncreaseButton();
@@ -1459,7 +1459,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
*
* @return A layout manager given the tab layout policy.
*/
- public LayoutManager createLayoutManager()
+ protected LayoutManager createLayoutManager()
{
if (tabPane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT)
return new TabbedPaneLayout();
diff --git a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java
index ea7dfc0cd6d..ebc702ad393 100644
--- a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java
@@ -191,8 +191,8 @@ public class BasicTableHeaderUI
int spacing = 0;
if (header.getTable() != null
- && header.getTable().getInterCellSpacing() != null)
- spacing = header.getTable().getInterCellSpacing().width;
+ && header.getTable().getIntercellSpacing() != null)
+ spacing = header.getTable().getIntercellSpacing().width;
for (int i = 0; i < ncols; ++i)
{
diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI.java b/libjava/javax/swing/plaf/basic/BasicTableUI.java
index eb0054bb645..9be6d60e918 100644
--- a/libjava/javax/swing/plaf/basic/BasicTableUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTableUI.java
@@ -104,45 +104,12 @@ public class BasicTableUI
{
Point begin, curr;
- private int getRowForPoint(Point p)
- {
- int y0 = table.getLocation().y;
- int nrows = table.getRowCount();
- Dimension gap = table.getInterCellSpacing();
- int height = table.getRowHeight() + (gap == null ? 0 : gap.height);
- int y = p.y;
- for (int i = 0; i < nrows; ++i)
- {
- if (0 <= y && y < height)
- return i;
- y -= height;
- }
- return -1;
- }
-
- private int getColForPoint(Point p)
- {
- int x0 = table.getLocation().x;
- int ncols = table.getColumnCount();
- Dimension gap = table.getInterCellSpacing();
- TableColumnModel cols = table.getColumnModel();
- int x = p.x;
- for (int i = 0; i < ncols; ++i)
- {
- int width = cols.getColumn(i).getWidth() + (gap == null ? 0 : gap.width);
- if (0 <= x && x < width)
- return i;
- x -= width;
- }
- return -1;
- }
-
private void updateSelection()
{
if (table.getRowSelectionAllowed())
{
- int lo_row = getRowForPoint(begin);
- int hi_row = getRowForPoint(curr);
+ int lo_row = table.rowAtPoint(begin);
+ int hi_row = table.rowAtPoint(curr);
ListSelectionModel rowModel = table.getSelectionModel();
if (lo_row != -1 && hi_row != -1)
rowModel.setSelectionInterval(lo_row, hi_row);
@@ -150,8 +117,8 @@ public class BasicTableUI
if (table.getColumnSelectionAllowed())
{
- int lo_col = getColForPoint(begin);
- int hi_col = getColForPoint(curr);
+ int lo_col = table.columnAtPoint(begin);
+ int hi_col = table.columnAtPoint(curr);
ListSelectionModel colModel = table.getColumnModel().getSelectionModel();
if (lo_col != -1 && hi_col != -1)
colModel.setSelectionInterval(lo_col, hi_col);
@@ -294,7 +261,7 @@ public class BasicTableUI
int x = x0;
int y = y0;
- Dimension gap = table.getInterCellSpacing();
+ Dimension gap = table.getIntercellSpacing();
int ymax = clip.y + clip.height;
int xmax = clip.x + clip.width;
diff --git a/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java b/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java
index 615c74b2bff..ac20a0a990c 100644
--- a/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java
@@ -38,23 +38,22 @@ exception statement from your version. */
package javax.swing.plaf.basic;
-import java.beans.PropertyChangeEvent;
-
import javax.swing.JComponent;
import javax.swing.plaf.ComponentUI;
import javax.swing.text.Element;
import javax.swing.text.PlainView;
import javax.swing.text.View;
-public class BasicTextPaneUI extends BasicTextUI
+public class BasicTextPaneUI extends BasicEditorPaneUI
{
- public static ComponentUI createUI(JComponent comp)
+ public BasicTextPaneUI()
{
- return new BasicTextPaneUI();
+ // Do nothing here.
}
- public BasicTextPaneUI()
+ public static ComponentUI createUI(JComponent comp)
{
+ return new BasicTextPaneUI();
}
public View create(Element elem)
diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI.java b/libjava/javax/swing/plaf/basic/BasicTextUI.java
index b3d03dbae68..a94ca2bb420 100644
--- a/libjava/javax/swing/plaf/basic/BasicTextUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTextUI.java
@@ -1,5 +1,5 @@
-/* BasicTextUI.java
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* BasicTextUI.java --
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -94,7 +94,7 @@ public abstract class BasicTextUI extends TextUI
{
}
}
-
+
private class RootView extends View
{
private View view;
@@ -104,6 +104,8 @@ public abstract class BasicTextUI extends TextUI
super(null);
}
+ // View methods.
+
public ViewFactory getViewFactory()
{
// FIXME: Handle EditorKit somehow.
@@ -111,8 +113,8 @@ public abstract class BasicTextUI extends TextUI
}
public void setView(View v)
- {
- if (view != null)
+ {
+ if (view != null)
view.setParent(null);
if (v != null)
@@ -122,17 +124,17 @@ public abstract class BasicTextUI extends TextUI
}
public Container getContainer()
- {
+ {
return textComponent;
}
-
+
public float getPreferredSpan(int axis)
{
if (view != null)
return view.getPreferredSpan(axis);
return Integer.MAX_VALUE;
- }
+ }
public void paint(Graphics g, Shape s)
{
@@ -140,9 +142,12 @@ public abstract class BasicTextUI extends TextUI
view.paint(g, s);
}
- protected Rectangle modelToView(int position, Shape a, Position.Bias bias)
+ public Shape modelToView(int position, Shape a, Position.Bias bias)
throws BadLocationException
{
+ if (view == null)
+ return null;
+
return ((PlainView) view).modelToView(position, a, bias).getBounds();
}
}
@@ -183,7 +188,7 @@ public abstract class BasicTextUI extends TextUI
{
return textComponent;
}
-
+
public void installUI(final JComponent c)
{
super.installUI(c);
@@ -327,11 +332,12 @@ public abstract class BasicTextUI extends TextUI
rootView.setView(null);
textComponent.removePropertyChangeListener(updateHandler);
- textComponent = null;
uninstallDefaults();
uninstallListeners();
uninstallKeyboardActions();
+
+ textComponent = null;
}
protected void uninstallDefaults()
@@ -360,7 +366,7 @@ public abstract class BasicTextUI extends TextUI
return new Dimension((int) w, (int) h);
}
-
+
public final void paint(Graphics g, JComponent c)
{
paintSafely(g);
@@ -442,13 +448,13 @@ public abstract class BasicTextUI extends TextUI
public View create(Element elem)
{
- // subclasses have to implement this to get this functionality
+ // Subclasses have to implement this to get this functionality.
return null;
}
public View create(Element elem, int p0, int p1)
{
- // subclasses have to implement this to get this functionality
+ // Subclasses have to implement this to get this functionality.
return null;
}
diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI.java b/libjava/javax/swing/plaf/basic/BasicToolBarUI.java
index 8315fc05f09..fad0108e096 100644
--- a/libjava/javax/swing/plaf/basic/BasicToolBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI.java
@@ -1,5 +1,5 @@
/* BasicToolBarUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -92,40 +92,40 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
private static Border rolloverBorder;
/** The last known BorderLayout constraint before floating. */
- protected String constraintBeforeFloating;
+ protected String constraintBeforeFloating;
/** The last known orientation of the JToolBar before floating. */
private int lastGoodOrientation;
/** The color of the border when it is dockable. */
- protected Color dockingBorderColor;
+ protected Color dockingBorderColor;
/** The background color of the JToolBar when it is dockable. */
- protected Color dockingColor;
+ protected Color dockingColor;
/** The docking listener responsible for mouse events on the JToolBar. */
- protected MouseInputListener dockingListener;
+ protected MouseInputListener dockingListener;
/** The window used for dragging the JToolBar. */
- protected BasicToolBarUI.DragWindow dragWindow;
+ protected BasicToolBarUI.DragWindow dragWindow;
/** The color of the border when it is not dockable. */
- protected Color floatingBorderColor;
+ protected Color floatingBorderColor;
/** The background color of the JToolBar when it is not dockable. */
- protected Color floatingColor;
+ protected Color floatingColor;
/** The index of the focused component. */
- protected int focusedCompIndex;
+ protected int focusedCompIndex;
/** The PropertyChangeListener for the JToolBar. */
- protected PropertyChangeListener propertyListener;
+ protected PropertyChangeListener propertyListener;
/** The JToolBar this UI delegate is responsible for. */
- protected JToolBar toolBar;
+ protected JToolBar toolBar;
/** The Container listener for the JToolBar. */
- protected ContainerListener toolBarContListener;
+ protected ContainerListener toolBarContListener;
/** The Focus listener for the JToolBar. */
protected FocusListener toolBarFocusListener;
@@ -152,11 +152,11 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
private transient int cachedOrientation;
/**
- * This method creates a new BasicToolBarUI object for the given JToolBar.
+ * This method creates a new <code>BasicToolBarUI</code> object for the given JToolBar.
*/
public BasicToolBarUI()
{
- super();
+ // Do nothing here.
}
/**
@@ -168,13 +168,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return Whether the JToolBar can dock.
*/
- protected boolean canDock(Component c, Point p)
- {
- if (areaOfClick(c, p) != -1)
- return true;
-
- return false;
- }
+ public boolean canDock(Component c, Point p)
+ {
+ return areaOfClick(c, p) != -1;
+ }
/**
* This helper method returns the position of the JToolBar if it can dock.
@@ -219,10 +216,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new DockingListener for the JToolBar.
*/
- protected MouseInputListener createDockingListener()
- {
+ protected MouseInputListener createDockingListener()
+ {
return new DockingListener(toolBar);
- }
+ }
/**
* This method creates a new DragWindow for the given JToolBar.
@@ -231,10 +228,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new DragWindow.
*/
- protected BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar)
- {
+ protected BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar)
+ {
return new DragWindow();
- }
+ }
/**
* This method creates a new floating frame for the JToolBar. By default,
@@ -245,11 +242,11 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new floating frame.
*/
- protected JFrame createFloatingFrame(JToolBar toolbar)
- {
+ protected JFrame createFloatingFrame(JToolBar toolbar)
+ {
// FIXME: Though deprecated, this should still work.
- return null;
- }
+ return null;
+ }
/**
* This method creates a new floating window for the JToolBar. This is the
@@ -259,21 +256,21 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new floating window.
*/
- protected RootPaneContainer createFloatingWindow(JToolBar toolbar)
- {
+ protected RootPaneContainer createFloatingWindow(JToolBar toolbar)
+ {
// This one is used by default though.
return new ToolBarDialog();
- }
+ }
/**
* This method creates a new WindowListener for the JToolBar.
*
* @return A new WindowListener.
*/
- protected WindowListener createFrameListener()
- {
+ protected WindowListener createFrameListener()
+ {
return new FrameListener();
- }
+ }
/**
* This method creates a new nonRolloverBorder for JButtons when the
@@ -281,20 +278,20 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new NonRolloverBorder.
*/
- protected Border createNonRolloverBorder()
- {
+ protected Border createNonRolloverBorder()
+ {
return new EtchedBorderUIResource();
- }
+ }
/**
* This method creates a new PropertyChangeListener for the JToolBar.
*
* @return A new PropertyChangeListener.
*/
- protected PropertyChangeListener createPropertyListener()
- {
+ protected PropertyChangeListener createPropertyListener()
+ {
return new PropertyListener();
- }
+ }
/**
* This method creates a new rollover border for JButtons when the
@@ -302,8 +299,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new rollover border.
*/
- protected Border createRolloverBorder()
- {
+ protected Border createRolloverBorder()
+ {
return new EtchedBorderUIResource()
{
public void paintBorder(Component c, Graphics g, int x, int y,
@@ -316,27 +313,27 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
}
}
};
- }
+ }
/**
* This method creates a new Container listener for the JToolBar.
*
* @return A new Container listener.
*/
- protected ContainerListener createToolBarContListener()
- {
+ protected ContainerListener createToolBarContListener()
+ {
return new ToolBarContListener();
- }
+ }
/**
* This method creates a new FocusListener for the JToolBar.
*
* @return A new FocusListener for the JToolBar.
*/
- protected FocusListener createToolBarFocusListener()
- {
+ protected FocusListener createToolBarFocusListener()
+ {
return new ToolBarFocusListener();
- }
+ }
/**
* This method creates a new UI delegate for the given JComponent.
@@ -357,8 +354,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param position The mouse cursor coordinates relative to the JToolBar.
* @param origin The screen position of the JToolBar.
*/
- protected void dragTo(Point position, Point origin)
- {
+ protected void dragTo(Point position, Point origin)
+ {
int loc = areaOfClick(origParent,
SwingUtilities.convertPoint(toolBar, position,
origParent));
@@ -390,7 +387,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
{
w = cachedBounds.height;
h = cachedBounds.width;
- }
+ }
Point p = dragWindow.getOffset();
Insets insets = toolBar.getInsets();
@@ -414,8 +411,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param origin The screen position of the JToolBar before the drag session
* started.
*/
- protected void floatAt(Point position, Point origin)
- {
+ protected void floatAt(Point position, Point origin)
+ {
Point p = new Point(position);
int aoc = areaOfClick(origParent,
SwingUtilities.convertPoint(toolBar, p, origParent));
@@ -434,7 +431,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
{
floatFrame.hide();
newParent = origParent;
- }
+ }
String constraint;
switch (aoc)
@@ -499,9 +496,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The docking color.
*/
public Color getDockingColor()
- {
- return dockingColor;
- }
+ {
+ return dockingColor;
+ }
/**
* This method returns the Color which is displayed when over a floating
@@ -510,9 +507,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The color which is displayed when over a floating area.
*/
public Color getFloatingColor()
- {
- return floatingColor;
- }
+ {
+ return floatingColor;
+ }
/**
* This method returns the maximum size of the given JComponent for this UI.
@@ -522,9 +519,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The maximum size for this UI.
*/
public Dimension getMaximumSize(JComponent c)
- {
+ {
return getPreferredSize(c);
- }
+ }
/**
* This method returns the minimum size of the given JComponent for this UI.
@@ -534,9 +531,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The minimum size for this UI.
*/
public Dimension getMinimumSize(JComponent c)
- {
+ {
return getPreferredSize(c);
- }
+ }
/**
* This method returns the preferred size of the given JComponent for this
@@ -547,15 +544,15 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The preferred size for this UI.
*/
public Dimension getPreferredSize(JComponent c)
- {
+ {
return toolBar.getLayout().preferredLayoutSize(c);
- }
+ }
/**
* This method installs the needed components for the JToolBar.
*/
- protected void installComponents()
- {
+ protected void installComponents()
+ {
floatFrame = (Window) createFloatingWindow(toolBar);
dragWindow = createDragWindow(toolBar);
@@ -569,13 +566,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
borders = new Hashtable();
fillHashtable();
- }
+ }
/**
* This method installs the defaults as specified by the look and feel.
*/
- protected void installDefaults()
- {
+ protected void installDefaults()
+ {
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
toolBar.setBorder(new ToolBarBorder());
@@ -588,24 +585,24 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
floatingBorderColor = defaults.getColor("ToolBar.floatingForeground");
floatingColor = defaults.getColor("ToolBar.floatingBackground");
- }
+ }
/**
* This method installs the keyboard actions for the JToolBar as specified
* by the look and feel.
*/
- protected void installKeyboardActions()
- {
+ protected void installKeyboardActions()
+ {
// FIXME: implement.
- }
+ }
/**
* This method installs listeners for the JToolBar.
*
* @param toolbar The JToolBar to register listeners for.
*/
- protected void installListeners(JToolBar toolbar)
- {
+ protected void installListeners(JToolBar toolbar)
+ {
dockingListener = createDockingListener();
toolBar.addMouseListener(dockingListener);
toolBar.addMouseMotionListener(dockingListener);
@@ -630,13 +627,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent whose children need to have non rollover borders
* installed.
*/
- protected void installNonRolloverBorders(JComponent c)
- {
+ protected void installNonRolloverBorders(JComponent c)
+ {
Component[] components = toolBar.getComponents();
for (int i = 0; i < components.length; i++)
setBorderToNonRollover(components[i]);
- }
+ }
/**
* This method installs normal (or their original) borders for each
@@ -645,13 +642,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent whose children need to have their original
* borders installed.
*/
- protected void installNormalBorders(JComponent c)
- {
+ protected void installNormalBorders(JComponent c)
+ {
Component[] components = toolBar.getComponents();
for (int i = 0; i < components.length; i++)
setBorderToNormal(components[i]);
- }
+ }
/**
* This method install rollover borders for each component inside the given
@@ -660,13 +657,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent whose children need to have rollover borders
* installed.
*/
- protected void installRolloverBorders(JComponent c)
- {
+ protected void installRolloverBorders(JComponent c)
+ {
Component[] components = toolBar.getComponents();
for (int i = 0; i < components.length; i++)
setBorderToRollover(components[i]);
- }
+ }
/**
* This method fills the borders hashtable with a list of components that
@@ -694,20 +691,20 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @param c The JComponent to install a UI for.
*/
- public void installUI(JComponent c)
- {
- super.installUI(c);
+ public void installUI(JComponent c)
+ {
+ super.installUI(c);
- if (c instanceof JToolBar)
- {
- toolBar = (JToolBar) c;
- toolBar.setOpaque(true);
+ if (c instanceof JToolBar)
+ {
+ toolBar = (JToolBar) c;
+ toolBar.setOpaque(true);
installDefaults();
installComponents();
- installListeners(toolBar);
+ installListeners(toolBar);
installKeyboardActions();
- }
- }
+ }
+ }
/**
* This method returns whether the JToolBar is floating.
@@ -715,9 +712,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return Whether the JToolBar is floating.
*/
public boolean isFloating()
- {
+ {
return floatFrame.isVisible();
- }
+ }
/**
* This method returns whether rollover borders have been set.
@@ -725,9 +722,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return Whether rollover borders have been set.
*/
public boolean isRolloverBorders()
- {
+ {
return toolBar.isRollover();
- }
+ }
/**
* This method navigates in the given direction giving focus to the next
@@ -735,10 +732,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @param direction The direction to give focus to.
*/
- protected void navigateFocusedComp(int direction)
- {
+ protected void navigateFocusedComp(int direction)
+ {
// FIXME: Implement.
- }
+ }
/**
* This method sets the border of the given component to a non rollover
@@ -746,45 +743,45 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @param c The Component whose border needs to be set.
*/
- protected void setBorderToNonRollover(Component c)
- {
+ protected void setBorderToNonRollover(Component c)
+ {
if (c instanceof JButton)
{
JButton b = (JButton) c;
b.setRolloverEnabled(false);
b.setBorder(nonRolloverBorder);
}
- }
+ }
/**
* This method sets the border of the given component to its original value.
*
* @param c The Component whose border needs to be set.
*/
- protected void setBorderToNormal(Component c)
- {
+ protected void setBorderToNormal(Component c)
+ {
if (c instanceof JButton)
{
JButton b = (JButton) c;
Border border = (Border) borders.get(b);
b.setBorder(border);
}
- }
+ }
/**
* This method sets the border of the given component to a rollover border.
*
* @param c The Component whose border needs to be set.
*/
- protected void setBorderToRollover(Component c)
- {
+ protected void setBorderToRollover(Component c)
+ {
if (c instanceof JButton)
{
JButton b = (JButton) c;
b.setRolloverEnabled(true);
b.setBorder(rolloverBorder);
}
- }
+ }
/**
* This method sets the docking color.
@@ -792,9 +789,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The docking color.
*/
public void setDockingColor(Color c)
- {
- dockingColor = c;
- }
+ {
+ dockingColor = c;
+ }
/**
* This method sets the floating property for the JToolBar.
@@ -816,9 +813,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The floating color.
*/
public void setFloatingColor(Color c)
- {
+ {
floatingColor = c;
- }
+ }
/**
* This method sets the floating location of the JToolBar.
@@ -866,7 +863,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* This method uninstall UI installed components from the JToolBar.
*/
protected void uninstallComponents()
- {
+ {
installNormalBorders(toolBar);
borders = null;
rolloverBorder = null;
@@ -890,21 +887,21 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
dockingColor = null;
floatingBorderColor = null;
floatingColor = null;
- }
+ }
/**
* This method uninstalls keyboard actions installed by the UI.
*/
protected void uninstallKeyboardActions()
- {
+ {
// FIXME: implement.
- }
+ }
/**
* This method uninstalls listeners installed by the UI.
*/
protected void uninstallListeners()
- {
+ {
toolBar.removeFocusListener(toolBarFocusListener);
toolBarFocusListener = null;
@@ -917,7 +914,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
toolBar.removeMouseMotionListener(dockingListener);
toolBar.removeMouseListener(dockingListener);
dockingListener = null;
- }
+ }
/**
* This method uninstalls the UI.
@@ -925,7 +922,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent that is having this UI removed.
*/
public void uninstallUI(JComponent c)
- {
+ {
uninstallKeyboardActions();
uninstallListeners();
uninstallComponents();
@@ -937,7 +934,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* This is the MouseHandler class that allows the user to drag the JToolBar
* in and out of the parent and dock it if it can.
*/
- protected class DockingListener implements MouseInputListener
+ public class DockingListener implements MouseInputListener
{
/** Whether the JToolBar is being dragged. */
protected boolean isDragging;
@@ -1032,7 +1029,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
{
if (e.getX() > insets.left)
return;
- }
+ }
else
{
if (e.getY() > insets.top)
@@ -1221,7 +1218,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
public void propertyChange(PropertyChangeEvent e)
{
// FIXME: need name properties so can change floatFrame title.
- if (e.getPropertyName().equals(JToolBar.ROLLOVER_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("rollover"))
setRolloverBorders(toolBar.isRollover());
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI.java b/libjava/javax/swing/plaf/basic/BasicTreeUI.java
index 93e3900750a..db74f067ef0 100644
--- a/libjava/javax/swing/plaf/basic/BasicTreeUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTreeUI.java
@@ -45,14 +45,13 @@ import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.JComponent;
+import javax.swing.JTree;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
-import javax.swing.JTree;
import javax.swing.plaf.TreeUI;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.TreePath;
import javax.swing.tree.TreeModel;
+import javax.swing.tree.TreePath;
/**
* A delegate providing the user interface for <code>JTree</code>
diff --git a/libjava/javax/swing/plaf/metal/DefaultMetalTheme.java b/libjava/javax/swing/plaf/metal/DefaultMetalTheme.java
new file mode 100644
index 00000000000..7c91eaadcb5
--- /dev/null
+++ b/libjava/javax/swing/plaf/metal/DefaultMetalTheme.java
@@ -0,0 +1,143 @@
+/* DefaultMetalTheme.java --
+ Copyright (C) 2004 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 javax.swing.plaf.metal;
+
+import java.awt.Font;
+
+import javax.swing.plaf.ColorUIResource;
+import javax.swing.plaf.FontUIResource;
+
+public class DefaultMetalTheme extends MetalTheme
+{
+ private static final ColorUIResource PRIMARY1 =
+ new ColorUIResource(102, 102, 153);
+ private static final ColorUIResource PRIMARY2 =
+ new ColorUIResource(153, 153, 204);
+ private static final ColorUIResource PRIMARY3 =
+ new ColorUIResource(204, 204, 255);
+ private static final ColorUIResource SECONDARY1 =
+ new ColorUIResource(102, 102, 102);
+ private static final ColorUIResource SECONDARY2 =
+ new ColorUIResource(153, 153, 153);
+ private static final ColorUIResource SECONDARY3 =
+ new ColorUIResource(204, 204, 204);
+
+ private static final FontUIResource CONTROL_TEXT_FONT =
+ new FontUIResource("Dialog", Font.BOLD, 12);
+ private static final FontUIResource MENU_TEXT_FONT =
+ new FontUIResource("Dialog", Font.BOLD, 12);
+ private static final FontUIResource SUB_TEXT_FONT =
+ new FontUIResource("Dialog", Font.PLAIN, 10);
+ private static final FontUIResource SYSTEM_TEXT_FONT =
+ new FontUIResource("Dialog", Font.PLAIN, 12);
+ private static final FontUIResource USER_TEXT_FONT =
+ new FontUIResource("Dialog", Font.PLAIN, 12);
+ private static final FontUIResource WINDOW_TITLE_FONT =
+ new FontUIResource("Dialog", Font.BOLD, 12);
+
+ public DefaultMetalTheme()
+ {
+ // Do nothing here.
+ }
+
+ public String getName()
+ {
+ return "Steel";
+ }
+
+ protected ColorUIResource getPrimary1()
+ {
+ return PRIMARY1;
+ }
+
+ protected ColorUIResource getPrimary2()
+ {
+ return PRIMARY2;
+ }
+
+ protected ColorUIResource getPrimary3()
+ {
+ return PRIMARY3;
+ }
+
+ protected ColorUIResource getSecondary1()
+ {
+ return SECONDARY1;
+ }
+
+ protected ColorUIResource getSecondary2()
+ {
+ return SECONDARY2;
+ }
+
+ protected ColorUIResource getSecondary3()
+ {
+ return SECONDARY3;
+ }
+
+ public FontUIResource getControlTextFont()
+ {
+ return CONTROL_TEXT_FONT;
+ }
+
+ public FontUIResource getMenuTextFont()
+ {
+ return MENU_TEXT_FONT;
+ }
+
+ public FontUIResource getSubTextFont()
+ {
+ return SUB_TEXT_FONT;
+ }
+
+ public FontUIResource getSystemTextFont()
+ {
+ return SYSTEM_TEXT_FONT;
+ }
+
+ public FontUIResource getUserTextFont()
+ {
+ return USER_TEXT_FONT;
+ }
+
+ public FontUIResource getWindowTitleFont()
+ {
+ return WINDOW_TITLE_FONT;
+ }
+}
diff --git a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
index fb6f27b88c1..b33205004b0 100644
--- a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
+++ b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
@@ -36,35 +36,275 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
-
package javax.swing.plaf.metal;
import javax.swing.UIDefaults;
+import javax.swing.plaf.ColorUIResource;
+import javax.swing.plaf.FontUIResource;
import javax.swing.plaf.basic.BasicLookAndFeel;
public class MetalLookAndFeel extends BasicLookAndFeel
{
private static final long serialVersionUID = 6680646159193457980L;
-
- public boolean isNativeLookAndFeel() { return true; }
- public boolean isSupportedLookAndFeel() { return true; }
- public String getDescription() { return "Metal look and feel"; }
- public String getID() { return "MetalLookAndFeel"; }
- public String getName() { return "MetalLookAndFeel"; }
-
-
- UIDefaults LAF_defaults;
-
- public MetalLookAndFeel()
- {
- }
-
- public UIDefaults getDefaults()
- {
- if (LAF_defaults == null)
- LAF_defaults = super.getDefaults();
-
- // Returns the default values for this look and feel.
- return LAF_defaults;
- }
- }
+ private static MetalTheme theme;
+ private UIDefaults LAF_defaults;
+
+ public MetalLookAndFeel()
+ {
+ createDefaultTheme();
+ }
+
+ protected void createDefaultTheme()
+ {
+ setCurrentTheme(new DefaultMetalTheme());
+ }
+
+ public boolean isNativeLookAndFeel()
+ {
+ return true;
+ }
+
+ public boolean isSupportedLookAndFeel()
+ {
+ return true;
+ }
+
+ public String getDescription()
+ {
+ return "Metal look and feel";
+ }
+
+ public String getID()
+ {
+ return "MetalLookAndFeel";
+ }
+
+ public String getName()
+ {
+ return "MetalLookAndFeel";
+ }
+
+ public UIDefaults getDefaults()
+ {
+ if (LAF_defaults == null)
+ LAF_defaults = super.getDefaults();
+
+ // Returns the default values for this look and feel.
+ return LAF_defaults;
+ }
+
+ public static ColorUIResource getAcceleratorForeground()
+ {
+ return theme.getAcceleratorForeground();
+ }
+
+ public static ColorUIResource getAcceleratorSelectedForeground()
+ {
+ return theme.getAcceleratorSelectedForeground();
+ }
+
+ public static ColorUIResource getBlack()
+ {
+ return theme.getBlack();
+ }
+
+ public static ColorUIResource getControl()
+ {
+ return theme.getControl();
+ }
+
+ public static ColorUIResource getControlDarkShadow()
+ {
+ return theme.getControlDarkShadow();
+ }
+
+ public static ColorUIResource getControlDisabled()
+ {
+ return theme.getControlDisabled();
+ }
+
+ public static ColorUIResource getControlHighlight()
+ {
+ return theme.getControlHighlight();
+ }
+
+ public static ColorUIResource getControlInfo()
+ {
+ return theme.getControlInfo();
+ }
+
+ public static ColorUIResource getControlShadow()
+ {
+ return theme.getControlShadow();
+ }
+
+ public static ColorUIResource getControlTextColor()
+ {
+ return theme.getControlTextColor();
+ }
+
+ public static FontUIResource getControlTextFont()
+ {
+ return theme.getControlTextFont();
+ }
+
+ public static ColorUIResource getDesktopColor()
+ {
+ return theme.getDesktopColor();
+ }
+
+ public static ColorUIResource getFocusColor()
+ {
+ return theme.getFocusColor();
+ }
+
+ public static ColorUIResource getHighlightedTextColor()
+ {
+ return theme.getHighlightedTextColor();
+ }
+
+ public static ColorUIResource getInactiveControlTextColor()
+ {
+ return theme.getInactiveControlTextColor();
+ }
+
+ public static ColorUIResource getInactiveSystemTextColor()
+ {
+ return theme.getInactiveSystemTextColor();
+ }
+
+ public static ColorUIResource getMenuBackground()
+ {
+ return theme.getMenuBackground();
+ }
+
+ public static ColorUIResource getMenuDisabledForeground()
+ {
+ return theme.getMenuDisabledForeground();
+ }
+
+ public static ColorUIResource getMenuForeground()
+ {
+ return theme.getMenuForeground();
+ }
+
+ public static ColorUIResource getMenuSelectedBackground()
+ {
+ return theme.getMenuSelectedBackground();
+ }
+
+ public static ColorUIResource getMenuSelectedForeground()
+ {
+ return theme.getMenuSelectedForeground();
+ }
+
+ public static FontUIResource getMenuTextFont()
+ {
+ return theme.getMenuTextFont();
+ }
+
+ public static ColorUIResource getPrimaryControl()
+ {
+ return theme.getPrimaryControl();
+ }
+
+ public static ColorUIResource getPrimaryControlDarkShadow()
+ {
+ return theme.getPrimaryControlDarkShadow();
+ }
+
+ public static ColorUIResource getPrimaryControlHighlight()
+ {
+ return theme.getPrimaryControlHighlight();
+ }
+
+ public static ColorUIResource getPrimaryControlInfo()
+ {
+ return theme.getPrimaryControlInfo();
+ }
+
+ public static ColorUIResource getPrimaryControlShadow()
+ {
+ return theme.getPrimaryControlShadow();
+ }
+
+ public static ColorUIResource getSeparatorBackground()
+ {
+ return theme.getSeparatorBackground();
+ }
+
+ public static ColorUIResource getSeparatorForeground()
+ {
+ return theme.getSeparatorForeground();
+ }
+
+ public static FontUIResource getSubTextFont()
+ {
+ return theme.getSubTextFont();
+ }
+
+ public static ColorUIResource getSystemTextColor()
+ {
+ return theme.getSystemTextColor();
+ }
+
+ public static FontUIResource getSystemTextFont()
+ {
+ return theme.getSystemTextFont();
+ }
+
+ public static ColorUIResource getTextHighlightColor()
+ {
+ return theme.getTextHighlightColor();
+ }
+
+ public static ColorUIResource getUserTextColor()
+ {
+ return theme.getUserTextColor();
+ }
+
+ public static FontUIResource getUserTextFont()
+ {
+ return theme.getUserTextFont();
+ }
+
+ public static ColorUIResource getWhite()
+ {
+ return theme.getWhite();
+ }
+
+ public static ColorUIResource getWindowBackground()
+ {
+ return theme.getWindowBackground();
+ }
+
+ public static ColorUIResource getWindowTitleBackground()
+ {
+ return theme.getWindowTitleBackground();
+ }
+
+ public static FontUIResource getWindowTitleFont()
+ {
+ return theme.getWindowTitleFont();
+ }
+
+ public static ColorUIResource getWindowTitleForeground()
+ {
+ return theme.getWindowTitleForeground();
+ }
+
+ public static ColorUIResource getWindowTitleInactiveBackground()
+ {
+ return theme.getWindowTitleInactiveBackground();
+ }
+
+ public static ColorUIResource getWindowTitleInactiveForeground()
+ {
+ return theme.getWindowTitleInactiveForeground();
+ }
+
+ public static void setCurrentTheme(MetalTheme theme)
+ {
+ MetalLookAndFeel.theme = theme;
+ }
+}
diff --git a/libjava/javax/swing/plaf/metal/MetalTheme.java b/libjava/javax/swing/plaf/metal/MetalTheme.java
new file mode 100644
index 00000000000..970f8309570
--- /dev/null
+++ b/libjava/javax/swing/plaf/metal/MetalTheme.java
@@ -0,0 +1,259 @@
+/* MetalTheme.java --
+ Copyright (C) 2004 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 javax.swing.plaf.metal;
+
+import java.awt.Color;
+
+import javax.swing.UIDefaults;
+import javax.swing.plaf.ColorUIResource;
+import javax.swing.plaf.FontUIResource;
+
+public abstract class MetalTheme
+{
+ private ColorUIResource BLACK = new ColorUIResource(Color.BLACK);
+ private ColorUIResource WHITE = new ColorUIResource(Color.WHITE);
+
+ public MetalTheme()
+ {
+ // Do nothing here.
+ }
+
+ public abstract String getName();
+
+ public void addCustomEntriesToTable(UIDefaults table)
+ {
+ // Do nothing here.
+ // This method needs to be overloaded to actuall do something.
+ }
+
+ public ColorUIResource getAcceleratorForeground()
+ {
+ return getPrimary1();
+ }
+
+ public ColorUIResource getAcceleratorSelectedForeground()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getControl()
+ {
+ return getSecondary3();
+ }
+
+ public ColorUIResource getControlDarkShadow()
+ {
+ return getSecondary1();
+ }
+
+ public ColorUIResource getControlDisabled()
+ {
+ return getSecondary2();
+ }
+
+ public ColorUIResource getControlHighlight()
+ {
+ return getWhite();
+ }
+
+ public ColorUIResource getControlInfo()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getControlShadow()
+ {
+ return getSecondary2();
+ }
+
+ public ColorUIResource getControlTextColor()
+ {
+ return getControlInfo();
+ }
+
+ public ColorUIResource getDesktopColor()
+ {
+ return getPrimary2();
+ }
+
+ public ColorUIResource getFocusColor()
+ {
+ return getPrimary2();
+ }
+
+ public ColorUIResource getHighlightedTextColor()
+ {
+ return getControlTextColor();
+ }
+
+ public ColorUIResource getInactiveControlTextColor()
+ {
+ return getControlDisabled();
+ }
+
+ public ColorUIResource getInactiveSystemTextColor()
+ {
+ return getSecondary2();
+ }
+
+ public ColorUIResource getMenuBackground()
+ {
+ return getSecondary3();
+ }
+
+ public ColorUIResource getMenuDisabledForeground()
+ {
+ return getSecondary3();
+ }
+
+ public ColorUIResource getMenuForeground()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getMenuSelectedBackground()
+ {
+ return getPrimary2();
+ }
+
+ public ColorUIResource getMenuSelectedForeground()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getPrimaryControl()
+ {
+ return getPrimary3();
+ }
+
+ public ColorUIResource getPrimaryControlDarkShadow()
+ {
+ return getPrimary1();
+ }
+
+ public ColorUIResource getPrimaryControlHighlight()
+ {
+ return getWhite();
+ }
+
+ public ColorUIResource getPrimaryControlInfo()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getPrimaryControlShadow()
+ {
+ return getPrimary2();
+ }
+
+ public ColorUIResource getSeparatorBackground()
+ {
+ return getWhite();
+ }
+
+ public ColorUIResource getSeparatorForeground()
+ {
+ return getPrimary1();
+ }
+
+ public ColorUIResource getSystemTextColor()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getTextHighlightColor()
+ {
+ return getPrimary3();
+ }
+
+ public ColorUIResource getUserTextColor()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getWindowBackground()
+ {
+ return getWhite();
+ }
+
+ public ColorUIResource getWindowTitleBackground()
+ {
+ return getPrimary3();
+ }
+
+ public ColorUIResource getWindowTitleForeground()
+ {
+ return getBlack();
+ }
+
+ public ColorUIResource getWindowTitleInactiveBackground()
+ {
+ return getSecondary3();
+ }
+
+ public ColorUIResource getWindowTitleInactiveForeground()
+ {
+ return getBlack();
+ }
+
+ protected ColorUIResource getBlack()
+ {
+ return BLACK;
+ }
+
+ protected ColorUIResource getWhite()
+ {
+ return WHITE;
+ }
+
+ protected abstract ColorUIResource getPrimary1();
+ protected abstract ColorUIResource getPrimary2();
+ protected abstract ColorUIResource getPrimary3();
+ protected abstract ColorUIResource getSecondary1();
+ protected abstract ColorUIResource getSecondary2();
+ protected abstract ColorUIResource getSecondary3();
+
+ public abstract FontUIResource getControlTextFont();
+ public abstract FontUIResource getMenuTextFont();
+ public abstract FontUIResource getSubTextFont();
+ public abstract FontUIResource getSystemTextFont();
+ public abstract FontUIResource getUserTextFont();
+ public abstract FontUIResource getWindowTitleFont();
+}
diff --git a/libjava/javax/swing/table/DefaultTableCellRenderer.java b/libjava/javax/swing/table/DefaultTableCellRenderer.java
index ac5edb99586..790d0450f7f 100644
--- a/libjava/javax/swing/table/DefaultTableCellRenderer.java
+++ b/libjava/javax/swing/table/DefaultTableCellRenderer.java
@@ -1,5 +1,5 @@
/* DefaultTableCellRenderer.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -199,8 +199,8 @@ public class DefaultTableCellRenderer extends JLabel
* <p>This method needs to be overridden in a subclass to actually
* do something.</p>
*/
- public void firePropertyChange(String propertyName, Object oldValue,
- Object newValue)
+ protected void firePropertyChange(String propertyName, Object oldValue,
+ Object newValue)
{
// Does nothing.
}
diff --git a/libjava/javax/swing/table/DefaultTableColumnModel.java b/libjava/javax/swing/table/DefaultTableColumnModel.java
index b66b6951a99..3a8b1a3bf6d 100644
--- a/libjava/javax/swing/table/DefaultTableColumnModel.java
+++ b/libjava/javax/swing/table/DefaultTableColumnModel.java
@@ -66,37 +66,37 @@ public class DefaultTableColumnModel
private static final long serialVersionUID = 6580012493508960512L;
/**
- * tableColumns
+ * Columns that this model keeps track of.
*/
protected Vector tableColumns;
/**
- * selectionModel
+ * Selection Model that keeps track of columns selection
*/
protected ListSelectionModel selectionModel;
/**
- * columnMargin
+ * Space between two columns. By default it is set to 1
*/
protected int columnMargin;
/**
- * listenerList
+ * listenerList keeps track of all listeners registered with this model
*/
protected EventListenerList listenerList = new EventListenerList();
/**
- * changeEvent
+ * changeEvent is fired when change occurs in one of the columns properties
*/
protected transient ChangeEvent changeEvent = new ChangeEvent(this);
/**
- * columnSelectionAllowed
+ * Indicates whether columns can be selected
*/
protected boolean columnSelectionAllowed;
/**
- * totalColumnWidth
+ * Total width of all the columns in this model
*/
protected int totalColumnWidth;
@@ -106,103 +106,116 @@ public class DefaultTableColumnModel
public DefaultTableColumnModel()
{
tableColumns = new Vector();
- setSelectionModel(new DefaultListSelectionModel());
+ setSelectionModel(createSelectionModel());
columnMargin = 1;
columnSelectionAllowed = false;
}
/**
- * addColumn
- * @param value0 TODO
+ * addColumn adds column to the model. This method fires ColumnAdded
+ * event to model's registered TableColumnModelListeners.
+ *
+ * @param col column to add
*/
public void addColumn(TableColumn col)
{
tableColumns.add(col);
invalidateWidthCache();
+ fireColumnAdded(new TableColumnModelEvent(this,0,tableColumns.size()));
}
/**
- * removeColumn
- * @param value0 TODO
+ * removeColumn removes table column from the model. This method fires
+ * ColumnRemoved event to model's registered TableColumnModelListeners.
+ *
+ * @param col column to be removed
*/
public void removeColumn(TableColumn col)
{
+ int index = getColumnIndex(col);
+ fireColumnRemoved(new TableColumnModelEvent(this,index,0));
tableColumns.remove(col);
invalidateWidthCache();
}
/**
- * moveColumn
- * @param value0 TODO
- * @param value1 TODO
+ * moveColumn moves column at index i to index j. This method fires
+ * ColumnMoved event to model's registered TableColumnModelListeners.
+ *
+ * @param i index of the column that will be moved
+ * @param j index of column's new location
*/
public void moveColumn(int i, int j)
{
Object tmp = tableColumns.get(i);
tableColumns.set(i, tableColumns.get(j));
tableColumns.set(j, tmp);
+ fireColumnAdded(new TableColumnModelEvent(this,i,j));
}
/**
- * setColumnMargin
- * @param value0 TODO
+ * setColumnMargin sets margin of the columns.
+ * @param m new column margin
*/
public void setColumnMargin(int m)
{
columnMargin = m;
+ fireColumnMarginChanged();
}
- /**
- * getColumnCount
- * @return int
- */
+ /**
+ * getColumnCount returns number of columns in the model
+ * @return int number of columns in the model
+ */
public int getColumnCount()
{
return tableColumns.size();
}
- /**
- * getColumns
+ /**
+ * getColumns
* @return Enumeration
- */
+ */
public Enumeration getColumns()
{
return tableColumns.elements();
}
- /**
- * getColumnIndex
- * @param value0 TODO
- * @return int
+ /**
+ * getColumnIndex returns index of the specified column
+ *
+ * @param identifier identifier of the column
+ * @return int index of the given column
*/
- public int getColumnIndex(Object obj)
+ public int getColumnIndex(Object identifier)
{
- return tableColumns.indexOf(obj, 0);
+ return tableColumns.indexOf(identifier, 0);
}
- /**
- * getColumn
- * @param value0 TODO
- * @return TableColumn
+ /**
+ * getColumn returns column at the specified index
+ * @param i index of the column
+ * @return TableColumn column at the specified index
*/
public TableColumn getColumn(int i)
{
return (TableColumn) tableColumns.get(i);
}
- /**
- * getColumnMargin
- * @return int
- */
+ /**
+ * getColumnMargin returns column margin
+ * @return int column margin
+ */
public int getColumnMargin()
{
return columnMargin;
}
- /**
- * getColumnIndexAtX
- * @param value0 TODO
- * @return int
+ /**
+ * getColumnIndexAtX returns column that contains specified x-coordinate.
+ * @param x x-coordinate that column should contain
+ * @return int index of the column that contains specified x-coordinate relative
+ * to this column model
*/
public int getColumnIndexAtX(int x)
{
@@ -217,10 +230,12 @@ public class DefaultTableColumnModel
return -1;
}
- /**
- * getTotalColumnWidth
- * @return int
- */
+ /**
+ * getTotalColumnWidth returns total width of all the columns including
+ * column's margins.
+ *
+ * @return total width of all the columns
+ */
public int getTotalColumnWidth()
{
if (totalColumnWidth == -1)
@@ -229,8 +244,10 @@ public class DefaultTableColumnModel
}
/**
- * setSelectionModel
- * @param model TODO
+ * setSelectionModel sets selection model that will be used by this ColumnTableModel
+ * to keep track of currently selected columns
+ *
+ * @param model new selection model
* @exception IllegalArgumentException if model is null
*/
public void setSelectionModel(ListSelectionModel model)
@@ -242,53 +259,124 @@ public class DefaultTableColumnModel
selectionModel.addListSelectionListener(this);
}
- /**
- * getSelectionModel
- * @return ListSelectionModel
- */
+ /**
+ * getSelectionModel returns selection model
+ * @return ListSelectionModel selection model
+ */
public ListSelectionModel getSelectionModel()
{
return selectionModel;
}
/**
- * setColumnSelectionAllowed
- * @param value0 TODO
+ * setColumnSelectionAllowed sets whether column selection is allowed
+ * or not.
+ *
+ * @param flag true if column selection is allowed and false otherwise
*/
- public void setColumnSelectionAllowed(boolean a)
+ public void setColumnSelectionAllowed(boolean flag)
{
- columnSelectionAllowed = a;
+ columnSelectionAllowed = flag;
}
- /**
- * getColumnSelectionAllowed
- * @return boolean
- */
+ /**
+ * getColumnSelectionAllowed indicates whether column selection is
+ * allowed or not.
+ *
+ * @return boolean true if column selection is allowed and false otherwise.
+ */
public boolean getColumnSelectionAllowed()
{
return columnSelectionAllowed;
}
- /**
- * getSelectedColumns
- * @return int[]
- */
+ /**
+ * getSelectedColumns returns array containing indexes of currently
+ * selected columns
+ *
+ * @return int[] array containing indexes of currently selected columns
+ */
public int[] getSelectedColumns()
{
- return null; // TODO
+ // FIXME: Implementation of this method was taken from private method
+ // JTable.getSelections(), which is used in various places in JTable
+ // including selected row calculations and cannot be simply removed.
+ // This design should be improved to illuminate duplication of code.
+
+ ListSelectionModel lsm = this.selectionModel;
+ int sz = getSelectedColumnCount();
+ int [] ret = new int[sz];
+
+ int lo = lsm.getMinSelectionIndex();
+ int hi = lsm.getMaxSelectionIndex();
+ int j = 0;
+ java.util.ArrayList ls = new java.util.ArrayList();
+ if (lo != -1 && hi != -1)
+ {
+ switch (lsm.getSelectionMode())
+ {
+ case ListSelectionModel.SINGLE_SELECTION:
+ ret[0] = lo;
+ break;
+
+ case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
+ for (int i = lo; i <= hi; ++i)
+ ret[j++] = i;
+ break;
+
+ case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
+ for (int i = lo; i <= hi; ++i)
+ if (lsm.isSelectedIndex(i))
+ ret[j++] = i;
+ break;
+ }
+ }
+ return ret;
}
- /**
- * getSelectedColumnCount
- * @return int
- */
+ /**
+ * getSelectedColumnCount returns number of currently selected columns
+ * @return int number of currently selected columns
+ */
public int getSelectedColumnCount()
{
- return 0; // TODO
+ // FIXME: Implementation of this method was taken from private method
+ // JTable.countSelections(), which is used in various places in JTable
+ // including selected row calculations and cannot be simply removed.
+ // This design should be improved to illuminate duplication of code.
+
+ ListSelectionModel lsm = this.selectionModel;
+ int lo = lsm.getMinSelectionIndex();
+ int hi = lsm.getMaxSelectionIndex();
+ int sum = 0;
+
+ if (lo != -1 && hi != -1)
+ {
+ switch (lsm.getSelectionMode())
+ {
+ case ListSelectionModel.SINGLE_SELECTION:
+ sum = 1;
+ break;
+
+ case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
+ sum = hi - lo + 1;
+ break;
+
+ case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
+ for (int i = lo; i <= hi; ++i)
+ if (lsm.isSelectedIndex(i))
+ ++sum;
+ break;
+ }
+ }
+
+ return sum;
}
/**
- * addColumnModelListener
+ * addColumnModelListener adds specified listener to the model's
+ * listener list
+ *
* @param listener the listener to add
*/
public void addColumnModelListener(TableColumnModelListener listener)
@@ -297,7 +385,9 @@ public class DefaultTableColumnModel
}
/**
- * removeColumnModelListener
+ * removeColumnModelListener removes specified listener from the model's
+ * listener list.
+ *
* @param listener the listener to remove
*/
public void removeColumnModelListener(TableColumnModelListener listener)
@@ -315,35 +405,53 @@ public class DefaultTableColumnModel
}
/**
- * fireColumnAdded
- * @param value0 TODO
+ * fireColumnAdded fires TableColumnModelEvent to registered
+ * TableColumnModelListeners to indicate that column was added
+ *
+ * @param e TableColumnModelEvent
*/
- protected void fireColumnAdded(TableColumnModelEvent value0)
- {
- // TODO
+ protected void fireColumnAdded(TableColumnModelEvent e)
+ {
+ TableColumnModelListener[] listeners = getColumnModelListeners();
+
+ for (int i=0; i< listeners.length; i++)
+ listeners[i].columnAdded(e);
}
- /**
- * fireColumnRemoved
- * @param value0 TODO
- */
- protected void fireColumnRemoved(TableColumnModelEvent value0)
+ /**
+ * fireColumnAdded fires TableColumnModelEvent to registered
+ * TableColumnModelListeners to indicate that column was removed
+ *
+ * @param e TableColumnModelEvent
+ */
+ protected void fireColumnRemoved(TableColumnModelEvent e)
{
- // TODO
+ TableColumnModelListener[] listeners = getColumnModelListeners();
+
+ for (int i=0; i< listeners.length; i++)
+ listeners[i].columnRemoved(e);
}
- /**
- * fireColumnMoved
- * @param value0 TODO
- */
- protected void fireColumnMoved(TableColumnModelEvent value0)
+ /**
+ * fireColumnAdded fires TableColumnModelEvent to registered
+ * TableColumnModelListeners to indicate that column was moved
+ *
+ * @param e TableColumnModelEvent
+ */
+ protected void fireColumnMoved(TableColumnModelEvent e)
{
- // TODO
+ TableColumnModelListener[] listeners = getColumnModelListeners();
+
+ for (int i=0; i< listeners.length; i++)
+ listeners[i].columnMoved(e);
}
/**
- * fireColumnSelectionChanged
- * @param value0 TODO
+ * fireColumnSelectionChanged fires TableColumnModelEvent to model's
+ * registered TableColumnModelListeners to indicate that different column
+ * was selected.
+ *
+ * @param evt ListSelectionEvent
*/
protected void fireColumnSelectionChanged(ListSelectionEvent evt)
{
@@ -352,54 +460,66 @@ public class DefaultTableColumnModel
((TableColumnModelListener)listeners[i]).columnSelectionChanged(evt);
}
- /**
- * fireColumnMarginChanged
- */
+ /**
+ * fireColumnMarginChanged fires TableColumnModelEvent to model's
+ * registered TableColumnModelListeners to indicate that column margin
+ * was changed.
+ */
protected void fireColumnMarginChanged()
{
- // TODO
+ EventListener [] listeners = getListeners(TableColumnModelListener.class);
+ for (int i = 0; i < listeners.length; ++i)
+ ((TableColumnModelListener)listeners[i]).columnMarginChanged(changeEvent);
}
- /**
- * getListeners
- * @param value0 TODO
- * @return EventListener[]
+ /**
+ * getListeners returns currently registered listeners with this model.
+ * @param listenerType type of listeners to return
+ *
+ * @return EventListener[] array of model's listeners of the specified type
*/
- public EventListener[] getListeners(Class klass)
+ public EventListener[] getListeners(Class listenerType)
{
- return listenerList.getListeners(klass);
+ return listenerList.getListeners(listenerType);
}
- /**
- * propertyChange
- * @param value0 TODO
- */
- public void propertyChange(PropertyChangeEvent value0)
+ /**
+ * propertyChange handles changes occuring in the properties of the
+ * model's columns.
+ *
+ * @param evt PropertyChangeEvent
+ */
+ public void propertyChange(PropertyChangeEvent evt)
{
- // TODO
+ if (evt.getPropertyName().equals(TableColumn.COLUMN_WIDTH_PROPERTY))
+ invalidateWidthCache();
}
- /**
- * valueChanged
- * @param value0 TODO
- */
- public void valueChanged(ListSelectionEvent value0)
+ /**
+ * valueChanged handles changes in the selectionModel.
+ * @param e ListSelectionEvent
+ */
+ public void valueChanged(ListSelectionEvent e)
{
- fireColumnSelectionChanged(value0);
+ fireColumnSelectionChanged(e);
}
- /**
- * createSelectionModel
- * @return ListSelectionModel
- */
+ /**
+ * createSelectionModel creates selection model that will keep track
+ * of currently selected column(s)
+ *
+ * @return ListSelectionModel selection model of the columns
+ */
protected ListSelectionModel createSelectionModel()
- {
- return null; // TODO
+ {
+ return new DefaultListSelectionModel();
}
- /**
- * recalcWidthCache
- */
+ /**
+ * recalcWidthCache calculates total width of the columns.
+ * If the current cache of the total width is in invalidated state,
+ * then width is recalculated. Otherwise nothing is done.
+ */
protected void recalcWidthCache()
{
if (totalColumnWidth == -1)
@@ -412,9 +532,9 @@ public class DefaultTableColumnModel
}
}
- /**
- * invalidateWidthCache
- */
+ /**
+ * invalidateWidthCache
+ */
private void invalidateWidthCache()
{
totalColumnWidth = -1;
diff --git a/libjava/javax/swing/table/DefaultTableModel.java b/libjava/javax/swing/table/DefaultTableModel.java
index dd8e3b84612..aab4202012e 100644
--- a/libjava/javax/swing/table/DefaultTableModel.java
+++ b/libjava/javax/swing/table/DefaultTableModel.java
@@ -1,5 +1,5 @@
/* DefaultTableModel.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,15 +44,19 @@ import java.util.Vector;
import javax.swing.event.TableModelEvent;
/**
- * DefaultTableModel
+ * A two dimensional data structure used to store <code>Object</code>
+ * instances, usually for display in a <code>JTable</code> component.
+ *
* @author Andrew Selkirk
*/
public class DefaultTableModel extends AbstractTableModel
implements Serializable
{
static final long serialVersionUID = 6680042567037222321L;
+
/**
- * dataVector
+ * Storage for the rows in the table (each row is itself
+ * a <code>Vector</code>).
*/
protected Vector dataVector;
@@ -62,7 +66,7 @@ public class DefaultTableModel extends AbstractTableModel
protected Vector columnIdentifiers;
/**
- * Constructor DefaultTableModel
+ * Creates an empty table with zero rows and zero columns.
*/
public DefaultTableModel()
{
@@ -70,9 +74,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified number of rows and columns.
+ * All cells in the table are initially empty (set to <code>null</code>).
+ *
+ * @param numRows the number of rows.
+ * @param numColumns the number of columns.
*/
public DefaultTableModel(int numRows, int numColumns)
{
@@ -81,20 +87,28 @@ public class DefaultTableModel extends AbstractTableModel
for (int i = 0; i < numColumns; i++)
{
defaultNames.add(super.getColumnName(i));
+ }
+ for (int r = 0; r < numRows; r++)
+ {
Vector tmp = new Vector(numColumns);
tmp.setSize(numColumns);
data.add(tmp);
- }
- setDataVector(defaultNames, data);
+ }
+ setDataVector(data, defaultNames);
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified column names and number of
+ * rows. The number of columns is determined by the number of column
+ * names supplied.
+ *
+ * @param columnNames the column names.
+ * @param numRows the number of rows.
*/
public DefaultTableModel(Vector columnNames, int numRows)
{
+ if (numRows < 0)
+ throw new IllegalArgumentException("numRows < 0");
Vector data = new Vector();
int numColumns = 0;
@@ -111,9 +125,10 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified column names and row count.
+ *
+ * @param columnNames the column names.
+ * @param numRows the number of rows.
*/
public DefaultTableModel(Object[] columnNames, int numRows)
{
@@ -121,9 +136,10 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified data values and column names.
+ *
+ * @param data the data values.
+ * @param columnNames the column names.
*/
public DefaultTableModel(Vector data, Vector columnNames)
{
@@ -131,9 +147,10 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified data values and column names.
+ *
+ * @param data the data values.
+ * @param columnNames the column names.
*/
public DefaultTableModel(Object[][] data, Object[] columnNames)
{
@@ -141,8 +158,9 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * getDataVector
- * @returns Vector
+ * Returns the vector containing the row data for the table.
+ *
+ * @returns The data vector.
*/
public Vector getDataVector()
{
@@ -150,9 +168,16 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setDataVector
- * @param value0 TODO
- * @param value1 TODO
+ * Sets the data and column identifiers for the table. The data vector
+ * contains a <code>Vector</code> for each row in the table - if the
+ * number of objects in each row does not match the number of column
+ * names specified, the row data is truncated or expanded (by adding
+ * <code>null</code> values) as required.
+ *
+ * @param data the data for the table (a vector of row vectors).
+ * @param columnNames the column names.
+ *
+ * @throws NullPointerException if either argument is <code>null</code>.
*/
public void setDataVector(Vector data, Vector columnNames)
{
@@ -164,9 +189,12 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setDataVector
- * @param value0 TODO
- * @param value1 TODO
+ * Sets the data and column identifiers for the table.
+ *
+ * @param data the data for the table.
+ * @param columnNames the column names.
+ *
+ * @throws NullPointerException if either argument is <code>null</code>.
*/
public void setDataVector(Object[][] data, Object[] columnNames)
{
@@ -175,8 +203,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * newDataAvailable
- * @param value0 TODO
+ * Sends the specified <code>event</code> to all registered listeners.
+ * This method is equivalent to
+ * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}.
+ *
+ * @param event the event.
*/
public void newDataAvailable(TableModelEvent event)
{
@@ -184,8 +215,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * newRowsAdded
- * @param value0 TODO
+ * Sends the specified <code>event</code> to all registered listeners.
+ * This method is equivalent to
+ * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}.
+ *
+ * @param event the event.
*/
public void newRowsAdded(TableModelEvent event)
{
@@ -193,8 +227,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * rowsRemoved
- * @param value0 TODO
+ * Sends the specified <code>event</code> to all registered listeners.
+ * This method is equivalent to
+ * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}.
+ *
+ * @param event the event.
*/
public void rowsRemoved(TableModelEvent event)
{
@@ -202,18 +239,26 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setColumnIdentifiers
- * @param value0 TODO
+ * Sets the column identifiers, updates the data rows (truncating
+ * or padding each row with <code>null</code> values) to match the
+ * number of columns, and sends a {@link TableModelEvent} to all
+ * registered listeners.
+ *
+ * @param columnIdentifiers the column identifiers.
*/
public void setColumnIdentifiers(Vector columnIdentifiers)
{
this.columnIdentifiers = columnIdentifiers;
- setColumnCount(columnIdentifiers.size());
+ setColumnCount((columnIdentifiers == null ? 0 : columnIdentifiers.size()));
}
/**
- * setColumnIdentifiers
- * @param value0 TODO
+ * Sets the column identifiers, updates the data rows (truncating
+ * or padding each row with <code>null</code> values) to match the
+ * number of columns, and sends a {@link TableModelEvent} to all
+ * registered listeners.
+ *
+ * @param columnIdentifiers the column identifiers.
*/
public void setColumnIdentifiers(Object[] columnIdentifiers)
{
@@ -221,8 +266,9 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setNumRows
- * @param value0 TODO
+ * This method is obsolete, use {@link #setRowCount(int)} instead.
+ *
+ * @param numRows the number of rows.
*/
public void setNumRows(int numRows)
{
@@ -230,18 +276,40 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setRowCount
- * @param value0 TODO
+ * Sets the number of rows in the table. If <code>rowCount</code> is less
+ * than the current number of rows in the table, rows are discarded.
+ * If <code>rowCount</code> is greater than the current number of rows in
+ * the table, new (empty) rows are added.
+ *
+ * @param the row count.
*/
public void setRowCount(int rowCount)
{
- dataVector.setSize(rowCount);
- fireTableDataChanged();
+ int existingRowCount = dataVector.size();
+ if (rowCount < existingRowCount)
+ {
+ dataVector.setSize(rowCount);
+ fireTableRowsDeleted(rowCount,existingRowCount-1);
+ }
+ else
+ {
+ int rowsToAdd = rowCount - existingRowCount;
+ for (int i = 0; i < rowsToAdd; i++)
+ {
+ Vector tmp = new Vector();
+ tmp.setSize(columnIdentifiers.size());
+ dataVector.add(tmp);
+ }
+ fireTableRowsInserted(existingRowCount,rowCount-1);
+ }
}
/**
- * setColumnCount
- * @param value0 TODO
+ * Sets the number of columns in the table. Existing rows are truncated
+ * or padded with <code>null</code> values to match the new column count.
+ * A {@link TableModelEvent} is sent to all registered listeners.
+ *
+ * @param columnCount the column count.
*/
public void setColumnCount(int columnCount)
{
@@ -249,13 +317,16 @@ public class DefaultTableModel extends AbstractTableModel
{
((Vector) dataVector.get(i)).setSize(columnCount);
}
- columnIdentifiers.setSize(columnCount);
+ if (columnIdentifiers != null)
+ columnIdentifiers.setSize(columnCount);
fireTableDataChanged();
}
/**
- * addColumn
- * @param value0 TODO
+ * Adds a column with the specified name to the table. All cell values
+ * for the column are initially set to <code>null</code>.
+ *
+ * @param columnName the column name (<code>null</code> permitted).
*/
public void addColumn(Object columnName)
{
@@ -263,21 +334,52 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * addColumn
- * @param value0 TODO
- * @param value1 TODO
+ * Adds a column with the specified name and data values to the table.
+ *
+ * @param columnName the column name (<code>null</code> permitted).
+ * @param columnData the column data.
*/
public void addColumn(Object columnName, Vector columnData)
{
- addColumn(columnName, columnData == null ? null : columnData.toArray());
+ Object[] dataArray = null;
+ if (columnData != null)
+ {
+ int rowCount = dataVector.size();
+ if (columnData.size() < rowCount)
+ columnData.setSize(rowCount);
+ dataArray = columnData.toArray();
+ }
+ addColumn(columnName, dataArray);
}
/**
- * addColumn
- * @param value0 TODO
- * @param value1 TODO
+ * Adds a column with the specified name and data values to the table.
+ *
+ * @param columnName the column name (<code>null</code> permitted).
+ * @param columnData the column data.
*/
public void addColumn(Object columnName, Object[] columnData) {
+ if (columnData != null)
+ {
+ // check columnData array for cases where the number of items
+ // doesn't match the number of rows in the existing table
+ if (columnData.length > dataVector.size())
+ {
+ int rowsToAdd = columnData.length - dataVector.size();
+ for (int i = 0; i < rowsToAdd; i++)
+ {
+ Vector tmp = new Vector();
+ tmp.setSize(columnIdentifiers.size());
+ dataVector.add(tmp);
+ }
+ }
+ else if (columnData.length < dataVector.size())
+ {
+ Object[] tmp = new Object[dataVector.size()];
+ System.arraycopy(columnData, 0, tmp, 0, columnData.length);
+ columnData = tmp;
+ }
+ }
for (int i = 0; i < dataVector.size(); ++i)
{
((Vector) dataVector.get(i)).add(columnData == null ? null : columnData[i]);
@@ -287,62 +389,79 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * addRow
- * @param value0 TODO
+ * Adds a new row containing the specified data to the table and sends a
+ * {@link TableModelEvent} to all registered listeners.
+ *
+ * @param rowData the row data (<code>null</code> permitted).
*/
public void addRow(Vector rowData) {
dataVector.add(rowData);
- fireTableDataChanged();
+ newRowsAdded(new TableModelEvent(
+ this, dataVector.size(), dataVector.size(), -1, TableModelEvent.INSERT)
+ );
}
/**
- * addRow
- * @param value0 TODO
+ * Adds a new row containing the specified data to the table and sends a
+ * {@link TableModelEvent} to all registered listeners.
+ *
+ * @param rowData the row data (<code>null</code> permitted).
*/
public void addRow(Object[] rowData) {
addRow(convertToVector(rowData));
}
/**
- * insertRow
- * @param value0 TODO
- * @param value1 TODO
+ * Inserts a new row into the table.
+ *
+ * @param row the row index.
+ * @param rowData the row data.
*/
public void insertRow(int row, Vector rowData) {
dataVector.add(row, rowData);
- fireTableDataChanged();
+ fireTableRowsInserted(row,row);
}
/**
- * insertRow
- * @param value0 TODO
- * @param value1 TODO
+ * Inserts a new row into the table.
+ *
+ * @param row the row index.
+ * @param rowData the row data.
*/
public void insertRow(int row, Object[] rowData) {
insertRow(row, convertToVector(rowData));
}
/**
- * moveRow
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
+ * Moves the rows from <code>startIndex</code> to <code>endIndex</code>
+ * (inclusive) to the specified row.
+ *
+ * @param startIndex the start row.
+ * @param endIndex the end row.
+ * @param toIndex the row to move to.
*/
public void moveRow(int startIndex, int endIndex, int toIndex) {
- for (int index = 0; index < (endIndex - startIndex); index++) {
- Vector vector = (Vector) dataVector.remove(startIndex);
- dataVector.add(toIndex, vector);
+ Vector removed = new Vector();
+ for (int i = endIndex; i >= startIndex; i--)
+ {
+ removed.add(this.dataVector.remove(i));
+ }
+ for (int i = 0; i <= endIndex - startIndex; i++)
+ {
+ dataVector.insertElementAt(removed.get(i), toIndex);
}
fireTableDataChanged();
}
/**
- * removeRow
- * @param value0 TODO
+ * Removes a row from the table and sends a {@link TableModelEvent} to
+ * all registered listeners.
+ *
+ * @param row the row index.
*/
public void removeRow(int row) {
dataVector.remove(row);
- fireTableDataChanged();
+ fireTableRowsDeleted(row,row);
}
/**
@@ -354,63 +473,86 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * getColumnCount
- * @returns int
+ * Returns the number of columns in the model.
+ *
+ * @return The column count.
*/
public int getColumnCount() {
- return columnIdentifiers.size();
+ return (columnIdentifiers == null ? 0 : columnIdentifiers.size());
}
/**
- * getColumnName
- * @param value0 TODO
- * @returns String
+ * Returns the name of the specified column.
+ *
+ * @param column the column index.
+ *
+ * @returns The column name.
*/
public String getColumnName(int column) {
- // Check for Column
- if (columnIdentifiers == null || column >= getColumnCount()) {
- return super.getColumnName(column);
+ String result = "";
+ if (columnIdentifiers == null)
+ result = super.getColumnName(column);
+ else
+ {
+ if (column < getColumnCount())
+ {
+ Object id = columnIdentifiers.get(column);
+ if (id != null)
+ result = id.toString();
+ else
+ result = super.getColumnName(column);
+ }
}
-
- // Return Column name
- return (String) columnIdentifiers.get(column);
+ return result;
}
/**
- * isCellEditable
- * @param value0 TODO
- * @param value1 TODO
- * @returns boolean
+ * Returns <code>true</code> if the specified cell can be modified, and
+ * <code>false</code> otherwise. For this implementation, the method
+ * always returns <code>true</code>.
+ *
+ * @param row the row index.
+ * @param column the column index.
+ *
+ * @returns <code>true</code> in all cases.
*/
public boolean isCellEditable(int row, int column) {
return true;
}
/**
- * getValueAt
- * @param value0 TODO
- * @param value1 TODO
- * @returns Object
+ * Returns the value at the specified cell in the table.
+ *
+ * @param row the row index.
+ * @param column the column index.
+ *
+ * @returns The value (<code>Object</code>, possibly <code>null</code>) at
+ * the specified cell in the table.
*/
public Object getValueAt(int row, int column) {
return ((Vector) dataVector.get(row)).get(column);
}
/**
- * setValueAt
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
+ * Sets the value for the specified cell in the table and sends a
+ * {@link TableModelEvent} to all registered listeners.
+ *
+ * @param value the value (<code>Object</code>, <code>null</code> permitted).
+ * @param row the row index.
+ * @param column the column index.
*/
public void setValueAt(Object value, int row, int column) {
((Vector) dataVector.get(row)).set(column, value);
- fireTableDataChanged();
+ fireTableCellUpdated(row,column);
}
/**
- * convertToVector
- * @param value0 TODO
- * @returns Vector
+ * Converts the data array to a <code>Vector</code>.
+ *
+ * @param data the data array (<code>null</code> permitted).
+ *
+ * @returns A vector (or <code>null</code> if the data array
+ * is <code>null</code>).
*/
protected static Vector convertToVector(Object[] data) {
if (data == null)
@@ -422,9 +564,12 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * convertToVector
- * @param value0 TODO
- * @returns Vector
+ * Converts the data array to a <code>Vector</code> of rows.
+ *
+ * @param the data array (<code>null</code> permitted).
+ *
+ * @returns A vector (or <code>null</code> if the data array
+ * is <code>null</code>.
*/
protected static Vector convertToVector(Object[][] data) {
if (data == null)
diff --git a/libjava/javax/swing/table/JTableHeader.java b/libjava/javax/swing/table/JTableHeader.java
index 95ff92006cf..0f538ed2490 100644
--- a/libjava/javax/swing/table/JTableHeader.java
+++ b/libjava/javax/swing/table/JTableHeader.java
@@ -1,5 +1,5 @@
/* JTableHeader.java --
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -70,6 +70,11 @@ public class JTableHeader extends JComponent
protected class AccessibleJTableHeaderEntry extends AccessibleContext
implements Accessible, AccessibleComponent
{
+ public AccessibleJTableHeaderEntry(int c, JTableHeader p, JTable t)
+ {
+ throw new Error("not implemented");
+ }
+
public void addFocusListener(FocusListener l)
{
throw new Error("not implemented");
@@ -616,4 +621,11 @@ public class JTableHeader extends JComponent
setUI((TableHeaderUI) UIManager.getUI(this));
}
+ public int columnAtPoint(Point point)
+ {
+ if (getBounds().contains(point))
+ return columnModel.getColumnIndexAtX(point.x);
+
+ return -1;
+ }
}
diff --git a/libjava/javax/swing/table/TableColumn.java b/libjava/javax/swing/table/TableColumn.java
index 0aaad8b3f95..c2de7f0e1a7 100644
--- a/libjava/javax/swing/table/TableColumn.java
+++ b/libjava/javax/swing/table/TableColumn.java
@@ -141,81 +141,87 @@ public class TableColumn
private SwingPropertyChangeSupport changeSupport =
new SwingPropertyChangeSupport(this);
- /**
- * Constructor TableColumn
- */
+ /**
+ * Constructor TableColumn
+ */
public TableColumn()
{
- this(0, 75, null, null);
+ this(0, 75, null, null);
}
- /**
- * Constructor TableColumn
- * @param modelIndex TODO
- */
+ /**
+ * Constructor TableColumn
+ *
+ * @param modelIndex the index of the column in the model
+ */
public TableColumn(int modelIndex)
{
- this(modelIndex, 75, null, null);
+ this(modelIndex, 75, null, null);
}
- /**
- * Constructor TableColumn
- * @param modelIndex TODO
- * @param width TODO
- */
+ /**
+ * Constructor TableColumn
+ *
+ * @param modelIndex the index of the column in the model
+ * @param width the width
+ */
public TableColumn(int modelIndex, int width)
{
- this(modelIndex, width, null, null);
+ this(modelIndex, width, null, null);
}
- /**
- * Constructor TableColumn
- * @param modelIndex TODO
- * @param width TODO
- * @param cellRenderer TODO
- * @param cellEditor TODO
- */
- public TableColumn(int modelIndex, int width,
+ /**
+ * Constructor TableColumn
+ *
+ * @param modelIndex the index of the column in the model
+ * @param width the width
+ * @param cellRenderer the cell renderer
+ * @param cellEditor the cell editor
+ */
+ public TableColumn(int modelIndex, int width,
TableCellRenderer cellRenderer, TableCellEditor cellEditor)
{
- this.modelIndex = modelIndex;
- this.width = width;
- this.preferredWidth = width;
- this.cellRenderer = cellRenderer;
- this.cellEditor = cellEditor;
- this.headerValue = null;
- this.identifier = null;
- }
-
- /**
- * firePropertyChange
- * @param property TODO
- * @param oldValue TODO
- * @param newValue TODO
- */
+ this.modelIndex = modelIndex;
+ this.width = width;
+ this.preferredWidth = width;
+ this.cellRenderer = cellRenderer;
+ this.cellEditor = cellEditor;
+ this.headerValue = null;
+ this.identifier = null;
+ }
+
+ /**
+ * firePropertyChange
+ *
+ * @param property the name of the property
+ * @param oldValue the old value
+ * @param newValue the new value
+ */
private void firePropertyChange(String property, Object oldValue,
Object newValue)
{
- changeSupport.firePropertyChange(property, oldValue, newValue);
+ changeSupport.firePropertyChange(property, oldValue, newValue);
}
- /**
- * firePropertyChange
- * @param property TODO
- * @param oldValue TODO
- * @param newValue TODO
- */
+ /**
+ * firePropertyChange
+ *
+ * @param property the name of the property
+ * @param oldValue the old value
+ * @param newValue the new value
+ */
private void firePropertyChange(String property, int oldValue, int newValue)
{
- firePropertyChange(property, new Integer(oldValue), new Integer(newValue));
+ firePropertyChange(property, new Integer(oldValue), new Integer(newValue));
}
- /**
- * firePropertyChange
- * @param property TODO
- * @param oldValue TODO
- * @param newValue TODO
- */
+ /**
+ * firePropertyChange
+ *
+ * @param property the name of the property
+ * @param oldValue the old value
+ * @param newValue the new value
+ */
private void firePropertyChange(String property, boolean oldValue,
boolean newValue)
{
@@ -225,73 +231,75 @@ public class TableColumn
/**
* setModelIndex
- * @param modelIndex TODO
+ *
+ * @param modelIndex the index to set
*/
public void setModelIndex(int modelIndex)
{
- this.modelIndex = modelIndex;
+ this.modelIndex = modelIndex;
}
- /**
- * getModelIndex
- * @return int
- */
+ /**
+ * getModelIndex
+ *
+ * @return the model index
+ */
public int getModelIndex()
{
- return modelIndex;
+ return modelIndex;
}
- /**
- * setIdentifier
- * @param identifier TODO
- */
+ /**
+ * setIdentifier
+ *
+ * @param identifier the identifier
+ */
public void setIdentifier(Object identifier)
{
- this.identifier = identifier;
+ this.identifier = identifier;
}
- /**
- * getIdentifier
- * @return Object
- */
+ /**
+ * getIdentifier
+ *
+ * @return the identifier
+ */
public Object getIdentifier()
{
if (identifier == null)
- return getHeaderValue();
- return identifier;
+ return getHeaderValue();
+ return identifier;
}
- /**
- * setHeaderValue
- * @param headerValue TODO
- */
+ /**
+ * setHeaderValue
+ *
+ * @param headerValue the value of the header
+ */
public void setHeaderValue(Object headerValue)
{
- // Variables
- Object oldValue;
-
- // Get Old Value
- oldValue = this.headerValue;
-
- // Set Propeprty
- this.headerValue = headerValue;
-
- // Notify Listeners of change
+ if (this.headerValue == headerValue)
+ return;
+
+ Object oldValue = this.headerValue;
+ this.headerValue = headerValue;
firePropertyChange(HEADER_VALUE_PROPERTY, oldValue, headerValue);
}
- /**
- * getHeaderValue
- * @return Object
- */
+ /**
+ * getHeaderValue
+ *
+ * @return the value of the header
+ */
public Object getHeaderValue()
{
- return headerValue;
+ return headerValue;
}
/**
* setHeaderRenderer
- * @param headerRenderer TODO
+ *
+ * @param headerRenderer the renderer to se
*/
public void setHeaderRenderer(TableCellRenderer renderer)
{
@@ -304,18 +312,19 @@ public class TableColumn
oldRenderer, headerRenderer);
}
- /**
- * getHeaderRenderer
+ /**
+ * getHeaderRenderer
* @return TableCellRenderer
- */
+ */
public TableCellRenderer getHeaderRenderer()
{
- return headerRenderer;
+ return headerRenderer;
}
/**
* setCellRenderer
- * @param cellRenderer TODO
+ *
+ * @param cellRenderer the cell renderer
*/
public void setCellRenderer(TableCellRenderer renderer)
{
@@ -328,36 +337,40 @@ public class TableColumn
oldRenderer, cellRenderer);
}
- /**
- * getCellRenderer
- * @return TableCellRenderer
- */
+ /**
+ * getCellRenderer
+ *
+ * @return the cell renderer
+ */
public TableCellRenderer getCellRenderer()
{
- return cellRenderer;
+ return cellRenderer;
}
- /**
- * setCellEditor
- * @param cellEditor TODO
- */
+ /**
+ * setCellEditor
+ *
+ * @param cellEditor the cell editor
+ */
public void setCellEditor(TableCellEditor cellEditor)
{
- this.cellEditor = cellEditor;
+ this.cellEditor = cellEditor;
}
- /**
- * getCellEditor
- * @return TableCellEditor
- */
+ /**
+ * getCellEditor
+ *
+ * @return the cell editor
+ */
public TableCellEditor getCellEditor()
{
- return cellEditor;
+ return cellEditor;
}
/**
* setWidth
- * @param newWidth TODO
+ *
+ * @param newWidth the width
*/
public void setWidth(int newWidth)
{
@@ -376,102 +389,112 @@ public class TableColumn
firePropertyChange(COLUMN_WIDTH_PROPERTY, oldWidth, width);
}
- /**
- * getWidth
+ /**
+ * getWidth
+ *
* @return int
- */
+ */
public int getWidth()
{
- return width;
+ return width;
}
- /**
- * setPreferredWidth
- * @param preferredWidth TODO
- */
+ /**
+ * setPreferredWidth
+ *
+ * @param preferredWidth the preferred width
+ */
public void setPreferredWidth(int preferredWidth)
{
if (preferredWidth < minWidth)
- this.preferredWidth = minWidth;
+ this.preferredWidth = minWidth;
else if (preferredWidth > maxWidth)
- this.preferredWidth = maxWidth;
+ this.preferredWidth = maxWidth;
else
- this.preferredWidth = preferredWidth;
+ this.preferredWidth = preferredWidth;
}
- /**
- * getPreferredWidth
- * @return int
- */
+ /**
+ * getPreferredWidth
+ *
+ * @return the preferred width
+ */
public int getPreferredWidth()
{
- return preferredWidth;
+ return preferredWidth;
}
- /**
- * setMinWidth
- * @param minWidth TODO
- */
+ /**
+ * setMinWidth
+ *
+ * @param minWidth the minium width
+ */
public void setMinWidth(int minWidth)
{
- this.minWidth = minWidth;
- setWidth(getWidth());
- setPreferredWidth(getPreferredWidth());
+ this.minWidth = minWidth;
+ setWidth(getWidth());
+ setPreferredWidth(getPreferredWidth());
}
- /**
- * getMinWidth
- * @return int
- */
+ /**
+ * getMinWidth
+ *
+ * @return the minimum width
+ */
public int getMinWidth()
{
- return minWidth;
+ return minWidth;
}
- /**
- * setMaxWidth
- * @param maxWidth TODO
- */
+ /**
+ * setMaxWidth
+ *
+ * @param maxWidth the maximum width
+ */
public void setMaxWidth(int maxWidth)
{
- this.maxWidth = maxWidth;
- setWidth(getWidth());
- setPreferredWidth(getPreferredWidth());
+ this.maxWidth = maxWidth;
+ setWidth(getWidth());
+ setPreferredWidth(getPreferredWidth());
}
- /**
- * getMaxWidth
- * @return int
- */
+ /**
+ * getMaxWidth
+ * @return the maximim width
+ */
public int getMaxWidth()
{
- return maxWidth;
+ return maxWidth;
}
- /**
- * setResizable
- * @param isResizable TODO
- */
+ /**
+ * setResizable
+ *
+ * @param isResizable <code>true</code> if this column is resizable,
+ * <code>false</code> otherwise
+ */
public void setResizable(boolean isResizable)
{
- this.isResizable = isResizable;
+ this.isResizable = isResizable;
}
- /**
- * getResizable
- * @return boolean
- */
+ /**
+ * getResizable
+ *
+ * @return <code>true</code> if this column is resizable,
+ * <code>false</code> otherwise
+ */
public boolean getResizable()
{
- return isResizable;
+ return isResizable;
}
- /**
- * sizeWidthToFit
- */
+ /**
+ * sizeWidthToFit
+ */
public void sizeWidthToFit()
{
- // TODO
+ // TODO
}
/**
@@ -481,7 +504,7 @@ public class TableColumn
*/
public void disableResizedPosting()
{
- // Does nothing
+ // Does nothing
}
/**
@@ -491,25 +514,25 @@ public class TableColumn
*/
public void enableResizedPosting()
{
- // Does nothing
+ // Does nothing
}
- /**
- * addPropertyChangeListener
+ /**
+ * addPropertyChangeListener
* @param listener the listener to all
- */
+ */
public synchronized void addPropertyChangeListener(PropertyChangeListener listener)
{
- changeSupport.addPropertyChangeListener(listener);
+ changeSupport.addPropertyChangeListener(listener);
}
- /**
- * removePropertyChangeListener
+ /**
+ * removePropertyChangeListener
* @param listener the listener to remove
- */
+ */
public synchronized void removePropertyChangeListener(PropertyChangeListener listener)
{
- changeSupport.removePropertyChangeListener(listener);
+ changeSupport.removePropertyChangeListener(listener);
}
/**
@@ -523,9 +546,9 @@ public class TableColumn
/**
* createDefaultHeaderRenderer
* @return TableCellRenderer
- */
+ */
protected TableCellRenderer createDefaultHeaderRenderer()
{
- return new DefaultTableCellRenderer();
+ return new DefaultTableCellRenderer();
}
}
diff --git a/libjava/javax/swing/table/TableColumnModel.java b/libjava/javax/swing/table/TableColumnModel.java
index b825ca0606c..1c036d8a11e 100644
--- a/libjava/javax/swing/table/TableColumnModel.java
+++ b/libjava/javax/swing/table/TableColumnModel.java
@@ -49,118 +49,118 @@ import javax.swing.event.TableColumnModelListener;
*/
public interface TableColumnModel
{
- /**
- * addColumn
- * @param column TableColumn
- */
- void addColumn(TableColumn column);
-
- /**
- * removeColumn
- * @param column TableColumn
- */
- void removeColumn(TableColumn column);
-
- /**
- * moveColumn
- * @param columnIndex Index of column to move
- * @param newIndex New index of column
- */
- void moveColumn(int columnIndex, int newIndex);
-
- /**
- * setColumnMargin
- * @param margin Margin of column
- */
- void setColumnMargin(int margin);
-
- /**
- * getColumnCount
+ /**
+ * addColumn
+ * @param column TableColumn
+ */
+ void addColumn(TableColumn column);
+
+ /**
+ * removeColumn
+ * @param column TableColumn
+ */
+ void removeColumn(TableColumn column);
+
+ /**
+ * moveColumn
+ * @param columnIndex Index of column to move
+ * @param newIndex New index of column
+ */
+ void moveColumn(int columnIndex, int newIndex);
+
+ /**
+ * setColumnMargin
+ * @param margin Margin of column
+ */
+ void setColumnMargin(int margin);
+
+ /**
+ * getColumnCount
* @return Column count
- */
- int getColumnCount();
+ */
+ int getColumnCount();
- /**
- * getColumns
+ /**
+ * getColumns
* @return Enumeration of columns
- */
- Enumeration getColumns();
-
- /**
- * getColumnIndex
- * @param columnIdentifier Column id
- */
- int getColumnIndex(Object columnIdentifier);
-
- /**
- * getColumn
- * @param columnIndex Index of column
- */
- TableColumn getColumn(int columnIndex);
-
- /**
- * getColumnMargin
+ */
+ Enumeration getColumns();
+
+ /**
+ * getColumnIndex
+ * @param columnIdentifier Column id
+ */
+ int getColumnIndex(Object columnIdentifier);
+
+ /**
+ * getColumn
+ * @param columnIndex Index of column
+ */
+ TableColumn getColumn(int columnIndex);
+
+ /**
+ * getColumnMargin
* @return Column margin
- */
- int getColumnMargin();
+ */
+ int getColumnMargin();
- /**
- * getColumnIndexAtX
+ /**
+ * getColumnIndexAtX
* @return Column index as position x
- */
- int getColumnIndexAtX(int xPosition);
+ */
+ int getColumnIndexAtX(int xPosition);
- /**
- * getTotalColumnWidth
+ /**
+ * getTotalColumnWidth
* @return Total column width
- */
- int getTotalColumnWidth();
+ */
+ int getTotalColumnWidth();
- /**
- * setColumnSelectionAllowed
- * @param value Set column selection
- */
- void setColumnSelectionAllowed(boolean value);
+ /**
+ * setColumnSelectionAllowed
+ * @param value Set column selection
+ */
+ void setColumnSelectionAllowed(boolean value);
- /**
- * getColumnSelectionAllowed
+ /**
+ * getColumnSelectionAllowed
* @return true if column selection allowed, false otherwise
- */
- boolean getColumnSelectionAllowed();
+ */
+ boolean getColumnSelectionAllowed();
- /**
- * getSelectedColumns
+ /**
+ * getSelectedColumns
* @return Selected columns
- */
- int[] getSelectedColumns();
+ */
+ int[] getSelectedColumns();
- /**
- * getSelectedColumnCount
+ /**
+ * getSelectedColumnCount
* @return Count of selected columns
- */
- int getSelectedColumnCount();
-
- /**
- * setSelectionModel
- * @param model ListSelectionModel
- */
- void setSelectionModel(ListSelectionModel model);
-
- /**
- * getSelectionModel
- * @param column TableColumn
- */
- ListSelectionModel getSelectionModel();
-
- /**
- * addColumnModelListener
- * @param listener TableColumnModelListener
- */
- void addColumnModelListener(TableColumnModelListener listener);
-
- /**
- * removeColumnModelListener
- * @param listener TableColumnModelListener
- */
- void removeColumnModelListener(TableColumnModelListener listener);
+ */
+ int getSelectedColumnCount();
+
+ /**
+ * setSelectionModel
+ * @param model ListSelectionModel
+ */
+ void setSelectionModel(ListSelectionModel model);
+
+ /**
+ * getSelectionModel
+ * @param column TableColumn
+ */
+ ListSelectionModel getSelectionModel();
+
+ /**
+ * addColumnModelListener
+ * @param listener TableColumnModelListener
+ */
+ void addColumnModelListener(TableColumnModelListener listener);
+
+ /**
+ * removeColumnModelListener
+ * @param listener TableColumnModelListener
+ */
+ void removeColumnModelListener(TableColumnModelListener listener);
}
diff --git a/libjava/javax/swing/table/TableModel.java b/libjava/javax/swing/table/TableModel.java
index a4732d061b9..591ce4342a0 100644
--- a/libjava/javax/swing/table/TableModel.java
+++ b/libjava/javax/swing/table/TableModel.java
@@ -1,5 +1,5 @@
/* TableModel.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,72 +39,96 @@ package javax.swing.table;
import javax.swing.event.TableModelListener;
-
/**
- * TableModel public interface
+ * A <code>TableModel</code> is a two dimensional data structure that
+ * can store arbitrary <code>Object</code> instances, usually for the
+ * purpose of display in a {@link JTable} component. Individual objects
+ * can be accessed by specifying the row index and column index for
+ * the object. Each column in the model has a name associated with it.
+ * <p>
+ * The {@link DefaultTableModel} class provides one implementation of
+ * this interface.
+ *
* @author Andrew Selkirk
*/
public interface TableModel
{
- /**
- * getRowCount
- * @return row count
- */
- int getRowCount();
-
- /**
- * getColumnCount
- * @return column count
- */
- int getColumnCount();
-
- /**
- * getColumnName
- * @param columnIndex Column index
- * @return Column name
- */
- String getColumnName(int columnIndex);
-
- /**
- * getColumnClass
- * @param columnIndex Column index
- * @return Column class
- */
- Class getColumnClass(int columnIndex);
-
- /**
- * isCellEditable
- * @param rowIndex Row index
- * @param columnIndex Column index
- * @return true if editable, false otherwise
- */
- boolean isCellEditable(int rowIndex, int columnIndex);
-
- /**
- * getValueAt
- * @param rowIndex Row index
- * @param columnIndex Column index
- * @return Value at specified indices
- */
- Object getValueAt(int rowIndex, int columnIndex);
-
- /**
- * setValueAt
- * @param aValue Value to set
- * @param rowIndex Row index
- * @param columnIndex Column index
- */
- void setValueAt(Object aValue, int rowIndex, int columnIndex);
-
- /**
- * addTableModelListener
- * @param listener TableModelListener
- */
- void addTableModelListener(TableModelListener listener);
-
- /**
- * removeTableModelListener
- * @param listener TableModelListener
- */
- void removeTableModelListener(TableModelListener listener);
+ /**
+ * Returns the number of rows in the model.
+ *
+ * @return The row count.
+ */
+ int getRowCount();
+
+ /**
+ * Returns the number of columns in the model.
+ *
+ * @return The column count
+ */
+ int getColumnCount();
+
+ /**
+ * Returns the name of a column in the model.
+ *
+ * @param columnIndex the column index.
+ *
+ * @return The column name.
+ */
+ String getColumnName(int columnIndex);
+
+ /**
+ * Returns the <code>Class</code> for all <code>Object</code> instances
+ * in the specified column.
+ *
+ * @param columnIndex the column index.
+ *
+ * @return The class.
+ */
+ Class getColumnClass(int columnIndex);
+
+ /**
+ * Returns <code>true</code> if the cell is editable, and <code>false</code>
+ * otherwise.
+ *
+ * @param rowIndex the row index.
+ * @param columnIndex the column index.
+ *
+ * @return <code>true</code> if editable, <code>false</code> otherwise.
+ */
+ boolean isCellEditable(int rowIndex, int columnIndex);
+
+ /**
+ * Returns the value (<code>Object</code>) at a particular cell in the
+ * table.
+ *
+ * @param rowIndex the row index.
+ * @param columnIndex the column index.
+ *
+ * @return The value at the specified cell.
+ */
+ Object getValueAt(int rowIndex, int columnIndex);
+
+ /**
+ * Sets the value at a particular cell in the table.
+ *
+ * @param aValue the value (<code>null</code> permitted).
+ * @param rowIndex the row index.
+ * @param columnIndex the column index.
+ */
+ void setValueAt(Object aValue, int rowIndex, int columnIndex);
+
+ /**
+ * Adds a listener to the model. The listener will receive notification
+ * of updates to the model.
+ *
+ * @param listener the listener.
+ */
+ void addTableModelListener(TableModelListener listener);
+
+ /**
+ * Removes a listener from the model.
+ *
+ * @param listener the listener.
+ */
+ void removeTableModelListener(TableModelListener listener);
}
diff --git a/libjava/javax/swing/text/AbstractDocument.java b/libjava/javax/swing/text/AbstractDocument.java
index f579fbb213b..a2c3fa65701 100644
--- a/libjava/javax/swing/text/AbstractDocument.java
+++ b/libjava/javax/swing/text/AbstractDocument.java
@@ -1,5 +1,5 @@
/* AbstractDocument.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,8 +38,8 @@ exception statement from your version. */
package javax.swing.text;
+import java.io.PrintStream;
import java.io.Serializable;
-import java.util.Collections;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.EventListener;
@@ -59,7 +59,9 @@ public abstract class AbstractDocument
implements Document, Serializable
{
private static final long serialVersionUID = -116069779446114664L;
+
protected static final String BAD_LOCATION = "document location failure";
+
public static final String BidiElementName = "bidi level";
public static final String ContentElementName = "content";
public static final String ParagraphElementName = "paragraph";
@@ -68,6 +70,8 @@ public abstract class AbstractDocument
Content content;
AttributeContext context;
+ DocumentFilter documentFilter;
+
protected EventListenerList listenerList = new EventListenerList();
protected AbstractDocument(Content doc)
@@ -139,7 +143,7 @@ public abstract class AbstractDocument
protected void fireUndoableEditUpdate(UndoableEditEvent event)
{
UndoableEditListener[] listeners = getUndoableEditListeners();
-
+
for (int index = 0; index < listeners.length; ++index)
listeners[index].undoableEditHappened(event);
}
@@ -187,7 +191,7 @@ public abstract class AbstractDocument
public int getLength()
{
- return content.length();
+ return content.length() - 1;
}
public EventListener[] getListeners(Class listenerType)
@@ -219,9 +223,9 @@ public abstract class AbstractDocument
}
public String getText(int offset, int length) throws BadLocationException
- {
- return content.getString(offset, length);
- }
+ {
+ return content.getString(offset, length);
+ }
public void getText(int offset, int length, Segment segment)
throws BadLocationException
@@ -372,6 +376,27 @@ public abstract class AbstractDocument
{
}
+ /**
+ * @since 1.4
+ */
+ public DocumentFilter getDocumentFilter()
+ {
+ return documentFilter;
+ }
+
+ /**
+ * @since 1.4
+ */
+ public void setDocumentFilter(DocumentFilter filter)
+ {
+ this.documentFilter = filter;
+ }
+
+ public void dump(PrintStream out)
+ {
+ ((AbstractElement) getDefaultRootElement()).dump(out, 0);
+ }
+
public interface AttributeContext
{
AttributeSet addAttribute(AttributeSet old, Object name, Object value);
@@ -415,7 +440,6 @@ public abstract class AbstractDocument
AttributeSet attributes;
Element element_parent;
- Vector element_children;
TreeNode tree_parent;
Vector tree_children;
@@ -428,15 +452,9 @@ public abstract class AbstractDocument
// TreeNode implementation
- public Enumeration children()
- {
- return Collections.enumeration(tree_children);
- }
+ public abstract Enumeration children();
- public boolean getAllowsChildren()
- {
- return true;
- }
+ public abstract boolean getAllowsChildren();
public TreeNode getChildAt(int index)
{
@@ -553,10 +571,7 @@ public abstract class AbstractDocument
return AbstractDocument.this;
}
- public Element getElement(int index)
- {
- return (Element) element_children.get(index);
- }
+ public abstract Element getElement(int index);
public String getName()
{
@@ -575,13 +590,49 @@ public abstract class AbstractDocument
public abstract int getElementIndex(int offset);
public abstract int getStartOffset();
+
+ private void dumpElement(PrintStream stream, String indent, Element element)
+ {
+ System.out.println(indent + "<" + element.getName() +">");
+
+ if (element.isLeaf())
+ {
+ int start = element.getStartOffset();
+ int end = element.getEndOffset();
+ String text = "";
+ try
+ {
+ text = getContent().getString(start, end - start);
+ }
+ catch (BadLocationException e)
+ {
+ }
+ System.out.println(indent + " ["
+ + start + ","
+ + end + "]["
+ + text + "]");
+ }
+ else
+ {
+ for (int i = 0; i < element.getElementCount(); ++i)
+ dumpElement(stream, indent + " ", element.getElement(i));
+ }
+ }
+
+ public void dump(PrintStream stream, int indent)
+ {
+ String indentStr = "";
+ for (int i = 0; i < indent; ++i)
+ indentStr += " ";
+ dumpElement(stream, indentStr, this);
+ }
}
public class BranchElement extends AbstractElement
{
private static final long serialVersionUID = -8595176318868717313L;
- private Vector children = new Vector();
+ private Element[] children = new Element[0];
public BranchElement(Element parent, AttributeSet attributes)
{
@@ -590,7 +641,15 @@ public abstract class AbstractDocument
public Enumeration children()
{
- return children.elements();
+ if (children.length == 0)
+ return null;
+
+ Vector tmp = new Vector();
+
+ for (int index = 0; index < children.length; ++index)
+ tmp.add(children[index]);
+
+ return tmp.elements();
}
public boolean getAllowsChildren()
@@ -600,43 +659,46 @@ public abstract class AbstractDocument
public Element getElement(int index)
{
- if (index < 0 || index >= children.size())
+ if (index < 0 || index >= children.length)
return null;
- return (Element) children.get(index);
+ return children[index];
}
public int getElementCount()
{
- return children.size();
+ return children.length;
}
public int getElementIndex(int offset)
{
- if (children.size() == 0)
- return 0;
-
- Element element = positionToElement(offset);
+ // XXX: There is surely a better algorithm
+ // as beginning from first element each time.
+ for (int index = 0; index < children.length; ++index)
+ {
+ Element elem = children[index];
- if (element == null)
- return 0;
-
- return children.indexOf(element);
+ if ((elem.getStartOffset() <= offset)
+ && (offset < elem.getEndOffset()))
+ return index;
+ }
+
+ return 0;
}
public int getEndOffset()
{
- return ((Element) children.lastElement()).getEndOffset();
+ return children[children.length - 1].getEndOffset();
}
public String getName()
{
- return "AbstractDocument.BranchElement";
+ return ParagraphElementName;
}
public int getStartOffset()
{
- return ((Element) children.firstElement()).getStartOffset();
+ return children[0].getStartOffset();
}
public boolean isLeaf()
@@ -648,9 +710,9 @@ public abstract class AbstractDocument
{
// XXX: There is surely a better algorithm
// as beginning from first element each time.
- for (int index = 0; index < children.size(); ++index)
+ for (int index = 0; index < children.length; ++index)
{
- Element elem = (Element) children.get(index);
+ Element elem = children[index];
if ((elem.getStartOffset() <= position)
&& (position < elem.getEndOffset()))
@@ -660,18 +722,22 @@ public abstract class AbstractDocument
return null;
}
- public void replace(int offset, int length, Element[] elems)
+ public void replace(int offset, int length, Element[] elements)
{
- for (int index = 0; index < length; ++index)
- children.removeElementAt(offset);
-
- for (int index = 0; index < elems.length; ++index)
- children.add(offset + index, elems[index]);
+ Element[] target = new Element[children.length - length
+ + elements.length];
+ System.arraycopy(children, 0, target, 0, offset);
+ System.arraycopy(elements, 0, target, offset, elements.length);
+ System.arraycopy(children, offset + length, target,
+ offset + elements.length,
+ children.length - offset - length);
+ children = target;
}
public String toString()
{
- return getName() + ": " + "content";
+ return ("BranchElement(" + getName() + ") "
+ + getStartOffset() + "," + getEndOffset() + "\n");
}
}
@@ -782,7 +848,7 @@ public abstract class AbstractDocument
return false;
}
- public Element getElement()
+ public Element getElement(int index)
{
return null;
}
@@ -804,7 +870,7 @@ public abstract class AbstractDocument
public String getName()
{
- return "AbstractDocument.LeafElement";
+ return ContentElementName;
}
public int getStartOffset()
@@ -819,7 +885,8 @@ public abstract class AbstractDocument
public String toString()
{
- return getName() + ": " + "content";
+ return ("LeafElement(" + getName() + ") "
+ + getStartOffset() + "," + getEndOffset() + "\n");
}
}
}
diff --git a/libjava/javax/swing/text/DefaultEditorKit.java b/libjava/javax/swing/text/DefaultEditorKit.java
index 0e3be209688..ecec70731ce 100644
--- a/libjava/javax/swing/text/DefaultEditorKit.java
+++ b/libjava/javax/swing/text/DefaultEditorKit.java
@@ -1,5 +1,5 @@
-/* DefaultEditorKit.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* DefaultEditorKit.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,14 +40,16 @@ package javax.swing.text;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
+import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import javax.swing.Action;
-import javax.swing.JEditorPane;
public class DefaultEditorKit extends EditorKit
{
@@ -84,6 +86,7 @@ public class DefaultEditorKit extends EditorKit
{
super(cutAction);
}
+
public void actionPerformed(ActionEvent event)
{
}
@@ -96,6 +99,7 @@ public class DefaultEditorKit extends EditorKit
{
super(defaultKeyTypedAction);
}
+
public void actionPerformed(ActionEvent event)
{
JTextComponent t = getTextComponent(event);
@@ -123,6 +127,7 @@ public class DefaultEditorKit extends EditorKit
{
super(insertBreakAction);
}
+
public void actionPerformed(ActionEvent event)
{
}
@@ -147,6 +152,7 @@ public class DefaultEditorKit extends EditorKit
{
super(insertTabAction);
}
+
public void actionPerformed(ActionEvent event)
{
}
@@ -159,6 +165,7 @@ public class DefaultEditorKit extends EditorKit
{
super(pasteAction);
}
+
public void actionPerformed(ActionEvent event)
{
}
@@ -328,17 +335,6 @@ public class DefaultEditorKit extends EditorKit
},
};
- /**
- * Called when the kit is being removed from the JEditorPane.
- */
- public void deinstall(JEditorPane c)
- {
- }
-
- public void install(JEditorPane c)
- {
- }
-
public Caret createCaret()
{
return new DefaultCaret();
@@ -355,32 +351,47 @@ public class DefaultEditorKit extends EditorKit
}
public String getContentType()
- {
- return "text/plain";
- }
-
+ {
+ return "text/plain";
+ }
+
public ViewFactory getViewFactory()
- {
- return null;
- }
+ {
+ return null;
+ }
- public void read(InputStream in, Document doc, int pos)
+ public void read(InputStream in, Document document, int offset)
throws BadLocationException, IOException
- {
- }
+ {
+ read(new InputStreamReader(in), document, offset);
+ }
- public void read(Reader in, Document doc, int pos)
+ public void read(Reader in, Document document, int offset)
throws BadLocationException, IOException
- {
- }
+ {
+ BufferedReader reader = new BufferedReader(in);
+
+ String line;
+ StringBuffer content = new StringBuffer();
- public void write(OutputStream out, Document doc, int pos, int len)
+ while ((line = reader.readLine()) != null)
+ {
+ content.append(line);
+ content.append("\n");
+ }
+
+ document.insertString(offset, content.toString(),
+ SimpleAttributeSet.EMPTY);
+ }
+
+ public void write(OutputStream out, Document document, int offset, int len)
throws BadLocationException, IOException
- {
- }
+ {
+ write(new OutputStreamWriter(out), document, offset, len);
+ }
- public void write(Writer out, Document doc, int pos, int len)
+ public void write(Writer out, Document document, int offset, int len)
throws BadLocationException, IOException
- {
- }
+ {
+ }
}
diff --git a/libjava/javax/swing/text/DefaultStyledDocument.java b/libjava/javax/swing/text/DefaultStyledDocument.java
new file mode 100644
index 00000000000..83da23a2638
--- /dev/null
+++ b/libjava/javax/swing/text/DefaultStyledDocument.java
@@ -0,0 +1,195 @@
+/* DefaultStyledDocument.java --
+ Copyright (C) 2004 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 javax.swing.text;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.io.Serializable;
+
+/**
+ * @author Michael Koch (konqueror@gmx.de)
+ */
+public class DefaultStyledDocument extends AbstractDocument
+ implements StyledDocument
+{
+ public class ElementBuffer
+ implements Serializable
+ {
+ private Element root;
+
+ public ElementBuffer(Element root)
+ {
+ this.root = root;
+ }
+
+ public Element getRootElement()
+ {
+ return root;
+ }
+ }
+
+ public static final int BUFFER_SIZE_DEFAULT = 4096;
+
+ protected DefaultStyledDocument.ElementBuffer buffer;
+
+ public DefaultStyledDocument()
+ {
+ this(new GapContent(BUFFER_SIZE_DEFAULT), new StyleContext());
+ }
+
+ public DefaultStyledDocument(StyleContext context)
+ {
+ this(new GapContent(BUFFER_SIZE_DEFAULT), context);
+ }
+
+ public DefaultStyledDocument(AbstractDocument.Content content,
+ StyleContext context)
+ {
+ super(content, context);
+ buffer = new ElementBuffer(createDefaultRoot());
+ setLogicalStyle(0, context.getStyle(StyleContext.DEFAULT_STYLE));
+ }
+
+ public Style addStyle(String nm, Style parent)
+ {
+ StyleContext context = (StyleContext) getAttributeContext();
+ return context.addStyle(nm, parent);
+ }
+
+ protected AbstractDocument.AbstractElement createDefaultRoot()
+ {
+ Element[] tmp;
+ BranchElement section = new BranchElement(null, null);
+
+ BranchElement paragraph = new BranchElement(section, null);
+ tmp = new Element[1];
+ tmp[0] = paragraph;
+ section.replace(0, 0, tmp);
+
+ LeafElement leaf = new LeafElement(paragraph, null, 0, 1);
+ tmp = new Element[1];
+ tmp[0] = leaf;
+ paragraph.replace(0, 0, tmp);
+
+ return section;
+ }
+
+ public Element getCharacterElement(int position)
+ {
+ Element element = getDefaultRootElement();
+
+ while (! element.isLeaf())
+ {
+ int index = element.getElementIndex(position);
+ element = element.getElement(index);
+ }
+
+ return element;
+ }
+
+ public Color getBackground(AttributeSet attributes)
+ {
+ StyleContext context = (StyleContext) getAttributeContext();
+ return context.getBackground(attributes);
+ }
+
+ public Element getDefaultRootElement()
+ {
+ return buffer.getRootElement();
+ }
+
+ public Font getFont(AttributeSet attributes)
+ {
+ StyleContext context = (StyleContext) getAttributeContext();
+ return context.getFont(attributes);
+ }
+
+ public Color getForeground(AttributeSet attributes)
+ {
+ StyleContext context = (StyleContext) getAttributeContext();
+ return context.getForeground(attributes);
+ }
+
+ public Style getLogicalStyle(int position)
+ {
+ Element paragraph = getParagraphElement(position);
+ AttributeSet attributes = paragraph.getAttributes();
+ return (Style) attributes.getResolveParent();
+ }
+
+ public Element getParagraphElement(int position)
+ {
+ Element element = getCharacterElement(position);
+ return element.getParentElement();
+ }
+
+ public Style getStyle(String nm)
+ {
+ StyleContext context = (StyleContext) getAttributeContext();
+ return context.getStyle(nm);
+ }
+
+ public void removeStyle(String nm)
+ {
+ StyleContext context = (StyleContext) getAttributeContext();
+ context.removeStyle(nm);
+ }
+
+ public void setCharacterAttributes(int offset, int length,
+ AttributeSet attributes,
+ boolean replace)
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void setLogicalStyle(int position, Style style)
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void setParagraphAttributes(int offset, int length,
+ AttributeSet attributes,
+ boolean replace)
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+}
diff --git a/libjava/javax/swing/text/EditorKit.java b/libjava/javax/swing/text/EditorKit.java
index efca9657e26..5d89a11ba7f 100644
--- a/libjava/javax/swing/text/EditorKit.java
+++ b/libjava/javax/swing/text/EditorKit.java
@@ -1,4 +1,4 @@
-/* EditorKit.java --
+/* EditorKit.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,31 +54,31 @@ public abstract class EditorKit
private static final long serialVersionUID = -5044124649345887822L;
public EditorKit()
- {
- }
+ {
+ }
public Object clone()
- {
+ {
try
{
return super.clone();
- }
+ }
catch (CloneNotSupportedException e)
- {
+ {
return null;
- }
+ }
}
/**
* Called when the kit is being removed from the JEditorPane.
*/
public void deinstall(JEditorPane c)
- {
- }
+ {
+ }
public void install(JEditorPane c)
{
-}
+ }
public abstract Caret createCaret();
public abstract Document createDefaultDocument();
diff --git a/libjava/javax/swing/text/GapContent.java b/libjava/javax/swing/text/GapContent.java
index 5826128724f..44a8dcb5864 100644
--- a/libjava/javax/swing/text/GapContent.java
+++ b/libjava/javax/swing/text/GapContent.java
@@ -35,6 +35,7 @@ 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 javax.swing.text;
import java.io.Serializable;
@@ -57,6 +58,7 @@ public class GapContent
public GapContent(int size)
{
+ buf.append("\n");
}
public Position createPosition(final int offset) throws BadLocationException
diff --git a/libjava/javax/swing/text/JTextComponent.java b/libjava/javax/swing/text/JTextComponent.java
index 0bca84b0fcf..f3721a82156 100644
--- a/libjava/javax/swing/text/JTextComponent.java
+++ b/libjava/javax/swing/text/JTextComponent.java
@@ -1,5 +1,5 @@
/* JTextComponent.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,8 +44,15 @@ import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.awt.event.ActionEvent;
import java.awt.event.InputMethodListener;
import java.awt.event.KeyEvent;
+import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;
@@ -61,6 +68,7 @@ import javax.swing.JComponent;
import javax.swing.JViewport;
import javax.swing.KeyStroke;
import javax.swing.Scrollable;
+import javax.swing.TransferHandler;
import javax.swing.UIManager;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
@@ -294,7 +302,7 @@ public abstract class JTextComponent extends JComponent
* report</a>, a pair of private classes wraps a {@link
* javax.swing.text.Keymap} in the new {@link InputMap} / {@link
* ActionMap} interfaces, such that old Keymap-using code can make use of
- * the new framework.</p>
+ * the new framework.
*
* <p>A little bit of experimentation with these classes reveals the following
* structure:
@@ -546,7 +554,92 @@ public abstract class JTextComponent extends JComponent
{
parent = p;
}
+ }
+
+ class DefaultTransferHandler
+ extends TransferHandler
+ {
+ public boolean canImport(JComponent component, DataFlavor[] flavors)
+ {
+ JTextComponent textComponent = (JTextComponent) component;
+
+ if (! (textComponent.isEnabled()
+ && textComponent.isEditable()
+ && flavors != null))
+ return false;
+
+ for (int i = 0; i < flavors.length; ++i)
+ if (flavors[i].equals(DataFlavor.stringFlavor))
+ return true;
+
+ return false;
+ }
+
+ public void exportToClipboard(JComponent component, Clipboard clipboard,
+ int action)
+ {
+ JTextComponent textComponent = (JTextComponent) component;
+ int start = textComponent.getSelectionStart();
+ int end = textComponent.getSelectionEnd();
+
+ if (start == end)
+ return;
+
+ try
+ {
+ // Copy text to clipboard.
+ String data = textComponent.getDocument().getText(start, end);
+ StringSelection selection = new StringSelection(data);
+ clipboard.setContents(selection, null);
+
+ // Delete selected text on cut action.
+ if (action == MOVE)
+ doc.remove(start, end - start);
+ }
+ catch (BadLocationException e)
+ {
+ // Ignore this and do nothing.
+ }
+ }
+
+ public int getSourceActions()
+ {
+ return NONE;
+ }
+ public boolean importData(JComponent component, Transferable transferable)
+ {
+ DataFlavor flavor = null;
+ DataFlavor[] flavors = transferable.getTransferDataFlavors();
+
+ if (flavors == null)
+ return false;
+
+ for (int i = 0; i < flavors.length; ++i)
+ if (flavors[i].equals(DataFlavor.stringFlavor))
+ flavor = flavors[i];
+
+ if (flavor == null)
+ return false;
+
+ try
+ {
+ JTextComponent textComponent = (JTextComponent) component;
+ String data = (String) transferable.getTransferData(flavor);
+ textComponent.replaceSelection(data);
+ return true;
+ }
+ catch (IOException e)
+ {
+ // Ignored.
+ }
+ catch (UnsupportedFlavorException e)
+ {
+ // Ignored.
+ }
+
+ return false;
+ }
}
private static final long serialVersionUID = -8796518220218978795L;
@@ -554,8 +647,11 @@ public abstract class JTextComponent extends JComponent
public static final String DEFAULT_KEYMAP = "default";
public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey";
+ private static DefaultTransferHandler defaultTransferHandler;
private static Hashtable keymaps = new Hashtable();
private Keymap keymap;
+ private char focusAccelerator = '\0';
+ private NavigationFilter navigationFilter;
/**
* Get a Keymap from the global keymap table, by name.
@@ -747,7 +843,7 @@ public abstract class JTextComponent extends JComponent
* <code>b</code>, if there exists a provided action <code>a</code> such
* that <code>a.getValue(Action.NAME) == b.ActionName</code> then an
* entry is added to the Keymap mapping <code>b</code> to
- * </code>a</code>.
+ * <code>a</code>.
*
* @param map The Keymap to add new mappings to
* @param bindings The set of bindings to add to the Keymap
@@ -847,7 +943,7 @@ public abstract class JTextComponent extends JComponent
}
/**
- * Get the <code>AccessibleContext<code> of this object.
+ * Get the <code>AccessibleContext</code> of this object.
*
* @return an <code>AccessibleContext</code> object
*/
@@ -875,6 +971,7 @@ public abstract class JTextComponent extends JComponent
}
catch (BadLocationException e)
{
+ // This can never happen.
}
}
@@ -1369,4 +1466,72 @@ public abstract class JTextComponent extends JComponent
{
dragEnabled = enabled;
}
+
+ public int viewToModel(Point pt)
+ {
+ return getUI().viewToModel(this, pt);
+ }
+
+ public void copy()
+ {
+ doTransferAction("copy", TransferHandler.getCopyAction());
+ }
+
+ public void cut()
+ {
+ doTransferAction("cut", TransferHandler.getCutAction());
+ }
+
+ public void paste()
+ {
+ doTransferAction("paste", TransferHandler.getPasteAction());
+ }
+
+ private void doTransferAction(String name, Action action)
+ {
+ // Install default TransferHandler if none set.
+ if (getTransferHandler() == null)
+ {
+ if (defaultTransferHandler == null)
+ defaultTransferHandler = new DefaultTransferHandler();
+
+ setTransferHandler(defaultTransferHandler);
+ }
+
+ // Perform action.
+ ActionEvent event = new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
+ action.getValue(Action.NAME).toString());
+ action.actionPerformed(event);
+ }
+
+ public void setFocusAccelerator(char newKey)
+ {
+ if (focusAccelerator == newKey)
+ return;
+
+ char oldKey = focusAccelerator;
+ focusAccelerator = newKey;
+ firePropertyChange(FOCUS_ACCELERATOR_KEY, oldKey, newKey);
+ }
+
+ public char getFocusAccelerator()
+ {
+ return focusAccelerator;
+ }
+
+ /**
+ * @since 1.4
+ */
+ public NavigationFilter getNavigationFilter()
+ {
+ return navigationFilter;
+ }
+
+ /**
+ * @since 1.4
+ */
+ public void setNavigationFilter(NavigationFilter filter)
+ {
+ navigationFilter = filter;
+ }
}
diff --git a/libjava/javax/swing/text/PasswordView.java b/libjava/javax/swing/text/PasswordView.java
index f9db0417057..ad18350e947 100644
--- a/libjava/javax/swing/text/PasswordView.java
+++ b/libjava/javax/swing/text/PasswordView.java
@@ -56,6 +56,16 @@ public class PasswordView extends FieldView
super(elem);
}
+ /**
+ * Draws one echo character at a given position.
+ *
+ * @param g the <code>Graphics</code> object to draw to
+ * @param x the x-position
+ * @param y the y-position
+ * @param ch the echo character
+ *
+ * @return the next x position right of the drawn character
+ */
protected int drawEchoCharacter(Graphics g, int x, int y, char ch)
{
// Update font metrics.
@@ -79,6 +89,17 @@ public class PasswordView extends FieldView
return ch;
}
+ /**
+ * Draws selected text at a given position.
+ *
+ * @param g the <code>Graphics</code> object to draw to
+ * @param x the x-position
+ * @param y the y-position
+ * @param p0 the position of the first character to draw
+ * @param p1 the position of the first character not to draw
+ *
+ * @return the next x position right of the drawn character
+ */
protected int drawSelectedText(Graphics g, int x, int y, int p0, int p1)
throws BadLocationException
{
@@ -107,6 +128,17 @@ public class PasswordView extends FieldView
return x + len * metrics.charWidth(ch);
}
+ /**
+ * Draws unselected text at a given position.
+ *
+ * @param g the <code>Graphics</code> object to draw to
+ * @param x the x-position
+ * @param y the y-position
+ * @param p0 the position of the first character to draw
+ * @param p1 the position of the first character not to draw
+ *
+ * @return the next x position right of the drawn character
+ */
protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1)
throws BadLocationException
{
diff --git a/libjava/javax/swing/text/PlainDocument.java b/libjava/javax/swing/text/PlainDocument.java
index 22808700a03..64e9c8ab3f4 100644
--- a/libjava/javax/swing/text/PlainDocument.java
+++ b/libjava/javax/swing/text/PlainDocument.java
@@ -35,6 +35,7 @@ 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 javax.swing.text;
import java.util.ArrayList;
@@ -61,7 +62,7 @@ public class PlainDocument extends AbstractDocument
rootElement = createDefaultRoot();
}
- protected void reindex()
+ private void reindex()
{
Element[] lines;
try
@@ -70,24 +71,23 @@ public class PlainDocument extends AbstractDocument
ArrayList elts = new ArrayList();
int j = 0;
- for (int i = str.indexOf('\n', 0); i != -1; i = str.indexOf('\n', i+1))
+ for (int i = str.indexOf('\n', 0); i != -1; i = str.indexOf('\n', i + 1))
{
- elts.add(createLeafElement(rootElement, null, j, i));
- j = i;
+ elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, i + 1));
+ j = i + 1;
}
if (j < content.length())
- elts.add(createLeafElement(rootElement, null, j, content.length()));
+ elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, content.length()));
lines = new Element[elts.size()];
for (int i = 0; i < elts.size(); ++i)
lines[i] = (Element) elts.get(i);
-
}
catch (BadLocationException e)
{
lines = new Element[1];
- lines[0] = createLeafElement(rootElement, null, 0, 1);
+ lines[0] = createLeafElement(rootElement, SimpleAttributeSet.EMPTY, 0, 1);
}
((BranchElement) rootElement).replace(0, rootElement.getElementCount(), lines);
@@ -95,19 +95,28 @@ public class PlainDocument extends AbstractDocument
protected AbstractDocument.AbstractElement createDefaultRoot()
{
- rootElement = createBranchElement(null, null);
- reindex();
- return (AbstractElement) rootElement;
+ BranchElement root =
+ (BranchElement) createBranchElement(null, SimpleAttributeSet.EMPTY);
+
+ Element[] array = new Element[1];
+ array[0] = createLeafElement(root, SimpleAttributeSet.EMPTY, 0, 1);
+ root.replace(0, 0, array);
+
+ return root;
}
- protected void insertUpdate(DefaultDocumentEvent chng, AttributeSet attr)
+ protected void insertUpdate(DefaultDocumentEvent event, AttributeSet attributes)
{
reindex();
+
+ super.insertUpdate(event, attributes);
}
- protected void removeUpdate(DefaultDocumentEvent chng)
+ protected void removeUpdate(DefaultDocumentEvent event)
{
reindex();
+
+ super.removeUpdate(event);
}
public Element getDefaultRootElement()
@@ -117,6 +126,7 @@ public class PlainDocument extends AbstractDocument
public Element getParagraphElement(int pos)
{
- return null;
+ Element root = getDefaultRootElement();
+ return root.getElement(root.getElementIndex(pos));
}
}
diff --git a/libjava/javax/swing/text/PlainView.java b/libjava/javax/swing/text/PlainView.java
index bcec3538d64..c852c1d69b4 100644
--- a/libjava/javax/swing/text/PlainView.java
+++ b/libjava/javax/swing/text/PlainView.java
@@ -1,5 +1,5 @@
/* PlainView.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,6 @@ import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Shape;
-
public class PlainView extends View
implements TabExpander
{
@@ -93,6 +92,9 @@ public class PlainView extends View
public Shape modelToView(int position, Shape a, Position.Bias b)
throws BadLocationException
{
+ // Ensure metrics are up-to-date.
+ updateMetrics();
+
Document document = getDocument();
// Get rectangle of the line containing position.
@@ -115,13 +117,14 @@ public class PlainView extends View
return rect;
}
- public void drawLine(int lineIndex, Graphics g, int x, int y)
+ protected void drawLine(int lineIndex, Graphics g, int x, int y)
{
try
{
metrics = g.getFontMetrics();
// FIXME: Selected text are not drawn yet.
- drawUnselectedText(g, x, y, 0, getDocument().getLength());
+ Element line = getDocument().getDefaultRootElement().getElement(lineIndex);
+ drawUnselectedText(g, x, y, line.getStartOffset(), line.getEndOffset());
//drawSelectedText(g, , , , );
}
catch (BadLocationException e)
@@ -150,6 +153,9 @@ public class PlainView extends View
public void paint(Graphics g, Shape s)
{
+ // Ensure metrics are up-to-date.
+ updateMetrics();
+
JTextComponent textComponent = (JTextComponent) getContainer();
g.setFont(textComponent.getFont());
@@ -159,10 +165,18 @@ public class PlainView extends View
Rectangle rect = s.getBounds();
// FIXME: Text may be scrolled.
- drawLine(0, g, rect.x, rect.y);
+ Document document = textComponent.getDocument();
+ Element root = document.getDefaultRootElement();
+ int y = rect.y;
+
+ for (int i = 0; i < root.getElementCount(); i++)
+ {
+ drawLine(i, g, rect.x, y);
+ y += metrics.getHeight();
+ }
}
- public int getTabSize()
+ protected int getTabSize()
{
return 8;
}
diff --git a/libjava/javax/swing/text/Position.java b/libjava/javax/swing/text/Position.java
index 64a91f2e1a4..2fe2bd347d3 100644
--- a/libjava/javax/swing/text/Position.java
+++ b/libjava/javax/swing/text/Position.java
@@ -40,8 +40,8 @@ package javax.swing.text;
public interface Position
{
- static class Bias
- {
+ static class Bias
+ {
public static final Bias Backward = new Bias("backward");
public static final Bias Forward = new Bias("forward");
@@ -56,7 +56,7 @@ public interface Position
{
return name;
}
- }
+ }
- int getOffset();
+ int getOffset();
}
diff --git a/libjava/javax/swing/text/Segment.java b/libjava/javax/swing/text/Segment.java
index 218768e05e2..3b1d9e7aa91 100644
--- a/libjava/javax/swing/text/Segment.java
+++ b/libjava/javax/swing/text/Segment.java
@@ -1,4 +1,4 @@
-/* Segment.java --
+/* Segment.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,13 +59,13 @@ public class Segment
this.offset = offset;
this.count = count;
}
-
- public Object clone()
- {
+
+ public Object clone()
+ {
try
{
- return super.clone();
- }
+ return super.clone();
+ }
catch (CloneNotSupportedException e)
{
return null;
diff --git a/libjava/javax/swing/text/StringContent.java b/libjava/javax/swing/text/StringContent.java
new file mode 100644
index 00000000000..c984bd892ee
--- /dev/null
+++ b/libjava/javax/swing/text/StringContent.java
@@ -0,0 +1,304 @@
+/* StringContent.java --
+ Copyright (C) 2005 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 javax.swing.text;
+
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.Vector;
+
+import javax.swing.undo.AbstractUndoableEdit;
+import javax.swing.undo.CannotRedoException;
+import javax.swing.undo.CannotUndoException;
+import javax.swing.undo.UndoableEdit;
+
+/**
+ * An implementation of the <code>AbstractDocument.Content</code>
+ * interface useful for small documents or debugging. The character
+ * content is a simple character array. It's not really efficient.
+ *
+ * <p>Do not use this class for large size.</p>
+ */
+public final class StringContent implements AbstractDocument.Content, Serializable
+{
+ private char[] content;
+
+ private int count;
+
+ private Vector positions = new Vector();
+
+ private class InsertUndo extends AbstractUndoableEdit
+ {
+ private int start;
+
+ private int length;
+
+ private String redoContent;
+
+ public InsertUndo(int start, int length)
+ {
+ super();
+ this.start = start;
+ this.length = length;
+ }
+
+ public void undo()
+ {
+ super.undo();
+ try
+ {
+ StringContent.this.checkLocation(this.start, this.length);
+ this.redoContent = new String(StringContent.this.content, this.start, this.length);
+ StringContent.this.remove(this.start, this.length);
+ }
+ catch (BadLocationException b)
+ {
+ throw new CannotUndoException();
+ }
+ }
+
+ public void redo()
+ {
+ super.redo();
+ try
+ {
+ StringContent.this.insertString(this.start, this.redoContent);
+ }
+ catch (BadLocationException b)
+ {
+ throw new CannotRedoException();
+ }
+ }
+ }
+
+ private class RemoveUndo extends AbstractUndoableEdit
+ {
+ private int start;
+
+ private String undoString;
+
+ public RemoveUndo(int start, String str)
+ {
+ super();
+ this.start = start;
+ this.undoString = str;
+ }
+
+ public void undo()
+ {
+ super.undo();
+ try
+ {
+ StringContent.this.insertString(this.start, this.undoString);
+ }
+ catch (BadLocationException bad)
+ {
+ throw new CannotUndoException();
+ }
+ }
+
+ public void redo()
+ {
+ super.redo();
+ try
+ {
+ int end = this.undoString.length();
+ StringContent.this.remove(this.start, end);
+ }
+ catch (BadLocationException bad)
+ {
+ throw new CannotRedoException();
+ }
+ }
+ }
+
+ private class StickyPosition implements Position
+ {
+ private int offset = -1;
+
+ public StickyPosition(int offset)
+ {
+ this.offset = offset;
+ }
+
+ private void setOffset(int offset)
+ {
+ this.offset = this.offset >= 0 ? offset : -1;
+ }
+
+ /**
+ * Should be >=0.
+ */
+ public int getOffset()
+ {
+ return offset < 0 ? 0 : offset;
+ }
+ }
+
+ public StringContent()
+ {
+ this(1);
+ }
+
+ public StringContent(int initialLength)
+ {
+ super();
+ if (initialLength < 1)
+ initialLength = 1;
+ this.content = new char[initialLength];
+ this.content[0] = '\n';
+ this.count = 1;
+ }
+
+ protected Vector getPositionsInRange(Vector v,
+ int offset,
+ int length)
+ {
+ Vector refPos = new Vector();
+ Iterator iter = this.positions.iterator();
+ while(iter.hasNext())
+ {
+ Position p = (Position)iter.next();
+ if ((offset <= p.getOffset())
+ && (p.getOffset() <= (offset + length)))
+ refPos.add(p);
+ }
+ return refPos;
+ }
+
+ public Position createPosition(int offset) throws BadLocationException
+ {
+ if (offset < this.count || offset > this.count)
+ checkLocation(offset, 0);
+ StickyPosition sp = new StickyPosition(offset);
+ this.positions.add(sp);
+ return sp;
+ }
+
+ public int length()
+ {
+ return this.count;
+ }
+
+ public UndoableEdit insertString(int where, String str)
+ throws BadLocationException
+ {
+ checkLocation(where, 0);
+ if (where == this.count)
+ throw new BadLocationException("Invalid location", 1);
+ if (str == null)
+ throw new NullPointerException();
+ char[] insert = str.toCharArray();
+ char[] temp = new char[this.content.length + insert.length];
+ this.count += insert.length;
+ // Copy array and insert the string.
+ if (where > 0)
+ System.arraycopy(this.content, 0, temp, 0, where);
+ System.arraycopy(insert, 0, temp, where, insert.length);
+ System.arraycopy(this.content, where, temp, (where + insert.length), (temp.length - where - insert.length));
+ if (this.content.length < temp.length)
+ this.content = new char[temp.length];
+ // Copy the result in the original char array.
+ System.arraycopy(temp, 0, this.content, 0, temp.length);
+ // Move all the positions.
+ Vector refPos = getPositionsInRange(this.positions, where, temp.length - where);
+ Iterator iter = refPos.iterator();
+ while (iter.hasNext())
+ {
+ StickyPosition p = (StickyPosition)iter.next();
+ p.setOffset(p.getOffset() + str.length());
+ }
+ InsertUndo iundo = new InsertUndo(where, insert.length);
+ return iundo;
+ }
+
+ public UndoableEdit remove(int where, int nitems) throws BadLocationException
+ {
+ checkLocation(where, nitems);
+ char[] temp = new char[(this.content.length - nitems)];
+ this.count = this.count - nitems;
+ RemoveUndo rundo = new RemoveUndo(where, new String(this.content, where, nitems));
+ // Copy array.
+ System.arraycopy(this.content, 0, temp, 0, where);
+ System.arraycopy(this.content, where + nitems, temp, where, this.content.length - where - nitems);
+ this.content = new char[temp.length];
+ // Then copy the result in the original char array.
+ System.arraycopy(temp, 0, this.content, 0, this.content.length);
+ // Move all the positions.
+ Vector refPos = getPositionsInRange(this.positions, where, this.content.length + nitems - where);
+ Iterator iter = refPos.iterator();
+ while (iter.hasNext())
+ {
+ StickyPosition p = (StickyPosition)iter.next();
+ int result = p.getOffset() - nitems;
+ p.setOffset(result);
+ if (result < 0)
+ this.positions.remove(p);
+ }
+ return rundo;
+ }
+
+ public String getString(int where, int len) throws BadLocationException
+ {
+ checkLocation(where, len);
+ return new String (this.content, where, len);
+ }
+
+ public void getChars(int where, int len, Segment txt) throws BadLocationException
+ {
+ checkLocation(where, len);
+ if (txt != null)
+ {
+ txt.array = this.content;
+ txt.offset = where;
+ txt.count = len;
+ }
+ }
+
+ private void checkLocation(int where, int len) throws BadLocationException
+ {
+ if (where < 0)
+ throw new BadLocationException("Invalid location", 1);
+ else if (where > this.count)
+ throw new BadLocationException("Invalid location", this.count);
+ else if ((where + len)>this.count)
+ throw new BadLocationException("Invalid range", this.count);
+ }
+
+}
+
diff --git a/libjava/javax/swing/text/StyledEditorKit.java b/libjava/javax/swing/text/StyledEditorKit.java
index f1858309a5a..148ebd32bd2 100644
--- a/libjava/javax/swing/text/StyledEditorKit.java
+++ b/libjava/javax/swing/text/StyledEditorKit.java
@@ -52,452 +52,452 @@ import javax.swing.event.CaretListener;
/**
* StyledEditorKit
*
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
*/
public class StyledEditorKit extends DefaultEditorKit
{
private static final long serialVersionUID = 7002391892985555948L;
- /**
- * UnderlineAction
- */
+ /**
+ * UnderlineAction
+ */
public static class UnderlineAction extends StyledEditorKit.StyledTextAction
{
- /**
- * Constructor UnderlineAction
- */
+ /**
+ * Constructor UnderlineAction
+ */
public UnderlineAction()
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * ItalicAction
- */
+ /**
+ * ItalicAction
+ */
public static class ItalicAction extends StyledEditorKit.StyledTextAction
{
- /**
- * Constructor ItalicAction
- */
+ /**
+ * Constructor ItalicAction
+ */
public ItalicAction()
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * BoldAction
- */
+ /**
+ * BoldAction
+ */
public static class BoldAction extends StyledEditorKit.StyledTextAction
{
- /**
- * Constructor BoldAction
- */
+ /**
+ * Constructor BoldAction
+ */
public BoldAction()
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * AlignmentAction
- */
+ /**
+ * AlignmentAction
+ */
public static class AlignmentAction extends StyledEditorKit.StyledTextAction
{
- /**
- * a
- */
- private int a;
-
- /**
- * Constructor AlignmentAction
- * @param nm TODO
- * @param a TODO
- */
+ /**
+ * a
+ */
+ private int a;
+
+ /**
+ * Constructor AlignmentAction
+ * @param nm TODO
+ * @param a TODO
+ */
public AlignmentAction(String nm, int a)
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * ForegroundAction
- */
+ /**
+ * ForegroundAction
+ */
public static class ForegroundAction extends StyledEditorKit.StyledTextAction
{
- /**
- * fg
- */
- private Color fg;
-
- /**
- * Constructor ForegroundAction
- * @param nm TODO
- * @param fg TODO
- */
+ /**
+ * fg
+ */
+ private Color fg;
+
+ /**
+ * Constructor ForegroundAction
+ * @param nm TODO
+ * @param fg TODO
+ */
public ForegroundAction(String nm, Color fg)
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * FontSizeAction
- */
+ /**
+ * FontSizeAction
+ */
public static class FontSizeAction extends StyledEditorKit.StyledTextAction
{
- /**
- * size
- */
- private int size;
-
- /**
- * Constructor FontSizeAction
- * @param nm TODO
- * @param size TODO
- */
+ /**
+ * size
+ */
+ private int size;
+
+ /**
+ * Constructor FontSizeAction
+ * @param nm TODO
+ * @param size TODO
+ */
public FontSizeAction(String nm, int size)
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * FontFamilyAction
- */
+ /**
+ * FontFamilyAction
+ */
public static class FontFamilyAction extends StyledEditorKit.StyledTextAction
{
- /**
- * family
- */
- private String family;
-
- /**
- * Constructor FontFamilyAction
- * @param nm TODO
- * @param family TODO
- */
+ /**
+ * family
+ */
+ private String family;
+
+ /**
+ * Constructor FontFamilyAction
+ * @param nm TODO
+ * @param family TODO
+ */
public FontFamilyAction(String nm, String family)
{
- super("TODO");
- // TODO
+ super("TODO");
+ // TODO
}
- /**
- * actionPerformed
- * @param event TODO
- */
+ /**
+ * actionPerformed
+ * @param event TODO
+ */
public void actionPerformed(ActionEvent event)
{
- // TODO
+ // TODO
}
}
- /**
- * StyledTextAction
- */
+ /**
+ * StyledTextAction
+ */
public abstract static class StyledTextAction extends TextAction
{
- /**
- * Constructor StyledTextAction
- * @param nm TODO
- */
+ /**
+ * Constructor StyledTextAction
+ * @param nm TODO
+ */
public StyledTextAction(String nm)
{
- super(nm);
- // TODO
+ super(nm);
+ // TODO
}
- /**
- * getEditor
- * @param event TODO
- * @returns JEditorPane
- */
+ /**
+ * getEditor
+ * @param event TODO
+ * @returns JEditorPane
+ */
protected final JEditorPane getEditor(ActionEvent event)
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * setCharacterAttributes
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
- */
+ /**
+ * setCharacterAttributes
+ * @param value0 TODO
+ * @param value1 TODO
+ * @param value2 TODO
+ */
protected final void setCharacterAttributes(JEditorPane value0,
AttributeSet value1,
boolean value2)
{
- // TODO
+ // TODO
}
- /**
- * getStyledDocument
- * @param value0 TODO
- * @returns StyledDocument
- */
+ /**
+ * getStyledDocument
+ * @param value0 TODO
+ * @returns StyledDocument
+ */
protected final StyledDocument getStyledDocument(JEditorPane value0)
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * getStyledEditorKit
- * @param value0 TODO
- * @returns StyledEditorKit
- */
+ /**
+ * getStyledEditorKit
+ * @param value0 TODO
+ * @returns StyledEditorKit
+ */
protected final StyledEditorKit getStyledEditorKit(JEditorPane value0)
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * setParagraphAttributes
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
- */
+ /**
+ * setParagraphAttributes
+ * @param value0 TODO
+ * @param value1 TODO
+ * @param value2 TODO
+ */
protected final void setParagraphAttributes(JEditorPane value0,
AttributeSet value1,
boolean value2)
{
- // TODO
+ // TODO
}
}
- /**
- * StyledViewFactory
- */
+ /**
+ * StyledViewFactory
+ */
static class StyledViewFactory
implements ViewFactory
{
- /**
- * Constructor StyledViewFactory
- */
+ /**
+ * Constructor StyledViewFactory
+ */
StyledViewFactory()
{
- // TODO
+ // TODO
}
- /**
- * create
- * @param value0 TODO
- * @returns View
- */
+ /**
+ * create
+ * @param value0 TODO
+ * @returns View
+ */
public View create(Element value0)
{
- return null; // TODO
+ return null; // TODO
}
}
- /**
- * AttributeTracker
- */
+ /**
+ * AttributeTracker
+ */
class AttributeTracker
implements CaretListener, PropertyChangeListener, Serializable
{
- /**
- * Constructor AttributeTracker
- * @param value0 TODO
- */
+ /**
+ * Constructor AttributeTracker
+ * @param value0 TODO
+ */
AttributeTracker(StyledEditorKit value0)
{
- // TODO
+ // TODO
}
- /**
- * updateInputAttributes
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
- */
+ /**
+ * updateInputAttributes
+ * @param value0 TODO
+ * @param value1 TODO
+ * @param value2 TODO
+ */
void updateInputAttributes(int value0, int value1, JTextComponent value2)
{
- // TODO
+ // TODO
}
- /**
- * propertyChange
- * @param value0 TODO
- */
+ /**
+ * propertyChange
+ * @param value0 TODO
+ */
public void propertyChange(PropertyChangeEvent value0)
{
- // TODO
+ // TODO
}
- /**
- * caretUpdate
- * @param value0 TODO
- */
+ /**
+ * caretUpdate
+ * @param value0 TODO
+ */
public void caretUpdate(CaretEvent value0)
{
- // TODO
+ // TODO
}
}
- /**
- * currentRun
- */
- Element currentRun;
+ /**
+ * currentRun
+ */
+ Element currentRun;
- /**
- * currentParagraph
- */
- Element currentParagraph;
+ /**
+ * currentParagraph
+ */
+ Element currentParagraph;
- /**
- * inputAttributes
- */
- MutableAttributeSet inputAttributes;
+ /**
+ * inputAttributes
+ */
+ MutableAttributeSet inputAttributes;
- /**
- * Constructor StyledEditorKit
- */
+ /**
+ * Constructor StyledEditorKit
+ */
public StyledEditorKit()
{
- // TODO
+ // TODO
}
- /**
- * clone
- * @returns Object
- */
+ /**
+ * clone
+ * @returns Object
+ */
public Object clone()
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * getActions
- * @returns Action[]
- */
+ /**
+ * getActions
+ * @returns Action[]
+ */
public Action[] getActions()
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * getInputAttributes
- * @returns MutableAttributeSet
- */
+ /**
+ * getInputAttributes
+ * @returns MutableAttributeSet
+ */
public MutableAttributeSet getInputAttributes()
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * getCharacterAttributeRun
- * @returns Element
- */
+ /**
+ * getCharacterAttributeRun
+ * @returns Element
+ */
public Element getCharacterAttributeRun()
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * createDefaultDocument
- * @returns Document
- */
+ /**
+ * createDefaultDocument
+ * @returns Document
+ */
public Document createDefaultDocument()
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * install
- * @param component TODO
- */
+ /**
+ * install
+ * @param component TODO
+ */
public void install(JEditorPane component)
{
- // TODO
+ // TODO
}
- /**
- * deinstall
- * @param component TODO
- */
+ /**
+ * deinstall
+ * @param component TODO
+ */
public void deinstall(JEditorPane component)
{
- // TODO
+ // TODO
}
- /**
- * getViewFactory
- * @returns ViewFactory
- */
+ /**
+ * getViewFactory
+ * @returns ViewFactory
+ */
public ViewFactory getViewFactory()
{
- return null; // TODO
+ return null; // TODO
}
- /**
- * createInputAttributes
- * @param element TODO
- * @param set TODO
- */
+ /**
+ * createInputAttributes
+ * @param element TODO
+ * @param set TODO
+ */
protected void createInputAttributes(Element element, MutableAttributeSet set)
{
- // TODO
+ // TODO
}
}
diff --git a/libjava/javax/swing/text/TextAction.java b/libjava/javax/swing/text/TextAction.java
index d07bcbf1f43..0191a2dc41c 100644
--- a/libjava/javax/swing/text/TextAction.java
+++ b/libjava/javax/swing/text/TextAction.java
@@ -39,56 +39,73 @@ exception statement from your version. */
package javax.swing.text;
import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.HashSet;
import javax.swing.AbstractAction;
import javax.swing.Action;
/**
* TextAction
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
*/
public abstract class TextAction extends AbstractAction
{
- /**
- * Constructor TextAction
- * @param name TODO
- */
+ /**
+ * Constructor TextAction
+ * @param name TODO
+ */
public TextAction(String name)
{
super(name);
}
- /**
- * getTextComponent
- * @param event TODO
- * @return JTextComponent
- */
+ /**
+ * Returns the <code>JTextComponent</code> object associated with the given
+ * <code>ActionEvent</code>. If the source of the event is not a
+ * <code>JTextComponent</code> the currently focused text component is returned.
+ *
+ * @param event the action event
+ *
+ * @return the <code>JTextComponent</code>
+ */
protected final JTextComponent getTextComponent(ActionEvent event)
{
- if (event.getSource() != null &&
- event.getSource() instanceof JTextComponent)
+ if (event.getSource() instanceof JTextComponent)
return (JTextComponent) event.getSource();
- else
- return getFocusedComponent();
+
+ return getFocusedComponent();
}
- /**
- * augmentList
- * @param list1 TODO
- * @param list2 TODO
- * @return Action[]
- */
+ /**
+ * Creates a new array of <code>Action</code> containing both given arrays.
+ *
+ * @param list1 the first action array
+ * @param list2 the second action array
+ *
+ * @return the augmented array of actions
+ */
public static final Action[] augmentList(Action[] list1, Action[] list2)
{
- return null; // TODO
+ HashSet actionSet = new HashSet();
+
+ for (int i = 0; i < list1.length; ++i)
+ actionSet.add(list1[i]);
+
+ for (int i = 0; i < list2.length; ++i)
+ actionSet.add(list2[i]);
+
+ ArrayList list = new ArrayList(actionSet);
+ return (Action[]) list.toArray(new Action[actionSet.size()]);
}
- /**
- * getFocusedComponent
- * @return JTextComponent
- */
+ /**
+ * Returns the current focused <code>JTextComponent</code> object.
+ *
+ * @return the <code>JTextComponent</code>
+ */
protected final JTextComponent getFocusedComponent()
{
- return null; // TODO
+ return null; // TODO
}
}
diff --git a/libjava/javax/swing/text/Utilities.java b/libjava/javax/swing/text/Utilities.java
index 6d2b54680a0..c55f48e0a5f 100644
--- a/libjava/javax/swing/text/Utilities.java
+++ b/libjava/javax/swing/text/Utilities.java
@@ -1,5 +1,5 @@
/* Utilities.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.awt.Graphics;
* A set of utilities to deal with text. This is used by several other classes
* inside this package.
*
- * @author Roman Kennke <roman@ontographics.com>
+ * @author Roman Kennke (roman@ontographics.com)
*/
public class Utilities
{
diff --git a/libjava/javax/swing/text/View.java b/libjava/javax/swing/text/View.java
index f9e44a90f54..46f42b50374 100644
--- a/libjava/javax/swing/text/View.java
+++ b/libjava/javax/swing/text/View.java
@@ -1,5 +1,5 @@
/* View.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ 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 javax.swing.text;
import java.awt.Container;
@@ -57,91 +58,113 @@ public abstract class View implements SwingConstants
private Element elt;
private View parent;
- /**
+ /**
* Creates a new <code>View</code> instance.
*
* @param elem an <code>Element</code> value
- */
- public View(Element elem)
- {
- elt = elem;
- }
+ */
+ public View(Element elem)
+ {
+ elt = elem;
+ }
public abstract void paint(Graphics g, Shape s);
- public void setParent(View a)
- {
- parent = a;
- }
-
+ public void setParent(View parent)
+ {
+ this.parent = parent;
+ }
+
public View getParent()
- {
+ {
return parent;
- }
-
- public void setSize(int w, int h)
- {
- width = w;
- height = h;
- }
+ }
public Container getContainer()
- {
+ {
+ View parent = getParent();
return parent != null ? parent.getContainer() : null;
- }
-
+ }
+
public Document getDocument()
- {
+ {
return getElement().getDocument();
- }
-
+ }
+
public Element getElement()
- {
+ {
return elt;
- }
+ }
public abstract float getPreferredSpan(int axis);
+
+ public int getResizeWeight(int axis)
+ {
+ return 0;
+ }
+
+ public float getMaximumSpan(int axis)
+ {
+ if (getResizeWeight(axis) <= 0)
+ return getPreferredSpan(axis);
+
+ return Integer.MAX_VALUE;
+ }
+
+ public float getMinimumSpan(int axis)
+ {
+ if (getResizeWeight(axis) <= 0)
+ return getPreferredSpan(axis);
+
+ return Integer.MAX_VALUE;
+ }
+
+ public void setSize(float width, float height)
+ {
+ // The default implementation does nothing.
+ }
public float getAlignment(int axis)
- {
+ {
return 0.5f;
- }
-
+ }
+
public AttributeSet getAttributes()
- {
- return elt.getAttributes();
- }
-
+ {
+ return getElement().getAttributes();
+ }
+
public boolean isVisible()
- {
+ {
return true;
- }
+ }
public int getViewCount()
- {
+ {
return 0;
- }
-
+ }
+
public View getView(int index)
- {
+ {
return null;
- }
+ }
public ViewFactory getViewFactory()
- {
+ {
+ View parent = getParent();
return parent != null ? parent.getViewFactory() : null;
}
public void replace(int offset, int length, View[] views)
- {
+ {
// Default implementation does nothing.
}
public void insert(int offset, View view)
- {
+ {
View[] array = { view };
replace(offset, 1, array);
- }
+ }
public void append(View view)
{
@@ -152,7 +175,7 @@ public abstract class View implements SwingConstants
public void removeAll()
{
replace(0, getViewCount(), null);
- }
+ }
public void remove(int index)
{
@@ -167,12 +190,12 @@ public abstract class View implements SwingConstants
public int getStartOffset()
{
- return elt.getStartOffset();
+ return getElement().getStartOffset();
}
public int getEndOffset()
{
- return elt.getEndOffset();
+ return getElement().getEndOffset();
}
public Shape getChildAllocation(int index, Shape a)
@@ -205,5 +228,37 @@ public abstract class View implements SwingConstants
return null;
}
+
+ /**
+ * @since 1.3
+ */
+ public Graphics getGraphics()
+ {
+ return getContainer().getGraphics();
+ }
+
+ public void preferenceChanged(View child, boolean width, boolean height)
+ {
+ if (parent != null)
+ parent.preferenceChanged(this, width, height);
+ }
+
+ public int getBreakWeight(int axis, float pos, float len)
+ {
+ return BadBreakWeight;
+ }
+
+ public View breakView(int axis, int offset, float pos, float len)
+ {
+ return this;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public int getViewIndex(int pos, Position.Bias b)
+ {
+ return -1;
+ }
}
diff --git a/libjava/javax/swing/text/ViewFactory.java b/libjava/javax/swing/text/ViewFactory.java
index 52be67ba557..c9cc4b792b8 100644
--- a/libjava/javax/swing/text/ViewFactory.java
+++ b/libjava/javax/swing/text/ViewFactory.java
@@ -46,5 +46,5 @@ public interface ViewFactory
*
* @return a new created view
*/
- View create (Element elem);
+ View create(Element elem);
}
diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/javax/swing/tree/DefaultMutableTreeNode.java
index b6dd1d0b870..de34ee07250 100644
--- a/libjava/javax/swing/tree/DefaultMutableTreeNode.java
+++ b/libjava/javax/swing/tree/DefaultMutableTreeNode.java
@@ -1,5 +1,5 @@
/* DefaultMutableTreeNode.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,984 +38,917 @@ exception statement from your version. */
package javax.swing.tree;
+import gnu.java.util.EmptyEnumeration;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Random;
import java.util.Stack;
import java.util.Vector;
/**
* DefaultMutableTreeNode
+ *
* @author Andrew Selkirk
*/
public class DefaultMutableTreeNode
implements Cloneable, MutableTreeNode, Serializable
{
- static final long serialVersionUID = -4298474751201349152L;
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * EMPTY_ENUMERATION
- */
- public static final Enumeration EMPTY_ENUMERATION = null; // TODO
-
- /**
- * parent
- */
- protected MutableTreeNode parent = null;
-
- /**
- * children
- */
- protected Vector children = new Vector();
-
- /**
- * userObject
- */
- protected transient Object userObject = "";
-
- /**
- * allowsChildren
- */
- protected boolean allowsChildren = true;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode() {
- // TODO
- } // DefaultMutableTreeNode()
-
- /**
- * Constructor DefaultMutableTreeNode
- * @param value0 TODO
- */
- public DefaultMutableTreeNode(Object userObject) {
- this.userObject = userObject;
- } // DefaultMutableTreeNode()
-
- /**
- * Constructor DefaultMutableTreeNode
- * @param value0 TODO
- * @param value1 TODO
- */
- public DefaultMutableTreeNode(Object userObject, boolean allowsChildren) {
- this.userObject = userObject;
- this.allowsChildren = allowsChildren;
- } // DefaultMutableTreeNode()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * clone
- * @returns Object
- */
- public Object clone() {
- return null; // TODO
- } // clone()
-
- /**
- * toString
- * @returns String
- */
- public String toString() {
- if (userObject == null) {
- return null;
- } // if
- return userObject.toString();
- } // toString()
-
- /**
- * add
- * @param value0 TODO
- */
- public void add(MutableTreeNode child) {
- children.add(child);
- child.setParent(this);
- } // add()
-
- /**
- * getParent
- * @returns TreeNode
- */
- public TreeNode getParent() {
- return parent;
- } // getParent()
-
- /**
- * remove
- * @param value0 TODO
- */
- public void remove(int index) {
- children.remove(index);
- } // remove()
-
- /**
- * remove
- * @param value0 TODO
- */
- public void remove(MutableTreeNode node) {
- children.remove(node);
- } // remove()
-
- /**
- * writeObject
- * @param value0 TODO
- * @exception IOException TODO
- */
- private void writeObject(ObjectOutputStream value0) throws IOException {
- // TODO
- } // writeObject()
-
- /**
- * readObject
- * @param value0 TODO
- * @exception IOException TODO
- * @exception ClassNotFoundException TODO
- */
- private void readObject(ObjectInputStream value0) throws IOException, ClassNotFoundException {
- // TODO
- } // readObject()
-
- /**
- * insert
- * @param value0 TODO
- * @param value1 TODO
- */
- public void insert(MutableTreeNode node, int index) {
- children.insertElementAt(node, index);
- } // insert()
-
- /**
- * getPath
- * @returns TreeNode[]
- */
- public TreeNode[] getPath() {
-
- // Variables
- TreeNode[] path;
- int size;
- int index;
- TreeNode current;
-
- // Determine length of Path
- size = getLevel() + 1;
-
- // Create Path
- path = new TreeNode[size];
- current = this;
- for (index = size - 1; index >= 0; index--) {
- path[index] = current;
- current = current.getParent();
- } // for
-
- // Return Path
- return path;
-
- } // getPath()
-
- /**
- * children
- * @returns Enumeration
- */
- public Enumeration children() {
- return children.elements();
- } // children()
-
- /**
- * setParent
- * @param value0 TODO
- */
- public void setParent(MutableTreeNode node) {
- parent = node;
- } // setParent()
-
- /**
- * getChildAt
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getChildAt(int index) {
- return (TreeNode) children.elementAt(index);
- } // getChildAt()
-
- /**
- * getChildCount
- * @returns int
- */
- public int getChildCount() {
- return children.size();
- } // getChildCount()
-
- /**
- * getIndex
- * @param value0 TODO
- * @returns int
- */
- public int getIndex(TreeNode node) {
- return children.indexOf(node);
- } // getIndex()
-
- /**
- * setAllowsChildren
- * @param value0 TODO
- */
- public void setAllowsChildren(boolean allowsChildren) {
- this.allowsChildren = allowsChildren;
- } // setAllowsChildren()
-
- /**
- * getAllowsChildren
- * @returns boolean
- */
- public boolean getAllowsChildren() {
- return allowsChildren;
- } // getAllowsChildren()
-
- /**
- * setUserObject
- * @param value0 TODO
- */
- public void setUserObject(Object userObject) {
- this.userObject = userObject;
- } // setUserObject()
-
- /**
- * getUserObject
- * @returns Object
- */
- public Object getUserObject() {
- return userObject;
- } // getUserObject()
-
- /**
- * removeFromParent
- */
- public void removeFromParent() {
- parent = null;
- // TODO
- } // removeFromParent()
-
- /**
- * removeAllChildren
- */
- public void removeAllChildren() {
- children.removeAllElements();
- } // removeAllChildren()
-
- /**
- * isNodeAncestor
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeAncestor(TreeNode node) {
-
- // Variables
- TreeNode current;
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Search For Ancestor
- current = this;
- while (current != null && current != node) {
- current = current.getParent();
- } // while
-
- // Check for Ancestor
- if (current == node) {
- return true;
- } // if
-
- // Otherwise, no
- return false;
-
- } // isNodeAncestor()
-
- /**
- * isNodeDescendant
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeDescendant(DefaultMutableTreeNode node) {
-
- // Variables
- TreeNode current;
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Search For Descendant
- current = node;
- while (current != null && current != this) {
- current = current.getParent();
- } // while
-
- // Check for Descendant
- if (current == this) {
- return true;
- } // if
-
- // Otherwise, no
- return false;
-
- } // isNodeDescendant()
-
- /**
- * getSharedAncestor
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getSharedAncestor(DefaultMutableTreeNode node) {
-
- // Variables
- ArrayList list;
- TreeNode current;
-
- // Get List of Path Elements for this node
- current = this;
- list = new ArrayList();
- while (current != null) {
- list.add(current);
- current = current.getParent();
- } // while
-
- // Check if any path element of node are in list
- current = node;
- while (current != null) {
- if (list.contains(current) == true) {
- return current;
- } // if
- current = current.getParent();
- } // while
-
- // Unable to locate shared ancestor
- return null;
-
- } // getSharedAncestor()
-
- /**
- * isNodeRelated
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeRelated(DefaultMutableTreeNode node) {
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Check for the same root
- if (node.getRoot() == getRoot()) {
- return true;
- } // if
-
- // Nodes are not related
- return false;
-
- } // isNodeRelated()
-
- /**
- * getDepth
- * @returns int
- */
- public int getDepth() {
-
- // Variables
- TreeNode node;
- int depth;
- int current;
- int size;
- Stack stack;
- int index;
-
- // Check for children
- if (allowsChildren == false || children.size() == 0) {
- return 0;
- } // if
-
- // Process Depths
- stack = new Stack();
- stack.push(new Integer(0));
- node = getChildAt(0);
-//System.out.println(" * Descend: 0-0");
- depth = 0;
- current = 1;
- while (stack.empty() == false) {
-
- // Check if node has children
- if (node.getChildCount() != 0) {
- node = node.getChildAt(0);
- stack.push(new Integer(0));
- current++;
-// System.out.println(" * Descend: 0-" + current);
-
- // Check for next sibling
- } else {
-
- // Check Depth
- if (current > depth) {
- depth = current;
- } // if
-
- do {
-
- // Traverse to Parent
- node = node.getParent();
- size = node.getChildCount();
- current--;
- index = ((Integer) stack.pop()).intValue();
-// System.out.println(" * Ascend from: " + index + "-" + current);
- index++;
-
- } while (index >= size && node != this);
-
- // Check for child
- if (index < size) {
- node = node.getChildAt(index);
- stack.push(new Integer(index));
- current++;
-// System.out.println(" * Descend: " + index + "-" + current);
- } // if
-
- } // if
-
- } // while
-
- return depth;
-
- } // getDepth()
-
- static Random random = new Random(System.currentTimeMillis());
-
- public static void growTree(DefaultMutableTreeNode root) {
-
- // Variables
- int index;
- DefaultMutableTreeNode node;
- DefaultMutableTreeNode current;
-
- current = root;
- index = 0;
-// while (current != root) {
- do {
-
-// if (random.nextInt(3) < 2) {
- if (random.nextBoolean()) {
- node = new DefaultMutableTreeNode(String.valueOf(index));
- index++;
- current.add(node);
- current = node;
- } else {
- current = (DefaultMutableTreeNode) current.getParent();
- } // if
-
-// } // while
- } while (current != root && current != null);
-
- System.out.println("Number of nodes: " + index);
-
-/*
- // Calc # children
- size = random.nextInt(4);
-
- for (index = 0; index < size; index++) {
-
- // Create Node
- node = new DefaultMutableTreeNode(String.valueOf(index));
- growTree(node);
-
- // Add Node to root
- root.add(node);
-
- } // for
-*/
- } // growTree()
-
- public static void main(String[] argv) {
-/*
- DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("node1");
- DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("node2");
- DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("node3");
- DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("node4");
- DefaultMutableTreeNode node5 = new DefaultMutableTreeNode("node5");
- DefaultMutableTreeNode node6 = new DefaultMutableTreeNode("node6");
- DefaultMutableTreeNode node7 = new DefaultMutableTreeNode("node7");
- DefaultMutableTreeNode node8 = new DefaultMutableTreeNode("node8");
-
- node1.add(node2);
- node1.add(node3);
- node2.add(node4);
- node2.add(node5);
- node3.add(node6);
- node3.add(node7);
- node5.add(node8);
-
- System.out.println("Depth (node1): " + node1.getDepth());
- System.out.println("Depth (node2): " + node2.getDepth());
- System.out.println("Depth (node3): " + node3.getDepth());
-*/
-
- System.out.println("Create tree...");
- DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
- growTree(root);
- System.out.println("Find depth...");
- System.out.println("Depth (root): " + root.getDepth());
-
- } // main
-
- /**
- * getLevel
- * @returns int
- */
- public int getLevel() {
-
- // Variables
- TreeNode current;
- int count;
-
- // Lookup Parent
- count = -1;
- current = this;
- do {
- current = current.getParent();
- count++;
- } while (current != null);
-
- return count;
-
- } // getLevel()
-
- /**
- * getPathToRoot
- * @param value0 TODO
- * @param value1 TODO
- * @returns TreeNode[]
- */
- protected TreeNode[] getPathToRoot(TreeNode value0, int value1) {
- return null; // TODO
- } // getPathToRoot()
-
- /**
- * getUserObjectPath
- * @returns Object[]
- */
- public Object[] getUserObjectPath() {
-
- // Variables
- TreeNode[] path;
- Object[] object;
- int index;
-
- // Get Path for Tree Nodes
- path = getPath();
-
- // Construct Object Path
- object = new Object[path.length];
- for (index = 0; index < path.length; index++) {
- object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject();
- } // for
-
- // Return Object Path
- return object;
-
- } // getUserObjectPath()
-
- /**
- * getRoot
- * @returns TreeNode
- */
- public TreeNode getRoot() {
-
- // Variables
- TreeNode current;
- TreeNode check;
-
- // Lookup Parent
- current = this;
- check = current.getParent();
- while (check != null) {
- current = check;
- check = current.getParent();
- } // while
-
- return current;
-
- } // getRoot()
-
- /**
- * isRoot
- * @returns boolean
- */
- public boolean isRoot() {
- return (parent == null);
- } // isRoot()
-
- /**
- * getNextNode
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getNextNode() {
- return null; // TODO
- } // getNextNode()
-
- /**
- * getPreviousNode
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getPreviousNode() {
- return null; // TODO
- } // getPreviousNode()
-
- /**
- * preorderEnumeration
- * @returns Enumeration
- */
- public Enumeration preorderEnumeration() {
- return null; // TODO
- } // preorderEnumeration()
-
- /**
- * postorderEnumeration
- * @returns Enumeration
- */
- public Enumeration postorderEnumeration() {
- return null; // TODO
- } // postorderEnumeration()
-
- /**
- * breadthFirstEnumeration
- * @returns Enumeration
- */
- public Enumeration breadthFirstEnumeration() {
- return null; // TODO
- } // breadthFirstEnumeration()
-
- /**
- * depthFirstEnumeration
- * @returns Enumeration
- */
- public Enumeration depthFirstEnumeration() {
- return null; // TODO
- } // depthFirstEnumeration()
-
- /**
- * pathFromAncestorEnumeration
- * @param value0 TODO
- * @returns Enumeration
- */
- public Enumeration pathFromAncestorEnumeration(TreeNode value0) {
- return null; // TODO
- } // pathFromAncestorEnumeration()
-
- /**
- * isNodeChild
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeChild(TreeNode node) {
-
- // Variables
- TreeNode current;
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Process Path
- current = node;
- while (current != null) {
- if (current == this) {
- return true;
- } // if
- current = current.getParent();
- } // while
-
- // Node not located in path, not child
- return false;
-
- } // isNodeChild()
-
- /**
- * getFirstChild
- * @returns TreeNode
- */
- public TreeNode getFirstChild() {
- return (TreeNode) children.firstElement();
- } // getFirstChild()
-
- /**
- * getLastChild
- * @returns TreeNode
- */
- public TreeNode getLastChild() {
- return (TreeNode) children.lastElement();
- } // getLastChild()
-
- /**
- * getChildAfter
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getChildAfter(TreeNode node) {
-
- // Variables
- int index;
-
- // Check node
- if (node == null || node.getParent() != this) {
- throw new IllegalArgumentException();
- } // if
-
- // Get index of child node
- index = getIndex(node);
-
- // Check for child after
- index++;
- if (index == getChildCount()) {
- return null;
- } // if
-
- // Retrieve Child After
- return getChildAt(index);
-
- } // getChildAfter()
-
- /**
- * getChildBefore
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getChildBefore(TreeNode node) {
-
- // Variables
- int index;
-
- // Check node
- if (node == null || node.getParent() != this) {
- throw new IllegalArgumentException();
- } // if
-
- // Get index of child node
- index = getIndex(node);
-
- // Check for child before
- index--;
- if (index < 0) {
- return null;
- } // if
-
- // Retrieve Child Before
- return getChildAt(index);
-
- } // getChildBefore()
-
- /**
- * isNodeSibling
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeSibling(TreeNode node) {
-
- // Check for null
- if (node == null) {
- return false;
- } // if
-
- // Check if nodes share a parent
- if (node.getParent() == getParent() && getParent() != null) {
- return true;
- } // if
-
- // Nodes are not siblings
- return false;
-
- } // isNodeSibling()
-
- /**
- * getSiblingCount
- * @returns int
- */
- public int getSiblingCount() {
-
- // Variables
-
- // Check for no parent
- if (parent == null) {
- return 1;
- } // if
-
- // Calculate sibling count from parent's child count
- return parent.getChildCount();
-
- } // getSiblingCount()
-
- /**
- * getNextSibling
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getNextSibling() {
-
- // Variables
- int index;
- int size;
-
- // Check for Parent
- if (parent == null) {
- return null;
- } // if
-
- // Get Index of this node
- index = parent.getIndex(this);
-
- // Check for Next Sibling
- size = parent.getChildCount();
- index++;
- if (index == size) {
- return null;
- } // if
-
- return (DefaultMutableTreeNode) parent.getChildAt(index);
-
- } // getNextSibling()
-
- /**
- * getPreviousSibling
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getPreviousSibling() {
-
- // Variables
- int index;
-
- // Check for Parent
- if (parent == null) {
- return null;
- } // if
-
- // Get Index of this node
- index = parent.getIndex(this);
-
- // Check for Previous Sibling
- index--;
- if (index < 0) {
- return null;
- } // if
-
- return (DefaultMutableTreeNode) parent.getChildAt(index);
-
- } // getPreviousSibling()
-
- /**
- * isLeaf
- * @returns boolean
- */
- public boolean isLeaf() {
- return (children.size() == 0); // TODO: check allowsChildren??
- } // isLeaf()
-
- /**
- * getFirstLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getFirstLeaf() {
-
- // Variables
- TreeNode current;
-
- current = this;
- while (current.getChildCount() > 0) {
- current = current.getChildAt(0);
- } // while
-
- return (DefaultMutableTreeNode) current;
-
- } // getFirstLeaf()
-
- /**
- * getLastLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getLastLeaf() {
-
- // Variables
- TreeNode current;
- int size;
-
- current = this;
- size = current.getChildCount();
- while (size > 0) {
- current = current.getChildAt(size - 1);
- size = current.getChildCount();
- } // while
-
- return (DefaultMutableTreeNode) current;
-
- } // getLastLeaf()
-
- /**
- * getNextLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getNextLeaf() {
- return null; // TODO
- } // getNextLeaf()
-
- /**
- * getPreviousLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getPreviousLeaf() {
- return null; // TODO
- } // getPreviousLeaf()
-
- /**
- * getLeafCount
- * @returns int
- */
- public int getLeafCount() {
-
- // Variables
- Enumeration e;
- int count;
- TreeNode current;
-
- // Get Enumeration of all descendants
- e = depthFirstEnumeration();
-
- // Process Nodes
- count = 0;
- while (e.hasMoreElements() == true) {
- current = (TreeNode) e.nextElement();
- if (current.isLeaf() == true) {
- count++;
- } // if
- } // if
-
- return count;
-
- } // getLeafCount()
-
-
-} // DefaultMutableTreeNode
+ private static final long serialVersionUID = -4298474751201349152L;
+
+ /**
+ * EMPTY_ENUMERATION
+ */
+ public static final Enumeration EMPTY_ENUMERATION =
+ EmptyEnumeration.getInstance();
+
+ /**
+ * parent
+ */
+ protected MutableTreeNode parent;
+
+ /**
+ * children
+ */
+ protected Vector children = new Vector();
+
+ /**
+ * userObject
+ */
+ protected transient Object userObject;
+
+ /**
+ * allowsChildren
+ */
+ protected boolean allowsChildren;
+
+ /**
+ * Creates a <code>DefaultMutableTreeNode</code> object.
+ * This node allows to add child nodes.
+ */
+ public DefaultMutableTreeNode()
+ {
+ this(null, true);
+ }
+
+ /**
+ * Creates a <code>DefaultMutableTreeNode</code> object with the given
+ * user object attached to it. This node allows to add child nodes.
+ *
+ * @param userObject the user object
+ */
+ public DefaultMutableTreeNode(Object userObject)
+ {
+ this(userObject, true);
+ }
+
+ /**
+ * Creates a <code>DefaultMutableTreeNode</code> object with the given
+ * user object attached to it.
+ *
+ * @param userObject the user object
+ * @param allowsChildren <code>true</code> if the code allows to add child
+ * nodes, <code>false</code> otherwise
+ */
+ public DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
+ {
+ this.userObject = userObject;
+ this.allowsChildren = allowsChildren;
+ }
+
+ /**
+ * clone
+ *
+ * @return Object
+ */
+ public Object clone()
+ {
+ try
+ {
+ return super.clone();
+ // TODO: Do we need to do more here ?
+ }
+ catch (CloneNotSupportedException e)
+ {
+ // This never happens.
+ return null;
+ }
+ }
+
+ /**
+ * Returns a string representation of this node
+ *
+ * @return a human-readable String representing this node
+ */
+ public String toString()
+ {
+ if (userObject == null)
+ return null;
+
+ return userObject.toString();
+ }
+
+ /**
+ * Adds a new child node to this node.
+ *
+ * @param child the child node
+ *
+ * @throws IllegalArgumentException if <code>child</code> is null
+ * @throws IllegalStateException if the node does not allow children
+ */
+ public void add(MutableTreeNode child)
+ {
+ if (child == null)
+ throw new IllegalArgumentException();
+
+ if (! allowsChildren)
+ throw new IllegalStateException();
+
+ children.add(child);
+ child.setParent(this);
+ }
+
+ /**
+ * Returns the parent node of this node.
+ *
+ * @return the parent node
+ */
+ public TreeNode getParent()
+ {
+ return parent;
+ }
+
+ /**
+ * Removes the child with the given index from this node
+ *
+ * @param index the index
+ */
+ public void remove(int index)
+ {
+ children.remove(index);
+ }
+
+ /**
+ * Removes the given child from this node.
+ *
+ * @param node the child node
+ */
+ public void remove(MutableTreeNode node)
+ {
+ children.remove(node);
+ }
+
+ /**
+ * writeObject
+ *
+ * @param stream the output stream
+ *
+ * @exception IOException If an error occurs
+ */
+ private void writeObject(ObjectOutputStream stream)
+ throws IOException
+ {
+ // TODO: Implement me.
+ }
+
+ /**
+ * readObject
+ *
+ * @param stream the input stream
+ *
+ * @exception IOException If an error occurs
+ * @exception ClassNotFoundException TODO
+ */
+ private void readObject(ObjectInputStream stream)
+ throws IOException, ClassNotFoundException
+ {
+ // TODO: Implement me.
+ }
+
+ /**
+ * Inserts given child node at the given index.
+ *
+ * @param node the child node
+ * @param value the index.
+ */
+ public void insert(MutableTreeNode node, int index)
+ {
+ children.insertElementAt(node, index);
+ }
+
+ /**
+ * Returns a path to this node from the root.
+ *
+ * @return an array of tree nodes
+ */
+ public TreeNode[] getPath()
+ {
+ return getPathToRoot(this, 0);
+ }
+
+ /**
+ * Returns an enumeration containing all children of this node.
+ * <code>EMPTY_ENUMERATION</code> is returned if this node has no children.
+ *
+ * @return an enumeration of tree nodes
+ */
+ public Enumeration children()
+ {
+ if (children.size() == 0)
+ return EMPTY_ENUMERATION;
+
+ return children.elements();
+ }
+
+ /**
+ * Set the parent node for this node.
+ *
+ * @param node the parent node
+ */
+ public void setParent(MutableTreeNode node)
+ {
+ parent = node;
+ }
+
+ /**
+ * Returns the child node at a given index.
+ *
+ * @param index the index
+ *
+ * @return the child node
+ */
+ public TreeNode getChildAt(int index)
+ {
+ return (TreeNode) children.elementAt(index);
+ }
+
+ /**
+ * Returns the number of children of this node.
+ *
+ * @return the number of children
+ */
+ public int getChildCount()
+ {
+ return children.size();
+ }
+
+ /**
+ * Returns the child index for a given node.
+ *
+ * @param node this node
+ *
+ * @return the index
+ */
+ public int getIndex(TreeNode node)
+ {
+ return children.indexOf(node);
+ }
+
+ /**
+ * setAllowsChildren
+ *
+ * @param allowsChildren TODO
+ */
+ public void setAllowsChildren(boolean allowsChildren)
+ {
+ this.allowsChildren = allowsChildren;
+ }
+
+ /**
+ * getAllowsChildren
+ *
+ * @return boolean
+ */
+ public boolean getAllowsChildren()
+ {
+ return allowsChildren;
+ }
+
+ /**
+ * Sets the user object for this node
+ *
+ * @param userObject the user object
+ */
+ public void setUserObject(Object userObject)
+ {
+ this.userObject = userObject;
+ }
+
+ /**
+ * Returns the user object attached to this node. <code>null</code> is
+ * returned when no user object is set.
+ *
+ * @return the user object
+ */
+ public Object getUserObject()
+ {
+ return userObject;
+ }
+
+ /**
+ * Removes this node from its parent.
+ */
+ public void removeFromParent()
+ {
+ // FIXME: IS this implementation really correct ?
+ parent = null;
+ }
+
+ /**
+ * Removes all child nodes from this node.
+ */
+ public void removeAllChildren()
+ {
+ children.removeAllElements();
+ }
+
+ /**
+ * isNodeAncestor
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeAncestor(TreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ TreeNode current = this;
+
+ while (current != null
+ && current != node)
+ current = current.getParent();
+
+ return current == node;
+ }
+
+ /**
+ * isNodeDescendant
+ *
+ * @param node0 TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeDescendant(DefaultMutableTreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ TreeNode current = node;
+
+ while (current != null
+ && current != this)
+ current = current.getParent();
+
+ return current == this;
+ }
+
+ /**
+ * getSharedAncestor
+ *
+ * @param node TODO
+ *
+ * @return TreeNode
+ */
+ public TreeNode getSharedAncestor(DefaultMutableTreeNode node)
+ {
+ TreeNode current = this;
+ ArrayList list = new ArrayList();
+
+ while (current != null)
+ {
+ list.add(current);
+ current = current.getParent();
+ }
+
+ current = node;
+
+ while (current != null)
+ {
+ if (list.contains(current))
+ return current;
+
+ current = current.getParent();
+ }
+
+ return null;
+ }
+
+ /**
+ * isNodeRelated
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeRelated(DefaultMutableTreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ return node.getRoot() == getRoot();
+ }
+
+ /**
+ * getDepth
+ *
+ * @return int
+ */
+ public int getDepth()
+ {
+ if ((! allowsChildren)
+ || children.size() == 0)
+ return 0;
+
+ Stack stack = new Stack();
+ stack.push(new Integer(0));
+ TreeNode node = getChildAt(0);
+ int depth = 0;
+ int current = 1;
+
+ while (! stack.empty())
+ {
+ if (node.getChildCount() != 0)
+ {
+ node = node.getChildAt(0);
+ stack.push(new Integer(0));
+ current++;
+ }
+ else
+ {
+ if (current > depth)
+ depth = current;
+
+ int size;
+ int index;
+
+ do
+ {
+ node = node.getParent();
+ size = node.getChildCount();
+ index = ((Integer) stack.pop()).intValue() + 1;
+ current--;
+ }
+ while (index >= size
+ && node != this);
+
+ if (index < size)
+ {
+ node = node.getChildAt(index);
+ stack.push(new Integer(index));
+ current++;
+ }
+ }
+ }
+
+ return depth;
+ }
+
+ /**
+ * getLevel
+ *
+ * @return int
+ */
+ public int getLevel()
+ {
+ int count = -1;
+ TreeNode current = this;
+
+ do
+ {
+ current = current.getParent();
+ count++;
+ }
+ while (current != null);
+
+ return count;
+ }
+
+ /**
+ * getPathToRoot
+ *
+ * @param node TODO
+ * @param depth TODO
+ *
+ * @return TreeNode[]
+ */
+ protected TreeNode[] getPathToRoot(TreeNode node, int depth)
+ {
+ if (node == null)
+ {
+ if (depth == 0)
+ return null;
+
+ return new TreeNode[depth];
+ }
+
+ TreeNode[] path = getPathToRoot(node.getParent(), depth + 1);
+ path[path.length - depth - 1] = node;
+ return path;
+ }
+
+ /**
+ * getUserObjectPath
+ *
+ * @return Object[]
+ */
+ public Object[] getUserObjectPath()
+ {
+ TreeNode[] path = getPathToRoot(this, 0);
+ Object[] object = new Object[path.length];
+
+ for (int index = 0; index < path.length; ++index)
+ object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject();
+
+ return object;
+ }
+
+ /**
+ * Returns the root node by iterating the parents of this node.
+ *
+ * @return the root node
+ */
+ public TreeNode getRoot()
+ {
+ TreeNode current = this;
+ TreeNode check = current.getParent();
+
+ while (check != null)
+ {
+ current = check;
+ check = current.getParent();
+ }
+
+ return current;
+ }
+
+ /**
+ * Tells whether this node is the root node or not.
+ *
+ * @return <code>true</code> if this is the root node,
+ * <code>false</code>otherwise
+ */
+ public boolean isRoot()
+ {
+ return parent == null;
+ }
+
+ /**
+ * getNextNode
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getNextNode()
+ {
+ // Return first child.
+ if (getChildCount() != 0)
+ return (DefaultMutableTreeNode) getChildAt(0);
+
+ // Return next sibling (if needed the sibling of some parent).
+ DefaultMutableTreeNode node = this;
+ DefaultMutableTreeNode sibling;
+
+ do
+ {
+ sibling = node.getNextSibling();
+ node = (DefaultMutableTreeNode) node.getParent();
+ }
+ while (sibling == null &&
+ node != null);
+
+ // Return sibling.
+ return sibling;
+ }
+
+ /**
+ * getPreviousNode
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getPreviousNode()
+ {
+ // Return null if no parent.
+ if (parent == null)
+ return null;
+
+ DefaultMutableTreeNode sibling = getPreviousSibling();
+
+ // Return parent if no sibling.
+ if (sibling == null)
+ return (DefaultMutableTreeNode) parent;
+
+ // Return last leaf of sibling.
+ if (sibling.getChildCount() != 0)
+ return sibling.getLastLeaf();
+
+ // Return sibling.
+ return sibling;
+ }
+
+ /**
+ * preorderEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration preorderEnumeration()
+ {
+ return null; // TODO: Implement me.
+ }
+
+ /**
+ * postorderEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration postorderEnumeration()
+ {
+ return null; // TODO: Implement me.
+ }
+
+ /**
+ * breadthFirstEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration breadthFirstEnumeration()
+ {
+ return null; // TODO: Implement me.
+ }
+
+ /**
+ * depthFirstEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration depthFirstEnumeration()
+ {
+ return postorderEnumeration();
+ }
+
+ /**
+ * pathFromAncestorEnumeration
+ *
+ * @param node TODO
+ *
+ * @return Enumeration
+ */
+ public Enumeration pathFromAncestorEnumeration(TreeNode node)
+ {
+ if (node == null)
+ throw new IllegalArgumentException();
+
+ TreeNode parent = this;
+ Vector nodes = new Vector();
+ nodes.add(this);
+
+ while (parent != node && parent != null)
+ {
+ parent = parent.getParent();
+ nodes.add(0, parent);
+ }
+
+ if (parent != node)
+ throw new IllegalArgumentException();
+
+ return nodes.elements();
+ }
+
+ /**
+ * isNodeChild
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeChild(TreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ return node.getParent() == this;
+ }
+
+ /**
+ * getFirstChild
+ *
+ * @return TreeNode
+ */
+ public TreeNode getFirstChild()
+ {
+ return (TreeNode) children.firstElement();
+ }
+
+ /**
+ * getLastChild
+ *
+ * @return TreeNode
+ */
+ public TreeNode getLastChild()
+ {
+ return (TreeNode) children.lastElement();
+ }
+
+ /**
+ * getChildAfter
+ *
+ * @param node TODO
+ *
+ * @return TreeNode
+ */
+ public TreeNode getChildAfter(TreeNode node)
+ {
+ if (node == null
+ || node.getParent() != this)
+ throw new IllegalArgumentException();
+
+ int index = getIndex(node) + 1;
+
+ if (index == getChildCount())
+ return null;
+
+ return getChildAt(index);
+ }
+
+ /**
+ * getChildBefore
+ *
+ * @param node TODO
+ *
+ * @return TreeNode
+ */
+ public TreeNode getChildBefore(TreeNode node)
+ {
+ if (node == null
+ || node.getParent() != this)
+ throw new IllegalArgumentException();
+
+ int index = getIndex(node) - 1;
+
+ if (index < 0)
+ return null;
+
+ return getChildAt(index);
+ }
+
+ /**
+ * isNodeSibling
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeSibling(TreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ return (node.getParent() == getParent()
+ && getParent() != null);
+ }
+
+ /**
+ * getSiblingCount
+ *
+ * @return int
+ */
+ public int getSiblingCount()
+ {
+ if (parent == null)
+ return 1;
+
+ return parent.getChildCount();
+ }
+
+ /**
+ * getNextSibling
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getNextSibling()
+ {
+ if (parent == null)
+ return null;
+
+ int index = parent.getIndex(this) + 1;
+
+ if (index == parent.getChildCount())
+ return null;
+
+ return (DefaultMutableTreeNode) parent.getChildAt(index);
+ }
+
+ /**
+ * getPreviousSibling
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getPreviousSibling()
+ {
+ if (parent == null)
+ return null;
+
+ int index = parent.getIndex(this) - 1;
+
+ if (index < 0)
+ return null;
+
+ return (DefaultMutableTreeNode) parent.getChildAt(index);
+ }
+
+ /**
+ * isLeaf
+ *
+ * @return boolean
+ */
+ public boolean isLeaf()
+ {
+ return children.size() == 0;
+ }
+
+ /**
+ * getFirstLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getFirstLeaf()
+ {
+ TreeNode current = this;
+
+ while (current.getChildCount() > 0)
+ current = current.getChildAt(0);
+
+ return (DefaultMutableTreeNode) current;
+ }
+
+ /**
+ * getLastLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getLastLeaf()
+ {
+ TreeNode current = this;
+ int size = current.getChildCount();
+
+ while (size > 0)
+ {
+ current = current.getChildAt(size - 1);
+ size = current.getChildCount();
+ }
+
+ return (DefaultMutableTreeNode) current;
+ }
+
+ /**
+ * getNextLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getNextLeaf()
+ {
+ if (parent == null)
+ return null;
+
+ return null;
+ //return parent.getChildAfter(this);
+ }
+
+ /**
+ * getPreviousLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getPreviousLeaf()
+ {
+ if (parent == null)
+ return null;
+
+ return null;
+ //return parent.getChildBefore(this);
+ }
+
+ /**
+ * getLeafCount
+ *
+ * @return int
+ */
+ public int getLeafCount()
+ {
+ int count = 0;
+ Enumeration e = depthFirstEnumeration();
+
+ while (e.hasMoreElements())
+ {
+ TreeNode current = (TreeNode) e.nextElement();
+
+ if (current.isLeaf())
+ count++;
+ }
+
+ return count;
+ }
+}
diff --git a/libjava/javax/swing/tree/MutableTreeNode.java b/libjava/javax/swing/tree/MutableTreeNode.java
index ff038d5b3f1..1f0c943aad9 100644
--- a/libjava/javax/swing/tree/MutableTreeNode.java
+++ b/libjava/javax/swing/tree/MutableTreeNode.java
@@ -1,5 +1,5 @@
/* MutableTreeNode.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,45 +39,66 @@ package javax.swing.tree;
/**
* MutableTreeNode public interface
+
* @author Andrew Selkirk
*/
-public interface MutableTreeNode extends TreeNode {
-
- /**
- * insert
- * @param child MutableTreeNode
- * @param index Index
- */
- void insert(MutableTreeNode child, int index);
-
- /**
- * remove
- * @param index Index
- */
- void remove(int index);
-
- /**
- * remove
- * @param node MutableTreeNode
- */
- void remove(MutableTreeNode node);
-
- /**
- * setUserObject
- * @param object Object
- */
- void setUserObject(Object object);
-
- /**
- * removeFromParent
- */
- void removeFromParent();
-
- /**
- * setParent
- * @param parent MutableTreeNode
- */
- void setParent(MutableTreeNode parent);
-
-
-} // MutableTreeNode
+public interface MutableTreeNode extends TreeNode
+{
+ /**
+ * Inserts a node as child at a given index.
+ *
+ * @param child the note to insert
+ * @param index the index
+ *
+ * @see #remove(int)
+ * @see #remove(MutableTreeNode)
+ * @see #setParent(MutableTreeNode)
+ */
+ void insert(MutableTreeNode child, int index);
+
+ /**
+ * Removes the child node a given index.
+ *
+ * @param index the index
+ *
+ * @see #add(MutableTreeNode,int)
+ * @see #remove(MutableTreeNode)
+ * @see #removeFromParent()
+ */
+ void remove(int index);
+
+ /**
+ * Removes a given child node.
+ *
+ * @param node the node to remove
+ *
+ * @see #add(MutableTreeNode,int)
+ * @see #remove(int)
+ * @see #removeFromParent()
+ */
+ void remove(MutableTreeNode node);
+
+ /**
+ * Sets a user object, the data represented by the node.
+ *
+ * @param object the data
+ */
+ void setUserObject(Object object);
+
+ /**
+ * Removes this node from its parent.
+ *
+ * @see #remove(int)
+ * @see #remove(MutableTreeNode)
+ */
+ void removeFromParent();
+
+ /**
+ * Sets the parent of the node.
+ *
+ * @param parent the parent
+ *
+ * @see insert(MutableTreeNode,int)
+ */
+ void setParent(MutableTreeNode parent);
+}
diff --git a/libjava/javax/swing/tree/TreeCellEditor.java b/libjava/javax/swing/tree/TreeCellEditor.java
index d9de676dd8d..4b4357a1611 100644
--- a/libjava/javax/swing/tree/TreeCellEditor.java
+++ b/libjava/javax/swing/tree/TreeCellEditor.java
@@ -49,19 +49,17 @@ import javax.swing.JTree;
*/
public interface TreeCellEditor extends CellEditor
{
- /**
- * getTreeCellEditorComponent
- * @param tree TODO
- * @param value TODO
- * @param isSelected TODO
- * @param expanded TODO
- * @param leaf TODO
- * @param row TODO
- * @returns TODO
- */
- Component getTreeCellEditorComponent(JTree tree,
- Object value, boolean isSelected, boolean expanded,
- boolean leaf, int row);
-
-
-} // TreeCellEditor
+ /**
+ * getTreeCellEditorComponent
+ * @param tree TODO
+ * @param value TODO
+ * @param isSelected TODO
+ * @param expanded TODO
+ * @param leaf TODO
+ * @param row TODO
+ * @return TODO
+ */
+ Component getTreeCellEditorComponent(JTree tree, Object value,
+ boolean isSelected, boolean expanded,
+ boolean leaf, int row);
+}
diff --git a/libjava/javax/swing/undo/UndoManager.java b/libjava/javax/swing/undo/UndoManager.java
index c1b7cb88ffa..fcdcf34ec0f 100644
--- a/libjava/javax/swing/undo/UndoManager.java
+++ b/libjava/javax/swing/undo/UndoManager.java
@@ -1,5 +1,5 @@
/* AbstractTableModel.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -81,7 +81,7 @@ import javax.swing.event.UndoableEditListener;
* {@link javax.swing.event.UndoableEvent} sources do not need to
* broadcast their events from inside the Swing worker thread.
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class UndoManager
extends CompoundEdit
diff --git a/libjava/javax/swing/undo/UndoableEditSupport.java b/libjava/javax/swing/undo/UndoableEditSupport.java
index 8b4cef77588..80234aa8a75 100644
--- a/libjava/javax/swing/undo/UndoableEditSupport.java
+++ b/libjava/javax/swing/undo/UndoableEditSupport.java
@@ -1,5 +1,5 @@
/* UndoableEditSupport.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,8 +48,8 @@ import javax.swing.event.UndoableEditListener;
* A helper class for supporting {@link
* javax.swing.event.UndoableEditListener}.
*
- * @author <a href="mailto:aselkirk@sympatico.ca">Andrew Selkirk</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Andrew Selkirk (aselkirk@sympatico.ca)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class UndoableEditSupport
{
diff --git a/libjava/javax/transaction/HeuristicCommitException.java b/libjava/javax/transaction/HeuristicCommitException.java
index e1ef8e2def2..15d3091f220 100644
--- a/libjava/javax/transaction/HeuristicCommitException.java
+++ b/libjava/javax/transaction/HeuristicCommitException.java
@@ -1,5 +1,5 @@
/* HeuristicCommitException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/HeuristicMixedException.java b/libjava/javax/transaction/HeuristicMixedException.java
index 68986b60672..8ac7ecd7d83 100644
--- a/libjava/javax/transaction/HeuristicMixedException.java
+++ b/libjava/javax/transaction/HeuristicMixedException.java
@@ -1,5 +1,5 @@
/* HeuristicMixedException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/HeuristicRollbackException.java b/libjava/javax/transaction/HeuristicRollbackException.java
index 72ac3b4d4d5..e3f77c412eb 100644
--- a/libjava/javax/transaction/HeuristicRollbackException.java
+++ b/libjava/javax/transaction/HeuristicRollbackException.java
@@ -1,5 +1,5 @@
/* HeuristicRollbackException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/InvalidTransactionException.java b/libjava/javax/transaction/InvalidTransactionException.java
index 0c47912be46..bcc31eb295d 100644
--- a/libjava/javax/transaction/InvalidTransactionException.java
+++ b/libjava/javax/transaction/InvalidTransactionException.java
@@ -1,5 +1,5 @@
/* InvalidTransactionException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.transaction;
import java.rmi.RemoteException;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/NotSupportedException.java b/libjava/javax/transaction/NotSupportedException.java
index b239574fcb4..16462beb1b5 100644
--- a/libjava/javax/transaction/NotSupportedException.java
+++ b/libjava/javax/transaction/NotSupportedException.java
@@ -1,5 +1,5 @@
/* NotSupportedException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/RollbackException.java b/libjava/javax/transaction/RollbackException.java
index c8706f5bb86..2f0ad46c8f9 100644
--- a/libjava/javax/transaction/RollbackException.java
+++ b/libjava/javax/transaction/RollbackException.java
@@ -1,5 +1,5 @@
/* RollbackException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/Status.java b/libjava/javax/transaction/Status.java
index 7b3c4aea946..3f47b5227cf 100644
--- a/libjava/javax/transaction/Status.java
+++ b/libjava/javax/transaction/Status.java
@@ -1,5 +1,5 @@
/* Status.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/Synchronization.java b/libjava/javax/transaction/Synchronization.java
index e8d8eb917f8..7cd02489fe5 100644
--- a/libjava/javax/transaction/Synchronization.java
+++ b/libjava/javax/transaction/Synchronization.java
@@ -1,5 +1,5 @@
/* Synchronization.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/SystemException.java b/libjava/javax/transaction/SystemException.java
index ed9c9e4f273..e2339938b7a 100644
--- a/libjava/javax/transaction/SystemException.java
+++ b/libjava/javax/transaction/SystemException.java
@@ -1,5 +1,5 @@
/* SystemException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/Transaction.java b/libjava/javax/transaction/Transaction.java
index 55303b7c782..0c0910c172a 100644
--- a/libjava/javax/transaction/Transaction.java
+++ b/libjava/javax/transaction/Transaction.java
@@ -1,5 +1,5 @@
/* Transaction.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.transaction;
import javax.transaction.xa.XAResource;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/TransactionManager.java b/libjava/javax/transaction/TransactionManager.java
index 0a79bd3f6de..f8a26f1df55 100644
--- a/libjava/javax/transaction/TransactionManager.java
+++ b/libjava/javax/transaction/TransactionManager.java
@@ -1,5 +1,5 @@
/* TransactionManager.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/TransactionRequiredException.java b/libjava/javax/transaction/TransactionRequiredException.java
index ebc5679d941..ec624270f69 100644
--- a/libjava/javax/transaction/TransactionRequiredException.java
+++ b/libjava/javax/transaction/TransactionRequiredException.java
@@ -1,5 +1,5 @@
/* TransactionRequiredException --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.transaction;
import java.rmi.RemoteException;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/TransactionRolledbackException.java b/libjava/javax/transaction/TransactionRolledbackException.java
index ef4f1cc2641..45ac60fd817 100644
--- a/libjava/javax/transaction/TransactionRolledbackException.java
+++ b/libjava/javax/transaction/TransactionRolledbackException.java
@@ -1,5 +1,5 @@
/* TransactionRolledbackException --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.transaction;
import java.rmi.RemoteException;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/UserTransaction.java b/libjava/javax/transaction/UserTransaction.java
index 1327a0c50ea..00dbd206226 100644
--- a/libjava/javax/transaction/UserTransaction.java
+++ b/libjava/javax/transaction/UserTransaction.java
@@ -1,5 +1,5 @@
/* UserTransaction.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/xa/XAException.java b/libjava/javax/transaction/xa/XAException.java
index 48c7ca8126d..96e614e8404 100644
--- a/libjava/javax/transaction/xa/XAException.java
+++ b/libjava/javax/transaction/xa/XAException.java
@@ -1,5 +1,5 @@
/* XAException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package javax.transaction.xa;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/xa/XAResource.java b/libjava/javax/transaction/xa/XAResource.java
index 6fd0717e2d0..194b02f867e 100644
--- a/libjava/javax/transaction/xa/XAResource.java
+++ b/libjava/javax/transaction/xa/XAResource.java
@@ -1,5 +1,5 @@
/* XAResource.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package javax.transaction.xa;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/xa/Xid.java b/libjava/javax/transaction/xa/Xid.java
index c91843d303b..e34256dc8de 100644
--- a/libjava/javax/transaction/xa/Xid.java
+++ b/libjava/javax/transaction/xa/Xid.java
@@ -1,5 +1,5 @@
/* Xid.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package javax.transaction.xa;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/xml/XMLConstants.java b/libjava/javax/xml/XMLConstants.java
index 4b9b0661736..4c256f44329 100644
--- a/libjava/javax/xml/XMLConstants.java
+++ b/libjava/javax/xml/XMLConstants.java
@@ -1,5 +1,5 @@
/* XMLConstants.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml;
/**
* Repository for well-known XML constants.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public final class XMLConstants
diff --git a/libjava/javax/xml/datatype/DatatypeConfigurationException.java b/libjava/javax/xml/datatype/DatatypeConfigurationException.java
index 15440798807..0e3243b87f0 100644
--- a/libjava/javax/xml/datatype/DatatypeConfigurationException.java
+++ b/libjava/javax/xml/datatype/DatatypeConfigurationException.java
@@ -1,5 +1,5 @@
/* DatatypeConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.datatype;
/**
* A serious error during datatype configuration.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class DatatypeConfigurationException
diff --git a/libjava/javax/xml/datatype/DatatypeConstants.java b/libjava/javax/xml/datatype/DatatypeConstants.java
index a761f88d50e..5724502e7e7 100644
--- a/libjava/javax/xml/datatype/DatatypeConstants.java
+++ b/libjava/javax/xml/datatype/DatatypeConstants.java
@@ -1,5 +1,5 @@
/* DatatypeConstants.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.xml.namespace.QName;
/**
* Basic data type constants.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public final class DatatypeConstants
diff --git a/libjava/javax/xml/datatype/DatatypeFactory.java b/libjava/javax/xml/datatype/DatatypeFactory.java
index 2299435fc4a..b3c8cf43142 100644
--- a/libjava/javax/xml/datatype/DatatypeFactory.java
+++ b/libjava/javax/xml/datatype/DatatypeFactory.java
@@ -1,5 +1,5 @@
/* DatatypeFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.GregorianCalendar;
* Factory class to create new datatype objects mapping XML to and from Java
* objects.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class DatatypeFactory
diff --git a/libjava/javax/xml/datatype/Duration.java b/libjava/javax/xml/datatype/Duration.java
index ed1221dbf20..b7d188cd7b8 100644
--- a/libjava/javax/xml/datatype/Duration.java
+++ b/libjava/javax/xml/datatype/Duration.java
@@ -1,5 +1,5 @@
/* Duration.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import javax.xml.namespace.QName;
/**
* An immutable time space as specified in XML Schema 1.0.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class Duration
diff --git a/libjava/javax/xml/datatype/XMLGregorianCalendar.java b/libjava/javax/xml/datatype/XMLGregorianCalendar.java
index c3585a48905..48280381c9c 100644
--- a/libjava/javax/xml/datatype/XMLGregorianCalendar.java
+++ b/libjava/javax/xml/datatype/XMLGregorianCalendar.java
@@ -1,5 +1,5 @@
/* XMLGregorianCalendar.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import javax.xml.namespace.QName;
/**
* An XML Schema 1.0 date/time data type.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class XMLGregorianCalendar
diff --git a/libjava/javax/xml/namespace/NamespaceContext.java b/libjava/javax/xml/namespace/NamespaceContext.java
index 2e790654870..4b768dcdeb7 100644
--- a/libjava/javax/xml/namespace/NamespaceContext.java
+++ b/libjava/javax/xml/namespace/NamespaceContext.java
@@ -1,5 +1,5 @@
/* NamespaceContext.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import java.util.Iterator;
/**
* Interface by which namespace properties are made available.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface NamespaceContext
diff --git a/libjava/javax/xml/namespace/QName.java b/libjava/javax/xml/namespace/QName.java
index 62dc8cd08a6..fbb222efc07 100644
--- a/libjava/javax/xml/namespace/QName.java
+++ b/libjava/javax/xml/namespace/QName.java
@@ -1,5 +1,5 @@
/* QName.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import javax.xml.XMLConstants;
* An XML
* <a href='http://www.w3.org/TR/REC-xml-names/#ns-qualnames'>qualified name</a>.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class QName
diff --git a/libjava/javax/xml/parsers/DocumentBuilder.java b/libjava/javax/xml/parsers/DocumentBuilder.java
index 13d7658de36..15130e89583 100644
--- a/libjava/javax/xml/parsers/DocumentBuilder.java
+++ b/libjava/javax/xml/parsers/DocumentBuilder.java
@@ -1,5 +1,5 @@
/* DocumentBuilder.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,6 @@ import org.w3c.dom.DOMImplementation;
import org.xml.sax.InputSource;
import org.xml.sax.EntityResolver;
import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
@@ -55,7 +54,7 @@ import org.xml.sax.SAXException;
* graph.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class DocumentBuilder
{
diff --git a/libjava/javax/xml/parsers/DocumentBuilderFactory.java b/libjava/javax/xml/parsers/DocumentBuilderFactory.java
index c531005164d..1ba51d0217f 100644
--- a/libjava/javax/xml/parsers/DocumentBuilderFactory.java
+++ b/libjava/javax/xml/parsers/DocumentBuilderFactory.java
@@ -1,5 +1,5 @@
/* DocumentBuilderFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,15 +45,12 @@ import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Properties;
import javax.xml.validation.Schema;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
/**
* Factory for obtaining document builders.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class DocumentBuilderFactory
{
diff --git a/libjava/javax/xml/parsers/FactoryConfigurationError.java b/libjava/javax/xml/parsers/FactoryConfigurationError.java
index e7ff57e2a90..351b340a0e0 100644
--- a/libjava/javax/xml/parsers/FactoryConfigurationError.java
+++ b/libjava/javax/xml/parsers/FactoryConfigurationError.java
@@ -1,5 +1,5 @@
/* FactoryConfigurationError.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.parsers;
/**
* An error occurred during configuration of the parser factory.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class FactoryConfigurationError
extends Error
diff --git a/libjava/javax/xml/parsers/ParserConfigurationException.java b/libjava/javax/xml/parsers/ParserConfigurationException.java
index d7b54cf7b46..a8cd546cf20 100644
--- a/libjava/javax/xml/parsers/ParserConfigurationException.java
+++ b/libjava/javax/xml/parsers/ParserConfigurationException.java
@@ -1,5 +1,5 @@
/* ParserConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.parsers;
/**
* An exception occurred during configuration of the XML parser.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class ParserConfigurationException
extends Exception
diff --git a/libjava/javax/xml/parsers/SAXParser.java b/libjava/javax/xml/parsers/SAXParser.java
index 10289dc6a20..f05cc510dec 100644
--- a/libjava/javax/xml/parsers/SAXParser.java
+++ b/libjava/javax/xml/parsers/SAXParser.java
@@ -1,5 +1,5 @@
/* SAXParser.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,7 +55,7 @@ import org.xml.sax.helpers.DefaultHandler;
* Convenience class for using or accessing a SAX version 1 or 2 parser.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class SAXParser
{
diff --git a/libjava/javax/xml/parsers/SAXParserFactory.java b/libjava/javax/xml/parsers/SAXParserFactory.java
index 143ee620697..7b87bf24e72 100644
--- a/libjava/javax/xml/parsers/SAXParserFactory.java
+++ b/libjava/javax/xml/parsers/SAXParserFactory.java
@@ -1,5 +1,5 @@
/* SAXParserFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ import org.xml.sax.SAXNotSupportedException;
* Factory for obtaining SAX parsers.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class SAXParserFactory
{
diff --git a/libjava/javax/xml/transform/ErrorListener.java b/libjava/javax/xml/transform/ErrorListener.java
index f2021cd02d3..153de5c6612 100644
--- a/libjava/javax/xml/transform/ErrorListener.java
+++ b/libjava/javax/xml/transform/ErrorListener.java
@@ -1,5 +1,5 @@
/* ErrorListener.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* Error reporting callback handler.
* Equivalent to the SAX ErrorHandler.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface ErrorListener
{
diff --git a/libjava/javax/xml/transform/OutputKeys.java b/libjava/javax/xml/transform/OutputKeys.java
index 784194c87d6..f034a921bd6 100644
--- a/libjava/javax/xml/transform/OutputKeys.java
+++ b/libjava/javax/xml/transform/OutputKeys.java
@@ -1,5 +1,5 @@
/* OutputKeys.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
/**
* Constants for XSLT output attributes.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class OutputKeys
{
diff --git a/libjava/javax/xml/transform/Result.java b/libjava/javax/xml/transform/Result.java
index ec9420f6e41..88b4659ca56 100644
--- a/libjava/javax/xml/transform/Result.java
+++ b/libjava/javax/xml/transform/Result.java
@@ -1,5 +1,5 @@
/* Result.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ package javax.xml.transform;
/**
* The result of an XSL transformation.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface Result
{
diff --git a/libjava/javax/xml/transform/Source.java b/libjava/javax/xml/transform/Source.java
index 4d6002b5344..ef1730a6899 100644
--- a/libjava/javax/xml/transform/Source.java
+++ b/libjava/javax/xml/transform/Source.java
@@ -1,5 +1,5 @@
/* Source.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* An XML input source.
* This is equivalent to a SAX InputSource.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface Source
{
diff --git a/libjava/javax/xml/transform/SourceLocator.java b/libjava/javax/xml/transform/SourceLocator.java
index dfeea46d143..bc39e52db61 100644
--- a/libjava/javax/xml/transform/SourceLocator.java
+++ b/libjava/javax/xml/transform/SourceLocator.java
@@ -1,5 +1,5 @@
/* SourceLocator.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* The location in an XML resource at which an event occurred.
* Tis is equivalent to the SAX Locator.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface SourceLocator
{
diff --git a/libjava/javax/xml/transform/Templates.java b/libjava/javax/xml/transform/Templates.java
index 3e9293ee122..2cae7adfb73 100644
--- a/libjava/javax/xml/transform/Templates.java
+++ b/libjava/javax/xml/transform/Templates.java
@@ -1,5 +1,5 @@
/* Templates.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.Properties;
* A compiled, reusable XSL transformation.
* Implementations of this class are guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface Templates
{
diff --git a/libjava/javax/xml/transform/Transformer.java b/libjava/javax/xml/transform/Transformer.java
index 3bf1e886de4..fe2a9ce3432 100644
--- a/libjava/javax/xml/transform/Transformer.java
+++ b/libjava/javax/xml/transform/Transformer.java
@@ -1,5 +1,5 @@
/* Transformer.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.Properties;
* Instances of this class may be reused, but the same instance may not be
* used concurrently by different threads.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class Transformer
{
diff --git a/libjava/javax/xml/transform/TransformerConfigurationException.java b/libjava/javax/xml/transform/TransformerConfigurationException.java
index 006fc2f4f22..9915d1a0d3f 100644
--- a/libjava/javax/xml/transform/TransformerConfigurationException.java
+++ b/libjava/javax/xml/transform/TransformerConfigurationException.java
@@ -1,5 +1,5 @@
/* TransformerConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
/**
* An exception occurred during configuration of the transformer.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class TransformerConfigurationException
extends TransformerException
diff --git a/libjava/javax/xml/transform/TransformerException.java b/libjava/javax/xml/transform/TransformerException.java
index c10fa8a4fc2..7e40cd294a4 100644
--- a/libjava/javax/xml/transform/TransformerException.java
+++ b/libjava/javax/xml/transform/TransformerException.java
@@ -1,5 +1,5 @@
/* TransformerException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import java.io.PrintWriter;
/**
* An exception occurred during the transformation process.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class TransformerException
extends Exception
diff --git a/libjava/javax/xml/transform/TransformerFactory.java b/libjava/javax/xml/transform/TransformerFactory.java
index a1f50fc2466..53d9173cdde 100644
--- a/libjava/javax/xml/transform/TransformerFactory.java
+++ b/libjava/javax/xml/transform/TransformerFactory.java
@@ -1,5 +1,5 @@
/* TransformerFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.Properties;
/**
* Factory for obtaining transformation contexts.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class TransformerFactory
{
diff --git a/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java b/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java
index 3ec8809918b..ae1521f9354 100644
--- a/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java
+++ b/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java
@@ -1,5 +1,5 @@
/* TransformerFactoryConfigurationError.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ package javax.xml.transform;
/**
* An error occurred during configuration of the transformer factory.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class TransformerFactoryConfigurationError
extends Error
diff --git a/libjava/javax/xml/transform/URIResolver.java b/libjava/javax/xml/transform/URIResolver.java
index 7dca029e836..a859b7a9266 100644
--- a/libjava/javax/xml/transform/URIResolver.java
+++ b/libjava/javax/xml/transform/URIResolver.java
@@ -1,5 +1,5 @@
/* URIResolver.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* Callback that can resolve a URI into source XML for transformation.
* Equivalent to the SAX EntityResolver.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface URIResolver
{
diff --git a/libjava/javax/xml/transform/dom/DOMLocator.java b/libjava/javax/xml/transform/dom/DOMLocator.java
index 7e0f8304eda..29953bed263 100644
--- a/libjava/javax/xml/transform/dom/DOMLocator.java
+++ b/libjava/javax/xml/transform/dom/DOMLocator.java
@@ -1,5 +1,5 @@
/* DOMLocator.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.w3c.dom.Node;
/**
* Locator for reporting a location in a W3C DOM object graph.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface DOMLocator
extends SourceLocator
diff --git a/libjava/javax/xml/transform/dom/DOMResult.java b/libjava/javax/xml/transform/dom/DOMResult.java
index e62e30bfca0..5a4ee3337e0 100644
--- a/libjava/javax/xml/transform/dom/DOMResult.java
+++ b/libjava/javax/xml/transform/dom/DOMResult.java
@@ -1,5 +1,5 @@
/* DOMResult.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import org.w3c.dom.Node;
* If no target node is specified, the result tree will be made available by
* the {@link #getNode} method after the transformation.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class DOMResult
implements Result
diff --git a/libjava/javax/xml/transform/dom/DOMSource.java b/libjava/javax/xml/transform/dom/DOMSource.java
index e002dbf06b9..d87c4fba7fa 100644
--- a/libjava/javax/xml/transform/dom/DOMSource.java
+++ b/libjava/javax/xml/transform/dom/DOMSource.java
@@ -1,5 +1,5 @@
/* DOMSource.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.w3c.dom.Node;
/**
* An XML source specified as a W3C DOM node context.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class DOMSource
implements Source
diff --git a/libjava/javax/xml/transform/sax/SAXResult.java b/libjava/javax/xml/transform/sax/SAXResult.java
index d9bf9a57ed3..94cbacdf478 100644
--- a/libjava/javax/xml/transform/sax/SAXResult.java
+++ b/libjava/javax/xml/transform/sax/SAXResult.java
@@ -1,5 +1,5 @@
/* SAXResult.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import org.xml.sax.ext.LexicalHandler;
* Specifies SAX handlers to be used as a result sink during a
* transformation.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class SAXResult implements Result
{
diff --git a/libjava/javax/xml/transform/sax/SAXSource.java b/libjava/javax/xml/transform/sax/SAXSource.java
index 15df252c727..f26a433522f 100644
--- a/libjava/javax/xml/transform/sax/SAXSource.java
+++ b/libjava/javax/xml/transform/sax/SAXSource.java
@@ -1,5 +1,5 @@
/* SAXSource.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import org.xml.sax.XMLReader;
* Specifies a SAX XML source. This is a tuple of input source and SAX
* parser.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class SAXSource
implements Source
diff --git a/libjava/javax/xml/transform/sax/SAXTransformerFactory.java b/libjava/javax/xml/transform/sax/SAXTransformerFactory.java
index 66d51979b7e..e73b3169622 100644
--- a/libjava/javax/xml/transform/sax/SAXTransformerFactory.java
+++ b/libjava/javax/xml/transform/sax/SAXTransformerFactory.java
@@ -1,5 +1,5 @@
/* SAXTransformerFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,13 +37,10 @@ exception statement from your version. */
package javax.xml.transform.sax;
-import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
-import org.xml.sax.InputSource;
import org.xml.sax.XMLFilter;
/**
@@ -52,7 +49,7 @@ import org.xml.sax.XMLFilter;
* This factory provides SAX content handlers that can create transformation
* templates and transformers.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class SAXTransformerFactory extends TransformerFactory
{
diff --git a/libjava/javax/xml/transform/sax/TemplatesHandler.java b/libjava/javax/xml/transform/sax/TemplatesHandler.java
index 8ee840d70f2..f4d288b3215 100644
--- a/libjava/javax/xml/transform/sax/TemplatesHandler.java
+++ b/libjava/javax/xml/transform/sax/TemplatesHandler.java
@@ -1,5 +1,5 @@
/* TemplatesHandler.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import org.xml.sax.ContentHandler;
* A content handler that processes SAX parse events into a compiled
* transformation template.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface TemplatesHandler
extends ContentHandler
diff --git a/libjava/javax/xml/transform/sax/TransformerHandler.java b/libjava/javax/xml/transform/sax/TransformerHandler.java
index 0b2b1bd24d7..3341f621c20 100644
--- a/libjava/javax/xml/transform/sax/TransformerHandler.java
+++ b/libjava/javax/xml/transform/sax/TransformerHandler.java
@@ -1,5 +1,5 @@
/* TransformerHandler.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import org.xml.sax.ext.LexicalHandler;
/**
* A content handler that transforms SAX events into a result tree.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface TransformerHandler
extends ContentHandler, LexicalHandler, DTDHandler
diff --git a/libjava/javax/xml/transform/stream/StreamResult.java b/libjava/javax/xml/transform/stream/StreamResult.java
index fe4462d920d..df7b0dd9987 100644
--- a/libjava/javax/xml/transform/stream/StreamResult.java
+++ b/libjava/javax/xml/transform/stream/StreamResult.java
@@ -1,5 +1,5 @@
/* StreamResult.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import javax.xml.transform.Result;
/**
* Specifies a stream to which to write the transformation result.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class StreamResult
implements Result
diff --git a/libjava/javax/xml/transform/stream/StreamSource.java b/libjava/javax/xml/transform/stream/StreamSource.java
index d65dcafed4f..f6499a4d989 100644
--- a/libjava/javax/xml/transform/stream/StreamSource.java
+++ b/libjava/javax/xml/transform/stream/StreamSource.java
@@ -1,5 +1,5 @@
/* StreamSource.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import javax.xml.transform.Source;
/**
* Specifies a stream from which to read the source XML data.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class StreamSource
implements Source
diff --git a/libjava/javax/xml/validation/Schema.java b/libjava/javax/xml/validation/Schema.java
index 099a77e0b98..fc196e104c6 100644
--- a/libjava/javax/xml/validation/Schema.java
+++ b/libjava/javax/xml/validation/Schema.java
@@ -1,5 +1,5 @@
/* Schema.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.validation;
/**
* An immutable grammar.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class Schema
diff --git a/libjava/javax/xml/validation/SchemaFactory.java b/libjava/javax/xml/validation/SchemaFactory.java
index 4310cc5f543..3c5155d22b4 100644
--- a/libjava/javax/xml/validation/SchemaFactory.java
+++ b/libjava/javax/xml/validation/SchemaFactory.java
@@ -1,5 +1,5 @@
/* SchemaFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import org.xml.sax.SAXNotSupportedException;
/**
* Factory for obtaining schemata.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class SchemaFactory
diff --git a/libjava/javax/xml/validation/TypeInfoProvider.java b/libjava/javax/xml/validation/TypeInfoProvider.java
index bec632ca64a..11da16c15f8 100644
--- a/libjava/javax/xml/validation/TypeInfoProvider.java
+++ b/libjava/javax/xml/validation/TypeInfoProvider.java
@@ -1,5 +1,5 @@
/* TypeInfoProvider.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.w3c.dom.TypeInfo;
* Provides access to the PSVI type info supplied by
* <code>ValidatorHandler</code>.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class TypeInfoProvider
diff --git a/libjava/javax/xml/validation/Validator.java b/libjava/javax/xml/validation/Validator.java
index 291bcbdafa9..48107ee1d2f 100644
--- a/libjava/javax/xml/validation/Validator.java
+++ b/libjava/javax/xml/validation/Validator.java
@@ -1,5 +1,5 @@
/* Validator.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import org.xml.sax.SAXNotSupportedException;
/**
* A processor that validates a document against a schema.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class Validator
diff --git a/libjava/javax/xml/validation/ValidatorHandler.java b/libjava/javax/xml/validation/ValidatorHandler.java
index dc36909ecaa..c7427e68059 100644
--- a/libjava/javax/xml/validation/ValidatorHandler.java
+++ b/libjava/javax/xml/validation/ValidatorHandler.java
@@ -1,5 +1,5 @@
/* ValidatorHandler.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ import org.xml.sax.SAXNotSupportedException;
/**
* A streaming validator that operates on a SAX event stream.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class ValidatorHandler
diff --git a/libjava/javax/xml/xpath/XPathConstants.java b/libjava/javax/xml/xpath/XPathConstants.java
index a4b0b163fdb..70b9d45518f 100644
--- a/libjava/javax/xml/xpath/XPathConstants.java
+++ b/libjava/javax/xml/xpath/XPathConstants.java
@@ -1,5 +1,5 @@
/* XPathConstants.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.xml.namespace.QName;
/**
* XPath constants.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathConstants
diff --git a/libjava/javax/xml/xpath/XPathException.java b/libjava/javax/xml/xpath/XPathException.java
index 4ca992bb015..a6e59ae2386 100644
--- a/libjava/javax/xml/xpath/XPathException.java
+++ b/libjava/javax/xml/xpath/XPathException.java
@@ -1,5 +1,5 @@
/* XPathException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.io.PrintWriter;
/**
* A generic XPath exception.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathException
diff --git a/libjava/javax/xml/xpath/XPathExpression.java b/libjava/javax/xml/xpath/XPathExpression.java
index b7af8f6bb3a..b87fbd2d5e3 100644
--- a/libjava/javax/xml/xpath/XPathExpression.java
+++ b/libjava/javax/xml/xpath/XPathExpression.java
@@ -1,5 +1,5 @@
/* XPathExpression.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.xml.sax.InputSource;
/**
* An XPath expression.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface XPathExpression
diff --git a/libjava/javax/xml/xpath/XPathExpressionException.java b/libjava/javax/xml/xpath/XPathExpressionException.java
index 4ba19915428..ff10c3014cb 100644
--- a/libjava/javax/xml/xpath/XPathExpressionException.java
+++ b/libjava/javax/xml/xpath/XPathExpressionException.java
@@ -1,5 +1,5 @@
/* XPathExpressionException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.xpath;
/**
* An exception in an XPath expression.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathExpressionException
diff --git a/libjava/javax/xml/xpath/XPathFactory.java b/libjava/javax/xml/xpath/XPathFactory.java
index 64076f51ded..8aad6cf7a22 100644
--- a/libjava/javax/xml/xpath/XPathFactory.java
+++ b/libjava/javax/xml/xpath/XPathFactory.java
@@ -1,5 +1,5 @@
/* XPathFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.Properties;
/**
* Factory for creating XPath environments.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class XPathFactory
diff --git a/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java b/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java
index 56c45d12e22..64ffbbeec14 100644
--- a/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java
+++ b/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java
@@ -1,5 +1,5 @@
/* XPathFactoryConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.xpath;
/**
* A configuration exception in an XPath factory environment.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathFactoryConfigurationException
diff --git a/libjava/javax/xml/xpath/XPathFunction.java b/libjava/javax/xml/xpath/XPathFunction.java
index a071eb59620..c9e450a216a 100644
--- a/libjava/javax/xml/xpath/XPathFunction.java
+++ b/libjava/javax/xml/xpath/XPathFunction.java
@@ -1,5 +1,5 @@
/* XPathFunction.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import java.util.List;
/**
* An XPath extension function.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface XPathFunction
diff --git a/libjava/javax/xml/xpath/XPathFunctionException.java b/libjava/javax/xml/xpath/XPathFunctionException.java
index 9a6751a2f32..fb784171a84 100644
--- a/libjava/javax/xml/xpath/XPathFunctionException.java
+++ b/libjava/javax/xml/xpath/XPathFunctionException.java
@@ -1,5 +1,5 @@
/* XPathFunctionException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.xpath;
/**
* An exception in an XPath function.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathFunctionException
diff --git a/libjava/javax/xml/xpath/XPathFunctionResolver.java b/libjava/javax/xml/xpath/XPathFunctionResolver.java
index 8fb0bd4234e..bf1cd82e1f6 100644
--- a/libjava/javax/xml/xpath/XPathFunctionResolver.java
+++ b/libjava/javax/xml/xpath/XPathFunctionResolver.java
@@ -1,5 +1,5 @@
/* XPathFunctionResolver.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.xml.namespace.QName;
/**
* Interface providing the means to access XPath extension functions.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface XPathFunctionResolver
diff --git a/libjava/jawt.c b/libjava/jawt.c
index 08cd78cd581..aecab6c498c 100644
--- a/libjava/jawt.c
+++ b/libjava/jawt.c
@@ -50,6 +50,8 @@ static void (JNICALL _Jv_FreeDrawingSurfaceInfo)
static JAWT_DrawingSurface* (JNICALL _Jv_GetDrawingSurface) (JNIEnv* env,
jobject canvas);
static void (JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface);
+static void (JNICALL _Jv_AWTLock) (JNIEnv*);
+static void (JNICALL _Jv_AWTUnlock) (JNIEnv*);
JNIEXPORT jboolean JNICALL
JAWT_GetAWT (JNIEnv* env, JAWT* awt)
@@ -63,6 +65,8 @@ JAWT_GetAWT (JNIEnv* env, JAWT* awt)
awt->GetDrawingSurface = _Jv_GetDrawingSurface;
awt->FreeDrawingSurface = _Jv_FreeDrawingSurface;
+ awt->Lock = _Jv_AWTLock;
+ awt->Unlock = _Jv_AWTUnlock;
return JNI_TRUE;
}
@@ -103,6 +107,7 @@ static void
surface_info_x11->display = NULL;
surface_info_x11->drawable = 0;
+ surface_info_x11->visualID = 0;
free (surface_info);
surface_info = NULL;
@@ -142,6 +147,7 @@ static JAWT_DrawingSurface*
surface_info_x11->display = classpath_jawt_get_default_display (env, canvas);
surface_info_x11->drawable = classpath_jawt_get_drawable (env, canvas);
+ surface_info_x11->visualID = classpath_jawt_get_visualID (env, canvas);
/* FIXME: also include bounding rectangle of drawing surface */
/* FIXME: also include current clipping region */
@@ -154,3 +160,16 @@ static void
{
free (surface);
}
+
+static void
+(JNICALL _Jv_AWTLock) (JNIEnv* env)
+{
+ classpath_jawt_lock ();
+}
+
+static void
+(JNICALL _Jv_AWTUnlock) (JNIEnv* env)
+{
+ classpath_jawt_unlock ();
+}
+
diff --git a/libjava/jni.cc b/libjava/jni.cc
index b7c208417a5..5f9d5f79e71 100644
--- a/libjava/jni.cc
+++ b/libjava/jni.cc
@@ -2498,7 +2498,16 @@ JNI_CreateJavaVM (JavaVM **vm, void **penv, void *args)
{
JvAssert (! the_vm);
- _Jv_CreateJavaVM (NULL);
+ jint version = * (jint *) args;
+ // We only support 1.2 and 1.4.
+ if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_4)
+ return JNI_EVERSION;
+
+ JvVMInitArgs* vm_args = reinterpret_cast<JvVMInitArgs *> (args);
+
+ jint result = _Jv_CreateJavaVM (vm_args);
+ if (result)
+ return result;
// FIXME: synchronize
JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
@@ -2506,48 +2515,6 @@ JNI_CreateJavaVM (JavaVM **vm, void **penv, void *args)
return JNI_ERR;
nvm->functions = &_Jv_JNI_InvokeFunctions;
- // Parse the arguments.
- if (args != NULL)
- {
- jint version = * (jint *) args;
- // We only support 1.2 and 1.4.
- if (version != JNI_VERSION_1_2 && version != JNI_VERSION_1_4)
- return JNI_EVERSION;
- JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
- for (int i = 0; i < ia->nOptions; ++i)
- {
- if (! strcmp (ia->options[i].optionString, "vfprintf")
- || ! strcmp (ia->options[i].optionString, "exit")
- || ! strcmp (ia->options[i].optionString, "abort"))
- {
- // We are required to recognize these, but for now we
- // don't handle them in any way. FIXME.
- continue;
- }
- else if (! strncmp (ia->options[i].optionString,
- "-verbose", sizeof ("-verbose") - 1))
- {
- // We don't do anything with this option either. We
- // might want to make sure the argument is valid, but we
- // don't really care all that much for now.
- continue;
- }
- else if (! strncmp (ia->options[i].optionString, "-D", 2))
- {
- // FIXME.
- continue;
- }
- else if (ia->ignoreUnrecognized)
- {
- if (ia->options[i].optionString[0] == '_'
- || ! strncmp (ia->options[i].optionString, "-X", 2))
- continue;
- }
-
- return JNI_ERR;
- }
- }
-
jint r =_Jv_JNI_AttachCurrentThread (nvm, penv, NULL);
if (r < 0)
return r;
diff --git a/libjava/jni/classpath/classpath_jawt.h b/libjava/jni/classpath/classpath_jawt.h
index 51e6af3ea1d..1629505ac5c 100644
--- a/libjava/jni/classpath/classpath_jawt.h
+++ b/libjava/jni/classpath/classpath_jawt.h
@@ -53,6 +53,7 @@
jint classpath_jawt_get_awt_version ();
Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas);
Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas);
+VisualID classpath_jawt_get_visualID (JNIEnv* env, jobject canvas);
jint classpath_jawt_lock ();
void classpath_jawt_unlock ();
diff --git a/libjava/jni/classpath/jcl.c b/libjava/jni/classpath/jcl.c
deleted file mode 100644
index 855c5938563..00000000000
--- a/libjava/jni/classpath/jcl.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* jcl.c
- Copyright (C) 1998, 2004 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. */
-
-#include <stdio.h>
-#include <jcl.h>
-#include <stdlib.h>
-
-#ifndef __GNUC__
-#define __attribute__(x) /* nothing */
-#endif
-
-/*
- * This way the memory is pre-allocated, so that we do not have to worry
- * if we are out of memory.
- */
-static char errstr[4098];
-
-JNIEXPORT void JNICALL JCL_ThrowException(JNIEnv * env, char * className, char * errMsg) {
- jclass excClass;
- if((*env)->ExceptionOccurred(env)) {
- (*env)->ExceptionClear(env);
- }
- excClass = (*env)->FindClass(env, className);
- if(excClass == NULL) {
- jclass errExcClass;
- errExcClass = (*env)->FindClass(env, "java/lang/ClassNotFoundException");
- if(errExcClass == NULL) {
- errExcClass = (*env)->FindClass(env, "java/lang/InternalError");
- if(errExcClass == NULL) {
- sprintf(errstr,"JCL: Utterly failed to throw exeption %s with message %s.",className,errMsg);
- fprintf(stderr, errstr);
- return;
- }
- }
- sprintf(errstr,"JCL: Failed to throw exception %s with message %s: could not find exception class.", className, errMsg);
- (*env)->ThrowNew(env, errExcClass, errstr);
- }
- (*env)->ThrowNew(env, excClass, errMsg);
-}
-
-JNIEXPORT void * JNICALL JCL_malloc(JNIEnv * env, size_t size) {
- void * mem = malloc(size);
- if(mem == NULL) {
- JCL_ThrowException(env, "java/lang/OutOfMemoryError", "malloc() failed.");
- return NULL;
- }
- return mem;
-}
-
-JNIEXPORT void * JNICALL JCL_realloc(JNIEnv *env, void *ptr, size_t size)
-{
- ptr = realloc(ptr, size);
- if (ptr == 0)
- {
- JCL_ThrowException(env, "java/lang/OutOfMemoryError",
- "malloc() failed.");
- return NULL;
- }
- return(ptr);
-}
-
-JNIEXPORT void JNICALL JCL_free(JNIEnv * env __attribute__((unused)),
- void * p)
-{
- if(p != NULL) {
- free(p);
- }
-}
-
-JNIEXPORT char * JNICALL JCL_jstring_to_cstring(JNIEnv * env, jstring s) {
- char* cstr;
- if(s == NULL) {
- JCL_ThrowException(env, "java/lang/NullPointerException","Null string");
- return NULL;
- }
- cstr = (char*)(*env)->GetStringUTFChars(env, s, NULL);
- if(cstr == NULL) {
- JCL_ThrowException(env, "java/lang/InternalError", "GetStringUTFChars() failed.");
- return NULL;
- }
- return cstr;
-}
-
-JNIEXPORT void JNICALL JCL_free_cstring(JNIEnv * env, jstring s, char * cstr) {
- (*env)->ReleaseStringUTFChars(env, s, cstr);
-}
-
-JNIEXPORT jint JNICALL JCL_MonitorEnter(JNIEnv * env, jobject o) {
- jint retval = (*env)->MonitorEnter(env,o);
- if(retval != 0) {
- JCL_ThrowException(env, "java/lang/InternalError", "MonitorEnter() failed.");
- }
- return retval;
-}
-
-JNIEXPORT jint JNICALL JCL_MonitorExit(JNIEnv * env, jobject o) {
- jint retval = (*env)->MonitorExit(env,o);
- if(retval != 0) {
- JCL_ThrowException(env, "java/lang/InternalError", "MonitorExit() failed.");
- }
- return retval;
-}
-
-JNIEXPORT jclass JNICALL JCL_FindClass(JNIEnv * env, char * className) {
- jclass retval = (*env)->FindClass(env,className);
- if(retval == NULL) {
- JCL_ThrowException(env, "java/lang/ClassNotFoundException", className);
- }
- return retval;
-}
diff --git a/libjava/jni/classpath/jcl.h b/libjava/jni/classpath/jcl.h
deleted file mode 100644
index a7d00b47cd3..00000000000
--- a/libjava/jni/classpath/jcl.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* jcl.h
- Copyright (C) 1998 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. */
-
-#ifndef __JCL_H__
-#define __JCL_H__
-
-#include <stddef.h>
-#include <jni.h>
-#include <config.h>
-
-JNIEXPORT jclass JNICALL JCL_FindClass(JNIEnv * env, char * className);
-JNIEXPORT void JNICALL JCL_ThrowException(JNIEnv * env, char * className, char * errMsg);
-JNIEXPORT void * JNICALL JCL_malloc(JNIEnv *env, size_t size);
-JNIEXPORT void * JNICALL JCL_realloc(JNIEnv *env, void *ptr, size_t size);
-JNIEXPORT void JNICALL JCL_free(JNIEnv *env, void * p);
-JNIEXPORT char * JNICALL JCL_jstring_to_cstring(JNIEnv *env, jstring s);
-JNIEXPORT void JNICALL JCL_free_cstring(JNIEnv *env, jstring s, char * cstr);
-JNIEXPORT jint JNICALL JCL_MonitorEnter(JNIEnv *env, jobject o);
-JNIEXPORT jint JNICALL JCL_MonitorExit(JNIEnv *env, jobject o);
-
-#define JCL_RETHROW_EXCEPTION(env) if((*(env))->ExceptionOccurred((env)) != NULL) return NULL;
-
-/* Simple debug macro */
-#ifdef DEBUG
-#define DBG(x) fprintf(stderr, (x));
-#else
-#define DBG(x)
-#endif
-
-#endif
diff --git a/libjava/jni/classpath/jnilink.c b/libjava/jni/classpath/jnilink.c
deleted file mode 100644
index d92654161c8..00000000000
--- a/libjava/jni/classpath/jnilink.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* JNILINK 1.1: JNI version.
- Copyright (C) 1998, 2004 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. */
-
-
-#include "jnilink.h"
-#include <string.h>
-#include <jcl.h>
-
-#include <stdlib.h>
-
-#define GETCLASS(c) *(jclass*)(c)
-
-JNIEXPORT jclass JNICALL
-LINK_RelinkClass (JNIEnv * env, linkedClass * c, char * name) {
- jclass found;
- LINK_UnlinkClass(env,*c);
-
- found = (*env)->FindClass(env,name);
- if(found == NULL)
- return NULL;
-
- *c = JCL_malloc(env,sizeof(jclass));
- if(*c == NULL)
- return NULL;
-
- GETCLASS(*c) = (*env)->NewGlobalRef(env,found);
- return GETCLASS(*c);
-}
-
-JNIEXPORT jclass JNICALL
-LINK_RelinkKnownClass(JNIEnv * env, linkedClass * c, jclass newClass) {
- LINK_UnlinkClass(env,*c);
-
- *c = JCL_malloc(env,sizeof(jclass));
- if(*c == NULL)
- return NULL;
-
- GETCLASS(*c) = (*env)->NewGlobalRef(env,newClass);
- return newClass;
-}
-
-JNIEXPORT jmethodID JNICALL
-LINK_RelinkMethod (JNIEnv * env, jmethodID * m, linkedClass c,
- char * name, char * sig) {
- *m = (*env)->GetMethodID(env,GETCLASS(c),name,sig);
- return *m;
-}
-
-JNIEXPORT jmethodID JNICALL
-LINK_RelinkStaticMethod(JNIEnv * env, jmethodID * m, linkedClass c,
- char * name, char * sig) {
- *m = (*env)->GetStaticMethodID(env,GETCLASS(c),name,sig);
- return *m;
-}
-
-JNIEXPORT jfieldID JNICALL
-LINK_RelinkField (JNIEnv * env, jfieldID * f, linkedClass c,
- char * name, char * sig) {
- *f = (*env)->GetFieldID(env,GETCLASS(c),name,sig);
- return *f;
-}
-
-JNIEXPORT jfieldID JNICALL
-LINK_RelinkStaticField (JNIEnv * env, jfieldID * f, linkedClass c,
- char * name, char * sig) {
- *f = (*env)->GetStaticFieldID(env,GETCLASS(c),name,sig);
- return *f;
-}
-
-
-/* These are for when the class referencing the symbols is unloaded; it
-destroys any object references
- * the linker might have kept around.
- */
-JNIEXPORT void JNICALL LINK_UnlinkClass (JNIEnv * env, linkedClass * c) {
- if(*c != NULL) {
- if(GETCLASS(*c) != NULL)
- (*env)->DeleteGlobalRef(env,GETCLASS(*c));
- JCL_free(env,*c);
- *c = NULL;
- }
-}
-
diff --git a/libjava/jni/classpath/jnilink.h b/libjava/jni/classpath/jnilink.h
deleted file mode 100644
index 448e2b5dfdd..00000000000
--- a/libjava/jni/classpath/jnilink.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* JNILINK 1.1: JNI version.
- Copyright (C) 1998 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. */
-
-
-#ifndef __JNILINK_H__
-#define __JNILINK_H__
-
-#include <jni.h>
-
-typedef void* linkedClass;
-
-#define LINK_LinkClass(env,c,name) ((c)==NULL ? LINK_ReallyLinkClass((env),&(c),(name)) : (c))
-#define LINK_LinkKnownClass(env,c,newClass) ((c)==NULL ? LINK_ReallyLinkKnownClass((env),&(c),(newClass)) : (c))
-#define LINK_LinkMethod(env,m,c,name,sig) ((m)==NULL ? LINK_RelinkMethod((env),&(m),(c),(name),(sig)) : (m))
-#define LINK_LinkStaticMethod(env,m,c,name,sig) ((m)==NULL ? LINK_RelinkStaticMethod((env),&(m),(c),(name),(sig)) : (m))
-#define LINK_LinkField(env,f,c,name,sig) ((m)==NULL ? LINK_RelinkField((env),&(f),(c),(name),(sig)) : (f))
-#define LINK_LinkStaticField(env,f,c,name,sig) ((m)==NULL ? LINK_RelinkStaticField((env),&(f),(c),(name),(sig)) : (f))
-
-#define LINK_LinkConstructor(env,m,c,sig) ((m)==NULL ? LINK_RelinkMethod((env),&(m),(c),"<init>",(sig)) : (m))
-
-JNIEXPORT jclass JNICALL
-LINK_ReallyLinkClass (JNIEnv * env, linkedClass * c,
- char * name);
-JNIEXPORT jclass JNICALL
-LINK_ReallyLinkKnownClass(JNIEnv * env, linkedClass * c,
- jclass newClass);
-JNIEXPORT jclass JNICALL
-LINK_RelinkClass (JNIEnv * env, linkedClass * c,
- char * name);
-JNIEXPORT jclass JNICALL
-LINK_RelinkKnownClass (JNIEnv * env, linkedClass * c,
- jclass newClass);
-JNIEXPORT jmethodID JNICALL
-LINK_RelinkMethod (JNIEnv * env, jmethodID * m, linkedClass c,
- char * name, char * sig);
-JNIEXPORT jmethodID JNICALL
-LINK_RelinkStaticMethod(JNIEnv * env, jmethodID * m, linkedClass c,
- char * name, char * sig);
-JNIEXPORT jfieldID JNICALL
-LINK_RelinkField (JNIEnv * env, jfieldID * f, linkedClass c,
- char * name, char * sig);
-JNIEXPORT jfieldID JNICALL
-LINK_RelinkStaticField (JNIEnv * env, jfieldID * f, linkedClass c,
- char * name, char * sig);
-
-/* These are for when the class referencing the symbols is unloaded; it
-destroys any object references
- * the linker might have kept around.
- */
-JNIEXPORT void JNICALL LINK_UnlinkClass (JNIEnv * env, linkedClass * c);
-
-#endif
diff --git a/libjava/jni/classpath/primlib.c b/libjava/jni/classpath/primlib.c
deleted file mode 100644
index c7396e2a9a7..00000000000
--- a/libjava/jni/classpath/primlib.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/* primlib.c
- Copyright (C) 1998 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. */
-
-#include <jnilink.h>
-#include <primlib.h>
-#include <jcl.h>
-
-static jclass nativeWrapClass[PRIMLIB_NUMTYPES] = {NULL,NULL,NULL, NULL,NULL,NULL,
- NULL,NULL,NULL, NULL,NULL,NULL};
-
-static jclass nativeTypeClass[PRIMLIB_NUMTYPES] = {NULL,NULL,NULL, NULL,NULL,NULL,
- NULL,NULL,NULL, NULL,NULL,NULL};
-
-static jmethodID nativeWrapClassConstructor[PRIMLIB_NUMTYPES] = {NULL,NULL,NULL, NULL,NULL,NULL,
- NULL,NULL,NULL, NULL,NULL,NULL};
-
-static jmethodID nativeWrapClassAccessor[PRIMLIB_NUMTYPES] = {NULL,NULL,NULL, NULL,NULL,NULL,
- NULL,NULL,NULL, NULL,NULL,NULL};
-
-static char * nativeWrapClassName[PRIMLIB_NUMTYPES] = {
- NULL,
- NULL,
- "java/lang/Boolean",
- "java/lang/Byte",
- "java/lang/Character",
- "java/lang/Short",
- "java/lang/Integer",
- "java/lang/Long",
- "java/lang/Float",
- "java/lang/Double",
- "java/lang/Void",
- NULL
- };
-
-static char * nativeWrapClassConstructorSig[PRIMLIB_NUMTYPES] = {
- NULL,
- NULL,
- "(Z)V",
- "(B)V",
- "(C)V",
- "(S)V",
- "(I)V",
- "(J)V",
- "(F)V",
- "(D)V",
- "()V",
- NULL
- };
-
-static char * nativeWrapClassAccessorName[PRIMLIB_NUMTYPES] = {
- NULL,
- NULL,
- "booleanValue",
- "byteValue",
- "charValue",
- "shortValue",
- "intValue",
- "longValue",
- "floatValue",
- "doubleValue",
- NULL,
- NULL
-};
-
-static char * nativeWrapClassAccessorSig[PRIMLIB_NUMTYPES] = {
- NULL,
- NULL,
- "()Z",
- "()B",
- "()C",
- "()S",
- "()I",
- "()J",
- "()F",
- "()D",
- NULL,
- NULL
-};
-
-
-JNIEXPORT jclass JNICALL PRIMLIB_GetNativeWrapClass(JNIEnv * env, int reflectType) {
- return LINK_LinkClass(env,nativeWrapClass[reflectType],nativeWrapClassName[reflectType]);
-}
-
-static jclass ActuallyGetNativeTypeClass(JNIEnv * env, int reflectType) {
- jclass wrapClass;
- jfieldID typeField;
-
- wrapClass = PRIMLIB_GetNativeWrapClass(env, reflectType);
- if(wrapClass == NULL)
- return NULL;
- typeField = (*env)->GetStaticFieldID(env, wrapClass, "TYPE", "Ljava/lang/Class");
- if(typeField == NULL)
- return NULL;
- return (*env)->GetStaticObjectField(env, wrapClass, typeField);
-}
-
-JNIEXPORT jclass JNICALL PRIMLIB_GetNativeTypeClass(JNIEnv * env, int reflectType) {
- return LINK_LinkKnownClass(env, nativeTypeClass[reflectType], ActuallyGetNativeTypeClass(env,reflectType));
-}
-
-JNIEXPORT jmethodID JNICALL PRIMLIB_GetNativeWrapClassConstructor(JNIEnv * env, int reflectType) {
- PRIMLIB_GetNativeWrapClass(env,reflectType);
- return LINK_LinkConstructor(env, nativeWrapClassConstructor[reflectType], nativeWrapClass[reflectType], nativeWrapClassConstructorSig[reflectType]);
-}
-
-JNIEXPORT jmethodID JNICALL PRIMLIB_GetNativeWrapClassAccessor(JNIEnv * env, int reflectType) {
- PRIMLIB_GetNativeWrapClass(env,reflectType);
- return LINK_LinkMethod(env, nativeWrapClassAccessor[reflectType], nativeWrapClass[reflectType], nativeWrapClassAccessorName[reflectType], nativeWrapClassAccessorSig[reflectType]);
-}
-
-
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapBoolean(JNIEnv * env, jboolean b) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_BOOLEAN);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BOOLEAN), construct, b);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapByte (JNIEnv * env, jbyte b) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_BYTE);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE), construct, b);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapChar (JNIEnv * env, jchar c) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_CHAR);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR), construct, c);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapShort (JNIEnv * env, jshort s) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_SHORT);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT), construct, s);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapInt (JNIEnv * env, jint i) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_INT);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_INT), construct, i);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapLong (JNIEnv * env, jlong l) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_LONG);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_LONG), construct, l);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapFloat (JNIEnv * env, jfloat f) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_FLOAT);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_FLOAT), construct, f);
-}
-
-JNIEXPORT jobject JNICALL PRIMLIB_WrapDouble (JNIEnv * env, jdouble d) {
- jmethodID construct = PRIMLIB_GetNativeWrapClassConstructor(env, PRIMLIB_DOUBLE);
- JCL_RETHROW_EXCEPTION(env);
- return (*env)->NewObject(env, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_DOUBLE), construct, d);
-}
-
-
-JNIEXPORT jboolean JNICALL PRIMLIB_UnwrapBoolean(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BOOLEAN))) {
- return PRIMLIB_GetBooleanObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return JNI_FALSE;
- }
-}
-
-JNIEXPORT jbyte JNICALL PRIMLIB_UnwrapByte(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE))) {
- return PRIMLIB_GetByteObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jshort JNICALL PRIMLIB_UnwrapShort(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT))) {
- return PRIMLIB_GetShortObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE))) {
- return (jshort)PRIMLIB_GetByteObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jchar JNICALL PRIMLIB_UnwrapChar(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR))) {
- return PRIMLIB_GetCharObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jint JNICALL PRIMLIB_UnwrapInt(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_INT))) {
- return PRIMLIB_GetIntObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT))) {
- return (jint)PRIMLIB_GetShortObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR))) {
- return (jint)PRIMLIB_GetCharObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE))) {
- return (jint)PRIMLIB_GetByteObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jlong JNICALL PRIMLIB_UnwrapLong(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_LONG))) {
- return PRIMLIB_GetLongObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_INT))) {
- return (jlong)PRIMLIB_GetIntObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT))) {
- return (jlong)PRIMLIB_GetShortObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR))) {
- return (jlong)PRIMLIB_GetCharObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE))) {
- return (jlong)PRIMLIB_GetByteObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jfloat JNICALL PRIMLIB_UnwrapFloat(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_FLOAT))) {
- return PRIMLIB_GetFloatObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_LONG))) {
- return (jfloat)PRIMLIB_GetLongObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_INT))) {
- return (jfloat)PRIMLIB_GetIntObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT))) {
- return (jfloat)PRIMLIB_GetShortObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR))) {
- return (jfloat)PRIMLIB_GetCharObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE))) {
- return (jfloat)PRIMLIB_GetByteObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jdouble JNICALL PRIMLIB_UnwrapDouble(JNIEnv * env, jobject obj) {
- if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_DOUBLE))) {
- return PRIMLIB_GetDoubleObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_FLOAT))) {
- return (jdouble)PRIMLIB_GetFloatObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_LONG))) {
- return (jdouble)PRIMLIB_GetLongObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_INT))) {
- return (jdouble)PRIMLIB_GetIntObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT))) {
- return (jdouble)PRIMLIB_GetShortObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR))) {
- return (jdouble)PRIMLIB_GetCharObjectValue(env, obj);
- } else if((*env)->IsInstanceOf(env, obj, PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE))) {
- return (jdouble)PRIMLIB_GetByteObjectValue(env, obj);
- } else {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct type.");
- return 0;
- }
-}
-
-JNIEXPORT jint JNICALL PRIMLIB_GetReflectiveWrapperType(JNIEnv * env, jobject obj) {
- jclass typeClass;
- if(obj == NULL) {
- return PRIMLIB_NULL;
- }
-
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_DOUBLE);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_DOUBLE;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_FLOAT);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_FLOAT;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_LONG);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_LONG;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_INT);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_INT;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_CHAR);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_CHAR;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_SHORT);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_SHORT;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BYTE);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_BYTE;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_BOOLEAN);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_BOOLEAN;
- }
- typeClass = PRIMLIB_GetNativeWrapClass(env, PRIMLIB_VOID);
- if((*env)->IsInstanceOf(env, obj, typeClass)) {
- return PRIMLIB_VOID;
- }
- return PRIMLIB_OBJECT;
-}
-
-JNIEXPORT jint JNICALL PRIMLIB_GetReflectiveType(JNIEnv * env, jclass returnType) {
- jclass typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_DOUBLE);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_DOUBLE;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_FLOAT);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_FLOAT;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_LONG);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_LONG;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_INT);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_INT;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_CHAR);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_CHAR;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_SHORT);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_SHORT;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_BYTE);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_BYTE;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_BOOLEAN);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_BOOLEAN;
- }
- typeClass = PRIMLIB_GetNativeTypeClass(env, PRIMLIB_VOID);
- if((*env)->IsAssignableFrom(env, returnType, typeClass)) {
- return PRIMLIB_VOID;
- }
- return PRIMLIB_OBJECT;
-}
-
-
-JNIEXPORT jboolean JNICALL PRIMLIB_GetBooleanObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_BOOLEAN);
- return (*env)->CallBooleanMethod(env, obj, acc);
-}
-
-JNIEXPORT jbyte JNICALL PRIMLIB_GetByteObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_BYTE);
- return (*env)->CallByteMethod(env, obj, acc);
-}
-
-JNIEXPORT jshort JNICALL PRIMLIB_GetShortObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_SHORT);
- return (*env)->CallShortMethod(env, obj, acc);
-}
-
-JNIEXPORT jchar JNICALL PRIMLIB_GetCharObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_CHAR);
- return (*env)->CallCharMethod(env, obj, acc);
-}
-
-JNIEXPORT jint JNICALL PRIMLIB_GetIntObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_INT);
- return (*env)->CallIntMethod(env, obj, acc);
-}
-
-JNIEXPORT jlong JNICALL PRIMLIB_GetLongObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_LONG);
- return (*env)->CallLongMethod(env, obj, acc);
-}
-
-JNIEXPORT jfloat JNICALL PRIMLIB_GetFloatObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_FLOAT);
- return (*env)->CallFloatMethod(env, obj, acc);
-}
-
-JNIEXPORT jdouble JNICALL PRIMLIB_GetDoubleObjectValue(JNIEnv * env, jobject obj) {
- jmethodID acc = PRIMLIB_GetNativeWrapClassAccessor(env, PRIMLIB_DOUBLE);
- return (*env)->CallDoubleMethod(env, obj, acc);
-}
-
-
-
-JNIEXPORT jvalue JNICALL PRIMLIB_UnwrapJValue(JNIEnv* env, jobject obj, jclass classType) {
- jvalue retval;
- jint objType = PRIMLIB_GetReflectiveType(env, classType);
- if(objType == PRIMLIB_BOOLEAN) {
- retval.z = PRIMLIB_UnwrapBoolean(env,obj);
- } else if(objType == PRIMLIB_BYTE) {
- retval.b = PRIMLIB_UnwrapByte(env,obj);
- } else if(objType == PRIMLIB_CHAR) {
- retval.c = PRIMLIB_UnwrapChar(env,obj);
- } else if(objType == PRIMLIB_SHORT) {
- retval.s = PRIMLIB_UnwrapShort(env,obj);
- } else if(objType == PRIMLIB_INT) {
- retval.i = PRIMLIB_UnwrapInt(env,obj);
- } else if(objType == PRIMLIB_LONG) {
- retval.j = PRIMLIB_UnwrapLong(env,obj);
- } else if(objType == PRIMLIB_FLOAT) {
- retval.f = PRIMLIB_UnwrapFloat(env,obj);
- } else if(objType == PRIMLIB_DOUBLE) {
- retval.d = PRIMLIB_UnwrapDouble(env,obj);
- } else {
- if(obj != NULL && !(*env)->IsInstanceOf(env, obj, classType)) {
- JCL_ThrowException(env, "java/lang/IllegalArgumentException", "Argument not of correct object type.");
- return retval;
- }
- retval.l = obj;
- }
- return retval;
-}
-
diff --git a/libjava/jni/classpath/primlib.h b/libjava/jni/classpath/primlib.h
deleted file mode 100644
index 12f3bae9185..00000000000
--- a/libjava/jni/classpath/primlib.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* primlib.h
- Copyright (C) 1998 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. */
-
-#ifndef __PRIMLIB_H__
-#define __PRIMLIB_H__
-
-#include <jni.h>
-
-#define PRIMLIB_UNKNOWN 0
-#define PRIMLIB_OBJECT 1
-#define PRIMLIB_BOOLEAN 2
-#define PRIMLIB_BYTE 3
-#define PRIMLIB_CHAR 4
-#define PRIMLIB_SHORT 5
-#define PRIMLIB_INT 6
-#define PRIMLIB_LONG 7
-#define PRIMLIB_FLOAT 8
-#define PRIMLIB_DOUBLE 9
-#define PRIMLIB_VOID 10
-#define PRIMLIB_NULL 11
-#define PRIMLIB_NUMTYPES 12
-
-/* Low-level primitive class accessor functions. */
-JNIEXPORT jclass JNICALL PRIMLIB_GetNativeWrapClass(JNIEnv * env, int reflectType);
-JNIEXPORT jclass JNICALL PRIMLIB_GetNativeTypeClass(JNIEnv * env, int reflectType);
-JNIEXPORT jmethodID JNICALL PRIMLIB_GetNativeWrapClassConstructor(JNIEnv * env, int reflectType);
-JNIEXPORT jmethodID JNICALL PRIMLIB_GetNativeWrapClassAccessor(JNIEnv * env, int reflectType);
-
-/* Type discovery functions: WrapperType finds out j.l.Boolean/Byte/etc., and
- Type finds out j.l.Boolean.TYPE, etc.
-*/
-JNIEXPORT jint JNICALL PRIMLIB_GetReflectiveWrapperType(JNIEnv * env, jobject obj);
-JNIEXPORT jint JNICALL PRIMLIB_GetReflectiveType(JNIEnv * env, jclass returnType);
-
-/* Constructor functions. */
-JNIEXPORT jobject JNICALL PRIMLIB_WrapBoolean(JNIEnv * env, jboolean b);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapByte (JNIEnv * env, jbyte b);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapChar (JNIEnv * env, jchar c);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapShort (JNIEnv * env, jshort s);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapInt (JNIEnv * env, jint i);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapLong (JNIEnv * env, jlong l);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapFloat (JNIEnv * env, jfloat f);
-JNIEXPORT jobject JNICALL PRIMLIB_WrapDouble (JNIEnv * env, jdouble d);
-
-/* Widening conversion unwrapping functions. */
-JNIEXPORT jboolean JNICALL PRIMLIB_UnwrapBoolean(JNIEnv * env, jobject obj);
-JNIEXPORT jbyte JNICALL PRIMLIB_UnwrapByte (JNIEnv * env, jobject obj);
-JNIEXPORT jshort JNICALL PRIMLIB_UnwrapShort (JNIEnv * env, jobject obj);
-JNIEXPORT jchar JNICALL PRIMLIB_UnwrapChar (JNIEnv * env, jobject obj);
-JNIEXPORT jint JNICALL PRIMLIB_UnwrapInt (JNIEnv * env, jobject obj);
-JNIEXPORT jlong JNICALL PRIMLIB_UnwrapLong (JNIEnv * env, jobject obj);
-JNIEXPORT jfloat JNICALL PRIMLIB_UnwrapFloat (JNIEnv * env, jobject obj);
-JNIEXPORT jdouble JNICALL PRIMLIB_UnwrapDouble (JNIEnv * env, jobject obj);
-
-/* Simple unwrapping functions. Objects *must* be of correct type. */
-JNIEXPORT jboolean JNICALL PRIMLIB_GetBooleanObjectValue(JNIEnv * env, jobject obj);
-JNIEXPORT jbyte JNICALL PRIMLIB_GetByteObjectValue (JNIEnv * env, jobject obj);
-JNIEXPORT jshort JNICALL PRIMLIB_GetShortObjectValue (JNIEnv * env, jobject obj);
-JNIEXPORT jchar JNICALL PRIMLIB_GetCharObjectValue (JNIEnv * env, jobject obj);
-JNIEXPORT jint JNICALL PRIMLIB_GetIntObjectValue (JNIEnv * env, jobject obj);
-JNIEXPORT jlong JNICALL PRIMLIB_GetLongObjectValue (JNIEnv * env, jobject obj);
-JNIEXPORT jfloat JNICALL PRIMLIB_GetFloatObjectValue (JNIEnv * env, jobject obj);
-JNIEXPORT jdouble JNICALL PRIMLIB_GetDoubleObjectValue (JNIEnv * env, jobject obj);
-
-/* jvalue conversion: Unwrap obj to the type of classType, with widening conversion. */
-JNIEXPORT jvalue JNICALL PRIMLIB_UnwrapJValue(JNIEnv* env, jobject obj, jclass classType);
-
-#endif
diff --git a/libjava/jni/gtk-peer/gdkfont.h b/libjava/jni/gtk-peer/gdkfont.h
index 792cee4f1cf..3370152e4e3 100644
--- a/libjava/jni/gtk-peer/gdkfont.h
+++ b/libjava/jni/gtk-peer/gdkfont.h
@@ -102,6 +102,21 @@ extern struct state_table *native_text_layout_state_table;
#define TEXT_METRICS_Y_ADVANCE 5
#define NUM_TEXT_METRICS 6
+#define NUM_GLYPH_METRICS 10
+
+#define GLYPH_LOG_X(i) (NUM_GLYPH_METRICS * (i) )
+#define GLYPH_LOG_Y(i) (NUM_GLYPH_METRICS * (i) + 1)
+#define GLYPH_LOG_WIDTH(i) (NUM_GLYPH_METRICS * (i) + 2)
+#define GLYPH_LOG_HEIGHT(i) (NUM_GLYPH_METRICS * (i) + 3)
+
+#define GLYPH_INK_X(i) (NUM_GLYPH_METRICS * (i) + 4)
+#define GLYPH_INK_Y(i) (NUM_GLYPH_METRICS * (i) + 5)
+#define GLYPH_INK_WIDTH(i) (NUM_GLYPH_METRICS * (i) + 6)
+#define GLYPH_INK_HEIGHT(i) (NUM_GLYPH_METRICS * (i) + 7)
+
+#define GLYPH_POS_X(i) (NUM_GLYPH_METRICS * (i) + 8)
+#define GLYPH_POS_Y(i) (NUM_GLYPH_METRICS * (i) + 9)
+
struct peerfont
{
PangoFont *font;
@@ -119,16 +134,6 @@ struct peerfont
void *graphics_resource;
};
-struct glyphvec
-{
- /* the GList is list of PangoGlyphItems, each of which is a pair of 1
- PangoItem and 1 PangoGlyphString. */
- GList *glyphitems;
- PangoFontDescription *desc;
- PangoFont *font;
- PangoContext *ctx;
-};
-
struct textlayout
{
PangoLayout *pango_layout;
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
index c94e6647850..7787eb4c47a 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
@@ -49,7 +49,7 @@ exception statement from your version. */
*/
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_nativeRun
- (JNIEnv *gdk_env __attribute__((unused)),
+ (JNIEnv *env __attribute__((unused)),
jobject lcl_obj __attribute__((unused)),
jlong funcAddr, jlong funcArg)
{
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
deleted file mode 100644
index 52489386839..00000000000
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* gdkfontmetrics.c
- Copyright (C) 1999, 2003, 2004 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. */
-
-#include "gtkpeer.h"
-#include "gdkfont.h"
-
-#include "gnu_java_awt_peer_gtk_GdkFontMetrics.h"
-#include <gdk/gdkx.h>
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerFontMetrics
- (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font, jdoubleArray java_metrics)
-{
- struct peerfont *pfont = NULL;
- jdouble *native_metrics = NULL;
- PangoFontMetrics *pango_metrics;
-
- gdk_threads_enter();
-
- pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
- g_assert (pfont != NULL);
-
- pango_metrics = pango_context_get_metrics (pfont->ctx, pfont->desc,
- gtk_get_default_language ());
-
- native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
- g_assert (native_metrics != NULL);
-
- native_metrics[FONT_METRICS_ASCENT] = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics));
- native_metrics[FONT_METRICS_MAX_ASCENT] = native_metrics[FONT_METRICS_ASCENT];
- native_metrics[FONT_METRICS_DESCENT] = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics));
- if (native_metrics[FONT_METRICS_DESCENT] < 0)
- native_metrics[FONT_METRICS_DESCENT] = - native_metrics[FONT_METRICS_DESCENT];
- native_metrics[FONT_METRICS_MAX_DESCENT] = native_metrics[FONT_METRICS_DESCENT];
- native_metrics[FONT_METRICS_MAX_ADVANCE] = PANGO_PIXELS (pango_font_metrics_get_approximate_char_width (pango_metrics));
-
- (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
-
- pango_font_metrics_unref (pango_metrics);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerTextMetrics
- (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font, jstring str, jdoubleArray java_metrics)
-{
- struct peerfont *pfont = NULL;
- const char *cstr = NULL;
- jdouble *native_metrics = NULL;
- PangoRectangle log;
-
- gdk_threads_enter();
-
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
- g_assert (pfont != NULL);
-
- cstr = (*env)->GetStringUTFChars (env, str, NULL);
- g_assert(cstr != NULL);
-
- pango_layout_set_text (pfont->layout, cstr, -1);
- pango_layout_get_extents (pfont->layout, NULL, &log);
-
- (*env)->ReleaseStringUTFChars (env, str, cstr);
- pango_layout_set_text (pfont->layout, "", -1);
-
- native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
- g_assert (native_metrics != NULL);
-
- native_metrics[TEXT_METRICS_X_BEARING] = PANGO_PIXELS(log.x);
- native_metrics[TEXT_METRICS_Y_BEARING] = PANGO_PIXELS(log.y);
- native_metrics[TEXT_METRICS_WIDTH] = PANGO_PIXELS(log.width);
- native_metrics[TEXT_METRICS_HEIGHT] = PANGO_PIXELS(log.height);
- native_metrics[TEXT_METRICS_X_ADVANCE] = PANGO_PIXELS(log.x + log.width);
- native_metrics[TEXT_METRICS_Y_ADVANCE] = PANGO_PIXELS(log.y + log.height);
-
- (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
-
- gdk_threads_leave();
-}
-
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
index d9926532bfb..7a8a2ceefd8 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
@@ -40,23 +40,6 @@
struct state_table *native_font_state_table;
-/*
-rough sketch of the mapping between java and
-pango text objects:
-
- Font <-> - PangoFont
- - PangoFontDescription
- - PangoContext
- - PangoLayout (for rendering and measuring)
-
- GlyphVector <-> - GList of PangoGlyphItem
- - PangoFontDescription
- - PangoContext
-
- FontRenderContext <-> stays in plain java
-
-*/
-
enum java_awt_font_style {
java_awt_font_PLAIN = 0,
java_awt_font_BOLD = 1,
@@ -69,11 +52,22 @@ enum java_awt_font_baseline {
java_awt_font_HANGING_BASELINE = 2
};
+static jmethodID glyphVector_ctor;
+static jclass glyphVector_class;
+static PangoAttrList *attrs = NULL;
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState
(JNIEnv *env, jclass clazz)
{
NSA_FONT_INIT (env, clazz);
+
+ glyphVector_class = (*env)->FindClass
+ (env, "gnu/java/awt/peer/gtk/GdkGlyphVector");
+
+ glyphVector_ctor = (*env)->GetMethodID
+ (env, glyphVector_class, "<init>",
+ "([D[ILjava/awt/Font;Ljava/awt/font/FontRenderContext;)V");
}
JNIEXPORT void JNICALL
@@ -111,6 +105,223 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose
gdk_threads_leave ();
}
+
+JNIEXPORT jobject JNICALL
+Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector
+ (JNIEnv *env, jobject self,
+ jstring chars,
+ jobject font,
+ jobject fontRenderContext)
+{
+ struct peerfont *pfont = NULL;
+ GList *items = NULL, *i = NULL;
+ gchar *str = NULL;
+ int len, j;
+ double *native_extents;
+ int *native_codes;
+ jintArray java_codes = NULL;
+ jdoubleArray java_extents = NULL;
+
+ gdk_threads_enter ();
+
+ pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self);
+ g_assert (pfont != NULL);
+
+ len = (*gdk_env())->GetStringUTFLength (env, chars);
+ str = (gchar *)(*env)->GetStringUTFChars (env, chars, NULL);
+ g_assert (str != NULL);
+
+ if (attrs == NULL)
+ attrs = pango_attr_list_new ();
+
+ if (len > 0 && str[len-1] == '\0')
+ len--;
+
+ items = pango_itemize (pfont->ctx, str, 0, len, attrs, NULL);
+
+ i = g_list_first (items);
+
+ if (i == NULL)
+ {
+ java_extents = (*env)->NewDoubleArray (env, 0);
+ java_codes = (*env)->NewIntArray (env, 0);
+ }
+ else
+ {
+ PangoGlyphString *glyphs;
+ PangoItem *item = (PangoItem *)i->data;
+
+ pango_context_set_font_description (pfont->ctx, pfont->desc);
+ pango_context_set_language (pfont->ctx, gtk_get_default_language());
+ pango_context_load_font (pfont->ctx, pfont->desc);
+
+ glyphs = pango_glyph_string_new ();
+ g_assert (glyphs != NULL);
+
+ pango_shape (str + item->offset, item->length,
+ &(item->analysis), glyphs);
+
+ if (glyphs->num_glyphs > 0)
+ {
+ int x = 0;
+ double scale = ((double) PANGO_SCALE);
+
+ java_extents = (*env)->NewDoubleArray (env, glyphs->num_glyphs * NUM_GLYPH_METRICS);
+ java_codes = (*env)->NewIntArray (env, glyphs->num_glyphs);
+ native_extents = (*env)->GetDoubleArrayElements (env, java_extents, NULL);
+ native_codes = (*env)->GetIntArrayElements (env, java_codes, NULL);
+
+ for (j = 0; j < glyphs->num_glyphs; ++j)
+ {
+ PangoRectangle ink;
+ PangoRectangle logical;
+ PangoGlyphGeometry *geom = &glyphs->glyphs[j].geometry;
+
+ pango_font_get_glyph_extents (pfont->font,
+ glyphs->glyphs[j].glyph,
+ &ink, &logical);
+
+ native_codes[j] = glyphs->glyphs[j].glyph;
+
+ native_extents[ GLYPH_LOG_X(j) ] = (logical.x) / scale;
+ native_extents[ GLYPH_LOG_Y(j) ] = (- logical.y) / scale;
+ native_extents[ GLYPH_LOG_WIDTH(j) ] = (logical.width) / scale;
+ native_extents[ GLYPH_LOG_HEIGHT(j) ] = (logical.height) / scale;
+
+ native_extents[ GLYPH_INK_X(j) ] = (ink.x) / scale;
+ native_extents[ GLYPH_INK_Y(j) ] = (- ink.y) / scale;
+ native_extents[ GLYPH_INK_WIDTH(j) ] = (ink.width) / scale;
+ native_extents[ GLYPH_INK_HEIGHT(j) ] = (ink.height) / scale;
+
+ native_extents[ GLYPH_POS_X(j) ] = (x + geom->x_offset) / scale;
+ native_extents[ GLYPH_POS_Y(j) ] = ( - geom->y_offset) / scale;
+
+ x += geom->width;
+ }
+ (*env)->ReleaseDoubleArrayElements (env, java_extents, native_extents, 0);
+ (*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
+ }
+
+ pango_glyph_string_free (glyphs);
+ }
+
+ (*env)->ReleaseStringUTFChars (env, chars, str);
+
+ for (i = g_list_first (items); i != NULL; i = g_list_next (i))
+ g_free (i->data);
+
+ g_list_free (items);
+
+ gdk_threads_leave ();
+
+ return (*env)->NewObject (env,
+ glyphVector_class,
+ glyphVector_ctor,
+ java_extents, java_codes,
+ font, fontRenderContext);
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics
+ (JNIEnv *env, jobject java_font, jdoubleArray java_metrics)
+{
+ struct peerfont *pfont = NULL;
+ jdouble *native_metrics = NULL;
+ PangoFontMetrics *pango_metrics;
+
+ gdk_threads_enter();
+
+ pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
+ g_assert (pfont != NULL);
+
+ pango_metrics
+ = pango_context_get_metrics (pfont->ctx, pfont->desc,
+ gtk_get_default_language ());
+
+ native_metrics
+ = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
+
+ g_assert (native_metrics != NULL);
+
+ native_metrics[FONT_METRICS_ASCENT]
+ = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics));
+
+ native_metrics[FONT_METRICS_MAX_ASCENT]
+ = native_metrics[FONT_METRICS_ASCENT];
+
+ native_metrics[FONT_METRICS_DESCENT]
+ = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics));
+
+ if (native_metrics[FONT_METRICS_DESCENT] < 0)
+ native_metrics[FONT_METRICS_DESCENT]
+ = - native_metrics[FONT_METRICS_DESCENT];
+
+ native_metrics[FONT_METRICS_MAX_DESCENT]
+ = native_metrics[FONT_METRICS_DESCENT];
+
+ native_metrics[FONT_METRICS_MAX_ADVANCE]
+ = PANGO_PIXELS (pango_font_metrics_get_approximate_char_width
+ (pango_metrics));
+
+ (*env)->ReleaseDoubleArrayElements (env,
+ java_metrics,
+ native_metrics, 0);
+
+ pango_font_metrics_unref (pango_metrics);
+
+ gdk_threads_leave();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
+ (JNIEnv *env, jobject java_font, jstring str, jdoubleArray java_metrics)
+{
+ struct peerfont *pfont = NULL;
+ const char *cstr = NULL;
+ jdouble *native_metrics = NULL;
+ PangoRectangle log;
+
+ gdk_threads_enter();
+
+ pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
+ g_assert (pfont != NULL);
+
+ cstr = (*env)->GetStringUTFChars (env, str, NULL);
+ g_assert(cstr != NULL);
+
+ pango_layout_set_text (pfont->layout, cstr, -1);
+ pango_layout_get_extents (pfont->layout, NULL, &log);
+
+ (*env)->ReleaseStringUTFChars (env, str, cstr);
+ pango_layout_set_text (pfont->layout, "", -1);
+
+ native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
+ g_assert (native_metrics != NULL);
+
+ native_metrics[TEXT_METRICS_X_BEARING]
+ = PANGO_PIXELS( ((double)log.x) );
+
+ native_metrics[TEXT_METRICS_Y_BEARING]
+ = PANGO_PIXELS( ((double)log.y) );
+
+ native_metrics[TEXT_METRICS_WIDTH]
+ = PANGO_PIXELS( ((double)log.width) );
+
+ native_metrics[TEXT_METRICS_HEIGHT]
+ = PANGO_PIXELS( ((double)log.height) );
+
+ native_metrics[TEXT_METRICS_X_ADVANCE]
+ = PANGO_PIXELS( ((double) (log.x + log.width)) );
+
+ native_metrics[TEXT_METRICS_Y_ADVANCE]
+ = PANGO_PIXELS( ((double) (log.y + log.height)) );
+
+ (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
+
+ gdk_threads_leave();
+}
+
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
(JNIEnv *env, jobject self, jstring family_name_str, jint style_int, jint size, jboolean useGraphics2D)
@@ -142,7 +353,6 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
pango_font_description_set_family (pfont->desc, family_name);
(*env)->ReleaseStringUTFChars(env, family_name_str, family_name);
- pango_font_description_set_size (pfont->desc, size * dpi_conversion_factor);
if (style & java_awt_font_BOLD)
pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD);
@@ -152,6 +362,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
if (useGraphics2D)
{
+ pango_font_description_set_size (pfont->desc, size * PANGO_SCALE);
if (pfont->ctx == NULL)
{
ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_for_display ());
@@ -160,6 +371,9 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
}
else
{
+ /* GDK uses a slightly different DPI setting. */
+ pango_font_description_set_size (pfont->desc,
+ size * dpi_conversion_factor);
if (pfont->ctx == NULL)
pfont->ctx = gdk_pango_context_get();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
deleted file mode 100644
index df720971957..00000000000
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
+++ /dev/null
@@ -1,696 +0,0 @@
-/* gdkglyphvector.c
- Copyright (C) 2003, 2004 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. */
-
-#include "gdkfont.h"
-#include "gnu_java_awt_peer_gtk_GdkGlyphVector.h"
-
-struct state_table *native_glyphvector_state_table;
-
-typedef struct {
- double x;
- double y;
- double width;
- double height;
-} rect_t;
-
-#define DOUBLE_TO_26_6(d) ((FT_F26Dot6)((d) * 64.0))
-#define DOUBLE_FROM_26_6(t) ((double)(t) / 64.0)
-#define DOUBLE_TO_16_16(d) ((FT_Fixed)((d) * 65536.0))
-#define DOUBLE_FROM_16_16(t) ((double)(t) / 65536.0)
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initStaticState
- (JNIEnv *env, jclass clazz)
-{
- NSA_GV_INIT (env, clazz);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initState
- (JNIEnv *env, jobject self, jobject font, jobject ctx __attribute__ ((unused)))
-{
- struct glyphvec *vec = NULL;
- struct peerfont *pfont = NULL;
-
- gdk_threads_enter ();
- g_assert (font != NULL);
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
- g_assert (pfont != NULL);
- g_assert (pfont->ctx != NULL);
- g_assert (pfont->desc != NULL);
-
- g_assert (self != NULL);
- vec = (struct glyphvec *) g_malloc0 (sizeof (struct glyphvec));
- g_assert (vec != NULL);
-
- vec->desc = pango_font_describe (pfont->font);
- g_assert (vec->desc != NULL);
-
- vec->font = pfont->font;
- g_object_ref (vec->font);
-
- vec->ctx = pfont->ctx;
- g_object_ref (vec->ctx);
-
- NSA_SET_GV_PTR (env, self, vec);
- gdk_threads_leave ();
-}
-
-static void free_glyphitems (GList *list)
-{
- GList *i = NULL;
- PangoGlyphItem *gi = NULL;
-
- for (i = g_list_first (list); i != NULL; i = g_list_next (i))
- {
- g_assert (i->data != NULL);
- gi = (PangoGlyphItem *)i->data;
-
- if (gi->glyphs != NULL)
- pango_glyph_string_free (gi->glyphs);
-
- if (gi->item != NULL)
- g_free (gi->item);
- }
- g_list_free (list);
-}
-
-static void seek_glyphstring_idx (GList *list, int idx,
- int *nidx,
- PangoGlyphString **gs,
- PangoFont **fnt)
-{
- GList *i = NULL;
- PangoGlyphItem *gi = NULL;
- int begin = 0;
-
- g_assert (list != NULL);
- g_assert (gs != NULL);
- g_assert (nidx != NULL);
-
-
- for (i = g_list_first (list); i != NULL; i = g_list_next (i))
- {
- g_assert (i->data != NULL);
- gi = (PangoGlyphItem *)i->data;
-
- g_assert (gi->glyphs != NULL);
-
- if (begin <= idx && idx < begin + gi->glyphs->num_glyphs)
- {
- *gs = gi->glyphs;
- *nidx = idx - begin;
- if (fnt && gi->item)
- *fnt = gi->item->analysis.font;
- return;
- }
- else
- {
- begin += gi->glyphs->num_glyphs;
- }
- }
- *gs = NULL;
- *nidx = -1;
-}
-
-static void seek_glyph_idx (GList *list, int idx,
- PangoGlyphInfo **g,
- PangoFont **fnt)
-{
- PangoGlyphString *gs = NULL;
- int nidx = -1;
-
- g_assert (list != NULL);
- g_assert (g != NULL);
-
- seek_glyphstring_idx (list, idx, &nidx, &gs, fnt);
-
- g_assert (gs != NULL);
- g_assert (nidx != -1);
- g_assert (nidx < gs->num_glyphs);
- g_assert (gs->glyphs != NULL);
-
- *g = gs->glyphs + nidx;
-}
-
-static void union_rects (rect_t *r1,
- const rect_t *r2)
-{
- rect_t r;
-
- g_assert (r1 != NULL);
- g_assert (r2 != NULL);
-
- /*
- x is the left edge of the rect,
- y is the top edge of the rect
- */
-
-#ifndef min
-#define min(x,y) ((x) < (y) ? (x) : (y))
-#endif
-
-#ifndef max
-#define max(x,y) ((x) < (y) ? (y) : (x))
-#endif
-
- r.x = min(r1->x, r2->x);
-
- r.y = min(r1->y, r2->y);
-
- r.width = max(r1->x + r1->width,
- r2->x + r2->width) - r.x;
-
- r.height = max(r1->y + r1->height,
- r2->y + r2->height) - r.y;
-
- *r1 = r;
-}
-
-static jdoubleArray rect_to_array (JNIEnv *env, const rect_t *r)
-{
- /* We often return rectangles as arrays : { x, y, w, h } */
- jdoubleArray ret;
- double *rp = NULL;
- g_assert (r != NULL);
- ret = (*env)->NewDoubleArray (env, 4);
- rp = (*env)->GetDoubleArrayElements (env, ret, NULL);
- g_assert (rp != NULL);
- rp[0] = r->x;
- /* freetype and pango's view of space is upside down from java2d's */
- rp[1] = r->y * -1;
- rp[2] = r->width;
- rp[3] = r->height;
- (*env)->ReleaseDoubleArrayElements (env, ret, rp, 0);
- return ret;
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_dispose
- (JNIEnv *env, jobject self)
-{
- struct glyphvec *vec = NULL;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_DEL_GV_PTR (env, self);
- g_assert (vec != NULL);
-
- if (vec->glyphitems != NULL)
- {
- free_glyphitems (vec->glyphitems);
- vec->glyphitems = NULL;
- }
-
- if (vec->desc != NULL)
- pango_font_description_free (vec->desc);
-
- if (vec->ctx != NULL)
- g_object_unref (vec->ctx);
-
- g_free (vec);
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setChars
- (JNIEnv *env, jobject self, jstring chars)
-{
- struct glyphvec *vec = NULL;
- gchar *str = NULL;
- GList *items = NULL, *item = NULL;
- PangoGlyphItem *gi;
- PangoAttrList *attrs = NULL;
- gint len = 0;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- g_assert (vec->desc != NULL);
- g_assert (vec->ctx != NULL);
-
- len = (*gdk_env)->GetStringUTFLength (env, chars);
- str = (gchar *)(*env)->GetStringUTFChars (env, chars, NULL);
- g_assert (str != NULL);
-
- /* step 1: set our FontFescription in the context, then "itemize" the
- text */
-
- attrs = pango_attr_list_new ();
- g_assert (attrs != NULL);
-
- pango_context_set_font_description (vec->ctx, vec->desc);
-
- if (vec->glyphitems != NULL)
- items = pango_itemize (vec->ctx, str, 0, len, attrs, NULL);
- if (items != NULL)
- {
-
- /*
- step 2: for each item:
- - shape the item into a glyphstring
- - store the (item, glyphstring) pair in the vec->glyphitems list
- */
-
- if (vec->glyphitems != NULL)
- {
- free_glyphitems (vec->glyphitems);
- vec->glyphitems = NULL;
- }
-
- for (item = g_list_first (items);
- item != NULL;
- item = g_list_next (item))
- {
- g_assert (item->data != NULL);
-
- gi = NULL;
- gi = g_malloc0 (sizeof(PangoGlyphItem));
- g_assert (gi != NULL);
-
- gi->item = (PangoItem *)item->data;
- gi->glyphs = pango_glyph_string_new ();
- g_assert (gi->glyphs != NULL);
-
- if (gi->glyphs->num_glyphs > 0)
- {
- pango_shape (str + gi->item->offset,
- gi->item->length,
- &(gi->item->analysis),
- gi->glyphs);
-
- vec->glyphitems = g_list_append (vec->glyphitems, gi);
- }
- }
-
- /*
- ownership of each item has been transferred to glyphitems,
- but the list should be freed.
- */
-
- g_list_free (items);
- }
-
- pango_attr_list_unref (attrs);
-
- (*env)->ReleaseStringUTFChars (env, chars, str);
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setGlyphCodes
- (JNIEnv *env, jobject self, jintArray codes __attribute__ ((unused)))
-{
- struct glyphvec *vec = NULL;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
-
- /*
- FIXME: setting glyph codes doesn't seem particularly plausible at the
- moment.
- */
-
- gdk_threads_leave ();
-
-}
-
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphCode
- (JNIEnv *env, jobject self, jint idx)
-{
- struct glyphvec *vec = NULL;
- PangoGlyphInfo *gi = NULL;
- jint ret = 0;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- g_assert (vec->glyphitems != NULL);
-
- seek_glyph_idx (vec->glyphitems, idx, &gi, NULL);
- g_assert (gi != NULL);
- ret = gi->glyph;
- gdk_threads_leave ();
-
- return (jint)(ret);
-}
-
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_numGlyphs
- (JNIEnv *env, jobject self)
-{
- GList *i = NULL;
- PangoGlyphItem *gi = NULL;
- struct glyphvec *vec = NULL;
- jint count = 0;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
-
- for (i = g_list_first (vec->glyphitems); i != NULL; i = g_list_next (i))
- {
- g_assert (i->data != NULL);
- gi = (PangoGlyphItem *)i->data;
- g_assert (gi->glyphs != NULL);
- count += gi->glyphs->num_glyphs;
- }
- gdk_threads_leave ();
-
- return count;
-}
-
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphCharIndex
-(JNIEnv *env __attribute__ ((unused)), jobject self __attribute__ ((unused)), jint idx)
-{
- /*
- FIXME: this is not correct, rather it assumes a (broken) 1:1
- glyph:char model. it can be implemented in terms of bytes (also
- broken) using pango's current interface, or perhaps in terms of
- characters if some better byte->character conversion operator is
- found. for the time being we leave it broken.
- */
- return idx;
-}
-
-static void
-assume_pointsize_and_identity_transform(double pointsize,
- FT_Face face)
-{
- FT_Matrix mat;
- mat.xx = DOUBLE_TO_16_16(1);
- mat.xy = DOUBLE_TO_16_16(0);
- mat.yx = DOUBLE_TO_16_16(0);
- mat.yy = DOUBLE_TO_16_16(1);
- FT_Set_Transform(face, &mat, NULL);
- FT_Set_Char_Size( face,
- DOUBLE_TO_26_6 (pointsize),
- DOUBLE_TO_26_6 (pointsize),
- 0, 0);
-}
-
-JNIEXPORT jdoubleArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_allInkExtents
- (JNIEnv *env, jobject self)
-{
- struct glyphvec *vec = NULL;
- int j;
- GList *i;
- PangoGlyphItem *gi = NULL;
- rect_t rect = {0,0,0,0};
- rect_t tmp;
- jdoubleArray ret;
- double x = 0, y = 0;
- double pointsize;
- FT_Face face;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- if (vec->glyphitems != NULL)
- {
- pointsize = pango_font_description_get_size (vec->desc);
- pointsize /= (double) PANGO_SCALE;
-
- for (i = g_list_first (vec->glyphitems); i != NULL; i = g_list_next (i))
- {
- g_assert (i->data != NULL);
- gi = (PangoGlyphItem *)i->data;
- g_assert (gi->glyphs != NULL);
-
- face = pango_ft2_font_get_face (gi->item->analysis.font);
- assume_pointsize_and_identity_transform (pointsize, face);
-
- for (j = 0; j < gi->glyphs->num_glyphs; ++j)
- {
- FT_Load_Glyph (face,
- gi->glyphs->glyphs[j].glyph,
- FT_LOAD_DEFAULT);
- /* FIXME: this needs to change for vertical layouts */
- tmp.x = x + DOUBLE_FROM_26_6 (face->glyph->metrics.horiBearingX);
- tmp.y = y + DOUBLE_FROM_26_6 (face->glyph->metrics.horiBearingY);
- tmp.width = DOUBLE_FROM_26_6 (face->glyph->metrics.width);
- tmp.height = DOUBLE_FROM_26_6 (face->glyph->metrics.height);
- union_rects (&rect, &tmp);
- x += DOUBLE_FROM_26_6 (face->glyph->advance.x);
- y += DOUBLE_FROM_26_6 (face->glyph->advance.y);
- }
- }
- }
-
- ret = rect_to_array (env, &rect);
- gdk_threads_leave ();
- return ret;
-}
-
-
-JNIEXPORT jdoubleArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_allLogicalExtents
- (JNIEnv *env, jobject self)
-{
- struct glyphvec *vec = NULL;
- int j;
- GList *i;
- PangoGlyphItem *gi = NULL;
- rect_t rect = {0,0,0,0};
- rect_t tmp;
- jdoubleArray ret;
- double x = 0, y = 0;
- double pointsize;
- FT_Face face;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- g_assert (vec->glyphitems != NULL);
-
- pointsize = pango_font_description_get_size (vec->desc);
- pointsize /= (double) PANGO_SCALE;
-
- for (i = g_list_first (vec->glyphitems); i != NULL; i = g_list_next (i))
- {
- g_assert (i->data != NULL);
- gi = (PangoGlyphItem *)i->data;
- g_assert (gi->glyphs != NULL);
-
- face = pango_ft2_font_get_face (gi->item->analysis.font);
- assume_pointsize_and_identity_transform (pointsize, face);
-
- for (j = 0; j < gi->glyphs->num_glyphs; ++j)
- {
- FT_Load_Glyph (face, gi->glyphs->glyphs[j].glyph, FT_LOAD_DEFAULT);
-
- /* FIXME: also, this is probably not the correct set of metrics;
- the "logical bounds" are some fancy combination of hori
- advance and height such that it's good for inverting as a
- highlight. revisit. */
-
- tmp.x = x;
- tmp.y = y;
- tmp.width = DOUBLE_FROM_26_6 (face->glyph->advance.x);
- tmp.height = DOUBLE_FROM_26_6 (face->glyph->advance.y);
- union_rects (&rect, &tmp);
- x += DOUBLE_FROM_26_6 (face->glyph->advance.x);
- y += DOUBLE_FROM_26_6 (face->glyph->advance.y);
- }
- }
-
- ret = rect_to_array (env, &rect);
- gdk_threads_leave ();
- return ret;
-}
-
-
-JNIEXPORT jdoubleArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphLogicalExtents
- (JNIEnv *env, jobject self, jint idx)
-{
- struct glyphvec *vec = NULL;
- rect_t rect = {0,0,0,0};
- PangoGlyphInfo *gi = NULL;
- PangoFont *font = NULL;
- jdoubleArray ret;
- double pointsize;
- FT_Face face;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- g_assert (vec->glyphitems != NULL);
-
- seek_glyph_idx (vec->glyphitems, idx, &gi, &font);
- g_assert (gi != NULL);
- g_assert (font != NULL);
-
- pointsize = pango_font_description_get_size (vec->desc);
- pointsize /= (double) PANGO_SCALE;
- face = pango_ft2_font_get_face (font);
-
- assume_pointsize_and_identity_transform (pointsize, face);
-
- FT_Load_Glyph (face, gi->glyph, FT_LOAD_DEFAULT);
-
- /* FIXME: this is probably not the correct set of metrics;
- the "logical bounds" are some fancy combination of hori
- advance and height such that it's good for inverting as a
- highlight. revisit. */
-
- rect.x = 0;
- rect.y = 0;
- rect.width = DOUBLE_FROM_26_6 (face->glyph->advance.x);
- rect.height = DOUBLE_FROM_26_6 (face->glyph->advance.y);
-
- ret = rect_to_array (env, &rect);
- gdk_threads_leave ();
- return ret;
-}
-
-
-JNIEXPORT jdoubleArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphInkExtents
- (JNIEnv *env, jobject self, jint idx)
-{
- struct glyphvec *vec = NULL;
- rect_t rect = {0,0,0,0};
- PangoGlyphInfo *gi = NULL;
- PangoFont *font = NULL;
- jdoubleArray ret;
- double pointsize;
- FT_Face face;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- g_assert (vec->glyphitems != NULL);
-
- seek_glyph_idx (vec->glyphitems, idx, &gi, &font);
- g_assert (gi != NULL);
- g_assert (font != NULL);
-
- pointsize = pango_font_description_get_size (vec->desc);
- pointsize /= (double) PANGO_SCALE;
- face = pango_ft2_font_get_face (font);
-
- assume_pointsize_and_identity_transform (pointsize, face);
-
- FT_Load_Glyph (face, gi->glyph, FT_LOAD_DEFAULT);
- /* FIXME: this needs to change for vertical layouts */
- rect.x = DOUBLE_FROM_26_6 (face->glyph->metrics.horiBearingX);
- rect.y = DOUBLE_FROM_26_6 (face->glyph->metrics.horiBearingY);
- rect.width = DOUBLE_FROM_26_6 (face->glyph->metrics.width);
- rect.height = DOUBLE_FROM_26_6 (face->glyph->metrics.height);
-
- ret = rect_to_array (env, &rect);
- gdk_threads_leave ();
- return ret;
-}
-
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphIsHorizontal
-(JNIEnv *env, jobject self, jint idx __attribute__ ((unused)))
-{
- struct glyphvec *vec = NULL;
- PangoDirection dir;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- g_assert (vec != NULL);
- g_assert (vec->desc != NULL);
- g_assert (vec->ctx != NULL);
-
- /*
- FIXME: this is an approximation; it's not clear to me whether
- glyphs themselves are horizontal or vertical so much as the
- writing system or writing context. pango thinks it's a context
- issue, so we use that for now.
- */
-
- dir = pango_context_get_base_dir (vec->ctx);
-
- gdk_threads_leave ();
-
- return 1;
- /* FIXME: Pango doesn't seem to have decided how it will deal
- with vertical text. for the time being we inherit this limitation.
- ((dir == PANGO_DIRECTION_LTR) ||
- (dir == PANGO_DIRECTION_RTL));
- */
-}
-
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGlyphVector_isEqual
- (JNIEnv *env, jobject self, jobject other)
-{
- struct glyphvec *vec1 = NULL, *vec2 = NULL;
- jboolean eq = 0;
-
- gdk_threads_enter ();
- g_assert (self != NULL);
- vec1 = (struct glyphvec *)NSA_GET_GV_PTR (env, self);
- vec2 = (struct glyphvec *)NSA_GET_GV_PTR (env, other);
- g_assert (vec1 != NULL);
- g_assert (vec2 != NULL);
-
- /* FIXME: is there some more advantageous definition of equality for
- glyph vectors? */
- eq = (vec1 == vec2);
-
- gdk_threads_leave ();
- return eq;
-}
-
-
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
index a91eea16c9f..99b1511264c 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
@@ -133,13 +133,17 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals
(JNIEnv *env, jobject obj, jobject peer)
{
void *ptr;
+ jobject *gref;
+
+ NSA_SET_GLOBAL_REF (env, obj);
+ gref = NSA_GET_GLOBAL_REF (env, obj);
ptr = NSA_GET_PTR (env, peer);
gdk_threads_enter ();
g_signal_connect_after (G_OBJECT (ptr), "realize",
- G_CALLBACK (realize_cb), obj);
+ G_CALLBACK (realize_cb), *gref);
gdk_threads_leave ();
}
@@ -438,6 +442,12 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect
g = (struct graphics *) NSA_GET_PTR (env, obj);
gdk_threads_enter ();
+
+ if (!g)
+ {
+ gdk_threads_leave ();
+ return;
+ }
if (GDK_IS_WINDOW (g->drawable))
{
w.widget = &widget;
@@ -455,6 +465,8 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect
x + g->x_offset, y + g->y_offset, width, height);
gdk_gc_set_foreground (g->gc, &(saved.foreground));
}
+
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -672,7 +684,9 @@ static void realize_cb (GtkWidget *widget __attribute__ ((unused)),
{
gdk_threads_leave ();
- (*gdk_env)->CallVoidMethod (gdk_env, peer, initComponentGraphicsID);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, initComponentGraphicsID);
+
+ NSA_DEL_GLOBAL_REF (gdk_env(), peer);
gdk_threads_enter ();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
index 90b6aa14901..e6535b46324 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
@@ -1,5 +1,5 @@
/* gnu_java_awt_peer_gtk_GdkGraphics2d.c
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,8 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk-pixbuf/gdk-pixdata.h>
-#include <cairo.h>
+#include <cairo-ft.h>
+#include <cairo-xlib.h>
#include <stdio.h>
#include <stdlib.h>
@@ -175,7 +176,6 @@ x_server_has_render_extension (void)
return (int) XRenderQueryExtension (GDK_DISPLAY (), &ev, &err);
}
-
static void
init_graphics2d_as_pixbuf (struct graphics2d *gr)
{
@@ -196,13 +196,14 @@ init_graphics2d_as_pixbuf (struct graphics2d *gr)
g_assert (gdk_pixbuf_get_bits_per_sample (gr->drawbuf) == bits_per_sample);
g_assert (gdk_pixbuf_get_n_channels (gr->drawbuf) == total_channels);
- gr->surface = cairo_surface_create_for_image (gdk_pixbuf_get_pixels (gr->drawbuf),
+ gr->surface = cairo_surface_create_for_image ((char *) gdk_pixbuf_get_pixels (gr->drawbuf),
CAIRO_FORMAT_ARGB32,
gdk_pixbuf_get_width (gr->drawbuf),
gdk_pixbuf_get_height (gr->drawbuf),
gdk_pixbuf_get_rowstride (gr->drawbuf));
g_assert (gr->surface != NULL);
g_assert (gr->cr != NULL);
+ gr->mode = MODE_DRAWABLE_NO_RENDER;
cairo_set_target_surface (gr->cr, gr->surface);
}
@@ -232,60 +233,99 @@ init_graphics2d_as_renderable (struct graphics2d *gr)
DefaultColormap (dpy, DefaultScreen (dpy)));
g_assert (gr->surface != NULL);
g_assert (gr->cr != NULL);
+ gr->mode = MODE_DRAWABLE_WITH_RENDER;
cairo_set_target_surface (gr->cr, gr->surface);
}
static void
-begin_drawing_operation (struct graphics2d * gr)
+begin_drawing_operation (JNIEnv *env, struct graphics2d * gr)
{
g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS);
- if (gr->drawbuf)
+
+ switch (gr->mode)
{
+ case MODE_DRAWABLE_WITH_RENDER:
+ break;
- gint drawable_width, drawable_height;
- gint pixbuf_width, pixbuf_height;
- gint width, height;
-
- gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);
- pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);
- pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);
- width = min (drawable_width, pixbuf_width);
- height = min (drawable_height, pixbuf_height);
-
- gdk_pixbuf_get_from_drawable (gr->drawbuf, /* destination pixbuf */
- gr->drawable,
- NULL, /* colormap */
- 0, 0, 0, 0,
- width, height);
-
- if (gr->debug) printf ("copied (%d, %d) pixels from GDK drawable to pixbuf\n",
- width, height);
+ case MODE_DRAWABLE_NO_RENDER:
+ {
+
+ gint drawable_width, drawable_height;
+ gint pixbuf_width, pixbuf_height;
+ gint width, height;
+
+ gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);
+ pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);
+ pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);
+ width = min (drawable_width, pixbuf_width);
+ height = min (drawable_height, pixbuf_height);
+
+ gdk_pixbuf_get_from_drawable (gr->drawbuf, /* destination pixbuf */
+ gr->drawable,
+ NULL, /* colormap */
+ 0, 0, 0, 0,
+ width, height);
+
+ if (gr->debug) printf ("copied (%d, %d) pixels from GDK drawable to pixbuf\n",
+ width, height);
+ }
+ break;
+
+ case MODE_JAVA_ARRAY:
+ gr->javabuf = (*env)->GetIntArrayElements (env, gr->jarray, &gr->isCopy);
+ gr->surface = cairo_surface_create_for_image ((char *) gr->javabuf,
+ CAIRO_FORMAT_ARGB32,
+ gr->width,
+ gr->height,
+ gr->width * 4);
+ g_assert(gr->surface != NULL);
+ g_assert(gr->cr != NULL);
+ cairo_set_target_surface (gr->cr, gr->surface);
+ break;
}
}
static void
-end_drawing_operation (struct graphics2d * gr)
+end_drawing_operation (JNIEnv *env, struct graphics2d * gr)
{
g_assert(cairo_status (gr->cr) == CAIRO_STATUS_SUCCESS);
- if (gr->drawbuf)
- {
- gint drawable_width, drawable_height;
- gint pixbuf_width, pixbuf_height;
- gint width, height;
+
+ switch (gr->mode)
+ {
+ case MODE_DRAWABLE_WITH_RENDER:
+ break;
+
+ case MODE_DRAWABLE_NO_RENDER:
+ {
+
+ gint drawable_width, drawable_height;
+ gint pixbuf_width, pixbuf_height;
+ gint width, height;
+
+ gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);
+ pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);
+ pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);
+ width = min (drawable_width, pixbuf_width);
+ height = min (drawable_height, pixbuf_height);
+
+ gdk_draw_pixbuf (gr->drawable, NULL, gr->drawbuf,
+ 0, 0, 0, 0,
+ width, height,
+ GDK_RGB_DITHER_NORMAL, 0, 0);
+
+ if (gr->debug) printf ("copied (%d, %d) pixels from pixbuf to GDK drawable\n",
+ width, height);
+ }
+ break;
- gdk_drawable_get_size (gr->drawable, &drawable_width, &drawable_height);
- pixbuf_width = gdk_pixbuf_get_width (gr->drawbuf);
- pixbuf_height = gdk_pixbuf_get_height (gr->drawbuf);
- width = min (drawable_width, pixbuf_width);
- height = min (drawable_height, pixbuf_height);
-
- gdk_draw_pixbuf (gr->drawable, NULL, gr->drawbuf,
- 0, 0, 0, 0,
- width, height,
- GDK_RGB_DITHER_NORMAL, 0, 0);
-
- if (gr->debug) printf ("copied (%d, %d) pixels from pixbuf to GDK drawable\n",
- width, height);
+ case MODE_JAVA_ARRAY:
+ /*
+ * FIXME: Perhaps this should use the isCopy flag to try to avoid
+ * tearing down the cairo surface.
+ */
+ cairo_surface_destroy (gr->surface);
+ gr->surface = NULL;
+ (*env)->ReleaseIntArrayElements (env, gr->jarray, gr->javabuf, JNI_COMMIT);
}
}
@@ -317,11 +357,11 @@ check_for_debug (struct graphics2d *gr)
}
static void
-realize_cb (GtkWidget *widget, jobject peer)
+realize_cb (GtkWidget *widget __attribute__ ((unused)), jobject peer)
{
gdk_threads_leave ();
- (*gdk_env)->CallVoidMethod (gdk_env, peer, initComponentGraphics2DID);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, initComponentGraphics2DID);
gdk_threads_enter ();
}
@@ -342,18 +382,29 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_copyState
if (g_old->debug) printf ("copying state from existing graphics2d\n");
- g->drawable = g_old->drawable;
g->debug = g_old->debug;
+ g->mode = g_old->mode;
- g_object_ref (g->drawable);
+ if (g_old->mode == MODE_JAVA_ARRAY)
+ {
+ g->width = g_old->width;
+ g->height = g_old->height;
+ g->jarray = (*env)->NewGlobalRef(env, g_old->jarray);
+ }
+ else
+ {
+ g->drawable = g_old->drawable;
+
+ g_object_ref (g->drawable);
- g->cr = cairo_create();
- g_assert (g->cr != NULL);
+ g->cr = cairo_create();
+ g_assert (g->cr != NULL);
- if (x_server_has_render_extension ())
- init_graphics2d_as_renderable (g);
- else
- init_graphics2d_as_pixbuf (g);
+ if (x_server_has_render_extension ())
+ init_graphics2d_as_renderable (g);
+ else
+ init_graphics2d_as_pixbuf (g);
+ }
cairo_surface_set_filter (g->surface, CAIRO_FILTER_FAST);
@@ -363,6 +414,37 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_copyState
JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState___3III
+(JNIEnv *env, jobject obj, jintArray jarr, jint width, jint height)
+{
+ struct graphics2d *gr;
+
+ gdk_threads_enter();
+ gr = (struct graphics2d *) malloc (sizeof (struct graphics2d));
+ g_assert (gr != NULL);
+ memset (gr, 0, sizeof(struct graphics2d));
+
+ check_for_debug (gr);
+
+ if (gr->debug) printf ("constructing java-backed image of size (%d,%d)\n",
+ width, height);
+
+ gr->cr = cairo_create();
+ g_assert (gr->cr != NULL);
+
+ gr->width = width;
+ gr->height = height;
+ gr->jarray = (*env)->NewGlobalRef(env, jarr);
+ gr->mode = MODE_JAVA_ARRAY;
+
+ if (gr->debug) printf ("constructed java-backed image of size (%d,%d)\n",
+ width, height);
+
+ NSA_SET_G2D_PTR (env, obj, gr);
+ gdk_threads_leave();
+}
+
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__II
(JNIEnv *env, jobject obj, jint width, jint height)
{
@@ -414,7 +496,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable
if (src->debug) printf ("copying from offscreen drawable\n");
- begin_drawing_operation(dst);
+ begin_drawing_operation(env, dst);
/* gdk_flush(); */
@@ -439,7 +521,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable
gdk_flush();
- end_drawing_operation(dst);
+ end_drawing_operation(env, dst);
if (src->debug) printf ("copied %d x %d pixels from offscreen drawable\n", width, height);
gdk_threads_leave();
@@ -531,6 +613,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_dispose
if (gr->pattern_pixels)
free (gr->pattern_pixels);
+ if (gr->mode == MODE_JAVA_ARRAY)
+ (*env)->DeleteGlobalRef(env, gr->jarray);
+
if (gr->debug) printf ("disposed of graphics2d\n");
free (gr);
@@ -734,7 +819,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels
g_assert (native_matrix != NULL);
g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);
- begin_drawing_operation (gr);
+ begin_drawing_operation (env, gr);
{
cairo_matrix_t *mat = NULL;
@@ -748,13 +833,12 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels
native_matrix[4], native_matrix[5]);
cairo_surface_set_matrix (surf, mat);
cairo_surface_set_filter (surf, cairo_surface_get_filter(gr->surface));
-
cairo_show_surface (gr->cr, surf, w, h);
cairo_matrix_destroy (mat);
cairo_surface_destroy (surf);
}
- end_drawing_operation (gr);
+ end_drawing_operation (env, gr);
(*env)->ReleaseIntArrayElements (env, java_pixels, native_pixels, 0);
(*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0);
@@ -762,65 +846,6 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels
gdk_threads_leave();
}
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels
- (JNIEnv *env, jobject obj)
-{
- struct graphics2d *gr = NULL;
- jintArray java_pixels;
- jint* native_pixels;
- GdkPixbuf *buf = NULL;
- gint width, height;
- gint bits_per_sample = 8;
- gboolean has_alpha = TRUE;
- gint total_channels = 4;
- jint i;
-
- gdk_threads_enter();
- if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return NULL; }
-
- gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
- g_assert (gr != NULL);
-
- if (gr->debug) printf ("getImagePixels\n");
-
- gdk_drawable_get_size (gr->drawable, &width, &height);
-
- buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, has_alpha,
- bits_per_sample,
- width, height);
- g_assert (buf != NULL);
- g_assert (gdk_pixbuf_get_bits_per_sample (buf) == bits_per_sample);
- g_assert (gdk_pixbuf_get_n_channels (buf) == total_channels);
-
-
- /* copy pixels from drawable to pixbuf */
-
- gdk_pixbuf_get_from_drawable (buf, gr->drawable,
- NULL,
- 0, 0, 0, 0,
- width, height);
-
- native_pixels= gdk_pixbuf_get_pixels (buf);
-
-#ifndef WORDS_BIGENDIAN
- /* convert pixels from 0xBBGGRRAA to 0xAARRGGBB */
- for (i=0; i<width * height; i++)
- {
- native_pixels[i] = SWAPU32 ((unsigned)native_pixels[i]);
- }
-#endif
-
- java_pixels = (*env) -> NewIntArray (env, width * height);
-
- (*env)->SetIntArrayRegion(env, java_pixels,
- (jsize)0, (jsize) width*height,
- (jint*) native_pixels);
-
- gdk_threads_leave();
- return java_pixels;
-}
-
/* passthrough methods to cairo */
JNIEXPORT void JNICALL
@@ -917,13 +942,13 @@ install_font_peer(cairo_t *cr,
if (debug) printf ("install_font_peer made new cairo font for '%s' at %f\n",
face->family_name,
(pango_font_description_get_size (pfont->desc) /
- (double)PANGO_SCALE) * (96.0 / 72.0));
+ (double)PANGO_SCALE));
cairo_set_font (cr, ft);
cairo_font_destroy (ft);
cairo_scale_font (cr,
(pango_font_description_get_size (pfont->desc) /
- (double)PANGO_SCALE) * (96.0 / 72.0));
+ (double)PANGO_SCALE));
ft = cairo_current_font (cr);
pfont->graphics_resource = ft;
}
@@ -935,24 +960,10 @@ install_font_peer(cairo_t *cr,
}
}
-static cairo_t *metrics_cairo = NULL;
-static cairo_surface_t *metrics_surface = NULL;
-
-static void
-ensure_metrics_cairo()
-{
- if (metrics_cairo == NULL)
- {
- metrics_cairo = cairo_create ();
- metrics_surface = cairo_image_surface_create (CAIRO_FORMAT_A8, 1, 1);
- cairo_set_target_surface (metrics_cairo, metrics_surface);
- }
-}
-
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkGraphics2D_releasePeerGraphicsResource
- (JNIEnv *env, jclass clazz, jobject java_font)
+ (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject java_font)
{
struct peerfont *pfont = NULL;
@@ -969,80 +980,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_releasePeerGraphicsResource
gdk_threads_leave();
}
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics
- (JNIEnv *env, jclass clazz, jobject java_font, jstring str, jdoubleArray java_metrics)
-{
- struct peerfont *pfont = NULL;
- const char *cstr = NULL;
- jdouble *native_metrics = NULL;
- cairo_text_extents_t extents;
-
- g_assert(java_font != NULL);
- gdk_threads_enter();
-
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
- g_assert (pfont != NULL);
-
- ensure_metrics_cairo();
- install_font_peer (metrics_cairo, pfont, 0);
-
- cstr = (*env)->GetStringUTFChars (env, str, NULL);
- g_assert(cstr != NULL);
- cairo_text_extents (metrics_cairo, cstr, &extents);
-
- native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
- g_assert (native_metrics != NULL);
-
- native_metrics[TEXT_METRICS_X_BEARING] = extents.x_bearing;
- native_metrics[TEXT_METRICS_Y_BEARING] = extents.y_bearing;
- native_metrics[TEXT_METRICS_WIDTH] = extents.width;
- native_metrics[TEXT_METRICS_HEIGHT] = extents.height;
- native_metrics[TEXT_METRICS_X_ADVANCE] = extents.x_advance;
- native_metrics[TEXT_METRICS_Y_ADVANCE] = extents.y_advance;
-
- (*env)->ReleaseStringUTFChars (env, str, cstr);
- (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics
- (JNIEnv *env, jclass clazz, jobject java_font, jdoubleArray java_metrics)
-{
- struct peerfont *pfont = NULL;
- jdouble *native_metrics = NULL;
- cairo_font_extents_t extents;
-
- g_assert(java_font != NULL);
-
- gdk_threads_enter();
-
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
- g_assert (pfont != NULL);
-
- ensure_metrics_cairo();
- install_font_peer (metrics_cairo, pfont, 0);
-
- cairo_current_font_extents (metrics_cairo, &extents);
-
- native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
- g_assert (native_metrics != NULL);
-
- native_metrics[FONT_METRICS_ASCENT] = extents.ascent;
- native_metrics[FONT_METRICS_MAX_ASCENT] = extents.ascent;
- native_metrics[FONT_METRICS_DESCENT] = extents.descent;
- if (native_metrics[FONT_METRICS_DESCENT] < 0)
- native_metrics[FONT_METRICS_DESCENT] = - native_metrics[FONT_METRICS_DESCENT];
- native_metrics[FONT_METRICS_MAX_DESCENT] = native_metrics[FONT_METRICS_DESCENT];
- native_metrics[FONT_METRICS_MAX_ADVANCE] = extents.max_x_advance;
-
- (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
- gdk_threads_leave();
-}
-
static void
-paint_glyph_run(struct graphics2d *gr,
+paint_glyph_run(JNIEnv *env,
+ struct graphics2d *gr,
cairo_glyph_t **glyphs,
gint *n_glyphs,
PangoLayoutRun *run)
@@ -1090,134 +1030,71 @@ paint_glyph_run(struct graphics2d *gr,
}
if (gr->debug) printf("\n");
- begin_drawing_operation (gr);
+ begin_drawing_operation (env, gr);
cairo_show_glyphs (gr->cr, *glyphs, run->glyphs->num_glyphs);
- end_drawing_operation (gr);
+ end_drawing_operation (env, gr);
}
}
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawString
- (JNIEnv *env, jobject obj, jobject font, jstring str, float x, float y)
-{
- struct graphics2d *gr = NULL;
- const char *cstr = NULL;
- struct peerfont *pfont = NULL;
-
- /*
- cairo_glyph_t *glyphs = NULL;
- gint n_glyphs = 0;
- PangoLayoutRun *run = NULL;
- PangoLayoutIter *iter = NULL;
- */
-
- g_assert(obj != NULL);
- g_assert(font != NULL);
- g_assert(str != NULL);
-
- gdk_threads_enter ();
- if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; }
-
- gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
- g_assert(gr != NULL);
-
- pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, font);
- g_assert (pfont != NULL);
-
- cstr = (*env)->GetStringUTFChars (env, str, NULL);
- g_assert(cstr != NULL);
-
- if (gr->debug) printf ("painting string '%s' at (%f,%f)\n", cstr, x, y);
-
- /* For now we let cairo do the glyph conversion; eventually this
- * ought to be unified with pango, but it is impossible to get
- * pango and cairo to agree on metrics at the moment, so we either
- * have to use "all cairo" metrics (the string-based APIs) or
- * "all pango" metrics (the glyph-vector based APIs).
- */
-
- install_font_peer (gr->cr, pfont, gr->debug);
- cairo_move_to (gr->cr, x, y);
- cairo_show_text (gr->cr, cstr);
-
- /*
-
- pango_layout_set_text (gr->pango_layout, cstr, -1);
-
- iter = pango_layout_get_iter (gr->pango_layout);
- g_assert(iter != NULL);
-
- cairo_translate (gr->cr, x, y);
-
- do
- {
- run = pango_layout_iter_get_run (iter);
- if (run != NULL)
- paint_glyph_run (gr, &glyphs, &n_glyphs, run);
- }
- while (pango_layout_iter_next_run (iter));
-
- if (glyphs != NULL)
- g_free (glyphs);
-
- cairo_translate (gr->cr, -x, -y);
-
- pango_layout_iter_free (iter);
-
- */
-
- gdk_threads_leave ();
-
- (*env)->ReleaseStringUTFChars (env, str, cstr);
-}
-
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGdkGlyphVector
- (JNIEnv *env, jobject self, jobject font, jobject java_vec, jfloat x, jfloat y)
+Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector
+ (JNIEnv *env, jobject self,
+ jobject font,
+ jfloat x, jfloat y, jint n,
+ jintArray java_codes,
+ jfloatArray java_positions)
{
struct graphics2d *gr = NULL;
struct peerfont *pfont = NULL;
- struct glyphvec *gv = NULL;
- PangoLayoutRun *run = NULL;
cairo_glyph_t *glyphs = NULL;
- gint n_glyphs = 0;
+ int *native_codes;
+ float *native_positions;
+ jint i = 0;
g_assert (self != NULL);
- g_assert (java_vec != NULL);
+ g_assert (java_codes != NULL);
+ g_assert (java_positions != NULL);
gdk_threads_enter ();
if (peer_is_disposed(env, self)) { gdk_threads_leave(); return; }
gr = (struct graphics2d *)NSA_GET_G2D_PTR (env, self);
- gv = (struct glyphvec *)NSA_GET_GV_PTR (env, java_vec);
- pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, font);
-
g_assert (gr != NULL);
- g_assert (gv != NULL);
+
+ pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
g_assert (pfont != NULL);
- if (gr->debug) printf ("painting pango glyph vector\n");
+ install_font_peer(gr->cr, pfont, gr->debug);
- install_font_peer (gr->cr, pfont, gr->debug);
- cairo_translate (gr->cr, x, y);
+ glyphs = malloc( sizeof(cairo_glyph_t) * n);
+ g_assert (glyphs != NULL);
- /* nb. PangoLayoutRun is a typedef for PangoGlyphItem. */
- run = (PangoLayoutRun *) gv->glyphitems;
- if (run != NULL)
- paint_glyph_run (gr, &glyphs, &n_glyphs, run);
+ native_codes = (*env)->GetIntArrayElements (env, java_codes, NULL);
+ native_positions = (*env)->GetFloatArrayElements (env, java_positions, NULL);
+
+ for (i = 0; i < n; ++i)
+ {
+ glyphs[i].index = native_codes[i];
+ glyphs[i].x = x + native_positions[ 2*i ];
+ glyphs[i].y = y + native_positions[ 2*i + 1];
+ }
- if (glyphs != NULL)
- g_free (glyphs);
+ (*env)->ReleaseFloatArrayElements (env, java_positions, native_positions, 0);
+ (*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
+
+ begin_drawing_operation (env, gr);
+ cairo_show_glyphs (gr->cr, glyphs, n);
+ end_drawing_operation (env, gr);
- cairo_translate (gr->cr, -x, -y);
gdk_threads_leave ();
+ free(glyphs);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGdkTextLayout
- (JNIEnv *env, jobject self, jobject font, jobject java_layout, jfloat x, jfloat y)
+ (JNIEnv *env, jobject self, jobject java_layout, jfloat x, jfloat y)
{
/*
* FIXME: Some day we expect either cairo or pango will know how to make
@@ -1225,7 +1102,6 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGdkTextLayout
*/
struct graphics2d *gr = NULL;
- struct peerfont *pfont = NULL;
struct textlayout *tl = NULL;
PangoLayoutIter *i = NULL;
PangoLayoutRun *run = NULL;
@@ -1237,12 +1113,10 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGdkTextLayout
gr = (struct graphics2d *)NSA_GET_G2D_PTR (env, self);
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, java_layout);
- pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, font);
g_assert (gr != NULL);
g_assert (tl != NULL);
g_assert (tl->pango_layout != NULL);
- g_assert (pfont != NULL);
if (gr->debug) printf ("painting pango layout\n");
@@ -1252,14 +1126,13 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGdkTextLayout
i = pango_layout_get_iter (tl->pango_layout);
g_assert (i != NULL);
- install_font_peer (gr->cr, pfont, gr->debug);
cairo_translate (gr->cr, x, y);
do
{
run = pango_layout_iter_get_run (i);
if (run != NULL)
- paint_glyph_run (gr, &glyphs, &n_glyphs, run);
+ paint_glyph_run (env, gr, &glyphs, &n_glyphs, run);
}
while (pango_layout_iter_next_run (i));
@@ -1671,9 +1544,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoStroke
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_stroke\n");
- begin_drawing_operation (gr);
+ begin_drawing_operation (env, gr);
cairo_stroke (gr->cr);
- end_drawing_operation (gr);
+ end_drawing_operation (env, gr);
gdk_threads_leave();
}
@@ -1689,9 +1562,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoFill
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_fill\n");
- begin_drawing_operation (gr);
+ begin_drawing_operation (env, gr);
cairo_fill (gr->cr);
- end_drawing_operation (gr);
+ end_drawing_operation (env, gr);
gdk_threads_leave();
}
@@ -1707,10 +1580,10 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoClip
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
if (gr == NULL) { gdk_threads_leave (); return; }
if (gr->debug) printf ("cairo_clip\n");
- begin_drawing_operation (gr);
+ begin_drawing_operation (env, gr);
cairo_init_clip (gr->cr);
cairo_clip (gr->cr);
- end_drawing_operation (gr);
+ end_drawing_operation (env, gr);
gdk_threads_leave();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
index 3cb3bd25b56..0727999df19 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
@@ -60,6 +60,8 @@ static JavaVM *vm;
static jmethodID areaPreparedID;
static jmethodID areaUpdatedID;
+static jmethodID dataOutputWriteID;
+static jmethodID registerFormatID;
static void
area_prepared (GdkPixbufLoader *loader,
@@ -193,10 +195,72 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState
NSA_SET_PB_PTR (env, obj, loader);
}
+static void
+query_formats (JNIEnv *env, jclass clazz)
+{
+ jobject jformat;
+ GSList *formats, *f;
+ GdkPixbufFormat *format;
+ char **ch, *name;
+
+ jclass formatClass;
+ jmethodID addExtensionID;
+ jmethodID addMimeTypeID;
+
+ formatClass = (*env)->FindClass
+ (env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec");
+
+ g_assert(formatClass != NULL);
+
+ addExtensionID = (*env)->GetMethodID (env, formatClass,
+ "addExtension",
+ "(Ljava/lang/String;)V");
+
+ addMimeTypeID = (*env)->GetMethodID (env, formatClass,
+ "addMimeType",
+ "(Ljava/lang/String;)V");
+
+ formats = gdk_pixbuf_get_formats ();
+
+ for (f = formats; f; f = f->next)
+ {
+ format = (GdkPixbufFormat *) f->data;
+ name = gdk_pixbuf_format_get_name(format);
+
+ jformat = (*env)->CallStaticObjectMethod
+ (env, clazz, registerFormatID,
+ (*env)->NewStringUTF(env, name),
+ (jboolean) gdk_pixbuf_format_is_writable(format));
+
+ g_assert(jformat != NULL);
+
+ ch = gdk_pixbuf_format_get_extensions(format);
+ while (*ch)
+ {
+ (*env)->CallVoidMethod (env, jformat, addExtensionID,
+ (*env)->NewStringUTF(env, *ch));
+ ++ch;
+ }
+
+ ch = gdk_pixbuf_format_get_mime_types(format);
+ while (*ch)
+ {
+ (*env)->CallVoidMethod (env, jformat, addMimeTypeID,
+ (*env)->NewStringUTF(env, *ch));
+ ++ch;
+ }
+ }
+
+ g_slist_free(formats);
+}
+
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState
(JNIEnv *env, jclass clazz)
{
+ jclass dataOutputClass;
+
(*env)->GetJavaVM(env, &vm);
areaPreparedID = (*env)->GetMethodID (env, clazz,
@@ -206,6 +270,20 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState
areaUpdatedID = (*env)->GetMethodID (env, clazz,
"areaUpdated",
"(IIII[II)V");
+
+ registerFormatID = (*env)->GetStaticMethodID
+ (env, clazz,
+ "registerFormat",
+ "(Ljava/lang/String;Z)"
+ "Lgnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec;");
+
+
+ dataOutputClass = (*env)->FindClass(env, "java/io/DataOutput");
+ dataOutputWriteID = (*env)->GetMethodID (env, dataOutputClass,
+ "write", "([B)V");
+
+ query_formats (env, clazz);
+
NSA_PB_INIT (env, clazz);
}
@@ -226,6 +304,115 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish
gdk_threads_leave ();
}
+struct stream_save_request
+{
+ JNIEnv *env;
+ jobject *stream;
+};
+
+static gboolean
+save_to_stream(const gchar *buf,
+ gsize count,
+ GError **error __attribute__((unused)),
+ gpointer data)
+{
+ struct stream_save_request *ssr = (struct stream_save_request *)data;
+
+ jbyteArray jbuf;
+ jbyte *cbuf;
+
+ gdk_threads_leave ();
+ jbuf = (*(ssr->env))->NewByteArray ((ssr->env), count);
+ cbuf = (*(ssr->env))->GetByteArrayElements ((ssr->env), jbuf, NULL);
+ memcpy (cbuf, buf, count);
+ (*(ssr->env))->ReleaseByteArrayElements ((ssr->env), jbuf, cbuf, 0);
+ (*(ssr->env))->CallVoidMethod ((ssr->env), *(ssr->stream),
+ dataOutputWriteID, jbuf);
+ gdk_threads_enter ();
+ return TRUE;
+}
+
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage
+(JNIEnv *env, jclass clazz __attribute__((unused)),
+ jintArray jarr, jstring jenctype, jint width, jint height,
+ jboolean hasAlpha, jobject stream)
+{
+ GdkPixbuf* pixbuf;
+ jint *ints;
+ guchar a, r, g, b, *pix, *p;
+ GError *err = NULL;
+ const char *enctype;
+ int i;
+
+ struct stream_save_request ssr;
+ ssr.stream = &stream;
+ ssr.env = env;
+
+ ints = (*env)->GetIntArrayElements (env, jarr, NULL);
+ pix = g_malloc(width * height * (hasAlpha ? 4 : 3));
+
+ enctype = (*env)->GetStringUTFChars (env, jenctype, NULL);
+ g_assert(enctype != NULL);
+
+ g_assert (pix != NULL);
+ g_assert (ints != NULL);
+
+ p = pix;
+ for (i = 0; i < width*height; ++i)
+ {
+ /*
+ * Java encodes pixels as integers in a predictable arithmetic order:
+ * 0xAARRGGBB. Since these are jints, JNI has already byte-swapped
+ * them for us if necessary, so they're in "our" endianness, whatever
+ * that is. It uses 4 bytes per pixel whether or not there's an alpha
+ * channel.
+ */
+
+ a = 0xff & (ints[i] >> 24);
+ r = 0xff & (ints[i] >> 16);
+ g = 0xff & (ints[i] >> 8);
+ b = 0xff & ints[i];
+
+ /*
+ * GDK-pixbuf has a very different storage model:
+ *
+ * - A different alpha order (alpha after colors).
+ * - A different packing model (no alpha -> 3-bytes-per-pixel).
+ * - A different "RGB" order (host memory order, not endian-neutral).
+ */
+
+ *p++ = r;
+ *p++ = g;
+ *p++ = b;
+ if (hasAlpha)
+ *p++ = a;
+ }
+
+ gdk_threads_enter ();
+ pixbuf = gdk_pixbuf_new_from_data (pix,
+ GDK_COLORSPACE_RGB,
+ (gboolean) hasAlpha,
+ 8, width, height,
+ width * (hasAlpha ? 4 : 3), /* rowstride */
+ NULL, NULL);
+ g_assert (pixbuf != NULL);
+
+ g_assert(gdk_pixbuf_save_to_callback (pixbuf,
+ &save_to_stream,
+ &ssr,
+ enctype,
+ &err, NULL));
+
+ g_object_unref (pixbuf);
+
+ gdk_threads_leave ();
+ g_free(pix);
+
+ (*env)->ReleaseStringUTFChars (env, jenctype, enctype);
+ (*env)->ReleaseIntArrayElements (env, jarr, ints, 0);
+}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
new file mode 100644
index 00000000000..6b1b4a9f3b5
--- /dev/null
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
@@ -0,0 +1,328 @@
+/* gdkrobotpeer.c
+ Copyright (C) 2004 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. */
+
+#include "gtkpeer.h"
+#include "gnu_java_awt_peer_gtk_GdkRobotPeer.h"
+#include <gdk/gdkx.h>
+#include <X11/extensions/XTest.h>
+
+static int
+awt_button_mask_to_num (int buttons)
+{
+ switch (buttons)
+ {
+ case AWT_BUTTON1_MASK:
+ return 1;
+ case AWT_BUTTON2_MASK:
+ return 2;
+ case AWT_BUTTON3_MASK:
+ return 3;
+ }
+
+ return 0;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_initXTest
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ int event_basep;
+ int error_basep;
+ int majorp;
+ int minorp;
+ jboolean result;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ result = XTestQueryExtension (xdisplay,
+ &event_basep,
+ &error_basep,
+ &majorp,
+ &minorp);
+
+ gdk_threads_leave ();
+
+ return result;
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint x, jint y)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ int result;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ result = XTestFakeMotionEvent (xdisplay,
+ -1,
+ x, y, CurrentTime);
+
+ XFlush (xdisplay);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ int result;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ result = XTestFakeButtonEvent (xdisplay,
+ awt_button_mask_to_num (buttons),
+ True, CurrentTime);
+
+ XFlush (xdisplay);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ int result;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ result = XTestFakeButtonEvent (xdisplay,
+ awt_button_mask_to_num (buttons),
+ False, CurrentTime);
+
+ XFlush (xdisplay);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseWheel
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint wheelAmt)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ int i = 0;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ if (wheelAmt < 0)
+ for (i = 0; i < -wheelAmt; i++)
+ {
+ XTestFakeButtonEvent (xdisplay,
+ 4,
+ True, CurrentTime);
+ XTestFakeButtonEvent (xdisplay,
+ 4,
+ False, CurrentTime);
+ }
+ else
+ for (i = 0; i < wheelAmt; i++)
+ {
+ XTestFakeButtonEvent (xdisplay,
+ 5,
+ True, CurrentTime);
+ XTestFakeButtonEvent (xdisplay,
+ 5,
+ False, CurrentTime);
+ }
+
+ XFlush (xdisplay);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ GdkKeymapKey *keymap_keys = NULL;
+ gint n_keys = 0;
+ guint lookup_keyval = 0;
+ int result;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ lookup_keyval = awt_keycode_to_keysym (keycode, AWT_KEY_LOCATION_LEFT);
+
+ if (!gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
+ lookup_keyval,
+ &keymap_keys,
+ &n_keys))
+ {
+ /* No matching keymap entry was found. */
+ g_printerr ("No matching keymap entries were found\n");
+ gdk_threads_leave ();
+ return;
+ }
+
+ /* If n_keys > 1 then there are multiple hardware keycodes that
+ translate to lookup_keyval. We arbitrarily choose the first
+ hardware keycode from the list returned by
+ gdk_keymap_get_entries_for_keyval. */
+ result = XTestFakeKeyEvent (xdisplay,
+ keymap_keys[0].keycode,
+ True, CurrentTime);
+
+ g_free (keymap_keys);
+
+ XFlush (xdisplay);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode)
+{
+ GdkDisplay *display;
+ Display *xdisplay;
+ GdkKeymapKey *keymap_keys = NULL;
+ gint n_keys = 0;
+ guint lookup_keyval = 0;
+ int result;
+
+ gdk_threads_enter ();
+
+ display = gdk_display_get_default ();
+ xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+ lookup_keyval = awt_keycode_to_keysym (keycode, AWT_KEY_LOCATION_LEFT);
+
+ if (!gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
+ lookup_keyval,
+ &keymap_keys,
+ &n_keys))
+ {
+ /* No matching keymap entry was found. */
+ g_printerr ("No matching keymap entries were found\n");
+ gdk_threads_leave ();
+ return;
+ }
+
+ /* If n_keys > 1 then there are multiple hardware keycodes that
+ translate to lookup_keyval. We arbitrarily choose the first
+ hardware keycode from the list returned by
+ gdk_keymap_get_entries_for_keyval. */
+ result = XTestFakeKeyEvent (xdisplay,
+ keymap_keys[0].keycode,
+ False, CurrentTime);
+
+ g_free (keymap_keys);
+
+ XFlush (xdisplay);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT jintArray JNICALL
+Java_gnu_java_awt_peer_gtk_GdkRobotPeer_nativeGetRGBPixels
+ (JNIEnv *env, jobject obj __attribute__((unused)), jint x, jint y,
+ jint width, jint height)
+{
+ jint stride_bytes, stride_pixels, n_channels, n_pixels;
+ jintArray jpixels;
+ jint *java_pixels;
+ guchar *gdk_pixels;
+ GdkPixbuf *pixbuf_no_alpha = NULL;
+ GdkPixbuf *pixbuf = NULL;
+
+#ifndef WORDS_BIGENDIAN
+ int i;
+#endif
+
+ gdk_threads_enter ();
+
+ pixbuf_no_alpha = gdk_pixbuf_get_from_drawable (NULL,
+ gdk_get_default_root_window (),
+ NULL, x, y, 0, 0,
+ width, height);
+
+ pixbuf = gdk_pixbuf_add_alpha(pixbuf_no_alpha, FALSE, 0, 0, 0);
+ g_assert (gdk_pixbuf_get_has_alpha (pixbuf));
+
+ stride_bytes = gdk_pixbuf_get_rowstride (pixbuf);
+ n_channels = gdk_pixbuf_get_n_channels (pixbuf);
+ stride_pixels = stride_bytes / n_channels;
+ n_pixels = height * stride_pixels;
+ gdk_pixels = gdk_pixbuf_get_pixels (pixbuf);
+
+ jpixels = (*env)->NewIntArray (env, n_pixels);
+ java_pixels = (*env)->GetIntArrayElements (env, jpixels, NULL);
+
+ memcpy (java_pixels,
+ gdk_pixels,
+ (height * stride_bytes));
+
+#ifndef WORDS_BIGENDIAN
+ /* convert pixels from 0xBBGGRRAA to 0xAARRGGBB */
+ for (i = 0; i < n_pixels; ++i)
+ {
+ java_pixels[i] = SWAPU32 ((unsigned)java_pixels[i]);
+ }
+#endif
+
+ g_object_unref (pixbuf);
+
+ (*env)->ReleaseIntArrayElements (env, jpixels, java_pixels, 0);
+
+ gdk_threads_leave ();
+
+ return jpixels;
+}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
index 1cb43349536..94e98bf965a 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
@@ -315,10 +315,12 @@ focus_in_cb (GtkWidget *widget __attribute((unused)),
GdkEventFocus *event __attribute((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
AWT_FOCUS_GAINED,
JNI_FALSE);
+ gdk_threads_enter ();
return FALSE;
}
@@ -327,21 +329,27 @@ focus_out_cb (GtkWidget *widget __attribute((unused)),
GdkEventFocus *event __attribute((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
AWT_FOCUS_LOST,
JNI_FALSE);
+ gdk_threads_enter ();
return FALSE;
}
static void
block_expose_events_cb (GtkWidget *widget, jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
beginNativeRepaintID);
+ gdk_threads_enter ();
gdk_window_process_updates (widget->window, TRUE);
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
endNativeRepaintID);
+ gdk_threads_enter ();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
index 3b58c05d7ea..6c854eff855 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
@@ -208,7 +208,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
static void
item_toggled (GtkToggleButton *item, jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postItemEventID,
peer,
item->active ?
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
index 94c9c3d0c2d..b4e64e62d02 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
@@ -39,22 +39,24 @@ exception statement from your version. */
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkChoicePeer.h"
-static void selection_changed (GtkComboBox *combobox, gpointer data);
+static void selection_changed (GtkComboBox *combobox, jobject peer);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create
(JNIEnv *env, jobject obj)
{
GtkWidget *combobox;
+ jobject *gref;
NSA_SET_GLOBAL_REF (env, obj);
+ gref = NSA_GET_GLOBAL_REF (env, obj);
gdk_threads_enter ();
combobox = gtk_combo_box_new_text ();
g_signal_connect (combobox, "changed",
- G_CALLBACK (selection_changed), obj);
+ G_CALLBACK (selection_changed), *gref);
gdk_threads_leave ();
@@ -175,7 +177,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected
return index;
}
-void selection_changed (GtkComboBox *combobox, jobject peer)
+static void selection_changed (GtkComboBox *combobox, jobject peer)
{
jstring label;
GtkTreeModel *model;
@@ -195,8 +197,8 @@ void selection_changed (GtkComboBox *combobox, jobject peer)
gdk_threads_leave ();
- label = (*gdk_env)->NewStringUTF (gdk_env, selected);
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ label = (*gdk_env())->NewStringUTF (gdk_env(), selected);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
choicePostItemEventID,
label,
(jint) AWT_ITEM_SELECTED);
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
index 986244ee2f0..e05185790b3 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
@@ -110,15 +110,15 @@ selection_received (GtkWidget *widget __attribute__((unused)),
if (selection_data->length < 0
|| selection_data->type != GDK_SELECTION_TYPE_STRING)
{
- (*gdk_env)->CallVoidMethod (gdk_env, cb_obj, stringSelectionReceivedID,
- NULL);
+ (*gdk_env())->CallVoidMethod (gdk_env(), cb_obj, stringSelectionReceivedID,
+ NULL);
}
else
{
char *str = (char *) selection_data->data;
- (*gdk_env)->CallVoidMethod (gdk_env, cb_obj, stringSelectionReceivedID,
- (*gdk_env)->NewStringUTF (gdk_env, str));
+ (*gdk_env())->CallVoidMethod (gdk_env(), cb_obj, stringSelectionReceivedID,
+ (*gdk_env())->NewStringUTF (gdk_env(), str));
}
return;
@@ -135,7 +135,7 @@ selection_get (GtkWidget *widget __attribute__((unused)),
const char *utf;
jsize utflen;
- jstr = (*gdk_env)->CallObjectMethod (gdk_env, cb_obj,
+ jstr = (*gdk_env())->CallObjectMethod (gdk_env(), cb_obj,
stringSelectionHandlerID);
if (!jstr)
@@ -145,13 +145,13 @@ selection_get (GtkWidget *widget __attribute__((unused)),
return;
}
- utflen = (*gdk_env)->GetStringUTFLength (gdk_env, jstr);
- utf = (*gdk_env)->GetStringUTFChars (gdk_env, jstr, NULL);
+ utflen = (*gdk_env())->GetStringUTFLength (gdk_env(), jstr);
+ utf = (*gdk_env())->GetStringUTFChars (gdk_env(), jstr, NULL);
gtk_selection_data_set (selection_data, GDK_TARGET_STRING, 8,
(const unsigned char*)utf, utflen);
- (*gdk_env)->ReleaseStringUTFChars (gdk_env, jstr, utf);
+ (*gdk_env())->ReleaseStringUTFChars (gdk_env(), jstr, utf);
}
JNIEXPORT void JNICALL
@@ -177,7 +177,7 @@ gint
selection_clear (GtkWidget *widget __attribute__((unused)),
GdkEventSelection *event __attribute__((unused)))
{
- (*gdk_env)->CallVoidMethod (gdk_env, cb_obj, selectionClearID);
+ (*gdk_env())->CallVoidMethod (gdk_env(), cb_obj, selectionClearID);
return TRUE;
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
index 3aebe77755d..4cd3f16574f 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
@@ -60,7 +60,7 @@ static gboolean focus_out_cb (GtkWidget *widget,
#ifdef __GNUC__
__inline
#endif
-static guint
+guint
awt_keycode_to_keysym (jint keyCode, jint keyLocation)
{
/* GDK_A through GDK_Z */
@@ -1054,10 +1054,12 @@ focus_in_cb (GtkWidget *widget __attribute((unused)),
GdkEventFocus *event __attribute((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
AWT_FOCUS_GAINED,
JNI_FALSE);
+ gdk_threads_enter ();
return FALSE;
}
@@ -1066,9 +1068,11 @@ focus_out_cb (GtkWidget *widget __attribute((unused)),
GdkEventFocus *event __attribute((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
AWT_FOCUS_LOST,
JNI_FALSE);
+ gdk_threads_enter ();
return FALSE;
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
index 65f64e04eea..8d3dda93ad8 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
@@ -58,11 +58,11 @@ button_to_awt_mods (int button)
switch (button)
{
case 1:
- return AWT_BUTTON1_DOWN_MASK;
+ return AWT_BUTTON1_MASK;
case 2:
- return AWT_BUTTON2_DOWN_MASK;
+ return AWT_BUTTON2_MASK;
case 3:
- return AWT_BUTTON3_DOWN_MASK;
+ return AWT_BUTTON3_MASK;
}
return 0;
@@ -883,7 +883,8 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
switch (event->type)
{
case GDK_BUTTON_PRESS:
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postMouseEventID,
AWT_MOUSE_PRESSED,
(jlong)event->button.time,
@@ -894,13 +895,15 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
click_count,
(event->button.button == 3) ? JNI_TRUE :
JNI_FALSE);
+ gdk_threads_enter ();
hasBeenDragged = FALSE;
break;
case GDK_BUTTON_RELEASE:
{
int width, height;
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postMouseEventID,
AWT_MOUSE_RELEASED,
(jlong)event->button.time,
@@ -910,6 +913,7 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
(jint)event->button.y,
click_count,
JNI_FALSE);
+ gdk_threads_enter ();
/* Generate an AWT click event only if the release occured in the
window it was pressed in, and the mouse has not been dragged since
@@ -921,7 +925,8 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
&& event->button.x <= width
&& event->button.y <= height)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postMouseEventID,
AWT_MOUSE_CLICKED,
(jlong)event->button.time,
@@ -931,6 +936,7 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
(jint)event->button.y,
click_count,
JNI_FALSE);
+ gdk_threads_enter ();
}
}
break;
@@ -941,7 +947,8 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
| GDK_BUTTON4_MASK
| GDK_BUTTON5_MASK))
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postMouseEventID,
AWT_MOUSE_DRAGGED,
(jlong)event->motion.time,
@@ -950,44 +957,58 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
(jint)event->motion.y,
0,
JNI_FALSE);
+ gdk_threads_enter ();
hasBeenDragged = TRUE;
}
else
- (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID,
- AWT_MOUSE_MOVED,
- (jlong)event->motion.time,
- state_to_awt_mods (event->motion.state),
- (jint)event->motion.x,
- (jint)event->motion.y,
- 0,
- JNI_FALSE);
+ {
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, postMouseEventID,
+ AWT_MOUSE_MOVED,
+ (jlong)event->motion.time,
+ state_to_awt_mods (event->motion.state),
+ (jint)event->motion.x,
+ (jint)event->motion.y,
+ 0,
+ JNI_FALSE);
+ gdk_threads_enter ();
+ }
+
break;
case GDK_ENTER_NOTIFY:
/* We are not interested in enter events that are due to
grab/ungrab and not to actually crossing boundaries */
if (event->crossing.mode == GDK_CROSSING_NORMAL)
- (*gdk_env)->CallVoidMethod (gdk_env, peer, postMouseEventID,
- AWT_MOUSE_ENTERED,
- (jlong)event->crossing.time,
- state_to_awt_mods_with_button_states (event->crossing.state),
- (jint)event->crossing.x,
- (jint)event->crossing.y,
- 0,
- JNI_FALSE);
+ {
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, postMouseEventID,
+ AWT_MOUSE_ENTERED,
+ (jlong)event->crossing.time,
+ state_to_awt_mods_with_button_states (event->crossing.state),
+ (jint)event->crossing.x,
+ (jint)event->crossing.y,
+ 0,
+ JNI_FALSE);
+ gdk_threads_enter ();
+ }
break;
case GDK_LEAVE_NOTIFY:
/* We are not interested in leave events that are due to
grab/ungrab and not to actually crossing boundaries */
if (event->crossing.mode == GDK_CROSSING_NORMAL)
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
- postMouseEventID,
- AWT_MOUSE_EXITED,
- (jlong)event->crossing.time,
- state_to_awt_mods_with_button_states (event->crossing.state),
- (jint)event->crossing.x,
- (jint)event->crossing.y,
- 0,
- JNI_FALSE);
+ {
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
+ postMouseEventID,
+ AWT_MOUSE_EXITED,
+ (jlong)event->crossing.time,
+ state_to_awt_mods_with_button_states (event->crossing.state),
+ (jint)event->crossing.x,
+ (jint)event->crossing.y,
+ 0,
+ JNI_FALSE);
+ gdk_threads_enter ();
+ }
break;
case GDK_CONFIGURE:
{
@@ -1001,7 +1022,7 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
returns. */
gdk_threads_leave ();
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postConfigureEventID,
(jint) event->configure.x,
(jint) event->configure.y,
@@ -1012,20 +1033,24 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
}
break;
case GDK_EXPOSE:
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postExposeEventID,
(jint)event->expose.area.x,
(jint)event->expose.area.y,
(jint)event->expose.area.width,
(jint)event->expose.area.height);
+ gdk_threads_enter ();
break;
case GDK_FOCUS_CHANGE:
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postFocusEventID,
(jint) (event->focus_change.in) ?
AWT_FOCUS_GAINED : AWT_FOCUS_LOST,
JNI_FALSE);
+ gdk_threads_enter ();
break;
case GDK_KEY_PRESS:
if (GTK_IS_WINDOW (widget))
@@ -1033,7 +1058,8 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
/* GdkEventKey *keyevent = (GdkEventKey *) event; */
/* g_printerr ("key press event: sent: %d time: %d state: %d keyval: %d length: %d string: %s hardware_keycode: %d group: %d\n", keyevent->send_event, keyevent->time, keyevent->state, keyevent->keyval, keyevent->length, keyevent->string, keyevent->hardware_keycode, keyevent->group); */
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postKeyEventID,
(jint) AWT_KEY_PRESSED,
(jlong) event->key.time,
@@ -1041,6 +1067,7 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
keysym_to_awt_keycode (event),
keyevent_to_awt_keychar (event),
keysym_to_awt_keylocation (event));
+ gdk_threads_enter ();
/* FIXME: generation of key typed events needs to be moved
to GtkComponentPeer.postKeyEvent. If the key in a key
press event is not an "action" key
@@ -1054,7 +1081,8 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
case GDK_KEY_RELEASE:
if (GTK_IS_WINDOW (widget))
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postKeyEventID,
(jint) AWT_KEY_RELEASED,
(jlong) event->key.time,
@@ -1062,6 +1090,7 @@ pre_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
keysym_to_awt_keycode (event),
keyevent_to_awt_keychar (event),
keysym_to_awt_keylocation (event));
+ gdk_threads_enter ();
return TRUE;
}
else
@@ -1135,13 +1164,13 @@ void connect_awt_hook_cb (GtkWidget *widget __attribute__((unused)),
{
void *ptr;
- ptr = NSA_GET_PTR (gdk_env, peer);
+ ptr = NSA_GET_PTR (gdk_env(), peer);
- connect_awt_hook (gdk_env, peer, 1, GTK_WIDGET (ptr)->window);
+ connect_awt_hook (gdk_env(), peer, 1, GTK_WIDGET (ptr)->window);
gdk_threads_leave ();
- (*gdk_env)->CallVoidMethod (gdk_env, peer, setCursorID);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, setCursorID);
gdk_threads_enter ();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
index 3a2e41f21a7..791916174ed 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
@@ -41,8 +41,8 @@ exception statement from your version. */
#include "gnu_java_awt_peer_gtk_GtkFileDialogPeer.h"
static void handle_response (GtkDialog *dialog,
- gint responseId,
- jobject peer_obj);
+ gint responseId,
+ jobject peer_obj);
/*
* Make a new file selection dialog
@@ -62,15 +62,17 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
gdk_threads_enter ();
- widget = gtk_file_chooser_dialog_new("",
- GTK_WINDOW(parentp),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- NULL);
-
- /* GtkFileChooser doesn't show hidden files by default. */
- g_object_set(GTK_FILE_CHOOSER(widget), "show_hidden", TRUE);
+ /* FIXME: we should be using the default gnome-vfs backend but it is
+ not currently thread-safe. See:
+ http://bugzilla.gnome.org/show_bug.cgi?id=166852 */
+ widget = gtk_file_chooser_dialog_new_with_backend
+ ("Open File",
+ GTK_WINDOW(parentp),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ "gtk+",
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+ NULL);
/* GtkFileSelect is not modal by default */
gtk_window_set_modal (GTK_WINDOW (widget), TRUE);
@@ -97,7 +99,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectSignals
g_signal_connect (G_OBJECT (GTK_DIALOG (ptr)),
"response",
GTK_SIGNAL_FUNC (handle_response), *gref);
-
+
gdk_threads_leave ();
/* Connect the superclass signals. */
@@ -112,7 +114,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeGetDirectory
const char *str;
ptr = NSA_GET_PTR (env, obj);
-
+
gdk_threads_enter ();
str = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(ptr));
@@ -135,14 +137,14 @@ static gboolean filenameFilterCallback (const GtkFileFilterInfo *filter_info,
jstring *filename;
gboolean accepted;
- cx = (*gdk_env)->GetObjectClass (gdk_env, (jobject) obj);
- id = (*gdk_env)->GetMethodID (gdk_env, cx, "filenameFilterCallback",
+ cx = (*gdk_env())->GetObjectClass (gdk_env(), (jobject) obj);
+ id = (*gdk_env())->GetMethodID (gdk_env(), cx, "filenameFilterCallback",
"(Ljava/lang/String;)Z");
- filename = (*gdk_env)->NewStringUTF(gdk_env, filter_info->filename);
-
+ filename = (*gdk_env())->NewStringUTF(gdk_env(), filter_info->filename);
+
gdk_threads_leave();
- accepted = (*gdk_env)->CallBooleanMethod(gdk_env, obj, id, filename);
+ accepted = (*gdk_env())->CallBooleanMethod(gdk_env(), obj, id, filename);
gdk_threads_enter();
return accepted;
@@ -166,8 +168,8 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter
gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(ptr), filter);
gdk_threads_leave ();
- }
-
+}
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetDirectory
(JNIEnv *env, jobject obj, jstring directory)
@@ -196,7 +198,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile
ptr = NSA_GET_PTR (env, obj);
str = (*env)->GetStringUTFChars (env, filename, 0);
-
+
gdk_threads_enter ();
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (ptr), str);
gdk_threads_leave ();
@@ -207,7 +209,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile
static void
handle_response (GtkDialog *dialog __attribute__((unused)),
gint responseId,
- jobject peer_obj)
+ jobject peer_obj)
{
static int isDisposeIDSet = 0;
static int isIDSet = 0;
@@ -221,51 +223,51 @@ handle_response (GtkDialog *dialog __attribute__((unused)),
/* We only need this for the case when the user closed the window,
or clicked ok or cancel. */
if (responseId != GTK_RESPONSE_DELETE_EVENT
- && responseId != GTK_RESPONSE_OK
+ && responseId != GTK_RESPONSE_ACCEPT
&& responseId != GTK_RESPONSE_CANCEL)
return;
-
- ptr = NSA_GET_PTR (gdk_env, peer_obj);
-
+
+ ptr = NSA_GET_PTR (gdk_env(), peer_obj);
+
if (responseId == GTK_RESPONSE_DELETE_EVENT)
{
if (!isDisposeIDSet)
- {
- jclass cx = (*gdk_env)->GetObjectClass (gdk_env, peer_obj);
- disposeID = (*gdk_env)->GetMethodID (gdk_env, cx, "gtkDisposeFileDialog", "()V");
+ {
+ jclass cx = (*gdk_env())->GetObjectClass (gdk_env(), peer_obj);
+ disposeID = (*gdk_env())->GetMethodID (gdk_env(), cx, "gtkDisposeFileDialog", "()V");
isDisposeIDSet = 1;
- }
-
- gdk_threads_leave ();
+ }
+ gdk_threads_leave ();
+
/* We can dispose of the dialog now (and unblock show) */
- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, disposeID);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer_obj, disposeID);
- gdk_threads_enter ();
+ gdk_threads_enter ();
return;
-}
+ }
- if (responseId == GTK_RESPONSE_OK) {
+ if (responseId == GTK_RESPONSE_ACCEPT) {
fileName = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (GTK_WIDGET (ptr)));
- str_fileName = (*gdk_env)->NewStringUTF (gdk_env, fileName);
+ str_fileName = (*gdk_env())->NewStringUTF (gdk_env(), fileName);
}
-
+
if (!isIDSet)
{
- jclass cx = (*gdk_env)->GetObjectClass (gdk_env, peer_obj);
- hideID = (*gdk_env)->GetMethodID (gdk_env, cx, "gtkHideFileDialog", "()V");
- gtkSetFilenameID = (*gdk_env)->GetMethodID (gdk_env, cx,
+ jclass cx = (*gdk_env())->GetObjectClass (gdk_env(), peer_obj);
+ hideID = (*gdk_env())->GetMethodID (gdk_env(), cx, "gtkHideFileDialog", "()V");
+ gtkSetFilenameID = (*gdk_env())->GetMethodID (gdk_env(), cx,
"gtkSetFilename", "(Ljava/lang/String;)V");
isIDSet = 1;
}
gdk_threads_leave ();
-
+
/* Set the Java object field 'file' with this value. */
- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, gtkSetFilenameID, str_fileName);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer_obj, gtkSetFilenameID, str_fileName);
/* We can hide the dialog now (and unblock show) */
- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj, hideID);
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer_obj, hideID);
gdk_threads_enter ();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
index 5c48832f9be..52da40cae5d 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
@@ -177,3 +177,47 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImageFromDecoder
gdk_threads_leave ();
}
+
+static void
+free_pixbuf_data (guchar *pixels, gpointer data __attribute__((unused)))
+{
+ free(pixels);
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImageFromData
+ (JNIEnv *env, jobject obj, jintArray pixelArray, jint width, jint height)
+{
+ void *ptr;
+ GdkPixbuf *pixbuf;
+ jint *pixels;
+ int pixels_length, i;
+ guchar *data;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ pixels = (*env)->GetIntArrayElements (env, pixelArray, 0);
+ pixels_length = (*env)->GetArrayLength (env, pixelArray);
+
+ data = malloc (sizeof (guchar) * pixels_length);
+ for (i = 0; i < pixels_length; i++)
+ data[i] = (guchar) pixels[i];
+
+ gdk_threads_enter ();
+
+ pixbuf = gdk_pixbuf_new_from_data (data,
+ GDK_COLORSPACE_RGB,
+ TRUE,
+ 8,
+ width,
+ height,
+ width*4,
+ free_pixbuf_data,
+ NULL);
+
+ gtk_window_set_icon (GTK_WINDOW (ptr), pixbuf);
+
+ gdk_threads_leave ();
+
+ (*env)->ReleaseIntArrayElements(env, pixelArray, pixels, 0);
+}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
index 8eebce98082..49ccffcf660 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
@@ -45,9 +45,7 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
{
void *ptr;
- /* Remove entries from state tables */
- NSA_DEL_GLOBAL_REF (env, obj);
- ptr = NSA_DEL_PTR (env, obj);
+ ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
@@ -56,6 +54,17 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
gtk_widget_destroy (GTK_WIDGET (ptr));
gdk_threads_leave ();
+
+ /* Remove entries from state tables */
+ NSA_DEL_GLOBAL_REF (env, obj);
+ NSA_DEL_PTR (env, obj);
+
+ /*
+ * Wake up the main thread, to make sure it re-checks the window
+ * destruction condition.
+ */
+
+ g_main_context_wakeup (NULL);
}
JNIEXPORT void JNICALL
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
index 575f3c9a596..468be06c157 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
@@ -1,5 +1,5 @@
-/* gtklistpeer.c -- Native implementation of GtkListPeer
- Copyright (C) 1998, 1999, 2004 Free Software Foundation, Inc.
+/* GtkListPeer.c -- implements GtkListPeer's native methods
+ Copyright (C) 1998, 1999, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -498,12 +498,12 @@ item_highlighted (GtkTreeSelection *selection __attribute__((unused)),
row = indices ? indices[0] : -1;
if (!path_currently_selected)
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postListItemEventID,
row,
(jint) AWT_ITEM_SELECTED);
else
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postListItemEventID,
row,
(jint) AWT_ITEM_DESELECTED);
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
deleted file mode 100644
index 8a2a8105d0a..00000000000
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
+++ /dev/null
@@ -1,307 +0,0 @@
-/* gtkmainthread.c -- Native implementation of GtkMainThread
- Copyright (C) 1998, 1999, 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. */
-
-
-#include "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkMainThread.h"
-#include "gthread-jni.h"
-
-#ifdef JVM_SUN
- struct state_table *native_state_table;
- struct state_table *native_global_ref_table;
-#endif
-
-jmethodID setBoundsCallbackID;
-
-jmethodID postActionEventID;
-jmethodID postMenuActionEventID;
-jmethodID postMouseEventID;
-jmethodID postConfigureEventID;
-jmethodID postExposeEventID;
-jmethodID postKeyEventID;
-jmethodID postFocusEventID;
-jmethodID postAdjustmentEventID;
-jmethodID postItemEventID;
-jmethodID choicePostItemEventID;
-jmethodID postListItemEventID;
-jmethodID postTextEventID;
-jmethodID postWindowEventID;
-
-jmethodID beginNativeRepaintID;
-jmethodID endNativeRepaintID;
-
-jmethodID initComponentGraphicsID;
-jmethodID initComponentGraphics2DID;
-jmethodID setCursorID;
-
-JNIEnv *gdk_env;
-
-GtkWindowGroup *global_gtk_window_group;
-
-static void init_glib_threads(JNIEnv *, jint);
-
-double dpi_conversion_factor;
-
-static void init_dpi_conversion_factor (void);
-static void dpi_changed_cb (GtkSettings *settings,
- GParamSpec *pspec);
-
-/*
- * Call gtk_init. It is very important that this happen before any other
- * gtk calls.
- *
- * The portableNativeSync argument may have the values:
- * 1 if the Java property gnu.classpath.awt.gtk.portable.native.sync
- * is set to "true".
- * 0 if it is set to "false"
- * -1 if unset.
- */
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz,
- jint portableNativeSync)
-{
- int argc = 1;
- char **argv;
- char *homedir, *rcpath = NULL;
- jclass gtkcomponentpeer, gtkchoicepeer, gtkwindowpeer, gtkscrollbarpeer, gtklistpeer,
- gtkmenuitempeer, gtktextcomponentpeer, window, gdkgraphics, gdkgraphics2d;
-
- NSA_INIT (env, clazz);
- gdk_env = env;
-
- /* GTK requires a program's argc and argv variables, and requires that they
- be valid. Set it up. */
- argv = (char **) g_malloc (sizeof (char *) * 2);
- argv[0] = (char *) g_malloc(1);
-#if 1
- strcpy(argv[0], "");
-#else /* The following is a more efficient alternative, but less intuitively
- * expresses what we are trying to do. This code is only run once, so
- * I'm going for intuitive. */
- argv[0][0] = '\0';
-#endif
- argv[1] = NULL;
-
- init_glib_threads(env, portableNativeSync);
-
- /* From GDK 2.0 onwards we have to explicitly call gdk_threads_init */
- gdk_threads_init();
-
- gtk_init (&argc, &argv);
-
- gdk_rgb_init ();
- gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
- gtk_widget_set_default_visual (gdk_rgb_get_visual ());
-
- /* Make sure queued calls don't get sent to GTK/GDK while
- we're shutting down. */
- atexit (gdk_threads_enter);
-
- gdk_event_handler_set ((GdkEventFunc)awt_event_handler, NULL, NULL);
-
- if ((homedir = getenv ("HOME")))
- {
- rcpath = (char *) g_malloc (strlen (homedir) + strlen (RC_FILE) + 2);
- sprintf (rcpath, "%s/%s", homedir, RC_FILE);
- }
-
- gtk_rc_parse ((rcpath) ? rcpath : RC_FILE);
-
- g_free (rcpath);
- g_free (argv[0]);
- g_free (argv);
-
- /* setup cached IDs for posting GTK events to Java */
-
- window = (*env)->FindClass (env, "java/awt/Window");
-
- gtkcomponentpeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkComponentPeer");
- gtkchoicepeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkChoicePeer");
- gtkwindowpeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkWindowPeer");
- gtkscrollbarpeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkScrollbarPeer");
- gtklistpeer = (*env)->FindClass (env, "gnu/java/awt/peer/gtk/GtkListPeer");
- gtkmenuitempeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkMenuItemPeer");
- gtktextcomponentpeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkTextComponentPeer");
- gdkgraphics = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GdkGraphics");
- gdkgraphics2d = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GdkGraphics2D");
- setBoundsCallbackID = (*env)->GetMethodID (env, window,
- "setBoundsCallback",
- "(IIII)V");
-
- postMenuActionEventID = (*env)->GetMethodID (env, gtkmenuitempeer,
- "postMenuActionEvent",
- "()V");
- postMouseEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "postMouseEvent", "(IJIIIIZ)V");
- setCursorID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "setCursor", "()V");
- beginNativeRepaintID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "beginNativeRepaint", "()V");
-
- endNativeRepaintID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "endNativeRepaint", "()V");
-
- postConfigureEventID = (*env)->GetMethodID (env, gtkwindowpeer,
- "postConfigureEvent", "(IIII)V");
- postWindowEventID = (*env)->GetMethodID (env, gtkwindowpeer,
- "postWindowEvent",
- "(ILjava/awt/Window;I)V");
- postExposeEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "postExposeEvent", "(IIII)V");
- postKeyEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "postKeyEvent", "(IJIICI)V");
- postFocusEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "postFocusEvent", "(IZ)V");
- postAdjustmentEventID = (*env)->GetMethodID (env, gtkscrollbarpeer,
- "postAdjustmentEvent",
- "(II)V");
- postItemEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
- "postItemEvent",
- "(Ljava/lang/Object;I)V");
- choicePostItemEventID = (*env)->GetMethodID (env, gtkchoicepeer,
- "choicePostItemEvent",
- "(Ljava/lang/String;I)V");
- postListItemEventID = (*env)->GetMethodID (env, gtklistpeer,
- "postItemEvent",
- "(II)V");
- postTextEventID = (*env)->GetMethodID (env, gtktextcomponentpeer,
- "postTextEvent",
- "()V");
- initComponentGraphicsID = (*env)->GetMethodID (env, gdkgraphics,
- "initComponentGraphics",
- "()V");
- initComponentGraphics2DID = (*env)->GetMethodID (env, gdkgraphics2d,
- "initComponentGraphics2D",
- "()V");
- global_gtk_window_group = gtk_window_group_new ();
-
- init_dpi_conversion_factor ();
-}
-
-
-/** Initialize GLIB's threads properly, based on the value of the
- gnu.classpath.awt.gtk.portable.native.sync Java system property. If
- that's unset, use the PORTABLE_NATIVE_SYNC config.h macro. (TODO:
- In some release following 0.10, that config.h macro will go away.)
- */
-static void
-init_glib_threads(JNIEnv *env, jint portableNativeSync)
-{
- if (portableNativeSync < 0)
- {
-#ifdef PORTABLE_NATIVE_SYNC /* Default value, if not set by the Java system
- property */
- portableNativeSync = 1;
-#else
- portableNativeSync = 0;
-#endif
- }
-
- (*env)->GetJavaVM( env, &the_vm );
- if (portableNativeSync)
- g_thread_init ( &portable_native_sync_jni_functions );
- else
- g_thread_init ( NULL );
-
- /* Debugging progress message; uncomment if needed: */
- /* printf("called gthread init\n"); */
-}
-
-
-
-/*
- * Run gtk_main and block.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkMain
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- gdk_threads_enter ();
- gtk_main ();
- gdk_threads_leave ();
-}
-
-/* This is a big hack, needed until this pango bug is resolved:
- http://bugzilla.gnome.org/show_bug.cgi?id=119081.
- See: http://mail.gnome.org/archives/gtk-i18n-list/2003-August/msg00001.html
- for details. */
-static void
-init_dpi_conversion_factor ()
-{
- GtkSettings *settings = gtk_settings_get_default ();
- GObjectClass *klass;
-
- klass = G_OBJECT_CLASS (GTK_SETTINGS_GET_CLASS (settings));
- if (g_object_class_find_property (klass, "gtk-xft-dpi"))
- {
- int int_dpi;
- g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL);
- /* If int_dpi == -1 gtk-xft-dpi returns the default value. So we
- have to do approximate calculation here. */
- if (int_dpi < 0)
- dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
- else
- dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE);
-
- g_signal_connect (settings, "notify::gtk-xft-dpi",
- G_CALLBACK (dpi_changed_cb), NULL);
- }
- else
- /* Approximate. */
- dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
-}
-
-static void
-dpi_changed_cb (GtkSettings *settings,
- GParamSpec *pspec __attribute__((unused)))
-{
- int int_dpi;
- g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL);
- if (int_dpi < 0)
- dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
- else
- dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE);
-}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
index 4d68fce7053..1fe18f9f064 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
@@ -165,6 +165,6 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
static void
item_activate (GtkMenuItem *item __attribute__((unused)), jobject peer_obj)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer_obj,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer_obj,
postMenuActionEventID);
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
index 4f834460f95..790c90109ae 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
@@ -160,6 +160,6 @@ post_change_event (GtkRange *range, jobject peer)
{
GtkAdjustment *adj;
adj = gtk_range_get_adjustment (range);
- (*gdk_env)->CallVoidMethod (gdk_env, peer, postAdjustmentEventID,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, postAdjustmentEventID,
AWT_ADJUSTMENT_TRACK, (jint) adj->value);
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
index 771f2b81d75..6eb06e073f0 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
@@ -492,5 +492,7 @@ static void
textcomponent_changed_cb (GtkEditable *editable __attribute__((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer, postTextEventID);
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer, postTextEventID);
+ gdk_threads_enter ();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
index 6234b29c913..8cb9e2f5d68 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
@@ -38,9 +38,375 @@ exception statement from your version. */
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkToolkit.h"
+#include "gthread-jni.h"
+
+#include <sys/time.h>
+
+#ifdef JVM_SUN
+ struct state_table *native_state_table;
+ struct state_table *native_global_ref_table;
+#endif
+
+jmethodID setBoundsCallbackID;
+
+jmethodID postActionEventID;
+jmethodID postMenuActionEventID;
+jmethodID postMouseEventID;
+jmethodID postConfigureEventID;
+jmethodID postExposeEventID;
+jmethodID postKeyEventID;
+jmethodID postFocusEventID;
+jmethodID postAdjustmentEventID;
+jmethodID postItemEventID;
+jmethodID choicePostItemEventID;
+jmethodID postListItemEventID;
+jmethodID postTextEventID;
+jmethodID postWindowEventID;
+jmethodID postInsetsChangedEventID;
+jmethodID windowGetWidthID;
+jmethodID windowGetHeightID;
+
+jmethodID beginNativeRepaintID;
+jmethodID endNativeRepaintID;
+
+jmethodID initComponentGraphicsID;
+jmethodID initComponentGraphics2DID;
+jmethodID setCursorID;
+
+JavaVM *java_vm;
+
+union env_union
+{
+ void *void_env;
+ JNIEnv *jni_env;
+};
+
+JNIEnv *
+gdk_env()
+{
+ union env_union tmp;
+ g_assert((*java_vm)->GetEnv(java_vm, &tmp.void_env, JNI_VERSION_1_2) == JNI_OK);
+ return tmp.jni_env;
+}
+
+
+GtkWindowGroup *global_gtk_window_group;
+
+static void init_glib_threads(JNIEnv *, jint);
+
+double dpi_conversion_factor;
+
+static void init_dpi_conversion_factor (void);
+static void dpi_changed_cb (GtkSettings *settings,
+ GParamSpec *pspec);
+
+/*
+ * Call gtk_init. It is very important that this happen before any other
+ * gtk calls.
+ *
+ * The portableNativeSync argument may have the values:
+ * 1 if the Java property gnu.classpath.awt.gtk.portable.native.sync
+ * is set to "true".
+ * 0 if it is set to "false"
+ * -1 if unset.
+ */
+
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
+ jclass clazz __attribute__((unused)),
+ jint portableNativeSync)
+{
+ int argc = 1;
+ char **argv;
+ char *homedir, *rcpath = NULL;
+
+ jclass gtkgenericpeer, gtkcomponentpeer, gtkchoicepeer, gtkwindowpeer, gtkscrollbarpeer, gtklistpeer,
+ gtkmenuitempeer, gtktextcomponentpeer, window, gdkgraphics, gdkgraphics2d;
+
+ gtkgenericpeer = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkGenericPeer");
+
+ NSA_INIT (env, gtkgenericpeer);
+
+ g_assert((*env)->GetJavaVM(env, &java_vm) == 0);
+
+ /* GTK requires a program's argc and argv variables, and requires that they
+ be valid. Set it up. */
+ argv = (char **) g_malloc (sizeof (char *) * 2);
+ argv[0] = (char *) g_malloc(1);
+#if 1
+ strcpy(argv[0], "");
+#else /* The following is a more efficient alternative, but less intuitively
+ * expresses what we are trying to do. This code is only run once, so
+ * I'm going for intuitive. */
+ argv[0][0] = '\0';
+#endif
+ argv[1] = NULL;
+
+ init_glib_threads(env, portableNativeSync);
+
+ /* From GDK 2.0 onwards we have to explicitly call gdk_threads_init */
+ gdk_threads_init();
+
+ gtk_init (&argc, &argv);
+
+ gdk_rgb_init ();
+ gtk_widget_set_default_colormap (gdk_rgb_get_cmap ());
+ gtk_widget_set_default_visual (gdk_rgb_get_visual ());
+
+ /* Make sure queued calls don't get sent to GTK/GDK while
+ we're shutting down. */
+ atexit (gdk_threads_enter);
+
+ gdk_event_handler_set ((GdkEventFunc)awt_event_handler, NULL, NULL);
+
+ if ((homedir = getenv ("HOME")))
+ {
+ rcpath = (char *) g_malloc (strlen (homedir) + strlen (RC_FILE) + 2);
+ sprintf (rcpath, "%s/%s", homedir, RC_FILE);
+ }
+
+ gtk_rc_parse ((rcpath) ? rcpath : RC_FILE);
+
+ g_free (rcpath);
+ g_free (argv[0]);
+ g_free (argv);
+
+ /* setup cached IDs for posting GTK events to Java */
+
+ window = (*env)->FindClass (env, "java/awt/Window");
+
+ gtkcomponentpeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkComponentPeer");
+ gtkchoicepeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkChoicePeer");
+ gtkwindowpeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkWindowPeer");
+ gtkscrollbarpeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkScrollbarPeer");
+ gtklistpeer = (*env)->FindClass (env, "gnu/java/awt/peer/gtk/GtkListPeer");
+ gtkmenuitempeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkMenuItemPeer");
+ gtktextcomponentpeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkTextComponentPeer");
+ gdkgraphics = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GdkGraphics");
+ gdkgraphics2d = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GdkGraphics2D");
+ setBoundsCallbackID = (*env)->GetMethodID (env, window,
+ "setBoundsCallback",
+ "(IIII)V");
+
+ postMenuActionEventID = (*env)->GetMethodID (env, gtkmenuitempeer,
+ "postMenuActionEvent",
+ "()V");
+ postMouseEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "postMouseEvent", "(IJIIIIZ)V");
+ setCursorID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "setCursor", "()V");
+ beginNativeRepaintID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "beginNativeRepaint", "()V");
+
+ endNativeRepaintID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "endNativeRepaint", "()V");
+
+ postConfigureEventID = (*env)->GetMethodID (env, gtkwindowpeer,
+ "postConfigureEvent", "(IIII)V");
+ postWindowEventID = (*env)->GetMethodID (env, gtkwindowpeer,
+ "postWindowEvent",
+ "(ILjava/awt/Window;I)V");
+ postInsetsChangedEventID = (*env)->GetMethodID (env, gtkwindowpeer,
+ "postInsetsChangedEvent",
+ "(IIII)V");
+ windowGetWidthID = (*env)->GetMethodID (env, gtkwindowpeer,
+ "getWidth", "()I");
+ windowGetHeightID = (*env)->GetMethodID (env, gtkwindowpeer,
+ "getHeight", "()I");
+
+ postExposeEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "postExposeEvent", "(IIII)V");
+ postKeyEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "postKeyEvent", "(IJIICI)V");
+ postFocusEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "postFocusEvent", "(IZ)V");
+ postAdjustmentEventID = (*env)->GetMethodID (env, gtkscrollbarpeer,
+ "postAdjustmentEvent",
+ "(II)V");
+ postItemEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
+ "postItemEvent",
+ "(Ljava/lang/Object;I)V");
+ choicePostItemEventID = (*env)->GetMethodID (env, gtkchoicepeer,
+ "choicePostItemEvent",
+ "(Ljava/lang/String;I)V");
+ postListItemEventID = (*env)->GetMethodID (env, gtklistpeer,
+ "postItemEvent",
+ "(II)V");
+ postTextEventID = (*env)->GetMethodID (env, gtktextcomponentpeer,
+ "postTextEvent",
+ "()V");
+ initComponentGraphicsID = (*env)->GetMethodID (env, gdkgraphics,
+ "initComponentGraphics",
+ "()V");
+ initComponentGraphics2DID = (*env)->GetMethodID (env, gdkgraphics2d,
+ "initComponentGraphics2D",
+ "()V");
+ global_gtk_window_group = gtk_window_group_new ();
+
+ init_dpi_conversion_factor ();
+}
+
+
+/** Initialize GLIB's threads properly, based on the value of the
+ gnu.classpath.awt.gtk.portable.native.sync Java system property. If
+ that's unset, use the PORTABLE_NATIVE_SYNC config.h macro. (TODO:
+ In some release following 0.10, that config.h macro will go away.)
+ */
+static void
+init_glib_threads(JNIEnv *env, jint portableNativeSync)
+{
+ if (portableNativeSync < 0)
+ {
+#ifdef PORTABLE_NATIVE_SYNC /* Default value, if not set by the Java system
+ property */
+ portableNativeSync = 1;
+#else
+ portableNativeSync = 0;
+#endif
+ }
+
+ (*env)->GetJavaVM( env, &the_vm );
+ if (portableNativeSync)
+ g_thread_init ( &portable_native_sync_jni_functions );
+ else
+ g_thread_init ( NULL );
+
+ /* Debugging progress message; uncomment if needed: */
+ /* printf("called gthread init\n"); */
+}
+
+
+/* This is a big hack, needed until this pango bug is resolved:
+ http://bugzilla.gnome.org/show_bug.cgi?id=119081.
+ See: http://mail.gnome.org/archives/gtk-i18n-list/2003-August/msg00001.html
+ for details. */
+static void
+init_dpi_conversion_factor ()
+{
+ GtkSettings *settings = gtk_settings_get_default ();
+ GObjectClass *klass;
+
+ klass = G_OBJECT_CLASS (GTK_SETTINGS_GET_CLASS (settings));
+ if (g_object_class_find_property (klass, "gtk-xft-dpi"))
+ {
+ int int_dpi;
+ g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL);
+ /* If int_dpi == -1 gtk-xft-dpi returns the default value. So we
+ have to do approximate calculation here. */
+ if (int_dpi < 0)
+ dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
+ else
+ dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE);
+
+ g_signal_connect (settings, "notify::gtk-xft-dpi",
+ G_CALLBACK (dpi_changed_cb), NULL);
+ }
+ else
+ /* Approximate. */
+ dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
+}
+
+static void
+dpi_changed_cb (GtkSettings *settings,
+ GParamSpec *pspec __attribute__((unused)))
+{
+ int int_dpi;
+ g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL);
+ if (int_dpi < 0)
+ dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
+ else
+ dpi_conversion_factor = PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE);
+}
+
+static int
+within_human_latency_tolerance(struct timeval *init)
+{
+ struct timeval curr;
+ unsigned long milliseconds_elapsed;
+
+ gettimeofday(&curr, NULL);
+
+ milliseconds_elapsed = (((curr.tv_sec * 1000) + (curr.tv_usec / 1000))
+ - ((init->tv_sec * 1000) + (init->tv_usec / 1000)));
+
+ return milliseconds_elapsed < 100;
+}
+
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue
+(JNIEnv *env,
+ jobject self __attribute__((unused)),
+ jobject lockedQueue,
+ jboolean block)
+{
+ /* We're holding an EventQueue lock, and we're about to acquire the GDK
+ * lock before dropping the EventQueue lock. This can deadlock if someone
+ * holds the GDK lock and wants to acquire the EventQueue lock; however
+ * all callbacks from GTK happen with the GDK lock released, so this
+ * would only happen in an odd case such as some JNI helper code
+ * acquiring the GDK lock and calling back into
+ * EventQueue.getNextEvent().
+ */
+
+ struct timeval init;
+ gettimeofday(&init, NULL);
+
+ gdk_threads_enter ();
+ (*env)->MonitorExit (env, lockedQueue);
+
+ if (block)
+ {
+
+ /* If we're blocking-when-empty, we want a do .. while loop. */
+ do
+ gtk_main_iteration ();
+ while (within_human_latency_tolerance (&init)
+ && gtk_events_pending ());
+ }
+ else
+ {
+ /* If we're not blocking-when-empty, we want a while loop. */
+ while (within_human_latency_tolerance (&init)
+ && gtk_events_pending ())
+ gtk_main_iteration ();
+ }
+
+ (*env)->MonitorEnter (env, lockedQueue);
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkToolkit_wakeNativeQueue
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
+{
+ g_main_context_wakeup (NULL);
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_java_awt_peer_gtk_GtkToolkit_nativeQueueEmpty
+ (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
+{
+ jboolean empty = FALSE;
+ gdk_threads_enter ();
+ empty = ! gtk_events_pending();
+ gdk_threads_leave ();
+ return empty;
+}
+
static jint gdk_color_to_java_color (GdkColor color);
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkToolkit_beep
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
index a8e745ec0f4..b0177c90a47 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
@@ -65,8 +65,8 @@ static void window_active_state_change_cb (GtkWidget *widget,
GParamSpec *pspec,
jobject peer);
static void window_focus_state_change_cb (GtkWidget *widget,
- GParamSpec *pspec,
- jobject peer);
+ GParamSpec *pspec,
+ jobject peer);
static gboolean window_focus_in_cb (GtkWidget * widget,
GdkEventFocus *event,
jobject peer);
@@ -80,6 +80,7 @@ static jint window_get_new_state (GtkWidget *widget);
static gboolean window_property_changed_cb (GtkWidget *widget,
GdkEventProperty *event,
jobject peer);
+static void realize_cb (GtkWidget *widget, jobject peer);
/* Union used for type punning. */
union extents_union
@@ -94,23 +95,14 @@ union atom_list_union
Atom **atom_list;
};
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
- (JNIEnv *env, jobject obj, jint type, jboolean decorated,
- jint width, jint height, jobject parent, jintArray jinsets)
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
+ (JNIEnv *env, jobject obj, jint type, jboolean decorated, jobject parent)
{
GtkWidget *window_widget;
GtkWindow *window;
void *window_parent;
GtkWidget *fixed;
- int top = 0;
- int left = 0;
- int bottom = 0;
- int right = 0;
- jint *insets;
-
- insets = (*env)->GetIntArrayElements (env, jinsets, 0);
- insets[0] = insets[1] = insets[2] = insets[3] = 0;
NSA_SET_GLOBAL_REF (env, obj);
@@ -137,31 +129,8 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
gtk_widget_show (fixed);
- if (decorated)
- window_get_frame_extents (window_widget, &top, &left, &bottom, &right);
-
- gtk_window_set_default_size (window,
- MAX (1, width - left - right),
- MAX (1, height - top - bottom));
-
- /* We must set this window's size requisition. Otherwise when a
- resize is queued (when gtk_widget_queue_resize is called) the
- window will snap to its default requisition of 0x0. If we omit
- this call, Frames and Dialogs shrink to degenerate 1x1 windows
- when their resizable property changes. */
- gtk_widget_set_size_request (window_widget,
- MAX (1, width - left - right),
- MAX (1, height - top - bottom));
-
- insets[0] = top;
- insets[1] = left;
- insets[2] = bottom;
- insets[3] = right;
-
gdk_threads_leave ();
- (*env)->ReleaseIntArrayElements (env, jinsets, insets, 0);
-
NSA_SET_PTR (env, obj, window_widget);
}
@@ -278,6 +247,9 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals
G_CALLBACK (window_property_changed_cb), *gref);
g_signal_connect_after (G_OBJECT (ptr), "realize",
+ G_CALLBACK (realize_cb), *gref);
+
+ g_signal_connect_after (G_OBJECT (ptr), "realize",
G_CALLBACK (connect_awt_hook_cb), *gref);
gdk_threads_leave ();
@@ -320,7 +292,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setBoundsCallback
{
/* Circumvent package-private access to call Window's
setBoundsCallback method. */
- (*gdk_env)->CallVoidMethod (gdk_env, window, setBoundsCallbackID,
+ (*gdk_env())->CallVoidMethod (gdk_env(), window, setBoundsCallbackID,
x, y, width, height);
}
@@ -428,9 +400,7 @@ request_frame_extents (GtkWidget *window)
/* Check if the current window manager supports
_NET_REQUEST_FRAME_EXTENTS. */
- /* FIXME: The window->window != NULL check is a workaround for bug
- http://bugzilla.gnome.org/show_bug.cgi?id=17952. */
- if (gdk_net_wm_supports (request_extents) && window->window != NULL)
+ if (gdk_net_wm_supports (request_extents))
{
GdkDisplay *display = gtk_widget_get_display (window);
Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
@@ -483,9 +453,9 @@ property_notify_predicate (Display *xdisplay __attribute__((unused)),
if (event->xany.type == PropertyNotify
&& event->xany.window == *window
&& event->xproperty.atom == extents_atom)
- return True;
+ return True;
else
- return False;
+ return False;
}
static void
@@ -493,10 +463,12 @@ window_delete_cb (GtkWidget *widget __attribute__((unused)),
GdkEvent *event __attribute__((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_CLOSING,
(jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
}
static void
@@ -504,20 +476,24 @@ window_destroy_cb (GtkWidget *widget __attribute__((unused)),
GdkEvent *event __attribute__((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_CLOSED,
(jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
}
static void
window_show_cb (GtkWidget *widget __attribute__((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_OPENED,
(jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
}
static void
@@ -528,47 +504,53 @@ window_active_state_change_cb (GtkWidget *widget __attribute__((unused)),
/* FIXME: not sure if this is needed or not. */
/* Remove the unused attributes if you fix the below. */
#if 0
- if (GTK_WINDOW (widget)->is_active)
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
- postWindowEventID,
- (jint) AWT_WINDOW_GAINED_FOCUS,
- (jobject) NULL, (jint) 0);
- else
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
- postWindowEventID,
- (jint) AWT_WINDOW_DEACTIVATED,
- (jobject) NULL, (jint) 0);
+ gdk_threads_leave ();
+ if (GTK_WINDOW (widget)->is_active)
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
+ postWindowEventID,
+ (jint) AWT_WINDOW_GAINED_FOCUS,
+ (jobject) NULL, (jint) 0);
+ else
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
+ postWindowEventID,
+ (jint) AWT_WINDOW_DEACTIVATED,
+ (jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
#endif
- }
+}
static void
window_focus_state_change_cb (GtkWidget *widget,
GParamSpec *pspec __attribute__((unused)),
jobject peer)
{
+ gdk_threads_leave ();
if (GTK_WINDOW (widget)->has_toplevel_focus)
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_ACTIVATED,
(jobject) NULL, (jint) 0);
else
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_DEACTIVATED,
- (jobject) NULL, (jint) 0);
- }
+ (jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
+}
static gboolean
window_focus_in_cb (GtkWidget * widget __attribute__((unused)),
GdkEventFocus *event __attribute__((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_GAINED_FOCUS,
(jobject) NULL, (jint) 0);
/* FIXME: somewhere after this is handled, the child window is
getting an expose event. */
+ gdk_threads_enter ();
return FALSE;
}
@@ -577,12 +559,14 @@ window_focus_out_cb (GtkWidget * widget __attribute__((unused)),
GdkEventFocus *event __attribute__((unused)),
jobject peer)
{
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_LOST_FOCUS,
(jobject) NULL, (jint) 0);
/* FIXME: somewhere after this is handled, the child window is
getting an expose event. */
+ gdk_threads_enter ();
return FALSE;
}
@@ -600,18 +584,22 @@ window_window_state_cb (GtkWidget *widget,
if (event->window_state.new_window_state & GDK_WINDOW_STATE_ICONIFIED)
{
/* We've been iconified. */
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_ICONIFIED,
(jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
}
else
{
/* We've been deiconified. */
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_DEICONIFIED,
(jobject) NULL, (jint) 0);
+ gdk_threads_enter ();
}
}
@@ -624,10 +612,12 @@ window_window_state_cb (GtkWidget *widget,
new_state |= window_get_new_state (widget);
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
postWindowEventID,
(jint) AWT_WINDOW_STATE_CHANGED,
(jobject) NULL, new_state);
+ gdk_threads_enter ();
return TRUE;
}
@@ -680,19 +670,6 @@ window_property_changed_cb (GtkWidget *widget __attribute__((unused)),
unsigned long *extents;
union extents_union gu_ex;
- static int id_set = 0;
- static jmethodID postInsetsChangedEventID;
-
- if (!id_set)
- {
- jclass gtkwindowpeer = (*gdk_env)->FindClass (gdk_env,
- "gnu/java/awt/peer/gtk/GtkWindowPeer");
- postInsetsChangedEventID = (*gdk_env)->GetMethodID (gdk_env,
- gtkwindowpeer,
- "postInsetsChangedEvent",
- "(IIII)V");
- id_set = 1;
- }
gu_ex.extents = &extents;
if (gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE) == event->atom
&& gdk_property_get (event->window,
@@ -705,12 +682,50 @@ window_property_changed_cb (GtkWidget *widget __attribute__((unused)),
NULL,
NULL,
gu_ex.gu_extents))
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
- postInsetsChangedEventID,
- (jint) extents[2], /* top */
- (jint) extents[0], /* left */
- (jint) extents[3], /* bottom */
- (jint) extents[1]); /* right */
+ {
+ gdk_threads_leave ();
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
+ postInsetsChangedEventID,
+ (jint) extents[2], /* top */
+ (jint) extents[0], /* left */
+ (jint) extents[3], /* bottom */
+ (jint) extents[1]); /* right */
+ gdk_threads_enter ();
+ }
+
return FALSE;
}
+
+static void
+realize_cb (GtkWidget *widget, jobject peer)
+{
+ jint top = 0;
+ jint left = 0;
+ jint bottom = 0;
+ jint right = 0;
+ jint width = 0;
+ jint height = 0;
+
+ width = (*gdk_env())->CallIntMethod (gdk_env(), peer, windowGetWidthID);
+ height = (*gdk_env())->CallIntMethod (gdk_env(), peer, windowGetHeightID);
+
+ window_get_frame_extents (widget, &top, &left, &bottom, &right);
+
+ (*gdk_env())->CallVoidMethod (gdk_env(), peer,
+ postInsetsChangedEventID,
+ top, left, bottom, right);
+
+ gtk_window_set_default_size (GTK_WINDOW (widget),
+ MAX (1, width - left - right),
+ MAX (1, height - top - bottom));
+
+ /* set the size like we do in nativeSetBounds */
+ gtk_widget_set_size_request (widget,
+ MAX (1, width - left - right),
+ MAX (1, height - top - bottom));
+
+ gtk_window_resize (GTK_WINDOW (widget),
+ MAX (1, width - left - right),
+ MAX (1, height - top - bottom));
+}
diff --git a/libjava/jni/gtk-peer/gthread-jni.c b/libjava/jni/gtk-peer/gthread-jni.c
index ee79424475c..d66c5a08087 100644
--- a/libjava/jni/gtk-peer/gthread-jni.c
+++ b/libjava/jni/gtk-peer/gthread-jni.c
@@ -223,8 +223,8 @@ exception statement from your version. */
#elif defined HAVE_INTTYPES_H
#include <inttypes.h>
#endif
-#include <stdio.h> /* snprintf */
#include <stdarg.h> /* va_list */
+#include <glib.h>
#include "gthread-jni.h"
#include <assert.h> /* assert() */
@@ -464,7 +464,7 @@ throw (JNIEnv * env, jthrowable cause, const char *message,
if ((buf = malloc (len)))
{
memset (buf, 0, len);
- snprintf (buf, len, fmt, message, file, line);
+ g_snprintf (buf, len, fmt, message, file, line);
jmessage = (*env)->NewStringUTF (env, buf);
free (buf);
}
diff --git a/libjava/jni/gtk-peer/gtk_jawt.c b/libjava/jni/gtk-peer/gtk_jawt.c
index 6a12fc7954c..cba3b1509ec 100644
--- a/libjava/jni/gtk-peer/gtk_jawt.c
+++ b/libjava/jni/gtk-peer/gtk_jawt.c
@@ -85,6 +85,40 @@ classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)
return xdisplay;
}
+VisualID
+classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)
+{
+ GtkWidget *widget;
+ Visual *visual;
+ void *ptr;
+ jobject peer;
+ jclass class_id;
+ jmethodID method_id;
+
+ class_id = (*env)->GetObjectClass (env, canvas);
+
+ method_id = (*env)->GetMethodID (env, class_id,
+ "getPeer",
+ "()Ljava/awt/peer/ComponentPeer;");
+
+ peer = (*env)->CallObjectMethod (env, canvas, method_id);
+
+ ptr = NSA_GET_PTR (env, peer);
+
+ gdk_threads_enter ();
+
+ widget = GTK_WIDGET (ptr);
+
+ g_assert (GTK_WIDGET_REALIZED (widget));
+
+ visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget));
+ g_assert (visual != NULL);
+
+ gdk_threads_leave ();
+
+ return visual->visualid;
+}
+
Drawable
classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
{
diff --git a/libjava/jni/gtk-peer/gtkcairopeer.h b/libjava/jni/gtk-peer/gtkcairopeer.h
index b4021f51ed9..85834cadb02 100644
--- a/libjava/jni/gtk-peer/gtkcairopeer.h
+++ b/libjava/jni/gtk-peer/gtkcairopeer.h
@@ -74,6 +74,19 @@ struct graphics2d
cairo_surface_t *pattern_surface;
cairo_pattern_t *pattern;
gboolean debug;
+ enum
+ {
+ MODE_DRAWABLE_WITH_RENDER,
+ MODE_DRAWABLE_NO_RENDER,
+ MODE_JAVA_ARRAY
+ }
+ mode;
+
+ /* Support for MODE_JAVA_ARRAY */
+ jintArray jarray;
+ jint width, height;
+ jint *javabuf;
+ jboolean isCopy;
};
#endif /* __GTKCAIROPEER_H */
diff --git a/libjava/jni/gtk-peer/gtkpeer.h b/libjava/jni/gtk-peer/gtkpeer.h
index e982551288c..02613c4e3c2 100644
--- a/libjava/jni/gtk-peer/gtkpeer.h
+++ b/libjava/jni/gtk-peer/gtkpeer.h
@@ -147,6 +147,10 @@ struct graphics
#define AWT_BUTTON2_DOWN_MASK (1 << 11)
#define AWT_BUTTON3_DOWN_MASK (1 << 12)
+#define AWT_BUTTON1_MASK (1 << 4)
+#define AWT_BUTTON2_MASK (1 << 3)
+#define AWT_BUTTON3_MASK (1 << 2)
+
#define MULTI_CLICK_TIME 250
/* as opposed to a MULTI_PASS_TIME :) */
@@ -460,7 +464,12 @@ extern jmethodID setCursorID;
extern jmethodID syncAttrsID;
extern jclass gdkColor;
extern jmethodID gdkColorID;
-extern JNIEnv *gdk_env;
+
+extern jmethodID postInsetsChangedEventID;
+extern jmethodID windowGetWidthID;
+extern jmethodID windowGetHeightID;
+
+JNIEnv *gdk_env(void);
extern double dpi_conversion_factor;
@@ -480,6 +489,8 @@ void set_parent (GtkWidget *widget, GtkContainer *parent);
jint keyevent_state_to_awt_mods (GdkEvent *event);
+guint awt_keycode_to_keysym (jint keyCode, jint keyLocation);
+
struct item_event_hook_info
{
jobject peer_obj;
diff --git a/libjava/libltdl/ChangeLog b/libjava/libltdl/ChangeLog
index eb012f2b5ea..e435149090d 100644
--- a/libjava/libltdl/ChangeLog
+++ b/libjava/libltdl/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in: Regenrate with Automake 1.9.3.
diff --git a/libjava/link.cc b/libjava/link.cc
index 3f45ac119a2..909a7b68a0e 100644
--- a/libjava/link.cc
+++ b/libjava/link.cc
@@ -100,6 +100,7 @@ _Jv_Linker::resolve_field (_Jv_Field *field, java::lang::ClassLoader *loader)
// superclasses and interfaces.
_Jv_Field *
_Jv_Linker::find_field_helper (jclass search, _Jv_Utf8Const *name,
+ _Jv_Utf8Const *type_name,
jclass *declarer)
{
while (search)
@@ -108,7 +109,21 @@ _Jv_Linker::find_field_helper (jclass search, _Jv_Utf8Const *name,
for (int i = 0; i < search->field_count; ++i)
{
_Jv_Field *field = &search->fields[i];
- if (_Jv_equalUtf8Consts (field->name, name))
+ if (! _Jv_equalUtf8Consts (field->name, name))
+ continue;
+
+ if (! field->isResolved ())
+ resolve_field (field, search->loader);
+
+ // Note that we compare type names and not types. This is
+ // bizarre, but we do it because we want to find a field
+ // (and terminate the search) if it has the correct
+ // descriptor -- but then later reject it if the class
+ // loader check results in different classes. We can't just
+ // pass in the descriptor and check that way, because when
+ // the field is already resolved there is no easy way to
+ // find its descriptor again.
+ if (_Jv_equalUtf8Consts (type_name, field->type->name))
{
*declarer = search;
return field;
@@ -119,7 +134,7 @@ _Jv_Linker::find_field_helper (jclass search, _Jv_Utf8Const *name,
for (int i = 0; i < search->interface_count; ++i)
{
_Jv_Field *result = find_field_helper (search->interfaces[i], name,
- declarer);
+ type_name, declarer);
if (result)
return result;
}
@@ -131,6 +146,18 @@ _Jv_Linker::find_field_helper (jclass search, _Jv_Utf8Const *name,
return NULL;
}
+bool
+_Jv_Linker::has_field_p (jclass search, _Jv_Utf8Const *field_name)
+{
+ for (int i = 0; i < search->field_count; ++i)
+ {
+ _Jv_Field *field = &search->fields[i];
+ if (_Jv_equalUtf8Consts (field->name, field_name))
+ return true;
+ }
+ return false;
+}
+
// Find a field.
// KLASS is the class that is requesting the field.
// OWNER is the class in which the field should be found.
@@ -143,23 +170,14 @@ _Jv_Linker::find_field (jclass klass, jclass owner,
_Jv_Utf8Const *field_name,
_Jv_Utf8Const *field_type_name)
{
- jclass field_type = 0;
-
- if (owner->loader != klass->loader)
- {
- // FIXME: The implementation of this function
- // (_Jv_FindClassFromSignature) will generate an instance of
- // _Jv_Utf8Const for each call if the field type is a class name
- // (Lxx.yy.Z;). This may be too expensive to do for each and
- // every fieldref being resolved. For now, we fix the problem
- // by only doing it when we have a loader different from the
- // class declaring the field.
- field_type = _Jv_FindClassFromSignature (field_type_name->chars(),
- klass->loader);
- }
+ // FIXME: this allocates a _Jv_Utf8Const each time. We should make
+ // it cheaper.
+ jclass field_type = _Jv_FindClassFromSignature (field_type_name->chars(),
+ klass->loader);
jclass found_class = 0;
- _Jv_Field *the_field = find_field_helper (owner, field_name, &found_class);
+ _Jv_Field *the_field = find_field_helper (owner, field_name,
+ field_type->name, &found_class);
if (the_field == 0)
{
@@ -174,12 +192,11 @@ _Jv_Linker::find_field (jclass klass, jclass owner,
if (_Jv_CheckAccess (klass, found_class, the_field->flags))
{
- // Resolve the field using the class' own loader if necessary.
-
- if (!the_field->isResolved ())
- resolve_field (the_field, found_class->loader);
-
- if (field_type != 0 && the_field->type != field_type)
+ // Note that the field returned by find_field_helper is always
+ // resolved. There's no point checking class loaders here,
+ // since we already did the work to look up all the types.
+ // FIXME: being lazy here would be nice.
+ if (the_field->type != field_type)
throw new java::lang::LinkageError
(JvNewStringLatin1
("field type mismatch with different loaders"));
@@ -665,12 +682,21 @@ _Jv_Linker::generate_itable (jclass klass, _Jv_ifaces *ifaces,
// Format method name for use in error messages.
jstring
-_Jv_GetMethodString (jclass klass, _Jv_Utf8Const *name)
+_Jv_GetMethodString (jclass klass, _Jv_Method *meth,
+ jclass derived)
{
- jstring r = klass->name->toString();
- r = r->concat (JvNewStringUTF ("."));
- r = r->concat (name->toString());
- return r;
+ using namespace java::lang;
+ StringBuffer *buf = new StringBuffer (klass->name->toString());
+ buf->append (jchar ('.'));
+ buf->append (meth->name->toString());
+ buf->append ((jchar) ' ');
+ buf->append (meth->signature->toString());
+ if (derived)
+ {
+ buf->append(JvNewStringLatin1(" in "));
+ buf->append(derived->name->toString());
+ }
+ return buf->toString();
}
void
@@ -679,6 +705,13 @@ _Jv_ThrowNoSuchMethodError ()
throw new java::lang::NoSuchMethodError;
}
+// This is put in empty vtable slots.
+static void
+_Jv_abstractMethodError (void)
+{
+ throw new java::lang::AbstractMethodError();
+}
+
// Each superinterface of a class (i.e. each interface that the class
// directly or indirectly implements) has a corresponding "Partial
// Interface Dispatch Table" whose size is (number of methods + 1) words.
@@ -720,15 +753,15 @@ _Jv_Linker::append_partial_itable (jclass klass, jclass iface,
{
if ((meth->accflags & Modifier::STATIC) != 0)
throw new java::lang::IncompatibleClassChangeError
- (_Jv_GetMethodString (klass, meth->name));
- if ((meth->accflags & Modifier::ABSTRACT) != 0)
- throw new java::lang::AbstractMethodError
- (_Jv_GetMethodString (klass, meth->name));
+ (_Jv_GetMethodString (klass, meth));
if ((meth->accflags & Modifier::PUBLIC) == 0)
throw new java::lang::IllegalAccessError
- (_Jv_GetMethodString (klass, meth->name));
+ (_Jv_GetMethodString (klass, meth));
- itable[pos] = meth->ncode;
+ if ((meth->accflags & Modifier::ABSTRACT) != 0)
+ itable[pos] = (void *) &_Jv_abstractMethodError;
+ else
+ itable[pos] = meth->ncode;
}
else
{
@@ -1092,13 +1125,6 @@ _Jv_Linker::link_exception_table (jclass self)
self->catch_classes->classname = (_Jv_Utf8Const *)-1;
}
-// This is put in empty vtable slots.
-static void
-_Jv_abstractMethodError (void)
-{
- throw new java::lang::AbstractMethodError();
-}
-
// Set itable method indexes for members of interface IFACE.
void
_Jv_Linker::layout_interface_methods (jclass iface)
@@ -1161,9 +1187,9 @@ _Jv_Linker::layout_vtable_methods (jclass klass)
using namespace java::lang;
StringBuffer *sb = new StringBuffer();
sb->append(JvNewStringLatin1("method "));
- sb->append(_Jv_GetMethodString(klass, meth->name));
+ sb->append(_Jv_GetMethodString(klass, meth));
sb->append(JvNewStringLatin1(" overrides final method "));
- sb->append(_Jv_GetMethodString(declarer, super_meth->name));
+ sb->append(_Jv_GetMethodString(declarer, super_meth));
throw new VerifyError(sb->toString());
}
}
@@ -1190,6 +1216,8 @@ _Jv_Linker::set_vtable_entries (jclass klass, _Jv_VTable *vtable)
if (meth->index == (_Jv_ushort) -1)
continue;
if ((meth->accflags & Modifier::ABSTRACT))
+ // FIXME: it might be nice to have a libffi trampoline here,
+ // so we could pass in the method name and other information.
vtable->set_method(meth->index, (void *) &_Jv_abstractMethodError);
else
vtable->set_method(meth->index, meth->ncode);
@@ -1238,33 +1266,9 @@ _Jv_Linker::make_vtable (jclass klass)
// override an old one.
set_vtable_entries (klass, vtable);
- // It is an error to have an abstract method in a concrete class.
- if (! (klass->accflags & Modifier::ABSTRACT))
- {
- for (int i = 0; i < klass->vtable_method_count; ++i)
- if (vtable->get_method(i) == (void *) &_Jv_abstractMethodError)
- {
- using namespace java::lang;
- while (klass != NULL)
- {
- for (int j = 0; j < klass->method_count; ++j)
- {
- if (klass->methods[j].index == i)
- {
- StringBuffer *buf = new StringBuffer ();
- buf->append (_Jv_NewStringUtf8Const (klass->methods[j].name));
- buf->append ((jchar) ' ');
- buf->append (_Jv_NewStringUtf8Const (klass->methods[j].signature));
- throw new AbstractMethodError (buf->toString ());
- }
- }
- klass = klass->getSuperclass ();
- }
- // Couldn't find the name, which is weird.
- // But we still must throw the error.
- throw new AbstractMethodError ();
- }
- }
+ // Note that we don't check for abstract methods here. We used to,
+ // but there is a JVMS clarification that indicates that a check
+ // here would be too eager. And, a simple test case confirms this.
}
// Lay out the class, allocating space for static fields and computing
@@ -1391,9 +1395,7 @@ _Jv_Linker::ensure_class_linked (jclass klass)
// a reference to a class we can't access. This can validly
// occur in an obscure case involving the InnerClasses
// attribute.
-#ifdef INTERPRETER
if (! _Jv_IsInterpretedClass (klass))
-#endif
{
// Resolve class constants first, since other constant pool
// entries may rely on these.
@@ -1648,11 +1650,7 @@ _Jv_Linker::print_class_loaded (jclass klass)
// We use a somewhat bogus test for the ABI here.
char *abi;
-#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (klass))
-#else
- if (false)
-#endif
abi = "bytecode";
else if (klass->state == JV_STATE_PRELOADING)
abi = "BC-compiled";
@@ -1689,10 +1687,7 @@ _Jv_Linker::wait_for_state (jclass klass, int state)
if (gcj::verbose_class_flag
&& (klass->state == JV_STATE_COMPILED
|| klass->state == JV_STATE_PRELOADING)
-#ifdef INTERPRETER
- && ! _Jv_IsInterpretedClass (klass)
-#endif
- )
+ && ! _Jv_IsInterpretedClass (klass))
print_class_loaded (klass);
try
diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc
index 0643c1a5c7b..91da25cf38d 100644
--- a/libjava/posix-threads.cc
+++ b/libjava/posix-threads.cc
@@ -281,6 +281,17 @@ handle_intr (int)
// Do nothing.
}
+static void
+block_sigchld()
+{
+ sigset_t mask;
+ sigemptyset (&mask);
+ sigaddset (&mask, SIGCHLD);
+ int c = pthread_sigmask (SIG_BLOCK, &mask, NULL);
+ if (c != 0)
+ JvFail (strerror (c));
+}
+
void
_Jv_InitThreads (void)
{
@@ -296,6 +307,10 @@ _Jv_InitThreads (void)
sigemptyset (&act.sa_mask);
act.sa_flags = 0;
sigaction (INTR, &act, NULL);
+
+ // Block SIGCHLD here to ensure that any non-Java threads inherit the new
+ // signal mask.
+ block_sigchld();
}
_Jv_Thread_t *
@@ -333,17 +348,6 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
#endif
}
-static void
-block_sigchld()
-{
- sigset_t mask;
- sigemptyset (&mask);
- sigaddset (&mask, SIGCHLD);
- int c = pthread_sigmask (SIG_BLOCK, &mask, NULL);
- if (c != 0)
- throw new java::lang::InternalError (JvNewStringUTF (strerror (c)));
-}
-
void
_Jv_ThreadRegister (_Jv_Thread_t *data)
{
diff --git a/libjava/prims.cc b/libjava/prims.cc
index c3c07d9f5e5..ac13ab6b15f 100644
--- a/libjava/prims.cc
+++ b/libjava/prims.cc
@@ -59,10 +59,11 @@ details. */
#include <java/io/PrintStream.h>
#include <java/lang/UnsatisfiedLinkError.h>
#include <java/lang/VirtualMachineError.h>
-#include <gnu/gcj/runtime/VMClassLoader.h>
+#include <gnu/gcj/runtime/ExtensionClassLoader.h>
#include <gnu/gcj/runtime/FinalizerThread.h>
#include <execution.h>
#include <gnu/java/lang/MainThread.h>
+#include <java/lang/VMClassLoader.h>
#ifdef USE_LTDL
#include <ltdl.h>
@@ -80,13 +81,9 @@ static java::lang::OutOfMemoryError *no_memory;
// functions are changed to take a size_t argument instead of jint.
#define MAX_OBJECT_SIZE ((1<<31) - 1)
-static const char *no_properties[] = { NULL };
-
// Properties set at compile time.
-const char **_Jv_Compiler_Properties = no_properties;
-
-// The JAR file to add to the beginning of java.class.path.
-const char *_Jv_Jar_Class_Path;
+const char **_Jv_Compiler_Properties = NULL;
+int _Jv_Properties_Count = 0;
#ifndef DISABLE_GETENV_PROPERTIES
// Property key/value pairs.
@@ -909,18 +906,303 @@ namespace gcj
bool runtimeInitialized = false;
}
+// We accept all non-standard options accepted by Sun's java command,
+// for compatibility with existing application launch scripts.
+static jint
+parse_x_arg (char* option_string)
+{
+ if (strlen (option_string) <= 0)
+ return -1;
+
+ if (! strcmp (option_string, "int"))
+ {
+ // FIXME: this should cause the vm to never load shared objects
+ }
+ else if (! strcmp (option_string, "mixed"))
+ {
+ // FIXME: allow interpreted and native code
+ }
+ else if (! strcmp (option_string, "batch"))
+ {
+ // FIXME: disable background JIT'ing
+ }
+ else if (! strcmp (option_string, "debug"))
+ {
+ // FIXME: add JDWP/JVMDI support
+ }
+ else if (! strncmp (option_string, "bootclasspath:", 14))
+ {
+ // FIXME: add a parse_bootclasspath_arg function
+ }
+ else if (! strncmp (option_string, "bootclasspath/a:", 16))
+ {
+ }
+ else if (! strncmp (option_string, "bootclasspath/p:", 16))
+ {
+ }
+ else if (! strcmp (option_string, "check:jni"))
+ {
+ // FIXME: enable strict JNI checking
+ }
+ else if (! strcmp (option_string, "future"))
+ {
+ // FIXME: enable strict class file format checks
+ }
+ else if (! strcmp (option_string, "noclassgc"))
+ {
+ // FIXME: disable garbage collection for classes
+ }
+ else if (! strcmp (option_string, "incgc"))
+ {
+ // FIXME: incremental garbage collection
+ }
+ else if (! strncmp (option_string, "loggc:", 6))
+ {
+ if (option_string[6] == '\0')
+ {
+ fprintf (stderr,
+ "libgcj: filename argument expected for loggc option\n");
+ return -1;
+ }
+ // FIXME: set gc logging filename
+ }
+ else if (! strncmp (option_string, "ms", 2))
+ {
+ // FIXME: ignore this option until PR 20699 is fixed.
+ // _Jv_SetInitialHeapSize (option_string + 2);
+ }
+ else if (! strncmp (option_string, "mx", 2))
+ _Jv_SetMaximumHeapSize (option_string + 2);
+ else if (! strcmp (option_string, "prof"))
+ {
+ // FIXME: enable profiling of program running in vm
+ }
+ else if (! strncmp (option_string, "runhprof:", 9))
+ {
+ // FIXME: enable specific type of vm profiling. add a
+ // parse_runhprof_arg function
+ }
+ else if (! strcmp (option_string, "rs"))
+ {
+ // FIXME: reduced system signal usage. disable thread dumps,
+ // only terminate in response to user-initiated calls,
+ // e.g. System.exit()
+ }
+ else if (! strncmp (option_string, "ss", 2))
+ {
+ // FIXME: set thread stack size
+ }
+ else if (! strcmp (option_string, "X:+UseAltSigs"))
+ {
+ // FIXME: use signals other than SIGUSR1 and SIGUSR2
+ }
+ else if (! strcmp (option_string, "share:off"))
+ {
+ // FIXME: don't share class data
+ }
+ else if (! strcmp (option_string, "share:auto"))
+ {
+ // FIXME: share class data where possible
+ }
+ else if (! strcmp (option_string, "share:on"))
+ {
+ // FIXME: fail if impossible to share class data
+ }
+
+ return 0;
+}
+
+static jint
+parse_verbose_args (char* option_string,
+ bool ignore_unrecognized)
+{
+ size_t len = sizeof ("-verbose") - 1;
+
+ if (strlen (option_string) < len)
+ return -1;
+
+ if (option_string[len] == ':'
+ && option_string[len + 1] != '\0')
+ {
+ char* verbose_args = option_string + len + 1;
+
+ do
+ {
+ if (! strncmp (verbose_args,
+ "gc", sizeof ("gc") - 1))
+ {
+ if (verbose_args[sizeof ("gc") - 1] == '\0'
+ || verbose_args[sizeof ("gc") - 1] == ',')
+ {
+ // FIXME: we should add functions to boehm-gc that
+ // toggle GC_print_stats, GC_PRINT_ADDRESS_MAP and
+ // GC_print_back_height.
+ verbose_args += sizeof ("gc") - 1;
+ }
+ else
+ {
+ verbose_arg_err:
+ fprintf (stderr, "libgcj: unknown verbose option: %s\n",
+ option_string);
+ return -1;
+ }
+ }
+ else if (! strncmp (verbose_args,
+ "class",
+ sizeof ("class") - 1))
+ {
+ if (verbose_args[sizeof ("class") - 1] == '\0'
+ || verbose_args[sizeof ("class") - 1] == ',')
+ {
+ gcj::verbose_class_flag = true;
+ verbose_args += sizeof ("class") - 1;
+ }
+ else
+ goto verbose_arg_err;
+ }
+ else if (! strncmp (verbose_args, "jni",
+ sizeof ("jni") - 1))
+ {
+ if (verbose_args[sizeof ("jni") - 1] == '\0'
+ || verbose_args[sizeof ("jni") - 1] == ',')
+ {
+ // FIXME: enable JNI messages.
+ verbose_args += sizeof ("jni") - 1;
+ }
+ else
+ goto verbose_arg_err;
+ }
+ else if (ignore_unrecognized
+ && verbose_args[0] == 'X')
+ {
+ // ignore unrecognized non-standard verbose option
+ while (verbose_args[0] != '\0'
+ && verbose_args[0] != ',')
+ verbose_args++;
+ }
+ else if (verbose_args[0] == ',')
+ {
+ verbose_args++;
+ }
+ else
+ goto verbose_arg_err;
+
+ if (verbose_args[0] == ',')
+ verbose_args++;
+ }
+ while (verbose_args[0] != '\0');
+ }
+ else if (option_string[len] == 'g'
+ && option_string[len + 1] == 'c'
+ && option_string[len + 2] == '\0')
+ {
+ // FIXME: we should add functions to boehm-gc that
+ // toggle GC_print_stats, GC_PRINT_ADDRESS_MAP and
+ // GC_print_back_height.
+ return 0;
+ }
+ else if (option_string[len] == '\0')
+ {
+ gcj::verbose_class_flag = true;
+ return 0;
+ }
+ else
+ {
+ // unrecognized option beginning with -verbose
+ return -1;
+ }
+ return 0;
+}
+
+static jint
+parse_init_args (JvVMInitArgs* vm_args)
+{
+ // if _Jv_Compiler_Properties is non-NULL then it needs to be
+ // re-allocated dynamically.
+ if (_Jv_Compiler_Properties)
+ {
+ const char** props = _Jv_Compiler_Properties;
+ _Jv_Compiler_Properties = NULL;
+
+ for (int i = 0; props[i]; i++)
+ {
+ _Jv_Compiler_Properties = (const char**) _Jv_Realloc
+ (_Jv_Compiler_Properties,
+ (_Jv_Properties_Count + 1) * sizeof (const char*));
+ _Jv_Compiler_Properties[_Jv_Properties_Count++] = props[i];
+ }
+ }
+
+ if (vm_args == NULL)
+ return 0;
+
+ for (int i = 0; i < vm_args->nOptions; ++i)
+ {
+ char* option_string = vm_args->options[i].optionString;
+ if (! strcmp (option_string, "vfprintf")
+ || ! strcmp (option_string, "exit")
+ || ! strcmp (option_string, "abort"))
+ {
+ // FIXME: we are required to recognize these, but for
+ // now we don't handle them in any way.
+ continue;
+ }
+ else if (! strncmp (option_string,
+ "-verbose", sizeof ("-verbose") - 1))
+ {
+ jint result = parse_verbose_args (option_string,
+ vm_args->ignoreUnrecognized);
+ if (result < 0)
+ return result;
+ }
+ else if (! strncmp (option_string, "-D", 2))
+ {
+ _Jv_Compiler_Properties = (const char**) _Jv_Realloc
+ (_Jv_Compiler_Properties,
+ (_Jv_Properties_Count + 1) * sizeof (char*));
+
+ _Jv_Compiler_Properties[_Jv_Properties_Count++] =
+ strdup (option_string + 2);
+
+ continue;
+ }
+ else if (vm_args->ignoreUnrecognized)
+ {
+ if (option_string[0] == '_')
+ parse_x_arg (option_string + 1);
+ else if (! strncmp (option_string, "-X", 2))
+ parse_x_arg (option_string + 2);
+ else
+ {
+ unknown_option:
+ fprintf (stderr, "libgcj: unknown option: %s\n", option_string);
+ return -1;
+ }
+ }
+ else
+ goto unknown_option;
+ }
+ return 0;
+}
+
jint
-_Jv_CreateJavaVM (void* /*vm_args*/)
+_Jv_CreateJavaVM (JvVMInitArgs* vm_args)
{
using namespace gcj;
-
+
if (runtimeInitialized)
return -1;
runtimeInitialized = true;
+ jint result = parse_init_args (vm_args);
+ if (result < 0)
+ return -1;
+
PROCESS_GCJ_PROPERTIES;
+ /* Threads must be initialized before the GC, so that it inherits the
+ signal mask. */
_Jv_InitThreads ();
_Jv_InitGC ();
_Jv_InitializeSyncMutex ();
@@ -964,8 +1246,9 @@ _Jv_CreateJavaVM (void* /*vm_args*/)
// of VMClassLoader.
_Jv_InitClass (&java::lang::ClassLoader::class$);
- // Set up the system class loader.
- gnu::gcj::runtime::VMClassLoader::initialize();
+ // Set up the system class loader and the bootstrap class loader.
+ gnu::gcj::runtime::ExtensionClassLoader::initialize();
+ java::lang::VMClassLoader::initialize(JvNewStringLatin1(TOOLEXECLIBDIR));
_Jv_RegisterBootstrapPackages();
@@ -999,8 +1282,8 @@ _Jv_CreateJavaVM (void* /*vm_args*/)
}
void
-_Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
- bool is_jar)
+_Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc,
+ const char **argv, bool is_jar)
{
#ifndef DISABLE_MAIN_ARGS
_Jv_SetArgs (argc, argv);
@@ -1010,11 +1293,11 @@ _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
try
{
- // Set this very early so that it is seen when java.lang.System
- // is initialized.
- if (is_jar)
- _Jv_Jar_Class_Path = strdup (name);
- _Jv_CreateJavaVM (NULL);
+ if (_Jv_CreateJavaVM (vm_args) < 0)
+ {
+ fprintf (stderr, "libgcj: couldn't create virtual machine\n");
+ exit (1);
+ }
// Get the Runtime here. We want to initialize it before searching
// for `main'; that way it will be set up if `main' is a JNI method.
@@ -1038,7 +1321,10 @@ _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
java::lang::System::err->println (JvNewStringLatin1
("Exception during runtime initialization"));
t->printStackTrace();
- runtime->exit (1);
+ if (runtime)
+ runtime->exit (1);
+ // In case the runtime creation failed.
+ ::exit (1);
}
_Jv_AttachCurrentThread (main_thread);
@@ -1050,6 +1336,13 @@ _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
}
void
+_Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
+ bool is_jar)
+{
+ _Jv_RunMain (NULL, klass, name, argc, argv, is_jar);
+}
+
+void
JvRunMain (jclass klass, int argc, const char **argv)
{
_Jv_RunMain (klass, NULL, argc, argv, false);
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index 4ba07e5c49b..36fca714370 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -80,7 +80,6 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHECKREFSPEC = @CHECKREFSPEC@
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
-COMPPATH = @COMPPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
@@ -125,6 +124,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
JC1GCSPEC = @JC1GCSPEC@
LDFLAGS = @LDFLAGS@
LIBART_CFLAGS = @LIBART_CFLAGS@
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp
index 443259d712c..b3a16f67169 100644
--- a/libjava/testsuite/lib/libjava.exp
+++ b/libjava/testsuite/lib/libjava.exp
@@ -197,8 +197,8 @@ proc libjava_init { args } {
# Finally, add the gcc build directory so that we can find the
# shared libgcc. This, like much of dejagnu, is hideous.
set libjava_libgcc_s_path {}
-
- if { [string match "powerpc-*-darwin*" $target_triplet] } {
+
+ if { [istarget "*-*-darwin*"] } {
set so_extension "dylib"
} else {
set so_extension "so"
diff --git a/libjava/testsuite/libjava.jni/jni.exp b/libjava/testsuite/libjava.jni/jni.exp
index cbd90ca28cb..201daaca713 100644
--- a/libjava/testsuite/libjava.jni/jni.exp
+++ b/libjava/testsuite/libjava.jni/jni.exp
@@ -14,7 +14,7 @@ proc gcj_jni_compile_c_to_so {file {options {}}} {
# so we check against powerpc-apple-darwin and set them to
# dylib, else we assume it's .so
- if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
+ if { [istarget "*-*-darwin*"] } {
set so_extension "dylib"
set so_flag "-dynamiclib"
} else {
@@ -77,10 +77,10 @@ proc gcj_jni_test_one {file} {
global INTERPRETER
# apple uses a different extension for shared/dynamic libraries
-# so we check against powerpc-apple-darwin and set them to
+# so we check against powerpc-apple-darwin and set them to
# dylib, else we assume it's .so
- if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
+ if { [istarget "*-*-darwin*"] } {
set so_extension "dylib"
} else {
set so_extension "so"
@@ -134,12 +134,12 @@ proc gcj_jni_test_one {file} {
# Darwin does not yet have a libgcc_s.dylib library.
# So we add it here. If the libgcc_s is installed, the libstdc++
# would pick it up.
- if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
+ if { [istarget "*-*-darwin*"] } {
lappend cxxflaglist "-lgcc_s -lstdc++"
} else {
lappend cxxflaglist "-lstdc++"
}
-
+
set cxxflags [join $cxxflaglist]
}
@@ -181,6 +181,103 @@ proc gcj_jni_test_one {file} {
return 1
}
+# Compile a single C file and produce a binary. OPTIONS is a list of
+# options to pass to the compiler. Returns 0 on failure, 1 on
+# success.
+proc gcj_jni_invocation_compile_c_to_binary {file {options {}}} {
+ global srcdir
+ global host_triplet
+ verbose "options: $options"
+ set options_cxx $options
+ set options ""
+
+ set filename [file tail $file]
+ set name [file rootname $filename]
+
+ # Set some darwin specific options
+ if { [istarget "*-*-darwin*"] } {
+ lappend options "additional_flags=-multiply_defined suppress"
+ }
+ # Find the generated header.
+ lappend options "additional_flags=-I. -I.."
+
+ # Find jni.h.
+ lappend options "additional_flags=-I$srcdir/../include"
+
+ # Append C++ options
+ lappend options "additional_flags=$options_cxx"
+
+ set x [libjava_prune_warnings \
+ [target_compile $file $name executable $options]]
+ if {$x != ""} {
+ verbose "target_compile failed: $x" 2
+ fail "$filename compilation"
+ return 0
+ }
+
+ pass "$filename compilation"
+ return 1
+}
+
+# Do all the work for a single invocation API test. Return 0 on
+# failure.
+proc gcj_jni_invocation_test_one {file} {
+ global runtests
+ global host_triplet
+ global INTERPRETER
+
+ # The base name. We use it for several purposes.
+ set main [file rootname [file tail $file]]
+ if {! [runtest_file_p $runtests $main]} {
+ # Simply skip it.
+ return 1
+ }
+
+ if {! [bytecompile_file $file [pwd]]} {
+ fail "bytecompile $file"
+ # FIXME - should use `untested' on all remaining tests.
+ # But that is hard.
+ return 0
+ }
+ pass "bytecompile $file"
+
+ set cfile [file rootname $file].c
+ # Darwin needs -liconv linked, otherwise we get some unresolved.
+ # Also, like in the cxxtest we need to add -lgcc_s since Darwin
+ # has no libgcc_s.dylib installed yet.
+ if { [istarget "*-*-darwin*"] } {
+ set cxxflags "-L../.libs -lgcc_s -lgcj -liconv"
+ } else {
+ set cxxflags "-L../.libs -lgcj"
+ }
+
+ if { [istarget "*-*-solaris*"] } {
+ lappend cxxflags "-lsocket"
+ }
+
+ if {! [gcj_jni_invocation_compile_c_to_binary $cfile $cxxflags]} {
+ # FIXME
+ return 0
+ }
+
+ set resultfile [file rootname $file].out
+
+ if {! [gcj_invoke $main $resultfile ""]} {
+ # FIXME
+ return 0
+ }
+
+ # We purposely ignore errors here; we still want to run the other
+ # appropriate tests.
+ set errname [file rootname [file tail $file]]
+
+ # When we succeed we remove all our clutter.
+ eval gcj_cleanup [glob -nocomplain -- ${main}.*] \
+ [list $main]
+
+ return 1
+}
+
# Run the JNI tests.
proc gcj_jni_run {} {
global srcdir subdir
@@ -193,6 +290,13 @@ proc gcj_jni_run {} {
foreach x $srcfiles {
gcj_jni_test_one $x
}
+
+ # Run JNI invocation API tests
+ catch { lsort [glob -nocomplain ${srcdir}/${subdir}/invocation/*.java] } srcfiles
+
+ foreach x $srcfiles {
+ gcj_jni_invocation_test_one $x
+ }
} else {
verbose "JNI tests not run in cross-compilation environment"
}
diff --git a/libjava/testsuite/libjava.lang/PR20056.java b/libjava/testsuite/libjava.lang/PR20056.java
new file mode 100644
index 00000000000..f73eb7f048b
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/PR20056.java
@@ -0,0 +1,13 @@
+public class PR20056 {
+ int x;
+ PR20056(int x) {}
+ PR20056(PR20056 f) {
+ // The verifier rejected the generated code in this case.
+ this(f.x = 0);
+ }
+
+ public static void main(String[] args)
+ {
+ System.out.println("maude");
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/PR20056.out b/libjava/testsuite/libjava.lang/PR20056.out
new file mode 100644
index 00000000000..b3668c4d4d6
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/PR20056.out
@@ -0,0 +1 @@
+maude
diff --git a/libjava/testsuite/libjava.lang/bytearray.java b/libjava/testsuite/libjava.lang/bytearray.java
new file mode 100644
index 00000000000..88fdc9af014
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/bytearray.java
@@ -0,0 +1,10 @@
+public class bytearray
+{
+ public static void main (String[] argv) throws Throwable {
+ Class c = Class.forName ("[Ljava.lang.String;");
+ c = Class.forName ("[B");
+ System.out.println (c);
+ c = ClassLoader.getSystemClassLoader().loadClass ("[[Ljava.lang.String;");
+ System.out.println (c);
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/bytearray.out b/libjava/testsuite/libjava.lang/bytearray.out
new file mode 100644
index 00000000000..520d568e9b0
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/bytearray.out
@@ -0,0 +1,2 @@
+class [B
+class [[Ljava.lang.String;
diff --git a/libjava/verify.cc b/libjava/verify.cc
index 988b5aab67e..141f27af797 100644
--- a/libjava/verify.cc
+++ b/libjava/verify.cc
@@ -1,6 +1,6 @@
// verify.cc - verify bytecode
-/* Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation
+/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -578,9 +578,11 @@ private:
//
// First, when constructing a new object, it is the PC of the
// `new' instruction which created the object. We use the special
- // value UNINIT to mean that this is uninitialized, and the
- // special value SELF for the case where the current method is
- // itself the <init> method.
+ // value UNINIT to mean that this is uninitialized. The special
+ // value SELF is used for the case where the current method is
+ // itself the <init> method. the special value EITHER is used
+ // when we may optionally allow either an uninitialized or
+ // initialized reference to match.
//
// Second, when the key is return_address_type, this holds the PC
// of the instruction following the `jsr'.
@@ -588,6 +590,7 @@ private:
static const int UNINIT = -2;
static const int SELF = -1;
+ static const int EITHER = -3;
// Basic constructor.
type ()
@@ -734,23 +737,51 @@ private:
if (k.klass == NULL)
verifier->verify_fail ("programmer error in type::compatible");
- // An initialized type and an uninitialized type are not
- // compatible.
- if (isinitialized () != k.isinitialized ())
- return false;
-
- // Two uninitialized objects are compatible if either:
- // * The PCs are identical, or
- // * One PC is UNINIT.
- if (! isinitialized ())
+ // Handle the special 'EITHER' case, which is only used in a
+ // special case of 'putfield'. Note that we only need to handle
+ // this on the LHS of a check.
+ if (! isinitialized () && pc == EITHER)
{
- if (pc != k.pc && pc != UNINIT && k.pc != UNINIT)
+ // If the RHS is uninitialized, it must be an uninitialized
+ // 'this'.
+ if (! k.isinitialized () && k.pc != SELF)
return false;
}
+ else if (isinitialized () != k.isinitialized ())
+ {
+ // An initialized type and an uninitialized type are not
+ // otherwise compatible.
+ return false;
+ }
+ else
+ {
+ // Two uninitialized objects are compatible if either:
+ // * The PCs are identical, or
+ // * One PC is UNINIT.
+ if (! isinitialized ())
+ {
+ if (pc != k.pc && pc != UNINIT && k.pc != UNINIT)
+ return false;
+ }
+ }
return klass->compatible(k.klass, verifier);
}
+ bool equals (const type &other, _Jv_BytecodeVerifier *vfy)
+ {
+ // Only works for reference types.
+ if ((key != reference_type
+ && key != uninitialized_reference_type)
+ || (other.key != reference_type
+ && other.key != uninitialized_reference_type))
+ return false;
+ // Only for single-valued types.
+ if (klass->ref_next || other.klass->ref_next)
+ return false;
+ return klass->equals (other.klass, vfy);
+ }
+
bool isvoid () const
{
return key == void_type;
@@ -1963,7 +1994,9 @@ private:
}
// Return field's type, compute class' type if requested.
- type check_field_constant (int index, type *class_type = NULL)
+ // If PUTFIELD is true, use the special 'putfield' semantics.
+ type check_field_constant (int index, type *class_type = NULL,
+ bool putfield = false)
{
_Jv_Utf8Const *name, *field_type;
type ct = handle_field_or_method (index,
@@ -1971,9 +2004,29 @@ private:
&name, &field_type);
if (class_type)
*class_type = ct;
+ type result;
if (field_type->first() == '[' || field_type->first() == 'L')
- return type (field_type, this);
- return get_type_val_for_signature (field_type->first());
+ result = type (field_type, this);
+ else
+ result = get_type_val_for_signature (field_type->first());
+
+ // We have an obscure special case here: we can use `putfield' on
+ // a field declared in this class, even if `this' has not yet been
+ // initialized.
+ if (putfield
+ && ! current_state->this_type.isinitialized ()
+ && current_state->this_type.pc == type::SELF
+ && current_state->this_type.equals (ct, this)
+ // We don't look at the signature, figuring that if it is
+ // wrong we will fail during linking. FIXME?
+ && _Jv_Linker::has_field_p (current_class, name))
+ // Note that we don't actually know whether we're going to match
+ // against 'this' or some other object of the same type. So,
+ // here we set things up so that it doesn't matter. This relies
+ // on knowing what our caller is up to.
+ class_type->set_uninitialized (type::EITHER, this);
+
+ return result;
}
type check_method_constant (int index, bool is_interface,
@@ -2783,15 +2836,8 @@ private:
case op_putfield:
{
type klass;
- type field = check_field_constant (get_ushort (), &klass);
+ type field = check_field_constant (get_ushort (), &klass, true);
pop_type (field);
-
- // We have an obscure special case here: we can use
- // `putfield' on a field declared in this class, even if
- // `this' has not yet been initialized.
- if (! current_state->this_type.isinitialized ()
- && current_state->this_type.pc == type::SELF)
- klass.set_uninitialized (type::SELF, this);
pop_type (klass);
}
break;
diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog
index 3dad0437233..42e1db3f760 100644
--- a/libmudflap/ChangeLog
+++ b/libmudflap/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2005-02-13 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/19319
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index 39b942461e6..a3298e9cea2 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,33 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-03-03 David Ayers <d.ayers@inode.at>
+
+ * objc/hash.h (OBJC_IGNORE_DEPRECATED_API): Update deprecated
+ version reference. Correct typo.
+
+2005-03-02 David Ayers <d.ayers@inode.at>
+
+ PR libobjc/19024
+ * Makefile.in (OBJS): Add hash_compat.lo.
+ (OBJS_GC): Add hash_compat_gc.lo.
+ (hash_compat_gc.lo): New target and rule.
+ * objc/hash.h (hash_new, hash_delete, hash_add, hash_remove)
+ (hash_next, hash_value_for_key, hash_is_key_in_hash)
+ (hash_ptr, hash_string, compare_ptrs, compare_strings): Prefix
+ with objc_. Add deprecated non prefixed inlined versions.
+ (OBJC_IGNORE_DEPRECATED_API): New macro to hide deprecated
+ declarations.
+ * hash.c (hash_new, hash_delete, hash_add, hash_remove, hash_next)
+ (hash_value_for_key, hash_is_key_in_hash): Prefix with objc_ and
+ update callers.
+ * hash_compat.c: New file.
+ * archive.c: Update callers.
+ * init.c: Likewise.
+ * selector.c: Likewise.
+ * libobjc.def: Add objc_ versions of hash functions.
+
2004-12-20 Andrew Pinski <pinskia@physics.uc.edu>
PR libobjc/12035
diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in
index 16c890ddd89..46e5ce56bee 100644
--- a/libobjc/Makefile.in
+++ b/libobjc/Makefile.in
@@ -145,13 +145,13 @@ OBJC_H = hash.h objc-list.h sarray.h objc.h objc-api.h \
OBJS = archive.lo class.lo encoding.lo gc.lo hash.lo init.lo linking.lo \
misc.lo nil_method.lo NXConstStr.lo Object.lo objects.lo \
Protocol.lo sarray.lo selector.lo sendmsg.lo thr.lo \
- $(OBJC_THREAD_FILE).lo exception.lo
+ $(OBJC_THREAD_FILE).lo exception.lo hash_compat.lo
OBJS_GC = archive_gc.lo class_gc.lo encoding_gc.lo gc_gc.lo hash_gc.lo \
init_gc.lo linking_gc.lo misc_gc.lo nil_method_gc.lo \
NXConstStr_gc.lo Object_gc.lo objects_gc.lo Protocol_gc.lo \
sarray_gc.lo selector_gc.lo sendmsg_gc.lo thr_gc.lo \
- $(OBJC_THREAD_FILE)_gc.lo exception_gc.lo
+ $(OBJC_THREAD_FILE)_gc.lo exception_gc.lo hash_compat_gc.lo
runtime-info.h:
echo "" > tmp-runtime.m
@@ -182,6 +182,10 @@ hash_gc.lo: hash.c
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
$(INCLUDES) $<
+hash_compat_gc.lo: hash_compat.c
+ $(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
+ $(INCLUDES) $<
+
init_gc.lo: init.c
$(LIBTOOL_COMPILE) $(CC) -c -o $@ $(ALL_CFLAGS) $(OBJC_GCFLAGS) \
$(INCLUDES) $<
diff --git a/libobjc/archive.c b/libobjc/archive.c
index 096ca6931dc..5c3616ca329 100644
--- a/libobjc/archive.c
+++ b/libobjc/archive.c
@@ -301,12 +301,13 @@ objc_write_string_atomic (struct objc_typed_stream *stream,
unsigned char *string, unsigned int nbytes)
{
unsigned long key;
- if ((key = PTR2LONG(hash_value_for_key (stream->stream_table, string))))
+ if ((key = PTR2LONG(objc_hash_value_for_key (stream->stream_table, string))))
return objc_write_use_common (stream, key);
else
{
int length;
- hash_add (&stream->stream_table, LONG2PTR(key=PTR2LONG(string)), string);
+ objc_hash_add (&stream->stream_table,
+ LONG2PTR(key=PTR2LONG(string)), string);
if ((length = objc_write_register_common (stream, key)))
return objc_write_string (stream, string, nbytes);
return length;
@@ -386,7 +387,7 @@ int
objc_write_object_reference (struct objc_typed_stream *stream, id object)
{
unsigned long key;
- if ((key = PTR2LONG(hash_value_for_key (stream->object_table, object))))
+ if ((key = PTR2LONG(objc_hash_value_for_key (stream->object_table, object))))
return objc_write_use_common (stream, key);
__objc_write_extension (stream, _BX_OBJREF);
@@ -415,7 +416,7 @@ int
objc_write_object (struct objc_typed_stream *stream, id object)
{
unsigned long key;
- if ((key = PTR2LONG(hash_value_for_key (stream->object_table, object))))
+ if ((key = PTR2LONG(objc_hash_value_for_key (stream->object_table, object))))
return objc_write_use_common (stream, key);
else if (object == nil)
@@ -424,7 +425,8 @@ objc_write_object (struct objc_typed_stream *stream, id object)
else
{
int length;
- hash_add (&stream->object_table, LONG2PTR(key=PTR2LONG(object)), object);
+ objc_hash_add (&stream->object_table,
+ LONG2PTR(key=PTR2LONG(object)), object);
if ((length = objc_write_register_common (stream, key)))
return __objc_write_object (stream, object);
return length;
@@ -446,12 +448,13 @@ objc_write_class (struct objc_typed_stream *stream,
struct objc_class *class)
{
unsigned long key;
- if ((key = PTR2LONG(hash_value_for_key (stream->stream_table, class))))
+ if ((key = PTR2LONG(objc_hash_value_for_key (stream->stream_table, class))))
return objc_write_use_common (stream, key);
else
{
int length;
- hash_add (&stream->stream_table, LONG2PTR(key = PTR2LONG(class)), class);
+ objc_hash_add (&stream->stream_table,
+ LONG2PTR(key = PTR2LONG(class)), class);
if ((length = objc_write_register_common (stream, key)))
return __objc_write_class (stream, class);
return length;
@@ -482,12 +485,13 @@ objc_write_selector (struct objc_typed_stream *stream, SEL selector)
return __objc_write_selector (stream, selector);
sel_name = sel_get_name (selector);
- if ((key = PTR2LONG(hash_value_for_key (stream->stream_table, sel_name))))
+ if ((key = PTR2LONG(objc_hash_value_for_key (stream->stream_table,
+ sel_name))))
return objc_write_use_common (stream, key);
else
{
int length;
- hash_add (&stream->stream_table,
+ objc_hash_add (&stream->stream_table,
LONG2PTR(key = PTR2LONG(sel_name)), (char *) sel_name);
if ((length = objc_write_register_common (stream, key)))
return __objc_write_selector (stream, selector);
@@ -755,7 +759,7 @@ objc_read_string (struct objc_typed_stream *stream,
int length = buf[0]&_B_VALUE;
(*string) = (char*)objc_malloc (length + 1);
if (key)
- hash_add (&stream->stream_table, LONG2PTR(key), *string);
+ objc_hash_add (&stream->stream_table, LONG2PTR(key), *string);
len = (*stream->read) (stream->physical, *string, length);
(*string)[length] = '\0';
}
@@ -765,7 +769,7 @@ objc_read_string (struct objc_typed_stream *stream,
{
char *tmp;
len = __objc_read_nbyte_ulong (stream, (buf[0] & _B_VALUE), &key);
- tmp = hash_value_for_key (stream->stream_table, LONG2PTR (key));
+ tmp = objc_hash_value_for_key (stream->stream_table, LONG2PTR (key));
*string = objc_malloc (strlen (tmp) + 1);
strcpy (*string, tmp);
}
@@ -778,7 +782,7 @@ objc_read_string (struct objc_typed_stream *stream,
if (len) {
(*string) = (char*)objc_malloc (nbytes + 1);
if (key)
- hash_add (&stream->stream_table, LONG2PTR(key), *string);
+ objc_hash_add (&stream->stream_table, LONG2PTR(key), *string);
len = (*stream->read) (stream->physical, *string, nbytes);
(*string)[nbytes] = '\0';
}
@@ -823,7 +827,7 @@ objc_read_object (struct objc_typed_stream *stream, id *object)
/* register? */
if (key)
- hash_add (&stream->object_table, LONG2PTR(key), *object);
+ objc_hash_add (&stream->object_table, LONG2PTR(key), *object);
/* send -read: */
if (__objc_responds_to (*object, read_sel))
@@ -841,17 +845,19 @@ objc_read_object (struct objc_typed_stream *stream, id *object)
if (key)
objc_error (nil, OBJC_ERR_BAD_KEY, "cannot register use upcode...");
len = __objc_read_nbyte_ulong (stream, (buf[0] & _B_VALUE), &key);
- (*object) = hash_value_for_key (stream->object_table, LONG2PTR(key));
+ (*object) = objc_hash_value_for_key (stream->object_table,
+ LONG2PTR(key));
}
else if (buf[0] == (_B_EXT | _BX_OBJREF)) /* a forward reference */
{
struct objc_list *other;
len = objc_read_unsigned_long (stream, &key);
- other = (struct objc_list *) hash_value_for_key (stream->object_refs,
+ other
+ = (struct objc_list *) objc_hash_value_for_key (stream->object_refs,
LONG2PTR(key));
- hash_add (&stream->object_refs, LONG2PTR(key),
- (void *)list_cons (object, other));
+ objc_hash_add (&stream->object_refs, LONG2PTR(key),
+ (void *)list_cons (object, other));
}
else if (buf[0] == (_B_EXT | _BX_OBJROOT)) /* a root object */
@@ -898,10 +904,11 @@ objc_read_class (struct objc_typed_stream *stream, Class *class)
/* register */
if (key)
- hash_add (&stream->stream_table, LONG2PTR(key), *class);
+ objc_hash_add (&stream->stream_table, LONG2PTR(key), *class);
objc_read_unsigned_long (stream, &version);
- hash_add (&stream->class_table, (*class)->name, (void *)version);
+ objc_hash_add (&stream->class_table,
+ (*class)->name, (void *)version);
}
else if ((buf[0]&_B_CODE) == _B_UCOMM)
@@ -909,7 +916,8 @@ objc_read_class (struct objc_typed_stream *stream, Class *class)
if (key)
objc_error (nil, OBJC_ERR_BAD_KEY, "cannot register use upcode...");
len = __objc_read_nbyte_ulong (stream, (buf[0] & _B_VALUE), &key);
- *class = hash_value_for_key (stream->stream_table, LONG2PTR(key));
+ *class = objc_hash_value_for_key (stream->stream_table,
+ LONG2PTR(key));
if (! *class)
objc_error (nil, OBJC_ERR_BAD_CLASS,
"cannot find class for key %lu", key);
@@ -956,7 +964,8 @@ objc_read_selector (struct objc_typed_stream *stream, SEL* selector)
/* register */
if (key)
- hash_add (&stream->stream_table, LONG2PTR(key), (void *) *selector);
+ objc_hash_add (&stream->stream_table,
+ LONG2PTR(key), (void *) *selector);
}
else if ((buf[0]&_B_CODE) == _B_UCOMM)
@@ -964,8 +973,8 @@ objc_read_selector (struct objc_typed_stream *stream, SEL* selector)
if (key)
objc_error (nil, OBJC_ERR_BAD_KEY, "cannot register use upcode...");
len = __objc_read_nbyte_ulong (stream, (buf[0] & _B_VALUE), &key);
- (*selector) = hash_value_for_key (stream->stream_table,
- LONG2PTR(key));
+ (*selector) = objc_hash_value_for_key (stream->stream_table,
+ LONG2PTR(key));
}
else
@@ -1475,54 +1484,54 @@ __objc_write_typed_stream_signature (TypedStream *stream)
static void __objc_finish_write_root_object(struct objc_typed_stream *stream)
{
- hash_delete (stream->object_table);
- stream->object_table = hash_new(64,
- (hash_func_type)hash_ptr,
- (compare_func_type)compare_ptrs);
+ objc_hash_delete (stream->object_table);
+ stream->object_table = objc_hash_new (64,
+ (hash_func_type) objc_hash_ptr,
+ (compare_func_type) objc_compare_ptrs);
}
static void __objc_finish_read_root_object(struct objc_typed_stream *stream)
{
node_ptr node;
SEL awake_sel = sel_get_any_uid ("awake");
- cache_ptr free_list = hash_new (64,
- (hash_func_type) hash_ptr,
- (compare_func_type) compare_ptrs);
+ cache_ptr free_list = objc_hash_new (64,
+ (hash_func_type) objc_hash_ptr,
+ (compare_func_type) objc_compare_ptrs);
/* resolve object forward references */
- for (node = hash_next (stream->object_refs, NULL); node;
- node = hash_next (stream->object_refs, node))
+ for (node = objc_hash_next (stream->object_refs, NULL); node;
+ node = objc_hash_next (stream->object_refs, node))
{
struct objc_list *reflist = node->value;
const void *key = node->key;
- id object = hash_value_for_key (stream->object_table, key);
+ id object = objc_hash_value_for_key (stream->object_table, key);
while (reflist)
{
*((id*) reflist->head) = object;
- if (hash_value_for_key (free_list,reflist) == NULL)
- hash_add (&free_list,reflist,reflist);
+ if (objc_hash_value_for_key (free_list,reflist) == NULL)
+ objc_hash_add (&free_list,reflist,reflist);
reflist = reflist->tail;
}
}
/* apply __objc_free to all objects stored in free_list */
- for (node = hash_next (free_list, NULL); node;
- node = hash_next (free_list, node))
+ for (node = objc_hash_next (free_list, NULL); node;
+ node = objc_hash_next (free_list, node))
objc_free ((void *) node->key);
- hash_delete (free_list);
+ objc_hash_delete (free_list);
/* empty object reference table */
- hash_delete (stream->object_refs);
- stream->object_refs = hash_new(8, (hash_func_type)hash_ptr,
- (compare_func_type)compare_ptrs);
+ objc_hash_delete (stream->object_refs);
+ stream->object_refs = objc_hash_new (8, (hash_func_type) objc_hash_ptr,
+ (compare_func_type) objc_compare_ptrs);
/* call -awake for all objects read */
if (awake_sel)
{
- for (node = hash_next (stream->object_table, NULL); node;
- node = hash_next (stream->object_table, node))
+ for (node = objc_hash_next (stream->object_table, NULL); node;
+ node = objc_hash_next (stream->object_table, node))
{
id object = node->value;
if (__objc_responds_to (object, awake_sel))
@@ -1531,10 +1540,10 @@ static void __objc_finish_read_root_object(struct objc_typed_stream *stream)
}
/* empty object table */
- hash_delete (stream->object_table);
- stream->object_table = hash_new(64,
- (hash_func_type)hash_ptr,
- (compare_func_type)compare_ptrs);
+ objc_hash_delete (stream->object_table);
+ stream->object_table = objc_hash_new(64,
+ (hash_func_type)objc_hash_ptr,
+ (compare_func_type)objc_compare_ptrs);
}
/*
@@ -1548,21 +1557,22 @@ objc_open_typed_stream (FILE *physical, int mode)
s->mode = mode;
s->physical = physical;
- s->stream_table = hash_new (64,
- (hash_func_type) hash_ptr,
- (compare_func_type) compare_ptrs);
- s->object_table = hash_new (64,
- (hash_func_type) hash_ptr,
- (compare_func_type) compare_ptrs);
+ s->stream_table = objc_hash_new (64,
+ (hash_func_type) objc_hash_ptr,
+ (compare_func_type) objc_compare_ptrs);
+ s->object_table = objc_hash_new (64,
+ (hash_func_type) objc_hash_ptr,
+ (compare_func_type) objc_compare_ptrs);
s->eof = (objc_typed_eof_func) __objc_feof;
s->flush = (objc_typed_flush_func) fflush;
s->writing_root_p = 0;
if (mode == OBJC_READONLY)
{
- s->class_table = hash_new (8, (hash_func_type) hash_string,
- (compare_func_type) compare_strings);
- s->object_refs = hash_new (8, (hash_func_type) hash_ptr,
- (compare_func_type) compare_ptrs);
+ s->class_table
+ = objc_hash_new (8, (hash_func_type) objc_hash_string,
+ (compare_func_type) objc_compare_strings);
+ s->object_refs = objc_hash_new (8, (hash_func_type) objc_hash_ptr,
+ (compare_func_type) objc_compare_ptrs);
s->read = (objc_typed_read_func) __objc_fread;
s->write = (objc_typed_write_func) __objc_no_write;
__objc_read_typed_stream_signature (s);
@@ -1621,12 +1631,12 @@ objc_close_typed_stream (TypedStream *stream)
if (stream->mode == OBJC_READONLY)
{
__objc_finish_read_root_object (stream); /* Just in case... */
- hash_delete (stream->class_table);
- hash_delete (stream->object_refs);
+ objc_hash_delete (stream->class_table);
+ objc_hash_delete (stream->object_refs);
}
- hash_delete (stream->stream_table);
- hash_delete (stream->object_table);
+ objc_hash_delete (stream->stream_table);
+ objc_hash_delete (stream->object_table);
if (stream->type == (OBJC_MANAGED_STREAM | OBJC_FILE_STREAM))
fclose ((FILE *)stream->physical);
@@ -1650,7 +1660,8 @@ long
objc_get_stream_class_version (TypedStream *stream, Class class)
{
if (stream->class_table)
- return PTR2LONG(hash_value_for_key (stream->class_table, class->name));
+ return PTR2LONG(objc_hash_value_for_key (stream->class_table,
+ class->name));
else
return class_get_version (class);
}
diff --git a/libobjc/encoding.c b/libobjc/encoding.c
index 7f71276b556..046b664b8fb 100644
--- a/libobjc/encoding.c
+++ b/libobjc/encoding.c
@@ -780,6 +780,23 @@ objc_layout_structure (const char *type,
layout->record_align = MAX (layout->record_align, STRUCTURE_SIZE_BOUNDARY);
}
+/* APPLE LOCAL begin Macintosh alignment 2002-2-26 --ff */
+#ifdef RS6000_PIC_OFFSET_TABLE_REGNUM
+/* Ick, darwin.h doesn't work anymore... Fix this please. */
+#undef ROUND_TYPE_ALIGN
+#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
+ ((TREE_CODE (STRUCT) == RECORD_TYPE \
+ || TREE_CODE (STRUCT) == UNION_TYPE \
+ || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \
+ && TARGET_ALIGN_NATURAL == 0 \
+ ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \
+ : (TREE_CODE (STRUCT) == VECTOR_TYPE \
+ && ALTIVEC_VECTOR_MODE (TYPE_MODE (STRUCT))) \
+ ? MAX (MAX ((COMPUTED), (SPECIFIED)), 128) \
+ : MAX ((COMPUTED), (SPECIFIED)))
+#define TARGET_ALIGN_MAC68K 0
+#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-26 --ff */
BOOL
objc_layout_structure_next_member (struct objc_struct_layout *layout)
@@ -845,9 +862,11 @@ objc_layout_structure_next_member (struct objc_struct_layout *layout)
#ifdef BIGGEST_FIELD_ALIGNMENT
desired_align = MIN (desired_align, BIGGEST_FIELD_ALIGNMENT);
#endif
+/* APPLE LOCAL begin Macintosh alignment 2002-2-26 --ff */
#ifdef ADJUST_FIELD_ALIGN
- desired_align = ADJUST_FIELD_ALIGN (type, desired_align);
+ desired_align = ADJUST_FIELD_ALIGN (type, desired_align, layout->prev_type == 0);
#endif
+/* APPLE LOCAL end Macintosh alignment 2002-2-26 --ff */
/* Record must have at least as much alignment as any field.
Otherwise, the alignment of the field within the record
diff --git a/libobjc/hash.c b/libobjc/hash.c
index cbea81ad424..e2072b605f7 100644
--- a/libobjc/hash.c
+++ b/libobjc/hash.c
@@ -40,8 +40,8 @@ Boston, MA 02111-1307, USA. */
((cache)->size * 2)
cache_ptr
-hash_new (unsigned int size, hash_func_type hash_func,
- compare_func_type compare_func)
+objc_hash_new (unsigned int size, hash_func_type hash_func,
+ compare_func_type compare_func)
{
cache_ptr cache;
@@ -77,7 +77,7 @@ hash_new (unsigned int size, hash_func_type hash_func,
void
-hash_delete (cache_ptr cache)
+objc_hash_delete (cache_ptr cache)
{
node_ptr node;
node_ptr next_node;
@@ -85,17 +85,17 @@ hash_delete (cache_ptr cache)
/* Purge all key/value pairs from the table. */
/* Step through the nodes one by one and remove every node WITHOUT
- using hash_next. this makes hash_delete much more efficient. */
+ using objc_hash_next. this makes objc_hash_delete much more efficient. */
for (i = 0;i < cache->size;i++) {
if ((node = cache->node_table[i])) {
/* an entry in the hash table has been found, now step through the
nodes next in the list and free them. */
while ((next_node = node->next)) {
- hash_remove (cache,node->key);
+ objc_hash_remove (cache,node->key);
node = next_node;
}
- hash_remove (cache,node->key);
+ objc_hash_remove (cache,node->key);
}
}
@@ -106,7 +106,7 @@ hash_delete (cache_ptr cache)
void
-hash_add (cache_ptr *cachep, const void *key, void *value)
+objc_hash_add (cache_ptr *cachep, const void *key, void *value)
{
size_t indx = (*(*cachep)->hash_func)(*cachep, key);
node_ptr node = (node_ptr) objc_calloc (1, sizeof (struct cache_node));
@@ -149,19 +149,19 @@ hash_add (cache_ptr *cachep, const void *key, void *value)
primitive functions thereby increasing its
correctness. */
node_ptr node1 = NULL;
- cache_ptr new = hash_new (EXPANSION (*cachep),
- (*cachep)->hash_func,
- (*cachep)->compare_func);
+ cache_ptr new = objc_hash_new (EXPANSION (*cachep),
+ (*cachep)->hash_func,
+ (*cachep)->compare_func);
DEBUG_PRINTF ("Expanding cache %#x from %d to %d\n",
(int) *cachep, (*cachep)->size, new->size);
/* Copy the nodes from the first hash table to the new one. */
- while ((node1 = hash_next (*cachep, node1)))
- hash_add (&new, node1->key, node1->value);
+ while ((node1 = objc_hash_next (*cachep, node1)))
+ objc_hash_add (&new, node1->key, node1->value);
/* Trash the old cache. */
- hash_delete (*cachep);
+ objc_hash_delete (*cachep);
/* Return a pointer to the new hash table. */
*cachep = new;
@@ -170,7 +170,7 @@ hash_add (cache_ptr *cachep, const void *key, void *value)
void
-hash_remove (cache_ptr cache, const void *key)
+objc_hash_remove (cache_ptr cache, const void *key)
{
size_t indx = (*cache->hash_func)(cache, key);
node_ptr node = cache->node_table[indx];
@@ -206,7 +206,7 @@ hash_remove (cache_ptr cache, const void *key)
node_ptr
-hash_next (cache_ptr cache, node_ptr node)
+objc_hash_next (cache_ptr cache, node_ptr node)
{
/* If the scan is being started then reset the last node
visitied pointer and bucket index. */
@@ -246,7 +246,7 @@ hash_next (cache_ptr cache, node_ptr node)
Return NULL if the KEY is not recorded. */
void *
-hash_value_for_key (cache_ptr cache, const void *key)
+objc_hash_value_for_key (cache_ptr cache, const void *key)
{
node_ptr node = cache->node_table[(*cache->hash_func)(cache, key)];
void *retval = NULL;
@@ -267,7 +267,7 @@ hash_value_for_key (cache_ptr cache, const void *key)
Return NO if it does not */
BOOL
-hash_is_key_in_hash (cache_ptr cache, const void *key)
+objc_hash_is_key_in_hash (cache_ptr cache, const void *key)
{
node_ptr node = cache->node_table[(*cache->hash_func)(cache, key)];
diff --git a/libobjc/hash_compat.c b/libobjc/hash_compat.c
new file mode 100644
index 00000000000..46c273858a6
--- /dev/null
+++ b/libobjc/hash_compat.c
@@ -0,0 +1,97 @@
+/* Binary compatibility hash implementations for Objective C.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you link this library with files
+ compiled with GCC 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. */
+
+#define OBJC_IGNORE_DEPRECATED_API 1
+#include "hash.h"
+
+cache_ptr
+hash_new (unsigned int size,
+ hash_func_type hash_func,
+ compare_func_type compare_func)
+{
+ return objc_hash_new(size, hash_func, compare_func);
+}
+
+void
+hash_delete(cache_ptr cache)
+{
+ objc_hash_delete(cache);
+}
+
+void
+hash_add (cache_ptr *cachep, const void *key, void *value)
+{
+ objc_hash_add(cachep, key, value);
+}
+
+void
+hash_remove (cache_ptr cache, const void *key)
+{
+ objc_hash_remove (cache, key);
+}
+
+node_ptr
+hash_next (cache_ptr cache, node_ptr node)
+{
+ return objc_hash_next (cache, node);
+}
+
+void *
+hash_value_for_key (cache_ptr cache, const void *key)
+{
+ return objc_hash_value_for_key (cache, key);
+}
+
+BOOL
+hash_is_key_in_hash (cache_ptr cache, const void *key)
+{
+ return objc_hash_is_key_in_hash (cache, key);
+}
+
+unsigned int
+hash_ptr (cache_ptr cache, const void *key)
+{
+ return objc_hash_ptr (cache, key);
+}
+
+unsigned int
+hash_string (cache_ptr cache, const void *key)
+{
+ return objc_hash_string (cache, key);
+}
+
+int
+compare_ptrs (const void *k1, const void *k2)
+{
+ return objc_compare_ptrs (k1, k2);
+}
+
+int
+compare_strings (const void *k1, const void *k2)
+{
+ return objc_compare_strings (k1, k2);
+}
+
diff --git a/libobjc/init.c b/libobjc/init.c
index 33a933875b0..3eb53866f38 100644
--- a/libobjc/init.c
+++ b/libobjc/init.c
@@ -363,10 +363,12 @@ __objc_send_message_in_list (MethodList_t method_list, Class class, SEL op)
Method_t mth = &method_list->method_list[i];
if (mth->method_name && sel_eq (mth->method_name, op)
- && ! hash_is_key_in_hash (__objc_load_methods, mth->method_imp))
+ && ! objc_hash_is_key_in_hash (__objc_load_methods, mth->method_imp))
{
/* Add this method into the +load hash table */
- hash_add (&__objc_load_methods, mth->method_imp, mth->method_imp);
+ objc_hash_add (&__objc_load_methods,
+ mth->method_imp,
+ mth->method_imp);
DEBUG_PRINTF ("sending +load in class: %s\n", class->name);
@@ -538,8 +540,9 @@ __objc_exec_class (Module_t module)
__objc_init_class_tables ();
__objc_init_dispatch_tables ();
__objc_class_tree_list = list_cons (NULL, __objc_class_tree_list);
- __objc_load_methods
- = hash_new (128, (hash_func_type)hash_ptr, compare_ptrs);
+ __objc_load_methods = objc_hash_new (128,
+ (hash_func_type)objc_hash_ptr,
+ objc_compare_ptrs);
previous_constructors = 1;
}
diff --git a/libobjc/libobjc.def b/libobjc/libobjc.def
index 2443d4c7b4c..bd50959cf07 100644
--- a/libobjc/libobjc.def
+++ b/libobjc/libobjc.def
@@ -22,6 +22,7 @@ LIBRARY libobjc
EXPORTS
search_for_method_in_list
objc_get_uninstalled_dtable
+objc_hash_is_key_in_hash
hash_is_key_in_hash
objc_verror
_objc_load_callback
@@ -155,9 +156,15 @@ sarray_lazy_copy
sarray_new
sarray_realloc
sarray_remove_garbage
+objc_hash_add
hash_add
+objc_hash_delete
hash_delete
+objc_hash_new
hash_new
+objc_hash_next
hash_next
+objc_hash_remove
hash_remove
+objc_hash_value_for_key
hash_value_for_key
diff --git a/libobjc/objc/hash.h b/libobjc/objc/hash.h
index f56e0c01841..e3002c4539a 100644
--- a/libobjc/objc/hash.h
+++ b/libobjc/objc/hash.h
@@ -62,7 +62,7 @@ typedef struct cache_node
*
* Unfortunately there is a mutual data structure reference problem with this
* typedef. Therefore, to remove compiler warnings the functions passed to
- * hash_new will have to be casted to this type.
+ * objc_hash_new will have to be casted to this type.
*/
typedef unsigned int (*hash_func_type) (void *, const void *);
@@ -111,25 +111,25 @@ extern cache_ptr module_hash_table, class_hash_table;
/* Allocate and initialize a hash table. */
-cache_ptr hash_new (unsigned int size,
- hash_func_type hash_func,
- compare_func_type compare_func);
+cache_ptr objc_hash_new (unsigned int size,
+ hash_func_type hash_func,
+ compare_func_type compare_func);
/* Deallocate all of the hash nodes and the cache itself. */
-void hash_delete (cache_ptr cache);
+void objc_hash_delete (cache_ptr cache);
/* Add the key/value pair to the hash table. If the
hash table reaches a level of fullness then it will be resized.
assert if the key is already in the hash. */
-void hash_add (cache_ptr *cachep, const void *key, void *value);
+void objc_hash_add (cache_ptr *cachep, const void *key, void *value);
/* Remove the key/value pair from the hash table.
assert if the key isn't in the table. */
-void hash_remove (cache_ptr cache, const void *key);
+void objc_hash_remove (cache_ptr cache, const void *key);
/* Used to index through the hash table. Start with NULL
to get the first entry.
@@ -140,15 +140,15 @@ void hash_remove (cache_ptr cache, const void *key);
Cache nodes are returned such that key or value can
be extracted. */
-node_ptr hash_next (cache_ptr cache, node_ptr node);
+node_ptr objc_hash_next (cache_ptr cache, node_ptr node);
/* Used to return a value from a hash table using a given key. */
-void *hash_value_for_key (cache_ptr cache, const void *key);
+void *objc_hash_value_for_key (cache_ptr cache, const void *key);
/* Used to determine if the given key exists in the hash table */
-BOOL hash_is_key_in_hash (cache_ptr cache, const void *key);
+BOOL objc_hash_is_key_in_hash (cache_ptr cache, const void *key);
/************************************************
@@ -163,7 +163,7 @@ BOOL hash_is_key_in_hash (cache_ptr cache, const void *key);
except for those likely to be 0 due to alignment.) */
static inline unsigned int
-hash_ptr (cache_ptr cache, const void *key)
+objc_hash_ptr (cache_ptr cache, const void *key)
{
return ((size_t)key / sizeof (void *)) & cache->mask;
}
@@ -172,7 +172,7 @@ hash_ptr (cache_ptr cache, const void *key)
/* Calculate a hash code by iterating over a NULL
terminate string. */
static inline unsigned int
-hash_string (cache_ptr cache, const void *key)
+objc_hash_string (cache_ptr cache, const void *key)
{
unsigned int ret = 0;
unsigned int ctr = 0;
@@ -189,7 +189,7 @@ hash_string (cache_ptr cache, const void *key)
/* Compare two pointers for equality. */
static inline int
-compare_ptrs (const void *k1, const void *k2)
+objc_compare_ptrs (const void *k1, const void *k2)
{
return (k1 == k2);
}
@@ -197,7 +197,7 @@ compare_ptrs (const void *k1, const void *k2)
/* Compare two strings. */
static inline int
-compare_strings (const void *k1, const void *k2)
+objc_compare_strings (const void *k1, const void *k2)
{
if (k1 == k2)
return 1;
@@ -207,6 +207,107 @@ compare_strings (const void *k1, const void *k2)
return ! strcmp ((const char *) k1, (const char *) k2);
}
+#ifndef OBJC_IGNORE_DEPRECATED_API
+/* Deprecated as of 4.0 */
+
+static inline cache_ptr
+hash_new (unsigned int size,
+ hash_func_type hash_func,
+ compare_func_type compare_func) __attribute__ ((deprecated));
+static inline cache_ptr
+hash_new (unsigned int size,
+ hash_func_type hash_func,
+ compare_func_type compare_func)
+{
+ return objc_hash_new(size, hash_func, compare_func);
+}
+
+static inline void
+hash_delete(cache_ptr cache) __attribute__ ((deprecated));
+static inline void
+hash_delete(cache_ptr cache)
+{
+ objc_hash_delete(cache);
+}
+
+static inline void
+hash_add (cache_ptr *cachep,
+ const void *key,
+ void *value) __attribute__ ((deprecated));
+static inline void
+hash_add (cache_ptr *cachep, const void *key, void *value)
+{
+ objc_hash_add(cachep, key, value);
+}
+
+static inline void
+hash_remove (cache_ptr cache, const void *key) __attribute__ ((deprecated));
+static inline void
+hash_remove (cache_ptr cache, const void *key)
+{
+ objc_hash_remove (cache, key);
+}
+
+static inline node_ptr
+hash_next (cache_ptr cache, node_ptr node) __attribute__ ((deprecated));
+static inline node_ptr
+hash_next (cache_ptr cache, node_ptr node)
+{
+ return objc_hash_next (cache, node);
+}
+
+static inline void *
+hash_value_for_key (cache_ptr cache,
+ const void *key) __attribute__ ((deprecated));
+static inline void *
+hash_value_for_key (cache_ptr cache, const void *key)
+{
+ return objc_hash_value_for_key (cache, key);
+}
+
+static inline BOOL
+hash_is_key_in_hash (cache_ptr cache,
+ const void *key) __attribute__ ((deprecated));
+static inline BOOL
+hash_is_key_in_hash (cache_ptr cache, const void *key)
+{
+ return objc_hash_is_key_in_hash (cache, key);
+}
+
+static inline unsigned int
+hash_ptr (cache_ptr cache, const void *key) __attribute__ ((deprecated));
+static inline unsigned int
+hash_ptr (cache_ptr cache, const void *key)
+{
+ return objc_hash_ptr (cache, key);
+}
+
+static inline unsigned int
+hash_string (cache_ptr cache, const void *key) __attribute__ ((deprecated));
+static inline unsigned int
+hash_string (cache_ptr cache, const void *key)
+{
+ return objc_hash_string (cache, key);
+}
+
+static inline int
+compare_ptrs (const void *k1, const void *k2) __attribute__ ((deprecated));
+static inline int
+compare_ptrs (const void *k1, const void *k2)
+{
+ return objc_compare_ptrs (k1, k2);
+}
+
+static inline int
+compare_strings (const void *k1, const void *k2) __attribute__ ((deprecated));
+static inline int
+compare_strings (const void *k1, const void *k2)
+{
+ return objc_compare_strings (k1, k2);
+}
+#endif /* OBJC_IGNORE_DEPRECATED_API */
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/libobjc/selector.c b/libobjc/selector.c
index edaef2d959d..ce8acf7ac3a 100644
--- a/libobjc/selector.c
+++ b/libobjc/selector.c
@@ -43,9 +43,9 @@ void __objc_init_selector_tables (void)
__objc_selector_array = sarray_new (SELECTOR_HASH_SIZE, 0);
__objc_selector_names = sarray_new (SELECTOR_HASH_SIZE, 0);
__objc_selector_hash
- = hash_new (SELECTOR_HASH_SIZE,
- (hash_func_type) hash_string,
- (compare_func_type) compare_strings);
+ = objc_hash_new (SELECTOR_HASH_SIZE,
+ (hash_func_type) objc_hash_string,
+ (compare_func_type) objc_compare_strings);
}
/* This routine is given a class and records all of the methods in its class
@@ -195,7 +195,7 @@ sel_get_typed_uid (const char *name, const char *types)
objc_mutex_lock (__objc_runtime_mutex);
- i = (sidx) hash_value_for_key (__objc_selector_hash, name);
+ i = (sidx) objc_hash_value_for_key (__objc_selector_hash, name);
if (i == 0)
{
objc_mutex_unlock (__objc_runtime_mutex);
@@ -235,7 +235,7 @@ sel_get_any_typed_uid (const char *name)
objc_mutex_lock (__objc_runtime_mutex);
- i = (sidx) hash_value_for_key (__objc_selector_hash, name);
+ i = (sidx) objc_hash_value_for_key (__objc_selector_hash, name);
if (i == 0)
{
objc_mutex_unlock (__objc_runtime_mutex);
@@ -266,7 +266,7 @@ sel_get_any_uid (const char *name)
objc_mutex_lock (__objc_runtime_mutex);
- i = (sidx) hash_value_for_key (__objc_selector_hash, name);
+ i = (sidx) objc_hash_value_for_key (__objc_selector_hash, name);
if (soffset_decode (i) == 0)
{
objc_mutex_unlock (__objc_runtime_mutex);
@@ -368,7 +368,7 @@ __sel_register_typed_name (const char *name, const char *types,
sidx i;
struct objc_list *l;
- i = (sidx) hash_value_for_key (__objc_selector_hash, name);
+ i = (sidx) objc_hash_value_for_key (__objc_selector_hash, name);
if (soffset_decode (i) != 0)
{
for (l = (struct objc_list *) sarray_get_safe (__objc_selector_array, i);
@@ -453,7 +453,7 @@ __sel_register_typed_name (const char *name, const char *types,
sarray_at_put_safe (__objc_selector_names, i, (void *) new_name);
sarray_at_put_safe (__objc_selector_array, i, (void *) l);
if (is_new)
- hash_add (&__objc_selector_hash, (void *) new_name, (void *) i);
+ objc_hash_add (&__objc_selector_hash, (void *) new_name, (void *) i);
}
sarray_realloc (__objc_uninstalled_dtable, __objc_selector_max_index + 1);
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 0d5155bc367..8bb036b251a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,559 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
+2005-04-20 Mark Mitchell <mark@codesourcery.com>
+
+ * testsuite/ext/bitmap_allocator/check_allocate_max_size.cpp: Add
+ explicit instantiations for systems without weak symbols.
+ * testsuite/ext/bitmap_allocator/check_deallocate_null.cc:
+ Likewise.
+
+2005-04-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Set default for linux
+ and bsd to new_allocator.
+ * configure: Regenerate.
+
+2005-04-14 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/ext/bitmap_allocator.h
+ (__gnu_cxx::free_list::_M_get_mutex): New.
+ (__gnu_cxx::free_list::_M_get_free_list): New.
+ (__gnu_cxx::free_list::_S_bfl_mutex): Remove.
+ (__gnu_cxx::free_list::_S_free_list): Remove.
+ * src/bitmap_allocator.cc: Same.
+ * config/linker-map.gnu: Remove free_list and mutex export.
+
+2005-04-08 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/20909
+ * include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
+ Don't even try to group numbers like 2e20, i.e., no decimal
+ point, scientific notation.
+ * testsuite/22_locale/num_put/put/char/20909.cc: New.
+ * testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise.
+
+2005-04-08 Danny Smith <dannysmith@users.sourceforge.net>
+ Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/20806
+ * config/os/mingw32/os_defines.h: Define
+ _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM.
+ * config/os/newlib/os_defines.h: Likewise, for __CYGWIN__.
+ * include/bits/fstream.tcc (basic_filebuf<>::showmanyc()):
+ Use it.
+ (basic_filebuf<>::xsgetn(_CharT*, streamsize)): Likewise.
+
+2005-04-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/cpu/s390/atomicity.h (__exchange_and_add): Add "memory"
+ clobber to inline assembly statement.
+
+2005-04-05 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/tr1/memory, include/tr1/boost_shared_ptr.h: Use mutex
+ to make _Sp_counted_base::add_ref_lock() thread-safe. Check whether
+ to destroy resources by testing for equality, not inequality. Add
+ empty critical sections to solve memory visibility issues.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/auto_ptr_neg.cc: Use dg-excess-errors instead of
+ explicitly listing line numbers which need to be kept in sync.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/auto_ptr_neg.cc: Same.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/auto_ptr_rvalue_neg.cc: Same.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/weak_ptr_expired.cc: Make XFAIL for consistency when
+ -fno-exceptions.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/not_shared.cc: Add explanatory comments.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/not_shared2.cc: Same.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/not_shared3.cc: Same.
+
+2005-04-02 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/tr1/tuple_iterate.h (tuple_element): Use new macro
+ _GLIBCXX_T_NUM_ARGS_PLUS_1 because _T is a macro on Darwin.
+ * include/tr1/repeat.h (_GLIBCXX_T_NUM_ARGS_PLUS_1): Define for
+ each iteration.
+ * scripts/gen_includers.h: Define _GLIBCXX_T_NUM_ARGS_PLUS_1 for
+ each iteration.
+
+2005-04-01 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/tr1/functional (_Maybe_wrap_member_pointer): Wrap up
+ member pointers in _Mem_fn but let other function objects pass
+ through unchanged.
+ * include/tr1/functional_iterator (bind): Reduce number of bind()
+ overloads to two to eliminate ambiguities. Use
+ _Maybe_wrap_member_pointer to handle member pointers gracefully.
+
+2005-03-31 Chris Jefferson <chris@bubblescope.net>
+
+ * include/tr1/tuple: Support iteration via tuple_iterate.h.
+ * include/tr1/tuple_iterate.h: Iteration file for tuple.
+
+2005-03-31 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/Makefile.am (tr1_headers): Add bind and mu repetition
+ headers and reference_wrapper<> forwarding header.
+ * include/Makefile.in: Regenerate.
+ * include/tr1/bind_iterate.h: Implementation of function call
+ operators for the function object returned from tr1::bind().
+ * include/tr1/bind_repeat.h: Bind-specific repetition header,
+ akin to include/tr1/repeat.h.
+ * include/tr1/functional (_Mem_fn): Bug fix: declare result member
+ template for use with result_of.
+ (is_bind_expression): New.
+ (is_placeholder): New.
+ (_Placeholder): New. Placeholder type for bind.
+ (_Mu): New. Implementation detail of bind.
+ (_Bind, _Bind_result): New. Function objects returned by bind.
+ (_GLIBCXX_JOIN): New. Required to create bind placeholders.
+ * include/tr1/functional_iterate.h (_Bind, _Bind_result, bind):
+ New. Implementation of tr1::bind.
+ * include/tr1/mu_iterate.h (_Mu): result template and operator()
+ for the _Mu helper to bind.
+ * include/tr1/ref_fwd.h (reference_wrapper): Forward declaration
+ used by tuple header.
+ (ref): Ditto.
+ (cref): Ditto.
+ * include/tr1/repeat.h: Add bind-specific repetition macros.
+ * include/tr1/tuple: Use reference_wrapper forwarding header for
+ initial definitions, then include <tr1/functional> at the end, to
+ make the circular dependencies work.
+ (tie): Support zero-argument tie() function.
+ * testsuite/tr1/3_function_objects/bind/all_bound.cc: New test of
+ bind() functionality with parameters bound.
+ * testsuite/tr1/3_function_objects/bind/nested.cc: New test of
+ nested bind() expressions.
+ * testsuite/tr1/3_function_objects/bind/placeholders.cc: New test
+ of bind() placeholders.
+ * testsuite/tr1/3_function_objects/bind/ref.cc: New test of bind()
+ with arguments bound via reference_wrapper<>.
+ * scripts/gen_includers.pl: Generate the repetitive part of
+ include/tr1/repeat.h.
+ * scripts/gen_bind_includers.pl: Generate the repetitive part of
+ include/tr1/bind_repeat.h.
+
+2005-03-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/tr1/memory: Forward to...
+ * include/tr1/boost_shared_ptr.h: ...here. Add Boost Software License.
+ * include/Makefile.am (tr1_headers): Add boost_shared_ptr.h.
+ * include/Makefile.in: Regenerate.
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/cons/
+ auto_ptr_neg.cc: Adjust line numbers.
+
+2005-03-22 Chris Jefferson <chris@bubblescope.net>
+
+ PR libstdc++/20577
+ * include/bits/stl_algobase.h (iter_swap): Only delegate iter_swap
+ to swap when the iterator's reference_type is a reference to its
+ value_type.
+ * testsuite/25_algorithms/iter_swap/20577.cc: New.
+
+2005-03-21 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/20352
+ * include/std/std_complex.h (pow(const complex<_Tp>&,
+ const _Tp&)): On non-c99 platforms, don't try to compute
+ log of complex zero.
+
+2005-03-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/testsuite_abi.cc: Add CXXABI_1.3.1.
+
+2005-03-08 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits (is_polymorphic): Don't forget
+ the virtual destructor, thus avoiding warnings.
+ * testsuite/testsuite_tr1.h (class AbstractClass,
+ class PolymorphicClass): Likewise.
+
+2005-03-08 Paolo Carlini <pcarlini@suse.de>
+
+ * include/std/std_complex.h (pow(const complex<_Tp>&,
+ const complex<_Tp>&)): Dispatch to either __complex_pow(__x.__rep(),
+ __y.__rep()) or __complex_pow(__x, __y) depending on the macro
+ _GLIBCXX_USE_C99_COMPLEX.
+
+2005-03-08 Paolo Carlini <pcarlini@suse.de>
+
+ * include/std/std_fstream.h (basic_fstream<>::open,
+ basic_ifstream<>::open, basic_ofstream<>::open): Implement the
+ resolution of DR 409 [Ready], call clear() on success.
+ * docs/html/ext/howto.html: Add an entry for DR 409.
+ * docs/html/faq/index.html (4_4): Clarify the new behavior.
+ * testsuite/27_io/basic_ifstream/open/char/1.cc: Adjust.
+ * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
+
+2005-03-06 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits: Add is_base_of.
+ * testsuite/tr1/4_metaprogramming/relationships_between_types/
+ is_base_of/is_base_of.cc: New.
+ * testsuite/tr1/4_metaprogramming/relationships_between_types/
+ is_base_of/typedefs.cc: Likewise.
+
+2005-03-05 Joseph S. Myers <joseph@codesourcery.com>
+
+ * testsuite/22_locale/collate/compare/wchar_t/2.cc,
+ testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
+ testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
+ testsuite/22_locale/collate/hash/wchar_t/2.cc,
+ testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
+ testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
+ testsuite/22_locale/collate/transform/wchar_t/2.cc,
+ testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
+ testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
+ XFAIL on *-*-hpux11.23.
+
+2005-03-04 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits: Implement is_polymorphic.
+ (is_empty): Minor tweaks.
+ * testsuite/testsuite_tr1.h: Add test types.
+ * testsuite/tr1/4_metaprogramming/type_properties/
+ is_polymorphic/is_polymorphic.cc: New.
+ * testsuite/tr1/4_metaprogramming/type_properties/
+ is_polymorphic/typedefs.cc: Likewise.
+ * testsuite/tr1/4_metaprogramming/composite_type_traits/
+ is_union_or_class/is_union_or_class.cc: Add tests.
+
+2005-03-03 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/tr1/functional: Convert relative path.
+
+ * docs/doxygen/user.cfg.in: Add tr1 includes.
+
+2005-03-02 Jonathan Wakely <redi@gcc.gnu.org>
+ Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/
+ cons/auto_ptr_neg.cc: Correct line numbers.
+
+2005-03-02 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/tr1/memory: Replace checked_deleter with (unchecked)
+ _Sp_deleter as GCC warns about delete on incomplete types anyway.
+
+2005-03-02 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/tr1/memory: Add missing "inline" to __throw_bad_weak_ptr.
+
+2005-03-02 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/tr1/functional (_Has_result_type): Cleanup.
+ (_Result_of_impl): Handle member data pointers correctly.
+ (reference_wrapper): Support invocation.
+ Move repetition code into new file include/tr1/repeat.h.
+ * include/tr1/functional_iterate.h (reference_wrapper): Support
+ invocation. Cleanup long lines.
+ * include/tr1/ref_wrap_iterate.h (reference_wrapper): Declare
+ invocation operators.
+ * include/tr1/repeat.h: Code repetition header.
+ * include/Makefile.am: Add ref_wrap_iterate.h, repeat.h.
+ * include/Makefile.in: Add ref_wrap_iterate.h, repeat.h.
+ * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc:
+ New test of reference_wrapper invocation.
+ * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
+ New test of reference_wrapper typedefs and base classes.
+ * testsuite/tr1/3_function_objects/result_of.cc: Trivial cleanup
+ (e-mail address).
+
+2005-03-02 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/tr1/function (result_of): New class template.
+ * include/tr1/functional/iterator.h: Implementation of TR1
+ result_of.
+ * testsuite/tr1/3_function_objects/result_of.cc: New test
+
+2005-03-01 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/19065
+ * config/cpu/cris/atomicity.h (__exchange_and_add): In asm, use
+ 'Q' constraint, not 'm'.
+
+2005-02-25 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits: Add the trivial is_union and is_class;
+ add the __is_union_or_class extension.
+ (is_enum, is_empty): Use the latter.
+ * include/tr1/type_traits_fwd.h: Add __is_union_or_class.
+ * testsuite/testsuite_tr1.h: Add UnionType; trivial formatting
+ fixes.
+ * testsuite/tr1/4_metaprogramming/composite_type_traits/
+ is_union_or_class/is_union_or_class.cc: New.
+ * testsuite/tr1/4_metaprogramming/composite_type_traits/
+ is_union_or_class/typedefs.cc: Likewise.
+
+2005-02-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/tr1/6_containers/unordered/instantiate/hash.cc: Guard
+ wchar_t use with _GLIBCXX_USE_WCHAR_T.
+
+2005-02-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/std/std_complex.h: _GLIBCXX_USE_C99_COMPLEX_MATH to
+ _GLIBCXX_USE_C99_COMPLEX.
+ * acinclude.m4: Same.
+ * acconfig.h: Same.
+ * configure: Regenerate.
+ * config.h.in: Same.
+
+2005-02-24 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/functional (mem_fn): Avoid _T, badname on
+ Darwin.
+
+2005-02-23 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/tr1/functional (function): New class template.
+ (mem_fn): New function template.
+ Implementations of TR1 function and mem_fn facilities.
+ * include/tr1/functional_iterate.h: Implementations of TR1
+ function and mem_fn facilities.
+ * testsuite/tr1/3_function_objects/function/1.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/2.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/3.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/4.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/5.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/6.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/7.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/8.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/function/9.cc: New
+ test of std::tr1::function.
+ * testsuite/tr1/3_function_objects/mem_fn.cc: New test of
+ std::tr1::mem_fn.
+
+2005-02-23 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits: Implement is_convertible.
+ * testsuite/tr1/4_metaprogramming/relationships_between_types/
+ is_convertible/is_convertible.cc: New.
+ * testsuite/tr1/4_metaprogramming/relationships_between_types/
+ is_convertible/typedefs.cc: Likewise.
+ * testsuite/testsuite_tr1.h: Add class DerivedType.
+
+ * include/tr1/type_traits (is_function): Don't mistake references
+ to function types for function types.
+ * testsuite/tr1/4_metaprogramming/primary_type_categories/
+ is_function/is_function.cc: Add testcase.
+
+2005-02-22 Benjamin Kosnik <bkoz@redhat.com>
+
+ * scripts/check_performance: Tweaks.
+
+ * testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc: Name
+ output file with extension that clean rules can find.
+
+2005-02-22 Richard Henderson <rth@redhat.com>
+
+ PR libstdc++/20091
+ * libsupc++/eh_catch.cc (__cxa_begin_catch): Don't special case
+ decrement of uncaughtExceptions for rethrow.
+
+2005-02-22 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/functional: Fix License to GPL with exception.
+ * include/tr1/hashtable: Likewise.
+ * include/tr1/tuple: Likewise.
+ * include/tr1/type_traits: Likewise.
+ * include/tr1/type_traits_fwd.h: Likewise.
+ * include/tr1/unordered_map: Likewise.
+ * include/tr1/unordered_set: Likewise.
+ * include/tr1/utility: Likewise.
+
+2005-02-22 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/assign/
+ auto_ptr_neg.cc: Add missing dg-do compile directive.
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/assign/
+ auto_ptr_rvalue_neg.cc: Likewise.
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/assign/
+ shared_ptr_neg.cc: Likewise.
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/cons/
+ auto_ptr_neg.cc: Likewise.
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/modifiers/
+ reset_neg.cc: Likewise.
+ * testsuite/tr1/2_general_utilities/memory/shared_ptr/modifiers/
+ swap_neg.cc: Likewise.
+
+2005-02-22 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/Makefile.am, include/Makefile.in: Fix accidental extra
+ change from previous commit.
+
+2005-02-21 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/tr1/memory: New file.
+ * include/Makefile.am, include/Makefile.in: Add new TR1 header.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/not_shared.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/not_shared2.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/not_shared3.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/shared.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ enable_shared_from_this/still_shared.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/assign.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/auto_ptr.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/auto_ptr_neg.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/auto_ptr_rvalue_neg.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/shared_ptr.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/assign/shared_ptr_neg.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/comparison/cmp.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/auto_ptr.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/auto_ptr_neg.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/copy.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/default.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/pointer.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/weak_ptr.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/cons/weak_ptr_expired.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/dest/dest.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/misc/io.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/misc/swap.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/modifiers/reset.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/modifiers/reset_neg.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/modifiers/swap.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/modifiers/swap_neg.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/observers/bool_conv.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/observers/get.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/observers/unique.cc: New test.
+ * testsuite/tr1/2_general_utilities/memory/
+ shared_ptr/observers/use_count.cc: New test.
+
+2005-02-21 Paolo Carlini <pcarlini@suse.de>
+
+ * include/tr1/type_traits (is_member_function_pointer):
+ Remove ugly workaround for c++/19076.
+
+2005-02-21 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/basic_string.tcc (_Rep::_M_destroy): Don't
+ check for this == &_S_empty_rep, it's always false, here.
+
+2005-02-19 Matt Austern <austern@gmail.com>
+
+ * include/tr1/functional (tr1_hashtable_define_trivial_hash): Make
+ hash<T>::operator() a const member function for T a fundamental type
+ * include/tr1/hashtable (extract1st::operator()): Declare const.
+ (hash_code_base): Declare all member functions const
+ (hashtable::find): fix call to this->bucket_count()
+ (hashtable::count): Likewise.
+ (hashtable::equal_range): m_incr_bucket applies to iterator, not node.
+ * testsuite/tr1/6_containers/unordered/find/set1.cc: New test.
+ * testsuite/tr1/6_containers/unordered/find/map1.cc: New test.
+ * testsuite/tr1/6_containers/unordered/find/multimap1.cc: New test.
+ * testsuite/tr1/6_containers/unordered/find/multiset1.cc: New test.
+
+2005-02-19 Hans-Peter Nilsson <hp@axis.com>
+
+ PR libstdc++/20071
+ * include/tr1/functional (hash<std::wstring>): Wrap in #ifdef
+ _GLIBCXX_USE_WCHAR_T.
+
+2005-02-18 Richard Henderson <rth@redhat.com>
+
+ PR libstdc++/10606
+ * config/linker-map.gnu (CXXABI_1.3.1): Add __cxa_get_exception_ptr.
+ * libsupc++/eh_alloc.cc (__cxa_allocate_exception): Increment
+ uncaughtExceptions here instead of ...
+ * libsupc++/eh_throw.cc (__cxa_throw) ... here.
+ (__cxa_rethrow): Increment uncaughtExceptions here instead of ...
+ * libsupc++/eh_catch.cc (__cxa_end_catch): ... here.
+ (__cxa_get_exception_ptr): New.
+ * libsupc++/unwind-cxx.h (__cxa_get_exception_ptr): Declare.
+
+2005-02-18 Matt Austern <austern@apple.com>
+
+ * testsuite/tr1/6_containers/unordered/insert/array_syntax.cc: Fix
+ test case to use assignment instead of ==
+ * testsuite/tr1/6_containers/unordered/insert/map_range.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/multimap_range.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/multiset_range.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/set_range.cc: New test.
+
+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.
+ * testsuite/thread/pthread7-rope.cc: Likewise.
+
+2005-02-17 Matt Austern <austern@apple.com>
+
+ * include/tr1/functional (hash): New function object.
+ * include/tr1/hashtable: New file.
+ * include/tr1/unordered_set: New file.
+ * include/tr1/unordered_map: New file.
+ * include/Makefile.am: Add three new TR1 headers.
+ * include/Makefile.in: Likewise.
+ * testsuite/tr1/6_containers/unordered/insert/array_syntax.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/map_single.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/multimap_single.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/multiset_single.cc: New test.
+ * testsuite/tr1/6_containers/unordered/insert/set_single.cc: New test.
+ * testsuite/tr1/6_containers/unordered/instantiate/hash.cc: New test.
+ * testsuite/tr1/6_containers/unordered/instantiate/map.cc: New test.
+ * testsuite/tr1/6_containers/unordered/instantiate/multimap.cc: New test.
+ * testsuite/tr1/6_containers/unordered/instantiate/multiset.cc: New test.
+ * testsuite/tr1/6_containers/unordered/instantiate/set.cc: New test.
+
+2005-02-16 Paolo Carlini <pcarlini@suse.de>
+
+ * testsuite/23_containers/set/modifiers/16728.cc:
+ Remove redundant include <testsuite_performance.h>.
+
+2005-02-16 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/19829
+ * testsuite/21_strings/basic_string/find/char/3.cc: Fix the test
+ at line #66 to not access str_lit01 beyond its end.
+ * testsuite/21_strings/basic_string/find/wchar_t/3.cc: Likewise.
+
2005-02-15 Paolo Carlini <pcarlini@suse.de>
Jon Grimm <jgrimm2@us.ibm.com>
diff --git a/libstdc++-v3/acconfig.h b/libstdc++-v3/acconfig.h
index f1b821630ba..51d588430a3 100644
--- a/libstdc++-v3/acconfig.h
+++ b/libstdc++-v3/acconfig.h
@@ -20,7 +20,7 @@
#undef _GLIBCXX_USE_C99_MATH
// Define if C99 complex math functions should be used in std::complex.
-#undef _GLIBCXX_USE_C99_COMPLEX_MATH
+#undef _GLIBCXX_USE_C99_COMPLEX
// Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index f18b7d90b53..0664f5033e4 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -983,7 +983,7 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [
AC_MSG_RESULT($ac_c99_complex)
if test x"$ac_c99_complex" = x"yes"; then
- AC_DEFINE(_GLIBCXX_USE_C99_COMPLEX_MATH)
+ AC_DEFINE(_GLIBCXX_USE_C99_COMPLEX)
fi
# Check for the existence in <stdio.h> of vscanf, et. al.
@@ -1325,7 +1325,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ALLOCATOR], [
if test $enable_libstdcxx_allocator_flag = auto; then
case ${target_os} in
linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
- enable_libstdcxx_allocator_flag=mt
+ enable_libstdcxx_allocator_flag=new
;;
*)
enable_libstdcxx_allocator_flag=new
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index fdcc07cb2a2..76d32d1630f 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -21,7 +21,7 @@
#undef _GLIBCXX_USE_C99_MATH
// Define if C99 complex math functions should be used in std::complex.
-#undef _GLIBCXX_USE_C99_COMPLEX_MATH
+#undef _GLIBCXX_USE_C99_COMPLEX
// Define if code specialized for wchar_t should be used.
#undef _GLIBCXX_USE_WCHAR_T
diff --git a/libstdc++-v3/config/cpu/cris/atomicity.h b/libstdc++-v3/config/cpu/cris/atomicity.h
index 3162f6ada3b..38ae0de330c 100644
--- a/libstdc++-v3/config/cpu/cris/atomicity.h
+++ b/libstdc++-v3/config/cpu/cris/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: CRIS version -*- C++ -*-
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004, 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
@@ -47,8 +47,8 @@ namespace __gnu_cxx
" move.d %2,[%3] \n"
" bwf 0b \n"
" clearf \n"
- : "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
- : "r" (__mem), "g" (__val), "m" (*__mem)
+ : "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
+ : "r" (__mem), "g" (__val), "Q" (*__mem)
/* The memory clobber must stay, regardless of
current uses of this function. */
: "memory");
@@ -60,8 +60,8 @@ namespace __gnu_cxx
" add.d %0,%2 \n"
" move.d %2,[%3] \n"
" move $r9,$ccr \n"
- : "=&r" (__result), "=m" (*__mem), "=&r" (__tmp)
- : "r" (__mem), "g" (__val), "m" (*__mem)
+ : "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
+ : "r" (__mem), "g" (__val), "Q" (*__mem)
: "r9",
/* The memory clobber must stay, regardless of
current uses of this function. */
diff --git a/libstdc++-v3/config/cpu/s390/atomicity.h b/libstdc++-v3/config/cpu/s390/atomicity.h
index b979e3abd33..cf903b321f4 100644
--- a/libstdc++-v3/config/cpu/s390/atomicity.h
+++ b/libstdc++-v3/config/cpu/s390/atomicity.h
@@ -43,7 +43,8 @@ namespace __gnu_cxx
" cs %0,%1,0(%3)\n"
" jl 0b"
: "=&d" (__old_val), "=&d" (__new_val), "=m" (*__mem)
- : "a" (__mem), "d" (__val), "m" (*__mem) : "cc");
+ : "a" (__mem), "d" (__val), "m" (*__mem)
+ : "cc", "memory");
return __old_val;
}
diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu
index df3c674f96f..a6f631a8d97 100644
--- a/libstdc++-v3/config/linker-map.gnu
+++ b/libstdc++-v3/config/linker-map.gnu
@@ -299,8 +299,6 @@ GLIBCXX_3.4.4 {
_ZN9__gnu_cxx6__poolILb[01]EE16_M_reclaim_blockEPc[jm];
_ZN9__gnu_cxx6__poolILb[01]EE10_M_destroyEv;
- _ZN9__gnu_cxx9free_list12_S_free_listE;
- _ZN9__gnu_cxx9free_list12_S_bfl_mutexE;
_ZN9__gnu_cxx9free_list6_M_getE*;
_ZN9__gnu_cxx9free_list8_M_clearEv;
@@ -410,3 +408,9 @@ CXXABI_1.3 {
local:
*;
};
+
+CXXABI_1.3.1 {
+
+ __cxa_get_exception_ptr;
+
+} CXXABI_1.3;
diff --git a/libstdc++-v3/config/os/bsd/darwin/os_defines.h b/libstdc++-v3/config/os/bsd/darwin/os_defines.h
index 07fb55b6125..bbe2000c8e5 100644
--- a/libstdc++-v3/config/os/bsd/darwin/os_defines.h
+++ b/libstdc++-v3/config/os/bsd/darwin/os_defines.h
@@ -44,4 +44,142 @@
// -flat_namespace to work around the way that it doesn't.
#define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak))
+/* APPLE LOCAL begin keymgr */
+/* Copyright (C) 1989, 92-97, 1998, 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. */
+
+
+/*
+ * This file added by Apple Computer Inc. for its OS X
+ * environment.
+ */
+
+#ifndef __KEYMGR_H
+#define __KEYMGR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/*
+ * keymgr - Create and maintain process-wide global data known to
+ * all threads across all dynamic libraries.
+ *
+ */
+
+typedef enum node_kinds {
+ NODE_THREAD_SPECIFIC_DATA=1,
+ NODE_PROCESSWIDE_PTR=2,
+ NODE_LAST_KIND
+ } TnodeKind ;
+
+/*
+ * These enum members are bits or combination of bits.
+ */
+
+typedef enum node_mode {
+ NM_ALLOW_RECURSION=1,
+ NM_RECURSION_ILLEGAL=2,
+ NM_ENHANCED_LOCKING=3,
+ NM_LOCKED=4
+ } TnodeMode ;
+
+/* WARNING: the return value of _keymgr_set_per_thread_data is
+ not meaningful on Tiger and above. Use the macro
+ KEYMGR_SET_PER_THREAD_DATA (below) to handle this properly. */
+extern void * _keymgr_get_per_thread_data(unsigned int key) ;
+extern int _keymgr_set_per_thread_data(unsigned int key, void *keydata) ;
+extern void *_keymgr_get_and_lock_processwide_ptr(unsigned int key) ;
+extern void _keymgr_set_and_unlock_processwide_ptr(unsigned int key, void *ptr) ;
+extern void _keymgr_unlock_processwide_ptr(unsigned int key) ;
+extern void _keymgr_set_lockmode_processwide_ptr(unsigned int key, unsigned int mode) ;
+extern unsigned int _keymgr_get_lockmode_processwide_ptr(unsigned int key) ;
+extern int _keymgr_get_lock_count_processwide_ptr(unsigned int key) ;
+
+extern void *__keymgr_global[];
+typedef struct _Sinfo_Node {
+ unsigned int size ; /*size of this node*/
+ unsigned short major_version ; /*API major version.*/
+ unsigned short minor_version ; /*API minor version.*/
+ } _Tinfo_Node ;
+
+#define KEYMGR_VERSION \
+ (__keymgr_global[2] ? ((_Tinfo_Node *)__keymgr_global[2])->major_version : 0)
+
+#define KEYMGR_SET_PER_THREAD_DATA(key, keydata) \
+ (KEYMGR_VERSION >= 4 \
+ ? _keymgr_set_per_thread_data((key), (keydata)) \
+ : (_keymgr_set_per_thread_data((key), (keydata)), 0))
+
+#ifndef NULL
+#ifdef __GNUG__
+#define NULL __null
+#else
+#define NULL 0
+#endif
+#endif
+
+/*
+ * Keys currently in use:
+ */
+
+#define KEYMGR_EH_CONTEXT_KEY 1 /*stores handle for root pointer of exception context node.*/
+
+#define KEYMGR_NEW_HANLDER_KEY 2 /*store handle for new handler pointer.*/
+
+#define KEYMGR_UNEXPECTED_HANDLER_KEY 3 /*store handle for unexpected exception pointer.*/
+
+#define KEYMGR_TERMINATE_HANDLER_KEY 4 /*store handle for terminate handler pointer. */
+
+#define KEYMGR_MODE_BITS 5 /*stores handle for runtime mode bits.*/
+
+#define KEYMGR_IO_LIST 6 /*Root pointer to the list of open streams.*/
+
+#define KEYMGR_IO_STDIN 7 /*GNU stdin.*/
+
+#define KEYMGR_IO_STDOUT 8 /*GNU stdout.*/
+
+#define KEYMGR_IO_STDERR 9 /*GNU stderr.*/
+
+#define KEYMGR_IO_REFCNT 10 /*How many plugins/main program currently using streams.*/
+
+#define KEYMGR_IO_MODE_BITS 11 /*Flags controlling the behavior of C++ I/O.*/
+
+#define KEYMGR_ZOE_IMAGE_LIST 12 /*Head pointer for list of per image dwarf2 unwind sections.*/
+
+#define KEYMGR_EH_GLOBALS_KEY 13 /* Variable used in eh_globals.cc */
+
+/*
+ * Other important data.
+ */
+
+#define KEYMGR_API_REV_MAJOR 2 /*Major revision number of the keymgr API.*/
+#define KEYMGR_API_REV_MINOR 1 /*Minor revision number of the keymgr API.*/
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __KEYMGR_H */
+/* APPLE LOCAL end keymgr */
#endif
diff --git a/libstdc++-v3/config/os/mingw32/os_defines.h b/libstdc++-v3/config/os/mingw32/os_defines.h
index 38fd3c711ac..20088868a39 100644
--- a/libstdc++-v3/config/os/mingw32/os_defines.h
+++ b/libstdc++-v3/config/os/mingw32/os_defines.h
@@ -1,6 +1,6 @@
// Specific definitions for generic platforms -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 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
@@ -45,4 +45,7 @@
#undef NOMINMAX
#define NOMINMAX 1
+// See libstdc++/20806.
+#define _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM 1
+
#endif
diff --git a/libstdc++-v3/config/os/newlib/os_defines.h b/libstdc++-v3/config/os/newlib/os_defines.h
index ff334610f22..0b0a6297955 100644
--- a/libstdc++-v3/config/os/newlib/os_defines.h
+++ b/libstdc++-v3/config/os/newlib/os_defines.h
@@ -1,6 +1,6 @@
// Specific definitions for newlib -*- C++ -*-
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// Copyright (C) 2000, 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
@@ -35,6 +35,9 @@
#ifdef __CYGWIN__
#define _GLIBCXX_GTHREAD_USE_WEAK 0
+
+// See libstdc++/20806.
+#define _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM 1
#endif
#endif
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 2d5016a374a..1d631a33bac 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -1544,7 +1544,16 @@ if test "$build" != "$host"; then
GLIBCXX_IS_NATIVE=false
else
- GLIBCXX_IS_NATIVE=true
+ # APPLE LOCAL begin 64-bit
+ case "$target" in
+ powerpc-apple-darwin8*)
+ GLIBCXX_IS_NATIVE=false
+ cross_compiling=yes
+ ;;
+ *)
+ GLIBCXX_IS_NATIVE=true ;;
+ esac
+ # APPLE LOCAL end 64-bit
fi
# Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the
@@ -4390,7 +4399,7 @@ 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 4393 "configure"' > conftest.$ac_ext
+ echo '#line 4402 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5011,7 +5020,7 @@ fi;
#
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
cat > conftest.$ac_ext << EOF
-#line 5014 "configure"
+#line 5023 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -6285,7 +6294,7 @@ fi;
if test $enable_libstdcxx_allocator_flag = auto; then
case ${target_os} in
linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
- enable_libstdcxx_allocator_flag=mt
+ enable_libstdcxx_allocator_flag=new
;;
*)
enable_libstdcxx_allocator_flag=new
@@ -8633,7 +8642,7 @@ echo "${ECHO_T}$ac_c99_complex" >&6
if test x"$ac_c99_complex" = x"yes"; then
cat >>confdefs.h <<\_ACEOF
-#define _GLIBCXX_USE_C99_COMPLEX_MATH 1
+#define _GLIBCXX_USE_C99_COMPLEX 1
_ACEOF
fi
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 5d0a54f9c4c..e0e55ad70b2 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -44,7 +44,16 @@ if test "$build" != "$host"; then
GLIBCXX_IS_NATIVE=false
GCC_NO_EXECUTABLES
else
- GLIBCXX_IS_NATIVE=true
+ # APPLE LOCAL begin 64-bit
+ case "$target" in
+ powerpc-apple-darwin8*)
+ GLIBCXX_IS_NATIVE=false
+ cross_compiling=yes
+ ;;
+ *)
+ GLIBCXX_IS_NATIVE=true ;;
+ esac
+ # APPLE LOCAL end 64-bit
fi
# Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index b3582a41d79..c1c063ee1f9 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -180,12 +180,16 @@ case "${host_os}" in
# treatment of coalesced symbols.
OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module -Wl,-flat_namespace"
os_include_dir="os/bsd/darwin"
+ # APPLE LOCAL darwin native radar 3729768
+ enable_cxx_flags="-DAPPLE_KEYMGR $enable_cxx_flags"
;;
darwin[89] | darwin[89].* | darwin[1-9][0-9]* )
# On Darwin, performance is improved if libstdc++ is single-module,
# and on 8+ compatibility is better if not -flat_namespace.
OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module"
os_include_dir="os/bsd/darwin"
+ # APPLE LOCAL darwin native radar 3729768
+ enable_cxx_flags="-DAPPLE_KEYMGR $enable_cxx_flags"
;;
*djgpp*) # leading * picks up "msdosdjgpp"
os_include_dir="os/djgpp"
diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in
index 4e149d7b8be..dc4595b21ae 100644
--- a/libstdc++-v3/docs/doxygen/user.cfg.in
+++ b/libstdc++-v3/docs/doxygen/user.cfg.in
@@ -73,6 +73,7 @@ INPUT = @srcdir@/docs/doxygen/doxygroups.cc \
include/@host_alias@/bits \
include/bits \
include/ext \
+ include/tr1 \
@srcdir@/libsupc++/exception \
@srcdir@/libsupc++/new \
@srcdir@/libsupc++/typeinfo \
@@ -113,7 +114,14 @@ INPUT = @srcdir@/docs/doxygen/doxygroups.cc \
include/ext/rope \
include/ext/slist \
include/tr1/array \
- include/tr1/tuple
+ include/tr1/functional \
+ include/tr1/hashtable \
+ include/tr1/memory \
+ include/tr1/tuple \
+ include/tr1/type_traits \
+ include/tr1/unordered_map \
+ include/tr1/unordered_set \
+ include/tr1/utility
FILE_PATTERNS = *.h \
*.tcc
RECURSIVE = NO
diff --git a/libstdc++-v3/docs/html/ext/howto.html b/libstdc++-v3/docs/html/ext/howto.html
index fff775e165a..72317f83c5d 100644
--- a/libstdc++-v3/docs/html/ext/howto.html
+++ b/libstdc++-v3/docs/html/ext/howto.html
@@ -503,6 +503,12 @@
<dd>Replace &quot;new&quot; with &quot;::new&quot;.
</dd>
+ <dt><a href="lwg-active.html#409">409</a>:
+ <em>Closing an fstream should clear the error state</em>
+ </dt>
+ <dd>Have <code>open</code> clear the error flags.
+ </dd>
+
<dt><a href="lwg-active.html#434">434</a>:
<em>bitset::to_string() hard to use</em>
</dt>
diff --git a/libstdc++-v3/docs/html/faq/index.html b/libstdc++-v3/docs/html/faq/index.html
index abd6ff3d13f..a0315981b1c 100644
--- a/libstdc++-v3/docs/html/faq/index.html
+++ b/libstdc++-v3/docs/html/faq/index.html
@@ -721,6 +721,9 @@ which is no longer available, thanks deja...-->
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.
+ <strong>Update:</strong> for GCC 4.0 we implemented the resolution
+ of <a href="../ext/howto.html#5">DR #409</a> and open() now calls
+ <code>clear()</code> on success!
</p>
<p><a name="4_4_rel_ops"><strong>rel_ops</strong></a>
Another is the <code>rel_ops</code> namespace and the template
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 3fa1dd65e77..2b811888c40 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -228,11 +228,24 @@ tr1_srcdir = ${glibcxx_srcdir}/include/tr1
tr1_builddir = ./tr1
tr1_headers = \
${tr1_srcdir}/array \
+ ${tr1_srcdir}/bind_repeat.h \
+ ${tr1_srcdir}/bind_iterate.h \
+ ${tr1_srcdir}/boost_shared_ptr.h \
+ ${tr1_srcdir}/mu_iterate.h \
${tr1_srcdir}/functional \
+ ${tr1_srcdir}/functional_iterate.h \
+ ${tr1_srcdir}/memory \
+ ${tr1_srcdir}/ref_fwd.h \
+ ${tr1_srcdir}/ref_wrap_iterate.h \
+ ${tr1_srcdir}/repeat.h \
${tr1_srcdir}/tuple \
+ ${tr1_srcdir}/tuple_iterate.h \
${tr1_srcdir}/utility \
${tr1_srcdir}/type_traits \
- ${tr1_srcdir}/type_traits_fwd.h
+ ${tr1_srcdir}/type_traits_fwd.h \
+ ${tr1_srcdir}/hashtable \
+ ${tr1_srcdir}/unordered_set \
+ ${tr1_srcdir}/unordered_map
# This is the common subset of files that all three "C" header models use.
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index d56d35aab7f..82d9065de90 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -444,11 +444,24 @@ tr1_srcdir = ${glibcxx_srcdir}/include/tr1
tr1_builddir = ./tr1
tr1_headers = \
${tr1_srcdir}/array \
+ ${tr1_srcdir}/bind_repeat.h \
+ ${tr1_srcdir}/bind_iterate.h \
+ ${tr1_srcdir}/boost_shared_ptr.h \
+ ${tr1_srcdir}/mu_iterate.h \
${tr1_srcdir}/functional \
+ ${tr1_srcdir}/functional_iterate.h \
+ ${tr1_srcdir}/memory \
+ ${tr1_srcdir}/ref_fwd.h \
+ ${tr1_srcdir}/ref_wrap_iterate.h \
+ ${tr1_srcdir}/repeat.h \
${tr1_srcdir}/tuple \
+ ${tr1_srcdir}/tuple_iterate.h \
${tr1_srcdir}/utility \
${tr1_srcdir}/type_traits \
- ${tr1_srcdir}/type_traits_fwd.h
+ ${tr1_srcdir}/type_traits_fwd.h \
+ ${tr1_srcdir}/hashtable \
+ ${tr1_srcdir}/unordered_set \
+ ${tr1_srcdir}/unordered_map
# This is the common subset of files that all three "C" header models use.
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 3bdce0f090a..41db0dff438 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, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -425,10 +425,6 @@ namespace std
basic_string<_CharT, _Traits, _Alloc>::_Rep::
_M_destroy(const _Alloc& __a) throw ()
{
-#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
- if (this == &_S_empty_rep())
- return;
-#endif
const size_type __size = sizeof(_Rep_base) +
(this->_M_capacity + 1) * sizeof(_CharT);
_Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index 5287f874f0b..df862727d2f 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -35,7 +35,7 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20050215
+#define __GLIBCXX__ 20050421
// Allow use of "export template." This is currently not a feature
// that g++ supports.
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index a9d157403fe..6915ea9b23c 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -171,7 +171,15 @@ namespace std
// For a stateful encoding (-1) the pending sequence might be just
// shift and unshift prefixes with no actual character.
__ret = this->egptr() - this->gptr();
+
+#if _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM
+ // About this workaround, see libstdc++/20806.
+ const bool __testbinary = _M_mode & ios_base::binary;
+ if (__check_facet(_M_codecvt).encoding() >= 0
+ && __testbinary)
+#else
if (__check_facet(_M_codecvt).encoding() >= 0)
+#endif
__ret += _M_file.showmanyc() / _M_codecvt->max_length();
}
return __ret;
@@ -521,10 +529,17 @@ namespace std
// future: when __n > __buflen we read directly instead of using the
// buffer repeatedly.
const bool __testin = _M_mode & ios_base::in;
- const streamsize __buflen = _M_buf_size > 1 ? _M_buf_size - 1
- : 1;
+ const streamsize __buflen = _M_buf_size > 1 ? _M_buf_size - 1 : 1;
+
+#if _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM
+ // About this workaround, see libstdc++/20806.
+ const bool __testbinary = _M_mode & ios_base::binary;
+ if (__n > __buflen && __check_facet(_M_codecvt).always_noconv()
+ && __testin && __testbinary && !_M_writing)
+#else
if (__n > __buflen && __check_facet(_M_codecvt).always_noconv()
&& __testin && !_M_writing)
+#endif
{
// First, copy the chars already present in the buffer.
const streamsize __avail = this->egptr() - this->gptr();
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index ae3a102ff44..0301781a2c3 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -1153,7 +1153,11 @@ namespace std
__ws[__p - __ws] = __dec;
// Add grouping, if necessary.
- if (__lc->_M_use_grouping)
+ // N.B. Make sure to not group things like 2e20, i.e., no decimal
+ // point, scientific notation.
+ if (__lc->_M_use_grouping
+ && (__p || __len < 3 || (__cs[1] != 'e' && __cs[2] != 'e'
+ && __cs[1] != 'E' && __cs[2] != 'E')))
{
// Grouping can add (almost) as many separators as the
// number of digits, but no more.
diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h
index a67d2a9a320..426fcba0298 100644
--- a/libstdc++-v3/include/bits/stl_algobase.h
+++ b/libstdc++-v3/include/bits/stl_algobase.h
@@ -155,7 +155,14 @@ namespace std
_ValueType2>)
__glibcxx_function_requires(_ConvertibleConcept<_ValueType2,
_ValueType1>)
- std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value>::
+
+ typedef typename iterator_traits<_ForwardIterator1>::reference
+ _ReferenceType1;
+ typedef typename iterator_traits<_ForwardIterator2>::reference
+ _ReferenceType2;
+ std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
+ __are_same<_ValueType1 &, _ReferenceType1>::__value &&
+ __are_same<_ValueType2 &, _ReferenceType2>::__value>::
iter_swap(__a, __b);
}
diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h
index 9f02065046f..f607709e8f9 100644
--- a/libstdc++-v3/include/ext/bitmap_allocator.h
+++ b/libstdc++-v3/include/ext/bitmap_allocator.h
@@ -1,6 +1,6 @@
// Bitmap Allocator. -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 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
@@ -717,10 +717,21 @@ namespace __gnu_cxx
{ return *__pui < __cui; }
};
-#if defined __GTHREADS
- static _Mutex _S_bfl_mutex;
+#if defined __GTHREADS
+ _Mutex*
+ _M_get_mutex()
+ {
+ static _Mutex _S_mutex;
+ return &_S_mutex;
+ }
#endif
- static vector_type _S_free_list;
+
+ vector_type&
+ _M_get_free_list()
+ {
+ static vector_type _S_free_list;
+ return _S_free_list;
+ }
/** @brief Performs validation of memory based on their size.
*
@@ -735,12 +746,13 @@ namespace __gnu_cxx
void
_M_validate(size_t* __addr) throw()
{
+ vector_type& __free_list = _M_get_free_list();
const vector_type::size_type __max_size = 64;
- if (_S_free_list.size() >= __max_size)
+ if (__free_list.size() >= __max_size)
{
// Ok, the threshold value has been reached. We determine
// which block to remove from the list of free blocks.
- if (*__addr >= *_S_free_list.back())
+ if (*__addr >= *__free_list.back())
{
// Ok, the new block is greater than or equal to the
// last block in the list of free blocks. We just free
@@ -752,18 +764,18 @@ namespace __gnu_cxx
{
// Deallocate the last block in the list of free lists,
// and insert the new one in it's correct position.
- ::operator delete(static_cast<void*>(_S_free_list.back()));
- _S_free_list.pop_back();
+ ::operator delete(static_cast<void*>(__free_list.back()));
+ __free_list.pop_back();
}
}
// Just add the block to the list of free lists unconditionally.
iterator __temp = __gnu_cxx::balloc::__lower_bound
- (_S_free_list.begin(), _S_free_list.end(),
+ (__free_list.begin(), __free_list.end(),
*__addr, _LT_pointer_compare());
// We may insert the new free list before _temp;
- _S_free_list.insert(__temp, __addr);
+ __free_list.insert(__temp, __addr);
}
/** @brief Decides whether the wastage of memory is acceptable for
@@ -801,7 +813,7 @@ namespace __gnu_cxx
_M_insert(size_t* __addr) throw()
{
#if defined __GTHREADS
- _Auto_Lock __bfl_lock(&_S_bfl_mutex);
+ _Auto_Lock __bfl_lock(_M_get_mutex());
#endif
// Call _M_validate to decide what should be done with
// this particular free list.
diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h
index 1a5c6a0a259..6c1e0033730 100644
--- a/libstdc++-v3/include/std/std_complex.h
+++ b/libstdc++-v3/include/std/std_complex.h
@@ -561,7 +561,7 @@ namespace std
return __s * sqrt(__x * __x + __y * __y);
}
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline float
__complex_abs(__complex__ float __z) { return __builtin_cabsf(__z); }
@@ -588,7 +588,7 @@ namespace std
__complex_arg(const complex<_Tp>& __z)
{ return atan2(__z.imag(), __z.real()); }
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline float
__complex_arg(__complex__ float __z) { return __builtin_cargf(__z); }
@@ -666,7 +666,7 @@ namespace std
return complex<_Tp>(cos(__x) * cosh(__y), -sin(__x) * sinh(__y));
}
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_cos(__complex__ float __z) { return __builtin_ccosf(__z); }
@@ -696,7 +696,7 @@ namespace std
return complex<_Tp>(cosh(__x) * cos(__y), sinh(__x) * sin(__y));
}
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_cosh(__complex__ float __z) { return __builtin_ccoshf(__z); }
@@ -722,7 +722,7 @@ namespace std
__complex_exp(const complex<_Tp>& __z)
{ return std::polar(exp(__z.real()), __z.imag()); }
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_exp(__complex__ float __z) { return __builtin_cexpf(__z); }
@@ -782,7 +782,7 @@ namespace std
return complex<_Tp>(sin(__x) * cosh(__y), cos(__x) * sinh(__y));
}
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_sin(__complex__ float __z) { return __builtin_csinf(__z); }
@@ -812,7 +812,7 @@ namespace std
return complex<_Tp>(sinh(__x) * cos(__y), cosh(__x) * sin(__y));
}
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_sinh(__complex__ float __z) { return __builtin_csinhf(__z); }
@@ -856,7 +856,7 @@ namespace std
}
}
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_sqrt(__complex__ float __z) { return __builtin_csqrtf(__z); }
@@ -883,7 +883,7 @@ namespace std
__complex_tan(const complex<_Tp>& __z)
{ return std::sin(__z) / std::cos(__z); }
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_tan(__complex__ float __z) { return __builtin_ctanf(__z); }
@@ -911,7 +911,7 @@ namespace std
__complex_tanh(const complex<_Tp>& __z)
{ return std::sinh(__z) / std::cosh(__z); }
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_tanh(__complex__ float __z) { return __builtin_ctanhf(__z); }
@@ -944,6 +944,10 @@ namespace std
complex<_Tp>
pow(const complex<_Tp>& __x, const _Tp& __y)
{
+#ifndef _GLIBCXX_USE_C99_COMPLEX
+ if (__x == _Tp())
+ return _Tp();
+#endif
if (__x.imag() == _Tp() && __x.real() > _Tp())
return pow(__x.real(), __y);
@@ -956,7 +960,7 @@ namespace std
__complex_pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
{ return __x == _Tp() ? _Tp() : std::exp(__y * std::log(__x)); }
-#if _GLIBCXX_USE_C99_COMPLEX_MATH
+#if _GLIBCXX_USE_C99_COMPLEX
inline __complex__ float
__complex_pow(__complex__ float __x, __complex__ float __y)
{ return __builtin_cpowf(__x, __y); }
@@ -966,14 +970,20 @@ namespace std
{ return __builtin_cpow(__x, __y); }
inline __complex__ long double
- __complex_pow(__complex__ long double& __x, __complex__ long double& __y)
+ __complex_pow(const __complex__ long double& __x,
+ const __complex__ long double& __y)
{ return __builtin_cpowl(__x, __y); }
-#endif
template<typename _Tp>
inline complex<_Tp>
pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
+ { return __complex_pow(__x.__rep(), __y.__rep()); }
+#else
+ template<typename _Tp>
+ inline complex<_Tp>
+ pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
{ return __complex_pow(__x, __y); }
+#endif
template<typename _Tp>
inline complex<_Tp>
diff --git a/libstdc++-v3/include/std/std_fstream.h b/libstdc++-v3/include/std/std_fstream.h
index ed119d4c8ea..c7a934be9f0 100644
--- a/libstdc++-v3/include/std/std_fstream.h
+++ b/libstdc++-v3/include/std/std_fstream.h
@@ -414,7 +414,8 @@ namespace std
typedef basic_istream<char_type, traits_type> __istream_type;
private:
- __filebuf_type _M_filebuf;
+ /* APPLE LOCAL work with -malign-natural. */
+ __filebuf_type _M_filebuf __attribute((aligned(8)));
public:
// Constructors/Destructors:
@@ -496,6 +497,10 @@ namespace std
{
if (!_M_filebuf.open(__s, __mode | ios_base::in))
this->setstate(ios_base::failbit);
+ else
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 409. Closing an fstream should clear error state
+ this->clear();
}
/**
@@ -538,7 +543,8 @@ namespace std
typedef basic_ostream<char_type, traits_type> __ostream_type;
private:
- __filebuf_type _M_filebuf;
+ /* APPLE LOCAL work with -malign-natural. */
+ __filebuf_type _M_filebuf __attribute__((aligned(8)));
public:
// Constructors:
@@ -623,6 +629,10 @@ namespace std
{
if (!_M_filebuf.open(__s, __mode | ios_base::out))
this->setstate(ios_base::failbit);
+ else
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 409. Closing an fstream should clear error state
+ this->clear();
}
/**
@@ -749,6 +759,10 @@ namespace std
{
if (!_M_filebuf.open(__s, __mode))
this->setstate(ios_base::failbit);
+ else
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 409. Closing an fstream should clear error state
+ this->clear();
}
/**
diff --git a/libstdc++-v3/include/tr1/bind_iterate.h b/libstdc++-v3/include/tr1/bind_iterate.h
new file mode 100644
index 00000000000..ed5aeb626e2
--- /dev/null
+++ b/libstdc++-v3/include/tr1/bind_iterate.h
@@ -0,0 +1,78 @@
+// TR1 functional -*- C++ -*-
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Written by Douglas Gregor <doug.gregor -at- gmail.com>
+//
+// 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.
+
+/** @file bind_iterate.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#if _GLIBCXX_BIND_NUM_ARGS > 0
+template<_GLIBCXX_BIND_TEMPLATE_PARAMS>
+#endif
+#ifdef _GLIBCXX_BIND_HAS_RESULT_TYPE
+result_type
+#else
+typename result_of<_Functor(_GLIBCXX_BIND_V_TEMPLATE_ARGS())>::type
+#endif
+operator()(_GLIBCXX_BIND_PARAMS)
+{ return _M_f(_GLIBCXX_BIND_V_ARGS); }
+
+#if _GLIBCXX_BIND_NUM_ARGS > 0
+template<_GLIBCXX_BIND_TEMPLATE_PARAMS>
+#endif
+#ifdef _GLIBCXX_BIND_HAS_RESULT_TYPE
+result_type
+#else
+typename result_of<const _Functor(_GLIBCXX_BIND_V_TEMPLATE_ARGS(const))>::type
+#endif
+operator()(_GLIBCXX_BIND_PARAMS) const
+{ return _M_f(_GLIBCXX_BIND_V_ARGS); }
+
+#if _GLIBCXX_BIND_NUM_ARGS > 0
+template<_GLIBCXX_BIND_TEMPLATE_PARAMS>
+#endif
+#ifdef _GLIBCXX_BIND_HAS_RESULT_TYPE
+result_type
+#else
+typename result_of<volatile _Functor(_GLIBCXX_BIND_V_TEMPLATE_ARGS(volatile))>::type
+#endif
+operator()(_GLIBCXX_BIND_PARAMS) volatile
+{ return _M_f(_GLIBCXX_BIND_V_ARGS); }
+
+#if _GLIBCXX_BIND_NUM_ARGS > 0
+template<_GLIBCXX_BIND_TEMPLATE_PARAMS>
+#endif
+#ifdef _GLIBCXX_BIND_HAS_RESULT_TYPE
+result_type
+#else
+typename result_of<const volatile _Functor(_GLIBCXX_BIND_V_TEMPLATE_ARGS(const volatile))>::type
+#endif
+operator()(_GLIBCXX_BIND_PARAMS) const volatile
+{ return _M_f(_GLIBCXX_BIND_V_ARGS); }
diff --git a/libstdc++-v3/include/tr1/bind_repeat.h b/libstdc++-v3/include/tr1/bind_repeat.h
new file mode 100644
index 00000000000..2422a5b186f
--- /dev/null
+++ b/libstdc++-v3/include/tr1/bind_repeat.h
@@ -0,0 +1,192 @@
+// TR1 code repetition for bind -*- C++ -*-
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Written by Douglas Gregor <doug.gregor -at- gmail.com>
+//
+// 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.
+
+/** @file bind_repeat.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _GLIBCXX_BIND_REPEAT_HEADER
+# error Internal error: _GLIBCXX_BIND_REPEAT_HEADER must be set
+#endif /* _GLIBCXX_BIND_REPEAT_HEADER */
+
+#define _GLIBCXX_BIND_NUM_ARGS 0
+#define _GLIBCXX_BIND_COMMA
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS
+#define _GLIBCXX_BIND_TEMPLATE_ARGS
+#define _GLIBCXX_BIND_PARAMS
+#define _GLIBCXX_BIND_ARGS
+# include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 1
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1
+#define _GLIBCXX_BIND_PARAMS _U1& __u1
+#define _GLIBCXX_BIND_ARGS __u1
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+#define _GLIBCXX_BIND_NUM_ARGS 2
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2
+#define _GLIBCXX_BIND_ARGS __u1, __u2
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 3
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 4
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 5
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 6
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 7
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 8
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 9
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8, _U9& __u9
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8, __u9
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
+#define _GLIBCXX_BIND_NUM_ARGS 10
+#define _GLIBCXX_BIND_COMMA ,
+#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10
+#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10
+#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8, _U9& __u9, _U10& __u10
+#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8, __u9, __u10
+#include _GLIBCXX_BIND_REPEAT_HEADER
+#undef _GLIBCXX_BIND_ARGS
+#undef _GLIBCXX_BIND_PARAMS
+#undef _GLIBCXX_BIND_TEMPLATE_ARGS
+#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
+#undef _GLIBCXX_BIND_COMMA
+#undef _GLIBCXX_BIND_NUM_ARGS
+
diff --git a/libstdc++-v3/include/tr1/boost_shared_ptr.h b/libstdc++-v3/include/tr1/boost_shared_ptr.h
new file mode 100644
index 00000000000..3426a4acebe
--- /dev/null
+++ b/libstdc++-v3/include/tr1/boost_shared_ptr.h
@@ -0,0 +1,981 @@
+// <tr1/boost_shared_ptr.h> -*- C++ -*-
+
+// Copyright (C) 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
+// 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.
+
+// shared_count.hpp
+// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
+
+// shared_ptr.hpp
+// Copyright (C) 1998, 1999 Greg Colvin and Beman Dawes.
+// Copyright (C) 2001, 2002, 2003 Peter Dimov
+
+// weak_ptr.hpp
+// Copyright (C) 2001, 2002, 2003 Peter Dimov
+
+// enable_shared_from_this.hpp
+// Copyright (C) 2002 Peter Dimov
+
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// GCC Note: based on version 1.32.0 of the Boost library.
+
+/** @file boost_memory.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _BOOST_SHARED_PTR_H
+#define _BOOST_SHARED_PTR_H 1
+
+// namespace std::tr1
+namespace std
+{
+namespace tr1
+{
+
+class bad_weak_ptr : public std::exception
+{
+public:
+
+ virtual char const* what() const throw()
+ {
+ return "tr1::bad_weak_ptr";
+ }
+};
+
+// Helper for exception objects in <tr1/memory>
+// TODO this should be defined in a different file.
+inline void
+__throw_bad_weak_ptr()
+{
+#if __EXCEPTIONS
+ throw bad_weak_ptr();
+#else
+ std::abort();
+#endif
+}
+
+
+template <typename _Tp>
+ struct _Sp_deleter
+ {
+ typedef void result_type;
+ typedef _Tp* argument_type;
+
+ void
+ operator()(_Tp* p) const
+ { delete p; }
+ };
+
+
+class _Sp_counted_base
+{
+public:
+
+ _Sp_counted_base()
+ : _M_use_count(1), _M_weak_count(1)
+ { }
+
+ virtual
+ ~_Sp_counted_base() // nothrow
+ { }
+
+ // dispose() is called when _M_use_count drops to zero, to release
+ // the resources managed by *this.
+ virtual void
+ dispose() = 0; // nothrow
+
+ // destroy() is called when _M_weak_count drops to zero.
+ virtual void
+ destroy() // nothrow
+ {
+ delete this;
+ }
+
+ virtual void*
+ get_deleter(const std::type_info&) = 0;
+
+ void
+ add_ref_copy()
+ {
+ __gnu_cxx::__atomic_add(&_M_use_count, 1);
+ }
+
+ void
+ add_ref_lock()
+ {
+ __gnu_cxx::lock lock(_M_mutex);
+ if (__gnu_cxx::__exchange_and_add(&_M_use_count, 1) == 0)
+ {
+ _M_use_count = 0;
+ __throw_bad_weak_ptr();
+ }
+ }
+
+ void
+ release() // nothrow
+ {
+ if (__gnu_cxx::__exchange_and_add(&_M_use_count, -1) == 1)
+ {
+ dispose();
+ __glibcxx_mutex_lock(_M_mutex);
+ __glibcxx_mutex_unlock(_M_mutex);
+ weak_release();
+ }
+ }
+
+ void
+ weak_add_ref() // nothrow
+ {
+ __gnu_cxx::__atomic_add(&_M_weak_count, 1);
+ }
+
+ void
+ weak_release() // nothrow
+ {
+ if (__gnu_cxx::__exchange_and_add(&_M_weak_count, -1) == 1)
+ {
+ __glibcxx_mutex_lock(_M_mutex);
+ __glibcxx_mutex_unlock(_M_mutex);
+ destroy();
+ }
+ }
+
+ long
+ use_count() const // nothrow
+ {
+ return _M_use_count; // XXX is this MT safe?
+ }
+
+private:
+
+ _Sp_counted_base(_Sp_counted_base const&);
+ _Sp_counted_base& operator= (_Sp_counted_base const&);
+
+ _Atomic_word _M_use_count; // #shared
+ _Atomic_word _M_weak_count; // #weak + (#shared != 0)
+ __gnu_cxx::mutex_type _M_mutex;
+};
+
+template <typename _Ptr, typename _Deleter>
+class _Sp_counted_base_impl : public _Sp_counted_base
+{
+public:
+
+ /**
+ * @brief
+ * @pre d(p) must not throw.
+ */
+ _Sp_counted_base_impl(_Ptr __p, _Deleter __d)
+ : _M_ptr(__p), _M_del(__d)
+ { }
+
+ virtual void
+ dispose() // nothrow
+ {
+ _M_del(_M_ptr);
+ }
+
+ virtual void*
+ get_deleter(const std::type_info& __ti)
+ {
+ return __ti == typeid(_Deleter) ? &_M_del : 0;
+ }
+
+private:
+ _Sp_counted_base_impl(const _Sp_counted_base_impl&);
+ _Sp_counted_base_impl& operator=(const _Sp_counted_base_impl&);
+
+ _Ptr _M_ptr; // copy constructor must not throw
+ _Deleter _M_del; // copy constructor must not throw
+};
+
+class weak_count;
+
+class shared_count
+{
+private:
+
+ _Sp_counted_base* _M_pi;
+
+ friend class weak_count;
+
+public:
+
+ shared_count()
+ : _M_pi(0) // nothrow
+ { }
+
+ template <typename _Ptr, typename _Deleter>
+ shared_count(_Ptr __p, _Deleter __d)
+ : _M_pi(0)
+ {
+ try
+ {
+ _M_pi = new _Sp_counted_base_impl<_Ptr, _Deleter>(__p, __d);
+ }
+ catch(...)
+ {
+ __d(__p); // delete __p
+ __throw_exception_again;
+ }
+ }
+
+ // auto_ptr<_Tp> is special cased to provide the strong guarantee
+
+ template <typename _Tp>
+ explicit shared_count(std::auto_ptr<_Tp>& __r)
+ : _M_pi(new _Sp_counted_base_impl<_Tp*,_Sp_deleter<_Tp> >(
+ __r.get(), _Sp_deleter<_Tp>()
+ ))
+ { __r.release(); }
+
+ // throws bad_weak_ptr when __r.use_count() == 0
+ explicit shared_count(const weak_count& __r);
+
+ ~shared_count() // nothrow
+ {
+ if (_M_pi != 0)
+ _M_pi->release();
+ }
+
+ shared_count(const shared_count& __r)
+ : _M_pi(__r._M_pi) // nothrow
+ {
+ if (_M_pi != 0)
+ _M_pi->add_ref_copy();
+ }
+
+ shared_count&
+ operator=(const shared_count& __r) // nothrow
+ {
+ _Sp_counted_base* __tmp = __r._M_pi;
+
+ if(__tmp != _M_pi)
+ {
+ if(__tmp != 0)
+ __tmp->add_ref_copy();
+ if(_M_pi != 0)
+ _M_pi->release();
+ _M_pi = __tmp;
+ }
+ return *this;
+ }
+
+ void swap(shared_count& __r) // nothrow
+ {
+ _Sp_counted_base* __tmp = __r._M_pi;
+ __r._M_pi = _M_pi;
+ _M_pi = __tmp;
+ }
+
+ long
+ use_count() const // nothrow
+ { return _M_pi != 0 ? _M_pi->use_count() : 0; }
+
+ bool
+ unique() const // nothrow
+ { return this->use_count() == 1; }
+
+ friend inline bool
+ operator==(const shared_count& __a, const shared_count& __b)
+ { return __a._M_pi == __b._M_pi; }
+
+ friend inline bool
+ operator<(const shared_count& __a, const shared_count& __b)
+ { return std::less<_Sp_counted_base*>()(__a._M_pi, __b._M_pi); }
+
+ void*
+ get_deleter(const std::type_info& __ti) const
+ { return _M_pi ? _M_pi->get_deleter(__ti) : 0; }
+};
+
+
+class weak_count
+{
+private:
+
+ _Sp_counted_base * _M_pi;
+
+ friend class shared_count;
+
+public:
+
+ weak_count()
+ : _M_pi(0) // nothrow
+ { }
+
+ weak_count(const shared_count& __r)
+ : _M_pi(__r._M_pi) // nothrow
+ {
+ if (_M_pi != 0)
+ _M_pi->weak_add_ref();
+ }
+
+ weak_count(const weak_count& __r)
+ : _M_pi(__r._M_pi) // nothrow
+ {
+ if (_M_pi != 0)
+ _M_pi->weak_add_ref();
+ }
+
+ ~weak_count() // nothrow
+ {
+ if (_M_pi != 0)
+ _M_pi->weak_release();
+ }
+
+ weak_count&
+ operator=(const shared_count& __r) // nothrow
+ {
+ _Sp_counted_base* __tmp = __r._M_pi;
+ if (__tmp != 0)
+ __tmp->weak_add_ref();
+ if (_M_pi != 0)
+ _M_pi->weak_release();
+ _M_pi = __tmp;
+
+ return *this;
+ }
+
+ weak_count&
+ operator=(const weak_count& __r) // nothrow
+ {
+ _Sp_counted_base * __tmp = __r._M_pi;
+ if (__tmp != 0)
+ __tmp->weak_add_ref();
+ if (_M_pi != 0)
+ _M_pi->weak_release();
+ _M_pi = __tmp;
+
+ return *this;
+ }
+
+ void
+ swap(weak_count& __r) // nothrow
+ {
+ _Sp_counted_base * __tmp = __r._M_pi;
+ __r._M_pi = _M_pi;
+ _M_pi = __tmp;
+ }
+
+ long
+ use_count() const // nothrow
+ { return _M_pi != 0 ? _M_pi->use_count() : 0; }
+
+ friend inline bool
+ operator==(const weak_count& __a, const weak_count& __b)
+ { return __a._M_pi == __b._M_pi; }
+
+ friend inline bool
+ operator<(const weak_count& __a, const weak_count& __b)
+ { return std::less<_Sp_counted_base*>()(__a._M_pi, __b._M_pi); }
+};
+
+inline
+shared_count::shared_count(const weak_count& __r)
+: _M_pi(__r._M_pi)
+{
+ if (_M_pi != 0)
+ {
+ _M_pi->add_ref_lock();
+ }
+ else
+ {
+ __throw_bad_weak_ptr();
+ }
+}
+
+// fwd decls
+template <typename _Tp> class weak_ptr;
+template <typename _Tp> class enable_shared_from_this;
+
+struct __static_cast_tag {};
+struct __const_cast_tag {};
+struct __dynamic_cast_tag {};
+struct __polymorphic_cast_tag {};
+
+template<class _Tp> struct shared_ptr_traits
+{
+ typedef _Tp & reference;
+};
+
+template<> struct shared_ptr_traits<void>
+{
+ typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void const>
+{
+ typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void volatile>
+{
+ typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void const volatile>
+{
+ typedef void reference;
+};
+
+
+// enable_shared_from_this support
+
+// friend of enable_shared_from_this
+template <typename _Tp1, typename _Tp2>
+ void
+ __enable_shared_from_this( const shared_count& __pn,
+ const enable_shared_from_this<_Tp1>* __pe,
+ const _Tp2* __px );
+
+inline void
+__enable_shared_from_this(const shared_count&, ...)
+{ }
+
+/**
+ * @class shared_ptr <tr1/memory>
+ *
+ * A smart pointer with reference-counted copy semantics.
+ * The object pointed to is deleted when the last shared_ptr pointing to it
+ * is destroyed or reset.
+ */
+
+template <typename _Tp>
+ class shared_ptr
+ {
+ typedef typename shared_ptr_traits<_Tp>::reference _Reference;
+
+ public:
+
+ typedef _Tp element_type;
+
+ /** @brief Construct an empty %shared_ptr.
+ * @post use_count()==0 && get()==0
+ */
+ shared_ptr() : _M_ptr(0), _M_refcount() // never throws
+ { }
+
+ /** @brief Construct a %shared_ptr that owns the pointer @a p.
+ * @param p A pointer that is convertible to element_type*.
+ * @post use_count()==1 && get()==p
+ * @throw std::bad_alloc, in which case @c delete @a p is called.
+ */
+ template <typename _Tp1>
+ explicit shared_ptr(_Tp1* __p)
+ : _M_ptr(__p), _M_refcount(__p, _Sp_deleter<_Tp1>())
+ {
+ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
+ // __glibcxx_function_requires(_CompleteConcept<_Tp1*>)
+
+ __enable_shared_from_this( _M_refcount, __p, __p );
+ }
+
+ //
+ // Requirements: D's copy constructor and destructor must not throw
+ //
+ // shared_ptr will release p by calling d(p)
+ //
+ /** @brief Construct a %shared_ptr that owns the pointer @a p
+ * and the deleter @a d.
+ * @param p A pointer.
+ * @param d A deleter.
+ * @post use_count()==1 && get()==p
+ * @throw std::bad_alloc, in which case @a d(p) is called.
+ */
+ template <typename _Tp1, typename _Deleter>
+ shared_ptr(_Tp1* __p, _Deleter __d)
+ : _M_ptr(__p), _M_refcount(__p, __d)
+ {
+ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
+ // TODO requires D is CopyConstructible and d(p) well-formed
+
+ __enable_shared_from_this( _M_refcount, __p, __p );
+ }
+
+ // generated copy constructor, assignment, destructor are fine.
+
+ /** @brief If @a r is empty, constructs an empty %shared_ptr; otherwise
+ * construct a %shared_ptr that shares ownership with @a r.
+ * @param r A %shared_ptr.
+ * @post get()==r.get() && use_count()==r.use_count()
+ * @throw std::bad_alloc, in which case
+ */
+ template <typename _Tp1>
+ shared_ptr(const shared_ptr<_Tp1>& __r)
+ : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) // never throws
+ {
+ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
+ }
+
+ /** @brief Constructs a %shared_ptr that shares ownership with @a r
+ * and stores a copy of the pointer stored in @a r.
+ * @param r A weak_ptr.
+ * @post use_count()==r.use_count()
+ * @throw bad_weak_ptr when r.expired(),
+ * in which case the constructor has no effect.
+ */
+ template <typename _Tp1>
+ explicit shared_ptr(const weak_ptr<_Tp1>& __r)
+ : _M_refcount(__r._M_refcount) // may throw
+ {
+ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
+ // it is now safe to copy r__._M_ptr, as _M_refcount(__r._M_refcount)
+ // did not throw
+ _M_ptr = __r._M_ptr;
+ }
+
+ /**
+ * @post use_count()==1 and r.get()==0
+ */
+ template <typename _Tp1>
+ explicit shared_ptr(std::auto_ptr<_Tp1>& __r)
+ : _M_ptr(__r.get()), _M_refcount()
+ {
+ // TODO requires r.release() convertible to _Tp*, Tp1 is complete,
+ // delete r.release() well-formed
+ _Tp1 * __tmp = __r.get();
+ _M_refcount = shared_count(__r);
+
+ __enable_shared_from_this( _M_refcount, __tmp, __tmp );
+ }
+
+ template <typename _Tp1>
+ shared_ptr(const shared_ptr<_Tp1>& __r, __static_cast_tag)
+ : _M_ptr(static_cast<element_type*>(__r._M_ptr))
+ , _M_refcount(__r._M_refcount)
+ { }
+
+ template <typename _Tp1>
+ shared_ptr(const shared_ptr<_Tp1>& __r, __const_cast_tag)
+ : _M_ptr(const_cast<element_type*>(__r._M_ptr))
+ , _M_refcount(__r._M_refcount)
+ { }
+
+ template <typename _Tp1>
+ shared_ptr(const shared_ptr<_Tp1>& __r, __dynamic_cast_tag)
+ : _M_ptr(dynamic_cast<element_type*>(__r._M_ptr))
+ , _M_refcount(__r._M_refcount)
+ {
+ if (_M_ptr == 0) // need to allocate new counter -- the cast failed
+ {
+ _M_refcount = shared_count();
+ }
+ }
+
+ template <typename _Tp1>
+ shared_ptr&
+ operator=(const shared_ptr<_Tp1>& __r) // never throws
+ {
+ _M_ptr = __r._M_ptr;
+ _M_refcount = __r._M_refcount; // shared_count::op= doesn't throw
+ return *this;
+ }
+
+ template <typename _Tp1>
+ shared_ptr&
+ operator=(std::auto_ptr<_Tp1>& __r)
+ {
+ shared_ptr(__r).swap(*this);
+ return *this;
+ }
+
+ void
+ reset() // never throws
+ { shared_ptr().swap(*this); }
+
+ template <typename _Tp1>
+ void
+ reset(_Tp1* __p) // _Tp1 must be complete
+ {
+ _GLIBCXX_DEBUG_ASSERT(__p == 0 || __p != _M_ptr); // catch self-reset errors
+ shared_ptr(__p).swap(*this);
+ }
+
+ template <typename _Tp1, typename _Deleter>
+ void
+ reset(_Tp1 * __p, _Deleter __d)
+ { shared_ptr(__p, __d).swap(*this); }
+
+ // error to instantiate if _Tp is [cv-qual] void
+ _Reference
+ operator*() const // never throws
+ {
+ _GLIBCXX_DEBUG_ASSERT(_M_ptr != 0);
+ return *_M_ptr;
+ }
+
+ _Tp*
+ operator->() const // never throws
+ {
+ _GLIBCXX_DEBUG_ASSERT(_M_ptr != 0);
+ return _M_ptr;
+ }
+
+ _Tp*
+ get() const // never throws
+ { return _M_ptr; }
+
+ // implicit conversion to "bool"
+ private:
+ typedef _Tp* shared_ptr::*__unspecified_bool_type;
+
+ public:
+ operator __unspecified_bool_type() const // never throws
+ { return _M_ptr == 0 ? 0 : &shared_ptr::_M_ptr; }
+
+ bool
+ unique() const // never throws
+ { return _M_refcount.unique(); }
+
+ long
+ use_count() const // never throws
+ { return _M_refcount.use_count(); }
+
+ void
+ swap(shared_ptr<_Tp>& __other) // never throws
+ {
+ std::swap(_M_ptr, __other._M_ptr);
+ _M_refcount.swap(__other._M_refcount);
+ }
+
+ private:
+ template <typename _Tp1>
+ bool
+ _M_less(const shared_ptr<_Tp1>& __rhs) const
+ { return _M_refcount < __rhs._M_refcount; }
+
+ void*
+ _M_get_deleter(const std::type_info& __ti) const
+ { return _M_refcount.get_deleter(__ti); }
+
+ template <typename _Tp1> friend class shared_ptr;
+ template <typename _Tp1> friend class weak_ptr;
+
+ // friends injected into enclosing namespace and found by ADL:
+
+ // get_deleter (experimental)
+ template <typename _Del>
+ friend inline _Del*
+ get_deleter(const shared_ptr& __p)
+ { return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del))); }
+
+ template <typename _Tp1>
+ friend inline bool
+ operator==(const shared_ptr& __a, const shared_ptr<_Tp1>& __b)
+ { return __a.get() == __b.get(); }
+
+ template <typename _Tp1>
+ friend inline bool
+ operator!=(const shared_ptr& __a, const shared_ptr<_Tp1>& __b)
+ { return __a.get() != __b.get(); }
+
+ template <typename _Tp1>
+ friend inline bool
+ operator<(const shared_ptr& __a, const shared_ptr<_Tp1>& __b)
+ { return __a._M_less(__b); }
+
+ _Tp* _M_ptr; // contained pointer
+ shared_count _M_refcount; // reference counter
+ }; // shared_ptr
+
+// 2.2.3.9 shared_ptr casts
+
+/** @warning The seemingly equivalent
+ * <code>shared_ptr<T>(static_cast<T*>(r.get()))</code>
+ * will eventually result in undefined behaviour,
+ * attempting to delete the same object twice.
+ */
+template <typename _Tp, typename _Tp1>
+ shared_ptr<_Tp>
+ static_pointer_cast(const shared_ptr<_Tp1>& __r)
+ {
+ return shared_ptr<_Tp>(__r, __static_cast_tag());
+ }
+
+/** @warning The seemingly equivalent
+ * <code>shared_ptr<T>(const_cast<T*>(r.get()))</code>
+ * will eventually result in undefined behaviour,
+ * attempting to delete the same object twice.
+ */
+template <typename _Tp, typename _Tp1>
+ shared_ptr<_Tp>
+ const_pointer_cast(const shared_ptr<_Tp1>& __r)
+ {
+ return shared_ptr<_Tp>(__r, __const_cast_tag());
+ }
+
+/** @warning The seemingly equivalent
+ * <code>shared_ptr<T>(dynamic_cast<T*>(r.get()))</code>
+ * will eventually result in undefined behaviour,
+ * attempting to delete the same object twice.
+ */
+template <typename _Tp, typename _Tp1>
+ shared_ptr<_Tp>
+ dynamic_pointer_cast(const shared_ptr<_Tp1>& __r)
+ {
+ return shared_ptr<_Tp>(__r, __dynamic_cast_tag());
+ }
+
+// operator<<
+template <typename _Ch, typename _Tr, typename _Tp>
+ std::basic_ostream<_Ch,_Tr>&
+ operator<<(std::basic_ostream<_Ch,_Tr>& __os, const shared_ptr<_Tp>& __p)
+ {
+ __os << __p.get();
+ return __os;
+ }
+
+
+template <typename _Tp>
+ class weak_ptr
+ {
+ public:
+
+ typedef _Tp element_type;
+
+ weak_ptr()
+ : _M_ptr(0), _M_refcount() // never throws
+ { }
+
+ // generated copy constructor, assignment, destructor are fine
+
+ //
+ // The "obvious" converting constructor implementation:
+ //
+ // template<class Y>
+ // weak_ptr(weak_ptr<Y> const & r): _M_ptr(r._M_ptr), _M_refcount(r._M_refcount) // never throws
+ // {
+ // }
+ //
+ // has a serious problem.
+ //
+ // r._M_ptr may already have been invalidated. The _M_ptr(r._M_ptr)
+ // conversion may require access to *r._M_ptr (virtual inheritance).
+ //
+ // It is not possible to avoid spurious access violations since
+ // in multithreaded programs r._M_ptr may be invalidated at any point.
+ //
+
+ template <typename _Tp1>
+ weak_ptr(const weak_ptr<_Tp1>& r)
+ : _M_refcount(r._M_refcount) // never throws
+ {
+ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
+ _M_ptr = r.lock().get();
+ }
+
+ template <typename _Tp1>
+ weak_ptr(const shared_ptr<_Tp1>& r)
+ : _M_ptr(r._M_ptr), _M_refcount(r._M_refcount) // never throws
+ {
+ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
+ }
+
+ template <typename _Tp1>
+ weak_ptr&
+ operator=(const weak_ptr<_Tp1>& r) // never throws
+ {
+ _M_ptr = r.lock().get();
+ _M_refcount = r._M_refcount;
+ return *this;
+ }
+
+ template <typename _Tp1>
+ weak_ptr&
+ operator=(const shared_ptr<_Tp1>& r) // never throws
+ {
+ _M_ptr = r._M_ptr;
+ _M_refcount = r._M_refcount;
+ return *this;
+ }
+
+ shared_ptr<_Tp>
+ lock() const // never throws
+ {
+#ifdef __GTHREADS
+
+ // optimization: avoid throw overhead
+ if (expired())
+ {
+ return shared_ptr<element_type>();
+ }
+
+ try
+ {
+ return shared_ptr<element_type>(*this);
+ }
+ catch (const bad_weak_ptr&)
+ {
+ // Q: how can we get here?
+ // A: another thread may have invalidated r after the use_count test above.
+ return shared_ptr<element_type>();
+ }
+
+#else
+
+ // optimization: avoid try/catch overhead when single threaded
+ return expired() ? shared_ptr<element_type>() : shared_ptr<element_type>(*this);
+
+#endif
+ } // XXX MT
+
+
+ long
+ use_count() const // never throws
+ { return _M_refcount.use_count(); }
+
+ bool
+ expired() const // never throws
+ { return _M_refcount.use_count() == 0; }
+
+ void
+ reset() // never throws
+ { weak_ptr().swap(*this); }
+
+ void
+ swap(weak_ptr& __s) // never throws
+ {
+ std::swap(_M_ptr, __s._M_ptr);
+ _M_refcount.swap(__s._M_refcount);
+ }
+
+ private:
+
+ template <typename _Tp1>
+ bool
+ _M_less(const weak_ptr<_Tp1>& __rhs) const
+ { return _M_refcount < __rhs._M_refcount; }
+
+ // used by __enable_shared_from_this
+ void
+ _M_assign(_Tp* __ptr, const shared_count& __refcount)
+ {
+ _M_ptr = __ptr;
+ _M_refcount = __refcount;
+ }
+
+ // friend injected into namespace and found by ADL
+
+ template <typename _Tp1>
+ friend inline bool
+ operator<(const weak_ptr& __lhs, const weak_ptr<_Tp1>& __rhs)
+ { return __lhs._M_less(__rhs); }
+
+ template <typename _Tp1> friend class weak_ptr;
+ template <typename _Tp1> friend class shared_ptr;
+ friend class enable_shared_from_this<_Tp>;
+
+ _Tp* _M_ptr; // contained pointer
+ weak_count _M_refcount; // reference counter
+
+ }; // weak_ptr
+
+
+
+template <typename _Tp>
+ class enable_shared_from_this
+ {
+ protected:
+
+ enable_shared_from_this()
+ { }
+
+ enable_shared_from_this(const enable_shared_from_this&)
+ { }
+
+ enable_shared_from_this&
+ operator=(const enable_shared_from_this&)
+ { return *this; }
+
+ ~enable_shared_from_this()
+ { }
+
+ public:
+
+ shared_ptr<_Tp>
+ shared_from_this()
+ {
+ shared_ptr<_Tp> p(this->_M_weak_this);
+ return p;
+ }
+
+ shared_ptr<const _Tp>
+ shared_from_this() const
+ {
+ shared_ptr<const _Tp> p(this->_M_weak_this);
+ return p;
+ }
+
+ private:
+ template <typename _Tp1>
+ void
+ _M_weak_assign(_Tp1* __p, const shared_count& __n) const
+ { _M_weak_this._M_assign(__p, __n); }
+
+ template <typename _Tp1>
+ friend void
+ __enable_shared_from_this( const shared_count& __pn, const enable_shared_from_this* __pe, const _Tp1* __px)
+ {
+ if(__pe != 0)
+ __pe->_M_weak_assign(const_cast<_Tp1*>(__px), __pn);
+ }
+
+ mutable weak_ptr<_Tp> _M_weak_this;
+ };
+
+} // namespace tr1
+
+/**
+ * @brief std::swap() specialisation for shared_ptr.
+ * @relates shared_ptr.
+ */
+template <typename _Tp>
+ inline void
+ swap(tr1::shared_ptr<_Tp>& __a, tr1::shared_ptr<_Tp>& __b)
+ {
+ __a.swap(__b);
+ }
+
+/**
+ * @brief std::swap() specialisation for weak_ptr.
+ * @relates weak_ptr.
+ */
+template <typename _Tp>
+ void
+ swap(tr1::weak_ptr<_Tp>& __a, tr1::weak_ptr<_Tp>& __b)
+ {
+ __a.swap(__b);
+ }
+
+} // namespace std
+
+#endif
diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional
index 1e897e2b3c7..abe92e3bf23 100644
--- a/libstdc++-v3/include/tr1/functional
+++ b/libstdc++-v3/include/tr1/functional
@@ -1,6 +1,6 @@
// TR1 functional header -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 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
@@ -18,53 +18,363 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-/** @file
- * This is a TR1 C++ Library header.
+// 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.
+
+/** @file
+ * This is a TR1 C++ Library header.
*/
#ifndef _TR1_FUNCTIONAL
#define _TR1_FUNCTIONAL 1
#include "../functional"
+#include <typeinfo>
+#include <tr1/type_traits>
+#include <bits/cpp_type_traits.h>
+#include <string> // for std::tr1::hash
+#include <cstdlib> // for std::abort
+#include <tr1/tuple>
namespace std
{
namespace tr1
{
+ template<typename _MemberPointer>
+ class _Mem_fn;
+
+ /**
+ * @if maint
+ * Actual implementation of _Has_result_type, which uses SFINAE to
+ * determine if the type _Tp has a publicly-accessible member type
+ * result_type.
+ * @endif
+ */
+ template<typename _Tp>
+ class _Has_result_type_helper : __sfinae_types
+ {
+ template<typename _Up>
+ struct _Wrap_type
+ { };
+
+ template<typename _Up>
+ static __one __test(_Wrap_type<typename _Up::result_type>*);
+
+ template<typename _Up>
+ static __two __test(...);
+
+ public:
+ static const bool value = sizeof(__test<_Tp>(0)) == 1;
+ };
+
+ template<typename _Tp>
+ struct _Has_result_type
+ : integral_constant<
+ bool,
+ _Has_result_type_helper<typename remove_cv<_Tp>::type>::value>
+ { };
+
+ /**
+ * @if maint
+ * If we have found a result_type, extract it.
+ * @endif
+ */
+ template<bool _Has_result_type, typename _Functor>
+ struct _Maybe_get_result_type
+ { };
+
+ template<typename _Functor>
+ struct _Maybe_get_result_type<true, _Functor>
+ {
+ typedef typename _Functor::result_type result_type;
+ };
+
+ /**
+ * @if maint
+ * Base class for any function object that has a weak result type, as
+ * defined in 3.3/3 of TR1.
+ * @endif
+ */
+ template<typename _Functor>
+ struct _Weak_result_type_impl
+ : _Maybe_get_result_type<_Has_result_type<_Functor>::value, _Functor>
+ {
+ };
+
+ /**
+ * @if maint
+ * Strip top-level cv-qualifiers from the function object and let
+ * _Weak_result_type_impl perform the real work.
+ * @endif
+ */
+ template<typename _Functor>
+ struct _Weak_result_type
+ : _Weak_result_type_impl<typename remove_cv<_Functor>::type>
+ {
+ };
+
+ template<typename _Signature>
+ class result_of;
+
+ /**
+ * @if maint
+ * Actual implementation of result_of. When _Has_result_type is
+ * true, gets its result from _Weak_result_type. Otherwise, uses
+ * the function object's member template result to extract the
+ * result type.
+ * @endif
+ */
+ template<bool _Has_result_type, typename _Signature>
+ struct _Result_of_impl;
+
+ // Handle member data pointers using _Mem_fn's logic
+ template<typename _Res, typename _Class, typename _T1>
+ struct _Result_of_impl<false, _Res _Class::*(_T1)>
+ {
+ typedef typename _Mem_fn<_Res _Class::*>
+ ::template _Result_type<_T1>::type type;
+ };
+
+ /**
+ * @if maint
+ * Determines if the type _Tp derives from unary_function.
+ * @endif
+ */
+ template<typename _Tp>
+ struct _Derives_from_unary_function : __sfinae_types
+ {
+ private:
+ template<typename _T1, typename _Res>
+ static __one __test(const volatile unary_function<_T1, _Res>*);
+
+ // It's tempting to change "..." to const volatile void*, but
+ // that fails when _Tp is a function type.
+ static __two __test(...);
+
+ public:
+ static const bool value = sizeof(__test((_Tp*)0)) == 1;
+ };
+
+ /**
+ * @if maint
+ * Determines if the type _Tp derives from binary_function.
+ * @endif
+ */
+ template<typename _Tp>
+ struct _Derives_from_binary_function : __sfinae_types
+ {
+ private:
+ template<typename _T1, typename _T2, typename _Res>
+ static __one __test(const volatile binary_function<_T1, _T2, _Res>*);
+
+ // It's tempting to change "..." to const volatile void*, but
+ // that fails when _Tp is a function type.
+ static __two __test(...);
+
+ public:
+ static const bool value = sizeof(__test((_Tp*)0)) == 1;
+ };
+
+ /**
+ * @if maint
+ * Turns a function type into a function pointer type
+ * @endif
+ */
+ template<typename _Tp, bool _IsFunctionType = is_function<_Tp>::value>
+ struct _Function_to_function_pointer
+ {
+ typedef _Tp type;
+ };
+
+ template<typename _Tp>
+ struct _Function_to_function_pointer<_Tp, true>
+ {
+ typedef _Tp* type;
+ };
+
+ /**
+ * @if maint
+ * Knowing which of unary_function and binary_function _Tp derives
+ * from, derives from the same and ensures that reference_wrapper
+ * will have a weak result type. See cases below.
+ * @endif
+ */
+ template<bool _Unary, bool _Binary, typename _Tp>
+ struct _Reference_wrapper_base_impl;
+
+ // Not a unary_function or binary_function, so try a weak result type
+ template<typename _Tp>
+ struct _Reference_wrapper_base_impl<false, false, _Tp>
+ : _Weak_result_type<_Tp>
+ { };
+
+ // unary_function but not binary_function
+ template<typename _Tp>
+ struct _Reference_wrapper_base_impl<true, false, _Tp>
+ : unary_function<typename _Tp::argument_type,
+ typename _Tp::result_type>
+ { };
+
+ // binary_function but not unary_function
+ template<typename _Tp>
+ struct _Reference_wrapper_base_impl<false, true, _Tp>
+ : binary_function<typename _Tp::first_argument_type,
+ typename _Tp::second_argument_type,
+ typename _Tp::result_type>
+ { };
+
+ // both unary_function and binary_function. import result_type to
+ // avoid conflicts.
+ template<typename _Tp>
+ struct _Reference_wrapper_base_impl<true, true, _Tp>
+ : unary_function<typename _Tp::argument_type,
+ typename _Tp::result_type>,
+ binary_function<typename _Tp::first_argument_type,
+ typename _Tp::second_argument_type,
+ typename _Tp::result_type>
+ {
+ typedef typename _Tp::result_type result_type;
+ };
+
+ /**
+ * @if maint
+ * Derives from unary_function or binary_function when it
+ * can. Specializations handle all of the easy cases. The primary
+ * template determines what to do with a class type, which may
+ * derive from both unary_function and binary_function.
+ * @endif
+ */
+ template<typename _Tp>
+ struct _Reference_wrapper_base
+ : _Reference_wrapper_base_impl<
+ _Derives_from_unary_function<_Tp>::value,
+ _Derives_from_binary_function<_Tp>::value,
+ _Tp>
+ { };
+
+ // - a function type (unary)
+ template<typename _Res, typename _T1>
+ struct _Reference_wrapper_base<_Res(_T1)>
+ : unary_function<_T1, _Res>
+ { };
+
+ // - a function type (binary)
+ template<typename _Res, typename _T1, typename _T2>
+ struct _Reference_wrapper_base<_Res(_T1, _T2)>
+ : binary_function<_T1, _T2, _Res>
+ { };
+
+ // - a function pointer type (unary)
+ template<typename _Res, typename _T1>
+ struct _Reference_wrapper_base<_Res(*)(_T1)>
+ : unary_function<_T1, _Res>
+ { };
+
+ // - a function pointer type (binary)
+ template<typename _Res, typename _T1, typename _T2>
+ struct _Reference_wrapper_base<_Res(*)(_T1, _T2)>
+ : binary_function<_T1, _T2, _Res>
+ { };
+
+ // - a pointer to member function type (unary, no qualifiers)
+ template<typename _Res, typename _T1>
+ struct _Reference_wrapper_base<_Res (_T1::*)()>
+ : unary_function<_T1*, _Res>
+ { };
+
+ // - a pointer to member function type (binary, no qualifiers)
+ template<typename _Res, typename _T1, typename _T2>
+ struct _Reference_wrapper_base<_Res (_T1::*)(_T2)>
+ : binary_function<_T1*, _T2, _Res>
+ { };
+
+ // - a pointer to member function type (unary, const)
+ template<typename _Res, typename _T1>
+ struct _Reference_wrapper_base<_Res (_T1::*)() const>
+ : unary_function<const _T1*, _Res>
+ { };
+
+ // - a pointer to member function type (binary, const)
+ template<typename _Res, typename _T1, typename _T2>
+ struct _Reference_wrapper_base<_Res (_T1::*)(_T2) const>
+ : binary_function<const _T1*, _T2, _Res>
+ { };
+
+ // - a pointer to member function type (unary, volatile)
+ template<typename _Res, typename _T1>
+ struct _Reference_wrapper_base<_Res (_T1::*)() volatile>
+ : unary_function<volatile _T1*, _Res>
+ { };
+
+ // - a pointer to member function type (binary, volatile)
+ template<typename _Res, typename _T1, typename _T2>
+ struct _Reference_wrapper_base<_Res (_T1::*)(_T2) volatile>
+ : binary_function<volatile _T1*, _T2, _Res>
+ { };
+
+ // - a pointer to member function type (unary, const volatile)
+ template<typename _Res, typename _T1>
+ struct _Reference_wrapper_base<_Res (_T1::*)() const volatile>
+ : unary_function<const volatile _T1*, _Res>
+ { };
+
+ // - a pointer to member function type (binary, const volatile)
+ template<typename _Res, typename _T1, typename _T2>
+ struct _Reference_wrapper_base<_Res (_T1::*)(_T2) const volatile>
+ : binary_function<const volatile _T1*, _T2, _Res>
+ { };
+
template<typename _Tp>
class reference_wrapper
+ : public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
{
+ // If _Tp is a function type, we can't form result_of<_Tp(...)>,
+ // so turn it into a function pointer type.
+ typedef typename _Function_to_function_pointer<_Tp>::type
+ _M_func_type;
+
_Tp* _M_data;
public:
typedef _Tp type;
explicit reference_wrapper(_Tp& __indata): _M_data(&__indata)
{ }
-
+
reference_wrapper(const reference_wrapper<_Tp>& __inref):
_M_data(__inref._M_data)
{ }
- reference_wrapper&
+ reference_wrapper&
operator=(const reference_wrapper<_Tp>& __inref)
{
- _M_data = __inref._M_data;
- return *this;
+ _M_data = __inref._M_data;
+ return *this;
}
-
+
operator _Tp&() const
{ return this->get(); }
-
+
_Tp&
get() const
{ return *_M_data; }
+
+#define _GLIBCXX_REPEAT_HEADER <tr1/ref_wrap_iterate.h>
+#include <tr1/repeat.h>
+#undef _GLIBCXX_REPEAT_HEADER
};
-
+
+
// Denotes a reference should be taken to a variable.
template<typename _Tp>
reference_wrapper<_Tp>
ref(_Tp& __t)
{ return reference_wrapper<_Tp>(__t); }
-
+
// Denotes a const reference should be taken to a variable.
template<typename _Tp>
reference_wrapper<const _Tp>
@@ -78,8 +388,777 @@ namespace tr1
template<typename _Tp>
reference_wrapper<const _Tp> cref(reference_wrapper<_Tp> __t)
{ return cref(__t.get()); }
+
+ template<typename _Tp, bool>
+ struct _Mem_fn_const_or_non
+ {
+ typedef const _Tp& type;
+ };
+
+ template<typename _Tp>
+ struct _Mem_fn_const_or_non<_Tp, false>
+ {
+ typedef _Tp& type;
+ };
+
+ template<typename _Res, typename _Class>
+ class _Mem_fn<_Res _Class::*>
+ {
+ // This bit of genius is due to Peter Dimov, improved slightly by
+ // Douglas Gregor.
+ template<typename _Tp>
+ _Res&
+ _M_call(_Tp& __object, _Class *) const
+ { return __object.*__pm; }
+
+ template<typename _Tp, typename _Up>
+ _Res&
+ _M_call(_Tp& __object, _Up * const *) const
+ { return (*__object).*__pm; }
+
+ template<typename _Tp, typename _Up>
+ const _Res&
+ _M_call(_Tp& __object, const _Up * const *) const
+ { return (*__object).*__pm; }
+
+ template<typename _Tp>
+ const _Res&
+ _M_call(_Tp& __object, const _Class *) const
+ { return __object.*__pm; }
+
+ template<typename _Tp>
+ const _Res&
+ _M_call(_Tp& __ptr, const volatile void*) const
+ { return (*__ptr).*__pm; }
+
+ template<typename _Tp> static _Tp& __get_ref();
+
+ template<typename _Tp>
+ static __sfinae_types::__one __check_const(_Tp&, _Class*);
+ template<typename _Tp, typename _Up>
+ static __sfinae_types::__one __check_const(_Tp&, _Up * const *);
+ template<typename _Tp, typename _Up>
+ static __sfinae_types::__two __check_const(_Tp&, const _Up * const *);
+ template<typename _Tp>
+ static __sfinae_types::__two __check_const(_Tp&, const _Class*);
+ template<typename _Tp>
+ static __sfinae_types::__two __check_const(_Tp&, const volatile void*);
+
+ public:
+ template<typename _Tp>
+ struct _Result_type
+ : _Mem_fn_const_or_non<
+ _Res,
+ (sizeof(__sfinae_types::__two)
+ == sizeof(__check_const<_Tp>(__get_ref<_Tp>(), (_Tp*)0)))>
+ { };
+
+ template<typename _Signature>
+ struct result;
+
+ template<typename _CVMem, typename _Tp>
+ struct result<_CVMem(_Tp)>
+ : public _Result_type<_Tp> { };
+
+ template<typename _CVMem, typename _Tp>
+ struct result<_CVMem(_Tp&)>
+ : public _Result_type<_Tp> { };
+
+ explicit _Mem_fn(_Res _Class::*__pm) : __pm(__pm) { }
+
+ // Handle objects
+ _Res& operator()(_Class& __object) const
+ { return __object.*__pm; }
+
+ const _Res& operator()(const _Class& __object) const
+ { return __object.*__pm; }
+
+ // Handle pointers
+ _Res& operator()(_Class* __object) const
+ { return __object->*__pm; }
+
+ const _Res&
+ operator()(const _Class* __object) const
+ { return __object->*__pm; }
+
+ // Handle smart pointers and derived
+ template<typename _Tp>
+ typename _Result_type<_Tp>::type
+ operator()(_Tp& __unknown) const
+ { return _M_call(__unknown, &__unknown); }
+
+ private:
+ _Res _Class::*__pm;
+ };
+
+ /**
+ * @brief Returns a function object that forwards to the member
+ * pointer @a pm.
+ */
+ template<typename _Tp, typename _Class>
+ inline _Mem_fn<_Tp _Class::*>
+ mem_fn(_Tp _Class::* __pm)
+ {
+ return _Mem_fn<_Tp _Class::*>(__pm);
+ }
+
+ /**
+ * @brief Determines if the given type _Tp is a function object
+ * should be treated as a subexpression when evaluating calls to
+ * function objects returned by bind(). [TR1 3.6.1]
+ */
+ template<typename _Tp>
+ struct is_bind_expression
+ {
+ static const bool value = false;
+ };
+
+ /**
+ * @brief Determines if the given type _Tp is a placeholder in a
+ * bind() expression and, if so, which placeholder it is. [TR1 3.6.2]
+ */
+ template<typename _Tp>
+ struct is_placeholder
+ {
+ static const int value = 0;
+ };
+
+ /**
+ * @if maint
+ * The type of placeholder objects defined by libstdc++.
+ * @endif
+ */
+ template<int _Num> struct _Placeholder { };
+
+ /**
+ * @if maint
+ * Partial specialization of is_placeholder that provides the placeholder
+ * number for the placeholder objects defined by libstdc++.
+ * @endif
+ */
+ template<int _Num>
+ struct is_placeholder<_Placeholder<_Num> >
+ {
+ static const int value = _Num;
+ };
+
+ /**
+ * @if maint
+ * Maps an argument to bind() into an actual argument to the bound
+ * function object [TR1 3.6.3/5]. Only the first parameter should
+ * be specified: the rest are used to determine among the various
+ * implementations. Note that, although this class is a function
+ * object, isn't not entirely normal because it takes only two
+ * parameters regardless of the number of parameters passed to the
+ * bind expression. The first parameter is the bound argument and
+ * the second parameter is a tuple containing references to the
+ * rest of the arguments.
+ * @endif
+ */
+ template<typename _Arg,
+ bool _IsBindExp = is_bind_expression<_Arg>::value,
+ bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)>
+ class _Mu;
+
+ /**
+ * @if maint
+ * If the argument is reference_wrapper<_Tp>, returns the
+ * underlying reference. [TR1 3.6.3/5 bullet 1]
+ * @endif
+ */
+ template<typename _Tp>
+ class _Mu<reference_wrapper<_Tp>, false, false>
+ {
+ public:
+ typedef _Tp& result_type;
+
+ /* Note: This won't actually work for const volatile
+ * reference_wrappers, because reference_wrapper::get() is const
+ * but not volatile-qualified. This might be a defect in the TR.
+ */
+ template<typename _CVRef, typename _Tuple>
+ result_type
+ operator()(_CVRef& __arg, const _Tuple&) const volatile
+ { return __arg.get(); }
+ };
+
+ /**
+ * @if maint
+ * If the argument is a bind expression, we invoke the underlying
+ * function object with the same cv-qualifiers as we are given and
+ * pass along all of our arguments (unwrapped). [TR1 3.6.3/5 bullet 2]
+ * @endif
+ */
+ template<typename _Arg>
+ class _Mu<_Arg, true, false>
+ {
+ public:
+ template<typename _Signature> class result;
+
+#define _GLIBCXX_REPEAT_HEADER <tr1/mu_iterate.h>
+# include <tr1/repeat.h>
+#undef _GLIBCXX_REPEAT_HEADER
+ };
+
+ /**
+ * @if maint
+ * If the argument is a placeholder for the Nth argument, returns
+ * a reference to the Nth argument to the bind function object.
+ * [TR1 3.6.3/5 bullet 3]
+ * @endif
+ */
+ template<typename _Arg>
+ class _Mu<_Arg, false, true>
+ {
+ public:
+ template<typename _Signature> class result;
+
+ template<typename _CVMu, typename _CVArg, typename _Tuple>
+ class result<_CVMu(_CVArg, _Tuple)>
+ {
+ // Add a reference, if it hasn't already been done for us.
+ // This allows us to be a little bit sloppy in constructing
+ // the tuple that we pass to result_of<...>.
+ typedef typename tuple_element<(is_placeholder<_Arg>::value - 1),
+ _Tuple>::type __base_type;
+
+ public:
+ typedef typename add_reference<__base_type>::type type;
+ };
+
+ template<typename _Tuple>
+ typename result<_Mu(_Arg, _Tuple)>::type
+ operator()(const volatile _Arg&, const _Tuple& __tuple) const volatile
+ {
+ return ::std::tr1::get<(is_placeholder<_Arg>::value - 1)>(__tuple);
+ }
+ };
+
+ /**
+ * @if maint
+ * If the argument is just a value, returns a reference to that
+ * value. The cv-qualifiers on the reference are the same as the
+ * cv-qualifiers on the _Mu object. [TR1 3.6.3/5 bullet 4]
+ * @endif
+ */
+ template<typename _Arg>
+ class _Mu<_Arg, false, false>
+ {
+ public:
+ template<typename _Signature> struct result;
+
+ template<typename _CVMu, typename _CVArg, typename _Tuple>
+ struct result<_CVMu(_CVArg, _Tuple)>
+ {
+ typedef typename add_reference<_CVArg>::type type;
+ };
+
+ // Pick up the cv-qualifiers of the argument
+ template<typename _CVArg, typename _Tuple>
+ _CVArg& operator()(_CVArg& __arg, const _Tuple&) const volatile
+ { return __arg; }
+ };
+
+ /**
+ * @if maint
+ * Maps member pointers into instances of _Mem_fn but leaves all
+ * other function objects untouched. Used by tr1::bind(). The
+ * primary template handles the non--member-pointer case.
+ * @endif
+ */
+ template<typename _Tp>
+ struct _Maybe_wrap_member_pointer
+ {
+ typedef _Tp type;
+ static const _Tp& __do_wrap(const _Tp& __x) { return __x; }
+ };
+
+ /**
+ * @if maint
+ * Maps member pointers into instances of _Mem_fn but leaves all
+ * other function objects untouched. Used by tr1::bind(). This
+ * partial specialization handles the member pointer case.
+ * @endif
+ */
+ template<typename _Tp, typename _Class>
+ struct _Maybe_wrap_member_pointer<_Tp _Class::*>
+ {
+ typedef _Mem_fn<_Tp _Class::*> type;
+ static type __do_wrap(_Tp _Class::* __pm) { return type(__pm); }
+ };
+
+ /**
+ * @if maint
+ * Type of the function object returned from bind().
+ * @endif
+ */
+ template<typename _Signature>
+ struct _Bind;
+
+ /**
+ * @if maint
+ * Type of the function object returned from bind<R>().
+ * @endif
+ */
+ template<typename _Result, typename _Signature>
+ struct _Bind_result;
+
+ /**
+ * @if maint
+ * Class template _Bind is always a bind expression.
+ * @endif
+ */
+ template<typename _Signature>
+ struct is_bind_expression<_Bind<_Signature> >
+ {
+ static const bool value = true;
+ };
+
+ /**
+ * @if maint
+ * Class template _Bind_result is always a bind expression.
+ * @endif
+ */
+ template<typename _Result, typename _Signature>
+ struct is_bind_expression<_Bind_result<_Result, _Signature> >
+ {
+ static const bool value = true;
+ };
+
+ /**
+ * @brief Exception class thrown when class template function's
+ * operator() is called with an empty target.
+ *
+ */
+ class bad_function_call : public std::exception { };
+
+ /**
+ * @if maint
+ * The integral constant expression 0 can be converted into a
+ * pointer to this type. It is used by the function template to
+ * accept NULL pointers.
+ * @endif
+ */
+ struct _M_clear_type;
+
+ /**
+ * @if maint
+ * Trait identifying "location-invariant" types, meaning that the
+ * address of the object (or any of its members) will not escape.
+ * Also implies a trivial copy constructor and assignment operator.
+ * @endif
+ */
+ template<typename _Tp>
+ struct __is_location_invariant
+ : integral_constant<bool,
+ (is_pointer<_Tp>::value
+ || is_member_pointer<_Tp>::value)>
+ {
+ };
+
+ class _Undefined_class;
+
+ union _Nocopy_types
+ {
+ void* _M_object;
+ const void* _M_const_object;
+ void (*_M_function_pointer)();
+ void (_Undefined_class::*_M_member_pointer)();
+ };
+
+ union _Any_data {
+ void* _M_access() { return &_M_pod_data[0]; }
+ const void* _M_access() const { return &_M_pod_data[0]; }
+
+ template<typename _Tp> _Tp& _M_access()
+ { return *static_cast<_Tp*>(_M_access()); }
+
+ template<typename _Tp> const _Tp& _M_access() const
+ { return *static_cast<const _Tp*>(_M_access()); }
+
+ _Nocopy_types _M_unused;
+ char _M_pod_data[sizeof(_Nocopy_types)];
+ };
+
+ enum _Manager_operation
+ {
+ __get_type_info,
+ __get_functor_ptr,
+ __clone_functor,
+ __destroy_functor
+ };
+
+ /* Simple type wrapper that helps avoid annoying const problems
+ when casting between void pointers and pointers-to-pointers. */
+ template<typename _Tp>
+ struct _Simple_type_wrapper
+ {
+ _Simple_type_wrapper(_Tp __value) : __value(__value) { }
+
+ _Tp __value;
+ };
+
+ template<typename _Tp>
+ struct __is_location_invariant<_Simple_type_wrapper<_Tp> >
+ : __is_location_invariant<_Tp>
+ {
+ };
+
+ // Converts a reference to a function object into a callable
+ // function object.
+ template<typename _Functor>
+ inline _Functor& __callable_functor(_Functor& __f) { return __f; }
+
+ template<typename _Member, typename _Class>
+ inline _Mem_fn<_Member _Class::*>
+ __callable_functor(_Member _Class::* &__p)
+ { return mem_fn(__p); }
+
+ template<typename _Member, typename _Class>
+ inline _Mem_fn<_Member _Class::*>
+ __callable_functor(_Member _Class::* const &__p)
+ { return mem_fn(__p); }
+
+ template<typename _Signature, typename _Functor>
+ class _Function_handler;
+
+ template<typename _Signature>
+ class function;
+
+
+ /**
+ * @if maint
+ * Base class of all polymorphic function object wrappers.
+ * @endif
+ */
+ class _Function_base
+ {
+ public:
+ static const std::size_t _M_max_size = sizeof(_Nocopy_types);
+ static const std::size_t _M_max_align = __alignof__(_Nocopy_types);
+
+ template<typename _Functor>
+ class _Base_manager
+ {
+ protected:
+ static const bool __stored_locally =
+ (__is_location_invariant<_Functor>::value
+ && sizeof(_Functor) <= _M_max_size
+ && __alignof__(_Functor) <= _M_max_align
+ && (_M_max_align % __alignof__(_Functor) == 0));
+ typedef integral_constant<bool, __stored_locally> _Local_storage;
+
+ // Retrieve a pointer to the function object
+ static _Functor* _M_get_pointer(const _Any_data& __source)
+ {
+ const _Functor* __ptr =
+ __stored_locally? &__source._M_access<_Functor>()
+ /* have stored a pointer */ : __source._M_access<_Functor*>();
+ return const_cast<_Functor*>(__ptr);
+ }
+
+ // Clone a location-invariant function object that fits within
+ // an _Any_data structure.
+ static void
+ _M_clone(_Any_data& __dest, const _Any_data& __source, true_type)
+ {
+ new (__dest._M_access()) _Functor(__source._M_access<_Functor>());
+ }
+
+ // Clone a function object that is not location-invariant or
+ // that cannot fit into an _Any_data structure.
+ static void
+ _M_clone(_Any_data& __dest, const _Any_data& __source, false_type)
+ {
+ __dest._M_access<_Functor*>() =
+ new _Functor(*__source._M_access<_Functor*>());
+ }
+
+ // Destroying a location-invariant object may still require
+ // destruction.
+ static void
+ _M_destroy(_Any_data& __victim, true_type)
+ {
+ __victim._M_access<_Functor>().~_Functor();
+ }
+
+ // Destroying an object located on the heap.
+ static void
+ _M_destroy(_Any_data& __victim, false_type)
+ {
+ delete __victim._M_access<_Functor*>();
+ }
+
+ public:
+ static bool
+ _M_manager(_Any_data& __dest, const _Any_data& __source,
+ _Manager_operation __op)
+ {
+ switch (__op) {
+ case __get_type_info:
+ __dest._M_access<const type_info*>() = &typeid(_Functor);
+ break;
+
+ case __get_functor_ptr:
+ __dest._M_access<_Functor*>() = _M_get_pointer(__source);
+ break;
+
+ case __clone_functor:
+ _M_clone(__dest, __source, _Local_storage());
+ break;
+
+ case __destroy_functor:
+ _M_destroy(__dest, _Local_storage());
+ break;
+ }
+ return false;
+ }
+
+ static void
+ _M_init_functor(_Any_data& __functor, const _Functor& __f)
+ {
+ _M_init_functor(__functor, __f, _Local_storage());
+ }
+
+ template<typename _Signature>
+ static bool
+ _M_not_empty_function(const function<_Signature>& __f)
+ {
+ return __f;
+ }
+
+ template<typename _Tp>
+ static bool
+ _M_not_empty_function(const _Tp*& __fp)
+ {
+ return __fp;
+ }
+
+ template<typename _Class, typename _Tp>
+ static bool
+ _M_not_empty_function(_Tp _Class::* const& __mp)
+ {
+ return __mp;
+ }
+
+ template<typename _Tp>
+ static bool
+ _M_not_empty_function(const _Tp&)
+ {
+ return true;
+ }
+
+ private:
+ static void
+ _M_init_functor(_Any_data& __functor, const _Functor& __f, true_type)
+ {
+ new (__functor._M_access()) _Functor(__f);
+ }
+
+ static void
+ _M_init_functor(_Any_data& __functor, const _Functor& __f, false_type)
+ {
+ __functor._M_access<_Functor*>() = new _Functor(__f);
+ }
+ };
+
+ template<typename _Functor>
+ class _Ref_manager : public _Base_manager<_Functor*>
+ {
+ typedef _Function_base::_Base_manager<_Functor*> _Base;
+
+ public:
+ static bool
+ _M_manager(_Any_data& __dest, const _Any_data& __source,
+ _Manager_operation __op)
+ {
+ switch (__op) {
+ case __get_type_info:
+ __dest._M_access<const type_info*>() = &typeid(_Functor);
+ break;
+
+ case __get_functor_ptr:
+ __dest._M_access<_Functor*>() = *_Base::_M_get_pointer(__source);
+ return is_const<_Functor>::value;
+ break;
+
+ default:
+ _Base::_M_manager(__dest, __source, __op);
+ }
+ return false;
+ }
+
+ static void
+ _M_init_functor(_Any_data& __functor, reference_wrapper<_Functor> __f)
+ {
+ // TBD: Use address_of function instead
+ _Base::_M_init_functor(__functor, &__f.get());
+ }
+ };
+
+ _Function_base() : _M_manager(0) { }
+
+ ~_Function_base()
+ {
+ if (_M_manager)
+ {
+ _M_manager(_M_functor, _M_functor, __destroy_functor);
+ }
+ }
+
+
+ bool _M_empty() const { return !_M_manager; }
+
+ typedef bool (*_Manager_type)(_Any_data&, const _Any_data&,
+ _Manager_operation);
+
+ _Any_data _M_functor;
+ _Manager_type _M_manager;
+ };
+
+ // [3.7.2.7] null pointer comparisons
+
+ /**
+ * @brief Compares a polymorphic function object wrapper against 0
+ * (the NULL pointer).
+ * @returns @c true if the wrapper has no target, @c false otherwise
+ *
+ * This function will not throw an exception.
+ */
+ template<typename _Signature>
+ inline bool
+ operator==(const function<_Signature>& __f, _M_clear_type*)
+ {
+ return !__f;
+ }
+
+ /**
+ * @overload
+ */
+ template<typename _Signature>
+ inline bool
+ operator==(_M_clear_type*, const function<_Signature>& __f)
+ {
+ return !__f;
+ }
+
+ /**
+ * @brief Compares a polymorphic function object wrapper against 0
+ * (the NULL pointer).
+ * @returns @c false if the wrapper has no target, @c true otherwise
+ *
+ * This function will not throw an exception.
+ */
+ template<typename _Signature>
+ inline bool
+ operator!=(const function<_Signature>& __f, _M_clear_type*)
+ {
+ return __f;
+ }
+
+ /**
+ * @overload
+ */
+ template<typename _Signature>
+ inline bool
+ operator!=(_M_clear_type*, const function<_Signature>& __f)
+ {
+ return __f;
+ }
+
+ // [3.7.2.8] specialized algorithms
+
+ /**
+ * @brief Swap the targets of two polymorphic function object wrappers.
+ *
+ * This function will not throw an exception.
+ */
+ template<typename _Signature>
+ inline void
+ swap(function<_Signature>& __x, function<_Signature>& __y)
+ {
+ __x.swap(__y);
+ }
+
+#define _GLIBCXX_JOIN(X,Y) _GLIBCXX_JOIN2( X , Y )
+#define _GLIBCXX_JOIN2(X,Y) _GLIBCXX_JOIN3(X,Y)
+#define _GLIBCXX_JOIN3(X,Y) X##Y
+#define _GLIBCXX_REPEAT_HEADER <tr1/functional_iterate.h>
+#include <tr1/repeat.h>
+#undef _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_JOIN3
+#undef _GLIBCXX_JOIN2
+#undef _GLIBCXX_JOIN
+
+// Definition of default hash function std::tr1::hash<>. The types for
+// which std::tr1::hash<T> is defined is in clause 6.3.3. of the PDTR.
+
+ template <typename T> struct hash;
+
+ #define tr1_hashtable_define_trivial_hash(T) \
+ template <> struct hash<T> { \
+ std::size_t operator()(T val) const { return static_cast<std::size_t>(val); } \
+ } \
+
+ tr1_hashtable_define_trivial_hash(bool);
+ tr1_hashtable_define_trivial_hash(char);
+ tr1_hashtable_define_trivial_hash(signed char);
+ tr1_hashtable_define_trivial_hash(unsigned char);
+ tr1_hashtable_define_trivial_hash(wchar_t);
+ tr1_hashtable_define_trivial_hash(short);
+ tr1_hashtable_define_trivial_hash(int);
+ tr1_hashtable_define_trivial_hash(long);
+ tr1_hashtable_define_trivial_hash(unsigned short);
+ tr1_hashtable_define_trivial_hash(unsigned int);
+ tr1_hashtable_define_trivial_hash(unsigned long);
+
+ tr1_hashtable_define_trivial_hash(float);
+ tr1_hashtable_define_trivial_hash(double);
+ tr1_hashtable_define_trivial_hash(long double);
+
+ #undef tr1_hashtable_define_trivial_hash
+
+ template <typename T>
+ struct hash<T*> {
+ std::size_t operator()(T* p) const {
+ return reinterpret_cast<std::size_t>(p);
+ }
+ };
+
+ // ??? We can probably find a better hash function than this (i.e. one
+ // that vectorizes better and that produces a more uniform distribution).
+
+ // XXX String hash probably shouldn't be an inline member function,
+ // since it's nontrivial. Once we have the framework for TR1 .cc
+ // files, this should go in one.
+
+ template <>
+ struct hash<std::string>
+ {
+ std::size_t operator()(const std::string& s) const
+ {
+ std::size_t result = 0;
+ for (std::string::const_iterator i = s.begin(); i != s.end(); ++i)
+ result = (result * 131) + *i;
+ return result;
+ }
+ };
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+ template <>
+ struct hash<std::wstring>
+ {
+ std::size_t operator()(const std::wstring& s) const
+ {
+ std::size_t result = 0;
+ for (std::wstring::const_iterator i = s.begin(); i != s.end(); ++i)
+ result = (result * 131) + *i;
+ return result;
+ }
+ };
+#endif
+
}
}
#endif
-
diff --git a/libstdc++-v3/include/tr1/functional_iterate.h b/libstdc++-v3/include/tr1/functional_iterate.h
new file mode 100644
index 00000000000..524f2d2be19
--- /dev/null
+++ b/libstdc++-v3/include/tr1/functional_iterate.h
@@ -0,0 +1,923 @@
+// TR1 functional -*- C++ -*-
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Written by Douglas Gregor <doug.gregor -at- gmail.com>
+//
+// 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.
+
+/** @file functional_iterate.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ struct _Weak_result_type_impl<_Res(_GLIBCXX_TEMPLATE_ARGS)>
+ {
+ typedef _Res result_type;
+ };
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ struct _Weak_result_type_impl<_Res (&)(_GLIBCXX_TEMPLATE_ARGS)>
+ {
+ typedef _Res result_type;
+ };
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ struct _Weak_result_type_impl<_Res (*)(_GLIBCXX_TEMPLATE_ARGS)>
+ {
+ typedef _Res result_type;
+ };
+
+#if _GLIBCXX_NUM_ARGS > 0
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ struct _Weak_result_type_impl<
+ _Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED)>
+ {
+ typedef _Res result_type;
+ };
+
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ struct _Weak_result_type_impl<
+ _Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) const>
+ {
+ typedef _Res result_type;
+ };
+
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ struct _Weak_result_type_impl<
+ _Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) volatile>
+ {
+ typedef _Res result_type;
+ };
+
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ struct _Weak_result_type_impl<
+ _Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) const volatile>
+ {
+ typedef _Res result_type;
+ };
+#endif
+
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ class result_of<_Functor(_GLIBCXX_TEMPLATE_ARGS)>
+ : public _Result_of_impl<
+ _Has_result_type<_Weak_result_type<_Functor> >::value,
+ _Functor(_GLIBCXX_TEMPLATE_ARGS)>
+ { };
+
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ struct _Result_of_impl<true, _Functor(_GLIBCXX_TEMPLATE_ARGS)>
+ {
+ typedef typename _Weak_result_type<_Functor>::result_type type;
+ };
+
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ struct _Result_of_impl<false, _Functor(_GLIBCXX_TEMPLATE_ARGS)>
+ {
+#if _GLIBCXX_NUM_ARGS > 0
+ typedef typename _Functor
+ ::template result<_Functor(_GLIBCXX_TEMPLATE_ARGS)>::type type;
+#else
+ typedef void type;
+#endif
+ };
+
+/**
+ * @if maint
+ * Invoke a function object, which may be either a member pointer or a
+ * function object. The first parameter will tell which.
+ * @endif
+ */
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ inline
+ typename __enable_if<
+ typename result_of<_Functor(_GLIBCXX_TEMPLATE_ARGS)>::type,
+ (!is_member_pointer<_Functor>::value
+ && !is_function<_Functor>::value
+ && !is_function<typename remove_pointer<_Functor>::type>::value)
+ >::__type
+ __invoke(_Functor& __f _GLIBCXX_COMMA _GLIBCXX_REF_PARAMS)
+ {
+ return __f(_GLIBCXX_ARGS);
+ }
+
+#if _GLIBCXX_NUM_ARGS > 0
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ inline
+ typename __enable_if<
+ typename result_of<_Functor(_GLIBCXX_TEMPLATE_ARGS)>::type,
+ (is_member_pointer<_Functor>::value
+ && !is_function<_Functor>::value
+ && !is_function<typename remove_pointer<_Functor>::type>::value)
+ >::__type
+ __invoke(_Functor& __f _GLIBCXX_COMMA _GLIBCXX_REF_PARAMS)
+ {
+ return mem_fn(__f)(_GLIBCXX_ARGS);
+ }
+#endif
+
+// To pick up function references (that will become function pointers)
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ inline
+ typename __enable_if<
+ typename result_of<_Functor(_GLIBCXX_TEMPLATE_ARGS)>::type,
+ (is_pointer<_Functor>::value
+ && is_function<typename remove_pointer<_Functor>::type>::value)
+ >::__type
+ __invoke(_Functor __f _GLIBCXX_COMMA _GLIBCXX_REF_PARAMS)
+ {
+ return __f(_GLIBCXX_ARGS);
+ }
+
+/**
+ * @if maint
+ * Implementation of reference_wrapper::operator()
+ * @endif
+*/
+#if _GLIBCXX_NUM_ARGS > 0
+template<typename _Tp>
+template<_GLIBCXX_TEMPLATE_PARAMS>
+ typename result_of<
+ typename reference_wrapper<_Tp>::_M_func_type(_GLIBCXX_TEMPLATE_ARGS)>::type
+ reference_wrapper<_Tp>::operator()(_GLIBCXX_REF_PARAMS) const
+ {
+ return __invoke(get(), _GLIBCXX_ARGS);
+ }
+#endif
+
+#if _GLIBCXX_NUM_ARGS > 0
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ class _Mem_fn<_Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED)>
+#if _GLIBCXX_NUM_ARGS == 1
+ : public unary_function<_Class*, _Res>
+#elif _GLIBCXX_NUM_ARGS == 2
+ : public binary_function<_Class*, _T1, _Res>
+#endif
+ {
+ typedef _Res (_Class::*_Functor)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED);
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __object, const volatile _Class * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __ptr, const volatile void * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return ((*__ptr).*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ public:
+ typedef _Res result_type;
+
+ explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { }
+
+ // Handle objects
+ _Res
+ operator()(_Class& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle pointers
+ _Res
+ operator()(_Class* __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object->*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle smart pointers, references and pointers to derived
+ template<typename _Tp>
+ _Res
+ operator()(_Tp& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ {
+ return _M_call(__object, &__object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_ARGS_SHIFTED);
+ }
+
+ private:
+ _Functor __pmf;
+ };
+
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ class _Mem_fn<_Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) const>
+#if _GLIBCXX_NUM_ARGS == 1
+ : public unary_function<const _Class*, _Res>
+#elif _GLIBCXX_NUM_ARGS == 2
+ : public binary_function<const _Class*, _T1, _Res>
+#endif
+ {
+ typedef _Res (_Class::*_Functor)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) const;
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __object, const volatile _Class * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __ptr, const volatile void * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return ((*__ptr).*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ public:
+ typedef _Res result_type;
+
+ explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { }
+
+ // Handle objects
+ _Res
+ operator()(const _Class& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle pointers
+ _Res
+ operator()(const _Class* __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object->*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle smart pointers, references and pointers to derived
+ template<typename _Tp>
+ _Res
+ operator()(_Tp& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ {
+ return _M_call(__object, &__object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_ARGS_SHIFTED);
+ }
+
+ private:
+ _Functor __pmf;
+ };
+
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ class _Mem_fn<_Res (_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) volatile>
+#if _GLIBCXX_NUM_ARGS == 1
+ : public unary_function<volatile _Class*, _Res>
+#elif _GLIBCXX_NUM_ARGS == 2
+ : public binary_function<volatile _Class*, _T1, _Res>
+#endif
+ {
+ typedef _Res (_Class::*_Functor)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) volatile;
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __object, const volatile _Class * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __ptr, const volatile void * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return ((*__ptr).*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ public:
+ typedef _Res result_type;
+
+ explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { }
+
+ // Handle objects
+ _Res
+ operator()(volatile _Class& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle pointers
+ _Res
+ operator()(volatile _Class* __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object->*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle smart pointers, references and pointers to derived
+ template<typename _Tp>
+ _Res
+ operator()(_Tp& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ {
+ return _M_call(__object, &__object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_ARGS_SHIFTED);
+ }
+ private:
+ _Functor __pmf;
+ };
+
+template<typename _Res, typename _Class _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_TEMPLATE_PARAMS_SHIFTED>
+ class _Mem_fn<_Res(_Class::*)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED) const volatile>
+#if _GLIBCXX_NUM_ARGS == 1
+ : public unary_function<const volatile _Class*, _Res>
+#elif _GLIBCXX_NUM_ARGS == 2
+ : public binary_function<const volatile _Class*, _T1, _Res>
+#endif
+ {
+ typedef _Res (_Class::*_Functor)(_GLIBCXX_TEMPLATE_ARGS_SHIFTED)
+ const volatile;
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __object, const volatile _Class * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ template<typename _Tp>
+ _Res
+ _M_call(_Tp& __ptr, const volatile void * _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return ((*__ptr).*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ public:
+ typedef _Res result_type;
+
+ explicit _Mem_fn(_Functor __pmf) : __pmf(__pmf) { }
+
+ // Handle objects
+ _Res
+ operator()(const volatile _Class& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object.*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle pointers
+ _Res
+ operator()(const volatile _Class* __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ { return (__object->*__pmf)(_GLIBCXX_ARGS_SHIFTED); }
+
+ // Handle smart pointers, references and pointers to derived
+ template<typename _Tp>
+ _Res
+ operator()(_Tp& __object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_PARAMS_SHIFTED) const
+ {
+ return _M_call(__object, &__object _GLIBCXX_COMMA_SHIFTED
+ _GLIBCXX_ARGS_SHIFTED);
+ }
+
+ private:
+ _Functor __pmf;
+ };
+#endif
+
+#if _GLIBCXX_NUM_ARGS > 0
+namespace placeholders
+{
+namespace
+{
+ _Placeholder<_GLIBCXX_NUM_ARGS> _GLIBCXX_JOIN(_,_GLIBCXX_NUM_ARGS);
+}
+}
+#endif
+
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class _Bind<_Functor(_GLIBCXX_TEMPLATE_ARGS)>
+ : public _Weak_result_type<_Functor>
+{
+ typedef _Bind __self_type;
+
+ _Functor _M_f;
+ _GLIBCXX_BIND_MEMBERS
+
+ public:
+#if _GLIBCXX_NUM_ARGS == 0
+ explicit
+#endif
+ _Bind(_Functor __f _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ : _M_f(__f) _GLIBCXX_COMMA _GLIBCXX_BIND_MEMBERS_INIT { }
+
+#define _GLIBCXX_BIND_REPEAT_HEADER <tr1/bind_iterate.h>
+#include <tr1/bind_repeat.h>
+#undef _GLIBCXX_BIND_REPEAT_HEADER
+};
+
+template<typename _Result, typename _Functor
+ _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class _Bind_result<_Result, _Functor(_GLIBCXX_TEMPLATE_ARGS)>
+{
+ _Functor _M_f;
+ _GLIBCXX_BIND_MEMBERS
+
+ public:
+ typedef _Result result_type;
+
+#if _GLIBCXX_NUM_ARGS == 0
+ explicit
+#endif
+ _Bind_result(_Functor __f _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ : _M_f(__f) _GLIBCXX_COMMA _GLIBCXX_BIND_MEMBERS_INIT { }
+
+#define _GLIBCXX_BIND_REPEAT_HEADER <tr1/bind_iterate.h>
+#define _GLIBCXX_BIND_HAS_RESULT_TYPE
+#include <tr1/bind_repeat.h>
+#undef _GLIBCXX_BIND_HAS_RESULT_TYPE
+#undef _GLIBCXX_BIND_REPEAT_HEADER
+};
+
+// Handle arbitrary function objects
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+inline
+_Bind<typename _Maybe_wrap_member_pointer<_Functor>::type
+ (_GLIBCXX_TEMPLATE_ARGS)>
+bind(_Functor __f _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+{
+ typedef _Maybe_wrap_member_pointer<_Functor> __maybe_type;
+ typedef typename __maybe_type::type __functor_type;
+ typedef _Bind<__functor_type(_GLIBCXX_TEMPLATE_ARGS)> __result_type;
+ return __result_type(__maybe_type::__do_wrap(__f)
+ _GLIBCXX_COMMA _GLIBCXX_ARGS);
+}
+
+template<typename _Result, typename _Functor
+ _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+inline
+_Bind_result<_Result,
+ typename _Maybe_wrap_member_pointer<_Functor>::type
+ (_GLIBCXX_TEMPLATE_ARGS)>
+bind(_Functor __f _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+{
+ typedef _Maybe_wrap_member_pointer<_Functor> __maybe_type;
+ typedef typename __maybe_type::type __functor_type;
+ typedef _Bind_result<_Result, __functor_type(_GLIBCXX_TEMPLATE_ARGS)>
+ __result_type;
+ return __result_type(__maybe_type::__do_wrap(__f)
+ _GLIBCXX_COMMA _GLIBCXX_ARGS);
+}
+
+template<typename _Res, typename _Functor _GLIBCXX_COMMA
+ _GLIBCXX_TEMPLATE_PARAMS>
+class _Function_handler<_Res(_GLIBCXX_TEMPLATE_ARGS), _Functor>
+ : public _Function_base::_Base_manager<_Functor>
+{
+ typedef _Function_base::_Base_manager<_Functor> _Base;
+
+ public:
+ static _Res
+ _M_invoke(const _Any_data& __functor _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ {
+ return (*_Base::_M_get_pointer(__functor))(_GLIBCXX_ARGS);
+ }
+};
+
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class _Function_handler<void(_GLIBCXX_TEMPLATE_ARGS), _Functor>
+ : public _Function_base::_Base_manager<_Functor>
+{
+ typedef _Function_base::_Base_manager<_Functor> _Base;
+
+ public:
+ static void
+ _M_invoke(const _Any_data& __functor _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ {
+ (*_Base::_M_get_pointer(__functor))(_GLIBCXX_ARGS);
+ }
+};
+
+template<typename _Res, typename _Functor _GLIBCXX_COMMA
+ _GLIBCXX_TEMPLATE_PARAMS>
+class _Function_handler<_Res(_GLIBCXX_TEMPLATE_ARGS),
+ reference_wrapper<_Functor> >
+ : public _Function_base::_Ref_manager<_Functor>
+{
+ typedef _Function_base::_Ref_manager<_Functor> _Base;
+
+ public:
+ static _Res
+ _M_invoke(const _Any_data& __functor _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ {
+ return __callable_functor(**_Base::_M_get_pointer(__functor))
+ (_GLIBCXX_ARGS);
+ }
+};
+
+template<typename _Functor _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class _Function_handler<void(_GLIBCXX_TEMPLATE_ARGS),
+ reference_wrapper<_Functor> >
+ : public _Function_base::_Ref_manager<_Functor>
+{
+ typedef _Function_base::_Ref_manager<_Functor> _Base;
+
+ public:
+ static void
+ _M_invoke(const _Any_data& __functor _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ {
+ __callable_functor(**_Base::_M_get_pointer(__functor))(_GLIBCXX_ARGS);
+ }
+};
+
+template<typename _Class, typename _Member, typename _Res
+ _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class _Function_handler<_Res(_GLIBCXX_TEMPLATE_ARGS), _Member _Class::*>
+ : public _Function_handler<void(_GLIBCXX_TEMPLATE_ARGS), _Member _Class::*>
+{
+ typedef _Function_handler<void(_GLIBCXX_TEMPLATE_ARGS), _Member _Class::*>
+ _Base;
+
+ public:
+ static _Res
+ _M_invoke(const _Any_data& __functor _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ {
+ return std::tr1::mem_fn(_Base::_M_get_pointer(__functor)->__value)
+ (_GLIBCXX_ARGS);
+ }
+};
+
+template<typename _Class, typename _Member
+ _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class _Function_handler<void(_GLIBCXX_TEMPLATE_ARGS), _Member _Class::*>
+ : public _Function_base::_Base_manager<
+ _Simple_type_wrapper< _Member _Class::* > >
+{
+ typedef _Member _Class::* _Functor;
+ typedef _Simple_type_wrapper< _Functor > _Wrapper;
+ typedef _Function_base::_Base_manager<_Wrapper> _Base;
+
+ public:
+ static bool
+ _M_manager(_Any_data& __dest, const _Any_data& __source,
+ _Manager_operation __op)
+ {
+ switch (__op) {
+ case __get_type_info:
+ __dest._M_access<const type_info*>() = &typeid(_Functor);
+ break;
+
+ case __get_functor_ptr:
+ __dest._M_access<_Functor*>() =
+ &_Base::_M_get_pointer(__source)->__value;
+ break;
+
+ default:
+ _Base::_M_manager(__dest, __source, __op);
+ }
+ return false;
+ }
+
+ static void
+ _M_invoke(const _Any_data& __functor _GLIBCXX_COMMA _GLIBCXX_PARAMS)
+ {
+ std::tr1::mem_fn(_Base::_M_get_pointer(__functor)->__value)
+ (_GLIBCXX_ARGS);
+ }
+};
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class function<_Res(_GLIBCXX_TEMPLATE_ARGS)>
+#if _GLIBCXX_NUM_ARGS == 1
+ : public unary_function<_T1, _Res>, private _Function_base
+#elif _GLIBCXX_NUM_ARGS == 2
+ : public binary_function<_T1, _T2, _Res>, private _Function_base
+#else
+ : private _Function_base
+#endif
+{
+ /**
+ * @if maint
+ * This class is used to implement the safe_bool idiom.
+ * @endif
+ */
+ struct _Hidden_type
+ {
+ _Hidden_type* _M_bool;
+ };
+
+ /**
+ * @if maint
+ * This typedef is used to implement the safe_bool idiom.
+ * @endif
+ */
+ typedef _Hidden_type* _Hidden_type::* _Safe_bool;
+
+ typedef _Res _Signature_type(_GLIBCXX_TEMPLATE_ARGS);
+
+ struct _Useless {};
+
+ public:
+ typedef _Res result_type;
+
+ // [3.7.2.1] construct/copy/destroy
+
+ /**
+ * @brief Default construct creates an empty function call wrapper.
+ * @post @c !(bool)*this
+ */
+ function() : _Function_base() { }
+
+ /**
+ * @brief Default construct creates an empty function call wrapper.
+ * @post @c !(bool)*this
+ */
+ function(_M_clear_type*) : _Function_base() { }
+
+ /**
+ * @brief %Function copy constructor.
+ * @param x A %function object with identical call signature.
+ * @pre @c (bool)*this == (bool)x
+ *
+ * The newly-created %function contains a copy of the target of @a
+ * x (if it has one).
+ */
+ function(const function& __x);
+
+ /**
+ * @brief Builds a %function that targets a copy of the incoming
+ * function object.
+ * @param f A %function object that is callable with parameters of
+ * type @c T1, @c T2, ..., @c TN and returns a value convertible
+ * to @c Res.
+ *
+ * The newly-created %function object will target a copy of @a
+ * f. If @a f is @c reference_wrapper<F>, then this function
+ * object will contain a reference to the function object @c
+ * f.get(). If @a f is a NULL function pointer or NULL
+ * pointer-to-member, the newly-created object will be empty.
+ *
+ * If @a f is a non-NULL function pointer or an object of type @c
+ * reference_wrapper<F>, this function will not throw.
+ */
+ template<typename _Functor>
+ function(_Functor __f,
+ typename __enable_if<_Useless,
+ !is_integral<_Functor>::value>::__type
+ = _Useless());
+
+ /**
+ * @brief %Function assignment operator.
+ * @param x A %function with identical call signature.
+ * @post @c (bool)*this == (bool)x
+ * @returns @c *this
+ *
+ * The target of @a x is copied to @c *this. If @a x has no
+ * target, then @c *this will be empty.
+ *
+ * If @a x targets a function pointer or a reference to a function
+ * object, then this operation will not throw an exception.
+ */
+ function& operator=(const function& __x)
+ {
+ function(__x).swap(*this);
+ return *this;
+ }
+
+ /**
+ * @brief %Function assignment to zero.
+ * @post @c !(bool)*this
+ * @returns @c *this
+ *
+ * The target of @a *this is deallocated, leaving it empty.
+ */
+ function& operator=(_M_clear_type*)
+ {
+ if (_M_manager) {
+ _M_manager(_M_functor, _M_functor, __destroy_functor);
+ _M_manager = 0;
+ _M_invoker = 0;
+ }
+ return *this;
+ }
+
+ /**
+ * @brief %Function assignment to a new target.
+ * @param f A %function object that is callable with parameters of
+ * type @c T1, @c T2, ..., @c TN and returns a value convertible
+ * to @c Res.
+ * @return @c *this
+ *
+ * This %function object wrapper will target a copy of @a
+ * f. If @a f is @c reference_wrapper<F>, then this function
+ * object will contain a reference to the function object @c
+ * f.get(). If @a f is a NULL function pointer or NULL
+ * pointer-to-member, @c this object will be empty.
+ *
+ * If @a f is a non-NULL function pointer or an object of type @c
+ * reference_wrapper<F>, this function will not throw.
+ */
+ template<typename _Functor>
+ typename __enable_if<function&, !is_integral<_Functor>::value>::__type
+ operator=(_Functor __f)
+ {
+ function(__f).swap(*this);
+ return *this;
+ }
+
+ // [3.7.2.2] function modifiers
+
+ /**
+ * @brief Swap the targets of two %function objects.
+ * @param f A %function with identical call signature.
+ *
+ * Swap the targets of @c this function object and @a f. This
+ * function will not throw an exception.
+ */
+ void swap(function& __x)
+ {
+ _Any_data __old_functor = _M_functor;
+ _M_functor = __x._M_functor;
+ __x._M_functor = __old_functor;
+ _Manager_type __old_manager = _M_manager;
+ _M_manager = __x._M_manager;
+ __x._M_manager = __old_manager;
+ _Invoker_type __old_invoker = _M_invoker;
+ _M_invoker = __x._M_invoker;
+ __x._M_invoker = __old_invoker;
+ }
+
+ // [3.7.2.3] function capacity
+
+ /**
+ * @brief Determine if the %function wrapper has a target.
+ *
+ * @return @c true when this %function object contains a target,
+ * or @c false when it is empty.
+ *
+ * This function will not throw an exception.
+ */
+ operator _Safe_bool() const
+ {
+ if (_M_empty())
+ {
+ return 0;
+ }
+ else
+ {
+ return &_Hidden_type::_M_bool;
+ }
+ }
+
+ // [3.7.2.4] function invocation
+
+ /**
+ * @brief Invokes the function targeted by @c *this.
+ * @returns the result of the target.
+ * @throws bad_function_call when @c !(bool)*this
+ *
+ * The function call operator invokes the target function object
+ * stored by @c this.
+ */
+ _Res operator()(_GLIBCXX_PARAMS) const;
+
+ // [3.7.2.5] function target access
+ /**
+ * @brief Determine the type of the target of this function object
+ * wrapper.
+ *
+ * @returns the type identifier of the target function object, or
+ * @c typeid(void) if @c !(bool)*this.
+ *
+ * This function will not throw an exception.
+ */
+ const type_info& target_type() const;
+
+ /**
+ * @brief Access the stored target function object.
+ *
+ * @return Returns a pointer to the stored target function object,
+ * if @c typeid(Functor).equals(target_type()); otherwise, a NULL
+ * pointer.
+ *
+ * This function will not throw an exception.
+ */
+ template<typename _Functor> _Functor* target();
+
+ /**
+ * @overload
+ */
+ template<typename _Functor> const _Functor* target() const;
+
+ private:
+ // [3.7.2.6] undefined operators
+ template<typename _Function>
+ void operator==(const function<_Function>&) const;
+ template<typename _Function>
+ void operator!=(const function<_Function>&) const;
+
+ typedef _Res (*_Invoker_type)(const _Any_data& _GLIBCXX_COMMA
+ _GLIBCXX_PARAMS);
+ _Invoker_type _M_invoker;
+};
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ function<_Res(_GLIBCXX_TEMPLATE_ARGS)>::function(const function& __x)
+ : _Function_base()
+ {
+ if (__x) {
+ _M_invoker = __x._M_invoker;
+ _M_manager = __x._M_manager;
+ __x._M_manager(_M_functor, __x._M_functor, __clone_functor);
+ }
+ }
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+template<typename _Functor>
+ function<_Res(_GLIBCXX_TEMPLATE_ARGS)>
+ ::function(_Functor __f,
+ typename __enable_if<_Useless,
+ !is_integral<_Functor>::value>::__type)
+ : _Function_base()
+{
+ typedef _Function_handler<_Signature_type, _Functor> _My_handler;
+ if (_My_handler::_M_not_empty_function(__f)) {
+ _M_invoker = &_My_handler::_M_invoke;
+ _M_manager = &_My_handler::_M_manager;
+ _My_handler::_M_init_functor(_M_functor, __f);
+ }
+}
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ _Res
+ function<_Res(_GLIBCXX_TEMPLATE_ARGS)>::operator()(_GLIBCXX_PARAMS) const
+ {
+ if (_M_empty())
+ {
+#if __EXCEPTIONS
+ throw bad_function_call();
+#else
+ std::abort();
+#endif
+ }
+ return _M_invoker(_M_functor _GLIBCXX_COMMA _GLIBCXX_ARGS);
+ }
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+ const type_info&
+ function<_Res(_GLIBCXX_TEMPLATE_ARGS)>::target_type() const
+ {
+ if (_M_manager)
+ {
+ _Any_data __typeinfo_result;
+ _M_manager(__typeinfo_result, _M_functor, __get_type_info);
+ return *__typeinfo_result._M_access<const type_info*>();
+ }
+ else
+ {
+ return typeid(void);
+ }
+ }
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+template<typename _Functor>
+ _Functor*
+ function<_Res(_GLIBCXX_TEMPLATE_ARGS)>::target()
+ {
+ if (typeid(_Functor) == target_type() && _M_manager)
+ {
+ _Any_data __ptr;
+ if (_M_manager(__ptr, _M_functor, __get_functor_ptr)
+ && !is_const<_Functor>::value)
+ return 0;
+ else
+ return __ptr._M_access<_Functor*>();
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+template<typename _Res _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+template<typename _Functor>
+ const _Functor*
+ function<_Res(_GLIBCXX_TEMPLATE_ARGS)>::target() const
+ {
+ if (typeid(_Functor) == target_type() && _M_manager)
+ {
+ _Any_data __ptr;
+ _M_manager(__ptr, _M_functor, __get_functor_ptr);
+ return __ptr._M_access<const _Functor*>();
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
diff --git a/libstdc++-v3/include/tr1/hashtable b/libstdc++-v3/include/tr1/hashtable
new file mode 100644
index 00000000000..c015e9edf69
--- /dev/null
+++ b/libstdc++-v3/include/tr1/hashtable
@@ -0,0 +1,1431 @@
+// Internal header for TR1 unordered_set and unordered_map -*- C++ -*-
+
+// Copyright (C) 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
+// 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.
+
+/** @file
+ * This is a TR1 C++ Library header.
+ */
+
+// This header file defines std::tr1::hashtable, which is used to
+// implement std::tr1::unordered_set, std::tr1::unordered_map,
+// std::tr1::unordered_multiset, and std::tr1::unordered_multimap.
+// hashtable has many template parameters, partly to accommodate
+// the differences between those four classes and partly to
+// accommodate policy choices that go beyond what TR1 calls for.
+
+// ??? Arguably this should be Internal::hashtable, not std::tr1::hashtable.
+
+// Class template hashtable attempts to encapsulate all reasonable
+// variation among hash tables that use chaining. It does not handle
+// open addressing.
+
+// References:
+// M. Austern, "A Proposal to Add Hash Tables to the Standard
+// Library (revision 4)," WG21 Document N1456=03-0039, 2003.
+// D. E. Knuth, The Art of Computer Programming, v. 3, Sorting and Searching.
+// A. Tavori and V. Dreizin, "Generic Associative Containers", 2004.
+// ??? Full citation?
+
+#ifndef GNU_LIBSTDCXX_TR1_HASHTABLE_
+#define GNU_LIBSTDCXX_TR1_HASHTABLE_
+
+#include <utility> // For std::pair
+#include <iterator>
+#include <cstddef>
+#include <cstdlib>
+#include <cmath>
+#include <tr1/type_traits> // For true_type and false_type
+
+//----------------------------------------------------------------------
+// General utilities
+
+namespace Internal {
+template <bool Flag, typename IfTrue, typename IfFalse> struct IF;
+
+template <typename IfTrue, typename IfFalse>
+struct IF <true, IfTrue, IfFalse> { typedef IfTrue type; };
+
+template <typename IfTrue, typename IfFalse>
+struct IF <false, IfTrue, IfFalse> { typedef IfFalse type; };
+
+// Helper function: return distance(first, last) for forward
+// iterators, or 0 for input iterators.
+
+template <class Iterator>
+inline typename std::iterator_traits<Iterator>::difference_type
+distance_fw (Iterator first, Iterator last, std::input_iterator_tag)
+{
+ return 0;
+}
+
+template <class Iterator>
+inline typename std::iterator_traits<Iterator>::difference_type
+distance_fw (Iterator first, Iterator last, std::forward_iterator_tag)
+{
+ return std::distance(first, last);
+}
+
+template <class Iterator>
+inline typename std::iterator_traits<Iterator>::difference_type
+distance_fw (Iterator first, Iterator last)
+{
+ typedef typename std::iterator_traits<Iterator>::iterator_category tag;
+ return distance_fw(first, last, tag());
+}
+
+} // namespace Internal
+
+//----------------------------------------------------------------------
+// Auxiliary types used for all instantiations of hashtable: nodes
+// and iterators.
+
+// Nodes, used to wrap elements stored in the hash table. A policy
+// template parameter of class template hashtable controls whether
+// nodes also store a hash code. In some cases (e.g. strings) this may
+// be a performance win.
+
+namespace Internal {
+
+template <typename Value, bool cache_hash_code> struct hash_node;
+
+template <typename Value>
+struct hash_node<Value, true> {
+ Value m_v;
+ std::size_t hash_code;
+ hash_node* m_next;
+};
+
+template <typename Value>
+struct hash_node<Value, false> {
+ Value m_v;
+ hash_node* m_next;
+};
+
+// Local iterators, used to iterate within a bucket but not between
+// buckets.
+
+template <typename Value, bool cache>
+struct node_iterator_base {
+ node_iterator_base(hash_node<Value, cache>* p) : m_cur(p) { }
+ void incr() { m_cur = m_cur->m_next; }
+
+ hash_node<Value, cache>* m_cur;
+};
+
+template <typename Value, bool cache>
+inline bool operator== (const node_iterator_base<Value, cache>& x,
+ const node_iterator_base<Value, cache>& y)
+{
+ return x.m_cur == y.m_cur;
+}
+
+template <typename Value, bool cache>
+inline bool operator!= (const node_iterator_base<Value, cache>& x,
+ const node_iterator_base<Value, cache>& y)
+{
+ return x.m_cur != y.m_cur;
+}
+
+template <typename Value, bool is_const, bool cache>
+struct node_iterator : public node_iterator_base<Value, cache> {
+ typedef Value value_type;
+ typedef typename IF<is_const, const Value*, Value*>::type pointer;
+ typedef typename IF<is_const, const Value&, Value&>::type reference;
+ typedef std::ptrdiff_t difference_type;
+ typedef std::forward_iterator_tag iterator_category;
+
+ explicit node_iterator (hash_node<Value, cache>* p = 0)
+ : node_iterator_base<Value, cache>(p) { }
+ node_iterator (const node_iterator<Value, true, cache>& x)
+ : node_iterator_base<Value, cache>(x.m_cur) { }
+
+ reference operator*() const { return this->m_cur->m_v; }
+ pointer operator->() const { return &this->m_cur->m_v; }
+
+ node_iterator& operator++() { this->incr(); return *this; }
+ node_iterator operator++(int)
+ { node_iterator tmp(*this); this->incr(); return tmp; }
+};
+
+template <typename Value, bool cache>
+struct hashtable_iterator_base {
+ hashtable_iterator_base(hash_node<Value, cache>* node,
+ hash_node<Value, cache>** bucket)
+ : m_cur_node (node), m_cur_bucket (bucket)
+ { }
+
+ void incr() {
+ m_cur_node = m_cur_node->m_next;
+ if (!m_cur_node)
+ m_incr_bucket();
+ }
+
+ void m_incr_bucket();
+
+ hash_node<Value, cache>* m_cur_node;
+ hash_node<Value, cache>** m_cur_bucket;
+};
+
+
+// Global iterators, used for arbitrary iteration within a hash
+// table. Larger and more expensive than local iterators.
+
+template <typename Value, bool cache>
+void hashtable_iterator_base<Value, cache>::m_incr_bucket()
+{
+ ++m_cur_bucket;
+
+ // This loop requires the bucket array to have a non-null sentinel
+ while (!*m_cur_bucket)
+ ++m_cur_bucket;
+ m_cur_node = *m_cur_bucket;
+}
+
+template <typename Value, bool cache>
+inline bool operator== (const hashtable_iterator_base<Value, cache>& x,
+ const hashtable_iterator_base<Value, cache>& y)
+{
+ return x.m_cur_node == y.m_cur_node;
+}
+
+template <typename Value, bool cache>
+inline bool operator!= (const hashtable_iterator_base<Value, cache>& x,
+ const hashtable_iterator_base<Value, cache>& y)
+{
+ return x.m_cur_node != y.m_cur_node;
+}
+
+template <typename Value, bool is_const, bool cache>
+struct hashtable_iterator : public hashtable_iterator_base<Value, cache>
+{
+ typedef Value value_type;
+ typedef typename IF<is_const, const Value*, Value*>::type pointer;
+ typedef typename IF<is_const, const Value&, Value&>::type reference;
+ typedef std::ptrdiff_t difference_type;
+ typedef std::forward_iterator_tag iterator_category;
+
+ hashtable_iterator (hash_node<Value, cache>* p, hash_node<Value, cache>** b)
+ : hashtable_iterator_base<Value, cache>(p, b) { }
+ hashtable_iterator (hash_node<Value, cache>** b)
+ : hashtable_iterator_base<Value, cache>(*b, b) { }
+ hashtable_iterator (const hashtable_iterator<Value, true, cache>& x)
+ : hashtable_iterator_base<Value, cache>(x.m_cur_node, x.m_cur_bucket) { }
+
+ reference operator*() const { return this->m_cur_node->m_v; }
+ pointer operator->() const { return &this->m_cur_node->m_v; }
+
+ hashtable_iterator& operator++() { this->incr(); return *this; }
+ hashtable_iterator operator++(int)
+ { hashtable_iterator tmp(*this); this->incr(); return tmp; }
+};
+
+} // namespace Internal
+
+// ----------------------------------------------------------------------
+// Many of class template hashtable's template parameters are policy
+// classes. These are defaults for the policies.
+
+namespace Internal {
+
+// The two key extraction policies used by the *set and *map variants.
+template <typename T>
+struct identity {
+ T operator()(const T& t) const { return t; }
+};
+
+template <typename Pair>
+struct extract1st {
+ typename Pair::first_type operator()(const Pair& p) const { return p.first; }
+};
+
+// Default range hashing function: use division to fold a large number
+// into the range [0, N).
+struct mod_range_hashing
+{
+ typedef std::size_t first_argument_type;
+ typedef std::size_t second_argument_type;
+ typedef std::size_t result_type;
+
+ result_type operator() (first_argument_type r, second_argument_type N) const
+ { return r % N; }
+};
+
+// Default ranged hash function H. In principle it should be a
+// function object composed from objects of type H1 and H2 such that
+// h(k, N) = h2(h1(k), N), but that would mean making extra copies of
+// h1 and h2. So instead we'll just use a tag to tell class template
+// hashtable to do that composition.
+struct default_ranged_hash { };
+
+// Default value for rehash policy. Bucket size is (usually) the
+// smallest prime that keeps the load factor small enough.
+
+struct prime_rehash_policy
+{
+ prime_rehash_policy (float z = 1.0);
+
+ float max_load_factor() const;
+
+ // Return a bucket size no smaller than n.
+ std::size_t next_bkt (std::size_t n) const;
+
+ // Return a bucket count appropriate for n elements
+ std::size_t bkt_for_elements (std::size_t n) const;
+
+ // n_bkt is current bucket count, n_elt is current element count,
+ // and n_ins is number of elements to be inserted. Do we need to
+ // increase bucket count? If so, return make_pair(true, n), where n
+ // is the new bucket count. If not, return make_pair(false, 0).
+ std::pair<bool, std::size_t>
+ need_rehash (std::size_t n_bkt, std::size_t n_elt, std::size_t n_ins) const;
+
+ float m_max_load_factor;
+ float m_growth_factor;
+ mutable std::size_t m_next_resize;
+};
+
+// XXX This is a hack. prime_rehash_policy's member functions, and
+// certainly the list of primes, should be defined in a .cc file.
+// We're temporarily putting them in a header because we don't have a
+// place to put TR1 .cc files yet. There's no good reason for any of
+// prime_rehash_policy's member functions to be inline, and there's
+// certainly no good reason for X<> to exist at all.
+
+struct lt {
+ template <typename X, typename Y> bool operator()(X x, Y y) { return x < y; }
+};
+
+template <int dummy>
+struct X {
+ static const int n_primes = 256;
+ static const unsigned long primes[n_primes + 1];
+};
+
+template <int dummy>
+const int X<dummy>::n_primes;
+
+template <int dummy>
+const unsigned long X<dummy>::primes[n_primes + 1] =
+ {
+ 2ul, 3ul, 5ul, 7ul, 11ul, 13ul, 17ul, 19ul, 23ul, 29ul, 31ul,
+ 37ul, 41ul, 43ul, 47ul, 53ul, 59ul, 61ul, 67ul, 71ul, 73ul, 79ul,
+ 83ul, 89ul, 97ul, 103ul, 109ul, 113ul, 127ul, 137ul, 139ul, 149ul,
+ 157ul, 167ul, 179ul, 193ul, 199ul, 211ul, 227ul, 241ul, 257ul,
+ 277ul, 293ul, 313ul, 337ul, 359ul, 383ul, 409ul, 439ul, 467ul,
+ 503ul, 541ul, 577ul, 619ul, 661ul, 709ul, 761ul, 823ul, 887ul,
+ 953ul, 1031ul, 1109ul, 1193ul, 1289ul, 1381ul, 1493ul, 1613ul,
+ 1741ul, 1879ul, 2029ul, 2179ul, 2357ul, 2549ul, 2753ul, 2971ul,
+ 3209ul, 3469ul, 3739ul, 4027ul, 4349ul, 4703ul, 5087ul, 5503ul,
+ 5953ul, 6427ul, 6949ul, 7517ul, 8123ul, 8783ul, 9497ul, 10273ul,
+ 11113ul, 12011ul, 12983ul, 14033ul, 15173ul, 16411ul, 17749ul,
+ 19183ul, 20753ul, 22447ul, 24281ul, 26267ul, 28411ul, 30727ul,
+ 33223ul, 35933ul, 38873ul, 42043ul, 45481ul, 49201ul, 53201ul,
+ 57557ul, 62233ul, 67307ul, 72817ul, 78779ul, 85229ul, 92203ul,
+ 99733ul, 107897ul, 116731ul, 126271ul, 136607ul, 147793ul,
+ 159871ul, 172933ul, 187091ul, 202409ul, 218971ul, 236897ul,
+ 256279ul, 277261ul, 299951ul, 324503ul, 351061ul, 379787ul,
+ 410857ul, 444487ul, 480881ul, 520241ul, 562841ul, 608903ul,
+ 658753ul, 712697ul, 771049ul, 834181ul, 902483ul, 976369ul,
+ 1056323ul, 1142821ul, 1236397ul, 1337629ul, 1447153ul, 1565659ul,
+ 1693859ul, 1832561ul, 1982627ul, 2144977ul, 2320627ul, 2510653ul,
+ 2716249ul, 2938679ul, 3179303ul, 3439651ul, 3721303ul, 4026031ul,
+ 4355707ul, 4712381ul, 5098259ul, 5515729ul, 5967347ul, 6456007ul,
+ 6984629ul, 7556579ul, 8175383ul, 8844859ul, 9569143ul, 10352717ul,
+ 11200489ul, 12117689ul, 13109983ul, 14183539ul, 15345007ul,
+ 16601593ul, 17961079ul, 19431899ul, 21023161ul, 22744717ul,
+ 24607243ul, 26622317ul, 28802401ul, 31160981ul, 33712729ul,
+ 36473443ul, 39460231ul, 42691603ul, 46187573ul, 49969847ul,
+ 54061849ul, 58488943ul, 63278561ul, 68460391ul, 74066549ul,
+ 80131819ul, 86693767ul, 93793069ul, 101473717ul, 109783337ul,
+ 118773397ul, 128499677ul, 139022417ul, 150406843ul, 162723577ul,
+ 176048909ul, 190465427ul, 206062531ul, 222936881ul, 241193053ul,
+ 260944219ul, 282312799ul, 305431229ul, 330442829ul, 357502601ul,
+ 386778277ul, 418451333ul, 452718089ul, 489790921ul, 529899637ul,
+ 573292817ul, 620239453ul, 671030513ul, 725980837ul, 785430967ul,
+ 849749479ul, 919334987ul, 994618837ul, 1076067617ul, 1164186217ul,
+ 1259520799ul, 1362662261ul, 1474249943ul, 1594975441ul,
+ 1725587117ul, 1866894511ul, 2019773507ul, 2185171673ul,
+ 2364114217ul, 2557710269ul, 2767159799ul, 2993761039ul,
+ 3238918481ul, 3504151727ul, 3791104843ul, 4101556399ul,
+ 4294967291ul,
+ 4294967291ul // sentinel so we don't have to test result of lower_bound
+ };
+
+inline prime_rehash_policy::prime_rehash_policy (float z)
+ : m_max_load_factor(z),
+ m_growth_factor (2.f),
+ m_next_resize (0)
+{ }
+
+inline float prime_rehash_policy::max_load_factor() const
+{
+ return m_max_load_factor;
+}
+
+// Return a prime no smaller than n.
+inline std::size_t prime_rehash_policy::next_bkt (std::size_t n) const
+{
+ const unsigned long* const last = X<0>::primes + X<0>::n_primes;
+ const unsigned long* p = std::lower_bound (X<0>::primes, last, n);
+ m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
+ return *p;
+}
+
+// Return the smallest prime p such that alpha p >= n, where alpha
+// is the load factor.
+inline std::size_t prime_rehash_policy::bkt_for_elements (std::size_t n) const
+{
+ const unsigned long* const last = X<0>::primes + X<0>::n_primes;
+ const float min_bkts = n / m_max_load_factor;
+ const unsigned long* p = std::lower_bound (X<0>::primes, last, min_bkts, lt());
+ m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
+ return *p;
+}
+
+// Finds the smallest prime p such that alpha p > n_elt + n_ins.
+// If p > n_bkt, return make_pair(true, p); otherwise return
+// make_pair(false, 0). In principle this isn't very different from
+// bkt_for_elements.
+
+// The only tricky part is that we're caching the element count at
+// which we need to rehash, so we don't have to do a floating-point
+// multiply for every insertion.
+
+inline std::pair<bool, std::size_t>
+prime_rehash_policy
+::need_rehash (std::size_t n_bkt, std::size_t n_elt, std::size_t n_ins) const
+{
+ if (n_elt + n_ins > m_next_resize) {
+ float min_bkts = (float(n_ins) + float(n_elt)) / m_max_load_factor;
+ if (min_bkts > n_bkt) {
+ min_bkts = std::max (min_bkts, m_growth_factor * n_bkt);
+ const unsigned long* const last = X<0>::primes + X<0>::n_primes;
+ const unsigned long* p = std::lower_bound (X<0>::primes, last, min_bkts, lt());
+ m_next_resize = static_cast<std::size_t>(std::ceil(*p * m_max_load_factor));
+ return std::make_pair(true, *p);
+ }
+ else {
+ m_next_resize = static_cast<std::size_t>(std::ceil(n_bkt * m_max_load_factor));
+ return std::make_pair(false, 0);
+ }
+ }
+ else
+ return std::make_pair(false, 0);
+}
+
+} // namespace Internal
+
+//----------------------------------------------------------------------
+// Base classes for std::tr1::hashtable. We define these base classes
+// because in some cases we want to do different things depending on
+// the value of a policy class. In some cases the policy class affects
+// which member functions and nested typedefs are defined; we handle that
+// by specializing base class templates. Several of the base class templates
+// need to access other members of class template hashtable, so we use
+// the "curiously recurring template pattern" for them.
+
+namespace Internal {
+
+// class template map_base. If the hashtable has a value type of the
+// form pair<T1, T2> and a key extraction policy that returns the
+// first part of the pair, the hashtable gets a mapped_type typedef.
+// If it satisfies those criteria and also has unique keys, then it
+// also gets an operator[].
+
+template <typename K, typename V, typename Ex, bool unique, typename Hashtable>
+struct map_base { };
+
+template <typename K, typename Pair, typename Hashtable>
+struct map_base<K, Pair, extract1st<Pair>, false, Hashtable>
+{
+ typedef typename Pair::second_type mapped_type;
+};
+
+template <typename K, typename Pair, typename Hashtable>
+struct map_base<K, Pair, extract1st<Pair>, true, Hashtable>
+{
+ typedef typename Pair::second_type mapped_type;
+ mapped_type& operator[](const K& k) {
+ Hashtable* h = static_cast<Hashtable*>(this);
+ typename Hashtable::iterator it = h->insert(std::make_pair(k, mapped_type())).first;
+ return it->second;
+ }
+};
+
+// class template rehash_base. Give hashtable the max_load_factor
+// functions iff the rehash policy is prime_rehash_policy.
+template <typename RehashPolicy, typename Hashtable>
+struct rehash_base { };
+
+template <typename Hashtable>
+struct rehash_base<prime_rehash_policy, Hashtable>
+{
+ float max_load_factor() const {
+ const Hashtable* This = static_cast<const Hashtable*>(this);
+ return This->rehash_policy()->max_load_factor();
+ }
+
+ void max_load_factor(float z) {
+ Hashtable* This = static_cast<Hashtable*>(this);
+ This->rehash_policy(prime_rehash_policy(z));
+ }
+};
+
+// Class template hash_code_base. Encapsulates two policy issues that
+// aren't quite orthogonal.
+// (1) the difference between using a ranged hash function and using
+// the combination of a hash function and a range-hashing function.
+// In the former case we don't have such things as hash codes, so
+// we have a dummy type as placeholder.
+// (2) Whether or not we cache hash codes. Caching hash codes is
+// meaningless if we have a ranged hash function.
+// We also put the key extraction and equality comparison function
+// objects here, for convenience.
+
+// Primary template: unused except as a hook for specializations.
+
+template <typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2, typename H,
+ bool cache_hash_code>
+struct hash_code_base;
+
+// Specialization: ranged hash function, no caching hash codes. H1
+// and H2 are provided but ignored. We define a dummy hash code type.
+template <typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2, typename H>
+struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, H, false>
+{
+protected:
+ hash_code_base (const ExtractKey& ex, const Equal& eq,
+ const H1&, const H2&, const H& h)
+ : m_extract(ex), m_eq(eq), m_ranged_hash(h) { }
+
+ typedef void* hash_code_t;
+ hash_code_t m_hash_code (const Key& k) const { return 0; }
+ std::size_t bucket_index (const Key& k, hash_code_t, std::size_t N) const
+ { return m_ranged_hash (k, N); }
+ std::size_t bucket_index (const hash_node<Value, false>* p, std::size_t N) const {
+ return m_ranged_hash (m_extract (p->m_v), N);
+ }
+
+ bool compare (const Key& k, hash_code_t, hash_node<Value, false>* n) const
+ { return m_eq (k, m_extract(n->m_v)); }
+
+ void copy_code (hash_node<Value, false>*, const hash_node<Value, false>*) const { }
+
+ void m_swap(hash_code_base& x) {
+ m_extract.m_swap(x);
+ m_eq.m_swap(x);
+ m_ranged_hash.m_swap(x);
+ }
+
+protected:
+ ExtractKey m_extract;
+ Equal m_eq;
+ H m_ranged_hash;
+};
+
+
+// No specialization for ranged hash function while caching hash codes.
+// That combination is meaningless, and trying to do it is an error.
+
+
+// Specialization: ranged hash function, cache hash codes. This
+// combination is meaningless, so we provide only a declaration
+// and no definition.
+
+template <typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2, typename H>
+struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, H, true>;
+
+
+// Specialization: hash function and range-hashing function, no
+// caching of hash codes. H is provided but ignored. Provides
+// typedef and accessor required by TR1.
+
+template <typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2>
+struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, default_ranged_hash, false>
+{
+ typedef H1 hasher;
+ hasher hash_function() const { return m_h1; }
+
+protected:
+ hash_code_base (const ExtractKey& ex, const Equal& eq,
+ const H1& h1, const H2& h2, const default_ranged_hash&)
+ : m_extract(ex), m_eq(eq), m_h1(h1), m_h2(h2) { }
+
+ typedef std::size_t hash_code_t;
+ hash_code_t m_hash_code (const Key& k) const { return m_h1(k); }
+ std::size_t bucket_index (const Key&, hash_code_t c, std::size_t N) const
+ { return m_h2 (c, N); }
+ std::size_t bucket_index (const hash_node<Value, false>* p, std::size_t N) const {
+ return m_h2 (m_h1 (m_extract (p->m_v)), N);
+ }
+
+ bool compare (const Key& k, hash_code_t, hash_node<Value, false>* n) const
+ { return m_eq (k, m_extract(n->m_v)); }
+
+ void copy_code (hash_node<Value, false>*, const hash_node<Value, false>*) const { }
+
+ void m_swap(hash_code_base& x) {
+ m_extract.m_swap(x);
+ m_eq.m_swap(x);
+ m_h1.m_swap(x);
+ m_h2.m_swap(x);
+ }
+
+protected:
+ ExtractKey m_extract;
+ Equal m_eq;
+ H1 m_h1;
+ H2 m_h2;
+};
+
+// Specialization: hash function and range-hashing function,
+// caching hash codes. H is provided but ignored. Provides
+// typedef and accessor required by TR1.
+template <typename Key, typename Value,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2>
+struct hash_code_base <Key, Value, ExtractKey, Equal, H1, H2, default_ranged_hash, true>
+{
+ typedef H1 hasher;
+ hasher hash_function() const { return m_h1; }
+
+protected:
+ hash_code_base (const ExtractKey& ex, const Equal& eq,
+ const H1& h1, const H2& h2, const default_ranged_hash&)
+ : m_extract(ex), m_eq(eq), m_h1(h1), m_h2(h2) { }
+
+ typedef std::size_t hash_code_t;
+ hash_code_t m_hash_code (const Key& k) const { return m_h1(k); }
+ std::size_t bucket_index (const Key&, hash_code_t c, std::size_t N) const
+ { return m_h2 (c, N); }
+
+ std::size_t bucket_index (const hash_node<Value, true>* p, std::size_t N) const {
+ return m_h2 (p->hash_code, N);
+ }
+
+ bool compare (const Key& k, hash_code_t c, hash_node<Value, true>* n) const
+ { return c == n->hash_code && m_eq (k, m_extract(n->m_v)); }
+
+ void copy_code (hash_node<Value, true>* to, const hash_node<Value, true>* from) const
+ { to->hash_code = from->hash_code; }
+
+ void m_swap(hash_code_base& x) {
+ m_extract.m_swap(x);
+ m_eq.m_swap(x);
+ m_h1.m_swap(x);
+ m_h2.m_swap(x);
+ }
+
+protected:
+ ExtractKey m_extract;
+ Equal m_eq;
+ H1 m_h1;
+ H2 m_h2;
+};
+
+} // namespace internal
+
+namespace std { namespace tr1 {
+
+//----------------------------------------------------------------------
+// Class template hashtable, class definition.
+
+// Meaning of class template hashtable's template parameters
+
+// Key and Value: arbitrary CopyConstructible types.
+
+// Allocator: an allocator type ([lib.allocator.requirements]) whose
+// value type is Value.
+
+// ExtractKey: function object that takes a object of type Value
+// and returns a value of type Key.
+
+// Equal: function object that takes two objects of type k and returns
+// a bool-like value that is true if the two objects are considered equal.
+
+// H1: the hash function. A unary function object with argument type
+// Key and result type size_t. Return values should be distributed
+// over the entire range [0, numeric_limits<size_t>:::max()].
+
+// H2: the range-hashing function (in the terminology of Tavori and
+// Dreizin). A binary function object whose argument types and result
+// type are all size_t. Given arguments r and N, the return value is
+// in the range [0, N).
+
+// H: the ranged hash function (Tavori and Dreizin). A binary function
+// whose argument types are Key and size_t and whose result type is
+// size_t. Given arguments k and N, the return value is in the range
+// [0, N). Default: h(k, N) = h2(h1(k), N). If H is anything other
+// than the default, H1 and H2 are ignored.
+
+// RehashPolicy: Policy class with three members, all of which govern
+// the bucket count. n_bkt(n) returns a bucket count no smaller
+// than n. bkt_for_elements(n) returns a bucket count appropriate
+// for an element count of n. need_rehash(n_bkt, n_elt, n_ins)
+// determines whether, if the current bucket count is n_bkt and the
+// current element count is n_elt, we need to increase the bucket
+// count. If so, returns make_pair(true, n), where n is the new
+// bucket count. If not, returns make_pair(false, <anything>).
+
+// ??? Right now it is hard-wired that the number of buckets never
+// shrinks. Should we allow RehashPolicy to change that?
+
+// cache_hash_code: bool. true if we store the value of the hash
+// function along with the value. This is a time-space tradeoff.
+// Storing it may improve lookup speed by reducing the number of times
+// we need to call the Equal function.
+
+// mutable_iterators: bool. true if hashtable::iterator is a mutable
+// iterator, false if iterator and const_iterator are both const
+// iterators. This is true for unordered_map and unordered_multimap,
+// false for unordered_set and unordered_multiset.
+
+// unique_keys: bool. true if the return value of hashtable::count(k)
+// is always at most one, false if it may be an arbitrary number. This
+// true for unordered_set and unordered_map, false for unordered_multiset
+// and unordered_multimap.
+
+template <typename Key, typename Value,
+ typename Allocator,
+ typename ExtractKey, typename Equal,
+ typename H1, typename H2,
+ typename H, typename RehashPolicy,
+ bool cache_hash_code,
+ bool mutable_iterators,
+ bool unique_keys>
+class hashtable
+ : public Internal::rehash_base<RehashPolicy, hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys> >,
+ public Internal::hash_code_base<Key, Value, ExtractKey, Equal, H1, H2, H, cache_hash_code>,
+ public Internal::map_base<Key, Value, ExtractKey, unique_keys, hashtable<Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, mutable_iterators, unique_keys> >
+{
+public:
+ typedef Allocator allocator_type;
+ typedef Value value_type;
+ typedef Key key_type;
+ typedef Equal key_equal;
+ // mapped_type, if present, comes from map_base.
+ // hasher, if present, comes from hash_code_base.
+ typedef typename Allocator::difference_type difference_type;
+ typedef typename Allocator::size_type size_type;
+ typedef typename Allocator::reference reference;
+ typedef typename Allocator::const_reference const_reference;
+
+ typedef Internal::node_iterator<value_type, !mutable_iterators, cache_hash_code>
+ local_iterator;
+ typedef Internal::node_iterator<value_type, false, cache_hash_code>
+ const_local_iterator;
+
+ typedef Internal::hashtable_iterator<value_type, !mutable_iterators, cache_hash_code>
+ iterator;
+ typedef Internal::hashtable_iterator<value_type, false, cache_hash_code>
+ const_iterator;
+
+private:
+ typedef Internal::hash_node<Value, cache_hash_code> node;
+ typedef typename Allocator::template rebind<node>::other node_allocator_t;
+ typedef typename Allocator::template rebind<node*>::other bucket_allocator_t;
+
+private:
+ node_allocator_t m_node_allocator;
+ node** m_buckets;
+ size_type m_bucket_count;
+ size_type m_element_count;
+ RehashPolicy m_rehash_policy;
+
+ node* m_allocate_node (const value_type& v);
+ void m_deallocate_node (node* n);
+ void m_deallocate_nodes (node**, size_type);
+
+ node** m_allocate_buckets (size_type n);
+ void m_deallocate_buckets (node**, size_type n);
+
+public: // Constructor, destructor, assignment, swap
+ hashtable(size_type bucket_hint,
+ const H1&, const H2&, const H&,
+ const Equal&, const ExtractKey&,
+ const allocator_type&);
+
+ template <typename InIter>
+ hashtable(InIter first, InIter last,
+ size_type bucket_hint,
+ const H1&, const H2&, const H&,
+ const Equal&, const ExtractKey&,
+ const allocator_type&);
+
+ hashtable(const hashtable&);
+ hashtable& operator=(const hashtable&);
+ ~hashtable();
+
+ void swap(hashtable&);
+
+public: // Basic container operations
+ iterator begin() {
+ iterator i(m_buckets);
+ if (!i.m_cur_node)
+ i.m_incr_bucket();
+ return i;
+ }
+
+ const_iterator begin() const {
+ const_iterator i(m_buckets);
+ if (!i.m_cur_node)
+ i.m_incr_bucket();
+ return i;
+ }
+
+ iterator end()
+ { return iterator(m_buckets + m_bucket_count); }
+ const_iterator end() const
+ { return const_iterator(m_buckets + m_bucket_count); }
+
+ size_type size() const { return m_element_count; }
+ bool empty() const { return size() == 0; }
+
+ allocator_type get_allocator() const { return m_node_allocator; }
+ size_type max_size() const { return m_node_allocator.max_size(); }
+
+public: // Bucket operations
+ size_type bucket_count() const
+ { return m_bucket_count; }
+ size_type max_bucket_count() const
+ { return max_size(); }
+ size_type bucket_size (size_type n) const
+ { return std::distance(begin(n), end(n)); }
+ size_type bucket (const key_type& k) const
+ { return this->bucket_index (k, this->m_hash_code, this->m_bucket_count); }
+
+ local_iterator begin(size_type n)
+ { return local_iterator(m_buckets[n]); }
+ local_iterator end(size_type n)
+ { return local_iterator(0); }
+ const_local_iterator begin(size_type n) const
+ { return const_local_iterator(m_buckets[n]); }
+ const_local_iterator end(size_type n) const
+ { return const_local_iterator(0); }
+
+ float load_factor() const
+ { return static_cast<float>(size()) / static_cast<float>(bucket_count()); }
+ // max_load_factor, if present, comes from rehash_base.
+
+ // Generalization of max_load_factor. Extension, not found in TR1. Only
+ // useful if RehashPolicy is something other than the default.
+ const RehashPolicy& rehash_policy() const { return m_rehash_policy; }
+ void rehash_policy (const RehashPolicy&);
+
+public: // lookup
+ iterator find(const key_type&);
+ const_iterator find(const key_type& k) const;
+ size_type count(const key_type& k) const;
+ std::pair<iterator, iterator> equal_range(const key_type& k);
+ std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
+
+private: // Insert and erase helper functions
+ // ??? This dispatching is a workaround for the fact that we don't
+ // have partial specialization of member templates; it would be
+ // better to just specialize insert on unique_keys. There may be a
+ // cleaner workaround.
+ typedef typename Internal::IF<unique_keys, std::pair<iterator, bool>, iterator>::type
+ Insert_Return_Type;
+
+ node* find_node (node* p, const key_type& k, typename hashtable::hash_code_t c);
+
+ std::pair<iterator, bool> insert (const value_type&, std::tr1::true_type);
+ iterator insert (const value_type&, std::tr1::false_type);
+
+public: // Insert and erase
+ Insert_Return_Type insert (const value_type& v)
+ { return this->insert (v, std::tr1::integral_constant<bool, unique_keys>()); }
+ Insert_Return_Type insert (const_iterator, const value_type& v)
+ { return this->insert(v); }
+
+ template <typename InIter> void insert(InIter first, InIter last);
+
+ void erase(const_iterator);
+ size_type erase(const key_type&);
+ void erase(const_iterator, const_iterator);
+ void clear();
+
+public:
+ // Set number of buckets to be apropriate for container of n element.
+ void rehash (size_type n);
+
+private:
+ // Unconditionally change size of bucket array to n.
+ void m_rehash (size_type n);
+};
+
+//----------------------------------------------------------------------
+// Definitions of class template hashtable's out-of-line member functions.
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::node*
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_allocate_node (const value_type& v)
+{
+ node* n = m_node_allocator.allocate(1);
+ try {
+ get_allocator().construct(&n->m_v, v);
+ n->m_next = 0;
+ return n;
+ }
+ catch(...) {
+ m_node_allocator.deallocate(n, 1);
+ throw;
+ }
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_deallocate_node (node* n)
+{
+ get_allocator().destroy(&n->m_v);
+ m_node_allocator.deallocate(n, 1);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::m_deallocate_nodes (node** array, size_type n)
+{
+ for (size_type i = 0; i < n; ++i) {
+ node* p = array[i];
+ while (p) {
+ node* tmp = p;
+ p = p->m_next;
+ m_deallocate_node (tmp);
+ }
+ array[i] = 0;
+ }
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::node**
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_allocate_buckets (size_type n)
+{
+ bucket_allocator_t alloc(m_node_allocator);
+
+ // We allocate one extra bucket to hold a sentinel, an arbitrary
+ // non-null pointer. Iterator increment relies on this.
+ node** p = alloc.allocate(n+1);
+ std::fill(p, p+n, (node*) 0);
+ p[n] = reinterpret_cast<node*>(0x1000);
+ return p;
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::m_deallocate_buckets (node** p, size_type n)
+{
+ bucket_allocator_t alloc(m_node_allocator);
+ alloc.deallocate(p, n+1);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::hashtable(size_type bucket_hint,
+ const H1& h1, const H2& h2, const H& h,
+ const Eq& eq, const Ex& exk,
+ const allocator_type& a)
+ : Internal::rehash_base<RP,hashtable> (),
+ Internal::hash_code_base<K,V,Ex,Eq,H1,H2,H,c> (exk, eq, h1, h2, h),
+ Internal::map_base<K,V,Ex,u,hashtable> (),
+ m_node_allocator(a),
+ m_bucket_count (0),
+ m_element_count (0),
+ m_rehash_policy ()
+{
+ m_bucket_count = m_rehash_policy.next_bkt(bucket_hint);
+ m_buckets = m_allocate_buckets (m_bucket_count);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+template <typename InIter>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::hashtable(InIter f, InIter l,
+ size_type bucket_hint,
+ const H1& h1, const H2& h2, const H& h,
+ const Eq& eq, const Ex& exk,
+ const allocator_type& a)
+ : Internal::rehash_base<RP,hashtable> (),
+ Internal::hash_code_base<K,V,Ex,Eq,H1,H2,H,c> (exk, eq, h1, h2, h),
+ Internal::map_base<K,V,Ex,u,hashtable> (),
+ m_node_allocator(a),
+ m_bucket_count (0),
+ m_element_count (0),
+ m_rehash_policy ()
+{
+ m_bucket_count = std::max(m_rehash_policy.next_bkt(bucket_hint),
+ m_rehash_policy.bkt_for_elements(Internal::distance_fw(f, l)));
+ m_buckets = m_allocate_buckets (m_bucket_count);
+ try {
+ for (; f != l; ++f)
+ this->insert (*f);
+ }
+ catch(...) {
+ clear();
+ m_deallocate_buckets (m_buckets, m_bucket_count);
+ throw;
+ }
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::hashtable(const hashtable& ht)
+ : Internal::rehash_base<RP,hashtable> (ht),
+ Internal::hash_code_base<K,V,Ex,Eq,H1,H2,H,c> (ht),
+ Internal::map_base<K,V,Ex,u,hashtable> (ht),
+ m_node_allocator(ht.get_allocator()),
+ m_bucket_count (ht.m_bucket_count),
+ m_element_count (ht.m_element_count),
+ m_rehash_policy (ht.m_rehash_policy)
+{
+ m_buckets = m_allocate_buckets (m_bucket_count);
+ try {
+ for (size_t i = 0; i < ht.m_bucket_count; ++i) {
+ node* n = ht.m_buckets[i];
+ node** tail = m_buckets + i;
+ while (n) {
+ *tail = m_allocate_node (n);
+ (*tail).copy_code_from (n);
+ tail = &((*tail)->m_next);
+ n = n->m_next;
+ }
+ }
+ }
+ catch (...) {
+ clear();
+ m_deallocate_buckets (m_buckets, m_bucket_count);
+ throw;
+ }
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>&
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::operator= (const hashtable& ht)
+{
+ hashtable tmp(ht);
+ this->swap(tmp);
+ return *this;
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::~hashtable()
+{
+ clear();
+ m_deallocate_buckets(m_buckets, m_bucket_count);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::swap (hashtable& x)
+{
+ // The only base class with member variables is hash_code_base. We
+ // define hash_code_base::m_swap because different specializations
+ // have different members.
+ Internal::hash_code_base<K, V, Ex, Eq, H1, H2, H, c>::m_swap(x);
+
+ // open LWG issue 431
+ // std::swap(m_node_allocator, x.m_node_allocator);
+ std::swap (m_rehash_policy, x.m_rehash_policy);
+ std::swap (m_buckets, x.m_buckets);
+ std::swap (m_bucket_count, x.m_bucket_count);
+ std::swap (m_element_count, x.m_element_count);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::rehash_policy (const RP& pol)
+{
+ m_rehash_policy = pol;
+ size_type n_bkt = pol.bkt_for_elements(m_element_count);
+ if (n_bkt > m_bucket_count)
+ m_rehash (n_bkt);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::find (const key_type& k)
+{
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index (k, code, this->bucket_count());
+ node* p = find_node (m_buckets[n], k, code);
+ return p ? iterator(p, m_buckets + n) : this->end();
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::const_iterator
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::find (const key_type& k) const
+{
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index (k, code, this->bucket_count());
+ node* p = find_node (m_buckets[n], k, code);
+ return p ? const_iterator(p, m_buckets + n) : this->end();
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::size_type
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::count (const key_type& k) const
+{
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index (k, code, this->bucket_count());
+ size_t result = 0;
+ for (node* p = m_buckets[n]; p ; p = p->m_next)
+ if (this->compare (k, code, p))
+ ++result;
+ return result;
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+std::pair<typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator,
+ typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::equal_range (const key_type& k)
+{
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index (k, code, this->bucket_count());
+ node** head = m_buckets + n;
+ node* p = find_node (*head, k, code);
+
+ if (p) {
+ node* p1 = p->m_next;
+ for (; p1 ; p1 = p1->m_next)
+ if (!this->compare (k, code, p1))
+ break;
+ iterator first(p, head);
+ iterator last(p1, head);
+ if (!p1)
+ last.m_incr_bucket();
+ return std::make_pair(first, last);
+ }
+ else
+ return std::make_pair (this->end(), this->end());
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+std::pair<typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::const_iterator,
+ typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::const_iterator>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::equal_range (const key_type& k) const
+{
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ std::size_t n = this->bucket_index (k, code, this->bucket_count());
+ node** head = m_buckets + n;
+ node* p = find_node (*head, k, code);
+
+ if (p) {
+ node* p1 = p->m_next;
+ for (; p1 ; p1 = p1->m_next)
+ if (!this->compare (k, code, p1))
+ break;
+ const_iterator first(p, head);
+ const_iterator last(p1, head);
+ if (!p1)
+ last.m_incr_bucket();
+ return std::make_pair(first, last);
+ }
+ else
+ return std::make_pair (this->end(), this->end());
+}
+
+// Find the node whose key compares equal to k, beginning the search
+// at p (usually the head of a bucket). Return nil if no node is found.
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::node*
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::find_node (node* p, const key_type& k, typename hashtable::hash_code_t code)
+{
+ for ( ; p ; p = p->m_next)
+ if (this->compare (k, code, p))
+ return p;
+ return false;
+}
+
+// Insert v if no element with its key is already present.
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+std::pair<typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator, bool>
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::insert (const value_type& v, std::tr1::true_type)
+{
+ const key_type& k = this->m_extract(v);
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ size_type n = this->bucket_index (k, code, m_bucket_count);
+
+ if (node* p = find_node (m_buckets[n], k, code))
+ return std::make_pair(iterator(p, m_buckets + n), false);
+
+ std::pair<bool, size_t> do_rehash
+ = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, 1);
+
+ // Allocate the new node before doing the rehash so that we don't
+ // do a rehash if the allocation throws.
+ node* new_node = m_allocate_node (v);
+
+ try {
+ if (do_rehash.first) {
+ n = this->bucket_index (k, code, do_rehash.second);
+ m_rehash(do_rehash.second);
+ }
+
+ new_node->m_next = m_buckets[n];
+ m_buckets[n] = new_node;
+ ++m_element_count;
+ return std::make_pair(iterator (new_node, m_buckets + n), true);
+ }
+ catch (...) {
+ m_deallocate_node (new_node);
+ throw;
+ }
+}
+
+// Insert v unconditionally.
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::iterator
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::insert (const value_type& v, std::tr1::false_type)
+{
+ std::pair<bool, std::size_t> do_rehash
+ = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, 1);
+ if (do_rehash.first)
+ m_rehash(do_rehash.second);
+
+ const key_type& k = this->m_extract(v);
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ size_type n = this->bucket_index (k, code, m_bucket_count);
+
+ node* new_node = m_allocate_node (v);
+ node* prev = find_node (m_buckets[n], k, code);
+ if (prev) {
+ new_node->m_next = prev->m_next;
+ prev->m_next = new_node;
+ }
+ else {
+ new_node->m_next = m_buckets[n];
+ m_buckets[n] = new_node;
+ }
+
+ ++m_element_count;
+ return iterator (new_node, m_buckets + n);
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+template <typename InIter>
+void
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::insert(InIter first, InIter last)
+{
+ size_type n_elt = Internal::distance_fw (first, last);
+ std::pair<bool, std::size_t> do_rehash
+ = m_rehash_policy.need_rehash(m_bucket_count, m_element_count, n_elt);
+ if (do_rehash.first)
+ m_rehash(do_rehash.second);
+
+ for (; first != last; ++first)
+ this->insert (*first);
+}
+
+// XXX We're following the TR in giving this a return type of void,
+// but that ought to change. The return type should be const_iterator,
+// and it should return the iterator following the one we've erased.
+// That would simplify range erase.
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::erase (const_iterator i)
+{
+ node* p = i.m_cur_node;
+ node* cur = *i.m_cur_bucket;
+ if (cur == p)
+ *i.m_cur_bucket = cur->m_next;
+ else {
+ node* next = cur->m_next;
+ while (next != p) {
+ cur = next;
+ next = cur->m_next;
+ }
+ cur->m_next = next->m_next;
+ }
+
+ m_deallocate_node (p);
+ --m_element_count;
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+typename hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::size_type
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::erase(const key_type& k)
+{
+ typename hashtable::hash_code_t code = this->m_hash_code (k);
+ size_type n = this->bucket_index (k, code, m_bucket_count);
+
+ node** slot = m_buckets + n;
+ while (*slot && ! this->compare (k, code, *slot))
+ slot = &((*slot)->m_next);
+
+ while (*slot && this->compare (k, code, *slot)) {
+ node* n = *slot;
+ *slot = n->m_next;
+ m_deallocate_node (n);
+ --m_element_count;
+ }
+}
+
+// ??? This could be optimized by taking advantage of the bucket
+// structure, but it's not clear that it's worth doing. It probably
+// wouldn't even be an optimization unless the load factor is large.
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>
+::erase(const_iterator first, const_iterator last)
+{
+ while (first != last) {
+ const_iterator next = first;
+ ++next;
+ this->erase(first);
+ first = next;
+ }
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::clear()
+{
+ m_deallocate_nodes (m_buckets, m_bucket_count);
+ m_element_count = 0;
+}
+
+template <typename K, typename V,
+ typename A, typename Ex, typename Eq,
+ typename H1, typename H2, typename H, typename RP,
+ bool c, bool m, bool u>
+void
+hashtable<K,V,A,Ex,Eq,H1,H2,H,RP,c,m,u>::m_rehash (size_type N)
+{
+ node** new_array = m_allocate_buckets (N);
+ try {
+ for (size_type i = 0; i < m_bucket_count; ++i)
+ while (node* p = m_buckets[i]) {
+ size_type new_index = this->bucket_index (p, N);
+ m_buckets[i] = p->m_next;
+ p->m_next = new_array[new_index];
+ new_array[new_index] = p;
+ }
+ m_deallocate_buckets (m_buckets, m_bucket_count);
+ m_bucket_count = N;
+ m_buckets = new_array;
+ }
+ catch (...) {
+ // A failure here means that a hash function threw an exception.
+ // We can't restore the previous state without calling the hash
+ // function again, so the only sensible recovery is to delete
+ // everything.
+ m_deallocate_nodes (new_array, N);
+ m_deallocate_buckets (new_array, N);
+ m_deallocate_nodes (m_buckets, m_bucket_count);
+ m_element_count = 0;
+ throw;
+ }
+}
+
+} } // Namespace std::tr1
+
+#endif /* GNU_LIBSTDCXX_TR1_HASHTABLE_ */
+
diff --git a/libstdc++-v3/include/tr1/memory b/libstdc++-v3/include/tr1/memory
new file mode 100644
index 00000000000..294d4868a47
--- /dev/null
+++ b/libstdc++-v3/include/tr1/memory
@@ -0,0 +1,51 @@
+// <tr1/memory> -*- C++ -*-
+
+// Copyright (C) 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
+// 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 _TR1_MEMORY
+#define _TR1_MEMORY 1
+
+#include "../memory"
+#include <functional> // std::less
+#include <exception> // std::exception
+#include <new> // std::bad_alloc
+#include <typeinfo> // std::type_info in get_deleter
+#include <cstddef> // std::size_t
+#include <algorithm> // std::swap
+#include <iosfwd> // std::basic_ostream
+#include <cstdlib> // std::abort
+
+#include <bits/gthr.h>
+#include <bits/atomicity.h>
+#include <bits/functexcept.h>
+#include <bits/concurrence.h>
+#include <debug/debug.h>
+
+#include <tr1/boost_shared_ptr.h>
+
+#endif
diff --git a/libstdc++-v3/include/tr1/mu_iterate.h b/libstdc++-v3/include/tr1/mu_iterate.h
new file mode 100644
index 00000000000..57a81e3d7a9
--- /dev/null
+++ b/libstdc++-v3/include/tr1/mu_iterate.h
@@ -0,0 +1,51 @@
+// TR1 functional -*- C++ -*-
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Written by Douglas Gregor <doug.gregor -at- gmail.com>
+//
+// 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.
+
+/** @file mu_iterate.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+// Determine the result type when we pass the arguments along. This
+// involves passing along the cv-qualifiers placed on _Mu and
+// unwrapping the argument bundle.
+template<typename _CVMu, typename _CVArg
+ _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+class result<_CVMu(_CVArg, tuple<_GLIBCXX_TEMPLATE_ARGS>)>
+ : public result_of<_CVArg(_GLIBCXX_TEMPLATE_ARGS)> { };
+
+template<typename _CVArg _GLIBCXX_COMMA _GLIBCXX_TEMPLATE_PARAMS>
+typename result_of<_CVArg(_GLIBCXX_TEMPLATE_ARGS)>::type
+operator()(_CVArg& __arg, const tuple<_GLIBCXX_TEMPLATE_ARGS>& __tuple)
+ const volatile
+{
+ return __arg(_GLIBCXX_MU_GET_TUPLE_ARGS);
+}
+
diff --git a/libstdc++-v3/include/tr1/ref_fwd.h b/libstdc++-v3/include/tr1/ref_fwd.h
new file mode 100644
index 00000000000..10272a3889a
--- /dev/null
+++ b/libstdc++-v3/include/tr1/ref_fwd.h
@@ -0,0 +1,59 @@
+
+
+// class template reference_wrapper forwarding header -*- C++ -*-
+
+// Copyright (C) 2004, 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
+// 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.
+
+/** @file ref_fwd.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+// Douglas Gregor <doug.gregor -at- gmail.com>
+#ifndef _TR1_REF_FWD
+#define _TR1_REF_FWD
+
+namespace std
+{
+namespace tr1
+{
+
+template<typename _Tp>
+ class reference_wrapper;
+
+template<typename _Tp>
+ reference_wrapper<_Tp>
+ ref(_Tp& __t);
+
+ // Denotes a const reference should be taken to a variable.
+template<typename _Tp>
+ reference_wrapper<const _Tp>
+ cref(const _Tp& __t);
+}
+}
+#endif
diff --git a/libstdc++-v3/include/tr1/ref_wrap_iterate.h b/libstdc++-v3/include/tr1/ref_wrap_iterate.h
new file mode 100644
index 00000000000..430109f04f6
--- /dev/null
+++ b/libstdc++-v3/include/tr1/ref_wrap_iterate.h
@@ -0,0 +1,44 @@
+// TR1 reference_wrapper -*- C++ -*-
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Written by Douglas Gregor <doug.gregor -at- gmail.com>
+//
+// 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.
+
+/** @file ref_wrap_iterate.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#if _GLIBCXX_NUM_ARGS > 0
+template<_GLIBCXX_TEMPLATE_PARAMS>
+ typename result_of<_M_func_type(_GLIBCXX_TEMPLATE_ARGS)>::type
+ operator()(_GLIBCXX_REF_PARAMS) const;
+#else
+typename result_of<_M_func_type()>::type
+operator()() const
+{ return (*get())(); }
+#endif
diff --git a/libstdc++-v3/include/tr1/repeat.h b/libstdc++-v3/include/tr1/repeat.h
new file mode 100644
index 00000000000..fa23c0b66b6
--- /dev/null
+++ b/libstdc++-v3/include/tr1/repeat.h
@@ -0,0 +1,636 @@
+// TR1 code repetition -*- C++ -*-
+
+// Copyright (C) 2005 Free Software Foundation, Inc.
+// Written by Douglas Gregor <doug.gregor -at- gmail.com>
+//
+// 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.
+
+/** @file repeat.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _GLIBCXX_REPEAT_HEADER
+# error Internal error: _GLIBCXX_REPEAT_HEADER must be set
+#endif /* _GLIBCXX_REPEAT_HEADER */
+
+#define _GLIBCXX_NUM_ARGS 0
+#define _GLIBCXX_COMMA
+#define _GLIBCXX_TEMPLATE_PARAMS
+#define _GLIBCXX_TEMPLATE_ARGS
+#define _GLIBCXX_PARAMS
+#define _GLIBCXX_REF_PARAMS
+#define _GLIBCXX_ARGS
+#define _GLIBCXX_COMMA_SHIFTED
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#define _GLIBCXX_PARAMS_SHIFTED
+#define _GLIBCXX_ARGS_SHIFTED
+#define _GLIBCXX_BIND_MEMBERS_INIT
+#define _GLIBCXX_BIND_MEMBERS
+#define _GLIBCXX_MU_GET_TUPLE_ARGS
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV)
+#define _GLIBCXX_BIND_V_ARGS
+#define _GLIBCXX_TUPLE_ADD_CREF
+#define _GLIBCXX_TUPLE_COPY_INIT
+#define _GLIBCXX_TUPLE_ASSIGN
+#define _GLIBCXX_TEMPLATE_PARAMS_U
+#define _GLIBCXX_TEMPLATE_ARGS_U
+#define _GLIBCXX_REF_WRAP_PARAMS
+#define _GLIBCXX_REF_TEMPLATE_ARGS
+#define _GLIBCXX_NUM_ARGS_PLUS_1 1
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T1
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 1
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1
+#define _GLIBCXX_TEMPLATE_ARGS _T1
+#define _GLIBCXX_PARAMS _T1 __a1
+#define _GLIBCXX_REF_PARAMS _T1& __a1
+#define _GLIBCXX_ARGS __a1
+#define _GLIBCXX_COMMA_SHIFTED
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#define _GLIBCXX_PARAMS_SHIFTED
+#define _GLIBCXX_ARGS_SHIFTED
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 2
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T2
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 2
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2
+#define _GLIBCXX_ARGS __a1, __a2
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1
+#define _GLIBCXX_ARGS_SHIFTED __a1
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 3
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T3
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 3
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3
+#define _GLIBCXX_ARGS __a1, __a2, __a3
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 4
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T4
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 4
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 5
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T5
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 5
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 6
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T6
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 6
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 7
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T7
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 7
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 8
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T8
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 8
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7; _T8 _M_arg8;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7), _M_arg8(__a8)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple), ::std::tr1::get<7>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T8> _CV(_T8, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T8>()(_M_arg8, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 9
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T9
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_NUM_ARGS 9
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8, _T9& __a9
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7; _T8 _M_arg8; _T9 _M_arg9;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7), _M_arg8(__a8), _M_arg9(__a9)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple), ::std::tr1::get<7>(__tuple), ::std::tr1::get<8>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T8> _CV(_T8, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T9> _CV(_T9, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T8>()(_M_arg8, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T9>()(_M_arg9, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8, typename __add_c_ref<_T9>::type __a9
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8), _M_arg9(__in._M_arg9)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8; _M_arg9 = __in._M_arg9;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 10
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T10
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#define _GLIBCXX_LAST_INCLUDE
+#define _GLIBCXX_NUM_ARGS 10
+#define _GLIBCXX_COMMA ,
+#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10
+#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10
+#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9, _T10 __a10
+#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8, _T9& __a9, _T10& __a10
+#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9, __a10
+#define _GLIBCXX_COMMA_SHIFTED ,
+#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
+#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
+#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9
+#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9
+#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7; _T8 _M_arg8; _T9 _M_arg9; _T10 _M_arg10;
+#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7), _M_arg8(__a8), _M_arg9(__a9), _M_arg10(__a10)
+#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple), ::std::tr1::get<7>(__tuple), ::std::tr1::get<8>(__tuple), ::std::tr1::get<9>(__tuple)
+#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T8> _CV(_T8, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T9> _CV(_T9, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T10> _CV(_T10, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
+#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T8>()(_M_arg8, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T9>()(_M_arg9, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T10>()(_M_arg10, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
+#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8, typename __add_c_ref<_T9>::type __a9, typename __add_c_ref<_T10>::type __a10
+#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8), _M_arg9(__in._M_arg9), _M_arg10(__in._M_arg10)
+#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8; _M_arg9 = __in._M_arg9; _M_arg10 = __in._M_arg10;
+#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10
+#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10
+#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9), ref(__a10)
+#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&, _T10&
+#define _GLIBCXX_NUM_ARGS_PLUS_1 11
+#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T11
+#include _GLIBCXX_REPEAT_HEADER
+#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_NUM_ARGS_PLUS_1
+#undef _GLIBCXX_REF_TEMPLATE_ARGS
+#undef _GLIBCXX_REF_WRAP_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS_U
+#undef _GLIBCXX_TEMPLATE_PARAMS_U
+#undef _GLIBCXX_TUPLE_ASSIGN
+#undef _GLIBCXX_TUPLE_COPY_INIT
+#undef _GLIBCXX_TUPLE_ADD_CREF
+#undef _GLIBCXX_BIND_V_ARGS
+#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
+#undef _GLIBCXX_MU_GET_TUPLE_ARGS
+#undef _GLIBCXX_BIND_MEMBERS_INIT
+#undef _GLIBCXX_BIND_MEMBERS
+#undef _GLIBCXX_ARGS_SHIFTED
+#undef _GLIBCXX_PARAMS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
+#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
+#undef _GLIBCXX_COMMA_SHIFTED
+#undef _GLIBCXX_ARGS
+#undef _GLIBCXX_REF_PARAMS
+#undef _GLIBCXX_PARAMS
+#undef _GLIBCXX_TEMPLATE_ARGS
+#undef _GLIBCXX_TEMPLATE_PARAMS
+#undef _GLIBCXX_COMMA
+#undef _GLIBCXX_NUM_ARGS
+
+#undef _GLIBCXX_LAST_INCLUDE
+
diff --git a/libstdc++-v3/include/tr1/tuple b/libstdc++-v3/include/tr1/tuple
index 928c75f88cf..89bccc3d495 100644
--- a/libstdc++-v3/include/tr1/tuple
+++ b/libstdc++-v3/include/tr1/tuple
@@ -1,6 +1,6 @@
// class template tuple -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 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
@@ -18,1432 +18,258 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-/** @file
- * This is a TR1 C++ Library header.
- */
+// 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.
-// Chris Jefferson <chris@bubblescope.net>
+/** @file
+* This is a TR1 C++ Library header.
+*/
-// This header is automatically generated: see maketuple.c for details.
+// Chris Jefferson <chris@bubblescope.net>
#ifndef _TUPLE
#define _TUPLE 1
#include <tr1/utility>
-#include <tr1/functional>
+#include <tr1/ref_fwd.h>
namespace std
{
namespace tr1
{
- // An implementation specific class which is used in the tuple class
- // when the tuple is not maximum possible size.
- struct _NullClass { };
-
- template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
- typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
- typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
- typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
- typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
- class tuple;
-
- /// Gives the type of the ith element of a given tuple type.
- template<int __i, typename _Tp>
- struct tuple_element;
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<0, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp0 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<1, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp1 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<2, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp2 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<3, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp3 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<4, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp4 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<5, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp5 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<6, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp6 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<7, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp7 type; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<8, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp8 type; };
-
- /// @brief class tuple_element
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_element<9, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >
- { typedef _Tp9 type; };
-
- /// Finds the size of a given tuple type.
- template<typename _Tp>
- struct tuple_size;
-
- template<>
- struct tuple_size<tuple<_NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass> >
- { static const int value = 0; };
-
- template< typename _Tp0>
- struct tuple_size<tuple< _Tp0, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass> >
- { static const int value = 1; };
-
- template<typename _Tp0, typename _Tp1>
- struct tuple_size<tuple<_Tp0, _Tp1, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass> >
- { static const int value = 2; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass> >
- { static const int value = 3; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass> >
- { static const int value = 4; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass> >
- { static const int value = 5; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _NullClass,
- _NullClass, _NullClass, _NullClass> >
- { static const int value = 6; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _NullClass, _NullClass, _NullClass> >
- { static const int value = 7; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
- _NullClass, _NullClass> >
- { static const int value = 8; };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
- _Tp8, _NullClass> >
- { static const int value = 9; };
-
- /// @brief class tuple_size
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- struct tuple_size<tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
- _Tp8, _Tp9> >
- { static const int value = 10; };
-
- // Adds a const reference to a non-reference type.
- template<typename _Tp>
- struct __add_c_ref
- { typedef const _Tp& type; };
-
- template<typename _Tp>
- struct __add_c_ref<_Tp&>
- { typedef _Tp& type; };
-
- // Adds a reference to a non-reference type.
- template<typename _Tp>
- struct __add_ref
- { typedef _Tp& type; };
-
- template<typename _Tp>
- struct __add_ref<_Tp&>
- { typedef _Tp& type; };
-
- // The empty tuple.
- template<>
- class tuple<_NullClass, _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
- {
- public:
- tuple()
- { }
-
- tuple(const tuple& __in)
- { }
-
- tuple& operator=(const tuple& __in)
- { return *this; }
- };
-
- template< typename _Tp0>
- class tuple< _Tp0, _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
-
- public:
- tuple()
- { }
-
- explicit tuple( typename __add_c_ref<_Tp0>::type __in0):
- _M_t0(__in0)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0)
- { }
-
- template< typename _Up0>
- tuple(const tuple< _Up0>& __in):
- _M_t0(__in._M_t0)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- return *this;
- }
-
- template< typename _Up0>
- tuple&
- operator=(const tuple< _Up0>& __in)
- {
- _M_t0=__in._M_t0;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1>
- class tuple<_Tp0, _Tp1, _NullClass, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1):
- _M_t0(__in0), _M_t1(__in1)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1)
- { }
-
- template<typename _Up0, typename _Up1>
- tuple(const tuple<_Up0, _Up1>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1)
- { }
-
- template<class _Up1, class _Up2>
- tuple(const std::pair<_Up1, _Up2>& __u):
- _M_t0(__u.first), _M_t1(__u.second)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- return *this;
- }
-
- template<typename _Up0, typename _Up1>
- tuple&
- operator=(const tuple<_Up0, _Up1>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2>
- class tuple<_Tp0, _Tp1, _Tp2, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2>
- tuple(const tuple<_Up0, _Up1, _Up2>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
- class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _NullClass, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4>
- class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _NullClass, _NullClass,
- _NullClass, _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
- _Tp4 _M_t4;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3,
- typename __add_c_ref<_Tp4>::type __in4):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5>
- class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _NullClass, _NullClass,
- _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
- _Tp4 _M_t4;
- _Tp5 _M_t5;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3,
- typename __add_c_ref<_Tp4>::type __in4,
- typename __add_c_ref<_Tp5>::type __in5):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
- _M_t5(__in5)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6>
- class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _NullClass,
- _NullClass, _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
- _Tp4 _M_t4;
- _Tp5 _M_t5;
- _Tp6 _M_t6;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3,
- typename __add_c_ref<_Tp4>::type __in4,
- typename __add_c_ref<_Tp5>::type __in5,
- typename __add_c_ref<_Tp6>::type __in6):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
- _M_t5(__in5), _M_t6(__in6)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5,
- _Up6>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
- class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _NullClass,
- _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
- _Tp4 _M_t4;
- _Tp5 _M_t5;
- _Tp6 _M_t6;
- _Tp7 _M_t7;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3,
- typename __add_c_ref<_Tp4>::type __in4,
- typename __add_c_ref<_Tp5>::type __in5,
- typename __add_c_ref<_Tp6>::type __in6,
- typename __add_c_ref<_Tp7>::type __in7):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
- _M_t5(__in5), _M_t6(__in6), _M_t7(__in7)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6), _M_t7(__in._M_t7)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6, typename _Up7>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6,
- _Up7>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6), _M_t7(__in._M_t7)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- _M_t7=__in._M_t7;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6, typename _Up7>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6,
- _Up7>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- _M_t7=__in._M_t7;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8>
- class tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
- _NullClass>
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
- _Tp4 _M_t4;
- _Tp5 _M_t5;
- _Tp6 _M_t6;
- _Tp7 _M_t7;
- _Tp8 _M_t8;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3,
- typename __add_c_ref<_Tp4>::type __in4,
- typename __add_c_ref<_Tp5>::type __in5,
- typename __add_c_ref<_Tp6>::type __in6,
- typename __add_c_ref<_Tp7>::type __in7,
- typename __add_c_ref<_Tp8>::type __in8):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
- _M_t5(__in5), _M_t6(__in6), _M_t7(__in7), _M_t8(__in8)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6, typename _Up7,
- typename _Up8>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7,
- _Up8>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- _M_t7=__in._M_t7;
- _M_t8=__in._M_t8;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6, typename _Up7,
- typename _Up8>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7,
- _Up8>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- _M_t7=__in._M_t7;
- _M_t8=__in._M_t8;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- /// @brief Template class tuple
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- class tuple
- {
- _Tp0 _M_t0;
- _Tp1 _M_t1;
- _Tp2 _M_t2;
- _Tp3 _M_t3;
- _Tp4 _M_t4;
- _Tp5 _M_t5;
- _Tp6 _M_t6;
- _Tp7 _M_t7;
- _Tp8 _M_t8;
- _Tp9 _M_t9;
-
- public:
- tuple()
- { }
-
- explicit tuple(typename __add_c_ref<_Tp0>::type __in0,
- typename __add_c_ref<_Tp1>::type __in1,
- typename __add_c_ref<_Tp2>::type __in2,
- typename __add_c_ref<_Tp3>::type __in3,
- typename __add_c_ref<_Tp4>::type __in4,
- typename __add_c_ref<_Tp5>::type __in5,
- typename __add_c_ref<_Tp6>::type __in6,
- typename __add_c_ref<_Tp7>::type __in7,
- typename __add_c_ref<_Tp8>::type __in8,
- typename __add_c_ref<_Tp9>::type __in9):
- _M_t0(__in0), _M_t1(__in1), _M_t2(__in2), _M_t3(__in3), _M_t4(__in4),
- _M_t5(__in5), _M_t6(__in6), _M_t7(__in7), _M_t8(__in8), _M_t9(__in9)
- { }
-
- tuple(const tuple& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8),
- _M_t9(__in._M_t9)
- { }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6, typename _Up7,
- typename _Up8, typename _Up9>
- tuple(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
- _Up9>& __in):
- _M_t0(__in._M_t0), _M_t1(__in._M_t1), _M_t2(__in._M_t2),
- _M_t3(__in._M_t3), _M_t4(__in._M_t4), _M_t5(__in._M_t5),
- _M_t6(__in._M_t6), _M_t7(__in._M_t7), _M_t8(__in._M_t8),
- _M_t9(__in._M_t9)
- { }
-
- tuple&
- operator=(const tuple& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- _M_t7=__in._M_t7;
- _M_t8=__in._M_t8;
- _M_t9=__in._M_t9;
- return *this;
- }
-
- template<typename _Up0, typename _Up1, typename _Up2, typename _Up3,
- typename _Up4, typename _Up5, typename _Up6, typename _Up7,
- typename _Up8, typename _Up9>
- tuple&
- operator=(const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7,
- _Up8, _Up9>& __in)
- {
- _M_t0=__in._M_t0;
- _M_t1=__in._M_t1;
- _M_t2=__in._M_t2;
- _M_t3=__in._M_t3;
- _M_t4=__in._M_t4;
- _M_t5=__in._M_t5;
- _M_t6=__in._M_t6;
- _M_t7=__in._M_t7;
- _M_t8=__in._M_t8;
- _M_t9=__in._M_t9;
- return *this;
- }
-
- template<int __i, typename _Up>
- friend class __get_helper;
- template<typename, typename, typename, typename, typename, typename,
- typename, typename, typename, typename>
- friend class tuple;
- };
-
- // Class used in the implementation of get
- template<int __i, typename _Tp>
- struct __get_helper;
-
- template<typename _Tp>
- struct __get_helper<0, _Tp>
- {
- static typename __add_ref<typename tuple_element<0, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t0; }
-
- static typename __add_c_ref<typename tuple_element<0, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t0; }
- };
-
- template<typename _Tp>
- struct __get_helper<1, _Tp>
- {
- static typename __add_ref<typename tuple_element<1, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t1; }
-
- static typename __add_c_ref<typename tuple_element<1, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t1; }
- };
-
- template<typename _Tp>
- struct __get_helper<2, _Tp>
- {
- static typename __add_ref<typename tuple_element<2, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t2; }
-
- static typename __add_c_ref<typename tuple_element<2, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t2; }
- };
-
- template<typename _Tp>
- struct __get_helper<3, _Tp>
- {
- static typename __add_ref<typename tuple_element<3, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t3; }
-
- static typename __add_c_ref<typename tuple_element<3, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t3; }
- };
-
- template<typename _Tp>
- struct __get_helper<4, _Tp>
- {
- static typename __add_ref<typename tuple_element<4, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t4; }
-
- static typename __add_c_ref<typename tuple_element<4, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t4; }
- };
-
- template<typename _Tp>
- struct __get_helper<5, _Tp>
- {
- static typename __add_ref<typename tuple_element<5, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t5; }
-
- static typename __add_c_ref<typename tuple_element<5, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t5; }
- };
-
- template<typename _Tp>
- struct __get_helper<6, _Tp>
- {
- static typename __add_ref<typename tuple_element<6, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t6; }
-
- static typename __add_c_ref<typename tuple_element<6, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t6; }
- };
-
- template<typename _Tp>
- struct __get_helper<7, _Tp>
- {
- static typename __add_ref<typename tuple_element<7, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t7; }
-
- static typename __add_c_ref<typename tuple_element<7, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t7; }
- };
-
- template<typename _Tp>
- struct __get_helper<8, _Tp>
- {
- static typename __add_ref<typename tuple_element<8, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t8; }
-
- static typename __add_c_ref<typename tuple_element<8, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t8; }
- };
-
- template<typename _Tp>
- struct __get_helper<9, _Tp>
- {
- static typename __add_ref<typename tuple_element<9, _Tp>::type>::type
- get_value(_Tp& __in)
- { return __in._M_t9; }
-
- static typename __add_c_ref<typename tuple_element<9, _Tp>::type>::type
- get_value(const _Tp& __in)
- { return __in._M_t9; }
- };
-
- // Returns a reference to the ith element of a tuple.
- // Any const or non-const ref elements are returned with their original type.
- template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- typename __add_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
- _Tp3, _Tp4, _Tp5,
- _Tp6, _Tp7, _Tp8,
- _Tp9> >::type>::type
- get(tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
- _Tp9>& __t)
- {
- return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >::get_value(__t);
- }
-
- // Returns a const reference to the ith element of a tuple.
- // Any const or non-const ref elements are returned with their original type.
- template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- typename __add_c_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
- _Tp3, _Tp4, _Tp5,
- _Tp6, _Tp7, _Tp8,
- _Tp9> >::type>::type
- get(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
- _Tp9>& __t)
- {
- return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9> >::get_value(__t);
- }
-
- // This class helps construct the various comparison operations on tuples
- template<int __check_equal_size, int __i, int __j, typename _Tp, typename _Up>
- struct __tuple_compare;
-
- template<int __i, int __j, typename _Tp, typename _Up>
- struct __tuple_compare<0, __i, __j, _Tp, _Up>
- {
- static bool __eq(const _Tp& __t, const _Up& __u)
- {
- return get<__i>(__t) == get<__i>(__u) &&
- __tuple_compare<0, __i+1, __j, _Tp, _Up>::__eq(__t, __u);
- }
- static bool __less(const _Tp& __t, const _Up& __u)
- {
- return (get<__i>(__t) < get<__i>(__u)) || !(get<__i>(__u) < get<__i>(__t)) &&
- __tuple_compare<0, __i+1, __j, _Tp, _Up>::__less(__t, __u);
- }
- };
-
- template<int __i, typename _Tp, typename _Up>
- struct __tuple_compare<0, __i, __i, _Tp, _Up>
- {
- static bool __eq(const _Tp&, const _Up&)
- { return true; }
- static bool __less(const _Tp&, const _Up&)
- { return false; }
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
- typename _Up2, typename _Up3, typename _Up4, typename _Up5,
- typename _Up6, typename _Up7, typename _Up8, typename _Up9>
- bool
- operator==(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
- const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
- {
- typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
- _Tp9> _Tp;
- typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
- _Up9> _Up;
- return __tuple_compare<tuple_size<_Tp>::value -
- tuple_size<_Tp>::value, 0,
- tuple_size<_Tp>::value, _Tp, _Up>::__eq(__t, __u);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
- typename _Up2, typename _Up3, typename _Up4, typename _Up5,
- typename _Up6, typename _Up7, typename _Up8, typename _Up9>
- bool
- operator<(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
- const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
- {
- typedef tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
- _Tp9> _Tp;
- typedef tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8,
- _Up9> _Up;
- return __tuple_compare<tuple_size<_Tp>::value -
- tuple_size<_Tp>::value, 0,
- tuple_size<_Tp>::value, _Tp, _Up>::__less(__t, __u);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
- typename _Up2, typename _Up3, typename _Up4, typename _Up5,
- typename _Up6, typename _Up7, typename _Up8, typename _Up9>
- bool
- operator!=(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
- const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
- {
- return !(__t == __u);
- }
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
- typename _Up2, typename _Up3, typename _Up4, typename _Up5,
- typename _Up6, typename _Up7, typename _Up8, typename _Up9>
- bool
- operator>(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
- const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
- {
- return __u < __t;
- }
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
- typename _Up2, typename _Up3, typename _Up4, typename _Up5,
- typename _Up6, typename _Up7, typename _Up8, typename _Up9>
- bool
- operator<=(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
- const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
- {
- return !(__u < __t);
- }
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9, typename _Up0, typename _Up1,
- typename _Up2, typename _Up3, typename _Up4, typename _Up5,
- typename _Up6, typename _Up7, typename _Up8, typename _Up9>
- bool
- operator>=(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>& __t,
- const tuple<_Up0, _Up1, _Up2, _Up3, _Up4, _Up5, _Up6, _Up7, _Up8, _Up9>& __u)
- {
- return !(__t < __u);
- }
-
- // Helper which adds a reference to a type when given a reference_wrapper
- template<typename _Tp>
- struct __strip_reference_wrapper
- {
- typedef _Tp __type;
- };
-
- template<typename _Tp>
- struct __strip_reference_wrapper<reference_wrapper<_Tp> >
- {
- typedef _Tp& __type;
- };
-
- template<typename _Tp>
- struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
- {
- typedef _Tp& __type;
- };
-
- template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
- typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
- typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
- typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
- typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
- struct __stripped_tuple_type
- {
- typedef tuple<typename __strip_reference_wrapper<_Tp0>::__type,
- typename __strip_reference_wrapper<_Tp1>::__type,
- typename __strip_reference_wrapper<_Tp2>::__type,
- typename __strip_reference_wrapper<_Tp3>::__type,
- typename __strip_reference_wrapper<_Tp4>::__type,
- typename __strip_reference_wrapper<_Tp5>::__type,
- typename __strip_reference_wrapper<_Tp6>::__type,
- typename __strip_reference_wrapper<_Tp7>::__type,
- typename __strip_reference_wrapper<_Tp8>::__type,
- typename __strip_reference_wrapper<_Tp9>::__type> __type;
- };
-
- tuple<>
- make_tuple()
- { return tuple<>(); }
-
- template< typename _Tp0>
- typename __stripped_tuple_type< _Tp0>::__type
- make_tuple( _Tp0 __t0)
- {
- return typename __stripped_tuple_type< _Tp0>::
- __type( __t0);
- }
-
- template<typename _Tp0, typename _Tp1>
- typename __stripped_tuple_type<_Tp0, _Tp1>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1>::
- __type(__t0, __t1);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2>::
- __type(__t0, __t1, __t2);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3>::
- __type(__t0, __t1, __t2, __t3);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4>::
- __type(__t0, __t1, __t2, __t3, __t4);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
- _Tp5>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
- _Tp5 __t5)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
- _Tp5>::
- __type(__t0, __t1, __t2, __t3, __t4, __t5);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5,
- _Tp6>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
- _Tp5 __t5, _Tp6 __t6)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
- _Tp5, _Tp6>::
- __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
- _Tp5 __t5, _Tp6 __t6, _Tp7 __t7)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
- _Tp5, _Tp6, _Tp7>::
- __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
- _Tp5 __t5, _Tp6 __t6, _Tp7 __t7, _Tp8 __t8)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
- _Tp5, _Tp6, _Tp7, _Tp8>::
- __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7, __t8);
- }
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
- _Tp7, _Tp8, _Tp9>::__type
- make_tuple(_Tp0 __t0, _Tp1 __t1, _Tp2 __t2, _Tp3 __t3, _Tp4 __t4,
- _Tp5 __t5, _Tp6 __t6, _Tp7 __t7, _Tp8 __t8, _Tp9 __t9)
- {
- return typename __stripped_tuple_type<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4,
- _Tp5, _Tp6, _Tp7, _Tp8, _Tp9>::
- __type(__t0, __t1, __t2, __t3, __t4, __t5, __t6, __t7, __t8, __t9);
- }
-
- // A class (and instance) which can be used in 'tie' when an element
- // of a tuple is not required
- struct swallow_assign
- {
- template<class T>
- swallow_assign&
- operator=(const T&)
- { return *this; }
- };
-
- // TODO: Put this in some kind of shared file.
- namespace
- {
- swallow_assign ignore;
- };
-
-
- // Forms a tuple of references to a list of variables.
- template< typename _Tp0>
- tuple< _Tp0&>
- tie( _Tp0& __t0)
- {
- return make_tuple( ref(__t0));
- };
-
- template<typename _Tp0, typename _Tp1>
- tuple<_Tp0&, _Tp1&>
- tie(_Tp0& __t0, _Tp1& __t1)
- {
- return make_tuple(ref(__t0), ref(__t1));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2>
- tuple<_Tp0&, _Tp1&, _Tp2&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3),
- ref(__t4));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4,
- _Tp5& __t5)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
- ref(__t5));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
- _Tp6& __t6)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
- ref(__t5), ref(__t6));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&, _Tp7&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
- _Tp6& __t6, _Tp7& __t7)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
- ref(__t5), ref(__t6), ref(__t7));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&, _Tp7&, _Tp8&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
- _Tp6& __t6, _Tp7& __t7, _Tp8& __t8)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
- ref(__t5), ref(__t6), ref(__t7), ref(__t8));
- };
-
- template<typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
- typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
- typename _Tp8, typename _Tp9>
- tuple<_Tp0&, _Tp1&, _Tp2&, _Tp3&, _Tp4&, _Tp5&, _Tp6&, _Tp7&, _Tp8&,
- _Tp9&>
- tie(_Tp0& __t0, _Tp1& __t1, _Tp2& __t2, _Tp3& __t3, _Tp4& __t4, _Tp5& __t5,
- _Tp6& __t6, _Tp7& __t7, _Tp8& __t8, _Tp9& __t9)
- {
- return make_tuple(ref(__t0), ref(__t1), ref(__t2), ref(__t3), ref(__t4),
- ref(__t5), ref(__t6), ref(__t7), ref(__t8),
- ref(__t9));
- };
-
+ // An implementation specific class which is used in the tuple class
+ // when the tuple is not maximum possible size.
+ struct _NullClass { };
+
+ template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
+ typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
+ typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
+ typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
+ typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
+ class tuple;
+
+ /// Gives the type of the ith element of a given tuple type.
+ template<int __i, typename _Tp>
+ struct tuple_element;
+
+ /// Finds the size of a given tuple type.
+ template<typename _Tp>
+ struct tuple_size;
+
+ // Adds a const reference to a non-reference type.
+ template<typename _Tp>
+ struct __add_c_ref
+ { typedef const _Tp& type; };
+
+ template<typename _Tp>
+ struct __add_c_ref<_Tp&>
+ { typedef _Tp& type; };
+
+ // Adds a reference to a non-reference type.
+ template<typename _Tp>
+ struct __add_ref
+ { typedef _Tp& type; };
+
+ template<typename _Tp>
+ struct __add_ref<_Tp&>
+ { typedef _Tp& type; };
+
+ // Class used in the implementation of get
+ template<int __i, typename _Tp>
+ struct __get_helper;
+
+ // Returns a const reference to the ith element of a tuple.
+ // Any const or non-const ref elements are returned with their original type.
+ template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
+ typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
+ typename _Tp8, typename _Tp9>
+ typename __add_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
+ _Tp3, _Tp4, _Tp5,
+ _Tp6, _Tp7, _Tp8,
+ _Tp9> >::type>::type
+ get(tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
+ _Tp9>& __t)
+ {
+ return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
+ _Tp7, _Tp8, _Tp9> >::get_value(__t);
+ }
+
+ template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3,
+ typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7,
+ typename _Tp8, typename _Tp9>
+ typename __add_c_ref<typename tuple_element<__i, tuple<_Tp0, _Tp1, _Tp2,
+ _Tp3, _Tp4, _Tp5,
+ _Tp6, _Tp7, _Tp8,
+ _Tp9> >::type>::type
+ get(const tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8,
+ _Tp9>& __t)
+ {
+ return __get_helper<__i, tuple<_Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6,
+ _Tp7, _Tp8, _Tp9> >::get_value(__t);
+ }
+
+ // This class helps construct the various comparison operations on tuples
+ template<int __check_equal_size, int __i, int __j, typename _Tp, typename _Up>
+ struct __tuple_compare;
+
+ template<int __i, int __j, typename _Tp, typename _Up>
+ struct __tuple_compare<0, __i, __j, _Tp, _Up>
+ {
+ static bool __eq(const _Tp& __t, const _Up& __u)
+ {
+ return get<__i>(__t) == get<__i>(__u) &&
+ __tuple_compare<0, __i+1, __j, _Tp, _Up>::__eq(__t, __u);
+ }
+ static bool __less(const _Tp& __t, const _Up& __u)
+ {
+ return (get<__i>(__t) < get<__i>(__u)) || !(get<__i>(__u) < get<__i>(__t)) &&
+ __tuple_compare<0, __i+1, __j, _Tp, _Up>::__less(__t, __u);
+ }
+ };
+
+ template<int __i, typename _Tp, typename _Up>
+ struct __tuple_compare<0, __i, __i, _Tp, _Up>
+ {
+ static bool __eq(const _Tp&, const _Up&)
+ { return true; }
+ static bool __less(const _Tp&, const _Up&)
+ { return false; }
+ };
+
+ template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
+ typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
+ typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
+ typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
+ bool
+ operator==(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
+ const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
+ {
+ typedef tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10> _Tp;
+ typedef tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8,_U9, _U10> _Up;
+ return __tuple_compare<tuple_size<_Tp>::value - tuple_size<_Tp>::value, 0,
+ tuple_size<_Tp>::value, _Tp, _Up>::__eq(__t, __u);
+ }
+
+ template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
+ typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
+ typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
+ typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
+ bool
+ operator<(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
+ const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
+ {
+ typedef tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10> _Tp;
+ typedef tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8,_U9, _U10> _Up;
+ return __tuple_compare<tuple_size<_Tp>::value - tuple_size<_Tp>::value, 0,
+ tuple_size<_Tp>::value, _Tp, _Up>::__less(__t, __u);
+ }
+
+ template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
+ typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
+ typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
+ typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
+ bool
+ operator!=(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
+ const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
+ { return !(__t == __u); }
+
+ template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
+ typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
+ typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
+ typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
+ bool
+ operator>(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
+ const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
+ { return __u < __t; }
+
+ template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
+ typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
+ typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
+ typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
+ bool
+ operator<=(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
+ const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
+ { return !(__u < __t); }
+
+ template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5,
+ typename _T6, typename _T7, typename _T8, typename _T9, typename _T10,
+ typename _U1, typename _U2, typename _U3, typename _U4, typename _U5,
+ typename _U6, typename _U7, typename _U8, typename _U9, typename _U10>
+ bool
+ operator>=(const tuple<_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>& __t,
+ const tuple<_U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10>& __u)
+ { return !(__t < __u); }
+
+ // Helper which adds a reference to a type when given a reference_wrapper
+ template<typename _Tp>
+ struct __strip_reference_wrapper
+ {
+ typedef _Tp __type;
+ };
+
+ template<typename _Tp>
+ struct __strip_reference_wrapper<reference_wrapper<_Tp> >
+ {
+ typedef _Tp& __type;
+ };
+
+ template<typename _Tp>
+ struct __strip_reference_wrapper<const reference_wrapper<_Tp> >
+ {
+ typedef _Tp& __type;
+ };
+
+ template<typename _Tp0 = _NullClass, typename _Tp1 = _NullClass,
+ typename _Tp2 = _NullClass, typename _Tp3 = _NullClass,
+ typename _Tp4 = _NullClass, typename _Tp5 = _NullClass,
+ typename _Tp6 = _NullClass, typename _Tp7 = _NullClass,
+ typename _Tp8 = _NullClass, typename _Tp9 = _NullClass>
+ struct __stripped_tuple_type
+ {
+ typedef tuple<typename __strip_reference_wrapper<_Tp0>::__type,
+ typename __strip_reference_wrapper<_Tp1>::__type,
+ typename __strip_reference_wrapper<_Tp2>::__type,
+ typename __strip_reference_wrapper<_Tp3>::__type,
+ typename __strip_reference_wrapper<_Tp4>::__type,
+ typename __strip_reference_wrapper<_Tp5>::__type,
+ typename __strip_reference_wrapper<_Tp6>::__type,
+ typename __strip_reference_wrapper<_Tp7>::__type,
+ typename __strip_reference_wrapper<_Tp8>::__type,
+ typename __strip_reference_wrapper<_Tp9>::__type> __type;
+ };
+
+ // A class (and instance) which can be used in 'tie' when an element
+ // of a tuple is not required
+ struct swallow_assign
+ {
+ template<class T>
+ swallow_assign&
+ operator=(const T&)
+ { return *this; }
+ };
+
+ // TODO: Put this in some kind of shared file.
+ namespace
+ {
+ swallow_assign ignore;
+ };
+
+#define _GLIBCXX_CAT(x,y) _GLIBCXX_CAT2(x,y)
+#define _GLIBCXX_CAT2(x,y) x##y
+#define _SHORT_REPEAT
+#define _GLIBCXX_REPEAT_HEADER <tr1/tuple_iterate.h>
+#include <tr1/repeat.h>
+#undef _GLIBCXX_REPEAT_HEADER
+#undef _SHORT_REPEAT
}
}
-#endif
+#include <tr1/functional>
+#endif
diff --git a/libstdc++-v3/include/tr1/tuple_iterate.h b/libstdc++-v3/include/tr1/tuple_iterate.h
new file mode 100644
index 00000000000..1d3756dc90c
--- /dev/null
+++ b/libstdc++-v3/include/tr1/tuple_iterate.h
@@ -0,0 +1,158 @@
+// class template tuple -*- C++ -*-
+
+// Copyright (C) 2004, 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
+// 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.
+
+/** @file
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+// Chris Jefferson <chris@bubblescope.net>
+
+/// @brief class tuple_size
+template<_GLIBCXX_TEMPLATE_PARAMS>
+ struct tuple_size<tuple<_GLIBCXX_TEMPLATE_ARGS> >
+ { static const int value = _GLIBCXX_NUM_ARGS; };
+
+template<_GLIBCXX_TEMPLATE_PARAMS>
+#ifdef _GLIBCXX_LAST_INCLUDE
+ class tuple
+#else
+ class tuple<_GLIBCXX_TEMPLATE_ARGS>
+#endif
+ {
+ _GLIBCXX_BIND_MEMBERS
+
+ public:
+ tuple()
+ { }
+
+#if _GLIBCXX_NUM_ARGS == 2
+template<class _U1, class _U2>
+ tuple(const std::pair<_U1, _U2>& __u):
+ _M_arg1(__u.first), _M_arg2(__u.second)
+ { }
+
+#endif
+
+#if _GLIBCXX_NUM_ARGS > 0
+ explicit tuple(_GLIBCXX_TUPLE_ADD_CREF) :
+ _GLIBCXX_BIND_MEMBERS_INIT
+ { }
+
+ template<_GLIBCXX_TEMPLATE_PARAMS_U>
+ tuple(const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __in) :
+ _GLIBCXX_TUPLE_COPY_INIT
+ { }
+
+
+ template<_GLIBCXX_TEMPLATE_PARAMS_U>
+ tuple&
+ operator=(const tuple<_GLIBCXX_TEMPLATE_ARGS_U>& __in)
+ {
+ _GLIBCXX_TUPLE_ASSIGN
+ return *this;
+ }
+
+ tuple(const tuple& __in) :
+ _GLIBCXX_TUPLE_COPY_INIT
+ { }
+
+#else
+
+ tuple(const tuple& __in)
+ { }
+
+#endif
+
+ tuple&
+ operator=(const tuple& __in)
+ {
+ _GLIBCXX_TUPLE_ASSIGN
+ return *this;
+ }
+
+ template<int __i, typename __Type>
+ friend class __get_helper;
+
+ template<typename, typename, typename, typename, typename,
+ typename, typename, typename, typename, typename>
+ friend class tuple;
+ };
+
+#ifndef _GLIBCXX_LAST_INCLUDE
+
+template<typename _Tp>
+ struct __get_helper<_GLIBCXX_NUM_ARGS, _Tp>
+ {
+ static typename __add_ref<typename tuple_element<_GLIBCXX_NUM_ARGS,
+ _Tp>::type>::type
+ get_value(_Tp& __in)
+ { return __in._GLIBCXX_CAT(_M_arg,_GLIBCXX_NUM_ARGS_PLUS_1); }
+
+ static typename __add_c_ref<typename tuple_element<_GLIBCXX_NUM_ARGS,
+ _Tp>::type>::type
+ get_value(const _Tp& __in)
+ { return __in._GLIBCXX_CAT(_M_arg,_GLIBCXX_NUM_ARGS_PLUS_1); }
+ };
+
+/// @brief class tuple_element
+template<typename _T1, typename _T2, typename _T3, typename _T4,
+ typename _T5, typename _T6, typename _T7, typename _T8,
+ typename _T9, typename _T10>
+ struct tuple_element<_GLIBCXX_NUM_ARGS, tuple<_T1, _T2, _T3, _T4,
+ _T5, _T6, _T7, _T8, _T9,
+ _T10> >
+ { typedef _GLIBCXX_T_NUM_ARGS_PLUS_1 type; };
+
+#endif
+#if _GLIBCXX_NUM_ARGS == 0
+
+tuple<>
+inline make_tuple()
+{ return tuple<>(); }
+
+inline tuple<>
+tie()
+{ return tuple<>(); }
+#else
+
+template<_GLIBCXX_TEMPLATE_PARAMS>
+ typename __stripped_tuple_type<_GLIBCXX_TEMPLATE_ARGS>::__type
+ make_tuple(_GLIBCXX_PARAMS)
+ {
+ return typename __stripped_tuple_type<_GLIBCXX_TEMPLATE_ARGS>::
+ __type(_GLIBCXX_ARGS);
+ }
+
+template<_GLIBCXX_TEMPLATE_PARAMS>
+ tuple<_GLIBCXX_REF_TEMPLATE_ARGS>
+ tie(_GLIBCXX_REF_PARAMS)
+ { return make_tuple(_GLIBCXX_REF_WRAP_PARAMS); }
+#endif
+
diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits
index 12609dd41b4..55f585f9f4b 100644
--- a/libstdc++-v3/include/tr1/type_traits
+++ b/libstdc++-v3/include/tr1/type_traits
@@ -18,6 +18,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.
+
/** @file
* This is a TR1 C++ Library header.
*/
@@ -33,7 +42,7 @@ namespace std
{
namespace tr1
{
- // For use in is_enum, is_abstract and elsewhere.
+ // For use in __conv_helper, is_abstract and elsewhere.
struct __sfinae_types
{
typedef char __one;
@@ -151,262 +160,31 @@ namespace tr1
_DEFINE_SPEC(2, is_member_object_pointer, _Tp _Cp::*,
!is_function<_Tp>::value)
- // Due to c++/19076, for the time being we cannot use the correct, neat
- // implementation :-(
- //
- // template<typename>
- // struct is_member_function_pointer
- // : public false_type { };
- // _DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*,
- // is_function<_Tp>::value)
- //
- // Temporary workaround for member functions with up to 15 arguments:
template<typename>
- struct __is_mfp_helper
- { static const bool __value = false; };
-
- template<typename _Rt, typename _Cp>
- struct __is_mfp_helper<_Rt (_Cp::*) ()>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp>
- struct __is_mfp_helper<_Rt (_Cp::*) (...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11,
- typename _A12>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, _A12)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11,
- typename _A12>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, _A12, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11,
- typename _A12, typename _A13>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, _A12,
- _A13)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11,
- typename _A12, typename _A13>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, _A12,
- _A13, ...)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11,
- typename _A12, typename _A13, typename _A14>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, _A12,
- _A13, _A14)>
- { static const bool __value = true; };
-
- template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
- typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
- typename _A8, typename _A9, typename _A10, typename _A11,
- typename _A12, typename _A13, typename _A14>
- struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
- _A7, _A8, _A9, _A10, _A11, _A12,
- _A13, _A14, ...)>
- { static const bool __value = true; };
+ struct is_member_function_pointer
+ : public false_type { };
+ _DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*,
+ is_function<_Tp>::value)
template<typename _Tp>
- struct is_member_function_pointer
- : public integral_constant<bool, (__is_mfp_helper<typename
- remove_cv<_Tp>::type>::__value)>
+ struct is_enum
+ : public integral_constant<bool, !(is_fundamental<_Tp>::value
+ || is_array<_Tp>::value
+ || is_pointer<_Tp>::value
+ || is_reference<_Tp>::value
+ || is_member_pointer<_Tp>::value
+ || is_function<_Tp>::value
+ || __is_union_or_class<_Tp>::value)>
{ };
- template<typename _Tp, bool = (is_fundamental<_Tp>::value
- || is_array<_Tp>::value
- || is_pointer<_Tp>::value
- || is_reference<_Tp>::value
- || is_member_pointer<_Tp>::value
- || is_function<_Tp>::value)>
- struct __is_enum_helper
- : public __sfinae_types
- {
- private:
- static __one __test(bool);
- static __one __test(char);
- static __one __test(signed char);
- static __one __test(unsigned char);
-#ifdef _GLIBCXX_USE_WCHAR_T
- static __one __test(wchar_t);
-#endif
- static __one __test(short);
- static __one __test(unsigned short);
- static __one __test(int);
- static __one __test(unsigned int);
- static __one __test(long);
- static __one __test(unsigned long);
- static __one __test(long long);
- static __one __test(unsigned long long);
- static __two __test(...);
-
- struct __convert
- { operator _Tp() const; };
-
- public:
- static const bool __value = sizeof(__test(__convert())) == 1;
- };
-
- template<typename _Tp>
- struct __is_enum_helper<_Tp, true>
- { static const bool __value = false; };
+ template<typename>
+ struct is_union { };
- template<typename _Tp>
- struct is_enum
- : public integral_constant<bool, __is_enum_helper<_Tp>::__value> { };
+ template<typename>
+ struct is_class { };
- template<typename _Tp, bool = is_void<_Tp>::value>
+ template<typename _Tp, bool = (is_void<_Tp>::value
+ || is_reference<_Tp>::value)>
struct __is_function_helper
{
static const bool __value = (__conv_helper<typename
@@ -461,6 +239,26 @@ namespace tr1
(is_member_object_pointer<_Tp>::value
|| is_member_function_pointer<_Tp>::value)>
{ };
+
+ template<typename _Tp>
+ struct __is_union_or_class_helper
+ : public __sfinae_types
+ {
+ private:
+ template<typename _Up>
+ static __one __test(int _Up::*);
+ template<typename>
+ static __two __test(...);
+
+ public:
+ static const bool __value = sizeof(__test<_Tp>(0)) == 1;
+ };
+
+ // Extension.
+ template<typename _Tp>
+ struct __is_union_or_class
+ : public integral_constant<bool, __is_union_or_class_helper<_Tp>::__value>
+ { };
/// @brief type properties [4.5.3].
template<typename>
@@ -486,26 +284,21 @@ namespace tr1
remove_all_extents<_Tp>::type>::value)>
{ };
- template<typename>
- struct __is_empty_helper_1
- { };
-
- template<typename _Tp>
- struct __is_empty_helper_2
- : public _Tp { };
-
- // Unfortunately, without compiler support we cannot tell union from
- // class types, and is_empty doesn't work at all with the former.
- template<typename _Tp, bool = (is_fundamental<_Tp>::value
- || is_array<_Tp>::value
- || is_pointer<_Tp>::value
- || is_reference<_Tp>::value
- || is_member_pointer<_Tp>::value
- || is_enum<_Tp>::value
- || is_function<_Tp>::value)>
+ // N.B. Without compiler support we cannot tell union from class types,
+ // and is_empty and is_polymorphic don't work at all with the former.
+ template<typename _Tp, bool = !__is_union_or_class<_Tp>::value>
struct __is_empty_helper
- { static const bool __value = (sizeof(__is_empty_helper_1<_Tp>)
- == sizeof(__is_empty_helper_2<_Tp>)); };
+ {
+ private:
+ template<typename>
+ struct __first { };
+ template<typename _Up>
+ struct __second
+ : public _Up { };
+
+ public:
+ static const bool __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>);
+ };
template<typename _Tp>
struct __is_empty_helper<_Tp, true>
@@ -516,6 +309,34 @@ namespace tr1
: public integral_constant<bool, __is_empty_helper<_Tp>::__value>
{ };
+ template<typename _Tp, bool = !__is_union_or_class<_Tp>::value>
+ struct __is_polymorphic_helper
+ {
+ private:
+ template<typename _Up>
+ struct __first
+ : public _Up { };
+ template<typename _Up>
+ struct __second
+ : public _Up
+ {
+ virtual void __dummy();
+ virtual ~__second();
+ };
+
+ public:
+ static const bool __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>);
+ };
+
+ template<typename _Tp>
+ struct __is_polymorphic_helper<_Tp, true>
+ { static const bool __value = false; };
+
+ template<typename _Tp>
+ struct is_polymorphic
+ : public integral_constant<bool, __is_polymorphic_helper<_Tp>::__value>
+ { };
+
// Exploit the resolution DR core/337.
template<typename _Tp, bool = !is_object<_Tp>::value>
struct __is_abstract_helper
@@ -638,6 +459,76 @@ namespace tr1
struct is_same<_Tp, _Tp>
: public true_type { };
+ // See Daveed Vandevoorde explanation in http://tinyurl.com/502f.
+ // Also see Rani Sharoni in http://tinyurl.com/6jvyq.
+ template<typename _Base, typename _Derived,
+ bool = (!__is_union_or_class<_Base>::value
+ || !__is_union_or_class<_Derived>::value
+ || is_same<_Base, _Derived>::value)>
+ struct __is_base_of_helper
+ : public __sfinae_types
+ {
+ private:
+ typedef typename remove_cv<_Base>::type _NoCv_Base;
+ typedef typename remove_cv<_Derived>::type _NoCv_Derived;
+
+ template<typename _Up>
+ static __one __test(_NoCv_Derived&, _Up);
+ static __two __test(_NoCv_Base&, int);
+
+ struct _Conv
+ {
+ operator _NoCv_Derived&();
+ operator _NoCv_Base&() const;
+ };
+
+ public:
+ static const bool __value = sizeof(__test(_Conv(), 0)) == 1;
+ };
+
+ template<typename _Base, typename _Derived>
+ struct __is_base_of_helper<_Base, _Derived, true>
+ { static const bool __value = is_same<_Base, _Derived>::value; };
+
+ template<typename _Base, typename _Derived>
+ struct is_base_of
+ : public integral_constant<bool,
+ __is_base_of_helper<_Base, _Derived>::__value>
+ { };
+
+ template<typename _Tp>
+ struct __is_int_or_cref
+ {
+ typedef typename remove_reference<_Tp>::type __rr_Tp;
+ static const bool __value = (is_integral<_Tp>::value
+ || (is_integral<__rr_Tp>::value
+ && is_const<__rr_Tp>::value
+ && !is_volatile<__rr_Tp>::value));
+ };
+
+ template<typename _From, typename _To,
+ bool = (is_function<_To>::value || is_array<_To>::value
+ // This special case is here only to avoid warnings.
+ || (is_floating_point<typename
+ remove_reference<_From>::type>::value
+ && __is_int_or_cref<_To>::__value))>
+ struct __is_convertible_helper
+ {
+ // "An imaginary lvalue of type From...".
+ static const bool __value = (__conv_helper<typename
+ add_reference<_From>::type, _To>::__value);
+ };
+
+ template<typename _From, typename _To>
+ struct __is_convertible_helper<_From, _To, true>
+ { static const bool __value = __is_int_or_cref<_To>::__value; };
+
+ template<typename _From, typename _To>
+ struct is_convertible
+ : public integral_constant<bool,
+ __is_convertible_helper<_From, _To>::__value>
+ { };
+
/// @brief const-volatile modifications [4.7.1].
template<typename _Tp>
struct remove_const
diff --git a/libstdc++-v3/include/tr1/type_traits_fwd.h b/libstdc++-v3/include/tr1/type_traits_fwd.h
index 46beade5819..2d25d9b4c14 100644
--- a/libstdc++-v3/include/tr1/type_traits_fwd.h
+++ b/libstdc++-v3/include/tr1/type_traits_fwd.h
@@ -18,6 +18,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.
+
/** @file type_traits_fwd.h
* This is an internal header file, included by other library headers.
* You should not attempt to use it directly.
@@ -94,6 +103,10 @@ namespace tr1
template<typename _Tp>
struct is_member_pointer;
+
+ // Extension.
+ template<typename _Tp>
+ struct __is_union_or_class;
/// @brief type properties [4.5.3].
template<typename _Tp>
diff --git a/libstdc++-v3/include/tr1/unordered_map b/libstdc++-v3/include/tr1/unordered_map
new file mode 100644
index 00000000000..e35683d36aa
--- /dev/null
+++ b/libstdc++-v3/include/tr1/unordered_map
@@ -0,0 +1,166 @@
+// TR1 unordered_map -*- C++ -*-
+
+// Copyright (C) 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
+// 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.
+
+/** @file
+ * This is a TR1 C++ Library header.
+ */
+
+#ifndef GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
+#define GNU_LIBSTDCXX_TR1_UNORDERED_MAP_
+
+#include <tr1/hashtable>
+#include <tr1/functional>
+#include <tr1/functional>
+#include <utility>
+#include <memory>
+
+namespace std { namespace tr1 {
+
+// XXX When we get typedef templates these class definitions will be unnecessary.
+
+template <class Key, class T,
+ class Hash = hash<Key>,
+ class Pred = std::equal_to<Key>,
+ class Alloc = std::allocator<std::pair<const Key, T> >,
+ bool cache_hash_code = false>
+class unordered_map
+ : public hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, true>
+{
+ typedef hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, true>
+ Base;
+
+public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit unordered_map(size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(),
+ a)
+ { }
+
+ template <typename InputIterator>
+ unordered_map(InputIterator f, InputIterator l,
+ size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l,
+ n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(),
+ a)
+ { }
+};
+
+template <class Key, class T,
+ class Hash = hash<Key>,
+ class Pred = std::equal_to<Key>,
+ class Alloc = std::allocator<std::pair<const Key, T> >,
+ bool cache_hash_code = false>
+class unordered_multimap
+ : public hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, false>
+{
+ typedef hashtable <Key, std::pair<const Key, T>,
+ Alloc,
+ Internal::extract1st<std::pair<const Key, T> >, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, true, false>
+ Base;
+
+public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit unordered_multimap(size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(),
+ a)
+ { }
+
+
+ template <typename InputIterator>
+ unordered_multimap(InputIterator f, InputIterator l,
+ typename Base::size_type n = 0,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l,
+ n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::extract1st<std::pair<const Key, T> >(),
+ a)
+ { }
+};
+
+template <class Key, class T, class Hash, class Pred, class Alloc, bool cache_hash_code>
+inline void swap (unordered_map<Key, T, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_map<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
+{
+ x.swap(y);
+}
+
+template <class Key, class T, class Hash, class Pred, class Alloc, bool cache_hash_code>
+inline void swap (unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
+{
+ x.swap(y);
+}
+
+} }
+
+#endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */
diff --git a/libstdc++-v3/include/tr1/unordered_set b/libstdc++-v3/include/tr1/unordered_set
new file mode 100644
index 00000000000..e0f75f05c13
--- /dev/null
+++ b/libstdc++-v3/include/tr1/unordered_set
@@ -0,0 +1,160 @@
+// TR1 unordered_set -*- C++ -*-
+
+// Copyright (C) 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
+// 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.
+
+/** @file
+ * This is a TR1 C++ Library header.
+ */
+
+#ifndef GNU_LIBSTDCXX_TR1_UNORDERED_SET_
+#define GNU_LIBSTDCXX_TR1_UNORDERED_SET_
+
+#include <tr1/hashtable>
+#include <tr1/functional>
+#include <memory>
+
+namespace std { namespace tr1 {
+
+// XXX When we get typedef templates these class definitions will be unnecessary.
+
+template <class Value,
+ class Hash = hash<Value>,
+ class Pred = std::equal_to<Value>,
+ class Alloc = std::allocator<Value>,
+ bool cache_hash_code = false>
+class unordered_set
+ : public hashtable <Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, true>
+{
+ typedef hashtable <Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, true>
+ Base;
+
+public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit unordered_set(size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(),
+ a)
+ { }
+
+ template <typename InputIterator>
+ unordered_set(InputIterator f, InputIterator l,
+ size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l,
+ n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(),
+ a)
+ { }
+};
+
+template <class Value,
+ class Hash = hash<Value>,
+ class Pred = std::equal_to<Value>,
+ class Alloc = std::allocator<Value>,
+ bool cache_hash_code = false>
+class unordered_multiset
+ : public hashtable <Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, false>
+{
+ typedef hashtable <Value, Value, Alloc,
+ Internal::identity<Value>, Pred,
+ Hash, Internal::mod_range_hashing, Internal::default_ranged_hash,
+ Internal::prime_rehash_policy,
+ cache_hash_code, false, false>
+ Base;
+
+public:
+ typedef typename Base::size_type size_type;
+ typedef typename Base::hasher hasher;
+ typedef typename Base::key_equal key_equal;
+ typedef typename Base::allocator_type allocator_type;
+
+ explicit unordered_multiset(size_type n = 10,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(),
+ a)
+ { }
+
+
+ template <typename InputIterator>
+ unordered_multiset(InputIterator f, InputIterator l,
+ typename Base::size_type n = 0,
+ const hasher& hf = hasher(),
+ const key_equal& eql = key_equal(),
+ const allocator_type& a = allocator_type())
+ : Base (f, l,
+ n,
+ hf, Internal::mod_range_hashing(), Internal::default_ranged_hash(),
+ eql, Internal::identity<Value>(),
+ a)
+ { }
+};
+
+template <class Value, class Hash, class Pred, class Alloc, bool cache_hash_code>
+inline void swap (unordered_set<Value, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_set<Value, Hash, Pred, Alloc, cache_hash_code>& y)
+{
+ x.swap(y);
+}
+
+template <class Value, class Hash, class Pred, class Alloc, bool cache_hash_code>
+inline void swap (unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& x,
+ unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& y)
+{
+ x.swap(y);
+}
+
+} }
+
+#endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */
diff --git a/libstdc++-v3/include/tr1/utility b/libstdc++-v3/include/tr1/utility
index 6a74dfaf4d8..645edb6592f 100644
--- a/libstdc++-v3/include/tr1/utility
+++ b/libstdc++-v3/include/tr1/utility
@@ -18,6 +18,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.
+
/** @file
* This is a TR1 C++ Library header.
*/
diff --git a/libstdc++-v3/libsupc++/eh_alloc.cc b/libstdc++-v3/libsupc++/eh_alloc.cc
index 4728bcbf380..e43b0790c43 100644
--- a/libstdc++-v3/libsupc++/eh_alloc.cc
+++ b/libstdc++-v3/libsupc++/eh_alloc.cc
@@ -77,6 +77,14 @@ using namespace __cxxabiv1;
# define EMERGENCY_OBJ_COUNT 4
#endif
+/* APPLE LOCAL begin reduce emergency buffer size */
+/* 256 bytes is more than large enough for an std::bad_alloc object */
+#undef EMERGENCY_OBJ_SIZE
+#undef EMERGENCY_OBJ_COUNT
+#define EMERGENCY_OBJ_SIZE 256
+#define EMERGENCY_OBJ_COUNT 2
+/* APPLE LOCAL end reduce emergency buffer size */
+
#if INT_MAX == 32767 || EMERGENCY_OBJ_COUNT <= 32
typedef unsigned int bitmask_type;
#else
@@ -147,6 +155,12 @@ __cxxabiv1::__cxa_allocate_exception(std::size_t thrown_size) throw()
std::terminate ();
}
+ // We have an uncaught exception as soon as we allocate memory. This
+ // yields uncaught_exception() true during the copy-constructor that
+ // initializes the exception object. See Issue 475.
+ __cxa_eh_globals *globals = __cxa_get_globals ();
+ globals->uncaughtExceptions += 1;
+
memset (ret, 0, sizeof (__cxa_exception));
return (void *)((char *)ret + sizeof (__cxa_exception));
diff --git a/libstdc++-v3/libsupc++/eh_catch.cc b/libstdc++-v3/libsupc++/eh_catch.cc
index bdcbd7e085c..ba4b7d75f48 100644
--- a/libstdc++-v3/libsupc++/eh_catch.cc
+++ b/libstdc++-v3/libsupc++/eh_catch.cc
@@ -33,6 +33,15 @@
using namespace __cxxabiv1;
+extern "C" void *
+__cxxabiv1::__cxa_get_exception_ptr(void *exc_obj_in) throw()
+{
+ _Unwind_Exception *exceptionObject
+ = reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
+ __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
+
+ return header->adjustedPtr;
+}
extern "C" void *
__cxxabiv1::__cxa_begin_catch (void *exc_obj_in) throw()
@@ -61,15 +70,14 @@ __cxxabiv1::__cxa_begin_catch (void *exc_obj_in) throw()
}
int count = header->handlerCount;
+ // Count is less than zero if this exception was rethrown from an
+ // immediately enclosing region.
if (count < 0)
- // This exception was rethrown from an immediately enclosing region.
count = -count + 1;
else
- {
- count += 1;
- globals->uncaughtExceptions -= 1;
- }
+ count += 1;
header->handlerCount = count;
+ globals->uncaughtExceptions -= 1;
if (header != prev)
{
@@ -107,10 +115,7 @@ __cxxabiv1::__cxa_end_catch ()
// This exception was rethrown. Decrement the (inverted) catch
// count and remove it from the chain when it reaches zero.
if (++count == 0)
- {
- globals->uncaughtExceptions += 1;
- globals->caughtExceptions = header->nextException;
- }
+ globals->caughtExceptions = header->nextException;
}
else if (--count == 0)
{
diff --git a/libstdc++-v3/libsupc++/eh_globals.cc b/libstdc++-v3/libsupc++/eh_globals.cc
index 0f0dee58d45..3243e2ae414 100644
--- a/libstdc++-v3/libsupc++/eh_globals.cc
+++ b/libstdc++-v3/libsupc++/eh_globals.cc
@@ -41,41 +41,15 @@ using namespace __cxxabiv1;
static __cxa_eh_globals globals_static;
#if __GTHREADS
-static __gthread_key_t globals_key;
+/* APPLE LOCAL begin radar 3373515 */
static int use_thread_key = -1;
static void
-get_globals_dtor (void *ptr)
-{
- if (ptr)
- {
- __cxa_exception *exn, *next;
- exn = ((__cxa_eh_globals *) ptr)->caughtExceptions;
- while (exn)
- {
- next = exn->nextException;
- _Unwind_DeleteException (&exn->unwindHeader);
- exn = next;
- }
- std::free (ptr);
- }
-}
-
-static void
-get_globals_init ()
-{
- use_thread_key =
- (__gthread_key_create (&globals_key, get_globals_dtor) == 0);
-}
-
-static void
get_globals_init_once ()
{
- static __gthread_once_t once = __GTHREAD_ONCE_INIT;
- if (__gthread_once (&once, get_globals_init) != 0
- || use_thread_key < 0)
- use_thread_key = 0;
+ use_thread_key = 1;
}
+/* APPLE LOCAL end radar 3373515 */
#endif
extern "C" __cxa_eh_globals *
@@ -83,7 +57,9 @@ __cxxabiv1::__cxa_get_globals_fast () throw()
{
#if __GTHREADS
if (use_thread_key)
- return (__cxa_eh_globals *) __gthread_getspecific (globals_key);
+ /* APPLE LOCAL begin radar 3373515 */
+ return (__cxa_eh_globals *) _keymgr_get_per_thread_data (KEYMGR_EH_GLOBALS_KEY);
+ /* APPLE LOCAL end radar 3373515 */
else
return &globals_static;
#else
@@ -109,12 +85,16 @@ __cxxabiv1::__cxa_get_globals () throw()
return &globals_static;
}
- g = (__cxa_eh_globals *) __gthread_getspecific (globals_key);
+ /* APPLE LOCAL begin radar 3373515 */
+ g = (__cxa_eh_globals *) _keymgr_get_per_thread_data (KEYMGR_EH_GLOBALS_KEY);
+ /* APPLE LOCAL end radar 3373515 */
if (! g)
{
if ((g = (__cxa_eh_globals *)
std::malloc (sizeof (__cxa_eh_globals))) == 0
- || __gthread_setspecific (globals_key, (void *) g) != 0)
+ /* APPLE LOCAL begin radar 3373515 */
+ || KEYMGR_SET_PER_THREAD_DATA (KEYMGR_EH_GLOBALS_KEY, (void *) g) != 0)
+ /* APPLE LOCAL end radar 3373515 */
std::terminate ();
g->caughtExceptions = 0;
g->uncaughtExceptions = 0;
diff --git a/libstdc++-v3/libsupc++/eh_terminate.cc b/libstdc++-v3/libsupc++/eh_terminate.cc
index bf9d74db116..14b5c88e013 100644
--- a/libstdc++-v3/libsupc++/eh_terminate.cc
+++ b/libstdc++-v3/libsupc++/eh_terminate.cc
@@ -34,6 +34,12 @@
#include "unwind-cxx.h"
#include "exception_defines.h"
+/* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+#include "bits/os_defines.h"
+#endif
+/* APPLE LOCAL end keymgr */
+
using namespace __cxxabiv1;
void
@@ -50,6 +56,18 @@ __cxxabiv1::__terminate (std::terminate_handler handler)
void
std::terminate ()
{
+ /* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ /*
+ * If the Key Manager has a terminate function assigned to this thread, invoke that fn.
+ * If not (KeyMgr has 0), use whatever is initialized into my local static pointer (above).
+ */
+ std::terminate_handler __keymgr_terminate_func = (std::terminate_handler)
+ _keymgr_get_per_thread_data (KEYMGR_TERMINATE_HANDLER_KEY);
+ if (__keymgr_terminate_func)
+ __terminate_handler = __keymgr_terminate_func;
+#endif /* APPLE_KEYMGR */
+ /* APPLE LOCAL end keymgr */
__terminate (__terminate_handler);
}
@@ -63,13 +81,32 @@ __cxxabiv1::__unexpected (std::unexpected_handler handler)
void
std::unexpected ()
{
+ /* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ /* Similar to terminate case above. */
+ std::unexpected_handler __keymgr_unexpected_func = (std::unexpected_handler)
+ _keymgr_get_per_thread_data (KEYMGR_UNEXPECTED_HANDLER_KEY);
+ if (__keymgr_unexpected_func)
+ __unexpected_handler = __keymgr_unexpected_func;
+#endif /* APPLE_KEYMGR */
+ /* APPLE LOCAL end keymgr */
__unexpected (__unexpected_handler);
}
std::terminate_handler
std::set_terminate (std::terminate_handler func) throw()
{
+ /* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ std::terminate_handler old =
+ (std::terminate_handler) _keymgr_get_per_thread_data (KEYMGR_TERMINATE_HANDLER_KEY);
+ _keymgr_set_per_thread_data (KEYMGR_TERMINATE_HANDLER_KEY, (void *) func) ;
+ if ( ! old)
+ old = __terminate_handler;
+#else
std::terminate_handler old = __terminate_handler;
+#endif /* APPLE_KEYMGR */
+ /* APPLE LOCAL end keymgr */
__terminate_handler = func;
return old;
}
@@ -77,7 +114,17 @@ std::set_terminate (std::terminate_handler func) throw()
std::unexpected_handler
std::set_unexpected (std::unexpected_handler func) throw()
{
+ /* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ std::unexpected_handler old =
+ (std::unexpected_handler) _keymgr_get_per_thread_data (KEYMGR_UNEXPECTED_HANDLER_KEY);
+ _keymgr_set_per_thread_data (KEYMGR_UNEXPECTED_HANDLER_KEY, (void *) func);
+ if ( ! old)
+ old = __unexpected_handler;
+#else
std::unexpected_handler old = __unexpected_handler;
+#endif /* APPLE_KEYMGR */
+ /* APPLE LOCAL end keymgr */
__unexpected_handler = func;
return old;
}
diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc
index b02efdad6dc..0807c5e1df7 100644
--- a/libstdc++-v3/libsupc++/eh_throw.cc
+++ b/libstdc++-v3/libsupc++/eh_throw.cc
@@ -66,9 +66,6 @@ __cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo,
header->unwindHeader.exception_class = __gxx_exception_class;
header->unwindHeader.exception_cleanup = __gxx_exception_cleanup;
- __cxa_eh_globals *globals = __cxa_get_globals ();
- globals->uncaughtExceptions += 1;
-
#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
_Unwind_SjLj_RaiseException (&header->unwindHeader);
#else
@@ -86,6 +83,8 @@ __cxxabiv1::__cxa_rethrow ()
__cxa_eh_globals *globals = __cxa_get_globals ();
__cxa_exception *header = globals->caughtExceptions;
+ globals->uncaughtExceptions += 1;
+
// Watch for luser rethrowing with no active exception.
if (header)
{
diff --git a/libstdc++-v3/libsupc++/new_handler.cc b/libstdc++-v3/libsupc++/new_handler.cc
index 2f9f6bd3579..42b19e69367 100644
--- a/libstdc++-v3/libsupc++/new_handler.cc
+++ b/libstdc++-v3/libsupc++/new_handler.cc
@@ -31,6 +31,12 @@
#include "new"
+/* APPLE LOCAL begin keymgr */
+#if defined APPLE_KEYMGR && ! defined(LIBCC_KEXT) && ! defined(APPLE_KERNEL_EXTENSION)
+#include "bits/os_defines.h"
+#endif
+/* APPLE LOCAL end keymgr */
+
const std::nothrow_t std::nothrow = { };
using std::new_handler;
@@ -39,9 +45,23 @@ new_handler __new_handler;
new_handler
std::set_new_handler (new_handler handler) throw()
{
+/* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ new_handler prev_handler =
+ (new_handler) _keymgr_get_per_thread_data (KEYMGR_NEW_HANLDER_KEY);
+ if ( ! prev_handler)
+ prev_handler = __new_handler;
+ _keymgr_set_per_thread_data (KEYMGR_NEW_HANLDER_KEY, (void *) handler);
+#else /* ! APPLE_KEYMGR */
new_handler prev_handler = __new_handler;
+#endif /* APPLE_KEYMGR */
+/* APPLE LOCAL end keymgr */
__new_handler = handler;
return prev_handler;
}
+/* APPLE LOCAL begin libcc_kext */
+#if !defined(LIBCC_KEXT)
std::bad_alloc::~bad_alloc() throw() { }
+#endif
+/* APPLE LOCAL end libcc_kext */
diff --git a/libstdc++-v3/libsupc++/new_op.cc b/libstdc++-v3/libsupc++/new_op.cc
index 43c22405eb5..124fcdd68f4 100644
--- a/libstdc++-v3/libsupc++/new_op.cc
+++ b/libstdc++-v3/libsupc++/new_op.cc
@@ -30,13 +30,25 @@
// the GNU General Public License.
#include "new"
+/* APPLE LOCAL begin libcc_kext */
+#ifdef LIBCC_KEXT
+extern "C" {
+extern void *malloc (size_t);
+extern int panic ();
+}
+#define ABORT() panic ()
+#else
#include <cstdlib>
+#define ABORT() std::abort ()
+#endif
+/* APPLE LOCAL end libcc_kext */
#include <exception_defines.h>
#include <bits/c++config.h>
using std::new_handler;
using std::bad_alloc;
-#if _GLIBCXX_HOSTED
+/* APPLE LOCAL libcc_kext */
+#if _GLIBCXX_HOSTED && !defined(LIBCC_KEXT)
using std::malloc;
#else
// A freestanding C runtime may not provide "malloc" -- but there is no
@@ -57,12 +69,21 @@ operator new (std::size_t sz) throw (std::bad_alloc)
p = (void *) malloc (sz);
while (p == 0)
{
+ /* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ /* Ask Key Manager for new_handler; if provided (!=0), use it, else use local version. */
+ new_handler handler =
+ (new_handler) _keymgr_get_per_thread_data (KEYMGR_NEW_HANLDER_KEY);
+#else /* ! APPLE_KEYMGR */
new_handler handler = __new_handler;
+#endif /* APPLE_KEYMGR */
+ /* APPLE LOCAL end keymgr */
if (! handler)
#ifdef __EXCEPTIONS
throw bad_alloc();
#else
- std::abort();
+ /* APPLE LOCAL libcc_kext */
+ ABORT();
#endif
handler ();
p = (void *) malloc (sz);
diff --git a/libstdc++-v3/libsupc++/new_opnt.cc b/libstdc++-v3/libsupc++/new_opnt.cc
index c25ce5a2d30..8f61ebd79c7 100644
--- a/libstdc++-v3/libsupc++/new_opnt.cc
+++ b/libstdc++-v3/libsupc++/new_opnt.cc
@@ -31,6 +31,12 @@
#include <exception_defines.h>
#include <bits/c++config.h>
+/* APPLE LOCAL begin keymgr */
+#if defined APPLE_KEYMGR && ! defined(LIBCC_KEXT) && ! defined(APPLE_KERNEL_EXTENSION)
+#include "bits/os_defines.h"
+#endif /* APPLE_KEYMGR */
+/* APPLE LOCAL end keymgr */
+
using std::new_handler;
using std::bad_alloc;
@@ -48,7 +54,14 @@ operator new (std::size_t sz, const std::nothrow_t&) throw()
p = (void *) malloc (sz);
while (p == 0)
{
+ /* APPLE LOCAL begin keymgr */
+#if defined(APPLE_KEYMGR) && ! defined(APPLE_KERNEL_EXTENSION) && ! defined(LIBCC_KEXT)
+ new_handler handler =
+ (new_handler) _keymgr_get_per_thread_data (KEYMGR_NEW_HANLDER_KEY);
+#else /* ! APPLE_KEYMGR */
new_handler handler = __new_handler;
+#endif /* APPLE_KEYMGR */
+ /* APPLE LOCAL end keymgr */
if (! handler)
return 0;
try
diff --git a/libstdc++-v3/libsupc++/pure.cc b/libstdc++-v3/libsupc++/pure.cc
index 2e75492e705..82011dbc1e8 100644
--- a/libstdc++-v3/libsupc++/pure.cc
+++ b/libstdc++-v3/libsupc++/pure.cc
@@ -27,9 +27,13 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
+/* APPLE LOCAL begin libcc_kext */
+#ifndef LIBCC_KEXT /* Kludge: easier than identifying correct -Ipath, and unnecessary for kext */
#include <bits/c++config.h>
#include <cxxabi.h>
#include "unwind-cxx.h"
+#endif
+/* APPLE LOCAL end libcc_kext */
#if _GLIBCXX_HOSTED
#ifdef _GLIBCXX_HAVE_UNISTD_H
@@ -51,6 +55,14 @@
extern "C" void
__cxxabiv1::__cxa_pure_virtual (void)
{
+
+/* APPLE LOCAL begin libcc_kext */
+#ifndef LIBCC_KEXT
writestr ("pure virtual method called\n");
std::terminate ();
+#else
+ extern void panic (void);
+ panic ();
+#endif
+/* APPLE LOCAL end libcc_kext */
}
diff --git a/libstdc++-v3/libsupc++/unwind-cxx.h b/libstdc++-v3/libsupc++/unwind-cxx.h
index 67ea5cc2110..e79dd83628e 100644
--- a/libstdc++-v3/libsupc++/unwind-cxx.h
+++ b/libstdc++-v3/libsupc++/unwind-cxx.h
@@ -107,6 +107,7 @@ extern "C" void __cxa_throw (void *thrown_exception,
__attribute__((noreturn));
// Used to implement exception handlers.
+extern "C" void *__cxa_get_exception_ptr (void *) throw();
extern "C" void *__cxa_begin_catch (void *) throw();
extern "C" void __cxa_end_catch ();
extern "C" void __cxa_rethrow () __attribute__((noreturn));
diff --git a/libstdc++-v3/scripts/check_performance b/libstdc++-v3/scripts/check_performance
index b395fcb14e0..f5d2351d837 100755
--- a/libstdc++-v3/scripts/check_performance
+++ b/libstdc++-v3/scripts/check_performance
@@ -32,42 +32,50 @@ SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \
-Wl,--rpath -Wl,$BUILD_DIR/src/.libs"
ST_FLAG="-static"
LINK=$SH_FLAG
-CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS -DNOTHREAD $LINK"
-CXX_THREAD="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $THREAD_FLAG $LINK"
-
-
+CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $LINK"
TESTS_FILE="testsuite_files_performance"
for NAME in `cat $TESTS_FILE`
do
RUN=true
+
+ # TEST_S == single thread
+ # TEST_B == do both single and multi-thread
+ # TEST_T == multi-thread
for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME`
do
RUN=false
echo $NAME $CYCLE
FILE_NAME="`basename $NAME`"
- EXE_NAME="`echo $FILE_NAME-$CYCLE | sed 's/cc$/exe/'`"
- $CXX -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
- ./$EXE_NAME
- echo ""
+ FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
+ EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
+ $CXX -DNOTHREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
+ if [ -f $EXE_NAME ]; then
+ ./$EXE_NAME
+ fi
done
+
for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME`
do
RUN=false
- echo $NAME $CYCLE THREAD
+ echo $NAME $CYCLE thread
FILE_NAME="`basename $NAME`"
- EXE_NAME="`echo $FILE_NAME-$CYCLE | sed 's/cc$/exe/'`"
- $CXX_THREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
- ./$EXE_NAME
- echo ""
+ FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
+ EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
+ $CXX $THREAD_FLAG -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
+ if [ -f $EXE_NAME ]; then
+ ./$EXE_NAME
+ fi
done
+
if $RUN; then
echo $NAME
FILE_NAME="`basename $NAME`"
EXE_NAME="`echo $FILE_NAME | sed 's/cc$/exe/'`"
$CXX $SRC_DIR/testsuite/$NAME -o $EXE_NAME
- ./$EXE_NAME
- echo ""
+ if [ -f $EXE_NAME ]; then
+ ./$EXE_NAME
+ fi
fi
done
diff --git a/libstdc++-v3/scripts/gen_bind_includers.pl b/libstdc++-v3/scripts/gen_bind_includers.pl
new file mode 100644
index 00000000000..52b11d28332
--- /dev/null
+++ b/libstdc++-v3/scripts/gen_bind_includers.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/perl -w
+use English;
+
+$max = shift @ARGV;
+
+$template_params = "typename _U1";
+$template_args = "_U1";
+$params = "_U1& __u1";
+$args = "__u1";
+
+for ($num_args = 2; $num_args <= $max; ++$num_args) {
+ $template_params .= ", typename _U$num_args";
+ $template_args .= ", _U$num_args";
+ $params .= ", _U$num_args& __u$num_args";
+ $args .= ", __u$num_args";
+ print "#define _GLIBCXX_BIND_NUM_ARGS $num_args\n";
+ print "#define _GLIBCXX_BIND_COMMA ,\n";
+ print "#define _GLIBCXX_BIND_TEMPLATE_PARAMS $template_params\n";
+ print "#define _GLIBCXX_BIND_TEMPLATE_ARGS $template_args\n";
+ print "#define _GLIBCXX_BIND_PARAMS $params\n";
+ print "#define _GLIBCXX_BIND_ARGS $args\n";
+ print "#include _GLIBCXX_BIND_REPEAT_HEADER\n";
+ print "#undef _GLIBCXX_BIND_ARGS\n";
+ print "#undef _GLIBCXX_BIND_PARAMS\n";
+ print "#undef _GLIBCXX_BIND_TEMPLATE_ARGS\n";
+ print "#undef _GLIBCXX_BIND_TEMPLATE_PARAMS\n";
+ print "#undef _GLIBCXX_BIND_COMMA\n";
+ print "#undef _GLIBCXX_BIND_NUM_ARGS\n";
+ print "\n";
+}
diff --git a/libstdc++-v3/scripts/gen_includers.pl b/libstdc++-v3/scripts/gen_includers.pl
new file mode 100644
index 00000000000..bfc3a7ec59d
--- /dev/null
+++ b/libstdc++-v3/scripts/gen_includers.pl
@@ -0,0 +1,108 @@
+#!/usr/bin/perl -w
+use English;
+
+$max = shift @ARGV;
+
+$template_params = "typename _T1";
+$template_args = "_T1";
+$params = "_T1 __a1";
+$ref_params = "_T1& __a1";
+$args = "__a1";
+$bind_members = "_T1 _M_arg1;";
+$bind_members_init = "_M_arg1(__a1)";
+$mu_get_tuple_args = "::std::tr1::get<0>(__tuple)";
+$bind_v_template_args = "typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type";
+$bind_v_args = "_Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))";
+$tuple_add_cref = "typename __add_c_ref<_T1>::type __a1";
+$tuple_copy_init = "_M_arg1(__in._M_arg1)";
+$tuple_assign = "_M_arg1 = __in._M_arg1;";
+$template_params_u = "typename _U1";
+$template_args_u = "_U1";
+$ref_wrap_params = "ref(__a1)";
+$ref_template_args = "_T1&";
+for ($num_args = 2; $num_args <= $max; ++$num_args) {
+ $prev_args = $num_args - 1;
+ $next_args = $num_args + 1;
+ $template_params_shifted = $template_params;
+ $template_args_shifted = $template_args;
+ $params_shifted = $params;
+ $args_shifted = $args;
+ $template_params .= ", typename _T$num_args";
+ $template_args .= ", _T$num_args";
+ $params .= ", _T$num_args __a$num_args";
+ $ref_params .=", _T$num_args& __a$num_args";
+ $args .= ", __a$num_args";
+ $bind_members .= " _T$num_args _M_arg$num_args;";
+ $bind_members_init .= ", _M_arg$num_args(__a$num_args)";
+ $mu_get_tuple_args .= ", ::std::tr1::get<$prev_args>(__tuple)";
+ $bind_v_template_args .= ", typename result_of<_Mu<_T$num_args> _CV(_T$num_args, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type";
+ $bind_v_args .= ", _Mu<_T$num_args>()(_M_arg$num_args, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))";
+ $tuple_add_cref .= ", typename __add_c_ref<_T$num_args>::type __a$num_args";
+ $tuple_copy_init .= ", _M_arg$num_args(__in._M_arg$num_args)";
+ $tuple_assign .= " _M_arg$num_args = __in._M_arg$num_args;";
+ $template_params_u .= ", typename _U$num_args";
+ $template_args_u .= ", _U$num_args";
+ $ref_wrap_params .= ", ref(__a$num_args)";
+ $ref_template_args .= ", _T$num_args&";
+
+ print "#define _GLIBCXX_NUM_ARGS $num_args\n";
+ print "#define _GLIBCXX_COMMA ,\n";
+ print "#define _GLIBCXX_TEMPLATE_PARAMS $template_params\n";
+ print "#define _GLIBCXX_TEMPLATE_ARGS $template_args\n";
+ print "#define _GLIBCXX_PARAMS $params\n";
+ print "#define _GLIBCXX_REF_PARAMS $ref_params\n";
+ print "#define _GLIBCXX_ARGS $args\n";
+ print "#define _GLIBCXX_COMMA_SHIFTED ,\n";
+ print "#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED $template_params_shifted\n";
+ print "#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED $template_args_shifted\n";
+ print "#define _GLIBCXX_PARAMS_SHIFTED $params_shifted\n";
+ print "#define _GLIBCXX_ARGS_SHIFTED $args_shifted\n";
+ print "#define _GLIBCXX_BIND_MEMBERS $bind_members\n";
+ print "#define _GLIBCXX_BIND_MEMBERS_INIT $bind_members_init\n";
+ print "#define _GLIBCXX_MU_GET_TUPLE_ARGS $mu_get_tuple_args\n";
+ print "#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) $bind_v_template_args\n";
+ print "#define _GLIBCXX_BIND_V_ARGS $bind_v_args\n";
+ print "#define _GLIBCXX_TUPLE_ADD_CREF $tuple_add_cref\n";
+ print "#define _GLIBCXX_TUPLE_COPY_INIT $tuple_copy_init\n";
+ print "#define _GLIBCXX_TUPLE_ASSIGN $tuple_assign\n";
+ print "#define _GLIBCXX_TEMPLATE_PARAMS_U $template_params_u\n";
+ print "#define _GLIBCXX_TEMPLATE_ARGS_U $template_args_u\n";
+ print "#define _GLIBCXX_REF_WRAP_PARAMS $ref_wrap_params\n";
+ print "#define _GLIBCXX_REF_TEMPLATE_ARGS $ref_template_args\n";
+ print "#define _GLIBCXX_NUM_ARGS_PLUS_1 $next_args\n";
+ print "#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T$next_args\n";
+ if ($num_args == $max) {
+ print "#define _GLIBCXX_LAST_INCLUDE\n"
+ }
+ print "#include _GLIBCXX_REPEAT_HEADER\n";
+ if ($num_args == $max) {
+ print "#undef _GLIBCXX_LAST_INCLUDE\n"
+ }
+ print "#undef _GLIBCXX_T_NUM_ARGS_PLUS_1\n";
+ print "#undef _GLIBCXX_NUM_ARGS_PLUS_1\n";
+ print "#undef _GLIBCXX_REF_TEMPLATE_ARGS\n";
+ print "#undef _GLIBCXX_REF_WRAP_PARAMS\n";
+ print "#undef _GLIBCXX_TEMPLATE_ARGS_U\n";
+ print "#undef _GLIBCXX_TEMPLATE_PARAMS_U\n";
+ print "#undef _GLIBCXX_TUPLE_ASSIGN\n";
+ print "#undef _GLIBCXX_TUPLE_COPY_INIT\n";
+ print "#undef _GLIBCXX_TUPLE_ADD_CREF\n";
+ print "#undef _GLIBCXX_BIND_V_ARGS\n";
+ print "#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS\n";
+ print "#undef _GLIBCXX_MU_GET_TUPLE_ARGS\n";
+ print "#undef _GLIBCXX_BIND_MEMBERS_INIT\n";
+ print "#undef _GLIBCXX_BIND_MEMBERS\n";
+ print "#undef _GLIBCXX_ARGS_SHIFTED\n";
+ print "#undef _GLIBCXX_PARAMS_SHIFTED\n";
+ print "#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED\n";
+ print "#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED\n";
+ print "#undef _GLIBCXX_COMMA_SHIFTED\n";
+ print "#undef _GLIBCXX_ARGS\n";
+ print "#undef _GLIBCXX_REF_PARAMS\n";
+ print "#undef _GLIBCXX_PARAMS\n";
+ print "#undef _GLIBCXX_TEMPLATE_ARGS\n";
+ print "#undef _GLIBCXX_TEMPLATE_PARAMS\n";
+ print "#undef _GLIBCXX_COMMA\n";
+ print "#undef _GLIBCXX_NUM_ARGS\n";
+ print "\n";
+}
diff --git a/libstdc++-v3/src/bitmap_allocator.cc b/libstdc++-v3/src/bitmap_allocator.cc
index c379664c31a..c8d94af2157 100644
--- a/libstdc++-v3/src/bitmap_allocator.cc
+++ b/libstdc++-v3/src/bitmap_allocator.cc
@@ -48,25 +48,20 @@ namespace __gnu_cxx
size_t const&, free_list::_LT_pointer_compare);
}
-#if defined __GTHREADS
- _Mutex free_list::_S_bfl_mutex;
-#endif
- free_list::vector_type free_list::_S_free_list;
-
size_t*
free_list::
_M_get(size_t __sz) throw(std::bad_alloc)
{
#if defined __GTHREADS
- _Lock __bfl_lock(&_S_bfl_mutex);
+ _Lock __bfl_lock(_M_get_mutex());
__bfl_lock._M_lock();
#endif
iterator __temp =
__gnu_cxx::balloc::__lower_bound
- (_S_free_list.begin(), _S_free_list.end(),
+ (_M_get_free_list().begin(), _M_get_free_list().end(),
__sz, _LT_pointer_compare());
- if (__temp == _S_free_list.end() || !_M_should_i_give(**__temp, __sz))
+ if (__temp == _M_get_free_list().end() || !_M_should_i_give(**__temp, __sz))
{
// We release the lock here, because operator new is
// guaranteed to be thread-safe by the underlying
@@ -101,7 +96,7 @@ namespace __gnu_cxx
else
{
size_t* __ret = *__temp;
- _S_free_list.erase(__temp);
+ _M_get_free_list().erase(__temp);
#if defined __GTHREADS
__bfl_lock._M_unlock();
#endif
@@ -114,15 +109,16 @@ namespace __gnu_cxx
_M_clear()
{
#if defined __GTHREADS
- _Auto_Lock __bfl_lock(&_S_bfl_mutex);
+ _Auto_Lock __bfl_lock(_M_get_mutex());
#endif
- iterator __iter = _S_free_list.begin();
- while (__iter != _S_free_list.end())
+ vector_type& __free_list = _M_get_free_list();
+ iterator __iter = __free_list.begin();
+ while (__iter != __free_list.end())
{
::operator delete((void*)*__iter);
++__iter;
}
- _S_free_list.clear();
+ __free_list.clear();
}
// Instantiations.
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc b/libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc
index 24b73333744..b8643e08c3f 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/find/char/3.cc
@@ -1,6 +1,6 @@
// 2003-05-04 Paolo Carlini <pcarlini@unitus.it>
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 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
@@ -63,7 +63,7 @@ bool test03(void)
// size_type find_first_not_of(const char* s, size_type pos, size_type n) const;
csz01 = str01.find_first_not_of(str_lit01, 0, 0);
VERIFY( csz01 == 0 );
- csz01 = str01.find_first_not_of(str_lit01, 0, 10);
+ csz01 = str01.find_first_not_of(str_lit01, 0, 8);
VERIFY( csz01 == 8 );
csz01 = str01.find_first_not_of(str_lit01, 10, 0);
VERIFY( csz01 == 10 );
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc b/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc
index 6964e013f30..dd27c438063 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/find/wchar_t/3.cc
@@ -1,6 +1,6 @@
// 2003-05-04 Paolo Carlini <pcarlini@unitus.it>
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 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
@@ -63,7 +63,7 @@ bool test03(void)
// size_type find_first_not_of(const char* s, size_type pos, size_type n) const;
csz01 = str01.find_first_not_of(str_lit01, 0, 0);
VERIFY( csz01 == 0 );
- csz01 = str01.find_first_not_of(str_lit01, 0, 10);
+ csz01 = str01.find_first_not_of(str_lit01, 0, 8);
VERIFY( csz01 == 8 );
csz01 = str01.find_first_not_of(str_lit01, 10, 0);
VERIFY( csz01 == 10 );
diff --git a/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc b/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
index 28c96055aef..c4a95b6cd81 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
@@ -19,6 +19,7 @@
// USA.
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc b/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
index 7c2cbca5e63..6819fa5411a 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc b/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
index 055abe4e2c0..f7c1cc06f1e 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc b/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
index 766ec03f89a..4fac2729585 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc b/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
index 7c2cbca5e63..6819fa5411a 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc b/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
index 055abe4e2c0..f7c1cc06f1e 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc b/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
index 0373c35b1c9..a52899b7625 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc b/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
index 8a0a5570c16..c3286289cc5 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc b/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
index bcfc10f0aff..b8bb537555a 100644
--- a/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
+++ b/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
@@ -21,6 +21,7 @@
// 22.2.4.1.1 collate members
// { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
// { dg-options "-finput-charset=ISO8859-1" }
// { dg-require-iconv "ISO8859-1" }
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc b/libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
new file mode 100644
index 00000000000..68659cc8bd6
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
@@ -0,0 +1,79 @@
+// 2005-04-09 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 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.
+
+// 22.2.2.2.1 num_put members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/20909
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ // A locale that expects grouping.
+ locale loc_de = __gnu_test::try_named_locale("de_DE");
+
+ const string empty;
+ string result;
+
+ ostringstream oss;
+ oss.imbue(loc_de);
+ const num_put<char>& np = use_facet<num_put<char> >(oss.getloc());
+
+ double d0 = 2e20;
+ double d1 = -2e20;
+
+ oss.str(empty);
+ oss.clear();
+ np.put(oss.rdbuf(), oss, '*', d0);
+ result = oss.str();
+ VERIFY( result == "2e+20" );
+
+ oss.str(empty);
+ oss.clear();
+ np.put(oss.rdbuf(), oss, '*', d1);
+ result = oss.str();
+ VERIFY( result == "-2e+20" );
+
+ oss.str(empty);
+ oss.clear();
+ oss.setf(ios::uppercase);
+ np.put(oss.rdbuf(), oss, '*', d0);
+ result = oss.str();
+ VERIFY( result == "2E+20" );
+
+ oss.str(empty);
+ oss.clear();
+ oss.setf(ios::showpos);
+ np.put(oss.rdbuf(), oss, '*', d0);
+ result = oss.str();
+ VERIFY( result == "+2E+20" );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
+
+
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc b/libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
new file mode 100644
index 00000000000..1043fe3b9c6
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
@@ -0,0 +1,79 @@
+// 2005-04-09 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 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.
+
+// 22.2.2.2.1 num_put members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/20909
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ // A locale that expects grouping.
+ locale loc_de = __gnu_test::try_named_locale("de_DE");
+
+ const wstring empty;
+ wstring result;
+
+ wostringstream oss;
+ oss.imbue(loc_de);
+ const num_put<wchar_t>& np = use_facet<num_put<wchar_t> >(oss.getloc());
+
+ double d0 = 2e20;
+ double d1 = -2e20;
+
+ oss.str(empty);
+ oss.clear();
+ np.put(oss.rdbuf(), oss, L'*', d0);
+ result = oss.str();
+ VERIFY( result == L"2e+20" );
+
+ oss.str(empty);
+ oss.clear();
+ np.put(oss.rdbuf(), oss, L'*', d1);
+ result = oss.str();
+ VERIFY( result == L"-2e+20" );
+
+ oss.str(empty);
+ oss.clear();
+ oss.setf(ios::uppercase);
+ np.put(oss.rdbuf(), oss, L'*', d0);
+ result = oss.str();
+ VERIFY( result == L"2E+20" );
+
+ oss.str(empty);
+ oss.clear();
+ oss.setf(ios::showpos);
+ np.put(oss.rdbuf(), oss, L'*', d0);
+ result = oss.str();
+ VERIFY( result == L"+2E+20" );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
+
+
diff --git a/libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc b/libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
index 69487473f3d..79486191766 100644
--- a/libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 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
@@ -33,7 +33,6 @@
#include <set>
#include <sstream>
-#include <testsuite_performance.h>
using namespace std;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
index dcb89a6dfa2..cbc4c7ac109 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2003, 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
@@ -40,9 +40,10 @@ void test01()
ifs1.open(name_01);
VERIFY( ifs1.is_open() );
- // fail bit still true
- VERIFY( !(ifs1) );
- VERIFY( ifs1.rdstate() == std::ios_base::failbit );
+
+ // As per the resolution of DR 409.
+ VERIFY( (ifs1) );
+ VERIFY( ifs1.rdstate() == std::ios_base::goodbit );
ifs1.close();
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
index 5bb02d4eb3c..64b9e342c38 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2003, 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
@@ -41,9 +41,10 @@ void test01()
ofs1.open(name_02);
VERIFY( ofs1.is_open() );
- // fail bit still true
- VERIFY( !(ofs1) );
- VERIFY( ofs1.rdstate() == std::ios_base::failbit );
+
+ // As per the resolution of DR 409.
+ VERIFY( (ofs1) );
+ VERIFY( ofs1.rdstate() == std::ios_base::goodbit );
ofs1.close();
}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
index 626d45c9f35..978ae203cd8 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
@@ -33,8 +33,8 @@ test03(void)
typedef wios::pos_type pos_type;
- const char* TEST_IN = "wostream_inserter_other_in";
- const char* TEST_OUT = "wostream_inserter_other_out";
+ const char* TEST_IN = "wostream_inserter_other_in.txt";
+ const char* TEST_OUT = "wostream_inserter_other_out.txt";
pos_type i_read, i_wrote, rs, ws;
double tf_size = BUFSIZ * 2.5;
ofstream testfile(TEST_IN);
diff --git a/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc b/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
index 442b91db209..37843756bc1 100644
--- a/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
+++ b/libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
@@ -22,10 +22,16 @@
#include <ext/bitmap_allocator.h>
#include <testsuite_allocator.h>
+typedef int value_type;
+
int main()
{
- typedef int value_type;
typedef __gnu_cxx::bitmap_allocator<value_type> allocator_type;
__gnu_test::check_allocate_max_size<allocator_type>();
return 0;
}
+
+#if !__GXX_WEAK
+// Explicitly instantiatiate for systems without weak symbols.
+template class __gnu_cxx::bitmap_allocator<value_type>;
+#endif
diff --git a/libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc b/libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
index ebe8114793b..9d7ae98dce0 100644
--- a/libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
+++ b/libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
@@ -22,10 +22,18 @@
#include <ext/bitmap_allocator.h>
#include <testsuite_allocator.h>
+typedef int value_type;
+
int main()
{
- typedef int value_type;
typedef __gnu_cxx::bitmap_allocator<value_type> allocator_type;
__gnu_test::check_deallocate_null<allocator_type>();
return 0;
}
+
+#if !__GXX_WEAK
+// Explicitly instantiatiate for systems without weak symbols.
+template class __gnu_cxx::bitmap_allocator<value_type>;
+#endif
+
+
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 0ac4196b7c3..7d7fa6c86bf 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -134,27 +134,34 @@ proc libstdc++_init { testfile } {
v3track gccdir 3
# 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 } {
- foreach i "[exec $compiler --print-multi-lib]" {
- set mldir ""
- regexp -- "\[a-z0-9=/\.-\]*;" $i mldir
- set mldir [string trimright $mldir "\;@"]
- if { "$mldir" == "." } {
- continue
- }
- if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
- append ld_library_path ":${gccdir}/${mldir}"
- }
- }
- }
- append ld_library_path ":${blddir}/src/.libs"
+ # APPLE LOCAL begin mainline
+ if {$gccdir != ""} {
+ set ld_library_path ""
+ append ld_library_path ":${gccdir}"
+ set compiler ${gccdir}/g++
+ append ld_library_path ":${blddir}/src/.libs"
+
+ if { [is_remote host] == 0 && [which $compiler] != 0 } {
+ foreach i "[exec $compiler --print-multi-lib]" {
+ set mldir ""
+ regexp -- "\[a-z0-9=/\.-\]*;" $i mldir
+ set mldir [string trimright $mldir "\;@"]
+ if { "$mldir" == "." } {
+ continue
+ }
+ if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
+ append ld_library_path ":${gccdir}/${mldir}"
+ }
+ }
+ }
- set_ld_library_path_env_vars
- if [info exists env(LD_LIBRARY_PATH)] {
- verbose -log "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
+ set_ld_library_path_env_vars
+ if [info exists env(LD_LIBRARY_PATH)] {
+ verbose -log "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
+ }
+ } else {
+ set compiler [transform "g++"]
+ # APPLE LOCAL end mainline
}
# Do a bunch of handstands and backflips for cross compiling and
@@ -176,7 +183,15 @@ proc libstdc++_init { testfile } {
set includes [exec sh $flags_file --build-includes]
} else {
set cxx [transform "g++"]
- set cxxflags "-ggdb3"
+ # APPLE LOCAL begin libstdc++ testing
+ # For standalone libstdc++ testing, we need to provide all
+ # the necessary compiler flags, since we do not have a
+ # testsuite_flags file to fall back on.
+ set cxxflags [concat "-g -O2 -D_GLIBCXX_ASSERT" \
+ " -ffunction-sections" \
+ " -fdata-sections -fmessage-length=0 -DAPPLE_KEYMGR" \
+ " -DLOCALEDIR=\"/usr/share/locale\""]
+ # APPLE LOCAL end libstdc++ testing
set includes "-I${srcdir}"
}
}
@@ -278,6 +293,39 @@ proc v3_target_compile { source dest type options } {
proc v3-list-tests { filename } {
global srcdir
global blddir
+ # APPLE LOCAL begin libstdc++ testing
+ global objdir
+ global libiconv
+
+ # If we are not running in a build directory, we will need to generate
+ # our own testsuite_files, and build our own libv3test.a as well.
+ if { $blddir == "" } {
+ set blddir ${objdir}
+ set libiconv "-liconv"
+ set tmp [exec mkdir ${blddir}/testsuite]
+ set tmp [exec touch ${blddir}/testsuite/testsuite_thread]
+ set tmp [exec touch ${blddir}/testsuite/testsuite_wchar_t]
+ set tmp [exec sh ${srcdir}/../scripts/create_testsuite_files \
+ ${srcdir} ${blddir}/testsuite]
+ # Build the support objects.
+ foreach f [list testsuite_abi.cc testsuite_allocator.cc \
+ testsuite_hooks.cc] {
+ set object_file ${blddir}/testsuite/[file rootname $f].o
+ # Compile with "-w" so that warnings issued by the compiler
+ # do not prevent compilation.
+ if { [v3_target_compile $srcdir/$f $object_file "object" \
+ [list "incdir=$srcdir" "additional_flags=-w"]]
+ != "" } {
+ error "could not compile $f"
+ }
+ }
+ set tmp [exec ar cru ${blddir}/testsuite/libv3test.a \
+ ${blddir}/testsuite/testsuite_abi.o \
+ ${blddir}/testsuite/testsuite_allocator.o \
+ ${blddir}/testsuite/testsuite_hooks.o]
+ set tmp [exec ranlib -c ${blddir}/testsuite/libv3test.a]
+ }
+ # APPLE LOCAL end libstdc++ testing
set tests_file "${blddir}/testsuite/${filename}"
set sfiles ""
diff --git a/libstdc++-v3/testsuite/testsuite_abi.cc b/libstdc++-v3/testsuite/testsuite_abi.cc
index 1120c7d3399..4b9534fb339 100644
--- a/libstdc++-v3/testsuite/testsuite_abi.cc
+++ b/libstdc++-v3/testsuite/testsuite_abi.cc
@@ -169,6 +169,7 @@ check_version(const symbol& test, bool added)
known_versions.push_back("CXXABI_1.2");
known_versions.push_back("CXXABI_1.2.1");
known_versions.push_back("CXXABI_1.3");
+ known_versions.push_back("CXXABI_1.3.1");
}
compat_list::iterator begin = known_versions.begin();
compat_list::iterator end = known_versions.end();
diff --git a/libstdc++-v3/testsuite/testsuite_tr1.h b/libstdc++-v3/testsuite/testsuite_tr1.h
index 74a187666fd..ea6affb37c1 100644
--- a/libstdc++-v3/testsuite/testsuite_tr1.h
+++ b/libstdc++-v3/testsuite/testsuite_tr1.h
@@ -32,10 +32,10 @@
#define _GLIBCXX_TESTSUITE_TR1_H
namespace __gnu_test
-{
+{
// For tr1/type_traits.
template<template<typename> class Category,
- typename Type>
+ typename Type>
bool
test_category(bool value)
{
@@ -52,7 +52,7 @@ namespace __gnu_test
}
template<template<typename> class Property,
- typename Type>
+ typename Type>
bool
test_property(typename Property<Type>::value_type value)
{
@@ -63,7 +63,7 @@ namespace __gnu_test
}
template<template<typename> class Property,
- typename Type>
+ typename Type>
bool
test_copy_property(bool value)
{
@@ -80,7 +80,7 @@ namespace __gnu_test
}
template<template<typename> class Property,
- typename Type>
+ typename Type>
bool
test_assign_property(bool value)
{
@@ -97,7 +97,7 @@ namespace __gnu_test
}
template<template<typename, typename> class Relationship,
- typename Type1, typename Type2>
+ typename Type1, typename Type2>
bool
test_relationship(bool value)
{
@@ -113,14 +113,90 @@ namespace __gnu_test
typedef volatile ClassType vClassType;
typedef const volatile ClassType cvClassType;
+ class DerivedType : public ClassType { };
+
enum EnumType { };
struct ConvType
{ operator int() const; };
class AbstractClass
- { virtual void rotate(int) = 0; };
-
-}; // namespace __gnu_test
+ {
+ virtual void rotate(int) = 0;
+ virtual ~AbstractClass();
+ };
+
+ class PolymorphicClass
+ {
+ virtual void rotate(int);
+ virtual ~PolymorphicClass();
+ };
+
+ class DerivedPolymorphic : public PolymorphicClass { };
+
+ union UnionType { };
+
+
+ int truncate_float(float x) { return (int)x; }
+ long truncate_double(double x) { return (long)x; }
+
+ struct do_truncate_float_t
+ {
+ do_truncate_float_t()
+ {
+ ++live_objects;
+ }
+
+ do_truncate_float_t(const do_truncate_float_t&)
+ {
+ ++live_objects;
+ }
+
+ ~do_truncate_float_t()
+ {
+ --live_objects;
+ }
+
+ int operator()(float x) { return (int)x; }
+
+ static int live_objects;
+ };
+
+ int do_truncate_float_t::live_objects = 0;
+
+ struct do_truncate_double_t
+ {
+ do_truncate_double_t()
+ {
+ ++live_objects;
+ }
+
+ do_truncate_double_t(const do_truncate_double_t&)
+ {
+ ++live_objects;
+ }
+
+ ~do_truncate_double_t()
+ {
+ --live_objects;
+ }
+
+ long operator()(double x) { return (long)x; }
+
+ static int live_objects;
+ };
+
+ int do_truncate_double_t::live_objects = 0;
+
+ struct X
+ {
+ int bar;
+
+ int foo() { return 1; }
+ int foo_c() const { return 2; }
+ int foo_v() volatile { return 3; }
+ int foo_cv() const volatile { return 4; }
+ };
+} // namespace __gnu_test
#endif // _GLIBCXX_TESTSUITE_TR1_H
diff --git a/libstdc++-v3/testsuite/thread/pthread1.cc b/libstdc++-v3/testsuite/thread/pthread1.cc
index 26d198a755e..f83e20595af 100644
--- a/libstdc++-v3/testsuite/thread/pthread1.cc
+++ b/libstdc++-v3/testsuite/thread/pthread1.cc
@@ -111,7 +111,7 @@ main ()
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 7a0efd067a2..84485165cd2 100644
--- a/libstdc++-v3/testsuite/thread/pthread2.cc
+++ b/libstdc++-v3/testsuite/thread/pthread2.cc
@@ -48,7 +48,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 4696fb76cdc..23f4e04e180 100644
--- a/libstdc++-v3/testsuite/thread/pthread3.cc
+++ b/libstdc++-v3/testsuite/thread/pthread3.cc
@@ -45,7 +45,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 a9ec9b84e38..b58445fb68e 100644
--- a/libstdc++-v3/testsuite/thread/pthread4.cc
+++ b/libstdc++-v3/testsuite/thread/pthread4.cc
@@ -98,7 +98,7 @@ template class __gnu_cxx::__mt_alloc<std::_List_node<std::string> >;
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 93f03a22761..30086d4584d 100644
--- a/libstdc++-v3/testsuite/thread/pthread5.cc
+++ b/libstdc++-v3/testsuite/thread/pthread5.cc
@@ -100,7 +100,7 @@ main ()
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 ba8c341c3f8..44b2b897146 100644
--- a/libstdc++-v3/testsuite/thread/pthread6.cc
+++ b/libstdc++-v3/testsuite/thread/pthread6.cc
@@ -80,7 +80,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/thread/pthread7-rope.cc b/libstdc++-v3/testsuite/thread/pthread7-rope.cc
index 307973c202d..3f5a338d086 100644
--- a/libstdc++-v3/testsuite/thread/pthread7-rope.cc
+++ b/libstdc++-v3/testsuite/thread/pthread7-rope.cc
@@ -68,7 +68,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/tr1/4_metaprogramming/primary_type_categories/is_function/is_function.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/is_function.cc
index 4bbda75280b..1c8d64dca4d 100644
--- a/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/is_function.cc
+++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/primary_type_categories/is_function/is_function.cc
@@ -41,6 +41,7 @@ void test01()
VERIFY( (test_category<is_function, const void>(false)) );
VERIFY( (test_category<is_function, AbstractClass>(false)) );
+ VERIFY( (test_category<is_function, int(&)(int)>(false)) );
// Sanity check.
VERIFY( (test_category<is_function, ClassType>(false)) );
diff --git a/ltconfig b/ltconfig
index 01e64be2cff..78c71b71e42 100755
--- a/ltconfig
+++ b/ltconfig
@@ -625,7 +625,8 @@ old_postuninstall_cmds=
if test -n "$RANLIB"; then
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ # APPLE LOCAL handle ~ in pathnames 2002-01-14 --sts
+ old_postinstall_cmds="\$RANLIB \$oldlib@$old_postinstall_cmds"
fi
# Source the script associated with the $tagname tag configuration.
diff --git a/ltmain.sh b/ltmain.sh
index 90925cb2f6d..c5d9a8a0116 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -495,11 +495,34 @@ if test -z "$show_help"; then
# Only attempt this if the compiler in the base compile
# command doesn't match the default compiler.
if test -n "$available_tags" && test -z "$tagname"; then
+ # APPLE LOCAL begin handle ~ in pathnames 2002-01-14 --sts
+ # Since CC may have args with shell metachars in them, add
+ # doublequotes to args so it looks the same as $base_compile.
+ qCC=
+ for argu in $CC; do
+ case $argu in
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ argu="\"$argu\""
+ ;;
+ esac
+ # Add the previous argument to qCC.
+ if test -z "$qCC"; then
+ qCC="$argu"
+ else
+ qCC="$qCC $argu"
+ fi
+ done
+ # APPLE LOCAL end handle ~ in pathnames 2002-01-14 --sts
case $base_compile in
- "$CC "*) ;;
+ # APPLE LOCAL handle ~ in pathnames 2002-01-14 --sts
+ "$qCC "*) ;;
# Blanks in the command may have been stripped by the calling shell,
# but not from the CC environment variable when ltconfig was run.
- "`$echo $CC` "*) ;;
+ # APPLE LOCAL handle ~ in pathnames 2002-01-14 --sts
+ "`$echo $qCC` "*) ;;
*)
for z in $available_tags; do
if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
@@ -4307,6 +4330,63 @@ fi\
# fi
# done
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "copying selected object files to avoid basename conflicts..."
+
+ if test -z "$gentop"; then
+ gentop="$output_objdir/${outputname}x"
+
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "$mkdir $gentop"
+ $run $mkdir "$gentop"
+ status=$?
+ if test $status -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ generated="$generated $gentop"
+ fi
+
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ counter=`expr $counter + 1`
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ $run ln "$obj" "$gentop/$newobj" ||
+ $run cp "$obj" "$gentop/$newobj"
+ oldobjs="$oldobjs $gentop/$newobj"
+ ;;
+ *) oldobjs="$oldobjs $obj" ;;
+ esac
+ done
+ fi
+
eval cmds=\"$old_archive_cmds\"
if len=`expr "X$cmds" : ".*"` &&
@@ -4320,20 +4400,7 @@ fi\
objlist=
concat_cmds=
save_oldobjs=$oldobjs
- # GNU ar 2.10+ was changed to match POSIX; thus no paths are
- # encoded into archives. This makes 'ar r' malfunction in
- # this piecewise linking case whenever conflicting object
- # names appear in distinct ar calls; check, warn and compensate.
- if (for obj in $save_oldobjs
- do
- $echo "X$obj" | $Xsed -e 's%^.*/%%'
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
- AR_FLAGS=cq
- fi
+
for obj in $save_oldobjs
do
oldobjs="$objlist $obj"
@@ -4923,7 +4990,8 @@ relink_command=\"$relink_command\""
# Do each command in the postinstall commands.
eval cmds=\"$old_postinstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
+ # APPLE LOCAL handle ~ in pathnames 2002-01-14 --sts
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS='@'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
diff --git a/maintainer-scripts/ChangeLog b/maintainer-scripts/ChangeLog
index c09946e05ef..3929d428526 100644
--- a/maintainer-scripts/ChangeLog
+++ b/maintainer-scripts/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
2004-12-30 Sebastian Pop <pop@cri.ensmp.fr>
* update_version (ADD_BRANCHES): Replace lno-branch with
diff --git a/more-hdrs/assert.h b/more-hdrs/assert.h
new file mode 100644
index 00000000000..0bd55b020c8
--- /dev/null
+++ b/more-hdrs/assert.h
@@ -0,0 +1,71 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "/usr/include/assert.h"
+
+ 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
+
+#ifdef __cplusplus
+#include <stdlib.h>
+#endif
+/* Allow this file to be included multiple times
+ with different settings of NDEBUG. */
+#undef assert
+#undef __assert
+
+#ifdef NDEBUG
+#define assert(ignore) ((void) 0)
+#else
+
+#ifndef __GNUC__
+
+#define assert(expression) \
+ ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
+
+#define __assert(expression, file, lineno) \
+ (printf ("%s:%u: failed assertion\n", file, lineno), \
+ abort (), 0)
+
+#else
+
+#if defined(__STDC__) || defined (__cplusplus)
+
+/* Defined in libgcc.a */
+#ifdef __cplusplus
+extern "C" {
+extern void __eprintf (const char *, const char *, unsigned, const char *)
+ __attribute__ ((noreturn));
+}
+#else
+extern void __eprintf (const char *, const char *, unsigned, const char *)
+ __attribute__ ((noreturn));
+#endif
+
+#define assert(expression) \
+ ((void) ((expression) ? 0 : __assert (#expression, __FILE__, __LINE__)))
+
+#define __assert(expression, file, line) \
+ (__eprintf ("%s:%u: failed assertion `%s'\n", \
+ file, line, expression), 0)
+
+#else /* no __STDC__ and not C++; i.e. -traditional. */
+
+extern void __eprintf () __attribute__ ((noreturn)); /* Defined in libgcc.a */
+
+#define assert(expression) \
+ ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
+
+#define __assert(expression, file, lineno) \
+ (__eprintf ("%s:%u: failed assertion `%s'\n", \
+ file, lineno, "expression"), 0)
+
+#endif /* no __STDC__ and not C++; i.e. -traditional. */
+#endif /* no __GNU__; i.e., /bin/cc. */
+#endif
+
+#endif /* FIXINC_BROKEN_ASSERT_STDLIB_CHECK */
diff --git a/more-hdrs/float.h b/more-hdrs/float.h
new file mode 100644
index 00000000000..048737fd83a
--- /dev/null
+++ b/more-hdrs/float.h
@@ -0,0 +1,9 @@
+/* This file is public domain. */
+/* This file exists soley to keep Metrowerks' compilers happy. The version
+ used by GCC 3.4 and later can be found in /usr/lib/gcc, although it's
+ not very informative. */
+#ifdef __MWERKS__
+#include "mw_float.h"
+#else
+#error "This header only supports __MWERKS__."
+#endif
diff --git a/more-hdrs/inttypes.h b/more-hdrs/inttypes.h
new file mode 100644
index 00000000000..697fb7b48ac
--- /dev/null
+++ b/more-hdrs/inttypes.h
@@ -0,0 +1,299 @@
+/*
+ * Copyright (c) 2000, 2001, 2002, 2003, 2004 Apple Computer, Inc.
+ * All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License"). You may not use this file except in compliance with the
+ * License. Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ *
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+/*
+ * <inttypes.h> -- Standard C header, defined in ISO/IEC 9899:1999
+ * (aka "C99"), section 7.8. This defines format string conversion
+ * specifiers suitable for use within arguments to fprintf and fscanf
+ * and their ilk.
+ */
+
+#if !defined(_INTTYPES_H_)
+#define _INTTYPES_H_
+
+#include <sys/cdefs.h> /* For __BEGIN_DECLS and __END_DECLS */
+#include <machine/ansi.h> /* For _BSD_WCHAR_T_ */
+#include <stdint.h>
+
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)
+ /* Translator is not ISO/IEC 9899:1999-compliant. */
+# if !defined(restrict)
+# define restrict
+# define __RESTRICT_KEYWORD_DEFINED__
+# endif
+#endif
+
+/* "C++ implementations should define these macros only when
+ * __STDC_FORMAT_MACROS is defined before <inttypes.h> is included."
+ */
+#if (! defined(__cplusplus)) || defined(__STDC_FORMAT_MACROS)
+
+# undef __PRI_8_LENGTH_MODIFIER__
+# undef __PRI_64_LENGTH_MODIFIER__
+# undef __SCN_64_LENGTH_MODIFIER__
+
+/* These could be "hh", "ll", and "ll" respectively, but that doesn't work on
+ 10.2, and these do. Note that there's no way to use scanf to scan a
+ decimal into a 'char' argument on 10.2, so "hh" is used unconditionally
+ and programs that use it won't work on Jaguar. */
+# define __PRI_8_LENGTH_MODIFIER__ "" /* none */
+# define __PRI_64_LENGTH_MODIFIER__ "q"
+# define __SCN_64_LENGTH_MODIFIER__ "q"
+
+# define PRId8 __PRI_8_LENGTH_MODIFIER__ "d"
+# define PRIi8 __PRI_8_LENGTH_MODIFIER__ "i"
+# define PRIo8 __PRI_8_LENGTH_MODIFIER__ "o"
+# define PRIu8 __PRI_8_LENGTH_MODIFIER__ "u"
+# define PRIx8 __PRI_8_LENGTH_MODIFIER__ "x"
+# define PRIX8 __PRI_8_LENGTH_MODIFIER__ "X"
+
+# define PRId16 "hd"
+# define PRIi16 "hi"
+# define PRIo16 "ho"
+# define PRIu16 "hu"
+# define PRIx16 "hx"
+# define PRIX16 "hX"
+
+# define PRId32 "d"
+# define PRIi32 "i"
+# define PRIo32 "o"
+# define PRIu32 "u"
+# define PRIx32 "x"
+# define PRIX32 "X"
+
+# define PRId64 __PRI_64_LENGTH_MODIFIER__ "d"
+# define PRIi64 __PRI_64_LENGTH_MODIFIER__ "i"
+# define PRIo64 __PRI_64_LENGTH_MODIFIER__ "o"
+# define PRIu64 __PRI_64_LENGTH_MODIFIER__ "u"
+# define PRIx64 __PRI_64_LENGTH_MODIFIER__ "x"
+# define PRIX64 __PRI_64_LENGTH_MODIFIER__ "X"
+
+# define PRIdLEAST8 PRId8
+# define PRIiLEAST8 PRIi8
+# define PRIoLEAST8 PRIo8
+# define PRIuLEAST8 PRIu8
+# define PRIxLEAST8 PRIx8
+# define PRIXLEAST8 PRIX8
+
+# define PRIdLEAST16 PRId16
+# define PRIiLEAST16 PRIi16
+# define PRIoLEAST16 PRIo16
+# define PRIuLEAST16 PRIu16
+# define PRIxLEAST16 PRIx16
+# define PRIXLEAST16 PRIX16
+
+# define PRIdLEAST32 PRId32
+# define PRIiLEAST32 PRIi32
+# define PRIoLEAST32 PRIo32
+# define PRIuLEAST32 PRIu32
+# define PRIxLEAST32 PRIx32
+# define PRIXLEAST32 PRIX32
+
+# define PRIdLEAST64 PRId64
+# define PRIiLEAST64 PRIi64
+# define PRIoLEAST64 PRIo64
+# define PRIuLEAST64 PRIu64
+# define PRIxLEAST64 PRIx64
+# define PRIXLEAST64 PRIX64
+
+# define PRIdFAST8 PRId8
+# define PRIiFAST8 PRIi8
+# define PRIoFAST8 PRIo8
+# define PRIuFAST8 PRIu8
+# define PRIxFAST8 PRIx8
+# define PRIXFAST8 PRIX8
+
+# define PRIdFAST16 PRId16
+# define PRIiFAST16 PRIi16
+# define PRIoFAST16 PRIo16
+# define PRIuFAST16 PRIu16
+# define PRIxFAST16 PRIx16
+# define PRIXFAST16 PRIX16
+
+# define PRIdFAST32 PRId32
+# define PRIiFAST32 PRIi32
+# define PRIoFAST32 PRIo32
+# define PRIuFAST32 PRIu32
+# define PRIxFAST32 PRIx32
+# define PRIXFAST32 PRIX32
+
+# define PRIdFAST64 PRId64
+# define PRIiFAST64 PRIi64
+# define PRIoFAST64 PRIo64
+# define PRIuFAST64 PRIu64
+# define PRIxFAST64 PRIx64
+# define PRIXFAST64 PRIX64
+
+/* int32_t is 'int', but intptr_t is 'long'. */
+# define PRIdPTR "ld"
+# define PRIiPTR "li"
+# define PRIoPTR "lo"
+# define PRIuPTR "lu"
+# define PRIxPTR "lx"
+# define PRIXPTR "lX"
+
+# define PRIdMAX PRId64
+# define PRIiMAX PRIi64
+# define PRIoMAX PRIo64
+# define PRIuMAX PRIu64
+# define PRIxMAX PRIx64
+# define PRIXMAX PRIX64
+
+# define SCNd8 "hhd"
+# define SCNi8 "hhi"
+# define SCNo8 "hho"
+# define SCNu8 "hhu"
+# define SCNx8 "hhx"
+
+# define SCNd16 "hd"
+# define SCNi16 "hi"
+# define SCNo16 "ho"
+# define SCNu16 "hu"
+# define SCNx16 "hx"
+
+# define SCNd32 "d"
+# define SCNi32 "i"
+# define SCNo32 "o"
+# define SCNu32 "u"
+# define SCNx32 "x"
+
+# define SCNd64 __SCN_64_LENGTH_MODIFIER__ "d"
+# define SCNi64 __SCN_64_LENGTH_MODIFIER__ "i"
+# define SCNo64 __SCN_64_LENGTH_MODIFIER__ "o"
+# define SCNu64 __SCN_64_LENGTH_MODIFIER__ "u"
+# define SCNx64 __SCN_64_LENGTH_MODIFIER__ "x"
+
+# define SCNdLEAST8 SCNd8
+# define SCNiLEAST8 SCNi8
+# define SCNoLEAST8 SCNo8
+# define SCNuLEAST8 SCNu8
+# define SCNxLEAST8 SCNx8
+
+# define SCNdLEAST16 SCNd16
+# define SCNiLEAST16 SCNi16
+# define SCNoLEAST16 SCNo16
+# define SCNuLEAST16 SCNu16
+# define SCNxLEAST16 SCNx16
+
+# define SCNdLEAST32 SCNd32
+# define SCNiLEAST32 SCNi32
+# define SCNoLEAST32 SCNo32
+# define SCNuLEAST32 SCNu32
+# define SCNxLEAST32 SCNx32
+
+# define SCNdLEAST64 SCNd64
+# define SCNiLEAST64 SCNi64
+# define SCNoLEAST64 SCNo64
+# define SCNuLEAST64 SCNu64
+# define SCNxLEAST64 SCNx64
+
+# define SCNdFAST8 SCNd8
+# define SCNiFAST8 SCNi8
+# define SCNoFAST8 SCNo8
+# define SCNuFAST8 SCNu8
+# define SCNxFAST8 SCNx8
+
+# define SCNdFAST16 SCNd16
+# define SCNiFAST16 SCNi16
+# define SCNoFAST16 SCNo16
+# define SCNuFAST16 SCNu16
+# define SCNxFAST16 SCNx16
+
+# define SCNdFAST32 SCNd32
+# define SCNiFAST32 SCNi32
+# define SCNoFAST32 SCNo32
+# define SCNuFAST32 SCNu32
+# define SCNxFAST32 SCNx32
+
+# define SCNdFAST64 SCNd64
+# define SCNiFAST64 SCNi64
+# define SCNoFAST64 SCNo64
+# define SCNuFAST64 SCNu64
+# define SCNxFAST64 SCNx64
+
+# define SCNdPTR "ld"
+# define SCNiPTR "li"
+# define SCNoPTR "lo"
+# define SCNuPTR "lu"
+# define SCNxPTR "lx"
+
+# define SCNdMAX SCNd64
+# define SCNiMAX SCNi64
+# define SCNoMAX SCNo64
+# define SCNuMAX SCNu64
+# define SCNxMAX SCNx64
+
+#endif /* if C++, then __STDC_FORMAT_MACROS enables the above macros */
+
+__BEGIN_DECLS
+
+ /* 7.8.2.1 */
+ extern intmax_t imaxabs(intmax_t j);
+
+ /* 7.8.2.2 */
+ typedef struct {
+ intmax_t quot;
+ intmax_t rem;
+ } imaxdiv_t;
+
+ extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
+
+ /* 7.8.2.3 */
+ extern intmax_t strtoimax(const char * restrict nptr, char ** restrict endptr, int base);
+ extern uintmax_t strtoumax(const char * restrict nptr, char ** restrict endptr, int base);
+
+#ifndef __cplusplus /* wchar_t is a built-in type in C++ */
+# ifndef _BSD_WCHAR_T_DEFINED_
+# define _BSD_WCHAR_T_DEFINED_
+# ifdef __WCHAR_TYPE__
+ typedef __WCHAR_TYPE__ wchar_t;
+# else /* __WCHAR_TYPE__ */
+ typedef _BSD_WCHAR_T_ wchar_t;
+# endif /* __WCHAR_TYPE__ */
+# endif /* _BSD_WCHAR_T_DEFINED_ */
+#endif /* __cplusplus */
+
+ /* 7.8.2.4 */
+ extern intmax_t wcstoimax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
+ extern uintmax_t wcstoumax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
+
+__END_DECLS
+
+/*
+ No need to #undef the __*_{8,64}_LENGTH_MODIFIER__ macros;
+ in fact, you can't #undef them, because later uses of any of
+ their dependents will *not* then do the intended substitution.
+ Expansion of a #define like this one:
+
+ #define x IDENT y
+
+ uses the cpp value of IDENT at the location where x is *expanded*,
+ not where it is #defined.
+*/
+
+#if defined(__RESTRICT_KEYWORD_DEFINED__)
+# undef restrict
+# undef __RESTRICT_KEYWORD_DEFINED__
+#endif
+
+#endif /* !_INTTYPES_H_ */
diff --git a/more-hdrs/machine/limits.h b/more-hdrs/machine/limits.h
new file mode 100644
index 00000000000..a669a7465f5
--- /dev/null
+++ b/more-hdrs/machine/limits.h
@@ -0,0 +1,11 @@
+/* This is the `system' limits.h, independent of any particular
+ compiler. GCC provides its own limits.h which can be found in
+ /usr/lib/gcc, although it is not very informative.
+ This file is public domain. */
+#if defined (__ppc__) || defined (__ppc64__)
+#include <ppc/limits.h>
+#elif defined (__i386__)
+#include <i386/limits.h>
+#else
+#error architecture not supported
+#endif
diff --git a/more-hdrs/ppc_intrinsics.h b/more-hdrs/ppc_intrinsics.h
new file mode 100644
index 00000000000..f13a9718572
--- /dev/null
+++ b/more-hdrs/ppc_intrinsics.h
@@ -0,0 +1,1026 @@
+/* APPLE LOCAL file PPC_INTRINSICS */
+
+/* Definitions for PowerPC intrinsic instructions
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+/* 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. */
+
+/*
+ * The following PowerPC intrinsics are provided by this header:
+ *
+ * Low-Level Processor Synchronization
+ * __eieio - Enforce In-Order Execution of I/O
+ * __isync - Instruction Synchronize
+ * __sync - Synchronize
+ * __lwsync - Lightweight Synchronize
+ *
+ * Manipulating the Contents of a Variable or Register
+ * __cntlzw - Count Leading Zeros Word
+ * __cntlzd - Count Leading Zeros Double Word
+ * __rlwimi - Rotate Left Word Immediate then Mask Insert
+ * __rlwinm - Rotate Left Word Immediate then AND with Mask
+ * __rlwnm - Rotate Left Word then AND with Mask
+ *
+ * Byte-Reversing Functions
+ * __lhbrx - Load Half Word Byte-Reverse Indexed
+ * __lwbrx - Load Word Byte-Reverse Indexed
+ * __sthbrx - Store Half Word Byte-Reverse Indexed
+ * __stwbrx - Store Word Byte-Reverse Indexed
+ *
+ * Data Cache Manipulation
+ * __dcba - Data Cache Block Allocate
+ * __dcbf - Data Cache Block Flush
+ * __dcbst - Data Cache Block Store
+ * __dcbt - Data Cache Block Touch
+ * __dcbtst - Data Cache Block Touch for Store
+ * __dcbzl - Data Cache Block Set to Zero
+ * __dcbz - Data Cache Block Set to Zero (32-bytes only)
+ *
+ * Setting the Floating-Point Environment
+ * __setflm - Set Floating-point Mode
+ *
+ * Math Functions
+ * __fabs - Floating-Point Absolute Value
+ * __fnabs - Floating Negative Absolute Value
+ * __fctiw - Floating Convert to Integer Word
+ * __fctiwz - Floating Convert to Integer Word with Round toward Zero
+ * __fctidz - Floating Convert to Integer Doubleword with Round toward Zero
+ * __fctid - Floating Convert to Integer Doubleword
+ * __fcfid - Floating Convert From Integer Doubleword
+ * __fmadd - Floating Multiply-Add (Double-Precision)
+ * __fmadds - Floating Multiply-Add Single
+ * __fmsub - Floating Multiply-Subract (Double-Precision)
+ * __fmsubs - Floating Multiply-Subract Single
+ * __fmul - Floating Multiply (Double-Precision)
+ * __fmuls - Floating Multiply Single
+ * __fnmadd - Floating Negative Multiply-Add (Double-Precision)
+ * __fnmadds - Floating Negative Multiply-Add Single
+ * __fnmsub - Floating Negative Multiply-Subtract (Double-Precision)
+ * __fnmsubs - Floating Negative Multiply-Subtract Single
+ * __fres - Floating Reciprocal Estimate
+ * __frsp - Floating Round to Single-Precision
+ * __frsqrte - Floating Reciprocal Square Root Estimate
+ * __frsqrtes - Floating Reciprocal Square Root Estimate Single
+ * __fsel - Floating Select
+ * __fsels - Floating Select (Single-Precision variant)
+ * __fsqrt - Floating-Point Square Root (Double-Precision)
+ * __fsqrts - Floating-Point Square Root Single-Precision
+ * __mulhw - Multiply High Word
+ * __mulhwu - Multiply High Word Unsigned
+ * __stfiwx - Store Floating-Point as Integer Word Indexed
+ *
+ * Miscellaneous Functions
+ * __nop - PPC preferred form of no operation
+ * __astrcmp - assembly strcmp
+ * __icbi - Instruction Cache Block Invalidate
+ * __mffs - Move from FPSCR
+ * __mfspr - Move from Special Purpose Register
+ * __mtfsf - Move to SPSCR Fields
+ * __mtspr - Move to Special Purpose Register
+ * __OSReadSwapSInt16 - lhbrx for signed shorts
+ * __OSReadSwapUInt16 - lhbrx for unsigned shorts
+ *
+ * TO DO:
+ * - Desired:
+ * mullw
+ * - Available in CodeWarrior, not yet implemented here:
+ * abs, labs, fabsf, fnabsf
+ *
+ * NOTES:
+ * - Some of the intrinsics need to be macros because certain
+ * parameters MUST be integer constants and not values in registers.
+ * - The declarations use __asm__ instead of asm and __inline__ instead
+ * of inline to prevent errors when -ansi is specified.
+ * - Some of the intrinsic definitions use the "volatile" specifier on
+ * the "asm" statements in order to work around what appears to be
+ * a bug in the compiler/optimizer. In general we have avoided the
+ * use of "volatile" because it suppresses optimization on the
+ * generated instructions. The instructions to which "volatile"
+ * has been added where it appears that it should not be needed are
+ * lhbrx and lwbrx.
+ *
+ * Contributors: Fred Forsman (editor), Turly O'Connor, Ian Ollmann, Sanjay Patel
+ * Last modified: October 6, 2004
+ */
+
+#ifndef _PPC_INTRINSICS_H_
+#define _PPC_INTRINSICS_H_
+
+#if (defined(__ppc__) || defined(__ppc64__)) && ! defined(__MWERKS__)
+
+/*******************************************************************
+ * Special Purpose Registers (SPRs) *
+ *******************************************************************/
+
+#define __SPR_MQR 0 /* PPC 601 only */
+#define __SPR_XER 1
+#define __SPR_RTCU 4 /* Real time clock upper. PPC 601 only.*/
+#define __SPR_RTCL 5 /* Real time clock lower. PPC 601 only.*/
+#define __SPR_LR 8
+#define __SPR_CTR 9
+#define __SPR_VRSAVE 256 /* AltiVec */
+#define __SPR_TBL 268 /* Time-base Lower. Not on PPC 601 */
+#define __SPR_TBU 269 /* Time-base Upper. Not on PPC 601 */
+#define __SPR_UMMCR2 928 /* PPC 74xx */
+#define __SPR_UPMC5 929 /* PPC 745x */
+#define __SPR_UPMC6 930 /* PPC 745x */
+#define __SPR_UBAMR 935 /* PPC 7400 and 7410 */
+#define __SPR_UMMCR0 936 /* PPC 74xx and 750 */
+#define __SPR_UPMC1 937 /* PPC 74xx and 750 */
+#define __SPR_UPMC2 938 /* PPC 74xx and 750 */
+#define __SPR_USIAR 939 /* PPC 74xx and 750 */
+#define __SPR_UMMCR1 940 /* PPC 74xx and 750 */
+#define __SPR_UPMC3 941 /* PPC 74xx and 750 */
+#define __SPR_UPMC4 942 /* PPC 74xx and 750 */
+#define __SPR_PIR 1023 /* supervisor level only! */
+
+/*
+ * Shorthand macros for some commonly used SPR's.
+ */
+#define __mfxer() __mfspr(__SPR_XER)
+#define __mflr() __mfspr(__SPR_LR)
+#define __mfctr() __mfspr(__SPR_CTR)
+#define __mfvrsave() __mfspr(__SPR_VRSAVE)
+#define __mftb() __mfspr(__SPR_TBL)
+#define __mftbu() __mfspr(__SPR_TBU)
+
+#define __mtlr(value) __mtspr(__SPR_LR, value)
+#define __mtxer(value) __mtspr(__SPR_XER, value)
+#define __mtctr(value) __mtspr(__SPR_CTR, value)
+#define __mtvrsave(value) __mtspr(__SPR_VRSAVE, value)
+
+
+/*******************************************************************
+ * Low-Level Processor Synchronization *
+ *******************************************************************/
+
+/*
+ * __eieio - Enforce In-Order Execution of I/O
+ *
+ * void __eieio (void);
+ */
+#define __eieio() __asm__ ("eieio" : : : "memory")
+
+/*
+ * __isync - Instruction Synchronize
+ *
+ * void __isync (void);
+ */
+#define __isync() \
+ __asm__ volatile ("isync")
+
+/*
+ * __sync - Synchronize
+ *
+ * void __sync (void);
+ */
+#define __sync() __asm__ volatile ("sync")
+
+/*
+ * __lwsync - Lightweight Synchronize, see PPC2.01, Book 2
+ *
+ * void __lwsync (void);
+ */
+#define __lwsync() __asm__ volatile ("sync 1")
+
+
+/*******************************************************************
+ * Byte-Reversing Functions *
+ *******************************************************************/
+
+/*
+ * __lhbrx - Load Half Word Byte-Reverse Indexed
+ *
+ * int __lhbrx(void *, int);
+ */
+#define __lhbrx(base, index) \
+ ({ unsigned short lhbrxResult; \
+ __asm__ volatile ("lhbrx %0, %1, %2" : "=r" (lhbrxResult) : "b%" (index), "r" (base) : "memory"); \
+ /*return*/ lhbrxResult; })
+
+/*
+ * __lwbrx - Load Word Byte-Reverse Indexed
+ *
+ * int __lwbrx(void *, int);
+ */
+#define __lwbrx(base, index) \
+ ({ unsigned int lwbrxResult; \
+ __asm__ volatile ("lwbrx %0, %1, %2" : "=r" (lwbrxResult) : "b%" (index), "r" (base) : "memory"); \
+ /*return*/ lwbrxResult; })
+
+/*
+ * __sthbrx - Store Half Word Byte-Reverse Indexed
+ *
+ * int __sthbrx(unsigned short, void *, int);
+ */
+#define __sthbrx(value, base, index) \
+ __asm__ ("sthbrx %0, %1, %2" : : "r" (value), "b%" (index), "r" (base) : "memory")
+
+/*
+ * __stwbrx - Store Word Byte-Reverse Indexed
+ *
+ * int __sthbrx(unsigned int, void *, int);
+ */
+#define __stwbrx(value, base, index) \
+ __asm__ ("stwbrx %0, %1, %2" : : "r" (value), "b%" (index), "r" (base) : "memory")
+
+
+/*******************************************************************
+ * Manipulating the Contents of a Variable or Register *
+ *******************************************************************/
+
+/*
+ * __cntlzw - Count Leading Zeros Word
+ * __cntlzd - Count Leading Zeros Double Word
+ */
+
+#define __cntlzw(a) __builtin_clz(a)
+#define __cntlzd(a) __builtin_clzll(a)
+
+/*
+ * __rlwimi - Rotate Left Word Immediate then Mask Insert
+ *
+ * int __rlwimi(int, long, int, int, int);
+ *
+ * We don't mention "%1" below: operand[1] needs to be skipped as
+ * it's just a placeholder to let the compiler know that rA is read
+ * from as well as written to.
+ */
+#define __rlwimi(rA, rS, cnt, mb, me) \
+ ({ __asm__ ("rlwimi %0,%2,%3,%4,%5" : "=r" (rA) \
+ : "0" (rA), "r" (rS), "n" (cnt), "n" (mb), "n" (me)); \
+ /*return*/ rA;})
+
+/*
+ * __rlwinm - Rotate Left Word Immediate then AND with Mask
+ *
+ * int __rlwinm(long, int, int, int);
+ */
+#define __rlwinm(rS, cnt, mb, me) \
+ ({ unsigned int val; \
+ __asm__ ("rlwinm %0,%1,%2,%3,%4" : "=r" (val) \
+ : "r" (rS), "n" (cnt), "n" (mb), "n" (me)); \
+ /*return*/ val;})
+
+/*
+ * __rlwnm - Rotate Left Word then AND with Mask
+ *
+ * int __rlwnm(long, int, int, int);
+ */
+#define __rlwnm(value, leftRotateBits, maskStart, maskEnd) \
+ ({ unsigned int result; \
+ __asm__ ("rlwnm %0, %1, %2, %3, %4" : "=r" (result) : \
+ "r" (value), "r" (leftRotateBits), "n" (maskStart), "n" (maskEnd)); \
+ /*return */ result; })
+
+
+/*******************************************************************
+ * Data Cache Manipulation *
+ *******************************************************************/
+
+/*
+ * --- Data Cache Block instructions ---
+ *
+ * Please see Motorola's "The Programming Environments for 32-Bit
+ * Microprocessors" for a description of what these do.
+ *
+ * Parameter descriptions:
+ *
+ * base starting address for figuring out where the
+ * cacheline is
+ *
+ * index byte count to be added to the base address for
+ * purposes of calculating the effective address
+ * of the cacheline to be operated on.
+ *
+ * Effective Address of cacheline to be manipulated =
+ * (char*) base + index
+ *
+ * WARNING: The size and alignment of cachelines are subject to
+ * change on future processors! Cachelines are 32 bytes in
+ * size and are aligned to 32 bytes on PowerPC 601, 603, 604,
+ * 750, 7400, 7410, 7450, and 7455.
+ *
+ */
+
+/*
+ * __dcba - Data Cache Block Allocate
+ *
+ * void __dcba(void *, int)
+ *
+ * WARNING: dcba is a valid instruction only on PowerPC 7400, 7410,
+ * 7450 and 7455.
+ */
+#define __dcba(base, index) \
+ __asm__ ("dcba %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __dcbf - Data Cache Block Flush
+ *
+ * void __dcbf(void *, int);
+ */
+#define __dcbf(base, index) \
+ __asm__ ("dcbf %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __dcbst - Data Cache Block Store
+ *
+ * void __dcbst(void *, int);
+ */
+#define __dcbst(base, index) \
+ __asm__ ("dcbst %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __dcbt - Data Cache Block Touch
+ *
+ * void __dcbt(void *, int);
+ */
+#define __dcbt(base, index) \
+ __asm__ ("dcbt %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __dcbtst - Data Cache Block Touch for Store
+ *
+ * void __dcbtst(void *, int);
+ */
+#define __dcbtst(base, index) \
+ __asm__ ("dcbtst %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __dcbzl - Data Cache Block Set to Zero
+ *
+ * void __dcbzl(void *, int);
+ */
+#define __dcbzl(base, index) \
+ __asm__ ("dcbzl %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __dcbz - Data Cache Block Set to Zero (32-bytes only)
+ *
+ * WARNING: this is for legacy purposes only
+ *
+ * void __dcbz(void *, int);
+ */
+#define __dcbz(base, index) \
+ __asm__ ("dcbz %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+
+/*******************************************************************
+ * Setting the Floating-Point Environment *
+ *******************************************************************/
+
+/*
+ * __setflm - Set Floating-point Mode
+ *
+ * Sets the FPSCR (floating-point status and control register),
+ * returning the original value.
+ *
+ * ??? CW: float __setflm(float);
+ */
+static inline double __setflm (double newflm) __attribute__((always_inline));
+static inline double
+__setflm(double newflm)
+{
+ double original;
+
+ __asm__ ("mffs %0"
+ /* outputs: */ : "=f" (original));
+ __asm__ ("mtfsf 255,%0"
+ /* outputs: */ : /* none */
+ /* inputs: */ : "f" (newflm));
+ return original;
+}
+
+
+/*******************************************************************
+ * Math Functions *
+ *******************************************************************/
+
+/*
+ * __fabs - Floating-Point Absolute Value
+ */
+static inline double __fabs (double value) __attribute__((always_inline));
+static inline double
+__fabs (double value)
+{
+ double result;
+ __asm__ ("fabs %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (value));
+ return result;
+}
+
+/*
+ * __fnabs - Floating Negative Absolute Value
+ */
+static inline double __fnabs (double b) __attribute__((always_inline));
+static inline double
+__fnabs (double b)
+{
+ double result;
+ __asm__ ("fnabs %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (b));
+ return result;
+}
+
+/*
+ * fctiw - Floating Convert to Integer Word
+ *
+ * Convert the input value to a signed long and place in the low 32
+ * bits of the FP register. Clip to LONG_MIN or LONG_MAX if the FP
+ * value exceeds the range representable by a long. Use the rounding
+ * mode indicated in the FPSCR.
+ */
+static inline double __fctiw (double b) __attribute__((always_inline));
+static inline double
+__fctiw (double b)
+{
+ double result;
+ __asm__ ("fctiw %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (b));
+ return result;
+}
+
+/*
+ * fctiwz - Floating Convert to Integer Word with Round toward Zero
+ *
+ * Convert the input value to a signed long and place in the low 32
+ * bits of the FP register. Clip to LONG_MIN or LONG_MAX if the FP
+ * value exceeds the range representable by a long.
+ */
+static inline double __fctiwz (double b) __attribute__((always_inline));
+static inline double
+__fctiwz (double b)
+{
+ double result;
+ __asm__ ("fctiwz %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (b));
+ return result;
+}
+
+/*
+ * fctidz - Floating Convert to Integer Double Word with Round toward Zero
+ *
+ * Convert the input value to a signed 64-bit int and place in the FP
+ * destination register. Clip to LLONG_MIN (-2**63) or LLONG_MAX (2**63-1)
+ * if the FP value exceeds the range representable by a int64_t.
+ *
+ * WARNING: fctidz is a valid instruction only on 64-bit PowerPC
+ */
+static inline double __fctidz (double b) __attribute__((always_inline));
+static inline double
+__fctidz (double b)
+{
+ double result;
+ __asm__ ("fctidz %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (b));
+ return result;
+}
+
+/*
+ * fctid - Floating Convert to Integer Double Word
+ *
+ * Convert the input value to a signed 64-bit int and place in the FP
+ * destination register. Clip to LLONG_MIN (-2**63) or LLONG_MAX (2**63-1)
+ * if the FP value exceeds the range representable by a int64_t. Use the
+ * rounding mode indicated in the FPSCR.
+ *
+ * WARNING: fctid is a valid instruction only on 64-bit PowerPC
+ */
+static inline double __fctid (double b) __attribute__((always_inline));
+static inline double
+__fctid (double b)
+{
+ double result;
+ __asm__ ("fctid %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (b));
+ return result;
+}
+
+/*
+ * fcfid - Floating Convert From Integer Double Word
+ *
+ * Convert the 64-bit signed integer input value to a 64-bit FP value.
+ * Use the rounding mode indicated in the FPSCR if the integer is out of
+ * double precision range.
+ *
+ * WARNING: fcfid is a valid instruction only on 64-bit PowerPC
+ */
+static inline double __fcfid (double b) __attribute__((always_inline));
+static inline double
+__fcfid (double b)
+{
+ double result;
+ __asm__ ("fcfid %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (b));
+ return result;
+}
+
+/*
+ * fmadd - Floating Multiply-Add (Double-Precision)
+ *
+ * (a * c + b) double precision
+ */
+static inline double __fmadd (double a, double c, double b) __attribute__((always_inline));
+static inline double
+__fmadd (double a, double c, double b)
+{
+ double result;
+ __asm__ ("fmadd %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * fmadds - Floating Multiply-Add Single
+ *
+ * (a * c + b) single precision
+ *
+ * Double precision arguments are used to prevent the compiler from
+ * issuing frsp instructions upstream.
+ */
+static inline float __fmadds (double a, double c, double b) __attribute__((always_inline));
+static inline float
+__fmadds (double a, double c, double b)
+{
+ float result;
+ __asm__ ("fmadds %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * fmsub - Floating Multiply-Subract (Double-Precision)
+ *
+ * (a * c - b) double precision
+ */
+static inline double __fmsub (double a, double c, double b) __attribute__((always_inline));
+static inline double
+__fmsub (double a, double c, double b)
+{
+ double result;
+ __asm__ ("fmsub %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * fmsubs - Floating Multiply-Subract Single
+ *
+ * (a * c - b) single precision
+ *
+ * Double precision arguments are used to prevent the compiler from
+ * issuing frsp instructions upstream.
+ */
+static inline float __fmsubs (double a, double c, double b) __attribute__((always_inline));
+static inline float
+__fmsubs (double a, double c, double b)
+{
+ float result;
+ __asm__ ("fmsubs %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * fmul - Floating Multiply (Double-Precision)
+ *
+ * (a * c) double precision
+ */
+static inline double __fmul (double a, double c) __attribute__((always_inline));
+static inline double
+__fmul (double a, double c)
+{
+ double result;
+ __asm__ ("fmul %0, %1, %2"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c));
+ return result;
+}
+
+/*
+ * fmuls - Floating Multiply Single
+ *
+ * (a * c) single precision
+ *
+ * Double precision arguments are used to prevent the compiler from
+ * issuing frsp instructions upstream.
+ */
+static inline float __fmuls (double a, double c) __attribute__((always_inline));
+static inline float
+__fmuls (double a, double c)
+{
+ float result;
+ __asm__ ("fmuls %0, %1, %2"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c));
+ return result;
+}
+
+/*
+ * __fnmadd - Floating Negative Multiply-Add (Double-Precision)
+ *
+ * -(a * c + b) double precision
+ */
+static inline double __fnmadd (double a, double c, double b) __attribute__((always_inline));
+static inline double
+__fnmadd (double a, double c, double b)
+{
+ double result;
+ __asm__ ("fnmadd %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * __fnmadds - Floating Negative Multiply-Add Single
+ *
+ * -(a * c + b) single precision
+ *
+ * Double precision arguments are used to prevent the compiler from
+ * issuing frsp instructions upstream.
+ */
+static inline float __fnmadds (double a, double c, double b) __attribute__((always_inline));
+static inline float
+__fnmadds (double a, double c, double b)
+{
+ float result;
+ __asm__ ("fnmadds %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * __fnmsub - Floating Negative Multiply-Subtract (Double-Precision)
+ *
+ * -(a * c - B) double precision
+ */
+static inline double __fnmsub (double a, double c, double b) __attribute__((always_inline));
+static inline double
+__fnmsub (double a, double c, double b)
+{
+ double result;
+ __asm__ ("fnmsub %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * __fnmsubs - Floating Negative Multiply-Subtract Single
+ *
+ * -(a * c - b) single precision
+ *
+ * Double precision arguments are used to prevent the compiler from
+ * issuing frsp instructions upstream.
+ */
+static inline float __fnmsubs (double a, double c, double b) __attribute__((always_inline));
+static inline float
+__fnmsubs (double a, double c, double b)
+{
+ float result;
+ __asm__ ("fnmsubs %0, %1, %2, %3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (a), "f" (c), "f" (b));
+ return result;
+}
+
+/*
+ * __fres - Floating Reciprocal Estimate
+ *
+ * Produces a double precision result with 5 bits of accuracy.
+ * Note: not valid on the PowerPC 601.
+ *
+ * ??? CW: float __fres(float)
+ */
+static inline float __fres (float val) __attribute__((always_inline));
+static inline float
+__fres (float val)
+{
+ float estimate;
+ __asm__ ("fres %0,%1"
+ /* outputs: */ : "=f" (estimate)
+ /* inputs: */ : "f" (val));
+ return estimate;
+}
+
+/*
+ * __frsp - Floating Round to Single-Precision
+ */
+static inline float __frsp (double d) __attribute__((always_inline));
+static inline float
+__frsp (double d)
+{
+ float result;
+ __asm__ ("frsp %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (d));
+ return result;
+}
+
+/*
+ * __frsqrte - Floating Reciprocal Square Root Estimate
+ *
+ * Note: not valid on the PowerPC 601.
+ */
+static inline double __frsqrte (double val) __attribute__((always_inline));
+static inline double
+__frsqrte (double val)
+{
+ double estimate;
+
+ __asm__ ("frsqrte %0,%1"
+ /* outputs: */ : "=f" (estimate)
+ /* inputs: */ : "f" (val));
+ return estimate;
+}
+
+/*
+ * __frsqrtes - Floating Reciprocal Square Root Estimate Single
+ */
+static inline float __frsqrtes (double f) __attribute__((always_inline));
+static inline float
+__frsqrtes (double f)
+{
+ float result;
+ __asm__ ("frsqrte %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (f));
+ return result;
+}
+
+/*
+ * __fsel - Floating Select
+ *
+ * if (test >= 0) return a; else return b;
+ *
+ * Note: not valid on the PowerPC 601.
+ */
+static inline double __fsel (double test, double a, double b) __attribute__((always_inline));
+static inline double
+__fsel (double test, double a, double b)
+{
+ double result;
+ __asm__ ("fsel %0,%1,%2,%3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (test), "f" (a), "f" (b));
+ return result;
+}
+
+/*
+ * __fsels - Floating Select (Single-Precision variant)
+ *
+ * An artificial single precision variant of fsel. This produces the
+ * same results as fsel, but is useful because the result is cast as
+ * a float, discouraging the compiler from issuing a frsp instruction
+ * afterward.
+ */
+static inline float __fsels (double test, double a, double b) __attribute__((always_inline));
+static inline float
+__fsels (double test, double a, double b)
+{
+ float result;
+ __asm__ ("fsel %0,%1,%2,%3"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (test), "f" (a), "f" (b));
+ return result;
+}
+
+/*
+ * __fsqrt - Floating-Point Square Root (Double-Precision)
+ *
+ * WARNING: Illegal instruction for PowerPC 603, 604, 750, 7400, 7410,
+ * 7450, and 7455
+ */
+static inline double __fsqrt (double b) __attribute__((always_inline));
+static inline double
+__fsqrt(double d)
+{
+ double result;
+ __asm__ ("fsqrt %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (d));
+ return result;
+}
+
+/*
+ * __fsqrts - Floating-Point Square Root Single-Precision
+ *
+ * WARNING: Illegal instruction for PowerPC 603, 604, 750, 7400, 7410,
+ * 7450, and 7455
+ */
+static inline float __fsqrts (float f) __attribute__((always_inline));
+static inline float
+__fsqrts (float f)
+{
+ float result;
+ __asm__ ("fsqrts %0, %1"
+ /* outputs: */ : "=f" (result)
+ /* inputs: */ : "f" (f));
+ return result;
+}
+
+/*
+ * __mulhw - Multiply High Word
+ */
+static inline int __mulhw (int a, int b) __attribute__((always_inline));
+static inline int
+__mulhw (int a, int b)
+{
+ int result;
+ __asm__ ("mulhw %0, %1, %2"
+ /* outputs: */ : "=r" (result)
+ /* inputs: */ : "r" (a), "r"(b));
+ return result;
+}
+
+/*
+ * __mulhwu - Multiply High Word Unsigned
+ */
+static inline unsigned int __mulhwu (unsigned int a, unsigned int b) __attribute__((always_inline));
+static inline unsigned int
+__mulhwu (unsigned int a, unsigned int b)
+{
+ unsigned int result;
+ __asm__ ("mulhwu %0, %1, %2"
+ /* outputs: */ : "=r" (result)
+ /* inputs: */ : "r" (a), "r"(b));
+ return result;
+}
+
+/*
+ * __stfiwx - Store Floating-Point as Integer Word Indexed
+ *
+ * void x(int, void *, int);
+ */
+#define __stfiwx(value, base, index) \
+ __asm__ ("stfiwx %0, %1, %2" : /*no result*/ \
+ : "f" (value), "b%" (index), "r" (base) : "memory")
+
+
+/*******************************************************************
+ * Miscellaneous Functions *
+ *******************************************************************/
+
+/*
+ * __nop - no operation (PowerPC preferred form)
+ *
+ * void __nop();
+ */
+#define __nop() \
+ __asm__ ("ori 0,0,0")
+
+/*
+ * __icbi - Instruction Cache Block Invalidate
+ *
+ * void __icbi(void *, int);
+ */
+#define __icbi(base, index) \
+ __asm__ ("icbi %0, %1" : /*no result*/ : "b%" (index), "r" (base) : "memory")
+
+/*
+ * __mffs - Move from FPSCR
+ */
+static inline double __mffs (void) __attribute__((always_inline));
+static inline double
+__mffs (void)
+{
+ double result;
+ __asm__ volatile ("mffs %0"
+ /* outputs: */ : "=f" (result));
+ return result;
+}
+
+/*
+ * __mfspr - Move from Special Purpose Register
+ *
+ * int __mfspr(int);
+ */
+#define __mfspr(spr) \
+ __extension__ ({ long mfsprResult; \
+ __asm__ volatile ("mfspr %0, %1" : "=r" (mfsprResult) : "n" (spr)); \
+ /*return*/ mfsprResult; })
+
+/*
+ * __mtfsf - Move to SPSCR Fields
+ *
+ * void __mtfsf(int, int);
+ */
+#define __mtfsf(mask, newValue) \
+ __asm__ volatile ("mtfsf %0, %1" : : "n" (mask), "f" (newValue))
+
+/*
+ * __mtspr - Move to Special Purpose Register
+ *
+ * __mtspr x(int, int);
+ */
+#define __mtspr(spr, value) \
+ __asm__ volatile ("mtspr %0, %1" : : "n" (spr), "r" (value))
+
+/*
+ * __OSReadSwapSInt16
+ *
+ * lhbrx for signed shorts. This will do the required sign
+ * extension after load and byteswap.
+ */
+static inline signed short __OSReadSwapSInt16 (signed short *base, int index) __attribute__((always_inline));
+static inline signed short
+__OSReadSwapSInt16 (signed short *base, int index)
+{
+ signed long result;
+ __asm__ volatile ("lhbrx %0, %1, %2"
+ /* outputs: */ : "=r" (result)
+ /* inputs: */ : "b%" (index), "r" (base)
+ /* clobbers: */ : "memory");
+ return result;
+}
+
+/*
+ * __OSReadSwapUInt16
+ */
+static inline unsigned short __OSReadSwapUInt16 (volatile void *base, int inex) __attribute__((always_inline));
+static inline unsigned short
+__OSReadSwapUInt16 (volatile void *base, int index)
+{
+ unsigned long result;
+ __asm__ volatile ("lhbrx %0, %1, %2"
+ /* outputs: */ : "=r" (result)
+ /* inputs: */ : "b" (index), "r" (base)
+ /* clobbers: */ : "memory");
+ return result;
+}
+
+/*
+ * __astrcmp - assembly strcmp
+ */
+static inline int astrcmp (const char *in_s1, const char *in_s2) __attribute__((always_inline));
+static inline int
+astrcmp (const char *in_s1, const char *in_s2)
+{
+ int result, temp;
+ register const char *s1 = in_s1 - 1;
+ register const char *s2 = in_s2 - 1;
+
+ __asm__ ("1:lbzu %0,1(%1)\n"
+ "\tcmpwi cr1,%0,0\n"
+ "\tlbzu %3,1(%2)\n"
+ "\tsubf. %0,%3,%0\n"
+ "\tbeq- cr1,2f\n"
+ "\tbeq+ 1b\n2:"
+ /* outputs: */ : "=&r" (result), "+b" (s1), "+b" (s2), "=r" (temp)
+ /* inputs: */ :
+ /* clobbers: */ : "cr0", "cr1", "memory");
+
+ return result;
+
+ /*
+ * "=&r" (result) means: 'result' is written on (the '='), it's any GP
+ * register (the 'r'), and it must not be the same as
+ * any of the input registers (the '&').
+ * "+b" (s1) means: 's1' is read from and written to (the '+'),
+ * and it must be a base GP register (i.e., not R0.)
+ * "=r" (temp) means: 'temp' is any GP reg and it's only written to.
+ *
+ * "memory" in the 'clobbers' section means that gcc will make
+ * sure that anything that should be in memory IS there
+ * before calling this routine.
+ */
+}
+
+#endif /* (defined(__ppc__) || defined(__ppc64__)) && ! defined(__MWERKS__) */
+
+#endif /* _PPC_INTRINSICS_H_ */
diff --git a/more-hdrs/stdarg.h b/more-hdrs/stdarg.h
new file mode 100644
index 00000000000..e12e16383c6
--- /dev/null
+++ b/more-hdrs/stdarg.h
@@ -0,0 +1,6 @@
+/* This file is public domain. */
+#ifdef __MWERKS__
+#include "mw_stdarg.h"
+#else
+#error "This header only supports __MWERKS__."
+#endif
diff --git a/more-hdrs/stdbool.h b/more-hdrs/stdbool.h
new file mode 100644
index 00000000000..de5287ef12b
--- /dev/null
+++ b/more-hdrs/stdbool.h
@@ -0,0 +1,10 @@
+/* This file is public domain. */
+/* stdbool.h has moved to avoid accidental use with a non-GCC
+ compiler. Only GCC should have used stdbool.h due to licensing
+ restrictions. */
+#ifdef __MWERKS__
+#include "mw_stdbool.h"
+#else
+#error "This header only supports __MWERKS__."
+#endif
+
diff --git a/more-hdrs/stdint.h b/more-hdrs/stdint.h
new file mode 100644
index 00000000000..b9ddc2688a5
--- /dev/null
+++ b/more-hdrs/stdint.h
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 2000, 2001, 2003, 2004 Apple Computer, Inc.
+ * All rights reserved.
+ */
+
+#ifndef _STDINT_H_
+#define _STDINT_H_
+
+/* from ISO/IEC 988:1999 spec */
+
+/* 7.18.1.1 Exact-width integer types */
+#ifndef _INT8_T
+#define _INT8_T
+typedef signed char int8_t;
+#endif /*_INT8_T */
+
+#ifndef _INT16_T
+#define _INT16_T
+typedef short int16_t;
+#endif /* _INT16_T */
+
+#ifndef _INT32_T
+#define _INT32_T
+typedef int int32_t;
+#endif /* _INT32_T */
+
+#ifndef _INT64_T
+#define _INT64_T
+typedef long long int64_t;
+#endif /* _INT64_T */
+
+#ifndef _UINT8_T
+#define _UINT8_T
+typedef unsigned char uint8_t;
+#endif /*_UINT8_T */
+
+#ifndef _UINT16_T
+#define _UINT16_T
+typedef unsigned short uint16_t;
+#endif /* _UINT16_T */
+
+#ifndef _UINT32_T
+#define _UINT32_T
+typedef unsigned int uint32_t;
+#endif /* _UINT32_T */
+
+#ifndef _UINT64_T
+#define _UINT64_T
+typedef unsigned long long uint64_t;
+#endif /* _UINT64_T */
+
+/* 7.18.1.2 Minimum-width integer types */
+typedef int8_t int_least8_t;
+typedef int16_t int_least16_t;
+typedef int32_t int_least32_t;
+typedef int64_t int_least64_t;
+typedef uint8_t uint_least8_t;
+typedef uint16_t uint_least16_t;
+typedef uint32_t uint_least32_t;
+typedef uint64_t uint_least64_t;
+
+
+/* 7.18.1.3 Fastest-width integer types */
+typedef int8_t int_fast8_t;
+typedef int16_t int_fast16_t;
+typedef int32_t int_fast32_t;
+typedef int64_t int_fast64_t;
+typedef uint8_t uint_fast8_t;
+typedef uint16_t uint_fast16_t;
+typedef uint32_t uint_fast32_t;
+typedef uint64_t uint_fast64_t;
+
+
+/* 7.18.1.4 Integer types capable of holding object pointers */
+
+#ifndef _INTPTR_T
+#define _INTPTR_T
+typedef long intptr_t;
+#endif /* _INTPTR_T */
+
+#ifndef _UINTPTR_T
+#define _UINTPTR_T
+typedef unsigned long uintptr_t;
+#endif /* _UINTPTR_T */
+
+
+/* 7.18.1.5 Greatest-width integer types */
+#ifndef _INTMAX_T
+#define _INTMAX_T
+#ifdef __INTMAX_TYPE__
+typedef __INTMAX_TYPE__ intmax_t;
+#else /* __INTMAX_TYPE__ */
+typedef long long intmax_t;
+#endif /* __INTMAX_TYPE__ */
+#endif /* _INTMAX_T */
+
+#ifndef _UINTMAX_T
+#define _UINTMAX_T
+#ifdef __UINTMAX_TYPE__
+typedef __UINTMAX_TYPE__ uintmax_t;
+#else /* __UINTMAX_TYPE__ */
+typedef unsigned long long uintmax_t;
+#endif /* __UINTMAX_TYPE__ */
+#endif /* _UINTMAX_T */
+
+/* "C++ implementations should define these macros only when
+ * __STDC_LIMIT_MACROS is defined before <stdint.h> is included."
+ * In other words, if C++, then __STDC_LIMIT_MACROS enables the
+ * macros below. (Note that there also exists a different enabling
+ * macro (__STDC_CONSTANT_MACROS) for the last few, below.)
+ */
+#if (! defined(__cplusplus)) || defined(__STDC_LIMIT_MACROS)
+
+
+/* 7.18.2 Limits of specified-width integer types:
+ * These #defines specify the minimum and maximum limits
+ * of each of the types declared above.
+ */
+
+
+/* 7.18.2.1 Limits of exact-width integer types */
+#define INT8_MAX 127
+#define INT16_MAX 32767
+#define INT32_MAX 2147483647
+#define INT64_MAX 9223372036854775807LL
+
+#define INT8_MIN -128
+#define INT16_MIN -32768
+ /*
+ Note: the literal "most negative int" cannot be written in C --
+ the rules in the standard (section 6.4.4.1 in C99) will give it
+ an unsigned type, so INT32_MIN (and the most negative member of
+ any larger signed type) must be written via a constant expression.
+ */
+#define INT32_MIN (-INT32_MAX-1)
+#define INT64_MIN (-INT64_MAX-1)
+
+#define UINT8_MAX 255
+#define UINT16_MAX 65535
+#define UINT32_MAX 4294967295U
+#define UINT64_MAX 18446744073709551615ULL
+
+/* 7.18.2.2 Limits of minimum-width integer types */
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST64_MIN INT64_MIN
+
+#define INT_LEAST8_MAX INT8_MAX
+#define INT_LEAST16_MAX INT16_MAX
+#define INT_LEAST32_MAX INT32_MAX
+#define INT_LEAST64_MAX INT64_MAX
+
+#define UINT_LEAST8_MAX UINT8_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_LEAST64_MAX UINT64_MAX
+
+/* 7.18.2.3 Limits of fastest minimum-width integer types */
+#define INT_FAST8_MIN INT8_MIN
+#define INT_FAST16_MIN INT16_MIN
+#define INT_FAST32_MIN INT32_MIN
+#define INT_FAST64_MIN INT64_MIN
+
+#define INT_FAST8_MAX INT8_MAX
+#define INT_FAST16_MAX INT16_MAX
+#define INT_FAST32_MAX INT32_MAX
+#define INT_FAST64_MAX INT64_MAX
+
+#define UINT_FAST8_MAX UINT8_MAX
+#define UINT_FAST16_MAX UINT16_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_MAX
+
+/* 7.18.2.4 Limits of integer types capable of holding object pointers */
+
+#define INTPTR_MIN INT32_MIN
+#define INTPTR_MAX INT32_MAX
+
+#define UINTPTR_MAX UINT32_MAX
+
+/* 7.18.2.5 Limits of greatest-width integer types */
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+
+#define UINTMAX_MAX UINT64_MAX
+
+/* 7.18.3 "Other" */
+#define PTRDIFF_MIN INT32_MIN
+#define PTRDIFF_MAX INT32_MAX
+
+/* We have no sig_atomic_t yet, so no SIG_ATOMIC_{MIN,MAX}.
+ Should end up being {-127,127} or {0,255} ... or bigger.
+ My bet would be on one of {U}INT32_{MIN,MAX}. */
+
+#define SIZE_MAX UINT32_MAX
+
+#ifndef WCHAR_MAX
+# ifdef __WCHAR_MAX__
+# define WCHAR_MAX __WCHAR_MAX__
+# else
+# define WCHAR_MAX 0x7fffffff
+# endif
+#endif
+
+/* WCHAR_MIN should be 0 if wchar_t is an unsigned type and
+ (-WCHAR_MAX-1) if wchar_t is a signed type. Unfortunately,
+ it turns out that -fshort-wchar changes the signedness of
+ the type. */
+#if WCHAR_MAX == 0xffff
+# define WCHAR_MIN 0
+#else
+# define WCHAR_MIN (-WCHAR_MAX-1)
+#endif
+
+#define WINT_MIN INT32_MIN
+#define WINT_MAX INT32_MAX
+
+#define SIG_ATOMIC_MIN INT32_MIN
+#define SIG_ATOMIC_MAX INT32_MAX
+
+#endif /* if C++, then __STDC_LIMIT_MACROS enables the above macros */
+
+/* "C++ implementations should define these macros only when
+ * __STDC_CONSTANT_MACROS is defined before <stdint.h> is included."
+ */
+#if (! defined(__cplusplus)) || defined(__STDC_CONSTANT_MACROS)
+
+/* 7.18.4 Macros for integer constants */
+#define INT8_C(v) (v)
+#define INT16_C(v) (v)
+#define INT32_C(v) (v)
+#define INT64_C(v) (v ## LL)
+
+#define UINT8_C(v) (v ## U)
+#define UINT16_C(v) (v ## U)
+#define UINT32_C(v) (v ## U)
+#define UINT64_C(v) (v ## ULL)
+
+#define INTMAX_C(v) (v ## LL)
+#define UINTMAX_C(v) (v ## ULL)
+
+#endif /* if C++, then __STDC_CONSTANT_MACROS enables the above macros */
+
+#endif /* _STDINT_H_ */
diff --git a/more-hdrs/varargs.h b/more-hdrs/varargs.h
new file mode 100644
index 00000000000..83188caef34
--- /dev/null
+++ b/more-hdrs/varargs.h
@@ -0,0 +1,6 @@
+/* This file is public domain. */
+#ifdef __MWERKS__
+#include "mw_varargs.h"
+#else
+#error "This header only supports __MWERKS__."
+#endif
diff --git a/order-files/HOW TO BUILD b/order-files/HOW TO BUILD
new file mode 100644
index 00000000000..7cca046f37a
--- /dev/null
+++ b/order-files/HOW TO BUILD
@@ -0,0 +1,170 @@
+ Creating Order files, i.e., Scatter Loading the Compiler
+ --------------------------------------------------------
+
+This is a brief description on how to generate the cc1*.order files.
+The order files are intended to minimize the number of page-ins of
+the compiler as it is loaded. If there is enough memory this
+benifits only the first load of the compiler since it will stay
+resident after that.
+
+Unfortunately it's a manual process since one of the tools requires
+an explicit interrupt from the terminal. You should only need to
+(re)do the order files if there's any major reorganizations or
+additions to the compilers.
+
+There are five steps involved to genrrate the order files.
+
+1. Select test cases.
+
+ These should be "average" compilations to exercise each of the
+ cc1* compilers. They should be large enough to take enough time
+ to generate acceptible results. As of this writing the
+ following cases were chosen:
+
+ For cc1 - gcc/c-decl.c (from the compiler sources)
+ For cc1plus - Finder_FE/AboutWindow/AboutWindow.cp
+ For cc1obj - MailViewer/Compose.subproj/MessageEditor.m
+ For cc1objplus - devkit/cpp.subproj/Cpp-precomp.mm
+
+ Of these four the cc1objplus test case is not very good.
+ Unfortunately there are few .mm files of any significant size.
+ If a better one can be found it probably should be used.
+
+2. Capture the command lines needed to build the chosen files.
+
+ For the selected projects built with with PB set PB's building
+ preferences for detailed build logs. That way you can the
+ full command lines you need. In non-PB projects like gcc the
+ command lines are of course echoed on the terminal.
+
+3. Run selected command lines with -### to get the cc1* lines.
+
+ From the full command lines you need the cc1* lines generated
+ by the driver. The easiest way to get these is to add -###
+ to the full command lines captured in step 2.
+
+4. Prepare to generate the order files
+
+ If you don't already have it you should build a set of cc1*
+ compilers with -O2 with symbols. The easiest way to do this
+ is FSF-style but using buildit with build_gcc probably will
+ also work.
+
+ In the gcc objects directory you will of course have the cc1*
+ compilers. You need to substitute these in each of the cc1*
+ command lines captured in step 3. You also need to run these
+ with ~perf/bin/pcsample to generate the order files. Thus,
+ for each cc1* command line it should have the following in
+ the beginning in place of the original cc1* of the step 3
+ lines.
+
+ sudo ~perf/bin/pcsample -O -E $gcc3-obj/cc1* ... rest of line...
+
+ Where $gcc3-obj represents whatever the path is to the gcc3
+ objects directory and cc1* is one of the cc1* compilers (is
+ -B necessary here?).
+
+ Note, you need sudo because pcsample will only run as root.
+ Also, if you have a dual processor you need to reboot as in
+ single processor mode. If you don't pcscample will tell you
+ to do that by executing the command,
+
+ nvram boot-args="cpus=1"
+
+5. Generate the order files
+
+ Run the lines created in step 4. The order files (cc1*.order)
+ will be left in /tmp in the direectory indicated by the summary
+ that pcsample displays when you hit cmd-c to stop the pcsample
+ execution. Be sure to run pcsample long enough to compile the
+ entire program.
+
+ At this point you now have the order files created. You place
+ them in the order-files directory at the top level of the gcc
+ source directory.
+
+ You can also use them to measure he effects of these order files
+ on compiler page-ins. If you do this go to the next step (6).
+ Otherwisw you are ready to go.
+
+6. Creating the compilers with ther order files
+
+ You will need two versions of the cc1* files; the ones from above
+ and a set linked with their respective order file.
+
+ From a gcc compiler build extract the command lines that link
+ the cc1* files. Change the -o file to something else, for
+ example, cc1 to cc1X. Then add the following options to the
+ link line. Note, if you build using buildit and build_gcc the
+ lines will already be there referencing the order-files
+ directory. Otherwise you need to add,
+
+ -sectorder __TEXT __text $order/cc1*.order -e start
+
+ where $order is the directory containing the order file being
+ used and cc1* is of course a reference to a specific order
+ file.
+
+ 7. Measuring the performance improvement
+
+ You need to have two terminbal windows open; T1 and T2. The
+ execute the follwoing commands on the indicated terminals:
+
+ T2: sudo fs_usage -w > /tmp/fs.out1 (do NOT execute yet)
+ T1: ~perf/bin/flushmem (note this can take a while)
+ T2: fs_usage
+ T1: use cc1* line originally used to build order file
+ T2: ctl-c when cc1* compilation done
+
+ T2: sudo fs_usage -w > /tmp/fs.out2 (do not execute yet)
+ T1: ~perf/bin/flushmem
+ T2: fs_usage
+ T1: use cc1*X line originally used to build order file
+ T2: ctl-c when cc1XXX compilation done
+
+ In the first group of commands you use the original cc1* line
+ with the command line used to build the order file. You also
+ run fs_usage at the same time to measure the paging behavior.
+
+ The second group of commands is similar but you use the cc1*
+ linked with its order file (with the -sectorder stuff mentioned
+ in step 6). For this discussion call this compiler cc1*X.
+
+ In both cases you need to run ~perf/bin/flushmem to make sure
+ compiler is flused from the cached. That way you are
+ measuring the initial page-in bechavor as thee compiler is
+ loaded. Warning, the flushmem's sometimes take quite a
+ while.
+
+ At this point you should have /tmp/fs.out1 and /tmp/fs.out2.
+ You need to extract the page-ins times for the compilers in
+ order to sum them up. The easies way to do this is make the
+ data tab delimited for importing into Excel.
+
+ T1: fgrep cc1* /tmp/fs.out1 | fgrep PAGE_IN | \
+ tr -s "[:blank:]" '\t' >/tmp/cc1*.pageins-1
+ T1: fgrep cc1*X /tmp/fs.out2 | fgrep PAGE_IN | \
+ tr -s "[:blank:]" '\t' >/tmp/cc1*.pageins-2
+
+ Load each of these into Excel and sum the pagin times to
+ determine the percent change.
+
+ Remember that the '*'s in the above illustrations are not really
+ a '*'. It is just a short way to show the general command lines
+ where in reality you explicitly specify cc1, cc1plus, cc1obj, or
+ cc1objplus.
+
+ Also remember that you are measuring the page-in performance
+ improvement on the test cases used to generate the order files
+ in the first place. Thus you should expect that these would
+ probably show the greatest improvement. That is why it is
+ important to try to choose representative test cases in the
+ first place. You can try the measurements on other tests.
+ But that requires you again extracting the cc1* lines using
+ -###. The above procedure only uses the orignal files since
+ the command lines are already handy.
+
+
+
+
+
diff --git a/order-files/cc1.order b/order-files/cc1.order
new file mode 100644
index 00000000000..a3bd7b04a39
--- /dev/null
+++ b/order-files/cc1.order
@@ -0,0 +1,1188 @@
+start
+__start
+__dyld_init_check
+dyld_stub_binding_helper
+___darwin_gcc3_preregister_frame_info
+__call_mod_init_funcs
+__dyld_func_lookup
+_main
+_toplev_main
+_hex_init
+_general_init
+_xmalloc_set_program_name
+_diagnostic_initialize
+__obstack_begin
+_xmalloc
+_parse_options_and_default_flags
+_init_reg_sets
+_add_params
+_xrealloc
+_pfe_init
+_override_O_option
+_extract_override_options
+_lang_init_options
+_c_common_init_options
+_cpp_create_reader
+_init_library
+_init_trigraph_map
+_xcalloc
+_set_lang
+_deps_init
+_init_line_maps
+__cpp_init_tokenrun
+__cpp_get_buff
+_new_buff
+_pfe_s_malloc
+_pfe_malloc
+_gcc_obstack_init
+_pfe_obstack_chuck_alloc
+__cpp_init_includes
+_splay_tree_new
+_splay_tree_new_with_allocator
+_splay_tree_xmalloc_allocate
+_set_index_lang
+_set_target_switch
+_optimization_options
+_override_option
+_c_decode_option
+_cpp_handle_option
+_parse_option
+_independent_decode_option
+_xstrdup
+_append_include_chain
+__cpp_simplify_pathname
+_remove_component_p
+_new_pending_directive
+_dump_switch_p
+_decode_f_option
+_decode_g_option
+_set_Wunused
+_set_Wformat
+_decode_W_option
+_add_env_options
+_c_common_post_options
+_cpp_post_options
+_init_dependency_output
+_do_compile
+_process_options
+_rs6000_override_options
+_rs6000_parse_abi_options
+_rs6000_add_gc_roots
+_ggc_add_rtx_root
+_ggc_add_root
+_htab_create
+_higher_prime_number
+_machopic_add_gc_roots
+_ggc_add_tree_root
+_new_alias_set
+_floor_log2_wide
+_init_timevar
+_timevar_start
+_lang_independent_init
+_init_ggc
+_exact_log2_wide
+_pfe_s_calloc
+_pfe_calloc
+_init_stringpool
+_ht_create
+_init_obstacks
+_ggc_add_deletable_htab
+_init_emit_once
+_mode_for_size
+_gen_rtx
+_rtx_alloc
+_ggc_alloc
+_alloc_page
+_pfe_free
+_set_page_table_entry
+_gen_raw_REG
+_gen_rtx_fmt_i0
+_gen_rtx_fmt_w
+_ereal_atof
+_asctoe53
+_asctoeg
+_ecleaz
+_enormlz
+_eshup6
+_toe53
+_eiisnan
+_eshift
+_eshup1
+_e53toe
+_eshdn1
+_ecleazs
+_emovo
+_emovz
+_eaddm
+_eshup8
+_emdnorm
+_gen_rtx_CONST_INT
+_gen_const_vector_0
+_rtvec_alloc
+_gen_rtx_fmt_E0
+_gen_rtx_REG
+_init_regs
+_init_reg_sets_1
+_reg_class_subset_p
+_init_reg_modes
+_choose_hard_reg_mode
+_init_alias_once
+_init_stmt
+_init_loop
+_address_cost
+_memory_address_p
+_rs6000_legitimate_address
+_init_reload
+_gen_rtx_fmt_ee
+_gen_rtx_MEM
+_gen_rtx_fmt_e0
+_gen_rtx_fmt_s
+_pfe_savestring
+_plus_constant_wide
+_find_constant_term_loc
+_bitmap_initialize
+_init_function_once
+_varray_init
+_init_stor_layout_once
+_init_varasm_once
+_init_EXPR_INSN_LIST_cache
+_init_dummy_function_start
+_prepare_function_start
+_ggc_alloc_cleared
+_init_stmt_for_function
+_init_eh_for_function
+_init_emit
+_clear_emit_caches
+_init_virtual_regs
+_init_expr
+_init_varasm_status
+_init_temp_slots
+_init_pending_stack_adjust
+_rs6000_init_machine_status
+_init_expmed
+_start_sequence
+_rtx_cost
+_emit_insn
+_make_insn_raw
+_add_insn
+_init_recog
+_recog
+_recog_13
+_gpc_reg_operand
+_register_operand
+_recog_4
+_reg_or_cint_operand
+_recog_5
+_nonimmediate_operand
+_general_operand
+_input_operand
+_memory_operand
+_toc_relative_expr_p
+_constant_pool_expr_1
+_reg_or_short_operand
+_short_cint_operand
+_htab_find_slot_with_hash
+_const_int_htab_eq
+_init_expr_once
+_boolean_or_operator
+_boolean_operator
+_recog_1
+_reg_or_mem_operand
+_recog_7
+_recog_10
+_recog_9
+_altivec_register_operand
+_zero_constant
+_extract_insn
+_init_caller_save
+_constrain_operands
+_reg_fits_class_p
+_insn_extract
+_recog_memoized_1
+_cc_reg_operand
+_recog_6
+_record_builtin_type
+_build_decl
+_make_node
+_tree_size
+_pushdecl
+_lookup_name_current_level
+_c_common_nodes_and_builtins
+_get_identifier
+_ht_lookup
+_calc_hash
+_alloc_node
+_make_signed_type
+_default_set_default_type_attributes
+_fixup_signed_type
+_build_int_2_wide
+_layout_type
+_tree_int_cst_sgn
+_smallest_mode_for_size
+_size_int_wide
+_size_int_type_wide
+_force_fit_type
+_htab_find_slot
+_size_htab_hash
+_size_htab_eq
+_finalize_type_size
+_get_mode_alignment
+_round_type_align
+_round_up
+_size_binop
+_int_const_binop
+_integer_onep
+_tree_cons
+_make_unsigned_type
+_fixup_unsigned_type
+_identifier_global_value
+_signed_type
+_set_sizetype
+_copy_node
+_build_common_tree_nodes_2
+_build_pointer_type
+_build_qualified_type
+_get_qualified_type
+_build_type_copy
+_set_type_quals
+_mul_double
+_encode
+_decode
+_rs6000_build_va_list
+_make_vector
+_finish_vector_type
+_build_index_type
+_convert
+_convert_to_integer
+_build1
+_first_rtl_op
+_fold
+_fold_convert
+_compare_tree_int
+_host_integerp
+_tree_low_cst
+_type_hash_canon
+_type_hash_lookup
+_htab_find_with_hash
+_type_hash_add
+_build_array_type
+_build
+_integer_zerop
+_non_lvalue
+_add_double
+_simple_cst_equal
+_mode_for_size_tree
+_start_record_layout
+_place_field
+_layout_decl
+_default_ms_bitfield_layout_p
+_normalize_rli
+_normalize_offset
+_finish_record_layout
+_finalize_record_size
+_get_inner_array_type
+_rli_size_so_far
+_bit_from_pos
+_rli_size_unit_so_far
+_byte_from_pos
+_compute_record_mode
+_type_hash_eq
+_attribute_list_equal
+_attribute_list_contained
+_bit_position
+_int_bit_position
+_builtin_function
+_make_decl_rtl
+_decode_reg_name
+_darwin_encode_section_info
+_ggc_alloc_string
+_update_stubs
+_decl_attributes
+_default_insert_attributes
+_insert_default_attributes
+_c_common_insert_default_attributes
+_builtin_function_2
+_builtin_function_disabled_p
+_set_decl_assembler_name
+_is_attribute_p
+_c_init_decl_processing
+_build_function_type
+_type_hash_list
+_type_list_equal
+_start_fname_decls
+_set_dump_tree_p
+_c_objc_common_init
+_c_common_init
+_init_c_lex
+_get_fileinfo
+_splay_tree_lookup
+_splay_tree_splay
+_splay_tree_insert
+_cpp_get_callbacks
+_cpp_read_main_file
+__cpp_init_hashtable
+__cpp_init_directives
+_cpp_lookup
+__obstack_newchunk
+__cpp_init_internal_pragmas
+_cpp_register_pragma
+_lookup_pragma_entry
+_insert_pragma_entry
+__cpp_aligned_alloc
+_init_standard_includes
+_update_path
+_concat
+_translate_name
+_get_key_value
+_merge_include_chains
+_remove_dup_dirs
+_remove_dup_dir
+__cpp_read_file
+_open_file
+_find_or_create_entry
+_splay_tree_foreach
+_splay_tree_foreach_helper
+_inode_finder
+_stack_include_file
+_read_include_file
+_cpp_push_buffer
+__cpp_do_file_change
+_add_line_map
+_cb_file_change
+_update_header_times
+_extract_interface_info
+_init_pragma
+_add_c_tree_codes
+_ggc_add_tree_varray_root
+_lang_dependent_init
+_init_asm_output
+_init_eh
+_init_optabs
+_new_optab
+_init_all_optabs
+_init_integral_libfuncs
+_init_libfuncs
+_init_floating_libfuncs
+_init_one_libfunc
+_init_traps
+_push_srcloc
+_timevar_push
+_dwarf2out_do_frame
+_dbxout_init
+_getdecls
+_getpwd
+_output_quoted_string
+_assemble_name
+_maybe_get_identifier
+_text_section
+_dbxout_typedefs
+_dbxout_symbol
+_timevar_pop
+_compile_file
+_init_final
+_init_branch_prob
+_yyparse
+_dbxout_start_source_file
+_cpp_finish_options
+_init_builtins
+__cpp_define_builtin
+_run_directive
+_start_directive
+_do_define
+_lex_macro_node
+__cpp_lex_token
+__cpp_lex_direct
+_parse_identifier
+__cpp_create_definition
+_skip_whitespace
+_parse_string
+_unescaped_terminator_p
+_alloc_expansion_token
+_lex_expansion_token
+_handle_newline
+_pfe_is_cmd_ln_processing
+_end_directive
+_skip_rest_of_line
+__cpp_pop_buffer
+_parse_number
+_pfe_set_cmd_ln_processing
+_cpp_define
+_warn_of_redefinition
+__cpp_equiv_tokens
+__cpp_free_definition
+_pfe_reset_cmd_ln_processing
+_free_chain
+__cpp_push_next_buffer
+_yyparse_1
+_yylex
+__yylex
+_c_lex
+_cpp_get_token
+_get_effective_char
+_skip_block_comment
+_skip_escaped_newlines
+_trigraph_p
+__cpp_handle_directive
+_directive_diagnostics
+_do_include
+_do_include_common
+_parse_include
+_check_eol
+__cpp_execute_include
+_find_include_file
+_search_from
+_lbasename
+_splay_tree_splay_helper
+_adjust_column
+__cpp_extend_buff
+_parse_params
+_save_parameter
+_cb_line_change
+_yylexname
+_altivec_treat_as_keyword
+_ggc_collect
+_lookup_name
+_start_enum
+_lookup_tag
+_pushtag
+_build_enumerator
+_int_fits_type_p
+_build_binary_op
+_common_type
+_tree_int_cst_lt
+_type_for_size
+_const_binop
+_chainon
+_nreverse
+_finish_enum
+_in_parm_level_p
+_min_precision
+_tree_floor_log2
+_rest_of_type_compilation
+_shadow_tag
+_shadow_tag_warned
+_split_specs_attrs
+_lookup_tag_reverse
+_check_trad_stringification
+_xref_tag
+_pending_xref_error
+_build_tree_list
+_grokdeclarator
+_c_apply_type_quals_to_decl
+_grokfield
+_finish_decl
+_maybe_apply_renaming_pragma
+_get_pending_sizes
+_finish_struct
+_start_decl
+_maybe_apply_pragma_weak
+_rest_of_decl_compilation
+_start_struct
+_do_ifdef
+_push_conditional
+_do_else
+_do_endif
+_constant_expression_warning
+__cpp_pop_file_buffer
+_pop_srcloc
+_dbxout_end_source_file
+_make_pointer_declarator
+_pushlevel
+_make_binding_level
+_clear_parm_order
+_declare_parm_level
+_push_parm_decl
+_simple_type_promotes_to
+_c_promoting_integer_type_p
+_get_parm_info
+_gettags
+_storedecls
+_parmlist_tags_warning
+_poplevel
+_warn_about_unused_variables
+_build_nt
+_grokparms
+_unsigned_type
+_lex_number
+_build_compound_expr
+_internal_build_compound_expr
+_build_array_declarator
+_set_array_declarator_type
+_signed_or_unsigned_type
+_operand_equal_p
+_tree_int_cst_equal
+_neg_double
+_do_undef
+_warn_if_shadowing
+_build_decl_attribute_variant
+_gen_aux_info_record
+_collect_args
+_enter_macro_context
+_replace_args
+_expand_arg
+_push_ptoken_context
+_next_context
+__cpp_pop_context
+__cpp_release_buff
+_padding_token
+__cpp_temp_token
+_c_build_qualified_type
+_push_token_context
+_list_length
+_handle_noreturn_attribute
+_lookup_attribute
+_purge_cache
+_do_ifndef
+_do_if
+__cpp_parse_expr
+_lex
+_parse_number
+___udivdi3
+___udivmoddi4
+_funlike_invocation_p
+_parse_defined
+_cpp_warning
+__cpp_begin_message
+_do_elif
+_groktypename
+_c_sizeof
+_parser_build_binary_op
+_default_conversion
+_merge_type_attributes
+_merge_attributes
+_build_type_attribute_variant
+_extract_muldiv
+_unsigned_conversion_warning
+_overflow_warning
+_get_narrower
+_attribute_hash_list
+_duplicate_decls
+_comptypes
+_default_comp_type_attributes
+_function_types_compatible_p
+_self_promoting_args_p
+_merge_decl_attributes
+_handle_format_attribute
+_decode_format_attr
+_decode_format_type
+_start_function
+_announce_function
+_store_parm_decls
+_decl_function_context
+_storetags
+_init_function_start
+_decl_name
+_emit_line_note
+_set_file_and_line_for_stmt
+_emit_note
+_aggregate_value_p
+_hard_function_value
+_begin_stmt_tree
+_current_stmt_tree
+_c_begin_compound_stmt
+_build_stmt
+_add_stmt
+_stmts_are_full_exprs_p
+_clear_last_expr
+_add_scope_stmt
+_current_scope_stmt_stack
+_c_begin_if_stmt
+_build_external_ref
+_lookup_objc_ivar
+_assemble_external
+_build_indirect_ref
+_build_component_ref
+_lookup_field
+_build_unary_op
+_unary_complex_lvalue
+_get_unwidened
+_lvalue_or_else
+_lvalue_p
+_shorten_compare
+_twoval_comparison_p
+_invert_tree_comparison
+_truthvalue_conversion
+_build_c_cast
+_default_function_array_conversion
+_lex_charconst
+_cpp_interpret_charconst
+_cpp_parse_escape
+_truth_value_p
+_fold_range_test
+_make_range
+_fold_truthop
+_c_expand_start_cond
+_c_size_in_bytes
+_convert_to_pointer
+_build_modify_expr
+_require_complete_type
+_convert_for_assignment
+_convert_and_check
+_c_expand_return
+_build_return_stmt
+_c_finish_then
+_c_expand_start_else
+_build_function_call
+_decl_target_overloaded_intrinsic_p
+_convert_arguments
+_check_function_format
+_c_finish_else
+_c_expand_end_cond
+_kept_level_p
+_finish_function
+_clear_limbo_values
+_finish_fname_decls
+_finish_stmt_tree
+_free_after_parsing
+_free_stmt_status
+_free_after_compilation
+_free_eh_status
+_free_expr_status
+_free_emit_status
+_free_varasm_status
+_rs6000_free_machine_status
+_c_expand_body
+_tree_inlinable_function_p
+_inlinable_function_p
+_c_disregard_inline_limits
+_c_cannot_inline_tree_fn
+_function_attribute_inlinable_p
+_put_pending_sizes
+_walk_tree
+_inline_forbidden_p
+_statement_code_p
+_lhd_tree_inlining_walk_subtrees
+_get_callee_fndecl
+_setjmp_call_p
+_special_function_p
+_defer_fn
+_debug_nothing_tree
+_integer_all_onesp
+_distribute_bit_expr
+_place_union_field
+_cpp_pedwarn
+_do_include_next
+___divdi3
+___udivmoddi4
+_handle_malloc_attribute
+_type_lists_compatible_p
+_redeclaration_error_message
+_pedwarn
+_set_diagnostic_context
+_report_diagnostic
+_count_error
+_build_range_type
+_complete_array_type
+_start_init
+_push_string
+_really_start_incremental_init
+_process_init_element
+_push_member_name
+_output_init_element
+_initializer_constant_valid_p
+_lhd_return_tree
+_digest_init
+_output_pending_init_elements
+_pop_init_level
+_finish_init
+_store_init_value
+_assemble_variable
+_set_mem_attributes
+_get_alias_set
+_maybe_set_unchanging
+_can_address_p
+_handled_component_p
+_get_mem_attrs
+_mem_attrs_htab_hash
+_update_non_lazy_ptrs
+_app_disable
+_set_mem_align
+_mem_attrs_htab_eq
+_output_addressed_constants
+_resolve_unique_section
+_variable_section
+_darwin_set_section_for_var_p
+_data_section
+_try_section_alias
+_in_text_section
+_machopic_define_name
+_machopic_define_ident
+_machopic_ident_defined_p
+_machopic_classify_ident
+_name_needs_quotes
+_output_constant
+_int_size_in_bytes
+_output_constructor
+_int_byte_position
+_byte_position
+_expand_expr
+_get_subtarget
+_immed_double_const
+_assemble_integer
+_rs6000_assemble_integer
+_find_weak_imports
+_default_assemble_integer
+_integer_asm_op
+_assemble_integer_with_op
+_output_addr_const
+_global_bindings_p
+_handle_unused_attribute
+_add_decl_stmt
+_build_array_ref
+_pointer_int_sum
+_size_in_bytes
+_omit_one_operand
+_decl_constant_value_for_broken_optimization
+_comp_target_types
+_c_expand_expr_stmt
+_verify_sequence_points
+_verify_tree
+_warning_candidate_p
+_split_tree
+_lex_string
+_build_string
+_combine_strings
+_choose_string_type
+_mark_addressable
+_staticp
+_expand_tree_builtin
+_fold_builtin
+_invert_truthvalue
+_define_label
+_lookup_label
+_new_tlist
+_add_tlist
+_warn_for_collisions
+_warn_for_collisions_1
+_merge_tlist
+_decode_field_reference
+_get_inner_reference
+_hash_pointer
+_htab_find
+_eq_pointer
+_expand_call_inline
+_lhd_tree_inlining_tree_chain_matters_p
+_htab_expand
+_find_empty_slot_for_expand
+_expand_call
+_precompute_register_parameters
+_push_temp_slots
+_preserve_temp_slots
+_find_temp_slot_from_address
+_pop_temp_slots
+_combine_temp_slots
+_emit_queue
+_protect_from_queue
+_mark_temp_addr_taken
+_force_operand
+_save_fixed_argument_area
+_prepare_call_address
+_lookup_static_chain
+_load_register_parameters
+_emit_move_insn
+_emit_move_insn_1
+_gen_movsi
+_rs6000_emit_move
+_gen_sequence
+_end_sequence
+_use_reg
+_gen_rtx_fmt_e
+_easy_fp_constant
+_rs6000_machopic_legitimize_pic_address
+_machopic_legitimize_pic_address
+_machopic_indirect_data_reference
+_machopic_data_defined_p
+_machopic_function_base_name
+_gen_rtx_fmt_E
+_trunc_int_for_mode
+_num_insns_constant
+_num_insns_constant_wide
+_get_last_insn
+_function_arg
+_emit_call_1
+_gen_call_value
+_machopic_indirect_call_target
+_machopic_name_defined_p
+_machopic_stub_list_entry
+_gen_rtx_fmt_0
+_gen_rtvec
+_gen_rtvec_v
+_emit_call_insn
+_make_call_insn_raw
+_any_pending_cleanups
+_get_insns
+_gen_rtx_fmt_uuuu
+_expand_builtin
+_do_jump
+_do_pending_stack_adjust
+_can_compare_p
+_do_compare_rtx_and_jump
+_reverse_condition
+_swap_commutative_operands_p
+_commutative_operand_precedence
+_force_not_mem
+_emit_cmp_and_jump_insns
+_prepare_cmp_insn
+_preserve_subexpressions_p
+_emit_cmp_and_jump_insn_1
+_prepare_operand
+_gen_cmpsi
+_gen_beq
+_rs6000_emit_cbranch
+_rs6000_generate_compare
+_gen_reg_rtx
+_validate_condition_mode
+_gen_rtx_fmt_u00
+_gen_rtx_fmt_eee
+_emit_jump_insn
+_make_jump_insn_raw
+_start_cleanup_deferral
+_expand_builtin_strcmp
+_validate_arglist
+_c_getstr
+_string_constant
+_c_strlen
+_build_function_call_expr
+_expand_builtin_memcmp
+_flags_from_decl_or_type
+_init_cumulative_args
+_tree_last
+_rearrange_arg_list
+_initialize_argument_information
+_function_arg_pass_by_reference
+_promote_mode
+_no_reg_parm_stack_space
+_function_arg_partial_nregs
+_function_arg_skip
+_function_arg_boundary
+_locate_and_pad_parm
+_function_arg_padding
+_function_arg_mod_boundary
+_pad_to_arg_alignment
+_function_arg_advance
+_finalize_must_preallocate
+_function_ok_for_sibcall
+_unsafe_for_reeval
+_c_unsafe_for_reeval
+_expand_start_target_temps
+_expand_start_bindings_and_block
+_compute_argument_block_size
+_sbitmap_alloc
+_sbitmap_zero
+_compute_argument_addresses
+_rtx_for_function_call
+_output_constant_def
+_const_hash
+_record_constant
+_record_constant_1
+_set_mem_alias_set
+_copy_constant
+_gen_sibcall_value
+_gen_rtx_fmt_
+_emit_barrier_after
+_add_insn_after
+_copy_to_reg
+_expand_end_target_temps
+_expand_end_bindings
+_precompute_arguments
+_calls_function
+_calls_function_1
+_end_cleanup_deferral
+_gen_bne
+_emit_jump
+_gen_jump
+_emit_barrier
+_emit_label
+_genrtl_if_stmt
+_expand_stmt
+_prep_stmt
+_genrtl_compound_stmt
+_genrtl_scope_stmt
+_genrtl_expr_stmt_value
+_expand_expr_stmt_value
+_warn_if_unused_value
+_expand_assignment
+_copy_rtx
+_replace_equiv_address
+_update_temp_slot_address
+_rtx_equal_p
+_change_address_1
+_memory_address
+_force_reg
+_machopic_non_lazy_ptr_list_entry
+_set_unique_reg_note
+_find_reg_note
+_mark_reg_pointer
+_store_expr
+_queued_subexp_p
+_free_temp_slots
+_pfe_s_realloc
+_pfe_realloc
+_expand_start_else
+_gen_label_rtx
+_gen_rtx_fmt_iuu00iss
+_genrtl_do_pushlevel
+_expand_cond
+_expand_start_cond
+_gen_sibcall
+_gen_call
+_expand_end_cond
+_compare_constant
+_compare_constant_1
+_safe_from_p
+_expand_binop
+_convert_modes
+_reg_or_arith_cint_operand
+_gen_addsi3
+_add_operand
+_do_compare_and_jump
+_gen_movqi
+_convert_move
+_can_extend_p
+_emit_unop_insn
+_gen_extendqisi2
+_gen_extendqisi2_ppc
+_simplify_binary_operation
+_avoid_constant_pool_reference
+_break_out_memory_refs
+_genrtl_goto_stmt
+_label_rtx
+_expand_goto
+_expand_goto_internal
+_const_str_htab_eq
+_expand_fixup
+_expand_value_return
+_expand_return
+_genrtl_return_stmt
+_obstack_free
+_assign_temp
+_expand_null_return_1
+_clear_pending_stack_adjust
+_expand_function_end
+_finish_expr_for_function
+_in_sequence_p
+_emit_line_note_force
+_expand_eh_return
+_clobber_return_register
+_diddle_return_value
+_do_clobber_return_reg
+_emit_insn_after
+_use_return_register
+_do_use_return_reg
+_expand_fixups
+_fixup_gotos
+_rest_of_compilation
+_reorder_blocks
+_reorder_blocks_0
+_reorder_blocks_1
+_blocks_nreverse
+_purge_hard_subreg_sets
+_open_dump_file
+_optimize_sibling_and_tail_recursive_calls
+_find_exception_handler_labels
+_rebuild_jump_labels
+_init_label_info
+_mark_all_labels
+_mark_jump_label
+_find_unreachable_blocks
+_delete_unreachable_blocks
+_flow_delete_block_noexpunge
+_never_reached_warning
+_next_nonnote_insn
+_delete_insn_chain
+_can_delete_note_p
+_delete_insn
+_remove_insn
+_remove_edge
+_free_edge
+_expunge_block_nocompact
+_tidy_fallthru_edges
+_tidy_fallthru_edge
+_next_real_insn
+_forwarder_block_p
+_update_forwarder_flag
+_try_optimize_cfg
+_active_insn_p
+_simplejump_p
+_hook_void_bool_false
+_try_forward_edges
+_redirect_edge_and_branch
+_try_redirect_by_replacing_jump
+_redirect_edge_succ_nodup
+_redirect_edge_succ
+_flow_delete_block
+_expunge_block
+_onlyjump_p
+_side_effects_p
+_can_fallthru
+_next_active_insn
+_block_label
+_redirect_jump
+_redirect_exp
+_redirect_exp_1
+_validate_change
+_num_validated_changes
+_apply_change_group
+_insn_invalid_p
+_prev_nonnote_insn
+_computed_jump_p
+_computed_jump_p_1
+_returnjump_p
+_for_each_rtx
+_returnjump_p_1
+_branch_comparison_operator
+_merge_blocks
+_tail_recursion_label_p
+_merge_blocks_nomove
+_can_delete_label_p
+_in_expr_list_p
+_remove_node_from_expr_list
+_set_block_for_insn
+_label_is_jump_target_p
+_uses_addressof
+_sequence_uses_addressof
+_free_basic_block_vars
+_clear_edges
+_close_dump_file
+_htab_empty
+_doing_eh
+_emit_initial_value_sets
+_unshare_all_rtl
+_copy_rtx_if_shared
+_unshare_all_decls
+_unshare_all_rtl_1
+_max_reg_num
+_find_basic_blocks
+_count_basic_blocks
+_inside_basic_block_p
+_control_flow_insn_p
+_can_throw_internal
+_compute_bb_for_insn
+_make_edges
+_cached_make_edge
+_make_label_edge
+_try_simplify_condjump
+_any_uncondjump_p
+_pc_set
+_any_condjump_p
+_invert_jump
+_invert_exp
+_invert_exp_1
+_reversed_comparison_code
+_reversed_comparison_code_parts
+_invert_br_probabilities
+_update_br_prob_note
+_find_basic_blocks_1
+_create_basic_block_structure
+_reorder_insns
+_reorder_insns_nobb
+_thread_jump
+_comparison_dominates_p
+_find_if_header
+_find_if_block
+_find_cond_trap
+_block_has_only_trap
+_if_convert
+_process_if_block
+_noce_process_if_block
+_noce_get_condition
+_get_condition
+_canonicalize_condition
+_set_of
+_note_stores
+_set_of_1
+_first_active_insn
+_last_active_insn_p
+_clear_aux_for_blocks
+_free_bb_for_insn
+_delete_null_pointer_checks
+_get_bitmap_width
+_sbitmap_vector_alloc
+_reg_scan_mark_refs
+_reg_scan
+_cse_main
+_init_alias_analysis
+_record_set
+_find_base_value
+_rtx_varies_p
+_single_set_2
+_reg_overlap_mentioned_p
+_ggc_push_context
+_cse_end_of_basic_block
+_cse_basic_block
+_new_basic_block
+_cse_process_notes
+_cse_insn
+_canon_reg
+_fold_rtx
+_canon_hash
+_get_cse_reg_info
+_lookup
+_approx_reg_cost
+_approx_reg_cost_1
+_bitmap_set_bit
+_bitmap_element_allocate
+_bitmap_element_link
+_bitmap_clear
+_preferrable
+_insert_regs
+_make_new_qty
+_rehash_using_reg
+_insert
+_invalidate_from_clobbers
+_invalidate
+_delete_reg_equiv
+_lookup_for_remove
+_make_regs_eqv
+_check_for_label_ref
+_find_best_addr
+_notreg_cost
+_mention_regs
+_lookup_as_function
+_safe_hash
+_equiv_constant
+_asm_noperands
+_cancel_changes
+_exp_equiv_p
+_recog_33
+_mov_to_vrsave_operation
+_load_multiple_operation
+_store_multiple_operation
+_recog_25
+_current_file_function_operand
+_call_operand
+_immediate_operand
+_scratch_operand
+_remove_from_table
+_invalidate_memory
+_invalidate_for_call
+_remove_invalid_refs
+_refers_to_regno_p
+_gen_lowpart_if_possible
+_gen_lowpart_common
+_subreg_lowpart_offset
+_recog_3
+_invalidate_skipped_block
+_invalidate_skipped_set
+_canon_rtx
+_replace_equiv_address_nv
+_check_dependence
+_true_dependence
+_mems_in_disjoint_alias_sets_p
+_alias_sets_conflict_p
+_nonoverlapping_memrefs_p
+_simplify_relational_operation
+_simplify_ternary_operation
+_record_jump_equiv
+_find_comparison_args
+_record_jump_cond
+_get_addr
+_find_base_term
+_base_alias_check
+_memrefs_conflict_p
+_addr_side_effect_eval
+_rtx_equal_for_memref_p
+_aliases_everything_p
+_fixed_scalar_and_varying_struct_p
+_merge_equiv_classes
+_reg_mentioned_p
diff --git a/order-files/cc1obj.order b/order-files/cc1obj.order
new file mode 100644
index 00000000000..730010f4851
--- /dev/null
+++ b/order-files/cc1obj.order
@@ -0,0 +1,2163 @@
+start
+__start
+__dyld_init_check
+dyld_stub_binding_helper
+___darwin_gcc3_preregister_frame_info
+__call_mod_init_funcs
+__dyld_func_lookup
+_main
+_toplev_main
+_hex_init
+_general_init
+_xmalloc_set_program_name
+_diagnostic_initialize
+__obstack_begin
+_xmalloc
+_parse_options_and_default_flags
+_init_reg_sets
+_add_params
+_xrealloc
+_pfe_init
+_read_integral_parameter
+_override_O_option
+_extract_override_options
+_objc_init_options
+_c_common_init_options
+_cpp_create_reader
+_init_library
+_init_trigraph_map
+_xcalloc
+_set_lang
+_deps_init
+_init_line_maps
+__cpp_init_tokenrun
+__cpp_get_buff
+_new_buff
+_pfe_s_malloc
+_pfe_malloc
+_gcc_obstack_init
+_pfe_obstack_chuck_alloc
+__cpp_init_includes
+_splay_tree_new
+_splay_tree_new_with_allocator
+_splay_tree_xmalloc_allocate
+_set_index_lang
+_set_target_switch
+_optimization_options
+_override_option
+_objc_decode_option
+_c_decode_option
+_cpp_handle_option
+_parse_option
+_independent_decode_option
+_new_pending_directive
+_xstrdup
+_append_include_chain
+__cpp_simplify_pathname
+_hmap_load_header_map
+_dump_switch_p
+_decode_f_option
+_decode_g_option
+_set_Wunused
+_set_Wformat
+_decode_W_option
+_output_set_maximum_length
+_set_real_maximum_length
+_output_is_line_wrapping
+_add_env_options
+_objc_post_options
+_c_common_post_options
+_cpp_post_options
+_init_dependency_output
+_do_compile
+_process_options
+_rs6000_override_options
+_rs6000_parse_abi_options
+_rs6000_add_gc_roots
+_ggc_add_rtx_root
+_ggc_add_root
+_htab_create
+_higher_prime_number
+_machopic_add_gc_roots
+_ggc_add_tree_root
+_new_alias_set
+_floor_log2_wide
+_init_timevar
+_timevar_start
+_lang_independent_init
+_init_ggc
+_exact_log2_wide
+_pfe_s_calloc
+_pfe_calloc
+_init_stringpool
+_ht_create
+_init_obstacks
+_ggc_add_deletable_htab
+_init_emit_once
+_mode_for_size
+_gen_rtx
+_rtx_alloc
+_ggc_alloc
+_alloc_page
+_pfe_free
+_set_page_table_entry
+_gen_raw_REG
+_gen_rtx_fmt_i0
+_gen_rtx_fmt_w
+_ereal_atof
+_asctoe53
+_asctoeg
+_ecleaz
+_enormlz
+_eshup6
+_toe53
+_eiisnan
+_eshift
+_eshup1
+_e53toe
+_eshdn1
+_ecleazs
+_emovo
+_emovz
+_eaddm
+_eshup8
+_emdnorm
+_gen_rtx_CONST_INT
+_gen_const_vector_0
+_rtvec_alloc
+_gen_rtx_fmt_E0
+_gen_rtx_REG
+_init_regs
+_init_reg_sets_1
+_reg_class_subset_p
+_init_reg_modes
+_choose_hard_reg_mode
+_init_alias_once
+_init_stmt
+_init_loop
+_address_cost
+_memory_address_p
+_rs6000_legitimate_address
+_init_reload
+_gen_rtx_fmt_ee
+_gen_rtx_MEM
+_gen_rtx_fmt_e0
+_gen_rtx_fmt_s
+_pfe_savestring
+_plus_constant_wide
+_find_constant_term_loc
+_bitmap_initialize
+_init_function_once
+_varray_init
+_init_stor_layout_once
+_init_varasm_once
+_init_EXPR_INSN_LIST_cache
+_init_dummy_function_start
+_prepare_function_start
+_ggc_alloc_cleared
+_init_stmt_for_function
+_init_eh_for_function
+_init_emit
+_clear_emit_caches
+_init_virtual_regs
+_init_expr
+_init_varasm_status
+_init_temp_slots
+_init_pending_stack_adjust
+_rs6000_init_machine_status
+_init_expmed
+_start_sequence
+_rtx_cost
+_emit_insn
+_make_insn_raw
+_add_insn
+_init_recog
+_recog
+_recog_13
+_gpc_reg_operand
+_register_operand
+_recog_4
+_reg_or_cint_operand
+_recog_5
+_nonimmediate_operand
+_general_operand
+_input_operand
+_memory_operand
+_toc_relative_expr_p
+_constant_pool_expr_1
+_reg_or_short_operand
+_short_cint_operand
+_htab_find_slot_with_hash
+_const_int_htab_eq
+_init_expr_once
+_recog_6
+_recog_10
+_recog_9
+_altivec_register_operand
+_zero_constant
+_cc_reg_operand
+_end_sequence
+_init_caller_save
+_strict_memory_address_p
+_recog_memoized_1
+_extract_insn
+_insn_extract
+_constrain_operands
+_reg_fits_class_p
+_boolean_or_operator
+_boolean_operator
+_recog_1
+_reg_or_mem_operand
+_recog_7
+_make_node
+_build_decl
+_builtin_function
+_get_identifier
+_ht_lookup
+_calc_hash
+_alloc_node
+_tree_size
+_make_decl_rtl
+_decode_reg_name
+_darwin_encode_section_info
+_ggc_alloc_string
+_update_stubs
+_pushdecl
+_lookup_name_current_level
+_decl_attributes
+_default_insert_attributes
+_insert_default_attributes
+_c_common_insert_default_attributes
+_builtin_function_2
+_builtin_function_disabled_p
+_set_decl_assembler_name
+_c_common_nodes_and_builtins
+_is_attribute_p
+_list_length
+_handle_format_attribute
+_decode_format_attr
+_decode_format_type
+_chainon
+_lookup_attribute
+_tree_cons
+_build_type_attribute_variant
+_attribute_list_equal
+_attribute_list_contained
+_copy_node
+_set_type_quals
+_attribute_hash_list
+_type_hash_canon
+_type_hash_lookup
+_layout_type
+_htab_find_with_hash
+_type_hash_add
+_build_qualified_type
+_get_qualified_type
+_c_init_decl_processing
+_make_unsigned_type
+_default_set_default_type_attributes
+_fixup_unsigned_type
+_build_int_2_wide
+_tree_int_cst_sgn
+_smallest_mode_for_size
+_size_int_wide
+_size_int_type_wide
+_force_fit_type
+_htab_find_slot
+_size_htab_hash
+_size_htab_eq
+_finalize_type_size
+_get_mode_alignment
+_round_type_align
+_round_up
+_size_binop
+_int_const_binop
+_integer_onep
+_build_function_type
+_type_hash_list
+_type_hash_eq
+_type_list_equal
+__obstack_newchunk
+_start_fname_decls
+_set_dump_tree_p
+_c_objc_common_init
+_c_common_init
+_init_c_lex
+_get_fileinfo
+_splay_tree_lookup
+_splay_tree_splay
+_splay_tree_insert
+_cpp_get_callbacks
+_cpp_read_main_file
+__cpp_init_hashtable
+__cpp_init_directives
+_cpp_lookup
+__cpp_init_internal_pragmas
+_cpp_register_pragma
+_lookup_pragma_entry
+_insert_pragma_entry
+__cpp_aligned_alloc
+_init_standard_includes
+_update_path
+_remove_component_p
+_concat
+_translate_name
+_get_key_value
+_merge_include_chains
+_remove_dup_dirs
+_remove_dup_dir
+__cpp_read_file
+_open_file
+_find_or_create_entry
+_splay_tree_foreach
+_splay_tree_foreach_helper
+_inode_finder
+_stack_include_file
+_read_include_file
+_cpp_push_buffer
+__cpp_do_file_change
+_add_line_map
+_cb_file_change
+_update_header_times
+_extract_interface_info
+_init_pragma
+_add_c_tree_codes
+_ggc_add_tree_varray_root
+_objc_init
+_add_objc_tree_codes
+_init_objc
+_hash_init
+_synth_module_prologue
+_xref_tag
+_lookup_tag
+_pushtag
+_build_pointer_type
+_objc_declare_class
+_is_class_name
+_lookup_interface
+_lookup_name
+_generate_forward_declaration_to_string_table
+_build_nt
+_define_decl
+_start_decl
+_grokdeclarator
+_signed_type
+_signed_or_unsigned_type
+_build_array_type
+_layout_decl
+_c_apply_type_quals_to_decl
+_maybe_apply_pragma_weak
+_finish_decl
+_maybe_apply_renaming_pragma
+_complete_array_type
+_objc_check_decl
+_rest_of_decl_compilation
+_timevar_push
+_timevar_pop
+_get_pending_sizes
+_build_tree_list
+_objc_act_parse_init
+_lang_dependent_init
+_init_asm_output
+_init_eh
+_init_optabs
+_new_optab
+_init_all_optabs
+_init_integral_libfuncs
+_init_libfuncs
+_init_floating_libfuncs
+_init_one_libfunc
+_init_traps
+_push_srcloc
+_dwarf2out_do_frame
+_dbxout_init
+_getdecls
+_getpwd
+_output_quoted_string
+_assemble_name
+_maybe_get_identifier
+_text_section
+_dbxout_typedefs
+_dbxout_symbol
+_compile_file
+_init_final
+_init_branch_prob
+_yyparse
+_dbxout_start_source_file
+_cpp_finish_options
+_init_builtins
+__cpp_define_builtin
+_run_directive
+_start_directive
+_do_define
+_lex_macro_node
+__cpp_lex_token
+__cpp_lex_direct
+_parse_identifier
+__cpp_create_definition
+_skip_whitespace
+_parse_string
+_unescaped_terminator_p
+_alloc_expansion_token
+_lex_expansion_token
+_handle_newline
+_pfe_is_cmd_ln_processing
+_end_directive
+_skip_rest_of_line
+__cpp_pop_buffer
+_parse_number
+_pfe_set_cmd_ln_processing
+_cpp_define
+_warn_of_redefinition
+__cpp_equiv_tokens
+__cpp_free_definition
+_pfe_reset_cmd_ln_processing
+_free_chain
+__cpp_push_next_buffer
+_yyparse_1
+_yylex
+__yylex
+_c_lex
+_cpp_get_token
+_get_effective_char
+_skip_line_comment
+__cpp_handle_directive
+_directive_diagnostics
+_do_import
+_do_include_common
+_parse_include
+_check_eol
+__cpp_execute_include
+_find_include_file
+_hmap_lookup_path
+_splay_tree_splay_helper
+_find_framework_file
+__cpp_never_reread
+_skip_block_comment
+_adjust_column
+_do_ifndef
+_push_conditional
+_do_if
+__cpp_parse_expr
+_lex
+_parse_defined
+_do_else
+_do_endif
+__cpp_pop_file_buffer
+_purge_cache
+_pop_srcloc
+_dbxout_end_source_file
+_cb_line_change
+_yylexname
+_altivec_treat_as_keyword
+_pending_xref_error
+_split_specs_attrs
+_make_pointer_declarator
+_build1
+_first_rtl_op
+_build_type_copy
+_ggc_collect
+_start_struct
+_grokfield
+_finish_struct
+_in_parm_level_p
+_start_record_layout
+_place_field
+_integer_zerop
+_default_ms_bitfield_layout_p
+_normalize_rli
+_normalize_offset
+_compare_tree_int
+_finish_record_layout
+_finalize_record_size
+_convert
+_convert_to_integer
+_fold
+_fold_convert
+_mul_double
+_encode
+_decode
+_rli_size_so_far
+_bit_from_pos
+_rli_size_unit_so_far
+_byte_from_pos
+_compute_record_mode
+_host_integerp
+_bit_position
+_int_bit_position
+_tree_low_cst
+_simple_cst_equal
+_rest_of_type_compilation
+_get_object_reference
+_pushlevel
+_make_binding_level
+_clear_parm_order
+_declare_parm_level
+_push_parm_decl
+_simple_type_promotes_to
+_c_promoting_integer_type_p
+_warn_about_unused_variables
+_poplevel
+_grokparms
+_enter_macro_context
+_push_token_context
+_next_context
+_padding_token
+__cpp_temp_token
+__cpp_pop_context
+_warn_if_shadowing
+_get_parm_info
+_gettags
+_nreverse
+_storedecls
+_parmlist_tags_warning
+_build_decl_attribute_variant
+_gen_aux_info_record
+_c_build_qualified_type
+_parse_params
+_save_parameter
+_do_include
+_search_from
+_lbasename
+___udivmoddi4
+_parse_number
+_do_elif
+___udivdi3
+_skip_escaped_newlines
+_unsigned_type
+__cpp_extend_buff
+_build_index_type
+_build
+_non_lvalue
+_add_double
+_mode_for_size_tree
+_shadow_tag
+_shadow_tag_warned
+_lookup_tag_reverse
+_lex_number
+_build_compound_expr
+_internal_build_compound_expr
+_build_array_declarator
+_set_array_declarator_type
+_constant_expression_warning
+_operand_equal_p
+_tree_int_cst_equal
+_const_binop
+_neg_double
+_trigraph_p
+_build_enumerator
+_default_conversion
+_build_binary_op
+_common_type
+_tree_int_cst_lt
+_type_for_size
+_finish_enum
+_min_precision
+_tree_floor_log2
+_int_fits_type_p
+_start_enum
+_do_undef
+_do_ifdef
+_function_attribute_inlinable_p
+_c_cannot_inline_tree_fn
+_put_pending_sizes
+_walk_tree
+_inline_forbidden_p
+_statement_code_p
+_lhd_tree_inlining_walk_subtrees
+_get_callee_fndecl
+_setjmp_call_p
+_special_function_p
+_inlinable_function_p
+_c_expand_body
+_defer_fn
+_debug_nothing_tree
+_finish_function
+_start_function
+_announce_function
+_store_parm_decls
+_decl_function_context
+_storetags
+_init_function_start
+_objc_printable_name
+_objc_demangle
+_emit_line_note
+_set_file_and_line_for_stmt
+_emit_note
+_aggregate_value_p
+_hard_function_value
+_begin_stmt_tree
+_current_stmt_tree
+_c_begin_compound_stmt
+_build_stmt
+_add_stmt
+_stmts_are_full_exprs_p
+_clear_last_expr
+_add_scope_stmt
+_current_scope_stmt_stack
+_c_begin_if_stmt
+_build_external_ref
+_lookup_objc_ivar
+_assemble_external
+_build_indirect_ref
+_is_public
+_build_component_ref
+_lookup_field
+_truthvalue_conversion
+_convert_to_pointer
+_truth_value_p
+_twoval_comparison_p
+_optimize_bit_field_compare
+_get_inner_reference
+_c_expand_start_cond
+_parser_build_binary_op
+_split_tree
+_unsigned_conversion_warning
+_overflow_warning
+_build_array_ref
+_pointer_int_sum
+_size_in_bytes
+_extract_muldiv
+_c_expand_return
+_convert_for_assignment
+_objc_comptypes
+_build_return_stmt
+_c_finish_then
+_c_expand_end_cond
+_shorten_compare
+_get_narrower
+_invert_tree_comparison
+_fold_range_test
+_make_range
+_fold_truthop
+_merge_type_attributes
+_merge_attributes
+_swap_tree_comparison
+_convert_and_check
+_build_modify_expr
+_c_expand_expr_stmt
+_verify_sequence_points
+_verify_tree
+_warning_candidate_p
+_new_tlist
+_merge_tlist
+_add_tlist
+_warn_for_collisions
+_warn_for_collisions_1
+_require_complete_type
+_lvalue_or_else
+_lvalue_p
+_get_unwidened
+_negate_expr
+_build_function_call
+_decl_target_overloaded_intrinsic_p
+_convert_arguments
+_default_function_array_conversion
+_check_function_format
+_build_unary_op
+_unary_complex_lvalue
+_mark_addressable
+_byte_position
+_staticp
+_kept_level_p
+_lshift_double
+_place_union_field
+_get_inner_array_type
+__cpp_release_buff
+_funlike_invocation_p
+_collect_args
+_replace_args
+_expand_arg
+_push_ptoken_context
+_clear_limbo_values
+_finish_fname_decls
+_finish_stmt_tree
+_free_after_parsing
+_free_stmt_status
+_free_after_compilation
+_free_eh_status
+_free_expr_status
+_free_emit_status
+_free_varasm_status
+_rs6000_free_machine_status
+_tree_inlinable_function_p
+_c_disregard_inline_limits
+_merge_ranges
+_range_binop
+_build_range_check
+_invert_truthvalue
+_put_var_into_stack
+_integer_all_onesp
+_distribute_bit_expr
+_integer_pow2p
+_build_conditional_expr
+_operand_equal_for_comparison_p
+_decl_constant_value_for_broken_optimization
+_decl_constant_value
+_warn_about_long_double
+_duplicate_decls
+_comptypes
+_merge_decl_attributes
+_groktypename
+_c_sizeof
+_default_comp_type_attributes
+_function_types_compatible_p
+_self_promoting_args_p
+_type_lists_compatible_p
+_start_init
+_push_string
+_finish_init
+_store_init_value
+_digest_init
+_add_decl_stmt
+_build_c_cast
+_is_id
+_lex_string
+_build_string
+_combine_strings
+_choose_string_type
+_global_bindings_p
+_htab_expand
+_type_hash_hash
+_find_empty_slot_for_expand
+_get_static_reference
+_start_protocol
+_build_protocol_template
+_lookup_protocol
+_make_tree_vec
+_lookup_and_install_protocols
+_add_protocol
+_check_protocol_recursively
+_build_keyword_decl
+_adjust_type_for_id_default
+_is_objc_type_qualifier
+_build_method_decl
+_build_keyword_selector
+_add_instance_method
+_lookup_method
+_hash_lookup
+_hash_func
+_hash_enter
+_finish_protocol
+_start_class
+_add_class
+_add_class_method
+_finish_class
+_continue_class
+_build_ivar_chain
+_objc_copy_list
+_add_category
+_decode_field_reference
+_get_best_mode
+_comp_proto_with_proto
+_get_arg_type_list
+_groktypename_in_parm_context
+_hash_add_attr
+_add_instance_variable
+_type_for_mode
+_rshift_double
+_constant_boolean_node
+_omit_one_operand
+_unextend
+_make_bit_field_ref
+_all_ones_mask_p
+_do_float_handler
+_set_float_handler
+_parse_float
+_target_isinf
+_eisinf
+_eisnan
+restFP
+_build_real
+_convert_to_real
+_real_onep
+_ereal_cmp
+_ecmp
+_emovi
+_exact_real_inverse
+_ediv
+_eisneg
+_edivm
+_m16m
+_ecmpm
+_esubm
+_real_value_truncate
+_eclear
+_etoe53
+_real_twop
+saveFP
+_lex_charconst
+_cpp_interpret_charconst
+_do_pragma
+_darwin_pragma_options
+_push_field_alignment
+_pop_field_alignment
+_ht_expand
+_redeclaration_error_message
+_build_range_type
+_release_pages
+_ggc_mark_roots
+_ggc_mark_rtx_ptr
+_ggc_set_mark
+_ggc_mark_rtx_children
+_mark_optab
+_mark_ehl_map
+_ggc_mark_hash_table
+_zap_lists
+_ggc_mark_tree_ptr
+_mark_const_str_htab
+_htab_traverse
+_mark_const_hash_entry
+_maybe_mark_struct_function
+_ggc_mark_rtvec_children
+_mark_ident_hash
+_ht_forall
+_mark_ident
+_varray_grow
+_ggc_mark_trees
+_lang_mark_tree
+_c_mark_lang_decl
+_ggc_htab_delete
+_type_hash_marked_p
+_ggc_marked_p
+_type_hash_mark
+_htab_clear_slot
+_sweep_pages
+_c_expand_start_else
+_c_finish_else
+_stabilize_reference
+_stabilize_reference_1
+_c_begin_while_stmt
+_c_finish_while_stmt_cond
+_c_size_in_bytes
+_pedantic_non_lvalue
+_pop_label_level
+_build_message_expr
+_finish_message_expr
+_save_expr
+_contains_placeholder_p
+_lookup_instance_method_static
+_build_selector_reference
+_build_objc_method_call
+_build_selector_reference_decl
+_set_mem_attributes
+_get_alias_set
+_maybe_set_unchanging
+_can_address_p
+_handled_component_p
+_get_mem_attrs
+_mem_attrs_htab_hash
+_update_non_lazy_ptrs
+_pushdecl_top_level
+_comp_target_types
+_get_class_reference
+_build_class_reference_decl
+_receiver_is_class_object
+_lookup_class_method_static
+_initializer_constant_valid_p
+_lhd_return_tree
+_assemble_variable
+_app_disable
+_set_mem_align
+_mem_attrs_htab_eq
+_output_addressed_constants
+_output_constant_def
+_const_hash
+_record_constant
+_record_constant_1
+_set_mem_alias_set
+_output_constant_def_contents
+_cstring_section
+_data_section
+_try_section_alias
+_int_size_in_bytes
+_output_constant
+_assemble_string
+_decode_addr_const
+_objc_constant_string_object_section
+_objc_section_init
+_objc_cat_cls_meth_section
+_objc_cat_inst_meth_section
+_objc_string_object_section
+_cfstring_constant_object_section
+_objc_selector_refs_section
+_objc_selector_fixup_section
+_objc_cls_refs_section
+_objc_class_section
+_objc_meta_class_section
+_objc_cls_meth_section
+_objc_inst_meth_section
+_objc_protocol_section
+_objc_class_names_section
+_objc_meth_var_types_section
+_objc_meth_var_names_section
+_objc_category_section
+_objc_class_vars_section
+_objc_instance_vars_section
+_objc_module_info_section
+_objc_symbols_section
+_output_constructor
+_int_byte_position
+_expand_expr
+_get_subtarget
+_protect_from_queue
+_mark_temp_addr_taken
+_assemble_integer
+_rs6000_assemble_integer
+_find_weak_imports
+_default_assemble_integer
+_integer_asm_op
+_assemble_integer_with_op
+_output_addr_const
+_name_needs_quotes
+_immed_double_const
+_resolve_unique_section
+_variable_section
+_darwin_set_section_for_var_p
+_const_data_section
+_in_text_section
+_machopic_define_name
+_machopic_define_ident
+_machopic_ident_defined_p
+_machopic_classify_ident
+__cpp_backup_tokens
+_build_objc_string_object
+_add_class_reference
+_setup_string_decl
+_build_constructor
+_build_super_template
+_build_private_template
+_build_class_template
+_is_ivar
+_check_duplicates
+_locate_and_pad_parm
+_function_arg_padding
+_function_arg_boundary
+_function_arg_mod_boundary
+_pad_to_arg_alignment
+_assign_parms
+_function_arg_partial_nregs
+_function_arg_skip
+_no_reg_parm_stack_space
+_function_arg_advance
+_promote_mode
+_gen_reg_rtx
+_mark_user_reg
+_validize_mem
+_emit_move_insn
+_emit_move_insn_1
+_gen_movsi
+_rs6000_emit_move
+_gen_sequence
+_pfe_s_realloc
+_pfe_realloc
+_reg_mentioned_p
+_get_last_insn
+_mark_reg_pointer
+_function_arg_pass_by_reference
+_function_arg
+_emit_insns
+_expand_function_start
+_expand_pending_sizes
+_force_next_line_note
+_expand_stmt
+_prep_stmt
+_genrtl_compound_stmt
+_genrtl_scope_stmt
+_expand_start_bindings_and_block
+_push_temp_slots
+_genrtl_decl_stmt
+_anon_aggr_type_p
+_emit_local_var
+_expand_decl
+_expand_decl_init
+_expand_assignment
+_store_expr
+_queued_subexp_p
+_preserve_subexpressions_p
+_expand_call
+_flags_from_decl_or_type
+_init_cumulative_args
+_tree_last
+_rearrange_arg_list
+_initialize_argument_information
+_finalize_must_preallocate
+_any_pending_cleanups
+_function_ok_for_sibcall
+_unsafe_for_reeval
+_c_unsafe_for_reeval
+_assign_temp
+_precompute_arguments
+_calls_function
+_calls_function_1
+_value_member
+_compute_argument_block_size
+_compute_argument_addresses
+_rtx_for_function_call
+_precompute_register_parameters
+_rtx_equal_p
+_preserve_temp_slots
+_pop_temp_slots
+_combine_temp_slots
+_emit_queue
+_copy_rtx
+_replace_equiv_address
+_update_temp_slot_address
+_change_address_1
+_memory_address
+_force_reg
+_easy_fp_constant
+_gen_rtx_fmt_e
+_rs6000_machopic_legitimize_pic_address
+_machopic_legitimize_pic_address
+_machopic_indirect_data_reference
+_machopic_data_defined_p
+_machopic_function_base_name
+_gen_rtx_fmt_E
+_set_unique_reg_note
+_find_reg_note
+_find_temp_slot_from_address
+_copy_to_mode_reg
+_save_fixed_argument_area
+_prepare_call_address
+_lookup_static_chain
+_load_register_parameters
+_use_reg
+_trunc_int_for_mode
+_num_insns_constant
+_num_insns_constant_wide
+_emit_call_1
+_gen_call_value
+_machopic_indirect_call_target
+_machopic_name_defined_p
+_machopic_stub_list_entry
+_gen_rtx_fmt_0
+_gen_rtvec
+_gen_rtvec_v
+_emit_call_insn
+_make_call_insn_raw
+_get_insns
+_expand_start_target_temps
+_do_pending_stack_adjust
+_sbitmap_alloc
+_sbitmap_zero
+_gen_lowpart_SUBREG
+_subreg_lowpart_offset
+_gen_rtx_SUBREG
+_gen_rtx_fmt_ei
+_convert_modes
+_gen_lowpart
+_gen_lowpart_common
+_simplify_gen_subreg
+_simplify_subreg
+_gen_sibcall_value
+_gen_rtx_fmt_
+_emit_barrier_after
+_add_insn_after
+_expand_end_target_temps
+_expand_end_bindings
+_do_jump
+_can_compare_p
+_do_compare_and_jump
+_copy_to_reg
+_gen_rtx_fmt_uuuu
+_do_compare_rtx_and_jump
+_reverse_condition
+_swap_commutative_operands_p
+_commutative_operand_precedence
+_force_not_mem
+_emit_cmp_and_jump_insns
+_unsigned_condition
+_prepare_cmp_insn
+_emit_cmp_and_jump_insn_1
+_prepare_operand
+_gen_cmpsi
+_gen_bne
+_rs6000_emit_cbranch
+_rs6000_generate_compare
+_validate_condition_mode
+_gen_rtx_fmt_u00
+_gen_rtx_fmt_eee
+_emit_jump_insn
+_make_jump_insn_raw
+_genrtl_if_stmt
+_genrtl_expr_stmt_value
+_expand_expr_stmt_value
+_warn_if_unused_value
+_gen_call
+_free_temp_slots
+_expand_end_cond
+_emit_label
+_gen_sibcall
+_genrtl_return_stmt
+_expand_return
+_expand_value_return
+_expand_null_return_1
+_clear_pending_stack_adjust
+_expand_goto_internal
+_expand_fixup
+_emit_jump
+_gen_jump
+_emit_barrier
+_objc_expand_function_end
+_encode_method_prototype
+_encode_type_qualifiers
+_encode_type
+_encode_pointer
+_forwarding_offset
+_apply_args_register_offset
+_apply_args_size
+_encode_aggregate
+_expand_function_end
+_finish_expr_for_function
+_in_sequence_p
+_emit_line_note_force
+_expand_eh_return
+_clobber_return_register
+_diddle_return_value
+_do_clobber_return_reg
+_emit_insn_after
+_use_return_register
+_do_use_return_reg
+_expand_fixups
+_fixup_gotos
+_rest_of_compilation
+_reorder_blocks
+_reorder_blocks_0
+_reorder_blocks_1
+_blocks_nreverse
+_reorder_fix_fragments
+_pfe_varray_free
+_init_flow
+_open_dump_file
+_convert_from_eh_region_ranges
+_collect_eh_region_array
+_resolve_fixup_regions
+_convert_from_eh_region_ranges_1
+_remove_fixup_regions
+_remove_unreachable_regions
+_get_max_uid
+_remove_unnecessary_notes
+_remove_insn
+_alloc_INSN_LIST
+_gen_rtx_fmt_ue
+_free_INSN_LIST_node
+_init_function_for_compilation
+_purge_hard_subreg_sets
+_optimize_sibling_and_tail_recursive_calls
+_find_exception_handler_labels
+_rebuild_jump_labels
+_init_label_info
+_mark_all_labels
+_mark_jump_label
+_cse_basic_block
+_new_basic_block
+_any_uncondjump_p
+_pc_set
+_cse_process_notes
+_cse_insn
+_canon_reg
+_apply_change_group
+_fold_rtx
+_canon_hash
+_get_cse_reg_info
+_lookup
+_approx_reg_cost
+_for_each_rtx
+_approx_reg_cost_1
+_bitmap_set_bit
+_bitmap_element_allocate
+_bitmap_element_link
+_bitmap_clear
+_preferrable
+_validate_change
+_insert_regs
+_make_new_qty
+_rehash_using_reg
+_insert
+_invalidate_from_clobbers
+_invalidate
+_delete_reg_equiv
+_lookup_for_remove
+_make_regs_eqv
+_check_for_label_ref
+_lookup_as_function
+_safe_hash
+_exp_equiv_p
+_equiv_constant
+_simplify_binary_operation
+_avoid_constant_pool_reference
+_notreg_cost
+_insn_invalid_p
+_asm_noperands
+_cancel_changes
+_mention_regs
+_remove_invalid_refs
+_refers_to_regno_p
+_remove_from_table
+_gen_lowpart_if_possible
+_find_best_addr
+_recog_33
+_mov_to_vrsave_operation
+_load_multiple_operation
+_store_multiple_operation
+_recog_25
+_current_file_function_operand
+_call_operand
+_immediate_operand
+_scratch_operand
+_invalidate_memory
+_invalidate_for_call
+_recog_3
+_invalidate_skipped_block
+_note_stores
+_invalidate_skipped_set
+_cse_main
+_cse_end_of_basic_block
+_next_real_insn
+_prev_nonnote_insn
+_ggc_pop_context
+_end_alias_analysis
+_ggc_del_root
+_max_reg_num
+_find_basic_blocks
+_clear_edges
+_free_edge
+_count_basic_blocks
+_inside_basic_block_p
+_control_flow_insn_p
+_can_throw_internal
+_find_basic_blocks_1
+_create_basic_block_structure
+_compute_bb_for_insn
+_make_edges
+_cached_make_edge
+_computed_jump_p
+_computed_jump_p_1
+_returnjump_p
+_returnjump_p_1
+_make_label_edge
+_next_nonnote_insn
+_make_eh_edge
+_reachable_handlers
+_free_INSN_LIST_list
+_tidy_fallthru_edges
+_tidy_fallthru_edge
+_cleanup_cfg
+_delete_unreachable_blocks
+_find_unreachable_blocks
+_try_optimize_cfg
+_update_forwarder_flag
+_forwarder_block_p
+_active_insn_p
+_hook_void_bool_false
+_try_simplify_condjump
+_any_condjump_p
+_try_forward_edges
+_onlyjump_p
+_free_EXPR_LIST_list
+_free_bb_for_insn
+_delete_trivially_dead_insns
+_count_reg_usage
+_side_effects_p
+_canonicalize_condition
+_set_of
+_set_of_1
+_delete_null_pointer_checks
+_delete_null_pointer_checks_1
+_sbitmap_vector_zero
+_invalidate_nonnull_info
+_single_set_2
+_compute_available
+_sbitmap_vector_ones
+_sbitmap_ones
+_sbitmap_union_of_diff
+_sbitmap_intersection_of_preds
+_sbitmap_copy
+_clear_aux_for_edges
+_clear_aux_for_blocks
+_renumber_insns
+_close_dump_file
+_purge_addressof
+_hash_table_init
+_hash_table_init_n
+_compute_insns_for_mem
+_insns_for_mem_walk
+_hash_lookup
+_insns_for_mem_hash
+_compute_hash_table
+_record_last_reg_set_info
+_mark_call
+_record_last_mem_set_info
+_record_last_set_info
+_hash_scan_insn
+_hash_scan_set
+_find_reg_equal_equiv_note
+_oprs_available_p
+_oprs_unchanged_p
+_insert_set_in_table
+_hash_set
+_gcse_alloc
+_hash_scan_call
+_hash_scan_clobber
+_expr_equiv_p
+_one_cprop_pass
+_alloc_cprop_mem
+_sbitmap_vector_alloc
+_compute_cprop_data
+_compute_local_properties
+_compute_transp
+_cprop
+_reset_opr_set_tables
+_clear_modify_mem_tables
+_free_list
+_cprop_insn
+_note_uses
+_find_used_regs
+_mark_oprs_set
+_oprs_not_set_p
+_bitmap_bit_p
+_find_avail_set
+_lookup_set
+_mark_set
+_mark_clobber
+_free_cprop_mem
+_free_set_hash_table
+_gcse_main
+_free_gcse_mem
+_free_modify_mem_tables
+_alloc_gcse_mem
+_gmalloc
+_one_classic_gcse_pass
+_alloc_expr_hash_table
+_alloc_rd_mem
+_compute_expr_hash_table
+_want_to_gcse_p
+_set_noop_p
+_oprs_anticipatable_p
+_insert_expr_in_table
+_hash_expr
+_hash_expr_1
+_load_killed_in_block_p
+_find_comparison_args
+_comparison_dominates_p
+_simplify_relational_operation
+_simplify_ternary_operation
+_record_jump_equiv
+_reversed_comparison_code_parts
+_record_jump_cond
+_merge_equiv_classes
+_check_function_return_warnings
+_mark_constant_function
+_mark_dfs_back_edges
+_init_alias_analysis
+_record_set
+_find_base_value
+_rtx_varies_p
+_nonlocal_mentioned_p
+_flow_loops_find
+_calculate_dominance_info
+_init_dom_info
+_calc_dfs_tree
+_calc_dfs_tree_nonrec
+_calc_idoms
+_link_roots
+_idoms_to_doms
+_free_dom_info
+_flow_loops_tree_build
+_flow_loops_level_compute
+_estimate_probability
+_predict_edge_def
+_predict_edge
+_predict_insn
+_get_condition
+_predict_insn_def
+_combine_predictions_for_insn
+_dump_prediction
+_estimate_bb_frequencies
+_alloc_aux_for_blocks
+_alloc_aux_for_block
+_alloc_aux_for_edges
+_alloc_aux_for_edge
+_estimate_loops_at_level
+_propagate_freq
+_free_aux_for_blocks
+_free_aux_for_edges
+_flow_loops_free
+_life_analysis
+_allocate_reg_life_data
+_allocate_reg_info
+_allocate_bb_life_data
+_mark_regs_live_at_end
+_mark_reg
+_update_life_info
+_clear_log_links
+_calculate_global_regs_live
+_bitmap_operation
+_bitmap_copy
+_propagate_block
+_init_propagate_block_info
+_propagate_one_insn
+_insn_dead_p
+_mark_set_regs
+_mark_used_regs
+_mark_used_reg
+_volatile_refs_p
+_mark_set_1
+_invalidate_mems_from_set
+_bitmap_clear_bit
+_invalidate_mems_from_autoinc
+_free_propagate_block_info
+_bitmap_equal_p
+_sched_analyze
+_add_dependence_list_and_free
+_add_dependence
+_sched_analyze_insn
+_sched_analyze_1
+_sched_analyze_2
+_read_dependence
+_add_insn_mem_dependence
+_alloc_EXPR_LIST
+_add_dependence_list
+_flush_pending_lists
+_compute_jump_reg_dependencies
+_get_condition
+_compute_block_backward_dependences
+_add_branch_dependences
+_sets_likely_spilled
+_sets_likely_spilled_1
+_free_deps
+_schedule_region
+_get_block_head_tail
+_compute_forward_dependences
+_group_leader
+_set_priorities
+_priority
+_insn_cost
+_result_ready_cost
+_contributes_to_priority
+_rs6000_adjust_cost
+_get_attr_type
+_extract_constrain_insn_cached
+_extract_insn_cached
+_regclass
+_secondary_reload_class
+_scan_one_insn
+_record_operand_costs
+_record_reg_classes
+_find_regno_note
+_copy_cost
+_local_alloc
+_update_equiv_regs
+_reg_preferred_class
+_equiv_init_movable_p
+_equiv_init_varies_p
+_no_equiv
+_block_alloc
+_requires_inout
+_get_hard_reg_initial_reg
+_combine_regs
+_reg_is_born
+_alloc_qty
+_reg_alternate_class
+_wipe_dead_reg
+_mark_life
+_reg_is_set
+_multiple_sets
+_qty_sugg_compare_1
+_find_free_reg
+_post_mark_life
+_qty_compare_1
+_reg_set_to_hard_reg_set
+_qty_sugg_compare
+_qty_compare
+_global_alloc
+_global_conflicts
+_record_conflicts
+_mark_reg_clobber
+_mark_reg_death
+_mark_reg_store
+_set_preference
+_record_one_conflict
+_expand_preferences
+_allocno_compare
+_prune_preferences
+_find_reg
+_build_insn_chain
+_new_insn_chain
+_reg_dies
+_reg_becomes_live
+_reload
+_clear_secondary_mem
+_init_save_areas
+_mark_home_live
+_scan_paradoxical_subregs
+_function_invariant_p
+_init_elim_table
+_max_label_num
+_get_first_label_num
+_alter_reg
+_mark_not_eliminable
+_maybe_fix_stack_asms
+_finish_spills
+_rs6000_stack_info
+_first_reg_to_save
+_first_fp_reg_to_save
+_first_altivec_reg_to_save
+_rs6000_ra_ever_killed
+_push_topmost_sequence
+_pop_topmost_sequence
+_reg_overlap_mentioned_p
+_get_frame_size
+_get_func_frame_size
+_set_initial_elim_offsets
+_set_initial_label_offsets
+_calculate_needs_all_insns
+_set_label_offsets
+_eliminate_regs_in_insn
+_elimination_effects
+_eliminate_regs
+_check_eliminable_occurrences
+_find_reloads
+_update_eliminable_offsets
+_combine_reloads
+_operands_match_p
+_emit_reload_insns
+_emit_insns_before
+_emit_insns_after
+_reload_reg_reaches_end_p
+_reload_as_needed
+_subst_reloads
+_forget_old_reloads_1
+_push_reload
+_reload_inner_reg_of_subreg
+_find_reusable_reload
+_earlyclobber_operand_p
+_choose_reload_regs
+_choose_reload_regs_init
+_compute_use_by_pseudos
+_allocate_reload_reg
+_reload_reg_free_p
+_set_reload_reg
+_true_regnum
+_mark_reload_reg_in_use
+_do_input_reload
+_do_output_reload
+_set_offsets_for_label
+_verify_initial_elim_offsets
+_cleanup_subreg_operands
+_add_auto_inc_notes
+_auto_inc_p
+_replace_pseudos_in_call_usage
+_obstack_free
+_fixup_abnormal_edges
+_unshare_all_rtl_again
+_reset_used_flags
+_reset_used_decls
+_unshare_all_rtl
+_copy_rtx_if_shared
+_unshare_all_decls
+_unshare_all_rtl_1
+_reload_cse_regs
+_reload_cse_regs_1
+_cselib_init
+_clear_table
+_htab_empty
+_prologue_epilogue_contains
+_contains
+_cselib_process_insn
+_reload_cse_simplify
+_reload_cse_simplify_set
+_reload_cse_noop_set_p
+_rtx_equal_for_cselib_p
+_cselib_lookup
+_reload_cse_simplify_operands
+_cselib_record_sets
+_new_cselib_val
+_new_elt_loc_list
+_new_elt_list
+_cselib_invalidate_rtx
+_cselib_invalidate_regno
+_push_operand
+_cselib_record_set
+_hash_rtx
+_wrap_constant
+_cselib_subst_to_values
+_shallow_copy_rtx
+_cselib_lookup_mem
+_add_mem_for_addr
+_replace_equiv_address_nv
+_unchain_one_elt_list
+_unchain_one_elt_loc_list
+_entry_and_rtx_equal_p
+_cselib_invalidate_mem
+_cselib_invalidate_mem_1
+_cselib_mem_conflict_p
+_cselib_finish
+_htab_delete
+_reload_combine
+_reload_combine_note_use
+_reload_combine_note_store
+_get_value_hash
+_if_convert
+_find_if_header
+_find_if_block
+_process_if_block
+_find_cond_trap
+_block_has_only_trap
+_find_if_case_1
+_find_if_case_2
+_split_all_insns
+_split_insn
+_try_split
+_split_insns
+_const_int_operand
+_non_add_cint_operand
+_split_11
+_split_7
+_equality_operator
+_vector_comparison_operator
+_schedule_insns
+_scope_to_insns_initialize
+_delete_insn
+_sched_init
+_rs6000_issue_rate
+_init_dependency_caches
+_rtx_equal_for_memref_p
+_memrefs_conflict_p
+_canon_rtx
+_addr_side_effect_eval
+_write_dependence_p
+_output_dependence
+_mems_in_disjoint_alias_sets_p
+_alias_sets_conflict_p
+_nonoverlapping_memrefs_p
+_get_addr
+_base_alias_check
+_find_base_term
+_true_dependence
+_lsu_unit_blockage
+_actual_hazard
+_schedule_block
+_schedule_more_p
+_iu2_unit_blockage
+_can_schedule_ready_p
+_move_insn
+_move_insn1
+_reemit_notes
+_schedule_insn
+_new_ready
+_rs6000_adjust_priority
+_queue_to_ready
+_rank_for_schedule
+_function_units_used
+_rgn_rank
+_find_insn_list
+_no_real_insns_p
+_save_line_notes
+_rm_line_notes
+_rm_other_notes
+_clear_units
+_init_ready_list
+_ready_add
+_verify_local_live_at_start
+_reposition_prologue_and_epilogue_notes
+_reorder_insns
+_reorder_insns_nobb
+_set_block_for_insn
+_rm_redundant_line_notes
+_scope_to_insns_finalize
+_set_block_levels
+_change_scope
+_emit_note_before
+_add_insn_before
+_sched_finish
+_free_dependency_caches
+_add_noreturn_fake_exit_edges
+_try_crossjump_bb
+_try_crossjump_to_edge
+_outgoing_edges_match
+_remove_fake_edges
+_remove_fake_successors
+_compute_alignments
+_purge_line_number_notes
+_cleanup_barriers
+_split_all_insns_noflow
+_convert_to_eh_region_ranges
+_shorten_branches
+_insn_default_length
+_insn_variable_length_p
+_dwarf2out_begin_prologue
+_final_start_function
+_number_blocks
+_get_block_vector
+_all_blocks
+_rs6000_output_function_prologue
+_final
+_final_scan_insn
+_debug_nothing_int
+_peephole
+_scc_comparison_operator
+_constrain_operands_cached
+_get_insn_template
+_output_asm_insn
+_output_operand
+_print_operand
+_notice_source_line
+_dbxout_source_line
+_dbxout_source_file
+_dbxout_begin_block
+_simplify_subtraction
+_decode_rtx_const
+_walk_alter_subreg
+_output_address
+_print_operand_address
+_no_asm_to_stream
+_profile_after_prologue
+_output_406
+_machopic_validate_stub_or_non_lazy_ptr
+_output_405
+_output_541
+_output_cbranch
+_get_attr_length
+_output_asm_label
+_dbxout_end_block
+_final_end_function
+_rs6000_output_function_epilogue
+_output_compiler_stub
+_debug_nothing_void
+_assemble_end_function
+_output_after_function_constants
+_output_function_exception_table
+_free_basic_block_vars
+_regset_release_memory
+_bitmap_release_memory
+_dbxout_function_decl
+_dbxout_begin_function
+_dbxout_prepare_symbol
+_dbxout_type
+_dbxout_type_index
+_dbxout_queue_symbol
+_dbxout_type_name
+_dbxout_finish_symbol
+_dbxout_flush_symbol_queue
+_print_wide_int
+_dbxout_type_fields
+_print_int_cst_octal
+_print_octal
+_finish_method_def
+_optimize_inline_calls
+_lhd_tree_inlining_add_pending_fn_decls
+_expand_calls_inline
+_htab_find
+_hash_pointer
+_expand_call_inline
+_lhd_tree_inlining_tree_chain_matters_p
+_eq_pointer
+_init_recog_no_volatile
+_gen_label_rtx
+_gen_rtx_fmt_iuu00iss
+_genrtl_for_stmt
+_emit_nop
+_expand_start_loop_continue_elsewhere
+_expand_start_loop
+_genrtl_do_pushlevel
+_expand_cond
+_expand_exit_loop_top_cond
+_expand_exit_loop_if_false
+_gen_blt
+_expand_start_cond
+_gen_beq
+_expand_binop
+_reg_or_arith_cint_operand
+_gen_addsi3
+_add_operand
+_expand_increment
+_expand_end_loop
+_emit_label_before
+_emit_jump_insn_before
+_emit_barrier_before
+_maybe_remove_eh_handler
+_flow_delete_block_noexpunge
+_delete_insn_chain
+_can_delete_label_p
+_in_expr_list_p
+_remove_node_from_expr_list
+_can_delete_note_p
+_remove_edge
+_flow_delete_block
+_expunge_block
+_expunge_block_nocompact
+_redirect_edge_and_branch
+_try_redirect_by_replacing_jump
+_can_fallthru
+_next_active_insn
+_simplejump_p
+_never_reached_warning
+_ehl_hash
+_block_label
+_redirect_jump
+_redirect_exp
+_redirect_exp_1
+_num_validated_changes
+_branch_comparison_operator
+_redirect_edge_succ_nodup
+_redirect_edge_succ
+_merge_blocks
+_tail_recursion_label_p
+_sequence_uses_addressof
+_uses_addressof
+_replace_call_placeholder
+_call_ends_block_p
+_skip_copy_to_return_value
+_identify_call_return_value
+_skip_stack_adjustment
+_skip_pic_restore
+_reg_set_between_p
+_purge_reg_equiv_notes
+_remove_note
+_purge_mem_unchanging_flag
+_purge_addressof_1
+_hash_table_free
+_alloc_reg_set_mem
+_compute_sets
+_record_set_info
+_record_one_set
+_alloc_set_hash_table
+_compute_set_hash_table
+_compute_kill_rd
+_compute_rd
+_sbitmap_union_of_preds
+_alloc_avail_expr_mem
+_compute_ae_gen
+_compute_ae_kill
+_expr_killed_p
+_classic_gcse
+_lookup_expr
+_free_avail_expr_mem
+_free_rd_mem
+_free_expr_hash_table
+_one_code_hoisting_pass
+_cse_around_loop
+_cse_set_around_loop
+_addr_affects_sp_p
+_find_and_verify_loops
+_compute_luids
+_for_each_eh_label
+_mark_loop_jump
+_loop_optimize
+_reg_scan
+_reg_scan_mark_refs
+_find_single_use_in_loop
+_loop_regs_scan
+_count_one_set
+_reg_used_between_p
+_find_reg_fusage
+_find_regno_fusage
+_scan_loop
+_count_insns_in_loop
+_next_insn_in_loop
+_reg_in_basic_block_p
+_loop_invariant_p
+_consec_sets_invariant_p
+_loop_movables_add
+_skip_consec_insns
+_modified_between_p
+_reg_set_p
+_no_labels_between_p
+_may_trap_p
+_rtx_addr_can_trap_p
+_loop_reg_used_before_p
+_ignore_some_movables
+_force_movables
+_combine_movables
+_load_mems
+_reg_scan_update
+_strength_reduce
+_loop_bivs_find
+_for_each_insn_in_loop
+_check_insn_for_bivs
+_basic_induction_var
+_record_biv
+_loop_bivs_init_find
+_record_initial
+_get_condition_for_loop
+_valid_initial_value_p
+_loop_bivs_check
+_loop_givs_find
+_check_insn_for_givs
+_find_mem_givs
+_update_giv_derive
+_general_induction_var
+_simplify_giv_expr
+_loop_iterations
+_biv_total_increment
+_fold_rtx_mult_add
+_loop_find_equiv_value
+_find_common_reg_term
+_loop_givs_check
+_check_dbra_loop
+_count_nonfixed_reads
+_loop_biv_eliminable_p
+_maybe_eliminate_biv
+_maybe_eliminate_biv_1
+_check_ext_dependent_givs
+_combine_givs
+_loop_givs_dead_check
+_loop_givs_reduce
+_loop_givs_rescan
+_replace_regs
+_loop_ivs_free
+_loop_movables_free
+_ggc_push_context
+_regclass_init
+_thread_jump
+_reversed_comparison_code
+_compress
+_flow_depth_first_order_compute
+_flow_loop_nodes_find
+_sbitmap_first_set_bit
+_sbitmap_last_set_bit
+_flow_loop_scan
+_flow_loop_level_compute
+_flow_loop_exit_edges_find
+_find_auto_inc
+_delete_dead_jumptables
+_uninitialized_vars_warning
+_regno_uninitialized
+_initialize_uninitialized_subregs
+_combine_instructions
+_init_reg_last_arrays
+_setup_incoming_promotions
+_promoted_input_arg
+_record_value_for_reg
+_update_table_tick
+_get_last_value_validate
+_nonzero_bits
+_num_sign_bit_copies
+_set_nonzero_bits_and_sign_copies
+_expand_field_assignment
+_get_last_value
+_record_dead_and_set_regs
+_record_dead_and_set_regs_1
+_replace_rtx
+_recog_15
+_recog_21
+_recog_16
+_recog_17
+_recog_19
+_recog_31
+_recog_28
+_recog_26
+_stmw_operation
+_mtcrf_operation
+_lmw_operation
+_vrsave_operation
+_recog_for_combine
+_check_asm_operands
+_do_SUBST_INT
+_try_combine
+_undo_all
+_cant_combine_insn_p
+_can_combine_p
+_combinable_i3pat
+_do_SUBST
+_reg_referenced_p
+_dead_or_set_p
+_dead_or_set_regno_p
+_subst
+_combine_simplify_rtx
+_simplify_set
+_find_single_use
+_find_single_use_1
+_simplify_comparison
+_swap_condition
+_make_compound_operation
+_make_field_assignment
+_mark_used_regs_combine
+_use_crosses_set_p
+_volatile_insn_p
+_force_to_mode
+_recog_22
+_recog_23
+_any_operand
+_check_promoted_subreg
+_if_then_else_cond
+_simplify_if_then_else
+_combine_reversed_comparison_code
+_recog_30
+_contains_muldiv
+_apply_distributive_law
+_have_insn_for
+_move_deaths
+_restore_line_notes
+_free_pending_lists
+_finish_deps_global
+_init_deps_global
+_init_deps
+_unlink_line_notes
+_unlink_other_notes
+_leaf_function_p
+_allocate_initial_values
+_record_address_regs
+_assign_stack_local
+_assign_stack_local_1
+_find_reloads_address
+_regno_clobbered_p
+_copy_reloads
+_condjump_p
+_thread_prologue_and_epilogue_insns
+_gen_prologue
+_rs6000_emit_prologue
+_try_leaf_pic_optimization
+_name_encodes_objc_method_p
+_rs6000_frame_related
+_simplify_rtx
+_rs6000_maybe_dead
+_rs6000_emit_allocate_stack
+_gen_movsi_update
+_record_insns
+_insert_insn_on_edge
+_direct_return
+_gen_epilogue
+_rs6000_emit_epilogue
+_commit_edge_insertions
+_commit_one_edge_insertion
+_find_sub_basic_blocks
+_find_bb_boundaries
+_purge_dead_edges
+_compute_outgoing_frequencies
+___divdi3
+___udivmoddi4
+_gen_sibcall_epilogue
+_emit_insn_before
+_insns_match_p
+_copyprop_hardreg_forward
+_init_value_data
+_copyprop_hardreg_forward_1
+_preprocess_constraints
+_kill_clobbered_value
+_kill_autoinc_value
+_replace_oldest_value_reg
+_find_oldest_value_reg
+_kill_set_value
+_kill_value
+_kill_value_regno
+_set_value_regno
+_copy_value
+_replace_oldest_value_mem
+_replace_oldest_value_addr
+_recog_20
+_delete_noop_moves
+_noop_move_p
+_find_insn_reg_weight
+_init_regions
+_find_single_block_region
+_count_or_remove_death_notes
+_free_EXPR_LIST_node
+_assemble_start_function
+_output_408
+_purge_all_dead_edges
+_notice_stack_pointer_modification
+_notice_stack_pointer_modification_1
+_distribute_notes
+_reg_bitfield_target_p
+_distribute_links
+_undo_commit
+_remove_death
+_emit_note_after
+_reload_cse_delete_noop_set
+_references_value_p
+_reload_cse_move2add
+_move2add_note_store
+_sext_for_mode
+_start_method_def
+_synth_self_and_ucmd_args
+_handle_unused_attribute
+_expr_last
+_continue_method_def
+_really_start_method
+_lookup_method_in_protocol_list
+_find_label_refs
+_alloc_block
+_merge_blocks_nomove
+_skip_use_of_return_value
+_skip_unreturned_value
+_skip_jump_insn
+_doing_eh
+_emit_initial_value_sets
+_instantiate_virtual_regs
+_instantiate_decls
+_instantiate_decl
+_instantiate_decls_1
+_instantiate_virtual_regs_1
+_instantiate_new_reg
+_output_407
+_dbxout_parms
+_dbxout_block
+_dbxout_syms
+_dbxout_reg_parms
+_dbxout_symbol_location
+_dbxout_function_end
+_init_insn_lengths
+_clear_const_double_mem
+_expected_value_to_br_prob
+_prev_real_insn
+_insn_live_p
+_set_live_p
+_regmove_optimize
+_discover_flags_reg
+_gen_add3_insn
+_mark_flags_life_zones
+_find_matches
+_validate_replace_rtx
+_validate_replace_rtx_1
+_mirror_conflicts
+_nothrow_function_p
+_output_constant_pool
+_mark_constant_pool
+_htab_elements
+_function_section
+_unsave_expr
+_expand_start_else
+_machopic_non_lazy_ptr_list_entry
+_start_cleanup_deferral
+_end_cleanup_deferral
+_expand_loop_continue_here
+_genrtl_expr_stmt
+_delete_related_insns
+_canon_list_insert
+_mems_conflict_for_gcse_p
+_try_replace_reg
+_validate_replace_src
+_validate_replace_src_1
+_simplify_replace_rtx
+_try_pre_increment_1
+_try_pre_increment
+_find_use_as_address
+_split_2
+_cc_reg_not_cr0_operand
+_split_3
+_split_4
+_split_6
+_non_short_cint_operand
+_add_to_mem_set_list
+_comp_method_with_proto
+_force_operand
+_unsave_expr_now
+_unsave_expr_now_r
+_unsave_expr_1
+_duplicate_loop_exit_test
+_copy_loop_headers
+_invert_jump
+_invert_exp
+_invert_exp_1
+_invert_br_probabilities
+_update_br_prob_note
+_label_is_jump_target_p
+_get_bitmap_width
+_indirect_jump_in_function_p
+_prescan_loop
+_note_addr_stored
+_set_sched_group_p
+_remove_dependence
diff --git a/order-files/cc1objplus.order b/order-files/cc1objplus.order
new file mode 100644
index 00000000000..380a0e211c1
--- /dev/null
+++ b/order-files/cc1objplus.order
@@ -0,0 +1,952 @@
+start
+__start
+__dyld_init_check
+dyld_stub_binding_helper
+___darwin_gcc3_preregister_frame_info
+__call_mod_init_funcs
+__dyld_func_lookup
+_main
+_toplev_main
+_hex_init
+_general_init
+_xmalloc_set_program_name
+_diagnostic_initialize
+__obstack_begin
+_xmalloc
+_parse_options_and_default_flags
+_init_reg_sets
+_add_params
+_xrealloc
+_pfe_init
+_read_integral_parameter
+_override_O_option
+_extract_override_options
+_objc_init_options
+_cxx_init_options
+_c_common_init_options
+_cpp_create_reader
+_init_library
+_init_trigraph_map
+_xcalloc
+_set_lang
+_deps_init
+_init_line_maps
+__cpp_init_tokenrun
+__cpp_get_buff
+_new_buff
+_pfe_s_malloc
+_pfe_malloc
+_gcc_obstack_init
+_pfe_obstack_chuck_alloc
+__cpp_init_includes
+_splay_tree_new
+_splay_tree_new_with_allocator
+_splay_tree_xmalloc_allocate
+_set_index_lang
+_set_target_switch
+_optimization_options
+_override_option
+_objc_decode_option
+_cxx_decode_option
+_cpp_handle_option
+_parse_option
+_xstrdup
+_append_include_chain
+__cpp_simplify_pathname
+_independent_decode_option
+_new_pending_directive
+_hmap_load_header_map
+_decode_W_option
+_set_Wunused
+_compare_options
+_dump_switch_p
+_decode_f_option
+_output_set_maximum_length
+_set_real_maximum_length
+_output_is_line_wrapping
+_add_env_options
+_objc_post_options
+_c_common_post_options
+_cpp_post_options
+_init_dependency_output
+_do_compile
+_process_options
+_rs6000_override_options
+_rs6000_parse_abi_options
+_rs6000_add_gc_roots
+_ggc_add_rtx_root
+_ggc_add_root
+_htab_create
+_higher_prime_number
+_machopic_add_gc_roots
+_ggc_add_tree_root
+_new_alias_set
+_floor_log2_wide
+_init_timevar
+_timevar_start
+_lang_independent_init
+_init_ggc
+_exact_log2_wide
+_pfe_s_calloc
+_pfe_calloc
+_init_stringpool
+_ht_create
+_init_obstacks
+_ggc_add_deletable_htab
+_init_emit_once
+_mode_for_size
+_gen_rtx
+_rtx_alloc
+_ggc_alloc
+_alloc_page
+_pfe_free
+_set_page_table_entry
+_gen_raw_REG
+_gen_rtx_fmt_i0
+_gen_rtx_fmt_w
+_ereal_atof
+_asctoe53
+_asctoeg
+_ecleaz
+_enormlz
+_eshup6
+_toe53
+_eiisnan
+_eshift
+_eshup1
+_e53toe
+_eshdn1
+_ecleazs
+_emovo
+_emovz
+_eaddm
+_eshup8
+_emdnorm
+_init_reg_sets_1
+_reg_class_subset_p
+_init_regs
+_init_reg_modes
+_choose_hard_reg_mode
+_recog_13
+_nonimmediate_operand
+_general_operand
+_input_operand
+_memory_operand
+_register_operand
+_toc_relative_expr_p
+_constant_pool_expr_1
+_init_expmed
+_gen_rtx_CONST_INT
+_recog
+_gpc_reg_operand
+_recog_4
+_reg_or_cint_operand
+_rtx_cost
+_recog_5
+_reg_or_short_operand
+_short_cint_operand
+_htab_find_slot_with_hash
+_const_int_htab_eq
+_init_expr_once
+_gen_rtx_REG
+_recog_10
+_recog_9
+_altivec_register_operand
+_rs6000_legitimate_address
+_zero_constant
+_cc_reg_operand
+_constrain_operands
+_reg_fits_class_p
+_init_caller_save
+_extract_insn
+_insn_extract
+_gen_rtx_MEM
+_gen_rtx_fmt_e0
+_gen_rtx_fmt_ee
+_emit_insn
+_make_insn_raw
+_add_insn
+_recog_memoized_1
+_reg_or_mem_operand
+_recog_7
+_recog_6
+_boolean_or_operator
+_boolean_operator
+_recog_1
+_builtin_function_2
+_builtin_function
+_builtin_function_1
+_get_identifier
+_ht_lookup
+_calc_hash
+_alloc_node
+_make_node
+_tree_size
+_build_library_fn_1
+_build_lang_decl
+_build_decl
+_pfe_savestring
+_retrofit_lang_decl
+_ggc_alloc_cleared
+_pushdecl
+_lookup_name_current_level
+_namespace_binding
+_check_template_shadow
+_push_overloaded_decl
+_namespace_bindings_p
+_innermost_nonclass_level
+_set_namespace_binding
+_decls_match
+_warn_extern_redeclared_static
+_check_default_args
+_add_decl_to_level
+_make_decl_rtl
+_decode_reg_name
+_gen_rtx_fmt_s
+_darwin_encode_section_info
+_ggc_alloc_string
+_update_stubs
+_decl_attributes
+_init_attributes
+_default_insert_attributes
+_insert_default_attributes
+_c_common_insert_default_attributes
+_c_init_attributes
+_build_int_2_wide
+_tree_cons
+_builtin_function_disabled_p
+_mangle_decl
+_mangle_decl_string
+_c_common_nodes_and_builtins
+_init_standard_includes
+_update_path
+_cpp_read_main_file
+_merge_include_chains
+_remove_dup_dirs
+_remove_dup_dir
+__cpp_read_file
+_open_file
+_find_or_create_entry
+_splay_tree_lookup
+_splay_tree_splay
+_splay_tree_insert
+_splay_tree_foreach
+_splay_tree_foreach_helper
+_inode_finder
+_stack_include_file
+_read_include_file
+_cpp_push_buffer
+__cpp_do_file_change
+_add_line_map
+_cb_file_change
+_update_header_times
+_extract_interface_info
+_get_fileinfo
+_splay_tree_splay_helper
+_c_common_init
+_init_pragma
+_cpp_register_pragma
+_cpp_lookup
+_lookup_pragma_entry
+_insert_pragma_entry
+__cpp_aligned_alloc
+_cxx_init
+_init_cp_pragma
+_init_repo
+_objc_init
+_add_objc_tree_codes
+_set_dump_tree_p
+_init_objc
+_hash_init
+_synth_module_prologue
+_push_lang_context
+_objcp_xref_tag
+_xref_tag
+_tree_low_cst
+_host_integerp
+_identifier_type_value
+_lookup_tag
+_binding_for_name
+_lookup_name
+_lookup_name_real
+_lookup_flags
+_unqualified_namespace_lookup
+_current_decl_namespace
+_find_binding
+_lookup_using_namespace
+_select_decl
+_make_aggr_type
+_cp_make_lang_type
+_default_set_default_type_attributes
+_build_pointer_type
+_layout_type
+_size_int_wide
+_size_int_type_wide
+_force_fit_type
+_htab_find_slot
+_size_htab_hash
+_size_htab_eq
+_finalize_type_size
+_get_mode_alignment
+_round_type_align
+_round_up
+_size_binop
+_int_const_binop
+_integer_onep
+_make_binfo
+_make_tree_vec
+_pushtag
+_current_scope
+_create_implicit_typedef
+_set_identifier_type_value_with_scope
+_maybe_process_template_type_declaration
+_maybe_check_template_type
+_pushdecl_with_scope
+_objc_declare_class
+_is_class_name
+_lookup_interface
+_objcp_lookup_name
+_follow_tag_typedef
+_original_type
+_build_function_type
+_type_hash_list
+_type_hash_canon
+_type_hash_lookup
+_htab_find_with_hash
+_type_hash_add
+_objcp_builtin_function
+_type_hash_eq
+_attribute_list_equal
+_attribute_list_contained
+_type_list_equal
+_generate_forward_declaration_to_string_table
+_build_nt
+_define_decl
+_objcp_start_decl
+_start_decl
+_chainon
+_grokdeclarator
+_toplevel_bindings_p
+_cp_type_quals
+_strip_array_types
+_cp_build_qualified_type_real
+_create_array_type_for_decl
+_build_cplus_array_type
+_build_cplus_array_type_1
+_uses_template_parms
+_is_id
+_for_each_template_parm
+_walk_tree
+_for_each_template_parm_r
+_cp_walk_subtrees
+_build_array_type
+_grokvardecl
+_layout_decl
+_set_decl_namespace
+_is_namespace_ancestor
+_no_linkage_check
+_walk_tree_without_duplicates
+_htab_find
+_hash_pointer
+_no_linkage_helper
+_htab_delete
+_bad_specifiers
+_c_apply_type_quals_to_decl
+_cplus_decl_attributes
+_maybe_apply_pragma_weak
+_maybe_push_decl
+_maybe_register_incomplete_var
+_start_decl_1
+_maybe_push_cleanup_level
+_objcp_finish_decl
+_cp_finish_decl
+_maybe_apply_renaming_pragma
+_cp_has_mutable_p
+_target_type
+_check_initializer
+_maybe_deduce_size_from_array_init
+_complete_array_type
+_current_stmt_tree
+_layout_var_decl
+_maybe_commonize_var
+_make_rtl_for_nonlocal_decl
+_rest_of_decl_compilation
+_timevar_push
+_assemble_variable
+_timevar_pop
+_abstract_virtuals_error
+_pop_lang_context
+_objc_act_parse_init
+_lang_dependent_init
+_init_asm_output
+_strip_off_ending
+_init_eh
+_init_optabs
+_c_lex
+_read_token
+_read_process_identifier
+_altivec_treat_as_keyword
+_yylex
+_yyparse_1
+_do_pending_lang_change
+_cpp_get_token
+__cpp_lex_token
+__cpp_lex_direct
+_skip_whitespace
+_parse_identifier
+_enter_macro_context
+_push_token_context
+_next_context
+_padding_token
+__cpp_temp_token
+_hash_tree_cons
+_list_hash_pieces
+__cpp_pop_context
+_scan_tokens
+_frob_id
+_parse_decl0
+_frob_specs
+_save_type_access_control
+_split_specs_attrs
+_parse_decl
+_build_type_copy
+_copy_node
+_parse_end_decl
+_decl_type_access_control
+_deferred_type_access_control
+_note_list_got_semicolon
+_clear_anon_tags
+_do_pending_inlines
+_ggc_collect
+_handle_newline
+_get_effective_char
+__cpp_handle_directive
+_start_directive
+_directive_diagnostics
+_do_endif
+_check_eol
+_skip_block_comment
+_end_directive
+_skip_rest_of_line
+_do_undef
+_lex_macro_node
+_adjust_column
+_do_if
+__cpp_parse_expr
+_lex
+_parse_defined
+_push_conditional
+_do_ifndef
+__obstack_newchunk
+_do_define
+__cpp_create_definition
+_alloc_expansion_token
+_pfe_is_cmd_ln_processing
+_cb_line_change
+_list_hash_eq
+_build_tree_list
+_do_ifdef
+_find_include_file
+__cpp_execute_include
+_push_srcloc
+_debug_nothing_int_charstar
+__cpp_never_reread
+_do_import
+_do_include_common
+_parse_include
+_parse_string
+_unescaped_terminator_p
+_hmap_lookup_path
+_maybe_note_name_used_in_class
+_note_got_semicolon
+_parse_params
+_save_parameter
+_lex_expansion_token
+_parse_number
+_parse_number
+___udivdi3
+___udivmoddi4
+_do_else
+_identifier_type
+_do_include
+_search_from
+_lbasename
+__cpp_pop_buffer
+__cpp_pop_file_buffer
+_purge_cache
+_pop_srcloc
+_debug_nothing_int
+_do_elif
+_comptypes
+_compparms
+_add_method
+_build_overload
+_ovl_cons
+_clone_function_decl
+_clone_constructors_and_destructors
+_check_bases_and_members
+_finish_struct_methods
+_maybe_warn_about_overly_private_class
+_method_name_cmp
+_type_requires_array_cookie
+_lookup_fnfields
+_lookup_member
+_complete_type
+_bfs_walk
+_varray_init
+_lookup_field_r
+_lookup_fnfields_1
+_lookup_field_1
+_finish_struct_1
+_layout_class_type
+_start_record_layout
+_determine_primary_base
+_create_vtable_ptr
+_build_base_fields
+_layout_nonempty_base_or_field
+_place_field
+_integer_zerop
+_default_ms_bitfield_layout_p
+_normalize_rli
+_normalize_offset
+_compare_tree_int
+_tree_int_cst_sgn
+_byte_position
+_byte_from_pos
+_convert
+_ocp_convert
+_decl_constant_value
+_convert_to_integer
+_build1
+_first_rtl_op
+_fold
+_fold_convert
+_layout_conflict_p
+_splay_tree_max
+_add_double
+_end_of_class
+_rli_size_unit_so_far
+_finish_record_layout
+_finalize_record_size
+_mul_double
+_encode
+_decode
+_rli_size_so_far
+_bit_from_pos
+_compute_record_mode
+_bit_position
+_int_bit_position
+_simple_cst_equal
+_mode_for_size_tree
+_remove_zero_width_bit_fields
+_layout_virtual_bases
+_warn_about_ambiguous_direct_bases
+_splay_tree_delete
+_splay_tree_delete_helper
+_splay_tree_xmalloc_deallocate
+_nreverse
+_modify_all_vtables
+_dfs_walk
+_dfs_walk_real
+_dfs_modify_vtables
+_dfs_unmark
+_finish_struct_bits
+_aggregate_value_p
+_count_fields
+_add_fields_to_vec
+_field_decl_cmp
+_finish_vtbls
+_accumulate_vtbl_inits
+_build_vtt
+_build_vtt_inits
+_complete_vars
+_maybe_suppress_debug_info
+_dump_class_hierarchy
+_dump_begin
+_decl_function_context
+_rest_of_type_compilation
+_finish_struct
+_popclass
+_poplevel_class
+_pop_binding
+_pop_binding_level
+_find_class_binding_level
+_pop_class_decls
+_pop_search_level
+_pop_stack_level
+_finish_class_definition
+_check_for_missing_semicolon
+_do_pending_defargs
+_done_pending_defargs
+_begin_inline_definitions
+_finish_inline_definitions
+_clear_inline_text_obstack
+_set_identifier_type_value
+_build_self_reference
+_finish_member_declaration
+_pushdecl_class_level
+_push_class_level_binding
+_push_class_binding
+_note_name_declared_in_class
+_push_binding
+_context_for_name_lookup
+_is_properly_derived_from
+_begin_class_definition
+_check_class_key
+_decl_namespace
+_parse_field0
+_parse_field
+_grokfield
+_constructor_name
+_constructor_name_full
+_objc_check_decl
+_template_class_depth
+_template_class_depth_real
+_splay_tree_compare_pointers
+_reset_type_access_control
+_unreverse_member_declarations
+_fixup_inline_methods
+_check_bases
+_check_field_decls
+_delete_duplicate_fields
+_delete_duplicate_fields_1
+_pod_type_p
+_check_field_decl
+_finish_struct_anon
+_check_methods
+_add_implicitly_declared_members
+_implicitly_declare_fn
+_synthesize_exception_spec
+_make_call_declarator
+_parmlist_is_exprlist
+_check_special_function_return_type
+_member_function_or_else
+_grokparms
+_build_cplus_method_type
+_grokfndecl
+_build_exception_variant
+_comp_except_specs
+_eq_pointer
+_get_containing_scope
+_grokclassfn
+_build_qualified_type
+_get_qualified_type
+_set_type_quals
+_build_artificial_parm
+_maybe_retrofit_in_chrg
+_statement_code_p
+_cp_statement_code_p
+_cp_is_overload_p
+_check_explicit_specialization
+_current_tmpl_spec_kind
+_grok_ctor_properties
+_copy_fn_p
+_skip_artificial_parms_for
+_grok_special_member_properties
+_sufficient_parms_p
+_defer_fn
+_build_reference_type
+_hash_tree_chain
+_type_promotes_to
+_c_promoting_integer_type_p
+_grok_op_properties
+_ambi_op_p
+_unary_op_p
+_build_clone
+_copy_decl
+_copy_lang_decl
+_copy_list
+_parse_bitfield0
+_parse_bitfield
+_grokbitfield
+_constant_expression_warning
+_lex_number
+_int_fits_type_p
+_check_bitfield_decl
+_do_aggr
+_yyungetc
+_handle_class_head
+_maybe_process_partial_specialization
+_pushclass
+_invalidate_class_lookup_cache
+_pushlevel_class
+_push_binding_level
+_push_class_decls
+_push_search_level
+_push_stack_level
+_dfs_push_type_decls
+_dfs_push_decls
+_storetags
+_reset_specialization
+_make_pointer_declarator
+_get_type_decl
+_finish_decl_parsing
+_check_for_new_type
+_finish_parmlist
+_varray_grow
+_pfe_s_realloc
+_pfe_realloc
+_do_warning
+__cpp_extend_buff
+_nothrow_libfn_p
+_libc_name_p
+_lex_string
+_build_string
+_lookup_tag_reverse
+_skip_escaped_newlines
+_begin_function_definition
+_start_function
+_lookup_attribute
+_check_function_type
+_require_complete_types_for_parms
+_complete_type_or_else
+_init_function_start
+_prepare_function_start
+_init_stmt_for_function
+_init_eh_for_function
+_init_emit
+_clear_emit_caches
+_init_virtual_regs
+_init_expr
+_init_varasm_status
+_init_temp_slots
+_init_pending_stack_adjust
+_push_cp_function_context
+_rs6000_init_machine_status
+_objc_printable_name
+_objc_demangle
+_emit_line_note
+_set_file_and_line_for_stmt
+_emit_note
+_hard_function_value
+_begin_stmt_tree
+_announce_function
+_pushlevel
+_start_fname_decls
+_store_parm_decls
+_storedecls
+_push_local_binding
+_getdecls
+_gettags
+_begin_function_body
+_keep_next_level
+_begin_compound_stmt
+_build_stmt
+_add_stmt
+_stmts_are_full_exprs_p
+_do_pushlevel
+_make_binding_level
+_add_scope_stmt
+_current_scope_stmt_stack
+_at_function_scope_p
+_compute_array_index_type
+_cp_convert
+_build_binary_op
+_really_overloaded_fn
+_default_conversion
+_decay_conversion
+_type_unknown_p
+_is_overloaded_fn
+_common_type
+_type_after_usual_arithmetic_conversions
+_merge_type_attributes
+_merge_attributes
+_build_type_attribute_variant
+_build
+_operand_equal_p
+_tree_int_cst_equal
+_const_binop
+_neg_double
+_build_index_type
+_non_lvalue
+_place_union_field
+_qualify_lookup
+_finish_id_expr
+_do_identifier
+_objcp_lookup_identifier
+_lookup_objc_ivar
+_hack_identifier
+_mark_used
+_assemble_external
+_convert_from_reference
+_build_x_unary_op
+_build_new_op
+_build_unary_op
+_lvalue_type
+_unary_complex_lvalue
+_lvalue_or_else
+_lvalue_p
+_lvalue_p_1
+_mark_addressable
+_staticp
+_reparse_absdcl_as_casts
+_altivec_is_vector_constant_element
+_groktypename
+_build_c_cast
+_convert_force
+_convert_to_pointer_force
+_cp_convert_to_pointer
+_build_x_modify_expr
+_build_modify_expr
+_require_complete_type
+_convert_for_assignment
+_dubious_conversion_warnings
+_overflow_warning
+_can_convert_arg_bad
+_implicit_conversion
+_standard_conversion
+_strip_top_quals
+_perform_implicit_conversion
+_convert_like_real
+_finish_expr_stmt
+_convert_to_void
+_finish_stmt
+_dependent_base_p
+_currently_open_class
+_type_access_control
+_build_x_component_ref
+_build_component_ref
+_lookup_field
+_enforce_access
+_accessible_p
+_friend_accessible_p
+_access_in_type
+_dfs_access_in_type
+_assert_canonical_unmarked
+_dfs_assert_unmarked_p
+_dfs_accessible_p
+_grok_array_decl
+_build_expr_type_conversion
+_build_array_ref
+_build_x_arrow
+_build_indirect_ref
+_canonical_type_variant
+_build_conv
+_finish_call_expr
+_is_global
+_lookup_arg_dependent
+_arg_assoc_args
+_arg_assoc
+_arg_assoc_type
+_build_x_function_call
+_build_function_call
+_build_function_call_real
+_decl_target_overloaded_intrinsic_p
+_inline_conversion
+_convert_arguments
+_convert_for_initialization
+_build_call
+_build_addr_func
+_is_empty_class
+_finish_return_stmt
+_check_return_expr
+_maybe_warn_about_returning_address_of_local
+_finish_compound_stmt
+_finish_function_body
+_do_poplevel
+_kept_level_p
+_poplevel
+_warn_about_unused_variables
+_finish_function
+_finish_fname_decls
+_finish_stmt_tree
+_pop_labels
+_save_function_data
+_calls_setjmp_p
+_calls_setjmp_r
+_setjmp_call_p
+_special_function_p
+_free_after_parsing
+_pop_cp_function_context
+_free_stmt_status
+_free_after_compilation
+_free_eh_status
+_free_expr_status
+_free_emit_status
+_free_varasm_status
+_rs6000_free_machine_status
+_expand_body
+_simplify_aggr_init_exprs_r
+_maybe_clone_body
+_debug_nothing_tree
+_start_enum
+_build_enumerator
+_tree_int_cst_lt
+_finish_enum
+_min_precision
+_tree_floor_log2
+_fixup_unsigned_type
+_smallest_mode_for_size
+_shadow_tag
+_check_tag_decl
+_add_builtin_candidates
+_non_reference
+_type_decays_to
+_type_for_size
+_add_builtin_candidate
+_build_builtin_candidate
+_add_candidate
+_any_viable
+_splice_viable
+_tourney
+_lshift_double
+_finish_parenthesized_expr
+_build_x_binary_op
+_lookup_function_nonclass
+_lookup_name_nonclass
+_arg_assoc_namespace
+_purpose_member
+_get_narrower
+_truth_value_p
+_integer_all_onesp
+_distribute_bit_expr
+_default_comp_type_attributes
+_build_x_indirect_ref
+_build_opfncall
+_reparse_decl_as_expr
+_build_expr_from_tree
+_warn_of_redefinition
+_cpp_pedwarn_with_line
+__cpp_begin_message
+__cpp_free_definition
+_funlike_invocation_p
+_collect_args
+_replace_args
+_expand_arg
+_push_ptoken_context
+__cpp_release_buff
+_finish_sizeof
+_c_sizeof
+_extract_muldiv
+_get_inner_array_type
+_duplicate_decls
+_redeclaration_error_message
+_locate_copy
+_merge_exception_specifiers
+_add_binding
+_locate_ctor
+_make_anon_name
+_clear_identifier_class_values
+_merge_decl_attributes
+_merge_types
+_commonparms
+_list_length
+_tree_last
+_skip_line_comment
+_trigraph_p
+_see_typename
+_push_nested_class
+_set_class_shadows
+_unuse_fields
+_dfs_unuse_fields
+_maybe_begin_member_template_processing
+_inline_needs_template_parms
+_feed_defarg
+_feed_input
+_replace_defarg
+_can_convert_arg
+_finish_defarg
+_end_input
+_obstack_free
+_maybe_end_member_template_processing
+_pop_nested_class
diff --git a/order-files/cc1plus.order b/order-files/cc1plus.order
new file mode 100644
index 00000000000..39806c011ca
--- /dev/null
+++ b/order-files/cc1plus.order
@@ -0,0 +1,1356 @@
+start
+__start
+__dyld_init_check
+dyld_stub_binding_helper
+___darwin_gcc3_preregister_frame_info
+__call_mod_init_funcs
+__dyld_func_lookup
+_main
+_toplev_main
+_hex_init
+_general_init
+_xmalloc_set_program_name
+_diagnostic_initialize
+__obstack_begin
+_xmalloc
+_parse_options_and_default_flags
+_init_reg_sets
+_add_params
+_xrealloc
+_pfe_init
+_read_integral_parameter
+_override_O_option
+_extract_override_options
+_lang_init_options
+_cxx_init_options
+_c_common_init_options
+_cpp_create_reader
+_init_library
+_init_trigraph_map
+_xcalloc
+_set_lang
+_deps_init
+_init_line_maps
+__cpp_init_tokenrun
+__cpp_get_buff
+_new_buff
+_pfe_s_malloc
+_pfe_malloc
+_gcc_obstack_init
+_pfe_obstack_chuck_alloc
+__cpp_init_includes
+_splay_tree_new
+_splay_tree_new_with_allocator
+_splay_tree_xmalloc_allocate
+_set_index_lang
+_set_target_switch
+_optimization_options
+_override_option
+_cxx_decode_option
+_cpp_handle_option
+_parse_option
+_xstrdup
+_append_include_chain
+__cpp_simplify_pathname
+_independent_decode_option
+_remove_component_p
+_new_pending_directive
+_compare_options
+_dump_switch_p
+_decode_f_option
+_decode_g_option
+_set_Wunused
+_set_Wformat
+_decode_W_option
+_output_set_maximum_length
+_set_real_maximum_length
+_output_is_line_wrapping
+_add_env_options
+_cxx_post_options
+_c_common_post_options
+_cpp_post_options
+_init_dependency_output
+_do_compile
+_process_options
+_rs6000_override_options
+_rs6000_parse_abi_options
+_rs6000_add_gc_roots
+_ggc_add_rtx_root
+_ggc_add_root
+_htab_create
+_higher_prime_number
+_machopic_add_gc_roots
+_ggc_add_tree_root
+_new_alias_set
+_floor_log2_wide
+_init_timevar
+_timevar_start
+_lang_independent_init
+_init_ggc
+_exact_log2_wide
+_pfe_s_calloc
+_pfe_calloc
+_init_stringpool
+_ht_create
+_init_obstacks
+_ggc_add_deletable_htab
+_init_emit_once
+_mode_for_size
+_gen_rtx
+_rtx_alloc
+_ggc_alloc
+_alloc_page
+_pfe_free
+_set_page_table_entry
+_gen_raw_REG
+_gen_rtx_fmt_i0
+_gen_rtx_fmt_w
+_ereal_atof
+_asctoe53
+_asctoeg
+_ecleaz
+_enormlz
+_eshup6
+_toe53
+_eiisnan
+_eshift
+_eshup1
+_e53toe
+_eshdn1
+_ecleazs
+_emovo
+_emovz
+_eaddm
+_eshup8
+_emdnorm
+_gen_rtx_CONST_INT
+_gen_const_vector_0
+_rtvec_alloc
+_gen_rtx_fmt_E0
+_gen_rtx_REG
+_init_regs
+_init_reg_sets_1
+_reg_class_subset_p
+_init_reg_modes
+_choose_hard_reg_mode
+_gen_rtx_MEM
+_gen_rtx_fmt_e0
+_init_alias_once
+_init_stmt
+_init_loop
+_address_cost
+_memory_address_p
+_rs6000_legitimate_address
+_init_reload
+_gen_rtx_fmt_ee
+_gen_rtx_fmt_s
+_pfe_savestring
+_plus_constant_wide
+_find_constant_term_loc
+_init_varasm_once
+_init_EXPR_INSN_LIST_cache
+_init_dummy_function_start
+_prepare_function_start
+_ggc_alloc_cleared
+_init_stmt_for_function
+_init_eh_for_function
+_init_emit
+_clear_emit_caches
+_init_virtual_regs
+_init_expr
+_init_varasm_status
+_init_temp_slots
+_init_pending_stack_adjust
+_rs6000_init_machine_status
+_init_expmed
+_start_sequence
+_rtx_cost
+_emit_insn
+_make_insn_raw
+_add_insn
+_init_recog
+_recog
+_recog_13
+_gpc_reg_operand
+_register_operand
+_recog_4
+_reg_or_cint_operand
+_recog_5
+_nonimmediate_operand
+_general_operand
+_input_operand
+_memory_operand
+_toc_relative_expr_p
+_constant_pool_expr_1
+_reg_or_short_operand
+_short_cint_operand
+_htab_find_slot_with_hash
+_const_int_htab_eq
+_init_expr_once
+_boolean_or_operator
+_boolean_operator
+_recog_1
+_reg_or_mem_operand
+_recog_7
+_recog_10
+_recog_9
+_altivec_register_operand
+_zero_constant
+_strict_memory_address_p
+_init_caller_save
+_recog_memoized_1
+_extract_insn
+_insn_extract
+_constrain_operands
+_reg_fits_class_p
+_recog_6
+_cc_reg_operand
+_ht_lookup
+_alloc_node
+_make_node
+_tree_size
+_get_identifier
+_init_reswords
+_calc_hash
+_cxx_init
+_init_spew
+_init_tree
+_set_dump_tree_p
+_init_cplus_expand
+_init_cp_semantics
+_add_c_tree_codes
+_add_cpp_tree_codes
+_init_operators
+_init_method
+_init_mangle
+_varray_init
+_init_error
+_init_output_buffer
+_output_set_prefix
+_clear_diagnostic_info
+_build_int_2_wide
+_cxx_init_decl_processing
+_initialize_predefined_identifiers
+_cp_parse_init
+_init_decl2
+_ggc_add_tree_varray_root
+_init_pt
+_push_to_top_level
+_maybe_push_to_top_level
+_push_namespace
+_build_lang_decl
+_build_decl
+_retrofit_lang_decl
+_build_common_tree_nodes
+_initialize_sizetypes
+_default_set_default_type_attributes
+_get_mode_alignment
+_copy_node
+_make_signed_type
+_fixup_signed_type
+_layout_type
+_tree_int_cst_sgn
+_smallest_mode_for_size
+_size_int_wide
+_size_int_type_wide
+_force_fit_type
+_htab_find_slot
+_size_htab_hash
+_finalize_type_size
+_round_type_align
+_round_up
+_size_htab_eq
+_size_binop
+_int_const_binop
+_integer_onep
+_tree_cons
+_make_unsigned_type
+_fixup_unsigned_type
+_pushlevel
+_make_binding_level
+_push_binding_level
+_declare_namespace_level
+_namespace_binding
+_pushdecl
+_lookup_name_current_level
+_check_template_shadow
+_namespace_bindings_p
+_innermost_nonclass_level
+_set_namespace_binding
+_add_decl_to_level
+_pop_namespace
+_suspend_binding_level
+_find_class_binding_level
+_c_common_nodes_and_builtins
+_record_builtin_type
+_set_identifier_type_value_with_scope
+_binding_for_name
+_find_binding
+_set_identifier_type_value
+_identifier_global_value
+_signed_type
+_set_sizetype
+_build_common_tree_nodes_2
+_build_pointer_type
+_build_qualified_type
+_get_qualified_type
+_build_type_copy
+_set_type_quals
+_mul_double
+_encode
+_decode
+_rs6000_build_va_list
+_make_vector
+_finish_vector_type
+_build_index_type
+_convert
+_ocp_convert
+_complete_type
+_decl_constant_value
+_convert_to_integer
+_build1
+_first_rtl_op
+_fold
+_fold_convert
+_compare_tree_int
+_host_integerp
+_tree_low_cst
+_type_hash_canon
+_type_hash_lookup
+_htab_find_with_hash
+_type_hash_add
+_build_array_type
+_build
+_integer_zerop
+_comptypes
+_non_lvalue
+_add_double
+_simple_cst_equal
+_mode_for_size_tree
+_start_record_layout
+_place_field
+_layout_decl
+_default_ms_bitfield_layout_p
+_normalize_rli
+_normalize_offset
+_finish_record_layout
+_finalize_record_size
+_get_inner_array_type
+_rli_size_so_far
+_bit_from_pos
+_rli_size_unit_so_far
+_byte_from_pos
+_compute_record_mode
+_type_hash_eq
+_attribute_list_equal
+_attribute_list_contained
+_bit_position
+_int_bit_position
+_build_function_type
+_type_hash_list
+_type_list_equal
+_builtin_function_2
+_builtin_function
+_builtin_function_1
+_build_library_fn_1
+_push_overloaded_decl
+_decls_match
+_warn_extern_redeclared_static
+_check_default_args
+_make_decl_rtl
+_decode_reg_name
+_darwin_encode_section_info
+_ggc_alloc_string
+_update_stubs
+_decl_attributes
+_init_attributes
+_default_insert_attributes
+_insert_default_attributes
+_c_common_insert_default_attributes
+_c_init_attributes
+_builtin_function_disabled_p
+_mangle_decl
+_mangle_decl_string
+_resume_binding_level
+_strip_array_types
+_cp_type_quals
+_build_cplus_array_type
+_build_cplus_array_type_1
+_uses_template_parms
+_for_each_template_parm
+_walk_tree
+_for_each_template_parm_r
+_cp_walk_subtrees
+_statement_code_p
+_cp_statement_code_p
+_cp_is_overload_p
+_record_unknown_type
+_xref_tag
+_identifier_type_value
+_add_exception_specifier
+_build_tree_list
+_build_exception_variant
+_comp_except_specs
+_push_cp_library_fn
+_build_cp_library_fn
+_set_mangled_name_for_decl
+_write_encoding
+_write_name
+_decl_is_template_id
+_write_unscoped_name
+_write_unqualified_name
+_write_bare_function_type
+_write_method_parms
+_write_type
+_find_substitution
+_canonical_type_variant
+_cp_build_qualified_type_real
+_write_CV_qualifiers_for_type
+_write_builtin_type
+_add_substitution
+_build_library_fn_ptr
+_build_library_fn
+_init_class_processing
+_init_one_libfunc
+_init_exception_processing
+_supports_one_only
+_start_fname_decls
+_using_eh_for_cleanups
+_type_for_size
+_init_cpp_parse
+_c_common_init
+_init_c_lex
+_get_fileinfo
+_splay_tree_lookup
+_splay_tree_splay
+_splay_tree_insert
+_cpp_get_callbacks
+_cpp_read_main_file
+__cpp_init_hashtable
+__cpp_init_directives
+_cpp_lookup
+__cpp_init_internal_pragmas
+_cpp_register_pragma
+_lookup_pragma_entry
+_insert_pragma_entry
+__cpp_aligned_alloc
+_init_standard_includes
+_update_path
+_concat
+_translate_name
+_get_key_value
+_merge_include_chains
+_remove_dup_dirs
+_remove_dup_dir
+_cpp_warning
+__cpp_begin_message
+__cpp_read_file
+_open_file
+_find_or_create_entry
+_splay_tree_foreach
+_splay_tree_foreach_helper
+_inode_finder
+_stack_include_file
+_read_include_file
+_cpp_push_buffer
+__cpp_do_file_change
+_add_line_map
+_cb_file_change
+_update_header_times
+_extract_interface_info
+_splay_tree_splay_helper
+_init_pragma
+_init_cp_pragma
+_init_repo
+_lang_dependent_init
+_init_asm_output
+_init_eh
+_init_optabs
+_init_all_optabs
+_init_integral_libfuncs
+_init_libfuncs
+_init_floating_libfuncs
+__obstack_newchunk
+_dwarf2out_do_frame
+_dwarf2out_frame_init
+_dwarf2out_def_cfa
+_def_cfa_1
+_lookup_cfa
+_add_fde_cfi
+_initial_return_save
+_reg_save
+_dbxout_init
+_getdecls
+_getpwd
+_output_quoted_string
+_assemble_name
+_maybe_get_identifier
+_text_section
+_dbxout_typedefs
+_dbxout_symbol
+_timevar_pop
+_compile_file
+_init_final
+_init_branch_prob
+_timevar_push
+_yyparse
+_dbxout_start_source_file
+_cpp_finish_options
+_init_builtins
+__cpp_define_builtin
+_run_directive
+_start_directive
+_do_define
+_lex_macro_node
+__cpp_lex_token
+__cpp_lex_direct
+_parse_identifier
+__cpp_create_definition
+_skip_whitespace
+_parse_string
+_unescaped_terminator_p
+_alloc_expansion_token
+_lex_expansion_token
+_handle_newline
+_pfe_is_cmd_ln_processing
+_end_directive
+_skip_rest_of_line
+__cpp_pop_buffer
+_parse_number
+_pfe_set_cmd_ln_processing
+_cpp_define
+_warn_of_redefinition
+__cpp_equiv_tokens
+__cpp_free_definition
+_pfe_reset_cmd_ln_processing
+_free_chain
+__cpp_push_next_buffer
+_push_include
+__cpp_execute_include
+_find_include_file
+_search_from
+_push_srcloc
+_yyparse_1
+_yylex
+_read_token
+_c_lex
+_cpp_get_token
+_get_effective_char
+_skip_block_comment
+_adjust_column
+_skip_line_comment
+__cpp_handle_directive
+_directive_diagnostics
+_do_ifndef
+_check_eol
+_push_conditional
+_do_else
+_do_endif
+___udivmoddi4
+_parse_number
+_lex
+__cpp_parse_expr
+__cpp_pop_context
+_do_if
+_do_include
+_do_include_common
+_parse_include
+_find_framework_file
+_skip_escaped_newlines
+_enter_macro_context
+_push_token_context
+_next_context
+___udivdi3
+_parse_defined
+_do_elif
+__cpp_pop_file_buffer
+_purge_cache
+_pop_srcloc
+_dbxout_end_source_file
+_lbasename
+_parse_params
+_save_parameter
+_read_process_identifier
+_altivec_treat_as_keyword
+_padding_token
+__cpp_temp_token
+_hash_tree_cons
+_list_hash_pieces
+_scan_tokens
+_frob_id
+_lookup_name
+_lookup_name_real
+_lookup_flags
+_unqualified_namespace_lookup
+_current_decl_namespace
+_lookup_using_namespace
+_select_decl
+_chainon
+_parse_decl0
+_frob_specs
+_save_type_access_control
+_split_specs_attrs
+_parse_decl
+_start_decl
+_grokdeclarator
+_toplevel_bindings_p
+_bad_specifiers
+_cplus_decl_attributes
+_maybe_apply_pragma_weak
+_maybe_push_decl
+_start_decl_1
+_maybe_push_cleanup_level
+_parse_end_decl
+_decl_type_access_control
+_deferred_type_access_control
+_cp_finish_decl
+_maybe_apply_renaming_pragma
+_cp_has_mutable_p
+_rest_of_decl_compilation
+_note_list_got_semicolon
+_clear_anon_tags
+_do_pending_inlines
+_ggc_collect
+_cb_line_change
+_list_hash_eq
+_identifier_type
+_maybe_note_name_used_in_class
+_note_got_semicolon
+_do_aggr
+_yyungetc
+_handle_class_head
+_current_scope
+_lookup_tag
+_make_aggr_type
+_cp_make_lang_type
+_make_binfo
+_make_tree_vec
+_pushtag
+_create_implicit_typedef
+_maybe_process_template_type_declaration
+_maybe_check_template_type
+_pushdecl_with_scope
+_begin_class_definition
+_reset_type_access_control
+_maybe_process_partial_specialization
+_pushclass
+_pushlevel_class
+_push_class_decls
+_push_search_level
+_push_stack_level
+_dfs_walk
+_dfs_walk_real
+_dfs_push_type_decls
+_dfs_push_decls
+_storetags
+_reset_specialization
+_build_self_reference
+_constructor_name
+_constructor_name_full
+_finish_member_declaration
+_pushdecl_class_level
+_push_class_level_binding
+_push_class_binding
+_note_name_declared_in_class
+_push_binding
+_context_for_name_lookup
+_is_properly_derived_from
+_check_class_key
+_decl_namespace
+_parse_field0
+_parse_field
+_grokfield
+_c_apply_type_quals_to_decl
+_target_type
+_check_initializer
+_maybe_deduce_size_from_array_init
+_current_stmt_tree
+_template_class_depth
+_template_class_depth_real
+_splay_tree_compare_pointers
+_finish_class_definition
+_finish_struct
+_unreverse_member_declarations
+_nreverse
+_finish_struct_1
+_fixup_inline_methods
+_check_bases_and_members
+_check_bases
+_check_field_decls
+_delete_duplicate_fields
+_delete_duplicate_fields_1
+_pod_type_p
+_check_field_decl
+_finish_struct_anon
+_check_methods
+_add_implicitly_declared_members
+_implicitly_declare_fn
+_synthesize_exception_spec
+_make_call_declarator
+_build_nt
+_parmlist_is_exprlist
+_check_special_function_return_type
+_member_function_or_else
+_grokparms
+_build_cplus_method_type
+_decl_function_context
+_grokfndecl
+_no_linkage_check
+_walk_tree_without_duplicates
+_htab_find
+_hash_pointer
+_no_linkage_helper
+_eq_pointer
+_htab_delete
+_get_containing_scope
+_grokclassfn
+_build_artificial_parm
+_abstract_virtuals_error
+_defer_fn
+_build_reference_type
+_hash_tree_chain
+_type_promotes_to
+_c_promoting_integer_type_p
+_maybe_retrofit_in_chrg
+_check_explicit_specialization
+_current_tmpl_spec_kind
+_grok_ctor_properties
+_copy_fn_p
+_skip_artificial_parms_for
+_grok_special_member_properties
+_make_rtl_for_nonlocal_decl
+_assemble_variable
+_grok_op_properties
+_ambi_op_p
+_unary_op_p
+_add_method
+_build_overload
+_compparms
+_ovl_cons
+_clone_constructors_and_destructors
+_clone_function_decl
+_build_clone
+_copy_decl
+_copy_lang_decl
+_copy_list
+_finish_struct_methods
+_maybe_warn_about_overly_private_class
+_method_name_cmp
+_type_requires_array_cookie
+_lookup_fnfields
+_lookup_member
+_bfs_walk
+_lookup_field_r
+_lookup_fnfields_1
+_lookup_field_1
+_layout_class_type
+_determine_primary_base
+_create_vtable_ptr
+_build_base_fields
+_layout_nonempty_base_or_field
+_byte_position
+_layout_conflict_p
+_splay_tree_max
+_end_of_class
+_aggregate_value_p
+_finish_struct_bits
+_count_fields
+_finish_vtbls
+_accumulate_vtbl_inits
+_build_vtt
+_build_vtt_inits
+_complete_vars
+_maybe_suppress_debug_info
+_dump_class_hierarchy
+_dump_begin
+_rest_of_type_compilation
+_popclass
+_poplevel_class
+_pop_binding
+_pop_binding_level
+_pop_class_decls
+_pop_search_level
+_pop_stack_level
+_splay_tree_delete
+_splay_tree_delete_helper
+_splay_tree_xmalloc_deallocate
+_do_pending_defargs
+_done_pending_defargs
+_begin_inline_definitions
+_finish_inline_definitions
+_clear_inline_text_obstack
+_shadow_tag
+_check_tag_decl
+_follow_tag_typedef
+_original_type
+_duplicate_decls
+_redeclaration_error_message
+_invalidate_class_lookup_cache
+_sufficient_parms_p
+_make_pointer_declarator
+_create_array_type_for_decl
+_compute_array_index_type
+_constant_expression_warning
+_cp_convert
+_build_binary_op
+_really_overloaded_fn
+_default_conversion
+_decay_conversion
+_type_unknown_p
+_is_overloaded_fn
+_common_type
+_type_after_usual_arithmetic_conversions
+_merge_type_attributes
+_merge_attributes
+_build_type_attribute_variant
+_operand_equal_p
+_tree_int_cst_equal
+_const_binop
+_neg_double
+_lex_number
+_remove_zero_width_bit_fields
+_layout_virtual_bases
+_warn_about_ambiguous_direct_bases
+_modify_all_vtables
+_dfs_modify_vtables
+_dfs_unmark
+_int_fits_type_p
+_do_ifdef
+_check_for_new_type
+_finish_parmlist
+_begin_function_definition
+_start_function
+_nothrow_libfn_p
+_libc_name_p
+_lookup_attribute
+_check_function_type
+_require_complete_types_for_parms
+_complete_type_or_else
+_init_function_start
+_push_cp_function_context
+_lang_printable_name
+_lang_decl_name
+_decl_as_string
+_output_clear_message_text
+_dump_decl
+_dump_function_decl
+_dump_type_prefix
+_dump_type
+_dump_qualifiers
+_output_add_string
+_maybe_wrap_text
+_output_append
+_output_emit_prefix
+_output_append_r
+_output_add_space
+_dump_scope
+_dump_function_name
+_dump_parameters
+_output_add_character
+_dump_type_suffix
+_output_finalize_message
+_emit_line_note
+_set_file_and_line_for_stmt
+_emit_note
+_hard_function_value
+_begin_stmt_tree
+_announce_function
+_store_parm_decls
+_storedecls
+_push_local_binding
+_gettags
+_begin_function_body
+_keep_next_level
+_begin_compound_stmt
+_build_stmt
+_add_stmt
+_stmts_are_full_exprs_p
+_do_pushlevel
+_add_scope_stmt
+_current_scope_stmt_stack
+_build_expr_from_tree
+_do_identifier
+_qualify_lookup
+_objcp_lookup_identifier
+_hack_identifier
+_mark_used
+_assemble_external
+_convert_from_reference
+_build_x_indirect_ref
+_build_opfncall
+_build_new_op
+_build_indirect_ref
+_reparse_decl_as_expr
+_finish_parenthesized_expr
+_finish_return_stmt
+_check_return_expr
+_convert_for_initialization
+_convert_for_assignment
+_dubious_conversion_warnings
+_overflow_warning
+_can_convert_arg_bad
+_implicit_conversion
+_standard_conversion
+_strip_top_quals
+_lvalue_p
+_lvalue_p_1
+_build_conv
+_perform_implicit_conversion
+_convert_like_real
+_maybe_warn_about_returning_address_of_local
+_finish_stmt
+_finish_compound_stmt
+_finish_function_body
+_do_poplevel
+_kept_level_p
+_poplevel
+_warn_about_unused_variables
+_finish_function
+_finish_fname_decls
+_finish_stmt_tree
+_pop_labels
+_save_function_data
+_calls_setjmp_p
+_calls_setjmp_r
+_free_after_parsing
+_pop_cp_function_context
+_free_stmt_status
+_free_after_compilation
+_free_eh_status
+_free_expr_status
+_free_emit_status
+_free_varasm_status
+_rs6000_free_machine_status
+_expand_body
+_simplify_aggr_init_exprs_r
+_maybe_clone_body
+_debug_nothing_tree
+_lex_string
+_build_string
+_push_lang_context
+_grokvardecl
+_set_decl_namespace
+_is_namespace_ancestor
+_maybe_register_incomplete_var
+_layout_var_decl
+_maybe_commonize_var
+_make_anon_name
+_start_enum
+_finish_unary_op_expr
+_build_x_unary_op
+_build_unary_op
+_build_expr_type_conversion
+_build_enumerator
+_check_for_missing_semicolon
+_dump_aggr_type
+_class_key_or_enum
+_check_for_uninitialized_const_var
+_at_function_scope_p
+_add_decl_stmt
+_maybe_inject_for_scope_var
+_initialize_local_var
+_destroy_local_var
+_finish_id_expr
+_dependent_base_p
+_currently_open_class
+_type_access_control
+_build_x_component_ref
+_build_component_ref
+_lookup_field
+_enforce_access
+_accessible_p
+_friend_accessible_p
+_access_in_type
+_dfs_access_in_type
+_assert_canonical_unmarked
+_dfs_assert_unmarked_p
+_dfs_accessible_p
+_build_x_modify_expr
+_build_modify_expr
+_require_complete_type
+_lvalue_or_else
+_get_unwidened
+_finish_expr_stmt
+_convert_to_void
+_lookup_base
+_lookup_base_r
+_build_method_call
+_build_new_method_call
+_resolve_args
+_add_function_candidate
+_list_length
+_lvalue_type
+_reference_binding
+_real_lvalue_p
+_reference_related_p
+_reference_compatible_p
+_at_least_as_qualified_p
+_direct_reference_binding
+_add_candidate
+_any_viable
+_splice_viable
+_tourney
+_is_dummy_object
+_build_over_call
+_unary_complex_lvalue
+_mark_addressable
+_staticp
+_cp_convert_to_pointer
+_is_friend
+_build_base_path
+_resolves_to_fixed_type_p
+_fixed_type_or_null
+_check_function_format
+_build_target_expr_with_type
+_build_target_expr
+_maybe_build_cleanup
+_build_cplus_new
+_nullify_returns_r
+_htab_expand
+_list_hash
+_find_empty_slot_for_expand
+_finish_decl_parsing
+_pop_lang_context
+_lookup_tag_reverse
+_finish_enum
+_tree_int_cst_lt
+_min_precision
+_tree_floor_log2
+_do_undef
+_get_inner_reference
+_optimize_bit_field_compare
+_condition_conversion
+_has_cleanups
+_finish_if_stmt_cond
+_build_x_arrow
+_build_x_binary_op
+_split_tree
+_grok_array_decl
+_build_array_ref
+_cp_pointer_int_sum
+_pointer_int_sum
+_size_in_bytes
+_extract_muldiv
+_finish_then_clause
+_finish_if_stmt
+_begin_if_stmt
+_shorten_compare
+_get_narrower
+_invert_tree_comparison
+_fold_range_test
+_make_range
+_cp_truthvalue_conversion
+_truthvalue_conversion
+_fold_truthop
+_maybe_convert_cond
+_negate_expr
+_finish_call_expr
+_is_global
+_lookup_arg_dependent
+_arg_assoc_args
+_arg_assoc
+_arg_assoc_type
+_build_x_function_call
+_build_function_call
+_build_function_call_real
+_decl_target_overloaded_intrinsic_p
+_inline_conversion
+_convert_arguments
+_build_call
+_build_addr_func
+_is_empty_class
+_arg_assoc_class
+_purpose_member
+_arg_assoc_namespace
+_convert_class_to_reference
+_lookup_conversions
+_add_conversions
+_build_component_addr
+_decl_type_context
+_convert_force
+_convert_to_pointer_force
+_parse_bitfield0
+_parse_bitfield
+_grokbitfield
+_locate_ctor
+_merge_exception_specifiers
+_locate_copy
+_funlike_invocation_p
+_collect_args
+_replace_args
+_expand_arg
+_push_ptoken_context
+__cpp_release_buff
+_merge_decl_attributes
+_merge_types
+_type_hash_hash
+_lshift_double
+_add_fields_to_vec
+_field_decl_cmp
+__cpp_extend_buff
+_twoval_comparison_p
+_swap_tree_comparison
+_merge_ranges
+_range_binop
+_build_range_check
+_unsigned_type
+_invert_truthvalue
+_build_x_conditional_expr
+_build_conditional_expr
+_operand_equal_for_comparison_p
+_truth_value_p
+_fold_binary_op_with_conditional_arg
+_global_bindings_p
+_integer_all_onesp
+_distribute_bit_expr
+_default_comp_type_attributes
+_setjmp_call_p
+_special_function_p
+_warn_about_long_double
+_reparse_absdcl_as_casts
+_altivec_is_vector_constant_element
+_groktypename
+_build_c_cast
+_convert_to_real
+_handle_aligned_attribute
+_tree_log2
+_is_attribute_p
+_finish_sizeof
+_c_sizeof
+_place_union_field
+_complete_array_type
+_handle_format_attribute
+_decode_format_attr
+_decode_format_type
+_attribute_hash_list
+_value_member
+_commonparms
+_tree_last
+_lookup_function_nonclass
+_lookup_name_nonclass
+_add_builtin_candidates
+_non_reference
+_type_decays_to
+_add_builtin_candidate
+_build_builtin_candidate
+_store_init_value
+_digest_init
+_combine_strings
+_choose_string_type
+_finish_asm_stmt
+_parse_output_constraint
+_check_multiple_declarators
+_varray_grow
+_pfe_s_realloc
+_pfe_realloc
+_build_this
+_stabilize_reference
+_stabilize_reference_1
+_lex_charconst
+_cpp_interpret_charconst
+_do_pragma
+_darwin_pragma_options
+_pop_field_alignment
+_build_x_compound_expr
+_build_compound_expr
+_null_ptr_cst_p
+_integer_pow2p
+_tree_expr_nonnegative_p
+_push_field_alignment
+__cpp_backup_tokens
+_ht_expand
+_clear_identifier_class_values
+_expand_tree_builtin
+_fold_builtin
+_trigraph_p
+_parse_method
+_start_method
+_snarf_method
+_snarf_block
+_finish_method
+_fixup_pending_inline
+_check_for_override
+_protected_accessible_p
+_pop_nested_class
+_enter_scope_of
+_push_nested_class
+_set_class_shadows
+_unuse_fields
+_dfs_unuse_fields
+_is_aggr_type
+_check_classfn
+_finish_this_expr
+_maybe_end_member_template_processing
+_process_next_inline
+_end_input
+_obstack_free
+_begin_parsing_inclass_inline
+_feed_input
+_maybe_begin_member_template_processing
+_inline_needs_template_parms
+_dump_exception_spec
+_see_typename
+_finish_base_specifier
+_xref_basetypes
+_unshare_base_binfos
+_get_vbase_types
+_unmarkedp
+_dfs_get_vbase_types
+_markedp
+_dfs_build_inheritance_graph_order
+_unmarked_pushdecls_p
+_template_self_reference_p
+_setup_class_bindings
+_lookup_field_queue_p
+_marked_pushdecls_p
+_mark_primary_bases
+_dfs_unshared_virtual_bases
+_build_base_field
+_propagate_binfo_offsets
+_get_primary_binfo
+_record_subobject_offsets
+_walk_subobject_offsets
+_record_subobject_offset
+_dfs_set_offset_for_unshared_vbases
+_dfs_unmarked_real_bases_queue_p
+_dfs_marked_real_bases_queue_p
+_feed_defarg
+_grok_method_quals
+_cp_type_qual_from_rid
+_make_reference_declarator
+_comp_ptr_ttypes
+_comp_ptr_ttypes_real
+_string_conv_p
+_frob_opname
+_maybe_dummy_object
+_build_field_call
+_finish_object_call_expr
+_initializer_constant_valid_p
+_cplus_expand_constant
+_layout_vtable_decl
+_get_vtbl_decl_for_binfo
+_initialize_vtable
+_initialize_array
+_char_type_p
+_process_init_constructor
+_dump_vtable
+_adjust_clone_args
+_begin_eh_spec_block
+_begin_constructor_body
+_finish_mem_initializers
+_emit_base_init
+_sort_member_init
+_build_field_list
+_sort_base_init
+_initialize_vtbl_ptrs
+_dfs_initialize_vtbl_ptrs
+_expand_virtual_init
+_build_vtbl_address
+_build_vfield_ref
+_perform_member_init
+_finish_constructor_body
+_finish_eh_spec_block
+_update_cloned_parm
+_store_bindings
+_clone_body
+_copy_body
+_copy_body_r
+_cp_auto_var_in_fn_p
+_copy_tree_r
+_copy_scope_stmt
+_remap_block
+_insert_block
+_nonstatic_local_decl_p
+_local_variable_p
+_remap_decl
+_pop_from_top_level
+_pfe_varray_free
+_handle_noreturn_attribute
+_check_default_argument
+_add_defarg_fn
+_shared_unmarked_p
+_canonical_binfo
+_shared_marked_p
+_dfs_canonical_queue
+_dfs_accessible_queue_p
+_is_subobject_of_p
+_revert_static_member_fn
+_begin_template_parm_list
+_begin_scope
+_note_template_header
+_finish_template_type_parm
+_process_template_parm
+_build_template_parm_index
+_end_template_parm_list
+_push_template_decl_real
+_template_parm_scope_p
+_check_default_tmpl_args
+_current_template_args
+_build_template_decl
+_pushdecl_namespace_level
+_classtype_mangled_name
+_most_general_template
+_mangle_class_name_for_template
+_get_innermost_template_args
+_type_as_string
+_finish_template_decl
+_end_template_decl
+_finish_scope
+_write_nested_name
+_write_prefix
+_write_source_name
+_write_number
+_hwint_to_ascii
+_write_identifier
+_joust
+_compare_ics
+_maybe_handle_implicit_object
+_maybe_handle_ref_bind
+_qualified_lookup_using_namespace
+_ambiguous_decl
+_do_scoped_id
+_finish_else_clause
+_build_functional_cast
+_build_user_type_conversion_1
+_build_ptr_wrapper
+_convert_default_arg
+_break_out_target_exprs
+_bot_manip
+_bot_replace
+_write_special_name_constructor
+_build_delete
+_build_dtor_call
+_write_special_name_destructor
+_build_throw
+_is_admissible_throw_operand
+_complete_ptr_ref_or_void_ptr_p
+_doing_eh
+_decl_is_java_type
+_push_throw_library_fn
+_push_library_fn
+_pushdecl_top_level
+_push_function_context_to
+_pop_function_context_from
+_restore_emit_status
+_begin_init_stmts
+_begin_stmt_expr
+_create_temporary_var
+_obscure_complex_init
+_build_aggr_init
+_expand_aggr_init_1
+_expand_default_init
+_build_new_function_call
+_ptr_reasonably_similar
+_begin_else_clause
+_finish_init_stmts
+_finish_stmt_expr
+_build_min
+_finish_decl_cleanup
+_do_allocate_exception
+_prepare_eh_type
+_build_eh_type_type
+_get_tinfo_decl
+_mangle_typeinfo_for_type
+_mangle_special_for_type
+_write_class_enum_type
+_check_bitfield_decl
diff --git a/zlib/ChangeLog b/zlib/ChangeLog
index fe07df582b6..309f75c75a9 100644
--- a/zlib/ChangeLog
+++ b/zlib/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-20 Release Manager
+
+ * GCC 4.0.0 released.
+
ChangeLog file for zlib